diff --git a/SQL/database_changelog.txt b/SQL/database_changelog.txt index 9835d792f6..9754c511d0 100644 --- a/SQL/database_changelog.txt +++ b/SQL/database_changelog.txt @@ -1,3 +1,33 @@ +1 September 2016, by Jordie0608 + +Modified table 'notes', adding column 'secret'. + +ALTER TABLE `feedback`.`notes` ADD COLUMN `secret` TINYINT(1) NOT NULL DEFAULT '1' AFTER `server` + +Remember to add a prefix to the table name if you use them + +---------------------------------------------------- + +19 August 2016, by Shadowlight213 + +Changed appearance bans to be jobbans. + +UPDATE 'feedback'.`ban` SET `job` = "appearance", `bantype` = "JOB_PERMABAN" WHERE `bantype` = "APPEARANCE_PERMABAN" + +Remember to add a prefix to the table name if you use them + +---------------------------------------------------- + +3 July 2016, by Jordie0608 + +Modified table 'poll_question', adding column 'dontshow' which was recently added to the server schema. + +ALTER TABLE `feedback`.`poll_question` ADD COLUMN `dontshow` TINYINT(1) NOT NULL DEFAULT '0' AFTER `for_trialmin` + +Remember to add a prefix to the table name if you use them + +---------------------------------------------------- + 16th April 2016 Added ipintel table, only required if ip intel is enabled in the config diff --git a/SQL/tgstation_schema.sql b/SQL/tgstation_schema.sql index 3c4864893d..60dcde0fd0 100644 --- a/SQL/tgstation_schema.sql +++ b/SQL/tgstation_schema.sql @@ -266,6 +266,7 @@ CREATE TABLE `poll_question` ( `createdby_ckey` varchar(45) NULL DEFAULT NULL, `createdby_ip` varchar(45) NULL DEFAULT NULL, `for_trialmin` varchar(45) NULL DEFAULT NULL, + `dontshow` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; /*!40101 SET character_set_client = @saved_cs_client */; @@ -360,6 +361,7 @@ CREATE TABLE `notes` ( `last_editor` varchar(32), `edits` text, `server` varchar(50) NOT NULL, + `secret` tinyint(1) NOT NULL DEFAULT '1', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; /*!40101 SET character_set_client = @saved_cs_client */; diff --git a/SQL/tgstation_schema_prefixed.sql b/SQL/tgstation_schema_prefixed.sql index ab49b337cf..f605339ee3 100644 --- a/SQL/tgstation_schema_prefixed.sql +++ b/SQL/tgstation_schema_prefixed.sql @@ -261,6 +261,7 @@ CREATE TABLE `SS13_poll_question` ( `createdby_ckey` varchar(45) NULL DEFAULT NULL, `createdby_ip` varchar(45) NULL DEFAULT NULL, `for_trialmin` varchar(45) NULL DEFAULT NULL, + `dontshow` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; /*!40101 SET character_set_client = @saved_cs_client */; @@ -355,6 +356,7 @@ CREATE TABLE `SS13_notes` ( `last_editor` varchar(32), `edits` text, `server` varchar(50) NOT NULL, + `secret` tinyint(1) NOT NULL DEFAULT '1', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; /*!40101 SET character_set_client = @saved_cs_client */; diff --git a/_maps/RandomRuins/LavaRuins/korlavabaseplsbebetteratmapping.dmm b/_maps/RandomRuins/LavaRuins/korlavabaseplsbebetteratmapping.dmm new file mode 100644 index 0000000000..bef60a07f6 --- /dev/null +++ b/_maps/RandomRuins/LavaRuins/korlavabaseplsbebetteratmapping.dmm @@ -0,0 +1,35 @@ +"a" = (/turf/open/space,/area/space) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +"} diff --git a/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm b/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm index 8d4f3204e8..58ed1fef02 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm @@ -1,130 +1,1554 @@ -"aa" = (/turf/template_noop,/area/template_noop) -"ab" = (/turf/closed/wall/r_wall{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"ac" = (/turf/closed/wall/r_wall,/area/ruin/powered) -"ad" = (/obj/structure/flora/ausbushes/leafybush,/turf/open/floor/plating/beach/sand,/area/ruin/powered) -"ae" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical,/obj/item/stack/cable_coil,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"af" = (/obj/structure/table,/obj/item/clothing/mask/gas,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"ag" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"ah" = (/obj/machinery/power/smes,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"ai" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"aj" = (/turf/closed/wall/mineral/sandstone{baseturf = /turf/open/floor/plating/beach/sand},/area/ruin/powered) -"ak" = (/obj/structure/toilet,/obj/effect/decal/sandeffect,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"al" = (/obj/structure/urinal{pixel_y = 32},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"am" = (/obj/structure/urinal{pixel_y = 32},/obj/effect/decal/sandeffect,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"an" = (/obj/item/device/flashlight/lantern,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"ao" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/effect/decal/sandeffect,/obj/structure/mirror{pixel_x = 28},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"ap" = (/obj/structure/flora/ausbushes/sparsegrass,/turf/open/floor/plating/beach/sand,/area/ruin/powered) -"aq" = (/obj/structure/flora/ausbushes/sunnybush,/turf/open/floor/plating/beach/sand,/area/ruin/powered) -"ar" = (/turf/open/floor/plating/beach/sand,/area/ruin/powered) -"as" = (/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"at" = (/obj/item/weapon/tank/internals/oxygen,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"au" = (/obj/effect/decal/sandeffect,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"av" = (/obj/machinery/door/airlock/hatch,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"aw" = (/obj/machinery/door/airlock/sandstone,/turf/open/floor/wood,/area/ruin/powered) -"ax" = (/obj/structure/extinguisher_cabinet,/turf/closed/wall/mineral/sandstone{baseturf = /turf/open/floor/plating/beach/sand},/area/ruin/powered) -"ay" = (/obj/machinery/door/airlock/hatch,/obj/effect/decal/sandeffect,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"az" = (/obj/item/clothing/tie/dope_necklace,/obj/item/weapon/reagent_containers/spray/spraytan,/turf/open/floor/plating/beach/sand,/area/ruin/powered) -"aA" = (/obj/effect/decal/sandeffect,/turf/open/floor/plating/beach/sand,/area/ruin/powered) -"aB" = (/turf/open/floor/plasteel/asteroid/warning{baseturf = /turf/open/floor/plating/beach/sand; dir = 1; tag = "icon-asteroidwarning (NORTH)"},/area/ruin/powered) -"aC" = (/turf/open/floor/wood,/area/ruin/powered) -"aD" = (/obj/structure/table,/obj/item/weapon/storage/box/drinkingglasses,/obj/item/weapon/storage/box/drinkingglasses,/obj/item/weapon/reagent_containers/food/drinks/shaker,/obj/item/weapon/storage/box/beakers,/turf/open/floor/wood,/area/ruin/powered) -"aE" = (/obj/structure/table,/obj/machinery/reagentgrinder,/turf/open/floor/wood,/area/ruin/powered) -"aF" = (/obj/machinery/vending/boozeomat{emagged = 1},/turf/open/floor/wood,/area/ruin/powered) -"aG" = (/obj/structure/table,/obj/item/weapon/book/manual/barman_recipes,/obj/item/weapon/reagent_containers/glass/rag,/turf/open/floor/wood,/area/ruin/powered) -"aH" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/open/floor/wood,/area/ruin/powered) -"aI" = (/obj/structure/table,/obj/machinery/microwave,/turf/open/floor/wood,/area/ruin/powered) -"aJ" = (/obj/structure/closet/crate/bin,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/trash/candy,/obj/item/toy/talking/owl,/turf/open/floor/plasteel/asteroid/warning{baseturf = /turf/open/floor/plating/beach/sand; dir = 1; tag = "icon-asteroidwarning (NORTH)"},/area/ruin/powered) -"aK" = (/turf/open/floor/plasteel/asteroid{baseturf = /turf/open/floor/plating/beach/sand},/area/ruin/powered) -"aL" = (/obj/effect/mob_spawn/human/bartender/alive{name = "beach bum sleeper"},/turf/open/floor/wood,/area/ruin/powered) -"aM" = (/obj/structure/reagent_dispensers/beerkeg,/turf/open/floor/wood,/area/ruin/powered) -"aN" = (/obj/machinery/vending/cigarette,/turf/open/floor/plasteel/asteroid{baseturf = /turf/open/floor/plating/beach/sand},/area/ruin/powered) -"aO" = (/obj/structure/stacklifter,/turf/open/floor/plating/beach/sand,/area/ruin/powered) -"aP" = (/obj/structure/table/wood,/turf/open/floor/wood,/area/ruin/powered) -"aQ" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp,/turf/open/floor/wood,/area/ruin/powered) -"aR" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/drinks/bottle/tequila,/turf/open/floor/wood,/area/ruin/powered) -"aS" = (/obj/machinery/processor,/turf/open/floor/wood,/area/ruin/powered) -"aT" = (/obj/machinery/vending/cola,/turf/open/floor/plasteel/asteroid{baseturf = /turf/open/floor/plating/beach/sand},/area/ruin/powered) -"aU" = (/obj/effect/overlay/palmtree_l,/turf/open/floor/plating/beach/sand,/area/ruin/powered) -"aV" = (/obj/effect/mob_spawn/human/beach/alive{flavour_text = "You're, like, totally a dudebro, bruh. Ch'yea. You came here, like, on spring break, hopin' to pick up some bangin' hot chicks, y'knaw?"; pocket2 = /obj/item/weapon/reagent_containers/food/snacks/pizzaslice/dank; uniform = /obj/item/clothing/under/pants/youngfolksjeans},/turf/open/floor/plating/beach/sand,/area/ruin/powered) -"aW" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/asteroid/warning{baseturf = /turf/open/floor/plating/beach/sand; dir = 1; tag = "icon-asteroidwarning (NORTH)"},/area/ruin/powered) -"aX" = (/obj/structure/closet/secure_closet/freezer/meat,/turf/open/floor/wood,/area/ruin/powered) -"aY" = (/obj/machinery/vending/snack,/turf/open/floor/plasteel/asteroid{baseturf = /turf/open/floor/plating/beach/sand},/area/ruin/powered) -"aZ" = (/obj/effect/overlay/coconut,/turf/open/floor/plating/beach/sand,/area/ruin/powered) -"ba" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/template_noop,/area/ruin/powered) -"bb" = (/obj/structure/weightlifter,/turf/open/floor/plating/beach/sand,/area/ruin/powered) -"bc" = (/obj/machinery/door/airlock/sandstone,/obj/effect/decal/sandeffect,/turf/open/floor/wood,/area/ruin/powered) -"bd" = (/obj/structure/closet/secure_closet/freezer/kitchen,/turf/open/floor/wood,/area/ruin/powered) -"be" = (/obj/vehicle/scooter/skateboard{dir = 4},/turf/open/floor/plating/beach/sand,/area/ruin/powered) -"bf" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/template_noop,/area/ruin/powered) -"bg" = (/obj/structure/sign/barsign,/turf/closed/wall/mineral/sandstone,/area/ruin/powered) -"bh" = (/turf/closed/wall/mineral/sandstone,/area/ruin/powered) -"bi" = (/obj/structure/chair/wood/normal{icon_state = "wooden_chair"; dir = 4},/turf/open/floor/plasteel/asteroid{baseturf = /turf/open/floor/plating/beach/sand},/area/ruin/powered) -"bj" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/snacks/pastatomato,/turf/open/floor/plasteel/asteroid{baseturf = /turf/open/floor/plating/beach/sand},/area/ruin/powered) -"bk" = (/obj/structure/chair/wood/normal{icon_state = "wooden_chair"; dir = 8},/turf/open/floor/plasteel/asteroid{baseturf = /turf/open/floor/plating/beach/sand},/area/ruin/powered) -"bl" = (/mob/living/simple_animal/crab,/turf/open/floor/plating/beach/sand,/area/ruin/powered) -"bm" = (/obj/structure/closet/athletic_mixed,/turf/open/floor/pod/dark{baseturf = /turf/open/floor/plating/asteroid/basalt},/area/ruin/powered) -"bn" = (/obj/structure/rack,/obj/item/clothing/shoes/sandal,/obj/item/clothing/shoes/sandal,/obj/effect/decal/sandeffect,/turf/open/floor/pod/dark{baseturf = /turf/open/floor/plating/asteroid/basalt},/area/ruin/powered) -"bo" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"bp" = (/obj/structure/closet/athletic_mixed,/obj/effect/decal/sandeffect,/turf/open/floor/pod/dark{baseturf = /turf/open/floor/plating/asteroid/basalt},/area/ruin/powered) -"bq" = (/turf/open/floor/pod/dark{baseturf = /turf/open/floor/plating/asteroid/basalt},/area/ruin/powered) -"br" = (/obj/effect/decal/sandeffect,/turf/open/floor/pod/dark{baseturf = /turf/open/floor/plating/asteroid/basalt},/area/ruin/powered) -"bs" = (/obj/machinery/door/airlock/hatch,/obj/structure/fans/tiny,/turf/open/floor/pod/dark{baseturf = /turf/open/floor/plating/asteroid/basalt},/area/ruin/powered) -"bt" = (/turf/open/floor/pod/light{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"bu" = (/obj/effect/decal/sandeffect,/turf/open/floor/pod/light{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"bv" = (/obj/machinery/door/airlock/sandstone,/turf/open/floor/pod/dark{baseturf = /turf/open/floor/plating/asteroid/basalt},/area/ruin/powered) -"bw" = (/obj/structure/flora/rock,/turf/open/floor/plating/beach/sand,/area/ruin/powered) -"bx" = (/obj/machinery/door/airlock/sandstone,/obj/effect/decal/sandeffect,/turf/open/floor/pod/dark{baseturf = /turf/open/floor/plating/asteroid/basalt},/area/ruin/powered) -"by" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/bikehorn/airhorn,/obj/structure/table/wood,/obj/item/weapon/storage/firstaid,/obj/item/weapon/storage/firstaid/brute,/turf/open/floor/wood,/area/ruin/powered) -"bz" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/window/reinforced{dir = 1; layer = 2.9},/obj/structure/chair/stool,/turf/open/floor/wood,/area/ruin/powered) -"bA" = (/obj/structure/table/wood,/obj/item/weapon/tank/internals/oxygen,/obj/item/weapon/pickaxe,/obj/item/clothing/mask/gas,/turf/open/floor/pod/dark{baseturf = /turf/open/floor/plating/asteroid/basalt},/area/ruin/powered) -"bB" = (/obj/structure/dresser,/turf/open/floor/pod/dark{baseturf = /turf/open/floor/plating/asteroid/basalt},/area/ruin/powered) -"bC" = (/obj/item/weapon/reagent_containers/spray/spraytan,/turf/open/floor/plating/beach/sand,/area/ruin/powered) -"bD" = (/obj/item/toy/beach_ball,/turf/open/floor/plating/beach/sand,/area/ruin/powered) -"bE" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/item/device/megaphone,/turf/open/floor/wood,/area/ruin/powered) -"bF" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/effect/mob_spawn/human/beach/alive{flavour_text = "You're a spunky lifeguard! It's up to you to make sure nobody drowns or gets eaten by sharks and stuff."; has_id = 1; id_access = "Medical Doctor"; id_job = "Lifeguard"; mob_gender = "female"},/turf/open/floor/wood,/area/ruin/powered) -"bG" = (/obj/structure/chair,/turf/open/floor/plating/beach/sand,/area/ruin/powered) -"bH" = (/obj/item/weapon/storage/backpack/dufflebag,/turf/open/floor/plating/beach/sand,/area/ruin/powered) -"bI" = (/obj/effect/decal/sandeffect{density = 1},/obj/effect/decal/fakelattice,/turf/open/floor/pod/light{baseturf = /turf/open/floor/plating/lava/smooth; density = 1},/area/ruin/powered) -"bJ" = (/turf/open/floor/plasteel/stairs/old,/area/ruin/powered) -"bK" = (/obj/structure/flora/ausbushes/reedbush,/turf/open/floor/plating/beach/sand,/area/ruin/powered) -"bL" = (/obj/item/device/camera,/turf/open/floor/plating/beach/sand,/area/ruin/powered) -"bM" = (/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/open/floor/plating/beach/sand,/area/ruin/powered) -"bN" = (/obj/structure/flora/ausbushes/reedbush,/turf/open/floor/plating/beach/coastline_t,/area/ruin/powered) -"bO" = (/turf/open/floor/plating/beach/coastline_t,/area/ruin/powered) -"bP" = (/obj/structure/flora/ausbushes/sparsegrass,/turf/open/floor/plating/beach/coastline_t,/area/ruin/powered) -"bQ" = (/turf/open/floor/plating/beach/coastline_b,/area/ruin/powered) -"bR" = (/turf/open/floor/plating/beach/water,/area/ruin/powered) -"bS" = (/obj/structure/flora/ausbushes/stalkybush,/turf/open/floor/plating/beach/water,/area/ruin/powered) +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/template_noop, +/area/template_noop) +"ab" = ( +/turf/closed/wall/r_wall{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"ac" = ( +/turf/closed/wall/r_wall, +/area/ruin/powered) +"ad" = ( +/obj/structure/flora/ausbushes/leafybush, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"ae" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical, +/obj/item/stack/cable_coil, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"af" = ( +/obj/structure/table, +/obj/item/clothing/mask/gas, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"ag" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"ah" = ( +/obj/machinery/power/smes, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"ai" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"aj" = ( +/turf/closed/wall/mineral/sandstone{ + baseturf = /turf/open/floor/plating/beach/sand + }, +/area/ruin/powered) +"ak" = ( +/obj/structure/toilet, +/obj/effect/decal/sandeffect, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"al" = ( +/obj/structure/urinal{ + pixel_y = 32 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"am" = ( +/obj/structure/urinal{ + pixel_y = 32 + }, +/obj/effect/decal/sandeffect, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"an" = ( +/obj/item/device/flashlight/lantern, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"ao" = ( +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/obj/effect/decal/sandeffect, +/obj/structure/mirror{ + pixel_x = 28 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"ap" = ( +/obj/structure/flora/ausbushes/sparsegrass, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"aq" = ( +/obj/structure/flora/ausbushes/sunnybush, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"ar" = ( +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"as" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"at" = ( +/obj/item/weapon/tank/internals/oxygen, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"au" = ( +/obj/effect/decal/sandeffect, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"av" = ( +/obj/machinery/door/airlock/hatch, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"aw" = ( +/obj/machinery/door/airlock/sandstone, +/turf/open/floor/wood, +/area/ruin/powered) +"ax" = ( +/obj/structure/extinguisher_cabinet, +/turf/closed/wall/mineral/sandstone{ + baseturf = /turf/open/floor/plating/beach/sand + }, +/area/ruin/powered) +"ay" = ( +/obj/machinery/door/airlock/hatch, +/obj/effect/decal/sandeffect, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"az" = ( +/obj/item/clothing/neck/necklace/dope, +/obj/item/weapon/reagent_containers/spray/spraytan, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"aA" = ( +/obj/effect/decal/sandeffect, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"aB" = ( +/turf/open/floor/plasteel/asteroid/warning{ + baseturf = /turf/open/floor/plating/beach/sand; + dir = 1; + tag = "icon-asteroidwarning (NORTH)" + }, +/area/ruin/powered) +"aC" = ( +/turf/open/floor/wood, +/area/ruin/powered) +"aD" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/drinkingglasses, +/obj/item/weapon/storage/box/drinkingglasses, +/obj/item/weapon/reagent_containers/food/drinks/shaker, +/obj/item/weapon/storage/box/beakers, +/turf/open/floor/wood, +/area/ruin/powered) +"aE" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder, +/turf/open/floor/wood, +/area/ruin/powered) +"aF" = ( +/obj/machinery/vending/boozeomat{ + emagged = 1; + req_access_txt = "0" + }, +/turf/open/floor/wood, +/area/ruin/powered) +"aG" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/barman_recipes, +/obj/item/weapon/reagent_containers/glass/rag, +/turf/open/floor/wood, +/area/ruin/powered) +"aH" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/donkpockets, +/turf/open/floor/wood, +/area/ruin/powered) +"aI" = ( +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/wood, +/area/ruin/powered) +"aJ" = ( +/obj/structure/closet/crate/bin, +/obj/item/weapon/tank/internals/emergency_oxygen, +/obj/item/trash/candy, +/obj/item/toy/talking/owl, +/turf/open/floor/plasteel/asteroid/warning{ + baseturf = /turf/open/floor/plating/beach/sand; + dir = 1; + tag = "icon-asteroidwarning (NORTH)" + }, +/area/ruin/powered) +"aK" = ( +/turf/open/floor/plasteel/asteroid{ + baseturf = /turf/open/floor/plating/beach/sand + }, +/area/ruin/powered) +"aL" = ( +/obj/effect/mob_spawn/human/bartender/alive{ + name = "beach bum sleeper" + }, +/turf/open/floor/wood, +/area/ruin/powered) +"aM" = ( +/obj/structure/reagent_dispensers/beerkeg, +/turf/open/floor/wood, +/area/ruin/powered) +"aN" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/asteroid{ + baseturf = /turf/open/floor/plating/beach/sand + }, +/area/ruin/powered) +"aO" = ( +/obj/structure/stacklifter, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"aP" = ( +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/ruin/powered) +"aQ" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp, +/turf/open/floor/wood, +/area/ruin/powered) +"aR" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/drinks/bottle/tequila, +/turf/open/floor/wood, +/area/ruin/powered) +"aS" = ( +/obj/machinery/processor, +/turf/open/floor/wood, +/area/ruin/powered) +"aT" = ( +/obj/machinery/vending/cola, +/turf/open/floor/plasteel/asteroid{ + baseturf = /turf/open/floor/plating/beach/sand + }, +/area/ruin/powered) +"aU" = ( +/obj/effect/overlay/palmtree_l, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"aV" = ( +/obj/effect/mob_spawn/human/beach/alive{ + flavour_text = "You're, like, totally a dudebro, bruh. Ch'yea. You came here, like, on spring break, hopin' to pick up some bangin' hot chicks, y'knaw?"; + pocket2 = /obj/item/weapon/reagent_containers/food/snacks/pizzaslice/dank; + uniform = /obj/item/clothing/under/pants/youngfolksjeans + }, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"aW" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/asteroid/warning{ + baseturf = /turf/open/floor/plating/beach/sand; + dir = 1; + tag = "icon-asteroidwarning (NORTH)" + }, +/area/ruin/powered) +"aX" = ( +/obj/structure/closet/secure_closet/freezer/meat, +/turf/open/floor/wood, +/area/ruin/powered) +"aY" = ( +/obj/machinery/vending/snack, +/turf/open/floor/plasteel/asteroid{ + baseturf = /turf/open/floor/plating/beach/sand + }, +/area/ruin/powered) +"aZ" = ( +/obj/effect/overlay/coconut, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"ba" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/ruin/powered) +"bb" = ( +/obj/structure/weightlifter, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"bc" = ( +/obj/machinery/door/airlock/sandstone, +/obj/effect/decal/sandeffect, +/turf/open/floor/wood, +/area/ruin/powered) +"bd" = ( +/obj/structure/closet/secure_closet/freezer/kitchen{ + req_access = null + }, +/turf/open/floor/wood, +/area/ruin/powered) +"be" = ( +/obj/vehicle/scooter/skateboard{ + dir = 4 + }, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"bf" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/ruin/powered) +"bg" = ( +/obj/structure/sign/barsign, +/turf/closed/wall/mineral/sandstone, +/area/ruin/powered) +"bh" = ( +/turf/closed/wall/mineral/sandstone, +/area/ruin/powered) +"bi" = ( +/turf/open/floor/plating/beach/sand{ + density = 1; + opacity = 1 + }, +/area/ruin/powered) +"bj" = ( +/obj/structure/chair/wood/normal{ + icon_state = "wooden_chair"; + dir = 4 + }, +/turf/open/floor/plasteel/asteroid{ + baseturf = /turf/open/floor/plating/beach/sand + }, +/area/ruin/powered) +"bk" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/snacks/pastatomato, +/turf/open/floor/plasteel/asteroid{ + baseturf = /turf/open/floor/plating/beach/sand + }, +/area/ruin/powered) +"bl" = ( +/obj/structure/chair/wood/normal{ + icon_state = "wooden_chair"; + dir = 8 + }, +/turf/open/floor/plasteel/asteroid{ + baseturf = /turf/open/floor/plating/beach/sand + }, +/area/ruin/powered) +"bm" = ( +/mob/living/simple_animal/crab, +/turf/open/floor/plating/beach/sand{ + density = 1; + opacity = 1 + }, +/area/ruin/powered) +"bn" = ( +/obj/structure/closet/athletic_mixed, +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/ruin/powered) +"bo" = ( +/obj/structure/rack, +/obj/item/clothing/shoes/sandal, +/obj/item/clothing/shoes/sandal, +/obj/effect/decal/sandeffect, +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/ruin/powered) +"bp" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"bq" = ( +/obj/structure/closet/athletic_mixed, +/obj/effect/decal/sandeffect, +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/ruin/powered) +"br" = ( +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/ruin/powered) +"bs" = ( +/obj/effect/decal/sandeffect, +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/ruin/powered) +"bt" = ( +/obj/machinery/door/airlock/hatch, +/obj/structure/fans/tiny, +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/ruin/powered) +"bu" = ( +/turf/open/floor/pod/light{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"bv" = ( +/obj/effect/decal/sandeffect, +/turf/open/floor/pod/light{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"bw" = ( +/obj/machinery/door/airlock/sandstone, +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/ruin/powered) +"bx" = ( +/obj/structure/flora/rock, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"by" = ( +/obj/machinery/door/airlock/sandstone, +/obj/effect/decal/sandeffect, +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/ruin/powered) +"bz" = ( +/mob/living/simple_animal/crab, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"bA" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/weapon/bikehorn/airhorn, +/obj/structure/table/wood, +/obj/item/weapon/storage/firstaid, +/obj/item/weapon/storage/firstaid/brute, +/turf/open/floor/wood, +/area/ruin/powered) +"bB" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/structure/chair/stool, +/turf/open/floor/wood, +/area/ruin/powered) +"bC" = ( +/obj/structure/table/wood, +/obj/item/weapon/tank/internals/oxygen, +/obj/item/weapon/pickaxe, +/obj/item/clothing/mask/gas, +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/ruin/powered) +"bD" = ( +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/obj/structure/dresser, +/turf/open/floor/plasteel/sandeffect, +/area/ruin/powered) +"bE" = ( +/obj/item/weapon/reagent_containers/spray/spraytan, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"bF" = ( +/obj/item/toy/beach_ball, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"bG" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/obj/item/device/megaphone, +/turf/open/floor/wood, +/area/ruin/powered) +"bH" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/effect/mob_spawn/human/beach/alive{ + flavour_text = "You're a spunky lifeguard! It's up to you to make sure nobody drowns or gets eaten by sharks and stuff."; + has_id = 1; + id_access = "Medical Doctor"; + id_job = "Lifeguard"; + mob_gender = "female" + }, +/turf/open/floor/wood, +/area/ruin/powered) +"bI" = ( +/obj/structure/dresser, +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/ruin/powered) +"bJ" = ( +/obj/structure/chair, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"bK" = ( +/obj/item/weapon/storage/backpack/dufflebag, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"bL" = ( +/obj/effect/decal/sandeffect{ + density = 1 + }, +/obj/effect/decal/fakelattice, +/turf/open/floor/pod/light{ + baseturf = /turf/open/floor/plating/lava/smooth; + density = 1 + }, +/area/ruin/powered) +"bM" = ( +/turf/open/floor/plasteel/stairs/old, +/area/ruin/powered) +"bN" = ( +/obj/structure/flora/ausbushes/reedbush, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"bO" = ( +/obj/item/device/camera, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"bP" = ( +/obj/item/weapon/reagent_containers/food/drinks/beer, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"bQ" = ( +/obj/structure/flora/ausbushes/reedbush, +/turf/open/floor/plating/beach/coastline_t, +/area/ruin/powered) +"bR" = ( +/turf/open/floor/plating/beach/coastline_t, +/area/ruin/powered) +"bS" = ( +/obj/structure/flora/ausbushes/sparsegrass, +/turf/open/floor/plating/beach/coastline_t, +/area/ruin/powered) +"bT" = ( +/turf/open/floor/plating/beach/coastline_b, +/area/ruin/powered) +"bU" = ( +/turf/open/floor/plating/beach/water, +/area/ruin/powered) +"bV" = ( +/obj/structure/flora/ausbushes/stalkybush, +/turf/open/floor/plating/beach/water, +/area/ruin/powered) (1,1,1) = {" -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaabababacacacacacacacacacacacacabababaaaaaaaaaaaa -aaaaaaaaabababadabaeafagahaiajakajalamanaoabapabababaaaaaaaa -aaaaaaababaqararabasasasasatajauavasasauauabararaqababaaaaaa -aaaaababadaraparababajawajaxajajajajajajayabaraparapababaaaa -aaaaabapararazaraAaBajaCaDaEaFaGaHaIajaJaKaAararararadabaaaa -aaababarararararaAaKajaCaCaLaCaCaCaMajaNaKaAarararararababaa -aaabaparaOaraOaraAaKajaPaQaPaRajaCaSajaTaKaAaraUaraqarapabaa -aaabarararaVararaAaKaBaWaWaWaWajaCaXajaYaKaAararaZarararabaa -baabararbbarbbaraAaKaKaKaKaKaKbcaCbdajaKaKaAarararbearapabbf -aaabararararararaAaKaKaKaKaKaKajbgbhajaKaKaAararararararabaa -ababababararararaAaKbibjbkaKaKaBaBaBaBaKaKaAarblararabababab -acbmbnboararararaAaKaKaKaKaKaKaKaKaKaKaKaKaAararararbobpbnab -acbqbqboararaUaraAaAaAaAaAaAaAaAaAaAaAaAaAaAararararbobqbrab -bsbtbuboaAaraZararararararararararararararararararaAbobtbtbs -abbububvaAarararararararbwaparararaZarararararararaAbxbubtab -bsbtbtboaAararararaparapararararaUararararararararaAbobububs -acbrbqboarblararapbwarararararararararbybzararaZararbobrbqab -acbAbBboararararararararararbCararbDarbEbFarararararbobBbAab -ababababarbGarbGarbGarbGbHbGarbGarararbIbJarbGararaUabababab -aaabadapbKararbCbLararararararararblarararbMararararapbKabaa -baabbNbObObPbObObObObObObObObObObObObObObObObObObPbObObOabbf -aaabbQbQbQbQbQbQbQbQbQbQbQbQbQbQbQbQbQbQbQbQbQbQbQbQbQbQabaa -aaababbRbRbRbRbRbRbRbRbRbRbRbRbRbRbRbRbRbRbRbRbRbRbRbRababaa -aaaaabbRbRbRbRbRbRbRbRbRbRbRbRbRbSbRbRbRbRbRbRbRbRbRbRabaaaa -aaaaababbRbRbRbRbRbSbRbRbRbRbRbRbRbRbRbRbRbRbRbRbRbRababaaaa -aaaaaaababbRbRbRbRbRbRbRbRbRbRbRbRbRbRbRbRbSbRbRbRababaaaaaa -aaaaaaaaabababbRbRbRbRbRbRbRbRbRbRbRbRbRbRbRbRabababaaaaaaaa -aaaaaaaaaaaaababababababababababababababababababaaaaaaaaaaaa -aaaaaaaaaaaaababababababababababababababababababaaaaaaaaaaaa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ba +aa +ab +ac +ac +bt +ab +bt +ac +ac +ab +aa +ba +aa +aa +aa +aa +aa +aa +aa +aa +"} +(2,1,1) = {" +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +bn +br +bu +bv +bu +bs +bC +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +"} +(3,1,1) = {" +aa +aa +aa +aa +ab +ab +ab +ap +ar +ar +ar +ab +bo +br +bv +bv +bu +br +bI +ab +ad +bQ +bT +ab +ab +ab +aa +aa +aa +aa +"} +(4,1,1) = {" +aa +aa +aa +ab +ab +ap +ar +ar +ar +ar +ar +ab +bp +bp +bp +bw +bp +bp +bp +ab +ap +bR +bT +bU +bU +ab +ab +aa +aa +aa +"} +(5,1,1) = {" +aa +aa +ab +ab +ad +ar +ar +aO +ar +bb +ar +ar +ar +ar +aA +aA +aA +ar +ar +ar +bN +bR +bT +bU +bU +bU +ab +ab +aa +aa +"} +(6,1,1) = {" +aa +aa +ab +aq +ar +ar +ar +ar +aV +ar +ar +ar +ar +ar +ar +ar +ar +bz +ar +bJ +ar +bS +bT +bU +bU +bU +bU +ab +aa +aa +"} +(7,1,1) = {" +aa +ab +ab +ar +ap +az +ar +aO +ar +bb +ar +ar +ar +aU +aZ +ar +ar +ar +ar +ar +ar +bR +bT +bU +bU +bU +bU +ab +ab +aa +"} +(8,1,1) = {" +aa +ab +ad +ar +ar +ar +ar +ar +ar +ar +ar +ar +ar +ar +ar +ar +ar +ar +ar +bJ +bE +bR +bT +bU +bU +bU +bU +bU +ab +aa +"} +(9,1,1) = {" +aa +ab +ab +ab +ab +aA +aA +aA +aA +aA +aA +aA +aA +aA +ar +ar +ar +ap +ar +ar +bO +bR +bT +bU +bU +bU +bU +bU +ab +aa +"} +(10,1,1) = {" +aa +ac +ae +as +ab +aB +aK +aK +aK +aK +aK +aK +aK +aA +ar +ar +ap +bx +ar +bJ +ar +bR +bT +bU +bU +bV +bU +bU +ab +aa +"} +(11,1,1) = {" +aa +ac +af +as +aj +aj +aj +aj +aB +aK +aK +bj +aK +aA +ar +ar +ar +ar +ar +ar +ar +bR +bT +bU +bU +bU +bU +bU +ab +aa +"} +(12,1,1) = {" +aa +ac +ag +as +aw +aC +aC +aP +aW +aK +aK +bk +aK +aA +ar +ar +ap +ar +ar +bJ +ar +bR +bT +bU +bU +bU +bU +bU +ab +aa +"} +(13,1,1) = {" +aa +ac +ah +as +aj +aD +aC +aQ +aW +aK +aK +bl +aK +aA +ar +bx +ar +ar +ar +bK +ar +bR +bT +bU +bU +bU +bU +bU +ab +aa +"} +(14,1,1) = {" +aa +ac +ai +at +ax +aE +aL +aP +aW +aK +aK +aK +aK +aA +ar +ap +ar +ar +ar +bJ +ar +bR +bT +bU +bU +bU +bU +bU +ab +aa +"} +(15,1,1) = {" +aa +ac +aj +aj +aj +aF +aC +aR +aW +aK +aK +aK +aK +aA +ar +ar +ar +ar +bE +ar +ar +bR +bT +bU +bU +bU +bU +bU +ab +aa +"} +(16,1,1) = {" +aa +ac +ak +au +aj +aG +aC +aj +aj +bc +aj +aB +aK +aA +ar +ar +ar +ar +ar +bJ +ar +bR +bT +bU +bU +bU +bU +bU +ab +aa +"} +(17,1,1) = {" +aa +ac +aj +av +aj +aH +aC +aC +aC +aC +bg +aB +aK +aA +ar +ar +aU +ar +ar +ar +ar +bR +bT +bU +bV +bU +bU +bU +ab +aa +"} +(18,1,1) = {" +aa +ac +al +as +aj +aI +aM +aS +aX +bd +bh +aB +aK +aA +ar +aZ +ar +ar +bF +ar +bz +bR +bT +bU +bU +bU +bU +bU +ab +aa +"} +(19,1,1) = {" +aa +ac +am +as +aj +aj +aj +aj +aj +aj +aj +aB +aK +aA +ar +ar +ar +ar +ar +ar +ar +bR +bT +bU +bU +bU +bU +bU +ab +aa +"} +(20,1,1) = {" +aa +ac +an +au +aj +aJ +aN +aT +aY +aK +aK +aK +aK +aA +ar +ar +ar +bA +bG +bL +ar +bR +bT +bU +bU +bU +bU +bU +ab +aa +"} +(21,1,1) = {" +aa +ac +ao +au +ay +aK +aK +aK +aK +aK +aK +aK +aK +aA +ar +ar +ar +bB +bH +bM +ar +bR +bT +bU +bU +bU +bU +bU +ab +aa +"} +(22,1,1) = {" +aa +ab +ab +ab +ab +aA +aA +aA +aA +aA +aA +aA +aA +aA +ar +ar +ar +ar +ar +ar +bP +bR +bT +bU +bU +bU +bV +bU +ab +aa +"} +(23,1,1) = {" +aa +ab +ap +ar +ar +ar +ar +ar +ar +ar +ar +ar +ar +ar +ar +ar +ar +ar +ar +bJ +ar +bR +bT +bU +bU +bU +bU +bU +ab +aa +"} +(24,1,1) = {" +aa +ab +ab +ar +ap +ar +ar +aU +ar +ar +ar +bz +ar +ar +ar +ar +ar +aZ +ar +ar +ar +bR +bT +bU +bU +bU +bU +ab +ab +aa +"} +(25,1,1) = {" +aa +aa +ab +aq +ar +ar +ar +ar +aZ +ar +ar +ar +ar +ar +ar +ar +ar +ar +ar +ar +ar +bS +bT +bU +bU +bU +bU +ab +aa +aa +"} +(26,1,1) = {" +aa +aa +ab +ab +ap +ar +ar +aq +ar +be +ar +ar +ar +ar +aA +aA +aA +ar +ar +aU +ar +bR +bT +bU +bU +bU +ab +ab +aa +aa +"} +(27,1,1) = {" +aa +aa +aa +ab +ab +ad +ar +ar +ar +ar +ar +ab +bp +bp +bp +by +bp +bp +bp +ab +ap +bR +bT +bU +bU +ab +ab +aa +aa +aa +"} +(28,1,1) = {" +aa +aa +aa +aa +ab +ab +ab +ap +ar +ap +ar +ab +bq +br +bu +bv +bv +bs +bI +ab +bN +bR +bT +ab +ab +ab +aa +aa +aa +aa +"} +(29,1,1) = {" +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +bo +bs +bu +bu +bv +br +bC +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +"} +(30,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +bf +aa +ab +ab +ab +bt +ab +bt +ab +ab +ab +aa +bf +aa +aa +aa +aa +aa +aa +aa +aa "} diff --git a/_maps/RandomRuins/LavaRuins/lavaland_biodome_clown_planet.dmm b/_maps/RandomRuins/LavaRuins/lavaland_biodome_clown_planet.dmm index f5710584a5..c4e4aed9ed 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_biodome_clown_planet.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_biodome_clown_planet.dmm @@ -1,138 +1,2003 @@ -"aa" = (/turf/template_noop,/area/template_noop) -"ab" = (/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/ruin/powered) -"ac" = (/turf/open/floor/noslip{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"ad" = (/mob/living/simple_animal/hostile/retaliate/clown,/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/ruin/powered) -"ae" = (/obj/machinery/light,/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/ruin/powered) -"af" = (/obj/item/clothing/head/cone,/turf/open/floor/noslip{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"ag" = (/obj/item/weapon/paper/crumpled/bloody{info = "Abandon hope, all ye who enter here."},/obj/effect/decal/cleanable/blood/old,/turf/open/floor/noslip{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"ah" = (/turf/closed/wall/r_wall{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"ai" = (/obj/machinery/disposal/deliveryChute{desc = "The following is engraved upon the chute: A FATE WORSE THAN DEATH LIES WITHIN"; dir = 1; name = "THE TRIAL OF HONKITUDE"},/obj/structure/disposalpipe/trunk,/turf/open/floor/noslip{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"aj" = (/obj/structure/disposalpipe/trunk,/obj/structure/disposaloutlet{dir = 1},/turf/open/floor/noslip{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"ak" = (/turf/open/floor/plating/lava/smooth/lava_land_surface,/area/ruin/powered) -"al" = (/obj/structure/disposalpipe/segment{invisibility = 101},/turf/closed/wall/r_wall{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"am" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"; invisibility = 101},/turf/closed/wall/r_wall{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"an" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"; invisibility = 101},/turf/closed/wall/r_wall{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"ao" = (/obj/structure/disposalpipe/trunk,/obj/structure/disposaloutlet{dir = 1},/turf/closed/wall/r_wall{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"ap" = (/obj/structure/disposalpipe/segment{invisibility = 101},/turf/open/indestructible{icon_state = "darkyellowfull"; wet = 5},/area/ruin/powered) -"aq" = (/obj/effect/mob_spawn/human/corpse/damaged,/obj/effect/decal/cleanable/blood/old,/obj/structure/disposalpipe/segment{invisibility = 101},/turf/open/indestructible{icon_state = "darkyellowfull"; wet = 5},/area/ruin/powered) -"ar" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"; invisibility = 101},/turf/open/indestructible{icon_state = "darkyellowfull"; wet = 5},/area/ruin/powered) -"as" = (/obj/structure/disposalpipe/sortjunction{dir = 1; icon_state = "pipe-j2s"; invisibility = 101; sortType = 3},/turf/closed/wall/r_wall{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"at" = (/obj/effect/decal/cleanable/pie_smudge,/obj/structure/disposalpipe/segment{invisibility = 101},/turf/open/indestructible{icon_state = "darkyellowfull"; wet = 5},/area/ruin/powered) -"au" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"; invisibility = 101},/obj/effect/decal/cleanable/dirt,/turf/open/indestructible{icon_state = "darkyellowfull"; wet = 5},/area/ruin/powered) -"av" = (/obj/structure/disposalpipe/segment{dir = 4; invisibility = 101},/obj/effect/decal/cleanable/dirt,/turf/open/indestructible{icon_state = "darkyellowfull"; wet = 5},/area/ruin/powered) -"aw" = (/obj/structure/disposalpipe/segment{dir = 4; invisibility = 101},/turf/open/indestructible{icon_state = "darkyellowfull"; wet = 5},/area/ruin/powered) -"ax" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"; invisibility = 101},/turf/open/indestructible{icon_state = "darkyellowfull"; wet = 5},/area/ruin/powered) -"ay" = (/turf/open/indestructible{icon_state = "darkyellowfull"; wet = 5},/area/ruin/powered) -"az" = (/obj/effect/decal/cleanable/dirt,/turf/open/indestructible{icon_state = "darkyellowfull"; wet = 5},/area/ruin/powered) -"aA" = (/obj/effect/decal/cleanable/cobweb{icon_state = "cobweb2"},/turf/open/indestructible{icon_state = "darkyellowfull"; wet = 5},/area/ruin/powered) -"aB" = (/obj/structure/disposalpipe/segment{dir = 4; invisibility = 101},/obj/effect/decal/cleanable/cobweb,/turf/open/indestructible{icon_state = "darkyellowfull"; wet = 5},/area/ruin/powered) -"aC" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"; invisibility = 101},/turf/open/indestructible{icon_state = "darkyellowfull"; wet = 5},/area/ruin/powered) -"aD" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"; invisibility = 101},/obj/effect/decal/cleanable/dirt,/turf/open/indestructible{icon_state = "darkyellowfull"; wet = 5},/area/ruin/powered) -"aE" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"; invisibility = 101},/obj/item/weapon/bikehorn,/turf/open/indestructible{icon_state = "darkyellowfull"; wet = 5},/area/ruin/powered) -"aF" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"; invisibility = 101},/turf/closed/wall/r_wall{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"aG" = (/obj/structure/disposalpipe/segment{dir = 4; invisibility = 101},/obj/effect/decal/cleanable/pie_smudge,/turf/open/indestructible{icon_state = "darkyellowfull"; wet = 5},/area/ruin/powered) -"aH" = (/obj/structure/disposalpipe/segment{dir = 4; invisibility = 101},/turf/closed/wall/r_wall{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"aI" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"; invisibility = 101},/turf/open/indestructible{icon_state = "darkyellowfull"; wet = 5},/area/ruin/powered) -"aJ" = (/obj/item/weapon/bikehorn,/obj/structure/disposalpipe/segment{dir = 4; invisibility = 101},/turf/open/indestructible{icon_state = "darkyellowfull"; wet = 5},/area/ruin/powered) -"aK" = (/obj/structure/disposalpipe/segment{dir = 4; invisibility = 101},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"aL" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"; invisibility = 101},/turf/closed/wall/r_wall{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"aM" = (/obj/effect/decal/cleanable/dirt,/obj/structure/disposalpipe/segment{invisibility = 101},/turf/open/indestructible{icon_state = "darkyellowfull"; wet = 5},/area/ruin/powered) -"aN" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"aO" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"; invisibility = 101},/obj/effect/decal/cleanable/dirt,/turf/open/indestructible{icon_state = "darkyellowfull"; wet = 5},/area/ruin/powered) -"aP" = (/obj/item/weapon/bikehorn,/obj/effect/decal/cleanable/dirt,/obj/structure/disposalpipe/segment{invisibility = 101},/turf/open/indestructible{icon_state = "darkyellowfull"; wet = 5},/area/ruin/powered) -"aQ" = (/obj/structure/disposalpipe/trunk{dir = 4},/obj/structure/disposaloutlet{dir = 8},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"aR" = (/obj/item/weapon/bikehorn,/obj/structure/disposalpipe/segment{invisibility = 101},/turf/open/indestructible{icon_state = "darkyellowfull"; wet = 5},/area/ruin/powered) -"aS" = (/obj/structure/disposalpipe/segment{dir = 4; invisibility = 101},/turf/open/indestructible{icon_state = "darkredfull"},/area/ruin/powered) -"aT" = (/obj/effect/decal/cleanable/pie_smudge,/turf/open/indestructible{icon_state = "darkyellowfull"; wet = 5},/area/ruin/powered) -"aU" = (/obj/structure/disposalpipe/segment{dir = 4; invisibility = 101},/turf/open/indestructible{icon_state = "white"},/area/ruin/powered) -"aV" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"; invisibility = 101},/obj/effect/decal/cleanable/dirt,/turf/open/indestructible{icon_state = "darkyellowfull"; wet = 5},/area/ruin/powered) -"aW" = (/obj/structure/disposalpipe/segment{dir = 4; invisibility = 101},/obj/structure/table,/obj/item/weapon/paper/crumpled/bloody{info = "If you dare not continue down this path of madness, escape can be found through the chute in this room. "},/obj/item/weapon/pen/fourcolor,/turf/open/indestructible{icon_state = "white"},/area/ruin/powered) -"aX" = (/obj/structure/disposalpipe/segment{dir = 4; invisibility = 101},/obj/structure/table,/obj/item/device/flashlight/lamp/bananalamp,/turf/open/indestructible{icon_state = "white"},/area/ruin/powered) -"aY" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"; invisibility = 101},/obj/effect/decal/cleanable/pie_smudge,/turf/open/indestructible{icon_state = "darkyellowfull"; wet = 5},/area/ruin/powered) -"aZ" = (/obj/structure/disposalpipe/segment{dir = 4; invisibility = 101},/obj/item/weapon/pickaxe,/turf/open/indestructible{icon_state = "white"},/area/ruin/powered) -"ba" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"; invisibility = 101},/turf/open/indestructible{icon_state = "white"},/area/ruin/powered) -"bb" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"; invisibility = 101},/turf/open/indestructible{icon_state = "white"},/area/ruin/powered) -"bc" = (/obj/structure/disposalpipe/segment{dir = 4; invisibility = 101},/turf/open/indestructible{icon_state = "light_on"},/area/ruin/powered) -"bd" = (/obj/structure/disposalpipe/segment{invisibility = 101},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"be" = (/obj/structure/disposalpipe/segment{invisibility = 101},/turf/open/indestructible{icon_state = "white"},/area/ruin/powered) -"bf" = (/turf/open/indestructible{icon_state = "light_on"},/area/ruin/powered) -"bg" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"; invisibility = 101},/turf/open/indestructible{icon_state = "white"},/area/ruin/powered) -"bh" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"; invisibility = 101},/turf/open/indestructible{icon_state = "white"},/area/ruin/powered) -"bi" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/ruin/powered) -"bj" = (/turf/closed/mineral/clown,/area/ruin/powered) -"bk" = (/obj/item/weapon/pickaxe,/turf/open/indestructible{icon_state = "white"},/area/ruin/powered) -"bl" = (/turf/open/indestructible{icon_state = "white"},/area/ruin/powered) -"bm" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"; invisibility = 101},/turf/open/indestructible{icon_state = "darkredfull"},/area/ruin/powered) -"bn" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"; invisibility = 101},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"bo" = (/obj/item/weapon/bikehorn,/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"; invisibility = 101},/turf/open/indestructible{icon_state = "darkyellowfull"; wet = 5},/area/ruin/powered) -"bp" = (/obj/machinery/light{dir = 8},/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/ruin/powered) -"bq" = (/turf/open/chasm/straight_down/lava_land_surface,/area/ruin/powered) -"br" = (/obj/effect/decal/cleanable/cobweb,/turf/open/indestructible{icon_state = "darkredfull"; wet = 5},/area/ruin/powered) -"bs" = (/obj/structure/disposalpipe/segment,/turf/open/indestructible{icon_state = "darkyellowfull"; wet = 5},/area/ruin/powered) -"bt" = (/obj/machinery/disposal/deliveryChute{dir = 1},/obj/structure/disposalpipe/trunk,/turf/open/indestructible{icon_state = "white"},/area/ruin/powered) -"bu" = (/turf/open/indestructible{icon_state = "darkredfull"; wet = 5},/area/ruin/powered) -"bv" = (/turf/open/indestructible/sound{icon_state = "bananium"; name = "bananium floor"; sound = 'sound/effects/clownstep1.ogg'; wet = 5},/area/ruin/powered) -"bw" = (/obj/structure/disposalpipe/junction{dir = 1; icon_state = "pipe-y"; invisibility = 101},/obj/effect/decal/cleanable/dirt,/turf/open/indestructible{icon_state = "darkyellowfull"; wet = 5},/area/ruin/powered) -"bx" = (/obj/structure/mecha_wreckage/honker,/obj/structure/disposalpipe/segment{dir = 4; invisibility = 101},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"by" = (/obj/effect/decal/cleanable/oil,/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"; invisibility = 101},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"bz" = (/obj/effect/decal/cleanable/cobweb{icon_state = "cobweb2"},/turf/open/indestructible/sound{icon_state = "bananium"; name = "bananium floor"; sound = 'sound/effects/clownstep1.ogg'; wet = 5},/area/ruin/powered) -"bA" = (/obj/item/weapon/grown/bananapeel{color = "#2F3000"; name = "stealth banana peel"},/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/ruin/powered) -"bB" = (/obj/effect/decal/cleanable/dirt,/turf/open/indestructible/sound{icon_state = "bananium"; name = "bananium floor"; sound = 'sound/effects/clownstep1.ogg'; wet = 5},/area/ruin/powered) -"bC" = (/obj/effect/mob_spawn/human/corpse/damaged,/obj/effect/decal/cleanable/blood/old,/turf/open/indestructible{icon_state = "darkyellowfull"; wet = 5},/area/ruin/powered) -"bD" = (/obj/structure/disposalpipe/segment{dir = 4; invisibility = 101},/turf/open/indestructible{icon_state = "darkredfull"; wet = 5},/area/ruin/powered) -"bE" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"; invisibility = 101},/turf/open/indestructible{icon_state = "darkredfull"; wet = 5},/area/ruin/powered) -"bF" = (/turf/open/floor/plating/lava/smooth/lava_land_surface{initial_gas_mix = "o2=22;n2=82;TEMP=293.15"},/area/ruin/powered) -"bG" = (/obj/item/weapon/reagent_containers/food/drinks/trophy/gold_cup,/obj/structure/table/glass,/turf/open/floor/carpet{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"bH" = (/turf/open/floor/carpet{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"bI" = (/obj/machinery/disposal/deliveryChute,/obj/structure/disposalpipe/trunk{dir = 1},/turf/open/floor/carpet{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"bJ" = (/obj/effect/decal/cleanable/cobweb,/turf/open/floor/plating/lava/smooth/lava_land_surface{initial_gas_mix = "o2=22;n2=82;TEMP=293.15"},/area/ruin/powered) -"bK" = (/obj/structure/statue/bananium/clown,/turf/open/floor/carpet{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"bL" = (/obj/structure/table/glass,/obj/item/weapon/grown/bananapeel/bluespace,/turf/open/floor/carpet{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"bM" = (/obj/structure/table/glass,/obj/item/clothing/shoes/clown_shoes/banana_shoes,/turf/open/floor/carpet{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"bN" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ruin/powered) -"bO" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating/lava/smooth/lava_land_surface{initial_gas_mix = "o2=22;n2=82;TEMP=293.15"},/area/ruin/powered) -"bP" = (/obj/item/weapon/coin/clown,/obj/item/weapon/coin/clown,/obj/item/weapon/coin/clown,/obj/item/weapon/coin/clown,/turf/open/floor/carpet{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"bQ" = (/obj/item/slime_extract/rainbow,/obj/structure/table/glass,/turf/open/floor/carpet{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"bR" = (/obj/item/weapon/bikehorn/airhorn,/turf/open/floor/carpet{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"bS" = (/obj/structure/table/glass,/obj/item/weapon/gun/magic/staff/honk,/turf/open/floor/carpet{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"bT" = (/obj/item/weapon/bikehorn,/turf/open/indestructible/sound{icon_state = "bananium"; name = "bananium floor"; sound = 'sound/effects/clownstep1.ogg'; wet = 5},/area/ruin/powered) -"bU" = (/obj/effect/mob_spawn/human/corpse/damaged,/obj/effect/decal/cleanable/blood/old,/turf/open/floor/plating/lava/smooth/lava_land_surface{initial_gas_mix = "o2=22;n2=82;TEMP=293.15"},/area/ruin/powered) -"bV" = (/obj/effect/mob_spawn/human/corpse/damaged,/obj/effect/decal/cleanable/blood/old,/turf/open/indestructible/sound{icon_state = "bananium"; name = "bananium floor"; sound = 'sound/effects/clownstep1.ogg'; wet = 5},/area/ruin/powered) -"bW" = (/obj/machinery/door/airlock/clown,/turf/open/indestructible/sound{icon_state = "bananium"; name = "bananium floor"; sound = 'sound/effects/clownstep1.ogg'; wet = 5},/area/ruin/powered) -"bX" = (/obj/item/weapon/bikehorn,/obj/effect/decal/cleanable/dirt,/turf/open/indestructible/sound{icon_state = "bananium"; name = "bananium floor"; sound = 'sound/effects/clownstep1.ogg'; wet = 5},/area/ruin/powered) -"bY" = (/obj/machinery/light{dir = 1},/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/ruin/powered) +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/template_noop, +/area/template_noop) +"ab" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/powered) +"ac" = ( +/turf/open/floor/noslip{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"ad" = ( +/mob/living/simple_animal/hostile/retaliate/clown, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/powered) +"ae" = ( +/obj/machinery/light, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/powered) +"af" = ( +/obj/item/clothing/head/cone, +/turf/open/floor/noslip{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"ag" = ( +/obj/item/weapon/paper/crumpled/bloody{ + info = "Abandon hope, all ye who enter here." + }, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/noslip{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"ah" = ( +/turf/closed/wall/r_wall{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"ai" = ( +/obj/machinery/disposal/deliveryChute{ + desc = "The following is engraved upon the chute: A FATE WORSE THAN DEATH LIES WITHIN"; + dir = 1; + name = "THE TRIAL OF HONKITUDE" + }, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/noslip{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"aj" = ( +/obj/structure/disposalpipe/trunk, +/obj/structure/disposaloutlet{ + dir = 1 + }, +/turf/open/floor/noslip{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"ak" = ( +/turf/open/floor/plating/lava/smooth, +/area/ruin/powered) +"al" = ( +/obj/structure/disposalpipe/segment{ + invisibility = 101 + }, +/turf/closed/wall/r_wall{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"am" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c"; + invisibility = 101 + }, +/turf/closed/wall/r_wall{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"an" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c"; + invisibility = 101 + }, +/turf/closed/wall/r_wall{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"ao" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c"; + invisibility = 101 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"ap" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c"; + invisibility = 101 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"aq" = ( +/obj/structure/disposalpipe/trunk, +/obj/structure/disposaloutlet{ + dir = 1 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"ar" = ( +/obj/structure/disposalpipe/segment{ + invisibility = 101 + }, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"as" = ( +/obj/effect/mob_spawn/human/corpse/damaged, +/obj/effect/decal/cleanable/blood/old, +/obj/structure/disposalpipe/segment{ + invisibility = 101 + }, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"at" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c"; + invisibility = 101 + }, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"au" = ( +/obj/structure/disposalpipe/segment{ + invisibility = 101 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"av" = ( +/obj/structure/disposalpipe/sortjunction{ + dir = 1; + icon_state = "pipe-j2s"; + invisibility = 101; + sortType = 3 + }, +/turf/closed/wall/r_wall{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"aw" = ( +/obj/structure/window/reinforced, +/obj/structure/disposalpipe/segment{ + invisibility = 101 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"ax" = ( +/obj/effect/decal/cleanable/pie_smudge, +/obj/structure/disposalpipe/segment{ + invisibility = 101 + }, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"ay" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c"; + invisibility = 101 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"az" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"aA" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"aB" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c"; + invisibility = 101 + }, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"aC" = ( +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"aD" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"aE" = ( +/obj/effect/decal/cleanable/cobweb{ + icon_state = "cobweb2" + }, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"aF" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/obj/effect/decal/cleanable/cobweb, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"aG" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c"; + invisibility = 101 + }, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"aH" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c"; + invisibility = 101 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"aI" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c"; + invisibility = 101 + }, +/obj/item/weapon/bikehorn, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"aJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c"; + invisibility = 101 + }, +/turf/closed/wall/r_wall{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"aK" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/obj/effect/decal/cleanable/pie_smudge, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"aL" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/turf/closed/wall/r_wall{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"aM" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c"; + invisibility = 101 + }, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"aN" = ( +/obj/structure/disposalpipe/segment{ + invisibility = 101 + }, +/turf/open/floor/plating, +/area/ruin/powered) +"aO" = ( +/obj/item/weapon/bikehorn, +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"aP" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"aQ" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"aR" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c"; + invisibility = 101 + }, +/turf/open/floor/plating, +/area/ruin/powered) +"aS" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c"; + invisibility = 101 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"aT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + invisibility = 101 + }, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"aU" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"aV" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c"; + invisibility = 101 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"aW" = ( +/obj/item/weapon/bikehorn, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + invisibility = 101 + }, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"aX" = ( +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/structure/disposaloutlet{ + dir = 8 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"aY" = ( +/obj/item/weapon/bikehorn, +/obj/structure/disposalpipe/segment{ + invisibility = 101 + }, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"aZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/turf/open/indestructible{ + icon_state = "darkredfull" + }, +/area/ruin/powered) +"ba" = ( +/obj/effect/decal/cleanable/pie_smudge, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"bb" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/turf/open/indestructible{ + icon_state = "white" + }, +/area/ruin/powered) +"bc" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c"; + invisibility = 101 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"bd" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/obj/structure/table, +/obj/item/weapon/paper/crumpled/bloody{ + info = "If you dare not continue down this path of madness, escape can be found through the chute in this room. " + }, +/obj/item/weapon/pen/fourcolor, +/turf/open/indestructible{ + icon_state = "white" + }, +/area/ruin/powered) +"be" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/obj/structure/table, +/obj/item/device/flashlight/lamp/bananalamp, +/turf/open/indestructible{ + icon_state = "white" + }, +/area/ruin/powered) +"bf" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c"; + invisibility = 101 + }, +/obj/effect/decal/cleanable/pie_smudge, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"bg" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/obj/item/weapon/pickaxe, +/turf/open/indestructible{ + icon_state = "white" + }, +/area/ruin/powered) +"bh" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c"; + invisibility = 101 + }, +/turf/open/indestructible{ + icon_state = "white" + }, +/area/ruin/powered) +"bi" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c"; + invisibility = 101 + }, +/turf/open/indestructible{ + icon_state = "white" + }, +/area/ruin/powered) +"bj" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/turf/open/indestructible{ + icon_state = "light_on" + }, +/area/ruin/powered) +"bk" = ( +/obj/structure/disposalpipe/segment{ + invisibility = 101 + }, +/turf/open/indestructible{ + icon_state = "white" + }, +/area/ruin/powered) +"bl" = ( +/turf/open/indestructible{ + icon_state = "light_on" + }, +/area/ruin/powered) +"bm" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c"; + invisibility = 101 + }, +/turf/open/indestructible{ + icon_state = "white" + }, +/area/ruin/powered) +"bn" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c"; + invisibility = 101 + }, +/turf/open/indestructible{ + icon_state = "white" + }, +/area/ruin/powered) +"bo" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/powered) +"bp" = ( +/turf/closed/mineral/clown, +/area/ruin/powered) +"bq" = ( +/obj/item/weapon/pickaxe, +/turf/open/indestructible{ + icon_state = "white" + }, +/area/ruin/powered) +"br" = ( +/turf/open/indestructible{ + icon_state = "white" + }, +/area/ruin/powered) +"bs" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c"; + invisibility = 101 + }, +/turf/open/indestructible{ + icon_state = "darkredfull" + }, +/area/ruin/powered) +"bt" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c"; + invisibility = 101 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"bu" = ( +/obj/item/weapon/bikehorn, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c"; + invisibility = 101 + }, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"bv" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/powered) +"bw" = ( +/turf/open/chasm/straight_down/lava_land_surface, +/area/ruin/powered) +"bx" = ( +/obj/effect/decal/cleanable/cobweb, +/turf/open/indestructible{ + icon_state = "darkredfull"; + wet = 5 + }, +/area/ruin/powered) +"by" = ( +/obj/structure/disposalpipe/segment, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"bz" = ( +/obj/machinery/disposal/deliveryChute{ + dir = 1 + }, +/obj/structure/disposalpipe/trunk, +/turf/open/indestructible{ + icon_state = "white" + }, +/area/ruin/powered) +"bA" = ( +/turf/open/indestructible{ + icon_state = "darkredfull"; + wet = 5 + }, +/area/ruin/powered) +"bB" = ( +/turf/open/indestructible/sound{ + icon_state = "bananium"; + name = "bananium floor"; + sound = 'sound/effects/clownstep1.ogg'; + wet = 5 + }, +/area/ruin/powered) +"bC" = ( +/obj/structure/disposalpipe/junction{ + dir = 1; + icon_state = "pipe-y"; + invisibility = 101 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"bD" = ( +/obj/structure/mecha_wreckage/honker, +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"bE" = ( +/obj/effect/decal/cleanable/oil, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c"; + invisibility = 101 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"bF" = ( +/obj/effect/decal/cleanable/cobweb{ + icon_state = "cobweb2" + }, +/turf/open/indestructible/sound{ + icon_state = "bananium"; + name = "bananium floor"; + sound = 'sound/effects/clownstep1.ogg'; + wet = 5 + }, +/area/ruin/powered) +"bG" = ( +/obj/item/weapon/grown/bananapeel{ + color = "#2F3000"; + name = "stealth banana peel" + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/powered) +"bH" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible/sound{ + icon_state = "bananium"; + name = "bananium floor"; + sound = 'sound/effects/clownstep1.ogg'; + wet = 5 + }, +/area/ruin/powered) +"bI" = ( +/obj/effect/mob_spawn/human/corpse/damaged, +/obj/effect/decal/cleanable/blood/old, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"bJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/turf/open/indestructible{ + icon_state = "darkredfull"; + wet = 5 + }, +/area/ruin/powered) +"bK" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c"; + invisibility = 101 + }, +/turf/open/indestructible{ + icon_state = "darkredfull"; + wet = 5 + }, +/area/ruin/powered) +"bL" = ( +/obj/item/weapon/reagent_containers/food/drinks/trophy/gold_cup, +/obj/structure/table/glass, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"bM" = ( +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"bN" = ( +/obj/machinery/disposal/deliveryChute, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"bO" = ( +/obj/effect/decal/cleanable/cobweb, +/turf/open/indestructible/sound{ + icon_state = "bananium"; + name = "bananium floor"; + sound = 'sound/effects/clownstep1.ogg'; + wet = 5 + }, +/area/ruin/powered) +"bP" = ( +/obj/structure/statue/bananium/clown, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"bQ" = ( +/obj/structure/table/glass, +/obj/item/weapon/grown/bananapeel/bluespace, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"bR" = ( +/obj/structure/table/glass, +/obj/item/clothing/shoes/clown_shoes/banana_shoes, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"bS" = ( +/obj/item/weapon/coin/clown, +/obj/item/weapon/coin/clown, +/obj/item/weapon/coin/clown, +/obj/item/weapon/coin/clown, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"bT" = ( +/obj/item/slime_extract/rainbow, +/obj/structure/table/glass, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"bU" = ( +/obj/item/weapon/bikehorn/airhorn, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"bV" = ( +/obj/structure/table/glass, +/obj/item/weapon/gun/magic/staff/honk, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"bW" = ( +/obj/item/weapon/bikehorn, +/turf/open/indestructible/sound{ + icon_state = "bananium"; + name = "bananium floor"; + sound = 'sound/effects/clownstep1.ogg'; + wet = 5 + }, +/area/ruin/powered) +"bX" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/ruin/powered) +"bY" = ( +/obj/effect/mob_spawn/human/corpse/damaged, +/obj/effect/decal/cleanable/blood/old, +/turf/open/indestructible/sound{ + icon_state = "bananium"; + name = "bananium floor"; + sound = 'sound/effects/clownstep1.ogg'; + wet = 5 + }, +/area/ruin/powered) +"bZ" = ( +/obj/machinery/door/airlock/clown, +/turf/open/indestructible/sound{ + icon_state = "bananium"; + name = "bananium floor"; + sound = 'sound/effects/clownstep1.ogg'; + wet = 5 + }, +/area/ruin/powered) +"ca" = ( +/obj/item/weapon/bikehorn, +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible/sound{ + icon_state = "bananium"; + name = "bananium floor"; + sound = 'sound/effects/clownstep1.ogg'; + wet = 5 + }, +/area/ruin/powered) +"cb" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/powered) (1,1,1) = {" -aaaaaaaaaaaaaaaaaaaaaaaaababacacacababaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaadaeadadafacagacacadadaeadaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaahahahahahahahahaiacajahahahahahahahahahaaaaaaaaaaaa -aaaaaaaaahahahakakakakakakahalahalahakakakakakakakahahaaaaaaaaaa -aaaaaaahahakakakamanamanahakalakalakakahahaoahahakakahahaaaaaaaa -aaaaahahakakamanapaqalaparanalamasahahahahalahahahahakahahaaaaaa -aaaaahakakahatapapapapapapapapapauavavawawaxayazaAahakakahaaaaaa -aaahahakamaBaxaCaDaCaDaEaxapalaFawavavawaGaHawawawaIahakahahaaaa -aaahakakalaravavawaHavavaIapaparawavaJawaHaKawaHawaxahakakahaaaa -aaahakamaLapamaHawavavanatapaMaCaHawawavavavaJawawaIahaNakahaaaa -aaahakaFaOaPapaQaHaHaHaxapaRalarawawawawaHaHaSaHaIapaTaNakahaaaa -aaahakamaDapaFaHaUaUaUaHaxapatapaVawaHaHaWaXaUaHaxapayaNakahaaaa -aaahakaFaYaCaHaUaUaUaZaUaHaDapapapayahbaaUaUbbbaaHaLahahakahaaaa -aaahahakaFaHaHaUaUbcbcaUaHawaDbdaCaIahbebfbfbgbhahahahakahahaaaa -aabiahahakakahbjbkbfbfblbmaOazbnboaCaSbhbfbfblbjahakakahahbpaaaa -ababbqahahahbrahbjblbjahalauawaIbsaTahahbjbtbjahbuahahahbqababaa -abbqbqbqahbvbubuahbjahahaFavaIaCbwaHbxbyahalahbububzahbqbqabbqaa -ababbAbqahbBbvbububububuahahaCaOazbCahaFbDbEbububvbvahbqbAababaa -ababbqbqahbvbBbvbubububvahahahalahahbvbvbuahbubvbvbvahbqbqababaa -abbqbqahahbFbBbvbvbvbvbvahbGbHbIbHbGahbvbvbvbvbvbvahahahbqbqabaa -aabiahahbJbFbvbvbvbvbvahbKbHbLbHbMbHbKahbvbvbvbvbBbFbFahahbpaaaa -aaahahbNbFbObBbBbBbvbvahbPbHbQbRbSbHbPahbvbBbBbvbTbFbFbNahahaaaa -aaahakakbNbUbFbvbvbvbvbvahbHbHbHbHbHahbVbvbBbBbvbvbFbFbNakahaaaa -aaahakakbNbFbFbvbvbBbvbvbvahahbWahahbvbvbBbBbvbvbvbFbFbNakahaaaa -aaahakakakbNbFbFbXbBbvbBbvbvbBbvbvbvbvbvbvbvbvbvbFbFbFbNakahaaaa -aaahahakakakahbFbObvbvbvbBbBbBbBbvbvbBbBbvbTbvbFbFbFbNakahahaaaa -aaaaahakakakakbNbFbFbObBbXbBbvbvbvbvbBbFbFbFbFbFbFbNakakahaaaaaa -aaaaahahakakakakahbFbFbFbFbFbFbFbFbFbFbFbFbFbFbNbNakakahahaaaaaa -aaaaaaahahakakakakbNbNbFbFbFbFbFbFbFbFbNbNbNbNakakakahahaaaaaaaa -aaaaaaaaahahahakakakakbNbNbNbNbNbNbNbNbNakakakakahahahaaaaaaaaaa -aaaaaaaaaabYahahahahakakakakakakakakakakakahahahahbYaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaahahahahahahahahahahahahahaaaaaaaaaaaaaaaaaaaa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(2,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ah +ah +ah +ah +ah +ah +ah +bo +ab +bw +ab +ab +bw +bo +ah +ah +ah +ah +ah +aa +aa +aa +aa +aa +aa +"} +(3,1,1) = {" +aa +aa +aa +aa +aa +ah +ah +ah +ak +ak +ak +ak +ak +ah +ah +bw +bw +bG +bw +bw +ah +ah +ak +ak +ak +ah +ah +ah +aa +aa +aa +aa +"} +(4,1,1) = {" +aa +aa +aa +aa +ah +ah +ak +ak +ak +aR +aJ +ao +aJ +ak +ah +ah +bw +bw +bw +ah +ah +ak +ak +bX +aQ +ak +ak +ah +ah +aa +aa +aa +"} +(5,1,1) = {" +aa +aa +aa +ah +ah +ak +ak +am +aN +aS +aV +aH +bf +aJ +ak +ah +ah +ah +ah +ah +bO +bB +bX +ak +ak +ak +ak +ak +ah +ah +aa +aa +"} +(6,1,1) = {" +aa +aa +aa +ah +ak +ak +ah +aF +at +ar +aW +ar +aG +aL +ak +ah +bB +bH +bB +ah +bB +bH +bY +bB +bX +ak +bX +ak +ak +ah +cb +aa +"} +(7,1,1) = {" +aa +aa +ah +ah +ak +am +ax +aB +az +am +ar +aJ +aL +aL +ah +bx +bA +bB +bH +bH +bB +bH +bB +bB +bB +ah +ak +aQ +ak +ah +ah +aa +"} +(8,1,1) = {" +aa +aa +ah +ak +ak +ap +ar +aG +az +aL +aX +aL +bb +bb +bp +ah +bA +bA +bB +ah +ah +bH +ah +bB +bB +bB +bX +ak +ak +ak +ah +aa +"} +(9,1,1) = {" +aa +aa +ah +ak +am +ar +ar +aH +aA +aA +aL +bb +bb +bb +bq +bp +ah +ah +bA +bB +bB +bH +bB +bB +ca +bH +bB +ah +ak +ak +ah +aa +"} +(10,1,1) = {" +aa +ad +ah +ak +an +as +ar +aG +aL +az +aL +bb +bb +bj +bl +br +bA +bA +bA +bB +ah +bB +bB +bH +bH +bB +bB +ak +bX +ak +ah +ah +"} +(11,1,1) = {" +aa +ae +ah +ak +ao +al +ar +aH +az +az +aL +bb +bg +bj +bl +bp +ah +bA +bA +bB +bB +ah +bB +bB +bB +bB +bH +ak +bX +ak +ak +ah +"} +(12,1,1) = {" +aa +ad +ah +ak +ap +ar +ar +aI +az +an +aB +aL +bb +bb +br +ah +ah +bA +bB +bB +ah +ah +bB +bB +ah +bB +bH +ak +aQ +bX +ak +ah +"} +(13,1,1) = {" +ab +ad +ah +ak +ah +at +ar +aB +aM +ax +ar +aB +aL +aL +bs +al +aJ +ah +ah +ah +bP +bS +ah +bB +bB +bH +ca +bB +ak +bX +ak +ah +"} +(14,1,1) = {" +ab +af +ah +ah +ak +an +ar +ar +ar +ar +aY +ar +aH +aA +aV +ay +az +ah +ah +bL +bM +bM +bM +ah +bB +bH +bH +bB +ak +bX +ak +ah +"} +(15,1,1) = {" +ac +ac +ai +al +al +au +ar +al +ar +aT +al +ax +ar +aH +aD +aA +aM +aG +ah +bM +bQ +bT +bM +ah +ah +bH +bB +bB +ak +bX +ak +ah +"} +(16,1,1) = {" +ac +ag +ac +ah +ak +ao +ar +aJ +at +aG +at +ar +ar +au +bt +aM +aG +aV +al +bN +bM +bU +bM +bZ +bB +bH +bB +ah +ak +bX +ak +ah +"} +(17,1,1) = {" +ac +ac +aj +al +al +av +ay +aA +aA +aL +aA +bc +ar +aG +bu +by +bC +aD +ah +bM +bR +bV +bM +ah +bB +bB +bB +bB +ak +bX +ak +ah +"} +(18,1,1) = {" +ab +ac +ah +ah +ak +ah +az +az +az +aA +aA +aA +aC +aM +aG +ba +aL +bI +ah +bL +bM +bM +bM +ah +bB +bB +bB +bB +ak +bX +ak +ah +"} +(19,1,1) = {" +ab +ad +ah +ak +ak +ah +az +az +aO +aA +aA +aL +ah +ah +aZ +ah +bD +ah +bB +ah +bP +bS +ah +bB +bB +bH +bH +bB +ak +bX +ak +ah +"} +(20,1,1) = {" +aa +ad +ah +ak +ah +ah +aA +aA +aA +az +aA +aL +bh +bk +bn +ah +bE +aJ +bB +bB +ah +ah +bY +bB +bB +bH +bB +ak +bX +aQ +ak +ah +"} +(21,1,1) = {" +aa +ae +ah +ak +ah +ah +aA +aK +aL +az +aL +bd +bb +bl +bl +bp +ah +bJ +bA +bB +bB +ah +bB +bH +bB +bB +bB +ak +bX +ak +ak +ah +"} +(22,1,1) = {" +aa +ad +ah +ak +aq +aw +aB +aL +aP +az +aL +be +bb +bl +bl +bz +al +bK +ah +bB +bB +bH +bH +bH +bB +bW +bB +ah +bX +ak +ah +ah +"} +(23,1,1) = {" +aa +aa +ah +ak +ah +ah +aC +aA +aA +aO +aZ +bb +bi +bm +br +bp +ah +bA +bA +bB +bB +bH +bH +bB +bB +ah +ah +ak +aQ +ak +ah +aa +"} +(24,1,1) = {" +aa +aa +ah +ak +ah +ah +aD +aA +aL +aA +aL +aL +bh +bn +bp +ah +bA +bA +bB +bB +bB +bB +bB +ah +bB +bB +ak +aQ +ak +ak +ah +aa +"} +(25,1,1) = {" +aa +aa +ah +ak +ak +ah +aE +aA +aA +aA +aM +aB +aL +ah +ah +bA +bA +bB +bB +bB +bH +bW +bB +bB +bB +ah +ak +bX +ak +ah +ah +aa +"} +(26,1,1) = {" +aa +aa +ah +ah +ak +ah +ah +aM +aB +aM +ar +ar +aS +ah +ak +ah +bF +bB +bB +ah +bB +bB +ah +bB +bB +ak +aQ +ak +ak +ah +cb +aa +"} +(27,1,1) = {" +aa +aa +aa +ah +ah +ak +ak +ah +aQ +ah +ba +aC +aQ +ah +ak +ah +ah +ah +ah +ah +bB +bB +bB +ak +ak +ak +ak +ak +ah +ah +aa +aa +"} +(28,1,1) = {" +aa +aa +aa +aa +ah +ah +ak +ak +ak +aU +aU +aU +ah +ak +ah +ah +bw +bw +bw +ah +ah +ak +ak +aQ +bX +ak +ak +ah +ah +aa +aa +aa +"} +(29,1,1) = {" +aa +aa +aa +aa +aa +ah +ah +ah +ak +ak +ak +ak +ak +ah +ah +bw +bw +bG +bw +bw +ah +ah +ak +ak +ak +ah +ah +ah +aa +aa +aa +aa +"} +(30,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ah +ah +ah +ah +ah +ah +ah +bv +ab +ab +ab +ab +bw +bv +ah +ah +ah +ah +ah +aa +aa +aa +aa +aa +aa +"} +(31,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +bw +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(32,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa "} diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm index ede21a8b1b..0261014729 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm @@ -1,148 +1,1505 @@ -"aa" = (/turf/template_noop,/area/template_noop) -"ab" = (/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors) -"ac" = (/turf/open/floor/grass{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300"},/area/lavaland/surface/outdoors) -"ad" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 6},/turf/open/floor/grass{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300"},/area/lavaland/surface/outdoors) -"ae" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 1},/turf/open/floor/grass{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300"},/area/lavaland/surface/outdoors) -"af" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 10},/turf/open/floor/grass{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300"},/area/lavaland/surface/outdoors) -"ag" = (/obj/structure/flora/ausbushes/brflowers,/turf/open/floor/grass{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300"},/area/lavaland/surface/outdoors) -"ah" = (/obj/machinery/atmospherics/components/unary/tank/air{dir = 4},/turf/open/floor/grass{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300"},/area/lavaland/surface/outdoors) -"ai" = (/obj/machinery/atmospherics/components/binary/valve,/turf/open/floor/grass{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300"},/area/lavaland/surface/outdoors) -"aj" = (/turf/closed/wall/shuttle/smooth{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"ak" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"al" = (/obj/machinery/atmospherics/pipe/simple/general/visible,/turf/closed/wall/shuttle/smooth{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"am" = (/turf/open/floor/plasteel/bar{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"an" = (/obj/structure/toilet,/turf/open/floor/plasteel/bar{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"ao" = (/obj/machinery/vending/coffee,/turf/open/floor/plasteel/cmo{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"ap" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp,/turf/open/floor/plasteel/cmo{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"aq" = (/obj/structure/table/wood,/obj/item/device/taperecorder,/obj/item/weapon/pen/blue,/turf/open/floor/plasteel/cmo{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"ar" = (/obj/structure/table/wood,/obj/item/toy/carpplushie,/turf/open/floor/plasteel/cmo{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"as" = (/obj/machinery/vending/snack,/turf/open/floor/plasteel/cmo{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"at" = (/obj/structure/table/reinforced,/obj/item/clothing/gloves/color/latex,/obj/item/clothing/mask/surgical,/obj/item/clothing/suit/apron/surgical,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"au" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 1},/obj/machinery/portable_atmospherics/pump,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"av" = (/obj/structure/table,/obj/item/weapon/circular_saw,/obj/item/weapon/scalpel{pixel_y = 12},/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"aw" = (/obj/structure/table,/obj/item/weapon/cautery{pixel_x = 4},/obj/item/weapon/surgicaldrill,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"ax" = (/obj/structure/table,/obj/item/weapon/surgical_drapes,/obj/item/weapon/razor,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"ay" = (/turf/open/floor/plasteel/cmo{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"az" = (/obj/structure/chair/office/dark{dir = 1},/turf/open/floor/plasteel/cmo{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"aA" = (/obj/structure/chair/office/dark{dir = 4},/turf/open/floor/plasteel/cmo{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"aB" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 4},/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"aC" = (/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"aD" = (/obj/structure/bed/roller,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"aE" = (/obj/structure/closet/crate/trashcart,/obj/item/weapon/storage/bag/trash,/obj/item/trash/cheesie,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/bodybag,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka,/turf/open/floor/grass{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300"},/area/lavaland/surface/outdoors) -"aF" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/structure/mirror{pixel_x = -28},/turf/open/floor/plasteel/bar{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"aG" = (/obj/structure/noticeboard{dir = 1; pixel_y = -27},/obj/item/weapon/paper{info = "Nothing of interest to report."; name = "Important Notice - Mrs. Henderson"},/turf/open/floor/plasteel/cmo{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"aH" = (/obj/structure/closet/secure_closet/medical2,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"aI" = (/obj/machinery/computer/operating,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"aJ" = (/obj/structure/table/optable,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"aK" = (/obj/structure/table,/obj/item/weapon/retractor,/obj/item/weapon/hemostat,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"aL" = (/turf/closed/wall/shuttle/smooth/nodiagonal{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"aM" = (/obj/machinery/door/unpowered/shuttle{name = "Restroom"},/turf/open/floor/plasteel/bar{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"aN" = (/obj/structure/extinguisher_cabinet,/turf/closed/wall/shuttle/smooth{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"aO" = (/obj/machinery/door/unpowered/shuttle{name = "Break Room"},/turf/open/floor/plasteel/cmo{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"aP" = (/obj/structure/extinguisher_cabinet,/turf/closed/wall/shuttle/smooth/nodiagonal{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"aQ" = (/obj/machinery/door/unpowered/shuttle{name = "Emergency Care"},/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"aR" = (/turf/closed/wall/shuttle/smooth,/area/ruin/powered) -"aS" = (/turf/open/floor/plasteel/grimy{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/lavaland/surface/outdoors) -"aT" = (/obj/machinery/door/unpowered/shuttle{desc = "There's a note wedged in the seam saying something about directing pizza here."; name = "Staff Entrance"},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"aU" = (/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"aV" = (/turf/open/floor/plasteel/blue/side{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 1},/area/ruin/powered) -"aW" = (/obj/effect/mob_spawn/human/doctor/alive/lavaland,/turf/open/floor/plasteel/blue/side{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 1},/area/ruin/powered) -"aX" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/random,/turf/open/floor/plasteel/blue/side{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 1},/area/ruin/powered) -"aY" = (/obj/machinery/iv_drip,/turf/open/floor/plasteel/blue/side{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 1},/area/ruin/powered) -"aZ" = (/turf/open/floor/plasteel/blue/side{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 0},/area/ruin/powered) -"ba" = (/turf/open/floor/plasteel/blue/corner{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 8},/area/ruin/powered) -"bb" = (/turf/open/floor/plasteel/blue/side{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 4},/area/ruin/powered) -"bc" = (/obj/machinery/door/unpowered/shuttle{name = "Morgue"},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"bd" = (/obj/machinery/door/unpowered/shuttle{name = "Medical Supplies"},/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"be" = (/obj/machinery/door/unpowered/shuttle{name = "Safety Supplies"},/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"bf" = (/obj/machinery/door/unpowered/shuttle{name = "Tool Storage"},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"bg" = (/turf/open/floor/plasteel/blue/side{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 8},/area/ruin/powered) -"bh" = (/obj/structure/closet,/obj/effect/decal/cleanable/cobweb,/obj/item/ammo_casing/shotgun/dart,/obj/item/ammo_casing/shotgun/dart,/obj/item/weapon/gun/projectile/revolver/doublebarrel{desc = "For putting critters out to pasture."},/obj/item/ammo_casing/shotgun/buckshot,/obj/item/weapon/storage/box/bodybags,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"bi" = (/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"bj" = (/obj/structure/closet/secure_closet/medical1,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"bk" = (/obj/machinery/vending/wallmed{pixel_y = 28},/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"bl" = (/obj/structure/closet/l3closet,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"bm" = (/obj/item/stack/cable_coil/random,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"bn" = (/obj/structure/bodycontainer/morgue,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"bo" = (/obj/effect/decal/cleanable/ash,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"bp" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/storage/backpack/dufflebag/med,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"bq" = (/obj/structure/table/reinforced,/obj/item/device/laser_pointer,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"br" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/firstaid/regular,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"bs" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/gloves,/obj/item/weapon/storage/box/masks{pixel_x = 3; pixel_y = 3},/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"bt" = (/obj/effect/decal/cleanable/oil,/obj/item/weapon/storage/toolbox/mechanical,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"bu" = (/obj/structure/table,/obj/item/weapon/storage/fancy/cigarettes/dromedaryco,/obj/item/weapon/storage/box/matches,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"bv" = (/mob/living/simple_animal/cockroach,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"bw" = (/obj/structure/table/glass,/obj/item/weapon/storage/firstaid/brute,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"bx" = (/obj/item/toy/cattoy,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"by" = (/obj/structure/table/glass,/obj/item/weapon/lazarus_injector,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"bz" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"bA" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/snacks/cookie{name = "doggie biscuit"},/obj/item/weapon/reagent_containers/food/snacks/cookie{name = "doggie biscuit"},/obj/item/weapon/reagent_containers/food/snacks/cookie{name = "doggie biscuit"},/obj/item/weapon/reagent_containers/food/snacks/cookie{name = "doggie biscuit"},/obj/item/weapon/reagent_containers/food/snacks/cookie{name = "doggie biscuit"},/obj/item/weapon/reagent_containers/food/snacks/cookie{name = "doggie biscuit"},/turf/open/floor/plasteel/blue/side{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 1},/area/ruin/powered) -"bB" = (/obj/structure/chair/comfy/teal{dir = 8},/turf/open/floor/plasteel/blue/side{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 1},/area/ruin/powered) -"bC" = (/obj/structure/bed/dogbed,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"bD" = (/obj/item/weapon/reagent_containers/glass/bowl,/obj/item/weapon/reagent_containers/food/snacks/cheesewedge,/obj/item/weapon/reagent_containers/food/snacks/cheesewedge,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"bE" = (/obj/item/weapon/reagent_containers/glass/rag,/obj/item/weapon/reagent_containers/spray/cleaner,/turf/open/floor/plasteel/blue/side{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 8},/area/ruin/powered) -"bF" = (/obj/structure/closet/crate/bin,/obj/item/trash/pistachios,/obj/item/weapon/lipstick/random,/obj/item/seeds/apple,/turf/open/floor/plasteel/blue/side{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 8},/area/ruin/powered) -"bG" = (/obj/structure/filingcabinet/chestdrawer/wheeled,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"bH" = (/obj/structure/chair/office/dark,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"bI" = (/obj/structure/table/reinforced,/obj/item/weapon/phone,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"bJ" = (/obj/item/weapon/twohanded/required/kirbyplants,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"bK" = (/obj/structure/chair/comfy/teal{dir = 8},/turf/open/floor/plasteel/blue/side{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 4},/area/ruin/powered) -"bL" = (/obj/effect/mob_spawn/mouse{dir = 4; flavour_text = "You're a mousey! You're getting pretty old as mice go, and you haven't been feeling well as of late. Your master loves you a lot so he took you to this place so you can get better! You can't wait to see him again!"; mob_name = "Stallman Jr."},/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"bM" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"bN" = (/obj/machinery/door/airlock/medical{name = "Patient Room"; req_access_txt = "0"},/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"bO" = (/obj/structure/table/reinforced,/obj/item/device/flashlight/lamp,/turf/open/floor/plasteel/blue/side{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 8},/area/ruin/powered) -"bP" = (/obj/structure/table/reinforced,/obj/item/clothing/glasses/regular,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"bQ" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/obj/item/weapon/pen/fourcolor,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"bR" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/hug,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"bS" = (/obj/structure/chair/office/light{dir = 1},/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"bT" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/glass/bottle/cyanide{desc = "A cocktail of chemotherpy drugs intended to treat bladder cancer."; name = "MVAC regimen"},/obj/item/weapon/reagent_containers/syringe,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"bU" = (/obj/structure/closet/crate/critter,/turf/open/floor/plasteel/blue/side{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 8},/area/ruin/powered) -"bV" = (/turf/open/floor/plasteel/blue/side{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 10},/area/ruin/powered) -"bW" = (/obj/structure/chair/comfy/teal{dir = 8},/turf/open/floor/plasteel/blue/side{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 6},/area/ruin/powered) -"bX" = (/obj/structure/table,/obj/item/weapon/tank/internals/oxygen,/obj/item/weapon/tank/internals/oxygen,/turf/open/floor/plasteel/blue/side{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 8},/area/ruin/powered) -"bY" = (/obj/structure/sign/bluecross_2{name = "animal hospital"},/turf/closed/wall/shuttle/smooth{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"bZ" = (/obj/machinery/door/airlock/glass_large{name = "Ian's Pet Care"},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"ca" = (/obj/item/weapon/reagent_containers/glass/bowl,/obj/item/weapon/reagent_containers/food/snacks/grown/wheat,/obj/item/weapon/reagent_containers/food/snacks/grown/wheat,/obj/item/weapon/reagent_containers/food/snacks/grown/wheat,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"cb" = (/obj/vehicle/scooter/skateboard{dir = 4},/turf/open/floor/grass{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300"},/area/lavaland/surface/outdoors) -"cc" = (/obj/structure/flora/ausbushes/sunnybush,/turf/open/floor/grass{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300"},/area/lavaland/surface/outdoors) -"cd" = (/obj/effect/mob_spawn/cow{dir = 4; flavour_text = "You're a cow. You've lived a pampered life as a prized show heifer, a real blue-ribbon winner. After showing signs of a minor respiratory infection, your master took you to the hospital right away. He'd better come back soon. You're getting quite impatient."; mob_name = "Flossie"},/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"ce" = (/obj/structure/flora/ausbushes/ppflowers,/turf/open/floor/grass{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300"},/area/lavaland/surface/outdoors) -"cf" = (/obj/structure/chair/office/light{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"cg" = (/obj/structure/table/glass,/obj/item/clothing/tie/petcollar,/obj/item/weapon/pen/blue,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"ch" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/melee/baton/cattleprod{desc = "On-the-fly rabies treatment."; name = "cattle prod"},/obj/item/weapon/stock_parts/cell/high,/turf/open/floor/plasteel/blue/side{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 10},/area/ruin/powered) -"ci" = (/obj/structure/closet,/obj/item/weapon/defibrillator/loaded,/obj/item/weapon/storage/belt/medical,/obj/item/clothing/glasses/hud/health,/turf/open/floor/plasteel/blue/side{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 6},/area/ruin/powered) -"cj" = (/obj/item/weapon/pickaxe,/obj/effect/decal/cleanable/blood/old,/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors) -"ck" = (/obj/effect/decal/remains/human,/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors) -"cl" = (/obj/effect/decal/cleanable/blood/old,/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors) -"cm" = (/turf/open/floor/grass,/area/lavaland/surface/outdoors) +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/template_noop, +/area/template_noop) +"ab" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ac" = ( +/turf/open/floor/grass{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/lavaland/surface/outdoors) +"ad" = ( +/obj/structure/flora/ausbushes/brflowers, +/turf/open/floor/grass{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/lavaland/surface/outdoors) +"ae" = ( +/turf/closed/wall/mineral/titanium/nodiagonal{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"af" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"ag" = ( +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"ah" = ( +/obj/structure/toilet, +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"ai" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel/cmo{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"aj" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp, +/turf/open/floor/plasteel/cmo{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"ak" = ( +/obj/structure/table/wood, +/obj/item/device/taperecorder, +/obj/item/weapon/pen/blue, +/turf/open/floor/plasteel/cmo{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"al" = ( +/obj/structure/table/wood, +/obj/item/toy/carpplushie, +/turf/open/floor/plasteel/cmo{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"am" = ( +/obj/machinery/vending/snack, +/turf/open/floor/plasteel/cmo{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"an" = ( +/obj/machinery/sleeper{ + icon_state = "sleeper-open"; + dir = 4 + }, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"ao" = ( +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"ap" = ( +/obj/structure/table, +/obj/item/weapon/circular_saw, +/obj/item/weapon/scalpel{ + pixel_y = 12 + }, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"aq" = ( +/obj/structure/table, +/obj/item/weapon/cautery{ + pixel_x = 4 + }, +/obj/item/weapon/surgicaldrill, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"ar" = ( +/obj/structure/table, +/obj/item/weapon/surgical_drapes, +/obj/item/weapon/razor, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"as" = ( +/turf/open/floor/plasteel/cmo{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"at" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/turf/open/floor/plasteel/cmo{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"au" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/turf/open/floor/plasteel/cmo{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"av" = ( +/obj/item/weapon/reagent_containers/glass/rag, +/obj/item/weapon/reagent_containers/spray/cleaner, +/turf/open/floor/plasteel/blue/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/ruin/powered) +"aw" = ( +/obj/structure/bed/roller, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"ax" = ( +/obj/structure/closet/crate/trashcart, +/obj/item/weapon/storage/bag/trash, +/obj/item/trash/cheesie, +/obj/item/weapon/reagent_containers/syringe/antiviral, +/obj/item/bodybag, +/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka, +/turf/open/floor/grass{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/lavaland/surface/outdoors) +"ay" = ( +/obj/structure/sink{ + icon_state = "sink"; + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/structure/mirror{ + pixel_x = -28 + }, +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"az" = ( +/obj/structure/noticeboard{ + dir = 1; + pixel_y = -27 + }, +/obj/item/weapon/paper{ + info = "Nothing of interest to report."; + name = "Important Notice - Mrs. Henderson" + }, +/turf/open/floor/plasteel/cmo{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"aA" = ( +/obj/structure/closet/secure_closet/medical2, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"aB" = ( +/obj/machinery/computer/operating, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"aC" = ( +/obj/structure/table/optable, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"aD" = ( +/obj/structure/table, +/obj/item/weapon/retractor, +/obj/item/weapon/hemostat, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"aE" = ( +/turf/closed/wall/shuttle/smooth/nodiagonal{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"aF" = ( +/obj/machinery/door/unpowered/shuttle{ + name = "Restroom" + }, +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"aG" = ( +/obj/structure/extinguisher_cabinet, +/turf/closed/wall/mineral/titanium/nodiagonal{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"aH" = ( +/obj/structure/extinguisher_cabinet, +/turf/closed/wall/shuttle/smooth/nodiagonal{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"aI" = ( +/turf/closed/wall/shuttle/smooth, +/area/ruin/powered) +"aJ" = ( +/turf/open/floor/plasteel/grimy{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/lavaland/surface/outdoors) +"aK" = ( +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"aL" = ( +/turf/open/floor/plasteel/blue/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1 + }, +/area/ruin/powered) +"aM" = ( +/obj/effect/mob_spawn/human/doctor/alive/lavaland, +/turf/open/floor/plasteel/blue/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1 + }, +/area/ruin/powered) +"aN" = ( +/obj/structure/closet/crate/freezer, +/obj/item/weapon/reagent_containers/blood/random, +/obj/item/weapon/reagent_containers/blood/random, +/obj/item/weapon/reagent_containers/blood/random, +/obj/item/weapon/reagent_containers/blood/random, +/turf/open/floor/plasteel/blue/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1 + }, +/area/ruin/powered) +"aO" = ( +/obj/machinery/iv_drip, +/turf/open/floor/plasteel/blue/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1 + }, +/area/ruin/powered) +"aP" = ( +/turf/open/floor/plasteel/blue/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 0 + }, +/area/ruin/powered) +"aQ" = ( +/turf/open/floor/plasteel/blue/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/ruin/powered) +"aR" = ( +/turf/open/floor/plasteel/blue/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 4 + }, +/area/ruin/powered) +"aS" = ( +/turf/open/floor/plasteel/blue/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/ruin/powered) +"aT" = ( +/obj/structure/closet, +/obj/effect/decal/cleanable/cobweb, +/obj/item/ammo_casing/shotgun/dart, +/obj/item/ammo_casing/shotgun/dart, +/obj/item/weapon/gun/ballistic/revolver/doublebarrel{ + desc = "For putting critters out to pasture." + }, +/obj/item/ammo_casing/shotgun/buckshot, +/obj/item/weapon/storage/box/bodybags, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"aU" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"aV" = ( +/obj/structure/closet/secure_closet/medical1, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"aW" = ( +/obj/machinery/vending/wallmed{ + pixel_y = 28 + }, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"aX" = ( +/obj/item/stack/cable_coil/random, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"aY" = ( +/obj/structure/bodycontainer/morgue, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"aZ" = ( +/obj/effect/decal/cleanable/ash, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"ba" = ( +/obj/structure/table/glass, +/obj/item/weapon/reagent_containers/glass/beaker, +/obj/item/weapon/storage/backpack/dufflebag/med, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bb" = ( +/obj/structure/table/reinforced, +/obj/item/device/laser_pointer, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bc" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bd" = ( +/obj/structure/table/glass, +/obj/item/weapon/storage/box/gloves, +/obj/item/weapon/storage/box/masks{ + pixel_x = 3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"be" = ( +/obj/effect/decal/cleanable/oil, +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bf" = ( +/obj/structure/table, +/obj/item/weapon/storage/fancy/cigarettes/dromedaryco, +/obj/item/weapon/storage/box/matches, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bg" = ( +/mob/living/simple_animal/cockroach, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bh" = ( +/obj/structure/table/glass, +/obj/item/weapon/storage/firstaid/brute, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bi" = ( +/obj/item/toy/cattoy, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bj" = ( +/obj/structure/table/glass, +/obj/item/weapon/lazarus_injector, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bk" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bl" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/snacks/cookie{ + name = "doggie biscuit" + }, +/obj/item/weapon/reagent_containers/food/snacks/cookie{ + name = "doggie biscuit" + }, +/obj/item/weapon/reagent_containers/food/snacks/cookie{ + name = "doggie biscuit" + }, +/obj/item/weapon/reagent_containers/food/snacks/cookie{ + name = "doggie biscuit" + }, +/obj/item/weapon/reagent_containers/food/snacks/cookie{ + name = "doggie biscuit" + }, +/obj/item/weapon/reagent_containers/food/snacks/cookie{ + name = "doggie biscuit" + }, +/turf/open/floor/plasteel/blue/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1 + }, +/area/ruin/powered) +"bm" = ( +/obj/structure/chair/comfy/teal{ + dir = 8 + }, +/turf/open/floor/plasteel/blue/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1 + }, +/area/ruin/powered) +"bn" = ( +/obj/structure/bed/dogbed, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bo" = ( +/obj/item/weapon/reagent_containers/glass/bowl, +/obj/item/weapon/reagent_containers/food/snacks/cheesewedge, +/obj/item/weapon/reagent_containers/food/snacks/cheesewedge, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bp" = ( +/obj/structure/closet/crate/bin, +/obj/item/trash/pistachios, +/obj/item/weapon/lipstick/random, +/obj/item/seeds/apple, +/turf/open/floor/plasteel/blue/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/ruin/powered) +"bq" = ( +/obj/structure/filingcabinet/chestdrawer/wheeled, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"br" = ( +/obj/structure/chair/office/dark, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bs" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/phone, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bt" = ( +/obj/item/weapon/twohanded/required/kirbyplants, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bu" = ( +/obj/structure/chair/comfy/teal{ + dir = 8 + }, +/turf/open/floor/plasteel/blue/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 4 + }, +/area/ruin/powered) +"bv" = ( +/obj/effect/mob_spawn/mouse{ + dir = 4; + flavour_text = "You're a mousey! You're getting pretty old as mice go, and you haven't been feeling well as of late. Your master loves you a lot so he took you to this place so you can get better! You can't wait to see him again!"; + mob_name = "Stallman Jr." + }, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bw" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bx" = ( +/obj/machinery/door/airlock/medical{ + name = "Patient Room"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"by" = ( +/obj/structure/table/reinforced, +/obj/item/device/flashlight/lamp, +/turf/open/floor/plasteel/blue/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/ruin/powered) +"bz" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/glasses/regular, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bA" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen/fourcolor, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bB" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/box/hug, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bC" = ( +/obj/structure/chair/office/light{ + dir = 1 + }, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bD" = ( +/obj/structure/table/glass, +/obj/item/weapon/reagent_containers/glass/bottle/cyanide{ + desc = "A cocktail of chemotherpy drugs intended to treat bladder cancer."; + name = "MVAC regimen" + }, +/obj/item/weapon/reagent_containers/syringe, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bE" = ( +/obj/structure/closet/crate/critter, +/turf/open/floor/plasteel/blue/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/ruin/powered) +"bF" = ( +/turf/open/floor/plasteel/blue/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 10 + }, +/area/ruin/powered) +"bG" = ( +/obj/structure/chair/comfy/teal{ + dir = 8 + }, +/turf/open/floor/plasteel/blue/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 6 + }, +/area/ruin/powered) +"bH" = ( +/obj/structure/table, +/obj/item/weapon/tank/internals/oxygen, +/obj/item/weapon/tank/internals/oxygen, +/turf/open/floor/plasteel/blue/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/ruin/powered) +"bI" = ( +/obj/structure/sign/bluecross_2{ + name = "animal hospital" + }, +/turf/closed/wall/mineral/titanium/nodiagonal{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"bJ" = ( +/obj/machinery/door/airlock/glass_large{ + name = "Ian's Pet Care" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bK" = ( +/obj/item/weapon/reagent_containers/glass/bowl, +/obj/item/weapon/reagent_containers/food/snacks/grown/wheat, +/obj/item/weapon/reagent_containers/food/snacks/grown/wheat, +/obj/item/weapon/reagent_containers/food/snacks/grown/wheat, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bL" = ( +/obj/vehicle/scooter/skateboard{ + dir = 4 + }, +/turf/open/floor/grass{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/lavaland/surface/outdoors) +"bM" = ( +/obj/structure/flora/ausbushes/sunnybush, +/turf/open/floor/grass{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/lavaland/surface/outdoors) +"bN" = ( +/obj/effect/mob_spawn/cow{ + dir = 4; + flavour_text = "You're a cow. You've lived a pampered life as a prized show heifer, a real blue-ribbon winner. After showing signs of a minor respiratory infection, your master took you to the hospital right away. He'd better come back soon. You're getting quite impatient."; + mob_name = "Flossie" + }, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bO" = ( +/obj/structure/flora/ausbushes/ppflowers, +/turf/open/floor/grass{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/lavaland/surface/outdoors) +"bP" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bQ" = ( +/obj/structure/table/glass, +/obj/item/clothing/neck/petcollar, +/obj/item/weapon/pen/blue, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bR" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/weapon/melee/baton/cattleprod{ + desc = "On-the-fly rabies treatment."; + name = "cattle prod" + }, +/obj/item/weapon/stock_parts/cell/high, +/turf/open/floor/plasteel/blue/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 10 + }, +/area/ruin/powered) +"bS" = ( +/obj/structure/closet, +/obj/item/weapon/defibrillator/loaded, +/obj/item/weapon/storage/belt/medical, +/obj/item/clothing/glasses/hud/health, +/turf/open/floor/plasteel/blue/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 6 + }, +/area/ruin/powered) +"bT" = ( +/obj/item/weapon/pickaxe, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"bU" = ( +/obj/effect/decal/remains/human, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"bV" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"bW" = ( +/turf/open/floor/grass, +/area/lavaland/surface/outdoors) +"bX" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 6 + }, +/turf/open/floor/grass{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/lavaland/surface/outdoors) +"bY" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/turf/open/floor/grass{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/lavaland/surface/outdoors) +"bZ" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/turf/open/floor/grass{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/lavaland/surface/outdoors) +"ca" = ( +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 4 + }, +/turf/open/floor/grass{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/lavaland/surface/outdoors) +"cb" = ( +/obj/machinery/atmospherics/components/binary/valve, +/turf/open/floor/grass{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/lavaland/surface/outdoors) +"cc" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/closed/wall/mineral/titanium/nodiagonal{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"cd" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/mask/surgical, +/obj/item/clothing/suit/apron/surgical, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"ce" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"cf" = ( +/obj/structure/closet/l3closet, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"cg" = ( +/obj/machinery/door/unpowered/shuttle{ + name = "Break Room" + }, +/turf/open/floor/plasteel/cmo{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"ch" = ( +/obj/machinery/door/unpowered/shuttle{ + name = "Emergency Care" + }, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"ci" = ( +/obj/machinery/door/unpowered/shuttle{ + desc = "There's a note wedged in the seam saying something about directing pizza here."; + name = "Staff Entrance" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"cj" = ( +/obj/machinery/door/unpowered/shuttle{ + name = "Morgue" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"ck" = ( +/obj/machinery/door/unpowered/shuttle{ + name = "Medical Supplies" + }, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"cl" = ( +/obj/machinery/door/unpowered/shuttle{ + name = "Safety Supplies" + }, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"cm" = ( +/obj/machinery/door/unpowered/shuttle{ + name = "Tool Storage" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) (1,1,1) = {" -aaaaaaaaaaaaaaaaabababababababaaaaaaaaaaaa -aaaaaaaaaaaaababababacacabacabababaaaaaaaa -aaaaaaaaaaaaababacabacacacadaeafabababaaaa -aaaaaaaaaaababacacacacagacahahaiacacababaa -aaaaaaaaajajajajajakakakajajajalajajajajaa -aaaaababajamanajaoapaqarasajatauavawaxajaa -aaaaababajamamajayazayaAayajaBaCaCaCaDajaa -aaababaEajaFamajayayaGayayajaHaCaIaJaKajaa -abababacaLajaMaNaOajajajaOaPajaQaRaRaRajaa -ababaSaSaTaUaUaVaUaWaWaWaUaVaVaUaVaXaYajaa -abababacajaUaUaZaZaUaZaUaZaZaZaUaZbabbajaa -aaababajaLbcaLajajbdajbeajajaLbfajbgbbajaa -ababacajbhbiajbjbkaCajaCbkblajbmajbgbbajaa -aaababajbnboajbpaCbqajbraCbsajbtajbgbbajaa -aaaaaaajbubvajbwbxaCajaCaCbyajbzajbgbbajaa -aaaaaaajaLbcaLaNajbdajbeajajajajaLbgbbajaa -aaaaaaaaajaUaVaVaVaUbAaUbBajbCbDakbEbbajaa -aaaaaaaaajbFbGbHbIaUbJaUbKajbLbMbNaUbbajaa -aaaaaaaaajbObPbQbRaUaUaUbKajbSbTajbUbbajaa -aaaaaaaaajbVaZaZaZaUaUaZbWajajajaLbXbbajaa -aaaaaaabajajakakbYbZaUajajajbCcaakbgbbajaa -aaaaababacacagcbccaSaSccacajcdaCbNaUbbajaa -aaaaabababacacacacaSaSacceajcfcgajchciajaa -aaababcjababacacabaSabacacajajajajajajajaa -aaabckababababacababababababababaaaaaaaaaa -aaabclabababababababcmababababaaaaaaaaaaaa -aaaaababababcmababababababaaaaaaaaaaaaaaaa -aaaaababababcmababababababaaaaaaaaaaaaaaaa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +aa +ab +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 +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +aa +aa +"} +(3,1,1) = {" +aa +aa +aa +aa +aa +ab +ab +ab +ab +aJ +ab +ab +ac +ab +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +bU +bV +ab +ab +"} +(4,1,1) = {" +aa +aa +aa +aa +aa +ab +ab +ax +ac +aJ +ac +ae +ae +ae +ae +ae +aa +aa +aa +aa +ab +ab +ab +bT +ab +ab +ab +ab +"} +(5,1,1) = {" +aa +aa +aa +aa +ae +ae +ae +ae +ae +ci +ae +ae +aT +aY +bf +ae +ae +ae +ae +ae +ae +ac +ab +ab +ab +ab +ab +ab +"} +(6,1,1) = {" +aa +aa +aa +ab +ae +ag +ag +ay +ae +aK +aK +cj +aU +aZ +bg +cj +aK +bp +by +bF +ae +ac +ac +ab +ab +ab +ab +ab +"} +(7,1,1) = {" +aa +ab +ab +ab +ae +ah +ag +ag +aF +aK +aK +ae +ae +ae +ae +ae +aL +bq +bz +aP +af +ad +ac +ac +ab +ab +bW +bW +"} +(8,1,1) = {" +aa +ab +ab +ac +ae +ae +ae +ae +aG +aL +aP +ae +aV +ba +bh +aG +aL +br +bA +aP +af +bL +ac +ac +ac +ab +ab +ab +"} +(9,1,1) = {" +ab +ab +ac +ac +ae +ai +as +as +cg +aK +aP +ae +aW +ao +bi +ae +aL +bs +bB +aP +bI +bM +ac +ab +ab +ab +ab +ab +"} +(10,1,1) = {" +ab +ab +ab +ac +af +aj +at +as +ae +aM +aK +ck +ao +bb +ao +ck +aK +aK +aK +aK +bJ +aJ +aJ +aJ +ab +ab +ab +ab +"} +(11,1,1) = {" +ab +ac +ac +ac +af +ak +as +az +ae +aM +aP +ae +ae +ae +ae +ae +bl +bt +aK +aK +aK +aJ +aJ +ab +ab +bW +ab +ab +"} +(12,1,1) = {" +ab +ac +ac +ad +af +al +au +as +ae +aM +aK +cl +ao +bc +ao +cl +aK +aK +aK +aP +ae +bM +ac +ac +ab +ab +ab +ab +"} +(13,1,1) = {" +ab +ab +ac +ac +ae +am +as +as +cg +aK +aP +ae +aW +ao +ao +ae +bm +bu +bu +bG +ae +ac +bO +ac +ab +ab +ab +ab +"} +(14,1,1) = {" +ab +ac +bX +ca +ae +ae +ae +ae +aG +aL +aP +ae +cf +bd +bj +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +aa +aa +"} +(15,1,1) = {" +ab +ab +bY +ca +ae +cd +an +aA +ae +aL +aP +ae +ae +ae +ae +ae +bn +bv +bC +ae +bn +bN +bP +ae +ab +ab +aa +aa +"} +(16,1,1) = {" +aa +ab +bZ +cb +cc +ce +ao +ao +ch +aK +aK +cm +aX +be +bk +ae +bo +bw +bD +ae +bK +ao +bQ +ae +ab +aa +aa +aa +"} +(17,1,1) = {" +aa +ab +ab +ac +ae +ap +ao +aB +ae +aL +aP +ae +ae +ae +ae +ae +af +bx +ae +ae +af +bx +ae +ae +aa +aa +aa +aa +"} +(18,1,1) = {" +aa +aa +ab +ac +ae +aq +ao +aC +ae +aN +aQ +aS +aS +aS +aS +aS +av +aK +bE +bH +aS +aK +bR +ae +aa +aa +aa +aa +"} +(19,1,1) = {" +aa +aa +ab +ab +ae +ar +aw +aD +ae +aO +aR +aR +aR +aR +aR +aR +aR +aR +aR +aR +aR +aR +bS +ae +aa +aa +aa +aa +"} +(20,1,1) = {" +aa +aa +aa +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +aa +aa +aa +aa +"} +(21,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa "} diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm index e1f874254d..dccf2a0dd2 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm @@ -187,7 +187,7 @@ /area/ruin/unpowered) "z" = ( /obj/item/weapon/shovel, -/obj/effect/decal/cleanable/cobweb2, +/obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/engine/cult{ baseturf = /turf/open/floor/plating/lava/smooth }, diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm index a2728a400b..2fdd97b8b2 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm @@ -1,103 +1,1372 @@ -"aa" = (/turf/template_noop,/area/template_noop) -"ab" = (/turf/closed/wall/r_wall{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome) -"ac" = (/obj/item/stack/medical/ointment,/obj/structure/table,/obj/item/stack/medical/bruise_pack,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome) -"ad" = (/obj/structure/table,/obj/item/stack/medical/gauze,/obj/item/stack/medical/gauze,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome) -"ae" = (/obj/machinery/power/smes,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome) -"af" = (/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome) -"ag" = (/obj/structure/reagent_dispensers/beerkeg,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome) -"ah" = (/obj/item/weapon/reagent_containers/food/drinks/mug,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome) -"ai" = (/obj/machinery/shower,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome) -"aj" = (/obj/structure/sink,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome) -"ak" = (/turf/open/floor/plating/asteroid/snow{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome) -"al" = (/obj/effect/decal/cleanable/oil,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome) -"am" = (/obj/machinery/door/airlock/hatch,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome) -"an" = (/obj/structure/toilet{dir = 8},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome) -"ao" = (/turf/open/floor/plating/ice,/area/ruin/powered/snow_biodome) -"ap" = (/obj/structure/flora/rock/icy,/turf/open/floor/plating/asteroid/snow{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome) -"aq" = (/turf/closed/wall/mineral/wood,/area/ruin/powered/snow_biodome) -"ar" = (/obj/machinery/door/airlock/wood,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome) -"as" = (/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth; name = "floor"},/area/ruin/powered/snow_biodome) -"at" = (/obj/structure/bed,/obj/item/weapon/bedsheet/blue,/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth; name = "floor"},/area/ruin/powered/snow_biodome) -"au" = (/obj/structure/bookcase/random,/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth; name = "floor"},/area/ruin/powered/snow_biodome) -"av" = (/obj/structure/table/wood,/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth; name = "floor"},/area/ruin/powered/snow_biodome) -"aw" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/snacks/beans,/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth; name = "floor"},/area/ruin/powered/snow_biodome) -"ax" = (/obj/structure/fans,/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth; name = "floor"},/area/ruin/powered/snow_biodome) -"ay" = (/obj/structure/closet/crate/trashcart,/obj/item/trash/semki,/obj/item/trash/candy,/turf/open/floor/plating/asteroid/snow{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome) -"az" = (/obj/structure/flora/tree/pine,/turf/open/floor/plating/asteroid/snow{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome) -"aA" = (/obj/structure/chair/comfy/brown{tag = "icon-comfychair (EAST)"; icon_state = "comfychair"; dir = 4},/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth; name = "floor"},/area/ruin/powered/snow_biodome) -"aB" = (/obj/structure/flora/rock/pile/icy,/turf/open/floor/plating/asteroid/snow{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome) -"aC" = (/obj/structure/flora/tree/dead,/turf/open/floor/plating/asteroid/snow{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome) -"aD" = (/obj/machinery/door/airlock/wood,/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth; name = "floor"},/area/ruin/powered/snow_biodome) -"aE" = (/obj/structure/extinguisher_cabinet,/turf/closed/wall/mineral/wood,/area/ruin/powered/snow_biodome) -"aF" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/drinks/mug/coco,/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth; name = "floor"},/area/ruin/powered/snow_biodome) -"aG" = (/obj/structure/chair/comfy/brown{tag = "icon-comfychair (WEST)"; icon_state = "comfychair"; dir = 8},/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth; name = "floor"},/area/ruin/powered/snow_biodome) -"aH" = (/mob/living/simple_animal/hostile/skeleton/eskimo,/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth; name = "floor"},/area/ruin/powered/snow_biodome) -"aI" = (/obj/structure/flora/bush,/turf/open/floor/plating/asteroid/snow{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome) -"aJ" = (/obj/vehicle/atv,/turf/open/floor/plating/asteroid/snow{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome) -"aK" = (/turf/closed/wall/mineral/wood{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome) -"aL" = (/obj/structure/displaycase/captain,/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth; name = "floor"},/area/ruin/powered/snow_biodome) -"aM" = (/turf/open/floor/carpet{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome) -"aN" = (/obj/structure/bed/dogbed,/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth; name = "floor"},/area/ruin/powered/snow_biodome) -"aO" = (/obj/machinery/door/airlock/glass_large,/obj/structure/fans/tiny,/turf/open/floor/pod/dark,/area/ruin/powered/snow_biodome) -"aP" = (/obj/structure/fans/tiny,/turf/open/floor/pod/dark,/area/ruin/powered/snow_biodome) -"aQ" = (/obj/structure/flora/grass/both,/turf/open/floor/plating/asteroid/snow{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome) -"aR" = (/obj/structure/flora/tree/pine/xmas,/turf/open/floor/plating/asteroid/snow{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome) -"aS" = (/obj/structure/rack,/obj/item/clothing/suit/hooded/wintercoat/science,/obj/item/clothing/shoes/winterboots,/obj/item/clothing/gloves/fingerless,/turf/open/floor/pod/dark,/area/ruin/powered/snow_biodome) -"aT" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome) -"aU" = (/obj/machinery/vending/coffee,/turf/open/floor/pod/dark,/area/ruin/powered/snow_biodome) -"aV" = (/obj/structure/closet/secure_closet/freezer/fridge,/turf/open/floor/pod/dark,/area/ruin/powered/snow_biodome) -"aW" = (/turf/open/floor/pod/dark,/area/ruin/powered/snow_biodome) -"aX" = (/turf/open/floor/pod/light,/area/ruin/powered/snow_biodome) -"aY" = (/obj/structure/chair/stool,/turf/open/floor/pod/dark,/area/ruin/powered/snow_biodome) -"aZ" = (/obj/machinery/door/airlock/hatch,/obj/structure/fans/tiny,/turf/open/floor/pod/dark,/area/ruin/powered/snow_biodome) -"ba" = (/obj/machinery/door/airlock/silver,/turf/open/floor/pod/dark,/area/ruin/powered/snow_biodome) -"bb" = (/obj/machinery/door/airlock/silver,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome) -"bc" = (/obj/structure/table,/turf/open/floor/pod/dark,/area/ruin/powered/snow_biodome) -"bd" = (/obj/structure/table,/obj/item/weapon/pen,/obj/item/weapon/paper_bin,/turf/open/floor/pod/dark,/area/ruin/powered/snow_biodome) -"be" = (/obj/structure/table,/obj/machinery/microwave,/turf/open/floor/pod/dark,/area/ruin/powered/snow_biodome) -"bf" = (/obj/effect/decal/cleanable/oil,/turf/open/floor/pod/dark,/area/ruin/powered/snow_biodome) -"bg" = (/obj/item/weapon/twohanded/required/chainsaw,/obj/structure/closet,/turf/open/floor/pod/dark,/area/ruin/powered/snow_biodome) -"bh" = (/obj/structure/filingcabinet,/turf/open/floor/pod/dark,/area/ruin/powered/snow_biodome) -"bi" = (/obj/machinery/computer/monitor,/turf/open/floor/pod/dark,/area/ruin/powered/snow_biodome) -"bj" = (/obj/item/weapon/storage/toolbox/mechanical,/turf/open/floor/pod/dark,/area/ruin/powered/snow_biodome) -"bk" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/pod/dark,/area/ruin/powered/snow_biodome) -"bl" = (/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth; initial_gas_mix = "TEMP=180"; name = "bridge"},/area/ruin/powered/snow_biodome) -"bm" = (/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/ruin/powered/snow_biodome) -"bn" = (/obj/item/clothing/mask/balaclava,/turf/open/floor/pod/dark,/area/ruin/powered/snow_biodome) -"bo" = (/obj/structure/table,/obj/item/weapon/storage/fancy/cigarettes/cigpack_carp,/turf/open/floor/pod/dark,/area/ruin/powered/snow_biodome) -"bp" = (/obj/structure/table,/obj/item/weapon/pen,/obj/item/weapon/paper,/turf/open/floor/pod/dark,/area/ruin/powered/snow_biodome) -"bq" = (/obj/machinery/light/built{dir = 1},/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/ruin/powered/snow_biodome) -"br" = (/obj/structure/fans/tiny,/obj/machinery/door/airlock/glass_large,/turf/open/floor/pod/dark,/area/ruin/powered/snow_biodome) +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/template_noop, +/area/template_noop) +"ab" = ( +/turf/closed/wall/r_wall{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/snow_biodome) +"ac" = ( +/obj/item/stack/medical/ointment, +/obj/structure/table, +/obj/item/stack/medical/bruise_pack, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/snow_biodome) +"ad" = ( +/obj/structure/table, +/obj/item/stack/medical/gauze, +/obj/item/stack/medical/gauze, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/snow_biodome) +"ae" = ( +/obj/machinery/power/smes, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/snow_biodome) +"af" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/snow_biodome) +"ag" = ( +/obj/structure/reagent_dispensers/beerkeg, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/snow_biodome) +"ah" = ( +/obj/item/weapon/reagent_containers/food/drinks/mug, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/snow_biodome) +"ai" = ( +/obj/machinery/shower, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/snow_biodome) +"aj" = ( +/obj/structure/sink, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/snow_biodome) +"ak" = ( +/turf/open/floor/plating/asteroid/snow{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "o2=22;n2=82;TEMP=180" + }, +/area/ruin/powered/snow_biodome) +"al" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/snow_biodome) +"am" = ( +/obj/machinery/door/airlock/hatch, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/snow_biodome) +"an" = ( +/obj/structure/toilet{ + dir = 8 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/snow_biodome) +"ao" = ( +/turf/open/floor/plating/ice{ + initial_gas_mix = "o2=22;n2=82;TEMP=180" + }, +/area/ruin/powered/snow_biodome) +"ap" = ( +/obj/structure/flora/rock/icy, +/turf/open/floor/plating/asteroid/snow{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "o2=22;n2=82;TEMP=180" + }, +/area/ruin/powered/snow_biodome) +"aq" = ( +/turf/closed/wall/mineral/wood, +/area/ruin/powered/snow_biodome) +"ar" = ( +/obj/machinery/door/airlock/wood, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/snow_biodome) +"as" = ( +/obj/structure/fans, +/turf/closed/wall/mineral/wood, +/area/ruin/powered/snow_biodome) +"at" = ( +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/lava/smooth; + name = "floor" + }, +/area/ruin/powered/snow_biodome) +"au" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/blue, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/lava/smooth; + name = "floor" + }, +/area/ruin/powered/snow_biodome) +"av" = ( +/obj/structure/bookcase/random, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/lava/smooth; + name = "floor" + }, +/area/ruin/powered/snow_biodome) +"aw" = ( +/obj/structure/table/wood, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/lava/smooth; + name = "floor" + }, +/area/ruin/powered/snow_biodome) +"ax" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/snacks/beans, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/lava/smooth; + name = "floor" + }, +/area/ruin/powered/snow_biodome) +"ay" = ( +/obj/structure/closet/crate/trashcart, +/obj/item/trash/semki, +/obj/item/trash/candy, +/turf/open/floor/plating/asteroid/snow{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "o2=22;n2=82;TEMP=180" + }, +/area/ruin/powered/snow_biodome) +"az" = ( +/obj/structure/flora/tree/pine, +/turf/open/floor/plating/asteroid/snow{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "o2=22;n2=82;TEMP=180" + }, +/area/ruin/powered/snow_biodome) +"aA" = ( +/obj/structure/chair/comfy/brown{ + tag = "icon-comfychair (EAST)"; + icon_state = "comfychair"; + dir = 4 + }, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/lava/smooth; + name = "floor" + }, +/area/ruin/powered/snow_biodome) +"aB" = ( +/obj/structure/flora/rock/pile/icy, +/turf/open/floor/plating/asteroid/snow{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "o2=22;n2=82;TEMP=180" + }, +/area/ruin/powered/snow_biodome) +"aC" = ( +/obj/structure/flora/tree/dead, +/turf/open/floor/plating/asteroid/snow{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "o2=22;n2=82;TEMP=180" + }, +/area/ruin/powered/snow_biodome) +"aD" = ( +/obj/machinery/door/airlock/wood, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/lava/smooth; + name = "floor" + }, +/area/ruin/powered/snow_biodome) +"aE" = ( +/obj/structure/extinguisher_cabinet, +/turf/closed/wall/mineral/wood, +/area/ruin/powered/snow_biodome) +"aF" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/drinks/mug/coco, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/lava/smooth; + name = "floor" + }, +/area/ruin/powered/snow_biodome) +"aG" = ( +/obj/structure/chair/comfy/brown{ + tag = "icon-comfychair (WEST)"; + icon_state = "comfychair"; + dir = 8 + }, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/lava/smooth; + name = "floor" + }, +/area/ruin/powered/snow_biodome) +"aH" = ( +/mob/living/simple_animal/hostile/skeleton/eskimo, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/lava/smooth; + name = "floor" + }, +/area/ruin/powered/snow_biodome) +"aI" = ( +/obj/structure/flora/bush, +/turf/open/floor/plating/asteroid/snow{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "o2=22;n2=82;TEMP=180" + }, +/area/ruin/powered/snow_biodome) +"aJ" = ( +/obj/vehicle/atv, +/turf/open/floor/plating/asteroid/snow{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "o2=22;n2=82;TEMP=180" + }, +/area/ruin/powered/snow_biodome) +"aK" = ( +/turf/closed/wall/mineral/wood{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/snow_biodome) +"aL" = ( +/obj/structure/displaycase/captain, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/lava/smooth; + name = "floor" + }, +/area/ruin/powered/snow_biodome) +"aM" = ( +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/snow_biodome) +"aN" = ( +/obj/structure/bed/dogbed, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/lava/smooth; + name = "floor" + }, +/area/ruin/powered/snow_biodome) +"aO" = ( +/obj/machinery/door/airlock/glass_large, +/obj/structure/fans/tiny, +/turf/open/floor/pod/dark, +/area/ruin/powered/snow_biodome) +"aP" = ( +/obj/structure/fans/tiny, +/turf/open/floor/pod/dark, +/area/ruin/powered/snow_biodome) +"aQ" = ( +/obj/structure/flora/grass/both, +/turf/open/floor/plating/asteroid/snow{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "o2=22;n2=82;TEMP=180" + }, +/area/ruin/powered/snow_biodome) +"aR" = ( +/obj/structure/flora/tree/pine/xmas, +/turf/open/floor/plating/asteroid/snow{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "o2=22;n2=82;TEMP=180" + }, +/area/ruin/powered/snow_biodome) +"aS" = ( +/obj/structure/rack, +/obj/item/clothing/suit/hooded/wintercoat/science, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/gloves/fingerless, +/turf/open/floor/pod/dark, +/area/ruin/powered/snow_biodome) +"aT" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/snow_biodome) +"aU" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/pod/dark, +/area/ruin/powered/snow_biodome) +"aV" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/turf/open/floor/pod/dark, +/area/ruin/powered/snow_biodome) +"aW" = ( +/turf/open/floor/pod/dark, +/area/ruin/powered/snow_biodome) +"aX" = ( +/turf/open/floor/pod/light, +/area/ruin/powered/snow_biodome) +"aY" = ( +/obj/structure/chair/stool, +/turf/open/floor/pod/dark, +/area/ruin/powered/snow_biodome) +"aZ" = ( +/obj/machinery/door/airlock/hatch, +/obj/structure/fans/tiny, +/turf/open/floor/pod/dark, +/area/ruin/powered/snow_biodome) +"ba" = ( +/obj/machinery/door/airlock/silver, +/obj/structure/fans/tiny, +/turf/open/floor/pod/dark, +/area/ruin/powered/snow_biodome) +"bb" = ( +/obj/machinery/door/airlock/silver, +/obj/structure/fans/tiny, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/snow_biodome) +"bc" = ( +/obj/structure/table, +/turf/open/floor/pod/dark, +/area/ruin/powered/snow_biodome) +"bd" = ( +/obj/structure/table, +/obj/item/weapon/pen, +/obj/item/weapon/paper_bin, +/turf/open/floor/pod/dark, +/area/ruin/powered/snow_biodome) +"be" = ( +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/pod/dark, +/area/ruin/powered/snow_biodome) +"bf" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/pod/dark, +/area/ruin/powered/snow_biodome) +"bg" = ( +/obj/item/weapon/twohanded/required/chainsaw, +/obj/structure/closet, +/turf/open/floor/pod/dark, +/area/ruin/powered/snow_biodome) +"bh" = ( +/obj/structure/filingcabinet, +/turf/open/floor/pod/dark, +/area/ruin/powered/snow_biodome) +"bi" = ( +/obj/machinery/computer/monitor, +/turf/open/floor/pod/dark, +/area/ruin/powered/snow_biodome) +"bj" = ( +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/pod/dark, +/area/ruin/powered/snow_biodome) +"bk" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/pod/dark, +/area/ruin/powered/snow_biodome) +"bl" = ( +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "o2=22;n2=82;TEMP=180"; + name = "bridge" + }, +/area/ruin/powered/snow_biodome) +"bm" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/powered/snow_biodome) +"bn" = ( +/obj/item/clothing/mask/balaclava, +/turf/open/floor/pod/dark, +/area/ruin/powered/snow_biodome) +"bo" = ( +/obj/structure/table, +/obj/item/weapon/storage/fancy/cigarettes/cigpack_carp, +/turf/open/floor/pod/dark, +/area/ruin/powered/snow_biodome) +"bp" = ( +/obj/structure/table, +/obj/item/weapon/pen, +/obj/item/weapon/paper, +/turf/open/floor/pod/dark, +/area/ruin/powered/snow_biodome) +"bq" = ( +/obj/machinery/light/built{ + dir = 1 + }, +/turf/open/floor/pod/dark, +/area/ruin/powered/snow_biodome) +"br" = ( +/obj/structure/fans/tiny, +/obj/machinery/door/airlock/glass_large, +/turf/open/floor/pod/dark, +/area/ruin/powered/snow_biodome) (1,1,1) = {" -aaaaaaaaaaaaaaaaaaababababababababababababaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaababababacadaeafaeagahabaiajababababaaaaaaaaaaaa -aaaaaaaaabababakabafafafafalafahafamafafanabakabababaaaaaaaa -aaaaaaababaoapakababaqaraqaqaqaqaqaqaqaqababakakapababaaaaaa -aaaaababaoaoakakakakaqasataqauavawauaxaqayakazakakakababaaaa -aaaaabakaoaoaoakazakaqasataqasaAavasasaqakakakaBakakakabaaaa -aaababaCakaoaoakakakaqaDaqaEasaAaFaGaHaqakaIaJakakazakababaa -aaabakakaIaoaoaoakakaqasasasaHasasasasaqakakakakakakakakabaa -aaabakakakakaoaoaoakaKaLasasaMaMasasaNaqakapakaCakakakakabaa -aaabakakakaIakaoaoakaqaqaqaqaOaPaqaqaqaqakakakakaQakakakabaa -ababababakakakaoaoakakakakakapakakaRakakakakakakakakabababab -abaSaSaTazakakakaoaoaoazakakakakaIakakakakakakakakakaTaUaVab -abaWaWaTakakakakaoaoaoakakaCakaQakakakakakakakakakakaTaWaWab -abaWaWaTaBakakakakaoaoaoaoakakakakakazakakakazaIaIakaTaXaYab -aZaXaXbaakakazakakaoaoaoaoaoakakakakakakaCakakakakakbbaXbcab -abaWbdaTakakakakakakaoaoaoakakazakakakaIakakaQapakakaTaXbeab -abaWaYaTakakaCakakaIakaoaoaoakakakakakakakakakakakazaTbfbgab -abbhbiaTaIakakakakazakaoaoaoaoakakakakazakakaCakakakaTbjbkab -ababababakakakapakakblblblblblblakaCakakakakakakaQakabababab -ababakakakaQaIaIakakblblblblblblakakakakapakaIakakakakakabaa -ababakakakakaIakakakakakaoaoaoakakakakakakaIakakakakakakabaa -aaabakakakakakaQaCakaIakakaoaoaoaoakakakakakazakaBazakakabaa -aaababakakakakakakakakakakaIakaoaoaoakazakakaIaIakakakababaa -aaaaabakakazakakakaIakazakakakakaoaoaoakakaQaIaIakakakabaaaa -aaaaababakakakakakakakakaIakakakakaoaoaoakakakakaCakababaaaa -aaaabmababakakazakakababababaOaPababababakakakakakababbmaaaa -aaaabmbmabababakakakabaSbnaXaXaXaXaWboabakakakabababbmbmaaaa -aaaaaabmbmbmabababababaSaWaXaXaXaXaWbpabababababbmbmbmaaaaaa -aaaaaaaabmbmbmbmbqbmababababbraPababababbmbqbmbmbmaaaaaaaaaa -aaaaaaaaaaaaaabmbmbmbmbmbmbmbmbmbmbmbmbmbmbmbmaaaaaaaaaaaaaa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +aZ +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(2,1,1) = {" +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +aS +aW +aW +aX +aW +aW +bh +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +"} +(3,1,1) = {" +aa +aa +aa +aa +ab +ab +ab +ak +ak +ak +ab +aS +aW +aW +aX +bd +aY +bi +ab +ak +ak +ak +ab +ab +ab +bm +bm +aa +aa +aa +"} +(4,1,1) = {" +aa +aa +aa +ab +ab +ak +aC +ak +ak +ak +ab +aT +aT +aT +ba +aT +aT +aT +ab +ak +ak +ak +ak +ak +ab +ab +bm +bm +aa +aa +"} +(5,1,1) = {" +aa +aa +ab +ab +ao +ao +ak +aI +ak +ak +ak +az +ak +aB +ak +ak +ak +aI +ak +ak +ak +ak +ak +ak +ak +ab +ab +bm +bm +aa +"} +(6,1,1) = {" +aa +aa +ab +ao +ao +ao +ao +ao +ak +aI +ak +ak +ak +ak +ak +ak +ak +ak +ak +aQ +ak +ak +ak +az +ak +ak +ab +bm +bm +aa +"} +(7,1,1) = {" +aa +ab +ab +ap +ak +ao +ao +ao +ao +ak +ak +ak +ak +ak +az +ak +aC +ak +ak +aI +aI +ak +ak +ak +ak +ak +ab +ab +bm +aa +"} +(8,1,1) = {" +aa +ab +ak +ak +ak +ak +ak +ao +ao +ao +ao +ak +ak +ak +ak +ak +ak +ak +ap +aI +ak +aQ +ak +ak +ak +az +ak +ab +bm +bm +"} +(9,1,1) = {" +aa +ab +ab +ab +ak +az +ak +ak +ao +ao +ao +ao +ao +ak +ak +ak +ak +ak +ak +ak +ak +aC +ak +ak +ak +ak +ak +ab +bq +bm +"} +(10,1,1) = {" +ab +ab +af +ab +ak +ak +ak +ak +ak +ak +ak +ao +ao +ao +ao +ak +aI +az +ak +ak +ak +ak +ak +aI +ak +ak +ak +ab +bm +bm +"} +(11,1,1) = {" +ab +ac +af +aq +aq +aq +aq +aq +aK +aq +ak +ao +ao +ao +ao +ao +ak +ak +bl +bl +ak +aI +ak +ak +ak +ab +ab +ab +ab +bm +"} +(12,1,1) = {" +ab +ad +af +ar +at +at +aD +at +aL +aq +ak +az +ak +ao +ao +ao +ao +ao +bl +bl +ak +ak +ak +az +ak +ab +aS +aS +ab +bm +"} +(13,1,1) = {" +ab +ae +af +aq +au +au +aq +at +at +aq +ak +ak +ak +ao +ao +ao +ao +ao +bl +bl +ao +ak +ak +ak +aI +ab +bn +aW +ab +bm +"} +(14,1,1) = {" +ab +af +al +aq +aq +aq +aE +at +at +aq +ak +ak +aC +ak +ao +ak +ao +ao +bl +bl +ao +ao +aI +ak +ak +ab +aX +aX +ab +bm +"} +(15,1,1) = {" +ab +ae +af +aq +av +at +at +aH +aM +aO +ap +ak +ak +ak +ak +ak +ak +ao +bl +bl +ao +ao +ak +ak +ak +aO +aX +aX +br +bm +"} +(16,1,1) = {" +ab +ag +ah +as +aw +aA +aA +at +aM +aP +ak +ak +aQ +ak +ak +az +ak +ak +bl +bl +ak +ao +ao +ak +ak +aP +aX +aX +aP +bm +"} +(17,1,1) = {" +ab +ah +af +aq +ax +aw +aF +at +at +aq +ak +aI +ak +ak +ak +ak +ak +ak +ak +ak +ak +ao +ao +ao +ak +ab +aX +aX +ab +bm +"} +(18,1,1) = {" +ab +ab +am +aq +av +at +aG +at +at +aq +aR +ak +ak +ak +ak +ak +ak +ak +aC +ak +ak +ak +ao +ao +ao +ab +aW +aW +ab +bm +"} +(19,1,1) = {" +ab +ai +af +aq +av +at +aH +at +aN +aq +ak +ak +ak +az +ak +ak +ak +ak +ak +ak +ak +ak +ak +ao +ao +ab +bo +bp +ab +bm +"} +(20,1,1) = {" +ab +aj +af +aq +aq +aq +aq +aq +aq +aq +ak +ak +ak +ak +ak +aI +ak +az +ak +ak +ak +ak +az +ak +ao +ab +ab +ab +ab +bm +"} +(21,1,1) = {" +ab +ab +an +ab +ay +ak +ak +ak +ak +ak +ak +ak +ak +ak +aC +ak +ak +ak +ak +ap +ak +ak +ak +ak +ak +ak +ak +ab +bm +bm +"} +(22,1,1) = {" +aa +ab +ab +ab +ak +ak +aI +ak +ap +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aI +ak +ak +aQ +ak +ak +ak +ab +bq +bm +"} +(23,1,1) = {" +aa +ab +ak +ak +az +ak +aJ +ak +ak +ak +ak +ak +ak +az +ak +aQ +ak +aC +ak +aI +ak +az +aI +aI +ak +ak +ak +ab +bm +bm +"} +(24,1,1) = {" +aa +ab +ab +ak +ak +aB +ak +ak +aC +ak +ak +ak +ak +aI +ak +ap +ak +ak +ak +ak +ak +ak +aI +aI +ak +ak +ab +ab +bm +aa +"} +(25,1,1) = {" +aa +aa +ab +ap +ak +ak +ak +ak +ak +aQ +ak +ak +ak +aI +ak +ak +ak +ak +aQ +ak +ak +aB +ak +ak +aC +ak +ab +bm +bm +aa +"} +(26,1,1) = {" +aa +aa +ab +ab +ak +ak +az +ak +ak +ak +ak +ak +ak +ak +ak +ak +az +ak +ak +ak +ak +az +ak +ak +ak +ab +ab +bm +aa +aa +"} +(27,1,1) = {" +aa +aa +aa +ab +ab +ak +ak +ak +ak +ak +ab +aT +aT +aT +bb +aT +aT +aT +ab +ak +ak +ak +ak +ak +ab +ab +bm +bm +aa +aa +"} +(28,1,1) = {" +aa +aa +aa +aa +ab +ab +ab +ak +ak +ak +ab +aU +aW +aX +aX +aX +bf +bj +ab +ak +ak +ak +ab +ab +ab +bm +bm +aa +aa +aa +"} +(29,1,1) = {" +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +aV +aW +aY +bc +be +bg +bk +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +"} +(30,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa "} diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_cultaltar.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_cultaltar.dmm index cb50d1885d..762e3df9db 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_cultaltar.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_cultaltar.dmm @@ -3,7 +3,7 @@ /turf/template_noop, /area/template_noop) "b" = ( -/turf/open/floor/plasteel/cult{ +/turf/open/floor/engine/cult{ baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300" }, @@ -22,7 +22,7 @@ /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered) "f" = ( -/obj/structure/cult/pylon, +/obj/structure/destructible/cult/pylon, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered) "g" = ( @@ -36,14 +36,14 @@ sound = 'sound/hallucinations/turn_around1.ogg'; triggerer_only = 1 }, -/turf/open/floor/plasteel/cult{ +/turf/open/floor/engine/cult{ baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300" }, /area/ruin/unpowered) "h" = ( /obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plasteel/cult{ +/turf/open/floor/engine/cult{ baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300" }, @@ -51,7 +51,7 @@ "i" = ( /obj/effect/decal/remains/human, /obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plasteel/cult{ +/turf/open/floor/engine/cult{ baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300" }, @@ -68,7 +68,7 @@ "k" = ( /obj/effect/decal/remains/human, /obj/item/weapon/melee/cultblade, -/turf/open/floor/plasteel/cult{ +/turf/open/floor/engine/cult{ baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300" }, @@ -77,14 +77,14 @@ /obj/effect/decal/remains/human, /obj/item/clothing/shoes/cult, /obj/item/clothing/suit/cultrobes, -/turf/open/floor/plasteel/cult{ +/turf/open/floor/engine/cult{ baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300" }, /area/ruin/unpowered) "m" = ( /obj/effect/decal/remains/human, -/turf/open/floor/plasteel/cult{ +/turf/open/floor/engine/cult{ baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300" }, @@ -101,7 +101,7 @@ sound = 'sound/hallucinations/turn_around1.ogg'; triggerer_only = 1 }, -/turf/open/floor/plasteel/cult{ +/turf/open/floor/engine/cult{ baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300" }, @@ -124,7 +124,7 @@ message = "You've made a grave mistake, haven't you?"; name = "ohfuck" }, -/turf/open/floor/plasteel/cult{ +/turf/open/floor/engine/cult{ baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300" }, @@ -141,7 +141,7 @@ sound = 'sound/hallucinations/turn_around1.ogg'; triggerer_only = 1 }, -/turf/open/floor/plasteel/cult{ +/turf/open/floor/engine/cult{ baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300" }, @@ -151,7 +151,7 @@ /obj/item/clothing/shoes/cult, /obj/item/clothing/suit/cultrobes, /obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plasteel/cult{ +/turf/open/floor/engine/cult{ baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300" }, @@ -168,7 +168,7 @@ sound = 'sound/hallucinations/turn_around1.ogg'; triggerer_only = 1 }, -/turf/open/floor/plasteel/cult{ +/turf/open/floor/engine/cult{ baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300" }, diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_envy.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_envy.dmm index faf5d43979..ce611c6df7 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_envy.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_envy.dmm @@ -18,7 +18,7 @@ desc = "This mirror has been shattered. It looks like the bad luck energies spilling from it are taking immediate effect on your surroundings!"; icon_state = "mirror_broke"; pixel_x = -28; - shattered = 1 + broken = 1 }, /obj/item/clothing/suit/hooded/bloated_human, /obj/effect/decal/cleanable/blood, @@ -31,7 +31,7 @@ desc = "Oh no, seven years of bad luck!"; icon_state = "mirror_broke"; pixel_x = 28; - shattered = 1 + broken = 1 }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/lava/smooth; @@ -44,7 +44,7 @@ desc = "This mirror has been shattered. It looks like the bad luck energies spilling from it are taking immediate effect on your surroundings!"; icon_state = "mirror_broke"; pixel_x = -28; - shattered = 1 + broken = 1 }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/lava/smooth @@ -71,7 +71,7 @@ /obj/structure/mirror{ icon_state = "mirror_broke"; pixel_y = 28; - shattered = 1 + broken = 1 }, /obj/item/weapon/kitchen/knife/envy, /turf/open/floor/plating{ @@ -83,7 +83,7 @@ desc = "Oh no, seven years of bad luck!"; icon_state = "mirror_broke"; pixel_x = 28; - shattered = 1 + broken = 1 }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/lava/smooth @@ -94,7 +94,7 @@ desc = "This mirror has been shattered. It looks like the bad luck energies spilling from it are taking immediate effect on your surroundings!"; icon_state = "mirror_broke"; pixel_x = -28; - shattered = 1 + broken = 1 }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/lava/smooth @@ -112,7 +112,7 @@ desc = "This mirror has been shattered. It looks like the bad luck energies spilling from it are taking immediate effect on your surroundings!"; icon_state = "mirror_broke"; pixel_x = -28; - shattered = 1 + broken = 1 }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/lava/smooth; diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_fountain_hall.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_fountain_hall.dmm index b367a068f1..918b0e894b 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_fountain_hall.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_fountain_hall.dmm @@ -8,19 +8,19 @@ }, /area/ruin/unpowered) "c" = ( -/obj/structure/divine/healingfountain/anyone, +/obj/structure/healingfountain, /turf/open/floor/engine/cult{ baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/unpowered) "d" = ( -/obj/structure/divine/conduit, +/obj/structure/fluff/divine/conduit, /turf/open/floor/engine/cult{ baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/unpowered) "e" = ( -/obj/structure/divine/sacrificealtar, +/obj/structure/sacrificealtar, /turf/open/floor/engine/cult{ baseturf = /turf/open/floor/plating/lava/smooth }, diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_golem_ship.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_golem_ship.dmm index 8928ee57e2..d33bf338cb 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_golem_ship.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_golem_ship.dmm @@ -3,7 +3,7 @@ /turf/template_noop, /area/template_noop) "b" = ( -/turf/closed/wall/shuttle/smooth/nodiagonal{ +/turf/closed/wall/mineral/titanium/nodiagonal{ baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered/golem_ship) @@ -75,43 +75,43 @@ }, /area/ruin/powered/golem_ship) "j" = ( -/obj/machinery/door/airlock/shuttle, -/turf/open/floor/plasteel/shuttle/purple{ +/obj/machinery/door/airlock/titanium, +/turf/open/floor/mineral/titanium/purple{ baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered/golem_ship) "k" = ( /obj/machinery/computer/arcade/battle, -/turf/open/floor/plasteel/shuttle/purple{ +/turf/open/floor/mineral/titanium/purple{ baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered/golem_ship) "l" = ( -/turf/open/floor/plasteel/shuttle/purple{ +/turf/open/floor/mineral/titanium/purple{ baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered/golem_ship) "m" = ( /obj/effect/mob_spawn/human/golem/adamantine, -/turf/open/floor/plasteel/shuttle/purple{ +/turf/open/floor/mineral/titanium/purple{ baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered/golem_ship) "n" = ( /obj/machinery/mineral/equipment_vendor/golem, -/turf/open/floor/plasteel/shuttle/purple{ +/turf/open/floor/mineral/titanium/purple{ baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered/golem_ship) "o" = ( /obj/item/weapon/resonator, -/turf/open/floor/plasteel/shuttle/purple{ +/turf/open/floor/mineral/titanium/purple{ baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered/golem_ship) "p" = ( /obj/machinery/mineral/ore_redemption, -/turf/open/floor/plasteel/shuttle/purple{ +/turf/open/floor/mineral/titanium/purple{ baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered/golem_ship) @@ -122,19 +122,19 @@ name = "shrine of the liberator"; pixel_x = 0 }, -/turf/open/floor/plasteel/shuttle/purple{ +/turf/open/floor/mineral/titanium/purple{ baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered/golem_ship) "r" = ( /obj/machinery/computer/shuttle, -/turf/open/floor/plasteel/shuttle/purple{ +/turf/open/floor/mineral/titanium/purple{ baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered/golem_ship) "s" = ( /obj/machinery/bluespace_beacon, -/turf/open/floor/plasteel/shuttle/purple{ +/turf/open/floor/mineral/titanium/purple{ baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered/golem_ship) @@ -142,7 +142,7 @@ /obj/structure/extinguisher_cabinet{ pixel_y = 30 }, -/turf/open/floor/plasteel/shuttle/purple{ +/turf/open/floor/mineral/titanium/purple{ baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered/golem_ship) @@ -165,32 +165,32 @@ name = "shrine of the liberator"; pixel_x = 0 }, -/turf/open/floor/plasteel/shuttle/purple{ +/turf/open/floor/mineral/titanium/purple{ baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered/golem_ship) "v" = ( /obj/item/weapon/resonator/upgraded, -/turf/open/floor/plasteel/shuttle/purple{ +/turf/open/floor/mineral/titanium/purple{ baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered/golem_ship) "w" = ( /obj/machinery/autolathe, -/turf/open/floor/plasteel/shuttle/purple{ +/turf/open/floor/mineral/titanium/purple{ baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered/golem_ship) "x" = ( /obj/structure/table/wood, /obj/machinery/reagentgrinder, -/turf/open/floor/plasteel/shuttle/purple{ +/turf/open/floor/mineral/titanium/purple{ baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered/golem_ship) "y" = ( /obj/machinery/computer/arcade/orion_trail, -/turf/open/floor/plasteel/shuttle/purple{ +/turf/open/floor/mineral/titanium/purple{ baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered/golem_ship) @@ -198,7 +198,7 @@ /obj/structure/extinguisher_cabinet{ pixel_y = -30 }, -/turf/open/floor/plasteel/shuttle/purple{ +/turf/open/floor/mineral/titanium/purple{ baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered/golem_ship) @@ -209,7 +209,7 @@ }, /obj/item/weapon/storage/firstaid/fire, /obj/item/weapon/storage/firstaid/fire, -/turf/open/floor/plasteel/shuttle/purple{ +/turf/open/floor/mineral/titanium/purple{ baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered/golem_ship) @@ -217,7 +217,7 @@ /obj/item/weapon/storage/firstaid/fire, /obj/structure/table/wood, /obj/item/weapon/storage/firstaid/fire, -/turf/open/floor/plasteel/shuttle/purple{ +/turf/open/floor/mineral/titanium/purple{ baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered/golem_ship) @@ -229,7 +229,7 @@ desc = "Use to build new structures in the wastes."; name = "land claim" }, -/turf/open/floor/plasteel/shuttle/purple{ +/turf/open/floor/mineral/titanium/purple{ baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered/golem_ship) @@ -238,7 +238,7 @@ /obj/structure/table/wood, /obj/item/weapon/storage/firstaid/brute, /obj/item/weapon/disk/design_disk/golem_shell, -/turf/open/floor/plasteel/shuttle/purple{ +/turf/open/floor/mineral/titanium/purple{ baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered/golem_ship) @@ -254,6 +254,16 @@ baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered/golem_ship) +"G" = ( +/turf/closed/wall/mineral/titanium, +/area/ruin/powered/golem_ship) +"H" = ( +/obj/machinery/door/airlock/titanium, +/obj/structure/fans/tiny, +/turf/open/floor/mineral/titanium/purple{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/golem_ship) (1,1,1) = {" a @@ -289,7 +299,7 @@ a b q u -b +G a a a @@ -311,7 +321,7 @@ b b r l -b +G b b b @@ -377,7 +387,7 @@ l b l l -b +G l l b @@ -399,7 +409,7 @@ l b l l -b +G l l j @@ -421,7 +431,7 @@ l b l l -b +G l l j @@ -443,7 +453,7 @@ o b l l -b +G o m b @@ -465,7 +475,7 @@ o b l l -b +G o m b @@ -487,7 +497,7 @@ j b j j -b +G j b b @@ -683,8 +693,8 @@ b i i b -j -j +H +H b i i diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_greed.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_greed.dmm index 8a69cfab7e..2c4442c4b6 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_greed.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_greed.dmm @@ -15,7 +15,7 @@ /area/ruin/powered) "e" = ( /obj/structure/table/wood/poker, -/obj/item/weapon/gun/projectile/revolver/russian/soul, +/obj/item/weapon/gun/ballistic/revolver/russian/soul, /turf/open/floor/carpet{ baseturf = /turf/open/floor/plating/lava/smooth; icon_state = "carpetsymbol" diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_hermit.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_hermit.dmm index 7a46f0c7c8..b3c58795ca 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_hermit.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_hermit.dmm @@ -1,56 +1,526 @@ -"a" = (/turf/closed/mineral/volcanic/lava_land_surface,/area/lavaland/surface/outdoors) -"b" = (/turf/closed/mineral/volcanic/lava_land_surface,/area/ruin/powered) -"c" = (/turf/closed/wall/mineral/iron{baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface},/area/ruin/powered) -"d" = (/obj/item/clothing/head/helmet/space/orange,/obj/item/clothing/mask/breath,/turf/open/floor/plating/asteroid/basalt,/area/ruin/powered) -"e" = (/obj/item/clothing/suit/space/orange,/turf/open/floor/plating/asteroid/basalt,/area/ruin/powered) -"f" = (/turf/open/floor/plating/asteroid/basalt,/area/ruin/powered) -"g" = (/turf/open/floor/plating/asteroid{baseturf = /turf/open/floor/plating/asteroid/basalt; name = "dirt"},/area/ruin/powered) -"h" = (/obj/item/weapon/shovel,/turf/open/floor/plating/asteroid{baseturf = /turf/open/floor/plating/asteroid/basalt; name = "dirt"},/area/ruin/powered) -"i" = (/obj/item/weapon/reagent_containers/glass/bucket,/turf/open/floor/plating/asteroid{baseturf = /turf/open/floor/plating/asteroid/basalt; name = "dirt"},/area/ruin/powered) -"j" = (/obj/structure/sink/puddle,/turf/open/floor/plating/asteroid{baseturf = /turf/open/floor/plating/asteroid/basalt; name = "dirt"},/area/ruin/powered) -"k" = (/obj/effect/glowshroom/single,/turf/open/floor/plating/asteroid{baseturf = /turf/open/floor/plating/asteroid/basalt; name = "dirt"},/area/ruin/powered) -"l" = (/obj/item/weapon/storage/toolbox/emergency,/turf/open/floor/plating/asteroid{baseturf = /turf/open/floor/plating/asteroid/basalt; name = "dirt"},/area/ruin/powered) -"m" = (/obj/structure/rack,/obj/item/seeds/reishi,/obj/item/seeds/plump,/obj/item/seeds/plump,/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/glowshroom,/turf/open/floor/plating/asteroid/basalt,/area/ruin/powered) -"n" = (/obj/machinery/hydroponics/soil,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface},/area/ruin/powered) -"o" = (/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface},/area/ruin/powered) -"p" = (/obj/structure/rack,/obj/item/weapon/storage/bag/ore,/obj/item/weapon/storage/firstaid/regular,/turf/open/floor/plating/asteroid/basalt,/area/ruin/powered) -"q" = (/obj/effect/glowshroom/single,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface},/area/ruin/powered) -"r" = (/obj/structure/rack,/obj/item/weapon/pickaxe/emergency,/obj/item/weapon/tank/internals/oxygen,/turf/open/floor/plating/asteroid/basalt,/area/ruin/powered) -"s" = (/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors) -"t" = (/turf/closed/wall/shuttle/survival/pod{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"u" = (/obj/structure/bed/pod,/obj/item/weapon/bedsheet/black,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface},/area/ruin/powered) -"v" = (/obj/structure/fans,/turf/open/floor/pod/dark{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"w" = (/obj/machinery/smartfridge/survival_pod,/turf/open/floor/pod/dark{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"x" = (/obj/effect/mob_spawn/human/hermit,/turf/open/floor/pod/dark{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"y" = (/turf/open/floor/pod/dark{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"z" = (/obj/machinery/light/small{dir = 4},/obj/structure/tubes,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface},/area/ruin/powered) -"A" = (/obj/structure/table,/obj/item/weapon/kitchen/knife/combat/survival,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface},/area/ruin/powered) -"B" = (/obj/structure/table/survival_pod,/obj/item/weapon/storage/bag/plants/portaseeder,/turf/open/floor/pod/dark{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"C" = (/obj/structure/tubes,/obj/item/weapon/crowbar,/obj/effect/decal/cleanable/blood/drip,/turf/open/floor/pod/dark{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"D" = (/obj/effect/decal/cleanable/blood/footprints{tag = "icon-blood1 (NORTH)"; icon_state = "blood1"; dir = 1},/obj/machinery/door/airlock/survival_pod,/obj/structure/fans/tiny,/turf/open/floor/pod/dark{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered) -"E" = (/obj/structure/shuttle/engine/propulsion/burst{dir = 4},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300"},/area/ruin/powered) -"F" = (/turf/closed/wall/shuttle{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 2; icon_state = "swall12"},/area/ruin/powered) -"G" = (/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/turf/closed/wall/shuttle{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 2; icon_state = "swall_f10"; layer = 2},/area/ruin/powered) -"H" = (/obj/machinery/door/airlock/shuttle{name = "Escape Pod Airlock"},/turf/open/floor/plasteel/shuttle,/area/ruin/powered) -"I" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/shuttle{baseturf = /turf/open/floor/plating/asteroid/basalt},/area/ruin/powered) -"J" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300"},/area/ruin/powered) -"K" = (/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/turf/closed/wall/shuttle{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 2; icon_state = "swall_f9"},/area/ruin/powered) +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"b" = ( +/turf/closed/mineral/volcanic/lava_land_surface, +/area/ruin/powered) +"c" = ( +/turf/closed/wall/mineral/iron{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + }, +/area/ruin/powered) +"d" = ( +/obj/item/clothing/head/helmet/space/orange, +/obj/item/clothing/mask/breath, +/turf/open/floor/plating/asteroid/basalt, +/area/ruin/powered) +"e" = ( +/obj/item/clothing/suit/space/orange, +/turf/open/floor/plating/asteroid/basalt, +/area/ruin/powered) +"f" = ( +/turf/open/floor/plating/asteroid/basalt, +/area/ruin/powered) +"g" = ( +/turf/open/floor/plating/asteroid{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + name = "dirt" + }, +/area/ruin/powered) +"h" = ( +/obj/item/weapon/shovel, +/turf/open/floor/plating/asteroid{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + name = "dirt" + }, +/area/ruin/powered) +"i" = ( +/obj/item/weapon/reagent_containers/glass/bucket, +/turf/open/floor/plating/asteroid{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + name = "dirt" + }, +/area/ruin/powered) +"j" = ( +/obj/structure/sink/puddle, +/turf/open/floor/plating/asteroid{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + name = "dirt" + }, +/area/ruin/powered) +"k" = ( +/obj/structure/glowshroom/single, +/turf/open/floor/plating/asteroid{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + name = "dirt" + }, +/area/ruin/powered) +"l" = ( +/obj/item/weapon/storage/toolbox/emergency, +/turf/open/floor/plating/asteroid{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + name = "dirt" + }, +/area/ruin/powered) +"m" = ( +/obj/structure/rack, +/obj/item/seeds/reishi, +/obj/item/seeds/plump, +/obj/item/seeds/plump, +/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/glowshroom, +/turf/open/floor/plating/asteroid/basalt, +/area/ruin/powered) +"n" = ( +/obj/machinery/hydroponics/soil, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + }, +/area/ruin/powered) +"o" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + }, +/area/ruin/powered) +"p" = ( +/obj/structure/rack, +/obj/item/weapon/storage/bag/ore, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plating/asteroid/basalt, +/area/ruin/powered) +"q" = ( +/obj/structure/glowshroom/single, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + }, +/area/ruin/powered) +"r" = ( +/obj/structure/rack, +/obj/item/weapon/pickaxe/emergency, +/obj/item/weapon/tank/internals/oxygen, +/turf/open/floor/plating/asteroid/basalt, +/area/ruin/powered) +"s" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"t" = ( +/turf/closed/wall/shuttle/survival/pod{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"u" = ( +/obj/structure/bed/pod, +/obj/item/weapon/bedsheet/black, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + }, +/area/ruin/powered) +"v" = ( +/obj/structure/fans, +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"w" = ( +/obj/machinery/smartfridge/survival_pod, +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"x" = ( +/obj/effect/mob_spawn/human/hermit, +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"y" = ( +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"z" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/tubes, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + }, +/area/ruin/powered) +"A" = ( +/obj/structure/table, +/obj/item/weapon/kitchen/knife/combat/survival, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + }, +/area/ruin/powered) +"B" = ( +/obj/structure/table/survival_pod, +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"C" = ( +/obj/structure/tubes, +/obj/item/weapon/crowbar, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"D" = ( +/obj/effect/decal/cleanable/blood/footprints{ + tag = "icon-blood1 (NORTH)"; + icon_state = "blood1"; + dir = 1 + }, +/obj/machinery/door/airlock/survival_pod, +/obj/structure/fans/tiny, +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"E" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/obj/structure/shuttle/engine/propulsion/burst{ + dir = 4 + }, +/turf/closed/wall/mineral/titanium/interior{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"F" = ( +/turf/closed/wall/mineral/titanium{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"G" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/turf/closed/wall/mineral/titanium/interior{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"H" = ( +/obj/machinery/door/airlock/titanium{ + name = "Escape Pod Airlock" + }, +/turf/open/floor/mineral/titanium/blue{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"I" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/blue{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"J" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/powered) +"K" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/turf/closed/wall/shuttle{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 2; + icon_state = "swall_f9" + }, +/area/ruin/powered) (1,1,1) = {" -aaaaaaaabbcbaaaa -aaaaaaabbdebbaaa -aaaaaaabfghfbaaa -aaaaaabbijgkbaaa -aaaaabbcgglfbaaa -aaaabbmffgcbbaaa -aaaacnooffpbaaaa -aaaabnoqofrbaaaa -saaatttooucbaaaa -saaatvwooocaaaaa -sssatxyztAcaaaaa -sssstByCtbbaaaaa -ssssttDttaaaaaaa -ssssssssssaEFFGa -sssssssssssHIIJa -sssssssssssEFFKa +a +a +a +a +a +a +a +a +s +s +s +s +s +s +s +s +"} +(2,1,1) = {" +a +a +a +a +a +a +a +a +a +a +s +s +s +s +s +s +"} +(3,1,1) = {" +a +a +a +a +a +a +a +a +a +a +s +s +s +s +s +s +"} +(4,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +s +s +s +s +s +"} +(5,1,1) = {" +a +a +a +a +a +b +c +b +t +t +t +t +t +s +s +s +"} +(6,1,1) = {" +a +a +a +a +b +b +n +n +t +v +x +B +t +s +s +s +"} +(7,1,1) = {" +a +a +a +b +b +m +o +o +t +w +y +y +D +s +s +s +"} +(8,1,1) = {" +a +b +b +b +c +f +o +q +o +o +z +C +t +s +s +s +"} +(9,1,1) = {" +b +b +f +i +g +f +f +o +o +o +t +t +t +s +s +s +"} +(10,1,1) = {" +b +d +g +j +g +g +f +f +u +o +A +b +a +s +s +s +"} +(11,1,1) = {" +c +e +h +g +l +c +p +r +c +c +c +b +a +a +s +s +"} +(12,1,1) = {" +b +b +f +k +f +b +b +b +b +a +a +a +a +E +H +E +"} +(13,1,1) = {" +a +b +b +b +b +b +a +a +a +a +a +a +a +F +I +F +"} +(14,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +F +I +F +"} +(15,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +G +J +G +"} +(16,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a "} diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_hierophant.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_hierophant.dmm new file mode 100644 index 0000000000..4426c66cab --- /dev/null +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_hierophant.dmm @@ -0,0 +1,64 @@ +"a" = (/turf/closed/indestructible/riveted/hierophant,/area/ruin/unpowered/hierophant) +"b" = (/obj/effect/decal/cleanable/blood/tracks,/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"c" = (/obj/effect/decal/cleanable/cobweb,/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"d" = (/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"e" = (/obj/effect/gibspawner/human,/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"f" = (/obj/effect/decal/cleanable/blood/gibs/limb,/obj/effect/decal/cleanable/blood,/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"g" = (/obj/effect/light_emitter{set_cap = 3; set_luminosity = 7},/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"h" = (/obj/effect/decal/cleanable/blood/tracks{tag = "icon-tracks (EAST)"; icon_state = "tracks"; dir = 4},/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"i" = (/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/blood/tracks{tag = "icon-tracks (EAST)"; icon_state = "tracks"; dir = 4},/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"j" = (/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/remains/human,/obj/effect/light_emitter{set_cap = 3; set_luminosity = 5},/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"k" = (/obj/effect/decal/cleanable/blood/tracks{tag = "icon-tracks (SOUTHWEST)"; icon_state = "tracks"; dir = 10},/obj/effect/decal/cleanable/blood,/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"l" = (/obj/effect/light_emitter{set_cap = 3; set_luminosity = 5},/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"m" = (/obj/effect/gibspawner/generic,/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"n" = (/obj/effect/decal/cleanable/blood,/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"o" = (/obj/effect/decal/cleanable/blood/tracks{tag = "icon-tracks (NORTHEAST)"; icon_state = "tracks"; dir = 5},/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"p" = (/obj/effect/light_emitter,/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"q" = (/obj/effect/decal/cleanable/blood/old,/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"r" = (/obj/effect/decal/cleanable/blood/tracks{tag = "icon-tracks (NORTHWEST)"; icon_state = "tracks"; dir = 9},/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"s" = (/obj/effect/decal/cleanable/blood/gibs/limb,/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"t" = (/obj/effect/decal/cleanable/ash,/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"u" = (/obj/effect/decal/cleanable/blood/tracks{tag = "icon-tracks (SOUTHWEST)"; icon_state = "tracks"; dir = 10},/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"v" = (/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/blood,/obj/effect/decal/cleanable/blood/tracks{tag = "icon-tracks (NORTHEAST)"; icon_state = "tracks"; dir = 5},/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"w" = (/obj/effect/gibspawner/human,/obj/effect/decal/cleanable/blood/tracks{tag = "icon-tracks (SOUTHEAST)"; icon_state = "tracks"; dir = 6},/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"x" = (/obj/effect/decal/cleanable/blood/tracks{tag = "icon-tracks (WEST)"; icon_state = "tracks"; dir = 8},/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"y" = (/obj/effect/decal/cleanable/blood/tracks{tag = "icon-tracks (WEST)"; icon_state = "tracks"; dir = 8},/obj/effect/light_emitter{set_cap = 3; set_luminosity = 7},/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"z" = (/obj/effect/decal/cleanable/blood/tracks{tag = "icon-tracks (NORTHWEST)"; icon_state = "tracks"; dir = 9},/obj/effect/decal/cleanable/blood,/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"A" = (/obj/effect/decal/cleanable/blood/tracks{tag = "icon-tracks (SOUTHEAST)"; icon_state = "tracks"; dir = 6},/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"B" = (/mob/living/simple_animal/hostile/megafauna/hierophant,/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"C" = (/obj/effect/decal/cleanable/blood,/obj/effect/decal/cleanable/blood/tracks{tag = "icon-tracks (WEST)"; icon_state = "tracks"; dir = 8},/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"D" = (/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/blood,/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"E" = (/obj/effect/decal/cleanable/blood/gibs/up,/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"F" = (/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/remains/human,/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"G" = (/obj/effect/decal/cleanable/blood/gibs/core,/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"H" = (/obj/effect/decal/cleanable/blood,/obj/effect/decal/cleanable/blood/tracks{tag = "icon-tracks (SOUTHWEST)"; icon_state = "tracks"; dir = 10},/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"I" = (/obj/effect/gibspawner/human,/obj/effect/light_emitter{set_cap = 3; set_luminosity = 5},/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"J" = (/obj/effect/decal/cleanable/blood/gibs/down,/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) + +(1,1,1) = {" +aaaaaaaaaaaabaaaaaaaaaaaa +acdddddddddddddddddddddda +adeddfddddddgdddhhhdiddda +addjddddddddkhhddddddldda +adddadddaaaaaaaaadddaddda +addddmhdhddddddddddmddnda +adddddgdddddddddddgddodda +addddddddkdopddfdddbdddda +adqdadddddadddaddddbaddda +adddadddddrdddddddddaddda +adstadddadudhhdvadhwabdda +adddadrxxmddddduddddaddda +xxyoazApddddBddddpddadyxC +addbabddddddddtdddddaddda +addbabddadDdEdddadddafdda +adddabddddddndddddqdaddda +adddabddddadddadddddadnda +adqedbddsdddpddddddddddda +addddAgddddeddddddgFdddGa +addddmdddddHdehddxdedddda +adddadddaaaaaaaaadddaddda +addlddddddddrdddddAddIdda +adddddJdddddgdddqddddddda +adnddddddFddbdddddddnddda +aaaaaaaaaaaabaaaaaaaaaaaa +"} diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_pizzaparty.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_pizzaparty.dmm index 3936fe3ad6..275c7686d4 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_pizzaparty.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_pizzaparty.dmm @@ -88,7 +88,7 @@ name = "pizza spawner" }, /obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/cobweb2, +/obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/wood{ baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300" @@ -103,7 +103,7 @@ }, /area/ruin/unpowered) "n" = ( -/obj/effect/glowshroom/single, +/obj/structure/glowshroom/single, /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood{ baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; @@ -161,7 +161,7 @@ }, /area/ruin/unpowered) "u" = ( -/obj/effect/glowshroom/single, +/obj/structure/glowshroom/single, /turf/open/floor/wood{ baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300" @@ -202,7 +202,7 @@ /area/ruin/unpowered) "z" = ( /obj/structure/table/wood, -/obj/effect/glowshroom/single, +/obj/structure/glowshroom/single, /obj/item/weapon/a_gift, /turf/open/floor/wood{ baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; @@ -283,7 +283,7 @@ }, /area/ruin/unpowered) "J" = ( -/obj/effect/glowshroom/single, +/obj/structure/glowshroom/single, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; @@ -690,7 +690,7 @@ d d e e -B +N e e d diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_prisoner_crash.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_prisoner_crash.dmm index 4cb1602a28..e326c88cb7 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_prisoner_crash.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_prisoner_crash.dmm @@ -1,48 +1,591 @@ -"a" = (/turf/closed/mineral/volcanic/lava_land_surface,/area/lavaland/surface/outdoors) -"b" = (/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors) -"c" = (/obj/item/weapon/shard,/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors) -"d" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors) -"e" = (/turf/closed/indestructible/opshuttle,/area/lavaland/surface/outdoors) -"f" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 4},/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors) -"g" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 4},/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/ruin/unpowered) -"h" = (/turf/closed/indestructible/opshuttle,/area/ruin/unpowered) -"i" = (/turf/open/floor/plasteel/shuttle/red{baseturf = /turf/open/floor/plating/lava/smooth; initial_gas_mix = "o2=14;n2=23;TEMP=300"},/area/lavaland/surface/outdoors) -"j" = (/obj/item/weapon/pickaxe,/obj/item/weapon/pickaxe,/obj/item/weapon/pickaxe,/obj/item/weapon/pickaxe,/obj/item/device/flashlight/lantern,/turf/open/floor/plasteel/shuttle/red{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/unpowered) -"k" = (/obj/effect/mob_spawn/human/prisoner_transport,/turf/open/floor/plasteel/shuttle/red{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/unpowered) -"l" = (/obj/item/weapon/shard,/turf/open/floor/plasteel/shuttle/red{baseturf = /turf/open/floor/plating/lava/smooth; initial_gas_mix = "o2=14;n2=23;TEMP=300"},/area/ruin/unpowered) -"m" = (/obj/effect/mob_spawn/human/nanotrasensoldier,/obj/effect/decal/cleanable/blood,/obj/item/device/flashlight/seclite,/obj/effect/light_emitter,/turf/open/floor/plasteel/shuttle/red{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/unpowered) -"n" = (/obj/item/weapon/gun/projectile/automatic/pistol/m1911,/turf/open/floor/plasteel/shuttle/red{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/unpowered) -"o" = (/turf/open/floor/plasteel/shuttle/red{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/unpowered) -"p" = (/obj/machinery/door/airlock/shuttle,/turf/open/floor/plasteel/shuttle/red{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/unpowered) -"q" = (/obj/item/weapon/shard,/turf/open/floor/plasteel/shuttle/red{baseturf = /turf/open/floor/plating/lava/smooth; initial_gas_mix = "o2=14;n2=23;TEMP=300"},/area/lavaland/surface/outdoors) -"r" = (/obj/machinery/door/airlock/shuttle,/turf/open/floor/plasteel/shuttle/red{baseturf = /turf/open/floor/plating/lava/smooth; initial_gas_mix = "o2=14;n2=23;TEMP=300"},/area/ruin/unpowered) -"s" = (/obj/effect/mob_spawn/human/nanotrasensoldier,/obj/item/weapon/gun/projectile/automatic/pistol/m1911,/obj/effect/decal/cleanable/blood,/turf/open/floor/plasteel/shuttle/red{baseturf = /turf/open/floor/plating/lava/smooth; initial_gas_mix = "o2=14;n2=23;TEMP=300"},/area/ruin/unpowered) -"t" = (/obj/structure/closet/crate/internals,/obj/item/weapon/crowbar/large,/turf/open/floor/plasteel/shuttle/red{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/unpowered) -"u" = (/obj/effect/decal/cleanable/blood,/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors) -"v" = (/obj/item/weapon/shard{icon_state = "small"},/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors) -"w" = (/obj/item/weapon/gun/projectile/automatic/pistol/m1911,/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors) -"x" = (/obj/effect/mob_spawn/human/nanotrasensoldier,/obj/effect/decal/cleanable/blood,/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors) -"y" = (/obj/effect/decal/cleanable/blood,/obj/item/device/flashlight/seclite,/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors) +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"b" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"c" = ( +/obj/item/weapon/shard, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"d" = ( +/obj/item/weapon/shard{ + icon_state = "medium" + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"e" = ( +/turf/closed/wall/mineral/plastitanium{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/lavaland/surface/outdoors) +"f" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion"; + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"g" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion"; + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered) +"h" = ( +/turf/closed/wall/mineral/plastitanium{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/unpowered) +"i" = ( +/turf/open/floor/mineral/plastitanium/brig{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/lavaland/surface/outdoors) +"j" = ( +/obj/item/weapon/pickaxe, +/obj/item/weapon/pickaxe, +/obj/item/weapon/pickaxe, +/obj/item/weapon/pickaxe, +/obj/item/device/flashlight/lantern, +/turf/open/floor/mineral/plastitanium/brig{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"k" = ( +/obj/effect/mob_spawn/human/prisoner_transport, +/turf/open/floor/mineral/plastitanium/brig{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"l" = ( +/obj/item/weapon/shard, +/turf/open/floor/mineral/plastitanium/brig{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"m" = ( +/obj/effect/mob_spawn/human/nanotrasensoldier, +/obj/effect/decal/cleanable/blood, +/obj/item/device/flashlight/seclite, +/obj/effect/light_emitter, +/turf/open/floor/mineral/plastitanium/brig{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"n" = ( +/obj/item/weapon/gun/ballistic/automatic/pistol/m1911, +/turf/open/floor/mineral/plastitanium/brig{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"o" = ( +/turf/open/floor/mineral/plastitanium/brig{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"p" = ( +/obj/machinery/door/airlock/titanium, +/turf/open/floor/mineral/plastitanium/brig{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"q" = ( +/obj/item/weapon/shard, +/turf/open/floor/mineral/plastitanium/brig{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/lavaland/surface/outdoors) +"r" = ( +/obj/machinery/door/airlock/titanium, +/turf/open/floor/plasteel/shuttle/red{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "o2=16;n2=23" + }, +/area/ruin/unpowered) +"s" = ( +/obj/effect/mob_spawn/human/nanotrasensoldier, +/obj/item/weapon/gun/ballistic/automatic/pistol/m1911, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/mineral/plastitanium/brig{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"t" = ( +/obj/structure/closet/crate/internals, +/obj/item/weapon/crowbar/large, +/turf/open/floor/mineral/plastitanium/brig{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"u" = ( +/obj/structure/lattice, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"v" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"w" = ( +/obj/item/weapon/shard{ + icon_state = "small" + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"x" = ( +/obj/item/weapon/gun/ballistic/automatic/pistol/m1911, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"y" = ( +/obj/effect/mob_spawn/human/nanotrasensoldier, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"z" = ( +/obj/effect/decal/cleanable/blood, +/obj/item/device/flashlight/seclite, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) (1,1,1) = {" -abbbbbbabbaabbbbbbbb -aabbbbbbbbbbbabbbbbb -bbcbaabbbbbbbabbbbbb -bbbbaabbdbbbabaaabbb -bbbbaabbbbbbbbaaabbb -baabbbbbbbbbbaaaaaaa -baaabbbbbbbbbaaaaaaa -bbbbbebaaaabaaaaaaaa -bbbbbfeaaaabbaaaaaaa -bbbghhhhhhheiihheaaa -bbbhhjkkkkhiiihlaaaa -bbbghmnooopiqirsaaaa -bbbhhtkkkkhiiieaaeaa -bbbghhhhhhhbbieeeabb -bbbbbfebbbbbbbbbbabb -bbbbbebbbbbbbbbbbbbb -bbbbbbbuubbbbbbbbaab -bbbvwbuuubbbcbbbbaab -babbbxybbaaaaaaaaaaa -bbabbbbbbaaaaaaaaaaa +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +"} +(2,1,1) = {" +b +a +b +b +b +a +a +b +b +b +b +b +b +b +b +b +b +b +a +b +"} +(3,1,1) = {" +b +b +c +b +b +a +a +b +b +b +b +b +b +b +b +b +b +b +b +a +"} +(4,1,1) = {" +b +b +b +b +b +b +a +b +b +g +h +g +h +g +b +b +b +w +b +b +"} +(5,1,1) = {" +b +b +a +a +a +b +b +b +b +h +h +h +h +h +b +b +b +x +b +b +"} +(6,1,1) = {" +b +b +a +a +a +b +b +e +f +h +j +m +t +h +f +e +b +b +y +b +"} +(7,1,1) = {" +b +b +b +b +b +b +b +b +e +h +k +n +k +h +e +b +b +v +z +b +"} +(8,1,1) = {" +a +b +b +b +b +b +b +a +a +h +k +o +k +h +b +b +v +v +b +b +"} +(9,1,1) = {" +b +b +b +d +b +b +b +a +a +h +k +o +k +h +b +b +v +v +b +b +"} +(10,1,1) = {" +b +b +b +b +b +b +b +a +a +h +k +o +k +h +b +b +b +b +a +a +"} +(11,1,1) = {" +a +b +b +b +b +b +b +a +a +h +h +p +h +h +b +b +b +b +a +a +"} +(12,1,1) = {" +a +b +b +b +b +b +b +b +b +e +i +i +i +u +b +b +b +b +a +a +"} +(13,1,1) = {" +b +b +b +a +b +b +b +a +b +i +i +q +i +u +b +b +b +c +a +a +"} +(14,1,1) = {" +b +a +a +b +b +a +a +a +a +i +i +i +i +i +b +b +b +b +a +a +"} +(15,1,1) = {" +b +b +b +a +a +a +a +a +a +h +h +p +e +e +b +b +b +b +a +a +"} +(16,1,1) = {" +b +b +b +a +a +a +a +a +a +h +l +s +a +e +b +b +b +b +a +a +"} +(17,1,1) = {" +b +b +b +a +a +a +a +a +a +e +a +a +a +e +b +b +b +b +a +a +"} +(18,1,1) = {" +b +b +b +b +b +a +a +a +a +a +a +a +e +a +a +b +a +a +a +a +"} +(19,1,1) = {" +b +b +b +b +b +a +a +a +a +a +a +a +a +b +b +b +a +a +a +a +"} +(20,1,1) = {" +b +b +b +b +b +a +a +a +a +a +a +a +a +b +b +b +b +b +a +a "} diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_swarmer_crash.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_swarmer_crash.dmm new file mode 100644 index 0000000000..30fb823af7 --- /dev/null +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_swarmer_crash.dmm @@ -0,0 +1,24 @@ +"a" = (/turf/template_noop,/area/template_noop) +"b" = (/turf/closed/mineral/volcanic/lava_land_surface,/area/template_noop) +"c" = (/turf/closed/wall/mineral/plastitanium{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/unpowered) +"d" = (/turf/open/floor/mineral/plastitanium/brig{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/unpowered) +"e" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 8},/turf/template_noop,/area/ruin/unpowered) +"f" = (/mob/living/simple_animal/hostile/megafauna/swarmer_swarm_beacon,/turf/open/floor/mineral/plastitanium/brig{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/unpowered) + +(1,1,1) = {" +aaaaaaaaaaaaaaa +aaabbaaaaaaaaaa +aaabbbbbaaaaaaa +aabbbbbbbbbaaaa +abbbbbbaaabbaaa +bbbbbbcccaaacca +abbbbcddddddcea +acdaaadddddceaa +aaddaaddfddceaa +acddaddddddceaa +aacbbcdddddacea +abbbbacccccacca +abbbbbbbbbbaaaa +aaaabbbbbbbaaaa +aaaaaaaabbaaaaa +"} diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm new file mode 100644 index 0000000000..df90a56146 --- /dev/null +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm @@ -0,0 +1,221 @@ +"aa" = (/turf/template_noop,/area/template_noop) +"ab" = (/turf/open/floor/plating/lava/smooth/lava_land_surface,/area/lavaland/surface/outdoors) +"ac" = (/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors) +"ad" = (/turf/closed/wall/mineral/plastitanium,/area/ruin/powered/syndicate_lava_base) +"ae" = (/obj/structure/closet/secure_closet/bar{req_access = null; req_access_txt = "150"},/turf/open/floor/plasteel/podhatch{dir = 10},/area/ruin/powered/syndicate_lava_base) +"af" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/snacks/syndicake,/obj/item/weapon/reagent_containers/food/snacks/syndicake,/obj/item/weapon/reagent_containers/food/snacks/syndicake,/obj/structure/sign/barsign{pixel_y = 32; req_access = null; req_access_txt = "150"},/turf/open/floor/plasteel/podhatch,/area/ruin/powered/syndicate_lava_base) +"ag" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/snacks/salad/validsalad,/turf/open/floor/plasteel/podhatch{tag = "icon-podhatch (SOUTHEAST)"; icon_state = "podhatch"; dir = 6},/area/ruin/powered/syndicate_lava_base) +"ah" = (/obj/structure/rack{icon = 'icons/obj/stationobjs.dmi'; icon_state = "minibar_left"; name = "skeletal minibar"},/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka,/turf/open/floor/wood,/area/ruin/powered/syndicate_lava_base) +"ai" = (/obj/structure/rack{icon = 'icons/obj/stationobjs.dmi'; icon_state = "minibar_right"; name = "skeletal minibar"},/obj/item/weapon/reagent_containers/food/drinks/bottle/gin,/turf/open/floor/wood,/area/ruin/powered/syndicate_lava_base) +"aj" = (/obj/structure/dresser,/obj/structure/mirror{desc = "Mirror mirror on the wall, who is the most robust of them all?"; pixel_x = -26},/turf/open/floor/plasteel/vault,/area/ruin/powered/syndicate_lava_base) +"ak" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-21"; layer = 4.1},/turf/open/floor/plasteel/vault,/area/ruin/powered/syndicate_lava_base) +"al" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-22"},/turf/open/floor/plasteel/vault,/area/ruin/powered/syndicate_lava_base) +"am" = (/obj/structure/table/wood,/obj/item/weapon/clipboard,/obj/item/toy/figure/syndie,/turf/open/floor/plasteel/vault,/area/ruin/powered/syndicate_lava_base) +"an" = (/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plasteel/podhatch{dir = 5},/area/ruin/powered/syndicate_lava_base) +"ao" = (/turf/open/floor/plasteel/black,/area/ruin/powered/syndicate_lava_base) +"ap" = (/turf/open/floor/plasteel/vault{dir = 5},/area/ruin/powered/syndicate_lava_base) +"aq" = (/obj/item/stack/sheet/mineral/plastitanium{amount = 30},/obj/item/stack/rods{amount = 50},/obj/structure/table/reinforced,/turf/open/floor/plasteel/podhatch{dir = 9},/area/ruin/powered/syndicate_lava_base) +"ar" = (/turf/open/floor/wood,/area/ruin/powered/syndicate_lava_base) +"as" = (/obj/effect/mob_spawn/human/lavaland_syndicate{tag = "icon-sleeper_s (EAST)"; icon_state = "sleeper_s"; dir = 4},/turf/open/floor/plasteel/grimy,/area/ruin/powered/syndicate_lava_base) +"at" = (/turf/open/floor/plasteel/grimy,/area/ruin/powered/syndicate_lava_base) +"au" = (/obj/effect/mob_spawn/human/lavaland_syndicate{tag = "icon-sleeper_s (WEST)"; icon_state = "sleeper_s"; dir = 8},/turf/open/floor/plasteel/grimy,/area/ruin/powered/syndicate_lava_base) +"av" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plasteel/podhatch{tag = "icon-podhatch (EAST)"; icon_state = "podhatch"; dir = 4},/area/ruin/powered/syndicate_lava_base) +"aw" = (/obj/item/stack/cable_coil/white,/obj/item/stack/cable_coil/white,/obj/item/stack/packageWrap,/obj/item/weapon/hand_labeler,/obj/structure/table/reinforced,/turf/open/floor/plasteel/podhatch{dir = 8},/area/ruin/powered/syndicate_lava_base) +"ax" = (/obj/structure/table/wood,/obj/item/ammo_box/magazine/m10mm,/obj/item/ammo_box/magazine/m10mm,/obj/item/ammo_box/magazine/m10mm,/obj/item/ammo_box/magazine/m10mm,/obj/item/ammo_box/magazine/sniper_rounds,/obj/item/ammo_box/magazine/sniper_rounds,/obj/item/ammo_box/magazine/sniper_rounds,/turf/open/floor/plasteel/grimy,/area/ruin/powered/syndicate_lava_base) +"ay" = (/obj/structure/table/wood,/obj/item/ammo_box/magazine/m10mm,/obj/item/ammo_box/magazine/m10mm,/obj/item/ammo_box/magazine/m10mm,/obj/item/ammo_box/magazine/m10mm,/obj/item/ammo_box/magazine/sniper_rounds,/obj/item/ammo_box/magazine/sniper_rounds,/obj/item/ammo_box/magazine/sniper_rounds,/obj/item/ammo_box/magazine/sniper_rounds,/obj/item/ammo_box/magazine/sniper_rounds,/obj/item/ammo_box/magazine/sniper_rounds,/turf/open/floor/plasteel/grimy,/area/ruin/powered/syndicate_lava_base) +"az" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel/podhatch{tag = "icon-podhatch (SOUTHEAST)"; icon_state = "podhatch"; dir = 6},/area/ruin/powered/syndicate_lava_base) +"aA" = (/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/structure/table/reinforced,/obj/item/weapon/wrench,/turf/open/floor/plasteel/podhatch{dir = 10},/area/ruin/powered/syndicate_lava_base) +"aB" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/turf/open/floor/wood{icon_state = "wood-broken4"},/area/ruin/powered/syndicate_lava_base) +"aC" = (/obj/structure/table/wood,/obj/item/weapon/storage/box/drinkingglasses,/turf/open/floor/wood,/area/ruin/powered/syndicate_lava_base) +"aD" = (/obj/structure/table/wood,/obj/item/toy/nuke,/obj/item/weapon/book/manual/nuclear,/turf/open/floor/wood,/area/ruin/powered/syndicate_lava_base) +"aE" = (/obj/structure/table/wood,/obj/item/weapon/lighter{pixel_y = 3},/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate,/turf/open/floor/wood,/area/ruin/powered/syndicate_lava_base) +"aF" = (/obj/structure/table/wood,/obj/item/weapon/storage/fancy/donut_box,/turf/open/floor/wood,/area/ruin/powered/syndicate_lava_base) +"aG" = (/obj/structure/extinguisher_cabinet{pixel_x = 26},/turf/open/floor/wood,/area/ruin/powered/syndicate_lava_base) +"aH" = (/obj/effect/mob_spawn/human/lavaland_syndicate/comms{tag = "icon-sleeper_s (EAST)"; icon_state = "sleeper_s"; dir = 4},/turf/open/floor/plasteel/grimy,/area/ruin/powered/syndicate_lava_base) +"aI" = (/obj/structure/sign/nosmoking_2,/turf/closed/wall/mineral/plastitanium,/area/ruin/powered/syndicate_lava_base) +"aJ" = (/obj/structure/closet/crate/bin,/obj/item/trash/syndi_cakes,/turf/open/floor/plasteel/black,/area/ruin/powered/syndicate_lava_base) +"aK" = (/obj/structure/chair/stool/bar,/turf/open/floor/plasteel/vault{dir = 5},/area/ruin/powered/syndicate_lava_base) +"aL" = (/obj/structure/chair/stool/bar,/turf/open/floor/plasteel/black,/area/ruin/powered/syndicate_lava_base) +"aM" = (/obj/structure/table/wood,/obj/item/weapon/lipstick/random{pixel_x = 3; pixel_y = 3},/obj/item/weapon/lipstick/random{pixel_x = -3; pixel_y = -3},/obj/item/weapon/lipstick/random,/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"aN" = (/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"aO" = (/obj/structure/dresser,/obj/structure/mirror{desc = "Mirror mirror on the wall, who is the most robust of them all?"; pixel_x = 26},/turf/open/floor/plasteel/vault{dir = 5},/area/ruin/powered/syndicate_lava_base) +"aP" = (/obj/item/target,/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"aQ" = (/obj/structure/closet/emcloset{anchored = 1},/obj/item/weapon/tank/internals/emergency_oxygen/engi,/obj/item/device/flashlight/seclite,/obj/item/clothing/mask/gas,/turf/open/floor/plasteel/podhatch{dir = 5},/area/ruin/powered/syndicate_lava_base) +"aR" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-21"; layer = 4.1},/turf/open/floor/plasteel/vault{dir = 5},/area/ruin/powered/syndicate_lava_base) +"aS" = (/obj/machinery/syndicatebomb/badmin/varplosion{can_unanchor = 0; name = "self destruct device"},/turf/open/floor/plasteel/black,/area/ruin/powered/syndicate_lava_base) +"aT" = (/obj/machinery/door/airlock/hatch{name = "Dormitories"; req_access_txt = "150"},/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"aU" = (/obj/structure/closet/emcloset,/obj/item/weapon/tank/internals/emergency_oxygen/engi,/obj/item/device/flashlight/seclite,/obj/item/clothing/mask/gas,/turf/open/floor/plasteel/podhatch{tag = "icon-podhatch (EAST)"; icon_state = "podhatch"; dir = 4},/area/ruin/powered/syndicate_lava_base) +"aV" = (/obj/machinery/door/airlock/hatch{name = "Storage Closet"; req_access_txt = "150"},/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"aW" = (/obj/machinery/door/airlock/hatch{name = "Restroom"; req_access_txt = "150"},/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"aX" = (/obj/structure/mirror{desc = "Mirror mirror on the wall, who is the most robust of them all?"; pixel_x = 28},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/open/floor/plasteel/vault{dir = 5},/area/ruin/powered/syndicate_lava_base) +"aY" = (/turf/open/floor/plasteel/podhatch{dir = 8},/area/ruin/powered/syndicate_lava_base) +"aZ" = (/turf/open/floor/plasteel/podhatch{tag = "icon-podhatch (EAST)"; icon_state = "podhatch"; dir = 4},/area/ruin/powered/syndicate_lava_base) +"ba" = (/obj/structure/closet/emcloset{anchored = 1},/obj/item/weapon/tank/internals/emergency_oxygen/engi,/obj/item/device/flashlight/seclite,/obj/item/clothing/mask/gas,/turf/open/floor/plasteel/podhatch{tag = "icon-podhatch (SOUTHEAST)"; icon_state = "podhatch"; dir = 6},/area/ruin/powered/syndicate_lava_base) +"bb" = (/obj/machinery/syndicatebomb/badmin/varplosion{can_unanchor = 0; name = "self destruct device"},/turf/open/floor/plasteel/vault{dir = 5},/area/ruin/powered/syndicate_lava_base) +"bc" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-22"},/turf/open/floor/plasteel/vault{dir = 5},/area/ruin/powered/syndicate_lava_base) +"bd" = (/obj/structure/bookcase/random,/turf/open/floor/plasteel/vault{dir = 5},/area/ruin/powered/syndicate_lava_base) +"be" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-21"; layer = 4.1},/turf/open/floor/plasteel/black,/area/ruin/powered/syndicate_lava_base) +"bf" = (/obj/structure/bookcase/random,/turf/open/floor/plasteel/black,/area/ruin/powered/syndicate_lava_base) +"bg" = (/obj/structure/toilet{tag = "icon-toilet00 (WEST)"; icon_state = "toilet00"; dir = 8},/turf/open/floor/plasteel/vault{dir = 5},/area/ruin/powered/syndicate_lava_base) +"bh" = (/obj/machinery/door/airlock/hatch{name = "Lounge"; req_access_txt = "150"},/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"bi" = (/obj/machinery/chem_dispenser,/turf/open/floor/plasteel/podhatch{dir = 8},/area/ruin/powered/syndicate_lava_base) +"bj" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/structure/sign/nosmoking_2{pixel_y = 32},/turf/open/floor/plasteel/podhatch{tag = "icon-podhatch (NORTH)"; icon_state = "podhatch"; dir = 1},/area/ruin/powered/syndicate_lava_base) +"bk" = (/obj/machinery/chem_master,/turf/open/floor/plasteel/podhatch{tag = "icon-podhatch (EAST)"; icon_state = "podhatch"; dir = 4},/area/ruin/powered/syndicate_lava_base) +"bl" = (/obj/structure/noticeboard{pixel_y = 32},/obj/machinery/reagentgrinder{desc = "Used to grind things up into raw materials and liquids."; pixel_y = 5},/obj/structure/table/reinforced,/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"bm" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/item/weapon/folder/white,/obj/item/weapon/book/manual/wiki/chemistry,/obj/item/weapon/book/manual/wiki/chemistry,/obj/item/device/assembly/signaler,/obj/item/device/assembly/signaler,/obj/item/device/assembly/voice,/obj/item/device/assembly/voice,/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"bn" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/beakers{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/syringes,/obj/item/weapon/gun/syringe/syndicate,/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"bo" = (/turf/open/floor/plasteel/podhatch{dir = 9},/area/ruin/powered/syndicate_lava_base) +"bp" = (/turf/open/floor/plasteel/podhatch{dir = 5},/area/ruin/powered/syndicate_lava_base) +"bq" = (/obj/structure/table/reinforced,/obj/machinery/reagentgrinder{desc = "Used to grind things up into raw materials and liquids."; pixel_y = 5},/obj/structure/noticeboard{pixel_y = 32},/turf/open/floor/plasteel/podhatch/corner,/area/ruin/powered/syndicate_lava_base) +"br" = (/obj/structure/reagent_dispensers/virusfood{pixel_y = 32},/obj/structure/table/reinforced,/obj/item/device/healthanalyzer,/obj/item/stack/sheet/mineral/plasma{amount = 5; layer = 3.1},/turf/open/floor/plasteel/podhatch,/area/ruin/powered/syndicate_lava_base) +"bs" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = 32},/obj/machinery/computer/pandemic,/turf/open/floor/plasteel/podhatch,/area/ruin/powered/syndicate_lava_base) +"bt" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/beakers{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/syringes,/turf/open/floor/plasteel/podhatch,/area/ruin/powered/syndicate_lava_base) +"bu" = (/obj/structure/bed/roller,/obj/machinery/iv_drip,/obj/item/weapon/reagent_containers/blood/random,/turf/open/floor/plasteel/podhatch{tag = "icon-podhatch (SOUTHEAST)"; icon_state = "podhatch"; dir = 6},/area/ruin/powered/syndicate_lava_base) +"bv" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ruin/powered/syndicate_lava_base) +"bw" = (/mob/living/carbon/monkey,/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"bx" = (/obj/structure/bed/roller,/turf/open/floor/plasteel/vault{dir = 8},/area/space) +"by" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plasteel/vault{dir = 5},/area/ruin/powered/syndicate_lava_base) +"bz" = (/obj/structure/bed/roller,/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"bA" = (/mob/living/carbon/monkey,/turf/open/floor/plasteel/vault{dir = 5},/area/ruin/powered/syndicate_lava_base) +"bB" = (/obj/structure/window/reinforced,/turf/open/floor/plasteel/vault{dir = 5},/area/ruin/powered/syndicate_lava_base) +"bC" = (/obj/machinery/door/window/brigdoor,/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"bD" = (/obj/machinery/chem_heater,/obj/structure/extinguisher_cabinet{pixel_x = -26},/turf/open/floor/plasteel/podhatch{dir = 10},/area/ruin/powered/syndicate_lava_base) +"bE" = (/obj/structure/chair/office/dark{dir = 1},/turf/open/floor/plasteel/podhatch,/area/ruin/powered/syndicate_lava_base) +"bF" = (/obj/structure/closet/crate/bin,/turf/open/floor/plasteel/podhatch{tag = "icon-podhatch (SOUTHEAST)"; icon_state = "podhatch"; dir = 6},/area/ruin/powered/syndicate_lava_base) +"bG" = (/turf/open/floor/plasteel/vault,/area/ruin/powered/syndicate_lava_base) +"bH" = (/obj/item/device/assembly/igniter,/obj/item/device/assembly/igniter,/obj/item/device/assembly/igniter,/obj/item/device/assembly/timer{pixel_x = 3; pixel_y = 3},/obj/item/device/assembly/timer{pixel_x = 3; pixel_y = 3},/obj/item/device/assembly/timer{pixel_x = 3; pixel_y = 3},/obj/structure/table/reinforced,/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"bI" = (/obj/structure/table/reinforced,/obj/item/weapon/book/manual/wiki/infections,/obj/item/stack/sheet/mineral/silver{amount = 10},/turf/open/floor/plasteel/podhatch{tag = "icon-podhatch (EAST)"; icon_state = "podhatch"; dir = 4},/area/ruin/powered/syndicate_lava_base) +"bJ" = (/obj/structure/chair/office/dark{dir = 8},/turf/open/floor/plasteel/vault{dir = 5},/area/ruin/powered/syndicate_lava_base) +"bK" = (/obj/machinery/door/airlock/hatch{name = "Monkey Pen"; req_access_txt = "150"},/turf/open/floor/plasteel/black,/area/ruin/powered/syndicate_lava_base) +"bL" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plasteel/vault{dir = 5},/area/space) +"bM" = (/obj/structure/table/reinforced,/obj/item/weapon/gun/ballistic/automatic/c20r/toy/unrestricted,/obj/item/weapon/gun/ballistic/automatic/c20r/toy/unrestricted,/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"bN" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-21"; layer = 4.1},/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"bO" = (/obj/structure/table/reinforced,/obj/item/clothing/gloves/color/latex,/obj/item/clothing/gloves/color/latex,/obj/item/clothing/suit/toggle/labcoat,/obj/item/clothing/suit/toggle/labcoat,/obj/item/clothing/glasses/science,/obj/item/clothing/glasses/science,/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"bP" = (/obj/machinery/smartfridge/chemistry/virology,/turf/open/floor/plasteel/podhatch{tag = "icon-podhatch (EAST)"; icon_state = "podhatch"; dir = 4},/area/ruin/powered/syndicate_lava_base) +"bQ" = (/obj/machinery/iv_drip,/obj/item/weapon/reagent_containers/blood/random,/turf/open/floor/plasteel/vault{dir = 5},/area/ruin/powered/syndicate_lava_base) +"bR" = (/obj/structure/closet/crate/bin,/turf/open/floor/plasteel/podhatch{dir = 9},/area/ruin/powered/syndicate_lava_base) +"bS" = (/obj/structure/chair/office/dark,/turf/open/floor/plasteel/podhatch{tag = "icon-podhatch (NORTH)"; icon_state = "podhatch"; dir = 1},/area/ruin/powered/syndicate_lava_base) +"bT" = (/obj/machinery/chem_heater,/turf/open/floor/plasteel/podhatch{dir = 5},/area/ruin/powered/syndicate_lava_base) +"bU" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/turf/open/floor/plasteel/podhatch{tag = "icon-podhatch (EAST)"; icon_state = "podhatch"; dir = 4},/area/ruin/powered/syndicate_lava_base) +"bV" = (/obj/structure/chair/office/dark,/turf/open/floor/plasteel/vault{dir = 5},/area/ruin/powered/syndicate_lava_base) +"bW" = (/obj/machinery/door/airlock/hatch{name = "Monkey Pen"; req_access_txt = "150"},/turf/open/floor/plasteel/black,/area/space) +"bX" = (/obj/machinery/door/airlock/hatch{name = "Monkey Pen"; req_access_txt = "150"},/turf/open/floor/plasteel/vault{dir = 5},/area/ruin/powered/syndicate_lava_base) +"bY" = (/obj/structure/table/reinforced,/obj/item/weapon/folder,/obj/item/clothing/ears/earmuffs,/obj/item/clothing/ears/earmuffs,/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"bZ" = (/obj/structure/table/reinforced,/obj/item/weapon/suppressor/specialoffer,/obj/item/weapon/gun/ballistic/automatic/toy/pistol/unrestricted,/obj/item/weapon/gun/ballistic/automatic/toy/pistol/unrestricted,/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"ca" = (/obj/machinery/chem_master,/turf/open/floor/plasteel/podhatch{dir = 8},/area/ruin/powered/syndicate_lava_base) +"cb" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/turf/open/floor/plasteel/podhatch,/area/ruin/powered/syndicate_lava_base) +"cc" = (/obj/machinery/chem_dispenser,/obj/structure/extinguisher_cabinet{pixel_x = 26},/turf/open/floor/plasteel/podhatch{tag = "icon-podhatch (EAST)"; icon_state = "podhatch"; dir = 4},/area/ruin/powered/syndicate_lava_base) +"cd" = (/obj/structure/table/reinforced,/obj/item/clothing/suit/bio_suit/general,/obj/item/clothing/mask/surgical,/obj/item/clothing/head/bio_hood/general,/turf/open/floor/plasteel/podhatch{tag = "icon-podhatch (SOUTHEAST)"; icon_state = "podhatch"; dir = 6},/area/ruin/powered/syndicate_lava_base) +"ce" = (/obj/machinery/shower{dir = 4; icon_state = "shower"; name = "emergency shower"},/obj/machinery/shower{dir = 8; icon_state = "shower"; name = "emergency shower"},/turf/open/floor/plasteel/vault{dir = 5},/area/ruin/powered/syndicate_lava_base) +"cf" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/turf/open/floor/plasteel/podhatch{tag = "icon-podhatch (NORTH)"; icon_state = "podhatch"; dir = 1},/area/ruin/powered/syndicate_lava_base) +"cg" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/white,/obj/item/stack/sheet/mineral/gold{amount = 10},/obj/item/stack/sheet/mineral/uranium{amount = 10},/turf/open/floor/plasteel/podhatch{tag = "icon-podhatch (NORTH)"; icon_state = "podhatch"; dir = 1},/area/ruin/powered/syndicate_lava_base) +"ch" = (/turf/open/floor/plasteel/vault{dir = 8},/area/space) +"ci" = (/obj/structure/bed/roller,/mob/living/carbon/monkey,/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"cj" = (/obj/structure/sign/securearea,/turf/closed/wall/mineral/plastitanium,/area/ruin/powered/syndicate_lava_base) +"ck" = (/obj/machinery/door/airlock/hatch{name = "Firing Range"; req_access_txt = "150"},/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"cl" = (/obj/machinery/door/airlock/hatch{name = "Chemistry Lab"; req_access_txt = "150"},/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"cm" = (/obj/structure/sign/chemistry,/turf/closed/wall/mineral/plastitanium,/area/ruin/powered/syndicate_lava_base) +"cn" = (/obj/machinery/syndicatebomb/badmin/varplosion{can_unanchor = 0; name = "self destruct device"},/turf/open/floor/plasteel/podhatch{dir = 8},/area/ruin/powered/syndicate_lava_base) +"co" = (/obj/structure/sign/biohazard,/turf/closed/wall/mineral/plastitanium,/area/ruin/powered/syndicate_lava_base) +"cp" = (/obj/machinery/door/airlock/hatch{name = "Virology Lab"; req_access_txt = "150"},/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"cq" = (/obj/structure/rack,/obj/item/ammo_box/foambox{pixel_x = -3; pixel_y = 3},/obj/item/ammo_box/foambox,/obj/item/ammo_box/foambox{pixel_x = 3; pixel_y = -3},/turf/open/floor/plasteel/podhatch{dir = 5},/area/ruin/powered/syndicate_lava_base) +"cr" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-22"},/turf/open/floor/plasteel/podhatch{dir = 9},/area/ruin/powered/syndicate_lava_base) +"cs" = (/turf/open/floor/plasteel/podhatch{tag = "icon-podhatch (NORTH)"; icon_state = "podhatch"; dir = 1},/area/ruin/powered/syndicate_lava_base) +"ct" = (/turf/open/floor/plasteel/podhatch/corner{tag = "icon-podhatchcorner (EAST)"; icon_state = "podhatchcorner"; dir = 4},/area/ruin/powered/syndicate_lava_base) +"cu" = (/turf/open/floor/plasteel/podhatch/corner{tag = "icon-podhatchcorner (WEST)"; icon_state = "podhatchcorner"; dir = 8},/area/ruin/powered/syndicate_lava_base) +"cv" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-21"; layer = 4.1},/turf/open/floor/plasteel/podhatch{dir = 5},/area/ruin/powered/syndicate_lava_base) +"cw" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/sign/bluecross_2,/turf/open/floor/plating,/area/ruin/powered/syndicate_lava_base) +"cx" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = -3; pixel_y = -3},/turf/open/floor/plasteel/vault,/area/ruin/powered/syndicate_lava_base) +"cy" = (/obj/machinery/sleeper/syndie{dir = 8},/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"cz" = (/obj/structure/closet/crate/secure,/obj/item/target,/obj/item/target,/obj/item/target/alien,/obj/item/target/alien,/obj/item/target/clown,/obj/item/target/clown,/turf/open/floor/plasteel/podhatch{tag = "icon-podhatch (SOUTHEAST)"; icon_state = "podhatch"; dir = 6},/area/ruin/powered/syndicate_lava_base) +"cA" = (/turf/open/floor/plasteel/podhatch{dir = 10},/area/ruin/powered/syndicate_lava_base) +"cB" = (/obj/machinery/syndicatebomb/badmin/varplosion{can_unanchor = 0; name = "self destruct device"},/turf/open/floor/plasteel/podhatch,/area/ruin/powered/syndicate_lava_base) +"cC" = (/obj/structure/extinguisher_cabinet{pixel_y = -32},/turf/open/floor/plasteel/podhatch,/area/ruin/powered/syndicate_lava_base) +"cD" = (/turf/open/floor/plasteel/podhatch,/area/ruin/powered/syndicate_lava_base) +"cE" = (/turf/open/floor/plasteel/podhatch/corner{tag = "icon-podhatchcorner (NORTH)"; icon_state = "podhatchcorner"; dir = 1},/area/ruin/powered/syndicate_lava_base) +"cF" = (/turf/open/floor/plasteel/podhatch/corner,/area/ruin/powered/syndicate_lava_base) +"cG" = (/turf/open/floor/plasteel/podhatch{tag = "icon-podhatch (SOUTHEAST)"; icon_state = "podhatch"; dir = 6},/area/ruin/powered/syndicate_lava_base) +"cH" = (/obj/machinery/door/airlock/hatch{name = "Infirmary"; req_access_txt = "150"},/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"cI" = (/obj/structure/bed/roller,/obj/machinery/iv_drip,/obj/item/weapon/reagent_containers/blood/random,/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"cJ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "lavalandsyndi"; name = "Syndicate Research Experimentor Shutters"},/turf/open/floor/plating,/area/ruin/powered/syndicate_lava_base) +"cK" = (/obj/machinery/door/airlock/hatch{name = "Experimentation Room"; req_access_txt = "150"},/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"cL" = (/obj/machinery/door/airlock/hatch{name = "Telecommunications Control"; req_access_txt = "150"},/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"cM" = (/turf/open/floor/engine,/area/ruin/powered/syndicate_lava_base) +"cN" = (/obj/structure/noticeboard{pixel_y = 32},/turf/open/floor/plasteel/vault{dir = 5},/area/ruin/powered/syndicate_lava_base) +"cO" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/syndicate,/obj/item/device/multitool,/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"cP" = (/obj/item/weapon/surgicaldrill,/obj/item/weapon/circular_saw,/obj/structure/table/reinforced,/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"cQ" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/mirror{pixel_x = 30},/turf/open/floor/plasteel/vault{dir = 5},/area/ruin/powered/syndicate_lava_base) +"cR" = (/obj/item/stack/cable_coil/white{pixel_x = 3; pixel_y = 3},/obj/structure/table/reinforced,/obj/item/weapon/storage/toolbox/syndicate,/obj/item/stack/cable_coil/white,/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"cS" = (/obj/structure/table/reinforced,/obj/item/device/flashlight/lamp,/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"cT" = (/obj/structure/table/reinforced,/obj/item/device/radio/intercom{broadcasting = 0; dir = 8; freerange = 1; listening = 1; name = "Pirate Radio Listening Channel"; pixel_x = 0},/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"cU" = (/obj/machinery/computer/camera_advanced,/turf/open/floor/plasteel/vault{dir = 5},/area/ruin/powered/syndicate_lava_base) +"cV" = (/obj/structure/filingcabinet/chestdrawer,/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"cW" = (/obj/item/weapon/cautery,/obj/item/weapon/scalpel,/obj/structure/table/reinforced,/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"cX" = (/obj/structure/table/optable,/obj/item/weapon/surgical_drapes,/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"cY" = (/obj/item/weapon/retractor,/obj/item/weapon/hemostat,/obj/structure/table/reinforced,/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"cZ" = (/obj/structure/sign/nosmoking_2{pixel_x = 32},/turf/open/floor/plasteel/vault{dir = 5},/area/ruin/powered/syndicate_lava_base) +"da" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-22"},/obj/structure/extinguisher_cabinet{pixel_x = -26},/turf/open/floor/plasteel/vault{dir = 5},/area/ruin/powered/syndicate_lava_base) +"db" = (/obj/structure/table/reinforced,/obj/item/device/radio/intercom{broadcasting = 1; dir = 8; freerange = 1; listening = 0; name = "Pirate Radio Broadcast Channel"; pixel_x = 0},/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"dc" = (/obj/structure/sign/fire{pixel_x = -32},/turf/open/floor/engine,/area/ruin/powered/syndicate_lava_base) +"dd" = (/obj/structure/table/reinforced,/obj/item/device/assembly/signaler,/obj/item/device/assembly/signaler,/obj/item/device/assembly/voice,/obj/item/device/assembly/voice,/obj/item/weapon/screwdriver/nuke,/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"de" = (/obj/structure/table/reinforced,/obj/item/stack/sheet/plasteel{amount = 15},/obj/item/device/electropack,/obj/item/device/taperecorder,/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"df" = (/obj/structure/filingcabinet/security,/turf/open/floor/plasteel/vault{dir = 5},/area/ruin/powered/syndicate_lava_base) +"dg" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"dh" = (/obj/machinery/computer/message_monitor,/obj/item/weapon/paper/monitorkey,/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"di" = (/turf/open/floor/plasteel/vault{tag = "icon-vault (NORTHEAST)"; dir = 5},/area/ruin/powered/syndicate_lava_base) +"dj" = (/obj/effect/baseturf_helper,/turf/open/floor/plasteel/vault{tag = "icon-vault (NORTHEAST)"; dir = 5},/area/ruin/powered/syndicate_lava_base) +"dk" = (/obj/machinery/button/door{id = "lavalandsyndi"; name = "Syndicate Experimentor Lockdown Control"; pixel_x = 26; req_access_txt = "150"},/turf/open/floor/engine,/area/ruin/powered/syndicate_lava_base) +"dl" = (/obj/machinery/button/door{id = "lavalandsyndi"; name = "Syndicate Experimentor Lockdown Control"; pixel_x = -26; req_access_txt = "150"},/turf/open/floor/plasteel/vault{dir = 5},/area/ruin/powered/syndicate_lava_base) +"dm" = (/obj/item/stack/sheet/mineral/plastitanium{amount = 30},/obj/item/stack/rods{amount = 50},/obj/structure/table/reinforced,/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"dn" = (/obj/structure/filingcabinet/medical,/turf/open/floor/plasteel/vault{dir = 5},/area/ruin/powered/syndicate_lava_base) +"do" = (/turf/open/floor/plasteel/circuit/gcircuit,/area/ruin/powered/syndicate_lava_base) +"dp" = (/obj/machinery/door/poddoor/preopen{id = "lavalandsyndi"; name = "Syndicate Research Experimentor Shutters"},/obj/machinery/door/airlock/hatch{name = "Experimentation Room"; req_access_txt = "150"},/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"dq" = (/obj/item/stack/sheet/metal{amount = 50},/obj/item/weapon/grenade/chem_grenade,/obj/item/weapon/grenade/chem_grenade,/obj/item/weapon/grenade/chem_grenade,/obj/structure/table/reinforced,/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"dr" = (/obj/machinery/telecomms/relay/preset/ruskie{use_power = 0},/turf/open/floor/plasteel/vault{tag = "icon-vault (NORTHEAST)"; dir = 5},/area/ruin/powered/syndicate_lava_base) +"ds" = (/obj/machinery/door/airlock/hatch{name = "Syndicate Recon Outpost"; req_access_txt = "150"},/obj/structure/fans/tiny,/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"dt" = (/obj/machinery/door/airlock/hatch{name = "Monkey Pen"; req_access_txt = "150"},/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"du" = (/obj/structure/sign/vacuum{pixel_x = -32},/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"dv" = (/obj/structure/sign/xeno_warning_mining{pixel_x = 32},/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"dw" = (/obj/structure/bed/roller,/obj/machinery/iv_drip,/mob/living/carbon/monkey,/turf/open/floor/plasteel/vault{dir = 8},/area/ruin/powered/syndicate_lava_base) +"dx" = (/obj/structure/sign/securearea{pixel_y = 32},/turf/open/floor/plating/lava/smooth/lava_land_surface,/area/lavaland/surface/outdoors) + +(1,1,1) = {" +aaaaaaaaabaaaaabababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababaa +aaaaabababababababababababababababababababababababababababababababababababab +aaaaabababababababababababababababababababababababababababababababababababaa +aaababababababababababababababababababababababababababababababababababababab +ababababababababababacababababacacadadadadadadadadadadadadadadabacababababab +abababababacababababababadadadadadadaeafagadahaiadajakadalamadababababababab +abababababababababababacadanaoapaqadararararararadasatadatauadacabababababab +abababababababacacababacadavapaoawadararararararadaxatadatayadacabababababab +abababababababacadadadadadazaoapaAadaBaCaDaEaFaGadaHatadatauadababacabababab +abababababababacadapapapadaIapaoadadaJaKaLaKaoapadaMaNadaNaOadacabacabababab +ababababababababadapaPapadaQapaoaRadapaoapaoapaSadadaTadaTadadadadababababab +abababababacababadapaNapadaUaoapapaVaoapaoapaoapaTapapapapapaWaXadababababab +abababababababacadaYaNaZadbabbaobcadbdbeapaobcbfadaRapapapaRadbgadacabababab +abababababababacadapaNapadadadadadadadadbhbhadadadadadadadadadadadadadababab +abababababababacadaYaNaZadbibjbkblbmbnadbobpadbqbrbsbtbubvbwbxbybzbAadababab +abababababacabacadbBbCbBadbDbEbFbGbGbHbvaYaZbvbIbJapapapbvbKbLbybKbyadababab +abababababacababadbMaNbNadaRapapapapbObvaYaZbvbPapaoaoaoaoaoaoaoaoaoadababab +abababababacabacadapapapadbQaoapbRbSbTbvaYaZbvbUapapbbbVbybWbybybXbyadababab +abababababababacadbYapbZadbQapapcacbccadaYaZadcdcebRcfcgbychcibyaNciadababab +ababababababacabadcjckadadcjclcmadbvadadcnaZadcocpadbvbvadadadadadadadababab +ababababababababadcqapaRbvcrcscscscscscsctcucscscscscscscvcwcxapcyadabababab +aaabababababacacadczapapckcAcBcCcDcDcDcDcEcFcDcDcDcDcDcDcGcHapapcIadabababab +aaabababababacadadadcJadadadadadadcKcjadaYaZadadcLcjadadadadapapcyadabababab +abababababababadcMcMcMcMcMcMcMcjaRapapadaYaZadaRapapcNbbcOadcPapcQadabababab +abababababababadcMcMcMcMcMcMcMcJcRapapadaYaZadapaocScTcUcVadcWcXcYadabababab +abababababababadcMcMcMcMcMcMcMcJbHapcZadaYaZaddaaodbbJapaNadadadadadabababab +ababababababacaddccMcMcMcMcMcMcJddapdeadaYaZaddfaodgdhapaNcLdidjdiadabababab +abababababababadcMcMcMcMcMcMdkaddlapdmadaYaZaddnapapapapbNaddododoadabababab +ababababababacadcMcMcMcMcMcMcMdpapapdqadcAcGadadadadadadadaddodrdoadabababab +ababababababacadcMcMcMcMcMcMcMaddaapaRaddsdsadacacacacacabadadadadadabababab +ababababababacadadadadadadadadadbvdtbvaddudvadacacacababababababacacabababab +ababababababacacacabababacacacaddwaNdwadaNaNadacababababacababababababababab +ababababababababababababababacadadadadaddsdsadababacacababababababababababab +abababababababababababababababababababdxababdxababababababababababababababab +abababababababababababababababababababababababababababababababababababababaa +aaababababababababababababababababababababababababababababababababababababaa +aaaaabaaababababababababababababababababababababababababababababababaaaaaaaa +"} diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_ww_vault.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_ww_vault.dmm index f0bf959447..56d0ad808d 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_ww_vault.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_ww_vault.dmm @@ -1,118 +1,10005 @@ -"a" = (/turf/template_noop,/area/template_noop) -"b" = (/turf/closed/indestructible,/area/ruin/powered) -"c" = (/turf/open/floor/engine/cult,/area/ruin/powered) -"d" = (/obj/structure/cult/pylon,/turf/open/floor/engine/cult,/area/ruin/powered) -"e" = (/turf/open/floor/plating{icon_state = "cultdamage5"},/area/ruin/powered) -"f" = (/mob/living/simple_animal/hostile/faithless,/turf/open/floor/engine/cult,/area/ruin/powered) -"g" = (/turf/open/floor/plasteel/circuit/off,/area/ruin/powered) -"h" = (/turf/closed/indestructible{desc = "The patterns engraved on the wall seem to shift as you try to focus on them. You feel sick."; icon = 'icons/turf/walls/cult_wall.dmi'; icon_state = "cult"},/area/ruin/powered) -"i" = (/turf/open/floor/plating{icon_state = "cultdamage3"},/area/ruin/powered) -"j" = (/turf/open/floor/plating{icon_state = "cultdamage6"},/area/ruin/powered) -"k" = (/obj/effect/gateway,/turf/open/floor/engine/cult,/area/ruin/powered) -"l" = (/mob/living/simple_animal/hostile/faithless,/turf/open/floor/plasteel/circuit/off,/area/ruin/powered) -"m" = (/obj/machinery/wish_granter_dark,/turf/open/floor/plasteel/circuit/gcircuit/off,/area/ruin/powered) -"n" = (/turf/open/floor/plasteel/circuit/gcircuit/off,/area/ruin/powered) -"o" = (/obj/structure/cult/pylon,/turf/open/floor/plasteel/circuit/gcircuit/off,/area/ruin/powered) -"p" = (/obj/structure/signpost,/turf/open/floor/plasteel/circuit/gcircuit/off,/area/ruin/powered) -"q" = (/obj/effect/meatgrinder,/turf/open/floor/plasteel/circuit/gcircuit/off,/area/ruin/powered) -"r" = (/obj/structure/cult/pylon,/turf/open/floor/plasteel/circuit/off,/area/ruin/powered) -"s" = (/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"t" = (/turf/open/floor/plating{icon_state = "cultdamage2"},/area/ruin/powered) -"u" = (/turf/open/floor/carpet,/area/ruin/powered) -"v" = (/mob/living/simple_animal/hostile/faithless,/turf/open/floor/carpet,/area/ruin/powered) -"w" = (/obj/machinery/door/airlock/vault{locked = 1},/turf/open/floor/engine/cult,/area/ruin/powered) -"x" = (/obj/structure/cult/pylon,/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"y" = (/mob/living/simple_animal/hostile/faithless,/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"z" = (/turf/template_noop,/turf/closed/indestructible{desc = "The patterns engraved on the wall seem to shift as you try to focus on them. You feel sick."; icon = 'icons/turf/walls/cult_wall.dmi'; icon_state = "cult"},/area/ruin/powered) -"A" = (/mob/living/simple_animal/hostile/faithless,/turf/template_noop,/area/template_noop) -"B" = (/obj/effect/mob_spawn/human/miner/rig,/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"C" = (/obj/machinery/door/airlock/vault{locked = 1},/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth; blocks_air = 1},/area/ruin/powered) -"D" = (/turf/closed/indestructible,/area/template_noop) -"E" = (/obj/item/weapon/paper{info = "meat grinder requires sacri"},/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth},/area/template_noop) -"F" = (/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth},/area/template_noop) -"G" = (/obj/effect/mob_spawn/human/syndicatecommando,/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth},/area/template_noop) -"H" = (/mob/living/simple_animal/hostile/faithless,/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth},/area/template_noop) -"I" = (/obj/machinery/door/airlock/vault,/obj/structure/fans/tiny/invisible,/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth},/area/template_noop) +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"b" = ( +/turf/closed/indestructible, +/area/ruin/powered) +"c" = ( +/turf/open/floor/engine/cult, +/area/ruin/powered) +"d" = ( +/obj/structure/destructible/cult/pylon, +/turf/open/floor/engine/cult, +/area/ruin/powered) +"e" = ( +/turf/open/floor/plating{ + icon_state = "cultdamage5" + }, +/area/ruin/powered) +"f" = ( +/mob/living/simple_animal/hostile/faithless, +/turf/open/floor/engine/cult, +/area/ruin/powered) +"g" = ( +/turf/open/floor/plasteel/circuit/off, +/area/ruin/powered) +"h" = ( +/turf/closed/indestructible{ + desc = "The patterns engraved on the wall seem to shift as you try to focus on them. You feel sick."; + icon = 'icons/turf/walls/cult_wall.dmi'; + icon_state = "cult" + }, +/area/ruin/powered) +"i" = ( +/turf/open/floor/plating{ + icon_state = "cultdamage3" + }, +/area/ruin/powered) +"j" = ( +/turf/open/floor/plating{ + icon_state = "cultdamage6" + }, +/area/ruin/powered) +"k" = ( +/obj/effect/gateway, +/turf/open/floor/engine/cult, +/area/ruin/powered) +"l" = ( +/mob/living/simple_animal/hostile/faithless, +/turf/open/floor/plasteel/circuit/off, +/area/ruin/powered) +"m" = ( +/obj/machinery/wish_granter_dark, +/turf/open/floor/plasteel/circuit/gcircuit/off, +/area/ruin/powered) +"n" = ( +/turf/open/floor/plasteel/circuit/gcircuit/off, +/area/ruin/powered) +"o" = ( +/obj/structure/destructible/cult/pylon, +/turf/open/floor/plasteel/circuit/gcircuit/off, +/area/ruin/powered) +"p" = ( +/obj/structure/signpost, +/turf/open/floor/plasteel/circuit/gcircuit/off, +/area/ruin/powered) +"q" = ( +/obj/effect/meatgrinder, +/turf/open/floor/plasteel/circuit/gcircuit/off, +/area/ruin/powered) +"r" = ( +/obj/structure/destructible/cult/pylon, +/turf/open/floor/plasteel/circuit/off, +/area/ruin/powered) +"s" = ( +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"t" = ( +/turf/open/floor/plating{ + icon_state = "cultdamage2" + }, +/area/ruin/powered) +"u" = ( +/turf/open/floor/carpet, +/area/ruin/powered) +"v" = ( +/mob/living/simple_animal/hostile/faithless, +/turf/open/floor/carpet, +/area/ruin/powered) +"w" = ( +/obj/machinery/door/airlock/vault{ + locked = 1 + }, +/turf/open/floor/engine/cult, +/area/ruin/powered) +"x" = ( +/obj/structure/destructible/cult/pylon, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"y" = ( +/mob/living/simple_animal/hostile/faithless, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"z" = ( +/turf/template_noop, +/turf/closed/indestructible{ + desc = "The patterns engraved on the wall seem to shift as you try to focus on them. You feel sick."; + icon = 'icons/turf/walls/cult_wall.dmi'; + icon_state = "cult" + }, +/area/ruin/powered) +"A" = ( +/mob/living/simple_animal/hostile/faithless, +/turf/template_noop, +/area/template_noop) +"B" = ( +/obj/effect/mob_spawn/human/miner/rig, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"C" = ( +/obj/machinery/door/airlock/vault{ + locked = 1 + }, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth; + blocks_air = 1 + }, +/area/ruin/powered) +"D" = ( +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/template_noop) +"E" = ( +/turf/closed/indestructible, +/area/template_noop) +"F" = ( +/obj/item/weapon/paper{ + info = "meat grinder requires sacri" + }, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/template_noop) +"G" = ( +/obj/effect/mob_spawn/human/syndicatecommando, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/template_noop) +"H" = ( +/mob/living/simple_animal/hostile/faithless, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/template_noop) (1,1,1) = {" -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbccccbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbccccccccccccccbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbccccccccccccccccccbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbccccccccccccccccccccccccccccbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbccccccccccccdcccccccccccccccccccccccccccbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbccccccccccccccccceccfcccccccccccccgcccccccccbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbaaaaaaabhhhcccccccifcccccccccccccccccccifccccggcccccccccccccbbbbbbbbbbaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaabbccccccccccbbaaaaabbhchhccccccccccccccccfcccecccccccccccccgggccccccccccccccccccccbbbbbbaaaaaaaaabbbb -aaaaaaaaaaaaaaaaabbbhhccchhhchchbbbbbbbcccchhcccccccccjccccccccccccckccccccccckcgggglcccccicccccccccccccbbbbbbaaabbbbmnb -aaaaaaaaaaaaaaaaabccchhhccchhhchcccccccccccchhcccccccccccccccccccccccccccgccccccccccggggcccgccgcccgdccccbbbbbbbbbbonnnnb -aaaaaaaaaaaaaaaabbccchhhhhfcdhchhccccccfcdccchhhhccdcccccckccccccccccccccggcccccggggggccggggggggccggccccbpnnbbbbbnnnnnnb -aaaaaaaaaaaaaaaabcccccccccccchcchhhccccfchhhcccchhcccccceccccccccjccfcccccgclgggcccccgggggglgggggcigbbbbbnnnnnnbnnnnnnob -aaaaaaaaaaaaaaabbcchhccccfcfchcccchhhhccchhhhcccchccccfccccccdccccccccdcccggcccccggccdggigggggggggbbbggcbnnnnnnnqbnnnnnb -aaaaaaaaaaaaaabbcccdhhhhhhhhhhhhccccchhccccchcccchhccccccccccccccccccccccccccccccccgggggcccggcccggbggcgdbnnnnnnbnnnnnnnb -aaaaaaaaaaaabbbcccccccfcccccccchcccccchhcccchhccfchcccccfccccccccfccccccccccccccfcccccggggggcdcccgggbgggnnnnnnbbbonnnnnb -aaaaaaaaaaaabbhhhcccfcccccccccchhcccccchhhccchdcfchhhcccciccjcccccccccceccciccgggccggggcfgggggggggbggggrbnnnnbbbbbbbbbbb -aaaaaaaaaaabbccchhhccccccchhhccchdccccccchhcchhhcccchcccccccccfcccjccccccfccggcccgggcckcggggccgggcbbbggcbnnobbbbaaaabbba -aaaaaaaaaaabcccccchhhhhhhhhdcccchhcccccccchdccchcccchcccccsccccccccccccccccggccccccccgggcgccgglgggggbbbbbnnnbbbaaaaaaaaa -aaaaaaaaaaabcccccccccfcfccccccccchcccccccfhhhcchhccchccccjscccdcccccccccccccccccdccgggcccggglggggggggggcbnnnbbaaaaaaaaaa -aaaaaaaaaaabccchccccccccccccccchhhhhhhhccccchccchccchcccccsfccccccccccccccccfccccccgcccccccggcgggggggggcbbbbbbaaaaaaaaaa -aaaaabbaaabbccchhhhhhhhhhccccchhcccccchhhccchhcchccchhccccccccccceccfccicccccccccccccfcccgggcgggcgggggggcccccbaaaaaaaaaa -aaaabbbbaabccccccdcccccchhhhhchccccccccchcfcdhcchcccchcccckcicfcccccccccccfcccctcccccccggggcgggfggggggcgdccccbaaaaaaaaaa -aaaabccbbbbhhhcccccccccccccchhhchhhhcccchccccccchdccchhccccccccccccccccccccccccccfccccggcrcggggggggclgcggccccbaaaaaaaaaa -aaabbcccccccchhhhhhhhhccccccdhhchcfhcccchhhhhhhhhhcccchccccccccccccccccccccccccccjccgggcccggcggccggcggccgcfccbaaaaaaaaaa -aaabccccfcfcccccccccdhhhhhhccccchfchdccchcccccccchhccchhcccccccccccccciccccccdccccccgccccggccgfcgclgggccgccccbaaaaaaaaaa -aaabccchcccchhhhhccccccccchhccfchffhhhcccccccccccchhccchcccccccjciccccccjcfccccccccggccfggccggccggggcgdcggcccbaaaaaaaaaa -aaabbcchhhdhhccchhhcccccccchhccchcfcchhcfchhhhhhccdhcfchccccccccccccdccccccccccccccfcccccccggccgglcgcgcccccccbaaaaaaaaaa -aaaabbccchhhhcfccchcchhhhccchccchccfcchhcchcccchfcchcfchhccccccfcccccccccccccccfcccccccccccgcccccgcgcgcccccccbaaaaaaaaaa -aaaaabbccccchhhccchhcccfhhhchccchhhcccchcfhcccchhcchhccchhccccccccfcccccccicccccccccccccccfcfccccgcgcggcfccccbaaaaaaaaaa -aaaaaabbcccfcchhhcchhccccchchhcccchhhcchchhccccchcfchhccchcccfccccccccccccccccccccckcccccccccccccgcgccgccckccbaaaaaaaaaa -aaaaaaabbcffcccdhccchhhccfhcchdccccchcchhhcchhcchcccchccchcccccccckcccccccccccfccccccccdccccccccggcgfcgccccccbaaaaaaaaaa -aaaaaaaabcccfccccccccchhcchcchhhhccchcchcccchdcchcccchccchccccccccccccfccccccccccfccccccccccccccgcggcccccccccbaaaaaaaaaa -aaaaaaaabhhhhhcchhhhccchhhhccccccccchcchcccchccchcccchccchcccccccfcccccccfcccccccccccjccccccccccgccccccccfcccbbaaaaaaaaa -aaaaaaaabsssshhhhsshhcccchhhccfccccchccdcccchcchhccchhccchcccdccccdccccdccccdccccdccccccccjcccccccccccccccccccbaaaaaaaaa -aaaaaaaabssssssssssshhcfssshhcchhhcchcccchhhhcchcccchdcchhhhcuvuuuuuuuuuuuuuuuvuuucccccccccccfcecccccccccfccccbaaaaaaaaa -aaaaaaaabshhhhhchhssshfcsssshhhhshhhhcccchfcfchhcccchccchccwcuuuuuuuuuuuuvuuuuuuuuccfccccccccccccccccdccccccccbbbbbaaaaa -aaabbbbbbssssshcchssshhcsssshssssssshhccchcfchhfccchhfcchccwcuuuvuuuuuuuuuuuuuuuuucccccccccfcccccckccccjccfcccccccbaaaaa -aabbsssbbhhhsshcchhssxhhsssshsssssssshhcchccchdcchhhfcchhcchcuuuuuuuvuuuuuuuuuuuuuccckcccccccccccccfcccccccccdcfccbaaaaa -aabsshsshsyssshccfhsssshhcchhssssssssshcchhcchhfchccccfhdcchcdccccdccccdccccdccccdccccccccccccccccccccccccccccccccbaaaaa -aabshhhssysyxshccfhhssssssshsssshhsschhccchcchhcchccchhhccchcccfcccccciccccccccccccbbbbccccccdccjccjcccccfcecccccbbaaaaa -aabsshhhhhhhhhhhccchhhhhhshhssshhsssshsssshhchcfchccccccccchccfcccccccccccccccfcccbbaabbbbcccccccccccccccccccccccbaaaaaa -aabbssshzsysssshdccccccchhhsssshxssshhsssshhccccchcccccffcchcccccccccccccccccccccbbaaaaaabbbcccccccccccccccccccccbaaaaaa -aaabbbshsyhsxsshcccccccccchssshhsyshhssssshcccccbbbbbbbbccchcccccccccccccfccccccbbaaaaaaaaabbcccccccfcdccjcccccfcbaaaaaa -aaaaabshshhsssshhhhhhhhccchssshsssshsssssshccccbbaaaaaabbbbbbbbbbcccckcccccccccbbaaaaaaaaaaabbccccjcccccccccccfccbaaaaaa -aaaaabshshssshhhsssssshccchssxhhhhhhsssssshbbbbbaaaaaaaaaaaaaaaabbcccccccfccccbbaaaaaaaaaaaaabbcccccccccccfcccccbbaaaaaa -aaaaabshshsssssssssysshssssssssssssssssscbbbaaaaaaaaaaaaaaaaaaaaabbbccccccccccbaaaaaaaaaaaaaaabbbccccfcfcccccfccbaaaaaaa -aaaaabscshssssssssyssshssssssssssssssyssbbaaaaaaaaaaaaaaaaaaaaaaaaabbbbccccccbbaaaaaaaaaaaaaaaaabbccccccccccccccbaaaaaaa -aaaaabhhhhhhhhhhhhhwwhhhhhhhhhhhhhhhhhhbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbccbaaaaaaaaaaaaaAaaaaabbbbbbbbbbbbbbbbaaaaaaa -aaaaabbbsssssssssssssssssssssssssssssssbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbaaaaaaaa -aaaaaaabbbsssssxssxssxssxssxssxssxssxssbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaabbbbbssssssssssBsysssssssssssbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaabbbssssssssssssssssssssssssbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaabbsssssssssssssssssssssssbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaa -aaaaaaaaaaaaabbbbsssssssssssssssssssbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabbbbbbbbbbbbbbCCbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaDEFDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaDGFDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaDFFDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaDFHDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaDIIDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(3,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(4,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +a +a +a +a +a +a +a +a +a +b +b +s +s +s +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(5,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +c +c +b +b +a +a +a +a +a +a +a +a +b +s +s +h +s +s +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(6,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +c +c +c +c +c +b +b +a +a +a +a +a +a +a +b +s +h +h +h +s +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(7,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +c +c +c +c +c +c +b +b +a +a +a +a +a +a +b +s +s +h +h +s +s +s +s +s +s +h +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(8,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +c +c +h +h +c +c +b +b +a +a +a +a +a +b +b +s +s +h +h +h +h +h +h +c +h +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(9,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +f +c +h +c +c +c +b +b +b +b +b +b +b +b +h +s +h +z +s +s +s +s +s +h +s +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(10,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +h +h +c +c +c +c +h +s +s +s +s +h +s +y +h +s +y +h +h +h +h +h +s +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(11,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +c +f +c +d +h +c +c +f +c +h +s +s +h +s +h +y +s +h +y +h +h +s +s +s +h +s +s +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(12,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +c +h +c +c +c +h +h +c +f +f +c +h +s +s +h +s +h +s +y +h +s +s +s +s +s +s +h +s +s +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(13,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +c +c +c +c +c +h +c +c +h +h +h +h +c +c +f +h +s +s +h +s +s +s +x +h +s +x +s +s +s +s +h +s +s +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(14,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +c +c +c +c +c +c +h +h +c +h +c +c +h +c +c +c +h +h +s +h +s +s +s +s +h +s +s +s +h +s +s +h +s +s +b +s +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(15,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +h +c +c +c +c +c +c +c +h +c +h +c +f +h +h +c +c +c +h +s +h +h +h +h +h +h +s +s +s +h +s +s +h +s +s +s +s +s +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(16,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +c +h +c +c +c +h +h +c +c +h +c +h +c +c +c +h +d +c +c +h +s +c +c +c +c +c +h +h +h +h +h +s +s +h +s +x +s +s +s +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(17,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +c +c +h +h +c +c +c +h +c +c +h +c +h +h +c +c +h +h +c +h +h +s +h +c +c +c +c +c +d +c +h +s +s +s +h +s +s +s +s +s +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(18,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +c +c +c +c +c +h +c +c +c +h +d +c +h +c +c +h +c +c +c +c +c +h +s +s +h +h +h +f +f +c +c +c +h +s +s +s +h +s +s +s +s +s +s +b +a +a +a +a +a +a +D +a +a +a +a +a +a +a +"} +(19,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +c +c +h +h +c +c +h +c +c +h +c +c +h +h +h +c +c +c +h +s +s +s +s +h +h +h +c +c +c +h +s +s +y +h +s +x +s +s +s +s +b +D +D +D +a +a +a +D +a +a +a +a +a +a +a +"} +(20,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +c +c +c +h +d +c +c +c +h +c +c +h +c +c +h +c +c +c +c +h +h +c +c +h +h +s +s +s +s +s +h +h +c +c +h +s +y +s +w +s +s +s +s +s +s +b +a +a +D +D +D +D +a +a +a +a +a +a +a +a +"} +(21,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +h +c +c +c +h +h +c +f +c +h +c +c +h +c +c +h +d +c +c +c +c +h +h +c +c +h +h +s +s +s +s +s +h +c +c +h +s +s +s +w +s +s +s +s +s +s +b +a +a +a +D +a +a +a +a +a +a +a +a +a +a +"} +(22,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +h +h +h +c +c +h +c +c +c +h +f +c +h +c +c +h +h +c +c +h +c +c +h +c +c +c +h +h +h +x +s +s +h +c +c +h +s +s +s +h +s +x +s +s +s +s +b +D +D +a +a +a +a +a +a +a +a +a +a +a +a +"} +(23,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +h +h +c +c +h +f +c +c +h +c +c +h +c +c +c +h +c +c +h +c +c +h +h +c +c +c +f +h +h +s +s +h +c +c +h +h +h +h +h +s +s +s +s +s +s +b +a +D +D +a +a +a +a +a +a +a +a +a +a +a +"} +(24,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +h +h +c +c +h +c +c +c +h +f +c +h +c +c +c +h +c +c +h +f +c +c +h +h +c +f +c +c +h +h +s +h +c +c +c +c +s +s +h +s +s +s +s +s +s +b +D +D +D +D +a +A +a +a +a +a +a +a +a +a +"} +(25,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +h +c +c +h +c +c +c +h +c +c +h +h +c +c +h +c +c +h +h +c +c +c +h +c +s +s +s +s +h +s +h +h +c +c +c +s +s +h +s +x +B +s +s +s +b +a +D +D +D +a +a +a +a +a +a +a +a +a +a +"} +(26,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +h +c +h +c +f +h +c +c +c +h +c +c +c +h +c +c +h +c +c +c +h +c +f +c +h +h +s +s +s +s +c +s +s +h +c +c +c +s +s +h +s +s +s +s +s +s +b +D +D +D +D +D +D +D +D +a +a +a +a +a +a +"} +(27,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +h +c +f +c +c +h +c +c +h +h +c +c +c +h +c +c +h +h +c +c +h +h +h +h +h +h +s +s +s +s +c +s +h +h +h +h +h +s +s +h +s +s +y +s +s +s +b +a +a +a +a +a +a +a +a +D +D +a +a +a +a +"} +(28,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +h +h +c +c +f +h +c +c +h +d +c +c +c +h +c +c +c +h +h +c +c +c +c +c +c +h +h +s +s +s +h +h +h +s +s +s +s +s +s +h +s +x +s +s +s +s +b +a +a +a +a +a +a +a +a +D +a +a +a +a +a +"} +(29,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +h +d +c +c +h +c +c +h +c +c +c +c +h +h +d +c +c +h +h +h +h +c +c +c +c +h +h +h +h +h +s +s +s +s +s +s +s +s +h +s +s +s +s +s +s +b +E +E +E +E +a +a +a +a +a +a +a +a +a +a +"} +(30,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +h +h +h +h +h +h +c +c +c +c +c +c +c +c +h +h +c +c +c +c +c +h +h +h +c +c +c +h +s +s +s +s +s +s +s +s +x +s +s +h +s +s +s +s +s +s +C +F +G +D +D +D +D +D +a +a +a +a +a +a +a +"} +(31,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +c +h +c +c +c +c +c +c +h +h +h +h +c +f +c +c +c +c +d +h +c +f +c +h +s +s +s +s +s +s +h +h +h +s +s +h +s +x +s +s +s +s +C +D +D +D +H +D +D +a +a +a +a +a +a +a +a +"} +(32,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +h +h +h +c +c +h +h +h +c +c +c +h +h +c +c +c +c +c +c +c +c +c +c +h +c +c +h +h +s +s +s +s +h +h +h +s +h +s +s +h +s +s +s +s +s +s +b +E +E +E +E +a +a +D +a +a +a +a +a +a +a +"} +(33,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +c +h +h +c +c +c +h +h +h +c +h +c +c +h +h +h +h +h +h +h +c +c +h +c +c +h +s +s +s +s +h +h +x +s +s +h +s +s +h +s +s +s +s +s +s +b +a +a +a +a +a +a +D +D +a +a +a +a +a +a +"} +(34,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +h +c +c +c +c +d +h +h +h +c +c +h +c +f +f +c +c +h +c +c +c +c +c +h +h +s +s +s +h +s +s +y +s +h +s +s +h +s +x +s +s +s +s +b +a +a +a +a +a +a +D +D +a +a +a +a +a +a +"} +(35,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +h +h +c +c +c +c +c +c +h +c +c +h +f +c +f +f +c +h +h +c +c +c +c +c +h +s +s +s +s +s +s +s +s +h +s +s +h +s +s +s +s +s +s +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(36,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +h +c +c +c +c +c +c +h +c +c +h +h +h +h +c +f +c +h +c +c +c +c +c +h +s +s +s +s +s +s +h +h +h +s +s +h +s +s +s +s +s +s +b +D +D +a +a +a +a +a +a +a +D +a +a +a +a +"} +(37,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +h +c +c +c +c +c +c +h +c +c +c +c +d +h +c +c +c +h +h +h +h +h +h +h +h +s +s +c +s +h +h +s +s +s +s +h +s +x +s +s +s +b +b +a +D +a +a +a +a +a +a +a +a +a +a +a +a +"} +(38,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +h +h +c +c +c +c +c +h +c +c +c +c +c +h +h +c +c +c +c +c +c +c +c +c +h +h +s +h +h +h +s +s +s +s +y +h +s +s +s +b +b +b +a +a +D +a +a +a +a +a +a +a +a +a +a +a +a +"} +(39,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +c +c +c +c +h +h +c +c +c +c +h +h +c +c +c +c +c +h +h +c +c +c +c +c +c +c +c +c +h +h +h +s +s +s +s +s +s +s +h +s +s +b +a +a +a +a +a +D +a +a +a +a +a +a +a +a +a +a +a +a +"} +(40,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +c +c +f +f +c +c +h +h +c +c +c +c +h +c +c +c +c +c +c +h +h +h +h +h +h +d +c +c +c +c +c +c +s +s +s +s +s +s +s +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(41,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +h +h +c +c +c +c +c +c +c +h +c +c +c +c +h +h +h +h +h +c +f +c +c +c +h +c +c +c +c +c +c +c +c +c +s +s +s +s +s +c +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(42,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +h +c +c +c +d +h +h +c +c +h +h +c +f +c +c +c +c +h +c +c +c +c +f +h +h +c +c +c +h +h +h +h +h +c +s +s +s +s +s +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(43,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +c +h +h +c +c +c +h +h +c +c +c +h +h +h +c +c +f +c +h +c +c +h +h +h +h +c +c +c +c +h +f +c +c +h +h +h +h +h +h +h +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(44,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +c +c +c +h +h +c +c +h +h +c +c +c +c +d +h +c +c +c +c +h +c +c +h +c +c +c +c +c +c +c +h +c +f +c +c +c +h +h +c +c +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(45,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +h +h +c +c +h +h +h +c +c +c +h +h +h +d +c +h +c +c +h +c +c +c +h +h +h +h +h +f +c +c +c +c +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(46,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +b +b +c +c +c +c +c +c +h +h +c +c +c +h +h +h +c +c +c +h +h +c +h +c +c +h +c +c +c +h +d +c +c +c +c +h +h +h +h +h +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(47,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +c +c +c +h +c +c +c +c +d +h +c +c +c +c +c +c +h +c +c +h +c +c +c +c +c +c +c +c +h +h +d +h +h +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(48,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +c +c +c +h +c +c +c +c +c +h +h +h +c +c +c +c +h +c +c +h +h +h +c +c +c +c +h +h +h +f +c +f +c +f +c +c +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(49,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +b +b +c +c +c +c +c +c +c +c +h +h +c +c +f +f +c +c +h +h +h +h +h +h +c +c +c +f +h +h +h +h +h +h +c +c +c +c +c +c +c +c +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(50,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +c +c +c +c +c +h +h +h +c +c +c +c +c +c +c +c +d +h +h +c +c +c +c +c +c +c +c +c +c +c +c +h +h +h +h +h +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(51,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +i +c +c +c +c +c +c +h +h +h +c +c +c +c +c +c +c +c +h +h +d +c +c +f +c +c +c +c +c +c +c +h +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(52,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +f +c +c +c +d +c +c +c +c +h +c +c +c +c +c +c +c +c +c +h +h +h +h +c +c +c +c +c +c +c +h +h +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(53,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +c +c +c +c +c +c +c +c +c +h +h +h +h +h +h +c +c +c +c +c +c +c +h +h +c +c +c +h +h +h +h +f +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(54,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +h +h +h +c +c +c +f +f +c +h +h +h +h +h +d +c +f +c +c +h +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(55,1,1) = {" +a +a +a +a +a +a +a +a +a +a +b +b +c +c +c +c +c +c +c +j +c +c +c +f +c +c +c +c +c +c +c +c +c +h +h +h +c +c +c +c +c +c +c +c +c +c +c +c +c +f +h +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(56,1,1) = {" +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +d +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +h +h +h +h +c +c +c +c +c +c +c +c +c +h +h +h +c +f +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(57,1,1) = {" +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +c +c +c +c +c +c +e +c +c +f +c +c +c +c +c +c +c +c +c +c +c +c +h +h +c +c +c +c +c +h +h +h +h +d +c +c +f +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(58,1,1) = {" +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +i +c +c +j +c +c +c +c +c +c +c +c +c +h +h +h +h +h +h +h +c +c +c +c +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(59,1,1) = {" +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +c +c +c +c +c +k +c +c +c +c +c +c +s +s +s +c +k +c +c +c +c +c +c +c +c +c +c +c +c +h +c +c +c +c +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(60,1,1) = {" +a +a +a +a +a +a +a +a +a +a +b +b +c +c +c +c +e +c +c +c +c +c +c +c +c +c +c +c +c +c +f +c +c +c +c +c +c +c +c +c +c +c +c +c +c +h +w +w +h +h +h +h +h +h +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(61,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +c +f +c +c +c +c +c +c +c +j +c +c +c +c +c +i +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(62,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +c +c +c +c +c +c +d +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +f +c +c +c +d +u +u +u +u +d +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(63,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +f +c +c +c +c +c +c +c +c +c +c +f +c +d +c +c +f +c +c +c +c +c +c +c +c +c +c +c +c +v +u +u +u +c +c +f +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(64,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +b +b +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +j +c +f +c +c +c +c +c +c +u +u +u +u +c +f +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(65,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +b +b +c +c +c +c +e +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +u +u +v +u +c +c +c +c +c +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(66,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +c +c +c +j +c +c +f +c +c +c +c +c +e +c +c +c +c +i +c +c +c +c +c +c +f +c +u +u +u +u +c +c +c +c +c +c +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(67,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +c +c +c +c +c +c +c +c +j +c +c +c +c +c +c +c +c +c +c +c +f +c +k +c +c +d +u +u +u +u +d +c +c +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(68,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +u +u +u +u +c +c +c +c +c +c +c +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(69,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +k +c +c +f +c +c +c +c +c +c +c +c +f +c +c +c +c +c +d +c +c +c +c +c +c +c +u +u +u +v +c +c +c +c +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(70,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +u +u +u +u +c +c +c +c +c +k +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(71,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +c +c +c +c +d +c +c +c +c +c +c +c +c +c +c +c +i +c +c +c +c +c +c +f +c +c +u +u +u +u +c +i +c +c +c +c +c +c +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(72,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +i +c +c +c +c +c +c +c +c +e +c +c +c +c +i +c +c +c +c +c +c +c +c +c +c +c +c +d +u +u +u +u +d +c +c +c +c +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(73,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +c +c +f +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +j +c +c +c +c +c +c +c +c +u +u +u +u +c +c +c +c +c +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(74,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +g +g +c +c +c +c +c +f +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +f +c +u +v +u +u +c +c +c +c +f +c +f +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(75,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +c +g +g +g +c +c +c +c +c +c +c +c +f +c +c +c +f +c +c +i +c +c +c +c +c +u +u +u +u +c +c +c +c +c +c +c +c +c +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(76,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +c +c +c +g +c +c +i +c +g +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +u +u +u +u +c +c +c +c +c +c +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(77,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +g +c +c +c +c +c +l +c +c +c +c +g +g +c +f +c +c +c +c +c +c +c +c +c +c +c +c +c +d +u +u +u +u +d +c +c +c +c +c +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(78,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +g +c +c +c +c +g +c +c +c +c +g +c +c +c +c +c +c +c +d +c +c +c +c +c +c +c +c +c +u +u +u +u +c +c +c +c +c +c +c +c +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(79,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +g +g +k +c +c +g +c +c +c +g +c +c +c +c +c +c +c +c +c +c +c +c +c +c +f +c +c +c +v +u +u +u +c +c +f +c +c +c +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(80,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +g +c +c +c +g +c +c +c +g +c +c +c +c +c +t +c +c +c +c +c +f +c +c +c +c +c +c +u +u +u +u +c +c +c +c +c +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(81,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +g +g +c +g +c +c +c +f +g +c +c +d +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +u +u +u +u +c +c +c +c +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(82,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +g +c +g +c +g +c +c +c +g +c +c +c +c +c +f +j +c +c +c +c +c +c +c +f +c +d +u +u +u +u +d +c +c +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(83,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +g +c +g +c +g +c +c +c +g +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(84,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +c +c +c +g +c +g +c +c +g +c +g +g +c +g +g +c +c +c +c +c +g +f +c +c +k +c +c +c +c +c +c +c +c +c +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(85,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +l +g +g +c +c +g +c +g +c +c +g +c +c +c +c +g +g +g +c +c +c +c +c +c +c +c +c +f +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(86,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +g +g +g +d +g +c +g +c +g +g +c +f +c +c +g +c +c +c +c +c +c +c +c +j +c +c +c +c +k +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(87,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +c +c +c +g +c +g +g +g +g +g +k +g +c +c +c +c +g +g +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(88,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +g +c +g +g +g +g +c +c +g +c +c +c +g +g +c +c +f +c +c +c +c +d +c +c +c +c +c +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(89,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +g +g +i +c +g +f +g +c +c +c +c +g +c +c +c +g +c +c +c +c +c +c +c +c +c +c +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(90,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +g +g +g +c +g +g +g +g +g +c +g +g +r +c +g +g +c +c +c +c +c +c +c +c +c +c +c +c +c +c +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(91,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +i +c +g +g +g +c +g +g +g +c +g +c +g +g +c +g +g +c +c +c +f +c +c +c +c +j +c +c +c +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(92,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +g +g +l +g +g +g +g +g +c +g +g +g +c +g +g +c +c +g +g +c +c +c +c +c +c +c +c +f +c +c +c +c +b +b +a +a +a +a +A +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(93,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +c +c +c +g +g +g +g +c +g +c +g +l +g +c +g +g +c +c +g +g +c +f +c +c +c +c +c +c +c +c +c +c +c +c +c +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(94,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +g +g +g +c +d +g +c +g +g +c +g +g +g +g +g +g +c +c +c +c +c +c +c +c +f +c +c +c +c +d +c +c +c +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(95,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +g +g +g +g +c +c +g +g +l +g +g +g +g +g +g +f +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(96,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +g +g +g +c +c +g +g +g +g +g +g +f +g +c +c +c +g +c +c +c +c +c +c +c +e +c +c +c +c +c +c +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(97,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +g +g +g +c +g +g +g +g +g +c +g +g +c +g +g +g +c +c +c +g +g +g +c +c +c +c +c +c +j +c +c +c +c +c +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(98,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +g +g +g +g +c +g +g +g +g +g +g +g +c +g +l +g +g +g +g +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(99,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +g +g +i +b +b +g +b +b +g +g +g +g +g +g +g +l +g +c +c +c +c +c +g +c +c +c +c +k +c +c +c +c +c +c +j +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(100,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +d +g +g +b +g +g +g +b +g +g +g +g +g +c +c +g +g +g +g +g +g +g +g +c +c +c +c +c +f +c +j +c +c +c +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(101,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +b +b +g +b +g +b +b +g +g +g +g +l +g +g +c +c +c +c +c +f +c +c +c +c +c +c +c +c +c +c +c +f +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(102,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +c +c +c +b +g +c +g +g +g +b +g +g +g +g +g +g +g +g +g +g +g +c +c +c +c +c +c +d +c +c +c +c +c +c +c +c +c +f +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(103,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +b +g +g +g +g +g +b +g +g +g +c +c +c +c +d +c +c +g +g +g +c +c +c +c +c +c +c +c +c +c +c +d +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(104,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +b +c +d +g +r +c +b +c +c +g +g +g +c +c +c +c +c +c +c +c +c +c +c +c +c +j +c +c +c +c +c +c +c +c +f +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(105,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +b +n +b +b +b +b +b +c +d +g +g +g +g +c +c +f +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(106,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +p +n +n +n +n +n +n +n +n +b +c +c +c +c +c +g +c +c +c +c +c +c +f +c +f +c +c +c +c +f +c +c +j +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(107,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +n +n +n +n +n +n +n +n +n +b +c +c +c +f +c +c +c +c +c +k +c +c +c +c +c +c +f +c +c +c +c +c +c +c +f +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(108,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +n +n +n +n +n +n +o +n +n +b +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +e +c +c +c +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(109,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +n +n +n +n +n +b +b +b +b +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(110,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +n +n +n +n +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +c +c +c +c +d +c +c +c +c +c +c +c +f +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(111,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +n +n +n +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +c +c +c +c +c +c +c +f +c +c +c +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(112,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +n +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +f +c +c +c +c +f +c +c +c +c +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(113,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +n +q +n +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +c +c +c +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(114,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +n +n +b +n +o +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(115,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +o +n +n +n +n +n +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(116,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +n +n +n +n +n +n +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(117,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +n +n +n +n +n +n +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +A +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(118,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +m +n +n +n +n +n +n +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(119,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +n +n +n +o +n +n +n +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(120,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a "} diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_xeno_nest.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_xeno_nest.dmm index 75239b9ae5..82ca15d842 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_xeno_nest.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_xeno_nest.dmm @@ -53,7 +53,7 @@ }, /obj/structure/alien/weeds{ desc = "A large mottled egg."; - health = 100; + obj_integrity = 100; icon_state = "egg_hatched"; name = "egg" }, @@ -141,7 +141,7 @@ }, /obj/structure/alien/weeds{ desc = "A large mottled egg."; - health = 100; + obj_integrity = 100; icon_state = "egg_hatched"; name = "egg" }, @@ -206,7 +206,7 @@ item_state = "facehugger_impregnated"; stat = 2 }, -/obj/item/weapon/gun/projectile/automatic/pistol, +/obj/item/weapon/gun/ballistic/automatic/pistol, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/awaycontent/a5{ always_unpowered = 1; @@ -336,7 +336,7 @@ /obj/structure/alien/weeds, /obj/structure/alien/weeds{ desc = "A large mottled egg."; - health = 100; + obj_integrity = 100; icon_state = "egg_hatched"; name = "egg" }, @@ -407,7 +407,7 @@ }, /obj/structure/alien/weeds{ desc = "A large mottled egg."; - health = 100; + obj_integrity = 100; icon_state = "egg_hatched"; name = "egg" }, @@ -426,7 +426,7 @@ /obj/structure/alien/weeds, /obj/structure/alien/weeds{ desc = "A large mottled egg."; - health = 100; + obj_integrity = 100; icon_state = "egg_hatched"; name = "egg" }, @@ -615,7 +615,15 @@ "O" = ( /obj/structure/alien/weeds/node, /turf/template_noop, -/area/template_noop) +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) "P" = ( /obj/structure/alien/weeds{ icon_state = "weeds2" @@ -644,13 +652,29 @@ "R" = ( /obj/structure/alien/weeds, /turf/template_noop, -/area/template_noop) +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) "S" = ( /obj/structure/alien/weeds{ icon_state = "weeds2" }, /turf/template_noop, -/area/template_noop) +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) "T" = ( /obj/structure/alien/weeds/node, /obj/structure/alien/resin/wall, @@ -1468,7 +1492,7 @@ a a a a -P +c "} (26,1,1) = {" a @@ -1499,8 +1523,8 @@ c a a a -U -N +b +h "} (27,1,1) = {" a @@ -1529,10 +1553,10 @@ g q b c -N -P -T -R +h +c +y +g "} (28,1,1) = {" a @@ -1563,8 +1587,8 @@ q b O R -V -S +p +q "} (29,1,1) = {" a @@ -1595,8 +1619,8 @@ l b O S -V -R +p +g "} (30,1,1) = {" a @@ -1625,10 +1649,10 @@ h c b c -P -T -S -V +c +y +q +p "} (31,1,1) = {" a @@ -1658,9 +1682,9 @@ a a a a -P -R -S +c +g +q "} (32,1,1) = {" a @@ -1690,9 +1714,9 @@ a a a a -N -V -R +h +p +g "} (33,1,1) = {" a @@ -1721,9 +1745,9 @@ a a a a -P -P -S +c +c +q a "} (34,1,1) = {" @@ -1753,7 +1777,7 @@ a a a a -P +c a a a diff --git a/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm b/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm index b0a18c5fa3..66889720c2 100644 --- a/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm +++ b/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm @@ -1,14509 +1,872 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"aa" = ( -/turf/open/space, -/area/space) -"ab" = ( -/obj/structure/lattice, -/turf/open/space, -/area/space) -"ac" = ( -/obj/structure/grille, -/turf/open/floor/plating/airless, -/area/space) -"ad" = ( -/obj/machinery/power/tracker, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/turf/open/floor/plasteel/airless, -/area/solar/derelict_starboard) -"ae" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/space, -/area/solar/derelict_starboard) -"af" = ( -/turf/open/floor/plating/airless, -/turf/open/floor/plating/airless{ - icon_state = "platingdmg2" - }, -/area/solar/derelict_starboard) -"ag" = ( -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged5" - }, -/area/solar/derelict_starboard) -"ah" = ( -/obj/machinery/power/solar{ - id = "derelictsolar"; - name = "Derelict Solar Array" - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/turf/open/floor/plasteel/airless, -/area/solar/derelict_starboard) -"ai" = ( -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/derelict_starboard) -"aj" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/space, -/area/solar/derelict_starboard) -"ak" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/space, -/area/solar/derelict_starboard) -"al" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/space, -/area/solar/derelict_starboard) -"am" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/space, -/area/solar/derelict_starboard) -"an" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/space, -/area/solar/derelict_starboard) -"ao" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/space, -/area/solar/derelict_starboard) -"ap" = ( -/obj/machinery/power/solar{ - id = "derelictsolar"; - name = "Derelict Solar Array" - }, -/obj/structure/cable, -/turf/open/floor/plasteel/airless, -/area/solar/derelict_starboard) -"aq" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable, -/turf/open/space, -/area/solar/derelict_starboard) -"ar" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/turf/open/space, -/area/solar/derelict_starboard) -"as" = ( -/turf/closed/wall, -/area/space) -"at" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plating, -/area/derelict/solar_control) -"au" = ( -/obj/machinery/door/airlock/external{ - name = "External Engineering" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/derelict/solar_control) -"av" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/derelict/solar_control) -"aw" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/derelict/solar_control) -"ax" = ( -/turf/closed/wall/r_wall, -/area/space) -"ay" = ( -/turf/open/floor/plating/airless, -/area/space) -"az" = ( -/turf/open/floor/plasteel, -/area/derelict/solar_control) -"aA" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/derelict/solar_control) -"aB" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/derelict/solar_control) -"aC" = ( -/obj/machinery/power/smes, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plasteel, -/area/derelict/solar_control) -"aD" = ( -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/machinery/power/solar_control{ - id = "derelictsolar"; - name = "Primary Solar Control"; - track = 0 - }, -/obj/structure/cable, -/turf/open/floor/plasteel, -/area/derelict/solar_control) -"aE" = ( -/obj/structure/grille, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced, -/turf/open/floor/plating, -/area/derelict/solar_control) -"aF" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/derelict/solar_control) -"aG" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/derelict/solar_control) -"aH" = ( -/obj/machinery/power/terminal{ - icon_state = "term"; - dir = 1 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/turf/open/floor/plasteel, -/area/derelict/solar_control) -"aI" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/derelict/solar_control) -"aJ" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/derelict/bridge/ai_upload) -"aK" = ( -/obj/machinery/door/airlock/external{ - name = "Air Bridge Access" - }, -/turf/open/floor/plasteel, -/area/derelict/bridge/ai_upload) -"aL" = ( -/obj/machinery/door/airlock/external{ - name = "Air Bridge Access" - }, -/turf/open/floor/plating, -/area/derelict/solar_control) -"aM" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/derelict/solar_control) -"aN" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced, -/turf/open/floor/plasteel, -/area/derelict/solar_control) -"aO" = ( -/obj/structure/window/reinforced, -/turf/open/floor/plasteel, -/area/derelict/solar_control) -"aP" = ( -/obj/machinery/door/window, -/turf/open/floor/plasteel, -/area/derelict/solar_control) -"aQ" = ( -/obj/machinery/power/apc{ - dir = 8; - environ = 0; - equipment = 0; - lighting = 0; - locked = 0; - name = "Starboard Solar APC"; - pixel_x = -24; - pixel_y = 0 - }, -/obj/structure/cable, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/turf/open/floor/plasteel, -/area/derelict/solar_control) -"aR" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/derelict/solar_control) -"aS" = ( -/obj/machinery/door/airlock/external{ - name = "External Engineering" - }, -/turf/open/floor/plating, -/area/derelict/solar_control) -"aT" = ( -/obj/machinery/door/airlock/highsecurity, -/turf/open/floor/plasteel, -/area/derelict/bridge/ai_upload) -"aU" = ( -/obj/structure/frame/computer, -/turf/open/floor/plasteel, -/area/derelict/bridge/ai_upload) -"aV" = ( -/obj/machinery/computer/monitor, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/turf/open/floor/plasteel, -/area/derelict/solar_control) -"aW" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/light/small, -/turf/open/floor/plasteel, -/area/derelict/solar_control) -"aX" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/derelict/solar_control) -"aY" = ( -/obj/structure/grille, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plating, -/area/derelict/solar_control) -"aZ" = ( -/obj/structure/grille/broken, -/turf/open/floor/plating/airless, -/area/space) -"ba" = ( -/obj/machinery/light/small, -/turf/open/floor/plasteel, -/area/derelict/bridge/ai_upload) -"bb" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/porta_turret_cover, -/turf/open/floor/plasteel, -/area/derelict/bridge/ai_upload) -"bc" = ( -/obj/machinery/porta_turret_cover, -/turf/open/floor/plasteel, -/area/derelict/bridge/ai_upload) -"bd" = ( -/obj/machinery/door/airlock/engineering{ - name = "Starboard Solar Access"; - req_access_txt = "10" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/derelict/solar_control) -"be" = ( -/obj/structure/grille, -/turf/open/space, -/area/space) -"bf" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plasteel, -/area/derelict/solar_control) -"bg" = ( -/obj/machinery/door/window, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/derelict/solar_control) -"bh" = ( -/obj/machinery/computer/atmos_alert, -/turf/open/floor/plasteel, -/area/derelict/bridge/ai_upload) -"bi" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/derelict/bridge/ai_upload) -"bj" = ( -/obj/machinery/door/window{ - base_state = "right"; - dir = 4; - icon_state = "right" - }, -/turf/open/floor/plasteel, -/area/derelict/bridge/ai_upload) -"bk" = ( -/obj/item/stack/cable_coil/cut{ - amount = 2; - dir = 2; - icon_state = "coil_red2" - }, -/turf/open/floor/plasteel, -/area/derelict/solar_control) -"bl" = ( -/turf/open/floor/plasteel{ - icon_state = "damaged1" - }, -/area/derelict/solar_control) -"bm" = ( -/turf/open/floor/plasteel{ - icon_state = "damaged5" - }, -/area/derelict/solar_control) -"bn" = ( -/obj/item/weapon/stock_parts/matter_bin, -/turf/open/floor/plasteel{ - icon_state = "damaged4" - }, -/area/derelict/solar_control) -"bo" = ( -/obj/structure/rack, -/obj/item/weapon/circuitboard/machine/smes, -/turf/open/floor/plasteel, -/area/derelict/bridge/ai_upload) -"bp" = ( -/obj/structure/rack, -/obj/item/weapon/circuitboard/machine/microwave, -/turf/open/floor/plasteel, -/area/derelict/bridge/ai_upload) -"bq" = ( -/obj/structure/rack, -/turf/open/floor/plasteel, -/area/derelict/bridge/ai_upload) -"br" = ( -/turf/open/floor/plasteel/airless, -/area/space) -"bs" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" - }, -/turf/open/floor/plasteel, -/area/derelict/solar_control) -"bt" = ( -/turf/open/floor/plasteel{ - icon_state = "damaged2" - }, -/area/derelict/solar_control) -"bu" = ( -/obj/item/stack/cable_coil/cut{ - amount = 2; - dir = 2; - icon_state = "coil_red2" - }, -/turf/open/floor/plasteel{ - icon_state = "damaged3" - }, -/area/derelict/solar_control) -"bv" = ( -/obj/structure/rack, -/obj/item/weapon/circuitboard/machine/cryo_tube, -/turf/open/floor/plasteel, -/area/derelict/bridge/ai_upload) -"bw" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "damaged4" - }, -/area/space) -"bx" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "damaged3" - }, -/area/space) -"by" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/airless, -/area/derelict/bridge/ai_upload) -"bz" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plasteel, -/area/derelict/solar_control) -"bA" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel/airless, -/area/derelict/bridge/ai_upload) -"bB" = ( -/obj/machinery/door/window{ - base_state = "right"; - dir = 4; - icon_state = "right" - }, -/turf/open/floor/plasteel/airless, -/area/space) -"bC" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/space) -"bD" = ( -/obj/item/weapon/stock_parts/console_screen, -/turf/open/space, -/area/derelict/bridge/ai_upload) -"bE" = ( -/turf/open/floor/plasteel/airless/circuit, -/area/derelict/bridge/ai_upload) -"bF" = ( -/obj/machinery/porta_turret_cover, -/turf/open/floor/plasteel/airless, -/area/derelict/bridge/ai_upload) -"bG" = ( -/obj/item/device/aicard, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/derelict/bridge/ai_upload) -"bH" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/derelict/solar_control) -"bI" = ( -/obj/structure/rack, -/obj/item/weapon/circuitboard/computer/solar_control, -/turf/open/floor/plasteel, -/area/derelict/bridge/ai_upload) -"bJ" = ( -/obj/structure/rack, -/obj/item/weapon/circuitboard/machine/autolathe, -/obj/item/weapon/circuitboard/machine/protolathe{ - pixel_x = -5; - pixel_y = -3 - }, -/turf/open/floor/plasteel, -/area/derelict/bridge/ai_upload) -"bK" = ( -/obj/structure/rack, -/obj/item/weapon/circuitboard/machine/circuit_imprinter, -/turf/open/floor/plasteel, -/area/derelict/bridge/ai_upload) -"bL" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Worn-out APC"; - pixel_x = -24; - pixel_y = 0 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/turf/open/floor/plasteel/airless, -/area/derelict/bridge/ai_upload) -"bM" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel/airless/circuit, -/area/derelict/bridge/ai_upload) -"bN" = ( -/obj/structure/frame/computer, -/obj/item/weapon/circuitboard/computer/rdconsole, -/turf/open/floor/plasteel/airless, -/area/derelict/bridge/ai_upload) -"bO" = ( -/obj/structure/frame/computer, -/turf/open/floor/plasteel/airless, -/area/derelict/bridge/ai_upload) -"bP" = ( -/obj/machinery/door/airlock/external, -/turf/open/floor/plasteel, -/area/derelict/solar_control) -"bQ" = ( -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged4" - }, -/area/space) -"bR" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plasteel/airless/circuit, -/area/derelict/bridge/ai_upload) -"bS" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/airless, -/area/derelict/bridge/ai_upload) -"bT" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/closed/wall/r_wall, -/area/derelict/bridge/ai_upload) -"bU" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/closed/wall/r_wall, -/area/derelict/bridge/ai_upload) -"bV" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/closed/wall/r_wall, -/area/derelict/bridge/ai_upload) -"bW" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/closed/wall/r_wall, -/area/derelict/bridge/ai_upload) -"bX" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/derelict/solar_control) -"bY" = ( -/obj/item/weapon/ore/iron, -/obj/item/weapon/ore/iron, -/obj/item/weapon/ore/iron, -/turf/open/space, -/area/space) -"bZ" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged5" - }, -/area/derelict/gravity_generator) -"ca" = ( -/obj/item/weapon/stock_parts/manipulator, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/derelict/gravity_generator) -"cb" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/closed/wall, -/area/derelict/bridge/access) -"cc" = ( -/obj/machinery/door/airlock/maintenance, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/derelict/bridge/access) -"cd" = ( -/obj/item/weapon/ore/slag, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged4" - }, -/area/derelict/gravity_generator) -"ce" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "damaged5" - }, -/area/space) -"cf" = ( -/obj/structure/rack, -/obj/item/weapon/melee/classic_baton, -/turf/open/floor/plasteel, -/area/derelict/bridge/access) -"cg" = ( -/obj/structure/rack, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plasteel, -/area/derelict/bridge/access) -"ch" = ( -/obj/structure/rack, -/obj/item/clothing/head/helmet/swat, -/turf/open/floor/plasteel, -/area/derelict/bridge/access) -"ci" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plasteel, -/area/derelict/bridge/access) -"cj" = ( -/obj/structure/rack, -/obj/item/weapon/electronics/apc, -/turf/open/floor/plasteel, -/area/derelict/bridge/access) -"ck" = ( -/obj/structure/rack, -/obj/item/weapon/stock_parts/capacitor, -/obj/item/weapon/stock_parts/manipulator, -/turf/open/floor/plasteel, -/area/derelict/bridge/access) -"cl" = ( -/obj/item/weapon/screwdriver, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged5" - }, -/area/derelict/gravity_generator) -"cm" = ( -/obj/machinery/gravity_generator/main/station{ - on = 0 - }, -/turf/open/floor/plasteel/airless, -/area/derelict/gravity_generator) -"cn" = ( -/obj/item/weapon/ore/slag, -/turf/open/space, -/area/space) -"co" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/closed/wall, -/area/derelict/bridge/access) -"cp" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/turf/open/floor/plasteel, -/area/derelict/bridge/access) -"cq" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/derelict/bridge/access) -"cr" = ( -/obj/item/stack/cable_coil/cut, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged4" - }, -/area/derelict/gravity_generator) -"cs" = ( -/obj/structure/cable, -/obj/machinery/power/apc{ - dir = 0; - name = "Worn-out APC"; - pixel_y = -24 - }, -/turf/open/floor/plasteel, -/area/derelict/bridge/access) -"ct" = ( -/obj/structure/rack, -/obj/item/weapon/stock_parts/cell/high, -/obj/item/weapon/stock_parts/cell/high, -/obj/item/weapon/stock_parts/cell/high, -/obj/item/weapon/stock_parts/cell/high, -/obj/item/weapon/stock_parts/cell/high, -/obj/item/weapon/stock_parts/cell/high, -/turf/open/floor/plating, -/area/derelict/bridge/access) -"cu" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/structure/rack, -/obj/item/stack/cable_coil/cut, -/obj/item/stack/cable_coil/cut, -/turf/open/floor/plasteel, -/area/derelict/bridge/access) -"cv" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plating, -/area/derelict/bridge/access) -"cw" = ( -/obj/machinery/door/airlock/command{ - name = "E.V.A."; - req_access = null; - req_access_txt = "18" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/derelict/bridge/access) -"cx" = ( -/obj/machinery/door/airlock/engineering{ - name = "Engineering Secure Storage"; - req_access_txt = "10" - }, -/turf/open/floor/plasteel, -/area/derelict/bridge/access) -"cy" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/derelict/bridge/access) -"cz" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/derelict/gravity_generator) -"cA" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/derelict/gravity_generator) -"cB" = ( -/obj/machinery/door/airlock/engineering{ - name = "Engineering Access"; - req_access_txt = "10" - }, -/turf/open/floor/plasteel, -/area/derelict/gravity_generator) -"cC" = ( -/obj/structure/grille, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/derelict/gravity_generator) -"cD" = ( -/obj/structure/grille, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/derelict/gravity_generator) -"cE" = ( -/turf/open/floor/plating, -/area/space) -"cF" = ( -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plasteel/airless/solarpanel, -/area/space) -"cG" = ( -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/item/wallframe/apc, -/turf/open/floor/plating/airless, -/area/derelict/gravity_generator) -"cH" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating/airless, -/area/space) -"cI" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plating/airless, -/area/derelict/gravity_generator) -"cJ" = ( -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/frame/machine, -/obj/item/weapon/stock_parts/console_screen, -/turf/open/floor/plating/airless, -/area/derelict/gravity_generator) -"cK" = ( -/turf/open/floor/plasteel/airless/solarpanel, -/area/space) -"cL" = ( -/obj/item/stack/cable_coil/cut, -/turf/open/space, -/area/space) -"cM" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/derelict/bridge/access) -"cN" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/derelict/bridge/access) -"cO" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/derelict/bridge/access) -"cP" = ( -/obj/machinery/door/airlock/glass, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/derelict/bridge/access) -"cQ" = ( -/obj/item/weapon/reagent_containers/food/drinks/beer, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/derelict/bridge/access) -"cR" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/table, -/obj/item/weapon/paper{ - info = "If the equipment breaks there should be enough spare parts in our engineering storage near the north east solar array."; - name = "Equipment Inventory" - }, -/turf/open/floor/plasteel/airless, -/area/derelict/gravity_generator) -"cS" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating/airless, -/area/derelict/gravity_generator) -"cT" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/item/weapon/stock_parts/matter_bin{ - pixel_x = -10; - pixel_y = 5 - }, -/obj/item/weapon/stock_parts/matter_bin{ - pixel_x = 5; - pixel_y = 5 - }, -/obj/item/weapon/stock_parts/matter_bin, -/turf/open/floor/plating/airless, -/area/derelict/gravity_generator) -"cU" = ( -/obj/item/weapon/stock_parts/matter_bin, -/turf/open/space, -/area/space) -"cV" = ( -/obj/structure/window/reinforced, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/derelict/bridge/access) -"cW" = ( -/obj/structure/sign/electricshock, -/turf/closed/wall/r_wall, -/area/derelict/singularity_engine) -"cX" = ( -/obj/structure/sign/securearea, -/turf/closed/wall/r_wall, -/area/derelict/singularity_engine) -"cY" = ( -/obj/machinery/door/airlock/engineering{ - name = "Engineering Access"; - req_access_txt = "10" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating/airless, -/area/derelict/gravity_generator) -"cZ" = ( -/obj/structure/sign/securearea{ - name = "ENGINEERING ACCESS" - }, -/turf/closed/wall/r_wall, -/area/derelict/gravity_generator) -"da" = ( -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/space, -/area/space) -"db" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/derelict/bridge/access) -"dc" = ( -/obj/structure/frame/computer, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/turf/open/floor/plasteel, -/area/derelict/bridge) -"dd" = ( -/obj/structure/table, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plasteel, -/area/derelict/bridge) -"de" = ( -/obj/machinery/computer/security, -/turf/open/floor/plasteel, -/area/derelict/bridge) -"df" = ( -/obj/structure/table, -/obj/item/stack/cable_coil{ - pixel_x = 3; - pixel_y = -7 - }, -/turf/open/floor/plasteel, -/area/derelict/bridge) -"dg" = ( -/obj/structure/table, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/derelict/bridge) -"dh" = ( -/obj/structure/table, -/obj/item/weapon/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/turf/open/floor/plasteel, -/area/derelict/bridge) -"di" = ( -/obj/item/weapon/grenade/empgrenade, -/obj/structure/table, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/derelict/bridge) -"dj" = ( -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged5" - }, -/area/derelict/singularity_engine) -"dk" = ( -/obj/item/stack/cable_coil/cut, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/derelict/singularity_engine) -"dl" = ( -/obj/machinery/door/airlock/engineering{ - name = "Engineering Access"; - req_access_txt = "10" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/derelict/gravity_generator) -"dm" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/derelict/bridge/access) -"dn" = ( -/obj/item/weapon/reagent_containers/food/drinks/beer, -/turf/open/floor/plasteel, -/area/derelict/bridge) -"do" = ( -/obj/structure/table, -/obj/item/weapon/paper/crumpled, -/turf/open/floor/plasteel, -/area/derelict/bridge) -"dp" = ( -/obj/structure/table, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/derelict/bridge) -"dq" = ( -/obj/structure/window/reinforced, -/obj/machinery/portable_atmospherics/canister/toxins, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged3" - }, -/area/derelict/singularity_engine) -"dr" = ( -/obj/structure/window/reinforced, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged5" - }, -/area/derelict/singularity_engine) -"ds" = ( -/obj/structure/window/reinforced, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged4" - }, -/area/derelict/singularity_engine) -"dt" = ( -/obj/structure/window/reinforced, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged4" - }, -/area/derelict/singularity_engine) -"du" = ( -/obj/structure/window/reinforced, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged3" - }, -/area/derelict/singularity_engine) -"dv" = ( -/obj/structure/closet/radiation, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'RADIOACTIVE AREA'"; - icon_state = "radiation"; - name = "RADIOACTIVE AREA"; - pixel_x = 32; - pixel_y = 0 - }, -/turf/open/floor/plasteel, -/area/derelict/gravity_generator) -"dw" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/derelict/singularity_engine) -"dx" = ( -/obj/machinery/power/emitter{ - dir = 1; - icon_state = "emitter" - }, -/turf/open/floor/plating/airless, -/area/derelict/singularity_engine) -"dy" = ( -/obj/machinery/field/generator, -/turf/open/floor/plating/airless, -/area/derelict/singularity_engine) -"dz" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/window/reinforced, -/turf/open/floor/plasteel, -/area/derelict/bridge/access) -"dA" = ( -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plasteel, -/area/derelict/bridge/access) -"dB" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plating, -/area/derelict/bridge) -"dC" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/turf/open/floor/plasteel, -/area/derelict/bridge) -"dD" = ( -/obj/item/stack/rods, -/turf/open/floor/plating/airless, -/area/space) -"dE" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/turf/open/floor/plating/airless, -/area/derelict/singularity_engine) -"dF" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/derelict/singularity_engine) -"dG" = ( -/obj/structure/grille, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/space) -"dH" = ( -/obj/structure/noticeboard, -/turf/closed/wall/r_wall, -/area/derelict/singularity_engine) -"dI" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plasteel, -/area/derelict/bridge/access) -"dJ" = ( -/obj/machinery/door/window/eastleft{ - name = "Heads of Staff"; - req_access_txt = "19" - }, -/turf/open/floor/plasteel, -/area/derelict/bridge/access) -"dK" = ( -/obj/structure/table, -/obj/item/device/paicard, -/turf/open/floor/plasteel, -/area/derelict/bridge) -"dL" = ( -/obj/structure/chair/stool, -/turf/open/floor/plasteel, -/area/derelict/bridge) -"dM" = ( -/obj/structure/table, -/obj/item/weapon/stock_parts/cell, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/derelict/bridge) -"dN" = ( -/obj/item/weapon/storage/toolbox/syndicate, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/derelict/singularity_engine) -"dO" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/derelict/bridge/access) -"dP" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/turf/open/floor/plating, -/area/derelict/bridge/access) -"dQ" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/turf/open/floor/plasteel, -/area/derelict/bridge/access) -"dR" = ( -/obj/item/weapon/paper{ - info = "Objective #1: Destroy the station with a nuclear device."; - name = "Objectives of a Nuclear Operative" - }, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/derelict/singularity_engine) -"dS" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plating, -/area/derelict/bridge/access) -"dT" = ( -/obj/structure/table, -/turf/open/floor/plasteel, -/area/derelict/bridge) -"dU" = ( -/obj/structure/table, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plasteel, -/area/derelict/bridge) -"dV" = ( -/obj/structure/chair, -/turf/open/floor/plasteel, -/area/derelict/bridge) -"dW" = ( -/obj/structure/table, -/obj/item/weapon/screwdriver, -/turf/open/floor/plasteel, -/area/derelict/bridge) -"dX" = ( -/obj/structure/table, -/obj/item/weapon/reagent_containers/food/drinks/beer, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/derelict/bridge) -"dY" = ( -/obj/item/stack/rods, -/turf/open/space, -/area/space) -"dZ" = ( -/obj/structure/grille, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/derelict/singularity_engine) -"ea" = ( -/obj/item/weapon/shard, -/obj/structure/grille/broken, -/obj/effect/decal/remains/human{ - desc = "This guy seemed to have died in terrible way! Half his remains are dust."; - icon_state = "remains"; - name = "Syndicate agent remains" - }, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/derelict/singularity_engine) -"eb" = ( -/obj/item/clothing/suit/space/syndicate/black/engie, -/turf/open/floor/plating/airless, -/area/derelict/singularity_engine) -"ec" = ( -/obj/item/weapon/shard, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged5" - }, -/area/derelict/singularity_engine) -"ed" = ( -/obj/structure/table, -/obj/item/weapon/rack_parts, -/turf/open/floor/plasteel, -/area/derelict/bridge) -"ee" = ( -/obj/structure/window/fulltile, -/turf/open/floor/plasteel, -/area/derelict/bridge) -"ef" = ( -/obj/structure/table, -/obj/machinery/power/apc{ - dir = 0; - name = "Worn-out APC"; - pixel_y = -24 - }, -/obj/structure/cable, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plasteel, -/area/derelict/bridge) -"eg" = ( -/obj/structure/table, -/obj/machinery/light/small, -/turf/open/floor/plasteel, -/area/derelict/bridge) -"eh" = ( -/obj/structure/table, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plasteel, -/area/derelict/bridge) -"ei" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/derelict/singularity_engine) -"ej" = ( -/obj/item/clothing/head/helmet/space/syndicate/black/engie, -/turf/open/floor/plating/airless, -/area/derelict/singularity_engine) -"ek" = ( -/obj/item/weapon/shard{ - icon_state = "small" - }, -/turf/open/floor/plating/airless, -/area/derelict/singularity_engine) -"el" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/space) -"em" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/derelict/singularity_engine) -"en" = ( -/obj/machinery/door/window{ - dir = 2; - name = "Captain's Quarters"; - req_access_txt = "20" - }, -/obj/structure/grille, -/turf/open/floor/plating/airless, -/area/derelict/bridge) -"eo" = ( -/obj/structure/grille, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/derelict/singularity_engine) -"ep" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/derelict/singularity_engine) -"eq" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/derelict/singularity_engine) -"er" = ( -/obj/structure/grille, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/derelict/singularity_engine) -"es" = ( -/obj/item/stack/cable_coil/cut, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged5" - }, -/area/derelict/singularity_engine) -"et" = ( -/obj/effect/spawner/lootdrop/crate_spawner, -/turf/open/floor/plasteel/airless, -/area/derelict/bridge/access) -"eu" = ( -/obj/item/drone_shell, -/turf/open/floor/plasteel/airless, -/area/derelict/bridge/access) -"ev" = ( -/obj/structure/table, -/obj/item/device/assembly/flash/handheld, -/turf/open/floor/plasteel/airless, -/area/derelict/bridge/access) -"ew" = ( -/obj/structure/table, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/item/weapon/electronics/airlock, -/turf/open/floor/plasteel/airless, -/area/derelict/bridge/access) -"ex" = ( -/obj/structure/table, -/obj/item/stack/cable_coil{ - pixel_x = 3; - pixel_y = -7 - }, -/obj/item/weapon/stock_parts/matter_bin, -/turf/open/floor/plasteel/airless, -/area/derelict/bridge/access) -"ey" = ( -/obj/structure/table, -/obj/item/weapon/stock_parts/cell{ - charge = 100; - maxcharge = 15000 - }, -/turf/open/floor/plasteel/airless, -/area/derelict/bridge/access) -"ez" = ( -/obj/structure/girder, -/turf/open/floor/plating/airless, -/area/space) -"eA" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space) -"eB" = ( -/obj/item/weapon/storage/toolbox/electrical{ - pixel_x = 1; - pixel_y = -1 - }, -/turf/open/floor/plasteel/airless, -/area/derelict/bridge/access) -"eC" = ( -/obj/item/stack/cable_coil/cut, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged3" - }, -/area/derelict/singularity_engine) -"eD" = ( -/obj/item/stack/cable_coil/cut, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/derelict/singularity_engine) -"eE" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/derelict/singularity_engine) -"eF" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged3" - }, -/area/derelict/singularity_engine) -"eG" = ( -/obj/structure/table, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/derelict/singularity_engine) -"eH" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/turf/open/floor/plating/airless, -/area/derelict/singularity_engine) -"eI" = ( -/obj/item/weapon/shard{ - icon_state = "medium" - }, -/turf/open/floor/plating/airless, -/area/space) -"eJ" = ( -/obj/item/weapon/shard{ - icon_state = "medium" - }, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged5" - }, -/area/derelict/singularity_engine) -"eK" = ( -/obj/structure/grille, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged3" - }, -/area/derelict/singularity_engine) -"eL" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged4" - }, -/area/derelict/singularity_engine) -"eM" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Tech Storage"; - req_access_txt = "23" - }, -/turf/open/floor/plasteel/airless, -/area/derelict/bridge/access) -"eN" = ( -/obj/structure/grille, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced, -/turf/open/floor/plating/airless, -/area/derelict/bridge/access) -"eO" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/airless, -/area/space) -"eP" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged3" - }, -/area/derelict/singularity_engine) -"eQ" = ( -/obj/item/weapon/screwdriver, -/turf/open/floor/plating/airless, -/area/derelict/singularity_engine) -"eR" = ( -/obj/item/stack/rods, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/derelict/singularity_engine) -"eS" = ( -/obj/item/weapon/shard{ - icon_state = "medium" - }, -/obj/item/stack/cable_coil/cut, -/turf/open/floor/plating/airless, -/area/derelict/singularity_engine) -"eT" = ( -/obj/structure/table, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/derelict/singularity_engine) -"eU" = ( -/obj/item/stack/cable_coil/cut{ - amount = 2; - dir = 2; - icon_state = "coil_red2" - }, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged3" - }, -/area/derelict/hallway/primary) -"eV" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/derelict/hallway/primary) -"eW" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/airless, -/area/space) -"eX" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/turf/open/floor/plating/airless, -/area/derelict/bridge/access) -"eY" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/turf/open/floor/plasteel/airless, -/area/derelict/bridge/access) -"eZ" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel/airless, -/area/derelict/bridge/access) -"fa" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel/airless, -/area/derelict/bridge/access) -"fb" = ( -/obj/item/weapon/ore/slag, -/turf/open/floor/plating/airless, -/area/derelict/singularity_engine) -"fc" = ( -/obj/item/weapon/shard, -/turf/open/floor/plating/airless, -/area/space) -"fd" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/space) -"fe" = ( -/obj/structure/window/fulltile, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/primary) -"ff" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/derelict/singularity_engine) -"fg" = ( -/obj/structure/grille, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/item/weapon/shard{ - icon_state = "medium" - }, -/turf/open/floor/plating/airless, -/area/derelict/singularity_engine) -"fh" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plating/airless, -/area/derelict/singularity_engine) -"fi" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plating/airless, -/area/derelict/singularity_engine) -"fj" = ( -/obj/structure/grille, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/derelict/singularity_engine) -"fk" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plating/airless, -/area/derelict/hallway/primary) -"fl" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "floorscorched2" - }, -/area/space) -"fm" = ( -/obj/machinery/light/small, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/primary) -"fn" = ( -/obj/structure/cable, -/obj/machinery/power/apc{ - dir = 0; - name = "Worn-out APC"; - pixel_y = -24 - }, -/turf/open/floor/plasteel/airless, -/area/derelict/bridge/access) -"fo" = ( -/obj/structure/grille, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/space) -"fp" = ( -/obj/machinery/door/window, -/turf/open/floor/plating/airless, -/area/derelict/hallway/primary) -"fq" = ( -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/airless, -/area/space) -"fr" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "floorscorched1" - }, -/area/space) -"fs" = ( -/obj/item/weapon/shard{ - icon_state = "medium" - }, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/derelict/singularity_engine) -"ft" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged3" - }, -/area/derelict/singularity_engine) -"fu" = ( -/obj/item/weapon/crowbar, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/primary) -"fv" = ( -/obj/structure/grille, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/primary) -"fw" = ( -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plasteel/airless, -/area/space) -"fx" = ( -/obj/item/weapon/shard{ - icon_state = "small" - }, -/obj/item/weapon/shard{ - icon_state = "medium" - }, -/turf/open/floor/plating/airless, -/area/derelict/singularity_engine) -"fy" = ( -/obj/structure/window/reinforced, -/turf/open/floor/plating/airless, -/area/space) -"fz" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/derelict/singularity_engine) -"fA" = ( -/obj/item/stack/cable_coil/cut{ - amount = 2; - dir = 2; - icon_state = "coil_red2" - }, -/turf/open/floor/plating/airless, -/area/space) -"fB" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plating/airless, -/area/derelict/hallway/primary) -"fC" = ( -/obj/machinery/light/small, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/derelict/hallway/primary) -"fD" = ( -/obj/structure/lattice, -/obj/structure/window/fulltile, -/turf/open/space, -/area/space) -"fE" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/item/weapon/pen, -/turf/open/floor/plasteel, -/area/derelict/arrival) -"fF" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/derelict/arrival) -"fG" = ( -/obj/structure/closet/coffin, -/turf/open/floor/plasteel/black, -/area/derelict/medical/chapel) -"fH" = ( -/turf/open/floor/plasteel/black, -/area/derelict/medical/chapel) -"fI" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/derelict/medical/chapel) -"fJ" = ( -/obj/item/weapon/shard, -/turf/open/space, -/area/space) -"fK" = ( -/obj/item/weapon/shard, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/derelict/singularity_engine) -"fL" = ( -/obj/machinery/light/small, -/turf/open/floor/plasteel/black, -/area/derelict/medical/chapel) -"fM" = ( -/obj/machinery/door/airlock/medical{ - name = "Morgue"; - req_access_txt = "6" - }, -/turf/open/floor/plasteel/black, -/area/derelict/medical/chapel) -"fN" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/derelict/medical) -"fO" = ( -/obj/item/weapon/shard, -/obj/structure/grille/broken, -/turf/open/floor/plating/airless, -/area/derelict/medical) -"fP" = ( -/obj/machinery/door/airlock/external{ - name = "External Engineering" - }, -/turf/open/floor/plating/airless, -/area/space) -"fQ" = ( -/obj/machinery/door/window{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/derelict/arrival) -"fR" = ( -/obj/structure/table, -/obj/machinery/computer/pod/old{ - name = "ProComp IIe"; - pixel_y = 7; - id = "derelict_gun" - }, -/turf/open/floor/plasteel/chapel, -/area/derelict/medical/chapel) -"fS" = ( -/obj/machinery/door/morgue{ - name = "coffin storage"; - req_access_txt = "22" - }, -/turf/open/floor/plasteel/black, -/area/derelict/medical/chapel) -"fT" = ( -/obj/structure/bodycontainer/morgue, -/turf/open/floor/plasteel/black, -/area/derelict/medical/chapel) -"fU" = ( -/turf/open/floor/plasteel/airless/white, -/area/space) -"fV" = ( -/obj/item/weapon/firstaid_arm_assembly, -/turf/open/floor/plasteel/airless/white, -/area/derelict/medical) -"fW" = ( -/obj/structure/closet, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/derelict/medical) -"fX" = ( -/obj/structure/frame/computer, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged3" - }, -/area/derelict/medical) -"fY" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/item/weapon/shard{ - icon_state = "small" - }, -/turf/open/floor/plating/airless, -/area/derelict/medical) -"fZ" = ( -/obj/machinery/light/small, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged4" - }, -/area/derelict/singularity_engine) -"ga" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plating/airless, -/area/derelict/hallway/primary) -"gb" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/grille, -/turf/open/space, -/area/space) -"gc" = ( -/obj/structure/table, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plasteel/chapel{ - dir = 1 - }, -/area/derelict/medical/chapel) -"gd" = ( -/turf/open/floor/plasteel/chapel{ - dir = 4 - }, -/area/derelict/medical/chapel) -"ge" = ( -/turf/open/floor/plasteel/chapel{ - dir = 1 - }, -/area/derelict/medical/chapel) -"gf" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel/chapel{ - dir = 1 - }, -/area/derelict/medical/chapel) -"gg" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/turf/open/floor/plasteel/airless/white, -/area/derelict/medical) -"gh" = ( -/obj/item/stack/medical/bruise_pack, -/turf/open/floor/plasteel/airless/white, -/area/derelict/medical) -"gi" = ( -/obj/item/stack/cable_coil/cut, -/turf/open/floor/plating/airless, -/area/space) -"gj" = ( -/obj/structure/table, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plasteel/chapel{ - dir = 8 - }, -/area/derelict/medical/chapel) -"gk" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plasteel/chapel, -/area/derelict/medical/chapel) -"gl" = ( -/obj/structure/table, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plasteel/chapel{ - dir = 8 - }, -/area/derelict/medical/chapel) -"gm" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/turf/open/floor/plasteel/chapel, -/area/derelict/medical/chapel) -"gn" = ( -/turf/open/floor/plasteel/chapel{ - dir = 8 - }, -/area/derelict/medical/chapel) -"go" = ( -/turf/open/floor/plasteel/chapel, -/area/derelict/medical/chapel) -"gp" = ( -/obj/structure/chair, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged3" - }, -/area/derelict/medical) -"gq" = ( -/obj/structure/table, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/airless, -/area/derelict/medical) -"gr" = ( -/obj/item/weapon/storage/box/lights/mixed, -/turf/open/floor/plating/airless, -/area/derelict/singularity_engine) -"gs" = ( -/obj/item/drone_shell, -/turf/open/floor/plating/airless, -/area/derelict/singularity_engine) -"gt" = ( -/obj/item/stack/cable_coil/cut{ - amount = 2; - dir = 2; - icon_state = "coil_red2" - }, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/derelict/hallway/primary) -"gu" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/derelict/arrival) -"gv" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/derelict/arrival) -"gw" = ( -/obj/structure/window/reinforced, -/turf/open/space, -/area/space) -"gx" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced, -/obj/structure/grille, -/turf/open/space, -/area/space) -"gy" = ( -/obj/structure/table, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plasteel/chapel{ - dir = 1 - }, -/area/derelict/medical/chapel) -"gz" = ( -/obj/structure/window/reinforced, -/turf/open/floor/plasteel/chapel{ - dir = 4 - }, -/area/derelict/medical/chapel) -"gA" = ( -/obj/structure/window/reinforced, -/turf/open/floor/plasteel/chapel{ - dir = 1 - }, -/area/derelict/medical/chapel) -"gB" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/turf/open/floor/plasteel/black, -/area/derelict/medical/chapel) -"gC" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/black, -/area/derelict/medical/chapel) -"gD" = ( -/obj/machinery/sleeper{ - icon_state = "sleeper-open"; - dir = 4 - }, -/turf/open/floor/plasteel/airless/white, -/area/derelict/medical) -"gE" = ( -/obj/structure/table, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced, -/obj/item/weapon/reagent_containers/glass/beaker, -/turf/open/floor/plasteel/airless/white, -/area/derelict/medical) -"gF" = ( -/obj/structure/window/reinforced, -/turf/open/floor/plasteel/airless/white, -/area/space) -"gG" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/derelict/hallway/primary) -"gH" = ( -/obj/machinery/door/poddoor{ - id = "derelict_gun"; - name = "Derelict Mass Driver" - }, -/turf/open/floor/plating, -/area/space) -"gI" = ( -/obj/machinery/mass_driver{ - dir = 8; - icon_state = "mass_driver"; - id = "derelict_gun" - }, -/obj/machinery/door/window{ - dir = 4; - req_access_txt = "25" - }, -/obj/structure/closet/coffin, -/turf/open/floor/plating, -/area/derelict/medical/chapel) -"gJ" = ( -/obj/item/weapon/shard{ - icon_state = "small" - }, -/turf/open/floor/plasteel/airless/white, -/area/derelict/medical) -"gK" = ( -/obj/item/stack/medical/bruise_pack, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/derelict/medical) -"gL" = ( -/obj/item/stack/medical/ointment, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged3" - }, -/area/derelict/medical) -"gM" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/derelict/medical) -"gN" = ( -/obj/structure/closet/l3closet, -/turf/open/floor/plating/airless, -/area/space) -"gO" = ( -/obj/item/weapon/shard{ - icon_state = "medium" - }, -/turf/open/space, -/area/space) -"gP" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/space, -/area/space) -"gQ" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/grille, -/turf/open/space, -/area/space) -"gR" = ( -/obj/structure/table, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plasteel/chapel{ - dir = 1 - }, -/area/derelict/medical/chapel) -"gS" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plasteel/chapel{ - dir = 4 - }, -/area/derelict/medical/chapel) -"gT" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plasteel/chapel{ - dir = 1 - }, -/area/derelict/medical/chapel) -"gU" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel/chapel{ - dir = 4 - }, -/area/derelict/medical/chapel) -"gV" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel/airless/white, -/area/derelict/medical) -"gW" = ( -/obj/item/weapon/cigbutt, -/turf/open/floor/plasteel/airless/white, -/area/derelict/medical) -"gX" = ( -/obj/machinery/door/airlock/glass{ - name = "Med-Sci"; - req_access_txt = "9" - }, -/turf/open/floor/plating/airless, -/area/derelict/medical) -"gY" = ( -/obj/structure/table, -/turf/open/floor/plating/airless, -/area/space) -"gZ" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/primary) -"ha" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plasteel, -/area/derelict/arrival) -"hb" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/chapel, -/area/derelict/medical/chapel) -"hc" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plasteel/airless/white, -/area/derelict/medical) -"hd" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel/airless/white, -/area/derelict/medical) -"he" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/airless/white, -/area/derelict/medical) -"hf" = ( -/obj/item/stack/cable_coil/cut{ - amount = 2; - dir = 2; - icon_state = "coil_red2" - }, -/turf/open/floor/plasteel/airless/white, -/area/derelict/medical) -"hg" = ( -/obj/item/weapon/reagent_containers/glass/beaker, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged3" - }, -/area/derelict/medical) -"hh" = ( -/obj/structure/closet/wardrobe/genetics_white, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plasteel/airless/white, -/area/derelict/medical) -"hi" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/space) -"hj" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/derelict/hallway/primary) -"hk" = ( -/obj/item/weapon/pen, -/turf/open/floor/plasteel, -/area/derelict/arrival) -"hl" = ( -/obj/machinery/light/small, -/turf/open/floor/plasteel/chapel{ - dir = 4 - }, -/area/derelict/medical/chapel) -"hm" = ( -/obj/machinery/door/window{ - dir = 8 - }, -/turf/open/floor/plasteel/airless, -/area/derelict/medical/chapel) -"hn" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/airless, -/area/derelict/medical/chapel) -"ho" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "Worn-out APC"; - pixel_x = 24; - pixel_y = 0 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/turf/open/floor/plasteel/airless, -/area/derelict/medical/chapel) -"hp" = ( -/obj/machinery/power/apc{ - dir = 0; - name = "Worn-out APC"; - pixel_y = -24 - }, -/obj/structure/cable, -/turf/open/floor/plasteel/airless/white, -/area/derelict/medical) -"hq" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/bed, -/turf/open/floor/plasteel/airless/white, -/area/derelict/medical) -"hr" = ( -/obj/item/stack/medical/ointment, -/turf/open/floor/plasteel/airless/white, -/area/derelict/medical) -"hs" = ( -/obj/structure/bed, -/turf/open/floor/plasteel/airless/white, -/area/derelict/medical) -"ht" = ( -/obj/machinery/door/airlock/medical{ - name = "Medical" - }, -/turf/open/floor/plasteel/airless/white, -/area/derelict/medical) -"hu" = ( -/obj/structure/window/fulltile, -/turf/open/space, -/area/space) -"hv" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/turf/open/floor/plasteel, -/area/derelict/arrival) -"hw" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/derelict/arrival) -"hx" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plating, -/area/derelict/arrival) -"hy" = ( -/obj/machinery/door/window, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/airless, -/area/derelict/medical/chapel) -"hz" = ( -/obj/machinery/door/window/southleft, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/airless/white, -/area/derelict/medical) -"hA" = ( -/obj/machinery/door/window/southright, -/turf/open/floor/plasteel/airless/white, -/area/derelict/medical) -"hB" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/primary) -"hC" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/airlock/research{ - name = "Toxins Research"; - req_access_txt = "7" - }, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/primary) -"hD" = ( -/obj/structure/lattice, -/obj/structure/grille, -/turf/open/space, -/area/space) -"hE" = ( -/obj/machinery/door/airlock/external{ - name = "Arrivals Docking Bay 1" - }, -/turf/open/floor/plating, -/area/derelict/arrival) -"hF" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/space) -"hG" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/primary) -"hH" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/airless{ - icon_state = "floorscorched1" - }, -/area/derelict/hallway/primary) -"hI" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel/airless, -/area/space) -"hJ" = ( -/obj/structure/window/fulltile, -/turf/open/floor/plating/airless, -/area/space) -"hK" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plating/airless, -/area/space) -"hL" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/airless, -/area/space) -"hM" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/window/fulltile, -/turf/open/floor/plating/airless, -/area/space) -"hN" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/derelict/arrival) -"hO" = ( -/obj/machinery/door/airlock/command{ - name = "Teleporter Room" - }, -/turf/open/floor/plasteel/airless, -/area/derelict/medical/chapel) -"hP" = ( -/obj/item/stack/cable_coil/cut{ - amount = 2; - dir = 2; - icon_state = "coil_red2" - }, -/turf/open/floor/plasteel/airless{ - icon_state = "floorscorched1" - }, -/area/derelict/hallway/primary) -"hQ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/primary) -"hR" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/primary) -"hS" = ( -/obj/item/device/assembly/prox_sensor{ - pixel_x = -8; - pixel_y = 4 - }, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/primary) -"hT" = ( -/obj/machinery/portable_atmospherics/scrubber, -/turf/open/floor/plasteel, -/area/derelict/arrival) -"hU" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/turf/open/floor/plasteel/airless{ - icon_state = "floorscorched1" - }, -/area/derelict/hallway/primary) -"hV" = ( -/obj/machinery/door/window{ - base_state = "right"; - dir = 4; - icon_state = "right" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/primary) -"hW" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/primary) -"hX" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/primary) -"hY" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/primary) -"hZ" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/primary) -"ia" = ( -/obj/machinery/portable_atmospherics/pump, -/turf/open/floor/plasteel, -/area/derelict/arrival) -"ib" = ( -/obj/machinery/door/window, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/primary) -"ic" = ( -/obj/machinery/door/window{ - base_state = "right"; - dir = 4; - icon_state = "right" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/primary) -"id" = ( -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/primary) -"ie" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/primary) -"if" = ( -/obj/machinery/vending/hydronutrients, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/primary) -"ig" = ( -/obj/structure/girder, -/turf/open/floor/plasteel/airless, -/area/space) -"ih" = ( -/obj/structure/girder, -/turf/open/floor/plating, -/area/derelict/arrival) -"ii" = ( -/obj/structure/bed, -/turf/open/floor/plasteel/airless, -/area/space) -"ij" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/derelict/hallway/primary) -"ik" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/derelict/hallway/primary) -"il" = ( -/obj/machinery/door/airlock/security{ - name = "Security"; - req_access = null; - req_access_txt = "1" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/primary) -"im" = ( -/obj/machinery/vending/hydroseeds, -/turf/open/floor/plasteel/airless, -/area/hallway/primary/port) -"in" = ( -/obj/item/weapon/cigbutt, -/turf/open/space, -/area/space) -"io" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/derelict/arrival) -"ip" = ( -/obj/structure/table, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plasteel/airless, -/area/space) -"iq" = ( -/obj/structure/table, -/obj/item/weapon/stock_parts/cell, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/primary) -"ir" = ( -/obj/machinery/vending/sovietsoda, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/primary) -"is" = ( -/obj/effect/decal/cleanable/blood/gibs/old, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/primary) -"it" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/item/stack/cable_coil/cut{ - amount = 2; - dir = 2; - icon_state = "coil_red2" - }, -/turf/open/floor/plasteel/airless, -/area/space) -"iu" = ( -/obj/structure/lattice, -/obj/item/stack/cable_coil/cut, -/turf/open/space, -/area/space) -"iv" = ( -/obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/primary) -"iw" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/primary) -"ix" = ( -/obj/structure/chair/stool, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/primary) -"iy" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Atmospherics Access"; - req_access_txt = "24" - }, -/turf/open/floor/plating/airless, -/area/derelict/hallway/primary) -"iz" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel/airless, -/area/space) -"iA" = ( -/obj/item/stack/cable_coil/cut{ - amount = 2; - dir = 2; - icon_state = "coil_red2" - }, -/turf/open/floor/plasteel/airless, -/area/space) -"iB" = ( -/obj/structure/closet/wardrobe/orange, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/obj/item/weapon/shovel/spade, -/obj/item/weapon/cultivator, -/turf/open/floor/plasteel/airless, -/area/space) -"iC" = ( -/obj/structure/grille, -/turf/open/floor/plating, -/area/derelict/arrival) -"iD" = ( -/obj/structure/closet/wardrobe, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" - }, -/turf/open/floor/plasteel, -/area/derelict/arrival) -"iE" = ( -/obj/item/weapon/stock_parts/manipulator{ - pixel_x = -15; - pixel_y = 10 - }, -/obj/item/weapon/stock_parts/manipulator, -/turf/open/floor/plating/airless, -/area/derelict/hallway/primary) -"iF" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" - }, -/turf/open/floor/plating/airless, -/area/derelict/hallway/primary) -"iG" = ( -/obj/structure/chair/stool, -/obj/effect/decal/remains/human, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/primary) -"iH" = ( -/obj/structure/table, -/obj/item/weapon/reagent_containers/glass/beaker{ - list_reagents = list("sacid" = 50) - }, -/obj/item/weapon/paper/crumpled/bloody{ - desc = "Looks like someone started shakily writing a will in space common, but were interrupted by something bloody..."; - info = "I, Victor Belyakov, do hereby leave my _- "; - name = "unifinished paper scrap" - }, -/obj/item/weapon/pen, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/primary) -"iI" = ( -/obj/structure/table, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/primary) -"iJ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating/airless, -/area/derelict/atmospherics) -"iK" = ( -/obj/machinery/atmospherics/components/unary/tank/air, -/turf/open/floor/plating/airless, -/area/derelict/atmospherics) -"iL" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/window/reinforced, -/turf/open/floor/plasteel/airless, -/area/space) -"iM" = ( -/obj/structure/window/reinforced, -/turf/open/floor/plasteel/airless, -/area/space) -"iN" = ( -/obj/structure/grille, -/obj/structure/grille, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/space) -"iO" = ( -/turf/open/floor/plasteel/airless/floorgrime, -/area/derelict/hallway/primary) -"iP" = ( -/obj/item/ammo_casing/a357, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/primary) -"iQ" = ( -/obj/structure/table, -/obj/item/device/healthanalyzer, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/primary) -"iR" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/derelict/atmospherics) -"iS" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/derelict/atmospherics) -"iT" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - icon_state = "connector_map"; - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/derelict/atmospherics) -"iU" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 6 - }, -/turf/open/floor/plating/airless, -/area/derelict/atmospherics) -"iV" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, -/obj/machinery/meter, -/turf/open/floor/plating/airless, -/area/derelict/atmospherics) -"iW" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 9 - }, -/turf/open/floor/plating/airless, -/area/derelict/atmospherics) -"iX" = ( -/obj/structure/closet/wardrobe/mixed, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plasteel, -/area/derelict/arrival) -"iY" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/airless, -/area/derelict/atmospherics) -"iZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plating/airless, -/area/derelict/atmospherics) -"ja" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 5 - }, -/turf/open/floor/plating/airless, -/area/derelict/atmospherics) -"jb" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/machinery/atmospherics/components/binary/valve, -/turf/open/floor/plating/airless, -/area/derelict/atmospherics) -"jc" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/derelict/arrival) -"jd" = ( -/obj/machinery/door/airlock/external{ - name = "Escape Airlock" - }, -/turf/open/floor/plating, -/area/derelict/arrival) -"je" = ( -/obj/machinery/door/window{ - dir = 8 - }, -/obj/item/weapon/shard{ - icon_state = "medium" - }, -/turf/open/floor/plasteel/airless, -/area/space) -"jf" = ( -/obj/item/ammo_casing/a357{ - pixel_x = -5 - }, -/obj/item/ammo_casing/a357{ - pixel_x = 5; - pixel_y = 6 - }, -/obj/item/ammo_casing/a357, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/primary) -"jg" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/derelict/atmospherics) -"jh" = ( -/obj/structure/grille, -/obj/item/weapon/shard, -/obj/item/weapon/shard{ - icon_state = "medium" - }, -/turf/open/floor/plating/airless, -/area/space) -"ji" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating/airless, -/area/space) -"jj" = ( -/turf/open/floor/plasteel{ - icon_state = "damaged2"; - initial_gas_mix = "TEMP=2.7" - }, -/area/derelict/atmospherics) -"jk" = ( -/obj/item/stack/rods, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/secondary) -"jl" = ( -/obj/item/weapon/shard{ - icon_state = "small" - }, -/turf/open/space, -/area/space) -"jm" = ( -/obj/structure/frame/computer, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plasteel/airless, -/area/derelict/atmospherics) -"jn" = ( -/obj/machinery/portable_atmospherics/canister, -/turf/open/floor/plasteel/airless, -/area/derelict/atmospherics) -"jo" = ( -/obj/machinery/light/small, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged5" - }, -/area/derelict/atmospherics) -"jp" = ( -/obj/structure/door_assembly/door_assembly_mai{ - name = "airlock assembly" - }, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/secondary) -"jq" = ( -/obj/item/weapon/wirecutters, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/secondary) -"jr" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/derelict/atmospherics) -"js" = ( -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/space) -"jt" = ( -/obj/item/weapon/shard{ - icon_state = "medium" - }, -/turf/open/floor/plasteel/airless, -/area/derelict/atmospherics) -"ju" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "damaged1" - }, -/area/derelict/atmospherics) -"jv" = ( -/obj/machinery/portable_atmospherics/pump, -/turf/open/floor/plating/airless, -/area/derelict/atmospherics) -"jw" = ( -/obj/structure/table, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 8; - name = "8maintenance loot spawner" - }, -/turf/open/floor/plating/airless, -/area/derelict/atmospherics) -"jx" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Aux Storage"; - req_access_txt = "23" - }, -/turf/open/floor/plating/airless, -/area/derelict/hallway/secondary) -"jy" = ( -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/structure/cable, -/obj/machinery/power/apc{ - dir = 8; - name = "Worn-out APC"; - pixel_x = -24; - pixel_y = 0 - }, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/secondary) -"jz" = ( -/obj/structure/grille, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/derelict/hallway/secondary) -"jA" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Worn-out APC"; - pixel_x = 0; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/turf/open/floor/plasteel/airless, -/area/derelict/atmospherics) -"jB" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/airless{ - icon_state = "derelict9" - }, -/area/derelict/hallway/secondary) -"jC" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/airless{ - icon_state = "derelict10" - }, -/area/derelict/hallway/secondary) -"jD" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/airless{ - icon_state = "derelict11" - }, -/area/derelict/hallway/secondary) -"jE" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/airless{ - icon_state = "derelict12" - }, -/area/derelict/hallway/secondary) -"jF" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/airless{ - icon_state = "derelict13" - }, -/area/derelict/hallway/secondary) -"jG" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/airless{ - icon_state = "derelict14" - }, -/area/derelict/hallway/secondary) -"jH" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/airless{ - icon_state = "derelict15" - }, -/area/derelict/hallway/secondary) -"jI" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/airless{ - icon_state = "derelict16" - }, -/area/derelict/hallway/secondary) -"jJ" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/secondary) -"jK" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "derelict1" - }, -/area/derelict/hallway/secondary) -"jL" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "derelict2" - }, -/area/derelict/hallway/secondary) -"jM" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "derelict3" - }, -/area/derelict/hallway/secondary) -"jN" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "derelict4" - }, -/area/derelict/hallway/secondary) -"jO" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "derelict5" - }, -/area/derelict/hallway/secondary) -"jP" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "derelict6" - }, -/area/derelict/hallway/secondary) -"jQ" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "derelict7" - }, -/area/derelict/hallway/secondary) -"jR" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "derelict8" - }, -/area/derelict/hallway/secondary) -"jS" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/door/airlock/engineering{ - name = "Aft Solar Access"; - req_access_txt = "10" - }, -/turf/open/floor/plasteel/airless, -/area/derelict/se_solar) -"jT" = ( -/obj/machinery/door/airlock/external{ - name = "Escape Airlock" - }, -/turf/open/floor/plating/airless, -/area/derelict/hallway/secondary) -"jU" = ( -/obj/machinery/door/firedoor, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/airless, -/area/derelict/hallway/secondary) -"jV" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/airless, -/area/derelict/se_solar) -"jW" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/secondary) -"jX" = ( -/obj/structure/girder/reinforced, -/turf/open/floor/plating/airless, -/area/space) -"jY" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/closed/wall/r_wall, -/area/derelict/se_solar) -"jZ" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/turf/closed/wall/r_wall, -/area/derelict/se_solar) -"ka" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/door/airlock/engineering{ - name = "Aft Solar Access"; - req_access_txt = "10" - }, -/turf/open/floor/plasteel/airless, -/area/derelict/se_solar) -"kb" = ( -/obj/machinery/power/smes, -/obj/structure/cable, -/turf/open/floor/plasteel/airless, -/area/derelict/se_solar) -"kc" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plasteel/airless, -/area/derelict/se_solar) -"kd" = ( -/obj/docking_port/stationary{ - dheight = 0; - dir = 2; - dwidth = 11; - height = 22; - id = "whiteship_z4"; - name = "KSS13: Derelict"; - width = 35 - }, -/turf/open/space, -/area/space) -"ke" = ( -/obj/machinery/power/terminal{ - icon_state = "term"; - dir = 1 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/item/drone_shell, -/turf/open/floor/plasteel/airless, -/area/derelict/se_solar) -"kf" = ( -/obj/item/weapon/storage/toolbox/syndicate, -/turf/open/floor/plasteel/airless, -/area/derelict/se_solar) -"kg" = ( -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/structure/cable, -/obj/machinery/power/solar_control{ - id = "derelictsolar"; - name = "Primary Solar Control"; - track = 0 - }, -/turf/open/floor/plasteel/airless, -/area/derelict/se_solar) -"kh" = ( -/obj/structure/cable, -/obj/machinery/power/apc{ - dir = 8; - environ = 0; - equipment = 0; - lighting = 0; - locked = 0; - name = "Worn-out APC"; - pixel_x = -24; - pixel_y = 0 - }, -/turf/open/floor/plating/airless, -/area/derelict/se_solar) -"ki" = ( -/obj/item/weapon/paper{ - desc = ""; - info = "The Syndicate have cunningly disguised a Syndicate Uplink as your PDA. Simply enter the code \"678 Bravo\" into the ringtone select to unlock its hidden features.

Objective #1. Kill the God damn AI in a fire blast that it rocks the station. Success!
Objective #2. Escape alive. Failed."; - name = "Mission Objectives" - }, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/derelict/se_solar) -"kj" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/item/clothing/head/helmet/space/syndicate/black/red, -/turf/open/floor/plasteel/airless, -/area/derelict/se_solar) -"kk" = ( -/obj/machinery/door/window{ - base_state = "right"; - dir = 4; - icon_state = "right" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/airless, -/area/derelict/se_solar) -"kl" = ( -/obj/item/clothing/suit/space/syndicate/black/red, -/turf/open/floor/plasteel/airless, -/area/derelict/se_solar) -"km" = ( -/obj/effect/decal/remains/human{ - desc = "This guy seemed to have died in terrible way! Half his remains are dust."; - icon_state = "remains"; - name = "Syndicate agent remains" - }, -/turf/open/floor/plasteel/airless, -/area/derelict/se_solar) -"kn" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/door/airlock/external, -/turf/open/floor/plasteel/airless, -/area/derelict/se_solar) -"ko" = ( -/obj/structure/cable, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/derelict_aft) -"kp" = ( -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/derelict_aft) -"kq" = ( -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/machinery/power/solar{ - id = "derelictsolar"; - name = "Derelict Solar Array" - }, -/turf/open/floor/plasteel/airless, -/area/solar/derelict_aft) -"kr" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/derelict_aft) -"ks" = ( -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/machinery/power/solar{ - id = "derelictsolar"; - name = "Derelict Solar Array" - }, -/turf/open/floor/plating/airless{ - icon_state = "platingdmg3" - }, -/area/solar/derelict_aft) -"kt" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/space, -/area/solar/derelict_aft) -"ku" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/derelict_aft) -"kv" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/space, -/area/solar/derelict_aft) -"kw" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/space, -/area/solar/derelict_aft) -"kx" = ( -/obj/structure/cable, -/obj/machinery/power/solar{ - id = "derelictsolar"; - name = "Derelict Solar Array" - }, -/turf/open/floor/plasteel/airless, -/area/solar/derelict_aft) -"ky" = ( -/turf/open/floor/plating/airless{ - icon_state = "platingdmg1" - }, -/area/solar/derelict_aft) -"kz" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/space, -/area/solar/derelict_aft) -"kA" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/derelict_aft) -"kB" = ( -/obj/machinery/power/tracker, -/obj/structure/cable, -/turf/open/floor/plasteel/airless, -/area/solar/derelict_aft) -"kC" = ( -/turf/closed/wall, -/area/derelict/solar_control) -"kD" = ( -/turf/closed/wall/r_wall, -/area/derelict/bridge/ai_upload) -"kE" = ( -/turf/open/floor/plasteel, -/area/derelict/bridge/ai_upload) -"kF" = ( -/turf/closed/wall/r_wall, -/area/derelict/solar_control) -"kG" = ( -/obj/structure/grille, -/turf/open/floor/plating/airless, -/area/derelict/bridge/ai_upload) -"kH" = ( -/turf/closed/wall, -/area/derelict/bridge/ai_upload) -"kI" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/derelict/solar_control) -"kJ" = ( -/obj/machinery/door/window, -/turf/open/floor/plasteel, -/area/derelict/bridge/ai_upload) -"kK" = ( -/turf/open/floor/plasteel/airless, -/area/derelict/bridge/ai_upload) -"kL" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "damaged4" - }, -/area/derelict/bridge/ai_upload) -"kM" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "damaged3" - }, -/area/derelict/bridge/ai_upload) -"kN" = ( -/obj/machinery/door/window{ - base_state = "right"; - dir = 4; - icon_state = "right" - }, -/turf/open/floor/plasteel/airless, -/area/derelict/bridge/ai_upload) -"kO" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/derelict/bridge/ai_upload) -"kP" = ( -/turf/open/space, -/area/derelict/bridge/ai_upload) -"kQ" = ( -/turf/open/floor/plating/airless, -/area/derelict/bridge/ai_upload) -"kR" = ( -/obj/structure/lattice, -/turf/open/space, -/area/derelict/bridge/ai_upload) -"kS" = ( -/turf/closed/wall/r_wall, -/area/derelict/gravity_generator) -"kT" = ( -/obj/machinery/light/small, -/turf/open/floor/plasteel, -/area/derelict/solar_control) -"kU" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/derelict/gravity_generator) -"kV" = ( -/turf/closed/wall, -/area/derelict/bridge/access) -"kW" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "damaged4" - }, -/area/derelict/gravity_generator) -"kX" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "damaged5" - }, -/area/derelict/gravity_generator) -"kY" = ( -/turf/open/floor/plasteel, -/area/derelict/bridge/access) -"kZ" = ( -/obj/structure/rack, -/obj/item/weapon/circuitboard/machine/smes, -/turf/open/floor/plasteel, -/area/derelict/bridge/access) -"la" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/derelict/bridge/access) -"lb" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/derelict/bridge/access) -"lc" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/derelict/bridge/access) -"ld" = ( -/turf/open/floor/plasteel/airless, -/area/derelict/gravity_generator) -"le" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plating, -/area/derelict/bridge/access) -"lf" = ( -/turf/open/floor/plating, -/area/derelict/bridge/access) -"lg" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating/airless, -/area/derelict/gravity_generator) -"lh" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/derelict/bridge/access) -"li" = ( -/turf/closed/wall/r_wall, -/area/derelict/singularity_engine) -"lj" = ( -/obj/structure/window/reinforced, -/turf/open/floor/plasteel, -/area/derelict/bridge/access) -"lk" = ( -/obj/machinery/door/window, -/turf/open/floor/plasteel, -/area/derelict/bridge/access) -"ll" = ( -/turf/closed/wall, -/area/derelict/bridge) -"lm" = ( -/obj/structure/frame/computer, -/turf/open/floor/plasteel, -/area/derelict/bridge) -"ln" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "damaged3" - }, -/area/derelict/singularity_engine) -"lo" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "damaged4" - }, -/area/derelict/singularity_engine) -"lp" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating/airless, -/area/derelict/singularity_engine) -"lq" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/derelict/gravity_generator) -"lr" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/derelict/gravity_generator) -"ls" = ( -/turf/open/floor/plating/airless, -/area/derelict/singularity_engine) -"lt" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "damaged5" - }, -/area/derelict/singularity_engine) -"lu" = ( -/turf/open/floor/plasteel, -/area/derelict/bridge) -"lv" = ( -/turf/open/floor/plating, -/area/derelict/bridge) -"lw" = ( -/turf/open/floor/plasteel, -/area/derelict/gravity_generator) -"lx" = ( -/turf/closed/wall, -/area/derelict/gravity_generator) -"ly" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/derelict/bridge) -"lz" = ( -/obj/structure/grille, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/derelict/singularity_engine) -"lA" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/derelict/singularity_engine) -"lB" = ( -/obj/item/stack/cable_coil/cut, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged4" - }, -/area/derelict/singularity_engine) -"lC" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/turf/open/floor/plasteel, -/area/derelict/bridge) -"lD" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/derelict/bridge) -"lE" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/derelict/bridge) -"lF" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plasteel, -/area/derelict/bridge) -"lG" = ( -/obj/item/stack/rods, -/turf/open/floor/plating/airless, -/area/derelict/singularity_engine) -"lH" = ( -/obj/structure/grille, -/turf/open/floor/plating/airless, -/area/derelict/singularity_engine) -"lI" = ( -/obj/structure/grille, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/derelict/singularity_engine) -"lJ" = ( -/obj/structure/grille, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/derelict/singularity_engine) -"lK" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/derelict/singularity_engine) -"lL" = ( -/turf/closed/wall/r_wall, -/area/derelict/bridge) -"lM" = ( -/turf/open/floor/plasteel/airless, -/area/derelict/bridge/access) -"lN" = ( -/turf/open/space, -/area/derelict/bridge/access) -"lO" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/derelict/singularity_engine) -"lP" = ( -/obj/machinery/door/window, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/derelict/bridge/access) -"lQ" = ( -/obj/item/weapon/shard{ - icon_state = "medium" - }, -/turf/open/floor/plating/airless, -/area/derelict/singularity_engine) -"lR" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/airless, -/area/derelict/bridge/access) -"lS" = ( -/turf/closed/wall, -/area/derelict/hallway/primary) -"lT" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/primary) -"lU" = ( -/obj/item/weapon/shard, -/turf/open/floor/plating/airless, -/area/derelict/singularity_engine) -"lV" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/derelict/singularity_engine) -"lW" = ( -/turf/closed/wall/r_wall, -/area/derelict/hallway/primary) -"lX" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating/airless, -/area/derelict/hallway/primary) -"lY" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "damaged3" - }, -/area/derelict/hallway/primary) -"lZ" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/derelict/hallway/primary) -"ma" = ( -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/primary) -"mb" = ( -/turf/open/floor/plating/airless, -/area/derelict/bridge/access) -"mc" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating/airless, -/area/derelict/hallway/primary) -"md" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "floorscorched2" - }, -/area/derelict/hallway/primary) -"me" = ( -/obj/structure/grille, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/derelict/singularity_engine) -"mf" = ( -/obj/structure/grille/broken, -/turf/open/floor/plating/airless, -/area/derelict/singularity_engine) -"mg" = ( -/turf/open/floor/plating/airless, -/area/derelict/hallway/primary) -"mh" = ( -/obj/structure/girder, -/turf/open/floor/plating/airless, -/area/derelict/hallway/primary) -"mi" = ( -/obj/structure/window/reinforced, -/turf/open/floor/plating/airless, -/area/derelict/singularity_engine) -"mj" = ( -/obj/item/stack/cable_coil/cut{ - amount = 2; - dir = 2; - icon_state = "coil_red2" - }, -/turf/open/floor/plating/airless, -/area/derelict/hallway/primary) -"mk" = ( -/turf/closed/wall/r_wall, -/area/derelict/arrival) -"ml" = ( -/turf/closed/wall, -/area/derelict/arrival) -"mm" = ( -/turf/closed/wall, -/area/derelict/medical/chapel) -"mn" = ( -/turf/closed/wall, -/area/derelict/singularity_engine) -"mo" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/derelict/singularity_engine) -"mp" = ( -/obj/structure/table, -/turf/open/floor/plasteel, -/area/derelict/arrival) -"mq" = ( -/obj/structure/chair, -/turf/open/floor/plasteel, -/area/derelict/arrival) -"mr" = ( -/turf/open/floor/plasteel, -/area/derelict/arrival) -"ms" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/derelict/arrival) -"mt" = ( -/obj/structure/grille, -/turf/open/space, -/area/derelict/singularity_engine) -"mu" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "floorscorched2" - }, -/area/derelict/arrival) -"mv" = ( -/turf/open/floor/plating/airless, -/area/derelict/arrival) -"mw" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "damaged3" - }, -/area/derelict/arrival) -"mx" = ( -/obj/structure/table, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plasteel, -/area/derelict/arrival) -"my" = ( -/turf/closed/wall, -/area/derelict/medical) -"mz" = ( -/obj/structure/grille, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/derelict/medical) -"mA" = ( -/turf/open/floor/plating/airless, -/area/derelict/medical) -"mB" = ( -/obj/item/weapon/shard{ - icon_state = "medium" - }, -/turf/open/floor/plating/airless, -/area/derelict/medical) -"mC" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "damaged4" - }, -/area/derelict/hallway/primary) -"mD" = ( -/turf/open/floor/plasteel/airless/white, -/area/derelict/medical) -"mE" = ( -/turf/open/floor/plating, -/area/derelict/arrival) -"mF" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/derelict/medical) -"mG" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "damaged3" - }, -/area/derelict/medical) -"mH" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/derelict/medical) -"mI" = ( -/obj/structure/table, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/derelict/arrival) -"mJ" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/derelict/arrival) -"mK" = ( -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/airless, -/area/derelict/singularity_engine) -"mL" = ( -/obj/structure/window/reinforced, -/turf/open/floor/plasteel/airless/white, -/area/derelict/medical) -"mM" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/derelict/arrival) -"mN" = ( -/turf/open/floor/plating, -/area/derelict/medical/chapel) -"mO" = ( -/obj/item/stack/cable_coil/cut{ - amount = 2; - dir = 2; - icon_state = "coil_red2" - }, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged3" - }, -/area/derelict/medical) -"mP" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/primary) -"mQ" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/primary) -"mR" = ( -/turf/open/floor/plasteel/airless, -/area/derelict/medical/chapel) -"mS" = ( -/obj/item/stack/cable_coil/cut{ - amount = 2; - dir = 2; - icon_state = "coil_red2" - }, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/derelict/medical) -"mT" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plating, -/area/derelict/arrival) -"mU" = ( -/turf/closed/wall/r_wall, -/area/derelict/medical/chapel) -"mV" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "floorscorched1" - }, -/area/derelict/hallway/primary) -"mW" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/primary) -"mX" = ( -/obj/structure/frame/computer, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/primary) -"mY" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/airlock/research{ - name = "Toxins Research"; - req_access_txt = "7" - }, -/turf/open/floor/plasteel/airless, -/area/derelict/arrival) -"mZ" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/derelict/arrival) -"na" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/derelict/arrival) -"nb" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/primary) -"nc" = ( -/obj/structure/cable, -/obj/machinery/power/apc{ - dir = 0; - name = "Worn-out APC"; - pixel_y = -24 - }, -/turf/open/floor/plasteel, -/area/derelict/arrival) -"nd" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/turf/open/floor/plating/airless, -/area/derelict/hallway/primary) -"ne" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/primary) -"nf" = ( -/obj/structure/window/fulltile, -/turf/open/floor/plating/airless, -/area/derelict/arrival) -"ng" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/primary) -"nh" = ( -/obj/structure/girder, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/primary) -"ni" = ( -/obj/structure/bed, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/primary) -"nj" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/derelict/hallway/primary) -"nk" = ( -/obj/machinery/door/window, -/turf/open/floor/plasteel/airless, -/area/hallway/primary/port) -"nl" = ( -/obj/structure/table, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/primary) -"nm" = ( -/obj/structure/cable, -/obj/machinery/power/apc{ - dir = 0; - name = "Worn-out APC"; - pixel_y = -24 - }, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/primary) -"nn" = ( -/turf/open/floor/plasteel/airless, -/area/derelict/atmospherics) -"no" = ( -/turf/open/floor/plating/airless, -/area/derelict/atmospherics) -"np" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/derelict/atmospherics) -"nq" = ( -/turf/closed/wall, -/area/derelict/atmospherics) -"nr" = ( -/turf/closed/wall/r_wall, -/area/derelict/atmospherics) -"ns" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "damaged5" - }, -/area/derelict/hallway/primary) -"nt" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Atmospherics Access"; - req_access_txt = "24" - }, -/turf/open/floor/plating/airless, -/area/derelict/atmospherics) -"nu" = ( -/obj/item/weapon/shard{ - icon_state = "medium" - }, -/turf/open/floor/plating/airless, -/area/derelict/atmospherics) -"nv" = ( -/turf/closed/wall, -/area/derelict/hallway/secondary) -"nw" = ( -/obj/structure/girder, -/turf/open/floor/plating/airless, -/area/derelict/hallway/secondary) -"nx" = ( -/turf/closed/wall/r_wall, -/area/derelict/hallway/secondary) -"ny" = ( -/obj/machinery/door/window{ - base_state = "right"; - dir = 4; - icon_state = "right" - }, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/primary) -"nz" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "floorscorched1" - }, -/area/derelict/atmospherics) -"nA" = ( -/obj/structure/window/fulltile, -/turf/open/floor/plating/airless, -/area/derelict/hallway/secondary) -"nB" = ( -/obj/structure/window/reinforced, -/turf/open/floor/plasteel/airless, -/area/derelict/atmospherics) -"nC" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "damaged5" - }, -/area/derelict/atmospherics) -"nD" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "damaged3" - }, -/area/derelict/atmospherics) -"nE" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "damaged4" - }, -/area/derelict/atmospherics) -"nF" = ( -/obj/structure/window/fulltile, -/turf/open/space, -/area/derelict/atmospherics) -"nG" = ( -/obj/structure/lattice, -/turf/open/space, -/area/derelict/atmospherics) -"nH" = ( -/obj/structure/grille, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/derelict/hallway/secondary) -"nI" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/turf/open/floor/plating/airless, -/area/derelict/hallway/primary) -"nJ" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/derelict/atmospherics) -"nK" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/secondary) -"nL" = ( -/obj/item/stack/cable_coil/cut, -/turf/open/floor/plating/airless, -/area/derelict/hallway/primary) -"nM" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plating/airless, -/area/derelict/hallway/primary) -"nN" = ( -/obj/structure/window/reinforced, -/turf/open/floor/plating/airless, -/area/derelict/atmospherics) -"nO" = ( -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/airless, -/area/derelict/hallway/primary) -"nP" = ( -/turf/open/space, -/area/derelict/atmospherics) -"nQ" = ( -/obj/machinery/light/small, -/turf/open/floor/plasteel/airless, -/area/derelict/atmospherics) -"nR" = ( -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/secondary) -"nS" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/secondary) -"nT" = ( -/turf/open/floor/plating/airless, -/area/derelict/hallway/secondary) -"nU" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/secondary) -"nV" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/secondary) -"nW" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/secondary) -"nX" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/secondary) -"nY" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/airless, -/area/derelict/hallway/secondary) -"nZ" = ( -/obj/structure/lattice, -/turf/open/space, -/area/derelict/hallway/secondary) -"oa" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/turf/open/floor/plating/airless, -/area/derelict/hallway/secondary) -"ob" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/derelict/hallway/secondary) -"oc" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/derelict/hallway/secondary) -"od" = ( -/turf/closed/wall/r_wall, -/area/derelict/se_solar) -"oe" = ( -/obj/structure/grille, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/derelict/hallway/secondary) -"of" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/derelict/se_solar) -"og" = ( -/obj/structure/grille, -/turf/open/floor/plating/airless, -/area/derelict/hallway/secondary) -"oh" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/airless, -/area/derelict/se_solar) -"oi" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "damaged4" - }, -/area/derelict/se_solar) -"oj" = ( -/turf/open/floor/plasteel/airless, -/area/derelict/se_solar) -"ok" = ( -/turf/open/floor/plating/airless, -/area/derelict/se_solar) -"ol" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/turf/open/floor/plasteel/airless, -/area/derelict/se_solar) -"om" = ( -/obj/item/stack/rods, -/turf/open/floor/plating/airless, -/area/derelict/hallway/secondary) -"on" = ( -/obj/machinery/light/small, -/turf/open/floor/plasteel/airless, -/area/derelict/se_solar) -"oo" = ( -/obj/machinery/door/window{ - base_state = "right"; - dir = 4; - icon_state = "right" - }, -/turf/open/floor/plasteel/airless, -/area/derelict/se_solar) -"op" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/airless, -/area/derelict/se_solar) -"oq" = ( -/turf/open/floor/plating/airless, -/turf/open/floor/plating/airless{ - icon_state = "platingdmg2" - }, -/area/solar/derelict_aft) -"or" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/space, -/area/solar/derelict_aft) -"os" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/space, -/area/solar/derelict_aft) -"ot" = ( -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/derelict_aft) -"ou" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/space, -/area/solar/derelict_aft) +"aa" = (/turf/open/space,/area/space) +"ab" = (/obj/structure/lattice,/turf/open/space,/area/space) +"ac" = (/obj/structure/grille,/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"ad" = (/obj/machinery/power/tracker,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plasteel/airless,/area/solar/derelict_starboard) +"ae" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/space,/area/solar/derelict_starboard) +"af" = (/turf/open/floor/plating/airless,/turf/open/floor/plating/airless{icon_state = "platingdmg2"},/area/solar/derelict_starboard) +"ag" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plasteel/airless{icon_state = "damaged5"},/area/solar/derelict_starboard) +"ah" = (/obj/machinery/power/solar{id = "derelictsolar"; name = "Derelict Solar Array"},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plasteel/airless,/area/solar/derelict_starboard) +"ai" = (/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/derelict_starboard) +"aj" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/space,/area/solar/derelict_starboard) +"ak" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/space,/area/solar/derelict_starboard) +"al" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/space,/area/solar/derelict_starboard) +"am" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/space,/area/solar/derelict_starboard) +"an" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/space,/area/solar/derelict_starboard) +"ao" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/space,/area/solar/derelict_starboard) +"ap" = (/obj/machinery/power/solar{id = "derelictsolar"; name = "Derelict Solar Array"},/obj/structure/cable,/turf/open/floor/plasteel/airless,/area/solar/derelict_starboard) +"aq" = (/obj/structure/lattice/catwalk,/obj/structure/cable,/turf/open/space,/area/solar/derelict_starboard) +"ar" = (/obj/structure/lattice/catwalk,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/space,/area/solar/derelict_starboard) +"as" = (/turf/closed/wall,/area/derelict/solar_control) +"at" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating,/area/derelict/solar_control) +"au" = (/obj/machinery/door/airlock/external{name = "External Engineering"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating,/area/derelict/solar_control) +"av" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/derelict/solar_control) +"aw" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating,/area/derelict/solar_control) +"ax" = (/turf/closed/wall/r_wall,/area/derelict/bridge/ai_upload) +"ay" = (/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"az" = (/turf/open/floor/plasteel,/area/derelict/solar_control) +"aA" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel,/area/derelict/solar_control) +"aB" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/derelict/solar_control) +"aC" = (/obj/machinery/power/smes,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel,/area/derelict/solar_control) +"aD" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar_control{id = "derelictsolar"; name = "Primary Solar Control"; track = 0},/obj/structure/cable,/turf/open/floor/plasteel,/area/derelict/solar_control) +"aE" = (/obj/structure/grille,/turf/open/floor/plating/airless,/area/space) +"aF" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/open/floor/plating,/area/derelict/solar_control) +"aG" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/derelict/solar_control) +"aH" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/derelict/solar_control) +"aI" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel,/area/derelict/solar_control) +"aJ" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel,/area/derelict/solar_control) +"aK" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) +"aL" = (/obj/machinery/door/airlock/external{name = "Air Bridge Access"},/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) +"aM" = (/obj/machinery/door/airlock/external{name = "Air Bridge Access"},/turf/open/floor/plating,/area/derelict/solar_control) +"aN" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/derelict/solar_control) +"aO" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/open/floor/plasteel,/area/derelict/solar_control) +"aP" = (/obj/structure/window/reinforced,/turf/open/floor/plasteel,/area/derelict/solar_control) +"aQ" = (/obj/machinery/door/window,/turf/open/floor/plasteel,/area/derelict/solar_control) +"aR" = (/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) +"aS" = (/turf/closed/wall/r_wall,/area/derelict/solar_control) +"aT" = (/obj/machinery/power/apc{dir = 8; environ = 0; equipment = 0; lighting = 0; locked = 0; name = "Starboard Solar APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel,/area/derelict/solar_control) +"aU" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel,/area/derelict/solar_control) +"aV" = (/obj/machinery/door/airlock/external{name = "External Engineering"},/turf/open/floor/plating,/area/derelict/solar_control) +"aW" = (/obj/machinery/door/airlock/highsecurity,/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) +"aX" = (/obj/structure/frame/computer,/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) +"aY" = (/turf/closed/wall/r_wall,/area/ruin/unpowered/no_grav) +"aZ" = (/obj/machinery/computer/monitor,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel,/area/derelict/solar_control) +"ba" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light/small,/turf/open/floor/plasteel,/area/derelict/solar_control) +"bb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/derelict/solar_control) +"bc" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating,/area/derelict/solar_control) +"bd" = (/obj/structure/grille/broken,/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"be" = (/obj/machinery/light/small,/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) +"bf" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/porta_turret_cover,/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) +"bg" = (/obj/machinery/porta_turret_cover,/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) +"bh" = (/obj/machinery/door/airlock/engineering{name = "Starboard Solar Access"; req_access_txt = "10"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/derelict/solar_control) +"bi" = (/obj/structure/grille,/turf/open/space,/area/ruin/unpowered/no_grav) +"bj" = (/obj/structure/grille,/turf/open/floor/plating/airless,/area/derelict/bridge/ai_upload) +"bk" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel,/area/derelict/solar_control) +"bl" = (/turf/closed/wall,/area/derelict/bridge/ai_upload) +"bm" = (/obj/machinery/door/window,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/derelict/solar_control) +"bn" = (/obj/machinery/computer/atmos_alert,/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) +"bo" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) +"bp" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) +"bq" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel,/area/derelict/solar_control) +"br" = (/obj/item/stack/cable_coil/cut{amount = 2; dir = 2; icon_state = "coil_red2"},/turf/open/floor/plasteel,/area/derelict/solar_control) +"bs" = (/turf/open/floor/plasteel{icon_state = "damaged1"},/area/derelict/solar_control) +"bt" = (/obj/machinery/door/window,/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) +"bu" = (/turf/open/floor/plasteel{icon_state = "damaged5"},/area/derelict/solar_control) +"bv" = (/obj/item/weapon/stock_parts/matter_bin,/turf/open/floor/plasteel{icon_state = "damaged4"},/area/derelict/solar_control) +"bw" = (/obj/structure/rack,/obj/item/weapon/circuitboard/machine/smes,/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) +"bx" = (/obj/structure/rack,/obj/item/weapon/circuitboard/machine/microwave,/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) +"by" = (/obj/structure/rack,/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) +"bz" = (/turf/open/floor/plasteel/airless,/area/derelict/bridge/ai_upload) +"bA" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance{lootcount = 3; name = "3maintenance loot spawner"},/turf/open/floor/plasteel,/area/derelict/solar_control) +"bB" = (/turf/open/floor/plasteel{icon_state = "damaged2"},/area/derelict/solar_control) +"bC" = (/obj/item/stack/cable_coil/cut{amount = 2; dir = 2; icon_state = "coil_red2"},/turf/open/floor/plasteel{icon_state = "damaged3"},/area/derelict/solar_control) +"bD" = (/obj/structure/rack,/obj/item/weapon/circuitboard/machine/cryo_tube,/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) +"bE" = (/turf/open/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/bridge/ai_upload) +"bF" = (/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/bridge/ai_upload) +"bG" = (/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/airless,/area/derelict/bridge/ai_upload) +"bH" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plasteel,/area/derelict/solar_control) +"bI" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/airless,/area/derelict/bridge/ai_upload) +"bJ" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/turf/open/floor/plasteel/airless,/area/derelict/bridge/ai_upload) +"bK" = (/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/bridge/ai_upload) +"bL" = (/turf/open/space,/area/derelict/bridge/ai_upload) +"bM" = (/obj/item/weapon/stock_parts/console_screen,/turf/open/space,/area/derelict/bridge/ai_upload) +"bN" = (/turf/open/floor/plasteel/airless/circuit,/area/derelict/bridge/ai_upload) +"bO" = (/turf/open/floor/plating/airless,/area/derelict/bridge/ai_upload) +"bP" = (/obj/machinery/porta_turret_cover,/turf/open/floor/plasteel/airless,/area/derelict/bridge/ai_upload) +"bQ" = (/obj/item/device/aicard,/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/bridge/ai_upload) +"bR" = (/obj/structure/lattice,/turf/open/space,/area/derelict/bridge/ai_upload) +"bS" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel,/area/derelict/solar_control) +"bT" = (/obj/structure/rack,/obj/item/weapon/circuitboard/computer/solar_control,/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) +"bU" = (/obj/structure/rack,/obj/item/weapon/circuitboard/machine/autolathe,/obj/item/weapon/circuitboard/machine/protolathe{pixel_x = -5; pixel_y = -3},/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) +"bV" = (/obj/structure/rack,/obj/item/weapon/circuitboard/machine/circuit_imprinter,/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) +"bW" = (/obj/machinery/power/apc{dir = 8; name = "Worn-out APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel/airless,/area/derelict/bridge/ai_upload) +"bX" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/airless/circuit,/area/derelict/bridge/ai_upload) +"bY" = (/obj/structure/frame/computer,/obj/item/weapon/circuitboard/computer/rdconsole,/turf/open/floor/plasteel/airless,/area/derelict/bridge/ai_upload) +"bZ" = (/obj/structure/frame/computer,/turf/open/floor/plasteel/airless,/area/derelict/bridge/ai_upload) +"ca" = (/obj/machinery/door/airlock/external,/turf/open/floor/plasteel,/area/derelict/solar_control) +"cb" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/airless{icon_state = "damaged4"},/area/space) +"cc" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/airless/circuit,/area/derelict/bridge/ai_upload) +"cd" = (/obj/machinery/light,/turf/open/floor/plasteel/airless,/area/derelict/bridge/ai_upload) +"ce" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/closed/wall/r_wall,/area/derelict/bridge/ai_upload) +"cf" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/closed/wall/r_wall,/area/derelict/bridge/ai_upload) +"cg" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/closed/wall/r_wall,/area/derelict/bridge/ai_upload) +"ch" = (/turf/closed/wall,/area/ruin/unpowered/no_grav) +"ci" = (/turf/closed/wall/r_wall,/area/space) +"cj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/closed/wall/r_wall,/area/derelict/bridge/ai_upload) +"ck" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel,/area/derelict/solar_control) +"cl" = (/turf/closed/wall/r_wall,/area/derelict/gravity_generator) +"cm" = (/obj/machinery/light/small,/turf/open/floor/plasteel,/area/derelict/solar_control) +"cn" = (/obj/item/weapon/ore/iron,/obj/item/weapon/ore/iron,/obj/item/weapon/ore/iron,/turf/open/space,/area/space) +"co" = (/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/gravity_generator) +"cp" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/gravity_generator) +"cq" = (/obj/item/weapon/stock_parts/manipulator,/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/gravity_generator) +"cr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/closed/wall,/area/derelict/bridge/access) +"cs" = (/turf/closed/wall,/area/derelict/bridge/access) +"ct" = (/obj/machinery/door/airlock/maintenance,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/derelict/bridge/access) +"cu" = (/turf/open/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/gravity_generator) +"cv" = (/obj/item/weapon/ore/slag,/turf/open/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/gravity_generator) +"cw" = (/turf/open/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/gravity_generator) +"cx" = (/turf/open/floor/plasteel,/area/derelict/bridge/access) +"cy" = (/obj/structure/rack,/obj/item/weapon/melee/classic_baton,/turf/open/floor/plasteel,/area/derelict/bridge/access) +"cz" = (/obj/structure/rack,/obj/machinery/light/small{dir = 1},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel,/area/derelict/bridge/access) +"cA" = (/obj/structure/rack,/obj/item/clothing/head/helmet/swat,/turf/open/floor/plasteel,/area/derelict/bridge/access) +"cB" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel,/area/derelict/bridge/access) +"cC" = (/obj/structure/rack,/obj/item/weapon/electronics/apc,/turf/open/floor/plasteel,/area/derelict/bridge/access) +"cD" = (/obj/structure/rack,/obj/item/weapon/circuitboard/machine/smes,/turf/open/floor/plasteel,/area/derelict/bridge/access) +"cE" = (/obj/structure/rack,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/manipulator,/turf/open/floor/plasteel,/area/derelict/bridge/access) +"cF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/derelict/bridge/access) +"cG" = (/obj/item/weapon/screwdriver,/turf/open/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/gravity_generator) +"cH" = (/obj/machinery/gravity_generator/main/station{on = 0},/turf/open/floor/plasteel/airless,/area/derelict/gravity_generator) +"cI" = (/obj/item/weapon/ore/slag,/turf/open/space,/area/space) +"cJ" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/closed/wall,/area/derelict/bridge/access) +"cK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/derelict/bridge/access) +"cL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/derelict/bridge/access) +"cM" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel,/area/derelict/bridge/access) +"cN" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel,/area/derelict/bridge/access) +"cO" = (/turf/open/floor/plasteel/airless,/area/derelict/gravity_generator) +"cP" = (/obj/item/stack/cable_coil/cut,/turf/open/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/gravity_generator) +"cQ" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/turf/open/floor/plasteel,/area/derelict/bridge/access) +"cR" = (/obj/structure/rack,/obj/item/weapon/stock_parts/cell/high,/obj/item/weapon/stock_parts/cell/high,/obj/item/weapon/stock_parts/cell/high,/obj/item/weapon/stock_parts/cell/high,/obj/item/weapon/stock_parts/cell/high,/obj/item/weapon/stock_parts/cell/high,/turf/open/floor/plating,/area/derelict/bridge/access) +"cS" = (/obj/machinery/light/small{dir = 4},/obj/structure/rack,/obj/item/stack/cable_coil/cut,/obj/item/stack/cable_coil/cut,/turf/open/floor/plasteel,/area/derelict/bridge/access) +"cT" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating,/area/derelict/bridge/access) +"cU" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating,/area/derelict/bridge/access) +"cV" = (/obj/machinery/door/airlock/command{name = "E.V.A."; req_access = null; req_access_txt = "18"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/derelict/bridge/access) +"cW" = (/obj/machinery/door/airlock/engineering{name = "Engineering Secure Storage"; req_access_txt = "10"},/turf/open/floor/plasteel,/area/derelict/bridge/access) +"cX" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/derelict/bridge/access) +"cY" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/derelict/gravity_generator) +"cZ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating/airless,/area/derelict/gravity_generator) +"da" = (/obj/machinery/door/airlock/engineering{name = "Engineering Access"; req_access_txt = "10"},/turf/open/floor/plasteel,/area/derelict/gravity_generator) +"db" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating/airless,/area/derelict/gravity_generator) +"dc" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating/airless,/area/derelict/gravity_generator) +"dd" = (/turf/open/floor/plating,/area/derelict/bridge/access) +"de" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/airless/solarpanel,/area/ruin/unpowered/no_grav) +"df" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/item/wallframe/apc,/turf/open/floor/plating/airless,/area/derelict/gravity_generator) +"dg" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating/airless,/area/derelict/gravity_generator) +"dh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating/airless,/area/derelict/gravity_generator) +"di" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/frame/machine,/obj/item/weapon/stock_parts/console_screen,/turf/open/floor/plating/airless,/area/derelict/gravity_generator) +"dj" = (/turf/open/floor/plasteel/airless/solarpanel,/area/ruin/unpowered/no_grav) +"dk" = (/obj/item/stack/cable_coil/cut,/turf/open/space,/area/space) +"dl" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel,/area/derelict/bridge/access) +"dm" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating,/area/derelict/bridge/access) +"dn" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/derelict/bridge/access) +"do" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/derelict/bridge/access) +"dp" = (/obj/machinery/door/airlock/glass,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/derelict/bridge/access) +"dq" = (/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/derelict/bridge/access) +"dr" = (/turf/closed/wall/r_wall,/area/derelict/singularity_engine) +"ds" = (/obj/machinery/light/small{dir = 8},/obj/structure/table,/obj/item/weapon/paper{info = "If the equipment breaks there should be enough spare parts in our engineering storage near the north east solar array."; name = "Equipment Inventory"},/turf/open/floor/plasteel/airless,/area/derelict/gravity_generator) +"dt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/airless,/area/derelict/gravity_generator) +"du" = (/obj/machinery/light/small{dir = 4},/obj/item/weapon/stock_parts/matter_bin{pixel_x = -10; pixel_y = 5},/obj/item/weapon/stock_parts/matter_bin{pixel_x = 5; pixel_y = 5},/obj/item/weapon/stock_parts/matter_bin,/turf/open/floor/plating/airless,/area/derelict/gravity_generator) +"dv" = (/obj/item/weapon/stock_parts/matter_bin,/turf/open/space,/area/space) +"dw" = (/obj/structure/window/reinforced,/turf/open/floor/plasteel,/area/derelict/bridge/access) +"dx" = (/obj/machinery/door/window,/turf/open/floor/plasteel,/area/derelict/bridge/access) +"dy" = (/obj/structure/window/reinforced,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/derelict/bridge/access) +"dz" = (/turf/closed/wall,/area/derelict/bridge) +"dA" = (/obj/structure/sign/electricshock,/turf/closed/wall/r_wall,/area/derelict/singularity_engine) +"dB" = (/obj/structure/sign/securearea,/turf/closed/wall/r_wall,/area/derelict/singularity_engine) +"dC" = (/obj/machinery/door/airlock/engineering{name = "Engineering Access"; req_access_txt = "10"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/airless,/area/derelict/gravity_generator) +"dD" = (/obj/structure/sign/securearea{name = "ENGINEERING ACCESS"},/turf/closed/wall/r_wall,/area/derelict/gravity_generator) +"dE" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/space,/area/space) +"dF" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel,/area/derelict/bridge/access) +"dG" = (/obj/structure/frame/computer,/turf/open/floor/plasteel,/area/derelict/bridge) +"dH" = (/obj/structure/frame/computer,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plasteel,/area/derelict/bridge) +"dI" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plasteel,/area/derelict/bridge) +"dJ" = (/obj/machinery/computer/security,/turf/open/floor/plasteel,/area/derelict/bridge) +"dK" = (/obj/structure/table,/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/turf/open/floor/plasteel,/area/derelict/bridge) +"dL" = (/obj/structure/table,/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel,/area/derelict/bridge) +"dM" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/turf/open/floor/plasteel,/area/derelict/bridge) +"dN" = (/obj/item/weapon/grenade/empgrenade,/obj/structure/table,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel,/area/derelict/bridge) +"dO" = (/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/singularity_engine) +"dP" = (/turf/open/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/singularity_engine) +"dQ" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/singularity_engine) +"dR" = (/obj/item/stack/cable_coil/cut,/obj/machinery/light/small{dir = 1},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"dS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"dT" = (/obj/machinery/door/airlock/engineering{name = "Engineering Access"; req_access_txt = "10"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/derelict/gravity_generator) +"dU" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/derelict/gravity_generator) +"dV" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel,/area/derelict/gravity_generator) +"dW" = (/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"dX" = (/turf/open/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/singularity_engine) +"dY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/derelict/bridge/access) +"dZ" = (/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/open/floor/plasteel,/area/derelict/bridge) +"ea" = (/turf/open/floor/plasteel,/area/derelict/bridge) +"eb" = (/turf/open/floor/plating,/area/derelict/bridge) +"ec" = (/obj/structure/table,/obj/item/weapon/paper/crumpled,/turf/open/floor/plasteel,/area/derelict/bridge) +"ed" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel,/area/derelict/bridge) +"ee" = (/obj/structure/window/reinforced,/obj/machinery/portable_atmospherics/canister/toxins,/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/singularity_engine) +"ef" = (/obj/structure/window/reinforced,/turf/open/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/singularity_engine) +"eg" = (/obj/structure/window/reinforced,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/singularity_engine) +"eh" = (/obj/structure/window/reinforced,/turf/open/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/singularity_engine) +"ei" = (/obj/structure/window/reinforced,/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/singularity_engine) +"ej" = (/turf/open/floor/plasteel,/area/derelict/gravity_generator) +"ek" = (/obj/structure/closet/radiation,/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel,/area/derelict/gravity_generator) +"el" = (/turf/closed/wall,/area/derelict/gravity_generator) +"em" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) +"en" = (/obj/machinery/power/emitter{dir = 1; icon_state = "emitter"},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"eo" = (/obj/machinery/field/generator,/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"ep" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/window/reinforced,/turf/open/floor/plasteel,/area/derelict/bridge/access) +"eq" = (/obj/structure/window/reinforced/fulltile,/turf/open/floor/plasteel,/area/derelict/bridge/access) +"er" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plating,/area/derelict/bridge) +"es" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel,/area/derelict/bridge) +"et" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel,/area/derelict/bridge) +"eu" = (/obj/item/stack/rods,/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"ev" = (/obj/structure/grille,/obj/structure/window/reinforced,/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"ew" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"ex" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"ey" = (/obj/structure/noticeboard,/turf/closed/wall/r_wall,/area/derelict/singularity_engine) +"ez" = (/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) +"eA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel,/area/derelict/bridge/access) +"eB" = (/obj/machinery/door/window/eastleft{name = "Heads of Staff"; req_access_txt = "19"},/turf/open/floor/plasteel,/area/derelict/bridge/access) +"eC" = (/obj/structure/table,/obj/item/device/paicard,/turf/open/floor/plasteel,/area/derelict/bridge) +"eD" = (/obj/structure/chair/stool,/turf/open/floor/plasteel,/area/derelict/bridge) +"eE" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel,/area/derelict/bridge) +"eF" = (/obj/item/weapon/storage/toolbox/syndicate,/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) +"eG" = (/obj/item/stack/cable_coil/cut,/turf/open/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/singularity_engine) +"eH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/derelict/bridge/access) +"eI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating,/area/derelict/bridge/access) +"eJ" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/derelict/bridge/access) +"eK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/derelict/bridge) +"eL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/derelict/bridge) +"eM" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel,/area/derelict/bridge) +"eN" = (/obj/item/weapon/paper{info = "Objective #1: Destroy the station with a nuclear device."; name = "Objectives of a Nuclear Operative"},/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) +"eO" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating,/area/derelict/bridge/access) +"eP" = (/obj/structure/table,/turf/open/floor/plasteel,/area/derelict/bridge) +"eQ" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel,/area/derelict/bridge) +"eR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel,/area/derelict/bridge) +"eS" = (/obj/structure/chair,/turf/open/floor/plasteel,/area/derelict/bridge) +"eT" = (/obj/structure/table,/obj/item/weapon/screwdriver,/turf/open/floor/plasteel,/area/derelict/bridge) +"eU" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel,/area/derelict/bridge) +"eV" = (/obj/item/stack/rods,/turf/open/space,/area/space) +"eW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"eX" = (/obj/item/weapon/shard,/obj/structure/grille/broken,/obj/effect/decal/remains/human{desc = "This guy seemed to have died in terrible way! Half his remains are dust."; icon_state = "remains"; name = "Syndicate agent remains"},/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) +"eY" = (/obj/item/clothing/suit/space/syndicate/black/engie,/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"eZ" = (/obj/item/stack/rods,/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"fa" = (/obj/item/weapon/shard,/turf/open/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/singularity_engine) +"fb" = (/obj/structure/grille,/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"fc" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"fd" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"fe" = (/obj/structure/table,/obj/item/weapon/rack_parts,/turf/open/floor/plasteel,/area/derelict/bridge) +"ff" = (/obj/structure/window/fulltile,/turf/open/floor/plasteel,/area/derelict/bridge) +"fg" = (/obj/structure/table,/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/obj/structure/cable,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel,/area/derelict/bridge) +"fh" = (/obj/structure/table,/obj/machinery/light/small,/turf/open/floor/plasteel,/area/derelict/bridge) +"fi" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 4},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel,/area/derelict/bridge) +"fj" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) +"fk" = (/obj/item/clothing/head/helmet/space/syndicate/black/engie,/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"fl" = (/obj/item/weapon/shard{icon_state = "small"},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"fm" = (/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"fn" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"fo" = (/turf/closed/wall/r_wall,/area/derelict/bridge) +"fp" = (/obj/machinery/door/window{dir = 2; name = "Captain's Quarters"; req_access_txt = "20"},/obj/structure/grille,/turf/open/floor/plating/airless,/area/derelict/bridge) +"fq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"fr" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) +"fs" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/light/small{dir = 4},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"ft" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"fu" = (/obj/item/stack/cable_coil/cut,/turf/open/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/singularity_engine) +"fv" = (/obj/effect/spawner/lootdrop/crate_spawner,/turf/open/floor/plasteel/airless,/area/derelict/bridge/access) +"fw" = (/obj/effect/mob_spawn/derelict_drone,/turf/open/floor/plasteel/airless,/area/derelict/bridge/access) +"fx" = (/turf/open/floor/plasteel/airless,/area/derelict/bridge/access) +"fy" = (/obj/structure/table,/obj/item/device/assembly/flash/handheld,/turf/open/floor/plasteel/airless,/area/derelict/bridge/access) +"fz" = (/obj/structure/table,/obj/machinery/light/small{dir = 1},/obj/item/weapon/electronics/airlock,/turf/open/floor/plasteel/airless,/area/derelict/bridge/access) +"fA" = (/obj/structure/table,/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/weapon/stock_parts/matter_bin,/turf/open/floor/plasteel/airless,/area/derelict/bridge/access) +"fB" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell{charge = 100; maxcharge = 15000},/turf/open/floor/plasteel/airless,/area/derelict/bridge/access) +"fC" = (/turf/open/space,/area/derelict/bridge/access) +"fD" = (/obj/structure/girder,/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"fE" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"fF" = (/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/turf/open/floor/plasteel/airless,/area/derelict/bridge/access) +"fG" = (/obj/item/stack/cable_coil/cut,/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/singularity_engine) +"fH" = (/obj/item/stack/cable_coil/cut,/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) +"fI" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) +"fJ" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/singularity_engine) +"fK" = (/obj/machinery/door/window,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/derelict/bridge/access) +"fL" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) +"fM" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"fN" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"fO" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/open/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/singularity_engine) +"fP" = (/obj/structure/grille,/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/singularity_engine) +"fQ" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/singularity_engine) +"fR" = (/obj/machinery/door/airlock/maintenance{name = "Tech Storage"; req_access_txt = "23"},/turf/open/floor/plasteel/airless,/area/derelict/bridge/access) +"fS" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/open/floor/plating/airless,/area/derelict/bridge/access) +"fT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/airless,/area/derelict/bridge/access) +"fU" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/singularity_engine) +"fV" = (/obj/item/weapon/screwdriver,/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"fW" = (/obj/item/stack/rods,/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) +"fX" = (/obj/item/weapon/shard{icon_state = "medium"},/obj/item/stack/cable_coil/cut,/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"fY" = (/obj/structure/table,/obj/machinery/light/small{dir = 4},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) +"fZ" = (/turf/closed/wall,/area/derelict/hallway/primary) +"ga" = (/obj/item/stack/cable_coil/cut{amount = 2; dir = 2; icon_state = "coil_red2"},/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/hallway/primary) +"gb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/hallway/primary) +"gc" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"gd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating/airless,/area/derelict/bridge/access) +"ge" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel/airless,/area/derelict/bridge/access) +"gf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/airless,/area/derelict/bridge/access) +"gg" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/airless,/area/derelict/bridge/access) +"gh" = (/obj/item/weapon/ore/slag,/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"gi" = (/obj/item/weapon/shard,/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"gj" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"gk" = (/turf/closed/wall/r_wall,/area/derelict/hallway/primary) +"gl" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/airless,/area/derelict/hallway/primary) +"gm" = (/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/hallway/primary) +"gn" = (/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/hallway/primary) +"go" = (/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"gp" = (/obj/structure/window/fulltile,/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"gq" = (/turf/open/floor/plating/airless,/area/derelict/bridge/access) +"gr" = (/turf/open/floor/plasteel/airless,/area/ruin/unpowered/no_grav) +"gs" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) +"gt" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/shard{icon_state = "medium"},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"gu" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"gv" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"gw" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"gx" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating/airless,/area/derelict/hallway/primary) +"gy" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating/airless,/area/derelict/hallway/primary) +"gz" = (/turf/open/floor/plasteel/airless{icon_state = "floorscorched2"},/area/derelict/hallway/primary) +"gA" = (/obj/machinery/light/small,/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"gB" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/turf/open/floor/plasteel/airless,/area/derelict/bridge/access) +"gC" = (/turf/open/floor/plasteel/airless{icon_state = "floorscorched2"},/area/ruin/unpowered/no_grav) +"gD" = (/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/ruin/unpowered/no_grav) +"gE" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"gF" = (/obj/machinery/door/window,/turf/open/floor/plating/airless,/area/derelict/hallway/primary) +"gG" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"gH" = (/turf/open/floor/plasteel/airless{icon_state = "floorscorched1"},/area/ruin/unpowered/no_grav) +"gI" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) +"gJ" = (/obj/structure/grille/broken,/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"gK" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/singularity_engine) +"gL" = (/turf/open/floor/plating/airless,/area/derelict/hallway/primary) +"gM" = (/obj/item/weapon/crowbar,/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"gN" = (/obj/structure/grille,/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"gO" = (/obj/structure/girder,/turf/open/floor/plating/airless,/area/derelict/hallway/primary) +"gP" = (/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/ruin/unpowered/no_grav) +"gQ" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/airless,/area/ruin/unpowered/no_grav) +"gR" = (/obj/item/weapon/shard{icon_state = "small"},/obj/item/weapon/shard{icon_state = "medium"},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"gS" = (/obj/structure/window/reinforced,/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"gT" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"gU" = (/obj/item/stack/cable_coil/cut{amount = 2; dir = 2; icon_state = "coil_red2"},/turf/open/floor/plating/airless,/area/derelict/hallway/primary) +"gV" = (/turf/closed/wall/r_wall,/area/derelict/arrival) +"gW" = (/turf/closed/wall,/area/derelict/arrival) +"gX" = (/turf/closed/wall,/area/derelict/medical/chapel) +"gY" = (/turf/closed/wall,/area/derelict/singularity_engine) +"gZ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"ha" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating/airless,/area/derelict/hallway/primary) +"hb" = (/obj/machinery/light/small,/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/hallway/primary) +"hc" = (/obj/structure/lattice,/obj/structure/window/fulltile,/turf/open/space,/area/ruin/unpowered/no_grav) +"hd" = (/obj/structure/table,/turf/open/floor/plasteel,/area/derelict/arrival) +"he" = (/obj/structure/chair,/turf/open/floor/plasteel,/area/derelict/arrival) +"hf" = (/turf/open/floor/plasteel,/area/derelict/arrival) +"hg" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel,/area/derelict/arrival) +"hh" = (/obj/structure/chair{dir = 8},/obj/item/weapon/pen,/turf/open/floor/plasteel,/area/derelict/arrival) +"hi" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel,/area/derelict/arrival) +"hj" = (/obj/structure/closet/coffin,/turf/open/floor/plasteel/black,/area/derelict/medical/chapel) +"hk" = (/turf/open/floor/plasteel/black,/area/derelict/medical/chapel) +"hl" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/black,/area/derelict/medical/chapel) +"hm" = (/obj/item/weapon/shard,/turf/open/space,/area/space) +"hn" = (/obj/structure/grille,/turf/open/space,/area/derelict/singularity_engine) +"ho" = (/obj/item/weapon/shard,/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) +"hp" = (/turf/open/floor/plasteel/airless{icon_state = "floorscorched2"},/area/derelict/arrival) +"hq" = (/turf/open/floor/plating/airless,/area/derelict/arrival) +"hr" = (/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/arrival) +"hs" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel,/area/derelict/arrival) +"ht" = (/obj/machinery/light/small,/turf/open/floor/plasteel/black,/area/derelict/medical/chapel) +"hu" = (/obj/machinery/door/airlock/medical{name = "Morgue"; req_access_txt = "6"},/turf/open/floor/plasteel/black,/area/derelict/medical/chapel) +"hv" = (/turf/closed/wall,/area/derelict/medical) +"hw" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating/airless,/area/derelict/medical) +"hx" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating/airless,/area/derelict/medical) +"hy" = (/obj/item/weapon/shard,/obj/structure/grille/broken,/turf/open/floor/plating/airless,/area/derelict/medical) +"hz" = (/turf/open/floor/plating/airless,/area/derelict/medical) +"hA" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/open/floor/plating/airless,/area/derelict/medical) +"hB" = (/obj/machinery/door/airlock/external{name = "External Engineering"},/turf/open/floor/plating/airless,/area/space) +"hC" = (/obj/structure/grille,/turf/open/space,/area/space) +"hD" = (/turf/open/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/hallway/primary) +"hE" = (/obj/machinery/door/window{dir = 8},/turf/open/floor/plasteel,/area/derelict/arrival) +"hF" = (/obj/structure/table,/obj/machinery/computer/pod/old{name = "ProComp IIe"; pixel_y = 7; id = "derelict_gun"},/turf/open/floor/plasteel/chapel,/area/derelict/medical/chapel) +"hG" = (/obj/machinery/door/morgue{name = "coffin storage"; req_access_txt = "22"},/turf/open/floor/plasteel/black,/area/derelict/medical/chapel) +"hH" = (/obj/structure/bodycontainer/morgue,/turf/open/floor/plasteel/black,/area/derelict/medical/chapel) +"hI" = (/turf/open/floor/plasteel/airless/white,/area/derelict/medical) +"hJ" = (/obj/item/weapon/firstaid_arm_assembly,/turf/open/floor/plasteel/airless/white,/area/derelict/medical) +"hK" = (/obj/structure/closet,/obj/structure/window/reinforced{dir = 8},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/medical) +"hL" = (/obj/structure/frame/computer,/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/medical) +"hM" = (/obj/machinery/light{dir = 1},/obj/item/weapon/shard{icon_state = "small"},/turf/open/floor/plating/airless,/area/derelict/medical) +"hN" = (/obj/machinery/light/small,/turf/open/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/singularity_engine) +"hO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating/airless,/area/derelict/hallway/primary) +"hP" = (/turf/open/floor/plating,/area/derelict/arrival) +"hQ" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/turf/open/space,/area/space) +"hR" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 8},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/chapel{dir = 1},/area/derelict/medical/chapel) +"hS" = (/turf/open/floor/plasteel/chapel{dir = 4},/area/derelict/medical/chapel) +"hT" = (/turf/open/floor/plasteel/chapel{dir = 1},/area/derelict/medical/chapel) +"hU" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/chapel{dir = 1},/area/derelict/medical/chapel) +"hV" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/airless/white,/area/derelict/medical) +"hW" = (/obj/item/stack/medical/bruise_pack,/turf/open/floor/plasteel/airless/white,/area/derelict/medical) +"hX" = (/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/medical) +"hY" = (/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/medical) +"hZ" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/derelict/medical) +"ia" = (/turf/open/floor/plasteel/airless{icon_state = "damaged5"},/area/ruin/unpowered/no_grav) +"ib" = (/obj/item/stack/cable_coil/cut,/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"ic" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel,/area/derelict/arrival) +"id" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel,/area/derelict/arrival) +"ie" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 8},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/chapel{dir = 8},/area/derelict/medical/chapel) +"if" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/chapel,/area/derelict/medical/chapel) +"ig" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/chapel{dir = 8},/area/derelict/medical/chapel) +"ih" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/chapel,/area/derelict/medical/chapel) +"ii" = (/turf/open/floor/plasteel/chapel{dir = 8},/area/derelict/medical/chapel) +"ij" = (/turf/open/floor/plasteel/chapel,/area/derelict/medical/chapel) +"ik" = (/obj/structure/chair,/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/medical) +"il" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating/airless,/area/derelict/medical) +"im" = (/obj/item/weapon/storage/box/lights/mixed,/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"in" = (/obj/effect/mob_spawn/derelict_drone,/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"io" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"ip" = (/obj/item/stack/cable_coil/cut{amount = 2; dir = 2; icon_state = "coil_red2"},/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/hallway/primary) +"iq" = (/turf/open/floor/plasteel/airless{icon_state = "damaged4"},/area/ruin/unpowered/no_grav) +"ir" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel,/area/derelict/arrival) +"is" = (/obj/structure/chair{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel,/area/derelict/arrival) +"it" = (/obj/structure/window/reinforced,/turf/open/space,/area/space) +"iu" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/grille,/turf/open/space,/area/space) +"iv" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/chapel{dir = 1},/area/derelict/medical/chapel) +"iw" = (/obj/structure/window/reinforced,/turf/open/floor/plasteel/chapel{dir = 4},/area/derelict/medical/chapel) +"ix" = (/obj/structure/window/reinforced,/turf/open/floor/plasteel/chapel{dir = 1},/area/derelict/medical/chapel) +"iy" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/black,/area/derelict/medical/chapel) +"iz" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/derelict/medical/chapel) +"iA" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 4},/turf/open/floor/plasteel/airless/white,/area/derelict/medical) +"iB" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/item/weapon/reagent_containers/glass/beaker,/turf/open/floor/plasteel/airless/white,/area/derelict/medical) +"iC" = (/obj/structure/window/reinforced,/turf/open/floor/plasteel/airless/white,/area/derelict/medical) +"iD" = (/obj/structure/window/reinforced,/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"iE" = (/obj/structure/window/reinforced,/turf/open/floor/plasteel/airless/white,/area/ruin/unpowered/no_grav) +"iF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/hallway/primary) +"iG" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel,/area/derelict/arrival) +"iH" = (/obj/machinery/door/poddoor{id = "derelict_gun"; name = "Derelict Mass Driver"},/turf/open/floor/plating,/area/ruin/unpowered/no_grav) +"iI" = (/turf/open/floor/plating,/area/ruin/unpowered/no_grav) +"iJ" = (/turf/open/floor/plating,/area/derelict/medical/chapel) +"iK" = (/obj/machinery/mass_driver{dir = 8; icon_state = "mass_driver"; id = "derelict_gun"},/obj/machinery/door/window{dir = 4; req_access_txt = "25"},/obj/structure/closet/coffin,/turf/open/floor/plating,/area/derelict/medical/chapel) +"iL" = (/obj/item/weapon/shard{icon_state = "small"},/turf/open/floor/plasteel/airless/white,/area/derelict/medical) +"iM" = (/obj/item/stack/medical/bruise_pack,/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/medical) +"iN" = (/obj/item/stack/medical/ointment,/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/medical) +"iO" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/open/floor/plating/airless,/area/derelict/medical) +"iP" = (/obj/structure/closet/l3closet,/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"iQ" = (/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"iR" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/open/space,/area/space) +"iS" = (/obj/structure/window/reinforced{dir = 1},/turf/open/space,/area/space) +"iT" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/open/space,/area/space) +"iU" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/chapel{dir = 1},/area/derelict/medical/chapel) +"iV" = (/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plasteel/chapel{dir = 4},/area/derelict/medical/chapel) +"iW" = (/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plasteel/chapel{dir = 1},/area/derelict/medical/chapel) +"iX" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/chapel{dir = 4},/area/derelict/medical/chapel) +"iY" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/airless/white,/area/derelict/medical) +"iZ" = (/obj/item/weapon/cigbutt,/turf/open/floor/plasteel/airless/white,/area/derelict/medical) +"ja" = (/obj/machinery/door/airlock/glass{name = "Med-Sci"; req_access_txt = "9"},/turf/open/floor/plating/airless,/area/derelict/medical) +"jb" = (/obj/structure/table,/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"jc" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"jd" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel,/area/derelict/arrival) +"je" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/chapel,/area/derelict/medical/chapel) +"jf" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/airless/white,/area/derelict/medical) +"jg" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/airless/white,/area/derelict/medical) +"jh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/airless/white,/area/derelict/medical) +"ji" = (/obj/item/stack/cable_coil/cut{amount = 2; dir = 2; icon_state = "coil_red2"},/turf/open/floor/plasteel/airless/white,/area/derelict/medical) +"jj" = (/obj/item/stack/cable_coil/cut{amount = 2; dir = 2; icon_state = "coil_red2"},/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/medical) +"jk" = (/obj/item/weapon/reagent_containers/glass/beaker,/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/medical) +"jl" = (/obj/structure/closet/wardrobe/genetics_white,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plasteel/airless/white,/area/derelict/medical) +"jm" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"jn" = (/obj/item/weapon/shard,/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"jo" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"jp" = (/turf/open/floor/plasteel/airless/white,/area/ruin/unpowered/no_grav) +"jq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"jr" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/hallway/primary) +"js" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"jt" = (/obj/item/weapon/pen,/turf/open/floor/plasteel,/area/derelict/arrival) +"ju" = (/obj/machinery/light/small,/turf/open/floor/plasteel/chapel{dir = 4},/area/derelict/medical/chapel) +"jv" = (/obj/machinery/door/window{dir = 8},/turf/open/floor/plasteel/airless,/area/derelict/medical/chapel) +"jw" = (/turf/open/floor/plasteel/airless,/area/derelict/medical/chapel) +"jx" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/airless,/area/derelict/medical/chapel) +"jy" = (/obj/machinery/power/apc{dir = 4; name = "Worn-out APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plasteel/airless,/area/derelict/medical/chapel) +"jz" = (/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/obj/structure/cable,/turf/open/floor/plasteel/airless/white,/area/derelict/medical) +"jA" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/bed,/turf/open/floor/plasteel/airless/white,/area/derelict/medical) +"jB" = (/obj/item/stack/medical/ointment,/turf/open/floor/plasteel/airless/white,/area/derelict/medical) +"jC" = (/obj/structure/bed,/turf/open/floor/plasteel/airless/white,/area/derelict/medical) +"jD" = (/obj/item/stack/cable_coil/cut{amount = 2; dir = 2; icon_state = "coil_red2"},/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/medical) +"jE" = (/obj/machinery/door/airlock/medical{name = "Medical"},/turf/open/floor/plasteel/airless/white,/area/derelict/medical) +"jF" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"jG" = (/obj/structure/window/fulltile,/turf/open/space,/area/ruin/unpowered/no_grav) +"jH" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel,/area/derelict/arrival) +"jI" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/open/floor/plasteel,/area/derelict/arrival) +"jJ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating,/area/derelict/arrival) +"jK" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating,/area/derelict/arrival) +"jL" = (/turf/closed/wall/r_wall,/area/derelict/medical/chapel) +"jM" = (/obj/machinery/door/window,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/airless,/area/derelict/medical/chapel) +"jN" = (/obj/machinery/door/window/southleft,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/airless/white,/area/derelict/medical) +"jO" = (/obj/machinery/door/window/southright,/turf/open/floor/plasteel/airless/white,/area/derelict/medical) +"jP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"jQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/research{name = "Toxins Research"; req_access_txt = "7"},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"jR" = (/obj/item/stack/cable_coil/cut{amount = 2; dir = 2; icon_state = "coil_red2"},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"jS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"jT" = (/obj/structure/lattice,/obj/structure/grille,/turf/open/space,/area/ruin/unpowered/no_grav) +"jU" = (/obj/machinery/door/airlock/external{name = "Arrivals Docking Bay 1"},/turf/open/floor/plating,/area/derelict/arrival) +"jV" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/ruin/unpowered/no_grav) +"jW" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"jX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/airless{icon_state = "floorscorched1"},/area/derelict/hallway/primary) +"jY" = (/turf/open/floor/plasteel/airless{icon_state = "floorscorched1"},/area/derelict/hallway/primary) +"jZ" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"ka" = (/obj/structure/frame/computer,/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"kb" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/airless,/area/ruin/unpowered/no_grav) +"kc" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/airless,/area/ruin/unpowered/no_grav) +"kd" = (/obj/structure/window/fulltile,/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"ke" = (/obj/effect/decal/cleanable/dirt,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"kf" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/airless,/area/ruin/unpowered/no_grav) +"kg" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/window/fulltile,/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"kh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/research{name = "Toxins Research"; req_access_txt = "7"},/turf/open/floor/plasteel/airless,/area/derelict/arrival) +"ki" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/derelict/arrival) +"kj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/derelict/arrival) +"kk" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel,/area/derelict/arrival) +"kl" = (/obj/machinery/door/airlock/command{name = "Teleporter Room"},/turf/open/floor/plasteel/airless,/area/derelict/medical/chapel) +"km" = (/obj/item/stack/cable_coil/cut{amount = 2; dir = 2; icon_state = "coil_red2"},/turf/open/floor/plasteel/airless{icon_state = "floorscorched1"},/area/derelict/hallway/primary) +"kn" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"ko" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"kp" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"kq" = (/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"kr" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/turf/open/floor/plasteel,/area/derelict/arrival) +"ks" = (/obj/machinery/portable_atmospherics/scrubber,/turf/open/floor/plasteel,/area/derelict/arrival) +"kt" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating/airless,/area/derelict/hallway/primary) +"ku" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel/airless{icon_state = "floorscorched1"},/area/derelict/hallway/primary) +"kv" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"kw" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"kx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"ky" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"kz" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"kA" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"kB" = (/obj/structure/window/fulltile,/turf/open/floor/plating/airless,/area/derelict/arrival) +"kC" = (/obj/machinery/portable_atmospherics/pump,/turf/open/floor/plasteel,/area/derelict/arrival) +"kD" = (/obj/machinery/door/window,/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"kE" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"kF" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"kG" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"kH" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"kI" = (/obj/machinery/vending/hydronutrients,/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"kJ" = (/obj/structure/girder,/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"kK" = (/obj/structure/girder,/turf/open/floor/plasteel/airless,/area/ruin/unpowered/no_grav) +"kL" = (/obj/structure/window/fulltile,/turf/open/space,/area/space) +"kM" = (/obj/structure/girder,/turf/open/floor/plating,/area/derelict/arrival) +"kN" = (/obj/structure/bed,/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"kO" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating/airless,/area/derelict/hallway/primary) +"kP" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating/airless,/area/derelict/hallway/primary) +"kQ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/derelict/hallway/primary) +"kR" = (/obj/machinery/door/airlock/security{name = "Security"; req_access = null; req_access_txt = "1"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"kS" = (/obj/machinery/door/window,/turf/open/floor/plasteel/airless,/area/hallway/primary/port) +"kT" = (/obj/machinery/vending/hydroseeds,/turf/open/floor/plasteel/airless,/area/hallway/primary/port) +"kU" = (/obj/item/weapon/cigbutt,/turf/open/space,/area/space) +"kV" = (/obj/machinery/light{dir = 1},/turf/open/floor/plasteel,/area/derelict/arrival) +"kW" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"kX" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell,/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"kY" = (/obj/machinery/vending/sovietsoda,/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"kZ" = (/obj/effect/decal/cleanable/blood/gibs/old,/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"la" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"lb" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/airless,/area/ruin/unpowered/no_grav) +"lc" = (/obj/structure/window/reinforced{dir = 8},/obj/item/stack/cable_coil/cut{amount = 2; dir = 2; icon_state = "coil_red2"},/turf/open/floor/plasteel/airless,/area/ruin/unpowered/no_grav) +"ld" = (/obj/structure/lattice,/obj/item/stack/cable_coil/cut,/turf/open/space,/area/space) +"le" = (/obj/effect/decal/cleanable/blood/splatter,/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"lf" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/obj/effect/decal/cleanable/blood/splatter,/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"lg" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"lh" = (/obj/machinery/door/airlock/maintenance{name = "Atmospherics Access"; req_access_txt = "24"},/turf/open/floor/plating/airless,/area/derelict/hallway/primary) +"li" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/airless,/area/ruin/unpowered/no_grav) +"lj" = (/obj/item/stack/cable_coil/cut{amount = 2; dir = 2; icon_state = "coil_red2"},/turf/open/floor/plasteel/airless,/area/ruin/unpowered/no_grav) +"lk" = (/obj/structure/closet/wardrobe/orange,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/obj/item/weapon/shovel/spade,/obj/item/weapon/cultivator,/turf/open/floor/plasteel/airless,/area/ruin/unpowered/no_grav) +"ll" = (/obj/structure/grille,/turf/open/floor/plating,/area/derelict/arrival) +"lm" = (/obj/structure/closet/wardrobe,/obj/effect/spawner/lootdrop/maintenance{lootcount = 3; name = "3maintenance loot spawner"},/turf/open/floor/plasteel,/area/derelict/arrival) +"ln" = (/obj/item/weapon/stock_parts/manipulator{pixel_x = -15; pixel_y = 10},/obj/item/weapon/stock_parts/manipulator,/turf/open/floor/plating/airless,/area/derelict/hallway/primary) +"lo" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance{lootcount = 3; name = "3maintenance loot spawner"},/turf/open/floor/plating/airless,/area/derelict/hallway/primary) +"lp" = (/obj/structure/chair/stool,/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/blood/old,/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"lq" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/beaker{list_reagents = list("sacid" = 50)},/obj/item/weapon/paper/crumpled/bloody{desc = "Looks like someone started shakily writing a will in space common, but were interrupted by something bloody..."; info = "I, Victor Belyakov, do hereby leave my _- "; name = "unifinished paper scrap"},/obj/item/weapon/pen,/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"lr" = (/obj/structure/table,/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"ls" = (/turf/open/floor/plasteel/airless,/area/derelict/atmospherics) +"lt" = (/turf/open/floor/plating/airless,/area/derelict/atmospherics) +"lu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating/airless,/area/derelict/atmospherics) +"lv" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/derelict/atmospherics) +"lw" = (/obj/machinery/atmospherics/components/unary/tank/air,/turf/open/floor/plating/airless,/area/derelict/atmospherics) +"lx" = (/turf/closed/wall,/area/derelict/atmospherics) +"ly" = (/turf/closed/wall/r_wall,/area/derelict/atmospherics) +"lz" = (/turf/open/space,/area/ruin/unpowered/no_grav) +"lA" = (/obj/structure/lattice,/turf/open/space,/area/ruin/unpowered/no_grav) +"lB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/window/reinforced,/turf/open/floor/plasteel/airless,/area/ruin/unpowered/no_grav) +"lC" = (/obj/structure/window/reinforced,/turf/open/floor/plasteel/airless,/area/ruin/unpowered/no_grav) +"lD" = (/obj/structure/grille,/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"lE" = (/obj/structure/bed,/turf/open/floor/plasteel/airless,/area/ruin/unpowered/no_grav) +"lF" = (/turf/open/floor/plasteel/airless/floorgrime,/area/derelict/hallway/primary) +"lG" = (/turf/open/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/hallway/primary) +"lH" = (/obj/item/ammo_casing/a357,/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"lI" = (/obj/structure/table,/obj/item/device/healthanalyzer,/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"lJ" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/turf/open/floor/plating/airless,/area/derelict/atmospherics) +"lK" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plating/airless,/area/derelict/atmospherics) +"lL" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{icon_state = "connector_map"; dir = 8},/turf/open/floor/plating/airless,/area/derelict/atmospherics) +"lM" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 6},/turf/open/floor/plating/airless,/area/derelict/atmospherics) +"lN" = (/obj/machinery/atmospherics/pipe/manifold/cyan/hidden,/obj/machinery/meter,/turf/open/floor/plating/airless,/area/derelict/atmospherics) +"lO" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden{icon_state = "intact"; dir = 9},/turf/open/floor/plating/airless,/area/derelict/atmospherics) +"lP" = (/obj/machinery/door/airlock/maintenance{name = "Atmospherics Access"; req_access_txt = "24"},/turf/open/floor/plating/airless,/area/derelict/atmospherics) +"lQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/airless,/area/ruin/unpowered/no_grav) +"lR" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"lS" = (/obj/structure/closet/wardrobe/mixed,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plasteel,/area/derelict/arrival) +"lT" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/turf/open/floor/plasteel/airless,/area/derelict/atmospherics) +"lU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plating/airless,/area/derelict/atmospherics) +"lV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{icon_state = "intact"; dir = 5},/turf/open/floor/plating/airless,/area/derelict/atmospherics) +"lW" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/components/binary/valve,/turf/open/floor/plating/airless,/area/derelict/atmospherics) +"lX" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"lY" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/derelict/arrival) +"lZ" = (/obj/machinery/door/airlock/external{name = "Escape Airlock"},/turf/open/floor/plating,/area/derelict/arrival) +"ma" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/open/floor/plating/airless,/area/derelict/atmospherics) +"mb" = (/obj/structure/lattice,/obj/item/stack/cable_coil/cut,/turf/open/space,/area/ruin/unpowered/no_grav) +"mc" = (/obj/machinery/door/window{dir = 8},/obj/item/weapon/shard{icon_state = "medium"},/turf/open/floor/plasteel/airless,/area/ruin/unpowered/no_grav) +"md" = (/turf/closed/wall,/area/derelict/hallway/secondary) +"me" = (/obj/structure/girder,/turf/open/floor/plating/airless,/area/derelict/hallway/secondary) +"mf" = (/turf/closed/wall/r_wall,/area/derelict/hallway/secondary) +"mg" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"mh" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"mi" = (/obj/item/ammo_casing/a357{pixel_x = -5},/obj/item/ammo_casing/a357{pixel_x = 5; pixel_y = 6},/obj/item/ammo_casing/a357,/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"mj" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plating/airless,/area/derelict/atmospherics) +"mk" = (/turf/open/floor/plasteel/airless{icon_state = "floorscorched1"},/area/derelict/atmospherics) +"ml" = (/obj/structure/window/fulltile,/turf/open/floor/plating/airless,/area/derelict/hallway/secondary) +"mm" = (/obj/structure/grille,/obj/item/weapon/shard,/obj/item/weapon/shard{icon_state = "medium"},/turf/open/floor/plating/airless,/area/space) +"mn" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"mo" = (/obj/structure/window/reinforced,/turf/open/floor/plasteel/airless,/area/derelict/atmospherics) +"mp" = (/turf/open/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/atmospherics) +"mq" = (/turf/open/floor/plasteel{icon_state = "damaged2"; initial_gas_mix = "TEMP=2.7"},/area/derelict/atmospherics) +"mr" = (/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/atmospherics) +"ms" = (/turf/open/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/atmospherics) +"mt" = (/obj/structure/window/fulltile,/turf/open/space,/area/derelict/atmospherics) +"mu" = (/obj/item/stack/rods,/turf/open/floor/plasteel/airless,/area/derelict/hallway/secondary) +"mv" = (/obj/item/weapon/shard{icon_state = "small"},/turf/open/space,/area/space) +"mw" = (/obj/structure/frame/computer,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/airless,/area/derelict/atmospherics) +"mx" = (/obj/machinery/portable_atmospherics/canister,/turf/open/floor/plasteel/airless,/area/derelict/atmospherics) +"my" = (/obj/machinery/light/small,/turf/open/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/atmospherics) +"mz" = (/obj/structure/lattice,/turf/open/space,/area/derelict/atmospherics) +"mA" = (/obj/item/stack/cable_coil/cut,/turf/open/space,/area/ruin/unpowered/no_grav) +"mB" = (/obj/structure/door_assembly/door_assembly_mai{name = "airlock assembly"},/turf/open/floor/plasteel/airless,/area/derelict/hallway/secondary) +"mC" = (/obj/item/weapon/wirecutters,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/airless,/area/derelict/hallway/secondary) +"mD" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/derelict/hallway/secondary) +"mE" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plating/airless,/area/derelict/hallway/primary) +"mF" = (/obj/structure/chair{dir = 1},/turf/open/floor/plating/airless,/area/derelict/atmospherics) +"mG" = (/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/atmospherics) +"mH" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/ruin/unpowered/no_grav) +"mI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/airless,/area/derelict/hallway/secondary) +"mJ" = (/obj/item/stack/cable_coil/cut,/turf/open/floor/plating/airless,/area/derelict/hallway/primary) +"mK" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plating/airless,/area/derelict/hallway/primary) +"mL" = (/obj/structure/window/reinforced,/turf/open/floor/plating/airless,/area/derelict/atmospherics) +"mM" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/open/floor/plasteel/airless,/area/derelict/atmospherics) +"mN" = (/turf/open/floor/plasteel/airless{icon_state = "damaged1"},/area/derelict/atmospherics) +"mO" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/space,/area/ruin/unpowered/no_grav) +"mP" = (/obj/machinery/portable_atmospherics/pump,/turf/open/floor/plating/airless,/area/derelict/atmospherics) +"mQ" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance{lootcount = 8; name = "8maintenance loot spawner"},/turf/open/floor/plating/airless,/area/derelict/atmospherics) +"mR" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating/airless,/area/derelict/hallway/primary) +"mS" = (/turf/open/space,/area/derelict/atmospherics) +"mT" = (/obj/machinery/light/small,/turf/open/floor/plasteel/airless,/area/derelict/atmospherics) +"mU" = (/turf/open/floor/plasteel/airless,/area/derelict/hallway/secondary) +"mV" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/airless,/area/derelict/hallway/secondary) +"mW" = (/obj/machinery/door/airlock/maintenance{name = "Aux Storage"; req_access_txt = "23"},/turf/open/floor/plating/airless,/area/derelict/hallway/secondary) +"mX" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/obj/machinery/power/apc{dir = 8; name = "Worn-out APC"; pixel_x = -24; pixel_y = 0},/turf/open/floor/plasteel/airless,/area/derelict/hallway/secondary) +"mY" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/derelict/hallway/secondary) +"mZ" = (/turf/open/floor/plating/airless,/area/derelict/hallway/secondary) +"na" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/airless,/area/derelict/hallway/secondary) +"nb" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/airless,/area/derelict/hallway/secondary) +"nc" = (/obj/machinery/power/apc{dir = 1; name = "Worn-out APC"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel/airless,/area/derelict/atmospherics) +"nd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/airless,/area/derelict/hallway/secondary) +"ne" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/airless{icon_state = "derelict9"},/area/derelict/hallway/secondary) +"nf" = (/obj/machinery/light/small{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/airless{icon_state = "derelict10"},/area/derelict/hallway/secondary) +"ng" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/airless{icon_state = "derelict11"},/area/derelict/hallway/secondary) +"nh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/airless{icon_state = "derelict12"},/area/derelict/hallway/secondary) +"ni" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/airless{icon_state = "derelict13"},/area/derelict/hallway/secondary) +"nj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/airless{icon_state = "derelict14"},/area/derelict/hallway/secondary) +"nk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/airless{icon_state = "derelict15"},/area/derelict/hallway/secondary) +"nl" = (/obj/machinery/light/small{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/airless{icon_state = "derelict16"},/area/derelict/hallway/secondary) +"nm" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/airless,/area/derelict/hallway/secondary) +"nn" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/airless,/area/derelict/hallway/secondary) +"no" = (/turf/open/floor/plasteel/airless{icon_state = "derelict1"},/area/derelict/hallway/secondary) +"np" = (/turf/open/floor/plasteel/airless{icon_state = "derelict2"},/area/derelict/hallway/secondary) +"nq" = (/turf/open/floor/plasteel/airless{icon_state = "derelict3"},/area/derelict/hallway/secondary) +"nr" = (/turf/open/floor/plasteel/airless{icon_state = "derelict4"},/area/derelict/hallway/secondary) +"ns" = (/turf/open/floor/plasteel/airless{icon_state = "derelict5"},/area/derelict/hallway/secondary) +"nt" = (/turf/open/floor/plasteel/airless{icon_state = "derelict6"},/area/derelict/hallway/secondary) +"nu" = (/turf/open/floor/plasteel/airless{icon_state = "derelict7"},/area/derelict/hallway/secondary) +"nv" = (/turf/open/floor/plasteel/airless{icon_state = "derelict8"},/area/derelict/hallway/secondary) +"nw" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/airless,/area/derelict/hallway/secondary) +"nx" = (/obj/structure/lattice,/turf/open/space,/area/derelict/hallway/secondary) +"ny" = (/obj/structure/grille,/obj/structure/window/reinforced,/turf/open/floor/plating/airless,/area/derelict/hallway/secondary) +"nz" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating/airless,/area/derelict/hallway/secondary) +"nA" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/derelict/hallway/secondary) +"nB" = (/turf/closed/wall/r_wall,/area/derelict/se_solar) +"nC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/engineering{name = "Aft Solar Access"; req_access_txt = "10"},/turf/open/floor/plasteel/airless,/area/derelict/se_solar) +"nD" = (/obj/machinery/door/airlock/external{name = "Escape Airlock"},/turf/open/floor/plating/airless,/area/derelict/hallway/secondary) +"nE" = (/obj/machinery/door/firedoor,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating/airless,/area/derelict/hallway/secondary) +"nF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/airless,/area/derelict/se_solar) +"nG" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/airless,/area/derelict/hallway/secondary) +"nH" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating/airless,/area/derelict/hallway/secondary) +"nI" = (/obj/structure/girder/reinforced,/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"nJ" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/closed/wall/r_wall,/area/derelict/se_solar) +"nK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/closed/wall/r_wall,/area/derelict/se_solar) +"nL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/door/airlock/engineering{name = "Aft Solar Access"; req_access_txt = "10"},/turf/open/floor/plasteel/airless,/area/derelict/se_solar) +"nM" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating/airless,/area/derelict/se_solar) +"nN" = (/obj/structure/grille,/turf/open/floor/plating/airless,/area/derelict/hallway/secondary) +"nO" = (/obj/machinery/power/smes,/obj/structure/cable,/turf/open/floor/plasteel/airless,/area/derelict/se_solar) +"nP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/airless,/area/derelict/se_solar) +"nQ" = (/turf/open/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/se_solar) +"nR" = (/turf/open/floor/plasteel/airless,/area/derelict/se_solar) +"nS" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel/airless,/area/derelict/se_solar) +"nT" = (/obj/docking_port/stationary{dheight = 0; dir = 2; dwidth = 11; height = 22; id = "whiteship_z4"; name = "KSS13: Derelict"; width = 35},/turf/open/space,/area/space) +"nU" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/effect/mob_spawn/derelict_drone,/turf/open/floor/plasteel/airless,/area/derelict/se_solar) +"nV" = (/turf/open/floor/plating/airless,/area/derelict/se_solar) +"nW" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/airless,/area/derelict/se_solar) +"nX" = (/obj/item/weapon/storage/toolbox/syndicate,/turf/open/floor/plasteel/airless,/area/derelict/se_solar) +"nY" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/obj/machinery/power/solar_control{id = "derelictsolar"; name = "Primary Solar Control"; track = 0},/turf/open/floor/plasteel/airless,/area/derelict/se_solar) +"nZ" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 8; environ = 0; equipment = 0; lighting = 0; locked = 0; name = "Worn-out APC"; pixel_x = -24; pixel_y = 0},/turf/open/floor/plating/airless,/area/derelict/se_solar) +"oa" = (/obj/item/weapon/paper{desc = ""; info = "The Syndicate have cunningly disguised a Syndicate Uplink as your PDA. Simply enter the code \"678 Bravo\" into the ringtone select to unlock its hidden features.

Objective #1. Kill the God damn AI in a fire blast that it rocks the station. Success!
Objective #2. Escape alive. Failed."; name = "Mission Objectives"},/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/se_solar) +"ob" = (/obj/machinery/light/small{dir = 4},/obj/item/clothing/head/helmet/space/syndicate/black/red,/turf/open/floor/plasteel/airless,/area/derelict/se_solar) +"oc" = (/obj/item/stack/rods,/turf/open/floor/plating/airless,/area/derelict/hallway/secondary) +"od" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/turf/open/floor/plasteel/airless,/area/ruin/unpowered/no_grav) +"oe" = (/obj/machinery/light/small,/turf/open/floor/plasteel/airless,/area/derelict/se_solar) +"of" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/airless,/area/derelict/se_solar) +"og" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/turf/open/floor/plasteel/airless,/area/derelict/se_solar) +"oh" = (/obj/item/clothing/suit/space/syndicate/black/red,/turf/open/floor/plasteel/airless,/area/derelict/se_solar) +"oi" = (/obj/effect/decal/remains/human{desc = "This guy seemed to have died in terrible way! Half his remains are dust."; icon_state = "remains"; name = "Syndicate agent remains"},/turf/open/floor/plasteel/airless,/area/derelict/se_solar) +"oj" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/airless,/area/derelict/se_solar) +"ok" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/external,/turf/open/floor/plasteel/airless,/area/derelict/se_solar) +"ol" = (/obj/structure/cable,/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/derelict_aft) +"om" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/derelict_aft) +"on" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "derelictsolar"; name = "Derelict Solar Array"},/turf/open/floor/plasteel/airless,/area/solar/derelict_aft) +"oo" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/derelict_aft) +"op" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "derelictsolar"; name = "Derelict Solar Array"},/turf/open/floor/plating/airless{icon_state = "platingdmg3"},/area/solar/derelict_aft) +"oq" = (/turf/open/floor/plating/airless,/turf/open/floor/plating/airless{icon_state = "platingdmg2"},/area/solar/derelict_aft) +"or" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/space,/area/solar/derelict_aft) +"os" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/space,/area/solar/derelict_aft) +"ot" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/space,/area/solar/derelict_aft) +"ou" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/derelict_aft) +"ov" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/space,/area/solar/derelict_aft) +"ow" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/space,/area/solar/derelict_aft) +"ox" = (/obj/structure/cable,/obj/machinery/power/solar{id = "derelictsolar"; name = "Derelict Solar Array"},/turf/open/floor/plasteel/airless,/area/solar/derelict_aft) +"oy" = (/turf/open/floor/plating/airless{icon_state = "platingdmg1"},/area/solar/derelict_aft) +"oz" = (/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/derelict_aft) +"oA" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/space,/area/solar/derelict_aft) +"oB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/derelict_aft) +"oC" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/space,/area/solar/derelict_aft) +"oD" = (/obj/machinery/power/tracker,/obj/structure/cable,/turf/open/floor/plasteel/airless,/area/solar/derelict_aft) (1,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -gw -gH -gP -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(2,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -be -gb -gb -gx -cE -gQ -gb -gb -be -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(3,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -mm -mm -mm -mm -gc -gj -gy -mN -gR -gj -gc -mU -ax -ax -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(4,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -mm -fG -mm -fR -gd -gk -gz -mN -gS -go -gd -mU -bx -fr -ay -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(5,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -mm -fG -mm -mm -ge -gl -gA -mN -gT -gn -ge -mU -ay -da -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(6,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -mm -fG -fG -mm -gd -gm -gz -gI -gS -hb -hl -mU -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(7,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -mm -fG -fL -mm -gf -gn -ge -gn -ge -gn -ge -mU -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(8,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -mm -fH -fH -mm -gd -go -gd -go -gU -go -gd -mU -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(9,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -mm -fH -fH -mm -ge -gn -ge -gn -gf -gn -ge -mU -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(10,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -mm -fH -fH -fS -gd -go -gd -go -gd -go -gd -mU -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(11,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -mm -fH -mm -mm -mm -mm -mm -mm -mm -mm -hm -mU -ab -ab -ay -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(12,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -mm -fH -mm -fT -fT -fT -fT -fT -fT -mm -mR -mU -da -ay -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(13,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -mm -fI -fM -fH -fH -fH -gB -fH -fH -mm -mR -mU -hF -bx -ay -ax -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(14,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -mm -fG -mm -fI -fT -fT -fT -fT -fH -mm -mR -mU -mU -hO -mU -mU -aa -aa -aa -aa -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(15,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -mm -mm -mm -fH -fH -fH -gC -fH -fH -mm -hn -mm -lS -ma -lS -lS -lS -aa -aa -aa -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(16,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -mm -fH -fT -fT -fT -fT -fL -mm -mR -mm -hG -mg -mj -lZ -mg -ab -ab -aa -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(17,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -mm -fH -fH -fH -fH -fH -fH -mm -ho -hy -hH -mg -lZ -mg -lY -lZ -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(18,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -mm -mm -mm -fM -mm -fM -mm -mm -mm -mm -mV -hP -nd -lS -lS -lS -lS -mg -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(19,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -my -mD -gg -mD -gD -mD -mD -gg -gD -lS -ma -hQ -hU -lS -ni -nl -lS -mg -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(20,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -fN -mD -mD -mD -mD -mD -mD -mD -mD -lS -ma -ma -ne -lS -mW -hQ -lS -mg -mg -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(21,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -fN -mD -mD -mD -mD -mD -mD -mD -mD -lS -mW -ma -ne -ma -ma -iq -lS -iE -mg -mg -aa -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(22,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -fN -fV -mD -mD -mD -mD -mD -mD -mD -lS -ma -ma -ne -lS -lS -lS -lS -mX -mV -mg -aa -ab -aa -aa -aa -aa -aa -ab -aa -aa -aa -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(23,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -li -li -li -ab -ab -aa -aa -aa -aa -my -mD -mD -mD -mD -mD -mD -hc -hp -lS -hG -ma -ne -lS -ni -nl -lS -mV -iO -mg -mg -ab -aa -aa -aa -aa -ab -aa -aa -aa -aa -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(24,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -li -li -li -li -li -li -li -ab -aa -aa -aa -mz -fW -gh -mD -gE -gJ -gV -hd -hq -lS -ma -hR -ne -lS -mW -hQ -lS -iF -ma -mV -mg -ab -ab -ab -ab -aa -aa -aa -aa -ab -aa -ab -ab -aa -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(25,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -li -li -eG -dw -lA -li -li -ab -ab -aa -aa -fO -fX -mF -mF -mL -mD -mD -he -hr -lS -ma -ma -ne -ib -ma -nl -lS -mV -ns -ma -mg -mg -lS -ab -ab -ab -ab -ab -ab -ab -ab -as -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(26,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -kD -kD -kD -kD -kD -kD -kD -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -li -li -lA -ln -lt -lA -lA -li -li -ab -aa -fJ -mA -mA -mG -gp -mF -gK -gW -hf -hs -lS -lS -lS -hV -lS -lS -lS -lS -lS -lS -lS -lS -ny -lS -aa -aa -aa -aa -ab -aa -aa -aa -nv -nT -nT -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(27,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -kD -aJ -kE -aT -kE -kD -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -aa -aa -li -li -li -li -li -li -li -li -eC -lO -eP -eP -ff -li -li -li -aa -aa -mB -mA -mA -gq -mG -mF -mD -he -mD -lS -mX -nb -ne -ma -nj -ir -ma -ma -nb -ma -ma -jf -lS -mg -aa -mg -mg -ab -mg -aa -aa -nw -nR -nT -nZ -ay -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(28,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -kD -kD -aK -kD -kD -kE -kD -kH -kH -kH -kH -kH -kH -kH -kH -kH -kH -ab -ab -ab -ab -ab -aa -aa -aa -ab -ab -ab -ab -li -li -li -li -li -li -li -li -li -eD -lJ -er -er -dF -li -li -li -mn -ls -my -fY -mH -mA -mA -gL -mF -hf -my -lS -ma -ma -ne -ma -nj -is -iv -iG -iP -ma -ma -ma -lS -mg -mg -nL -mg -lS -mg -ab -mg -nv -nR -nT -oa -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(29,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -kD -aU -ba -kD -kG -kG -kG -kG -kG -kG -kQ -kQ -bQ -aa -aa -ab -aa -aa -aa -aa -aa -ab -ab -ab -ab -li -li -dq -dE -ls -lA -ln -lA -lA -lA -lA -lA -lo -lA -ln -lA -ln -lt -ls -ls -fP -ab -mA -mA -mA -mG -mF -mF -mS -hz -mP -mP -hW -ng -nj -is -iw -iH -iQ -iI -ix -ma -lS -mC -lY -mg -mg -mg -mg -nI -mg -nv -nR -nR -ob -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(30,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -kD -kD -aT -kD -kH -kH -kH -kH -kH -kH -kH -kH -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ax -ab -li -li -dr -dE -lA -lo -lt -ln -lA -lA -lA -lo -lo -lt -lo -lA -fs -lo -mn -mt -ab -ab -mA -mA -mA -mA -mG -mG -ht -hA -ma -ma -ma -lT -ij -ma -ix -iI -iI -iI -ix -ma -lS -lZ -nI -lZ -ma -lS -lZ -mg -mg -nv -nU -nR -ob -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(31,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -kD -kE -kE -kE -kE -kE -kE -kE -kE -bc -kD -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -ax -cF -li -li -ln -ds -dE -lA -lt -ln -dZ -eo -eo -eE -lA -lo -lG -fg -eo -mf -fx -ab -ab -be -ab -ab -aa -aa -mA -mA -mO -my -lS -ma -ma -ma -lT -ib -ma -ma -ix -ma -ma -ma -ma -ib -ma -ma -nM -ma -lS -lY -nO -lY -nv -nV -nR -ob -ac -aa -aa -aa -kd -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(32,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -kD -bb -kD -kD -kD -kD -kD -kD -bi -kD -kD -aa -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -li -li -lo -dt -dE -lA -ln -dZ -ei -ep -ei -eF -eH -lt -fb -fh -ls -ls -ls -ab -ab -ab -ab -ab -ab -aa -gM -mA -hg -my -lS -ma -mQ -ma -lT -ik -ma -ma -ma -mQ -ma -ma -ma -lS -ns -ma -ma -lY -lS -ma -lZ -ma -jx -nR -nR -nv -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(33,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -kD -bc -kE -kE -kE -kE -kE -kE -kE -kD -kD -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -li -cW -dj -dt -dF -dN -dR -ea -ej -lo -lo -ls -ls -ls -ls -ls -ls -ln -ls -mf -ls -lA -li -li -ab -ab -my -gX -my -my -lS -lS -lS -lS -ic -lS -lS -lS -lS -lS -lS -lS -lS -mh -lS -lS -lS -lS -lS -lS -lS -lS -nv -nR -nR -ob -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(34,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -kD -kD -kE -kD -kD -kD -kD -kD -kD -kD -kD -aa -aa -aa -aa -aa -aa -ab -ab -kS -kS -kS -kS -li -li -dk -ln -ls -lo -ln -eb -ek -ls -ls -lG -ls -ls -ls -ls -ln -lt -ln -lH -fK -lA -li -li -li -ab -my -mA -hh -my -lS -ma -nb -ma -lT -nb -ma -lS -nn -iR -iY -no -jg -nB -jm -jr -nN -no -nn -no -nq -nP -nv -nR -nR -ob -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(35,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -kD -kD -kE -kE -kE -kE -kE -kE -kE -bc -kD -aa -aa -aa -aa -aa -bY -kW -kW -kX -ld -cz -cG -cR -cX -lp -du -lz -ln -lt -lG -ls -ls -ls -aa -aa -aa -aa -aa -ls -ls -mi -er -lA -ln -lA -li -li -li -my -gX -my -my -lS -ma -hQ -ma -lT -ma -ma -lS -no -iS -iZ -nn -no -no -jn -nn -jt -nn -no -jv -nq -nP -nq -jA -nR -ob -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(36,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -kD -kD -kD -kD -kD -kD -kD -kD -bi -kD -kD -aa -aa -ab -aa -ab -kU -cd -cl -ld -ld -cA -lg -ld -kS -dl -cB -li -lB -ln -ls -ls -ls -ls -aa -aa -aa -aa -aa -ls -ls -ln -lA -ln -lo -fZ -li -gr -li -my -fy -bx -mD -lS -ma -ma -ma -id -mP -nm -lS -iJ -no -ja -no -no -no -no -no -nn -no -nn -nu -nn -nq -nv -nW -nR -ob -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(37,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -kD -bc -kE -kE -kE -kE -kE -kE -kE -kD -kD -aa -ay -ab -aa -kS -bZ -kX -cm -ld -ld -cB -cI -cS -cY -lq -lw -li -lA -ls -ec -ls -ls -ls -aa -aa -aa -aa -aa -ls -ls -lo -lA -ln -lo -lt -ls -gs -li -gN -ay -ay -fU -lS -ma -hR -ma -lT -ma -ma -lS -no -iT -iT -nu -no -no -no -no -no -no -no -no -nJ -nQ -nv -jB -jK -ob -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(38,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -kD -kD -kE -kD -kD -kD -kD -kD -kD -kD -kD -aa -ac -as -aa -kS -kU -kW -kW -cr -ld -cC -lg -ld -kS -lr -dv -dH -ls -ls -ls -ls -ls -ls -aa -aa -aa -aa -aa -ls -lo -lt -lA -eR -lo -ln -li -mK -li -el -ay -ay -bx -lS -ma -ma -ma -lT -ma -ma -lS -np -iU -jb -nu -nn -no -no -no -nn -ju -nJ -no -no -nJ -nv -jC -jL -nv -as -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(39,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -kD -kD -kE -kE -kE -kE -kE -kE -kE -bc -kD -aa -ac -as -aa -kS -ca -kW -cn -kU -kW -cD -cJ -cT -cZ -kS -lx -li -lA -lA -ls -ls -ls -ls -aa -aa -aa -aa -aa -ls -ln -dt -mo -lA -ln -lA -li -li -li -ab -ay -ay -bC -lS -lS -lS -ma -lT -ma -ma -lS -iK -iV -no -nn -no -nC -nn -nn -no -nn -ju -no -nn -nJ -nv -jD -jM -ob -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(40,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -kD -kD -kD -kD -kD -kD -kD -kD -bj -kE -kD -kD -ac -as -aa -kS -kS -ab -aa -aa -ab -kS -kS -li -li -ls -dw -ls -lA -ln -lH -lK -ls -ls -ls -ls -ls -ls -ls -ls -ls -du -dE -lA -lA -li -li -li -ab -aa -aa -hi -fd -lS -lS -lS -ma -lT -ma -ma -lS -iK -iW -nn -nn -nz -jj -jo -no -no -no -no -jw -no -no -nv -jE -jN -ob -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(41,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -kD -kD -kD -kD -kD -kD -kD -kD -bj -kD -kD -kD -ab -ab -aa -aa -aa -aa -aa -aa -aa -ab -ab -li -li -ln -ln -lA -ln -ln -lI -lK -ls -ls -ls -ls -ls -ls -ls -ls -ls -dt -dE -ln -lA -li -li -ab -ab -ab -ab -fc -ay -bC -lS -lS -mW -lT -ma -ma -lS -nq -nq -nq -nq -nq -nD -no -no -no -no -nE -no -no -no -nv -jF -jO -ob -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(42,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -kD -kD -kD -kD -kE -kE -bo -bq -kE -kE -bI -kD -ay -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -li -li -lt -ln -lt -lo -ln -lJ -em -eq -lO -lO -lQ -eQ -ls -fi -ls -ft -mi -dF -lo -ln -li -li -ab -aa -aa -ab -ay -bC -fU -lS -lS -ma -lT -ma -ma -iy -no -nt -nn -nt -nt -nD -no -nD -nD -nJ -ju -nC -nq -nq -nv -jG -jP -ob -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(43,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -kD -kD -kD -bc -kE -kE -kE -kE -ba -kD -kD -kD -aa -aa -aa -aa -aa -aa -aa -aa -aa -ax -cK -li -li -ln -ln -lA -lo -ln -lA -lJ -er -er -dF -eH -ls -lU -fj -me -me -fz -ln -lt -lo -li -li -ab -aa -gO -ab -ay -ay -fU -lS -ma -hX -ie -ma -ma -lS -nq -nq -nq -nq -nq -nE -nF -nJ -nJ -nC -nC -nF -nq -nP -nv -jH -jQ -ob -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(44,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -kD -kD -kD -kD -bh -kE -bp -bv -kE -kD -bJ -kD -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ax -ab -li -li -dx -lA -lA -lt -lo -ln -lA -ls -ls -lA -lA -ls -lA -lo -lt -lo -ln -lA -li -li -ab -aa -fy -aa -ab -ay -ay -fU -lS -ma -lT -ma -lW -lW -lW -nr -nr -nr -nr -nr -nF -nG -nF -nq -nq -nF -nG -nG -nP -nv -jI -jR -nv -dD -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(45,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -kD -kD -kD -bc -kE -kE -kE -kE -kJ -aT -ba -kD -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -li -li -dy -ls -lA -ln -lt -lo -es -lA -lA -eJ -eR -lA -lA -lo -lA -lo -lA -lA -li -li -aa -aa -fy -aa -aa -eI -bx -bC -lS -ma -lT -ma -lW -br -ay -aa -aa -aa -aa -ax -aa -ab -ab -aa -bx -bx -aa -ab -aa -nv -nW -nR -ob -dD -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(46,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -kD -kD -kD -kD -bi -kE -bq -bq -bc -kD -bK -kD -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -li -li -li -li -li -li -li -li -li -ln -eK -eS -ln -lH -li -li -li -li -li -li -ab -ay -ay -gF -ay -gY -fU -fU -gY -lS -ma -lT -ma -lW -br -ay -aa -ab -ab -ab -ax -ab -ab -ab -aa -aa -da -aa -ab -aa -nv -nW -nR -ob -dD -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(47,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ay -kD -kG -kD -bj -kD -kD -kD -kD -kD -kD -kD -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ax -ax -ax -ax -ax -ax -ax -li -lA -eL -eL -lV -eF -li -li -li -li -li -li -ab -lS -lS -lS -lS -lS -lS -lS -lS -lS -ma -lT -ma -lW -ip -ay -ab -ab -aa -ab -ax -aa -bx -ab -ab -ab -ab -ab -as -aa -nv -nW -nR -ob -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(48,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ay -kD -kG -kD -aT -kD -kD -kD -kD -kD -kD -kD -kD -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -aa -aa -aa -aa -aa -aa -ab -ab -ax -li -ls -ln -ln -lt -lA -li -li -aa -aa -aa -aa -mg -mj -lY -lZ -lS -ma -ma -ma -ma -ma -ma -lT -ma -lW -br -ay -dD -ab -aa -ab -ax -ab -ax -js -ab -ax -ay -as -as -as -nv -nW -nR -ob -ac -aa -aa -aa -aa -aa -aa -aa -ax -ac -ac -ac -ac -ac -ac -ab -ac -ac -ac -ac -"} -(49,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ay -kD -kG -kD -kE -kJ -kK -kK -bA -bF -kG -kG -kD -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -li -li -lA -eT -lA -li -li -ab -aa -mg -mg -lX -ga -lY -lY -gG -gt -gZ -mP -mP -hB -mP -mP -hY -ma -lW -br -br -ay -ab -aa -iu -aa -aa -cL -ab -aa -ax -ay -aa -ab -aa -nv -nW -nR -ob -ac -aa -aa -aa -aa -ab -ab -ab -ax -aa -aa -aa -aa -aa -aa -aa -ab -aa -aa -ac -"} -(50,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ay -kD -kG -kD -kD -kD -kG -kG -kK -kG -kG -kG -kD -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -li -li -li -li -lW -lW -lW -ab -fk -fB -mg -lY -lY -lZ -gt -lZ -lZ -ma -ma -ma -lT -ma -ma -hZ -mP -il -it -iz -br -ay -ay -ay -aa -aa -aa -ab -aa -aa -aa -aa -ab -aa -nv -nW -nR -nv -ax -ax -jX -ab -ab -iu -ay -ay -ax -aa -aa -kq -or -kx -aa -kq -ot -kx -aa -ac -"} -(51,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ay -kD -kG -kG -kG -kG -kG -kG -kK -kG -kG -kG -kD -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ax -ax -aa -ab -li -li -lW -fk -lX -lX -mj -lY -lY -lZ -lZ -lZ -lZ -ma -lS -ma -ma -mQ -lT -ma -ma -lW -lW -lW -br -iA -iL -eO -iA -ay -fA -aa -aa -ab -aa -aa -aa -aa -ab -aa -nv -nW -nR -ob -ac -aa -ay -ab -ay -ay -bx -br -aa -aa -aa -kq -kt -kx -aa -kq -kz -kx -aa -ac -"} -(52,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ay -kD -kG -kG -kG -kG -kD -kD -kK -kD -kD -kD -kD -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -kV -kV -kV -kV -kV -lS -lS -mc -lS -lS -lS -lS -lS -lS -ma -lS -lS -lS -lS -lS -lS -lS -lT -lS -lS -lW -if -nk -br -br -iM -br -br -br -ax -ab -ab -ab -ab -ab -ab -ab -ab -ay -nv -nW -nR -ob -ac -aa -ay -ay -ay -bx -bB -br -od -aa -aa -kq -kt -kx -aa -kq -kt -kx -aa -ac -"} -(53,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ax -kD -kG -kG -kG -kG -kD -kD -kN -kD -kD -kD -kD -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -cL -aa -aa -aa -aa -aa -aa -kV -et -eB -lM -kV -eU -lX -eU -lS -lZ -lZ -ma -lS -ma -ma -ma -lS -ma -mg -ma -ma -ma -lT -ma -ma -lW -lW -im -ax -ax -iN -fo -dG -je -ax -ay -ay -aa -aa -ab -aa -aa -ay -br -nv -nW -nR -ob -ac -aa -od -od -od -od -on -od -od -ab -aa -aa -os -aa -aa -aa -kA -aa -aa -ac -"} -(54,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ay -kD -kG -kG -kG -kG -kD -kK -kK -bE -bL -bF -kD -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -cL -kV -eu -lM -lM -eM -eV -lY -md -lS -mg -mg -ma -lS -md -lZ -lZ -lS -md -ma -ma -hj -ma -lT -lZ -hR -ma -lW -lW -ax -ip -br -br -br -br -ax -br -fA -ay -aa -ab -aa -aa -ay -br -nv -nW -nR -ob -ac -aa -jY -kb -ke -kg -kk -oh -kn -ko -kp -kr -ku -kr -ot -kr -ku -kr -kB -ac -"} -(55,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ay -kD -kG -kG -kG -kG -kD -kK -kO -bE -bM -bR -bT -aa -aa -aa -aa -aa -aa -aa -aa -aa -cL -aa -da -cL -aa -aa -aa -aa -aa -kV -lM -lM -lM -kV -eV -lZ -lZ -fp -mg -lZ -ma -ma -lZ -mg -lZ -lS -lZ -mg -ma -ma -ma -eV -ma -lZ -ma -nh -lS -as -br -br -ii -ii -br -ax -br -ay -ay -ay -ax -aa -ay -br -br -nv -nW -nR -nv -od -od -jZ -od -ok -od -oo -od -od -ab -aa -aa -os -aa -aa -aa -kA -aa -aa -ab -"} -(56,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ay -kD -kG -kG -kG -kG -kD -kK -kL -kO -bN -bS -bU -ax -ax -ax -ax -aa -aa -aa -aa -aa -cL -cU -aa -aa -aa -aa -aa -aa -aa -kV -ev -lM -lM -eN -lT -ma -ma -lS -lS -lZ -lZ -lS -md -md -mg -md -md -md -ma -mQ -mg -lT -ma -lZ -ma -lZ -lS -as -iB -ii -ii -ii -br -ax -br -iA -br -br -ax -ay -br -br -br -nv -jJ -nK -nK -jS -jV -ka -oh -oh -kh -oj -oj -od -aa -aa -kq -kv -kx -aa -kq -kv -kx -aa -ac -"} -(57,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ay -kD -kG -kG -kG -kG -kD -kL -kL -bG -kO -bE -bU -aa -aa -aa -aa -aa -aa -aa -aa -aa -ax -cL -ax -aa -aa -aa -aa -aa -ab -kV -ew -lM -lM -eN -lT -ma -fm -lS -ma -ma -fC -lS -lS -md -lW -lW -lW -lW -lW -lW -ma -lT -mg -ma -ma -lS -lS -as -as -as -as -as -nv -nx -nx -jp -nx -nx -nx -nv -nv -nv -nv -nv -nW -nR -nT -od -od -od -oi -ol -oj -kl -oj -od -aa -aa -ks -kw -ky -aa -kq -kv -kx -aa -ac -"} -(58,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ay -kD -kG -kG -kG -kG -kD -kK -kP -kR -kM -kL -bU -aa -aa -aa -aa -aa -aa -aa -aa -aa -ax -ax -ax -aa -aa -aa -aa -ab -ab -kV -ex -lM -lM -eN -lT -ma -ma -lS -fu -ma -ma -lS -md -mC -lW -bx -fl -fl -bw -lW -ma -lT -ma -hS -ma -ig -aa -bC -ay -ab -ab -ab -nw -nA -jk -jq -nK -nK -nK -nK -nK -nK -nK -jy -nX -nY -nT -nT -jW -of -oj -kf -ki -km -ok -od -aa -aa -oq -cL -aa -cL -kq -ou -kx -aa -ab -"} -(59,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ay -kD -kG -kG -kG -kG -kD -kK -bD -kP -kL -bE -bU -aa -aa -aa -aa -aa -aa -aa -aa -aa -ax -ax -ax -aa -aa -aa -ab -ab -ab -kV -ey -lM -lM -eN -lT -fe -fe -lS -fv -ma -lS -lS -md -md -lW -fl -bw -ce -fl -lW -lW -hC -lW -lW -lW -as -aa -aa -ab -as -aa -ab -nx -nx -nx -nH -nH -nH -nH -nH -nH -nx -nR -nR -nT -nR -nR -nR -jW -of -kc -oj -kj -oj -op -od -aa -aa -aa -aa -aa -aa -aa -ab -aa -aa -ab -"} -(60,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ax -kD -kG -kG -kG -kG -kD -kM -kO -kO -bO -kK -bV -bW -bW -bW -cb -cb -co -kV -kV -kV -kV -kV -kV -kV -kV -kV -kV -kV -kV -kV -kV -kV -kV -kV -eX -kV -kV -lS -lS -lS -lS -lS -mC -mg -lW -bx -fl -aa -aa -ay -lS -lT -lS -ez -ez -ab -aa -aa -aa -ab -aa -aa -ax -aa -aa -aa -aa -aa -aa -aa -aa -nv -nS -nR -nR -nR -nR -nR -nx -nx -nx -nx -nx -nx -nx -nx -ac -ac -ac -ac -ab -ac -ac -ab -ab -ac -aa -"} -(61,1,1) = {" -aa -aa -aa -ab -ac -ac -ac -ac -aa -aa -aa -aa -ay -kD -kG -kG -kG -kG -kD -by -kK -bE -bE -bE -kD -kG -kG -kG -kV -kY -lb -kY -le -kY -lh -lj -kY -lh -lj -kY -kY -kY -kV -kV -kV -kV -kV -lM -eY -mb -lM -lS -mh -lS -lS -lS -md -mg -lW -bw -fl -aa -aa -ab -hu -fA -hu -ab -ab -aa -aa -dY -ab -ab -aa -aa -ax -ay -as -aa -aa -aa -aa -aa -aa -aa -nv -nR -nR -nR -nR -nT -oe -og -og -og -om -og -og -og -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(62,1,1) = {" -aa -aa -aa -aa -ab -aa -aa -ac -aa -aa -aa -aa -ay -kD -kG -kG -kG -kG -kD -kK -bE -bE -kK -kK -kD -kG -kG -kG -kV -kY -lb -kY -le -kY -kY -lk -kY -kY -lk -lf -kY -kY -kV -kY -kY -kY -kV -lM -eY -lM -lM -lS -mg -aa -ab -as -ay -as -ab -aa -aa -aa -aa -ab -hu -cH -as -aa -aa -aa -aa -aa -ab -cL -aa -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jz -nH -nH -oc -jT -nx -nx -nx -nx -nx -nx -nx -nx -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(63,1,1) = {" -ab -aa -af -ai -ap -ab -ab -ac -aa -aa -aa -aa -ay -kD -kG -kG -kG -kG -kD -kD -kD -kD -kD -kD -kD -kG -kG -kG -kV -cf -cp -kY -le -kY -cM -cV -la -dm -dz -dI -dO -dI -la -la -la -la -lP -lR -eZ -lR -fn -kV -kV -ab -fD -fl -fl -as -ab -ab -ab -ab -ab -ay -as -fA -hI -hu -aa -aa -aa -aa -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -gw -jU -oe -og -og -og -og -og -om -om -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(64,1,1) = {" -ac -aa -ag -ai -ap -aa -aa -ac -aa -aa -aa -aa -ay -kD -kG -kG -kG -kG -kD -kD -kD -kD -kD -kD -kD -kG -kG -kG -kV -cg -lb -kY -cv -kY -lb -lj -kY -kY -lj -kY -cp -kY -kV -kV -kV -kV -kV -lM -lM -lM -lM -kV -kV -ab -as -ay -fl -fD -ab -aa -aa -aa -aa -ab -hu -hu -ay -hu -aa -aa -aa -aa -aa -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -gw -nA -nx -nx -nx -nx -nx -nx -nx -nx -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(65,1,1) = {" -ac -aa -ah -aj -ap -aa -aa -ac -aa -aa -aa -aa -ay -kD -kG -kG -kG -kG -kG -kG -kG -kG -kG -kG -kG -kG -kG -kG -kV -ch -cq -la -cw -la -cN -lj -kY -kY -lj -kY -dP -kY -kY -kV -lN -lN -kV -lM -fa -lM -lM -kV -aa -ay -as -ay -fl -fD -aa -aa -aa -aa -aa -ay -aa -hu -eW -hu -aa -aa -aa -aa -aa -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -gw -nA -gP -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(66,1,1) = {" -ac -aa -aa -ak -aa -aa -aa -ac -ay -ay -ay -ay -ay -kD -kG -kG -kG -kG -kG -kG -kG -kG -kG -kG -kG -kG -kG -kG -kV -ci -lc -cs -kV -kV -cO -kV -db -db -dA -dJ -dQ -dS -db -kV -lN -lN -kV -kV -kV -kV -kV -kV -ab -aa -as -fl -ay -fD -aa -aa -cL -aa -aa -ab -aa -hu -hJ -ay -aa -aa -in -aa -aa -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -nT -gP -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(67,1,1) = {" -ac -aa -ah -al -ap -aa -aa -kC -kC -aE -aL -kF -kF -kF -kG -kG -kG -kG -kG -kG -kG -kG -kG -kG -kG -kG -kG -kG -kV -kV -kV -kV -kV -kV -cP -kV -lm -dn -lu -lu -lC -dT -ed -lL -ax -ab -ab -cL -ab -aa -aa -aa -ab -aa -fD -fl -fl -fD -aa -aa -aa -aa -aa -ab -aa -as -hK -ez -aa -aa -aa -aa -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -gP -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(68,1,1) = {" -ac -aa -ah -al -ap -aa -aa -at -az -aB -aM -aQ -aV -kC -kG -kG -kG -kG -kG -kG -kG -kG -kG -kG -kG -kG -kG -kG -kV -cj -kY -ct -le -lf -lb -kV -dc -lu -lu -lu -lC -dU -dT -lL -ab -aa -aa -aa -ab -aa -aa -aa -ay -ay -ml -mu -mv -mk -ce -aa -aa -aa -aa -ab -aa -as -hL -as -aa -aa -aa -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jl -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(69,1,1) = {" -aa -aa -ah -al -ap -aa -aa -at -aA -aF -aN -aR -aW -kC -kG -kG -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kV -kZ -kY -kY -cx -kY -lb -kV -dd -lv -dB -lu -lD -lu -ee -en -ay -aa -aa -aa -aa -aa -aa -ay -ay -br -ml -mu -mu -mk -bC -aa -aa -aa -aa -ay -ab -hD -hM -aa -aa -aa -ab -iu -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -gO -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(70,1,1) = {" -ad -ae -ae -am -aq -ar -ae -au -aB -aG -aO -az -aX -kC -kC -kC -kC -bf -bs -bz -az -az -az -bz -az -az -bz -kC -kV -ck -kY -cu -le -kY -lb -kV -de -lu -dC -lu -lE -lF -ef -lL -ay -aa -aa -aa -aa -aa -aa -ay -fl -br -ml -mv -mw -mk -ce -ce -aa -aa -aa -ab -aa -as -eW -hu -aa -aa -aa -iu -aa -aa -ab -aa -aa -dY -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(71,1,1) = {" -aa -aa -ah -an -ap -aa -aa -av -aC -aH -aO -az -aX -kC -bf -kC -kI -az -az -az -az -az -az -az -az -az -az -az -kV -kV -kV -kV -kV -kY -lb -kV -df -lu -lu -dK -lv -dV -eg -lL -aa -aa -aa -aa -aa -aa -aa -as -as -as -ml -mv -mw -mk -ay -ab -bw -aa -aa -ab -aa -as -fA -hu -aa -aa -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jl -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(72,1,1) = {" -ab -aa -ah -an -ap -aa -aa -aw -aD -aI -aP -az -aR -bd -aM -bg -bk -bm -bt -bk -aM -aM -aM -aM -aM -bX -az -kT -kV -kY -kV -kY -kV -kY -lb -kV -dg -lu -lu -lu -lu -lu -lm -lL -ax -ab -ab -aa -aa -aa -aa -ay -ay -ay -ml -mw -mv -mk -gi -bw -ab -bx -mk -ay -aa -as -eW -hu -aa -aa -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(73,1,1) = {" -ab -aa -ah -an -ap -aa -aa -kC -kC -kC -kC -az -az -kC -az -kC -bl -bn -bu -bl -az -bH -az -az -az -aR -aM -aM -cc -la -cc -la -cy -la -cQ -kV -dd -lu -lv -lu -lu -dV -lm -ll -ez -ab -aa -aa -aa -aa -ay -ay -ax -mk -ml -ml -fQ -mk -mk -mk -mk -mk -mk -ay -ab -fD -eW -hu -aa -hu -ml -ml -hu -hu -hu -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(74,1,1) = {" -ac -aa -aa -ak -aa -aa -aa -ac -ac -ac -kC -aS -aY -kC -kC -kC -kC -kC -kC -kC -kC -kC -az -kC -kC -kC -kC -kC -kV -kV -kV -kV -kV -kV -kV -kV -dh -do -lu -dL -lu -dW -dU -ll -ay -aa -aa -aa -aa -ay -ay -bC -br -mk -mp -mx -mr -mr -mp -gu -mr -ml -mk -mk -mk -mk -mY -mk -nf -ih -mE -ih -iC -iC -iC -jc -eA -jh -jl -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(75,1,1) = {" -ac -aa -ah -an -ap -aa -aa -ac -ab -ac -ac -aa -aZ -be -be -aa -aa -aa -aa -be -be -kC -az -kC -be -be -as -aa -aa -aa -aa -aa -aa -aa -ac -ll -di -dp -ly -dM -ly -dX -eh -ll -as -aa -aa -aa -aa -ay -ay -fq -fl -mk -mq -mp -mr -mr -mp -gu -mr -mr -mr -mr -hv -ml -mZ -ml -ml -ml -io -mr -mr -ih -mr -jd -mE -jd -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(76,1,1) = {" -ac -aa -ah -an -ap -aa -aa -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -kC -bP -kC -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -as -aa -ac -dD -ac -ac -ay -dD -ac -ac -aa -aa -ay -ay -ay -ay -fr -bC -mk -mr -mx -mr -mE -mr -mr -mr -mr -mr -mr -mr -mr -hN -mr -mr -mr -mr -mr -mr -mr -mr -jc -fd -ji -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(77,1,1) = {" -ac -aa -ah -ao -ap -ab -ab -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -dY -aa -aa -aa -aa -aa -ay -ay -br -fl -br -bx -mk -ms -mr -mr -mr -mp -gu -mr -ml -ml -mr -mr -mr -na -nc -ml -ml -mr -mE -mr -mr -mr -mT -ay -as -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(78,1,1) = {" -ac -aa -aa -aa -ab -aa -aa -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ax -ax -ax -ax -ax -ax -mk -mr -mr -mr -mr -mI -gv -mM -ml -ha -mr -mr -mr -mE -mr -mr -ml -hk -mr -mr -mr -mr -mT -ay -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(79,1,1) = {" -ac -ac -ac -ac -ab -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -as -as -as -as -as -as -ml -fE -fF -mr -mr -mr -mr -mp -ml -ha -mr -mr -mr -mr -mr -mr -ml -io -mr -mE -mr -mr -mT -ay -aa -aa -aa -aa -aa -aa -aa -ay -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(80,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ay -ay -ay -bC -br -fw -ml -fF -mr -mr -mr -mJ -mr -mx -ml -ha -hk -hw -mr -mr -hT -ia -ml -mr -mr -mr -mr -mr -mT -ay -as -ac -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(81,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -as -ez -as -as -ez -as -ml -ml -ml -ml -ml -ml -ml -ml -ml -ml -ml -ml -hE -ml -ml -ml -ml -mk -mr -iD -mr -iX -mT -aa -aa -ay -aa -ay -aa -ay -aa -ay -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(82,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ay -ay -ay -ay -ay -ay -ay -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -mT -mE -mT -aa -aa -mk -mk -mk -mk -mk -mk -mk -ax -ax -ax -ax -ax -ax -ax -ax -ax -ax -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(83,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hx -hE -hx -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacaaadaaababacacacacacacaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaacaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafagahaaahahahaeahahahaaahahahaaacaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaiaiajakalalalamanananakananaoaaacaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacabapapapaaapapapaqapapapaaapapapababaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaabaaaaaaaaaaaaaraaaaaaaaaaaaabaaacaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaabaaaaaaaaaaaaaeaaaaaaaaaaaaabaaacaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacasatatauavawasacacacacabacaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxaaaxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayasazaAaBaCaDasaEabaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxaxaxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaFaBaGaHaIaJasaEaEaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxaKaLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaMaNaOaPaPaQasasaEaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxaRaxaxaxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaSaTaUazazazazaVaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxaWaxaXaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxayayayayayayaYayayayayayayaYayayayayayayaSaZbabbbbaUazbcbdaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxaRaRbeaWaRbfbgaxaxaxbgaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaSasasasasbhasasbiaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxaxaxaxaxaRaxaRaRaRaxaRaRaRaxaxaxaxaxaxaxbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjasbkaNazasbiaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablbjblaRaxaRaxaRaxaRaxaRaxaxaxbgaxbgaxaxaxaxaxbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjasasbmasasaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablbjblaRaxaRaxaRaxaRaxaRaxaxaRaRbnaRbobpaWaRaxbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjasasbqbrbsasaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablbjblaRaxaRaxaRaxaRaxaRaxaxaRaRaRaRaRaxaxbtaxbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjasbkazbubvasaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablbjblaRaxaRaxaRaxaRaxaRaxaxbwaRbxaRbyaxaxbzbjbjaxaxaxaxaxaxaxaxaxaxaxaxaxbjbjbjbjasbAazbBbCasaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablbjblaRaxaRaxaRaxaRaxaRaxaxbyaRbDaRbyaxaxbzbjbjaxaxbzbzbzbEbzbzbFbGbzaxaxbjbjbjbjasbHazbrbsasbiaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablbjblaRboaRaxaRboaRaxaRbpbpaRbeaRbtbgaxaxbIbzbzbzbJbzbKbEbEbLbMbKbzbNaxaxbjbjbjbjasazazaNazasbiaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablbOblbgaxaxaxbgaxaxaxbgaRaxaRaxaxaWaxaxaxbPbjbjaxaxbNbNbKbQbRbLbKbNbNaxaxbjbjbjbjasazazaNbSasasasaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablbOblaxaxaxaxaxaxaxaxaxaxaxbTaxbUbebVaxaxbjbjbjaxaxbWbXbYbKbFbEbZbNbzaxaxbjbjbjbjasazazaNazazazcaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablcbababaaaaaaaaaaaaaaaaaxaxaxaxaxaxaxaxaxbjbjbjaxaxbPcccdbNbEbNbzbNbzaxaxbjbjbjbjasbHazaNazasasasaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablaaaaababaaaaaaaaayacacacabayaaaaaaaaaaaxaxaxaxaxaxaxcecfcfcfcfcgaxaxaxaxbjbjbjbjasazazaNazasbiaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaababchchchabaaaaaaaaaaaaaaaaaaaaaaaaaaaaciaaaaaacjbjbjbjbjbjbjbjbjasazazckaUasbiaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaciaaaaaacjbjbjbjbjbjbjbjbjasbHazazaNaschaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaabclclclclaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaciaaaaaacjbjbjbjbjbjbjbjbjasasazcmaNasaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaacncocpcocqclaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaciaaaaaacrcscscscscscscscscscscscsctcsaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaabcucvcwcucuabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrcxcxcyczcAcBcscCcDcEcscxcFcsaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcucGcHcucIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacJcKcKcLcKcMcNcscxcxcxcscsctcsaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclcwcOcOcPcoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacscxcxcxcxcFcQcscRcxcScscxcFcsaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaclcOcOcOcOcuabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacscTcTcTcUcVcscscTcWcTcscscXcsaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababaYaaaaclcYcZdadbdcclabaaaYababaaaaaaaaaaaaaaaaaaaaaaaaaaaacscxcxcxcxcFcscsddcxcxcxcxcFcsaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaYdeababcldfdgdhdgdiclababdjaYabababaaaaaaaaaaaaaadkdkcicicicsdlcxdmcKdndodpcKcKcKcKcKdqcsacaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababdrdrdrdrdscOdtcOdudrdrdrdrabababababaaaaaaaaaaaaaadvdkcicicsdwdxdydwdwcscscscscscscscscsdzchaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdrdrdrdrdAdrdBcldCcldDdrdrdrdrdrdrababaaaaaaaaaadkaadEaacicicicscxcxcFcxcxdFdGdHdIdJdKdLdIdMdNaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrdrdrdOdPdQdRdSdTdUdVcldWdOdXdOdrdrdrabaaaaaaaaaaaaaadkaaaaaaaacsdlcxdYcxcxdFdZeaebeaeaeaeaecedacaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrdreeefegehehdOeidaejekelemdOdOdOeneodrciaaaaaaaaaaaaaaaaaaaaaaaacsdwdxepdwdweqeaeaereseaeaebeaeteuaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrdrevevevevewdWexdrdreydrdWezdXezezdWdrciaaaaaaaaaaaaaaaaaaaaaaaacscxddeAcxcxeBeaeaeaeaeCeaeaeDeEacaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrdrdWezezezeFdPdOeGezdWezezdOdPdPezezdrciaaaaaaaaaaaaaaaaaaaaaaabcscxcxeHcLeIeJeKeKeLeMebeaeaeaetacaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdrdrezdPdXdOeNdOdXdOdWdWezdOdOdOdOdXdOdrciaaaaaaaaaaaaaaaaaaaaababcscxcxeAcxcxeOePeQeaeReSeaeSeTeUayeVaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababdrdrdOdXdOeWeXeYeZdWfadWdWfbfcfdezdPdXdrciabaaaaaaaaaadkaaaaabababcscscscFcscxdFfeePfffgfhdGdGeQfieuaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababdrdrezdOeWfjfkfldWdWdWdWdWfmfmfnfddOdPdrciababaacicscscscscscscscscscscxcFcscscsfofofpfofofodzdzdzacaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdrdrdrezezfqfrdPdWdWdWdWdWdWdWdWfsftezfudrciciababcicsfvfwfxfyfzfAfBcscscxcFcsfCfCaYabayayaaaYfDaychacaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrdrdrdrdrezezfqfjdPdWdWdWdWdWdWdWdWfEftdWezdrdrdrdrdraacsfFfxfxfxfxfxfxcscscxcFcsfCfCabaaaaaaaaababaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdrdrezfGfHezezfIfJdWeZaaaaaaaaaadWdWfEewdWezdOezdWdrdrabcsfxfxfxfxfxfxfxcscscsfKcscscsabaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrdrfLdOfEfdezdPezfMdWdWaaaaaaaaaadWdWfNfMezfOfPfQdOezdrdrcscsfRcsfSfSfSfScsfxfxfTfxfxcsdkaaaaaaaaaaaaaaaaayayaYchaychayaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrdremdXfUftdPdPdPdXdWdWaaaaaaaaaadWdWfVdWezfWfXfQdOfYdrdrfZgagbgbgcgcgcgcgdgegegffxggcsababaaaaaaaaaaaaaaayayaYchayfDayaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrdrezezfUftezdXeZghdWdWaaaaaaaaaadWdWdWgidWezdOgjdXezgkgkfZglgmgngogogogpcsgqfxfTfxfxcsaaaaaaaaaaaaaaayayaygraYchaychayaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdrdrezgsewdOdPgtgudWdWaaaaaaaaaadWdWgvgwezezfbfJezdrgkgxgygagzgngogAgogpcsfxfxgBfxfxcsaaaaaaaaaaaaayayayaygCaYchgDchayaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdrdrdrdrdrezezfqdWdWdOdWdWdWdWdWdWdWdWgEdPdPdrdrdrdrgkglfZfZfZgFfZfZfZfZfZfZfZcscscscsaaaaayaychayaygDgGgHgraYchgrfDayaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababdrdrdrdOgIgJdWdOdXdWdWdWdPdOdWdWgKgEdXezdrdrdrababglfZgngLgLfZgogMgNfZgOgLcscsaaababayaygCchayaYgrgCgDgPaYchgQchayaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababdrdrdXdPgRdWdWdOgSdOdPdXeheiehgSgTdPdPdrdraaaagxgUfZgngLgngngogogofZfZaaababayaaaaaygrgrchaygVgVgVgVgVgVgWgWgWayaa +aaaagXgXgXgXgXgXgXgXgXgXgXgXgXaaaaaaaaaaaaaaaaaaaaaaaagYdWgYababgJfbftezezezgZevevewdOdOezdrdraagLhagmfZgogogognhbgofZfZfZabhcchchchhcgWgWgWgWgWgWhdhehfhghfhhhigWaaaa +aaaagXhjhjhjhjhkhkhkhkhkhlhjgXaaaaaaaaaaaaaaaaaaaahmaadWdWhnababdWhoezdOdOfWezezdOdPdXezezdrdraagLgLgmfZfZfZgofZfZfZfZfZfZchgCayaygCgChphphqhqhrgWhshdhshfhfhihfgWaaaa +aaaagXgXgXhjhthkhkhkgXgXhugXgXgXgXgXhvhwhwhwhvhxhyhzhAhvhBabhCabezezdOdPdPdPdOezezdOdPdrdrdrdraaglgmgnfZgogzgngzfZgzgzhDgzaygCgCgCaygChqhphrhrhqhEhfhfhfhfhfhfhfgWaaaa +aahCgXhFgXgXgXgXgXhGgXhHhkhlhkhkhkgXhIhIhIhJhIhKhLhzhzhMababababdrdrezhNdXdOezdrdrdrdrdrdrababgLhOgmgngogogngLgzgzhDgzgLgLchchhchchchcgVgVgVgVgVgVhfhfhPhfhfhfhfgWaaaa +aahQhRhShThShUhShThSgXhHhkhHhkhHhkgXhVhIhIhIhIhWhXhYhzhZhzhzababdrdrdrdrdWdrdrdrdrdrdrabaaayfZgUgmgngnfZgogngngLgkgkgkgkgkabababaaaaaaiagDiaayibgVhdhdhfhdichfidgWaaaa +aahQieifigihiiijiiijgXhHhkhHhkhHhkhuhIhIhIhIhIhIhXikilhzhzhzaaababdrdriminiodrdrabababaaaaayfZgmgmipgnfZfZfZfZgzgkgPgCgPiqaaabaaaaaaaaaaaaiaabiqgVirirhfirishfhfgWaaaa +itiuiviwixiwhThShThSgXhHiyhHizhHhkgXiAhIhIhIhIiBiChXhYhzhzhzaaaaababdrdrdrdrdrababaaaaiDiDiEfZgniFgngofZgogzgngzgkgCiqgCgCaaabaaaadkaaaaaaaaiqabgVhfhfhfhfiGhdhsgWaaaa +iHiIiJiJiJiKiiijiiijgXhHhkhHhkhHhkhuhIhIhIhIhIiLhIiMhXiNhYhzhziOhvhvhvhviPiQabaaabaaiRaaaaayfZfZipgnfZfZgLgogLgzgkgCiaaaaaaaabaaaaaaaaaaaaaaaagPgVgWhfhfgWgWgWgWgWaaaa +iSiTiUiViWiVhTiXhUhSgXhHhkhkhkhthkgXhIhIhIhIhIiYhIiZhIhXhXhYhzhzjahzjaiDayayayaaababababaajbfZgojcgogofZgogogogogkiqgCaaaaaaabaaaaaaaaaaaaaaaagVgVgVhfhfgWjdjdjdgWaaaa +aahQieijiijeiiijiiijgXgXgXgXgXgXgXgXhVhIhIhIjfjgjhjijhjihXhYjjjkhvjlhvgPayayayjmjnayayayjojpfZgojqgogofZgojrgojsgkgkgkayababayabayabababayababayaygVhfhfhfhfhfjtgWaaaa +aahQhRhShTjuhThShThSjvjwjwjwjxjwjygXiAhIhIhIjzjAjBjChIhvjDjEhvhvhvhvhvhIjpgPgDjFaygDayaygPjpfZgojqgojsfZgogogogLgogogkfZjGjGchjGaaaaaaaaabaaaaaaabgVjHhfhfhfhfjIgWjJjK +aahCjLjLjLjLjLjLjLjLjLjLjLjLgXgXjMgXfZfZfZfZfZfZfZfZfZfZjNjOfZfZfZfZfZfZfZfZfZfZgDjpjpjpgDjbfZgojPgcgcgcgcgcgbgcgcgcjQgcjRjSjRjGjGjGchchjTchchchhcgVgWhfhfhfhfhfjUhPjU +aaaaaYgPayabaaaaaaababdEjVjLfZjWjXjYgogojZgojWgogofZkagojqgogogofZgogogogogofZfZfZfZfZfZfZfZfZgojqgogofZgogngogogLgogkfZjGchkbaykckdkekfkgkcjRkckckhkikjkkhPhfhfgWjJjK +aaaaaYgHdEaaaaaaaaaaabaygPklgogLgLkmkngogogogokogofZkpgojqgogojsfZkpkngokogofZfZfZfZgogogogogogojqgogofZgokogngngokqgkfDabaajGjGjGayfDchaajGjGjGjGgVgWhfkrhfhfksgWaaaa +aaaaabayaaaaaaaaaaaaayabayjLfZgUgnktkukvkvkvkvkvkvkwkvkvkxgogogofZgogogogogogogojZgokygcgcgcgcgckzkAgkgkgkgogogogogogkfDabaaaaaaaaaaaaaaaaaaaaaaaakBgWhfgWhfhfkCgWaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaYjLfZgngLfZfZfZgofZfZfZkDfZgogokEgcgcgckFgcgckGgcgcgcgcgcgckHgogogogogogojqgkkIgkgkkJgnfZkKchabaaaaaaaaaaaaaaaaaaaaaaaakLkMgWhfgWgWgWgWgWgVaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaafZgLgmfZkNjZgofZkNjZgofZkOkOkOkPkDkQfZkpgojqgogogogogogogogkgkgkgkgkgkkRgkkSkTgkfZfZfZaaaaaaaaaaaaaaaakUaaaaabaaababgWhPkVhfhfjtkVhfgVgVac +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabgnfZkWknkXfZkWknkWfZkYkZkZgogogofZgogolagogogogogogogogkgrgrlbgrgrlcgrgraYaYchchchgDaaaaeVaaaaaaaaaaaaabldldababgWkMhfhfhPhfhfhfhfgVac +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababfZfZfZfZfZfZfZfZfZgolelflggogofZfZfZfZfZfZfZfZfZlhfZgkayayayaygrliljgraYlbgrlkchayabaaabababaaaaaaabababaaabaakLllhfhfhfhfhPhflmgVac +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabgLgLgLlnkajYlojYfZgolplqlrlggofZlsltlultlvlwlwlxltlxlylzlzlAeuaygrlBlClDgrgrlEchabchababdkabababababaaabaaaaaakLllkMhfhfhfhfhfhfgVac +aaaaaaaaaaaaaaaaaaaaaaaaaaababababababgLgLjYlFgolGfZkplHlIlrgojsfZlJlKltlLlMlNlOlxlPlxlylzlAlAlAlAaylQgrlRgrlElEchabaaaaaaaaabababaaabaaaaabaaaakLllhfhfhfhfhfhflSgVac +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababgLgLgLjYgofZgogolrlrgogofZlTlUlVlLlWltlslxlslxlylzlAlzlzlzayljgrlXgrlElEchababaaaaababaaaaaaaaaaaaaaaaaaaalYlZlYjJjJjJjJjJgVac +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagLgLgLfZgogolglggogofZltlsltmamalslslxlPlxlylzlAlAlAmbayaygrmcgrgrgrmdmemfaYaYabaaaaaaaaaaaaaaaaaaaaaamghPjFayayayayaaaYac +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababgLmhmigogogogogofZmjltltltlsltmklxlPlxlyaYaYaYaYlzlzjRaYaYaYaYaYmfmlmfaaayaaaaaaaaaaaaaaaaeVaaaaaammlZmnchaaaachaaaYac +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfZfZfZfZfZfZkDfZgOmoltltltltmpmqmrmrmsmtlzlAlzlAlzlzlzlAaygrgrgrmfmumfaachaaaaaaaaaaaaaaaaaaaaaaaamvaaaaaaaaaaacayaYac +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaagLgLhDgngolGfZmwmxltltltlsmyltltmtmzlAlAgPaYmAlzlzlAayjRayljmBmCmDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaYac +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaaaagLgmmEgogofZmFlsltltltlsltltmrmGmtlAlAlAmHlAlAlAlAlzayaygrmfmImDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacayaYac +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaagLmJgLgnmKgofZmLmMlsltlsltltltmrmGlxlzlzlAlAlzlzlzlAlzlzaygrmfmImDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaYac +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaabaagLgLgLgogogmfZltlsltltmNlsltltmGmplxgPlzlAaYaYlzlzlAlAlAaYaYmfmImDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacayaYac +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaabababfZgLfZfZfZfZlsltlsltmGmNltmsmNmpmtgPmOlAayaylzlzlAlzlzlzaymdmImDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaYac +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaagLgLgLgngmgofZltmPmaltltltmQltmpmtmzlzlzlAchlzlzlzlAlzlzaygrmdmImDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayacayaYac +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaaaaabmEgLmRgnfZlxlxlsmGltlsltltlxlxmzlAlAchchlAlAlAlAayaygrgrmdmImfmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaYac +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaagLgLgLgmgofZmSmSlxmTmGmGltltlxmSmSlzlzlzchlzlzlzaygrgrgrgrmdmImUmVmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababchmdmemdmdmdmdmWmdmdlxmdmdmdmdmdmdmdmdmdmdmdmdmdmdmdmdmdmdmdmdmdmdmXmUmUmUmYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababmZmUmUmUnanbmUmUmUncndnenfngnhninjnknlndndndndndndndndndndndnmndnnmZmUmUmDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabmZmZmZmUmUmUmUmUmUmUmUnonpnqnrnsntnunvmUmUmUmUmUmUmUmUmUmUmUmImUnwmUmUmUmDaaaaaaaaaamvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababnxnynznznzmdnznznznznzmdnznznznznzmdnznznznznzmdnznznznzmdmImZmZmUmUmUnAitititaaaaaaiRaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayacacacacacacacacacacchacacacacaceueueuacacacaYacacacacnBnCnBmZmUmUmZnDnEmlmlmZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaYaaaaaaaanBnFnBnGnGmfnHmfnHmfiSiSiSaaaaaamvaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanIayaynBnJnKnLnBnMnMmfnNmfnNmfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaynBnOnBnPnQnRnSmfnNmfnNmfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabayaynBnUnVnPnWnXnRmfnNmfnNmfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabldaygPnBnYnBnZnRoaobmfocmfnNmfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaygPodoeofognRohoinRmfnNmfnNmfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaygrgrnBnPnBnRnRnVojmfnNmfocmfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaYaYaYaanBnBoknBnBnBnBnBmfnNmfocmfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaabolabaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaomaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaonononaaooaaonopoqaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaorososotouotovowdkaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaoxoxoxaaooaaoxoyaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaozaaaaaadkaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaonononaaooaaonononaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacabozoAosoBouoBovovoCababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaoxoxoxaaooaaoxoxoxaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaoDaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacabacacababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa "} diff --git a/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm b/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm index b44df3813f..03215fd45c 100644 --- a/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm +++ b/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm @@ -13,7 +13,7 @@ d2 = 4 }, /turf/open/floor/plating/airless, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "ac" = ( /obj/structure/grille, /obj/structure/window/reinforced/fulltile, @@ -24,7 +24,7 @@ pixel_y = 0 }, /turf/open/floor/plating, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "ad" = ( /obj/machinery/shieldwallgen{ active = 2; @@ -41,7 +41,7 @@ icon_state = "2-8" }, /turf/open/floor/plating/airless, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "ae" = ( /obj/machinery/shieldwallgen{ active = 2; @@ -59,7 +59,7 @@ d2 = 2 }, /turf/open/floor/plating/airless, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "af" = ( /obj/machinery/shieldwallgen{ active = 2; @@ -71,22 +71,22 @@ icon_state = "0-8" }, /turf/open/floor/plating/airless, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "ag" = ( /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /turf/open/floor/plating, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "ah" = ( /turf/closed/mineral, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "ai" = ( /turf/open/floor/plating/asteroid, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "aj" = ( /obj/structure/flora/rock, /turf/open/floor/plating/asteroid, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "ak" = ( /obj/structure/grille, /obj/structure/window/reinforced/fulltile, @@ -97,11 +97,11 @@ pixel_y = 0 }, /turf/open/floor/plating, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "al" = ( /obj/structure/flora/ausbushes/genericbush, /turf/open/floor/grass, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "am" = ( /mob/living/simple_animal/hostile/poison/bees, /mob/living/simple_animal/hostile/poison/bees, @@ -110,50 +110,50 @@ /mob/living/simple_animal/hostile/poison/bees, /mob/living/simple_animal/hostile/poison/bees, /turf/open/floor/grass, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "an" = ( /mob/living/simple_animal/hostile/poison/bees, /turf/open/floor/grass, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "ao" = ( /obj/structure/flora/ausbushes/lavendergrass, /turf/open/floor/grass, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "ap" = ( /mob/living/simple_animal/hostile/asteroid/goldgrub{ will_burrow = 0 }, /turf/open/floor/plating/asteroid, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "aq" = ( /obj/structure/flora/ausbushes/grassybush, /turf/open/floor/grass, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "ar" = ( /obj/structure/flora/rock/pile, /turf/open/floor/plating/asteroid, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "as" = ( /mob/living/simple_animal/hostile/asteroid/basilisk, /turf/open/floor/plating/asteroid, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "at" = ( /turf/closed/wall/r_wall, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "au" = ( /obj/structure/flora/ausbushes/leafybush, /mob/living/simple_animal/hostile/poison/bees, /turf/open/floor/grass, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "av" = ( /obj/structure/flora/ausbushes/brflowers, /turf/open/floor/grass, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "aw" = ( /obj/structure/flora/rock, /obj/machinery/light, /turf/open/floor/plating/asteroid, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "ax" = ( /obj/structure/table/reinforced, /obj/item/weapon/clipboard, @@ -166,10 +166,10 @@ /turf/open/floor/plasteel{ icon_state = "dark" }, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "ay" = ( /turf/open/floor/plasteel/darkgreen, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "az" = ( /obj/structure/table/reinforced, /obj/item/weapon/storage/box/syringes{ @@ -184,20 +184,20 @@ /turf/open/floor/plasteel{ icon_state = "dark" }, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "aA" = ( /obj/structure/flora/ausbushes/ywflowers, /turf/open/floor/grass, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "aB" = ( /obj/machinery/light, /mob/living/simple_animal/hostile/poison/bees, /turf/open/floor/grass, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "aC" = ( /obj/structure/flora/ausbushes/ppflowers, /turf/open/floor/grass, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "aD" = ( /obj/structure/cable{ d1 = 4; @@ -212,7 +212,7 @@ /turf/open/floor/plasteel{ icon_state = "dark" }, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "aE" = ( /obj/machinery/shieldwallgen{ active = 2; @@ -241,7 +241,7 @@ tag = "" }, /turf/open/floor/plating, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "aF" = ( /obj/structure/cable{ d1 = 4; @@ -250,7 +250,7 @@ pixel_y = 0 }, /turf/closed/wall/r_wall, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "aG" = ( /obj/structure/table/reinforced, /obj/structure/cable{ @@ -263,7 +263,7 @@ /turf/open/floor/plasteel{ icon_state = "dark" }, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "aH" = ( /obj/structure/cable{ d1 = 4; @@ -272,7 +272,7 @@ pixel_y = 0 }, /turf/open/floor/plasteel/darkgreen, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "aI" = ( /obj/structure/table/reinforced, /obj/machinery/computer/med_data/laptop, @@ -285,7 +285,7 @@ /turf/open/floor/plasteel{ icon_state = "dark" }, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "aJ" = ( /obj/machinery/shieldwallgen{ active = 2; @@ -309,7 +309,7 @@ icon_state = "0-8" }, /turf/open/floor/plating, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "aK" = ( /obj/structure/window/reinforced{ dir = 4 @@ -320,7 +320,7 @@ /turf/open/floor/plasteel{ icon_state = "dark" }, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "aM" = ( /obj/structure/cable{ d1 = 1; @@ -329,20 +329,20 @@ pixel_y = 0 }, /turf/closed/wall/r_wall, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "aN" = ( /obj/structure/table/reinforced, /obj/item/weapon/folder, /turf/open/floor/plasteel{ icon_state = "dark" }, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "aO" = ( /obj/structure/chair/office/light{ dir = 8 }, /turf/open/floor/plasteel/darkgreen, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "aP" = ( /obj/structure/table/reinforced, /obj/item/weapon/reagent_containers/glass/bottle/liver_enhance_virion, @@ -350,7 +350,7 @@ /turf/open/floor/plasteel{ icon_state = "dark" }, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "aQ" = ( /obj/structure/window/reinforced{ dir = 8 @@ -364,7 +364,7 @@ /turf/open/floor/plasteel{ icon_state = "dark" }, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "aS" = ( /obj/machinery/power/apc{ dir = 8; @@ -386,7 +386,7 @@ /turf/open/floor/plasteel{ icon_state = "dark" }, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "aT" = ( /obj/structure/cable{ d1 = 2; @@ -405,7 +405,7 @@ /turf/open/floor/plasteel{ icon_state = "dark" }, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "aU" = ( /obj/structure/rack, /obj/item/weapon/crowbar, @@ -416,20 +416,20 @@ /turf/open/floor/plasteel{ icon_state = "dark" }, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "aV" = ( /obj/machinery/smartfridge/chemistry, /turf/open/floor/plasteel{ icon_state = "dark" }, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "aW" = ( /obj/structure/table/reinforced, /obj/item/weapon/gun/syringe, /turf/open/floor/plasteel{ icon_state = "dark" }, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "aX" = ( /obj/structure/table/reinforced, /obj/item/weapon/grenade/chem_grenade/antiweed{ @@ -449,7 +449,7 @@ /turf/open/floor/plasteel{ icon_state = "dark" }, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "aY" = ( /obj/structure/table/reinforced, /obj/item/weapon/gun/energy/temperature{ @@ -458,7 +458,7 @@ /turf/open/floor/plasteel{ icon_state = "dark" }, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "aZ" = ( /obj/structure/table/reinforced, /obj/item/weapon/cultivator, @@ -466,7 +466,7 @@ /turf/open/floor/plasteel{ icon_state = "dark" }, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "ba" = ( /obj/machinery/light/small{ dir = 8 @@ -474,13 +474,13 @@ /turf/open/floor/plasteel{ icon_state = "dark" }, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "bb" = ( /obj/machinery/door/airlock/hatch{ name = "Bio-Research Station" }, /turf/open/floor/plasteel/darkgreen, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "bc" = ( /obj/structure/cable{ d1 = 1; @@ -489,7 +489,7 @@ pixel_y = 0 }, /turf/open/floor/plasteel/darkgreen, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "bd" = ( /obj/machinery/power/terminal, /obj/structure/cable{ @@ -499,13 +499,13 @@ pixel_y = 0 }, /turf/open/floor/plasteel/darkgreen, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "be" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plasteel{ icon_state = "dark" }, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "bf" = ( /obj/machinery/power/smes/magical{ desc = "A high-capacity superconducting magnetic energy storage (SMES) unit."; @@ -521,21 +521,21 @@ /turf/open/floor/plasteel{ icon_state = "dark" }, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "bg" = ( /obj/structure/reagent_dispensers/watertank, /obj/machinery/light, /turf/open/floor/plasteel{ icon_state = "dark" }, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "bh" = ( /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk, /turf/open/floor/plasteel{ icon_state = "dark" }, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "bi" = ( /obj/structure/table/reinforced, /obj/item/weapon/reagent_containers/hypospray/medipen/stimpack, @@ -543,7 +543,7 @@ /turf/open/floor/plasteel{ icon_state = "dark" }, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "bj" = ( /obj/structure/table/reinforced, /obj/item/weapon/surgicaldrill, @@ -557,33 +557,33 @@ /turf/open/floor/plasteel{ icon_state = "dark" }, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "bk" = ( /obj/structure/table/optable, /turf/open/floor/plasteel{ icon_state = "dark" }, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "bl" = ( /obj/machinery/computer/operating, /turf/open/floor/plasteel{ icon_state = "dark" }, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "bm" = ( /obj/structure/closet/wardrobe/science_white, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel{ icon_state = "dark" }, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "bn" = ( /obj/structure/table/reinforced, /obj/item/weapon/reagent_containers/food/snacks/carrotfries, /turf/open/floor/plasteel{ icon_state = "dark" }, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "bo" = ( /obj/machinery/shieldwallgen{ active = 2; @@ -609,7 +609,7 @@ icon_state = "1-4" }, /turf/open/floor/plating, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "bp" = ( /obj/structure/bed, /obj/item/weapon/bedsheet/green, @@ -617,7 +617,7 @@ /turf/open/floor/plasteel{ icon_state = "dark" }, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "bq" = ( /obj/item/stack/cable_coil/cut, /obj/item/stack/tile/plasteel{ @@ -626,7 +626,7 @@ }, /obj/item/weapon/wirecutters, /turf/open/floor/plating, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "br" = ( /obj/structure/table/reinforced, /obj/machinery/microwave, @@ -639,7 +639,7 @@ /turf/open/floor/plasteel{ icon_state = "dark" }, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "bs" = ( /obj/structure/cable{ d1 = 4; @@ -658,7 +658,7 @@ }, /obj/machinery/shieldwallgen, /turf/open/floor/plating, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "bt" = ( /obj/structure/cable{ d2 = 8; @@ -666,32 +666,32 @@ }, /obj/machinery/shieldwallgen, /turf/open/floor/plating/airless, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "bu" = ( /obj/structure/flora/ausbushes/sunnybush, /turf/open/floor/plating, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "bv" = ( /turf/open/floor/plating, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "bw" = ( /obj/machinery/light{ dir = 1 }, /mob/living/simple_animal/hostile/carp, /turf/open/floor/plating, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "bx" = ( /obj/structure/flora/ausbushes/palebush, /turf/open/floor/plating, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "by" = ( /obj/structure/disposalpipe/segment{ dir = 4; icon_state = "pipe-c" }, /turf/closed/wall/r_wall, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "bz" = ( /obj/machinery/space_heater, /obj/structure/disposalpipe/segment{ @@ -705,58 +705,55 @@ /turf/open/floor/plasteel{ icon_state = "dark" }, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "bA" = ( /obj/structure/table/reinforced, /obj/machinery/juicer, /turf/open/floor/plasteel{ icon_state = "dark" }, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "bB" = ( /obj/structure/alien/weeds, /turf/open/floor/plating/airless, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "bC" = ( /obj/structure/alien/weeds/node, /obj/machinery/light{ dir = 1 }, /turf/open/floor/plating/airless, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "bD" = ( -/obj/item/clothing/mask/facehugger{ - icon_state = "facehugger_dead"; - stat = 2 - }, +/obj/item/clothing/mask/facehugger/dead, /turf/open/floor/plating/airless, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "bE" = ( /obj/structure/flora/ausbushes/sparsegrass, /turf/open/floor/plating, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "bF" = ( /obj/structure/disposalpipe/segment, /turf/closed/wall/r_wall, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "bG" = ( /obj/machinery/door/airlock/external, /turf/open/floor/plasteel/darkgreen, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "bH" = ( /obj/structure/alien/resin/wall, /turf/open/floor/plating/airless, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "bI" = ( /obj/structure/flora/ausbushes/reedbush, /turf/open/floor/plating, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "bJ" = ( /mob/living/simple_animal/crab{ faction = list("carp") }, /turf/open/floor/plating, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "bK" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/plating/airless, @@ -766,13 +763,13 @@ dir = 8 }, /turf/open/floor/plasteel/darkgreen, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "bM" = ( /obj/machinery/light/small{ dir = 4 }, /turf/open/floor/plasteel/darkgreen, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "bN" = ( /obj/structure/grille{ density = 0; @@ -782,11 +779,11 @@ icon_state = "small" }, /turf/open/floor/plating/airless, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "bO" = ( /obj/item/weapon/shard, /turf/open/floor/plating/airless, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "bP" = ( /obj/structure/lattice, /turf/open/space, @@ -805,7 +802,7 @@ }, /obj/structure/cable, /turf/open/floor/plating/airless, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "bR" = ( /obj/structure/disposalpipe/trunk{ dir = 1 @@ -822,21 +819,21 @@ /obj/structure/cable, /obj/machinery/shieldwallgen, /turf/open/floor/plating/airless, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "bT" = ( /obj/structure/grille, /obj/item/weapon/shard{ icon_state = "medium" }, /turf/open/floor/plating/airless, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "bU" = ( /obj/structure/grille{ density = 0; icon_state = "brokengrille" }, /turf/open/floor/plating/airless, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) "bV" = ( /obj/machinery/shieldwallgen, /turf/open/space, @@ -847,7 +844,7 @@ /area/space) "bX" = ( /turf/open/floor/plating/airless, -/area/ruin/unpowered) +/area/ruin/abandonedzoo) (1,1,1) = {" aa diff --git a/_maps/RandomRuins/SpaceRuins/asteroid1.dmm b/_maps/RandomRuins/SpaceRuins/asteroid1.dmm index aa1bbf3334..7bc6c92e1b 100644 --- a/_maps/RandomRuins/SpaceRuins/asteroid1.dmm +++ b/_maps/RandomRuins/SpaceRuins/asteroid1.dmm @@ -1,6 +1,6 @@ "a" = (/turf/open/space,/area/space) -"b" = (/turf/open/floor/plating/asteroid/airless,/area/space) -"c" = (/turf/closed/mineral/random/high_chance,/area/space) +"b" = (/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) +"c" = (/turf/closed/mineral/random/high_chance,/area/ruin/unpowered/no_grav) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaa diff --git a/_maps/RandomRuins/SpaceRuins/asteroid2.dmm b/_maps/RandomRuins/SpaceRuins/asteroid2.dmm index c6fafdd759..c39e9f5896 100644 --- a/_maps/RandomRuins/SpaceRuins/asteroid2.dmm +++ b/_maps/RandomRuins/SpaceRuins/asteroid2.dmm @@ -1,7 +1,7 @@ "a" = (/turf/open/space,/area/space) -"b" = (/turf/open/floor/plating/asteroid/airless,/area/space) -"c" = (/turf/closed/mineral,/area/space) -"d" = (/turf/closed/mineral/random/high_chance,/area/space) +"b" = (/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) +"c" = (/turf/closed/mineral,/area/ruin/unpowered/no_grav) +"d" = (/turf/closed/mineral/random/high_chance,/area/ruin/unpowered/no_grav) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaa diff --git a/_maps/RandomRuins/SpaceRuins/asteroid3.dmm b/_maps/RandomRuins/SpaceRuins/asteroid3.dmm index 408231bc71..982008462c 100644 --- a/_maps/RandomRuins/SpaceRuins/asteroid3.dmm +++ b/_maps/RandomRuins/SpaceRuins/asteroid3.dmm @@ -1,9 +1,9 @@ "a" = (/turf/open/space,/area/space) -"b" = (/turf/open/floor/plating/asteroid/airless,/area/space) -"c" = (/turf/closed/mineral,/area/space) -"d" = (/turf/closed/mineral/random/high_chance,/area/space) -"e" = (/obj/effect/decal/remains/human,/turf/open/floor/plating/asteroid/airless,/area/space) -"f" = (/obj/item/weapon/pickaxe/diamond,/turf/open/floor/plating/asteroid/airless,/area/space) +"b" = (/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) +"c" = (/turf/closed/mineral,/area/ruin/unpowered/no_grav) +"d" = (/turf/closed/mineral/random/high_chance,/area/ruin/unpowered/no_grav) +"e" = (/obj/effect/decal/remains/human,/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) +"f" = (/obj/item/weapon/pickaxe/diamond,/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaa diff --git a/_maps/RandomRuins/SpaceRuins/asteroid4.dmm b/_maps/RandomRuins/SpaceRuins/asteroid4.dmm index 0bc46ef7dc..8129432219 100644 --- a/_maps/RandomRuins/SpaceRuins/asteroid4.dmm +++ b/_maps/RandomRuins/SpaceRuins/asteroid4.dmm @@ -1,41 +1,39 @@ "a" = (/turf/open/space,/area/space) -"b" = (/turf/closed/mineral,/area/space) -"c" = (/turf/closed/mineral/random/high_chance,/area/space) -"d" = (/turf/open/floor/plating/asteroid/airless,/area/space) -"e" = (/turf/closed/mineral/clown,/area/ruin/unpowered) -"f" = (/turf/open/floor/plating/asteroid,/area/ruin/unpowered) -"g" = (/obj/item/weapon/shard,/obj/item/weapon/paper{info = "Extraction was successful! The disguise was perfect, the clowns never knew what hit 'em! Once I get back to base with the bananium samples I'll be rich, I tell you! RICH!"},/turf/open/floor/plating/asteroid,/area/ruin/unpowered) -"h" = (/obj/item/stack/sheet/mineral/bananium{amount = 15},/turf/open/floor/plating,/area/ruin/unpowered) -"i" = (/turf/open/floor/plating/asteroid,/turf/closed/wall/shuttle{dir = 2;icon_state = "swall_f10";layer = 2},/area/ruin/unpowered) -"j" = (/turf/closed/wall/shuttle{icon_state = "swall3";dir = 2},/area/ruin/unpowered) -"k" = (/obj/structure/chair{dir = 1},/obj/item/weapon/shard,/obj/effect/mob_spawn/human/clown{brute_damage = 120;oxy_damage = 75},/turf/open/floor/plasteel/shuttle,/area/ruin/unpowered) -"l" = (/obj/structure/chair{dir = 1},/obj/item/weapon/storage/pod{pixel_x = -26},/turf/open/floor/plasteel/shuttle,/area/ruin/unpowered) -"m" = (/turf/open/floor/plating,/obj/structure/shuttle/engine/propulsion/burst,/turf/closed/wall/shuttle{icon_state = "swall_f5";dir = 2},/area/ruin/unpowered) -"n" = (/obj/machinery/door/airlock/shuttle{name = "Escape Pod Airlock"},/turf/open/floor/plasteel/shuttle,/area/ruin/unpowered) -"o" = (/turf/open/floor/plating,/obj/structure/shuttle/engine/propulsion/burst,/turf/closed/wall/shuttle{icon_state = "swall_f9";dir = 2},/area/ruin/unpowered) -"p" = (/turf/closed/mineral,/area/ruin/unpowered) -"q" = (/turf/closed/mineral/random/high_chance,/area/ruin/unpowered) -"r" = (/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered) +"b" = (/turf/closed/mineral,/area/ruin/unpowered/no_grav) +"c" = (/turf/closed/mineral/random/high_chance,/area/ruin/unpowered/no_grav) +"d" = (/turf/closed/mineral,/area/ruin/unpowered) +"e" = (/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) +"f" = (/turf/closed/mineral/random/high_chance,/area/ruin/unpowered) +"g" = (/turf/closed/mineral/clown,/area/ruin/unpowered) +"h" = (/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered) +"i" = (/turf/open/floor/plating/asteroid,/area/ruin/unpowered) +"j" = (/turf/open/floor/plating/asteroid,/turf/closed/wall/mineral/titanium,/area/ruin/unpowered) +"k" = (/turf/open/floor/plating,/obj/item/stack/sheet/mineral/bananium{amount = 15},/turf/closed/wall/mineral/titanium,/area/ruin/unpowered) +"l" = (/turf/closed/wall/mineral/titanium,/area/ruin/unpowered) +"m" = (/obj/structure/chair{dir = 1},/obj/item/weapon/shard,/obj/effect/mob_spawn/human/clown{brute_damage = 120; oxy_damage = 75},/obj/item/weapon/paper{info = "Extraction was successful! The disguise was perfect, the clowns never knew what hit 'em! Once I get back to base with the bananium samples I'll be rich, I tell you! RICH!"},/obj/item/stack/sheet/mineral/bananium{amount = 15},/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"n" = (/obj/structure/chair{dir = 1},/obj/item/weapon/storage/pod{pixel_x = -26},/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"o" = (/obj/structure/shuttle/engine/propulsion/burst,/turf/closed/wall/mineral/titanium/overspace,/area/ruin/unpowered) +"p" = (/obj/machinery/door/airlock/titanium{name = "Escape Pod Airlock"},/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aabbbaaaaaaaaaaaaaaa acccbbbbaaaaaaaaaaaa -acccbbcbbbaaaaaapaaa -abbbbbbbbbbaaaappaaa -abddbbbbbbcaaaapppaa -aadddbbbbbcaaaappaaa -aaadddddbaaaaapppaaa -aaaaadddbaaaaappaaaa -aaaaaaaaaaaaaappaaaa -aaaaaaaaaaaaqqppaaaa -aaabaaaaaappqqpaaaaa -aaabaaaaapppeppaaaaa -aabbbaaarppeefpqaaaa -aabbbaaarrpghipqaaaa -abbbbaaarrpjkjppaaaa -abbaaaaaaapjljpaaaaa -aaaaabaaaaamnoaaaaaa +acccbbcbbbaaaaaadaaa +abbbbbbbbbbaaaaddaaa +abeebbbbbbcaaaadddaa +aaeeebbbbbcaaaaddaaa +aaaeeeeebaaaaadddaaa +aaaaaeeebaaaaaddaaaa +aaaaaaaaaaaaaaddaaaa +aaaaaaaaaaaaffddaaaa +aaabaaaaaaddffdaaaaa +aaabaaaaadddgddaaaaa +aabbbaaahddggidfaaaa +aabbbaaahhdjkjdfaaaa +abbbbaaahhdlmlddaaaa +abbaaaaaaadlnldaaaaa +aaaaabaaaaaopoaaaaaa aaabaaaaaaaaaaaaaaaa "} diff --git a/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm b/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm new file mode 100644 index 0000000000..e5abb0af59 --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm @@ -0,0 +1,289 @@ +"aa" = (/turf/open/space,/area/space) +"ab" = (/turf/closed/wall,/area/ruin/derelictoutpost/cargobay) +"ac" = (/obj/machinery/door/poddoor{id = "bigderelictshipdock"},/turf/open/floor/plating/airless,/area/ruin/derelictoutpost/cargobay) +"ad" = (/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) +"ae" = (/turf/open/floor/plating,/area/ruin/derelictoutpost/cargobay) +"af" = (/obj/structure/sign/vacuum{pixel_y = 32},/obj/effect/decal/cleanable/cobweb,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"ag" = (/obj/machinery/door/poddoor{id = "bigderelictshipdock"},/turf/open/floor/plating,/area/ruin/derelictoutpost/cargobay) +"ah" = (/obj/structure/sign/vacuum{pixel_y = 32},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"ai" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"aj" = (/obj/machinery/button/door{name = "tradepost entry doors"; pixel_y = 24},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"ak" = (/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"al" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"am" = (/turf/open/floor/engine,/area/ruin/derelictoutpost/cargobay) +"an" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"ao" = (/obj/machinery/power/apc{cell_type = 0; dir = 4; name = "Cargo Bay APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"ap" = (/obj/structure/table,/obj/machinery/light{dir = 8},/obj/item/weapon/reagent_containers/glass/bucket,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"aq" = (/turf/open/floor/engine,/turf/closed/wall/mineral/titanium/interior,/area/ruin/derelictoutpost/dockedship) +"ar" = (/obj/structure/shuttle/engine/propulsion/burst/right{dir = 1; icon_state = "burst_r"; name = "shuttle engine"; tag = "icon-burst_r (NORTH)"},/turf/open/floor/plating,/area/ruin/derelictoutpost/dockedship) +"as" = (/obj/structure/shuttle/engine/propulsion/burst/left{dir = 1; icon_state = "burst_l"; name = "shuttle engine"; tag = "icon-burst_l (NORTH)"},/turf/open/floor/plating,/area/ruin/derelictoutpost/dockedship) +"at" = (/turf/closed/wall/mineral/titanium,/area/ruin/derelictoutpost/dockedship) +"au" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"av" = (/obj/structure/table,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"aw" = (/obj/structure/table,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"ax" = (/obj/structure/window/reinforced{tag = "icon-rwindow (NORTH)"; icon_state = "rwindow"; dir = 1},/obj/structure/window/reinforced{tag = "icon-rwindow (WEST)"; icon_state = "rwindow"; dir = 8},/obj/structure/shuttle/engine/heater{tag = "icon-heater (NORTH)"; icon_state = "heater"; dir = 1},/turf/open/floor/mineral/titanium/yellow,/area/ruin/derelictoutpost/dockedship) +"ay" = (/obj/structure/window/reinforced{tag = "icon-rwindow (NORTH)"; icon_state = "rwindow"; dir = 1},/obj/structure/window/reinforced{tag = "icon-rwindow (EAST)"; icon_state = "rwindow"; dir = 4},/obj/structure/shuttle/engine/heater{tag = "icon-heater (NORTH)"; icon_state = "heater"; dir = 1},/turf/open/floor/mineral/titanium/yellow,/area/ruin/derelictoutpost/dockedship) +"az" = (/obj/structure/table,/obj/item/clothing/head/soft,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"aA" = (/turf/closed/wall,/area/ruin/derelictoutpost/powerstorage) +"aB" = (/obj/machinery/door/airlock/external,/turf/open/floor/plating,/area/ruin/derelictoutpost/powerstorage) +"aC" = (/turf/closed/mineral,/area/ruin/unpowered/no_grav) +"aD" = (/obj/machinery/door/poddoor{id = "bigderelictship"},/turf/open/floor/mineral/titanium/yellow,/area/ruin/derelictoutpost/dockedship) +"aE" = (/obj/structure/closet/crate/medical,/obj/item/weapon/storage/firstaid/o2,/turf/open/floor/mineral/titanium/yellow,/area/ruin/derelictoutpost/dockedship) +"aF" = (/obj/structure/closet/crate/medical,/obj/item/weapon/storage/firstaid/regular,/turf/open/floor/mineral/titanium/yellow,/area/ruin/derelictoutpost/dockedship) +"aG" = (/obj/structure/closet/crate/medical,/obj/item/weapon/storage/firstaid/brute,/turf/open/floor/mineral/titanium/yellow,/area/ruin/derelictoutpost/dockedship) +"aH" = (/obj/structure/closet/crate/engineering,/obj/item/weapon/storage/toolbox/mechanical,/turf/open/floor/mineral/titanium/yellow,/area/ruin/derelictoutpost/dockedship) +"aI" = (/obj/structure/closet/crate/engineering/electrical,/obj/item/weapon/storage/toolbox/electrical,/obj/item/weapon/stock_parts/cell/hyper,/obj/item/weapon/stock_parts/cell/high,/turf/open/floor/mineral/titanium/yellow,/area/ruin/derelictoutpost/dockedship) +"aJ" = (/obj/structure/table,/obj/item/clothing/gloves/fingerless,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"aK" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ruin/derelictoutpost) +"aL" = (/obj/machinery/door/airlock/external,/turf/open/floor/plating,/area/ruin/derelictoutpost) +"aM" = (/turf/open/floor/plating,/area/ruin/derelictoutpost/powerstorage) +"aN" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/turf/open/floor/plasteel/delivery,/area/ruin/derelictoutpost/cargobay) +"aO" = (/obj/structure/closet/crate/secure/loot,/turf/open/floor/mineral/titanium/yellow,/area/ruin/derelictoutpost/dockedship) +"aP" = (/obj/structure/closet/crate/internals,/obj/item/weapon/storage/toolbox/emergency,/obj/item/clothing/mask/breath,/obj/item/weapon/tank/internals/emergency_oxygen/engi,/obj/item/weapon/tank/internals/emergency_oxygen/engi,/obj/item/clothing/mask/breath,/turf/open/floor/mineral/titanium/yellow,/area/ruin/derelictoutpost/dockedship) +"aQ" = (/obj/structure/closet/crate/radiation,/obj/item/clothing/head/radiation,/obj/item/clothing/suit/radiation,/obj/item/device/geiger_counter,/turf/open/floor/mineral/titanium/yellow,/area/ruin/derelictoutpost/dockedship) +"aR" = (/turf/open/floor/plating,/area/ruin/derelictoutpost) +"aS" = (/turf/closed/wall/r_wall,/area/ruin/derelictoutpost/powerstorage) +"aT" = (/obj/structure/extinguisher_cabinet{pixel_x = -24},/turf/open/floor/plasteel/delivery,/area/ruin/derelictoutpost/cargobay) +"aU" = (/obj/structure/closet/crate/critter{name = "critter crate - mr.tiggles"; opened = 1},/obj/item/weapon/paper/crumpled/snowdin{info = "A crumpled piece of manifest paper, out of the barely legible pen writing, you can see something about a warning involving whatever was originally in the crate."},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plasteel/shuttle/yellow,/area/ruin/derelictoutpost/dockedship) +"aV" = (/obj/structure/closet/crate/engineering,/obj/item/weapon/storage/toolbox/mechanical,/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plasteel/shuttle/yellow,/area/ruin/derelictoutpost/dockedship) +"aW" = (/obj/structure/closet/crate/engineering/electrical,/obj/item/weapon/storage/toolbox/electrical,/obj/item/weapon/stock_parts/cell/hyper,/turf/open/floor/mineral/titanium/yellow,/area/ruin/derelictoutpost/dockedship) +"aX" = (/obj/structure/closet/crate,/turf/open/floor/plasteel/delivery,/area/ruin/derelictoutpost/cargobay) +"aY" = (/obj/structure/lattice,/turf/open/space,/area/space) +"aZ" = (/turf/closed/wall,/area/ruin/derelictoutpost) +"ba" = (/obj/item/clothing/head/helmet,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/powerstorage) +"bb" = (/obj/machinery/power/smes,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/powerstorage) +"bc" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell/hyper,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/powerstorage) +"bd" = (/obj/machinery/power/smes,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/powerstorage) +"be" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plasteel/shuttle,/area/ruin/derelictoutpost/dockedship) +"bf" = (/obj/effect/decal/cleanable/blood/old,/turf/open/floor/mineral/titanium/blue,/area/ruin/derelictoutpost/dockedship) +"bg" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/glowshroom/single,/turf/open/floor/plasteel/shuttle,/area/ruin/derelictoutpost/dockedship) +"bh" = (/obj/machinery/button/door{id = "bigderelictship"; name = "shuttle cargo doors"; pixel_x = 24},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plasteel/shuttle,/area/ruin/derelictoutpost/dockedship) +"bi" = (/obj/effect/decal/cleanable/cobweb,/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"bj" = (/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"bk" = (/obj/structure/sign/vacuum{pixel_y = 32},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"bl" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"bm" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (NORTHWEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 9},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"bn" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (EAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 4},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"bo" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/glowshroom/single,/obj/structure/sign/vacuum{pixel_y = 32},/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (EAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 4},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"bp" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (NORTHEAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 5},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"bq" = (/obj/effect/mob_spawn/human/corpse/nanotrasensoldier{helmet = null; id_job = "Tradepost Officer"; name = "Tradeport Officer"; random = 1},/obj/item/weapon/paper/crumpled/snowdin{icon_state = "scrap_bloodied"; info = "If anyone finds this, please, don't let my kids know I died a coward.."},/obj/effect/decal/cleanable/blood/old{name = "dried blood splatter"; pixel_x = -29},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/powerstorage) +"br" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/powerstorage) +"bs" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/powerstorage) +"bt" = (/obj/machinery/door/airlock/titanium,/turf/open/floor/mineral/titanium/blue,/area/ruin/derelictoutpost/dockedship) +"bu" = (/turf/open/floor/mineral/titanium/blue,/area/ruin/derelictoutpost/dockedship) +"bv" = (/obj/item/chair,/obj/effect/decal/cleanable/blood/old,/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plasteel/shuttle,/area/ruin/derelictoutpost/dockedship) +"bw" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (NORTHEAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 5},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plasteel/shuttle,/area/ruin/derelictoutpost/dockedship) +"bx" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"by" = (/obj/machinery/door/airlock/glass_security{id_tag = "innerbrig"; name = "Security Checkpoint"; req_access_txt = "63"},/turf/open/floor/plasteel/darkred,/area/ruin/derelictoutpost) +"bz" = (/turf/open/floor/plasteel/darkred,/area/ruin/derelictoutpost) +"bA" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plasteel/darkred,/area/ruin/derelictoutpost) +"bB" = (/obj/effect/decal/cleanable/cobweb{icon_state = "cobweb2"},/obj/structure/table,/obj/machinery/recharger,/turf/open/floor/plasteel/darkred,/area/ruin/derelictoutpost) +"bC" = (/turf/closed/wall/r_wall,/area/ruin/derelictoutpost) +"bD" = (/obj/machinery/light{dir = 8},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"bE" = (/obj/effect/decal/cleanable/blood/old{icon_state = "trails_1"; name = "dried blood trail"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"bF" = (/obj/structure/alien/resin/wall{color = "#8EC127"; desc = "Thick material shaped into a wall. Eugh."; icon_state = "smooth"; name = "gelatinous wall"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"bG" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (NORTH)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 1},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"bH" = (/obj/item/ammo_casing/c45{caliber = null; desc = "A .45 bullet casing. This one is spent."; icon_state = "s-casing"; name = "spent bullet casing"},/obj/machinery/light{dir = 8},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/powerstorage) +"bI" = (/obj/item/weapon/gun/ballistic/automatic/pistol/m1911{spawnwithmagazine = 0},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/powerstorage) +"bJ" = (/turf/open/floor/plasteel,/area/ruin/derelictoutpost/powerstorage) +"bK" = (/obj/structure/table,/obj/machinery/light{dir = 8},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"bL" = (/obj/structure/table,/turf/open/floor/mineral/titanium/blue,/area/ruin/derelictoutpost/dockedship) +"bM" = (/obj/machinery/computer,/turf/open/floor/mineral/titanium/blue,/area/ruin/derelictoutpost/dockedship) +"bN" = (/obj/structure/table_frame,/obj/item/stack/sheet/metal,/obj/effect/decal/cleanable/blood/old{icon_state = "trails_1"; name = "dried blood trail"},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plasteel/shuttle,/area/ruin/derelictoutpost/dockedship) +"bO" = (/obj/item/weapon/shard,/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plasteel/shuttle,/area/ruin/derelictoutpost/dockedship) +"bP" = (/obj/effect/gibspawner/human,/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"bQ" = (/obj/structure/filingcabinet,/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/darkred,/area/ruin/derelictoutpost) +"bR" = (/obj/item/weapon/shard,/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plasteel/darkred,/area/ruin/derelictoutpost) +"bS" = (/obj/item/chair,/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plasteel/darkred,/area/ruin/derelictoutpost) +"bT" = (/obj/effect/decal/cleanable/blood/old,/obj/machinery/button/door{id = "bigderelictcheckpoint"; name = "security checkpoint control"; pixel_y = -24},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plasteel/darkred,/area/ruin/derelictoutpost) +"bU" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (EAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 4},/turf/open/floor/plating{icon_plating = "wall_thermite"; icon_state = "wall_thermite"; name = "melted wall"},/area/ruin/derelictoutpost) +"bV" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (EAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 4},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"bW" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (SOUTHEAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 6},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"bX" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (NORTH)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 1},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"bY" = (/obj/item/device/gps{gpstag = "Distress Signal"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/powerstorage) +"bZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/powerstorage) +"ca" = (/obj/machinery/power/apc{cell_type = 0; dir = 4; name = "Power Storage APC"; pixel_x = 23; pixel_y = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/powerstorage) +"cb" = (/obj/structure/closet/wardrobe/cargotech,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"cc" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/ruin/derelictoutpost/dockedship) +"cd" = (/obj/structure/grille/broken,/obj/item/weapon/shard,/obj/effect/decal/cleanable/blood/old{icon_state = "trails_1"; name = "dried blood trail"},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plating,/area/ruin/derelictoutpost/dockedship) +"ce" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"cf" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{tag = "icon-rwindow (NORTH)"; icon_state = "rwindow"; dir = 1},/turf/open/floor/plasteel/darkred,/area/ruin/derelictoutpost) +"cg" = (/obj/item/weapon/shard,/obj/item/stack/cable_coil{amount = 2; icon_state = "coil_red2"; item_state = "coil_red"},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/table_frame,/obj/item/stack/sheet/metal,/obj/item/stack/sheet/plasteel,/turf/open/floor/plasteel/darkred,/area/ruin/derelictoutpost) +"ch" = (/obj/structure/extinguisher_cabinet{pixel_x = -24},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"ci" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/glowshroom/single,/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"cj" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"ck" = (/obj/machinery/power/apc{cell_type = 0; dir = 2; name = "Tradepost APC"; pixel_x = 0; pixel_y = -24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"cl" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/glowshroom/single,/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (NORTH)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 1},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"cm" = (/obj/structure/alien/resin/wall{color = "#8EC127"; desc = "Thick material shaped into a wall. Eugh."; icon_state = "smooth"; name = "gelatinous wall"},/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"cn" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/electrical,/obj/item/stack/cable_coil,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/powerstorage) +"co" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/powerstorage) +"cp" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/powerstorage) +"cq" = (/obj/structure/barricade/wooden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/powerstorage) +"cr" = (/obj/machinery/door/airlock/engineering{name = "Power Storage"; req_access_txt = "10"},/obj/structure/barricade/wooden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/powerstorage) +"cs" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"ct" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"cu" = (/obj/effect/decal/cleanable/blood/old{icon_state = "trails_1"; name = "dried blood trail"},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plating,/area/ruin/derelictoutpost/cargobay) +"cv" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plating,/area/ruin/derelictoutpost/cargobay) +"cw" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"cx" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"cy" = (/obj/machinery/door/airlock/glass,/obj/machinery/door/poddoor{id = "bigderelictcheckpoint"; name = "checkpoint security doors"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"cz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"cA" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"cB" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"cC" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/mob/living/simple_animal/hostile/creature{desc = "Awh its so sm-OH GOD WHAT THE FUCK."; health = 25; maxHealth = 25; name = "hatchling"; resize = 0.85},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"cD" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (SOUTHWEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 10},/mob/living/simple_animal/hostile/creature{desc = "Awh its so sm-OH GOD WHAT THE FUCK."; health = 25; maxHealth = 25; name = "hatchling"; resize = 0.85},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"cE" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (EAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 4},/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"cF" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (NORTHEAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 5},/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"cG" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"cH" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"cI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/janitorialcart,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"cJ" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/item/weapon/mop,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"cK" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (SOUTHWEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 10},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"cL" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (NORTHEAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 5},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"cM" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/glowshroom/single,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"cN" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"cO" = (/obj/machinery/light,/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"cP" = (/obj/item/weapon/shard,/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"cQ" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"cR" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"cS" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (NORTH)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 1},/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"cT" = (/obj/item/ammo_casing/c45{caliber = null; desc = "A .45 bullet casing. This one is spent."; icon_state = "s-casing"; name = "spent bullet casing"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"cU" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"cV" = (/obj/effect/decal/cleanable/xenoblood/xsplatter,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"cW" = (/turf/open/floor/plasteel/delivery,/area/ruin/derelictoutpost/cargobay) +"cX" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (NORTH)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 1},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"cY" = (/obj/structure/grille/broken,/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plating,/area/ruin/derelictoutpost) +"cZ" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (NORTH)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 1},/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"da" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/glowshroom/single,/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"db" = (/obj/item/ammo_casing/c45{caliber = null; desc = "A .45 bullet casing. This one is spent."; icon_state = "s-casing"; name = "spent bullet casing"},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"dc" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/machinery/light,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"dd" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (SOUTHWEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 10},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"de" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (EAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 4},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"df" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (EAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 4},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/machinery/light,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"dg" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (EAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 4},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"dh" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (EAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 4},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/door_assembly/door_assembly_mai{density = 0; desc = "A pried-open airlock. Scratch marks mark the sidings of the door."; name = "pried-open airlock"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/open/floor/plating,/area/ruin/derelictoutpost/cargobay) +"di" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (NORTHEAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 5},/obj/effect/decal/cleanable/cobweb{icon_state = "cobweb2"},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating,/area/ruin/derelictoutpost) +"dj" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/item/weapon/shard,/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"dk" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old,/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"dl" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/mob/living/simple_animal/hostile/creature{name = "Miss Tiggles"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"dm" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old,/obj/structure/alien/gelpod,/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"dn" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (WEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 8},/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"do" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (SOUTHEAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 6},/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"dp" = (/obj/machinery/light{dir = 8},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"dq" = (/obj/effect/decal/cleanable/xenoblood/xsplatter,/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"dr" = (/obj/effect/decal/cleanable/blood/old{icon_state = "trails_1"; name = "dried blood trail"},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/ruin/derelictoutpost) +"ds" = (/turf/closed/mineral,/area/ruin/derelictoutpost) +"dt" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/glowshroom/single,/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"du" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/item/weapon/gun/ballistic/automatic/pistol/m1911{spawnwithmagazine = 0},/obj/item/ammo_box/magazine/m45,/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"dv" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (NORTHWEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 9},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"dw" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (EAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 4},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"dx" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (EAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 4},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"dy" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (EAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 4},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/glowshroom/single,/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"dz" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (NORTHEAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 5},/obj/effect/decal/cleanable/cobweb{icon_state = "cobweb2"},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"dA" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (EAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 4},/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"dB" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (SOUTHEAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 6},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/ruin/derelictoutpost) +"dC" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old{icon_state = "trails_1"; name = "dried blood trail"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"dD" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old,/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"dE" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"dF" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (SOUTHWEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 10},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"dG" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (WEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 8},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"dH" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (SOUTHEAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 6},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"dI" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/ruin/derelictoutpost) +"dJ" = (/obj/item/weapon/gun/ballistic/automatic/pistol/m1911{spawnwithmagazine = 0},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"dK" = (/obj/item/ammo_casing/c45{caliber = null; desc = "A .45 bullet casing. This one is spent."; icon_state = "s-casing"; name = "spent bullet casing"},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (NORTHEAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 5},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"dL" = (/turf/closed/wall,/area/ruin/derelictoutpost/cargostorage) +"dM" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (NORTHWEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 9},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/ruin/derelictoutpost) +"dN" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (WEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 8},/turf/open/floor/plating{icon_plating = "wall_thermite"; icon_state = "wall_thermite"; name = "melted wall"},/area/ruin/derelictoutpost) +"dO" = (/obj/structure/alien/resin/membrane{color = "#4BAE56"; desc = "A strange combination of thin, gelatinous material."; icon_state = "smooth"; name = "gelatinous membrane"},/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (WEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 8},/turf/open/floor/plating{icon_plating = "wall_thermite"; icon_state = "wall_thermite"; name = "melted wall"},/area/ruin/derelictoutpost) +"dP" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/glowshroom/single,/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (WEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 8},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"dQ" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (SOUTHEAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 6},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"dR" = (/obj/structure/alien/resin/membrane{color = "#4BAE56"; desc = "A strange combination of thin, gelatinous material."; icon_state = "smooth"; name = "gelatinous membrane"},/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"dS" = (/obj/item/ammo_box/magazine/m45,/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old{icon_state = "trails_1"; name = "dried blood trail"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"dT" = (/obj/machinery/suit_storage_unit/standard_unit,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargostorage) +"dU" = (/obj/machinery/suit_storage_unit/standard_unit,/obj/machinery/light{dir = 1},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargostorage) +"dV" = (/obj/structure/closet/crate,/obj/item/stack/sheet/glass/fifty,/obj/item/stack/sheet/glass/fifty,/turf/open/floor/plasteel/delivery,/area/ruin/derelictoutpost/cargostorage) +"dW" = (/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargostorage) +"dX" = (/obj/structure/closet/crate/secure/loot,/turf/open/floor/plasteel/delivery,/area/ruin/derelictoutpost/cargostorage) +"dY" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/item/stack/sheet/plasteel/twenty,/turf/open/floor/plasteel/delivery,/area/ruin/derelictoutpost/cargostorage) +"dZ" = (/obj/structure/extinguisher_cabinet{pixel_y = 32},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargostorage) +"ea" = (/obj/structure/closet/crate,/obj/item/weapon/storage/pill_bottle/stimulant,/turf/open/floor/plasteel/delivery,/area/ruin/derelictoutpost/cargostorage) +"eb" = (/obj/structure/closet/crate,/obj/item/target/syndicate,/obj/item/target/clown,/obj/item/target/clown,/obj/item/target/alien,/obj/item/target,/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/delivery,/area/ruin/derelictoutpost/cargostorage) +"ec" = (/obj/structure/closet/crate/medical,/obj/item/weapon/storage/firstaid/regular{empty = 1; name = "First-Aid (empty)"},/turf/open/floor/plasteel/delivery,/area/ruin/derelictoutpost/cargostorage) +"ed" = (/obj/structure/closet/crate/medical,/obj/item/weapon/storage/firstaid/regular{empty = 1; name = "First-Aid (empty)"},/obj/item/weapon/storage/firstaid/o2,/turf/open/floor/plasteel/delivery,/area/ruin/derelictoutpost/cargostorage) +"ee" = (/obj/effect/decal/cleanable/blood/old{icon_state = "trails_1"; name = "dried blood trail"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/ruin/derelictoutpost) +"ef" = (/obj/structure/alien/resin/membrane{color = "#4BAE56"; desc = "A strange combination of thin, gelatinous material."; icon_state = "smooth"; name = "gelatinous membrane"},/turf/open/floor/plating/asteroid/airless,/area/ruin/derelictoutpost) +"eg" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/mob/living/simple_animal/hostile/creature{desc = "Awh its so sm-OH GOD WHAT THE FUCK."; health = 25; maxHealth = 25; name = "hatchling"; resize = 0.85},/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"eh" = (/obj/effect/decal/cleanable/blood/old{icon_state = "trails_1"; name = "dried blood trail"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"ei" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargostorage) +"ej" = (/obj/structure/closet/crate,/obj/item/stack/sheet/cloth/ten,/obj/item/stack/sheet/cloth/ten,/turf/open/floor/plasteel/delivery,/area/ruin/derelictoutpost/cargostorage) +"ek" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/item/stack/sheet/cardboard/fifty,/turf/open/floor/plasteel/delivery,/area/ruin/derelictoutpost/cargostorage) +"el" = (/obj/machinery/power/apc{cell_type = 0; dir = 4; name = "Cargo Storage APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargostorage) +"em" = (/turf/closed/wall,/area/ruin/unpowered/no_grav) +"en" = (/obj/structure/alien/resin/wall{color = "#8EC127"; desc = "Thick material shaped into a wall. Eugh."; icon_state = "smooth"; name = "gelatinous wall"},/turf/open/floor/plating/asteroid,/area/ruin/unpowered/no_grav) +"eo" = (/obj/structure/closet/crate/internals,/obj/item/weapon/storage/toolbox/emergency,/obj/item/clothing/mask/breath,/turf/open/floor/plasteel/delivery,/area/ruin/derelictoutpost/cargostorage) +"ep" = (/obj/structure/closet/crate/engineering/electrical,/obj/item/weapon/storage/toolbox/electrical,/obj/item/stack/cable_coil,/turf/open/floor/plasteel/delivery,/area/ruin/derelictoutpost/cargostorage) +"eq" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/item/weapon/crowbar,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargostorage) +"er" = (/obj/structure/closet/crate/medical,/obj/item/weapon/storage/firstaid/regular,/turf/open/floor/plasteel/delivery,/area/ruin/derelictoutpost/cargostorage) +"es" = (/obj/structure/closet/crate/engineering,/obj/item/weapon/storage/toolbox/mechanical,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargostorage) +"et" = (/obj/structure/closet/crate/medical,/obj/item/weapon/storage/firstaid/brute,/obj/item/weapon/storage/firstaid/fire,/turf/open/floor/plasteel/delivery,/area/ruin/derelictoutpost/cargostorage) +"eu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargostorage) +"ev" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/alien/gelpod,/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"ew" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (WEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 8},/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargostorage) +"ex" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (WEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 8},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargostorage) +"ey" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (WEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 8},/turf/open/floor/plasteel/delivery,/area/ruin/derelictoutpost/cargostorage) +"ez" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (NORTHEAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 5},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargostorage) +"eA" = (/obj/structure/closet/crate,/obj/item/stack/sheet/metal/fifty,/obj/item/stack/sheet/metal/fifty,/turf/open/floor/plasteel/delivery,/area/ruin/derelictoutpost/cargostorage) +"eB" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/item/device/paicard,/obj/machinery/light,/turf/open/floor/plasteel/delivery,/area/ruin/derelictoutpost/cargostorage) +"eC" = (/obj/structure/closet/crate,/obj/item/device/pda/clear,/turf/open/floor/plasteel/delivery,/area/ruin/derelictoutpost/cargostorage) +"eD" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargostorage) +"eE" = (/obj/structure/closet/crate/internals,/obj/item/weapon/tank/internals/emergency_oxygen/engi,/obj/item/weapon/tank/internals/emergency_oxygen/engi,/obj/item/weapon/storage/firstaid/toxin,/turf/open/floor/plasteel/delivery,/area/ruin/derelictoutpost/cargostorage) +"eF" = (/obj/structure/closet/crate,/turf/open/floor/plasteel/delivery,/area/ruin/derelictoutpost/cargostorage) +"eG" = (/obj/machinery/light,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargostorage) +"eH" = (/obj/structure/closet/crate/engineering,/obj/item/device/multitool,/turf/open/floor/plasteel/delivery,/area/ruin/derelictoutpost/cargostorage) +"eI" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (SOUTHWEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 10},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargostorage) +"eJ" = (/obj/structure/door_assembly/door_assembly_mai{density = 0; desc = "A pried-open airlock. Scratch marks mark the sidings of the door."; name = "pried-open airlock"},/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (EAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/open/floor/plating,/area/ruin/derelictoutpost/cargostorage) +"eK" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (SOUTHEAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 6},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating,/area/ruin/derelictoutpost) +"eL" = (/obj/machinery/door/airlock/maintenance,/turf/open/floor/plating,/area/ruin/derelictoutpost/cargobay) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabacacacacacacacacacabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaadabababaeaeaeaeaeaeaeaeaeabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaadabafabagagagagagagagagagabahabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaadadabaiajaeaeaeaeaeaeaeaeaeajakabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaadadabalakaeamamamamamamamaeanaoabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaadadabapakaeaqarasatarasaqaeauavabadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaadadabawakaeataxayataxayataeauazabadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaAaBaAaCaCabawakaeaDaEaFaGaHaIaDaeauaJabadadaaaaaaaaaaaKaLaKadadadaKaLaKaaaaaa +aaaAaMaAaCaCabaNakaeaDaOaPaQaHaIaDaeauaNabadaaaaaaaaaaadaKaRaKadadadaKaRaKadadaa +aaaAaBaAaAaAaSaTakaeaDaOaPaUaVaWaDaeauaXabadaYaYaYaYaYaZaZaLaZaZaZaZaZaLaZaZadad +aaaAbabbbcbdaSaJakaeatbebfbebgbhataeauavabaZaKaKaKaKaZaZbibjbkblbmbnbobnbpaZaCad +aaaAbqbrbsbraSazakaebtbubebvbwbebtaeaubxbxbybzbzbAbBbCbDbjblblblbEbFbFbFbGaZaCad +aaaAbHbIbsbJaSbKakaeatbebLbMbNbOataeaubPbxbCbQbRbSbTbUbnbnbnbnbVbWaZblblbXaZaCaC +aaaAbJbYbZcaaScbakaeaqatcccccdataqaecebxakbCbCcfcgbCbCchbjcicjckbjbFbFbFclaZcmcm +aaaAcncocpcqcrcsctaeaeaeaeaecucvaecvcwcxcscyczczcAczcycAczcAcBaZbFbFcCbFcDcEcFcm +aaaAaAaSaSaSaScGcHcscIcJcxcxcKcLcMcxcNakakbCcOcPblcQbCbFbFbFbFbFbFblblbFcRcRcScm +aaadadabcTcTcUakcVbxbxbxaXcWcWcXbxbxceakabaZaZaKcYaKaZblciblblbFciblbFbFcmcmcZcm +adadaCabakbxdadbdcbxcVakcWaNcWdddededfdgdhdiaZcRdjcRaZdkblbldlbFbldkbFcidmdndocm +adaCaCabdpdqabababababababababababababababdraZdsdtcRaZbldmbFbFbFbFcCbFbFcmducRcm +adadaCabcTbxabdvdwdxdydzdsdsdvdxdAdAdAdxbUdBaZcRcRdsaZbldCbFblcCbFblblbldDcRcmcm +adaCaCabbxbxabdmdEcmdsdFdGdGdHdsdscmcRcRaZdIaZcRcRdsaZbldCbFciblbFbFbFbFcmdtcmaa +aaadaCabdJdKdLdLdLdLdLdLdLdLdLdLdLdLdLdLdLdMdNdndndndOdPdQbFblcCblbldkblcmcRdRad +aaadaCabbxdSdLdTdUdVdWdXdXdYdZeadWebeceddLeeaZefefefaZcRegcRcRdDcRblcRcmcmcRdRad +aaadaCabbxeheidWdWejdWdWdWdWdWekdWdWdWeldLeeemaCaCadencRcRcRdDcmcmcmcmcmcRcRdRaa +aaadadabdpeheidWdWeodWdWepeqdWerdWeseteudLeeemaCaCadencRcRevblcmcRdtcRegblevcmaa +aaadadabakddewexexexexexeyexexexexexeyezdLeeemaCaCadencmcRdDcRcmcRcmcmdRdRcmcmaa +aaadadabakakdLeAeBeCdWeDeEdWdXdXeFeGeHeIeJeKemaCaCadadcmcmcRegcmcRcmaaaaaaaaaaaa +aaadadabeLabdLdLdLdLdLdLdLdLdLdLdLdLdLdLdLaRemadadadadaacmcRcRcRcRcmaaaaaaaaaaaa +aaadadaZaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRemadadaaaaaacmcmdRdRcmcmaaaaaaaaaaaa +aaaaadaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZemadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaadadadadadadadadaCaCaCaCaCaCaCaCaCaCaCaCadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaadadaaaaadadadadadaCaCaCaCaCaCaCadadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaadadadadadadadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +"} diff --git a/_maps/RandomRuins/SpaceRuins/bus.dmm b/_maps/RandomRuins/SpaceRuins/bus.dmm new file mode 100644 index 0000000000..ce578a0bab --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/bus.dmm @@ -0,0 +1,821 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/open/space, +/area/space) +"ab" = ( +/turf/closed/mineral/ash_rock, +/area/ruin/unpowered/no_grav) +"ac" = ( +/obj/item/trash/sosjerky, +/turf/open/space, +/area/space) +"ad" = ( +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"ae" = ( +/mob/living/simple_animal/hostile/lizard, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"af" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"ag" = ( +/obj/item/stack/rods{ + amount = 50 + }, +/obj/item/weapon/stock_parts/manipulator/femto, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"ah" = ( +/obj/item/stack/cable_coil{ + amount = 5 + }, +/obj/item/weapon/shard{ + icon_state = "small" + }, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"ai" = ( +/obj/item/weapon/book/random, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"aj" = ( +/obj/structure/fluff/bus/dense, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"ak" = ( +/obj/structure/fluff/bus/passable{ + tag = "icon-wheredahoodat"; + icon_state = "wheredahoodat" + }, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"al" = ( +/obj/effect/decal/cleanable/salt, +/obj/item/weapon/reagent_containers/food/condiment/saltshaker, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"am" = ( +/obj/structure/fluff/bus/passable/seat{ + tag = "icon-backseat"; + icon_state = "backseat" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/airless/black{ + icon_state = "bus" + }, +/area/ruin/unpowered/no_grav) +"an" = ( +/obj/structure/fluff/bus/passable/seat{ + tag = "icon-backseat"; + icon_state = "backseat" + }, +/obj/item/weapon/reagent_containers/food/snacks/faggot, +/turf/open/floor/plasteel/airless/black{ + icon_state = "bus" + }, +/area/ruin/unpowered/no_grav) +"ao" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/airless/black{ + icon_state = "bus" + }, +/area/ruin/unpowered/no_grav) +"ap" = ( +/obj/structure/fluff/bus/passable/seat{ + icon_state = "backseat"; + pixel_y = 15; + tag = "icon-backseat" + }, +/turf/open/floor/plasteel/airless/black{ + icon_state = "bus" + }, +/area/ruin/unpowered/no_grav) +"aq" = ( +/obj/structure/fluff/bus/passable/seat{ + tag = "icon-backseat"; + icon_state = "backseat" + }, +/obj/item/weapon/reagent_containers/food/snacks/faggot, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/airless/black{ + icon_state = "bus" + }, +/area/ruin/unpowered/no_grav) +"ar" = ( +/obj/structure/fluff/bus/passable/seat{ + tag = "icon-backseat"; + icon_state = "backseat" + }, +/obj/item/weapon/reagent_containers/food/snacks/grown/citrus/orange, +/turf/open/floor/plasteel/airless/black{ + icon_state = "bus" + }, +/area/ruin/unpowered/no_grav) +"as" = ( +/obj/structure/fluff/bus/passable/seat/driver{ + icon_state = "driverseat"; + pixel_y = 17; + tag = "icon-driverseat" + }, +/obj/item/weapon/reagent_containers/food/snacks/grown/cherry_bomb, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/airless/black{ + icon_state = "bus" + }, +/area/ruin/unpowered/no_grav) +"at" = ( +/obj/structure/fluff/bus/dense{ + tag = "icon-hoodtop"; + icon_state = "hoodtop" + }, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"au" = ( +/obj/item/clothing/head/cone, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"av" = ( +/obj/structure/table, +/obj/item/device/paicard, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"aw" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"ax" = ( +/obj/structure/fluff/bus/passable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/airless/black{ + icon_state = "bus" + }, +/area/ruin/unpowered/no_grav) +"ay" = ( +/obj/structure/fluff/bus/passable, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plasteel/airless/black{ + icon_state = "bus" + }, +/area/ruin/unpowered/no_grav) +"az" = ( +/obj/structure/fluff/bus/passable, +/turf/open/floor/plasteel/airless/black{ + icon_state = "bus" + }, +/area/ruin/unpowered/no_grav) +"aA" = ( +/obj/structure/fluff/bus/passable, +/obj/structure/closet/crate/freezer, +/obj/item/weapon/reagent_containers/food/snacks/faggot, +/obj/item/weapon/reagent_containers/food/snacks/faggot, +/obj/item/weapon/reagent_containers/food/snacks/faggot, +/turf/open/floor/plasteel/airless/black{ + icon_state = "bus" + }, +/area/ruin/unpowered/no_grav) +"aB" = ( +/obj/structure/fluff/bus/passable, +/obj/effect/mine/sound/bwoink, +/turf/open/floor/plasteel/airless/black{ + icon_state = "bus" + }, +/area/ruin/unpowered/no_grav) +"aC" = ( +/obj/structure/fluff/bus/passable, +/obj/item/weapon/reagent_containers/food/condiment/saltshaker, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/airless/black{ + icon_state = "bus" + }, +/area/ruin/unpowered/no_grav) +"aD" = ( +/obj/structure/fluff/bus/passable, +/obj/item/weapon/reagent_containers/food/snacks/faggot, +/turf/open/floor/plasteel/airless/black{ + icon_state = "bus" + }, +/area/ruin/unpowered/no_grav) +"aE" = ( +/obj/structure/fluff/bus/passable{ + tag = "icon-topdoor"; + icon_state = "topdoor" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/airless/black{ + icon_state = "bus" + }, +/area/ruin/unpowered/no_grav) +"aF" = ( +/obj/structure/fluff/bus/dense{ + tag = "icon-hoodbottom"; + icon_state = "hoodbottom" + }, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"aG" = ( +/obj/structure/fluff/bus/passable/seat{ + tag = "icon-backseat"; + icon_state = "backseat" + }, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"aH" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/drinks/coffee, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"aI" = ( +/obj/structure/fluff/bus/dense{ + tag = "icon-frontwallbottomrear"; + icon_state = "frontwallbottomrear" + }, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"aJ" = ( +/obj/structure/fluff/bus/dense{ + tag = "icon-frontwallbottom"; + icon_state = "frontwallbottom" + }, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"aK" = ( +/obj/structure/fluff/bus/dense{ + tag = "icon-reartire"; + icon_state = "reartire" + }, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"aL" = ( +/obj/structure/fluff/bus/dense{ + tag = "icon-frontwallbottom"; + icon_state = "frontwallbottom" + }, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"aM" = ( +/obj/structure/fluff/bus/passable{ + icon_state = "bottomdoor"; + layer = 3; + tag = "icon-bottomdoor" + }, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"aN" = ( +/obj/structure/fluff/bus/dense{ + tag = "icon-fronttire"; + icon_state = "fronttire" + }, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"aO" = ( +/obj/effect/decal/cleanable/robot_debris/old, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"aP" = ( +/obj/item/weapon/reagent_containers/food/snacks/faggot, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"aQ" = ( +/obj/item/weapon/reagent_containers/glass/rag, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"aR" = ( +/obj/item/weapon/storage/toolbox/mechanical, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"aS" = ( +/obj/item/clothing/head/helmet/space, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"aT" = ( +/obj/effect/decal/remains/human, +/obj/item/clothing/head/helmet/space, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"aU" = ( +/obj/structure/fluff/bus/passable/seat{ + tag = "icon-backseat"; + icon_state = "backseat" + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/reagent_containers/food/snacks/faggot, +/turf/open/floor/plasteel/airless/black{ + icon_state = "bus" + }, +/area/ruin/unpowered/no_grav) +"aV" = ( +/obj/structure/fluff/bus/passable/seat{ + tag = "icon-backseat"; + icon_state = "backseat" + }, +/obj/effect/decal/remains/human, +/turf/open/floor/plasteel/airless/black{ + icon_state = "bus" + }, +/area/ruin/unpowered/no_grav) +"aW" = ( +/obj/structure/fluff/bus/passable/seat/driver{ + icon_state = "driverseat"; + pixel_y = 17; + tag = "icon-driverseat" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/airless/black{ + icon_state = "bus" + }, +/area/ruin/unpowered/no_grav) +"aX" = ( +/obj/effect/decal/cleanable/shreds, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"aY" = ( +/obj/effect/decal/remains/human, +/obj/item/clothing/suit/space, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"aZ" = ( +/obj/structure/fluff/bus/passable, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/reagent_containers/food/snacks/faggot, +/turf/open/floor/plasteel/airless/black{ + icon_state = "bus" + }, +/area/ruin/unpowered/no_grav) +"ba" = ( +/obj/structure/fluff/bus/passable, +/obj/item/weapon/banhammer, +/turf/open/floor/plasteel/airless/black{ + icon_state = "bus" + }, +/area/ruin/unpowered/no_grav) +"bb" = ( +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) + +(1,1,1) = {" +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 +ab +ab +ab +ad +ad +ad +au +aa +ad +ad +ad +aa +aa +"} +(3,1,1) = {" +aa +aa +aa +aa +ab +ab +ab +ab +ad +ad +aw +ad +ad +ad +ad +ad +ad +aa +"} +(4,1,1) = {" +aa +aa +aa +ab +ab +ab +ab +ab +ad +aw +ad +aP +aj +aU +az +aI +ad +ad +"} +(5,1,1) = {" +aa +aa +aa +ab +ab +ab +ab +ad +al +ad +ad +ad +aj +am +aZ +aK +ad +ad +"} +(6,1,1) = {" +aa +aa +ab +ab +ab +ab +ad +ad +ad +ad +aw +ad +aj +aV +ba +aL +ad +ad +"} +(7,1,1) = {" +aa +aa +ab +ab +ab +ad +ad +aj +am +ax +aI +ad +aj +aU +az +aJ +ad +ad +"} +(8,1,1) = {" +aa +ab +ab +ab +ab +ad +ad +aj +an +ay +aJ +ad +aj +aW +aE +aM +ad +ad +"} +(9,1,1) = {" +aa +ab +ab +ab +ab +ae +ad +aj +am +az +aK +ad +ak +at +aF +aN +ad +ad +"} +(10,1,1) = {" +ab +ab +ab +ab +ab +ab +ad +aj +ao +aA +aJ +aQ +ad +aX +ad +ad +ad +aa +"} +(11,1,1) = {" +ab +ab +ab +ab +ab +ab +ad +aj +ap +aB +aJ +ad +aR +ad +ad +au +ad +aa +"} +(12,1,1) = {" +ab +ab +ab +ab +ab +ab +ad +aj +aq +aC +aL +ad +ad +aY +ad +ad +aa +aa +"} +(13,1,1) = {" +aa +ab +ab +ab +ab +af +ad +aj +ar +ax +aJ +ad +aS +ad +bb +ad +aa +aa +"} +(14,1,1) = {" +ab +ab +ab +ab +ab +ag +ad +aj +am +aD +aJ +ad +aO +ad +ad +ad +aa +aa +"} +(15,1,1) = {" +ab +ab +ab +ab +ab +ah +ad +aj +as +aE +aM +ad +ad +aP +ad +aa +aa +aa +"} +(16,1,1) = {" +ab +ab +ab +ab +ab +ab +ai +ak +at +aF +aN +ad +ad +ad +ad +aa +aa +aa +"} +(17,1,1) = {" +aa +ab +ab +ab +ab +ab +ab +ad +au +ad +ad +au +ad +ad +ad +aa +aa +aa +"} +(18,1,1) = {" +aa +aa +ab +ab +ab +ab +ab +ab +ad +ad +aO +ad +ad +ad +ad +aa +aa +aa +"} +(19,1,1) = {" +aa +aa +aa +ab +ab +ab +ab +ab +ab +ad +ad +ad +aT +ad +ad +aa +aa +aa +"} +(20,1,1) = {" +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ad +ad +ad +ad +aa +aa +aa +aa +"} +(21,1,1) = {" +aa +aa +aa +aa +aa +ab +ab +ab +ad +aG +ad +ad +ad +ad +aa +aa +aa +aa +"} +(22,1,1) = {" +aa +ac +aa +aa +aa +aa +aa +ad +av +aH +ad +ad +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 +"} diff --git a/_maps/RandomRuins/SpaceRuins/caravanambush.dmm b/_maps/RandomRuins/SpaceRuins/caravanambush.dmm new file mode 100644 index 0000000000..5d476e66a4 --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/caravanambush.dmm @@ -0,0 +1,230 @@ +"aa" = (/turf/open/space,/area/space) +"ab" = (/turf/closed/wall/mineral/plastitanium,/area/ruin/powered) +"ac" = (/obj/machinery/door/airlock/external{icon_state = "door_locked"; locked = 1},/turf/open/floor/plasteel,/area/ruin/powered) +"ad" = (/turf/closed/wall,/area/ruin/powered) +"ae" = (/turf/open/space,/turf/closed/wall/mineral/plastitanium{dir = 1; icon_state = "diagonalWall3"},/area/ruin/powered) +"af" = (/obj/machinery/suit_storage_unit,/turf/open/floor/plasteel,/area/ruin/powered) +"ag" = (/turf/open/floor/plasteel,/area/ruin/powered) +"ah" = (/turf/open/floor/plating/airless,/area/ruin/powered) +"ai" = (/obj/machinery/door/airlock/external,/turf/open/floor/plasteel,/area/ruin/powered) +"aj" = (/obj/structure/statue/silver/medborg,/turf/open/floor/plasteel,/area/ruin/powered) +"ak" = (/mob/living/simple_animal/hostile/pirate/ranged{environment_smash = 0},/turf/open/floor/plasteel,/area/ruin/powered) +"al" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel,/area/ruin/powered) +"am" = (/obj/structure/closet{name = "pirate outfits"},/obj/item/clothing/head/collectable/pirate,/obj/item/clothing/suit/pirate,/obj/item/clothing/under/pirate,/obj/item/clothing/shoes/jackboots,/obj/item/clothing/head/bandana,/turf/open/floor/plasteel,/area/ruin/powered) +"an" = (/obj/structure/table,/obj/item/stack/sheet/mineral/gold{amount = 25},/obj/item/weapon/coin/plasma,/turf/open/floor/plasteel,/area/ruin/powered) +"ao" = (/obj/structure/table,/obj/item/stack/sheet/mineral/gold{amount = 25},/obj/item/weapon/coin/gold,/obj/item/weapon/coin/gold,/obj/item/weapon/coin/mythril,/obj/item/weapon/coin/plasma,/turf/open/floor/plasteel,/area/ruin/powered) +"ap" = (/obj/structure/table,/obj/item/weapon/coin/gold,/obj/item/weapon/coin/gold,/obj/item/weapon/coin/gold,/obj/item/weapon/coin/mythril,/obj/item/weapon/coin/plasma,/turf/open/floor/plasteel,/area/ruin/powered) +"aq" = (/obj/structure/table,/mob/living/simple_animal/parrot{faction = list("pirate"); name = "Pegwing"},/turf/open/floor/plasteel,/area/ruin/powered) +"ar" = (/obj/structure/shuttle/engine/propulsion/burst{dir = 4},/turf/open/floor/plating/airless,/area/ruin/powered) +"as" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 8},/turf/closed/wall/mineral/plastitanium,/area/ruin/powered) +"at" = (/obj/structure/bed,/obj/item/weapon/bedsheet/brown,/turf/open/floor/plasteel,/area/ruin/powered) +"au" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel,/area/ruin/powered) +"av" = (/obj/structure/rack,/obj/item/weapon/storage/bag/money/vault,/turf/open/floor/plasteel,/area/ruin/powered) +"aw" = (/obj/structure/closet/crate/secure/loot,/turf/open/floor/plasteel,/area/ruin/powered) +"ax" = (/obj/structure/table,/turf/open/floor/plasteel,/area/ruin/powered) +"ay" = (/obj/machinery/computer,/turf/open/floor/plasteel,/area/ruin/powered) +"az" = (/obj/structure/table,/obj/item/weapon/storage/bag/money/vault,/turf/open/floor/plasteel,/area/ruin/powered) +"aA" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/item/stack/sheet/mineral/gold{amount = 25},/obj/item/stack/sheet/mineral/bananium{amount = 5},/obj/item/stack/sheet/mineral/silver{amount = 25},/obj/item/stack/sheet/mineral/uranium{amount = 10},/obj/item/stack/sheet/mineral/diamond{amount = 5},/turf/open/floor/plasteel,/area/ruin/powered) +"aB" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ruin/powered) +"aC" = (/turf/closed/mineral,/area/ruin/unpowered/no_grav) +"aD" = (/obj/item/stack/rods,/turf/open/space,/area/space) +"aE" = (/obj/structure/fluff/broken_flooring{tag = "icon-pile (EAST)"; icon_state = "pile"; dir = 4},/turf/open/space,/area/space) +"aF" = (/mob/living/simple_animal/hostile/pirate,/turf/open/floor/plasteel,/area/ruin/powered) +"aG" = (/obj/structure/chair{dir = 1},/mob/living/simple_animal/hostile/pirate,/turf/open/floor/plasteel,/area/ruin/powered) +"aH" = (/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) +"aI" = (/turf/closed/wall/mineral/plastitanium,/area/ruin/unpowered/no_grav) +"aJ" = (/obj/machinery/door/airlock/external{icon_state = "door_locked"; locked = 1},/turf/open/floor/plating,/area/ruin/unpowered/no_grav) +"aK" = (/turf/closed/wall/mineral/iron,/area/ruin/unpowered/no_grav) +"aL" = (/obj/item/weapon/coin/mythril,/turf/open/floor/plasteel,/area/ruin/powered) +"aM" = (/obj/structure/chair,/turf/open/floor/plasteel,/area/ruin/powered) +"aN" = (/obj/structure/shuttle/engine/propulsion/burst{dir = 4},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"aO" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 8},/turf/closed/wall/mineral/plastitanium,/area/ruin/unpowered/no_grav) +"aP" = (/obj/structure/chair,/obj/item/weapon/shard,/obj/item/stack/sheet/metal,/turf/open/floor/plasteel/airless/shuttle/red,/area/ruin/unpowered/no_grav) +"aQ" = (/obj/structure/chair,/obj/effect/decal/cleanable/shreds,/turf/open/floor/plasteel/airless/shuttle/red,/area/ruin/unpowered/no_grav) +"aR" = (/obj/item/weapon/shard,/turf/open/floor/plasteel/airless/shuttle/red,/area/ruin/unpowered/no_grav) +"aS" = (/turf/open/floor/plating/airless{icon_plating = "platingdmg1"; icon_state = "platingdmg1"},/area/ruin/unpowered/no_grav) +"aT" = (/obj/structure/fluff/broken_flooring{tag = "icon-singular"; icon_state = "singular"},/turf/open/space,/area/space) +"aU" = (/obj/structure/rack,/obj/item/weapon/tank/internals/plasma/full,/obj/item/weapon/tank/internals/plasma/full,/obj/item/weapon/tank/internals/plasma/full,/turf/open/floor/plasteel,/area/ruin/powered) +"aV" = (/obj/structure/fluff/broken_flooring{tag = "icon-singular"; icon_state = "singular"},/obj/effect/decal/cleanable/shreds,/turf/open/floor/plasteel/airless/shuttle/red,/area/ruin/unpowered/no_grav) +"aW" = (/obj/effect/gibspawner/human,/turf/open/floor/plasteel/airless/shuttle/red,/area/ruin/unpowered/no_grav) +"aX" = (/turf/open/space,/turf/open/floor/plating/airless{icon = 'icons/obj/smooth_structures/lattice.dmi'; icon_plating = "lattice"; icon_state = "lattice"; name = "anchor chain"},/area/space) +"aY" = (/obj/structure/statue/gold/cmo,/turf/open/floor/plasteel,/area/ruin/powered) +"aZ" = (/obj/structure/table,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/turf/open/floor/plasteel,/area/ruin/powered) +"ba" = (/obj/structure/table,/obj/item/stack/sheet/mineral/gold{amount = 25},/turf/open/floor/plasteel,/area/ruin/powered) +"bb" = (/turf/open/space,/turf/closed/wall/mineral/plastitanium{dir = 4; icon_state = "diagonalWall3"},/area/ruin/powered) +"bc" = (/obj/structure/chair{dir = 1},/obj/item/stack/rods,/obj/effect/gibspawner/human,/turf/open/floor/plasteel/airless/shuttle/red,/area/ruin/unpowered/no_grav) +"bd" = (/obj/structure/chair{dir = 1},/obj/item/weapon/shard,/obj/item/stack/sheet/metal,/obj/effect/decal/cleanable/shreds,/turf/open/floor/plasteel/airless/shuttle/red,/area/ruin/unpowered/no_grav) +"be" = (/turf/open/floor/plasteel/airless/shuttle/red,/area/ruin/unpowered/no_grav) +"bf" = (/obj/item/stack/sheet/metal,/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) +"bg" = (/turf/open/floor/wood/airless,/area/ruin/unpowered/no_grav) +"bh" = (/obj/structure/closet/crate/secure/weapon,/obj/item/weapon/gun/ballistic/automatic/pistol/APS,/turf/open/floor/wood/airless,/area/ruin/unpowered/no_grav) +"bi" = (/mob/living/simple_animal/hostile/pirate/space{environment_smash = 0},/turf/open/floor/wood/airless,/area/ruin/unpowered/no_grav) +"bj" = (/obj/structure/closet/crate/secure/weapon,/obj/item/weapon/gun/ballistic/shotgun/automatic/dual_tube,/turf/open/floor/wood/airless,/area/ruin/unpowered/no_grav) +"bk" = (/obj/structure/girder,/turf/open/space,/area/space) +"bl" = (/turf/closed/wall/mineral/titanium,/area/ruin/unpowered) +"bm" = (/turf/open/floor/plating,/obj/machinery/door/poddoor{id = "caravantrade1"; name = "cargo blastdoor"},/turf/open/floor/plating/airless{icon_plating = "platingdmg2"; icon_state = "platingdmg2"},/area/ruin/unpowered) +"bn" = (/turf/open/floor/plating/airless{icon_plating = "platingdmg1"; icon_state = "platingdmg1"},/area/ruin/unpowered) +"bo" = (/turf/open/floor/mineral/titanium/yellow,/obj/structure/door_assembly/door_assembly_titanium{density = 0; name = "broken airlock"},/turf/open/floor/plating/airless{icon_plating = "platingdmg2"; icon_state = "platingdmg2"},/area/ruin/unpowered) +"bp" = (/turf/closed/wall/mineral/titanium/overspace,/area/ruin/unpowered) +"bq" = (/obj/structure/fluff/broken_flooring{tag = "icon-pile (WEST)"; icon_state = "pile"; dir = 8},/turf/open/space,/area/space) +"br" = (/obj/item/stack/sheet/metal,/turf/open/space,/area/space) +"bs" = (/obj/structure/lattice,/turf/open/space,/area/space) +"bt" = (/turf/open/floor/plating/airless{icon_plating = "platingdmg3"; icon_state = "platingdmg3"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating/airless{icon_plating = "platingdmg2"; icon_state = "platingdmg2"},/area/ruin/unpowered) +"bu" = (/obj/item/stack/sheet/metal,/obj/effect/decal/cleanable/dirt,/obj/item/stack/rods,/turf/open/floor/plating/airless{icon_plating = "platingdmg3"; icon_state = "platingdmg3"},/area/ruin/unpowered) +"bv" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"bw" = (/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"bx" = (/obj/machinery/button/door{pixel_x = 24},/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"by" = (/obj/structure/bed,/obj/item/weapon/bedsheet/black,/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"bz" = (/turf/open/floor/mineral/titanium/blue,/turf/closed/wall/mineral/titanium/interior,/area/ruin/unpowered) +"bA" = (/obj/structure/fluff/broken_flooring{tag = "icon-pile"; icon_state = "pile"},/turf/open/space,/area/space) +"bB" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating/airless{icon_plating = "platingdmg1"; icon_state = "platingdmg1"},/area/ruin/unpowered) +"bC" = (/turf/open/floor/plating/airless{icon_plating = "platingdmg3"; icon_state = "platingdmg3"},/area/ruin/unpowered) +"bD" = (/obj/structure/closet/crate/secure/gear,/obj/item/ammo_casing/shotgun/techshell,/obj/item/ammo_casing/shotgun/techshell,/obj/item/ammo_casing/shotgun/techshell,/obj/item/ammo_casing/shotgun/pulseslug,/obj/item/weapon/storage/box/lethalshot,/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"bE" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"bF" = (/mob/living/simple_animal/hostile/pirate/space/ranged{environment_smash = 0},/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"bG" = (/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"bH" = (/mob/living/simple_animal/hostile/pirate/space{environment_smash = 0},/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"bI" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular,/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"bJ" = (/turf/open/floor/plating,/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating/airless{icon_plating = "platingdmg2"; icon_state = "platingdmg2"},/area/ruin/unpowered) +"bK" = (/obj/structure/fluff/broken_flooring{tag = "icon-plating (NORTH)"; icon_state = "plating"; dir = 1},/turf/open/space,/area/space) +"bL" = (/obj/machinery/door/airlock/titanium,/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"bM" = (/obj/effect/decal/cleanable/blood,/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"bN" = (/obj/structure/table,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"bO" = (/obj/machinery/door/airlock/titanium,/turf/open/floor/plating/airless{icon_plating = "platingdmg3"; icon_state = "platingdmg3"},/area/ruin/unpowered) +"bP" = (/turf/open/space,/turf/closed/wall/mineral/plastitanium{dir = 8; icon_state = "diagonalWall3"},/area/ruin/powered) +"bQ" = (/obj/structure/fluff/broken_flooring{tag = "icon-plating (NORTH)"; icon_state = "plating"; dir = 1},/obj/structure/lattice,/turf/open/space,/area/space) +"bR" = (/obj/structure/girder,/turf/open/floor/plating/airless{icon_plating = "platingdmg3"; icon_state = "platingdmg3"},/area/ruin/unpowered) +"bS" = (/obj/structure/girder,/turf/open/floor/plating/airless{icon_plating = "platingdmg2"; icon_state = "platingdmg2"},/area/ruin/unpowered) +"bT" = (/obj/item/stack/sheet/metal,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating/airless{icon_plating = "platingdmg1"; icon_state = "platingdmg1"},/area/ruin/unpowered) +"bU" = (/obj/item/stack/rods,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating/airless{icon_plating = "platingdmg3"; icon_state = "platingdmg3"},/area/ruin/unpowered) +"bV" = (/obj/structure/closet/crate/secure/gear,/obj/item/ammo_casing/shotgun/frag12,/obj/item/ammo_casing/shotgun/frag12,/obj/item/ammo_casing/shotgun/frag12,/obj/item/ammo_casing/shotgun/frag12,/obj/item/weapon/storage/box/beanbag,/obj/item/weapon/storage/box/rubbershot,/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"bW" = (/obj/structure/closet/crate/secure/gear,/obj/item/ammo_box/c10mm,/obj/item/ammo_casing/shotgun/meteorshot,/obj/item/ammo_casing/shotgun/meteorshot,/obj/item/ammo_casing/shotgun/meteorshot,/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"bX" = (/obj/structure/closet/crate/secure/gear,/obj/item/ammo_box/a40mm,/obj/item/ammo_box/a40mm,/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"bY" = (/obj/structure/chair{dir = 4},/obj/effect/mob_spawn/human/corpse/nanotrasensoldier,/obj/effect/decal/cleanable/blood,/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"bZ" = (/obj/machinery/computer,/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"ca" = (/obj/structure/shuttle/engine/propulsion/burst/left{tag = "icon-burst_l (EAST)"; icon_state = "burst_l"; dir = 4},/turf/open/floor/plating/airless,/area/ruin/unpowered) +"cb" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 8},/turf/closed/wall/mineral/titanium,/area/ruin/unpowered) +"cc" = (/obj/structure/table,/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"cd" = (/obj/effect/decal/cleanable/dirt,/obj/structure/bed,/obj/item/weapon/bedsheet/black,/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"ce" = (/obj/structure/table,/turf/open/floor/mineral/plastitanium,/area/ruin/powered) +"cf" = (/obj/machinery/computer,/turf/open/floor/mineral/plastitanium,/area/ruin/powered) +"cg" = (/obj/structure/fluff/broken_flooring{tag = "icon-plating (EAST)"; icon_state = "plating"; dir = 4},/obj/structure/lattice,/turf/open/space,/area/space) +"ch" = (/turf/open/space,/obj/item/stack/rods,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating/airless{icon_plating = "platingdmg2"; icon_state = "platingdmg2"},/area/ruin/unpowered) +"ci" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating/airless{icon_plating = "platingdmg3"; icon_state = "platingdmg3"},/area/ruin/unpowered) +"cj" = (/turf/open/floor/plating/airless,/area/ruin/unpowered) +"ck" = (/obj/structure/closet/crate/secure/weapon,/obj/item/weapon/gun/ballistic/revolver/grenadelauncher/unrestricted,/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"cl" = (/mob/living/simple_animal/hostile/pirate/space{environment_smash = 0},/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"cm" = (/obj/structure/door_assembly/door_assembly_titanium{density = 0; name = "broken airlock"},/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"cn" = (/obj/structure/table,/obj/item/device/gps{gpstag = "Distress Signal"},/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"co" = (/obj/structure/shuttle/engine/propulsion/burst{dir = 4},/turf/open/floor/plating/airless,/area/ruin/unpowered) +"cp" = (/obj/structure/closet/crate/secure/engineering,/obj/item/weapon/storage/toolbox/mechanical,/obj/item/weapon/storage/toolbox/mechanical,/obj/item/weapon/storage/toolbox/electrical,/obj/item/weapon/storage/toolbox/electrical,/obj/item/clothing/gloves/color/yellow,/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"cq" = (/obj/item/weapon/shard,/obj/effect/decal/cleanable/dirt,/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"cr" = (/obj/structure/table_frame,/obj/effect/decal/cleanable/dirt,/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"cs" = (/turf/open/floor/mineral/plastitanium,/area/ruin/powered) +"ct" = (/obj/structure/chair{dir = 1},/mob/living/simple_animal/hostile/syndicate{environment_smash = 0; name = "Syndicate Salvage Pilot"},/turf/open/floor/mineral/plastitanium,/area/ruin/powered) +"cu" = (/obj/structure/closet/crate/secure/engineering,/obj/item/weapon/wrench{color = "#ff0000"; desc = "A prototype of a new wrench design, allegedly the red color scheme makes it go faster."; name = "experimental wrench"; toolspeed = 3},/obj/item/weapon/screwdriver{color = "#ff0000"; desc = "A prototype of a new screwdriver design, allegedly the red color scheme makes it go faster."; name = "experimental screwdriver"; toolspeed = 3},/obj/item/weapon/wirecutters{color = "#ff0000"; desc = "A prototype of a new wirecutter design, allegedly the red color scheme makes it go faster."; name = "experimental wirecutters"; toolspeed = 3},/obj/item/weapon/crowbar/red{color = "#ff0000"; desc = "A prototype of a new crowbar design, allegedly the red color scheme makes it go faster."; name = "experimental crowbar"; toolspeed = 3},/turf/open/floor/mineral/plastitanium,/area/ruin/powered) +"cv" = (/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/syndicate/ranged/space{environment_smash = 0; name = "Syndicate Salvage Worker"},/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"cw" = (/obj/item/stack/rods,/turf/open/floor/plating/airless{icon_plating = "platingdmg3"; icon_state = "platingdmg3"},/area/ruin/unpowered) +"cx" = (/turf/open/space,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating/airless{icon_plating = "platingdmg2"; icon_state = "platingdmg2"},/area/ruin/unpowered) +"cy" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/structure/girder,/turf/open/floor/plating/airless{icon_plating = "platingdmg3"; icon_state = "platingdmg3"},/area/ruin/unpowered) +"cz" = (/obj/item/stack/sheet/metal,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating/airless{icon_plating = "platingdmg3"; icon_state = "platingdmg3"},/area/ruin/unpowered) +"cA" = (/obj/structure/closet/crate/secure/weapon,/obj/item/weapon/gun/ballistic/shotgun/riot,/obj/item/weapon/gun/ballistic/shotgun/riot,/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"cB" = (/obj/structure/closet/crate/secure/weapon,/obj/item/weapon/gun/syringe/syndicate,/obj/item/weapon/gun/syringe/rapidsyringe,/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"cC" = (/obj/structure/closet/crate/secure/weapon,/obj/item/weapon/gun/ballistic/automatic/c20r/toy/unrestricted,/obj/item/weapon/gun/ballistic/automatic/c20r/toy/unrestricted,/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"cD" = (/mob/living/simple_animal/hostile/pirate/space/ranged{environment_smash = 0},/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"cE" = (/obj/structure/table,/obj/item/weapon/clipboard,/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"cF" = (/obj/structure/shuttle/engine/propulsion/burst/right{tag = "icon-burst_r (EAST)"; icon_state = "burst_r"; dir = 4},/turf/open/floor/plating/airless,/area/ruin/unpowered) +"cG" = (/mob/living/simple_animal/hostile/syndicate/melee/space{environment_smash = 0; name = "Syndicate Salvage Worker"},/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"cH" = (/obj/item/stack/rods,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating/airless{icon_plating = "platingdmg1"; icon_state = "platingdmg1"},/area/ruin/unpowered) +"cI" = (/obj/structure/grille/broken,/obj/item/weapon/shard,/turf/open/floor/plating/airless{icon_plating = "platingdmg1"; icon_state = "platingdmg1"},/area/ruin/unpowered) +"cJ" = (/obj/structure/closet/crate/secure/engineering,/obj/item/clothing/gloves/color/yellow,/obj/item/clothing/gloves/color/yellow,/turf/open/floor/mineral/plastitanium,/area/ruin/powered) +"cK" = (/obj/structure/closet/crate,/obj/item/stack/sheet/plasteel/twenty,/obj/item/stack/sheet/plasteel/twenty,/obj/effect/decal/cleanable/dirt,/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"cL" = (/obj/item/stack/sheet/metal,/obj/effect/decal/cleanable/dirt,/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"cM" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating/airless{icon_plating = "platingdmg3"; icon_state = "platingdmg3"},/area/ruin/unpowered) +"cN" = (/obj/structure/closet/crate/secure/plasma,/obj/item/weapon/tank/internals/plasma/full,/obj/item/weapon/tank/internals/plasma/full,/obj/item/stack/sheet/mineral/plasma{amount = 25},/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"cO" = (/obj/item/weapon/shard,/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"cP" = (/obj/item/chair,/obj/effect/mob_spawn/human/corpse/nanotrasensoldier,/obj/effect/decal/cleanable/blood,/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"cQ" = (/obj/item/stack/rods,/obj/item/stack/sheet/metal,/turf/open/floor/plating/airless{icon_plating = "platingdmg1"; icon_state = "platingdmg1"},/area/ruin/unpowered) +"cR" = (/obj/structure/fluff/broken_flooring{tag = "icon-plating (WEST)"; icon_state = "plating"; dir = 8},/obj/structure/lattice,/turf/open/space,/area/space) +"cS" = (/obj/machinery/door/airlock/external{icon_state = "door_locked"; locked = 1},/turf/open/floor/plating,/area/ruin/powered) +"cT" = (/obj/machinery/porta_turret/syndicate/pod,/turf/open/floor/plating/airless,/area/ruin/powered) +"cU" = (/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/syndicate/melee/space/stormtrooper{environment_smash = 0; name = "Syndicate Salvage Leader"},/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"cV" = (/obj/structure/chair{dir = 4},/obj/effect/decal/cleanable/blood,/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"cW" = (/obj/structure/closet/crate/secure/plasma,/obj/item/weapon/tank/internals/plasma/full,/obj/item/stack/sheet/mineral/plasma{amount = 25},/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"cX" = (/obj/structure/closet/crate/secure/engineering,/obj/item/organ/cyberimp/arm/toolset,/obj/item/organ/cyberimp/arm/toolset,/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"cY" = (/obj/structure/closet/crate/secure/plasma,/obj/item/mecha_parts/mecha_equipment/weapon/energy/plasma,/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"cZ" = (/mob/living/simple_animal/hostile/syndicate/ranged/space/stormtrooper{environment_smash = 0; name = "Syndicate Salvage Leader"},/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"da" = (/obj/item/stack/rods,/obj/item/weapon/shard,/mob/living/simple_animal/hostile/syndicate/melee/space{environment_smash = 0; name = "Syndicate Salvage Worker"},/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"db" = (/obj/item/weapon/shard,/turf/open/floor/plating/airless{icon_plating = "platingdmg1"; icon_state = "platingdmg1"},/area/ruin/unpowered) +"dc" = (/obj/item/weapon/shard,/turf/open/space,/area/space) +"dd" = (/obj/structure/chair{dir = 4},/turf/open/floor/mineral/plastitanium,/area/ruin/powered) +"de" = (/obj/structure/closet/crate/secure/plasma,/obj/item/stack/sheet/mineral/plasma{amount = 25},/obj/item/stack/sheet/mineral/plasma{amount = 25},/obj/item/weapon/tank/internals/plasma/full,/obj/item/weapon/tank/internals/plasma/full,/turf/open/floor/mineral/plastitanium,/area/ruin/powered) +"df" = (/obj/structure/chair{dir = 8},/turf/open/floor/mineral/plastitanium,/area/ruin/powered) +"dg" = (/obj/structure/closet/crate,/obj/item/stack/sheet/rglass{amount = 20},/obj/item/stack/sheet/rglass{amount = 20},/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"dh" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/item/stack/sheet/mineral/gold{amount = 25},/obj/item/stack/sheet/mineral/bananium{amount = 5},/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"di" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/item/stack/sheet/mineral/silver{amount = 25},/obj/item/stack/sheet/mineral/uranium{amount = 10},/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"dj" = (/obj/effect/mob_spawn/human/corpse/nanotrasensoldier,/obj/effect/decal/cleanable/blood,/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"dk" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"dl" = (/obj/structure/closet/crate/secure/plasma,/obj/item/stack/sheet/mineral/plasma{amount = 25},/obj/item/weapon/tank/internals/plasma/full,/turf/open/floor/mineral/plastitanium,/area/ruin/powered) +"dm" = (/obj/structure/chair,/turf/open/floor/mineral/plastitanium,/area/ruin/powered) +"dn" = (/obj/structure/closet/crate,/obj/item/stack/sheet/mineral/gold{amount = 25},/obj/item/stack/sheet/mineral/silver{amount = 25},/turf/open/floor/mineral/plastitanium,/area/ruin/powered) +"do" = (/obj/structure/closet/crate,/obj/item/stack/sheet/metal/fifty,/obj/item/stack/sheet/metal/fifty,/obj/item/stack/sheet/glass/fifty,/obj/item/stack/sheet/glass/fifty,/obj/effect/decal/cleanable/dirt,/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"dp" = (/obj/structure/closet/crate,/obj/item/stack/sheet/mineral/silver{amount = 25},/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"dq" = (/mob/living/simple_animal/hostile/syndicate/ranged/space{environment_smash = 0; name = "Syndicate Salvage Worker"},/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"dr" = (/obj/effect/decal/cleanable/dirt,/obj/item/weapon/clipboard,/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"ds" = (/obj/structure/shuttle/engine/heater,/turf/closed/wall/mineral/plastitanium,/area/ruin/powered) +"dt" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/item/stack/sheet/mineral/diamond{amount = 5},/obj/item/stack/sheet/mineral/gold{amount = 25},/turf/open/floor/mineral/plastitanium,/area/ruin/powered) +"du" = (/obj/structure/chair{dir = 4},/mob/living/simple_animal/hostile/syndicate{environment_smash = 0; name = "Syndicate Salvage Pilot"},/turf/open/floor/mineral/plastitanium,/area/ruin/powered) +"dv" = (/obj/structure/shuttle/engine/propulsion/burst,/turf/open/floor/plating/airless,/area/ruin/powered) +"dw" = (/obj/structure/chair{dir = 1},/turf/open/floor/mineral/plastitanium,/area/ruin/powered) +"dx" = (/obj/structure/closet/crate,/obj/item/stack/sheet/mineral/diamond{amount = 5},/obj/item/stack/sheet/mineral/uranium{amount = 10},/obj/item/stack/sheet/mineral/silver{amount = 25},/turf/open/floor/mineral/plastitanium,/area/ruin/powered) +"dy" = (/mob/living/simple_animal/hostile/syndicate/ranged/space/stormtrooper{environment_smash = 0; name = "Syndicate Salvage Leader"},/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) +"dz" = (/mob/living/simple_animal/hostile/syndicate/ranged/space{environment_smash = 0; name = "Syndicate Salvage Worker"},/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababacacadaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadafagagafabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabafagagafabahadahadaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababaiaiadadadababababaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabadadajagakagalamanaoapaqabadababababadaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarasatatagatatagatatagauabavawaxayazaAaBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaCaCaCaCaCaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDaaaEaaaaaaaaaaaaaaaaaaaaaaarasawaFagagagagagagakagagagagagaGagagaBaaaaaaaaaaaaaaaCaCaCaCaCaCaHaHaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaHaHaHaHaHaCaCaCaCaCaaaaaaaaaaaaaIaIaIaIaJaIaKaaaaaaaaaaaaaaaaaaaaaaaaaaaaarasawaLagagagagagagagagagagagagaMagagaBaaaaaaaaaaaaaaaCaCaCaCaCaCaHaHaHaHaHaHaHaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaCaCaHaHaHaHaHaHaCaCaCaCaCaCaaaaaaaaaNaOaPaQaRaKaSaTaDaaaaaaaaaaaaaaaaaaaaaaaaarasatatakatatagatataFaMabaUawaxayaxagaBaaaaaaaaaaaaaCaCaCaCaCaCaCaCaHaHaHaHaHaHaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaCaCaCaCaCaCaCaHaHaHaCaCaCaCaaaaaaaaaIaIaVaWaKaKaKaKaKaXaXaXaXaXaaaaaaaaaaaaabadadaYagagagalamazaZbaazabadadabababadbbaaaaaaaaaCaCaCaCaCaCaCaCaCaCaCaCaHaHaHaHaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaCaCaCaCaCaCaCaCaHaHaHaCaCaCaCaCaCaaaNaObcbdbeaKbeaSaaaDaaaaaaaXaXaXaXaXaXaXaXaXadadabaiaiabadadababababbbaaaaaaaaaaaaaaaaaaaCaCaCaCaCaCaCaCaCaCaCaCaHaHaCaCaCaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaCaCaCaCaCaCaCaCaHaHaHaHaCaCaCaaaIaIaIaIaJaIaKaIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabafagagafabahadahadbbaaaaaaaaaaaaaaaaaaaaaCaCaCaCaCaCaCaCaCaCaCaCaHaCaCaCaCaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaCaCaCaCaCaCaCaCaCaCaCaHaHaCaCaaaaaaaaaaaaaaaDaaaaaTaaaaaaaaaaaaaaaaaaaaaaaaaaabafagagafabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaCaCaCaCaCaCaCaCaCaCaHaCaCaCaCaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaCaCaCaCaCaCaCaHaHaHaHaCaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabadacacadbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaHaHaHaCaCaCaCaCaCaCaHaHaCaCaCaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaHaHaHaHaHbfaHaHaHaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabgbgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaHaHaHaHaHaHaHaHaHaHaHaHaCaCaCaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaHaHaHaHaHaHaHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabgbhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaHaHaHaHaHaHaHaCaCaCaCaCaCaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabgbiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaHaHaHaHaHaHaHaHaCaCaCaCaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjbgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabgbgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTbkblblblbmbmbnbnblboblbpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTbraabsbtbubvbwbwbxblbwbybzbpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEaDbBbCbDbEbFbGblbwbHbIbJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDaaaabraabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsaabKbBbCbEbGbGbGbLbMbwbNbJaaaaaaaaaaaaaaaaaablblblblblblbmbmbmbmblbOblbpaaaaaabPaBaBaBaeaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablblblblbsaaaTaaaaaaaaaabQbRaaaaaaaaaaaaaaaaaaaaaaaaaablbSblbTbUbVbGbFbWbXblbwbYbZbJaaaaaaaaaaaaaaaaaaaacacbbwbwccbwbwbwbxblbwcdbzbpaaaaabcecfceabaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacbbvbCcgbraabsbschbBcibzbpaaaaaaaaaaaaaaaaaaaaaaaaaacjcbcibEbGckbGclbGcmbwbwcnbJaaaaaaaaaaaaaaaaaaaacocbbwbwbGbGbGcpbGblbwcqcrbnaaaaabcsctcuabaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacocbbwcvcicicwcxcicyczciccbJaaaaaaaaaaaaaaaaaaaaaaaaaacocbbwbwcAcBbGbGcCblbwcDcEbJaaaaaaaaaaaaaaaaaaaacFcbbwbGbGbGcGbGbGcmbwbvcHcIaaaaabcscJcsabaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFcbbwcKbEcLcicMcLbEbGbwbNbJaaaaaaaaaaaaaaaaaaaaaaaaaacFcbbwbHccbwbwbwbxblbwbwbzbpaaaaaaaaaaaaaaaaaablblblbwbGcNbGbGcGbGblcOcPcQcRaaaacScscscscSaaaaaaaaaa +aaaaaaaaaaaaaaaacTaaaaaaaaaaaaaaaaaablblblbwbGbGbGbEcUbGblbGcVbZbJaaaaaaaaaaaaaaaaaaaaaaaablblblblblblbmbmbmbmblbOblbpaaaaaaaaaaaaaaaaaaaaaacacbbwcWbGcXbGcYcZcmbMdadbbsaadcabdddedfabaaaaaaaaaa +aaaaaaaaaaaaaaababababcSabababaeaaaaaacacbbwbGdgdhbGbGdicmdjbwccbJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacocbbwbwbGbGbGbGbGblbwbvdkbnaaaaabdddldfabaaaaaaaaaa +aaaaaaaaaaaaaaarasdmdmcsdncsceaBaaaaaacocbbwbwbGcGdobGdpbldqbwcEbJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFcbbwbwccbwbwbwbxbldrbwbzbpaacTabdsabdsabcTaaaaaaaa +aaaaaaaaaaaaaaababdtcscscsducfaBaaaaaacFcbbwbwccbwbwbwbxblbwbwbzbpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaCaHaHaHaCaCaCaaaaaaaaaaaaaaaaaaaaaablblblblblblbmbmbmbmblbOblbpaaaaaaabdvabdvabaaaaaaaaaa +aaaaaaaaaaaaaaarasdwdwcsdxcsceaBaaaablblblblblblbmbmbmbmblbOblbpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaCaCaCaCaCaHaHaCaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaababababcSabababbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaCaCaCaCaCaCaHdyaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaacTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaCaCaCaCaCaCaCaCaHaHaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaCaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaCaCaCaCaCaCaCaHdzaCaCaCaCaaaaaaaacTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaCaCaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaCaCaCaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaCaCaCaCaCaCaHaHaCaCaCaCaCaaaaaaababababcSabababaeaaaaaaaaaaaaaaaaaaaaaCaCaCaCaCaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaCaCaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaaaaaaaCaaaaaaaaaaaaaaaaaaaaaaaaaCaCaCaCaCaCaCaHaHaCaCaCaHaHaaaaaaarasdmdmcscscsceaBaaaaaaaaaaaaaaaaaaaCaCaCaCaCaCaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaCaCaCaCaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaaaCaaaaaaaaaaaaaaaaaaaaaaaaaaaCaCaCaCdzaHaHaHaHaHaCaaaaaaababcscscscsducfaBaaaaaaaaaaaaaaaaaCaCaCaCaCaCaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaCaCaCaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaaaCaCaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaCaHaHdzaHaCaCaCaaaaaaarasdwdwcscscsceaBaaaaaaaaaaaaaaaaaCaCaCaCaCaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaCaCaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaaaaaaaCaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaCaCaCaCaCaCaaaaaaaaaaababababcSabababbbaaaaaaaaaaaaaaaaaCaCaCaCaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +"} diff --git a/_maps/RandomRuins/SpaceRuins/crashedclownship.dmm b/_maps/RandomRuins/SpaceRuins/crashedclownship.dmm index 7e76ca7404..f571785a4d 100644 --- a/_maps/RandomRuins/SpaceRuins/crashedclownship.dmm +++ b/_maps/RandomRuins/SpaceRuins/crashedclownship.dmm @@ -1,29 +1,29 @@ "a" = (/turf/open/space,/area/space) -"b" = (/turf/closed/mineral/random,/area/space) -"c" = (/turf/open/floor/plating/asteroid/airless,/area/space) +"b" = (/turf/closed/mineral/random,/area/ruin/unpowered/no_grav) +"c" = (/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) "d" = (/turf/closed/wall/mineral/clown,/area/ruin/unpowered) "e" = (/obj/machinery/door/airlock/clown,/turf/open/floor/mineral/bananium/airless,/area/ruin/unpowered) -"f" = (/obj/effect/mob_spawn/human/clown,/turf/open/floor/mineral/bananium/airless,/area/ruin/unpowered) -"g" = (/turf/open/floor/mineral/bananium/airless,/area/ruin/unpowered) -"h" = (/obj/structure/closet/crate,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/turf/open/floor/mineral/bananium/airless,/area/ruin/unpowered) -"i" = (/obj/structure/closet/crate{icon_state = "crateopen";opened = 1},/obj/item/weapon/ore/bananium,/turf/open/floor/mineral/bananium/airless,/area/ruin/unpowered) -"j" = (/obj/structure/closet/secure_closet{name = "clown locker";req_access_txt = "46"},/obj/item/clothing/shoes/clown_shoes/banana_shoes,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2;name = "2maintenance loot spawner"},/turf/open/floor/mineral/bananium/airless,/area/ruin/unpowered) -"k" = (/obj/structure/shuttle/engine/heater{color = "#FFFF00";dir = 4;icon_state = "heater"},/obj/structure/window/reinforced{color = "#FFFF00";dir = 8},/turf/open/floor/plating/airless{color = "#FFFF00"},/area/ruin/unpowered) -"l" = (/obj/structure/shuttle/engine/propulsion{color = "#FFFF00";dir = 8;icon_state = "propulsion_l"},/turf/open/space,/area/ruin/unpowered) -"m" = (/obj/item/weapon/shard{icon_state = "small"},/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered) -"n" = (/obj/item/weapon/ore/bananium,/turf/open/floor/mineral/bananium/airless,/area/ruin/unpowered) -"o" = (/obj/item/weapon/shard{icon_state = "medium"},/obj/structure/chair{dir = 8},/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered) -"p" = (/obj/effect/mob_spawn/human/clown{name = "Clown Pilot"},/turf/open/floor/mineral/bananium/airless,/area/ruin/unpowered) -"q" = (/obj/item/weapon/paper{info = "The call has gone out! Our ancestral home has been rediscovered! Not a small patch of land, but a true clown nation, a true Clown Planet! We're on our way home at last!"},/turf/open/floor/mineral/bananium/airless,/area/ruin/unpowered) -"r" = (/obj/structure/grille{color = "#FFFF00"},/obj/structure/window/reinforced{color = "#FFFF00"},/obj/structure/window/reinforced{color = "#FFFF00";dir = 4},/obj/structure/window/reinforced{color = "#FFFF00";dir = 8},/turf/open/floor/plating/airless{color = "#FFFF00"},/area/ruin/unpowered) -"s" = (/obj/item/weapon/shard,/obj/structure/chair{dir = 8},/turf/open/floor/mineral/bananium/airless,/area/ruin/unpowered) -"t" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/open/floor/mineral/bananium/airless,/area/ruin/unpowered) -"u" = (/obj/item/weapon/storage/bag/ore,/turf/open/floor/mineral/bananium/airless,/area/ruin/unpowered) -"v" = (/obj/item/weapon/pickaxe,/turf/open/floor/mineral/bananium/airless,/area/ruin/unpowered) -"w" = (/obj/structure/closet/crate,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/turf/open/floor/mineral/bananium/airless,/area/ruin/unpowered) -"x" = (/obj/item/weapon/shovel,/turf/open/floor/mineral/bananium/airless,/area/ruin/unpowered) -"y" = (/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered) -"z" = (/turf/closed/mineral/random,/area/ruin/unpowered) +"f" = (/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered) +"g" = (/obj/effect/mob_spawn/human/clown,/turf/open/floor/mineral/bananium/airless,/area/ruin/unpowered) +"h" = (/turf/open/floor/mineral/bananium/airless,/area/ruin/unpowered) +"i" = (/obj/structure/closet/crate,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/turf/open/floor/mineral/bananium/airless,/area/ruin/unpowered) +"j" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/item/weapon/ore/bananium,/turf/open/floor/mineral/bananium/airless,/area/ruin/unpowered) +"k" = (/obj/structure/closet/secure_closet{name = "clown locker"; req_access_txt = "46"},/obj/item/clothing/shoes/clown_shoes/banana_shoes,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/mineral/bananium/airless,/area/ruin/unpowered) +"l" = (/obj/structure/shuttle/engine/heater{color = "#FFFF00"; dir = 4; icon_state = "heater"},/obj/structure/window/reinforced{color = "#FFFF00"; dir = 8},/turf/open/floor/plating/airless{color = "#FFFF00"},/area/ruin/unpowered) +"m" = (/obj/structure/shuttle/engine/propulsion{color = "#FFFF00"; dir = 8; icon_state = "propulsion_l"},/turf/open/space,/area/ruin/unpowered) +"n" = (/turf/closed/mineral/random,/area/ruin/unpowered) +"o" = (/obj/item/weapon/shard{icon_state = "small"},/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered) +"p" = (/obj/item/weapon/ore/bananium,/turf/open/floor/mineral/bananium/airless,/area/ruin/unpowered) +"q" = (/obj/item/weapon/shard{icon_state = "medium"},/obj/structure/chair{dir = 8},/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered) +"r" = (/obj/effect/mob_spawn/human/clown{name = "Clown Pilot"},/turf/open/floor/mineral/bananium/airless,/area/ruin/unpowered) +"s" = (/obj/item/weapon/paper{info = "The call has gone out! Our ancestral home has been rediscovered! Not a small patch of land, but a true clown nation, a true Clown Planet! We're on our way home at last!"},/turf/open/floor/mineral/bananium/airless,/area/ruin/unpowered) +"t" = (/obj/structure/grille{color = "#FFFF00"},/obj/structure/window/reinforced{color = "#FFFF00"},/obj/structure/window/reinforced{color = "#FFFF00"; dir = 4},/obj/structure/window/reinforced{color = "#FFFF00"; dir = 8},/turf/open/floor/plating/airless{color = "#FFFF00"},/area/ruin/unpowered) +"u" = (/obj/item/weapon/shard,/obj/structure/chair{dir = 8},/turf/open/floor/mineral/bananium/airless,/area/ruin/unpowered) +"v" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/open/floor/mineral/bananium/airless,/area/ruin/unpowered) +"w" = (/obj/item/weapon/storage/bag/ore,/turf/open/floor/mineral/bananium/airless,/area/ruin/unpowered) +"x" = (/obj/item/weapon/pickaxe,/turf/open/floor/mineral/bananium/airless,/area/ruin/unpowered) +"y" = (/obj/structure/closet/crate,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/turf/open/floor/mineral/bananium/airless,/area/ruin/unpowered) +"z" = (/obj/item/weapon/shovel,/turf/open/floor/mineral/bananium/airless,/area/ruin/unpowered) (1,1,1) = {" abbaaaaccccccaaaaaaaaaaaaaaa @@ -31,11 +31,11 @@ bbbbaabbbbbccbbbaaaaaaaaaaaa bbbbbbbbbbbccbbaaaaaaaaaaaaa abbbbbbbbbbbbbbaaaaaaaaaaaaa abbbbbbbbbbbbccaadddeeddddda -aabbbbbbbbbbbbcdddyfgghhijkl -aaabbbbbbbbbbbbzzzmgggggngkl -aabbbbbbbbbbbbbzzopgqngngnkl -aabbbbbbbbbbbbbrgsgtgfgggnkl -aabbbbbbbbbbbbbddduvggwwhxkl +aabbbbbbbbbbbbcdddfghhiijklm +aaabbbbbbbbbbbbnnnohhhhhphlm +aabbbbbbbbbbbbbnnqrhsphphplm +aabbbbbbbbbbbbbthuhvhghhhplm +aabbbbbbbbbbbbbdddwxhhyyizlm aabbbbbbbbbbbbbbbdddeeddddda abbbbbbbbbbbbbbbbbbbbbbbbaaa abbabbbbbccbbbbbbbbbbbaaaaaa diff --git a/_maps/RandomRuins/SpaceRuins/crashedship.dmm b/_maps/RandomRuins/SpaceRuins/crashedship.dmm index 05ca50a5b1..dfa9a8c50d 100644 --- a/_maps/RandomRuins/SpaceRuins/crashedship.dmm +++ b/_maps/RandomRuins/SpaceRuins/crashedship.dmm @@ -1,480 +1,439 @@ "aa" = (/turf/open/space,/area/space) "ab" = (/obj/item/weapon/circular_saw,/obj/structure/lattice,/turf/open/space,/area/space) -"ac" = (/turf/closed/wall/shuttle{icon_state = "swall4"},/area/awaymission/BMPship/Aft) -"ad" = (/turf/closed/wall/shuttle{icon_state = "swall12"},/area/awaymission/BMPship/Aft) -"ae" = (/turf/closed/wall/shuttle{icon_state = "swall14"},/area/awaymission/BMPship/Aft) -"af" = (/turf/closed/wall/shuttle{icon_state = "swall_s10";dir = 2},/area/awaymission/BMPship/Aft) -"ag" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/open/floor/engine,/area/awaymission/BMPship/Aft) -"ah" = (/obj/machinery/porta_turret{dir = 8;emagged = 1;installation = /obj/item/weapon/gun/energy/lasercannon},/turf/open/floor/engine,/area/awaymission/BMPship/Aft) -"ai" = (/turf/open/floor/engine,/area/awaymission/BMPship/Aft) -"aj" = (/turf/closed/wall/shuttle{icon_state = "swall3";dir = 2},/area/awaymission/BMPship/Aft) -"ak" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) -"al" = (/turf/open/floor/plating,/turf/closed/wall/shuttle{icon_state = "swall_f5";dir = 2},/area/awaymission/BMPship/Aft) -"am" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/open/floor/engine,/area/awaymission/BMPship/Aft) -"an" = (/obj/machinery/door/unpowered/shuttle,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) -"ao" = (/turf/open/floor/plating,/area/awaymission/BMPship/Aft) -"ap" = (/obj/structure/lattice,/turf/open/space,/area/space) -"aq" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/open/floor/engine,/area/awaymission/BMPship/Aft) -"ar" = (/obj/machinery/light/small,/turf/open/floor/engine,/area/awaymission/BMPship/Aft) -"as" = (/turf/closed/wall/shuttle{icon_state = "swall7"},/area/awaymission/BMPship/Aft) -"at" = (/turf/closed/wall/shuttle{icon_state = "swall_s6";dir = 2},/area/space) -"au" = (/turf/closed/wall/shuttle{icon_state = "swall13"},/area/awaymission/BMPship/Aft) -"av" = (/turf/closed/wall/shuttle{icon_state = "swall8"},/area/awaymission/BMPship/Aft) -"aw" = (/obj/machinery/door/airlock/silver{locked = 1},/turf/open/floor/plating{icon_state = "panelscorched"},/area/awaymission/BMPship/Aft) -"ax" = (/turf/closed/wall/shuttle{icon_state = "swall12";dir = 2},/area/awaymission/BMPship/Aft) -"ay" = (/turf/closed/wall/shuttle,/area/awaymission/BMPship/Midship) -"az" = (/obj/structure/bed/roller,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) -"aA" = (/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) -"aB" = (/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/restraints/handcuffs,/obj/structure/closet/crate,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) -"aC" = (/obj/item/weapon/scalpel,/obj/structure/closet/crate,/obj/item/weapon/tank/internals/anesthetic,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) -"aD" = (/obj/item/bodybag,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) -"aE" = (/obj/item/weapon/storage/box/syringes,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) -"aF" = (/obj/structure/cable{d1 = 2;d2 = 4;icon_state = "2-4"},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) -"aG" = (/obj/structure/table/optable,/obj/structure/cable{d1 = 4;d2 = 8;icon_state = "4-8";pixel_y = 0},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) -"aH" = (/obj/machinery/computer/operating,/obj/structure/cable{d2 = 8;icon_state = "0-8"},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) -"aI" = (/turf/closed/wall/shuttle{icon_state = "swall3"},/area/awaymission/BMPship/Midship) -"aJ" = (/turf/open/floor/plating/warnplate{dir = 9},/area/awaymission/BMPship/Aft) -"aK" = (/obj/structure/closet/crate/freezer,/obj/item/organ/appendix,/obj/item/weapon/reagent_containers/food/snacks/meat/slab,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/golem,/turf/open/floor/plating/warnplate{dir = 1},/area/awaymission/BMPship/Aft) -"aL" = (/obj/structure/closet/crate/freezer,/obj/item/organ/brain,/obj/item/weapon/reagent_containers/food/snacks/meat/slab,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/slime,/turf/open/floor/plating/warnplate{dir = 1},/area/awaymission/BMPship/Aft) -"aM" = (/obj/structure/table,/obj/item/stack/packageWrap,/turf/open/floor/plating/warnplate{dir = 1},/area/awaymission/BMPship/Aft) -"aN" = (/obj/structure/table,/obj/item/weapon/storage/box,/obj/machinery/light/small{dir = 1},/turf/open/floor/plating/warnplate{dir = 1},/area/awaymission/BMPship/Aft) -"aO" = (/turf/open/floor/plating/warnplate{dir = 1},/area/awaymission/BMPship/Aft) -"aP" = (/turf/open/floor/plating/warnplate{dir = 5},/turf/closed/wall/shuttle{icon_state = "swall_f5";dir = 2},/area/awaymission/BMPship/Aft) -"aQ" = (/turf/open/floor/plating/airless{icon_state = "platingdmg2"},/area/awaymission/BMPship/Midship) -"aR" = (/turf/open/floor/plating/airless{icon_state = "platingdmg3"},/area/awaymission/BMPship/Midship) -"aS" = (/obj/structure/cable{d1 = 1;d2 = 2;icon_state = "1-2"},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) -"aT" = (/turf/closed/wall/shuttle{icon_state = "swall1"},/area/awaymission/BMPship/Midship) -"aU" = (/turf/open/floor/plating/warnplate{dir = 8},/area/awaymission/BMPship/Aft) -"aV" = (/obj/item/weapon/storage/box,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) -"aW" = (/obj/item/weapon/hand_labeler,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) -"aX" = (/obj/structure/closet/crate/large,/turf/open/floor/plating/warnplate{dir = 4},/area/awaymission/BMPship/Aft) -"aY" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Fore) -"aZ" = (/obj/structure/table/wood,/obj/item/stack/spacecash/c500,/obj/item/stack/spacecash/c100,/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/open/floor/wood,/area/awaymission/BMPship/Fore) -"ba" = (/obj/structure/bed,/obj/item/weapon/bedsheet/yellow,/turf/open/floor/wood,/area/awaymission/BMPship/Fore) -"bb" = (/obj/structure/rack,/turf/open/floor/plating/warnplate{dir = 1},/area/awaymission/BMPship/Fore) -"bc" = (/turf/open/floor/plating/warnplate{dir = 5},/area/awaymission/BMPship/Fore) -"bd" = (/obj/structure/sign/vacuum,/turf/closed/wall/shuttle{icon_state = "swall1"},/area/awaymission/BMPship/Fore) -"be" = (/turf/open/floor/plating/airless{icon_state = "platingdmg1"},/area/awaymission/BMPship/Midship) -"bf" = (/turf/open/floor/plating/airless{icon_state = "panelscorched"},/area/awaymission/BMPship/Midship) -"bg" = (/obj/effect/decal/cleanable/blood/gibs/old,/obj/effect/gibspawner/human,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) -"bh" = (/obj/structure/cable{d1 = 1;d2 = 4;icon_state = "1-4"},/obj/item/clothing/glasses/regular/hipster,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) -"bi" = (/obj/structure/cable{d1 = 4;d2 = 8;icon_state = "4-8";pixel_y = 0},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) -"bj" = (/obj/machinery/door/unpowered/shuttle,/obj/structure/cable{d1 = 4;d2 = 8;icon_state = "4-8";pixel_y = 0},/turf,/area/awaymission/BMPship/Midship) -"bk" = (/obj/structure/cable{d1 = 4;d2 = 8;icon_state = "4-8";pixel_y = 0},/turf/open/floor/plating/warnplate{dir = 8},/area/awaymission/BMPship/Aft) -"bl" = (/obj/structure/cable{d1 = 2;d2 = 8;icon_state = "2-8"},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) -"bm" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) -"bn" = (/obj/machinery/computer/teleporter,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) -"bo" = (/obj/machinery/teleport/station,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) -"bp" = (/obj/machinery/teleport/hub,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) -"bq" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Fore) -"br" = (/turf/open/floor/wood,/area/awaymission/BMPship/Fore) -"bs" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/wood,/area/awaymission/BMPship/Fore) -"bt" = (/obj/machinery/door/airlock/external,/turf/open/floor/plating,/area/awaymission/BMPship/Fore) -"bu" = (/turf/closed/wall/shuttle{icon_state = "swall2"},/area/awaymission/BMPship/Midship) -"bv" = (/obj/structure/cable{d1 = 1;d2 = 2;icon_state = "1-2"},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) -"bw" = (/obj/structure/closet/crate,/obj/item/stack/spacecash/c1000,/obj/item/stack/spacecash/c50,/turf/open/floor/plating/warnplate{dir = 4},/area/awaymission/BMPship/Aft) -"bx" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Fore) -"by" = (/turf/open/floor/plasteel{icon_state = "wood-broken"},/area/awaymission/BMPship/Fore) -"bz" = (/turf/open/floor/plating/warnplate{dir = 2},/area/awaymission/BMPship/Fore) -"bA" = (/obj/machinery/light/small,/turf/open/floor/plating/warnplate{dir = 2},/area/awaymission/BMPship/Fore) -"bB" = (/turf/open/floor/plating/warnplate{dir = 6},/area/awaymission/BMPship/Fore) -"bC" = (/turf/closed/wall/shuttle{icon_state = "swall11"},/area/awaymission/BMPship/Midship) -"bD" = (/obj/machinery/light,/obj/effect/decal/cleanable/blood/gibs/old,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) -"bE" = (/obj/machinery/button/door{id = "packerMed";pixel_y = -24},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) -"bF" = (/obj/machinery/sleeper{dir = 1},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) -"bG" = (/obj/machinery/sleep_console,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) -"bH" = (/obj/machinery/light,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) -"bI" = (/obj/structure/cable{d1 = 1;d2 = 4;icon_state = "1-4"},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) -"bJ" = (/obj/structure/cable{d1 = 4;d2 = 8;icon_state = "4-8";pixel_y = 0},/obj/item/weapon/hand_labeler,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) -"bK" = (/obj/structure/cable{d1 = 4;d2 = 8;icon_state = "4-8";pixel_y = 0},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) -"bL" = (/obj/structure/cable{d1 = 4;d2 = 8;icon_state = "4-8";pixel_y = 0},/obj/item/weapon/storage/box,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) -"bM" = (/turf/open/floor/plating/warnplate{dir = 4},/area/awaymission/BMPship/Aft) -"bN" = (/turf/closed/wall/shuttle{icon_state = "swallc2"},/area/awaymission/BMPship/Fore) -"bO" = (/obj/machinery/door/unpowered/shuttle,/turf/open/floor/plasteel{icon_state = "carpetside";dir = 1},/area/awaymission/BMPship/Fore) -"bP" = (/obj/machinery/door/airlock/silver,/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) -"bQ" = (/turf/closed/wall/shuttle{icon_state = "swall15"},/area/awaymission/BMPship/Midship) -"bR" = (/obj/machinery/door/poddoor/shutters{id = "packerMed"},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) -"bS" = (/obj/structure/closet/crate/large,/turf/open/floor/plating/warnplate{dir = 10},/area/awaymission/BMPship/Aft) -"bT" = (/obj/structure/kitchenspike,/turf/open/floor/plating/warnplate{dir = 2},/area/awaymission/BMPship/Aft) -"bU" = (/obj/structure/closet/crate,/obj/item/device/analyzer,/obj/item/stack/spacecash/c10,/turf/open/floor/plating/warnplate{dir = 2},/area/awaymission/BMPship/Aft) -"bV" = (/obj/structure/closet/crate,/obj/item/stack/spacecash/c1000,/obj/item/stack/spacecash/c200,/obj/item/stack/spacecash/c500,/turf/open/floor/plating/warnplate{dir = 2},/area/awaymission/BMPship/Aft) -"bW" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice,/obj/item/organ/appendix,/obj/item/weapon/reagent_containers/food/snacks/meat/slab,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/golem/adamantine,/turf/open/floor/plating/warnplate{dir = 2},/area/awaymission/BMPship/Aft) -"bX" = (/obj/machinery/button/door{id = "packerCargo";pixel_y = -24},/obj/machinery/light/small,/turf/open/floor/plating/warnplate{dir = 2},/area/awaymission/BMPship/Aft) -"bY" = (/obj/structure/cable{d1 = 1;d2 = 2;icon_state = "1-2"},/turf/open/floor/plating/warnplate{dir = 2},/area/awaymission/BMPship/Aft) -"bZ" = (/turf/open/space,/turf/closed/wall/shuttle{icon_state = "swall_f9";dir = 2},/area/space) -"ca" = (/turf/open/floor/carpet,/turf/closed/wall/shuttle{icon_state = "swall_f9";dir = 2},/area/awaymission/BMPship/Fore) -"cb" = (/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) -"cc" = (/obj/structure/cable{icon_state = "0-2";d2 = 2},/obj/machinery/power/apc{dir = 1;environ = 0;equipment = 3;locked = 0;pixel_y = 32;req_access = ""},/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) -"cd" = (/obj/structure/table,/obj/item/weapon/screwdriver,/obj/item/weapon/screwdriver,/obj/item/weapon/paper{info = "The next person who takes one of my screwdrivers gets stabbed with one. They are MINE. - Love, Madsen";name = "scribbled note"},/obj/item/weapon/screwdriver,/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) -"ce" = (/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) -"cf" = (/obj/machinery/hydroponics,/turf/open/floor/plasteel/green/side{dir = 8},/area/awaymission/BMPship/Midship) -"cg" = (/obj/structure/sink{dir = 2},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/awaymission/BMPship/Midship) -"ch" = (/obj/machinery/vending/hydroseeds{slogan_delay = 700},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/awaymission/BMPship/Midship) -"ci" = (/obj/machinery/vending/hydronutrients,/turf/open/floor/plasteel/yellow/side{dir = 1},/area/awaymission/BMPship/Midship) -"cj" = (/obj/machinery/hydroponics,/turf/open/floor/plasteel/green/side{dir = 4},/area/awaymission/BMPship/Midship) -"ck" = (/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) -"cl" = (/obj/structure/table,/obj/item/weapon/kitchen/knife/butcher,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/item/weapon/reagent_containers/food/snacks/meat,/turf/open/floor/plasteel/barber,/area/awaymission/BMPship/Midship) -"cm" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/open/floor/plasteel/barber,/area/awaymission/BMPship/Midship) -"cn" = (/obj/structure/table,/obj/machinery/microwave,/turf/open/floor/plasteel/barber,/area/awaymission/BMPship/Midship) -"co" = (/obj/machinery/processor,/obj/machinery/light{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/barber,/area/awaymission/BMPship/Midship) -"cp" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) -"cq" = (/obj/structure/table,/obj/item/weapon/kitchen/knife,/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) -"cr" = (/obj/structure/table,/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) -"cs" = (/obj/structure/table,/obj/effect/decal/cleanable/cobweb2,/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) -"ct" = (/obj/structure/cable{d1 = 1;d2 = 2;icon_state = "1-2"},/obj/machinery/door/poddoor/shutters{id = "packerCargo"},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) -"cu" = (/obj/structure/cable{d1 = 1;d2 = 2;icon_state = "1-2";pixel_y = 0},/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) -"cv" = (/obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice,/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) -"cw" = (/turf/open/floor/plasteel,/area/awaymission/BMPship/Midship) -"cx" = (/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/open/floor/plasteel,/area/awaymission/BMPship/Midship) -"cy" = (/turf/open/floor/plasteel/barber,/area/awaymission/BMPship/Midship) -"cz" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/barber,/area/awaymission/BMPship/Midship) -"cA" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) -"cB" = (/obj/structure/kitchenspike,/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) -"cC" = (/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) -"cD" = (/obj/machinery/door/airlock/silver,/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) -"cE" = (/turf/open/floor/plasteel/white,/area/awaymission/BMPship/Aft) -"cF" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/white,/area/awaymission/BMPship/Aft) -"cG" = (/obj/effect/decal/cleanable/blood/gibs/old,/turf/open/floor/plasteel/white,/area/awaymission/BMPship/Aft) -"cH" = (/obj/machinery/gibber,/turf/open/floor/plasteel/white,/area/awaymission/BMPship/Aft) -"cI" = (/turf/open/floor/plasteel/hydrofloor,/area/awaymission/BMPship/Aft) -"cJ" = (/obj/structure/cable{d1 = 1;d2 = 2;icon_state = "1-2"},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) -"cK" = (/turf/closed/wall/shuttle{icon_state = "swallc3"},/area/awaymission/BMPship/Aft) -"cL" = (/obj/structure/cable{d1 = 1;d2 = 4;icon_state = "1-4"},/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) -"cM" = (/obj/structure/cable{d1 = 2;d2 = 8;icon_state = "2-8"},/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) -"cN" = (/obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice,/turf/open/floor/plasteel,/area/awaymission/BMPship/Midship) -"cO" = (/obj/machinery/door/unpowered/shuttle,/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) -"cP" = (/obj/structure/window/reinforced,/turf/open/floor/plasteel/barber,/area/awaymission/BMPship/Midship) -"cQ" = (/obj/structure/window/reinforced,/obj/structure/cable{icon_state = "0-2";pixel_y = 1;d2 = 2},/turf/open/floor/plasteel/barber,/area/awaymission/BMPship/Midship) -"cR" = (/obj/machinery/door/window,/turf/open/floor/plasteel/barber,/area/awaymission/BMPship/Midship) -"cS" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/open/floor/plasteel/barber,/area/awaymission/BMPship/Midship) -"cT" = (/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) -"cU" = (/obj/structure/cable{icon_state = "0-2";pixel_y = 1;d2 = 2},/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) -"cV" = (/obj/structure/closet/secure_closet/freezer/meat{opened = 1},/turf/open/floor/plasteel/white,/area/awaymission/BMPship/Aft) -"cW" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/food/snacks/meat/slab,/obj/item/weapon/reagent_containers/food/snacks/meat/slab,/turf/open/floor/plasteel/white,/area/awaymission/BMPship/Aft) -"cX" = (/obj/effect/decal/cleanable/blood/splatter,/turf/open/floor/plasteel/white,/area/awaymission/BMPship/Aft) -"cY" = (/obj/item/weapon/crowbar,/turf/open/floor/plasteel/white,/area/awaymission/BMPship/Aft) -"cZ" = (/turf/open/floor/plasteel/warning{dir = 8},/area/awaymission/BMPship/Aft) -"da" = (/obj/structure/cable{icon_state = "0-2";pixel_y = 1;d2 = 2},/obj/machinery/power/apc{dir = 1;environ = 0;equipment = 3;locked = 0;pixel_y = 32;req_access = ""},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) -"db" = (/turf/open/floor/plasteel/warning{dir = 4},/area/awaymission/BMPship/Aft) -"dc" = (/obj/structure/table,/obj/item/weapon/paper{info = "I'm no scientist, but judging from the design and components, it seems to be some kind of teleporter. This thing is gonna be worth a lot of cash to the right man. The boys are excited, as they have every right to be, and I've let them crack into that case of beer we got. I normally wouldn't allow such a thing, but this is a time for celebration! It's not like a couple drinks will hurt anything.";name = "Captain's log entry"},/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) -"dd" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) -"de" = (/obj/structure/frame/computer{anchored = 1},/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) -"df" = (/obj/structure/cable{d1 = 1;d2 = 2;icon_state = "1-2"},/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) -"dg" = (/obj/machinery/hydroponics,/turf/open/floor/plasteel/green/side{dir = 10},/area/awaymission/BMPship/Midship) -"dh" = (/turf/open/floor/plasteel/green/side,/area/awaymission/BMPship/Midship) -"di" = (/obj/machinery/seed_extractor,/obj/item/seeds/plump/walkingmushroom,/turf/open/floor/plasteel/green/side,/area/awaymission/BMPship/Midship) -"dj" = (/obj/machinery/hydroponics,/turf/open/floor/plasteel/green/side{dir = 6},/area/awaymission/BMPship/Midship) -"dk" = (/obj/structure/cable{d1 = 2;d2 = 4;icon_state = "2-4"},/obj/structure/cable{d1 = 1;d2 = 2;icon_state = "1-2"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) -"dl" = (/obj/structure/cable{d1 = 4;d2 = 8;icon_state = "4-8";pixel_x = 0},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) -"dm" = (/obj/structure/cable{d1 = 2;d2 = 8;icon_state = "2-8"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) -"dn" = (/obj/structure/cable{d1 = 1;d2 = 2;icon_state = "1-2"},/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) -"do" = (/obj/structure/cable{d1 = 1;d2 = 4;icon_state = "1-4"},/obj/structure/cable{d1 = 2;d2 = 4;icon_state = "2-4"},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) -"dp" = (/obj/structure/cable{d1 = 4;d2 = 8;icon_state = "4-8";pixel_x = 0},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) -"dq" = (/obj/structure/cable{d1 = 4;d2 = 8;icon_state = "4-8";pixel_x = 0},/obj/structure/cable{d1 = 2;d2 = 4;icon_state = "2-4"},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) -"dr" = (/obj/structure/cable{d1 = 4;d2 = 8;icon_state = "4-8";pixel_x = 0},/obj/structure/cable{d1 = 1;d2 = 4;icon_state = "1-4"},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) -"ds" = (/obj/structure/cable{d1 = 2;d2 = 8;icon_state = "2-8"},/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/warning{dir = 4},/area/awaymission/BMPship/Aft) -"dt" = (/obj/item/device/multitool,/turf/open/floor/engine,/area/awaymission/BMPship/Aft) -"du" = (/obj/structure/shuttle/engine/heater{icon_state = "heater";dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/engine/airless,/area/awaymission/BMPship/Aft) -"dv" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion";dir = 8},/turf/open/space,/area/awaymission/BMPship/Aft) -"dw" = (/obj/structure/table,/obj/machinery/recharger,/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) -"dx" = (/obj/structure/chair/stool,/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) -"dy" = (/obj/machinery/light{icon_state = "tube1";dir = 4},/obj/structure/cable{d1 = 1;d2 = 2;icon_state = "1-2"},/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) -"dz" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) -"dA" = (/obj/structure/cable{d1 = 2;d2 = 4;icon_state = "2-4"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) -"dB" = (/obj/structure/cable{d1 = 4;d2 = 8;icon_state = "4-8";pixel_y = 0},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) -"dC" = (/obj/structure/cable{d1 = 1;d2 = 2;icon_state = "1-2"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) -"dD" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) -"dE" = (/turf/closed/wall/r_wall,/area/awaymission/BMPship/Midship) -"dF" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) -"dG" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/warning{dir = 8},/area/awaymission/BMPship/Aft) -"dH" = (/obj/structure/cable{d1 = 1;d2 = 2;icon_state = "1-2";pixel_y = 0},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) -"dI" = (/obj/structure/cable{d1 = 1;d2 = 2;icon_state = "1-2"},/turf/open/floor/plasteel/warning{dir = 4},/area/awaymission/BMPship/Aft) -"dJ" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/open/floor/plating,/area/awaymission/BMPship/Fore) -"dK" = (/obj/item/weapon/shard,/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) -"dL" = (/obj/structure/cable{d1 = 2;d2 = 4;icon_state = "2-4"},/obj/structure/cable{d1 = 1;d2 = 4;icon_state = "1-4"},/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) -"dM" = (/obj/machinery/door/airlock/silver,/obj/structure/cable{d1 = 4;d2 = 8;icon_state = "4-8";pixel_y = 0},/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) -"dN" = (/obj/structure/cable{d1 = 1;d2 = 8;icon_state = "1-8"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) -"dO" = (/obj/machinery/shieldwallgen,/obj/structure/cable{icon_state = "0-4";d2 = 4},/turf/open/floor/plating,/area/awaymission/BMPship/Midship) -"dP" = (/obj/structure/cable{d1 = 2;d2 = 8;icon_state = "2-8"},/obj/structure/cable{d1 = 1;d2 = 2;icon_state = "1-2"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) -"dQ" = (/obj/structure/cable{icon_state = "0-2";d2 = 2},/obj/machinery/power/apc{dir = 1;locked = 0;pixel_y = 28;req_access = ""},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) -"dR" = (/turf/open/floor/plasteel/loadingarea/dirtydirty{dir = 4},/area/awaymission/BMPship/Midship) -"dS" = (/obj/machinery/conveyor{dir = 4;id = "meatConvey1"},/turf/open/floor/plating,/area/awaymission/BMPship/Midship) -"dT" = (/obj/machinery/conveyor{dir = 4;id = "meatConvey1"},/obj/structure/plasticflaps,/turf/open/floor/plating,/area/awaymission/BMPship/Midship) -"dU" = (/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/disposal/deliveryChute{dir = 8},/turf/open/floor/plating,/area/awaymission/BMPship/Midship) -"dV" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/closed/wall/r_wall,/area/awaymission/BMPship/Midship) -"dW" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1;d2 = 2;icon_state = "1-2"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) -"dX" = (/obj/structure/disposalpipe/segment{dir = 2;icon_state = "pipe-c"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) -"dY" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) -"dZ" = (/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) -"ea" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) -"eb" = (/obj/structure/rack,/obj/item/weapon/storage/box/lights,/turf/open/floor/plasteel/warning{dir = 8},/area/awaymission/BMPship/Aft) -"ec" = (/obj/structure/cable{d1 = 1;d2 = 2;icon_state = "1-2";pixel_y = 0},/turf/open/floor/plasteel/hydrofloor,/area/awaymission/BMPship/Aft) -"ed" = (/obj/machinery/power/smes/magical{desc = "A high-capacity superconducting magnetic energy storage (SMES) unit.";name = "power storage unit"},/obj/structure/cable{icon_state = "0-2";d2 = 2},/obj/structure/cable,/obj/structure/cable{icon_state = "0-2";d2 = 2},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) -"ee" = (/obj/structure/cable{icon_state = "0-4";d2 = 4},/obj/machinery/power/terminal{dir = 8},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) -"ef" = (/obj/structure/cable{d1 = 1;d2 = 2;icon_state = "1-2"},/obj/structure/cable{d1 = 1;d2 = 8;icon_state = "1-8"},/turf/open/floor/plasteel/warning{dir = 4},/area/awaymission/BMPship/Aft) -"eg" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/turf/open/floor/plating,/area/awaymission/BMPship/Fore) -"eh" = (/obj/structure/table,/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) -"ei" = (/obj/structure/chair/office{dir = 8},/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) -"ej" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) -"ek" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating,/area/awaymission/BMPship/Midship) -"el" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating,/area/awaymission/BMPship/Midship) -"em" = (/obj/item/weapon/reagent_containers/glass/bucket,/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) -"en" = (/obj/machinery/conveyor_switch/oneway{id = "meatConvey1"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) -"eo" = (/obj/structure/disposalpipe/segment{dir = 1;icon_state = "pipe-c"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) -"ep" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) -"eq" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) -"er" = (/obj/structure/cable{d1 = 1;d2 = 2;icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) -"es" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/disposaloutlet{dir = 4},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) -"et" = (/obj/effect/decal/cleanable/blood/gibs/old,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) -"eu" = (/obj/structure/rack,/obj/item/weapon/storage/belt/utility/full,/turf/open/floor/plasteel/warning{dir = 8},/area/awaymission/BMPship/Aft) -"ev" = (/obj/structure/cable{d1 = 1;d2 = 2;icon_state = "1-2";pixel_y = 0},/turf/open/floor/plasteel/warning{dir = 4},/area/awaymission/BMPship/Aft) -"ew" = (/turf/closed/wall/shuttle{icon_state = "swall_s9";dir = 2},/area/awaymission/BMPship/Aft) -"ex" = (/obj/structure/cable{d1 = 2;d2 = 4;icon_state = "2-4"},/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) -"ey" = (/obj/structure/cable{d1 = 4;d2 = 8;icon_state = "4-8";pixel_x = 0},/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) -"ez" = (/obj/structure/cable{d1 = 1;d2 = 8;icon_state = "1-8"},/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) -"eA" = (/obj/effect/decal/cleanable/dirt,/obj/effect/gibspawner/xeno,/turf/open/floor/plating,/area/awaymission/BMPship/Midship) -"eB" = (/obj/structure/cable{d1 = 1;d2 = 4;icon_state = "1-4"},/obj/structure/cable{d1 = 2;d2 = 4;icon_state = "2-4"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) -"eC" = (/obj/structure/cable{d1 = 4;d2 = 8;icon_state = "4-8";pixel_y = 0},/obj/structure/cable{d1 = 1;d2 = 4;icon_state = "1-4"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) -"eD" = (/obj/structure/cable{d1 = 2;d2 = 8;icon_state = "2-8"},/obj/structure/cable{d1 = 1;d2 = 8;icon_state = "1-8"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) -"eE" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) -"eF" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) -"eG" = (/obj/effect/gibspawner/human,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) -"eH" = (/obj/machinery/door/window{base_state = "right";dir = 4;icon_state = "right"},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) -"eI" = (/obj/structure/rack,/obj/item/weapon/stock_parts/cell/high,/turf/open/floor/plasteel/warning{dir = 8},/area/awaymission/BMPship/Aft) -"eJ" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/grille,/turf/open/floor/plating,/area/awaymission/BMPship/Fore) -"eK" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 8},/turf/open/floor/plating,/area/awaymission/BMPship/Midship) -"eL" = (/obj/machinery/light,/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) -"eM" = (/obj/effect/gibspawner/generic,/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) -"eN" = (/obj/structure/cable{d1 = 2;d2 = 4;icon_state = "2-4"},/obj/structure/cable{d1 = 1;d2 = 4;icon_state = "1-4"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) -"eO" = (/obj/structure/cable{d1 = 4;d2 = 8;icon_state = "4-8";pixel_x = 0},/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) -"eP" = (/obj/structure/cable{d1 = 1;d2 = 2;icon_state = "1-2"},/obj/structure/cable{d1 = 2;d2 = 8;icon_state = "2-8"},/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) -"eQ" = (/obj/structure/rack,/turf/open/floor/plasteel/warning{dir = 8},/area/awaymission/BMPship/Aft) -"eR" = (/obj/machinery/power/smes/magical{desc = "A high-capacity superconducting magnetic energy storage (SMES) unit.";name = "power storage unit"},/obj/structure/cable,/obj/structure/cable,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) -"eS" = (/obj/structure/cable{d1 = 1;d2 = 8;icon_state = "1-8"},/turf/open/floor/plasteel/warning{dir = 4},/area/awaymission/BMPship/Aft) -"eT" = (/obj/effect/decal/cleanable/cobweb,/obj/machinery/power/port_gen/pacman/super,/turf/open/floor/engine,/area/awaymission/BMPship/Aft) -"eU" = (/obj/structure/closet,/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) -"eV" = (/obj/machinery/light{icon_state = "tube1";dir = 4},/obj/structure/closet,/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) -"eW" = (/obj/item/weapon/wrench,/turf/open/floor/plating,/area/awaymission/BMPship/Midship) -"eX" = (/obj/structure/disposalpipe/segment{dir = 4;icon_state = "pipe-c"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) -"eY" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) -"eZ" = (/obj/structure/mopbucket,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) -"fa" = (/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/kitchen/knife,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) -"fb" = (/obj/structure/cable{d1 = 1;d2 = 2;icon_state = "1-2";pixel_y = 0},/obj/item/weapon/stock_parts/cell/high,/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) -"fc" = (/turf/closed/wall/shuttle{icon_state = "swall_s5";dir = 2},/area/awaymission/BMPship/Fore) -"fd" = (/obj/machinery/door/unpowered/shuttle,/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) -"fe" = (/obj/structure/cable{d1 = 1;d2 = 2;icon_state = "1-2";pixel_y = 0},/obj/machinery/door/unpowered/shuttle,/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) -"ff" = (/turf/closed/wall/shuttle{icon_state = "swall11";dir = 2},/area/awaymission/BMPship/Fore) -"fg" = (/obj/effect/gibspawner/xeno,/turf/open/floor/plating,/area/awaymission/BMPship/Midship) -"fh" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel{icon_state = "panelscorched"},/area/awaymission/BMPship/Midship) -"fi" = (/obj/structure/kitchenspike,/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) -"fj" = (/turf/open/floor/plasteel/loadingarea/dirty{dir = 4},/area/awaymission/BMPship/Midship) -"fk" = (/obj/machinery/conveyor{dir = 4;id = "meatConvey2"},/obj/item/weapon/kitchen/knife,/turf/open/floor/plating,/area/awaymission/BMPship/Midship) -"fl" = (/obj/machinery/conveyor{dir = 4;id = "meatConvey2"},/obj/structure/plasticflaps,/turf/open/floor/plating,/area/awaymission/BMPship/Midship) -"fm" = (/obj/machinery/conveyor{dir = 4;id = "meatConvey2"},/turf/open/floor/plating,/area/awaymission/BMPship/Midship) -"fn" = (/obj/structure/disposalpipe/segment{dir = 8;icon_state = "pipe-c"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) -"fo" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) -"fp" = (/obj/structure/window/reinforced,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) -"fq" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) -"fr" = (/obj/item/stack/cable_coil,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) -"fs" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/warning{dir = 4},/area/awaymission/BMPship/Aft) -"ft" = (/obj/item/stack/sheet/mineral/uranium{amount = 50},/turf/open/floor/engine,/area/awaymission/BMPship/Aft) -"fu" = (/obj/structure/cable{d1 = 1;d2 = 4;icon_state = "1-4"},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Fore) -"fv" = (/obj/item/weapon/shard{icon_state = "small"},/obj/structure/cable{d1 = 4;d2 = 8;icon_state = "4-8";pixel_x = 0},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Fore) -"fw" = (/obj/structure/cable{d1 = 4;d2 = 8;icon_state = "4-8";pixel_x = 0},/turf/open/floor/plating/airless{icon_state = "panelscorched"},/area/awaymission/BMPship/Fore) -"fx" = (/obj/structure/cable{d1 = 2;d2 = 8;icon_state = "2-8"},/turf/open/floor/plating/airless{icon_state = "platingdmg3"},/area/awaymission/BMPship/Fore) -"fy" = (/obj/structure/cable{d1 = 1;d2 = 8;icon_state = "1-8"},/obj/item/weapon/kitchen/knife,/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) -"fz" = (/obj/machinery/conveyor_switch/oneway{id = "meatConvey2"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) -"fA" = (/obj/structure/cable{d1 = 1;d2 = 4;icon_state = "1-4"},/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) -"fB" = (/obj/structure/cable{d1 = 4;d2 = 8;icon_state = "4-8";pixel_y = 0},/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) -"fC" = (/obj/structure/cable{d1 = 2;d2 = 8;icon_state = "2-8"},/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) -"fD" = (/obj/item/weapon/mop,/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) -"fE" = (/obj/effect/decal/cleanable/oil,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) -"fF" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel/warning{dir = 4},/area/awaymission/BMPship/Aft) -"fG" = (/obj/item/weapon/shard,/turf/open/floor/plating/airless{icon_state = "platingdmg1"},/area/awaymission/BMPship/Fore) -"fH" = (/obj/structure/chair/stool,/turf/open/floor/plating/airless{icon_state = "platingdmg3"},/area/awaymission/BMPship/Fore) -"fI" = (/obj/item/stack/cable_coil{amount = 5},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Fore) -"fJ" = (/obj/structure/cable{d1 = 1;d2 = 2;icon_state = "1-2";pixel_y = 0},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Fore) -"fK" = (/obj/structure/cable{d1 = 1;d2 = 4;icon_state = "1-4"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) -"fL" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/food/snacks/meat,/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) -"fM" = (/obj/item/weapon/reagent_containers/glass/bucket,/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) -"fN" = (/obj/structure/reagent_dispensers,/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) -"fO" = (/obj/structure/cable{d1 = 1;d2 = 2;icon_state = "1-2";pixel_y = 0},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) -"fP" = (/turf/open/floor/plating/asteroid/airless,/area/awaymission/BMPship) -"fQ" = (/turf/open/floor/plating/airless{icon_state = "platingdmg2"},/turf/closed/wall/shuttle{dir = 3;icon_state = "swall_f10";layer = 2},/area/awaymission/BMPship/Fore) -"fR" = (/obj/structure/frame/computer{anchored = 1},/turf/open/floor/plating/airless{icon_state = "panelscorched"},/area/awaymission/BMPship/Fore) -"fS" = (/obj/structure/frame/computer{anchored = 1},/turf/open/floor/plating/airless{icon_state = "platingdmg1"},/area/awaymission/BMPship/Fore) -"fT" = (/obj/machinery/light/small,/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) -"fU" = (/turf/open/floor/plasteel{icon_state = "platingdmg3"},/area/awaymission/BMPship/Midship) -"fV" = (/turf/open/floor/plasteel{icon_state = "platingdmg1"},/area/awaymission/BMPship/Midship) -"fW" = (/obj/machinery/door/airlock/silver{locked = 1},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) -"fX" = (/obj/machinery/door/airlock/silver{locked = 1},/obj/structure/cable{d1 = 1;d2 = 2;icon_state = "1-2"},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) -"fY" = (/obj/machinery/door/unpowered/shuttle,/obj/structure/cable{d1 = 1;d2 = 2;icon_state = "1-2";pixel_y = 0},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) -"fZ" = (/turf/closed/mineral/random,/area/awaymission/BMPship) -"ga" = (/obj/item/device/multitool,/turf/open/floor/plating/airless{icon_state = "platingdmg2"},/area/space) -"gb" = (/turf/closed/wall/shuttle{icon_state = "swallc1"},/area/awaymission/BMPship/Fore) -"gc" = (/obj/structure/cable{d1 = 1;d2 = 2;icon_state = "1-2"},/obj/machinery/door/airlock/silver,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Fore) -"gd" = (/obj/machinery/light{dir = 1},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) -"ge" = (/obj/structure/chair/stool,/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) -"gf" = (/obj/structure/table,/obj/item/weapon/paper{info = "DEAR DAIRY: So we was doing our typpical route when the captain says we've been picking up weird signals on some backwatter planet. Madsen wanted to stay on course but he ain't the captain, so we went out of the way to check it out. There was lots of rocks on the way, but we got to the planet fine. Found a big fancy camp with nobody around and this big metal donut thing with NT stamps all over it right in the middle. Case of beer too. Captain reckons we can pass it off to some buyer in the Syndicate. Ingram says it's bad luck and that someone is going to come look for it but it sounds like better money than selling bad meat to jerky companies.";name = "Old Diary"},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) -"gg" = (/obj/structure/table,/obj/item/weapon/pen/red,/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) -"gh" = (/obj/structure/closet,/obj/item/clothing/under/overalls,/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) -"gi" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Fore) -"gj" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/engine,/area/awaymission/BMPship/Fore) -"gk" = (/obj/structure/cable,/turf/open/floor/plating/airless{icon_state = "platingdmg3"},/area/awaymission/BMPship/Fore) -"gl" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Fore) -"gm" = (/obj/structure/rack,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Fore) -"gn" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plating/asteroid/airless,/area/awaymission/BMPship/Fore) -"go" = (/turf/open/floor/plating/airless{broken = 1;icon_state = "platingdmg1"},/area/awaymission/BMPship/Midship) -"gp" = (/obj/item/wallframe/apc,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) -"gq" = (/obj/structure/ore_box,/obj/machinery/light/small{dir = 1},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) -"gr" = (/obj/structure/ore_box,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) -"gs" = (/obj/machinery/computer/arcade,/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) -"gt" = (/obj/effect/decal/remains/human,/obj/structure/cable{d1 = 1;d2 = 4;icon_state = "1-4"},/obj/structure/cable{d1 = 1;d2 = 2;icon_state = "1-2"},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) -"gu" = (/obj/structure/cable{d1 = 4;d2 = 8;icon_state = "4-8";pixel_y = 0},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) -"gv" = (/obj/structure/cable{d1 = 1;d2 = 4;icon_state = "1-4"},/obj/structure/cable{d1 = 1;d2 = 8;icon_state = "1-8"},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) -"gw" = (/obj/structure/cable{d2 = 8;icon_state = "0-8"},/obj/item/wallframe/apc,/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) -"gx" = (/obj/effect/decal/remains/human,/obj/item/clothing/head/helmet/space/syndicate/green/dark,/obj/effect/gibspawner/generic,/turf/open/floor/plating/asteroid/airless,/area/awaymission/BMPship) -"gy" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/item/weapon/shard{icon_state = "small"},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Fore) -"gz" = (/obj/machinery/door/unpowered/shuttle,/turf,/area/awaymission/BMPship/Fore) -"gA" = (/obj/effect/gibspawner/robot,/turf/open/floor/plasteel/airless{icon_state = "floorscorched2"},/area/awaymission/BMPship/Fore) -"gB" = (/turf/open/floor/plating/airless{broken = 1;icon_state = "platingdmg2"},/area/awaymission/BMPship/Midship) -"gC" = (/obj/structure/mecha_wreckage/ripley,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) -"gD" = (/obj/structure/bed,/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) -"gE" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/item/weapon/storage/wallet/random,/obj/structure/cable{d1 = 1;d2 = 2;icon_state = "1-2"},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) -"gF" = (/obj/structure/closet,/obj/item/clothing/under/lawyer/bluesuit,/obj/item/clothing/suit/apron,/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) -"gG" = (/obj/item/clothing/suit/space/syndicate/green/dark,/turf/open/floor/plating/asteroid/airless,/area/awaymission/BMPship) -"gH" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/grille,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Fore) -"gI" = (/obj/effect/gibspawner/robot,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) -"gJ" = (/obj/structure/cable{icon_state = "0-4";d2 = 4},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) -"gK" = (/obj/structure/cable{d1 = 4;d2 = 8;icon_state = "4-8";pixel_x = 0},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) -"gL" = (/obj/machinery/door/unpowered/shuttle,/obj/structure/cable{d1 = 4;d2 = 8;icon_state = "4-8";pixel_x = 0},/turf/open/floor/plating,/area/awaymission/BMPship/Midship) -"gM" = (/obj/structure/cable{d1 = 4;d2 = 8;icon_state = "4-8";pixel_x = 0},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) -"gN" = (/obj/structure/cable{d1 = 1;d2 = 8;icon_state = "1-8"},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) -"gO" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/open/space,/area/space) -"gP" = (/turf/open/floor/plating/airless{broken = 1;icon_state = "panelscorched"},/area/awaymission/BMPship/Midship) -"gQ" = (/obj/effect/decal/remains/human,/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) -"gR" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) -"gS" = (/obj/machinery/door/unpowered/shuttle,/turf/open/floor/plasteel/cafeteria{dir = 2},/area/awaymission/BMPship/Aft) -"gT" = (/obj/structure/mirror{pixel_y = 28},/turf/open/floor/plasteel/cafeteria{dir = 2},/area/awaymission/BMPship/Aft) -"gU" = (/obj/structure/toilet{dir = 8},/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/cafeteria{dir = 2},/area/awaymission/BMPship/Aft) -"gV" = (/turf/open/floor/plating/airless{broken = 1;icon_state = "platingdmg3"},/area/awaymission/BMPship/Midship) -"gW" = (/obj/item/weapon/caution,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) -"gX" = (/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) -"gY" = (/obj/structure/closet/crate,/obj/item/stack/spacecash/c10,/obj/item/stack/spacecash/c200,/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) -"gZ" = (/obj/structure/closet/crate,/obj/item/stack/spacecash/c10,/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) -"ha" = (/obj/structure/sink{dir = 2},/turf/open/floor/plasteel/cafeteria{dir = 2},/area/awaymission/BMPship/Aft) -"hb" = (/turf/open/floor/plasteel/cafeteria{dir = 2},/turf/closed/wall/shuttle{icon_state = "swall_f6";dir = 2},/area/awaymission/BMPship/Aft) -"hc" = (/obj/item/clothing/gloves/color/fyellow,/turf/open/floor/plating/asteroid/airless,/area/awaymission/BMPship) -"hd" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/open/floor/engine,/area/awaymission/BMPship/Aft) -"he" = (/obj/item/weapon/storage/box/matches,/obj/item/weapon/storage/fancy/cigarettes/dromedaryco,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) -"hf" = (/obj/item/weapon/poster/contraband,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) -"hg" = (/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) -"hh" = (/turf/open/floor/plating,/turf/closed/wall/shuttle{icon_state = "swall_f6";dir = 2},/area/awaymission/BMPship/Aft) -"hi" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/grille,/turf/open/floor/engine,/area/awaymission/BMPship/Aft) -"hj" = (/turf/closed/mineral/diamond,/area/awaymission/BMPship) -"hk" = (/turf/closed/mineral/clown,/area/awaymission/BMPship) -"hl" = (/turf/closed/wall/shuttle{icon_state = "swall_s6";dir = 2},/area/awaymission/BMPship/Midship) -"hm" = (/turf/closed/wall/shuttle{icon_state = "swall12"},/area/awaymission/BMPship/Midship) -"hn" = (/turf/closed/wall/shuttle{icon_state = "swall14"},/area/awaymission/BMPship/Midship) -"ho" = (/turf/closed/wall/shuttle{icon_state = "swall4"},/area/awaymission/BMPship/Fore) -"hp" = (/turf/closed/wall/shuttle{icon_state = "swall12"},/area/awaymission/BMPship/Fore) -"hq" = (/turf/closed/wall/shuttle{icon_state = "swall14"},/area/awaymission/BMPship/Fore) -"hr" = (/turf/closed/wall/shuttle{icon_state = "swall_s10";dir = 2},/area/awaymission/BMPship/Fore) -"hs" = (/turf/closed/wall/shuttle{icon_state = "swall3"},/area/awaymission/BMPship/Aft) -"ht" = (/turf/closed/wall/shuttle{icon_state = "swall3"},/area/awaymission/BMPship/Fore) -"hu" = (/turf/open/floor/plating/warnplate{dir = 9},/area/awaymission/BMPship/Fore) -"hv" = (/turf/open/floor/plating/warnplate{dir = 1},/area/awaymission/BMPship/Fore) -"hw" = (/turf/open/floor/plating/warnplate{dir = 8},/area/awaymission/BMPship/Fore) -"hx" = (/turf/open/floor/plating,/area/awaymission/BMPship/Fore) -"hy" = (/turf/closed/wall/shuttle{icon_state = "swall2"},/area/awaymission/BMPship/Fore) -"hz" = (/turf/closed/wall/shuttle{icon_state = "swall8"},/area/awaymission/BMPship/Fore) -"hA" = (/turf/closed/wall/shuttle{icon_state = "swall1"},/area/awaymission/BMPship/Fore) -"hB" = (/turf/closed/wall/shuttle{icon_state = "swall13"},/area/awaymission/BMPship/Midship) -"hC" = (/turf/closed/wall/shuttle{icon_state = "swall8"},/area/awaymission/BMPship/Midship) -"hD" = (/turf/closed/wall/shuttle{icon_state = "swall4"},/area/awaymission/BMPship/Midship) -"hE" = (/turf/open/floor/plating/warnplate{dir = 2},/area/awaymission/BMPship/Aft) -"hF" = (/obj/machinery/light/small,/turf/open/floor/plating/warnplate{dir = 2},/area/awaymission/BMPship/Aft) -"hG" = (/turf/open/floor/plating/warnplate{dir = 6},/area/awaymission/BMPship/Aft) -"hH" = (/turf/closed/wall/shuttle{icon_state = "swall_s6";dir = 2},/area/awaymission/BMPship/Fore) -"hI" = (/turf/closed/wall/shuttle{icon_state = "swall3";dir = 2},/area/awaymission/BMPship/Fore) -"hJ" = (/turf/closed/wall/shuttle{icon_state = "swall7"},/area/awaymission/BMPship/Midship) -"hK" = (/turf/closed/wall/shuttle{icon_state = "swall15"},/area/awaymission/BMPship/Aft) -"hL" = (/turf/closed/wall/shuttle{icon_state = "swall3";dir = 2},/area/awaymission/BMPship/Midship) -"hM" = (/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) -"hN" = (/turf/closed/wall/shuttle{icon_state = "swall2"},/area/awaymission/BMPship/Aft) -"hO" = (/turf/closed/wall/shuttle{icon_state = "swall11"},/area/awaymission/BMPship/Aft) -"hP" = (/turf/closed/wall/shuttle{icon_state = "swall1"},/area/awaymission/BMPship/Aft) -"hQ" = (/turf/open/floor/plating,/area/awaymission/BMPship/Midship) -"hR" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) -"hS" = (/obj/machinery/door/window{base_state = "right";dir = 4;icon_state = "right"},/turf/open/floor/plating,/area/awaymission/BMPship/Midship) -"hT" = (/turf/open/floor/plating/airless{icon_state = "platingdmg1"},/area/awaymission/BMPship/Fore) -"hU" = (/obj/structure/lattice,/turf/open/space,/area/awaymission/BMPship/Fore) -"hV" = (/turf/open/floor/plating/airless{icon_state = "platingdmg3"},/area/awaymission/BMPship/Fore) -"hW" = (/turf/open/floor/plating/airless{icon_state = "platingdmg2"},/area/awaymission/BMPship/Fore) -"hX" = (/turf/closed/wall/shuttle{icon_state = "swallc2"},/area/awaymission/BMPship/Aft) -"hY" = (/turf/closed/wall/shuttle{icon_state = "swallc3"},/area/awaymission/BMPship/Fore) -"hZ" = (/turf/closed/mineral/random,/area/awaymission/BMPship/Midship) -"ia" = (/obj/machinery/porta_turret{dir = 8;emagged = 1;installation = /obj/item/weapon/gun/energy/lasercannon},/turf/open/floor/engine,/area/awaymission/BMPship/Fore) -"ib" = (/turf/open/floor/plating/asteroid/airless,/area/awaymission/BMPship/Fore) -"ic" = (/turf/closed/wall/shuttle,/area/awaymission/BMPship/Fore) -"id" = (/turf/open/floor/plating/asteroid/airless,/area/awaymission/BMPship/Midship) -"ie" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) -"if" = (/obj/item/stack/cable_coil{amount = 5},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) -"ig" = (/turf/open/floor/engine,/area/awaymission/BMPship/Fore) -"ih" = (/turf/open/floor/plating/airless,/area/awaymission/BMPship/Fore) -"ii" = (/turf/closed/mineral/random,/area/awaymission/BMPship/Fore) -"ij" = (/turf/closed/wall/shuttle,/area/awaymission/BMPship) -"ik" = (/turf/closed/wall/shuttle{icon_state = "swall13"},/area/awaymission/BMPship/Fore) -"il" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/engine,/area/awaymission/BMPship/Aft) +"ac" = (/turf/closed/wall/mineral/titanium,/area/awaymission/BMPship/Aft) +"ad" = (/turf/closed/wall/mineral/titanium/interior,/area/awaymission/BMPship/Aft) +"ae" = (/turf/closed/wall/mineral/titanium/overspace,/area/awaymission/BMPship/Aft) +"af" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/open/floor/engine,/area/awaymission/BMPship/Aft) +"ag" = (/obj/machinery/porta_turret{dir = 8; emagged = 1; installation = /obj/item/weapon/gun/energy/lasercannon},/turf/open/floor/engine,/area/awaymission/BMPship/Aft) +"ah" = (/turf/open/floor/engine,/area/awaymission/BMPship/Aft) +"ai" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"aj" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/open/floor/engine,/area/awaymission/BMPship/Aft) +"ak" = (/obj/machinery/door/unpowered/shuttle,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"al" = (/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"am" = (/obj/structure/lattice,/turf/open/space,/area/space) +"an" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/open/floor/engine,/area/awaymission/BMPship/Aft) +"ao" = (/obj/machinery/light/small,/turf/open/floor/engine,/area/awaymission/BMPship/Aft) +"ap" = (/turf/closed/wall/mineral/titanium/overspace,/area/awaymission/BMPship/Midship) +"aq" = (/turf/closed/wall/mineral/titanium,/area/awaymission/BMPship/Midship) +"ar" = (/obj/machinery/door/airlock/silver{locked = 1},/turf/open/floor/plating{icon_state = "panelscorched"},/area/awaymission/BMPship/Aft) +"as" = (/obj/structure/bed/roller,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"at" = (/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"au" = (/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/restraints/handcuffs,/obj/structure/closet/crate,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"av" = (/obj/item/weapon/scalpel,/obj/structure/closet/crate,/obj/item/weapon/tank/internals/anesthetic,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"aw" = (/obj/item/bodybag,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"ax" = (/obj/item/weapon/storage/box/syringes,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"ay" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"az" = (/obj/structure/table/optable,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"aA" = (/obj/machinery/computer/operating,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"aB" = (/turf/open/floor/plating/warnplate{dir = 9},/area/awaymission/BMPship/Aft) +"aC" = (/obj/structure/closet/crate/freezer,/obj/item/organ/appendix,/obj/item/weapon/reagent_containers/food/snacks/meat/slab,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/golem,/turf/open/floor/plating/warnplate{dir = 1},/area/awaymission/BMPship/Aft) +"aD" = (/obj/structure/closet/crate/freezer,/obj/item/organ/brain,/obj/item/weapon/reagent_containers/food/snacks/meat/slab,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/slime,/turf/open/floor/plating/warnplate{dir = 1},/area/awaymission/BMPship/Aft) +"aE" = (/obj/structure/table,/obj/item/stack/packageWrap,/turf/open/floor/plating/warnplate{dir = 1},/area/awaymission/BMPship/Aft) +"aF" = (/obj/structure/table,/obj/item/weapon/storage/box,/obj/machinery/light/small{dir = 1},/turf/open/floor/plating/warnplate{dir = 1},/area/awaymission/BMPship/Aft) +"aG" = (/turf/open/floor/plating/warnplate{dir = 1},/area/awaymission/BMPship/Aft) +"aH" = (/turf/closed/wall/mineral/titanium/interior,/area/awaymission/BMPship/Fore) +"aI" = (/turf/closed/wall/mineral/titanium/overspace,/area/awaymission/BMPship/Fore) +"aJ" = (/turf/open/floor/plating/airless{icon_state = "platingdmg2"},/area/awaymission/BMPship/Midship) +"aK" = (/turf/open/floor/plating/airless{icon_state = "platingdmg3"},/area/awaymission/BMPship/Midship) +"aL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"aM" = (/turf/open/floor/plating/warnplate{dir = 8},/area/awaymission/BMPship/Aft) +"aN" = (/obj/item/weapon/storage/box,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"aO" = (/obj/item/weapon/hand_labeler,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"aP" = (/obj/structure/closet/crate/large,/turf/open/floor/plating/warnplate{dir = 4},/area/awaymission/BMPship/Aft) +"aQ" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Fore) +"aR" = (/obj/structure/table/wood,/obj/item/stack/spacecash/c500,/obj/item/stack/spacecash/c100,/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/open/floor/wood,/area/awaymission/BMPship/Fore) +"aS" = (/obj/structure/bed,/obj/item/weapon/bedsheet/yellow,/turf/open/floor/wood,/area/awaymission/BMPship/Fore) +"aT" = (/turf/closed/wall/mineral/titanium,/area/awaymission/BMPship/Fore) +"aU" = (/turf/open/floor/plating/warnplate{dir = 9},/area/awaymission/BMPship/Fore) +"aV" = (/obj/structure/rack,/turf/open/floor/plating/warnplate{dir = 1},/area/awaymission/BMPship/Fore) +"aW" = (/turf/open/floor/plating/warnplate{dir = 1},/area/awaymission/BMPship/Fore) +"aX" = (/turf/open/floor/plating/warnplate{dir = 5},/area/awaymission/BMPship/Fore) +"aY" = (/obj/structure/sign/vacuum,/turf/closed/wall/mineral/titanium,/area/awaymission/BMPship/Fore) +"aZ" = (/turf/open/floor/plating/airless{icon_state = "platingdmg1"},/area/awaymission/BMPship/Midship) +"ba" = (/turf/open/floor/plating/airless{icon_state = "panelscorched"},/area/awaymission/BMPship/Midship) +"bb" = (/obj/effect/decal/cleanable/blood/gibs/old,/obj/effect/gibspawner/human,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"bc" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/item/clothing/glasses/regular/hipster,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"bd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"be" = (/obj/machinery/door/unpowered/shuttle,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf,/area/awaymission/BMPship/Midship) +"bf" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating/warnplate{dir = 8},/area/awaymission/BMPship/Aft) +"bg" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"bh" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"bi" = (/obj/machinery/computer/teleporter,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"bj" = (/obj/machinery/teleport/station,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"bk" = (/obj/machinery/teleport/hub,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"bl" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Fore) +"bm" = (/turf/open/floor/wood,/area/awaymission/BMPship/Fore) +"bn" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/wood,/area/awaymission/BMPship/Fore) +"bo" = (/turf/open/floor/plating/warnplate{dir = 8},/area/awaymission/BMPship/Fore) +"bp" = (/turf/open/floor/plating,/area/awaymission/BMPship/Fore) +"bq" = (/obj/machinery/door/airlock/external,/turf/open/floor/plating,/area/awaymission/BMPship/Fore) +"br" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"bs" = (/obj/structure/closet/crate,/obj/item/stack/spacecash/c1000,/obj/item/stack/spacecash/c50,/turf/open/floor/plating/warnplate{dir = 4},/area/awaymission/BMPship/Aft) +"bt" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Fore) +"bu" = (/turf/open/floor/plasteel{icon_state = "wood-broken"},/area/awaymission/BMPship/Fore) +"bv" = (/turf/open/floor/plating/warnplate{dir = 2},/area/awaymission/BMPship/Fore) +"bw" = (/obj/machinery/light/small,/turf/open/floor/plating/warnplate{dir = 2},/area/awaymission/BMPship/Fore) +"bx" = (/turf/open/floor/plating/warnplate{dir = 6},/area/awaymission/BMPship/Fore) +"by" = (/obj/machinery/light,/obj/effect/decal/cleanable/blood/gibs/old,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"bz" = (/obj/machinery/button/door{id = "packerMed"; pixel_y = -24},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"bA" = (/obj/machinery/sleeper{dir = 1},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"bB" = (/obj/machinery/sleep_console,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"bC" = (/obj/machinery/light,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"bD" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"bE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/item/weapon/hand_labeler,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"bF" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"bG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/item/weapon/storage/box,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"bH" = (/turf/open/floor/plating/warnplate{dir = 4},/area/awaymission/BMPship/Aft) +"bI" = (/obj/machinery/door/unpowered/shuttle,/turf/open/floor/plasteel{icon_state = "carpetside"; dir = 1},/area/awaymission/BMPship/Fore) +"bJ" = (/obj/machinery/door/airlock/silver,/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"bK" = (/obj/machinery/door/poddoor/shutters{id = "packerMed"},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"bL" = (/obj/structure/closet/crate/large,/turf/open/floor/plating/warnplate{dir = 10},/area/awaymission/BMPship/Aft) +"bM" = (/turf/open/floor/plating/warnplate{dir = 2},/area/awaymission/BMPship/Aft) +"bN" = (/obj/machinery/light/small,/turf/open/floor/plating/warnplate{dir = 2},/area/awaymission/BMPship/Aft) +"bO" = (/obj/structure/kitchenspike,/turf/open/floor/plating/warnplate{dir = 2},/area/awaymission/BMPship/Aft) +"bP" = (/obj/structure/closet/crate,/obj/item/device/analyzer,/obj/item/stack/spacecash/c10,/turf/open/floor/plating/warnplate{dir = 2},/area/awaymission/BMPship/Aft) +"bQ" = (/obj/structure/closet/crate,/obj/item/stack/spacecash/c1000,/obj/item/stack/spacecash/c200,/obj/item/stack/spacecash/c500,/turf/open/floor/plating/warnplate{dir = 2},/area/awaymission/BMPship/Aft) +"bR" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice,/obj/item/organ/appendix,/obj/item/weapon/reagent_containers/food/snacks/meat/slab,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/golem/adamantine,/turf/open/floor/plating/warnplate{dir = 2},/area/awaymission/BMPship/Aft) +"bS" = (/obj/machinery/button/door{id = "packerCargo"; pixel_y = -24},/obj/machinery/light/small,/turf/open/floor/plating/warnplate{dir = 2},/area/awaymission/BMPship/Aft) +"bT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/warnplate{dir = 2},/area/awaymission/BMPship/Aft) +"bU" = (/turf/open/floor/plating/warnplate{dir = 6},/area/awaymission/BMPship/Aft) +"bV" = (/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"bW" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 1; environ = 0; equipment = 3; locked = 0; pixel_y = 32; req_access = ""},/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"bX" = (/obj/structure/table,/obj/item/weapon/screwdriver,/obj/item/weapon/screwdriver,/obj/item/weapon/paper{info = "The next person who takes one of my screwdrivers gets stabbed with one. They are MINE. - Love, Madsen"; name = "scribbled note"},/obj/item/weapon/screwdriver,/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"bY" = (/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"bZ" = (/obj/machinery/hydroponics,/turf/open/floor/plasteel/green/side{dir = 8},/area/awaymission/BMPship/Midship) +"ca" = (/obj/structure/sink{dir = 2},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/awaymission/BMPship/Midship) +"cb" = (/obj/machinery/vending/hydroseeds{slogan_delay = 700},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/awaymission/BMPship/Midship) +"cc" = (/obj/machinery/vending/hydronutrients,/turf/open/floor/plasteel/yellow/side{dir = 1},/area/awaymission/BMPship/Midship) +"cd" = (/obj/machinery/hydroponics,/turf/open/floor/plasteel/green/side{dir = 4},/area/awaymission/BMPship/Midship) +"ce" = (/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"cf" = (/obj/structure/table,/obj/item/weapon/kitchen/knife/butcher,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/item/weapon/reagent_containers/food/snacks/meat,/turf/open/floor/plasteel/barber,/area/awaymission/BMPship/Midship) +"cg" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/open/floor/plasteel/barber,/area/awaymission/BMPship/Midship) +"ch" = (/obj/structure/table,/obj/machinery/microwave,/turf/open/floor/plasteel/barber,/area/awaymission/BMPship/Midship) +"ci" = (/obj/machinery/processor,/obj/machinery/light{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/barber,/area/awaymission/BMPship/Midship) +"cj" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"ck" = (/obj/structure/table,/obj/item/weapon/kitchen/knife,/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"cl" = (/obj/structure/table,/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"cm" = (/obj/structure/table,/obj/effect/decal/cleanable/cobweb/cobweb2,/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"cn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/poddoor/shutters{id = "packerCargo"},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"co" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"cp" = (/obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice,/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"cq" = (/turf/open/floor/plasteel,/area/awaymission/BMPship/Midship) +"cr" = (/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/open/floor/plasteel,/area/awaymission/BMPship/Midship) +"cs" = (/turf/open/floor/plasteel/barber,/area/awaymission/BMPship/Midship) +"ct" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/barber,/area/awaymission/BMPship/Midship) +"cu" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"cv" = (/obj/structure/kitchenspike,/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) +"cw" = (/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) +"cx" = (/obj/machinery/door/airlock/silver,/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) +"cy" = (/turf/open/floor/plasteel/white,/area/awaymission/BMPship/Aft) +"cz" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/white,/area/awaymission/BMPship/Aft) +"cA" = (/obj/effect/decal/cleanable/blood/gibs/old,/turf/open/floor/plasteel/white,/area/awaymission/BMPship/Aft) +"cB" = (/obj/machinery/gibber,/turf/open/floor/plasteel/white,/area/awaymission/BMPship/Aft) +"cC" = (/turf/open/floor/plasteel/hydrofloor,/area/awaymission/BMPship/Aft) +"cD" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"cE" = (/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"cF" = (/turf/closed/wall/mineral/titanium/overspace,/area/space) +"cG" = (/turf/open/floor/carpet,/turf/closed/wall/mineral/titanium/interior,/area/awaymission/BMPship/Fore) +"cH" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"cI" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"cJ" = (/obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice,/turf/open/floor/plasteel,/area/awaymission/BMPship/Midship) +"cK" = (/obj/machinery/door/unpowered/shuttle,/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"cL" = (/obj/structure/window/reinforced,/turf/open/floor/plasteel/barber,/area/awaymission/BMPship/Midship) +"cM" = (/obj/structure/window/reinforced,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/open/floor/plasteel/barber,/area/awaymission/BMPship/Midship) +"cN" = (/obj/machinery/door/window,/turf/open/floor/plasteel/barber,/area/awaymission/BMPship/Midship) +"cO" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/open/floor/plasteel/barber,/area/awaymission/BMPship/Midship) +"cP" = (/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"cQ" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) +"cR" = (/obj/structure/closet/secure_closet/freezer/meat{opened = 1},/turf/open/floor/plasteel/white,/area/awaymission/BMPship/Aft) +"cS" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/food/snacks/meat/slab,/obj/item/weapon/reagent_containers/food/snacks/meat/slab,/turf/open/floor/plasteel/white,/area/awaymission/BMPship/Aft) +"cT" = (/obj/effect/decal/cleanable/blood/splatter,/turf/open/floor/plasteel/white,/area/awaymission/BMPship/Aft) +"cU" = (/obj/item/weapon/crowbar,/turf/open/floor/plasteel/white,/area/awaymission/BMPship/Aft) +"cV" = (/turf/open/floor/plasteel/warning{dir = 8},/area/awaymission/BMPship/Aft) +"cW" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/power/apc{dir = 1; environ = 0; equipment = 3; locked = 0; pixel_y = 32; req_access = ""},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"cX" = (/turf/open/floor/plasteel/warning{dir = 4},/area/awaymission/BMPship/Aft) +"cY" = (/obj/structure/table,/obj/item/weapon/paper{info = "I'm no scientist, but judging from the design and components, it seems to be some kind of teleporter. This thing is gonna be worth a lot of cash to the right man. The boys are excited, as they have every right to be, and I've let them crack into that case of beer we got. I normally wouldn't allow such a thing, but this is a time for celebration! It's not like a couple drinks will hurt anything."; name = "Captain's log entry"},/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"cZ" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"da" = (/obj/structure/frame/computer{anchored = 1},/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"db" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"dc" = (/obj/machinery/hydroponics,/turf/open/floor/plasteel/green/side{dir = 10},/area/awaymission/BMPship/Midship) +"dd" = (/turf/open/floor/plasteel/green/side,/area/awaymission/BMPship/Midship) +"de" = (/obj/machinery/seed_extractor,/obj/item/seeds/plump/walkingmushroom,/turf/open/floor/plasteel/green/side,/area/awaymission/BMPship/Midship) +"df" = (/obj/machinery/hydroponics,/turf/open/floor/plasteel/green/side{dir = 6},/area/awaymission/BMPship/Midship) +"dg" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"dh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"di" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"dj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) +"dk" = (/turf/closed/wall/mineral/titanium/nodiagonal,/area/awaymission/BMPship/Aft) +"dl" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"dm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"dn" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"do" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"dp" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/warning{dir = 4},/area/awaymission/BMPship/Aft) +"dq" = (/obj/item/device/multitool,/turf/open/floor/engine,/area/awaymission/BMPship/Aft) +"dr" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/engine/airless,/area/awaymission/BMPship/Aft) +"ds" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 8},/turf/open/space,/area/awaymission/BMPship/Aft) +"dt" = (/obj/structure/table,/obj/machinery/recharger,/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"du" = (/obj/structure/chair/stool,/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"dv" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"dw" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"dx" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"dy" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"dz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"dA" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"dB" = (/turf/closed/wall/r_wall,/area/awaymission/BMPship/Midship) +"dC" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) +"dD" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/warning{dir = 8},/area/awaymission/BMPship/Aft) +"dE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"dF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/warning{dir = 4},/area/awaymission/BMPship/Aft) +"dG" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/open/floor/plating,/area/awaymission/BMPship/Fore) +"dH" = (/obj/item/weapon/shard,/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"dI" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"dJ" = (/obj/machinery/door/airlock/silver,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"dK" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"dL" = (/obj/machinery/shieldwallgen,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating,/area/awaymission/BMPship/Midship) +"dM" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"dN" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 1; locked = 0; pixel_y = 28; req_access = ""},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"dO" = (/turf/open/floor/plasteel/loadingarea/dirtydirty{dir = 4},/area/awaymission/BMPship/Midship) +"dP" = (/obj/machinery/conveyor{dir = 4; id = "meatConvey1"},/turf/open/floor/plating,/area/awaymission/BMPship/Midship) +"dQ" = (/obj/machinery/conveyor{dir = 4; id = "meatConvey1"},/obj/structure/plasticflaps,/turf/open/floor/plating,/area/awaymission/BMPship/Midship) +"dR" = (/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/disposal/deliveryChute{dir = 8},/turf/open/floor/plating,/area/awaymission/BMPship/Midship) +"dS" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/closed/wall/r_wall,/area/awaymission/BMPship/Midship) +"dT" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"dU" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"dV" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"dW" = (/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"dX" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"dY" = (/obj/structure/rack,/obj/item/weapon/storage/box/lights,/turf/open/floor/plasteel/warning{dir = 8},/area/awaymission/BMPship/Aft) +"dZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/hydrofloor,/area/awaymission/BMPship/Aft) +"ea" = (/obj/machinery/power/smes/magical{desc = "A high-capacity superconducting magnetic energy storage (SMES) unit."; name = "power storage unit"},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"eb" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/terminal{dir = 8},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"ec" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/warning{dir = 4},/area/awaymission/BMPship/Aft) +"ed" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/turf/open/floor/plating,/area/awaymission/BMPship/Fore) +"ee" = (/obj/structure/table,/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"ef" = (/obj/structure/chair/office{dir = 8},/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"eg" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"eh" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating,/area/awaymission/BMPship/Midship) +"ei" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating,/area/awaymission/BMPship/Midship) +"ej" = (/turf/open/floor/plating,/area/awaymission/BMPship/Midship) +"ek" = (/obj/item/weapon/reagent_containers/glass/bucket,/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"el" = (/obj/machinery/conveyor_switch/oneway{id = "meatConvey1"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"em" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"en" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"eo" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) +"ep" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) +"eq" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/disposaloutlet{dir = 4},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"er" = (/obj/effect/decal/cleanable/blood/gibs/old,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"es" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"et" = (/obj/structure/rack,/obj/item/weapon/storage/belt/utility/full,/turf/open/floor/plasteel/warning{dir = 8},/area/awaymission/BMPship/Aft) +"eu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/warning{dir = 4},/area/awaymission/BMPship/Aft) +"ev" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"ew" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"ex" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"ey" = (/obj/effect/decal/cleanable/dirt,/obj/effect/gibspawner/xeno,/turf/open/floor/plating,/area/awaymission/BMPship/Midship) +"ez" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"eA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"eB" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"eC" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"eD" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"eE" = (/obj/effect/gibspawner/human,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"eF" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"eG" = (/obj/structure/rack,/obj/item/weapon/stock_parts/cell/high,/turf/open/floor/plasteel/warning{dir = 8},/area/awaymission/BMPship/Aft) +"eH" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/grille,/turf/open/floor/plating,/area/awaymission/BMPship/Fore) +"eI" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 8},/turf/open/floor/plating,/area/awaymission/BMPship/Midship) +"eJ" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/turf/open/floor/plating,/area/awaymission/BMPship/Midship) +"eK" = (/obj/machinery/light,/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"eL" = (/obj/effect/gibspawner/generic,/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"eM" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"eN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) +"eO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) +"eP" = (/obj/structure/rack,/turf/open/floor/plasteel/warning{dir = 8},/area/awaymission/BMPship/Aft) +"eQ" = (/obj/machinery/power/smes/magical{desc = "A high-capacity superconducting magnetic energy storage (SMES) unit."; name = "power storage unit"},/obj/structure/cable,/obj/structure/cable,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"eR" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/warning{dir = 4},/area/awaymission/BMPship/Aft) +"eS" = (/obj/effect/decal/cleanable/cobweb,/obj/machinery/power/port_gen/pacman/super,/turf/open/floor/engine,/area/awaymission/BMPship/Aft) +"eT" = (/obj/structure/closet,/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"eU" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/closet,/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"eV" = (/obj/item/weapon/wrench,/turf/open/floor/plating,/area/awaymission/BMPship/Midship) +"eW" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"eX" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"eY" = (/obj/structure/mopbucket,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"eZ" = (/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/kitchen/knife,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"fa" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/item/weapon/stock_parts/cell/high,/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"fb" = (/obj/machinery/door/unpowered/shuttle,/turf/closed/wall/mineral/titanium/interior,/area/awaymission/BMPship/Aft) +"fc" = (/obj/machinery/door/unpowered/shuttle,/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"fd" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/unpowered/shuttle,/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"fe" = (/obj/effect/gibspawner/xeno,/turf/open/floor/plating,/area/awaymission/BMPship/Midship) +"ff" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel{icon_state = "panelscorched"},/area/awaymission/BMPship/Midship) +"fg" = (/obj/structure/kitchenspike,/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"fh" = (/turf/open/floor/plasteel/loadingarea/dirty{dir = 4},/area/awaymission/BMPship/Midship) +"fi" = (/obj/machinery/conveyor{dir = 4; id = "meatConvey2"},/obj/item/weapon/kitchen/knife,/turf/open/floor/plating,/area/awaymission/BMPship/Midship) +"fj" = (/obj/machinery/conveyor{dir = 4; id = "meatConvey2"},/obj/structure/plasticflaps,/turf/open/floor/plating,/area/awaymission/BMPship/Midship) +"fk" = (/obj/machinery/conveyor{dir = 4; id = "meatConvey2"},/turf/open/floor/plating,/area/awaymission/BMPship/Midship) +"fl" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"fm" = (/turf/closed/wall/mineral/titanium/interior,/area/awaymission/BMPship/Midship) +"fn" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"fo" = (/obj/structure/window/reinforced,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"fp" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"fq" = (/obj/item/stack/cable_coil,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"fr" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/warning{dir = 4},/area/awaymission/BMPship/Aft) +"fs" = (/obj/item/stack/sheet/mineral/uranium{amount = 50},/turf/open/floor/engine,/area/awaymission/BMPship/Aft) +"ft" = (/turf/open/floor/plating/airless{icon_state = "platingdmg1"},/area/awaymission/BMPship/Fore) +"fu" = (/obj/structure/lattice,/turf/open/space,/area/awaymission/BMPship/Fore) +"fv" = (/turf/open/floor/plating/airless{icon_state = "platingdmg3"},/area/awaymission/BMPship/Fore) +"fw" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Fore) +"fx" = (/obj/item/weapon/shard{icon_state = "small"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Fore) +"fy" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating/airless{icon_state = "panelscorched"},/area/awaymission/BMPship/Fore) +"fz" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating/airless{icon_state = "platingdmg3"},/area/awaymission/BMPship/Fore) +"fA" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/item/weapon/kitchen/knife,/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"fB" = (/obj/machinery/conveyor_switch/oneway{id = "meatConvey2"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"fC" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) +"fD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) +"fE" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) +"fF" = (/obj/item/weapon/mop,/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) +"fG" = (/obj/effect/decal/cleanable/oil,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"fH" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel/warning{dir = 4},/area/awaymission/BMPship/Aft) +"fI" = (/turf/open/floor/plating/airless{icon_state = "platingdmg2"},/area/awaymission/BMPship/Fore) +"fJ" = (/obj/item/weapon/shard,/turf/open/floor/plating/airless{icon_state = "platingdmg1"},/area/awaymission/BMPship/Fore) +"fK" = (/obj/structure/chair/stool,/turf/open/floor/plating/airless{icon_state = "platingdmg3"},/area/awaymission/BMPship/Fore) +"fL" = (/obj/item/stack/cable_coil{amount = 5},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Fore) +"fM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Fore) +"fN" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"fO" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/food/snacks/meat,/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) +"fP" = (/obj/item/weapon/reagent_containers/glass/bucket,/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) +"fQ" = (/obj/structure/reagent_dispensers,/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) +"fR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"fS" = (/turf/open/floor/plating/asteroid/airless,/area/awaymission/BMPship) +"fT" = (/obj/structure/frame/computer{anchored = 1},/turf/open/floor/plating/airless{icon_state = "panelscorched"},/area/awaymission/BMPship/Fore) +"fU" = (/obj/structure/frame/computer{anchored = 1},/turf/open/floor/plating/airless{icon_state = "platingdmg1"},/area/awaymission/BMPship/Fore) +"fV" = (/obj/machinery/light/small,/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"fW" = (/turf/open/floor/plasteel{icon_state = "platingdmg3"},/area/awaymission/BMPship/Midship) +"fX" = (/turf/open/floor/plasteel{icon_state = "platingdmg1"},/area/awaymission/BMPship/Midship) +"fY" = (/obj/machinery/door/airlock/silver{locked = 1},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"fZ" = (/obj/machinery/door/airlock/silver{locked = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"ga" = (/obj/machinery/door/unpowered/shuttle,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"gb" = (/turf/closed/mineral/random,/area/awaymission/BMPship) +"gc" = (/obj/item/device/multitool,/turf/open/floor/plating/airless{icon_state = "platingdmg2"},/area/awaymission/BMPship) +"gd" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/silver,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Fore) +"ge" = (/turf/closed/mineral/random,/area/awaymission/BMPship/Midship) +"gf" = (/obj/machinery/light{dir = 1},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"gg" = (/obj/structure/chair/stool,/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"gh" = (/obj/structure/table,/obj/item/weapon/paper{info = "DEAR DAIRY: So we was doing our typpical route when the captain says we've been picking up weird signals on some backwatter planet. Madsen wanted to stay on course but he ain't the captain, so we went out of the way to check it out. There was lots of rocks on the way, but we got to the planet fine. Found a big fancy camp with nobody around and this big metal donut thing with NT stamps all over it right in the middle. Case of beer too. Captain reckons we can pass it off to some buyer in the Syndicate. Ingram says it's bad luck and that someone is going to come look for it but it sounds like better money than selling bad meat to jerky companies."; name = "Old Diary"},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"gi" = (/obj/structure/table,/obj/item/weapon/pen/red,/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"gj" = (/obj/structure/closet,/obj/item/clothing/under/overalls,/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"gk" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Fore) +"gl" = (/obj/machinery/porta_turret{dir = 8; emagged = 1; installation = /obj/item/weapon/gun/energy/lasercannon},/turf/open/floor/engine,/area/awaymission/BMPship/Fore) +"gm" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/engine,/area/awaymission/BMPship/Fore) +"gn" = (/obj/structure/cable,/turf/open/floor/plating/airless{icon_state = "platingdmg3"},/area/awaymission/BMPship/Fore) +"go" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Fore) +"gp" = (/turf/open/floor/plating/asteroid/airless,/area/awaymission/BMPship/Fore) +"gq" = (/obj/structure/rack,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Fore) +"gr" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plating/asteroid/airless,/area/awaymission/BMPship/Fore) +"gs" = (/turf/open/floor/plating/asteroid/airless,/area/awaymission/BMPship/Midship) +"gt" = (/turf/open/floor/plating/airless{broken = 1; icon_state = "platingdmg1"},/area/awaymission/BMPship/Midship) +"gu" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"gv" = (/obj/item/wallframe/apc,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"gw" = (/obj/structure/ore_box,/obj/machinery/light/small{dir = 1},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"gx" = (/obj/item/stack/cable_coil{amount = 5},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"gy" = (/obj/structure/ore_box,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"gz" = (/obj/machinery/computer/arcade,/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"gA" = (/obj/effect/decal/remains/human,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"gB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"gC" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"gD" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/item/wallframe/apc,/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"gE" = (/obj/effect/decal/remains/human,/obj/item/clothing/head/helmet/space/syndicate/green/dark,/obj/effect/gibspawner/generic,/turf/open/floor/plating/asteroid/airless,/area/awaymission/BMPship) +"gF" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/item/weapon/shard{icon_state = "small"},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Fore) +"gG" = (/turf/open/floor/engine,/area/awaymission/BMPship/Fore) +"gH" = (/obj/machinery/door/unpowered/shuttle,/turf,/area/awaymission/BMPship/Fore) +"gI" = (/turf/open/floor/plating/airless,/area/awaymission/BMPship/Fore) +"gJ" = (/obj/effect/gibspawner/robot,/turf/open/floor/plasteel/airless{icon_state = "floorscorched2"},/area/awaymission/BMPship/Fore) +"gK" = (/turf/closed/mineral/random,/area/awaymission/BMPship/Fore) +"gL" = (/turf/open/floor/plating/airless{broken = 1; icon_state = "platingdmg2"},/area/awaymission/BMPship/Midship) +"gM" = (/obj/structure/mecha_wreckage/ripley,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"gN" = (/obj/structure/bed,/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"gO" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/item/weapon/storage/wallet/random,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"gP" = (/obj/structure/closet,/obj/item/clothing/under/lawyer/bluesuit,/obj/item/clothing/suit/apron,/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"gQ" = (/obj/item/clothing/suit/space/syndicate/green/dark,/turf/open/floor/plating/asteroid/airless,/area/awaymission/BMPship) +"gR" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/grille,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Fore) +"gS" = (/turf/closed/wall/mineral/titanium,/area/awaymission/BMPship) +"gT" = (/obj/effect/gibspawner/robot,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"gU" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"gV" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"gW" = (/obj/machinery/door/unpowered/shuttle,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/closed/wall/mineral/titanium/interior,/area/awaymission/BMPship/Midship) +"gX" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"gY" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"gZ" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/open/space,/area/space) +"ha" = (/turf/open/floor/plating/airless{broken = 1; icon_state = "panelscorched"},/area/awaymission/BMPship/Midship) +"hb" = (/obj/effect/decal/remains/human,/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"hc" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"hd" = (/obj/machinery/door/unpowered/shuttle,/turf/open/floor/plasteel/cafeteria{dir = 2},/area/awaymission/BMPship/Aft) +"he" = (/obj/structure/mirror{pixel_y = 28},/turf/open/floor/plasteel/cafeteria{dir = 2},/area/awaymission/BMPship/Aft) +"hf" = (/obj/structure/toilet{dir = 8},/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/cafeteria{dir = 2},/area/awaymission/BMPship/Aft) +"hg" = (/turf/open/floor/plating/airless{broken = 1; icon_state = "platingdmg3"},/area/awaymission/BMPship/Midship) +"hh" = (/obj/item/weapon/caution,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"hi" = (/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"hj" = (/obj/structure/closet/crate,/obj/item/stack/spacecash/c10,/obj/item/stack/spacecash/c200,/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"hk" = (/obj/structure/closet/crate,/obj/item/stack/spacecash/c10,/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"hl" = (/obj/structure/sink{dir = 2},/turf/open/floor/plasteel/cafeteria{dir = 2},/area/awaymission/BMPship/Aft) +"hm" = (/turf/open/floor/plasteel/cafeteria{dir = 2},/turf/closed/wall/mineral/titanium/interior,/area/awaymission/BMPship/Aft) +"hn" = (/obj/item/clothing/gloves/color/fyellow,/turf/open/floor/plating/asteroid/airless,/area/awaymission/BMPship) +"ho" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/open/floor/engine,/area/awaymission/BMPship/Aft) +"hp" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/engine,/area/awaymission/BMPship/Aft) +"hq" = (/obj/item/weapon/storage/box/matches,/obj/item/weapon/storage/fancy/cigarettes/dromedaryco,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"hr" = (/obj/item/weapon/poster/contraband,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"hs" = (/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"ht" = (/turf/open/floor/plating,/turf/closed/wall/mineral/titanium/interior,/area/awaymission/BMPship/Aft) +"hu" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/grille,/turf/open/floor/engine,/area/awaymission/BMPship/Aft) +"hv" = (/turf/closed/mineral/diamond,/area/awaymission/BMPship) +"hw" = (/turf/closed/mineral/clown,/area/awaymission/BMPship) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacadadaeadafaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagahaiajakalafaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaiaianaoaoalafaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapaaaaaaaaaaaaaaaaaaaaaaaaaqaharajaoaoaoasafaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaphlhmhmhmhmhmhmhmhmhmhnadadadauavawacauauadaxafaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapaaapayazaAaBaCaDaEaFaGaHaIaJaKaLaMaNaOaOaOaOaOaOaPafaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaahohphphqhphphphphphphphraaaaaaaaaaaaapaQaRaAaAaAaAaAaAaSaAaAaTaUaoaoaVaoaoaoaoaoaoaWaXhsaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaYaZbahthubbhvbbhvbbbcbdaaaaaaaaaaapbeaRaAbfbgaAaAazaAbhbibibjbkblaobmaoaobnbobpaoaoaXhsaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaabqbrbshthwhxhxhxhxhxhxbtaaaaaaaphlayaAbfaRaAbfaAaAaAaAaAaAaAbuaUbvaoaoaoaoaoaoaoaoaobwhsaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaabxbybrhthxbzbzbAbzbzbBhyaaaaaahlbCbebfaAbDbEaAaAaAbFbGbHbFbGaIaUbIbJbKbKbLbKbKbKbKblbMhsaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaabNhzbOhAbPbNhmhmhmhmhmhBhmhmhmhBbQhmhmhmhmhCbRbRbRhDhmhmhmhmbCbShEhFbThEhEbUbVbWbXbYhGhsaaaaaaaaaaaa -aaaaaaaaaaaaaabZaahHcacbcbcccbhIcdcecfcgchcicgcjceckaIclcmcncockckckckcpcqcrcpcshJadadadadadadadadaeavctachKafaaaaaaaaaa -aaaaaaaaaaaaaaaahHcacbcbcbcucbhIckcvcfcwcwcwcxcjckckaTcycycyczckckckckcAcAckcAckhLcBcBcCcDcEcFcGcHhscIcJhMcKauadaeafaaaa -aaaaaaaaaaaaaaatcacbcbcbcbcLcMhIckckcfcwcNcwcwcjckckcOcPcQcRcSckckckckckckcTckckaIcCcUcChNcVcWcXcYhscZcJcIcIdadbasauadaf -aaaaaaaaaaaahHcacbcbdcdddecbdfhIckckdgdhdhdidhdjckckbuckdkdldldldldldldldldldmckhLcCdncCcKadadadadhOcZdodpdqdrdshPdtdudv -aaaaaaaaaaaahAcbcbcbdwdxcbcbdyhAdzdAdBdBdBdBdBdBdmckaTckdCckdDdEdEdEdEdEdEdEdCckaIcCdncCcCcCcCcCdFhsdGdHaobvaodIanaidudv -aaaaaaaaaaaadJdedKcbcbcbcbcbdLdMdBdNdEdEdEdEdEdOdPckdQckdCdRdSdTdSdSdSdSdUdVdWdXaTcCdndYdZdZeacCcChsebecaoedeeefhNaidudv -aaaaaaaaaaaaegeheicbejcbcbcbdfhyckckdEekekekelhQdCemdCckdCckendEdEdEdEdEdEdEdCeoepeqeresetethRcCcChseuecaobvaoevasaeadew -aaaaaaaaaaaaegeheicbcbexeyeyezhAckckdEekeAhQelhQeBdBeCdBeDckckckckckeEckckckdCckckcCdneFaoeGeHcCcChseIdHaobvaodIasauadaf -aaaaaaaaaaaaeJcbcbcbcbcucbcbcbbPckckdEeKekhQhShQdCckeLckdCckckeMckckckckckckeNdldleOePeFetaoeHcCcChseQdHaoeReeeShPeTdudv -aaaaaaaaaaaahycbcbcbcbcucbeUeVhydzckdEekhQhQeleWdCckbuckdCckdDdEdEdEdEdEdEdEdCeXeYeqereseZaofacCdFhsdGfbaoaoaodbanaidudv -aaaaaaaaaaaafchqhphpfdfehphphpffckckdEhQhQfgfhhQdCfiaTckdCfjfkflfmfmfmfmdUdVdWfnbucCdnfofpfpfqcCcChscZecaofraofshNftdudv -aaaaaaaaaaaaaafchThUhVfufvfwfxhIckckdEdEdEdEdEdOfyckcOckdCckfzdEdEdEdEdEdEdEdCckaIcCfAfBfBfBfCcCfDhscZdHhMcIfEfFasaeadew -aaaaaaaaaaaaaaaahUhWfGhUfHfIfJhIckckckckckckckckhQckbuckfKdBdBdBdBdBdBdldldldNckhLfLcCcCcCcCdnfMfNhscZfOaohXaeadauewaaaa -aafPfPaaaaapaaaaaaaafQfRfShVfJhIckfTckckckckfUckfVfUaIckfTckckckfTckckckckfTckckhJadavfWacavfXacadauavfYachKewaaaaaaaaaa -fZfZfZfPaaapaagaapaahYhphpgbgchYhmhmhmhmhmhmhmayhZhDbQhmhmhmhmhmhmhmhmhmhmhmhmhmbChMhMhMhMgdcJgegfgggddHghhsaaaaaaaaaaaa -fZfZfZfZfPaaaaaaaaaagiiagjhAgkglibgmhTgnhVicfZfZfZfZaTididaAgoidieaAidgogpgqifgraIgshMaohMhMgtgugugugugvgwhsaaaaaaaaaaaa -fZfZfZfZgxaaaaaaaaaagyigiggzihhWihibgAihibiifZfZfZfZfZayidgBgCaAidgoaAaAaAaAaAaAaTgehMhMgDhMgEhMgDhMhMhMgFhsaaaaaaaaaaaa -aaaafZfPgGaaaaaaaaaagHiaighyhVhVibhTibhVibicfZfZfZijfZfZfZidgIidaAaAaAaAaAaAgJgKgLgMgMgMgMgMgNhMhMhMacadadhOaaaaaaaaaaaa -aaaaaafPaaaaaaaagOfPhohphpikhpiciiibicfZfZfZfZfZfZfZfZfZfZfZgogBaAaAidaAaAgPaAaAbuhMhMgQgRhMgDhMgDhMgSgTgUhsaaaaaaaaaaaa -aaaaaaaaaaaaaaaafPfPfPfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZayidgBaAaAgVgWgWgWgXaIgYgZhMaohMhMhMhMhMhNhahbewaaaaaaaaaaaa -aaaaaaaaaaaaaahcfPfPfPfZfZfZfZfZfZfZfZfZfZfZijfZfZfZfZfZfZfZfZayhDhmhmhmhmhmhmhmhBadadadaeavfWacaeaeauadewaaaaaaaaaaaaaa -aaaaaaaaaaaafPfPfPfPfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfPfPaaaaaaaaaahdahilhPheaohfasewaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaafPfPfPfPfPfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfPfPaaaaaaaaaaamaiaianaohghhewaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaafPfPfPfPfPfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfPfPaaaaaaaaaahiahaihNakhhewaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaafPfZfZfPfPfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfPfPaaaaaaaaaaacadadauadewaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaafZfZfZfPfPfPfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaafZfZfZfZfZfPfPfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfPfPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaafZfZfZfZfZfPfPfPfZfZhjfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfPfPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaafZfZfZfZfZfPfPfPfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfPfPfPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaafZfZfZfZfZfPfPfPfZfZfZfZfZfZhkfZfZfZfZfZfZfZfZfZfZfZfPfPfPfPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaafZfZfZfZfZfPfPfPfZfZfZhkfZfZhkfZfZfZfZfZfZfZfZfZfPfPfPfPfZfZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaafZfZfZfZfPfPfPfPfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfPfPfZfZfZfZfZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaafZfZfPfPfPfPfPfPfZfZfZfZfZfZfZfZfZfZfZfZfPfPfPfPfZfZfZfZfZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaafPfPfPfPfPfPfZfZfZfZfZfZfZfZfPfPfPfPaaaaaafZfZfZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafPfPfPfPfPfPfPfPfPfPfPfPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacadadadadaeaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafagahacaiadaeaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajahahakalaladaeaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaaaaaaaaaaaaaaanagaoacalalaladaeaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamapaqaqaqaqaqaqaqaqaqaqacacacacacaracadadadadaeaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaamaqasatauavawaxayazaAaqaBaCaDaEaFaGaGaGaGaGaGadaeaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaHaHaHaHaHaHaHaHaHaHaHaIaaaaaaaaaaaaamaJaKatatatatatataLatataqaMalalaNalalalalalalaOaPadaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaQaRaSaTaUaVaWaVaWaVaXaYaaaaaaaaaaamaZaKatbabbatatasatbcbdbdbebfbgalbhalalbibjbkalalaPadaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaablbmbnaTbobpbpbpbpbpbpbqaaaaaaamapaqatbaaKatbaatatatatatatataqaMbralalalalalalalalalbsadaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaabtbubmaTbpbvbvbwbvbvbxaTaaaaaaapaqaZbaatbybzatatatbAbBbCbAbBaqaMbDbEbFbFbGbFbFbFbFbgbHadaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaTaTbIaTbJaTaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqbKbKbKaqaqaqaqaqaqbLbMbNbObMbMbPbQbRbSbTbUadaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaIaTbVbVbWbVaTbXbYbZcacbcccacdbYceaqcfcgchcicececececjckclcjcmaqacacacacacacacacadaccnadadaeaaaaaaaaaa +aaaaaaaaaaaaaaaaaIaTbVbVbVcobVaTcecpbZcqcqcqcrcdceceaqcscscsctcececececucucecuceaqcvcvcwcxcyczcAcBadcCcDcEadacacacaeaaaa +aaaaaaaaaaaaaacFcGbVbVbVbVcHcIaTcecebZcqcJcqcqcdcececKcLcMcNcOcececececececPceceaqcwcQcwaccRcScTcUadcVcDcCcCcWcXadadadae +aaaaaaaaaaaaaIaTbVbVcYcZdabVdbaTcecedcdddddedddfceceaqcedgdhdhdhdhdhdhdhdhdhdiceaqcwdjcwdkacacacacadcVdldmdndodpaddqdrds +aaaaaaaaaaaaaTbVbVbVdtdubVbVdvaTdwdxdydydydydydydiceaqcedzcedAdBdBdBdBdBdBdBdzceaqcwdjcwcwcwcwcwdCaddDdEalbraldFakahdrds +aaaaaaaaaaaadGdadHbVbVbVbVbVdIdJdydKdBdBdBdBdBdLdMcedNcedzdOdPdQdPdPdPdPdRdSdTdUaqcwdjdVdWdWdXcwcwaddYdZaleaebecadahdrds +aaaaaaaaaaaaedeeefbVegbVbVbVdbaTcecedBeheheheiejdzekdzcedzceeldBdBdBdBdBdBdBdzemeneoepeqererescwcwadetdZalbraleuadadadae +aaaaaaaaaaaaedeeefbVbVevewewexaTcecedBeheyejeiejezdyeAdyeBcececececeeCcececedzcececwdjeDaleEeFcwcwadeGdEalbraldFacadadae +aaaaaaaaaaaaeHbVbVbVbVcobVbVbVbJcecedBeIehejeJejdzceeKcedzceceeLcecececececeeMdhdheNeOeDeraleFcwcwadePdEaleQebeRadeSdrds +aaaaaaaaaaaaaTbVbVbVbVcobVeTeUaTdwcedBehejejeieVdzceaqcedzcedAdBdBdBdBdBdBdBdzeWeXeoepeqeYaleZcwdCaddDfaalalalcXfbahdrds +aaaaaaaaaaaaaIaTaTaTfcfdaTaTaTaTcecedBejejfeffejdzfgaqcedzfhfifjfkfkfkfkdRdSdTflfmcwdjfnfofofpcwcwadcVdZalfqalfradfsdrds +aaaaaaaaaaaaaaaIftfufvfwfxfyfzaTcecedBdBdBdBdBdLfAcecKcedzcefBdBdBdBdBdBdBdBdzcefmcwfCfDfDfDfEcwfFadcVdEcEcCfGfHadadadae +aaaaaaaaaaaaaaaafufIfJfufKfLfMaTcecececececececeejceaqcefNdydydydydydydhdhdhdKcefmfOcwcwcwcwdjfPfQadcVfRaladadadadaeaaaa +aafSfSaaaaamaaaaaaaaaHfTfUfvfMaTcefVcecececefWcefXfWaqcefVcececefVcecececefVcecefmacacfYacacfZacacadacgaacadaeaaaaaaaaaa +gbgbgbfSaaamaagcamaaaHaHaHaHgdaTaqaqaqaqaqaqaqaqgefmfmfmfmfmfmfmfmfmfmfmfmfmfmfmfmcEcEcEcEgfcDggghgigfdEgjadaaaaaaaaaaaa +gbgbgbgbfSaaaaaaaaaagkglgmaHgngogpgqftgrfvaTgbgbgbgbaqgsgsatgtgsguatgsgtgvgwgxgyfmgzcEalcEcEgAgBgBgBgBgCgDadaaaaaaaaaaaa +gbgbgbgbgEaaaaaaaaaagFgGgGgHgIfIgIgpgJgIgpgKgbgbgbgbgbaqgsgLgMatgsgtatatatatatatfmggcEcEgNcEgOcEgNcEcEcEgPadaaaaaaaaaaaa +aaaagbfSgQaaaaaaaaaagRglgGaHfvfvgpftgpfvgpaTgbgbgbgSgbgbgbgsgTgsatatatatatatgUgVgWgXgXgXgXgXgYcEcEcEadadadadaaaaaaaaaaaa +aaaaaafSaaaaaaaagZfSaHaHaHaHaHaHgKgpaTgbgbgbgbgbgbgbgbgbgbgbgtgLatatgsatathaatatfmcEcEhbhccEgNcEgNcEhdhehfadaaaaaaaaaaaa +aaaaaaaaaaaaaaaafSfSfSgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbaqgsgLatathghhhhhhhifmhjhkcEalcEcEcEcEcEadhlhmaeaaaaaaaaaaaa +aaaaaaaaaaaaaahnfSfSfSgbgbgbgbgbgbgbgbgbgbgbgSgbgbgbgbgbgbgbgbfmfmfmfmfmfmfmfmfmfmadadadadadfYadadadadadaeaaaaaaaaaaaaaa +aaaaaaaaaaaafSfSfSfSgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbfSfSaaaaaaaaaahoaghpachqalhracaeaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaafSfSfSfSfSgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbfSfSaaaaaaaaaaajahahakalhshtaeaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaafSfSfSfSfSgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbfSfSaaaaaaaaaahuagahacaihtaeaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaafSgbgbfSfSgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbfSfSaaaaaaaaaadkacacacacaeaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaagbgbgbfSfSfSgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbfSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaagbgbgbgbgbfSfSgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbfSfSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaagbgbgbgbgbfSfSfSgbgbhvgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbfSfSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaagbgbgbgbgbfSfSfSgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbfSfSfSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaagbgbgbgbgbfSfSfSgbgbgbgbgbgbhwgbgbgbgbgbgbgbgbgbgbgbfSfSfSfSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaagbgbgbgbgbfSfSfSgbgbgbhwgbgbhwgbgbgbgbgbgbgbgbgbfSfSfSfSgbgbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaagbgbgbgbfSfSfSfSgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbfSfSgbgbgbgbgbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaagbgbfSfSfSfSfSfSgbgbgbgbgbgbgbgbgbgbgbgbfSfSfSfSgbgbgbgbgbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaafSfSfSfSfSfSgbgbgbgbgbgbgbgbfSfSfSfSaaaaaagbgbgbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafSfSfSfSfSfSfSfSfSfSfSfSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa "} diff --git a/_maps/RandomRuins/SpaceRuins/deepstorage.dmm b/_maps/RandomRuins/SpaceRuins/deepstorage.dmm index 4ef456676a..5f5b0aa8c4 100644 --- a/_maps/RandomRuins/SpaceRuins/deepstorage.dmm +++ b/_maps/RandomRuins/SpaceRuins/deepstorage.dmm @@ -1,118 +1,118 @@ "aa" = (/turf/open/space,/area/space) "ab" = (/turf/closed/mineral/random/low_chance,/area/ruin/unpowered) -"ac" = (/turf/closed/wall/mineral/iron,/area/ruin/unpowered) -"ad" = (/obj/structure/closet/cardboard,/obj/item/stack/sheet/mineral/silver,/obj/item/stack/sheet/mineral/gold,/obj/item/stack/sheet/mineral/silver,/obj/item/stack/sheet/mineral/silver,/obj/item/stack/sheet/mineral/gold,/obj/item/stack/sheet/mineral/gold,/turf/open/floor/plasteel/floorgrime,/area/ruin/unpowered) -"ae" = (/obj/structure/closet/cardboard,/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/storage/toolbox/drone,/obj/item/weapon/storage/toolbox/drone,/turf/open/floor/plasteel/floorgrime,/area/ruin/unpowered) -"af" = (/obj/structure/closet/cardboard,/obj/item/stack/sheet/cardboard,/obj/item/stack/cable_coil,/obj/item/stack/sheet/mineral/wood,/obj/item/stack/sheet/mineral/wood,/obj/item/stack/packageWrap,/turf/open/floor/plasteel/floorgrime,/area/ruin/unpowered) -"ag" = (/obj/structure/closet/cardboard,/obj/item/weapon/storage/box/mousetraps,/obj/item/weapon/storage/box/mousetraps,/obj/item/weapon/storage/box/drinkingglasses,/obj/item/weapon/storage/box/zipties,/obj/item/weapon/switchblade,/turf/open/floor/plasteel/floorgrime,/area/ruin/unpowered) -"ah" = (/obj/structure/closet/cardboard,/obj/item/stack/sheet/metal{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/sheet/metal{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/sheet/metal{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/sheet/metal{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/rods{amount = 50},/obj/item/stack/rods{amount = 50},/obj/item/stack/rods{amount = 50},/obj/item/stack/rods{amount = 50},/turf/open/floor/plasteel/floorgrime,/area/ruin/unpowered) -"ai" = (/obj/structure/closet/cardboard,/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/plasteel{amount = 10},/obj/item/stack/sheet/plasteel{amount = 10},/obj/item/stack/sheet/plasteel{amount = 10},/obj/item/stack/sheet/plasteel{amount = 10},/obj/item/clothing/shoes/combat,/obj/item/clothing/shoes/combat,/turf/open/floor/plasteel/floorgrime,/area/ruin/unpowered) -"aj" = (/obj/structure/closet/cardboard,/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/weapon/shovel,/turf/open/floor/plasteel/floorgrime,/area/ruin/unpowered) -"ak" = (/obj/structure/closet/cardboard,/obj/item/device/flashlight/lantern,/obj/item/device/flashlight/lantern,/obj/item/device/flashlight/lantern,/obj/item/device/tape/random,/obj/item/device/tape/random,/obj/item/device/tape/random,/obj/item/weapon/storage/box/rxglasses,/obj/item/weapon/extinguisher,/obj/item/weapon/extinguisher,/obj/item/clothing/glasses/night,/obj/item/clothing/glasses/night,/turf/open/floor/plasteel/floorgrime,/area/ruin/unpowered) -"al" = (/obj/structure/closet/cardboard,/obj/item/weapon/storage/box/syringes,/obj/item/weapon/storage/box/syringes,/obj/item/weapon/storage/box/beakers,/obj/item/weapon/storage/box/beakers,/obj/item/weapon/storage/box/matches,/obj/item/weapon/storage/box/bodybags,/obj/item/clothing/glasses/meson/engine,/obj/item/clothing/glasses/meson/engine,/turf/open/floor/plasteel/floorgrime,/area/ruin/unpowered) -"am" = (/obj/structure/closet/cardboard,/obj/item/weapon/kitchen/knife,/obj/item/weapon/kitchen/knife,/obj/item/weapon/cultivator,/obj/item/weapon/hatchet,/obj/item/weapon/kitchen/rollingpin,/turf/open/floor/plasteel/floorgrime,/area/ruin/unpowered) -"an" = (/obj/structure/closet/cardboard,/obj/item/weapon/defibrillator,/obj/item/weapon/storage/box/medipens,/turf/open/floor/plasteel/floorgrime,/area/ruin/unpowered) -"ao" = (/obj/structure/closet/cardboard,/obj/machinery/light{dir = 4; icon_state = "tube1"},/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,/turf/open/floor/plasteel/floorgrime,/area/ruin/unpowered) -"ap" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/random,/turf/open/floor/plasteel/floorgrime,/area/ruin/unpowered) -"aq" = (/obj/machinery/iv_drip,/turf/open/floor/plasteel/floorgrime,/area/ruin/unpowered) -"ar" = (/turf/open/floor/plasteel/floorgrime,/area/ruin/unpowered) -"as" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/plasteel/floorgrime,/area/ruin/unpowered) -"at" = (/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plasteel/floorgrime,/area/ruin/unpowered) -"au" = (/obj/machinery/door/airlock/highsecurity{name = "Bunker"},/turf/open/floor/plasteel,/area/ruin/unpowered) -"av" = (/obj/structure/toilet{dir = 4},/turf/open/floor/plasteel/freezer,/area/ruin/unpowered) -"aw" = (/obj/structure/mirror{pixel_x = 30},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/open/floor/plasteel/freezer,/area/ruin/unpowered) -"ax" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/drone,/obj/item/device/flashlight,/obj/item/device/flashlight,/turf/open/floor/plasteel,/area/ruin/unpowered) -"ay" = (/obj/structure/table,/obj/item/weapon/gun/projectile/automatic/wt550{pixel_x = -3; pixel_y = 6},/obj/item/weapon/gun/projectile/automatic/wt550{pixel_x = 2; pixel_y = 0},/obj/structure/reagent_dispensers/peppertank{pixel_y = 30},/turf/open/floor/plasteel/floorgrime,/area/ruin/unpowered) -"az" = (/obj/structure/table,/obj/item/weapon/storage/backpack/dufflebag/sec{contents = newlist(/obj/item/weapon/scalpel,/obj/item/weapon/hemostat,/obj/item/weapon/retractor,/obj/item/weapon/cautery,/obj/item/weapon/circular_saw,/obj/item/weapon/surgical_drapes,/obj/item/clothing/mask/surgical); desc = "A large dufflebag for holding extra supplies - this one has a material inlay with space for various sharp-looking tools."; name = "dufflebag"; pixel_y = 5},/turf/open/floor/plasteel,/area/ruin/unpowered) -"aA" = (/obj/structure/table,/obj/item/device/radio{pixel_x = -4},/obj/item/device/radio,/obj/item/device/radio{pixel_x = 4},/turf/open/floor/plasteel,/area/ruin/unpowered) -"aB" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/rods{amount = 50},/obj/item/stack/cable_coil,/obj/item/stack/cable_coil,/turf/open/floor/plasteel,/area/ruin/unpowered) -"aC" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/brute{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/firstaid/brute,/turf/open/floor/plasteel,/area/ruin/unpowered) -"aD" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/firstaid/regular,/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel,/area/ruin/unpowered) -"aE" = (/obj/structure/closet/crate/radiation,/turf/open/floor/plasteel,/area/ruin/unpowered) -"aF" = (/obj/structure/closet/cardboard,/obj/item/weapon/reagent_containers/food/snacks/beans,/obj/item/weapon/reagent_containers/food/snacks/beans,/obj/item/weapon/reagent_containers/food/snacks/beans,/obj/item/weapon/reagent_containers/food/snacks/beans,/obj/item/weapon/reagent_containers/food/snacks/beans,/turf/open/floor/plasteel/floorgrime,/area/ruin/unpowered) -"aG" = (/obj/structure/closet/cardboard,/obj/item/weapon/reagent_containers/food/snacks/beans,/obj/item/weapon/reagent_containers/food/snacks/beans,/obj/item/weapon/reagent_containers/food/snacks/beans,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/item/weapon/reagent_containers/food/snacks/beans,/obj/item/weapon/reagent_containers/food/snacks/beans,/turf/open/floor/plasteel/floorgrime,/area/ruin/unpowered) -"aH" = (/obj/structure/closet/cardboard,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/turf/open/floor/plasteel,/area/ruin/unpowered) -"aI" = (/obj/machinery/vending/clothing,/turf/open/floor/wood,/area/ruin/unpowered) -"aJ" = (/turf/open/floor/wood{icon_state = "wood-broken3"},/area/ruin/unpowered) -"aK" = (/obj/structure/bed,/turf/open/floor/wood,/area/ruin/unpowered) -"aL" = (/turf/open/floor/plasteel/freezer,/area/ruin/unpowered) -"aM" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/freezer,/area/ruin/unpowered) -"aN" = (/obj/structure/table,/obj/item/clothing/gloves/combat{pixel_x = -3; pixel_y = 4},/obj/item/clothing/gloves/combat{pixel_x = 3; pixel_y = -2},/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/turf/open/floor/plasteel/floorgrime,/area/ruin/unpowered) -"aO" = (/turf/open/floor/plasteel,/area/ruin/unpowered) -"aP" = (/obj/structure/table,/obj/item/device/mass_spectrometer/adv,/obj/item/device/mass_spectrometer/adv,/obj/item/device/healthanalyzer,/obj/item/device/healthanalyzer,/obj/item/stack/medical/gauze,/obj/item/stack/medical/gauze,/turf/open/floor/plasteel/floorgrime,/area/ruin/unpowered) -"aQ" = (/obj/structure/closet/radiation,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel,/area/ruin/unpowered) -"aR" = (/obj/structure/closet/cardboard,/obj/item/weapon/reagent_containers/food/snacks/beans,/obj/item/weapon/reagent_containers/food/snacks/beans,/obj/item/weapon/reagent_containers/food/snacks/beans,/obj/item/weapon/reagent_containers/food/snacks/beans,/obj/item/weapon/reagent_containers/food/snacks/beans,/turf/open/floor/plasteel,/area/ruin/unpowered) -"aS" = (/obj/structure/closet/cardboard,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/turf/open/floor/plasteel/floorgrime,/area/ruin/unpowered) -"aT" = (/obj/structure/closet/wardrobe/pink,/turf/open/floor/wood{icon_state = "wood-broken"},/area/ruin/unpowered) -"aU" = (/turf/open/floor/wood,/area/ruin/unpowered) -"aV" = (/obj/structure/bed,/turf/open/floor/wood{icon_state = "wood-broken7"},/area/ruin/unpowered) -"aW" = (/obj/machinery/shower{dir = 4},/turf/open/floor/plasteel/freezer,/area/ruin/unpowered) -"aX" = (/obj/machinery/shower{dir = 8},/turf/open/floor/plasteel/freezer,/area/ruin/unpowered) -"aY" = (/obj/machinery/light/small{dir = 8},/obj/structure/table,/obj/item/weapon/storage/firstaid/toxin{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/firstaid/toxin,/obj/item/weapon/storage/pill_bottle/charcoal,/turf/open/floor/plasteel,/area/ruin/unpowered) -"aZ" = (/obj/structure/table,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare{pixel_y = 6},/obj/item/device/flashlight/flare,/obj/item/weapon/crowbar/red,/turf/open/floor/plasteel,/area/ruin/unpowered) -"ba" = (/obj/machinery/suit_storage_unit/standard_unit,/turf/open/floor/plasteel,/area/ruin/unpowered) -"bb" = (/obj/structure/closet/wardrobe/pjs,/obj/machinery/light/small{dir = 8},/turf/open/floor/wood,/area/ruin/unpowered) -"bc" = (/turf/open/floor/wood{icon_state = "wood-broken4"},/area/ruin/unpowered) -"bd" = (/obj/structure/bed,/turf/open/floor/wood{icon_state = "wood-broken3"},/area/ruin/unpowered) -"be" = (/obj/machinery/shower{dir = 4},/obj/item/weapon/soap,/turf/open/floor/plasteel/freezer,/area/ruin/unpowered) -"bf" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ruin/unpowered) -"bg" = (/obj/structure/closet/cardboard,/obj/item/weapon/storage/box/donkpockets,/obj/item/weapon/storage/box/donkpockets,/obj/item/weapon/storage/box/donkpockets,/obj/item/weapon/storage/box/donkpockets,/obj/item/weapon/storage/box/donkpockets,/turf/open/floor/plasteel/floorgrime,/area/ruin/unpowered) -"bh" = (/obj/structure/closet/cardboard,/obj/item/weapon/storage/box/donkpockets,/obj/item/weapon/storage/box/donkpockets,/obj/item/weapon/storage/box/donkpockets,/obj/item/weapon/storage/box/donkpockets,/obj/item/weapon/storage/box/donkpockets,/turf/open/floor/plasteel,/area/ruin/unpowered) -"bi" = (/obj/machinery/door/airlock/highsecurity{name = "Bunker"},/turf/open/floor/wood,/area/ruin/unpowered) -"bj" = (/obj/machinery/door/airlock/highsecurity{name = "Bunker"},/turf/open/floor/plasteel/freezer,/area/ruin/unpowered) -"bk" = (/obj/structure/fireaxecabinet{pixel_y = 30},/turf/open/floor/plasteel,/area/ruin/unpowered) -"bl" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 4},/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/floorgrime,/area/ruin/unpowered) -"bm" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/floorgrime,/area/ruin/unpowered) -"bn" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/unpowered) -"bo" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/unpowered) -"bp" = (/obj/machinery/door/airlock/highsecurity{name = "Bunker"},/turf/open/floor/plasteel/floorgrime,/area/ruin/unpowered) -"bq" = (/obj/machinery/processor{name = "processor"},/turf/open/floor/plasteel,/area/ruin/unpowered) -"br" = (/obj/structure/table,/obj/item/weapon/storage/box/matches,/turf/open/floor/plasteel,/area/ruin/unpowered) -"bs" = (/obj/structure/table,/obj/machinery/reagentgrinder,/turf/open/floor/plasteel/floorgrime,/area/ruin/unpowered) -"bt" = (/obj/structure/table,/obj/machinery/recharger,/turf/open/floor/plasteel/floorgrime,/area/ruin/unpowered) -"bu" = (/obj/machinery/light{dir = 1},/obj/machinery/hydroponics/constructable,/turf/open/floor/light,/area/ruin/unpowered) -"bv" = (/obj/machinery/hydroponics/constructable,/turf/open/floor/light,/area/ruin/unpowered) -"bw" = (/obj/machinery/blackbox_recorder,/turf/open/floor/plasteel,/area/ruin/unpowered) -"bx" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/port_gen/pacman,/turf/open/floor/plasteel,/area/ruin/unpowered) -"by" = (/obj/machinery/power/smes/magical{desc = "A high-capacity superconducting magnetic energy storage (SMES) unit."; name = "power storage unit"},/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/floorgrime,/area/ruin/unpowered) -"bz" = (/obj/machinery/telecomms/relay/preset/telecomms,/turf/open/floor/plasteel,/area/ruin/unpowered) -"bA" = (/obj/machinery/light/small{dir = 1},/obj/structure/tank_dispenser/oxygen,/turf/open/floor/plasteel,/area/ruin/unpowered) -"bB" = (/obj/machinery/biogenerator,/turf/open/floor/plasteel,/area/ruin/unpowered) -"bC" = (/obj/machinery/light,/obj/machinery/hydroponics/constructable,/turf/open/floor/light,/area/ruin/unpowered) -"bD" = (/obj/machinery/autolathe,/turf/open/floor/plasteel,/area/ruin/unpowered) -"bE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/turf/open/floor/plasteel,/area/ruin/unpowered) -"bF" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel/floorgrime,/area/ruin/unpowered) -"bG" = (/obj/structure/table,/obj/machinery/microwave,/turf/open/floor/plasteel/bar,/area/ruin/unpowered) -"bH" = (/turf/open/floor/plasteel/bar,/area/ruin/unpowered) -"bI" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/open/floor/plasteel/bar,/area/ruin/unpowered) -"bJ" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/snacks/beans,/turf/open/floor/plasteel/bar,/area/ruin/unpowered) -"bK" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/bar,/area/ruin/unpowered) -"bL" = (/obj/machinery/seed_extractor,/turf/open/floor/plasteel,/area/ruin/unpowered) -"bM" = (/obj/machinery/power/apc{dir = 8; name = "Bunker APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/unpowered) -"bN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/open/floor/plasteel,/area/ruin/unpowered) -"bO" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/open/floor/plasteel,/area/ruin/unpowered) -"bP" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plasteel/floorgrime,/area/ruin/unpowered) -"bQ" = (/obj/structure/table,/obj/item/weapon/kitchen/knife,/turf/open/floor/plasteel/bar,/area/ruin/unpowered) -"bR" = (/obj/structure/table,/turf/open/floor/plasteel/bar,/area/ruin/unpowered) -"bS" = (/obj/structure/table,/obj/item/weapon/kitchen/fork,/turf/open/floor/plasteel/bar,/area/ruin/unpowered) -"bT" = (/obj/machinery/vending/hydronutrients,/turf/open/floor/plasteel,/area/ruin/unpowered) -"bU" = (/obj/machinery/space_heater,/turf/open/floor/plasteel/floorgrime,/area/ruin/unpowered) -"bV" = (/obj/structure/chair/office/dark{dir = 4},/turf/open/floor/plasteel,/area/ruin/unpowered) -"bW" = (/obj/structure/table/reinforced,/turf/open/floor/plasteel,/area/ruin/unpowered) -"bX" = (/obj/machinery/smartfridge,/turf/open/floor/plasteel/bar,/area/ruin/unpowered) -"bY" = (/obj/machinery/light/small,/turf/open/floor/plasteel/bar,/area/ruin/unpowered) -"bZ" = (/obj/machinery/vending/hydroseeds{slogan_delay = 700},/turf/open/floor/plasteel,/area/ruin/unpowered) -"ca" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/floorgrime,/area/ruin/unpowered) -"cb" = (/obj/structure/chair/office/dark,/turf/open/floor/plasteel/floorgrime,/area/ruin/unpowered) -"cc" = (/obj/structure/frame/computer,/turf/open/floor/plasteel,/area/ruin/unpowered) -"cd" = (/obj/structure/table/reinforced,/obj/machinery/computer/security/telescreen{dir = 1; name = "Bunker Entrance"; network = list("Bunker1"); pixel_x = 0; pixel_y = 2},/turf/open/floor/plasteel,/area/ruin/unpowered) -"ce" = (/obj/structure/table/reinforced,/obj/machinery/button/door{id = "bunker1"; name = "Inner Doors"; pixel_y = 6},/obj/machinery/button/door{id = "bunker2"; name = "Outer Doors"; pixel_y = -4},/turf/open/floor/plasteel/floorgrime,/area/ruin/unpowered) -"cf" = (/obj/machinery/door/poddoor{id = "bunker1"; name = "Bunker Door"; tag = "inner"},/turf/open/floor/plating,/area/ruin/unpowered) -"cg" = (/turf/open/floor/plating,/area/ruin/unpowered) -"ch" = (/obj/machinery/camera{network = list("Bunker1")},/turf/open/floor/plating,/area/ruin/unpowered) -"ci" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plating,/area/ruin/unpowered) -"cj" = (/obj/machinery/door/poddoor{id = "bunker2"; name = "Bunker Door"; tag = "outer"},/turf/open/floor/plating,/area/ruin/unpowered) -"ck" = (/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered) +"ac" = (/turf/closed/wall/mineral/iron,/area/ruin/deepstorage) +"ad" = (/obj/structure/closet/cardboard,/obj/item/stack/sheet/mineral/silver,/obj/item/stack/sheet/mineral/gold,/obj/item/stack/sheet/mineral/silver,/obj/item/stack/sheet/mineral/silver,/obj/item/stack/sheet/mineral/gold,/obj/item/stack/sheet/mineral/gold,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"ae" = (/obj/structure/closet/cardboard,/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/storage/toolbox/drone,/obj/item/weapon/storage/toolbox/drone,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"af" = (/obj/structure/closet/cardboard,/obj/item/stack/sheet/cardboard,/obj/item/stack/cable_coil,/obj/item/stack/sheet/mineral/wood,/obj/item/stack/sheet/mineral/wood,/obj/item/stack/packageWrap,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"ag" = (/obj/structure/closet/cardboard,/obj/item/weapon/storage/box/mousetraps,/obj/item/weapon/storage/box/mousetraps,/obj/item/weapon/storage/box/drinkingglasses,/obj/item/weapon/storage/box/zipties,/obj/item/weapon/switchblade,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"ah" = (/obj/structure/closet/cardboard,/obj/item/stack/sheet/metal{amount = 50;pixel_x = 2;pixel_y = 2},/obj/item/stack/sheet/metal{amount = 50;pixel_x = 2;pixel_y = 2},/obj/item/stack/sheet/metal{amount = 50;pixel_x = 2;pixel_y = 2},/obj/item/stack/sheet/metal{amount = 50;pixel_x = 2;pixel_y = 2},/obj/item/stack/rods{amount = 50},/obj/item/stack/rods{amount = 50},/obj/item/stack/rods{amount = 50},/obj/item/stack/rods{amount = 50},/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"ai" = (/obj/structure/closet/cardboard,/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/plasteel{amount = 10},/obj/item/stack/sheet/plasteel{amount = 10},/obj/item/stack/sheet/plasteel{amount = 10},/obj/item/stack/sheet/plasteel{amount = 10},/obj/item/clothing/shoes/combat,/obj/item/clothing/shoes/combat,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"aj" = (/obj/structure/closet/cardboard,/obj/machinery/light{icon_state = "tube1";dir = 8},/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/weapon/shovel,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"ak" = (/obj/structure/closet/cardboard,/obj/item/device/flashlight/lantern,/obj/item/device/flashlight/lantern,/obj/item/device/flashlight/lantern,/obj/item/device/tape/random,/obj/item/device/tape/random,/obj/item/device/tape/random,/obj/item/weapon/storage/box/rxglasses,/obj/item/weapon/extinguisher,/obj/item/weapon/extinguisher,/obj/item/clothing/glasses/night,/obj/item/clothing/glasses/night,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"al" = (/obj/structure/closet/cardboard,/obj/item/weapon/storage/box/syringes,/obj/item/weapon/storage/box/syringes,/obj/item/weapon/storage/box/beakers,/obj/item/weapon/storage/box/beakers,/obj/item/weapon/storage/box/matches,/obj/item/weapon/storage/box/bodybags,/obj/item/clothing/glasses/meson/engine,/obj/item/clothing/glasses/meson/engine,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"am" = (/obj/structure/closet/cardboard,/obj/item/weapon/kitchen/knife,/obj/item/weapon/kitchen/knife,/obj/item/weapon/cultivator,/obj/item/weapon/hatchet,/obj/item/weapon/kitchen/rollingpin,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"an" = (/obj/structure/closet/cardboard,/obj/item/weapon/defibrillator,/obj/item/weapon/storage/box/medipens,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"ao" = (/obj/structure/closet/cardboard,/obj/machinery/light{dir = 4;icon_state = "tube1"},/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,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"ap" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/random,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"aq" = (/obj/machinery/iv_drip,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"ar" = (/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"as" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"at" = (/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"au" = (/obj/machinery/door/airlock/highsecurity{name = "Bunker"},/turf/open/floor/plasteel,/area/ruin/deepstorage) +"av" = (/obj/structure/toilet{dir = 4},/turf/open/floor/plasteel/freezer,/area/ruin/deepstorage) +"aw" = (/obj/structure/mirror{pixel_x = 30},/obj/structure/sink{dir = 4;icon_state = "sink";pixel_x = 11;pixel_y = 0},/turf/open/floor/plasteel/freezer,/area/ruin/deepstorage) +"ax" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/drone,/obj/item/device/flashlight,/obj/item/device/flashlight,/turf/open/floor/plasteel,/area/ruin/deepstorage) +"ay" = (/obj/structure/table,/obj/item/weapon/gun/ballistic/automatic/wt550{pixel_x = -3;pixel_y = 6},/obj/item/weapon/gun/ballistic/automatic/wt550{pixel_x = 2;pixel_y = 0},/obj/structure/reagent_dispensers/peppertank{pixel_y = 30},/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"az" = (/obj/structure/table,/obj/item/weapon/storage/backpack/dufflebag/sec{contents = newlist(/obj/item/weapon/scalpel,/obj/item/weapon/hemostat,/obj/item/weapon/retractor,/obj/item/weapon/cautery,/obj/item/weapon/circular_saw,/obj/item/weapon/surgical_drapes,/obj/item/clothing/mask/surgical);desc = "A large dufflebag for holding extra supplies - this one has a material inlay with space for various sharp-looking tools.";name = "dufflebag";pixel_y = 5},/turf/open/floor/plasteel,/area/ruin/deepstorage) +"aA" = (/obj/structure/table,/obj/item/device/radio{pixel_x = -4},/obj/item/device/radio,/obj/item/device/radio{pixel_x = 4},/turf/open/floor/plasteel,/area/ruin/deepstorage) +"aB" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50;pixel_x = 2;pixel_y = 2},/obj/item/stack/rods{amount = 50},/obj/item/stack/cable_coil,/obj/item/stack/cable_coil,/turf/open/floor/plasteel,/area/ruin/deepstorage) +"aC" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/brute{pixel_x = 4;pixel_y = 4},/obj/item/weapon/storage/firstaid/brute,/turf/open/floor/plasteel,/area/ruin/deepstorage) +"aD" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 4;pixel_y = 4},/obj/item/weapon/storage/firstaid/regular,/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel,/area/ruin/deepstorage) +"aE" = (/obj/structure/closet/crate/radiation,/turf/open/floor/plasteel,/area/ruin/deepstorage) +"aF" = (/obj/structure/closet/cardboard,/obj/item/weapon/reagent_containers/food/snacks/beans,/obj/item/weapon/reagent_containers/food/snacks/beans,/obj/item/weapon/reagent_containers/food/snacks/beans,/obj/item/weapon/reagent_containers/food/snacks/beans,/obj/item/weapon/reagent_containers/food/snacks/beans,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"aG" = (/obj/structure/closet/cardboard,/obj/item/weapon/reagent_containers/food/snacks/beans,/obj/item/weapon/reagent_containers/food/snacks/beans,/obj/item/weapon/reagent_containers/food/snacks/beans,/obj/machinery/light{dir = 4;icon_state = "tube1"},/obj/item/weapon/reagent_containers/food/snacks/beans,/obj/item/weapon/reagent_containers/food/snacks/beans,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"aH" = (/obj/structure/closet/cardboard,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/turf/open/floor/plasteel,/area/ruin/deepstorage) +"aI" = (/obj/machinery/vending/clothing,/turf/open/floor/wood,/area/ruin/deepstorage) +"aJ" = (/turf/open/floor/wood{icon_state = "wood-broken3"},/area/ruin/deepstorage) +"aK" = (/obj/structure/bed,/turf/open/floor/wood,/area/ruin/deepstorage) +"aL" = (/turf/open/floor/plasteel/freezer,/area/ruin/deepstorage) +"aM" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/freezer,/area/ruin/deepstorage) +"aN" = (/obj/structure/table,/obj/item/clothing/gloves/combat{pixel_x = -3;pixel_y = 4},/obj/item/clothing/gloves/combat{pixel_x = 3;pixel_y = -2},/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"aO" = (/turf/open/floor/plasteel,/area/ruin/deepstorage) +"aP" = (/obj/structure/table,/obj/item/device/mass_spectrometer/adv,/obj/item/device/mass_spectrometer/adv,/obj/item/device/healthanalyzer,/obj/item/device/healthanalyzer,/obj/item/stack/medical/gauze,/obj/item/stack/medical/gauze,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"aQ" = (/obj/structure/closet/radiation,/obj/machinery/light{icon_state = "tube1";dir = 8},/turf/open/floor/plasteel,/area/ruin/deepstorage) +"aR" = (/obj/structure/closet/cardboard,/obj/item/weapon/reagent_containers/food/snacks/beans,/obj/item/weapon/reagent_containers/food/snacks/beans,/obj/item/weapon/reagent_containers/food/snacks/beans,/obj/item/weapon/reagent_containers/food/snacks/beans,/obj/item/weapon/reagent_containers/food/snacks/beans,/turf/open/floor/plasteel,/area/ruin/deepstorage) +"aS" = (/obj/structure/closet/cardboard,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"aT" = (/obj/structure/closet/wardrobe/pink,/turf/open/floor/wood{icon_state = "wood-broken"},/area/ruin/deepstorage) +"aU" = (/turf/open/floor/wood,/area/ruin/deepstorage) +"aV" = (/obj/structure/bed,/turf/open/floor/wood{icon_state = "wood-broken7"},/area/ruin/deepstorage) +"aW" = (/obj/machinery/shower{dir = 4},/turf/open/floor/plasteel/freezer,/area/ruin/deepstorage) +"aX" = (/obj/machinery/shower{dir = 8},/turf/open/floor/plasteel/freezer,/area/ruin/deepstorage) +"aY" = (/obj/machinery/light/small{dir = 8},/obj/structure/table,/obj/item/weapon/storage/firstaid/toxin{pixel_x = 4;pixel_y = 4},/obj/item/weapon/storage/firstaid/toxin,/obj/item/weapon/storage/pill_bottle/charcoal,/turf/open/floor/plasteel,/area/ruin/deepstorage) +"aZ" = (/obj/structure/table,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare{pixel_y = 6},/obj/item/device/flashlight/flare,/obj/item/weapon/crowbar/red,/turf/open/floor/plasteel,/area/ruin/deepstorage) +"ba" = (/obj/machinery/suit_storage_unit/standard_unit,/turf/open/floor/plasteel,/area/ruin/deepstorage) +"bb" = (/obj/structure/closet/wardrobe/pjs,/obj/machinery/light/small{dir = 8},/turf/open/floor/wood,/area/ruin/deepstorage) +"bc" = (/turf/open/floor/wood{icon_state = "wood-broken4"},/area/ruin/deepstorage) +"bd" = (/obj/structure/bed,/turf/open/floor/wood{icon_state = "wood-broken3"},/area/ruin/deepstorage) +"be" = (/obj/machinery/shower{dir = 4},/obj/item/weapon/soap,/turf/open/floor/plasteel/freezer,/area/ruin/deepstorage) +"bf" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ruin/deepstorage) +"bg" = (/obj/structure/closet/cardboard,/obj/item/weapon/storage/box/donkpockets,/obj/item/weapon/storage/box/donkpockets,/obj/item/weapon/storage/box/donkpockets,/obj/item/weapon/storage/box/donkpockets,/obj/item/weapon/storage/box/donkpockets,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"bh" = (/obj/structure/closet/cardboard,/obj/item/weapon/storage/box/donkpockets,/obj/item/weapon/storage/box/donkpockets,/obj/item/weapon/storage/box/donkpockets,/obj/item/weapon/storage/box/donkpockets,/obj/item/weapon/storage/box/donkpockets,/turf/open/floor/plasteel,/area/ruin/deepstorage) +"bi" = (/obj/machinery/door/airlock/highsecurity{name = "Bunker"},/turf/open/floor/wood,/area/ruin/deepstorage) +"bj" = (/obj/machinery/door/airlock/highsecurity{name = "Bunker"},/turf/open/floor/plasteel/freezer,/area/ruin/deepstorage) +"bk" = (/obj/structure/fireaxecabinet{pixel_y = 30},/turf/open/floor/plasteel,/area/ruin/deepstorage) +"bl" = (/obj/machinery/sleeper{icon_state = "sleeper-open";dir = 4},/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"bm" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"bn" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"bo" = (/obj/machinery/sleeper{icon_state = "sleeper-open";dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"bp" = (/obj/machinery/door/airlock/highsecurity{name = "Bunker"},/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"bq" = (/obj/machinery/processor{name = "processor"},/turf/open/floor/plasteel,/area/ruin/deepstorage) +"br" = (/obj/structure/table,/obj/item/weapon/storage/box/matches,/turf/open/floor/plasteel,/area/ruin/deepstorage) +"bs" = (/obj/structure/table,/obj/machinery/reagentgrinder,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"bt" = (/obj/structure/table,/obj/machinery/recharger,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"bu" = (/obj/machinery/light{dir = 1},/obj/machinery/hydroponics/constructable,/turf/open/floor/light,/area/ruin/deepstorage) +"bv" = (/obj/machinery/hydroponics/constructable,/turf/open/floor/light,/area/ruin/deepstorage) +"bw" = (/obj/machinery/blackbox_recorder,/turf/open/floor/plasteel,/area/ruin/deepstorage) +"bx" = (/obj/structure/cable{icon_state = "0-4";d2 = 4},/obj/machinery/power/port_gen/pacman,/turf/open/floor/plasteel,/area/ruin/deepstorage) +"by" = (/obj/machinery/power/smes/magical{desc = "A high-capacity superconducting magnetic energy storage (SMES) unit.";name = "power storage unit"},/obj/structure/cable,/obj/structure/cable{icon_state = "0-2";pixel_y = 1;d2 = 2},/obj/structure/cable{d1 = 2;d2 = 8;icon_state = "2-8"},/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"bz" = (/obj/machinery/telecomms/relay/preset/telecomms,/turf/open/floor/plasteel,/area/ruin/deepstorage) +"bA" = (/obj/machinery/light/small{dir = 1},/obj/structure/tank_dispenser/oxygen,/turf/open/floor/plasteel,/area/ruin/deepstorage) +"bB" = (/obj/machinery/biogenerator,/turf/open/floor/plasteel,/area/ruin/deepstorage) +"bC" = (/obj/machinery/light,/obj/machinery/hydroponics/constructable,/turf/open/floor/light,/area/ruin/deepstorage) +"bD" = (/obj/machinery/autolathe,/turf/open/floor/plasteel,/area/ruin/deepstorage) +"bE" = (/obj/structure/cable{d1 = 1;d2 = 2;icon_state = "1-2"},/obj/machinery/power/terminal{icon_state = "term";dir = 1},/turf/open/floor/plasteel,/area/ruin/deepstorage) +"bF" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"bG" = (/obj/structure/table,/obj/machinery/microwave,/turf/open/floor/plasteel/bar,/area/ruin/deepstorage) +"bH" = (/turf/open/floor/plasteel/bar,/area/ruin/deepstorage) +"bI" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/open/floor/plasteel/bar,/area/ruin/deepstorage) +"bJ" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/snacks/beans,/turf/open/floor/plasteel/bar,/area/ruin/deepstorage) +"bK" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/bar,/area/ruin/deepstorage) +"bL" = (/obj/machinery/seed_extractor,/turf/open/floor/plasteel,/area/ruin/deepstorage) +"bM" = (/obj/machinery/power/apc{dir = 8;name = "Bunker APC";pixel_x = -24;pixel_y = 0},/obj/structure/cable{icon_state = "0-4";d2 = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"bN" = (/obj/structure/cable{d1 = 4;d2 = 8;icon_state = "4-8";pixel_y = 0;tag = ""},/turf/open/floor/plasteel,/area/ruin/deepstorage) +"bO" = (/obj/structure/cable{d1 = 1;d2 = 8;icon_state = "1-8";tag = ""},/turf/open/floor/plasteel,/area/ruin/deepstorage) +"bP" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"bQ" = (/obj/structure/table,/obj/item/weapon/kitchen/knife,/turf/open/floor/plasteel/bar,/area/ruin/deepstorage) +"bR" = (/obj/structure/table,/turf/open/floor/plasteel/bar,/area/ruin/deepstorage) +"bS" = (/obj/structure/table,/obj/item/weapon/kitchen/fork,/turf/open/floor/plasteel/bar,/area/ruin/deepstorage) +"bT" = (/obj/machinery/vending/hydronutrients,/turf/open/floor/plasteel,/area/ruin/deepstorage) +"bU" = (/obj/machinery/space_heater,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"bV" = (/obj/structure/chair/office/dark{dir = 4},/turf/open/floor/plasteel,/area/ruin/deepstorage) +"bW" = (/obj/structure/table/reinforced,/turf/open/floor/plasteel,/area/ruin/deepstorage) +"bX" = (/obj/machinery/smartfridge,/turf/open/floor/plasteel/bar,/area/ruin/deepstorage) +"bY" = (/obj/machinery/light/small,/turf/open/floor/plasteel/bar,/area/ruin/deepstorage) +"bZ" = (/obj/machinery/vending/hydroseeds{slogan_delay = 700},/turf/open/floor/plasteel,/area/ruin/deepstorage) +"ca" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"cb" = (/obj/structure/chair/office/dark,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"cc" = (/obj/structure/frame/computer,/turf/open/floor/plasteel,/area/ruin/deepstorage) +"cd" = (/obj/structure/table/reinforced,/obj/machinery/computer/security/telescreen{dir = 1;name = "Bunker Entrance";network = list("Bunker1");pixel_x = 0;pixel_y = 2},/turf/open/floor/plasteel,/area/ruin/deepstorage) +"ce" = (/obj/structure/table/reinforced,/obj/machinery/button/door{id = "bunker1";name = "Inner Doors";pixel_y = 6},/obj/machinery/button/door{id = "bunker2";name = "Outer Doors";pixel_y = -4},/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"cf" = (/obj/machinery/door/poddoor{id = "bunker1";name = "Bunker Door";tag = "inner"},/turf/open/floor/plating,/area/ruin/deepstorage) +"cg" = (/turf/open/floor/plating,/area/ruin/deepstorage) +"ch" = (/obj/machinery/camera{network = list("Bunker1")},/turf/open/floor/plating,/area/ruin/deepstorage) +"ci" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plating,/area/ruin/deepstorage) +"cj" = (/obj/machinery/door/poddoor{id = "bunker2";name = "Bunker Door";tag = "outer"},/turf/open/floor/plating,/area/ruin/deepstorage) +"ck" = (/turf/open/floor/plating/asteroid/airless,/area/ruin/deepstorage) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/_maps/RandomRuins/SpaceRuins/derelict4.dmm b/_maps/RandomRuins/SpaceRuins/derelict4.dmm index 82fe49f59b..9607996d9a 100644 --- a/_maps/RandomRuins/SpaceRuins/derelict4.dmm +++ b/_maps/RandomRuins/SpaceRuins/derelict4.dmm @@ -1,63 +1,1782 @@ -"a" = (/turf/open/space,/area/space) -"b" = (/turf/closed/mineral,/area/ruin/unpowered) -"c" = (/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered) -"d" = (/turf/closed/mineral/random/high_chance,/area/ruin/unpowered) -"e" = (/turf/closed/wall/shuttle/smooth,/area/ruin/unpowered) -"f" = (/obj/machinery/door/airlock/shuttle,/turf/open/floor/plating/airless,/area/ruin/unpowered) -"g" = (/turf/open/floor/plating/airless,/area/ruin/unpowered) -"h" = (/turf/open/floor/plasteel/airless{icon_plating = "plating";icon_regular_floor = "shuttlefloor";icon_state = "shuttlefloor"},/area/ruin/unpowered) -"i" = (/obj/structure/chair,/obj/structure/window/reinforced{tag = "icon-rwindow (WEST)";icon_state = "rwindow";dir = 8},/turf/open/floor/plasteel/airless{icon_plating = "plating";icon_regular_floor = "shuttlefloor";icon_state = "shuttlefloor"},/area/ruin/unpowered) -"j" = (/obj/structure/chair,/turf/open/floor/plasteel/airless{icon_plating = "plating";icon_regular_floor = "shuttlefloor";icon_state = "shuttlefloor"},/area/ruin/unpowered) -"k" = (/obj/effect/spawner/lootdrop/crate_spawner,/turf/open/floor/plasteel/airless{icon_plating = "plating";icon_regular_floor = "shuttlefloor";icon_state = "shuttlefloor"},/area/ruin/unpowered) -"l" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion (WEST)";icon_state = "propulsion";dir = 8},/turf/open/floor/plating/airless,/area/ruin/unpowered) -"m" = (/obj/item/weapon/shard,/turf/open/floor/plating/airless,/area/ruin/unpowered) -"n" = (/obj/structure/chair{tag = "icon-chair (WEST)";icon_state = "chair";dir = 8},/turf/open/floor/plating/airless,/area/ruin/unpowered) -"o" = (/obj/structure/grille,/turf/open/floor/plating/airless,/area/ruin/unpowered) -"p" = (/obj/structure/table,/turf/open/floor/plasteel/airless{icon_plating = "plating";icon_regular_floor = "shuttlefloor";icon_state = "shuttlefloor"},/area/ruin/unpowered) -"q" = (/obj/item/weapon/shard,/obj/structure/chair{tag = "icon-chair (WEST)";icon_state = "chair";dir = 8},/turf/open/floor/plasteel/airless{icon_plating = "plating";icon_regular_floor = "shuttlefloor";icon_state = "shuttlefloor"},/area/ruin/unpowered) -"r" = (/obj/structure/chair{dir = 1},/obj/structure/window/reinforced{tag = "icon-rwindow (WEST)";icon_state = "rwindow";dir = 8},/turf/open/floor/plasteel/airless{icon_plating = "plating";icon_regular_floor = "shuttlefloor";icon_state = "shuttlefloor"},/area/ruin/unpowered) -"s" = (/obj/structure/chair{dir = 1},/turf/open/floor/plating/airless,/area/ruin/unpowered) -"t" = (/obj/structure/girder,/turf/open/floor/plating/airless,/area/ruin/unpowered) +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/space, +/area/space) +"b" = ( +/turf/closed/mineral, +/area/ruin/unpowered) +"c" = ( +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered) +"d" = ( +/turf/closed/mineral/random/high_chance, +/area/ruin/unpowered) +"e" = ( +/turf/closed/wall/mineral/titanium, +/area/ruin/unpowered) +"f" = ( +/obj/machinery/door/airlock/titanium, +/turf/open/floor/plating/airless, +/area/ruin/unpowered) +"g" = ( +/turf/open/floor/plating/airless, +/area/ruin/unpowered) +"h" = ( +/turf/open/floor/plasteel/airless/shuttle, +/area/ruin/unpowered) +"i" = ( +/obj/structure/chair, +/obj/structure/window/reinforced{ + tag = "icon-rwindow (WEST)"; + icon_state = "rwindow"; + dir = 8 + }, +/turf/open/floor/plasteel/airless/shuttle, +/area/ruin/unpowered) +"j" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/airless/shuttle, +/area/ruin/unpowered) +"k" = ( +/obj/effect/spawner/lootdrop/crate_spawner, +/turf/open/floor/plasteel/airless/shuttle, +/area/ruin/unpowered) +"l" = ( +/obj/structure/shuttle/engine/propulsion{ + tag = "icon-propulsion (WEST)"; + icon_state = "propulsion"; + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/ruin/unpowered) +"m" = ( +/obj/item/weapon/shard, +/turf/open/floor/plating/airless, +/area/ruin/unpowered) +"n" = ( +/obj/structure/chair{ + tag = "icon-chair (WEST)"; + icon_state = "chair"; + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/ruin/unpowered) +"o" = ( +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/ruin/unpowered) +"p" = ( +/obj/structure/table, +/turf/open/floor/plasteel/airless/shuttle, +/area/ruin/unpowered) +"q" = ( +/obj/item/weapon/shard, +/obj/structure/chair{ + tag = "icon-chair (WEST)"; + icon_state = "chair"; + dir = 8 + }, +/turf/open/floor/plasteel/airless/shuttle, +/area/ruin/unpowered) +"r" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/structure/window/reinforced{ + tag = "icon-rwindow (WEST)"; + icon_state = "rwindow"; + dir = 8 + }, +/turf/open/floor/plasteel/airless/shuttle, +/area/ruin/unpowered) +"s" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/ruin/unpowered) +"t" = ( +/obj/structure/girder, +/turf/open/floor/plating/airless, +/area/ruin/unpowered) (1,1,1) = {" -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaabbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaacccbbbbaaaaaaaaaaaaaaabaaaaaaaaaaaa -aaaaacccbbbbaaaaaaaaaaaaaabbbaaaaaaaaaaa -aaaaaaccbbaaaaaaaaaaaaaaaabbbaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaabbdddddbbaaabbbbaaaaaaaaaaa -aaaaaaaaaaabbbbddddbbbbbbbbbbbaaaaaaaaaa -aaaaaaaaaaacbbbbbdbbbbbbbbbbbbbaaaaaaaaa -aaaaaaaaccccbbbbbbbbbccbbdddbbbaaaaaaaaa -aaaaaaaacccccbddbbccccccccccbccaaaaaaaaa -aaaaaaaaaccccbddbbeeeefeeeeecccaaaaaaaaa -aaaaaaaaacccccbbbgggghhijkelcccaaaaaaaaa -aaaaaaaaacccccbbbgmnhhhhhhelcccaaaaaaaaa -aaaaaaaaaccccbbbbopqhhhhhgelcccaaaaaaaaa -aaaaaaaaaccccbbdbbghhhhrsgelcaaaaaaaaaaa -aaaaaaaaaabccbbbbbeeeefetgeecaaaaaaaaaaa -aaaaaabaaabbbbbbbccccccccccccaaaaaaaaaaa -aaaaaaaaaabbbbbbbbbbcccccccccaaaaaaaaaaa -aaabaaaaaaaabbbbbbbbbccccaaaaaaaaaaaaaaa -aaaaaaaaaaaaabdbbdddbccccaaaaaaaaaaaaaaa -aaaaabbaaaaaaaaabdddbbbaaaaaaaaaaaaabaaa -aaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaabbaaaaaaaaaaaaaaaabbbaaaaaaaaaccbbaa -aaaaaaaaaaaaaaaaaaaaadbbbbaaaaaaacccdbaa -aaaaaaaaaaaaaaaaaaadbbbbccaaaaaaacbdbaaa -aaaaaaaaaaaaaaaaaadbbbbcaaaaaaaaacbbbaaa -aaaaaaaaaaaaaaaaaddbbcccaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaababbbbbcccaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaabbbbbccccaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaabbbbdcccaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabbcccccaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaabccaaaaaaaaaaaaaaaaaaaaa +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(3,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(4,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(5,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +a +a +a +a +a +a +a +a +a +"} +(6,1,1) = {" +a +a +a +a +a +a +a +c +c +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +a +a +a +a +a +a +a +a +a +"} +(7,1,1) = {" +a +a +a +a +a +a +b +c +c +c +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +a +a +a +b +b +a +a +a +a +a +a +a +a +a +a +"} +(8,1,1) = {" +a +a +a +a +a +b +b +c +c +c +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(9,1,1) = {" +a +a +a +a +a +b +b +b +b +b +a +a +a +a +a +a +c +c +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(10,1,1) = {" +a +a +a +a +a +b +b +b +b +b +a +a +a +a +a +a +c +c +c +c +c +c +c +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(11,1,1) = {" +a +a +a +a +a +a +a +b +b +a +a +a +a +a +a +a +c +c +c +c +c +c +c +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(12,1,1) = {" +a +a +a +a +a +a +a +b +b +a +a +a +a +a +b +c +c +c +c +c +c +c +c +c +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(13,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +c +c +c +c +c +c +c +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(14,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +c +c +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +"} +(15,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +d +d +b +b +b +b +b +b +b +b +d +a +a +a +a +a +a +a +b +b +b +a +a +"} +(16,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +d +d +b +b +d +d +b +b +b +d +b +b +b +b +b +a +a +a +a +a +a +a +a +b +b +b +a +"} +(17,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +d +d +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +b +b +b +b +b +"} +(18,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +d +d +d +b +b +b +g +g +o +b +b +c +b +b +d +d +a +a +a +a +a +d +b +b +b +c +c +"} +(19,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +d +d +b +b +c +e +g +m +p +g +e +c +b +b +d +d +a +a +a +a +d +d +b +b +d +c +c +"} +(20,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +d +b +b +b +c +e +g +n +q +h +e +c +b +b +d +d +a +a +a +d +b +b +b +c +c +c +a +"} +(21,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +c +e +g +h +h +h +e +c +c +b +b +b +a +a +a +b +b +b +b +c +c +c +a +"} +(22,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +c +c +e +h +h +h +h +e +c +c +c +c +b +a +a +d +b +b +c +c +c +c +c +a +"} +(23,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +c +c +f +h +h +h +h +f +c +c +c +c +b +a +b +b +b +b +c +c +c +a +a +a +"} +(24,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +c +e +i +h +h +r +e +c +c +c +c +a +a +b +b +b +c +c +c +a +a +a +a +"} +(25,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +b +a +a +b +b +b +c +e +j +h +h +s +t +c +c +c +c +a +a +b +b +c +a +a +a +a +a +a +a +"} +(26,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +d +c +e +k +h +g +g +g +c +c +a +a +a +a +a +b +c +a +a +a +a +a +a +a +"} +(27,1,1) = {" +a +a +a +a +a +a +a +a +b +b +a +a +a +b +b +b +d +c +e +e +e +e +e +e +c +c +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(28,1,1) = {" +a +a +a +a +a +a +a +b +b +b +a +a +a +b +b +b +d +c +e +l +l +l +l +e +c +c +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(29,1,1) = {" +a +a +a +a +a +a +a +a +b +b +a +a +a +b +b +b +b +b +c +c +c +c +c +c +c +c +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(30,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +c +c +c +c +c +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(31,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +c +c +c +c +c +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(32,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(33,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(34,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +c +c +c +a +a +a +a +a +a +"} +(35,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +c +c +b +b +a +a +a +a +a +a +"} +(36,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +c +c +d +b +a +a +a +a +a +a +"} +(37,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +a +b +d +b +b +a +a +a +a +a +a +"} +(38,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +a +a +a +a +a +a +a +a +"} +(39,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(40,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a "} diff --git a/_maps/RandomRuins/SpaceRuins/derelict5.dmm b/_maps/RandomRuins/SpaceRuins/derelict5.dmm index 00d3158f92..c64c449536 100644 --- a/_maps/RandomRuins/SpaceRuins/derelict5.dmm +++ b/_maps/RandomRuins/SpaceRuins/derelict5.dmm @@ -1,6 +1,6 @@ "a" = (/turf/open/space,/area/space) -"b" = (/turf/closed/mineral,/area/space) -"c" = (/turf/open/floor/plating/asteroid/airless,/area/space) +"b" = (/turf/closed/mineral,/area/ruin/unpowered/no_grav) +"c" = (/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) "d" = (/turf/closed/mineral,/area/ruin/unpowered) "e" = (/turf/closed/wall,/area/ruin/unpowered) "f" = (/turf/closed/wall/rust,/area/ruin/unpowered) diff --git a/_maps/RandomRuins/SpaceRuins/derelict6.dmm b/_maps/RandomRuins/SpaceRuins/derelict6.dmm index c18faa00cb..7942c5c92e 100644 --- a/_maps/RandomRuins/SpaceRuins/derelict6.dmm +++ b/_maps/RandomRuins/SpaceRuins/derelict6.dmm @@ -44,9 +44,7 @@ }, /area/ruin/unpowered) "ag" = ( -/turf/open/floor/plasteel{ - initial_gas_mix = "TEMP=2.7" - }, +/turf/open/floor/plasteel/airless, /area/ruin/unpowered) "ah" = ( /turf/open/floor/plating/airless{ @@ -93,9 +91,7 @@ icon_state = "tube-broken"; status = 2 }, -/turf/open/floor/plasteel{ - initial_gas_mix = "TEMP=2.7" - }, +/turf/open/floor/plasteel/airless, /area/ruin/unpowered) "ao" = ( /obj/structure/closet/emcloset, @@ -131,9 +127,7 @@ /area/ruin/unpowered) "at" = ( /obj/item/stack/rods, -/turf/open/floor/plasteel{ - initial_gas_mix = "TEMP=2.7" - }, +/turf/open/floor/plasteel/airless, /area/ruin/unpowered) "au" = ( /obj/item/stack/sheet/metal, @@ -144,21 +138,15 @@ /area/ruin/unpowered) "av" = ( /obj/effect/decal/remains/human, -/turf/open/floor/plasteel{ - initial_gas_mix = "TEMP=2.7" - }, +/turf/open/floor/plasteel/airless, /area/ruin/unpowered) "aw" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/plasteel{ - initial_gas_mix = "TEMP=2.7" - }, +/turf/open/floor/plasteel/airless, /area/ruin/unpowered) "ax" = ( -/mob/living/simple_animal/retaliate/ghost, -/turf/open/floor/plasteel{ - initial_gas_mix = "TEMP=2.7" - }, +/mob/living/simple_animal/hostile/retaliate/ghost, +/turf/open/floor/plasteel/airless, /area/ruin/unpowered) "ay" = ( /turf/open/floor/plating/airless, @@ -198,9 +186,7 @@ icon_state = "tube-broken"; status = 2 }, -/turf/open/floor/plasteel{ - initial_gas_mix = "TEMP=2.7" - }, +/turf/open/floor/plasteel/airless, /area/ruin/unpowered) "aD" = ( /turf/open/space, @@ -217,17 +203,13 @@ /area/ruin/unpowered) "aF" = ( /obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/bar{ - initial_gas_mix = "TEMP=2.7" - }, +/turf/open/floor/plasteel/airless/bar, /area/ruin/unpowered) "aG" = ( /obj/structure/door_assembly/door_assembly_glass{ name = "broken airlock" }, -/turf/open/floor/plasteel/bar{ - initial_gas_mix = "TEMP=2.7" - }, +/turf/open/floor/plasteel/airless/bar, /area/ruin/unpowered) "aH" = ( /turf/open/floor/plating/airless, @@ -235,16 +217,12 @@ "aI" = ( /obj/structure/table, /obj/machinery/microwave, -/turf/open/floor/plasteel/cafeteria{ - initial_gas_mix = "TEMP=2.7" - }, +/turf/open/floor/plasteel/airless/cafeteria, /area/ruin/unpowered) "aJ" = ( /obj/structure/table, /obj/item/weapon/storage/box/drinkingglasses, -/turf/open/floor/plasteel/cafeteria{ - initial_gas_mix = "TEMP=2.7" - }, +/turf/open/floor/plasteel/airless/cafeteria, /area/ruin/unpowered) "aK" = ( /obj/structure/closet/secure_closet/freezer/fridge, @@ -253,32 +231,22 @@ icon_state = "tube-broken"; status = 2 }, -/turf/open/floor/plasteel/cafeteria{ - initial_gas_mix = "TEMP=2.7" - }, +/turf/open/floor/plasteel/airless/cafeteria, /area/ruin/unpowered) "aL" = ( /obj/structure/closet/secure_closet/freezer/kitchen, -/turf/open/floor/plasteel/cafeteria{ - initial_gas_mix = "TEMP=2.7" - }, +/turf/open/floor/plasteel/airless/cafeteria, /area/ruin/unpowered) "aM" = ( -/turf/open/floor/plasteel/bar{ - initial_gas_mix = "TEMP=2.7" - }, +/turf/open/floor/plasteel/airless/bar, /area/ruin/unpowered) "aN" = ( /obj/item/trash/plate, -/turf/open/floor/plasteel/bar{ - initial_gas_mix = "TEMP=2.7" - }, +/turf/open/floor/plasteel/airless/bar, /area/ruin/unpowered) "aO" = ( /obj/item/chair, -/turf/open/floor/plasteel/bar{ - initial_gas_mix = "TEMP=2.7" - }, +/turf/open/floor/plasteel/airless/bar, /area/ruin/unpowered) "aP" = ( /obj/machinery/light{ @@ -296,21 +264,15 @@ /turf/open/floor/plating/airless, /area/ruin/unpowered) "aR" = ( -/turf/open/floor/plasteel/cafeteria{ - initial_gas_mix = "TEMP=2.7" - }, +/turf/open/floor/plasteel/airless/cafeteria, /area/ruin/unpowered) "aS" = ( /obj/structure/table_frame, -/turf/open/floor/plasteel/cafeteria{ - initial_gas_mix = "TEMP=2.7" - }, +/turf/open/floor/plasteel/airless/cafeteria, /area/ruin/unpowered) "aT" = ( /obj/item/weapon/kitchen/fork, -/turf/open/floor/plasteel/bar{ - initial_gas_mix = "TEMP=2.7" - }, +/turf/open/floor/plasteel/airless/bar, /area/ruin/unpowered) "aU" = ( /obj/structure/table/wood, @@ -330,15 +292,11 @@ /area/ruin/unpowered) "aW" = ( /obj/structure/table, -/turf/open/floor/plasteel/cafeteria{ - initial_gas_mix = "TEMP=2.7" - }, +/turf/open/floor/plasteel/airless/cafeteria, /area/ruin/unpowered) "aX" = ( /obj/item/chair/stool/bar, -/turf/open/floor/plasteel/bar{ - initial_gas_mix = "TEMP=2.7" - }, +/turf/open/floor/plasteel/airless/bar, /area/ruin/unpowered) "aY" = ( /turf/open/floor/plasteel/bar{ @@ -359,29 +317,21 @@ /turf/open/space, /area/space) "ba" = ( -/mob/living/simple_animal/retaliate/ghost, -/turf/open/floor/plasteel/cafeteria{ - initial_gas_mix = "TEMP=2.7" - }, +/mob/living/simple_animal/hostile/retaliate/ghost, +/turf/open/floor/plasteel/airless/cafeteria, /area/ruin/unpowered) "bb" = ( /obj/item/weapon/reagent_containers/food/snacks/donkpocket, -/turf/open/floor/plasteel/cafeteria{ - initial_gas_mix = "TEMP=2.7" - }, +/turf/open/floor/plasteel/airless/cafeteria, /area/ruin/unpowered) "bc" = ( /obj/structure/table, /obj/item/weapon/shard, -/turf/open/floor/plasteel/cafeteria{ - initial_gas_mix = "TEMP=2.7" - }, +/turf/open/floor/plasteel/airless/cafeteria, /area/ruin/unpowered) "bd" = ( /obj/structure/chair/stool/bar, -/turf/open/floor/plasteel/bar{ - initial_gas_mix = "TEMP=2.7" - }, +/turf/open/floor/plasteel/airless/bar, /area/ruin/unpowered) "be" = ( /turf/open/floor/plasteel/bar{ @@ -411,9 +361,7 @@ status = 2 }, /obj/structure/table_frame, -/turf/open/floor/plasteel/cafeteria{ - initial_gas_mix = "TEMP=2.7" - }, +/turf/open/floor/plasteel/airless/cafeteria, /area/ruin/unpowered) "bi" = ( /obj/item/stack/sheet/metal, @@ -426,9 +374,7 @@ "bj" = ( /obj/item/trash/plate, /obj/effect/decal/remains/human, -/turf/open/floor/plasteel/cafeteria{ - initial_gas_mix = "TEMP=2.7" - }, +/turf/open/floor/plasteel/airless/cafeteria, /area/ruin/unpowered) "bk" = ( /obj/structure/table_frame/wood, @@ -483,104 +429,44 @@ icon_state = "platingdmg1" }, /area/ruin/unpowered) -"bI" = ( +"bs" = ( /obj/structure/lattice, /obj/structure/fluff/broken_flooring{ - tag = "icon-plating (WEST)"; - name = "broken plating"; - icon_state = "plating"; - dir = 8 - }, -/turf/open/space, -/area/ruin/unpowered) -"bH" = ( -/obj/structure/fluff/broken_flooring{ - icon_state = "plating"; - name = "broken plating" - }, -/obj/structure/lattice, -/turf/open/space, -/area/ruin/unpowered) -"bG" = ( -/obj/structure/fluff/broken_flooring{ - tag = "icon-singular (EAST)"; + tag = "icon-singular (NORTH)"; icon_state = "singular"; - dir = 4 - }, -/turf/open/space, -/area/space) -"bF" = ( -/obj/structure/lattice, -/obj/structure/fluff/broken_flooring{ - tag = "icon-side (EAST)"; - icon_state = "side"; - dir = 4 - }, -/turf/open/space, -/area/ruin/unpowered) -"bE" = ( -/obj/structure/lattice, -/obj/structure/fluff/broken_flooring{ - tag = "icon-corner (WEST)"; - icon_state = "corner"; - dir = 8 - }, -/turf/open/space, -/area/ruin/unpowered) -"bD" = ( -/obj/structure/fluff/broken_flooring{ - tag = "icon-singular (EAST)"; - icon_state = "singular"; - dir = 4 - }, -/turf/open/floor/plasteel{ - initial_gas_mix = "TEMP=2.7" - }, -/area/ruin/unpowered) -"bC" = ( -/obj/structure/lattice, -/obj/structure/fluff/broken_flooring{ - tag = "icon-corner (NORTH)"; - icon_state = "corner"; dir = 1 }, /turf/open/space, +/area/space) +"bt" = ( +/obj/structure/fluff/broken_flooring{ + tag = "icon-side (NORTH)"; + icon_state = "side"; + dir = 1 + }, +/obj/structure/lattice, +/turf/open/space, /area/ruin/unpowered) -"bB" = ( -/obj/structure/fluff/broken_flooring{ - tag = "icon-singular (EAST)"; - icon_state = "singular"; - dir = 4 - }, -/obj/structure/lattice, +"bu" = ( +/obj/structure/fluff/broken_flooring, /turf/open/space, -/area/space) -"bA" = ( +/area/ruin/unpowered) +"bv" = ( /obj/structure/fluff/broken_flooring{ - icon_state = "singular" + icon_state = "pile" }, /turf/open/space, /area/space) -"bz" = ( +"bw" = ( /obj/structure/lattice, /obj/structure/fluff/broken_flooring{ - tag = "icon-plating (EAST)"; + tag = "icon-plating (NORTH)"; name = "broken plating"; icon_state = "plating"; - dir = 4 + dir = 1 }, /turf/open/space, /area/ruin/unpowered) -"by" = ( -/obj/structure/fluff/broken_flooring{ - tag = "icon-pile (EAST)"; - icon_state = "pile"; - dir = 4 - }, -/turf/open/floor/plasteel{ - initial_gas_mix = "TEMP=2.7" - }, -/area/ruin/unpowered) "bx" = ( /obj/structure/fluff/broken_flooring{ tag = "icon-plating (EAST)"; @@ -591,44 +477,100 @@ /obj/structure/lattice, /turf/open/space, /area/ruin/unpowered) -"bw" = ( +"by" = ( +/obj/structure/fluff/broken_flooring{ + tag = "icon-pile (EAST)"; + icon_state = "pile"; + dir = 4 + }, +/turf/open/floor/plasteel/airless, +/area/ruin/unpowered) +"bz" = ( /obj/structure/lattice, /obj/structure/fluff/broken_flooring{ - tag = "icon-plating (NORTH)"; + tag = "icon-plating (EAST)"; name = "broken plating"; icon_state = "plating"; - dir = 1 + dir = 4 }, /turf/open/space, /area/ruin/unpowered) -"bv" = ( +"bA" = ( /obj/structure/fluff/broken_flooring{ - icon_state = "pile" + icon_state = "singular" }, /turf/open/space, /area/space) -"bu" = ( -/obj/structure/fluff/broken_flooring, -/turf/open/space, -/area/ruin/unpowered) -"bt" = ( +"bB" = ( /obj/structure/fluff/broken_flooring{ - tag = "icon-side (NORTH)"; - icon_state = "side"; - dir = 1 - }, -/obj/structure/lattice, -/turf/open/space, -/area/ruin/unpowered) -"bs" = ( -/obj/structure/lattice, -/obj/structure/fluff/broken_flooring{ - tag = "icon-singular (NORTH)"; + tag = "icon-singular (EAST)"; icon_state = "singular"; + dir = 4 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"bC" = ( +/obj/structure/lattice, +/obj/structure/fluff/broken_flooring{ + tag = "icon-corner (NORTH)"; + icon_state = "corner"; dir = 1 }, /turf/open/space, +/area/ruin/unpowered) +"bD" = ( +/obj/structure/fluff/broken_flooring{ + tag = "icon-singular (EAST)"; + icon_state = "singular"; + dir = 4 + }, +/turf/open/floor/plasteel/airless, +/area/ruin/unpowered) +"bE" = ( +/obj/structure/lattice, +/obj/structure/fluff/broken_flooring{ + tag = "icon-corner (WEST)"; + icon_state = "corner"; + dir = 8 + }, +/turf/open/space, +/area/ruin/unpowered) +"bF" = ( +/obj/structure/lattice, +/obj/structure/fluff/broken_flooring{ + tag = "icon-side (EAST)"; + icon_state = "side"; + dir = 4 + }, +/turf/open/space, +/area/ruin/unpowered) +"bG" = ( +/obj/structure/fluff/broken_flooring{ + tag = "icon-singular (EAST)"; + icon_state = "singular"; + dir = 4 + }, +/turf/open/space, /area/space) +"bH" = ( +/obj/structure/fluff/broken_flooring{ + icon_state = "plating"; + name = "broken plating" + }, +/obj/structure/lattice, +/turf/open/space, +/area/ruin/unpowered) +"bI" = ( +/obj/structure/lattice, +/obj/structure/fluff/broken_flooring{ + tag = "icon-plating (WEST)"; + name = "broken plating"; + icon_state = "plating"; + dir = 8 + }, +/turf/open/space, +/area/ruin/unpowered) (1,1,1) = {" aa diff --git a/_maps/RandomRuins/SpaceRuins/dragoontomb.dmm b/_maps/RandomRuins/SpaceRuins/dragoontomb.dmm new file mode 100644 index 0000000000..1ad3a8ac1a --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/dragoontomb.dmm @@ -0,0 +1,80 @@ +"a" = (/turf/open/space,/area/space) +"b" = (/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) +"c" = (/turf/closed/mineral/volcanic/lava_land_surface,/area/ruin/unpowered/no_grav) +"d" = (/mob/living/simple_animal/hostile/flan,/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) +"e" = (/mob/living/simple_animal/hostile/flan/fire,/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) +"f" = (/obj/structure/lattice,/turf/open/space,/area/space) +"g" = (/obj/item/weapon/bikehorn,/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) +"h" = (/turf/closed/wall/mineral/iron,/area/ruin/unpowered/no_grav) +"i" = (/obj/structure/rack,/obj/item/weapon/kitchen/knife/combat/survival,/turf/open/floor/plating/astplate,/area/ruin/unpowered/no_grav) +"j" = (/turf/open/floor/plating/astplate,/area/ruin/unpowered/no_grav) +"k" = (/obj/structure/rack,/obj/item/weapon/twohanded/spear,/turf/open/floor/plating/astplate,/area/ruin/unpowered/no_grav) +"l" = (/obj/structure/rack,/obj/item/weapon/relic,/turf/open/floor/plating/astplate,/area/ruin/unpowered/no_grav) +"m" = (/obj/structure/mineral_door/wood,/turf/open/floor/plating/astplate,/area/ruin/unpowered/no_grav) +"n" = (/obj/structure/rack,/obj/item/weapon/dice/d4,/turf/open/floor/plating/astplate,/area/ruin/unpowered/no_grav) +"o" = (/obj/structure/rack,/obj/item/weapon/dice/d8,/turf/open/floor/plating/astplate,/area/ruin/unpowered/no_grav) +"p" = (/obj/structure/rack,/obj/item/weapon/dice/d12,/turf/open/floor/plating/astplate,/area/ruin/unpowered/no_grav) +"q" = (/obj/structure/rack,/obj/item/weapon/dice/d00,/turf/open/floor/plating/astplate,/area/ruin/unpowered/no_grav) +"r" = (/obj/structure/rack,/obj/item/weapon/dice/d20,/turf/open/floor/plating/astplate,/area/ruin/unpowered/no_grav) +"s" = (/obj/structure/statue/silver/sec,/turf/open/floor/mineral/silver,/area/ruin/unpowered/no_grav) +"t" = (/obj/structure/statue/silver/md,/turf/open/floor/mineral/silver,/area/ruin/unpowered/no_grav) +"u" = (/obj/structure/table/wood/fancy,/obj/item/weapon/twohanded/skybulge,/turf/open/floor/mineral/silver,/area/ruin/unpowered/no_grav) +"v" = (/turf/open/floor/mineral/silver,/area/ruin/unpowered/no_grav) +"w" = (/obj/structure/mineral_door/silver,/turf/open/floor/mineral/silver,/area/ruin/unpowered/no_grav) +"x" = (/obj/structure/closet/coffin,/obj/item/stack/sheet/bone,/turf/open/floor/mineral/silver,/area/ruin/unpowered/no_grav) +"y" = (/mob/living/simple_animal/hostile/flan/fire,/turf/open/floor/plating/astplate,/area/ruin/unpowered/no_grav) +"z" = (/obj/structure/statue/silver/secborg,/turf/open/floor/mineral/silver,/area/ruin/unpowered/no_grav) +"A" = (/obj/structure/statue/silver/medborg,/turf/open/floor/mineral/silver,/area/ruin/unpowered/no_grav) +"B" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/donkpocket,/turf/open/floor/mineral/silver,/area/ruin/unpowered/no_grav) +"C" = (/turf/open/floor/plating/astplate/warning{tag = "icon-astplate_warn (WEST)"; icon_state = "astplate_warn"; dir = 8},/area/ruin/unpowered/no_grav) +"D" = (/turf/open/floor/plating/astplate/warning{tag = "icon-astplate_warn (EAST)"; icon_state = "astplate_warn"; dir = 4},/area/ruin/unpowered/no_grav) +"E" = (/obj/item/weapon/dice/d10,/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) +"F" = (/obj/structure/grille,/turf/open/space,/area/ruin/unpowered/no_grav) +"G" = (/obj/item/weapon/dice/d100,/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) +"H" = (/turf/open/floor/plating/astplate/warning{tag = "icon-astplate_warn (SOUTHWEST)"; icon_state = "astplate_warn"; dir = 10},/area/ruin/unpowered/no_grav) +"I" = (/turf/open/floor/plating/astplate/warning{tag = "icon-astplate_warn (SOUTHEAST)"; icon_state = "astplate_warn"; dir = 6},/area/ruin/unpowered/no_grav) +"J" = (/obj/item/weapon/crowbar/red,/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) +"K" = (/obj/item/weapon/dice/d1,/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaabccaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaabccccccccaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaabbcccccccccccbbaaaaaaaaaaaaaaaaaaa +aaaaabbbcccccccccccbbbbaaaaaaaaaaaaaaaaa +aaabbbbcccccccccccccbbbbbaaaaaaaaaaaaaaa +aabbbbbccccbbbccccccbbbbbbbbbaaaaaaaaaaa +aabbccbbccbdbbbcccccccccbbbbbbaaaaaaaaaa +aaccccbbccbbbccccbccccccccccccccaaaaaaaa +aaccccbbccbbebccbbcaccaccccaaccccaaaaaaa +aacccccbccccbbbbdccafaaafafffcccccaaaaaa +aaccccbbcccccbgbbcahhhhhhhhhacccccaaaaaa +aaaccccdbbbbcccbbcahijkhljkhafaccccaaaaa +aaacccccccbbbccbccahjjjhjjjhafaafacaaaaa +aaaccccccccbbccccffhhmhhhmhhhhhhhhccaaaa +aaacccccccccbcccccahnjopqjrhshthuhhccaaa +aaccccccbbccbbccccahjjjjjjvwvvvvvxhccaaa +aaccccbbbbcccbbcccfhjjjyjjjhzhAhBhhaccaa +aacccbbbbbbccbbcccahhhCDhhhhhhhhhhffccaa +aaccccccbbEccbbbccafaFCDFfaafaafaaaccbba +aacccccccccccbbbbbccfFCDFcccccafaacccbba +aabcccbcccbGccccbbbcccHIccbbbccfccccbbaa +aabcccbbcccccccbbcbbccbbbbbcccccccccbbaa +aabbcccbbbbbbccbcccbbJbbbbccbbcbbccbbaaa +aaabccccbdccbbbccbbbbbbdcccbbdbbbbcbbaaa +aaabcccbbccccbbbbbbbbccccbbbccccbbbbbaaa +aaacccbbccccccccbbbcccbccccccbbcccbbbaaa +aaaccccccccbbbbbbdbcccbbbccccccccbbcbbaa +aaaccbbcccbbbcccbbbbccbbKccbbbbccbcccbba +aaaacbcccbbcccccbcbbbcccccccccbbbbccccaa +aaaacbccbbcccccbbcccbbbbbbccccbbccccccaa +aaaacbbccccccccbbcccccccccccccbcccccccaa +aaaaccccccbbcccbbccccccccbbbbbbccccccaaa +aaaccccbbbbbcccbbbcccccccccdccccccccaaaa +aaaccccccccccbbbbbbccccccccbcccccccaaaaa +aaaccccccccccbbbbbbbbcccccbbcbbccccaaaaa +aaaaaccacccbbaaaaaaabcaaccbbabaaccaaaaaa +aaaaaaaaacabaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +"} diff --git a/_maps/RandomRuins/SpaceRuins/emptyshell.dmm b/_maps/RandomRuins/SpaceRuins/emptyshell.dmm index f0470d1b56..e6d2316ce5 100644 --- a/_maps/RandomRuins/SpaceRuins/emptyshell.dmm +++ b/_maps/RandomRuins/SpaceRuins/emptyshell.dmm @@ -1,31 +1,345 @@ -"a" = (/turf/open/space,/area/space) -"b" = (/obj/structure/lattice,/turf/open/space,/area/space) -"c" = (/turf/closed/wall/r_wall,/area/ruin/unpowered) -"d" = (/turf/open/floor/plating,/area/ruin/unpowered) -"e" = (/obj/effect/spawner/lootdrop/crate_spawner,/turf/open/floor/plating,/area/ruin/unpowered) -"f" = (/obj/item/ammo_box/magazine/sniper_rounds,/turf/open/floor/plating,/area/ruin/unpowered) -"g" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/ruin/unpowered) -"h" = (/turf/open/floor/plating/airless,/area/ruin/unpowered) -"i" = (/obj/item/stack/rods,/turf/open/floor/plating,/area/ruin/unpowered) -"j" = (/obj/machinery/door/airlock,/turf/open/floor/plating,/area/ruin/unpowered) -"k" = (/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/ruin/unpowered) -"l" = (/obj/item/stack/cable_coil,/turf/open/floor/plating,/area/ruin/unpowered) -"m" = (/obj/effect/spawner/lootdrop/maintenance{lootcount = 4; name = "4maintenance loot spawner"},/turf/open/floor/plating,/area/ruin/unpowered) +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/space, +/area/space) +"b" = ( +/obj/structure/lattice, +/turf/open/space, +/area/space) +"c" = ( +/turf/closed/wall/r_wall, +/area/ruin/unpowered) +"d" = ( +/turf/open/floor/plating, +/area/ruin/unpowered) +"e" = ( +/obj/effect/spawner/lootdrop/crate_spawner, +/turf/open/floor/plating, +/area/ruin/unpowered) +"f" = ( +/obj/item/ammo_box/magazine/sniper_rounds, +/turf/open/floor/plating, +/area/ruin/unpowered) +"g" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/ruin/unpowered) +"h" = ( +/obj/item/stack/rods, +/turf/open/floor/plating, +/area/ruin/unpowered) +"i" = ( +/turf/open/floor/plating/airless, +/area/ruin/unpowered) +"j" = ( +/obj/machinery/door/airlock, +/turf/open/floor/plating, +/area/ruin/unpowered) +"k" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/ruin/unpowered) +"l" = ( +/obj/item/stack/cable_coil, +/turf/open/floor/plating, +/area/ruin/unpowered) +"m" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 4; + name = "4maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/ruin/unpowered) (1,1,1) = {" -aaaaaaaaabaaaaaaa -aaabbaaababaabaaa -aaabccccccccccaba -aabccccccccccccaa -abacccdeddfdcccba -abaccddddddgdccbb -bbbhcdiddddddccbb -aahhjddidgdddccaa -aahhjddkdddddccbb -abbhcddddddidccbb -aaaccldeddmddccbb -aaacccdddddecccaa -aaaccccccccccccba -aabaccccccccccaaa -aaaabbaaaaaaaaaaa +a +a +a +a +a +a +b +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +a +a +a +b +b +b +a +a +b +a +a +a +a +a +"} +(3,1,1) = {" +a +a +a +b +a +a +b +i +i +b +a +a +a +b +a +"} +(4,1,1) = {" +a +b +b +c +c +c +i +i +i +i +c +c +c +a +a +"} +(5,1,1) = {" +a +b +c +c +c +c +c +j +j +c +c +c +c +c +b +"} +(6,1,1) = {" +a +a +c +c +c +d +d +d +d +d +l +c +c +c +b +"} +(7,1,1) = {" +a +a +c +c +d +d +h +d +d +d +d +d +c +c +a +"} +(8,1,1) = {" +a +a +c +c +e +d +d +h +k +d +e +d +c +c +a +"} +(9,1,1) = {" +a +b +c +c +d +d +d +d +d +d +d +d +c +c +a +"} +(10,1,1) = {" +b +a +c +c +d +d +d +g +d +d +d +d +c +c +a +"} +(11,1,1) = {" +a +b +c +c +f +d +d +d +d +d +m +d +c +c +a +"} +(12,1,1) = {" +a +a +c +c +d +g +d +d +d +h +d +e +c +c +a +"} +(13,1,1) = {" +a +a +c +c +c +d +d +d +d +d +d +c +c +c +a +"} +(14,1,1) = {" +a +b +c +c +c +c +c +c +c +c +c +c +c +c +a +"} +(15,1,1) = {" +a +a +a +c +c +c +c +c +c +c +c +c +c +a +a +"} +(16,1,1) = {" +a +a +b +a +b +b +b +a +b +b +b +a +b +a +a +"} +(17,1,1) = {" +a +a +a +a +a +b +b +a +b +b +b +a +a +a +a "} diff --git a/_maps/RandomRuins/SpaceRuins/gasthelizards.dmm b/_maps/RandomRuins/SpaceRuins/gasthelizards.dmm index d7cafd2e13..fd610fd7c0 100644 --- a/_maps/RandomRuins/SpaceRuins/gasthelizards.dmm +++ b/_maps/RandomRuins/SpaceRuins/gasthelizards.dmm @@ -1,52 +1,52 @@ "a" = (/turf/open/space,/area/space) "b" = (/obj/structure/lattice,/turf/open/space,/area/space) -"c" = (/turf/closed/wall,/area/ruin/unpowered) -"d" = (/obj/machinery/light{dir = 1},/obj/structure/bed,/obj/effect/decal/remains/human,/turf/open/floor/plasteel{icon_state = "warndark";dir = 8},/area/ruin/unpowered) -"e" = (/obj/structure/window/reinforced{dir = 4;pixel_x = 0},/turf/open/floor/plasteel{icon_state = "warndark";dir = 4},/area/ruin/unpowered) -"f" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/light{dir = 1},/obj/structure/bed,/obj/effect/decal/remains/human,/turf/open/floor/plasteel{icon_state = "warndark";dir = 8},/area/ruin/unpowered) -"g" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/light{dir = 1},/obj/structure/bed,/turf/open/floor/plasteel{icon_state = "warndark";dir = 8},/area/ruin/unpowered) -"h" = (/turf/open/floor/plasteel{icon_state = "warndark";dir = 4},/area/ruin/unpowered) -"i" = (/turf/open/floor/plasteel{icon_state = "warndark";dir = 8},/area/ruin/unpowered) -"j" = (/obj/structure/window/reinforced{dir = 4;pixel_x = 0},/obj/machinery/atmospherics/components/unary/outlet_injector,/turf/open/floor/plasteel{icon_state = "warndark";dir = 4},/area/ruin/unpowered) -"k" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel{icon_state = "warndark";dir = 8},/area/ruin/unpowered) -"l" = (/obj/machinery/atmospherics/components/unary/outlet_injector,/turf/open/floor/plasteel{icon_state = "warndark";dir = 4},/area/ruin/unpowered) -"m" = (/obj/structure/closet/crate/freezer,/obj/item/stack/sheet/animalhide/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/unpowered) -"n" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/machinery/light{dir = 1},/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/unpowered) -"o" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/clothing/under/rank/prisoner,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/unpowered) -"p" = (/obj/structure/window/reinforced{dir = 1;layer = 2.9},/turf/open/floor/plasteel{dir = 1;icon_state = "blue"},/area/ruin/unpowered) -"q" = (/obj/machinery/door/window/brigdoor/northleft,/obj/machinery/atmospherics/components/binary/pump{dir = 1},/turf/open/floor/plasteel{dir = 1;icon_state = "blue"},/area/ruin/unpowered) -"r" = (/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/unpowered) -"s" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/canister/nitrous_oxide,/turf/open/floor/plasteel,/area/ruin/unpowered) -"t" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 1},/obj/machinery/power/apc{cell_type = 2500;dir = 1;name = "Worn-out APC";pixel_x = 1;pixel_y = 26},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel,/area/ruin/unpowered) -"u" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/open/floor/plasteel,/area/ruin/unpowered) -"v" = (/obj/machinery/atmospherics/pipe/manifold/general/visible,/turf/open/floor/plasteel,/area/ruin/unpowered) -"w" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 9},/obj/machinery/light{dir = 4;icon_state = "tube1"},/turf/open/floor/plasteel,/area/ruin/unpowered) -"x" = (/obj/structure/kitchenspike,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/unpowered) -"y" = (/obj/structure/table/reinforced,/obj/item/weapon/kitchen/knife/butcher,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/reagent_containers/spray/pepper,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/unpowered) -"z" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/turf/open/floor/plasteel,/area/ruin/unpowered) -"A" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4;initialize_directions = 11},/turf/open/floor/plasteel,/area/ruin/unpowered) -"B" = (/turf/open/floor/plasteel,/area/ruin/unpowered) -"C" = (/obj/machinery/gibber,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/unpowered) -"D" = (/obj/structure/table/reinforced,/obj/item/clothing/suit/straight_jacket,/obj/item/weapon/reagent_containers/syringe/lethal,/obj/item/weapon/reagent_containers/syringe/lethal/choral,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/unpowered) -"E" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/canister/toxins,/turf/open/floor/plasteel,/area/ruin/unpowered) -"F" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 9},/turf/open/floor/plasteel,/area/ruin/unpowered) -"G" = (/obj/structure/chair/office/dark,/turf/open/floor/plasteel,/area/ruin/unpowered) -"H" = (/obj/machinery/door/airlock/security,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/unpowered) -"I" = (/obj/item/weapon/reagent_containers/glass/bottle/morphine{pixel_x = -4;pixel_y = 1},/obj/item/weapon/reagent_containers/glass/bottle/chloralhydrate{name = "chloral hydrate bottle"},/obj/item/weapon/reagent_containers/glass/bottle/toxin{pixel_x = 6;pixel_y = 8},/obj/item/weapon/reagent_containers/glass/bottle/morphine{pixel_x = 5;pixel_y = 1},/obj/item/weapon/reagent_containers/glass/bottle/facid{name = "fluorosulfuric acid bottle";pixel_x = -3;pixel_y = 6},/obj/structure/table/reinforced,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/unpowered) -"J" = (/obj/structure/rack,/obj/item/weapon/storage/toolbox/drone,/obj/item/weapon/melee/baton/cattleprod,/turf/open/floor/plasteel,/area/ruin/unpowered) -"K" = (/obj/structure/table,/obj/item/weapon/pen/red,/turf/open/floor/plasteel,/area/ruin/unpowered) -"L" = (/obj/structure/table,/obj/item/weapon/paper_bin,/turf/open/floor/plasteel,/area/ruin/unpowered) -"M" = (/obj/structure/table,/obj/item/weapon/storage/box/prisoner,/turf/open/floor/plasteel,/area/ruin/unpowered) -"N" = (/obj/structure/window/reinforced{dir = 4;pixel_x = 0},/obj/machinery/light,/obj/structure/table,/turf/open/floor/plasteel,/area/ruin/unpowered) -"O" = (/obj/machinery/portable_atmospherics/scrubber,/turf/open/floor/plasteel{icon_state = "bot";dir = 1},/area/ruin/unpowered) -"P" = (/obj/structure/table/reinforced,/obj/item/weapon/surgicaldrill,/obj/item/weapon/hemostat,/obj/item/weapon/scalpel,/obj/item/weapon/surgical_drapes,/obj/item/weapon/retractor,/obj/item/weapon/cautery,/obj/item/weapon/circular_saw,/obj/machinery/light,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/unpowered) -"Q" = (/obj/structure/table/optable,/obj/effect/decal/cleanable/blood/old,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/unpowered) -"R" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/glass/bottle/mutagen,/obj/item/weapon/reagent_containers/glass/bottle/mutagen,/obj/item/weapon/razor,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/unpowered) -"S" = (/obj/machinery/suit_storage_unit/security,/turf/open/floor/plasteel,/area/ruin/unpowered) -"T" = (/obj/machinery/light,/turf/open/floor/plasteel,/area/ruin/unpowered) -"U" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel,/area/ruin/unpowered) -"V" = (/obj/machinery/door/airlock/external,/turf/open/floor/plating,/area/ruin/unpowered) -"W" = (/turf/open/floor/plating,/area/ruin/unpowered) +"c" = (/turf/closed/wall,/area/ruin/gasthelizard) +"d" = (/obj/machinery/light{dir = 1},/obj/structure/bed,/obj/effect/decal/remains/human,/turf/open/floor/plasteel/airless/darkwarning{dir = 8},/area/ruin/gasthelizard) +"e" = (/obj/structure/window/reinforced{dir = 4;pixel_x = 0},/turf/open/floor/plasteel/airless/darkwarning{dir = 4},/area/ruin/gasthelizard) +"f" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/light{dir = 1},/obj/structure/bed,/obj/effect/decal/remains/human,/turf/open/floor/plasteel/airless/darkwarning{dir = 8},/area/ruin/gasthelizard) +"g" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/light{dir = 1},/obj/structure/bed,/turf/open/floor/plasteel/airless/darkwarning{dir = 8},/area/ruin/gasthelizard) +"h" = (/turf/open/floor/plasteel/airless/darkwarning{dir = 4},/area/ruin/gasthelizard) +"i" = (/turf/open/floor/plasteel/airless/darkwarning{dir = 8},/area/ruin/gasthelizard) +"j" = (/obj/structure/window/reinforced{dir = 4;pixel_x = 0},/obj/machinery/atmospherics/components/unary/outlet_injector,/turf/open/floor/plasteel/airless/darkwarning{dir = 4},/area/ruin/gasthelizard) +"k" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/airless/darkwarning{dir = 8},/area/ruin/gasthelizard) +"l" = (/obj/machinery/atmospherics/components/unary/outlet_injector,/turf/open/floor/plasteel/airless/darkwarning{dir = 4},/area/ruin/gasthelizard) +"m" = (/obj/structure/closet/crate/freezer,/obj/item/stack/sheet/animalhide/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/gasthelizard) +"n" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/machinery/light{dir = 1},/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/gasthelizard) +"o" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/clothing/under/rank/prisoner,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/gasthelizard) +"p" = (/obj/structure/window/reinforced{dir = 1;layer = 2.9},/turf/open/floor/plasteel{dir = 1;icon_state = "blue"},/area/ruin/gasthelizard) +"q" = (/obj/machinery/door/window/brigdoor/northleft,/obj/machinery/atmospherics/components/binary/pump{dir = 1},/turf/open/floor/plasteel{dir = 1;icon_state = "blue"},/area/ruin/gasthelizard) +"r" = (/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/gasthelizard) +"s" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/canister/nitrous_oxide,/turf/open/floor/plasteel,/area/ruin/gasthelizard) +"t" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 1},/obj/machinery/power/apc{cell_type = 2500;dir = 1;name = "Worn-out APC";pixel_x = 1;pixel_y = 26},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel,/area/ruin/gasthelizard) +"u" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/open/floor/plasteel,/area/ruin/gasthelizard) +"v" = (/obj/machinery/atmospherics/pipe/manifold/general/visible,/turf/open/floor/plasteel,/area/ruin/gasthelizard) +"w" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 9},/obj/machinery/light{dir = 4;icon_state = "tube1"},/turf/open/floor/plasteel,/area/ruin/gasthelizard) +"x" = (/obj/structure/kitchenspike,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/gasthelizard) +"y" = (/obj/structure/table/reinforced,/obj/item/weapon/kitchen/knife/butcher,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/reagent_containers/spray/pepper,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/gasthelizard) +"z" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/turf/open/floor/plasteel,/area/ruin/gasthelizard) +"A" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4;initialize_directions = 11},/turf/open/floor/plasteel,/area/ruin/gasthelizard) +"B" = (/turf/open/floor/plasteel,/area/ruin/gasthelizard) +"C" = (/obj/machinery/gibber,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/gasthelizard) +"D" = (/obj/structure/table/reinforced,/obj/item/clothing/suit/straight_jacket,/obj/item/weapon/reagent_containers/syringe/lethal,/obj/item/weapon/reagent_containers/syringe/lethal/choral,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/gasthelizard) +"E" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/canister/toxins,/turf/open/floor/plasteel,/area/ruin/gasthelizard) +"F" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 9},/turf/open/floor/plasteel,/area/ruin/gasthelizard) +"G" = (/obj/structure/chair/office/dark,/turf/open/floor/plasteel,/area/ruin/gasthelizard) +"H" = (/obj/machinery/door/airlock/security,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/gasthelizard) +"I" = (/obj/item/weapon/reagent_containers/glass/bottle/morphine{pixel_x = -4;pixel_y = 1},/obj/item/weapon/reagent_containers/glass/bottle/chloralhydrate{name = "chloral hydrate bottle"},/obj/item/weapon/reagent_containers/glass/bottle/toxin{pixel_x = 6;pixel_y = 8},/obj/item/weapon/reagent_containers/glass/bottle/morphine{pixel_x = 5;pixel_y = 1},/obj/item/weapon/reagent_containers/glass/bottle/facid{name = "fluorosulfuric acid bottle";pixel_x = -3;pixel_y = 6},/obj/structure/table/reinforced,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/gasthelizard) +"J" = (/obj/structure/rack,/obj/item/weapon/storage/toolbox/drone,/obj/item/weapon/melee/baton/cattleprod,/turf/open/floor/plasteel,/area/ruin/gasthelizard) +"K" = (/obj/structure/table,/obj/item/weapon/pen/red,/turf/open/floor/plasteel,/area/ruin/gasthelizard) +"L" = (/obj/structure/table,/obj/item/weapon/paper_bin,/turf/open/floor/plasteel,/area/ruin/gasthelizard) +"M" = (/obj/structure/table,/obj/item/weapon/storage/box/prisoner,/turf/open/floor/plasteel,/area/ruin/gasthelizard) +"N" = (/obj/structure/window/reinforced{dir = 4;pixel_x = 0},/obj/machinery/light,/obj/structure/table,/turf/open/floor/plasteel,/area/ruin/gasthelizard) +"O" = (/obj/machinery/portable_atmospherics/scrubber,/turf/open/floor/plasteel{icon_state = "bot";dir = 1},/area/ruin/gasthelizard) +"P" = (/obj/structure/table/reinforced,/obj/item/weapon/surgicaldrill,/obj/item/weapon/hemostat,/obj/item/weapon/scalpel,/obj/item/weapon/surgical_drapes,/obj/item/weapon/retractor,/obj/item/weapon/cautery,/obj/item/weapon/circular_saw,/obj/machinery/light,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/gasthelizard) +"Q" = (/obj/structure/table/optable,/obj/effect/decal/cleanable/blood/old,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/gasthelizard) +"R" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/glass/bottle/mutagen,/obj/item/weapon/reagent_containers/glass/bottle/mutagen,/obj/item/weapon/razor,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/gasthelizard) +"S" = (/obj/machinery/suit_storage_unit/security,/turf/open/floor/plasteel,/area/ruin/gasthelizard) +"T" = (/obj/machinery/light,/turf/open/floor/plasteel,/area/ruin/gasthelizard) +"U" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel,/area/ruin/gasthelizard) +"V" = (/obj/machinery/door/airlock/external,/turf/open/floor/plating,/area/ruin/gasthelizard) +"W" = (/turf/open/floor/plating,/area/ruin/gasthelizard) (1,1,1) = {" aaaababababbaaaaaaa diff --git a/_maps/RandomRuins/SpaceRuins/intactemptyship.dmm b/_maps/RandomRuins/SpaceRuins/intactemptyship.dmm index afaf654fec..3346128321 100644 --- a/_maps/RandomRuins/SpaceRuins/intactemptyship.dmm +++ b/_maps/RandomRuins/SpaceRuins/intactemptyship.dmm @@ -1,43 +1,333 @@ -"a" = (/turf/open/space,/area/space) -"b" = (/turf/closed/wall/shuttle{dir = 8;icon_state = "diagonalWall3"},/area/ruin/powered/authorship) -"c" = (/turf/closed/wall/shuttle{icon_state = "wall3"},/area/ruin/powered/authorship) -"d" = (/turf/closed/wall/shuttle{dir = 1;icon_state = "diagonalWall3"},/area/ruin/powered/authorship) -"e" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion (EAST)";icon_state = "propulsion";dir = 4},/turf/open/space,/area/ruin/powered/authorship) -"f" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/shuttle/engine/heater{tag = "icon-heater (WEST)";icon_state = "heater";dir = 8},/turf/open/floor/plating,/area/ruin/powered/authorship) -"g" = (/obj/structure/table/wood,/obj/item/clothing/under/shorts/black,/turf/open/floor/plasteel/shuttle/purple,/area/ruin/powered/authorship) -"h" = (/turf/open/floor/plasteel/shuttle/purple,/area/ruin/powered/authorship) -"i" = (/obj/structure/table,/obj/item/device/flashlight/lamp,/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/shuttle/purple,/area/ruin/powered/authorship) -"j" = (/obj/structure/closet,/turf/open/floor/plasteel/shuttle/purple,/area/ruin/powered/authorship) -"k" = (/obj/machinery/vending/assist,/turf/open/floor/plasteel/shuttle/purple,/area/ruin/powered/authorship) -"l" = (/obj/structure/table/wood,/obj/item/clothing/shoes/sandal,/turf/open/floor/plasteel/shuttle/purple,/area/ruin/powered/authorship) -"m" = (/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/shuttle/purple,/area/ruin/powered/authorship) -"n" = (/obj/structure/table/wood,/turf/open/floor/plasteel/shuttle/purple,/area/ruin/powered/authorship) -"o" = (/obj/structure/table/wood,/obj/machinery/computer/libraryconsole/bookmanagement,/turf/open/floor/plasteel/shuttle/purple,/area/ruin/powered/authorship) -"p" = (/obj/structure/window/reinforced/fulltile,/obj/structure/grille,/turf/open/floor/plating,/area/ruin/powered/authorship) -"q" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ruin/powered/authorship) -"r" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/turf/open/floor/plasteel/shuttle/purple,/area/ruin/powered/authorship) -"s" = (/obj/machinery/door/poddoor{id = "goonwizship1"},/obj/machinery/button/door{id = "goonwizship1";name = "Strange Ship Door Button";pixel_y = 32},/turf/open/floor/plasteel/shuttle/purple,/area/ruin/powered/authorship) -"t" = (/obj/machinery/door/airlock/external,/turf/open/floor/plasteel/shuttle/purple,/area/ruin/powered/authorship) -"u" = (/obj/machinery/door/airlock/glass,/turf/open/floor/plasteel/shuttle/purple,/area/ruin/powered/authorship) -"v" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/shuttle/purple,/area/ruin/powered/authorship) -"w" = (/obj/structure/table/wood,/obj/item/weapon/paper,/obj/item/weapon/pen,/turf/open/floor/plasteel/shuttle/purple,/area/ruin/powered/authorship) -"x" = (/obj/machinery/light,/turf/open/floor/plasteel/shuttle/purple,/area/ruin/powered/authorship) -"y" = (/mob/living/simple_animal/bot/medbot,/turf/open/floor/plasteel/shuttle/purple,/area/ruin/powered/authorship) -"z" = (/turf/closed/wall/shuttle{dir = 2;icon_state = "diagonalWall3"},/area/ruin/powered/authorship) -"A" = (/obj/structure/chair,/turf/open/floor/plasteel/shuttle/purple,/area/ruin/powered/authorship) -"B" = (/turf/closed/wall/shuttle{dir = 4;icon_state = "diagonalWall3"},/area/ruin/powered/authorship) -"C" = (/obj/machinery/light,/obj/structure/bed,/turf/open/floor/plasteel/shuttle/purple,/area/ruin/powered/authorship) +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/space, +/area/space) +"b" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 8; + icon_state = "diagonalWall3" + }, +/area/ruin/powered/authorship) +"c" = ( +/turf/closed/wall/shuttle{ + icon_state = "wall3" + }, +/area/ruin/powered/authorship) +"d" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" + }, +/area/ruin/powered/authorship) +"e" = ( +/obj/structure/shuttle/engine/propulsion{ + tag = "icon-propulsion (EAST)"; + icon_state = "propulsion"; + dir = 4 + }, +/turf/open/space, +/area/ruin/powered/authorship) +"f" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/shuttle/engine/heater{ + tag = "icon-heater (WEST)"; + icon_state = "heater"; + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/ruin/powered/authorship) +"g" = ( +/obj/structure/table/wood, +/obj/item/clothing/under/shorts/black, +/turf/open/floor/plasteel/shuttle/purple, +/area/ruin/powered/authorship) +"h" = ( +/turf/open/floor/plasteel/shuttle/purple, +/area/ruin/powered/authorship) +"i" = ( +/obj/structure/table, +/obj/item/device/flashlight/lamp, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/shuttle/purple, +/area/ruin/powered/authorship) +"j" = ( +/obj/structure/closet, +/turf/open/floor/plasteel/shuttle/purple, +/area/ruin/powered/authorship) +"k" = ( +/obj/machinery/vending/assist, +/turf/open/floor/plasteel/shuttle/purple, +/area/ruin/powered/authorship) +"l" = ( +/obj/structure/table/wood, +/obj/item/clothing/shoes/sandal, +/turf/open/floor/plasteel/shuttle/purple, +/area/ruin/powered/authorship) +"m" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/shuttle/purple, +/area/ruin/powered/authorship) +"n" = ( +/obj/structure/table/wood, +/turf/open/floor/plasteel/shuttle/purple, +/area/ruin/powered/authorship) +"o" = ( +/obj/structure/table/wood, +/obj/machinery/computer/libraryconsole/bookmanagement, +/turf/open/floor/plasteel/shuttle/purple, +/area/ruin/powered/authorship) +"p" = ( +/obj/structure/window/reinforced/fulltile, +/obj/structure/grille, +/turf/open/floor/plating, +/area/ruin/powered/authorship) +"q" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/ruin/powered/authorship) +"r" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/shuttle/purple, +/area/ruin/powered/authorship) +"s" = ( +/obj/machinery/door/poddoor{ + id = "goonwizship1" + }, +/obj/machinery/button/door{ + id = "goonwizship1"; + name = "Strange Ship Door Button"; + pixel_y = 32 + }, +/turf/open/floor/plasteel/shuttle/purple, +/area/ruin/powered/authorship) +"t" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plasteel/shuttle/purple, +/area/ruin/powered/authorship) +"u" = ( +/obj/machinery/door/airlock/glass, +/turf/open/floor/plasteel/shuttle/purple, +/area/ruin/powered/authorship) +"v" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/shuttle/purple, +/area/ruin/powered/authorship) +"w" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/shuttle/purple, +/area/ruin/powered/authorship) +"x" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/shuttle/purple, +/area/ruin/powered/authorship) +"y" = ( +/mob/living/simple_animal/bot/medbot, +/turf/open/floor/plasteel/shuttle/purple, +/area/ruin/powered/authorship) +"z" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + icon_state = "diagonalWall3" + }, +/area/ruin/powered/authorship) +"A" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/shuttle/purple, +/area/ruin/powered/authorship) +"B" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" + }, +/area/ruin/powered/authorship) +"C" = ( +/obj/machinery/light, +/obj/structure/bed, +/turf/open/floor/plasteel/shuttle/purple, +/area/ruin/powered/authorship) (1,1,1) = {" -aabcccccdaaaa -aefghijkcaaaa -aeflhhhhccccd -bccccmhhcmhjc -cnophhhhqhhrc -shhthhhhuhvwc -chxpyhhhqhhnc -zccccmhhcmhjc -aefAhhhhccccB -aefnnChjcaaaa -aazcccccBaaaa +a +a +a +b +c +s +c +z +a +a +a +"} +(2,1,1) = {" +a +e +e +c +n +h +h +c +e +e +a +"} +(3,1,1) = {" +b +f +f +c +o +h +x +c +f +f +z +"} +(4,1,1) = {" +c +g +l +c +p +t +p +c +A +n +c +"} +(5,1,1) = {" +c +h +h +c +h +h +y +c +h +n +c +"} +(6,1,1) = {" +c +i +h +m +h +h +h +m +h +C +c +"} +(7,1,1) = {" +c +j +h +h +h +h +h +h +h +h +c +"} +(8,1,1) = {" +c +k +h +h +h +h +h +h +h +j +c +"} +(9,1,1) = {" +d +c +c +c +q +u +q +c +c +c +B +"} +(10,1,1) = {" +a +a +c +m +h +h +h +m +c +a +a +"} +(11,1,1) = {" +a +a +c +h +h +v +h +h +c +a +a +"} +(12,1,1) = {" +a +a +c +j +r +w +n +j +c +a +a +"} +(13,1,1) = {" +a +a +d +c +c +c +c +c +B +a +a "} diff --git a/_maps/RandomRuins/SpaceRuins/listeningstation.dmm b/_maps/RandomRuins/SpaceRuins/listeningstation.dmm index efbcfee9a2..e2a4579531 100644 --- a/_maps/RandomRuins/SpaceRuins/listeningstation.dmm +++ b/_maps/RandomRuins/SpaceRuins/listeningstation.dmm @@ -1,127 +1,6585 @@ -"a" = (/turf/open/space,/area/space) -"b" = (/turf/closed/mineral,/area/ruin/unpowered/no_grav) -"c" = (/turf/closed/wall/r_wall,/area/awaymission/listeningpost) -"d" = (/turf/open/floor/plating,/area/awaymission/listeningpost) -"e" = (/obj/machinery/power/smes/magical{desc = "A high-capacity superconducting magnetic energy storage (SMES) unit.";name = "power storage unit"},/turf/open/floor/plating,/area/awaymission/listeningpost) -"f" = (/obj/machinery/door/airlock,/turf/open/floor/plasteel,/area/awaymission/listeningpost) -"g" = (/turf/closed/wall,/area/awaymission/listeningpost) -"h" = (/obj/structure/table,/obj/item/weapon/paper/monitorkey,/obj/item/device/radio/intercom{desc = "Talk through this. Evilly";freerange = 1;frequency = 1213;name = "Syndicate Intercom";pixel_x = 32;subspace_transmission = 1;syndie = 1},/obj/item/clothing/glasses/regular,/turf/open/floor/plasteel,/area/awaymission/listeningpost) -"i" = (/obj/structure/table,/turf/open/floor/plasteel,/area/awaymission/listeningpost) -"j" = (/turf/open/floor/plasteel,/area/awaymission/listeningpost) -"k" = (/obj/machinery/door/airlock/external,/turf/open/floor/plating,/area/awaymission/listeningpost) -"l" = (/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) -"m" = (/obj/machinery/computer/message_monitor,/turf/open/floor/plasteel,/area/awaymission/listeningpost) -"n" = (/obj/structure/chair{dir = 4},/mob/living/simple_animal/hostile/syndicate{desc = "A weary looking syndicate operative."},/turf/open/floor/plasteel,/area/awaymission/listeningpost) -"o" = (/obj/structure/table,/obj/item/weapon/paper{info = "Nothing of interest to report.";name = "november report"},/obj/item/weapon/pen,/turf/open/floor/plasteel,/area/awaymission/listeningpost) -"p" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly";freerange = 1;frequency = 1213;name = "Syndicate Intercom";pixel_x = 32;subspace_transmission = 1;syndie = 1},/turf/open/floor/plasteel,/area/awaymission/listeningpost) -"q" = (/obj/structure/rack,/obj/item/clothing/suit/space/syndicate,/obj/item/clothing/mask/gas,/obj/item/clothing/head/helmet/space/syndicate,/turf/open/floor/plasteel,/area/awaymission/listeningpost) -"r" = (/obj/machinery/door/airlock,/obj/structure/safe/floor,/obj/item/weapon/paper{info = "I wonder how much longer they will accept my empty reports. They will cancel the case soon without results. When the pickup comes, I will tell them I have lost faith in our cause, and beg them to consider a diplomatic solution. How many nuclear teams have been dispatched with those nukes? I must try and prevent more from ever being sent. If they will not listen to reason, I will detonate the warehouse myself. Maybe some day in the immediate future, space will be peaceful, though I don't intend to live to see it. And that is why I write this down- it is my sacrifice that stabilised your worlds, traveller. Spare a thought for me, and please attempt to prevent nuclear proliferation, should it ever rear it's ugly head again. -Donk Co. Operative #451";name = "odd report"},/obj/item/weapon/gun/projectile/automatic/pistol,/turf/open/floor/plasteel,/area/awaymission/listeningpost) -"s" = (/obj/structure/disposalpipe/segment{dir = 4;icon_state = "pipe-c"},/turf/closed/mineral,/area/ruin/unpowered/no_grav) -"t" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/closed/mineral,/area/ruin/unpowered/no_grav) -"u" = (/obj/structure/disposaloutlet{dir = 4},/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) -"v" = (/obj/structure/bed,/obj/item/weapon/bedsheet/brown,/turf/open/floor/plasteel,/area/awaymission/listeningpost) -"w" = (/obj/structure/table,/obj/item/device/flashlight/lamp,/turf/open/floor/plasteel,/area/awaymission/listeningpost) -"x" = (/obj/machinery/vending/snack,/turf/open/floor/plasteel,/area/awaymission/listeningpost) -"y" = (/obj/structure/disposalpipe/segment,/turf/closed/mineral,/area/ruin/unpowered/no_grav) -"z" = (/obj/machinery/vending/cola,/turf/open/floor/plasteel,/area/ruin/unpowered/no_grav) -"A" = (/obj/structure/closet,/obj/item/clothing/gloves/boxing,/turf/open/floor/plasteel,/area/ruin/unpowered/no_grav) -"B" = (/obj/structure/filingcabinet,/obj/item/weapon/paper{info = "A good start to the operation: intercepted Nanotrasen military communications. A convoy is scheduled to transfer nuclear warheads to a new military base. This is as good a chance as any to get our hands on some heavy weaponry, I suggest we take it.";name = "april report"},/obj/item/weapon/paper{info = "Nothing of real interest to report this month. I have intercepted faint transmissions from what appears to be some sort of pirate radio station. They do not appear to be relevant to my assignment.";name = "may report"},/obj/item/weapon/paper{info = "Nanotrasen communications have been noticably less frequent recently. The pirate radio station I found last month has been transmitting pro-Nanotrasen propaganda. I will continue to monitor it.";name = "june report"},/obj/item/weapon/paper{info = "Nothing of interest to report.";name = "july report"},/obj/item/weapon/paper{info = "Nothing of interest to report.";name = "august report"},/obj/item/weapon/paper{info = "Nothing of interest to report.";name = "september report"},/obj/item/weapon/paper{info = "Nothing of interest to report.";name = "october report"},/obj/item/weapon/paper{info = "1 x Stechtkin pistol - $600
1 x silencer - $200
shipping charge - $4360
total - $5160";name = "receipt"},/turf/open/floor/plasteel,/area/ruin/unpowered/no_grav) -"C" = (/obj/structure/table,/obj/item/weapon/paper{info = "Mission Details: You have been assigned to a newly constructed listening post constructed within an asteroid in Nanotrasen space to monitor their plasma mining operations. Accurate intel is crucial to the success of our operatives onboard, do not fail us.";name = "mission briefing"},/turf/open/floor/plasteel,/area/ruin/unpowered/no_grav) -"D" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 4},/turf/open/floor/plasteel,/area/ruin/unpowered/no_grav) -"E" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/closed/wall/r_wall,/area/ruin/unpowered/no_grav) -"F" = (/obj/structure/disposalpipe/segment{dir = 8;icon_state = "pipe-c"},/turf/closed/mineral,/area/ruin/unpowered/no_grav) -"G" = (/obj/machinery/door/airlock{name = "Toilet"},/turf/open/floor/plasteel,/area/ruin/unpowered/no_grav) -"H" = (/turf/open/floor/plasteel/freezer,/area/ruin/unpowered/no_grav) -"I" = (/obj/machinery/shower{icon_state = "shower";dir = 8},/turf/open/floor/plasteel/freezer,/area/ruin/unpowered/no_grav) -"J" = (/obj/structure/toilet{icon_state = "toilet00";dir = 8},/turf/open/floor/plasteel/freezer,/area/ruin/unpowered/no_grav) -"K" = (/turf/closed/mineral/clown,/area/ruin/unpowered/no_grav) -"L" = (/turf/closed/wall/shuttle{icon_state = "wall3"},/area/ruin/unpowered/no_grav) -"M" = (/turf/open/floor/plasteel/airless/circuit/gcircuit,/area/ruin/unpowered/no_grav) -"N" = (/turf/closed/wall/r_wall,/area/ruin/unpowered/no_grav) -"O" = (/turf/open/space,/area/ruin/unpowered/no_grav) -"P" = (/turf/open/floor/plasteel,/area/ruin/unpowered/no_grav) -"Q" = (/obj/machinery/door/airlock,/turf/open/floor/plasteel,/area/ruin/unpowered/no_grav) -"R" = (/turf/closed/wall,/area/ruin/unpowered/no_grav) +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/space, +/area/space) +"b" = ( +/turf/closed/mineral, +/area/ruin/unpowered/no_grav) +"c" = ( +/turf/closed/wall/r_wall, +/area/awaymission/listeningpost) +"d" = ( +/turf/open/floor/plating, +/area/awaymission/listeningpost) +"e" = ( +/obj/machinery/power/smes/magical{ + desc = "A high-capacity superconducting magnetic energy storage (SMES) unit."; + name = "power storage unit" + }, +/turf/open/floor/plating, +/area/awaymission/listeningpost) +"f" = ( +/obj/machinery/door/airlock, +/turf/open/floor/plasteel, +/area/awaymission/listeningpost) +"g" = ( +/turf/closed/wall, +/area/awaymission/listeningpost) +"h" = ( +/obj/structure/table, +/obj/item/weapon/paper/monitorkey, +/obj/item/device/radio/intercom{ + desc = "Talk through this. Evilly"; + freerange = 1; + frequency = 1213; + name = "Syndicate Intercom"; + pixel_x = 32; + subspace_transmission = 1; + syndie = 1 + }, +/obj/item/clothing/glasses/regular, +/turf/open/floor/plasteel, +/area/awaymission/listeningpost) +"i" = ( +/obj/structure/table, +/turf/open/floor/plasteel, +/area/awaymission/listeningpost) +"j" = ( +/turf/open/floor/plasteel, +/area/awaymission/listeningpost) +"k" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plating, +/area/awaymission/listeningpost) +"l" = ( +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"m" = ( +/obj/machinery/computer/message_monitor, +/turf/open/floor/plasteel, +/area/awaymission/listeningpost) +"n" = ( +/obj/structure/chair{ + dir = 4 + }, +/mob/living/simple_animal/hostile/syndicate{ + desc = "A weary looking syndicate operative." + }, +/turf/open/floor/plasteel, +/area/awaymission/listeningpost) +"o" = ( +/obj/structure/table, +/obj/item/weapon/paper{ + info = "Nothing of interest to report."; + name = "november report" + }, +/obj/item/weapon/pen, +/turf/open/floor/plasteel, +/area/awaymission/listeningpost) +"p" = ( +/obj/item/device/radio/intercom{ + desc = "Talk through this. Evilly"; + freerange = 1; + frequency = 1213; + name = "Syndicate Intercom"; + pixel_x = 32; + subspace_transmission = 1; + syndie = 1 + }, +/turf/open/floor/plasteel, +/area/awaymission/listeningpost) +"q" = ( +/obj/structure/rack, +/obj/item/clothing/suit/space/syndicate, +/obj/item/clothing/mask/gas, +/obj/item/clothing/head/helmet/space/syndicate, +/turf/open/floor/plasteel, +/area/awaymission/listeningpost) +"r" = ( +/obj/machinery/door/airlock, +/obj/structure/safe/floor, +/obj/item/weapon/paper{ + info = "I wonder how much longer they will accept my empty reports. They will cancel the case soon without results. When the pickup comes, I will tell them I have lost faith in our cause, and beg them to consider a diplomatic solution. How many nuclear teams have been dispatched with those nukes? I must try and prevent more from ever being sent. If they will not listen to reason, I will detonate the warehouse myself. Maybe some day in the immediate future, space will be peaceful, though I don't intend to live to see it. And that is why I write this down- it is my sacrifice that stabilised your worlds, traveller. Spare a thought for me, and please attempt to prevent nuclear proliferation, should it ever rear it's ugly head again. -Donk Co. Operative #451"; + name = "odd report" + }, +/obj/item/weapon/gun/ballistic/automatic/pistol, +/turf/open/floor/plasteel, +/area/awaymission/listeningpost) +"s" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/closed/mineral, +/area/ruin/unpowered/no_grav) +"t" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/mineral, +/area/ruin/unpowered/no_grav) +"u" = ( +/obj/structure/disposaloutlet{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/ruin/unpowered/no_grav) +"v" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/brown, +/turf/open/floor/plasteel, +/area/awaymission/listeningpost) +"w" = ( +/obj/structure/table, +/obj/item/device/flashlight/lamp, +/turf/open/floor/plasteel, +/area/awaymission/listeningpost) +"x" = ( +/obj/machinery/vending/snack, +/turf/open/floor/plasteel, +/area/awaymission/listeningpost) +"y" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/mineral, +/area/ruin/unpowered/no_grav) +"z" = ( +/obj/machinery/vending/cola, +/turf/open/floor/plasteel, +/area/awaymission/listeningpost) +"A" = ( +/obj/structure/closet, +/obj/item/clothing/gloves/boxing, +/turf/open/floor/plasteel, +/area/awaymission/listeningpost) +"B" = ( +/obj/structure/filingcabinet, +/obj/item/weapon/paper{ + info = "A good start to the operation: intercepted Nanotrasen military communications. A convoy is scheduled to transfer nuclear warheads to a new military base. This is as good a chance as any to get our hands on some heavy weaponry, I suggest we take it."; + name = "april report" + }, +/obj/item/weapon/paper{ + info = "Nothing of real interest to report this month. I have intercepted faint transmissions from what appears to be some sort of pirate radio station. They do not appear to be relevant to my assignment."; + name = "may report" + }, +/obj/item/weapon/paper{ + info = "Nanotrasen communications have been noticably less frequent recently. The pirate radio station I found last month has been transmitting pro-Nanotrasen propaganda. I will continue to monitor it."; + name = "june report" + }, +/obj/item/weapon/paper{ + info = "Nothing of interest to report."; + name = "july report" + }, +/obj/item/weapon/paper{ + info = "Nothing of interest to report."; + name = "august report" + }, +/obj/item/weapon/paper{ + info = "Nothing of interest to report."; + name = "september report" + }, +/obj/item/weapon/paper{ + info = "Nothing of interest to report."; + name = "october report" + }, +/obj/item/weapon/paper{ + info = "1 x Stechtkin pistol - $600
1 x silencer - $200
shipping charge - $4360
total - $5160"; + name = "receipt" + }, +/turf/open/floor/plasteel, +/area/awaymission/listeningpost) +"C" = ( +/obj/structure/table, +/obj/item/weapon/paper{ + info = "Mission Details: You have been assigned to a newly constructed listening post constructed within an asteroid in Nanotrasen space to monitor their plasma mining operations. Accurate intel is crucial to the success of our operatives onboard, do not fail us."; + name = "mission briefing" + }, +/turf/open/floor/plasteel, +/area/awaymission/listeningpost) +"D" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/awaymission/listeningpost) +"E" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/awaymission/listeningpost) +"F" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/closed/mineral, +/area/ruin/unpowered/no_grav) +"G" = ( +/obj/machinery/door/airlock{ + name = "Toilet" + }, +/turf/open/floor/plasteel, +/area/awaymission/listeningpost) +"H" = ( +/turf/open/floor/plasteel/freezer, +/area/awaymission/listeningpost) +"I" = ( +/obj/machinery/shower{ + icon_state = "shower"; + dir = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/awaymission/listeningpost) +"J" = ( +/obj/structure/toilet{ + icon_state = "toilet00"; + dir = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/awaymission/listeningpost) +"K" = ( +/turf/closed/mineral/clown, +/area/ruin/unpowered/no_grav) +"L" = ( +/turf/closed/wall/shuttle{ + icon_state = "wall3" + }, +/area/ruin/unpowered/no_grav) +"M" = ( +/turf/open/floor/plasteel/airless/circuit/gcircuit, +/area/ruin/unpowered/no_grav) +"N" = ( +/turf/closed/wall/r_wall, +/area/ruin/unpowered/no_grav) +"O" = ( +/turf/open/space, +/area/ruin/unpowered/no_grav) +"P" = ( +/turf/open/floor/plasteel, +/area/ruin/unpowered/no_grav) +"Q" = ( +/obj/machinery/door/airlock, +/turf/open/floor/plasteel, +/area/ruin/unpowered/no_grav) +"R" = ( +/turf/closed/wall, +/area/ruin/unpowered/no_grav) (1,1,1) = {" -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbaaaaaaaaaaaaabbbbbbbbbbaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbaaaaaabbbbbbbbbbbbbbbbaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbccccbbbbbaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbcdecbbbbbaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbNccfgccccaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbcchijjkddkaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalbbbbbbbbbbbbbbbbbbcmnojjkddkaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbOlbbbbbbbbbbbbbbbbbbccpijjccccaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbllbbbbbbbbbbbbbbbbbbbcjjjqcbbbbaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbblbbbbbbbbbbbbbbbbccccrgggcbsttuaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcvwgjjjxcbybbbbbbaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbNPPQPPPzNbybbbbbbba -aaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbNABRCPDEEtFbbbbbaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbNNNNNGRNbbbbbbbbbaa -aaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbNHINbbbbbbbbbaa -aaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbNHJNbbbbbbbbbba -aaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbNNNNbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbba -aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbba -aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaa -aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaa -aaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbblllbbbbbbbbbbbbbbbbbbbbaaaaaa -aaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbKKbbbbbbbllaaabbbbbbbbbbbbbbbbbaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbKbbKbbblllaaaabbbbbbbbbbbbbbaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbKbbbbbbbbbbbblaaaaabbbbbbbbbbbbbbaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbKKbbbbbbbbbbblaaaabbbbbbbbbbbbbaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbKKbbbbbbbbbbblaabbbbbbbbbbbbbbaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbKbbbbbbaabbbbbbbbbbbbbaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbabbbbbbbbbbbbaaaaaaaaaaaaaaaa -aaaaaabbbbaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaa -aaaaabbbbbbbaaaaaabbbbbbbbbbbbbbbbbbbbKKbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaa -aaaabbbbbbbbbbbaaabbbbbbbbbbbbbbbbKbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaa -aaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbKbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaa -aaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaa -aaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbKKbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaa -aabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbblllllbbbbaaaaaaaaaaaaaaaaaa -aabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbblaaaabbaaaaaaaaaaaaaaaaaaa -aabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbllbaaaaaaaaaaaaaaaaaaaaaa -aabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaa -abbbbbbbbbbbbbbbbbbbbbbbbbbbbbLLLLLLLbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaa -abbbbbbbbbbbbbbbbbbbbbbbbbbbbblMMMMMLbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaa -abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbMMMMMLbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaa -bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbMMMMLbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaa -bbbbbbbbbbbbbbbblbbbbbbbbbbbbbbMMMMMLbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaa -bbbbbbbbbbbbbbbbllbbbbbbbbbbbbblMMMMLbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaa -bbbbbbbbbbbbbbbaalbbbbbbbbbbbbllLLLLLbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaa -bbbbbbbbbbbbbaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaa -abbbbbbbbbbbaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaa -aaaaabbbbbbaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaabbbbbbbbbblbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaabbbbbbbbllbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaabbbbbbbbalbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaabbbbbbbaalbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaabbbbaaabbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(3,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(4,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(5,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(6,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(7,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(8,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(9,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(10,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(11,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(12,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(13,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(14,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(15,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(16,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(17,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +l +l +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(18,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +l +l +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(19,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(20,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(21,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(22,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +a +a +a +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +b +b +b +a +a +a +a +a +a +a +a +"} +(23,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +b +b +b +b +b +a +a +a +a +a +a +a +a +"} +(24,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +b +b +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +b +b +b +b +b +b +b +a +a +a +a +a +a +"} +(25,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +b +b +b +b +b +b +b +b +a +a +a +a +a +a +"} +(26,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +b +b +b +b +b +b +b +b +b +a +a +a +a +a +"} +(27,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +l +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +"} +(28,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +l +l +l +l +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +"} +(29,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +"} +(30,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +"} +(31,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +L +l +b +b +b +b +l +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +"} +(32,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +L +M +M +b +M +l +l +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +"} +(33,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +L +M +M +M +M +M +L +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +"} +(34,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +L +M +M +M +M +M +L +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +"} +(35,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +K +K +K +b +b +b +b +K +b +b +b +b +b +b +b +L +M +M +M +M +M +L +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +"} +(36,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +K +K +b +b +b +b +b +b +b +b +b +b +b +b +L +M +M +M +M +M +L +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +"} +(37,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +L +L +L +L +L +L +L +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +"} +(38,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +"} +(39,1,1) = {" +a +b +b +b +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +K +b +b +b +b +b +b +b +K +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +"} +(40,1,1) = {" +a +b +b +b +b +a +a +a +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +K +K +b +b +b +b +b +b +K +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +"} +(41,1,1) = {" +b +b +b +b +b +a +a +b +b +b +b +a +a +a +l +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +"} +(42,1,1) = {" +b +b +b +b +b +b +b +b +b +b +b +b +l +l +l +l +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +K +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +"} +(43,1,1) = {" +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +K +b +b +b +b +b +b +b +b +b +b +K +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +"} +(44,1,1) = {" +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +K +b +K +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +"} +(45,1,1) = {" +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +"} +(46,1,1) = {" +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +"} +(47,1,1) = {" +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +l +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +"} +(48,1,1) = {" +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +l +l +l +l +l +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +"} +(49,1,1) = {" +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +l +l +l +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +"} +(50,1,1) = {" +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +l +a +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +"} +(51,1,1) = {" +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +l +a +a +a +a +b +b +b +b +b +b +b +b +b +l +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +"} +(52,1,1) = {" +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +b +b +b +b +b +b +b +b +b +l +l +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(53,1,1) = {" +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +b +b +b +b +b +b +b +b +b +b +l +a +l +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(54,1,1) = {" +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +l +a +l +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(55,1,1) = {" +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +l +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(56,1,1) = {" +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(57,1,1) = {" +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(58,1,1) = {" +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(59,1,1) = {" +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +c +c +c +c +c +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(60,1,1) = {" +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +c +v +j +A +c +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(61,1,1) = {" +a +b +b +b +b +b +b +b +b +b +b +c +c +c +b +c +w +j +B +c +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(62,1,1) = {" +a +b +b +b +b +b +b +b +b +b +c +c +m +c +c +c +g +f +g +c +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(63,1,1) = {" +a +b +b +b +b +b +b +b +b +b +c +h +n +p +j +r +j +j +C +c +c +c +c +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(64,1,1) = {" +a +b +b +b +b +b +b +b +c +c +c +i +o +i +j +g +j +j +j +G +H +H +c +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(65,1,1) = {" +a +b +b +b +b +b +b +b +c +d +f +j +j +j +j +g +j +j +D +g +I +J +c +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(66,1,1) = {" +a +b +b +b +b +b +b +b +c +e +g +j +j +j +q +g +x +z +E +c +c +c +c +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(67,1,1) = {" +a +b +b +b +b +b +b +b +c +c +c +k +k +c +c +c +c +c +E +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(68,1,1) = {" +a +a +b +b +b +b +b +b +b +b +c +d +d +c +b +b +b +b +t +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(69,1,1) = {" +a +a +b +b +b +b +b +b +b +b +c +d +d +c +b +s +y +y +F +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(70,1,1) = {" +a +a +a +a +b +b +b +b +b +b +c +k +k +c +b +t +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(71,1,1) = {" +a +a +a +a +a +a +b +b +b +b +a +a +a +a +b +t +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(72,1,1) = {" +a +a +a +a +a +a +a +b +b +b +a +a +a +a +a +u +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(73,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(74,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(75,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +a +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(76,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +a +a +a +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(77,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a "} diff --git a/_maps/RandomRuins/SpaceRuins/mechtransport.dmm b/_maps/RandomRuins/SpaceRuins/mechtransport.dmm index f9d7df2278..21462e9364 100644 --- a/_maps/RandomRuins/SpaceRuins/mechtransport.dmm +++ b/_maps/RandomRuins/SpaceRuins/mechtransport.dmm @@ -1,68 +1,382 @@ -"a" = (/turf/open/space,/area/space) -"b" = (/turf/closed/wall/shuttle{icon_state = "swall_s6";dir = 2},/area/ruin/powered) -"c" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ruin/powered) -"d" = (/turf/closed/wall/shuttle{icon_state = "swall_s10";dir = 2},/area/ruin/powered) -"e" = (/turf/closed/wall/shuttle{icon_state = "swall3";dir = 2},/area/ruin/powered) -"f" = (/obj/structure/closet/crate/secure/loot,/obj/effect/decal/cleanable/cobweb,/turf/open/floor/plasteel/shuttle,/area/ruin/powered) -"g" = (/obj/structure/closet/crate/secure/loot,/turf/open/floor/plasteel/shuttle,/area/ruin/powered) -"h" = (/obj/structure/table,/obj/machinery/button/door{id = "mechaship1";name = "Mecha Cargo Ship Doors"},/turf/open/floor/plasteel/shuttle,/area/ruin/powered) -"i" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/shuttle,/area/ruin/powered) -"j" = (/obj/machinery/computer/shuttle,/turf/open/floor/plasteel/shuttle,/area/ruin/powered) -"k" = (/obj/effect/decal/cleanable/vomit/old,/turf/open/floor/plasteel/shuttle,/area/ruin/powered) -"l" = (/obj/effect/decal/remains/human,/turf/open/floor/plasteel/shuttle,/area/ruin/powered) -"m" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/shuttle,/area/ruin/powered) -"n" = (/obj/structure/chair/office/dark{dir = 1},/turf/open/floor/plasteel/shuttle,/area/ruin/powered) -"o" = (/turf/closed/wall/shuttle{icon_state = "swall13";dir = 2},/area/ruin/powered) -"p" = (/obj/machinery/door/airlock/hatch{name = "Cockpit";req_access_txt = "101"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/ruin/powered) -"q" = (/turf/closed/wall/shuttle{icon_state = "swall12";dir = 2},/area/ruin/powered) -"r" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/cobweb,/turf/open/floor/plasteel/airless/shuttle/white,/area/ruin/powered) -"s" = (/turf/open/floor/plasteel/airless/shuttle/white,/area/ruin/powered) -"t" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/airless/shuttle/white,/area/ruin/powered) -"u" = (/obj/effect/decal/cleanable/cobweb2,/turf/open/floor/plasteel/airless/shuttle/white,/area/ruin/powered) -"v" = (/obj/structure/mecha_wreckage/phazon,/turf/open/floor/plasteel/airless/shuttle/yellow,/area/ruin/powered) -"w" = (/turf/open/floor/plasteel/airless/shuttle/yellow,/area/ruin/powered) -"x" = (/obj/structure/mecha_wreckage/ripley/firefighter,/turf/open/floor/plasteel/airless/shuttle/yellow,/area/ruin/powered) -"y" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/airless/shuttle/yellow,/area/ruin/powered) -"z" = (/obj/structure/mecha_wreckage/ripley,/turf/open/floor/plasteel/airless/shuttle/yellow,/area/ruin/powered) -"A" = (/obj/mecha/working/ripley,/turf/open/floor/plasteel/airless/shuttle/yellow,/area/ruin/powered) -"B" = (/obj/effect/decal/cleanable/oil,/turf/open/floor/plasteel/airless/shuttle/yellow,/area/ruin/powered) -"C" = (/obj/effect/decal/cleanable/robot_debris/up,/turf/open/floor/plasteel/airless/shuttle/yellow,/area/ruin/powered) -"D" = (/obj/machinery/door/poddoor{id = "mechaship1";name = "Cargo Bay Door"},/turf/open/floor/plasteel/airless/shuttle/yellow,/area/ruin/powered) -"E" = (/obj/effect/decal/cleanable/robot_debris,/turf/open/floor/plasteel/airless/shuttle/yellow,/area/ruin/powered) -"F" = (/obj/structure/mecha_wreckage/durand,/turf/open/floor/plasteel/airless/shuttle/yellow,/area/ruin/powered) -"G" = (/obj/item/stack/tile/plasteel,/turf/open/floor/plating/airless,/area/ruin/powered) -"H" = (/turf/open/floor/plating/airless,/area/ruin/powered) -"I" = (/obj/structure/lattice,/turf/open/space,/area/space) -"J" = (/obj/machinery/computer/mecha,/turf/open/floor/plasteel/shuttle,/area/ruin/powered) -"K" = (/obj/effect/decal/cleanable/robot_debris/gib,/turf/open/floor/plating/airless,/area/ruin/powered) -"L" = (/obj/effect/decal/cleanable/robot_debris,/obj/item/stack/tile/plasteel,/turf/open/floor/plasteel/airless/shuttle/yellow,/area/ruin/powered) -"M" = (/turf/open/floor/plating{icon_state = "platingdmg1";initial_gas_mix = "TEMP=2.7"},/area/ruin/powered) -"N" = (/turf/open/floor/plating{icon_state = "platingdmg2";initial_gas_mix = "TEMP=2.7"},/area/ruin/powered) -"O" = (/obj/structure/mecha_wreckage/odysseus,/turf/open/floor/plasteel/airless/shuttle/yellow,/area/ruin/powered) -"P" = (/obj/item/stack/sheet/metal,/turf/open/space,/area/space) -"Q" = (/obj/structure/mecha_wreckage/gygax,/turf/open/floor/plasteel/airless/shuttle/white,/area/ruin/powered) -"R" = (/turf/open/floor/plating{icon_state = "platingdmg3";initial_gas_mix = "TEMP=2.7"},/area/space) -"S" = (/obj/item/stack/rods,/turf/open/floor/plating/airless,/area/ruin/powered) -"T" = (/turf/closed/wall/shuttle{icon_state = "swall14";dir = 2},/area/ruin/powered) -"U" = (/turf/closed/wall/shuttle{icon_state = "swall_s9";dir = 2},/area/ruin/powered) -"V" = (/obj/item/stack/rods,/turf/open/space,/area/space) -"W" = (/turf/closed/wall/shuttle{icon_state = "swall15";dir = 2},/area/ruin/powered) -"X" = (/obj/structure/shuttle/engine/propulsion,/turf/open/space,/area/ruin/powered) +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/space, +/area/space) +"b" = ( +/turf/closed/wall/mineral/titanium/overspace, +/area/ruin/powered/mechtransport) +"c" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/ruin/powered/mechtransport) +"d" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s10"; + dir = 2 + }, +/area/ruin/powered/mechtransport) +"e" = ( +/turf/closed/wall/mineral/titanium, +/area/ruin/powered/mechtransport) +"f" = ( +/obj/structure/closet/crate/secure/loot, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/mineral/titanium/blue, +/area/ruin/powered/mechtransport) +"g" = ( +/obj/structure/closet/crate/secure/loot, +/turf/open/floor/mineral/titanium/blue, +/area/ruin/powered/mechtransport) +"h" = ( +/obj/structure/table, +/obj/machinery/button/door{ + id = "mechaship1"; + name = "Mecha Cargo Ship Doors" + }, +/turf/open/floor/mineral/titanium/blue, +/area/ruin/powered/mechtransport) +"i" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/titanium/blue, +/area/ruin/powered/mechtransport) +"j" = ( +/obj/machinery/computer/shuttle, +/turf/open/floor/mineral/titanium/blue, +/area/ruin/powered/mechtransport) +"k" = ( +/obj/effect/decal/cleanable/vomit/old, +/turf/open/floor/mineral/titanium/blue, +/area/ruin/powered/mechtransport) +"l" = ( +/obj/effect/decal/remains/human, +/turf/open/floor/mineral/titanium/blue, +/area/ruin/powered/mechtransport) +"m" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/titanium/blue, +/area/ruin/powered/mechtransport) +"n" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/blue, +/area/ruin/powered/mechtransport) +"o" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall13"; + dir = 2 + }, +/area/ruin/powered/mechtransport) +"p" = ( +/obj/machinery/door/airlock/hatch{ + name = "Cockpit"; + req_access_txt = "101" + }, +/turf/open/floor/mineral/titanium, +/area/ruin/powered/mechtransport) +"q" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall12"; + dir = 2 + }, +/area/ruin/powered/mechtransport) +"r" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/mineral/titanium, +/area/ruin/powered/mechtransport) +"s" = ( +/turf/open/floor/mineral/titanium, +/area/ruin/powered/mechtransport) +"t" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/titanium, +/area/ruin/powered/mechtransport) +"u" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/mineral/titanium, +/area/ruin/powered/mechtransport) +"v" = ( +/obj/structure/mecha_wreckage/phazon, +/turf/open/floor/mineral/titanium/yellow, +/area/ruin/powered/mechtransport) +"w" = ( +/turf/open/floor/mineral/titanium/yellow, +/area/ruin/powered/mechtransport) +"x" = ( +/obj/structure/mecha_wreckage/ripley/firefighter, +/turf/open/floor/mineral/titanium/yellow, +/area/ruin/powered/mechtransport) +"y" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/titanium/yellow, +/area/ruin/powered/mechtransport) +"z" = ( +/obj/structure/mecha_wreckage/ripley, +/turf/open/floor/mineral/titanium/yellow, +/area/ruin/powered/mechtransport) +"A" = ( +/obj/mecha/working/ripley, +/turf/open/floor/mineral/titanium/yellow, +/area/ruin/powered/mechtransport) +"B" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/mineral/titanium/yellow, +/area/ruin/powered/mechtransport) +"C" = ( +/obj/effect/decal/cleanable/robot_debris/up, +/turf/open/floor/mineral/titanium/yellow, +/area/ruin/powered/mechtransport) +"D" = ( +/obj/machinery/door/poddoor{ + id = "mechaship1"; + name = "Cargo Bay Door" + }, +/turf/open/floor/mineral/titanium/yellow, +/area/ruin/powered/mechtransport) +"E" = ( +/obj/effect/decal/cleanable/robot_debris, +/turf/open/floor/mineral/titanium/yellow, +/area/ruin/powered/mechtransport) +"F" = ( +/obj/structure/mecha_wreckage/durand, +/turf/open/floor/mineral/titanium/yellow, +/area/ruin/powered/mechtransport) +"G" = ( +/obj/item/stack/tile/plasteel, +/turf/open/floor/plating/airless, +/area/ruin/powered/mechtransport) +"H" = ( +/turf/open/floor/plating/airless, +/area/ruin/powered/mechtransport) +"I" = ( +/obj/structure/lattice, +/turf/open/space, +/area/space) +"J" = ( +/obj/machinery/computer/mecha, +/turf/open/floor/mineral/titanium/blue, +/area/ruin/powered/mechtransport) +"K" = ( +/obj/effect/decal/cleanable/robot_debris/gib, +/turf/open/floor/plating/airless, +/area/ruin/powered/mechtransport) +"L" = ( +/obj/effect/decal/cleanable/robot_debris, +/obj/item/stack/tile/plasteel, +/turf/open/floor/mineral/titanium/yellow, +/area/ruin/powered/mechtransport) +"M" = ( +/turf/open/floor/plating/airless{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/ruin/powered/mechtransport) +"N" = ( +/turf/open/floor/plating/airless{ + icon_state = "platingdmg2" + }, +/area/ruin/powered/mechtransport) +"O" = ( +/obj/structure/mecha_wreckage/odysseus, +/turf/open/floor/mineral/titanium/yellow, +/area/ruin/powered/mechtransport) +"P" = ( +/obj/item/stack/sheet/metal, +/turf/open/space, +/area/space) +"Q" = ( +/obj/structure/mecha_wreckage/gygax, +/turf/open/floor/mineral/titanium, +/area/ruin/powered/mechtransport) +"R" = ( +/turf/open/floor/plating/airless{ + icon_state = "platingdmg3" + }, +/area/space) +"S" = ( +/obj/item/stack/rods, +/turf/open/floor/plating/airless, +/area/ruin/powered/mechtransport) +"T" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall14"; + dir = 2 + }, +/area/ruin/powered/mechtransport) +"U" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s9"; + dir = 2 + }, +/area/ruin/powered/mechtransport) +"V" = ( +/obj/item/stack/rods, +/turf/open/space, +/area/space) +"W" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall15"; + dir = 2 + }, +/area/ruin/powered/mechtransport) +"X" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/space, +/area/ruin/powered/mechtransport) (1,1,1) = {" -abcccccda -aefghijea -aeklmnJea -bopqqqqod -erststtue -evwwxyzAe -eBwCwzwyD -eEFGwwwwD -GHwFyHywD -ISHwKLwBD -MHNGOOwyD -PIIHsHQse -aRIPSHqTU -aVaaIabWd -aaaaaaXXX +a +a +a +b +e +e +e +e +G +I +M +P +a +a +a +"} +(2,1,1) = {" +b +e +e +e +r +v +B +E +H +S +H +I +R +V +a +"} +(3,1,1) = {" +c +f +k +p +s +w +w +F +w +H +N +I +I +a +a +"} +(4,1,1) = {" +c +g +l +e +t +w +C +G +F +w +G +H +P +a +a +"} +(5,1,1) = {" +c +h +m +e +s +x +w +w +y +K +O +s +S +I +a +"} +(6,1,1) = {" +c +i +n +e +t +y +z +w +H +L +O +H +H +a +a +"} +(7,1,1) = {" +c +j +J +e +t +z +w +w +y +w +w +Q +e +b +X +"} +(8,1,1) = {" +b +e +e +e +u +A +y +w +w +B +y +s +e +e +X +"} +(9,1,1) = {" +a +a +a +b +e +e +D +D +D +D +D +e +b +b +X "} diff --git a/_maps/RandomRuins/SpaceRuins/miracle.dmm b/_maps/RandomRuins/SpaceRuins/miracle.dmm new file mode 100644 index 0000000000..40a4e2b6ae --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/miracle.dmm @@ -0,0 +1,5 @@ +"a" = (/obj/item/weapon/storage/backpack/satchel/flat/secret{reward_all_of_these = list(/obj/item/weapon/gun/energy/pulse/prize)},/turf/open/floor/fakespace,/area/ruin/fakespace) + +(1,1,1) = {" +a +"} diff --git a/_maps/RandomRuins/SpaceRuins/oldAIsat.dmm b/_maps/RandomRuins/SpaceRuins/oldAIsat.dmm index 76aafafcc0..de102b742e 100644 --- a/_maps/RandomRuins/SpaceRuins/oldAIsat.dmm +++ b/_maps/RandomRuins/SpaceRuins/oldAIsat.dmm @@ -1,164 +1,160 @@ "aa" = (/turf/open/space,/area/space) "ab" = (/obj/structure/lattice,/turf/open/space,/area/space) -"ac" = (/turf/open/floor/plating/airless,/area/space) +"ac" = (/turf/open/floor/plating/airless,/area/tcommsat/chamber) "ad" = (/obj/structure/lattice,/obj/structure/grille/broken,/turf/open/space,/area/space) "ae" = (/obj/structure/lattice,/obj/structure/grille,/turf/open/space,/area/space) "af" = (/obj/structure/grille,/turf/open/floor/plating/airless,/area/space) -"ag" = (/turf/closed/wall/r_wall,/area/space) -"ah" = (/obj/structure/girder,/turf/open/floor/plating/airless,/area/space) -"ai" = (/turf/closed/wall/r_wall,/area/tcommsat/chamber) -"aj" = (/obj/structure/girder,/turf/open/floor/plating/airless,/area/tcommsat/chamber) -"ak" = (/turf/open/floor/plating/airless,/area/tcommsat/chamber) -"al" = (/obj/structure/window/reinforced{dir = 4},/turf/open/space,/area/space) -"am" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/tcommsat/chamber) -"an" = (/obj/machinery/power/apc{cell_type = 2500;dir = 1;name = "Worn-out APC";pixel_x = 1;pixel_y = 26},/obj/structure/cable{icon_state = "0-4";d2 = 4},/turf/open/floor/plating/airless,/area/tcommsat/chamber) -"ao" = (/obj/machinery/light/small{dir = 1},/obj/structure/cable{d1 = 2;d2 = 8;icon_state = "2-8"},/turf/open/floor/plating/airless,/area/tcommsat/chamber) -"ap" = (/obj/item/weapon/stock_parts/cell,/turf/open/floor/plating/airless,/area/tcommsat/chamber) -"aq" = (/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plating/airless,/area/tcommsat/chamber) -"ar" = (/obj/item/weapon/coin/clown,/turf/open/floor/engine,/area/tcommsat/chamber) -"as" = (/obj/structure/bed,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) -"at" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) -"au" = (/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/tcommsat/chamber) -"av" = (/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/tcommsat/chamber) -"aw" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 4},/turf/open/space,/area/space) -"ax" = (/obj/structure/cable{d1 = 1;d2 = 2;icon_state = "1-2";pixel_y = 0},/turf/open/floor/plating/airless,/area/tcommsat/chamber) -"ay" = (/obj/item/weapon/wrench,/turf/open/floor/plating/airless,/area/tcommsat/chamber) -"az" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plating/airless,/area/tcommsat/chamber) -"aA" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/turf/open/space,/area/space) -"aB" = (/obj/effect/spawner/lootdrop/crate_spawner,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) -"aC" = (/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) -"aD" = (/obj/structure/table,/obj/item/weapon/paper,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) -"aE" = (/obj/structure/table,/obj/item/weapon/paper_bin,/obj/item/weapon/pen/blue,/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) -"aF" = (/obj/structure/frame/computer,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) -"aG" = (/obj/structure/table,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) -"aH" = (/obj/item/weapon/reagent_containers/food/snacks/meat/slab/synthmeat{name = "Cuban Pete-Meat"},/turf/open/floor/engine,/area/tcommsat/chamber) -"aI" = (/obj/structure/grille,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) -"aJ" = (/obj/structure/grille/broken,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) -"aK" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/tcommsat/chamber) -"aL" = (/obj/structure/window/reinforced,/turf/open/floor/plating/airless,/area/tcommsat/chamber) -"aM" = (/obj/item/stack/cable_coil/cut{amount = 1},/turf/open/floor/plating/airless,/area/tcommsat/chamber) -"aN" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/closet,/turf/open/floor/plating/airless,/area/tcommsat/chamber) -"aO" = (/obj/structure/window/reinforced{dir = 8},/turf/open/space,/area/space) -"aP" = (/obj/item/weapon/folder/yellow,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) -"aQ" = (/obj/structure/bed,/obj/effect/decal/remains/human,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) -"aR" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/open/space,/area/space) -"aS" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/open/space,/area/space) -"aT" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating/airless,/area/tcommsat/chamber) -"aU" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/open/space,/area/space) -"aV" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/open/space,/area/space) -"aW" = (/obj/structure/window/reinforced,/turf/open/space,/area/space) -"aX" = (/obj/structure/sign/securearea,/turf/closed/wall/r_wall,/area/tcommsat/chamber) -"aY" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) -"aZ" = (/obj/item/weapon/paper/crumpled,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) -"ba" = (/obj/item/weapon/reagent_containers/food/snacks/meat/slab/synthmeat{name = "Cuban Pete-Meat"},/obj/item/stack/spacecash,/turf/open/floor/engine,/area/tcommsat/chamber) -"bb" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) -"bc" = (/obj/structure/table,/obj/item/weapon/storage/fancy/cigarettes,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) -"bd" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) -"be" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) -"bf" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) -"bg" = (/obj/structure/window/reinforced,/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) -"bh" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/item/weapon/electronics/airlock,/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) -"bi" = (/obj/structure/door_assembly/door_assembly_hatch,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) -"bj" = (/obj/item/weapon/cigbutt,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) -"bk" = (/obj/machinery/vending/snack,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) -"bl" = (/obj/machinery/vending/cola,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) -"bm" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) -"bn" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 4},/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) -"bo" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/closed/wall/r_wall,/area/tcommsat/chamber) -"bp" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/closed/wall/r_wall,/area/space) -"bq" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/grille/broken,/turf/open/floor/plating/airless,/area/space) -"br" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating/airless,/area/space) -"bs" = (/obj/structure/disposaloutlet{dir = 4},/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plating/airless,/area/space) -"bt" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) -"bu" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/open/space,/area/space) -"bv" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/open/space,/area/space) -"bw" = (/obj/structure/window/reinforced{dir = 1},/turf/open/space,/area/space) -"bx" = (/obj/structure/table,/obj/item/device/radio/off,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) -"by" = (/obj/structure/chair,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) -"bz" = (/obj/machinery/door/airlock/maintenance_hatch,/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) -"bA" = (/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) -"bB" = (/obj/machinery/door/airlock/hatch,/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) -"bC" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice,/turf/open/space,/area/space) -"bD" = (/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/shard{icon_state = "medium"},/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) -"bE" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/tcommsat/chamber) -"bF" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating/airless,/area/tcommsat/chamber) -"bG" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating/airless,/area/tcommsat/chamber) -"bH" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating/airless,/area/tcommsat/chamber) -"bI" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) -"bJ" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/turf/open/space,/area/space) -"bK" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/item/stack/rods,/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) -"bL" = (/obj/item/stack/rods,/obj/item/weapon/shard{icon_state = "medium"},/turf/open/floor/plating/airless,/area/tcommsat/chamber) -"bM" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) -"bN" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) -"bO" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating,/area/tcommsat/chamber) -"bP" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/open/floor/plating,/area/tcommsat/chamber) -"bQ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/open/floor/plating,/area/tcommsat/chamber) -"bR" = (/obj/effect/decal/cleanable/blood,/obj/item/weapon/scalpel{pixel_y = 12},/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) -"bS" = (/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/shard{icon_state = "medium"},/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) -"bT" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating,/area/tcommsat/chamber) -"bU" = (/obj/structure/rack,/obj/item/weapon/circuitboard/computer/teleporter,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) -"bV" = (/obj/item/device/radio/off,/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) -"bW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/open/floor/plating,/area/tcommsat/chamber) -"bX" = (/obj/effect/decal/cleanable/oil,/turf/open/floor/plating/airless,/area/tcommsat/chamber) -"bY" = (/obj/effect/decal/cleanable/blood,/obj/structure/chair,/obj/item/clothing/under/rank/centcom_officer,/obj/item/weapon/restraints/handcuffs,/obj/effect/decal/remains/human,/turf/open/floor/plating/airless,/area/tcommsat/chamber) -"bZ" = (/obj/structure/table,/obj/item/device/flashlight/lamp,/turf/open/floor/plating/airless,/area/tcommsat/chamber) -"ca" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) -"cb" = (/obj/structure/door_assembly/door_assembly_mhatch,/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) -"cc" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) -"cd" = (/obj/item/weapon/cigbutt,/turf/open/floor/plating/airless,/area/tcommsat/chamber) -"ce" = (/obj/effect/decal/cleanable/blood,/obj/item/device/assembly/signaler,/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) -"cf" = (/obj/structure/table,/obj/item/weapon/reagent_containers/syringe/lethal/choral,/obj/item/weapon/reagent_containers/syringe/lethal{pixel_y = 4},/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) -"cg" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating,/area/tcommsat/chamber) -"ch" = (/obj/item/weapon/storage/toolbox/syndicate,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) -"ci" = (/obj/structure/table,/obj/item/device/electropack,/turf/open/floor/plating/airless,/area/tcommsat/chamber) -"cj" = (/obj/structure/table,/obj/item/weapon/hemostat,/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) -"ck" = (/obj/structure/table,/obj/item/weapon/circular_saw,/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) -"cl" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/open/floor/plating,/area/tcommsat/chamber) -"cm" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/item/stack/rods,/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) -"cn" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/open/space,/area/space) -"co" = (/obj/structure/window/reinforced,/obj/structure/lattice,/turf/open/space,/area/space) -"cp" = (/turf/open/floor/plasteel/airless/warning{dir = 9},/area/tcommsat/chamber) -"cq" = (/turf/open/floor/plasteel/airless/warning/corner{dir = 4},/area/tcommsat/chamber) -"cr" = (/turf/open/floor/plasteel/airless/warning{dir = 1},/area/tcommsat/chamber) -"cs" = (/turf/open/floor/plasteel/airless/warning{dir = 5},/area/tcommsat/chamber) -"ct" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/open/space,/area/space) -"cu" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) -"cv" = (/obj/item/weapon/paper/crumpled,/turf/open/floor/plasteel/airless/warning{dir = 8},/area/tcommsat/chamber) -"cw" = (/obj/item/stack/rods,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) -"cx" = (/turf/open/floor/plasteel/airless/warning{dir = 4},/area/tcommsat/chamber) -"cy" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) -"cz" = (/turf/open/floor/plasteel/airless/warning{dir = 10},/area/tcommsat/chamber) -"cA" = (/obj/machinery/light/small,/obj/item/weapon/paper,/turf/open/floor/plasteel/airless/warning/corner{dir = 1},/area/tcommsat/chamber) -"cB" = (/turf/open/floor/plasteel/airless/warning{dir = 6},/area/tcommsat/chamber) -"cC" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/open/space,/area/space) -"cD" = (/obj/structure/lattice,/obj/item/stack/rods,/obj/item/weapon/shard{icon_state = "medium"},/turf/open/space,/area/space) -"cE" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/open/floor/plating/airless,/area/tcommsat/chamber) -"cF" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/open/floor/plating,/area/tcommsat/chamber) -"cG" = (/obj/structure/grille/broken,/turf/open/space,/area/space) -"cH" = (/obj/machinery/door/airlock/hatch,/turf/open/floor/plasteel,/area/tcommsat/chamber) -"cI" = (/turf/open/floor/plasteel/warning{dir = 9},/area/tcommsat/chamber) -"cJ" = (/turf/open/floor/plasteel/warning{dir = 1},/area/tcommsat/chamber) -"cK" = (/turf/open/floor/plasteel/warning{dir = 5},/area/tcommsat/chamber) -"cL" = (/turf/open/floor/plasteel/warning/corner{dir = 4},/area/tcommsat/chamber) -"cM" = (/turf/open/floor/plasteel,/area/tcommsat/chamber) -"cN" = (/turf/open/floor/plasteel/warning/corner{dir = 8},/area/tcommsat/chamber) -"cO" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel,/area/tcommsat/chamber) -"cP" = (/obj/structure/sign/vacuum,/turf/closed/wall/r_wall,/area/tcommsat/chamber) -"cQ" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/warning{dir = 9},/area/tcommsat/chamber) -"cR" = (/obj/item/weapon/paper/crumpled,/turf/open/floor/plasteel,/area/tcommsat/chamber) -"cS" = (/obj/structure/closet/malf/suits,/turf/open/floor/plasteel,/area/tcommsat/chamber) -"cT" = (/obj/structure/door_assembly/door_assembly_ext,/turf/open/floor/plating/airless,/area/tcommsat/chamber) -"cU" = (/obj/machinery/door/airlock/external,/turf/open/floor/plating,/area/tcommsat/chamber) -"cV" = (/turf/open/floor/plasteel/warning{dir = 8},/area/tcommsat/chamber) -"cW" = (/obj/item/weapon/crowbar,/turf/open/floor/plating/airless,/area/space) -"cX" = (/obj/structure/closet/crate,/obj/item/clothing/glasses/night,/turf/open/floor/plasteel/warning{dir = 10},/area/tcommsat/chamber) -"cY" = (/turf/open/floor/plasteel/warning/corner{dir = 1},/area/tcommsat/chamber) -"cZ" = (/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1;pixel_y = -1},/turf/open/floor/plasteel/warning{dir = 10},/area/tcommsat/chamber) -"da" = (/turf/open/floor/plasteel/warning{dir = 2},/area/tcommsat/chamber) -"db" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/warning{dir = 6},/area/tcommsat/chamber) -"dc" = (/obj/structure/frame/computer,/turf/open/floor/plating,/area/tcommsat/chamber) -"dd" = (/obj/machinery/teleport/station,/turf/open/floor/plating,/area/tcommsat/chamber) -"de" = (/obj/machinery/teleport/hub,/turf/open/floor/plating,/area/tcommsat/chamber) +"ag" = (/turf/closed/wall/r_wall,/area/tcommsat/chamber) +"ah" = (/obj/structure/girder,/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"ai" = (/obj/structure/window/reinforced{dir = 4},/turf/open/space,/area/space) +"aj" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"ak" = (/obj/machinery/power/apc{cell_type = 2500; dir = 1; name = "Worn-out APC"; pixel_x = 1; pixel_y = 26},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"al" = (/obj/machinery/light/small{dir = 1},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"am" = (/obj/item/weapon/stock_parts/cell,/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"an" = (/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"ao" = (/obj/item/weapon/coin/clown,/turf/open/floor/engine,/area/tcommsat/chamber) +"ap" = (/obj/structure/bed,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"aq" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"ar" = (/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/tcommsat/chamber) +"as" = (/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/tcommsat/chamber) +"at" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 4},/turf/open/space,/area/space) +"au" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"av" = (/obj/item/weapon/wrench,/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"aw" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"ax" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/turf/open/space,/area/space) +"ay" = (/obj/effect/spawner/lootdrop/crate_spawner,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"az" = (/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"aA" = (/obj/structure/table,/obj/item/weapon/paper,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"aB" = (/obj/structure/table,/obj/item/weapon/paper_bin,/obj/item/weapon/pen/blue,/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"aC" = (/obj/structure/frame/computer,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"aD" = (/obj/structure/table,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"aE" = (/obj/item/weapon/reagent_containers/food/snacks/meat/slab/synthmeat{name = "Cuban Pete-Meat"},/turf/open/floor/engine,/area/tcommsat/chamber) +"aF" = (/obj/structure/grille,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"aG" = (/obj/structure/grille/broken,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"aH" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"aI" = (/obj/structure/window/reinforced,/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"aJ" = (/obj/item/stack/cable_coil/cut{amount = 1},/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"aK" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/closet,/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"aL" = (/obj/structure/window/reinforced{dir = 8},/turf/open/space,/area/space) +"aM" = (/obj/item/weapon/folder/yellow,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"aN" = (/obj/structure/bed,/obj/effect/decal/remains/human,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"aO" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/open/space,/area/space) +"aP" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/open/space,/area/space) +"aQ" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"aR" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/open/space,/area/space) +"aS" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/open/space,/area/space) +"aT" = (/obj/structure/window/reinforced,/turf/open/space,/area/space) +"aU" = (/obj/structure/sign/securearea,/turf/closed/wall/r_wall,/area/tcommsat/chamber) +"aV" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"aW" = (/obj/item/weapon/paper/crumpled,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"aX" = (/obj/item/weapon/reagent_containers/food/snacks/meat/slab/synthmeat{name = "Cuban Pete-Meat"},/obj/item/stack/spacecash,/turf/open/floor/engine,/area/tcommsat/chamber) +"aY" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"aZ" = (/obj/structure/table,/obj/item/weapon/storage/fancy/cigarettes,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"ba" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"bb" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"bc" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"bd" = (/obj/structure/window/reinforced,/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"be" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/item/weapon/electronics/airlock,/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"bf" = (/obj/structure/door_assembly/door_assembly_hatch,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"bg" = (/obj/item/weapon/cigbutt,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"bh" = (/obj/machinery/vending/snack,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"bi" = (/obj/machinery/vending/cola,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"bj" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"bk" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 4},/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"bl" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/closed/wall/r_wall,/area/tcommsat/chamber) +"bm" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/grille/broken,/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"bn" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"bo" = (/obj/structure/disposaloutlet{dir = 4},/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"bp" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"bq" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/open/space,/area/space) +"br" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/open/space,/area/space) +"bs" = (/obj/structure/window/reinforced{dir = 1},/turf/open/space,/area/space) +"bt" = (/obj/structure/table,/obj/item/device/radio/off,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"bu" = (/obj/structure/chair,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"bv" = (/obj/machinery/door/airlock/maintenance_hatch,/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"bw" = (/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"bx" = (/obj/machinery/door/airlock/hatch,/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"by" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice,/turf/open/space,/area/space) +"bz" = (/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/shard{icon_state = "medium"},/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"bA" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"bB" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"bC" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"bD" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"bE" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"bF" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/turf/open/space,/area/space) +"bG" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/item/stack/rods,/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"bH" = (/obj/item/stack/rods,/obj/item/weapon/shard{icon_state = "medium"},/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"bI" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"bJ" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"bK" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating,/area/tcommsat/chamber) +"bL" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/open/floor/plating,/area/tcommsat/chamber) +"bM" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/open/floor/plating,/area/tcommsat/chamber) +"bN" = (/obj/effect/decal/cleanable/blood,/obj/item/weapon/scalpel{pixel_y = 12},/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"bO" = (/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/shard{icon_state = "medium"},/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"bP" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating,/area/tcommsat/chamber) +"bQ" = (/obj/structure/rack,/obj/item/weapon/circuitboard/computer/teleporter,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"bR" = (/obj/item/device/radio/off,/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"bS" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/open/floor/plating,/area/tcommsat/chamber) +"bT" = (/obj/effect/decal/cleanable/oil,/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"bU" = (/obj/effect/decal/cleanable/blood,/obj/structure/chair,/obj/item/clothing/under/rank/centcom_officer,/obj/item/weapon/restraints/handcuffs,/obj/effect/decal/remains/human,/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"bV" = (/obj/structure/table,/obj/item/device/flashlight/lamp,/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"bW" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"bX" = (/obj/structure/door_assembly/door_assembly_mhatch,/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"bY" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"bZ" = (/obj/item/weapon/cigbutt,/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"ca" = (/obj/effect/decal/cleanable/blood,/obj/item/device/assembly/signaler,/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"cb" = (/obj/structure/table,/obj/item/weapon/reagent_containers/syringe/lethal/choral,/obj/item/weapon/reagent_containers/syringe/lethal{pixel_y = 4},/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"cc" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating,/area/tcommsat/chamber) +"cd" = (/obj/item/weapon/storage/toolbox/syndicate,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"ce" = (/obj/structure/table,/obj/item/device/electropack,/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"cf" = (/obj/structure/table,/obj/item/weapon/hemostat,/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"cg" = (/obj/structure/table,/obj/item/weapon/circular_saw,/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"ch" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/open/floor/plating,/area/tcommsat/chamber) +"ci" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/item/stack/rods,/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"cj" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/open/space,/area/space) +"ck" = (/obj/structure/window/reinforced,/obj/structure/lattice,/turf/open/space,/area/space) +"cl" = (/turf/open/floor/plasteel/airless/warning{dir = 9},/area/tcommsat/chamber) +"cm" = (/turf/open/floor/plasteel/airless/warning/corner{dir = 4},/area/tcommsat/chamber) +"cn" = (/turf/open/floor/plasteel/airless/warning{dir = 1},/area/tcommsat/chamber) +"co" = (/turf/open/floor/plasteel/airless/warning{dir = 5},/area/tcommsat/chamber) +"cp" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/open/space,/area/space) +"cq" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"cr" = (/obj/item/weapon/paper/crumpled,/turf/open/floor/plasteel/airless/warning{dir = 8},/area/tcommsat/chamber) +"cs" = (/obj/item/stack/rods,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"ct" = (/turf/open/floor/plasteel/airless/warning{dir = 4},/area/tcommsat/chamber) +"cu" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"cv" = (/turf/open/floor/plasteel/airless/warning{dir = 10},/area/tcommsat/chamber) +"cw" = (/obj/machinery/light/small,/obj/item/weapon/paper,/turf/open/floor/plasteel/airless/warning/corner{dir = 1},/area/tcommsat/chamber) +"cx" = (/turf/open/floor/plasteel/airless/warning{dir = 6},/area/tcommsat/chamber) +"cy" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/open/space,/area/space) +"cz" = (/obj/structure/lattice,/obj/item/stack/rods,/obj/item/weapon/shard{icon_state = "medium"},/turf/open/space,/area/space) +"cA" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"cB" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/open/floor/plating,/area/tcommsat/chamber) +"cC" = (/obj/structure/grille/broken,/turf/open/space,/area/space) +"cD" = (/obj/machinery/door/airlock/hatch,/turf/open/floor/plasteel,/area/tcommsat/chamber) +"cE" = (/turf/open/floor/plasteel/warning{dir = 9},/area/tcommsat/chamber) +"cF" = (/turf/open/floor/plasteel/warning{dir = 1},/area/tcommsat/chamber) +"cG" = (/turf/open/floor/plasteel/warning{dir = 5},/area/tcommsat/chamber) +"cH" = (/turf/open/floor/plasteel/warning/corner{dir = 4},/area/tcommsat/chamber) +"cI" = (/turf/open/floor/plasteel,/area/tcommsat/chamber) +"cJ" = (/turf/open/floor/plasteel/warning/corner{dir = 8},/area/tcommsat/chamber) +"cK" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel,/area/tcommsat/chamber) +"cL" = (/obj/structure/sign/vacuum,/turf/closed/wall/r_wall,/area/tcommsat/chamber) +"cM" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/warning{dir = 9},/area/tcommsat/chamber) +"cN" = (/obj/item/weapon/paper/crumpled,/turf/open/floor/plasteel,/area/tcommsat/chamber) +"cO" = (/obj/structure/closet/malf/suits,/turf/open/floor/plasteel,/area/tcommsat/chamber) +"cP" = (/obj/structure/door_assembly/door_assembly_ext,/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"cQ" = (/obj/machinery/door/airlock/external,/turf/open/floor/plating,/area/tcommsat/chamber) +"cR" = (/turf/open/floor/plasteel/warning{dir = 8},/area/tcommsat/chamber) +"cS" = (/obj/item/weapon/crowbar,/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"cT" = (/obj/structure/closet/crate,/obj/item/clothing/glasses/night,/turf/open/floor/plasteel/warning{dir = 10},/area/tcommsat/chamber) +"cU" = (/turf/open/floor/plasteel/warning/corner{dir = 1},/area/tcommsat/chamber) +"cV" = (/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/turf/open/floor/plasteel/warning{dir = 10},/area/tcommsat/chamber) +"cW" = (/turf/open/floor/plasteel/warning{dir = 2},/area/tcommsat/chamber) +"cX" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/warning{dir = 6},/area/tcommsat/chamber) +"cY" = (/obj/structure/frame/computer,/turf/open/floor/plating,/area/tcommsat/chamber) +"cZ" = (/obj/machinery/teleport/station,/turf/open/floor/plating,/area/tcommsat/chamber) +"da" = (/obj/machinery/teleport/hub,/turf/open/floor/plating,/area/tcommsat/chamber) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -174,40 +170,40 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeababacacacacacacacababaeaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaeaaaaabaaaaacaaaaabaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeadadaaaaabadaeaeaeaeaeaeaeafaeadaeaeaeaeaeaeadabaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeagahahacahagagagagagagagagagagagagagagagagagagahacababaaabaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaadaeagagagagagaiaiaiaiaiagagagagagagagagagaiaiaiaiajakabababababaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaeagagagabaaalamanaoapaqaiaiaiaiaiaiaiaiaiaraiasatauavakakabacahadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaeagagabababawamakaxayazaAaiaBaCaDaEaFaGaiaHaiaIaJaCauavavakahagaeaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaeagagaaabaaalaKaLaMaLaNaOaiaCaPaCaCaCaFaiaHaiaQaIaCaCauauaiagagaeaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaadagagaaabaaaaaRaSaTaUaVaWaXaYaCaZaCaCaFaibaaiaIaIaCbbbcbdaiagagaeaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaeagagaaabaaalbebfbgbfbgbhbiaCaCbjaCaCaiaiaiaibkblaCbjbmbnbobpbpbqbrbsaaaaaaaaaa -aaaaaaaaaaaaaaaaababadaeaeaeagagaaabaaalbtbubvbwbwbwaiaCbxbyaCaCbzbAaiaiaiaibBaiaiaiaiagagaeaeadabaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaabaeagagabababbCbDaAaiaiaiaiaibEbFbGbGbHaibzaiaiaibCbIbJabababagagaeaeaeaaaaaaaaaa -aaaaaaababacacacacacababaaaeagagaaabaaalbKbJaiakakakakakbLakakakakbAbAakaibCbIaaaaabaaagagaeaeaaabaaaaaaaa -ababababababababacacacacaaaeagagaaabaaalbMbJaiakakbAbAakbAbAbAbAbAbAakakaibCbNaObObPbQaiagagaeabacababaaaa -aaaaaaaaaaababababacacacaaaeagagaaabaaaabtbJaiakbAbAbAbAbAakbAbRbAbAbAakaibCbSaObTaCaCbUaiagaeaaabaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaacaaaeagagaaabaaalbIaOaiakbAbAbAbAbAakbAbVbAbAbAakaibCbIaWbWaCaCaGaiagaeaaabaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaacacafagagabababbCbtaAaiakbAbAbAakbXbYakbZbAbAbAakaibCbMcacbaCaCccaiagafacabaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaacaaaeagagaaabaaalbtaOaiakbAbAakbAbAcdcecfbAbAbAakaialbIbwcgaCchaCaiagaeaaabaaaaaaaa -aaaaaaaaaaaaabababacacacaaaeagagaaabaaaabIaaaiakbAbAbAbAbAcicjckbAbAakakaiaabIaObTaCaCaGaiagaeaaacaaaaaaaa -aaaaaaaaaaabababacacacacaaaeagagaaabaaalbtaOaiakbAakbAbAbAbAbAbAbAbAbAakaialbIaOclbPbQaiagagaeabacabababab -aaaaaaabababababababababaaaeagagaaabaaaacmaOaiakakakakakakakakakakakakakaialbNaOaaabaaagagaeaeaaabababaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaeaeagagabababbCbSaAaiaiaiaiaiaiaiaiaiaiaiaiaiaiaibCbIaAabababagahaeaeaeaaaaaaaaaa -aaaaaaaaaaaaabababababadaeaeahagaaaaaaalbIcncoaWaaaicpcqaucrcqavcsaiaWaWaWctbIaOaaabaaahabaeaeaeadabababaa -aaaaaaaaaaaaaaaaaaaaaaaaaaadacahaaaaaaalcubgbfbfbfbBcvaCaCaCaCcwcxbBbfbgbfbfcyaOaaabaaacabadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaabacabaaaaaaaabwbwbvbwbwaiczcAauauaCaucBaibwbwbwcCbwaaaaabaaabaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaababaaaaaaaaaaaaabaaaiaiaiaiaiavajaiaiaiaiaaaaaaaaaaaaabaaaaaaaaabaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaababababcDcEauaCaiaCauaCaiaCaFcFababababaaaaaaaaaaaaaaabcGaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaiaCaCaCaCaCaCataCaCaiagaaaaaaaaaaaaaaaaaaabacaeaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacahagagagagagaiaiaiaiaicHaiaiaiaiaiagagahacababaaaaaaaaacahaeaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacahagagagagagagagagagaicIcJcKaiagagagacabababaaaaaaabababahagadaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaeadaeaeaeaeaeaeaeaiaicLcMcNaiaiaeaeaeadaaaaaaaaaaaaabagagagaeaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadacacaeaeaiaicOcMcMcMcMaiaiaeaeaaaaaaaaabacacahagagaeaeaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacaiaicPcQcMcMcMcMcRcSaiaeadaaaaaaaaaaababacagaeaeaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaccTakcUcVcMcMcMcMcMcMaiaeaeaaaaaaaaaaabadaeaeaeaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWacacaiaicPcXcYcMcMcMcMcSaiaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacaeaeaiaicZdadadadbaiaiaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabadadaeaeaeaiaidcdddeaiaiaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaeaeaeaiaiaiaiaiaeaeaeadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaadaeagagagagagagagagagagagagagagagagagagagagagagagahacabababababaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaeagagagabaaaiajakalamanagagagagagagagagagaoagapaqarasacacabacahadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaeagagabababatajacauavawaxagayazaAaBaCaDagaEagaFaGazarasasacahagaeaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaeagagaaabaaaiaHaIaJaIaKaLagazaMazazazaCagaEagaNaFazazararagagagaeaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaadagagaaabaaaaaOaPaQaRaSaTaUaVazaWazazaCagaXagaFaFazaYaZbaagagagaeaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaeagagaaabaaaibbbcbdbcbdbebfazazbgazazagagagagbhbiazbgbjbkblblblbmbnboaaaaaaaaaa +aaaaaaaaaaaaaaaaababadaeaeaeagagaaabaaaibpbqbrbsbsbsagazbtbuazazbvbwagagagagbxagagagagagagaeaeadabaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaabaeagagabababbybzaxagagagagagbAbBbCbCbDagbvagagagbybEbFabababagagaeaeaeaaaaaaaaaa +aaaaaaababacacacacacababaaaeagagaaabaaaibGbFagacacacacacbHacacacacbwbwacagbybEaaaaabaaagagaeaeaaabaaaaaaaa +ababababababababacacacacaaaeagagaaabaaaibIbFagacacbwbwacbwbwbwbwbwbwacacagbybJaLbKbLbMagagagaeabacababaaaa +aaaaaaaaaaababababacacacaaaeagagaaabaaaabpbFagacbwbwbwbwbwacbwbNbwbwbwacagbybOaLbPazazbQagagaeaaabaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaacaaaeagagaaabaaaibEaLagacbwbwbwbwbwacbwbRbwbwbwacagbybEaTbSazazaDagagaeaaabaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaacacafagagabababbybpaxagacbwbwbwacbTbUacbVbwbwbwacagbybIbWbXazazbYagagafacabaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaacaaaeagagaaabaaaibpaLagacbwbwacbwbwbZcacbbwbwbwacagaibEbsccazcdazagagaeaaabaaaaaaaa +aaaaaaaaaaaaabababacacacaaaeagagaaabaaaabEaaagacbwbwbwbwbwcecfcgbwbwacacagaabEaLbPazazaDagagaeaaacaaaaaaaa +aaaaaaaaaaabababacacacacaaaeagagaaabaaaibpaLagacbwacbwbwbwbwbwbwbwbwbwacagaibEaLchbLbMagagagaeabacabababab +aaaaaaabababababababababaaaeagagaaabaaaaciaLagacacacacacacacacacacacacacagaibJaLaaabaaagagaeaeaaabababaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaeaeagagabababbybOaxagagagagagagagagagagagagagagagbybEaxabababagahaeaeaeaaaaaaaaaa +aaaaaaaaaaaaabababababadaeaeahagaaaaaaaibEcjckaTaaagclcmarcncmascoagaTaTaTcpbEaLaaabaaahabaeaeaeadabababaa +aaaaaaaaaaaaaaaaaaaaaaaaaaadacahaaaaaaaicqbdbcbcbcbxcrazazazazcsctbxbcbdbcbccuaLaaabaaacabadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaabacabaaaaaaaabsbsbrbsbsagcvcwararazarcxagbsbsbscybsaaaaabaaabaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaababaaaaaaaaaaaaabaaagagagagagasahagagagagaaaaaaaaaaaaabaaaaaaaaabaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaababababczcAarazagazarazagazaCcBababababaaaaaaaaaaaaaaabcCaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagazazazazazazaqazazagagaaaaaaaaaaaaaaaaaaabacaeaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacahagagagagagagagagagagcDagagagagagagagahacababaaaaaaaaacahaeaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacahagagagagagagagagagagcEcFcGagagagagacabababaaaaaaabababahagadaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaeadaeaeaeaeaeaeaeagagcHcIcJagagaeaeaeadaaaaaaaaaaaaabagagagaeaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadacacaeaeagagcKcIcIcIcIagagaeaeaaaaaaaaabacacahagagaeaeaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacagagcLcMcIcIcIcIcNcOagaeadaaaaaaaaaaababacagaeaeaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaccPaccQcRcIcIcIcIcIcIagaeaeaaaaaaaaaaabadaeaeaeaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSacacagagcLcTcUcIcIcIcIcOagaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacaeaeagagcVcWcWcWcXagagaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabadadaeaeaeagagcYcZdaagagaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaeaeaeagagagagagaeaeaeadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaaaeaeaeafaeaeaeaaaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaabaaaaacaaaaabaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaabacabacacacabababaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/_maps/RandomRuins/SpaceRuins/oldteleporter.dmm b/_maps/RandomRuins/SpaceRuins/oldteleporter.dmm index 4de656779c..94c5a7c026 100644 --- a/_maps/RandomRuins/SpaceRuins/oldteleporter.dmm +++ b/_maps/RandomRuins/SpaceRuins/oldteleporter.dmm @@ -1,17 +1,17 @@ "a" = (/turf/open/space,/area/space) -"b" = (/obj/structure/lattice,/turf/open/space,/area/ruin/unpowered/no_grav) -"c" = (/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) -"d" = (/turf/closed/wall/r_wall,/area/ruin/unpowered/no_grav) -"e" = (/turf/open/floor/plasteel/airless,/area/ruin/unpowered/no_grav) -"f" = (/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/ruin/unpowered/no_grav) -"g" = (/obj/machinery/light_construct/small{dir = 1},/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/ruin/unpowered/no_grav) -"h" = (/obj/machinery/computer/teleporter,/turf/open/floor/plasteel/airless,/area/ruin/unpowered/no_grav) -"i" = (/obj/machinery/teleport/station,/turf/open/floor/plasteel/airless,/area/ruin/unpowered/no_grav) -"j" = (/obj/machinery/teleport/hub,/turf/open/floor/plasteel/airless,/area/ruin/unpowered/no_grav) -"k" = (/obj/machinery/light_construct/small{dir = 4},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) -"l" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell{charge = 100;maxcharge = 15000},/turf/open/floor/plasteel/airless,/area/ruin/unpowered/no_grav) -"m" = (/turf/open/floor/plasteel/airless{icon_state = "damaged4"},/area/ruin/unpowered/no_grav) -"n" = (/obj/machinery/power/apc{dir = 0;name = "Worn-out APC";pixel_y = -24},/turf/open/floor/plasteel/airless,/area/ruin/unpowered/no_grav) +"b" = (/obj/structure/lattice,/turf/open/space,/area/ruin/oldteleporter) +"c" = (/turf/open/floor/plating/airless,/area/ruin/oldteleporter) +"d" = (/turf/closed/wall/r_wall,/area/ruin/oldteleporter) +"e" = (/turf/open/floor/plasteel/airless,/area/ruin/oldteleporter) +"f" = (/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/ruin/oldteleporter) +"g" = (/obj/structure/light_construct/small{dir = 1},/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/ruin/oldteleporter) +"h" = (/obj/machinery/computer/teleporter,/turf/open/floor/plasteel/airless,/area/ruin/oldteleporter) +"i" = (/obj/machinery/teleport/station,/turf/open/floor/plasteel/airless,/area/ruin/oldteleporter) +"j" = (/obj/machinery/teleport/hub,/turf/open/floor/plasteel/airless,/area/ruin/oldteleporter) +"k" = (/obj/structure/light_construct/small{dir = 4},/turf/open/floor/plating/airless,/area/ruin/oldteleporter) +"l" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell{charge = 100;maxcharge = 15000},/turf/open/floor/plasteel/airless,/area/ruin/oldteleporter) +"m" = (/turf/open/floor/plasteel/airless{icon_state = "damaged4"},/area/ruin/oldteleporter) +"n" = (/obj/machinery/power/apc{dir = 0;name = "Worn-out APC";pixel_y = -24},/turf/open/floor/plasteel/airless,/area/ruin/oldteleporter) (1,1,1) = {" aaaaaaaaaababbbbbaaba diff --git a/_maps/RandomRuins/SpaceRuins/onehalf.dmm b/_maps/RandomRuins/SpaceRuins/onehalf.dmm index e4801445dc..6d40d62000 100644 --- a/_maps/RandomRuins/SpaceRuins/onehalf.dmm +++ b/_maps/RandomRuins/SpaceRuins/onehalf.dmm @@ -16,10 +16,10 @@ "ap" = (/turf/open/floor/plasteel,/area/ruin/onehalf/dorms_med) "aq" = (/obj/machinery/door/airlock/external,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/ruin/onehalf/drone_bay) "ar" = (/turf/closed/wall,/area/ruin/onehalf/drone_bay) -"as" = (/obj/machinery/door/poddoor{id = "onehalf_drone1ext"; name = "mining drone bay blast door"},/turf/open/floor/plating/airless,/area/ruin/onehalf/drone_bay) -"at" = (/obj/machinery/door/poddoor{id = "onehalf_drone2ext"; name = "mining drone bay blast door"},/turf/open/floor/plating/airless,/area/ruin/onehalf/drone_bay) -"au" = (/obj/machinery/door/poddoor/preopen{id = "onehalf_drone3ext"; name = "mining drone bay blast door"},/turf/open/floor/plating/airless,/area/ruin/onehalf/drone_bay) -"av" = (/obj/machinery/door/poddoor{id = "onehalf_drone4ext"; name = "mining drone bay blast door"},/turf/open/floor/plating/airless,/area/ruin/onehalf/drone_bay) +"as" = (/obj/machinery/door/poddoor{id = "onehalf_drone1ext"; name = "mining drone bay blast door"},/turf/open/floor/plating/airless{dir = 1; icon_state = "warnplate"},/area/ruin/onehalf/drone_bay) +"at" = (/obj/machinery/door/poddoor{id = "onehalf_drone2ext"; name = "mining drone bay blast door"},/turf/open/floor/plating/airless{dir = 1; icon_state = "warnplate"},/area/ruin/onehalf/drone_bay) +"au" = (/obj/machinery/door/poddoor/preopen{id = "onehalf_drone3ext"; name = "mining drone bay blast door"},/turf/open/floor/plating/airless{dir = 1; icon_state = "warnplate"},/area/ruin/onehalf/drone_bay) +"av" = (/obj/machinery/door/poddoor{id = "onehalf_drone4ext"; name = "mining drone bay blast door"},/turf/open/floor/plating/airless{dir = 1; icon_state = "warnplate"},/area/ruin/onehalf/drone_bay) "aw" = (/obj/structure/lattice,/turf/open/space,/area/space) "ax" = (/obj/structure/lattice,/turf/open/space,/area/ruin/onehalf/hallway) "ay" = (/obj/structure/table_frame,/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/ruin/onehalf/hallway) @@ -30,13 +30,13 @@ "aD" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light/small{dir = 8},/turf/open/floor/plating,/area/ruin/onehalf/drone_bay) "aE" = (/obj/structure/disposalpipe/trunk,/turf/open/floor/plating/airless,/area/ruin/onehalf/drone_bay) "aF" = (/obj/structure/disposalpipe/trunk,/obj/item/weapon/ore/diamond,/turf/open/floor/plating/airless,/area/ruin/onehalf/drone_bay) -"aG" = (/turf/open/floor/plating/airless,/area/ruin/onehalf/drone_bay) +"aG" = (/turf/open/floor/plating/airless{dir = 1; icon_state = "warnplate"},/area/ruin/onehalf/drone_bay) "aH" = (/obj/item/stack/rods,/turf/open/space,/area/ruin/onehalf/hallway) "aI" = (/turf/open/floor/plating/airless{icon_state = "platingdmg3"},/area/ruin/onehalf/hallway) "aJ" = (/turf/open/floor/plasteel/airless{icon_state = "damaged5"},/area/ruin/onehalf/hallway) "aK" = (/obj/machinery/iv_drip,/turf/open/floor/plasteel/white,/area/ruin/onehalf/dorms_med) "aL" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/white,/area/ruin/onehalf/dorms_med) -"aM" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/closet/crate/medical,/obj/item/clothing/tie/stethoscope,/obj/item/device/healthanalyzer,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/machinery/power/apc{dir = 4; name = "Crew Quarters APC"; pixel_x = 26; pixel_y = 0},/turf/open/floor/plasteel/white,/area/ruin/onehalf/dorms_med) +"aM" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/closet/crate/medical,/obj/item/clothing/neck/stethoscope,/obj/item/device/healthanalyzer,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/machinery/power/apc{dir = 4; name = "Crew Quarters APC"; pixel_x = 26; pixel_y = 0},/turf/open/floor/plasteel/white,/area/ruin/onehalf/dorms_med) "aN" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/poddoor{id = "onehalf_drone1int"; name = "mining drone bay blast door"},/turf/open/floor/plating,/area/ruin/onehalf/drone_bay) "aO" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/poddoor{id = "onehalf_drone2int"; name = "mining drone bay blast door"},/turf/open/floor/plating,/area/ruin/onehalf/drone_bay) "aP" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/poddoor{id = "onehalf_drone3int"; name = "mining drone bay blast door"},/turf/open/floor/plating,/area/ruin/onehalf/drone_bay) @@ -47,79 +47,79 @@ "aU" = (/turf/open/floor/plasteel/airless{icon_state = "damaged1"},/area/ruin/onehalf/hallway) "aV" = (/obj/machinery/door/airlock/glass_medical,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/white,/area/ruin/onehalf/dorms_med) "aW" = (/obj/machinery/door/airlock,/turf/open/floor/plasteel,/area/ruin/onehalf/dorms_med) -"aX" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/ruin/onehalf/drone_bay) -"aY" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{cell_type = 2500; dir = 1; name = "Mining Drone Bay APC"; pixel_y = 24},/turf/open/floor/plasteel,/area/ruin/onehalf/drone_bay) -"aZ" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/ruin/onehalf/drone_bay) -"ba" = (/obj/machinery/button/door{id = "onehalf_drone2int"; name = "Drone 2 Internal Hatch Override"; pixel_x = 8; pixel_y = 27},/obj/machinery/button/door{id = "onehalf_drone2ext"; name = "Drone 2 External Hatch Override"; pixel_x = 8; pixel_y = 37},/obj/machinery/button/door{id = "onehalf_drone1int"; name = "Drone 1 Internal Hatch Override"; pixel_x = -8; pixel_y = 27},/obj/machinery/button/door{id = "onehalf_drone1ext"; name = "Drone 1 External Hatch Override"; pixel_x = -8; pixel_y = 37},/turf/open/floor/plasteel,/area/ruin/onehalf/drone_bay) -"bb" = (/turf/open/floor/plasteel,/area/ruin/onehalf/drone_bay) -"bc" = (/obj/machinery/button/door{id = "onehalf_drone3int"; name = "Drone 3 Internal Hatch Override"; pixel_x = -8; pixel_y = 27},/obj/machinery/button/door{id = "onehalf_drone3ext"; name = "Drone 3 External Hatch Override"; pixel_x = -8; pixel_y = 37},/obj/machinery/button/door{id = "onehalf_drone4ext"; name = "Drone 4 External Hatch Override"; pixel_x = 8; pixel_y = 37},/obj/machinery/button/door{id = "onehalf_drone4int"; name = "Drone 4 Internal Hatch Override"; pixel_x = 8; pixel_y = 27},/turf/open/floor/plasteel,/area/ruin/onehalf/drone_bay) -"bd" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ruin/onehalf/drone_bay) -"be" = (/obj/item/stack/sheet/metal,/turf/open/floor/plating/airless{broken = 1; icon_state = "platingdmg1"},/area/ruin/onehalf/hallway) -"bf" = (/obj/structure/disposalpipe/broken{tag = "icon-pipe-b (EAST)"; icon_state = "pipe-b"; dir = 4},/obj/item/stack/cable_coil/cut{amount = 2; dir = 2; icon_state = "coil_red2"},/turf/open/floor/plating/airless{broken = 1; icon_state = "platingdmg2"},/area/ruin/onehalf/hallway) -"bg" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/ruin/onehalf/hallway) -"bh" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/airless{icon_state = "damaged5"},/area/ruin/onehalf/hallway) -"bi" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/airless,/area/ruin/onehalf/hallway) -"bj" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j1"; dir = 4},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/airless{icon_state = "damaged1"},/area/ruin/onehalf/hallway) -"bk" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/airless,/area/ruin/onehalf/hallway) -"bl" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j1"; dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/airless,/area/ruin/onehalf/hallway) -"bm" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/glass,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/ruin/onehalf/drone_bay) -"bn" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/ruin/onehalf/drone_bay) -"bo" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/ruin/onehalf/drone_bay) -"bp" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/ruin/onehalf/drone_bay) -"bq" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/maintenance_hatch,/turf/open/floor/plasteel,/area/ruin/onehalf/drone_bay) -"br" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel{icon_state = "floorgrime"},/area/ruin/onehalf/drone_bay) -"bs" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-y"; dir = 1},/turf/open/floor/plasteel{icon_state = "floorgrime"},/area/ruin/onehalf/drone_bay) -"bt" = (/obj/structure/disposalpipe/trunk{dir = 8},/obj/machinery/disposal/bin,/turf/open/floor/plating,/area/ruin/onehalf/drone_bay) -"bu" = (/obj/structure/disposalpipe/broken{tag = "icon-pipe-b (EAST)"; icon_state = "pipe-b"; dir = 4},/turf/open/floor/plating/airless{icon_state = "platingdmg3"},/area/ruin/onehalf/hallway) -"bv" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/ruin/onehalf/hallway) -"bw" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/airless,/area/ruin/onehalf/hallway) -"bx" = (/obj/structure/disposalpipe/segment,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/airless{icon_state = "damaged1"},/area/ruin/onehalf/hallway) -"by" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable,/obj/machinery/power/apc{dir = 2; name = "Hallway APC"; pixel_y = -24},/turf/open/floor/plasteel/airless,/area/ruin/onehalf/hallway) -"bz" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/airless{icon_state = "damaged4"},/area/ruin/onehalf/hallway) -"bA" = (/obj/structure/disposalpipe/segment,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/airless,/area/ruin/onehalf/hallway) -"bB" = (/obj/machinery/door/airlock/glass,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/ruin/onehalf/drone_bay) -"bC" = (/obj/structure/disposalpipe/junction{dir = 8; icon_state = "pipe-j1"},/turf/open/floor/plasteel,/area/ruin/onehalf/drone_bay) -"bD" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light,/turf/open/floor/plasteel,/area/ruin/onehalf/drone_bay) -"bE" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/ruin/onehalf/drone_bay) -"bF" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/plasteel{icon_state = "floorgrime"},/area/ruin/onehalf/drone_bay) -"bG" = (/turf/open/floor/plasteel{icon_state = "floorgrime"},/area/ruin/onehalf/drone_bay) -"bH" = (/obj/structure/chair/office{tag = "icon-chair (EAST)"; icon_state = "chair"; dir = 4},/turf/open/floor/plasteel{icon_state = "floorgrime"},/area/ruin/onehalf/drone_bay) -"bI" = (/obj/structure/girder,/turf/open/floor/plating/airless,/area/ruin/onehalf/hallway) -"bJ" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/airless{icon_state = "damaged4"},/area/ruin/onehalf/hallway) -"bK" = (/obj/machinery/vending/coffee,/turf/open/floor/plasteel/airless{icon_state = "damaged4"},/area/ruin/onehalf/hallway) -"bL" = (/obj/machinery/vending/snack,/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/ruin/onehalf/hallway) -"bM" = (/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/disposal/bin,/turf/open/floor/plasteel/airless,/area/ruin/onehalf/hallway) -"bN" = (/obj/structure/girder/reinforced,/obj/item/stack/sheet/plasteel,/turf/open/floor/plating/airless,/area/ruin/onehalf/hallway) -"bO" = (/obj/structure/girder/reinforced,/turf/open/floor/plating/airless,/area/ruin/onehalf/hallway) -"bP" = (/turf/closed/wall/r_wall,/area/ruin/onehalf/hallway) -"bQ" = (/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/ruin/onehalf/hallway) -"bR" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/airless,/area/ruin/onehalf/hallway) -"bS" = (/turf/closed/wall/r_wall,/area/ruin/onehalf/bridge) -"bT" = (/obj/item/stack/sheet/metal,/turf/open/space,/area/space) -"bU" = (/turf/open/floor/plating/airless{broken = 1; icon_state = "platingdmg1"},/area/ruin/onehalf/hallway) -"bV" = (/obj/structure/disposalpipe/segment,/obj/item/stack/rods,/turf/open/floor/plasteel/airless{icon_state = "damaged5"},/area/ruin/onehalf/hallway) -"bW" = (/obj/structure/grille,/turf/open/floor/plating/airless,/area/ruin/onehalf/hallway) -"bX" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "bridge_onehalf"; name = "bridge blast door"},/turf/open/floor/plating,/area/ruin/onehalf/bridge) -"bY" = (/obj/structure/table/reinforced,/obj/item/device/flashlight/lamp,/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) -"bZ" = (/obj/structure/table/reinforced,/obj/item/weapon/paper,/obj/item/weapon/pen,/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) -"ca" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) -"cb" = (/obj/machinery/light{dir = 1},/obj/structure/frame/computer,/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) -"cc" = (/obj/structure/frame/computer,/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) -"cd" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{cell_type = 2500; dir = 1; name = "Bridge APC"; pixel_y = 24},/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) -"ce" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/table/reinforced,/obj/item/stack/spacecash/c500{pixel_y = 8},/obj/item/stack/spacecash/c1000,/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) -"cf" = (/obj/structure/girder/reinforced,/turf/open/floor/plating/airless,/area/space) -"cg" = (/obj/structure/disposalpipe/junction{tag = "icon-pipe-j1 (NORTH)"; icon_state = "pipe-j1"; dir = 1},/obj/item/weapon/shard,/turf/open/floor/plating/airless{broken = 1; icon_state = "platingdmg2"},/area/ruin/onehalf/hallway) -"ch" = (/obj/structure/lattice,/obj/structure/disposalpipe/broken{tag = "icon-pipe-b (EAST)"; icon_state = "pipe-b"; dir = 4},/obj/structure/disposalpipe/broken{tag = "icon-pipe-b (WEST)"; icon_state = "pipe-b"; dir = 8},/obj/item/stack/rods,/turf/open/space,/area/ruin/onehalf/hallway) -"ci" = (/obj/structure/lattice,/obj/structure/disposalpipe/segment{dir = 4},/obj/item/weapon/shard{icon_state = "small"},/turf/open/space,/area/space) -"cj" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/poddoor/preopen{id = "bridge_onehalf"; name = "bridge blast door"},/turf/open/floor/plating,/area/ruin/onehalf/bridge) -"ck" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{amount = 12},/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) -"cl" = (/obj/structure/chair/office{dir = 8},/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) -"cm" = (/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) -"cn" = (/obj/structure/chair/office{tag = "icon-chair (NORTH)"; icon_state = "chair"; dir = 1},/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) -"co" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/table/reinforced,/obj/item/weapon/lighter,/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) -"cp" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "bridge_onehalf"; name = "bridge blast door"},/turf/open/floor/plating,/area/ruin/onehalf/bridge) -"cq" = (/obj/item/stack/rods,/turf/open/space,/area/space) -"cr" = (/turf/open/floor/plating/airless,/area/space) +"aX" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/warning{dir = 9},/area/ruin/onehalf/drone_bay) +"aY" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{cell_type = 2500; dir = 1; name = "Mining Drone Bay APC"; pixel_y = 24},/turf/open/floor/plasteel/warning{dir = 1},/area/ruin/onehalf/drone_bay) +"aZ" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/warning{dir = 1},/area/ruin/onehalf/drone_bay) +"ba" = (/obj/machinery/button/door{id = "onehalf_drone2int"; name = "Drone 2 Internal Hatch Override"; pixel_x = 8; pixel_y = 27},/obj/machinery/button/door{id = "onehalf_drone2ext"; name = "Drone 2 External Hatch Override"; pixel_x = 8; pixel_y = 37},/obj/machinery/button/door{id = "onehalf_drone1int"; name = "Drone 1 Internal Hatch Override"; pixel_x = -8; pixel_y = 27},/obj/machinery/button/door{id = "onehalf_drone1ext"; name = "Drone 1 External Hatch Override"; pixel_x = -8; pixel_y = 37},/turf/open/floor/plasteel/warning{dir = 1},/area/ruin/onehalf/drone_bay) +"bb" = (/turf/open/floor/plasteel/warning{dir = 1},/area/ruin/onehalf/drone_bay) +"bc" = (/obj/machinery/button/door{id = "onehalf_drone3int"; name = "Drone 3 Internal Hatch Override"; pixel_x = -8; pixel_y = 27},/obj/machinery/button/door{id = "onehalf_drone3ext"; name = "Drone 3 External Hatch Override"; pixel_x = -8; pixel_y = 37},/obj/machinery/button/door{id = "onehalf_drone4ext"; name = "Drone 4 External Hatch Override"; pixel_x = 8; pixel_y = 37},/obj/machinery/button/door{id = "onehalf_drone4int"; name = "Drone 4 Internal Hatch Override"; pixel_x = 8; pixel_y = 27},/turf/open/floor/plasteel/warning{dir = 1},/area/ruin/onehalf/drone_bay) +"bd" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/warning{dir = 5},/area/ruin/onehalf/drone_bay) +"be" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ruin/onehalf/drone_bay) +"bf" = (/obj/item/stack/sheet/metal,/turf/open/floor/plating/airless{broken = 1; icon_state = "platingdmg1"},/area/ruin/onehalf/hallway) +"bg" = (/obj/structure/disposalpipe/broken{tag = "icon-pipe-b (EAST)"; icon_state = "pipe-b"; dir = 4},/obj/item/stack/cable_coil/cut{amount = 2; dir = 2; icon_state = "coil_red2"},/turf/open/floor/plating/airless{broken = 1; icon_state = "platingdmg2"},/area/ruin/onehalf/hallway) +"bh" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/ruin/onehalf/hallway) +"bi" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/airless{icon_state = "damaged5"},/area/ruin/onehalf/hallway) +"bj" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/airless,/area/ruin/onehalf/hallway) +"bk" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j1"; dir = 4},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/airless{icon_state = "damaged1"},/area/ruin/onehalf/hallway) +"bl" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/airless,/area/ruin/onehalf/hallway) +"bm" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j1"; dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/airless,/area/ruin/onehalf/hallway) +"bn" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/glass,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/ruin/onehalf/drone_bay) +"bo" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/ruin/onehalf/drone_bay) +"bp" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/ruin/onehalf/drone_bay) +"bq" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/ruin/onehalf/drone_bay) +"br" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/maintenance_hatch,/turf/open/floor/plasteel,/area/ruin/onehalf/drone_bay) +"bs" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel{icon_state = "floorgrime"},/area/ruin/onehalf/drone_bay) +"bt" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-y"; dir = 1},/turf/open/floor/plasteel{icon_state = "floorgrime"},/area/ruin/onehalf/drone_bay) +"bu" = (/obj/structure/disposalpipe/trunk{dir = 8},/obj/machinery/disposal/bin,/turf/open/floor/plating,/area/ruin/onehalf/drone_bay) +"bv" = (/obj/structure/disposalpipe/broken{tag = "icon-pipe-b (EAST)"; icon_state = "pipe-b"; dir = 4},/turf/open/floor/plating/airless{icon_state = "platingdmg3"},/area/ruin/onehalf/hallway) +"bw" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/ruin/onehalf/hallway) +"bx" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/airless,/area/ruin/onehalf/hallway) +"by" = (/obj/structure/disposalpipe/segment,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/airless{icon_state = "damaged1"},/area/ruin/onehalf/hallway) +"bz" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable,/obj/machinery/power/apc{dir = 2; name = "Hallway APC"; pixel_y = -24},/turf/open/floor/plasteel/airless,/area/ruin/onehalf/hallway) +"bA" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/airless{icon_state = "damaged4"},/area/ruin/onehalf/hallway) +"bB" = (/obj/structure/disposalpipe/segment,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/airless,/area/ruin/onehalf/hallway) +"bC" = (/obj/machinery/door/airlock/glass,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/ruin/onehalf/drone_bay) +"bD" = (/obj/structure/disposalpipe/junction{dir = 8; icon_state = "pipe-j1"},/turf/open/floor/plasteel,/area/ruin/onehalf/drone_bay) +"bE" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light,/turf/open/floor/plasteel,/area/ruin/onehalf/drone_bay) +"bF" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/ruin/onehalf/drone_bay) +"bG" = (/turf/open/floor/plasteel,/area/ruin/onehalf/drone_bay) +"bH" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/plasteel{icon_state = "floorgrime"},/area/ruin/onehalf/drone_bay) +"bI" = (/turf/open/floor/plasteel{icon_state = "floorgrime"},/area/ruin/onehalf/drone_bay) +"bJ" = (/obj/structure/chair/office{tag = "icon-chair (EAST)"; icon_state = "chair"; dir = 4},/turf/open/floor/plasteel{icon_state = "floorgrime"},/area/ruin/onehalf/drone_bay) +"bK" = (/obj/structure/girder,/turf/open/floor/plating/airless,/area/ruin/onehalf/hallway) +"bL" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/airless{icon_state = "damaged4"},/area/ruin/onehalf/hallway) +"bM" = (/obj/machinery/vending/coffee,/turf/open/floor/plasteel/airless{icon_state = "damaged4"},/area/ruin/onehalf/hallway) +"bN" = (/obj/machinery/vending/snack,/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/ruin/onehalf/hallway) +"bO" = (/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/disposal/bin,/turf/open/floor/plasteel/airless,/area/ruin/onehalf/hallway) +"bP" = (/obj/structure/girder/reinforced,/obj/item/stack/sheet/plasteel,/turf/open/floor/plating/airless,/area/ruin/onehalf/hallway) +"bQ" = (/obj/structure/girder/reinforced,/turf/open/floor/plating/airless,/area/ruin/onehalf/hallway) +"bR" = (/turf/closed/wall/r_wall,/area/ruin/onehalf/hallway) +"bS" = (/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/ruin/onehalf/hallway) +"bT" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/airless,/area/ruin/onehalf/hallway) +"bU" = (/turf/closed/wall/r_wall,/area/ruin/onehalf/bridge) +"bV" = (/obj/item/stack/sheet/metal,/turf/open/space,/area/space) +"bW" = (/turf/open/floor/plating/airless{broken = 1; icon_state = "platingdmg1"},/area/ruin/onehalf/hallway) +"bX" = (/obj/structure/disposalpipe/segment,/obj/item/stack/rods,/turf/open/floor/plasteel/airless{icon_state = "damaged5"},/area/ruin/onehalf/hallway) +"bY" = (/obj/structure/grille,/turf/open/floor/plating/airless,/area/ruin/onehalf/hallway) +"bZ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "bridge_onehalf"; name = "bridge blast door"},/turf/open/floor/plating,/area/ruin/onehalf/bridge) +"ca" = (/obj/structure/table/reinforced,/obj/item/device/flashlight/lamp,/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) +"cb" = (/obj/structure/table/reinforced,/obj/item/weapon/paper,/obj/item/weapon/pen,/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) +"cc" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) +"cd" = (/obj/machinery/light{dir = 1},/obj/structure/frame/computer,/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) +"ce" = (/obj/structure/frame/computer,/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) +"cf" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{cell_type = 2500; dir = 1; name = "Bridge APC"; pixel_y = 24},/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) +"cg" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/table/reinforced,/obj/item/stack/spacecash/c500{pixel_y = 8},/obj/item/stack/spacecash/c1000,/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) +"ch" = (/obj/structure/disposalpipe/junction{tag = "icon-pipe-j1 (NORTH)"; icon_state = "pipe-j1"; dir = 1},/obj/item/weapon/shard,/turf/open/floor/plating/airless{broken = 1; icon_state = "platingdmg2"},/area/ruin/onehalf/hallway) +"ci" = (/obj/structure/lattice,/obj/structure/disposalpipe/broken{tag = "icon-pipe-b (EAST)"; icon_state = "pipe-b"; dir = 4},/obj/structure/disposalpipe/broken{tag = "icon-pipe-b (WEST)"; icon_state = "pipe-b"; dir = 8},/obj/item/stack/rods,/turf/open/space,/area/ruin/onehalf/hallway) +"cj" = (/obj/structure/lattice,/obj/structure/disposalpipe/segment{dir = 4},/obj/item/weapon/shard{icon_state = "small"},/turf/open/space,/area/space) +"ck" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/poddoor/preopen{id = "bridge_onehalf"; name = "bridge blast door"},/turf/open/floor/plating,/area/ruin/onehalf/bridge) +"cl" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{total_paper = 12},/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) +"cm" = (/obj/structure/chair/office{dir = 8},/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) +"cn" = (/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) +"co" = (/obj/structure/chair/office{tag = "icon-chair (NORTH)"; icon_state = "chair"; dir = 1},/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) +"cp" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/table/reinforced,/obj/item/weapon/lighter,/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) +"cq" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "bridge_onehalf"; name = "bridge blast door"},/turf/open/floor/plating,/area/ruin/onehalf/bridge) +"cr" = (/obj/item/stack/rods,/turf/open/space,/area/space) "cs" = (/obj/item/stack/sheet/plasteel{amount = 10},/obj/structure/lattice,/turf/open/space,/area/space) "ct" = (/obj/structure/lattice,/obj/item/weapon/shard{icon_state = "medium"},/turf/open/space,/area/ruin/onehalf/hallway) "cu" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/airless{icon_state = "damaged5"},/area/ruin/onehalf/hallway) @@ -156,18 +156,16 @@ "cZ" = (/obj/structure/table/reinforced,/obj/item/weapon/ore/bluespace_crystal,/obj/item/weapon/coin/plasma,/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) "da" = (/obj/structure/closet/firecloset/full,/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) "db" = (/obj/machinery/light,/obj/structure/table/reinforced,/obj/item/weapon/storage/firstaid/regular,/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) -"dc" = (/obj/structure/girder/reinforced,/obj/item/stack/sheet/plasteel,/turf/open/floor/plating/airless,/area/space) -"dd" = (/turf/open/floor/plating/airless{broken = 1; icon_state = "platingdmg2"},/area/space) -"de" = (/obj/structure/grille{density = 0; icon_state = "brokengrille"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/airless{broken = 1; icon_state = "platingdmg1"},/area/ruin/onehalf/hallway) -"df" = (/obj/structure/grille,/obj/item/weapon/shard,/turf/open/floor/plating/airless{icon_state = "platingdmg3"},/area/ruin/onehalf/hallway) -"dg" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/poddoor/preopen{id = "bridge_onehalf"; name = "bridge blast door"},/turf/open/floor/plating,/area/ruin/onehalf/bridge) -"dh" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "bridge_onehalf"; name = "bridge blast door"},/turf/open/floor/plating,/area/ruin/onehalf/bridge) -"di" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "bridge_onehalf"; name = "bridge blast door"},/turf/open/floor/plating,/area/ruin/onehalf/bridge) -"dj" = (/obj/structure/lattice,/obj/item/stack/sheet/plasteel,/turf/open/space,/area/space) -"dk" = (/obj/structure/lattice,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/item/weapon/shard{icon_state = "medium"},/turf/open/space,/area/space) -"dl" = (/obj/structure/lattice,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/item/stack/rods,/turf/open/space,/area/space) -"dm" = (/obj/structure/lattice,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/space,/area/space) -"dn" = (/obj/item/stack/cable_coil/cut{amount = 2; dir = 2; icon_state = "coil_red2"},/turf/open/space,/area/space) +"dc" = (/obj/structure/grille{density = 0; icon_state = "brokengrille"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/airless{broken = 1; icon_state = "platingdmg1"},/area/ruin/onehalf/hallway) +"dd" = (/obj/structure/grille,/obj/item/weapon/shard,/turf/open/floor/plating/airless{icon_state = "platingdmg3"},/area/ruin/onehalf/hallway) +"de" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/poddoor/preopen{id = "bridge_onehalf"; name = "bridge blast door"},/turf/open/floor/plating,/area/ruin/onehalf/bridge) +"df" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "bridge_onehalf"; name = "bridge blast door"},/turf/open/floor/plating,/area/ruin/onehalf/bridge) +"dg" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "bridge_onehalf"; name = "bridge blast door"},/turf/open/floor/plating,/area/ruin/onehalf/bridge) +"dh" = (/obj/structure/lattice,/obj/item/stack/sheet/plasteel,/turf/open/space,/area/space) +"di" = (/obj/structure/lattice,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/item/weapon/shard{icon_state = "medium"},/turf/open/space,/area/space) +"dj" = (/obj/structure/lattice,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/item/stack/rods,/turf/open/space,/area/space) +"dk" = (/obj/structure/lattice,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/space,/area/space) +"dl" = (/obj/item/stack/cable_coil/cut{amount = 2; dir = 2; icon_state = "coil_red2"},/turf/open/space,/area/space) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -176,18 +174,18 @@ aaaaaaaaaeacafagagagagagagahagagaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaajakakakagalamanagaoapaoagaqarasaratarauaravaraaaaaaaaaaaa aaaaawaxaxayazagaAamaBagaCapaoagaDaraEaraFaraEaraEarawaraGaraaaa aaaaaaaHaIaxaJagaKaLaMagaoapaoagaqaraNaraOaraParaQaraaaraRaraaaa -aaaaaSajaxaTaUagagaVagagagaWagagaXaYaZbaaZbbaZbcaZarararbdararaa -aaaaawbebfbgbhbibibjbhbhbkbiblbmbnbobpbobpbobpbobpbobqbrbsbtbdaa -aaaaaabubvbvbwbwbvbxbwbwbybzbAbBbobobCbDbCbobCbDbEbbarbFbGbHbdaa -aaaaaabIajakbJbKbLbMbNbObPbQbRbSbSbSbSbSbSbSbSbSbSbSararbdararaa -aaaaaaaabTbUbIakbObPajawbPbUbVbWaabXbYbZcacbcccdcebSawaaaaaaaaaa -aaaaaaaaaaaaaaaacfaaaabTaxaxcgchcicjckclcmcncmcmcocpadaaaaaaaaaa -aaaaaaaaaaaaaacqcrcsaaaaajctcucvbSbScwcmcxcmcmcmcyczaiaaaaaaaaaa -aaaaaaaaaaaaaaaaaaawcAaacBcCcDcEcFcGcmcxcHcIcmcJccczaiaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaacqawajcKcLbSbSbScMcmcmcmcmcmccczaiaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaacNcAaxcOcPcQawbXcRclcmcScmcTcUcVcWaaaaaaaaaa -aaaaaaaaaaaaaaaaaacqaaaabPcXaJcQaabXcYcZdacccccmdbbSaiaaaaaaaaaa -aaaaaaaaaaaaaaaaaadcawddbOdedfbSbSbSbSdgdhdhdhdibSbSaiaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaadjdkdlacacacacacdmacacacdmacacafaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaadnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaSajaxaTaUagagaVagagagaWagagaXaYaZbaaZbbaZbcbdarararbeararaa +aaaaawbfbgbhbibjbjbkbibiblbjbmbnbobpbqbpbqbpbqbpbqbpbrbsbtbubeaa +aaaaaabvbwbwbxbxbwbybxbxbzbAbBbCbpbpbDbEbDbpbDbEbFbGarbHbIbJbeaa +aaaaaabKajakbLbMbNbObPbQbRbSbTbUbUbUbUbUbUbUbUbUbUbUararbeararaa +aaaaaaaabVbWbKakbQbRajawbRbWbXbYaabZcacbcccdcecfcgbUawaaaaaaaaaa +aaaaaaaaaaaaaaaabQaaaabVaxaxchcicjckclcmcncocncncpcqadaaaaaaaaaa +aaaaaaaaaaaaaacrajcsaaaaajctcucvbUbUcwcncxcncncncyczaiaaaaaaaaaa +aaaaaaaaaaaaaaaaaaawcAaacBcCcDcEcFcGcncxcHcIcncJceczaiaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaacrawajcKcLbUbUbUcMcncncncncnceczaiaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaacNcAaxcOcPcQawbZcRcmcncScncTcUcVcWaaaaaaaaaa +aaaaaaaaaaaaaaaaaacraaaabRcXaJcQaabZcYcZdacececndbbUaiaaaaaaaaaa +aaaaaaaaaaaaaaaaaabPawcLbQdcddbUbUbUbUdedfdfdfdgbUbUaiaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaadhdidjacacacacacdkacacacdkacacafaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaadlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa "} diff --git a/_maps/RandomRuins/SpaceRuins/originalcontent.dmm b/_maps/RandomRuins/SpaceRuins/originalcontent.dmm new file mode 100644 index 0000000000..e4eaf7ce8a --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/originalcontent.dmm @@ -0,0 +1,175 @@ +"aa" = (/turf/open/space,/area/space) +"ab" = (/obj/structure/fluff/paper/corner,/turf/open/space,/area/space) +"ac" = (/obj/structure/fluff/paper,/turf/open/space,/area/space) +"ad" = (/obj/structure/fluff/paper/corner{tag = "icon-papercorner (WEST)"; icon_state = "papercorner"; dir = 8},/turf/open/space,/area/space) +"ae" = (/obj/structure/fluff/paper{tag = "icon-paper (EAST)"; icon_state = "paper"; dir = 4},/turf/open/space,/area/space) +"af" = (/turf/closed/indestructible/paper,/area/ruin/powered) +"ag" = (/obj/structure/fluff/paper{tag = "icon-paper (SOUTHWEST)"; icon_state = "paper"; dir = 10},/turf/open/space,/area/space) +"ah" = (/obj/structure/fluff/paper/corner,/obj/structure/fluff/paper/corner{tag = "icon-papercorner (WEST)"; icon_state = "papercorner"; dir = 8},/turf/open/space,/area/space) +"ai" = (/obj/structure/fluff/paper{tag = "icon-paper (SOUTHEAST)"; icon_state = "paper"; dir = 6},/turf/open/space,/area/space) +"aj" = (/obj/machinery/door/airlock/freezer{name = "airlock"; opacity = 0},/obj/structure/fluff/paper{tag = "icon-paper (WEST)"; icon_state = "paper"; dir = 8},/obj/structure/fluff/paper{tag = "icon-paper (EAST)"; icon_state = "paper"; dir = 4},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"ak" = (/obj/structure/fluff/paper{tag = "icon-paper (NORTHWEST)"; icon_state = "paper"; dir = 9},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"al" = (/obj/structure/fluff/paper{tag = "icon-paper (NORTH)"; icon_state = "paper"; dir = 1},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"am" = (/obj/structure/fluff/paper{tag = "icon-paper (NORTHEAST)"; icon_state = "paper"; dir = 5},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"an" = (/obj/structure/fluff/paper{tag = "icon-paper (EAST)"; icon_state = "paper"; dir = 4},/obj/structure/fluff/paper{tag = "icon-paper (WEST)"; icon_state = "paper"; dir = 8},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"ao" = (/obj/structure/fluff/paper/corner{tag = "icon-papercorner (EAST)"; icon_state = "papercorner"; dir = 4},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"ap" = (/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aq" = (/obj/structure/fluff/paper{tag = "icon-paper (EAST)"; icon_state = "paper"; dir = 4},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"ar" = (/obj/structure/fluff/paper{tag = "icon-paper (WEST)"; icon_state = "paper"; dir = 8},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"as" = (/obj/item/weapon/paper/crumpled{desc = "Various scrawled out drawings and sketches reside on the paper, apparently he didn't much care for these drawings."},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"at" = (/mob/living/simple_animal/hostile/stickman,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"au" = (/obj/structure/fluff/paper/stack{tag = "icon-paperstack (EAST)"; icon_state = "paperstack"; dir = 4},/obj/structure/fluff/paper/corner{tag = "icon-papercorner (NORTH)"; icon_state = "papercorner"; dir = 1},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"av" = (/obj/structure/fluff/paper/corner{tag = "icon-papercorner (NORTH)"; icon_state = "papercorner"; dir = 1},/obj/structure/fluff/paper/corner{tag = "icon-papercorner (EAST)"; icon_state = "papercorner"; dir = 4},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aw" = (/obj/structure/fluff/paper{tag = "icon-paper (WEST)"; icon_state = "paper"; dir = 8},/turf/open/space,/area/space) +"ax" = (/obj/structure/fluff/paper/corner{tag = "icon-papercorner (NORTH)"; icon_state = "papercorner"; dir = 1},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"ay" = (/obj/structure/fluff/paper{tag = "icon-paper (SOUTHWEST)"; icon_state = "paper"; dir = 10},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"az" = (/obj/structure/fluff/paper,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aA" = (/obj/structure/fluff/paper/corner{tag = "icon-papercorner (WEST)"; icon_state = "papercorner"; dir = 8},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aB" = (/obj/structure/fluff/paper/stack,/obj/structure/fluff/paper/stack{tag = "icon-paperstack (NORTH)"; icon_state = "paperstack"; dir = 1},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aC" = (/obj/structure/fluff/paper{tag = "icon-paper (NORTHEAST)"; icon_state = "paper"; dir = 5},/obj/structure/fluff/paper{tag = "icon-paper (NORTHWEST)"; icon_state = "paper"; dir = 9},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aD" = (/obj/structure/fluff/paper/corner{tag = "icon-papercorner (WEST)"; icon_state = "papercorner"; dir = 8},/obj/structure/fluff/paper/corner,/mob/living/simple_animal/hostile/stickman,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aE" = (/obj/structure/fluff/paper{tag = "icon-paper (WEST)"; icon_state = "paper"; dir = 8},/obj/structure/fluff/paper/corner{tag = "icon-papercorner (NORTH)"; icon_state = "papercorner"; dir = 1},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aF" = (/obj/structure/fluff/paper{tag = "icon-paper (WEST)"; icon_state = "paper"; dir = 8},/obj/structure/fluff/paper{tag = "icon-paper (EAST)"; icon_state = "paper"; dir = 4},/obj/structure/barricade/wooden,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aG" = (/obj/structure/fluff/paper{tag = "icon-paper (SOUTHWEST)"; icon_state = "paper"; dir = 10},/obj/structure/fluff/paper/corner{tag = "icon-papercorner (NORTH)"; icon_state = "papercorner"; dir = 1},/obj/structure/barricade/wooden,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aH" = (/obj/structure/fluff/paper/corner{tag = "icon-papercorner (WEST)"; icon_state = "papercorner"; dir = 8},/obj/structure/fluff/paper{tag = "icon-paper (NORTHEAST)"; icon_state = "paper"; dir = 5},/obj/structure/barricade/wooden,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aI" = (/obj/structure/fluff/paper/stack{tag = "icon-paperstack (NORTH)"; icon_state = "paperstack"; dir = 1},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aJ" = (/obj/structure/fluff/paper/corner{tag = "icon-papercorner (NORTH)"; icon_state = "papercorner"; dir = 1},/obj/structure/fluff/paper/corner,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aK" = (/obj/structure/fluff/paper{tag = "icon-paper (NORTH)"; icon_state = "paper"; dir = 1},/obj/structure/fluff/paper,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aL" = (/obj/structure/fluff/paper{tag = "icon-paper (NORTH)"; icon_state = "paper"; dir = 1},/obj/structure/fluff/paper/corner{tag = "icon-papercorner (WEST)"; icon_state = "papercorner"; dir = 8},/mob/living/simple_animal/hostile/stickman,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aM" = (/obj/structure/fluff/paper/stack{tag = "icon-paperstack (SOUTHWEST)"; icon_state = "paperstack"; dir = 10},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aN" = (/obj/structure/fluff/paper/corner{tag = "icon-papercorner (WEST)"; icon_state = "papercorner"; dir = 8},/obj/structure/fluff/paper{tag = "icon-paper (EAST)"; icon_state = "paper"; dir = 4},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aO" = (/obj/structure/fluff/paper,/mob/living/simple_animal/hostile/stickman/dog,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aP" = (/obj/structure/fluff/paper{tag = "icon-paper (WEST)"; icon_state = "paper"; dir = 8},/obj/structure/fluff/paper{tag = "icon-paper (EAST)"; icon_state = "paper"; dir = 4},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aQ" = (/obj/structure/fluff/paper{tag = "icon-paper (SOUTHWEST)"; icon_state = "paper"; dir = 10},/obj/structure/fluff/paper/corner{tag = "icon-papercorner (NORTH)"; icon_state = "papercorner"; dir = 1},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aR" = (/obj/structure/fluff/paper{tag = "icon-paper (NORTH)"; icon_state = "paper"; dir = 1},/obj/structure/fluff/paper/corner{tag = "icon-papercorner (WEST)"; icon_state = "papercorner"; dir = 8},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aS" = (/obj/structure/fluff/paper/corner,/mob/living/simple_animal/hostile/stickman/dog,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aT" = (/obj/structure/fluff/paper{tag = "icon-paper (SOUTHEAST)"; icon_state = "paper"; dir = 6},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aU" = (/obj/structure/fluff/paper/corner{tag = "icon-papercorner (NORTH)"; icon_state = "papercorner"; dir = 1},/obj/structure/fluff/paper,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aV" = (/obj/structure/fluff/paper{tag = "icon-paper (SOUTHEAST)"; icon_state = "paper"; dir = 6},/obj/structure/fluff/paper/corner{tag = "icon-papercorner (EAST)"; icon_state = "papercorner"; dir = 4},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aW" = (/obj/structure/fluff/paper{tag = "icon-paper (NORTH)"; icon_state = "paper"; dir = 1},/obj/structure/fluff/paper/stack,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aX" = (/obj/structure/fluff/paper/stack,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aY" = (/obj/structure/fluff/paper/corner,/obj/structure/fluff/paper/corner{tag = "icon-papercorner (EAST)"; icon_state = "papercorner"; dir = 4},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aZ" = (/obj/structure/fluff/paper/corner{tag = "icon-papercorner (WEST)"; icon_state = "papercorner"; dir = 8},/obj/structure/fluff/paper/corner{tag = "icon-papercorner (NORTH)"; icon_state = "papercorner"; dir = 1},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"ba" = (/obj/structure/fluff/paper{tag = "icon-paper (NORTH)"; icon_state = "paper"; dir = 1},/mob/living/simple_animal/hostile/stickman/dog,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bb" = (/obj/structure/fluff/paper/corner{tag = "icon-papercorner (NORTH)"; icon_state = "papercorner"; dir = 1},/obj/structure/fluff/paper/corner{tag = "icon-papercorner (WEST)"; icon_state = "papercorner"; dir = 8},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bc" = (/obj/structure/fluff/paper{tag = "icon-paper (NORTHWEST)"; icon_state = "paper"; dir = 9},/turf/open/space,/area/space) +"bd" = (/obj/structure/fluff/paper{tag = "icon-paper (NORTH)"; icon_state = "paper"; dir = 1},/turf/open/space,/area/space) +"be" = (/obj/structure/fluff/paper/corner{tag = "icon-papercorner (EAST)"; icon_state = "papercorner"; dir = 4},/turf/open/space,/area/space) +"bf" = (/obj/structure/fluff/paper{tag = "icon-paper (EAST)"; icon_state = "paper"; dir = 4},/obj/structure/fluff/paper/stack{tag = "icon-paperstack (NORTHWEST)"; icon_state = "paperstack"; dir = 9},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bg" = (/obj/structure/fluff/paper{tag = "icon-paper (WEST)"; icon_state = "paper"; dir = 8},/obj/item/toy/crayon/yellow,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bh" = (/obj/structure/fluff/paper{tag = "icon-paper (NORTH)"; icon_state = "paper"; dir = 1},/obj/item/toy/crayon/red,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bi" = (/obj/structure/fluff/paper{tag = "icon-paper (NORTH)"; icon_state = "paper"; dir = 1},/obj/structure/fluff/paper/corner,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bj" = (/obj/structure/fluff/paper,/obj/structure/fluff/paper/corner{tag = "icon-papercorner (EAST)"; icon_state = "papercorner"; dir = 4},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bk" = (/obj/structure/fluff/paper/corner{tag = "icon-papercorner (WEST)"; icon_state = "papercorner"; dir = 8},/obj/structure/fluff/paper/corner{tag = "icon-papercorner (NORTH)"; icon_state = "papercorner"; dir = 1},/mob/living/simple_animal/hostile/stickman,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bl" = (/obj/structure/fluff/paper/stack{tag = "icon-paperstack (NORTHWEST)"; icon_state = "paperstack"; dir = 9},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bm" = (/obj/structure/fluff/paper,/mob/living/simple_animal/hostile/stickman,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bn" = (/obj/structure/fluff/paper{tag = "icon-paper (NORTHWEST)"; icon_state = "paper"; dir = 9},/obj/structure/fluff/paper{tag = "icon-paper (SOUTHWEST)"; icon_state = "paper"; dir = 10},/turf/open/space,/area/space) +"bo" = (/obj/structure/fluff/paper/corner{tag = "icon-papercorner (EAST)"; icon_state = "papercorner"; dir = 4},/obj/structure/fluff/paper/corner{tag = "icon-papercorner (WEST)"; icon_state = "papercorner"; dir = 8},/turf/open/space,/area/space) +"bp" = (/obj/structure/fluff/paper{tag = "icon-paper (WEST)"; icon_state = "paper"; dir = 8},/obj/item/toy/crayon/rainbow,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bq" = (/obj/structure/fluff/paper{tag = "icon-paper (EAST)"; icon_state = "paper"; dir = 4},/obj/structure/fluff/paper/stack{tag = "icon-paperstack (EAST)"; icon_state = "paperstack"; dir = 4},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"br" = (/obj/structure/fluff/paper{tag = "icon-paper (WEST)"; icon_state = "paper"; dir = 8},/obj/structure/fluff/paper/stack{tag = "icon-paperstack (EAST)"; icon_state = "paperstack"; dir = 4},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bs" = (/obj/item/toy/crayon/spraycan,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bt" = (/obj/item/weapon/storage/crayons,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bu" = (/mob/living/simple_animal/hostile/stickman/ranged,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bv" = (/obj/structure/fluff/paper/corner{tag = "icon-papercorner (WEST)"; icon_state = "papercorner"; dir = 8},/obj/structure/fluff/paper{tag = "icon-paper (EAST)"; icon_state = "paper"; dir = 4},/obj/structure/fluff/paper/stack{tag = "icon-paperstack (NORTH)"; icon_state = "paperstack"; dir = 1},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bw" = (/obj/structure/fluff/paper/corner{tag = "icon-papercorner (NORTH)"; icon_state = "papercorner"; dir = 1},/turf/open/space,/area/space) +"bx" = (/obj/structure/fluff/paper{tag = "icon-paper (NORTHEAST)"; icon_state = "paper"; dir = 5},/turf/open/space,/area/space) +"by" = (/obj/structure/fluff/paper/corner,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bz" = (/obj/structure/fluff/paper/stack{tag = "icon-paperstack (NORTHWEST)"; icon_state = "paperstack"; dir = 9},/obj/structure/fluff/paper,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bA" = (/obj/item/device/toner,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bB" = (/obj/structure/easel,/obj/item/weapon/paper/pamphlet{icon = 'icons/obj/fluff.dmi'; icon_state = "painting4"; info = "This picture depicts a crudely-drawn stickman firing a crudely-drawn gun."; name = "Painting - 'BANG' "},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bC" = (/obj/item/toy/crayon/yellow,/obj/structure/fluff/paper{tag = "icon-paper (WEST)"; icon_state = "paper"; dir = 8},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bD" = (/obj/structure/fluff/paper{tag = "icon-paper (EAST)"; icon_state = "paper"; dir = 4},/obj/structure/fluff/paper/corner{tag = "icon-papercorner (WEST)"; icon_state = "papercorner"; dir = 8},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bE" = (/mob/living/simple_animal/hostile/stickman/dog,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bF" = (/obj/structure/fluff/paper/stack{tag = "icon-paperstack (NORTH)"; icon_state = "paperstack"; dir = 1},/obj/structure/fluff/paper/stack,/obj/structure/fluff/paper/corner{tag = "icon-papercorner (NORTH)"; icon_state = "papercorner"; dir = 1},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bG" = (/obj/item/toy/crayon/blue,/mob/living/simple_animal/hostile/stickman/ranged,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bH" = (/obj/structure/fluff/paper{tag = "icon-paper (EAST)"; icon_state = "paper"; dir = 4},/obj/item/toy/crayon/yellow,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bI" = (/obj/structure/fluff/paper{tag = "icon-paper (NORTHWEST)"; icon_state = "paper"; dir = 9},/obj/structure/closet/crate/bin,/obj/item/weapon/paper/crumpled{desc = "Various scrawled out drawings and sketches reside on the paper, apparently he didn't much care for these drawings."},/obj/item/weapon/paper/crumpled{desc = "Various scrawled out drawings and sketches reside on the paper, apparently he didn't much care for these drawings."},/obj/item/weapon/paper/crumpled{desc = "Various scrawled out drawings and sketches reside on the paper, apparently he didn't much care for these drawings."},/obj/item/device/gps{gpstag = "Pulpy Signal"},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bJ" = (/obj/structure/fluff/paper{tag = "icon-paper (NORTH)"; icon_state = "paper"; dir = 1},/obj/structure/easel,/obj/item/weapon/paper/pamphlet{icon = 'icons/obj/fluff.dmi'; icon_state = "painting1"; info = "This picture depicts a sunny day on a lush hillside, set under a shaded tree."; name = "Painting - 'Treeside' "},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bK" = (/obj/structure/fluff/paper{tag = "icon-paper (NORTHEAST)"; icon_state = "paper"; dir = 5},/obj/structure/table/wood,/obj/item/weapon/storage/crayons,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bL" = (/obj/structure/fluff/paper{tag = "icon-paper (EAST)"; icon_state = "paper"; dir = 4},/obj/structure/fluff/paper/stack{tag = "icon-paperstack (SOUTHEAST)"; icon_state = "paperstack"; dir = 6},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bM" = (/obj/item/toy/crayon/purple,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bN" = (/obj/structure/fluff/paper/corner,/obj/structure/fluff/paper/corner{tag = "icon-papercorner (NORTH)"; icon_state = "papercorner"; dir = 1},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bO" = (/obj/machinery/door/airlock/freezer{name = "airlock"; opacity = 0},/obj/structure/fluff/paper{tag = "icon-paper (NORTH)"; icon_state = "paper"; dir = 1},/obj/structure/fluff/paper,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bP" = (/obj/structure/fluff/paper{tag = "icon-paper (NORTH)"; icon_state = "paper"; dir = 1},/obj/structure/fluff/paper/corner{tag = "icon-papercorner (WEST)"; icon_state = "papercorner"; dir = 8},/obj/structure/fluff/paper/stack{tag = "icon-paperstack (EAST)"; icon_state = "paperstack"; dir = 4},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bQ" = (/obj/structure/fluff/paper{tag = "icon-paper (NORTH)"; icon_state = "paper"; dir = 1},/obj/structure/fluff/paper/stack,/obj/structure/fluff/paper/stack{tag = "icon-paperstack (NORTH)"; icon_state = "paperstack"; dir = 1},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bR" = (/obj/structure/fluff/paper/stack{tag = "icon-paperstack (EAST)"; icon_state = "paperstack"; dir = 4},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bS" = (/obj/structure/fluff/paper/stack{tag = "icon-paperstack (NORTH)"; icon_state = "paperstack"; dir = 1},/obj/structure/fluff/paper/stack,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bT" = (/obj/structure/fluff/paper/corner{tag = "icon-papercorner (NORTH)"; icon_state = "papercorner"; dir = 1},/obj/structure/fluff/paper/stack{tag = "icon-paperstack (SOUTHEAST)"; icon_state = "paperstack"; dir = 6},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bU" = (/obj/structure/fluff/paper{tag = "icon-paper (EAST)"; icon_state = "paper"; dir = 4},/mob/living/simple_animal/hostile/stickman,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bV" = (/obj/item/toy/crayon/yellow,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bW" = (/obj/structure/fluff/paper{tag = "icon-paper (WEST)"; icon_state = "paper"; dir = 8},/obj/structure/easel,/obj/item/weapon/paper/pamphlet{icon = 'icons/obj/fluff.dmi'; icon_state = "painting3"; info = "This picture depicts a smiling clown. Something doesn't feel right about this.."; name = "Painting - 'Pennywise' "},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bX" = (/obj/item/toy/crayon/blue,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bY" = (/obj/item/toy/crayon/red,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bZ" = (/obj/structure/fluff/paper{tag = "icon-paper (EAST)"; icon_state = "paper"; dir = 4},/obj/structure/bed,/obj/item/weapon/bedsheet/rainbow,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"ca" = (/obj/structure/fluff/paper{tag = "icon-paper (SOUTHWEST)"; icon_state = "paper"; dir = 10},/obj/structure/table/wood,/obj/item/weapon/storage/crayons,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"cb" = (/obj/structure/fluff/paper/stack{tag = "icon-paperstack (NORTHWEST)"; icon_state = "paperstack"; dir = 9},/obj/item/toy/crayon/purple,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"cc" = (/mob/living/simple_animal/hostile/boss/paper_wizard,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"cd" = (/obj/structure/fluff/paper{tag = "icon-paper (EAST)"; icon_state = "paper"; dir = 4},/obj/structure/table/wood,/obj/item/toy/crayon/rainbow,/obj/item/toy/crayon/spraycan,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"ce" = (/obj/structure/fluff/paper{tag = "icon-paper (EAST)"; icon_state = "paper"; dir = 4},/obj/structure/fluff/paper/corner{tag = "icon-papercorner (EAST)"; icon_state = "papercorner"; dir = 4},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"cf" = (/obj/structure/fluff/paper{tag = "icon-paper (WEST)"; icon_state = "paper"; dir = 8},/obj/structure/fluff/paper/stack,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"cg" = (/obj/structure/fluff/paper{tag = "icon-paper (EAST)"; icon_state = "paper"; dir = 4},/obj/structure/table/wood,/obj/item/weapon/paper_bin,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"ch" = (/obj/structure/fluff/paper,/obj/item/weapon/paper/crumpled{desc = "Various scrawled out drawings and sketches reside on the paper, apparently he didn't much care for these drawings."},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"ci" = (/obj/structure/fluff/paper,/obj/structure/fluff/paper/corner{tag = "icon-papercorner (NORTH)"; icon_state = "papercorner"; dir = 1},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"cj" = (/obj/structure/fluff/paper{tag = "icon-paper (NORTH)"; icon_state = "paper"; dir = 1},/mob/living/simple_animal/hostile/stickman,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"ck" = (/obj/structure/fluff/paper{tag = "icon-paper (SOUTHEAST)"; icon_state = "paper"; dir = 6},/obj/structure/fluff/paper{tag = "icon-paper (NORTHEAST)"; icon_state = "paper"; dir = 5},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"cl" = (/obj/structure/fluff/paper/corner,/obj/structure/fluff/paper/stack{tag = "icon-paperstack (EAST)"; icon_state = "paperstack"; dir = 4},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"cm" = (/obj/structure/fluff/paper,/obj/structure/table/wood,/obj/item/weapon/storage/crayons,/obj/item/weapon/storage/crayons,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"cn" = (/obj/structure/fluff/paper{tag = "icon-paper (SOUTHEAST)"; icon_state = "paper"; dir = 6},/obj/structure/table/wood,/obj/item/weapon/canvas/twentythreeXtwentythree,/obj/item/weapon/canvas,/obj/item/weapon/canvas/nineteenXnineteen,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"co" = (/obj/structure/fluff/paper,/obj/structure/fluff/paper/stack{tag = "icon-paperstack (NORTHWEST)"; icon_state = "paperstack"; dir = 9},/obj/item/toy/crayon/blue,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"cp" = (/obj/structure/fluff/paper{tag = "icon-paper (SOUTHWEST)"; icon_state = "paper"; dir = 10},/obj/machinery/photocopier,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"cq" = (/obj/structure/fluff/paper,/obj/structure/table/wood,/obj/item/weapon/storage/crayons,/obj/item/weapon/pen/fourcolor,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"cr" = (/obj/structure/fluff/paper,/obj/structure/easel,/obj/item/weapon/paper/pamphlet{icon = 'icons/obj/fluff.dmi'; icon_state = "painting2"; info = "This picture depicts a man yelling on a bridge for no apparent reason."; name = "Painting - 'Hands-On-Face' "},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"cs" = (/obj/structure/fluff/paper,/obj/structure/fluff/paper{tag = "icon-paper (NORTH)"; icon_state = "paper"; dir = 1},/mob/living/simple_animal/hostile/stickman/dog,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"ct" = (/obj/structure/fluff/paper,/obj/structure/fluff/paper{tag = "icon-paper (NORTH)"; icon_state = "paper"; dir = 1},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"cu" = (/obj/structure/fluff/paper{tag = "icon-paper (WEST)"; icon_state = "paper"; dir = 8},/obj/structure/fluff/paper/stack{tag = "icon-paperstack (SOUTHEAST)"; icon_state = "paperstack"; dir = 6},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"cv" = (/obj/structure/fluff/paper,/obj/structure/fluff/paper/stack{tag = "icon-paperstack (SOUTHEAST)"; icon_state = "paperstack"; dir = 6},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"cw" = (/obj/structure/fluff/paper{tag = "icon-paper (NORTH)"; icon_state = "paper"; dir = 1},/mob/living/simple_animal/hostile/stickman/ranged,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacadaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafafafafafafafafafagacacacacahacadaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacaiafafafafafafafafafafafafafafajafagadaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacaiafafafafafafafafafakalalalalamafanafafagadaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafafafafafafafafakalalalaoapapapapaqafajafafafagadaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaabacaiafafafafafafafafarapasapapapatapapaualavamafafafawaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafafafafafafafafafafarapapapapapapapapapapapaxamafafagacadaa +aaaaaaaaaaaaaaaaaaaaaaabacacaiafafafafafafafafafafayazazaAaBapapapapapapapapaqafafafafawaa +aaaaaaaaaaaaaaaaaaabacaiafafafafafafafafaCafafafafafafafayaDazazaAapapatapapaqafafafafawaa +aaaaaaaaaaaaaaaaaaaeafafafafafafafafafafaEamafafafafafafafaFafafayaAapasapapaxamafafafagad +aaaaaaaaaaaaaaabacaiafafafafafafafakalalaoaqafafafafafafafaGaHafafarapapapapapaqafafafafaw +aaaaaaaaaaaaaaaeafafafafafafafafafayazaAaIaJaKaLalalamafafafanafafayazaAapaMapaqafafafafaw +aaaaaaaaaaaaaaaeafafafafafafafafafafafayazaNafayazaOaNafafafanafafafafayaAapapaxamafafafaw +aaaaaaaaaaaaaaaeafafafafafafafafafafafafafaPafafafafaQaRamafanafafafafafarapaSazaTafafafaw +aaaaaaaaaaaaabaiafafafafafafafafafafafafafaEalamafafafayaUaKaVafafafafafayazaTafafafafafaw +aaaaaaaaabacaiafafafafakalaWalamafafafafafaraXaqafafafafafafafafafafafafafafafafafafafafaw +aaaaaaaaaeafafafafafakaYazazazaZalbaamafafayazbbalamafafafafafafafafafafafafafafafafbcbdbe +aaaaaaaaaeafafafafafaraqafafafayazaAaqafafafafarapbfafafafakalalalamafafafafafafafafawaaaa +aaaaabacaiafafafafafaraqafafafafafbgaxalamafafayazaZbhalbibjazazazbbalamafafafafafafawaaaa +abacaiafafafafafafafaybkamafafafafarapblaxamafafafayazbmaTafafafafayazbbalamafafafbnboaaaa +aeafafafafafafafafafafbpbqafafafakaoapapapaxamafafafafafafafafafafafafbrbsaqafafafafawaaaa +aeafafafafafafafafafakaYaTafakalaoblapbtapbuaxalalalalalalalamafafafafayazbvafafafafawaaaa +bwbdbxafafafafafafafaraqafafarapapapapapapbyazbzaAapapapaXapaqafafafafafafaEalamafafawaaaa +aaaabwbdbdbdbxafafafaraqafafarapapbuapapapaqafafarapaIapapapaqafafafafafafarbuaqafafagaaaa +aaaaaaaaaaaaaeafafafaraqafafarapapapbAapbBaqafafbCapbyazazazaTafafafafafafayazbDafafafawaa +aaaaaaaaaaaaaeafafafaraqafafayaAapapbEapapbFalalaobGbHafafafafafbIbJbKafafafafanafafafawaa +aaaaaaaaaaaabwbxafafarbLafafafarapaMapapapapasbMapapbNbObPalbQalaobAaqafafafafanafafafawaa +aaaaaaaaaaaaaaaeafafaraqafafafayazazaAapapapbRapapbMaqafayaAapbSbMapbTamafafafanafafafawaa +aaaaaaaaaaaaaaaeafafarbUafafafafafafarapbubtapapbVapaqafafbWapbXbtbYapbZafafafanafafafawaa +aaaaaaaaaaaaaaaeafafaraxamafafafafafayazazazazaAapapaxamafcaaAapcbccapcdafafakceafafafawaa +aaaaaaaaaaaaaaaeafafarapaqafafafafafafafafafafayazazazaNafafcfbRapapapcgafafarbqafafafawaa +aaaaaaaaaaaaaaaeafafaychciaRcjalamafafafafafafafafafafaQckafarapapclcmcnafafaraqafafafawaa +aaaaaaaaaaaaaabwbxafafafafaycoazaZalalamafafafafafafafafafafcpcqcraTafafafakaYaTafafafawaa +aaaaaaaaaaaaaaaaaeafafafafafafafayazazaZalalalbicsctctaRamafafafafafafafafcuaqafafafafawaa +aaaaaaaaaaaaaaaabwbxafafafafafafafafafayazazcvaTafafafayciaRalamafafakalcwaYaTafafafafawaa +aaaaaaaaaaaaaaaaaaaeafafafafafafafafafafafafafafafafafafafayazaZalalaoapapaqafafafafbcbeaa +aaaaaaaaaaaaaaaaaaaeafafafafbcbdbdbdbdbxafafafafafafafafafafafayazazazazazaTafafafafawaaaa +aaaaaaaaaaaaaaaaaaaeafafafafawaaaaaaaaaeafafafafafafafafafafafafafafafafafafafafafafawaaaa +aaaaaaaaaaaaaaaaaaaeafafafafawaaaaaaaabwbdbdbdbdbdbdbdbdbdbdbdbdbxafafafafafafbcbdbdbeaaaa +aaaaaaaaaaaaaaaaaabwbxafafbcbeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwbdbdbdbdbdbdbeaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaeafafawaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaeafafawaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaabwbdbdbeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +"} diff --git a/_maps/RandomRuins/SpaceRuins/shuttlerelic.dmm b/_maps/RandomRuins/SpaceRuins/shuttlerelic.dmm new file mode 100644 index 0000000000..00fd844795 --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/shuttlerelic.dmm @@ -0,0 +1,508 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/space, +/area/space) +"b" = ( +/turf/open/space, +/turf/closed/indestructible/oldshuttle/corner{ + tag = "icon-corner (WEST)"; + icon_state = "corner"; + dir = 8 + }, +/area/ruin/powered) +"c" = ( +/turf/closed/indestructible/oldshuttle, +/area/ruin/powered) +"d" = ( +/obj/machinery/door/airlock/glass, +/turf/open/floor/oldshuttle{ + baseturf = /turf/open/space; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15" + }, +/area/ruin/powered) +"e" = ( +/turf/open/space, +/turf/closed/indestructible/oldshuttle/corner, +/area/ruin/powered) +"f" = ( +/turf/open/floor/oldshuttle{ + baseturf = /turf/open/space; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15" + }, +/turf/closed/indestructible/oldshuttle/corner{ + tag = "icon-corner (NORTH)"; + icon_state = "corner"; + dir = 1 + }, +/area/ruin/powered) +"g" = ( +/turf/open/floor/oldshuttle{ + baseturf = /turf/open/space; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15" + }, +/area/ruin/powered) +"h" = ( +/turf/open/floor/oldshuttle{ + baseturf = /turf/open/space; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15" + }, +/turf/closed/indestructible/oldshuttle/corner{ + tag = "icon-corner (EAST)"; + icon_state = "corner"; + dir = 4 + }, +/area/ruin/powered) +"i" = ( +/obj/structure/closet{ + icon_state = "oldcloset"; + name = "strange closet" + }, +/turf/open/floor/oldshuttle{ + baseturf = /turf/open/space; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15" + }, +/area/ruin/powered) +"j" = ( +/obj/structure/shuttle/engine/propulsion/burst{ + tag = "icon-propulsion (NORTH)"; + icon_state = "propulsion"; + dir = 1 + }, +/turf/open/space, +/area/ruin/powered) +"k" = ( +/mob/living/simple_animal/hostile/retaliate/spaceman, +/turf/open/floor/oldshuttle{ + baseturf = /turf/open/space; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15" + }, +/area/ruin/powered) +"l" = ( +/turf/closed/indestructible/oldshuttle{ + tag = "icon-orange"; + icon_state = "orange" + }, +/area/ruin/powered) +"m" = ( +/obj/structure/chair/old{ + tag = "icon-chairold (NORTH)"; + icon_state = "chairold"; + dir = 1 + }, +/turf/open/floor/oldshuttle{ + baseturf = /turf/open/space; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15" + }, +/area/ruin/powered) +"n" = ( +/obj/structure/chair/old{ + tag = "icon-chairold (NORTH)"; + icon_state = "chairold"; + dir = 1 + }, +/obj/item/weapon/crowbar/large{ + desc = "It's a big crowbar. It doesn't fit in your pockets, because it's big. It feels oddly heavy.."; + force = 20; + name = "heavy crowbar" + }, +/turf/open/floor/oldshuttle{ + baseturf = /turf/open/space; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15" + }, +/area/ruin/powered) +"o" = ( +/obj/structure/chair/old{ + tag = "icon-chairold (NORTH)"; + icon_state = "chairold"; + dir = 1 + }, +/mob/living/simple_animal/hostile/retaliate/spaceman, +/turf/open/floor/oldshuttle{ + baseturf = /turf/open/space; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15" + }, +/area/ruin/powered) +"p" = ( +/turf/open/floor/oldshuttle{ + baseturf = /turf/open/space; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15" + }, +/turf/closed/indestructible/oldshuttle/corner{ + tag = "icon-corner (WEST)"; + icon_state = "corner"; + dir = 8 + }, +/area/ruin/powered) +"q" = ( +/turf/open/floor/oldshuttle{ + baseturf = /turf/open/space; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15" + }, +/turf/closed/indestructible/oldshuttle/corner, +/area/ruin/powered) +"r" = ( +/turf/open/space, +/turf/closed/indestructible/oldshuttle/corner{ + tag = "icon-corner (NORTH)"; + icon_state = "corner"; + dir = 1 + }, +/area/ruin/powered) +"s" = ( +/turf/open/space, +/turf/closed/indestructible/oldshuttle/corner{ + tag = "icon-corner (EAST)"; + icon_state = "corner"; + dir = 4 + }, +/area/ruin/powered) +"t" = ( +/obj/machinery/power/generator, +/turf/open/floor/oldshuttle{ + baseturf = /turf/open/space; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15" + }, +/area/ruin/powered) +"u" = ( +/obj/machinery/power/smes, +/turf/open/floor/oldshuttle{ + baseturf = /turf/open/space; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15" + }, +/area/ruin/powered) +"v" = ( +/obj/structure/shuttle/engine/propulsion/burst/left, +/turf/open/space, +/area/ruin/powered) +"w" = ( +/obj/structure/shuttle/engine/propulsion/burst/right, +/turf/open/space, +/area/ruin/powered) +"x" = ( +/obj/structure/shuttle/engine/propulsion/burst, +/turf/open/space, +/area/ruin/powered) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +a +b +c +l +v +a +"} +(2,1,1) = {" +a +a +a +a +a +a +a +b +c +c +f +g +l +l +x +"} +(3,1,1) = {" +a +a +a +a +a +b +d +f +g +g +g +g +l +l +x +"} +(4,1,1) = {" +a +a +a +a +j +l +g +g +g +g +p +d +l +w +a +"} +(5,1,1) = {" +a +a +a +a +b +c +g +g +g +p +r +a +a +a +a +"} +(6,1,1) = {" +a +a +b +c +c +c +c +c +c +c +c +c +c +s +a +"} +(7,1,1) = {" +a +b +f +i +c +i +i +i +i +i +i +c +u +c +s +"} +(8,1,1) = {" +b +f +i +i +c +m +m +m +o +m +m +c +g +q +c +"} +(9,1,1) = {" +c +g +g +g +g +m +m +m +m +m +p +c +g +g +c +"} +(10,1,1) = {" +d +g +g +g +k +g +g +g +g +g +c +t +g +g +d +"} +(11,1,1) = {" +c +g +g +g +g +m +m +m +m +m +q +c +g +g +c +"} +(12,1,1) = {" +e +h +i +i +c +n +m +m +o +m +m +c +g +p +c +"} +(13,1,1) = {" +a +e +h +i +c +i +i +i +i +i +i +c +u +c +r +"} +(14,1,1) = {" +a +a +e +c +c +c +c +c +c +c +c +c +c +r +a +"} +(15,1,1) = {" +a +a +a +a +e +c +g +g +g +q +s +a +a +a +a +"} +(16,1,1) = {" +a +a +a +a +j +l +g +g +g +g +q +d +l +v +a +"} +(17,1,1) = {" +a +a +a +a +a +e +d +h +g +g +g +g +l +l +x +"} +(18,1,1) = {" +a +a +a +a +a +a +a +e +c +c +h +g +l +l +x +"} +(19,1,1) = {" +a +a +a +a +a +a +a +a +a +a +e +c +l +w +a +"} diff --git a/_maps/RandomRuins/SpaceRuins/spacebar.dmm b/_maps/RandomRuins/SpaceRuins/spacebar.dmm index d8d84a01eb..a4f4df9211 100644 --- a/_maps/RandomRuins/SpaceRuins/spacebar.dmm +++ b/_maps/RandomRuins/SpaceRuins/spacebar.dmm @@ -1,2505 +1,161 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"aa" = ( -/turf/open/space, -/area/space) -"ab" = ( -/turf/closed/mineral, -/area/space) -"ac" = ( -/turf/open/floor/plating/asteroid, -/area/space) -"ad" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/ruin/unpowered) -"ae" = ( -/turf/closed/wall, -/area/ruin/unpowered) -"af" = ( -/turf/open/floor/plating/asteroid, -/area/ruin/powered) -"ag" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating/asteroid, -/area/ruin/powered) -"ah" = ( -/turf/closed/mineral, -/area/ruin/powered) -"ai" = ( -/turf/open/floor/plating/asteroid, -/turf/closed/wall/shuttle{ - icon_state = "swall_f6"; - dir = 2 - }, -/area/ruin/powered) -"aj" = ( -/obj/structure/grille, -/obj/structure/window/shuttle, -/turf/open/floor/plating, -/area/ruin/powered) -"ak" = ( -/turf/open/floor/plating/asteroid, -/turf/closed/wall/shuttle{ - dir = 2; - icon_state = "swall_f10"; - layer = 2 - }, -/area/ruin/powered) -"al" = ( -/turf/closed/wall, -/area/ruin/powered) -"am" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall3"; - dir = 2 - }, -/area/ruin/powered) -"an" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plasteel/shuttle, -/area/ruin/powered) -"ao" = ( -/obj/structure/table, -/obj/machinery/chem_dispenser/drinks/beer, -/turf/open/floor/wood, -/area/ruin/powered{ - name = "Space Bar" - }) -"ap" = ( -/obj/structure/table, -/obj/machinery/chem_dispenser/drinks, -/turf/open/floor/wood, -/area/ruin/powered{ - name = "Space Bar" - }) -"aq" = ( -/obj/structure/table, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/item/weapon/book/manual/barman_recipes, -/turf/open/floor/wood, -/area/ruin/powered{ - name = "Space Bar" - }) -"ar" = ( -/turf/open/floor/wood, -/area/ruin/powered{ - name = "Space Bar" - }) -"as" = ( -/obj/structure/table, -/obj/item/toy/figure/bartender, -/turf/open/floor/wood, -/area/ruin/powered{ - name = "Space Bar" - }) -"at" = ( -/obj/structure/table, -/obj/item/weapon/reagent_containers/food/drinks/shaker, -/turf/open/floor/wood, -/area/ruin/powered{ - name = "Space Bar" - }) -"au" = ( -/obj/effect/mob_spawn/human/bartender/alive, -/turf/open/floor/wood, -/area/ruin/powered{ - name = "Space Bar" - }) -"av" = ( -/obj/structure/reagent_dispensers/beerkeg, -/turf/open/floor/wood, -/area/ruin/powered{ - name = "Space Bar" - }) -"aw" = ( -/turf/open/floor/plasteel/shuttle, -/area/ruin/powered) -"ax" = ( -/obj/machinery/door/airlock{ - name = "Bar Storage"; - req_access_txt = "25" - }, -/turf/open/floor/wood, -/area/ruin/powered{ - name = "Space Bar" - }) -"ay" = ( -/obj/structure/table, -/obj/machinery/reagentgrinder, -/turf/open/floor/wood, -/area/ruin/powered{ - name = "Space Bar" - }) -"az" = ( -/turf/open/floor/plating, -/obj/structure/shuttle/engine/propulsion/burst, -/turf/closed/wall/shuttle{ - icon_state = "swall_f5"; - dir = 2 - }, -/area/ruin/powered) -"aA" = ( -/obj/machinery/door/airlock/shuttle{ - name = "Escape Pod Airlock" - }, -/turf/open/floor/plasteel/shuttle, -/area/ruin/powered) -"aB" = ( -/turf/open/floor/plating, -/obj/structure/shuttle/engine/propulsion/burst, -/turf/closed/wall/shuttle{ - icon_state = "swall_f9"; - dir = 2 - }, -/area/ruin/powered) -"aC" = ( -/obj/machinery/button/door{ - id = "spacebardock"; - name = "pod dock door cycle"; - pixel_x = -32 - }, -/turf/open/floor/wood, -/area/ruin/powered{ - name = "Space Bar" - }) -"aD" = ( -/obj/machinery/vending/boozeomat, -/turf/closed/wall, -/area/ruin/powered{ - name = "Space Bar" - }) -"aE" = ( -/obj/machinery/light/small, -/obj/structure/table, -/obj/machinery/microwave, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/wood, -/area/ruin/powered{ - name = "Space Bar" - }) -"aF" = ( -/obj/structure/table, -/obj/item/stack/sheet/metal{ - amount = 10 - }, -/turf/open/floor/wood, -/area/ruin/powered{ - name = "Space Bar" - }) -"aG" = ( -/obj/structure/table, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/ruin/powered{ - name = "Space Bar" - }) -"aH" = ( -/obj/structure/table, -/obj/item/weapon/reagent_containers/food/drinks/beer, -/obj/item/weapon/reagent_containers/glass/rag, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/ruin/powered{ - name = "Space Bar" - }) -"aI" = ( -/obj/machinery/door/airlock{ - name = "Bar Storage"; - req_access_txt = "25" - }, -/turf/open/floor/plasteel{ - icon_state = "wood" - }, -/area/ruin/powered{ - name = "Space Bar" - }) -"aJ" = ( -/obj/structure/chair/stool, -/turf/open/floor/plasteel/bar, -/area/ruin/powered{ - name = "Space Bar" - }) -"aK" = ( -/turf/open/floor/plasteel/bar, -/area/ruin/powered{ - name = "Space Bar" - }) -"aL" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/bar, -/area/ruin/powered{ - name = "Space Bar" - }) -"aM" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/ruin/powered) -"aN" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/closed/wall, -/area/ruin/powered{ - name = "Space Bar" - }) -"aO" = ( -/obj/machinery/door/airlock/external, -/turf/open/floor/plating, -/area/ruin/powered) -"aP" = ( -/turf/open/floor/plating, -/area/ruin/powered) -"aQ" = ( -/obj/structure/chair{ - tag = "icon-chair (EAST)"; - icon_state = "chair"; - dir = 4 - }, -/turf/open/floor/plasteel/bar, -/area/ruin/powered{ - name = "Space Bar" - }) -"aR" = ( -/obj/structure/table/wood, -/turf/open/floor/plasteel/bar, -/area/ruin/powered{ - name = "Space Bar" - }) -"aS" = ( -/obj/structure/chair{ - tag = "icon-chair (WEST)"; - icon_state = "chair"; - dir = 8 - }, -/turf/open/floor/plasteel/bar, -/area/ruin/powered{ - name = "Space Bar" - }) -"aT" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/turf/open/floor/plasteel/bar, -/area/ruin/powered{ - name = "Space Bar" - }) -"aU" = ( -/obj/structure/chair, -/turf/open/floor/plasteel/bar, -/area/ruin/powered{ - name = "Space Bar" - }) -"aV" = ( -/obj/machinery/vending/cola, -/turf/open/floor/plasteel/bar, -/area/ruin/powered{ - name = "Space Bar" - }) -"aW" = ( -/obj/machinery/vending/cigarette, -/turf/open/floor/plasteel/bar, -/area/ruin/powered{ - name = "Space Bar" - }) -"aX" = ( -/obj/machinery/vending/coffee, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/bar, -/area/ruin/powered{ - name = "Space Bar" - }) -"aY" = ( -/obj/machinery/vending/snack, -/obj/machinery/light, -/turf/open/floor/plasteel/bar, -/area/ruin/powered{ - name = "Space Bar" - }) -"aZ" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plasteel/bar, -/area/ruin/powered{ - name = "Space Bar" - }) -"ba" = ( -/obj/machinery/door/airlock{ - name = "Unisex Bathroom" - }, -/turf/open/floor/plasteel/freezer, -/area/ruin/powered{ - name = "Space Bar" - }) -"bb" = ( -/obj/structure/urinal{ - pixel_x = -32 - }, -/turf/open/floor/plasteel/freezer, -/area/ruin/powered{ - name = "Space Bar" - }) -"bc" = ( -/turf/open/floor/plasteel/freezer, -/area/ruin/powered{ - name = "Space Bar" - }) -"bd" = ( -/obj/structure/sink{ - dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 - }, -/obj/structure/mirror{ - pixel_x = 28 - }, -/turf/open/floor/plasteel/freezer, -/area/ruin/powered{ - name = "Space Bar" - }) -"be" = ( -/obj/structure/table/wood, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 4 - }, -/turf/open/floor/plasteel/bar, -/area/ruin/powered{ - name = "Space Bar" - }) -"bf" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel/freezer, -/area/ruin/powered{ - name = "Space Bar" - }) -"bg" = ( -/obj/structure/toilet{ - dir = 4 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel/freezer, -/area/ruin/powered{ - name = "Space Bar" - }) -"bh" = ( -/obj/machinery/door/airlock{ - name = "Toilet" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/freezer, -/area/ruin/powered{ - name = "Space Bar" - }) -"bi" = ( -/obj/effect/glowshroom/single, -/turf/open/floor/plasteel/freezer, -/area/ruin/powered{ - name = "Space Bar" - }) -"bj" = ( -/turf/open/floor/plating, -/area/ruin/powered{ - name = "Space Bar" - }) -"bk" = ( -/obj/machinery/bluespace_beacon, -/turf/open/floor/plasteel/bar, -/area/ruin/powered{ - name = "Space Bar" - }) -"bl" = ( -/turf/open/floor/plating{ - icon_plating = "warnplate"; - icon_state = "warnplate" - }, -/area/ruin/powered) -"bm" = ( -/obj/machinery/door/poddoor/preopen{ - id = "spacebardock"; - name = "airlock dock" - }, -/turf/open/floor/plating, -/area/ruin/powered) -"bn" = ( -/obj/machinery/door/poddoor{ - id = "spacebardock"; - name = "airlock dock" - }, -/turf/open/floor/plating, -/area/ruin/powered) -"bo" = ( -/turf/closed/wall, -/area/ruin/powered{ - name = "Space Bar" - }) -"bp" = ( -/obj/structure/closet/secure_closet/freezer/kitchen, -/turf/open/floor/wood, -/area/ruin/powered{ - name = "Space Bar" - }) -"bq" = ( -/obj/structure/closet/secure_closet/freezer/fridge, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/ruin/powered{ - name = "Space Bar" - }) -"br" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/ruin/powered{ - name = "Space Bar" - }) -"bs" = ( -/obj/machinery/door/airlock/external, -/turf/open/floor/plating, -/area/ruin/powered{ - name = "Space Bar" - }) -"bt" = ( -/turf/open/floor/plating/asteroid/airless, -/area/space) -"bu" = ( -/obj/machinery/airalarm{ - dir = 4; - icon_state = "alarm0"; - pixel_x = -22 - }, -/turf/open/floor/wood, -/area/ruin/powered{ - name = "Space Bar" - }) -"bv" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber, -/turf/open/floor/wood, -/area/ruin/powered{ - name = "Space Bar" - }) -"bw" = ( -/obj/machinery/atmospherics/components/unary/vent_pump, -/turf/open/floor/wood, -/area/ruin/powered{ - name = "Space Bar" - }) -"bx" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 - }, -/turf/open/floor/plating/asteroid, -/area/ruin/powered) -"by" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating/asteroid, -/area/ruin/powered) -"bz" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/ruin/powered{ - name = "Space Bar" - }) -"bA" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/ruin/powered{ - name = "Space Bar" - }) -"bB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/ruin/powered{ - name = "Space Bar" - }) -"bC" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/plating/asteroid, -/area/ruin/powered) -"bD" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating/asteroid, -/area/ruin/powered) -"bE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/ruin/powered{ - name = "Space Bar" - }) -"bF" = ( -/obj/structure/chair/stool, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/bar, -/area/ruin/powered{ - name = "Space Bar" - }) -"bG" = ( -/obj/structure/chair/stool, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/bar, -/area/ruin/powered{ - name = "Space Bar" - }) -"bH" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber, -/turf/open/floor/plasteel/bar, -/area/ruin/powered{ - name = "Space Bar" - }) -"bI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/bar, -/area/ruin/powered{ - name = "Space Bar" - }) -"bJ" = ( -/obj/machinery/airalarm{ - frequency = 1439; - locked = 0; - pixel_y = 23 - }, -/turf/open/floor/plasteel/bar, -/area/ruin/powered{ - name = "Space Bar" - }) -"bK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/bar, -/area/ruin/powered{ - name = "Space Bar" - }) -"bL" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/bar, -/area/ruin/powered{ - name = "Space Bar" - }) -"bM" = ( -/obj/machinery/computer/teleporter, -/turf/open/floor/plasteel/bar, -/area/ruin/powered{ - name = "Space Bar" - }) -"bN" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/bar, -/area/ruin/powered{ - name = "Space Bar" - }) -"bO" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/bar, -/area/ruin/powered{ - name = "Space Bar" - }) -"bP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/bar, -/area/ruin/powered{ - name = "Space Bar" - }) -"bQ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 - }, -/turf/open/floor/plasteel/bar, -/area/ruin/powered{ - name = "Space Bar" - }) -"bR" = ( -/obj/machinery/teleport/station, -/turf/open/floor/plasteel/bar, -/area/ruin/powered{ - name = "Space Bar" - }) -"bS" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/bar, -/area/ruin/powered{ - name = "Space Bar" - }) -"bT" = ( -/obj/machinery/teleport/hub, -/turf/open/floor/plasteel/bar, -/area/ruin/powered{ - name = "Space Bar" - }) -"bU" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/plasteel/bar, -/area/ruin/powered{ - name = "Space Bar" - }) -"bV" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/ruin/powered{ - name = "Space Bar" - }) -"bW" = ( -/obj/machinery/airalarm{ - dir = 4; - icon_state = "alarm0"; - pixel_x = -22 - }, -/turf/open/floor/plasteel/bar, -/area/ruin/powered{ - name = "Space Bar" - }) -"bX" = ( -/obj/structure/urinal{ - pixel_x = -32 - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/plasteel/freezer, -/area/ruin/powered{ - name = "Space Bar" - }) -"bY" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/freezer, -/area/ruin/powered{ - name = "Space Bar" - }) -"bZ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber, -/turf/open/floor/plasteel/freezer, -/area/ruin/powered{ - name = "Space Bar" - }) -"ca" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/freezer, -/area/ruin/powered{ - name = "Space Bar" - }) -"cb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/freezer, -/area/ruin/powered{ - name = "Space Bar" - }) -"cc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating/asteroid, -/area/ruin/powered) -"cd" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/mineral, -/area/ruin/powered) -"ce" = ( -/obj/machinery/atmospherics/components/unary/tank/air, -/turf/open/floor/plating/asteroid, -/area/ruin/powered) -"cf" = ( -/obj/machinery/button/door{ - id = "spacebardock"; - name = "Podbay Airlock"; - pixel_y = -24 - }, -/turf/open/floor/plating/asteroid, -/area/ruin/powered) -"cg" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plating/asteroid, -/area/ruin/powered) -"ch" = ( -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/obj/machinery/meter, -/turf/open/floor/plating/asteroid, -/area/ruin/powered) -"ci" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 - }, -/turf/open/floor/plating/asteroid, -/area/ruin/powered) -"cj" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating/asteroid, -/area/ruin/powered) -"ck" = ( -/obj/machinery/atmospherics/components/binary/valve/open, -/turf/open/floor/plating/asteroid, -/area/ruin/powered) -"cl" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating/asteroid, -/area/ruin/powered) -"cm" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/machinery/meter, -/turf/open/floor/plating/asteroid, -/area/ruin/powered) -"cn" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/plating/asteroid, -/area/ruin/powered) -"co" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/ruin/powered) -"cp" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating/asteroid/airless, -/area/space) -"cq" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/mineral, -/area/space) -"cr" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1 - }, -/turf/open/floor/plating/asteroid/airless, -/area/space) +"aa" = (/turf/open/space,/area/space) +"ab" = (/turf/closed/mineral,/area/ruin/unpowered/no_grav) +"ac" = (/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) +"ad" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ruin/powered/spacebar) +"ae" = (/turf/closed/wall,/area/ruin/powered/spacebar) +"af" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ruin/powered/spacebar) +"ag" = (/turf/open/floor/plating/asteroid,/area/ruin/powered/spacebar) +"ah" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating/asteroid,/area/ruin/powered/spacebar) +"ai" = (/turf/closed/mineral,/area/ruin/powered/spacebar) +"aj" = (/turf/open/floor/plating/asteroid,/turf/closed/wall/mineral/titanium/interior,/area/ruin/powered/spacebar) +"ak" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/ruin/powered/spacebar) +"al" = (/turf/closed/wall,/area/ruin/powered/spacebar/bar) +"am" = (/turf/closed/wall/mineral/titanium,/area/ruin/powered/spacebar) +"an" = (/obj/structure/chair{dir = 1},/turf/open/floor/mineral/titanium/blue,/area/ruin/powered/spacebar) +"ao" = (/obj/structure/table,/obj/machinery/chem_dispenser/drinks/beer,/turf/open/floor/wood,/area/ruin/powered/spacebar/bar) +"ap" = (/obj/structure/table,/obj/machinery/chem_dispenser/drinks,/turf/open/floor/wood,/area/ruin/powered/spacebar/bar) +"aq" = (/obj/structure/table,/obj/machinery/light/small{dir = 1},/obj/item/weapon/book/manual/barman_recipes,/turf/open/floor/wood,/area/ruin/powered/spacebar/bar) +"ar" = (/turf/open/floor/wood,/area/ruin/powered/spacebar/bar) +"as" = (/obj/structure/table,/obj/item/toy/figure/bartender,/turf/open/floor/wood,/area/ruin/powered/spacebar/bar) +"at" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/shaker,/turf/open/floor/wood,/area/ruin/powered/spacebar/bar) +"au" = (/obj/effect/mob_spawn/human/bartender/alive,/turf/open/floor/wood,/area/ruin/powered/spacebar/bar) +"av" = (/obj/structure/reagent_dispensers/beerkeg,/turf/open/floor/wood,/area/ruin/powered/spacebar/bar) +"aw" = (/turf/open/floor/mineral/titanium/blue,/area/ruin/powered/spacebar) +"ax" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/open/floor/wood,/area/ruin/powered/spacebar/bar) +"ay" = (/obj/machinery/door/airlock{name = "Bar Storage"; req_access_txt = "25"},/turf/open/floor/wood,/area/ruin/powered/spacebar/bar) +"az" = (/obj/machinery/atmospherics/components/unary/vent_scrubber,/turf/open/floor/wood,/area/ruin/powered/spacebar/bar) +"aA" = (/obj/machinery/atmospherics/components/unary/vent_pump,/turf/open/floor/wood,/area/ruin/powered/spacebar/bar) +"aB" = (/obj/structure/table,/obj/machinery/reagentgrinder,/turf/open/floor/wood,/area/ruin/powered/spacebar/bar) +"aC" = (/turf/open/floor/plating,/obj/structure/shuttle/engine/propulsion/burst,/turf/closed/wall/mineral/titanium/interior,/area/ruin/powered/spacebar) +"aD" = (/obj/machinery/door/airlock/titanium{name = "Escape Pod Airlock"},/turf/open/floor/mineral/titanium/blue,/area/ruin/powered/spacebar) +"aE" = (/obj/machinery/button/door{id = "spacebardock"; name = "pod dock door cycle"; pixel_x = -32},/turf/open/floor/wood,/area/ruin/powered/spacebar/bar) +"aF" = (/obj/machinery/vending/boozeomat,/turf/closed/wall,/area/ruin/powered/spacebar/bar) +"aG" = (/obj/structure/closet/secure_closet/freezer/kitchen,/turf/open/floor/wood,/area/ruin/powered/spacebar/bar) +"aH" = (/obj/machinery/light/small,/obj/structure/table,/obj/machinery/microwave,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/ruin/powered/spacebar/bar) +"aI" = (/obj/structure/closet/secure_closet/freezer/fridge,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/ruin/powered/spacebar/bar) +"aJ" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 10},/turf/open/floor/wood,/area/ruin/powered/spacebar/bar) +"aK" = (/turf/closed/wall,/area/ruin/powered/spacebar) +"aL" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1},/turf/open/floor/plating/asteroid,/area/ruin/powered/spacebar) +"aM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating/asteroid,/area/ruin/powered/spacebar) +"aN" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/ruin/powered/spacebar/bar) +"aO" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/wood,/area/ruin/powered/spacebar/bar) +"aP" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/item/weapon/reagent_containers/glass/rag,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/wood,/area/ruin/powered/spacebar/bar) +"aQ" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/ruin/powered/spacebar/bar) +"aR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/ruin/powered/spacebar/bar) +"aS" = (/obj/machinery/door/airlock{name = "Bar Storage"; req_access_txt = "25"},/turf/open/floor/plasteel{icon_state = "wood"},/area/ruin/powered/spacebar/bar) +"aT" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plating/asteroid,/area/ruin/powered/spacebar) +"aU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating/asteroid,/area/ruin/powered/spacebar) +"aV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/ruin/powered/spacebar/bar) +"aW" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"aX" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"aY" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"aZ" = (/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"ba" = (/obj/machinery/atmospherics/components/unary/vent_scrubber,/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bb" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bd" = (/obj/machinery/airalarm{frequency = 1439; locked = 0; pixel_y = 23},/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"be" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ruin/powered/spacebar/bar) +"bf" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/closed/wall,/area/ruin/powered/spacebar/bar) +"bg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bh" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bi" = (/obj/machinery/computer/teleporter,/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bj" = (/obj/machinery/door/airlock/external,/turf/open/floor/plating,/area/ruin/powered/spacebar/bar) +"bk" = (/turf/open/floor/plating,/area/ruin/powered/spacebar/bar) +"bl" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bp" = (/obj/machinery/teleport/station,/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bq" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"br" = (/obj/structure/chair{tag = "icon-chair (EAST)"; icon_state = "chair"; dir = 4},/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bs" = (/obj/structure/table/wood,/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bt" = (/obj/structure/chair{tag = "icon-chair (WEST)"; icon_state = "chair"; dir = 8},/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bv" = (/obj/machinery/teleport/hub,/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bw" = (/obj/structure/chair,/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bx" = (/obj/machinery/bluespace_beacon,/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"by" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bz" = (/obj/machinery/vending/cola,/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bA" = (/obj/machinery/vending/cigarette,/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bB" = (/obj/machinery/vending/coffee,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bC" = (/obj/machinery/vending/snack,/obj/machinery/light,/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bD" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/ruin/powered/spacebar/bar) +"bF" = (/obj/machinery/door/airlock{name = "Unisex Bathroom"},/turf/open/floor/plasteel/freezer,/area/ruin/powered/spacebar/bar) +"bG" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bH" = (/obj/structure/urinal{pixel_x = -32},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/freezer,/area/ruin/powered/spacebar/bar) +"bI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/freezer,/area/ruin/powered/spacebar/bar) +"bJ" = (/obj/machinery/atmospherics/components/unary/vent_scrubber,/turf/open/floor/plasteel/freezer,/area/ruin/powered/spacebar/bar) +"bK" = (/turf/open/floor/plasteel/freezer,/area/ruin/powered/spacebar/bar) +"bL" = (/obj/structure/urinal{pixel_x = -32},/turf/open/floor/plasteel/freezer,/area/ruin/powered/spacebar/bar) +"bM" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plasteel/freezer,/area/ruin/powered/spacebar/bar) +"bN" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/freezer,/area/ruin/powered/spacebar/bar) +"bO" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/mirror{pixel_x = 28},/turf/open/floor/plasteel/freezer,/area/ruin/powered/spacebar/bar) +"bP" = (/obj/structure/table/wood,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bQ" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/freezer,/area/ruin/powered/spacebar/bar) +"bR" = (/obj/structure/toilet{dir = 4},/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/freezer,/area/ruin/powered/spacebar/bar) +"bS" = (/obj/machinery/door/airlock{name = "Toilet"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/freezer,/area/ruin/powered/spacebar/bar) +"bT" = (/obj/structure/glowshroom/single,/turf/open/floor/plasteel/freezer,/area/ruin/powered/spacebar/bar) +"bU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating/asteroid,/area/ruin/powered/spacebar) +"bV" = (/obj/machinery/door/airlock/external,/turf/open/floor/plating,/area/ruin/powered/spacebar) +"bW" = (/turf/open/floor/plating,/area/ruin/powered/spacebar) +"bX" = (/obj/machinery/atmospherics/components/unary/tank/air,/turf/open/floor/plating/asteroid,/area/ruin/powered/spacebar) +"bY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating/asteroid,/area/ruin/powered/spacebar) +"bZ" = (/obj/machinery/button/door{id = "spacebardock"; name = "Podbay Airlock"; pixel_y = -24},/turf/open/floor/plating/asteroid,/area/ruin/powered/spacebar) +"ca" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating/asteroid,/area/ruin/powered/spacebar) +"cb" = (/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/obj/machinery/meter,/turf/open/floor/plating/asteroid,/area/ruin/powered/spacebar) +"cc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/plating/asteroid,/area/ruin/powered/spacebar) +"cd" = (/obj/machinery/atmospherics/components/binary/valve/open,/turf/open/floor/plating/asteroid,/area/ruin/powered/spacebar) +"ce" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plating/asteroid,/area/ruin/powered/spacebar) +"cf" = (/turf/open/floor/plating/asteroid,/area/ruin/unpowered/no_grav) +"cg" = (/obj/machinery/door/poddoor/preopen{id = "spacebardock"; name = "airlock dock"},/turf/open/floor/plating,/area/ruin/powered/spacebar) +"ch" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/obj/machinery/meter,/turf/open/floor/plating/asteroid,/area/ruin/powered/spacebar) +"ci" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plating/asteroid,/area/ruin/powered/spacebar) +"cj" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/ruin/powered/spacebar) +"ck" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) +"cl" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/mineral,/area/ruin/unpowered/no_grav) +"cm" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 1},/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) +"cn" = (/obj/machinery/door/poddoor{id = "spacebardock"; name = "airlock dock"},/turf/open/floor/plating,/area/ruin/powered/spacebar) (1,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(2,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(3,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(4,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -aa -aa -aa -aa -aa -aa -aa -ab -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 -bt -ab -ab -ab -bt -aa -aa -bt -ab -ab -ab -bt -bt -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 -bt -bt -bt -bt -bt -bt -bt -bt -bt -bt -bt -bt -bt -bt -bt -bt -bt -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(7,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bt -bt -aM -aM -al -aM -bt -bt -bt -aM -aM -aM -aM -aM -bt -bt -al -aO -al -bt -bt -ab -ab -aa -aa -aa -aa -aa -aa -"} -(8,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bt -bt -bt -aM -af -af -aM -bt -aM -aM -af -af -af -af -af -aM -aM -al -aP -al -bt -ab -ab -ab -aa -aa -aa -aa -aa -aa -"} -(9,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -bt -bt -bt -aM -af -af -af -af -aM -af -af -af -af -af -af -af -af -af -al -aP -al -al -al -al -ab -ab -aa -aa -aa -aa -aa -"} -(10,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -bt -bt -bt -aM -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -al -aO -al -af -af -al -ab -ab -aa -aa -aa -aa -aa -"} -(11,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -bt -bt -bt -aM -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -al -al -al -al -al -al -al -al -aa -aa -"} -(12,1,1) = {" -aa -aa -aa -aa -aa -aa -bt -bt -bt -aM -af -ai -am -am -az -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -aP -bm -aP -aP -aP -aP -bn -aa -aa -aa -"} -(13,1,1) = {" -aa -aa -aa -aa -aa -aa -bt -bt -aM -af -af -aj -an -aw -aA -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -aP -bm -aP -aP -aP -aP -bn -aa -aa -aa -"} -(14,1,1) = {" -aa -aa -aa -aa -aa -bt -bt -bt -aM -af -af -ak -am -am -aB -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -aP -bm -aP -aP -aP -aP -bn -aa -aa -aa -"} -(15,1,1) = {" -aa -aa -aa -aa -aa -bt -bt -bt -aM -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -aP -bm -aP -aP -aP -aP -bn -aa -aa -aa -"} -(16,1,1) = {" -aa -aa -aa -aa -bt -bt -bt -ad -af -af -af -af -af -af -af -bx -bC -af -af -af -af -af -af -ai -am -am -az -af -af -af -aP -bm -aP -aP -aP -aP -bn -aa -aa -aa -"} -(17,1,1) = {" -aa -aa -aa -aa -bt -bt -bt -ad -af -af -af -ah -ah -ah -af -by -bD -bo -bs -bo -af -af -af -aj -an -aw -aA -af -af -af -aP -bm -aP -aP -aP -aP -bn -aa -aa -aa -"} -(18,1,1) = {" -aa -aa -aa -aa -bt -bt -bt -ae -af -af -ah -ah -ah -ah -ah -by -bD -br -bj -br -af -af -af -ak -am -am -aB -af -af -cf -al -al -al -al -al -al -al -al -aa -aa -"} -(19,1,1) = {" -aa -aa -aa -aa -bt -bt -bt -ad -af -ah -ah -ah -ah -ah -ah -by -bD -aN -bj -br -af -af -af -af -af -af -af -af -af -af -af -af -al -bt -bt -bt -bt -aa -aa -aa -"} -(20,1,1) = {" -aa -aa -aa -ab -bt -bt -bt -ad -af -af -ah -bo -bo -bo -bo -bz -bE -bo -bs -bo -bo -bo -bo -bo -br -af -af -af -af -ah -af -af -al -bt -bt -bt -bt -aa -aa -aa -"} -(21,1,1) = {" -aa -aa -aa -ab -ab -bt -bt -bt -aM -af -ah -bo -ao -bu -aC -aG -bF -aK -aK -aT -aU -aR -aZ -bW -aK -br -af -af -ah -ah -ah -af -al -bt -bt -bt -aa -aa -aa -aa -"} -(22,1,1) = {" -aa -aa -aa -ab -ab -bt -bt -bt -aM -af -af -bo -ap -ar -ar -aG -bG -bI -bN -bI -bI -bN -bI -bN -bI -bI -br -cc -cc -cc -cc -cg -aM -bt -bt -bt -aa -aa -aa -aa -"} -(23,1,1) = {" -aa -aa -aa -aa -ab -ab -bt -bt -bt -aM -af -bo -aq -ar -ar -aH -aJ -aK -bO -aQ -aK -bU -aK -bO -aK -aK -aK -br -ce -cg -af -bD -aM -bt -bt -aa -aa -aa -aa -aa -"} -(24,1,1) = {" -aa -aa -aa -aa -ab -ab -bt -bt -bt -aM -af -bo -ar -ar -ar -aG -aJ -aK -bO -aR -aK -aK -aK -bO -aU -be -aZ -bo -ce -ch -ck -cm -aM -bt -bt -aa -aa -aa -aa -aa -"} -(25,1,1) = {" -aa -aa -aa -aa -aa -bt -bt -bt -aM -af -af -bo -bo -ax -aD -bz -aK -aK -bO -aS -aK -aV -bo -bE -bo -bo -bo -bo -ce -ci -af -cn -aM -bt -bt -aa -aa -aa -aa -aa -"} -(26,1,1) = {" -aa -aa -aa -aa -aa -bt -bt -bt -aM -af -af -bo -as -ar -bp -bz -bH -bK -bO -aK -bk -aW -bo -bX -bb -bo -bg -bo -ah -af -bx -af -aM -bt -bt -bt -aa -aa -aa -aa -"} -(27,1,1) = {" -aa -aa -aa -aa -aa -bt -bt -bt -aM -af -af -bo -at -bv -aE -bA -aL -bL -bP -bS -bS -aX -bV -bY -ca -bV -bh -bV -cj -cj -cl -cj -co -cp -cq -cr -aa -aa -aa -aa -"} -(28,1,1) = {" -aa -aa -aa -aa -aa -bt -bt -bt -aM -af -af -bo -au -bw -bq -bB -bI -bI -bQ -aK -aK -aY -bo -bZ -cb -bf -bc -bo -ah -ah -af -af -aM -bt -bt -bt -aa -aa -aa -aa -"} -(29,1,1) = {" -aa -aa -aa -aa -aa -bt -bt -bt -aM -af -af -bo -ar -ar -ar -aI -aK -aK -aK -aK -aK -aK -bo -bc -bc -bc -bi -bo -ah -ah -af -af -aM -bt -bt -ab -aa -aa -aa -aa -"} -(30,1,1) = {" -aa -aa -aa -aa -aa -aa -bt -bt -aM -af -af -bo -av -ay -aF -bo -bJ -bM -bR -bT -aK -aK -ba -bc -bd -bd -bc -bo -ah -ah -ah -af -aM -bt -bt -ab -aa -aa -aa -aa -"} -(31,1,1) = {" -aa -aa -aa -aa -aa -aa -bt -bt -ag -af -af -bo -bo -bo -bo -bo -bo -br -br -br -br -bo -bo -bo -bo -bo -bo -bo -ah -ah -ah -af -aM -bt -bt -aa -aa -aa -aa -aa -"} -(32,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -bt -bt -aM -af -af -af -af -af -af -af -af -af -af -af -af -ah -ah -ah -ah -ah -ah -ah -ah -af -af -al -bt -bt -aa -aa -aa -aa -aa -"} -(33,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -bt -bt -aM -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ah -ah -ah -ah -af -af -af -aM -bt -bt -bt -aa -aa -aa -aa -aa -"} -(34,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -bt -bt -aM -aM -aM -af -af -af -af -aM -aM -aM -aM -aM -af -af -af -af -af -af -af -aM -aM -al -bt -bt -aa -aa -aa -aa -aa -aa -"} -(35,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -bt -bt -bt -bt -bt -aM -aM -al -aM -bt -bt -bt -bt -bt -aM -af -af -af -af -aM -aM -bt -bt -bt -bt -bt -aa -aa -aa -aa -aa -aa -"} -(36,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -bt -bt -bt -bt -bt -bt -bt -bt -bt -ab -bt -bt -bt -bt -aM -aM -aM -aM -bt -bt -bt -ac -ab -bt -aa -aa -aa -aa -aa -aa -aa -"} -(37,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bt -bt -bt -aa -ab -ab -ab -aa -aa -bt -bt -bt -bt -bt -bt -bt -bt -bt -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(38,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -aa -aa -aa -bt -ab -ab -ab -bt -bt -bt -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(39,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(40,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacababacacacacacaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaacacacacacadadaeadadacacacacacacacacacacacacacaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaacacacafafafagagagagagafafacacafafafafafafahacacacacaaaaaaaaaa +aaaaaaaaaaaaaaaaacacacafagagagagagagaiagagagafafagagagagagagagafafacacacaaaaaaaa +aaaaaaaaaaaaaaacacacafagagagagagagaiaiaiaiagagagagagagagagagagagagafacacaaaaaaaa +aaaaaaaaaaacacacacafagajakajagagaiaiaialalalalalalalalalalalalagagafacacaaaaaaaa +aaaaaaaaaaacacacafagagamanamagagaiaiaialaoapaqaralasatauaravalagagafacacacaaaaaa +aaaaaaaaacacafafagagagamawamagagaiaiaialaxarararayarazaAaraBalagagagafacacaaaaaa +aaaaaaababacafagagagagaCaDaCagagagaiaialaEarararaFaGaHaIaraJalagagagafacacaaaaaa +aaaaaaaaabacaKagagagagagagagagaLaMaMaMaNaOaOaPaOaNaNaQaRaSalalagagagaKacaaaaaaaa +aaaaaaaaabacafafagagagagagagagaTaUaUaUaVaWaXaYaYaZbabbbcaZbdalagagagafacabaaaaaa +aaaaaaaaacacacacafagagagagagagagalbebfalaZbcaZaZaZbgbhbcaZbibeagagafacacababaaaa +aaaaaaaaaaacacafagagagagagagagagbjbkbkbjaZblbmbmbmbmbnboaZbpbeagagafacabababaaaa +aaaaaaaaaaacacafagagagagagagagagalbebealbqbcbrbsbtaZbuaZaZbvbeagagafacacaaaaaaaa +aaaaaaaaacacafagagagagagagagagagagagagalbwbcaZaZaZbxbuaZaZaZbeagagafacacaaaaaaaa +aaaaaaaaabacafagagagagagagagagagagagagalbsblbyaZbzbAbBbCaZaZalagagafacacacaaaaaa +aaaaaaababacafagagagagagagagagagagagagalbDbcaZaZalalbEalalbFalaiagagafacacacaaaa +aaaaaaaaabacafagagagagagagagagajakajagalbGblbmbmaVbHbIbJbKbKalaiagagagafacabaaaa +aaaaaaaaacacafagagagagagagagagamanamagbeaZbcaZbwalbLbMbNbKbOalaiaiagagafacabaaaa +aaaaaaaaacacacafagagagagagagagamawamagagbebcaZbPalalbEbQbKbOalaiaiagagafacabaaaa +aaaaaaaaaaacacafagagagagagagagaCaDaCagagagbeaZbDalbRbSbKbTbKalaiaiagagafacacaaaa +aaaaaaaaaaacaKaKaKaKagagagagagagagagagagagbUbealalalbEalalalalaiaiagafacacacaaaa +aaaaaaaaaaaabVbWbWbVagagagagagagagagagagaibUbXbXbXaibYaiaiaiaiaiagagafacacacaaaa +aaaaaaaaaaaaaKaKaKaKagagagagagagagbZagaiaibUcacbccagbYaiaiaiaiaiagafacacacaaaaaa +aaaaaaaaaaaaacacaKagaKbWbWbWbWbWbWaKagagaibUagcdagaLceagagaiaiagagafaccfaaaaaaaa +aaaaaaaaaaaaacabaKagaKcgcgcgcgcgcgaKagagagcaaUchciagbYagagagagagafaKacabaaaaaaaa +aaaaaaaaaaaaababaKaKaKbWbWbWbWbWbWaKaKaKaKafafafafafcjafafafafaKacacacacaaaaaaaa +aaaaaaaaaaaaababababaKbWbWbWbWbWbWaKacacacacacacacacckacacacacacacacacaaaaaaaaaa +aaaaaaaaaaaaaaaaababaKbWbWbWbWbWbWaKacacacacacacacacclacacacacacacaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaKbWbWbWbWbWbWaKacacacacaaaaaaaccmacababaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaKcncncncncncnaKacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaKaaaaaaaaaaaaaKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa "} diff --git a/_maps/RandomRuins/SpaceRuins/spacehotel.dmm b/_maps/RandomRuins/SpaceRuins/spacehotel.dmm new file mode 100644 index 0000000000..a259e23df9 --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/spacehotel.dmm @@ -0,0 +1,11028 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/open/space, +/area/space) +"ab" = ( +/obj/structure/grille, +/turf/open/space, +/area/space) +"ac" = ( +/obj/structure/lattice, +/turf/open/space, +/area/space) +"ad" = ( +/obj/machinery/power/solar, +/obj/structure/cable/yellow{ + d2 = 2; + icon_state = "0-2" + }, +/turf/open/floor/plating/airless, +/area/ruin/unpowered/no_grav) +"ae" = ( +/obj/machinery/power/solar, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + d2 = 2; + icon_state = "0-2" + }, +/turf/open/floor/plating/airless, +/area/ruin/unpowered/no_grav) +"af" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4"; + tag = "" + }, +/turf/open/floor/plating/airless, +/area/ruin/unpowered/no_grav) +"ag" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating/airless, +/area/ruin/unpowered/no_grav) +"ah" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8"; + tag = "" + }, +/turf/open/floor/plating/airless, +/area/ruin/unpowered/no_grav) +"ai" = ( +/obj/machinery/power/tracker, +/obj/structure/cable/yellow{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating/airless, +/area/ruin/unpowered/no_grav) +"aj" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating/airless, +/area/ruin/unpowered/no_grav) +"ak" = ( +/obj/machinery/power/solar, +/obj/structure/cable/yellow, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating/airless, +/area/ruin/unpowered/no_grav) +"al" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating/airless, +/area/ruin/unpowered/no_grav) +"am" = ( +/turf/closed/wall, +/area/ruin/hotel) +"an" = ( +/turf/closed/wall, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 3" + }) +"ao" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 3" + }) +"ap" = ( +/turf/closed/wall, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 4" + }) +"aq" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 4" + }) +"ar" = ( +/turf/closed/wall, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 5" + }) +"as" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 5" + }) +"at" = ( +/turf/closed/wall, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 6" + }) +"au" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 6" + }) +"av" = ( +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/ruin/hotel) +"aw" = ( +/turf/open/floor/plating, +/area/ruin/hotel) +"ax" = ( +/obj/machinery/shower{ + dir = 4 + }, +/obj/item/weapon/soap, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 3" + }) +"ay" = ( +/obj/structure/window{ + icon_state = "window"; + dir = 8 + }, +/obj/structure/toilet, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 3" + }) +"az" = ( +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 3" + }) +"aA" = ( +/obj/machinery/door/airlock{ + name = "Bathroom" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 3" + }) +"aB" = ( +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 3" + }) +"aC" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 3" + }) +"aD" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + tag = "icon-plant-02"; + icon_state = "plant-02" + }, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 3" + }) +"aE" = ( +/obj/structure/dresser, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 3" + }) +"aF" = ( +/obj/machinery/shower{ + dir = 4 + }, +/obj/item/weapon/soap, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 4" + }) +"aG" = ( +/obj/structure/window{ + icon_state = "window"; + dir = 8 + }, +/obj/structure/toilet, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 4" + }) +"aH" = ( +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 4" + }) +"aI" = ( +/obj/machinery/door/airlock{ + name = "Bathroom" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 4" + }) +"aJ" = ( +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 4" + }) +"aK" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 4" + }) +"aL" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + tag = "icon-plant-16"; + icon_state = "plant-16" + }, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 4" + }) +"aM" = ( +/obj/structure/dresser, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 4" + }) +"aN" = ( +/obj/machinery/shower{ + dir = 4 + }, +/obj/item/weapon/soap, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 5" + }) +"aO" = ( +/obj/structure/window{ + icon_state = "window"; + dir = 8 + }, +/obj/structure/toilet, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 5" + }) +"aP" = ( +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 5" + }) +"aQ" = ( +/obj/machinery/door/airlock{ + name = "Bathroom" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 5" + }) +"aR" = ( +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 5" + }) +"aS" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 5" + }) +"aT" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + tag = "icon-plant-16"; + icon_state = "plant-16" + }, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 5" + }) +"aU" = ( +/obj/structure/dresser, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 5" + }) +"aV" = ( +/obj/machinery/shower{ + dir = 4 + }, +/obj/item/weapon/soap, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 6" + }) +"aW" = ( +/obj/structure/window{ + icon_state = "window"; + dir = 8 + }, +/obj/structure/toilet, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 6" + }) +"aX" = ( +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 6" + }) +"aY" = ( +/obj/machinery/door/airlock{ + name = "Bathroom" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 6" + }) +"aZ" = ( +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 6" + }) +"ba" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 6" + }) +"bb" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + tag = "icon-plant-18"; + icon_state = "plant-18" + }, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 6" + }) +"bc" = ( +/obj/structure/dresser, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 6" + }) +"bd" = ( +/obj/machinery/power/solar, +/obj/structure/cable/yellow, +/turf/open/floor/plating/airless, +/area/ruin/unpowered/no_grav) +"be" = ( +/obj/structure/window{ + icon_state = "window"; + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 3" + }) +"bf" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 3" + }) +"bg" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 3" + }) +"bh" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 3" + }) +"bi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 3" + }) +"bj" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/red, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 3" + }) +"bk" = ( +/obj/structure/window{ + icon_state = "window"; + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 4" + }) +"bl" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 4" + }) +"bm" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 4" + }) +"bn" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 4" + }) +"bo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 4" + }) +"bp" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/blue, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 4" + }) +"bq" = ( +/obj/structure/window{ + icon_state = "window"; + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 5" + }) +"br" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 5" + }) +"bs" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 5" + }) +"bt" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 5" + }) +"bu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 5" + }) +"bv" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/black, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 5" + }) +"bw" = ( +/obj/structure/window{ + icon_state = "window"; + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 6" + }) +"bx" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 6" + }) +"by" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 6" + }) +"bz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 6" + }) +"bA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 6" + }) +"bB" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/purple, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 6" + }) +"bC" = ( +/obj/item/clothing/head/cone, +/turf/open/floor/plating, +/area/ruin/hotel) +"bD" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 3" + }) +"bE" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 3" + }) +"bF" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 4" + }) +"bG" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 4" + }) +"bH" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 5" + }) +"bI" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 5" + }) +"bJ" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 6" + }) +"bK" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 6" + }) +"bL" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/ruin/hotel) +"bM" = ( +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/obj/structure/mirror{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 3" + }) +"bN" = ( +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 2; + name = "Guest Room APC"; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 3" + }) +"bO" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 3" + }) +"bP" = ( +/obj/machinery/button/door{ + id = "a3"; + name = "privacy button"; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 3" + }) +"bQ" = ( +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 3" + }) +"bR" = ( +/obj/structure/table/wood, +/obj/item/clothing/head/sombrero, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 3" + }) +"bS" = ( +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/obj/structure/mirror{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 4" + }) +"bT" = ( +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 2; + name = "Guest Room APC"; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 4" + }) +"bU" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 4" + }) +"bV" = ( +/obj/machinery/button/door{ + id = "a4"; + name = "privacy button"; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 4" + }) +"bW" = ( +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 4" + }) +"bX" = ( +/obj/structure/table/wood, +/obj/item/weapon/lipstick, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 4" + }) +"bY" = ( +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/obj/structure/mirror{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 5" + }) +"bZ" = ( +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 2; + name = "Guest Room APC"; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 5" + }) +"ca" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 5" + }) +"cb" = ( +/obj/machinery/button/door{ + id = "a5"; + name = "privacy button"; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 5" + }) +"cc" = ( +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 5" + }) +"cd" = ( +/obj/structure/table/wood, +/obj/item/clothing/head/collectable/kitty, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 5" + }) +"ce" = ( +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/obj/structure/mirror{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 6" + }) +"cf" = ( +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 2; + name = "Guest Room APC"; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 6" + }) +"cg" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 6" + }) +"ch" = ( +/obj/machinery/button/door{ + id = "a6"; + name = "privacy button"; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 6" + }) +"ci" = ( +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 6" + }) +"cj" = ( +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 6" + }) +"ck" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/ruin/hotel) +"cl" = ( +/obj/machinery/door/airlock{ + id_tag = "a3"; + name = "Guest Room A3" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 3" + }) +"cm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 3" + }) +"cn" = ( +/obj/machinery/door/airlock{ + id_tag = "a4"; + name = "Guest Room A4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 4" + }) +"co" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 4" + }) +"cp" = ( +/obj/machinery/door/airlock{ + id_tag = "a5"; + name = "Guest Room A5" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 5" + }) +"cq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 5" + }) +"cr" = ( +/obj/machinery/door/airlock{ + id_tag = "a6"; + name = "Guest Room A6" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 6" + }) +"cs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 6" + }) +"ct" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/closed/wall, +/area/ruin/hotel) +"cu" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ruin/hotel) +"cv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ruin/hotel) +"cw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/ruin/hotel) +"cx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/ruin/hotel) +"cy" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/ruin/hotel) +"cz" = ( +/obj/structure/sign/fire{ + desc = "A sign that states the labeled room's number."; + dir = 4; + icon_state = "roomnum"; + name = "Room Number 3"; + pixel_y = 24; + tag = "icon-roomnum (EAST)" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/carpet, +/area/ruin/hotel) +"cA" = ( +/obj/structure/sign/fire{ + desc = "A sign that states the labeled room's number."; + dir = 8; + icon_state = "roomnum"; + name = "Room Number 4"; + pixel_y = 24; + tag = "icon-roomnum (WEST)" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/carpet, +/area/ruin/hotel) +"cB" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/ruin/hotel) +"cC" = ( +/obj/structure/sign/fire{ + desc = "A sign that states the labeled room's number."; + dir = 6; + icon_state = "roomnum"; + name = "Room Number 5"; + pixel_y = 24; + tag = "icon-roomnum (SOUTHEAST)" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/carpet, +/area/ruin/hotel) +"cD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = 30 + }, +/turf/open/floor/carpet, +/area/ruin/hotel) +"cE" = ( +/obj/structure/sign/fire{ + desc = "A sign that states the labeled room's number."; + dir = 10; + icon_state = "roomnum"; + name = "Room Number 6"; + pixel_y = 24; + tag = "icon-roomnum (SOUTHWEST)" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/carpet, +/area/ruin/hotel) +"cF" = ( +/turf/open/floor/carpet, +/area/ruin/hotel) +"cG" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/turf/open/floor/plating, +/area/ruin/hotel) +"cH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/ruin/hotel) +"cI" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/ruin/hotel) +"cJ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ruin/hotel) +"cK" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Hotel Maintenance"; + req_access_txt = "201" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ruin/hotel) +"cL" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/ruin/hotel) +"cM" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/carpet, +/area/ruin/hotel) +"cN" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/carpet, +/area/ruin/hotel) +"cO" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/ruin/hotel) +"cP" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9; + pixel_y = 0 + }, +/turf/open/floor/carpet, +/area/ruin/hotel) +"cQ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/ruin/hotel) +"cR" = ( +/obj/machinery/light, +/turf/open/floor/carpet, +/area/ruin/hotel) +"cS" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/carpet, +/area/ruin/hotel) +"cT" = ( +/obj/structure/sign/fire{ + desc = "A sign that states the labeled room's number."; + dir = 1; + icon_state = "roomnum"; + name = "Room Number 2"; + pixel_y = -24; + tag = "icon-roomnum (NORTH)" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/carpet, +/area/ruin/hotel) +"cU" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = -30 + }, +/turf/open/floor/carpet, +/area/ruin/hotel) +"cV" = ( +/obj/structure/sign/fire{ + desc = "A sign that states the labeled room's number."; + icon_state = "roomnum"; + name = "Room Number 1"; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/carpet, +/area/ruin/hotel) +"cW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/carpet, +/area/ruin/hotel) +"cX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/carpet, +/area/ruin/hotel) +"cY" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/carpet, +/area/ruin/hotel) +"cZ" = ( +/turf/closed/wall, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 2" + }) +"da" = ( +/obj/machinery/door/airlock{ + id_tag = "a2"; + name = "Guest Room A2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 2" + }) +"db" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 2" + }) +"dc" = ( +/turf/closed/wall, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 1" + }) +"dd" = ( +/obj/machinery/door/airlock{ + id_tag = "a1"; + name = "Guest Room A1" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 1" + }) +"de" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 1" + }) +"df" = ( +/obj/machinery/door/airlock/glass, +/obj/machinery/door/firedoor, +/turf/open/floor/carpet, +/area/ruin/hotel) +"dg" = ( +/obj/machinery/door/airlock/glass, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/carpet, +/area/ruin/hotel) +"dh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/ruin/hotel/workroom) +"di" = ( +/turf/closed/wall, +/area/ruin/hotel/workroom) +"dj" = ( +/obj/machinery/door/airlock/centcom{ + name = "Hotel Staff Storage" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/ruin/hotel/workroom) +"dk" = ( +/obj/machinery/shower{ + dir = 4 + }, +/obj/item/weapon/soap, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 2" + }) +"dl" = ( +/obj/structure/window{ + icon_state = "window"; + dir = 8 + }, +/obj/structure/toilet, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 2" + }) +"dm" = ( +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/obj/structure/mirror{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 2" + }) +"dn" = ( +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 1; + name = "Guest Room APC"; + pixel_x = 0; + pixel_y = 25 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 2" + }) +"do" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 2" + }) +"dp" = ( +/obj/machinery/button/door{ + id = "a2"; + name = "privacy button"; + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 2" + }) +"dq" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + tag = "icon-plant-21"; + icon_state = "plant-21" + }, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 2" + }) +"dr" = ( +/obj/structure/dresser, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 2" + }) +"ds" = ( +/obj/machinery/shower{ + dir = 4 + }, +/obj/item/weapon/soap, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 1" + }) +"dt" = ( +/obj/structure/window{ + icon_state = "window"; + dir = 8 + }, +/obj/structure/toilet, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 1" + }) +"du" = ( +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/obj/structure/mirror{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 1" + }) +"dv" = ( +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 1; + name = "Guest Room APC"; + pixel_x = 0; + pixel_y = 25 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 1" + }) +"dw" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 1" + }) +"dx" = ( +/obj/machinery/button/door{ + id = "a1"; + name = "privacy button"; + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 1" + }) +"dy" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + tag = "icon-plant-14"; + icon_state = "plant-14" + }, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 1" + }) +"dz" = ( +/obj/structure/dresser, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 1" + }) +"dA" = ( +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/white, +/area/ruin/hotel/workroom) +"dB" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/ruin/hotel/workroom) +"dC" = ( +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/ruin/hotel/workroom) +"dD" = ( +/obj/structure/table, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/ruin/hotel/workroom) +"dE" = ( +/obj/structure/table, +/obj/item/weapon/soap, +/turf/open/floor/plasteel/white, +/area/ruin/hotel/workroom) +"dF" = ( +/obj/machinery/washing_machine, +/turf/open/floor/plasteel/white, +/area/ruin/hotel/workroom) +"dG" = ( +/obj/structure/table, +/obj/structure/bedsheetbin, +/turf/open/floor/plasteel/white, +/area/ruin/hotel/workroom) +"dH" = ( +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 2" + }) +"dI" = ( +/obj/structure/window{ + icon_state = "window"; + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 2" + }) +"dJ" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 2" + }) +"dK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 2" + }) +"dL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 2" + }) +"dM" = ( +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 2" + }) +"dN" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/yellow, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 2" + }) +"dO" = ( +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 1" + }) +"dP" = ( +/obj/structure/window{ + icon_state = "window"; + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 1" + }) +"dQ" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 1" + }) +"dR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 1" + }) +"dS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 1" + }) +"dT" = ( +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 1" + }) +"dU" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/ian, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 1" + }) +"dV" = ( +/turf/open/floor/plasteel/white, +/area/ruin/hotel/workroom) +"dW" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/ruin/hotel/workroom) +"dX" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/ruin/hotel/workroom) +"dY" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/ruin/hotel/workroom) +"dZ" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/ruin/hotel/workroom) +"ea" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/ruin/hotel/workroom) +"eb" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white, +/area/ruin/hotel/workroom) +"ec" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/turf/open/floor/plating, +/area/ruin/hotel/workroom) +"ed" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/ruin/hotel) +"ee" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 2" + }) +"ef" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 2" + }) +"eg" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 2" + }) +"eh" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 2" + }) +"ei" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 1" + }) +"ej" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 1" + }) +"ek" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 1" + }) +"el" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 1" + }) +"em" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/ruin/hotel) +"en" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/white, +/area/ruin/hotel/workroom) +"eo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/ruin/hotel/workroom) +"ep" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/ruin/hotel/workroom) +"eq" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/ruin/hotel/workroom) +"er" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/ruin/hotel/workroom) +"es" = ( +/obj/machinery/door/airlock{ + name = "Bathroom" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 2" + }) +"et" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 2" + }) +"eu" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/pill_bottle/dice, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 2" + }) +"ev" = ( +/obj/machinery/door/airlock{ + name = "Bathroom" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 1" + }) +"ew" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 1" + }) +"ex" = ( +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/ruin/hotel/guestroom{ + name = "Hotel Guest Room 1" + }) +"ey" = ( +/obj/structure/closet/wardrobe/mixed, +/turf/open/floor/plasteel/white, +/area/ruin/hotel/workroom) +"ez" = ( +/obj/structure/closet/crate/bin, +/turf/open/floor/plasteel/white, +/area/ruin/hotel/workroom) +"eA" = ( +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 2; + name = "Laundry APC"; + pixel_y = -24 + }, +/obj/structure/cable, +/turf/open/floor/plasteel/white, +/area/ruin/hotel/workroom) +"eB" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/white, +/area/ruin/hotel/workroom) +"eC" = ( +/obj/structure/closet/crate, +/turf/open/floor/plasteel/whitebot, +/area/ruin/hotel/workroom) +"eD" = ( +/obj/structure/closet/crate, +/obj/item/clothing/head/rice_hat, +/turf/open/floor/plasteel/whitebot, +/area/ruin/hotel/workroom) +"eE" = ( +/obj/structure/closet/crate, +/obj/item/weapon/bedsheet/patriot, +/turf/open/floor/plasteel/whitebot, +/area/ruin/hotel/workroom) +"eF" = ( +/obj/structure/closet/crate, +/obj/item/weapon/card/id/away/hotel, +/turf/open/floor/plasteel/whitebot, +/area/ruin/hotel/workroom) +"eG" = ( +/turf/closed/wall, +/area/ruin/hotel/dock) +"eH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/closed/wall, +/area/ruin/hotel) +"eI" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/ruin/hotel) +"eJ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/turf/open/floor/plating, +/area/ruin/hotel) +"eK" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/ruin/hotel) +"eL" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -24; + tag = "icon-alarm0 (NORTH)" + }, +/turf/open/floor/plating, +/area/ruin/hotel/bar) +"eM" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -24; + tag = "icon-alarm0 (NORTH)" + }, +/turf/open/floor/plating, +/area/ruin/hotel) +"eN" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Hotel Maintenance"; + req_access_txt = "201" + }, +/turf/open/floor/plating, +/area/ruin/hotel) +"eO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/extinguisher_cabinet{ + pixel_y = 30 + }, +/turf/open/floor/wood, +/area/ruin/hotel) +"eP" = ( +/obj/structure/flora/ausbushes/fernybush, +/turf/open/floor/grass, +/area/ruin/hotel) +"eQ" = ( +/obj/structure/flora/ausbushes/ywflowers, +/turf/open/floor/grass, +/area/ruin/hotel) +"eR" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/flora/ausbushes/fullgrass, +/turf/open/floor/grass, +/area/ruin/hotel) +"eS" = ( +/obj/structure/flora/ausbushes/fullgrass, +/turf/open/floor/grass, +/area/ruin/hotel) +"eT" = ( +/turf/open/floor/wood, +/area/ruin/hotel) +"eU" = ( +/obj/machinery/vending/cola, +/turf/open/floor/wood, +/area/ruin/hotel) +"eV" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/wood, +/area/ruin/hotel/dock) +"eW" = ( +/turf/open/floor/wood, +/area/ruin/hotel/dock) +"eX" = ( +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ruin/hotel/dock) +"eY" = ( +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/ruin/hotel/dock) +"eZ" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/turf/open/floor/wood, +/area/ruin/hotel/dock) +"fa" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = 30 + }, +/turf/open/floor/wood, +/area/ruin/hotel/dock) +"fb" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/wood, +/area/ruin/hotel/dock) +"fc" = ( +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/turf/open/floor/wood, +/area/ruin/hotel/dock) +"fd" = ( +/obj/effect/decal/cleanable/cobweb, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/ruin/hotel) +"fe" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/ruin/hotel) +"ff" = ( +/obj/structure/closet/crate, +/obj/item/clothing/head/papersack/smiley, +/turf/open/floor/plating, +/area/ruin/hotel) +"fg" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/ruin/hotel) +"fh" = ( +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 2; + name = "Kitchen APC"; + pixel_y = -24 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/ruin/hotel/bar) +"fi" = ( +/turf/closed/wall, +/area/ruin/hotel/bar) +"fj" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Hotel Maintenance"; + req_access_txt = "200,201" + }, +/turf/open/floor/plating, +/area/ruin/hotel/bar) +"fk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/ruin/hotel) +"fl" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/wood, +/area/ruin/hotel) +"fm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/grass, +/area/ruin/hotel) +"fn" = ( +/obj/structure/flora/ausbushes/ywflowers, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/grass, +/area/ruin/hotel) +"fo" = ( +/obj/structure/flora/ausbushes/fullgrass, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/grass, +/area/ruin/hotel) +"fp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ruin/hotel) +"fq" = ( +/obj/machinery/vending/cigarette, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ruin/hotel) +"fr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/ruin/hotel/dock) +"fs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ruin/hotel/dock) +"ft" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/wood, +/area/ruin/hotel/dock) +"fu" = ( +/turf/open/floor/carpet, +/area/ruin/hotel/dock) +"fv" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/turf/open/floor/plating, +/area/ruin/hotel/dock) +"fw" = ( +/obj/structure/closet/chefcloset, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/cafeteria, +/area/ruin/hotel/bar) +"fx" = ( +/turf/open/floor/plasteel/cafeteria, +/area/ruin/hotel/bar) +"fy" = ( +/obj/structure/sink/kitchen{ + pixel_y = 28 + }, +/turf/open/floor/plasteel/cafeteria, +/area/ruin/hotel/bar) +"fz" = ( +/obj/machinery/processor, +/turf/open/floor/plasteel/cafeteria, +/area/ruin/hotel/bar) +"fA" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/cafeteria, +/area/ruin/hotel/bar) +"fB" = ( +/obj/structure/table, +/obj/machinery/chem_dispenser/drinks/beer, +/turf/open/floor/plasteel/bar, +/area/ruin/hotel/bar) +"fC" = ( +/obj/structure/table, +/obj/machinery/chem_dispenser/drinks, +/turf/open/floor/plasteel/bar, +/area/ruin/hotel/bar) +"fD" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/bar, +/area/ruin/hotel/bar) +"fE" = ( +/obj/machinery/vending/boozeomat{ + req_access_txt = "200" + }, +/turf/open/floor/plasteel/bar, +/area/ruin/hotel/bar) +"fF" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/barman_recipes, +/obj/item/weapon/reagent_containers/food/drinks/shaker, +/turf/open/floor/plasteel/bar, +/area/ruin/hotel/bar) +"fG" = ( +/turf/open/floor/plasteel/bar, +/area/ruin/hotel/bar) +"fH" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/bar, +/area/ruin/hotel/bar) +"fI" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + tag = "icon-plant-02"; + icon_state = "plant-02" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/wood, +/area/ruin/hotel) +"fJ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/wood, +/area/ruin/hotel) +"fK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/ruin/hotel) +"fL" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/carpet, +/area/ruin/hotel) +"fM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ruin/hotel) +"fN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/wood, +/area/ruin/hotel) +"fO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/carpet, +/area/ruin/hotel/dock) +"fP" = ( +/obj/structure/sink{ + icon_state = "sink"; + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/turf/open/floor/plasteel/freezer, +/area/ruin/hotel/bar) +"fQ" = ( +/turf/open/floor/plasteel/freezer, +/area/ruin/hotel/bar) +"fR" = ( +/obj/structure/closet/crate/freezer, +/obj/item/weapon/reagent_containers/food/snacks/grown/wheat, +/obj/item/weapon/reagent_containers/food/snacks/grown/wheat, +/obj/item/weapon/reagent_containers/food/snacks/grown/wheat, +/obj/item/weapon/reagent_containers/food/snacks/grown/wheat, +/obj/item/weapon/reagent_containers/food/snacks/grown/wheat, +/obj/item/weapon/reagent_containers/food/snacks/grown/wheat, +/obj/item/weapon/reagent_containers/food/snacks/grown/wheat, +/obj/item/weapon/reagent_containers/food/snacks/grown/potato, +/obj/item/weapon/reagent_containers/food/snacks/grown/potato, +/obj/item/weapon/reagent_containers/food/snacks/grown/potato, +/obj/item/weapon/reagent_containers/food/snacks/grown/potato, +/obj/item/weapon/reagent_containers/food/snacks/grown/potato, +/obj/item/weapon/reagent_containers/food/snacks/grown/carrot, +/obj/item/weapon/reagent_containers/food/snacks/grown/carrot, +/obj/item/weapon/reagent_containers/food/snacks/grown/carrot, +/obj/item/weapon/reagent_containers/food/snacks/grown/carrot, +/obj/item/weapon/reagent_containers/food/snacks/grown/carrot, +/obj/item/weapon/reagent_containers/food/snacks/grown/carrot, +/obj/item/weapon/reagent_containers/food/snacks/grown/tomato, +/obj/item/weapon/reagent_containers/food/snacks/grown/tomato, +/obj/item/weapon/reagent_containers/food/snacks/grown/tomato, +/obj/item/weapon/reagent_containers/food/snacks/grown/tomato, +/obj/item/weapon/reagent_containers/food/snacks/grown/tomato, +/turf/open/floor/plasteel/freezer, +/area/ruin/hotel/bar) +"fS" = ( +/obj/machinery/chem_master/condimaster{ + name = "CondiMaster Neo" + }, +/turf/open/floor/plasteel/freezer, +/area/ruin/hotel/bar) +"fT" = ( +/obj/machinery/door/airlock/freezer{ + name = "Freezer"; + req_access_txt = "200" + }, +/turf/open/floor/plasteel/freezer, +/area/ruin/hotel/bar) +"fU" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/reagent_containers/food/drinks/beer, +/turf/open/floor/plasteel/bar, +/area/ruin/hotel/bar) +"fV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/carpet, +/area/ruin/hotel) +"fW" = ( +/obj/machinery/door/airlock/glass, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/ruin/hotel/dock) +"fX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9; + pixel_y = 0 + }, +/turf/open/floor/carpet, +/area/ruin/hotel/dock) +"fY" = ( +/obj/structure/table, +/obj/item/weapon/kitchen/knife, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/ruin/hotel/bar) +"fZ" = ( +/obj/structure/table, +/turf/open/floor/plasteel/freezer, +/area/ruin/hotel/bar) +"ga" = ( +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/plasteel/cafeteria, +/area/ruin/hotel/bar) +"gb" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/condiment/enzyme, +/obj/item/weapon/reagent_containers/food/condiment/enzyme, +/turf/open/floor/plasteel/cafeteria, +/area/ruin/hotel/bar) +"gc" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/condiment/sugar, +/obj/item/weapon/reagent_containers/food/condiment/sugar, +/turf/open/floor/plasteel/cafeteria, +/area/ruin/hotel/bar) +"gd" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/reagent_containers/glass/rag, +/turf/open/floor/plasteel/bar, +/area/ruin/hotel/bar) +"ge" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/carpet, +/area/ruin/hotel) +"gf" = ( +/obj/machinery/door/airlock/glass, +/obj/machinery/door/firedoor, +/turf/open/floor/carpet, +/area/ruin/hotel/dock) +"gg" = ( +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/ruin/hotel/dock) +"gh" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + tag = "icon-plant-22"; + icon_state = "plant-22" + }, +/turf/open/floor/wood, +/area/ruin/hotel/dock) +"gi" = ( +/obj/structure/table/wood, +/obj/machinery/light{ + tag = "icon-tube1 (EAST)"; + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/carpet, +/area/ruin/hotel/dock) +"gj" = ( +/obj/effect/decal/cleanable/oil, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/ruin/hotel) +"gk" = ( +/obj/structure/kitchenspike, +/turf/open/floor/plasteel/freezer, +/area/ruin/hotel/bar) +"gl" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/freezer, +/area/ruin/hotel/bar) +"gm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/ruin/hotel/bar) +"gn" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/ruin/hotel/bar) +"go" = ( +/obj/structure/kitchenspike, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/freezer, +/area/ruin/hotel/bar) +"gp" = ( +/obj/structure/table, +/turf/open/floor/plasteel/cafeteria, +/area/ruin/hotel/bar) +"gq" = ( +/obj/structure/table, +/obj/item/weapon/kitchen/rollingpin, +/turf/open/floor/plasteel/cafeteria, +/area/ruin/hotel/bar) +"gr" = ( +/obj/structure/chair/stool/bar, +/turf/open/floor/plasteel/bar, +/area/ruin/hotel/bar) +"gs" = ( +/obj/machinery/door/airlock/centcom{ + name = "Hotel Staff Room"; + req_access_txt = "200" + }, +/turf/open/floor/plasteel/black, +/area/ruin/hotel/workroom) +"gt" = ( +/obj/structure/table/wood, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/machinery/light/small{ + tag = "icon-bulb1 (WEST)"; + icon_state = "bulb1"; + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/ruin/hotel/dock) +"gu" = ( +/obj/structure/table/wood, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/turf/open/floor/plasteel/grimy, +/area/ruin/hotel/dock) +"gv" = ( +/obj/structure/table/wood, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/item/device/gps{ + gpstag = "Twin-Nexus Hotel Retreat"; + name = "hotel gps" + }, +/turf/open/floor/plasteel/grimy, +/area/ruin/hotel/dock) +"gw" = ( +/turf/open/floor/plasteel/black, +/area/ruin/hotel/dock) +"gx" = ( +/obj/structure/table, +/obj/item/weapon/screwdriver, +/obj/item/device/multitool, +/obj/item/weapon/wirecutters, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/ruin/hotel/dock) +"gy" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/ruin/hotel/dock) +"gz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/freezer, +/area/ruin/hotel/bar) +"gA" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/freezer, +/area/ruin/hotel/bar) +"gB" = ( +/obj/machinery/gibber, +/turf/open/floor/plasteel/freezer, +/area/ruin/hotel/bar) +"gC" = ( +/obj/structure/closet/secure_closet/freezer/meat{ + req_access_txt = "200" + }, +/turf/open/floor/plasteel/cafeteria, +/area/ruin/hotel/bar) +"gD" = ( +/obj/structure/table, +/obj/item/weapon/kitchen/knife, +/turf/open/floor/plasteel/cafeteria, +/area/ruin/hotel/bar) +"gE" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/condiment/pack/hotsauce, +/obj/item/weapon/reagent_containers/food/condiment/pack/hotsauce, +/obj/item/weapon/reagent_containers/food/condiment/pack/ketchup, +/obj/item/weapon/reagent_containers/food/condiment/pack/ketchup, +/obj/item/weapon/reagent_containers/glass/beaker, +/turf/open/floor/plasteel/cafeteria, +/area/ruin/hotel/bar) +"gF" = ( +/obj/machinery/vending/cola, +/turf/open/floor/plasteel/black, +/area/ruin/hotel/workroom) +"gG" = ( +/turf/open/floor/plasteel/black, +/area/ruin/hotel/workroom) +"gH" = ( +/obj/structure/table, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/weapon/crowbar, +/turf/open/floor/plasteel/black, +/area/ruin/hotel/workroom) +"gI" = ( +/obj/structure/noticeboard{ + pixel_y = 32 + }, +/obj/item/weapon/paper{ + info = "!NOTICE!

We are expecting arriving guests soon from a nearby station! Stay sharp and make sure guests enjoy their time spent here. Don't think you can sneak off while they're here, either.
"; + name = "!NOTICE!" + }, +/turf/open/floor/plasteel/black, +/area/ruin/hotel/workroom) +"gJ" = ( +/obj/structure/closet/secure_closet/freezer/kitchen/mining, +/turf/open/floor/plasteel/black, +/area/ruin/hotel/workroom) +"gK" = ( +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/plasteel/black, +/area/ruin/hotel/workroom) +"gL" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/donkpockets, +/obj/structure/sign/nosmoking_1{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/black, +/area/ruin/hotel/workroom) +"gM" = ( +/obj/effect/mob_spawn/human/hotel_staff, +/turf/open/floor/plasteel/black, +/area/ruin/hotel/workroom) +"gN" = ( +/obj/structure/filingcabinet, +/turf/open/floor/plasteel/grimy, +/area/ruin/hotel/dock) +"gO" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/ruin/hotel/dock) +"gP" = ( +/obj/structure/table/wood, +/turf/open/floor/plasteel/grimy, +/area/ruin/hotel/dock) +"gQ" = ( +/obj/machinery/computer/teleporter, +/turf/open/floor/plasteel/black, +/area/ruin/hotel/dock) +"gR" = ( +/obj/machinery/teleport/station, +/turf/open/floor/plasteel/black, +/area/ruin/hotel/dock) +"gS" = ( +/obj/machinery/teleport/hub, +/turf/open/floor/plasteel/black, +/area/ruin/hotel/dock) +"gT" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/item/weapon/reagent_containers/food/condiment/milk, +/obj/item/weapon/reagent_containers/food/condiment/milk, +/obj/item/weapon/reagent_containers/food/condiment/milk, +/obj/structure/closet/secure_closet/freezer/fridge{ + req_access_txt = "200" + }, +/turf/open/floor/plasteel/cafeteria, +/area/ruin/hotel/bar) +"gU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/cafeteria, +/area/ruin/hotel/bar) +"gV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/ruin/hotel/bar) +"gW" = ( +/obj/structure/table/reinforced, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/cafeteria, +/area/ruin/hotel/bar) +"gX" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/bar, +/area/ruin/hotel/bar) +"gY" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/condiment/saltshaker{ + pixel_x = 4 + }, +/obj/item/weapon/reagent_containers/food/condiment/peppermill{ + pixel_x = -4 + }, +/turf/open/floor/plasteel/bar, +/area/ruin/hotel/bar) +"gZ" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/bar, +/area/ruin/hotel/bar) +"ha" = ( +/obj/machinery/vending/wallmed{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/black, +/area/ruin/hotel/workroom) +"hb" = ( +/turf/open/floor/plasteel/grimy, +/area/ruin/hotel/dock) +"hc" = ( +/obj/structure/table/wood, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/item/weapon/paper/pamphlet{ + info = "
The Twin Nexus Hotel

A place of Sanctuary


Welcome to The Twin-Nexus Hotel, \[insert name here]! The loyal staff stride to their best effort to cater for the best possible experience for all space(wo)men! If you have any questions or comments, please ask one of our on-board staff for more infomation.
"; + name = "hotel pamphlet" + }, +/obj/item/weapon/paper/pamphlet{ + info = "
The Twin Nexus Hotel

A place of Sanctuary


Welcome to The Twin-Nexus Hotel, \[insert name here]! The loyal staff stride to their best effort to cater for the best possible experience for all space(wo)men! If you have any questions or comments, please ask one of our on-board staff for more infomation.
"; + name = "hotel pamphlet" + }, +/obj/item/weapon/paper/pamphlet{ + info = "
The Twin Nexus Hotel

A place of Sanctuary


Welcome to The Twin-Nexus Hotel, \[insert name here]! The loyal staff stride to their best effort to cater for the best possible experience for all space(wo)men! If you have any questions or comments, please ask one of our on-board staff for more infomation.
"; + name = "hotel pamphlet" + }, +/obj/item/weapon/paper/pamphlet{ + info = "
The Twin Nexus Hotel

A place of Sanctuary


Welcome to The Twin-Nexus Hotel, \[insert name here]! The loyal staff stride to their best effort to cater for the best possible experience for all space(wo)men! If you have any questions or comments, please ask one of our on-board staff for more infomation.
"; + name = "hotel pamphlet" + }, +/obj/item/weapon/paper/pamphlet{ + info = "
The Twin Nexus Hotel

A place of Sanctuary


Welcome to The Twin-Nexus Hotel, \[insert name here]! The loyal staff stride to their best effort to cater for the best possible experience for all space(wo)men! If you have any questions or comments, please ask one of our on-board staff for more infomation.
"; + name = "hotel pamphlet" + }, +/turf/open/floor/plasteel/grimy, +/area/ruin/hotel/dock) +"hd" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/drinks/mug/tea, +/turf/open/floor/carpet, +/area/ruin/hotel/dock) +"he" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/closed/wall, +/area/ruin/hotel) +"hf" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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/ruin/hotel) +"hg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/ruin/hotel/bar) +"hh" = ( +/obj/structure/kitchenspike, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/ruin/hotel/bar) +"hi" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/ruin/hotel/bar) +"hj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/ruin/hotel/bar) +"hk" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/freezer, +/area/ruin/hotel/bar) +"hl" = ( +/obj/structure/kitchenspike, +/obj/machinery/light{ + tag = "icon-tube1 (EAST)"; + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/ruin/hotel/bar) +"hm" = ( +/obj/item/weapon/reagent_containers/food/condiment/rice, +/obj/item/weapon/reagent_containers/food/condiment/rice, +/obj/item/weapon/reagent_containers/food/condiment/flour, +/obj/item/weapon/reagent_containers/food/condiment/flour, +/obj/structure/closet/secure_closet/freezer/kitchen{ + req_access = null; + req_access_txt = "200" + }, +/turf/open/floor/plasteel/cafeteria, +/area/ruin/hotel/bar) +"hn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/cafeteria, +/area/ruin/hotel/bar) +"ho" = ( +/obj/structure/table/reinforced, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/cafeteria, +/area/ruin/hotel/bar) +"hp" = ( +/obj/machinery/light{ + tag = "icon-tube1 (EAST)"; + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/carpet, +/area/ruin/hotel) +"hq" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + tag = "icon-plant-18"; + icon_state = "plant-18" + }, +/turf/open/floor/plasteel/black, +/area/ruin/hotel/workroom) +"hr" = ( +/obj/item/device/radio/beacon, +/turf/open/floor/plasteel/black, +/area/ruin/hotel/dock) +"hs" = ( +/obj/structure/table/wood, +/turf/open/floor/carpet, +/area/ruin/hotel/dock) +"ht" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/monkeycubes, +/obj/item/weapon/storage/box/monkeycubes, +/turf/open/floor/plasteel/freezer, +/area/ruin/hotel/bar) +"hu" = ( +/obj/structure/closet/crate/freezer, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/bear, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/bear, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/corgi, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/corgi, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/pug, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/pug, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/xeno, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/xeno, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/plant, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/plant, +/turf/open/floor/plasteel/freezer, +/area/ruin/hotel/bar) +"hv" = ( +/obj/structure/closet/crate/freezer, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/bear, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/bear, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/bear, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/corgi, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/corgi, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/pug, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/pug, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/xeno, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/xeno, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/plant, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/plant, +/turf/open/floor/plasteel/freezer, +/area/ruin/hotel/bar) +"hw" = ( +/obj/structure/table, +/obj/item/weapon/kitchen/knife, +/turf/open/floor/plasteel/freezer, +/area/ruin/hotel/bar) +"hx" = ( +/obj/item/weapon/reagent_containers/food/condiment/saltshaker{ + pixel_x = 4 + }, +/obj/item/weapon/reagent_containers/food/condiment/peppermill{ + pixel_x = -4 + }, +/obj/structure/table, +/turf/open/floor/plasteel/cafeteria, +/area/ruin/hotel/bar) +"hy" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/chef_recipes, +/turf/open/floor/plasteel/cafeteria, +/area/ruin/hotel/bar) +"hz" = ( +/obj/structure/table/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/cafeteria, +/area/ruin/hotel/bar) +"hA" = ( +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 2; + name = "Staff Room APC"; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/mob/living/simple_animal/bot/medbot{ + name = "Accidents Happen" + }, +/turf/open/floor/plasteel/black, +/area/ruin/hotel/workroom) +"hB" = ( +/obj/structure/mirror{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/black, +/area/ruin/hotel/workroom) +"hC" = ( +/obj/structure/closet/crate/bin, +/obj/structure/extinguisher_cabinet{ + pixel_y = -30 + }, +/turf/open/floor/plasteel/black, +/area/ruin/hotel/workroom) +"hD" = ( +/obj/structure/reagent_dispensers/water_cooler, +/turf/open/floor/plasteel/black, +/area/ruin/hotel/workroom) +"hE" = ( +/obj/structure/table, +/obj/item/weapon/card/id/away/hotel, +/obj/item/weapon/card/id/away/hotel, +/obj/item/weapon/card/id/away/hotel, +/obj/item/weapon/card/id/away/hotel, +/obj/item/weapon/card/id/away/hotel, +/obj/item/weapon/card/id/away/hotel, +/turf/open/floor/plasteel/black, +/area/ruin/hotel/workroom) +"hF" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plasteel/black, +/area/ruin/hotel/workroom) +"hG" = ( +/obj/effect/mob_spawn/human/hotel_staff{ + tag = "icon-sleeper_s (NORTH)"; + icon_state = "sleeper_s"; + dir = 1 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/black, +/area/ruin/hotel/workroom) +"hH" = ( +/obj/effect/mob_spawn/human/hotel_staff{ + tag = "icon-sleeper_s (NORTH)"; + icon_state = "sleeper_s"; + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/ruin/hotel/workroom) +"hI" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Hotel Maintenance"; + req_access_txt = "200,201" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/ruin/hotel/bar) +"hJ" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/condiment/soysauce, +/turf/open/floor/plasteel/cafeteria, +/area/ruin/hotel/bar) +"hK" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder, +/turf/open/floor/plasteel/cafeteria, +/area/ruin/hotel/bar) +"hL" = ( +/obj/structure/table/wood, +/obj/structure/window/reinforced, +/obj/machinery/light/small{ + tag = "icon-bulb1 (WEST)"; + icon_state = "bulb1"; + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/ruin/hotel/dock) +"hM" = ( +/obj/structure/table/wood, +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/grimy, +/area/ruin/hotel/dock) +"hN" = ( +/obj/structure/table/wood, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/grimy, +/area/ruin/hotel/dock) +"hO" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/black, +/area/ruin/hotel/dock) +"hP" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/ruin/hotel) +"hQ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8"; + tag = "" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/ruin/hotel) +"hR" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plating, +/area/ruin/hotel) +"hS" = ( +/obj/effect/decal/cleanable/cobweb{ + icon_state = "cobweb2" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/ruin/hotel) +"hT" = ( +/obj/machinery/vending/dinnerware{ + req_access_txt = "200" + }, +/turf/open/floor/plasteel/cafeteria, +/area/ruin/hotel/bar) +"hU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/ruin/hotel/bar) +"hV" = ( +/obj/structure/table/wood, +/obj/item/device/instrument/guitar, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/ruin/hotel/bar) +"hW" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/ruin/hotel/bar) +"hX" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/piano{ + tag = "icon-piano"; + icon_state = "piano" + }, +/turf/open/floor/plasteel/grimy, +/area/ruin/hotel/bar) +"hY" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/chair/stool, +/turf/open/floor/plasteel/grimy, +/area/ruin/hotel/bar) +"hZ" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/ruin/hotel) +"ia" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/closed/wall, +/area/ruin/hotel) +"ib" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/closed/wall, +/area/ruin/hotel/power) +"ic" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/ruin/hotel/power) +"id" = ( +/obj/machinery/door/airlock/engineering{ + name = "Power Storage"; + req_access_txt = "200,201" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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/ruin/hotel/power) +"ie" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/closed/wall, +/area/ruin/hotel/power) +"if" = ( +/obj/machinery/smartfridge/food, +/turf/open/floor/plasteel/cafeteria, +/area/ruin/hotel/bar) +"ig" = ( +/obj/structure/table/wood, +/obj/item/device/instrument/violin, +/turf/open/floor/plasteel/grimy, +/area/ruin/hotel/bar) +"ih" = ( +/turf/open/floor/plasteel/grimy, +/area/ruin/hotel/bar) +"ii" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/ruin/hotel/bar) +"ij" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/carpet, +/area/ruin/hotel) +"ik" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/ruin/hotel) +"il" = ( +/obj/machinery/door/airlock/glass, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/ruin/hotel/dock) +"im" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/ruin/hotel/dock) +"in" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/ruin/hotel/dock) +"io" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/carpet, +/area/ruin/hotel/dock) +"ip" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating/airless, +/area/ruin/unpowered/no_grav) +"iq" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8"; + tag = "" + }, +/turf/open/floor/plating/airless, +/area/ruin/unpowered/no_grav) +"ir" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/ruin/hotel/power) +"is" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/yellow/side{ + tag = "icon-yellow (NORTHWEST)"; + icon_state = "yellow"; + dir = 9 + }, +/area/ruin/hotel/power) +"it" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/yellow/side{ + tag = "icon-yellow (NORTH)"; + icon_state = "yellow"; + dir = 1 + }, +/area/ruin/hotel/power) +"iu" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/structure/sign/fire{ + desc = "A poster designed to remind the reader to wear appropriate insulation and head protection when working with material."; + icon_state = "safety"; + name = "Safety Poster"; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plasteel/yellow/side{ + tag = "icon-yellow (NORTH)"; + icon_state = "yellow"; + dir = 1 + }, +/area/ruin/hotel/power) +"iv" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/yellow/side{ + tag = "icon-yellow (NORTH)"; + icon_state = "yellow"; + dir = 1 + }, +/area/ruin/hotel/power) +"iw" = ( +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 1; + name = "Power Storage APC"; + pixel_x = 0; + pixel_y = 25 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plasteel/yellow/side{ + tag = "icon-yellow (NORTH)"; + icon_state = "yellow"; + dir = 1 + }, +/area/ruin/hotel/power) +"ix" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/turf/open/floor/plasteel/yellow/side{ + tag = "icon-yellow (NORTHEAST)"; + icon_state = "yellow"; + dir = 5 + }, +/area/ruin/hotel/power) +"iy" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/cafeteria, +/area/ruin/hotel/bar) +"iz" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = -30 + }, +/turf/open/floor/plasteel/cafeteria, +/area/ruin/hotel/bar) +"iA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock{ + name = "Theatre"; + req_access_txt = "200" + }, +/turf/open/floor/plasteel/grimy, +/area/ruin/hotel/bar) +"iB" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/grimy, +/area/ruin/hotel/bar) +"iC" = ( +/obj/machinery/light, +/turf/open/floor/wood, +/area/ruin/hotel) +"iD" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/ruin/hotel) +"iE" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/wood, +/area/ruin/hotel) +"iF" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/carpet, +/area/ruin/hotel/dock) +"iG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/carpet, +/area/ruin/hotel/dock) +"iH" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/electrical, +/obj/item/clothing/gloves/color/yellow, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/yellow/side{ + tag = "icon-yellow (WEST)"; + icon_state = "yellow"; + dir = 8 + }, +/area/ruin/hotel/power) +"iI" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/ruin/hotel/power) +"iJ" = ( +/obj/structure/closet/crate, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/turf/open/floor/plasteel, +/area/ruin/hotel/power) +"iK" = ( +/turf/open/floor/plasteel, +/area/ruin/hotel/power) +"iL" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/glass/fifty, +/turf/open/floor/plasteel/yellow/side{ + tag = "icon-yellow (EAST)"; + icon_state = "yellow"; + dir = 4 + }, +/area/ruin/hotel/power) +"iM" = ( +/obj/item/weapon/twohanded/required/kirbyplants, +/turf/open/floor/wood, +/area/ruin/hotel) +"iN" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/wood, +/area/ruin/hotel) +"iO" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/wood, +/area/ruin/hotel) +"iP" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/wood, +/area/ruin/hotel/dock) +"iQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/ruin/hotel/dock) +"iR" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical, +/obj/item/clothing/head/welding, +/turf/open/floor/plasteel/yellow/side{ + tag = "icon-yellow (WEST)"; + icon_state = "yellow"; + dir = 8 + }, +/area/ruin/hotel/power) +"iS" = ( +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/plasteel, +/area/ruin/hotel/power) +"iT" = ( +/obj/structure/table, +/obj/item/stack/sheet/plasteel/twenty, +/obj/item/stack/rods{ + amount = 60 + }, +/turf/open/floor/plasteel/yellow/side{ + tag = "icon-yellow (EAST)"; + icon_state = "yellow"; + dir = 4 + }, +/area/ruin/hotel/power) +"iU" = ( +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 2; + name = "Security APC"; + pixel_y = -24 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ruin/hotel/security) +"iV" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plating, +/area/ruin/hotel) +"iW" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/ruin/hotel) +"iX" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/ruin/hotel) +"iY" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -24; + tag = "icon-alarm0 (NORTH)" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ruin/hotel/pool) +"iZ" = ( +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 2; + name = "Pool APC"; + pixel_y = -24 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ruin/hotel/pool) +"ja" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ruin/hotel) +"jb" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/ruin/hotel) +"jc" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/ruin/hotel) +"jd" = ( +/obj/machinery/vending/snack, +/turf/open/floor/wood, +/area/ruin/hotel) +"je" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 2; + name = "Dock APC"; + pixel_y = -24 + }, +/obj/structure/cable, +/turf/open/floor/wood, +/area/ruin/hotel/dock) +"jf" = ( +/obj/machinery/light, +/turf/open/floor/wood, +/area/ruin/hotel/dock) +"jg" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/wood, +/area/ruin/hotel/dock) +"jh" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/wood, +/area/ruin/hotel/dock) +"ji" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/weapon/stock_parts/cell/high, +/obj/item/weapon/stock_parts/cell/high, +/turf/open/floor/plasteel/yellow/side{ + tag = "icon-yellow (WEST)"; + icon_state = "yellow"; + dir = 8 + }, +/area/ruin/hotel/power) +"jj" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/ruin/hotel/power) +"jk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ruin/hotel/power) +"jl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/ruin/hotel/power) +"jm" = ( +/obj/structure/table, +/obj/item/stack/sheet/rglass{ + amount = 50 + }, +/turf/open/floor/plasteel/yellow/side{ + tag = "icon-yellow (EAST)"; + icon_state = "yellow"; + dir = 4 + }, +/area/ruin/hotel/power) +"jn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/closed/wall, +/area/ruin/hotel/power) +"jo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/ruin/hotel/security) +"jp" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/closed/wall, +/area/ruin/hotel/security) +"jq" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Hotel Security Checkpoint"; + req_access_txt = "203" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ruin/hotel/security) +"jr" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/closed/wall, +/area/ruin/hotel/security) +"js" = ( +/obj/structure/closet, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ruin/hotel) +"jt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/ruin/hotel/pool) +"ju" = ( +/obj/machinery/door/airlock/glass, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/ruin/hotel/pool) +"jv" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ruin/hotel/pool) +"jw" = ( +/obj/machinery/door/airlock/glass, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/ruin/hotel/pool) +"jx" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/closed/wall, +/area/ruin/hotel/pool) +"jy" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/closed/wall, +/area/ruin/hotel/pool) +"jz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/closed/wall, +/area/ruin/hotel/dock) +"jA" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/weapon/stock_parts/cell/high, +/obj/item/weapon/stock_parts/cell/high, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/yellow/side{ + tag = "icon-yellow (WEST)"; + icon_state = "yellow"; + dir = 8 + }, +/area/ruin/hotel/power) +"jB" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/ruin/hotel/power) +"jC" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ruin/hotel/power) +"jD" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel, +/area/ruin/hotel/power) +"jE" = ( +/turf/open/floor/plasteel/yellow/corner{ + tag = "icon-yellowcorner (EAST)"; + icon_state = "yellowcorner"; + dir = 4 + }, +/area/ruin/hotel/power) +"jF" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 30 + }, +/turf/open/floor/plasteel/yellow/side{ + tag = "icon-yellow (NORTHEAST)"; + icon_state = "yellow"; + dir = 5 + }, +/area/ruin/hotel/power) +"jG" = ( +/turf/closed/wall, +/area/ruin/hotel/security) +"jH" = ( +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (NORTHWEST)"; + icon_state = "red"; + dir = 9 + }, +/area/ruin/hotel/security) +"jI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (NORTH)"; + icon_state = "red"; + dir = 1 + }, +/area/ruin/hotel/security) +"jJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (NORTH)"; + icon_state = "red"; + dir = 1 + }, +/area/ruin/hotel/security) +"jK" = ( +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (NORTH)"; + icon_state = "red"; + dir = 1 + }, +/area/ruin/hotel/security) +"jL" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = 30 + }, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (NORTHEAST)"; + icon_state = "red"; + dir = 5 + }, +/area/ruin/hotel/security) +"jM" = ( +/obj/structure/table, +/turf/open/floor/plasteel/darkyellow, +/area/ruin/hotel/security) +"jN" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/darkyellow, +/area/ruin/hotel/security) +"jO" = ( +/obj/structure/closet, +/obj/item/weapon/dice/d20, +/turf/open/floor/plasteel/darkyellow, +/area/ruin/hotel/security) +"jP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/ruin/hotel/security) +"jQ" = ( +/turf/closed/wall, +/area/ruin/hotel/pool) +"jR" = ( +/turf/open/floor/plasteel, +/area/ruin/hotel/pool) +"jS" = ( +/obj/machinery/computer/arcade, +/turf/open/floor/plasteel, +/area/ruin/hotel/pool) +"jT" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = 30 + }, +/turf/open/floor/plasteel, +/area/ruin/hotel/pool) +"jU" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/ruin/hotel/pool) +"jV" = ( +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/turf/open/floor/wood, +/area/ruin/hotel/pool) +"jW" = ( +/turf/open/floor/carpet, +/area/ruin/hotel/pool) +"jX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/carpet, +/area/ruin/hotel/pool) +"jY" = ( +/turf/open/floor/wood, +/area/ruin/hotel/pool) +"jZ" = ( +/obj/structure/sign/nosmoking_2{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/ruin/hotel/pool) +"ka" = ( +/obj/machinery/computer/arcade, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/ruin/hotel/pool) +"kb" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/closed/wall, +/area/ruin/hotel/power) +"kc" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/yellow/side{ + tag = "icon-yellow (WEST)"; + icon_state = "yellow"; + dir = 8 + }, +/area/ruin/hotel/power) +"kd" = ( +/obj/machinery/power/terminal, +/obj/structure/cable/yellow{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plasteel, +/area/ruin/hotel/power) +"ke" = ( +/obj/machinery/power/terminal, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plasteel, +/area/ruin/hotel/power) +"kf" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/components/binary/valve{ + name = "Air Release Valve"; + open = 1 + }, +/turf/open/floor/plasteel, +/area/ruin/hotel/power) +"kg" = ( +/obj/machinery/light{ + tag = "icon-tube1 (EAST)"; + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side{ + tag = "icon-yellow (EAST)"; + icon_state = "yellow"; + dir = 4 + }, +/area/ruin/hotel/power) +"kh" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (WEST)"; + icon_state = "red"; + dir = 8 + }, +/area/ruin/hotel/security) +"ki" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/ruin/hotel/security) +"kj" = ( +/obj/structure/chair, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/ruin/hotel/security) +"kk" = ( +/turf/open/floor/plasteel, +/area/ruin/hotel/security) +"kl" = ( +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (EAST)"; + icon_state = "red"; + dir = 4 + }, +/area/ruin/hotel/security) +"km" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/ruin/hotel/security) +"kn" = ( +/turf/open/floor/plasteel/darkyellow, +/area/ruin/hotel/security) +"ko" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel, +/area/ruin/hotel/pool) +"kp" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/ruin/hotel/pool) +"kq" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/yellow/side{ + tag = "icon-yellow (SOUTHWEST)"; + icon_state = "yellow"; + dir = 10 + }, +/area/ruin/hotel/power) +"kr" = ( +/obj/machinery/power/smes/engineering, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/sign/electricshock{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/yellow/side, +/area/ruin/hotel/power) +"ks" = ( +/obj/machinery/power/smes/engineering, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plasteel/yellow/side, +/area/ruin/hotel/power) +"kt" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/yellow/side, +/area/ruin/hotel/power) +"ku" = ( +/obj/machinery/power/solar_control, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plasteel/yellow/side, +/area/ruin/hotel/power) +"kv" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/sign/vacuum{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/yellow/side, +/area/ruin/hotel/power) +"kw" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8"; + tag = "" + }, +/turf/open/floor/plasteel/yellow/side{ + tag = "icon-yellow (SOUTHEAST)"; + icon_state = "yellow"; + dir = 6 + }, +/area/ruin/hotel/power) +"kx" = ( +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (WEST)"; + icon_state = "red"; + dir = 8 + }, +/area/ruin/hotel/security) +"ky" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/ruin/hotel/security) +"kz" = ( +/obj/structure/table, +/obj/item/weapon/folder/red, +/obj/item/weapon/folder/blue, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/ruin/hotel/security) +"kA" = ( +/obj/structure/table, +/obj/item/weapon/storage/fancy/donut_box, +/turf/open/floor/plasteel, +/area/ruin/hotel/security) +"kB" = ( +/obj/machinery/door/window/brigdoor{ + base_state = "rightsecure"; + dir = 4; + icon_state = "rightsecure"; + name = "Cell Door"; + req_access = null; + req_access_txt = "203" + }, +/turf/open/floor/plasteel/red, +/area/ruin/hotel/security) +"kC" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/darkyellow, +/area/ruin/hotel/security) +"kD" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ruin/hotel/pool) +"kE" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ruin/hotel/pool) +"kF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/ruin/hotel/pool) +"kG" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/ruin/hotel/pool) +"kH" = ( +/turf/closed/wall, +/area/ruin/hotel/power) +"kI" = ( +/obj/machinery/door/airlock/engineering{ + name = "Air Supply"; + req_access_txt = "200,201" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/ruin/hotel/power) +"kJ" = ( +/obj/machinery/door/airlock/glass_external, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/ruin/hotel/power) +"kK" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/wiki/security_space_law, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (WEST)"; + icon_state = "red"; + dir = 8 + }, +/area/ruin/hotel/security) +"kL" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/drinks/coffee, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/ruin/hotel/security) +"kM" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plasteel, +/area/ruin/hotel/security) +"kN" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (EAST)"; + icon_state = "red"; + dir = 4 + }, +/area/ruin/hotel/security) +"kO" = ( +/turf/open/floor/plasteel/darkyellow, +/turf/open/floor/plasteel/warningline, +/area/ruin/hotel/security) +"kP" = ( +/turf/open/floor/plasteel/darkyellow, +/turf/open/floor/plasteel/warningline/corner{ + tag = "icon-warninglinecorners (WEST)"; + icon_state = "warninglinecorners"; + dir = 8 + }, +/area/ruin/hotel/security) +"kQ" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ruin/hotel/pool) +"kR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ruin/hotel/pool) +"kS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ruin/hotel/pool) +"kT" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel, +/area/ruin/hotel/pool) +"kU" = ( +/obj/machinery/light{ + tag = "icon-tube1 (EAST)"; + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ruin/hotel/pool) +"kV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/ruin/hotel/power) +"kW" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/ruin/hotel/power) +"kX" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/sign/atmosplaque{ + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/ruin/hotel/power) +"kY" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plating, +/area/ruin/hotel/power) +"kZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/ruin/hotel/power) +"la" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/ruin/hotel/power) +"lb" = ( +/obj/structure/table, +/obj/machinery/recharger, +/obj/structure/sign/goldenplaque{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (WEST)"; + icon_state = "red"; + dir = 8 + }, +/area/ruin/hotel/security) +"lc" = ( +/obj/structure/table, +/obj/item/weapon/papercutter, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel, +/area/ruin/hotel/security) +"ld" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plasteel, +/area/ruin/hotel/security) +"le" = ( +/obj/structure/toilet{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ruin/hotel/security) +"lf" = ( +/turf/open/floor/plasteel/darkyellow, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (WEST)"; + icon_state = "warningline"; + dir = 8 + }, +/area/ruin/hotel/security) +"lg" = ( +/obj/structure/bed, +/turf/open/floor/plasteel/darkyellow, +/area/ruin/hotel/security) +"lh" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ruin/hotel/pool) +"li" = ( +/obj/effect/light_emitter, +/turf/open/floor/plating/beach/water{ + baseturf = /turf/open/space + }, +/area/ruin/hotel/pool) +"lj" = ( +/turf/open/floor/plating/beach/water{ + baseturf = /turf/open/space + }, +/area/ruin/hotel/pool) +"lk" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ruin/hotel/pool) +"ll" = ( +/obj/structure/table, +/turf/open/floor/plasteel, +/area/ruin/hotel/pool) +"lm" = ( +/obj/machinery/shower{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/ruin/hotel/pool) +"ln" = ( +/obj/structure/mirror{ + pixel_y = 32 + }, +/obj/structure/sink{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/freezer, +/area/ruin/hotel/pool) +"lo" = ( +/obj/structure/closet/athletic_mixed, +/turf/open/floor/plasteel/freezer, +/area/ruin/hotel/pool) +"lp" = ( +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 1 + }, +/turf/open/floor/plating, +/area/ruin/hotel/power) +"lq" = ( +/obj/machinery/light/small, +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 1 + }, +/turf/open/floor/plating, +/area/ruin/hotel/power) +"lr" = ( +/obj/structure/table, +/obj/item/weapon/restraints/handcuffs, +/obj/item/weapon/restraints/handcuffs, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (WEST)"; + icon_state = "red"; + dir = 8 + }, +/area/ruin/hotel/security) +"ls" = ( +/obj/structure/chair{ + tag = "icon-chair (NORTH)"; + icon_state = "chair"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/ruin/hotel/security) +"lt" = ( +/obj/structure/table, +/obj/item/toy/beach_ball, +/obj/item/clothing/glasses/sunglasses, +/turf/open/floor/plasteel, +/area/ruin/hotel/pool) +"lu" = ( +/turf/open/floor/plasteel/freezer, +/area/ruin/hotel/pool) +"lv" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 2 + }, +/turf/open/floor/plating/airless, +/area/ruin/unpowered/no_grav) +"lw" = ( +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (SOUTHWEST)"; + icon_state = "red"; + dir = 10 + }, +/area/ruin/hotel/security) +"lx" = ( +/turf/open/floor/plasteel/red/side, +/area/ruin/hotel/security) +"ly" = ( +/turf/open/floor/plasteel/red/corner{ + tag = "icon-redcorner (WEST)"; + icon_state = "redcorner"; + dir = 8 + }, +/area/ruin/hotel/security) +"lz" = ( +/obj/machinery/light{ + tag = "icon-tube1 (EAST)"; + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (EAST)"; + icon_state = "red"; + dir = 4 + }, +/area/ruin/hotel/security) +"lA" = ( +/obj/structure/closet, +/obj/item/weapon/dice/d1, +/obj/effect/decal/cleanable/cobweb{ + icon_state = "cobweb2" + }, +/turf/open/floor/plasteel/darkyellow, +/area/ruin/hotel/security) +"lB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plating/airless, +/area/ruin/unpowered/no_grav) +"lC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/ruin/unpowered/no_grav) +"lD" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/ruin/unpowered/no_grav) +"lE" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8"; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plating/airless, +/area/ruin/unpowered/no_grav) +"lF" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Hotel Security Checkpoint"; + req_access_txt = "203" + }, +/turf/open/floor/plasteel/darkred, +/area/ruin/hotel/security) +"lG" = ( +/obj/structure/window{ + tag = "icon-window (NORTH)"; + icon_state = "window"; + dir = 1 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/pool) +"lH" = ( +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/pool) +"lI" = ( +/obj/structure/closet/crate, +/obj/item/clothing/shoes/sandal, +/obj/item/clothing/shoes/sandal, +/obj/item/clothing/shoes/sandal, +/obj/item/clothing/shoes/sandal, +/obj/item/clothing/shoes/sandal, +/obj/item/clothing/shoes/sandal, +/obj/item/clothing/shoes/sandal, +/obj/item/clothing/shoes/sandal, +/obj/item/clothing/shoes/sandal, +/obj/item/clothing/shoes/sandal, +/obj/structure/window{ + tag = "icon-window (NORTH)"; + icon_state = "window"; + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/pool) +"lJ" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating/airless, +/area/ruin/unpowered/no_grav) +"lK" = ( +/obj/effect/mob_spawn/human/hotel_staff/security, +/turf/open/floor/plasteel/darkred, +/area/ruin/hotel/security) +"lL" = ( +/turf/open/floor/plasteel/darkred, +/area/ruin/hotel/security) +"lM" = ( +/obj/machinery/door/airlock{ + name = "Men's Changing" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/pool) +"lN" = ( +/obj/machinery/light/small{ + tag = "icon-bulb1 (WEST)"; + icon_state = "bulb1"; + dir = 8 + }, +/turf/open/floor/plasteel/darkred, +/area/ruin/hotel/security) +"lO" = ( +/obj/structure/mirror{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/darkred, +/area/ruin/hotel/security) +"lP" = ( +/obj/item/weapon/bikehorn/rubberducky, +/turf/open/floor/plating/beach/water{ + baseturf = /turf/open/space + }, +/area/ruin/hotel/pool) +"lQ" = ( +/obj/structure/table, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/pool) +"lR" = ( +/obj/structure/dresser, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/pool) +"lS" = ( +/obj/structure/table, +/obj/item/weapon/card/id/away/hotel/securty, +/turf/open/floor/plasteel/darkred, +/area/ruin/hotel/security) +"lT" = ( +/obj/structure/closet/secure_closet/security{ + req_access = null; + req_access_txt = "203" + }, +/obj/item/weapon/gun/energy/laser/scatter/shotty, +/obj/item/clothing/head/helmet/justice, +/turf/open/floor/plasteel/darkred, +/area/ruin/hotel/security) +"lU" = ( +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (SOUTHEAST)"; + icon_state = "red"; + dir = 6 + }, +/area/ruin/hotel/security) +"lV" = ( +/obj/machinery/power/solar, +/obj/structure/cable/yellow{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating/airless, +/area/ruin/unpowered/no_grav) +"lW" = ( +/obj/machinery/power/solar, +/obj/structure/cable/yellow{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating/airless, +/area/ruin/unpowered/no_grav) +"lX" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating/airless, +/area/ruin/unpowered/no_grav) +"lY" = ( +/obj/machinery/power/solar, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating/airless, +/area/ruin/unpowered/no_grav) +"lZ" = ( +/obj/machinery/power/solar, +/obj/structure/cable/yellow{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating/airless, +/area/ruin/unpowered/no_grav) +"ma" = ( +/obj/structure/closet, +/turf/open/floor/plating, +/area/ruin/hotel) +"mb" = ( +/obj/structure/table, +/obj/item/weapon/lipstick, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/pool) +"mc" = ( +/obj/structure/mirror{ + pixel_y = 32 + }, +/obj/structure/sink{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/pool) +"md" = ( +/turf/closed/wall, +/area/ruin/hotel/custodial) +"me" = ( +/mob/living/simple_animal/bot/cleanbot, +/turf/open/floor/plasteel/neutral, +/area/ruin/hotel/custodial) +"mf" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/machinery/light/small{ + tag = "icon-bulb1 (NORTH)"; + icon_state = "bulb1"; + dir = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/ruin/hotel/custodial) +"mg" = ( +/obj/structure/janitorialcart, +/obj/item/weapon/mop, +/turf/open/floor/plasteel/neutral, +/area/ruin/hotel/custodial) +"mh" = ( +/obj/structure/closet/l3closet/janitor, +/turf/open/floor/plasteel/neutral, +/area/ruin/hotel/custodial) +"mi" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/glass/bucket, +/obj/item/weapon/reagent_containers/spray/cleaner, +/turf/open/floor/plasteel/neutral, +/area/ruin/hotel/custodial) +"mj" = ( +/obj/structure/table, +/obj/item/weapon/grenade/chem_grenade/cleaner, +/obj/item/weapon/grenade/chem_grenade/cleaner, +/obj/item/weapon/grenade/chem_grenade/cleaner, +/turf/open/floor/plasteel/neutral, +/area/ruin/hotel/custodial) +"mk" = ( +/obj/structure/table, +/obj/machinery/light/small{ + tag = "icon-bulb1 (NORTH)"; + icon_state = "bulb1"; + dir = 1 + }, +/obj/item/device/lightreplacer, +/turf/open/floor/plasteel/neutral, +/area/ruin/hotel/custodial) +"ml" = ( +/turf/open/floor/plasteel/neutral, +/area/ruin/hotel/custodial) +"mm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/ruin/hotel/custodial) +"mn" = ( +/obj/machinery/door/airlock{ + name = "Women's Changing" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/pool) +"mo" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral, +/area/ruin/hotel/custodial) +"mp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/ruin/hotel/custodial) +"mq" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/closed/wall, +/area/ruin/hotel/custodial) +"mr" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/ruin/hotel/pool) +"ms" = ( +/obj/structure/window, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/pool) +"mt" = ( +/obj/structure/closet/crate, +/obj/item/clothing/shoes/sandal, +/obj/item/clothing/shoes/sandal, +/obj/item/clothing/shoes/sandal, +/obj/item/clothing/shoes/sandal, +/obj/item/clothing/shoes/sandal, +/obj/item/clothing/shoes/sandal, +/obj/item/clothing/shoes/sandal, +/obj/item/clothing/shoes/sandal, +/obj/item/clothing/shoes/sandal, +/obj/item/clothing/shoes/sandal, +/obj/structure/window, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/hotel/pool) +"mu" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/ruin/hotel/custodial) +"mv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/ruin/hotel/custodial) +"mw" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/ruin/hotel/custodial) +"mx" = ( +/obj/machinery/door/airlock{ + name = "Custodial Closet"; + req_access_txt = "200,201" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ruin/hotel/custodial) +"my" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plating, +/area/ruin/hotel) +"mz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ruin/hotel) +"mA" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Hotel Maintenance"; + req_access_txt = "201" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ruin/hotel/pool) +"mB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ruin/hotel/pool) +"mC" = ( +/obj/structure/chair{ + tag = "icon-chair (NORTH)"; + icon_state = "chair"; + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ruin/hotel/pool) +"mD" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + tag = "icon-plant-25"; + icon_state = "plant-25" + }, +/turf/open/floor/plasteel/neutral, +/area/ruin/hotel/custodial) +"mE" = ( +/obj/structure/table, +/turf/open/floor/plasteel/neutral, +/area/ruin/hotel/custodial) +"mF" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/neutral, +/area/ruin/hotel/custodial) +"mG" = ( +/obj/machinery/light/small, +/turf/open/floor/plasteel/neutral, +/area/ruin/hotel/custodial) +"mH" = ( +/obj/structure/closet/crate/trashcart, +/turf/open/floor/plasteel/neutral, +/area/ruin/hotel/custodial) +"mI" = ( +/obj/structure/table, +/obj/item/weapon/storage/bag/trash, +/turf/open/floor/plasteel/neutral, +/area/ruin/hotel/custodial) +"mJ" = ( +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 2; + name = "Custodial APC"; + pixel_y = -24 + }, +/obj/structure/cable, +/turf/open/floor/plasteel/neutral, +/area/ruin/hotel/custodial) +"mK" = ( +/obj/structure/closet/secure_closet/personal, +/turf/open/floor/plasteel, +/area/ruin/hotel/pool) +"mL" = ( +/obj/machinery/light, +/obj/structure/table, +/obj/item/toy/beach_ball, +/obj/item/clothing/glasses/sunglasses, +/turf/open/floor/plasteel, +/area/ruin/hotel/pool) +"mM" = ( +/obj/machinery/light, +/obj/structure/table, +/turf/open/floor/plasteel, +/area/ruin/hotel/pool) +"mN" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/turf/open/floor/plating, +/area/ruin/hotel/pool) +"mO" = ( +/obj/machinery/power/tracker, +/obj/structure/cable/yellow, +/turf/open/floor/plating/airless, +/area/ruin/unpowered/no_grav) +"mV" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/carpet, +/area/ruin/hotel) +"mU" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/carpet, +/area/ruin/hotel) +"mT" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8"; + tag = "" + }, +/turf/open/floor/carpet, +/area/ruin/hotel) +"mS" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/turf/open/floor/carpet, +/area/ruin/hotel) +"mR" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/carpet, +/area/ruin/hotel) +"mQ" = ( +/obj/machinery/door/airlock/centcom{ + name = "Hotel Staff Room"; + req_access_txt = "200" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/black, +/area/ruin/hotel/workroom) +"mP" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8"; + tag = "" + }, +/turf/open/floor/plasteel/black, +/area/ruin/hotel/workroom) + +(1,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(2,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(3,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(4,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +"} +(5,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +aa +ac +aa +aa +ac +aa +aa +ac +aa +aa +ac +aa +ab +aa +aa +aa +aa +aa +aa +"} +(6,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +ac +aa +aa +lV +aa +aa +lV +aa +aa +lV +aa +aa +lV +aa +ab +aa +aa +aa +aa +aa +aa +"} +(7,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +aa +ac +aa +aa +lW +aa +aa +lW +aa +aa +lW +aa +aa +lW +aa +ab +aa +aa +aa +aa +aa +aa +"} +(8,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +aa +aa +aa +ac +aa +aa +aa +aa +ac +aa +aa +aa +aa +ac +ab +ab +ab +ab +ab +ab +ab +ab +aa +lv +lB +ac +aa +aa +lW +aa +aa +lW +aa +aa +lW +aa +aa +lW +aa +ab +aa +aa +aa +aa +aa +aa +"} +(9,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +af +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ip +aa +aa +aa +aa +ac +aa +aa +aa +aa +aa +lC +ac +aa +aa +lW +aa +aa +lW +aa +aa +lW +aa +aa +lW +aa +ab +aa +aa +aa +aa +aa +aa +"} +(10,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +aa +aa +aa +ac +aa +aa +aa +aa +aa +ac +aa +aa +aa +ac +ac +ag +ct +cH +cH +cH +cH +cH +cH +cH +he +cH +cH +cH +ia +iq +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +lD +ac +aa +aa +lW +aa +aa +lW +aa +aa +lW +aa +aa +lW +aa +aa +ab +aa +aa +aa +aa +aa +"} +(11,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +af +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +al +cw +fd +cQ +cQ +cQ +gj +cQ +cQ +hf +cQ +cQ +hP +ib +ir +ir +ir +ir +ir +kb +ir +ir +ir +ir +ir +lE +lJ +aj +aj +lX +aj +aj +lX +aj +aj +lX +aj +aj +aj +mO +ac +ab +aa +aa +aa +aa +aa +"} +(12,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +ag +am +am +am +am +am +am +ct +cH +cH +cH +cH +cH +cH +cH +cH +eH +cJ +fi +fi +fi +fi +fi +fi +hg +fi +fi +cJ +ic +is +iH +iR +ji +jA +kc +kq +kH +kV +lp +kH +aa +ag +aa +aa +lY +aa +aa +lY +aa +aa +lY +aa +aa +lY +aa +aa +ab +aa +aa +aa +aa +aa +"} +(13,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ag +am +av +aw +bC +bL +ck +cu +cI +cQ +cQ +cQ +cQ +cQ +cQ +cQ +eI +fe +fi +fP +fY +gk +gk +gk +hh +ht +fi +hQ +id +it +iI +iI +jj +jB +kd +kr +kH +kW +lp +kH +aa +ag +aa +aa +lY +aa +aa +lY +aa +aa +lY +aa +aa +lY +aa +ab +aa +aa +aa +aa +aa +aa +"} +(14,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +ag +am +aw +aw +aw +aw +aw +cv +cJ +aw +aw +bC +aw +ed +aw +aw +eJ +aw +fj +fQ +fQ +gl +gz +gz +hi +gz +hI +hR +ic +iu +iJ +iS +jk +iK +ke +ks +kH +kX +lq +kH +aa +ag +aa +aa +lY +aa +aa +lY +aa +aa +lY +aa +aa +lY +aa +ab +aa +aa +aa +aa +aa +aa +"} +(15,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +ag +an +an +an +an +an +an +cw +cK +am +cZ +cZ +cZ +cZ +cZ +cZ +eJ +ck +fi +fR +fQ +gm +gA +fQ +hj +hu +fi +cJ +ic +iv +iJ +iS +jl +jC +kf +kt +kI +kY +lp +kH +aa +ag +aa +aa +lY +aa +aa +lY +aa +aa +lY +aa +aa +lY +aa +ab +aa +aa +aa +aa +aa +aa +"} +(16,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +ag +an +ax +az +az +az +an +cx +cL +cF +cZ +dk +dH +dH +dH +cZ +eJ +ff +fi +fR +fQ +gn +gB +fQ +hk +hv +fi +cJ +ic +iw +iK +iK +iK +jD +iK +ku +kH +kZ +lp +kH +aa +ag +aa +aa +lZ +aa +aa +lZ +aa +aa +lZ +aa +aa +lZ +aa +ab +aa +aa +aa +aa +aa +aa +"} +(17,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +ag +an +ay +be +be +az +an +cx +cL +cF +cZ +dl +dI +dI +dH +cZ +eJ +fg +fi +fS +fQ +fQ +fQ +fQ +fQ +fQ +fi +cJ +ic +ix +iL +iT +jm +jE +iK +kv +kH +kH +kH +kH +aa +ag +aa +aa +ac +aa +aa +ac +aa +aa +ac +aa +aa +ac +aa +ab +aa +aa +aa +aa +aa +aa +"} +(18,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +ag +an +az +bf +az +bM +an +cx +cL +cF +cZ +dm +dH +ee +dH +cZ +eJ +aw +fi +fQ +fQ +fQ +fQ +fQ +gA +fQ +fi +cJ +ie +ir +ir +ir +jn +jF +kg +kw +kJ +la +kJ +aj +aj +al +aa +aa +ac +aa +aa +ac +aa +aa +ac +aa +aa +ab +ab +aa +aa +aa +aa +aa +aa +aa +"} +(19,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ag +an +aA +an +an +an +an +cx +cL +cR +cZ +cZ +cZ +cZ +es +cZ +eK +fh +fi +fQ +fZ +go +gk +go +hl +hw +fi +hS +cQ +cQ +cQ +hP +jo +jG +jG +jG +jG +jG +jG +jG +jG +jG +jG +jG +jG +aa +aa +ac +aa +aa +ac +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(20,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +ag +an +aB +bg +bD +bN +an +cx +cL +cF +cZ +dn +dJ +ef +dM +cZ +aw +fi +fi +fT +fi +fi +fi +fi +fi +fi +fi +fi +fi +fi +fi +cJ +jo +jH +kh +kx +kK +lb +lr +lw +jG +lK +lN +lS +jG +md +md +md +md +md +ac +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(21,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +ag +ao +aB +bh +bE +bO +cl +cy +cM +cS +da +do +dK +eg +et +cZ +aw +fi +fw +fx +ga +ga +gC +gT +hm +ga +ga +hT +if +iy +fi +iU +jp +jI +ki +ky +kk +kk +kk +lx +lF +lL +lO +lT +jG +me +ml +ml +mD +md +ac +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(22,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +ag +ao +aC +bi +bi +bP +cm +cz +cN +cT +db +dp +dL +eh +dM +cZ +aw +fj +fx +fx +fx +fx +fx +gU +hn +hn +hn +hn +hn +hn +hI +iV +jq +jJ +kj +kz +kL +lc +ls +lx +jG +jG +jG +jG +jG +mf +ml +ml +mE +md +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(23,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +ag +ao +aD +aB +aB +bQ +an +cx +cL +cF +cZ +dq +dM +dM +dM +cZ +eL +fi +fx +fx +gb +gp +gD +gV +fx +hx +hJ +gp +fx +fx +fi +cJ +jo +jK +kk +kA +kM +ld +kk +ly +kx +kx +kx +lw +jG +mg +ml +ml +mF +md +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(24,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +ag +an +aE +bj +bj +bR +an +cx +cL +cF +cZ +dr +dN +dN +eu +cZ +aw +fi +fy +fx +gc +gq +gE +gV +fx +hy +hK +gp +fx +iz +fi +cJ +jo +jL +kl +kl +kN +kl +kl +lz +kl +kl +kl +lU +jG +mh +ml +mu +mG +md +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(25,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ag +an +an +an +an +an +an +cx +cL +cU +cZ +cZ +cZ +cZ +cZ +cZ +aw +fi +fz +fx +fx +fx +fx +gV +fx +fx +fx +fx +fx +fx +fi +cJ +jo +jG +km +kB +km +jG +jG +jG +km +kB +km +jG +jG +mi +mo +mv +mH +md +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(26,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +ag +ap +aF +aH +aH +aH +ap +cx +cL +cF +dc +ds +dO +dO +dO +dc +aw +fi +fA +fx +fA +fA +fA +gW +ho +hz +hz +hU +hU +iA +hU +iW +jr +jM +kn +kn +kO +le +jG +jM +kn +kn +kO +le +jG +mj +mp +mv +mI +md +ac +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(27,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +ag +ap +aG +bk +bk +aH +ap +cx +cL +cR +dc +dt +dP +dP +dO +dc +aw +fi +fB +fG +fH +gr +fG +gr +fG +gr +fG +hV +ig +ih +fi +cJ +jo +jN +kn +kn +kP +lf +jG +jN +kn +kn +kP +lf +jG +mk +mp +mv +ml +md +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(28,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +ag +ap +aH +bl +aH +bS +ap +cx +cL +cF +dc +du +dO +ei +dO +dc +aw +fi +fC +fG +fU +fG +fG +gX +fG +gX +fG +hW +ih +ih +fi +cJ +jo +jO +kn +kC +kn +lg +jG +lA +kn +kC +kn +lg +jG +ml +mp +mw +mJ +md +aa +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(29,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ag +ap +aI +ap +ap +ap +ap +cx +cL +cF +dc +dc +dc +dc +ev +dc +aw +fi +fD +fG +fH +gr +fG +gY +fG +gY +fG +hW +ih +ih +fi +cJ +jp +jP +jP +jP +jP +jP +jP +jP +jP +jP +jP +jP +jP +mm +mq +mx +md +md +am +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(30,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +ag +ap +aJ +bm +bF +bT +ap +cx +cL +cF +dc +dv +dQ +ej +dT +dc +aw +fi +fE +fG +fH +fG +fG +gZ +fG +gZ +fG +hW +ih +iB +fi +cJ +js +ck +bL +aw +aw +aw +ed +aw +aw +aw +aw +cI +cQ +cQ +hf +my +aw +aw +am +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(31,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +ag +aq +aJ +bn +bG +bU +cn +cy +cM +cS +dd +dw +dR +ek +ew +dc +aw +fi +fF +fG +gd +gr +fG +gX +fG +gX +fG +hW +ih +ih +fi +iX +hf +cQ +cQ +cQ +cQ +cQ +cQ +cQ +cQ +cQ +cQ +fe +ma +ck +cv +mz +ed +fg +am +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(32,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +ag +aq +aK +bo +bo +bV +co +cA +cN +cV +de +dx +dS +el +dT +dc +aw +fj +fG +fG +fH +fG +fG +gY +fG +gY +fG +hX +ih +ih +fi +cJ +jt +jQ +jQ +jQ +jQ +jQ +jQ +jQ +jQ +jQ +jQ +jQ +jQ +jQ +jt +mA +jQ +jQ +jQ +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(33,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +ag +aq +aL +aJ +aJ +bW +ap +cx +cL +cF +dc +dy +dT +dT +dT +dc +aw +fi +fH +fU +fH +gr +fG +gZ +fG +gZ +fG +hY +ii +ii +fi +cJ +jt +jR +jR +jR +kQ +jR +jR +jR +jR +jR +kQ +jR +jR +jR +mr +mB +kQ +jR +jQ +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(34,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +ag +ap +aM +bp +bp +bX +ap +cx +cL +cF +dc +dz +dU +dU +ex +dc +eM +ct +fI +cF +cF +cF +cF +cF +cF +cF +cF +cF +cF +eT +am +cJ +jt +jS +ko +jR +jR +jR +jR +jR +jR +jR +jR +jR +jR +jR +jR +kT +jR +mK +jQ +ac +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(35,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ag +ap +ap +ap +ap +ap +ap +cx +cL +cR +dc +dc +dc +dc +dc +dc +eN +cw +fJ +cF +cF +cF +cF +cF +hp +cF +cF +cF +cF +eT +am +cJ +jt +jS +ko +kD +kD +lh +lh +lh +kD +kD +kD +lh +lh +lh +kD +kD +jR +mK +mN +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(36,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +ag +ar +aN +aP +aP +aP +ar +cx +cL +cF +df +cF +cF +em +cF +df +cF +cx +fK +cF +cF +di +di +di +di +di +di +cF +cF +iC +am +iY +jt +jS +ko +kD +kD +kD +kD +kD +kD +kD +kD +kD +kD +kD +kD +kD +jR +mK +mN +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(37,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +ag +ar +aO +bq +bq +aP +ar +cx +cL +cF +am +cF +cF +cF +cF +am +cF +cx +fK +cF +cR +di +gF +ha +hq +hA +di +cF +cF +eT +am +iZ +jt +jR +jR +kE +kD +li +lj +lj +lj +lj +lj +lj +lj +li +kD +mC +jR +mK +mN +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(38,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +ag +ar +aP +br +aP +bY +ar +cx +cO +cW +dg +cW +cW +cW +cW +dg +cW +fk +fL +cF +cF +gs +gG +gG +gG +mP +mQ +mR +cF +eT +am +cJ +jt +jT +jR +kE +kD +lj +lj +lj +lj +lj +lj +lj +lj +lj +kD +mC +jR +mK +mN +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(39,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ag +ar +aQ +ar +ar +ar +ar +cB +cN +cX +dh +dh +dh +dh +dh +dh +eO +fl +fM +cF +ge +di +gH +gG +gG +hB +di +mS +cF +eT +am +cJ +jt +jU +jR +kE +kD +lj +lj +lj +lj +lj +lj +lj +lj +lj +kD +mC +jR +mL +jQ +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(40,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +ag +ar +aR +bs +bH +bZ +ar +cx +cL +cF +di +dA +dV +en +ey +di +eP +fm +fM +cF +cF +di +gI +gG +gG +hC +di +mS +cF +eT +am +cK +jt +jR +jR +kD +kD +lj +lj +lj +lj +lj +lj +lj +lj +lj +kD +kD +jR +ll +jQ +ac +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(41,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +ag +as +aR +bt +bI +ca +cp +cy +cM +cS +dj +dB +dW +eo +ey +di +eQ +fn +fM +cF +cF +di +gJ +gG +gG +hD +di +mS +cF +eT +iM +ja +jt +jV +jY +jY +kD +lj +lj +lj +lj +lj +lP +lj +lj +lj +kD +kD +jR +mK +mN +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(42,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +ag +as +aS +bu +bu +cb +cq +cC +cN +cY +dh +dC +dX +ep +ey +di +eQ +fn +fM +cF +cF +di +gK +gG +gG +hE +di +mT +mU +mU +mU +mV +ju +jW +jW +jY +kD +lj +lj +lj +lj +lj +lj +lj +lj +lj +kD +mC +jR +mK +mN +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(43,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +ag +as +aT +aR +aR +cc +ar +cx +cL +cF +di +dD +dY +ep +ez +di +eR +fo +fM +cF +cF +di +gL +gG +gG +hF +di +cF +cF +cF +cF +cL +jv +jW +jW +jY +kD +lj +lj +lj +lj +li +lj +lj +lj +lj +kD +mC +jR +mK +mN +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(44,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +ag +ar +aU +bv +bv +cd +ar +cx +cL +cF +di +dE +dZ +eq +eA +di +eS +fm +fM +cF +cF +di +gM +gG +gG +hG +di +cF +ij +iD +cW +jb +jw +jX +jX +kF +kR +lj +lj +lj +lj +lj +lj +lj +lj +lj +kD +mC +jR +mK +mN +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(45,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ag +ar +ar +ar +ar +ar +ar +cx +cL +cF +di +di +ea +ep +dV +di +eT +fp +fN +fV +cF +di +gM +gG +gG +hH +di +hZ +ik +iE +iN +jc +jx +jY +jY +jY +kS +lj +lj +lj +lj +lj +lj +lj +lj +lj +kD +kD +jR +mK +mN +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(46,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +ag +at +aV +aX +aX +aX +at +cD +cL +cF +di +dF +ea +ep +dF +di +eU +fq +am +fK +cF +di +gM +gG +gG +hH +di +cF +cL +am +iO +jd +jt +jZ +jR +kD +kS +lj +lj +lj +lj +lj +lj +lj +lj +lj +kD +kD +jR +ll +jQ +ac +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(47,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +ag +at +aW +bw +bw +aX +at +cx +cL +cF +di +dG +ea +er +dG +di +eG +fr +eG +fW +gf +di +di +gs +gs +di +di +gf +il +eG +eG +eG +jt +jU +jR +kE +kS +lj +lj +lj +lj +lj +lj +lj +lj +lj +kD +mC +jR +mM +jQ +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(48,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +ag +at +aX +bx +aX +ce +at +cx +cL +cF +di +dF +eb +dV +dF +di +eV +fs +fO +fX +fu +gt +gN +hb +hb +gN +hL +fu +im +iF +iP +je +jt +jR +jR +kE +kS +lj +lj +lj +lj +lj +lj +lj +lj +lj +kD +mC +jR +mK +mN +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(49,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ag +at +aY +at +at +at +at +cx +cL +cF +di +di +di +dV +dV +di +eW +ft +fu +fu +fu +gu +gO +hb +hb +gO +hM +fu +in +fu +eW +eW +jt +jR +jR +kE +kS +li +lj +lj +lj +lj +lj +lj +lj +li +kD +mC +jR +mK +mN +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(50,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +ag +at +aZ +by +bJ +cf +at +cx +cL +cR +am +ac +di +dV +eB +di +eX +fu +fu +fu +fu +gv +gP +hc +hc +gP +hN +fu +in +fu +fu +eX +jt +jS +ko +kD +kS +kD +kD +kD +kD +kD +kD +kD +kD +kD +kD +kD +jR +mK +mN +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(51,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +aa +ag +au +aZ +bz +bK +cg +cr +cy +cP +cF +cG +ac +ec +dV +eC +di +eY +fu +fu +fu +fu +fu +fu +fu +fu +fu +fu +fu +in +fu +fu +eY +jt +jS +ko +kD +kS +lk +lk +lk +kD +kD +kD +lk +lk +lk +kD +kD +jR +mK +mN +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(52,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +aa +ag +au +ba +bA +bA +ch +cs +cE +cF +cF +cG +ac +ec +dV +eD +di +eZ +fu +fu +fu +gg +eW +eW +eW +eW +eW +eW +gg +in +fu +fu +eZ +jy +ka +kp +kG +kT +jR +jR +jR +jR +jR +jR +jR +jR +jR +jR +jR +jR +mK +jQ +ac +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(53,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +aa +ac +ac +ag +au +bb +aZ +aZ +ci +at +cF +cF +cF +cG +ac +ec +dV +eE +di +eW +fu +fu +fu +gh +eW +gw +gw +gw +gw +eW +gh +in +fu +fu +eW +jt +jR +jR +jR +kU +ll +lt +ll +jR +jR +kU +jR +jR +jR +jR +jR +kU +jR +jQ +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(54,1,1) = {" +aa +aa +aa +aa +ab +ab +ab +ab +aa +aa +aa +aa +aa +ag +at +bc +bB +bB +cj +at +cF +cF +cF +am +ac +di +dV +eF +di +fa +fu +fu +fu +eG +gw +gQ +gw +gw +gw +gw +eG +in +fu +fu +eW +jt +jQ +jQ +jQ +jQ +jQ +jQ +jQ +jQ +lM +jQ +jQ +jQ +mn +jQ +jQ +jQ +jQ +jQ +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(55,1,1) = {" +aa +aa +aa +ab +aa +aa +aa +ac +aa +aa +af +aj +aj +al +at +at +at +at +at +at +cG +cG +cG +am +ac +di +di +di +di +fb +fu +fu +fu +eG +gx +gR +gw +hr +gw +hO +eG +in +fu +fu +jf +fr +aa +aa +aa +jQ +lm +lm +lm +lG +lH +lQ +jQ +mb +lH +ms +lm +lm +lm +jQ +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(56,1,1) = {" +aa +aa +ab +aa +aa +aa +aa +ac +aa +aa +ag +aa +aa +aa +aa +aa +aa +aa +ac +aa +aa +aa +aa +ac +aa +aa +aa +aa +eG +fc +fu +fu +fu +eG +gw +gS +gw +gw +gw +gw +eG +in +fu +fu +eW +fr +aa +aa +aa +jQ +ln +lu +lu +lH +lH +lH +jQ +mc +lH +lH +lu +lu +lu +jQ +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(57,1,1) = {" +aa +aa +ab +ac +ac +ad +ae +ae +ae +ae +ah +ak +ak +ak +ak +bd +aa +aa +ac +aa +aa +aa +aa +ac +aa +aa +aa +aa +eG +eX +fu +fu +fu +gh +eW +gw +gw +gw +gw +eW +gh +in +fu +fu +eX +fr +aa +aa +aa +jQ +ln +lu +lu +lH +lH +lH +jQ +mc +lH +lH +lu +lu +lu +jQ +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(58,1,1) = {" +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +ag +aa +aa +aa +aa +aa +aa +aa +ac +ab +ab +ab +ab +ab +ab +aa +aa +aa +eG +eY +fu +fu +fu +gg +eW +eW +eW +eW +eW +eW +gg +in +fu +fu +eY +fr +aa +aa +aa +jQ +lo +lo +lo +lI +lH +lR +jQ +lR +lH +mt +lo +lo +lo +jQ +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(59,1,1) = {" +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +ag +aa +aa +aa +aa +aa +aa +aa +ab +aa +aa +aa +aa +aa +aa +ab +aa +aa +eG +eZ +fu +fu +fu +fu +fu +fu +fu +fu +fu +fu +fu +in +fu +fu +jg +jz +aa +aa +aa +jQ +jQ +jQ +jQ +jQ +jQ +jQ +jQ +jQ +jQ +jQ +jQ +jQ +jQ +jQ +ac +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(60,1,1) = {" +aa +aa +ab +ac +ac +ad +ae +ae +ae +ae +ah +ak +ak +ak +ak +bd +ac +ac +ab +aa +aa +aa +aa +aa +aa +ab +aa +aa +eG +eW +eW +fu +fu +gi +gy +gy +hd +hs +gy +gy +gi +io +iG +iQ +jh +eG +aa +aa +aa +ac +aa +aa +aa +aa +ac +aa +aa +aa +aa +aa +ac +aa +aa +aa +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(61,1,1) = {" +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +ag +aa +aa +aa +aa +aa +aa +aa +ab +aa +aa +aa +aa +aa +aa +ab +ac +ac +eG +eG +fv +fv +fv +eG +fv +fv +fv +fv +fv +fv +eG +fv +fv +fv +eG +eG +aa +aa +aa +ac +aa +aa +aa +aa +ac +aa +aa +aa +aa +aa +ac +aa +aa +aa +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(62,1,1) = {" +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +ag +aa +aa +aa +aa +aa +aa +aa +ab +aa +aa +aa +aa +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +ac +aa +aa +aa +aa +aa +aa +ac +aa +aa +aa +aa +aa +aa +aa +aa +ac +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(63,1,1) = {" +aa +aa +ab +ac +ac +ad +ae +ae +ae +ae +ah +ak +ak +ak +ak +bd +ac +ac +ab +aa +aa +aa +aa +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +ac +aa +aa +aa +aa +aa +aa +ac +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(64,1,1) = {" +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +ag +aa +aa +aa +aa +aa +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(65,1,1) = {" +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +ag +aa +aa +aa +aa +aa +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(66,1,1) = {" +aa +aa +ab +ac +ac +ad +ae +ae +ae +ae +ah +ak +ak +ak +ak +bd +ac +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(67,1,1) = {" +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +ai +aa +aa +aa +aa +aa +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(68,1,1) = {" +aa +aa +aa +ab +aa +aa +aa +aa +aa +aa +ac +aa +aa +aa +aa +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(69,1,1) = {" +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ac +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(70,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(71,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(72,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(73,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(74,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(75,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} diff --git a/_maps/RandomRuins/SpaceRuins/turretedoutpost.dmm b/_maps/RandomRuins/SpaceRuins/turretedoutpost.dmm index d4f3ce9c1f..fad402920b 100644 --- a/_maps/RandomRuins/SpaceRuins/turretedoutpost.dmm +++ b/_maps/RandomRuins/SpaceRuins/turretedoutpost.dmm @@ -1,51 +1,51 @@ "a" = (/turf/open/space,/area/space) "b" = (/obj/structure/lattice,/turf/open/space,/area/space) -"c" = (/obj/structure/grille,/turf/open/floor/plating/airless,/area/ruin/unpowered) -"d" = (/turf/closed/wall/r_wall,/area/ruin/unpowered) -"e" = (/obj/structure/table/reinforced,/obj/item/weapon/stock_parts/cell/hyper,/turf/open/floor/plasteel,/area/ruin/unpowered) -"f" = (/obj/structure/frame/computer,/turf/open/floor/plasteel,/area/ruin/unpowered) -"g" = (/turf/open/floor/plasteel,/area/ruin/unpowered) -"h" = (/obj/machinery/light{dir = 1},/turf/open/floor/plasteel,/area/ruin/unpowered) -"i" = (/obj/machinery/door/airlock/external,/turf/open/floor/plating,/area/ruin/unpowered) -"j" = (/obj/machinery/light{dir = 1},/turf/open/floor/plating,/area/ruin/unpowered) -"k" = (/turf/open/floor/plating,/area/ruin/unpowered) -"l" = (/turf/open/floor/plating/airless,/area/ruin/unpowered) -"m" = (/obj/structure/table/reinforced,/obj/item/weapon/folder,/obj/item/device/radio,/turf/open/floor/plasteel,/area/ruin/unpowered) -"n" = (/obj/structure/chair/office/dark{dir = 8},/turf/open/floor/plasteel,/area/ruin/unpowered) -"o" = (/obj/machinery/porta_turret,/turf/open/floor/plating/airless,/area/ruin/unpowered) -"p" = (/obj/structure/filingcabinet,/turf/open/floor/plasteel,/area/ruin/unpowered) -"q" = (/obj/machinery/light,/turf/open/floor/plasteel,/area/ruin/unpowered) -"r" = (/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/turf/open/floor/plasteel,/area/ruin/unpowered) -"s" = (/obj/structure/rack,/turf/open/floor/plasteel{icon_state = "vault"; dir = 8},/area/ruin/unpowered) -"t" = (/obj/item/weapon/rack_parts,/turf/open/floor/plasteel{icon_state = "vault"; dir = 8},/area/ruin/unpowered) -"u" = (/obj/item/weapon/rack_parts,/obj/machinery/light{dir = 1},/turf/open/floor/plasteel{icon_state = "vault"; dir = 8},/area/ruin/unpowered) -"v" = (/obj/structure/rack,/obj/item/device/firing_pin,/turf/open/floor/plasteel{icon_state = "vault"; dir = 8},/area/ruin/unpowered) -"w" = (/obj/machinery/door/airlock/glass,/turf/open/floor/plasteel,/area/ruin/unpowered) -"x" = (/obj/machinery/door/airlock,/turf/open/floor/plasteel,/area/ruin/unpowered) -"y" = (/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/unpowered) -"z" = (/obj/structure/tank_dispenser/oxygen,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/unpowered) -"A" = (/obj/structure/table/reinforced,/obj/item/clothing/head/ushanka,/turf/open/floor/plasteel{dir = 4; icon_state = "darkredfull"},/area/ruin/unpowered) -"B" = (/obj/structure/table/reinforced,/obj/structure/reagent_dispensers/peppertank{pixel_y = 32},/turf/open/floor/plasteel,/area/ruin/unpowered) -"C" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/machinery/light{dir = 1},/obj/item/device/radio,/turf/open/floor/plasteel,/area/ruin/unpowered) -"D" = (/obj/machinery/vending/clothing,/turf/open/floor/plasteel,/area/ruin/unpowered) -"E" = (/obj/structure/rack,/obj/item/ammo_box/c9mm,/turf/open/floor/plasteel{icon_state = "vault"; dir = 8},/area/ruin/unpowered) -"F" = (/obj/machinery/door/airlock/glass,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/unpowered) -"G" = (/turf/open/floor/plasteel{dir = 4; icon_state = "darkredfull"},/area/ruin/unpowered) -"H" = (/obj/structure/bed,/obj/item/weapon/bedsheet/orange,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel,/area/ruin/unpowered) -"I" = (/obj/structure/rack,/obj/item/clothing/head/helmet/swat,/turf/open/floor/plasteel{icon_state = "vault"; dir = 8},/area/ruin/unpowered) -"J" = (/obj/structure/rack,/obj/item/weapon/crowbar/red,/obj/item/weapon/paper/crumpled,/turf/open/floor/plasteel{icon_state = "vault"; dir = 8},/area/ruin/unpowered) -"K" = (/obj/structure/chair/office/dark,/turf/open/floor/plasteel,/area/ruin/unpowered) -"L" = (/obj/structure/chair/comfy/beige{dir = 4},/turf/open/floor/plasteel,/area/ruin/unpowered) -"M" = (/obj/structure/bed,/obj/item/weapon/bedsheet/orange,/turf/open/floor/plasteel,/area/ruin/unpowered) -"N" = (/obj/structure/rack,/obj/item/weapon/grenade/chem_grenade/teargas,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/unpowered) -"O" = (/obj/structure/table/reinforced,/obj/item/weapon/paper/crumpled,/turf/open/floor/plasteel{dir = 4; icon_state = "darkredfull"},/area/ruin/unpowered) -"P" = (/obj/structure/table/reinforced,/obj/machinery/light,/obj/item/device/camera_bug,/turf/open/floor/plasteel,/area/ruin/unpowered) -"Q" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/open/floor/plasteel,/area/ruin/unpowered) -"R" = (/obj/structure/table/reinforced,/obj/item/weapon/pen/blue,/turf/open/floor/plasteel,/area/ruin/unpowered) -"S" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka{pixel_x = -4; pixel_y = 4},/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka/badminka{pixel_x = 3},/turf/open/floor/plasteel,/area/ruin/unpowered) -"T" = (/obj/structure/rack,/obj/item/weapon/storage/belt/military,/obj/machinery/light,/turf/open/floor/plasteel{icon_state = "vault"; dir = 8},/area/ruin/unpowered) -"U" = (/obj/structure/rack,/obj/item/clothing/head/helmet/riot,/turf/open/floor/plasteel{icon_state = "vault"; dir = 8},/area/ruin/unpowered) -"V" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/snacks/breadslice/meat,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel,/area/ruin/unpowered) +"c" = (/obj/structure/grille,/turf/open/floor/plating,/area/ruin/turretedoutpost) +"d" = (/turf/closed/wall/r_wall,/area/ruin/turretedoutpost) +"e" = (/obj/structure/table/reinforced,/obj/item/weapon/stock_parts/cell/hyper,/turf/open/floor/plasteel,/area/ruin/turretedoutpost) +"f" = (/obj/structure/frame/computer,/turf/open/floor/plasteel,/area/ruin/turretedoutpost) +"g" = (/turf/open/floor/plasteel,/area/ruin/turretedoutpost) +"h" = (/obj/machinery/light{dir = 1},/turf/open/floor/plasteel,/area/ruin/turretedoutpost) +"i" = (/obj/machinery/door/airlock/external,/turf/open/floor/plating,/area/ruin/turretedoutpost) +"j" = (/obj/machinery/light{dir = 1},/turf/open/floor/plating,/area/ruin/turretedoutpost) +"k" = (/turf/open/floor/plating,/area/ruin/turretedoutpost) +"l" = (/turf/open/floor/plating/airless,/area/ruin/turretedoutpost) +"m" = (/obj/structure/table/reinforced,/obj/item/weapon/folder,/obj/item/device/radio,/turf/open/floor/plasteel,/area/ruin/turretedoutpost) +"n" = (/obj/structure/chair/office/dark{dir = 8},/turf/open/floor/plasteel,/area/ruin/turretedoutpost) +"o" = (/obj/machinery/porta_turret,/turf/open/floor/plating/airless,/area/ruin/turretedoutpost) +"p" = (/obj/structure/filingcabinet,/turf/open/floor/plasteel,/area/ruin/turretedoutpost) +"q" = (/obj/machinery/light,/turf/open/floor/plasteel,/area/ruin/turretedoutpost) +"r" = (/obj/machinery/power/apc{dir = 0;name = "Worn-out APC";pixel_y = -24},/turf/open/floor/plasteel,/area/ruin/turretedoutpost) +"s" = (/obj/structure/rack,/turf/open/floor/plasteel{icon_state = "vault";dir = 8},/area/ruin/turretedoutpost) +"t" = (/obj/item/weapon/rack_parts,/turf/open/floor/plasteel{icon_state = "vault";dir = 8},/area/ruin/turretedoutpost) +"u" = (/obj/item/weapon/rack_parts,/obj/machinery/light{dir = 1},/turf/open/floor/plasteel{icon_state = "vault";dir = 8},/area/ruin/turretedoutpost) +"v" = (/obj/structure/rack,/obj/item/device/firing_pin,/turf/open/floor/plasteel{icon_state = "vault";dir = 8},/area/ruin/turretedoutpost) +"w" = (/obj/machinery/door/airlock/glass,/turf/open/floor/plasteel,/area/ruin/turretedoutpost) +"x" = (/obj/machinery/door/airlock,/turf/open/floor/plasteel,/area/ruin/turretedoutpost) +"y" = (/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/turretedoutpost) +"z" = (/obj/structure/tank_dispenser/oxygen,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/turretedoutpost) +"A" = (/obj/structure/table/reinforced,/obj/item/clothing/head/ushanka,/turf/open/floor/plasteel{dir = 4;icon_state = "darkredfull"},/area/ruin/turretedoutpost) +"B" = (/obj/structure/table/reinforced,/obj/structure/reagent_dispensers/peppertank{pixel_y = 32},/turf/open/floor/plasteel,/area/ruin/turretedoutpost) +"C" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/machinery/light{dir = 1},/obj/item/device/radio,/turf/open/floor/plasteel,/area/ruin/turretedoutpost) +"D" = (/obj/machinery/vending/clothing,/turf/open/floor/plasteel,/area/ruin/turretedoutpost) +"E" = (/obj/structure/rack,/obj/item/ammo_box/c9mm,/turf/open/floor/plasteel{icon_state = "vault";dir = 8},/area/ruin/turretedoutpost) +"F" = (/obj/machinery/door/airlock/glass,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/turretedoutpost) +"G" = (/turf/open/floor/plasteel{dir = 4;icon_state = "darkredfull"},/area/ruin/turretedoutpost) +"H" = (/obj/structure/bed,/obj/item/weapon/bedsheet/orange,/obj/machinery/light{dir = 4;icon_state = "tube1"},/turf/open/floor/plasteel,/area/ruin/turretedoutpost) +"I" = (/obj/structure/rack,/obj/item/clothing/head/helmet/swat,/turf/open/floor/plasteel{icon_state = "vault";dir = 8},/area/ruin/turretedoutpost) +"J" = (/obj/structure/rack,/obj/item/weapon/crowbar/red,/obj/item/weapon/paper/crumpled,/turf/open/floor/plasteel{icon_state = "vault";dir = 8},/area/ruin/turretedoutpost) +"K" = (/obj/structure/chair/office/dark,/turf/open/floor/plasteel,/area/ruin/turretedoutpost) +"L" = (/obj/structure/chair/comfy/beige{dir = 4},/turf/open/floor/plasteel,/area/ruin/turretedoutpost) +"M" = (/obj/structure/bed,/obj/item/weapon/bedsheet/orange,/turf/open/floor/plasteel,/area/ruin/turretedoutpost) +"N" = (/obj/structure/rack,/obj/item/weapon/grenade/chem_grenade/teargas,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/turretedoutpost) +"O" = (/obj/structure/table/reinforced,/obj/item/weapon/paper/crumpled,/turf/open/floor/plasteel{dir = 4;icon_state = "darkredfull"},/area/ruin/turretedoutpost) +"P" = (/obj/structure/table/reinforced,/obj/machinery/light,/obj/item/device/camera_bug,/turf/open/floor/plasteel,/area/ruin/turretedoutpost) +"Q" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/open/floor/plasteel,/area/ruin/turretedoutpost) +"R" = (/obj/structure/table/reinforced,/obj/item/weapon/pen/blue,/turf/open/floor/plasteel,/area/ruin/turretedoutpost) +"S" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka{pixel_x = -4;pixel_y = 4},/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka/badminka{pixel_x = 3},/turf/open/floor/plasteel,/area/ruin/turretedoutpost) +"T" = (/obj/structure/rack,/obj/item/weapon/storage/belt/military,/obj/machinery/light,/turf/open/floor/plasteel{icon_state = "vault";dir = 8},/area/ruin/turretedoutpost) +"U" = (/obj/structure/rack,/obj/item/clothing/head/helmet/riot,/turf/open/floor/plasteel{icon_state = "vault";dir = 8},/area/ruin/turretedoutpost) +"V" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/snacks/breadslice/meat,/obj/machinery/light{icon_state = "tube1";dir = 8},/turf/open/floor/plasteel,/area/ruin/turretedoutpost) (1,1,1) = {" aaaaaaaaaaaaaaaaaabbab @@ -55,7 +55,7 @@ aaaaabbbbbcddddddddddd aaaaabaaaacdefffghijki aaalllllllcdmnggggikki aaloddddddcdpqgggrdddd -aalddstuvdddddwdxddllc +aalddstuvdddddwdxddkkc aaldtyyyyzdABCgdgDdddc aaldsysEyyFGgggdgggHdc bbldIysJyyFGgKgdLggMdc diff --git a/_maps/RandomRuins/SpaceRuins/vaporwave.dmm b/_maps/RandomRuins/SpaceRuins/vaporwave.dmm new file mode 100644 index 0000000000..09649f6e18 --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/vaporwave.dmm @@ -0,0 +1,58 @@ +"a" = (/turf/open/space,/area/space) +"b" = (/obj/structure/lattice,/turf/open/space,/area/space) +"c" = (/obj/structure/lattice,/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) +"d" = (/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) +"e" = (/obj/structure/lattice,/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"f" = (/turf/closed/wall,/area/ruin/powered/aesthetic) +"g" = (/turf/closed/wall/rust,/area/ruin/powered/aesthetic) +"h" = (/obj/effect/overlay/palmtree_r,/turf/open/floor/holofloor/beach,/area/ruin/powered/aesthetic) +"i" = (/obj/structure/piano,/obj/structure/window{icon_state = "rwindow"; dir = 8},/turf/open/floor/plasteel/vaporwave,/area/ruin/powered/aesthetic) +"j" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/vaporwave,/area/ruin/powered/aesthetic) +"k" = (/turf/open/floor/plasteel/vaporwave,/area/ruin/powered/aesthetic) +"l" = (/obj/structure/chair/comfy/black{dir = 4},/turf/open/floor/plasteel/vaporwave,/area/ruin/powered/aesthetic) +"m" = (/obj/structure/table/reinforced,/obj/item/device/taperecorder,/turf/open/floor/plasteel/vaporwave,/area/ruin/powered/aesthetic) +"n" = (/obj/structure/chair/comfy/black{dir = 8},/turf/open/floor/plasteel/vaporwave,/area/ruin/powered/aesthetic) +"o" = (/obj/structure/window{icon_state = "rwindow"; dir = 4},/turf/open/floor/plasteel/vaporwave,/area/ruin/powered/aesthetic) +"p" = (/obj/effect/overlay/palmtree_l,/turf/open/floor/holofloor/beach,/area/ruin/powered/aesthetic) +"q" = (/turf/open/floor/holofloor/beach,/area/ruin/powered/aesthetic) +"r" = (/obj/structure/window{icon_state = "rwindow"; dir = 8},/turf/open/floor/plasteel/vaporwave,/area/ruin/powered/aesthetic) +"s" = (/obj/structure/table/reinforced,/obj/item/clothing/glasses/sunglasses/big{name = "aesthetic sunglasses"},/turf/open/floor/plasteel/vaporwave,/area/ruin/powered/aesthetic) +"t" = (/obj/item/device/instrument/eguitar,/turf/open/floor/holofloor/beach,/area/ruin/powered/aesthetic) +"u" = (/turf/open/floor/holofloor/beach/coast_t,/area/ruin/powered/aesthetic) +"v" = (/obj/item/weapon/statuebust,/turf/open/floor/plasteel/vaporwave,/area/ruin/powered/aesthetic) +"w" = (/mob/living/simple_animal/butterfly,/turf/open/floor/plasteel/vaporwave,/area/ruin/powered/aesthetic) +"x" = (/obj/structure/closet/crate/bin,/obj/item/device/tape/random,/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) +"y" = (/turf/open/floor/holofloor/beach/coast_b,/area/ruin/powered/aesthetic) +"z" = (/obj/structure/fans/tiny,/obj/machinery/door/airlock/hatch,/turf/open/floor/pod/dark,/area/ruin/powered/aesthetic) +"A" = (/obj/effect/decal/sandeffect,/turf/open/floor/plating/astplate,/area/ruin/unpowered/no_grav) +"B" = (/turf/open/floor/plating/astplate,/area/ruin/unpowered/no_grav) +"C" = (/obj/structure/statue/sandstone/venus{desc = "Ugh, this is merely an ugly amateurish replica of the other statue! The letters RIPGOAT are scribbled onto the base."; dir = 8},/turf/open/floor/plating/astplate,/area/ruin/unpowered/no_grav) +"D" = (/turf/open/floor/plasteel/airless/asteroid{tag = "icon-recharge_floor_asteroid"; icon_state = "recharge_floor_asteroid"},/area/ruin/unpowered/no_grav) +"E" = (/turf/open/floor/plasteel/airless/asteroid,/area/ruin/unpowered/no_grav) +"F" = (/obj/structure/statue/sandstone/venus{dir = 4},/turf/open/floor/plating/astplate,/area/ruin/unpowered/no_grav) +"G" = (/turf/open/floor/plating/astplate/warning,/area/ruin/unpowered/no_grav) +"H" = (/obj/effect/overlay/palmtree_l,/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) +"I" = (/turf/open/space,/obj/effect/decal/sandeffect,/turf/open/floor/plasteel/airless/asteroid{tag = "icon-platingsandeffect"; icon_state = "platingsandeffect"},/area/ruin/unpowered/no_grav) +"J" = (/turf/open/floor/plasteel/airless/asteroid{tag = "icon-stairs-l"; icon_state = "stairs-l"},/area/ruin/unpowered/no_grav) +"K" = (/turf/open/floor/plasteel/airless/asteroid{tag = "icon-stairs-m"; icon_state = "stairs-m"},/area/ruin/unpowered/no_grav) +"L" = (/turf/open/floor/plasteel/airless/asteroid{tag = "icon-stairs-r"; icon_state = "stairs-r"},/area/ruin/unpowered/no_grav) +"M" = (/obj/effect/overlay/palmtree_r,/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) +"N" = (/obj/effect/decal/sandeffect,/turf/open/floor/plasteel/airless/asteroid,/area/ruin/unpowered/no_grav) + +(1,1,1) = {" +aaaaaaaaaaaabaaaaaa +aaaaaabaaaaabaaaaaa +aaaaaccdddddcddaaaa +aaadddeddcccedddaaa +aaddffgfffggfgfdaaa +adddfhijklmnopfddaa +bccegqrkklsnotgecbb +addcghrkkkkkopfcdda +aaddgurvkkkwougxdda +abcefyrkkkkkoygecda +aaddgffffzfgfggddda +aaddABBCDEDFGBAddaa +aaadddHIJKLIMddddaa +aaaadddANEEAdddaaaa +aaaaaadddNNAdaaaaaa +"} diff --git a/_maps/RandomZLevels/Academy.dmm b/_maps/RandomZLevels/Academy.dmm index 7f7d501f41..7df0895e72 100644 --- a/_maps/RandomZLevels/Academy.dmm +++ b/_maps/RandomZLevels/Academy.dmm @@ -235,7 +235,7 @@ /turf/open/floor/carpet, /area/awaymission/academy/headmaster) "aJ" = ( -/obj/structure/cult/tome, +/obj/structure/destructible/cult/tome, /obj/item/weapon/dice/d20/fate, /turf/open/floor/wood, /area/awaymission/academy/headmaster) @@ -502,9 +502,7 @@ /turf/closed/wall, /area/awaymission/academy/classrooms) "bF" = ( -/turf/closed/wall/shuttle{ - icon_state = "swallc2" - }, +/turf/closed/wall/mineral/titanium, /area/awaymission/academy/classrooms) "bG" = ( /turf/closed/wall/shuttle{ @@ -575,7 +573,7 @@ /turf/open/floor/plasteel/black, /area/awaymission/academy/headmaster) "bQ" = ( -/obj/effect/decal/cleanable/cobweb2, +/obj/effect/decal/cleanable/cobweb/cobweb2, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -854,7 +852,7 @@ /turf/closed/wall, /area/awaymission/academy/headmaster) "cI" = ( -/obj/structure/divine/trap/damage, +/obj/structure/trap/damage, /turf/open/floor/carpet, /area/awaymission/academy/headmaster) "cJ" = ( @@ -2265,14 +2263,14 @@ info = "Grade: A+ Educator's Notes: Excellent form."; name = "Summoning Midterm Exam" }, -/obj/item/weapon/gun/projectile/shotgun/automatic/combat, +/obj/item/weapon/gun/ballistic/shotgun/automatic/combat, /turf/open/floor/plasteel/vault{ dir = 5 }, /area/awaymission/academy/classrooms) "gI" = ( /obj/structure/table, -/obj/item/weapon/gun/projectile/revolver/russian, +/obj/item/weapon/gun/ballistic/revolver/russian, /obj/item/weapon/paper{ info = "Grade: B- Educator's Notes: Keep applying yourself, you're showing improvement."; name = "Summoning Midterm Exam" @@ -2799,7 +2797,7 @@ /area/awaymission/academy/academyaft) "hU" = ( /obj/structure/closet, -/obj/item/clothing/under/blackskirt, +/obj/item/clothing/under/skirt/black, /obj/item/clothing/glasses/regular, /turf/open/floor/plasteel, /area/awaymission/academy/academyaft) @@ -2922,7 +2920,7 @@ }, /area/awaymission/academy/academyaft) "in" = ( -/obj/effect/decal/cleanable/cobweb2, +/obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/plasteel/cafeteria{ dir = 2 }, @@ -3115,7 +3113,7 @@ /turf/open/floor/wood, /area/awaymission/academy/academyaft) "iP" = ( -/obj/effect/decal/cleanable/cobweb2, +/obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/engine, /area/awaymission/academy/academyaft) "iQ" = ( @@ -3431,7 +3429,7 @@ }, /area/awaymission/academy/academyaft) "jw" = ( -/obj/structure/cult/pylon, +/obj/structure/destructible/cult/pylon, /turf/open/floor/plasteel/yellow/side{ dir = 10 }, @@ -3440,7 +3438,7 @@ /turf/open/floor/plasteel/yellow/side, /area/awaymission/academy/academyaft) "jy" = ( -/obj/structure/cult/pylon, +/obj/structure/destructible/cult/pylon, /turf/open/floor/plasteel/yellow/side{ dir = 6 }, @@ -3883,11 +3881,11 @@ d2 = 4; icon_state = "2-4" }, -/obj/structure/divine/trap/chill, +/obj/structure/trap/chill, /turf/open/floor/plating, /area/awaymission/academy/academyaft) "kN" = ( -/obj/structure/divine/trap/fire, +/obj/structure/trap/fire, /turf/open/floor/engine, /area/awaymission/academy/academyaft) "kO" = ( @@ -3942,13 +3940,13 @@ /turf/open/floor/engine/cult, /area/awaymission/academy/academycellar) "kZ" = ( -/obj/effect/decal/cleanable/cobweb2, +/obj/effect/decal/cleanable/cobweb/cobweb2, /obj/effect/decal/cleanable/blood/old, /obj/effect/decal/remains/human, /turf/open/floor/engine/cult, /area/awaymission/academy/academycellar) "la" = ( -/obj/structure/divine/trap/damage, +/obj/structure/trap/damage, /turf/open/floor/engine/cult, /area/awaymission/academy/academycellar) "lb" = ( @@ -3963,11 +3961,11 @@ /turf/open/floor/mineral/uranium, /area/awaymission/academy/academycellar) "le" = ( -/obj/effect/spider/stickyweb, +/obj/structure/spider/stickyweb, /turf/open/floor/engine/cult, /area/awaymission/academy/academycellar) "lf" = ( -/obj/effect/decal/cleanable/cobweb2, +/obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/engine/cult, /area/awaymission/academy/academycellar) "lg" = ( @@ -11609,9 +11607,9 @@ aa aa bs bF -bW -bW -cs +bF +bF +bF cA cA cP @@ -11738,7 +11736,7 @@ aa aa aa bs -bG +bF bX bZ bZ @@ -11868,7 +11866,7 @@ aa aa aP bs -bG +bF bY bZ bZ @@ -11998,7 +11996,7 @@ aa aP aP bs -bG +bF bZ bZ bZ @@ -12128,7 +12126,7 @@ aP aP aa bs -bG +bF bZ bX bZ @@ -12258,7 +12256,7 @@ ab aP aP bs -bG +bF ca bZ bZ @@ -12388,7 +12386,7 @@ aP aa aa bs -bG +bF bZ bZ bZ @@ -12518,10 +12516,10 @@ aP aa aa bs -bH -bW -bW -cs +bF +bF +bF +bF cC cC cR diff --git a/_maps/RandomZLevels/Cabin.dmm b/_maps/RandomZLevels/Cabin.dmm index 2aa4616c62..f9e40b73fc 100644 --- a/_maps/RandomZLevels/Cabin.dmm +++ b/_maps/RandomZLevels/Cabin.dmm @@ -310,7 +310,7 @@ /area/awaymission/cabin) "aZ" = ( /obj/structure/guncase/shotgun, -/obj/item/weapon/gun/projectile/shotgun/riot, +/obj/item/weapon/gun/ballistic/shotgun/riot, /turf/open/floor/carpet, /area/awaymission/cabin) "ba" = ( diff --git a/_maps/RandomZLevels/caves.dmm b/_maps/RandomZLevels/caves.dmm index 8e6daec754..992ed6dbbf 100644 --- a/_maps/RandomZLevels/caves.dmm +++ b/_maps/RandomZLevels/caves.dmm @@ -92,7 +92,7 @@ name = "\improper BMP Asteroid Level 4" }) "an" = ( -/obj/structure/cult/pylon, +/obj/structure/destructible/cult/pylon, /turf/open/floor/plating/asteroid/basalt/lava{ initial_gas_mix = "n2=23;o2=14" }, @@ -108,7 +108,7 @@ name = "\improper BMP Asteroid Level 4" }) "ap" = ( -/obj/structure/cult/pylon, +/obj/structure/destructible/cult/pylon, /turf/open/floor/engine/cult{ baseturf = /turf/open/floor/plating/lava/smooth; initial_gas_mix = "n2=23;o2=14" @@ -151,7 +151,7 @@ name = "\improper BMP Asteroid Level 4" }) "au" = ( -/obj/structure/cult/talisman, +/obj/structure/destructible/cult/talisman, /obj/effect/decal/remains/human, /obj/item/stack/sheet/runed_metal{ amount = 25 @@ -167,7 +167,7 @@ name = "\improper BMP Asteroid Level 4" }) "av" = ( -/obj/structure/divine/trap/stun{ +/obj/structure/trap/stun{ desc = "A rune inscribed in the floor, the air feeling electrified around it."; name = "shock rune" }, @@ -199,7 +199,7 @@ name = "\improper BMP Asteroid Level 4" }) "ay" = ( -/obj/structure/cult/tome, +/obj/structure/destructible/cult/tome, /obj/item/weapon/tome, /obj/item/stack/sheet/runed_metal{ amount = 25 @@ -260,7 +260,7 @@ name = "\improper BMP Asteroid Level 4" }) "aE" = ( -/obj/structure/cult/tome, +/obj/structure/destructible/cult/tome, /obj/item/stack/sheet/runed_metal{ amount = 25 }, @@ -474,7 +474,7 @@ name = "\improper BMP Asteroid Level 3" }) "aY" = ( -/obj/structure/divine/trap/fire{ +/obj/structure/trap/fire{ desc = "An old rune inscribed on the floor, giving off an intense amount of heat."; name = "flame rune" }, @@ -485,7 +485,7 @@ name = "\improper BMP Asteroid Level 4" }) "aZ" = ( -/obj/structure/divine/trap/fire{ +/obj/structure/trap/fire{ desc = "An old rune inscribed on the floor, giving off an intense amount of heat."; name = "flame rune" }, @@ -497,7 +497,7 @@ name = "\improper BMP Asteroid Level 4" }) "ba" = ( -/obj/structure/cult/talisman, +/obj/structure/destructible/cult/talisman, /obj/item/weapon/plasma_fist_scroll, /turf/open/floor/engine/cult{ baseturf = /turf/open/floor/plating/lava/smooth; @@ -515,7 +515,7 @@ name = "\improper BMP Asteroid Level 3" }) "bc" = ( -/obj/effect/spider/stickyweb, +/obj/structure/spider/stickyweb, /turf/open/floor/plating/asteroid/basalt{ initial_gas_mix = "n2=23;o2=14" }, @@ -672,7 +672,7 @@ name = "\improper BMP Asteroid Level 4" }) "bs" = ( -/obj/structure/divine/trap/stun{ +/obj/structure/trap/stun{ desc = "A rune inscribed in the floor, the air feeling electrified around it."; name = "shock rune" }, @@ -683,7 +683,7 @@ name = "\improper BMP Asteroid Level 4" }) "bt" = ( -/obj/effect/spider/stickyweb, +/obj/structure/spider/stickyweb, /mob/living/simple_animal/hostile/poison/giant_spider/hunter, /turf/open/floor/plating/asteroid/basalt{ initial_gas_mix = "n2=23;o2=14" @@ -692,7 +692,7 @@ name = "\improper BMP Asteroid Level 3" }) "bu" = ( -/obj/effect/spider/cocoon, +/obj/structure/spider/cocoon, /turf/open/floor/plating/asteroid/basalt{ initial_gas_mix = "n2=23;o2=14" }, @@ -700,7 +700,7 @@ name = "\improper BMP Asteroid Level 3" }) "bv" = ( -/obj/structure/cult/pylon, +/obj/structure/destructible/cult/pylon, /turf/open/floor/plating/asteroid/basalt{ initial_gas_mix = "n2=23;o2=14" }, @@ -745,7 +745,7 @@ name = "\improper BMP Asteroid Level 4" }) "bA" = ( -/obj/structure/cult/tome, +/obj/structure/destructible/cult/tome, /obj/item/device/necromantic_stone, /obj/effect/decal/cleanable/blood, /turf/open/floor/engine/cult{ @@ -781,7 +781,7 @@ name = "\improper BMP Asteroid Level 3" }) "bE" = ( -/obj/structure/cult/pylon, +/obj/structure/destructible/cult/pylon, /obj/effect/decal/cleanable/blood, /turf/open/floor/engine/cult{ baseturf = /turf/open/floor/plating/lava/smooth; @@ -805,7 +805,7 @@ name = "\improper BMP Asteroid Level 3" }) "bG" = ( -/obj/item/weapon/gun/projectile/automatic/pistol/deagle/gold, +/obj/item/weapon/gun/ballistic/automatic/pistol/deagle/gold, /turf/open/floor/plating/asteroid/basalt/lava{ initial_gas_mix = "n2=23;o2=14" }, @@ -1404,7 +1404,7 @@ }, /area/awaymission/research) "cY" = ( -/obj/effect/glowshroom/single, +/obj/structure/glowshroom/single, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/basalt; initial_gas_mix = "n2=23;o2=14" @@ -1540,7 +1540,7 @@ name = "\improper BMP Asteroid Level 2" }) "dm" = ( -/obj/effect/spider/stickyweb, +/obj/structure/spider/stickyweb, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/basalt }, @@ -1580,7 +1580,7 @@ icon_state = "bulb1"; dir = 4 }, -/obj/effect/spider/stickyweb, +/obj/structure/spider/stickyweb, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/basalt }, @@ -1588,7 +1588,7 @@ name = "\improper BMP Asteroid Level 2" }) "dr" = ( -/obj/effect/spider/stickyweb, +/obj/structure/spider/stickyweb, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/basalt }, @@ -1685,7 +1685,7 @@ /area/awaymission/northblock) "dD" = ( /obj/structure/table/wood, -/obj/effect/decal/cleanable/cobweb2, +/obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/wood{ baseturf = /turf/open/floor/plating/asteroid/basalt }, @@ -1735,7 +1735,7 @@ /area/awaymission/northblock) "dJ" = ( /obj/item/stack/rods, -/obj/effect/spider/stickyweb, +/obj/structure/spider/stickyweb, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/basalt }, @@ -1800,7 +1800,7 @@ }, /area/awaymission/northblock) "dT" = ( -/obj/effect/spider/stickyweb, +/obj/structure/spider/stickyweb, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/basalt }, @@ -1832,7 +1832,7 @@ "dY" = ( /obj/structure/bed, /obj/item/weapon/bedsheet, -/obj/effect/decal/cleanable/cobweb2, +/obj/effect/decal/cleanable/cobweb/cobweb2, /obj/effect/landmark{ name = "awaystart" }, @@ -2122,7 +2122,7 @@ /obj/structure/table, /obj/item/weapon/gun/energy/kinetic_accelerator, /obj/item/weapon/gun/energy/kinetic_accelerator, -/obj/effect/decal/cleanable/cobweb2, +/obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/basalt }, @@ -2417,7 +2417,7 @@ icon_state = "bulb1"; dir = 1 }, -/obj/effect/spider/stickyweb, +/obj/structure/spider/stickyweb, /mob/living/simple_animal/hostile/poison/giant_spider/hunter, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/basalt @@ -2434,7 +2434,7 @@ /obj/structure/table, /obj/item/weapon/storage/firstaid/fire, /obj/item/weapon/storage/firstaid/fire, -/obj/effect/spider/stickyweb, +/obj/structure/spider/stickyweb, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/basalt }, @@ -2448,7 +2448,7 @@ }, /area/awaymission/BMPship) "fv" = ( -/obj/effect/glowshroom/single, +/obj/structure/glowshroom/single, /turf/open/floor/plating/asteroid/basalt{ initial_gas_mix = "n2=23;o2=14" }, @@ -2493,7 +2493,7 @@ }, /area/awaymission/BMPship) "fB" = ( -/obj/effect/spider/stickyweb, +/obj/structure/spider/stickyweb, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/basalt }, @@ -2505,7 +2505,7 @@ }, /area/awaymission/BMPship) "fD" = ( -/obj/effect/spider/stickyweb, +/obj/structure/spider/stickyweb, /obj/machinery/sleeper{ icon_state = "sleeper-open"; dir = 8 diff --git a/_maps/RandomZLevels/centcomAway.dmm b/_maps/RandomZLevels/centcomAway.dmm index b40e2d8618..cd8daceac1 100644 --- a/_maps/RandomZLevels/centcomAway.dmm +++ b/_maps/RandomZLevels/centcomAway.dmm @@ -408,10 +408,7 @@ /turf/open/floor/plasteel/vault{ dir = 5 }, -/turf/closed/wall/shuttle{ - icon_state = "swall_f6"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium/interior, /area/awaymission/centcomAway/hangar) "bo" = ( /obj/structure/shuttle/engine/propulsion{ @@ -492,10 +489,7 @@ /turf/open/floor/plating, /area/awaymission/centcomAway/maint) "bB" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall3"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/awaymission/centcomAway/hangar) "bC" = ( /obj/structure/window/reinforced, @@ -591,24 +585,18 @@ /area/awaymission/centcomAway/hangar) "bS" = ( /turf/open/floor/plating, -/turf/closed/wall/shuttle{ - icon_state = "swall_f6"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium/interior, /area/awaymission/centcomAway/hangar) "bT" = ( -/turf/open/floor/plasteel/shuttle, -/turf/closed/wall/shuttle{ - icon_state = "swall_f9"; - dir = 2 - }, +/turf/open/floor/mineral/titanium/blue, +/turf/closed/wall/mineral/titanium/interior, /area/awaymission/centcomAway/hangar) "bU" = ( /obj/structure/closet/emcloset, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/awaymission/centcomAway/hangar) "bV" = ( -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/awaymission/centcomAway/hangar) "bW" = ( /obj/structure/table, @@ -617,7 +605,7 @@ pixel_y = 4 }, /obj/item/weapon/storage/firstaid/toxin, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/awaymission/centcomAway/hangar) "bX" = ( /obj/structure/table, @@ -626,7 +614,7 @@ pixel_x = -2; pixel_y = 4 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/awaymission/centcomAway/hangar) "bY" = ( /obj/structure/table, @@ -638,7 +626,7 @@ pixel_x = -2; pixel_y = 4 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/awaymission/centcomAway/hangar) "bZ" = ( /turf/open/floor/plasteel/shuttle, @@ -728,13 +716,10 @@ /turf/open/floor/plating/airless, /area/awaymission/centcomAway/maint) "cm" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall1"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/awaymission/centcomAway/hangar) "cn" = ( -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/awaymission/centcomAway/hangar) "co" = ( /obj/item/weapon/pen, @@ -847,41 +832,41 @@ "cJ" = ( /obj/structure/table/reinforced, /obj/item/weapon/paper_bin, -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/awaymission/centcomAway/hangar) "cK" = ( /obj/structure/table/reinforced, /obj/item/weapon/storage/fancy/donut_box, -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/awaymission/centcomAway/hangar) "cL" = ( /obj/structure/table/reinforced, /obj/item/weapon/pen, -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/awaymission/centcomAway/hangar) "cM" = ( /obj/structure/table/reinforced, -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/awaymission/centcomAway/hangar) "cN" = ( /obj/machinery/sleeper{ icon_state = "sleeper-open"; dir = 8 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/awaymission/centcomAway/hangar) "cO" = ( /obj/machinery/sleep_console{ icon_state = "console"; dir = 8 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/awaymission/centcomAway/hangar) "cP" = ( /obj/structure/chair{ dir = 8 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/awaymission/centcomAway/hangar) "cQ" = ( /turf/closed/wall/shuttle{ @@ -901,32 +886,32 @@ /area/awaymission/centcomAway/cafe) "cT" = ( /obj/structure/table/reinforced, -/obj/item/clothing/tie/stethoscope, +/obj/item/clothing/neck/stethoscope, /turf/open/floor/plasteel/whitepurple/side{ dir = 1 }, /area/awaymission/centcomAway/general) "cU" = ( /obj/machinery/computer/secure_data, -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/awaymission/centcomAway/hangar) "cV" = ( /obj/structure/chair{ dir = 1 }, -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/awaymission/centcomAway/hangar) "cW" = ( /obj/structure/chair{ dir = 4 }, -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/awaymission/centcomAway/hangar) "cX" = ( /obj/structure/table/reinforced, /obj/item/weapon/clipboard, /obj/item/weapon/stamp, -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/awaymission/centcomAway/hangar) "cY" = ( /turf/open/floor/plasteel/yellow/side{ @@ -947,16 +932,16 @@ "da" = ( /obj/structure/table, /obj/item/device/assembly/flash/handheld, -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/awaymission/centcomAway/hangar) "db" = ( -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/awaymission/centcomAway/hangar) "dc" = ( /obj/structure/chair{ dir = 4 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/awaymission/centcomAway/hangar) "dd" = ( /obj/structure/reagent_dispensers/fueltank, @@ -997,7 +982,7 @@ "dl" = ( /obj/structure/table, /obj/item/weapon/storage/box/handcuffs, -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/awaymission/centcomAway/hangar) "dm" = ( /obj/machinery/door/window/northright{ @@ -1007,7 +992,7 @@ name = "Security Desk"; req_access_txt = "103" }, -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/awaymission/centcomAway/hangar) "dn" = ( /obj/structure/closet/crate, @@ -1076,7 +1061,7 @@ /area/awaymission/centcomAway/maint) "dz" = ( /obj/structure/bed, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/awaymission/centcomAway/hangar) "dA" = ( /obj/structure/grille, @@ -1123,7 +1108,7 @@ /area/awaymission/centcomAway/cafe) "dG" = ( /obj/structure/bed, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/awaymission/centcomAway/hangar) "dH" = ( /obj/structure/table, @@ -1151,7 +1136,7 @@ name = "Rest Room"; req_access_txt = "0" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/awaymission/centcomAway/hangar) "dM" = ( /obj/structure/closet/crate/large, @@ -1240,17 +1225,17 @@ "dZ" = ( /obj/structure/table, /obj/structure/bedsheetbin, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/awaymission/centcomAway/hangar) "ea" = ( /obj/structure/table, /obj/item/weapon/hand_labeler, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/awaymission/centcomAway/hangar) "eb" = ( /obj/structure/table, /obj/item/weapon/storage/box/donkpockets, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/awaymission/centcomAway/hangar) "ec" = ( /obj/structure/flora/ausbushes, @@ -1371,7 +1356,7 @@ name = "Cockpit"; req_access_txt = "109" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/awaymission/centcomAway/hangar) "eu" = ( /turf/closed/wall/r_wall, @@ -1397,18 +1382,18 @@ "ez" = ( /obj/structure/table, /obj/item/device/radio/off, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/awaymission/centcomAway/hangar) "eA" = ( /obj/structure/chair{ dir = 4; name = "Prosecution" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/awaymission/centcomAway/hangar) "eB" = ( /obj/structure/filingcabinet, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/awaymission/centcomAway/hangar) "eC" = ( /turf/open/floor/plasteel/green/side{ @@ -1495,7 +1480,7 @@ /area/awaymission/centcomAway/general) "eR" = ( /obj/structure/chair, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/awaymission/centcomAway/hangar) "eS" = ( /obj/machinery/telecomms/relay/preset/ruskie, @@ -1544,26 +1529,26 @@ "eZ" = ( /obj/structure/table, /obj/item/weapon/storage/lockbox, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/awaymission/centcomAway/hangar) "fa" = ( /obj/structure/table, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/awaymission/centcomAway/hangar) "fb" = ( /obj/structure/frame/computer, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/awaymission/centcomAway/hangar) "fc" = ( /obj/structure/table, /obj/item/weapon/clipboard, /obj/item/weapon/pen, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/awaymission/centcomAway/hangar) "fd" = ( /obj/structure/table, /obj/item/weapon/paper_bin, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/awaymission/centcomAway/hangar) "fe" = ( /turf/open/floor/plasteel/green/side{ @@ -2153,17 +2138,11 @@ /obj/structure/shuttle/engine/propulsion/burst{ dir = 4 }, -/turf/closed/wall/shuttle{ - icon_state = "swall_f6"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium/interior, /area/awaymission/centcomAway/hangar) "gT" = ( /turf/open/floor/plasteel/black, -/turf/closed/wall/shuttle{ - icon_state = "swall_f10"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium/interior, /area/awaymission/centcomAway/hangar) "gU" = ( /obj/structure/table, @@ -2212,7 +2191,7 @@ /area/awaymission/centcomAway/courtroom) "hc" = ( /obj/machinery/door/unpowered/shuttle, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/awaymission/centcomAway/hangar) "hd" = ( /obj/structure/chair{ @@ -2221,7 +2200,7 @@ /obj/item/device/radio/intercom{ pixel_y = 25 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/awaymission/centcomAway/hangar) "he" = ( /obj/structure/grille, @@ -2633,7 +2612,7 @@ /area/awaymission/centcomAway/general) "is" = ( /obj/structure/bookcase, -/obj/effect/decal/cleanable/cobweb2, +/obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/plasteel/grimy, /area/awaymission/centcomAway/general) "it" = ( @@ -2920,7 +2899,7 @@ }, /area/awaymission/centcomAway/general) "jk" = ( -/obj/effect/decal/cleanable/cobweb2, +/obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/plasteel/grimy, /area/awaymission/centcomAway/general) "jl" = ( @@ -4181,7 +4160,7 @@ /obj/structure/safe/floor, /obj/item/clothing/under/rank/centcom_officer, /obj/item/clothing/suit/det_suit, -/obj/item/weapon/gun/projectile/revolver/mateba, +/obj/item/weapon/gun/ballistic/revolver/mateba, /turf/open/floor/plasteel/grimy, /area/awaymission/centcomAway/general) "mR" = ( @@ -8707,7 +8686,7 @@ bn bB bB bB -cw +bn bd be be @@ -8732,7 +8711,7 @@ gD gD gS hc -hv +gS gD aV ii @@ -8837,8 +8816,8 @@ bo bC bR bR -ca -cw +bS +bn bd bR bd @@ -8860,19 +8839,19 @@ gm gD gD gD -bH +bB hd -bH +bB gD aV ij -ik +gm ij -ik +gm ij -ik +gm ij -ik +gm aV bR gD @@ -8968,7 +8947,7 @@ bC bR bR bR -bH +bB bd bd bd @@ -8990,19 +8969,19 @@ gm gD gD gD -bH +bB dc -bH +bB gD aV -ik -ik -ik -ik -ik -ik -ik -ik +gm +gm +gm +gm +gm +gm +gm +gm aV gD gD @@ -9098,17 +9077,17 @@ bC bS cm cx -cI -bB -bB -bB -bD +cm bB bB bB bB bB -eq +bB +bB +bB +bB +bS bR bR bd @@ -9122,14 +9101,14 @@ gD gD gT he -hw +gT gD aV il gD gD -ik -ik +gm +gm gD gD gD @@ -9223,8 +9202,8 @@ aa aa aV bd -br -bD +bn +bB bT cn cn @@ -9232,14 +9211,14 @@ cJ cU da dl -bH +bB dz dz dz dz dz -er -eq +bB +bS bR bR bd @@ -9354,7 +9333,7 @@ aa aV bd bd -bE +bB bU cn bV @@ -9362,17 +9341,17 @@ cK cV db db -bH +bB bV bV bV bV bV -er -bI bB bB -cw +bB +bB +bn bd bd bd @@ -9492,13 +9471,13 @@ cL cW db db -bH +bB dz dG bV dz dz -bH +bB ez eb eZ @@ -9511,7 +9490,7 @@ gD gD gS hc -hv +gS gD gD aV @@ -9614,7 +9593,7 @@ aa aV be bd -bG +bB bW cn bV @@ -9622,13 +9601,13 @@ cM cX cM dm -cI +cm +bB +bB +dL +bB bB cm -dL -dR -bB -es cP cn fa @@ -9639,9 +9618,9 @@ bd gm gD gD -bH +bB hd -bH +bB gD gD aV @@ -9744,7 +9723,7 @@ aa aV bd bd -bH +bB bX cn bV @@ -9769,9 +9748,9 @@ bd gm gD gD -bH +bB dc -bH +bB gD gD mT @@ -9874,7 +9853,7 @@ aa aV bd bd -bE +bB bY cn bV @@ -9888,7 +9867,7 @@ cP bV cn dZ -bG +bB eA cn fc @@ -9901,7 +9880,7 @@ gD gD gT he -hw +gT gD gD aV @@ -10018,7 +9997,7 @@ dc bV cn ea -bH +bB eB ez fd @@ -10134,7 +10113,7 @@ aa aV bd bd -bG +bB bU cn bV @@ -10148,11 +10127,11 @@ bV bV cn eb -er -bD bB bB -cy +bB +bB +bn bd bd bd @@ -10264,8 +10243,8 @@ aa aV bd bn -bI -bZ +bB +bT cn cn cP @@ -10278,8 +10257,8 @@ cP bV cn bU -er -cy +bB +bn bd bd bd @@ -10395,20 +10374,20 @@ aV bd bo bC -ca +bS cm cx -cQ -bB cm -bF -du -dA -du -bF -dR bB -cy +bB +bF +bB +dA +bB +bF +bB +bB +bn bd bd bd @@ -10528,7 +10507,7 @@ bC bR bR bR -bH +bB bd dd bd @@ -10658,7 +10637,7 @@ bC bR bR bS -cy +bn bd bd bd @@ -10783,11 +10762,11 @@ aa aa aV bd -br +bn bB bB bB -cy +bn bd bd bd @@ -13161,7 +13140,7 @@ gz eD eD eD -jl +fY fx eD eD @@ -13543,7 +13522,7 @@ eD ho fv hI -jl +fY eu eu eu diff --git a/_maps/RandomZLevels/challenge.dmm b/_maps/RandomZLevels/challenge.dmm index 79a8b400cf..2376fd21fb 100644 --- a/_maps/RandomZLevels/challenge.dmm +++ b/_maps/RandomZLevels/challenge.dmm @@ -720,7 +720,7 @@ }, /area/awaymission/challenge/end) "bQ" = ( -/obj/item/weapon/gun/projectile/revolver/russian, +/obj/item/weapon/gun/ballistic/revolver/russian, /turf/open/floor/plasteel/white/side{ dir = 2 }, @@ -858,7 +858,7 @@ /area/awaymission/challenge/end) "ck" = ( /obj/structure/rack, -/obj/item/weapon/gun/projectile/revolver/mateba, +/obj/item/weapon/gun/ballistic/revolver/mateba, /turf/open/floor/wood, /area/awaymission/challenge/end) "cl" = ( @@ -927,7 +927,7 @@ /area/awaymission/challenge/end) "cw" = ( /obj/structure/rack, -/obj/item/weapon/gun/projectile/automatic/l6_saw, +/obj/item/weapon/gun/ballistic/automatic/l6_saw, /turf/open/floor/wood, /area/awaymission/challenge/end) "cx" = ( diff --git a/_maps/RandomZLevels/moonoutpost19.dmm b/_maps/RandomZLevels/moonoutpost19.dmm index 6bdfdaf1e8..d0d41cc665 100644 --- a/_maps/RandomZLevels/moonoutpost19.dmm +++ b/_maps/RandomZLevels/moonoutpost19.dmm @@ -82,7 +82,7 @@ /obj/structure/alien/weeds, /obj/structure/alien/weeds{ desc = "A large mottled egg."; - health = 100; + obj_integrity = 100; icon_state = "egg_hatched"; name = "egg" }, @@ -105,7 +105,7 @@ }, /obj/structure/alien/weeds{ desc = "A large mottled egg."; - health = 100; + obj_integrity = 100; icon_state = "egg_hatched"; name = "egg" }, @@ -177,7 +177,7 @@ }, /obj/structure/alien/weeds{ desc = "A large mottled egg."; - health = 100; + obj_integrity = 100; icon_state = "egg_hatched"; name = "egg" }, @@ -249,12 +249,8 @@ /obj/structure/alien/weeds, /obj/structure/bed/nest, /obj/effect/decal/cleanable/blood/gibs, -/obj/item/clothing/mask/facehugger{ - icon_state = "facehugger_impregnated"; - item_state = "facehugger_impregnated"; - stat = 2 - }, -/obj/item/weapon/gun/projectile/automatic/pistol, +/obj/item/clothing/mask/facehugger/impregnated, +/obj/item/weapon/gun/ballistic/automatic/pistol, /turf/open/floor/plating/asteroid{ initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; heat_capacity = 1e+006 @@ -462,11 +458,7 @@ }, /obj/structure/bed/nest, /obj/effect/decal/cleanable/blood/gibs, -/obj/item/clothing/mask/facehugger{ - icon_state = "facehugger_impregnated"; - item_state = "facehugger_impregnated"; - stat = 2 - }, +/obj/item/clothing/mask/facehugger/impregnated, /obj/item/clothing/under/rank/security, /obj/item/clothing/suit/armor/vest, /obj/item/weapon/melee/baton/loaded, @@ -536,7 +528,7 @@ }, /obj/structure/alien/weeds{ desc = "A large mottled egg."; - health = 100; + obj_integrity = 100; icon_state = "egg_hatched"; name = "egg" }, @@ -558,7 +550,7 @@ /obj/structure/alien/weeds, /obj/structure/alien/weeds{ desc = "A large mottled egg."; - health = 100; + obj_integrity = 100; icon_state = "egg_hatched"; name = "egg" }, @@ -891,11 +883,7 @@ /obj/structure/bed/nest, /obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood, -/obj/item/clothing/mask/facehugger{ - icon_state = "facehugger_impregnated"; - item_state = "facehugger_impregnated"; - stat = 2 - }, +/obj/item/clothing/mask/facehugger/impregnated, /obj/item/clothing/under/syndicate, /obj/item/clothing/glasses/night, /turf/open/floor/plating/asteroid{ @@ -1970,7 +1958,7 @@ "cG" = ( /obj/structure/grille{ density = 0; - destroyed = 1; + broken = 1; icon_state = "brokengrille" }, /obj/item/stack/rods, @@ -2911,11 +2899,7 @@ /obj/item/clothing/suit/space/syndicate/orange, /obj/item/clothing/mask/gas, /obj/item/clothing/head/helmet/space/syndicate/orange, -/obj/item/clothing/mask/facehugger{ - icon_state = "facehugger_impregnated"; - item_state = "facehugger_impregnated"; - stat = 2 - }, +/obj/item/clothing/mask/facehugger/impregnated, /turf/open/floor/plating/asteroid{ initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; heat_capacity = 1e+006 @@ -3117,15 +3101,13 @@ /obj/machinery/door/poddoor/preopen{ desc = "A heavy duty blast door that opens mechanically. This one has been applied with an acid-proof coating."; id = "Awaybiohazard"; - name = "Acid-Proof biohazard containment door"; - unacidable = 1 + name = "Acid-Proof biohazard containment door" }, /obj/machinery/door/poddoor{ desc = "A heavy duty blast door that opens mechanically. This one has been applied with an acid-proof coating."; id = "Awaybiohazard"; layer = 2.9; - name = "Acid-Proof biohazard containment door"; - unacidable = 1 + name = "Acid-Proof biohazard containment door" }, /obj/structure/window/reinforced/fulltile, /turf/open/floor/plating{ @@ -3287,7 +3269,7 @@ /obj/structure/alien/weeds, /obj/structure/alien/weeds{ desc = "A large mottled egg."; - health = 100; + obj_integrity = 100; icon_state = "egg_hatched"; name = "egg" }, @@ -3306,8 +3288,7 @@ id = "awayxenobio"; name = "Acid-Proof mounted igniter"; pixel_x = 0; - pixel_y = 25; - unacidable = 1 + pixel_y = 25 }, /obj/structure/alien/weeds{ icon_state = "weeds1" @@ -3330,11 +3311,7 @@ /obj/structure/alien/weeds, /obj/structure/bed/nest, /obj/effect/decal/cleanable/blood/gibs, -/obj/item/clothing/mask/facehugger{ - icon_state = "facehugger_impregnated"; - item_state = "facehugger_impregnated"; - stat = 2 - }, +/obj/item/clothing/mask/facehugger/impregnated, /turf/open/floor/engine, /area/awaycontent/a2{ has_gravity = 1; @@ -3438,8 +3415,7 @@ /obj/machinery/door/poddoor/preopen{ desc = "A heavy duty blast door that opens mechanically. This one has been applied with an acid-proof coating."; id = "Awaylab"; - name = "Acid-Proof containment chamber blast door"; - unacidable = 1 + name = "Acid-Proof containment chamber blast door" }, /obj/structure/cable, /obj/structure/grille, @@ -3520,7 +3496,7 @@ /obj/structure/alien/weeds, /obj/structure/alien/weeds{ desc = "A large mottled egg."; - health = 100; + obj_integrity = 100; icon_state = "egg_hatched"; name = "egg" }, @@ -3629,7 +3605,7 @@ }, /obj/structure/alien/weeds{ desc = "A large mottled egg."; - health = 100; + obj_integrity = 100; icon_state = "egg_hatched"; name = "egg" }, @@ -3954,11 +3930,7 @@ /obj/structure/alien/weeds{ icon_state = "weeds1" }, -/obj/item/clothing/mask/facehugger{ - icon_state = "facehugger_impregnated"; - item_state = "facehugger_impregnated"; - stat = 2 - }, +/obj/item/clothing/mask/facehugger/impregnated, /obj/item/xenos_claw, /turf/open/floor/plasteel/floorgrime{ dir = 8; @@ -4021,8 +3993,7 @@ /obj/machinery/door/poddoor/preopen{ desc = "A heavy duty blast door that opens mechanically. This one has been applied with an acid-proof coating."; id = "Awaylab"; - name = "Acid-Proof containment chamber blast door"; - unacidable = 1 + name = "Acid-Proof containment chamber blast door" }, /obj/structure/grille, /obj/structure/window/reinforced/fulltile, @@ -4039,7 +4010,7 @@ }, /obj/structure/alien/weeds{ desc = "A large mottled egg."; - health = 100; + obj_integrity = 100; icon_state = "egg_hatched"; name = "egg" }, @@ -4053,11 +4024,7 @@ icon_state = "weeds1" }, /obj/structure/bed/nest, -/obj/item/clothing/mask/facehugger{ - icon_state = "facehugger_impregnated"; - item_state = "facehugger_impregnated"; - stat = 2 - }, +/obj/item/clothing/mask/facehugger/impregnated, /turf/open/floor/engine, /area/awaycontent/a2{ has_gravity = 1; @@ -4280,8 +4247,7 @@ /obj/machinery/atmospherics/pipe/simple/general/visible{ desc = "A one meter section of pipe. This one has been applied with an acid-proof coating."; dir = 4; - name = "Acid-Proof Pipe"; - unacidable = 1 + name = "Acid-Proof Pipe" }, /obj/item/stack/rods, /obj/item/stack/cable_coil{ @@ -4302,14 +4268,12 @@ /obj/machinery/door/poddoor/preopen{ desc = "A heavy duty blast door that opens mechanically. This one has been applied with an acid-proof coating."; id = "Awaylab"; - name = "Acid-Proof containment chamber blast door"; - unacidable = 1 + name = "Acid-Proof containment chamber blast door" }, /obj/machinery/atmospherics/pipe/simple/general/visible{ desc = "A one meter section of pipe. This one has been applied with an acid-proof coating."; dir = 4; - name = "Acid-Proof Pipe"; - unacidable = 1 + name = "Acid-Proof Pipe" }, /obj/item/stack/rods, /obj/item/stack/cable_coil{ @@ -4333,8 +4297,7 @@ /obj/machinery/atmospherics/pipe/simple/general/visible{ desc = "A one meter section of pipe. This one has been applied with an acid-proof coating."; dir = 4; - name = "Acid-Proof Pipe"; - unacidable = 1 + name = "Acid-Proof Pipe" }, /obj/structure/alien/weeds{ icon_state = "weeds1" @@ -4348,8 +4311,7 @@ /obj/machinery/atmospherics/pipe/simple/general/visible{ desc = "A one meter section of pipe. This one has been applied with an acid-proof coating."; dir = 4; - name = "Acid-Proof Pipe"; - unacidable = 1 + name = "Acid-Proof Pipe" }, /obj/structure/alien/weeds{ icon_state = "weeds1" @@ -4364,8 +4326,7 @@ /obj/machinery/atmospherics/pipe/simple/general/visible{ desc = "A one meter section of pipe. This one has been applied with an acid-proof coating."; dir = 4; - name = "Acid-Proof Pipe"; - unacidable = 1 + name = "Acid-Proof Pipe" }, /obj/structure/alien/weeds{ icon_state = "weeds1" @@ -4380,8 +4341,7 @@ /obj/machinery/atmospherics/pipe/simple/general/visible{ desc = "A one meter section of pipe. This one has been applied with an acid-proof coating."; dir = 4; - name = "Acid-Proof Pipe"; - unacidable = 1 + name = "Acid-Proof Pipe" }, /obj/structure/alien/weeds, /obj/structure/alien/resin/wall, @@ -4396,8 +4356,7 @@ dir = 8; icon_state = "on"; name = "Acid-Proof Air Injector"; - on = 1; - unacidable = 1 + on = 1 }, /obj/structure/alien/weeds, /turf/open/floor/engine, @@ -4667,8 +4626,7 @@ /obj/machinery/door/poddoor/preopen{ desc = "A heavy duty blast door that opens mechanically. This one has been applied with an acid-proof coating."; id = "Awaylab"; - name = "Acid-Proof containment chamber blast door"; - unacidable = 1 + name = "Acid-Proof containment chamber blast door" }, /obj/item/stack/cable_coil/cut{ amount = 1; @@ -4708,11 +4666,7 @@ "ge" = ( /obj/structure/alien/weeds, /obj/structure/bed/nest, -/obj/item/clothing/mask/facehugger{ - icon_state = "facehugger_impregnated"; - item_state = "facehugger_impregnated"; - stat = 2 - }, +/obj/item/clothing/mask/facehugger/impregnated, /turf/open/floor/engine, /area/awaycontent/a2{ has_gravity = 1; @@ -4889,8 +4843,7 @@ /obj/structure/disposalpipe/trunk{ desc = "An underfloor disposal pipe. This one has been applied with an acid-proof coating."; dir = 4; - name = "Acid-Proof disposal pipe"; - unacidable = 1 + name = "Acid-Proof disposal pipe" }, /obj/structure/alien/weeds, /turf/open/floor/plasteel/warning{ @@ -4909,14 +4862,12 @@ /obj/structure/disposalpipe/segment{ desc = "An underfloor disposal pipe. This one has been applied with an acid-proof coating."; dir = 4; - name = "Acid-Proof disposal pipe"; - unacidable = 1 + name = "Acid-Proof disposal pipe" }, /obj/machinery/door/poddoor/preopen{ desc = "A heavy duty blast door that opens mechanically. This one has been applied with an acid-proof coating."; id = "Awaylab"; - name = "Acid-Proof containment chamber blast door"; - unacidable = 1 + name = "Acid-Proof containment chamber blast door" }, /obj/structure/cable, /obj/structure/grille, @@ -4932,8 +4883,7 @@ /obj/structure/disposalpipe/segment{ desc = "An underfloor disposal pipe. This one has been applied with an acid-proof coating."; dir = 4; - name = "Acid-Proof disposal pipe"; - unacidable = 1 + name = "Acid-Proof disposal pipe" }, /obj/structure/alien/weeds, /obj/structure/alien/resin/wall, @@ -4947,8 +4897,7 @@ desc = "An underfloor disposal pipe. This one has been applied with an acid-proof coating."; dir = 2; icon_state = "pipe-c"; - name = "Acid-Proof disposal pipe"; - unacidable = 1 + name = "Acid-Proof disposal pipe" }, /obj/structure/alien/weeds{ icon_state = "weeds2" @@ -5062,7 +5011,7 @@ "gE" = ( /obj/structure/grille{ density = 0; - destroyed = 1; + broken = 1; icon_state = "brokengrille" }, /obj/item/stack/rods, @@ -5195,8 +5144,7 @@ /obj/machinery/door/poddoor/preopen{ desc = "A heavy duty blast door that opens mechanically. This one has been applied with an acid-proof coating."; id = "Awaylab"; - name = "Acid-Proof containment chamber blast door"; - unacidable = 1 + name = "Acid-Proof containment chamber blast door" }, /obj/structure/cable{ icon_state = "0-2"; @@ -5214,8 +5162,7 @@ "gM" = ( /obj/structure/disposalpipe/segment{ desc = "An underfloor disposal pipe. This one has been applied with an acid-proof coating."; - name = "Acid-Proof disposal pipe"; - unacidable = 1 + name = "Acid-Proof disposal pipe" }, /obj/structure/alien/weeds{ icon_state = "weeds1" @@ -5422,14 +5369,12 @@ /obj/structure/disposaloutlet{ desc = "An outlet for the pneumatic disposal system. This one has been applied with an acid-proof coating."; dir = 1; - name = "Acid-Proof disposal outlet"; - unacidable = 1 + name = "Acid-Proof disposal outlet" }, /obj/structure/disposalpipe/trunk{ desc = "An underfloor disposal pipe. This one has been applied with an acid-proof coating."; dir = 1; - name = "Acid-Proof disposal pipe"; - unacidable = 1 + name = "Acid-Proof disposal pipe" }, /obj/structure/alien/weeds{ icon_state = "weeds1" @@ -5465,8 +5410,7 @@ id = "awayxenobio"; name = "Acid-Proof mounted igniter"; pixel_x = 0; - pixel_y = -25; - unacidable = 1 + pixel_y = -25 }, /obj/structure/alien/weeds{ icon_state = "weeds2" @@ -5671,7 +5615,7 @@ name = "research director's locker"; req_access_txt = "201" }, -/obj/item/weapon/storage/backpack/satchel_tox, +/obj/item/weapon/storage/backpack/satchel/tox, /obj/item/clothing/gloves/color/latex, /turf/open/floor/plasteel/cafeteria{ dir = 5 @@ -5768,7 +5712,7 @@ "hx" = ( /obj/structure/grille{ density = 0; - destroyed = 1; + broken = 1; icon_state = "brokengrille" }, /obj/item/stack/rods, @@ -5810,7 +5754,7 @@ pixel_x = -5; pixel_y = -2 }, -/obj/item/robot_parts/l_arm, +/obj/item/bodypart/l_arm/robot, /turf/open/floor/plasteel/white{ heat_capacity = 1e+006 }, @@ -5993,8 +5937,7 @@ desc = "A heavy duty blast door that opens mechanically. This one has been applied with an acid-proof coating."; id = "Awaybiohazard"; layer = 2.9; - name = "Acid-Proof biohazard containment door"; - unacidable = 1 + name = "Acid-Proof biohazard containment door" }, /turf/open/floor/plasteel/delivery{ heat_capacity = 1e+006; @@ -6319,7 +6262,7 @@ desc = "Oh no, seven years of bad luck!"; icon_state = "mirror_broke"; pixel_x = 28; - shattered = 1 + broken = 1 }, /turf/open/floor/plasteel/freezer{ heat_capacity = 1e+006 @@ -8081,7 +8024,7 @@ /obj/item/stack/rods, /obj/structure/grille{ density = 0; - destroyed = 1; + broken = 1; icon_state = "brokengrille" }, /obj/item/stack/rods, @@ -8099,7 +8042,7 @@ "kQ" = ( /obj/structure/grille{ density = 0; - destroyed = 1; + broken = 1; icon_state = "brokengrille" }, /obj/item/stack/rods, @@ -8269,19 +8212,13 @@ initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; heat_capacity = 1e+006 }, -/turf/closed/wall/shuttle{ - icon_state = "swall_f6"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium/interior, /area/awaycontent/a1{ has_gravity = 1; name = "MO19 Arrivals" }) "ld" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall12"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/awaycontent/a1{ has_gravity = 1; name = "MO19 Arrivals" @@ -8779,7 +8716,7 @@ /obj/effect/decal/remains/human{ desc = "They look like human remains. The skeleton is sitting upright with its legs tucked in and hands still holding onto its arms." }, -/obj/item/weapon/gun/projectile/shotgun/sc_pump, +/obj/item/weapon/gun/ballistic/shotgun/sc_pump, /turf/open/floor/plasteel/showroomfloor{ heat_capacity = 1e+006; temperature = 273.15 @@ -8789,11 +8726,8 @@ name = "MO19 Arrivals" }) "lV" = ( -/turf/open/floor/plasteel/shuttle, -/turf/closed/wall/shuttle{ - icon_state = "swall_f9"; - dir = 2 - }, +/turf/open/floor/mineral/titanium/blue, +/turf/closed/wall/mineral/titanium/interior, /area/awaycontent/a1{ has_gravity = 1; name = "MO19 Arrivals" @@ -8801,7 +8735,7 @@ "lW" = ( /obj/structure/table, /obj/item/weapon/storage/lockbox, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/awaycontent/a1{ has_gravity = 1; name = "MO19 Arrivals" @@ -8809,7 +8743,7 @@ "lX" = ( /obj/structure/table, /obj/item/device/radio/off, -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/awaycontent/a1{ has_gravity = 1; name = "MO19 Arrivals" @@ -8828,7 +8762,7 @@ pixel_x = -32; pixel_y = 0 }, -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/awaycontent/a1{ has_gravity = 1; name = "MO19 Arrivals" @@ -8840,13 +8774,13 @@ /obj/machinery/light/small{ dir = 1 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/awaycontent/a1{ has_gravity = 1; name = "MO19 Arrivals" }) "mb" = ( -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/awaycontent/a1{ has_gravity = 1; name = "MO19 Arrivals" @@ -8855,7 +8789,7 @@ /obj/structure/chair{ dir = 8 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/awaycontent/a1{ has_gravity = 1; name = "MO19 Arrivals" @@ -8868,14 +8802,14 @@ /obj/machinery/light/small{ dir = 1 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/awaycontent/a1{ has_gravity = 1; name = "MO19 Arrivals" }) "me" = ( /obj/structure/closet/emcloset, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/awaycontent/a1{ has_gravity = 1; name = "MO19 Arrivals" @@ -8947,7 +8881,7 @@ }) "ml" = ( /obj/structure/table, -/obj/item/weapon/storage/backpack/satchel/withwallet, +/obj/item/weapon/storage/backpack/satchel/leather/withwallet, /turf/open/floor/plasteel/black, /area/awaycontent/a1{ has_gravity = 1; @@ -9013,7 +8947,7 @@ "mp" = ( /obj/structure/table, /obj/item/weapon/storage/box/donkpockets, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/awaycontent/a1{ has_gravity = 1; name = "MO19 Arrivals" @@ -9025,13 +8959,13 @@ /obj/machinery/light/small{ dir = 4 }, -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/awaycontent/a1{ has_gravity = 1; name = "MO19 Arrivals" }) "mr" = ( -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/awaycontent/a1{ has_gravity = 1; name = "MO19 Arrivals" @@ -9040,7 +8974,7 @@ /obj/effect/landmark{ name = "awaystart" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/awaycontent/a1{ has_gravity = 1; name = "MO19 Arrivals" @@ -9052,7 +8986,7 @@ /obj/effect/landmark{ name = "awaystart" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/awaycontent/a1{ has_gravity = 1; name = "MO19 Arrivals" @@ -9064,7 +8998,7 @@ /obj/structure/window/reinforced{ dir = 1 }, -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/awaycontent/a1{ has_gravity = 1; name = "MO19 Arrivals" @@ -9206,16 +9140,16 @@ }) "mG" = ( /obj/machinery/computer/shuttle, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/awaycontent/a1{ has_gravity = 1; name = "MO19 Arrivals" }) "mH" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Shuttle Cockpit" }, -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/awaycontent/a1{ has_gravity = 1; name = "MO19 Arrivals" @@ -9224,7 +9158,7 @@ /obj/effect/landmark{ name = "awaystart" }, -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/awaycontent/a1{ has_gravity = 1; name = "MO19 Arrivals" @@ -9239,16 +9173,16 @@ /obj/effect/landmark{ name = "awaystart" }, -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/awaycontent/a1{ has_gravity = 1; name = "MO19 Arrivals" }) "mK" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Shuttle Airlock" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/awaycontent/a1{ has_gravity = 1; name = "MO19 Arrivals" @@ -9410,7 +9344,7 @@ /obj/structure/table, /obj/item/weapon/clipboard, /obj/item/weapon/pen, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/awaycontent/a1{ has_gravity = 1; name = "MO19 Arrivals" @@ -9420,7 +9354,7 @@ /obj/machinery/light/small{ dir = 4 }, -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/awaycontent/a1{ has_gravity = 1; name = "MO19 Arrivals" @@ -9439,7 +9373,7 @@ dir = 4 }, /obj/structure/window/reinforced, -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/awaycontent/a1{ has_gravity = 1; name = "MO19 Arrivals" @@ -9522,7 +9456,7 @@ }) "nf" = ( /obj/structure/filingcabinet, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/awaycontent/a1{ has_gravity = 1; name = "MO19 Arrivals" @@ -9532,7 +9466,7 @@ dir = 8 }, /obj/machinery/light/small, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/awaycontent/a1{ has_gravity = 1; name = "MO19 Arrivals" @@ -9543,7 +9477,7 @@ pixel_y = -30 }, /obj/machinery/light/small, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/awaycontent/a1{ has_gravity = 1; name = "MO19 Arrivals" @@ -9677,7 +9611,7 @@ "ns" = ( /obj/structure/grille{ density = 0; - destroyed = 1; + broken = 1; icon_state = "brokengrille" }, /obj/item/stack/rods, @@ -9746,7 +9680,7 @@ }, /obj/structure/table, /obj/structure/bedsheetbin, -/obj/item/clothing/tie/black, +/obj/item/clothing/neck/tie/black, /obj/item/clothing/under/lawyer/blacksuit, /turf/open/floor/plasteel/barber{ initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; @@ -9835,7 +9769,7 @@ "nD" = ( /obj/structure/grille{ density = 0; - destroyed = 1; + broken = 1; icon_state = "brokengrille" }, /obj/item/stack/rods, @@ -9942,7 +9876,7 @@ name = "MO19 Arrivals" }) "nJ" = ( -/obj/effect/decal/cleanable/cobweb2, +/obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/plating{ broken = 1; heat_capacity = 1e+006; @@ -10248,7 +10182,7 @@ }) "of" = ( /obj/item/weapon/shard, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/awaycontent/a3{ always_unpowered = 1; ambientsounds = list('sound/ambience/ambimine.ogg'); @@ -10263,7 +10197,7 @@ /obj/item/weapon/shard{ icon_state = "medium" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/awaycontent/a3{ always_unpowered = 1; ambientsounds = list('sound/ambience/ambimine.ogg'); @@ -10278,7 +10212,7 @@ /obj/item/weapon/shard{ icon_state = "small" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/awaycontent/a3{ always_unpowered = 1; ambientsounds = list('sound/ambience/ambimine.ogg'); @@ -10290,7 +10224,7 @@ poweralm = 0 }) "oi" = ( -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/awaycontent/a3{ always_unpowered = 1; ambientsounds = list('sound/ambience/ambimine.ogg'); @@ -10304,10 +10238,10 @@ "oj" = ( /obj/structure/grille{ density = 0; - destroyed = 1; + broken = 1; icon_state = "brokengrille" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/awaycontent/a3{ always_unpowered = 1; ambientsounds = list('sound/ambience/ambimine.ogg'); @@ -10320,7 +10254,7 @@ }) "ok" = ( /obj/item/stack/rods, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/awaycontent/a3{ always_unpowered = 1; ambientsounds = list('sound/ambience/ambimine.ogg'); @@ -10333,7 +10267,7 @@ }) "ol" = ( /obj/item/stack/cable_coil, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/awaycontent/a3{ always_unpowered = 1; ambientsounds = list('sound/ambience/ambimine.ogg'); @@ -10348,7 +10282,7 @@ /obj/item/stack/cable_coil{ amount = 5 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/awaycontent/a3{ always_unpowered = 1; ambientsounds = list('sound/ambience/ambimine.ogg'); @@ -10365,7 +10299,7 @@ icon_state = "coil_red2"; item_state = "coil_red2" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/awaycontent/a3{ always_unpowered = 1; ambientsounds = list('sound/ambience/ambimine.ogg'); @@ -10382,7 +10316,7 @@ icon_state = "coil_red1"; item_state = "coil_red1" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/awaycontent/a3{ always_unpowered = 1; ambientsounds = list('sound/ambience/ambimine.ogg'); @@ -10542,7 +10476,7 @@ poweralm = 0 }) "oy" = ( -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/awaycontent/a3{ always_unpowered = 1; ambientsounds = list('sound/ambience/ambimine.ogg'); @@ -10797,7 +10731,7 @@ poweralm = 0 }) "oN" = ( -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/awaycontent/a3{ always_unpowered = 1; ambientsounds = list('sound/ambience/ambimine.ogg'); @@ -36013,7 +35947,7 @@ lc lA lA lA -nd +lc ba ba ba @@ -36270,8 +36204,8 @@ lV mp mG mV -ne -nd +lV +lc ba ba ba @@ -37036,13 +36970,13 @@ jS eI ba ba -ly -lY -lC +ld +ld +ld mH -mX -lY -nn +ld +ld +ld ba ba ba @@ -37550,13 +37484,13 @@ fQ eJ hI ba -lz +ld ma mc mr mc ng -lz +ld ba ba ba @@ -38064,13 +37998,13 @@ jU ku io ba -lB +ld mc mt mJ mt mc -lB +ld ba ba ba @@ -38321,13 +38255,13 @@ jU kv io ba -lz +ld md ms mI ms nh -lz +ld ba ba ba @@ -38835,14 +38769,14 @@ jV kw hI lc -lC +ld me mb mr mb me -mX -nd +ld +lc ba ba ba @@ -39348,15 +39282,15 @@ jr jW kv io -le +lc lE mf -lC +ld mK -mX +ld lE mf -nv +lc ba ba ba diff --git a/_maps/RandomZLevels/research.dmm b/_maps/RandomZLevels/research.dmm index be9f8f1848..b3a85a0887 100644 --- a/_maps/RandomZLevels/research.dmm +++ b/_maps/RandomZLevels/research.dmm @@ -20,7 +20,7 @@ /area/awaymission/research/exterior) "ag" = ( /turf/open/floor/plating/asteroid/airless, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ dir = 8; icon_state = "diagonalWall3" }, @@ -45,15 +45,13 @@ /area/awaymission/research/interior/engineering) "ak" = ( /turf/open/floor/plating/asteroid/airless, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ dir = 1; icon_state = "diagonalWall3" }, /area/awaymission/research/interior/engineering) "al" = ( -/turf/closed/wall/shuttle{ - icon_state = "wall3" - }, +/turf/closed/wall/mineral/plastitanium, /area/awaymission/research/interior/engineering) "am" = ( /obj/structure/window/reinforced, @@ -241,7 +239,7 @@ /turf/open/floor/plasteel{ icon_state = "damaged4" }, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ icon_state = "diagonalWall3" }, /area/awaymission/research/interior/engineering) @@ -253,7 +251,7 @@ /turf/open/floor/plasteel{ icon_state = "damaged1" }, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ dir = 4; icon_state = "diagonalWall3" }, @@ -321,7 +319,7 @@ /turf/open/floor/plasteel{ icon_state = "damaged5" }, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ icon_state = "diagonalWall3" }, /area/awaymission/research/interior/engineering) @@ -341,7 +339,7 @@ /turf/open/floor/plasteel{ icon_state = "damaged3" }, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ dir = 4; icon_state = "diagonalWall3" }, @@ -1435,8 +1433,8 @@ /area/awaymission/research/interior/security) "dU" = ( /obj/structure/rack, -/obj/item/weapon/gun/projectile/automatic/wt550, -/obj/item/weapon/gun/projectile/automatic/wt550, +/obj/item/weapon/gun/ballistic/automatic/wt550, +/obj/item/weapon/gun/ballistic/automatic/wt550, /obj/item/ammo_box/magazine/wt550m9, /obj/item/ammo_box/magazine/wt550m9, /turf/open/floor/plasteel/red, @@ -1565,8 +1563,8 @@ /area/awaymission/research/interior/security) "ep" = ( /obj/structure/rack, -/obj/item/weapon/gun/projectile/automatic/pistol/m1911, -/obj/item/weapon/gun/projectile/automatic/pistol/m1911, +/obj/item/weapon/gun/ballistic/automatic/pistol/m1911, +/obj/item/weapon/gun/ballistic/automatic/pistol/m1911, /obj/item/ammo_box/magazine/m45, /obj/item/ammo_box/magazine/m45, /turf/open/floor/plasteel/red, @@ -3533,10 +3531,10 @@ "jp" = ( /obj/structure/barricade/wooden{ desc = "A wooden table hastely flipped over for cover."; - health = 55; + obj_integrity = 55; icon = 'icons/obj/smooth_structures/wood_table.dmi'; icon_state = "wood_table"; - maxhealth = 55; + max_integrity = 55; name = "flipped table" }, /turf/open/floor/plasteel/yellowsiding{ @@ -3650,10 +3648,10 @@ "jG" = ( /obj/structure/barricade/wooden{ desc = "A wooden table hastely flipped over for cover."; - health = 55; + obj_integrity = 55; icon = 'icons/obj/smooth_structures/wood_table.dmi'; icon_state = "wood_table"; - maxhealth = 55; + max_integrity = 55; name = "flipped table" }, /turf/open/floor/plasteel, @@ -3781,10 +3779,10 @@ "kb" = ( /obj/structure/barricade/wooden{ desc = "A wooden table hastely flipped over for cover."; - health = 55; + obj_integrity = 55; icon = 'icons/obj/smooth_structures/wood_table.dmi'; icon_state = "wood_table"; - maxhealth = 55; + max_integrity = 55; name = "flipped table" }, /turf/open/floor/plasteel/yellowsiding, @@ -3918,7 +3916,7 @@ /turf/open/floor/wood, /area/awaymission/research/interior/dorm) "kt" = ( -/obj/item/weapon/gun/projectile/automatic/pistol/m1911, +/obj/item/weapon/gun/ballistic/automatic/pistol/m1911, /turf/open/floor/plasteel, /area/awaymission/research/interior/dorm) "ku" = ( @@ -4559,10 +4557,7 @@ /turf/open/floor/plating/asteroid, /area/awaymission/research/exterior) "me" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall12"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/awaymission/research/exterior) "mf" = ( /turf/open/floor/plating/asteroid/airless, @@ -4571,11 +4566,7 @@ icon_state = "propulsion"; dir = 8 }, -/turf/closed/wall/shuttle{ - dir = 3; - icon_state = "swall_f10"; - layer = 2 - }, +/turf/closed/wall/mineral/titanium/interior, /area/awaymission/research/exterior) "mg" = ( /obj/structure/closet/emcloset, @@ -4654,7 +4645,7 @@ /turf/open/floor/plasteel/shuttle, /area/awaymission/research/exterior) "mt" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Escape Pod Airlock" }, /turf/open/floor/plasteel/shuttle, @@ -4685,10 +4676,7 @@ /area/awaymission/research/interior/escapepods) "my" = ( /turf/open/floor/plating/asteroid/airless, -/turf/closed/wall/shuttle{ - icon_state = "swall_f5"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium/interior, /area/awaymission/research/exterior) "mz" = ( /turf/open/floor/plating/asteroid/airless, @@ -4919,7 +4907,7 @@ /turf/open/floor/mineral/plasma, /area/space) "nd" = ( -/obj/structure/divine/healingfountain/anyone, +/obj/structure/healingfountain, /turf/open/floor/mineral/plasma, /area/space) "ne" = ( @@ -33351,7 +33339,7 @@ ad ad mf mt -mz +mf ae ae ae diff --git a/_maps/RandomZLevels/snowdin.dmm b/_maps/RandomZLevels/snowdin.dmm index 0ff2a5874e..91f9619b9f 100644 --- a/_maps/RandomZLevels/snowdin.dmm +++ b/_maps/RandomZLevels/snowdin.dmm @@ -129,7 +129,7 @@ }, /area/awaymission/snowdin/base) "au" = ( -/obj/item/weapon/gun/projectile/shotgun/boltaction, +/obj/item/weapon/gun/ballistic/shotgun/boltaction, /obj/item/ammo_box/a762, /obj/item/ammo_box/a762, /obj/structure/closet/secure_closet{ @@ -363,9 +363,9 @@ /area/awaymission/snowdin) "aY" = ( /obj/structure/guncase/shotgun, -/obj/item/weapon/gun/projectile/shotgun/automatic, -/obj/item/weapon/gun/projectile/shotgun/automatic, -/obj/item/weapon/gun/projectile/shotgun/automatic, +/obj/item/weapon/gun/ballistic/shotgun/automatic, +/obj/item/weapon/gun/ballistic/shotgun/automatic, +/obj/item/weapon/gun/ballistic/shotgun/automatic, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/snow }, @@ -1647,37 +1647,37 @@ }, /area/awaymission/snowdin/dungeon1) "ek" = ( -/obj/effect/spider/stickyweb, -/obj/effect/spider/stickyweb, +/obj/structure/spider/stickyweb, +/obj/structure/spider/stickyweb, /turf/open/floor/plating/asteroid/snow{ temperature = 140 }, /area/awaymission/snowdin/dungeon1) "el" = ( -/obj/effect/spider/stickyweb, +/obj/structure/spider/stickyweb, /obj/effect/spawner/lootdrop/snowdin/dungeonheavy, /turf/open/floor/plating/asteroid/snow{ temperature = 140 }, /area/awaymission/snowdin/dungeon1) "em" = ( -/obj/effect/spider/stickyweb, +/obj/structure/spider/stickyweb, /mob/living/simple_animal/hostile/poison/giant_spider/hunter/ice, /turf/closed/wall/mineral/snow, /area/awaymission/snowdin/dungeon1) "en" = ( -/obj/effect/spider/stickyweb, +/obj/structure/spider/stickyweb, /mob/living/simple_animal/hostile/poison/giant_spider/nurse/ice, /turf/open/floor/plating/asteroid/snow{ temperature = 140 }, /area/awaymission/snowdin/dungeon1) "eo" = ( -/obj/effect/spider/stickyweb, +/obj/structure/spider/stickyweb, /turf/open/floor/plating/ice/colder, /area/awaymission/snowdin/dungeon1) "ep" = ( -/obj/effect/spider/stickyweb, +/obj/structure/spider/stickyweb, /turf/open/floor/plating/asteroid/snow{ temperature = 140 }, @@ -1686,11 +1686,11 @@ /turf/closed/wall/mineral/snow, /area/awaymission/snowdin/dungeon1) "er" = ( -/obj/effect/spider/stickyweb, +/obj/structure/spider/stickyweb, /turf/closed/wall/mineral/snow, /area/awaymission/snowdin/dungeon1) "es" = ( -/obj/effect/spider/stickyweb, +/obj/structure/spider/stickyweb, /obj/structure/barricade/wooden, /turf/open/floor/plating/asteroid/snow{ temperature = 140 @@ -1712,7 +1712,7 @@ }, /area/awaymission/snowdin/dungeon1) "ew" = ( -/obj/effect/spider/stickyweb, +/obj/structure/spider/stickyweb, /mob/living/simple_animal/hostile/poison/giant_spider/hunter/ice, /turf/open/floor/plating/asteroid/snow{ temperature = 140 @@ -2423,7 +2423,7 @@ name = "Contraband Locker"; req_access_txt = "3" }, -/obj/item/weapon/gun/projectile/automatic/speargun, +/obj/item/weapon/gun/ballistic/automatic/speargun, /obj/item/weapon/twohanded/spear, /obj/item/weapon/twohanded/spear, /obj/item/weapon/twohanded/spear, @@ -2721,7 +2721,7 @@ }, /area/awaymission/snowdin/post) "hm" = ( -/obj/item/weapon/gun/projectile/shotgun/boltaction, +/obj/item/weapon/gun/ballistic/shotgun/boltaction, /obj/item/ammo_box/a762, /obj/item/ammo_box/a762, /obj/structure/closet/secure_closet{ @@ -3080,7 +3080,7 @@ }, /area/awaymission/snowdin/sekret) "ir" = ( -/obj/item/weapon/gun/projectile/shotgun/boltaction, +/obj/item/weapon/gun/ballistic/shotgun/boltaction, /obj/item/ammo_box/a762, /obj/item/ammo_box/a762, /obj/structure/closet/secure_closet{ @@ -3893,7 +3893,7 @@ /area/awaymission/snowdin/sekret) "ku" = ( /obj/structure/rack, -/obj/item/weapon/gun/projectile/automatic/speargun, +/obj/item/weapon/gun/ballistic/automatic/speargun, /obj/item/weapon/twohanded/spear, /obj/item/weapon/twohanded/spear, /turf/open/floor/plasteel/darkwarning{ @@ -3915,7 +3915,7 @@ /area/awaymission/snowdin/sekret) "kx" = ( /obj/structure/rack, -/obj/item/weapon/gun/projectile/automatic/l6_saw/unrestricted, +/obj/item/weapon/gun/ballistic/automatic/l6_saw/unrestricted, /obj/machinery/light/small{ dir = 4 }, @@ -3997,7 +3997,7 @@ }, /area/awaymission/snowdin/sekret) "kH" = ( -/obj/item/weapon/gun/projectile/shotgun/boltaction, +/obj/item/weapon/gun/ballistic/shotgun/boltaction, /obj/item/ammo_box/a762, /obj/item/ammo_box/a762, /obj/structure/closet/secure_closet{ @@ -4015,8 +4015,8 @@ /area/awaymission/snowdin/sekret) "kI" = ( /obj/structure/rack, -/obj/item/weapon/gun/projectile/automatic/c20r/unrestricted, -/obj/item/weapon/gun/projectile/automatic/c20r/unrestricted, +/obj/item/weapon/gun/ballistic/automatic/c20r/unrestricted, +/obj/item/weapon/gun/ballistic/automatic/c20r/unrestricted, /obj/machinery/light/small{ dir = 8 }, @@ -4041,7 +4041,7 @@ /area/awaymission/snowdin/sekret) "kL" = ( /obj/structure/rack, -/obj/item/weapon/gun/projectile/revolver, +/obj/item/weapon/gun/ballistic/revolver, /obj/machinery/light/small{ dir = 4 }, @@ -4089,8 +4089,8 @@ /area/awaymission/snowdin/sekret) "kS" = ( /obj/structure/rack, -/obj/item/weapon/gun/projectile/automatic/mini_uzi, -/obj/item/weapon/gun/projectile/automatic/mini_uzi, +/obj/item/weapon/gun/ballistic/automatic/mini_uzi, +/obj/item/weapon/gun/ballistic/automatic/mini_uzi, /turf/open/floor/plasteel/darkwarning{ tag = "icon-warndark (SOUTHWEST)"; dir = 10; @@ -4099,8 +4099,8 @@ /area/awaymission/snowdin/sekret) "kT" = ( /obj/structure/rack, -/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/unrestricted, -/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/unrestricted, +/obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog/unrestricted, +/obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog/unrestricted, /turf/open/floor/plasteel/darkwarning{ tag = "icon-warndark (SOUTHEAST)"; dir = 6; @@ -4467,7 +4467,7 @@ }, /area/awaymission/snowdin) "lN" = ( -/obj/item/weapon/gun/projectile/automatic/pistol, +/obj/item/weapon/gun/ballistic/automatic/pistol, /turf/open/floor/plasteel/shuttle/red{ baseturf = /turf/open/floor/plating/asteroid/snow; temperature = 180 @@ -4573,7 +4573,7 @@ /area/awaymission/snowdin/sekret) "ma" = ( /obj/structure/table/wood, -/obj/item/weapon/gun/projectile/automatic/c20r/toy, +/obj/item/weapon/gun/ballistic/automatic/c20r/toy, /turf/open/floor/wood{ baseturf = /turf/open/floor/plating/asteroid/snow }, @@ -5198,7 +5198,7 @@ /area/awaymission/snowdin/sekret) "nx" = ( /obj/structure/table/reinforced, -/obj/item/weapon/gun/projectile/automatic/pistol, +/obj/item/weapon/gun/ballistic/automatic/pistol, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/snow; wet = 0 @@ -5216,7 +5216,7 @@ /area/awaymission/snowdin/sekret) "nz" = ( /obj/structure/table/reinforced, -/obj/item/weapon/gun/projectile/shotgun/automatic/combat, +/obj/item/weapon/gun/ballistic/shotgun/automatic/combat, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/snow; wet = 0 diff --git a/_maps/RandomZLevels/spacebattle.dmm b/_maps/RandomZLevels/spacebattle.dmm index 93b2be2c66..1d097a115d 100644 --- a/_maps/RandomZLevels/spacebattle.dmm +++ b/_maps/RandomZLevels/spacebattle.dmm @@ -7,7 +7,7 @@ /area/space) "ac" = ( /turf/open/space, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ dir = 8; icon_state = "diagonalWall3" }, @@ -35,15 +35,13 @@ /area/awaymission/spacebattle/syndicate2) "ag" = ( /turf/open/space, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ dir = 1; icon_state = "diagonalWall3" }, /area/awaymission/spacebattle/syndicate2) "ah" = ( -/turf/closed/wall/shuttle{ - icon_state = "wall3" - }, +/turf/closed/wall/mineral/plastitanium, /area/awaymission/spacebattle/syndicate2) "ai" = ( /obj/structure/shuttle/engine/heater{ @@ -81,7 +79,7 @@ /area/awaymission/spacebattle/syndicate2) "ap" = ( /mob/living/simple_animal/hostile/syndicate/ranged{ - loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/weapon/shield/energy) + loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier,/obj/item/weapon/gun/ballistic/automatic/c20r,/obj/item/weapon/shield/energy) }, /turf/open/floor/plasteel/shuttle/red/syndicate, /area/awaymission/spacebattle/syndicate2) @@ -101,7 +99,7 @@ /area/awaymission/spacebattle/syndicate2) "at" = ( /obj/structure/table/reinforced, -/obj/item/weapon/gun/projectile/automatic/c20r, +/obj/item/weapon/gun/ballistic/automatic/c20r, /turf/open/floor/plasteel/shuttle/red/syndicate, /area/awaymission/spacebattle/syndicate2) "au" = ( @@ -112,7 +110,7 @@ /area/awaymission/spacebattle/syndicate2) "av" = ( /turf/open/space, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ dir = 8; icon_state = "diagonalWall3" }, @@ -140,20 +138,18 @@ /area/awaymission/spacebattle/syndicate3) "az" = ( /turf/open/space, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ dir = 1; icon_state = "diagonalWall3" }, /area/awaymission/spacebattle/syndicate3) "aA" = ( /obj/structure/table/reinforced, -/obj/item/weapon/gun/projectile/automatic/pistol, +/obj/item/weapon/gun/ballistic/automatic/pistol, /turf/open/floor/plasteel/shuttle/red/syndicate, /area/awaymission/spacebattle/syndicate2) "aB" = ( -/turf/closed/wall/shuttle{ - icon_state = "wall3" - }, +/turf/closed/wall/mineral/plastitanium, /area/awaymission/spacebattle/syndicate3) "aC" = ( /obj/structure/shuttle/engine/heater{ @@ -172,7 +168,7 @@ /area/awaymission/spacebattle/syndicate3) "aF" = ( /turf/open/space, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ icon_state = "diagonalWall3" }, /area/awaymission/spacebattle/syndicate2) @@ -185,7 +181,7 @@ /area/awaymission/spacebattle/syndicate2) "aH" = ( /turf/open/space, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ dir = 4; icon_state = "diagonalWall3" }, @@ -205,7 +201,7 @@ /area/awaymission/spacebattle/syndicate2) "aL" = ( /turf/open/floor/plasteel/shuttle/red/syndicate, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ dir = 8; icon_state = "diagonalWall3" }, @@ -216,14 +212,14 @@ /area/awaymission/spacebattle/syndicate2) "aN" = ( /turf/open/floor/plasteel/shuttle/red/syndicate, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ dir = 1; icon_state = "diagonalWall3" }, /area/awaymission/spacebattle/syndicate2) "aO" = ( /turf/open/space, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ dir = 8; icon_state = "diagonalWall3" }, @@ -251,7 +247,7 @@ /area/awaymission/spacebattle/syndicate1) "aS" = ( /turf/open/space, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ dir = 1; icon_state = "diagonalWall3" }, @@ -261,9 +257,7 @@ /turf/open/floor/plasteel/shuttle/red/syndicate, /area/awaymission/spacebattle/syndicate3) "aU" = ( -/turf/closed/wall/shuttle{ - icon_state = "wall3" - }, +/turf/closed/wall/mineral/plastitanium, /area/awaymission/spacebattle/syndicate1) "aV" = ( /obj/structure/shuttle/engine/heater{ @@ -393,7 +387,7 @@ /area/awaymission/spacebattle/syndicate1) "bq" = ( /turf/open/space, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ icon_state = "diagonalWall3" }, /area/awaymission/spacebattle/syndicate3) @@ -403,7 +397,7 @@ /area/awaymission/spacebattle/syndicate3) "bs" = ( /turf/open/space, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ dir = 4; icon_state = "diagonalWall3" }, @@ -419,14 +413,14 @@ /area/awaymission/spacebattle/syndicate3) "bv" = ( /turf/open/floor/plasteel/shuttle/red/syndicate, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ dir = 8; icon_state = "diagonalWall3" }, /area/awaymission/spacebattle/syndicate3) "bw" = ( /turf/open/floor/plasteel/shuttle/red/syndicate, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ dir = 1; icon_state = "diagonalWall3" }, @@ -446,7 +440,7 @@ /area/awaymission/spacebattle/syndicate3) "bz" = ( /turf/open/space, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ icon_state = "diagonalWall3" }, /area/awaymission/spacebattle/syndicate1) @@ -456,7 +450,7 @@ /area/awaymission/spacebattle/syndicate2) "bB" = ( /turf/open/space, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ dir = 4; icon_state = "diagonalWall3" }, @@ -467,7 +461,7 @@ /area/awaymission/spacebattle/syndicate1) "bD" = ( /turf/open/floor/plasteel/shuttle/red/syndicate, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ dir = 8; icon_state = "diagonalWall3" }, @@ -478,7 +472,7 @@ /area/awaymission/spacebattle/syndicate1) "bF" = ( /turf/open/floor/plasteel/shuttle/red/syndicate, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ dir = 1; icon_state = "diagonalWall3" }, @@ -493,7 +487,7 @@ /area/awaymission/spacebattle/syndicate1) "bH" = ( /turf/open/space, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ dir = 8; icon_state = "diagonalWall3" }, @@ -518,15 +512,13 @@ /area/awaymission/spacebattle/cruiser) "bL" = ( /turf/open/space, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ dir = 1; icon_state = "diagonalWall3" }, /area/awaymission/spacebattle/cruiser) "bM" = ( -/turf/closed/wall/shuttle{ - icon_state = "wall3" - }, +/turf/closed/wall/mineral/plastitanium, /area/awaymission/spacebattle/cruiser) "bN" = ( /obj/structure/window/reinforced, @@ -566,16 +558,10 @@ /turf/open/floor/plasteel/shuttle/red/syndicate, /area/awaymission/spacebattle/cruiser) "bS" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s6"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium/overspace, /area/awaymission/spacebattle/cruiser) "bT" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall12"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/awaymission/spacebattle/cruiser) "bU" = ( /turf/closed/wall/shuttle{ @@ -653,7 +639,7 @@ /turf/open/floor/plasteel{ icon_state = "damaged5" }, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ icon_state = "diagonalWall3" }, /area/awaymission/spacebattle/cruiser) @@ -668,7 +654,7 @@ /turf/open/floor/plasteel{ icon_state = "damaged4" }, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ dir = 4; icon_state = "diagonalWall3" }, @@ -681,7 +667,7 @@ /turf/open/floor/plasteel{ icon_state = "damaged2" }, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ icon_state = "diagonalWall3" }, /area/awaymission/spacebattle/cruiser) @@ -699,7 +685,7 @@ /turf/open/floor/plasteel{ icon_state = "damaged5" }, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ dir = 4; icon_state = "diagonalWall3" }, @@ -727,9 +713,7 @@ }, /area/awaymission/spacebattle/cruiser) "ct" = ( -/turf/closed/wall/shuttle{ - icon_state = "swallc1" - }, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/awaymission/spacebattle/cruiser) "cu" = ( /turf/closed/wall/shuttle{ @@ -922,7 +906,7 @@ /area/awaymission/spacebattle/cruiser) "db" = ( /mob/living/simple_animal/hostile/syndicate/ranged{ - loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/weapon/shield/energy) + loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier,/obj/item/weapon/gun/ballistic/automatic/c20r,/obj/item/weapon/shield/energy) }, /turf/open/floor/plasteel/shuttle/red/syndicate, /area/awaymission/spacebattle/syndicate3) @@ -1013,7 +997,7 @@ /turf/open/floor/plasteel{ icon_state = "damaged4" }, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ icon_state = "diagonalWall3" }, /area/awaymission/spacebattle/cruiser) @@ -1028,7 +1012,7 @@ /turf/open/floor/plasteel{ icon_state = "damaged1" }, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ dir = 4; icon_state = "diagonalWall3" }, @@ -1041,9 +1025,7 @@ /area/awaymission/spacebattle/cruiser) "du" = ( /obj/effect/decal/cleanable/blood, -/turf/closed/wall/shuttle{ - icon_state = "swall12" - }, +/turf/closed/wall/mineral/titanium, /area/awaymission/spacebattle/cruiser) "dv" = ( /turf/closed/wall/shuttle{ @@ -1132,7 +1114,7 @@ /turf/open/floor/plasteel{ icon_state = "damaged3" }, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ dir = 4; icon_state = "diagonalWall3" }, @@ -1347,19 +1329,17 @@ /area/awaymission/spacebattle/cruiser) "eq" = ( /turf/open/space, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ dir = 8; icon_state = "diagonalWall3" }, /area/awaymission/spacebattle/syndicate4) "er" = ( -/turf/closed/wall/shuttle{ - icon_state = "wall3" - }, +/turf/closed/wall/mineral/plastitanium, /area/awaymission/spacebattle/syndicate4) "es" = ( /turf/open/space, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ dir = 1; icon_state = "diagonalWall3" }, @@ -1394,7 +1374,7 @@ mob_name = "Davis Hume"; name = "Davis Hume" }, -/obj/item/weapon/gun/projectile/shotgun/automatic/combat, +/obj/item/weapon/gun/ballistic/shotgun/automatic/combat, /turf/open/floor/plasteel, /area/awaymission/spacebattle/cruiser) "ez" = ( @@ -1403,7 +1383,7 @@ /area/awaymission/spacebattle/cruiser) "eA" = ( /mob/living/simple_animal/hostile/syndicate/ranged{ - loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/weapon/shield/energy) + loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier,/obj/item/weapon/gun/ballistic/automatic/c20r,/obj/item/weapon/shield/energy) }, /turf/open/floor/plasteel/shuttle/red/syndicate, /area/awaymission/spacebattle/syndicate1) @@ -1538,7 +1518,7 @@ mob_name = "Kurt Kliest"; name = "Kurt Kliest" }, -/obj/item/weapon/gun/projectile/shotgun/automatic/combat, +/obj/item/weapon/gun/ballistic/shotgun/automatic/combat, /obj/item/ammo_casing/shotgun, /turf/open/floor/plasteel, /area/awaymission/spacebattle/cruiser) @@ -1610,7 +1590,7 @@ /area/awaymission/spacebattle/cruiser) "fj" = ( /obj/machinery/computer/security/telescreen, -/turf/closed/wall/shuttle, +/turf/closed/wall/mineral/titanium, /area/awaymission/spacebattle/cruiser) "fk" = ( /turf/closed/wall/shuttle{ @@ -1643,7 +1623,7 @@ /area/awaymission/spacebattle/cruiser) "fp" = ( /obj/effect/mob_spawn/human/syndicatesoldier, -/obj/item/weapon/gun/projectile/automatic/c20r, +/obj/item/weapon/gun/ballistic/automatic/c20r, /obj/item/ammo_casing/c10mm, /obj/item/ammo_casing/c10mm, /obj/effect/decal/cleanable/blood, @@ -1660,7 +1640,7 @@ /area/awaymission/spacebattle/cruiser) "fr" = ( /obj/effect/mob_spawn/human/nanotrasensoldier, -/obj/item/weapon/gun/projectile/automatic/wt550, +/obj/item/weapon/gun/ballistic/automatic/wt550, /turf/open/floor/plasteel, /area/awaymission/spacebattle/cruiser) "fs" = ( @@ -1672,7 +1652,7 @@ "ft" = ( /obj/item/ammo_casing/a357, /obj/item/ammo_casing/a357, -/obj/item/weapon/gun/projectile/revolver/mateba, +/obj/item/weapon/gun/ballistic/revolver/mateba, /obj/effect/mob_spawn/human/commander{ mob_name = "Aaron Bowden"; name = "Aaron Bowden" @@ -1797,7 +1777,7 @@ /area/awaymission/spacebattle/cruiser) "fN" = ( /obj/effect/mob_spawn/human/syndicatesoldier, -/obj/item/weapon/gun/projectile/automatic/c20r, +/obj/item/weapon/gun/ballistic/automatic/c20r, /obj/item/ammo_casing/c10mm, /obj/item/ammo_casing/c10mm, /obj/effect/decal/cleanable/blood, @@ -2032,18 +2012,18 @@ /turf/open/floor/wood, /area/awaymission/spacebattle/cruiser) "gz" = ( -/obj/item/weapon/gun/projectile/shotgun/automatic/combat, +/obj/item/weapon/gun/ballistic/shotgun/automatic/combat, /turf/open/floor/plasteel, /area/awaymission/spacebattle/cruiser) "gA" = ( /turf/open/space, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ icon_state = "diagonalWall3" }, /area/awaymission/spacebattle/syndicate4) "gB" = ( /turf/open/space, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ dir = 4; icon_state = "diagonalWall3" }, @@ -2123,7 +2103,7 @@ /area/awaymission/spacebattle/syndicate7) "gQ" = ( /turf/open/space, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ dir = 1; icon_state = "diagonalWall3" }, @@ -2195,15 +2175,13 @@ /area/awaymission/spacebattle/cruiser) "hb" = ( /turf/open/space, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ dir = 8; icon_state = "diagonalWall3" }, /area/awaymission/spacebattle/syndicate7) "hc" = ( -/turf/closed/wall/shuttle{ - icon_state = "wall3" - }, +/turf/closed/wall/mineral/plastitanium, /area/awaymission/spacebattle/syndicate7) "hd" = ( /obj/structure/shuttle/engine/propulsion, @@ -2372,7 +2350,7 @@ /area/awaymission/spacebattle/cruiser) "hG" = ( /turf/open/space, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ dir = 4; icon_state = "diagonalWall3" }, @@ -2435,7 +2413,7 @@ /area/awaymission/spacebattle/cruiser) "hR" = ( /mob/living/simple_animal/hostile/syndicate/ranged{ - loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/weapon/shield/energy) + loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier,/obj/item/weapon/gun/ballistic/automatic/c20r,/obj/item/weapon/shield/energy) }, /turf/open/floor/plasteel, /area/awaymission/spacebattle/cruiser) @@ -2561,7 +2539,7 @@ /area/awaymission/spacebattle/cruiser) "in" = ( /turf/open/space, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ icon_state = "diagonalWall3" }, /area/awaymission/spacebattle/syndicate7) @@ -2606,7 +2584,7 @@ /area/awaymission/spacebattle/cruiser) "iu" = ( /obj/effect/mob_spawn/human/syndicatesoldier, -/obj/item/weapon/gun/projectile/automatic/c20r, +/obj/item/weapon/gun/ballistic/automatic/c20r, /turf/open/floor/plasteel{ icon_state = "damaged2" }, @@ -2635,13 +2613,11 @@ /turf/open/space, /area/space) "iz" = ( -/turf/closed/wall/shuttle{ - icon_state = "wall3" - }, +/turf/closed/wall/mineral/plastitanium, /area/space) "iA" = ( /turf/open/space, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ dir = 1; icon_state = "diagonalWall3" }, @@ -2681,19 +2657,17 @@ /area/space) "iH" = ( /turf/open/space, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ dir = 8; icon_state = "diagonalWall3" }, /area/awaymission/spacebattle/syndicate5) "iI" = ( -/turf/closed/wall/shuttle{ - icon_state = "wall3" - }, +/turf/closed/wall/mineral/plastitanium, /area/awaymission/spacebattle/syndicate5) "iJ" = ( /turf/open/space, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ dir = 1; icon_state = "diagonalWall3" }, @@ -2711,13 +2685,13 @@ /area/awaymission/spacebattle/syndicate5) "iN" = ( /turf/open/space, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ icon_state = "diagonalWall3" }, /area/space) "iO" = ( /turf/open/space, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ dir = 4; icon_state = "diagonalWall3" }, @@ -2750,13 +2724,13 @@ /area/awaymission/spacebattle/syndicate5) "iU" = ( /turf/open/space, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ icon_state = "diagonalWall3" }, /area/awaymission/spacebattle/syndicate5) "iV" = ( /turf/open/space, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ dir = 4; icon_state = "diagonalWall3" }, @@ -2774,19 +2748,17 @@ /area/awaymission/spacebattle/syndicate5) "iY" = ( /turf/open/space, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ dir = 8; icon_state = "diagonalWall3" }, /area/awaymission/spacebattle/syndicate6) "iZ" = ( -/turf/closed/wall/shuttle{ - icon_state = "wall3" - }, +/turf/closed/wall/mineral/plastitanium, /area/awaymission/spacebattle/syndicate6) "ja" = ( /turf/open/space, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ dir = 1; icon_state = "diagonalWall3" }, @@ -2815,13 +2787,13 @@ /area/awaymission/spacebattle/syndicate6) "jg" = ( /turf/open/space, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ icon_state = "diagonalWall3" }, /area/awaymission/spacebattle/syndicate6) "jh" = ( /turf/open/space, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ dir = 4; icon_state = "diagonalWall3" }, @@ -2874,12 +2846,12 @@ /area/awaymission/spacebattle/cruiser) "js" = ( /obj/structure/rack, -/obj/item/weapon/gun/projectile/automatic/laser, +/obj/item/weapon/gun/ballistic/automatic/laser, /turf/open/floor/engine, /area/awaymission/spacebattle/cruiser) "jt" = ( /obj/structure/rack, -/obj/item/weapon/gun/energy/gun/advtaser, +/obj/item/weapon/gun/energy/e_gun/advtaser, /turf/open/floor/engine, /area/awaymission/spacebattle/cruiser) "ju" = ( @@ -2944,7 +2916,7 @@ "jB" = ( /obj/structure/rack, /obj/structure/window/reinforced, -/obj/item/weapon/gun/energy/gun/advtaser, +/obj/item/weapon/gun/energy/e_gun/advtaser, /turf/open/floor/engine, /area/awaymission/spacebattle/cruiser) "jC" = ( @@ -3014,7 +2986,7 @@ mob_name = "Walter Strider"; name = "Walter Strider" }, -/obj/item/weapon/gun/projectile/shotgun/automatic/combat, +/obj/item/weapon/gun/ballistic/shotgun/automatic/combat, /obj/item/ammo_casing/c10mm, /obj/item/ammo_casing/c10mm, /obj/effect/decal/cleanable/blood, @@ -3061,7 +3033,7 @@ /area/awaymission/spacebattle/cruiser) "jU" = ( /mob/living/simple_animal/hostile/syndicate/ranged/space{ - loot = list(/obj/effect/mob_spawn/human/corpse/syndicatecommando,/obj/item/weapon/gun/projectile/automatic/c20r) + loot = list(/obj/effect/mob_spawn/human/corpse/syndicatecommando,/obj/item/weapon/gun/ballistic/automatic/c20r) }, /turf/open/floor/plasteel/airless, /area/awaymission/spacebattle/cruiser) @@ -3088,14 +3060,14 @@ /area/awaymission/spacebattle/cruiser) "jY" = ( /mob/living/simple_animal/hostile/syndicate/ranged/space{ - loot = list(/obj/effect/mob_spawn/human/corpse/syndicatecommando,/obj/item/weapon/gun/projectile/automatic/c20r) + loot = list(/obj/effect/mob_spawn/human/corpse/syndicatecommando,/obj/item/weapon/gun/ballistic/automatic/c20r) }, /turf/open/floor/plating/airless, /area/awaymission/spacebattle/cruiser) "jZ" = ( /obj/structure/rack, -/obj/item/weapon/gun/projectile/automatic/laser, -/obj/item/weapon/gun/projectile/automatic/laser, +/obj/item/weapon/gun/ballistic/automatic/laser, +/obj/item/weapon/gun/ballistic/automatic/laser, /turf/open/floor/engine, /area/awaymission/spacebattle/cruiser) "ka" = ( @@ -3155,7 +3127,7 @@ /area/awaymission/spacebattle/cruiser) "kl" = ( /obj/effect/mob_spawn/human/nanotrasensoldier, -/obj/item/weapon/gun/projectile/automatic/wt550, +/obj/item/weapon/gun/ballistic/automatic/wt550, /obj/effect/decal/cleanable/blood, /turf/open/floor/plasteel, /area/awaymission/spacebattle/cruiser) @@ -3221,7 +3193,7 @@ /area/awaymission/spacebattle/cruiser) "ku" = ( /mob/living/simple_animal/hostile/syndicate/ranged{ - loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/weapon/shield/energy) + loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier,/obj/item/weapon/gun/ballistic/automatic/c20r,/obj/item/weapon/shield/energy) }, /turf/open/floor/plasteel/white, /area/awaymission/spacebattle/cruiser) @@ -21950,7 +21922,7 @@ cf cf cf df -dt +bS ab ab ab @@ -21979,7 +21951,7 @@ cf cf cf iv -dt +bS ab ab ab @@ -22207,7 +22179,7 @@ bY bY bY bY -bV +bT ab ab ab @@ -22226,7 +22198,7 @@ ab ab ab ab -bV +bT bY bY bY @@ -22464,7 +22436,7 @@ cv cg cg cg -bV +bT ab ab ab @@ -22483,7 +22455,7 @@ ab ab ab ab -bV +bT cg cg cg @@ -22721,7 +22693,7 @@ cc cc cQ cc -bV +bT ab ab ab @@ -22740,7 +22712,7 @@ ab ab ab ab -bV +bT cc cc cc @@ -22997,7 +22969,7 @@ ab ab ab ab -bV +bT cc cc cc @@ -23235,7 +23207,7 @@ cc cr cr cr -bV +bT ab ab ab @@ -23254,7 +23226,7 @@ ab ab ab ab -bV +bT cc cc cc @@ -23492,7 +23464,7 @@ cc cQ cc dh -bV +bT ab ab ab @@ -23511,7 +23483,7 @@ ab ab ab ab -bV +bT kB cc cc @@ -23749,7 +23721,7 @@ cc cc cc dh -bV +bT ab ab ab @@ -23768,7 +23740,7 @@ ab ab ab ab -bV +bT kD cc cc @@ -24006,7 +23978,7 @@ cM cc cc dh -bV +bT ab ab ab @@ -24025,7 +23997,7 @@ ab ab ab ab -bV +bT kC cc cc @@ -24263,7 +24235,7 @@ cc cc cr di -bV +bT ab ab ab @@ -24282,7 +24254,7 @@ ab ab ab ab -bV +bT di cc cc @@ -24520,7 +24492,7 @@ cc cS cc di -bV +bT ab ab ab @@ -24539,7 +24511,7 @@ ab ab ab ab -bV +bT di cc cc @@ -26823,16 +26795,16 @@ ab ab ab ab -bU +bT cd cd -cs -ce -ce -ce -ce -ce -ce +bT +bT +bT +bT +bT +bT +bT ht ht ht @@ -26853,16 +26825,16 @@ ht ht ht ht -ce -ce -ce -ce -ce -ce -cs +bT +bT +bT +bT +bT +bT +bT cd cd -eI +bT ab ab ab @@ -27880,12 +27852,12 @@ ka ka hn hn -hH -ce -ce -ce -gE -ic +bT +bT +bT +bT +du +bT ib bT cc @@ -28394,9 +28366,9 @@ cK cK ho ho -hH -ce -ic +bT +bT +bT hW hW hW @@ -28908,9 +28880,9 @@ cK cK eT hx -hH -ce -ic +bT +bT +bT hW hW hW @@ -29422,9 +29394,9 @@ cK cK jJ eT -hH -ce -ic +bT +bT +bT hW hW hW @@ -29936,9 +29908,9 @@ cK cK hp hz -hH -ce -ic +bT +bT +bT hW hW hW @@ -30421,43 +30393,43 @@ ab ab ab ab -bV +bT cc cc ct -ce -ce +bT +bT cd cd -ce -ce -dw -ce -ce -ce -ce -ce -ce -ce +bT +bT +bT +bT +bT +bT +bT +bT +bT +bT fh fh fh fh -ce -gE -ce -ce -ce -ce -ce -dw -ce -ce +bT +du +bT +bT +bT +bT +bT +bT +bT +bT cd cd -ce -ce -eJ +bT +bT +ct cc cc bT @@ -31192,43 +31164,43 @@ ab ab ab ab -bV +bT cc cc -cu -ce -ce -ce -cs -ce -ce +ct +bT +bT +bT +bT +bT +bT cd cd -ce -ce -ce -ce -ce -ce -cR +bT +bT +bT +bT +bT +bT +ct cc cc -cu -ce -ce -ce -ce -ce -ce +ct +bT +bT +bT +bT +bT +bT hB hB -ce -ce -ce -ce -ce -ce -cR +bT +bT +bT +bT +bT +bT +ct cc cc bT @@ -31449,10 +31421,10 @@ ab ab ab ab -bV +bT cc cc -bV +bT cC cP cP @@ -31467,10 +31439,10 @@ da dQ dQ da -bV +bT cc cc -bV +bT gs gG gH @@ -31485,10 +31457,10 @@ gH il gH ip -bV +bT cc cc -bV +bT ab ab ab @@ -31706,10 +31678,10 @@ ab ab ab ab -bV +bT cc cc -bV +bT cD cP cP @@ -31724,10 +31696,10 @@ dx dS eU ep -bV +bT cc cc -bV +bT gt gH gH @@ -31742,10 +31714,10 @@ gH im gH iq -bV +bT cc cc -bV +bT ab ab ab @@ -31963,10 +31935,10 @@ ab ab ab ab -bV +bT cc cc -bV +bT cE cP fI @@ -31981,10 +31953,10 @@ dx dS dS ep -bV +bT cc cc -bV +bT gt gH gH @@ -31999,10 +31971,10 @@ gH gH gH ir -bV +bT cc cc -bV +bT ab ab ab @@ -32220,10 +32192,10 @@ ab ab ab ab -bV +bT cc cc -bV +bT cF cP cP @@ -32238,10 +32210,10 @@ da jC jC da -bV +bT cc cc -bV +bT gu gH gH @@ -32256,10 +32228,10 @@ gH il gH ip -bV +bT cc cc -bV +bT ab ab ab @@ -32477,10 +32449,10 @@ ab ab ab ab -bV +bT cc cc -bV +bT cG cP cP @@ -32495,10 +32467,10 @@ da dQ dQ da -bV +bT cc cc -bV +bT gv gH gH @@ -32513,10 +32485,10 @@ gH im gH iq -bV +bT cc cc -bV +bT ab ab ab @@ -32734,10 +32706,10 @@ ab ab ab ab -bV +bT cc cc -bV +bT cH cP cP @@ -32752,10 +32724,10 @@ dx dR dS ep -bV +bT cc cc -bV +bT gw gH gH @@ -32770,10 +32742,10 @@ ii gH gH ir -bV +bT cc cc -bV +bT ab ab ab @@ -32991,10 +32963,10 @@ ab ab ab ab -bV +bT cc cc -bV +bT cI cP cP @@ -33009,10 +32981,10 @@ dx dS eV ep -bV +bT cc cc -bV +bT gt gH gH @@ -33027,10 +32999,10 @@ gW il gH ip -bV +bT cc cc -bV +bT ab ab ab @@ -33248,10 +33220,10 @@ ab ab ab ab -bV +bT cc cc -bV +bT cI cP cP @@ -33266,10 +33238,10 @@ da dT dT da -bV +bT cc cc -bV +bT gs gG gH @@ -33284,10 +33256,10 @@ gH im gH iq -bV +bT cc cc -bV +bT ab ab ab @@ -33505,46 +33477,46 @@ ab ab ab ab -bV +bT cc cc ct -ce -ce -ce -ce -ce -ce -ce -ce -ce -ce -ce -ce -ce -ce -eJ +bT +bT +bT +bT +bT +bT +bT +bT +bT +bT +bT +bT +bT +bT +ct cc cc ct -ce -ce -ce -ce -ce -ce -ce -ce -ce -ce -ce -ce -ce -ce -eJ +bT +bT +bT +bT +bT +bT +bT +bT +bT +bT +bT +bT +bT +bT +ct cc cc -bV +bT ab ab ab @@ -33762,7 +33734,7 @@ ab ab ab ab -bV +bT cc cc cc @@ -33801,7 +33773,7 @@ cc cc cc cc -bV +bT ab ab ab @@ -34019,7 +33991,7 @@ ab ab ab ab -bV +bT cc cc cc @@ -34058,7 +34030,7 @@ cc cc cc cc -bV +bT ab ab ab @@ -34276,46 +34248,46 @@ ab ab ab ab -bW -ce -ce -cs +bS +bT +bT +bT cJ cJ -cR +ct cc cc -cu -ce -ce -ce -ce -ce +ct +bT +bT +bT +bT +bT cK hs -ce -do +bT +bT cd cd -do -ce -ce -ce -ce -ce -ce -ce -ce -cR +bT +bT +bT +bT +bT +bT +bT +bT +bT +ct cc cc -cu +ct cJ cJ -cs -ce -ce -fk +bT +bT +bT +bS ab ab ab @@ -34539,10 +34511,10 @@ ab bT cK cK -bV +bT cc cc -bV +bT dy dU dU @@ -34551,10 +34523,10 @@ ex cp fL fc -bV +bT fo fJ -bV +bT gx gI gy @@ -34563,10 +34535,10 @@ gy gy hE hJ -bV +bT cc cc -bV +bT cK cK bT @@ -34796,10 +34768,10 @@ ab bT cK cK -bV +bT cc cc -bV +bT dz cc cc @@ -34808,10 +34780,10 @@ ey cQ cc fd -bV +bT fp fK -bV +bT gy gy gy @@ -34820,10 +34792,10 @@ gy gy gy gy -bV +bT cp cc -bV +bT cK cK bT @@ -35053,10 +35025,10 @@ ab bT cK cK -bV +bT cc cc -bV +bT dz cc cc @@ -35080,7 +35052,7 @@ gy cK cp cp -bV +bT cK cK bT @@ -35310,10 +35282,10 @@ ab bT cK cK -bV +bT cc cc -bV +bT dA cc cc @@ -35337,7 +35309,7 @@ gy hs cQ cc -bV +bT cK cK bT @@ -35567,10 +35539,10 @@ ab bT cK cK -bV +bT cc cc -bV +bT dB dV ei @@ -35582,7 +35554,7 @@ cn cK hF fM -bV +bT gy gy gM @@ -35591,10 +35563,10 @@ gy gy gy hK -bV +bT cc cQ -bV +bT cK cK bT @@ -35824,34 +35796,34 @@ ab bT cK cK -bV +bT cc cc -bU -ce -ce -ce -do -eB +bT +bT +bT +bT +bT +bT hs cK -eB -eJ +bT +ct fo fN ct -eB -eB -eB -eB -do -eB -eB -eB -eI +bT +bT +bT +bT +bT +bT +bT +bT +bT cc cc -bV +bT cK cK bT @@ -36078,17 +36050,17 @@ ab ab ab ab -bW +bS cJ cJ -bV +bT cc cc -bV +bT dh dh dh -bV +bT eC cn fL @@ -36101,17 +36073,17 @@ eM eM eM gY -bV +bT hq dh dh -bV +bT cp cc -bV +bT cJ cJ -fk +bS ab ab ab @@ -36338,14 +36310,14 @@ ab ab ab ab -bV +bT cc cm cK cm cc cc -bV +bT jw eN eW @@ -36358,14 +36330,14 @@ cc cr cc gZ -bV +bT cc cQ cn hs cn cc -bV +bT ab ab ab @@ -36595,14 +36567,14 @@ ab ab ab ab -bV +bT fL cp hs cm hQ cc -bV +bT jy cc cc @@ -36615,14 +36587,14 @@ cc cc cc gZ -bV +bT cc cc cp -bV +bT cn cc -bV +bT ab ab ab @@ -36852,14 +36824,14 @@ ab ab ab ab -bV +bT cc cp hs hF cc cc -bV +bT jx cc cc @@ -36872,14 +36844,14 @@ gz cc hR gZ -bV +bT cc cc hL -bV +bT cc cc -bV +bT ab ab ab @@ -37109,14 +37081,14 @@ ab ab ab ab -bV +bT cc cc cd cc cc cc -bV +bT eD cc cc @@ -37129,14 +37101,14 @@ cc cc cc gZ -bV +bT cc cc cc cd cc cc -bV +bT ab ab ab @@ -37366,14 +37338,14 @@ ab ab ab ab -bV +bT cc cc -bV +bT cc cc cc -bV +bT eD cr eX @@ -37386,14 +37358,14 @@ cc cc cc gZ -bV +bT cc cc cc -bV +bT cc cc -bV +bT ab ab ab @@ -37623,14 +37595,14 @@ ab ab ab ab -bV +bT cc cc -bV +bT cc cc cc -bV +bT eD cc eY @@ -37643,14 +37615,14 @@ cc cc cc gZ -bV +bT cc cc cc -bV +bT cc cc -bV +bT ab ab ab @@ -37880,14 +37852,14 @@ ab ab ab ab -bV +bT cc cc -bV +bT cc cc cc -bV +bT eD eO eO @@ -37900,14 +37872,14 @@ cc eO eO gZ -bV +bT cc cc cc -bV +bT cc cc -bV +bT ab ab ab @@ -38137,14 +38109,14 @@ ab ab ab ab -bV +bT cc cc -bV +bT dC dW ej -bV +bT eE eP eZ @@ -38157,14 +38129,14 @@ eE gK gN eE -bV +bT hr dW hM -bV +bT cc cc -bV +bT ab ab ab @@ -38394,14 +38366,14 @@ ab ab ab ab -bV +bT cc cc -bU -ce +bT +bT cd -ce -dw +bT +bT eF eQ eQ @@ -38414,14 +38386,14 @@ eQ eQ eQ ha -dw -ce +bT +bT cd -ce -eI +bT +bT cc cc -bV +bT ab ab ab @@ -38651,10 +38623,10 @@ ab ab ab ab -bV +bT cc cc -bV +bT cZ cZ cZ @@ -38675,10 +38647,10 @@ cZ cZ cZ cZ -bV +bT cc cc -bV +bT ab ab ab @@ -38908,10 +38880,10 @@ ab ab ab ab -bV +bT cc cc -bV +bT cZ cZ cZ @@ -38932,10 +38904,10 @@ cZ cZ cZ cZ -bV +bT cc cc -bV +bT ab ab ab @@ -39165,10 +39137,10 @@ ab ab ab ab -bV +bT cc cc -bV +bT cZ cZ cZ @@ -39189,10 +39161,10 @@ cZ cZ cZ cZ -bV +bT cc cc -bV +bT ab ab ab @@ -39422,10 +39394,10 @@ ab ab ab ab -bV +bT cc cc -bV +bT cZ cZ cZ @@ -39446,10 +39418,10 @@ cZ cZ cZ cZ -bV +bT cc cc -bV +bT ab ab ab @@ -39679,10 +39651,10 @@ ab ab ab ab -bV +bT cc cc -bV +bT dD dX cZ @@ -39703,10 +39675,10 @@ cZ cZ cZ cZ -bV +bT cc cc -bV +bT ab ab ab @@ -39936,10 +39908,10 @@ ab ab ab ab -bV +bT cc cc -bV +bT cZ cZ cZ @@ -39960,10 +39932,10 @@ cZ cZ cZ cZ -bV +bT cc cc -bV +bT ab ab ab @@ -40193,10 +40165,10 @@ ab ab ab ab -bV +bT cc cc -bV +bT cZ cZ cZ @@ -40217,10 +40189,10 @@ cZ cZ jr cZ -bV +bT cc cc -bV +bT ab ab ab @@ -40450,10 +40422,10 @@ ab ab ab ab -bV +bT cc it -bV +bT cZ cZ jr @@ -40474,10 +40446,10 @@ hh dD cZ cZ -bV +bT it cc -bV +bT ab ab ab @@ -40707,10 +40679,10 @@ ab ab ab ab -bV +bT cc cc -bV +bT cZ cZ cZ @@ -40731,10 +40703,10 @@ cZ dD cZ cZ -bV +bT cc cc -bV +bT ab ab ab @@ -40964,10 +40936,10 @@ ab ab ab ab -bV +bT cc cc -bV +bT cZ cZ cZ @@ -40988,10 +40960,10 @@ cZ cZ cZ cZ -bV +bT cc cc -bV +bT ab ab ab @@ -41221,10 +41193,10 @@ ab ab ab ab -bV +bT cc cc -bV +bT cZ cZ cZ @@ -41245,10 +41217,10 @@ cZ cZ cZ cZ -bV +bT cc cc -bV +bT ab ab ab @@ -41478,10 +41450,10 @@ ab ab ab ab -bV +bT cc cc -bV +bT cZ cZ cZ @@ -41502,10 +41474,10 @@ cZ cZ cZ cZ -bV +bT cc cc -bV +bT ab ab ab @@ -41735,10 +41707,10 @@ ab ab ab ab -bV +bT cc cc -bV +bT cZ cZ cZ @@ -41759,10 +41731,10 @@ cZ cZ cZ cZ -bV +bT cc cc -bV +bT ab ab ab @@ -41992,10 +41964,10 @@ ab ab ab ab -bV +bT cc cc -bV +bT cZ cZ cZ @@ -42016,10 +41988,10 @@ cZ cZ cZ cZ -bV +bT cc cc -bV +bT ab ab ab @@ -42249,10 +42221,10 @@ ab ab ab ab -bV +bT cc cc -bV +bT cZ cZ cZ @@ -42273,10 +42245,10 @@ cZ cZ cZ cZ -bV +bT cc cc -bV +bT ab ab ab @@ -42506,10 +42478,10 @@ ab ab ab ab -bV +bT cc cc -bV +bT cZ cZ cZ @@ -42530,10 +42502,10 @@ cZ cZ cZ cZ -bV +bT cc cc -bV +bT ab ab ab @@ -42763,34 +42735,34 @@ ab ab ab ab -bV +bT cc cc ct -ce -ce -ce -ce -ce -ce -ce -ce -cR +bT +bT +bT +bT +bT +bT +bT +bT +ct ab ab -cu -ce -ce -ce -ce -ce -ce -ce -ce -eJ +ct +bT +bT +bT +bT +bT +bT +bT +bT +ct cc cc -bV +bT ab ab ab @@ -43020,7 +42992,7 @@ ab ab ab ab -bV +bT cc cc cd @@ -43032,10 +43004,10 @@ cc cc cc cc -bV +bT ab ab -bV +bT jS jS jS @@ -43047,7 +43019,7 @@ jS cd cc cc -bV +bT ab ab ab @@ -43277,7 +43249,7 @@ ab ab ab ab -bV +bT cc cc cd @@ -43289,10 +43261,10 @@ cc cc cc cc -bV +bT ab ab -bV +bT jS jS jS @@ -43304,7 +43276,7 @@ jS cd cc cc -bV +bT ab ab ab @@ -43534,34 +43506,34 @@ ab ab ab ab -bW -ce -ce -do -do -do -do -do -cR +bS +bT +bT +bT +bT +bT +bT +bT +ct cc cc cc -bV +bT ab ab -bV +bT jS jS jS -cu -cs -cs -cs -cs -cs -ce -ce -ia +ct +bT +bT +bT +bT +bT +bT +bT +bS ab ab ab @@ -43794,28 +43766,28 @@ ab ab ab ab -bW -dv -dv -dv -dv -eI +bS +bT +bT +bT +bT +bT cc cc cc -bV +bT ab ab -bV +bT jS jS jS -bU -dv -dv -dv -dv -ia +bT +bT +bT +bT +bT +bS ab ab ab @@ -44053,25 +44025,25 @@ ab ab ab ct -dp -dp -dp -eI +bT +bT +bT +bT cc cc cc -bV +bT ab ab -bV +bT jS jS jS -bU -dw -dw -dw -eJ +bT +bT +bT +bT +ct ab ab ab @@ -44313,18 +44285,18 @@ dE dY ek el -bV +bT cc cc cc -bV +bT ab ab -bV +bT jS jS jS -bV +bT kd ki kr @@ -44570,18 +44542,18 @@ dF dZ el el -bV +bT cc cc cc -bV +bT ab ab -bV +bT jS jS jS -bV +bT kd kd kq @@ -44827,18 +44799,18 @@ dG dY ek el -bV +bT cc cc cc -bV +bT ab ab -bV +bT jS jS jS -bV +bT kd ki kr @@ -45084,18 +45056,18 @@ dF dZ el el -bV +bT cc cc cc -bV +bT ab ab -bV +bT jS jU jS -bV +bT kd kd kq @@ -45341,18 +45313,18 @@ dG dY ek el -bV +bT cc cr cc -bV +bT ab ab -bV +bT jT jS jS -bV +bT kd ki kd @@ -45598,18 +45570,18 @@ dF dZ el el -bV +bT cc kl cr -bV +bT ab ab -bV +bT jS jS jS -bV +bT kd kd ix @@ -45855,14 +45827,14 @@ dG dY ek el -bV +bT cc cc cc -bV +bT ab ab -bV +bT jS jT jS @@ -46112,14 +46084,14 @@ dF dZ el el -bV +bT cc cc cc -bV +bT ab ab -bV +bT jS jS jS @@ -46369,14 +46341,14 @@ dG dY ek el -bV +bT cc it cc -bV +bT ab ab -bV +bT jS jW jS @@ -46626,14 +46598,14 @@ dF dZ el el -bV +bT cc cc cc -bV +bT ab ab -bV +bT jS jS jS @@ -46883,14 +46855,14 @@ dG dY ek el -bV +bT cc cc cc -bV +bT ab ab -bV +bT jS jT jS @@ -47144,10 +47116,10 @@ cd cc cc cc -bV +bT ab ab -bV +bT jS jS jS @@ -47397,18 +47369,18 @@ dG dY ek el -bV +bT cc cc cc -bV +bT ab ab -bV +bT jU jS jS -bV +bT kd ix ab @@ -47654,18 +47626,18 @@ dF dZ el el -bV +bT cc cc cc -bV +bT ab ab -bV +bT jS jT jS -bV +bT kd kK ab @@ -47911,18 +47883,18 @@ dG dY ek el -bV +bT cc cc cc -bV +bT ab ab -bV +bT jS jS jS -bV +bT kd kd ab @@ -48168,18 +48140,18 @@ dF dZ el el -bV +bT cc cc cc -bV +bT ab ab -bV +bT jS jS jS -bV +bT kd kk ab @@ -48425,18 +48397,18 @@ dG dY ek el -bV +bT cc cc cc -bV +bT ab ab -bV +bT jS jS jS -bV +bT kd ko ix @@ -48682,18 +48654,18 @@ dF dZ el el -bV +bT cc cc cc -bV +bT ab ab -bV +bT jS jS jS -bV +bT kd kd kd @@ -48939,18 +48911,18 @@ dG dY ek el -bV +bT cc cc cc -bV +bT ab ab -bV +bT jS jS jS -bV +bT kd ko kr @@ -49196,18 +49168,18 @@ dF dZ el el -bV +bT cc cc cc -bV +bT ab ab -bV +bT jS jS jS -bV +bT kd kd kq @@ -49453,18 +49425,18 @@ dG dY ek el -bV +bT cc cc cc -bV +bT ab ab -bV +bT jS jS jS -bV +bT kd ko kr @@ -49710,18 +49682,18 @@ dF dZ el el -bV +bT cc cc cc -bV +bT ab ab -bV +bT jS jS jS -bV +bT kd kd kq @@ -49967,18 +49939,18 @@ dH dY ek el -bV +bT cc cc cc -bV +bT ab ab -bV +bT jS jS jS -bV +bT kd ko kr @@ -50220,26 +50192,26 @@ ab ab ab ab -cu -do -do -do -eI +ct +bT +bT +bT +bT cc cc cc -bV +bT ab ab -bV +bT jS jS jS -bU -cs -cs -cs -cR +bT +bT +bT +bT +ct ab ab ab @@ -50477,27 +50449,27 @@ ab ab ab bS -dv -dv -dv -dv -eI +bT +bT +bT +bT +bT cc cc cc -bV +bT ab ab -bV +bT jS jS jS -bU -dv -dv -dv -dv -dt +bT +bT +bT +bT +bT +bS ab ab ab @@ -50731,33 +50703,33 @@ ab ab ab bS -ce -ce -dp -dp -dp -dp -dp -eJ +bT +bT +bT +bT +bT +bT +bT +ct cc cc cc -bV +bT ab ab -bV +bT jS jS jS ct -dw -dw -dw -dw -dw -ce -ce -dt +bT +bT +bT +bT +bT +bT +bT +bS ab ab ab @@ -50987,7 +50959,7 @@ ab ab ab ab -bV +bT cc cc cc @@ -50999,10 +50971,10 @@ cc cc cc cc -bV +bT ab ab -bV +bT jS jS jS @@ -51014,7 +50986,7 @@ jS jS jS jS -bV +bT ab ab ab @@ -51244,7 +51216,7 @@ ab ab ab ab -bV +bT cc cm cc @@ -51256,10 +51228,10 @@ cc cc cc cc -bV +bT ab ab -bV +bT jS jS jS @@ -51271,7 +51243,7 @@ jS jS jS jS -bV +bT ab ab ab @@ -51501,7 +51473,7 @@ ab ab ab ab -bV +bT cm cn cp @@ -51513,10 +51485,10 @@ cc cc fr cc -bV +bT ab ab -bV +bT jS jS jS @@ -51528,7 +51500,7 @@ jS jS jS jS -bV +bT ab ab ab @@ -51770,10 +51742,10 @@ cc cc cc cc -bV +bT ab ab -bV +bT jS jS jS @@ -51785,7 +51757,7 @@ jS jS jS jS -bV +bT ab ab ab @@ -52027,10 +51999,10 @@ cQ cc cc cc -bV +bT ab ab -bV +bT jS jS jS @@ -52042,7 +52014,7 @@ jS jS jS jS -bV +bT ab ab ab @@ -52284,10 +52256,10 @@ jz cc cc cc -bV +bT ab ab -bV +bT jS jS jS @@ -52299,7 +52271,7 @@ kA jS jS jS -bV +bT ab ab ab @@ -52541,10 +52513,10 @@ cc cc cc cQ -bV +bT ab ab -bV +bT jS jS jS @@ -52556,7 +52528,7 @@ jS jS jS jS -bV +bT ab ab ab @@ -52798,10 +52770,10 @@ cc dJ cc cc -bV +bT ab ab -bV +bT jS jS jS @@ -52813,7 +52785,7 @@ jS jS jS jS -bV +bT ab ab ab @@ -53055,10 +53027,10 @@ cc cc cc cc -bV +bT ab ab -bV +bT jS jS jS @@ -53070,7 +53042,7 @@ jS jS jS jS -bV +bT ab ab ab @@ -53300,7 +53272,7 @@ ab ab ab ab -bV +bT cc cN cc @@ -53312,10 +53284,10 @@ hR cc cc cc -bV +bT ab ab -bV +bT jS jU jS @@ -53327,7 +53299,7 @@ jS jS jS jS -bV +bT ab ab ab @@ -53557,7 +53529,7 @@ ab ab ab ab -bV +bT cp cc cc @@ -53569,10 +53541,10 @@ cc cc cc fr -bV +bT ab ab -bV +bT jS jS jS @@ -53584,7 +53556,7 @@ jS jS jS jS -bV +bT ab ab ab @@ -53814,7 +53786,7 @@ ab ab ab ab -bV +bT cc cc cc @@ -53826,10 +53798,10 @@ cc cc cc cc -bV +bT ab ab -bV +bT jS jS jS @@ -53841,7 +53813,7 @@ jS jS jS jS -bV +bT ab ab ab @@ -54071,7 +54043,7 @@ ab ab ab ab -bV +bT cY dd cJ @@ -54083,10 +54055,10 @@ dd cJ cY dd -bV +bT ab ab -bV +bT cY dd cJ @@ -54098,7 +54070,7 @@ dd cJ cY dd -bV +bT ab ab ab @@ -54328,7 +54300,7 @@ ab ab ab ab -bV +bT cZ cZ cZ @@ -54340,10 +54312,10 @@ cZ cZ cZ cZ -bV +bT ab ab -bV +bT cZ cZ cZ @@ -54355,7 +54327,7 @@ cZ cZ cZ cZ -bV +bT ab ab ab @@ -54585,7 +54557,7 @@ ab ab ab ab -bW +bS cZ de cZ @@ -54597,10 +54569,10 @@ de cZ de cZ -fk +bS ab ab -bW +bS cZ de cZ @@ -54612,7 +54584,7 @@ de cZ de cZ -fk +bS ab ab ab diff --git a/_maps/RandomZLevels/undergroundoutpost45.dmm b/_maps/RandomZLevels/undergroundoutpost45.dmm index f4bb019090..3113d7feab 100644 --- a/_maps/RandomZLevels/undergroundoutpost45.dmm +++ b/_maps/RandomZLevels/undergroundoutpost45.dmm @@ -43,19 +43,13 @@ name = "UO45 Central Hall" }) "af" = ( -/turf/closed/wall/shuttle{ - icon_state = "swallc2"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/awaycontent/a1{ has_gravity = 1; name = "UO45 Central Hall" }) "ag" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall12"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/awaycontent/a1{ has_gravity = 1; name = "UO45 Central Hall" @@ -1150,12 +1144,12 @@ name = "UO45 Central Hall" }) "bW" = ( -/obj/effect/glowshroom/single, +/obj/structure/glowshroom/single, /turf/open/floor/plating/asteroid{ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 351.9; + temperature = 351.9 }, /area/awaycontent/a7{ always_unpowered = 1; @@ -1171,7 +1165,7 @@ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 351.9; + temperature = 351.9 }, /area/awaycontent/a7{ always_unpowered = 1; @@ -2782,7 +2776,7 @@ heat_capacity = 1e+006; icon_plating = "asteroidplating"; icon_state = "asteroidplating"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a7{ always_unpowered = 1; @@ -2967,7 +2961,7 @@ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a7{ always_unpowered = 1; @@ -3386,7 +3380,7 @@ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a1{ has_gravity = 1; @@ -3703,7 +3697,7 @@ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a1{ has_gravity = 1; @@ -3962,12 +3956,12 @@ name = "UO45 Central Hall" }) "gf" = ( -/obj/effect/glowshroom/single, +/obj/structure/glowshroom/single, /turf/open/floor/plating/asteroid{ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a7{ always_unpowered = 1; @@ -4206,7 +4200,7 @@ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a2{ has_gravity = 1; @@ -4550,7 +4544,7 @@ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a5{ has_gravity = 1; @@ -4564,7 +4558,7 @@ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a2{ has_gravity = 1; @@ -4609,7 +4603,7 @@ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a2{ has_gravity = 1; @@ -6329,7 +6323,7 @@ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a6{ has_gravity = 1; @@ -6378,7 +6372,7 @@ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a5{ has_gravity = 1; @@ -6625,7 +6619,7 @@ name = "UO45 Central Hall" }) "kd" = ( -/obj/item/weapon/storage/backpack/satchel_tox, +/obj/item/weapon/storage/backpack/satchel/tox, /obj/item/clothing/gloves/color/latex, /obj/item/clothing/suit/toggle/labcoat/science, /obj/effect/decal/cleanable/dirt, @@ -8454,7 +8448,7 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/item/weapon/storage/backpack/satchel_eng, +/obj/item/weapon/storage/backpack/satchel/eng, /obj/item/clothing/suit/hazardvest, /obj/item/clothing/mask/gas, /obj/item/clothing/glasses/meson, @@ -8642,7 +8636,7 @@ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a6{ has_gravity = 1; @@ -10843,7 +10837,7 @@ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a7{ always_unpowered = 1; @@ -10862,7 +10856,7 @@ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a7{ always_unpowered = 1; @@ -10882,7 +10876,7 @@ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a3{ has_gravity = 1; @@ -11285,7 +11279,7 @@ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a7{ always_unpowered = 1; @@ -11503,7 +11497,7 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/item/weapon/hand_labeler, -/obj/item/clothing/tie/stethoscope, +/obj/item/clothing/neck/stethoscope, /turf/open/floor/plasteel/white/side{ dir = 2; heat_capacity = 1e+006 @@ -11642,7 +11636,7 @@ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a7{ always_unpowered = 1; @@ -11661,7 +11655,7 @@ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a7{ always_unpowered = 1; @@ -11680,7 +11674,7 @@ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a7{ always_unpowered = 1; @@ -13119,7 +13113,7 @@ name = "miner's equipment"; req_access = list(201) }, -/obj/item/weapon/storage/backpack/satchel_eng, +/obj/item/weapon/storage/backpack/satchel/eng, /obj/item/clothing/gloves/fingerless, /turf/open/floor/plasteel/brown/corner{ dir = 2; @@ -14511,7 +14505,7 @@ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a2{ has_gravity = 1; @@ -15358,7 +15352,7 @@ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a7{ always_unpowered = 1; @@ -15673,7 +15667,7 @@ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a5{ has_gravity = 1; @@ -16055,7 +16049,7 @@ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a4{ has_gravity = 1; @@ -17483,7 +17477,7 @@ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a4{ has_gravity = 1; @@ -17495,7 +17489,7 @@ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a7{ always_unpowered = 1; @@ -17512,7 +17506,7 @@ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a7{ always_unpowered = 1; @@ -17533,7 +17527,7 @@ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a7{ always_unpowered = 1; @@ -17553,7 +17547,7 @@ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a7{ always_unpowered = 1; @@ -17568,13 +17562,13 @@ /obj/structure/alien/weeds{ icon_state = "weeds2" }, -/obj/effect/glowshroom/single, +/obj/structure/glowshroom/single, /obj/effect/decal/cleanable/blood/gibs/down, /turf/open/floor/plating/asteroid{ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a7{ always_unpowered = 1; @@ -17594,7 +17588,7 @@ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a7{ always_unpowered = 1; @@ -17613,7 +17607,7 @@ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a7{ always_unpowered = 1; @@ -17631,7 +17625,7 @@ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a7{ always_unpowered = 1; @@ -17651,7 +17645,7 @@ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a7{ always_unpowered = 1; @@ -17668,7 +17662,7 @@ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a7{ always_unpowered = 1; @@ -17685,7 +17679,7 @@ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a7{ always_unpowered = 1; @@ -17703,7 +17697,7 @@ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a7{ always_unpowered = 1; @@ -17718,12 +17712,12 @@ /obj/structure/alien/weeds{ icon_state = "weeds1" }, -/obj/effect/glowshroom/single, +/obj/structure/glowshroom/single, /turf/open/floor/plating/asteroid{ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a7{ always_unpowered = 1; @@ -17741,7 +17735,7 @@ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a7{ always_unpowered = 1; @@ -17759,7 +17753,7 @@ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a7{ always_unpowered = 1; @@ -17777,7 +17771,7 @@ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a7{ always_unpowered = 1; @@ -17796,7 +17790,7 @@ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a7{ always_unpowered = 1; @@ -17813,7 +17807,7 @@ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a7{ always_unpowered = 1; @@ -17830,7 +17824,7 @@ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a7{ always_unpowered = 1; @@ -17848,7 +17842,7 @@ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a7{ always_unpowered = 1; @@ -17865,7 +17859,7 @@ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a7{ always_unpowered = 1; @@ -17883,7 +17877,7 @@ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a7{ always_unpowered = 1; @@ -17904,7 +17898,7 @@ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a7{ always_unpowered = 1; @@ -17924,7 +17918,7 @@ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a7{ always_unpowered = 1; @@ -17944,7 +17938,7 @@ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a7{ always_unpowered = 1; @@ -17963,7 +17957,7 @@ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a7{ always_unpowered = 1; @@ -17984,7 +17978,7 @@ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a7{ always_unpowered = 1; @@ -18002,7 +17996,7 @@ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; name = "Cave Floor"; - temperature = 363.9; + temperature = 363.9 }, /area/awaycontent/a7{ always_unpowered = 1; @@ -18075,7 +18069,7 @@ "yN" = ( /obj/structure/grille{ density = 0; - destroyed = 1; + broken = 1; icon_state = "brokengrille" }, /turf/open/floor/plasteel/shuttle{ @@ -48802,10 +48796,10 @@ ad ad ae af -ai -ai -ai -av +ag +ag +ag +af an aS aS @@ -49062,7 +49056,7 @@ ag aj ak aq -aw +ag an aF aS @@ -49833,7 +49827,7 @@ ag am ap fu -aA +ag ae aG aL @@ -50086,11 +50080,11 @@ ad ad ad ae -ah -ai -ai -ai -aE +af +ag +ag +ag +af an aH aS diff --git a/_maps/RandomZLevels/wildwest.dmm b/_maps/RandomZLevels/wildwest.dmm index e1a8d15946..cefd6b67e8 100644 --- a/_maps/RandomZLevels/wildwest.dmm +++ b/_maps/RandomZLevels/wildwest.dmm @@ -9,7 +9,7 @@ /turf/open/floor/engine/cult, /area/awaymission/wwvault) "ad" = ( -/obj/structure/cult/pylon, +/obj/structure/destructible/cult/pylon, /turf/open/floor/engine/cult, /area/awaymission/wwvault) "ae" = ( @@ -71,7 +71,7 @@ /turf/open/floor/plasteel/circuit/gcircuit/off, /area/awaymission/wwvault) "aq" = ( -/obj/structure/cult/pylon, +/obj/structure/destructible/cult/pylon, /turf/open/floor/plasteel/circuit/gcircuit/off, /area/awaymission/wwvault) "ar" = ( @@ -131,7 +131,7 @@ /turf/open/floor/plasteel/circuit/gcircuit/off, /area/awaymission/wwvault) "aB" = ( -/obj/structure/cult/pylon, +/obj/structure/destructible/cult/pylon, /turf/open/floor/plasteel/circuit/off, /area/awaymission/wwvault) "aC" = ( @@ -366,7 +366,7 @@ /area/awaymission/wwmines) "bC" = ( /obj/structure/table/wood, -/obj/item/weapon/gun/projectile, +/obj/item/weapon/gun/ballistic, /turf/open/floor/wood, /area/awaymission/wwmines) "bD" = ( @@ -570,7 +570,6 @@ /turf/open/floor/wood, /area/awaymission/wwmines) "cc" = ( -/obj/structure/sign/maltesefalcon/left, /turf/closed/wall/mineral/sandstone, /area/awaymission/wwmines) "cd" = ( @@ -621,7 +620,7 @@ /area/awaymission/wwmines) "ch" = ( /obj/structure/table/wood, -/obj/item/weapon/gun/projectile, +/obj/item/weapon/gun/ballistic, /turf/open/floor/plasteel/cafeteria{ dir = 5 }, @@ -950,7 +949,6 @@ /turf/open/floor/carpet, /area/awaymission/wwmines) "dl" = ( -/obj/structure/sign/maltesefalcon/right, /turf/closed/wall/mineral/sandstone, /area/awaymission/wwmines) "dm" = ( @@ -1309,7 +1307,7 @@ /turf/open/floor/carpet, /area/awaymission/wwmines) "eq" = ( -/obj/item/weapon/gun/projectile/shotgun, +/obj/item/weapon/gun/ballistic/shotgun, /turf/open/floor/wood, /area/awaymission/wwmines) "er" = ( @@ -1389,7 +1387,7 @@ "eE" = ( /obj/structure/bed, /obj/item/weapon/bedsheet/blue, -/obj/item/weapon/gun/projectile, +/obj/item/weapon/gun/ballistic, /turf/open/floor/wood, /area/awaymission/wwmines) "eF" = ( @@ -1841,7 +1839,7 @@ /area/awaymission/wwmines) "fS" = ( /obj/structure/table/wood, -/obj/item/weapon/gun/projectile/shotgun, +/obj/item/weapon/gun/ballistic/shotgun, /turf/open/floor/wood, /area/awaymission/wwmines) "fT" = ( @@ -1930,7 +1928,7 @@ /area/awaymission/wwmines) "gg" = ( /obj/structure/table/wood, -/obj/item/weapon/gun/projectile/revolver/russian, +/obj/item/weapon/gun/ballistic/revolver/russian, /turf/open/floor/wood, /area/awaymission/wwmines) "gh" = ( @@ -1958,7 +1956,7 @@ /turf/open/floor/wood, /area/awaymission/wwmines) "gm" = ( -/obj/item/weapon/gun/projectile, +/obj/item/weapon/gun/ballistic, /turf/open/floor/wood, /area/awaymission/wwmines) "gn" = ( @@ -2009,11 +2007,11 @@ /turf/open/floor/wood, /area/awaymission/wwmines) "gw" = ( -/obj/item/weapon/gun/projectile/automatic/pistol, +/obj/item/weapon/gun/ballistic/automatic/pistol, /turf/open/floor/wood, /area/awaymission/wwmines) "gx" = ( -/obj/item/weapon/gun/projectile/shotgun, +/obj/item/weapon/gun/ballistic/shotgun, /turf/open/floor/plating/ironsand{ icon_state = "ironsand1" }, @@ -2107,15 +2105,15 @@ /obj/structure/grille, /turf/open/floor/plasteel, /area/awaymission/wwrefine) +"gH" = ( +/obj/structure/sign/barsign, +/turf/closed/wall/mineral/sandstone, +/area/awaymission/wwmines) "gI" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s6" - }, +/turf/closed/wall/mineral/titanium/overspace, /area/awaymission/wwrefine) "gJ" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall12" - }, +/turf/closed/wall/mineral/titanium, /area/awaymission/wwrefine) "gK" = ( /turf/closed/wall/shuttle{ @@ -2154,9 +2152,7 @@ }, /area/awaymission/wwrefine) "gS" = ( -/turf/closed/wall/shuttle{ - icon_state = "swallc1" - }, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/awaymission/wwrefine) "gT" = ( /turf/closed/wall/shuttle{ @@ -28350,10 +28346,10 @@ aa aa aa gI -gO -gO -gO -gR +gJ +gJ +gJ +gI aa aa aa @@ -28611,10 +28607,10 @@ gP gP gP gS -gO -gO -gO -gR +gJ +gJ +gJ +gI aa aa aa @@ -28863,7 +28859,7 @@ fj fo fo gG -gK +gJ gP gP gP @@ -29377,7 +29373,7 @@ gA fo fo gG -gM +gJ gP gP gP @@ -29638,11 +29634,11 @@ gJ gP gP gP -gT -gO -gO -gO -gU +gS +gJ +gJ +gJ +gI aa aa aa @@ -29891,11 +29887,11 @@ eJ aa aa aa -gN -gO -gO -gO -gU +gI +gJ +gJ +gJ +gI aa aa aa @@ -44753,7 +44749,7 @@ bj bj bj aT -bu +gH bD bj bD @@ -45279,7 +45275,7 @@ bj bj db bj -cc +gH aT bj bj @@ -45536,7 +45532,7 @@ bj bj bj bj -dl +bu aT bj bj diff --git a/_maps/deltastation.dm b/_maps/deltastation.dm new file mode 100644 index 0000000000..5a66be6ca1 --- /dev/null +++ b/_maps/deltastation.dm @@ -0,0 +1,29 @@ +#if !defined(MAP_FILE) + + #define TITLESCREEN "title" //Add an image in misc/fullscreen.dmi, and set this define to the icon_state, to set a custom titlescreen for your map + + #define MINETYPE "lavaland" + + #include "map_files\DeltaStation\DeltaStation2.dmm" + #include "map_files\generic\z2.dmm" + #include "map_files\generic\z3.dmm" + #include "map_files\generic\z4.dmm" + #include "map_files\generic\lavaland.dmm" + #include "map_files\generic\z6.dmm" + #include "map_files\generic\z7.dmm" + #include "map_files\generic\z8.dmm" + #include "map_files\generic\z9.dmm" + #include "map_files\generic\z10.dmm" + #include "map_files\generic\z11.dmm" + + #define MAP_PATH "map_files/DeltaStation" + #define MAP_FILE "DeltaStation2.dmm" + #define MAP_NAME "Delta Station" + + #define MAP_TRANSITION_CONFIG DEFAULT_MAP_TRANSITION_CONFIG + +#elif !defined(MAP_OVERRIDE) + + #warn a map has already been included, deltastation. + +#endif diff --git a/_maps/map_files/BirdStation/BirdStation.dmm b/_maps/map_files/BirdStation/BirdStation.dmm index ed7cc9b033..b5acd31692 100644 --- a/_maps/map_files/BirdStation/BirdStation.dmm +++ b/_maps/map_files/BirdStation/BirdStation.dmm @@ -16,26 +16,15 @@ /turf/open/space, /area/space) "aac" = ( -/turf/open/space, -/obj/machinery/porta_turret/syndicate, -/turf/closed/wall/shuttle{ - dir = 8; - icon_state = "diagonalWall3" - }, +/turf/closed/wall/mineral/plastitanium, /area/shuttle/syndicate) "aad" = ( -/turf/closed/wall/shuttle{ - icon_state = "wall3" - }, +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "aae" = ( -/obj/structure/grille, -/obj/machinery/door/poddoor/shutters{ - id = "syndieshutters"; - name = "blast shutters" - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "aaf" = ( /turf/open/space, @@ -47,11 +36,23 @@ /area/shuttle/syndicate) "aag" = ( /obj/structure/table, -/obj/machinery/microwave, -/turf/open/floor/plasteel/shuttle/red, +/obj/item/weapon/storage/box/donkpockets{ + pixel_x = 3; + pixel_y = 3 + }, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "aah" = ( -/turf/open/floor/plasteel/shuttle/red, +/obj/item/device/radio/intercom{ + desc = "Talk through this. Evilly"; + freerange = 1; + frequency = 1213; + name = "Syndicate Intercom"; + pixel_y = -32; + subspace_transmission = 1; + syndie = 1 + }, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "aai" = ( /obj/structure/table, @@ -62,8 +63,11 @@ /turf/open/floor/plasteel/shuttle/red, /area/shuttle/syndicate) "aaj" = ( -/obj/machinery/computer/shuttle/syndicate, -/turf/open/floor/plasteel/shuttle/red, +/obj/structure/chair/comfy/beige{ + dir = 1; + icon_state = "comfychair" + }, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "aak" = ( /obj/structure/table, @@ -80,11 +84,11 @@ /area/shuttle/syndicate) "aam" = ( /obj/structure/table, -/obj/item/weapon/storage/box/donkpockets{ - pixel_x = 3; - pixel_y = 3 +/obj/item/stack/sheet/glass{ + amount = 10 }, -/turf/open/floor/plasteel/shuttle/red, +/obj/item/device/multitool, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "aan" = ( /obj/structure/chair/comfy/black{ @@ -120,10 +124,6 @@ /area/shuttle/syndicate) "aar" = ( /turf/open/space, -/turf/closed/wall/shuttle{ - dir = 2; - icon_state = "diagonalWall3" - }, /area/shuttle/syndicate) "aas" = ( /obj/machinery/door/window{ @@ -134,7 +134,10 @@ /area/shuttle/syndicate) "aat" = ( /turf/open/space, -/turf/closed/wall/shuttle{ +/obj/machinery/porta_turret/syndicate{ + dir = 6 + }, +/turf/closed/wall/mineral/plastitanium{ dir = 4; icon_state = "diagonalWall3" }, @@ -146,12 +149,10 @@ /turf/open/floor/plasteel/shuttle/red, /area/shuttle/syndicate) "aav" = ( -/obj/structure/table, -/obj/item/weapon/storage/box/zipties{ - pixel_x = 1; - pixel_y = 2 +/obj/structure/chair{ + dir = 8 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "aaw" = ( /obj/structure/chair{ @@ -191,8 +192,9 @@ /turf/open/floor/plasteel/shuttle/red, /area/shuttle/syndicate) "aaD" = ( -/obj/structure/closet/syndicate/nuclear, -/turf/open/floor/plasteel/shuttle/red, +/obj/structure/table, +/obj/item/device/aicard, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "aaE" = ( /obj/structure/chair/stool, @@ -200,12 +202,30 @@ /area/shuttle/syndicate) "aaF" = ( /obj/structure/table, -/obj/item/device/aicard, -/turf/open/floor/plasteel/shuttle/red, +/obj/item/weapon/c4{ + pixel_x = 2; + pixel_y = -5 + }, +/obj/item/weapon/c4{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/c4{ + pixel_x = 2; + pixel_y = -3 + }, +/obj/item/weapon/c4{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/weapon/c4{ + pixel_x = 3; + pixel_y = 3 + }, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "aaG" = ( /obj/machinery/door/poddoor{ - auto_close = 300; id = "smindicate"; name = "outer blast door" }, @@ -224,7 +244,7 @@ id = "syndicate"; name = "syndicate infiltrator"; roundstart_move = "syndicate_away"; - travelDir = 180; + port_angle = 180; width = 18 }, /obj/docking_port/stationary{ @@ -271,11 +291,13 @@ /area/shuttle/syndicate) "aaL" = ( /obj/machinery/door/window{ + base_state = "right"; dir = 4; + icon_state = "right"; name = "EVA Storage"; req_access_txt = "150" }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "aaM" = ( /obj/machinery/door/airlock/external{ @@ -334,8 +356,8 @@ /turf/open/space, /area/space) "aaU" = ( -/obj/machinery/recharge_station, -/turf/open/floor/plasteel/shuttle/red, +/obj/structure/bed/roller, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "aaV" = ( /obj/machinery/portable_atmospherics/canister/oxygen, @@ -393,11 +415,9 @@ /area/shuttle/syndicate) "abc" = ( /obj/structure/table, -/obj/item/weapon/weldingtool/largetank{ - pixel_y = 3 - }, -/obj/item/device/multitool, -/turf/open/floor/plasteel/shuttle/red, +/obj/item/weapon/storage/toolbox/syndicate, +/obj/item/weapon/crowbar/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "abd" = ( /obj/machinery/door/window{ @@ -405,14 +425,14 @@ name = "Infirmary"; req_access_txt = "150" }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "abe" = ( /obj/machinery/door/window/westright{ name = "Tool Storage"; req_access_txt = "150" }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "abf" = ( /obj/structure/table, @@ -421,10 +441,13 @@ /turf/open/floor/plasteel/shuttle/red, /area/shuttle/syndicate) "abg" = ( -/obj/machinery/sleeper/syndie{ - dir = 4 +/obj/structure/window/reinforced{ + dir = 1 }, -/turf/open/floor/plasteel/shuttle/red, +/obj/structure/table, +/obj/item/bodypart/r_arm/robot, +/obj/item/bodypart/l_arm/robot, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "abh" = ( /obj/machinery/door/window{ @@ -434,7 +457,7 @@ name = "Infirmary"; req_access_txt = "150" }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "abi" = ( /obj/machinery/door/window{ @@ -442,26 +465,36 @@ name = "Tool Storage"; req_access_txt = "150" }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "abj" = ( /obj/structure/table, -/obj/item/weapon/gun/syringe{ - pixel_x = 1; - pixel_y = 2 +/obj/structure/window/reinforced{ + dir = 8 }, -/turf/open/floor/plasteel/shuttle/red, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/firstaid/brute, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = -3; + pixel_y = -3 + }, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "abk" = ( /obj/structure/table, -/obj/item/weapon/reagent_containers/syringe/charcoal, -/obj/item/weapon/reagent_containers/syringe/charcoal{ - pixel_y = 2 +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = 3 }, -/obj/item/weapon/reagent_containers/syringe/charcoal{ - pixel_y = 4 +/obj/item/weapon/storage/firstaid/fire, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = -3; + pixel_y = -3 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "abl" = ( /obj/structure/window/reinforced{ @@ -486,7 +519,7 @@ pixel_y = 5 }, /obj/item/device/sbeacondrop/bomb, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "abo" = ( /obj/structure/table, @@ -497,7 +530,7 @@ /obj/item/weapon/grenade/syndieminibomb{ pixel_x = -1 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "abp" = ( /obj/structure/sink{ @@ -509,7 +542,7 @@ /obj/structure/mirror{ pixel_x = 30 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "abq" = ( /obj/machinery/telecomms/allinone{ @@ -519,7 +552,12 @@ /area/shuttle/syndicate) "abr" = ( /obj/machinery/nuclearbomb/syndicate, -/turf/open/floor/plasteel/shuttle/red, +/obj/machinery/door/window{ + dir = 1; + name = "Secure Storage"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "abs" = ( /turf/closed/wall, @@ -537,24 +575,20 @@ /area/engine/engineering) "abv" = ( /obj/structure/table, -/obj/item/weapon/circular_saw, /obj/item/weapon/cautery, -/obj/item/weapon/surgicaldrill, -/obj/item/robot_parts/l_arm, -/obj/item/robot_parts/r_arm, -/turf/open/floor/plasteel/shuttle/red, +/obj/item/weapon/scalpel, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "abw" = ( /obj/structure/table/optable, -/turf/open/floor/plasteel/shuttle/red, +/obj/item/weapon/surgical_drapes, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "abx" = ( /obj/structure/table, -/obj/item/weapon/scalpel, /obj/item/weapon/retractor, /obj/item/weapon/hemostat, -/obj/item/weapon/surgical_drapes, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "aby" = ( /obj/structure/shuttle/engine/heater, @@ -564,20 +598,27 @@ /turf/open/floor/plating, /area/shuttle/syndicate) "abz" = ( -/obj/structure/frame/computer, -/obj/item/weapon/paper{ - info = "

Teleporter Instruction


  1. Install circuit board, glass and wiring to complete Teleporter Control Console
  2. Use a screwdriver, wirecutter and screwdriver again on the Teleporter Station to connect it
  3. Set destination with Teleporter Control Computer
  4. Activate Teleporter Hub with Teleporter Station
"; - name = "Teleporter Instructions" - }, -/turf/open/floor/plasteel/shuttle/red, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "abA" = ( -/obj/machinery/teleport/station, -/turf/open/floor/plasteel/shuttle/red, +/obj/structure/table, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "abB" = ( -/obj/machinery/teleport/hub/syndicate, -/turf/open/floor/plasteel/shuttle/red, +/obj/structure/rack, +/obj/item/clothing/suit/space/syndicate/black/red, +/obj/item/clothing/head/helmet/space/syndicate/black/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "abC" = ( /turf/open/floor/plasteel/black, @@ -1394,7 +1435,7 @@ /area/space) "adL" = ( /turf/closed/wall/r_wall, -/area/turret_protected/ai{ +/area/ai_monitored/turret_protected/ai{ name = "\improper AI Core" }) "adM" = ( @@ -1509,12 +1550,12 @@ dir = 4 }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai{ +/area/ai_monitored/turret_protected/ai{ name = "\improper AI Core" }) "aec" = ( /turf/open/floor/bluegrid, -/area/turret_protected/ai{ +/area/ai_monitored/turret_protected/ai{ name = "\improper AI Core" }) "aed" = ( @@ -1523,7 +1564,7 @@ dir = 1 }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai{ +/area/ai_monitored/turret_protected/ai{ name = "\improper AI Core" }) "aee" = ( @@ -1543,7 +1584,7 @@ dir = 6 }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai{ +/area/ai_monitored/turret_protected/ai{ name = "\improper AI Core" }) "aeg" = ( @@ -1551,13 +1592,13 @@ dir = 8 }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai{ +/area/ai_monitored/turret_protected/ai{ name = "\improper AI Core" }) "aeh" = ( /turf/open/floor/engine{ name = "high pressure o2 floor"; - initial_gas_mix = "o2=500000" + initial_gas_mix = "o2=500000;TEMP=293.15" }, /area/engine/engineering) "aei" = ( @@ -1566,7 +1607,7 @@ }, /turf/open/floor/engine{ name = "high pressure o2 floor"; - initial_gas_mix = "o2=500000" + initial_gas_mix = "o2=500000;TEMP=293.15" }, /area/engine/engineering) "aej" = ( @@ -1640,7 +1681,7 @@ uses = 10 }, /turf/open/floor/bluegrid, -/area/turret_protected/ai{ +/area/ai_monitored/turret_protected/ai{ name = "\improper AI Core" }) "aeq" = ( @@ -1648,7 +1689,7 @@ network = "tcommsat" }, /turf/open/floor/plasteel, -/area/turret_protected/tcomeast{ +/area/ai_monitored/turret_protected/tcomeast{ name = "\improper Telecommunications Chamber" }) "aer" = ( @@ -1663,14 +1704,14 @@ }, /turf/open/floor/engine{ name = "high pressure o2 floor"; - initial_gas_mix = "o2=500000" + initial_gas_mix = "o2=500000;TEMP=293.15" }, /area/engine/engineering) "aet" = ( /obj/machinery/portable_atmospherics/canister/oxygen, /turf/open/floor/engine{ name = "high pressure o2 floor"; - initial_gas_mix = "o2=500000" + initial_gas_mix = "o2=500000;TEMP=293.15" }, /area/engine/engineering) "aeu" = ( @@ -1685,7 +1726,7 @@ }, /turf/open/floor/engine{ name = "high pressure o2 floor"; - initial_gas_mix = "o2=500000" + initial_gas_mix = "o2=500000;TEMP=293.15" }, /area/engine/engineering) "aev" = ( @@ -1744,7 +1785,7 @@ /area/engine/engineering) "aeB" = ( /turf/open/floor/plasteel/black, -/area/turret_protected/ai{ +/area/ai_monitored/turret_protected/ai{ name = "\improper AI Core" }) "aeC" = ( @@ -1757,7 +1798,7 @@ /obj/machinery/light/small, /turf/open/floor/engine{ name = "high pressure o2 floor"; - initial_gas_mix = "o2=500000" + initial_gas_mix = "o2=500000;TEMP=293.15" }, /area/engine/engineering) "aeE" = ( @@ -1797,9 +1838,9 @@ /turf/open/floor/plasteel, /area/engine/engineering) "aeI" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel, -/area/turret_protected/tcomeast{ +/area/ai_monitored/turret_protected/tcomeast{ name = "\improper Telecommunications Chamber" }) "aeJ" = ( @@ -1885,7 +1926,7 @@ /area/space) "aeU" = ( /turf/closed/wall/r_wall, -/area/turret_protected/tcomeast{ +/area/ai_monitored/turret_protected/tcomeast{ name = "\improper Telecommunications Chamber" }) "aeV" = ( @@ -1894,7 +1935,7 @@ dir = 5 }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai{ +/area/ai_monitored/turret_protected/ai{ name = "\improper AI Core" }) "aeW" = ( @@ -1912,7 +1953,7 @@ dir = 9 }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai{ +/area/ai_monitored/turret_protected/ai{ name = "\improper AI Core" }) "aeY" = ( @@ -2011,26 +2052,27 @@ layer = 4.1 }, /turf/open/floor/plasteel/black, -/area/turret_protected/tcomeast{ +/area/ai_monitored/turret_protected/tcomeast{ name = "\improper Telecommunications Chamber" }) "afm" = ( /obj/machinery/camera/autoname, /turf/open/floor/plasteel/black, -/area/turret_protected/tcomeast{ +/area/ai_monitored/turret_protected/tcomeast{ name = "\improper Telecommunications Chamber" }) "afn" = ( /obj/machinery/light{ dir = 1 }, +/obj/machinery/ntnet_relay, /turf/open/floor/plasteel/black, -/area/turret_protected/tcomeast{ +/area/ai_monitored/turret_protected/tcomeast{ name = "\improper Telecommunications Chamber" }) "afo" = ( /turf/open/floor/plasteel/black, -/area/turret_protected/tcomeast{ +/area/ai_monitored/turret_protected/tcomeast{ name = "\improper Telecommunications Chamber" }) "afp" = ( @@ -2038,7 +2080,7 @@ icon_state = "2-4" }, /turf/open/floor/bluegrid, -/area/turret_protected/ai{ +/area/ai_monitored/turret_protected/ai{ name = "\improper AI Core" }) "afq" = ( @@ -2129,19 +2171,19 @@ "afC" = ( /obj/machinery/telecomms/bus/preset_one/birdstation, /turf/open/floor/bluegrid, -/area/turret_protected/tcomeast{ +/area/ai_monitored/turret_protected/tcomeast{ name = "\improper Telecommunications Chamber" }) "afD" = ( /obj/machinery/blackbox_recorder, /turf/open/floor/bluegrid, -/area/turret_protected/tcomeast{ +/area/ai_monitored/turret_protected/tcomeast{ name = "\improper Telecommunications Chamber" }) "afE" = ( /obj/machinery/telecomms/broadcaster/preset_left/birdstation, /turf/open/floor/bluegrid, -/area/turret_protected/tcomeast{ +/area/ai_monitored/turret_protected/tcomeast{ name = "\improper Telecommunications Chamber" }) "afF" = ( @@ -2149,7 +2191,7 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai{ +/area/ai_monitored/turret_protected/ai{ name = "\improper AI Core" }) "afG" = ( @@ -2164,7 +2206,7 @@ dir = 10 }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai{ +/area/ai_monitored/turret_protected/ai{ name = "\improper AI Core" }) "afI" = ( @@ -2302,24 +2344,24 @@ "afX" = ( /obj/machinery/telecomms/server/presets/common/birdstation, /turf/open/floor/bluegrid, -/area/turret_protected/tcomeast{ +/area/ai_monitored/turret_protected/tcomeast{ name = "\improper Telecommunications Chamber" }) "afY" = ( /turf/open/floor/bluegrid, -/area/turret_protected/tcomeast{ +/area/ai_monitored/turret_protected/tcomeast{ name = "\improper Telecommunications Chamber" }) "afZ" = ( /obj/machinery/telecomms/hub/preset, /turf/open/floor/bluegrid, -/area/turret_protected/tcomeast{ +/area/ai_monitored/turret_protected/tcomeast{ name = "\improper Telecommunications Chamber" }) "aga" = ( /obj/machinery/announcement_system, /turf/open/floor/bluegrid, -/area/turret_protected/tcomeast{ +/area/ai_monitored/turret_protected/tcomeast{ name = "\improper Telecommunications Chamber" }) "agb" = ( @@ -2331,7 +2373,7 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai{ +/area/ai_monitored/turret_protected/ai{ name = "\improper AI Core" }) "agc" = ( @@ -2473,19 +2515,19 @@ "agv" = ( /obj/machinery/telecomms/processor/preset_one/birdstation, /turf/open/floor/bluegrid, -/area/turret_protected/tcomeast{ +/area/ai_monitored/turret_protected/tcomeast{ name = "\improper Telecommunications Chamber" }) "agw" = ( /obj/machinery/message_server, /turf/open/floor/bluegrid, -/area/turret_protected/tcomeast{ +/area/ai_monitored/turret_protected/tcomeast{ name = "\improper Telecommunications Chamber" }) "agx" = ( /obj/machinery/telecomms/receiver/preset_left/birdstation, /turf/open/floor/bluegrid, -/area/turret_protected/tcomeast{ +/area/ai_monitored/turret_protected/tcomeast{ name = "\improper Telecommunications Chamber" }) "agy" = ( @@ -2493,7 +2535,7 @@ dir = 4 }, /turf/open/floor/plasteel/black, -/area/turret_protected/aisat_interior{ +/area/ai_monitored/turret_protected/aisat_interior{ name = "\improper AI Core Lobby" }) "agz" = ( @@ -2501,7 +2543,7 @@ name = "Cyborg" }, /turf/open/floor/plasteel/black, -/area/turret_protected/aisat_interior{ +/area/ai_monitored/turret_protected/aisat_interior{ name = "\improper AI Core Lobby" }) "agA" = ( @@ -2509,7 +2551,7 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/black, -/area/turret_protected/aisat_interior{ +/area/ai_monitored/turret_protected/aisat_interior{ name = "\improper AI Core Lobby" }) "agB" = ( @@ -2517,18 +2559,18 @@ dir = 8 }, /turf/open/floor/plasteel/black, -/area/turret_protected/aisat_interior{ +/area/ai_monitored/turret_protected/aisat_interior{ name = "\improper AI Core Lobby" }) "agC" = ( /turf/closed/wall/r_wall, -/area/turret_protected/aisat_interior{ +/area/ai_monitored/turret_protected/aisat_interior{ name = "\improper AI Core Lobby" }) "agD" = ( /turf/open/floor/engine{ name = "high pressure plasma floor"; - initial_gas_mix = "plasma=240000" + initial_gas_mix = "plasma=240000;TEMP=293.15" }, /area/engine/engineering) "agE" = ( @@ -2537,7 +2579,7 @@ }, /turf/open/floor/engine{ name = "high pressure plasma floor"; - initial_gas_mix = "plasma=240000" + initial_gas_mix = "plasma=240000;TEMP=293.15" }, /area/engine/engineering) "agF" = ( @@ -2658,23 +2700,23 @@ "agP" = ( /obj/structure/window/reinforced, /turf/open/floor/plasteel/black, -/area/turret_protected/tcomeast{ +/area/ai_monitored/turret_protected/tcomeast{ name = "\improper Telecommunications Chamber" }) "agQ" = ( /obj/machinery/door/window/southright, /turf/open/floor/plasteel/black, -/area/turret_protected/tcomeast{ +/area/ai_monitored/turret_protected/tcomeast{ name = "\improper Telecommunications Chamber" }) "agR" = ( /turf/open/floor/plasteel/black, -/area/turret_protected/aisat_interior{ +/area/ai_monitored/turret_protected/aisat_interior{ name = "\improper AI Core Lobby" }) "agS" = ( /turf/open/floor/bluegrid, -/area/turret_protected/aisat_interior{ +/area/ai_monitored/turret_protected/aisat_interior{ name = "\improper AI Core Lobby" }) "agT" = ( @@ -2682,7 +2724,7 @@ icon_state = "1-2" }, /turf/open/floor/bluegrid, -/area/turret_protected/aisat_interior{ +/area/ai_monitored/turret_protected/aisat_interior{ name = "\improper AI Core Lobby" }) "agU" = ( @@ -2697,14 +2739,14 @@ }, /turf/open/floor/engine{ name = "high pressure plasma floor"; - initial_gas_mix = "plasma=240000" + initial_gas_mix = "plasma=240000;TEMP=293.15" }, /area/engine/engineering) "agX" = ( /obj/machinery/portable_atmospherics/canister/toxins, /turf/open/floor/engine{ name = "high pressure plasma floor"; - initial_gas_mix = "plasma=240000" + initial_gas_mix = "plasma=240000;TEMP=293.15" }, /area/engine/engineering) "agY" = ( @@ -2719,7 +2761,7 @@ }, /turf/open/floor/engine{ name = "high pressure plasma floor"; - initial_gas_mix = "plasma=240000" + initial_gas_mix = "plasma=240000;TEMP=293.15" }, /area/engine/engineering) "agZ" = ( @@ -2766,8 +2808,8 @@ "ahf" = ( /obj/structure/cable, /obj/machinery/power/generator{ - cold_dir = 8; - hot_dir = 4 + cold_dir = 4; + hot_dir = 8 }, /turf/open/floor/plasteel, /area/engine/engineering) @@ -2813,7 +2855,7 @@ "ahl" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, -/area/turret_protected/tcomeast{ +/area/ai_monitored/turret_protected/tcomeast{ name = "\improper Telecommunications Chamber" }) "ahm" = ( @@ -2821,7 +2863,7 @@ network = "tcommsat" }, /turf/open/floor/plasteel, -/area/turret_protected/tcomeast{ +/area/ai_monitored/turret_protected/tcomeast{ name = "\improper Telecommunications Chamber" }) "ahn" = ( @@ -2834,7 +2876,7 @@ layer = 4.1 }, /turf/open/floor/plasteel, -/area/turret_protected/tcomeast{ +/area/ai_monitored/turret_protected/tcomeast{ name = "\improper Telecommunications Chamber" }) "aho" = ( @@ -2845,12 +2887,12 @@ }, /obj/item/weapon/pen, /turf/open/floor/plasteel, -/area/turret_protected/tcomeast{ +/area/ai_monitored/turret_protected/tcomeast{ name = "\improper Telecommunications Chamber" }) "ahp" = ( /turf/open/floor/plasteel/neutral, -/area/turret_protected/tcomeast{ +/area/ai_monitored/turret_protected/tcomeast{ name = "\improper Telecommunications Chamber" }) "ahq" = ( @@ -2862,7 +2904,7 @@ dir = 4 }, /turf/open/floor/plasteel/black, -/area/turret_protected/aisat_interior{ +/area/ai_monitored/turret_protected/aisat_interior{ name = "\improper AI Core Lobby" }) "ahr" = ( @@ -2870,7 +2912,7 @@ icon_state = "4-8" }, /turf/open/floor/plasteel/black, -/area/turret_protected/aisat_interior{ +/area/ai_monitored/turret_protected/aisat_interior{ name = "\improper AI Core Lobby" }) "ahs" = ( @@ -2888,7 +2930,7 @@ icon_state = "tube1" }, /turf/open/floor/plasteel/black, -/area/turret_protected/aisat_interior{ +/area/ai_monitored/turret_protected/aisat_interior{ name = "\improper AI Core Lobby" }) "ahu" = ( @@ -2930,7 +2972,7 @@ /obj/machinery/light/small, /turf/open/floor/engine{ name = "high pressure plasma floor"; - initial_gas_mix = "plasma=240000" + initial_gas_mix = "plasma=240000;TEMP=293.15" }, /area/engine/engineering) "ahB" = ( @@ -3018,7 +3060,7 @@ "ahL" = ( /obj/item/device/radio/beacon, /turf/open/floor/plasteel/neutral, -/area/turret_protected/tcomeast{ +/area/ai_monitored/turret_protected/tcomeast{ name = "\improper Telecommunications Chamber" }) "ahM" = ( @@ -3026,7 +3068,7 @@ icon_state = "4-8" }, /turf/open/floor/plasteel/neutral, -/area/turret_protected/tcomeast{ +/area/ai_monitored/turret_protected/tcomeast{ name = "\improper Telecommunications Chamber" }) "ahN" = ( @@ -3034,7 +3076,7 @@ icon_state = "2-4" }, /turf/open/floor/plasteel/neutral, -/area/turret_protected/tcomeast{ +/area/ai_monitored/turret_protected/tcomeast{ name = "\improper Telecommunications Chamber" }) "ahO" = ( @@ -3046,7 +3088,7 @@ icon_state = "4-8" }, /turf/open/floor/plasteel/black, -/area/turret_protected/tcomeast{ +/area/ai_monitored/turret_protected/tcomeast{ name = "\improper Telecommunications Chamber" }) "ahP" = ( @@ -3054,7 +3096,7 @@ icon_state = "1-8" }, /turf/open/floor/plasteel/black, -/area/turret_protected/aisat_interior{ +/area/ai_monitored/turret_protected/aisat_interior{ name = "\improper AI Core Lobby" }) "ahQ" = ( @@ -3138,7 +3180,7 @@ "aic" = ( /obj/machinery/light, /turf/open/floor/plasteel/neutral, -/area/turret_protected/tcomeast{ +/area/ai_monitored/turret_protected/tcomeast{ name = "\improper Telecommunications Chamber" }) "aid" = ( @@ -3151,7 +3193,7 @@ icon_state = "0-8" }, /turf/open/floor/plasteel/neutral, -/area/turret_protected/tcomeast{ +/area/ai_monitored/turret_protected/tcomeast{ name = "\improper Telecommunications Chamber" }) "aie" = ( @@ -3162,7 +3204,7 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, -/area/turret_protected/tcomeast{ +/area/ai_monitored/turret_protected/tcomeast{ name = "\improper Telecommunications Chamber" }) "aif" = ( @@ -3171,7 +3213,7 @@ layer = 4.1 }, /turf/open/floor/plasteel/black, -/area/turret_protected/aisat_interior{ +/area/ai_monitored/turret_protected/aisat_interior{ name = "\improper AI Core Lobby" }) "aig" = ( @@ -3181,7 +3223,7 @@ }, /obj/structure/cable/cyan, /turf/open/floor/plasteel/black, -/area/turret_protected/aisat_interior{ +/area/ai_monitored/turret_protected/aisat_interior{ name = "\improper AI Core Lobby" }) "aih" = ( @@ -3229,7 +3271,7 @@ "ain" = ( /turf/open/floor/engine{ name = "high pressure co2 floor"; - initial_gas_mix = "co2=200000" + initial_gas_mix = "co2=200000;TEMP=293.15" }, /area/engine/engineering) "aio" = ( @@ -3238,7 +3280,7 @@ }, /turf/open/floor/engine{ name = "high pressure co2 floor"; - initial_gas_mix = "co2=200000" + initial_gas_mix = "co2=200000;TEMP=293.15" }, /area/engine/engineering) "aip" = ( @@ -3304,7 +3346,7 @@ req_access_txt = "61" }, /turf/open/floor/plasteel/neutral, -/area/turret_protected/tcomeast{ +/area/ai_monitored/turret_protected/tcomeast{ name = "\improper Telecommunications Chamber" }) "aiy" = ( @@ -3316,7 +3358,7 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, -/area/turret_protected/tcomeast{ +/area/ai_monitored/turret_protected/tcomeast{ name = "\improper Telecommunications Chamber" }) "aiz" = ( @@ -3353,14 +3395,14 @@ }, /turf/open/floor/engine{ name = "high pressure co2 floor"; - initial_gas_mix = "co2=200000" + initial_gas_mix = "co2=200000;TEMP=293.15" }, /area/engine/engineering) "aiD" = ( /obj/machinery/portable_atmospherics/canister/carbon_dioxide, /turf/open/floor/engine{ name = "high pressure co2 floor"; - initial_gas_mix = "co2=200000" + initial_gas_mix = "co2=200000;TEMP=293.15" }, /area/engine/engineering) "aiE" = ( @@ -3375,7 +3417,7 @@ }, /turf/open/floor/engine{ name = "high pressure co2 floor"; - initial_gas_mix = "co2=200000" + initial_gas_mix = "co2=200000;TEMP=293.15" }, /area/engine/engineering) "aiF" = ( @@ -3495,7 +3537,7 @@ /obj/machinery/light/small, /turf/open/floor/engine{ name = "high pressure co2 floor"; - initial_gas_mix = "co2=200000" + initial_gas_mix = "co2=200000;TEMP=293.15" }, /area/engine/engineering) "aiW" = ( @@ -3602,7 +3644,7 @@ "aji" = ( /turf/open/floor/engine{ name = "high pressure n2 floor"; - initial_gas_mix = "n2=400000" + initial_gas_mix = "n2=400000;TEMP=293.15" }, /area/engine/engineering) "ajj" = ( @@ -3617,7 +3659,7 @@ }, /turf/open/floor/engine{ name = "high pressure n2 floor"; - initial_gas_mix = "n2=400000" + initial_gas_mix = "n2=400000;TEMP=293.15" }, /area/engine/engineering) "ajk" = ( @@ -3725,14 +3767,14 @@ }, /turf/open/floor/engine{ name = "high pressure n2 floor"; - initial_gas_mix = "n2=400000" + initial_gas_mix = "n2=400000;TEMP=293.15" }, /area/engine/engineering) "ajx" = ( /obj/machinery/portable_atmospherics/canister/nitrogen, /turf/open/floor/engine{ name = "high pressure n2 floor"; - initial_gas_mix = "n2=400000" + initial_gas_mix = "n2=400000;TEMP=293.15" }, /area/engine/engineering) "ajy" = ( @@ -3741,7 +3783,7 @@ }, /turf/open/floor/engine{ name = "high pressure n2 floor"; - initial_gas_mix = "n2=400000" + initial_gas_mix = "n2=400000;TEMP=293.15" }, /area/engine/engineering) "ajz" = ( @@ -3802,7 +3844,7 @@ /obj/machinery/light/small, /turf/open/floor/engine{ name = "high pressure n2 floor"; - initial_gas_mix = "n2=400000" + initial_gas_mix = "n2=400000;TEMP=293.15" }, /area/engine/engineering) "ajI" = ( @@ -4047,7 +4089,7 @@ "akd" = ( /turf/open/floor/engine{ name = "high pressure air floor"; - initial_gas_mix = "o2=10000;n2=40015" + initial_gas_mix = "o2=10000;n2=40015;TEMP=293.15" }, /area/engine/engineering) "ake" = ( @@ -4074,7 +4116,7 @@ }) "akh" = ( /turf/closed/wall/r_wall, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "aki" = ( /turf/closed/wall, /area/gateway) @@ -4091,14 +4133,14 @@ }, /turf/open/floor/engine{ name = "high pressure air floor"; - initial_gas_mix = "o2=10000;n2=40015" + initial_gas_mix = "o2=10000;n2=40015;TEMP=293.15" }, /area/engine/engineering) "akm" = ( /obj/machinery/portable_atmospherics/canister/air, /turf/open/floor/engine{ name = "high pressure air floor"; - initial_gas_mix = "o2=10000;n2=40015" + initial_gas_mix = "o2=10000;n2=40015;TEMP=293.15" }, /area/engine/engineering) "akn" = ( @@ -4113,7 +4155,7 @@ }, /turf/open/floor/engine{ name = "high pressure air floor"; - initial_gas_mix = "o2=10000;n2=40015" + initial_gas_mix = "o2=10000;n2=40015;TEMP=293.15" }, /area/engine/engineering) "ako" = ( @@ -4206,11 +4248,11 @@ pixel_y = 0 }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "akA" = ( /obj/machinery/porta_turret/ai, /turf/open/floor/plasteel/black, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "akB" = ( /obj/structure/table, /obj/item/weapon/aiModule/reset, @@ -4218,14 +4260,14 @@ dir = 1 }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "akC" = ( /obj/structure/table, /obj/item/weapon/aiModule/core/full/asimov, /obj/item/weapon/aiModule/core/full/asimovpp, /obj/item/weapon/aiModule/core/full/corp, /turf/open/floor/plasteel/black, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "akD" = ( /obj/item/weapon/twohanded/required/kirbyplants{ icon_state = "plant-02"; @@ -4336,26 +4378,26 @@ icon_state = "4-8" }, /turf/open/floor/plasteel, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "akT" = ( /obj/structure/cable/cyan{ icon_state = "2-8" }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "akU" = ( /obj/machinery/door/airlock/command{ name = "command door"; req_access_txt = "19" }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "akV" = ( /turf/open/floor/plasteel/black, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "akW" = ( /turf/open/floor/bluegrid, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "akX" = ( /obj/machinery/computer/upload/borg, /obj/structure/window/reinforced{ @@ -4370,7 +4412,7 @@ req_access_txt = "55" }, /turf/open/floor/bluegrid, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "akY" = ( /obj/item/weapon/twohanded/required/kirbyplants{ anchored = 1; @@ -4382,7 +4424,7 @@ dir = 8 }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "akZ" = ( /turf/closed/wall/r_wall, /area/maintenance/fsmaint) @@ -4412,7 +4454,7 @@ /area/maintenance/fsmaint) "alf" = ( /obj/structure/table/wood, -/obj/item/clothing/under/blueskirt/redskirt, +/obj/item/clothing/under/skirt/red, /turf/open/floor/wood, /area/maintenance/fsmaint) "alg" = ( @@ -4529,7 +4571,7 @@ dir = 8 }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "alt" = ( /obj/machinery/computer/upload/ai, /obj/structure/window/reinforced{ @@ -4544,7 +4586,7 @@ req_access_txt = "55" }, /turf/open/floor/bluegrid, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "alu" = ( /obj/item/weapon/twohanded/required/kirbyplants{ anchored = 1; @@ -4553,7 +4595,7 @@ name = "incredibly heavy plant" }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "alv" = ( /obj/structure/cable/cyan{ icon_state = "1-2" @@ -4690,19 +4732,19 @@ icon_state = "0-2" }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "alN" = ( /obj/machinery/porta_turret/ai{ dir = 1 }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "alO" = ( /obj/structure/table, /obj/item/weapon/aiModule/supplied/freeform, /obj/machinery/light/small, /turf/open/floor/plasteel/black, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "alP" = ( /obj/structure/table, /obj/item/weapon/aiModule/core/full/tyrant, @@ -4714,7 +4756,7 @@ /obj/item/weapon/aiModule/supplied/protectStation, /obj/item/weapon/aiModule/supplied/safeguard, /turf/open/floor/plasteel/black, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "alQ" = ( /obj/structure/cable/cyan{ icon_state = "4-8" @@ -4892,7 +4934,7 @@ dir = 4 }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "amo" = ( /turf/closed/wall/r_wall, /area/crew_quarters/captain{ @@ -5694,7 +5736,7 @@ pixel_y = -29 }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai{ +/area/ai_monitored/turret_protected/ai{ name = "\improper AI Core" }) "aok" = ( @@ -5714,7 +5756,7 @@ dir = 8 }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai{ +/area/ai_monitored/turret_protected/ai{ name = "\improper AI Core" }) "aom" = ( @@ -5723,7 +5765,7 @@ icon_state = "tube1" }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai{ +/area/ai_monitored/turret_protected/ai{ name = "\improper AI Core" }) "aon" = ( @@ -6528,7 +6570,7 @@ /turf/open/floor/wood, /area/maintenance/fsmaint) "aqc" = ( -/obj/item/weapon/gun/projectile/shotgun/toy, +/obj/item/weapon/gun/ballistic/shotgun/toy, /turf/open/floor/wood, /area/maintenance/fsmaint) "aqd" = ( @@ -6903,16 +6945,10 @@ /turf/open/floor/wood, /area/maintenance/fsmaint) "ara" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s6"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium/overspace, /area/shuttle/supply) "arb" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall12"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/supply) "arc" = ( /turf/closed/wall/shuttle{ @@ -7340,7 +7376,7 @@ d2 = 2 }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai{ +/area/ai_monitored/turret_protected/ai{ name = "\improper AI Core" }) "asa" = ( @@ -7588,7 +7624,7 @@ pixel_y = 24 }, /turf/open/floor/bluegrid, -/area/turret_protected/ai{ +/area/ai_monitored/turret_protected/ai{ name = "\improper AI Core" }) "asG" = ( @@ -7922,13 +7958,13 @@ icon_state = "1-4" }, /turf/open/floor/bluegrid, -/area/turret_protected/ai{ +/area/ai_monitored/turret_protected/ai{ name = "\improper AI Core" }) "att" = ( /obj/machinery/light, /turf/open/floor/plasteel/black, -/area/turret_protected/ai{ +/area/ai_monitored/turret_protected/ai{ name = "\improper AI Core" }) "atu" = ( @@ -8016,7 +8052,7 @@ /turf/open/floor/plasteel/shuttle/white, /area/shuttle/supply) "atI" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Supply Shuttle Airlock"; req_access_txt = "31" }, @@ -8134,9 +8170,9 @@ "auc" = ( /obj/structure/disposalpipe/segment, /obj/structure/closet/wardrobe/grey, -/obj/item/weapon/storage/backpack/satchel_norm, -/obj/item/weapon/storage/backpack/satchel_norm, -/obj/item/weapon/storage/backpack/satchel_norm, +/obj/item/weapon/storage/backpack/satchel, +/obj/item/weapon/storage/backpack/satchel, +/obj/item/weapon/storage/backpack/satchel, /obj/item/weapon/storage/backpack/dufflebag, /obj/item/weapon/storage/backpack/dufflebag, /obj/item/weapon/storage/backpack/dufflebag, @@ -8349,13 +8385,13 @@ /obj/structure/cable/cyan{ icon_state = "1-8" }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /mob/living/simple_animal/bot/ed209{ name = "Officer Pingsky II"; radio_channel = "AI Private" }, /turf/open/floor/bluegrid, -/area/turret_protected/aisat_interior{ +/area/ai_monitored/turret_protected/aisat_interior{ name = "\improper AI Core Lobby" }) "auE" = ( @@ -8488,7 +8524,7 @@ /turf/open/floor/plating, /area/maintenance/fsmaint) "auU" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Supply Shuttle Airlock"; req_access_txt = "31" }, @@ -9027,10 +9063,7 @@ }, /area/shuttle/mining) "awi" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall12"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/mining) "awj" = ( /obj/structure/grille, @@ -9046,9 +9079,7 @@ }, /area/shuttle/mining) "awl" = ( -/turf/closed/wall/shuttle{ - icon_state = "swallc3" - }, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/shuttle/supply) "awm" = ( /turf/closed/wall/shuttle{ @@ -9705,7 +9736,7 @@ /turf/open/floor/wood, /area/maintenance/fsmaint) "ayj" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Mining Shuttle Airlock"; req_access_txt = "0" }, @@ -9715,7 +9746,7 @@ height = 5; id = "mining"; name = "mining shuttle"; - travelDir = 270; + port_angle = 270; width = 7 }, /obj/docking_port/stationary{ @@ -10603,7 +10634,7 @@ /turf/open/floor/plating, /area/maintenance/fsmaint) "aAw" = ( -/obj/item/clothing/tie/petcollar, +/obj/item/clothing/neck/petcollar, /obj/effect/spawner/lootdrop/maintenance{ lootcount = 3; name = "3maintenance loot spawner" @@ -10833,8 +10864,8 @@ /obj/machinery/light/small{ dir = 4 }, -/obj/item/weapon/storage/backpack/satchel_norm, -/obj/item/weapon/storage/backpack/satchel_norm, +/obj/item/weapon/storage/backpack/satchel, +/obj/item/weapon/storage/backpack/satchel, /turf/open/floor/wood, /area/crew_quarters/sleep) "aAZ" = ( @@ -10888,7 +10919,7 @@ /obj/item/weapon/wirerod, /obj/item/weapon/reagent_containers/syringe, /obj/item/weapon/restraints/handcuffs, -/obj/item/clothing/tie/stethoscope, +/obj/item/clothing/neck/stethoscope, /turf/open/floor/plasteel/white, /area/space) "aBj" = ( @@ -11850,16 +11881,10 @@ /turf/open/floor/plating, /area/maintenance/asmaint2) "aDn" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s6"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium/overspace, /area/shuttle/escape) "aDo" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall12"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/escape) "aDp" = ( /turf/closed/wall/shuttle{ @@ -12304,7 +12329,7 @@ /obj/structure/cable/cyan{ icon_state = "1-2" }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel, /area/hallway/primary/fore{ name = "\improper Command Hallway" @@ -12488,10 +12513,7 @@ /turf/open/floor/plasteel, /area/maintenance/asmaint2) "aEQ" = ( -/turf/closed/wall/shuttle{ - icon_state = "swallc4"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/shuttle/escape) "aER" = ( /obj/machinery/computer/emergency_shuttle, @@ -12621,7 +12643,7 @@ }) "aFh" = ( /obj/structure/table/wood, -/obj/item/weapon/gun/projectile/revolver/doublebarrel, +/obj/item/weapon/gun/ballistic/revolver/doublebarrel, /turf/open/floor/wood, /area/crew_quarters/bar{ name = "\improper Bar and Kitchen" @@ -13630,7 +13652,7 @@ /turf/open/floor/plasteel/black, /area/shuttle/escape) "aHX" = ( -/obj/machinery/door/airlock/shuttle, +/obj/machinery/door/airlock/titanium, /turf/open/floor/plasteel/shuttle/white, /area/shuttle/escape) "aHY" = ( @@ -13964,7 +13986,7 @@ /area/maintenance/asmaint2) "aIK" = ( /obj/structure/closet/chefcloset, -/obj/item/clothing/under/blueskirt, +/obj/item/clothing/under/skirt/blue, /obj/item/clothing/under/janimaid, /obj/item/clothing/under/sundress, /obj/item/clothing/glasses/sunglasses/reagent, @@ -13997,13 +14019,13 @@ /turf/open/floor/plasteel/black, /area/shuttle/escape) "aIP" = ( -/obj/machinery/door/airlock/shuttle, +/obj/machinery/door/airlock/titanium, /obj/docking_port/mobile/emergency{ dheight = 0; dir = 8; dwidth = 6; height = 18; - travelDir = 90; + port_angle = 90; width = 14; name = "Birdboat emergency shuttle" }, @@ -14023,7 +14045,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit) "aIR" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel, /area/engine/engineering) "aIS" = ( @@ -14654,7 +14676,7 @@ /turf/open/floor/wood, /area/maintenance/fsmaint) "aKw" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel, /area/teleporter{ name = "\improper Teleporter Room" @@ -14977,8 +14999,7 @@ /area/maintenance/asmaint2) "aLm" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/on{ - name = "acidproof air injector"; - unacidable = 1 + name = "acidproof air injector" }, /turf/open/floor/engine, /area/toxins/xenobiology) @@ -15264,13 +15285,13 @@ /turf/open/floor/plasteel, /area/bridge) "aLS" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva{ name = "E.V.A. Storage" }) "aLT" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel, /area/storage/primary{ name = "Tool Storage" @@ -15279,7 +15300,7 @@ /obj/effect/landmark{ name = "lightsout" }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/black, /area/bridge) "aLV" = ( @@ -15296,7 +15317,7 @@ /turf/open/floor/engine, /area/toxins/xenobiology) "aLX" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /mob/living/simple_animal/pet/dog/corgi/Ian, /turf/open/floor/carpet, /area/crew_quarters/heads) @@ -16527,9 +16548,9 @@ /area/medical/medbay) "aPb" = ( /obj/structure/closet/wardrobe/white/medical, -/obj/item/clothing/tie/stethoscope, -/obj/item/clothing/tie/stethoscope, -/obj/item/clothing/under/blueskirt, +/obj/item/clothing/neck/stethoscope, +/obj/item/clothing/neck/stethoscope, +/obj/item/clothing/under/skirt/blue, /obj/item/clothing/under/plaid_skirt/blue, /turf/open/floor/plasteel/white, /area/medical/medbay) @@ -17134,8 +17155,8 @@ /area/toxins/xenobiology) "aQz" = ( /obj/structure/rack, -/obj/item/weapon/gun/energy/gun/advtaser, -/obj/item/weapon/gun/energy/gun/advtaser{ +/obj/item/weapon/gun/energy/e_gun/advtaser, +/obj/item/weapon/gun/energy/e_gun/advtaser{ pixel_x = 5; pixel_y = -5 }, @@ -18069,7 +18090,7 @@ /obj/structure/cable/cyan{ icon_state = "1-2" }, -/obj/item/clothing/tie/stethoscope, +/obj/item/clothing/neck/stethoscope, /obj/machinery/camera/autoname{ icon_state = "camera"; dir = 4 @@ -18529,7 +18550,7 @@ name = "\improper South Hallway" }) "aTG" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel, /area/quartermaster/storage) "aTH" = ( @@ -18552,7 +18573,7 @@ name = "\improper South Hallway" }) "aTL" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel, /area/crew_quarters/sleep) "aTM" = ( @@ -18715,7 +18736,7 @@ "aUd" = ( /obj/structure/closet/wardrobe/red, /obj/machinery/light, -/obj/item/clothing/under/blueskirt/redskirt, +/obj/item/clothing/under/skirt/red, /obj/item/clothing/under/plaid_skirt, /turf/open/floor/plasteel/black, /area/security/warden) @@ -18729,18 +18750,11 @@ /area/security/warden) "aUf" = ( /obj/structure/rack, -/obj/item/weapon/gun/energy/temperature{ - name = "security temperature gun"; - origin_tech = "combat=2;materials=2;powerstorage=1;magnets=1"; - pin = /obj/item/device/firing_pin; +/obj/item/weapon/gun/energy/temperature/security{ pixel_x = -5; pixel_y = 5 }, -/obj/item/weapon/gun/energy/temperature{ - name = "security temperature gun"; - origin_tech = "combat=2;materials=2;powerstorage=1;magnets=1"; - pin = /obj/item/device/firing_pin - }, +/obj/item/weapon/gun/energy/temperature/security, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -19831,10 +19845,7 @@ }, /area/shuttle/arrival) "aWG" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall12"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/arrival) "aWH" = ( /obj/item/device/assembly/mousetrap/armed, @@ -20106,7 +20117,7 @@ /turf/open/floor/plasteel/showroomfloor, /area/maintenance/asmaint2) "aXy" = ( -/obj/item/clothing/tie/stethoscope, +/obj/item/clothing/neck/stethoscope, /turf/open/floor/plating, /area/maintenance/asmaint2) "aXz" = ( @@ -20546,7 +20557,7 @@ }) "aYD" = ( /obj/structure/table/wood, -/obj/item/weapon/gun/projectile/revolver/doublebarrel/improvised, +/obj/item/weapon/gun/ballistic/revolver/doublebarrel/improvised, /turf/open/floor/wood, /area/maintenance/fore{ name = "Security Maintenance" @@ -20913,7 +20924,7 @@ /turf/open/floor/plasteel/shuttle, /area/shuttle/arrival) "aZw" = ( -/obj/effect/spider/stickyweb, +/obj/structure/spider/stickyweb, /turf/open/floor/plating{ icon_plating = "asteroidplating"; icon_state = "asteroidplating" @@ -21076,7 +21087,7 @@ }, /area/shuttle/arrival) "aZP" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/wood, /area/crew_quarters/theatre) "aZQ" = ( @@ -21216,7 +21227,7 @@ id = "kitchen shutter"; name = "kitchen shutter" }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/machinery/newscaster{ pixel_y = 32 }, @@ -21309,7 +21320,7 @@ /turf/closed/wall, /area/medical/morgue) "bav" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ icon_state = "intact"; dir = 4 @@ -21378,7 +21389,7 @@ /obj/structure/cable/cyan{ icon_state = "2-4" }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel, /area/hallway/secondary/exit) "baA" = ( @@ -21661,7 +21672,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "bbc" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel, /area/crew_quarters/fitness) "bbd" = ( @@ -22379,16 +22390,10 @@ icon_state = "propulsion"; dir = 4 }, -/turf/closed/wall/shuttle{ - icon_state = "swall_s6"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium/overspace, /area/shuttle/transport) "bcP" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall12"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/transport) "bcQ" = ( /obj/structure/window/shuttle, @@ -22401,10 +22406,7 @@ /turf/open/floor/plating, /area/shuttle/transport) "bcS" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s10"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium/overspace, /area/shuttle/transport) "bcT" = ( /obj/machinery/light{ @@ -22467,14 +22469,14 @@ /turf/open/floor/plasteel/white, /area/maintenance/asmaint) "bdf" = ( -/obj/machinery/door/airlock/shuttle, +/obj/machinery/door/airlock/titanium, /turf/open/floor/plasteel/shuttle, /area/shuttle/transport) "bdg" = ( /turf/open/floor/plasteel/shuttle, /area/shuttle/transport) "bdh" = ( -/obj/machinery/door/airlock/shuttle, +/obj/machinery/door/airlock/titanium, /obj/docking_port/mobile{ dir = 8; dwidth = 2; @@ -22482,7 +22484,7 @@ id = "ferry"; name = "ferry shuttle"; roundstart_move = "ferry_away"; - travelDir = 180; + port_angle = 180; width = 5 }, /obj/docking_port/stationary{ @@ -22721,7 +22723,7 @@ /obj/structure/cable/cyan{ icon_state = "2-8" }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/white, /area/medical/genetics_cloning) "bdL" = ( @@ -22790,11 +22792,11 @@ /obj/structure/cable/cyan{ icon_state = "1-2" }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel, /area/security/brig) "bdS" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel, /area/medical/robotics) "bdT" = ( @@ -22927,7 +22929,7 @@ /obj/structure/cable/cyan{ icon_state = "1-8" }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) "bed" = ( @@ -22993,11 +22995,11 @@ icon_state = "intact"; dir = 4 }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel, /area/toxins/misc_lab) "bem" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/white, /area/medical/medbay) "ben" = ( @@ -23020,7 +23022,7 @@ name = "\improper South Hallway" }) "bep" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Arrivals Shuttle Airlock" }, /turf/open/floor/plating, @@ -23046,7 +23048,7 @@ height = 7; id = "arrival"; name = "arrival shuttle"; - travelDir = -90; + port_angle = -90; width = 9 }, /obj/docking_port/stationary{ @@ -23056,10 +23058,7 @@ name = "port bay 1"; width = 9 }, -/turf/closed/wall/shuttle{ - icon_state = "swall12"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/arrival) "bet" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden, @@ -23170,7 +23169,7 @@ /area/toxins/xenobiology) "beI" = ( /obj/structure/rack, -/obj/item/weapon/gun/energy/gun/dragnet, +/obj/item/weapon/gun/energy/e_gun/dragnet, /turf/open/floor/plasteel/bot, /area/security/warden) "beJ" = ( @@ -23180,11 +23179,11 @@ /obj/item/weapon/storage/box/rubbershot, /obj/item/weapon/storage/box/rubbershot, /obj/item/weapon/storage/box/rubbershot, -/obj/item/weapon/gun/projectile/shotgun/riot{ +/obj/item/weapon/gun/ballistic/shotgun/riot{ pixel_x = -5; pixel_y = 5 }, -/obj/item/weapon/gun/projectile/shotgun/riot, +/obj/item/weapon/gun/ballistic/shotgun/riot, /turf/open/floor/plasteel/bot, /area/security/warden) "beK" = ( @@ -23234,7 +23233,7 @@ lootcount = 3; name = "teargas clusterbuster spawner" }, -/obj/item/weapon/gun/energy/gun/hos, +/obj/item/weapon/gun/energy/e_gun/hos, /obj/item/weapon/storage/box/lethalshot, /obj/item/weapon/storage/box/lethalshot, /turf/open/floor/plasteel, @@ -23263,6 +23262,336 @@ /area/maintenance/fore{ name = "Security Maintenance" }) +"ZyZ" = ( +/obj/effect/landmark/xmastree/rdrod, +/turf/open/floor/plasteel/warnwhite{ + dir = 8 + }, +/area/toxins/lab) +"Zza" = ( +/turf/open/space, +/obj/machinery/porta_turret/syndicate{ + dir = 9 + }, +/turf/closed/wall/mineral/plastitanium{ + dir = 8; + icon_state = "diagonalWall3" + }, +/area/space) +"Zzb" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"Zzc" = ( +/obj/structure/grille, +/obj/machinery/door/poddoor/shutters{ + id = "syndieshutters"; + name = "blast shutters" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/space) +"Zzd" = ( +/turf/open/space, +/obj/machinery/porta_turret/syndicate{ + dir = 5 + }, +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" + }, +/area/space) +"Zze" = ( +/obj/structure/table, +/obj/item/device/flashlight/lamp{ + pixel_x = 4; + pixel_y = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"Zzf" = ( +/obj/machinery/computer/shuttle/syndicate, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"Zzg" = ( +/obj/structure/table, +/obj/machinery/button/door{ + id = "syndieshutters"; + name = "remote shutter control"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"Zzh" = ( +/obj/structure/frame/computer, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"Zzi" = ( +/obj/structure/closet/syndicate/personal, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"Zzj" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) +"Zzk" = ( +/obj/machinery/door/window{ + name = "Cockpit"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"Zzl" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) +"Zzm" = ( +/obj/structure/table, +/obj/item/stack/cable_coil, +/obj/item/weapon/crowbar/red, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"Zzn" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/zipties{ + pixel_x = 1; + pixel_y = 2 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"Zzo" = ( +/obj/machinery/porta_turret/syndicate{ + dir = 4 + }, +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/syndicate) +"Zzp" = ( +/obj/machinery/suit_storage_unit/syndicate, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"Zzq" = ( +/obj/structure/closet/syndicate/nuclear, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"Zzr" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"Zzs" = ( +/obj/machinery/door/poddoor{ + auto_close = 300; + id = "smindicate"; + name = "outer blast door" + }, +/obj/machinery/button/door{ + id = "smindicate"; + name = "external door control"; + pixel_x = -26; + pixel_y = 0; + req_access_txt = "150" + }, +/obj/docking_port/mobile{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 24; + id = "syndicate"; + name = "syndicate infiltrator"; + port_angle = 0; + roundstart_move = "syndicate_away"; + width = 18 + }, +/obj/docking_port/stationary{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 24; + id = "syndicate_nw"; + name = "northwest of station"; + turf_type = /turf/open/space; + width = 18 + }, +/turf/open/floor/plating, +/area/space) +"Zzt" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0 + }, +/turf/closed/wall/mineral/plastitanium, +/area/space) +"Zzu" = ( +/obj/machinery/door/window{ + name = "Ready Room"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"Zzv" = ( +/obj/machinery/door/window{ + dir = 4; + name = "EVA Storage"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"Zzw" = ( +/obj/machinery/door/airlock/external{ + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"Zzx" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" + }, +/area/space) +"Zzy" = ( +/obj/item/device/radio/intercom{ + desc = "Talk through this. Evilly"; + freerange = 1; + frequency = 1213; + name = "Syndicate Intercom"; + pixel_x = -32; + subspace_transmission = 1; + syndie = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"Zzz" = ( +/obj/machinery/sleeper/syndie{ + dir = 4 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"ZzA" = ( +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"ZzB" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"ZzC" = ( +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"ZzD" = ( +/obj/structure/table, +/obj/item/stack/medical/ointment, +/obj/item/stack/medical/bruise_pack, +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"ZzE" = ( +/obj/structure/table, +/obj/item/weapon/stock_parts/cell/high{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/stock_parts/cell/high, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"ZzF" = ( +/obj/structure/table, +/obj/item/weapon/screwdriver{ + pixel_y = 9 + }, +/obj/item/device/assembly/voice{ + pixel_y = 3 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"ZzG" = ( +/obj/structure/table, +/obj/item/weapon/wrench, +/obj/item/device/assembly/infra, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"ZzH" = ( +/obj/structure/table, +/obj/item/device/assembly/signaler, +/obj/item/device/assembly/signaler, +/obj/item/device/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/device/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"ZzI" = ( +/obj/structure/table, +/obj/item/weapon/weldingtool/largetank{ + pixel_y = 3 + }, +/obj/item/device/multitool, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"ZzJ" = ( +/obj/structure/sign/bluecross_2, +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/syndicate) +"ZzK" = ( +/obj/machinery/recharge_station, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"ZzL" = ( +/obj/machinery/porta_turret/syndicate{ + dir = 5 + }, +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/syndicate) +"ZzM" = ( +/obj/machinery/door/window{ + dir = 1; + name = "Surgery"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"ZzN" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"ZzO" = ( +/obj/structure/table, +/obj/item/weapon/surgicaldrill, +/obj/item/weapon/circular_saw, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"ZzP" = ( +/obj/machinery/telecomms/allinone{ + intercept = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"ZzQ" = ( +/turf/open/space, +/obj/machinery/porta_turret/syndicate{ + dir = 10 + }, +/turf/closed/wall/mineral/plastitanium{ + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) "ZzR" = ( /obj/machinery/light/small{ dir = 1 @@ -37931,16 +38260,16 @@ aaa aaa aaa aaa -aaa -aaz -aad -aad -aad -aad -aad -aad -aad -aar +Zza +aac +aac +aac +aac +ZzL +aac +aac +aac +Zzj aaa aaa aaa @@ -38182,19 +38511,19 @@ aaa aaa aaa aaa -aaa -aaz -aad -aad -aad -aad -aad -aad +Zza +aac +aac +aac +aac +aac +aac +Zzz aaU -aah +Zzz +ZzA abg -abg -aah +ZzO abv aby abH @@ -38439,19 +38768,19 @@ aaa aaa aaa aaa -aaa -aad -aaC -aaC -aaC -aaC -aaC -aad -aaU -aah -aah -aah -aah +Zzb +Zzp +Zzp +Zzp +Zzp +Zzp +aac +ZzA +ZzA +ZzA +ZzA +ZzM +ZzA abw aby abI @@ -38696,18 +39025,18 @@ aaa aaa aaa aaa -aaa -aad -aah -aah -aah -aah -aah -aad -aaV -aah -aah -aah +Zzb +aae +aae +aae +aae +aae +aac +ZzB +ZzA +ZzA +ZzA +ZzN abp abx aby @@ -38946,28 +39275,28 @@ aaa aaa aaa aaa -aaa +Zza aac -aad -aad -aad +aac +aac +Zzj aar aaa -aaa -aad -aah -aaE -aah -aah -aah -aad -aaW -aaE -aah +Zzb +aae +Zzr +aae +aae +aae +aac +ZzC +ZzA +ZzA +ZzA abj -aad -aad -aad +aac +aac +aac aat aaa aaa @@ -39203,26 +39532,26 @@ aaa aaa aaa aaa -aaa +Zzb aad aag aam -aao -aad +aac +aar aaa -aaa -aad +Zzb +Zzq aaD aaF -aaK -aah -aah -aad -aaX -aah -aah +aae +aae +aac +ZzD +ZzA +ZzA +ZzA abk -aad +aac aaa aaa aaa @@ -39460,28 +39789,28 @@ aaa aaa aaa aaa -aaa +Zzc aae -aah -aah -aah -aad -aad -aad -aad -aad -aad -aad +aae +aae +aac +aac +aac +aac +aac +aac +aac +Zzv aaL -aaO -aad -aad +aac +aac +ZzJ abd abh -aad -aad -aad -aar +aac +aac +aac +Zzj aaa aaa aaa @@ -39717,26 +40046,26 @@ aaa aaa aaa aaa -aaa +Zzc +Zze aae -aai -aah -aah -aad -aau -aaw -aaw -aaw -aaw -aah -aah -aah -aaS -aah -aah -aah -abl -abq +aae +aac +Zzm +aae +aae +aae +aae +aaP +aae +aae +Zzy +aae +aae +aae +aae +aae +aaP aby abH aaa @@ -39974,25 +40303,25 @@ aaa aaa aaa aaa -aaa -aae +Zzc +Zzf aaj -aan -aah -aas -aah -aah -aah -aah -aah -aah -aah -aah -aah -aah -aah -aah -abm +aae +Zzk +aae +aae +aae +aae +aae +Zzu +aae +aae +aae +aae +aae +aae +aae +aae abr aby abI @@ -40231,26 +40560,26 @@ aaa aaa aaa aaa -aaa +Zzc +Zzg aae -aak aah -aap -aad +aac +Zzn aav -aax -aax -aax -aax -aah -aah -aah -aah -aah -aah -aah -abl -aah +aav +aav +aav +aaP +aae +aae +aae +aae +aae +aae +aae +aae +aaP aby abJ aaa @@ -40488,28 +40817,28 @@ aaa aaa aaa aaa -aaa +Zzc +Zzh aae -aal -aah -aah -aad -aad -aad -aaA -aad -aad -aad -aaM +aae +aac +aac +aac +Zzo +aac +aac +aac +Zzw aaP -aad -aad +aac +aac +aac abe abi -aad -aad -aad -aat +aac +aac +aac +Zzl aaa aaa aaa @@ -40745,27 +41074,27 @@ aaa aaa aaa aaa -aaa -aad -aal -aah -aaq -aad +Zzb +Zzh +aae +Zzi +aac +Zzl aaa aaa aaa -aaa -aad -aah -aah -aah -aad -aaY -aah -aah +Zzb +aae +aae +aae +aac +ZzE +aae +aae +aae abn -aad -aaa +ZzP +Zzb aaa aaa aaa @@ -41002,32 +41331,32 @@ aaa aaa aaa aaa -aaa -aaf -aad -aad -aad -aat -aaa -aaa -aaa -aaa -aaG -aah -aah -aah -aad -aaZ -aaE -aah -abo -aad -aad -aad +Zzd +aac +aac +aac +Zzl aar aaa aaa aaa +Zzs +aae +aae +aae +aac +ZzF +aae +aae +aae +abo +aac +aac +aac +ZzQ +aaa +aaa +aaa aaa aaa aaa @@ -41268,17 +41597,17 @@ aaa aaa aaa aaa -aaa -aaH -aah -aah -aaQ -aad -aba -aah -aah -aah -aah +Zzt +aae +aae +aae +aac +ZzG +aae +aae +aae +aae +aae abz aby abH @@ -41525,17 +41854,17 @@ aaa aaa aaa aaa -aaa -aaI -aad -aad -aad -aad -abb -aaE -aah -aah -aah +Zzd +aac +aac +aac +aac +ZzH +Zzr +aae +aae +aae +aae abA aby abI @@ -41785,14 +42114,14 @@ aaa aaa aaa aaa -aaa -aaa -aad +Zzx +Zzb +ZzI abc -abf -aah -aah -aah +aae +ZzK +ZzK +aae abB aby abJ @@ -42043,16 +42372,16 @@ aaa aaa aaa aaa -aaa -aaI -aad -aad -aad -aad -aad -aad -aad -aat +Zzd +aac +aac +aac +aac +Zzo +aac +aac +aac +Zzl aaa aaa aaa @@ -46485,16 +46814,16 @@ aaa aaa aaa aaa -aDn -aEU +aDo +aDo aDZ -aHf +aDo aDZ aDZ aDZ aDZ aDZ -aMf +aDo aaa aaa aaa @@ -46741,7 +47070,7 @@ aaa aaa aaa aaa -aDn +aDo aEQ aFG aET @@ -46751,8 +47080,8 @@ aIN aIN aIN aHS -aMg -aMf +aEQ +aDo aaa aaa aaa @@ -46998,7 +47327,7 @@ aaa aaa aaa aaa -aDY +aDo aER aFH aES @@ -47259,7 +47588,7 @@ aDZ aES aES aES -aEa +aDo aHU aHU aHW @@ -47769,7 +48098,7 @@ aaa aaa aaa aaa -aEa +aDo aET aES aET @@ -47780,8 +48109,8 @@ aHW aHT aHT aMh -aMg -aMf +aEQ +aDo aaa aaa aaa @@ -48026,11 +48355,11 @@ aaa aaa aaa aaa -aDp -aEU +aDo +aDo bah aDZ -aDY +aDo aHT aHT aHT @@ -48295,7 +48624,7 @@ aHT aHT aHT aNc -aDY +aDo aaa aaa aaa @@ -49058,7 +49387,7 @@ aDo aEV aFJ aGt -aEa +aDo aHT aHT aJM @@ -49300,13 +49629,13 @@ aaa aaa aaa aaa -awh -awR +awi +awi awj -awR +awi awj -awR -aAC +awi +awi aaa aaa aaa @@ -49323,7 +49652,7 @@ aKz aHT aHT aHS -aEa +aDo aaa aaa aaa @@ -49567,20 +49896,20 @@ awi aaa aaa aaa -aDn -aEb -aEf -aEf -aEf +aDo +aDo +aDo +aDo +aDo aEQ aHT aHT -aJN -aEU +aDo +aDo aHh aDZ -aJN -aHj +aDo +aDo aaa aaa aaa @@ -50328,13 +50657,13 @@ aaa aaa aaa aaa -awk -awR +awi +awi awj ayj awj -awR -aAE +awi +awi aaa aaa aaa @@ -50342,12 +50671,12 @@ aDo aEe aEe aEe -aGv -aHi +aEQ +aDo aHX aHX -aGv -aHi +aDo +aEQ aLp aMi aNf @@ -50595,20 +50924,20 @@ aaa aaa aaa aaa -aDp -aEf -aEf -aEf -aGw -aHj +aDo +aDo +aDo +aDo +aDo +aDo aHT aHT -aDp -aGw -aEf -aEf -aEf -aHj +aDo +aDo +aDo +aDo +aDo +aDo aaa aaa aaa @@ -50852,20 +51181,20 @@ aaa aaa aaa aaa -aDq +aDo aEg aEX aFK -aGx -aDY +aDo +aDo aHX aIP -aDY -aDq +aDo +aDo aEg aEX aFK -aGx +aDo aaa aaa aaa @@ -51091,15 +51420,15 @@ aaa aaa aaa aaa -ara -arH -arH -arH -arH -arH -arH -arH -awl +arb +arb +arb +arb +arb +arb +arb +arb +arb aaa axJ aym @@ -51356,7 +51685,7 @@ atG atG atG aso -awm +arb awU axJ ayn @@ -51666,7 +51995,7 @@ aaa aaa bcO bdf -bdo +bcO aaa aaa aaa @@ -51924,7 +52253,7 @@ bcO bda bdg bdp -bdo +bcO aaa aaa aaa @@ -52384,7 +52713,7 @@ atH aup atH aso -awm +arb awW axK ayr @@ -52633,15 +52962,15 @@ aaa aaa aaa aaa -arc -arH -arH +arb +arb +arb ath atI -arH +arb auU avA -awo +arb aaa axK ays @@ -64741,7 +65070,7 @@ aJt aKn aHu aEF -aMC +ZyZ aMC aOu aPk diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm new file mode 100644 index 0000000000..8bf8c3211c --- /dev/null +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -0,0 +1,182047 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aaa" = ( +/turf/open/space, +/area/space) +"aab" = ( +/obj/docking_port/stationary{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 24; + id = "syndicate_ne"; + name = "northeast of station"; + turf_type = /turf/open/space; + width = 18 + }, +/turf/open/space, +/area/space) +"aac" = ( +/obj/docking_port/stationary{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 24; + id = "syndicate_n"; + name = "north of station"; + turf_type = /turf/open/space; + width = 18 + }, +/turf/open/space, +/area/space) +"aad" = ( +/obj/effect/landmark{ + name = "carpspawn" + }, +/turf/open/space, +/area/space) +"aae" = ( +/obj/structure/lattice, +/obj/structure/grille, +/turf/open/space, +/area/space) +"aaf" = ( +/obj/structure/lattice, +/turf/open/space, +/area/space) +"aag" = ( +/obj/structure/cable, +/obj/machinery/power/tracker, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/auxstarboard) +"aah" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/auxstarboard) +"aai" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/power/solar{ + id = "forestarboard"; + name = "Fore-Starboard Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/auxstarboard) +"aaj" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/auxstarboard) +"aak" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/auxstarboard) +"aal" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/auxstarboard) +"aam" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/auxstarboard) +"aan" = ( +/obj/structure/cable, +/obj/machinery/power/solar{ + id = "forestarboard"; + name = "Fore-Starboard Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/auxstarboard) +"aao" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable, +/turf/open/space, +/area/solar/auxstarboard) +"aap" = ( +/obj/docking_port/stationary/random{ + id = "pod_asteroid1"; + name = "asteroid" + }, +/turf/open/space, +/area/space) +"aaq" = ( +/obj/docking_port/stationary/random{ + id = "pod_asteroid2"; + name = "asteroid" + }, +/turf/open/space, +/area/space) +"aar" = ( +/obj/structure/lattice/catwalk, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/space, +/area/solar/auxstarboard) +"aas" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/pod_1) +"aat" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/pod_1) +"aau" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/pod_2) +"aav" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/pod_2) +"aaw" = ( +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/auxstarboard) +"aax" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"aay" = ( +/turf/closed/wall/mineral/plastitanium, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"aaz" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/status_display{ + density = 0; + layer = 3; + pixel_x = 32; + pixel_y = 0 + }, +/obj/machinery/computer/shuttle/pod{ + pixel_x = -32; + possible_destinations = "pod_asteroid1"; + shuttleId = "pod1" + }, +/turf/open/floor/plasteel/warnwhite/side, +/area/shuttle/pod_1) +"aaA" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/status_display{ + density = 0; + layer = 3; + pixel_x = 32; + pixel_y = 0 + }, +/obj/machinery/computer/shuttle/pod{ + pixel_x = -32; + possible_destinations = "pod_asteroid2"; + shuttleId = "pod2" + }, +/turf/open/floor/plasteel/warnwhite/side, +/area/shuttle/pod_2) +"aaB" = ( +/turf/closed/wall/mineral/plastitanium, +/area/mining_construction) +"aaC" = ( +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"aaD" = ( +/turf/closed/wall, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"aaE" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/item/device/radio/intercom{ + pixel_x = 25 + }, +/obj/item/weapon/storage/pod{ + pixel_x = -26 + }, +/turf/open/floor/plasteel/warnwhite/side, +/area/shuttle/pod_1) +"aaF" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/item/device/radio/intercom{ + pixel_x = 25 + }, +/obj/item/weapon/storage/pod{ + pixel_x = -26 + }, +/turf/open/floor/plasteel/warnwhite/side, +/area/shuttle/pod_2) +"aaG" = ( +/turf/closed/wall, +/area/mining_construction) +"aaH" = ( +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/space) +"aaI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 4; + locked = 0; + pixel_x = -23; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"aaJ" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"aaK" = ( +/obj/structure/shuttle/engine/propulsion/burst, +/turf/closed/wall/mineral/titanium, +/area/shuttle/pod_1) +"aaL" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Escape Pod Airlock" + }, +/obj/docking_port/mobile/pod{ + id = "pod1"; + name = "escape pod 1"; + port_angle = 180 + }, +/turf/open/floor/plasteel/warnwhite/end, +/area/shuttle/pod_1) +"aaM" = ( +/obj/structure/shuttle/engine/propulsion/burst, +/turf/closed/wall/mineral/titanium, +/area/shuttle/pod_2) +"aaN" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Escape Pod Airlock" + }, +/obj/docking_port/mobile/pod{ + id = "pod2"; + name = "escape pod 2"; + port_angle = 180 + }, +/turf/open/floor/plasteel/warnwhite/end, +/area/shuttle/pod_2) +"aaO" = ( +/obj/item/stack/cable_coil, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/auxstarboard) +"aaP" = ( +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"aaQ" = ( +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"aaR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"aaS" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"aaT" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"aaU" = ( +/obj/machinery/door/airlock/external{ + name = "External Airlock"; + req_access_txt = "13" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/mining_construction) +"aaV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/external{ + name = "Escape Pod 1" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"aaW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/external{ + name = "Escape Pod 2" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"aaX" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/closet/emcloset{ + anchored = 1 + }, +/obj/structure/sign/vacuum{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/bot, +/area/mining_construction) +"aaY" = ( +/obj/structure/fans/tiny, +/turf/open/floor/plasteel/warning/side, +/area/mining_construction) +"aaZ" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/bot, +/area/mining_construction) +"aba" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"abb" = ( +/obj/structure/sign/pods{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"abc" = ( +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"abd" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"abe" = ( +/obj/machinery/door/airlock/external{ + name = "External Airlock"; + req_access_txt = "13" + }, +/obj/structure/sign/directions/engineering{ + desc = "A sign that shows there are doors here. There are doors everywhere!"; + icon_state = "doors"; + name = "WARNING: EXTERNAL AIRLOCK"; + pixel_x = 32; + tag = "icon-doors" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/mining_construction) +"abf" = ( +/turf/closed/wall/r_wall, +/area/maintenance/auxsolarstarboard) +"abg" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/auxsolarstarboard) +"abh" = ( +/turf/open/floor/plasteel/neutral, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"abi" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 9; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; + tag = "icon-yellow (NORTHWEST)" + }, +/area/mining_construction) +"abj" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 1; + icon_state = "yellow"; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; + tag = "icon-yellow (NORTH)" + }, +/area/mining_construction) +"abk" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/yellow/side{ + dir = 5 + }, +/area/mining_construction) +"abl" = ( +/obj/structure/sign/electricshock, +/turf/closed/wall/r_wall, +/area/maintenance/auxsolarstarboard) +"abm" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating/warnplate{ + dir = 9 + }, +/area/maintenance/auxsolarstarboard) +"abn" = ( +/obj/machinery/power/smes, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/maintenance/auxsolarstarboard) +"abo" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_y = 26 + }, +/obj/machinery/camera{ + c_tag = "Solar - Fore Starboard"; + name = "solar camera" + }, +/turf/open/floor/plating/warnplate{ + dir = 5 + }, +/area/maintenance/auxsolarstarboard) +"abp" = ( +/obj/structure/shuttle/engine/propulsion{ + tag = "icon-propulsion (NORTH)"; + icon_state = "propulsion"; + dir = 1 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/shuttle/arrival) +"abq" = ( +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/arrival) +"abr" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/belt/utility, +/obj/item/weapon/wrench, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/mining_construction) +"abs" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/neutral, +/area/mining_construction) +"abt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/mining_construction) +"abu" = ( +/obj/machinery/door/airlock/engineering{ + name = "Fore Starboard Solar Access"; + req_access_txt = "10" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/maintenance/auxsolarstarboard) +"abv" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/maintenance/auxsolarstarboard) +"abw" = ( +/obj/machinery/power/terminal{ + icon_state = "term"; + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarstarboard) +"abx" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/maintenance/auxsolarstarboard) +"aby" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/door/airlock/external{ + name = "External Solar Access"; + req_access_txt = "10" + }, +/turf/open/floor/plasteel/warning/side, +/area/maintenance/auxsolarstarboard) +"abz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/structure/fans/tiny, +/turf/open/floor/plasteel/delivery, +/area/maintenance/auxsolarstarboard) +"abA" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/turf/open/space, +/area/solar/auxstarboard) +"abB" = ( +/obj/machinery/status_display{ + pixel_x = -32 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"abC" = ( +/obj/machinery/status_display{ + pixel_x = 32 + }, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/obj/machinery/camera{ + c_tag = "Arrivals Dock - Fore"; + dir = 8; + name = "arrivals camera" + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"abD" = ( +/obj/machinery/status_display{ + pixel_x = -32 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"abE" = ( +/obj/machinery/status_display{ + pixel_x = 32 + }, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/camera{ + c_tag = "Arrivals Shuttle - Fore Port"; + dir = 8; + name = "arrivals camera" + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"abF" = ( +/obj/structure/window/reinforced, +/obj/structure/shuttle/engine/heater{ + tag = "icon-heater (NORTH)"; + icon_state = "heater"; + dir = 1 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/shuttle/arrival) +"abG" = ( +/obj/machinery/status_display{ + pixel_x = -32 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Arrivals Shuttle - Fore Starboard"; + dir = 4; + name = "arrivals camera" + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"abH" = ( +/obj/machinery/status_display{ + pixel_x = 32 + }, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"abI" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/clipboard, +/obj/item/weapon/mining_voucher, +/obj/machinery/camera{ + c_tag = "Auxillary Construction - Storage"; + dir = 4; + name = "engineering camera" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/mining_construction) +"abJ" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/mining_construction) +"abK" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/mining_construction) +"abL" = ( +/obj/structure/sign/directions/engineering{ + desc = "A sign that shows there are doors here. There are doors everywhere!"; + icon_state = "doors"; + name = "WARNING: EXTERNAL AIRLOCK"; + pixel_x = 0; + tag = "icon-doors" + }, +/turf/closed/wall/r_wall, +/area/maintenance/auxsolarstarboard) +"abM" = ( +/obj/structure/cable/white, +/obj/machinery/power/apc{ + cell_type = 10000; + dir = 2; + name = "Fore Starboard Solar APC"; + pixel_y = -26 + }, +/turf/open/floor/plating/warnplate{ + dir = 10 + }, +/area/maintenance/auxsolarstarboard) +"abN" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/turf/open/floor/plating/warnplate, +/area/maintenance/auxsolarstarboard) +"abO" = ( +/obj/machinery/power/solar_control{ + id = "forestarboard"; + name = "Fore Starboard Solar Control"; + track = 0 + }, +/obj/structure/cable, +/turf/open/floor/plating/warnplate{ + dir = 6 + }, +/area/maintenance/auxsolarstarboard) +"abP" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/sign/directions/engineering{ + desc = "A sign that shows there are doors here. There are doors everywhere!"; + icon_state = "doors"; + name = "WARNING: EXTERNAL AIRLOCK"; + pixel_x = 0; + tag = "icon-doors" + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"abQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"abR" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/sign/vacuum, +/turf/open/floor/plating, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"abS" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"abT" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/sign/directions/engineering{ + desc = "A sign that shows there are doors here. There are doors everywhere!"; + icon_state = "doors"; + name = "WARNING: EXTERNAL AIRLOCK"; + tag = "icon-doors" + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"abU" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/arrival) +"abV" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/arrival) +"abW" = ( +/obj/structure/window/shuttle, +/obj/structure/grille, +/turf/open/floor/plating, +/area/shuttle/arrival) +"abX" = ( +/obj/structure/table/reinforced, +/obj/item/device/analyzer, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/mining_construction) +"abY" = ( +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/structure/closet/crate/internals, +/turf/open/floor/plasteel/bot, +/area/shuttle/arrival) +"abZ" = ( +/turf/open/floor/plasteel/delivery, +/area/shuttle/arrival) +"aca" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/toolbox/emergency, +/turf/open/floor/plasteel/bot, +/area/shuttle/arrival) +"acb" = ( +/obj/structure/table/reinforced, +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 + }, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plasteel/bot, +/area/shuttle/arrival) +"acc" = ( +/obj/structure/table/reinforced, +/obj/machinery/cell_charger, +/turf/open/floor/plasteel/bot, +/area/shuttle/arrival) +"acd" = ( +/obj/structure/rack, +/obj/item/weapon/storage/toolbox/emergency, +/obj/item/weapon/crowbar/red, +/turf/open/floor/plasteel/yellow/side{ + dir = 10 + }, +/area/mining_construction) +"ace" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/yellow/side, +/area/mining_construction) +"acf" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 6 + }, +/area/mining_construction) +"acg" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/mining_construction) +"ach" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/external{ + name = "External Docking Port" + }, +/turf/open/floor/plasteel/warning/side, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"aci" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/fans/tiny, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"acj" = ( +/obj/machinery/door/airlock/external{ + name = "External Docking Port" + }, +/turf/open/floor/plasteel/warning/side, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"ack" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"acl" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Arrival Shuttle Airlock"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/warnwhite/side, +/area/shuttle/arrival) +"acm" = ( +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/shuttle/arrival) +"acn" = ( +/turf/open/floor/plasteel/neutral, +/area/shuttle/arrival) +"aco" = ( +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/shuttle/arrival) +"acp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/engineering{ + name = "Auxiliary Construction Storage"; + req_access_txt = "32;47;48" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/mining_construction) +"acq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"acr" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"acs" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/status_display{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/shuttle/arrival) +"act" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/bot, +/area/shuttle/arrival) +"acu" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/ai_status_display{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/shuttle/arrival) +"acv" = ( +/obj/machinery/status_display, +/turf/closed/wall, +/area/mining_construction) +"acw" = ( +/obj/machinery/requests_console{ + department = "Construction"; + departmentType = 0; + name = "Construction RC"; + pixel_x = 0; + pixel_y = 32 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 9; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; + tag = "icon-yellow (NORTHWEST)" + }, +/area/mining_construction) +"acx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1; + icon_state = "yellow"; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; + tag = "icon-yellow (NORTH)" + }, +/area/mining_construction) +"acy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/mining_shuttle_beacon, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_y = 26 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 5 + }, +/area/mining_construction) +"acz" = ( +/turf/open/floor/plating/warnplate{ + dir = 9 + }, +/area/shuttle/auxillary_base) +"acA" = ( +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/shuttle/auxillary_base) +"acB" = ( +/turf/open/floor/plating/warnplate{ + dir = 5 + }, +/area/shuttle/auxillary_base) +"acC" = ( +/obj/structure/closet/emcloset, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"acD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"acE" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"acF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"acG" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"acH" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/landmark/latejoin, +/turf/open/floor/plasteel/bot, +/area/shuttle/arrival) +"acI" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/landmark/latejoin, +/turf/open/floor/plasteel/bot, +/area/shuttle/arrival) +"acJ" = ( +/obj/structure/flora/ausbushes/grassybush, +/obj/structure/flora/ausbushes/lavendergrass, +/obj/structure/flora/ausbushes/ppflowers, +/obj/structure/flora/ausbushes/sunnybush, +/obj/structure/window/shuttle, +/turf/open/floor/grass, +/area/shuttle/arrival) +"acK" = ( +/obj/machinery/vending/snack, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"acL" = ( +/obj/machinery/door/poddoor/shutters{ + id = "construction"; + name = "Construction Shutters" + }, +/turf/open/floor/plasteel/warning/side, +/area/mining_construction) +"acM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/mining_construction) +"acN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral, +/area/mining_construction) +"acO" = ( +/obj/structure/table/reinforced, +/obj/item/stack/packageWrap, +/obj/item/stack/cable_coil/white{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stack/cable_coil/white, +/obj/item/weapon/stock_parts/cell/high, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/mining_construction) +"acP" = ( +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/shuttle/auxillary_base) +"acQ" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/shuttle/auxillary_base) +"acR" = ( +/turf/open/floor/plating, +/area/shuttle/auxillary_base) +"acS" = ( +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/shuttle/auxillary_base) +"acT" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"acU" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"acV" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"acW" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"acX" = ( +/obj/structure/extinguisher_cabinet, +/turf/closed/wall/shuttle/smooth/nodiagonal, +/area/shuttle/arrival) +"acY" = ( +/obj/machinery/vending/cola, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"acZ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"ada" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"adb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"adc" = ( +/obj/machinery/door/poddoor/shutters{ + id = "construction"; + name = "Construction Shutters" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/mining_construction) +"add" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/mining_construction) +"ade" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral, +/area/mining_construction) +"adf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/reinforced, +/obj/item/weapon/clipboard, +/obj/item/weapon/folder/yellow, +/obj/item/device/assault_pod/mining, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/mining_construction) +"adg" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"adh" = ( +/obj/structure/flora/ausbushes/grassybush, +/obj/structure/flora/ausbushes/lavendergrass, +/obj/structure/flora/ausbushes/ywflowers, +/obj/structure/flora/ausbushes/fernybush, +/obj/structure/window/shuttle, +/turf/open/floor/grass, +/area/shuttle/arrival) +"adi" = ( +/obj/item/device/radio/beacon, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"adj" = ( +/obj/machinery/button/door{ + id = "construction"; + name = "Auxiliary Construction Shutters"; + pixel_x = -26; + req_access_txt = "32;47;48" + }, +/obj/machinery/light_switch{ + pixel_x = -38 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/camera{ + c_tag = "Auxillary Construction"; + dir = 4; + name = "engineering camera" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/mining_construction) +"adk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral, +/area/mining_construction) +"adl" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/mining_construction) +"adm" = ( +/turf/open/space, +/obj/machinery/porta_turret/syndicate{ + dir = 9 + }, +/turf/closed/wall/mineral/plastitanium{ + dir = 8; + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) +"adn" = ( +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/syndicate) +"ado" = ( +/obj/structure/grille, +/obj/machinery/door/poddoor/shutters{ + id = "syndieshutters"; + name = "blast shutters" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/shuttle/syndicate) +"adp" = ( +/turf/open/space, +/obj/machinery/porta_turret/syndicate{ + dir = 5 + }, +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) +"adq" = ( +/obj/structure/closet/firecloset, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"adr" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"ads" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"adt" = ( +/obj/machinery/vending/wallmed{ + name = "Emergency NanoMed"; + pixel_x = 0; + pixel_y = 0; + req_access_txt = "0"; + use_power = 0 + }, +/turf/closed/wall/shuttle/smooth/nodiagonal, +/area/shuttle/arrival) +"adu" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + dir = 8; + name = "Auxiliary Construction APC"; + pixel_x = -26; + pixel_y = 3 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/mining_construction) +"adv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/effect/landmark{ + name = "lightsout" + }, +/obj/machinery/holopad, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral, +/area/mining_construction) +"adw" = ( +/obj/machinery/door/airlock/external{ + name = "Auxiliary Base Airlock" + }, +/turf/open/floor/plating/warnplate/side, +/area/mining_construction) +"adx" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plating, +/area/shuttle/auxillary_base) +"ady" = ( +/obj/docking_port/mobile/auxillary_base{ + dheight = 4; + dir = 2; + dwidth = 4; + height = 9; + width = 9 + }, +/obj/machinery/bluespace_beacon, +/obj/machinery/computer/shuttle/auxillary_base{ + pixel_y = 0 + }, +/turf/closed/wall, +/area/shuttle/auxillary_base) +"adz" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Auxillary Base"; + dir = 4; + name = "engineering camera" + }, +/turf/open/floor/plating, +/area/shuttle/auxillary_base) +"adA" = ( +/obj/machinery/computer/med_data{ + icon_keyboard = "syndi_key" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/shuttle/syndicate) +"adB" = ( +/obj/machinery/computer/crew{ + icon_keyboard = "syndi_key" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/shuttle/syndicate) +"adC" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/red, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/shuttle/syndicate) +"adD" = ( +/obj/machinery/computer/shuttle/syndicate, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/shuttle/syndicate) +"adE" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/shuttle/syndicate) +"adF" = ( +/obj/machinery/computer/camera_advanced{ + icon_keyboard = "syndi_key" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/shuttle/syndicate) +"adG" = ( +/obj/machinery/computer/secure_data{ + icon_keyboard = "syndi_key" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/shuttle/syndicate) +"adH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"adI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"adJ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"adK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"adL" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall/mineral/titanium, +/area/shuttle/arrival) +"adM" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/shuttle/arrival) +"adN" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/clipboard, +/obj/item/toy/figure/assistant, +/turf/open/floor/plasteel/delivery, +/area/shuttle/arrival) +"adO" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder, +/obj/item/weapon/storage/pill_bottle/dice, +/turf/open/floor/plasteel/delivery, +/area/shuttle/arrival) +"adP" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/shuttle/arrival) +"adQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/mining_construction) +"adR" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral, +/area/mining_construction) +"adS" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/mining_construction) +"adT" = ( +/obj/structure/table/reinforced, +/obj/machinery/status_display{ + pixel_x = -32 + }, +/obj/item/weapon/clipboard, +/obj/item/toy/figure/syndie, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/shuttle/syndicate) +"adU" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/shuttle/syndicate) +"adV" = ( +/turf/open/floor/plasteel/black, +/area/shuttle/syndicate) +"adW" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/machinery/button/door{ + id = "syndieshutters"; + name = "Cockpit View Control"; + pixel_x = 32; + pixel_y = 32; + req_access_txt = "150" + }, +/turf/open/floor/plasteel/black, +/area/shuttle/syndicate) +"adX" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/shuttle/syndicate) +"adY" = ( +/obj/structure/table/reinforced, +/obj/machinery/ai_status_display{ + pixel_x = 32 + }, +/obj/item/weapon/storage/fancy/donut_box, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/shuttle/syndicate) +"adZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"aea" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"aeb" = ( +/obj/effect/landmark{ + name = "Observer-Start" + }, +/turf/open/floor/plasteel/neutral, +/area/shuttle/arrival) +"aec" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"aed" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering{ + name = "Auxiliary Construction Zone"; + req_access_txt = "32;47;48" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/mining_construction) +"aee" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/mining_construction) +"aef" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral, +/area/mining_construction) +"aeg" = ( +/obj/structure/table/reinforced, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 30 + }, +/obj/item/weapon/pipe_dispenser, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/mining_construction) +"aeh" = ( +/turf/open/floor/plasteel/vault, +/area/shuttle/syndicate) +"aei" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/bot, +/area/shuttle/arrival) +"aej" = ( +/turf/open/floor/plasteel/neutral/side, +/area/shuttle/arrival) +"aek" = ( +/turf/open/floor/plasteel/blue/corner, +/area/shuttle/arrival) +"ael" = ( +/turf/open/floor/plasteel/blue/side, +/area/shuttle/arrival) +"aem" = ( +/turf/open/floor/plasteel/blue/corner{ + tag = "icon-bluecorner (WEST)"; + icon_state = "bluecorner"; + dir = 8 + }, +/area/shuttle/arrival) +"aen" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/briefcase{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/secure/briefcase, +/turf/open/floor/plasteel/bot, +/area/shuttle/arrival) +"aeo" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering{ + name = "Auxiliary Construction Zone"; + req_access_txt = "32;47;48" + }, +/turf/open/floor/plasteel/warning/side, +/area/mining_construction) +"aep" = ( +/obj/structure/table/reinforced, +/obj/item/stack/sheet/plasteel{ + amount = 20 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/obj/item/weapon/storage/box/lights/mixed, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/mining_construction) +"aeq" = ( +/turf/open/floor/plating/warnplate{ + dir = 10 + }, +/area/shuttle/auxillary_base) +"aer" = ( +/turf/open/floor/plating/warnplate{ + dir = 6 + }, +/area/shuttle/auxillary_base) +"aes" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) +"aet" = ( +/obj/machinery/status_display, +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/syndicate) +"aeu" = ( +/obj/machinery/door/airlock/hatch{ + name = "Cockpit"; + req_access_txt = "150" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/shuttle/syndicate) +"aev" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) +"aew" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"aex" = ( +/obj/machinery/status_display, +/turf/closed/wall/mineral/titanium, +/area/shuttle/arrival) +"aey" = ( +/obj/machinery/door/airlock/glass_command{ + name = "Cockpit"; + req_access_txt = "19" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/shuttle/arrival) +"aez" = ( +/obj/machinery/ai_status_display, +/turf/closed/wall/mineral/titanium, +/area/shuttle/arrival) +"aeA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/newscaster{ + pixel_x = 0; + pixel_y = -32 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 10; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; + tag = "icon-yellow (SOUTHWEST)" + }, +/area/mining_construction) +"aeB" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/yellow/side, +/area/mining_construction) +"aeC" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/structure/rack, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/storage/toolbox/mechanical, +/obj/item/weapon/wrench, +/turf/open/floor/plasteel/yellow/side{ + dir = 6 + }, +/area/mining_construction) +"aeD" = ( +/turf/open/floor/plating/warnplate, +/area/shuttle/auxillary_base) +"aeE" = ( +/turf/open/space, +/obj/machinery/porta_turret/syndicate{ + dir = 10 + }, +/turf/closed/wall/mineral/plastitanium{ + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) +"aeF" = ( +/obj/structure/table/reinforced, +/obj/item/stack/cable_coil/white, +/obj/item/stack/cable_coil/white, +/obj/item/weapon/crowbar/red, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/shuttle/syndicate) +"aeG" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/shuttle/syndicate) +"aeH" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/box/handcuffs{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/zipties, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/shuttle/syndicate) +"aeI" = ( +/turf/open/space, +/obj/machinery/porta_turret/syndicate{ + dir = 6 + }, +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) +"aeJ" = ( +/obj/machinery/status_display{ + pixel_x = -32 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"aeK" = ( +/obj/machinery/status_display{ + pixel_x = 32 + }, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/camera{ + c_tag = "Arrivals Dock - Aft"; + dir = 8; + name = "arrivals camera" + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"aeL" = ( +/obj/machinery/status_display{ + pixel_x = -32 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"aeM" = ( +/obj/machinery/status_display{ + pixel_x = 32 + }, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/camera{ + c_tag = "Arrivals Shuttle - Aft Port"; + dir = 8; + name = "arrivals camera" + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"aeN" = ( +/turf/open/floor/plasteel/blue/side{ + dir = 8 + }, +/area/shuttle/arrival) +"aeO" = ( +/obj/structure/chair/office/dark, +/turf/open/floor/plasteel/blue/side{ + dir = 1 + }, +/area/shuttle/arrival) +"aeP" = ( +/turf/open/floor/plasteel/blue/side{ + tag = "icon-blue (EAST)"; + icon_state = "blue"; + dir = 4 + }, +/area/shuttle/arrival) +"aeQ" = ( +/obj/machinery/status_display{ + pixel_x = -32 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/camera{ + c_tag = "Arrivals Shuttle - Aft Starboard"; + dir = 4; + name = "arrivals camera" + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"aeR" = ( +/obj/machinery/status_display{ + pixel_x = 32 + }, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"aeS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/mining_construction) +"aeT" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/shuttle/syndicate) +"aeU" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/shuttle/syndicate) +"aeV" = ( +/obj/structure/frame/computer, +/turf/open/floor/plasteel/blue, +/area/shuttle/arrival) +"aeW" = ( +/obj/structure/frame/computer, +/turf/open/floor/plasteel/blue/side, +/area/shuttle/arrival) +"aeX" = ( +/turf/closed/wall, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"aeY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"aeZ" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/delivery, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"afa" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"afb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 5; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; + tag = "icon-neutral (NORTHEAST)" + }, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"afc" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/barricade/wooden, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"afd" = ( +/obj/machinery/vending/snack, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"afe" = ( +/obj/machinery/vending/cola, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"aff" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/structure/sign/poster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/vault{ + dir = 6 + }, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"afg" = ( +/obj/structure/chair/stool, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel/vault, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"afh" = ( +/obj/structure/table/wood, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plasteel/vault, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"afi" = ( +/obj/structure/chair/stool, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"afj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/vault, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"afk" = ( +/obj/machinery/porta_turret/syndicate{ + dir = 4 + }, +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/syndicate) +"afl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"afm" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning/side, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"afn" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"afo" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark{ + name = "blobstart" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"afp" = ( +/mob/living/simple_animal/cockroach, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"afq" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"afr" = ( +/obj/structure/door_assembly/door_assembly_mhatch, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning/side, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"afs" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/redyellow, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"aft" = ( +/turf/open/floor/plasteel/redyellow, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"afu" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"afv" = ( +/obj/machinery/suit_storage_unit/syndicate, +/turf/open/floor/plasteel/podhatch{ + dir = 5 + }, +/area/shuttle/syndicate) +"afw" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/shuttle/syndicate) +"afx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"afy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"afz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"afA" = ( +/turf/open/floor/plasteel/warning, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"afB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"afC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"afD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"afE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"afF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/barricade/wooden, +/turf/open/floor/plasteel/warning/side, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"afG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/redyellow, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"afH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/redyellow, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"afI" = ( +/obj/effect/landmark{ + name = "blobstart" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/redyellow, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"afJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/redyellow, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"afK" = ( +/obj/machinery/suit_storage_unit/syndicate, +/turf/open/floor/plasteel/podhatch{ + tag = "icon-podhatch (EAST)"; + icon_state = "podhatch"; + dir = 4 + }, +/area/shuttle/syndicate) +"afL" = ( +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/shuttle/syndicate) +"afM" = ( +/obj/machinery/door/poddoor{ + id = "smindicate"; + name = "outer blast door" + }, +/obj/machinery/button/door{ + id = "smindicate"; + name = "external door control"; + pixel_x = -26; + pixel_y = 0; + req_access_txt = "150" + }, +/obj/docking_port/mobile{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 24; + id = "syndicate"; + name = "syndicate infiltrator"; + port_angle = 0; + roundstart_move = "syndicate_away"; + width = 18 + }, +/obj/docking_port/stationary{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 24; + id = "syndicate_nw"; + name = "northwest of station"; + turf_type = /turf/open/space; + width = 18 + }, +/obj/structure/fans/tiny, +/turf/open/floor/plasteel/podhatch{ + tag = "icon-podhatch (NORTH)"; + icon_state = "podhatch"; + dir = 1 + }, +/area/shuttle/syndicate) +"afN" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0 + }, +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/syndicate) +"afO" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"afP" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"afQ" = ( +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"afR" = ( +/obj/structure/sign/pods, +/turf/closed/wall, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"afS" = ( +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"afT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/bot, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"afU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/bot, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"afV" = ( +/obj/structure/table_frame/wood, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/redyellow, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"afW" = ( +/obj/item/chair/stool/bar{ + pixel_y = -8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/vomit/old, +/turf/open/floor/plasteel/redyellow, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"afX" = ( +/obj/structure/chair/stool/bar, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/redyellow, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"afY" = ( +/obj/machinery/light/small, +/turf/open/floor/plasteel/redyellow, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"afZ" = ( +/obj/structure/chair/stool/bar, +/turf/open/floor/plasteel/redyellow, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"aga" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plasteel/redyellow, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"agb" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/shuttle/syndicate) +"agc" = ( +/obj/machinery/door/airlock/external{ + name = "Ready Room"; + req_access_txt = "150" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/shuttle/syndicate) +"agd" = ( +/obj/item/weapon/storage/toolbox/syndicate, +/obj/item/weapon/crowbar/red, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/podhatch{ + dir = 10 + }, +/area/shuttle/syndicate) +"age" = ( +/turf/open/floor/plasteel/podhatch, +/area/shuttle/syndicate) +"agf" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/podhatch{ + tag = "icon-podhatch (SOUTHEAST)"; + icon_state = "podhatch"; + dir = 6 + }, +/area/shuttle/syndicate) +"agg" = ( +/obj/structure/grille, +/turf/closed/wall/r_wall, +/area/space) +"agh" = ( +/obj/structure/table, +/obj/item/weapon/storage/briefcase, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"agi" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/arrival{ + tag = "icon-arrival (NORTHWEST)"; + icon_state = "arrival"; + dir = 9 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"agj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/arrival{ + dir = 1 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"agk" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/arrival{ + dir = 1 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"agl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/arrival{ + dir = 1 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"agm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_y = 26 + }, +/turf/open/floor/plasteel/arrival{ + dir = 1 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"agn" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/arrival{ + dir = 1 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"ago" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/arrival{ + dir = 1 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"agp" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/arrival{ + dir = 1 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"agq" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 1; + name = "Arrivals APC"; + pixel_x = 0; + pixel_y = 25 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Arrivals - Center Port"; + dir = 2; + name = "arrivals camera" + }, +/turf/open/floor/plasteel/arrival{ + dir = 1 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"agr" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/arrival{ + dir = 1 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"ags" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/arrival{ + dir = 1 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"agt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/turf/open/floor/plasteel/arrival{ + dir = 1 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"agu" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_y = 26 + }, +/turf/open/floor/plasteel/arrival{ + dir = 1 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"agv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/arrival{ + dir = 1 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"agw" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/arrival{ + dir = 1 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"agx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/arrival{ + dir = 1 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"agy" = ( +/turf/open/floor/plasteel/arrival{ + tag = "icon-arrival (NORTHEAST)"; + icon_state = "arrival"; + dir = 5 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"agz" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"agA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"agB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 5 + }, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"agC" = ( +/obj/structure/table/reinforced, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human, +/turf/open/floor/plasteel/delivery, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"agD" = ( +/obj/structure/table/reinforced, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plasteel/delivery, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"agE" = ( +/obj/structure/sign/nosmoking_2, +/turf/closed/wall, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"agF" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/reagent_containers/food/condiment/saltshaker{ + pixel_x = -8; + pixel_y = 5 + }, +/obj/item/weapon/reagent_containers/food/condiment/peppermill{ + pixel_x = -8 + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"agG" = ( +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/shuttle/syndicate) +"agH" = ( +/obj/machinery/door/airlock/external{ + name = "E.V.A. Gear Storage"; + req_access_txt = "150" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/shuttle/syndicate) +"agI" = ( +/obj/machinery/door/airlock/external{ + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"agJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"agK" = ( +/turf/open/floor/plasteel/arrival{ + tag = "icon-arrival (SOUTHWEST)"; + icon_state = "arrival"; + dir = 10 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"agL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/arrival, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"agM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/arrival, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"agN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/arrival, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"agO" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/arrival, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"agP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Arrivals - Port"; + dir = 1; + name = "arrivals camera" + }, +/turf/open/floor/plasteel/arrival, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"agQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/arrival, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"agR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/arrival, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"agS" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/arrival, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"agT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/arrival, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"agU" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/arrival/corner{ + tag = "icon-arrivalcorner (WEST)"; + icon_state = "arrivalcorner"; + dir = 8 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"agV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"agW" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/neutral, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"agX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"agY" = ( +/obj/effect/landmark{ + name = "lightsout" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"agZ" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/arrival/corner, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"aha" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Arrivals - Starboard"; + dir = 1; + name = "arrivals camera" + }, +/turf/open/floor/plasteel/arrival, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"ahb" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/arrival, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"ahc" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/arrival, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"ahd" = ( +/turf/open/floor/plasteel/arrival{ + tag = "icon-arrival (SOUTHEAST)"; + icon_state = "arrival"; + dir = 6 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"ahe" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/machinery/newscaster{ + pixel_x = 32 + }, +/obj/item/weapon/storage/toolbox/emergency, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"ahf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"ahg" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"ahh" = ( +/turf/open/floor/plasteel/red/side, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"ahi" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/bot, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"ahj" = ( +/turf/open/floor/plasteel/white/side, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"ahk" = ( +/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/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/red/side, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"ahl" = ( +/obj/structure/closet/crate/freezer/blood, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel/bot, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"ahm" = ( +/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/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/white/side, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"ahn" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/latex, +/obj/item/weapon/restraints/handcuffs, +/obj/item/clothing/mask/muzzle, +/turf/open/floor/plasteel/red/corner{ + dir = 8 + }, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"aho" = ( +/obj/machinery/suit_storage_unit/syndicate, +/turf/open/floor/plasteel/podhatch{ + tag = "icon-podhatch (SOUTHEAST)"; + icon_state = "podhatch"; + dir = 6 + }, +/area/shuttle/syndicate) +"ahp" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/shuttle/syndicate) +"ahq" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/shuttle/syndicate) +"ahr" = ( +/obj/structure/rack, +/obj/item/clothing/suit/space/syndicate/black/red, +/obj/item/clothing/head/helmet/space/syndicate/black/red, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/shuttle/syndicate) +"ahs" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) +"aht" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock{ + name = "Auxiliary Storage Closet"; + req_access_txt = "32" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"ahu" = ( +/turf/closed/wall, +/area/security/vacantoffice) +"ahv" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall, +/area/security/vacantoffice) +"ahw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/security/vacantoffice) +"ahx" = ( +/obj/machinery/door/airlock{ + name = "Auxiliary Office"; + req_access_txt = "32" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/security/vacantoffice) +"ahy" = ( +/obj/machinery/status_display, +/turf/closed/wall, +/area/security/vacantoffice) +"ahz" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"ahA" = ( +/turf/closed/wall, +/area/bridge{ + name = "Customs" + }) +"ahB" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall, +/area/bridge{ + name = "Customs" + }) +"ahC" = ( +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/bridge{ + name = "Customs" + }) +"ahD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/arrival{ + tag = "icon-arrival (WEST)"; + icon_state = "arrival"; + dir = 8 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"ahE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"ahF" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"ahG" = ( +/obj/machinery/vending/cigarette, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"ahH" = ( +/obj/machinery/vending/clothing, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"ahI" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel/bot, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"ahJ" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"ahK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/arrival{ + tag = "icon-arrival (EAST)"; + icon_state = "arrival"; + dir = 4 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"ahL" = ( +/turf/closed/wall, +/area/security/checkpoint2) +"ahM" = ( +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/checkpoint2) +"ahN" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall, +/area/security/checkpoint2) +"ahO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"ahP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"ahQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/structure/barricade/wooden, +/turf/open/floor/plasteel/warning/side, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"ahR" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/red, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"ahS" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/white, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"ahT" = ( +/turf/open/floor/plasteel/red, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"ahU" = ( +/turf/open/floor/plasteel/white, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"ahV" = ( +/obj/machinery/newscaster{ + pixel_x = 32; + pixel_y = 32 + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"ahW" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/barricade/wooden, +/turf/open/floor/plasteel/warning/side, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"ahX" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"ahY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/vomit/old, +/turf/open/floor/plasteel/red, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"ahZ" = ( +/obj/structure/table/optable, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/remains/human, +/turf/open/floor/plasteel/white/side{ + tag = "icon-whitehall (WEST)"; + icon_state = "whitehall"; + dir = 8 + }, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"aia" = ( +/obj/machinery/ai_status_display, +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/syndicate) +"aib" = ( +/turf/closed/wall, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aic" = ( +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aid" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aie" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/emergency, +/obj/item/weapon/tank/internals/oxygen, +/obj/item/weapon/wrench, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aif" = ( +/obj/structure/table/wood, +/obj/item/weapon/folder, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/grimy, +/area/security/vacantoffice) +"aig" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/grimy, +/area/security/vacantoffice) +"aih" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/photocopier, +/turf/open/floor/plasteel/grimy, +/area/security/vacantoffice) +"aii" = ( +/obj/structure/table/wood, +/obj/item/stack/packageWrap, +/obj/item/weapon/hand_labeler, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/grimy, +/area/security/vacantoffice) +"aij" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/briefcase, +/turf/open/floor/plasteel/grimy, +/area/security/vacantoffice) +"aik" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/security/vacantoffice) +"ail" = ( +/obj/machinery/light_switch{ + pixel_x = 26; + pixel_y = 26 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/security/vacantoffice) +"aim" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp, +/turf/open/floor/plasteel/grimy, +/area/security/vacantoffice) +"ain" = ( +/obj/structure/table/wood, +/obj/item/device/taperecorder, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/security/vacantoffice) +"aio" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/structure/sign/poster{ + icon_state = "poster22_legit"; + pixel_y = 32; + tag = "icon-poster22_legit" + }, +/turf/open/floor/carpet, +/area/security/vacantoffice) +"aip" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/delivery, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aiq" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/box/ids, +/turf/open/floor/plasteel/blue/side{ + dir = 9 + }, +/area/bridge{ + name = "Customs" + }) +"air" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/photocopier, +/turf/open/floor/plasteel/blue/side{ + dir = 1 + }, +/area/bridge{ + name = "Customs" + }) +"ais" = ( +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/machinery/keycard_auth{ + pixel_x = 26; + pixel_y = 26 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/blue/side{ + tag = "icon-blue (NORTHEAST)"; + icon_state = "blue"; + dir = 5 + }, +/area/bridge{ + name = "Customs" + }) +"ait" = ( +/obj/machinery/ai_status_display, +/turf/closed/wall, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"aiu" = ( +/obj/machinery/status_display, +/turf/closed/wall, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"aiv" = ( +/obj/structure/filingcabinet/security, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/checkpoint2) +"aiw" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/table/reinforced, +/obj/item/weapon/crowbar, +/obj/item/weapon/restraints/handcuffs, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/checkpoint2) +"aix" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/book/manual/wiki/security_space_law, +/obj/item/device/radio, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/checkpoint2) +"aiy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"aiz" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"aiA" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"aiB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"aiC" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"aiD" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"aiE" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/reagent_containers/blood/random{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/reagent_containers/blood/random, +/turf/open/floor/plasteel/bot, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"aiF" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"aiG" = ( +/obj/structure/closet/secure_closet/freezer/kitchen, +/turf/open/floor/plasteel/bot, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"aiH" = ( +/obj/structure/rack, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/storage/box/donkpockets, +/obj/item/weapon/kitchen/knife/butcher, +/obj/item/stack/packageWrap, +/turf/open/floor/plasteel/bot, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"aiI" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/clothing/suit/apron/chef, +/obj/item/clothing/head/chefhat, +/turf/open/floor/plasteel/bot, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"aiJ" = ( +/obj/structure/table, +/obj/machinery/microwave{ + desc = "Cooks and boils stuff, somehow."; + pixel_x = -3; + pixel_y = 5 + }, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/bot, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"aiK" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"aiL" = ( +/obj/structure/table_frame, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"aiM" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/retractor, +/obj/item/weapon/hemostat, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"aiN" = ( +/obj/machinery/sleeper/syndie{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/shuttle/syndicate) +"aiO" = ( +/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{ + pixel_x = 6; + pixel_y = 0 + }, +/obj/item/weapon/reagent_containers/glass/bottle/charcoal{ + pixel_x = -3 + }, +/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{ + pixel_x = -3; + pixel_y = 8 + }, +/obj/item/weapon/reagent_containers/glass/bottle/charcoal{ + pixel_x = 6; + pixel_y = 8 + }, +/obj/item/weapon/reagent_containers/syringe/epinephrine{ + pixel_x = 3; + pixel_y = -2 + }, +/obj/item/weapon/reagent_containers/syringe/epinephrine{ + pixel_x = 4; + pixel_y = 1 + }, +/obj/item/weapon/reagent_containers/syringe/epinephrine{ + pixel_x = -2; + pixel_y = 5 + }, +/obj/item/weapon/reagent_containers/syringe/epinephrine{ + pixel_x = 2; + pixel_y = 8 + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/shuttle/syndicate) +"aiP" = ( +/obj/structure/table/reinforced, +/obj/item/stack/medical/gauze, +/obj/item/stack/medical/bruise_pack, +/obj/item/stack/medical/ointment, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/shuttle/syndicate) +"aiQ" = ( +/obj/item/weapon/stock_parts/cell/high{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/stock_parts/cell/high, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/shuttle/syndicate) +"aiR" = ( +/obj/item/weapon/screwdriver{ + pixel_y = 9 + }, +/obj/item/device/assembly/voice{ + pixel_y = 3 + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/shuttle/syndicate) +"aiS" = ( +/obj/item/weapon/wrench, +/obj/item/device/assembly/infra, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/shuttle/syndicate) +"aiT" = ( +/obj/item/device/assembly/signaler, +/obj/item/device/assembly/signaler, +/obj/item/device/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/device/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/shuttle/syndicate) +"aiU" = ( +/obj/item/weapon/weldingtool/largetank{ + pixel_y = 3 + }, +/obj/item/device/multitool, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/shuttle/syndicate) +"aiV" = ( +/obj/structure/cable, +/obj/machinery/power/tracker, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/auxport) +"aiW" = ( +/turf/closed/wall/r_wall, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aiX" = ( +/turf/closed/wall, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"aiY" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"aiZ" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aja" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"ajb" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"ajc" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/structure/sign/poster{ + icon_state = "poster16_legit"; + pixel_x = -32; + pixel_y = 0; + tag = "icon-poster16_legit" + }, +/turf/open/floor/plasteel/grimy, +/area/security/vacantoffice) +"ajd" = ( +/turf/open/floor/plasteel/grimy, +/area/security/vacantoffice) +"aje" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/grimy, +/area/security/vacantoffice) +"ajf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/security/vacantoffice) +"ajg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/wood, +/area/security/vacantoffice) +"ajh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/security/vacantoffice) +"aji" = ( +/obj/structure/table/wood, +/obj/item/weapon/folder/blue{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/weapon/folder/yellow, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/grimy, +/area/security/vacantoffice) +"ajj" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/security/vacantoffice) +"ajk" = ( +/obj/machinery/ai_status_display{ + pixel_x = 32 + }, +/obj/structure/frame/computer, +/turf/open/floor/carpet, +/area/security/vacantoffice) +"ajl" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"ajm" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + dir = 8; + name = "Customs Desk APC"; + pixel_x = -26; + pixel_y = 0 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 8 + }, +/area/bridge{ + name = "Customs" + }) +"ajn" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/bridge{ + name = "Customs" + }) +"ajo" = ( +/obj/machinery/light_switch{ + pixel_x = 26; + pixel_y = 26 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/side{ + tag = "icon-blue (EAST)"; + icon_state = "blue"; + dir = 4 + }, +/area/bridge{ + name = "Customs" + }) +"ajp" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_command{ + cyclelinkeddir = 0; + name = "Customs Desk"; + req_access_txt = "19" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/bridge{ + name = "Customs" + }) +"ajq" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/blue/corner{ + tag = "icon-bluecorner (WEST)"; + icon_state = "bluecorner"; + dir = 8 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"ajr" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp, +/obj/machinery/camera{ + c_tag = "Arrivals - Center"; + dir = 2; + name = "arrivals camera" + }, +/turf/open/floor/plasteel/grimy, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"ajs" = ( +/obj/structure/chair/comfy/brown, +/turf/open/floor/plasteel/grimy, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"ajt" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-18" + }, +/turf/open/floor/plasteel/grimy, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"aju" = ( +/obj/structure/chair/comfy/brown, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel/grimy, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"ajv" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/fancy/donut_box, +/turf/open/floor/plasteel/grimy, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"ajw" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/red/corner, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"ajx" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_security{ + name = "Security Checkpoint"; + req_access_txt = "63" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/security/checkpoint2) +"ajy" = ( +/obj/machinery/light_switch{ + pixel_x = -26; + pixel_y = 26 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/checkpoint2) +"ajz" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/security/checkpoint2) +"ajA" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + dir = 4; + name = "Security Checkpoint APC"; + pixel_x = 26; + pixel_y = 0 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/checkpoint2) +"ajB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"ajC" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"ajD" = ( +/obj/structure/girder, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"ajE" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"ajF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/rack, +/obj/item/weapon/crowbar/red, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"ajG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/obj/item/device/flashlight, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plasteel/neutral/side{ + dir = 6 + }, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"ajH" = ( +/obj/structure/sign/poster, +/turf/closed/wall, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"ajI" = ( +/obj/structure/bed/roller, +/obj/machinery/iv_drip, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/shuttle/syndicate) +"ajJ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/auxport) +"ajK" = ( +/obj/structure/reflector/single, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"ajL" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"ajM" = ( +/obj/structure/reflector/box{ + tag = "icon-reflector_box (EAST)"; + icon_state = "reflector_box"; + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"ajN" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"ajO" = ( +/obj/machinery/camera{ + c_tag = "Atmospherics - Reflector Box"; + name = "atmospherics camera" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"ajP" = ( +/obj/structure/reflector/single{ + tag = "icon-reflector (WEST)"; + icon_state = "reflector"; + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"ajQ" = ( +/obj/structure/table/wood, +/obj/structure/sign/barsign{ + pixel_y = 32 + }, +/obj/structure/sign/poster{ + pixel_x = -32 + }, +/obj/item/weapon/wirerod, +/obj/item/weapon/wrench, +/obj/item/clothing/under/waiter, +/obj/item/clothing/tie/waistcoat, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"ajR" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"ajS" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/box/matches{ + pixel_x = -3; + pixel_y = 5 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"ajT" = ( +/obj/machinery/status_display{ + pixel_y = 32 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"ajU" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"ajV" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"ajW" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/briefcase, +/obj/item/device/taperecorder, +/turf/open/floor/wood{ + icon_state = "wood-broken4" + }, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"ajX" = ( +/obj/structure/table/wood, +/obj/item/weapon/electronics/firelock, +/obj/item/weapon/electronics/airlock, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"ajY" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"ajZ" = ( +/obj/machinery/status_display{ + pixel_y = 32 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"aka" = ( +/obj/structure/table/wood, +/obj/item/weapon/clipboard, +/obj/item/weapon/electronics/apc, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"akb" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"akc" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"akd" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + tag = "icon-connector_map (WEST)"; + icon_state = "connector_map"; + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"ake" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/turf/open/floor/plasteel/grimy, +/area/security/vacantoffice) +"akf" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/security/vacantoffice) +"akg" = ( +/obj/structure/table/wood, +/obj/item/weapon/folder, +/obj/item/weapon/pen, +/turf/open/floor/carpet, +/area/security/vacantoffice) +"akh" = ( +/turf/open/floor/wood, +/area/security/vacantoffice) +"aki" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/mob/living/simple_animal/cockroach, +/turf/open/floor/wood, +/area/security/vacantoffice) +"akj" = ( +/obj/structure/table/wood, +/obj/item/device/paicard, +/turf/open/floor/plasteel/grimy, +/area/security/vacantoffice) +"akk" = ( +/turf/open/floor/carpet, +/area/security/vacantoffice) +"akl" = ( +/obj/machinery/status_display{ + pixel_x = 32 + }, +/obj/structure/frame/computer, +/turf/open/floor/carpet, +/area/security/vacantoffice) +"akm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"akn" = ( +/obj/machinery/computer/crew, +/obj/machinery/ai_status_display{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 10 + }, +/area/bridge{ + name = "Customs" + }) +"ako" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral, +/area/bridge{ + name = "Customs" + }) +"akp" = ( +/obj/structure/table/reinforced, +/obj/item/stack/packageWrap, +/obj/item/weapon/hand_labeler, +/turf/open/floor/plasteel/blue/side{ + tag = "icon-blue (EAST)"; + icon_state = "blue"; + dir = 4 + }, +/area/bridge{ + name = "Customs" + }) +"akq" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/turf/open/floor/plating, +/area/bridge{ + name = "Customs" + }) +"akr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/blue/corner{ + tag = "icon-bluecorner (WEST)"; + icon_state = "bluecorner"; + dir = 8 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"aks" = ( +/obj/structure/chair/comfy/brown{ + icon_state = "comfychair"; + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"akt" = ( +/turf/open/floor/carpet, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"aku" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/carpet, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"akv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"akw" = ( +/obj/structure/chair/comfy/brown{ + icon_state = "comfychair"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"akx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"aky" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/red/corner, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"akz" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/turf/open/floor/plating, +/area/security/checkpoint2) +"akA" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/checkpoint2) +"akB" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral, +/area/security/checkpoint2) +"akC" = ( +/obj/machinery/computer/prisoner, +/obj/machinery/status_display{ + pixel_x = 32 + }, +/obj/machinery/camera{ + c_tag = "Security Post - Arrivals"; + dir = 8; + name = "security camera" + }, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/checkpoint2) +"akD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"akE" = ( +/obj/machinery/computer/arcade, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"akF" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 1; + name = "Fore Starboard Maintenance APC"; + pixel_x = 0; + pixel_y = 25 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/stool/bar, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"akG" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"akH" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/redyellow, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"akI" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/redyellow, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"akJ" = ( +/obj/structure/table/wood, +/obj/item/clothing/suit/syndicatefake, +/obj/item/clothing/head/syndicatefake, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/redyellow, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"akK" = ( +/turf/open/floor/plasteel/podhatch{ + dir = 9 + }, +/area/shuttle/syndicate) +"akL" = ( +/turf/open/floor/plasteel/podhatch{ + tag = "icon-podhatch (NORTH)"; + icon_state = "podhatch"; + dir = 1 + }, +/area/shuttle/syndicate) +"akM" = ( +/obj/machinery/door/airlock/hatch{ + req_access_txt = "150" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/shuttle/syndicate) +"akN" = ( +/turf/open/floor/plasteel/podhatch{ + dir = 5 + }, +/area/shuttle/syndicate) +"akO" = ( +/obj/structure/closet/syndicate/personal, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/shuttle/syndicate) +"akP" = ( +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"akQ" = ( +/obj/structure/reflector/double, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"akR" = ( +/obj/structure/reflector/double{ + tag = "icon-reflector_double (NORTH)"; + icon_state = "reflector_double"; + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"akS" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"akT" = ( +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"akU" = ( +/obj/structure/table/wood, +/obj/item/clothing/neck/tie/red, +/obj/item/clothing/head/that, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"akV" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"akW" = ( +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"akX" = ( +/obj/structure/chair/comfy/brown{ + icon_state = "comfychair"; + dir = 4 + }, +/turf/open/floor/wood{ + tag = "icon-wood-broken3"; + icon_state = "wood-broken3" + }, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"akY" = ( +/obj/structure/table/wood, +/obj/item/weapon/poster/contraband{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/poster/contraband{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/weapon/poster/contraband, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"akZ" = ( +/obj/structure/chair/comfy/brown{ + icon_state = "comfychair"; + dir = 8 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"ala" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"alb" = ( +/obj/structure/frame/computer, +/obj/item/stack/cable_coil/white, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"alc" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"ald" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + tag = "icon-connector_map (WEST)"; + icon_state = "connector_map"; + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"ale" = ( +/obj/machinery/airalarm{ + dir = 4; + locked = 0; + pixel_x = -23; + pixel_y = 0 + }, +/turf/open/floor/plasteel/grimy, +/area/security/vacantoffice) +"alf" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp, +/turf/open/floor/carpet, +/area/security/vacantoffice) +"alg" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/security/vacantoffice) +"alh" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/wood, +/area/security/vacantoffice) +"ali" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/security/vacantoffice) +"alj" = ( +/obj/machinery/light_switch{ + pixel_x = 26; + pixel_y = -26 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/security/vacantoffice) +"alk" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Office Maintenance"; + req_access_txt = "32" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/security/vacantoffice) +"all" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"alm" = ( +/obj/machinery/computer/card, +/obj/machinery/light{ + dir = 8 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = -26; + pixel_y = 0 + }, +/obj/machinery/camera{ + c_tag = "Arrivals Customs"; + dir = 4; + name = "customs camera" + }, +/turf/open/floor/plasteel/blue, +/area/bridge{ + name = "Customs" + }) +"aln" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/chair/office/dark{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/bridge{ + name = "Customs" + }) +"alo" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/table/reinforced, +/obj/item/weapon/folder/blue, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/blue/side{ + tag = "icon-blue (EAST)"; + icon_state = "blue"; + dir = 4 + }, +/area/bridge{ + name = "Customs" + }) +"alp" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/door/window/brigdoor/southright{ + dir = 8; + name = "Customs Desk"; + req_access_txt = "19" + }, +/turf/open/floor/plasteel/warning/side, +/area/bridge{ + name = "Customs" + }) +"alq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"alr" = ( +/turf/open/floor/plasteel/grimy, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"als" = ( +/obj/machinery/holopad, +/turf/open/floor/carpet, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"alt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"alu" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/door/window/brigdoor/southright{ + dir = 4; + name = "Security Desk"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/warning/side, +/area/security/checkpoint2) +"alv" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/table/reinforced, +/obj/item/weapon/folder/red, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/checkpoint2) +"alw" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/plasteel/neutral, +/area/security/checkpoint2) +"alx" = ( +/obj/machinery/computer/security, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 26; + pixel_y = 0 + }, +/turf/open/floor/plasteel/red, +/area/security/checkpoint2) +"aly" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"alz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"alA" = ( +/obj/structure/table/wood, +/obj/item/toy/carpplushie, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"alB" = ( +/obj/machinery/computer/arcade, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"alC" = ( +/obj/machinery/computer/arcade, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"alD" = ( +/obj/structure/table/wood, +/obj/item/weapon/coin/antagtoken, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"alE" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/chair/stool/bar, +/turf/open/floor/plasteel/black, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"alF" = ( +/obj/structure/table/wood, +/obj/item/weapon/clipboard, +/obj/item/weapon/folder, +/obj/item/toy/dummy, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/redyellow, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"alG" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/plasteel/redyellow, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"alH" = ( +/obj/structure/table/wood, +/obj/item/weapon/clipboard, +/obj/item/toy/syndicateballoon, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/redyellow, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"alI" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/disposal) +"alJ" = ( +/turf/closed/wall, +/area/maintenance/disposal) +"alK" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/reagent_containers/glass/beaker/large, +/obj/item/weapon/reagent_containers/glass/beaker, +/obj/item/weapon/reagent_containers/dropper, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/shuttle/syndicate) +"alL" = ( +/turf/open/floor/plasteel/podhatch{ + dir = 10 + }, +/area/shuttle/syndicate) +"alM" = ( +/turf/open/floor/plasteel/podhatch{ + tag = "icon-podhatch (SOUTHEAST)"; + icon_state = "podhatch"; + dir = 6 + }, +/area/shuttle/syndicate) +"alN" = ( +/obj/structure/closet/syndicate/nuclear, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/shuttle/syndicate) +"alO" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/power/solar{ + id = "foreport"; + name = "Fore-Port Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/auxport) +"alP" = ( +/obj/structure/reflector/double{ + tag = "icon-reflector_double (EAST)"; + icon_state = "reflector_double"; + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"alQ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"alR" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"alS" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"alT" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"alU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"alV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"alW" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"alX" = ( +/obj/structure/table/wood, +/obj/item/weapon/clipboard, +/obj/item/weapon/electronics/airalarm, +/obj/item/weapon/electronics/airlock, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"alY" = ( +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"alZ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"ama" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"amb" = ( +/obj/structure/frame/computer, +/obj/item/weapon/circuitboard/computer/secure_data, +/turf/open/floor/wood{ + tag = "icon-wood-broken2"; + icon_state = "wood-broken2" + }, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"amc" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"amd" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"ame" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"amf" = ( +/obj/structure/chair/office/dark, +/turf/open/floor/plasteel/grimy, +/area/security/vacantoffice) +"amg" = ( +/mob/living/simple_animal/cockroach, +/turf/open/floor/plasteel/grimy, +/area/security/vacantoffice) +"amh" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/wood, +/area/security/vacantoffice) +"ami" = ( +/obj/structure/table/wood, +/obj/item/device/camera_film{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/device/camera_film, +/turf/open/floor/wood, +/area/security/vacantoffice) +"amj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"amk" = ( +/obj/machinery/computer/med_data, +/obj/machinery/status_display{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 9 + }, +/area/bridge{ + name = "Customs" + }) +"aml" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/bridge{ + name = "Customs" + }) +"amm" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/blue/side{ + tag = "icon-blue (EAST)"; + icon_state = "blue"; + dir = 4 + }, +/area/bridge{ + name = "Customs" + }) +"amn" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable/white, +/turf/open/floor/plating, +/area/bridge{ + name = "Customs" + }) +"amo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/bot, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"amp" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"amq" = ( +/obj/structure/chair/comfy/brown{ + icon_state = "comfychair"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"amr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"ams" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/carpet, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"amt" = ( +/obj/structure/chair/comfy/brown{ + icon_state = "comfychair"; + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"amu" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable/white, +/turf/open/floor/plating, +/area/security/checkpoint2) +"amv" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/checkpoint2) +"amw" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/security/checkpoint2) +"amx" = ( +/obj/machinery/computer/secure_data, +/obj/machinery/ai_status_display{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/checkpoint2) +"amy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"amz" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"amA" = ( +/obj/structure/chair/stool/bar, +/turf/open/floor/plasteel/black, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"amB" = ( +/obj/structure/chair/stool/bar, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/black, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"amC" = ( +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"amD" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"amE" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"amF" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/coin/iron{ + icon_state = "coin_bananium_heads"; + name = "arcade coin"; + pixel_x = 6 + }, +/obj/item/weapon/coin/iron{ + icon_state = "coin_bananium_heads"; + name = "arcade coin"; + pixel_x = -6 + }, +/obj/item/weapon/coin/iron{ + icon_state = "coin_bananium_heads"; + name = "arcade coin"; + pixel_y = 6 + }, +/turf/open/floor/plasteel/redyellow, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"amG" = ( +/obj/structure/table/wood, +/obj/item/weapon/folder/blue, +/obj/item/clothing/head/collectable/HoP, +/turf/open/floor/plasteel/redyellow, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"amH" = ( +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/disposal) +"amI" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/conveyor{ + dir = 5; + id = "garbage"; + verted = -1 + }, +/turf/open/floor/plating/warnplate/end{ + tag = "icon-plating_warn_end (WEST)"; + icon_state = "plating_warn_end"; + dir = 8 + }, +/area/maintenance/disposal) +"amJ" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "garbage" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/structure/sign/vacuum{ + pixel_y = 32 + }, +/turf/open/floor/plating/warnplate/side{ + tag = "icon-plating_warn_side (WEST)"; + icon_state = "plating_warn_side"; + dir = 8 + }, +/area/maintenance/disposal) +"amK" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "garbage" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plating/warnplate/side{ + tag = "icon-plating_warn_side (WEST)"; + icon_state = "plating_warn_side"; + dir = 8 + }, +/area/maintenance/disposal) +"amL" = ( +/obj/machinery/mass_driver{ + dir = 4; + id = "trash" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating/warnplate/side{ + tag = "icon-plating_warn_side (WEST)"; + icon_state = "plating_warn_side"; + dir = 8 + }, +/area/maintenance/disposal) +"amM" = ( +/obj/machinery/door/poddoor{ + id = "trash"; + name = "Disposals Launch Seal" + }, +/obj/structure/fans/tiny, +/turf/open/floor/plasteel/warning/side, +/area/maintenance/disposal) +"amN" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/item/bodypart/r_arm/robot, +/obj/item/bodypart/l_arm/robot, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/vault, +/area/shuttle/syndicate) +"amO" = ( +/obj/machinery/door/window{ + dir = 1; + name = "Surgery"; + req_access_txt = "150" + }, +/turf/open/floor/plasteel/vault, +/area/shuttle/syndicate) +"amP" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plasteel/vault, +/area/shuttle/syndicate) +"amQ" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/firstaid/brute, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/vault, +/area/shuttle/syndicate) +"amR" = ( +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/firstaid/fire, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/vault, +/area/shuttle/syndicate) +"amS" = ( +/obj/item/device/sbeacondrop/bomb{ + pixel_y = 5 + }, +/obj/item/device/sbeacondrop/bomb, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/shuttle/syndicate) +"amT" = ( +/obj/item/weapon/grenade/syndieminibomb{ + pixel_x = 4; + pixel_y = 2 + }, +/obj/item/weapon/grenade/syndieminibomb{ + pixel_x = -1 + }, +/obj/structure/table/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/shuttle/syndicate) +"amU" = ( +/obj/machinery/door/window{ + dir = 1; + name = "Technological Storage"; + req_access_txt = "150" + }, +/turf/open/floor/plasteel/vault, +/area/shuttle/syndicate) +"amV" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/table/reinforced, +/obj/item/device/aicard, +/turf/open/floor/plasteel/vault, +/area/shuttle/syndicate) +"amW" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/auxport) +"amX" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/auxport) +"amY" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/auxport) +"amZ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/auxport) +"ana" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"anb" = ( +/obj/structure/reflector/box, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"anc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"and" = ( +/obj/structure/table/wood, +/obj/item/weapon/circuitboard/computer/arcade, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"ane" = ( +/obj/structure/table/wood, +/obj/item/weapon/electronics/airalarm, +/obj/item/weapon/circuitboard/computer/med_data, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"anf" = ( +/obj/structure/chair/stool/bar, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"ang" = ( +/obj/structure/chair/comfy/brown{ + icon_state = "comfychair"; + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"anh" = ( +/obj/structure/table/wood, +/obj/item/weapon/folder/red, +/obj/item/weapon/pen, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"ani" = ( +/obj/structure/chair/comfy/brown{ + icon_state = "comfychair"; + dir = 8 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"anj" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"ank" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/wood{ + icon_state = "wood-broken4" + }, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"anl" = ( +/obj/structure/frame/computer, +/obj/machinery/status_display{ + pixel_x = 32 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"anm" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"ann" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/neutral/side{ + dir = 6; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; + tag = "icon-neutral (SOUTHEAST)" + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"ano" = ( +/obj/structure/table/wood, +/obj/item/weapon/phone{ + desc = "Supposedly a direct line to NanoTrasen Central Command. It's not even plugged in."; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/newscaster{ + pixel_x = 0; + pixel_y = -32 + }, +/turf/open/floor/plasteel/grimy, +/area/security/vacantoffice) +"anp" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/machinery/light/small, +/obj/structure/sign/poster{ + icon_state = "poster17_legit"; + pixel_x = 0; + pixel_y = -32; + tag = "icon-poster17_legit" + }, +/turf/open/floor/plasteel/grimy, +/area/security/vacantoffice) +"anq" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/grimy, +/area/security/vacantoffice) +"anr" = ( +/obj/structure/table/wood, +/obj/item/weapon/clipboard, +/obj/machinery/camera{ + c_tag = "Vacant Office"; + dir = 1; + name = "security camera" + }, +/turf/open/floor/plasteel/grimy, +/area/security/vacantoffice) +"ans" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/wood, +/area/security/vacantoffice) +"ant" = ( +/obj/machinery/power/apc{ + dir = 2; + name = "Auxiliary Office APC"; + pixel_y = -26 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white, +/turf/open/floor/wood, +/area/security/vacantoffice) +"anu" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/wood, +/area/security/vacantoffice) +"anv" = ( +/obj/structure/table/wood, +/obj/item/device/camera, +/obj/machinery/light/small, +/obj/structure/sign/nanotrasen{ + pixel_y = -32 + }, +/turf/open/floor/wood, +/area/security/vacantoffice) +"anw" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp, +/obj/structure/sign/nosmoking_2{ + pixel_x = 32 + }, +/turf/open/floor/wood, +/area/security/vacantoffice) +"anx" = ( +/obj/structure/closet/secure_closet{ + anchored = 1; + name = "Contraband Locker"; + req_access_txt = "19" + }, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/item/weapon/storage/secure/briefcase, +/turf/open/floor/plasteel/blue/side{ + dir = 10 + }, +/area/bridge{ + name = "Customs" + }) +"any" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/blue/side, +/area/bridge{ + name = "Customs" + }) +"anz" = ( +/obj/structure/filingcabinet/medical, +/obj/machinery/newscaster{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/blue/side{ + tag = "icon-blue (SOUTHEAST)"; + icon_state = "blue"; + dir = 6 + }, +/area/bridge{ + name = "Customs" + }) +"anA" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/snacks/chips, +/turf/open/floor/plasteel/grimy, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"anB" = ( +/obj/structure/chair/comfy/brown{ + buildstackamount = 0; + dir = 1 + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/turf/open/floor/plasteel/grimy, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"anC" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/light, +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/grimy, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"anD" = ( +/obj/structure/chair/comfy/brown{ + buildstackamount = 0; + dir = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"anE" = ( +/obj/structure/table/wood, +/obj/item/weapon/folder, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/grimy, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"anF" = ( +/obj/structure/closet/wardrobe/red, +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/security/checkpoint2) +"anG" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/red/side, +/area/security/checkpoint2) +"anH" = ( +/obj/structure/closet/secure_closet/security, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/checkpoint2) +"anI" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"anJ" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"anK" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"anL" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"anM" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"anN" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"anO" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"anP" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"anQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (WEST)"; + icon_state = "brown"; + dir = 8 + }, +/area/maintenance/disposal) +"anR" = ( +/obj/machinery/conveyor{ + dir = 2; + id = "garbage" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/warnplate/side, +/area/maintenance/disposal) +"anS" = ( +/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"; + name = "Trash Ejector Control"; + pixel_x = -26; + pixel_y = -6 + }, +/obj/structure/chair/stool, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/maintenance/disposal) +"anT" = ( +/obj/machinery/conveyor_switch/oneway{ + convdir = -1; + id = "garbage"; + name = "disposal coveyor" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/maintenance/disposal) +"anU" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/maintenance/disposal) +"anV" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plasteel/bot, +/area/maintenance/disposal) +"anW" = ( +/obj/item/weapon/surgicaldrill, +/obj/item/weapon/circular_saw, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/shuttle/syndicate) +"anX" = ( +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/obj/structure/mirror{ + pixel_x = 30 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/shuttle/syndicate) +"anY" = ( +/obj/machinery/nuclearbomb/syndicate, +/obj/machinery/door/window{ + dir = 1; + name = "Theatre Stage"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/circuit/rcircuit, +/area/shuttle/syndicate) +"anZ" = ( +/obj/structure/cable, +/obj/machinery/power/solar{ + id = "foreport"; + name = "Fore-Port Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/auxport) +"aoa" = ( +/obj/structure/reflector/single{ + tag = "icon-reflector (NORTH)"; + icon_state = "reflector"; + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aob" = ( +/obj/structure/table/wood, +/obj/machinery/airalarm{ + dir = 4; + locked = 0; + pixel_x = -23; + pixel_y = 0 + }, +/obj/machinery/light_switch{ + pixel_y = -26 + }, +/obj/item/stack/cable_coil/white, +/obj/item/stack/cable_coil/white, +/obj/item/weapon/stock_parts/console_screen, +/obj/item/weapon/stock_parts/console_screen, +/obj/item/weapon/circuitboard/machine/microwave, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"aoc" = ( +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"aod" = ( +/obj/structure/table/wood, +/obj/item/weapon/poster/contraband{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/poster/contraband{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/weapon/poster/contraband, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"aoe" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/wood{ + tag = "icon-wood-broken"; + icon_state = "wood-broken" + }, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"aof" = ( +/obj/machinery/light/small, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"aog" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"aoh" = ( +/turf/open/floor/wood{ + tag = "icon-wood-broken7"; + icon_state = "wood-broken7" + }, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"aoi" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/structure/cable/white, +/obj/machinery/power/apc{ + dir = 2; + name = "Electronics Marketing APC"; + pixel_y = -26 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"aoj" = ( +/obj/structure/table/wood, +/obj/machinery/newscaster{ + pixel_x = 32 + }, +/obj/item/weapon/folder/red, +/obj/item/weapon/lighter, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"aok" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aol" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aom" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aon" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Customs Maintenance"; + req_access_txt = "19" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/bridge{ + name = "Customs" + }) +"aoo" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Security Maintenance"; + req_access_txt = "63" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/security/checkpoint2) +"aop" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"aoq" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"aor" = ( +/obj/structure/chair/stool/bar, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/black, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"aos" = ( +/turf/open/floor/plasteel/black, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"aot" = ( +/obj/structure/table/wood, +/obj/item/toy/talking/AI, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"aou" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (WEST)"; + icon_state = "brown"; + dir = 8 + }, +/area/maintenance/disposal) +"aov" = ( +/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/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/disposal) +"aow" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "garbage" + }, +/obj/machinery/door/window/eastright{ + base_state = "left"; + dir = 1; + icon_state = "left"; + name = "Danger: Conveyor Access"; + req_access_txt = "12" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/maintenance/disposal) +"aox" = ( +/obj/machinery/mineral/stacking_machine{ + input_dir = 2 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/maintenance/disposal) +"aoy" = ( +/obj/machinery/mineral/stacking_unit_console{ + dir = 2; + machinedir = 8; + pixel_x = 32; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (EAST)"; + icon_state = "brown"; + dir = 4 + }, +/area/maintenance/disposal) +"aoz" = ( +/obj/item/weapon/cautery, +/obj/item/weapon/scalpel, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/shuttle/syndicate) +"aoA" = ( +/obj/structure/table/optable, +/obj/item/weapon/surgical_drapes, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/shuttle/syndicate) +"aoB" = ( +/obj/item/weapon/retractor, +/obj/item/weapon/hemostat, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/shuttle/syndicate) +"aoC" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating/warnplate, +/area/shuttle/syndicate) +"aoD" = ( +/turf/open/space, +/area/shuttle/syndicate) +"aoE" = ( +/obj/machinery/recharge_station, +/turf/open/floor/plasteel/circuit/rcircuit, +/area/shuttle/syndicate) +"aoF" = ( +/obj/machinery/telecomms/allinone{ + intercept = 1 + }, +/turf/open/floor/plasteel/circuit/rcircuit, +/area/shuttle/syndicate) +"aoG" = ( +/obj/structure/lattice/catwalk, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/space, +/area/solar/auxport) +"aoH" = ( +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/obj/machinery/power/emitter{ + anchored = 1; + dir = 1; + state = 2 + }, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aoI" = ( +/obj/structure/sign/electricshock, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aoJ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/atmos{ + name = "Reflector Access"; + req_access_txt = "24" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aoK" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aoL" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/atmos{ + name = "Reflector Access"; + req_access_txt = "24" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aoM" = ( +/obj/structure/sign/poster, +/turf/closed/wall, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"aoN" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/barricade/wooden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"aoO" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/barricade/wooden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/crew_quarters/bar{ + name = "Electronic Marketing Den" + }) +"aoP" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aoQ" = ( +/obj/structure/girder, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aoR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aoS" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aoT" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aoU" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aoV" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aoW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aoX" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aoY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aoZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"apa" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"apb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/delivery, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"apc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/space_heater, +/turf/open/floor/plasteel/neutral/side{ + dir = 5 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"apd" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"ape" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"apf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/bot, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"apg" = ( +/obj/machinery/vending/cola, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera{ + c_tag = "Arrivals - Aft"; + dir = 2; + name = "arrivals camera" + }, +/turf/open/floor/plasteel/bot, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"aph" = ( +/obj/machinery/vending/snack, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_y = 26 + }, +/turf/open/floor/plasteel/bot, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"api" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"apj" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"apk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/firecloset, +/turf/open/floor/plasteel/neutral/side{ + dir = 9 + }, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"apl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"apm" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"apn" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/coin/iron{ + icon_state = "coin_bananium_heads"; + name = "arcade coin" + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"apo" = ( +/obj/machinery/computer/arcade, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"app" = ( +/obj/structure/table/wood, +/obj/item/toy/talking/codex_gigas, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"apq" = ( +/obj/structure/table/wood, +/obj/item/clothing/glasses/regular/hipster, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"apr" = ( +/obj/machinery/computer/arcade, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"aps" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/coin/iron{ + icon_state = "coin_bananium_heads"; + name = "arcade coin" + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"apt" = ( +/obj/structure/table/wood, +/obj/item/weapon/gun/ballistic/automatic/toy/pistol/unrestricted, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"apu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/disposal) +"apv" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/conveyor{ + dir = 9; + id = "garbage"; + verted = -1 + }, +/turf/open/floor/plating/warnplate/side, +/area/maintenance/disposal) +"apw" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "garbage" + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/maintenance/disposal) +"apx" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "garbage" + }, +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/maintenance/disposal) +"apy" = ( +/obj/machinery/conveyor{ + dir = 6; + id = "garbage" + }, +/obj/machinery/door/window/eastright{ + base_state = "left"; + dir = 4; + icon_state = "left"; + name = "Danger: Conveyor Access"; + req_access_txt = "12" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/warnplate{ + dir = 5 + }, +/area/maintenance/disposal) +"apz" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (EAST)"; + icon_state = "brown"; + dir = 4 + }, +/area/maintenance/disposal) +"apA" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_l" + }, +/turf/open/floor/plating/warnplate, +/area/shuttle/syndicate) +"apB" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/floor/plating/warnplate, +/area/shuttle/syndicate) +"apC" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_r" + }, +/turf/open/floor/plating/warnplate, +/area/shuttle/syndicate) +"apD" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/auxport) +"apE" = ( +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/auxport) +"apF" = ( +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/glasses/meson/engine, +/obj/structure/table/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/bot, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"apG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"apH" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"apI" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"apJ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"apK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"apL" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"apM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/caution{ + dir = 4 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"apN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"apO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/caution{ + tag = "icon-caution (WEST)"; + icon_state = "caution"; + dir = 8 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"apP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"apQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"apR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"apS" = ( +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"apT" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/suit/radiation, +/obj/item/clothing/head/radiation, +/turf/open/floor/plasteel/bot, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"apU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/barsign{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"apV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"apW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 5 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"apX" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"apY" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"apZ" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aqa" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aqb" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aqc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aqd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 10; + heat_capacity = 1e+006 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aqe" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aqf" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aqg" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aqh" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aqi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aqj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aqk" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/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/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aql" = ( +/obj/structure/girder, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aqm" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aqn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aqo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aqp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aqq" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aqr" = ( +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg2" + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aqs" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aqt" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aqu" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + 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/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aqv" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aqw" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"aqx" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"aqy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"aqz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"aqA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hall1"; + location = "hall15" + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"aqB" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"aqC" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"aqD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"aqE" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"aqF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"aqG" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"aqH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"aqI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"aqJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"aqK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/structure/barricade/wooden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"aqL" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/closed/wall, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"aqM" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"aqN" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/disposal) +"aqO" = ( +/obj/structure/rack, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/weldingtool, +/obj/item/device/assembly/voice, +/obj/item/clothing/head/welding, +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/maintenance/disposal) +"aqP" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/oil, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/maintenance/disposal) +"aqQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/disposal) +"aqR" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "garbage" + }, +/obj/structure/disposaloutlet{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plating/warnplate{ + dir = 10 + }, +/area/maintenance/disposal) +"aqS" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "garbage" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/warnplate, +/area/maintenance/disposal) +"aqT" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "garbage" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/plating/warnplate, +/area/maintenance/disposal) +"aqU" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "garbage" + }, +/obj/machinery/recycler, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/warnplate, +/area/maintenance/disposal) +"aqV" = ( +/obj/machinery/door/window/eastright{ + dir = 4; + name = "Danger: Conveyor Access"; + req_access_txt = "12" + }, +/obj/machinery/conveyor{ + dir = 10; + id = "garbage" + }, +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/plating/warnplate{ + dir = 6 + }, +/area/maintenance/disposal) +"aqW" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/disposal) +"aqX" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/auxport) +"aqY" = ( +/obj/structure/table/reinforced, +/obj/item/device/analyzer, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/bot, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aqZ" = ( +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"ara" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"arb" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/yellow, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"arc" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"ard" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"are" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"arf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/caution{ + dir = 4 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"arg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"arh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/caution{ + tag = "icon-caution (WEST)"; + icon_state = "caution"; + dir = 8 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"ari" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"arj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"ark" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"arl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/yellow, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"arm" = ( +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"arn" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/tank/internals/emergency_oxygen/engi{ + pixel_x = -5 + }, +/obj/item/weapon/tank/internals/emergency_oxygen/engi{ + pixel_x = 5; + pixel_y = 0 + }, +/obj/item/device/geiger_counter, +/obj/item/device/geiger_counter, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/bot, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aro" = ( +/obj/structure/sign/poster, +/turf/closed/wall, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"arp" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"arq" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"arr" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"ars" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"art" = ( +/turf/closed/wall, +/area/janitor) +"aru" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"arv" = ( +/turf/closed/wall, +/area/crew_quarters/toilet{ + name = "\improper Auxiliary Restrooms" + }) +"arw" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"arx" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"ary" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"arz" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (NORTH)"; + icon_state = "neutralcorner"; + dir = 1 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"arA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"arB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"arC" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"arD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"arE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"arF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"arG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"arH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"arI" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"arJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 6 + }, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"arK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"arL" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"arM" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + 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{ + name = "Fore Starboard Maintenance" + }) +"arN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + 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{ + name = "Fore Starboard Maintenance" + }) +"arO" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"arP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"arQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + 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{ + name = "Fore Starboard Maintenance" + }) +"arR" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/starboard{ + name = "Fore Starboard Maintenance" + }) +"arS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning/side, +/area/maintenance/disposal) +"arT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"arU" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning, +/area/maintenance/disposal) +"arV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/maintenance/disposal) +"arW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/brown, +/area/maintenance/disposal) +"arX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/plating, +/area/maintenance/disposal) +"arY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/plasteel/brown, +/area/maintenance/disposal) +"arZ" = ( +/obj/machinery/power/apc{ + dir = 2; + name = "Disposal APC"; + pixel_x = 0; + pixel_y = -24 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (SOUTHEAST)"; + icon_state = "brown"; + dir = 6 + }, +/area/maintenance/disposal) +"asa" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 6 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/space) +"asb" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/space) +"asc" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"asd" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/delivery, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"ase" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"asf" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel/yellow, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"asg" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warning/corner, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"ash" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/warning, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"asi" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/warning, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"asj" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"ask" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/structure/sign/electricshock{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/caution{ + dir = 4 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"asl" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"asm" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/caution{ + tag = "icon-caution (WEST)"; + icon_state = "caution"; + dir = 8 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"asn" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/structure/sign/nosmoking_2{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aso" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = -26 + }, +/turf/open/floor/plasteel/warning, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"asp" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning/corner{ + dir = 1 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"asq" = ( +/obj/machinery/atmospherics/components/trinary/filter{ + dir = 4; + filter_type = "n2"; + on = 1 + }, +/turf/open/floor/plasteel/yellow, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"asr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 10 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"ass" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/structure/sign/nosmoking_2{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/delivery, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"ast" = ( +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"asu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"asv" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"asw" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/obj/item/weapon/crowbar/red, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"asx" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/item/clothing/gloves/color/white, +/obj/item/clothing/head/rabbitears, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"asy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/redblue/redside{ + tag = "icon-redblue (WEST)"; + icon_state = "redblue"; + dir = 8 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"asz" = ( +/obj/structure/table_frame/wood, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"asA" = ( +/obj/structure/easel, +/obj/item/weapon/canvas/twentythreeXtwentythree, +/obj/item/weapon/canvas/twentythreeXtwentythree, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"asB" = ( +/obj/structure/easel, +/obj/item/weapon/canvas/twentythreeXtwentythree, +/obj/item/weapon/canvas/twentythreeXtwentythree, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"asC" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"asD" = ( +/obj/structure/table/wood, +/obj/item/device/camera_film, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/wood, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"asE" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"asF" = ( +/obj/structure/table/reinforced, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/sign/nanotrasen{ + pixel_y = 32 + }, +/obj/item/weapon/storage/box/mousetraps{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/mousetraps, +/obj/item/weapon/restraints/legcuffs/beartrap{ + tag = "icon-beartrap0"; + icon_state = "beartrap0" + }, +/obj/item/weapon/restraints/legcuffs/beartrap{ + tag = "icon-beartrap0"; + icon_state = "beartrap0" + }, +/obj/item/weapon/restraints/legcuffs/beartrap{ + tag = "icon-beartrap0"; + icon_state = "beartrap0" + }, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel/bot, +/area/janitor) +"asG" = ( +/obj/vehicle/janicart, +/obj/machinery/status_display{ + pixel_y = 32 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/storage/bag/trash, +/obj/item/key/janitor, +/turf/open/floor/plasteel/bot, +/area/janitor) +"asH" = ( +/obj/structure/closet/jcloset, +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 1; + name = "Custodial Closet APC"; + pixel_x = 0; + pixel_y = 25 + }, +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/turf/open/floor/plasteel/bot, +/area/janitor) +"asI" = ( +/obj/structure/closet/l3closet/janitor, +/obj/machinery/requests_console{ + department = "Custodial Closet"; + departmentType = 0; + name = "Custodial RC"; + pixel_x = 0; + pixel_y = 32 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera{ + c_tag = "Custodial Closet"; + dir = 2; + name = "service camera" + }, +/turf/open/floor/plasteel/bot, +/area/janitor) +"asJ" = ( +/obj/structure/table/reinforced, +/obj/machinery/status_display{ + pixel_y = 32 + }, +/obj/item/weapon/clipboard, +/obj/item/toy/figure/janitor, +/turf/open/floor/plating, +/area/janitor) +"asK" = ( +/obj/structure/table/reinforced, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/item/stack/packageWrap, +/obj/item/weapon/crowbar, +/obj/item/weapon/hand_labeler, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/janitor) +"asL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"asM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/toilet{ + name = "\improper Auxiliary Restrooms" + }) +"asN" = ( +/obj/structure/urinal{ + pixel_y = 28 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/toilet{ + name = "\improper Auxiliary Restrooms" + }) +"asO" = ( +/obj/structure/urinal{ + pixel_y = 28 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/crew_quarters/toilet{ + name = "\improper Auxiliary Restrooms" + }) +"asP" = ( +/obj/structure/urinal{ + pixel_y = 28 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/toilet{ + name = "\improper Auxiliary Restrooms" + }) +"asQ" = ( +/obj/machinery/door/airlock{ + name = "Auxiliary Restroom" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/crew_quarters/toilet{ + name = "\improper Auxiliary Restrooms" + }) +"asR" = ( +/obj/structure/sign/directions/evac{ + pixel_y = -8 + }, +/obj/structure/sign/directions/science{ + dir = 2 + }, +/obj/structure/sign/directions/engineering{ + dir = 2; + pixel_y = 8 + }, +/turf/closed/wall, +/area/crew_quarters/toilet{ + name = "\improper Auxiliary Restrooms" + }) +"asS" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Fore Primary Hallway" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/hallway/primary/fore) +"asT" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Fore Primary Hallway" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/hallway/primary/fore) +"asU" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/glass{ + name = "Fore Primary Hallway" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/hallway/primary/fore) +"asV" = ( +/obj/structure/sign/directions/evac{ + pixel_y = -8 + }, +/obj/structure/sign/directions/medical{ + dir = 2 + }, +/obj/structure/sign/directions/security{ + dir = 2; + pixel_y = 8 + }, +/turf/closed/wall, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"asW" = ( +/turf/closed/wall, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"asX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Warehouse Maintenance"; + req_access_txt = "31" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"asY" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/closed/wall, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"asZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"ata" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/quartermaster/storage) +"atb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/closed/wall, +/area/quartermaster/storage) +"atc" = ( +/turf/closed/wall, +/area/quartermaster/storage) +"atd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Cargo Maintenance"; + req_access_txt = "48;50" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/quartermaster/storage) +"ate" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable, +/turf/open/space, +/area/solar/auxport) +"atf" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 5 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/space) +"atg" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"ath" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 10 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"ati" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/bot, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"atj" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + icon_state = "pump_map"; + name = "Gas to Loop" + }, +/turf/open/floor/plasteel/neutral, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"atk" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"atl" = ( +/obj/machinery/ai_status_display, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"atm" = ( +/obj/machinery/status_display, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"atn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"ato" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/floor/plasteel/neutral, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"atp" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 8; + icon_state = "manifold"; + name = "scrubbers pipe" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"atq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/bot, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"atr" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"ats" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8; + frequency = 1441; + id = "n2_in" + }, +/turf/open/space, +/area/space) +"att" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"atu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark{ + name = "blobstart" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"atv" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"atw" = ( +/obj/structure/mirror{ + desc = "Mirror mirror on the wall, who is the most robust of them all?"; + pixel_x = -28 + }, +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt, +/obj/item/clothing/suit/suspenders, +/obj/effect/landmark/costume, +/turf/open/floor/plasteel/redblue, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"atx" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/redblue/redside{ + tag = "icon-redblue (WEST)"; + icon_state = "redblue"; + dir = 8 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aty" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/melee/skateboard, +/turf/open/floor/plasteel/cafeteria, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"atz" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood{ + tag = "icon-wood-broken2"; + icon_state = "wood-broken2" + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"atA" = ( +/mob/living/simple_animal/cockroach, +/turf/open/floor/wood, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"atB" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/wood, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"atC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"atD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"atE" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"atF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"atG" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"atH" = ( +/obj/structure/mirror{ + desc = "Mirror mirror on the wall, who is the most robust of them all?"; + pixel_x = -28 + }, +/obj/structure/table/reinforced, +/obj/item/clothing/gloves/color/orange, +/obj/item/weapon/reagent_containers/spray/cleaner, +/obj/item/weapon/reagent_containers/spray/cleaner, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/obj/item/weapon/grenade/chem_grenade/cleaner, +/obj/item/weapon/grenade/chem_grenade/cleaner, +/obj/item/weapon/grenade/chem_grenade/cleaner, +/turf/open/floor/plasteel/bot, +/area/janitor) +"atI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start{ + name = "Janitor" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/janitor) +"atJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/janitor) +"atK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/purple/side{ + tag = "icon-purple (NORTH)"; + icon_state = "purple"; + dir = 1 + }, +/area/janitor) +"atL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start{ + name = "Janitor" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/green/side{ + dir = 5; + initial_gas_mix = "n2=100;TEMP=80"; + tag = "SERVER" + }, +/area/janitor) +"atM" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/structure/sign/nosmoking_2{ + pixel_x = 32 + }, +/obj/item/weapon/reagent_containers/glass/bucket, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/janitor) +"atN" = ( +/obj/effect/landmark{ + name = "blobstart" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"atO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/mirror{ + desc = "Mirror mirror on the wall, who is the most robust of them all?"; + pixel_x = -26 + }, +/obj/structure/sink{ + dir = 8; + icon_state = "sink"; + pixel_x = -12 + }, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/toilet{ + name = "\improper Auxiliary Restrooms" + }) +"atP" = ( +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/crew_quarters/toilet{ + name = "\improper Auxiliary Restrooms" + }) +"atQ" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/crew_quarters/toilet{ + name = "\improper Auxiliary Restrooms" + }) +"atR" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/crew_quarters/toilet{ + name = "\improper Auxiliary Restrooms" + }) +"atS" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/machinery/camera{ + c_tag = "Auxiliary Restroom"; + dir = 2; + name = "restroom camera" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/crew_quarters/toilet{ + name = "\improper Auxiliary Restrooms" + }) +"atT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_y = 26 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/crew_quarters/toilet{ + name = "\improper Auxiliary Restrooms" + }) +"atU" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 5 + }, +/area/crew_quarters/toilet{ + name = "\improper Auxiliary Restrooms" + }) +"atV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/fore) +"atW" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/fore) +"atX" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Arrivals Hallway - Fore"; + dir = 8; + name = "hallway camera" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/fore) +"atY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"atZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"aua" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"aub" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"auc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTH)"; + icon_state = "brown"; + dir = 1 + }, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"aud" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera{ + c_tag = "Cargo - Warehouse"; + dir = 2; + name = "cargo camera" + }, +/turf/open/floor/plating, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"aue" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTH)"; + icon_state = "brown"; + dir = 1 + }, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"auf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"aug" = ( +/obj/item/stack/packageWrap, +/obj/item/weapon/hand_labeler, +/obj/structure/table, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"auh" = ( +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/obj/structure/filingcabinet/filingcabinet, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"aui" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/filingcabinet/filingcabinet, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"auj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTH)"; + icon_state = "brown"; + dir = 1 + }, +/area/quartermaster/storage) +"auk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/storage) +"aul" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTH)"; + icon_state = "brown"; + dir = 1 + }, +/area/quartermaster/storage) +"aum" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTH)"; + icon_state = "brown"; + dir = 1 + }, +/area/quartermaster/storage) +"aun" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/box/lights/mixed, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = 26 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTH)"; + icon_state = "brown"; + dir = 1 + }, +/area/quartermaster/storage) +"auo" = ( +/obj/structure/table/reinforced, +/obj/machinery/computer/stockexchange, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTH)"; + icon_state = "brown"; + dir = 1 + }, +/area/quartermaster/storage) +"aup" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTH)"; + icon_state = "brown"; + dir = 1 + }, +/area/quartermaster/storage) +"auq" = ( +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTH)"; + icon_state = "brown"; + dir = 1 + }, +/area/quartermaster/storage) +"aur" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/storage) +"aus" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/storage) +"aut" = ( +/obj/machinery/status_display{ + density = 0; + name = "cargo display"; + pixel_x = 0; + pixel_y = 0; + supply_display = 1 + }, +/turf/closed/wall, +/area/quartermaster/storage) +"auu" = ( +/obj/item/stack/cable_coil, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/auxport) +"auv" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/turf/open/space, +/area/space) +"auw" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 9 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"aux" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/bot, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"auy" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"auz" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4 + }, +/obj/machinery/meter, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/yellow, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"auA" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"auB" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "engsm"; + name = "Radiation Chamber Shutters" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"auC" = ( +/obj/machinery/power/rad_collector{ + anchored = 1 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"auD" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plating, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"auE" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"auF" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"auG" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/turf/open/floor/plating, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"auH" = ( +/obj/machinery/power/rad_collector{ + anchored = 1 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"auI" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "engsm"; + name = "Radiation Chamber Shutters" + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"auJ" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"auK" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/floor/plasteel/yellow, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"auL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"auM" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plasteel/bot, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"auN" = ( +/turf/open/floor/plasteel/neutral, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"auO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"auP" = ( +/obj/structure/rack, +/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"auQ" = ( +/obj/structure/table_frame/wood, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/redblue, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"auR" = ( +/turf/open/floor/plasteel/redblue, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"auS" = ( +/turf/open/floor/plasteel/redblue/redside{ + tag = "icon-redblue (WEST)"; + icon_state = "redblue"; + dir = 8 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"auT" = ( +/obj/structure/dresser, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/cafeteria, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"auU" = ( +/obj/structure/table/wood, +/obj/item/device/camera, +/turf/open/floor/wood{ + tag = "icon-wood-broken3"; + icon_state = "wood-broken3" + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"auV" = ( +/obj/structure/chair/comfy/brown{ + icon_state = "comfychair"; + dir = 8 + }, +/turf/open/floor/wood{ + tag = "icon-wood-broken3"; + icon_state = "wood-broken3" + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"auW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/nosmoking_2{ + pixel_y = -32 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"auX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster{ + pixel_y = -32 + }, +/turf/open/floor/wood{ + tag = "icon-wood-broken7"; + icon_state = "wood-broken7" + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"auY" = ( +/obj/machinery/photocopier, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"auZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/mob/living/simple_animal/cockroach, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"ava" = ( +/obj/structure/table/reinforced, +/obj/machinery/airalarm{ + dir = 4; + locked = 0; + pixel_x = -23; + pixel_y = 0 + }, +/obj/item/weapon/storage/box/lights/mixed{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/lights/mixed, +/obj/item/device/lightreplacer, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/janitor) +"avb" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/green/side{ + dir = 8 + }, +/area/janitor) +"avc" = ( +/obj/machinery/holopad, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/bot, +/area/janitor) +"avd" = ( +/obj/effect/decal/cleanable/dirt, +/mob/living/simple_animal/hostile/lizard{ + name = "Eats-The-Roaches"; + real_name = "Wags-His-Tail" + }, +/turf/open/floor/plasteel/bot, +/area/janitor) +"ave" = ( +/turf/open/floor/plasteel/purple/side{ + tag = "icon-purple (EAST)"; + icon_state = "purple"; + dir = 4 + }, +/area/janitor) +"avf" = ( +/obj/structure/janitorialcart, +/obj/structure/sign/poster{ + icon_state = "poster17_legit"; + pixel_x = 32; + pixel_y = 0; + tag = "icon-poster17_legit" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/janitor) +"avg" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"avh" = ( +/obj/machinery/light/small, +/obj/structure/extinguisher_cabinet{ + pixel_y = -32 + }, +/turf/open/floor/plating, +/area/crew_quarters/toilet{ + name = "\improper Auxiliary Restrooms" + }) +"avi" = ( +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/toilet{ + name = "\improper Auxiliary Restrooms" + }) +"avj" = ( +/obj/machinery/status_display{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/toilet{ + name = "\improper Auxiliary Restrooms" + }) +"avk" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/toilet{ + name = "\improper Auxiliary Restrooms" + }) +"avl" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/apc{ + dir = 2; + name = "Auxiliary Restrooms APC"; + pixel_y = -26 + }, +/turf/open/floor/plating, +/area/crew_quarters/toilet{ + name = "\improper Auxiliary Restrooms" + }) +"avm" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral/side{ + dir = 6 + }, +/area/crew_quarters/toilet{ + name = "\improper Auxiliary Restrooms" + }) +"avn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/fore) +"avo" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/fore) +"avp" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j1"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/fore) +"avq" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"avr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"avs" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate/secure/loot, +/turf/open/floor/plasteel/bot, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"avt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"avu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/bot, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"avv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"avw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/cardboard, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"avx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (EAST)"; + icon_state = "brown"; + dir = 4 + }, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"avy" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/mining{ + name = "Cargo Warehouse"; + req_access_txt = "31" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"avz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/quartermaster/storage) +"avA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/quartermaster/storage) +"avB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/quartermaster/storage) +"avC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/quartermaster/storage) +"avD" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/quartermaster/storage) +"avE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/quartermaster/storage) +"avF" = ( +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/quartermaster/storage) +"avG" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/quartermaster/storage) +"avH" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/quartermaster/storage) +"avI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/loadingarea{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/quartermaster/storage) +"avJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/conveyor, +/turf/open/floor/plating, +/area/quartermaster/storage) +"avK" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/quartermaster/storage) +"avL" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/supply) +"avM" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/heater{ + dir = 4; + on = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/bot, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"avN" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + icon_state = "manifold"; + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"avO" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"avP" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"avQ" = ( +/obj/machinery/power/supermatter_shard{ + anchored = 1; + base_icon_state = "darkmatter"; + explosion_power = 20; + gasefficency = 0.15; + icon_state = "darkmatter"; + name = "supermatter crystal" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"avR" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"avS" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "engsm"; + name = "Radiation Chamber Shutters" + }, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"avT" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"avU" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"avV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 5 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"avW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"avX" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"avY" = ( +/obj/machinery/light/small, +/obj/machinery/power/apc{ + dir = 2; + name = "Fore Port Maintenance APC"; + pixel_y = -26 + }, +/obj/structure/cable/white, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"avZ" = ( +/obj/structure/sign/poster{ + pixel_y = -32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/redblue, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"awa" = ( +/obj/machinery/vending/autodrobe{ + req_access_txt = "0" + }, +/obj/machinery/light/small, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/redblue/redside{ + tag = "icon-redblue (WEST)"; + icon_state = "redblue"; + dir = 8 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"awb" = ( +/obj/structure/table/wood, +/obj/structure/sign/poster{ + pixel_y = -32 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/clothing/shoes/jackboots, +/obj/effect/landmark/costume, +/turf/open/floor/plasteel/cafeteria, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"awc" = ( +/obj/structure/table/wood, +/obj/item/weapon/lipstick/random{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/lipstick/random{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/weapon/lipstick/random, +/obj/structure/sign/nosmoking_2{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/cafeteria, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"awd" = ( +/obj/structure/table/wood, +/obj/item/weapon/canvas/twentythreeXnineteen, +/obj/item/weapon/canvas/nineteenXnineteen, +/obj/item/weapon/storage/crayons, +/obj/item/weapon/storage/crayons, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small, +/turf/open/floor/wood{ + tag = "icon-wood-broken6"; + icon_state = "wood-broken6" + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"awe" = ( +/obj/structure/sink{ + dir = 8; + icon_state = "sink"; + pixel_x = -12 + }, +/obj/structure/sign/poster{ + icon_state = "poster3_legit"; + pixel_x = -32; + pixel_y = 0; + tag = "icon-poster3_legit" + }, +/obj/item/weapon/reagent_containers/glass/bucket, +/obj/item/weapon/reagent_containers/glass/bucket, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/mop, +/obj/item/weapon/mop, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = -26 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light/small, +/turf/open/floor/plasteel/bot, +/area/janitor) +"awf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/purple/side{ + dir = 10 + }, +/area/janitor) +"awg" = ( +/obj/machinery/light_switch{ + pixel_y = -26 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/green/side, +/area/janitor) +"awh" = ( +/turf/open/floor/plasteel/delivery, +/area/janitor) +"awi" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/delivery, +/area/janitor) +"awj" = ( +/obj/machinery/disposal/bin, +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/bot, +/area/janitor) +"awk" = ( +/obj/machinery/door/airlock{ + name = "Toilet Unit" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/crew_quarters/toilet{ + name = "\improper Auxiliary Restrooms" + }) +"awl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/crew_quarters/toilet{ + name = "\improper Auxiliary Restrooms" + }) +"awm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/fore) +"awn" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/fore) +"awo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/fore) +"awp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"awq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm{ + dir = 4; + locked = 0; + pixel_x = -23; + pixel_y = 0 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (WEST)"; + icon_state = "brown"; + dir = 8 + }, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"awr" = ( +/obj/item/weapon/storage/box/lights/mixed, +/turf/open/floor/plating, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"aws" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"awt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"awu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"awv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate/internals, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"aww" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"awx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (EAST)"; + icon_state = "brown"; + dir = 4 + }, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"awy" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/mining{ + name = "Cargo Warehouse"; + req_access_txt = "31" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"awz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/quartermaster/storage) +"awA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning, +/area/quartermaster/storage) +"awB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 1 + }, +/area/quartermaster/storage) +"awC" = ( +/turf/open/floor/plasteel/neutral, +/area/quartermaster/storage) +"awD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/storage) +"awE" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"awF" = ( +/obj/effect/landmark/start{ + name = "Cargo Technician" + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"awG" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"awH" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/storage) +"awI" = ( +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/quartermaster/storage) +"awJ" = ( +/turf/open/floor/plasteel/loadingarea{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/quartermaster/storage) +"awK" = ( +/obj/structure/cable/white, +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/quartermaster/storage) +"awL" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + tag = "icon-plasteel_warn (NORTHWEST)"; + icon_state = "plasteel_warn"; + dir = 9 + }, +/area/shuttle/supply) +"awM" = ( +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/shuttle/supply) +"awN" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/shuttle/supply) +"awO" = ( +/turf/open/floor/plasteel/warning{ + tag = "icon-plasteel_warn (NORTHEAST)"; + icon_state = "plasteel_warn"; + dir = 5 + }, +/area/shuttle/supply) +"awP" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/turf/open/space, +/area/solar/auxport) +"awQ" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 9 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/space) +"awR" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + tag = "icon-freezer (EAST)"; + icon_state = "freezer"; + dir = 4 + }, +/obj/structure/sign/securearea{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/camera{ + c_tag = "Atmospherics - Engine Port"; + dir = 4; + name = "atmospherics camera" + }, +/turf/open/floor/plasteel/bot, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"awS" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"awT" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/yellow, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"awU" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "engsm"; + name = "Radiation Chamber Shutters" + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"awV" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"awW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/securearea{ + pixel_x = 32; + pixel_y = 0 + }, +/obj/machinery/camera{ + c_tag = "Atmospherics - Engine Starboard"; + dir = 8; + name = "atmospherics camera" + }, +/turf/open/floor/plasteel/bot, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"awX" = ( +/turf/closed/wall, +/area/hydroponics{ + name = "Abandoned Garden" + }) +"awY" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral/side{ + dir = 9 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"awZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"axa" = ( +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"axb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"axc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/janitor) +"axd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock{ + name = "Custodial Closet"; + req_access_txt = "26" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/janitor) +"axe" = ( +/obj/machinery/door/poddoor/shutters{ + id = "custodialshutters"; + name = "Custodial Closet Shutters" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/janitor) +"axf" = ( +/obj/machinery/door/poddoor/shutters{ + id = "custodialshutters"; + name = "Custodial Closet Shutters" + }, +/obj/machinery/button/door{ + id = "custodialshutters"; + name = "Custodial Shutters"; + pixel_x = 26; + req_access_txt = "26" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/janitor) +"axg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"axh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/vomit/old, +/obj/structure/toilet{ + tag = "icon-toilet00 (WEST)"; + icon_state = "toilet00"; + dir = 8 + }, +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/crew_quarters/toilet{ + name = "\improper Auxiliary Restrooms" + }) +"axi" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/toilet{ + tag = "icon-toilet00 (WEST)"; + icon_state = "toilet00"; + dir = 8 + }, +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/toilet{ + name = "\improper Auxiliary Restrooms" + }) +"axj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/toilet{ + tag = "icon-toilet00 (WEST)"; + icon_state = "toilet00"; + dir = 8 + }, +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/obj/machinery/light/small, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/toilet{ + name = "\improper Auxiliary Restrooms" + }) +"axk" = ( +/obj/machinery/vending/cigarette, +/obj/machinery/light/small, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/crew_quarters/toilet{ + name = "\improper Auxiliary Restrooms" + }) +"axl" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/fore) +"axm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/fore) +"axn" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"axo" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plating, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"axp" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"axq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start{ + name = "Cargo Technician" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"axr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark{ + name = "blobstart" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"axs" = ( +/obj/effect/decal/cleanable/oil, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"axt" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"axu" = ( +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (EAST)"; + icon_state = "brown"; + dir = 4 + }, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"axv" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=4"; + dir = 4; + freq = 1400; + location = "QM #1" + }, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/storage) +"axw" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plasteel/loadingarea{ + dir = 4 + }, +/area/quartermaster/storage) +"axx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning/corner{ + dir = 4 + }, +/area/quartermaster/storage) +"axy" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/storage) +"axz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/storage) +"axA" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/storage) +"axB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/conveyor_switch{ + id = "cargounload" + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (EAST)"; + icon_state = "brown"; + dir = 4 + }, +/area/quartermaster/storage) +"axC" = ( +/obj/machinery/conveyor, +/turf/open/floor/plating, +/area/quartermaster/storage) +"axD" = ( +/obj/structure/cable/white, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/quartermaster/storage) +"axE" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/sign/vacuum, +/turf/open/floor/plating, +/area/quartermaster/storage) +"axF" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/quartermaster/storage) +"axG" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/shuttle/supply) +"axH" = ( +/turf/open/floor/plasteel/bot, +/area/shuttle/supply) +"axI" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/shuttle/supply) +"axJ" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/shuttle/supply) +"axK" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/space, +/area/solar/auxport) +"axL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/bot, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"axM" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"axN" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel/neutral, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"axO" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"axP" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"axQ" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/obj/machinery/meter, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"axR" = ( +/obj/machinery/door/airlock/glass_atmos{ + name = "Supermatter Chamber"; + req_access_txt = "24" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"axS" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 6 + }, +/obj/machinery/meter, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"axT" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"axU" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"axV" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/obj/machinery/meter, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"axW" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + icon_state = "pump_map"; + name = "Nitrogen to Loop" + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"axX" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/bot, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"axY" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"axZ" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + icon_state = "intact"; + dir = 10 + }, +/turf/open/space, +/area/space) +"aya" = ( +/obj/machinery/hydroponics/soil, +/obj/item/seeds/sunflower, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/hydroponics{ + name = "Abandoned Garden" + }) +"ayb" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/hydroponics{ + name = "Abandoned Garden" + }) +"ayc" = ( +/obj/structure/table, +/obj/item/clothing/suit/apron/overalls, +/obj/item/weapon/cultivator, +/turf/open/floor/plasteel/bot, +/area/hydroponics{ + name = "Abandoned Garden" + }) +"ayd" = ( +/obj/machinery/biogenerator, +/turf/open/floor/plasteel/delivery, +/area/hydroponics{ + name = "Abandoned Garden" + }) +"aye" = ( +/obj/structure/table, +/obj/item/seeds/poppy/lily{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/seeds/poppy/geranium, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/reagent_containers/food/snacks/grown/wheat, +/obj/item/weapon/reagent_containers/food/snacks/grown/corn, +/obj/item/weapon/reagent_containers/food/snacks/grown/apple, +/turf/open/floor/plasteel/bot, +/area/hydroponics{ + name = "Abandoned Garden" + }) +"ayf" = ( +/obj/machinery/hydroponics/soil, +/obj/item/seeds/tea, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/hydroponics{ + name = "Abandoned Garden" + }) +"ayg" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/status_display{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/delivery, +/area/hydroponics{ + name = "Abandoned Garden" + }) +"ayh" = ( +/obj/structure/table, +/obj/item/stack/packageWrap, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/hand_labeler, +/obj/item/weapon/reagent_containers/food/snacks/grown/tea, +/obj/item/weapon/reagent_containers/food/snacks/grown/grapes, +/obj/item/weapon/reagent_containers/food/snacks/grown/cherries, +/turf/open/floor/plasteel/bot, +/area/hydroponics{ + name = "Abandoned Garden" + }) +"ayi" = ( +/obj/machinery/hydroponics/soil, +/obj/item/seeds/poppy, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/hydroponics{ + name = "Abandoned Garden" + }) +"ayj" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"ayk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"ayl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aym" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"ayn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"ayo" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"ayp" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"ayq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/structure/disposalpipe/junction{ + dir = 8; + icon_state = "pipe-j2" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 9 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"ayr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/sortjunction{ + dir = 8; + icon_state = "pipe-j2s"; + name = "Bar Junction"; + sortType = 19 + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"ays" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"ayt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"ayu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 8; + icon_state = "pipe-j1s"; + name = "Custodial Junction"; + sortType = 22 + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"ayv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"ayw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"ayx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 5 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"ayy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"ayz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/toilet{ + name = "\improper Auxiliary Restrooms" + }) +"ayA" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/fore) +"ayB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"ayC" = ( +/turf/open/floor/plating, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"ayD" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plasteel/bot, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"ayE" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"ayF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/deadcockroach, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/bot, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"ayG" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"ayH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/storage/box/mousetraps, +/turf/open/floor/plasteel/bot, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"ayI" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"ayJ" = ( +/obj/structure/plasticflaps{ + opacity = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"ayK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=4"; + dir = 4; + freq = 1400; + location = "QM #2" + }, +/mob/living/simple_animal/bot/mulebot{ + home_destination = "QM #3"; + suffix = "#3" + }, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/storage) +"ayL" = ( +/turf/open/floor/plasteel/loadingarea{ + dir = 4 + }, +/area/quartermaster/storage) +"ayM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/storage) +"ayN" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/storage) +"ayO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/storage) +"ayP" = ( +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"ayQ" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"ayR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/storage) +"ayS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/quartermaster/storage) +"ayT" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (EAST)"; + icon_state = "brown"; + dir = 4 + }, +/area/quartermaster/storage) +"ayU" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "cargounload" + }, +/obj/machinery/door/poddoor{ + id = "cargounload"; + name = "supply dock unloading door" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"ayV" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "cargounload" + }, +/obj/structure/plasticflaps, +/turf/open/floor/plating, +/area/quartermaster/storage) +"ayW" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "cargounload" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/poddoor{ + id = "cargounload"; + name = "supply dock unloading door" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"ayX" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "cargounload" + }, +/obj/machinery/door/poddoor{ + id = "cargounload"; + name = "supply dock unloading door" + }, +/turf/open/floor/plating, +/area/shuttle/supply) +"ayY" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plasteel/bot, +/area/shuttle/supply) +"ayZ" = ( +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/shuttle/supply) +"aza" = ( +/obj/machinery/atmospherics/components/trinary/filter{ + dir = 1; + filter_type = "n2"; + name = "nitogren filter"; + on = 1 + }, +/turf/open/floor/plasteel/yellow, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"azb" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"azc" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plasteel/bot, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"azd" = ( +/obj/structure/sign/radiation, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aze" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "Gas to Filter" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"azf" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + icon_state = "pump_map"; + name = "Gas to Chamber" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"azg" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/bot, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"azh" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"azi" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"azj" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/yellow, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"azk" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"azl" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + icon_state = "connector_map"; + dir = 8 + }, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plasteel/escape{ + tag = "icon-escape (EAST)"; + icon_state = "escape"; + dir = 4 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"azm" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/space, +/area/space) +"azn" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics{ + name = "Abandoned Garden" + }) +"azo" = ( +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics{ + name = "Abandoned Garden" + }) +"azp" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"azq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"azr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"azs" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/closed/wall, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"azt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"azu" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/delivery, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"azv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"azw" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"azx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"azy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"azz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"azA" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/fore) +"azB" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/fore) +"azC" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/fore) +"azD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"azE" = ( +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Warehouse Maintenance"; + req_access_txt = "31" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"azF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 4; + icon_state = "pipe-j1s"; + sortType = 1 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (WEST)"; + icon_state = "brown"; + dir = 8 + }, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"azG" = ( +/obj/effect/decal/cleanable/oil, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"azH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"azI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"azJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"azK" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"azL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"azM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + dir = 4; + name = "Cargo Warehouse APC"; + pixel_x = 26; + pixel_y = 0 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (EAST)"; + icon_state = "brown"; + dir = 4 + }, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"azN" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=4"; + dir = 4; + freq = 1400; + location = "QM #3" + }, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/storage) +"azO" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/loadingarea{ + dir = 4 + }, +/area/quartermaster/storage) +"azP" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/storage) +"azQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/storage) +"azR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/storage) +"azS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/storage) +"azT" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/storage) +"azU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/external{ + name = "Supply Dock Airlock"; + req_access_txt = "31" + }, +/turf/open/floor/plasteel/warning/side, +/area/quartermaster/storage) +"azV" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/quartermaster/storage) +"azW" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/external{ + name = "Supply Dock Airlock"; + req_access_txt = "31" + }, +/turf/open/floor/plasteel/warning/side, +/area/quartermaster/storage) +"azX" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Supply Shuttle Airlock"; + req_access_txt = "31" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/shuttle/supply) +"azY" = ( +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/shuttle/supply) +"azZ" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aAa" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + icon_state = "pump_map"; + name = "Gas to Thermo" + }, +/turf/open/floor/plasteel/neutral, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aAb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 5 + }, +/obj/item/weapon/wrench, +/turf/open/floor/plasteel/bot, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aAc" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + tag = "icon-manifold (EAST)"; + name = "scrubbers pipe"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aAd" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aAe" = ( +/obj/machinery/atmospherics/components/binary/pump, +/turf/open/floor/plasteel/bot, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aAf" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "External Gas to Loop" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aAg" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/turf/open/floor/plasteel/neutral, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aAh" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aAi" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + icon_state = "connector_map"; + dir = 8 + }, +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/plasteel/arrival{ + dir = 4 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aAj" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/space, +/area/space) +"aAk" = ( +/obj/structure/sink{ + icon_state = "sink"; + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/structure/sign/nosmoking_2{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/bot, +/area/hydroponics{ + name = "Abandoned Garden" + }) +"aAl" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics{ + name = "Abandoned Garden" + }) +"aAm" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/structure/sign/botany{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/bot, +/area/hydroponics{ + name = "Abandoned Garden" + }) +"aAn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aAo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aAp" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aAq" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aAr" = ( +/obj/structure/bed, +/obj/machinery/status_display{ + pixel_y = 32 + }, +/obj/item/weapon/bedsheet/rainbow, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aAs" = ( +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aAt" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/structure/sign/nanotrasen{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aAu" = ( +/turf/closed/wall, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aAv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aAw" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aAx" = ( +/turf/closed/wall, +/area/crew_quarters/bar) +"aAy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/fore) +"aAz" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/fore) +"aAA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/firecloset, +/turf/open/floor/plasteel/brown, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"aAB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"aAC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/brown, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"aAD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/brown, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"aAE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"aAF" = ( +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"aAG" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/brown, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"aAH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/brown, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"aAI" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (SOUTHEAST)"; + icon_state = "brown"; + dir = 6 + }, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"aAJ" = ( +/obj/machinery/camera{ + c_tag = "Cargo Bay - Port"; + dir = 4; + name = "cargo camera" + }, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=4"; + dir = 4; + freq = 1400; + location = "QM #4" + }, +/mob/living/simple_animal/bot/mulebot{ + beacon_freq = 1400; + home_destination = "QM #1"; + suffix = "#1" + }, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/storage) +"aAK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/loadingarea{ + dir = 4 + }, +/area/quartermaster/storage) +"aAL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning/corner{ + dir = 1 + }, +/area/quartermaster/storage) +"aAM" = ( +/obj/structure/closet/cardboard, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"aAN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start{ + name = "Cargo Technician" + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"aAO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"aAP" = ( +/turf/open/floor/plasteel/delivery, +/area/quartermaster/storage) +"aAQ" = ( +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (EAST)"; + icon_state = "brown"; + dir = 4 + }, +/area/quartermaster/storage) +"aAR" = ( +/obj/machinery/button/door{ + dir = 2; + id = "cargounload"; + layer = 4; + name = "Loading Doors"; + pixel_x = 24; + pixel_y = 8 + }, +/obj/machinery/button/door{ + id = "cargoload"; + layer = 4; + name = "Loading Doors"; + pixel_x = 24; + pixel_y = -8 + }, +/obj/machinery/computer/cargo, +/obj/machinery/camera{ + c_tag = "Cargo Bay - Starboard"; + dir = 8; + name = "cargo camera" + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"aAS" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/quartermaster/storage) +"aAT" = ( +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/quartermaster/storage) +"aAU" = ( +/obj/machinery/button/door{ + dir = 2; + id = "cargounload"; + name = "Loading Doors"; + pixel_x = -24; + pixel_y = 8 + }, +/obj/machinery/button/door{ + id = "cargoload"; + name = "Loading Doors"; + pixel_x = -24; + pixel_y = -8 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/shuttle/supply) +"aAV" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Gas to Cooling Loop"; + on = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aAW" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/obj/machinery/meter, +/turf/open/floor/plasteel/yellow, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aAX" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 8 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aAY" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aAZ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/sign/fire{ + pixel_x = 32; + pixel_y = 32 + }, +/obj/machinery/atmospherics/components/trinary/filter{ + density = 0; + dir = 8; + req_access = "0" + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aBa" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/button/door{ + id = "engsm"; + name = "Radiation Shutters Control"; + pixel_y = 24; + req_access_txt = "24" + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aBb" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Gas to Filter"; + on = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aBc" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/camera{ + c_tag = "Atmospherics - Engine Aft"; + name = "atmospherics camera" + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aBd" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aBe" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/obj/machinery/meter, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aBf" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aBg" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning/corner{ + dir = 4 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aBh" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/yellow, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aBi" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aBj" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "Atmospherics Engine APC"; + pixel_x = 26; + pixel_y = 0 + }, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/turf/open/floor/plasteel/delivery, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aBk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics{ + name = "Abandoned Garden" + }) +"aBl" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics{ + name = "Abandoned Garden" + }) +"aBm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics{ + name = "Abandoned Garden" + }) +"aBn" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics{ + name = "Abandoned Garden" + }) +"aBo" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aBp" = ( +/obj/structure/table/wood, +/obj/item/weapon/folder, +/obj/item/weapon/pen, +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aBq" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aBr" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aBs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aBt" = ( +/obj/machinery/door/airlock{ + name = "Cabin A"; + req_access_txt = "25" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aBu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aBv" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aBw" = ( +/obj/structure/table/wood, +/obj/structure/reagent_dispensers/beerkeg, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = 26 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/crew_quarters/bar) +"aBx" = ( +/obj/structure/closet/secure_closet/bar, +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 1; + name = "Bar APC"; + pixel_x = 0; + pixel_y = 25 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar) +"aBy" = ( +/obj/structure/sink/kitchen{ + desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; + name = "sink"; + pixel_y = 28 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/obj/machinery/camera{ + c_tag = "Bar Backroom"; + dir = 2; + name = "service camera" + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"aBz" = ( +/obj/structure/closet/secure_closet/bar, +/obj/machinery/status_display{ + pixel_y = 32 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar) +"aBA" = ( +/obj/structure/table/wood, +/obj/machinery/light_switch{ + pixel_x = 26; + pixel_y = 26 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 + }, +/obj/item/weapon/storage/box/beanbag, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"aBB" = ( +/obj/structure/sign/poster, +/turf/closed/wall, +/area/crew_quarters/bar) +"aBC" = ( +/obj/structure/table/wood, +/obj/structure/sign/barsign{ + pixel_y = 32 + }, +/obj/machinery/chem_dispenser/drinks, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"aBD" = ( +/obj/structure/table/wood, +/obj/machinery/chem_dispenser/drinks/beer, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar) +"aBE" = ( +/obj/machinery/vending/boozeomat, +/obj/machinery/status_display{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"aBF" = ( +/obj/structure/table/wood, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/requests_console{ + department = "Bar Counter"; + departmentType = 0; + name = "Bar RC"; + pixel_x = 0; + pixel_y = 32 + }, +/obj/item/weapon/book/manual/barman_recipes, +/obj/item/weapon/reagent_containers/food/drinks/shaker, +/obj/item/weapon/reagent_containers/glass/rag, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar) +"aBG" = ( +/obj/structure/table/wood, +/obj/machinery/status_display{ + pixel_y = 32 + }, +/obj/item/weapon/clipboard, +/obj/item/toy/figure/bartender, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"aBH" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/fancy/cigarettes/cigars{ + pixel_y = 6 + }, +/obj/item/weapon/storage/fancy/cigarettes/cigars/cohiba{ + pixel_y = 3 + }, +/obj/item/weapon/storage/fancy/cigarettes/cigars/havana, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = 26 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar) +"aBI" = ( +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/crew_quarters/bar) +"aBJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + dir = 8; + name = "Port Primary Hallway APC"; + pixel_x = -26; + pixel_y = 3 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/fore) +"aBK" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/fore) +"aBL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/fore) +"aBM" = ( +/turf/closed/wall, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aBN" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aBO" = ( +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/mining{ + name = "Cargo Warehouse"; + req_access_txt = "31" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aBP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aBQ" = ( +/turf/closed/wall, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"aBR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning/corner{ + dir = 4 + }, +/area/quartermaster/storage) +"aBS" = ( +/obj/machinery/door/airlock/external{ + name = "Supply Dock Airlock"; + req_access_txt = "31" + }, +/turf/open/floor/plasteel/warning/side, +/area/quartermaster/storage) +"aBT" = ( +/obj/docking_port/mobile/supply{ + dwidth = 5; + roundstart_move = "supply_away"; + width = 12 + }, +/obj/docking_port/stationary{ + dir = 8; + dwidth = 5; + height = 7; + id = "supply_home"; + name = "Cargo Bay"; + width = 12 + }, +/turf/closed/wall/mineral/titanium, +/area/shuttle/supply) +"aBU" = ( +/turf/closed/wall/r_wall, +/area/security/prison) +"aBV" = ( +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/prison) +"aBW" = ( +/obj/structure/lattice, +/obj/structure/grille/broken, +/turf/open/space, +/area/space) +"aBX" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/auxsolarport) +"aBY" = ( +/turf/closed/wall/r_wall, +/area/maintenance/auxsolarport) +"aBZ" = ( +/turf/closed/wall/r_wall, +/area/maintenance/incinerator) +"aCa" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/incinerator) +"aCb" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/tank/internals/plasma, +/obj/machinery/light/small, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/structure/sign/nosmoking_2{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/bot, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aCc" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aCd" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = -28; + pixel_y = -28 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 1 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aCe" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/yellow, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aCf" = ( +/turf/open/floor/plasteel/neutral, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aCg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/yellow, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aCh" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/yellow, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aCi" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aCj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/yellow, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aCk" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aCl" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/yellow, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aCm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/warning/corner, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aCn" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aCo" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/crowbar/red, +/obj/item/weapon/wrench, +/obj/item/clothing/mask/gas, +/obj/machinery/light/small, +/turf/open/floor/plasteel/bot, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aCp" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/hydroponics{ + name = "Abandoned Garden" + }) +"aCq" = ( +/obj/machinery/hydroponics/soil, +/obj/item/seeds/harebell, +/obj/machinery/light/small, +/turf/open/floor/plasteel/delivery, +/area/hydroponics{ + name = "Abandoned Garden" + }) +"aCr" = ( +/obj/structure/table, +/obj/item/weapon/shovel/spade, +/obj/item/weapon/reagent_containers/glass/bottle/nutrient/rh{ + pixel_x = 5 + }, +/obj/item/weapon/reagent_containers/glass/bottle/nutrient/ez{ + pixel_x = -5 + }, +/obj/item/weapon/reagent_containers/syringe, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white, +/obj/machinery/power/apc{ + dir = 2; + name = "Abandoned Garden APC"; + pixel_y = -26 + }, +/turf/open/floor/plasteel/bot, +/area/hydroponics{ + name = "Abandoned Garden" + }) +"aCs" = ( +/obj/machinery/seed_extractor, +/obj/machinery/status_display{ + pixel_y = -32 + }, +/obj/item/weapon/reagent_containers/glass/bucket, +/turf/open/floor/plasteel/delivery, +/area/hydroponics{ + name = "Abandoned Garden" + }) +"aCt" = ( +/obj/structure/table, +/obj/item/device/plant_analyzer, +/obj/item/weapon/hatchet, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/hydroponics{ + name = "Abandoned Garden" + }) +"aCu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/delivery, +/area/hydroponics{ + name = "Abandoned Garden" + }) +"aCv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/delivery, +/area/hydroponics{ + name = "Abandoned Garden" + }) +"aCw" = ( +/obj/structure/table, +/obj/item/weapon/crowbar, +/obj/item/weapon/wrench, +/obj/item/weapon/reagent_containers/glass/bucket, +/turf/open/floor/plasteel/bot, +/area/hydroponics{ + name = "Abandoned Garden" + }) +"aCx" = ( +/obj/machinery/hydroponics/soil, +/obj/item/seeds/tower, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small, +/turf/open/floor/plasteel/delivery, +/area/hydroponics{ + name = "Abandoned Garden" + }) +"aCy" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aCz" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aCA" = ( +/obj/structure/table/wood, +/obj/item/device/paicard, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aCB" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aCC" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aCD" = ( +/obj/structure/dresser, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aCE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aCF" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aCG" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aCH" = ( +/obj/structure/plasticflaps{ + opacity = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=4"; + dir = 4; + freq = 1400; + location = "Bar" + }, +/turf/open/floor/plasteel/delivery, +/area/crew_quarters/bar) +"aCI" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24; + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/crew_quarters/bar) +"aCJ" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar) +"aCK" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar) +"aCL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar) +"aCM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar) +"aCN" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Bar Backroom"; + req_access_txt = "25" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/crew_quarters/bar) +"aCO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"aCP" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/crew_quarters/bar) +"aCQ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"aCR" = ( +/obj/machinery/newscaster{ + pixel_x = 32 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar) +"aCS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/delivery, +/area/hallway/primary/fore) +"aCT" = ( +/obj/structure/plasticflaps{ + opacity = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aCU" = ( +/turf/open/floor/plating, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aCV" = ( +/turf/open/floor/plasteel/delivery, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aCW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/trunk{ + tag = "icon-pipe-t (NORTH)"; + icon_state = "pipe-t"; + dir = 1 + }, +/obj/structure/disposaloutlet, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aCX" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aCY" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aCZ" = ( +/obj/structure/disposalpipe/trunk{ + tag = "icon-pipe-t (NORTH)"; + icon_state = "pipe-t"; + dir = 1 + }, +/obj/structure/disposaloutlet, +/turf/open/floor/plating, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aDa" = ( +/obj/machinery/status_display{ + pixel_y = 32 + }, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = -32 + }, +/obj/structure/table/reinforced, +/obj/item/weapon/book/manual/wiki/security_space_law, +/obj/item/device/radio, +/obj/machinery/button/door{ + desc = "A remote control switch."; + id = "cardoor"; + name = "Cargo Cell Control"; + normaldoorcontrol = 1; + pixel_x = -36; + pixel_y = -7 + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"aDb" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = 26 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"aDc" = ( +/obj/machinery/ai_status_display{ + pixel_y = 32 + }, +/obj/machinery/firealarm{ + dir = 4; + icon_state = "fire0"; + pixel_x = 24; + pixel_y = 0; + tag = "icon-fire0 (EAST)" + }, +/obj/machinery/light_switch{ + pixel_x = 38 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 26; + pixel_y = 32 + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"aDd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/red/corner{ + dir = 8 + }, +/area/quartermaster/storage) +"aDe" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/storage) +"aDf" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"aDg" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/storage) +"aDh" = ( +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/structure/closet/crate/internals, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"aDi" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "cargoload" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/quartermaster/storage) +"aDj" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "cargoload" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/poddoor{ + id = "cargoload"; + name = "supply dock loading door" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"aDk" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "cargoload" + }, +/obj/structure/plasticflaps, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/quartermaster/storage) +"aDl" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "cargoload" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/poddoor{ + id = "cargoload"; + name = "supply dock loading door" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"aDm" = ( +/obj/machinery/door/poddoor{ + id = "cargoload"; + name = "supply dock loading door" + }, +/obj/machinery/conveyor{ + dir = 4; + id = "cargoload" + }, +/turf/open/floor/plating, +/area/shuttle/supply) +"aDn" = ( +/obj/machinery/hydroponics/constructable, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/item/seeds/carrot, +/obj/structure/sign/electricshock{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/security/prison) +"aDo" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/item/weapon/cultivator, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/security/prison) +"aDp" = ( +/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/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera{ + c_tag = "Prison - Garden"; + dir = 2; + name = "prison camera"; + network = list("SS13","prison") + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/security/prison) +"aDq" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/item/weapon/reagent_containers/glass/bucket, +/obj/effect/decal/cleanable/dirt, +/mob/living/simple_animal/mouse, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/security/prison) +"aDr" = ( +/obj/machinery/hydroponics/constructable, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/item/seeds/tower, +/obj/item/seeds/amanita{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/structure/sign/electricshock{ + pixel_x = 0; + pixel_y = 32 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating, +/area/security/prison) +"aDs" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_y = 26 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/warnplate{ + dir = 9 + }, +/area/maintenance/auxsolarport) +"aDt" = ( +/obj/machinery/power/smes, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/maintenance/auxsolarport) +"aDu" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/sign/directions/engineering{ + desc = "A sign that shows there are doors here. There are doors everywhere!"; + icon_state = "doors"; + name = "WARNING: EXTERNAL AIRLOCK"; + pixel_x = 32; + tag = "icon-doors" + }, +/obj/machinery/camera{ + c_tag = "Solar - Fore Port"; + name = "solar camera" + }, +/turf/open/floor/plating/warnplate{ + dir = 5 + }, +/area/maintenance/auxsolarport) +"aDv" = ( +/obj/machinery/disposal/bin, +/obj/structure/sign/deathsposal{ + pixel_y = 32 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel/vault, +/area/maintenance/incinerator) +"aDw" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault, +/area/maintenance/incinerator) +"aDx" = ( +/obj/machinery/atmospherics/components/unary/tank/toxins, +/obj/structure/sign/nosmoking_2{ + pixel_y = 32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault, +/area/maintenance/incinerator) +"aDy" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel/vault, +/area/maintenance/incinerator) +"aDz" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 + }, +/obj/machinery/portable_atmospherics/canister, +/obj/machinery/camera{ + c_tag = "Atmospherics - Incinerator"; + name = "atmospherics camera" + }, +/turf/open/floor/plasteel/vault, +/area/maintenance/incinerator) +"aDA" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault, +/area/maintenance/incinerator) +"aDB" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/vault, +/area/maintenance/incinerator) +"aDC" = ( +/obj/machinery/power/smes{ + charge = 1e+006 + }, +/obj/structure/sign/electricshock{ + pixel_y = 32 + }, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/turf/open/floor/plasteel/vault, +/area/maintenance/incinerator) +"aDD" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aDE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/warning, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aDF" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aDG" = ( +/obj/machinery/status_display{ + pixel_y = -32 + }, +/obj/machinery/light, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/warning, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aDH" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 0; + pixel_y = -24 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aDI" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning/corner{ + dir = 1 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aDJ" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aDK" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/warning/corner, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aDL" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/light_switch{ + pixel_y = -26 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aDM" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/sign/electricshock{ + pixel_y = -32 + }, +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/warning, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aDN" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aDO" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aDP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aDQ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/barricade/wooden, +/turf/open/floor/plating, +/area/hydroponics{ + name = "Abandoned Garden" + }) +"aDR" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/barricade/wooden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/hydroponics{ + name = "Abandoned Garden" + }) +"aDS" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/barricade/wooden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/hydroponics{ + name = "Abandoned Garden" + }) +"aDT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aDU" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/camera{ + c_tag = "Service Hallway - Fore"; + dir = 4; + name = "hallway camera" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aDV" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aDW" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/airlock{ + name = "Bar Backroom"; + req_access_txt = "25" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/crew_quarters/bar) +"aDX" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/delivery, +/area/crew_quarters/bar) +"aDY" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar) +"aDZ" = ( +/obj/effect/landmark/start{ + name = "Bartender" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar) +"aEa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar) +"aEb" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"aEc" = ( +/obj/structure/sign/poster, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/bar) +"aEd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"aEe" = ( +/obj/effect/landmark/start{ + name = "Bartender" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar) +"aEf" = ( +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"aEg" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar) +"aEh" = ( +/obj/effect/landmark/start{ + name = "Bartender" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar) +"aEi" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"aEj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/bot, +/area/hallway/primary/fore) +"aEk" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aEl" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aEm" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aEn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aEo" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/conveyor{ + dir = 2; + id = "cargodisposals" + }, +/turf/open/floor/plating, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aEp" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"aEq" = ( +/obj/machinery/computer/secure_data, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (SOUTHEAST)"; + icon_state = "red"; + dir = 6 + }, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"aEr" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"aEs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (EAST)"; + icon_state = "red"; + dir = 4 + }, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"aEt" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + name = "Security Post - Cargo"; + req_access_txt = "63" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"aEu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/quartermaster/storage) +"aEv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/storage) +"aEw" = ( +/obj/effect/decal/cleanable/dirt, +/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/neutral, +/area/quartermaster/storage) +"aEx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/storage) +"aEy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/conveyor_switch{ + id = "cargoload" + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (EAST)"; + icon_state = "brown"; + dir = 4 + }, +/area/quartermaster/storage) +"aEz" = ( +/obj/machinery/conveyor{ + dir = 2; + id = "cargoload" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/quartermaster/storage) +"aEA" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/quartermaster/storage) +"aEB" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/quartermaster/storage) +"aEC" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/shuttle/supply) +"aED" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning, +/area/shuttle/supply) +"aEE" = ( +/turf/open/floor/plasteel/warning, +/area/shuttle/supply) +"aEF" = ( +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/shuttle/supply) +"aEG" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/prison) +"aEH" = ( +/obj/machinery/seed_extractor, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/security/prison) +"aEI" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/security/prison) +"aEJ" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral, +/area/security/prison) +"aEK" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/security/prison) +"aEL" = ( +/obj/machinery/biogenerator, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/security/prison) +"aEM" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/prison) +"aEN" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/door/airlock/external{ + name = "External Solar Access"; + req_access_txt = "24" + }, +/turf/open/floor/plasteel/warning/side, +/area/maintenance/auxsolarport) +"aEO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/structure/fans/tiny, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/maintenance/auxsolarport) +"aEP" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/maintenance/auxsolarport) +"aEQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/terminal{ + icon_state = "term"; + dir = 1 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarport) +"aER" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/warnplate{ + dir = 4; + luminosity = 2; + initial_gas_mix = "o2=0.01;n2=0.01"; + temperature = 2.7 + }, +/area/maintenance/auxsolarport) +"aES" = ( +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/atmos{ + name = "Fore Port Solar Access"; + req_access_txt = "24" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/maintenance/auxsolarport) +"aET" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (WEST)"; + icon_state = "vault"; + dir = 8 + }, +/area/maintenance/incinerator) +"aEU" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/maintenance/incinerator) +"aEV" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "Gas to Turbine" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/maintenance/incinerator) +"aEW" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "Gas to Turbine" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/maintenance/incinerator) +"aEX" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/maintenance/incinerator) +"aEY" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/maintenance/incinerator) +"aEZ" = ( +/obj/machinery/power/terminal{ + icon_state = "term"; + dir = 1 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/maintenance/incinerator) +"aFa" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 1; + name = "Turbine Generator APC"; + pixel_x = 0; + pixel_y = 25 + }, +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/maintenance/incinerator) +"aFb" = ( +/obj/machinery/firealarm{ + dir = 4; + icon_state = "fire0"; + pixel_x = 24; + pixel_y = 0; + tag = "icon-fire0 (EAST)" + }, +/obj/machinery/light_switch{ + pixel_x = 24; + pixel_y = 24 + }, +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/maintenance/incinerator) +"aFc" = ( +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics Access"; + req_access_txt = "24" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aFd" = ( +/obj/structure/sign/securearea, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aFe" = ( +/obj/structure/sign/biohazard, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aFf" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics Engine Access"; + req_access_txt = "24" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aFg" = ( +/obj/structure/sign/radiation, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aFh" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aFi" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/door/airlock/glass_atmos{ + name = "Power Monitoring"; + req_access_txt = "24" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aFj" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aFk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aFl" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aFm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aFn" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/side{ + dir = 5 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aFo" = ( +/obj/structure/table/wood, +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp, +/turf/open/floor/wood, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aFp" = ( +/obj/structure/table/wood, +/obj/structure/table/wood, +/obj/item/weapon/folder, +/obj/item/weapon/pen, +/turf/open/floor/wood, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aFq" = ( +/obj/structure/bed, +/obj/machinery/status_display{ + pixel_y = 32 + }, +/obj/item/weapon/bedsheet/orange, +/turf/open/floor/wood, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aFr" = ( +/obj/structure/dresser, +/turf/open/floor/wood{ + tag = "icon-wood-broken6"; + icon_state = "wood-broken6" + }, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aFs" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/turf/open/floor/wood, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aFt" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = -26; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aFu" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/loadingarea, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aFv" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/bar) +"aFw" = ( +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar) +"aFx" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar) +"aFy" = ( +/obj/structure/table/wood, +/obj/item/weapon/gun/ballistic/revolver/doublebarrel, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar) +"aFz" = ( +/obj/machinery/status_display, +/turf/closed/wall, +/area/crew_quarters/bar) +"aFA" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/lighter{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/lighter, +/obj/machinery/camera{ + c_tag = "Bar - Fore"; + dir = 4; + name = "service camera" + }, +/turf/open/floor/plasteel/vault, +/area/crew_quarters/bar) +"aFB" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/vault, +/area/crew_quarters/bar) +"aFC" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/box/matches{ + pixel_x = -3; + pixel_y = 5 + }, +/turf/open/floor/plasteel/vault, +/area/crew_quarters/bar) +"aFD" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall, +/area/crew_quarters/bar) +"aFE" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Arrivals Hallway - Center"; + dir = 4; + name = "hallway camera" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/fore) +"aFF" = ( +/obj/effect/landmark{ + name = "lightsout" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/fore) +"aFG" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/bot, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aFH" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/loadingarea, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aFI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/loadingarea, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aFJ" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aFK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aFL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/conveyor{ + dir = 2; + id = "cargodisposals" + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aFM" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/cable/white, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"aFN" = ( +/obj/machinery/computer/security, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"aFO" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/neutral, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"aFP" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (EAST)"; + icon_state = "red"; + dir = 4 + }, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"aFQ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"aFR" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/quartermaster/storage) +"aFS" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/storage) +"aFT" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/storage) +"aFU" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/storage) +"aFV" = ( +/obj/effect/landmark/start{ + name = "Cargo Technician" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"aFW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"aFX" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/shuttle/supply) +"aFY" = ( +/turf/open/floor/plasteel/delivery, +/area/shuttle/supply) +"aFZ" = ( +/obj/machinery/hydroponics/constructable, +/obj/item/seeds/glowshroom, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/security/prison) +"aGa" = ( +/obj/item/weapon/reagent_containers/glass/bucket, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/security/prison) +"aGb" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aGc" = ( +/obj/item/device/plant_analyzer, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/corner, +/area/security/prison) +"aGd" = ( +/obj/machinery/hydroponics/constructable, +/obj/item/seeds/ambrosia, +/turf/open/floor/plating, +/area/security/prison) +"aGe" = ( +/turf/closed/wall, +/area/space) +"aGf" = ( +/obj/machinery/power/solar_control{ + id = "foreport"; + name = "Fore Port Solar Control"; + track = 0 + }, +/obj/structure/cable, +/turf/open/floor/plating/warnplate{ + dir = 10 + }, +/area/maintenance/auxsolarport) +"aGg" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/plating/warnplate, +/area/maintenance/auxsolarport) +"aGh" = ( +/obj/structure/cable/white, +/obj/machinery/power/apc{ + cell_type = 10000; + dir = 2; + name = "Fore Port Solar APC"; + pixel_y = -26 + }, +/turf/open/floor/plating/warnplate{ + dir = 6 + }, +/area/maintenance/auxsolarport) +"aGi" = ( +/obj/structure/sign/electricshock, +/turf/closed/wall/r_wall, +/area/maintenance/auxsolarport) +"aGj" = ( +/obj/structure/rack, +/obj/item/weapon/storage/toolbox/emergency, +/obj/item/weapon/wrench, +/obj/item/weapon/tank/internals/emergency_oxygen/engi, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/caution{ + dir = 9 + }, +/area/maintenance/incinerator) +"aGk" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/maintenance/incinerator) +"aGl" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/neutral, +/area/maintenance/incinerator) +"aGm" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/obj/machinery/meter, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral, +/area/maintenance/incinerator) +"aGn" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/turf/open/floor/plasteel/neutral, +/area/maintenance/incinerator) +"aGo" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/turf/open/floor/plasteel/neutral, +/area/maintenance/incinerator) +"aGp" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "Mix to Turbine" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral, +/area/maintenance/incinerator) +"aGq" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/maintenance/incinerator) +"aGr" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral, +/area/maintenance/incinerator) +"aGs" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/maintenance/incinerator) +"aGt" = ( +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/atmos{ + name = "Turbine Generator Access"; + req_access_txt = "24" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/maintenance/incinerator) +"aGu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aGv" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aGw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/secure_closet/atmospherics, +/turf/open/floor/plasteel/bot, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aGx" = ( +/obj/structure/closet/radiation, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster{ + icon_state = "poster3_legit"; + pixel_x = -32; + pixel_y = 0; + tag = "icon-poster3_legit" + }, +/obj/machinery/camera{ + c_tag = "Atmospherics - Engine Access"; + name = "atmospherics camera" + }, +/turf/open/floor/plasteel/bot, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aGy" = ( +/obj/machinery/shower{ + dir = 4; + icon_state = "shower"; + name = "emergency shower" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aGz" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/delivery, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aGA" = ( +/obj/machinery/shower{ + dir = 8; + icon_state = "shower"; + name = "emergency shower" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aGB" = ( +/obj/structure/closet/radiation, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aGC" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aGD" = ( +/obj/structure/cable, +/obj/machinery/power/terminal, +/turf/open/floor/plasteel/warning, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aGE" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 28; + pixel_y = 26 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aGF" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aGG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aGH" = ( +/obj/structure/closet, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aGI" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aGJ" = ( +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aGK" = ( +/obj/structure/table/wood, +/obj/item/device/camera, +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/turf/open/floor/wood, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aGL" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aGM" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aGN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aGO" = ( +/obj/machinery/door/airlock{ + name = "Cabin B" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aGP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aGQ" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aGR" = ( +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/crew_quarters/bar) +"aGS" = ( +/obj/machinery/chem_master/condimaster{ + name = "HoochMaster 2000" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar) +"aGT" = ( +/obj/structure/closet/gmcloset, +/obj/item/weapon/wrench, +/obj/item/stack/sheet/glass{ + amount = 30 + }, +/obj/item/stack/sheet/metal{ + amount = 30 + }, +/obj/item/stack/cable_coil/random, +/obj/item/stack/cable_coil/random, +/obj/machinery/light, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"aGU" = ( +/obj/structure/table/wood, +/obj/machinery/reagentgrinder{ + desc = "Used to grind things up into raw materials and liquids."; + pixel_y = 5 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar) +"aGV" = ( +/obj/structure/table/wood, +/obj/item/stack/packageWrap, +/obj/item/weapon/hand_labeler, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"aGW" = ( +/obj/structure/chair/stool/bar, +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/redyellow, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aGX" = ( +/obj/structure/chair/stool/bar, +/turf/open/floor/plasteel/redyellow, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aGY" = ( +/turf/open/floor/plasteel/redyellow, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aGZ" = ( +/obj/structure/chair/stool/bar, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel/redyellow, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aHa" = ( +/obj/structure/chair/stool/bar, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 26; + pixel_y = 0 + }, +/turf/open/floor/plasteel/redyellow, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aHb" = ( +/turf/closed/wall, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aHc" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/item/weapon/folder/yellow, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aHd" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/effect/landmark/start{ + name = "Cargo Technician" + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTHWEST)"; + icon_state = "brown"; + dir = 9 + }, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aHe" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTH)"; + icon_state = "brown"; + dir = 1 + }, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aHf" = ( +/obj/effect/landmark{ + name = "lightsout" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTH)"; + icon_state = "brown"; + dir = 1 + }, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aHg" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTHEAST)"; + icon_state = "brown"; + dir = 5 + }, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aHh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/obj/machinery/conveyor_switch/oneway{ + id = "cargodisposals"; + name = "Trash Filter Switch"; + pixel_x = -1; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aHi" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"aHj" = ( +/obj/machinery/computer/cargo, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"aHk" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/neutral, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"aHl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (EAST)"; + icon_state = "red"; + dir = 4 + }, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"aHm" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/window/brigdoor/southright{ + dir = 8; + name = "Security Desk"; + req_access_txt = "63" + }, +/obj/machinery/door/window/northright{ + dir = 4; + name = "Security Desk" + }, +/obj/item/weapon/folder/red, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"aHn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/quartermaster/storage) +"aHo" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/storage) +"aHp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/storage) +"aHq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/storage) +"aHr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/storage) +"aHs" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/shuttle/engine/heater, +/turf/open/floor/plating/warnplate, +/area/shuttle/supply) +"aHt" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/shuttle/engine/heater, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/warnplate, +/area/shuttle/supply) +"aHu" = ( +/turf/closed/wall, +/area/security/prison) +"aHv" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/ai_status_display{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/security/prison) +"aHw" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/glass{ + name = "Garden" + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aHx" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/status_display{ + pixel_x = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/security/prison) +"aHy" = ( +/turf/closed/wall/r_wall, +/area/prison/solitary{ + name = "Prisoner Education Chamber" + }) +"aHz" = ( +/obj/machinery/door/poddoor{ + id = "justiceblast"; + name = "Justice Blast door" + }, +/turf/open/floor/plasteel/darkwarning/side{ + tag = "icon-black_warn_side (WEST)"; + icon_state = "black_warn_side"; + dir = 8 + }, +/area/prison/solitary{ + name = "Prisoner Education Chamber" + }) +"aHA" = ( +/obj/structure/lattice/catwalk, +/obj/item/weapon/wrench, +/turf/open/space, +/area/space) +"aHB" = ( +/obj/machinery/status_display{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/plasteel/caution{ + dir = 8 + }, +/area/maintenance/incinerator) +"aHC" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/maintenance/incinerator) +"aHD" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 6 + }, +/turf/open/floor/plasteel/caution/corner, +/area/maintenance/incinerator) +"aHE" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/caution, +/area/maintenance/incinerator) +"aHF" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/turf/open/floor/plasteel/caution, +/area/maintenance/incinerator) +"aHG" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/maintenance/incinerator) +"aHH" = ( +/obj/machinery/meter, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/turf/open/floor/plasteel/caution, +/area/maintenance/incinerator) +"aHI" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Port to Turbine" + }, +/turf/open/floor/plasteel/caution, +/area/maintenance/incinerator) +"aHJ" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/turf/open/floor/plasteel/caution, +/area/maintenance/incinerator) +"aHK" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/bot, +/area/maintenance/incinerator) +"aHL" = ( +/obj/structure/sign/vacuum{ + pixel_x = -32 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Atmospherics - Turbine Access"; + dir = 1; + name = "atmospherics camera" + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aHM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aHN" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/obj/structure/closet/emcloset{ + anchored = 1 + }, +/turf/open/floor/plasteel/bot, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aHO" = ( +/obj/structure/closet/radiation, +/obj/effect/decal/cleanable/dirt, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/turf/open/floor/plasteel/bot, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aHP" = ( +/obj/machinery/shower{ + dir = 4; + icon_state = "shower"; + name = "emergency shower" + }, +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aHQ" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/delivery, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aHR" = ( +/obj/machinery/shower{ + dir = 8; + icon_state = "shower"; + name = "emergency shower" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aHS" = ( +/obj/structure/closet/radiation, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 0; + pixel_y = -24 + }, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/bot, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aHT" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/computer/monitor{ + name = "Engineering Power Monitoring Console" + }, +/obj/structure/cable/white, +/obj/machinery/status_display{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/vault, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aHU" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/machinery/power/smes{ + charge = 2e+006 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aHV" = ( +/obj/structure/sign/nosmoking_2{ + pixel_x = 32 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/vault, +/area/engine/gravity_generator{ + name = "Atmospherics Engine" + }) +"aHW" = ( +/turf/closed/wall, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"aHX" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aHY" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/turf/open/floor/wood, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aHZ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/wood, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aIa" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aIb" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/briefcase, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aIc" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aId" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aIe" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aIf" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/turf/open/floor/plasteel/redyellow, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aIg" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel/redyellow, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aIh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/loadingarea, +/area/hallway/primary/fore) +"aIi" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (WEST)"; + icon_state = "brown"; + dir = 8 + }, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aIj" = ( +/turf/open/floor/plasteel/neutral, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aIk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aIl" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (EAST)"; + icon_state = "brown"; + dir = 4 + }, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aIm" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Cargo - Delivery Office"; + dir = 1; + name = "cargo camera" + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aIn" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/door_timer{ + id = "cargocell"; + name = "Cargo Cell"; + pixel_x = -32; + pixel_y = -32 + }, +/obj/machinery/power/apc{ + dir = 8; + name = "Security Post - Cargo APC"; + pixel_x = -26; + pixel_y = 0 + }, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (SOUTHWEST)"; + icon_state = "red"; + dir = 10 + }, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"aIo" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/red/side, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"aIp" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/camera{ + c_tag = "Security Post - Cargo"; + dir = 8; + name = "security camera" + }, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (SOUTHEAST)"; + icon_state = "red"; + dir = 6 + }, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"aIq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/quartermaster/storage) +"aIr" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/storage) +"aIs" = ( +/obj/machinery/conveyor{ + dir = 2; + id = "cargoload" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"aIt" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "burst_l" + }, +/turf/open/floor/plating/warnplate, +/area/shuttle/supply) +"aIu" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/floor/plating/warnplate, +/area/shuttle/supply) +"aIv" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "burst_r" + }, +/turf/open/floor/plating/warnplate, +/area/shuttle/supply) +"aIw" = ( +/obj/machinery/shower{ + icon_state = "shower"; + dir = 4 + }, +/obj/item/weapon/soap/nanotrasen, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"aIx" = ( +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/obj/structure/table, +/obj/item/weapon/storage/crayons, +/obj/item/weapon/storage/crayons, +/obj/structure/sign/electricshock{ + pixel_y = 32 + }, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating{ + icon_state = "platingdmg2" + }, +/area/security/prison) +"aIy" = ( +/obj/structure/table, +/obj/machinery/computer/libraryconsole/bookmanagement, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/security/prison) +"aIz" = ( +/obj/structure/easel, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = 32 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/security/prison) +"aIA" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (NORTH)"; + icon_state = "neutralcorner"; + dir = 1 + }, +/area/security/prison) +"aIB" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/security/prison) +"aIC" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/security/prison) +"aID" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/security/prison) +"aIE" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/security/prison) +"aIF" = ( +/obj/structure/table, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/item/weapon/paper_bin, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/security/prison) +"aIG" = ( +/obj/structure/table, +/obj/item/weapon/clipboard, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/item/toy/figure/syndie, +/obj/structure/sign/electricshock{ + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/security/prison) +"aIH" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/security/prison) +"aII" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/punching_bag, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/arrival{ + dir = 1 + }, +/area/security/prison) +"aIJ" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/weightlifter, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/security/prison) +"aIK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/sign/vacuum{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/prison/solitary{ + name = "Prisoner Education Chamber" + }) +"aIL" = ( +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/prison/solitary{ + name = "Prisoner Education Chamber" + }) +"aIM" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/sign/directions/engineering{ + desc = "A sign that shows there are doors here. There are doors everywhere!"; + icon_state = "doors"; + name = "WARNING: EXTERNAL AIRLOCK"; + pixel_x = 32; + tag = "icon-doors" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/prison/solitary{ + name = "Prisoner Education Chamber" + }) +"aIN" = ( +/obj/structure/sign/fire, +/turf/closed/wall/r_wall, +/area/maintenance/incinerator) +"aIO" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/incinerator) +"aIP" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/maintenance/incinerator) +"aIQ" = ( +/obj/machinery/doorButtons/access_button{ + idDoor = "incinerator_airlock_exterior"; + idSelf = "incinerator_access_control"; + layer = 3.1; + name = "Incinerator airlock control"; + pixel_x = -24; + pixel_y = -8 + }, +/obj/machinery/doorButtons/access_button{ + idDoor = "incinerator_airlock_interior"; + idSelf = "incinerator_access_control"; + name = "Incinerator airlock control"; + pixel_x = 24; + pixel_y = -8 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/maintenance/incinerator) +"aIR" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/caution{ + tag = "icon-caution (SOUTHWEST)"; + icon_state = "caution"; + dir = 10 + }, +/area/maintenance/incinerator) +"aIS" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/maintenance/incinerator) +"aIT" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/caution{ + dir = 4 + }, +/area/maintenance/incinerator) +"aIU" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/atmos) +"aIV" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/atmos) +"aIW" = ( +/obj/machinery/door/airlock/atmos{ + name = "Turbine Generator Access"; + req_access_txt = "24" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/atmos) +"aIX" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/floor/plating, +/area/atmos) +"aIY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/atmos) +"aIZ" = ( +/turf/closed/wall/r_wall, +/area/atmos) +"aJa" = ( +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics Access"; + req_access_txt = "24" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/atmos) +"aJb" = ( +/obj/structure/sign/radiation, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/atmos) +"aJc" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics Engine Access"; + req_access_txt = "24" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/atmos) +"aJd" = ( +/obj/structure/sign/fire, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/atmos) +"aJe" = ( +/obj/structure/sign/electricshock, +/turf/closed/wall/r_wall, +/area/atmos) +"aJf" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/space, +/area/space) +"aJg" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/space, +/area/space) +"aJh" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/space, +/area/space) +"aJi" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/space, +/area/space) +"aJj" = ( +/obj/structure/table/wood, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"aJk" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"aJl" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"aJm" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"aJn" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 1; + name = "Abandoned Gambling Den APC"; + pixel_x = 0; + pixel_y = 25 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"aJo" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"aJp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/crew_quarters/theatre) +"aJq" = ( +/turf/closed/wall, +/area/crew_quarters/theatre) +"aJr" = ( +/obj/structure/sign/nosmoking_2{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aJs" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aJt" = ( +/obj/structure/table/wood, +/obj/machinery/status_display{ + pixel_x = -32 + }, +/obj/item/device/camera_film{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/device/camera_film, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aJu" = ( +/obj/structure/table/wood, +/obj/structure/sign/poster{ + pixel_y = 32 + }, +/obj/item/weapon/soap/nanotrasen, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aJv" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 1; + name = "Atrium APC"; + pixel_x = 0; + pixel_y = 25 + }, +/obj/machinery/camera{ + c_tag = "Theatre Stage"; + dir = 2; + name = "service camera" + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aJw" = ( +/obj/structure/sign/poster{ + pixel_y = 32 + }, +/obj/structure/easel, +/obj/item/weapon/canvas/twentythreeXtwentythree, +/obj/item/weapon/canvas/twentythreeXtwentythree, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aJx" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/machinery/status_display{ + pixel_y = 32 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aJy" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aJz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/redyellow, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aJA" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/redyellow, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aJB" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aJC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 26; + pixel_y = 0 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/fore) +"aJD" = ( +/obj/structure/filingcabinet/filingcabinet, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (WEST)"; + icon_state = "brown"; + dir = 8 + }, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aJE" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aJF" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/bot, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aJG" = ( +/obj/machinery/status_display, +/turf/closed/wall, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aJH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/conveyor{ + dir = 2; + id = "cargodisposals" + }, +/obj/structure/plasticflaps, +/turf/open/floor/plating, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aJI" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"aJJ" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/door/window/brigdoor{ + id = "cargocell"; + name = "Cargo Cell"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/red, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"aJK" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"aJL" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = -26 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 1 + }, +/area/quartermaster/storage) +"aJM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/storage) +"aJN" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/loadingarea{ + tag = "icon-loadingarea (NORTH)"; + icon_state = "loadingarea"; + dir = 1 + }, +/area/quartermaster/storage) +"aJO" = ( +/obj/structure/toilet{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/security/prison) +"aJP" = ( +/obj/machinery/door/airlock{ + name = "Bathroom" + }, +/obj/structure/sign/poster{ + icon_state = "poster3_legit"; + pixel_y = 32; + tag = "icon-poster3_legit" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"aJQ" = ( +/turf/open/floor/plating, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg2" + }, +/area/security/prison) +"aJR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/mob/living/simple_animal/mouse, +/turf/open/floor/plasteel/neutral, +/area/security/prison) +"aJS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/security/prison) +"aJT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/security/prison) +"aJU" = ( +/obj/structure/table, +/obj/item/weapon/storage/pill_bottle/dice, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/security/prison) +"aJV" = ( +/obj/structure/table, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/item/weapon/paper, +/obj/item/weapon/pen, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/security/prison) +"aJW" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/security/prison) +"aJX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/security/prison) +"aJY" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/security/prison) +"aJZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 4 + }, +/area/security/prison) +"aKa" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/security/prison) +"aKb" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/security/prison) +"aKc" = ( +/obj/machinery/sparker{ + dir = 1; + id = "justicespark"; + pixel_x = -22 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/turf/open/floor/plasteel/darkred/corner{ + tag = "icon-darkredcorners (NORTH)"; + icon_state = "darkredcorners"; + dir = 1 + }, +/area/prison/solitary{ + name = "Prisoner Education Chamber" + }) +"aKd" = ( +/obj/structure/bed, +/obj/item/clothing/suit/straight_jacket, +/obj/item/clothing/mask/muzzle, +/obj/item/clothing/glasses/sunglasses/blindfold, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/prison/solitary{ + name = "Prisoner Education Chamber" + }) +"aKe" = ( +/obj/machinery/flasher{ + id = "justiceflash"; + pixel_x = 26; + req_access_txt = "63" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/darkred/corner{ + tag = "icon-darkredcorners (EAST)"; + icon_state = "darkredcorners"; + dir = 4 + }, +/area/prison/solitary{ + name = "Prisoner Education Chamber" + }) +"aKf" = ( +/obj/machinery/door/poddoor{ + id = "turbinevent"; + name = "Turbine Vent" + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/incinerator) +"aKg" = ( +/obj/machinery/power/turbine{ + tag = "icon-turbine (WEST)"; + icon_state = "turbine"; + dir = 8; + luminosity = 2 + }, +/obj/structure/sign/vacuum{ + pixel_y = -32 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/incinerator) +"aKh" = ( +/obj/machinery/power/compressor{ + tag = "icon-compressor (EAST)"; + icon_state = "compressor"; + dir = 4; + luminosity = 2; + comp_id = "incineratorturbine" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine/vacuum, +/area/maintenance/incinerator) +"aKi" = ( +/obj/machinery/igniter{ + icon_state = "igniter0"; + id = "Incinerator"; + luminosity = 2; + on = 0 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/incinerator) +"aKj" = ( +/obj/machinery/door/airlock/glass{ + autoclose = 0; + frequency = 1449; + heat_proof = 1; + icon_state = "door_locked"; + id_tag = "incinerator_airlock_exterior"; + locked = 1; + name = "Incinerator Exterior Airlock"; + req_access_txt = "12" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/maintenance/incinerator) +"aKk" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine/vacuum, +/area/maintenance/incinerator) +"aKl" = ( +/obj/machinery/door/airlock/glass{ + autoclose = 0; + frequency = 1449; + heat_proof = 1; + icon_state = "door_locked"; + id_tag = "incinerator_airlock_interior"; + locked = 1; + name = "Incinerator Interior Airlock"; + req_access_txt = "12" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/maintenance/incinerator) +"aKm" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (WEST)"; + icon_state = "vault"; + dir = 8 + }, +/area/maintenance/incinerator) +"aKn" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/binary/valve, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/maintenance/incinerator) +"aKo" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning, +/area/maintenance/incinerator) +"aKp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault, +/area/atmos) +"aKq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault, +/area/atmos) +"aKr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault, +/area/atmos) +"aKs" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/vault, +/area/atmos) +"aKt" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = 26 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 6 + }, +/turf/open/floor/plasteel/vault, +/area/atmos) +"aKu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 10 + }, +/area/atmos) +"aKv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/delivery, +/area/atmos) +"aKw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 6 + }, +/area/atmos) +"aKx" = ( +/obj/machinery/status_display{ + pixel_y = 32 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/vault, +/area/atmos) +"aKy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/vault, +/area/atmos) +"aKz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 10 + }, +/area/atmos) +"aKA" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/delivery, +/area/atmos) +"aKB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 6 + }, +/area/atmos) +"aKC" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 10 + }, +/turf/open/floor/plasteel/vault, +/area/atmos) +"aKD" = ( +/turf/open/floor/plasteel/vault, +/area/atmos) +"aKE" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/vault, +/area/atmos) +"aKF" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"aKG" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"aKH" = ( +/obj/structure/table/wood, +/obj/item/weapon/clipboard, +/obj/item/weapon/folder/red, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"aKI" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"aKJ" = ( +/obj/structure/chair/stool/bar, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"aKK" = ( +/obj/machinery/computer/slot_machine, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/sign/poster{ + pixel_x = 32 + }, +/turf/open/floor/wood{ + tag = "icon-wood-broken2"; + icon_state = "wood-broken2" + }, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"aKL" = ( +/obj/structure/dresser, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/obj/machinery/status_display{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/redblue, +/area/crew_quarters/theatre) +"aKM" = ( +/obj/structure/table/wood, +/obj/structure/sign/poster{ + pixel_y = 32 + }, +/obj/item/device/instrument/eguitar, +/obj/item/toy/crayon/spraycan/lubecan{ + charges = 5 + }, +/turf/open/floor/plasteel/redblue, +/area/crew_quarters/theatre) +"aKN" = ( +/obj/machinery/vending/autodrobe, +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 1; + name = "Theatre Backstage APC"; + pixel_x = 0; + pixel_y = 25 + }, +/turf/open/floor/plasteel/redblue, +/area/crew_quarters/theatre) +"aKO" = ( +/obj/structure/table/wood, +/obj/structure/sign/poster{ + pixel_y = 32 + }, +/obj/item/weapon/clipboard, +/obj/item/toy/figure/clown, +/turf/open/floor/plasteel/redblue, +/area/crew_quarters/theatre) +"aKP" = ( +/obj/structure/table/wood, +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/obj/item/weapon/storage/crayons, +/obj/item/weapon/storage/crayons, +/obj/item/device/flashlight/lamp/bananalamp{ + pixel_y = 5 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = 26 + }, +/turf/open/floor/plasteel/redblue, +/area/crew_quarters/theatre) +"aKQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aKR" = ( +/obj/structure/sign/poster, +/turf/closed/wall, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aKS" = ( +/obj/structure/table/wood, +/obj/item/device/instrument/guitar, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aKT" = ( +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aKU" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aKV" = ( +/turf/open/floor/carpet, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aKW" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aKX" = ( +/obj/structure/table/wood, +/obj/item/clothing/head/fedora, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aKY" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/redyellow, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aKZ" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/pill_bottle/dice, +/turf/open/floor/plasteel/redyellow, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aLa" = ( +/obj/item/weapon/reagent_containers/food/condiment/saltshaker{ + pixel_x = -8; + pixel_y = 5 + }, +/obj/item/weapon/reagent_containers/food/condiment/peppermill{ + pixel_x = -8 + }, +/obj/structure/table/wood, +/turf/open/floor/plasteel/redyellow, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aLb" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola, +/turf/open/floor/plasteel/redyellow, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aLc" = ( +/obj/structure/table, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/item/stack/wrapping_paper{ + pixel_y = 5 + }, +/obj/item/stack/packageWrap, +/obj/item/weapon/hand_labeler, +/obj/machinery/power/apc{ + dir = 8; + name = "Delivery Office APC"; + pixel_x = -26; + pixel_y = 3 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (WEST)"; + icon_state = "brown"; + dir = 8 + }, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aLd" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/landmark/start{ + name = "Cargo Technician" + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aLe" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aLf" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (EAST)"; + icon_state = "brown"; + dir = 4 + }, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aLg" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/plasticflaps, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aLh" = ( +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"aLi" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/closet/secure_closet/brig{ + id = "cargocell"; + name = "Cargo Cell Locker" + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"aLj" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"aLk" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"aLl" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/quartermaster/storage) +"aLm" = ( +/turf/open/floor/plasteel/warning, +/area/quartermaster/storage) +"aLn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/warning, +/area/quartermaster/storage) +"aLo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/warning, +/area/quartermaster/storage) +"aLp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning, +/area/quartermaster/storage) +"aLq" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning, +/area/quartermaster/storage) +"aLr" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/warning, +/area/quartermaster/storage) +"aLs" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/light, +/obj/machinery/camera{ + c_tag = "Cargo Bay - Aft Starboard"; + dir = 1; + name = "cargo camera" + }, +/turf/open/floor/plasteel/warning, +/area/quartermaster/storage) +"aLt" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/quartermaster/storage) +"aLu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/storage) +"aLv" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/storage) +"aLw" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"aLx" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/chef_recipes, +/obj/item/weapon/storage/box/donkpockets, +/obj/item/clothing/head/chefhat, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/security/prison) +"aLy" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral, +/area/security/prison) +"aLz" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/prison) +"aLA" = ( +/obj/structure/chair/stool, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/security/prison) +"aLB" = ( +/obj/structure/table, +/obj/item/trash/deadmouse{ + pixel_y = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plating, +/area/security/prison) +"aLC" = ( +/obj/structure/table, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/item/toy/cards/deck, +/turf/open/floor/plasteel/neutral, +/area/security/prison) +"aLD" = ( +/obj/structure/chair/stool, +/turf/open/floor/plating, +/area/security/prison) +"aLE" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral, +/area/security/prison) +"aLF" = ( +/turf/open/floor/plasteel/neutral, +/area/security/prison) +"aLG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/security/prison) +"aLH" = ( +/obj/structure/chair/stool, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/security/prison) +"aLI" = ( +/obj/machinery/vending/coffee, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/redyellow/side, +/area/security/prison) +"aLJ" = ( +/turf/open/floor/plasteel/redyellow/side, +/obj/machinery/vending/sustenance, +/turf/open/floor/plating{ + icon_state = "platingdmg2" + }, +/area/security/prison) +"aLK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault, +/area/prison/solitary{ + name = "Prisoner Education Chamber" + }) +"aLL" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on, +/turf/open/floor/plasteel/vault, +/area/prison/solitary{ + name = "Prisoner Education Chamber" + }) +"aLM" = ( +/obj/structure/sign/poster{ + icon_state = "poster4_legit"; + pixel_x = 32; + pixel_y = 0; + tag = "icon-poster4_legit" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault, +/area/prison/solitary{ + name = "Prisoner Education Chamber" + }) +"aLN" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 4; + frequency = 1441; + id = "mix_in"; + pixel_y = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine/vacuum, +/area/maintenance/incinerator) +"aLO" = ( +/obj/structure/sign/fire, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/maintenance/incinerator) +"aLP" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8 + }, +/obj/machinery/light/small, +/turf/open/floor/engine/vacuum, +/area/maintenance/incinerator) +"aLQ" = ( +/obj/machinery/doorButtons/airlock_controller{ + idExterior = "incinerator_airlock_exterior"; + idInterior = "incinerator_airlock_interior"; + idSelf = "incinerator_access_control"; + name = "Incinerator Access Console"; + pixel_x = 8; + pixel_y = -24; + req_access_txt = "12" + }, +/obj/machinery/button/ignition{ + id = "Incinerator"; + pixel_x = 8; + pixel_y = -36 + }, +/obj/machinery/button/door{ + id = "turbinevent"; + name = "Turbine Vent Control"; + pixel_x = -8; + pixel_y = -36; + req_access_txt = "12" + }, +/obj/machinery/button/door{ + id = "auxincineratorvent"; + name = "Auxiliary Vent Control"; + pixel_x = -8; + pixel_y = -24; + req_access_txt = "12" + }, +/obj/machinery/computer/turbine_computer{ + id = "incineratorturbine" + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/caution{ + tag = "icon-caution (SOUTHWEST)"; + icon_state = "caution"; + dir = 10 + }, +/area/maintenance/incinerator) +"aLR" = ( +/obj/structure/table/reinforced, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/item/weapon/clipboard, +/obj/item/weapon/folder/yellow, +/obj/item/weapon/reagent_containers/pill/patch/silver_sulf, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/caution, +/area/maintenance/incinerator) +"aLS" = ( +/obj/structure/table/reinforced, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/caution, +/area/maintenance/incinerator) +"aLT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/atmos) +"aLU" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/caution{ + dir = 9 + }, +/area/atmos) +"aLV" = ( +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/structure/tank_dispenser, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/caution{ + dir = 1 + }, +/area/atmos) +"aLW" = ( +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/machinery/computer/atmos_control, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/caution{ + dir = 1 + }, +/area/atmos) +"aLX" = ( +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/machinery/computer/atmos_alert, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/caution{ + dir = 1 + }, +/area/atmos) +"aLY" = ( +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/structure/table/reinforced, +/obj/item/weapon/crowbar/red, +/obj/item/weapon/wrench, +/obj/item/clothing/mask/gas, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/caution{ + dir = 1 + }, +/area/atmos) +"aLZ" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/tank/internals/emergency_oxygen{ + pixel_x = 6 + }, +/obj/item/weapon/tank/internals/emergency_oxygen{ + pixel_x = -6 + }, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/caution{ + dir = 5 + }, +/area/atmos) +"aMa" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/atmos) +"aMb" = ( +/turf/open/floor/plasteel/delivery, +/area/atmos) +"aMc" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/atmos) +"aMd" = ( +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/table/reinforced, +/obj/item/weapon/electronics/airalarm, +/obj/item/weapon/electronics/airalarm, +/obj/item/weapon/electronics/firealarm, +/obj/item/weapon/electronics/firealarm, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/caution{ + dir = 9 + }, +/area/atmos) +"aMe" = ( +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/table/reinforced, +/obj/item/stack/cable_coil/white, +/obj/item/weapon/pipe_dispenser, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/caution{ + dir = 5 + }, +/area/atmos) +"aMf" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/atmos) +"aMg" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/atmos) +"aMh" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-18" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/atmos) +"aMi" = ( +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/table/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/item/stack/rods{ + amount = 23 + }, +/obj/item/weapon/storage/box/lights/mixed, +/turf/open/floor/plasteel/caution{ + dir = 9 + }, +/area/atmos) +"aMj" = ( +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/structure/table/reinforced, +/obj/machinery/cell_charger, +/obj/item/weapon/stock_parts/cell/high, +/turf/open/floor/plasteel/caution{ + dir = 1 + }, +/area/atmos) +"aMk" = ( +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/structure/table/reinforced, +/obj/item/stack/sheet/plasteel{ + amount = 20 + }, +/obj/item/stack/sheet/rglass{ + amount = 20; + pixel_x = 2; + pixel_y = -2 + }, +/turf/open/floor/plasteel/caution{ + dir = 5 + }, +/area/atmos) +"aMl" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/atmos) +"aMm" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/atmos) +"aMn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aMo" = ( +/obj/structure/sign/poster{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"aMp" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/briefcase, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"aMq" = ( +/obj/structure/table/wood, +/obj/item/toy/cards/deck/syndicate{ + icon_state = "deck_syndicate_full"; + pixel_x = 0; + pixel_y = 6 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"aMr" = ( +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"aMs" = ( +/obj/structure/chair/stool/bar, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"aMt" = ( +/obj/machinery/computer/slot_machine, +/obj/structure/sign/poster{ + pixel_x = 32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood{ + icon_state = "wood-broken4" + }, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"aMu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aMv" = ( +/obj/structure/mirror{ + desc = "Mirror mirror on the wall, who is the most robust of them all?"; + pixel_x = -28 + }, +/turf/open/floor/plasteel/redblue, +/area/crew_quarters/theatre) +"aMw" = ( +/obj/effect/landmark/start{ + name = "Clown" + }, +/turf/open/floor/plasteel/redblue, +/area/crew_quarters/theatre) +"aMx" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/redblue, +/area/crew_quarters/theatre) +"aMy" = ( +/turf/open/floor/plasteel/delivery, +/area/crew_quarters/theatre) +"aMz" = ( +/obj/structure/plasticflaps{ + opacity = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + dir = 8; + freq = 1400; + location = "Theatre" + }, +/turf/open/floor/plasteel/delivery, +/area/crew_quarters/theatre) +"aMA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/delivery, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aMB" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aMC" = ( +/obj/structure/table/wood, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24; + pixel_y = 0 + }, +/obj/item/device/camera, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aMD" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/carpet, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aME" = ( +/obj/structure/chair/wood/normal, +/turf/open/floor/carpet, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aMF" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aMG" = ( +/obj/structure/chair/comfy/brown{ + icon_state = "comfychair"; + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aMH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/redyellow, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aMI" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice, +/turf/open/floor/plasteel/redyellow, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aMJ" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/weapon/reagent_containers/food/snacks/cheesiehonkers, +/turf/open/floor/plasteel/redyellow, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aMK" = ( +/obj/structure/table/wood, +/obj/item/toy/cards/deck, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/redyellow, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aML" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/redyellow, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aMM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/redyellow, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aMN" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/glass{ + name = "Atrium" + }, +/turf/open/floor/plasteel/warning/side, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aMO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/fore) +"aMP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/hallway/primary/fore) +"aMQ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/fore) +"aMR" = ( +/obj/structure/table, +/obj/item/weapon/storage/box{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/lights/mixed, +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 0; + pixel_y = -24 + }, +/obj/machinery/light_switch{ + pixel_x = -26; + pixel_y = -26 + }, +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (SOUTHWEST)"; + icon_state = "brown"; + dir = 10 + }, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aMS" = ( +/obj/structure/table, +/obj/item/weapon/folder/yellow, +/obj/item/device/destTagger, +/turf/open/floor/plasteel/brown, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aMT" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/brown, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aMU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (SOUTHEAST)"; + icon_state = "brown"; + dir = 6 + }, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aMV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/trunk, +/obj/machinery/disposal/deliveryChute{ + tag = "icon-intake (NORTH)"; + icon_state = "intake"; + dir = 1 + }, +/turf/open/floor/plating, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aMW" = ( +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (SOUTHWEST)"; + icon_state = "red"; + dir = 10 + }, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"aMX" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/red/side, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"aMY" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (SOUTHEAST)"; + icon_state = "red"; + dir = 6 + }, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"aMZ" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/cable/white, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"aNa" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTHWEST)"; + icon_state = "brown"; + dir = 9 + }, +/area/quartermaster/storage) +"aNb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTH)"; + icon_state = "brown"; + dir = 1 + }, +/area/quartermaster/storage) +"aNc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTH)"; + icon_state = "brown"; + dir = 1 + }, +/area/quartermaster/storage) +"aNd" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTHEAST)"; + icon_state = "brown"; + dir = 5 + }, +/area/quartermaster/storage) +"aNe" = ( +/obj/machinery/status_display{ + density = 0; + name = "cargo display"; + pixel_x = 0; + pixel_y = 0; + supply_display = 1 + }, +/turf/closed/wall, +/area/quartermaster/qm) +"aNf" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/quartermaster/qm) +"aNg" = ( +/turf/closed/wall, +/area/quartermaster/qm) +"aNh" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/quartermaster/qm) +"aNi" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/quartermaster/qm) +"aNj" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/quartermaster/qm) +"aNk" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/quartermaster/qm) +"aNl" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/quartermaster/qm) +"aNm" = ( +/obj/structure/table/glass, +/obj/item/weapon/reagent_containers/glass/bottle/morphine, +/obj/item/weapon/reagent_containers/syringe, +/turf/open/floor/plasteel/whitered/side{ + dir = 9 + }, +/area/security/prison) +"aNn" = ( +/obj/structure/table/glass, +/obj/item/weapon/folder/blue, +/obj/item/device/healthanalyzer, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/whitered/side{ + dir = 1 + }, +/area/security/prison) +"aNo" = ( +/obj/structure/table/glass, +/obj/item/weapon/reagent_containers/glass/bottle/morphine, +/obj/item/weapon/reagent_containers/syringe, +/turf/open/floor/plasteel/whitered/side{ + dir = 5 + }, +/area/security/prison) +"aNp" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_x = -2; + pixel_y = 5 + }, +/turf/open/floor/plating, +/area/security/prison) +"aNq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/security/prison) +"aNr" = ( +/obj/machinery/light/small, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/red/corner{ + dir = 8 + }, +/area/security/prison) +"aNs" = ( +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/security/prison) +"aNt" = ( +/obj/machinery/camera{ + c_tag = "Prison - Relaxation Area"; + dir = 1; + name = "prison camera"; + network = list("SS13","prison") + }, +/turf/open/floor/plating, +/area/security/prison) +"aNu" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral/corner, +/area/security/prison) +"aNv" = ( +/obj/machinery/holopad, +/obj/item/device/radio/intercom{ + desc = "Talk through this. It looks like it has been modified to not broadcast."; + dir = 2; + name = "Prison Intercom"; + pixel_x = 0; + pixel_y = -28; + prison_radio = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/security/prison) +"aNw" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/security/prison) +"aNx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/security/prison) +"aNy" = ( +/obj/machinery/computer/arcade, +/turf/open/floor/plating, +/area/security/prison) +"aNz" = ( +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "justicechamber"; + name = "Justice Chamber Blast door" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/prison/solitary{ + name = "Prisoner Education Chamber" + }) +"aNA" = ( +/obj/machinery/door/poddoor/preopen{ + id = "justicechamber"; + name = "Justice Chamber Blast door" + }, +/obj/machinery/door/window/brigdoor/northright{ + dir = 2; + name = "Justice Chamber"; + req_access_txt = "3" + }, +/obj/machinery/door/window/brigdoor/northright{ + name = "Justice Chamber"; + req_access_txt = "3" + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/prison/solitary{ + name = "Prisoner Education Chamber" + }) +"aNB" = ( +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "justicechamber"; + name = "Justice Chamber Blast door" + }, +/obj/structure/sign/electricshock{ + pixel_x = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/prison/solitary{ + name = "Prisoner Education Chamber" + }) +"aNC" = ( +/obj/structure/lattice/catwalk, +/obj/structure/disposaloutlet{ + tag = "icon-outlet (WEST)"; + icon_state = "outlet"; + dir = 8 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/space, +/area/space) +"aND" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plating/warnplate{ + dir = 10 + }, +/area/space) +"aNE" = ( +/obj/machinery/door/poddoor{ + id = "auxincineratorvent"; + name = "Incineration Chamber Vent" + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/incinerator) +"aNF" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/incinerator) +"aNG" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 6 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/atmos) +"aNH" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/table/reinforced, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/turf/open/floor/plasteel/caution{ + dir = 8 + }, +/area/atmos) +"aNI" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/atmos) +"aNJ" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/stool, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/atmos) +"aNK" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/atmos) +"aNL" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/atmos) +"aNM" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/atmos) +"aNN" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/atmos) +"aNO" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/atmos) +"aNP" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/atmos) +"aNQ" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/atmos) +"aNR" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/atmos) +"aNS" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/atmos) +"aNT" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 10; + initialize_directions = 10 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/atmos) +"aNU" = ( +/obj/structure/lattice, +/turf/open/space, +/area/atmos) +"aNV" = ( +/obj/structure/grille, +/turf/closed/wall/r_wall, +/area/atmos) +"aNW" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/barricade/wooden, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"aNX" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood{ + icon_state = "wood-broken4" + }, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"aNY" = ( +/turf/open/floor/wood{ + tag = "icon-wood-broken2"; + icon_state = "wood-broken2" + }, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"aNZ" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"aOa" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/mob/living/simple_animal/cockroach, +/turf/open/floor/wood{ + tag = "icon-wood-broken5"; + icon_state = "wood-broken5" + }, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"aOb" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"aOc" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 2; + icon_state = "pipe-j2s"; + name = "Theatre Junction"; + sortType = 18 + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aOd" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock{ + name = "Theatre Backstage"; + req_access_txt = "46" + }, +/turf/open/floor/plasteel/warning/side, +/area/crew_quarters/theatre) +"aOe" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/redblue/redside{ + tag = "icon-redblue (NORTH)"; + icon_state = "redblue"; + dir = 1 + }, +/area/crew_quarters/theatre) +"aOf" = ( +/obj/machinery/holopad, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/theatre) +"aOg" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/redblue/redside{ + tag = "icon-redblue (NORTH)"; + icon_state = "redblue"; + dir = 1 + }, +/area/crew_quarters/theatre) +"aOh" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/redblue/redside{ + tag = "icon-redblue (NORTH)"; + icon_state = "redblue"; + dir = 1 + }, +/area/crew_quarters/theatre) +"aOi" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/delivery, +/area/crew_quarters/theatre) +"aOj" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/airlock{ + name = "Theatre Backstage"; + req_access_txt = "46" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/crew_quarters/theatre) +"aOk" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aOl" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aOm" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/airlock{ + name = "Theatre Backstage"; + req_access_txt = "46" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aOn" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/light_switch{ + pixel_x = -26; + pixel_y = -26 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aOo" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aOp" = ( +/obj/structure/chair/wood/normal{ + tag = "icon-wooden_chair (EAST)"; + icon_state = "wooden_chair"; + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/carpet, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aOq" = ( +/obj/machinery/holopad, +/turf/open/floor/carpet, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aOr" = ( +/obj/effect/landmark{ + name = "lightsout" + }, +/turf/open/floor/plasteel/redyellow, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aOs" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Atrium" + }, +/turf/open/floor/plasteel/warning/side, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aOt" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/goonplaque, +/area/hallway/primary/fore) +"aOu" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/glass_mining{ + name = "Delivery Office"; + req_access_txt = "48;50" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aOv" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aOw" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/closed/wall, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aOx" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"aOy" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"aOz" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/door/airlock/glass_security{ + id_tag = "cardoor"; + name = "Cargo Cell"; + req_access_txt = "63" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"aOA" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"aOB" = ( +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/obj/machinery/power/apc{ + dir = 8; + name = "Cargo Bay APC"; + pixel_x = -26; + pixel_y = 3 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/camera{ + c_tag = "Cargo Bay - Aft Port"; + dir = 4; + name = "cargo camera" + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (WEST)"; + icon_state = "brown"; + dir = 8 + }, +/area/quartermaster/storage) +"aOC" = ( +/obj/structure/table/reinforced, +/obj/machinery/computer/stockexchange, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/storage) +"aOD" = ( +/obj/structure/table/reinforced, +/obj/item/stack/packageWrap, +/obj/item/weapon/hand_labeler, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/storage) +"aOE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/storage) +"aOF" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/box/donkpockets, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/storage) +"aOG" = ( +/obj/structure/table/reinforced, +/obj/machinery/microwave{ + desc = "Cooks and boils stuff, somehow."; + pixel_x = -3; + pixel_y = 5 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/storage) +"aOH" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (EAST)"; + icon_state = "brown"; + dir = 4 + }, +/area/quartermaster/storage) +"aOI" = ( +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTHWEST)"; + icon_state = "brown"; + dir = 9 + }, +/area/quartermaster/qm) +"aOJ" = ( +/obj/structure/table, +/obj/item/weapon/clipboard, +/obj/item/toy/figure/qm, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTH)"; + icon_state = "brown"; + dir = 1 + }, +/area/quartermaster/qm) +"aOK" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTH)"; + icon_state = "brown"; + dir = 1 + }, +/area/quartermaster/qm) +"aOL" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + cell_type = 10000; + dir = 1; + name = "Quartermaster's Office APC"; + pixel_x = 0; + pixel_y = 28 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTH)"; + icon_state = "brown"; + dir = 1 + }, +/area/quartermaster/qm) +"aOM" = ( +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTH)"; + icon_state = "brown"; + dir = 1 + }, +/area/quartermaster/qm) +"aON" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTH)"; + icon_state = "brown"; + dir = 1 + }, +/area/quartermaster/qm) +"aOO" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/yellow, +/obj/item/stack/packageWrap, +/obj/item/weapon/hand_labeler, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 26; + pixel_y = 32 + }, +/obj/item/device/radio/intercom{ + dir = 8; + name = "Station Intercom (General)"; + pixel_x = 28 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTHEAST)"; + icon_state = "brown"; + dir = 5 + }, +/area/quartermaster/qm) +"aOP" = ( +/obj/structure/bed, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/item/weapon/bedsheet/qm, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTH)"; + icon_state = "brown"; + dir = 1 + }, +/area/quartermaster/qm) +"aOQ" = ( +/obj/structure/table/reinforced, +/obj/item/device/flashlight/lamp, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTHEAST)"; + icon_state = "brown"; + dir = 5 + }, +/area/quartermaster/qm) +"aOR" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/quartermaster/qm) +"aOS" = ( +/obj/structure/bed, +/obj/item/clothing/suit/straight_jacket, +/obj/item/clothing/mask/muzzle, +/obj/item/clothing/glasses/sunglasses/blindfold, +/turf/open/floor/plasteel/whitered/side{ + dir = 8 + }, +/area/security/prison) +"aOT" = ( +/turf/open/floor/plasteel/white, +/area/security/prison) +"aOU" = ( +/obj/structure/bed, +/obj/item/clothing/suit/straight_jacket, +/obj/item/clothing/mask/muzzle, +/obj/item/clothing/glasses/sunglasses/blindfold, +/turf/open/floor/plasteel/whitered/side{ + dir = 4 + }, +/area/security/prison) +"aOV" = ( +/obj/machinery/door/poddoor{ + density = 0; + icon_state = "open"; + id = "permacell3"; + name = "Cell Shutters"; + opacity = 0 + }, +/obj/machinery/door/airlock/glass{ + id_tag = "permabolt3"; + name = "Cell 3" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/security/prison) +"aOW" = ( +/obj/machinery/door/poddoor{ + density = 0; + icon_state = "open"; + id = "permacell2"; + name = "Cell Shutters"; + opacity = 0 + }, +/obj/machinery/door/airlock/glass{ + id_tag = "permabolt2"; + name = "Cell 2" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/security/prison) +"aOX" = ( +/obj/machinery/door/poddoor{ + density = 0; + icon_state = "open"; + id = "permacell1"; + name = "Cell Shutters"; + opacity = 0 + }, +/obj/machinery/door/airlock/glass{ + id_tag = "permabolt1"; + name = "Cell 1" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/security/prison) +"aOY" = ( +/obj/structure/table/reinforced, +/obj/machinery/airalarm{ + dir = 4; + locked = 0; + pixel_x = -23; + pixel_y = 0 + }, +/obj/machinery/status_display{ + pixel_y = 32 + }, +/obj/item/weapon/reagent_containers/glass/bottle/morphine{ + pixel_x = 7; + pixel_y = 7 + }, +/obj/item/weapon/reagent_containers/glass/bottle/morphine{ + pixel_x = -7; + pixel_y = 7 + }, +/obj/item/weapon/reagent_containers/glass/bottle/chloralhydrate{ + pixel_x = -7 + }, +/obj/item/weapon/reagent_containers/glass/bottle/facid{ + pixel_x = 7 + }, +/obj/item/weapon/storage/backpack/dufflebag/sec{ + contents = newlist(/obj/item/weapon/scalpel,/obj/item/weapon/hemostat,/obj/item/weapon/retractor,/obj/item/weapon/cautery,/obj/item/weapon/circular_saw,/obj/item/weapon/surgical_drapes,/obj/item/clothing/mask/surgical); + desc = "A large dufflebag for holding extra supplies - this one has a material inlay with space for various sharp-looking tools."; + name = "dufflebag"; + pixel_y = 5 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTHWEST)"; + icon_state = "darkred"; + dir = 9 + }, +/area/prison/solitary{ + name = "Prisoner Education Chamber" + }) +"aOZ" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/table/reinforced, +/obj/machinery/button/ignition{ + id = "justicespark"; + pixel_x = 7; + pixel_y = 26; + req_access_txt = "63" + }, +/obj/machinery/button/flasher{ + id = "justiceflash"; + pixel_x = 7; + pixel_y = 38; + req_access_txt = "63" + }, +/obj/machinery/button/door{ + id = "justiceblast"; + name = "Justice Shutters Control"; + pixel_x = -7; + pixel_y = 26; + req_access_txt = "63" + }, +/obj/machinery/button/door{ + id = "justicechamber"; + name = "Justice Chamber Control"; + pixel_x = -7; + pixel_y = 38; + req_access_txt = "3" + }, +/obj/item/weapon/folder/red{ + pixel_x = 3 + }, +/obj/item/weapon/restraints/handcuffs, +/obj/item/device/taperecorder, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/darkred/side{ + dir = 1 + }, +/area/prison/solitary{ + name = "Prisoner Education Chamber" + }) +"aPa" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred/side{ + dir = 1 + }, +/area/prison/solitary{ + name = "Prisoner Education Chamber" + }) +"aPb" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred/side{ + dir = 1 + }, +/area/prison/solitary{ + name = "Prisoner Education Chamber" + }) +"aPc" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/closet/secure_closet/injection, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/darkred/side{ + dir = 5 + }, +/area/prison/solitary{ + name = "Prisoner Education Chamber" + }) +"aPd" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/prison/solitary{ + name = "Prisoner Education Chamber" + }) +"aPe" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/prison/solitary{ + name = "Prisoner Education Chamber" + }) +"aPf" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/space, +/area/space) +"aPg" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/space, +/area/space) +"aPh" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/space, +/area/space) +"aPi" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/space, +/area/space) +"aPj" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/atmos) +"aPk" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/table/reinforced, +/obj/item/stack/packageWrap, +/obj/item/weapon/hand_labeler, +/turf/open/floor/plasteel/caution{ + tag = "icon-caution (SOUTHWEST)"; + icon_state = "caution"; + dir = 10 + }, +/area/atmos) +"aPl" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 6 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/atmos) +"aPm" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"aPn" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + icon_state = "pump_map"; + name = "Port to Turbine" + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"aPo" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + icon_state = "pump_map"; + name = "Port to Filter" + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"aPp" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/effect/landmark{ + name = "lightsout" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"aPq" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"aPr" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"aPs" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"aPt" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 1 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/atmos) +"aPu" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Air to Pure" + }, +/turf/open/floor/plasteel/arrival{ + dir = 5 + }, +/area/atmos) +"aPv" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/atmos) +"aPw" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/atmos) +"aPx" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/space, +/area/atmos) +"aPy" = ( +/obj/machinery/meter{ + name = "Mixed Air Tank Out" + }, +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/atmos) +"aPz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume{ + dir = 8; + external_pressure_bound = 0; + frequency = 1441; + icon_state = "in"; + id_tag = "air_out"; + internal_pressure_bound = 2000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine/air, +/area/atmos) +"aPA" = ( +/obj/machinery/camera{ + c_tag = "Atmospherics - Air Supply"; + name = "atmospherics camera" + }, +/turf/open/floor/engine/air, +/area/atmos) +"aPB" = ( +/turf/open/floor/engine/air, +/area/atmos) +"aPC" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/structure/barricade/wooden, +/turf/open/floor/plasteel/warning/side, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"aPD" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"aPE" = ( +/obj/structure/chair/stool/bar, +/turf/open/floor/wood{ + tag = "icon-wood-broken3"; + icon_state = "wood-broken3" + }, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"aPF" = ( +/obj/structure/chair/stool/bar, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"aPG" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"aPH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"aPI" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/barricade/wooden, +/turf/open/floor/plasteel/warning/side, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"aPJ" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/delivery, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aPK" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/closed/wall, +/area/crew_quarters/theatre) +"aPL" = ( +/obj/structure/mirror{ + desc = "Mirror mirror on the wall, who is the most robust of them all?"; + pixel_x = -28 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/theatre) +"aPM" = ( +/obj/effect/landmark/start{ + name = "Mime" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/theatre) +"aPN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/theatre) +"aPO" = ( +/obj/machinery/firealarm{ + dir = 4; + icon_state = "fire0"; + pixel_x = 24; + pixel_y = 0; + tag = "icon-fire0 (EAST)" + }, +/obj/machinery/light_switch{ + pixel_x = 26; + pixel_y = -26 + }, +/obj/machinery/disposal/bin, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Theatre Backstage"; + dir = 8; + name = "service camera" + }, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/theatre) +"aPP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/theatre) +"aPQ" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel/loadingarea, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aPR" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/item/weapon/storage/pod{ + pixel_x = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aPS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aPT" = ( +/obj/structure/table/wood, +/obj/item/weapon/lipstick/random{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/lipstick/random{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/weapon/lipstick/random, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aPU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aPV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/carpet, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aPW" = ( +/obj/structure/chair/wood/normal{ + tag = "icon-wooden_chair (NORTH)"; + icon_state = "wooden_chair"; + dir = 1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aPX" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/drinks/coffee, +/turf/open/floor/plasteel/redyellow, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aPY" = ( +/obj/structure/table/wood, +/obj/item/device/paicard, +/turf/open/floor/plasteel/redyellow, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aPZ" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/redyellow, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aQa" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/redyellow, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aQb" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/glass{ + name = "Atrium" + }, +/turf/open/floor/plasteel/warning/side, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aQc" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/side, +/area/hallway/primary/fore) +"aQd" = ( +/obj/structure/table/reinforced, +/obj/machinery/computer/stockexchange, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTHWEST)"; + icon_state = "brown"; + dir = 9 + }, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aQe" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/yellow, +/obj/item/device/multitool, +/obj/item/weapon/pen/red, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTH)"; + icon_state = "brown"; + dir = 1 + }, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aQf" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTH)"; + icon_state = "brown"; + dir = 1 + }, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aQg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTH)"; + icon_state = "brown"; + dir = 1 + }, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aQh" = ( +/obj/machinery/photocopier, +/obj/machinery/ai_status_display{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTH)"; + icon_state = "brown"; + dir = 1 + }, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aQi" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular, +/obj/machinery/requests_console{ + department = "Cargo Office"; + departmentType = 0; + name = "Cargo Office RC"; + pixel_x = 0; + pixel_y = 32 + }, +/obj/machinery/camera{ + c_tag = "Cargo - Office"; + dir = 2; + name = "cargo camera" + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTH)"; + icon_state = "brown"; + dir = 1 + }, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aQj" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin, +/obj/machinery/power/apc{ + cell_type = 10000; + dir = 1; + name = "Cargo Office APC"; + pixel_x = 0; + pixel_y = 28 + }, +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTH)"; + icon_state = "brown"; + dir = 1 + }, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aQk" = ( +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTH)"; + icon_state = "brown"; + dir = 1 + }, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aQl" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTH)"; + icon_state = "brown"; + dir = 1 + }, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aQm" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTHEAST)"; + icon_state = "brown"; + dir = 5 + }, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aQn" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (WEST)"; + icon_state = "brown"; + dir = 8 + }, +/area/quartermaster/storage) +"aQo" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/storage) +"aQp" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/effect/landmark/start{ + name = "Cargo Technician" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/storage) +"aQq" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/storage) +"aQr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/storage) +"aQs" = ( +/obj/effect/decal/cleanable/oil, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/storage) +"aQt" = ( +/obj/machinery/computer/cargo, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/storage) +"aQu" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (EAST)"; + icon_state = "brown"; + dir = 4 + }, +/area/quartermaster/storage) +"aQv" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/quartermaster/qm) +"aQw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (WEST)"; + icon_state = "brown"; + dir = 8 + }, +/area/quartermaster/qm) +"aQx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/qm) +"aQy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/qm) +"aQz" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/qm) +"aQA" = ( +/obj/structure/table/reinforced, +/obj/item/device/flashlight/lamp, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/qm) +"aQB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/qm) +"aQC" = ( +/obj/machinery/computer/cargo, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (EAST)"; + icon_state = "brown"; + dir = 4 + }, +/area/quartermaster/qm) +"aQD" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/tinted/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/quartermaster/qm) +"aQE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (WEST)"; + icon_state = "brown"; + dir = 8 + }, +/area/quartermaster/qm) +"aQF" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/qm) +"aQG" = ( +/obj/machinery/computer/security/mining, +/obj/machinery/status_display{ + pixel_x = 32 + }, +/obj/machinery/camera{ + c_tag = "Cargo - Quartermaster's Quarters"; + dir = 8; + name = "cargo camera" + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (EAST)"; + icon_state = "brown"; + dir = 4 + }, +/area/quartermaster/qm) +"aQH" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/whitered/side{ + dir = 8 + }, +/area/security/prison) +"aQI" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/turf/open/floor/plasteel/whitered/side{ + dir = 4 + }, +/area/security/prison) +"aQJ" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/brown, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/prison) +"aQK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side, +/area/security/prison) +"aQL" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/button/door{ + id = "permabolt3"; + name = "Cell Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 0; + pixel_y = 25; + req_access_txt = "0"; + specialfunctions = 4 + }, +/obj/structure/chair/stool, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/obj/machinery/camera{ + c_tag = "Prison - Cell 3"; + dir = 2; + name = "prison camera"; + network = list("SS13","prison") + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/security/prison) +"aQM" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/brown, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/prison) +"aQN" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral/side, +/area/security/prison) +"aQO" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/button/door{ + id = "permabolt2"; + name = "Cell Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 0; + pixel_y = 25; + req_access_txt = "0"; + specialfunctions = 4 + }, +/obj/item/chair/stool, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/obj/machinery/camera{ + c_tag = "Prison - Cell 2"; + dir = 2; + name = "prison camera"; + network = list("SS13","prison") + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/prison) +"aQP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/security/prison) +"aQQ" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/button/door{ + id = "permabolt1"; + name = "Cell Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 0; + pixel_y = 25; + req_access_txt = "0"; + specialfunctions = 4 + }, +/obj/structure/chair/stool, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/obj/machinery/camera{ + c_tag = "Prison - Cell 1"; + dir = 2; + name = "prison camera"; + network = list("SS13","prison") + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/prison) +"aQR" = ( +/obj/structure/table/reinforced, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = -32 + }, +/obj/item/device/electropack, +/obj/item/device/assembly/signaler, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/darkred/side{ + dir = 8 + }, +/area/prison/solitary{ + name = "Prisoner Education Chamber" + }) +"aQS" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/prison/solitary{ + name = "Prisoner Education Chamber" + }) +"aQT" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/prison/solitary{ + name = "Prisoner Education Chamber" + }) +"aQU" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/prison/solitary{ + name = "Prisoner Education Chamber" + }) +"aQV" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/darkred/side{ + dir = 4 + }, +/area/prison/solitary{ + name = "Prisoner Education Chamber" + }) +"aQW" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/obj/machinery/meter, +/obj/machinery/door/window/westright, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/prison/solitary{ + name = "Prisoner Education Chamber" + }) +"aQX" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4; + initialize_directions = 11 + }, +/obj/structure/sign/nanotrasen{ + pixel_x = 32 + }, +/obj/item/weapon/tank/internals/oxygen/red{ + pixel_x = 3 + }, +/obj/item/weapon/tank/internals/oxygen/red{ + pixel_x = -3 + }, +/obj/item/weapon/wrench, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/prison/solitary{ + name = "Prisoner Education Chamber" + }) +"aQY" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 2; + name = "Security External Airlock"; + req_access_txt = "63" + }, +/turf/open/floor/plating/warnplate/side{ + tag = "icon-plating_warn_side (EAST)"; + icon_state = "plating_warn_side"; + dir = 4 + }, +/area/security/prison) +"aQZ" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/atmos) +"aRa" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/atmos) +"aRb" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/atmos) +"aRc" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"aRd" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"aRe" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/caution, +/area/atmos) +"aRf" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/camera{ + c_tag = "Atmospherics - Fore"; + dir = 1; + name = "atmospherics camera" + }, +/turf/open/floor/plasteel/caution, +/area/atmos) +"aRg" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/caution, +/area/atmos) +"aRh" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/caution, +/area/atmos) +"aRi" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"aRj" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"aRk" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/atmos) +"aRl" = ( +/obj/machinery/computer/atmos_control/tank{ + frequency = 1441; + input_tag = "air_in"; + name = "Mixed Air Supply Control"; + output_tag = "air_out"; + sensors = list("air_sensor" = "Tank") + }, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/turf/open/floor/plasteel/arrival{ + dir = 4 + }, +/area/atmos) +"aRm" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plating, +/area/atmos) +"aRn" = ( +/obj/machinery/air_sensor{ + frequency = 1441; + id_tag = "air_sensor" + }, +/turf/open/floor/engine/air, +/area/atmos) +"aRo" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/engine/air, +/area/atmos) +"aRp" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/engine/air, +/area/atmos) +"aRq" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"aRr" = ( +/obj/machinery/light/small, +/obj/structure/table/wood, +/obj/item/weapon/storage/pill_bottle, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"aRs" = ( +/obj/machinery/computer/slot_machine, +/obj/structure/sign/poster{ + pixel_y = -32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"aRt" = ( +/obj/machinery/computer/slot_machine, +/obj/structure/sign/poster{ + pixel_y = -32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"aRu" = ( +/obj/machinery/light/small, +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/blood/random, +/obj/item/weapon/reagent_containers/syringe{ + pixel_y = 5 + }, +/obj/item/weapon/reagent_containers/syringe, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"aRv" = ( +/obj/structure/table/wood, +/obj/machinery/requests_console{ + department = "Theatre Backstage"; + departmentType = 0; + name = "Theatre RC"; + pixel_x = -32; + pixel_y = 0 + }, +/obj/item/weapon/lipstick/random{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/lipstick/random{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/weapon/lipstick/random, +/obj/structure/sign/nosmoking_2{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/theatre) +"aRw" = ( +/obj/structure/table/wood, +/obj/structure/sign/poster{ + pixel_y = -32 + }, +/obj/item/weapon/reagent_containers/food/snacks/baguette, +/obj/item/toy/crayon/spraycan/mimecan{ + charges = 5 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/theatre) +"aRx" = ( +/obj/machinery/vending/autodrobe, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/theatre) +"aRy" = ( +/obj/structure/table/wood, +/obj/item/weapon/clipboard, +/obj/item/toy/figure/mime, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/theatre) +"aRz" = ( +/obj/structure/dresser, +/obj/structure/sign/poster{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/theatre) +"aRA" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/camera{ + c_tag = "Service Hallway - Aft"; + dir = 8; + name = "hallway camera" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aRB" = ( +/obj/structure/table/wood, +/obj/item/device/instrument/violin, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aRC" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/carpet, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aRD" = ( +/obj/structure/table/wood, +/obj/item/clothing/mask/cigarette/pipe, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aRE" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel/redyellow, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aRF" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/snacks/chips, +/turf/open/floor/plasteel/redyellow, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aRG" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/drinks/soda_cans/dr_gibb, +/turf/open/floor/plasteel/redyellow, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aRH" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/drinks/britcup, +/turf/open/floor/plasteel/redyellow, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aRI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/redyellow, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aRJ" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 1; + icon_state = "pipe-j1s"; + name = "Quartermaster Junction"; + sortType = 3 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/fore) +"aRK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/brown/corner{ + tag = "icon-browncorner (EAST)"; + icon_state = "browncorner"; + dir = 4 + }, +/area/hallway/primary/fore) +"aRL" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aRM" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (WEST)"; + icon_state = "brown"; + dir = 8 + }, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aRN" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/effect/landmark/start{ + name = "Cargo Technician" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aRO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aRP" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aRQ" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aRR" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aRS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aRT" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (EAST)"; + icon_state = "brown"; + dir = 4 + }, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aRU" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/mining{ + name = "Cargo Bay"; + req_access_txt = "0"; + req_one_access_txt = "48;50" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/quartermaster/storage) +"aRV" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (WEST)"; + icon_state = "brown"; + dir = 8 + }, +/area/quartermaster/storage) +"aRW" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/storage) +"aRX" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/storage) +"aRY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + 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/plasteel/neutral, +/area/quartermaster/storage) +"aRZ" = ( +/obj/machinery/holopad, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/landmark/start{ + name = "Quartermaster" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"aSa" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/storage) +"aSb" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/storage) +"aSc" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/storage) +"aSd" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (EAST)"; + icon_state = "brown"; + dir = 4 + }, +/area/quartermaster/storage) +"aSe" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/mining{ + name = "Quartermaster's Office"; + req_access_txt = "41" + }, +/turf/open/floor/plasteel/warning/side, +/area/quartermaster/qm) +"aSf" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (WEST)"; + icon_state = "brown"; + dir = 8 + }, +/area/quartermaster/qm) +"aSg" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/qm) +"aSh" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/mob/living/simple_animal/sloth/citrus, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/qm) +"aSi" = ( +/obj/machinery/holopad, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/qm) +"aSj" = ( +/obj/structure/table/reinforced, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/item/weapon/folder/yellow, +/obj/item/weapon/stamp/qm, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/qm) +"aSk" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/effect/landmark/start{ + name = "Quartermaster" + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/qm) +"aSl" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (EAST)"; + icon_state = "brown"; + dir = 4 + }, +/area/quartermaster/qm) +"aSm" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/mining{ + name = "Quartermaster's Quarters"; + req_access_txt = "41" + }, +/turf/open/floor/plasteel/warning/side, +/area/quartermaster/qm) +"aSn" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/landmark/start{ + name = "Quartermaster" + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/qm) +"aSo" = ( +/obj/machinery/computer/shuttle/mining, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/ai_status_display{ + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (EAST)"; + icon_state = "brown"; + dir = 4 + }, +/area/quartermaster/qm) +"aSp" = ( +/obj/structure/table/glass, +/obj/item/weapon/storage/firstaid/regular, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whitered/side{ + dir = 8 + }, +/area/security/prison) +"aSq" = ( +/obj/structure/bed/roller, +/obj/machinery/iv_drip, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whitered/side{ + dir = 4 + }, +/area/security/prison) +"aSr" = ( +/obj/machinery/flasher{ + id = "PCell 3"; + pixel_x = -28 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/prison) +"aSs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/security/prison) +"aSt" = ( +/obj/structure/table, +/obj/item/weapon/paper, +/obj/item/weapon/pen, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/prison) +"aSu" = ( +/obj/machinery/flasher{ + id = "PCell 2"; + pixel_x = -28 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/security/prison) +"aSv" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/security/prison) +"aSw" = ( +/obj/machinery/flasher{ + id = "PCell 1"; + pixel_x = -28 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/security/prison) +"aSx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/security/prison) +"aSy" = ( +/obj/structure/table, +/obj/item/weapon/paper, +/obj/item/weapon/pen, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/prison) +"aSz" = ( +/obj/structure/table/reinforced, +/obj/machinery/light_switch{ + pixel_x = -7; + pixel_y = -26 + }, +/obj/item/device/flashlight/lamp, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = -26 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (SOUTHWEST)"; + icon_state = "darkred"; + dir = 10 + }, +/area/prison/solitary{ + name = "Prisoner Education Chamber" + }) +"aSA" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/darkred/side, +/area/prison/solitary{ + name = "Prisoner Education Chamber" + }) +"aSB" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 0; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/darkred/side, +/area/prison/solitary{ + name = "Prisoner Education Chamber" + }) +"aSC" = ( +/obj/machinery/newscaster/security_unit{ + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/darkred/side, +/area/prison/solitary{ + name = "Prisoner Education Chamber" + }) +"aSD" = ( +/obj/structure/cable/white, +/obj/machinery/power/apc{ + dir = 2; + name = "Education Chamer APC"; + pixel_y = -26 + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (SOUTHEAST)"; + icon_state = "darkred"; + dir = 6 + }, +/area/prison/solitary{ + name = "Prisoner Education Chamber" + }) +"aSE" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Justice gas pump"; + on = 0 + }, +/obj/machinery/door/window/westleft, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/prison/solitary{ + name = "Prisoner Education Chamber" + }) +"aSF" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/obj/machinery/space_heater, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/prison/solitary{ + name = "Prisoner Education Chamber" + }) +"aSG" = ( +/obj/structure/sign/securearea{ + pixel_x = 32 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/fans/tiny, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/security/prison) +"aSH" = ( +/turf/open/floor/engine/co2, +/area/atmos) +"aSI" = ( +/obj/machinery/camera{ + c_tag = "Atmospherics - co2 Cell"; + name = "atmospherics camera" + }, +/turf/open/floor/engine/co2, +/area/atmos) +"aSJ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 0; + frequency = 1441; + id_tag = "co2_out"; + initialize_directions = 1; + internal_pressure_bound = 4000; + name = "co2 vent"; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine/co2, +/area/atmos) +"aSK" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/structure/grille, +/turf/closed/wall/r_wall, +/area/atmos) +"aSL" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/open/space, +/area/atmos) +"aSM" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/atmos) +"aSN" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/atmos) +"aSO" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "CO2 to Pure"; + on = 0 + }, +/turf/open/floor/plasteel/vault, +/area/atmos) +"aSP" = ( +/obj/machinery/atmospherics/pipe/manifold4w/yellow/visible, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/atmos) +"aSQ" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/heater{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/atmos) +"aSR" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"aSS" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"aST" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"aSU" = ( +/obj/machinery/ai_status_display, +/turf/closed/wall, +/area/atmos) +"aSV" = ( +/turf/closed/wall, +/area/atmos) +"aSW" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_atmos{ + name = "Atmospherics Storage"; + req_access_txt = "24" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/atmos) +"aSX" = ( +/obj/structure/sign/nosmoking_2, +/turf/closed/wall, +/area/atmos) +"aSY" = ( +/obj/machinery/status_display, +/turf/closed/wall, +/area/atmos) +"aSZ" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"aTa" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"aTb" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 6 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"aTc" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/atmos) +"aTd" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/arrival{ + dir = 6 + }, +/area/atmos) +"aTe" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/atmos) +"aTf" = ( +/obj/machinery/meter{ + name = "Mixed Air Tank In" + }, +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/atmos) +"aTg" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8; + frequency = 1441; + id = "air_in" + }, +/turf/open/floor/engine/air, +/area/atmos) +"aTh" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + dir = 8; + name = "Service Hall APC"; + pixel_x = -26; + pixel_y = 3 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aTi" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/newscaster{ + pixel_x = 32 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aTj" = ( +/obj/structure/table/wood, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26; + pixel_y = -32 + }, +/obj/item/weapon/staff/broom, +/obj/item/clothing/head/witchwig, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aTk" = ( +/obj/structure/table/wood, +/obj/structure/sign/poster{ + pixel_y = -32 + }, +/obj/item/clothing/mask/fakemoustache, +/obj/item/weapon/cane, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aTl" = ( +/obj/structure/piano{ + tag = "icon-piano"; + icon_state = "piano" + }, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aTm" = ( +/obj/structure/chair/stool/bar, +/obj/structure/sign/poster{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aTn" = ( +/obj/machinery/door/window/eastright{ + name = "Theatre Stage" + }, +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aTo" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aTp" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = -26; + pixel_y = -26 + }, +/turf/open/floor/plasteel/redyellow, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aTq" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/redyellow, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aTr" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 1; + icon_state = "pipe-j1s"; + name = "Cargo Junction"; + sortType = 2 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/fore) +"aTs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/hallway/primary/fore) +"aTt" = ( +/obj/structure/plasticflaps{ + opacity = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aTu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aTv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aTw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aTx" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aTy" = ( +/obj/effect/decal/cleanable/oil, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aTz" = ( +/obj/machinery/holopad, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aTA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aTB" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aTC" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (EAST)"; + icon_state = "brown"; + dir = 4 + }, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aTD" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/mining{ + name = "Cargo Bay"; + req_access_txt = "0"; + req_one_access_txt = "48;50" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/quartermaster/storage) +"aTE" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (WEST)"; + icon_state = "brown"; + dir = 8 + }, +/area/quartermaster/storage) +"aTF" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/storage) +"aTG" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/storage) +"aTH" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/storage) +"aTI" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (EAST)"; + icon_state = "brown"; + dir = 4 + }, +/area/quartermaster/storage) +"aTJ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plating, +/area/quartermaster/qm) +"aTK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (WEST)"; + icon_state = "brown"; + dir = 8 + }, +/area/quartermaster/qm) +"aTL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/qm) +"aTM" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/qm) +"aTN" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/cartridge/quartermaster{ + pixel_x = -6 + }, +/obj/item/weapon/cartridge/quartermaster{ + pixel_x = 6 + }, +/obj/item/weapon/cartridge/quartermaster{ + pixel_y = 6 + }, +/obj/item/device/gps/mining, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/qm) +"aTO" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/qm) +"aTP" = ( +/obj/machinery/computer/security/mining, +/obj/machinery/requests_console{ + department = "Quartermaster's Desk"; + departmentType = 0; + name = "Quartermaster RC"; + pixel_x = 32; + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (EAST)"; + icon_state = "brown"; + dir = 4 + }, +/area/quartermaster/qm) +"aTQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/quartermaster/qm) +"aTR" = ( +/obj/structure/closet/secure_closet/quartermaster, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = -26 + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/quartermaster/qm) +"aTS" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/quartermaster/qm) +"aTT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/suit_storage_unit/mining/eva, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/quartermaster/qm) +"aTU" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/quartermaster/qm) +"aTV" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/security/prison) +"aTW" = ( +/obj/machinery/door/airlock/glass_medical{ + name = "Sanitarium"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/security/prison) +"aTX" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/sign/bluecross_2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/security/prison) +"aTY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/security/prison) +"aTZ" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Long-Term Cell 3"; + req_access_txt = "2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"aUa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/security/prison) +"aUb" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Long-Term Cell 2"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"aUc" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Long-Term Cell 1"; + req_access_txt = "2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"aUd" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + name = "Education Chamber"; + req_access_txt = "3" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/prison) +"aUe" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/security/prison) +"aUf" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 1; + name = "Security External Airlock"; + req_access_txt = "63" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/directions/engineering{ + desc = "A sign that shows there are doors here. There are doors everywhere!"; + icon_state = "doors"; + name = "WARNING: EXTERNAL AIRLOCK"; + pixel_x = 32; + tag = "icon-doors" + }, +/turf/open/floor/plating/warnplate/side{ + tag = "icon-plating_warn_side (EAST)"; + icon_state = "plating_warn_side"; + dir = 4 + }, +/area/security/prison) +"aUg" = ( +/turf/closed/wall/mineral/plastitanium, +/area/security/prison) +"aUh" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/engine/co2, +/area/atmos) +"aUi" = ( +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, +/turf/open/floor/engine/co2, +/area/atmos) +"aUj" = ( +/obj/machinery/air_sensor{ + frequency = 1441; + id_tag = "co2_sensor" + }, +/turf/open/floor/engine/co2, +/area/atmos) +"aUk" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/atmos) +"aUl" = ( +/obj/machinery/computer/atmos_control/tank{ + frequency = 1441; + input_tag = "co2_in"; + name = "Carbon Dioxide Supply Control"; + output_tag = "co2_out"; + sensors = list("co2_sensor" = "Tank") + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/plasteel/vault, +/area/atmos) +"aUm" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/atmos) +"aUn" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/heater{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/delivery, +/area/atmos) +"aUo" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"aUp" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"aUq" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"aUr" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/yellow, +/obj/item/device/lightreplacer, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/atmos) +"aUs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/atmos) +"aUt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/disposal/bin, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/light_switch{ + pixel_x = -26 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/caution{ + tag = "icon-caution (WEST)"; + icon_state = "caution"; + dir = 8 + }, +/area/atmos) +"aUu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/atmos) +"aUv" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/wrench, +/obj/item/weapon/tank/internals/emergency_oxygen/engi, +/obj/item/weapon/tank/internals/emergency_oxygen/engi, +/obj/machinery/newscaster{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/bot, +/area/atmos) +"aUw" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/mask/gas, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/mask/gas, +/turf/open/floor/plasteel/warning/side, +/area/atmos) +"aUx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"aUy" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"aUz" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"aUA" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/atmos) +"aUB" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "O2 to Pure" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/atmos) +"aUC" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/securearea{ + pixel_x = 32 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Atmospherics - Starboard"; + dir = 8; + name = "atmospherics camera" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/atmos) +"aUD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aUE" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 5 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aUF" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aUG" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aUH" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 8; + icon_state = "pipe-j2s"; + name = "Hydroponics Junction"; + sortType = 21 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aUI" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aUJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + 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/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aUK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aUL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aUM" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aUN" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aUO" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/effect/landmark{ + name = "lightsout" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aUP" = ( +/turf/closed/wall, +/area/crew_quarters/kitchen) +"aUQ" = ( +/obj/machinery/status_display, +/turf/closed/wall, +/area/crew_quarters/kitchen) +"aUR" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Bar - Aft"; + dir = 4; + name = "service camera" + }, +/turf/open/floor/plasteel/redyellow, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aUS" = ( +/obj/machinery/firealarm{ + dir = 4; + icon_state = "fire0"; + pixel_x = 24; + pixel_y = 0; + tag = "icon-fire0 (EAST)" + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel/redyellow, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aUT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/camera{ + c_tag = "Arrivals Hallway - Bar"; + dir = 4; + name = "hallway camera" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/fore) +"aUU" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/fore) +"aUV" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/brown/corner{ + tag = "icon-browncorner (EAST)"; + icon_state = "browncorner"; + dir = 4 + }, +/area/hallway/primary/fore) +"aUW" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (WEST)"; + icon_state = "brown"; + dir = 8 + }, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aUX" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aUY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aUZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aVa" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aVb" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aVc" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder, +/obj/item/weapon/stamp/denied{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/stamp, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (EAST)"; + icon_state = "brown"; + dir = 4 + }, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aVd" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24; + pixel_y = -32 + }, +/obj/machinery/light_switch{ + pixel_x = -26 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (SOUTHWEST)"; + icon_state = "brown"; + dir = 10 + }, +/area/quartermaster/storage) +"aVe" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/brown, +/area/quartermaster/storage) +"aVf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/purple/side, +/area/quartermaster/storage) +"aVg" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/brown, +/area/quartermaster/storage) +"aVh" = ( +/obj/structure/closet/wardrobe/cargotech, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"aVi" = ( +/obj/structure/closet/wardrobe/cargotech, +/obj/machinery/ai_status_display{ + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"aVj" = ( +/obj/machinery/disposal/bin, +/obj/machinery/light, +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"aVk" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel/brown, +/area/quartermaster/storage) +"aVl" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/item/weapon/storage/pod{ + pixel_x = 32; + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/purple/side{ + tag = "icon-purple (SOUTHEAST)"; + icon_state = "purple"; + dir = 6 + }, +/area/quartermaster/storage) +"aVm" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/quartermaster/qm) +"aVn" = ( +/obj/machinery/photocopier, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24; + pixel_y = -32 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (SOUTHWEST)"; + icon_state = "brown"; + dir = 10 + }, +/area/quartermaster/qm) +"aVo" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/item/weapon/paper_bin, +/turf/open/floor/plasteel/brown, +/area/quartermaster/qm) +"aVp" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/machinery/light, +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/brown, +/area/quartermaster/qm) +"aVq" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_Toxins = 0 + }, +/obj/machinery/camera{ + c_tag = "Cargo - Quartermaster's Office"; + dir = 1; + name = "cargo camera" + }, +/turf/open/floor/plasteel/brown, +/area/quartermaster/qm) +"aVr" = ( +/turf/open/floor/plasteel/brown, +/area/quartermaster/qm) +"aVs" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/brown, +/area/quartermaster/qm) +"aVt" = ( +/obj/structure/table/reinforced, +/obj/machinery/computer/stockexchange, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (SOUTHEAST)"; + icon_state = "brown"; + dir = 6 + }, +/area/quartermaster/qm) +"aVu" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable/white, +/turf/open/floor/plating, +/area/quartermaster/qm) +"aVv" = ( +/obj/structure/cable/white, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/quartermaster/qm) +"aVw" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/red/corner, +/area/security/prison) +"aVx" = ( +/obj/machinery/newscaster/security_unit{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/red/corner, +/area/security/prison) +"aVy" = ( +/obj/machinery/camera{ + c_tag = "Security - Prison Port"; + dir = 2; + name = "security camera" + }, +/turf/open/floor/plasteel/red/corner, +/area/security/prison) +"aVz" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/red/corner, +/area/security/prison) +"aVA" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/red/corner, +/area/security/prison) +"aVB" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/red/corner, +/area/security/prison) +"aVC" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner, +/area/security/prison) +"aVD" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/red/corner, +/area/security/prison) +"aVE" = ( +/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/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 2 + }, +/area/security/prison) +"aVF" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/computer/security/telescreen{ + name = "Prisoner Telescreen"; + network = list("prison"); + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/red/corner, +/area/security/prison) +"aVG" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/machinery/camera{ + c_tag = "Security - Prison"; + dir = 2; + name = "security camera" + }, +/turf/open/floor/plasteel/red/corner, +/area/security/prison) +"aVH" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner, +/area/security/prison) +"aVI" = ( +/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/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 2 + }, +/area/security/prison) +"aVJ" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/computer/security/telescreen{ + name = "Prisoner Telescreen"; + network = list("prison"); + pixel_y = 32 + }, +/turf/open/floor/plasteel/red/corner, +/area/security/prison) +"aVK" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/red/corner, +/area/security/prison) +"aVL" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner, +/area/security/prison) +"aVM" = ( +/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/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 2 + }, +/area/security/prison) +"aVN" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner, +/area/security/prison) +"aVO" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner, +/area/security/prison) +"aVP" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/button/door{ + id = "brigprison"; + name = "Prison Lockdown"; + pixel_x = 26; + pixel_y = 26; + req_access_txt = "63" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/prison) +"aVQ" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/prison) +"aVR" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/glass_security{ + name = "Prison Wing"; + req_access_txt = "1" + }, +/turf/open/floor/plasteel/warning/side, +/area/security/prison) +"aVS" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/security/prison) +"aVT" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "brigprison"; + name = "Prison Blast door" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/security/prison) +"aVU" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/prison) +"aVV" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/security/prison) +"aVW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera{ + c_tag = "Security - Escape Pod"; + dir = 2; + name = "security camera" + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/prison) +"aVX" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/prison) +"aVY" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/warnplate{ + dir = 4; + luminosity = 2; + initial_gas_mix = "o2=0.01;n2=0.01"; + temperature = 2.7 + }, +/area/security/prison) +"aVZ" = ( +/obj/structure/shuttle/engine/propulsion/burst{ + dir = 4 + }, +/turf/closed/wall/mineral/titanium, +/area/shuttle/pod_3) +"aWa" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/pod_3) +"aWb" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 4; + frequency = 1441; + id = "co2_in"; + pixel_y = 1 + }, +/turf/open/floor/engine/co2, +/area/atmos) +"aWc" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/structure/grille, +/turf/closed/wall/r_wall, +/area/atmos) +"aWd" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/space, +/area/atmos) +"aWe" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/atmos) +"aWf" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/atmos) +"aWg" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/components/trinary/filter{ + dir = 2; + filter_type = "co2"; + name = "co2 filter"; + on = 1 + }, +/turf/open/floor/plasteel/vault, +/area/atmos) +"aWh" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/plasteel/bot, +/area/atmos) +"aWi" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"aWj" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"aWk" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/obj/machinery/meter, +/obj/item/weapon/wrench, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"aWl" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + icon_state = "connector_map"; + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/plasteel/warning/side, +/area/atmos) +"aWm" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/caution{ + tag = "icon-caution (WEST)"; + icon_state = "caution"; + dir = 8 + }, +/area/atmos) +"aWn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"aWo" = ( +/obj/structure/closet/secure_closet/atmospherics, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning/end{ + tag = "icon-plasteel_warn_end (NORTH)"; + icon_state = "plasteel_warn_end"; + dir = 1 + }, +/area/atmos) +"aWp" = ( +/obj/machinery/pipedispenser/disposal/transit_tube, +/turf/open/floor/plasteel/warning/side, +/area/atmos) +"aWq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"aWr" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"aWs" = ( +/obj/machinery/atmospherics/components/trinary/mixer{ + dir = 1; + name = "air mixer"; + node1_concentration = 0.8; + node2_concentration = 0.2; + on = 1; + pixel_x = 0; + pixel_y = 0; + target_pressure = 4500 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"aWt" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "O2 to Airmix"; + on = 1 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 5 + }, +/area/atmos) +"aWu" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/atmos) +"aWv" = ( +/obj/machinery/meter, +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + color = "purple"; + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/atmos) +"aWw" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + external_pressure_bound = 0; + frequency = 1441; + id_tag = "o2_out"; + initialize_directions = 1; + internal_pressure_bound = 4000; + name = "oxygen vent"; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine/o2, +/area/atmos) +"aWx" = ( +/obj/machinery/camera{ + c_tag = "Atmospherics - Oxygen Supply"; + name = "atmospherics camera" + }, +/turf/open/floor/engine/o2, +/area/atmos) +"aWy" = ( +/turf/open/floor/engine/o2, +/area/atmos) +"aWz" = ( +/turf/open/floor/plasteel/neutral/corner, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aWA" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aWB" = ( +/turf/closed/wall, +/area/hydroponics) +"aWC" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/hydroponics) +"aWD" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Hydroponic's Maintenance"; + req_access_txt = "35" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/hydroponics) +"aWE" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/closed/wall, +/area/hydroponics) +"aWF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/hydroponics) +"aWG" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = -26; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aWH" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aWI" = ( +/obj/structure/kitchenspike, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/kitchen) +"aWJ" = ( +/obj/structure/sink/kitchen{ + desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; + name = "sink"; + pixel_y = 28 + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/crew_quarters/kitchen) +"aWK" = ( +/obj/machinery/gibber, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/warning, +/area/crew_quarters/kitchen) +"aWL" = ( +/obj/structure/sink/kitchen{ + desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; + name = "sink"; + pixel_y = 28 + }, +/obj/machinery/camera{ + c_tag = "Kitchen Cold Room"; + dir = 2; + name = "service camera" + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/crew_quarters/kitchen) +"aWM" = ( +/obj/structure/closet/secure_closet/freezer/meat, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/kitchen) +"aWN" = ( +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/redyellow, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aWO" = ( +/obj/structure/chair/stool/bar, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/redyellow, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aWP" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/redyellow, +/area/crew_quarters/bar{ + name = "Atrium" + }) +"aWQ" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/fore) +"aWR" = ( +/obj/machinery/autolathe, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24; + pixel_y = -32 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/light_switch{ + pixel_x = -26 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (SOUTHWEST)"; + icon_state = "brown"; + dir = 10 + }, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aWS" = ( +/obj/machinery/disposal/bin, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/brown, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aWT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/brown, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aWU" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/plasteel/brown, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aWV" = ( +/obj/structure/table, +/obj/item/weapon/clipboard, +/obj/item/toy/figure/cargotech, +/turf/open/floor/plasteel/brown, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aWW" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-18"; + layer = 4.1 + }, +/turf/open/floor/plasteel/brown, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aWX" = ( +/obj/structure/filingcabinet/filingcabinet, +/turf/open/floor/plasteel/brown, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aWY" = ( +/obj/machinery/computer/cargo, +/turf/open/floor/plasteel/brown, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aWZ" = ( +/obj/structure/chair/office/dark, +/obj/effect/landmark/start{ + name = "Cargo Technician" + }, +/turf/open/floor/plasteel/brown, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aXa" = ( +/obj/structure/table/reinforced, +/obj/machinery/computer/stockexchange, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/obj/item/device/radio/intercom{ + dir = 8; + name = "Station Intercom (General)"; + pixel_x = 28 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (SOUTHEAST)"; + icon_state = "brown"; + dir = 6 + }, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aXb" = ( +/turf/closed/wall, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"aXc" = ( +/obj/machinery/status_display, +/turf/closed/wall, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"aXd" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"aXe" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_mining{ + name = "Mining Office"; + req_access_txt = "48" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"aXf" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"aXg" = ( +/obj/structure/plasticflaps{ + opacity = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"aXh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/mining{ + name = "Mining Dock"; + req_access_txt = "48" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"aXi" = ( +/obj/machinery/status_display, +/turf/closed/wall, +/area/quartermaster/qm) +"aXj" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/cable/white, +/turf/open/floor/plating, +/area/quartermaster/qm) +"aXk" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aXl" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/security/prison) +"aXm" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 0; + pixel_y = -26 + }, +/obj/machinery/light, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/security/prison) +"aXn" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/security/prison) +"aXo" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/security/prison) +"aXp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/security/prison) +"aXq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/security/prison) +"aXr" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/security/prison) +"aXs" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/security/prison) +"aXt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/security/prison) +"aXu" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/landmark{ + name = "lightsout" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/security/prison) +"aXv" = ( +/obj/structure/cable/white, +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 2; + name = "Prison Wing APC"; + pixel_x = 1; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/security/prison) +"aXw" = ( +/obj/machinery/light, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_y = -26 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/security/prison) +"aXx" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/security/prison) +"aXy" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/structure/sign/pods{ + dir = 8; + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/prison) +"aXz" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/prison) +"aXA" = ( +/obj/machinery/light/small, +/obj/structure/sign/securearea{ + pixel_y = -32 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/security/prison) +"aXB" = ( +/obj/machinery/door/poddoor/preopen{ + id = "brigprison"; + name = "Prison Blast door" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/security/prison) +"aXC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/security/prison) +"aXD" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/security/prison) +"aXE" = ( +/turf/open/floor/plating, +/area/security/prison) +"aXF" = ( +/obj/machinery/door/airlock/external{ + name = "Escape Pod 3" + }, +/turf/open/floor/plasteel/warning/side, +/area/security/prison) +"aXG" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Escape Pod Airlock" + }, +/obj/docking_port/mobile/pod{ + dir = 4; + id = "pod3"; + name = "escape pod 3"; + port_angle = 180; + preferred_direction = 4 + }, +/turf/open/floor/plasteel/warnwhite/end{ + tag = "icon-white_warn_end (WEST)"; + icon_state = "white_warn_end"; + dir = 8 + }, +/area/shuttle/pod_3) +"aXH" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + pixel_y = 25 + }, +/obj/item/weapon/storage/pod{ + pixel_x = 6; + pixel_y = -32 + }, +/turf/open/floor/plasteel/warnwhite/side{ + tag = "icon-white_warn_side (EAST)"; + icon_state = "white_warn_side"; + dir = 4 + }, +/area/shuttle/pod_3) +"aXI" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/status_display{ + density = 0; + layer = 3; + pixel_x = 0; + pixel_y = 32 + }, +/obj/machinery/computer/shuttle/pod{ + pixel_y = -32; + possible_destinations = "pod_asteroid3"; + shuttleId = "pod3" + }, +/turf/open/floor/plasteel/warnwhite/side{ + tag = "icon-white_warn_side (EAST)"; + icon_state = "white_warn_side"; + dir = 4 + }, +/area/shuttle/pod_3) +"aXJ" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/pod_3) +"aXK" = ( +/obj/docking_port/stationary/random{ + dir = 4; + id = "pod_asteroid4"; + name = "asteroid" + }, +/turf/open/space, +/area/space) +"aXL" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/closed/wall/r_wall, +/area/atmos) +"aXM" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/structure/sign/securearea{ + pixel_x = -32 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Atmospherics - Port"; + dir = 4; + name = "atmospherics camera" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/atmos) +"aXN" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/atmos) +"aXO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"aXP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start{ + name = "Atmospheric Technician" + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"aXQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/trinary/filter{ + dir = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"aXR" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/caution{ + tag = "icon-caution (WEST)"; + icon_state = "caution"; + dir = 8 + }, +/area/atmos) +"aXS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start{ + name = "Atmospheric Technician" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"aXT" = ( +/obj/machinery/suit_storage_unit/atmos, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning/side, +/area/atmos) +"aXU" = ( +/obj/machinery/pipedispenser/disposal, +/turf/open/floor/plasteel/warning/side, +/area/atmos) +"aXV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/effect/landmark/start{ + name = "Atmospheric Technician" + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"aXW" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + tag = "icon-intact (NORTH)"; + icon_state = "intact"; + dir = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"aXX" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/atmos) +"aXY" = ( +/obj/machinery/computer/atmos_control/tank{ + frequency = 1441; + input_tag = "o2_in"; + name = "Oxygen Supply Control"; + output_tag = "o2_out"; + sensors = list("o2_sensor" = "Tank") + }, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/plasteel/blue/side{ + dir = 4 + }, +/area/atmos) +"aXZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/atmos) +"aYa" = ( +/obj/machinery/air_sensor{ + frequency = 1441; + id_tag = "o2_sensor" + }, +/turf/open/floor/engine/o2, +/area/atmos) +"aYb" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/engine/o2, +/area/atmos) +"aYc" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/engine/o2, +/area/atmos) +"aYd" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/item/weapon/reagent_containers/glass/bucket, +/turf/open/floor/plasteel/bot, +/area/hydroponics) +"aYe" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/bot, +/area/hydroponics) +"aYf" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/bot, +/area/hydroponics) +"aYg" = ( +/obj/structure/closet/secure_closet/hydroponics, +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/bot, +/area/hydroponics) +"aYh" = ( +/obj/structure/closet/secure_closet/hydroponics, +/turf/open/floor/plasteel/bot, +/area/hydroponics) +"aYi" = ( +/obj/structure/closet/secure_closet/hydroponics, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/bot, +/area/hydroponics) +"aYj" = ( +/obj/structure/closet/wardrobe/botanist, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = 26 + }, +/turf/open/floor/plasteel/bot, +/area/hydroponics) +"aYk" = ( +/obj/structure/table/glass, +/obj/item/weapon/wrench, +/obj/item/clothing/suit/apron, +/turf/open/floor/plasteel/bot, +/area/hydroponics) +"aYl" = ( +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/obj/machinery/firealarm{ + dir = 4; + icon_state = "fire0"; + pixel_x = 24; + pixel_y = 0; + tag = "icon-fire0 (EAST)" + }, +/obj/machinery/chem_master/condimaster{ + name = "BrewMaster 3000" + }, +/turf/open/floor/plasteel/bot, +/area/hydroponics) +"aYm" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/loadingarea{ + tag = "icon-loadingarea (NORTH)"; + icon_state = "loadingarea"; + dir = 1 + }, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aYn" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aYo" = ( +/obj/structure/plasticflaps{ + opacity = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=4"; + dir = 4; + freq = 1400; + location = "Kitchen" + }, +/turf/open/floor/plasteel/delivery, +/area/crew_quarters/kitchen) +"aYp" = ( +/obj/machinery/light_switch{ + pixel_x = -26; + pixel_y = 26 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/delivery, +/area/crew_quarters/kitchen) +"aYq" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"aYr" = ( +/mob/living/simple_animal/hostile/retaliate/goat{ + name = "Pete" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"aYs" = ( +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"aYt" = ( +/obj/structure/closet/secure_closet/freezer/kitchen, +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/kitchen) +"aYu" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchencounter"; + name = "Kitchen Counter Shutters" + }, +/obj/item/weapon/reagent_containers/food/condiment/saltshaker{ + pixel_x = -8; + pixel_y = 5 + }, +/obj/item/weapon/reagent_containers/food/condiment/peppermill{ + pixel_x = -8 + }, +/obj/item/weapon/reagent_containers/food/drinks/britcup, +/turf/open/floor/plasteel/delivery, +/area/crew_quarters/kitchen) +"aYv" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchencounter"; + name = "Kitchen Counter Shutters" + }, +/turf/open/floor/plasteel/delivery, +/area/crew_quarters/kitchen) +"aYw" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchencounter"; + name = "Kitchen Counter Shutters" + }, +/obj/item/weapon/storage/fancy/donut_box, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/delivery, +/area/crew_quarters/kitchen) +"aYx" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall, +/area/crew_quarters/kitchen) +"aYy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/hallway/primary/fore) +"aYz" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/hallway/primary/fore) +"aYA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/hallway/primary/fore) +"aYB" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aYC" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_mining{ + name = "Cargo Office"; + req_access_txt = "48;50" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aYD" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/item/weapon/folder/yellow, +/obj/item/weapon/pen, +/obj/machinery/door/window/southleft{ + dir = 1; + req_access_txt = "50" + }, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/office{ + name = "\improper Cargo Office" + }) +"aYE" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = -26 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTHWEST)"; + icon_state = "brown"; + dir = 9 + }, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"aYF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/purple/side{ + tag = "icon-purple (NORTH)"; + icon_state = "purple"; + dir = 1 + }, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"aYG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTH)"; + icon_state = "brown"; + dir = 1 + }, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"aYH" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/belt/utility, +/turf/open/floor/plasteel/purple/side{ + tag = "icon-purple (NORTH)"; + icon_state = "purple"; + dir = 1 + }, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"aYI" = ( +/obj/structure/table/reinforced, +/obj/machinery/computer/stockexchange, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTHEAST)"; + icon_state = "brown"; + dir = 5 + }, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"aYJ" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/clipboard, +/obj/item/toy/figure/miner, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24; + pixel_y = 0 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"aYK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"aYL" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"aYM" = ( +/obj/structure/closet/secure_closet/miner, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"aYN" = ( +/obj/structure/closet/secure_closet/miner, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"aYO" = ( +/obj/machinery/mineral/equipment_vendor, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"aYP" = ( +/obj/structure/table, +/obj/machinery/microwave{ + desc = "Cooks and boils stuff, somehow."; + pixel_x = -3; + pixel_y = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"aYQ" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/donkpockets, +/turf/open/floor/plasteel/bot, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"aYR" = ( +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"aYS" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/mining) +"aYT" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/mining) +"aYU" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/red, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/vault, +/area/security/prison) +"aYV" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger, +/turf/open/floor/plasteel/vault, +/area/security/prison) +"aYW" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_security{ + name = "Prison Wing"; + req_access_txt = "1" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/security/prison) +"aYX" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/prison) +"aYY" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_security{ + name = "Prison Wing"; + req_access_txt = "1" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/security/prison) +"aYZ" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/structure/reagent_dispensers/peppertank{ + pixel_y = -32 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/vault, +/area/security/prison) +"aZa" = ( +/obj/structure/rack, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/item/weapon/restraints/handcuffs, +/obj/item/weapon/restraints/handcuffs, +/obj/item/weapon/restraints/handcuffs, +/obj/item/device/assembly/flash/handheld, +/turf/open/floor/plasteel/vault, +/area/security/prison) +"aZb" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/box/bodybags{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/prisoner, +/obj/structure/extinguisher_cabinet{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/vault, +/area/security/prison) +"aZc" = ( +/obj/structure/closet/secure_closet/brig{ + name = "Prisoner Locker" + }, +/obj/machinery/ai_status_display{ + pixel_y = -32 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/vault, +/area/security/prison) +"aZd" = ( +/obj/structure/closet/secure_closet/brig{ + name = "Prisoner Locker" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/vault, +/area/security/prison) +"aZe" = ( +/obj/structure/closet/secure_closet/brig{ + name = "Prisoner Locker" + }, +/obj/machinery/status_display{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/vault, +/area/security/prison) +"aZf" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/bodybags, +/obj/item/weapon/pen, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/security/prison) +"aZg" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/table, +/obj/item/weapon/restraints/handcuffs, +/obj/item/clothing/suit/armor/vest, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/red/side, +/area/security/prison) +"aZh" = ( +/turf/open/floor/plating/warnplate{ + dir = 4; + luminosity = 2; + initial_gas_mix = "o2=0.01;n2=0.01"; + temperature = 2.7 + }, +/area/security/prison) +"aZi" = ( +/turf/open/floor/engine/plasma, +/area/atmos) +"aZj" = ( +/obj/machinery/camera{ + c_tag = "Atmospherics - Plasma Cell"; + name = "atmospherics camera" + }, +/turf/open/floor/engine/plasma, +/area/atmos) +"aZk" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 0; + frequency = 1441; + id_tag = "tox_out"; + initialize_directions = 1; + internal_pressure_bound = 4000; + name = "plasma vent"; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine/plasma, +/area/atmos) +"aZl" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/atmos) +"aZm" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Plasma to Pure"; + on = 0 + }, +/turf/open/floor/plasteel/purple/side{ + tag = "icon-purple (NORTHWEST)"; + icon_state = "purple"; + dir = 9 + }, +/area/atmos) +"aZn" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/atmos) +"aZo" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/plasteel/bot, +/area/atmos) +"aZp" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"aZq" = ( +/turf/open/floor/plasteel/neutral, +/area/atmos) +"aZr" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"aZs" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/caution{ + tag = "icon-caution (WEST)"; + icon_state = "caution"; + dir = 8 + }, +/area/atmos) +"aZt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"aZu" = ( +/obj/structure/closet/secure_closet/atmospherics, +/turf/open/floor/plasteel/warning/end, +/area/atmos) +"aZv" = ( +/obj/machinery/pipedispenser, +/turf/open/floor/plasteel/warning/side, +/area/atmos) +"aZw" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/components/trinary/filter{ + dir = 1; + filter_type = "o2"; + name = "oxygen filter"; + on = 1 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 6 + }, +/area/atmos) +"aZx" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/atmos) +"aZy" = ( +/obj/machinery/meter, +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/atmos) +"aZz" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8; + frequency = 1441; + id = "o2_in" + }, +/turf/open/floor/engine/o2, +/area/atmos) +"aZA" = ( +/mob/living/simple_animal/cockroach, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aZB" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"aZC" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/structure/window/reinforced, +/obj/item/weapon/reagent_containers/glass/bucket, +/obj/structure/sign/poster{ + icon_state = "poster2_legit"; + pixel_x = -32; + tag = "icon-poster2_legit" + }, +/turf/open/floor/plasteel/bot, +/area/hydroponics) +"aZD" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/greenblue/side{ + tag = "icon-greenblue (NORTH)"; + icon_state = "greenblue"; + dir = 1 + }, +/area/hydroponics) +"aZE" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/greenblue/side{ + tag = "icon-greenblue (NORTH)"; + icon_state = "greenblue"; + dir = 1 + }, +/area/hydroponics) +"aZF" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/greenblue/side{ + tag = "icon-greenblue (NORTH)"; + icon_state = "greenblue"; + dir = 1 + }, +/area/hydroponics) +"aZG" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/greenblue/side{ + tag = "icon-greenblue (NORTH)"; + icon_state = "greenblue"; + dir = 1 + }, +/area/hydroponics) +"aZH" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/greenblue/side{ + tag = "icon-greenblue (NORTH)"; + icon_state = "greenblue"; + dir = 1 + }, +/area/hydroponics) +"aZI" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/greenblue/side{ + tag = "icon-greenblue (NORTH)"; + icon_state = "greenblue"; + dir = 1 + }, +/area/hydroponics) +"aZJ" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/hydroponics) +"aZK" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/airlock{ + name = "Hydroponics Backroom"; + req_access_txt = "35" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aZL" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aZM" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"aZN" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/airlock{ + name = "Kitchen Coldroom"; + req_access_txt = "28" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/crew_quarters/kitchen) +"aZO" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/delivery, +/area/crew_quarters/kitchen) +"aZP" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"aZQ" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/landmark/start{ + name = "Chef" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"aZR" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"aZS" = ( +/obj/structure/closet/chefcloset, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/kitchen) +"aZT" = ( +/obj/structure/rack, +/obj/item/weapon/book/manual/chef_recipes, +/obj/item/stack/packageWrap, +/obj/item/weapon/hand_labeler, +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/kitchen) +"aZU" = ( +/turf/open/floor/plasteel/red, +/area/crew_quarters/kitchen) +"aZV" = ( +/turf/open/floor/plasteel/white, +/area/crew_quarters/kitchen) +"aZW" = ( +/obj/structure/sink/kitchen{ + desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; + name = "sink"; + pixel_y = 28 + }, +/turf/open/floor/plasteel/red, +/area/crew_quarters/kitchen) +"aZX" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/red, +/area/crew_quarters/kitchen) +"aZY" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/obj/machinery/button/door{ + id = "kitchencounter"; + name = "Kitchen Counter Shutters"; + pixel_x = 26; + pixel_y = 8; + req_access_txt = "26" + }, +/obj/machinery/button/door{ + id = "kitchenside"; + name = "Kitchen Side Shutters"; + pixel_x = 26; + pixel_y = -8; + req_access_txt = "26" + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/delivery, +/area/crew_quarters/kitchen) +"aZZ" = ( +/turf/closed/wall, +/area/hallway/primary/fore) +"baa" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = -26 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTHWEST)"; + icon_state = "brown"; + dir = 9 + }, +/area/hallway/primary/fore) +"bab" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTH)"; + icon_state = "brown"; + dir = 1 + }, +/area/hallway/primary/fore) +"bac" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTH)"; + icon_state = "brown"; + dir = 1 + }, +/area/hallway/primary/fore) +"bad" = ( +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTH)"; + icon_state = "brown"; + dir = 1 + }, +/area/hallway/primary/fore) +"bae" = ( +/obj/machinery/camera{ + c_tag = "Cargo - Waiting Room"; + dir = 2; + name = "cargo camera" + }, +/turf/open/floor/plasteel/loadingarea{ + dir = 4 + }, +/area/hallway/primary/fore) +"baf" = ( +/turf/open/floor/plasteel/bot, +/area/hallway/primary/fore) +"bag" = ( +/turf/open/floor/plasteel/delivery, +/area/hallway/primary/fore) +"bah" = ( +/obj/machinery/computer/cargo/request, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/bot, +/area/hallway/primary/fore) +"bai" = ( +/obj/machinery/computer/cargo/request, +/turf/open/floor/plasteel/purple/side{ + tag = "icon-purple (WEST)"; + icon_state = "purple"; + dir = 8 + }, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"baj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bak" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bal" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bam" = ( +/obj/structure/filingcabinet/filingcabinet, +/turf/open/floor/plasteel/purple/side{ + tag = "icon-purple (EAST)"; + icon_state = "purple"; + dir = 4 + }, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"ban" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (WEST)"; + icon_state = "brown"; + dir = 8 + }, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bao" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTH)"; + icon_state = "brown"; + dir = 1 + }, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bap" = ( +/turf/open/floor/plasteel/loadingarea{ + tag = "icon-loadingarea (NORTH)"; + icon_state = "loadingarea"; + dir = 1 + }, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"baq" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/loadingarea{ + tag = "icon-loadingarea (NORTH)"; + icon_state = "loadingarea"; + dir = 1 + }, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bar" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTH)"; + icon_state = "brown"; + dir = 1 + }, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bas" = ( +/turf/open/floor/plasteel/purple/side{ + tag = "icon-purple (NORTH)"; + icon_state = "purple"; + dir = 1 + }, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bat" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTHEAST)"; + icon_state = "brown"; + dir = 5 + }, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bau" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bav" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"baw" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/sign/vacuum, +/turf/open/floor/plating, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bax" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bay" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/toolbox/emergency, +/turf/open/floor/plasteel/warning{ + tag = "icon-plasteel_warn (NORTHWEST)"; + icon_state = "plasteel_warn"; + dir = 9 + }, +/area/shuttle/mining) +"baz" = ( +/obj/machinery/computer/shuttle/mining, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/shuttle/mining) +"baA" = ( +/obj/structure/table/reinforced, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/crowbar/red, +/obj/item/weapon/wrench, +/obj/item/weapon/tank/internals/emergency_oxygen/engi, +/obj/item/clothing/mask/gas, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/shuttle/mining) +"baB" = ( +/obj/machinery/door/poddoor/preopen{ + id = "brigprison"; + name = "Prison Blast door" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/pods{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/delivery, +/area/security/prison) +"baC" = ( +/obj/machinery/door/poddoor/preopen{ + id = "brigprison"; + name = "Prison Blast door" + }, +/turf/open/floor/plasteel/delivery, +/area/security/prison) +"baD" = ( +/obj/machinery/door/poddoor/preopen{ + id = "brigprison"; + name = "Prison Blast door" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/delivery, +/area/security/prison) +"baE" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_y = 26 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark{ + name = "blobstart" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/security/prison) +"baF" = ( +/obj/structure/closet/bombclosetsecurity, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/prison) +"baG" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/engine/plasma, +/area/atmos) +"baH" = ( +/obj/machinery/portable_atmospherics/canister/toxins, +/turf/open/floor/engine/plasma, +/area/atmos) +"baI" = ( +/obj/machinery/air_sensor{ + frequency = 1441; + id_tag = "tox_sensor" + }, +/turf/open/floor/engine/plasma, +/area/atmos) +"baJ" = ( +/obj/machinery/computer/atmos_control/tank{ + frequency = 1441; + input_tag = "tox_in"; + name = "Plasma Supply Control"; + output_tag = "tox_out"; + sensors = list("tox_sensor" = "Tank") + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/purple/side{ + tag = "icon-purple (WEST)"; + icon_state = "purple"; + dir = 8 + }, +/area/atmos) +"baK" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"baL" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"baM" = ( +/obj/structure/table/reinforced, +/obj/item/device/analyzer, +/turf/open/floor/plasteel/warning/side, +/area/atmos) +"baN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/caution{ + tag = "icon-caution (WEST)"; + icon_state = "caution"; + dir = 8 + }, +/area/atmos) +"baO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/delivery, +/area/atmos) +"baP" = ( +/obj/structure/closet/wardrobe/atmospherics_yellow, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/item/weapon/storage/backpack/satchel/eng, +/turf/open/floor/plasteel/bot, +/area/atmos) +"baQ" = ( +/obj/structure/sign/atmosplaque, +/turf/closed/wall, +/area/atmos) +"baR" = ( +/obj/structure/table/reinforced, +/obj/item/stack/packageWrap, +/obj/item/weapon/hand_labeler, +/turf/open/floor/plasteel/warning/side, +/area/atmos) +"baS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + tag = "icon-intact (NORTH)"; + icon_state = "intact"; + dir = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"baT" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/atmos) +"baU" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "N2 to Pure" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/atmos) +"baV" = ( +/obj/structure/sign/securearea{ + pixel_x = 32 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/atmos) +"baW" = ( +/obj/structure/closet/firecloset, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"baX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"baY" = ( +/obj/structure/closet/crate/hydroponics, +/obj/item/weapon/cultivator, +/obj/item/weapon/hatchet, +/obj/item/weapon/wirecutters, +/obj/item/weapon/shovel/spade, +/turf/open/floor/plasteel/bot, +/area/hydroponics) +"baZ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/greenblue/side, +/area/hydroponics) +"bba" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/greenblue/side, +/area/hydroponics) +"bbb" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/delivery, +/area/hydroponics) +"bbc" = ( +/obj/machinery/camera{ + c_tag = "Hydroponics Backroom"; + dir = 1; + name = "service camera" + }, +/turf/open/floor/plasteel/greenblue/side, +/area/hydroponics) +"bbd" = ( +/obj/structure/cable/white, +/obj/machinery/power/apc{ + dir = 2; + name = "Hydroponics APC"; + pixel_y = -26 + }, +/turf/open/floor/plasteel/greenblue/side, +/area/hydroponics) +"bbe" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/greenblue/side, +/area/hydroponics) +"bbf" = ( +/turf/open/floor/plasteel/greenblue/side, +/area/hydroponics) +"bbg" = ( +/obj/machinery/light_switch{ + pixel_x = 8; + pixel_y = -26 + }, +/turf/open/floor/plasteel/delivery, +/area/hydroponics) +"bbh" = ( +/obj/structure/plasticflaps{ + opacity = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + dir = 8; + freq = 1400; + location = "Hydroponics" + }, +/turf/open/floor/plasteel/delivery, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"bbi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/delivery, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"bbj" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"bbk" = ( +/obj/structure/kitchenspike, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/kitchen) +"bbl" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = -26; + pixel_y = -26 + }, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/kitchen) +"bbm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/delivery, +/area/crew_quarters/kitchen) +"bbn" = ( +/obj/structure/cable/white, +/obj/machinery/power/apc{ + dir = 2; + name = "Kitchen APC"; + pixel_y = -26 + }, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/kitchen) +"bbo" = ( +/obj/machinery/chem_master/condimaster, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/kitchen) +"bbp" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/delivery, +/area/crew_quarters/kitchen) +"bbq" = ( +/mob/living/carbon/monkey/punpun, +/turf/open/floor/plasteel/red, +/area/crew_quarters/kitchen) +"bbr" = ( +/obj/machinery/holopad, +/obj/effect/landmark/start{ + name = "Cook" + }, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/kitchen) +"bbs" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/crew_quarters/kitchen) +"bbt" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchenside"; + name = "Kitchen Hall Shutters" + }, +/turf/open/floor/plasteel/delivery, +/area/crew_quarters/kitchen) +"bbu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/brown/corner{ + tag = "icon-browncorner (EAST)"; + icon_state = "browncorner"; + dir = 4 + }, +/area/hallway/primary/fore) +"bbv" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/hallway/primary/fore) +"bbw" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (WEST)"; + icon_state = "brown"; + dir = 8 + }, +/area/hallway/primary/fore) +"bbx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/fore) +"bby" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/fore) +"bbz" = ( +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/fore) +"bbA" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/fore) +"bbB" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/item/weapon/folder/yellow, +/obj/item/weapon/pen, +/obj/machinery/door/window/westleft{ + dir = 4; + name = "Mining Desk"; + req_access_txt = "48" + }, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bbC" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (WEST)"; + icon_state = "brown"; + dir = 8 + }, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bbD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bbE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bbF" = ( +/turf/open/floor/plasteel/neutral, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bbG" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (EAST)"; + icon_state = "brown"; + dir = 4 + }, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bbH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/mining{ + name = "Mining Dock"; + req_access_txt = "48" + }, +/turf/open/floor/plasteel/warning/side, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bbI" = ( +/turf/open/floor/plasteel/purple/side{ + tag = "icon-purple (WEST)"; + icon_state = "purple"; + dir = 8 + }, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bbJ" = ( +/obj/effect/decal/cleanable/oil, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bbK" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bbL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start{ + name = "Shaft Miner" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bbM" = ( +/obj/effect/landmark/start{ + name = "Shaft Miner" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bbN" = ( +/obj/effect/landmark/start{ + name = "Shaft Miner" + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bbO" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bbP" = ( +/turf/open/floor/plasteel/purple/side{ + tag = "icon-purple (EAST)"; + icon_state = "purple"; + dir = 4 + }, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bbQ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/sign/pods{ + name = "MINING POD"; + pixel_x = 0 + }, +/turf/open/floor/plating, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bbR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/ore_box, +/turf/open/floor/plasteel/bot, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bbS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bbT" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bbU" = ( +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/shuttle/mining) +"bbV" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/shuttle/mining) +"bbW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/shuttle/mining) +"bbX" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/sign/securearea{ + pixel_x = -32 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/security/prison) +"bbY" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/security/prison) +"bbZ" = ( +/obj/machinery/button/door{ + id = "brigprison"; + name = "Prison Lockdown"; + pixel_x = 26; + pixel_y = 26; + req_access_txt = "63" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/security/prison) +"bca" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/glass_security{ + name = "Storage Closet"; + req_access_txt = "63" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/security/prison) +"bcb" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/security/prison) +"bcc" = ( +/obj/structure/closet/l3closet/security, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/prison) +"bcd" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 4; + frequency = 1441; + id = "tox_in"; + pixel_y = 1 + }, +/turf/open/floor/engine/plasma, +/area/atmos) +"bce" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/atmos) +"bcf" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/components/trinary/filter{ + dir = 2; + filter_type = "plasma"; + name = "plasma filter"; + on = 1 + }, +/turf/open/floor/plasteel/purple/side{ + dir = 10 + }, +/area/atmos) +"bcg" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Port Mix to Port Ports"; + on = 0 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bch" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Port Mix to Starboard Ports"; + on = 0 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bci" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/atmos) +"bcj" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_atmos{ + name = "Atmospherics Storage"; + req_access_txt = "24" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/atmos) +"bck" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bcl" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/atmos) +"bcm" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "N2 to Airmix"; + on = 1 + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/atmos) +"bcn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/yellow/visible, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/atmos) +"bco" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + external_pressure_bound = 0; + frequency = 1441; + id_tag = "n2_out"; + initialize_directions = 1; + internal_pressure_bound = 4000; + name = "n2 vent"; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine/n2, +/area/atmos) +"bcp" = ( +/obj/machinery/camera{ + c_tag = "Atmospherics - Nitrogen Cell"; + name = "atmospherics camera" + }, +/turf/open/floor/engine/n2, +/area/atmos) +"bcq" = ( +/turf/open/floor/engine/n2, +/area/atmos) +"bcr" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"bcs" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plasteel/bot, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"bct" = ( +/obj/structure/sign/botany, +/turf/closed/wall, +/area/hydroponics) +"bcu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/hydroponics) +"bcv" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Hydroponics Backroom"; + req_access_txt = "35" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/hydroponics) +"bcw" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Service Hall"; + req_access_txt = "0" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"bcx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"bcy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/crew_quarters/kitchen) +"bcz" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Kitchen Coldroom"; + req_access_txt = "28" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/crew_quarters/kitchen) +"bcA" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Kitchen"; + dir = 4; + name = "service camera" + }, +/turf/open/floor/plasteel/delivery, +/area/crew_quarters/kitchen) +"bcB" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/bag/tray, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/kitchen) +"bcC" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/reagent_containers/glass/bowl, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/kitchen) +"bcD" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/reagent_containers/food/condiment/flour, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/kitchen) +"bcE" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/junction{ + dir = 1; + icon_state = "pipe-j1" + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/fore) +"bcF" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/brown/corner{ + tag = "icon-browncorner (EAST)"; + icon_state = "browncorner"; + dir = 4 + }, +/area/hallway/primary/fore) +"bcG" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/hallway/primary/fore) +"bcH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (WEST)"; + icon_state = "brown"; + dir = 8 + }, +/area/hallway/primary/fore) +"bcI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/fore) +"bcJ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/bot, +/area/hallway/primary/fore) +"bcK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/hallway/primary/fore) +"bcL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/fore) +"bcM" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/bot, +/area/hallway/primary/fore) +"bcN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/loadingarea{ + tag = "icon-loadingarea (NORTH)"; + icon_state = "loadingarea"; + dir = 1 + }, +/area/hallway/primary/fore) +"bcO" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bcP" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/purple/side{ + tag = "icon-purple (WEST)"; + icon_state = "purple"; + dir = 8 + }, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bcQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bcR" = ( +/obj/machinery/holopad, +/obj/effect/landmark{ + name = "lightsout" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/bot, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bcS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bcT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-18"; + layer = 4.1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/purple/side{ + tag = "icon-purple (EAST)"; + icon_state = "purple"; + dir = 4 + }, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bcU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (WEST)"; + icon_state = "brown"; + dir = 8 + }, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bcV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bcW" = ( +/obj/machinery/suit_storage_unit/mining/eva, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bcX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/suit_storage_unit/mining/eva, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bcY" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bcZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/external{ + name = "Mining Dock Airlock"; + req_access = null; + req_access_txt = "48" + }, +/turf/open/floor/plasteel/warning/side, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bda" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bdb" = ( +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bdc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/external{ + name = "Mining Dock Airlock"; + req_access = null; + req_access_txt = "48" + }, +/turf/open/floor/plasteel/warning/side, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bdd" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Mining Shuttle Airlock"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/warnwhite/side, +/area/shuttle/mining) +"bde" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/shuttle/mining) +"bdf" = ( +/turf/open/floor/plasteel/neutral, +/area/shuttle/mining) +"bdg" = ( +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/shuttle/mining) +"bdh" = ( +/obj/docking_port/mobile{ + dir = 8; + dwidth = 3; + height = 5; + id = "mining"; + name = "mining shuttle"; + port_angle = 90; + width = 7 + }, +/obj/docking_port/stationary{ + dir = 8; + dwidth = 3; + height = 5; + id = "mining_home"; + name = "mining shuttle bay"; + width = 7 + }, +/obj/machinery/door/airlock/shuttle{ + name = "Mining Shuttle Airlock"; + req_access_txt = "48" + }, +/turf/open/floor/plasteel/warnwhite/side, +/area/shuttle/mining) +"bdi" = ( +/turf/closed/wall/r_wall, +/area/security/brig) +"bdj" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_security{ + name = "Prison Wing"; + req_access_txt = "1" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/security/brig) +"bdk" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/sign/directions/engineering{ + desc = "A sign that shows there are doors here. There are doors everywhere!"; + icon_state = "doors"; + name = "WARNING: BLAST DOORS"; + pixel_x = 0; + pixel_y = 0; + tag = "icon-doors" + }, +/turf/open/floor/plating, +/area/security/brig) +"bdl" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_security{ + name = "Prison Wing"; + req_access_txt = "1" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/security/brig) +"bdm" = ( +/turf/closed/wall/r_wall, +/area/security/main) +"bdn" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/main) +"bdo" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/securearea{ + pixel_x = -32 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/atmos) +"bdp" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bdq" = ( +/turf/open/floor/plasteel/caution{ + dir = 1 + }, +/area/atmos) +"bdr" = ( +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 1; + name = "Atmospherics APC"; + pixel_x = 0; + pixel_y = 25 + }, +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/turf/open/floor/plasteel/caution{ + dir = 1 + }, +/area/atmos) +"bds" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/caution{ + dir = 1 + }, +/area/atmos) +"bdt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/caution{ + dir = 1 + }, +/area/atmos) +"bdu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/caution{ + dir = 1 + }, +/area/atmos) +"bdv" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Atmospherics - Aft"; + name = "atmospherics camera" + }, +/turf/open/floor/plasteel/caution{ + dir = 1 + }, +/area/atmos) +"bdw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/caution{ + dir = 1 + }, +/area/atmos) +"bdx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bdy" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bdz" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bdA" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/atmos) +"bdB" = ( +/obj/machinery/computer/atmos_control/tank{ + frequency = 1441; + input_tag = "n2_in"; + name = "Nitrogen Supply Control"; + output_tag = "n2_out"; + sensors = list("n2_sensor" = "Tank") + }, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/atmos) +"bdC" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/atmos) +"bdD" = ( +/obj/machinery/air_sensor{ + frequency = 1441; + id_tag = "n2_sensor" + }, +/turf/open/floor/engine/n2, +/area/atmos) +"bdE" = ( +/obj/machinery/portable_atmospherics/canister/nitrogen, +/turf/open/floor/engine/n2, +/area/atmos) +"bdF" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/engine/n2, +/area/atmos) +"bdG" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/item/weapon/reagent_containers/glass/bucket, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/bot, +/area/hydroponics) +"bdH" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/item/weapon/reagent_containers/glass/bucket, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/turf/open/floor/plasteel/bot, +/area/hydroponics) +"bdI" = ( +/obj/machinery/disposal/bin, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/bot, +/area/hydroponics) +"bdJ" = ( +/obj/machinery/light_switch{ + pixel_x = -26; + pixel_y = 26 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/delivery, +/area/hydroponics) +"bdK" = ( +/obj/structure/table/glass, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = 26 + }, +/obj/item/weapon/storage/box/beakers{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/syringes, +/turf/open/floor/plasteel/bot, +/area/hydroponics) +"bdL" = ( +/obj/machinery/reagentgrinder{ + desc = "Used to grind things up into raw materials and liquids."; + pixel_y = 5 + }, +/obj/structure/table/glass, +/turf/open/floor/plasteel/bot, +/area/hydroponics) +"bdM" = ( +/obj/structure/table/glass, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/obj/item/weapon/clipboard, +/obj/item/toy/figure/botanist, +/turf/open/floor/plasteel/bot, +/area/hydroponics) +"bdN" = ( +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/bot, +/area/hydroponics) +"bdO" = ( +/obj/machinery/smartfridge, +/turf/closed/wall, +/area/hydroponics) +"bdP" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"bdQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"bdR" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = 26 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"bdS" = ( +/obj/machinery/smartfridge, +/turf/closed/wall, +/area/crew_quarters/kitchen) +"bdT" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24; + pixel_y = 32 + }, +/obj/machinery/light_switch{ + pixel_x = -7; + pixel_y = 26 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/crew_quarters/kitchen) +"bdU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/red, +/area/crew_quarters/kitchen) +"bdV" = ( +/obj/machinery/requests_console{ + department = "Kitchen"; + departmentType = 0; + name = "Kitchen RC"; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plasteel/red, +/area/crew_quarters/kitchen) +"bdW" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = 26 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/kitchen) +"bdX" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/reagent_containers/food/snacks/dough, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/kitchen) +"bdY" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/kitchen) +"bdZ" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/box/papersack{ + tag = "icon-paperbag_NanotrasenStandard_closed"; + icon_state = "paperbag_NanotrasenStandard_closed" + }, +/obj/item/weapon/storage/box/papersack{ + tag = "icon-paperbag_NanotrasenStandard_closed"; + icon_state = "paperbag_NanotrasenStandard_closed" + }, +/obj/item/weapon/storage/box/papersack{ + tag = "icon-paperbag_NanotrasenStandard_closed"; + icon_state = "paperbag_NanotrasenStandard_closed" + }, +/obj/item/weapon/storage/box/papersack{ + tag = "icon-paperbag_NanotrasenStandard_closed"; + icon_state = "paperbag_NanotrasenStandard_closed" + }, +/obj/item/weapon/storage/box/papersack{ + tag = "icon-paperbag_NanotrasenStandard_closed"; + icon_state = "paperbag_NanotrasenStandard_closed" + }, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/kitchen) +"bea" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/fore) +"beb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/fore) +"bec" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/brown/corner{ + tag = "icon-browncorner (EAST)"; + icon_state = "browncorner"; + dir = 4 + }, +/area/hallway/primary/fore) +"bed" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/hallway/primary/fore) +"bee" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (WEST)"; + icon_state = "brown"; + dir = 8 + }, +/area/hallway/primary/fore) +"bef" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/fore) +"beg" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/delivery, +/area/hallway/primary/fore) +"beh" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/bot, +/area/hallway/primary/fore) +"bei" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/fore) +"bej" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/hallway/primary/fore) +"bek" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/hallway/primary/fore) +"bel" = ( +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/glass_mining{ + name = "Mining Office"; + req_access_txt = "48" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bem" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (WEST)"; + icon_state = "brown"; + dir = 8 + }, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"ben" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"beo" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bep" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"beq" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (EAST)"; + icon_state = "brown"; + dir = 4 + }, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"ber" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/mining{ + name = "Mining Dock"; + req_access_txt = "48" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bes" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/purple/side{ + tag = "icon-purple (WEST)"; + icon_state = "purple"; + dir = 8 + }, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bet" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"beu" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bev" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bew" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bex" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bey" = ( +/obj/structure/table/reinforced, +/obj/effect/decal/cleanable/dirt, +/obj/item/device/flashlight/lamp, +/turf/open/floor/plasteel/purple/side{ + tag = "icon-purple (EAST)"; + icon_state = "purple"; + dir = 4 + }, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bez" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"beA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plasteel/bot, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"beB" = ( +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"beC" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning/end{ + tag = "icon-plasteel_warn_end (WEST)"; + icon_state = "plasteel_warn_end"; + dir = 8 + }, +/area/shuttle/mining) +"beD" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/shuttle/mining) +"beE" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning/end{ + tag = "icon-plasteel_warn_end (EAST)"; + icon_state = "plasteel_warn_end"; + dir = 4 + }, +/area/shuttle/mining) +"beF" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/brig) +"beG" = ( +/obj/structure/table/glass, +/obj/machinery/computer/med_data/laptop, +/obj/structure/sign/poster{ + icon_state = "poster3_legit"; + pixel_y = 32; + tag = "icon-poster3_legit" + }, +/turf/open/floor/plasteel/whitered/side{ + dir = 9 + }, +/area/security/brig) +"beH" = ( +/obj/structure/sink{ + pixel_y = 22 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/whitered/side{ + dir = 1 + }, +/area/security/brig) +"beI" = ( +/obj/structure/bed, +/obj/machinery/iv_drip, +/obj/item/weapon/bedsheet/medical, +/obj/machinery/vending/wallmed{ + name = "Emergency NanoMed"; + pixel_x = 0; + pixel_y = 26; + req_access_txt = "0"; + use_power = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Security - Medbay"; + dir = 2; + name = "security camera" + }, +/turf/open/floor/plasteel/whitered/side{ + dir = 1 + }, +/area/security/brig) +"beJ" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/brig) +"beK" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/brig) +"beL" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) +"beM" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/brig) +"beN" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/main) +"beO" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/main) +"beP" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/main) +"beQ" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/sign/nanotrasen{ + pixel_y = 32 + }, +/obj/machinery/camera{ + c_tag = "Security - Office Fore"; + dir = 2; + name = "security camera" + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/main) +"beR" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/newscaster/security_unit{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/main) +"beS" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/main) +"beT" = ( +/obj/machinery/recharger, +/obj/structure/table/reinforced, +/obj/structure/reagent_dispensers/peppertank{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/main) +"beU" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 26; + pixel_y = 26 + }, +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/main) +"beV" = ( +/obj/machinery/computer/security, +/obj/machinery/status_display{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/main) +"beW" = ( +/turf/closed/wall/r_wall, +/area/security/hos) +"beX" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "hosspace"; + name = "HoS Space Blast door" + }, +/turf/open/floor/plating, +/area/security/hos) +"beY" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "hosspace"; + name = "HoS Space Blast door" + }, +/turf/open/floor/plating, +/area/security/hos) +"beZ" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "hosspace"; + name = "HoS Space Blast door" + }, +/turf/open/floor/plating, +/area/security/hos) +"bfa" = ( +/turf/open/floor/engine/n2o, +/area/atmos) +"bfb" = ( +/obj/machinery/camera{ + c_tag = "Atmospherics - n2o Cell"; + name = "atmospherics camera" + }, +/turf/open/floor/engine/n2o, +/area/atmos) +"bfc" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 0; + frequency = 1441; + id_tag = "n2o_out"; + initialize_directions = 1; + internal_pressure_bound = 4000; + name = "n2o vent"; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine/n2o, +/area/atmos) +"bfd" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "N2O to Pure"; + on = 0 + }, +/turf/open/floor/plasteel/escape{ + dir = 9 + }, +/area/atmos) +"bfe" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/atmos) +"bff" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bfg" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Pure to Ports"; + on = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bfh" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Mix to Ports"; + on = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bfi" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Air to Ports"; + on = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bfj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bfk" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bfl" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bfm" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bfn" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bfo" = ( +/obj/machinery/holopad, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/bot, +/area/atmos) +"bfp" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bfq" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bfr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bfs" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/atmos) +"bft" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/components/trinary/filter{ + dir = 1; + filter_type = "n2"; + name = "nitogren filter"; + on = 1 + }, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/atmos) +"bfu" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/atmos) +"bfv" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plating, +/area/atmos) +"bfw" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/space, +/area/atmos) +"bfx" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8; + frequency = 1441; + id = "n2_in" + }, +/turf/open/floor/engine/n2, +/area/atmos) +"bfy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/obj/item/device/flashlight, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plasteel/bot, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"bfz" = ( +/obj/structure/sink{ + dir = 8; + icon_state = "sink"; + pixel_x = -12 + }, +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/turf/open/floor/plasteel/bot, +/area/hydroponics) +"bfA" = ( +/turf/open/floor/plasteel/greenblue/side{ + tag = "icon-greenblue (NORTHWEST)"; + icon_state = "greenblue"; + dir = 9 + }, +/area/hydroponics) +"bfB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/greenblue/side{ + tag = "icon-greenblue (NORTH)"; + icon_state = "greenblue"; + dir = 1 + }, +/area/hydroponics) +"bfC" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/greenblue/side{ + tag = "icon-greenblue (NORTH)"; + icon_state = "greenblue"; + dir = 1 + }, +/area/hydroponics) +"bfD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/greenblue/side{ + tag = "icon-greenblue (NORTH)"; + icon_state = "greenblue"; + dir = 1 + }, +/area/hydroponics) +"bfE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/greenblue/side{ + tag = "icon-greenblue (NORTHEAST)"; + icon_state = "greenblue"; + dir = 5 + }, +/area/hydroponics) +"bfF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/hydroponics) +"bfG" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_medical{ + name = "Hydroponics"; + req_access_txt = "35" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/hydroponics) +"bfH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"bfI" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"bfJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"bfK" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Kitchen"; + req_access_txt = "28" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/crew_quarters/kitchen) +"bfL" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/crew_quarters/kitchen) +"bfM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/red, +/area/crew_quarters/kitchen) +"bfN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/kitchen) +"bfO" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/red, +/area/crew_quarters/kitchen) +"bfP" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/kitchen) +"bfQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/red, +/area/crew_quarters/kitchen) +"bfR" = ( +/obj/effect/landmark/start{ + name = "Cook" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/kitchen) +"bfS" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/red, +/area/crew_quarters/kitchen) +"bfT" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/red, +/area/crew_quarters/kitchen) +"bfU" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/kitchen) +"bfV" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchenside"; + name = "Kitchen Hall Shutters" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/crew_quarters/kitchen) +"bfW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/fore) +"bfX" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 1; + icon_state = "pipe-j2s"; + name = "Kitchen Junction"; + sortType = 20 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/fore) +"bfY" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (WEST)"; + icon_state = "brown"; + dir = 8 + }, +/area/hallway/primary/fore) +"bfZ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/fore) +"bga" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/fore) +"bgb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (EAST)"; + icon_state = "brown"; + dir = 4 + }, +/area/hallway/primary/fore) +"bgc" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/plasteel/purple/side{ + tag = "icon-purple (WEST)"; + icon_state = "purple"; + dir = 8 + }, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bgd" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bge" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bgf" = ( +/obj/machinery/photocopier, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/purple/side{ + tag = "icon-purple (EAST)"; + icon_state = "purple"; + dir = 4 + }, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bgg" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (WEST)"; + icon_state = "brown"; + dir = 8 + }, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bgh" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/purple/side, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bgi" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/brown, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bgj" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/purple/side, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bgk" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/requests_console{ + department = "Mining"; + departmentType = 0; + name = "Mining Dock RC"; + pixel_x = 0; + pixel_y = -32 + }, +/obj/machinery/camera{ + c_tag = "Cargo - Mining Dock"; + dir = 1; + name = "cargo camera" + }, +/turf/open/floor/plasteel/brown, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bgl" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/brown, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bgm" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/purple/side, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bgn" = ( +/obj/structure/table/reinforced, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/item/weapon/folder/yellow, +/obj/item/device/gps/mining, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (SOUTHEAST)"; + icon_state = "brown"; + dir = 6 + }, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bgo" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bgp" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bgq" = ( +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/structure/closet/crate/internals, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/pickaxe/emergency, +/obj/item/weapon/pickaxe/emergency, +/turf/open/floor/plasteel/delivery, +/area/shuttle/mining) +"bgr" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plating/warnplate, +/area/shuttle/mining) +"bgs" = ( +/obj/structure/ore_box, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/shuttle/mining) +"bgt" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/cable/white, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/brig) +"bgu" = ( +/obj/structure/table/glass, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/item/clothing/gloves/color/latex, +/obj/item/device/healthanalyzer, +/obj/item/weapon/reagent_containers/spray, +/turf/open/floor/plasteel/whitered/side{ + dir = 8 + }, +/area/security/brig) +"bgv" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/security/brig) +"bgw" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/security/brig) +"bgx" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/door/airlock/glass_medical{ + name = "Infirmary" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitered/side{ + dir = 4 + }, +/area/security/brig) +"bgy" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/brig) +"bgz" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral, +/area/security/brig) +"bgA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/brig) +"bgB" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -26; + pixel_y = 32 + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/bot, +/area/security/main) +"bgC" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/red/corner, +/area/security/main) +"bgD" = ( +/obj/structure/chair/office/dark, +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/turf/open/floor/plasteel/red/side, +/area/security/main) +"bgE" = ( +/turf/open/floor/plasteel/red/corner{ + dir = 8 + }, +/area/security/main) +"bgF" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/security/main) +"bgG" = ( +/turf/open/floor/plasteel/neutral, +/area/security/main) +"bgH" = ( +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/main) +"bgI" = ( +/obj/machinery/computer/secure_data, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/main) +"bgJ" = ( +/obj/structure/bed/dogbed{ + desc = "Seems kind of... fishy."; + name = "Cayenne's bed"; + pixel_y = 5 + }, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = 32 + }, +/obj/machinery/camera{ + c_tag = "Security - Head of Security's Office"; + dir = 2; + name = "security camera" + }, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/security/hos) +"bgK" = ( +/obj/structure/table/wood, +/obj/machinery/recharger, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/hos) +"bgL" = ( +/obj/structure/table/wood, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/item/device/taperecorder{ + pixel_x = 3 + }, +/obj/item/weapon/storage/box/deputy, +/obj/item/device/flashlight/seclite, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/hos) +"bgM" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/secure/briefcase, +/obj/item/weapon/book/manual/wiki/security_space_law, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/hos) +"bgN" = ( +/obj/machinery/photocopier, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Head of Security's Desk"; + departmentType = 5; + name = "Head of Security RC"; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/hos) +"bgO" = ( +/obj/structure/window/reinforced, +/turf/open/space, +/area/space) +"bgP" = ( +/obj/structure/window/reinforced, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"bgQ" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/engine/n2o, +/area/atmos) +"bgR" = ( +/obj/machinery/portable_atmospherics/canister/nitrous_oxide{ + valve_open = 1 + }, +/turf/open/floor/engine/n2o, +/area/atmos) +"bgS" = ( +/obj/machinery/air_sensor{ + frequency = 1441; + id_tag = "n2o_sensor" + }, +/turf/open/floor/engine/n2o, +/area/atmos) +"bgT" = ( +/obj/machinery/computer/atmos_control/tank{ + frequency = 1441; + input_tag = "co2_in"; + name = "Carbon Dioxide Supply Control"; + output_tag = "co2_out"; + sensors = list("co2_sensor" = "Tank") + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/plasteel/escape{ + dir = 8 + }, +/area/atmos) +"bgU" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/atmos) +"bgV" = ( +/turf/open/floor/plasteel/warning, +/area/atmos) +"bgW" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/meter, +/turf/open/floor/plasteel/warning, +/area/atmos) +"bgX" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/meter, +/turf/open/floor/plasteel/warning, +/area/atmos) +"bgY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 6 + }, +/turf/open/floor/plasteel/warning, +/area/atmos) +"bgZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/warning, +/area/atmos) +"bha" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + tag = "icon-manifold (NORTH)"; + name = "scrubbers pipe"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/warning, +/area/atmos) +"bhb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + tag = "icon-manifold (NORTH)"; + name = "scrubbers pipe"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 1 + }, +/area/atmos) +"bhc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bhd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/corner, +/area/atmos) +"bhe" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible, +/obj/machinery/meter, +/turf/open/floor/plasteel/warning, +/area/atmos) +"bhf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning, +/area/atmos) +"bhg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/atmos) +"bhh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/atmos) +"bhi" = ( +/obj/machinery/status_display{ + pixel_x = 32 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/atmos) +"bhj" = ( +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/atmos) +"bhk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"bhl" = ( +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"bhm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"bhn" = ( +/obj/machinery/hydroponics/constructable, +/obj/machinery/status_display{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/delivery, +/area/hydroponics) +"bho" = ( +/turf/open/floor/plasteel/greenblue/side{ + tag = "icon-greenblue (WEST)"; + icon_state = "greenblue"; + dir = 8 + }, +/area/hydroponics) +"bhp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/neutral, +/area/hydroponics) +"bhq" = ( +/obj/machinery/hydroponics/constructable, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/delivery, +/area/hydroponics) +"bhr" = ( +/obj/machinery/hydroponics/constructable, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/hydroponics) +"bhs" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/hydroponics) +"bht" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/greenblue/side{ + tag = "icon-greenblue (EAST)"; + icon_state = "greenblue"; + dir = 4 + }, +/area/hydroponics) +"bhu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/hydroponics) +"bhv" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/window/eastleft{ + dir = 8; + name = "Hydroponics Desk"; + req_access_txt = "35" + }, +/obj/item/weapon/storage/bag/plants/portaseeder, +/turf/open/floor/plasteel/delivery, +/area/hydroponics) +"bhw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"bhx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"bhy" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"bhz" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/window/eastleft{ + dir = 4; + name = "Kitchen Desk"; + req_access_txt = "28" + }, +/obj/item/weapon/storage/bag/tray, +/turf/open/floor/plasteel/delivery, +/area/crew_quarters/kitchen) +"bhA" = ( +/obj/structure/sign/poster{ + icon_state = "poster16_legit"; + pixel_y = -32; + tag = "icon-poster16_legit" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/kitchen) +"bhB" = ( +/obj/machinery/food_cart, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/crew_quarters/kitchen) +"bhC" = ( +/obj/machinery/light, +/obj/machinery/status_display{ + pixel_y = -32 + }, +/obj/machinery/vending/dinnerware, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/delivery, +/area/crew_quarters/kitchen) +"bhD" = ( +/obj/machinery/icecream_vat, +/obj/structure/extinguisher_cabinet{ + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/crew_quarters/kitchen) +"bhE" = ( +/obj/structure/rack, +/obj/machinery/button/door{ + id = "kitchenwindows"; + name = "Kitchen Privacy Control"; + pixel_y = -26; + req_access_txt = "28" + }, +/obj/item/weapon/storage/box/donkpockets, +/obj/item/weapon/storage/box/donkpockets, +/obj/item/clothing/head/chefhat, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/kitchen) +"bhF" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/reagent_containers/food/snacks/mint, +/obj/item/weapon/reagent_containers/food/condiment/enzyme{ + pixel_y = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/kitchen) +"bhG" = ( +/obj/structure/table/reinforced, +/obj/machinery/reagentgrinder{ + desc = "Used to grind things up into raw materials and liquids."; + pixel_y = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/kitchen) +"bhH" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/clipboard, +/obj/item/toy/figure/chef, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/kitchen) +"bhI" = ( +/obj/machinery/light, +/obj/machinery/processor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/end{ + tag = "icon-plasteel_warn_end (NORTH)"; + icon_state = "plasteel_warn_end"; + dir = 1 + }, +/area/crew_quarters/kitchen) +"bhJ" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/suit/apron/chef, +/obj/item/weapon/kitchen/rollingpin, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/kitchen) +"bhK" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/reagent_containers/food/condiment/saltshaker{ + pixel_x = -8; + pixel_y = 5 + }, +/obj/item/weapon/reagent_containers/food/condiment/peppermill{ + pixel_x = -8 + }, +/obj/item/weapon/kitchen/knife, +/turf/open/floor/plasteel/delivery, +/area/crew_quarters/kitchen) +"bhL" = ( +/obj/structure/table/reinforced, +/obj/machinery/microwave{ + desc = "Cooks and boils stuff, somehow."; + pixel_x = -3; + pixel_y = 5 + }, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/kitchen) +"bhM" = ( +/obj/structure/table/reinforced, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/obj/machinery/microwave{ + desc = "Cooks and boils stuff, somehow."; + pixel_x = -3; + pixel_y = 5 + }, +/obj/structure/sign/poster{ + icon_state = "poster3_legit"; + pixel_x = 32; + pixel_y = 0; + tag = "icon-poster3_legit" + }, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/kitchen) +"bhN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/camera{ + c_tag = "Arrivals Hallway - Aft"; + dir = 8; + name = "hallway camera" + }, +/turf/open/floor/plasteel/brown/corner{ + tag = "icon-browncorner (EAST)"; + icon_state = "browncorner"; + dir = 4 + }, +/area/hallway/primary/fore) +"bhO" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall, +/area/hallway/primary/fore) +"bhP" = ( +/obj/structure/table, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/item/weapon/clipboard, +/obj/item/stack/packageWrap, +/obj/item/weapon/hand_labeler, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (SOUTHWEST)"; + icon_state = "brown"; + dir = 10 + }, +/area/hallway/primary/fore) +"bhQ" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/brown, +/area/hallway/primary/fore) +"bhR" = ( +/turf/open/floor/plasteel/brown, +/area/hallway/primary/fore) +"bhS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/brown, +/area/hallway/primary/fore) +"bhT" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/brown, +/area/hallway/primary/fore) +"bhU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/brown, +/area/hallway/primary/fore) +"bhV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel/brown, +/area/hallway/primary/fore) +"bhW" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/lights/mixed, +/turf/open/floor/plasteel/brown, +/area/hallway/primary/fore) +"bhX" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (SOUTHEAST)"; + icon_state = "brown"; + dir = 6 + }, +/area/hallway/primary/fore) +"bhY" = ( +/obj/structure/table/reinforced, +/obj/machinery/computer/stockexchange, +/obj/machinery/airalarm{ + dir = 4; + locked = 0; + pixel_x = -23; + pixel_y = 0 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 0; + pixel_y = -24 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (SOUTHWEST)"; + icon_state = "brown"; + dir = 10 + }, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bhZ" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/loadingarea{ + dir = 4 + }, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bia" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/bot, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bib" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/loadingarea{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bic" = ( +/obj/structure/table, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/item/weapon/storage/firstaid/regular, +/obj/machinery/light, +/obj/machinery/power/apc{ + dir = 4; + name = "Mining Dock APC"; + pixel_x = 26; + pixel_y = 0 + }, +/obj/machinery/camera{ + c_tag = "Cargo - Mining Office"; + dir = 8; + name = "cargo camera" + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (SOUTHEAST)"; + icon_state = "brown"; + dir = 6 + }, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bid" = ( +/obj/structure/rack, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/storage/toolbox/emergency{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/storage/toolbox/emergency, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/item/weapon/shovel, +/obj/item/weapon/shovel, +/obj/item/weapon/pickaxe, +/obj/item/weapon/pickaxe, +/turf/open/floor/plasteel/bot, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bie" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bif" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"big" = ( +/obj/structure/closet/wardrobe/miner, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light, +/obj/item/device/radio/intercom{ + dir = 8; + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = -26 + }, +/obj/item/weapon/storage/backpack/satchel/explorer, +/turf/open/floor/plasteel/bot, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bih" = ( +/obj/machinery/disposal/bin, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bii" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bij" = ( +/obj/machinery/computer/security/mining, +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bik" = ( +/obj/machinery/computer/shuttle/mining, +/turf/open/floor/plasteel/bot, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bil" = ( +/obj/structure/shuttle/engine/propulsion/burst, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/turf/open/floor/plating/warnplate, +/area/shuttle/mining) +"bim" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/brig) +"bin" = ( +/obj/structure/table/glass, +/obj/item/weapon/storage/firstaid/regular, +/obj/item/weapon/reagent_containers/glass/bottle/epinephrine, +/obj/item/weapon/reagent_containers/glass/bottle/charcoal, +/obj/item/weapon/reagent_containers/syringe, +/turf/open/floor/plasteel/whitered/side{ + dir = 10 + }, +/area/security/brig) +"bio" = ( +/obj/machinery/light/small, +/obj/machinery/holopad, +/turf/open/floor/plasteel/whitered/side, +/area/security/brig) +"bip" = ( +/obj/structure/bed/roller, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = -26 + }, +/turf/open/floor/plasteel/whitered/side, +/area/security/brig) +"biq" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/sign/bluecross_2, +/turf/open/floor/plating, +/area/security/brig) +"bir" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/brig) +"bis" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/neutral, +/area/security/brig) +"bit" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/brig) +"biu" = ( +/obj/structure/cable/white, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/main) +"biv" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/main) +"biw" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/main) +"bix" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/red, +/obj/item/clothing/mask/gas/sechailer, +/turf/open/floor/plasteel/red, +/area/security/main) +"biy" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/fancy/donut_box, +/turf/open/floor/plasteel/red, +/area/security/main) +"biz" = ( +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/main) +"biA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/security/main) +"biB" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/main) +"biC" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "hosprivacy"; + name = "HoS Privacy Blast door" + }, +/turf/open/floor/plating, +/area/security/hos) +"biD" = ( +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = -32; + pixel_y = 32 + }, +/turf/open/floor/plasteel/grimy, +/area/security/hos) +"biE" = ( +/mob/living/simple_animal/hostile/carp/cayenne{ + color = ""; + desc = "A failed experiment of Nanotrasen to create weaponised carp technology. This less than intimidating carp now serves as an authority figure's pet."; + health = 200; + icon_dead = "magicarp_dead"; + icon_gib = "magicarp_gib"; + icon_living = "magicarp"; + icon_state = "magicarp"; + maxHealth = 200; + melee_damage_lower = 20; + melee_damage_upper = 20; + name = "Lia" + }, +/turf/open/floor/plasteel/grimy, +/area/security/hos) +"biF" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/security/hos) +"biG" = ( +/turf/open/floor/plasteel/grimy, +/area/security/hos) +"biH" = ( +/obj/machinery/ai_status_display{ + pixel_x = 32; + pixel_y = 32 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 26; + pixel_y = 58 + }, +/turf/open/floor/plasteel/grimy, +/area/security/hos) +"biI" = ( +/obj/structure/table/wood, +/obj/item/weapon/folder/red, +/obj/item/weapon/pen, +/obj/machinery/button/door{ + id = "hosprivacy"; + name = "Privacy Control"; + pixel_x = 26; + pixel_y = 7; + req_access_txt = "58" + }, +/obj/machinery/button/door{ + id = "hosspace"; + name = "Space Shutters Control"; + pixel_x = 26; + pixel_y = -7; + req_access_txt = "58" + }, +/obj/machinery/light_switch{ + pixel_x = 38 + }, +/obj/machinery/keycard_auth{ + pixel_x = 26; + pixel_y = 26 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/hos) +"biJ" = ( +/turf/closed/wall, +/area/security/hos) +"biK" = ( +/obj/structure/dresser, +/obj/machinery/newscaster/security_unit{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/grimy, +/area/security/hos) +"biL" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/hos, +/obj/machinery/status_display{ + pixel_y = 32 + }, +/obj/machinery/camera{ + c_tag = "Security - Head of Security's Quarters"; + dir = 2; + name = "security camera" + }, +/turf/open/floor/plasteel/grimy, +/area/security/hos) +"biM" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/secure/safe/HoS{ + pixel_x = 32 + }, +/obj/item/device/flashlight/lamp, +/turf/open/floor/plasteel/grimy, +/area/security/hos) +"biN" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/turf/open/space, +/area/space) +"biO" = ( +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"biP" = ( +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"biQ" = ( +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"biR" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/space, +/area/space) +"biS" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 4; + frequency = 1441; + id = "n2o_in"; + pixel_y = 1 + }, +/turf/open/floor/engine/n2o, +/area/atmos) +"biT" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/components/trinary/filter{ + dir = 2; + filter_type = "n2o"; + name = "n2o filter"; + on = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/escape{ + dir = 10 + }, +/area/atmos) +"biU" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/bot, +/area/atmos) +"biV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 1 + }, +/turf/open/floor/plasteel/bot, +/area/atmos) +"biW" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/bot, +/area/atmos) +"biX" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/floor/plasteel/delivery, +/area/atmos) +"biY" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 8; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/bot, +/area/atmos) +"biZ" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/atmos) +"bja" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/caution{ + tag = "icon-caution (NORTHWEST)"; + icon_state = "caution"; + dir = 9 + }, +/area/atmos) +"bjb" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/caution{ + dir = 1 + }, +/area/atmos) +"bjc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/caution{ + dir = 1 + }, +/area/atmos) +"bjd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/caution{ + tag = "icon-caution (NORTHEAST)"; + icon_state = "caution"; + dir = 5 + }, +/area/atmos) +"bje" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + tag = "icon-intact (NORTH)"; + icon_state = "intact"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/atmos) +"bjf" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 10; + initialize_directions = 10 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bjg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/atmos) +"bjh" = ( +/obj/structure/table/reinforced, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/bot, +/area/atmos) +"bji" = ( +/obj/structure/table/reinforced, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/weapon/grenade/chem_grenade/metalfoam, +/obj/item/weapon/grenade/chem_grenade/metalfoam, +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/bot, +/area/atmos) +"bjj" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin, +/obj/structure/sign/poster{ + icon_state = "poster16_legit"; + pixel_y = -32; + tag = "icon-poster16_legit" + }, +/turf/open/floor/plasteel/bot, +/area/atmos) +"bjk" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/atmos) +"bjl" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/atmos) +"bjm" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plating, +/area/atmos) +"bjn" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/space, +/area/space) +"bjo" = ( +/obj/structure/rack, +/obj/effect/landmark/costume, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plasteel/bot, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"bjp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"bjq" = ( +/obj/machinery/hydroponics/constructable, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/delivery, +/area/hydroponics) +"bjr" = ( +/obj/effect/landmark/start{ + name = "Botanist" + }, +/turf/open/floor/plasteel/neutral, +/area/hydroponics) +"bjs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral, +/area/hydroponics) +"bjt" = ( +/turf/open/floor/plasteel/neutral, +/area/hydroponics) +"bju" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/hydroponics) +"bjv" = ( +/turf/open/floor/plasteel/greenblue/side{ + tag = "icon-greenblue (EAST)"; + icon_state = "greenblue"; + dir = 4 + }, +/area/hydroponics) +"bjw" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/obj/machinery/light_switch{ + pixel_x = 26; + pixel_y = 8 + }, +/obj/machinery/plantgenes, +/obj/machinery/camera{ + c_tag = "Hydroponics"; + dir = 8; + name = "service camera" + }, +/turf/open/floor/plasteel/delivery, +/area/hydroponics) +"bjx" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"bjy" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Service Foyer" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"bjz" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/crew_quarters/sleep{ + name = "Service Hall" + }) +"bjA" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "kitchenwindows"; + name = "Kitchen Privacy Shutters" + }, +/turf/open/floor/plating, +/area/crew_quarters/kitchen) +"bjB" = ( +/obj/structure/sign/directions/evac{ + pixel_y = -8 + }, +/obj/structure/sign/directions/science{ + dir = 8 + }, +/obj/structure/sign/directions/engineering{ + dir = 8; + pixel_y = 8 + }, +/turf/closed/wall, +/area/crew_quarters/kitchen) +"bjC" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock/glass{ + name = "Fore Primary Hallway" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/hallway/primary/fore) +"bjD" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Fore Primary Hallway" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/hallway/primary/fore) +"bjE" = ( +/obj/structure/sign/directions/security{ + dir = 4; + pixel_y = 8 + }, +/obj/structure/sign/directions/engineering{ + desc = "A direction sign, pointing out which way the Supply department is."; + dir = 4; + icon_state = "direction_supply"; + name = "supply department"; + tag = "icon-direction_supply" + }, +/obj/structure/sign/directions/medical{ + pixel_y = -8 + }, +/turf/closed/wall, +/area/hallway/primary/fore) +"bjF" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/hallway/primary/fore) +"bjG" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/hallway/primary/fore) +"bjH" = ( +/obj/machinery/status_display, +/turf/closed/wall, +/area/hallway/primary/fore) +"bjI" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/hallway/primary/fore) +"bjJ" = ( +/obj/machinery/mineral/ore_redemption, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bjK" = ( +/obj/structure/plasticflaps{ + opacity = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bjL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/mining{ + name = "Mining Dock"; + req_access_txt = "48" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bjM" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bjN" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/transfer) +"bjO" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/transfer) +"bjP" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/transfer) +"bjQ" = ( +/turf/closed/wall/r_wall, +/area/security/transfer) +"bjR" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 4; + locked = 0; + pixel_x = -23; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/brig) +"bjS" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/security/brig) +"bjT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/brig) +"bjU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/security/main) +"bjV" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Security Office APC"; + pixel_x = -26; + pixel_y = 0 + }, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/main) +"bjW" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/main) +"bjX" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/restraints/handcuffs, +/obj/item/device/assembly/flash/handheld, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red, +/area/security/main) +"bjY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/main) +"bjZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/security/main) +"bka" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/red{ + pixel_x = -2; + pixel_y = -2 + }, +/obj/item/weapon/folder/blue{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/weapon/lighter, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/main) +"bkb" = ( +/obj/machinery/photocopier, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/main) +"bkc" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/main) +"bkd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/main) +"bke" = ( +/obj/structure/cable/white, +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "hosprivacy"; + name = "HoS Privacy Blast door" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/hos) +"bkf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/security/hos) +"bkg" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/security/hos) +"bkh" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/grimy, +/area/security/hos) +"bki" = ( +/obj/machinery/computer/secure_data, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/security/hos) +"bkj" = ( +/obj/machinery/computer/card/minor/hos, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/hos) +"bkk" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/tinted/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/hos) +"bkl" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/security/hos) +"bkm" = ( +/obj/machinery/computer/prisoner, +/turf/open/floor/plasteel/grimy, +/area/security/hos) +"bkn" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "hosroom"; + name = "HoS Room Blast door" + }, +/turf/open/floor/plating, +/area/security/hos) +"bko" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/turf/open/space, +/area/space) +"bkp" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"bkq" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"bkr" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"bks" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"bkt" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/space, +/area/space) +"bku" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 8; + initialize_directions = 11 + }, +/obj/machinery/status_display{ + pixel_x = -32 + }, +/turf/open/floor/plating, +/area/atmos) +"bkv" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/atmos) +"bkw" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/atmos) +"bkx" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/door/airlock/glass_atmos{ + name = "Distribution Loop"; + req_access_txt = "24" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/atmos) +"bky" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plating, +/area/atmos) +"bkz" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/toolbox/mechanical, +/obj/item/device/flashlight, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel/bot, +/area/atmos) +"bkA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + tag = "icon-intact (NORTH)"; + icon_state = "intact"; + dir = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bkB" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/clipboard, +/obj/effect/decal/cleanable/dirt, +/obj/item/toy/figure/atmos, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + tag = "icon-intact (NORTH)"; + icon_state = "intact"; + dir = 1 + }, +/turf/open/floor/plasteel/bot, +/area/atmos) +"bkC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + tag = "icon-intact (NORTH)"; + icon_state = "intact"; + dir = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/atmos) +"bkD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + tag = "icon-intact (NORTH)"; + icon_state = "intact"; + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bkE" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 28; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/atmos) +"bkF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/atmos) +"bkG" = ( +/obj/machinery/hydroponics/constructable, +/obj/structure/sign/botany{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/delivery, +/area/hydroponics) +"bkH" = ( +/obj/machinery/biogenerator, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/bot, +/area/hydroponics) +"bkI" = ( +/obj/machinery/seed_extractor, +/turf/open/floor/plasteel/bot, +/area/hydroponics) +"bkJ" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/bot, +/area/hydroponics) +"bkK" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/bot, +/area/hydroponics) +"bkL" = ( +/obj/machinery/status_display, +/turf/closed/wall, +/area/hydroponics) +"bkM" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"bkN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"bkO" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"bkP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"bkQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Central Hallway - Fore Port"; + dir = 2; + name = "hallway camera" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"bkR" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"bkS" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/hallway/primary/central) +"bkT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"bkU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/hallway/primary/central) +"bkV" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/brown/corner{ + tag = "icon-browncorner (EAST)"; + icon_state = "browncorner"; + dir = 4 + }, +/area/hallway/primary/central) +"bkW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/brown/corner{ + tag = "icon-browncorner (EAST)"; + icon_state = "browncorner"; + dir = 4 + }, +/area/hallway/primary/central) +"bkX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/brown/corner{ + tag = "icon-browncorner (EAST)"; + icon_state = "browncorner"; + dir = 4 + }, +/area/hallway/primary/central) +"bkY" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/brown/corner{ + tag = "icon-browncorner (EAST)"; + icon_state = "browncorner"; + dir = 4 + }, +/area/hallway/primary/central) +"bkZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Central Hallway - Fore Starboard"; + dir = 2; + name = "hallway camera" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"bla" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"blb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"blc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/purple/corner{ + tag = "icon-purplecorner (EAST)"; + icon_state = "purplecorner"; + dir = 4 + }, +/area/hallway/primary/central) +"bld" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"ble" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"blf" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"blg" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (WEST)"; + icon_state = "brown"; + dir = 8 + }, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"blh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"bli" = ( +/turf/open/floor/plating, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"blj" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/decal/cleanable/dirt, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"blk" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/transfer) +"bll" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/security/transfer) +"blm" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/transfer) +"bln" = ( +/obj/machinery/computer/shuttle/labor, +/obj/machinery/status_display{ + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/transfer) +"blo" = ( +/obj/machinery/computer/security{ + name = "Labor Camp Monitoring"; + network = list("Labor") + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = 26 + }, +/turf/open/floor/plasteel/red, +/area/security/transfer) +"blp" = ( +/obj/machinery/computer/secure_data, +/obj/machinery/ai_status_display{ + pixel_y = 32 + }, +/obj/machinery/camera{ + c_tag = "Security - Transfer Centre"; + dir = 2; + name = "security camera" + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/transfer) +"blq" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/transfer) +"blr" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/transfer) +"bls" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/landmark{ + name = "lightsout" + }, +/turf/open/floor/plasteel/neutral, +/area/security/brig) +"blt" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/security/main) +"blu" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/main) +"blv" = ( +/turf/open/floor/plasteel/red, +/area/security/main) +"blw" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/bot, +/area/security/main) +"blx" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/clipboard, +/obj/item/clothing/tie/armband/deputy, +/obj/item/clothing/tie/armband/deputy, +/obj/item/clothing/tie/armband/deputy, +/obj/item/clothing/tie/armband/deputy, +/obj/item/clothing/tie/armband/deputy, +/obj/item/weapon/reagent_containers/food/snacks/donut/jelly/cherryjelly, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/main) +"bly" = ( +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/main) +"blz" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/main) +"blA" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/main) +"blB" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/door/airlock/command{ + name = "Head of Security's Office"; + req_access = null; + req_access_txt = "58" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/hos) +"blC" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/security/hos) +"blD" = ( +/obj/machinery/holopad, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/security/hos) +"blE" = ( +/obj/structure/table/wood, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/item/weapon/folder/red, +/obj/item/weapon/stamp/hos, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/security/hos) +"blF" = ( +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/landmark/start{ + name = "Head of Security" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/security/hos) +"blG" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/grimy, +/area/security/hos) +"blH" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/hos) +"blI" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/door/airlock/command{ + name = "Head of Security's Quarters"; + req_access = null; + req_access_txt = "58" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/hos) +"blJ" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/grimy, +/area/security/hos) +"blK" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/landmark/start{ + name = "Head of Security" + }, +/turf/open/floor/plasteel/grimy, +/area/security/hos) +"blL" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/computer/crew, +/turf/open/floor/plasteel/grimy, +/area/security/hos) +"blM" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/cable/white, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "hosroom"; + name = "HoS Room Blast door" + }, +/turf/open/floor/plating, +/area/security/hos) +"blN" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"blO" = ( +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/door/window/southleft, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"blP" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"blQ" = ( +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"blR" = ( +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"blS" = ( +/obj/structure/window/reinforced, +/obj/machinery/camera{ + c_tag = "AI Satellite - Fore"; + dir = 1; + name = "ai camera"; + network = list("Sat"); + pixel_x = 0; + pixel_y = 0; + start_active = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"blT" = ( +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"blU" = ( +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/machinery/door/window/southright, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"blV" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"blW" = ( +/turf/open/floor/engine/vacuum, +/area/atmos) +"blX" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 4; + frequency = 1441; + id = "mix_in"; + pixel_y = 1 + }, +/turf/open/floor/engine/vacuum, +/area/atmos) +"blY" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plasteel/green/side{ + dir = 9 + }, +/area/atmos) +"blZ" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Unfiltered & Air to Mix"; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bma" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bmb" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 2; + name = "Pure to Mix"; + on = 0 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bmc" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 6 + }, +/turf/open/floor/plasteel/caution{ + dir = 1 + }, +/area/atmos) +"bmd" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/caution{ + dir = 1 + }, +/area/atmos) +"bme" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 6 + }, +/turf/open/floor/plasteel/caution{ + dir = 1 + }, +/area/atmos) +"bmf" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/atmos) +"bmg" = ( +/obj/item/clothing/gloves/color/black, +/obj/structure/table/reinforced, +/obj/item/clothing/glasses/meson/engine/tray, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 9 + }, +/turf/open/floor/plasteel/bot, +/area/atmos) +"bmh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + tag = "icon-intact (NORTH)"; + icon_state = "intact"; + dir = 1 + }, +/obj/effect/landmark/start{ + name = "Atmospheric Technician" + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bmi" = ( +/obj/item/weapon/weldingtool, +/obj/item/clothing/head/welding, +/obj/structure/table/reinforced, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + tag = "icon-intact (NORTH)"; + icon_state = "intact"; + dir = 1 + }, +/turf/open/floor/plasteel/bot, +/area/atmos) +"bmj" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bmk" = ( +/obj/structure/sign/poster{ + icon_state = "poster17_legit"; + pixel_x = 32; + pixel_y = 0; + tag = "icon-poster17_legit" + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Air to External Air Ports"; + on = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/atmos) +"bml" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/atmos) +"bmm" = ( +/obj/machinery/space_heater, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/atmos) +"bmn" = ( +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/atmos) +"bmo" = ( +/obj/machinery/portable_atmospherics/canister/nitrogen, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/atmos) +"bmp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/atmos) +"bmq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/portable_atmospherics/canister/air, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/atmos) +"bmr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/atmos) +"bms" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/hallway/primary/port) +"bmt" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/hallway/primary/port) +"bmu" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 4 + }, +/area/hallway/primary/port) +"bmv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"bmw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"bmx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"bmy" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"bmz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 10; + heat_capacity = 1e+006 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"bmA" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"bmB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/junction{ + dir = 8; + icon_state = "pipe-j2" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"bmC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"bmD" = ( +/obj/machinery/hydroponics/constructable, +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/delivery, +/area/hydroponics) +"bmE" = ( +/obj/machinery/seed_extractor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/bot, +/area/hydroponics) +"bmF" = ( +/obj/machinery/biogenerator, +/turf/open/floor/plasteel/bot, +/area/hydroponics) +"bmG" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Botanist" + }, +/turf/open/floor/plasteel/bot, +/area/hydroponics) +"bmH" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/item/weapon/folder, +/obj/item/weapon/pen, +/obj/machinery/door/window/eastleft{ + dir = 8; + name = "Hydroponics Desk"; + req_access_txt = "35" + }, +/obj/item/weapon/reagent_containers/food/snacks/grown/apple, +/turf/open/floor/plasteel/delivery, +/area/hydroponics) +"bmI" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"bmJ" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hall3"; + location = "hall2" + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/central) +"bmK" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/junction{ + dir = 4; + icon_state = "pipe-j2" + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/central) +"bmL" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/central) +"bmM" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/central) +"bmN" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/hallway/primary/central) +"bmO" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/hallway/primary/central) +"bmP" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel{ + icon_state = "L1" + }, +/area/hallway/primary/central) +"bmQ" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel{ + icon_state = "L3" + }, +/area/hallway/primary/central) +"bmR" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hall2"; + location = "hall1" + }, +/turf/open/floor/plasteel{ + icon_state = "L5" + }, +/area/hallway/primary/central) +"bmS" = ( +/obj/effect/landmark{ + name = "lightsout" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hall15"; + location = "hall14" + }, +/turf/open/floor/plasteel{ + icon_state = "L7" + }, +/area/hallway/primary/central) +"bmT" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel{ + icon_state = "L9" + }, +/area/hallway/primary/central) +"bmU" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel{ + icon_state = "L11" + }, +/area/hallway/primary/central) +"bmV" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel{ + desc = ""; + icon_state = "L13"; + name = "floor" + }, +/area/hallway/primary/central) +"bmW" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/hallway/primary/central) +"bmX" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/central) +"bmY" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/central) +"bmZ" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning/side, +/area/hallway/primary/central) +"bna" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/central) +"bnb" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/central) +"bnc" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hall14"; + location = "hall13" + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/central) +"bnd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"bne" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/labor) +"bnf" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/labor) +"bng" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/sign/electricshock{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/security/transfer) +"bnh" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/transfer) +"bni" = ( +/turf/open/floor/plasteel/warning, +/area/security/transfer) +"bnj" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/turf/open/floor/plasteel/warning, +/area/security/transfer) +"bnk" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/warning, +/area/security/transfer) +"bnl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/transfer) +"bnm" = ( +/obj/structure/cable/white, +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/transfer) +"bnn" = ( +/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/brig) +"bno" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral, +/area/security/brig) +"bnp" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/brig) +"bnq" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/glass_security{ + name = "Security Office"; + req_access_txt = "63" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/main) +"bnr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/security/main) +"bns" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/main) +"bnt" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/red, +/obj/item/device/flashlight/seclite, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red, +/area/security/main) +"bnu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/security/main) +"bnv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 8 + }, +/area/security/main) +"bnw" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/book/manual/wiki/security_space_law, +/obj/item/device/taperecorder, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/security/main) +"bnx" = ( +/obj/machinery/computer/secure_data, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/main) +"bny" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/main) +"bnz" = ( +/obj/effect/landmark{ + name = "secequipment" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/main) +"bnA" = ( +/obj/structure/cable/white, +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "hosprivacy"; + name = "HoS Privacy Blast door" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/hos) +"bnB" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/security/hos) +"bnC" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/security/hos) +"bnD" = ( +/obj/structure/table/wood, +/obj/item/weapon/phone{ + desc = "Supposedly a direct line to NanoTrasen Central Command. It's not even plugged in."; + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/mask/cigarette/cigar/cohiba{ + pixel_x = 6 + }, +/obj/item/clothing/mask/cigarette/cigar/havana{ + pixel_x = 2 + }, +/obj/item/clothing/mask/cigarette/cigar{ + pixel_x = 4.5 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/security/hos) +"bnE" = ( +/obj/machinery/computer/security, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/security/hos) +"bnF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/grimy, +/area/security/hos) +"bnG" = ( +/obj/machinery/computer/prisoner, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/hos) +"bnH" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/tinted/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/hos) +"bnI" = ( +/obj/machinery/light_switch{ + pixel_x = -26; + pixel_y = -26 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/security/hos) +"bnJ" = ( +/obj/machinery/button/door{ + id = "hosroom"; + name = "Privacy Control"; + pixel_x = 64; + pixel_y = -26; + req_access_txt = "58" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/grimy, +/area/security/hos) +"bnK" = ( +/obj/machinery/computer/secure_data, +/turf/open/floor/plasteel/grimy, +/area/security/hos) +"bnL" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "hosroom"; + name = "HoS Room Blast door" + }, +/turf/open/floor/plating, +/area/security/hos) +"bnM" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"bnN" = ( +/obj/structure/lattice, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/space, +/area/space) +"bnO" = ( +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"bnP" = ( +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/turf/open/space, +/area/space) +"bnQ" = ( +/obj/structure/lattice, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/turf/open/space, +/area/space) +"bnR" = ( +/obj/structure/lattice, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/space, +/area/space) +"bnS" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/turf/open/space, +/area/space) +"bnT" = ( +/obj/structure/lattice, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/space, +/area/space) +"bnU" = ( +/obj/structure/lattice, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/turf/open/space, +/area/space) +"bnV" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/engine/vacuum, +/area/atmos) +"bnW" = ( +/obj/machinery/air_sensor{ + frequency = 1441; + id_tag = "mix_sensor" + }, +/turf/open/floor/engine/vacuum, +/area/atmos) +"bnX" = ( +/obj/machinery/computer/atmos_control/tank{ + frequency = 1441; + input_tag = "mix_in"; + name = "Gas Mix Tank Control"; + output_tag = "mix_in"; + sensors = list("mix_sensor" = "Tank") + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plasteel/green/side{ + dir = 8 + }, +/area/atmos) +"bnY" = ( +/obj/machinery/atmospherics/pipe/manifold/green/visible{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bnZ" = ( +/obj/machinery/atmospherics/pipe/manifold/green/visible, +/obj/machinery/meter, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"boa" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bob" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 8 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"boc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Mix to Filter"; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bod" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + tag = "icon-manifold (EAST)"; + name = "scrubbers pipe"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"boe" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/crowbar/red, +/obj/item/weapon/wrench, +/obj/item/clothing/mask/gas, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 6 + }, +/turf/open/floor/plasteel/bot, +/area/atmos) +"bof" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 4; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bog" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/belt/utility, +/obj/item/device/t_scanner, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + tag = "icon-intact (NORTH)"; + icon_state = "intact"; + dir = 1 + }, +/turf/open/floor/plasteel/bot, +/area/atmos) +"boh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 5 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/atmos) +"boi" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"boj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "External Waste Ports to Filter"; + on = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/atmos) +"bok" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/atmos) +"bol" = ( +/obj/machinery/space_heater, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/atmos) +"bom" = ( +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/atmos) +"bon" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/portable_atmospherics/canister/nitrogen, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/atmos) +"boo" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/atmos) +"bop" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/atmos) +"boq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/sign/nosmoking_2, +/turf/closed/wall/r_wall, +/area/atmos) +"bor" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/hallway/primary/port) +"bos" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=engi3"; + location = "engi2" + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/port) +"bot" = ( +/turf/open/floor/plasteel/yellow/corner{ + dir = 4 + }, +/area/hallway/primary/port) +"bou" = ( +/turf/closed/wall, +/area/storage/tech) +"bov" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/storage/tech) +"bow" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/closed/wall, +/area/storage/tech) +"box" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"boy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/hydroponics) +"boz" = ( +/obj/machinery/hydroponics/constructable, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/turf/open/floor/plasteel/delivery, +/area/hydroponics) +"boA" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral, +/area/hydroponics) +"boB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/neutral, +/area/hydroponics) +"boC" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/window/eastright{ + dir = 8; + name = "Hydroponics Desk"; + req_access_txt = "35" + }, +/obj/item/seeds/lime{ + pixel_x = 6 + }, +/obj/item/seeds/watermelon, +/obj/item/seeds/grape{ + pixel_x = -6 + }, +/obj/item/weapon/reagent_containers/food/snacks/grown/wheat, +/obj/item/weapon/reagent_containers/food/snacks/grown/watermelon, +/obj/item/weapon/reagent_containers/food/snacks/grown/banana, +/turf/open/floor/plasteel/delivery, +/area/hydroponics) +"boD" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/central) +"boE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/central) +"boF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 0; + pixel_y = -24 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/central) +"boG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/central) +"boH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/central) +"boI" = ( +/obj/structure/sign/poster{ + icon_state = "poster16_legit"; + pixel_y = -32; + tag = "icon-poster16_legit" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light/small, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/central) +"boJ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/hallway/primary/central) +"boK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel{ + icon_state = "L2" + }, +/area/hallway/primary/central) +"boL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light/small, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 0; + pixel_y = -24 + }, +/turf/open/floor/plasteel{ + icon_state = "L4" + }, +/area/hallway/primary/central) +"boM" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel{ + icon_state = "L6" + }, +/area/hallway/primary/central) +"boN" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel{ + icon_state = "L8" + }, +/area/hallway/primary/central) +"boO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel{ + icon_state = "L10" + }, +/area/hallway/primary/central) +"boP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light/small, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = -26 + }, +/obj/machinery/camera{ + c_tag = "Central Hallway - Fore"; + dir = 1; + name = "hallway camera" + }, +/turf/open/floor/plasteel{ + icon_state = "L12" + }, +/area/hallway/primary/central) +"boQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel{ + desc = ""; + icon_state = "L14" + }, +/area/hallway/primary/central) +"boR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"boS" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"boT" = ( +/obj/structure/sign/poster{ + icon_state = "poster22_legit"; + pixel_y = -32; + tag = "icon-poster22_legit" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light/small, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"boU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"boV" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/machinery/light, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 0; + pixel_y = -24 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"boW" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"boX" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/central) +"boY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"boZ" = ( +/turf/closed/wall, +/area/hallway/primary/central) +"bpa" = ( +/obj/machinery/computer/shuttle/labor, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = -31; + pixel_y = 0 + }, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/labor) +"bpb" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/labor) +"bpc" = ( +/obj/item/weapon/folder/red, +/obj/item/weapon/restraints/handcuffs, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/labor) +"bpd" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/transfer) +"bpe" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/sign/vacuum, +/turf/open/floor/plating, +/area/security/transfer) +"bpf" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/transfer) +"bpg" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/security/transfer) +"bph" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/transfer) +"bpi" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/red, +/obj/item/weapon/restraints/handcuffs, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/item/weapon/storage/box/prisoner, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/transfer) +"bpj" = ( +/obj/machinery/gulag_teleporter, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/transfer) +"bpk" = ( +/obj/machinery/computer/gulag_teleporter_computer, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/transfer) +"bpl" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/transfer) +"bpm" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/door/airlock/glass_security{ + name = "Security Transfering Control"; + req_access_txt = "63" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/red, +/area/security/transfer) +"bpn" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/brig) +"bpo" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/security/brig) +"bpp" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/brig) +"bpq" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/glass_security{ + name = "Security Office"; + req_access_txt = "63" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/main) +"bpr" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"bps" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/main) +"bpt" = ( +/obj/structure/table/reinforced, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/item/weapon/folder/red, +/obj/item/weapon/storage/secure/briefcase, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/red, +/area/security/main) +"bpu" = ( +/obj/structure/table/reinforced, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/red, +/area/security/main) +"bpv" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/main) +"bpw" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/security/main) +"bpx" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/security/main) +"bpy" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/main) +"bpz" = ( +/obj/effect/landmark{ + name = "secequipment" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/main) +"bpA" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "hosprivacy"; + name = "HoS Privacy Blast door" + }, +/turf/open/floor/plating, +/area/security/hos) +"bpB" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24; + pixel_y = -32 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/grimy, +/area/security/hos) +"bpC" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/grimy, +/area/security/hos) +"bpD" = ( +/obj/machinery/status_display{ + pixel_x = 32; + pixel_y = -32 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/grimy, +/area/security/hos) +"bpE" = ( +/obj/structure/table/wood, +/obj/machinery/computer/med_data/laptop, +/obj/machinery/newscaster/security_unit{ + pixel_x = 32 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 26; + pixel_y = -32 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/hos) +"bpF" = ( +/obj/structure/closet/secure_closet/hos, +/obj/item/clothing/head/HoS/beret, +/obj/item/clothing/suit/armor/hos/trenchcoat, +/obj/item/clothing/under/rank/head_of_security/grey, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/security/hos) +"bpG" = ( +/obj/machinery/light, +/obj/machinery/ai_status_display{ + pixel_y = -32 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 26; + pixel_y = -26 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/security/hos) +"bpH" = ( +/obj/machinery/suit_storage_unit/hos, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/security/hos) +"bpI" = ( +/obj/structure/lattice, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/space, +/area/space) +"bpJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai) +"bpK" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai) +"bpL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai) +"bpM" = ( +/obj/structure/lattice, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/turf/open/space, +/area/space) +"bpN" = ( +/obj/machinery/camera{ + c_tag = "Atmospherics - Mix Cell"; + dir = 1; + name = "atmospherics camera" + }, +/turf/open/floor/engine/vacuum, +/area/atmos) +"bpO" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 0; + frequency = 1441; + id_tag = "mix_in"; + initialize_directions = 1; + internal_pressure_bound = 4000; + name = "distro vent"; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine/vacuum, +/area/atmos) +"bpP" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/space, +/area/atmos) +"bpQ" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/green/side{ + dir = 10 + }, +/area/atmos) +"bpR" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bpS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bpT" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 1 + }, +/obj/effect/landmark/start{ + name = "Atmospheric Technician" + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bpU" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bpV" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bpW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Waste to Filter"; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bpX" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + tag = "icon-intact (NORTH)"; + icon_state = "intact"; + dir = 1 + }, +/turf/open/floor/plasteel/bot, +/area/atmos) +"bpY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + tag = "icon-intact (NORTH)"; + icon_state = "intact"; + dir = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bpZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + tag = "icon-intact (NORTH)"; + icon_state = "intact"; + dir = 1 + }, +/turf/open/floor/plasteel/bot, +/area/atmos) +"bqa" = ( +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/atmos) +"bqb" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bqc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/atmos) +"bqd" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_atmos{ + name = "Atmospherics Desk"; + req_access_txt = "24" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/atmos) +"bqe" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/delivery, +/area/atmos) +"bqf" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/bot, +/area/atmos) +"bqg" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/portable_atmospherics/canister/nitrogen, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/bot, +/area/atmos) +"bqh" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/bot, +/area/atmos) +"bqi" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/machinery/camera{ + c_tag = "Atmospherics - Desk"; + dir = 8; + name = "atmospherics camera" + }, +/turf/open/floor/plasteel/bot, +/area/atmos) +"bqj" = ( +/obj/machinery/status_display, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/atmos) +"bqk" = ( +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/hallway/primary/port) +"bql" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/port) +"bqm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"bqn" = ( +/obj/machinery/vending/hydroseeds, +/turf/open/floor/plasteel/bot, +/area/hydroponics) +"bqo" = ( +/obj/machinery/vending/hydronutrients, +/turf/open/floor/plasteel/bot, +/area/hydroponics) +"bqp" = ( +/obj/structure/table/glass, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/obj/item/stack/packageWrap, +/obj/item/weapon/book/manual/hydroponics_pod_people, +/obj/item/weapon/hand_labeler, +/turf/open/floor/plasteel/bot, +/area/hydroponics) +"bqq" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/hallway/primary/central) +"bqr" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/hallway/primary/central) +"bqs" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/hallway/primary/central) +"bqt" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/hallway/primary/central) +"bqu" = ( +/obj/machinery/status_display, +/turf/closed/wall, +/area/hallway/primary/central) +"bqv" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/hallway/primary/central) +"bqw" = ( +/turf/closed/wall/r_wall, +/area/security/nuke_storage) +"bqx" = ( +/obj/structure/grille, +/obj/structure/cable/yellow{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/labor) +"bqy" = ( +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/labor) +"bqz" = ( +/obj/machinery/button/flasher{ + id = "gulagshuttleflasher"; + name = "Flash Control"; + pixel_x = 0; + pixel_y = -26; + req_access_txt = "1" + }, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/labor) +"bqA" = ( +/obj/machinery/mineral/labor_claim_console{ + machinedir = 2; + pixel_x = 30; + pixel_y = 30 + }, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/labor) +"bqB" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Labor Shuttle Airlock"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/warnwhite/side, +/area/shuttle/labor) +"bqC" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 4; + name = "Gulag Shuttle Airlock"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/warning/side, +/area/security/transfer) +"bqD" = ( +/obj/structure/fans/tiny, +/turf/open/floor/plasteel/delivery, +/area/security/transfer) +"bqE" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 8; + name = "Gulag Shuttle Airlock"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/warning/side, +/area/security/transfer) +"bqF" = ( +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/security/transfer) +"bqG" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/transfer) +"bqH" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/security/transfer) +"bqI" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/security/transfer) +"bqJ" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/security/transfer) +"bqK" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/transfer) +"bqL" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/transfer) +"bqM" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/brig) +"bqN" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/security/brig) +"bqO" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/main) +"bqP" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24; + pixel_y = -32 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 8 + }, +/area/security/main) +"bqQ" = ( +/turf/open/floor/plasteel/red/corner{ + dir = 4 + }, +/area/security/main) +"bqR" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/main) +"bqS" = ( +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/security/main) +"bqT" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral, +/area/security/main) +"bqU" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/main) +"bqV" = ( +/obj/effect/landmark{ + name = "secequipment" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/main) +"bqW" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/power/apc{ + dir = 2; + name = "Head of Security's Office APC"; + pixel_y = -26 + }, +/obj/structure/cable/white, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/security/hos) +"bqX" = ( +/obj/structure/table/wood, +/obj/item/weapon/clipboard, +/obj/item/toy/figure/hos, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/hos) +"bqY" = ( +/obj/structure/table/wood, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/item/weapon/storage/fancy/donut_box, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/hos) +"bqZ" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/hos) +"bra" = ( +/obj/machinery/disposal/bin, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/light, +/obj/structure/sign/nanotrasen{ + pixel_x = 32; + pixel_y = -32 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/hos) +"brb" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"brc" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"brd" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 2; + name = "Mix to Distro"; + on = 0 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bre" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/heater, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"brf" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + tag = "icon-freezer (EAST)"; + icon_state = "freezer"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"brg" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + tag = "icon-manifold (EAST)"; + name = "scrubbers pipe"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"brh" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/pump, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/structure/sign/nosmoking_2{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/arrival, +/area/atmos) +"bri" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/pump, +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/obj/machinery/camera{ + c_tag = "Atmospherics - Pumps"; + dir = 1; + name = "atmospherics camera" + }, +/turf/open/floor/plasteel/arrival, +/area/atmos) +"brj" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plasteel/escape, +/area/atmos) +"brk" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 0; + pixel_y = -24 + }, +/turf/open/floor/plasteel/escape, +/area/atmos) +"brl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/atmos) +"brm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/warning, +/area/atmos) +"brn" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/light/small, +/obj/machinery/light_switch{ + pixel_x = 26; + pixel_y = -26 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/atmos) +"bro" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/atmos) +"brp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/atmos) +"brq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/atmos) +"brr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/atmos) +"brs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/atmos) +"brt" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/loadingarea{ + dir = 1 + }, +/area/atmos) +"bru" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "atmoslock"; + name = "Atmospherics Lockdown Blast door" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/atmos) +"brv" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/hallway/primary/port) +"brw" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/junction, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/port) +"brx" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + icon_state = "connector_map"; + dir = 8 + }, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plasteel/escape{ + tag = "icon-escape (EAST)"; + icon_state = "escape"; + dir = 4 + }, +/area/hallway/primary/port) +"bry" = ( +/obj/structure/sign/electricshock, +/turf/closed/wall/r_wall, +/area/storage/tech) +"brz" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/storage/tech) +"brA" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/storage/tech) +"brB" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/storage/tech) +"brC" = ( +/obj/structure/sink{ + dir = 8; + icon_state = "sink"; + pixel_x = -12 + }, +/obj/structure/sign/poster{ + icon_state = "poster3_legit"; + pixel_x = -32; + pixel_y = 0; + tag = "icon-poster3_legit" + }, +/turf/open/floor/plasteel/bot, +/area/hydroponics) +"brD" = ( +/turf/open/floor/plasteel/greenblue/side{ + tag = "icon-greenblue (SOUTHWEST)"; + icon_state = "greenblue"; + dir = 10 + }, +/area/hydroponics) +"brE" = ( +/turf/open/floor/plasteel/greenblue/side{ + tag = "icon-greenblue (SOUTHEAST)"; + icon_state = "greenblue"; + dir = 6 + }, +/area/hydroponics) +"brF" = ( +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/obj/machinery/requests_console{ + department = "Hydroponics"; + departmentType = 0; + name = "Hydroponics RC"; + pixel_x = 32; + pixel_y = -32 + }, +/turf/open/floor/plasteel/bot, +/area/hydroponics) +"brG" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/hydroponics) +"brH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"brI" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/central) +"brJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/central) +"brK" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plasteel/delivery, +/area/hallway/primary/central) +"brL" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/space) +"brM" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/delivery, +/area/hallway/primary/central) +"brN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"brO" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/central) +"brP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"brQ" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/hallway/primary/central) +"brR" = ( +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/security/nuke_storage) +"brS" = ( +/obj/structure/closet/crate{ + name = "Silver Crate" + }, +/obj/item/stack/spacecash/c1000, +/obj/item/stack/spacecash/c1000, +/obj/item/stack/spacecash/c500, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/nuke_storage) +"brT" = ( +/obj/machinery/ai_status_display{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/nuke_storage) +"brU" = ( +/obj/structure/filingcabinet, +/obj/item/weapon/folder/documents, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/nuke_storage) +"brV" = ( +/obj/machinery/computer/bank_machine, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/security/nuke_storage) +"brW" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Labor Shuttle Airlock"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/warnwhite/side{ + tag = "icon-white_warn_side (EAST)"; + icon_state = "white_warn_side"; + dir = 4 + }, +/area/shuttle/labor) +"brX" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/labor) +"brY" = ( +/obj/machinery/mineral/stacking_machine/laborstacker{ + input_dir = 2; + output_dir = 1 + }, +/turf/open/floor/plasteel/warnwhite/side{ + tag = "icon-white_warn_side (EAST)"; + icon_state = "white_warn_side"; + dir = 4 + }, +/area/shuttle/labor) +"brZ" = ( +/obj/structure/closet/emcloset, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/security/transfer) +"bsa" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/security/transfer) +"bsb" = ( +/turf/open/floor/plasteel/red/side, +/area/security/transfer) +"bsc" = ( +/obj/structure/cable/white, +/obj/machinery/power/apc{ + dir = 2; + name = "Security Transfering APC"; + pixel_y = -26 + }, +/turf/open/floor/plasteel/red/side, +/area/security/transfer) +"bsd" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/red/side, +/area/security/transfer) +"bse" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 24; + pixel_y = -24 + }, +/obj/structure/reagent_dispensers/peppertank{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/transfer) +"bsf" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/security/main) +"bsg" = ( +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = 0; + pixel_y = -32 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 8 + }, +/area/security/main) +"bsh" = ( +/turf/open/floor/plasteel, +/area/security/main) +"bsi" = ( +/obj/structure/sign/goldenplaque{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/red/corner, +/area/security/main) +"bsj" = ( +/obj/machinery/light, +/obj/machinery/ai_status_display{ + pixel_y = -32 + }, +/obj/machinery/camera{ + c_tag = "Security - Office Aft"; + dir = 1; + name = "security camera" + }, +/turf/open/floor/plasteel/red/side, +/area/security/main) +"bsk" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plasteel/red/side, +/area/security/main) +"bsl" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/red/corner{ + dir = 4 + }, +/area/security/main) +"bsm" = ( +/obj/item/weapon/storage/pod{ + pixel_x = 32 + }, +/obj/effect/landmark{ + name = "secequipment" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/main) +"bsn" = ( +/obj/structure/cable/white, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "hosspace"; + name = "HoS Space Blast door" + }, +/turf/open/floor/plating, +/area/security/hos) +"bso" = ( +/obj/machinery/ai_status_display, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai) +"bsp" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/darkwarning, +/area/ai_monitored/turret_protected/ai) +"bsq" = ( +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/sign/electricshock{ + pixel_y = 32 + }, +/obj/machinery/camera/motion{ + c_tag = "AI Chamber - Fore"; + name = "motion-sensitive ai camera"; + network = list("AI") + }, +/turf/open/floor/plasteel/darkwarning, +/area/ai_monitored/turret_protected/ai) +"bsr" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/structure/sign/nosmoking_2{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/darkwarning, +/area/ai_monitored/turret_protected/ai) +"bss" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/heater{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bst" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bsu" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Air to Distro"; + on = 1; + target_pressure = 101 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bsv" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/visible, +/obj/machinery/camera{ + c_tag = "Atmospherics - Distro Loop"; + dir = 1; + name = "atmospherics camera" + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bsw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/meter{ + frequency = 1441; + id_tag = "distro_meter"; + name = "Distribution Loop" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/visible, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bsx" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Distro to Waste"; + on = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bsy" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 26; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + tag = "icon-manifold (EAST)"; + name = "scrubbers pipe"; + icon_state = "manifold"; + dir = 4 + }, +/obj/machinery/meter{ + frequency = 1441; + id_tag = "waste_meter"; + name = "Waste Loop" + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bsz" = ( +/obj/machinery/status_display, +/turf/closed/wall/r_wall, +/area/atmos) +"bsA" = ( +/obj/structure/sign/securearea, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/atmos) +"bsB" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics Access"; + req_access_txt = "24" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/atmos) +"bsC" = ( +/obj/machinery/disposal/bin, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24; + pixel_y = 0 + }, +/obj/machinery/light_switch{ + pixel_x = -38; + pixel_y = -8 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel/caution/corner{ + dir = 8 + }, +/area/atmos) +"bsD" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_Toxins = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bsE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bsF" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bsG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/atmos) +"bsH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/plasticflaps{ + opacity = 1 + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "atmoslock"; + name = "Atmospherics Lockdown Blast door" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + dir = 8; + freq = 1400; + location = "Atmospherics" + }, +/turf/open/floor/plasteel/delivery, +/area/atmos) +"bsI" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/hallway/primary/port) +"bsJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/sortjunction{ + name = "Atmospherics Junction"; + sortType = 6 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/port) +"bsK" = ( +/obj/structure/rack, +/obj/item/weapon/circuitboard/computer/robotics{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/circuitboard/computer/mecha_control, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/storage/tech) +"bsL" = ( +/obj/structure/rack, +/obj/item/weapon/circuitboard/computer/communications{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/circuitboard/computer/card, +/obj/item/weapon/circuitboard/computer/crew{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning, +/area/storage/tech) +"bsM" = ( +/obj/structure/rack, +/obj/item/weapon/circuitboard/aicore{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/circuitboard/computer/aiupload, +/obj/item/weapon/circuitboard/computer/borgupload{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/storage/tech) +"bsN" = ( +/obj/item/weapon/shovel/spade, +/obj/item/weapon/crowbar, +/obj/item/weapon/cultivator, +/obj/structure/table/glass, +/obj/item/seeds/wheat{ + pixel_x = 6 + }, +/obj/item/seeds/potato, +/obj/item/seeds/pumpkin{ + pixel_x = -6 + }, +/obj/item/weapon/reagent_containers/food/snacks/grown/wheat, +/obj/item/weapon/reagent_containers/food/snacks/grown/watermelon, +/obj/item/weapon/reagent_containers/food/snacks/grown/grapes, +/obj/item/weapon/reagent_containers/food/snacks/grown/tomato, +/turf/open/floor/plasteel/bot, +/area/hydroponics) +"bsO" = ( +/obj/machinery/hydroponics/constructable, +/turf/open/floor/plasteel/delivery, +/area/hydroponics) +"bsP" = ( +/obj/machinery/hydroponics/constructable, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = -26 + }, +/turf/open/floor/plasteel/delivery, +/area/hydroponics) +"bsQ" = ( +/obj/machinery/hydroponics/constructable, +/obj/structure/sign/nanotrasen{ + pixel_x = 0; + pixel_y = -32 + }, +/turf/open/floor/plasteel/delivery, +/area/hydroponics) +"bsR" = ( +/obj/structure/table/glass, +/obj/item/weapon/reagent_containers/spray/plantbgone, +/obj/item/weapon/reagent_containers/spray/plantbgone{ + pixel_x = 16 + }, +/obj/item/weapon/watertank, +/obj/item/weapon/grenade/chem_grenade/antiweed, +/obj/structure/sign/poster{ + icon_state = "poster8_legit"; + pixel_y = -32; + tag = "icon-poster8_legit" + }, +/turf/open/floor/plasteel/bot, +/area/hydroponics) +"bsS" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "bridgewindows"; + name = "Bridge View Blast door" + }, +/turf/open/floor/plating, +/area/bridge) +"bsT" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "bridgewindows"; + name = "Bridge View Blast door" + }, +/turf/open/floor/plating, +/area/bridge) +"bsU" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "bridgewindows"; + name = "Bridge View Blast door" + }, +/turf/open/floor/plating, +/area/bridge) +"bsV" = ( +/turf/closed/wall/r_wall, +/area/bridge) +"bsW" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "bridgewindows"; + name = "Bridge View Blast door" + }, +/turf/open/floor/plating, +/area/bridge) +"bsX" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "bridgewindows"; + name = "Bridge View Blast door" + }, +/turf/open/floor/plating, +/area/bridge) +"bsY" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "bridgewindows"; + name = "Bridge View Blast door" + }, +/turf/open/floor/plating, +/area/bridge) +"bsZ" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"bta" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/central) +"btb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"btc" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/cable/white, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"btd" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/nuke_storage) +"bte" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/security/nuke_storage) +"btf" = ( +/obj/machinery/camera/motion{ + c_tag = "Vault"; + dir = 4; + network = list("SS13") + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/nuke_storage) +"btg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/security/nuke_storage) +"bth" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/security/nuke_storage) +"bti" = ( +/turf/open/floor/plasteel/circuit/gcircuit, +/area/security/nuke_storage) +"btj" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/nuke_storage) +"btk" = ( +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/shuttle/labor) +"btl" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/shuttle/labor) +"btm" = ( +/obj/machinery/mineral/labor_claim_console{ + machinedir = 1; + pixel_x = 30; + pixel_y = 0 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/shuttle/labor) +"btn" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/door/airlock/glass_security{ + name = "Security Transfering Control"; + req_access_txt = "63" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/red, +/area/security/transfer) +"bto" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/transfer) +"btp" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/brig) +"btq" = ( +/obj/machinery/newscaster/security_unit{ + pixel_x = 32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/camera{ + c_tag = "Security - Brig Fore"; + dir = 8; + name = "security camera" + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/brig) +"btr" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + name = "Interrogation"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/main) +"bts" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/tinted/fulltile, +/turf/open/floor/plating, +/area/security/main) +"btt" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/security{ + name = "Interrogation Monitoring"; + req_access_txt = "63" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/main) +"btu" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/tinted/fulltile, +/turf/open/floor/plating, +/area/security/main) +"btv" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "AI Satellite - Fore Port"; + dir = 8; + name = "ai camera"; + network = list("Sat"); + pixel_x = 0; + pixel_y = 0; + start_active = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"btw" = ( +/obj/machinery/porta_turret/ai, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/ai) +"btx" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/ai) +"bty" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/ai) +"btz" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/ai) +"btA" = ( +/obj/machinery/power/terminal{ + icon_state = "term"; + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/ai) +"btB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/ai) +"btC" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "AI Satellite - Fore Starboard"; + dir = 4; + name = "ai camera"; + network = list("Sat"); + pixel_x = 0; + pixel_y = 0; + start_active = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"btD" = ( +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"btE" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/external{ + name = "External Airlock"; + req_access_txt = "13" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/engine/gravity_generator) +"btF" = ( +/turf/closed/wall/r_wall, +/area/engine/break_room) +"btG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/engine/break_room) +"btH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/closed/wall/r_wall, +/area/engine/break_room) +"btI" = ( +/obj/machinery/status_display, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/break_room) +"btJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/engine/break_room) +"btK" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/break_room) +"btL" = ( +/obj/structure/table/reinforced, +/obj/machinery/microwave{ + desc = "It looks really dirty."; + name = "maint microwave"; + pixel_y = 5 + }, +/obj/structure/sign/poster{ + icon_state = "poster4_legit"; + pixel_x = -32; + pixel_y = 0; + tag = "icon-poster4_legit" + }, +/turf/open/floor/plasteel/redyellow, +/area/engine/break_room) +"btM" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/bot, +/area/engine/break_room) +"btN" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/turf/open/floor/plasteel/redyellow, +/area/engine/break_room) +"btO" = ( +/obj/structure/closet/firecloset, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/machinery/firealarm{ + pixel_x = -32; + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/bot, +/area/engine/break_room) +"btP" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/delivery, +/area/engine/break_room) +"btQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/bot, +/area/engine/break_room) +"btR" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/crowbar/red, +/obj/item/weapon/wrench, +/obj/item/device/analyzer, +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/caution{ + dir = 8 + }, +/area/atmos) +"btS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"btT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/caution{ + dir = 4 + }, +/area/atmos) +"btU" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "atmoslock"; + name = "Atmospherics Lockdown Blast door" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/atmos) +"btV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/hallway/primary/port) +"btW" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/port) +"btX" = ( +/obj/structure/table, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/item/weapon/wrench, +/obj/item/clothing/mask/gas, +/turf/open/floor/plasteel/caution{ + dir = 4 + }, +/area/hallway/primary/port) +"btY" = ( +/turf/closed/wall/r_wall, +/area/storage/tech) +"btZ" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/bot, +/area/storage/tech) +"bua" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/delivery, +/area/storage/tech) +"bub" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Technology Storage - Secure"; + dir = 8; + name = "engineering camera" + }, +/turf/open/floor/plasteel/bot, +/area/storage/tech) +"buc" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"bud" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"bue" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "bridgewindows"; + name = "Bridge View Blast door" + }, +/turf/open/floor/plating, +/area/bridge) +"buf" = ( +/obj/machinery/computer/card, +/turf/open/floor/plasteel/darkblue/corner{ + dir = 1 + }, +/area/bridge) +"bug" = ( +/obj/machinery/computer/crew, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (NORTH)"; + icon_state = "darkblue"; + dir = 1 + }, +/area/bridge) +"buh" = ( +/obj/machinery/computer/med_data, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (NORTH)"; + icon_state = "darkblue"; + dir = 1 + }, +/area/bridge) +"bui" = ( +/obj/structure/table/reinforced, +/obj/machinery/ai_status_display{ + pixel_y = 32 + }, +/obj/item/weapon/restraints/handcuffs, +/obj/item/device/assembly/flash/handheld, +/turf/open/floor/plasteel/black, +/area/bridge) +"buj" = ( +/obj/machinery/computer/prisoner, +/turf/open/floor/plasteel/darkred/side{ + dir = 1 + }, +/area/bridge) +"buk" = ( +/obj/machinery/computer/security, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/darkred/side{ + dir = 1 + }, +/area/bridge) +"bul" = ( +/obj/machinery/computer/secure_data, +/turf/open/floor/plasteel/darkred/side{ + dir = 1 + }, +/area/bridge) +"bum" = ( +/obj/structure/table/reinforced, +/obj/machinery/status_display{ + pixel_y = 32 + }, +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/plasteel/black, +/area/bridge) +"bun" = ( +/obj/machinery/computer/station_alert, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/darkyellow/side{ + tag = "icon-darkyellow (NORTH)"; + icon_state = "darkyellow"; + dir = 1 + }, +/area/bridge) +"buo" = ( +/obj/machinery/computer/atmos_alert, +/turf/open/floor/plasteel/darkyellow/side{ + tag = "icon-darkyellow (NORTH)"; + icon_state = "darkyellow"; + dir = 1 + }, +/area/bridge) +"bup" = ( +/obj/machinery/computer/monitor, +/turf/open/floor/plasteel/darkyellow/corner{ + tag = "icon-darkyellowcorners (EAST)"; + icon_state = "darkyellowcorners"; + dir = 4 + }, +/area/bridge) +"buq" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/central) +"bur" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"bus" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/vault{ + locked = 1; + name = "Vault Door"; + req_access_txt = "53" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/hallway/primary/central) +"but" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/nuke_storage) +"buu" = ( +/obj/machinery/door/airlock/vault{ + locked = 1; + name = "Vault Door"; + req_access_txt = "53" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/sign/electricshock{ + pixel_y = -32 + }, +/obj/structure/sign/securearea{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/nuke_storage) +"buv" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/security/nuke_storage) +"buw" = ( +/obj/machinery/nuclearbomb/selfdestruct{ + layer = 2 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/nuke_storage) +"bux" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/security/nuke_storage) +"buy" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + dir = 4; + name = "Vault APC"; + pixel_x = 26; + pixel_y = 0 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/nuke_storage) +"buz" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/shuttle/labor) +"buA" = ( +/turf/open/floor/plasteel/warning, +/area/shuttle/labor) +"buB" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/flasher{ + id = "gulagshuttleflasher"; + pixel_x = 25 + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/shuttle/labor) +"buC" = ( +/obj/machinery/gulag_item_reclaimer{ + pixel_y = 28 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/security/transfer) +"buD" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/transfer) +"buE" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/briefcase{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/secure/briefcase, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/transfer) +"buF" = ( +/obj/structure/table/reinforced, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/weapon/folder/red, +/obj/item/weapon/book/manual/wiki/security_space_law, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/transfer) +"buG" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/transfer) +"buH" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/transfer) +"buI" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/brig) +"buJ" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/brig) +"buK" = ( +/turf/closed/wall, +/area/security/main) +"buL" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/main) +"buM" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/main) +"buN" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/main) +"buO" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/tinted/fulltile, +/turf/open/floor/plating, +/area/security/main) +"buP" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/main) +"buQ" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/main) +"buR" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"buS" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/blue, +/obj/item/bodypart/l_leg/robot, +/obj/item/bodypart/r_leg/robot, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/ai) +"buT" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/ai) +"buU" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/ai_monitored/turret_protected/ai) +"buV" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/ai_monitored/turret_protected/ai) +"buW" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/ai_monitored/turret_protected/ai) +"buX" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/ai_slipper{ + icon_state = "motion0"; + uses = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/ai_monitored/turret_protected/ai) +"buY" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/ai_monitored/turret_protected/ai) +"buZ" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/ai_monitored/turret_protected/ai) +"bva" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/ai_monitored/turret_protected/ai) +"bvb" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/ai) +"bvc" = ( +/obj/structure/table/reinforced, +/obj/item/device/flashlight/lamp, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/ai) +"bvd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb, +/obj/structure/closet/emcloset{ + anchored = 1 + }, +/turf/open/floor/plasteel/delivery, +/area/engine/gravity_generator) +"bve" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/fans/tiny, +/turf/open/floor/plasteel/bot, +/area/engine/gravity_generator) +"bvf" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/engine/gravity_generator) +"bvg" = ( +/turf/closed/wall, +/area/engine/break_room) +"bvh" = ( +/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/weapon/crowbar/red, +/obj/item/weapon/wrench, +/obj/structure/sign/nosmoking_2{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/bot, +/area/engine/break_room) +"bvi" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/toolbox/electrical, +/obj/item/weapon/wrench/power, +/obj/machinery/status_display{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/bot, +/area/engine/break_room) +"bvj" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/engine/break_room) +"bvk" = ( +/obj/structure/table/reinforced, +/obj/item/stack/rods{ + amount = 50 + }, +/obj/item/stack/sheet/rglass{ + amount = 30; + pixel_x = 2; + pixel_y = -2 + }, +/obj/item/stack/cable_coil/white, +/turf/open/floor/plasteel/bot, +/area/engine/break_room) +"bvl" = ( +/obj/structure/table/reinforced, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/item/stack/sheet/plasteel{ + amount = 50 + }, +/obj/item/weapon/crowbar/power, +/obj/structure/sign/nanotrasen{ + pixel_x = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/bot, +/area/engine/break_room) +"bvm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/bonfire, +/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice{ + desc = "For the weary spacemen on their quest to rekindle the first plasmafire."; + name = "Carton of Estus" + }, +/obj/item/weapon/nullrod/claymore/glowing{ + desc = "Don't tell anyone you put any points into dex, though."; + force = 10; + name = "moonlight greatsword" + }, +/obj/effect/decal/remains/human, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/engine/break_room) +"bvn" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/box/donkpockets, +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/redyellow, +/area/engine/break_room) +"bvo" = ( +/turf/open/floor/plasteel/bot, +/area/engine/break_room) +"bvp" = ( +/obj/machinery/vending/cola, +/obj/machinery/newscaster{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/redyellow, +/area/engine/break_room) +"bvq" = ( +/obj/structure/sign/nosmoking_2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/engine/break_room) +"bvr" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics Access"; + req_access_txt = "24" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/engine/break_room) +"bvs" = ( +/obj/structure/sign/securearea, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/engine/break_room) +"bvt" = ( +/obj/machinery/computer/atmos_control, +/obj/machinery/status_display{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/caution{ + dir = 8 + }, +/area/atmos) +"bvu" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bvv" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/holopad, +/obj/effect/landmark/start{ + name = "Atmospheric Technician" + }, +/turf/open/floor/plasteel/bot, +/area/atmos) +"bvw" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bvx" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/caution{ + dir = 4 + }, +/area/atmos) +"bvy" = ( +/obj/structure/table/reinforced, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/item/weapon/folder/yellow, +/obj/item/weapon/pen, +/obj/machinery/door/poddoor/preopen{ + id = "atmoslock"; + name = "Atmospherics Lockdown Blast door" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/delivery, +/area/atmos) +"bvz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/hallway/primary/port) +"bvA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/port) +"bvB" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + icon_state = "connector_map"; + dir = 8 + }, +/obj/machinery/portable_atmospherics/pump, +/obj/machinery/camera{ + c_tag = "Engineering Hallway - Fore"; + dir = 8; + name = "hallway camera" + }, +/turf/open/floor/plasteel/arrival{ + dir = 4 + }, +/area/hallway/primary/port) +"bvC" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/highsecurity, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/storage/tech) +"bvD" = ( +/obj/structure/extinguisher_cabinet, +/turf/closed/wall/r_wall, +/area/storage/tech) +"bvE" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/bot, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"bvF" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"bvG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"bvH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"bvI" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"bvJ" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"bvK" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/central) +"bvL" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 26; + pixel_y = 0 + }, +/obj/machinery/camera{ + c_tag = "Central Hallway - Bridge Port"; + dir = 8; + name = "hallway camera" + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/central) +"bvM" = ( +/obj/structure/table/reinforced, +/obj/machinery/light{ + dir = 8 + }, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plasteel/darkblue/corner{ + dir = 1 + }, +/area/bridge) +"bvN" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/bridge) +"bvO" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/bridge) +"bvP" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/bridge) +"bvQ" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/bridge) +"bvR" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/bridge) +"bvS" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/bridge) +"bvT" = ( +/obj/structure/table/reinforced, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/obj/item/weapon/wrench, +/obj/item/device/assembly/timer, +/obj/item/device/assembly/signaler, +/turf/open/floor/plasteel/darkyellow/corner{ + tag = "icon-darkyellowcorners (EAST)"; + icon_state = "darkyellowcorners"; + dir = 4 + }, +/area/bridge) +"bvU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"bvV" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/bot, +/area/hallway/primary/central) +"bvW" = ( +/obj/structure/cable/white, +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/hallway/primary/central) +"bvX" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/nuke_storage) +"bvY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/security/nuke_storage) +"bvZ" = ( +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/structure/closet/crate/internals, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/shuttle/labor) +"bwa" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning/end{ + tag = "icon-plasteel_warn_end (WEST)"; + icon_state = "plasteel_warn_end"; + dir = 8 + }, +/area/shuttle/labor) +"bwb" = ( +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/shuttle/labor) +"bwc" = ( +/obj/machinery/door/airlock/shuttle{ + id_tag = "prisonshuttle"; + name = "Labor Shuttle Airlock" + }, +/obj/docking_port/mobile{ + dir = 8; + dwidth = 2; + height = 5; + id = "laborcamp"; + name = "labor camp shuttle"; + port_angle = 90; + width = 9 + }, +/obj/docking_port/stationary{ + dir = 8; + dwidth = 2; + height = 5; + id = "laborcamp_home"; + name = "fore bay 1"; + width = 9 + }, +/turf/open/floor/plasteel/warnwhite/side, +/area/shuttle/labor) +"bwd" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 4; + name = "Gulag Shuttle Airlock"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/warning/side, +/area/security/transfer) +"bwe" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/fans/tiny, +/turf/open/floor/plasteel/delivery, +/area/security/transfer) +"bwf" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 8; + name = "Gulag Shuttle Airlock"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/warning/side, +/area/security/transfer) +"bwg" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/transfer) +"bwh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/security/transfer) +"bwi" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/security/transfer) +"bwj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/transfer) +"bwk" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + name = "Security Transfering Center"; + req_access_txt = "63" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red, +/area/security/transfer) +"bwl" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/brig) +"bwm" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/security/brig) +"bwn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/brig) +"bwo" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + name = "Interrogation"; + req_access_txt = "63" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/main) +"bwp" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/main) +"bwq" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/red, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/main) +"bwr" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/main) +"bws" = ( +/obj/structure/cable/white, +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/tinted/fulltile, +/turf/open/floor/plating, +/area/security/main) +"bwt" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/main) +"bwu" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/item/device/radio/intercom{ + anyai = 1; + broadcasting = 0; + freerange = 1; + frequency = 1424; + listening = 1; + name = "Interrogation Intercom"; + pixel_x = 0; + pixel_y = -58 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/main) +"bwv" = ( +/obj/structure/table/wood, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/machinery/camera{ + c_tag = "Security - Interrogation Monitoring"; + dir = 8; + name = "security camera" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/main) +"bww" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"bwx" = ( +/obj/machinery/status_display, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai) +"bwy" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/ai) +"bwz" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/ai) +"bwA" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/ai_monitored/turret_protected/ai) +"bwB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/ai) +"bwC" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/ai) +"bwD" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/ai) +"bwE" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/ai_monitored/turret_protected/ai) +"bwF" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/ai) +"bwG" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/blue, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/ai) +"bwH" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/gravity_generator) +"bwI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/gravity_generator) +"bwJ" = ( +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/sign/electricshock{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/gravity_generator) +"bwK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/status_display{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/engine/gravity_generator) +"bwL" = ( +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 1; + name = "Gravity Generator APC"; + pixel_x = 0; + pixel_y = 25 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/engine/gravity_generator) +"bwM" = ( +/obj/machinery/power/terminal{ + tag = "icon-term (EAST)"; + icon_state = "term"; + dir = 4 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = 26 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/engine/gravity_generator) +"bwN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/obj/structure/sign/nanotrasen{ + pixel_y = 32 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plasteel/bot, +/area/engine/gravity_generator) +"bwO" = ( +/turf/closed/wall, +/area/engine/gravity_generator) +"bwP" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/external{ + name = "External Airlock"; + req_access_txt = "13" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/engine/gravity_generator) +"bwQ" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/turf/open/floor/plasteel/delivery, +/area/engine/break_room) +"bwR" = ( +/turf/open/floor/plasteel/delivery, +/area/engine/break_room) +"bwS" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/engine/break_room) +"bwT" = ( +/obj/machinery/newscaster{ + pixel_x = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/delivery, +/area/engine/break_room) +"bwU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/engine/break_room) +"bwV" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/redyellow, +/area/engine/break_room) +"bwW" = ( +/obj/machinery/vending/snack, +/turf/open/floor/plasteel/redyellow, +/area/engine/break_room) +"bwX" = ( +/obj/machinery/door/poddoor/preopen{ + id = "atmoslock"; + name = "Atmospherics Lockdown Blast door" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/engine/break_room) +"bwY" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "atmoslock"; + name = "Atmospherics Lockdown Blast door" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/engine/break_room) +"bwZ" = ( +/obj/machinery/door/poddoor/preopen{ + id = "atmoslock"; + name = "Atmospherics Lockdown Blast door" + }, +/obj/machinery/button/door{ + id = "atmoslock"; + name = "Atmospherics Lockdown Control"; + pixel_x = 26; + req_access_txt = "25" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/engine/break_room) +"bxa" = ( +/obj/machinery/computer/atmos_control, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/button/door{ + id = "atmoslock"; + name = "Atmospherics Lockdown Control"; + pixel_x = -26; + req_access_txt = "25" + }, +/turf/open/floor/plasteel/caution{ + dir = 8 + }, +/area/atmos) +"bxb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/office/dark, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bxc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/atmos) +"bxd" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/tank/internals/emergency_oxygen{ + pixel_x = 6 + }, +/obj/item/weapon/tank/internals/emergency_oxygen{ + pixel_x = -6 + }, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/turf/open/floor/plasteel/caution{ + dir = 4 + }, +/area/atmos) +"bxe" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "atmoslock"; + name = "Atmospherics Lockdown Blast door" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plating, +/area/atmos) +"bxf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/hallway/primary/port) +"bxg" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/port) +"bxh" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + icon_state = "connector_map"; + dir = 8 + }, +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/plasteel/arrival{ + dir = 4 + }, +/area/hallway/primary/port) +"bxi" = ( +/obj/structure/table/reinforced, +/obj/item/device/plant_analyzer, +/obj/item/device/plant_analyzer, +/obj/item/device/radio, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/storage/tech) +"bxj" = ( +/obj/structure/table/reinforced, +/obj/item/device/analyzer, +/obj/item/device/analyzer, +/obj/item/device/assembly/signaler, +/obj/item/device/assembly/signaler, +/turf/open/floor/plasteel/bot, +/area/storage/tech) +"bxk" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/delivery, +/area/storage/tech) +"bxl" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/delivery, +/area/storage/tech) +"bxm" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plasteel/delivery, +/area/storage/tech) +"bxn" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/aiModule/reset, +/obj/item/device/assembly/flash/handheld, +/obj/item/device/assembly/flash/handheld, +/turf/open/floor/plasteel/bot, +/area/storage/tech) +"bxo" = ( +/obj/structure/table/reinforced, +/obj/item/bodypart/chest/robot, +/obj/item/device/mmi, +/obj/item/device/mmi, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/storage/tech) +"bxp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"bxq" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/closed/wall, +/area/storage/primary) +"bxr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/storage/primary) +"bxs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/storage/primary) +"bxt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/plasticflaps{ + opacity = 1 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=2"; + dir = 2; + freq = 1400; + location = "Tool Storage" + }, +/turf/open/floor/plasteel/delivery, +/area/storage/primary) +"bxu" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"bxv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/blue/corner, +/area/hallway/primary/central) +"bxw" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/bridge) +"bxx" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/sign/nanotrasen{ + pixel_x = 32; + pixel_y = 32 + }, +/obj/structure/sign/directions/engineering{ + desc = "A sign that shows there are doors here. There are doors everywhere!"; + icon_state = "doors"; + name = "WARNING: BLAST DOORS"; + pixel_x = 0; + pixel_y = 32; + tag = "icon-doors" + }, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (NORTH)"; + icon_state = "darkblue"; + dir = 1 + }, +/area/bridge) +"bxy" = ( +/obj/machinery/door/poddoor/preopen{ + id = "bridgedoors"; + name = "Bridge Access Blast door" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/bridge) +"bxz" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (NORTH)"; + icon_state = "darkblue"; + dir = 1 + }, +/area/bridge) +"bxA" = ( +/obj/machinery/vending/cola, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (NORTH)"; + icon_state = "darkblue"; + dir = 1 + }, +/area/bridge) +"bxB" = ( +/obj/machinery/vending/snack, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (NORTH)"; + icon_state = "darkblue"; + dir = 1 + }, +/area/bridge) +"bxC" = ( +/turf/closed/wall, +/area/bridge) +"bxD" = ( +/obj/machinery/computer/security/mining, +/turf/open/floor/plasteel/darkpurple/side{ + tag = "icon-darkpurple (NORTH)"; + icon_state = "darkpurple"; + dir = 1 + }, +/area/bridge) +"bxE" = ( +/obj/machinery/computer/cargo/request, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/darkyellow/side{ + tag = "icon-darkyellow (NORTH)"; + icon_state = "darkyellow"; + dir = 1 + }, +/area/bridge) +"bxF" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/clipboard, +/obj/item/weapon/mining_voucher, +/turf/open/floor/plasteel/black, +/area/bridge) +"bxG" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = -26; + pixel_y = 26 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/bridge) +"bxH" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/bridge) +"bxI" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/item/device/radio/beacon, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/bridge) +"bxJ" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/bridge) +"bxK" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 26; + pixel_y = 26 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/bridge) +"bxL" = ( +/obj/structure/table/reinforced, +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the RD's goons and the AI's satellite from the safety of his office."; + name = "Research Monitor"; + network = list("RD","Sat"); + pixel_x = 0; + pixel_y = 2 + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"bxM" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/modular_computer/console/preset/research, +/turf/open/floor/plasteel/darkpurple/side{ + tag = "icon-darkpurple (NORTH)"; + icon_state = "darkpurple"; + dir = 1 + }, +/area/bridge) +"bxN" = ( +/obj/machinery/computer/aifixer, +/turf/open/floor/plasteel/darkpurple/side{ + tag = "icon-darkpurple (NORTH)"; + icon_state = "darkpurple"; + dir = 1 + }, +/area/bridge) +"bxO" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (NORTH)"; + icon_state = "darkblue"; + dir = 1 + }, +/area/bridge) +"bxP" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (NORTH)"; + icon_state = "darkblue"; + dir = 1 + }, +/area/bridge) +"bxQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/blue/corner{ + tag = "icon-bluecorner (WEST)"; + icon_state = "bluecorner"; + dir = 8 + }, +/area/hallway/primary/central) +"bxR" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/hallway/primary/central) +"bxS" = ( +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/security/nuke_storage) +"bxT" = ( +/obj/structure/closet/crate{ + name = "Gold Crate" + }, +/obj/item/weapon/storage/belt/champion, +/obj/item/stack/spacecash/c1000, +/obj/item/stack/spacecash/c1000, +/obj/item/stack/spacecash/c500, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/nuke_storage) +"bxU" = ( +/obj/machinery/status_display{ + pixel_y = -32 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/nuke_storage) +"bxV" = ( +/obj/structure/safe, +/obj/item/clothing/neck/stethoscope, +/obj/item/weapon/book{ + desc = "An undeniably handy book."; + icon_state = "bookknock"; + name = "A Simpleton's Guide to Safe-cracking with Stethoscopes" + }, +/obj/item/stack/sheet/mineral/diamond, +/obj/item/stack/spacecash/c1000, +/obj/item/stack/spacecash/c1000, +/obj/item/stack/spacecash/c1000, +/obj/item/stack/spacecash/c1000, +/obj/item/stack/spacecash/c1000, +/obj/item/stack/spacecash/c500, +/obj/item/stack/spacecash/c500, +/obj/item/stack/spacecash/c500, +/obj/item/stack/spacecash/c500, +/obj/item/stack/spacecash/c500, +/obj/machinery/light/small, +/obj/item/weapon/gun/ballistic/automatic/pistol/m1911, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/nuke_storage) +"bxW" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/turf/open/floor/plating/warnplate, +/area/shuttle/labor) +"bxX" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/transfer) +"bxY" = ( +/turf/open/floor/plasteel/neutral, +/area/security/transfer) +"bxZ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral, +/area/security/transfer) +"bya" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 26; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/transfer) +"byb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/security/transfer) +"byc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light/small, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/brig) +"byd" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/security/brig) +"bye" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = -26 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/brig) +"byf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/security/main) +"byg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/main) +"byh" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/main) +"byi" = ( +/obj/structure/table/reinforced, +/obj/item/device/flashlight/lamp, +/obj/item/device/radio/intercom{ + anyai = 1; + broadcasting = 1; + freerange = 1; + frequency = 1424; + listening = 0; + name = "Interrogation Intercom"; + pixel_x = 0; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Security - Interrogation"; + dir = 1; + name = "security camera" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/main) +"byj" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/structure/sign/poster{ + icon_state = "poster16_legit"; + pixel_y = -32; + tag = "icon-poster16_legit" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/main) +"byk" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/tinted/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/main) +"byl" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/main) +"bym" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/main) +"byn" = ( +/obj/structure/table/wood, +/obj/item/weapon/folder/red, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/main) +"byo" = ( +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/ai_monitored/turret_protected/ai) +"byp" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/ai_monitored/turret_protected/ai) +"byq" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/ai) +"byr" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "aicorewindow"; + name = "AI Core Shutters" + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai) +"bys" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/ai_monitored/turret_protected/ai) +"byt" = ( +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/ai_monitored/turret_protected/ai) +"byu" = ( +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/engine/gravity_generator) +"byv" = ( +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/gravity_generator) +"byw" = ( +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/engine/gravity_generator) +"byx" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/gravity_generator) +"byy" = ( +/obj/structure/cable/white, +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/engine/gravity_generator) +"byz" = ( +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/gravity_generator) +"byA" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/turf/open/floor/plasteel/neutral, +/area/engine/gravity_generator) +"byB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/gravity_generator) +"byC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/bot, +/area/engine/gravity_generator) +"byD" = ( +/obj/structure/sign/radiation, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"byE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Engineering - Gravity Generator Foyer"; + dir = 4; + name = "engineering camera" + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/engine/gravity_generator) +"byF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/delivery, +/area/engine/gravity_generator) +"byG" = ( +/obj/structure/closet/radiation, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/engine/gravity_generator) +"byH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/closed/wall, +/area/engine/break_room) +"byI" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/break_room) +"byJ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_command{ + cyclelinkeddir = 0; + name = "Power Tools Storage"; + req_access_txt = "19" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/engine/break_room) +"byK" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/break_room) +"byL" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_command{ + cyclelinkeddir = 0; + name = "Power Tools Storage"; + req_access_txt = "19" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/engine/break_room) +"byM" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plating, +/area/engine/break_room) +"byN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning/side, +/area/engine/break_room) +"byO" = ( +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/delivery, +/area/engine/break_room) +"byP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/yellow/side{ + dir = 9 + }, +/area/engine/break_room) +"byQ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/break_room) +"byR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/break_room) +"byS" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 1; + name = "Engineering Foyer APC"; + pixel_x = 0; + pixel_y = 25 + }, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/break_room) +"byT" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/caution{ + dir = 1 + }, +/area/engine/break_room) +"byU" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/caution{ + dir = 1 + }, +/area/engine/break_room) +"byV" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/caution{ + dir = 5 + }, +/area/engine/break_room) +"byW" = ( +/obj/structure/table/reinforced, +/obj/item/device/flashlight/lamp, +/turf/open/floor/plasteel/caution{ + tag = "icon-caution (SOUTHWEST)"; + icon_state = "caution"; + dir = 10 + }, +/area/atmos) +"byX" = ( +/obj/machinery/computer/station_alert, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/turf/open/floor/plasteel/caution, +/area/atmos) +"byY" = ( +/obj/machinery/computer/atmos_alert, +/obj/machinery/light, +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/caution, +/area/atmos) +"byZ" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/yellow, +/obj/item/weapon/pen, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = -26 + }, +/turf/open/floor/plasteel/caution, +/area/atmos) +"bza" = ( +/obj/structure/table/reinforced, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/machinery/status_display{ + pixel_y = -32 + }, +/obj/machinery/requests_console{ + department = "Atmospherics Office"; + departmentType = 0; + name = "Atmospherics RC"; + pixel_x = 30; + pixel_y = 0 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 26; + pixel_y = -32 + }, +/turf/open/floor/plasteel/caution{ + dir = 6 + }, +/area/atmos) +"bzb" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/port) +"bzc" = ( +/obj/structure/table/reinforced, +/obj/item/device/healthanalyzer, +/obj/item/stack/cable_coil/white{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stack/cable_coil/white, +/obj/item/device/healthanalyzer, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/storage/tech) +"bzd" = ( +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/storage/tech) +"bze" = ( +/turf/open/floor/plasteel/neutral, +/area/storage/tech) +"bzf" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/storage/tech) +"bzg" = ( +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/storage/tech) +"bzh" = ( +/obj/structure/table/reinforced, +/obj/item/device/aicard, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/storage/tech) +"bzi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/storage/primary) +"bzj" = ( +/obj/structure/table/reinforced, +/obj/item/device/analyzer, +/obj/item/device/analyzer, +/obj/item/device/assembly/signaler, +/obj/item/device/assembly/signaler, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/bot, +/area/storage/primary) +"bzk" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/structure/sign/poster{ + icon_state = "poster22_legit"; + pixel_y = 32; + tag = "icon-poster22_legit" + }, +/turf/open/floor/plasteel/delivery, +/area/storage/primary) +"bzl" = ( +/obj/machinery/disposal/bin, +/obj/machinery/requests_console{ + department = "Primary Tool Storage"; + departmentType = 0; + name = "Primary Tool Storage RC"; + pixel_x = 0; + pixel_y = 32 + }, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/bot, +/area/storage/primary) +"bzm" = ( +/turf/open/floor/plasteel/bot, +/area/storage/primary) +"bzn" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/delivery, +/area/storage/primary) +"bzo" = ( +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/structure/closet/crate/internals, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/storage/primary) +"bzp" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/belt/utility, +/obj/item/weapon/weldingtool, +/obj/item/clothing/head/welding, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/bot, +/area/storage/primary) +"bzq" = ( +/obj/structure/table/reinforced, +/obj/item/device/assembly/igniter, +/obj/item/device/assembly/igniter, +/obj/item/device/assembly/igniter, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/bot, +/area/storage/primary) +"bzr" = ( +/obj/machinery/status_display, +/turf/closed/wall, +/area/storage/primary) +"bzs" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/landmark{ + name = "lightsout" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/central) +"bzt" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/corner, +/area/hallway/primary/central) +"bzu" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/glass_command{ + cyclelinkeddir = 0; + name = "Bridge Access"; + req_access_txt = "19" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/bridge) +"bzv" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/bridge) +"bzw" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "bridgedoors"; + name = "Bridge Access Blast door" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/bridge) +"bzx" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/glass_command{ + cyclelinkeddir = 0; + name = "Bridge Access"; + req_access_txt = "19" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/bridge) +"bzy" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/bridge) +"bzz" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/bridge) +"bzA" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/bridge) +"bzB" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/bridge) +"bzC" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/bridge) +"bzD" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/darkblue/corner, +/area/bridge) +"bzE" = ( +/obj/structure/window/reinforced, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkblue/side, +/area/bridge) +"bzF" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/window/brigdoor/southright{ + name = "Command Chair"; + req_access_txt = "19" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/darkblue/side, +/area/bridge) +"bzG" = ( +/obj/structure/window/reinforced, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkblue/side, +/area/bridge) +"bzH" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/darkblue/corner{ + dir = 8 + }, +/area/bridge) +"bzI" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/bridge) +"bzJ" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/bridge) +"bzK" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/bridge) +"bzL" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/glass_command{ + cyclelinkeddir = 0; + name = "Bridge Access"; + req_access_txt = "19" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/bridge) +"bzM" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "bridgedoors"; + name = "Bridge Access Blast door" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/bridge) +"bzN" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/glass_command{ + cyclelinkeddir = 0; + name = "Bridge Access"; + req_access_txt = "19" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/bridge) +"bzO" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/blue/corner{ + tag = "icon-bluecorner (WEST)"; + icon_state = "bluecorner"; + dir = 8 + }, +/area/hallway/primary/central) +"bzP" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/central) +"bzQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/machinery/camera{ + c_tag = "Central Hallway - Bridge Starboard"; + dir = 8; + name = "hallway camera" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"bzR" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/floor/plating/warnplate, +/area/shuttle/labor) +"bzS" = ( +/turf/closed/wall, +/area/security/transfer) +"bzT" = ( +/obj/structure/closet/emcloset, +/obj/machinery/firealarm{ + dir = 1; + pixel_x = -32; + pixel_y = -26 + }, +/obj/structure/sign/electricshock{ + pixel_x = -32 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/button/door{ + desc = "A remote control switch."; + id = "gulagdoor"; + name = "Transfer Door Control"; + normaldoorcontrol = 1; + pixel_x = -24; + pixel_y = -40 + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/security/transfer) +"bzU" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 8; + icon_state = "pipe-j1s"; + name = "HoS Junction"; + sortType = 8 + }, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/security/transfer) +"bzV" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/red/side, +/area/security/transfer) +"bzW" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/structure/sign/poster{ + icon_state = "poster17_legit"; + pixel_x = 0; + pixel_y = -32; + tag = "icon-poster17_legit" + }, +/obj/machinery/camera{ + c_tag = "Security - Transfer Centre Aft"; + dir = 1; + name = "security camera" + }, +/turf/open/floor/plasteel/red/side, +/area/security/transfer) +"bzX" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/turf/open/floor/plasteel/red/side, +/area/security/transfer) +"bzY" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/transfer) +"bzZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/security/brig) +"bAa" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/security{ + name = "Brig"; + req_access_txt = "63" + }, +/obj/structure/sign/poster{ + icon_state = "poster2_legit"; + pixel_x = -32; + tag = "icon-poster2_legit" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/security/brig) +"bAb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/security/brig) +"bAc" = ( +/obj/item/device/radio/intercom{ + anyai = 1; + freerange = 1; + listening = 0; + name = "Custom Channel"; + pixel_x = -10; + pixel_y = 22 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + freerange = 1; + listening = 1; + name = "Common Channel"; + pixel_x = -27; + pixel_y = 0 + }, +/obj/item/device/radio/intercom{ + anyai = 1; + broadcasting = 0; + freerange = 1; + frequency = 1447; + name = "Private Channel"; + pixel_x = -10; + pixel_y = -25 + }, +/obj/machinery/door/window{ + base_state = "rightsecure"; + dir = 4; + icon_state = "rightsecure"; + layer = 4.1; + name = "Secondary AI Core Access"; + pixel_x = 4; + req_access_txt = "16" + }, +/obj/effect/landmark{ + name = "tripai" + }, +/turf/open/floor/greengrid, +/area/ai_monitored/turret_protected/ai) +"bAd" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/ai) +"bAe" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/ai_slipper{ + icon_state = "motion0"; + uses = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/ai_monitored/turret_protected/ai) +"bAf" = ( +/obj/machinery/turretid{ + icon_state = "control_stun"; + name = "AI Chamber turret control"; + pixel_x = 3; + pixel_y = -23 + }, +/obj/machinery/door/window{ + base_state = "leftsecure"; + dir = 8; + icon_state = "leftsecure"; + name = "Primary AI Core Access"; + req_access_txt = "16" + }, +/obj/machinery/newscaster/security_unit{ + pixel_x = 4; + pixel_y = 33 + }, +/turf/open/floor/plasteel/vault{ + dir = 6 + }, +/area/ai_monitored/turret_protected/ai) +"bAg" = ( +/obj/machinery/requests_console{ + department = "AI"; + departmentType = 5; + name = "AI RC"; + pixel_x = 30; + pixel_y = 30 + }, +/obj/machinery/ai_slipper{ + icon_state = "motion0"; + uses = 10 + }, +/obj/machinery/flasher{ + id = "AI"; + pixel_x = 23; + pixel_y = -23 + }, +/turf/open/floor/plasteel/vault, +/area/ai_monitored/turret_protected/ai) +"bAh" = ( +/obj/machinery/door/window{ + base_state = "rightsecure"; + dir = 4; + icon_state = "rightsecure"; + name = "Primary AI Core Access"; + req_access_txt = "16" + }, +/turf/open/floor/plasteel/vault{ + dir = 10 + }, +/area/ai_monitored/turret_protected/ai) +"bAi" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/ai_slipper{ + icon_state = "motion0"; + uses = 10 + }, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/ai_monitored/turret_protected/ai) +"bAj" = ( +/obj/item/device/radio/intercom{ + anyai = 1; + freerange = 1; + listening = 0; + name = "Custom Channel"; + pixel_x = 10; + pixel_y = 22 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + freerange = 1; + listening = 1; + name = "Common Channel"; + pixel_x = 27; + pixel_y = 0 + }, +/obj/item/device/radio/intercom{ + anyai = 1; + broadcasting = 0; + freerange = 1; + frequency = 1447; + name = "Private Channel"; + pixel_x = 10; + pixel_y = -25 + }, +/obj/machinery/door/window{ + base_state = "leftsecure"; + dir = 8; + icon_state = "leftsecure"; + layer = 4.1; + name = "Tertiary AI Core Access"; + pixel_x = -3; + req_access_txt = "16" + }, +/obj/effect/landmark{ + name = "tripai" + }, +/turf/open/floor/greengrid, +/area/ai_monitored/turret_protected/ai) +"bAk" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/sign/radiation{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/gravity_generator) +"bAl" = ( +/turf/open/floor/plasteel/circuit/gcircuit, +/area/engine/gravity_generator) +"bAm" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/door/airlock/glass_command{ + name = "Gravity Generator Chamber"; + req_access_txt = "19; 61" + }, +/turf/open/floor/plasteel/warning/side, +/area/engine/gravity_generator) +"bAn" = ( +/obj/machinery/holopad, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/engine/gravity_generator) +"bAo" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/gravity_generator) +"bAp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/delivery, +/area/engine/gravity_generator) +"bAq" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/highsecurity{ + name = "Gravity Generator Room"; + req_access_txt = "19;23" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning/side, +/area/engine/gravity_generator) +"bAr" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/delivery, +/area/engine/gravity_generator) +"bAs" = ( +/obj/machinery/holopad, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/bot, +/area/engine/gravity_generator) +"bAt" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/delivery, +/area/engine/gravity_generator) +"bAu" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-4-8"; + 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{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/warning/side, +/area/engine/break_room) +"bAv" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/warning/end{ + tag = "icon-plasteel_warn_end (WEST)"; + icon_state = "plasteel_warn_end"; + dir = 8 + }, +/area/engine/break_room) +"bAw" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/engine/break_room) +"bAx" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/engine/break_room) +"bAy" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/engine/break_room) +"bAz" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/warning/end{ + tag = "icon-plasteel_warn_end (EAST)"; + icon_state = "plasteel_warn_end"; + dir = 4 + }, +/area/engine/break_room) +"bAA" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-4-8"; + 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{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/warning/side, +/area/engine/break_room) +"bAB" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers, +/turf/open/floor/plasteel/warning/side, +/area/engine/break_room) +"bAC" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/delivery, +/area/engine/break_room) +"bAD" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/engine/break_room) +"bAE" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral, +/area/engine/break_room) +"bAF" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral, +/area/engine/break_room) +"bAG" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/engine/break_room) +"bAH" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/neutral, +/area/engine/break_room) +"bAI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/caution{ + dir = 4 + }, +/area/engine/break_room) +"bAJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/atmos) +"bAK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/atmos) +"bAL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/port) +"bAM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 4 + }, +/area/hallway/primary/port) +"bAN" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/machinery/status_display{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/storage/tech) +"bAO" = ( +/obj/structure/rack, +/obj/item/weapon/circuitboard/computer/scan_consolenew{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/circuitboard/computer/med_data, +/obj/item/weapon/circuitboard/computer/pandemic{ + pixel_x = 3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/bot, +/area/storage/tech) +"bAP" = ( +/obj/structure/rack, +/obj/item/weapon/circuitboard/computer/aifixer{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/circuitboard/computer/rdconsole, +/obj/item/weapon/circuitboard/machine/rdserver{ + pixel_x = 3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/bot, +/area/storage/tech) +"bAQ" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/ai_status_display{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/storage/tech) +"bAR" = ( +/obj/structure/table/reinforced, +/obj/item/stack/rods{ + amount = 25 + }, +/obj/item/stack/cable_coil/white{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stack/cable_coil/white, +/obj/machinery/power/apc{ + dir = 8; + name = "Primary Tool Storage APC"; + pixel_x = -26; + pixel_y = 3 + }, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/turf/open/floor/plasteel/bot, +/area/storage/primary) +"bAS" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 9 + }, +/area/storage/primary) +"bAT" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/storage/primary) +"bAU" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/storage/primary) +"bAV" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/storage/primary) +"bAW" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/storage/primary) +"bAX" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 5 + }, +/area/storage/primary) +"bAY" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/crowbar, +/obj/item/weapon/wrench, +/obj/item/device/gps, +/turf/open/floor/plasteel/bot, +/area/storage/primary) +"bAZ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/storage/primary) +"bBa" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"bBb" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/blue/corner, +/area/hallway/primary/central) +"bBc" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/glass_command{ + cyclelinkeddir = 0; + name = "Bridge Access"; + req_access_txt = "19" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/bridge) +"bBd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/bridge) +"bBe" = ( +/obj/machinery/door/poddoor/preopen{ + id = "bridgedoors"; + name = "Bridge Access Blast door" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 1; + icon_state = "pipe-j1s"; + name = "HoP Junction"; + sortType = 15; + tag = "icon-pipe-j1s (NORTH)" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/bridge) +"bBf" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/glass_command{ + cyclelinkeddir = 0; + name = "Bridge Access"; + req_access_txt = "19" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/bridge) +"bBg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/bridge) +"bBh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_Toxins = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/bridge) +"bBi" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/bridge) +"bBj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/bridge) +"bBk" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/bridge) +"bBl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkblue/side{ + dir = 9 + }, +/area/bridge) +"bBm" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (NORTH)"; + icon_state = "darkblue"; + dir = 1 + }, +/area/bridge) +"bBn" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/table/wood, +/obj/item/weapon/restraints/handcuffs, +/obj/item/device/assembly/flash/handheld, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/bridge) +"bBo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/bridge) +"bBp" = ( +/obj/machinery/computer/communications, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/bridge) +"bBq" = ( +/obj/structure/table/wood, +/obj/machinery/computer/security/wooden_tv, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/bridge) +"bBr" = ( +/obj/structure/table/wood, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/item/device/flashlight/lamp, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/bridge) +"bBs" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (NORTH)"; + icon_state = "darkblue"; + dir = 1 + }, +/area/bridge) +"bBt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkblue/side{ + dir = 5 + }, +/area/bridge) +"bBu" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/bridge) +"bBv" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/bridge) +"bBw" = ( +/obj/machinery/door/poddoor/preopen{ + id = "bridgedoors"; + name = "Bridge Access Blast door" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/bridge) +"bBx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/blue/corner{ + tag = "icon-bluecorner (WEST)"; + icon_state = "bluecorner"; + dir = 8 + }, +/area/hallway/primary/central) +"bBy" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/central) +"bBz" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"bBA" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/security/transfer) +"bBB" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/door/airlock/glass_security{ + id_tag = "gulagdoor"; + name = "Security Transfering Center"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/transfer) +"bBC" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/security/transfer) +"bBD" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/security/brig) +"bBE" = ( +/obj/machinery/disposal/bin, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/bot, +/area/security/brig) +"bBF" = ( +/turf/closed/wall/r_wall, +/area/security/warden) +"bBG" = ( +/obj/structure/closet{ + name = "Evidence Closet" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/warden) +"bBH" = ( +/obj/structure/closet{ + name = "Evidence Closet" + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/warden) +"bBI" = ( +/obj/structure/closet/secure_closet{ + anchored = 1; + name = "Secure Evidence Closet"; + req_access_txt = "0"; + req_one_access_txt = "3,4" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/warden) +"bBJ" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/warden) +"bBK" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_y = 26 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/security/warden) +"bBL" = ( +/obj/machinery/suit_storage_unit/security, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/warden) +"bBM" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/ai) +"bBN" = ( +/obj/item/device/radio/intercom{ + broadcasting = 0; + freerange = 1; + listening = 1; + name = "Common Channel"; + pixel_x = -27; + pixel_y = -7 + }, +/obj/item/device/radio/intercom{ + anyai = 1; + freerange = 1; + listening = 0; + name = "Custom Channel"; + pixel_x = 0; + pixel_y = -27 + }, +/obj/item/device/radio/intercom{ + anyai = 1; + broadcasting = 0; + freerange = 1; + frequency = 1447; + name = "Private Channel"; + pixel_x = 27; + pixel_y = -7 + }, +/obj/machinery/button/door{ + id = "aicorewindow"; + name = "AI Core Shutters"; + pixel_x = 24; + pixel_y = -22; + req_access_txt = "16" + }, +/obj/machinery/button/door{ + id = "aicoredoor"; + name = "AI Chamber Access Control"; + pixel_x = -23; + pixel_y = -23; + req_access_txt = "16" + }, +/obj/effect/landmark/start{ + name = "AI" + }, +/turf/open/floor/greengrid, +/area/ai_monitored/turret_protected/ai) +"bBO" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/ai) +"bBP" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"bBQ" = ( +/obj/machinery/gravity_generator/main/station, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/gravity_generator) +"bBR" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/gravity_generator) +"bBS" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/gravity_generator) +"bBT" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral, +/area/engine/gravity_generator) +"bBU" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/gravity_generator) +"bBV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/port_gen/pacman, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/bot, +/area/engine/gravity_generator) +"bBW" = ( +/obj/structure/sign/radiation, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"bBX" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/engine/gravity_generator) +"bBY" = ( +/obj/machinery/status_display{ + pixel_x = 32; + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/delivery, +/area/engine/gravity_generator) +"bBZ" = ( +/obj/structure/closet/radiation, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/engine/gravity_generator) +"bCa" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24; + pixel_y = 0 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/delivery, +/area/engine/break_room) +"bCb" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/obj/machinery/camera{ + c_tag = "Engineering - Power Tools"; + dir = 1; + name = "engineering camera" + }, +/turf/open/floor/plasteel/caution, +/area/engine/break_room) +"bCc" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/caution, +/area/engine/break_room) +"bCd" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/caution, +/area/engine/break_room) +"bCe" = ( +/obj/machinery/firealarm{ + dir = 4; + icon_state = "fire0"; + pixel_x = 24; + pixel_y = 0; + tag = "icon-fire0 (EAST)" + }, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plasteel/delivery, +/area/engine/break_room) +"bCf" = ( +/turf/open/floor/plasteel/warning/side, +/area/engine/break_room) +"bCg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j2"; + dir = 2 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/engine/break_room) +"bCh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/engine/break_room) +"bCi" = ( +/obj/structure/chair/stool/bar, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/engine/break_room) +"bCj" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/engine/break_room) +"bCk" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/engine/break_room) +"bCl" = ( +/obj/machinery/status_display{ + pixel_x = 32; + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/caution/corner{ + dir = 4 + }, +/area/engine/break_room) +"bCm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1; + icon_state = "yellow"; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; + tag = "icon-yellow (NORTH)" + }, +/area/engine/break_room) +"bCn" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/machinery/firealarm{ + dir = 4; + icon_state = "fire0"; + pixel_x = 24; + pixel_y = 0; + tag = "icon-fire0 (EAST)" + }, +/obj/machinery/light_switch{ + pixel_y = 26 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 5 + }, +/area/engine/break_room) +"bCo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/engine/break_room) +"bCp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/engine/break_room) +"bCq" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/engine/break_room) +"bCr" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/engine/break_room) +"bCs" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/engine/break_room) +"bCt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/hallway/primary/port) +"bCu" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/port) +"bCv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/yellow/corner{ + dir = 4 + }, +/area/hallway/primary/port) +"bCw" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/stock_parts/cell/high, +/obj/item/weapon/stock_parts/cell/high, +/obj/machinery/cell_charger, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/storage/tech) +"bCx" = ( +/obj/structure/rack, +/obj/item/weapon/circuitboard/computer/cloning{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/circuitboard/machine/clonescanner, +/obj/item/weapon/circuitboard/machine/clonepod{ + pixel_x = 3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/bot, +/area/storage/tech) +"bCy" = ( +/obj/structure/rack, +/obj/item/weapon/circuitboard/machine/destructive_analyzer{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/circuitboard/machine/protolathe, +/obj/item/weapon/circuitboard/machine/mechfab, +/obj/item/weapon/circuitboard/machine/circuit_imprinter{ + pixel_x = 3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/bot, +/area/storage/tech) +"bCz" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/stock_parts/matter_bin{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/stock_parts/matter_bin, +/obj/item/weapon/stock_parts/micro_laser, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 26; + pixel_y = 0 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/storage/tech) +"bCA" = ( +/obj/structure/rack, +/obj/item/weapon/airlock_painter, +/obj/item/device/toner, +/obj/machinery/status_display{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/bot, +/area/storage/primary) +"bCB" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/storage/primary) +"bCC" = ( +/turf/open/floor/plasteel/neutral, +/area/storage/primary) +"bCD" = ( +/obj/machinery/holopad, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/storage/primary) +"bCE" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/storage/primary) +"bCF" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/bot, +/area/storage/primary) +"bCG" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/central) +"bCH" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/blue/corner, +/area/hallway/primary/central) +"bCI" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/bridge) +"bCJ" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/structure/sign/nanotrasen{ + pixel_x = 32; + pixel_y = -32 + }, +/obj/machinery/light/small, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/darkblue/side, +/area/bridge) +"bCK" = ( +/obj/machinery/door/poddoor/preopen{ + id = "bridgedoors"; + name = "Bridge Access Blast door" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/bridge) +"bCL" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/bridge) +"bCM" = ( +/obj/machinery/light_switch{ + pixel_x = -7; + pixel_y = -26 + }, +/turf/open/floor/plasteel/darkblue/side, +/area/bridge) +"bCN" = ( +/turf/open/floor/plasteel/darkblue/side, +/area/bridge) +"bCO" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/darkblue/side, +/area/bridge) +"bCP" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/darkblue/side, +/area/bridge) +"bCQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/camera{ + c_tag = "Bridge - Port"; + dir = 1; + name = "command camera" + }, +/turf/open/floor/plasteel/darkblue/side, +/area/bridge) +"bCR" = ( +/obj/structure/cable/white, +/obj/machinery/power/apc{ + dir = 2; + name = "Bridge APC"; + pixel_y = -26 + }, +/turf/open/floor/plasteel/darkblue/side, +/area/bridge) +"bCS" = ( +/obj/structure/fireaxecabinet{ + pixel_y = -28 + }, +/turf/open/floor/plasteel/darkblue/side, +/area/bridge) +"bCT" = ( +/turf/open/floor/plasteel/darkblue/side{ + dir = 8 + }, +/area/bridge) +"bCU" = ( +/obj/structure/rack, +/obj/machinery/light/small, +/obj/item/device/aicard, +/obj/item/weapon/storage/secure/briefcase, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (WEST)"; + icon_state = "vault"; + dir = 8 + }, +/area/bridge) +"bCV" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/table/wood, +/obj/item/device/taperecorder, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/grimy, +/area/bridge) +"bCW" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/carpet, +/area/bridge) +"bCX" = ( +/obj/structure/chair/comfy/brown{ + color = "#596479"; + dir = 1 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/carpet, +/area/bridge) +"bCY" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/carpet, +/area/bridge) +"bCZ" = ( +/obj/structure/table/wood, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/item/weapon/folder/blue, +/obj/item/weapon/pen, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/grimy, +/area/bridge) +"bDa" = ( +/obj/structure/rack, +/obj/machinery/light/small, +/obj/item/weapon/storage/toolbox/emergency, +/obj/item/weapon/wrench, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (WEST)"; + icon_state = "vault"; + dir = 8 + }, +/area/bridge) +"bDb" = ( +/turf/open/floor/plasteel/darkblue/side{ + dir = 4 + }, +/area/bridge) +"bDc" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/darkblue/side, +/area/bridge) +"bDd" = ( +/obj/machinery/camera{ + c_tag = "Bridge - Starboard"; + dir = 1; + name = "command camera" + }, +/turf/open/floor/plasteel/darkblue/side, +/area/bridge) +"bDe" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/darkblue/side, +/area/bridge) +"bDf" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 0; + pixel_y = -26 + }, +/turf/open/floor/plasteel/darkblue/side, +/area/bridge) +"bDg" = ( +/obj/machinery/light_switch{ + pixel_x = 7; + pixel_y = -26 + }, +/turf/open/floor/plasteel/darkblue/side, +/area/bridge) +"bDh" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/structure/sign/nanotrasen{ + pixel_x = -32; + pixel_y = -32 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/darkblue/side, +/area/bridge) +"bDi" = ( +/turf/closed/wall/r_wall, +/area/security/detectives_office) +"bDj" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "detectivewindows"; + name = "Detective Privacy Blast door" + }, +/turf/open/floor/plating, +/area/security/detectives_office) +"bDk" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/hallway/primary/starboard) +"bDl" = ( +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/starboard) +"bDm" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/red/corner{ + dir = 4 + }, +/area/hallway/primary/starboard) +"bDn" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "brigwindows"; + name = "Brig Front Blast door" + }, +/turf/open/floor/plating, +/area/security/brig) +"bDo" = ( +/obj/structure/closet/secure_closet/brig{ + id = "brig1"; + name = "Cell 1 Locker" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/brig) +"bDp" = ( +/obj/machinery/flasher{ + id = "brig1"; + pixel_y = 26 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/brig) +"bDq" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/brig) +"bDr" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/security/brig) +"bDs" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/security/brig) +"bDt" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/security/brig) +"bDu" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/security{ + name = "Evidence Storage"; + req_access_txt = "63" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/warden) +"bDv" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/warden) +"bDw" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/warden) +"bDx" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/landmark{ + name = "blobstart" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/warden) +"bDy" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/warden) +"bDz" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/door/airlock/glass_security{ + name = "Security E.V.A. Storage"; + req_access_txt = "3" + }, +/turf/open/floor/plasteel/warning/side, +/area/security/warden) +"bDA" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/security/warden) +"bDB" = ( +/obj/structure/tank_dispenser/oxygen, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/warden) +"bDC" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/warden) +"bDD" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/crowbar, +/obj/item/weapon/wrench, +/obj/item/device/mmi, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/ai) +"bDE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/gravity_generator) +"bDF" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/sign/electricshock{ + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/gravity_generator) +"bDG" = ( +/obj/machinery/light, +/obj/machinery/status_display{ + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Engineering - Gravity Generator"; + dir = 1; + name = "engineering camera" + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/engine/gravity_generator) +"bDH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/warning, +/area/engine/gravity_generator) +"bDI" = ( +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/engine/gravity_generator) +"bDJ" = ( +/obj/machinery/firealarm{ + dir = 4; + icon_state = "fire0"; + pixel_x = 24; + pixel_y = 0; + tag = "icon-fire0 (EAST)" + }, +/obj/machinery/light_switch{ + pixel_y = -26 + }, +/obj/structure/table/reinforced, +/obj/item/stack/sheet/plasteel{ + amount = 20 + }, +/obj/item/weapon/wrench, +/turf/open/floor/plasteel/bot, +/area/engine/gravity_generator) +"bDK" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "transitlock"; + name = "Transit Tube Lockdown Door" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/engine/gravity_generator) +"bDL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/poddoor/preopen{ + id = "transitlock"; + name = "Transit Tube Lockdown Door" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/engine/gravity_generator) +"bDM" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/chief) +"bDN" = ( +/obj/structure/sign/directions/engineering{ + desc = "A handy sign praising the engineering department."; + icon_state = "safety"; + name = "engineering plaque"; + tag = "icon-safety" + }, +/turf/closed/wall, +/area/engine/break_room) +"bDO" = ( +/obj/machinery/status_display, +/turf/closed/wall, +/area/engine/break_room) +"bDP" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/obj/machinery/camera{ + c_tag = "Engineering - Foyer"; + dir = 4; + name = "engineering camera" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/engine/break_room) +"bDQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/engine/break_room) +"bDR" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/reagent_containers/food/drinks/soda_cans/thirteenloko, +/turf/open/floor/plasteel/bot, +/area/engine/break_room) +"bDS" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/yellow, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/bot, +/area/engine/break_room) +"bDT" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/yellow, +/obj/item/device/lightreplacer, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/bot, +/area/engine/break_room) +"bDU" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/neutral, +/area/engine/break_room) +"bDV" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/engine/break_room) +"bDW" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/neutral, +/area/engine/break_room) +"bDX" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/engine/break_room) +"bDY" = ( +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/engineering{ + name = "Engineering Foyer"; + req_access_txt = "0"; + req_one_access_txt = "32;19" + }, +/turf/open/floor/plasteel/warning/side, +/area/engine/break_room) +"bDZ" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/delivery, +/area/engine/break_room) +"bEa" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/landmark{ + name = "lightsout" + }, +/turf/open/floor/plasteel/neutral, +/area/engine/break_room) +"bEb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/delivery, +/area/engine/break_room) +"bEc" = ( +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/engineering{ + name = "Engineering Foyer"; + req_access_txt = "0"; + req_one_access_txt = "32;19" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/warning/side, +/area/engine/break_room) +"bEd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/hallway/primary/port) +"bEe" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/port) +"bEf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 4 + }, +/area/hallway/primary/port) +"bEg" = ( +/obj/structure/table/reinforced, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/item/weapon/folder/yellow, +/obj/item/weapon/electronics/airlock, +/obj/machinery/power/apc{ + dir = 8; + name = "Technology Storage APC"; + pixel_x = -26; + pixel_y = 3 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/storage/tech) +"bEh" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/storage/tech) +"bEi" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/neutral, +/area/storage/tech) +"bEj" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral, +/area/storage/tech) +"bEk" = ( +/obj/machinery/holopad, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/storage/tech) +"bEl" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/storage/tech) +"bEm" = ( +/obj/structure/table/reinforced, +/obj/item/stack/cable_coil/white{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stack/cable_coil/white, +/obj/item/weapon/stock_parts/scanning_module{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/stock_parts/capacitor, +/obj/item/weapon/stock_parts/manipulator, +/obj/item/weapon/stock_parts/manipulator, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/storage/tech) +"bEn" = ( +/obj/machinery/vending/assist, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/machinery/camera{ + c_tag = "Primary Tool Storage"; + dir = 4; + name = "engineering camera" + }, +/turf/open/floor/plasteel/delivery, +/area/storage/primary) +"bEo" = ( +/obj/effect/landmark{ + name = "lightsout" + }, +/turf/open/floor/plasteel/neutral, +/area/storage/primary) +"bEp" = ( +/obj/structure/table/reinforced, +/obj/item/stack/packageWrap, +/obj/item/weapon/hand_labeler, +/turf/open/floor/plasteel/bot, +/area/storage/primary) +"bEq" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/toolbox/mechanical, +/obj/item/device/flashlight, +/turf/open/floor/plasteel/bot, +/area/storage/primary) +"bEr" = ( +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral, +/area/storage/primary) +"bEs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 4 + }, +/area/storage/primary) +"bEt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/storage/primary) +"bEu" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_engineering{ + name = "Primary Tool Storage"; + req_access_txt = "0" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/storage/primary) +"bEv" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"bEw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/firealarm{ + dir = 4; + icon_state = "fire0"; + pixel_x = 24; + pixel_y = 0; + tag = "icon-fire0 (EAST)" + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/central) +"bEx" = ( +/turf/closed/wall/r_wall, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bEy" = ( +/turf/closed/wall, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bEz" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/command{ + name = "Council Chambers"; + req_access = null; + req_access_txt = "19" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bEA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bEB" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (WEST)"; + icon_state = "vault"; + dir = 8 + }, +/area/bridge) +"bEC" = ( +/obj/structure/table/reinforced, +/obj/machinery/cell_charger, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (WEST)"; + icon_state = "vault"; + dir = 8 + }, +/area/bridge) +"bED" = ( +/obj/machinery/status_display, +/turf/closed/wall, +/area/bridge) +"bEE" = ( +/obj/structure/table/wood, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/weapon/storage/fancy/donut_box, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/grimy, +/area/bridge) +"bEF" = ( +/obj/machinery/button/door{ + id = "bridgedoors"; + name = "Bridge Access Blast doors"; + pixel_x = 7; + pixel_y = -26; + req_access_txt = "19" + }, +/obj/machinery/button/door{ + id = "bridgewindows"; + name = "Bridge View Blast doors"; + pixel_x = -7; + pixel_y = -26; + req_access_txt = "19" + }, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Bridge"; + departmentType = 5; + name = "Bridge RC"; + pixel_x = -32; + pixel_y = -32 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_Toxins = 0 + }, +/obj/machinery/camera{ + c_tag = "Bridge - Command Chair"; + dir = 1; + name = "command camera" + }, +/turf/open/floor/carpet, +/area/bridge) +"bEG" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/carpet, +/area/bridge) +"bEH" = ( +/obj/machinery/button/door{ + id = "evastorage"; + name = "E.V.A. Shutters"; + pixel_x = 7; + pixel_y = -26; + req_access_txt = "19" + }, +/obj/machinery/button/door{ + id = "teleportershutters"; + name = "Teleporter Shutters"; + pixel_x = -7; + pixel_y = -26 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 26; + pixel_y = -26 + }, +/obj/machinery/keycard_auth{ + pixel_x = -7; + pixel_y = -38 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/carpet, +/area/bridge) +"bEI" = ( +/obj/structure/table/wood, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/item/weapon/paper_bin, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/grimy, +/area/bridge) +"bEJ" = ( +/obj/machinery/ai_status_display, +/turf/closed/wall, +/area/bridge) +"bEK" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (WEST)"; + icon_state = "vault"; + dir = 8 + }, +/area/bridge) +"bEL" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/captain) +"bEM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/crew_quarters/captain) +"bEN" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Captain's Office"; + req_access = null; + req_access_txt = "20" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bEO" = ( +/obj/machinery/computer/security/telescreen/entertainment, +/turf/closed/wall/r_wall, +/area/crew_quarters/captain) +"bEP" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"bEQ" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating/warnplate/side, +/area/hallway/primary/central) +"bER" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/hallway/primary/central) +"bES" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"bET" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/delivery, +/area/hallway/primary/central) +"bEU" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"bEV" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 5; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; + tag = "icon-neutral (NORTHEAST)" + }, +/area/hallway/primary/central) +"bEW" = ( +/obj/structure/table/wood, +/obj/item/weapon/clipboard, +/obj/item/toy/figure/detective, +/obj/structure/sign/poster{ + icon_state = "poster22_legit"; + pixel_y = 32; + tag = "icon-poster22_legit" + }, +/turf/open/floor/plasteel/vault, +/area/security/detectives_office) +"bEX" = ( +/obj/structure/closet/secure_closet/detective, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/vault, +/area/security/detectives_office) +"bEY" = ( +/obj/structure/table/wood, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/item/weapon/book/manual/wiki/security_space_law, +/obj/item/device/camera/detective, +/turf/open/floor/plasteel/vault, +/area/security/detectives_office) +"bEZ" = ( +/obj/structure/table/wood, +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 1; + name = "Detective's Office APC"; + pixel_x = 0; + pixel_y = 25 + }, +/obj/item/device/taperecorder, +/obj/item/weapon/restraints/handcuffs, +/turf/open/floor/plasteel/vault, +/area/security/detectives_office) +"bFa" = ( +/obj/structure/filingcabinet/security, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/vault, +/area/security/detectives_office) +"bFb" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/trunk, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel/vault, +/area/security/detectives_office) +"bFc" = ( +/obj/machinery/photocopier, +/obj/machinery/ai_status_display{ + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plasteel/vault, +/area/security/detectives_office) +"bFd" = ( +/obj/structure/rack, +/obj/item/weapon/storage/briefcase{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/storage/secure/briefcase, +/turf/open/floor/plasteel/vault, +/area/security/detectives_office) +"bFe" = ( +/obj/structure/dresser, +/turf/open/floor/plasteel/vault, +/area/security/detectives_office) +"bFf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/camera{ + c_tag = "Security Hallway - Fore"; + dir = 4; + name = "hallway camera" + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/hallway/primary/starboard) +"bFg" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/starboard) +"bFh" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/red/corner{ + dir = 4 + }, +/area/hallway/primary/starboard) +"bFi" = ( +/obj/structure/cable/white, +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "brigwindows"; + name = "Brig Front Blast door" + }, +/turf/open/floor/plating, +/area/security/brig) +"bFj" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/brig) +"bFk" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/brig) +"bFl" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/window/brigdoor/westright{ + id = "brig1"; + name = "Cell 1"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/brig) +"bFm" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"bFn" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/security/brig) +"bFo" = ( +/obj/machinery/newscaster/security_unit{ + pixel_x = 32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/red/corner, +/area/security/brig) +"bFp" = ( +/obj/structure/table, +/obj/item/stack/packageWrap, +/obj/item/weapon/hand_labeler, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/warden) +"bFq" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/warden) +"bFr" = ( +/obj/structure/closet/secure_closet{ + anchored = 1; + name = "Secure Evidence Closet"; + req_access_txt = "0"; + req_one_access_txt = "3,4" + }, +/obj/machinery/camera{ + c_tag = "Security - Evidence Storage"; + dir = 1; + name = "security camera" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/warden) +"bFs" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/warden) +"bFt" = ( +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/security/warden) +"bFu" = ( +/obj/machinery/suit_storage_unit/security, +/obj/machinery/light/small, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/warden) +"bFv" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/ai) +"bFw" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/ai_monitored/turret_protected/ai) +"bFx" = ( +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/ai) +"bFy" = ( +/obj/machinery/flasher{ + id = "AI"; + pixel_y = 26 + }, +/obj/machinery/porta_turret/ai, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/ai) +"bFz" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/obj/machinery/power/apc{ + aidisabled = 0; + dir = 1; + name = "AI Chamber APC"; + pixel_y = 24 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/ai) +"bFA" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/ai) +"bFB" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/ai_monitored/turret_protected/ai) +"bFC" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/ai) +"bFD" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/blue, +/obj/item/device/assembly/flash/handheld, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/ai) +"bFE" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/hatch{ + name = "MiniSat Transit Tube Access"; + req_one_access_txt = "32;19" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/break_room{ + name = "Transit Tube" + }) +"bFF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/engine/break_room{ + name = "Transit Tube" + }) +"bFG" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/chief) +"bFH" = ( +/obj/machinery/disposal/bin, +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/crew_quarters/chief) +"bFI" = ( +/obj/machinery/cell_charger, +/obj/structure/table/reinforced, +/obj/machinery/ai_status_display{ + pixel_y = 32 + }, +/obj/item/weapon/stock_parts/cell/high, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/chief) +"bFJ" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/clipboard, +/obj/item/device/gps/engineering{ + gpstag = "CE0" + }, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/chief) +"bFK" = ( +/obj/structure/rack, +/obj/item/weapon/crowbar, +/obj/item/weapon/storage/toolbox/mechanical, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/chief) +"bFL" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/obj/machinery/button/door{ + id = "ceblast"; + name = "Lockdown Control"; + pixel_x = 26; + pixel_y = 26; + req_access_txt = "56" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/chief) +"bFM" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/chief) +"bFN" = ( +/obj/machinery/door/poddoor/preopen{ + id = "ceblast"; + name = "Chief's Lockdown Shutters" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/engine/break_room) +"bFO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/engine/break_room) +"bFP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/obj/structure/disposalpipe/sortjunction{ + name = "CE's Junction"; + sortType = 5 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/engine/break_room) +"bFQ" = ( +/turf/open/floor/plasteel/neutral, +/area/engine/break_room) +"bFR" = ( +/obj/structure/chair/stool/bar, +/turf/open/floor/plasteel/neutral, +/area/engine/break_room) +"bFS" = ( +/obj/structure/chair/stool/bar, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral, +/area/engine/break_room) +"bFT" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral, +/area/engine/break_room) +"bFU" = ( +/obj/machinery/holopad, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/bot, +/area/engine/break_room) +"bFV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral, +/area/engine/break_room) +"bFW" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/engine/break_room) +"bFX" = ( +/obj/structure/sign/securearea, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/closed/wall, +/area/engine/break_room) +"bFY" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/obj/structure/closet/firecloset, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/engine/break_room) +"bFZ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/warning, +/area/engine/break_room) +"bGa" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/engine/break_room) +"bGb" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/engine/break_room) +"bGc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/yellow/corner{ + dir = 8 + }, +/area/hallway/primary/port) +"bGd" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/port) +"bGe" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/electronics/airalarm, +/obj/item/weapon/electronics/apc, +/obj/machinery/camera{ + c_tag = "Technology Storage"; + dir = 4; + name = "engineering camera" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/storage/tech) +"bGf" = ( +/obj/structure/rack, +/obj/item/weapon/circuitboard/computer/security{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/circuitboard/computer/prisoner, +/obj/item/weapon/circuitboard/computer/secure_data{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/bot, +/area/storage/tech) +"bGg" = ( +/obj/structure/rack, +/obj/item/weapon/circuitboard/computer/atmos_alert{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/circuitboard/computer/powermonitor, +/obj/item/weapon/circuitboard/computer/stationalert{ + pixel_x = 3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/bot, +/area/storage/tech) +"bGh" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/white, +/obj/item/weapon/stock_parts/cell/high, +/obj/item/weapon/stock_parts/console_screen, +/obj/item/weapon/stock_parts/console_screen, +/obj/item/weapon/stock_parts/console_screen, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/storage/tech) +"bGi" = ( +/obj/machinery/vending/tool, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = -26; + pixel_y = 0 + }, +/turf/open/floor/plasteel/delivery, +/area/storage/primary) +"bGj" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/gloves/color/yellow, +/obj/item/weapon/storage/box/lights/mixed, +/turf/open/floor/plasteel/bot, +/area/storage/primary) +"bGk" = ( +/turf/open/floor/plasteel/yellow/corner, +/area/storage/primary) +"bGl" = ( +/turf/open/floor/plasteel/delivery, +/area/storage/primary) +"bGm" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_engineering{ + name = "Primary Tool Storage"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/warning/side, +/area/storage/primary) +"bGn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/central) +"bGo" = ( +/obj/machinery/status_display{ + pixel_x = -32 + }, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp, +/turf/open/floor/wood, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bGp" = ( +/obj/structure/bookcase/random, +/turf/open/floor/wood, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bGq" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/wood, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bGr" = ( +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/turf/open/floor/wood, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bGs" = ( +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/obj/machinery/power/apc{ + cell_type = 10000; + dir = 1; + name = "Council Chambers APC"; + pixel_x = 0; + pixel_y = 26 + }, +/turf/open/floor/wood, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bGt" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/wood, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bGu" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/light_switch{ + pixel_x = 26; + pixel_y = 26 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/wood, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bGv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bGw" = ( +/obj/structure/table/wood, +/obj/item/device/paicard, +/turf/open/floor/wood, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bGx" = ( +/turf/closed/wall/r_wall, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"bGy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"bGz" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Telecoms Control Room"; + req_access = null; + req_access_txt = "19; 61" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"bGA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"bGB" = ( +/obj/structure/table/wood, +/obj/item/weapon/clipboard, +/obj/item/toy/figure/captain, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bGC" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bGD" = ( +/obj/machinery/light_switch{ + pixel_x = -26; + pixel_y = 26 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bGE" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bGF" = ( +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bGG" = ( +/obj/machinery/ai_status_display{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/vault{ + dir = 6 + }, +/area/crew_quarters/captain) +"bGH" = ( +/obj/structure/fireplace, +/turf/open/floor/plasteel/vault, +/area/crew_quarters/captain) +"bGI" = ( +/obj/machinery/status_display{ + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plasteel/vault{ + dir = 10 + }, +/area/crew_quarters/captain) +"bGJ" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bGK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24; + pixel_y = 0 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"bGL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 26; + pixel_y = 0 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"bGM" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Auxiliary Tool Storage Maintenance"; + req_access_txt = "12" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating/warnplate/side{ + tag = "icon-plating_warn_side (EAST)"; + icon_state = "plating_warn_side"; + dir = 4 + }, +/area/hallway/primary/central) +"bGN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"bGO" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Detective's Office Maintenance"; + req_access_txt = "4" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning/side, +/area/security/detectives_office) +"bGP" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -26; + pixel_y = 32 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/detectives_office) +"bGQ" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/detectives_office) +"bGR" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bGS" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bGT" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bGU" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = 64; + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bGV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bGW" = ( +/obj/machinery/door/airlock/security{ + name = "Private Interrogation"; + req_access = null; + req_access_txt = "4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/detectives_office) +"bGX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/detectives_office) +"bGY" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/obj/machinery/camera{ + c_tag = "Detective's Interrogation"; + dir = 8; + name = "security camera" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/detectives_office) +"bGZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/hallway/primary/starboard) +"bHa" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "brigwindows"; + name = "Brig Front Blast door" + }, +/turf/open/floor/plating, +/area/security/brig) +"bHb" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/security/brig) +"bHc" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/brig) +"bHd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/red/corner{ + dir = 8 + }, +/area/security/brig) +"bHe" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/security/brig) +"bHf" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/brig) +"bHg" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/warden) +"bHh" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/glass_security{ + name = "Warden's Office"; + req_access_txt = "3" + }, +/turf/open/floor/plasteel/red, +/area/security/warden) +"bHi" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/security/armory) +"bHj" = ( +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"bHk" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"bHl" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"bHm" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/space, +/area/space) +"bHn" = ( +/obj/structure/table/reinforced, +/obj/item/bodypart/chest/robot, +/obj/item/bodypart/r_arm/robot{ + pixel_x = 6 + }, +/obj/item/bodypart/l_arm/robot{ + pixel_x = -6 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/ai) +"bHo" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/ai_monitored/turret_protected/ai) +"bHp" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/ai_monitored/turret_protected/ai) +"bHq" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/ai_slipper{ + icon_state = "motion0"; + uses = 10 + }, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/ai_monitored/turret_protected/ai) +"bHr" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/ai_monitored/turret_protected/ai) +"bHs" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/ai_monitored/turret_protected/ai) +"bHt" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"bHu" = ( +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"bHv" = ( +/turf/closed/wall/r_wall, +/area/engine/break_room{ + name = "Transit Tube" + }) +"bHw" = ( +/obj/structure/closet/emcloset{ + anchored = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/break_room{ + name = "Transit Tube" + }) +"bHx" = ( +/obj/machinery/status_display, +/turf/closed/wall, +/area/engine/break_room{ + name = "Transit Tube" + }) +"bHy" = ( +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 1; + name = "Transit Tube Access APC"; + pixel_x = 0; + pixel_y = 25 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/vault, +/area/engine/break_room{ + name = "Transit Tube" + }) +"bHz" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault, +/area/engine/break_room{ + name = "Transit Tube" + }) +"bHA" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/firealarm{ + dir = 4; + icon_state = "fire0"; + pixel_x = 24; + pixel_y = 0; + tag = "icon-fire0 (EAST)" + }, +/obj/machinery/button/door{ + id = "transitlock"; + name = "Transit Tube Lockdown Control"; + pixel_x = 0; + pixel_y = 26; + req_access_txt = "39; 19" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/break_room{ + name = "Transit Tube" + }) +"bHB" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/button/door{ + id = "atmoslock"; + name = "Atmospherics Lockdown Control"; + pixel_x = -26; + req_access_txt = "25" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/chief) +"bHC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/crew_quarters/chief) +"bHD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/chief) +"bHE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/crew_quarters/chief) +"bHF" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/chief) +"bHG" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Chief Engineer's Office"; + req_access_txt = "56" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/warning/side, +/area/crew_quarters/chief) +"bHH" = ( +/obj/machinery/door/poddoor/preopen{ + id = "ceblast"; + name = "Chief's Lockdown Shutters" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/warning/side, +/area/engine/break_room) +"bHI" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/delivery, +/area/engine/break_room) +"bHJ" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/engine/break_room) +"bHK" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/engine/break_room) +"bHL" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/engine/break_room) +"bHM" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/engine/break_room) +"bHN" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/engine/break_room) +"bHO" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral, +/area/engine/break_room) +"bHP" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/engine/break_room) +"bHQ" = ( +/turf/closed/wall, +/area/security/checkpoint/engineering) +"bHR" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plating, +/area/security/checkpoint/engineering) +"bHS" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/door/airlock/glass_security{ + id_tag = "engdoor"; + name = "Engineering Cell"; + req_access_txt = "63" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red, +/area/security/checkpoint/engineering) +"bHT" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/checkpoint/engineering) +"bHU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/sign/electricshock, +/turf/closed/wall/r_wall, +/area/security/checkpoint/engineering) +"bHV" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 8 + }, +/area/hallway/primary/port) +"bHW" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/ai_status_display{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/storage/tech) +"bHX" = ( +/obj/structure/rack, +/obj/item/weapon/circuitboard/machine/teleporter_hub{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/circuitboard/machine/teleporter_station, +/obj/item/weapon/circuitboard/computer/teleporter{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/bot, +/area/storage/tech) +"bHY" = ( +/obj/structure/rack, +/obj/item/weapon/circuitboard/machine/telecomms/server{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/circuitboard/machine/telecomms/relay, +/obj/item/weapon/circuitboard/machine/telecomms/receiver, +/obj/item/weapon/circuitboard/machine/telecomms/processor, +/obj/item/weapon/circuitboard/machine/telecomms/hub, +/obj/item/weapon/circuitboard/machine/telecomms/bus, +/obj/item/weapon/circuitboard/machine/telecomms/broadcaster{ + pixel_x = 3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/bot, +/area/storage/tech) +"bHZ" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/machinery/status_display{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/storage/tech) +"bIa" = ( +/obj/structure/rack, +/obj/item/weapon/book/manual/wiki/engineering_hacking{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/book/manual/wiki/engineering_guide, +/obj/item/weapon/book/manual/wiki/engineering_construction{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/machinery/status_display{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/bot, +/area/storage/primary) +"bIb" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/storage/primary) +"bIc" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plasteel/bot, +/area/storage/primary) +"bId" = ( +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "councilblast"; + name = "Council Chambers Blast door" + }, +/turf/open/floor/plating, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bIe" = ( +/obj/structure/table/wood, +/obj/item/clothing/mask/cigarette/cigar/cohiba{ + pixel_x = 3 + }, +/obj/item/clothing/mask/cigarette/cigar/havana{ + pixel_x = -3 + }, +/obj/item/clothing/mask/cigarette/cigar, +/turf/open/floor/wood, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bIf" = ( +/turf/open/floor/plasteel/grimy, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bIg" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/carpet, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bIh" = ( +/obj/structure/chair/comfy/black, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bIi" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/chair/comfy/brown, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bIj" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/chair/comfy/black, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bIk" = ( +/obj/structure/table/wood, +/obj/item/weapon/cigbutt/cigarbutt{ + pixel_x = 7 + }, +/obj/item/weapon/phone{ + desc = "Supposedly a direct line to NanoTrasen Central Command. It's not even plugged in."; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/grimy, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bIl" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/wood, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bIm" = ( +/obj/structure/sign/nanotrasen{ + pixel_x = 32; + pixel_y = 32 + }, +/turf/open/floor/wood, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bIn" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bIo" = ( +/obj/structure/table/wood, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/weapon/paper_bin, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"bIp" = ( +/obj/structure/table/wood, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_y = 26 + }, +/obj/item/weapon/folder/blue, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"bIq" = ( +/obj/machinery/power/apc{ + cell_type = 10000; + dir = 1; + name = "Telecoms Monitoring APC"; + pixel_x = 0; + pixel_y = 28 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"bIr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/obj/machinery/camera{ + c_tag = "Telecomms - Monitoring"; + dir = 2; + name = "telecomms camera"; + network = list("SS13","tcomm") + }, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"bIs" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/light_switch{ + pixel_x = -26; + pixel_y = 26 + }, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"bIt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"bIu" = ( +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"bIv" = ( +/obj/structure/table/wood, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_y = 26 + }, +/obj/item/device/radio{ + pixel_y = 5 + }, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"bIw" = ( +/obj/structure/table/wood, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/device/flashlight/lamp, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"bIx" = ( +/obj/machinery/vending/boozeomat, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/crew_quarters/captain) +"bIy" = ( +/obj/structure/sign/nanotrasen{ + pixel_x = -32; + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bIz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bIA" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bIB" = ( +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bIC" = ( +/obj/structure/chair/comfy/brown{ + icon_state = "comfychair"; + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Captain" + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/captain) +"bID" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/fancy/donut_box, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/captain) +"bIE" = ( +/obj/structure/chair/comfy/brown{ + icon_state = "comfychair"; + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/captain) +"bIF" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bIG" = ( +/turf/closed/wall, +/area/storage/tools) +"bIH" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/yellow/side{ + dir = 9 + }, +/area/storage/tools) +"bII" = ( +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 1; + name = "Auxiliary Tool Storage APC"; + pixel_x = 0; + pixel_y = 25 + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/storage/tools) +"bIJ" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"bIK" = ( +/obj/structure/closet/toolcloset, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plasteel/yellow/corner{ + dir = 4 + }, +/area/storage/tools) +"bIL" = ( +/obj/structure/closet/toolcloset, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plasteel/yellow/side{ + dir = 5 + }, +/area/storage/tools) +"bIM" = ( +/turf/closed/wall, +/area/security/detectives_office) +"bIN" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/newscaster/security_unit{ + pixel_x = -32 + }, +/obj/machinery/camera{ + c_tag = "Detective's Office"; + dir = 4; + name = "security camera" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/detectives_office) +"bIO" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/detectives_office) +"bIP" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bIQ" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bIR" = ( +/obj/structure/table/wood, +/obj/item/clothing/mask/cigarette/cigar/cohiba{ + pixel_x = 3 + }, +/obj/item/clothing/mask/cigarette/cigar/havana{ + pixel_x = -3 + }, +/obj/item/clothing/mask/cigarette/cigar, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/security/detectives_office) +"bIS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet, +/area/security/detectives_office) +"bIT" = ( +/obj/machinery/computer/med_data, +/obj/machinery/requests_console{ + department = "Detective's Office"; + departmentType = 0; + name = "Detective RC"; + pixel_x = 30; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/security/detectives_office) +"bIU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/security/detectives_office) +"bIV" = ( +/obj/structure/chair/office/dark, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/detectives_office) +"bIW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/detectives_office) +"bIX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/hallway/primary/starboard) +"bIY" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE"; + pixel_x = 32; + pixel_y = 0 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/red/corner{ + dir = 4 + }, +/area/hallway/primary/starboard) +"bIZ" = ( +/turf/closed/wall, +/area/security/brig) +"bJa" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/machinery/door_timer{ + id = "brig1"; + name = "Cell 1"; + pixel_x = -32 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/camera{ + c_tag = "Security - Brig Center"; + dir = 4; + name = "security camera" + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/brig) +"bJb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/brig) +"bJc" = ( +/obj/machinery/computer/crew, +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 0; + name = "Security RC"; + pixel_x = -32; + pixel_y = 32 + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/warden) +"bJd" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/warden) +"bJe" = ( +/obj/structure/rack, +/obj/item/weapon/storage/box/handcuffs, +/obj/item/weapon/storage/box/flashbangs{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 26; + pixel_y = 0 + }, +/obj/item/clothing/mask/gas/sechailer, +/obj/item/clothing/mask/gas/sechailer, +/obj/item/device/flashlight/seclite, +/obj/item/device/flashlight/seclite, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/warden) +"bJf" = ( +/obj/machinery/flasher/portable, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/security/armory) +"bJg" = ( +/obj/item/weapon/grenade/barrier{ + pixel_x = -3; + pixel_y = 1 + }, +/obj/item/weapon/grenade/barrier, +/obj/item/weapon/grenade/barrier{ + pixel_x = 3; + pixel_y = -1 + }, +/obj/item/weapon/grenade/barrier{ + pixel_x = 6; + pixel_y = -2 + }, +/obj/structure/table/reinforced, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_y = 26 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/security/armory) +"bJh" = ( +/obj/item/weapon/storage/box/chemimp{ + pixel_x = 6 + }, +/obj/item/weapon/storage/box/trackimp{ + pixel_x = -3 + }, +/obj/item/weapon/storage/lockbox/loyalty, +/obj/structure/table/reinforced, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/security/armory) +"bJi" = ( +/obj/item/weapon/storage/box/firingpins, +/obj/item/weapon/storage/box/firingpins, +/obj/item/key/security, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/security/armory) +"bJj" = ( +/obj/item/weapon/storage/box/teargas{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/handcuffs, +/obj/item/weapon/storage/box/flashbangs{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/security/armory) +"bJk" = ( +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/space, +/area/space) +"bJl" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/ai) +"bJm" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 0; + pixel_y = -26 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 6 + }, +/area/ai_monitored/turret_protected/ai) +"bJn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/obj/machinery/camera/motion{ + c_tag = "AI Chamber - Aft"; + dir = 1; + name = "motion-sensitive ai camera"; + network = list("AI") + }, +/turf/open/floor/plasteel/vault, +/area/ai_monitored/turret_protected/ai) +"bJo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault, +/area/ai_monitored/turret_protected/ai) +"bJp" = ( +/turf/open/floor/plasteel/vault{ + dir = 10 + }, +/area/ai_monitored/turret_protected/ai) +"bJq" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/ai) +"bJr" = ( +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/turf/open/space, +/area/space) +"bJs" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"bJt" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"bJu" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/hatch{ + name = "MiniSat Exterior Access"; + req_one_access_txt = "32;19" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"bJv" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/space, +/area/space) +"bJw" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/space, +/area/space) +"bJx" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/space, +/area/space) +"bJy" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/hatch{ + name = "MiniSat Exterior Access"; + req_one_access_txt = "32;19" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/break_room{ + name = "Transit Tube" + }) +"bJz" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/break_room{ + name = "Transit Tube" + }) +"bJA" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/break_room{ + name = "Transit Tube" + }) +"bJB" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/break_room{ + name = "Transit Tube" + }) +"bJC" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/break_room{ + name = "Transit Tube" + }) +"bJD" = ( +/obj/machinery/computer/card/minor/ce{ + pixel_x = 0 + }, +/obj/machinery/status_display{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/chief) +"bJE" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/neutral/side{ + tag = "icon-neutral (EAST)"; + icon_state = "neutral"; + dir = 4 + }, +/area/crew_quarters/chief) +"bJF" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/chief) +"bJG" = ( +/obj/structure/table/reinforced, +/obj/item/device/flashlight/lamp, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/chief) +"bJH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/crew_quarters/chief) +"bJI" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/chief) +"bJJ" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/crew_quarters/chief) +"bJK" = ( +/obj/machinery/door/poddoor/preopen{ + id = "ceblast"; + name = "Chief's Lockdown Shutters" + }, +/turf/open/floor/plasteel/warning/side, +/area/engine/break_room) +"bJL" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = -26 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 10 + }, +/area/engine/break_room) +"bJM" = ( +/obj/structure/rack, +/obj/item/weapon/book/manual/wiki/engineering_hacking{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/book/manual/wiki/engineering_guide, +/obj/item/weapon/book/manual/wiki/engineering_construction{ + pixel_x = 3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/yellow/side, +/area/engine/break_room) +"bJN" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/stock_parts/cell/high, +/obj/item/weapon/stock_parts/cell/high, +/obj/machinery/cell_charger, +/turf/open/floor/plasteel/yellow/side, +/area/engine/break_room) +"bJO" = ( +/obj/machinery/light, +/obj/machinery/light_switch{ + pixel_y = -26 + }, +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/yellow/side, +/area/engine/break_room) +"bJP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/yellow/side, +/area/engine/break_room) +"bJQ" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/yellow/side, +/area/engine/break_room) +"bJR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/yellow/side, +/area/engine/break_room) +"bJS" = ( +/obj/machinery/status_display{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/yellow/side, +/area/engine/break_room) +"bJT" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 6 + }, +/area/engine/break_room) +"bJU" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/checkpoint/engineering) +"bJV" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/checkpoint/engineering) +"bJW" = ( +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/checkpoint/engineering) +"bJX" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/closet/secure_closet/brig{ + id = "engcell"; + name = "Engineering Cell Locker" + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/checkpoint/engineering) +"bJY" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall/r_wall, +/area/security/checkpoint/engineering) +"bJZ" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/gloves/color/yellow, +/obj/item/weapon/storage/toolbox/electrical, +/obj/item/device/multitool, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/storage/tech) +"bKa" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral, +/area/storage/tech) +"bKb" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/electronics/firelock, +/obj/item/weapon/electronics/firelock, +/obj/item/weapon/electronics/firealarm, +/obj/item/weapon/electronics/firealarm, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/storage/tech) +"bKc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Fore Port Maintenance" + }) +"bKd" = ( +/obj/structure/table/reinforced, +/obj/item/stack/sheet/metal{ + amount = 30 + }, +/obj/item/stack/sheet/glass{ + amount = 30 + }, +/obj/machinery/airalarm{ + dir = 4; + locked = 0; + pixel_x = -23; + pixel_y = 0 + }, +/turf/open/floor/plasteel/bot, +/area/storage/primary) +"bKe" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 10 + }, +/area/storage/primary) +"bKf" = ( +/turf/open/floor/plasteel/yellow/side, +/area/storage/primary) +"bKg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/yellow/corner{ + dir = 8 + }, +/area/storage/primary) +"bKh" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 6 + }, +/area/storage/primary) +"bKi" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/toolbox/electrical, +/turf/open/floor/plasteel/bot, +/area/storage/primary) +"bKj" = ( +/obj/structure/cable/white, +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "councilblast"; + name = "Council Chambers Blast door" + }, +/turf/open/floor/plating, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bKk" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/photocopier, +/turf/open/floor/wood, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bKl" = ( +/obj/machinery/holopad, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/grimy, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bKm" = ( +/obj/structure/chair/comfy/brown{ + color = "#c45c57"; + dir = 4; + icon_state = "comfychair" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/carpet, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bKn" = ( +/obj/structure/table/wood, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/item/weapon/folder/blue, +/obj/item/weapon/pen, +/turf/open/floor/carpet, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bKo" = ( +/obj/structure/table/wood, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/item/weapon/folder/red, +/obj/item/weapon/lighter, +/turf/open/floor/carpet, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bKp" = ( +/obj/structure/table/wood, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/item/weapon/folder/yellow, +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bKq" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/fancy/donut_box, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bKr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bKs" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/wood, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bKt" = ( +/obj/machinery/vending/cigarette, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bKu" = ( +/obj/machinery/announcement_system, +/obj/machinery/ai_status_display{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"bKv" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"bKw" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"bKx" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"bKy" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/holopad, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"bKz" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"bKA" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"bKB" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"bKC" = ( +/obj/machinery/computer/telecomms/monitor, +/obj/machinery/status_display{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"bKD" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/crew_quarters/captain) +"bKE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bKF" = ( +/obj/machinery/holopad, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bKG" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bKH" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bKI" = ( +/obj/structure/chair/comfy/brown{ + icon_state = "comfychair"; + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/captain) +"bKJ" = ( +/obj/structure/table/wood, +/obj/item/clothing/mask/cigarette/cigar/cohiba{ + pixel_x = 3 + }, +/obj/item/clothing/mask/cigarette/cigar/havana{ + pixel_x = -3 + }, +/obj/item/clothing/mask/cigarette/cigar, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/captain) +"bKK" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bKL" = ( +/obj/structure/rack, +/obj/item/clothing/gloves/color/fyellow, +/obj/item/clothing/suit/hazardvest, +/obj/item/device/multitool, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/storage/tools) +"bKM" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/storage/tools) +"bKN" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/neutral, +/area/storage/tools) +"bKO" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/storage/tools) +"bKP" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 26; + pixel_y = 0 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera{ + c_tag = "Auxiliary Tool Storage"; + dir = 8; + name = "engineering camera" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/storage/tools) +"bKQ" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/bodybags, +/obj/item/clothing/gloves/color/latex, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/detectives_office) +"bKR" = ( +/obj/machinery/door/window/eastright{ + name = "Detective's Morgue" + }, +/turf/open/floor/plasteel/black, +/area/security/detectives_office) +"bKS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/detectives_office) +"bKT" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bKU" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bKV" = ( +/obj/structure/table/wood, +/obj/item/weapon/folder/red, +/obj/item/weapon/hand_labeler, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/carpet, +/area/security/detectives_office) +"bKW" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/effect/landmark/start{ + name = "Detective" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet, +/area/security/detectives_office) +"bKX" = ( +/obj/machinery/computer/secure_data, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/obj/machinery/status_display{ + pixel_x = 32 + }, +/turf/open/floor/carpet, +/area/security/detectives_office) +"bKY" = ( +/obj/structure/table/wood, +/obj/item/weapon/clipboard, +/obj/item/weapon/folder/red, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/detectives_office) +"bKZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start{ + name = "Detective" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/detectives_office) +"bLa" = ( +/obj/effect/landmark{ + name = "lightsout" + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/starboard) +"bLb" = ( +/obj/structure/closet/secure_closet/brig{ + id = "brig2"; + name = "Cell 2 Locker" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/brig) +"bLc" = ( +/obj/machinery/flasher{ + id = "brig2"; + pixel_y = 26 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/brig) +"bLd" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/security/brig) +"bLe" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/holopad, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/bot, +/area/security/brig) +"bLf" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/window/brigdoor/northright{ + dir = 4; + name = "Warden's Desk"; + req_access_txt = "3" + }, +/obj/machinery/door/window/westleft{ + name = "Warden's Desk" + }, +/obj/item/weapon/folder/red, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/delivery, +/area/security/warden) +"bLg" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/effect/landmark/start{ + name = "Warden" + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/warden) +"bLh" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/security/warden) +"bLi" = ( +/obj/machinery/computer/secure_data, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/warden) +"bLj" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/ai_monitored/security/armory) +"bLk" = ( +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/ai_monitored/security/armory) +"bLl" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/ai_monitored/security/armory) +"bLm" = ( +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/ai_monitored/security/armory) +"bLn" = ( +/obj/structure/closet/secure_closet{ + anchored = 1; + name = "Contraband Locker"; + req_access_txt = "3" + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/security/armory) +"bLo" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/camera{ + c_tag = "AI Satellite - Port"; + dir = 8; + name = "ai camera"; + network = list("Sat"); + pixel_x = 0; + pixel_y = 0; + start_active = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"bLp" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/aisat_interior) +"bLq" = ( +/obj/machinery/ai_status_display, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/aisat_interior) +"bLr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/aisat_interior) +"bLs" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/highsecurity{ + locked = 1; + name = "MiniSat Chamber"; + req_access_txt = "16" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "aicoredoor"; + name = "AI Core Access" + }, +/obj/machinery/flasher{ + id = "AI"; + pixel_x = -26 + }, +/obj/item/device/radio/intercom{ + broadcasting = 1; + frequency = 1447; + listening = 0; + name = "AI Intercom"; + pixel_x = 28; + pixel_y = 0 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"bLt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/aisat_interior) +"bLu" = ( +/obj/structure/sign/kiddieplaque, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/aisat_interior) +"bLv" = ( +/obj/machinery/status_display, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/aisat_interior) +"bLw" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/camera{ + c_tag = "AI Satellite - Starboard"; + dir = 4; + name = "ai camera"; + network = list("Sat"); + pixel_x = 0; + pixel_y = 0; + start_active = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"bLx" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/space, +/area/space) +"bLy" = ( +/obj/machinery/light/small, +/obj/structure/sign/vacuum{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/break_room{ + name = "Transit Tube" + }) +"bLz" = ( +/turf/closed/wall, +/area/engine/break_room{ + name = "Transit Tube" + }) +"bLA" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/airalarm{ + dir = 4; + locked = 0; + pixel_x = -23; + pixel_y = 0 + }, +/obj/machinery/flasher{ + id = "AI"; + pixel_x = -26; + pixel_y = -26 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/break_room{ + name = "Transit Tube" + }) +"bLB" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/break_room{ + name = "Transit Tube" + }) +"bLC" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/break_room{ + name = "Transit Tube" + }) +"bLD" = ( +/obj/machinery/computer/atmos_alert, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Chief Engineer's Desk"; + departmentType = 5; + name = "Chief Engineer's RC"; + pixel_x = -32; + pixel_y = 0 + }, +/obj/machinery/camera{ + c_tag = "Engineering - Chief Engineer's Office"; + dir = 4; + name = "engineering camera" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/chief) +"bLE" = ( +/turf/open/floor/plasteel/neutral/side{ + tag = "icon-neutral (EAST)"; + icon_state = "neutral"; + dir = 4 + }, +/area/crew_quarters/chief) +"bLF" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Chief Engineer" + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/chief) +"bLG" = ( +/obj/structure/table/reinforced, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/item/weapon/folder/blue{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/folder/yellow, +/obj/item/weapon/lighter, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/chief) +"bLH" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/crew_quarters/chief) +"bLI" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/chief) +"bLJ" = ( +/obj/structure/sign/electricshock, +/turf/closed/wall/r_wall, +/area/crew_quarters/chief) +"bLK" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall/r_wall, +/area/crew_quarters/chief) +"bLL" = ( +/obj/structure/sign/nosmoking_2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/engine/break_room) +"bLM" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/engineering{ + name = "Engineering Access"; + req_access_txt = "10" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/engine/break_room) +"bLN" = ( +/obj/structure/sign/securearea, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/engine/break_room) +"bLO" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/delivery, +/area/engine/break_room) +"bLP" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/checkpoint/engineering) +"bLQ" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/security/checkpoint/engineering) +"bLR" = ( +/turf/open/floor/plasteel/red/side, +/area/security/checkpoint/engineering) +"bLS" = ( +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/checkpoint/engineering) +"bLT" = ( +/turf/closed/wall/r_wall, +/area/security/checkpoint/engineering) +"bLU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 8 + }, +/area/hallway/primary/port) +"bLV" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/port) +"bLW" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 4 + }, +/area/hallway/primary/port) +"bLX" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/book/manual/wiki/engineering_hacking{ + pixel_y = 3 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/storage/tech) +"bLY" = ( +/obj/structure/table/reinforced, +/obj/item/device/assembly/timer, +/obj/item/device/assembly/timer, +/obj/item/device/assembly/voice, +/obj/item/device/assembly/voice, +/turf/open/floor/plasteel/bot, +/area/storage/tech) +"bLZ" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 0; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/delivery, +/area/storage/tech) +"bMa" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/light_switch{ + pixel_y = -26 + }, +/turf/open/floor/plasteel/delivery, +/area/storage/tech) +"bMb" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/wrench, +/obj/item/weapon/crowbar, +/obj/item/device/paicard, +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/bot, +/area/storage/tech) +"bMc" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/toolbox/mechanical, +/obj/item/device/flashlight, +/obj/item/device/flashlight, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/storage/tech) +"bMd" = ( +/obj/structure/table/reinforced, +/obj/item/device/assembly/timer, +/obj/item/device/assembly/timer, +/obj/item/device/multitool, +/obj/item/device/multitool, +/obj/machinery/light, +/turf/open/floor/plasteel/bot, +/area/storage/primary) +"bMe" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/delivery, +/area/storage/primary) +"bMf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/delivery, +/area/storage/primary) +"bMg" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/stock_parts/cell/high, +/obj/item/weapon/stock_parts/cell/high, +/obj/machinery/cell_charger, +/turf/open/floor/plasteel/bot, +/area/storage/primary) +"bMh" = ( +/obj/structure/table/reinforced, +/obj/item/device/radio{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/device/radio{ + pixel_x = -5; + pixel_y = 5 + }, +/obj/item/device/radio, +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 0; + pixel_y = -24 + }, +/obj/machinery/light_switch{ + pixel_x = 26 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/storage/primary) +"bMi" = ( +/turf/closed/wall, +/area/storage/primary) +"bMj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Central Hallway - Port"; + dir = 4; + name = "hallway camera" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"bMk" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "councilblast"; + name = "Council Chambers Blast door" + }, +/turf/open/floor/plating, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bMl" = ( +/obj/structure/table/wood, +/obj/item/weapon/folder/red, +/obj/item/weapon/book/manual/wiki/security_space_law, +/turf/open/floor/wood, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bMm" = ( +/turf/open/floor/carpet, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bMn" = ( +/obj/structure/chair/comfy/brown{ + buildstackamount = 0; + dir = 1 + }, +/turf/open/floor/carpet, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bMo" = ( +/obj/structure/chair/comfy/black{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bMp" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/chair/comfy/brown{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bMq" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/grimy, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bMr" = ( +/obj/machinery/newscaster{ + pixel_x = 32; + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bMs" = ( +/turf/open/floor/wood, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bMt" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bMu" = ( +/obj/machinery/computer/message_monitor, +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/obj/item/weapon/paper/monitorkey, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"bMv" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"bMw" = ( +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"bMx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"bMy" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"bMz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"bMA" = ( +/obj/structure/chair/office/dark, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"bMB" = ( +/obj/machinery/computer/telecomms/server, +/obj/machinery/newscaster{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"bMC" = ( +/obj/structure/bed/dogbed{ + anchored = 1; + desc = "Renault's bed! Looks comfy. A foxy person needs a foxy pet."; + name = "Renault's bed"; + pixel_y = 2 + }, +/mob/living/simple_animal/pet/fox/Renault, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/crew_quarters/captain) +"bMD" = ( +/obj/machinery/newscaster{ + pixel_x = -32; + pixel_y = -32 + }, +/obj/item/device/radio/intercom{ + pixel_y = -26 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bME" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bMF" = ( +/obj/structure/chair/comfy/brown, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bMG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bMH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bMI" = ( +/obj/machinery/power/apc{ + cell_type = 10000; + dir = 2; + name = "Captain's Office APC"; + pixel_y = -24 + }, +/obj/structure/cable/white, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bMJ" = ( +/obj/structure/sign/goldenplaque{ + name = "The Most Robust Captain Award for Robustness"; + pixel_x = 32 + }, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bMK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"bML" = ( +/obj/structure/rack, +/obj/item/weapon/storage/toolbox/emergency{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/storage/toolbox/emergency, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plasteel/yellow/side{ + dir = 10 + }, +/area/storage/tools) +"bMM" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal, +/obj/item/stack/rods{ + amount = 50 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/yellow/corner{ + dir = 8 + }, +/area/storage/tools) +"bMN" = ( +/turf/open/floor/plasteel, +/area/storage/tools) +"bMO" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass/fifty, +/obj/item/weapon/storage/box/lights/mixed, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/yellow/corner, +/area/storage/tools) +"bMP" = ( +/obj/structure/table, +/obj/item/stack/packageWrap, +/obj/item/weapon/hand_labeler, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/yellow/side{ + dir = 6 + }, +/area/storage/tools) +"bMQ" = ( +/obj/structure/bodycontainer/morgue, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/detectives_office) +"bMR" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/turf/open/floor/plasteel/black, +/area/security/detectives_office) +"bMS" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 0; + pixel_y = -26 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/detectives_office) +"bMT" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/detectives_office) +"bMU" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bMV" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bMW" = ( +/obj/structure/table/wood, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/carpet, +/area/security/detectives_office) +"bMX" = ( +/obj/machinery/computer/security/wooden_tv{ + density = 0 + }, +/obj/structure/table/wood, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/button/door{ + id = "detectivewindows"; + name = "Privacy Shutters"; + pixel_x = 26; + pixel_y = -26; + req_access_txt = "4" + }, +/obj/machinery/light_switch{ + pixel_x = 38; + pixel_y = -26 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet, +/area/security/detectives_office) +"bMY" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp, +/obj/item/weapon/storage/secure/safe{ + pixel_x = 32 + }, +/obj/item/weapon/reagent_containers/food/drinks/flask/det, +/turf/open/floor/carpet, +/area/security/detectives_office) +"bMZ" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/detectives_office) +"bNa" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-18" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/detectives_office) +"bNb" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/window/brigdoor/westright{ + id = "brig2"; + name = "Cell 2"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/brig) +"bNc" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/warden) +"bNd" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral, +/area/security/warden) +"bNe" = ( +/obj/machinery/computer/security, +/turf/open/floor/plasteel/red, +/area/security/warden) +"bNf" = ( +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/ai_monitored/security/armory) +"bNg" = ( +/obj/structure/rack, +/obj/item/weapon/gun/ballistic/shotgun/riot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/gun/ballistic/shotgun/riot, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/bot, +/area/ai_monitored/security/armory) +"bNh" = ( +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/ai_monitored/security/armory) +"bNi" = ( +/obj/structure/rack, +/obj/item/clothing/suit/armor/vest{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/suit/armor/vest{ + pixel_y = 0 + }, +/obj/item/clothing/suit/armor/vest{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/clothing/head/helmet{ + layer = 3.00001; + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/head/helmet{ + layer = 3.00001 + }, +/obj/item/clothing/head/helmet{ + layer = 3.00001; + pixel_x = 3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/security/armory) +"bNj" = ( +/obj/structure/lattice, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/space, +/area/space) +"bNk" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating/warnplate/corner{ + dir = 8 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"bNl" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/portable_atmospherics/canister/air, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"bNm" = ( +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/ai_status_display{ + pixel_y = 32 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"bNn" = ( +/obj/machinery/power/port_gen/pacman, +/obj/structure/cable/yellow{ + d2 = 2; + icon_state = "0-2" + }, +/obj/structure/sign/electricshock{ + pixel_y = 32 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"bNo" = ( +/obj/machinery/cell_charger, +/obj/structure/table/reinforced, +/obj/item/weapon/stock_parts/cell/high, +/turf/open/floor/plating/warnplate/corner{ + dir = 4 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"bNp" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/aisat_interior) +"bNq" = ( +/obj/machinery/porta_turret/ai, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"bNr" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/vault, +/area/ai_monitored/turret_protected/aisat_interior) +"bNs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/camera{ + c_tag = "AI Satellite - Antechamber"; + dir = 2; + name = "ai camera"; + network = list("Sat"); + pixel_x = 0; + pixel_y = 0; + start_active = 1 + }, +/turf/open/floor/plasteel/vault, +/area/ai_monitored/turret_protected/aisat_interior) +"bNt" = ( +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"bNu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault, +/area/ai_monitored/turret_protected/aisat_interior) +"bNv" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plasteel/vault, +/area/ai_monitored/turret_protected/aisat_interior) +"bNw" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"bNx" = ( +/obj/machinery/teleport/hub, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel/darkwarning{ + dir = 10 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"bNy" = ( +/obj/machinery/teleport/station, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/ai_status_display{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/darkwarning, +/area/ai_monitored/turret_protected/aisat_interior) +"bNz" = ( +/obj/machinery/computer/teleporter, +/turf/open/floor/plasteel/darkwarning{ + dir = 6 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"bNA" = ( +/obj/structure/lattice, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/turf/open/space, +/area/space) +"bNB" = ( +/obj/structure/lattice, +/obj/structure/window/reinforced, +/turf/open/space, +/area/space) +"bNC" = ( +/obj/structure/sign/vacuum, +/turf/closed/wall, +/area/space) +"bND" = ( +/obj/structure/lattice, +/obj/structure/transit_tube/curved/flipped{ + tag = "icon-curved1 (EAST)"; + icon_state = "curved1"; + dir = 4 + }, +/turf/open/space, +/area/space) +"bNE" = ( +/obj/structure/lattice, +/obj/structure/transit_tube/crossing/horizontal, +/turf/open/space, +/area/space) +"bNF" = ( +/obj/structure/lattice, +/obj/structure/transit_tube/curved{ + tag = "icon-curved0 (WEST)"; + icon_state = "curved0"; + dir = 8 + }, +/turf/open/space, +/area/space) +"bNG" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/space, +/area/space) +"bNH" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/space, +/area/space) +"bNI" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/engine/break_room{ + name = "Transit Tube" + }) +"bNJ" = ( +/obj/machinery/door/airlock/hatch{ + name = "MiniSat Transit Tube Access"; + req_one_access_txt = "32;19" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/break_room{ + name = "Transit Tube" + }) +"bNK" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/engine/break_room{ + name = "Transit Tube" + }) +"bNL" = ( +/obj/machinery/computer/monitor, +/obj/machinery/keycard_auth{ + pixel_x = -26 + }, +/obj/machinery/button/door{ + id = "engstorage"; + name = "Engineering Secure Storage Control"; + pixel_x = -38; + pixel_y = 8; + req_access_txt = "11" + }, +/obj/machinery/button/door{ + id = "transitlock"; + name = "Transit Tube Lockdown Control"; + pixel_x = -38; + pixel_y = -8; + req_access_txt = "39; 19" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/chief) +"bNM" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/chief) +"bNN" = ( +/obj/structure/table/reinforced, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/item/weapon/clipboard, +/obj/item/toy/figure/ce, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/chief) +"bNO" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/crew_quarters/chief) +"bNP" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/tinted/fulltile, +/turf/open/floor/plating, +/area/crew_quarters/chief) +"bNQ" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/chief) +"bNR" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp, +/obj/machinery/ai_status_display{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/chief) +"bNS" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/ce, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/chief) +"bNT" = ( +/obj/structure/dresser, +/obj/machinery/status_display{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/chief) +"bNU" = ( +/obj/structure/closet/secure_closet/engineering_chief, +/obj/machinery/button/door{ + id = "ceprivacy"; + name = "Privacy Control"; + pixel_x = 26; + req_access_txt = "56" + }, +/obj/machinery/light_switch{ + pixel_w = 0; + pixel_x = 26; + pixel_y = 26 + }, +/obj/machinery/camera{ + c_tag = "Engineering - Chief Engineer's Quarters"; + dir = 2; + name = "engineering camera" + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/crew_quarters/chief) +"bNV" = ( +/obj/structure/closet/radiation, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/engine/engineering) +"bNW" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/delivery, +/area/engine/engineering) +"bNX" = ( +/obj/structure/closet/toolcloset, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/engine/engineering) +"bNY" = ( +/turf/closed/wall, +/area/engine/engineering) +"bNZ" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/checkpoint/engineering) +"bOa" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/door/window/brigdoor{ + dir = 1; + id = "engcell"; + name = "Engineering Cell"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/red, +/area/security/checkpoint/engineering) +"bOb" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/checkpoint/engineering) +"bOc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/camera{ + c_tag = "Engineering Hallway - Center"; + dir = 8; + name = "hallway camera" + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 4 + }, +/area/hallway/primary/port) +"bOd" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall, +/area/storage/tech) +"bOe" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/storage/tech) +"bOf" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/engineering{ + name = "Technology Storage"; + req_access_txt = "23" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/storage/tech) +"bOg" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_engineering{ + name = "Primary Tool Storage"; + req_access_txt = "0" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/storage/primary) +"bOh" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_engineering{ + name = "Primary Tool Storage"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/storage/primary) +"bOi" = ( +/obj/structure/sign/directions/science{ + dir = 2 + }, +/obj/structure/sign/directions/engineering{ + dir = 8; + pixel_y = 8 + }, +/obj/structure/sign/directions/engineering{ + desc = "A direction sign, pointing out which way the Command department is."; + dir = 4; + icon_state = "direction_bridge"; + name = "command department"; + pixel_y = -8; + tag = "icon-direction_bridge" + }, +/turf/closed/wall, +/area/storage/primary) +"bOj" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/hallway/primary/central) +"bOk" = ( +/obj/machinery/ai_status_display{ + pixel_x = -32 + }, +/obj/structure/table/wood, +/obj/item/weapon/storage/briefcase{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/secure/briefcase, +/turf/open/floor/wood, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bOl" = ( +/obj/machinery/button/door{ + id = "councilblast"; + name = "Council Blast doors"; + pixel_x = -26; + pixel_y = -26 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = -26 + }, +/obj/structure/bookcase/random, +/turf/open/floor/wood, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bOm" = ( +/obj/machinery/light, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/wood, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bOn" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/camera{ + c_tag = "Bridge - Council Chamber"; + dir = 1; + name = "command camera" + }, +/turf/open/floor/wood, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bOo" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/light_switch{ + pixel_x = 26; + pixel_y = -26 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bOp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/bridge/meeting_room{ + name = "Council Chamber" + }) +"bOq" = ( +/obj/structure/table/wood, +/obj/machinery/microwave{ + desc = "Cooks and boils stuff, somehow."; + pixel_x = -3; + pixel_y = 5 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"bOr" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/box/donkpockets, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"bOs" = ( +/obj/structure/filingcabinet/security, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"bOt" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"bOu" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"bOv" = ( +/obj/structure/filingcabinet/medical, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"bOw" = ( +/obj/structure/table/wood, +/obj/item/weapon/folder/red, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"bOx" = ( +/obj/structure/table/wood, +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 0; + pixel_y = -26 + }, +/obj/item/weapon/phone{ + desc = "Supposedly a direct line to NanoTrasen Central Command. It's not even plugged in."; + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/cigbutt/cigarbutt{ + pixel_x = 6 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"bOy" = ( +/obj/structure/table/wood, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/item/device/flashlight/lamp/green, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/camera{ + c_tag = "Bridge - Captain's Office"; + dir = 4; + name = "command camera" + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"bOz" = ( +/obj/structure/table/wood, +/obj/item/weapon/folder/blue, +/obj/item/weapon/pen/fourcolor, +/obj/item/weapon/stamp/captain, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"bOA" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"bOB" = ( +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/captain) +"bOC" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/secure/briefcase{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/weapon/storage/lockbox/medal, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/captain) +"bOD" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/photo_album, +/obj/item/device/camera, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bOE" = ( +/obj/structure/table/wood, +/obj/machinery/recharger, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bOF" = ( +/obj/structure/sign/directions/science{ + dir = 2; + pixel_y = -8 + }, +/obj/structure/sign/directions/engineering{ + desc = "A direction sign, pointing out which way the Command department is."; + dir = 1; + icon_state = "direction_bridge"; + name = "command department"; + pixel_y = 0; + tag = "icon-direction_bridge" + }, +/obj/structure/sign/directions/engineering{ + desc = "A direction sign, pointing out which way the Supply department is."; + dir = 1; + icon_state = "direction_supply"; + name = "supply department"; + pixel_y = 8; + tag = "icon-direction_supply" + }, +/turf/closed/wall, +/area/storage/tools) +"bOG" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/storage/tools) +"bOH" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_engineering{ + name = "Auxiliary Tool Storage"; + req_access_txt = "12" + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"bOI" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/storage/tools) +"bOJ" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "detectivewindows"; + name = "Detective Privacy Blast door" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/security/detectives_office) +"bOK" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + name = "Detective's Office"; + req_access = null; + req_access_txt = "4" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/detectives_office) +"bOL" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "detectivewindows"; + name = "Detective Privacy Blast door" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/security/detectives_office) +"bOM" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "detectivewindows"; + name = "Detective Privacy Blast door" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/security/detectives_office) +"bON" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/hallway/primary/starboard) +"bOO" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/brig) +"bOP" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/brig) +"bOQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 8 + }, +/area/security/brig) +"bOR" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/security/brig) +"bOS" = ( +/obj/structure/table/reinforced, +/obj/machinery/airalarm{ + dir = 4; + locked = 0; + pixel_x = -23; + pixel_y = 0 + }, +/obj/item/weapon/clipboard, +/obj/item/toy/figure/warden, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/warden) +"bOT" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral, +/area/security/warden) +"bOU" = ( +/obj/machinery/computer/prisoner, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + dir = 4; + name = "Warden's Office APC"; + pixel_x = 26; + pixel_y = 0 + }, +/obj/machinery/camera{ + c_tag = "Security - Warden's Office"; + dir = 8; + name = "security camera" + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/warden) +"bOV" = ( +/obj/structure/rack, +/obj/item/weapon/storage/box/rubbershot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/rubbershot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/rubbershot, +/obj/item/weapon/storage/box/rubbershot, +/obj/item/weapon/storage/box/rubbershot{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/weapon/storage/box/rubbershot{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/security/armory) +"bOW" = ( +/obj/structure/rack, +/obj/item/weapon/gun/ballistic/automatic/wt550{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/gun/ballistic/automatic/wt550, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/bot, +/area/ai_monitored/security/armory) +"bOX" = ( +/obj/structure/rack, +/obj/item/clothing/suit/armor/bulletproof{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/suit/armor/bulletproof{ + pixel_y = 0 + }, +/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/item/weapon/storage/secure/safe{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/security/armory) +"bOY" = ( +/obj/machinery/camera/motion{ + c_tag = "Armoury - Exterior"; + dir = 4; + network = list("SS13") + }, +/turf/open/space, +/area/space) +"bOZ" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/door/window/northleft, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"bPa" = ( +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/machinery/firealarm{ + dir = 4; + icon_state = "fire0"; + pixel_x = 24; + pixel_y = 0; + tag = "icon-fire0 (EAST)" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"bPb" = ( +/obj/structure/showcase{ + density = 0; + desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; + dir = 4; + icon = 'icons/mob/robots.dmi'; + icon_state = "robot_old"; + name = "Cyborg Statue"; + pixel_x = -9; + pixel_y = 2 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plating/warnplate, +/area/ai_monitored/turret_protected/aisat_interior) +"bPc" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/plating/warnplate, +/area/ai_monitored/turret_protected/aisat_interior) +"bPd" = ( +/obj/machinery/power/terminal{ + icon_state = "term"; + dir = 1 + }, +/obj/structure/cable/yellow{ + d2 = 4; + icon_state = "0-4" + }, +/turf/open/floor/plating/warnplate, +/area/ai_monitored/turret_protected/aisat_interior) +"bPe" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating/warnplate, +/area/ai_monitored/turret_protected/aisat_interior) +"bPf" = ( +/obj/machinery/camera{ + c_tag = "AI Satellite - Maintenance"; + dir = 8; + name = "ai camera"; + network = list("Sat"); + pixel_x = 0; + pixel_y = 0; + start_active = 1 + }, +/turf/open/floor/plating/warnplate, +/area/ai_monitored/turret_protected/aisat_interior) +"bPg" = ( +/obj/structure/showcase{ + density = 0; + desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; + dir = 4; + icon = 'icons/mob/robots.dmi'; + icon_state = "robot_old"; + name = "Cyborg Statue"; + pixel_x = -9; + pixel_y = 2 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"bPh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/ai_monitored/turret_protected/aisat_interior) +"bPi" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel/grimy, +/area/ai_monitored/turret_protected/aisat_interior) +"bPj" = ( +/obj/machinery/ai_slipper{ + icon_state = "motion0"; + uses = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/ai_monitored/turret_protected/aisat_interior) +"bPk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/grimy, +/area/ai_monitored/turret_protected/aisat_interior) +"bPl" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/ai_monitored/turret_protected/aisat_interior) +"bPm" = ( +/obj/structure/showcase{ + density = 0; + desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; + dir = 8; + icon = 'icons/mob/robots.dmi'; + icon_state = "robot_old"; + name = "Cyborg Statue"; + pixel_x = 9; + pixel_y = 2 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"bPn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/aisat_interior) +"bPo" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/machinery/turretid{ + control_area = "AI Satellite Antechamber"; + enabled = 1; + icon_state = "control_standby"; + name = "Antechamber Turret Control"; + pixel_x = -32; + pixel_y = 0; + req_access = list(65) + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "AI Satellite - Teleporter"; + dir = 4; + name = "ai camera"; + network = list("Sat"); + pixel_x = 0; + pixel_y = 0; + start_active = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 6 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"bPp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault, +/area/ai_monitored/turret_protected/aisat_interior) +"bPq" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/vault, +/area/ai_monitored/turret_protected/aisat_interior) +"bPr" = ( +/obj/structure/showcase{ + density = 0; + desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; + dir = 8; + icon = 'icons/mob/robots.dmi'; + icon_state = "robot_old"; + name = "Cyborg Statue"; + pixel_x = 9; + pixel_y = 2 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 10 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"bPs" = ( +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"bPt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/window/northright, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"bPu" = ( +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"bPv" = ( +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/obj/structure/transit_tube/curved, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"bPw" = ( +/obj/structure/lattice, +/obj/structure/transit_tube/diagonal{ + tag = "icon-diagonal (EAST)"; + icon_state = "diagonal"; + dir = 4 + }, +/turf/open/space, +/area/space) +"bPx" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/turf/open/space, +/area/space) +"bPy" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/table/reinforced, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "AI Satellite - Transit Tube"; + dir = 2; + name = "ai camera"; + network = list("Sat"); + pixel_x = 0; + pixel_y = 0; + start_active = 1 + }, +/obj/item/weapon/clipboard, +/obj/item/weapon/folder/blue, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/break_room{ + name = "Transit Tube" + }) +"bPz" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/machinery/flasher{ + id = "AI"; + pixel_x = -26; + pixel_y = 26 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/break_room{ + name = "Transit Tube" + }) +"bPA" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/break_room{ + name = "Transit Tube" + }) +"bPB" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/break_room{ + name = "Transit Tube" + }) +"bPC" = ( +/obj/machinery/computer/station_alert, +/obj/machinery/status_display{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/chief) +"bPD" = ( +/obj/item/weapon/phone{ + desc = "Supposedly a direct line to NanoTrasen Central Command. It's not even plugged in."; + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/mask/cigarette/cigar/cohiba{ + pixel_x = 6 + }, +/obj/item/clothing/mask/cigarette/cigar/havana{ + pixel_x = 2 + }, +/obj/item/clothing/mask/cigarette/cigar{ + pixel_x = 4.5 + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/chief) +"bPE" = ( +/obj/structure/table/reinforced, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/item/weapon/cartridge/engineering{ + pixel_x = 6 + }, +/obj/item/weapon/cartridge/engineering{ + pixel_x = -6 + }, +/obj/item/weapon/cartridge/engineering{ + pixel_y = 6 + }, +/obj/item/weapon/reagent_containers/pill/patch/silver_sulf, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/chief) +"bPF" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/crew_quarters/chief) +"bPG" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/chief) +"bPH" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Chief Engineer's Quarters"; + req_access_txt = "56" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/warning/side, +/area/crew_quarters/chief) +"bPI" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/chief) +"bPJ" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/chief) +"bPK" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/landmark/start{ + name = "Chief Engineer" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/chief) +"bPL" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/crew_quarters/chief) +"bPM" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "ceprivacy"; + name = "Chief's Privacy Shutters" + }, +/turf/open/floor/plating, +/area/crew_quarters/chief) +"bPN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/engineering) +"bPO" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/item/device/radio/beacon, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/engine/engineering) +"bPP" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/engineering) +"bPQ" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/sign/nanotrasen{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"bPR" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/checkpoint/engineering) +"bPS" = ( +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 1; + name = "Security Post - Engineering APC"; + pixel_x = 0; + pixel_y = 25 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/obj/machinery/button/door{ + desc = "A remote control switch."; + id = "engdoor"; + name = "Engineering Cell Control"; + normaldoorcontrol = 1; + pixel_x = 7; + pixel_y = 36 + }, +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/checkpoint/engineering) +"bPT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/checkpoint/engineering) +"bPU" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/checkpoint/engineering) +"bPV" = ( +/obj/structure/closet/secure_closet/security/engine, +/obj/machinery/door_timer{ + id = "engcell"; + name = "Engineering Cell"; + pixel_x = 32; + pixel_y = 32 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 26; + pixel_y = 0 + }, +/obj/machinery/camera{ + c_tag = "Security Post - Engineering"; + dir = 8; + name = "security camera" + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/checkpoint/engineering) +"bPW" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/port) +"bPX" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 4 + }, +/area/hallway/primary/port) +"bPY" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning/side, +/area/hallway/primary/port) +"bPZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/port) +"bQa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/hallway/primary/port) +"bQb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/hallway/primary/port) +"bQc" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/hallway/primary/port) +"bQd" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/hallway/primary/port) +"bQe" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/port) +"bQf" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/port) +"bQg" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Engineering Hallway - Starboard"; + dir = 2; + name = "hallway camera" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/port) +"bQh" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warning/side, +/area/hallway/primary/port) +"bQi" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/hallway/primary/port) +"bQj" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/hallway/primary/port) +"bQk" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/glass{ + name = "Port Primary Hallway" + }, +/turf/open/floor/plasteel/warning/side, +/area/hallway/primary/port) +"bQl" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/central) +"bQm" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/central) +"bQn" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/heads) +"bQo" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Head of Personnel's Office"; + req_access = null; + req_access_txt = "57" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"bQp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/crew_quarters/heads) +"bQq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/crew_quarters/heads) +"bQr" = ( +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/tcommsat/server) +"bQs" = ( +/turf/closed/wall/r_wall, +/area/tcommsat/server) +"bQt" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall/r_wall, +/area/tcommsat/server) +"bQu" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/tcommsat/server) +"bQv" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/tcommsat/server) +"bQw" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + cyclelinkeddir = 2; + name = "Telecoms Server Room"; + req_access = null; + req_access_txt = "61" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/tcommsat/server) +"bQx" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/tcommsat/server) +"bQy" = ( +/obj/machinery/computer/card, +/obj/machinery/keycard_auth{ + pixel_x = -26; + pixel_y = 26 + }, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Captain's Desk"; + departmentType = 5; + name = "Captain RC"; + pixel_x = -32; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"bQz" = ( +/obj/structure/chair/comfy/brown{ + buildstackamount = 0; + color = "#c45c57"; + dir = 1 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/landmark/start{ + name = "Captain" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"bQA" = ( +/obj/structure/table/wood, +/obj/machinery/computer/security/wooden_tv, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"bQB" = ( +/obj/structure/table/wood, +/obj/machinery/status_display{ + pixel_x = 32 + }, +/obj/item/weapon/coin/adamantine{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/weapon/hand_tele, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/captain) +"bQC" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bQD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"bQE" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/glass{ + name = "Starboard Primary Hallway" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/hallway/primary/starboard) +"bQF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 4 + }, +/area/hallway/primary/starboard) +"bQG" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/junction{ + dir = 8; + icon_state = "pipe-j1" + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 4 + }, +/area/hallway/primary/starboard) +"bQH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 4 + }, +/area/hallway/primary/starboard) +"bQI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/starboard) +"bQJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warning/side, +/area/hallway/primary/starboard) +"bQK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Security Hallway - Port"; + dir = 2; + name = "hallway camera" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/starboard) +"bQL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/starboard) +"bQM" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/starboard) +"bQN" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/starboard) +"bQO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/starboard) +"bQP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 4 + }, +/area/hallway/primary/starboard) +"bQQ" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 4 + }, +/area/hallway/primary/starboard) +"bQR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 4 + }, +/area/hallway/primary/starboard) +"bQS" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/hallway/primary/starboard) +"bQT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/hallway/primary/starboard) +"bQU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/starboard) +"bQV" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE"; + pixel_x = 32; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/red/corner{ + dir = 4 + }, +/area/hallway/primary/starboard) +"bQW" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/machinery/door_timer{ + id = "brig2"; + name = "Cell 2"; + pixel_x = -32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/security/brig) +"bQX" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger, +/obj/machinery/newscaster/security_unit{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/warden) +"bQY" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral, +/area/security/warden) +"bQZ" = ( +/obj/structure/rack, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/storage/toolbox/electrical, +/obj/item/weapon/screwdriver{ + pixel_y = 5 + }, +/obj/item/device/multitool, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/warden) +"bRa" = ( +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/ai_monitored/security/armory) +"bRb" = ( +/obj/vehicle/secway, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/security/armory) +"bRc" = ( +/obj/structure/rack, +/obj/item/weapon/gun/energy/e_gun/advtaser{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/gun/energy/e_gun/advtaser, +/obj/item/weapon/gun/energy/e_gun/advtaser{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/bot, +/area/ai_monitored/security/armory) +"bRd" = ( +/obj/structure/rack, +/obj/item/clothing/suit/armor/riot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/suit/armor/riot, +/obj/item/clothing/suit/armor/riot{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/clothing/head/helmet/riot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/head/helmet/riot, +/obj/item/clothing/head/helmet/riot{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/weapon/shield/riot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/shield/riot, +/obj/item/weapon/shield/riot{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/structure/sign/nanotrasen{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/security/armory) +"bRe" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"bRf" = ( +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"bRg" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "MiniSat Maintenance"; + req_access_txt = "16" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"bRh" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"bRi" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"bRj" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/holopad, +/obj/effect/landmark/start{ + name = "Cyborg" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"bRk" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/ai_slipper{ + icon_state = "motion0"; + uses = 10 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"bRl" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"bRm" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "MiniSat Antechamber"; + req_access_txt = "16" + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = 26 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"bRn" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"bRo" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/ai_monitored/turret_protected/aisat_interior) +"bRp" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/grimy, +/area/ai_monitored/turret_protected/aisat_interior) +"bRq" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/mob/living/simple_animal/bot/secbot/pingsky, +/turf/open/floor/plasteel/grimy, +/area/ai_monitored/turret_protected/aisat_interior) +"bRr" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/grimy, +/area/ai_monitored/turret_protected/aisat_interior) +"bRs" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/grimy, +/area/ai_monitored/turret_protected/aisat_interior) +"bRt" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"bRu" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/hatch{ + name = "MiniSat Antechamber"; + req_one_access_txt = "32;19" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"bRv" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/ai_slipper{ + icon_state = "motion0"; + uses = 10 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"bRw" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"bRx" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/hatch{ + name = "MiniSat Access"; + req_one_access_txt = "32;19" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"bRy" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"bRz" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"bRA" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"bRB" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"bRC" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"bRD" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"bRE" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/transit_tube/station{ + tag = "icon-closed_station0 (WEST)"; + icon_state = "closed_station0"; + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"bRF" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/space, +/area/space) +"bRG" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/space, +/area/space) +"bRH" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/transit_tube/junction{ + tag = "icon-junction0 (EAST)"; + icon_state = "junction0"; + dir = 4 + }, +/turf/open/space, +/area/space) +"bRI" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/transit_tube/crossing/horizontal, +/turf/open/space, +/area/space) +"bRJ" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/transit_tube/horizontal, +/turf/open/space, +/area/space) +"bRK" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/transit_tube/curved{ + tag = "icon-curved0 (WEST)"; + icon_state = "curved0"; + dir = 8 + }, +/turf/open/space, +/area/space) +"bRL" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/table/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the AI's satellite."; + dir = 4; + name = "Research Monitor"; + network = list("Sat"); + pixel_x = 0; + pixel_y = 2 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/break_room{ + name = "Transit Tube" + }) +"bRM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/break_room{ + name = "Transit Tube" + }) +"bRN" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/break_room{ + name = "Transit Tube" + }) +"bRO" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/break_room{ + name = "Transit Tube" + }) +"bRP" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/mob/living/simple_animal/parrot/Poly, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/chief) +"bRQ" = ( +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/crew_quarters/chief) +"bRR" = ( +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/crew_quarters/chief) +"bRS" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/crew_quarters/chief) +"bRT" = ( +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/crew_quarters/chief) +"bRU" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/chief) +"bRV" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/tinted/fulltile, +/turf/open/floor/plating, +/area/crew_quarters/chief) +"bRW" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-18" + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_x = -24; + pixel_y = -24 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/chief) +"bRX" = ( +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/chief) +"bRY" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/chief) +"bRZ" = ( +/obj/machinery/suit_storage_unit/ce, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/crew_quarters/chief) +"bSa" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/engineering) +"bSb" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/engine/engineering) +"bSc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/engineering) +"bSd" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/cable/white, +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/engine/engineering) +"bSe" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/checkpoint/engineering) +"bSf" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/holopad, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/neutral, +/area/security/checkpoint/engineering) +"bSg" = ( +/obj/structure/chair/office/dark, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/neutral, +/area/security/checkpoint/engineering) +"bSh" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/neutral, +/area/security/checkpoint/engineering) +"bSi" = ( +/obj/structure/table/reinforced, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/item/weapon/book/manual/wiki/security_space_law, +/obj/item/device/radio, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (EAST)"; + icon_state = "red"; + dir = 4 + }, +/area/security/checkpoint/engineering) +"bSj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 8 + }, +/area/hallway/primary/port) +"bSk" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=engi2"; + location = "engi1" + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/port) +"bSl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hall4"; + location = "engi3" + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/port) +"bSm" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warning/side, +/area/hallway/primary/port) +"bSn" = ( +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/port) +"bSo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/port) +"bSp" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/port) +"bSq" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/port) +"bSr" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Port Primary Hallway" + }, +/turf/open/floor/plasteel/warning/side, +/area/hallway/primary/port) +"bSs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=engi1"; + location = "hall3" + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/central) +"bSt" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hall5"; + location = "hall4" + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/central) +"bSu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/central) +"bSv" = ( +/obj/machinery/ai_status_display, +/turf/closed/wall, +/area/hallway/primary/central) +"bSw" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/hallway/primary/central) +"bSx" = ( +/obj/structure/table/wood, +/obj/machinery/computer/med_data/laptop, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Head of Personnel's Desk"; + departmentType = 5; + name = "Head of Personnel RC"; + pixel_x = 32; + pixel_y = 32 + }, +/obj/machinery/light_switch{ + pixel_x = -38; + pixel_y = 7 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_y = 26 + }, +/obj/machinery/button/door{ + id = "hopline"; + name = "Queue Shutters Control"; + pixel_x = -26; + pixel_y = -7; + req_access_txt = "57" + }, +/obj/machinery/button/door{ + id = "hopblast"; + name = "Lockdown Blast doors"; + pixel_x = -26; + pixel_y = 7; + req_access_txt = "57" + }, +/obj/machinery/button/flasher{ + id = "hopflash"; + pixel_x = -38; + pixel_y = -7; + req_access_txt = "28" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/crew_quarters/heads) +"bSy" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/obj/item/weapon/stamp/hop, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"bSz" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"bSA" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"bSB" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"bSC" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/box/ids{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/silver_ids, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"bSD" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/tcommsat/server) +"bSE" = ( +/turf/open/floor/plasteel/circuit/gcircuit{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bSF" = ( +/obj/machinery/telecomms/receiver/preset_right, +/turf/open/floor/plasteel/circuit/gcircuit{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bSG" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/fans/tiny, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + dir = 5 + }, +/area/tcommsat/server) +"bSH" = ( +/obj/machinery/telecomms/receiver/preset_left, +/turf/open/floor/plasteel/circuit/gcircuit{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bSI" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/tcommsat/server) +"bSJ" = ( +/obj/machinery/computer/communications, +/obj/machinery/ai_status_display{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"bSK" = ( +/obj/machinery/light_switch{ + pixel_x = 26; + pixel_y = -26 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"bSL" = ( +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"bSM" = ( +/obj/item/device/radio/intercom{ + pixel_y = -26 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/captain) +"bSN" = ( +/obj/structure/displaycase/captain{ + req_access = null; + req_access_txt = "20" + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/captain) +"bSO" = ( +/obj/structure/toilet{ + dir = 4 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/effect/landmark/start{ + name = "Captain" + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bSP" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/shower{ + pixel_y = 16 + }, +/obj/structure/curtain, +/obj/machinery/door/window/brigdoor/southleft{ + name = "Shower" + }, +/obj/item/weapon/soap/deluxe, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bSQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Central Hallway - Security Hallway"; + dir = 4; + name = "hallway camera" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"bSR" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/landmark{ + name = "lightsout" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hall13"; + location = "hall12" + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/central) +"bSS" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hall11"; + location = "hall10" + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/central) +"bST" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/glass{ + name = "Starboard Primary Hallway" + }, +/turf/open/floor/plasteel/warning/side, +/area/hallway/primary/starboard) +"bSU" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/starboard) +"bSV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/starboard) +"bSW" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/starboard) +"bSX" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warning/side, +/area/hallway/primary/starboard) +"bSY" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/starboard) +"bSZ" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/starboard) +"bTa" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/starboard) +"bTb" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/starboard) +"bTc" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/starboard) +"bTd" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/starboard) +"bTe" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning/side, +/area/hallway/primary/starboard) +"bTf" = ( +/obj/item/device/radio/beacon, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hall12"; + location = "hall11" + }, +/mob/living/simple_animal/bot/secbot/beepsky{ + desc = "It's Officer Beepsky! Powered by a potato and a shot of whiskey."; + name = "Officer Beepsky" + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/starboard) +"bTg" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 1; + icon_state = "pipe-j1s"; + name = "Security Junction"; + sortType = 7; + tag = "icon-pipe-j1s (NORTH)" + }, +/turf/open/floor/plasteel/red/corner, +/area/hallway/primary/starboard) +"bTh" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/glass_security{ + name = "Brig"; + req_access_txt = "63" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/security/brig) +"bTi" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/security/brig) +"bTj" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "brigfront"; + name = "Brig Blast door" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/security/brig) +"bTk" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"bTl" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral, +/area/security/brig) +"bTm" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j2"; + dir = 2 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 4 + }, +/area/security/brig) +"bTn" = ( +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/warden) +"bTo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/security/warden) +"bTp" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/neutral, +/area/security/warden) +"bTq" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/warden) +"bTr" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/security{ + name = "Armoury"; + req_access_txt = "3" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/ai_monitored/security/armory) +"bTs" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/ai_monitored/security/armory) +"bTt" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 4 + }, +/area/ai_monitored/security/armory) +"bTu" = ( +/obj/structure/rack, +/obj/item/weapon/gun/energy/e_gun{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/gun/energy/e_gun, +/obj/item/weapon/gun/energy/e_gun{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/bot, +/area/ai_monitored/security/armory) +"bTv" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/ai_monitored/security/armory) +"bTw" = ( +/obj/structure/rack, +/obj/item/weapon/gun/energy/ionrifle, +/obj/item/clothing/suit/armor/laserproof, +/obj/item/weapon/gun/energy/temperature/security, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/security/armory) +"bTx" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/door/window/southright, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"bTy" = ( +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"bTz" = ( +/obj/structure/sign/nosmoking_2, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/aisat_interior) +"bTA" = ( +/obj/structure/showcase{ + density = 0; + desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; + dir = 4; + icon = 'icons/mob/robots.dmi'; + icon_state = "robot_old"; + name = "Cyborg Statue"; + pixel_x = -9; + pixel_y = 2 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"bTB" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"bTC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"bTD" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/firealarm{ + dir = 4; + icon_state = "fire0"; + pixel_x = 24; + pixel_y = 0; + tag = "icon-fire0 (EAST)" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"bTE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/aisat_interior) +"bTF" = ( +/obj/structure/showcase{ + density = 0; + desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; + dir = 4; + icon = 'icons/mob/robots.dmi'; + icon_state = "robot_old"; + name = "Cyborg Statue"; + pixel_x = -9; + pixel_y = 2 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"bTG" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/grimy, +/area/ai_monitored/turret_protected/aisat_interior) +"bTH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/grimy, +/area/ai_monitored/turret_protected/aisat_interior) +"bTI" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/ai_monitored/turret_protected/aisat_interior) +"bTJ" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/grimy, +/area/ai_monitored/turret_protected/aisat_interior) +"bTK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/ai_monitored/turret_protected/aisat_interior) +"bTL" = ( +/obj/structure/showcase{ + density = 0; + desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; + dir = 8; + icon = 'icons/mob/robots.dmi'; + icon_state = "robot_old"; + name = "Cyborg Statue"; + pixel_x = 9; + pixel_y = 2 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"bTM" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"bTN" = ( +/obj/structure/window/reinforced, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"bTO" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/obj/machinery/door/window/southleft, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"bTP" = ( +/obj/structure/window/reinforced, +/obj/structure/cable/white, +/obj/machinery/power/apc{ + dir = 2; + name = "AI Satellite Exterior APC"; + pixel_y = -26 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"bTQ" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/structure/transit_tube/curved/flipped{ + tag = "icon-curved1 (NORTH)"; + icon_state = "curved1"; + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"bTR" = ( +/obj/structure/lattice, +/obj/structure/transit_tube/diagonal, +/turf/open/space, +/area/space) +"bTS" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/transit_tube/curved{ + tag = "icon-curved0 (EAST)"; + icon_state = "curved0"; + dir = 4 + }, +/obj/structure/sign/securearea{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/break_room{ + name = "Transit Tube" + }) +"bTT" = ( +/obj/structure/transit_tube/horizontal, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/break_room{ + name = "Transit Tube" + }) +"bTU" = ( +/obj/machinery/ai_status_display{ + pixel_y = -32 + }, +/obj/structure/transit_tube/station/reverse/flipped, +/obj/structure/transit_tube_pod{ + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/break_room{ + name = "Transit Tube" + }) +"bTV" = ( +/obj/machinery/newscaster{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/break_room{ + name = "Transit Tube" + }) +"bTW" = ( +/obj/structure/table/reinforced, +/obj/item/stack/packageWrap, +/obj/item/weapon/hand_labeler, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/chief) +"bTX" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/yellow, +/obj/item/weapon/cartridge/atmos, +/obj/item/weapon/cartridge/atmos, +/obj/item/weapon/cartridge/atmos, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/chief) +"bTY" = ( +/obj/structure/rack, +/obj/item/weapon/storage/secure/briefcase, +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/chief) +"bTZ" = ( +/obj/structure/cable/white, +/obj/machinery/power/apc{ + dir = 2; + name = "Chief Engineer's APC"; + pixel_y = -26 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/chief) +"bUa" = ( +/obj/machinery/photocopier, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/chief) +"bUb" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/light_switch{ + pixel_x = 26; + pixel_y = -26 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/chief) +"bUc" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "ceprivacy"; + name = "Chief's Privacy Shutters" + }, +/turf/open/floor/plating, +/area/crew_quarters/chief) +"bUd" = ( +/obj/structure/cable/white, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "ceprivacy"; + name = "Chief's Privacy Shutters" + }, +/turf/open/floor/plating, +/area/crew_quarters/chief) +"bUe" = ( +/obj/structure/closet/toolcloset, +/obj/machinery/light/small, +/obj/machinery/airalarm{ + dir = 4; + locked = 0; + pixel_x = -23; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/camera{ + c_tag = "Engineering - Engine Foyer"; + dir = 1; + name = "engineering camera" + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/engine/engineering) +"bUf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/delivery, +/area/engine/engineering) +"bUg" = ( +/obj/structure/closet/radiation, +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/engine/engineering) +"bUh" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/engine/engineering) +"bUi" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/light_switch{ + pixel_x = -26; + pixel_y = -26 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -38; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/security/checkpoint/engineering) +"bUj" = ( +/obj/machinery/computer/station_alert, +/obj/machinery/ai_status_display{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/red/side, +/area/security/checkpoint/engineering) +"bUk" = ( +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/obj/machinery/light, +/obj/machinery/computer/security, +/turf/open/floor/plasteel/red/side, +/area/security/checkpoint/engineering) +"bUl" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/computer/secure_data, +/turf/open/floor/plasteel/red/side, +/area/security/checkpoint/engineering) +"bUm" = ( +/obj/structure/table/reinforced, +/obj/structure/reagent_dispensers/peppertank{ + pixel_y = -32 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 26; + pixel_y = -32 + }, +/obj/machinery/status_display{ + pixel_x = 32 + }, +/obj/machinery/recharger, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/checkpoint/engineering) +"bUn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 8 + }, +/area/hallway/primary/port) +"bUo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/port) +"bUp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/yellow/corner, +/area/hallway/primary/port) +"bUq" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/hallway/primary/port) +"bUr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/primary/port) +"bUs" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/primary/port) +"bUt" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/primary/port) +"bUu" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/machinery/light, +/obj/structure/extinguisher_cabinet{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/primary/port) +"bUv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warning/side, +/area/hallway/primary/port) +"bUw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light, +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 0; + pixel_y = -26 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/primary/port) +"bUx" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/glass{ + name = "Port Primary Hallway" + }, +/turf/open/floor/plasteel/warning/side, +/area/hallway/primary/port) +"bUy" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"bUz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/blue/corner, +/area/hallway/primary/central) +"bUA" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hopline"; + name = "Queue Shutters" + }, +/turf/open/floor/plasteel/loadingarea{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/hallway/primary/central) +"bUB" = ( +/obj/machinery/flasher{ + id = "hopflash"; + pixel_y = 58 + }, +/turf/open/floor/plasteel/delivery, +/area/hallway/primary/central) +"bUC" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/blue, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "hopblast"; + name = "HoP Blast door" + }, +/obj/machinery/door/window/brigdoor/eastleft{ + name = "Access Desk"; + req_access_txt = "57" + }, +/obj/machinery/door/window/westright{ + name = "Access Queue" + }, +/turf/open/floor/plasteel/warning/side, +/area/crew_quarters/heads) +"bUD" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/effect/landmark/start{ + name = "Head of Personnel" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/heads) +"bUE" = ( +/turf/open/floor/wood, +/area/crew_quarters/heads) +"bUF" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads) +"bUG" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads) +"bUH" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads) +"bUI" = ( +/obj/machinery/vending/cart, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = 32 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"bUJ" = ( +/obj/machinery/telecomms/server/presets/medical, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 9; + initial_gas_mix = "n2=100;TEMP=80"; + tag = "icon-whiteblue (NORTHWEST)" + }, +/area/tcommsat/server) +"bUK" = ( +/obj/machinery/telecomms/server/presets/science, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 5; + initial_gas_mix = "n2=100;TEMP=80"; + tag = "icon-whitehall (WEST)" + }, +/area/tcommsat/server) +"bUL" = ( +/turf/open/floor/plasteel/vault, +/area/tcommsat/server) +"bUM" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/command{ + cyclelinkeddir = 1; + name = "Telecoms Server Room"; + req_access = null; + req_access_txt = "61" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/tcommsat/server) +"bUN" = ( +/obj/machinery/telecomms/server/presets/command, +/turf/open/floor/plasteel/darkblue/side{ + dir = 9; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bUO" = ( +/obj/machinery/telecomms/server/presets/security, +/turf/open/floor/plasteel/darkred/side{ + dir = 5; + initial_gas_mix = "n2=100;TEMP=80"; + tag = "SERVER" + }, +/area/tcommsat/server) +"bUP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bUQ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Captain's Quarters"; + req_access = null; + req_access_txt = "20" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bUR" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall/r_wall, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bUS" = ( +/turf/open/floor/plasteel/white, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bUT" = ( +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bUU" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/central) +"bUV" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/glass{ + name = "Starboard Primary Hallway" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/hallway/primary/starboard) +"bUW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/starboard) +"bUX" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/starboard) +"bUY" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/starboard) +"bUZ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/light, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/starboard) +"bVa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warning/side, +/area/hallway/primary/starboard) +"bVb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/starboard) +"bVc" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/starboard) +"bVd" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/light, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/starboard) +"bVe" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/junction{ + dir = 4; + icon_state = "pipe-j2" + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/starboard) +"bVf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner, +/area/hallway/primary/starboard) +"bVg" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + 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/red/corner, +/area/hallway/primary/starboard) +"bVh" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner, +/area/hallway/primary/starboard) +"bVi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Security Hallway - Center"; + dir = 1; + name = "hallway camera" + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/starboard) +"bVj" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/hallway/primary/starboard) +"bVk" = ( +/obj/structure/sign/poster{ + icon_state = "poster4_legit"; + pixel_x = -32; + pixel_y = -32; + tag = "icon-poster4_legit" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/red/corner{ + dir = 8 + }, +/area/hallway/primary/starboard) +"bVl" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/bot, +/area/hallway/primary/starboard) +"bVm" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/red/corner, +/area/hallway/primary/starboard) +"bVn" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "brigwindows"; + name = "Brig Front Blast door" + }, +/turf/open/floor/plating, +/area/security/brig) +"bVo" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/security/brig) +"bVp" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "brigfront"; + name = "Brig Blast door" + }, +/turf/open/floor/plasteel/delivery, +/area/security/brig) +"bVq" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/brig) +"bVr" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/neutral, +/area/security/brig) +"bVs" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/security/brig) +"bVt" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/door/airlock/glass_security{ + name = "Warden's Office"; + req_access_txt = "3" + }, +/turf/open/floor/plasteel, +/area/security/warden) +"bVu" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel, +/area/security/warden) +"bVv" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/button/door{ + id = "brigwindows"; + name = "Cell Window Control"; + pixel_x = -32; + pixel_y = -26; + req_access_txt = "63" + }, +/obj/machinery/button/door{ + id = "brigfront"; + name = "Brig Access Control"; + pixel_x = -26; + pixel_y = -36; + req_access_txt = "63" + }, +/obj/machinery/button/door{ + id = "brigprison"; + name = "Prison Lockdown"; + pixel_x = -38; + pixel_y = -36; + req_access_txt = "63" + }, +/obj/effect/landmark/start{ + name = "Warden" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/security/warden) +"bVw" = ( +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/warden) +"bVx" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/security{ + name = "Armoury"; + req_access_txt = "3" + }, +/turf/open/floor/plasteel/warning/side, +/area/ai_monitored/security/armory) +"bVy" = ( +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"bVz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"bVA" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/ai_monitored/security/armory) +"bVB" = ( +/obj/structure/closet/secure_closet/lethalshots, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/security/armory) +"bVC" = ( +/obj/structure/table/reinforced, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/stack/sheet/mineral/plasma{ + amount = 20; + layer = 3.1 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/machinery/power/apc{ + dir = 2; + name = "MiniSat APC"; + pixel_x = 0; + pixel_y = -27 + }, +/obj/structure/cable/white, +/turf/open/floor/plasteel/darkwarning{ + dir = 1 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"bVD" = ( +/obj/machinery/recharge_station, +/obj/machinery/ai_status_display{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/darkwarning{ + dir = 1 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"bVE" = ( +/obj/machinery/computer/monitor, +/obj/machinery/light, +/obj/item/device/radio/intercom{ + broadcasting = 1; + frequency = 1447; + listening = 0; + name = "AI Intercom"; + pixel_x = 0; + pixel_y = -26 + }, +/turf/open/floor/plasteel/darkwarning{ + dir = 1 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"bVF" = ( +/obj/machinery/recharge_station, +/obj/machinery/status_display{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/darkwarning{ + dir = 1 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"bVG" = ( +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/storage/toolbox/electrical, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/darkwarning{ + dir = 1 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"bVH" = ( +/obj/structure/cable/white, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/machinery/light, +/turf/open/floor/plasteel/vault, +/area/ai_monitored/turret_protected/aisat_interior) +"bVI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault, +/area/ai_monitored/turret_protected/aisat_interior) +"bVJ" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"bVK" = ( +/obj/machinery/turretid{ + control_area = "AI Upload Chamber"; + icon_state = "control_stun"; + name = "AI Upload turret control"; + pixel_x = 0; + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault, +/area/ai_monitored/turret_protected/aisat_interior) +"bVL" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/light, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/turf/open/floor/plasteel/vault, +/area/ai_monitored/turret_protected/aisat_interior) +"bVM" = ( +/obj/machinery/firealarm{ + dir = 4; + icon_state = "fire0"; + pixel_x = 24; + pixel_y = 0; + tag = "icon-fire0 (EAST)" + }, +/obj/machinery/porta_turret/ai, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"bVN" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin, +/obj/machinery/status_display{ + pixel_y = -32 + }, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"bVO" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/clipboard, +/obj/item/toy/figure/borg, +/obj/machinery/light, +/obj/item/device/radio/intercom{ + broadcasting = 1; + frequency = 1447; + listening = 0; + name = "AI Intercom"; + pixel_x = 0; + pixel_y = -26 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"bVP" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/blue{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/folder/yellow, +/obj/machinery/ai_status_display{ + pixel_y = -32 + }, +/obj/item/device/aicard, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"bVQ" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/structure/sign/poster{ + icon_state = "poster8_legit"; + pixel_y = -32; + tag = "icon-poster8_legit" + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"bVR" = ( +/obj/structure/lattice, +/obj/structure/transit_tube/curved{ + tag = "icon-curved0 (EAST)"; + icon_state = "curved0"; + dir = 4 + }, +/turf/open/space, +/area/space) +"bVS" = ( +/obj/structure/lattice, +/obj/structure/transit_tube/curved/flipped{ + tag = "icon-curved1 (WEST)"; + icon_state = "curved1"; + dir = 8 + }, +/turf/open/space, +/area/space) +"bVT" = ( +/turf/closed/wall/r_wall, +/area/engine/engineering) +"bVU" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/firstaid/fire, +/turf/open/floor/plasteel/delivery, +/area/engine/engineering) +"bVV" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/delivery, +/area/engine/engineering) +"bVW" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/turf/open/floor/plasteel/delivery, +/area/engine/engineering) +"bVX" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/fancy/donut_box, +/turf/open/floor/plasteel/delivery, +/area/engine/engineering) +"bVY" = ( +/obj/structure/sign/securearea, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/engine/engineering) +"bVZ" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/engineering{ + name = "Engineering Access"; + req_access_txt = "10" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/engine/engineering) +"bWa" = ( +/obj/structure/sign/radiation, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/engine/engineering) +"bWb" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + name = "Security Post - Engineering"; + req_access_txt = "63" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/security/checkpoint/engineering) +"bWc" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/checkpoint/engineering) +"bWd" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 8 + }, +/area/hallway/primary/port) +"bWe" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/yellow/side, +/area/hallway/primary/port) +"bWf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/yellow/corner, +/area/hallway/primary/port) +"bWg" = ( +/turf/closed/wall, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"bWh" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"bWi" = ( +/turf/closed/wall, +/area/library) +"bWj" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/library) +"bWk" = ( +/obj/machinery/door/airlock/glass{ + name = "Library Access" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/library) +"bWl" = ( +/obj/machinery/door/airlock/glass{ + name = "Library Access" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/library) +"bWm" = ( +/obj/structure/sign/directions/evac{ + pixel_y = -8 + }, +/obj/structure/sign/directions/medical{ + dir = 2 + }, +/obj/structure/sign/directions/security{ + dir = 2; + pixel_y = 8 + }, +/turf/closed/wall, +/area/library) +"bWn" = ( +/turf/open/floor/plasteel/bot, +/area/hallway/primary/central) +"bWo" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "hopblast"; + name = "HoP Blast door" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads) +"bWp" = ( +/obj/machinery/computer/card, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/crew_quarters/heads) +"bWq" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"bWr" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads) +"bWs" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads) +"bWt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads) +"bWu" = ( +/obj/machinery/pdapainter, +/obj/machinery/status_display{ + pixel_x = 32 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"bWv" = ( +/obj/machinery/telecomms/bus/preset_one, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 10; + initial_gas_mix = "n2=100;TEMP=80"; + tag = "icon-whiteblue (SOUTHWEST)" + }, +/area/tcommsat/server) +"bWw" = ( +/obj/machinery/telecomms/processor/preset_one, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 6; + initial_gas_mix = "n2=100;TEMP=80"; + tag = "icon-whitepurple (SOUTHEAST)" + }, +/area/tcommsat/server) +"bWx" = ( +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + dir = 5 + }, +/area/tcommsat/server) +"bWy" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + dir = 5 + }, +/area/tcommsat/server) +"bWz" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + dir = 5 + }, +/area/tcommsat/server) +"bWA" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + dir = 5 + }, +/area/tcommsat/server) +"bWB" = ( +/obj/machinery/telecomms/processor/preset_three, +/turf/open/floor/plasteel/darkblue/side{ + dir = 10; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bWC" = ( +/obj/machinery/telecomms/bus/preset_three, +/turf/open/floor/plasteel/darkred/side{ + dir = 6; + initial_gas_mix = "n2=100;TEMP=80"; + tag = "SERVER" + }, +/area/tcommsat/server) +"bWD" = ( +/obj/machinery/photocopier, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bWE" = ( +/obj/machinery/light_switch{ + pixel_x = 26; + pixel_y = 26 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bWF" = ( +/turf/open/floor/wood, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bWG" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/suit_storage_unit/captain, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bWH" = ( +/obj/structure/closet/secure_closet/captains, +/obj/item/clothing/suit/armor/vest/capcarapace, +/obj/item/clothing/head/caphat, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bWI" = ( +/turf/closed/wall, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bWJ" = ( +/obj/machinery/door/airlock/silver{ + name = "Bathroom" + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bWK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bWL" = ( +/obj/structure/sign/directions/evac{ + pixel_y = -8 + }, +/obj/structure/sign/directions/medical{ + dir = 2 + }, +/obj/structure/sign/directions/security{ + dir = 4; + pixel_y = 8 + }, +/turf/closed/wall, +/area/crew_quarters/courtroom) +"bWM" = ( +/turf/closed/wall, +/area/crew_quarters/courtroom) +"bWN" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/tinted/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/crew_quarters/courtroom) +"bWO" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Courtroom" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/courtroom) +"bWP" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/tinted/fulltile, +/turf/open/floor/plating, +/area/crew_quarters/courtroom) +"bWQ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + name = "Courtroom"; + req_access_txt = "42" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/courtroom) +"bWR" = ( +/turf/closed/wall, +/area/lawoffice) +"bWS" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/lawoffice) +"bWT" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock{ + name = "Law Office"; + req_access_txt = "38" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/lawoffice) +"bWU" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/lawoffice) +"bWV" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/red/corner{ + dir = 8 + }, +/area/hallway/primary/starboard) +"bWW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side, +/area/hallway/primary/starboard) +"bWX" = ( +/obj/machinery/flasher{ + id = "brigflashdoor"; + pixel_x = 26; + pixel_y = -26 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/red/corner, +/area/hallway/primary/starboard) +"bWY" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_security{ + name = "Brig"; + req_access_txt = "63" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/security/brig) +"bWZ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/sign/directions/engineering{ + desc = "A sign that shows there are doors here. There are doors everywhere!"; + icon_state = "doors"; + name = "WARNING: BLAST DOORS"; + pixel_x = 0; + pixel_y = -32; + tag = "icon-doors" + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/security/brig) +"bXa" = ( +/obj/machinery/door/poddoor/preopen{ + id = "brigfront"; + name = "Brig Blast door" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/security/brig) +"bXb" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"bXc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/red/corner, +/area/security/brig) +"bXd" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/warden) +"bXe" = ( +/obj/structure/table/reinforced, +/obj/machinery/light_switch{ + pixel_x = -38; + pixel_y = -26 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_x = -26; + pixel_y = -26 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/red/side, +/area/security/warden) +"bXf" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side, +/area/security/warden) +"bXg" = ( +/obj/structure/closet/secure_closet/warden, +/obj/item/clothing/under/rank/warden/grey, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/warden) +"bXh" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ai_monitored/security/armory) +"bXi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side, +/area/ai_monitored/security/armory) +"bXj" = ( +/obj/machinery/button/door{ + id = "armouryaccess"; + name = "Armoury Access"; + pixel_x = -26; + pixel_y = -26; + req_access_txt = "3" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side, +/area/ai_monitored/security/armory) +"bXk" = ( +/obj/structure/chair/office/dark, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 8 + }, +/area/ai_monitored/security/armory) +"bXl" = ( +/obj/structure/cable/white, +/obj/machinery/power/apc{ + dir = 2; + name = "Armoury APC"; + pixel_y = -26 + }, +/obj/machinery/camera{ + c_tag = "Armory - Interior"; + dir = 1; + name = "security camera" + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/ai_monitored/security/armory) +"bXm" = ( +/obj/vehicle/secway, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/security/armory) +"bXn" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/highsecurity{ + name = "MiniSat Upload"; + req_access_txt = "16" + }, +/obj/machinery/flasher{ + id = "AI"; + pixel_x = -26 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"bXo" = ( +/obj/structure/grille, +/turf/open/floor/plating/warnplate, +/area/engine/engineering) +"bXp" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/grille, +/turf/open/floor/plating/warnplate, +/area/engine/engineering) +"bXq" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/grille, +/turf/open/floor/plating/warnplate, +/area/engine/engineering) +"bXr" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/grille, +/turf/open/floor/plating/warnplate/corner{ + dir = 1 + }, +/area/engine/engineering) +"bXs" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/grille, +/turf/open/floor/plating/warnplate/corner, +/area/engine/engineering) +"bXt" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/grille, +/turf/open/floor/plating/warnplate, +/area/engine/engineering) +"bXu" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/grille, +/turf/open/floor/plating/warnplate, +/area/engine/engineering) +"bXv" = ( +/obj/structure/closet/emcloset{ + anchored = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/bot, +/area/engine/engineering) +"bXw" = ( +/obj/structure/sign/vacuum, +/turf/closed/wall, +/area/engine/engineering) +"bXx" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/engine/engineering) +"bXy" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/engine/engineering) +"bXz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/engine/engineering) +"bXA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/engine/engineering) +"bXB" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light_switch{ + pixel_y = 26 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Engineering - Fore"; + dir = 2; + name = "engineering camera" + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/engine/engineering) +"bXC" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/engine/engineering) +"bXD" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/sortjunction{ + name = "Engineering Junction"; + sortType = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/engine/engineering) +"bXE" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/engine/engineering) +"bXF" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/engine/engineering) +"bXG" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/engine/engineering) +"bXH" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/engine/engineering) +"bXI" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/power/smes/engineering{ + charge = 2e+006 + }, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/engine/engineering) +"bXJ" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/machinery/power/smes/engineering{ + charge = 2e+006 + }, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/engine/engineering) +"bXK" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"bXL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/firecloset, +/turf/open/floor/plasteel/neutral/side{ + dir = 9 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"bXM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"bXN" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/obj/machinery/power/apc{ + dir = 4; + name = "Port Maintenance APC"; + pixel_x = 26; + pixel_y = 0 + }, +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"bXO" = ( +/obj/structure/table/wood, +/obj/machinery/computer/libraryconsole, +/obj/machinery/light_switch{ + pixel_y = 26 + }, +/turf/open/floor/plasteel/black, +/area/library) +"bXP" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/library) +"bXQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/grimy, +/area/library) +"bXR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/grimy, +/area/library) +"bXS" = ( +/turf/open/floor/plasteel/black, +/area/library) +"bXT" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/library) +"bXU" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = -32 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_y = 26 + }, +/turf/open/floor/plasteel/black, +/area/library) +"bXV" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/table/wood, +/obj/item/weapon/folder, +/obj/item/weapon/pen, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/library) +"bXW" = ( +/obj/machinery/computer/libraryconsole, +/obj/structure/table/wood, +/turf/open/floor/plasteel/black, +/area/library) +"bXX" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = -26; + pixel_y = 0 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"bXY" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/central) +"bXZ" = ( +/obj/effect/landmark{ + name = "lightsout" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/blue/corner, +/area/hallway/primary/central) +"bYa" = ( +/obj/machinery/status_display, +/turf/closed/wall/r_wall, +/area/crew_quarters/heads) +"bYb" = ( +/obj/machinery/computer/secure_data, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/crew_quarters/heads) +"bYc" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads) +"bYd" = ( +/obj/structure/table/wood, +/obj/machinery/light, +/obj/item/stack/packageWrap, +/obj/item/weapon/hand_labeler, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"bYe" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/camera{ + c_tag = "Telecomms - Chamber Port"; + dir = 4; + name = "telecomms camera"; + network = list("SS13","tcomm") + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/tcommsat/server) +"bYf" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/vault{ + dir = 10 + }, +/area/tcommsat/server) +"bYg" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + external_pressure_bound = 140; + name = "server vent"; + on = 1; + pressure_checks = 0 + }, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + dir = 5 + }, +/area/tcommsat/server) +"bYh" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + dir = 5 + }, +/area/tcommsat/server) +"bYi" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + dir = 5 + }, +/area/tcommsat/server) +"bYj" = ( +/obj/structure/table/glass, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/item/weapon/folder/yellow, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/tcommsat/server) +"bYk" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + dir = 5 + }, +/area/tcommsat/server) +"bYl" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + external_pressure_bound = 120; + initialize_directions = 1; + internal_pressure_bound = 4000; + name = "server vent"; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + dir = 5 + }, +/area/tcommsat/server) +"bYm" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/vault{ + dir = 6 + }, +/area/tcommsat/server) +"bYn" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/tcommsat/server) +"bYo" = ( +/obj/structure/table/wood, +/obj/item/weapon/pinpointer, +/obj/item/weapon/disk/nuclear, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = -26 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bYp" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bYq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bYr" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bYs" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp/green, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/weapon/card/id/captains_spare, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bYt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bYu" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bYv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/central) +"bYw" = ( +/obj/machinery/vending/snack, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/vault, +/area/crew_quarters/courtroom) +"bYx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault, +/area/crew_quarters/courtroom) +"bYy" = ( +/turf/open/floor/plasteel/vault, +/area/crew_quarters/courtroom) +"bYz" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plasteel/vault, +/area/crew_quarters/courtroom) +"bYA" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/structure/sign/poster{ + icon_state = "poster22_legit"; + pixel_y = 32; + tag = "icon-poster22_legit" + }, +/obj/machinery/camera{ + c_tag = "Courtroom - Fore"; + dir = 2; + name = "security camera" + }, +/turf/open/floor/plasteel/vault, +/area/crew_quarters/courtroom) +"bYB" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/crew_quarters/courtroom) +"bYC" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/crew_quarters/courtroom) +"bYD" = ( +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/crew_quarters/courtroom) +"bYE" = ( +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/crew_quarters/courtroom) +"bYF" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/reagent_dispensers/peppertank{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/crew_quarters/courtroom) +"bYG" = ( +/obj/machinery/light_switch{ + pixel_x = 26; + pixel_y = 26 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/crew_quarters/courtroom) +"bYH" = ( +/obj/structure/closet/secure_closet/courtroom, +/turf/open/floor/plasteel/neutral/side{ + dir = 5 + }, +/area/crew_quarters/courtroom) +"bYI" = ( +/obj/structure/table/wood, +/obj/item/weapon/book/manual/wiki/security_space_law, +/obj/item/weapon/book/manual/wiki/security_space_law, +/obj/item/device/taperecorder{ + pixel_x = 3 + }, +/obj/item/clothing/glasses/sunglasses, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/turf/open/floor/wood, +/area/lawoffice) +"bYJ" = ( +/obj/structure/table/wood, +/obj/item/weapon/clipboard, +/obj/item/toy/figure/lawyer, +/turf/open/floor/wood, +/area/lawoffice) +"bYK" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/lawoffice) +"bYL" = ( +/obj/machinery/light_switch{ + pixel_x = 26; + pixel_y = 26 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/lawoffice) +"bYM" = ( +/obj/structure/closet/lawcloset, +/obj/machinery/firealarm{ + dir = 4; + icon_state = "fire0"; + pixel_x = 24; + pixel_y = 0; + tag = "icon-fire0 (EAST)" + }, +/turf/open/floor/wood, +/area/lawoffice) +"bYN" = ( +/turf/closed/wall/r_wall, +/area/lawoffice) +"bYO" = ( +/obj/machinery/door/firedoor, +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "brigwindows"; + name = "Brig Front Blast door" + }, +/obj/item/weapon/folder/red, +/obj/item/weapon/pen, +/obj/machinery/door/window/brigdoor/southright{ + name = "Security Desk"; + req_access_txt = "63" + }, +/obj/machinery/door/window/northright{ + name = "Security Desk" + }, +/turf/open/floor/plasteel/red, +/area/security/brig) +"bYP" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 8 + }, +/area/security/brig) +"bYQ" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/security/brig) +"bYR" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 26; + pixel_y = -7 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/obj/machinery/camera{ + c_tag = "Security - Brig Aft"; + dir = 8; + name = "security camera" + }, +/turf/open/floor/plasteel/red/corner{ + dir = 4 + }, +/area/security/brig) +"bYS" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/door/window/brigdoor/northright{ + name = "Warden's Desk"; + req_access_txt = "3" + }, +/obj/machinery/door/window/southright{ + name = "Warden's Desk" + }, +/obj/item/weapon/folder/red, +/obj/item/weapon/pen, +/obj/item/weapon/poster/legit{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/poster/legit, +/turf/open/floor/plasteel/delivery, +/area/security/warden) +"bYT" = ( +/obj/machinery/door/poddoor{ + id = "armouryaccess"; + name = "Armoury Access" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/ai_monitored/security/armory) +"bYU" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/window/brigdoor/northright{ + name = "Armoury Desk"; + req_access_txt = "3" + }, +/obj/item/weapon/folder/red, +/obj/item/weapon/pen, +/obj/machinery/door/window/southright{ + name = "Armoury Desk" + }, +/turf/open/floor/plasteel/delivery, +/area/ai_monitored/security/armory) +"bYV" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai_upload) +"bYW" = ( +/obj/machinery/ai_status_display, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai_upload) +"bYX" = ( +/obj/machinery/porta_turret/ai, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/ai_upload) +"bYY" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/vault, +/area/ai_monitored/turret_protected/ai_upload) +"bYZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault, +/area/ai_monitored/turret_protected/ai_upload) +"bZa" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/ai_upload) +"bZb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/camera/motion{ + c_tag = "AI - Upload"; + name = "motion-sensitive ai camera"; + network = list("Sat") + }, +/turf/open/floor/plasteel/vault, +/area/ai_monitored/turret_protected/ai_upload) +"bZc" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/vault, +/area/ai_monitored/turret_protected/ai_upload) +"bZd" = ( +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/obj/machinery/porta_turret/ai, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/ai_upload) +"bZe" = ( +/obj/structure/grille, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/space) +"bZf" = ( +/turf/open/floor/plating, +/area/engine/engineering) +"bZg" = ( +/obj/structure/cable/white, +/obj/machinery/power/emitter{ + anchored = 1; + state = 2 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/engine/engineering) +"bZh" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/grille, +/turf/open/floor/plating/warnplate{ + dir = 10 + }, +/area/engine/engineering) +"bZi" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/grille, +/turf/open/floor/plating/warnplate{ + dir = 6 + }, +/area/engine/engineering) +"bZj" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/engine/engineering) +"bZk" = ( +/obj/machinery/door/airlock/external{ + name = "External Containment Access"; + req_access_txt = "10; 13" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning/side, +/area/engine/engineering) +"bZl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/fans/tiny, +/turf/open/floor/plasteel/delivery, +/area/engine/engineering) +"bZm" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/engineering) +"bZn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/neutral, +/area/engine/engineering) +"bZo" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/yellow, +/area/engine/engineering) +"bZp" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/neutral, +/area/engine/engineering) +"bZq" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/yellow, +/area/engine/engineering) +"bZr" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/yellow, +/area/engine/engineering) +"bZs" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral, +/area/engine/engineering) +"bZt" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/yellow, +/area/engine/engineering) +"bZu" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/engine/engineering) +"bZv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/engineering) +"bZw" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/door/airlock/glass_engineering{ + name = "Power Monitoring"; + req_access_txt = "32" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/warning/side, +/area/engine/engineering) +"bZx" = ( +/obj/machinery/power/terminal{ + icon_state = "term"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/engine/engineering) +"bZy" = ( +/obj/machinery/power/terminal{ + icon_state = "term"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/engine/engineering) +"bZz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light_switch{ + pixel_x = 26; + pixel_y = 32 + }, +/obj/machinery/power/terminal{ + icon_state = "term"; + dir = 1 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/engine/engineering) +"bZA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plasteel/neutral/side{ + dir = 9 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"bZB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"bZC" = ( +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"bZD" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"bZE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"bZF" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"bZG" = ( +/obj/structure/table/wood, +/obj/item/weapon/folder, +/obj/item/weapon/pen, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/library) +"bZH" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/effect/landmark/start{ + name = "Librarian" + }, +/turf/open/floor/plasteel/black, +/area/library) +"bZI" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/library) +"bZJ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/library) +"bZK" = ( +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/obj/machinery/newscaster{ + pixel_x = 32 + }, +/obj/machinery/camera{ + c_tag = "Library - Fore"; + dir = 8; + name = "library camera" + }, +/turf/open/floor/plasteel/black, +/area/library) +"bZL" = ( +/obj/machinery/photocopier, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/library) +"bZM" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/library) +"bZN" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/machinery/status_display{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/library) +"bZO" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/blue/corner, +/area/hallway/primary/central) +"bZP" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"bZQ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/bot, +/area/hallway/primary/central) +"bZR" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/heads) +"bZS" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads) +"bZT" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "HoP Office APC"; + pixel_x = 26; + pixel_y = 0 + }, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/camera{ + c_tag = "Bridge - Head of Personnel's Office"; + dir = 8; + name = "command camera" + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads) +"bZU" = ( +/turf/closed/wall, +/area/crew_quarters/heads) +"bZV" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Telecoms Server Room APC"; + pixel_x = -26; + pixel_y = 0 + }, +/obj/structure/cable/white, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/tcommsat/server) +"bZW" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/vault{ + dir = 10 + }, +/area/tcommsat/server) +"bZX" = ( +/obj/machinery/telecomms/broadcaster/preset_left, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bZY" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + dir = 5 + }, +/area/tcommsat/server) +"bZZ" = ( +/obj/machinery/message_server, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/circuit/gcircuit{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"caa" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + dir = 5 + }, +/area/tcommsat/server) +"cab" = ( +/obj/machinery/telecomms/hub/preset, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/tcommsat/server) +"cac" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + dir = 5 + }, +/area/tcommsat/server) +"cad" = ( +/obj/machinery/blackbox_recorder, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/circuit/gcircuit{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"cae" = ( +/obj/machinery/telecomms/broadcaster/preset_right, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"caf" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/power/terminal{ + tag = "icon-term (EAST)"; + icon_state = "term"; + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/turf/open/floor/plasteel/vault{ + dir = 6 + }, +/area/tcommsat/server) +"cag" = ( +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/obj/structure/cable/white, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/tcommsat/server) +"cah" = ( +/obj/structure/table/wood, +/obj/item/weapon/folder/blue, +/obj/item/weapon/pen/fourcolor, +/obj/machinery/status_display{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"cai" = ( +/obj/structure/chair/comfy/brown{ + color = "#c45c57"; + dir = 8; + icon_state = "comfychair" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/effect/landmark/start{ + name = "Captain" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"caj" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"cak" = ( +/obj/machinery/holopad, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/wood, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"cal" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"cam" = ( +/obj/machinery/door/window/brigdoor/westleft{ + name = "Captain's Bedroom"; + req_access_txt = "20" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"can" = ( +/turf/open/floor/carpet, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"cao" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/bed, +/obj/item/weapon/bedsheet/captain, +/obj/machinery/newscaster{ + pixel_x = 32 + }, +/obj/effect/landmark/start{ + name = "Captain" + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"cap" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_x = -2; + pixel_y = 5 + }, +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/courtroom) +"caq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/courtroom) +"car" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/courtroom) +"cas" = ( +/obj/structure/chair{ + dir = 2; + name = "Prosecution" + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/crew_quarters/courtroom) +"cat" = ( +/obj/structure/chair{ + dir = 2; + name = "Prosecution" + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/crew_quarters/courtroom) +"cau" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/courtroom) +"cav" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/courtroom) +"caw" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/courtroom) +"cax" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/crew_quarters/courtroom) +"cay" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/airlock{ + name = "Law Office"; + req_access_txt = "38" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/lawoffice) +"caz" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/lawoffice) +"caA" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/lawoffice) +"caB" = ( +/obj/machinery/holopad, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/grimy, +/area/lawoffice) +"caC" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/effect/landmark/start{ + name = "Lawyer" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/lawoffice) +"caD" = ( +/obj/structure/filingcabinet/employment, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/wood, +/area/lawoffice) +"caE" = ( +/obj/machinery/computer/security, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/brig) +"caF" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) +"caG" = ( +/obj/machinery/computer/secure_data, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/button/flasher{ + id = "gulagshuttleflasher"; + name = "Flash Control"; + pixel_x = 26; + pixel_y = 7; + req_access_txt = "63" + }, +/obj/machinery/button/door{ + id = "brigfront"; + name = "Brig Access Control"; + pixel_x = 26; + pixel_y = -7; + req_access_txt = "63" + }, +/obj/machinery/button/door{ + id = "brigwindows"; + name = "Cell Window Control"; + pixel_x = 38; + pixel_y = -7; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/brig) +"caH" = ( +/obj/structure/chair, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/brig) +"caI" = ( +/obj/structure/chair, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) +"caJ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/security/brig) +"caK" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/effect/landmark{ + name = "lightsout" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/security/brig) +"caL" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/glass_security{ + name = "Gear Room"; + req_access_txt = "63" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"caM" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/brig) +"caN" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) +"caO" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) +"caP" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + cell_type = 10000; + dir = 1; + name = "Brig APC"; + pixel_x = 0; + pixel_y = 28 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Security - Gear Room"; + dir = 2; + name = "security camera" + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) +"caQ" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_y = 26 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) +"caR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) +"caS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) +"caT" = ( +/obj/structure/closet/secure_closet/security/sec, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/brig) +"caU" = ( +/obj/structure/closet/secure_closet/security/sec, +/turf/open/floor/plasteel/red, +/area/security/brig) +"caV" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/brigdoor{ + dir = 4; + name = "Core Modules"; + req_access_txt = "20" + }, +/obj/item/weapon/aiModule/core/full/paladin{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/aiModule/core/full/asimov, +/obj/item/weapon/aiModule/core/full/corp{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/structure/sign/nanotrasen{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/ai_upload) +"caW" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/ai_upload) +"caX" = ( +/turf/open/floor/plasteel/circuit/gcircuit, +/area/ai_monitored/turret_protected/ai_upload) +"caY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/ai_monitored/turret_protected/ai_upload) +"caZ" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/ai_upload) +"cba" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/ai_monitored/turret_protected/ai_upload) +"cbb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/ai_monitored/turret_protected/ai_upload) +"cbc" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/brigdoor/westright{ + name = "Core Modules"; + req_access_txt = "20" + }, +/obj/item/weapon/aiModule/core/full/antimov{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/aiModule/supplied/oxygen, +/obj/item/weapon/aiModule/supplied/protectStation{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/structure/sign/electricshock{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/ai_upload) +"cbd" = ( +/turf/open/floor/plating/warnplate, +/area/engine/engineering) +"cbe" = ( +/obj/machinery/camera/emp_proof{ + c_tag = "Containment - Fore Starboard"; + dir = 8; + icon_state = "camera"; + network = list("Singularity"); + tag = "icon-camera (WEST)" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cbf" = ( +/obj/structure/sign/vacuum, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"cbg" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/status_display{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/engine/engineering) +"cbh" = ( +/turf/open/floor/plasteel/warning, +/area/engine/engineering) +"cbi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 1 + }, +/area/engine/engineering) +"cbj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/engine/engineering) +"cbk" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning/corner, +/area/engine/engineering) +"cbl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning, +/area/engine/engineering) +"cbm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning, +/area/engine/engineering) +"cbn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/engine/engineering) +"cbo" = ( +/obj/structure/cable/white, +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cbp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/engine/engineering) +"cbq" = ( +/obj/structure/chair/office/dark, +/obj/effect/landmark/start{ + name = "Station Engineer" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/warning, +/area/engine/engineering) +"cbr" = ( +/obj/structure/sign/electricshock{ + pixel_x = 32 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 26; + pixel_y = -26 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_Toxins = 0 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/engine/engineering) +"cbs" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cbt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cbu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cbv" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cbw" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cbx" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/structure/sign/kiddieplaque{ + desc = "A long list of rules to be followed when in the library, extolling the virtues of being quiet at all times and threatening those who would dare eat hot food inside."; + name = "Library Rules Sign"; + pixel_x = -32; + pixel_y = 0 + }, +/turf/open/floor/wood, +/area/library) +"cby" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/wood, +/area/library) +"cbz" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/library) +"cbA" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/wood, +/area/library) +"cbB" = ( +/obj/structure/sign/nosmoking_2, +/turf/closed/wall, +/area/library) +"cbC" = ( +/obj/machinery/door/morgue{ + name = "Private Study" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/library) +"cbD" = ( +/obj/structure/sign/kiddieplaque{ + desc = "A long list of rules to be followed when in the library, extolling the virtues of being quiet at all times and threatening those who would dare eat hot food inside."; + name = "Library Rules Sign"; + pixel_x = -32; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"cbE" = ( +/obj/structure/sign/electricshock, +/turf/closed/wall/r_wall, +/area/crew_quarters/heads) +"cbF" = ( +/obj/machinery/computer/cargo/request, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/crew_quarters/heads) +"cbG" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads) +"cbH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads) +"cbI" = ( +/obj/structure/table/wood, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/weapon/storage/lockbox/loyalty, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"cbJ" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/vault{ + dir = 10 + }, +/area/tcommsat/server) +"cbK" = ( +/turf/open/floor/plasteel/vault{ + dir = 10 + }, +/area/tcommsat/server) +"cbL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault, +/area/tcommsat/server) +"cbM" = ( +/obj/machinery/ntnet_relay, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/tcommsat/server) +"cbN" = ( +/turf/open/floor/plasteel/vault{ + dir = 6 + }, +/area/tcommsat/server) +"cbO" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/vault{ + dir = 6 + }, +/area/tcommsat/server) +"cbP" = ( +/obj/machinery/camera{ + c_tag = "Telecomms - Chamber Starboard"; + dir = 8; + name = "telecomms camera"; + network = list("SS13","tcomm") + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/tcommsat/server) +"cbQ" = ( +/obj/structure/table/wood, +/obj/item/device/radio/intercom{ + dir = 8; + freerange = 1; + name = "Captain's Intercom"; + pixel_x = -26 + }, +/obj/item/weapon/reagent_containers/food/drinks/flask/gold, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"cbR" = ( +/obj/structure/table/wood, +/obj/machinery/computer/security/wooden_tv, +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"cbS" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-18"; + layer = 4.1 + }, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/wood, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"cbT" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"cbU" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 0; + pixel_y = -26 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/obj/machinery/camera{ + c_tag = "Bridge - Captain's Quarters"; + dir = 1; + name = "command camera" + }, +/turf/open/floor/wood, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"cbV" = ( +/obj/structure/table/wood, +/obj/machinery/recharger, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/power/apc{ + cell_type = 10000; + dir = 2; + name = "Captain's Quarters APC"; + pixel_y = -24 + }, +/obj/structure/cable/white, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"cbW" = ( +/obj/structure/filingcabinet/security, +/turf/open/floor/carpet, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"cbX" = ( +/obj/structure/dresser, +/turf/open/floor/carpet, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"cbY" = ( +/obj/structure/table, +/obj/machinery/ai_status_display{ + pixel_x = -32 + }, +/obj/item/weapon/storage/box/donkpockets, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/courtroom) +"cbZ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/courtroom) +"cca" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/courtroom) +"ccb" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/courtroom) +"ccc" = ( +/obj/structure/table/wood, +/obj/item/weapon/folder/red, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/neutral/side{ + dir = 9 + }, +/area/crew_quarters/courtroom) +"ccd" = ( +/obj/structure/table/wood, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/crew_quarters/courtroom) +"cce" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/crew_quarters/courtroom) +"ccf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/crew_quarters/courtroom) +"ccg" = ( +/obj/structure/table/wood, +/obj/item/weapon/folder/blue, +/obj/item/weapon/pen, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/crew_quarters/courtroom) +"cch" = ( +/obj/structure/chair{ + dir = 8; + name = "Judge" + }, +/obj/machinery/newscaster{ + pixel_x = 32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/courtroom) +"cci" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/lawoffice) +"ccj" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/wood, +/area/lawoffice) +"cck" = ( +/obj/structure/table/wood, +/obj/item/weapon/folder/yellow, +/obj/item/clothing/glasses/sunglasses/big{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/clothing/glasses/sunglasses, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/lawoffice) +"ccl" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/lawoffice) +"ccm" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/grimy, +/area/lawoffice) +"ccn" = ( +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/wood, +/area/lawoffice) +"cco" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/table/reinforced, +/obj/machinery/newscaster/security_unit{ + pixel_x = -32 + }, +/obj/item/weapon/clipboard, +/obj/item/toy/figure/secofficer, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/brig) +"ccp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/neutral, +/area/security/brig) +"ccq" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/filingcabinet/chestdrawer, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/brig) +"ccr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/security/brig) +"ccs" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"cct" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/window/brigdoor/westright{ + name = "Holding Cell"; + req_access_txt = "63" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"ccu" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"ccv" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/neutral, +/area/security/brig) +"ccw" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/red/corner, +/area/security/brig) +"ccx" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/brig) +"ccy" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/restraints/handcuffs, +/obj/item/device/assembly/flash/handheld, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/brig) +"ccz" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -32; + pixel_y = -64 + }, +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/security/brig) +"ccA" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral, +/area/security/brig) +"ccB" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/turf/open/floor/plasteel/neutral, +/area/security/brig) +"ccC" = ( +/obj/machinery/holopad, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/bot, +/area/security/brig) +"ccD" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/security/brig) +"ccE" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/neutral, +/area/security/brig) +"ccF" = ( +/obj/machinery/newscaster/security_unit{ + pixel_x = 32; + pixel_y = -32 + }, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = 32; + pixel_y = 32 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/brig) +"ccG" = ( +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/turf/open/space, +/area/space) +"ccH" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "aiuploadwindow"; + name = "AI Upload Lockdown Door" + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai_upload) +"ccI" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/table/reinforced, +/obj/machinery/door/window/brigdoor/westright{ + dir = 4; + name = "Core Modules"; + req_access_txt = "20" + }, +/obj/structure/window/reinforced, +/obj/item/weapon/aiModule/core/freeformcore{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/aiModule/core/full/custom, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/ai_upload) +"ccJ" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/ai_upload) +"ccK" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/ai_monitored/turret_protected/ai_upload) +"ccL" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/ai_upload) +"ccM" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/ai_upload) +"ccN" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/ai_upload) +"ccO" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/ai_monitored/turret_protected/ai_upload) +"ccP" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/table/reinforced, +/obj/machinery/door/window/brigdoor{ + dir = 8; + name = "Core Modules"; + req_access_txt = "20" + }, +/obj/structure/window/reinforced, +/obj/item/weapon/aiModule/core/full/tyrant{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/aiModule/zeroth/oneHuman, +/obj/item/weapon/aiModule/reset/purge{ + pixel_x = -3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/ai_upload) +"ccQ" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "aiuploadwindow"; + name = "AI Upload Lockdown Door" + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai_upload) +"ccR" = ( +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/space, +/area/space) +"ccS" = ( +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/turf/open/space, +/area/space) +"ccT" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating/warnplate, +/area/engine/engineering) +"ccU" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "engpa"; + name = "Engineering Chamber Shutters" + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/engine/engineering) +"ccV" = ( +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/engineering) +"ccW" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 1; + icon_state = "yellow"; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; + tag = "icon-yellow (NORTH)" + }, +/area/engine/engineering) +"ccX" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 5 + }, +/area/engine/engineering) +"ccY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/engineering) +"ccZ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/yellow, +/area/engine/engineering) +"cda" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/engineering) +"cdb" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 9; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; + tag = "icon-yellow (NORTHWEST)" + }, +/area/engine/engineering) +"cdc" = ( +/obj/machinery/vending/engivend, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/delivery, +/area/engine/engineering) +"cdd" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cde" = ( +/obj/machinery/computer/monitor{ + name = "Engineering Power Monitoring Console" + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24; + pixel_y = -32 + }, +/obj/machinery/status_display{ + pixel_y = -32 + }, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/machinery/camera{ + c_tag = "Engineering - Power Monitoring"; + dir = 1; + name = "engineering camera" + }, +/turf/open/floor/plasteel/vault, +/area/engine/engineering) +"cdf" = ( +/obj/machinery/light, +/obj/machinery/computer/station_alert, +/turf/open/floor/plasteel/vault, +/area/engine/engineering) +"cdg" = ( +/obj/machinery/computer/atmos_alert, +/obj/structure/sign/nosmoking_1{ + pixel_x = 28; + pixel_y = -28 + }, +/turf/open/floor/plasteel/vault, +/area/engine/engineering) +"cdh" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cdi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cdj" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cdk" = ( +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cdl" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/turf/open/floor/wood, +/area/library) +"cdm" = ( +/obj/structure/chair/office/dark, +/turf/open/floor/wood, +/area/library) +"cdn" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/wood, +/area/library) +"cdo" = ( +/obj/machinery/bookbinder, +/turf/open/floor/wood, +/area/library) +"cdp" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/obj/structure/bookcase/random, +/turf/open/floor/wood, +/area/library) +"cdq" = ( +/obj/structure/chair/comfy/brown, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/wood, +/area/library) +"cdr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/library) +"cds" = ( +/obj/machinery/photocopier, +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 + }, +/turf/open/floor/wood, +/area/library) +"cdt" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/obj/structure/bookcase/manuals/research_and_development, +/obj/machinery/camera{ + c_tag = "Library"; + dir = 2; + name = "library camera" + }, +/turf/open/floor/wood, +/area/library) +"cdu" = ( +/obj/structure/chair/comfy/brown, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_y = 26 + }, +/turf/open/floor/wood, +/area/library) +"cdv" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/wood, +/area/library) +"cdw" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hopline"; + name = "Queue Shutters" + }, +/turf/open/floor/plasteel/loadingarea{ + dir = 4 + }, +/area/hallway/primary/central) +"cdx" = ( +/obj/machinery/computer/security/mining, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/crew_quarters/heads) +"cdy" = ( +/obj/structure/chair/office/dark, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/landmark/start{ + name = "Head of Personnel" + }, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"cdz" = ( +/obj/structure/table/wood, +/obj/machinery/recharger, +/obj/machinery/newscaster{ + pixel_x = 32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"cdA" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/circuit/gcircuit{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"cdB" = ( +/obj/machinery/telecomms/bus/preset_four, +/turf/open/floor/plasteel/brown{ + dir = 9; + initial_gas_mix = "n2=100;TEMP=80"; + tag = "SERVER" + }, +/area/tcommsat/server) +"cdC" = ( +/obj/machinery/telecomms/processor/preset_four, +/turf/open/floor/plasteel/green/side{ + dir = 5; + initial_gas_mix = "n2=100;TEMP=80"; + tag = "SERVER" + }, +/area/tcommsat/server) +"cdD" = ( +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + dir = 5 + }, +/area/tcommsat/server) +"cdE" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + dir = 5 + }, +/area/tcommsat/server) +"cdF" = ( +/obj/machinery/light/small, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + dir = 5 + }, +/area/tcommsat/server) +"cdG" = ( +/obj/machinery/telecomms/processor/preset_two, +/turf/open/floor/plasteel/yellow/side{ + dir = 9; + initial_gas_mix = "n2=100;TEMP=80"; + tag = "icon-yellow (NORTHWEST)" + }, +/area/tcommsat/server) +"cdH" = ( +/obj/machinery/telecomms/bus/preset_two, +/turf/open/floor/plasteel/neutral/side{ + dir = 5; + initial_gas_mix = "n2=100;TEMP=80"; + tag = "icon-neutral (NORTHEAST)" + }, +/area/tcommsat/server) +"cdI" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Emergency Escape"; + req_access = null; + req_access_txt = "20" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"cdJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/machinery/firealarm{ + dir = 4; + icon_state = "fire0"; + pixel_x = 24; + pixel_y = 0; + tag = "icon-fire0 (EAST)" + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/central) +"cdK" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/courtroom) +"cdL" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/courtroom) +"cdM" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/courtroom) +"cdN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/crew_quarters/courtroom) +"cdO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/courtroom) +"cdP" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/courtroom) +"cdQ" = ( +/obj/structure/table/wood, +/obj/item/weapon/gavelblock, +/obj/item/weapon/gavelhammer, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/blue/side{ + dir = 9 + }, +/area/crew_quarters/courtroom) +"cdR" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 1 + }, +/area/crew_quarters/courtroom) +"cdS" = ( +/turf/open/floor/plasteel/blue/side{ + dir = 1 + }, +/area/crew_quarters/courtroom) +"cdT" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/structure/cable/white, +/obj/machinery/power/apc{ + dir = 8; + name = "Law Office APC"; + pixel_x = -26; + pixel_y = 3 + }, +/obj/effect/landmark/start{ + name = "Lawyer" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/wood, +/area/lawoffice) +"cdU" = ( +/obj/structure/table/wood, +/obj/machinery/requests_console{ + department = "Law Office"; + departmentType = 0; + name = "'Law Office RC"; + pixel_x = 0; + pixel_y = -64 + }, +/obj/item/weapon/folder/blue{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/folder/red, +/obj/item/weapon/stamp/law, +/turf/open/floor/plasteel/grimy, +/area/lawoffice) +"cdV" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/grimy, +/area/lawoffice) +"cdW" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/grimy, +/area/lawoffice) +"cdX" = ( +/obj/machinery/photocopier, +/obj/machinery/status_display{ + pixel_x = 32 + }, +/obj/machinery/camera{ + c_tag = "Lawyer's Office"; + dir = 8; + name = "security camera" + }, +/turf/open/floor/wood, +/area/lawoffice) +"cdY" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/item/weapon/pen, +/obj/structure/sign/poster{ + icon_state = "poster29_legit"; + pixel_x = 0; + pixel_y = -32; + tag = "icon-poster29_legit" + }, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/security/brig) +"cdZ" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/sign/nanotrasen{ + pixel_y = -32 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/obj/machinery/camera{ + c_tag = "Security - Brig Desk"; + dir = 1; + name = "security camera" + }, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"cea" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = -26 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/brig) +"ceb" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_security{ + name = "Security Desk"; + req_access_txt = "63" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/brig) +"cec" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner, +/area/security/brig) +"ced" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"cee" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"cef" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"ceg" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/brig) +"ceh" = ( +/obj/structure/table/reinforced, +/obj/machinery/airalarm{ + dir = 4; + locked = 0; + pixel_x = -23; + pixel_y = 0 + }, +/obj/item/device/radio{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/device/radio{ + pixel_x = -5; + pixel_y = 5 + }, +/obj/item/device/radio, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/security/brig) +"cei" = ( +/obj/structure/closet/secure_closet/security/sec, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/brig) +"cej" = ( +/obj/structure/closet/wardrobe/red, +/obj/structure/sign/poster{ + icon_state = "poster16_legit"; + pixel_y = -32; + tag = "icon-poster16_legit" + }, +/obj/item/clothing/under/rank/security/grey, +/obj/item/clothing/under/rank/security/grey, +/obj/item/clothing/under/rank/security/grey, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/item/weapon/storage/backpack/satchel/sec, +/turf/open/floor/plasteel/red, +/area/security/brig) +"cek" = ( +/obj/structure/closet/secure_closet/security/sec, +/obj/machinery/status_display{ + pixel_y = -32 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/security/brig) +"cel" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger, +/obj/machinery/light, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"cem" = ( +/obj/machinery/vending/security, +/obj/structure/sign/nanotrasen{ + pixel_y = -32 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"cen" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"ceo" = ( +/obj/structure/closet/secure_closet/security/sec, +/obj/machinery/ai_status_display{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/brig) +"cep" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "aiuploadwindow"; + name = "AI Upload Lockdown Door" + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai_upload) +"ceq" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/ai_upload) +"cer" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/ai_monitored/turret_protected/ai_upload) +"ces" = ( +/obj/machinery/computer/upload/ai, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/ai_upload) +"cet" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/ai_upload) +"ceu" = ( +/obj/machinery/computer/upload/borg, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/ai_upload) +"cev" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/ai_monitored/turret_protected/ai_upload) +"cew" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/ai_upload) +"cex" = ( +/obj/structure/lattice, +/obj/machinery/camera/emp_proof{ + c_tag = "Containment - Fore Port"; + dir = 4; + icon_state = "camera"; + network = list("Singularity"); + tag = "icon-camera (EAST)" + }, +/turf/open/space, +/area/space) +"cey" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/space, +/area/space) +"cez" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/space, +/area/space) +"ceA" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/space, +/area/space) +"ceB" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/space, +/area/space) +"ceC" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/engine/engineering) +"ceD" = ( +/obj/machinery/power/rad_collector{ + anchored = 1 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating/warnplate{ + dir = 4; + luminosity = 2; + initial_gas_mix = "o2=0.01;n2=0.01"; + temperature = 2.7 + }, +/area/engine/engineering) +"ceE" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "engpa"; + name = "Engineering Chamber Shutters" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/engine/engineering) +"ceF" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/engineering) +"ceG" = ( +/obj/effect/landmark/start{ + name = "Station Engineer" + }, +/turf/open/floor/plasteel/neutral, +/area/engine/engineering) +"ceH" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/book/manual/wiki/engineering_guide{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/book/manual/engineering_particle_accelerator, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/engine/engineering) +"ceI" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/book/manual/wiki/engineering_hacking{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/weapon/book/manual/wiki/engineering_construction{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/book/manual/engineering_singularity_safety, +/turf/open/floor/plasteel/delivery, +/area/engine/engineering) +"ceJ" = ( +/obj/effect/landmark/start{ + name = "Station Engineer" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/engine/engineering) +"ceK" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/engine/engineering) +"ceL" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/engine/engineering) +"ceM" = ( +/turf/open/floor/plasteel/neutral, +/area/engine/engineering) +"ceN" = ( +/obj/machinery/vending/tool, +/turf/open/floor/plasteel/delivery, +/area/engine/engineering) +"ceO" = ( +/obj/structure/girder, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"ceP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"ceQ" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp, +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/turf/open/floor/wood, +/area/library) +"ceR" = ( +/obj/structure/table/wood, +/obj/item/weapon/folder, +/obj/item/weapon/pen, +/turf/open/floor/wood, +/area/library) +"ceS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/library) +"ceT" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/grimy, +/area/library) +"ceU" = ( +/obj/machinery/door/airlock/glass{ + name = "Library Access" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/library) +"ceV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"ceW" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Central Hallway - Head of Personnel Line"; + dir = 8; + name = "hallway camera" + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/central) +"ceX" = ( +/obj/machinery/vending/cola, +/obj/structure/sign/poster{ + icon_state = "poster8_legit"; + pixel_y = -32; + tag = "icon-poster8_legit" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/hallway/primary/central) +"ceY" = ( +/obj/structure/table/wood, +/obj/machinery/keycard_auth{ + pixel_x = -26 + }, +/obj/item/device/flashlight/lamp, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/heads) +"ceZ" = ( +/obj/structure/table/wood, +/obj/machinery/newscaster{ + pixel_x = -32; + pixel_y = -32 + }, +/obj/item/weapon/folder/blue, +/obj/item/weapon/pen, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"cfa" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads) +"cfb" = ( +/obj/machinery/holopad, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads) +"cfc" = ( +/obj/machinery/photocopier, +/obj/structure/sign/poster{ + icon_state = "poster17_legit"; + pixel_x = 32; + pixel_y = 0; + tag = "icon-poster17_legit" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"cfd" = ( +/obj/machinery/telecomms/server/presets/supply, +/turf/open/floor/plasteel/brown{ + dir = 10; + initial_gas_mix = "n2=100;TEMP=80"; + tag = "SERVER" + }, +/area/tcommsat/server) +"cfe" = ( +/obj/machinery/telecomms/server/presets/service, +/turf/open/floor/plasteel/green/side{ + dir = 6; + initial_gas_mix = "n2=100;TEMP=80"; + tag = "SERVER" + }, +/area/tcommsat/server) +"cff" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/command{ + cyclelinkeddir = 2; + name = "Telecoms Server Room"; + req_access = null; + req_access_txt = "61" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/tcommsat/server) +"cfg" = ( +/obj/machinery/telecomms/server/presets/engineering, +/turf/open/floor/plasteel/yellow/side{ + dir = 10; + initial_gas_mix = "n2=100;TEMP=80"; + tag = "icon-yellow (SOUTHWEST)" + }, +/area/tcommsat/server) +"cfh" = ( +/obj/machinery/telecomms/server/presets/common, +/turf/open/floor/plasteel/neutral/side{ + dir = 6; + initial_gas_mix = "n2=100;TEMP=80"; + tag = "icon-neutral (SOUTHEAST)" + }, +/area/tcommsat/server) +"cfi" = ( +/turf/closed/wall/r_wall, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"cfj" = ( +/obj/machinery/shieldwallgen, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"cfk" = ( +/turf/closed/wall, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"cfl" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/camera/motion{ + c_tag = "Bridge - Captain's Emergency Escape"; + dir = 4; + name = "command camera"; + network = list("SS13") + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/blue/side{ + dir = 9 + }, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"cfm" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"cfn" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"cfo" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"cfp" = ( +/obj/structure/closet/emcloset, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/blue/corner{ + dir = 4 + }, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"cfq" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/central) +"cfr" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/tinted/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/courtroom) +"cfs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/courtroom) +"cft" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/courtroom) +"cfu" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/courtroom) +"cfv" = ( +/obj/effect/landmark{ + name = "lightsout" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/courtroom) +"cfw" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Courtroom"; + req_access_txt = "42" + }, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/courtroom) +"cfx" = ( +/obj/item/device/radio/beacon, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/crew_quarters/courtroom) +"cfy" = ( +/obj/machinery/holopad, +/obj/effect/landmark/start{ + name = "Lawyer" + }, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/courtroom) +"cfz" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/courtroom) +"cfA" = ( +/obj/structure/table/wood, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = -32 + }, +/obj/item/weapon/folder/yellow{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/folder/blue, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/blue/side{ + dir = 8 + }, +/area/crew_quarters/courtroom) +"cfB" = ( +/obj/structure/chair{ + dir = 8; + name = "Judge" + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/courtroom) +"cfC" = ( +/obj/machinery/status_display{ + pixel_x = 32 + }, +/obj/machinery/camera{ + c_tag = "Courtroom - Center"; + dir = 8; + name = "security camera" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/crew_quarters/courtroom) +"cfD" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = -26; + pixel_y = 0 + }, +/turf/open/floor/wood, +/area/lawoffice) +"cfE" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/turf/open/floor/wood, +/area/lawoffice) +"cfF" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/structure/sign/poster{ + icon_state = "poster22_legit"; + pixel_y = -32; + tag = "icon-poster22_legit" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/lawoffice) +"cfG" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/lawoffice) +"cfH" = ( +/obj/structure/rack, +/obj/item/weapon/storage/briefcase{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/storage/secure/briefcase, +/turf/open/floor/wood, +/area/lawoffice) +"cfI" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plating, +/area/security/brig) +"cfJ" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + name = "Shooting Range"; + req_access_txt = "63" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/security/brig) +"cfK" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/security/brig) +"cfL" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"cfM" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/aiModule/reset, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = -26; + pixel_y = 0 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/ai_upload) +"cfN" = ( +/obj/machinery/status_display{ + pixel_x = -32; + pixel_y = -32 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/ai_upload) +"cfO" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/ai_monitored/turret_protected/ai_upload) +"cfP" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/ai_slipper{ + icon_state = "motion0"; + uses = 10 + }, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/ai_monitored/turret_protected/ai_upload) +"cfQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/ai_monitored/turret_protected/ai_upload) +"cfR" = ( +/obj/machinery/status_display{ + pixel_x = 32; + pixel_y = -32 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/ai_upload) +"cfS" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/aiModule/supplied/quarantine, +/obj/item/device/radio/intercom{ + broadcasting = 1; + frequency = 1447; + listening = 0; + name = "AI Intercom"; + pixel_x = 28; + pixel_y = 0 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/ai_upload) +"cfT" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/space, +/area/space) +"cfU" = ( +/obj/machinery/power/grounding_rod, +/turf/open/floor/plating/warnplate/corner{ + dir = 4 + }, +/area/space) +"cfV" = ( +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/space) +"cfW" = ( +/obj/machinery/power/tesla_coil, +/obj/structure/cable, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/space) +"cfX" = ( +/obj/machinery/power/grounding_rod, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating/warnplate/corner{ + dir = 8 + }, +/area/space) +"cfY" = ( +/obj/effect/decal/cleanable/oil, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "engpa"; + name = "Engineering Chamber Shutters" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/engine/engineering) +"cfZ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/engineering) +"cga" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/neutral, +/area/engine/engineering) +"cgb" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral, +/area/engine/engineering) +"cgc" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/engine/engineering) +"cgd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/engineering) +"cge" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/engine/engineering) +"cgf" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/landmark/start{ + name = "Station Engineer" + }, +/turf/open/floor/plasteel/neutral, +/area/engine/engineering) +"cgg" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + dir = 4; + name = "Engine Room APC"; + pixel_x = 26; + pixel_y = 0 + }, +/turf/open/floor/plasteel/bot, +/area/engine/engineering) +"cgh" = ( +/obj/machinery/shieldgen, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cgi" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cgj" = ( +/obj/structure/rack, +/obj/item/weapon/crowbar/red, +/obj/item/weapon/wrench, +/obj/item/weapon/tank/internals/emergency_oxygen/engi, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cgk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cgl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cgm" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/wood, +/area/library) +"cgn" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/library) +"cgo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/library) +"cgp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/library) +"cgq" = ( +/obj/effect/landmark{ + name = "lightsout" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/library) +"cgr" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/library) +"cgs" = ( +/obj/machinery/door/airlock/glass{ + name = "Library Access" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/library) +"cgt" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"cgu" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads) +"cgv" = ( +/obj/structure/bed/dogbed{ + anchored = 1; + desc = "Ian's bed! Looks comfy."; + name = "Ian's bed"; + pixel_y = 2 + }, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/mob/living/simple_animal/pet/dog/corgi/Ian, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"cgw" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/tcommsat/server) +"cgx" = ( +/obj/structure/sign/electricshock{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/tcommsat/server) +"cgy" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/fans/tiny, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + dir = 5 + }, +/area/tcommsat/server) +"cgz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"cgA" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Teleporter Maintenance"; + req_access_txt = "17" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/warnplate/side{ + tag = "icon-plating_warn_side (WEST)"; + icon_state = "plating_warn_side"; + dir = 8 + }, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"cgB" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/sign/securearea{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"cgC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/central) +"cgD" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Courtroom" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/courtroom) +"cgE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/courtroom) +"cgF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/courtroom) +"cgG" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/courtroom) +"cgH" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/courtroom) +"cgI" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/courtroom) +"cgJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/crew_quarters/courtroom) +"cgK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/courtroom) +"cgL" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/courtroom) +"cgM" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 10 + }, +/area/crew_quarters/courtroom) +"cgN" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/briefcase{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/secure/briefcase, +/turf/open/floor/plasteel/blue/side, +/area/crew_quarters/courtroom) +"cgO" = ( +/obj/structure/sign/nanotrasen{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/blue/side, +/area/crew_quarters/courtroom) +"cgP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/lawoffice) +"cgQ" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Law Office Maintenance"; + req_access_txt = "38" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/warnplate/side{ + tag = "icon-plating_warn_side (EAST)"; + icon_state = "plating_warn_side"; + dir = 4 + }, +/area/lawoffice) +"cgR" = ( +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/maintenance/starboard) +"cgS" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/device/flashlight, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/starboard) +"cgT" = ( +/obj/structure/girder, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/starboard) +"cgU" = ( +/obj/structure/rack, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/crowbar/red, +/obj/item/weapon/book/manual/wiki/security_space_law, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/starboard) +"cgV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/starboard) +"cgW" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/red/corner{ + dir = 4 + }, +/area/maintenance/starboard) +"cgX" = ( +/turf/closed/wall, +/area/security/range) +"cgY" = ( +/obj/item/stack/rods{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/target, +/obj/item/target/syndicate, +/obj/item/target/alien, +/obj/item/target/clown, +/obj/structure/closet/crate/secure{ + desc = "A secure crate containing various materials for building a customised test-site."; + name = "Test Site Materials Crate"; + req_access_txt = "63" + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24; + pixel_y = 32 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/bot, +/area/security/range) +"cgZ" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/security/range) +"cha" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/security/range) +"chb" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/range) +"chc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/security/range) +"chd" = ( +/obj/structure/sign/securearea{ + pixel_y = 32 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/range) +"che" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/security/range) +"chf" = ( +/turf/open/floor/plating, +/area/security/range) +"chg" = ( +/turf/open/floor/plating/warnplate{ + dir = 9 + }, +/area/security/range) +"chh" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/security/range) +"chi" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/warnplate{ + dir = 5 + }, +/area/security/range) +"chj" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/aiModule/supplied/freeform, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/ai_upload) +"chk" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/flasher{ + pixel_x = -26; + pixel_y = -26 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/ai_upload) +"chl" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/ai_monitored/turret_protected/ai_upload) +"chm" = ( +/obj/machinery/flasher{ + pixel_x = 26; + pixel_y = -26 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/ai_upload) +"chn" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/aiModule/core/full/drone{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/aiModule/core/full/reporter, +/obj/item/weapon/aiModule/core/full/liveandletlive{ + pixel_x = -3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/ai_upload) +"cho" = ( +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/space) +"chp" = ( +/obj/machinery/field/generator{ + anchored = 1; + state = 2 + }, +/turf/open/floor/plating/warnplate{ + dir = 9 + }, +/area/space) +"chq" = ( +/obj/machinery/field/generator{ + anchored = 1; + state = 2 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/space) +"chr" = ( +/obj/machinery/field/generator{ + anchored = 1; + state = 2 + }, +/turf/open/floor/plating/warnplate{ + dir = 5 + }, +/area/space) +"chs" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/space) +"cht" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "engpa"; + name = "Engineering Chamber Shutters" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/engine/engineering) +"chu" = ( +/obj/structure/rack, +/obj/item/weapon/crowbar, +/obj/item/weapon/tank/internals/emergency_oxygen/engi, +/obj/item/stack/cable_coil/white, +/turf/open/floor/plasteel/bot, +/area/engine/engineering) +"chv" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/delivery, +/area/engine/engineering) +"chw" = ( +/obj/structure/rack, +/obj/machinery/button/door{ + id = "engpa"; + name = "Engineering Chamber Shutters Control"; + pixel_y = -26; + req_access_txt = "11" + }, +/obj/item/clothing/gloves/color/black, +/obj/item/weapon/wrench, +/obj/item/clothing/glasses/meson/engine, +/turf/open/floor/plasteel/bot, +/area/engine/engineering) +"chx" = ( +/obj/structure/closet/radiation, +/turf/open/floor/plasteel/bot, +/area/engine/engineering) +"chy" = ( +/obj/structure/closet/secure_closet/engineering_welding, +/turf/open/floor/plasteel/bot, +/area/engine/engineering) +"chz" = ( +/obj/structure/closet/wardrobe/engineering_yellow, +/obj/item/weapon/storage/backpack/satchel/eng, +/turf/open/floor/plasteel/delivery, +/area/engine/engineering) +"chA" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/delivery, +/area/engine/engineering) +"chB" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/requests_console{ + department = "Engineering"; + departmentType = 0; + name = "Engineering RC"; + pixel_x = 0; + pixel_y = -32 + }, +/obj/structure/sign/poster{ + icon_state = "poster16_legit"; + pixel_x = 32; + pixel_y = 0; + tag = "icon-poster16_legit" + }, +/turf/open/floor/plasteel/delivery, +/area/engine/engineering) +"chC" = ( +/obj/machinery/shieldgen, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"chD" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plasteel/warning, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"chE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"chF" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"chG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"chH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"chI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"chJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"chK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"chL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"chM" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/library) +"chN" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/library) +"chO" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/grimy, +/area/library) +"chP" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/library) +"chQ" = ( +/turf/open/floor/wood, +/area/library) +"chR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/library) +"chS" = ( +/obj/machinery/holopad, +/turf/open/floor/wood, +/area/library) +"chT" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/wood, +/area/library) +"chU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/central) +"chV" = ( +/obj/structure/dresser, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads) +"chW" = ( +/obj/structure/filingcabinet/medical, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads) +"chX" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"chY" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads) +"chZ" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads) +"cia" = ( +/obj/machinery/ai_status_display{ + pixel_x = 32 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"cib" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/tcommsat/server) +"cic" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + cyclelinkeddir = 1; + name = "Telecoms Server Room"; + req_access = null; + req_access_txt = "61" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/tcommsat/server) +"cid" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/loadingarea, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"cie" = ( +/turf/open/floor/plasteel/loadingarea, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"cif" = ( +/obj/structure/table, +/obj/item/stack/packageWrap, +/obj/item/weapon/hand_labeler, +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plasteel/bot, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"cig" = ( +/obj/structure/table, +/obj/item/weapon/hand_tele, +/obj/machinery/power/apc{ + cell_type = 10000; + dir = 1; + name = "Teleporter APC"; + pixel_x = 0; + pixel_y = 28 + }, +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/bot, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"cih" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/weapon/stock_parts/cell/high, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/bot, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"cii" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/delivery, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"cij" = ( +/obj/machinery/button/door{ + id = "teleporterhubshutters"; + name = "Teleporter Shutters"; + pixel_x = 0; + pixel_y = 26 + }, +/obj/machinery/bluespace_beacon, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"cik" = ( +/obj/machinery/teleport/hub, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"cil" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters{ + id = "teleporterhubshutters"; + name = "Teleporter Shutters" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"cim" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"cin" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/junction{ + dir = 1; + icon_state = "pipe-j2" + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/central) +"cio" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/courtroom) +"cip" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/courtroom) +"ciq" = ( +/obj/structure/table/wood, +/obj/item/weapon/folder/blue, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/neutral/side{ + dir = 10; + heat_capacity = 1e+006 + }, +/area/crew_quarters/courtroom) +"cir" = ( +/obj/structure/table/wood, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/courtroom) +"cis" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/courtroom) +"cit" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/courtroom) +"ciu" = ( +/obj/structure/table/wood, +/obj/item/weapon/folder/red, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/green/side{ + dir = 8 + }, +/area/crew_quarters/courtroom) +"civ" = ( +/obj/structure/chair{ + dir = 8; + name = "Judge" + }, +/obj/machinery/newscaster{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/courtroom) +"ciw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/effect/landmark{ + name = "blobstart" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 9 + }, +/area/maintenance/starboard) +"cix" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/maintenance/starboard) +"ciy" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"ciz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/obj/structure/disposalpipe/junction{ + dir = 8; + icon_state = "pipe-j1" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"ciA" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard) +"ciB" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + 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) +"ciC" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/landmark{ + name = "blobstart" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"ciD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/mob/living/simple_animal/cockroach, +/turf/open/floor/plating, +/area/maintenance/starboard) +"ciE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/maintenance/starboard) +"ciF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + 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) +"ciG" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/obj/structure/disposalpipe/junction{ + dir = 8; + icon_state = "pipe-j2" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"ciH" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Security Maintenance"; + req_access_txt = "63" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/security/range) +"ciI" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/security/range) +"ciJ" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/security/range) +"ciK" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/security/range) +"ciL" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/window/brigdoor/westright{ + name = "Shooting Range"; + req_access_txt = "63" + }, +/turf/open/floor/plating, +/area/security/range) +"ciM" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/security/range) +"ciN" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plating, +/area/security/range) +"ciO" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/item/target/syndicate, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/security/range) +"ciP" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/range) +"ciQ" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "AI Satellite - Aft Port"; + dir = 8; + name = "ai camera"; + network = list("Sat"); + pixel_x = 0; + pixel_y = 0; + start_active = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"ciR" = ( +/obj/structure/cable/white, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/power/apc{ + dir = 2; + name = "AI Upload Access APC"; + pixel_x = 0; + pixel_y = -27 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/ai_upload) +"ciS" = ( +/obj/machinery/porta_turret/ai, +/obj/structure/sign/electricshock{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/ai_upload) +"ciT" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/table/reinforced, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-07"; + name = "Photosynthetic Potted plant"; + pixel_y = 10 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/ai_upload) +"ciU" = ( +/obj/machinery/porta_turret/ai, +/obj/structure/sign/nanotrasen{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/ai_upload) +"ciV" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/light, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/turret_protected/ai_upload) +"ciW" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "AI Satellite - Aft Starboard"; + dir = 4; + name = "ai camera"; + network = list("Sat"); + pixel_x = 0; + pixel_y = 0; + start_active = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"ciX" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/space, +/area/space) +"ciY" = ( +/obj/machinery/power/tesla_coil, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/space) +"ciZ" = ( +/obj/structure/sign/radiation, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"cja" = ( +/obj/machinery/status_display, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"cjb" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "engpa"; + name = "Engineering Chamber Shutters" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/engine/engineering) +"cjc" = ( +/obj/machinery/requests_console{ + department = "Chapel Office"; + departmentType = 0; + name = "Chapel RC"; + pixel_x = 0; + pixel_y = -32 + }, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"cjd" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/toolbox/mechanical, +/obj/item/device/flashlight, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = -26; + pixel_y = 0 + }, +/turf/open/floor/plasteel/bot, +/area/engine/engineering) +"cje" = ( +/obj/machinery/status_display, +/turf/closed/wall, +/area/engine/engineering) +"cjf" = ( +/turf/closed/wall/r_wall, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cjg" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cjh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + 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/fpmaint2{ + name = "Port Maintenance" + }) +"cji" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/library) +"cjj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/bookcase/random/fiction, +/turf/open/floor/wood, +/area/library) +"cjk" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/library) +"cjl" = ( +/obj/structure/bookcase/random/reference, +/turf/open/floor/wood, +/area/library) +"cjm" = ( +/obj/structure/bookcase/manuals/medical, +/turf/open/floor/wood, +/area/library) +"cjn" = ( +/obj/structure/bookcase/manuals/engineering, +/turf/open/floor/wood, +/area/library) +"cjo" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp, +/turf/open/floor/plasteel/grimy, +/area/library) +"cjp" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/fancy/donut_box, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/grimy, +/area/library) +"cjq" = ( +/obj/structure/table/wood, +/obj/item/weapon/folder, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/grimy, +/area/library) +"cjr" = ( +/obj/structure/table/wood, +/turf/open/floor/plasteel/grimy, +/area/library) +"cjs" = ( +/obj/structure/table/wood, +/obj/item/device/camera_film{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/device/camera_film, +/obj/machinery/firealarm{ + dir = 4; + icon_state = "fire0"; + pixel_x = 24; + pixel_y = 0; + tag = "icon-fire0 (EAST)" + }, +/turf/open/floor/plasteel/grimy, +/area/library) +"cjt" = ( +/obj/structure/bed, +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/obj/item/weapon/bedsheet/hop, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads) +"cju" = ( +/obj/machinery/light_switch{ + pixel_x = 26; + pixel_y = 26 + }, +/obj/effect/landmark/start{ + name = "Head of Personnel" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads) +"cjv" = ( +/obj/machinery/door/airlock/command{ + name = "Head of Personnel's Quarters"; + req_access = null; + req_access_txt = "57" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"cjw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"cjx" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads) +"cjy" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads) +"cjz" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads) +"cjA" = ( +/obj/structure/table/wood, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 26 + }, +/obj/item/weapon/clipboard, +/obj/item/toy/figure/hop{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/toy/figure/ian, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"cjB" = ( +/turf/closed/wall, +/area/tcommsat/server) +"cjC" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 1; + min_temperature = 80; + on = 1; + target_temperature = 80 + }, +/turf/open/floor/plasteel/delivery, +/area/tcommsat/server) +"cjD" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/tcommsat/server) +"cjE" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/tcommsat/server) +"cjF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/tcommsat/server) +"cjG" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 1; + min_temperature = 80; + on = 1; + target_temperature = 80 + }, +/obj/machinery/camera{ + c_tag = "Telecomms - Cooling Room"; + dir = 8; + name = "telecomms camera"; + network = list("SS13","tcomm") + }, +/turf/open/floor/plasteel/delivery, +/area/tcommsat/server) +"cjH" = ( +/obj/structure/rack, +/obj/item/weapon/storage/toolbox/emergency, +/obj/item/weapon/wrench, +/obj/item/weapon/crowbar, +/turf/open/floor/plasteel/bot, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"cjI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/neutral, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"cjJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"cjK" = ( +/obj/machinery/holopad, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/bot, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"cjL" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/junction{ + dir = 4; + icon_state = "pipe-j2" + }, +/turf/open/floor/plasteel/neutral, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"cjM" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/obj/structure/disposalpipe/junction{ + dir = 4; + icon_state = "pipe-j2" + }, +/turf/open/floor/plasteel/neutral, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"cjN" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"cjO" = ( +/obj/machinery/teleport/station, +/obj/machinery/status_display{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"cjP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/machinery/camera{ + c_tag = "Central Hallway - Starboard"; + dir = 8; + name = "hallway camera" + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/central) +"cjQ" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = -26; + pixel_y = 0 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/courtroom) +"cjR" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/courtroom) +"cjS" = ( +/obj/structure/chair{ + dir = 1; + name = "Defense" + }, +/turf/open/floor/plasteel/green/side{ + dir = 10 + }, +/area/crew_quarters/courtroom) +"cjT" = ( +/obj/structure/chair{ + dir = 1; + name = "Defense" + }, +/turf/open/floor/plasteel/green/side{ + dir = 6 + }, +/area/crew_quarters/courtroom) +"cjU" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/courtroom) +"cjV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/courtroom) +"cjW" = ( +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/courtroom) +"cjX" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/crew_quarters/courtroom) +"cjY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/starboard) +"cjZ" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard) +"cka" = ( +/obj/structure/girder, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"ckb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/starboard) +"ckc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/starboard) +"ckd" = ( +/obj/effect/decal/cleanable/oil, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 6 + }, +/area/maintenance/starboard) +"cke" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"ckf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard) +"ckg" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/starboard) +"ckh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/starboard) +"cki" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/security/range) +"ckj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/apc{ + dir = 8; + name = "Shooting Range APC"; + pixel_x = -26; + pixel_y = 0 + }, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/delivery, +/area/security/range) +"ckk" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning, +/area/security/range) +"ckl" = ( +/obj/structure/table/reinforced, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/item/weapon/gun/energy/laser/practice{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/weapon/gun/energy/laser/practice, +/obj/item/clothing/ears/earmuffs, +/obj/item/clothing/ears/earmuffs, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/security/range) +"ckm" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/range) +"ckn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating/warnplate, +/area/security/range) +"cko" = ( +/obj/structure/sign/securearea{ + pixel_y = -32 + }, +/obj/machinery/light, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Security - Shooting Range"; + dir = 1; + name = "security camera" + }, +/turf/open/floor/plating, +/area/security/range) +"ckp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plating/warnplate, +/area/security/range) +"ckq" = ( +/turf/open/floor/plating/warnplate{ + dir = 10 + }, +/area/security/range) +"ckr" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/security/range) +"cks" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating/warnplate{ + dir = 6 + }, +/area/security/range) +"ckt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai_upload) +"cku" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai_upload) +"ckv" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating/warnplate{ + dir = 9 + }, +/area/engine/engineering) +"ckw" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/engine/engineering) +"ckx" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/engine/engineering) +"cky" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/engine/engineering) +"ckz" = ( +/obj/machinery/button/door{ + id = "engpa"; + name = "Engineering Chamber Shutters Control"; + pixel_y = 26; + req_access_txt = "11" + }, +/turf/open/floor/plating/warnplate{ + dir = 5 + }, +/area/engine/engineering) +"ckA" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/clipboard, +/obj/item/toy/figure/engineer, +/turf/open/floor/plasteel/bot, +/area/engine/engineering) +"ckB" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/airlock_painter, +/turf/open/floor/plasteel/delivery, +/area/engine/engineering) +"ckC" = ( +/obj/structure/sign/securearea, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"ckD" = ( +/obj/structure/closet/crate, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/item/weapon/crowbar/red, +/obj/item/stack/sheet/mineral/plasma{ + amount = 20 + }, +/obj/item/device/gps/engineering{ + gpstag = "ENG0" + }, +/turf/open/floor/plasteel/bot, +/area/engine/engineering) +"ckE" = ( +/obj/machinery/shieldgen, +/turf/open/floor/plasteel/bot, +/area/engine/engineering) +"ckF" = ( +/obj/machinery/shieldgen, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/nosmoking_2{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/bot, +/area/engine/engineering) +"ckG" = ( +/obj/machinery/field/generator, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/engine/engineering) +"ckH" = ( +/obj/machinery/shieldwallgen, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"ckI" = ( +/obj/machinery/shieldwallgen, +/turf/open/floor/plasteel/bot, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"ckJ" = ( +/obj/structure/tank_dispenser, +/obj/effect/decal/cleanable/dirt, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = 26 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"ckK" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"ckL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"ckM" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Library APC"; + pixel_x = -26; + pixel_y = 3 + }, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/turf/open/floor/wood, +/area/library) +"ckN" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/wood, +/area/library) +"ckO" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/grimy, +/area/library) +"ckP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/library) +"ckQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/carpet, +/area/library) +"ckR" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/effect/landmark/start{ + name = "Librarian" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/carpet, +/area/library) +"ckS" = ( +/turf/open/floor/carpet, +/area/library) +"ckT" = ( +/obj/structure/table/wood, +/obj/machinery/computer/libraryconsole/bookmanagement, +/obj/machinery/newscaster{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/grimy, +/area/library) +"ckU" = ( +/obj/structure/table/wood, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = -26 + }, +/obj/item/device/flashlight/lamp/green, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads) +"ckV" = ( +/obj/structure/closet/secure_closet/hop, +/obj/item/clothing/suit/ianshirt, +/obj/item/weapon/bedsheet/ian, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads) +"ckW" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall, +/area/crew_quarters/heads) +"ckX" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-18"; + layer = 4.1 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"ckY" = ( +/obj/machinery/disposal/bin, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"ckZ" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 0; + pixel_y = -26 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"cla" = ( +/obj/machinery/light_switch{ + pixel_x = 26; + pixel_y = -26 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"clb" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"clc" = ( +/obj/machinery/airalarm{ + dir = 4; + locked = 0; + pixel_x = -23; + pixel_y = 0 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/delivery, +/area/tcommsat/server) +"cld" = ( +/obj/machinery/light, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/tcommsat/server) +"cle" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning, +/area/tcommsat/server) +"clf" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 0; + pixel_y = -26 + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/tcommsat/server) +"clg" = ( +/obj/structure/table, +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/wrench, +/obj/item/weapon/screwdriver{ + pixel_y = 5 + }, +/turf/open/floor/plasteel/delivery, +/area/tcommsat/server) +"clh" = ( +/obj/structure/rack, +/obj/item/weapon/tank/internals/oxygen, +/obj/item/device/radio, +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 0; + pixel_y = -26 + }, +/turf/open/floor/plasteel/bot, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"cli" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/delivery, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"clj" = ( +/obj/machinery/light_switch{ + pixel_x = -7; + pixel_y = -26 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/obj/machinery/camera{ + c_tag = "Bridge - Teleporter"; + dir = 1; + name = "command camera" + }, +/turf/open/floor/plasteel/warning/corner, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"clk" = ( +/turf/open/floor/plasteel/warning, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"cll" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/warning, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"clm" = ( +/obj/machinery/light, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 1 + }, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"cln" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"clo" = ( +/obj/machinery/computer/teleporter, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"clp" = ( +/obj/structure/table, +/obj/machinery/status_display{ + pixel_x = -32 + }, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/courtroom) +"clq" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/courtroom) +"clr" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/courtroom) +"cls" = ( +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/courtroom) +"clt" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/courtroom) +"clu" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/courtroom) +"clv" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "Courtroom APC"; + pixel_x = 26; + pixel_y = 0 + }, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/courtroom) +"clw" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/crew_quarters/locker) +"clx" = ( +/turf/closed/wall, +/area/crew_quarters/locker) +"cly" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/maintenance/starboard) +"clz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/maintenance/starboard) +"clA" = ( +/obj/structure/plasticflaps{ + opacity = 1 + }, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=1"; + dir = 1; + freq = 1400; + location = "Security" + }, +/turf/open/floor/plasteel/delivery, +/area/security/range) +"clB" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Security Maintenance"; + req_access_txt = "63" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/security/range) +"clC" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/range) +"clD" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"clE" = ( +/obj/structure/lattice, +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/space, +/area/space) +"clF" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced, +/turf/open/space, +/area/space) +"clG" = ( +/obj/structure/lattice, +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/space, +/area/space) +"clH" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/structure/lattice, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"clI" = ( +/obj/machinery/field/generator{ + anchored = 1; + state = 2 + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/space) +"clJ" = ( +/turf/open/floor/plating/warnplate{ + dir = 9 + }, +/area/space) +"clK" = ( +/obj/machinery/the_singularitygen, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/space) +"clL" = ( +/turf/open/floor/plating/warnplate{ + dir = 5 + }, +/area/space) +"clM" = ( +/obj/structure/cable{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/engine/engineering) +"clN" = ( +/obj/structure/particle_accelerator/particle_emitter/left{ + tag = "icon-emitter_left (WEST)"; + icon_state = "emitter_left"; + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"clO" = ( +/obj/effect/landmark/start{ + name = "Station Engineer" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"clP" = ( +/obj/machinery/particle_accelerator/control_box, +/obj/structure/cable, +/turf/open/floor/plating, +/area/engine/engineering) +"clQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"clR" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/engine/engineering) +"clS" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "engpa"; + name = "Engineering Chamber Shutters" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning/side, +/area/engine/engineering) +"clT" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/engine/engineering) +"clU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 4 + }, +/area/engine/engineering) +"clV" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/yellow, +/area/engine/engineering) +"clW" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 8 + }, +/area/engine/engineering) +"clX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/engine/engineering) +"clY" = ( +/obj/machinery/door/poddoor{ + id = "engstorage"; + name = "Engineering Secure Storage Lockdown" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/warning/side, +/area/engine/engineering) +"clZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/engine/engineering) +"cma" = ( +/obj/machinery/shieldgen, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/bot, +/area/engine/engineering) +"cmb" = ( +/obj/machinery/field/generator, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/bot, +/area/engine/engineering) +"cmc" = ( +/obj/machinery/field/generator, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/bot, +/area/engine/engineering) +"cmd" = ( +/obj/machinery/shieldwallgen, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cme" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cmf" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel/bot, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cmg" = ( +/obj/structure/sign/securearea, +/turf/closed/wall/r_wall, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cmh" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cmi" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/bookcase/random/fiction, +/turf/open/floor/wood, +/area/library) +"cmj" = ( +/obj/structure/bookcase/random/fiction, +/turf/open/floor/wood, +/area/library) +"cmk" = ( +/obj/structure/bookcase/random/adult, +/turf/open/floor/wood, +/area/library) +"cml" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/briefcase, +/turf/open/floor/plasteel/grimy, +/area/library) +"cmm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/carpet, +/area/library) +"cmn" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/carpet, +/area/library) +"cmo" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/carpet, +/area/library) +"cmp" = ( +/obj/machinery/libraryscanner, +/obj/machinery/status_display{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/grimy, +/area/library) +"cmq" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall/r_wall, +/area/crew_quarters/heads) +"cmr" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "hopblast"; + name = "HoP Blast door" + }, +/obj/structure/cable/white, +/turf/open/floor/plating, +/area/crew_quarters/heads) +"cms" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "hopblast"; + name = "HoP Blast door" + }, +/obj/machinery/door/airlock/command{ + name = "Head of Personnel's Office"; + req_access = null; + req_access_txt = "57" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"cmt" = ( +/turf/closed/wall/r_wall, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cmu" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cmv" = ( +/obj/structure/sign/securearea, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cmw" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + cyclelinkeddir = 0; + name = "Telecoms Foyer"; + req_access = null; + req_access_txt = "61" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cmx" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Teleport Access"; + req_access_txt = "17" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"cmy" = ( +/obj/machinery/button/door{ + id = "teleportershutters"; + name = "Teleporter Shutters"; + pixel_x = -26; + pixel_y = 0; + req_access_txt = "19" + }, +/obj/machinery/door/poddoor/shutters{ + id = "teleportershutters"; + name = "Teleporter Shutters" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"cmz" = ( +/obj/machinery/door/poddoor/shutters{ + id = "teleportershutters"; + name = "Teleporter Shutters" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"cmA" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"cmB" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall/r_wall, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"cmC" = ( +/obj/structure/table, +/obj/machinery/airalarm{ + dir = 4; + locked = 0; + pixel_x = -23; + pixel_y = 0 + }, +/obj/item/weapon/storage/fancy/donut_box, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/courtroom) +"cmD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/courtroom) +"cmE" = ( +/obj/machinery/vending/cigarette, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/camera{ + c_tag = "Courtroom - Aft"; + dir = 8; + name = "security camera" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/courtroom) +"cmF" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall, +/area/crew_quarters/courtroom) +"cmG" = ( +/obj/structure/table/wood, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/vault, +/area/crew_quarters/courtroom) +"cmH" = ( +/obj/structure/table/wood, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plasteel/vault, +/area/crew_quarters/courtroom) +"cmI" = ( +/obj/structure/table/wood, +/obj/item/weapon/clipboard, +/obj/item/weapon/folder, +/turf/open/floor/plasteel/vault, +/area/crew_quarters/courtroom) +"cmJ" = ( +/obj/structure/table/wood, +/obj/item/weapon/folder/yellow, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/vault, +/area/crew_quarters/courtroom) +"cmK" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/briefcase, +/obj/structure/sign/poster{ + icon_state = "poster4_legit"; + pixel_x = 32; + pixel_y = 0; + tag = "icon-poster4_legit" + }, +/turf/open/floor/plasteel/vault, +/area/crew_quarters/courtroom) +"cmL" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/locker) +"cmM" = ( +/obj/structure/closet/secure_closet/personal, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/locker) +"cmN" = ( +/obj/machinery/status_display, +/turf/closed/wall, +/area/crew_quarters/locker) +"cmO" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/plasteel/arrival{ + dir = 1 + }, +/area/crew_quarters/locker) +"cmP" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plasteel/escape{ + tag = "icon-escape (NORTH)"; + icon_state = "escape"; + dir = 1 + }, +/area/crew_quarters/locker) +"cmQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb, +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 9 + }, +/area/maintenance/starboard) +"cmR" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/starboard) +"cmS" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/maintenance/starboard) +"cmT" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/starboard) +"cmU" = ( +/turf/open/floor/plating, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg2" + }, +/area/maintenance/starboard) +"cmV" = ( +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/starboard) +"cmW" = ( +/obj/structure/closet/secure_closet/security/sec, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plasteel/warning/end{ + tag = "icon-plasteel_warn_end (NORTH)"; + icon_state = "plasteel_warn_end"; + dir = 1 + }, +/area/maintenance/starboard) +"cmX" = ( +/turf/closed/wall, +/area/maintenance/starboard) +"cmY" = ( +/obj/structure/sign/electricshock{ + pixel_x = -32; + pixel_y = 32 + }, +/turf/open/space, +/area/space) +"cmZ" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/door/window/northleft, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"cna" = ( +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"cnb" = ( +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"cnc" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/machinery/door/window/northright, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"cnd" = ( +/obj/item/weapon/wrench, +/turf/open/floor/plating, +/area/space) +"cne" = ( +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/space) +"cnf" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/space) +"cng" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cnh" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/engine/engineering) +"cni" = ( +/obj/structure/particle_accelerator/particle_emitter/center{ + tag = "icon-emitter_center (WEST)"; + icon_state = "emitter_center"; + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cnj" = ( +/obj/structure/particle_accelerator/power_box{ + tag = "icon-power_box (WEST)"; + icon_state = "power_box"; + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cnk" = ( +/obj/structure/particle_accelerator/fuel_chamber{ + tag = "icon-fuel_chamber (WEST)"; + icon_state = "fuel_chamber"; + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cnl" = ( +/obj/structure/particle_accelerator/end_cap{ + tag = "icon-end_cap (WEST)"; + icon_state = "end_cap"; + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cnm" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/engine/engineering) +"cnn" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/machinery/camera{ + c_tag = "Engineering - Central"; + dir = 4; + name = "engineering camera" + }, +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the singularity chamber."; + dir = 4; + layer = 4; + name = "Engine Containment Telescreen"; + network = list("Singularity"); + pixel_x = -30; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/engineering) +"cno" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/yellow, +/area/engine/engineering) +"cnp" = ( +/obj/machinery/holopad, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/bot, +/area/engine/engineering) +"cnq" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/yellow, +/area/engine/engineering) +"cnr" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/engineering) +"cns" = ( +/obj/machinery/door/poddoor{ + id = "engstorage"; + name = "Engineering Secure Storage Lockdown" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning/side, +/area/engine/engineering) +"cnt" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/engineering) +"cnu" = ( +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/engine/engineering) +"cnv" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/engine/engineering) +"cnw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/sign/fire{ + pixel_x = 32 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/warning/end{ + tag = "icon-plasteel_warn_end (EAST)"; + icon_state = "plasteel_warn_end"; + dir = 4 + }, +/area/engine/engineering) +"cnx" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cny" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cnz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cnA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cnB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/highsecurity{ + name = "Engineering Auxiliary Storage"; + req_access_txt = "32" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cnC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cnD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cnE" = ( +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/turf/open/floor/wood, +/area/library) +"cnF" = ( +/obj/structure/table/wood, +/obj/item/weapon/folder, +/obj/item/weapon/pen/blue{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/pen/red, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/library) +"cnG" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/carpet, +/area/library) +"cnH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/carpet, +/area/library) +"cnI" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/bag/books, +/obj/item/device/taperecorder, +/obj/structure/noticeboard{ + dir = 8; + icon_state = "nboard00"; + pixel_x = 32; + pixel_y = 0; + tag = "icon-nboard00 (WEST)" + }, +/turf/open/floor/plasteel/grimy, +/area/library) +"cnJ" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/central) +"cnK" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"cnL" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Command Hallway" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cnM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cnN" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cnO" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cnP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cnQ" = ( +/obj/structure/sign/electricshock{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cnR" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cnS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/power/apc{ + aidisabled = 0; + dir = 1; + name = "Command Hall APC"; + pixel_y = 24 + }, +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cnT" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cnU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Central Hallway - Center"; + dir = 2; + name = "hallway camera" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cnV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cnW" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_y = 26 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cnX" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cnY" = ( +/obj/structure/sign/electricshock{ + pixel_x = 0; + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cnZ" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"coa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 8 + }, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cob" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"coc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cod" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 4 + }, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"coe" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (NORTH)"; + icon_state = "neutralcorner"; + dir = 1 + }, +/area/hallway/primary/central) +"cof" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/central) +"cog" = ( +/obj/machinery/vending/coffee, +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 0; + pixel_y = -26 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/courtroom) +"coh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/courtroom) +"coi" = ( +/obj/structure/sign/poster{ + icon_state = "poster17_legit"; + pixel_x = 0; + pixel_y = -32; + tag = "icon-poster17_legit" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/courtroom) +"coj" = ( +/obj/machinery/door/airlock{ + name = "Jury"; + req_access_txt = "42" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/courtroom) +"cok" = ( +/obj/structure/chair{ + dir = 1; + name = "Jury" + }, +/obj/machinery/ai_status_display{ + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/courtroom) +"col" = ( +/obj/structure/chair{ + dir = 1; + name = "Jury" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/courtroom) +"com" = ( +/obj/structure/chair{ + dir = 1; + name = "Jury" + }, +/obj/machinery/status_display{ + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/courtroom) +"con" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/courtroom) +"coo" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/crew_quarters/locker) +"cop" = ( +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/crew_quarters/locker) +"coq" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Locker Room - Fore"; + dir = 2; + name = "dormitories camera" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/crew_quarters/locker) +"cor" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/crew_quarters/locker) +"cos" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/crew_quarters/locker) +"cot" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/crew_quarters/locker) +"cou" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/crew_quarters/locker) +"cov" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/maintenance/starboard) +"cow" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/starboard) +"cox" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"coy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"coz" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"coA" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/maintenance/starboard) +"coB" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"coC" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/glass_security{ + name = "Storage Closet"; + req_access_txt = "63" + }, +/obj/structure/barricade/wooden, +/turf/open/floor/plating/warnplate/side, +/area/maintenance/starboard) +"coD" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/maintenance/starboard) +"coE" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/starboard) +"coF" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"coG" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"coH" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"coI" = ( +/turf/open/floor/plating/warnplate{ + dir = 10 + }, +/area/space) +"coJ" = ( +/obj/machinery/the_singularitygen/tesla, +/turf/open/floor/plating/warnplate, +/area/space) +"coK" = ( +/turf/open/floor/plating/warnplate{ + dir = 6 + }, +/area/space) +"coL" = ( +/obj/machinery/field/generator{ + anchored = 1; + state = 2 + }, +/turf/open/floor/plating/warnplate{ + dir = 4; + luminosity = 2; + initial_gas_mix = "o2=0.01;n2=0.01"; + temperature = 2.7 + }, +/area/space) +"coM" = ( +/obj/structure/particle_accelerator/particle_emitter/right{ + tag = "icon-emitter_right (WEST)"; + icon_state = "emitter_right"; + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"coN" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/engine/engineering) +"coO" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/engine/engineering) +"coP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"coQ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/engine/engineering) +"coR" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 1 + }, +/area/engine/engineering) +"coS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/yellow, +/area/engine/engineering) +"coT" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/warning/corner, +/area/engine/engineering) +"coU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/engine/engineering) +"coV" = ( +/obj/machinery/door/poddoor{ + id = "engstorage"; + name = "Engineering Secure Storage Lockdown" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/warning/side, +/area/engine/engineering) +"coW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/engine/engineering) +"coX" = ( +/obj/machinery/portable_atmospherics/canister/toxins, +/turf/open/floor/plasteel/bot, +/area/engine/engineering) +"coY" = ( +/obj/machinery/power/tesla_coil, +/turf/open/floor/plasteel/bot, +/area/engine/engineering) +"coZ" = ( +/obj/machinery/power/emitter, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/engine/engineering) +"cpa" = ( +/obj/machinery/power/emitter, +/turf/open/floor/plasteel/bot, +/area/engine/engineering) +"cpb" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cpc" = ( +/turf/open/floor/plasteel/warning, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cpd" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plasteel/warning, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cpe" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cpf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cpg" = ( +/obj/structure/bookcase/random/nonfiction, +/turf/open/floor/wood, +/area/library) +"cph" = ( +/obj/machinery/light, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/camera{ + c_tag = "Library - Aft"; + dir = 1; + name = "library camera" + }, +/turf/open/floor/wood, +/area/library) +"cpi" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/pill_bottle/dice, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/grimy, +/area/library) +"cpj" = ( +/obj/machinery/light, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/light_switch{ + pixel_y = -26 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/grimy, +/area/library) +"cpk" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plasteel/grimy, +/area/library) +"cpl" = ( +/obj/structure/table/wood, +/obj/item/weapon/clipboard, +/obj/item/toy/figure/librarian, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_y = -26 + }, +/turf/open/floor/plasteel/grimy, +/area/library) +"cpm" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/central) +"cpn" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/central) +"cpo" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Command Hallway" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cpp" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cpq" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cpr" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cps" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Central Hallway - Center Port"; + dir = 1; + name = "hallway camera" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cpt" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cpu" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cpv" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cpw" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cpx" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/sign/electricshock{ + pixel_x = -32; + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cpy" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/corner{ + tag = "icon-bluecorner (NORTH)"; + icon_state = "bluecorner"; + dir = 1 + }, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cpz" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/chair/comfy/black, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/blue/corner{ + tag = "icon-bluecorner (NORTH)"; + icon_state = "bluecorner"; + dir = 1 + }, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cpA" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/item/device/radio/beacon, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/corner{ + tag = "icon-bluecorner (NORTH)"; + icon_state = "bluecorner"; + dir = 1 + }, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cpB" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/chair/comfy/black, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/corner{ + tag = "icon-bluecorner (NORTH)"; + icon_state = "bluecorner"; + dir = 1 + }, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cpC" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/table/wood, +/obj/item/weapon/storage/fancy/donut_box, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/corner{ + tag = "icon-bluecorner (NORTH)"; + icon_state = "bluecorner"; + dir = 1 + }, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cpD" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/sign/electricshock{ + pixel_x = 32; + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cpE" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/neutral/corner, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cpF" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cpG" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cpH" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cpI" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/corner, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cpJ" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/machinery/light, +/obj/machinery/camera{ + c_tag = "Central Hallway - Center Starboard"; + dir = 1; + name = "hallway camera" + }, +/turf/open/floor/plasteel/neutral/corner, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cpK" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/corner, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cpL" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"cpM" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/central) +"cpN" = ( +/obj/structure/sign/directions/engineering{ + desc = "A sign that shows there are doors here. There are doors everywhere!"; + icon_state = "doors"; + name = "WARNING: PRESSURIZED DOORS"; + pixel_x = 0; + pixel_y = 0; + tag = "icon-doors" + }, +/turf/closed/wall, +/area/crew_quarters/courtroom) +"cpO" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/tinted/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/crew_quarters/courtroom) +"cpP" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/crew_quarters/locker) +"cpQ" = ( +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/locker) +"cpR" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/locker) +"cpS" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/locker) +"cpT" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/locker) +"cpU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/crew_quarters/locker) +"cpV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/crew_quarters/locker) +"cpW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/starboard) +"cpX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/starboard) +"cpY" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/bodybags, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/starboard) +"cpZ" = ( +/obj/structure/table, +/obj/item/clothing/under/rank/security, +/obj/item/weapon/restraints/handcuffs, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small, +/obj/machinery/power/apc{ + dir = 2; + name = "Starboard Maintenance APC"; + pixel_y = -26 + }, +/obj/structure/cable/white, +/turf/open/floor/plating, +/area/maintenance/starboard) +"cqa" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/obj/item/clothing/shoes/jackboots, +/obj/item/device/radio, +/obj/item/weapon/storage/secure/briefcase, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"cqb" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/red/corner, +/area/maintenance/starboard) +"cqc" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/starboard) +"cqd" = ( +/obj/structure/reagent_dispensers/peppertank{ + pixel_y = -32 + }, +/obj/structure/rack, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/storage/box/flashes, +/turf/open/floor/plating/warnplate/end, +/area/maintenance/starboard) +"cqe" = ( +/turf/closed/wall, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cqf" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cqg" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"cqh" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/construction/hallway{ + name = "\improper MiniSat Exterior" + }) +"cqi" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/turf/open/floor/plating/warnplate{ + dir = 10 + }, +/area/engine/engineering) +"cqj" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating/warnplate, +/area/engine/engineering) +"cqk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating/warnplate, +/area/engine/engineering) +"cql" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/camera/emp_proof{ + c_tag = "Containment - Particle Accelerator"; + dir = 1; + network = list("Singularity") + }, +/turf/open/floor/plating/warnplate, +/area/engine/engineering) +"cqm" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating/warnplate, +/area/engine/engineering) +"cqn" = ( +/obj/machinery/button/door{ + id = "engpa"; + name = "Engineering Chamber Shutters Control"; + pixel_y = -26; + req_access_txt = "11" + }, +/turf/open/floor/plating/warnplate{ + dir = 6 + }, +/area/engine/engineering) +"cqo" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/tank/internals/plasma, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/turf/open/floor/plasteel/bot, +/area/engine/engineering) +"cqp" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/engine/engineering) +"cqq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/engineering) +"cqr" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/stock_parts/cell/high, +/obj/item/weapon/stock_parts/cell/high, +/obj/machinery/cell_charger, +/turf/open/floor/plasteel/delivery, +/area/engine/engineering) +"cqs" = ( +/obj/machinery/the_singularitygen, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/bot, +/area/engine/engineering) +"cqt" = ( +/obj/machinery/portable_atmospherics/canister/toxins, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/engine/engineering) +"cqu" = ( +/obj/machinery/power/tesla_coil, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera{ + c_tag = "Engineering - Secure Storage"; + dir = 1; + name = "engineering camera" + }, +/turf/open/floor/plasteel/bot, +/area/engine/engineering) +"cqv" = ( +/obj/machinery/power/emitter, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/engine/engineering) +"cqw" = ( +/obj/structure/rack, +/obj/item/weapon/crowbar/red, +/obj/item/weapon/wrench, +/obj/item/weapon/tank/internals/emergency_oxygen/engi, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cqx" = ( +/obj/structure/table/reinforced, +/obj/item/stack/sheet/metal{ + amount = 30 + }, +/obj/item/stack/sheet/glass{ + amount = 30 + }, +/obj/item/weapon/electronics/apc, +/obj/item/weapon/electronics/airlock, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cqy" = ( +/obj/structure/table/reinforced, +/obj/structure/extinguisher_cabinet{ + pixel_y = -32 + }, +/obj/item/weapon/clipboard, +/obj/item/weapon/folder/blue, +/obj/item/weapon/electronics/firelock, +/obj/item/weapon/stock_parts/console_screen, +/turf/open/floor/plasteel/bot, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cqz" = ( +/obj/structure/table/reinforced, +/obj/item/stack/cable_coil/white, +/obj/item/weapon/electronics/airalarm, +/obj/item/weapon/electronics/firealarm, +/obj/item/weapon/stock_parts/cell/high, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cqA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cqB" = ( +/obj/machinery/door/airlock/glass{ + name = "Library Game Room" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/grimy, +/area/library) +"cqC" = ( +/obj/machinery/door/airlock/glass{ + name = "Library Game Room" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/grimy, +/area/library) +"cqD" = ( +/obj/machinery/status_display, +/turf/closed/wall, +/area/library) +"cqE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/library) +"cqF" = ( +/obj/machinery/door/morgue{ + name = "Librarian's Study"; + req_access_txt = "37" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/library) +"cqG" = ( +/obj/structure/sign/directions/engineering{ + desc = "A direction sign, pointing out which way the Command department is."; + dir = 1; + icon_state = "direction_bridge"; + name = "command department"; + pixel_y = 0; + tag = "icon-direction_bridge" + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"cqH" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"cqI" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "E.V.A. Storage"; + req_access = null; + req_access_txt = "18" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"cqJ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "E.V.A. Storage"; + req_access = null; + req_access_txt = "18" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"cqK" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cqL" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cqM" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/corner{ + tag = "icon-bluecorner (NORTH)"; + icon_state = "bluecorner"; + dir = 1 + }, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cqN" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cqO" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/holopad, +/obj/effect/landmark{ + name = "lightsout" + }, +/turf/open/floor/plasteel/bot, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cqP" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cqQ" = ( +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/corner, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cqR" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cqS" = ( +/turf/closed/wall/r_wall, +/area/gateway) +"cqT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/gateway) +"cqU" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Gateway Atrium"; + req_access_txt = "62" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/gateway) +"cqV" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/bot, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cqW" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel/delivery, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cqX" = ( +/obj/machinery/vending/cola, +/turf/open/floor/plasteel/delivery, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cqY" = ( +/obj/structure/sign/directions/engineering{ + desc = "A direction sign, pointing out which way the Command department is."; + dir = 1; + icon_state = "direction_bridge"; + name = "command department"; + pixel_y = 0; + tag = "icon-direction_bridge" + }, +/turf/closed/wall/r_wall, +/area/gateway) +"cqZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (NORTH)"; + icon_state = "neutralcorner"; + dir = 1 + }, +/area/hallway/primary/central) +"cra" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"crb" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/glass{ + name = "Starboard Auxiliary Hallway" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/hallway/primary/central) +"crc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"crd" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"cre" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/hallway/primary/central) +"crf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"crg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"crh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Dormitory Hallway"; + dir = 2; + name = "hallway camera" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"cri" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warning/side, +/area/hallway/primary/central) +"crj" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"crk" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Lockerroom" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/crew_quarters/locker) +"crl" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/crew_quarters/locker) +"crm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/locker) +"crn" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/locker) +"cro" = ( +/obj/structure/table, +/obj/item/weapon/storage/fancy/donut_box, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/locker) +"crp" = ( +/obj/structure/table, +/obj/item/device/camera_film{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/device/camera_film, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/locker) +"crq" = ( +/obj/structure/table, +/obj/item/device/camera, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/locker) +"crr" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/locker) +"crs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/locker) +"crt" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/locker) +"cru" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard) +"crv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/starboard) +"crw" = ( +/obj/structure/girder, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/starboard) +"crx" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cry" = ( +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"crz" = ( +/obj/structure/table, +/obj/item/stack/sheet/cloth/ten, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"crA" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/table, +/obj/item/weapon/clipboard, +/obj/item/weapon/folder/white, +/obj/item/weapon/pen, +/obj/machinery/camera{ + c_tag = "Recreation - Fore"; + dir = 2; + name = "recreation camera" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"crB" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"crC" = ( +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"crD" = ( +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"crE" = ( +/obj/structure/closet/masks, +/obj/structure/sign/nanotrasen{ + pixel_x = 32; + pixel_y = 32 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"crF" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/gloves/color/yellow, +/obj/item/weapon/storage/toolbox/electrical, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/bot, +/area/engine/engineering) +"crG" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/yellow, +/area/engine/engineering) +"crH" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/status_display{ + pixel_x = 32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/engineering) +"crI" = ( +/turf/closed/wall/r_wall, +/area/engine/engineering{ + name = "Engineering Storage" + }) +"crJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"crK" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plasteel/black, +/area/library) +"crL" = ( +/obj/structure/easel, +/obj/item/weapon/canvas/twentythreeXnineteen, +/obj/item/weapon/canvas/twentythreeXtwentythree, +/obj/item/weapon/canvas/twentythreeXtwentythree, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/library) +"crM" = ( +/obj/structure/easel, +/obj/item/weapon/canvas/nineteenXnineteen, +/obj/item/weapon/canvas/twentythreeXtwentythree, +/obj/item/weapon/canvas/twentythreeXtwentythree, +/obj/machinery/light_switch{ + pixel_y = 26 + }, +/turf/open/floor/plasteel/black, +/area/library) +"crN" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/crayons, +/obj/item/weapon/storage/crayons, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/library) +"crO" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/fancy/candle_box{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/fancy/candle_box, +/turf/open/floor/plasteel/black, +/area/library) +"crP" = ( +/obj/structure/dresser, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/black, +/area/library) +"crQ" = ( +/obj/machinery/light_switch{ + pixel_y = 26 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/library) +"crR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/library) +"crS" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/library) +"crT" = ( +/obj/structure/bookcase{ + name = "Forbidden Knowledge" + }, +/turf/open/floor/plasteel/black, +/area/library) +"crU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"crV" = ( +/obj/item/stack/cable_coil, +/obj/item/device/multitool, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"crW" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"crX" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"crY" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"crZ" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "E.V.A. Storage APC"; + pixel_x = 0; + pixel_y = 26 + }, +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"csa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"csb" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plasteel/warning{ + tag = "icon-plasteel_warn (NORTHEAST)"; + icon_state = "plasteel_warn"; + dir = 5 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"csc" = ( +/obj/item/stack/packageWrap, +/obj/item/weapon/hand_labeler, +/obj/machinery/newscaster{ + pixel_x = 32 + }, +/obj/structure/table/reinforced, +/obj/machinery/camera{ + c_tag = "Bridge - E.V.A. Fore"; + dir = 2; + name = "command camera" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"csd" = ( +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"cse" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"csf" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/turf/open/floor/plasteel/blue/corner, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"csg" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/chair/comfy/black{ + dir = 1 + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel/blue/corner, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"csh" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/blue/corner, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"csi" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/chair/comfy/black{ + dir = 1 + }, +/turf/open/floor/plasteel/blue/corner, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"csj" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/plasteel/blue/corner, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"csk" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/corner, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"csl" = ( +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"csm" = ( +/obj/structure/closet/secure_closet/exile, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/gateway) +"csn" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + cell_type = 10000; + dir = 1; + name = "Gateway APC"; + pixel_x = 0; + pixel_y = 28 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/bot, +/area/gateway) +"cso" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/light_switch{ + pixel_x = 26; + pixel_y = 26 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/bot, +/area/gateway) +"csp" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/gateway) +"csq" = ( +/obj/structure/closet/crate, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/rods{ + amount = 25 + }, +/obj/item/weapon/storage/toolbox/emergency, +/obj/item/device/flashlight, +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/gateway) +"csr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (NORTH)"; + icon_state = "neutralcorner"; + dir = 1 + }, +/area/hallway/primary/central) +"css" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/central) +"cst" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Starboard Auxiliary Hallway" + }, +/turf/open/floor/plasteel/warning/side, +/area/hallway/primary/central) +"csu" = ( +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/central) +"csv" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/central) +"csw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/central) +"csx" = ( +/obj/effect/landmark{ + name = "lightsout" + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/central) +"csy" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warning/side, +/area/hallway/primary/central) +"csz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/central) +"csA" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/central) +"csB" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/tinted/fulltile, +/turf/open/floor/plating, +/area/crew_quarters/locker) +"csC" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/crew_quarters/locker) +"csD" = ( +/obj/structure/table, +/obj/item/weapon/storage/crayons, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/locker) +"csE" = ( +/obj/structure/table, +/obj/item/weapon/folder, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/locker) +"csF" = ( +/obj/structure/table, +/obj/item/toy/cards/deck, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/locker) +"csG" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/locker) +"csH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/locker) +"csI" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/crew_quarters/locker) +"csJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/maintenance/starboard) +"csK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"csL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/starboard) +"csM" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/starboard) +"csN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"csO" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"csP" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"csQ" = ( +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"csR" = ( +/obj/structure/closet/athletic_mixed, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"csS" = ( +/obj/machinery/field/generator{ + anchored = 1; + state = 2 + }, +/turf/open/floor/plating/warnplate{ + dir = 10 + }, +/area/space) +"csT" = ( +/obj/machinery/field/generator{ + anchored = 1; + state = 2 + }, +/turf/open/floor/plating/warnplate, +/area/space) +"csU" = ( +/obj/machinery/field/generator{ + anchored = 1; + state = 2 + }, +/turf/open/floor/plating/warnplate{ + dir = 6 + }, +/area/space) +"csV" = ( +/obj/machinery/power/rad_collector{ + anchored = 1 + }, +/obj/machinery/power/rad_collector{ + anchored = 1 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating/warnplate{ + dir = 4; + luminosity = 2; + initial_gas_mix = "o2=0.01;n2=0.01"; + temperature = 2.7 + }, +/area/engine/engineering) +"csW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "engpa"; + name = "Engineering Chamber Shutters" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/engine/engineering) +"csX" = ( +/obj/structure/rack, +/obj/item/weapon/crowbar, +/obj/item/weapon/wirecutters, +/obj/item/stack/cable_coil/white, +/turf/open/floor/plasteel/bot, +/area/engine/engineering) +"csY" = ( +/obj/structure/rack, +/obj/machinery/button/door{ + id = "engpa"; + name = "Engineering Chamber Shutters Control"; + pixel_y = 26; + req_access_txt = "11" + }, +/obj/item/weapon/storage/belt/utility, +/obj/item/weapon/weldingtool, +/obj/item/clothing/head/welding, +/turf/open/floor/plasteel/bot, +/area/engine/engineering) +"csZ" = ( +/obj/structure/closet/toolcloset, +/turf/open/floor/plasteel/bot, +/area/engine/engineering) +"cta" = ( +/obj/structure/closet/secure_closet/engineering_electrical, +/obj/machinery/light_switch{ + pixel_x = -26; + pixel_y = 26 + }, +/turf/open/floor/plasteel/bot, +/area/engine/engineering) +"ctb" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/engineering) +"ctc" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/electricshock{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/bot, +/area/engine/engineering{ + name = "Engineering Storage" + }) +"ctd" = ( +/obj/machinery/suit_storage_unit/engine, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/ai_status_display{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/engine/engineering{ + name = "Engineering Storage" + }) +"cte" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = 26 + }, +/obj/machinery/suit_storage_unit/engine, +/turf/open/floor/plasteel/warning, +/area/engine/engineering{ + name = "Engineering Storage" + }) +"ctf" = ( +/obj/machinery/suit_storage_unit/engine, +/obj/machinery/status_display{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/engine/engineering{ + name = "Engineering Storage" + }) +"ctg" = ( +/obj/structure/table/reinforced, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/weapon/crowbar, +/obj/item/weapon/grenade/chem_grenade/metalfoam, +/obj/item/weapon/grenade/chem_grenade/metalfoam, +/obj/structure/sign/poster{ + icon_state = "poster22_legit"; + pixel_y = 32; + tag = "icon-poster22_legit" + }, +/turf/open/floor/plasteel/bot, +/area/engine/engineering{ + name = "Engineering Storage" + }) +"cth" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cti" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"ctj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"ctk" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"ctl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"ctm" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"ctn" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 6 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cto" = ( +/obj/structure/table/wood, +/obj/item/weapon/clipboard, +/obj/item/weapon/folder, +/obj/machinery/ai_status_display{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/black, +/area/library) +"ctp" = ( +/turf/open/floor/plasteel/grimy, +/area/library) +"ctq" = ( +/obj/structure/chair/office/dark, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/library) +"ctr" = ( +/obj/structure/chair/office/dark, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/library) +"cts" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/library) +"ctt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/library) +"ctu" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/library) +"ctv" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/briefcase{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/secure/briefcase, +/obj/machinery/newscaster{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/library) +"ctw" = ( +/obj/structure/destructible/cult/tome, +/obj/item/weapon/book/codex_gigas, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/library) +"ctx" = ( +/obj/effect/landmark{ + name = "revenantspawn" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/library) +"cty" = ( +/obj/structure/chair/comfy/black, +/obj/effect/landmark/start{ + name = "Librarian" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/library) +"ctz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/library) +"ctA" = ( +/obj/machinery/newscaster{ + pixel_x = 32 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/library) +"ctB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/camera{ + c_tag = "Central Hallway - Aft Port"; + dir = 4; + name = "hallway camera" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"ctC" = ( +/obj/item/stack/sheet/plasteel/twenty, +/obj/item/stack/sheet/rglass{ + amount = 30; + pixel_x = 2; + pixel_y = -2 + }, +/obj/item/weapon/crowbar, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"ctD" = ( +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"ctE" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/warning, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"ctF" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/warning, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"ctG" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"ctH" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/warning, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"ctI" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/warning, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"ctJ" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"ctK" = ( +/obj/machinery/cell_charger, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/table/reinforced, +/obj/item/weapon/stock_parts/cell/high, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"ctL" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"ctM" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"ctN" = ( +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"ctO" = ( +/turf/open/floor/plasteel/neutral/side, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"ctP" = ( +/turf/open/floor/plasteel/neutral/corner, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"ctQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/corner, +/area/bridge/meeting_room{ + name = "\improper Command Hallway" + }) +"ctR" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/gateway) +"ctS" = ( +/obj/structure/closet/secure_closet/medical1, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/gateway) +"ctT" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + tag = "icon-plasteel_warn (NORTHWEST)"; + icon_state = "plasteel_warn"; + dir = 9 + }, +/area/gateway) +"ctU" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (NORTH)"; + dir = 1 + }, +/area/gateway) +"ctV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (NORTHEAST)"; + dir = 5 + }, +/area/gateway) +"ctW" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plasteel/bot, +/area/gateway) +"ctX" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/gateway) +"ctY" = ( +/obj/machinery/gateway{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/gateway) +"ctZ" = ( +/obj/machinery/gateway{ + dir = 1 + }, +/obj/machinery/status_display{ + density = 0; + layer = 4; + pixel_x = 0; + pixel_y = 32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/gateway) +"cua" = ( +/obj/machinery/gateway{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/gateway) +"cub" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (NORTH)"; + icon_state = "neutralcorner"; + dir = 1 + }, +/area/hallway/primary/central) +"cuc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/central) +"cud" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/glass{ + name = "Starboard Auxiliary Hallway" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/hallway/primary/central) +"cue" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/central) +"cuf" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/central) +"cug" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warning/side, +/area/hallway/primary/central) +"cuh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/hallway/primary/central) +"cui" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/hallway/primary/central) +"cuj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/hallway/primary/central) +"cuk" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Lockerroom" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/crew_quarters/locker) +"cul" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/crew_quarters/locker) +"cum" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/locker) +"cun" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/locker) +"cuo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/locker) +"cup" = ( +/obj/effect/landmark{ + name = "lightsout" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/locker) +"cuq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/obj/structure/disposalpipe/junction, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/locker) +"cur" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular, +/obj/machinery/status_display{ + pixel_x = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/corner, +/area/crew_quarters/locker) +"cus" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"cut" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/starboard) +"cuu" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"cuv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/girder, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"cuw" = ( +/obj/structure/rack, +/obj/item/weapon/wrench, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/starboard) +"cux" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/starboard) +"cuy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 6 + }, +/area/maintenance/starboard) +"cuz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cuA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cuB" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cuC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/weightlifter, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cuD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cuE" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/obj/structure/stacklifter, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cuF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cuG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cuH" = ( +/obj/structure/closet/boxinggloves, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cuI" = ( +/obj/machinery/power/grounding_rod, +/turf/open/floor/plating/warnplate/corner{ + dir = 1 + }, +/area/space) +"cuJ" = ( +/turf/open/floor/plating/warnplate, +/area/space) +"cuK" = ( +/obj/machinery/power/tesla_coil, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plating/warnplate, +/area/space) +"cuL" = ( +/obj/machinery/power/grounding_rod, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating/warnplate/corner, +/area/space) +"cuM" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "engpa"; + name = "Engineering Chamber Shutters" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/engine/engineering) +"cuN" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/neutral, +/area/engine/engineering) +"cuO" = ( +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engineering Storage" + }) +"cuP" = ( +/obj/structure/rack, +/obj/item/clothing/gloves/color/black, +/obj/item/weapon/wrench, +/obj/item/clothing/glasses/meson/engine, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light_switch{ + pixel_x = -22; + pixel_y = 26 + }, +/turf/open/floor/plasteel/bot, +/area/engine/engineering{ + name = "Engineering Storage" + }) +"cuQ" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 1; + icon_state = "yellow"; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; + tag = "icon-yellow (NORTH)" + }, +/area/engine/engineering{ + name = "Engineering Storage" + }) +"cuR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1; + icon_state = "yellow"; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; + tag = "icon-yellow (NORTH)" + }, +/area/engine/engineering{ + name = "Engineering Storage" + }) +"cuS" = ( +/obj/structure/table/reinforced, +/obj/item/stack/cable_coil/white{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stack/cable_coil/white, +/obj/item/weapon/electronics/airlock, +/obj/item/weapon/electronics/airlock, +/obj/effect/decal/cleanable/dirt, +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/turf/open/floor/plasteel/bot, +/area/engine/engineering{ + name = "Engineering Storage" + }) +"cuT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cuU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cuV" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/disposal/bin, +/obj/structure/sign/kiddieplaque{ + desc = "A long list of rules to be followed when in the library, extolling the virtues of being quiet at all times and threatening those who would dare eat hot food inside."; + name = "Library Rules Sign"; + pixel_x = -32; + pixel_y = 0 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Library Backroom"; + dir = 4; + name = "library camera" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/library) +"cuW" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/library) +"cuX" = ( +/obj/structure/table/wood, +/obj/item/device/paicard, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/library) +"cuY" = ( +/obj/structure/table/wood, +/obj/item/weapon/folder, +/obj/item/weapon/pen, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/library) +"cuZ" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/library) +"cva" = ( +/obj/effect/landmark{ + name = "blobstart" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/library) +"cvb" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/library) +"cvc" = ( +/obj/machinery/photocopier, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/library) +"cvd" = ( +/obj/structure/filingcabinet, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/turf/open/floor/plasteel/black, +/area/library) +"cve" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/machinery/status_display{ + pixel_x = 0; + pixel_y = -32 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/library) +"cvf" = ( +/obj/machinery/light, +/obj/structure/table/wood, +/obj/item/weapon/folder, +/obj/item/device/laser_pointer{ + pixel_x = 3 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_y = -26 + }, +/turf/open/floor/plasteel/black, +/area/library) +"cvg" = ( +/obj/structure/table/wood, +/obj/item/device/taperecorder, +/obj/item/device/camera, +/obj/machinery/ai_status_display{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/library) +"cvh" = ( +/obj/machinery/photocopier, +/turf/open/floor/plasteel/black, +/area/library) +"cvi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/firealarm{ + dir = 4; + icon_state = "fire0"; + pixel_x = 24; + pixel_y = 0; + tag = "icon-fire0 (EAST)" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"cvj" = ( +/obj/machinery/door/window/northleft{ + dir = 4; + name = "Magboot Storage"; + pixel_x = -1; + pixel_y = 0; + req_access_txt = "19" + }, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/clothing/shoes/magboots{ + pixel_x = -4; + pixel_y = 3 + }, +/obj/item/clothing/shoes/magboots{ + pixel_x = 0; + pixel_y = 0 + }, +/obj/item/clothing/shoes/magboots{ + pixel_x = 4; + pixel_y = -3 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"cvk" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"cvl" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/turf/open/floor/plasteel/delivery, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"cvm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"cvn" = ( +/obj/item/device/radio/beacon, +/turf/open/floor/plasteel/neutral, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"cvo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"cvp" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"cvq" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"cvr" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "corporatelounge"; + name = "Corporate Lounge Shutters" + }, +/turf/open/floor/plating, +/area/assembly/showroom{ + name = "\improper Corporate Showroom" + }) +"cvs" = ( +/turf/closed/wall/r_wall, +/area/assembly/showroom{ + name = "\improper Corporate Showroom" + }) +"cvt" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Corporate Lounge"; + req_access = null; + req_access_txt = "19" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/assembly/showroom{ + name = "\improper Corporate Showroom" + }) +"cvu" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Corporate Lounge"; + req_access = null; + req_access_txt = "19" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/assembly/showroom{ + name = "\improper Corporate Showroom" + }) +"cvv" = ( +/obj/structure/bed/roller, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/gateway) +"cvw" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/gateway) +"cvx" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral, +/area/gateway) +"cvy" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (EAST)"; + dir = 4 + }, +/area/gateway) +"cvz" = ( +/obj/structure/table, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/item/weapon/clipboard, +/obj/item/weapon/paper/pamphlet, +/obj/item/weapon/paper/pamphlet, +/obj/item/weapon/paper/pamphlet, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/gateway) +"cvA" = ( +/obj/structure/cable/white, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/gateway) +"cvB" = ( +/obj/machinery/gateway{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/gateway) +"cvC" = ( +/obj/machinery/gateway/centerstation, +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/black, +/area/gateway) +"cvD" = ( +/obj/machinery/gateway{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/gateway) +"cvE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/camera{ + c_tag = "Central Hallway - Dormitory Hallway"; + dir = 4; + name = "hallway camera" + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (NORTH)"; + icon_state = "neutralcorner"; + dir = 1 + }, +/area/hallway/primary/central) +"cvF" = ( +/turf/closed/wall, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"cvG" = ( +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock{ + name = "Primary Restroom" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"cvH" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/crew_quarters/locker) +"cvI" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/locker) +"cvJ" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/toolbox/emergency, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/locker) +"cvK" = ( +/obj/structure/table, +/obj/item/toy/foamblade, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/locker) +"cvL" = ( +/obj/structure/table, +/obj/item/weapon/storage/briefcase, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/locker) +"cvM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/locker) +"cvN" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/locker) +"cvO" = ( +/obj/structure/table, +/obj/item/weapon/folder, +/obj/item/weapon/pen, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/corner, +/area/crew_quarters/locker) +"cvP" = ( +/turf/closed/wall, +/area/crew_quarters/sleep) +"cvQ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cvR" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cvS" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cvT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cvU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/punching_bag, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cvV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cvW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cvX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cvY" = ( +/obj/structure/lattice, +/obj/machinery/camera/emp_proof{ + c_tag = "Containment - Aft Port"; + dir = 4; + icon_state = "camera"; + network = list("Singularity"); + tag = "icon-camera (NORTHEAST)" + }, +/turf/open/space, +/area/space) +"cvZ" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/turf/open/space, +/area/space) +"cwa" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/space, +/area/space) +"cwb" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/space, +/area/space) +"cwc" = ( +/obj/machinery/power/rad_collector{ + anchored = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating/warnplate{ + dir = 4; + luminosity = 2; + initial_gas_mix = "o2=0.01;n2=0.01"; + temperature = 2.7 + }, +/area/engine/engineering) +"cwd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start{ + name = "Station Engineer" + }, +/turf/open/floor/plasteel/neutral, +/area/engine/engineering) +"cwe" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/engine/engineering) +"cwf" = ( +/obj/structure/table/reinforced, +/obj/item/stack/packageWrap, +/obj/item/weapon/hand_labeler, +/turf/open/floor/plasteel/delivery, +/area/engine/engineering) +"cwg" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/engineering) +"cwh" = ( +/obj/structure/cable/white, +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engineering Storage" + }) +"cwi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/machinery/power/port_gen/pacman, +/turf/open/floor/plasteel/bot, +/area/engine/engineering{ + name = "Engineering Storage" + }) +"cwj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral, +/area/engine/engineering{ + name = "Engineering Storage" + }) +"cwk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/yellow, +/area/engine/engineering{ + name = "Engineering Storage" + }) +"cwl" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral, +/area/engine/engineering{ + name = "Engineering Storage" + }) +"cwm" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/shoes/magboots{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/clothing/shoes/magboots, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/delivery, +/area/engine/engineering{ + name = "Engineering Storage" + }) +"cwn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cwo" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/reinforced, +/obj/item/weapon/storage/toolbox/mechanical, +/obj/item/device/flashlight, +/turf/open/floor/plasteel/bot, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cwp" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/tank/internals/emergency_oxygen{ + pixel_x = 6 + }, +/obj/item/weapon/tank/internals/emergency_oxygen{ + pixel_x = -6 + }, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/obj/structure/sign/nosmoking_2{ + pixel_y = 32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cwq" = ( +/obj/structure/rack, +/obj/item/clothing/gloves/color/black, +/obj/item/weapon/wrench, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plasteel/bot, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cwr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plasteel/delivery, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cws" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/turf/open/floor/plasteel/black, +/area/library) +"cwt" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/library) +"cwu" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/pill_bottle/dice, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/carpet, +/area/library) +"cwv" = ( +/obj/structure/table/wood, +/obj/item/toy/cards/deck/cas{ + pixel_x = -5; + pixel_y = 5 + }, +/obj/item/toy/cards/deck/cas/black{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/carpet, +/area/library) +"cww" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/library) +"cwx" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/library) +"cwy" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/black, +/area/library) +"cwz" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/newscaster{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/library) +"cwA" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall/r_wall, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"cwB" = ( +/obj/structure/closet/crate/rcd{ + pixel_y = 4 + }, +/obj/machinery/door/window/northleft{ + dir = 4; + name = "RCD Storage"; + pixel_x = 1; + pixel_y = 0; + req_access_txt = "19" + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"cwC" = ( +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"cwD" = ( +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/plasteel/bot, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"cwE" = ( +/obj/machinery/camera/motion{ + c_tag = "E.V.A. Storage"; + dir = 8; + name = "motion-sensitive command camera" + }, +/obj/machinery/requests_console{ + department = "E.V.A. Storage"; + departmentType = 0; + name = "E.V.A. RC"; + pixel_x = 32; + pixel_y = 0 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"cwF" = ( +/turf/closed/wall, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"cwG" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/showcase{ + desc = "A stand with an empty old NanoTrasen Corporation combat mech bolted to it. It is described as the premier unit used to defend corporate interests and employees."; + icon = 'icons/mecha/mecha.dmi'; + icon_state = "marauder"; + name = "combat mech exhibit" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/grimy, +/area/assembly/showroom{ + name = "\improper Corporate Showroom" + }) +"cwH" = ( +/obj/structure/bookcase, +/obj/structure/sign/nanotrasen{ + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/wood, +/area/assembly/showroom{ + name = "\improper Corporate Showroom" + }) +"cwI" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/assembly/showroom{ + name = "\improper Corporate Showroom" + }) +"cwJ" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/grimy, +/area/assembly/showroom{ + name = "\improper Corporate Showroom" + }) +"cwK" = ( +/obj/machinery/ai_status_display{ + pixel_y = 32 + }, +/obj/machinery/camera{ + c_tag = "Bridge - Corporate Lounge"; + dir = 2; + name = "command camera" + }, +/turf/open/floor/plasteel/vault{ + dir = 6 + }, +/area/assembly/showroom{ + name = "\improper Corporate Showroom" + }) +"cwL" = ( +/obj/structure/fireplace, +/turf/open/floor/plasteel/vault, +/area/assembly/showroom{ + name = "\improper Corporate Showroom" + }) +"cwM" = ( +/obj/machinery/status_display{ + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plasteel/vault{ + dir = 10 + }, +/area/assembly/showroom{ + name = "\improper Corporate Showroom" + }) +"cwN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/assembly/showroom{ + name = "\improper Corporate Showroom" + }) +"cwO" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/showcase{ + desc = "A flimsy model of a standard NanoTrasen automated loyalty implant machine. With secure positioning harnesses and a robotic surgical injector, brain damage and other serious medical anomalies are now up to 60% less likely!"; + icon = 'icons/obj/machines/implantchair.dmi'; + icon_state = "implantchair"; + layer = 2.7; + name = "NanoTrasen automated loyalty implanter exhibit"; + pixel_x = 0; + pixel_y = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/assembly/showroom{ + name = "\improper Corporate Showroom" + }) +"cwP" = ( +/obj/structure/rack, +/obj/item/stack/medical/gauze, +/obj/item/stack/medical/bruise_pack, +/obj/item/stack/medical/ointment, +/obj/item/weapon/reagent_containers/syringe/epinephrine{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/reagent_containers/syringe/charcoal, +/obj/machinery/vending/wallmed{ + name = "Emergency NanoMed"; + pixel_x = 0; + pixel_y = 0; + req_access_txt = "0"; + use_power = 0 + }, +/obj/machinery/camera{ + c_tag = "Bridge - Gateway Atrium"; + dir = 4; + name = "command camera" + }, +/turf/open/floor/plasteel/bot, +/area/gateway) +"cwQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/gateway) +"cwR" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral, +/area/gateway) +"cwS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (EAST)"; + dir = 4 + }, +/area/gateway) +"cwT" = ( +/obj/structure/tank_dispenser/oxygen, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 26 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/gateway) +"cwU" = ( +/turf/closed/wall, +/area/gateway) +"cwV" = ( +/obj/machinery/gateway{ + dir = 10 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/gateway) +"cwW" = ( +/obj/machinery/gateway, +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/gateway) +"cwX" = ( +/obj/machinery/gateway{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera{ + c_tag = "Bridge - Gateway Chamber"; + dir = 8; + name = "command camera" + }, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/gateway) +"cwY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = -26; + pixel_y = 0 + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (NORTH)"; + icon_state = "neutralcorner"; + dir = 1 + }, +/area/hallway/primary/central) +"cwZ" = ( +/obj/machinery/shower{ + icon_state = "shower"; + dir = 4 + }, +/obj/item/weapon/soap/nanotrasen, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"cxa" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"cxb" = ( +/obj/machinery/shower{ + dir = 8; + icon_state = "shower" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"cxc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"cxd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (NORTH)"; + icon_state = "neutralcorner"; + dir = 1 + }, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"cxe" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"cxf" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 1; + name = "Primary Restroom APC"; + pixel_x = 0; + pixel_y = 25 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Primary Restroom"; + dir = 2; + name = "restroom camera" + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (NORTH)"; + icon_state = "neutralcorner"; + dir = 1 + }, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"cxg" = ( +/obj/structure/urinal{ + pixel_y = 28 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"cxh" = ( +/obj/structure/urinal{ + pixel_y = 28 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"cxi" = ( +/obj/structure/urinal{ + pixel_y = 28 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"cxj" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"cxk" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/crew_quarters/locker) +"cxl" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/locker) +"cxm" = ( +/obj/structure/chair/stool, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/locker) +"cxn" = ( +/obj/structure/table, +/obj/item/weapon/folder, +/obj/item/weapon/pen, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/locker) +"cxo" = ( +/obj/structure/table, +/obj/item/device/paicard, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/locker) +"cxp" = ( +/obj/structure/table, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/item/toy/gun, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/locker) +"cxq" = ( +/obj/structure/chair/stool, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/locker) +"cxr" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/locker) +"cxs" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + dir = 4; + name = "Lockerroom APC"; + pixel_x = 26; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/crew_quarters/locker) +"cxt" = ( +/obj/structure/dresser, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/sleep) +"cxu" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/clothing/suit/jacket{ + desc = "All the class of a trenchcoat without the security fibers."; + icon_state = "greydet"; + name = "trenchcoat" + }, +/obj/item/clothing/suit/toggle/lawyer/black, +/obj/machinery/status_display{ + pixel_y = 32 + }, +/obj/item/clothing/head/fedora, +/obj/item/clothing/under/blacktango, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/sleep) +"cxv" = ( +/obj/structure/table/wood, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 26; + pixel_y = 26 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/sleep) +"cxw" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp, +/obj/structure/sign/nanotrasen{ + pixel_x = -32 + }, +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"cxx" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/status_display{ + pixel_y = 32 + }, +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"cxy" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/item/clothing/suit/jacket/letterman_nanotrasen, +/obj/item/clothing/suit/toggle/lawyer, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 26; + pixel_y = 26 + }, +/obj/item/clothing/under/kilt, +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"cxz" = ( +/obj/structure/dresser, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"cxA" = ( +/obj/structure/bed, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/weapon/bedsheet/red, +/obj/machinery/status_display{ + pixel_y = 32 + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"cxB" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/item/clothing/suit/jacket{ + desc = "All the class of a trenchcoat without the security fibers."; + icon_state = "detective"; + name = "trenchcoat" + }, +/obj/item/clothing/suit/toggle/lawyer/purple, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 26; + pixel_y = 26 + }, +/obj/item/clothing/head/fedora{ + icon_state = "detective" + }, +/obj/item/clothing/under/geisha, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"cxC" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/vending/coffee, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/delivery, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cxD" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cxE" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cxF" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cxG" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cxH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cxI" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cxJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/engine/engineering) +"cxK" = ( +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"cxL" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 6 + }, +/area/engine/engineering) +"cxM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/engineering) +"cxN" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/engineering) +"cxO" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_engineering{ + name = "Engineering Storage"; + req_access_txt = "32" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning/side, +/area/engine/engineering{ + name = "Engineering Storage" + }) +"cxP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/delivery, +/area/engine/engineering{ + name = "Engineering Storage" + }) +"cxQ" = ( +/turf/open/floor/plasteel/yellow, +/area/engine/engineering{ + name = "Engineering Storage" + }) +"cxR" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/bot, +/area/engine/engineering{ + name = "Engineering Storage" + }) +"cxS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/nosmoking_2{ + pixel_x = 32 + }, +/obj/structure/tank_dispenser, +/obj/machinery/camera{ + c_tag = "Engineering - Gear Storage"; + dir = 8; + name = "engineering camera" + }, +/turf/open/floor/plasteel/bot, +/area/engine/engineering{ + name = "Engineering Storage" + }) +"cxT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cxU" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cxV" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cxW" = ( +/turf/open/floor/plasteel/bot, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cxX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cxY" = ( +/obj/structure/table/wood, +/obj/item/weapon/newspaper{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/newspaper, +/obj/machinery/status_display{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/library) +"cxZ" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/grimy, +/area/library) +"cya" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/library) +"cyb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/library) +"cyc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/library) +"cyd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/library) +"cye" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/closed/wall, +/area/library) +"cyf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cyg" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cyh" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cyi" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cyj" = ( +/obj/machinery/door/window/northleft{ + dir = 4; + name = "Jetpack Storage"; + pixel_x = -1; + pixel_y = 0; + req_access_txt = "19" + }, +/obj/structure/window/reinforced, +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/tank/jetpack/carbondioxide{ + pixel_x = 4; + pixel_y = -1 + }, +/obj/item/weapon/tank/jetpack/carbondioxide{ + pixel_x = 0; + pixel_y = 0 + }, +/obj/item/weapon/tank/jetpack/carbondioxide{ + pixel_x = -4; + pixel_y = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"cyk" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/bot, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"cyl" = ( +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"cym" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/power/apc{ + dir = 8; + name = "Corporate Lounge APC"; + pixel_x = -26; + pixel_y = 0 + }, +/turf/open/floor/wood, +/area/assembly/showroom{ + name = "\improper Corporate Showroom" + }) +"cyn" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/wood, +/area/assembly/showroom{ + name = "\improper Corporate Showroom" + }) +"cyo" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/wood, +/area/assembly/showroom{ + name = "\improper Corporate Showroom" + }) +"cyp" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/chair/comfy/brown{ + icon_state = "comfychair"; + dir = 4 + }, +/turf/open/floor/carpet, +/area/assembly/showroom{ + name = "\improper Corporate Showroom" + }) +"cyq" = ( +/obj/structure/table/wood, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey, +/turf/open/floor/carpet, +/area/assembly/showroom{ + name = "\improper Corporate Showroom" + }) +"cyr" = ( +/obj/structure/table/wood, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/item/weapon/storage/fancy/donut_box, +/turf/open/floor/carpet, +/area/assembly/showroom{ + name = "\improper Corporate Showroom" + }) +"cys" = ( +/obj/structure/table/wood, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/item/weapon/paper_bin, +/turf/open/floor/carpet, +/area/assembly/showroom{ + name = "\improper Corporate Showroom" + }) +"cyt" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/assembly/showroom{ + name = "\improper Corporate Showroom" + }) +"cyu" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/wood, +/area/assembly/showroom{ + name = "\improper Corporate Showroom" + }) +"cyv" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/wood, +/area/assembly/showroom{ + name = "\improper Corporate Showroom" + }) +"cyw" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/wood, +/area/assembly/showroom{ + name = "\improper Corporate Showroom" + }) +"cyx" = ( +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/structure/closet/crate/internals, +/turf/open/floor/plasteel/bot, +/area/gateway) +"cyy" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/gateway) +"cyz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/warning/corner{ + dir = 8 + }, +/area/gateway) +"cyA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (NORTHEAST)"; + dir = 5 + }, +/area/gateway) +"cyB" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/gateway) +"cyC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + tag = "icon-plasteel_warn (NORTHWEST)"; + icon_state = "plasteel_warn"; + dir = 9 + }, +/area/gateway) +"cyD" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (NORTH)"; + dir = 1 + }, +/area/gateway) +"cyE" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (NORTHEAST)"; + dir = 5 + }, +/area/gateway) +"cyF" = ( +/obj/machinery/shower{ + icon_state = "shower"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"cyG" = ( +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"cyH" = ( +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"cyI" = ( +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock{ + name = "Unisex Showers"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/warning/side, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"cyJ" = ( +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (NORTH)"; + icon_state = "neutralcorner"; + dir = 1 + }, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"cyK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"cyL" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"cyM" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"cyN" = ( +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"cyO" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"cyP" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"cyQ" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/crew_quarters/locker) +"cyR" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/locker) +"cyS" = ( +/obj/item/weapon/storage/pod{ + pixel_x = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/corner, +/area/crew_quarters/locker) +"cyT" = ( +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/sleep) +"cyU" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/black, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/sleep) +"cyV" = ( +/obj/structure/table/wood, +/obj/item/weapon/folder, +/obj/item/weapon/pen, +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"cyW" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"cyX" = ( +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"cyY" = ( +/obj/structure/table/wood, +/obj/item/weapon/folder/red, +/obj/item/weapon/pen, +/obj/structure/sign/nanotrasen{ + pixel_x = -32 + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"cyZ" = ( +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"cza" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/machinery/ai_status_display{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"czb" = ( +/obj/structure/stacklifter, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"czc" = ( +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"czd" = ( +/obj/structure/weightlifter, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cze" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"czf" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"czg" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"czh" = ( +/obj/machinery/status_display, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"czi" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"czj" = ( +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/engine/engineering) +"czk" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/engine/engineering) +"czl" = ( +/obj/machinery/camera/emp_proof{ + c_tag = "Containment - Aft Starboard"; + dir = 8; + icon_state = "camera"; + network = list("Singularity"); + tag = "icon-camera (NORTHWEST)" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"czm" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/status_display{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/engine/engineering) +"czn" = ( +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/engine/engineering) +"czo" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 4 + }, +/area/engine/engineering) +"czp" = ( +/obj/effect/landmark{ + name = "lightsout" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/engine/engineering) +"czq" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/engineering) +"czr" = ( +/obj/structure/cable/white, +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engineering Storage" + }) +"czs" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/bot, +/area/engine/engineering{ + name = "Engineering Storage" + }) +"czt" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral, +/area/engine/engineering{ + name = "Engineering Storage" + }) +"czu" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/yellow, +/area/engine/engineering{ + name = "Engineering Storage" + }) +"czv" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/neutral, +/area/engine/engineering{ + name = "Engineering Storage" + }) +"czw" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/tank/jetpack/carbondioxide{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/tank/jetpack/carbondioxide, +/obj/machinery/power/apc{ + dir = 4; + name = "Engineering Storage APC"; + pixel_x = 26; + pixel_y = 0 + }, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/turf/open/floor/plasteel/delivery, +/area/engine/engineering{ + name = "Engineering Storage" + }) +"czx" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/decal/cleanable/dirt, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"czy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/yellow, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"czz" = ( +/obj/effect/landmark{ + name = "blobstart" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"czA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"czB" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning/side, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"czC" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"czD" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp, +/turf/open/floor/plasteel/black, +/area/library) +"czE" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/fancy/donut_box, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/library) +"czF" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/black, +/area/library) +"czG" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_y = -26 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/library) +"czH" = ( +/obj/machinery/light, +/obj/structure/dresser, +/obj/machinery/status_display{ + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/library) +"czI" = ( +/obj/structure/table/wood, +/obj/item/weapon/dice/d20{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/dice/d10{ + pixel_x = -3 + }, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/library) +"czJ" = ( +/obj/structure/filingcabinet, +/obj/machinery/atmospherics/pipe/manifold/supply, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/black, +/area/library) +"czK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/library) +"czL" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/library) +"czM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"czN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plasteel/neutral, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"czO" = ( +/turf/open/floor/plasteel/neutral, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"czP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"czQ" = ( +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/weapon/wrench, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/structure/table/reinforced, +/obj/item/weapon/grenade/chem_grenade/metalfoam, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"czR" = ( +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"czS" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"czT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"czU" = ( +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"czV" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"czW" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"czX" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + tag = "icon-plasteel_warn (NORTHEAST)"; + icon_state = "plasteel_warn"; + dir = 5 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"czY" = ( +/obj/item/stack/rods{ + amount = 25 + }, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"czZ" = ( +/obj/structure/table/wood, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/item/weapon/clipboard, +/obj/item/toy/figure/dsquad, +/turf/open/floor/plasteel/grimy, +/area/assembly/showroom{ + name = "\improper Corporate Showroom" + }) +"cAa" = ( +/turf/open/floor/plasteel/grimy, +/area/assembly/showroom{ + name = "\improper Corporate Showroom" + }) +"cAb" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/assembly/showroom{ + name = "\improper Corporate Showroom" + }) +"cAc" = ( +/obj/structure/table/wood, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/item/weapon/folder/blue, +/obj/item/weapon/pen, +/turf/open/floor/carpet, +/area/assembly/showroom{ + name = "\improper Corporate Showroom" + }) +"cAd" = ( +/obj/structure/table/wood, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/item/clothing/mask/cigarette/cigar/cohiba{ + pixel_x = 3 + }, +/obj/item/clothing/mask/cigarette/cigar/havana{ + pixel_x = -3 + }, +/obj/item/clothing/mask/cigarette/cigar, +/turf/open/floor/carpet, +/area/assembly/showroom{ + name = "\improper Corporate Showroom" + }) +"cAe" = ( +/obj/structure/table/wood, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/item/weapon/lighter, +/turf/open/floor/carpet, +/area/assembly/showroom{ + name = "\improper Corporate Showroom" + }) +"cAf" = ( +/obj/structure/chair/comfy/brown{ + icon_state = "comfychair"; + dir = 8 + }, +/turf/open/floor/carpet, +/area/assembly/showroom{ + name = "\improper Corporate Showroom" + }) +"cAg" = ( +/obj/structure/table/wood, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/item/weapon/storage/secure/briefcase, +/turf/open/floor/plasteel/grimy, +/area/assembly/showroom{ + name = "\improper Corporate Showroom" + }) +"cAh" = ( +/obj/structure/table, +/obj/item/weapon/storage/belt, +/obj/item/device/radio, +/obj/item/device/radio, +/obj/item/device/radio, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/gateway) +"cAi" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/gateway) +"cAj" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning, +/area/gateway) +"cAk" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning, +/area/gateway) +"cAl" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (SOUTHEAST)"; + dir = 6 + }, +/area/gateway) +"cAm" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/glass_command{ + name = "Gateway Chamber" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/gateway) +"cAn" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/gateway) +"cAo" = ( +/obj/machinery/holopad, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/gateway) +"cAp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (EAST)"; + dir = 4 + }, +/area/gateway) +"cAq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/shower{ + icon_state = "shower"; + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plating, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"cAr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"cAs" = ( +/obj/machinery/shower{ + dir = 8; + icon_state = "shower" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"cAt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"cAu" = ( +/obj/structure/mirror{ + desc = "Mirror mirror on the wall, who is the most robust of them all?"; + pixel_x = -26 + }, +/obj/structure/sink{ + dir = 8; + icon_state = "sink"; + pixel_x = -12 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"cAv" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"cAw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"cAx" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"cAy" = ( +/obj/machinery/status_display{ + pixel_y = -32 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"cAz" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/corner, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"cAA" = ( +/obj/machinery/light, +/obj/machinery/status_display{ + pixel_y = -32 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"cAB" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"cAC" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/airlock{ + name = "Primary Restroom" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"cAD" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/crew_quarters/locker) +"cAE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/crew_quarters/locker) +"cAF" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Locker Room - Aft"; + dir = 1; + name = "dormitories camera" + }, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/locker) +"cAG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/crew_quarters/locker) +"cAH" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/crew_quarters/locker) +"cAI" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral/corner, +/area/crew_quarters/locker) +"cAJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral/corner, +/area/crew_quarters/locker) +"cAK" = ( +/obj/structure/chair/office/dark, +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/sleep) +"cAL" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/structure/sign/nanotrasen{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/sleep) +"cAM" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/blue, +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"cAN" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp/green, +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"cAO" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"cAP" = ( +/obj/structure/table, +/obj/item/weapon/folder, +/obj/machinery/airalarm{ + dir = 4; + locked = 0; + pixel_x = -23; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cAQ" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cAR" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cAS" = ( +/turf/open/floor/engine{ + name = "Holodeck Projector Floor" + }, +/area/holodeck/rec_center) +"cAT" = ( +/obj/machinery/camera{ + c_tag = "Holodeck - Fore"; + dir = 2; + name = "holodeck camera" + }, +/turf/open/floor/engine{ + name = "Holodeck Projector Floor" + }, +/area/holodeck/rec_center) +"cAU" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/machinery/power/emitter{ + tag = "icon-emitter (NORTH)"; + icon_state = "emitter"; + dir = 1; + anchored = 1; + state = 2 + }, +/turf/open/floor/plating/warnplate, +/area/engine/engineering) +"cAV" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/grille, +/turf/open/floor/plating/warnplate{ + dir = 9 + }, +/area/engine/engineering) +"cAW" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/grille, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/engine/engineering) +"cAX" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/grille, +/turf/open/floor/plating/warnplate{ + dir = 5 + }, +/area/engine/engineering) +"cAY" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cAZ" = ( +/obj/machinery/door/airlock/external{ + name = "External Containment Access"; + req_access_txt = "10; 13" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning/side, +/area/engine/engineering) +"cBa" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/fans/tiny, +/turf/open/floor/plasteel/delivery, +/area/engine/engineering) +"cBb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/turf/open/floor/plasteel/yellow, +/area/engine/engineering) +"cBc" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral, +/area/engine/engineering) +"cBd" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/yellow, +/area/engine/engineering) +"cBe" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/engineering) +"cBf" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engineering Storage" + }) +"cBg" = ( +/obj/structure/rack, +/obj/item/weapon/storage/belt/utility, +/obj/item/weapon/weldingtool, +/obj/item/clothing/head/welding, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24; + pixel_y = -32 + }, +/turf/open/floor/plasteel/bot, +/area/engine/engineering{ + name = "Engineering Storage" + }) +"cBh" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering{ + name = "Engineering Storage" + }) +"cBi" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering{ + name = "Engineering Storage" + }) +"cBj" = ( +/obj/structure/table/reinforced, +/obj/item/stack/sheet/plasteel{ + amount = 50 + }, +/obj/item/stack/sheet/rglass{ + amount = 50; + pixel_x = 2; + pixel_y = -2 + }, +/obj/machinery/newscaster{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/bot, +/area/engine/engineering{ + name = "Engineering Storage" + }) +"cBk" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cBl" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cBm" = ( +/turf/open/floor/plasteel/yellow/side, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cBn" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/caution, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cBo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cBp" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cBq" = ( +/obj/item/weapon/clipboard, +/obj/item/weapon/folder/yellow, +/obj/machinery/light, +/obj/structure/table/reinforced, +/obj/item/device/gps, +/obj/item/device/gps, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"cBr" = ( +/obj/machinery/ai_status_display{ + pixel_y = -32 + }, +/obj/machinery/camera{ + c_tag = "Bridge - E.V.A. Aft"; + dir = 1; + name = "command camera" + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"cBs" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_y = -26 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"cBt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"cBu" = ( +/turf/open/floor/plasteel/warning, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"cBv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"cBw" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-18"; + layer = 4.1 + }, +/turf/open/floor/plasteel/warning, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"cBx" = ( +/obj/machinery/status_display{ + pixel_x = 0; + pixel_y = -32 + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"cBy" = ( +/obj/item/weapon/storage/belt, +/obj/item/device/radio, +/obj/machinery/light, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"cBz" = ( +/obj/structure/table/wood, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/item/weapon/folder/blue, +/obj/item/clothing/under/rank/centcom_commander{ + desc = "A replica of a jumpsuit worn by the highest ranking commanders under Nanotrasen's central command."; + name = "Replica Centcom officer's jumpsuit" + }, +/obj/item/clothing/head/centhat{ + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0); + desc = "A replica hat of a Central Commander's attire. It has a small tag on it saying, 'It's good to be emperor.'"; + name = "Replica Centcom hat" + }, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/grimy, +/area/assembly/showroom{ + name = "\improper Corporate Showroom" + }) +"cBA" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/photo_album, +/turf/open/floor/plasteel/grimy, +/area/assembly/showroom{ + name = "\improper Corporate Showroom" + }) +"cBB" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 0; + pixel_y = -26 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/grimy, +/area/assembly/showroom{ + name = "\improper Corporate Showroom" + }) +"cBC" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/chair/comfy/brown{ + dir = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/assembly/showroom{ + name = "\improper Corporate Showroom" + }) +"cBD" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel/grimy, +/area/assembly/showroom{ + name = "\improper Corporate Showroom" + }) +"cBE" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/chair/comfy/black{ + dir = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/assembly/showroom{ + name = "\improper Corporate Showroom" + }) +"cBF" = ( +/obj/machinery/button/door{ + id = "corporatelounge"; + name = "Corporate Lounge Shutters"; + pixel_x = -7; + pixel_y = -26 + }, +/obj/machinery/light_switch{ + pixel_x = 7; + pixel_y = -26 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/grimy, +/area/assembly/showroom{ + name = "\improper Corporate Showroom" + }) +"cBG" = ( +/obj/structure/table/wood, +/obj/item/device/paicard, +/turf/open/floor/plasteel/grimy, +/area/assembly/showroom{ + name = "\improper Corporate Showroom" + }) +"cBH" = ( +/obj/structure/table/wood, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/item/weapon/folder/red, +/obj/item/toy/gun, +/obj/item/clothing/head/beret/sec{ + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0); + desc = "A replica beret resembling that of a special operations officer under Nanotrasen."; + name = "replica officer's beret" + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 26 + }, +/turf/open/floor/plasteel/grimy, +/area/assembly/showroom{ + name = "\improper Corporate Showroom" + }) +"cBI" = ( +/obj/structure/table, +/obj/machinery/recharger, +/turf/open/floor/plasteel/bot, +/area/gateway) +"cBJ" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/machinery/button/door{ + id = "gatewayshutters"; + name = "Gateway Shutters"; + pixel_x = -26; + pixel_y = -26 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/bot, +/area/gateway) +"cBK" = ( +/obj/machinery/light_switch{ + pixel_x = -26; + pixel_y = -26 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/bot, +/area/gateway) +"cBL" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-18"; + layer = 4.1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/bot, +/area/gateway) +"cBM" = ( +/obj/machinery/recharge_station, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/gateway) +"cBN" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/gateway) +"cBO" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/gateway) +"cBP" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning, +/area/gateway) +"cBQ" = ( +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (SOUTHEAST)"; + dir = 6 + }, +/area/gateway) +"cBR" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/landmark{ + name = "lightsout" + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/central) +"cBS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/mirror{ + desc = "Mirror mirror on the wall, who is the most robust of them all?"; + pixel_x = -26 + }, +/obj/structure/sink{ + dir = 8; + icon_state = "sink"; + pixel_x = -12 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"cBT" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/corner, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"cBU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock{ + name = "Toilet Unit" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"cBV" = ( +/obj/machinery/door/airlock{ + name = "Toilet Unit" + }, +/turf/open/floor/plating, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"cBW" = ( +/obj/machinery/vending/clothing, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/locker) +"cBX" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/locker) +"cBY" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/locker) +"cBZ" = ( +/obj/machinery/vending/autodrobe{ + req_access_txt = "0" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/locker) +"cCa" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/locker) +"cCb" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/locker) +"cCc" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-18"; + layer = 4.1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/locker) +"cCd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/locker) +"cCe" = ( +/obj/structure/table/wood, +/obj/item/weapon/folder/blue, +/obj/item/weapon/lighter, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/sleep) +"cCf" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/sleep) +"cCg" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"cCh" = ( +/obj/structure/dresser, +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"cCi" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"cCj" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"cCk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cCl" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cCm" = ( +/obj/structure/grille, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/engine/engineering) +"cCn" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/grille, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/engine/engineering) +"cCo" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/grille, +/turf/open/floor/plating/warnplate/corner{ + dir = 4 + }, +/area/engine/engineering) +"cCp" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/grille, +/turf/open/floor/plating/warnplate/corner{ + dir = 8 + }, +/area/engine/engineering) +"cCq" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/grille, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/engine/engineering) +"cCr" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/grille, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/engine/engineering) +"cCs" = ( +/obj/structure/closet/emcloset{ + anchored = 1 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/bot, +/area/engine/engineering) +"cCt" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/engine/engineering) +"cCu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/warning, +/area/engine/engineering) +"cCv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/delivery, +/area/engine/engineering) +"cCw" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Engineering - Aft"; + dir = 1; + name = "engineering camera" + }, +/turf/open/floor/plasteel/warning, +/area/engine/engineering) +"cCx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning, +/area/engine/engineering) +"cCy" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/warning, +/area/engine/engineering) +"cCz" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/engine/engineering) +"cCA" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/electricshock{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/bot, +/area/engine/engineering{ + name = "Engineering Storage" + }) +"cCB" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/machinery/status_display{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/bot, +/area/engine/engineering{ + name = "Engineering Storage" + }) +"cCC" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light, +/obj/structure/noticeboard{ + dir = 1; + icon_state = "nboard00"; + pixel_y = -32; + tag = "icon-nboard00 (NORTH)" + }, +/turf/open/floor/plasteel/bot, +/area/engine/engineering{ + name = "Engineering Storage" + }) +"cCD" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/ai_status_display{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/bot, +/area/engine/engineering{ + name = "Engineering Storage" + }) +"cCE" = ( +/obj/structure/table/reinforced, +/obj/item/stack/rods{ + amount = 50 + }, +/obj/item/weapon/wrench, +/obj/item/weapon/storage/box/lights/mixed, +/turf/open/floor/plasteel/bot, +/area/engine/engineering{ + name = "Engineering Storage" + }) +"cCF" = ( +/obj/structure/table/reinforced, +/obj/item/stack/packageWrap, +/obj/item/weapon/hand_labeler, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cCG" = ( +/obj/structure/table/reinforced, +/obj/item/stack/rods{ + amount = 50 + }, +/obj/item/weapon/wrench, +/obj/item/weapon/storage/box/lights/mixed, +/obj/structure/sign/poster{ + pixel_y = -32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cCH" = ( +/obj/structure/rack, +/obj/item/weapon/book/manual/wiki/engineering_hacking{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/book/manual/wiki/engineering_guide, +/obj/item/weapon/book/manual/wiki/engineering_construction{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/machinery/light/small, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cCI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cCJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 9 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cCK" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cCL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cCM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cCN" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cCO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/sortjunction{ + dir = 4; + icon_state = "pipe-j2s"; + name = "Library Junction"; + sortType = 16 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cCP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cCQ" = ( +/obj/structure/girder, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cCR" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cCS" = ( +/obj/structure/sign/directions/engineering{ + desc = "A sign that shows there are doors here. There are doors everywhere!"; + icon_state = "doors"; + name = "WARNING: PRESSURIZED DOORS"; + pixel_x = 0; + pixel_y = 0; + tag = "icon-doors" + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"cCT" = ( +/obj/machinery/door/poddoor/shutters{ + id = "evashutters"; + name = "E.V.A. Storage Shutters" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"cCU" = ( +/obj/machinery/door/poddoor/shutters{ + id = "evashutters"; + name = "E.V.A. Storage Shutters" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"cCV" = ( +/obj/machinery/button/door{ + id = "evashutters"; + name = "E.V.A. Shutters"; + pixel_x = 26; + req_access_txt = "19" + }, +/obj/machinery/door/poddoor/shutters{ + id = "evashutters"; + name = "E.V.A. Storage Shutters" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"cCW" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "corporatelounge"; + name = "Corporate Lounge Shutters" + }, +/turf/open/floor/plating, +/area/assembly/showroom{ + name = "\improper Corporate Showroom" + }) +"cCX" = ( +/obj/structure/sign/electricshock, +/turf/closed/wall/r_wall, +/area/assembly/showroom{ + name = "\improper Corporate Showroom" + }) +"cCY" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Corporate Lounge"; + req_access = null; + req_access_txt = "19" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/assembly/showroom{ + name = "\improper Corporate Showroom" + }) +"cCZ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Gateway Atrium"; + req_access_txt = "62" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/gateway) +"cDa" = ( +/obj/machinery/door/poddoor/shutters{ + id = "gatewayshutters"; + name = "Gateway Chamber Shutters" + }, +/obj/machinery/button/door{ + id = "gatewayshutters"; + name = "Gateway Shutters"; + pixel_x = -26 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/gateway) +"cDb" = ( +/obj/machinery/door/poddoor/shutters{ + id = "gatewayshutters"; + name = "Gateway Chamber Shutters" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/gateway) +"cDc" = ( +/obj/machinery/door/poddoor/shutters{ + id = "gatewayshutters"; + name = "Gateway Chamber Shutters" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/gateway) +"cDd" = ( +/obj/structure/sign/directions/engineering{ + desc = "A sign that shows there are doors here. There are doors everywhere!"; + icon_state = "doors"; + name = "WARNING: BLAST DOORS"; + pixel_x = 0; + pixel_y = 0; + tag = "icon-doors" + }, +/turf/closed/wall/r_wall, +/area/gateway) +"cDe" = ( +/turf/closed/wall, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cDf" = ( +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cDg" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cDh" = ( +/obj/structure/mopbucket, +/obj/item/weapon/mop, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cDi" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/vending/cigarette, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"cDj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/corner, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"cDk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/vomit/old, +/obj/structure/toilet{ + tag = "icon-toilet00 (WEST)"; + icon_state = "toilet00"; + dir = 8 + }, +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"cDl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/toilet{ + tag = "icon-toilet00 (WEST)"; + icon_state = "toilet00"; + dir = 8 + }, +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"cDm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/toilet{ + tag = "icon-toilet00 (WEST)"; + icon_state = "toilet00"; + dir = 8 + }, +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/obj/machinery/light/small, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"cDn" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock{ + name = "Lockerroom" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/crew_quarters/locker) +"cDo" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Lockerroom" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/crew_quarters/locker) +"cDp" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Cabin 1" + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/sleep) +"cDq" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Cabin 2" + }, +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"cDr" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Cabin 3" + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"cDs" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cDt" = ( +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cDu" = ( +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cDv" = ( +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/machinery/door/window{ + dir = 4; + name = "Fitness Ring"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cDw" = ( +/obj/machinery/status_display, +/turf/closed/wall, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cDx" = ( +/obj/structure/closet/emcloset{ + anchored = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/bot, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cDy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/plasticflaps{ + opacity = 1 + }, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=1"; + dir = 1; + freq = 1400; + location = "Engineering" + }, +/turf/open/floor/plasteel/delivery, +/area/engine/engineering) +"cDz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"cDA" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Engineering Maintenance"; + req_access_txt = "10" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/engine/engineering) +"cDB" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cDC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cDD" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cDE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cDF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cDG" = ( +/obj/effect/landmark{ + name = "lightsout" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/central) +"cDH" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"cDI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_y = 26 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"cDJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Central Hallway - Science Aft"; + dir = 2; + name = "hallway camera" + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"cDK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/hallway/primary/central) +"cDL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/hallway/primary/central) +"cDM" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/hallway/primary/central) +"cDN" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"cDO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"cDP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"cDQ" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel{ + icon_state = "L1" + }, +/area/hallway/primary/central) +"cDR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + icon_state = "L3" + }, +/area/hallway/primary/central) +"cDS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + icon_state = "L5" + }, +/area/hallway/primary/central) +"cDT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + icon_state = "L7" + }, +/area/hallway/primary/central) +"cDU" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel{ + icon_state = "L9" + }, +/area/hallway/primary/central) +"cDV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + icon_state = "L11" + }, +/area/hallway/primary/central) +"cDW" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel{ + desc = ""; + icon_state = "L13"; + name = "floor" + }, +/area/hallway/primary/central) +"cDX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"cDY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Central Hallway - Medbay Aft"; + dir = 2; + name = "hallway camera" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"cDZ" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"cEa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"cEb" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/camera{ + c_tag = "Central Hallway - Aft Starboard"; + dir = 8; + name = "hallway camera" + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/central) +"cEc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cEd" = ( +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cEe" = ( +/obj/structure/girder, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cEf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"cEg" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"cEh" = ( +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cEi" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/rack, +/obj/item/weapon/reagent_containers/blood/random, +/obj/item/roller, +/turf/open/floor/plasteel/blue/corner{ + tag = "icon-bluecorner (NORTH)"; + icon_state = "bluecorner"; + dir = 1 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cEj" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/bodybags, +/obj/item/weapon/pen, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cEk" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cEl" = ( +/obj/machinery/washing_machine, +/obj/machinery/camera{ + c_tag = "Dormitories - Port"; + dir = 4; + name = "dormitories camera" + }, +/turf/open/floor/plasteel/arrival{ + tag = "icon-arrival (WEST)"; + icon_state = "arrival"; + dir = 8 + }, +/area/crew_quarters/sleep) +"cEm" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/crew_quarters/sleep) +"cEn" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/crew_quarters/sleep) +"cEo" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/crew_quarters/sleep) +"cEp" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/airlock{ + name = "Dormitories" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/crew_quarters/sleep) +"cEq" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/crew_quarters/sleep) +"cEr" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/crew_quarters/sleep) +"cEs" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/crew_quarters/sleep) +"cEt" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/crew_quarters/sleep) +"cEu" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Dormitories - Starboard"; + dir = 2; + name = "dormitories camera" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/crew_quarters/sleep) +"cEv" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/crew_quarters/sleep) +"cEw" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/airlock{ + name = "Recreational Area" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/crew_quarters/sleep) +"cEx" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cEy" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cEz" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cEA" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cEB" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cEC" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cED" = ( +/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/fitness{ + name = "\improper Recreation Area" + }) +"cEE" = ( +/obj/machinery/door/airlock/glass{ + name = "Holodeck Access" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cEF" = ( +/obj/machinery/light, +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cEG" = ( +/obj/machinery/door/airlock/glass{ + name = "Holodeck Access" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/warning/side, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cEH" = ( +/obj/machinery/door/airlock/glass{ + name = "Holodeck Access" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/warning/side, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cEI" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cEJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cEK" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/obj/machinery/camera{ + c_tag = "Holodeck Control"; + dir = 2; + name = "holodeck camera" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cEL" = ( +/turf/open/floor/plasteel/neutral/side{ + dir = 5 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cEM" = ( +/obj/machinery/door/airlock/external{ + name = "External Airlock"; + req_access_txt = "13" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning/side, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cEN" = ( +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cEO" = ( +/obj/structure/girder, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cEP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/obj/item/device/flashlight, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cEQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cER" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cES" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cET" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cEU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cEV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cEW" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cEX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cEY" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cEZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cFa" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cFb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cFc" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + 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/fpmaint2{ + name = "Port Maintenance" + }) +"cFd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + 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/fpmaint2{ + name = "Port Maintenance" + }) +"cFe" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cFf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cFg" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cFh" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cFi" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cFj" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cFk" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cFl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cFm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cFn" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cFo" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cFp" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/landmark{ + name = "blobstart" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cFq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 10; + heat_capacity = 1e+006 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cFr" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cFs" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cFt" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cFu" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cFv" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cFw" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"cFx" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hall6"; + location = "hall5" + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/central) +"cFy" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/hallway/primary/central) +"cFz" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel{ + icon_state = "L2" + }, +/area/hallway/primary/central) +"cFA" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel{ + icon_state = "L4" + }, +/area/hallway/primary/central) +"cFB" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel{ + icon_state = "L6" + }, +/area/hallway/primary/central) +"cFC" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hall7"; + location = "hall6" + }, +/turf/open/floor/plasteel{ + icon_state = "L8" + }, +/area/hallway/primary/central) +"cFD" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hall9"; + location = "hall8" + }, +/turf/open/floor/plasteel{ + icon_state = "L10" + }, +/area/hallway/primary/central) +"cFE" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel{ + icon_state = "L12" + }, +/area/hallway/primary/central) +"cFF" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel{ + desc = ""; + icon_state = "L14" + }, +/area/hallway/primary/central) +"cFG" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/central) +"cFH" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hall10"; + location = "hall9" + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/central) +"cFI" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 1; + icon_state = "pipe-j1s"; + name = "Medbay Junction"; + sortType = 9; + tag = "icon-pipe-j1s (NORTH)" + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/central) +"cFJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cFK" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + 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{ + name = "Aft Starboard Maintenance" + }) +"cFL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cFM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cFN" = ( +/obj/structure/girder, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cFO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cFP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cFQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + 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{ + name = "Aft Starboard Maintenance" + }) +"cFR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cFS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cFT" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cFU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark{ + name = "blobstart" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cFV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/obj/structure/table, +/obj/item/weapon/reagent_containers/glass/beaker/large, +/obj/item/weapon/reagent_containers/glass/beaker, +/obj/item/weapon/reagent_containers/dropper, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cFW" = ( +/obj/structure/table, +/obj/structure/bedsheetbin, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/arrival{ + tag = "icon-arrival (WEST)"; + icon_state = "arrival"; + dir = 8 + }, +/area/crew_quarters/sleep) +"cFX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/crew_quarters/sleep) +"cFY" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/sleep) +"cFZ" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/crew_quarters/sleep) +"cGa" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/tinted/fulltile, +/turf/open/floor/plating, +/area/crew_quarters/sleep) +"cGb" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/crew_quarters/sleep) +"cGc" = ( +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/sleep) +"cGd" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/sleep) +"cGe" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/sleep) +"cGf" = ( +/obj/effect/landmark{ + name = "lightsout" + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/sleep) +"cGg" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/sleep) +"cGh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Recreation - Center"; + dir = 4; + name = "recreation camera" + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cGi" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cGj" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cGk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cGl" = ( +/obj/structure/sign/nosmoking_2, +/turf/closed/wall, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cGm" = ( +/obj/machinery/computer/holodeck, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cGn" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cGo" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cGp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cGq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cGr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cGs" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cGt" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cGu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cGv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cGw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cGx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cGy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cGz" = ( +/obj/structure/girder, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cGA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cGB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/rack, +/obj/item/clothing/gloves/color/fyellow, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cGC" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cGD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cGE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cGF" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cGG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/toxins/xenobiology) +"cGH" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/toxins/xenobiology) +"cGI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cGJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cGK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cGL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cGM" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cGN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cGO" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"cGP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j1"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"cGQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"cGR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"cGS" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/sortjunction{ + dir = 4; + icon_state = "pipe-j1s"; + name = "Research Junction"; + sortType = 12 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"cGT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light/small, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Central Hallway - Aft"; + dir = 1; + name = "hallway camera" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"cGU" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"cGV" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side, +/area/hallway/primary/central) +"cGW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/blue/corner, +/area/hallway/primary/central) +"cGX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light/small, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/corner, +/area/hallway/primary/central) +"cGY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/corner, +/area/hallway/primary/central) +"cGZ" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/corner, +/area/hallway/primary/central) +"cHa" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 4; + icon_state = "pipe-j1s"; + name = "CMO's Junction"; + sortType = 10 + }, +/turf/open/floor/plasteel/blue/corner, +/area/hallway/primary/central) +"cHb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/central) +"cHc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cHd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cHe" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cHf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cHg" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/landmark{ + name = "blobstart" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cHh" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cHi" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cHj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/medical/medbay2{ + name = "Medbay Storage" + }) +"cHk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cHl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cHm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/iv_drip{ + density = 0 + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 4 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cHn" = ( +/obj/machinery/washing_machine, +/turf/open/floor/plasteel/arrival{ + tag = "icon-arrival (WEST)"; + icon_state = "arrival"; + dir = 8 + }, +/area/crew_quarters/sleep) +"cHo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/crew_quarters/sleep) +"cHp" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/sleep) +"cHq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral/corner, +/area/crew_quarters/sleep) +"cHr" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Dormitories" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/crew_quarters/sleep) +"cHs" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 0; + pixel_y = -26 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/crew_quarters/sleep) +"cHt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/crew_quarters/sleep) +"cHu" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/crew_quarters/sleep) +"cHv" = ( +/obj/structure/cable/white, +/obj/machinery/power/apc{ + dir = 2; + name = "Dormitories APC"; + pixel_y = -26 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Dormitories - Center"; + dir = 1; + name = "dormitories camera" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/crew_quarters/sleep) +"cHw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/sleep) +"cHx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/crew_quarters/sleep) +"cHy" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/crew_quarters/sleep) +"cHz" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Recreational Area" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/crew_quarters/sleep) +"cHA" = ( +/obj/machinery/light_switch{ + pixel_x = -26; + pixel_y = -26 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cHB" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/landmark{ + name = "lightsout" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/structure/disposalpipe/junction{ + dir = 1; + icon_state = "pipe-j2" + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cHC" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cHD" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cHE" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/blue, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cHF" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cHG" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/clipboard, +/obj/item/weapon/folder, +/obj/item/weapon/paper{ + desc = ""; + info = "Brusies sustained in the holodeck can be healed simply by sleeping."; + name = "Holodeck Disclaimer" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cHH" = ( +/obj/machinery/shieldgen, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cHI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cHJ" = ( +/turf/closed/wall, +/area/maintenance/electrical) +"cHK" = ( +/obj/structure/sign/securearea, +/turf/closed/wall, +/area/maintenance/electrical) +"cHL" = ( +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics Auxiliary Port"; + req_access_txt = "24" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/maintenance/electrical) +"cHM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/maintenance/electrical) +"cHN" = ( +/obj/structure/sign/electricshock, +/turf/closed/wall, +/area/maintenance/electrical) +"cHO" = ( +/obj/machinery/door/airlock/engineering{ + name = "Engineering Auxiliary Power"; + req_access_txt = "10" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/maintenance/electrical) +"cHP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/mob/living/simple_animal/cockroach, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cHQ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cHR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cHS" = ( +/turf/closed/wall/r_wall, +/area/toxins/xenobiology) +"cHT" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/item/weapon/extinguisher, +/obj/item/weapon/extinguisher, +/turf/open/floor/plasteel/bot, +/area/toxins/xenobiology) +"cHU" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plasteel/bot, +/area/toxins/xenobiology) +"cHV" = ( +/obj/machinery/atmospherics/components/unary/tank/air, +/turf/open/floor/plasteel/bot, +/area/toxins/xenobiology) +"cHW" = ( +/turf/closed/wall, +/area/toxins/xenobiology) +"cHX" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/toxins/xenobiology) +"cHY" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Xenobiology - Cell 1"; + name = "xenobiology camera"; + network = list("SS13","xeno","RD") + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/toxins/xenobiology) +"cHZ" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Xenobiology - Cell 2"; + name = "xenobiology camera"; + network = list("SS13","xeno","RD") + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/toxins/xenobiology) +"cIa" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Xenobiology - Cell 3"; + name = "xenobiology camera"; + network = list("SS13","xeno","RD") + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/toxins/xenobiology) +"cIb" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Xenobiology - Killroom Chamber"; + dir = 2; + name = "xenobiology camera"; + network = list("SS13","xeno","RD") + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/toxins/xenobiology) +"cIc" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/obj/item/device/flashlight, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cId" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cIe" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cIf" = ( +/obj/machinery/light, +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/delivery, +/area/hallway/primary/central) +"cIg" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/delivery, +/area/hallway/primary/central) +"cIh" = ( +/obj/structure/sign/science, +/turf/closed/wall, +/area/hallway/primary/central) +"cIi" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/medical/research{ + name = "Research Division" + }) +"cIj" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/medical/research{ + name = "Research Division" + }) +"cIk" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"cIl" = ( +/obj/machinery/status_display, +/turf/closed/wall, +/area/medical/research{ + name = "Research Division" + }) +"cIm" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"cIn" = ( +/obj/structure/sign/directions/evac{ + pixel_y = -8 + }, +/obj/structure/sign/directions/science{ + dir = 8 + }, +/obj/structure/sign/directions/engineering{ + dir = 8; + pixel_y = 8 + }, +/turf/closed/wall, +/area/medical/research{ + name = "Research Division" + }) +"cIo" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock/glass{ + name = "Aft Primary Hallway" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/hallway/primary/central) +"cIp" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Aft Primary Hallway" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/hallway/primary/central) +"cIq" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/glass{ + name = "Aft Primary Hallway" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/hallway/primary/central) +"cIr" = ( +/obj/structure/sign/directions/evac{ + pixel_y = -8 + }, +/obj/structure/sign/directions/medical{ + dir = 4 + }, +/obj/structure/sign/directions/security{ + dir = 4; + pixel_y = 8 + }, +/turf/closed/wall, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cIs" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cIt" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cIu" = ( +/obj/machinery/status_display, +/turf/closed/wall, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cIv" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cIw" = ( +/obj/structure/sign/bluecross_2, +/turf/closed/wall, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cIx" = ( +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel/delivery, +/area/hallway/primary/central) +"cIy" = ( +/obj/machinery/vending/snack, +/obj/machinery/light, +/turf/open/floor/plasteel/delivery, +/area/hallway/primary/central) +"cIz" = ( +/obj/machinery/vending/cola, +/turf/open/floor/plasteel/delivery, +/area/hallway/primary/central) +"cIA" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cIB" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cIC" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cID" = ( +/turf/closed/wall/r_wall, +/area/medical/medbay2{ + name = "Medbay Storage" + }) +"cIE" = ( +/obj/machinery/vending/medical, +/turf/open/floor/plasteel/neutral/corner, +/area/medical/medbay2{ + name = "Medbay Storage" + }) +"cIF" = ( +/obj/structure/closet/secure_closet/medical3, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/neutral/side, +/area/medical/medbay2{ + name = "Medbay Storage" + }) +"cIG" = ( +/obj/structure/closet/secure_closet/medical3, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = 26 + }, +/turf/open/floor/plasteel/neutral/side, +/area/medical/medbay2{ + name = "Medbay Storage" + }) +"cIH" = ( +/obj/structure/closet/wardrobe/white/medical, +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 + }, +/obj/item/weapon/storage/backpack/satchel/med, +/turf/open/floor/plasteel/neutral/side, +/area/medical/medbay2{ + name = "Medbay Storage" + }) +"cII" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/bot, +/area/medical/medbay2{ + name = "Medbay Storage" + }) +"cIJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/blue/corner{ + tag = "icon-bluecorner (WEST)"; + icon_state = "bluecorner"; + dir = 8 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cIK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cIL" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cIM" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Cabin 4" + }, +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"cIN" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Cabin 5" + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"cIO" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Cabin 6" + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/sleep) +"cIP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cIQ" = ( +/obj/structure/window/reinforced, +/obj/machinery/door/window{ + dir = 8; + name = "Fitness Ring"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cIR" = ( +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/black, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cIS" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cIT" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cIU" = ( +/obj/machinery/door/airlock/glass{ + name = "Holodeck Access" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cIV" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cIW" = ( +/obj/machinery/door/airlock/glass{ + name = "Holodeck Access" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/warning/side, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cIX" = ( +/obj/machinery/door/airlock/glass{ + name = "Holodeck Access" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/warning/side, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cIY" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cIZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cJa" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cJb" = ( +/turf/open/floor/plasteel/neutral/side{ + dir = 6 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cJc" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cJd" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cJe" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (EAST)"; + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cJf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cJg" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cJh" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/structure/sign/poster{ + icon_state = "poster4_legit"; + pixel_x = 0; + pixel_y = 32; + tag = "icon-poster4_legit" + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/maintenance/electrical) +"cJi" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/maintenance/electrical) +"cJj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/turf/open/floor/plasteel/delivery, +/area/maintenance/electrical) +"cJk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/light_switch{ + pixel_y = 26 + }, +/turf/open/floor/plasteel/bot, +/area/maintenance/electrical) +"cJl" = ( +/obj/structure/closet/secure_closet/engineering_electrical, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/electrical) +"cJm" = ( +/obj/structure/table/reinforced, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/item/weapon/reagent_containers/food/drinks/soda_cans/thirteenloko, +/turf/open/floor/plasteel/delivery, +/area/maintenance/electrical) +"cJn" = ( +/obj/structure/table/reinforced, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/item/weapon/electronics/apc{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/electronics/apc, +/turf/open/floor/plasteel/delivery, +/area/maintenance/electrical) +"cJo" = ( +/obj/machinery/power/port_gen/pacman, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/maintenance/electrical) +"cJp" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plasteel/bot, +/area/maintenance/electrical) +"cJq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/delivery, +/area/maintenance/electrical) +"cJr" = ( +/obj/machinery/light_switch{ + pixel_y = 26 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/bot, +/area/maintenance/electrical) +"cJs" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/rack, +/obj/structure/sign/poster{ + icon_state = "poster22_legit"; + pixel_y = 32; + tag = "icon-poster22_legit" + }, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/storage/toolbox/electrical, +/turf/open/floor/plasteel/delivery, +/area/maintenance/electrical) +"cJt" = ( +/obj/structure/table/reinforced, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/obj/item/stack/cable_coil/white{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stack/cable_coil/white, +/obj/item/device/multitool, +/turf/open/floor/plasteel/delivery, +/area/maintenance/electrical) +"cJu" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/box/lights/mixed{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/lights/mixed, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/maintenance/electrical) +"cJv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cJw" = ( +/obj/structure/girder, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cJx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cJy" = ( +/obj/structure/rack, +/obj/item/weapon/book/manual/wiki/engineering_guide, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cJz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cJA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cJB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cJC" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Xenobiology Maintenance"; + req_access_txt = "47" + }, +/turf/open/floor/plasteel/warning/side, +/area/toxins/xenobiology) +"cJD" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/toxins/xenobiology) +"cJE" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/effect/landmark{ + name = "blobstart" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/toxins/xenobiology) +"cJF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/toxins/xenobiology) +"cJG" = ( +/mob/living/simple_animal/slime, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/toxins/xenobiology) +"cJH" = ( +/turf/open/floor/plasteel/circuit/gcircuit, +/area/toxins/xenobiology) +"cJI" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + external_pressure_bound = 140; + name = "server vent"; + on = 1; + pressure_checks = 0 + }, +/turf/open/floor/bluegrid{ + name = "Killroom Floor"; + initial_gas_mix = "n2=500;TEMP=80" + }, +/area/toxins/xenobiology) +"cJJ" = ( +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/toxins/xenobiology) +"cJK" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + external_pressure_bound = 120; + initialize_directions = 1; + internal_pressure_bound = 4000; + name = "server vent"; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/bluegrid{ + name = "Killroom Floor"; + initial_gas_mix = "n2=500;TEMP=80" + }, +/area/toxins/xenobiology) +"cJL" = ( +/turf/closed/wall/r_wall, +/area/medical/research{ + name = "Research Division" + }) +"cJM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/medical/research{ + name = "Research Division" + }) +"cJN" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Science Maintenance"; + req_access_txt = "47" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"cJO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/medical/research{ + name = "Research Division" + }) +"cJP" = ( +/turf/closed/wall/r_wall, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"cJQ" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/structure/sign/poster{ + tag = "icon-poster7_legit"; + icon_state = "poster7_legit"; + pixel_x = -32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + tag = "icon-whitepurplecorner (NORTH)"; + icon_state = "whitepurplecorner"; + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"cJR" = ( +/obj/structure/chair, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whitepurple/corner{ + tag = "icon-whitepurplecorner (NORTH)"; + icon_state = "whitepurplecorner"; + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"cJS" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whitepurple/corner{ + tag = "icon-whitepurplecorner (NORTH)"; + icon_state = "whitepurplecorner"; + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"cJT" = ( +/obj/structure/chair, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel/whitepurple/corner{ + tag = "icon-whitepurplecorner (NORTH)"; + icon_state = "whitepurplecorner"; + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"cJU" = ( +/obj/structure/table, +/obj/item/weapon/folder/white, +/obj/item/device/paicard, +/turf/open/floor/plasteel/whitepurple/corner{ + tag = "icon-whitepurplecorner (NORTH)"; + icon_state = "whitepurplecorner"; + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"cJV" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-18" + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (NORTH)"; + icon_state = "whitepurple"; + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"cJW" = ( +/obj/structure/table, +/obj/item/stack/cable_coil/white, +/obj/item/device/assembly/igniter, +/obj/item/device/assembly/timer{ + pixel_x = 3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"cJX" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"cJY" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"cJZ" = ( +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"cKa" = ( +/obj/structure/chair, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"cKb" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/glasses/science, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"cKc" = ( +/obj/structure/sign/science, +/turf/closed/wall, +/area/medical/research{ + name = "Research Division" + }) +"cKd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/primary/aft) +"cKe" = ( +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/aft) +"cKf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/blue/corner, +/area/hallway/primary/aft) +"cKg" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/bodybags, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cKh" = ( +/obj/structure/chair, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cKi" = ( +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cKj" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cKk" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/glass/bottle/charcoal{ + pixel_x = 6 + }, +/obj/item/weapon/reagent_containers/glass/bottle/epinephrine, +/obj/item/weapon/reagent_containers/syringe, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cKl" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-18" + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cKm" = ( +/obj/structure/table, +/obj/item/stack/medical/gauze, +/obj/item/stack/medical/bruise_pack, +/obj/item/stack/medical/ointment, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cKn" = ( +/obj/structure/chair, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cKo" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cKp" = ( +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cKq" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cKr" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular, +/obj/item/device/radio/intercom{ + dir = 8; + name = "Station Intercom (General)"; + pixel_x = 28 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cKs" = ( +/turf/closed/wall, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cKt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/neutral/side{ + dir = 10; + heat_capacity = 1e+006 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cKu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/reagent_dispensers/watertank, +/obj/item/weapon/reagent_containers/glass/bucket, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cKv" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cKw" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cKx" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + dir = 8; + name = "Medbay Storage APC"; + pixel_x = -26; + pixel_y = 0 + }, +/obj/machinery/camera{ + c_tag = "Medbay - Storage"; + dir = 4; + name = "medbay camera" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/medical/medbay2{ + name = "Medbay Storage" + }) +"cKy" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (NORTH)"; + icon_state = "whiteblue"; + dir = 1 + }, +/area/medical/medbay2{ + name = "Medbay Storage" + }) +"cKz" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (NORTH)"; + icon_state = "whiteblue"; + dir = 1 + }, +/area/medical/medbay2{ + name = "Medbay Storage" + }) +"cKA" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/medical/medbay2{ + name = "Medbay Storage" + }) +"cKB" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/airlock{ + name = "Medbay Auxiliary Storage"; + req_access_txt = "5" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/medical/medbay2{ + name = "Medbay Storage" + }) +"cKC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cKD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cKE" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cKF" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/blue/corner, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cKG" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cKH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cKI" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cKJ" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cKK" = ( +/obj/structure/dresser, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 26; + pixel_y = 26 + }, +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"cKL" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp/green, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"cKM" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 26; + pixel_y = 26 + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"cKN" = ( +/obj/structure/table/wood, +/obj/item/weapon/folder/blue, +/obj/item/weapon/pen/blue, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/sleep) +"cKO" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 26; + pixel_y = 26 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/sleep) +"cKP" = ( +/obj/machinery/vending/cola, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/delivery, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cKQ" = ( +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cKR" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cKS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/corner, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cKT" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cKU" = ( +/obj/structure/rack, +/obj/item/clothing/gloves/color/black, +/obj/item/weapon/crowbar/red, +/obj/item/weapon/wrench, +/obj/machinery/light/small, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cKV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cKW" = ( +/obj/machinery/atmospherics/components/binary/valve, +/obj/machinery/airalarm{ + dir = 4; + locked = 0; + pixel_x = -23; + pixel_y = 0 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/maintenance/electrical) +"cKX" = ( +/obj/machinery/atmospherics/components/binary/valve, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/maintenance/electrical) +"cKY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/turf/open/floor/plasteel/caution{ + dir = 8 + }, +/area/maintenance/electrical) +"cKZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/caution{ + dir = 4 + }, +/area/maintenance/electrical) +"cLa" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/electrical) +"cLb" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/electrical) +"cLc" = ( +/obj/item/weapon/book/manual/wiki/engineering_hacking{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/book/manual/wiki/engineering_guide, +/obj/item/weapon/book/manual/wiki/engineering_construction{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/structure/table/reinforced, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/electrical) +"cLd" = ( +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/maintenance/electrical) +"cLe" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/maintenance/electrical) +"cLf" = ( +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/maintenance/electrical) +"cLg" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/maintenance/electrical) +"cLh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/maintenance/electrical) +"cLi" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/maintenance/electrical) +"cLj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/electrical) +"cLk" = ( +/obj/machinery/cell_charger, +/obj/structure/table/reinforced, +/obj/item/weapon/stock_parts/cell/high, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + dir = 4; + name = "Auxiliary Power APC"; + pixel_x = 26; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/maintenance/electrical) +"cLl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cLm" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/research{ + name = "Xenobiology Lab"; + req_access_txt = "47" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/toxins/xenobiology) +"cLn" = ( +/obj/structure/disposaloutlet{ + tag = "icon-outlet (NORTH)"; + icon_state = "outlet"; + dir = 1 + }, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/toxins/xenobiology) +"cLo" = ( +/obj/machinery/atmospherics/pipe/manifold/general/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/toxins/xenobiology) +"cLp" = ( +/obj/machinery/atmospherics/pipe/manifold/general/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/toxins/xenobiology) +"cLq" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/toxins/xenobiology) +"cLr" = ( +/obj/structure/closet/wardrobe/science_white, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/item/weapon/storage/backpack/satchel/tox, +/turf/open/floor/plasteel/delivery, +/area/medical/research{ + name = "Research Division" + }) +"cLs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"cLt" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (NORTH)"; + icon_state = "whitepurple"; + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"cLu" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"cLv" = ( +/turf/closed/wall, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"cLw" = ( +/obj/structure/closet/secure_closet/security/science, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24; + pixel_y = 0 + }, +/obj/machinery/status_display{ + pixel_y = 32 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26; + pixel_y = 32 + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"cLx" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = 26 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"cLy" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/book/manual/wiki/security_space_law, +/obj/item/device/radio, +/obj/machinery/ai_status_display{ + pixel_y = 32 + }, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"cLz" = ( +/obj/structure/table, +/obj/item/weapon/folder/white, +/obj/item/device/assembly/infra, +/turf/open/floor/plasteel/whitepurple/corner{ + tag = "icon-whitepurplecorner (NORTH)"; + icon_state = "whitepurplecorner"; + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"cLA" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/medical/research{ + name = "Research Division" + }) +"cLB" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/purple, +/area/medical/research{ + name = "Research Division" + }) +"cLC" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral, +/area/medical/research{ + name = "Research Division" + }) +"cLD" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/purple, +/area/medical/research{ + name = "Research Division" + }) +"cLE" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/research{ + name = "Research Division" + }) +"cLF" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel/purple, +/area/medical/research{ + name = "Research Division" + }) +"cLG" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral, +/area/medical/research{ + name = "Research Division" + }) +"cLH" = ( +/turf/open/floor/plasteel/purple, +/area/medical/research{ + name = "Research Division" + }) +"cLI" = ( +/turf/open/floor/plasteel/neutral, +/area/medical/research{ + name = "Research Division" + }) +"cLJ" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"cLK" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cLL" = ( +/turf/open/floor/plasteel/blue, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cLM" = ( +/turf/open/floor/plasteel/neutral, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cLN" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/neutral, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cLO" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/blue, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cLP" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cLQ" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/machinery/button/door{ + desc = "A remote control switch for the medbay foyer."; + id = "MedbayFoyer"; + name = "Medbay Doors Control"; + normaldoorcontrol = 1; + pixel_x = -24; + pixel_y = 24 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cLR" = ( +/obj/structure/bed/roller, +/obj/machinery/iv_drip, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cLS" = ( +/obj/structure/bed/roller, +/obj/machinery/iv_drip, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cLT" = ( +/turf/closed/wall, +/area/security/checkpoint/medical) +"cLU" = ( +/turf/closed/wall/r_wall, +/area/security/checkpoint/medical) +"cLV" = ( +/turf/closed/wall, +/area/medical/medbay2{ + name = "Medbay Storage" + }) +"cLW" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/medical/medbay2{ + name = "Medbay Storage" + }) +"cLX" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/cmo, +/area/medical/medbay2{ + name = "Medbay Storage" + }) +"cLY" = ( +/turf/open/floor/plasteel/cmo, +/area/medical/medbay2{ + name = "Medbay Storage" + }) +"cLZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/cmo, +/area/medical/medbay2{ + name = "Medbay Storage" + }) +"cMa" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/medical/medbay2{ + name = "Medbay Storage" + }) +"cMb" = ( +/obj/structure/plasticflaps{ + opacity = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=4"; + dir = 4; + freq = 1400; + location = "Medbay" + }, +/turf/open/floor/plasteel/delivery, +/area/medical/medbay2{ + name = "Medbay Storage" + }) +"cMc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cMd" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cMe" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cMf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/blue/corner, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cMg" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/space_heater, +/turf/open/floor/plasteel/blue, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cMh" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cMi" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cMj" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/clown, +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"cMk" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/briefcase{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/briefcase, +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"cMl" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/sleep) +"cMm" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/structure/sign/nanotrasen{ + pixel_x = 32; + pixel_y = -32 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/sleep) +"cMn" = ( +/obj/machinery/vending/snack, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/delivery, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cMo" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/corner, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cMp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cMq" = ( +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cMr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/maintenance/electrical) +"cMs" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/visible, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/maintenance/electrical) +"cMt" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/visible{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel/caution{ + dir = 8 + }, +/area/maintenance/electrical) +"cMu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/electrical) +"cMv" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/table/reinforced, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/mask/gas, +/turf/open/floor/plasteel/bot, +/area/maintenance/electrical) +"cMw" = ( +/obj/machinery/status_display, +/turf/closed/wall, +/area/maintenance/electrical) +"cMx" = ( +/obj/machinery/computer/atmos_alert, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/electrical) +"cMy" = ( +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/maintenance/electrical) +"cMz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plating, +/area/maintenance/electrical) +"cMA" = ( +/obj/effect/decal/cleanable/oil, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral, +/area/maintenance/electrical) +"cMB" = ( +/obj/structure/cable/white, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/neutral, +/area/maintenance/electrical) +"cMC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/neutral, +/area/maintenance/electrical) +"cMD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral, +/area/maintenance/electrical) +"cME" = ( +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/maintenance/electrical) +"cMF" = ( +/obj/machinery/space_heater, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/electrical) +"cMG" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cMH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cMI" = ( +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + icon_state = "vault"; + dir = 5 + }, +/area/toxins/xenobiology) +"cMJ" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + icon_state = "vault"; + dir = 5 + }, +/area/toxins/xenobiology) +"cMK" = ( +/obj/machinery/shieldwallgen, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/turf/open/floor/plating/warnplate{ + dir = 6 + }, +/area/toxins/xenobiology) +"cML" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/delivery, +/area/toxins/xenobiology) +"cMM" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/status_display{ + pixel_y = 32 + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/camera{ + c_tag = "Xenobiology - Port"; + dir = 2; + name = "xenobiology camera"; + network = list("SS13","xeno","RD") + }, +/turf/open/floor/plasteel/delivery, +/area/toxins/xenobiology) +"cMN" = ( +/obj/machinery/light_switch{ + pixel_x = 26; + pixel_y = 26 + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/bot, +/area/toxins/xenobiology) +"cMO" = ( +/obj/structure/table, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 26; + pixel_y = 0 + }, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/bot, +/area/toxins/xenobiology) +"cMP" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "xeno4"; + name = "Creature Cell #4" + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"cMQ" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/door/window/brigdoor{ + dir = 1; + name = "Creature Pen"; + req_access_txt = "47" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xeno4"; + name = "Creature Cell #4" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/toxins/xenobiology) +"cMR" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/poddoor/preopen{ + id = "xeno4"; + name = "Creature Cell #4" + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"cMS" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "xeno5"; + name = "Creature Cell #5" + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"cMT" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/door/window/brigdoor{ + dir = 1; + name = "Creature Pen"; + req_access_txt = "47" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xeno5"; + name = "Creature Cell #5" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/toxins/xenobiology) +"cMU" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/poddoor/preopen{ + id = "xeno5"; + name = "Creature Cell #5" + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"cMV" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "xeno6"; + name = "Creature Cell #6" + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"cMW" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/door/window/brigdoor{ + dir = 1; + name = "Creature Pen"; + req_access_txt = "47" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xeno6"; + name = "Creature Cell #6" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/toxins/xenobiology) +"cMX" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/poddoor/preopen{ + id = "xeno6"; + name = "Creature Cell #6" + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"cMY" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"cMZ" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/door/airlock/glass_research{ + name = "Xenobiology Kill Room"; + req_access_txt = "47" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/toxins/xenobiology) +"cNa" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"cNb" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/purple, +/area/medical/research{ + name = "Research Division" + }) +"cNc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"cNd" = ( +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"cNe" = ( +/obj/machinery/light_switch{ + pixel_x = -38; + pixel_y = 26 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"cNf" = ( +/turf/open/floor/plasteel/neutral, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"cNg" = ( +/obj/machinery/computer/secure_data, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"cNh" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plasteel/whitepurple/corner{ + tag = "icon-whitepurplecorner (NORTH)"; + icon_state = "whitepurplecorner"; + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"cNi" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/whitepurple/corner, +/area/medical/research{ + name = "Research Division" + }) +"cNj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/whitepurple/corner, +/area/medical/research{ + name = "Research Division" + }) +"cNk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/corner, +/area/medical/research{ + name = "Research Division" + }) +"cNl" = ( +/obj/effect/landmark{ + name = "lightsout" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/corner, +/area/medical/research{ + name = "Research Division" + }) +"cNm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whitepurple/corner, +/area/medical/research{ + name = "Research Division" + }) +"cNn" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whitepurple/corner, +/area/medical/research{ + name = "Research Division" + }) +"cNo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/purple, +/area/medical/research{ + name = "Research Division" + }) +"cNp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"cNq" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/medical/research{ + name = "Research Division" + }) +"cNr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/primary/aft) +"cNs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/aft) +"cNt" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/blue/corner, +/area/hallway/primary/aft) +"cNu" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cNv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cNw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cNx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/cmo, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cNy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/turf/open/floor/plasteel/cmo, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cNz" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/cmo, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cNA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cNB" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_medical{ + id_tag = "MedbayFoyer"; + name = "Medbay"; + req_access_txt = "5" + }, +/turf/open/floor/plasteel/warning/side, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cNC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/blue, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cND" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cNE" = ( +/obj/machinery/status_display{ + pixel_y = 32 + }, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = -32 + }, +/obj/structure/table/reinforced, +/obj/item/weapon/book/manual/wiki/security_space_law, +/obj/item/device/radio, +/obj/machinery/button/door{ + desc = "A remote control switch for the medbay foyer."; + id = "MedbayFoyer"; + name = "Medbay Doors Control"; + normaldoorcontrol = 1; + pixel_x = -24; + pixel_y = 24 + }, +/obj/machinery/button/door{ + desc = "A remote control switch."; + id = "meddoor"; + name = "Medical Cell Control"; + normaldoorcontrol = 1; + pixel_x = -36; + pixel_y = 24 + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/checkpoint/medical) +"cNF" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = 26 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/checkpoint/medical) +"cNG" = ( +/obj/machinery/ai_status_display{ + pixel_y = 32 + }, +/obj/machinery/firealarm{ + dir = 4; + icon_state = "fire0"; + pixel_x = 24; + pixel_y = 0; + tag = "icon-fire0 (EAST)" + }, +/obj/machinery/light_switch{ + pixel_x = 38 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 26; + pixel_y = 32 + }, +/obj/structure/closet/secure_closet/security/med, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/checkpoint/medical) +"cNH" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/bodybags{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/masks, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cNI" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/gloves{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/beakers, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = 26 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cNJ" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/item/weapon/storage/pod{ + pixel_x = 32; + pixel_y = 32 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cNK" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/medical/medbay2{ + name = "Medbay Storage" + }) +"cNL" = ( +/obj/structure/table/glass, +/obj/item/weapon/storage/firstaid/fire{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/weapon/storage/firstaid/fire{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/firstaid/regular, +/obj/item/weapon/storage/firstaid/fire{ + pixel_x = -3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/medical/medbay2{ + name = "Medbay Storage" + }) +"cNM" = ( +/obj/effect/landmark/start{ + name = "Medical Doctor" + }, +/turf/open/floor/plasteel/cmo, +/area/medical/medbay2{ + name = "Medbay Storage" + }) +"cNN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/cmo, +/area/medical/medbay2{ + name = "Medbay Storage" + }) +"cNO" = ( +/obj/structure/table/glass, +/obj/item/weapon/storage/firstaid/toxin{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/weapon/storage/firstaid/toxin{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/firstaid/regular, +/obj/item/weapon/storage/firstaid/toxin{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/medical/medbay2{ + name = "Medbay Storage" + }) +"cNP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cNQ" = ( +/obj/machinery/door/airlock{ + name = "Medbay Auxiliary Storage"; + req_access_txt = "5" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cNR" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cNS" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"cNT" = ( +/obj/structure/chair/office/dark, +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"cNU" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/mime, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/sleep) +"cNV" = ( +/obj/structure/table, +/obj/item/weapon/storage/fancy/donut_box, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cNW" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cNX" = ( +/obj/structure/table, +/obj/item/weapon/folder, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cNY" = ( +/obj/structure/table, +/obj/item/clothing/under/sl_suit{ + name = "referee suit" + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cNZ" = ( +/obj/structure/table, +/obj/item/weapon/storage/briefcase, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cOa" = ( +/obj/machinery/camera{ + c_tag = "Holodeck - Aft"; + dir = 1; + name = "holodeck camera" + }, +/turf/open/floor/engine{ + name = "Holodeck Projector Floor" + }, +/area/holodeck/rec_center) +"cOb" = ( +/obj/structure/table, +/obj/item/weapon/extinguisher/mini, +/obj/item/weapon/tank/internals/emergency_oxygen/engi, +/obj/item/clothing/mask/breath, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cOc" = ( +/obj/machinery/space_heater, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cOd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cOe" = ( +/obj/machinery/status_display{ + pixel_x = -32 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/bot, +/area/maintenance/electrical) +"cOf" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/maintenance/electrical) +"cOg" = ( +/obj/machinery/atmospherics/components/binary/volume_pump{ + name = "Ports to Distro" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/caution{ + dir = 8 + }, +/area/maintenance/electrical) +"cOh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel/caution{ + dir = 4 + }, +/area/maintenance/electrical) +"cOi" = ( +/obj/structure/table/reinforced, +/obj/item/device/analyzer, +/turf/open/floor/plasteel/bot, +/area/maintenance/electrical) +"cOj" = ( +/obj/machinery/computer/monitor, +/turf/open/floor/plasteel/bot, +/area/maintenance/electrical) +"cOk" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/maintenance/electrical) +"cOl" = ( +/turf/open/floor/plasteel/neutral, +/area/maintenance/electrical) +"cOm" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/bot, +/area/maintenance/electrical) +"cOn" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral, +/area/maintenance/electrical) +"cOo" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/maintenance/electrical) +"cOp" = ( +/obj/machinery/door/airlock/engineering{ + name = "Engineering Auxiliary Power"; + req_access_txt = "10" + }, +/turf/open/floor/plasteel/warning/side, +/area/maintenance/electrical) +"cOq" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/delivery, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cOr" = ( +/obj/effect/decal/remains/xeno, +/obj/effect/decal/cleanable/xenoblood, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/toxins/xenobiology) +"cOs" = ( +/obj/structure/sign/electricshock, +/turf/closed/wall/r_wall, +/area/toxins/xenobiology) +"cOt" = ( +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "xenosecure"; + name = "Secure Pen Shutters" + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"cOu" = ( +/obj/structure/table/reinforced, +/obj/machinery/computer/security/telescreen{ + dir = 4; + network = list("xeno") + }, +/turf/open/floor/plasteel/bot, +/area/toxins/xenobiology) +"cOv" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/bot, +/area/toxins/xenobiology) +"cOw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/toxins/xenobiology) +"cOx" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/bot, +/area/toxins/xenobiology) +"cOy" = ( +/obj/structure/sign/xenobio, +/turf/closed/wall, +/area/toxins/xenobiology) +"cOz" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "xeno4"; + name = "Containment Control"; + req_access_txt = "55" + }, +/turf/open/floor/plasteel/bot, +/area/toxins/xenobiology) +"cOA" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/window/brigdoor{ + name = "Creature Pen"; + req_access_txt = "47" + }, +/turf/open/floor/plasteel/delivery, +/area/toxins/xenobiology) +"cOB" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + tag = "icon-pipe-t (NORTH)"; + icon_state = "pipe-t"; + dir = 1 + }, +/turf/open/floor/plasteel/bot, +/area/toxins/xenobiology) +"cOC" = ( +/obj/structure/sign/electricshock, +/turf/closed/wall, +/area/toxins/xenobiology) +"cOD" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "xeno5"; + name = "Containment Control"; + req_access_txt = "55" + }, +/turf/open/floor/plasteel/bot, +/area/toxins/xenobiology) +"cOE" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/disposal/bin, +/obj/structure/extinguisher_cabinet{ + pixel_x = 26; + pixel_y = 32 + }, +/obj/structure/disposalpipe/trunk{ + tag = "icon-pipe-t (NORTH)"; + icon_state = "pipe-t"; + dir = 1 + }, +/turf/open/floor/plasteel/bot, +/area/toxins/xenobiology) +"cOF" = ( +/obj/structure/sign/directions/engineering{ + desc = "A sign that shows there are doors here. There are doors everywhere!"; + icon_state = "doors"; + name = "WARNING: BIOHAZARD CELL"; + pixel_x = 0; + tag = "icon-doors" + }, +/turf/closed/wall, +/area/toxins/xenobiology) +"cOG" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26; + pixel_y = 32 + }, +/obj/machinery/button/door{ + id = "xeno6"; + name = "Containment Control"; + req_access_txt = "55" + }, +/turf/open/floor/plasteel/bot, +/area/toxins/xenobiology) +"cOH" = ( +/obj/structure/sign/biohazard, +/turf/closed/wall, +/area/toxins/xenobiology) +"cOI" = ( +/obj/machinery/monkey_recycler, +/obj/machinery/monkey_recycler, +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/bot, +/area/toxins/xenobiology) +"cOJ" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 1; + min_temperature = 80; + on = 1; + target_temperature = 80 + }, +/turf/open/floor/plasteel/bot, +/area/toxins/xenobiology) +"cOK" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/delivery, +/area/toxins/xenobiology) +"cOL" = ( +/obj/machinery/chem_master, +/turf/open/floor/plasteel/bot, +/area/toxins/xenobiology) +"cOM" = ( +/obj/machinery/chem_dispenser/constructable, +/turf/open/floor/plasteel/delivery, +/area/toxins/xenobiology) +"cON" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/box/beakers{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/syringes, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = 32 + }, +/obj/item/weapon/extinguisher/mini, +/turf/open/floor/plasteel/delivery, +/area/toxins/xenobiology) +"cOO" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"cOP" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/research{ + name = "Research Division" + }) +"cOQ" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"cOR" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/door/airlock/security{ + name = "Security Post - Science"; + req_access_txt = "63" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"cOS" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"cOT" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/chair/office/dark{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"cOU" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/computer/security, +/turf/open/floor/plasteel/red, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"cOV" = ( +/obj/structure/cable/white, +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"cOW" = ( +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"cOX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/medical/research{ + name = "Research Division" + }) +"cOY" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"cOZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"cPa" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"cPb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"cPc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"cPd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/research{ + name = "Research Division" + }) +"cPe" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/corner, +/area/medical/research{ + name = "Research Division" + }) +"cPf" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/medical/research{ + name = "Research Division" + }) +"cPg" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/primary/aft) +"cPh" = ( +/obj/effect/landmark{ + name = "lightsout" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/aft) +"cPi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 1; + icon_state = "pipe-j1s"; + name = "Chemistry Junction"; + sortType = 11; + tag = "icon-pipe-j1s (NORTH)" + }, +/turf/open/floor/plasteel/blue/corner, +/area/hallway/primary/aft) +"cPj" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cPk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cPl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/blue, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cPm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/cmo, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cPn" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/cmo, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cPo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/cmo, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cPp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/cmo, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cPq" = ( +/obj/effect/landmark{ + name = "lightsout" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/cmo, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cPr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/cmo, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cPs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cPt" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_medical{ + id_tag = "MedbayFoyer"; + name = "Medbay"; + req_access_txt = "5" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cPu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cPv" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cPw" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cPx" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/checkpoint/medical) +"cPy" = ( +/obj/machinery/computer/secure_data, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (SOUTHEAST)"; + icon_state = "red"; + dir = 6 + }, +/area/security/checkpoint/medical) +"cPz" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral, +/area/security/checkpoint/medical) +"cPA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (EAST)"; + icon_state = "red"; + dir = 4 + }, +/area/security/checkpoint/medical) +"cPB" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/checkpoint/medical) +"cPC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cPD" = ( +/obj/structure/table/glass, +/obj/item/weapon/storage/firstaid/brute{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/weapon/storage/firstaid/brute{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/firstaid/regular, +/obj/item/weapon/storage/firstaid/brute{ + pixel_x = -3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/medical/medbay2{ + name = "Medbay Storage" + }) +"cPE" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/cmo, +/area/medical/medbay2{ + name = "Medbay Storage" + }) +"cPF" = ( +/obj/structure/table/glass, +/obj/item/weapon/storage/firstaid/o2{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/weapon/storage/firstaid/o2{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/firstaid/regular, +/obj/item/weapon/storage/firstaid/o2{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/machinery/requests_console{ + department = "Medbay Storage"; + departmentType = 0; + name = "Medbay Storage RC"; + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/medical/medbay2{ + name = "Medbay Storage" + }) +"cPG" = ( +/obj/structure/toilet{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cPH" = ( +/obj/machinery/door/airlock{ + name = "Bathroom" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cPI" = ( +/obj/structure/urinal{ + pixel_y = 28 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cPJ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cPK" = ( +/obj/structure/mirror{ + pixel_x = 26 + }, +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/vomit/old, +/obj/structure/sign/poster{ + icon_state = "poster3_legit"; + pixel_y = 32; + tag = "icon-poster3_legit" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plasteel/neutral, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cPL" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cPM" = ( +/obj/structure/table/wood, +/obj/item/weapon/folder, +/obj/item/weapon/pen, +/obj/machinery/light, +/obj/machinery/status_display{ + pixel_y = -32 + }, +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"cPN" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/item/clothing/suit/jacket/letterman_nanotrasen, +/obj/item/clothing/suit/toggle/lawyer, +/obj/item/clothing/under/maid, +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"cPO" = ( +/obj/structure/bed, +/obj/machinery/light, +/obj/item/weapon/bedsheet/brown, +/obj/machinery/status_display{ + pixel_y = -32 + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"cPP" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/item/clothing/suit/jacket{ + desc = "All the class of a trenchcoat without the security fibers."; + icon_state = "detective"; + name = "trenchcoat" + }, +/obj/item/clothing/suit/toggle/lawyer/purple, +/obj/item/clothing/head/fedora{ + icon_state = "detective" + }, +/obj/item/clothing/under/lawyer/female, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"cPQ" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/machinery/light, +/obj/item/clothing/suit/jacket{ + desc = "All the class of a trenchcoat without the security fibers."; + icon_state = "greydet"; + name = "trenchcoat" + }, +/obj/item/clothing/suit/toggle/lawyer/black, +/obj/machinery/status_display{ + pixel_y = -32 + }, +/obj/item/clothing/head/fedora, +/obj/item/clothing/under/redeveninggown, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/sleep) +"cPR" = ( +/obj/structure/table/wood, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/sleep) +"cPS" = ( +/obj/structure/table, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/item/toy/katana, +/obj/machinery/ai_status_display{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cPT" = ( +/obj/structure/table, +/obj/item/toy/cards/deck, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cPU" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cPV" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cPW" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cPX" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cPY" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cPZ" = ( +/obj/machinery/status_display, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cQa" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cQb" = ( +/obj/structure/rack, +/obj/item/clothing/suit/fire/firefighter, +/obj/item/clothing/mask/gas, +/obj/item/clothing/head/hardhat/red, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cQc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cQd" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cQe" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 6 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/maintenance/electrical) +"cQf" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + tag = "icon-manifold (NORTH)"; + name = "scrubbers pipe"; + icon_state = "manifold"; + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/maintenance/electrical) +"cQg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel/caution{ + dir = 8 + }, +/area/maintenance/electrical) +"cQh" = ( +/obj/machinery/atmospherics/components/trinary/filter, +/turf/open/floor/plasteel/caution{ + dir = 4 + }, +/area/maintenance/electrical) +"cQi" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/table/reinforced, +/obj/item/weapon/crowbar/red, +/obj/item/weapon/wrench, +/turf/open/floor/plasteel/bot, +/area/maintenance/electrical) +"cQj" = ( +/obj/machinery/computer/station_alert, +/turf/open/floor/plasteel/bot, +/area/maintenance/electrical) +"cQk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating/warnplate{ + dir = 9 + }, +/area/maintenance/electrical) +"cQl" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/maintenance/electrical) +"cQm" = ( +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/maintenance/electrical) +"cQn" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/maintenance/electrical) +"cQo" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating/warnplate{ + dir = 5 + }, +/area/maintenance/electrical) +"cQp" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/maintenance/electrical) +"cQq" = ( +/obj/machinery/light_switch{ + pixel_x = 26 + }, +/turf/open/floor/plasteel/bot, +/area/maintenance/electrical) +"cQr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cQs" = ( +/obj/structure/cable/white, +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "xenosecure"; + name = "Secure Pen Shutters" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenosecure"; + name = "Secure Pen Shutters" + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"cQt" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced, +/obj/machinery/button/door{ + id = "xenosecure"; + name = "Containment Control"; + pixel_y = -3; + req_access_txt = "55" + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = 5 + }, +/turf/open/floor/plasteel/bot, +/area/toxins/xenobiology) +"cQu" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/toxins/xenobiology) +"cQv" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral, +/area/toxins/xenobiology) +"cQw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/delivery, +/area/toxins/xenobiology) +"cQx" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/toxins/xenobiology) +"cQy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/toxins/xenobiology) +"cQz" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/toxins/xenobiology) +"cQA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/toxins/xenobiology) +"cQB" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/toxins/xenobiology) +"cQC" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/toxins/xenobiology) +"cQD" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/toxins/xenobiology) +"cQE" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/toxins/xenobiology) +"cQF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 9 + }, +/area/toxins/xenobiology) +"cQG" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (NORTH)"; + icon_state = "whitepurple"; + dir = 1 + }, +/area/toxins/xenobiology) +"cQH" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (NORTH)"; + icon_state = "whitepurple"; + dir = 1 + }, +/area/toxins/xenobiology) +"cQI" = ( +/obj/structure/chair/office/light{ + dir = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/toxins/xenobiology) +"cQJ" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/white, +/obj/item/stack/sheet/mineral/plasma{ + amount = 5 + }, +/obj/item/weapon/reagent_containers/glass/beaker/large, +/obj/item/weapon/reagent_containers/glass/beaker, +/obj/item/weapon/reagent_containers/dropper, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/newscaster{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/toxins/xenobiology) +"cQK" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/purple, +/area/medical/research{ + name = "Research Division" + }) +"cQL" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"cQM" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"cQN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"cQO" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel/neutral, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"cQP" = ( +/obj/machinery/computer/mecha, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"cQQ" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"cQR" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"cQS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/purple, +/area/medical/research{ + name = "Research Division" + }) +"cQT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/purple, +/area/medical/research{ + name = "Research Division" + }) +"cQU" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plasteel/whitepurple/corner, +/area/medical/research{ + name = "Research Division" + }) +"cQV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/junction{ + dir = 1; + icon_state = "pipe-j1" + }, +/turf/open/floor/plasteel/blue/corner, +/area/hallway/primary/aft) +"cQW" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/disposalpipe/segment{ + tag = "icon-pipe-s (EAST)"; + icon_state = "pipe-s"; + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cQX" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/structure/disposalpipe/segment{ + tag = "icon-pipe-s (EAST)"; + icon_state = "pipe-s"; + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cQY" = ( +/obj/structure/disposalpipe/segment{ + tag = "icon-pipe-s (EAST)"; + icon_state = "pipe-s"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cQZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/blue, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cRa" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cRb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cRc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cRd" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/cable/white, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/checkpoint/medical) +"cRe" = ( +/obj/machinery/computer/security, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red, +/area/security/checkpoint/medical) +"cRf" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/plasteel/neutral, +/area/security/checkpoint/medical) +"cRg" = ( +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/checkpoint/medical) +"cRh" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/door/airlock/security{ + name = "Security Post - Medical"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/warning/side, +/area/security/checkpoint/medical) +"cRi" = ( +/obj/machinery/newscaster, +/turf/closed/wall, +/area/medical/medbay2{ + name = "Medbay Storage" + }) +"cRj" = ( +/obj/structure/table/glass, +/obj/item/weapon/storage/box/beakers{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/syringes, +/obj/item/weapon/gun/syringe, +/obj/machinery/status_display{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/medical/medbay2{ + name = "Medbay Storage" + }) +"cRk" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/whiteblue/side, +/area/medical/medbay2{ + name = "Medbay Storage" + }) +"cRl" = ( +/turf/open/floor/plasteel/whiteblue/side, +/area/medical/medbay2{ + name = "Medbay Storage" + }) +"cRm" = ( +/obj/machinery/light_switch{ + pixel_x = 26; + pixel_y = -38 + }, +/turf/open/floor/plasteel/whiteblue/side, +/area/medical/medbay2{ + name = "Medbay Storage" + }) +"cRn" = ( +/obj/structure/table/glass, +/obj/item/weapon/storage/belt/medical, +/obj/item/weapon/storage/belt/medical, +/obj/item/clothing/neck/stethoscope, +/obj/item/clothing/neck/stethoscope, +/obj/item/clothing/glasses/hud/health, +/obj/item/clothing/glasses/hud/health, +/obj/item/weapon/reagent_containers/spray/cleaner, +/obj/machinery/status_display{ + pixel_x = 32 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 0; + pixel_y = -24 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/medical/medbay2{ + name = "Medbay Storage" + }) +"cRo" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Bathroom" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cRp" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cRq" = ( +/obj/structure/girder, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cRr" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cRs" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cRt" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cRu" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cRv" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cRw" = ( +/obj/machinery/atmospherics/components/binary/valve{ + tag = "icon-mvalve_map (NORTH)"; + icon_state = "mvalve_map"; + dir = 1 + }, +/obj/structure/sign/nosmoking_2{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/maintenance/electrical) +"cRx" = ( +/obj/machinery/atmospherics/components/binary/valve{ + tag = "icon-mvalve_map (NORTH)"; + icon_state = "mvalve_map"; + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/maintenance/electrical) +"cRy" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/maintenance/electrical) +"cRz" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/yellow, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/delivery, +/area/maintenance/electrical) +"cRA" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/maintenance/electrical) +"cRB" = ( +/obj/machinery/power/terminal, +/obj/structure/cable, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/maintenance/electrical) +"cRC" = ( +/turf/open/floor/plating/warnplate/corner, +/area/maintenance/electrical) +"cRD" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/warnplate, +/area/maintenance/electrical) +"cRE" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/warnplate/corner{ + dir = 1 + }, +/area/maintenance/electrical) +"cRF" = ( +/obj/machinery/power/terminal, +/obj/structure/cable, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/maintenance/electrical) +"cRG" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/maintenance/electrical) +"cRH" = ( +/obj/structure/sign/nosmoking_2{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/electrical) +"cRI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/landmark{ + name = "blobstart" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cRJ" = ( +/obj/machinery/camera{ + c_tag = "Xenobiology - Secure Cell"; + dir = 4; + name = "xenobiology camera"; + network = list("SS13","xeno","RD") + }, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + icon_state = "vault"; + dir = 5 + }, +/area/toxins/xenobiology) +"cRK" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/door/window/brigdoor{ + dir = 8; + name = "Secure Creature Pen"; + req_access_txt = "47" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenosecure"; + name = "Secure Pen Shutters" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/toxins/xenobiology) +"cRL" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/window/brigdoor{ + dir = 4; + name = "Secure Creature Pen"; + req_access_txt = "47" + }, +/turf/open/floor/plasteel/delivery, +/area/toxins/xenobiology) +"cRM" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/toxins/xenobiology) +"cRN" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/toxins/xenobiology) +"cRO" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/delivery, +/area/toxins/xenobiology) +"cRP" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning/side, +/area/toxins/xenobiology) +"cRQ" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/shower{ + dir = 4; + icon_state = "shower"; + name = "emergency shower" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/turf/open/floor/plasteel/warnwhite/end{ + tag = "icon-white_warn_end (WEST)"; + icon_state = "white_warn_end"; + dir = 8 + }, +/area/toxins/xenobiology) +"cRR" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warnwhite/side{ + tag = "icon-white_warn_side (EAST)"; + icon_state = "white_warn_side"; + dir = 4 + }, +/area/toxins/xenobiology) +"cRS" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/landmark{ + name = "lightsout" + }, +/turf/open/floor/plasteel/warnwhite/side{ + tag = "icon-white_warn_side (EAST)"; + icon_state = "white_warn_side"; + dir = 4 + }, +/area/toxins/xenobiology) +"cRT" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/shower{ + dir = 8; + icon_state = "shower"; + name = "emergency shower" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/warnwhite/end{ + tag = "icon-white_warn_end (EAST)"; + icon_state = "white_warn_end"; + dir = 4 + }, +/area/toxins/xenobiology) +"cRU" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/toxins/xenobiology) +"cRV" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 8 + }, +/area/toxins/xenobiology) +"cRW" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/effect/landmark/start{ + name = "Scientist" + }, +/turf/open/floor/plasteel/neutral, +/area/toxins/xenobiology) +"cRX" = ( +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/toxins/xenobiology) +"cRY" = ( +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/toxins/xenobiology) +"cRZ" = ( +/obj/machinery/computer/camera_advanced/xenobio, +/obj/machinery/status_display{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/toxins/xenobiology) +"cSa" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/camera{ + c_tag = "Science - Fore"; + dir = 8; + name = "science camera"; + network = list("SS13","RD") + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"cSb" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/door_timer{ + id = "scicell"; + name = "Science Cell"; + pixel_x = -32; + pixel_y = -32 + }, +/obj/machinery/power/apc{ + dir = 8; + name = "Security Post - Science APC"; + pixel_x = -26; + pixel_y = 3 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_Toxins = 0 + }, +/obj/machinery/button/door{ + desc = "A remote control switch."; + id = "scidoor"; + name = "Science Cell Control"; + normaldoorcontrol = 1; + pixel_x = -36; + pixel_y = -7 + }, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (SOUTHWEST)"; + icon_state = "red"; + dir = 10 + }, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"cSc" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/red/side, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"cSd" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/camera{ + c_tag = "Security Post - Science"; + dir = 8; + name = "security camera"; + network = list("SS13","RD") + }, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"cSe" = ( +/obj/structure/table, +/obj/item/weapon/clipboard, +/obj/item/weapon/electronics/airlock, +/obj/item/weapon/stock_parts/console_screen, +/obj/item/device/assembly/signaler, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"cSf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"cSg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"cSh" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"cSi" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/weapon/stock_parts/cell/high, +/obj/machinery/light, +/obj/machinery/camera{ + c_tag = "Science - Waiting Room"; + dir = 1; + name = "science camera"; + network = list("SS13","RD") + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"cSj" = ( +/obj/structure/table, +/obj/item/device/gps, +/obj/item/device/assembly/flash/handheld, +/obj/machinery/status_display{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/whitepurple/side, +/area/medical/research{ + name = "Research Division" + }) +"cSk" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whitepurple/corner, +/area/medical/research{ + name = "Research Division" + }) +"cSl" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/plasteel/whitepurple/corner, +/area/medical/research{ + name = "Research Division" + }) +"cSm" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/bot, +/area/medical/research{ + name = "Research Division" + }) +"cSn" = ( +/turf/open/floor/plasteel/whitepurple/corner, +/area/medical/research{ + name = "Research Division" + }) +"cSo" = ( +/obj/machinery/autolathe, +/turf/open/floor/plasteel/whitepurple/corner, +/area/medical/research{ + name = "Research Division" + }) +"cSp" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/stack/packageWrap, +/obj/machinery/light, +/turf/open/floor/plasteel/whitepurple/corner, +/area/medical/research{ + name = "Research Division" + }) +"cSq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/aft) +"cSr" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/machinery/light, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cSs" = ( +/obj/structure/table, +/obj/item/weapon/folder/white, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cSt" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/bot, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cSu" = ( +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cSv" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cSw" = ( +/obj/structure/bed/roller, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cSx" = ( +/obj/structure/bed/roller, +/turf/open/floor/plasteel/whiteblue/side, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cSy" = ( +/obj/structure/bed/roller, +/obj/structure/sign/chemistry{ + pixel_y = -32 + }, +/obj/machinery/light, +/obj/machinery/camera{ + c_tag = "Medbay - Waiting Room"; + dir = 1; + name = "medbay camera" + }, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cSz" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cSA" = ( +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cSB" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cSC" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cSD" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/checkpoint/medical) +"cSE" = ( +/obj/machinery/computer/crew, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/checkpoint/medical) +"cSF" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/neutral, +/area/security/checkpoint/medical) +"cSG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (EAST)"; + icon_state = "red"; + dir = 4 + }, +/area/security/checkpoint/medical) +"cSH" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/checkpoint/medical) +"cSI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cSJ" = ( +/obj/structure/sign/bluecross_2{ + pixel_x = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cSK" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_medical{ + name = "Medbay Storage"; + req_access_txt = "5" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/sign/poster{ + icon_state = "poster3_legit"; + pixel_x = -32; + pixel_y = 0; + tag = "icon-poster3_legit" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/medical/medbay2{ + name = "Medbay Storage" + }) +"cSL" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_medical{ + name = "Medbay Storage"; + req_access_txt = "5" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/medical/medbay2{ + name = "Medbay Storage" + }) +"cSM" = ( +/obj/structure/table/wood, +/obj/machinery/microwave{ + desc = "Cooks and boils stuff, somehow."; + pixel_x = -3; + pixel_y = 5 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cSN" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/box/donkpockets, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cSO" = ( +/obj/machinery/camera{ + c_tag = "Medbay - Break Room"; + dir = 2; + name = "medbay camera" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cSP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cSQ" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/bot, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cSR" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cSS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cST" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cSU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cSV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark{ + name = "blobstart" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cSW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cSX" = ( +/obj/structure/girder, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cSY" = ( +/obj/structure/closet/crate, +/obj/item/weapon/storage/box/donkpockets, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cSZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cTa" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 5 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cTb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cTc" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cTd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cTe" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cTf" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cTg" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cTh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cTi" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/maintenance/electrical) +"cTj" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/light_switch{ + pixel_y = -26 + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/maintenance/electrical) +"cTk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/maintenance/electrical) +"cTl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/maintenance/electrical) +"cTm" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/obj/structure/closet/toolcloset, +/turf/open/floor/plating, +/area/maintenance/electrical) +"cTn" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/delivery, +/area/maintenance/electrical) +"cTo" = ( +/obj/structure/table/reinforced, +/obj/structure/sign/poster{ + icon_state = "poster16_legit"; + pixel_y = -32; + tag = "icon-poster16_legit" + }, +/obj/item/clothing/gloves/color/yellow, +/obj/item/weapon/storage/toolbox/electrical, +/turf/open/floor/plating, +/area/maintenance/electrical) +"cTp" = ( +/obj/machinery/power/smes, +/obj/machinery/light/small, +/obj/machinery/status_display{ + pixel_y = -32 + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/maintenance/electrical) +"cTq" = ( +/obj/machinery/light_switch{ + pixel_y = -26 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/bot, +/area/maintenance/electrical) +"cTr" = ( +/turf/open/floor/plasteel/delivery, +/area/maintenance/electrical) +"cTs" = ( +/obj/machinery/power/smes, +/obj/machinery/light/small, +/obj/machinery/status_display{ + pixel_y = -32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/maintenance/electrical) +"cTt" = ( +/obj/structure/closet/toolcloset, +/turf/open/floor/plasteel/delivery, +/area/maintenance/electrical) +"cTu" = ( +/obj/structure/closet/secure_closet/engineering_electrical, +/turf/open/floor/plating, +/area/maintenance/electrical) +"cTv" = ( +/obj/structure/disposaloutlet{ + tag = "icon-outlet (WEST)"; + icon_state = "outlet"; + dir = 8 + }, +/obj/structure/disposalpipe/trunk{ + tag = "icon-pipe-t (EAST)"; + icon_state = "pipe-t"; + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/toxins/xenobiology) +"cTw" = ( +/obj/structure/cable/white, +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "xenosecure"; + name = "Secure Pen Shutters" + }, +/obj/structure/disposalpipe/segment{ + tag = "icon-pipe-s (EAST)"; + icon_state = "pipe-s"; + dir = 4 + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"cTx" = ( +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + tag = "icon-pipe-t (WEST)"; + icon_state = "pipe-t"; + dir = 8 + }, +/turf/open/floor/plasteel/bot, +/area/toxins/xenobiology) +"cTy" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/bot, +/area/toxins/xenobiology) +"cTz" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/delivery, +/area/toxins/xenobiology) +"cTA" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/toxins/xenobiology) +"cTB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/toxins/xenobiology) +"cTC" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/toxins/xenobiology) +"cTD" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side, +/area/toxins/xenobiology) +"cTE" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/toxins/xenobiology) +"cTF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/toxins/xenobiology) +"cTG" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/toxins/xenobiology) +"cTH" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/toxins/xenobiology) +"cTI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 8 + }, +/area/toxins/xenobiology) +"cTJ" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/purple, +/area/toxins/xenobiology) +"cTK" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/bot, +/area/toxins/xenobiology) +"cTL" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/box/monkeycubes, +/obj/item/weapon/storage/box/monkeycubes, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/toxins/xenobiology) +"cTM" = ( +/obj/structure/table/reinforced, +/obj/machinery/reagentgrinder{ + pixel_y = 5 + }, +/obj/machinery/requests_console{ + department = "Xenobiology Lab"; + departmentType = 0; + name = "Xenobiology RC"; + pixel_x = 32; + pixel_y = 0 + }, +/obj/machinery/camera{ + c_tag = "Xenobiology - Starboard"; + dir = 8; + name = "xenobiology camera"; + network = list("SS13","xeno","RD") + }, +/turf/open/floor/plasteel/delivery, +/area/toxins/xenobiology) +"cTN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"cTO" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"cTP" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/window/brigdoor{ + id = "scicell"; + name = "Medical Cell"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/red, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"cTQ" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/sign/nanotrasen{ + pixel_x = 32 + }, +/turf/open/floor/plating, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"cTR" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + name = "Research Division Access"; + req_access_txt = "47" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"cTS" = ( +/obj/structure/sign/science, +/turf/closed/wall/r_wall, +/area/medical/research{ + name = "Research Division" + }) +"cTT" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + name = "Research Division Access"; + req_access_txt = "47" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"cTU" = ( +/obj/structure/sign/securearea, +/turf/closed/wall/r_wall, +/area/medical/research{ + name = "Research Division" + }) +"cTV" = ( +/obj/structure/sign/science, +/turf/closed/wall, +/area/toxins/lab) +"cTW" = ( +/turf/closed/wall/r_wall, +/area/toxins/lab) +"cTX" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rndlab1"; + name = "Research and Development Shutter" + }, +/turf/open/floor/plating, +/area/toxins/lab) +"cTY" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rndlab1"; + name = "Research and Development Shutter" + }, +/turf/open/floor/plating, +/area/toxins/lab) +"cTZ" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/item/weapon/folder, +/obj/item/weapon/pen, +/obj/machinery/door/window/southleft{ + name = "Research Lab Desk"; + req_access_txt = "7" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rndlab1"; + name = "Research and Development Shutter" + }, +/turf/open/floor/plasteel/delivery, +/area/toxins/lab) +"cUa" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/toxins/lab) +"cUb" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall/r_wall, +/area/toxins/lab) +"cUc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/primary/aft) +"cUd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/extinguisher_cabinet{ + dir = 4; + pixel_x = 24; + pixel_y = 0 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/aft) +"cUe" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "chemisttop"; + name = "Chemisty Lobby Shutters" + }, +/turf/open/floor/plating, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cUf" = ( +/obj/machinery/smartfridge/chemistry, +/turf/closed/wall, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cUg" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "chemisttop"; + name = "Chemisty Lobby Shutters" + }, +/obj/machinery/door/window/southleft{ + name = "Chemistry Desk"; + req_access_txt = "5; 33" + }, +/obj/item/weapon/folder/yellow, +/turf/open/floor/plasteel/delivery, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cUh" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "chemisttop"; + name = "Chemisty Lobby Shutters" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cUi" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/item/weapon/folder/white, +/obj/item/weapon/reagent_containers/hypospray/medipen, +/turf/open/floor/plasteel/delivery, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cUj" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/item/weapon/reagent_containers/glass/bottle/charcoal{ + pixel_x = 6 + }, +/obj/item/weapon/reagent_containers/glass/bottle/epinephrine, +/obj/item/weapon/reagent_containers/syringe, +/turf/open/floor/plasteel/delivery, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cUk" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/item/weapon/reagent_containers/food/drinks/britcup, +/turf/open/floor/plasteel/delivery, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cUl" = ( +/obj/machinery/airalarm{ + dir = 4; + locked = 0; + pixel_x = -23; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cUm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/camera{ + c_tag = "Medbay - Fore Port"; + dir = 8; + name = "medbay camera" + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cUn" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/door_timer{ + id = "medcell"; + name = "Medical Cell"; + pixel_x = -32; + pixel_y = -32 + }, +/obj/machinery/power/apc{ + dir = 8; + name = "Security Post - Medical APC"; + pixel_x = -26; + pixel_y = 0 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/obj/machinery/camera{ + c_tag = "Security Post - Medbay"; + dir = 4; + name = "security camera" + }, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (SOUTHWEST)"; + icon_state = "red"; + dir = 10 + }, +/area/security/checkpoint/medical) +"cUo" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/red/side, +/area/security/checkpoint/medical) +"cUp" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (SOUTHEAST)"; + icon_state = "red"; + dir = 6 + }, +/area/security/checkpoint/medical) +"cUq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cUr" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/blue, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cUs" = ( +/obj/structure/table/glass, +/obj/item/stack/medical/gauze, +/obj/item/stack/medical/bruise_pack, +/obj/item/stack/medical/ointment, +/obj/machinery/camera{ + c_tag = "Medbay - Sleepers"; + dir = 2; + name = "medbay camera" + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cUt" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cUu" = ( +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (NORTH)"; + icon_state = "whiteblue"; + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cUv" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cUw" = ( +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cUx" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/redblue, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cUy" = ( +/turf/open/floor/plasteel/redblue, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cUz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/redblue, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cUA" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cUB" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cUC" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cUD" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cUE" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cUF" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cUG" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cUH" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cUI" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cUJ" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cUK" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cUL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cUM" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j1"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cUN" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cUO" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cUP" = ( +/obj/structure/table, +/obj/item/clothing/under/suit_jacket/really_black, +/obj/item/weapon/cane, +/obj/item/clothing/head/bowler{ + pixel_y = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cUQ" = ( +/obj/structure/table, +/obj/item/weapon/clipboard, +/obj/item/weapon/folder, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cUR" = ( +/obj/structure/table, +/obj/item/toy/sword, +/obj/item/weapon/gun/ballistic/shotgun/toy/crossbow, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cUS" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cUT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cUU" = ( +/turf/open/floor/plasteel/escape{ + dir = 8 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cUV" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/crayons, +/obj/item/weapon/storage/crayons, +/turf/open/floor/plasteel/escape{ + tag = "icon-escape (EAST)"; + icon_state = "escape"; + dir = 4 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cUW" = ( +/obj/structure/mopbucket, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/mop, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cUX" = ( +/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/item/weapon/reagent_containers/glass/bucket, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cUY" = ( +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics Auxiliary Port"; + req_access_txt = "24" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/maintenance/electrical) +"cUZ" = ( +/obj/structure/sign/securearea, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/maintenance/electrical) +"cVa" = ( +/obj/machinery/door/airlock/engineering{ + name = "Engineering Auxiliary Power"; + req_access_txt = "10" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/maintenance/electrical) +"cVb" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "xenosecure"; + name = "Secure Pen Shutters" + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"cVc" = ( +/obj/structure/table/reinforced, +/obj/machinery/cell_charger, +/turf/open/floor/plasteel/bot, +/area/toxins/xenobiology) +"cVd" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/bot, +/area/toxins/xenobiology) +"cVe" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/neutral, +/area/toxins/xenobiology) +"cVf" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/bot, +/area/toxins/xenobiology) +"cVg" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/bot, +/area/toxins/xenobiology) +"cVh" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/window/brigdoor{ + dir = 1; + name = "Creature Pen"; + req_access_txt = "47" + }, +/turf/open/floor/plasteel/delivery, +/area/toxins/xenobiology) +"cVi" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 26; + pixel_y = -32 + }, +/obj/machinery/button/door{ + id = "xeno1"; + name = "Containment Control"; + req_access_txt = "55" + }, +/turf/open/floor/plasteel/bot, +/area/toxins/xenobiology) +"cVj" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/disposal/bin, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26; + pixel_y = -32 + }, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/bot, +/area/toxins/xenobiology) +"cVk" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/button/door{ + id = "xeno2"; + name = "Containment Control"; + req_access_txt = "55" + }, +/turf/open/floor/plasteel/bot, +/area/toxins/xenobiology) +"cVl" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/button/door{ + id = "xeno3"; + name = "Containment Control"; + req_access_txt = "55" + }, +/turf/open/floor/plasteel/bot, +/area/toxins/xenobiology) +"cVm" = ( +/obj/machinery/processor/slime, +/turf/open/floor/plasteel/bot, +/area/toxins/xenobiology) +"cVn" = ( +/turf/open/floor/plasteel/whitepurple/side{ + dir = 8 + }, +/area/toxins/xenobiology) +"cVo" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/landmark/start{ + name = "Scientist" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral, +/area/toxins/xenobiology) +"cVp" = ( +/obj/structure/chair/office/light{ + tag = "icon-officechair_white (EAST)"; + icon_state = "officechair_white"; + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/toxins/xenobiology) +"cVq" = ( +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"cVr" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"cVs" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"cVt" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/closet/secure_closet/brig{ + id = "scicell"; + name = "Science Cell Locker" + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"cVu" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"cVv" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/bot, +/area/medical/research{ + name = "Research Division" + }) +"cVw" = ( +/obj/machinery/shower{ + dir = 4; + icon_state = "shower"; + name = "emergency shower" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/medical/research{ + name = "Research Division" + }) +"cVx" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"cVy" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/medical/research{ + name = "Research Division" + }) +"cVz" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plasteel/bot, +/area/medical/research{ + name = "Research Division" + }) +"cVA" = ( +/obj/structure/sign/nosmoking_2, +/turf/closed/wall/r_wall, +/area/toxins/lab) +"cVB" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + tag = "icon-pipe-t (EAST)"; + icon_state = "pipe-t"; + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/toxins/lab) +"cVC" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1 + }, +/area/toxins/lab) +"cVD" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/machinery/status_display{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1 + }, +/area/toxins/lab) +"cVE" = ( +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (NORTH)"; + icon_state = "whitepurple"; + dir = 1 + }, +/area/toxins/lab) +"cVF" = ( +/obj/structure/chair/office/light{ + dir = 1 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4 + }, +/area/toxins/lab) +"cVG" = ( +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4 + }, +/area/toxins/lab) +"cVH" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/weapon/wrench, +/obj/item/clothing/glasses/welding, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4 + }, +/area/toxins/lab) +"cVI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/purple/corner{ + tag = "icon-purplecorner (WEST)"; + icon_state = "purplecorner"; + dir = 8 + }, +/area/hallway/primary/aft) +"cVJ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/aft) +"cVK" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/orange/corner, +/area/hallway/primary/aft) +"cVL" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "chemistbot"; + name = "Chemisty Side Shutters" + }, +/turf/open/floor/plating, +/area/medical/chemistry) +"cVM" = ( +/obj/structure/table/glass, +/obj/item/weapon/folder/white, +/obj/item/weapon/reagent_containers/glass/beaker/large{ + pixel_x = -3 + }, +/obj/item/weapon/reagent_containers/glass/beaker{ + pixel_x = 3 + }, +/obj/item/weapon/reagent_containers/dropper, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/whiteyellow/corner{ + tag = "icon-whiteyellowcorner (NORTH)"; + icon_state = "whiteyellowcorner"; + dir = 1 + }, +/area/medical/chemistry) +"cVN" = ( +/obj/structure/table/glass, +/obj/item/weapon/clipboard, +/obj/item/toy/figure/chemist, +/turf/open/floor/plasteel/whiteyellow/corner{ + tag = "icon-whiteyellowcorner (NORTH)"; + icon_state = "whiteyellowcorner"; + dir = 1 + }, +/area/medical/chemistry) +"cVO" = ( +/obj/machinery/chem_master{ + density = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/medical/chemistry) +"cVP" = ( +/obj/structure/chair/office/light{ + dir = 1 + }, +/obj/effect/landmark/start{ + name = "Chemist" + }, +/turf/open/floor/plasteel/bot, +/area/medical/chemistry) +"cVQ" = ( +/obj/machinery/chem_dispenser, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/medical/chemistry) +"cVR" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 1; + name = "Chemistry Lab APC"; + pixel_x = 0; + pixel_y = 25 + }, +/turf/open/floor/plasteel/whiteyellow/corner{ + dir = 4 + }, +/area/medical/chemistry) +"cVS" = ( +/obj/structure/closet/wardrobe/chemistry_white, +/turf/open/floor/plasteel/warning{ + tag = "icon-plasteel_warn (NORTHWEST)"; + icon_state = "plasteel_warn"; + dir = 9 + }, +/area/medical/chemistry) +"cVT" = ( +/obj/machinery/ai_status_display, +/turf/closed/wall, +/area/medical/chemistry) +"cVU" = ( +/obj/machinery/computer/med_data, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cVV" = ( +/obj/structure/chair/office/light{ + dir = 1 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cVW" = ( +/turf/open/floor/plasteel/whiteblue/side{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cVX" = ( +/obj/structure/chair/office/light{ + dir = 1 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cVY" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/machinery/button/door{ + desc = "A remote control switch for the medbay foyer."; + id = "MedbayFoyer"; + name = "Medbay Doors Control"; + normaldoorcontrol = 1; + pixel_x = 24; + pixel_y = 24 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cVZ" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/checkpoint/medical) +"cWa" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/door/window/brigdoor{ + id = "medcell"; + name = "Medical Cell"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/red, +/area/security/checkpoint/medical) +"cWb" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/checkpoint/medical) +"cWc" = ( +/obj/structure/sign/poster{ + icon_state = "poster4_legit"; + pixel_x = -32; + pixel_y = 0; + tag = "icon-poster4_legit" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cWd" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warning/side, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cWe" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cWf" = ( +/obj/effect/landmark/start{ + name = "Medical Doctor" + }, +/turf/open/floor/plasteel/blue, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cWg" = ( +/obj/structure/mirror{ + pixel_x = 26 + }, +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cWh" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cWi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/redblue, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cWj" = ( +/obj/machinery/holopad, +/obj/effect/landmark/start{ + name = "Medical Doctor" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/redblue, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cWk" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/redblue, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cWl" = ( +/obj/machinery/vending/cola, +/obj/machinery/status_display{ + pixel_x = 32 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cWm" = ( +/obj/structure/girder, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cWn" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cWo" = ( +/turf/closed/wall, +/area/medical/medbay3{ + name = "Abandoned Medbay" + }) +"cWp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cWq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cWr" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cWs" = ( +/obj/structure/table, +/obj/item/weapon/storage/photo_album, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cWt" = ( +/obj/item/weapon/lipstick/random{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/lipstick/random{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/weapon/lipstick/random, +/obj/structure/table, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cWu" = ( +/obj/structure/table, +/obj/item/device/camera_film{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/device/camera_film, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cWv" = ( +/turf/open/floor/plasteel/neutral/corner, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cWw" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/escape{ + dir = 8 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cWx" = ( +/obj/structure/easel, +/obj/item/weapon/canvas/twentythreeXtwentythree, +/obj/item/weapon/canvas/twentythreeXtwentythree, +/obj/item/weapon/canvas/twentythreeXtwentythree, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/escape{ + tag = "icon-escape (EAST)"; + icon_state = "escape"; + dir = 4 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cWy" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/clothing/gloves/color/orange, +/obj/item/weapon/storage/box/mousetraps{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/lights/mixed, +/obj/item/weapon/grenade/chem_grenade/cleaner, +/turf/open/floor/plasteel/green/side{ + dir = 8 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cWz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/purple/side{ + tag = "icon-purple (EAST)"; + icon_state = "purple"; + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cWA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/delivery, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cWB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cWC" = ( +/obj/effect/landmark{ + name = "blobstart" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cWD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cWE" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/delivery, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cWF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cWG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cWH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/machinery/power/apc{ + cell_type = 10000; + dir = 1; + name = "Port Maintenance APC"; + pixel_x = 0; + pixel_y = 28 + }, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cWI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cWJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cWK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cWL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cWM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cWN" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cWO" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + icon_state = "vault"; + dir = 5 + }, +/area/toxins/xenobiology) +"cWP" = ( +/obj/machinery/shieldwallgen, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/turf/open/floor/plating/warnplate{ + dir = 5 + }, +/area/toxins/xenobiology) +"cWQ" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/turf/open/floor/plasteel/delivery, +/area/toxins/xenobiology) +"cWR" = ( +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/bot, +/area/toxins/xenobiology) +"cWS" = ( +/obj/structure/table, +/obj/item/weapon/crowbar, +/obj/item/weapon/wrench, +/obj/item/clothing/mask/gas, +/obj/machinery/light, +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/bot, +/area/toxins/xenobiology) +"cWT" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/poddoor/preopen{ + id = "xeno1"; + name = "Creature Cell #1" + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"cWU" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/door/window/brigdoor{ + name = "Creature Pen"; + req_access_txt = "47" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xeno1"; + name = "Creature Cell #1" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/toxins/xenobiology) +"cWV" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "xeno1"; + name = "Creature Cell #1" + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"cWW" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/poddoor/preopen{ + id = "xeno2"; + name = "Creature Cell #2" + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"cWX" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/door/window/brigdoor{ + name = "Creature Pen"; + req_access_txt = "47" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xeno2"; + name = "Creature Cell #2" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/toxins/xenobiology) +"cWY" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "xeno2"; + name = "Creature Cell #2" + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"cWZ" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/poddoor/preopen{ + id = "xeno3"; + name = "Creature Cell #3" + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"cXa" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/door/window/brigdoor{ + name = "Creature Pen"; + req_access_txt = "47" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xeno3"; + name = "Creature Cell #3" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/toxins/xenobiology) +"cXb" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "xeno3"; + name = "Creature Cell #3" + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"cXc" = ( +/obj/machinery/smartfridge/extract, +/obj/machinery/light_switch{ + pixel_x = -26 + }, +/turf/open/floor/plasteel/bot, +/area/toxins/xenobiology) +"cXd" = ( +/turf/open/floor/plasteel/whitepurple/side{ + dir = 10 + }, +/area/toxins/xenobiology) +"cXe" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/whitepurple/side, +/area/toxins/xenobiology) +"cXf" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/whitepurple/side, +/area/toxins/xenobiology) +"cXg" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/toxins/xenobiology) +"cXh" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/white, +/obj/item/weapon/pen, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/power/apc{ + dir = 4; + name = "Xenobiology Lab APC"; + pixel_x = 26; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warning, +/area/toxins/xenobiology) +"cXi" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (SOUTHWEST)"; + icon_state = "red"; + dir = 10 + }, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"cXj" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/red/side, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"cXk" = ( +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"cXl" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + id_tag = "scidoor"; + name = "Security Post - Science"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/warning/side, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"cXm" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/bot, +/area/medical/research{ + name = "Research Division" + }) +"cXn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"cXo" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/bot, +/area/medical/research{ + name = "Research Division" + }) +"cXp" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"cXq" = ( +/obj/structure/closet/firecloset, +/obj/machinery/camera{ + c_tag = "Science - Research Division Access"; + dir = 8; + name = "science camera"; + network = list("SS13","RD") + }, +/turf/open/floor/plasteel/bot, +/area/medical/research{ + name = "Research Division" + }) +"cXr" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/stock_parts/matter_bin{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/stock_parts/matter_bin, +/obj/item/weapon/stock_parts/micro_laser, +/obj/machinery/airalarm{ + dir = 4; + locked = 0; + pixel_x = -23; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/toxins/lab) +"cXs" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/toxins/lab) +"cXt" = ( +/obj/effect/landmark/start{ + name = "Scientist" + }, +/turf/open/floor/plasteel/neutral, +/area/toxins/lab) +"cXu" = ( +/turf/open/floor/plasteel/neutral, +/area/toxins/lab) +"cXv" = ( +/obj/machinery/r_n_d/destructive_analyzer, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/toxins/lab) +"cXw" = ( +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/toxins/lab) +"cXx" = ( +/obj/machinery/r_n_d/protolathe, +/obj/machinery/ai_status_display{ + pixel_x = 32 + }, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/toxins/lab) +"cXy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/machinery/camera{ + c_tag = "Departures Hallway - Fore"; + dir = 8; + name = "hallway camera" + }, +/turf/open/floor/plasteel/orange/corner, +/area/hallway/primary/aft) +"cXz" = ( +/turf/closed/wall, +/area/medical/chemistry) +"cXA" = ( +/obj/structure/table/glass, +/obj/item/device/assembly/igniter, +/obj/item/device/assembly/igniter, +/obj/item/device/assembly/igniter, +/obj/item/device/assembly/timer{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/device/assembly/timer{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/device/assembly/timer{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/machinery/status_display{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 8 + }, +/area/medical/chemistry) +"cXB" = ( +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"cXC" = ( +/obj/machinery/chem_heater, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/medical/chemistry) +"cXD" = ( +/turf/open/floor/plasteel/warning, +/area/medical/chemistry) +"cXE" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/medical/chemistry) +"cXF" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral, +/area/medical/chemistry) +"cXG" = ( +/obj/structure/closet/secure_closet/medical1, +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/medical/chemistry) +"cXH" = ( +/obj/machinery/computer/crew, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = -26; + pixel_y = 0 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cXI" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cXJ" = ( +/obj/machinery/holopad, +/obj/effect/landmark/start{ + name = "Medical Doctor" + }, +/turf/open/floor/plasteel/neutral, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cXK" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 4 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cXL" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/glass_medical{ + name = "Medbay Desk"; + req_access_txt = "5" + }, +/turf/open/floor/plasteel/warning/side, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cXM" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cXN" = ( +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/checkpoint/medical) +"cXO" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/checkpoint/medical) +"cXP" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/checkpoint/medical) +"cXQ" = ( +/obj/structure/closet/secure_closet/brig{ + id = "medcell"; + name = "Medical Cell Locker" + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/checkpoint/medical) +"cXR" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/blue, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cXS" = ( +/obj/machinery/holopad{ + pixel_y = 16 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cXT" = ( +/obj/machinery/shower{ + dir = 8; + icon_state = "shower"; + name = "emergency shower" + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cXU" = ( +/obj/structure/table/wood, +/obj/item/weapon/folder/white, +/obj/item/weapon/reagent_containers/spray/cleaner, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cXV" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/redblue, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cXW" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/redblue, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cXX" = ( +/obj/machinery/vending/cigarette, +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cXY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate, +/obj/item/weapon/retractor, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cXZ" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23; + pixel_y = 0 + }, +/obj/machinery/sleeper{ + icon_state = "sleeper-open"; + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/medical/medbay3{ + name = "Abandoned Medbay" + }) +"cYa" = ( +/obj/structure/mirror{ + icon_state = "mirror_broke"; + pixel_y = 28; + tag = "icon-mirror_broke" + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/medbay3{ + name = "Abandoned Medbay" + }) +"cYb" = ( +/obj/structure/bed/roller, +/obj/machinery/iv_drip{ + density = 0 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/medical/medbay3{ + name = "Abandoned Medbay" + }) +"cYc" = ( +/obj/structure/table/glass, +/obj/item/stack/medical/gauze, +/obj/item/stack/medical/bruise_pack, +/obj/item/stack/medical/ointment, +/obj/structure/sign/nosmoking_2{ + pixel_y = 32 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 1 + }, +/area/medical/medbay3{ + name = "Abandoned Medbay" + }) +"cYd" = ( +/obj/structure/bed/roller, +/obj/machinery/iv_drip{ + density = 0 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/medbay3{ + name = "Abandoned Medbay" + }) +"cYe" = ( +/obj/structure/mirror{ + icon_state = "mirror_broke"; + pixel_y = 28; + tag = "icon-mirror_broke" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/medbay3{ + name = "Abandoned Medbay" + }) +"cYf" = ( +/obj/structure/frame/machine, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/medical/medbay3{ + name = "Abandoned Medbay" + }) +"cYg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cYh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cYi" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/delivery, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cYj" = ( +/turf/open/floor/plasteel/neutral/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cYk" = ( +/obj/machinery/light, +/obj/machinery/camera{ + c_tag = "Recreation - Aft"; + dir = 1; + name = "recreation camera" + }, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cYl" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cYm" = ( +/obj/structure/table/wood, +/obj/item/stack/packageWrap{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/stack/wrapping_paper, +/turf/open/floor/plasteel/escape{ + dir = 8 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cYn" = ( +/obj/structure/table/wood, +/obj/item/device/camera, +/obj/structure/sign/nanotrasen{ + pixel_x = 32; + pixel_y = -32 + }, +/turf/open/floor/plasteel/escape{ + tag = "icon-escape (EAST)"; + icon_state = "escape"; + dir = 4 + }, +/area/crew_quarters/fitness{ + name = "\improper Recreation Area" + }) +"cYo" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/green/side{ + dir = 6 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cYp" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral/side{ + dir = 10 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cYq" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cYr" = ( +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cYs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cYt" = ( +/obj/structure/closet/emcloset, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cYu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cYv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cYw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cYx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cYy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cYz" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cYA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cYB" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + 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/fpmaint2{ + name = "Port Maintenance" + }) +"cYC" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cYD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/toxins/xenobiology) +"cYE" = ( +/obj/structure/disposaloutlet, +/obj/structure/disposalpipe/trunk{ + tag = "icon-pipe-t (NORTH)"; + icon_state = "pipe-t"; + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/toxins/xenobiology) +"cYF" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24; + pixel_y = 0 + }, +/obj/item/weapon/storage/bag/bio, +/obj/item/weapon/storage/bag/bio, +/turf/open/floor/plasteel/bot, +/area/toxins/xenobiology) +"cYG" = ( +/turf/open/floor/plasteel/bot, +/area/toxins/xenobiology) +"cYH" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/bot, +/area/toxins/xenobiology) +"cYI" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/ai_status_display{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/bot, +/area/toxins/xenobiology) +"cYJ" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/gloves/color/latex, +/obj/item/device/slime_scanner, +/turf/open/floor/plasteel/delivery, +/area/toxins/xenobiology) +"cYK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"cYL" = ( +/obj/structure/cable/white, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"cYM" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = -32 + }, +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/bot, +/area/medical/research{ + name = "Research Division" + }) +"cYN" = ( +/obj/machinery/shower{ + dir = 4; + icon_state = "shower"; + name = "emergency shower" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/medical/research{ + name = "Research Division" + }) +"cYO" = ( +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/warning, +/area/medical/research{ + name = "Research Division" + }) +"cYP" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/medical/research{ + name = "Research Division" + }) +"cYQ" = ( +/obj/structure/closet/l3closet/scientist, +/turf/open/floor/plasteel/bot, +/area/medical/research{ + name = "Research Division" + }) +"cYR" = ( +/obj/structure/table/reinforced, +/obj/item/stack/cable_coil/white{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stack/cable_coil/white, +/obj/item/weapon/stock_parts/scanning_module{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/stock_parts/capacitor, +/obj/item/weapon/stock_parts/manipulator, +/obj/item/weapon/stock_parts/manipulator, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = -26; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/toxins/lab) +"cYS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/toxins/lab) +"cYT" = ( +/turf/open/floor/plasteel/whitepurple/side{ + dir = 9 + }, +/area/toxins/lab) +"cYU" = ( +/turf/open/floor/plasteel/whitepurple/side{ + dir = 5; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; + tag = "icon-whitehall (WEST)" + }, +/area/toxins/lab) +"cYV" = ( +/obj/machinery/computer/rdconsole/core, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/toxins/lab) +"cYW" = ( +/turf/open/floor/plasteel/warning, +/area/toxins/lab) +"cYX" = ( +/obj/machinery/r_n_d/circuit_imprinter, +/obj/item/weapon/reagent_containers/glass/beaker/sulphuric, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/toxins/lab) +"cYY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/orange/corner, +/area/hallway/primary/aft) +"cYZ" = ( +/obj/structure/table/glass, +/obj/item/clothing/glasses/science{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/clothing/glasses/science, +/obj/item/stack/cable_coil/white{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stack/cable_coil/white, +/obj/item/weapon/grenade/chem_grenade, +/obj/item/weapon/grenade/chem_grenade, +/obj/item/weapon/grenade/chem_grenade, +/obj/item/weapon/grenade/chem_grenade, +/turf/open/floor/plasteel/whiteyellow/corner{ + tag = "icon-whiteyellowcorner (WEST)"; + icon_state = "whiteyellowcorner"; + dir = 8 + }, +/area/medical/chemistry) +"cZa" = ( +/turf/open/floor/plasteel/whiteyellow/corner{ + tag = "icon-whiteyellowcorner (WEST)"; + icon_state = "whiteyellowcorner"; + dir = 8 + }, +/area/medical/chemistry) +"cZb" = ( +/turf/open/floor/plasteel/neutral, +/area/medical/chemistry) +"cZc" = ( +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 9 + }, +/area/medical/chemistry) +"cZd" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 5 + }, +/area/medical/chemistry) +"cZe" = ( +/obj/structure/table/glass, +/obj/machinery/reagentgrinder{ + pixel_y = 5 + }, +/turf/open/floor/plasteel/whiteyellow/corner{ + dir = 4 + }, +/area/medical/chemistry) +"cZf" = ( +/obj/machinery/status_display, +/turf/closed/wall, +/area/medical/chemistry) +"cZg" = ( +/obj/structure/table/glass, +/obj/item/weapon/clipboard, +/obj/item/toy/figure/md, +/obj/structure/sign/poster{ + icon_state = "poster8_legit"; + pixel_y = -32; + tag = "icon-poster8_legit" + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cZh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cZi" = ( +/obj/structure/chair/office/light, +/turf/open/floor/plasteel/whiteblue/side, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cZj" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cZk" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cZl" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cZm" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (SOUTHWEST)"; + icon_state = "red"; + dir = 10 + }, +/area/security/checkpoint/medical) +"cZn" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/red/side, +/area/security/checkpoint/medical) +"cZo" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (SOUTHEAST)"; + icon_state = "red"; + dir = 6 + }, +/area/security/checkpoint/medical) +"cZp" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/cable/white, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/checkpoint/medical) +"cZq" = ( +/obj/machinery/sleeper{ + icon_state = "sleeper-open"; + dir = 4 + }, +/turf/open/floor/plasteel/warning/end{ + tag = "icon-plasteel_warn_end (EAST)"; + icon_state = "plasteel_warn_end"; + dir = 4 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cZr" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cZs" = ( +/turf/open/floor/plasteel/whiteblue/side, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cZt" = ( +/obj/machinery/sleeper{ + icon_state = "sleeper-open"; + dir = 8 + }, +/turf/open/floor/plasteel/warning/end{ + tag = "icon-plasteel_warn_end (WEST)"; + icon_state = "plasteel_warn_end"; + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cZu" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/pill_bottle/dice, +/obj/structure/sign/poster{ + icon_state = "poster4_legit"; + pixel_x = -32; + pixel_y = 0; + tag = "icon-poster4_legit" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cZv" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cZw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cZx" = ( +/turf/open/floor/plasteel/neutral/corner, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cZy" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/neutral/corner, +/area/medical/medbay{ + name = "Medbay Central" + }) +"cZz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/rack, +/obj/item/clothing/neck/stethoscope, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cZA" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"cZB" = ( +/obj/structure/sign/examroom{ + pixel_x = -32 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/medbay3{ + name = "Abandoned Medbay" + }) +"cZC" = ( +/turf/open/floor/plasteel/blue, +/area/medical/medbay3{ + name = "Abandoned Medbay" + }) +"cZD" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral, +/area/medical/medbay3{ + name = "Abandoned Medbay" + }) +"cZE" = ( +/turf/open/floor/plasteel/neutral, +/area/medical/medbay3{ + name = "Abandoned Medbay" + }) +"cZF" = ( +/obj/item/weapon/crowbar/red, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/blue, +/area/medical/medbay3{ + name = "Abandoned Medbay" + }) +"cZG" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/medical/medbay3{ + name = "Abandoned Medbay" + }) +"cZH" = ( +/obj/structure/sign/bluecross_2, +/turf/closed/wall, +/area/medical/medbay3{ + name = "Abandoned Medbay" + }) +"cZI" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/barricade/wooden, +/turf/open/floor/plasteel/warning/side, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cZJ" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/barricade/wooden, +/turf/open/floor/plasteel/warning/side, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cZK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cZL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cZM" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cZN" = ( +/obj/structure/girder, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cZO" = ( +/obj/structure/rack, +/obj/item/weapon/crowbar/red, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cZP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cZQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"cZR" = ( +/obj/structure/sign/xenobio, +/turf/closed/wall/r_wall, +/area/toxins/xenobiology) +"cZS" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "rdxeno"; + name = "Xenobiology Containment Door" + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"cZT" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "rdxeno"; + name = "Xenobiology Containment Door" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + name = "Xenobiology Lab"; + req_access_txt = "47" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/toxins/xenobiology) +"cZU" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "rdxeno"; + name = "Xenobiology Containment Door" + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"cZV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"cZW" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"cZX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"cZY" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall, +/area/medical/research{ + name = "Research Division" + }) +"cZZ" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/bodybags{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/gloves, +/turf/open/floor/plasteel/delivery, +/area/medical/research{ + name = "Research Division" + }) +"daa" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/crowbar, +/obj/item/weapon/wrench, +/obj/item/clothing/mask/gas, +/turf/open/floor/plasteel/bot, +/area/medical/research{ + name = "Research Division" + }) +"dab" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/item/weapon/storage/pod{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/delivery, +/area/medical/research{ + name = "Research Division" + }) +"dac" = ( +/turf/closed/wall, +/area/medical/research{ + name = "Research Division" + }) +"dad" = ( +/obj/structure/sign/securearea, +/turf/closed/wall, +/area/medical/research{ + name = "Research Division" + }) +"dae" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/white, +/obj/item/weapon/stock_parts/cell/high, +/obj/item/weapon/stock_parts/console_screen, +/obj/item/weapon/stock_parts/console_screen, +/obj/item/weapon/stock_parts/console_screen, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + dir = 8; + name = "Research and Development Lab APC"; + pixel_x = -26; + pixel_y = 3 + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/toxins/lab) +"daf" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/toxins/lab) +"dag" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 8 + }, +/area/toxins/lab) +"dah" = ( +/obj/machinery/holopad{ + pixel_x = -16 + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 4 + }, +/area/toxins/lab) +"dai" = ( +/obj/machinery/requests_console{ + department = "Research Lab"; + departmentType = 0; + name = "Research RC"; + pixel_x = 32; + pixel_y = 0 + }, +/obj/machinery/camera{ + c_tag = "Science - Research and Development"; + dir = 8; + name = "science camera"; + network = list("SS13","RD") + }, +/turf/open/floor/plasteel/whitepurple/corner, +/area/toxins/lab) +"daj" = ( +/obj/structure/sign/chemistry, +/turf/closed/wall, +/area/medical/chemistry) +"dak" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/button/door{ + id = "chemistbot"; + name = "Chemistry Shutter Control"; + pixel_x = -26; + pixel_y = -7; + req_access_txt = "33" + }, +/obj/machinery/button/door{ + id = "chemisttop"; + name = "Chemistry Shutter Control"; + pixel_x = -26; + pixel_y = 7; + req_access_txt = "33" + }, +/turf/open/floor/plasteel/whiteyellow/corner{ + tag = "icon-whiteyellowcorner (WEST)"; + icon_state = "whiteyellowcorner"; + dir = 8 + }, +/area/medical/chemistry) +"dal" = ( +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 8 + }, +/area/medical/chemistry) +"dam" = ( +/obj/machinery/holopad{ + pixel_x = -16 + }, +/obj/effect/landmark/start{ + name = "Chemist" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 4 + }, +/area/medical/chemistry) +"dan" = ( +/obj/structure/table/glass, +/obj/item/stack/sheet/mineral/plasma, +/obj/item/stack/sheet/mineral/plasma, +/obj/item/stack/sheet/mineral/plasma, +/obj/item/weapon/reagent_containers/glass/bottle/charcoal{ + pixel_x = 6 + }, +/obj/item/weapon/reagent_containers/glass/bottle/epinephrine, +/obj/item/weapon/reagent_containers/dropper, +/obj/machinery/firealarm{ + dir = 4; + icon_state = "fire0"; + pixel_x = 24; + pixel_y = 0; + tag = "icon-fire0 (EAST)" + }, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/camera{ + c_tag = "Medbay - Chemistry"; + dir = 8; + name = "medbay camera"; + network = list("SS13","Medbay") + }, +/turf/open/floor/plasteel/whiteyellow/corner, +/area/medical/chemistry) +"dao" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dap" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/item/weapon/folder/white, +/obj/item/weapon/reagent_containers/spray/cleaner, +/turf/open/floor/plasteel/delivery, +/area/medical/medbay{ + name = "Medbay Central" + }) +"daq" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whiteblue, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dar" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall, +/area/security/checkpoint/medical) +"das" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/door/airlock/glass_security{ + id_tag = "meddoor"; + name = "Medical Cell"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/security/checkpoint/medical) +"dat" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dau" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dav" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"daw" = ( +/obj/structure/sign/examroom, +/turf/closed/wall, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dax" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"day" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/tinted/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/medical/medbay{ + name = "Medbay Central" + }) +"daz" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/medical{ + name = "Break Room"; + req_access_txt = "5" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"daA" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/tinted/fulltile, +/turf/open/floor/plating, +/area/medical/medbay{ + name = "Medbay Central" + }) +"daB" = ( +/obj/item/weapon/firstaid_arm_assembly, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"daC" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"daD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/barricade/wooden, +/turf/open/floor/plasteel/warning/side, +/area/medical/medbay3{ + name = "Abandoned Medbay" + }) +"daE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/medbay3{ + name = "Abandoned Medbay" + }) +"daF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/medbay3{ + name = "Abandoned Medbay" + }) +"daG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/blue, +/area/medical/medbay3{ + name = "Abandoned Medbay" + }) +"daH" = ( +/obj/item/weapon/wrench, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plating, +/area/medical/medbay3{ + name = "Abandoned Medbay" + }) +"daI" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/medbay3{ + name = "Abandoned Medbay" + }) +"daJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/structure/barricade/wooden, +/turf/open/floor/plasteel/warning/side, +/area/medical/medbay3{ + name = "Abandoned Medbay" + }) +"daK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"daL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"daM" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"daN" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"daO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"daP" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"daQ" = ( +/obj/structure/table/wood, +/obj/machinery/cell_charger, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"daR" = ( +/obj/structure/table/wood, +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/item/clothing/gloves/color/fyellow, +/obj/item/weapon/storage/toolbox/electrical, +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 1; + name = "Abandoned Gambling Den APC"; + pixel_x = 0; + pixel_y = 25 + }, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"daS" = ( +/obj/structure/table/wood, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/stack/rods{ + amount = 23 + }, +/obj/item/stack/cable_coil/white{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stack/cable_coil/white, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"daT" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"daU" = ( +/obj/structure/sign/poster{ + pixel_y = 32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"daV" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"daW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"daX" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"daY" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"daZ" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"dba" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"dbb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"dbc" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"dbd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"dbe" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"dbf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"dbg" = ( +/obj/machinery/light/small, +/obj/machinery/camera{ + c_tag = "Xenobiology - Cell 4"; + dir = 1; + name = "xenobiology camera"; + network = list("SS13","xeno","RD") + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/toxins/xenobiology) +"dbh" = ( +/obj/machinery/light/small, +/obj/machinery/camera{ + c_tag = "Xenobiology - Cell 5"; + dir = 1; + name = "xenobiology camera"; + network = list("SS13","xeno","RD") + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/toxins/xenobiology) +"dbi" = ( +/obj/machinery/light/small, +/obj/machinery/camera{ + c_tag = "Xenobiology - Cell 6"; + dir = 1; + name = "xenobiology camera"; + network = list("SS13","xeno","RD") + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/toxins/xenobiology) +"dbj" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"dbk" = ( +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"dbl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"dbm" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"dbn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_y = 26 + }, +/obj/machinery/camera{ + c_tag = "Science - Port"; + dir = 2; + name = "science camera"; + network = list("SS13","RD") + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"dbo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"dbp" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"dbq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/research{ + name = "Research Division" + }) +"dbr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"dbs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warning/side, +/area/medical/research{ + name = "Research Division" + }) +"dbt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (NORTH)"; + icon_state = "whitepurple"; + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"dbu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Science - Center"; + dir = 2; + name = "science camera"; + network = list("SS13","RD") + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"dbv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"dbw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (NORTH)"; + icon_state = "whitepurple"; + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"dbx" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"dby" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/item/weapon/folder, +/obj/item/weapon/pen, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rdrnd"; + name = "Research and Development Shutters" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/window/southleft{ + dir = 4; + name = "Research Lab Desk"; + req_access_txt = "7" + }, +/turf/open/floor/plasteel/delivery, +/area/toxins/lab) +"dbz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/toxins/lab) +"dbA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/neutral, +/area/toxins/lab) +"dbB" = ( +/obj/structure/table, +/obj/item/weapon/clipboard, +/obj/item/toy/figure/scientist, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 10 + }, +/area/toxins/lab) +"dbC" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/table, +/obj/item/weapon/disk/tech_disk{ + pixel_x = -6 + }, +/obj/item/weapon/disk/tech_disk{ + pixel_x = 6 + }, +/obj/item/weapon/disk/tech_disk{ + pixel_y = 6 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 6; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; + tag = "icon-whitepurple (SOUTHEAST)" + }, +/area/toxins/lab) +"dbD" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral, +/area/toxins/lab) +"dbE" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/plasteel/whitepurple/corner, +/area/toxins/lab) +"dbF" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rndlab2"; + name = "Secondary Research and Development Shutter" + }, +/turf/open/floor/plating, +/area/toxins/lab) +"dbG" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/purple, +/area/hallway/primary/aft) +"dbH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/junction{ + dir = 1; + icon_state = "pipe-j1" + }, +/turf/open/floor/plasteel/orange/corner, +/area/hallway/primary/aft) +"dbI" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/orange, +/area/hallway/primary/aft) +"dbJ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "chemistbot"; + name = "Chemisty Side Shutters" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/chemistry) +"dbK" = ( +/obj/machinery/chem_dispenser, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/medical/chemistry) +"dbL" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + tag = "icon-pipe-t (WEST)"; + icon_state = "pipe-t"; + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/medical/chemistry) +"dbM" = ( +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 10 + }, +/area/medical/chemistry) +"dbN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 6 + }, +/area/medical/chemistry) +"dbO" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/chemistry) +"dbP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteyellow/corner, +/area/medical/chemistry) +"dbQ" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/window/southleft{ + dir = 8; + name = "Chemistry Desk"; + req_access_txt = "5; 33" + }, +/obj/machinery/door/window/eastright{ + name = "Chemistry Desk" + }, +/obj/item/weapon/folder/white, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/medical/chemistry) +"dbR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteyellow/corner{ + tag = "icon-whiteyellowcorner (NORTH)"; + icon_state = "whiteyellowcorner"; + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dbS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dbT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dbU" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -26; + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dbV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whiteblue, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dbW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dbX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warning/side, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dbY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dbZ" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dca" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dcb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Medbay - Center"; + dir = 2; + name = "medbay camera" + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dcc" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dcd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dce" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dcf" = ( +/obj/structure/sign/poster{ + icon_state = "poster22_legit"; + pixel_y = 32; + tag = "icon-poster22_legit" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dcg" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dch" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dci" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dcj" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dck" = ( +/obj/machinery/shower{ + dir = 4; + icon_state = "shower"; + name = "emergency shower" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/medbay3{ + name = "Abandoned Medbay" + }) +"dcl" = ( +/turf/open/floor/plating, +/area/medical/medbay3{ + name = "Abandoned Medbay" + }) +"dcm" = ( +/obj/machinery/iv_drip{ + density = 0 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/medical/medbay3{ + name = "Abandoned Medbay" + }) +"dcn" = ( +/obj/structure/table/optable, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/surgical_drapes, +/turf/open/floor/plasteel/blue, +/area/medical/medbay3{ + name = "Abandoned Medbay" + }) +"dco" = ( +/obj/structure/frame/computer, +/obj/item/weapon/circuitboard/computer/operating, +/turf/open/floor/plasteel/neutral, +/area/medical/medbay3{ + name = "Abandoned Medbay" + }) +"dcp" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/vending/wallmed{ + name = "Emergency NanoMed"; + pixel_x = 26; + pixel_y = 0; + req_access_txt = "0"; + use_power = 0 + }, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/medbay3{ + name = "Abandoned Medbay" + }) +"dcq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dcr" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/tinted/fulltile, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dcs" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dct" = ( +/obj/machinery/vending/cigarette, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dcu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dcv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dcw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dcx" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dcy" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dcz" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dcA" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/mob/living/simple_animal/cockroach, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dcB" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dcC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dcD" = ( +/obj/structure/sign/poster{ + pixel_x = 32 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dcE" = ( +/turf/closed/wall, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dcF" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable/white, +/obj/structure/barricade/wooden, +/turf/open/floor/plating, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dcG" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/barricade/wooden, +/turf/open/floor/plating, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dcH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"dcI" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall/r_wall, +/area/toxins/xenobiology) +"dcJ" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"dcK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/medical/research{ + name = "Research Division" + }) +"dcL" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/purple, +/area/medical/research{ + name = "Research Division" + }) +"dcM" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral, +/area/medical/research{ + name = "Research Division" + }) +"dcN" = ( +/obj/item/device/radio/beacon, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/purple, +/area/medical/research{ + name = "Research Division" + }) +"dcO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/research{ + name = "Research Division" + }) +"dcP" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warning/side, +/area/medical/research{ + name = "Research Division" + }) +"dcQ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/purple, +/area/medical/research{ + name = "Research Division" + }) +"dcR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/purple, +/area/medical/research{ + name = "Research Division" + }) +"dcS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/purple, +/area/medical/research{ + name = "Research Division" + }) +"dcT" = ( +/turf/open/floor/plasteel/whitepurple/side{ + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"dcU" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + name = "Research and Development Lab"; + req_access_txt = "0"; + req_one_access_txt = "7;29" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rdrnd"; + name = "Research and Development Shutters" + }, +/turf/open/floor/plasteel/warning/side, +/area/toxins/lab) +"dcV" = ( +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/toxins/lab) +"dcW" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/landmark/start{ + name = "Scientist" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/toxins/lab) +"dcX" = ( +/obj/structure/chair/office/light{ + tag = "icon-officechair_white (EAST)"; + icon_state = "officechair_white"; + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/corner, +/area/toxins/lab) +"dcY" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/item/weapon/folder, +/obj/item/weapon/pen, +/obj/machinery/door/window/southleft{ + dir = 8; + name = "Research Lab Desk"; + req_access_txt = "7" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rndlab2"; + name = "Secondary Research and Development Shutter" + }, +/turf/open/floor/plasteel/delivery, +/area/toxins/lab) +"dcZ" = ( +/turf/open/floor/plasteel/purple, +/area/hallway/primary/aft) +"dda" = ( +/turf/open/floor/plasteel/orange, +/area/hallway/primary/aft) +"ddb" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "chemistbot"; + name = "Chemisty Side Shutters" + }, +/obj/machinery/door/window/southleft{ + dir = 4; + name = "Chemistry Desk"; + req_access_txt = "5; 33" + }, +/obj/item/weapon/folder/white, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/delivery, +/area/medical/chemistry) +"ddc" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/obj/effect/landmark/start{ + name = "Chemist" + }, +/turf/open/floor/plasteel/bot, +/area/medical/chemistry) +"ddd" = ( +/obj/machinery/requests_console{ + department = "Chemistry Lab"; + departmentType = 0; + name = "Chemistry RC"; + pixel_x = 0; + pixel_y = -64 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/medical/chemistry) +"dde" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/chemistry) +"ddf" = ( +/turf/open/floor/plasteel/whiteyellow/corner, +/area/medical/chemistry) +"ddg" = ( +/obj/machinery/smartfridge/chemistry, +/turf/closed/wall, +/area/medical/chemistry) +"ddh" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"ddi" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/blue, +/area/medical/medbay{ + name = "Medbay Central" + }) +"ddj" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/neutral, +/area/medical/medbay{ + name = "Medbay Central" + }) +"ddk" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/blue, +/area/medical/medbay{ + name = "Medbay Central" + }) +"ddl" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/whiteblue, +/area/medical/medbay{ + name = "Medbay Central" + }) +"ddm" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whiteblue, +/area/medical/medbay{ + name = "Medbay Central" + }) +"ddn" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/item/device/radio/beacon, +/obj/effect/landmark{ + name = "lightsout" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whiteblue, +/area/medical/medbay{ + name = "Medbay Central" + }) +"ddo" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whiteblue, +/area/medical/medbay{ + name = "Medbay Central" + }) +"ddp" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warning/side, +/area/medical/medbay{ + name = "Medbay Central" + }) +"ddq" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/blue, +/area/medical/medbay{ + name = "Medbay Central" + }) +"ddr" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dds" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/medical/medbay{ + name = "Medbay Central" + }) +"ddt" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/blue, +/area/medical/medbay{ + name = "Medbay Central" + }) +"ddu" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral, +/area/medical/medbay{ + name = "Medbay Central" + }) +"ddv" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/blue, +/area/medical/medbay{ + name = "Medbay Central" + }) +"ddw" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/blue, +/area/medical/medbay{ + name = "Medbay Central" + }) +"ddx" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/blue, +/area/medical/medbay{ + name = "Medbay Central" + }) +"ddy" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 4 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"ddz" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Medbay Maintenance"; + req_access_txt = "5" + }, +/turf/open/floor/plasteel/warning/side, +/area/medical/medbay{ + name = "Medbay Central" + }) +"ddA" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/delivery, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"ddB" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"ddC" = ( +/obj/structure/sink{ + dir = 8; + icon_state = "sink"; + pixel_x = -12 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/mirror{ + desc = "Mirror mirror on the wall, who is the most robust of them all?"; + pixel_x = -28 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/medical/medbay3{ + name = "Abandoned Medbay" + }) +"ddD" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/medbay3{ + name = "Abandoned Medbay" + }) +"ddE" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/whiteblue/side, +/area/medical/medbay3{ + name = "Abandoned Medbay" + }) +"ddF" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/medbay3{ + name = "Abandoned Medbay" + }) +"ddG" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/light_switch{ + pixel_x = 26 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/medbay3{ + name = "Abandoned Medbay" + }) +"ddH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"ddI" = ( +/obj/effect/decal/cleanable/cobweb, +/obj/structure/dresser, +/turf/open/floor/wood, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"ddJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/wood, +/obj/item/clothing/suit/toggle/owlwings, +/obj/item/clothing/under/owl, +/obj/item/clothing/mask/gas/owl_mask, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"ddK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/wood, +/obj/item/weapon/storage/secure/briefcase, +/obj/item/weapon/restraints/handcuffs, +/obj/item/weapon/grenade/smokebomb, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"ddL" = ( +/obj/machinery/vending/assist, +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"ddM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"ddN" = ( +/obj/structure/chair/stool, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"ddO" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"ddP" = ( +/obj/structure/chair/wood/normal, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"ddQ" = ( +/obj/structure/chair/wood/normal, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"ddR" = ( +/obj/structure/chair/wood/normal, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"ddS" = ( +/obj/structure/table/wood/poker, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/item/weapon/storage/wallet/random, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"ddT" = ( +/obj/structure/table/wood/poker, +/obj/item/weapon/storage/briefcase, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"ddU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"ddV" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"ddW" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plating, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"ddX" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"ddY" = ( +/obj/structure/table/reinforced, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/item/weapon/clipboard, +/obj/item/weapon/reagent_containers/glass/beaker/sulphuric, +/obj/item/weapon/reagent_containers/dropper, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"ddZ" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/toolbox/emergency{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/toolbox/emergency, +/obj/item/weapon/wrench, +/obj/machinery/status_display{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/delivery, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dea" = ( +/obj/structure/table/reinforced, +/obj/machinery/cell_charger, +/turf/open/floor/plasteel/delivery, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"deb" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dec" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"ded" = ( +/obj/structure/table, +/obj/item/weapon/folder/white, +/obj/item/weapon/pen, +/turf/open/floor/plating, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dee" = ( +/obj/structure/table, +/obj/item/device/flashlight/lamp, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"def" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"deg" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"deh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"dei" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 5 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"dej" = ( +/turf/closed/wall/r_wall, +/area/toxins/explab) +"dek" = ( +/obj/structure/table/reinforced, +/obj/structure/sign/poster{ + tag = "icon-poster7_legit"; + icon_state = "poster7_legit"; + pixel_x = -32; + pixel_y = 0 + }, +/obj/item/weapon/storage/toolbox/mechanical, +/obj/item/device/flashlight, +/turf/open/floor/plasteel/bot, +/area/toxins/explab) +"del" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/toxins/explab) +"dem" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/sign/nosmoking_2{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/warning, +/area/toxins/explab) +"den" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/toxins/explab) +"deo" = ( +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 1; + name = "Experimentation Lab APC"; + pixel_x = 0; + pixel_y = 25 + }, +/obj/machinery/camera{ + c_tag = "Science - Experimentation Lab"; + dir = 2; + name = "science camera"; + network = list("SS13","RD") + }, +/turf/open/floor/plasteel/delivery, +/area/toxins/explab) +"dep" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/machinery/status_display{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/bot, +/area/toxins/explab) +"deq" = ( +/obj/structure/closet/l3closet/scientist, +/turf/open/floor/plasteel/bot, +/area/toxins/explab) +"der" = ( +/obj/structure/closet/bombcloset, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/bot, +/area/toxins/explab) +"des" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/suit/radiation, +/obj/item/clothing/head/radiation, +/turf/open/floor/plasteel/bot, +/area/toxins/explab) +"det" = ( +/turf/closed/wall, +/area/toxins/explab) +"deu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"dev" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/whitepurple/side, +/area/medical/research{ + name = "Research Division" + }) +"dew" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whitepurple/corner, +/area/medical/research{ + name = "Research Division" + }) +"dex" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/whitepurple/corner, +/area/medical/research{ + name = "Research Division" + }) +"dey" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whitepurple/side, +/area/medical/research{ + name = "Research Division" + }) +"dez" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"deA" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"deB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warning/side, +/area/medical/research{ + name = "Research Division" + }) +"deC" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"deD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/purple, +/area/medical/research{ + name = "Research Division" + }) +"deE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/corner, +/area/medical/research{ + name = "Research Division" + }) +"deF" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/corner, +/area/medical/research{ + name = "Research Division" + }) +"deG" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rdrnd"; + name = "Research and Development Shutters" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/toxins/lab) +"deH" = ( +/obj/structure/table/reinforced, +/obj/machinery/light, +/obj/machinery/cell_charger, +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 0; + pixel_y = -26 + }, +/obj/machinery/light_switch{ + pixel_x = -26; + pixel_y = -26 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/toxins/lab) +"deI" = ( +/obj/structure/table/reinforced, +/obj/item/stack/packageWrap, +/obj/item/weapon/hand_labeler, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/toxins/lab) +"deJ" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/storage/toolbox/mechanical, +/obj/item/stack/cable_coil/white, +/obj/item/stack/cable_coil/white, +/obj/machinery/status_display{ + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/toxins/lab) +"deK" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/whitepurple/corner, +/area/toxins/lab) +"deL" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/white, +/obj/item/weapon/reagent_containers/glass/beaker/large, +/obj/item/weapon/reagent_containers/glass/beaker, +/obj/item/weapon/reagent_containers/dropper, +/obj/structure/extinguisher_cabinet{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/toxins/lab) +"deM" = ( +/obj/structure/table/reinforced, +/obj/machinery/light, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/machinery/button/door{ + id = "rndlab1"; + name = "Primary Research Shutters Control"; + pixel_x = -7; + pixel_y = -23; + req_access_txt = "7" + }, +/obj/machinery/button/door{ + id = "rndlab2"; + name = "Secondary Research Shutters Control"; + pixel_x = 7; + pixel_y = -23; + req_access_txt = "7" + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/toxins/lab) +"deN" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/purple, +/area/hallway/primary/aft) +"deO" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/orange, +/area/hallway/primary/aft) +"deP" = ( +/obj/machinery/chem_master, +/obj/structure/extinguisher_cabinet{ + pixel_y = -32 + }, +/obj/structure/sign/nosmoking_2{ + pixel_x = -32; + pixel_y = -32 + }, +/turf/open/floor/plasteel/warning, +/area/medical/chemistry) +"deQ" = ( +/obj/machinery/chem_heater, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/medical/chemistry) +"deR" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/whiteyellow/corner{ + tag = "icon-whiteyellowcorner (WEST)"; + icon_state = "whiteyellowcorner"; + dir = 8 + }, +/area/medical/chemistry) +"deS" = ( +/obj/structure/table/glass, +/obj/item/stack/packageWrap, +/obj/item/weapon/hand_labeler, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteyellow/corner, +/area/medical/chemistry) +"deT" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = -26 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteyellow/corner, +/area/medical/chemistry) +"deU" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/light_switch{ + pixel_x = 7; + pixel_y = -26 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteyellow/corner, +/area/medical/chemistry) +"deV" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_medical{ + name = "Chemistry Lab"; + req_access_txt = "5; 33" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/medical/chemistry) +"deW" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteyellow/corner{ + tag = "icon-whiteyellowcorner (WEST)"; + icon_state = "whiteyellowcorner"; + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"deX" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"deY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"deZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light, +/obj/machinery/camera{ + c_tag = "Medbay - Port"; + dir = 1; + name = "medbay camera" + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dfa" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dfb" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whiteblue, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dfc" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dfd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warning/side, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dfe" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dff" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/side, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dfg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dfh" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dfi" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dfj" = ( +/obj/structure/sign/bluecross_2{ + pixel_x = 32; + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dfk" = ( +/obj/structure/sign/poster{ + icon_state = "poster17_legit"; + pixel_x = 0; + pixel_y = -32; + tag = "icon-poster17_legit" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light, +/obj/machinery/camera{ + c_tag = "Medbay - Starboard"; + dir = 1; + name = "medbay camera" + }, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dfl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dfm" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dfn" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dfo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dfp" = ( +/obj/structure/rack, +/obj/item/roller, +/obj/item/weapon/reagent_containers/blood, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dfq" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dfr" = ( +/obj/structure/closet/secure_closet/medical2, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white, +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 2; + name = "Abandoned Medical Lab APC"; + pixel_x = 1; + pixel_y = -24 + }, +/turf/open/floor/plating, +/area/medical/medbay3{ + name = "Abandoned Medbay" + }) +"dfs" = ( +/obj/machinery/light/small, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/medical/medbay3{ + name = "Abandoned Medbay" + }) +"dft" = ( +/obj/structure/table/reinforced, +/obj/machinery/status_display{ + pixel_y = -32 + }, +/obj/item/weapon/storage/firstaid/regular, +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/suit/apron/surgical, +/obj/item/clothing/mask/surgical, +/turf/open/floor/plasteel/vault, +/area/medical/medbay3{ + name = "Abandoned Medbay" + }) +"dfu" = ( +/obj/structure/table/reinforced, +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/obj/item/weapon/hemostat, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/medical/medbay3{ + name = "Abandoned Medbay" + }) +"dfv" = ( +/obj/structure/table/reinforced, +/obj/machinery/status_display{ + pixel_y = -32 + }, +/obj/item/weapon/reagent_containers/blood/random, +/obj/item/weapon/reagent_containers/blood/random, +/obj/item/weapon/reagent_containers/syringe/epinephrine{ + pixel_y = 5 + }, +/obj/item/weapon/reagent_containers/syringe, +/obj/item/clothing/neck/stethoscope, +/turf/open/floor/plasteel/vault, +/area/medical/medbay3{ + name = "Abandoned Medbay" + }) +"dfw" = ( +/obj/structure/table/reinforced, +/obj/machinery/light/small, +/obj/structure/bedsheetbin, +/obj/item/weapon/gun/syringe, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault, +/area/medical/medbay3{ + name = "Abandoned Medbay" + }) +"dfx" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/medical/medbay3{ + name = "Abandoned Medbay" + }) +"dfy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/space_heater, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dfz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dfA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dfB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/wood{ + tag = "icon-wood-broken2"; + icon_state = "wood-broken2" + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dfC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/turf/open/floor/wood, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dfD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/wood, +/obj/item/device/modular_computer/tablet/preset/cheap, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dfE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dfF" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dfG" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/door/window/northright, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dfH" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dfI" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dfJ" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dfK" = ( +/obj/structure/table/wood/poker, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dfL" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dfM" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dfN" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/disk/tech_disk{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/disk/tech_disk, +/obj/item/device/assembly/timer, +/turf/open/floor/plasteel/delivery, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dfO" = ( +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dfP" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dfQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dfR" = ( +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dfS" = ( +/obj/structure/chair/office/light{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dfT" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/delivery, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dfU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"dfV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"dfW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"dfX" = ( +/obj/structure/table/reinforced, +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/obj/item/weapon/crowbar, +/obj/item/weapon/wrench, +/obj/item/clothing/mask/gas, +/turf/open/floor/plasteel/bot, +/area/toxins/explab) +"dfY" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1 + }, +/area/toxins/explab) +"dfZ" = ( +/obj/machinery/atmospherics/components/trinary/filter{ + density = 0; + dir = 8; + req_access = "0" + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1 + }, +/area/toxins/explab) +"dga" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1 + }, +/area/toxins/explab) +"dgb" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (NORTH)"; + icon_state = "whitepurple"; + dir = 1 + }, +/area/toxins/explab) +"dgc" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4 + }, +/area/toxins/explab) +"dgd" = ( +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4 + }, +/area/toxins/explab) +"dge" = ( +/obj/structure/table/reinforced, +/obj/structure/sign/poster{ + icon_state = "poster3_legit"; + pixel_x = 32; + pixel_y = 0; + tag = "icon-poster3_legit" + }, +/obj/item/stack/cable_coil/white{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stack/cable_coil/white, +/obj/item/device/geiger_counter, +/turf/open/floor/plasteel/bot, +/area/toxins/explab) +"dgf" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/medical/research{ + name = "Research Division" + }) +"dgg" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/airlock/research{ + name = "Research Division Access"; + req_access_txt = "47" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"dgh" = ( +/obj/structure/sign/nosmoking_2, +/turf/closed/wall, +/area/medical/research{ + name = "Research Division" + }) +"dgi" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/toxins/misc_lab{ + name = "\improper Research Testing Range" + }) +"dgj" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/door/airlock/research{ + name = "Firing Range"; + req_access_txt = "47" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/toxins/misc_lab{ + name = "\improper Research Testing Range" + }) +"dgk" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/toxins/misc_lab{ + name = "\improper Research Testing Range" + }) +"dgl" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall/r_wall, +/area/crew_quarters/hor) +"dgm" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/hor) +"dgn" = ( +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "rdoffice"; + name = "Research Director's Shutters" + }, +/turf/open/floor/plating, +/area/crew_quarters/hor) +"dgo" = ( +/obj/structure/sign/securearea, +/turf/closed/wall/r_wall, +/area/crew_quarters/hor) +"dgp" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "rdoffice"; + name = "Research Director's Shutters" + }, +/turf/open/floor/plating, +/area/crew_quarters/hor) +"dgq" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "rdoffice"; + name = "Research Director's Shutters" + }, +/turf/open/floor/plating, +/area/crew_quarters/hor) +"dgr" = ( +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "rdoffice"; + name = "Research Director's Shutters" + }, +/turf/open/floor/plating, +/area/crew_quarters/hor) +"dgs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"dgt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/turf/open/floor/plasteel/whitepurple/corner, +/area/medical/research{ + name = "Research Division" + }) +"dgu" = ( +/turf/closed/wall, +/area/assembly/chargebay) +"dgv" = ( +/turf/closed/wall/r_wall, +/area/assembly/chargebay) +"dgw" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/assembly/chargebay) +"dgx" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + name = "Research and Development Lab"; + req_access_txt = "0"; + req_one_access_txt = "7;29" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/assembly/chargebay) +"dgy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/hallway/primary/aft) +"dgz" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/hallway/primary/aft) +"dgA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/machinery/firealarm{ + dir = 4; + icon_state = "fire0"; + pixel_x = 24; + pixel_y = 0; + tag = "icon-fire0 (EAST)" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/hallway/primary/aft) +"dgB" = ( +/turf/closed/wall, +/area/hallway/primary/aft) +"dgC" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Chemistry Maintenance"; + req_access_txt = "5; 33" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/hallway/primary/aft) +"dgD" = ( +/turf/closed/wall, +/area/medical/genetics_cloning) +"dgE" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/medical/genetics_cloning) +"dgF" = ( +/obj/structure/sign/bluecross_2, +/turf/closed/wall, +/area/medical/genetics_cloning) +"dgG" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dgH" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dgI" = ( +/turf/closed/wall, +/area/medical/surgery) +"dgJ" = ( +/obj/machinery/status_display, +/turf/closed/wall, +/area/medical/surgery) +"dgK" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/medical{ + name = "Surgery Observation"; + req_access_txt = "0" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/medical/surgery) +"dgL" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/tinted/fulltile, +/turf/open/floor/plating, +/area/medical/surgery) +"dgM" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/medical{ + name = "Surgery Observation"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/medical/surgery) +"dgN" = ( +/obj/structure/girder, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dgO" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dgP" = ( +/turf/closed/wall, +/area/hallway/secondary/construction) +"dgQ" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-18" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dgR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dgS" = ( +/obj/structure/cable/white, +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dgT" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dgU" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dgV" = ( +/obj/structure/cable/white, +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dgW" = ( +/obj/structure/chair/wood/normal{ + tag = "icon-wooden_chair (WEST)"; + icon_state = "wooden_chair"; + dir = 8 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken4" + }, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dgX" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/stock_parts/matter_bin, +/obj/machinery/airalarm{ + dir = 4; + locked = 0; + pixel_x = -23; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dgY" = ( +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dgZ" = ( +/obj/structure/frame/machine, +/obj/item/stack/cable_coil/white, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dha" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dhb" = ( +/obj/structure/frame/machine, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dhc" = ( +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dhd" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plasteel/neutral, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dhe" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dhf" = ( +/obj/structure/rack, +/obj/item/weapon/storage/toolbox/electrical, +/obj/item/device/multitool, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dhg" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"dhh" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/bot, +/area/toxins/explab) +"dhi" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 8 + }, +/area/toxins/explab) +"dhj" = ( +/turf/open/floor/plasteel/neutral, +/area/toxins/explab) +"dhk" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral, +/area/toxins/explab) +"dhl" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral, +/area/toxins/explab) +"dhm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/toxins/explab) +"dhn" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/bot, +/area/toxins/explab) +"dho" = ( +/turf/open/floor/plasteel/whitepurple/side{ + dir = 4 + }, +/area/toxins/explab) +"dhp" = ( +/obj/machinery/firealarm{ + dir = 4; + icon_state = "fire0"; + pixel_x = 24; + pixel_y = 0; + tag = "icon-fire0 (EAST)" + }, +/turf/open/floor/plasteel/bot, +/area/toxins/explab) +"dhq" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24; + pixel_y = 0 + }, +/turf/open/floor/plasteel/bot, +/area/medical/research{ + name = "Research Division" + }) +"dhr" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/medical/research{ + name = "Research Division" + }) +"dhs" = ( +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"dht" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/medical/research{ + name = "Research Division" + }) +"dhu" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/obj/machinery/camera{ + c_tag = "Science - Lab Access"; + dir = 8; + name = "science camera"; + network = list("SS13","RD") + }, +/turf/open/floor/plasteel/bot, +/area/medical/research{ + name = "Research Division" + }) +"dhv" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/gun/energy/laser/practice{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/weapon/gun/energy/laser/practice, +/obj/item/clothing/ears/earmuffs, +/obj/item/clothing/ears/earmuffs, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24; + pixel_y = 32 + }, +/obj/machinery/power/apc{ + dir = 8; + name = "Firing Range APC"; + pixel_x = -26; + pixel_y = 3 + }, +/turf/open/floor/plasteel/delivery, +/area/toxins/misc_lab{ + name = "\improper Research Testing Range" + }) +"dhw" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/toxins/misc_lab{ + name = "\improper Research Testing Range" + }) +"dhx" = ( +/obj/item/stack/rods{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/target, +/obj/item/target/syndicate, +/obj/item/target/alien, +/obj/item/target/clown, +/obj/structure/closet/crate/secure{ + desc = "A secure crate containing various materials for building a customised test-site."; + name = "Test Site Materials Crate"; + req_access_txt = "47" + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/turf/open/floor/plasteel/delivery, +/area/toxins/misc_lab{ + name = "\improper Research Testing Range" + }) +"dhy" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/white, +/obj/item/device/paicard, +/obj/machinery/airalarm{ + dir = 4; + locked = 0; + pixel_x = -23; + pixel_y = 0 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/hor) +"dhz" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/crew_quarters/hor) +"dhA" = ( +/obj/structure/displaycase/labcage, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/delivery, +/area/crew_quarters/hor) +"dhB" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/crew_quarters/hor) +"dhC" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/hor) +"dhD" = ( +/obj/structure/cable/white, +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "rdoffice"; + name = "Research Director's Shutters" + }, +/turf/open/floor/plating, +/area/crew_quarters/hor) +"dhE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whitepurple/corner, +/area/medical/research{ + name = "Research Division" + }) +"dhF" = ( +/obj/structure/table, +/obj/item/weapon/stock_parts/cell/high, +/obj/item/weapon/stock_parts/cell/high, +/obj/machinery/cell_charger, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 4; + locked = 0; + pixel_x = -23; + pixel_y = 0 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = 26 + }, +/turf/open/floor/plasteel/bot, +/area/assembly/chargebay) +"dhG" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/assembly/chargebay) +"dhH" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/assembly/chargebay) +"dhI" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/assembly/chargebay) +"dhJ" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/assembly/chargebay) +"dhK" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + cell_type = 10000; + dir = 1; + name = "Mech Bay APC"; + pixel_x = 0; + pixel_y = 28 + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/assembly/chargebay) +"dhL" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/obj/structure/sign/nosmoking_2{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/bot, +/area/assembly/chargebay) +"dhM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/rack, +/obj/item/weapon/wrench, +/obj/item/roller, +/turf/open/floor/plasteel/blue/corner{ + tag = "icon-bluecorner (NORTH)"; + icon_state = "bluecorner"; + dir = 1 + }, +/area/hallway/primary/aft) +"dhN" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/blue/corner{ + tag = "icon-bluecorner (NORTH)"; + icon_state = "bluecorner"; + dir = 1 + }, +/area/hallway/primary/aft) +"dhO" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/hallway/primary/aft) +"dhP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/blue/corner{ + dir = 4 + }, +/area/hallway/primary/aft) +"dhQ" = ( +/turf/open/floor/plating, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plating{ + icon_state = "platingdmg2" + }, +/area/hallway/primary/aft) +"dhR" = ( +/obj/machinery/clonepod, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/machinery/status_display{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/medical/genetics_cloning) +"dhS" = ( +/obj/machinery/computer/cloning, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/sign/nosmoking_2{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + tag = "icon-whitepurplecorner (NORTH)"; + icon_state = "whitepurplecorner"; + dir = 1 + }, +/area/medical/genetics_cloning) +"dhT" = ( +/obj/machinery/dna_scannernew, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/genetics_cloning) +"dhU" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + tag = "icon-whitepurplecorner (NORTH)"; + icon_state = "whitepurplecorner"; + dir = 1 + }, +/area/medical/genetics_cloning) +"dhV" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/genetics_cloning) +"dhW" = ( +/obj/structure/table/glass, +/obj/item/weapon/storage/box/bodybags{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/bodybags, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4 + }, +/area/medical/genetics_cloning) +"dhX" = ( +/obj/structure/table/glass, +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 1; + name = "Cloning Lab APC"; + pixel_x = 0; + pixel_y = 25 + }, +/obj/item/weapon/folder/white, +/obj/item/weapon/book/manual/medical_cloning, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/genetics_cloning) +"dhY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dhZ" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dia" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dib" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/plasteel/whiteblue, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dic" = ( +/obj/machinery/atmospherics/components/unary/cryo_cell, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"did" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{ + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/weapon/storage/pill_bottle/mannitol, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"die" = ( +/obj/machinery/atmospherics/components/unary/cryo_cell, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dif" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dig" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dih" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dii" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/plasteel/vault, +/area/medical/surgery) +"dij" = ( +/turf/open/floor/plasteel/vault, +/area/medical/surgery) +"dik" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/vault, +/area/medical/surgery) +"dil" = ( +/obj/structure/sign/bluecross_2, +/turf/closed/wall, +/area/medical/surgery) +"dim" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/medical/surgery) +"din" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/medical/surgery) +"dio" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/medical/surgery) +"dip" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/medical/surgery) +"diq" = ( +/obj/structure/chair, +/obj/machinery/newscaster{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/medical/surgery) +"dir" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dis" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/mob/living/simple_animal/cockroach, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dit" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical, +/obj/item/device/flashlight, +/turf/open/floor/plasteel/bot, +/area/hallway/secondary/construction) +"diu" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning/end{ + tag = "icon-plasteel_warn_end (WEST)"; + icon_state = "plasteel_warn_end"; + dir = 8 + }, +/area/hallway/secondary/construction) +"div" = ( +/obj/machinery/pipedispenser, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/hallway/secondary/construction) +"diw" = ( +/obj/machinery/pipedispenser/disposal, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/hallway/secondary/construction) +"dix" = ( +/obj/machinery/pipedispenser/disposal/transit_tube, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/hallway/secondary/construction) +"diy" = ( +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/plasteel/warning/end{ + tag = "icon-plasteel_warn_end (EAST)"; + icon_state = "plasteel_warn_end"; + dir = 4 + }, +/area/hallway/secondary/construction) +"diz" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/mask/gas, +/turf/open/floor/plasteel/bot, +/area/hallway/secondary/construction) +"diA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"diB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"diC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"diD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"diE" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"diF" = ( +/obj/structure/sign/poster{ + pixel_x = -32 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"diG" = ( +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"diH" = ( +/obj/structure/table/wood/poker, +/obj/item/stack/spacecash/c1000{ + pixel_y = 8 + }, +/obj/item/stack/spacecash/c500, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"diI" = ( +/obj/structure/chair/wood/normal{ + tag = "icon-wooden_chair (EAST)"; + icon_state = "wooden_chair"; + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"diJ" = ( +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"diK" = ( +/obj/structure/chair/wood/normal{ + tag = "icon-wooden_chair (WEST)"; + icon_state = "wooden_chair"; + dir = 8 + }, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"diL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"diM" = ( +/obj/structure/table/reinforced, +/obj/item/stack/cable_coil/white, +/obj/item/weapon/stock_parts/scanning_module{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = -26; + pixel_y = 0 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"diN" = ( +/obj/structure/frame/computer, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"diO" = ( +/turf/open/floor/plasteel/warning, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"diP" = ( +/obj/structure/frame/machine, +/obj/item/stack/cable_coil/white, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"diQ" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"diR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"diS" = ( +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"diT" = ( +/turf/open/floor/plasteel/delivery, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"diU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/button/door{ + id = "maintrobotics"; + name = "Decrepit Control"; + pixel_x = 26 + }, +/turf/open/floor/plating, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"diV" = ( +/obj/machinery/door/poddoor/preopen{ + id = "maintrobotics"; + name = "Decrepit Blast Door" + }, +/obj/structure/girder, +/obj/structure/grille, +/turf/open/floor/plasteel/warning/side, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"diW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"diX" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"diY" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Science Maintenance"; + req_access_txt = "47" + }, +/turf/open/floor/plasteel/warning/side, +/area/toxins/explab) +"diZ" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/toxins/explab) +"dja" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/toxins/explab) +"djb" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/toxins/explab) +"djc" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/toxins/explab) +"djd" = ( +/obj/structure/table/reinforced, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/item/stack/sheet/mineral/plasma{ + amount = 5; + layer = 3.1 + }, +/obj/item/device/taperecorder, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/toxins/explab) +"dje" = ( +/obj/structure/chair/office/light, +/obj/effect/landmark/start{ + name = "Scientist" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/toxins/explab) +"djf" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/clipboard, +/obj/item/weapon/folder/white, +/obj/item/weapon/pen, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/toxins/explab) +"djg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/corner, +/area/toxins/explab) +"djh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/toxins/explab) +"dji" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + name = "Experimentation Lab"; + req_access_txt = "47" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/toxins/explab) +"djj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/medical/research{ + name = "Research Division" + }) +"djk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"djl" = ( +/obj/machinery/holopad, +/obj/effect/landmark{ + name = "lightsout" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/medical/research{ + name = "Research Division" + }) +"djm" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"djn" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + name = "Firing Range"; + req_access_txt = "47" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/medical/research{ + name = "Research Division" + }) +"djo" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/toxins/misc_lab{ + name = "\improper Research Testing Range" + }) +"djp" = ( +/obj/machinery/holopad, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/junction{ + dir = 4; + icon_state = "pipe-j2" + }, +/turf/open/floor/plasteel/bot, +/area/toxins/misc_lab{ + name = "\improper Research Testing Range" + }) +"djq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/toxins/misc_lab{ + name = "\improper Research Testing Range" + }) +"djr" = ( +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "rdoffice"; + name = "Research Director's Shutters" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/hor) +"djs" = ( +/obj/structure/table/reinforced, +/obj/item/device/aicard, +/obj/item/weapon/circuitboard/aicore, +/obj/structure/disposalpipe/sortjunction{ + dir = 4; + icon_state = "pipe-j1s"; + name = "RD's Junction"; + sortType = 13 + }, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/hor) +"djt" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/crew_quarters/hor) +"dju" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning, +/area/crew_quarters/hor) +"djv" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/crew_quarters/hor) +"djw" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/hor) +"djx" = ( +/obj/structure/cable/white, +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "rdoffice"; + name = "Research Director's Shutters" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plating, +/area/crew_quarters/hor) +"djy" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"djz" = ( +/obj/structure/disposalpipe/sortjunction{ + dir = 1; + icon_state = "pipe-j1s"; + name = "Robotics Junction"; + sortType = 14 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/research{ + name = "Research Division" + }) +"djA" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/whitepurple/corner, +/area/medical/research{ + name = "Research Division" + }) +"djB" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/assembly/chargebay) +"djC" = ( +/obj/machinery/recharge_station, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/assembly/chargebay) +"djD" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start{ + name = "Cyborg" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/assembly/chargebay) +"djE" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/bot, +/area/assembly/chargebay) +"djF" = ( +/obj/machinery/computer/mech_bay_power_console, +/turf/open/floor/plasteel/circuit, +/area/assembly/chargebay) +"djG" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mech_bay_recharge_floor, +/area/assembly/chargebay) +"djH" = ( +/obj/machinery/mech_bay_recharge_port{ + tag = "icon-recharge_port (WEST)"; + icon_state = "recharge_port"; + dir = 8 + }, +/turf/open/floor/plating/warnplate{ + dir = 5 + }, +/area/assembly/chargebay) +"djI" = ( +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/assembly/chargebay) +"djJ" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/assembly/chargebay) +"djK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/obj/machinery/camera{ + c_tag = "Departures Hallway - Mech Bay"; + dir = 4; + name = "hallway camera" + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 1 + }, +/area/hallway/primary/aft) +"djL" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/aft) +"djM" = ( +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/hallway/primary/aft) +"djN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/hallway/primary/aft) +"djO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/hallway/primary/aft) +"djP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/aft) +"djQ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/aft) +"djR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/item/weapon/reagent_containers/blood/random, +/obj/item/weapon/reagent_containers/dropper, +/turf/open/floor/plasteel/blue/corner{ + dir = 4 + }, +/area/hallway/primary/aft) +"djS" = ( +/obj/machinery/door/window/eastleft, +/obj/structure/mirror{ + pixel_x = -28 + }, +/obj/machinery/shower{ + dir = 4; + icon_state = "shower"; + name = "emergency shower" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/medical/genetics_cloning) +"djT" = ( +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/genetics_cloning) +"djU" = ( +/turf/open/floor/plasteel/neutral, +/area/medical/genetics_cloning) +"djV" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/genetics_cloning) +"djW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/genetics_cloning) +"djX" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4 + }, +/area/medical/genetics_cloning) +"djY" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_medical{ + id_tag = "cloningfoyer"; + name = "Cloning Lab"; + req_access_txt = "5" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/medical/genetics_cloning) +"djZ" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + tag = "icon-whitepurplecorner (WEST)"; + icon_state = "whitepurplecorner"; + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dka" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/blue, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dkb" = ( +/turf/open/floor/plasteel/whiteblue, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dkc" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dkd" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/obj/effect/landmark/start{ + name = "Medical Doctor" + }, +/turf/open/floor/plasteel, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dke" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dkf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dkg" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/medical/surgery) +"dkh" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/medical{ + name = "Surgery Observation"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/warning/side, +/area/medical/surgery) +"dki" = ( +/obj/structure/chair, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/medical/surgery) +"dkj" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dkk" = ( +/obj/structure/rack, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/item/weapon/crowbar/red, +/obj/item/weapon/wrench, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plasteel/bot, +/area/hallway/secondary/construction) +"dkl" = ( +/turf/open/floor/plating, +/area/hallway/secondary/construction) +"dkm" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/hallway/secondary/construction) +"dkn" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 4 + }, +/area/hallway/secondary/construction) +"dko" = ( +/obj/effect/landmark{ + name = "blobstart" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dkp" = ( +/obj/structure/closet/emcloset, +/obj/item/clothing/mask/breath, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dkq" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dkr" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dks" = ( +/obj/structure/table/wood/poker, +/obj/item/clothing/glasses/sunglasses/big, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dkt" = ( +/obj/structure/table/wood/poker, +/obj/item/stack/spacecash/c10{ + pixel_x = -16; + pixel_y = 8 + }, +/obj/item/stack/spacecash/c100, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dku" = ( +/obj/structure/table/wood/poker, +/obj/item/toy/cards/deck/syndicate{ + icon_state = "deck_syndicate_full"; + pixel_x = 0; + pixel_y = 6 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dkv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/mob/living/simple_animal/cockroach, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dkw" = ( +/obj/structure/chair/wood/normal{ + tag = "icon-wooden_chair (EAST)"; + icon_state = "wooden_chair"; + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood{ + tag = "icon-wood-broken3"; + icon_state = "wood-broken3" + }, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dkx" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dky" = ( +/obj/effect/decal/cleanable/vomit/old, +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dkz" = ( +/obj/item/weapon/storage/toolbox/emergency, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dkA" = ( +/obj/structure/chair/wood/normal{ + tag = "icon-wooden_chair (WEST)"; + icon_state = "wooden_chair"; + dir = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dkB" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/white, +/obj/item/weapon/stock_parts/cell/high, +/obj/item/weapon/stock_parts/console_screen, +/obj/item/weapon/stock_parts/console_screen, +/obj/item/weapon/stock_parts/console_screen, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dkC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dkD" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dkE" = ( +/turf/open/floor/plating, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dkF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/warning, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dkG" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/warning, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dkH" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dkI" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/delivery, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dkJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/structure/barricade/wooden, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/turf/open/floor/plasteel/warning/side, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dkK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/poddoor/preopen{ + id = "maintrobotics"; + name = "Decrepit Blast Door" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/structure/girder, +/obj/structure/grille, +/turf/open/floor/plasteel/warning/side, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"dkL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"dkM" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"dkN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/closed/wall/r_wall, +/area/toxins/explab) +"dkO" = ( +/obj/structure/table, +/obj/item/stack/medical/gauze, +/obj/item/stack/medical/bruise_pack, +/obj/item/stack/medical/ointment, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/bot, +/area/toxins/explab) +"dkP" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/delivery, +/area/toxins/explab) +"dkQ" = ( +/obj/machinery/light, +/obj/machinery/disposal/bin, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/bot, +/area/toxins/explab) +"dkR" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/gloves/color/white, +/obj/item/clothing/gloves/color/white, +/obj/item/clothing/glasses/science, +/obj/item/clothing/glasses/science, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/toxins/explab) +"dkS" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/book/manual/experimentor, +/obj/item/device/healthanalyzer, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 4 + }, +/area/toxins/explab) +"dkT" = ( +/obj/machinery/computer/rdconsole/experiment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/toxins/explab) +"dkU" = ( +/obj/structure/table/reinforced, +/obj/item/stack/packageWrap, +/obj/item/weapon/hand_labeler, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/corner{ + dir = 8 + }, +/area/toxins/explab) +"dkV" = ( +/obj/structure/table/reinforced, +/obj/machinery/light, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/toxins/explab) +"dkW" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/toxins/explab) +"dkX" = ( +/obj/structure/sign/securearea, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/toxins/explab) +"dkY" = ( +/obj/machinery/light/small, +/obj/structure/closet/firecloset, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/medical/research{ + name = "Research Division" + }) +"dkZ" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/medical/research{ + name = "Research Division" + }) +"dla" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning, +/area/medical/research{ + name = "Research Division" + }) +"dlb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/medical/research{ + name = "Research Division" + }) +"dlc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/medical/research{ + name = "Research Division" + }) +"dld" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger, +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/obj/machinery/light_switch{ + pixel_x = -26; + pixel_y = -26 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/delivery, +/area/toxins/misc_lab{ + name = "\improper Research Testing Range" + }) +"dle" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/warning, +/area/toxins/misc_lab{ + name = "\improper Research Testing Range" + }) +"dlf" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/delivery, +/area/toxins/misc_lab{ + name = "\improper Research Testing Range" + }) +"dlg" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/door/airlock/command{ + name = "Research Director's Office"; + req_access = null; + req_access_txt = "30" + }, +/turf/open/floor/plasteel/warning/side, +/area/crew_quarters/hor) +"dlh" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/delivery, +/area/crew_quarters/hor) +"dli" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1 + }, +/area/crew_quarters/hor) +"dlj" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (NORTH)"; + icon_state = "whitepurple"; + dir = 1 + }, +/area/crew_quarters/hor) +"dlk" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4 + }, +/area/crew_quarters/hor) +"dll" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/crew_quarters/hor) +"dlm" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/door/airlock/command{ + name = "Research Director's Office"; + req_access = null; + req_access_txt = "30" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/crew_quarters/hor) +"dln" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"dlo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/junction{ + dir = 1; + icon_state = "pipe-j2" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/purple, +/area/medical/research{ + name = "Research Division" + }) +"dlp" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whitepurple/corner, +/area/medical/research{ + name = "Research Division" + }) +"dlq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light_switch{ + pixel_x = -26 + }, +/turf/open/floor/plasteel/bot, +/area/assembly/chargebay) +"dlr" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/assembly/chargebay) +"dls" = ( +/turf/open/floor/plasteel/bot, +/area/assembly/chargebay) +"dlt" = ( +/turf/open/floor/plasteel/circuit, +/area/assembly/chargebay) +"dlu" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/assembly/chargebay) +"dlv" = ( +/turf/open/floor/plasteel/delivery, +/area/assembly/chargebay) +"dlw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/poddoor/shutters{ + id = "mechbay"; + name = "Mech Bay Shutters" + }, +/obj/machinery/button/door{ + id = "mechbay"; + name = "Mech Bay Shutters Control"; + pixel_y = 26; + req_access_txt = "29" + }, +/turf/open/floor/plasteel/warning/side, +/area/assembly/chargebay) +"dlx" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/hallway/primary/aft) +"dly" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/aft) +"dlz" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/hallway/primary/aft) +"dlA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/vomit/old, +/turf/open/floor/plating, +/area/hallway/primary/aft) +"dlB" = ( +/obj/effect/landmark{ + name = "blobstart" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/aft) +"dlC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/aft) +"dlD" = ( +/obj/structure/rack, +/obj/item/device/healthanalyzer, +/obj/item/clothing/glasses/eyepatch, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/hallway/primary/aft) +"dlE" = ( +/obj/machinery/door/window/eastright, +/obj/machinery/ai_status_display{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/medical/genetics_cloning) +"dlF" = ( +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/medical/genetics_cloning) +"dlG" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/genetics_cloning) +"dlH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/genetics_cloning) +"dlI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/medical/genetics_cloning) +"dlJ" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/genetics_cloning) +"dlK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/genetics_cloning) +"dlL" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_medical{ + id_tag = "cloningfoyer"; + name = "Cloning Lab"; + req_access_txt = "5" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/medical/genetics_cloning) +"dlM" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dlN" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dlO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dlP" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 6 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dlQ" = ( +/obj/machinery/atmospherics/pipe/manifold4w/general/visible, +/turf/open/floor/plasteel, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dlR" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dlS" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/medical/surgery) +"dlT" = ( +/obj/structure/rack, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/item/stack/sheet/metal{ + amount = 30 + }, +/obj/item/stack/packageWrap, +/obj/item/stack/sheet/glass{ + amount = 30 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/hallway/secondary/construction) +"dlU" = ( +/obj/structure/girder, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/hallway/secondary/construction) +"dlV" = ( +/obj/structure/chair/stool/bar, +/obj/structure/sign/poster{ + pixel_x = -32 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dlW" = ( +/obj/structure/chair/stool/bar, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dlX" = ( +/obj/structure/chair/wood/normal{ + tag = "icon-wooden_chair (EAST)"; + icon_state = "wooden_chair"; + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dlY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dlZ" = ( +/obj/structure/cable/white, +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dma" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood{ + tag = "icon-wood-broken3"; + icon_state = "wood-broken3" + }, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dmb" = ( +/obj/structure/table/wood, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dmc" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dmd" = ( +/obj/machinery/light/small, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dme" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dmf" = ( +/obj/structure/cable/white, +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 2; + name = "Abandoned Research Lab APC"; + pixel_x = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/delivery, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dmg" = ( +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dmh" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dmi" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light_switch{ + pixel_x = 26 + }, +/turf/open/floor/plasteel/delivery, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dmj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/poddoor/preopen{ + id = "maintrobotics"; + name = "Decrepit Blast Door" + }, +/obj/structure/girder, +/obj/structure/grille, +/turf/open/floor/plasteel/warning/side, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"dmk" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"dml" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/toxins/explab) +"dmm" = ( +/obj/machinery/door/firedoor/heavy, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/button/door{ + id = "experimentor"; + name = "Experimentor Door Control"; + pixel_x = -26; + req_access_txt = "47" + }, +/obj/machinery/door/poddoor/preopen{ + id = "experimentor"; + name = "Test Chamber Blast door" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/toxins/explab) +"dmn" = ( +/obj/structure/sign/securearea, +/turf/closed/wall/r_wall, +/area/toxins/explab) +"dmo" = ( +/obj/machinery/status_display, +/turf/closed/wall/r_wall, +/area/toxins/explab) +"dmp" = ( +/obj/machinery/door/firedoor/heavy, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/toxins/explab) +"dmq" = ( +/obj/machinery/door/firedoor/heavy, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/toxins/explab) +"dmr" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall/r_wall, +/area/toxins/explab) +"dms" = ( +/turf/closed/wall/r_wall, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dmt" = ( +/obj/structure/sign/fire, +/turf/closed/wall/r_wall, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dmu" = ( +/obj/machinery/door/firedoor/heavy, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rdtoxins"; + name = "Toxins Lab Shutters" + }, +/turf/open/floor/plating, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dmv" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/airlock/research{ + name = "Toxins Mixing Lab"; + req_access_txt = "8" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rdtoxins"; + name = "Toxins Lab Shutters" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dmw" = ( +/obj/structure/sign/biohazard, +/turf/closed/wall/r_wall, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dmx" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/toxins/misc_lab{ + name = "\improper Research Testing Range" + }) +"dmy" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/window/northright{ + name = "Shooting Range" + }, +/turf/open/floor/plating, +/area/toxins/misc_lab{ + name = "\improper Research Testing Range" + }) +"dmz" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/toxins/misc_lab{ + name = "\improper Research Testing Range" + }) +"dmA" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/machinery/power/apc{ + dir = 8; + name = "Research Director's Office APC"; + pixel_x = -26; + pixel_y = 0 + }, +/obj/structure/cable/white, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/hor) +"dmB" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1 + }, +/area/crew_quarters/hor) +"dmC" = ( +/obj/structure/chair/office/light, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/crew_quarters/hor) +"dmD" = ( +/obj/structure/chair/office/light, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4 + }, +/area/crew_quarters/hor) +"dmE" = ( +/obj/structure/table, +/obj/item/weapon/cartridge/signal/toxins{ + pixel_x = 6 + }, +/obj/item/weapon/cartridge/signal/toxins{ + pixel_x = -6 + }, +/obj/item/weapon/cartridge/signal/toxins{ + pixel_y = 6 + }, +/obj/machinery/firealarm{ + dir = 4; + icon_state = "fire0"; + pixel_x = 24; + pixel_y = 0; + tag = "icon-fire0 (EAST)" + }, +/obj/machinery/camera{ + c_tag = "Science - Research Director's Office"; + dir = 8; + name = "science camera"; + network = list("SS13","RD") + }, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/hor) +"dmF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"dmG" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral, +/area/medical/research{ + name = "Research Division" + }) +"dmH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whitepurple/corner, +/area/medical/research{ + name = "Research Division" + }) +"dmI" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + name = "Mech Bay"; + req_access_txt = "29" + }, +/turf/open/floor/plasteel/warning/side, +/area/assembly/chargebay) +"dmJ" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/assembly/chargebay) +"dmK" = ( +/turf/open/floor/plasteel/neutral, +/area/assembly/chargebay) +"dmL" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral, +/area/assembly/chargebay) +"dmM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start{ + name = "Roboticist" + }, +/turf/open/floor/plasteel/neutral, +/area/assembly/chargebay) +"dmN" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/assembly/chargebay) +"dmO" = ( +/obj/machinery/door/poddoor/shutters{ + id = "mechbay"; + name = "Mech Bay Shutters" + }, +/turf/open/floor/plasteel/warning/side, +/area/assembly/chargebay) +"dmP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/hallway/primary/aft) +"dmQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/aft) +"dmR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/bed/roller, +/obj/machinery/iv_drip, +/turf/open/floor/plasteel/blue/corner{ + tag = "icon-bluecorner (WEST)"; + icon_state = "bluecorner"; + dir = 8 + }, +/area/hallway/primary/aft) +"dmS" = ( +/turf/open/floor/plating, +/area/hallway/primary/aft) +"dmT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/blue/corner, +/area/hallway/primary/aft) +"dmU" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/blue/corner, +/area/hallway/primary/aft) +"dmV" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = -26; + pixel_y = 0 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/medical/genetics_cloning) +"dmW" = ( +/obj/structure/closet/secure_closet/personal/patient, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/genetics_cloning) +"dmX" = ( +/obj/machinery/limbgrower, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/medical/genetics_cloning) +"dmY" = ( +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/genetics_cloning) +"dmZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whitepurple/corner, +/area/medical/genetics_cloning) +"dna" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-18" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/genetics_cloning) +"dnb" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/machinery/firealarm{ + dir = 4; + icon_state = "fire0"; + pixel_x = 7; + pixel_y = -26; + tag = "icon-fire0 (EAST)" + }, +/obj/machinery/light, +/obj/machinery/light_switch{ + pixel_x = 7; + pixel_y = -38 + }, +/obj/machinery/button/door{ + desc = "A remote control switch for the medbay foyer."; + id = "cloningfoyer"; + name = "Cloning Doors Control"; + normaldoorcontrol = 1; + pixel_x = -6; + pixel_y = -24 + }, +/obj/machinery/camera{ + c_tag = "Medbay - Cloning Lab"; + dir = 1; + name = "medbay camera" + }, +/turf/open/floor/plasteel/whitepurple/corner, +/area/medical/genetics_cloning) +"dnc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whitepurple/corner{ + tag = "icon-whitepurplecorner (WEST)"; + icon_state = "whitepurplecorner"; + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dnd" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/blue, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dne" = ( +/obj/structure/table/glass, +/obj/item/weapon/folder/white, +/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone, +/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone, +/obj/item/weapon/reagent_containers/dropper, +/turf/open/floor/plasteel/whiteblue, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dnf" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dng" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 1 + }, +/turf/open/floor/plasteel/warning, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dnh" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dni" = ( +/obj/structure/table/glass, +/obj/item/weapon/wrench/medical, +/obj/item/clothing/neck/stethoscope, +/obj/machinery/camera{ + c_tag = "Medbay - Cryogenics"; + dir = 1; + name = "medbay camera" + }, +/turf/open/floor/plasteel/whiteblue, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dnj" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dnk" = ( +/obj/structure/sign/nosmoking_2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/medical/surgery) +"dnl" = ( +/obj/structure/bed/roller, +/obj/machinery/iv_drip, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/surgery) +"dnm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 1 + }, +/area/medical/surgery) +"dnn" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/medical, +/obj/machinery/iv_drip, +/obj/machinery/newscaster{ + pixel_x = 32 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/surgery) +"dno" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/medical/surgery) +"dnp" = ( +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/suit/apron/surgical, +/obj/item/clothing/mask/surgical, +/obj/item/weapon/surgical_drapes, +/obj/structure/table/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/surgery) +"dnq" = ( +/obj/item/weapon/retractor, +/obj/item/weapon/hemostat, +/obj/structure/table/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 5 + }, +/area/medical/surgery) +"dnr" = ( +/obj/item/weapon/circular_saw, +/obj/item/weapon/surgicaldrill{ + pixel_y = 5 + }, +/obj/structure/table/reinforced, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/whiteblue, +/area/medical/surgery) +"dns" = ( +/obj/item/weapon/scalpel, +/obj/item/weapon/cautery, +/obj/structure/table/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 9 + }, +/area/medical/surgery) +"dnt" = ( +/obj/machinery/computer/med_data/laptop, +/obj/structure/table/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/surgery) +"dnu" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dnv" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/hallway/secondary/construction) +"dnw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/hallway/secondary/construction) +"dnx" = ( +/turf/open/floor/plasteel/yellow/corner{ + dir = 4 + }, +/area/hallway/secondary/construction) +"dny" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dnz" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/window/eastleft, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dnA" = ( +/obj/structure/table/wood, +/obj/machinery/status_display{ + pixel_x = 32 + }, +/obj/item/weapon/book/manual/wiki/engineering_hacking, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dnB" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dnC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/structure/barricade/wooden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dnD" = ( +/obj/structure/girder, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"dnE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault, +/area/toxins/explab) +"dnF" = ( +/turf/open/floor/plasteel/vault, +/area/toxins/explab) +"dnG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault, +/area/toxins/explab) +"dnH" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault, +/area/toxins/explab) +"dnI" = ( +/obj/structure/closet/bombcloset, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dnJ" = ( +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dnK" = ( +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (NORTH)"; + icon_state = "whitepurple"; + dir = 1 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dnL" = ( +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dnM" = ( +/obj/structure/closet/bombcloset, +/obj/machinery/light_switch{ + pixel_x = 26; + pixel_y = 26 + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dnN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/toxins/misc_lab{ + name = "\improper Research Testing Range" + }) +"dnO" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/toxins/misc_lab{ + name = "\improper Research Testing Range" + }) +"dnP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/toxins/misc_lab{ + name = "\improper Research Testing Range" + }) +"dnQ" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/delivery, +/area/crew_quarters/hor) +"dnR" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 8 + }, +/area/crew_quarters/hor) +"dnS" = ( +/obj/structure/table/reinforced, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/button/door{ + id = "rdxeno"; + name = "Xenobiology Containment Control"; + pixel_x = -7; + pixel_y = 7; + req_access_txt = "30" + }, +/obj/machinery/button/door{ + id = "rdtoxins"; + name = "Toxins Containment Control"; + pixel_x = -7; + pixel_y = -4; + req_access_txt = "30" + }, +/obj/machinery/button/door{ + id = "rdrnd"; + name = "Research and Development Containment Control"; + pixel_x = 7; + pixel_y = 7; + req_access_txt = "30" + }, +/obj/machinery/button/door{ + id = "rdoffice"; + name = "Privacy Control"; + pixel_x = 7; + pixel_y = -4; + req_access_txt = "30" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/crew_quarters/hor) +"dnT" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/white, +/obj/item/weapon/stamp/rd, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 4 + }, +/area/crew_quarters/hor) +"dnU" = ( +/obj/machinery/computer/card/minor/rd, +/obj/machinery/ai_status_display{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/hor) +"dnV" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/purple, +/area/medical/research{ + name = "Research Division" + }) +"dnW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/status_display{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/bot, +/area/assembly/chargebay) +"dnX" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/assembly/chargebay) +"dnY" = ( +/turf/open/floor/plasteel/circuit/gcircuit, +/area/assembly/chargebay) +"dnZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 26; + pixel_y = 0 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/aft) +"doa" = ( +/turf/closed/wall, +/area/medical/genetics) +"dob" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Genetics Desk Maintenance"; + req_access_txt = "9" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/medical/genetics) +"doc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/medical/genetics) +"dod" = ( +/turf/closed/wall/r_wall, +/area/medical/genetics) +"doe" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/medical/genetics) +"dof" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + name = "Genetics Lab"; + req_access_txt = "9" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/medical/genetics) +"dog" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/medical/genetics) +"doh" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + dir = 8; + name = "Medbay APC"; + pixel_x = -26; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"doi" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/medical/medbay{ + name = "Medbay Central" + }) +"doj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dok" = ( +/obj/structure/sign/bluecross_2, +/turf/closed/wall/r_wall, +/area/medical/cmo) +"dol" = ( +/turf/closed/wall/r_wall, +/area/medical/cmo) +"dom" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "cmoshutter"; + name = "CMO Office Shutters" + }, +/turf/open/floor/plating, +/area/medical/cmo) +"don" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"doo" = ( +/obj/structure/bed/roller, +/obj/machinery/iv_drip, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/surgery) +"dop" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/surgery) +"doq" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/medical, +/obj/machinery/iv_drip, +/obj/machinery/camera{ + c_tag = "Medbay - Recovery Room"; + dir = 8; + name = "medbay camera" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/surgery) +"dor" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24; + pixel_y = 0 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/surgery) +"dos" = ( +/turf/open/floor/plasteel/blue, +/area/medical/surgery) +"dot" = ( +/obj/effect/landmark/start{ + name = "Medical Doctor" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/surgery) +"dou" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/blue, +/area/medical/surgery) +"dov" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/structure/mirror{ + pixel_x = 26; + pixel_y = 32 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/surgery) +"dow" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dox" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"doy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/hallway/secondary/construction) +"doz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/construction) +"doA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/hallway/secondary/construction) +"doB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/hallway/secondary/construction) +"doC" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plating, +/area/hallway/secondary/construction) +"doD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/construction) +"doE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/turf/open/floor/plasteel/warning/side, +/area/hallway/secondary/construction) +"doF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/delivery, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"doG" = ( +/obj/structure/cable/white, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"doH" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"doI" = ( +/obj/structure/cable/white, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"doJ" = ( +/obj/structure/chair/stool, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"doK" = ( +/obj/structure/table/wood, +/obj/item/device/assembly/igniter, +/obj/item/device/assembly/igniter, +/obj/item/device/assembly/timer{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"doL" = ( +/obj/structure/table, +/obj/item/stack/packageWrap, +/obj/item/weapon/hand_labeler, +/turf/open/floor/plasteel/bot, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"doM" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"doN" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/delivery, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"doO" = ( +/obj/structure/table/reinforced, +/obj/item/device/mmi, +/obj/item/device/assembly/prox_sensor, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"doP" = ( +/obj/structure/frame/machine, +/obj/item/stack/cable_coil/white, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"doQ" = ( +/obj/structure/rack, +/obj/item/weapon/book/manual/robotics_cyborgs, +/obj/item/weapon/storage/belt/utility, +/obj/item/weapon/reagent_containers/glass/beaker/large, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"doR" = ( +/obj/machinery/mecha_part_fabricator, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/delivery, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"doS" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/stock_parts/console_screen, +/obj/item/weapon/stock_parts/micro_laser, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"doT" = ( +/obj/structure/table/reinforced, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/device/assembly/flash/handheld, +/turf/open/floor/plasteel/bot, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"doU" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"doV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"doW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/toxins/explab) +"doX" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/toxins/explab) +"doY" = ( +/mob/living/simple_animal/pet/dog/pug{ + name = "Swanson" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/toxins/explab) +"doZ" = ( +/obj/effect/landmark{ + name = "revenantspawn" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/toxins/explab) +"dpa" = ( +/obj/machinery/r_n_d/experimentor, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/toxins/explab) +"dpb" = ( +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/toxins/explab) +"dpc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/toxins/explab) +"dpd" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/toxins/explab) +"dpe" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/toxins/explab) +"dpf" = ( +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/turf/open/floor/plasteel/delivery, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dpg" = ( +/turf/open/floor/plasteel/neutral, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dph" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 26; + pixel_y = 26 + }, +/turf/open/floor/plasteel/delivery, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dpi" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/structure/sign/securearea{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/toxins/misc_lab{ + name = "\improper Research Testing Range" + }) +"dpj" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/toxins/misc_lab{ + name = "\improper Research Testing Range" + }) +"dpk" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/clipboard, +/obj/item/toy/figure/rd, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Research Director's Desk"; + departmentType = 5; + name = "Research Director's RC"; + pixel_x = -32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/hor) +"dpl" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/crew_quarters/hor) +"dpm" = ( +/obj/machinery/computer/aifixer, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/hor) +"dpn" = ( +/obj/structure/chair/office/light{ + dir = 1 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/landmark/start{ + name = "Research Director" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whitepurple/corner, +/area/crew_quarters/hor) +"dpo" = ( +/obj/machinery/computer/mecha, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/hor) +"dpp" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "rdoffice"; + name = "Research Director's Shutters" + }, +/turf/open/floor/plating, +/area/crew_quarters/hor) +"dpq" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"dpr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral, +/area/medical/research{ + name = "Research Division" + }) +"dps" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whitepurple/corner, +/area/medical/research{ + name = "Research Division" + }) +"dpt" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plating, +/area/assembly/chargebay) +"dpu" = ( +/obj/machinery/recharge_station, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/bot, +/area/assembly/chargebay) +"dpv" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start{ + name = "Cyborg" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/assembly/chargebay) +"dpw" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/bot, +/area/assembly/chargebay) +"dpx" = ( +/obj/machinery/computer/mech_bay_power_console, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/assembly/chargebay) +"dpy" = ( +/obj/machinery/mech_bay_recharge_port{ + tag = "icon-recharge_port (WEST)"; + icon_state = "recharge_port"; + dir = 8 + }, +/turf/open/floor/plating/warnplate{ + dir = 6 + }, +/area/assembly/chargebay) +"dpz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm{ + dir = 4; + icon_state = "fire0"; + pixel_x = 24; + pixel_y = -26; + tag = "icon-fire0 (EAST)" + }, +/obj/machinery/light_switch{ + pixel_x = 26; + pixel_y = -38 + }, +/turf/open/floor/plasteel/delivery, +/area/assembly/chargebay) +"dpA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning/corner{ + dir = 4 + }, +/area/hallway/primary/aft) +"dpB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/purple/corner, +/area/hallway/primary/aft) +"dpC" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24; + pixel_y = 0 + }, +/turf/open/floor/plasteel/bot, +/area/medical/genetics) +"dpD" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1 + }, +/area/medical/genetics) +"dpE" = ( +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1 + }, +/area/medical/genetics) +"dpF" = ( +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4 + }, +/area/medical/genetics) +"dpG" = ( +/obj/structure/table/glass, +/obj/item/weapon/storage/box/beakers{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/masks, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4 + }, +/area/medical/genetics) +"dpH" = ( +/obj/machinery/status_display, +/turf/closed/wall/r_wall, +/area/medical/genetics) +"dpI" = ( +/obj/structure/table/reinforced, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = 26 + }, +/obj/item/clothing/gloves/color/latex, +/obj/item/weapon/storage/box/disks, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/medical/genetics) +"dpJ" = ( +/obj/machinery/computer/scan_consolenew, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/noticeboard{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/warning/end{ + tag = "icon-plasteel_warn_end (WEST)"; + icon_state = "plasteel_warn_end"; + dir = 8 + }, +/area/medical/genetics) +"dpK" = ( +/obj/machinery/dna_scannernew, +/turf/open/floor/plasteel/warning/end{ + tag = "icon-plasteel_warn_end (EAST)"; + icon_state = "plasteel_warn_end"; + dir = 4 + }, +/area/medical/genetics) +"dpL" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/machinery/firealarm{ + pixel_x = -26; + pixel_y = 26 + }, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (WEST)"; + icon_state = "whitepurple"; + dir = 8 + }, +/area/medical/genetics) +"dpM" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"dpN" = ( +/obj/machinery/button/door{ + id = "geneticslab"; + name = "Genetics Lab Shutters"; + pixel_x = 26; + pixel_y = 26; + req_access_txt = "9" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 4 + }, +/area/medical/genetics) +"dpO" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/effect/decal/cleanable/dirt, +/mob/living/carbon/monkey, +/turf/open/floor/plasteel/warning/end{ + tag = "icon-plasteel_warn_end (NORTH)"; + icon_state = "plasteel_warn_end"; + dir = 1 + }, +/area/medical/genetics) +"dpP" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "geneticslab"; + name = "Genetics Lab Shutters" + }, +/turf/open/floor/plating, +/area/medical/genetics) +"dpQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dpR" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "cmoshutter"; + name = "CMO Office Shutters" + }, +/turf/open/floor/plating, +/area/medical/cmo) +"dpS" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/medical/cmo) +"dpT" = ( +/obj/structure/table/glass, +/obj/item/weapon/folder/blue, +/obj/item/weapon/cartridge/medical{ + pixel_x = -3 + }, +/obj/item/weapon/cartridge/medical{ + pixel_x = 3 + }, +/obj/item/weapon/cartridge/chemistry{ + pixel_x = 0; + pixel_y = 6 + }, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo) +"dpU" = ( +/obj/structure/table/glass, +/obj/item/weapon/folder/white, +/obj/item/device/flashlight/pen, +/obj/item/clothing/neck/stethoscope, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo) +"dpV" = ( +/obj/structure/table/glass, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo) +"dpW" = ( +/obj/structure/table/glass, +/obj/item/weapon/folder/blue, +/obj/item/clothing/glasses/hud/health, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = 26 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/medical/cmo) +"dpX" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/blue, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dpY" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dpZ" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/medical{ + name = "Recovery Room" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/medical/surgery) +"dqa" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 8 + }, +/area/medical/surgery) +"dqb" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/landmark/start{ + name = "Medical Doctor" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/blue, +/area/medical/surgery) +"dqc" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 4 + }, +/area/medical/surgery) +"dqd" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/medical{ + name = "Surgery Theatre"; + req_access_txt = "45" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/medical/surgery) +"dqe" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/surgery) +"dqf" = ( +/obj/machinery/computer/operating, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/surgery) +"dqg" = ( +/obj/structure/table/optable, +/obj/effect/decal/cleanable/blood/old, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/blue, +/area/medical/surgery) +"dqh" = ( +/obj/machinery/holopad, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/medical/surgery) +"dqi" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/surgery) +"dqj" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Surgery Maintenance"; + req_access_txt = "45" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/medical/surgery) +"dqk" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dql" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dqm" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/yellow/corner{ + dir = 8 + }, +/area/hallway/secondary/construction) +"dqn" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/hallway/secondary/construction) +"dqo" = ( +/obj/structure/table, +/obj/item/device/analyzer, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/hallway/secondary/construction) +"dqp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dqq" = ( +/obj/structure/rack, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/weldingtool, +/obj/item/device/assembly/voice, +/obj/item/clothing/head/welding, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dqr" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dqs" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dqt" = ( +/obj/structure/table/wood, +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dqu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dqv" = ( +/turf/open/floor/wood{ + tag = "icon-wood-broken7"; + icon_state = "wood-broken7" + }, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dqw" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dqx" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/weapon/stock_parts/cell/high, +/turf/open/floor/plasteel/bot, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dqy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dqz" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/bot, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dqA" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/landmark{ + name = "blobstart" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"dqB" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/toxins/explab) +"dqC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/toxins/explab) +"dqD" = ( +/obj/machinery/camera{ + c_tag = "Science - Experimentor"; + dir = 1; + name = "science camera"; + network = list("SS13","RD") + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/toxins/explab) +"dqE" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Science - Toxins Mixing Lab Fore"; + dir = 4; + name = "science camera"; + network = list("SS13","RD") + }, +/turf/open/floor/plasteel/escape{ + tag = "icon-escape (WEST)"; + icon_state = "escape"; + dir = 8 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dqF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dqG" = ( +/obj/machinery/atmospherics/components/unary/vent_pump, +/turf/open/floor/plasteel/neutral, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dqH" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dqI" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/heater{ + tag = "icon-heater (WEST)"; + icon_state = "heater"; + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dqJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/camera{ + c_tag = "Science - Firing Range"; + dir = 4; + name = "science camera"; + network = list("SS13","RD") + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/toxins/misc_lab{ + name = "\improper Research Testing Range" + }) +"dqK" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/toxins/misc_lab{ + name = "\improper Research Testing Range" + }) +"dqL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/toxins/misc_lab{ + name = "\improper Research Testing Range" + }) +"dqM" = ( +/obj/structure/table/reinforced, +/obj/machinery/light, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/item/weapon/storage/secure/briefcase, +/obj/item/device/taperecorder, +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = -26; + pixel_y = -26 + }, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/hor) +"dqN" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/crew_quarters/hor) +"dqO" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whitepurple/side, +/area/crew_quarters/hor) +"dqP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whitepurple/corner, +/area/crew_quarters/hor) +"dqQ" = ( +/obj/machinery/computer/robotics, +/obj/machinery/light, +/obj/machinery/status_display{ + pixel_x = 32 + }, +/obj/machinery/keycard_auth{ + pixel_x = -5; + pixel_y = -26 + }, +/obj/machinery/light_switch{ + pixel_x = 5; + pixel_y = -26 + }, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/hor) +"dqR" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/purple, +/area/medical/research{ + name = "Research Division" + }) +"dqS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/machinery/camera{ + c_tag = "Science - Aft Center"; + dir = 8; + name = "science camera"; + network = list("SS13","RD") + }, +/turf/open/floor/plasteel/whitepurple/corner, +/area/medical/research{ + name = "Research Division" + }) +"dqT" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/packageWrap, +/obj/item/weapon/hand_labeler, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/turf/open/floor/plasteel/bot, +/area/assembly/chargebay) +"dqU" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/assembly/chargebay) +"dqV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning, +/area/assembly/chargebay) +"dqW" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/camera{ + c_tag = "Science - Mech Bay"; + dir = 1; + name = "science camera"; + network = list("SS13","RD") + }, +/turf/open/floor/plasteel/warning, +/area/assembly/chargebay) +"dqX" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning, +/area/assembly/chargebay) +"dqY" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/warning, +/area/assembly/chargebay) +"dqZ" = ( +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/assembly/chargebay) +"dra" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/assembly/chargebay) +"drb" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/primary/aft) +"drc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/aft) +"drd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 1; + icon_state = "pipe-j1s"; + name = "Genetics Junction"; + sortType = 23 + }, +/turf/open/floor/plasteel/purple/corner, +/area/hallway/primary/aft) +"dre" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + name = "Genetics Desk"; + req_access_txt = "9" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/medical/genetics) +"drf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/medical/genetics) +"drg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1 + }, +/area/medical/genetics) +"drh" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral, +/area/medical/genetics) +"dri" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/medical/genetics) +"drj" = ( +/obj/structure/table/glass, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/item/weapon/clipboard, +/obj/item/toy/figure/geneticist, +/obj/machinery/power/apc{ + dir = 4; + name = "Genetics Lab APC"; + pixel_x = 26; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4 + }, +/area/medical/genetics) +"drk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/medical/genetics) +"drl" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/white, +/obj/item/weapon/storage/pill_bottle/mutadone, +/obj/item/weapon/storage/pill_bottle/mannitol, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Medbay - Genetics Lab"; + dir = 4; + name = "medbay camera" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/medical/genetics) +"drm" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/obj/effect/landmark/start{ + name = "Geneticist" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 9 + }, +/area/medical/genetics) +"drn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (NORTH)"; + icon_state = "whitepurple"; + dir = 1 + }, +/area/medical/genetics) +"dro" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1 + }, +/area/medical/genetics) +"drp" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/medical/genetics) +"drq" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 4 + }, +/area/medical/genetics) +"drr" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/machinery/door/window/westright{ + name = "'Monkey Pen"; + req_access_txt = "9" + }, +/obj/effect/decal/cleanable/dirt, +/mob/living/carbon/monkey, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (NORTH)"; + icon_state = "plasteel_warn_side"; + dir = 1 + }, +/area/medical/genetics) +"drs" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "geneticslab"; + name = "Genetics Lab Shutters" + }, +/turf/open/floor/plating, +/area/medical/genetics) +"drt" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dru" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/medical/medbay{ + name = "Medbay Central" + }) +"drv" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/medbay{ + name = "Medbay Central" + }) +"drw" = ( +/obj/machinery/door/airlock/command{ + name = "Chief Medical Officer's Office"; + req_access_txt = "40" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/medical/cmo) +"drx" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/medical/cmo) +"dry" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo) +"drz" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo) +"drA" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo) +"drB" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/medical/cmo) +"drC" = ( +/obj/machinery/door/airlock/command{ + name = "Chief Medical Officer's Office"; + req_access_txt = "40" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/medical/cmo) +"drD" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"drE" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/effect/landmark{ + name = "lightsout" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/medbay{ + name = "Medbay Central" + }) +"drF" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/medbay{ + name = "Medbay Central" + }) +"drG" = ( +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/surgery) +"drH" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/surgery) +"drI" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/surgery) +"drJ" = ( +/obj/machinery/light_switch{ + pixel_x = -26 + }, +/obj/structure/sink{ + dir = 8; + icon_state = "sink"; + pixel_x = -12 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/surgery) +"drK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/surgery) +"drL" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/whiteblue/side, +/area/medical/surgery) +"drM" = ( +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/surgery) +"drN" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 26; + pixel_y = 0 + }, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/surgery) +"drO" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"drP" = ( +/obj/structure/rack, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/item/weapon/storage/toolbox/emergency{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/storage/toolbox/electrical, +/turf/open/floor/plasteel/bot, +/area/hallway/secondary/construction) +"drQ" = ( +/turf/open/floor/plating/warnplate/corner, +/area/hallway/secondary/construction) +"drR" = ( +/turf/open/floor/plating/warnplate, +/area/hallway/secondary/construction) +"drS" = ( +/turf/open/floor/plating/warnplate/corner{ + dir = 1 + }, +/area/hallway/secondary/construction) +"drT" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/turf/open/floor/plating, +/area/hallway/secondary/construction) +"drU" = ( +/obj/structure/table, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/item/weapon/clipboard, +/obj/item/weapon/folder/yellow, +/obj/item/weapon/electronics/firealarm, +/obj/item/weapon/stock_parts/console_screen, +/turf/open/floor/plasteel/bot, +/area/hallway/secondary/construction) +"drV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"drW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"drX" = ( +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/warning, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"drY" = ( +/obj/structure/closet/firecloset, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"drZ" = ( +/obj/structure/chair/wood/normal{ + tag = "icon-wooden_chair (NORTH)"; + icon_state = "wooden_chair"; + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dsa" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dsb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dsc" = ( +/obj/structure/chair/stool/bar, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dsd" = ( +/obj/structure/chair/stool/bar, +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dse" = ( +/mob/living/simple_animal/cockroach, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dsf" = ( +/obj/machinery/recharge_station, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dsg" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dsh" = ( +/turf/open/floor/plasteel/circuit/gcircuit, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dsi" = ( +/obj/machinery/computer/mech_bay_power_console, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dsj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dsk" = ( +/turf/open/floor/plasteel/neutral, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dsl" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plasteel/delivery, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dsm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light_switch{ + pixel_x = 26 + }, +/turf/open/floor/plasteel/delivery, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dsn" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/structure/sign/nosmoking_2{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/escape{ + tag = "icon-escape (WEST)"; + icon_state = "escape"; + dir = 8 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dso" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dsp" = ( +/obj/effect/landmark/start{ + name = "Scientist" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dsq" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dsr" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + tag = "icon-connector_map (WEST)"; + icon_state = "connector_map"; + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dss" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plating, +/area/toxins/misc_lab{ + name = "\improper Research Testing Range" + }) +"dst" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plating, +/area/toxins/misc_lab{ + name = "\improper Research Testing Range" + }) +"dsu" = ( +/turf/closed/wall, +/area/crew_quarters/hor) +"dsv" = ( +/obj/structure/cable/white, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/tinted/fulltile, +/turf/open/floor/plating, +/area/crew_quarters/hor) +"dsw" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/door/airlock/command{ + name = "Research Director's Quarters"; + req_access = null; + req_access_txt = "30" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/crew_quarters/hor) +"dsx" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/tinted/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/crew_quarters/hor) +"dsy" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"dsz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"dsA" = ( +/turf/closed/wall, +/area/assembly/robotics) +"dsB" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "roboticsprivacy"; + name = "Robotics Shutters" + }, +/turf/open/floor/plating, +/area/assembly/robotics) +"dsC" = ( +/obj/structure/sign/science, +/turf/closed/wall, +/area/assembly/robotics) +"dsD" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/glass_research{ + name = "Robotics Lab"; + req_access_txt = "29" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/assembly/robotics) +"dsE" = ( +/turf/closed/wall/r_wall, +/area/assembly/robotics) +"dsF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/hallway/primary/aft) +"dsG" = ( +/obj/structure/table/glass, +/obj/machinery/airalarm{ + dir = 4; + locked = 0; + pixel_x = -23; + pixel_y = 0 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/item/weapon/folder/white, +/obj/item/weapon/storage/box/disks, +/obj/machinery/camera{ + c_tag = "Medbay - Genetics Desk"; + dir = 4; + name = "medbay camera" + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 8 + }, +/area/medical/genetics) +"dsH" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral, +/area/medical/genetics) +"dsI" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/genetics) +"dsJ" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 4 + }, +/area/medical/genetics) +"dsK" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + name = "Genetics Lab"; + req_access_txt = "9" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/medical/genetics) +"dsL" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/medical/genetics) +"dsM" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (WEST)"; + icon_state = "whitepurple"; + dir = 8 + }, +/area/medical/genetics) +"dsN" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/genetics) +"dsO" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/genetics) +"dsP" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/holopad, +/obj/effect/landmark/start{ + name = "Geneticist" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/genetics) +"dsQ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_Toxins = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 4 + }, +/area/medical/genetics) +"dsR" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/machinery/door/window/westleft{ + name = "'Monkey Pen"; + req_access_txt = "9" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (NORTH)"; + icon_state = "plasteel_warn_side"; + dir = 1 + }, +/area/medical/genetics) +"dsS" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/cable/white, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "geneticslab"; + name = "Genetics Lab Shutters" + }, +/turf/open/floor/plating, +/area/medical/genetics) +"dsT" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dsU" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/blue, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dsV" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "cmoshutter"; + name = "CMO Office Shutters" + }, +/turf/open/floor/plating, +/area/medical/cmo) +"dsW" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/medical/cmo) +"dsX" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo) +"dsY" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo) +"dsZ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo) +"dta" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/medical/cmo) +"dtb" = ( +/obj/structure/table, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24; + pixel_y = 0 + }, +/obj/machinery/ai_status_display{ + pixel_y = -32 + }, +/obj/item/clothing/suit/straight_jacket, +/obj/item/clothing/mask/muzzle, +/obj/item/clothing/glasses/sunglasses/blindfold, +/obj/item/clothing/ears/earmuffs, +/obj/item/weapon/gun/syringe, +/obj/item/clothing/glasses/eyepatch, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/surgery) +"dtc" = ( +/obj/machinery/computer/med_data, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = -26 + }, +/turf/open/floor/plasteel/whiteblue/side, +/area/medical/surgery) +"dtd" = ( +/obj/machinery/computer/crew, +/obj/machinery/status_display{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/surgery) +"dte" = ( +/obj/structure/closet/secure_closet/medical2, +/obj/structure/sign/poster{ + icon_state = "poster3_legit"; + pixel_x = -32; + pixel_y = 0; + tag = "icon-poster3_legit" + }, +/turf/open/floor/plasteel/vault, +/area/medical/surgery) +"dtf" = ( +/obj/machinery/ai_status_display{ + pixel_y = -32 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/vault, +/area/medical/surgery) +"dtg" = ( +/obj/structure/cable/white, +/obj/machinery/power/apc{ + dir = 2; + name = "Surgery APC"; + pixel_y = -26 + }, +/obj/machinery/camera{ + c_tag = "Medbay - Surgery"; + dir = 1; + name = "medbay camera" + }, +/turf/open/floor/plasteel/vault, +/area/medical/surgery) +"dth" = ( +/obj/machinery/status_display{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/vault, +/area/medical/surgery) +"dti" = ( +/obj/structure/closet/crate/freezer/blood, +/obj/machinery/vending/wallmed{ + name = "Emergency NanoMed"; + pixel_x = 26; + pixel_y = 0; + req_access_txt = "0"; + use_power = 0 + }, +/turf/open/floor/plasteel/vault, +/area/medical/surgery) +"dtj" = ( +/obj/structure/table, +/obj/item/weapon/stock_parts/cell/high, +/obj/item/weapon/stock_parts/cell/high, +/obj/machinery/cell_charger, +/turf/open/floor/plasteel/bot, +/area/hallway/secondary/construction) +"dtk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/construction) +"dtl" = ( +/obj/machinery/power/apc{ + dir = 2; + name = "Auxiliary Construction Zone APC"; + pixel_y = -26 + }, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/turf/open/floor/plasteel/bot, +/area/hallway/secondary/construction) +"dtm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/construction) +"dtn" = ( +/obj/structure/table, +/obj/item/device/flashlight/lamp, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/hallway/secondary/construction) +"dto" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/hallway/secondary/construction) +"dtp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dtq" = ( +/obj/structure/table/wood, +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/obj/machinery/light/small, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dtr" = ( +/obj/structure/table/wood/poker, +/obj/item/device/flashlight/lamp, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dts" = ( +/obj/structure/table/wood/poker, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dtt" = ( +/obj/structure/table/wood/poker, +/obj/item/weapon/storage/box/matches{ + pixel_x = -3; + pixel_y = 5 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dtu" = ( +/obj/structure/table/wood/poker, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dtv" = ( +/obj/structure/table/wood/poker, +/obj/item/weapon/storage/fancy/cigarettes/dromedaryco{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/fancy/cigarettes/dromedaryco, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dtw" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dtx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/status_display{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/delivery, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dty" = ( +/turf/open/floor/plasteel/bot, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dtz" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mech_bay_recharge_floor, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dtA" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dtB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dtC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dtD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dtE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/delivery, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dtF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/structure/barricade/wooden, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/turf/open/floor/plasteel/warning/side, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dtG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"dtH" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"dtI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"dtJ" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"dtK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"dtL" = ( +/obj/machinery/portable_atmospherics/pump, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/arrival{ + tag = "icon-arrival (WEST)"; + icon_state = "arrival"; + dir = 8 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dtM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dtN" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dtO" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dtP" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + tag = "icon-connector_map (WEST)"; + icon_state = "connector_map"; + dir = 8 + }, +/obj/structure/sign/fire{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dtQ" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/warnplate{ + dir = 9 + }, +/area/toxins/misc_lab{ + name = "\improper Research Testing Range" + }) +"dtR" = ( +/turf/open/floor/plating/warnplate{ + dir = 5 + }, +/area/toxins/misc_lab{ + name = "\improper Research Testing Range" + }) +"dtS" = ( +/obj/structure/closet/secure_closet/RD, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/crew_quarters/hor) +"dtT" = ( +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4 + }, +/area/crew_quarters/hor) +"dtU" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4 + }, +/area/crew_quarters/hor) +"dtV" = ( +/obj/machinery/light_switch{ + pixel_x = 26; + pixel_y = 26 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4 + }, +/area/crew_quarters/hor) +"dtW" = ( +/obj/structure/dresser, +/obj/item/weapon/storage/secure/safe{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4 + }, +/area/crew_quarters/hor) +"dtX" = ( +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/structure/table/reinforced, +/obj/machinery/requests_console{ + department = "Robotics Lab"; + departmentType = 0; + name = "Robotics RC"; + pixel_x = 0; + pixel_y = 32 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/turf/open/floor/plasteel/bot, +/area/assembly/robotics) +"dtY" = ( +/obj/item/weapon/paper_bin, +/obj/item/device/assembly/prox_sensor{ + pixel_x = 5; + pixel_y = 7 + }, +/obj/item/device/assembly/prox_sensor{ + pixel_x = 5; + pixel_y = 7 + }, +/obj/item/device/assembly/prox_sensor{ + pixel_x = 5; + pixel_y = 7 + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/bot, +/area/assembly/robotics) +"dtZ" = ( +/obj/machinery/mecha_part_fabricator, +/turf/open/floor/plasteel/delivery, +/area/assembly/robotics) +"dua" = ( +/obj/structure/rack, +/obj/item/weapon/book/manual/robotics_cyborgs, +/obj/item/weapon/storage/belt/utility/full, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/weapon/circuitboard/mecha/ripley/main, +/obj/item/weapon/circuitboard/mecha/ripley/peripherals, +/turf/open/floor/plasteel/bot, +/area/assembly/robotics) +"dub" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/delivery, +/area/assembly/robotics) +"duc" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/clipboard, +/obj/item/toy/figure/roboticist, +/obj/machinery/button/door{ + id = "roboticsprivacy"; + name = "Robotics Privacy Control"; + pixel_x = 26; + pixel_y = 26; + req_access_txt = "29" + }, +/obj/machinery/light_switch{ + pixel_x = 26; + pixel_y = 38 + }, +/turf/open/floor/plasteel/bot, +/area/assembly/robotics) +"dud" = ( +/obj/structure/sign/science{ + pixel_x = -32; + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/purple/corner{ + tag = "icon-purplecorner (WEST)"; + icon_state = "purplecorner"; + dir = 8 + }, +/area/hallway/primary/aft) +"due" = ( +/obj/structure/sign/science{ + pixel_x = 32; + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/purple/corner, +/area/hallway/primary/aft) +"duf" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "geneticsdesk"; + name = "Genetics Desk Shutters" + }, +/obj/machinery/door/window/westright{ + dir = 4; + name = "Genetics Desk"; + req_access_txt = "9" + }, +/obj/machinery/door/window/westright{ + name = "Genetics Desk" + }, +/obj/item/weapon/folder/white, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/delivery, +/area/medical/genetics) +"dug" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + tag = "icon-whitepurplecorner (WEST)"; + icon_state = "whitepurplecorner"; + dir = 8 + }, +/area/medical/genetics) +"duh" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/genetics) +"dui" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/genetics) +"duj" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/plasteel/whitepurple/corner, +/area/medical/genetics) +"duk" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "geneticslab"; + name = "Genetics Lab Shutters" + }, +/turf/open/floor/plating, +/area/medical/genetics) +"dul" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/box/monkeycubes, +/obj/item/weapon/storage/box/monkeycubes, +/obj/item/device/radio/headset/headset_medsci, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/medical/genetics) +"dum" = ( +/obj/structure/chair/office/light, +/obj/effect/landmark/start{ + name = "Geneticist" + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 10 + }, +/area/medical/genetics) +"dun" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/whitepurple/side, +/area/medical/genetics) +"duo" = ( +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/medical/genetics) +"dup" = ( +/turf/open/floor/plasteel/neutral, +/area/medical/genetics) +"duq" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 4 + }, +/area/medical/genetics) +"dur" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/effect/decal/cleanable/dirt, +/mob/living/carbon/monkey, +/turf/open/floor/plasteel/warning/end, +/area/medical/genetics) +"dus" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/camera{ + c_tag = "Medbay - Aft Port"; + dir = 8; + name = "medbay camera" + }, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dut" = ( +/obj/structure/bed/dogbed{ + desc = "A comfy-looking cat bed. You can even strap your pet in, in case the gravity turns off."; + name = "Runtime's bed" + }, +/obj/machinery/airalarm{ + dir = 4; + locked = 0; + pixel_x = -23; + pixel_y = 0 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/mob/living/simple_animal/pet/cat/Runtime, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/medical/cmo) +"duu" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo) +"duv" = ( +/obj/structure/chair/office/light, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo) +"duw" = ( +/obj/structure/chair/office/light, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo) +"dux" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-18" + }, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/power/apc{ + dir = 4; + name = "Chief Medical Officer's Office APC"; + pixel_x = 26; + pixel_y = 0 + }, +/obj/machinery/camera{ + c_tag = "Medbay - Chief Medical Officer's Office"; + dir = 8; + name = "medbay camera" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/medical/cmo) +"duy" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 26; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/medbay{ + name = "Medbay Central" + }) +"duz" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"duA" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/hallway/secondary/construction) +"duB" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_y = 26 + }, +/turf/open/floor/plating/warnplate{ + dir = 9 + }, +/area/maintenance/auxsolarstarboard) +"duC" = ( +/obj/machinery/power/smes, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/maintenance/auxsolarstarboard) +"duD" = ( +/obj/machinery/camera{ + c_tag = "Solar - Aft Starboard"; + name = "solar camera" + }, +/turf/open/floor/plating/warnplate{ + dir = 5 + }, +/area/maintenance/auxsolarstarboard) +"duE" = ( +/obj/structure/frame/machine, +/obj/item/weapon/circuitboard/machine/cyborgrecharger, +/turf/open/floor/plating, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"duF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"duG" = ( +/obj/machinery/mech_bay_recharge_port{ + tag = "icon-recharge_port (NORTH)"; + icon_state = "recharge_port"; + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/warnplate{ + dir = 6 + }, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"duH" = ( +/obj/item/robot_suit, +/turf/open/floor/plasteel/delivery, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"duI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"duJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"duK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"duL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"duM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"duN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"duO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"duP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/neutral, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"duQ" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + dir = 8; + name = "Toxins Lab APC"; + pixel_x = -26; + pixel_y = 3 + }, +/turf/open/floor/plasteel/delivery, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"duR" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 8 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"duS" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"duT" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"duU" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + tag = "icon-connector_map (WEST)"; + icon_state = "connector_map"; + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"duV" = ( +/turf/open/floor/plating, +/turf/open/floor/plating{ + icon_state = "platingdmg2" + }, +/area/toxins/misc_lab{ + name = "\improper Research Testing Range" + }) +"duW" = ( +/obj/item/target/syndicate, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/bot, +/area/toxins/misc_lab{ + name = "\improper Research Testing Range" + }) +"duX" = ( +/turf/open/floor/plating, +/area/toxins/misc_lab{ + name = "\improper Research Testing Range" + }) +"duY" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/ai_status_display{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/crew_quarters/hor) +"duZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/hor) +"dva" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/landmark/start{ + name = "Research Director" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/purple, +/area/crew_quarters/hor) +"dvb" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/hor) +"dvc" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/obj/structure/bed, +/obj/item/weapon/bedsheet/rd, +/obj/machinery/status_display{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 4 + }, +/area/crew_quarters/hor) +"dvd" = ( +/obj/item/stack/sheet/plasteel{ + amount = 15 + }, +/obj/item/weapon/wrench, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/item/clothing/glasses/welding, +/obj/structure/table/reinforced, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24; + pixel_y = 0 + }, +/turf/open/floor/plasteel/bot, +/area/assembly/robotics) +"dve" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/assembly/robotics) +"dvf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/assembly/robotics) +"dvg" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/assembly/robotics) +"dvh" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/assembly/robotics) +"dvi" = ( +/obj/structure/chair/office/light{ + tag = "icon-officechair_white (EAST)"; + icon_state = "officechair_white"; + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Roboticist" + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/assembly/robotics) +"dvj" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/item/weapon/folder, +/obj/item/weapon/pen, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "roboticsprivacy"; + name = "Robotics Shutters" + }, +/obj/machinery/door/window/westleft{ + name = "Robotics Desk"; + req_access_txt = "29" + }, +/turf/open/floor/plasteel/delivery, +/area/assembly/robotics) +"dvk" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "geneticsdesk"; + name = "Genetics Desk Shutters" + }, +/turf/open/floor/plating, +/area/medical/genetics) +"dvl" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/button/door{ + id = "geneticsdesk"; + name = "Genetics Desk Shutters"; + pixel_x = -26; + pixel_y = -26; + req_access_txt = "9" + }, +/obj/structure/noticeboard{ + dir = 1; + icon_state = "nboard00"; + pixel_y = -32; + tag = "icon-nboard00 (NORTH)" + }, +/turf/open/floor/plasteel/whitepurple/corner{ + tag = "icon-whitepurplecorner (WEST)"; + icon_state = "whitepurplecorner"; + dir = 8 + }, +/area/medical/genetics) +"dvm" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whitepurple/corner{ + tag = "icon-whitepurplecorner (WEST)"; + icon_state = "whitepurplecorner"; + dir = 8 + }, +/area/medical/genetics) +"dvn" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = -26 + }, +/turf/open/floor/plasteel/whitepurple/corner, +/area/medical/genetics) +"dvo" = ( +/obj/structure/closet/wardrobe/genetics_white, +/turf/open/floor/plasteel/whitepurple/corner, +/area/medical/genetics) +"dvp" = ( +/obj/machinery/ai_status_display, +/turf/closed/wall/r_wall, +/area/medical/genetics) +"dvq" = ( +/obj/structure/table/reinforced, +/obj/machinery/requests_console{ + department = "Medbay Storage"; + departmentType = 0; + name = "Genetics Lab RC"; + pixel_x = 0; + pixel_y = -32 + }, +/obj/item/weapon/storage/box/gloves{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/bodybags, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/medical/genetics) +"dvr" = ( +/obj/machinery/computer/scan_consolenew, +/obj/machinery/light, +/obj/structure/sign/nosmoking_2{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/warning/end{ + tag = "icon-plasteel_warn_end (WEST)"; + icon_state = "plasteel_warn_end"; + dir = 8 + }, +/area/medical/genetics) +"dvs" = ( +/obj/machinery/dna_scannernew, +/obj/structure/extinguisher_cabinet{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/warning/end{ + tag = "icon-plasteel_warn_end (EAST)"; + icon_state = "plasteel_warn_end"; + dir = 4 + }, +/area/medical/genetics) +"dvt" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (WEST)"; + icon_state = "whitepurple"; + dir = 8 + }, +/area/medical/genetics) +"dvu" = ( +/obj/machinery/computer/med_data/laptop, +/obj/structure/table/glass, +/obj/structure/mirror{ + pixel_y = -28 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"dvv" = ( +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 4 + }, +/area/medical/genetics) +"dvw" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/bot, +/area/medical/genetics) +"dvx" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "geneticslab"; + name = "Genetics Lab Shutters" + }, +/obj/structure/sign/electricshock{ + pixel_y = -32 + }, +/turf/open/floor/plating, +/area/medical/genetics) +"dvy" = ( +/obj/structure/sign/poster{ + icon_state = "poster16_legit"; + pixel_y = -32; + tag = "icon-poster16_legit" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dvz" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/whiteblue/side, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dvA" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dvB" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "cmoshutter"; + name = "CMO Office Shutters" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/cmo) +"dvC" = ( +/obj/machinery/disposal/bin, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/medical/cmo) +"dvD" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo) +"dvE" = ( +/obj/structure/table/glass, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/item/weapon/paper_bin, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo) +"dvF" = ( +/obj/structure/table/glass, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/item/weapon/folder/blue{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/weapon/folder/white, +/obj/item/weapon/pen, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo) +"dvG" = ( +/obj/machinery/computer/med_data/laptop, +/obj/structure/table/glass, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/medical/cmo) +"dvH" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "cmoshutter"; + name = "CMO Office Shutters" + }, +/turf/open/floor/plating, +/area/medical/cmo) +"dvI" = ( +/obj/structure/closet/secure_closet/personal/patient, +/turf/open/floor/plasteel/vault, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dvJ" = ( +/obj/machinery/iv_drip, +/turf/open/floor/plasteel/vault, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dvK" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/medical, +/turf/open/floor/plasteel/vault, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dvL" = ( +/obj/item/weapon/folder/white, +/obj/item/device/flashlight/pen, +/obj/item/clothing/neck/stethoscope, +/obj/structure/table, +/turf/open/floor/plasteel/vault, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dvM" = ( +/obj/machinery/computer/med_data/laptop, +/obj/structure/table, +/obj/machinery/newscaster{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/vault, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dvN" = ( +/obj/effect/decal/cleanable/cobweb, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dvO" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dvP" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dvQ" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dvR" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dvS" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + 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/starboard{ + name = "Aft Starboard Maintenance" + }) +"dvT" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dvU" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dvV" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dvW" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dvX" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dvY" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dvZ" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dwa" = ( +/obj/machinery/door/airlock/engineering{ + name = "Aft Starboard Solar Access"; + req_access_txt = "10" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/maintenance/auxsolarstarboard) +"dwb" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard) +"dwc" = ( +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard) +"dwd" = ( +/obj/structure/sign/poster{ + pixel_y = -32 + }, +/obj/machinery/light/small, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/chem_dispenser/drinks/beer, +/obj/structure/table/wood/poker, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dwe" = ( +/obj/structure/table/wood/poker, +/obj/item/weapon/reagent_containers/food/drinks/bottle/rum{ + pixel_x = 6; + pixel_y = 3 + }, +/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey{ + pixel_y = 7 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dwf" = ( +/obj/machinery/vending/boozeomat{ + req_access_txt = "0" + }, +/obj/structure/sign/poster{ + pixel_y = -32 + }, +/obj/machinery/light/small, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dwg" = ( +/obj/structure/table/wood/poker, +/obj/item/weapon/reagent_containers/food/drinks/shaker, +/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone, +/obj/item/weapon/reagent_containers/dropper, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "Abandoned Gambling Den" + }) +"dwh" = ( +/obj/structure/table, +/obj/item/weapon/crowbar/red, +/obj/item/weapon/wrench, +/obj/item/clothing/mask/gas, +/turf/open/floor/plating, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dwi" = ( +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dwj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dwk" = ( +/obj/structure/chair/office/light, +/turf/open/floor/plasteel/warning, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dwl" = ( +/obj/structure/rack, +/obj/item/weapon/storage/toolbox/mechanical, +/obj/item/clothing/head/welding, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dwm" = ( +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"dwn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"dwo" = ( +/obj/structure/table/reinforced, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = -32 + }, +/obj/item/device/assembly/igniter{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/device/assembly/igniter, +/obj/item/device/assembly/igniter{ + pixel_x = -6; + pixel_y = -6 + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dwp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 8 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dwq" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/holopad, +/turf/open/floor/plasteel/bot, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dwr" = ( +/turf/open/floor/plasteel/whitepurple/side{ + dir = 4 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dws" = ( +/obj/machinery/newscaster{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/delivery, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dwt" = ( +/obj/machinery/light/small, +/turf/open/floor/plating/warnplate{ + dir = 10 + }, +/area/toxins/misc_lab{ + name = "\improper Research Testing Range" + }) +"dwu" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/toxins/misc_lab{ + name = "\improper Research Testing Range" + }) +"dwv" = ( +/obj/machinery/light/small, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/warnplate{ + dir = 6 + }, +/area/toxins/misc_lab{ + name = "\improper Research Testing Range" + }) +"dww" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/suit_storage_unit/rd, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/crew_quarters/hor) +"dwx" = ( +/obj/machinery/button/door{ + id = "idquarters"; + name = "Privacy Control"; + pixel_x = -26; + pixel_y = -26; + req_access_txt = "30" + }, +/turf/open/floor/plasteel/whitepurple/corner, +/area/crew_quarters/hor) +"dwy" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/camera{ + c_tag = "Science - Research Director's Quarters"; + dir = 1; + name = "science camera"; + network = list("SS13","RD") + }, +/turf/open/floor/plasteel/whitepurple/corner, +/area/crew_quarters/hor) +"dwz" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/whitepurple/corner, +/area/crew_quarters/hor) +"dwA" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp, +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 26; + pixel_y = 0 + }, +/turf/open/floor/plasteel/whitepurple/corner, +/area/crew_quarters/hor) +"dwB" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whitepurple/corner, +/area/medical/research{ + name = "Research Division" + }) +"dwC" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/assembly/robotics) +"dwD" = ( +/obj/item/stack/cable_coil/white, +/obj/item/bodypart/r_arm/robot{ + pixel_x = 3 + }, +/obj/item/bodypart/l_arm/robot{ + pixel_x = -3 + }, +/obj/item/device/assembly/flash/handheld, +/obj/item/device/assembly/flash/handheld, +/obj/structure/table/reinforced, +/obj/machinery/light_switch{ + pixel_x = -38; + pixel_y = 26 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/device/assembly/flash/handheld, +/obj/item/device/assembly/flash/handheld, +/obj/item/device/assembly/flash/handheld, +/obj/item/device/assembly/flash/handheld, +/turf/open/floor/plasteel/bot, +/area/assembly/robotics) +"dwE" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/assembly/robotics) +"dwF" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/assembly/robotics) +"dwG" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plasteel/bot, +/area/assembly/robotics) +"dwH" = ( +/turf/open/floor/plasteel/neutral, +/area/assembly/robotics) +"dwI" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/assembly/robotics) +"dwJ" = ( +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/assembly/robotics) +"dwK" = ( +/turf/closed/wall, +/area/medical/morgue) +"dwL" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/centcom{ + name = "Morgue"; + req_access_txt = "9" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/medical/morgue) +"dwM" = ( +/obj/structure/sign/nosmoking_2, +/turf/closed/wall, +/area/medical/morgue) +"dwN" = ( +/turf/closed/wall/r_wall, +/area/medical/morgue) +"dwO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/medical/morgue) +"dwP" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Morgue Maintenance"; + req_access_txt = "5" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/medical/morgue) +"dwQ" = ( +/obj/structure/table/glass, +/obj/item/weapon/clipboard, +/obj/item/toy/figure/cmo, +/obj/machinery/status_display{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/medical/cmo) +"dwR" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo) +"dwS" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo) +"dwT" = ( +/obj/structure/chair/office/light{ + dir = 1 + }, +/obj/effect/landmark/start{ + name = "Chief Medical Officer" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo) +"dwU" = ( +/obj/machinery/computer/card/minor/cmo, +/obj/machinery/ai_status_display{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/medical/cmo) +"dwV" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Medbay - Aft Starboard"; + dir = 4; + name = "medbay camera" + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dwW" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/medical{ + name = "Patient Room" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dwX" = ( +/obj/effect/landmark/start{ + name = "Medical Doctor" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/blue, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dwY" = ( +/obj/structure/chair/office/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dwZ" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/machinery/vending/wallmed{ + name = "Emergency NanoMed"; + pixel_x = 26; + pixel_y = 0; + req_access_txt = "0"; + use_power = 0 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/cmo, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dxa" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dxb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/obj/item/device/flashlight, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dxc" = ( +/obj/structure/girder, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dxd" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dxe" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dxf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dxg" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dxh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dxi" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dxj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dxk" = ( +/obj/structure/cable/white, +/turf/open/floor/plating/warnplate{ + dir = 10 + }, +/area/maintenance/auxsolarstarboard) +"dxl" = ( +/obj/machinery/power/solar_control{ + id = "aftstarboard"; + name = "Aft Starboard Solar Control"; + track = 0 + }, +/obj/structure/cable, +/turf/open/floor/plating/warnplate{ + dir = 6 + }, +/area/maintenance/auxsolarstarboard) +"dxm" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard) +"dxn" = ( +/obj/structure/table, +/obj/item/stack/rods{ + amount = 23 + }, +/obj/item/stack/cable_coil/white, +/obj/item/device/flashlight/seclite, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dxo" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dxp" = ( +/obj/machinery/light/small, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dxq" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plasteel/delivery, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dxr" = ( +/obj/structure/table, +/obj/item/weapon/clipboard, +/obj/item/weapon/folder/white, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dxs" = ( +/obj/structure/frame/computer, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/turf/open/floor/plating, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dxt" = ( +/obj/structure/frame/machine, +/obj/machinery/light/small, +/obj/item/weapon/stock_parts/console_screen, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dxu" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dxv" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/black, +/obj/item/weapon/storage/toolbox/electrical, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/medical/research{ + name = "Abandoned Research Lab" + }) +"dxw" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"dxx" = ( +/obj/item/device/assembly/prox_sensor{ + pixel_x = -4; + pixel_y = 1 + }, +/obj/item/device/assembly/prox_sensor{ + pixel_x = 8; + pixel_y = 9 + }, +/obj/item/device/assembly/prox_sensor{ + pixel_x = 9; + pixel_y = -2 + }, +/obj/item/device/assembly/prox_sensor{ + pixel_x = 0; + pixel_y = 2 + }, +/obj/structure/table/reinforced, +/obj/machinery/status_display{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 8 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dxy" = ( +/obj/item/device/assembly/timer{ + pixel_x = 5; + pixel_y = 4 + }, +/obj/item/device/assembly/timer{ + pixel_x = -4; + pixel_y = 2 + }, +/obj/item/device/assembly/timer{ + pixel_x = 6; + pixel_y = -4 + }, +/obj/item/device/assembly/timer{ + pixel_x = 0; + pixel_y = 0 + }, +/obj/structure/table/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dxz" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dxA" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/whitepurple/corner, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dxB" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + tag = "icon-freezer (WEST)"; + icon_state = "freezer"; + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dxC" = ( +/obj/structure/sign/fire, +/turf/closed/wall/r_wall, +/area/toxins/misc_lab{ + name = "\improper Research Testing Range" + }) +"dxD" = ( +/obj/machinery/door/firedoor/heavy, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/research{ + name = "Toxins Secure Storage"; + req_access_txt = "8" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rdtoxins"; + name = "Toxins Lab Shutters" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/toxins/misc_lab{ + name = "\improper Research Testing Range" + }) +"dxE" = ( +/turf/closed/wall/r_wall, +/area/toxins/misc_lab{ + name = "\improper Research Testing Range" + }) +"dxF" = ( +/obj/machinery/door/firedoor/heavy, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "idquarters"; + name = "Director's Quarters Shutters" + }, +/obj/structure/cable/white, +/turf/open/floor/plating, +/area/crew_quarters/hor) +"dxG" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = -26; + pixel_y = 0 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"dxH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/whitepurple/corner, +/area/medical/research{ + name = "Research Division" + }) +"dxI" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_research{ + name = "Robotics Lab"; + req_access_txt = "29" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/assembly/robotics) +"dxJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/delivery, +/area/assembly/robotics) +"dxK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/assembly/robotics) +"dxL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral, +/area/assembly/robotics) +"dxM" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/assembly/robotics) +"dxN" = ( +/obj/effect/landmark/start{ + name = "Roboticist" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral, +/area/assembly/robotics) +"dxO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral, +/area/assembly/robotics) +"dxP" = ( +/obj/structure/noticeboard{ + dir = 8; + icon_state = "nboard00"; + pixel_x = 32; + pixel_y = 0; + tag = "icon-nboard00 (WEST)" + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/camera{ + c_tag = "Science - Robotics Lab"; + dir = 8; + name = "science camera"; + network = list("SS13","RD") + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/assembly/robotics) +"dxQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/aft) +"dxR" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/cobweb, +/obj/item/weapon/storage/box/bodybags{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/bodybags, +/turf/open/floor/plating, +/area/medical/morgue) +"dxS" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/medical/morgue) +"dxT" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/light_switch{ + pixel_x = 26; + pixel_y = 26 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/medical/morgue) +"dxU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/medical/morgue) +"dxV" = ( +/obj/structure/bodycontainer/morgue, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/turf/open/floor/plating, +/area/medical/morgue) +"dxW" = ( +/obj/structure/bodycontainer/morgue, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/medical/morgue) +"dxX" = ( +/obj/structure/bodycontainer/morgue, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/medical/morgue) +"dxY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/medical/morgue) +"dxZ" = ( +/turf/open/floor/plating, +/obj/structure/filingcabinet/chestdrawer, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating{ + icon_state = "platingdmg2" + }, +/area/medical/morgue) +"dya" = ( +/obj/structure/bed/roller, +/obj/machinery/iv_drip, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/medical/morgue) +"dyb" = ( +/obj/structure/bed/roller, +/obj/machinery/iv_drip, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/medical/morgue) +"dyc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/medical/morgue) +"dyd" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/medical/morgue) +"dye" = ( +/obj/structure/table/glass, +/obj/item/weapon/folder/white, +/obj/item/weapon/storage/secure/briefcase, +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/obj/structure/sign/nanotrasen{ + pixel_x = -32; + pixel_y = -32 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/medical/cmo) +"dyf" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/vending/wallmed{ + pixel_x = -32; + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo) +"dyg" = ( +/turf/open/floor/plasteel/cmo, +/area/medical/cmo) +"dyh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo) +"dyi" = ( +/obj/machinery/computer/crew, +/obj/machinery/button/door{ + id = "cmoshutter"; + name = "CMO Office Shutters"; + pixel_x = 7; + pixel_y = -26; + req_access_txt = "40" + }, +/obj/machinery/keycard_auth{ + pixel_x = 7; + pixel_y = -38 + }, +/obj/machinery/light_switch{ + pixel_x = -7; + pixel_y = -26 + }, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Chief Medical Officer's Desk"; + departmentType = 5; + name = "Chief Medical Officer's RC"; + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/medical/cmo) +"dyj" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/tinted/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dyk" = ( +/obj/structure/dresser, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/cmo, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dyl" = ( +/obj/structure/mirror{ + pixel_y = -28 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/cmo, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dym" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = -26 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/cmo, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dyn" = ( +/obj/structure/closet/wardrobe/pjs, +/turf/open/floor/plasteel/cmo, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dyo" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/machinery/status_display{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/cmo, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dyp" = ( +/obj/effect/landmark{ + name = "blobstart" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dyq" = ( +/turf/closed/wall, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dyr" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/barricade/wooden, +/turf/open/floor/plating, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dys" = ( +/turf/closed/wall, +/area/security/detectives_office{ + name = "Private Investigator's Office" + }) +"dyt" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/barricade/wooden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/security/detectives_office{ + name = "Private Investigator's Office" + }) +"dyu" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard) +"dyv" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dyw" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral/side{ + dir = 10; + heat_capacity = 1e+006 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"dyx" = ( +/obj/structure/closet, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 6 + }, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"dyy" = ( +/obj/item/device/transfer_valve{ + pixel_x = -5 + }, +/obj/item/device/transfer_valve{ + pixel_x = -5 + }, +/obj/item/device/transfer_valve{ + pixel_x = 0 + }, +/obj/item/device/transfer_valve{ + pixel_x = 0 + }, +/obj/item/device/transfer_valve{ + pixel_x = 5 + }, +/obj/item/device/transfer_valve{ + pixel_x = 5 + }, +/obj/structure/table/reinforced, +/obj/machinery/requests_console{ + department = "Toxins Lab"; + departmentType = 0; + name = "Toxins RC"; + pixel_x = -32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/delivery, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dyz" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dyA" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/landmark/start{ + name = "Scientist" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dyB" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/turf/open/floor/plasteel/whitepurple/corner, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dyC" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + tag = "icon-connector_map (WEST)"; + icon_state = "connector_map"; + dir = 8 + }, +/obj/structure/sign/poster{ + icon_state = "poster7_legit"; + pixel_x = 32; + pixel_y = 0; + tag = "icon-poster7_legit" + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dyD" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/toxins/storage) +"dyE" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/toxins/storage) +"dyF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/obj/machinery/portable_atmospherics/canister/nitrogen, +/turf/open/floor/plasteel/bot, +/area/toxins/storage) +"dyG" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = 26 + }, +/obj/machinery/portable_atmospherics/canister/nitrogen, +/turf/open/floor/plasteel/bot, +/area/toxins/storage) +"dyH" = ( +/obj/structure/table, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/crowbar, +/obj/item/weapon/wrench, +/obj/item/clothing/mask/gas, +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/turf/open/floor/plasteel/bot, +/area/toxins/storage) +"dyI" = ( +/turf/closed/wall/r_wall, +/area/toxins/server{ + name = "\improper Research Division Server Room" + }) +"dyJ" = ( +/obj/machinery/airalarm{ + dir = 4; + locked = 0; + pixel_x = -23; + pixel_y = 0 + }, +/obj/structure/table, +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 + }, +/obj/item/weapon/clipboard, +/obj/item/weapon/wrench, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/toxins/server{ + name = "\improper Research Division Server Room" + }) +"dyK" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/toxins/server{ + name = "\improper Research Division Server Room" + }) +"dyL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + min_temperature = 80; + on = 1; + target_temperature = 80 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/toxins/server{ + name = "\improper Research Division Server Room" + }) +"dyM" = ( +/obj/structure/sign/securearea, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/toxins/server{ + name = "\improper Research Division Server Room" + }) +"dyN" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/assembly/robotics) +"dyO" = ( +/obj/structure/rack, +/obj/item/weapon/storage/firstaid, +/obj/item/weapon/storage/firstaid, +/obj/item/device/paicard, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/bot, +/area/assembly/robotics) +"dyP" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/assembly/robotics) +"dyQ" = ( +/obj/item/robot_suit, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/bot, +/area/assembly/robotics) +"dyR" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral, +/area/assembly/robotics) +"dyS" = ( +/turf/open/floor/plasteel/bot, +/area/assembly/robotics) +"dyT" = ( +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/assembly/robotics) +"dyU" = ( +/obj/machinery/computer/rdconsole/robotics, +/obj/structure/sign/bluecross_2{ + pixel_x = 32 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 28; + pixel_y = 26 + }, +/turf/open/floor/plasteel/bot, +/area/assembly/robotics) +"dyV" = ( +/obj/effect/landmark{ + name = "lightsout" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/aft) +"dyW" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/camera{ + c_tag = "Departures Hallway - Center"; + dir = 8; + name = "hallway camera" + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/aft) +"dyX" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/clothing/gloves/color/latex, +/turf/open/floor/plating, +/area/medical/morgue) +"dyY" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/medical/morgue) +"dyZ" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral, +/area/medical/morgue) +"dza" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral, +/area/medical/morgue) +"dzb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/medical/morgue) +"dzc" = ( +/turf/open/floor/plasteel/neutral, +/area/medical/morgue) +"dzd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/morgue) +"dze" = ( +/turf/open/floor/plating, +/area/medical/morgue) +"dzf" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral, +/area/medical/morgue) +"dzg" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/medical/morgue) +"dzh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/medical/morgue) +"dzi" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/storage/backpack/dufflebag/med, +/obj/item/device/flashlight/pen, +/turf/open/floor/plating, +/area/medical/morgue) +"dzj" = ( +/turf/closed/wall, +/area/medical/cmo) +"dzk" = ( +/obj/structure/cable/white, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/tinted/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/medical/cmo) +"dzl" = ( +/obj/machinery/door/airlock/command{ + name = "Chief Medical Officer's Quarters"; + req_access_txt = "40" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo) +"dzm" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/tinted/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/medical/cmo) +"dzn" = ( +/obj/machinery/airalarm{ + dir = 4; + locked = 0; + pixel_x = -23; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dzo" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dzp" = ( +/obj/structure/table/wood, +/obj/item/clothing/under/maid, +/obj/item/clothing/head/kitty, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dzq" = ( +/obj/machinery/vending/autodrobe{ + req_access_txt = "0" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dzr" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 1; + name = "Abandoned Theatre APC"; + pixel_x = 0; + pixel_y = 25 + }, +/turf/open/floor/plating, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dzs" = ( +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dzt" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dzu" = ( +/obj/machinery/door/window{ + dir = 8; + name = "Theatre Stage"; + req_access_txt = "0" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dzv" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dzw" = ( +/obj/structure/dresser, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dzx" = ( +/obj/structure/table/wood, +/obj/item/device/instrument/guitar, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dzy" = ( +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/photocopier, +/obj/item/weapon/newspaper{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/newspaper, +/turf/open/floor/plating, +/area/security/detectives_office{ + name = "Private Investigator's Office" + }) +"dzz" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/security/detectives_office{ + name = "Private Investigator's Office" + }) +"dzA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light_switch{ + pixel_y = 26 + }, +/turf/open/floor/plating, +/area/security/detectives_office{ + name = "Private Investigator's Office" + }) +"dzB" = ( +/obj/structure/sign/poster{ + icon_state = "poster22_legit"; + pixel_y = 32; + tag = "icon-poster22_legit" + }, +/turf/open/floor/wood{ + tag = "icon-wood-broken5"; + icon_state = "wood-broken5" + }, +/area/security/detectives_office{ + name = "Private Investigator's Office" + }) +"dzC" = ( +/obj/structure/table/wood, +/obj/item/weapon/crowbar/red, +/obj/item/weapon/book/manual/wiki/security_space_law{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/book/manual/detective, +/obj/item/device/camera/detective, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/detectives_office{ + name = "Private Investigator's Office" + }) +"dzD" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/power/solar{ + id = "aftstarboard"; + name = "Aft-Starboard Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/starboard) +"dzE" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = -26; + pixel_y = 32 + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dzF" = ( +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dzG" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/status_display{ + pixel_y = 32 + }, +/obj/item/weapon/crowbar, +/obj/item/weapon/wrench, +/obj/item/clothing/mask/gas, +/obj/machinery/camera{ + c_tag = "Science - Toxins Launch Site"; + dir = 2; + name = "science camera"; + network = list("SS13","RD") + }, +/turf/open/floor/plasteel/bot, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dzH" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dzI" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/warning, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dzJ" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/newscaster{ + pixel_x = 0; + pixel_y = 32 + }, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dzK" = ( +/turf/closed/wall, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dzL" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dzM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dzN" = ( +/obj/item/device/assembly/signaler{ + pixel_x = 0; + pixel_y = 8 + }, +/obj/item/device/assembly/signaler{ + pixel_x = -8; + pixel_y = 5 + }, +/obj/item/device/assembly/signaler{ + pixel_x = 6; + pixel_y = 5 + }, +/obj/item/device/assembly/signaler{ + pixel_x = -2; + pixel_y = -2 + }, +/obj/structure/table/reinforced, +/obj/machinery/status_display{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/warning/corner, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dzO" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/wrench, +/obj/item/weapon/screwdriver{ + pixel_y = 10 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dzP" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel/whitepurple/corner, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dzQ" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + tag = "icon-connector_map (WEST)"; + icon_state = "connector_map"; + dir = 8 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Science - Toxins Mixing Lab Aft"; + dir = 8; + name = "science camera"; + network = list("SS13","RD") + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dzR" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/toxins/storage) +"dzS" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/toxins/storage) +"dzT" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/toxins/storage) +"dzU" = ( +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/toxins/storage) +"dzV" = ( +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/toxins/storage) +"dzW" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/computer/rdservercontrol, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/toxins/server{ + name = "\improper Research Division Server Room" + }) +"dzX" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/toxins/server{ + name = "\improper Research Division Server Room" + }) +"dzY" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/toxins/server{ + name = "\improper Research Division Server Room" + }) +"dzZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/command{ + name = "Research Division Server Room"; + req_access = null; + req_access_txt = "30" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/toxins/server{ + name = "\improper Research Division Server Room" + }) +"dAa" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"dAb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral, +/area/medical/research{ + name = "Research Division" + }) +"dAc" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/corner, +/area/medical/research{ + name = "Research Division" + }) +"dAd" = ( +/obj/machinery/disposal/bin, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + dir = 8; + name = "Robotics Lab APC"; + pixel_x = -26; + pixel_y = 0 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/delivery, +/area/assembly/robotics) +"dAe" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/assembly/robotics) +"dAf" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning, +/area/assembly/robotics) +"dAg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning, +/area/assembly/robotics) +"dAh" = ( +/turf/open/floor/plasteel/warning, +/area/assembly/robotics) +"dAi" = ( +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/assembly/robotics) +"dAj" = ( +/obj/machinery/r_n_d/circuit_imprinter, +/obj/item/weapon/reagent_containers/glass/beaker/sulphuric, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/bot, +/area/assembly/robotics) +"dAk" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/obj/structure/disposalpipe/junction{ + dir = 1; + icon_state = "pipe-j1" + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/aft) +"dAl" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/centcom{ + name = "Morgue"; + req_access_txt = "6" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/medical/morgue) +"dAm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/medical/morgue) +"dAn" = ( +/turf/open/floor/plating, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg2" + }, +/area/medical/morgue) +"dAo" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral, +/area/medical/morgue) +"dAp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral, +/area/medical/morgue) +"dAq" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/morgue) +"dAr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/landmark/start{ + name = "Medical Doctor" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/morgue) +"dAs" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/landmark{ + name = "blobstart" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/morgue) +"dAt" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/medical/morgue) +"dAu" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/light_switch{ + pixel_x = 26; + pixel_y = 26 + }, +/obj/machinery/firealarm{ + dir = 4; + icon_state = "fire0"; + pixel_x = 24; + pixel_y = -26; + tag = "icon-fire0 (EAST)" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/medical/morgue) +"dAv" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/centcom{ + name = "Morgue"; + req_access_txt = "5" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/medical/morgue) +"dAw" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/medical/morgue) +"dAx" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/landmark{ + name = "blobstart" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plating, +/area/medical/morgue) +"dAy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + 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/medical/morgue) +"dAz" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/morgue) +"dAA" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/latex/nitrile, +/obj/item/clothing/suit/apron/surgical, +/obj/item/clothing/mask/breath/medical, +/turf/open/floor/plating, +/area/medical/morgue) +"dAB" = ( +/obj/structure/closet/secure_closet/CMO, +/obj/item/clothing/under/rank/nursesuit, +/obj/item/clothing/head/nursehat, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/medical/cmo) +"dAC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo) +"dAD" = ( +/obj/machinery/light_switch{ + pixel_x = 26; + pixel_y = 26 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo) +"dAE" = ( +/obj/structure/dresser, +/obj/structure/mirror{ + pixel_x = 26 + }, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo) +"dAF" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/blue, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dAG" = ( +/obj/structure/rack, +/obj/effect/landmark/costume, +/obj/effect/landmark/costume, +/obj/item/clothing/neck/tie/black, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dAH" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dAI" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dAJ" = ( +/turf/open/floor/wood, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dAK" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dAL" = ( +/turf/open/floor/plating, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dAM" = ( +/obj/structure/table/wood, +/obj/item/weapon/newspaper, +/obj/item/clothing/head/bowler, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dAN" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dAO" = ( +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dAP" = ( +/obj/structure/table/wood, +/obj/item/clothing/suit/justice, +/obj/item/clothing/head/helmet/justice/escape{ + name = "justice helmet" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dAQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/plating, +/area/security/detectives_office{ + name = "Private Investigator's Office" + }) +"dAR" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/security/detectives_office{ + name = "Private Investigator's Office" + }) +"dAS" = ( +/turf/open/floor/wood, +/area/security/detectives_office{ + name = "Private Investigator's Office" + }) +"dAT" = ( +/turf/open/floor/plating, +/area/security/detectives_office{ + name = "Private Investigator's Office" + }) +"dAU" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/item/clothing/suit/jacket{ + desc = "All the class of a trenchcoat without the security fibers."; + icon_state = "greydet"; + name = "trenchcoat" + }, +/obj/item/clothing/suit/jacket{ + desc = "All the class of a trenchcoat without the security fibers."; + icon_state = "detective"; + name = "trenchcoat" + }, +/obj/item/clothing/head/fedora, +/obj/item/clothing/head/fedora{ + icon_state = "detective" + }, +/turf/open/floor/plating, +/area/security/detectives_office{ + name = "Private Investigator's Office" + }) +"dAV" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/detectives_office{ + name = "Private Investigator's Office" + }) +"dAW" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard) +"dAX" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard) +"dAY" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard) +"dAZ" = ( +/turf/closed/wall/r_wall, +/area/toxins/test_area) +"dBa" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/tinted/fulltile, +/turf/open/floor/plating, +/area/toxins/test_area) +"dBb" = ( +/obj/structure/table/reinforced, +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the testing site."; + dir = 4; + layer = 4; + name = "Testing Site Telescreen"; + network = list("Toxins"); + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dBc" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (EAST)"; + dir = 4 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dBd" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dBe" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dBf" = ( +/obj/machinery/atmospherics/components/trinary/filter{ + density = 0; + dir = 8; + req_access = "0" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dBg" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dBh" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dBi" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dBj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dBk" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/firstaid/toxin, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dBl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dBm" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/turf/open/floor/plasteel/whitepurple/corner, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dBn" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/toxins/storage) +"dBo" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/warning, +/area/toxins/storage) +"dBp" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/warning, +/area/toxins/storage) +"dBq" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/warning, +/area/toxins/storage) +"dBr" = ( +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/toxins/storage) +"dBs" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "rdxeno"; + name = "Xenobiology Containment Door" + }, +/turf/open/floor/plating, +/area/toxins/server{ + name = "\improper Research Division Server Room" + }) +"dBt" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "rdxeno"; + name = "Xenobiology Containment Door" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/obj/machinery/door/airlock/glass_command{ + name = "Server Access"; + req_access_txt = "30" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/toxins/server{ + name = "\improper Research Division Server Room" + }) +"dBu" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "rdxeno"; + name = "Xenobiology Containment Door" + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plating, +/area/toxins/server{ + name = "\improper Research Division Server Room" + }) +"dBv" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/purple, +/area/medical/research{ + name = "Research Division" + }) +"dBw" = ( +/obj/structure/rack, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/storage/toolbox/electrical, +/obj/item/weapon/screwdriver{ + pixel_y = 5 + }, +/obj/item/device/multitool, +/obj/item/clothing/head/welding, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/bot, +/area/assembly/robotics) +"dBx" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/bot, +/area/assembly/robotics) +"dBy" = ( +/obj/structure/table, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/item/weapon/storage/box/gloves{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/bodybags, +/obj/item/borg/upgrade/rename, +/turf/open/floor/plasteel/bot, +/area/assembly/robotics) +"dBz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/delivery, +/area/assembly/robotics) +"dBA" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/clothing/gloves/color/latex, +/obj/item/weapon/surgical_drapes, +/obj/item/weapon/cautery, +/turf/open/floor/plasteel/bot, +/area/assembly/robotics) +"dBB" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1 + }, +/area/assembly/robotics) +"dBC" = ( +/obj/effect/landmark/start{ + name = "Roboticist" + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4 + }, +/area/assembly/robotics) +"dBD" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/retractor, +/obj/item/weapon/hemostat, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/obj/machinery/ai_status_display{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/bot, +/area/assembly/robotics) +"dBE" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/medical/morgue) +"dBF" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/morgue) +"dBG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/morgue) +"dBH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/neutral, +/area/medical/morgue) +"dBI" = ( +/obj/structure/bodycontainer/morgue, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/medical/morgue) +"dBJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/morgue) +"dBK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/morgue) +"dBL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/morgue) +"dBM" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/paper_bin, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/medical/morgue) +"dBN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/medical/morgue) +"dBO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/medical/morgue) +"dBP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/morgue) +"dBQ" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/morgue) +"dBR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/medical/morgue) +"dBS" = ( +/obj/structure/rack, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/crowbar, +/obj/item/weapon/storage/pill_bottle, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/medical/morgue) +"dBT" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/ai_status_display{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/medical/cmo) +"dBU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/cmo) +"dBV" = ( +/obj/effect/landmark/start{ + name = "Chief Medical Officer" + }, +/turf/open/floor/plasteel/blue, +/area/medical/cmo) +"dBW" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/cmo) +"dBX" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/cmo, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/status_display{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo) +"dBY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/rack, +/obj/effect/landmark/costume, +/obj/effect/landmark/costume, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dBZ" = ( +/obj/machinery/light_switch{ + pixel_x = -26 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dCa" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dCb" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dCc" = ( +/obj/structure/chair/wood/normal{ + tag = "icon-wooden_chair (EAST)"; + icon_state = "wooden_chair"; + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dCd" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood{ + tag = "icon-wood-broken6"; + icon_state = "wood-broken6" + }, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dCe" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/fancy/candle_box{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/fancy/candle_box, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dCf" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + dir = 8; + name = "Private Investigator's Office APC"; + pixel_x = -26; + pixel_y = 3 + }, +/turf/open/floor/plating, +/area/security/detectives_office{ + name = "Private Investigator's Office" + }) +"dCg" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/wood, +/area/security/detectives_office{ + name = "Private Investigator's Office" + }) +"dCh" = ( +/turf/open/floor/wood{ + tag = "icon-wood-broken2"; + icon_state = "wood-broken2" + }, +/area/security/detectives_office{ + name = "Private Investigator's Office" + }) +"dCi" = ( +/obj/structure/filingcabinet/security, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/security/detectives_office{ + name = "Private Investigator's Office" + }) +"dCj" = ( +/obj/structure/cable, +/obj/machinery/power/solar{ + id = "aftstarboard"; + name = "Aft-Starboard Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/starboard) +"dCk" = ( +/obj/structure/window/reinforced, +/obj/item/target, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/warnplate/end{ + tag = "icon-plating_warn_end (NORTH)"; + icon_state = "plating_warn_end"; + dir = 1 + }, +/area/toxins/test_area) +"dCl" = ( +/obj/machinery/button/massdriver{ + dir = 2; + id = "toxinsdriver"; + pixel_x = -24; + pixel_y = 0 + }, +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dCm" = ( +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (EAST)"; + dir = 4 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dCn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/warnwhite/side{ + tag = "icon-white_warn_side (EAST)"; + icon_state = "white_warn_side"; + dir = 4 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dCo" = ( +/obj/effect/landmark/start{ + name = "Scientist" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warnwhite/side{ + tag = "icon-white_warn_side (EAST)"; + icon_state = "white_warn_side"; + dir = 4 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dCp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warnwhite/side{ + tag = "icon-white_warn_side (EAST)"; + icon_state = "white_warn_side"; + dir = 4 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dCq" = ( +/obj/machinery/light_switch{ + pixel_x = 26; + pixel_y = 26 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warnwhite/side{ + tag = "icon-white_warn_side (EAST)"; + icon_state = "white_warn_side"; + dir = 4 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dCr" = ( +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/research{ + name = "Toxins Launch Site"; + req_access_txt = "8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dCs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dCt" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/landmark{ + name = "blobstart" + }, +/obj/item/device/radio/beacon, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/bot, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dCu" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dCv" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/research{ + name = "Toxins Mixing Lab"; + req_access_txt = "8" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rdtoxins"; + name = "Toxins Lab Shutters" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dCw" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light_switch{ + pixel_x = -26; + pixel_y = -26 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dCx" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dCy" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/whitepurple/side, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dCz" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/corner, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dCA" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dCB" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/airlock/research{ + name = "Toxins Secure Storage"; + req_access_txt = "8" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rdtoxins"; + name = "Toxins Lab Shutters" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning/side, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dCC" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/delivery, +/area/toxins/storage) +"dCD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/bot, +/area/toxins/storage) +"dCE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning/side, +/area/toxins/storage) +"dCF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/delivery, +/area/toxins/storage) +"dCG" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/delivery, +/area/toxins/storage) +"dCH" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + external_pressure_bound = 140; + name = "server vent"; + on = 1; + pressure_checks = 0 + }, +/turf/open/floor/plasteel/circuit/gcircuit{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/toxins/server{ + name = "\improper Research Division Server Room" + }) +"dCI" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/toxins/server{ + name = "\improper Research Division Server Room" + }) +"dCJ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + external_pressure_bound = 120; + initialize_directions = 1; + internal_pressure_bound = 4000; + name = "server vent"; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/obj/machinery/camera{ + c_tag = "Science - Server Room"; + dir = 8; + name = "science camera"; + network = list("SS13","RD") + }, +/turf/open/floor/plasteel/circuit/gcircuit{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/toxins/server{ + name = "\improper Research Division Server Room" + }) +"dCK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/machinery/camera{ + c_tag = "Science - Aft"; + dir = 4; + name = "science camera"; + network = list("SS13","RD") + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"dCL" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/medical/research{ + name = "Research Division" + }) +"dCM" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/power/apc{ + dir = 4; + name = "Research Division APC"; + pixel_x = 26; + pixel_y = 0 + }, +/turf/open/floor/plasteel/whitepurple/corner, +/area/medical/research{ + name = "Research Division" + }) +"dCN" = ( +/obj/structure/table, +/obj/item/weapon/stock_parts/cell/high, +/obj/item/weapon/stock_parts/cell/high, +/obj/machinery/cell_charger, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = -26 + }, +/turf/open/floor/plasteel/bot, +/area/assembly/robotics) +"dCO" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/bot, +/area/assembly/robotics) +"dCP" = ( +/obj/structure/closet/wardrobe/robotics_black, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/turf/open/floor/plasteel/bot, +/area/assembly/robotics) +"dCQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/delivery, +/area/assembly/robotics) +"dCR" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/device/mmi, +/obj/item/device/mmi, +/obj/item/device/mmi, +/obj/structure/sign/bluecross_2{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/bot, +/area/assembly/robotics) +"dCS" = ( +/obj/machinery/computer/operating, +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/assembly/robotics) +"dCT" = ( +/obj/structure/table/optable, +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/status_display{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/whitepurple/corner, +/area/assembly/robotics) +"dCU" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/scalpel{ + pixel_y = 16 + }, +/obj/item/weapon/circular_saw, +/obj/structure/sign/nosmoking_2{ + pixel_y = -32 + }, +/obj/structure/mirror{ + desc = "Mirror mirror on the wall, who is the most robust of them all?"; + pixel_x = 28 + }, +/turf/open/floor/plasteel/bot, +/area/assembly/robotics) +"dCV" = ( +/obj/machinery/disposal/bin, +/turf/open/floor/plating, +/area/medical/morgue) +"dCW" = ( +/obj/structure/cable/white, +/obj/machinery/power/apc{ + dir = 2; + name = "Morgue APC"; + pixel_y = -26 + }, +/turf/open/floor/plating, +/area/medical/morgue) +"dCX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/medical/morgue) +"dCY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster{ + icon_state = "poster6_legit"; + pixel_x = 0; + pixel_y = -32; + tag = "icon-poster6_legit" + }, +/obj/machinery/camera{ + c_tag = "Medbay - Morgue"; + dir = 1; + name = "medbay camera" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/medical/morgue) +"dCZ" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/medical/morgue) +"dDa" = ( +/obj/structure/bodycontainer/morgue, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/turf/open/floor/plating, +/area/medical/morgue) +"dDb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/light_construct/small, +/turf/open/floor/plating, +/area/medical/morgue) +"dDc" = ( +/obj/structure/table, +/obj/item/stack/packageWrap, +/obj/item/weapon/hand_labeler, +/turf/open/floor/plating, +/area/medical/morgue) +"dDd" = ( +/obj/structure/closet/secure_closet/medical3, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/medical/morgue) +"dDe" = ( +/obj/structure/closet/wardrobe/white/medical, +/turf/open/floor/plating, +/area/medical/morgue) +"dDf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/medical/morgue) +"dDg" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/medical/morgue) +"dDh" = ( +/obj/machinery/suit_storage_unit/cmo, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/medical/cmo) +"dDi" = ( +/obj/structure/table/glass, +/obj/machinery/computer/med_data/laptop, +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo) +"dDj" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = -26 + }, +/obj/machinery/camera{ + c_tag = "Medbay - Chief Medical Officer's Quarters"; + dir = 1; + name = "medbay camera" + }, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo) +"dDk" = ( +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = 0; + pixel_y = -32 + }, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo) +"dDl" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp, +/obj/structure/sign/nanotrasen{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo) +"dDm" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dDn" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/whitegreen/side, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dDo" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/whitegreen/corner, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dDp" = ( +/obj/structure/closet/crate, +/obj/effect/landmark/costume, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dDq" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dDr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/barricade/wooden, +/turf/open/floor/plasteel/warning/side, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dDs" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dDt" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/mob/living/simple_animal/cockroach, +/turf/open/floor/wood, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dDu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dDv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dDw" = ( +/obj/structure/chair/wood/normal{ + tag = "icon-wooden_chair (EAST)"; + icon_state = "wooden_chair"; + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dDx" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dDy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dDz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plating, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dDA" = ( +/obj/structure/mirror{ + desc = "Mirror mirror on the wall, who is the most robust of them all?"; + pixel_x = 28 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dDB" = ( +/turf/open/floor/wood{ + tag = "icon-wood-broken7"; + icon_state = "wood-broken7" + }, +/area/security/detectives_office{ + name = "Private Investigator's Office" + }) +"dDC" = ( +/obj/structure/chair/office/dark, +/turf/open/floor/wood, +/area/security/detectives_office{ + name = "Private Investigator's Office" + }) +"dDD" = ( +/obj/structure/chair/office/dark, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/security/detectives_office{ + name = "Private Investigator's Office" + }) +"dDE" = ( +/mob/living/simple_animal/cockroach, +/turf/open/floor/wood, +/area/security/detectives_office{ + name = "Private Investigator's Office" + }) +"dDF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster{ + icon_state = "poster16_legit"; + pixel_x = 32; + pixel_y = 0; + tag = "icon-poster16_legit" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/detectives_office{ + name = "Private Investigator's Office" + }) +"dDG" = ( +/obj/structure/chair, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/warnplate{ + dir = 9 + }, +/area/toxins/test_area) +"dDH" = ( +/turf/open/floor/plating, +/area/toxins/test_area) +"dDI" = ( +/obj/structure/chair, +/turf/open/floor/plating/warnplate{ + dir = 5 + }, +/area/toxins/test_area) +"dDJ" = ( +/obj/machinery/doppler_array{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26; + pixel_y = -32 + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dDK" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dDL" = ( +/obj/item/stack/rods{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/target, +/obj/item/target/syndicate, +/obj/item/target/alien, +/obj/item/target/clown, +/obj/structure/closet/crate/secure{ + desc = "A secure crate containing various materials for building a customised test-site."; + name = "Test Site Materials Crate"; + req_access_txt = "8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dDM" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/glasses/science, +/obj/item/clothing/glasses/science, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dDN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dDO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm{ + dir = 4; + icon_state = "fire0"; + pixel_x = 24; + pixel_y = 0; + tag = "icon-fire0 (EAST)" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dDP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dDQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dDR" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dDS" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dDT" = ( +/obj/structure/tank_dispenser, +/turf/open/floor/plasteel/bot, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dDU" = ( +/obj/structure/rack, +/obj/structure/extinguisher_cabinet{ + pixel_y = -32 + }, +/obj/item/clothing/suit/fire/firefighter, +/obj/item/clothing/head/hardhat/red, +/obj/item/clothing/mask/gas, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/bot, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dDV" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/delivery, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dDW" = ( +/obj/machinery/disposal/bin, +/obj/effect/decal/cleanable/dirt, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/delivery, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dDX" = ( +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/storage/toolbox/electrical, +/obj/structure/sign/poster{ + icon_state = "poster22_legit"; + pixel_y = -32; + tag = "icon-poster22_legit" + }, +/obj/structure/table/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/bot, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dDY" = ( +/obj/structure/sign/securearea, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/closed/wall/r_wall, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dDZ" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Science - Toxins Secure Storage"; + dir = 4; + name = "science camera"; + network = list("SS13","RD") + }, +/turf/open/floor/plasteel/bot, +/area/toxins/storage) +"dEa" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/bot, +/area/toxins/storage) +"dEb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning/side, +/area/toxins/storage) +"dEc" = ( +/obj/machinery/portable_atmospherics/scrubber/huge, +/turf/open/floor/plasteel/bot, +/area/toxins/storage) +"dEd" = ( +/obj/machinery/portable_atmospherics/scrubber/huge, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/apc{ + dir = 4; + name = "Toxins Storage APC"; + pixel_x = 26; + pixel_y = 0 + }, +/obj/structure/cable/white, +/turf/open/floor/plasteel/bot, +/area/toxins/storage) +"dEe" = ( +/obj/machinery/r_n_d/server/core, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/circuit/gcircuit{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/toxins/server{ + name = "\improper Research Division Server Room" + }) +"dEf" = ( +/obj/machinery/atmospherics/pipe/manifold/general/hidden, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/toxins/server{ + name = "\improper Research Division Server Room" + }) +"dEg" = ( +/obj/machinery/r_n_d/server/robotics, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/circuit/gcircuit{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/toxins/server{ + name = "\improper Research Division Server Room" + }) +"dEh" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"dEi" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/purple, +/area/medical/research{ + name = "Research Division" + }) +"dEj" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Robotics Lab Maintenance"; + req_access_txt = "29" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/assembly/robotics) +"dEk" = ( +/obj/structure/plasticflaps{ + opacity = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=1"; + dir = 1; + freq = 1400; + location = "Robotics" + }, +/turf/open/floor/plasteel/delivery, +/area/assembly/robotics) +"dEl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/machinery/firealarm{ + dir = 4; + icon_state = "fire0"; + pixel_x = 24; + pixel_y = 0; + tag = "icon-fire0 (EAST)" + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/aft) +"dEm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/medical/morgue) +"dEn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dEo" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/virology{ + name = "Virology Access"; + req_access_txt = "39" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dEp" = ( +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/wood{ + tag = "icon-wood-broken6"; + icon_state = "wood-broken6" + }, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dEq" = ( +/obj/structure/chair/wood/normal{ + tag = "icon-wooden_chair (EAST)"; + icon_state = "wooden_chair"; + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dEr" = ( +/obj/structure/table/wood, +/obj/item/clothing/under/geisha, +/obj/item/clothing/shoes/sandal, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dEs" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office{ + name = "Private Investigator's Office" + }) +"dEt" = ( +/obj/structure/table/wood, +/obj/item/weapon/folder/white{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/folder/red, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office{ + name = "Private Investigator's Office" + }) +"dEu" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office{ + name = "Private Investigator's Office" + }) +"dEv" = ( +/obj/structure/table/wood, +/obj/item/clothing/gloves/color/black, +/obj/item/weapon/storage/box/evidence, +/obj/item/device/taperecorder, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/security/detectives_office{ + name = "Private Investigator's Office" + }) +"dEw" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/warnplate{ + dir = 9 + }, +/area/toxins/test_area) +"dEx" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/warnplate/corner{ + dir = 4 + }, +/area/toxins/test_area) +"dEy" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating/warnplate/corner{ + dir = 8 + }, +/area/toxins/test_area) +"dEz" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plating/warnplate{ + dir = 5 + }, +/area/toxins/test_area) +"dEA" = ( +/obj/structure/sign/vacuum, +/turf/closed/wall, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dEB" = ( +/obj/structure/sign/securearea, +/turf/closed/wall, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dEC" = ( +/obj/machinery/door/window/southleft{ + name = "Mass Driver Door"; + req_access_txt = "7" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/loadingarea, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dED" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dEE" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Toxins Maintenance"; + req_access_txt = "8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dEF" = ( +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, +/turf/open/floor/plasteel/bot, +/area/toxins/storage) +"dEG" = ( +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/turf/open/floor/plasteel/bot, +/area/toxins/storage) +"dEH" = ( +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/toxins/storage) +"dEI" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + name = "Break Room"; + req_access_txt = "47" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"dEJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 9 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dEK" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dEL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dEM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/delivery, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dEN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dEO" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dEP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 5 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dEQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/hallway/primary/aft) +"dER" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/hallway/primary/aft) +"dES" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/aft) +"dET" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/aft) +"dEU" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/hallway/primary/aft) +"dEV" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/hallway/primary/aft) +"dEW" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) +"dEX" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) +"dEY" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) +"dEZ" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) +"dFa" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) +"dFb" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) +"dFc" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) +"dFd" = ( +/obj/structure/girder, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) +"dFe" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/rack, +/obj/item/weapon/crowbar/red, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) +"dFf" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/landmark{ + name = "blobstart" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) +"dFg" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/delivery, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) +"dFh" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) +"dFi" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 5 + }, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) +"dFj" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dFk" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dFl" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 4 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dFm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 9 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dFn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dFo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dFp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dFq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dFr" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/status_display{ + pixel_x = -32 + }, +/turf/open/floor/wood{ + tag = "icon-wood-broken"; + icon_state = "wood-broken" + }, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dFs" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dFt" = ( +/obj/structure/table/wood, +/obj/item/clothing/head/papersack/smiley, +/obj/item/weapon/pen, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dFu" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dFv" = ( +/turf/open/floor/wood{ + tag = "icon-wood-broken"; + icon_state = "wood-broken" + }, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dFw" = ( +/obj/structure/table/wood, +/obj/item/clothing/suit/cardborg, +/obj/item/clothing/head/cardborg, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dFx" = ( +/obj/structure/frame/computer, +/obj/item/weapon/circuitboard/computer/secure_data, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/status_display{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office{ + name = "Private Investigator's Office" + }) +"dFy" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office{ + name = "Private Investigator's Office" + }) +"dFz" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift{ + pixel_x = 6 + }, +/obj/item/weapon/storage/fancy/cigarettes/cigpack_carp{ + pixel_x = -3 + }, +/obj/item/weapon/lighter, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office{ + name = "Private Investigator's Office" + }) +"dFA" = ( +/turf/open/floor/wood{ + tag = "icon-wood-broken3"; + icon_state = "wood-broken3" + }, +/area/security/detectives_office{ + name = "Private Investigator's Office" + }) +"dFB" = ( +/obj/structure/rack, +/obj/item/weapon/storage/briefcase{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/storage/secure/briefcase, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/security/detectives_office{ + name = "Private Investigator's Office" + }) +"dFC" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable, +/turf/open/space, +/area/solar/starboard) +"dFD" = ( +/turf/closed/indestructible/opshuttle, +/area/toxins/test_area) +"dFE" = ( +/obj/item/target, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera{ + active_power_usage = 0; + c_tag = "Bomb Test Site"; + desc = "A specially-reinforced camera with a long lasting battery, used to monitor the bomb testing site."; + dir = 4; + invuln = 1; + light = null; + name = "hardened testing camera"; + network = list("Toxins"); + start_active = 1; + use_power = 0 + }, +/turf/open/floor/plating, +/area/toxins/test_area) +"dFF" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/toxins/test_area) +"dFG" = ( +/obj/item/device/radio/beacon, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/toxins/test_area) +"dFH" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/warnplate/side{ + tag = "icon-plating_warn_side (WEST)"; + icon_state = "plating_warn_side"; + dir = 8 + }, +/area/toxins/test_area) +"dFI" = ( +/turf/open/floor/plating/warnplate/end{ + tag = "icon-plating_warn_end (EAST)"; + icon_state = "plating_warn_end"; + dir = 4 + }, +/area/toxins/test_area) +"dFJ" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dFK" = ( +/turf/open/floor/plating/warnplate{ + dir = 4; + luminosity = 2; + initial_gas_mix = "o2=0.01;n2=0.01"; + temperature = 2.7 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dFL" = ( +/obj/machinery/door/poddoor{ + id = "toxinsdriver"; + name = "Toxins Launcher Bay Door" + }, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dFM" = ( +/turf/open/floor/plating, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dFN" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/warnplate{ + dir = 4; + luminosity = 2; + initial_gas_mix = "o2=0.01;n2=0.01"; + temperature = 2.7 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dFO" = ( +/obj/machinery/mass_driver{ + dir = 8; + id = "toxinsdriver" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"dFP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dFQ" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/delivery, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dFR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dFS" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dFT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/obj/item/weapon/crowbar/red, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dFU" = ( +/obj/structure/girder, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dFV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dFW" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dFX" = ( +/turf/open/floor/plasteel/neutral/side{ + dir = 5 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dFY" = ( +/turf/closed/wall/r_wall, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dFZ" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel/bot, +/area/toxins/storage) +"dGa" = ( +/obj/machinery/portable_atmospherics/canister/toxins, +/turf/open/floor/plasteel/bot, +/area/toxins/storage) +"dGb" = ( +/obj/structure/urinal{ + pixel_y = 28 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/research{ + name = "Research Division" + }) +"dGc" = ( +/obj/structure/table/wood, +/obj/machinery/microwave{ + desc = "Cooks and boils stuff, somehow."; + pixel_x = -3; + pixel_y = 5 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 9 + }, +/area/medical/research{ + name = "Research Division" + }) +"dGd" = ( +/obj/structure/table/wood, +/obj/structure/sign/poster{ + icon_state = "poster22_legit"; + pixel_y = 32; + tag = "icon-poster22_legit" + }, +/obj/item/weapon/storage/box/donkpockets, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"dGe" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_y = 26 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"dGf" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"dGg" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 5 + }, +/area/medical/research{ + name = "Research Division" + }) +"dGh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 10; + heat_capacity = 1e+006 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dGi" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dGj" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dGk" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dGl" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dGm" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dGn" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dGo" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/hallway/primary/aft) +"dGp" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/delivery, +/area/hallway/primary/aft) +"dGq" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/primary/aft) +"dGr" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/aft) +"dGs" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/aft) +"dGt" = ( +/obj/structure/closet/firecloset, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/delivery, +/area/hallway/primary/aft) +"dGu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/hallway/primary/aft) +"dGv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/space_heater, +/turf/open/floor/plasteel/neutral/side{ + dir = 10 + }, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) +"dGw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet, +/obj/item/weapon/storage/box/bodybags, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) +"dGx" = ( +/obj/structure/girder, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) +"dGy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate, +/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{ + name = "Aft Maintenance" + }) +"dGz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) +"dGA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) +"dGB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/white, +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 2; + name = "Aft Maintenance APC"; + pixel_x = 1; + pixel_y = -24 + }, +/turf/open/floor/plating, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) +"dGC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) +"dGD" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) +"dGE" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) +"dGF" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) +"dGG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) +"dGH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) +"dGI" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) +"dGJ" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) +"dGK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) +"dGL" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) +"dGM" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) +"dGN" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dGO" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dGP" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/landmark{ + name = "lightsout" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_Toxins = 0 + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/bot, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dGQ" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (EAST)"; + icon_state = "whitegreen"; + dir = 4 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dGR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dGS" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dGT" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dGU" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dGV" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dGW" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dGX" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 6 + }, +/area/maintenance/starboard{ + name = "Aft Starboard Maintenance" + }) +"dGY" = ( +/obj/structure/dresser, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dGZ" = ( +/obj/structure/table/wood, +/obj/item/weapon/wrench, +/obj/item/weapon/storage/secure/briefcase{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/briefcase, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dHa" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dHb" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/wood{ + tag = "icon-wood-broken3"; + icon_state = "wood-broken3" + }, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dHc" = ( +/obj/machinery/vending/cigarette, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dHd" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/piano, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dHe" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/stool/bar, +/turf/open/floor/plating, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dHf" = ( +/obj/structure/table/wood, +/obj/item/weapon/lipstick/random{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/lipstick/random{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/weapon/lipstick/random, +/turf/open/floor/plating, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dHg" = ( +/obj/item/device/instrument/violin, +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dHh" = ( +/obj/structure/frame/computer, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office{ + name = "Private Investigator's Office" + }) +"dHi" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office{ + name = "Private Investigator's Office" + }) +"dHj" = ( +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office{ + name = "Private Investigator's Office" + }) +"dHk" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/security/detectives_office{ + name = "Private Investigator's Office" + }) +"dHl" = ( +/obj/structure/dresser, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/security/detectives_office{ + name = "Private Investigator's Office" + }) +"dHm" = ( +/obj/structure/lattice/catwalk, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/space, +/area/solar/starboard) +"dHn" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plating/warnplate{ + dir = 10 + }, +/area/toxins/test_area) +"dHo" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/warnplate/corner{ + dir = 1 + }, +/area/toxins/test_area) +"dHp" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/remains/human, +/turf/open/floor/plating, +/area/toxins/test_area) +"dHq" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/warnplate/corner, +/area/toxins/test_area) +"dHr" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/warnplate{ + dir = 6 + }, +/area/toxins/test_area) +"dHs" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dHt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dHu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dHv" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dHw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dHx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dHy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dHz" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dHA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/warning/side, +/area/toxins/storage) +"dHB" = ( +/obj/machinery/portable_atmospherics/canister/toxins, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/toxins/storage) +"dHC" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Bathroom" + }, +/turf/open/floor/plasteel/warning/side, +/area/medical/research{ + name = "Research Division" + }) +"dHD" = ( +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/medical/research{ + name = "Research Division" + }) +"dHE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/redyellow, +/area/medical/research{ + name = "Research Division" + }) +"dHF" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/redyellow, +/area/medical/research{ + name = "Research Division" + }) +"dHG" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/redyellow, +/area/medical/research{ + name = "Research Division" + }) +"dHH" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"dHI" = ( +/obj/structure/girder, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dHJ" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dHK" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/glass_command{ + cyclelinkeddir = 0; + name = "Customs Desk"; + req_access_txt = "19" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/bridge{ + name = "Customs" + }) +"dHL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/bridge{ + name = "Customs" + }) +"dHM" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Departures Lounge" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/hallway/primary/aft) +"dHN" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Departures Lounge" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/hallway/primary/aft) +"dHO" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Departures Lounge" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/hallway/primary/aft) +"dHP" = ( +/turf/closed/wall, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) +"dHQ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) +"dHR" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Virology - Medbay Access"; + dir = 4; + name = "virology camera" + }, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dHS" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/bot, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dHT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (EAST)"; + icon_state = "whitegreen"; + dir = 4 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dHU" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/crew_quarters/theatre{ + name = "Abandoned Theatre" + }) +"dHV" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plating/warnplate{ + dir = 10 + }, +/area/toxins/test_area) +"dHW" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/warnplate{ + dir = 6 + }, +/area/toxins/test_area) +"dHX" = ( +/obj/machinery/door/airlock/external{ + name = "External Airlock"; + req_access_txt = "13" + }, +/turf/open/floor/plasteel/warning/side, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dHY" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dHZ" = ( +/obj/machinery/door/airlock/external{ + name = "External Airlock"; + req_access_txt = "13" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning/side, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dIa" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/delivery, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dIb" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dIc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dId" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dIe" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 10 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dIf" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dIg" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dIh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dIi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dIj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dIk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dIl" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/toxins/storage) +"dIm" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning/side, +/area/toxins/storage) +"dIn" = ( +/obj/structure/sink{ + dir = 8; + icon_state = "sink"; + pixel_x = -12 + }, +/obj/structure/mirror{ + desc = "Mirror mirror on the wall, who is the most robust of them all?"; + pixel_x = 28 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark{ + name = "blobstart" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/medical/research{ + name = "Research Division" + }) +"dIo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/medical/research{ + name = "Research Division" + }) +"dIp" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/medical/research{ + name = "Research Division" + }) +"dIq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/redyellow, +/area/medical/research{ + name = "Research Division" + }) +"dIr" = ( +/obj/effect/landmark/start{ + name = "Scientist" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/redyellow, +/area/medical/research{ + name = "Research Division" + }) +"dIs" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/redyellow, +/area/medical/research{ + name = "Research Division" + }) +"dIt" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/obj/item/weapon/reagent_containers/food/drinks/soda_cans/dr_gibb, +/obj/machinery/camera{ + c_tag = "Science - Break Room"; + dir = 8; + name = "science camera"; + network = list("SS13","RD") + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"dIu" = ( +/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/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dIv" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 5 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dIw" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/airalarm{ + dir = 4; + locked = 0; + pixel_x = -23; + pixel_y = 0 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_y = 26 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 9 + }, +/area/bridge{ + name = "Customs" + }) +"dIx" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/light_switch{ + pixel_x = 26; + pixel_y = 26 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/blue/side{ + dir = 1 + }, +/area/bridge{ + name = "Customs" + }) +"dIy" = ( +/obj/machinery/photocopier, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = 32; + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/blue/side{ + dir = 1 + }, +/area/bridge{ + name = "Customs" + }) +"dIz" = ( +/obj/structure/filingcabinet/medical, +/obj/machinery/firealarm{ + dir = 4; + icon_state = "fire0"; + pixel_x = 24; + pixel_y = 0; + tag = "icon-fire0 (EAST)" + }, +/turf/open/floor/plasteel/blue/side{ + dir = 5 + }, +/area/bridge{ + name = "Customs" + }) +"dIA" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = 32 + }, +/obj/machinery/camera{ + c_tag = "Departures Hallway - Aft"; + dir = 4; + name = "hallway camera" + }, +/turf/open/floor/plasteel/bot, +/area/hallway/primary/aft) +"dIB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/escape{ + tag = "icon-escape (NORTH)"; + icon_state = "escape"; + dir = 1 + }, +/area/hallway/primary/aft) +"dIC" = ( +/turf/open/floor/plasteel/escape{ + tag = "icon-escape (NORTH)"; + icon_state = "escape"; + dir = 1 + }, +/area/hallway/primary/aft) +"dID" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/escape{ + tag = "icon-escape (NORTH)"; + icon_state = "escape"; + dir = 1 + }, +/area/hallway/primary/aft) +"dIE" = ( +/obj/structure/table, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/newscaster{ + pixel_x = 32 + }, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/delivery, +/area/hallway/primary/aft) +"dIF" = ( +/obj/machinery/light/small, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dIG" = ( +/obj/machinery/light/small, +/obj/machinery/iv_drip, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whitegreen/corner, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dIH" = ( +/obj/item/stack/cable_coil, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard) +"dII" = ( +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/item/target, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/warnplate/end, +/area/toxins/test_area) +"dIJ" = ( +/turf/closed/wall, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dIK" = ( +/turf/closed/wall, +/area/library{ + name = "Abandoned Library" + }) +"dIL" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/barricade/wooden, +/turf/open/floor/plating, +/area/library{ + name = "Abandoned Library" + }) +"dIM" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/barricade/wooden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/library{ + name = "Abandoned Library" + }) +"dIN" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/barricade/wooden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/library{ + name = "Abandoned Library" + }) +"dIO" = ( +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dIP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dIQ" = ( +/turf/closed/wall/r_wall, +/area/toxins/storage) +"dIR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock{ + name = "Bathroom" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"dIS" = ( +/obj/machinery/vending/coffee, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/medical/research{ + name = "Research Division" + }) +"dIT" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_Toxins = 0 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/redyellow, +/area/medical/research{ + name = "Research Division" + }) +"dIU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/redyellow, +/area/medical/research{ + name = "Research Division" + }) +"dIV" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/redyellow, +/area/medical/research{ + name = "Research Division" + }) +"dIW" = ( +/obj/structure/table/wood, +/obj/machinery/newscaster{ + pixel_x = 32 + }, +/obj/item/weapon/clipboard, +/obj/item/weapon/folder, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"dIX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dIY" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/landmark{ + name = "blobstart" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dIZ" = ( +/obj/machinery/computer/med_data, +/obj/machinery/status_display{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 10 + }, +/area/bridge{ + name = "Customs" + }) +"dJa" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/bridge{ + name = "Customs" + }) +"dJb" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/bot, +/area/bridge{ + name = "Customs" + }) +"dJc" = ( +/obj/structure/table/reinforced, +/obj/item/stack/packageWrap, +/obj/item/weapon/hand_labeler, +/turf/open/floor/plasteel/blue/side{ + dir = 6 + }, +/area/bridge{ + name = "Customs" + }) +"dJd" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/bridge{ + name = "Customs" + }) +"dJe" = ( +/turf/open/floor/plasteel/bot, +/area/hallway/primary/aft) +"dJf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/aft) +"dJg" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/aft) +"dJh" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/delivery, +/area/hallway/primary/aft) +"dJi" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/hallway/primary/aft) +"dJj" = ( +/obj/structure/shuttle/engine/propulsion{ + tag = "icon-propulsion (NORTH)"; + icon_state = "propulsion"; + dir = 1 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/shuttle/escape) +"dJk" = ( +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/escape) +"dJl" = ( +/turf/closed/wall/r_wall, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dJm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dJn" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/virology{ + name = "Virology Access"; + req_access_txt = "39" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dJo" = ( +/obj/structure/sign/biohazard, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/medical/medbay{ + name = "Medbay Central" + }) +"dJp" = ( +/turf/closed/wall/r_wall, +/area/medical/virology) +"dJq" = ( +/obj/structure/grille, +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/medical/virology) +"dJr" = ( +/obj/structure/grille, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/medical/virology) +"dJs" = ( +/obj/structure/grille, +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/medical/virology) +"dJt" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plating, +/area/library{ + name = "Abandoned Library" + }) +"dJu" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/folder, +/obj/item/weapon/pen, +/turf/open/floor/plating, +/area/library{ + name = "Abandoned Library" + }) +"dJv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/library{ + name = "Abandoned Library" + }) +"dJw" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/grimy, +/area/library{ + name = "Abandoned Library" + }) +"dJx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/grimy, +/area/library{ + name = "Abandoned Library" + }) +"dJy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plasteel/black, +/area/library{ + name = "Abandoned Library" + }) +"dJz" = ( +/obj/structure/table/wood, +/obj/item/weapon/dice/d20, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/library{ + name = "Abandoned Library" + }) +"dJA" = ( +/turf/open/floor/plasteel/grimy, +/area/library{ + name = "Abandoned Library" + }) +"dJB" = ( +/obj/structure/chair/office/dark, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/grimy, +/area/library{ + name = "Abandoned Library" + }) +"dJC" = ( +/obj/structure/chair/office/dark, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/library{ + name = "Abandoned Library" + }) +"dJD" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/grimy, +/area/library{ + name = "Abandoned Library" + }) +"dJE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dJF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dJG" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dJH" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dJI" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/warning, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dJJ" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dJK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 1; + name = "Aft Port Maintenance APC"; + pixel_x = 0; + pixel_y = 25 + }, +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dJL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/oil, +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dJM" = ( +/obj/structure/toilet{ + tag = "icon-toilet00 (WEST)"; + icon_state = "toilet00"; + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small, +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/research{ + name = "Research Division" + }) +"dJN" = ( +/obj/machinery/disposal/bin, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/medical/research{ + name = "Research Division" + }) +"dJO" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral/side, +/area/medical/research{ + name = "Research Division" + }) +"dJP" = ( +/obj/machinery/vending/cola, +/obj/machinery/light, +/obj/machinery/status_display{ + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side, +/area/medical/research{ + name = "Research Division" + }) +"dJQ" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/neutral/side, +/area/medical/research{ + name = "Research Division" + }) +"dJR" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/neutral/side{ + dir = 6 + }, +/area/medical/research{ + name = "Research Division" + }) +"dJS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dJT" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dJU" = ( +/obj/machinery/computer/card, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + dir = 8; + name = "Departures Customs APC"; + pixel_x = -26; + pixel_y = 3 + }, +/obj/machinery/camera{ + c_tag = "Departures Customs"; + dir = 4; + name = "customs camera" + }, +/turf/open/floor/plasteel/blue, +/area/bridge{ + name = "Customs" + }) +"dJV" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/neutral, +/area/bridge{ + name = "Customs" + }) +"dJW" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral, +/area/bridge{ + name = "Customs" + }) +"dJX" = ( +/obj/structure/table/reinforced, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/item/weapon/folder/blue, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/blue, +/area/bridge{ + name = "Customs" + }) +"dJY" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/door/window/brigdoor/southright{ + dir = 8; + name = "Customs Desk"; + req_access_txt = "19" + }, +/turf/open/floor/plasteel/warning/side, +/area/bridge{ + name = "Customs" + }) +"dJZ" = ( +/turf/open/floor/plasteel/delivery, +/area/hallway/primary/aft) +"dKa" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/bot, +/area/hallway/primary/aft) +"dKb" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/aft) +"dKc" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel/delivery, +/area/hallway/primary/aft) +"dKd" = ( +/obj/structure/window/reinforced, +/obj/structure/shuttle/engine/heater{ + tag = "icon-heater (NORTH)"; + icon_state = "heater"; + dir = 1 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/shuttle/escape) +"dKe" = ( +/obj/structure/sink{ + dir = 8; + icon_state = "sink"; + pixel_x = -12 + }, +/obj/machinery/shower{ + dir = 8; + icon_state = "shower"; + name = "emergency shower" + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24; + pixel_y = 0 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/bot, +/area/medical/virology) +"dKf" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warnwhite{ + tag = "icon-white_warn (NORTHWEST)"; + icon_state = "white_warn"; + dir = 9 + }, +/area/medical/virology) +"dKg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/camera{ + c_tag = "Virology - Airlock"; + dir = 2; + name = "virology camera" + }, +/turf/open/floor/plasteel/delivery, +/area/medical/virology) +"dKh" = ( +/obj/structure/grille, +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/obj/structure/window/reinforced/fulltile, +/obj/structure/sign/vacuum, +/turf/open/floor/plating, +/area/medical/virology) +"dKi" = ( +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 1 + }, +/area/medical/virology) +"dKj" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 1 + }, +/area/medical/virology) +"dKk" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 4 + }, +/area/medical/virology) +"dKl" = ( +/turf/closed/wall, +/area/medical/virology) +"dKm" = ( +/obj/structure/table/glass, +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/obj/item/weapon/paper_bin, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_y = 26 + }, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = -32; + pixel_y = 32 + }, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 1 + }, +/area/medical/virology) +"dKn" = ( +/obj/structure/table/glass, +/obj/machinery/computer/med_data/laptop, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 1 + }, +/area/medical/virology) +"dKo" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 4 + }, +/area/medical/virology) +"dKp" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/sign/nanotrasen{ + pixel_x = 32; + pixel_y = 32 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/camera{ + c_tag = "Virology - Break Room"; + dir = 2; + name = "virology camera" + }, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 4 + }, +/area/medical/virology) +"dKq" = ( +/obj/structure/grille, +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/medical/virology) +"dKr" = ( +/obj/structure/table_frame/wood, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/library{ + name = "Abandoned Library" + }) +"dKs" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/library{ + name = "Abandoned Library" + }) +"dKt" = ( +/turf/open/floor/plasteel/black, +/area/library{ + name = "Abandoned Library" + }) +"dKu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/grimy, +/area/library{ + name = "Abandoned Library" + }) +"dKv" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/library{ + name = "Abandoned Library" + }) +"dKw" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/grimy, +/area/library{ + name = "Abandoned Library" + }) +"dKx" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt, +/obj/item/device/paicard, +/turf/open/floor/carpet, +/area/library{ + name = "Abandoned Library" + }) +"dKy" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/pill_bottle/dice, +/turf/open/floor/carpet, +/area/library{ + name = "Abandoned Library" + }) +"dKz" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/library{ + name = "Abandoned Library" + }) +"dKA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dKB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dKC" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dKD" = ( +/obj/machinery/atmospherics/components/trinary/filter{ + density = 0; + dir = 8; + req_access = "0" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/neutral, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dKE" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/neutral, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dKF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dKG" = ( +/obj/machinery/droneDispenser, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dKH" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/sheet/metal{ + amount = 30 + }, +/obj/item/stack/sheet/glass{ + amount = 30 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dKI" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Science Maintenance"; + req_access_txt = "47" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"dKJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dKK" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dKL" = ( +/obj/machinery/computer/crew, +/obj/machinery/ai_status_display{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 9 + }, +/area/bridge{ + name = "Customs" + }) +"dKM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral, +/area/bridge{ + name = "Customs" + }) +"dKN" = ( +/obj/structure/table/reinforced, +/obj/machinery/newscaster{ + pixel_x = 32; + pixel_y = -32 + }, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/blue/side{ + dir = 5 + }, +/area/bridge{ + name = "Customs" + }) +"dKO" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/bridge{ + name = "Customs" + }) +"dKP" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/bot, +/area/hallway/primary/aft) +"dKQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/aft) +"dKR" = ( +/obj/item/device/radio/beacon, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/aft) +"dKS" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/escape) +"dKT" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"dKU" = ( +/obj/structure/window/shuttle, +/obj/structure/grille, +/turf/open/floor/plating, +/area/shuttle/escape) +"dKV" = ( +/obj/structure/sink{ + dir = 8; + icon_state = "sink"; + pixel_x = -12 + }, +/obj/structure/mirror{ + desc = "Mirror mirror on the wall, who is the most robust of them all?"; + pixel_x = -28 + }, +/obj/machinery/shower{ + dir = 8; + icon_state = "shower"; + name = "emergency shower" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/bot, +/area/medical/virology) +"dKW" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warnwhite{ + tag = "icon-white_warn (SOUTHWEST)"; + icon_state = "white_warn"; + dir = 10 + }, +/area/medical/virology) +"dKX" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/warnwhite{ + tag = "icon-white_warn (SOUTHEAST)"; + icon_state = "white_warn"; + dir = 6 + }, +/area/medical/virology) +"dKY" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/virology{ + name = "Virology Access"; + req_access_txt = "39" + }, +/turf/open/floor/plasteel/warning/side, +/area/medical/virology) +"dKZ" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/medical/virology) +"dLa" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/medical/virology) +"dLb" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/virology{ + name = "Virology Access"; + req_access_txt = "39" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning/side, +/area/medical/virology) +"dLc" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/light_switch{ + pixel_x = -26; + pixel_y = 26 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 1 + }, +/area/medical/virology) +"dLd" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/virology) +"dLe" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 4 + }, +/area/medical/virology) +"dLf" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/virology) +"dLg" = ( +/obj/structure/table/glass, +/obj/item/weapon/clipboard, +/obj/item/toy/figure/virologist, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 1 + }, +/area/medical/virology) +"dLh" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/obj/effect/landmark/start{ + name = "Virologist" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/virology) +"dLi" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/green, +/area/medical/virology) +"dLj" = ( +/obj/structure/sign/poster{ + icon_state = "poster3_legit"; + pixel_x = 0; + pixel_y = 0; + tag = "icon-poster3_legit" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/medical/virology) +"dLk" = ( +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/obj/structure/table/glass, +/obj/item/device/flashlight/lamp, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault, +/area/medical/virology) +"dLl" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/bed, +/obj/item/weapon/bedsheet/medical, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/vault, +/area/medical/virology) +"dLm" = ( +/obj/structure/table/glass, +/obj/machinery/computer/med_data/laptop, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_y = 26 + }, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/vault, +/area/medical/virology) +"dLn" = ( +/turf/open/space, +/area/toxins/test_area) +"dLo" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/library{ + name = "Abandoned Library" + }) +"dLp" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood{ + icon_state = "wood-broken4" + }, +/area/library{ + name = "Abandoned Library" + }) +"dLq" = ( +/turf/open/floor/wood{ + tag = "icon-wood-broken2"; + icon_state = "wood-broken2" + }, +/area/library{ + name = "Abandoned Library" + }) +"dLr" = ( +/obj/structure/bookcase, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/wood, +/area/library{ + name = "Abandoned Library" + }) +"dLs" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/library{ + name = "Abandoned Library" + }) +"dLt" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/library{ + name = "Abandoned Library" + }) +"dLu" = ( +/obj/structure/table/wood, +/obj/item/toy/cards/deck/cas{ + pixel_x = -5; + pixel_y = 5 + }, +/obj/item/toy/cards/deck/cas/black{ + pixel_x = 5; + pixel_y = 5 + }, +/turf/open/floor/carpet, +/area/library{ + name = "Abandoned Library" + }) +"dLv" = ( +/obj/structure/table/wood, +/obj/item/weapon/clipboard, +/obj/item/weapon/folder/red, +/turf/open/floor/carpet, +/area/library{ + name = "Abandoned Library" + }) +"dLw" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plating, +/area/library{ + name = "Abandoned Library" + }) +"dLx" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 10 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dLy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dLz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dLA" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dLB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dLC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dLD" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dLE" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dLF" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 9 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dLG" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/mob/living/simple_animal/cockroach, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dLH" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + 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/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dLI" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dLJ" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dLK" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dLL" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 5 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dLM" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dLN" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 10 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dLO" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/delivery, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dLP" = ( +/obj/structure/table/reinforced, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/structure/sign/poster{ + icon_state = "poster16_legit"; + pixel_y = -32; + tag = "icon-poster16_legit" + }, +/obj/item/weapon/crowbar, +/obj/item/device/radio, +/turf/open/floor/plasteel/blue/side{ + dir = 10 + }, +/area/bridge{ + name = "Customs" + }) +"dLQ" = ( +/obj/structure/table/reinforced, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/item/weapon/storage/box/ids, +/turf/open/floor/plasteel/blue/side, +/area/bridge{ + name = "Customs" + }) +"dLR" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/blue/side, +/area/bridge{ + name = "Customs" + }) +"dLS" = ( +/obj/structure/closet/secure_closet{ + anchored = 1; + name = "Contraband Locker"; + req_access_txt = "19" + }, +/obj/item/weapon/storage/secure/briefcase, +/turf/open/floor/plasteel/blue/side{ + dir = 6 + }, +/area/bridge{ + name = "Customs" + }) +"dLT" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plasteel/bot, +/area/hallway/primary/aft) +"dLU" = ( +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j2"; + dir = 2 + }, +/turf/open/floor/plasteel/escape, +/area/hallway/primary/aft) +"dLV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/escape, +/area/hallway/primary/aft) +"dLW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/escape, +/area/hallway/primary/aft) +"dLX" = ( +/obj/machinery/disposal/bin, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/structure/sign/poster{ + icon_state = "poster4_legit"; + pixel_x = 32; + pixel_y = 0; + tag = "icon-poster4_legit" + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/delivery, +/area/hallway/primary/aft) +"dLY" = ( +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/structure/closet/crate/internals, +/turf/open/floor/plasteel/bot, +/area/shuttle/escape) +"dLZ" = ( +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/shuttle/escape) +"dMa" = ( +/obj/item/weapon/defibrillator/loaded, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/cmo, +/area/shuttle/escape) +"dMb" = ( +/obj/machinery/computer/operating, +/turf/open/floor/plasteel/cmo, +/area/shuttle/escape) +"dMc" = ( +/obj/structure/table/optable, +/obj/item/weapon/surgical_drapes, +/turf/open/floor/plasteel/cmo, +/area/shuttle/escape) +"dMd" = ( +/obj/item/weapon/scalpel{ + pixel_y = 12 + }, +/obj/item/weapon/circular_saw, +/obj/item/weapon/retractor{ + pixel_x = 4 + }, +/obj/item/weapon/hemostat{ + pixel_x = -4 + }, +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/mask/surgical, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/cmo, +/area/shuttle/escape) +"dMe" = ( +/obj/structure/closet/l3closet/virology, +/obj/structure/sign/biohazard{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/bot, +/area/medical/virology) +"dMf" = ( +/obj/structure/closet/l3closet/virology, +/obj/machinery/light/small, +/obj/structure/extinguisher_cabinet{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/bot, +/area/medical/virology) +"dMg" = ( +/obj/structure/closet/emcloset, +/obj/structure/sign/securearea{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/bot, +/area/medical/virology) +"dMh" = ( +/obj/structure/grille, +/obj/structure/cable/white, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/medical/virology) +"dMi" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24; + pixel_y = 0 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 1 + }, +/area/medical/virology) +"dMj" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/green, +/area/medical/virology) +"dMk" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 4 + }, +/area/medical/virology) +"dMl" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/virology{ + name = "Virology Break Room"; + req_access_txt = "39" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning/side, +/area/medical/virology) +"dMm" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 8 + }, +/area/medical/virology) +"dMn" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/green, +/area/medical/virology) +"dMo" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/virology) +"dMp" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/whitegreen/corner, +/area/medical/virology) +"dMq" = ( +/obj/machinery/door/airlock/virology{ + name = "Virology Cabin"; + req_access_txt = "39" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning/side, +/area/medical/virology) +"dMr" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/light_switch{ + pixel_x = -26; + pixel_y = -26 + }, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 1 + }, +/area/medical/virology) +"dMs" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/effect/landmark/start{ + name = "Virologist" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/green, +/area/medical/virology) +"dMt" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/status_display{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 4 + }, +/area/medical/virology) +"dMu" = ( +/obj/structure/bookcase, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/wood, +/area/library{ + name = "Abandoned Library" + }) +"dMv" = ( +/obj/structure/bookcase, +/turf/open/floor/wood, +/area/library{ + name = "Abandoned Library" + }) +"dMw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plating, +/area/library{ + name = "Abandoned Library" + }) +"dMx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/library{ + name = "Abandoned Library" + }) +"dMy" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/plasteel/grimy, +/area/library{ + name = "Abandoned Library" + }) +"dMz" = ( +/turf/open/floor/wood, +/area/library{ + name = "Abandoned Library" + }) +"dMA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plating, +/area/library{ + name = "Abandoned Library" + }) +"dMB" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/library{ + name = "Abandoned Library" + }) +"dMC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dMD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dME" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/chapel/office) +"dMF" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Chapel Maintenance"; + req_access_txt = "27" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/chapel/office) +"dMG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/chapel/office) +"dMH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dMI" = ( +/obj/structure/girder, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dMJ" = ( +/obj/structure/closet, +/obj/effect/landmark/costume, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dMK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dML" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/delivery, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dMM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dMN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/reagent_dispensers/watertank, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dMO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dMP" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dMQ" = ( +/turf/closed/wall, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dMR" = ( +/obj/structure/cable/white, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dMS" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dMT" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dMU" = ( +/obj/structure/sign/directions/evac{ + pixel_y = -8 + }, +/obj/structure/sign/directions/science{ + dir = 1 + }, +/obj/structure/sign/directions/engineering{ + dir = 1; + pixel_y = 8 + }, +/turf/closed/wall, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dMV" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Departures Lounge" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dMW" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Departures Lounge" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dMX" = ( +/obj/structure/sign/directions/evac{ + pixel_y = -8 + }, +/obj/structure/sign/directions/medical{ + dir = 1 + }, +/obj/structure/sign/directions/security{ + dir = 1; + pixel_y = 8 + }, +/turf/closed/wall, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dMY" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dMZ" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/shuttle/escape) +"dNa" = ( +/turf/open/floor/plasteel/neutral, +/area/shuttle/escape) +"dNb" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/shuttle/escape) +"dNc" = ( +/obj/machinery/status_display, +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"dNd" = ( +/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{ + pixel_x = 6; + pixel_y = 0 + }, +/obj/item/weapon/reagent_containers/glass/bottle/charcoal{ + pixel_x = -3 + }, +/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{ + pixel_x = -3; + pixel_y = 8 + }, +/obj/item/weapon/reagent_containers/glass/bottle/charcoal{ + pixel_x = 6; + pixel_y = 8 + }, +/obj/item/weapon/reagent_containers/syringe/epinephrine{ + pixel_x = 3; + pixel_y = -2 + }, +/obj/item/weapon/reagent_containers/syringe/epinephrine{ + pixel_x = 4; + pixel_y = 1 + }, +/obj/item/weapon/reagent_containers/syringe/epinephrine{ + pixel_x = -2; + pixel_y = 5 + }, +/obj/item/weapon/reagent_containers/syringe/epinephrine{ + pixel_x = 2; + pixel_y = 8 + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/cmo, +/area/shuttle/escape) +"dNe" = ( +/obj/structure/chair/office/light{ + dir = 1 + }, +/turf/open/floor/plasteel/cmo, +/area/shuttle/escape) +"dNf" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 26; + pixel_y = 58 + }, +/turf/open/floor/plasteel/cmo, +/area/shuttle/escape) +"dNg" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/turf/open/floor/plasteel/cmo, +/area/shuttle/escape) +"dNh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 1 + }, +/area/medical/virology) +"dNi" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/virology) +"dNj" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 4 + }, +/area/medical/virology) +"dNk" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/virology) +"dNl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 8 + }, +/area/medical/virology) +"dNm" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 8 + }, +/area/medical/virology) +"dNn" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitegreen/corner, +/area/medical/virology) +"dNo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitegreen/corner, +/area/medical/virology) +"dNp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/medical/virology) +"dNq" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/neutral, +/area/medical/virology) +"dNr" = ( +/obj/machinery/ai_status_display{ + pixel_x = 32 + }, +/obj/machinery/camera{ + c_tag = "Virology - Cabin"; + dir = 8; + name = "virology camera" + }, +/turf/open/floor/plasteel/whitegreen/corner, +/area/medical/virology) +"dNs" = ( +/obj/structure/cable, +/obj/machinery/power/tracker, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/starboard) +"dNt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + dir = 8; + name = "Abandoned Library APC"; + pixel_x = -26; + pixel_y = 3 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/library{ + name = "Abandoned Library" + }) +"dNu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/wood{ + tag = "icon-wood-broken6"; + icon_state = "wood-broken6" + }, +/area/library{ + name = "Abandoned Library" + }) +"dNv" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/wood, +/area/library{ + name = "Abandoned Library" + }) +"dNw" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/grimy, +/area/library{ + name = "Abandoned Library" + }) +"dNx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/grimy, +/area/library{ + name = "Abandoned Library" + }) +"dNy" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/library{ + name = "Abandoned Library" + }) +"dNz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/wood{ + tag = "icon-wood-broken"; + icon_state = "wood-broken" + }, +/area/library{ + name = "Abandoned Library" + }) +"dNA" = ( +/obj/machinery/photocopier, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/library{ + name = "Abandoned Library" + }) +"dNB" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/wood{ + tag = "icon-wood-broken2"; + icon_state = "wood-broken2" + }, +/area/library{ + name = "Abandoned Library" + }) +"dNC" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/decal/cleanable/dirt, +/obj/item/device/flashlight/lamp, +/turf/open/floor/plating, +/area/library{ + name = "Abandoned Library" + }) +"dND" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dNE" = ( +/turf/closed/wall, +/area/chapel/office) +"dNF" = ( +/obj/structure/bodycontainer/morgue, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/chapel/office) +"dNG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/chapel/office) +"dNH" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/chapel/office) +"dNI" = ( +/turf/closed/wall, +/area/chapel/main) +"dNJ" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/chapel/main) +"dNK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/chapel/main) +"dNL" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dNM" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + tag = "icon-plasteel_warn (NORTHWEST)"; + icon_state = "plasteel_warn"; + dir = 9 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dNN" = ( +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dNO" = ( +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dNP" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + cell_type = 10000; + dir = 1; + name = "Departure Lounge APC"; + pixel_x = 0; + pixel_y = 28 + }, +/obj/machinery/camera{ + c_tag = "Departures - Fore"; + dir = 2; + name = "departures camera" + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dNQ" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dNR" = ( +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dNS" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dNT" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/shuttle/escape) +"dNU" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/bot, +/area/shuttle/escape) +"dNV" = ( +/obj/structure/flora/ausbushes/grassybush, +/obj/structure/flora/ausbushes/lavendergrass, +/obj/structure/flora/ausbushes/brflowers, +/obj/structure/flora/ausbushes/leafybush, +/obj/structure/window/shuttle, +/turf/open/floor/grass, +/area/shuttle/escape) +"dNW" = ( +/obj/machinery/computer/med_data, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 1 + }, +/area/shuttle/escape) +"dNX" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (NORTH)"; + icon_state = "whiteblue"; + dir = 1 + }, +/area/shuttle/escape) +"dNY" = ( +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (NORTH)"; + icon_state = "whiteblue"; + dir = 1 + }, +/area/shuttle/escape) +"dNZ" = ( +/obj/item/weapon/storage/firstaid/toxin, +/obj/item/weapon/storage/firstaid/o2{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 5 + }, +/area/shuttle/escape) +"dOa" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 1 + }, +/area/medical/virology) +"dOb" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/green, +/area/medical/virology) +"dOc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 4 + }, +/area/medical/virology) +"dOd" = ( +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 1 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24; + pixel_y = 0 + }, +/obj/structure/sign/poster{ + icon_state = "poster17_legit"; + pixel_x = 0; + pixel_y = -32; + tag = "icon-poster17_legit" + }, +/turf/open/floor/plasteel/vault, +/area/medical/virology) +"dOe" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/status_display{ + pixel_y = -32 + }, +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plasteel/vault, +/area/medical/virology) +"dOf" = ( +/obj/item/clothing/neck/stethoscope, +/obj/structure/table, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/item/weapon/storage/box/donkpockets, +/obj/item/weapon/storage/box/donkpockets, +/turf/open/floor/plasteel/vault, +/area/medical/virology) +"dOg" = ( +/obj/structure/table, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/microwave{ + desc = "Cooks and boils stuff, somehow."; + pixel_x = -3; + pixel_y = 5 + }, +/turf/open/floor/plasteel/vault, +/area/medical/virology) +"dOh" = ( +/obj/structure/sign/nosmoking_2, +/turf/closed/wall, +/area/medical/virology) +"dOi" = ( +/obj/structure/dresser, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/medical/virology) +"dOj" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/medical/virology) +"dOk" = ( +/obj/structure/closet/wardrobe/virology_white, +/obj/item/weapon/storage/backpack/satchel/vir, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/medical/virology) +"dOl" = ( +/mob/living/simple_animal/cockroach, +/turf/open/floor/wood, +/area/library{ + name = "Abandoned Library" + }) +"dOm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/grimy, +/area/library{ + name = "Abandoned Library" + }) +"dOn" = ( +/turf/open/floor/wood{ + tag = "icon-wood-broken3"; + icon_state = "wood-broken3" + }, +/area/library{ + name = "Abandoned Library" + }) +"dOo" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/library{ + name = "Abandoned Library" + }) +"dOp" = ( +/obj/structure/girder, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dOq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dOr" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/gloves{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/bodybags, +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/chapel/office) +"dOs" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/chapel/office) +"dOt" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-18"; + layer = 4.1 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 4; + icon_state = "fire0"; + pixel_x = 24; + pixel_y = 0; + tag = "icon-fire0 (EAST)" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/chapel/office) +"dOu" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/fancy/candle_box{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/fancy/candle_box, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"dOv" = ( +/obj/structure/bookcase, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/sign/atmosplaque{ + desc = "A plaque commemorating the fallen, may they rest in peace, forever asleep amongst the stars. Someone has drawn a picture of a crying badger at the bottom."; + icon_state = "kiddieplaque"; + name = "Remembrance Plaque"; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/chapel/main) +"dOw" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/snacks/grown/poppy{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/reagent_containers/food/snacks/grown/poppy{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/reagent_containers/food/snacks/grown/poppy, +/obj/machinery/status_display{ + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"dOx" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/chapel/main) +"dOy" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"dOz" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = 26 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/chapel/main) +"dOA" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/snacks/grown/harebell{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/reagent_containers/food/snacks/grown/harebell{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/reagent_containers/food/snacks/grown/harebell, +/obj/machinery/status_display{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"dOB" = ( +/obj/structure/bookcase, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/chapel/main) +"dOC" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"dOD" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/tinted/fulltile, +/turf/open/floor/plating, +/area/chapel/main) +"dOE" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dOF" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dOG" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dOH" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dOI" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dOJ" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dOK" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dOL" = ( +/obj/structure/disposalpipe/sortjunction{ + name = "Chapel Junction"; + sortType = 17 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dOM" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hall8"; + location = "hall7" + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dON" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dOO" = ( +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dOP" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dOQ" = ( +/obj/machinery/ai_status_display, +/turf/closed/wall/shuttle/smooth/nodiagonal, +/area/shuttle/escape) +"dOR" = ( +/obj/machinery/status_display, +/turf/closed/wall/shuttle/smooth/nodiagonal, +/area/shuttle/escape) +"dOS" = ( +/turf/open/floor/plasteel/delivery, +/area/shuttle/escape) +"dOT" = ( +/obj/machinery/door/airlock/glass_medical{ + id_tag = null; + name = "Escape Shuttle Infirmary"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/warning/side, +/area/shuttle/escape) +"dOU" = ( +/obj/item/weapon/storage/firstaid/fire, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 4 + }, +/area/shuttle/escape) +"dOV" = ( +/obj/structure/grille, +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/medical/virology) +"dOW" = ( +/obj/structure/grille, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/medical/virology) +"dOX" = ( +/obj/structure/grille, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/medical/virology) +"dOY" = ( +/obj/structure/grille, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/medical/virology) +"dOZ" = ( +/obj/machinery/vending/wallmed{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 1 + }, +/area/medical/virology) +"dPa" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/neutral, +/area/medical/virology) +"dPb" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/power/apc{ + dir = 4; + name = "Virology Satellite APC"; + pixel_x = 26; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 4 + }, +/area/medical/virology) +"dPc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/library{ + name = "Abandoned Library" + }) +"dPd" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood{ + tag = "icon-wood-broken"; + icon_state = "wood-broken" + }, +/area/library{ + name = "Abandoned Library" + }) +"dPe" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/library{ + name = "Abandoned Library" + }) +"dPf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/wood{ + tag = "icon-wood-broken5"; + icon_state = "wood-broken5" + }, +/area/library{ + name = "Abandoned Library" + }) +"dPg" = ( +/obj/structure/destructible/cult/tome, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/library{ + name = "Abandoned Library" + }) +"dPh" = ( +/obj/structure/bookcase{ + name = "Forbidden Knowledge" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/black, +/area/library{ + name = "Abandoned Library" + }) +"dPi" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/obj/item/device/flashlight, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dPj" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dPk" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/chapel/office) +"dPl" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/chapel/office) +"dPm" = ( +/obj/machinery/door/airlock/centcom{ + name = "Chapel Morgue"; + req_access_txt = "27" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/chapel/main) +"dPn" = ( +/turf/open/floor/plasteel/grimy, +/area/chapel/main) +"dPo" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/grimy, +/area/chapel/main) +"dPp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/grimy, +/area/chapel/main) +"dPq" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/main) +"dPr" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/main) +"dPs" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/centcom{ + name = "Chapel Hall" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/chapel/main) +"dPt" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dPu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dPv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dPw" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dPx" = ( +/turf/open/floor/plasteel/neutral, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dPy" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dPz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dPA" = ( +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dPB" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = -26; + pixel_y = 0 + }, +/turf/open/floor/plasteel/bot, +/area/shuttle/escape) +"dPC" = ( +/obj/structure/flora/ausbushes/grassybush, +/obj/structure/flora/ausbushes/lavendergrass, +/obj/structure/flora/ausbushes/ywflowers, +/obj/structure/flora/ausbushes/genericbush, +/obj/structure/window/shuttle, +/turf/open/floor/grass, +/area/shuttle/escape) +"dPD" = ( +/obj/machinery/shower{ + dir = 8; + icon_state = "shower"; + name = "emergency shower" + }, +/turf/open/floor/plasteel/whiteblue/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 4; + tag = "icon-whiteblue (EAST)" + }, +/area/shuttle/escape) +"dPE" = ( +/obj/structure/table/glass, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/item/clothing/gloves/color/latex, +/obj/item/device/healthanalyzer, +/obj/item/clothing/glasses/hud/health, +/turf/open/floor/plasteel/warning/corner, +/area/medical/virology) +"dPF" = ( +/obj/structure/table/glass, +/obj/machinery/requests_console{ + department = "Virology Lab"; + departmentType = 0; + name = "Virology RC"; + pixel_x = 0; + pixel_y = 32 + }, +/obj/item/weapon/folder/white, +/obj/item/weapon/pen/red, +/obj/item/stack/sheet/mineral/plasma{ + amount = 5 + }, +/turf/open/floor/plasteel/warning, +/area/medical/virology) +"dPG" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/computer/pandemic, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/medical/virology) +"dPH" = ( +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/plasteel/bot, +/area/medical/virology) +"dPI" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/status_display{ + pixel_y = 32 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/bot, +/area/medical/virology) +"dPJ" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/turf/open/floor/plasteel/bot, +/area/medical/virology) +"dPK" = ( +/obj/structure/closet/crate/freezer/blood, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_y = 26 + }, +/obj/machinery/camera{ + c_tag = "Virology Lab - Starboard"; + dir = 2; + name = "virology camera" + }, +/turf/open/floor/plasteel/bot, +/area/medical/virology) +"dPL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 8 + }, +/area/medical/virology) +"dPM" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/landmark{ + name = "lightsout" + }, +/turf/open/floor/plasteel/green, +/area/medical/virology) +"dPN" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 26; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/camera{ + c_tag = "Virology - Center"; + dir = 8; + name = "virology camera" + }, +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (EAST)"; + icon_state = "whitegreen"; + dir = 4 + }, +/area/medical/virology) +"dPO" = ( +/obj/effect/decal/cleanable/dirt, +/mob/living/carbon/monkey, +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (NORTHWEST)"; + icon_state = "whitegreen"; + dir = 9 + }, +/area/medical/virology) +"dPP" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 1 + }, +/area/medical/virology) +"dPQ" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 1 + }, +/area/medical/virology) +"dPR" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/mob/living/carbon/monkey, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 1 + }, +/area/medical/virology) +"dPS" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (NORTHEAST)"; + icon_state = "whitegreen"; + dir = 5 + }, +/area/medical/virology) +"dPT" = ( +/obj/structure/bookcase, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating, +/area/library{ + name = "Abandoned Library" + }) +"dPU" = ( +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/wood{ + tag = "icon-wood-broken6"; + icon_state = "wood-broken6" + }, +/area/library{ + name = "Abandoned Library" + }) +"dPV" = ( +/obj/effect/decal/remains/human, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/turf/open/floor/plasteel/black, +/area/library{ + name = "Abandoned Library" + }) +"dPW" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dPX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dPY" = ( +/obj/structure/table, +/obj/item/weapon/wrench, +/obj/item/weapon/crowbar, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = -26 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/chapel/office) +"dPZ" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/landmark/start{ + name = "Chaplain" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/chapel/office) +"dQa" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/chapel/office) +"dQb" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/main) +"dQc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/main) +"dQd" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/landmark{ + name = "lightsout" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/main) +"dQe" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/main) +"dQf" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/main) +"dQg" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/grimy, +/area/chapel/main) +"dQh" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/centcom{ + name = "Chapel Hall" + }, +/turf/open/floor/plasteel/warning/side, +/area/chapel/main) +"dQi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dQj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dQk" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dQl" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/bot, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dQm" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/bot, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dQn" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dQo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dQp" = ( +/obj/structure/extinguisher_cabinet, +/turf/closed/wall/shuttle/smooth/nodiagonal, +/area/shuttle/escape) +"dQq" = ( +/obj/structure/bed/roller, +/obj/machinery/iv_drip, +/turf/open/floor/plasteel/whiteblue/side, +/area/shuttle/escape) +"dQr" = ( +/turf/open/floor/plasteel/whiteblue/side, +/area/shuttle/escape) +"dQs" = ( +/obj/structure/bed/roller, +/obj/machinery/iv_drip, +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 6 + }, +/area/shuttle/escape) +"dQt" = ( +/obj/structure/reagent_dispensers/virusfood{ + pixel_x = -32 + }, +/obj/structure/table/glass, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/reagentgrinder{ + desc = "Used to grind things up into raw materials and liquids."; + pixel_y = 5 + }, +/obj/machinery/camera{ + c_tag = "Virology Lab - Port"; + dir = 4; + name = "virology camera" + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/medical/virology) +"dQu" = ( +/obj/structure/chair/office/light{ + dir = 1 + }, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 1 + }, +/area/medical/virology) +"dQv" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 1 + }, +/area/medical/virology) +"dQw" = ( +/turf/open/floor/plasteel/whitegreen/side{ + dir = 1 + }, +/area/medical/virology) +"dQx" = ( +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 4 + }, +/area/medical/virology) +"dQy" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 4 + }, +/area/medical/virology) +"dQz" = ( +/obj/machinery/iv_drip, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/medical/virology) +"dQA" = ( +/obj/structure/grille, +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/virology) +"dQB" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 8 + }, +/area/medical/virology) +"dQC" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/neutral, +/area/medical/virology) +"dQD" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whitegreen/corner, +/area/medical/virology) +"dQE" = ( +/obj/structure/bed/roller, +/obj/effect/decal/cleanable/dirt, +/mob/living/carbon/monkey, +/turf/open/floor/plasteel/bot, +/area/medical/virology) +"dQF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 8 + }, +/area/medical/virology) +"dQG" = ( +/obj/effect/landmark{ + name = "revenantspawn" + }, +/turf/open/floor/plasteel/delivery, +/area/medical/virology) +"dQH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whitegreen/corner, +/area/medical/virology) +"dQI" = ( +/obj/structure/bed/roller, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bot, +/area/medical/virology) +"dQJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm{ + dir = 4; + locked = 0; + pixel_x = -23; + pixel_y = 0 + }, +/turf/open/floor/wood, +/area/library{ + name = "Abandoned Library" + }) +"dQK" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/library{ + name = "Abandoned Library" + }) +"dQL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plating, +/area/library{ + name = "Abandoned Library" + }) +"dQM" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plating, +/area/library{ + name = "Abandoned Library" + }) +"dQN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/library{ + name = "Abandoned Library" + }) +"dQO" = ( +/obj/structure/spirit_board{ + anchored = 1 + }, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/library{ + name = "Abandoned Library" + }) +"dQP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dQQ" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dQR" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/chapel/office) +"dQS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/camera{ + c_tag = "Chapel Morgue"; + dir = 8; + name = "chapel camera" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/chapel/office) +"dQT" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/machinery/camera{ + c_tag = "Chapel - Port"; + dir = 4; + name = "chapel camera" + }, +/turf/open/floor/plasteel{ + dir = 1; + icon_state = "chapel" + }, +/area/chapel/main) +"dQU" = ( +/turf/open/floor/plasteel{ + dir = 4; + icon_state = "chapel" + }, +/area/chapel/main) +"dQV" = ( +/turf/open/floor/plasteel{ + dir = 1; + icon_state = "chapel" + }, +/area/chapel/main) +"dQW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel{ + dir = 1; + icon_state = "chapel" + }, +/area/chapel/main) +"dQX" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel{ + dir = 1; + icon_state = "chapel" + }, +/area/chapel/main) +"dQY" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel{ + dir = 4; + icon_state = "chapel" + }, +/area/chapel/main) +"dQZ" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dRa" = ( +/obj/structure/flora/ausbushes/grassybush, +/obj/structure/flora/ausbushes/lavendergrass, +/obj/structure/flora/ausbushes/ppflowers, +/obj/structure/flora/ausbushes/sunnybush, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/grass, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dRb" = ( +/obj/machinery/status_display, +/turf/closed/wall, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dRc" = ( +/obj/structure/flora/ausbushes/grassybush, +/obj/structure/flora/ausbushes/lavendergrass, +/obj/structure/flora/ausbushes/ywflowers, +/obj/structure/flora/ausbushes/fernybush, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/grass, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dRd" = ( +/obj/machinery/ai_status_display, +/turf/closed/wall, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dRe" = ( +/obj/machinery/door/airlock/external{ + name = "External Docking Port" + }, +/turf/open/floor/plasteel/warning/side, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dRf" = ( +/obj/structure/fans/tiny, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dRg" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/warnwhite/side, +/area/shuttle/escape) +"dRh" = ( +/obj/structure/sign/bluecross_2, +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"dRi" = ( +/obj/machinery/sleeper{ + icon_state = "sleeper-open"; + dir = 4 + }, +/turf/open/floor/plasteel/cmo, +/area/shuttle/escape) +"dRj" = ( +/turf/open/floor/plasteel/cmo, +/area/shuttle/escape) +"dRk" = ( +/obj/machinery/sleeper{ + icon_state = "sleeper-open"; + dir = 8 + }, +/turf/open/floor/plasteel/cmo, +/area/shuttle/escape) +"dRl" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/smartfridge/chemistry/virology, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/medical/virology) +"dRm" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 8 + }, +/area/medical/virology) +"dRn" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/green, +/area/medical/virology) +"dRo" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/holopad, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/medical/virology) +"dRp" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/green, +/area/medical/virology) +"dRq" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (EAST)"; + icon_state = "whitegreen"; + dir = 4 + }, +/area/medical/virology) +"dRr" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/medical/virology) +"dRs" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_virology{ + name = "Virology Lab"; + req_access_txt = "39" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/medical/virology) +"dRt" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 8 + }, +/area/medical/virology) +"dRu" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/green, +/area/medical/virology) +"dRv" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/whitegreen/corner, +/area/medical/virology) +"dRw" = ( +/obj/structure/sign/biohazard, +/turf/closed/wall, +/area/medical/virology) +"dRx" = ( +/obj/structure/grille, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/medical/virology) +"dRy" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_virology{ + name = "Virology Monkey Pen"; + req_access_txt = "39" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/medical/virology) +"dRz" = ( +/obj/structure/grille, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/medical/virology) +"dRA" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/wood, +/area/library{ + name = "Abandoned Library" + }) +"dRB" = ( +/obj/structure/chair/office/dark, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/library{ + name = "Abandoned Library" + }) +"dRC" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/turf/open/floor/wood{ + tag = "icon-wood-broken5"; + icon_state = "wood-broken5" + }, +/area/library{ + name = "Abandoned Library" + }) +"dRD" = ( +/obj/structure/table/wood, +/obj/item/weapon/folder, +/obj/item/weapon/pen, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/wood, +/area/library{ + name = "Abandoned Library" + }) +"dRE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/library{ + name = "Abandoned Library" + }) +"dRF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken4" + }, +/area/library{ + name = "Abandoned Library" + }) +"dRG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/library{ + name = "Abandoned Library" + }) +"dRH" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/library{ + name = "Abandoned Library" + }) +"dRI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/morgue{ + name = "Occult Study" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/library{ + name = "Abandoned Library" + }) +"dRJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/black, +/area/library{ + name = "Abandoned Library" + }) +"dRK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/remains/human, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/library{ + name = "Abandoned Library" + }) +"dRL" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dRM" = ( +/obj/structure/table, +/obj/item/stack/packageWrap, +/obj/item/weapon/hand_labeler, +/obj/structure/sign/nosmoking_2{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/chapel/office) +"dRN" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/landmark{ + name = "blobstart" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/chapel/office) +"dRO" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/chapel/office) +"dRP" = ( +/obj/structure/chair/wood, +/turf/open/floor/plasteel{ + dir = 8; + icon_state = "chapel" + }, +/area/chapel/main) +"dRQ" = ( +/obj/structure/chair/wood, +/turf/open/floor/plasteel{ + icon_state = "chapel" + }, +/area/chapel/main) +"dRR" = ( +/obj/structure/chair/wood, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel{ + dir = 8; + icon_state = "chapel" + }, +/area/chapel/main) +"dRS" = ( +/obj/structure/chair/wood, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel{ + dir = 8; + icon_state = "chapel" + }, +/area/chapel/main) +"dRT" = ( +/obj/structure/chair/wood, +/obj/machinery/firealarm{ + dir = 4; + icon_state = "fire0"; + pixel_x = 24; + pixel_y = 0; + tag = "icon-fire0 (EAST)" + }, +/obj/machinery/camera{ + c_tag = "Chapel - Starboard"; + dir = 8; + name = "chapel camera" + }, +/turf/open/floor/plasteel{ + icon_state = "chapel" + }, +/area/chapel/main) +"dRU" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dRV" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/bot, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dRW" = ( +/obj/structure/table, +/obj/item/weapon/folder, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dRX" = ( +/obj/structure/chair, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/machinery/camera{ + c_tag = "Departures - Center"; + dir = 2; + name = "departures camera" + }, +/turf/open/floor/plasteel/bot, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dRY" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/sign/vacuum, +/turf/open/floor/plating, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dRZ" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"dSa" = ( +/turf/open/floor/plasteel/bot, +/area/shuttle/escape) +"dSb" = ( +/obj/machinery/door/airlock/glass_medical{ + id_tag = null; + name = "Escape Shuttle Infirmary"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/shuttle/escape) +"dSc" = ( +/obj/structure/table/glass, +/obj/machinery/airalarm{ + dir = 4; + locked = 0; + pixel_x = -23; + pixel_y = 0 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/item/weapon/book/manual/wiki/infections, +/obj/item/weapon/reagent_containers/syringe/antiviral, +/obj/item/weapon/reagent_containers/dropper, +/obj/item/weapon/reagent_containers/spray/cleaner, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/medical/virology) +"dSd" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/obj/effect/landmark/start{ + name = "Virologist" + }, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 8 + }, +/area/medical/virology) +"dSe" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 8 + }, +/area/medical/virology) +"dSf" = ( +/turf/open/floor/plasteel/whitegreen/side, +/area/medical/virology) +"dSg" = ( +/turf/open/floor/plasteel/whitegreen/corner, +/area/medical/virology) +"dSh" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whitegreen/corner, +/area/medical/virology) +"dSi" = ( +/obj/structure/closet/l3closet/virology, +/turf/open/floor/plasteel/bot, +/area/medical/virology) +"dSj" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 8 + }, +/area/medical/virology) +"dSk" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/medical/virology) +"dSl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whitegreen/corner, +/area/medical/virology) +"dSm" = ( +/obj/structure/sink{ + dir = 8; + icon_state = "sink"; + pixel_x = -12 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 1 + }, +/area/medical/virology) +"dSn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 1 + }, +/area/medical/virology) +"dSo" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 1 + }, +/area/medical/virology) +"dSp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 4 + }, +/area/medical/virology) +"dSq" = ( +/obj/structure/table/glass, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/obj/item/stack/packageWrap, +/obj/item/weapon/hand_labeler, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 26; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 4 + }, +/area/medical/virology) +"dSr" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt, +/obj/item/device/flashlight/lamp, +/turf/open/floor/plating, +/area/library{ + name = "Abandoned Library" + }) +"dSs" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/folder, +/obj/item/weapon/pen, +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/library{ + name = "Abandoned Library" + }) +"dSt" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/light/small, +/turf/open/floor/wood{ + tag = "icon-wood-broken3"; + icon_state = "wood-broken3" + }, +/area/library{ + name = "Abandoned Library" + }) +"dSu" = ( +/obj/structure/table/wood, +/obj/item/clothing/under/rank/librarian, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/wood, +/area/library{ + name = "Abandoned Library" + }) +"dSv" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/wood, +/area/library{ + name = "Abandoned Library" + }) +"dSw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/wood, +/area/library{ + name = "Abandoned Library" + }) +"dSx" = ( +/obj/structure/easel, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/canvas/twentythreeXtwentythree, +/obj/item/weapon/canvas/twentythreeXtwentythree, +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/library{ + name = "Abandoned Library" + }) +"dSy" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/crayons, +/obj/item/weapon/storage/crayons, +/turf/open/floor/wood, +/area/library{ + name = "Abandoned Library" + }) +"dSz" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/paper_bin, +/turf/open/floor/plating, +/area/library{ + name = "Abandoned Library" + }) +"dSA" = ( +/obj/structure/dresser, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/library{ + name = "Abandoned Library" + }) +"dSB" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/item/device/taperecorder, +/turf/open/floor/plasteel/black, +/area/library{ + name = "Abandoned Library" + }) +"dSC" = ( +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dSD" = ( +/obj/structure/bodycontainer/morgue, +/obj/structure/sign/poster{ + icon_state = "poster8_legit"; + pixel_y = -32; + tag = "icon-poster8_legit" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/chapel/office) +"dSE" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/chapel/office) +"dSF" = ( +/obj/machinery/light_switch{ + pixel_x = -26; + pixel_y = -26 + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/chapel/office) +"dSG" = ( +/obj/structure/chair/wood/normal, +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/turf/open/floor/plasteel{ + dir = 1; + icon_state = "chapel" + }, +/area/chapel/main) +"dSH" = ( +/obj/structure/chair/wood/normal, +/turf/open/floor/plasteel{ + dir = 4; + icon_state = "chapel" + }, +/area/chapel/main) +"dSI" = ( +/obj/structure/chair/wood/normal, +/turf/open/floor/plasteel{ + dir = 1; + icon_state = "chapel" + }, +/area/chapel/main) +"dSJ" = ( +/obj/structure/chair/wood/normal, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel{ + dir = 1; + icon_state = "chapel" + }, +/area/chapel/main) +"dSK" = ( +/obj/structure/chair/wood/normal, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel{ + dir = 1; + icon_state = "chapel" + }, +/area/chapel/main) +"dSL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dSM" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dSN" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dSO" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dSP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dSQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dSR" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock" + }, +/obj/docking_port/mobile/emergency{ + dheight = 0; + dwidth = 11; + height = 18; + name = "Delta emergency shuttle"; + timid = 0; + width = 30 + }, +/obj/docking_port/stationary{ + dheight = 0; + dir = 4; + dwidth = 11; + height = 18; + id = "emergency_home"; + name = "DeltaStation emergency evac bay"; + turf_type = /turf/open/space; + width = 30 + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"dSS" = ( +/obj/structure/flora/ausbushes/grassybush, +/obj/structure/flora/ausbushes/lavendergrass, +/obj/structure/flora/ausbushes/ppflowers, +/obj/structure/flora/ausbushes/sunnybush, +/obj/structure/window/shuttle, +/turf/open/floor/grass, +/area/shuttle/escape) +"dST" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/machinery/shieldgen, +/turf/open/floor/plasteel/bot, +/area/shuttle/escape) +"dSU" = ( +/obj/structure/rack, +/obj/item/weapon/storage/toolbox/electrical{ + pixel_x = -3; + pixel_y = 1 + }, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = 0; + pixel_y = -1 + }, +/obj/item/weapon/storage/toolbox/emergency{ + pixel_x = 3; + pixel_y = -5 + }, +/turf/open/floor/plasteel/bot, +/area/shuttle/escape) +"dSV" = ( +/obj/structure/table/glass, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/item/weapon/storage/box/beakers{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/syringes, +/turf/open/floor/plasteel/warning/corner{ + dir = 8 + }, +/area/medical/virology) +"dSW" = ( +/obj/structure/table/glass, +/obj/structure/sign/deathsposal{ + pixel_y = -32 + }, +/obj/item/weapon/paper_bin, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/medical/virology) +"dSX" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/medical/virology) +"dSY" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plasteel/bot, +/area/medical/virology) +"dSZ" = ( +/obj/machinery/light, +/obj/machinery/status_display{ + pixel_y = -32 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/bot, +/area/medical/virology) +"dTa" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/bot, +/area/medical/virology) +"dTb" = ( +/obj/machinery/firealarm{ + dir = 4; + icon_state = "fire0"; + pixel_x = 24; + pixel_y = 0; + tag = "icon-fire0 (EAST)" + }, +/obj/structure/closet/secure_closet/medical1, +/obj/machinery/light_switch{ + pixel_x = 26; + pixel_y = -26 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/bot, +/area/medical/virology) +"dTc" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 8 + }, +/area/medical/virology) +"dTd" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/green, +/area/medical/virology) +"dTe" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/whitegreen/corner, +/area/medical/virology) +"dTf" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_virology{ + name = "Virology Access"; + req_access_txt = "39" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/warning/side, +/area/medical/virology) +"dTg" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 8 + }, +/area/medical/virology) +"dTh" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/green, +/area/medical/virology) +"dTi" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/holopad, +/obj/effect/landmark{ + name = "blobstart" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/medical/virology) +"dTj" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/green, +/area/medical/virology) +"dTk" = ( +/obj/structure/table/glass, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/item/weapon/folder/white, +/obj/item/weapon/pen/red, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (EAST)"; + icon_state = "whitegreen"; + dir = 4 + }, +/area/medical/virology) +"dTl" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dTm" = ( +/obj/structure/girder, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dTn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/chapel/office) +"dTo" = ( +/obj/machinery/door/airlock/centcom{ + name = "Crematorium"; + req_access_txt = "27" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/chapel/office) +"dTp" = ( +/obj/structure/chair/wood, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel{ + dir = 8; + icon_state = "chapel" + }, +/area/chapel/main) +"dTq" = ( +/turf/open/floor/plasteel{ + icon_state = "chapel" + }, +/area/chapel/main) +"dTr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel{ + dir = 8; + icon_state = "chapel" + }, +/area/chapel/main) +"dTs" = ( +/obj/structure/chair/wood, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/obj/machinery/newscaster{ + pixel_x = 32 + }, +/turf/open/floor/plasteel{ + icon_state = "chapel" + }, +/area/chapel/main) +"dTt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/vending/cola, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dTu" = ( +/obj/effect/landmark{ + name = "lightsout" + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dTv" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = -26; + pixel_y = 0 + }, +/turf/open/floor/plasteel/bot, +/area/shuttle/escape) +"dTw" = ( +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/shuttle/escape) +"dTx" = ( +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/shuttle/escape) +"dTy" = ( +/obj/structure/closet/crate/medical{ + name = "medical crate" + }, +/obj/item/weapon/storage/firstaid/regular, +/obj/item/weapon/storage/firstaid/o2{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/firstaid/toxin{ + pixel_x = -4; + pixel_y = 3 + }, +/obj/item/device/healthanalyzer{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/lazarus_injector, +/mob/living/simple_animal/bot/medbot{ + name = "\improper emergency medibot"; + pixel_x = -3; + pixel_y = 2 + }, +/turf/open/floor/plasteel/bot, +/area/shuttle/escape) +"dTz" = ( +/obj/structure/grille, +/obj/structure/cable/white, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/medical/virology) +"dTA" = ( +/obj/structure/grille, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/cable/white, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/medical/virology) +"dTB" = ( +/obj/structure/grille, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/cable/white, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/medical/virology) +"dTC" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/medical/virology) +"dTD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitegreen/corner, +/area/medical/virology) +"dTE" = ( +/obj/structure/grille, +/obj/structure/cable/white, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/virology) +"dTF" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/sink{ + dir = 8; + icon_state = "sink"; + pixel_x = -12 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 8 + }, +/area/medical/virology) +"dTG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 8 + }, +/area/medical/virology) +"dTH" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 0; + pixel_y = -26 + }, +/obj/machinery/iv_drip, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Virology - Containment Cells"; + dir = 1; + name = "virology camera" + }, +/turf/open/floor/plasteel/whitegreen/side, +/area/medical/virology) +"dTI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whitegreen/corner, +/area/medical/virology) +"dTJ" = ( +/obj/structure/table/glass, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/newscaster{ + pixel_x = 32 + }, +/obj/item/weapon/paper_bin, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/whitegreen/corner, +/area/medical/virology) +"dTK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dTL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dTM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dTN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark{ + name = "blobstart" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dTO" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dTP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dTQ" = ( +/turf/closed/wall/r_wall, +/area/chapel/office) +"dTR" = ( +/obj/structure/bodycontainer/crematorium{ + id = "cremawheat" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/chapel/office) +"dTS" = ( +/obj/machinery/light_switch{ + pixel_x = -26; + pixel_y = 26 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/chapel/office) +"dTT" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Chapel APC"; + pixel_x = -26; + pixel_y = 3 + }, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/turf/open/floor/plasteel{ + dir = 1; + icon_state = "chapel" + }, +/area/chapel/main) +"dTU" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel{ + dir = 4; + icon_state = "chapel" + }, +/area/chapel/main) +"dTV" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel{ + dir = 1; + icon_state = "chapel" + }, +/area/chapel/main) +"dTW" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/grimy, +/area/chapel/main) +"dTX" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel{ + dir = 4; + icon_state = "chapel" + }, +/area/chapel/main) +"dTY" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/vending/snack, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dTZ" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel/bot, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dUa" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dUb" = ( +/obj/structure/flora/ausbushes/grassybush, +/obj/structure/flora/ausbushes/lavendergrass, +/obj/structure/flora/ausbushes/ywflowers, +/obj/structure/flora/ausbushes/fernybush, +/obj/structure/window/shuttle, +/turf/open/floor/grass, +/area/shuttle/escape) +"dUc" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plasteel/bot, +/area/shuttle/escape) +"dUd" = ( +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/shuttle/escape) +"dUe" = ( +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/shuttle/escape) +"dUf" = ( +/obj/structure/closet/crate{ + name = "emergency supplies crate" + }, +/obj/item/weapon/storage/toolbox/emergency, +/obj/item/weapon/storage/toolbox/emergency, +/obj/item/device/flashlight/flare{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/device/flashlight/flare{ + pixel_x = -6; + pixel_y = -2 + }, +/obj/item/weapon/crowbar, +/obj/item/weapon/wrench, +/obj/item/device/radio, +/turf/open/floor/plasteel/bot, +/area/shuttle/escape) +"dUg" = ( +/obj/structure/sign/nanotrasen{ + pixel_y = -32 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 8 + }, +/area/medical/virology) +"dUh" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/table, +/obj/item/weapon/crowbar, +/obj/item/weapon/wrench, +/obj/item/weapon/restraints/handcuffs, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whitegreen/side, +/area/medical/virology) +"dUi" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/masks{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/gloves, +/turf/open/floor/plasteel/whitegreen/corner, +/area/medical/virology) +"dUj" = ( +/obj/structure/grille, +/obj/structure/cable/white, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/medical/virology) +"dUk" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_virology{ + name = "Virology Containment Cell 1"; + req_access_txt = "39" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/medical/virology) +"dUl" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/portsolar) +"dUm" = ( +/turf/closed/wall/r_wall, +/area/maintenance/portsolar) +"dUn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dUo" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dUp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dUq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/blue/side, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dUr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/blue/side, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dUs" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dUt" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/blue/side, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dUu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/neutral/side, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dUv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/obj/machinery/button/crematorium{ + id = "cremawheat"; + pixel_x = -26; + req_access_txt = "27" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/chapel/office) +"dUw" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 26 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/chapel/office) +"dUx" = ( +/turf/open/floor/plasteel{ + dir = 8; + icon_state = "chapel" + }, +/area/chapel/main) +"dUy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel{ + icon_state = "chapel" + }, +/area/chapel/main) +"dUz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + dir = 8; + icon_state = "chapel" + }, +/area/chapel/main) +"dUA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + icon_state = "chapel" + }, +/area/chapel/main) +"dUB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/main) +"dUC" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel{ + dir = 8; + icon_state = "chapel" + }, +/area/chapel/main) +"dUD" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel{ + dir = 8; + icon_state = "chapel" + }, +/area/chapel/main) +"dUE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/closet/firecloset, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dUF" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/bot, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dUG" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dUH" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/sign/directions/engineering{ + desc = "A sign that shows there are doors here. There are doors everywhere!"; + icon_state = "doors"; + name = "WARNING: EXTERNAL AIRLOCK"; + tag = "icon-doors" + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dUI" = ( +/obj/machinery/vending/wallmed{ + name = "Emergency NanoMed"; + pixel_x = 0; + pixel_y = 0; + req_access_txt = "0"; + use_power = 0 + }, +/turf/closed/wall/shuttle/smooth/nodiagonal, +/area/shuttle/escape) +"dUJ" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Cargo" + }, +/turf/open/floor/plasteel/warning/side, +/area/shuttle/escape) +"dUK" = ( +/obj/structure/grille, +/obj/structure/cable/white, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/medical/virology) +"dUL" = ( +/obj/structure/sign/vacuum, +/turf/closed/wall/r_wall, +/area/medical/virology) +"dUM" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/medical, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (NORTHWEST)"; + icon_state = "whitegreen"; + dir = 9 + }, +/area/medical/virology) +"dUN" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (NORTHEAST)"; + icon_state = "whitegreen"; + dir = 5 + }, +/area/medical/virology) +"dUO" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall, +/area/medical/virology) +"dUP" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (NORTHWEST)"; + icon_state = "whitegreen"; + dir = 9 + }, +/area/medical/virology) +"dUQ" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/medical, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (NORTHEAST)"; + icon_state = "whitegreen"; + dir = 5 + }, +/area/medical/virology) +"dUR" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_y = 26 + }, +/turf/open/floor/plating/warnplate{ + dir = 9 + }, +/area/maintenance/portsolar) +"dUS" = ( +/obj/machinery/power/smes, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/maintenance/portsolar) +"dUT" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/camera{ + c_tag = "Solar - Aft Port"; + name = "solar camera" + }, +/turf/open/floor/plating/warnplate{ + dir = 5 + }, +/area/maintenance/portsolar) +"dUU" = ( +/obj/structure/sign/directions/engineering{ + desc = "A sign that shows there are doors here. There are doors everywhere!"; + icon_state = "doors"; + name = "WARNING: EXTERNAL AIRLOCK"; + pixel_x = 0; + tag = "icon-doors" + }, +/turf/closed/wall/r_wall, +/area/maintenance/portsolar) +"dUV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dUW" = ( +/obj/structure/sign/electricshock, +/turf/closed/wall/r_wall, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dUX" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable/white, +/obj/structure/barricade/wooden, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dUY" = ( +/obj/machinery/door/poddoor/shutters{ + id = "evashutters2"; + name = "E.V.A. Storage Shutters" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/barricade/wooden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dUZ" = ( +/obj/machinery/button/door{ + id = "evashutters2"; + name = "E.V.A. Shutters"; + pixel_x = 26; + req_access_txt = "19" + }, +/obj/machinery/door/poddoor/shutters{ + id = "evashutters2"; + name = "E.V.A. Storage Shutters" + }, +/obj/structure/barricade/wooden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dVa" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/command{ + name = "Auxiliary E.V.A. Storage"; + req_access = null; + req_access_txt = "18" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/barricade/wooden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dVb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/command{ + name = "Auxiliary E.V.A. Storage"; + req_access = null; + req_access_txt = "18" + }, +/obj/structure/barricade/wooden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dVc" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall/r_wall, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dVd" = ( +/obj/structure/bodycontainer/morgue, +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/chapel/office) +"dVe" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/camera{ + c_tag = "Chapel Crematorium"; + dir = 8; + name = "chapel camera" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/chapel/office) +"dVf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel{ + dir = 4; + icon_state = "chapel" + }, +/area/chapel/main) +"dVg" = ( +/obj/structure/table/wood/fancy, +/turf/open/floor/plasteel/grimy, +/area/chapel/main) +"dVh" = ( +/obj/structure/table/wood/fancy, +/obj/item/weapon/storage/book/bible, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/grimy, +/area/chapel/main) +"dVi" = ( +/obj/structure/table/wood/fancy, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/grimy, +/area/chapel/main) +"dVj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/camera{ + c_tag = "Departures - Port"; + dir = 4; + name = "departures camera" + }, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dVk" = ( +/obj/structure/chair, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/bot, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dVl" = ( +/obj/structure/table, +/obj/item/weapon/storage/pill_bottle/dice, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dVm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/space) +"dVn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/space) +"dVo" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/space) +"dVp" = ( +/obj/machinery/iv_drip, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (SOUTHWEST)"; + icon_state = "whitegreen"; + dir = 10 + }, +/area/medical/virology) +"dVq" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/chair/office/light, +/obj/effect/decal/cleanable/greenglow, +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (SOUTHEAST)"; + icon_state = "whitegreen"; + dir = 6 + }, +/area/medical/virology) +"dVr" = ( +/obj/machinery/status_display, +/turf/closed/wall, +/area/medical/virology) +"dVs" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/chair/office/light, +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (SOUTHWEST)"; + icon_state = "whitegreen"; + dir = 10 + }, +/area/medical/virology) +"dVt" = ( +/obj/machinery/iv_drip, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (SOUTHEAST)"; + icon_state = "whitegreen"; + dir = 6 + }, +/area/medical/virology) +"dVu" = ( +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/port) +"dVv" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/space, +/area/solar/port) +"dVw" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/turf/open/space, +/area/solar/port) +"dVx" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/door/airlock/external{ + name = "External Solar Access"; + req_access_txt = "10" + }, +/turf/open/floor/plasteel/warning/side, +/area/maintenance/portsolar) +"dVy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/structure/fans/tiny, +/turf/open/floor/plasteel/delivery, +/area/maintenance/portsolar) +"dVz" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/maintenance/portsolar) +"dVA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/terminal{ + icon_state = "term"; + dir = 1 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plating, +/area/maintenance/portsolar) +"dVB" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plating/warnplate{ + dir = 4; + luminosity = 2; + initial_gas_mix = "o2=0.01;n2=0.01"; + temperature = 2.7 + }, +/area/maintenance/portsolar) +"dVC" = ( +/obj/machinery/door/airlock/engineering{ + name = "Aft Port Solar Access"; + req_access_txt = "10" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/side, +/area/maintenance/portsolar) +"dVD" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dVE" = ( +/obj/structure/table/reinforced, +/obj/item/stack/packageWrap, +/obj/item/weapon/hand_labeler, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dVF" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dVG" = ( +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dVH" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dVI" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dVJ" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/clipboard, +/obj/item/weapon/folder/yellow, +/obj/machinery/light_switch{ + pixel_x = 26 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dVK" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dVL" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/gloves{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/bodybags, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/chapel/office) +"dVM" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/chapel/office) +"dVN" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/turf/open/floor/plasteel{ + dir = 8; + icon_state = "chapel" + }, +/area/chapel/main) +"dVO" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel{ + icon_state = "chapel" + }, +/area/chapel/main) +"dVP" = ( +/obj/structure/table/wood/fancy, +/obj/item/device/flashlight/lantern, +/turf/open/floor/plasteel/grimy, +/area/chapel/main) +"dVQ" = ( +/obj/effect/landmark/start{ + name = "Chaplain" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/grimy, +/area/chapel/main) +"dVR" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel{ + dir = 8; + icon_state = "chapel" + }, +/area/chapel/main) +"dVS" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/obj/structure/sign/nosmoking_2{ + pixel_x = 32 + }, +/turf/open/floor/plasteel{ + icon_state = "chapel" + }, +/area/chapel/main) +"dVT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dVU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dVV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dVW" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dVX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dVY" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dVZ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dWa" = ( +/obj/structure/rack, +/obj/item/clothing/suit/fire/firefighter, +/obj/item/weapon/tank/internals/oxygen/red, +/obj/item/clothing/mask/gas, +/obj/item/clothing/head/hardhat/red, +/turf/open/floor/plasteel/bot, +/area/shuttle/escape) +"dWb" = ( +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/shuttle/escape) +"dWc" = ( +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/shuttle/escape) +"dWd" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + tag = "icon-inje_map (NORTH)"; + icon_state = "inje_map"; + dir = 1 + }, +/turf/open/floor/plating/warnplate, +/area/space) +"dWe" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/structure/disposaloutlet, +/turf/open/floor/plating/warnplate, +/area/space) +"dWf" = ( +/obj/structure/table/glass, +/obj/item/weapon/reagent_containers/glass/beaker, +/obj/item/weapon/reagent_containers/syringe/antiviral, +/obj/item/weapon/reagent_containers/dropper, +/turf/open/floor/plasteel/delivery, +/area/medical/virology) +"dWg" = ( +/obj/structure/table/glass, +/obj/item/weapon/folder/white, +/obj/item/weapon/pen/red, +/turf/open/floor/plasteel/delivery, +/area/medical/virology) +"dWh" = ( +/obj/machinery/power/solar_control{ + id = "aftport"; + name = "Aft Port Solar Control"; + track = 0 + }, +/obj/structure/cable, +/turf/open/floor/plating/warnplate{ + dir = 10 + }, +/area/maintenance/portsolar) +"dWi" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/plating/warnplate, +/area/maintenance/portsolar) +"dWj" = ( +/obj/structure/cable/white, +/obj/machinery/power/apc{ + cell_type = 10000; + dir = 2; + name = "Aft Port Solar APC"; + pixel_y = -26 + }, +/turf/open/floor/plating/warnplate{ + dir = 6 + }, +/area/maintenance/portsolar) +"dWk" = ( +/obj/structure/sign/electricshock, +/turf/closed/wall/r_wall, +/area/maintenance/portsolar) +"dWl" = ( +/obj/structure/table/reinforced, +/obj/machinery/airalarm{ + dir = 4; + locked = 0; + pixel_x = -23; + pixel_y = 0 + }, +/obj/item/stack/cable_coil/white, +/obj/item/stack/cable_coil/white, +/obj/item/device/multitool, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dWm" = ( +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dWn" = ( +/turf/open/floor/plasteel/warning, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dWo" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/warning, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dWp" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/warning, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dWq" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dWr" = ( +/obj/structure/table/reinforced, +/obj/machinery/newscaster{ + pixel_x = 32 + }, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dWs" = ( +/obj/structure/bodycontainer/morgue, +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 0; + pixel_y = -24 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/chapel/office) +"dWt" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/chapel/office) +"dWu" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/chapel/main) +"dWv" = ( +/turf/open/floor/plasteel/black, +/area/chapel/main) +"dWw" = ( +/obj/machinery/ai_status_display{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/main) +"dWx" = ( +/obj/structure/noticeboard{ + desc = "A board for remembering the fallen of the station."; + dir = 1; + icon_state = "nboard00"; + name = "memorial board"; + pixel_y = -32; + tag = "icon-nboard00 (NORTH)" + }, +/obj/machinery/holopad, +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/obj/machinery/camera{ + c_tag = "Chapel - Aft"; + dir = 1; + name = "chapel camera" + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/main) +"dWy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/grimy, +/area/chapel/main) +"dWz" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"dWA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dWB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dWC" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dWD" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/warning, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dWE" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Departures - Aft"; + dir = 1; + name = "departures camera" + }, +/turf/open/floor/plasteel/warning, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dWF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dWG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dWH" = ( +/turf/open/floor/plasteel/neutral/side, +/area/shuttle/escape) +"dWI" = ( +/obj/machinery/flasher{ + id = "shuttleflash"; + pixel_y = -26 + }, +/turf/open/floor/plasteel/neutral/side, +/area/shuttle/escape) +"dWJ" = ( +/obj/structure/table, +/obj/item/weapon/clipboard, +/obj/item/weapon/folder/yellow, +/obj/item/weapon/pen, +/obj/item/hand_labeler_refill, +/turf/open/floor/plasteel/bot, +/area/shuttle/escape) +"dWK" = ( +/obj/machinery/recharge_station, +/turf/open/floor/plasteel/delivery, +/area/shuttle/escape) +"dWL" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/weapon/stock_parts/cell/high, +/turf/open/floor/plasteel/bot, +/area/shuttle/escape) +"dWM" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/medical/virology) +"dWN" = ( +/obj/machinery/shieldwallgen, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dWO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dWP" = ( +/turf/open/floor/plasteel/delivery, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dWQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dWR" = ( +/obj/structure/rack, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/tank/internals/oxygen, +/obj/item/device/radio, +/obj/item/clothing/mask/breath, +/turf/open/floor/plasteel/bot, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dWS" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dWT" = ( +/obj/machinery/shieldwallgen, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dWU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dWV" = ( +/obj/machinery/door/morgue{ + name = "Relic Closet"; + req_access_txt = "27" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/chapel/office) +"dWW" = ( +/obj/machinery/door/morgue{ + name = "Confession Booth"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/chapel/main) +"dWX" = ( +/obj/machinery/status_display, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/chapel/main) +"dWY" = ( +/obj/machinery/door/airlock/centcom{ + name = "Chapel Office"; + req_access_txt = "27" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/chapel/main) +"dWZ" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dXa" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/glass_security{ + name = "Security Checkpoint"; + req_access_txt = "63" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/security/checkpoint2) +"dXb" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/checkpoint2) +"dXc" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/door/window/brigdoor/southright{ + name = "Security Desk"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/security/checkpoint2) +"dXd" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/security/checkpoint2) +"dXe" = ( +/obj/machinery/status_display, +/turf/closed/wall, +/area/security/checkpoint2) +"dXf" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/security/checkpoint2) +"dXg" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/door/airlock/glass_security{ + name = "Holding Area"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/security/checkpoint2) +"dXh" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/security/checkpoint2) +"dXi" = ( +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/checkpoint2) +"dXj" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/sign/vacuum, +/turf/open/floor/plating, +/area/security/checkpoint2) +"dXk" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/checkpoint2) +"dXl" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Holding Area"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/escape) +"dXm" = ( +/obj/machinery/door/airlock/glass_command{ + name = "Cockpit"; + req_access_txt = "19" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/shuttle/escape) +"dXn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/firecloset, +/turf/open/floor/plasteel/delivery, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dXo" = ( +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/structure/closet/crate/internals, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dXp" = ( +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dXq" = ( +/obj/structure/rack, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/tank/internals/oxygen, +/obj/item/device/radio, +/obj/item/clothing/mask/breath, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dXr" = ( +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dXs" = ( +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/structure/closet/crate/internals, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dXt" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dXu" = ( +/obj/structure/table/wood/fancy, +/obj/item/weapon/spellbook/oneuse/smoke, +/obj/item/weapon/nullrod, +/obj/item/organ/heart, +/obj/item/weapon/reagent_containers/food/drinks/bottle/holywater, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"dXv" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"dXw" = ( +/obj/structure/chair/wood/normal{ + tag = "icon-wooden_chair (EAST)"; + icon_state = "wooden_chair"; + dir = 4 + }, +/obj/machinery/light/small, +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/chapel/main) +"dXx" = ( +/obj/structure/chair/wood/normal{ + tag = "icon-wooden_chair (WEST)"; + icon_state = "wooden_chair"; + dir = 8 + }, +/obj/machinery/light/small, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/chapel/office) +"dXy" = ( +/obj/machinery/door/morgue{ + name = "Confession Booth"; + req_access_txt = "27" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/chapel/office) +"dXz" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/chapel/office) +"dXA" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"dXB" = ( +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/chapel/office) +"dXC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"dXD" = ( +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/obj/machinery/light_switch{ + pixel_x = 26; + pixel_y = 26 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/chapel/office) +"dXE" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Chapel Maintenance"; + req_access_txt = "27" + }, +/turf/open/floor/plasteel/warning/side, +/area/chapel/office) +"dXF" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dXG" = ( +/obj/structure/filingcabinet/security, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24; + pixel_y = 0 + }, +/obj/machinery/light_switch{ + pixel_x = -26; + pixel_y = 26 + }, +/obj/machinery/camera{ + c_tag = "Security - Departures Port"; + dir = 2; + name = "security camera" + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/checkpoint2) +"dXH" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/checkpoint2) +"dXI" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/checkpoint2) +"dXJ" = ( +/obj/structure/table/reinforced, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/item/weapon/folder/red, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/red, +/area/security/checkpoint2) +"dXK" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/fancy/donut_box, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/checkpoint2) +"dXL" = ( +/obj/structure/closet/wardrobe/red, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/checkpoint2) +"dXM" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/checkpoint2) +"dXN" = ( +/obj/structure/chair, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/checkpoint2) +"dXO" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/checkpoint2) +"dXP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/checkpoint2) +"dXQ" = ( +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/checkpoint2) +"dXR" = ( +/obj/machinery/door/airlock/external{ + name = "External Docking Port"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/warning/side, +/area/security/checkpoint2) +"dXS" = ( +/obj/structure/fans/tiny, +/turf/open/floor/plasteel/delivery, +/area/security/checkpoint2) +"dXT" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/warnwhite/side, +/area/shuttle/escape) +"dXU" = ( +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/escape) +"dXV" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/escape) +"dXW" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/escape) +"dXX" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/machinery/button/flasher{ + id = "shuttleflash"; + pixel_x = -26; + pixel_y = 24 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/shuttle/escape) +"dXY" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/shuttle/escape) +"dXZ" = ( +/obj/structure/table, +/obj/item/weapon/clipboard, +/obj/item/toy/figure/ninja, +/turf/open/floor/plasteel/bot, +/area/shuttle/escape) +"dYa" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/bot, +/area/shuttle/escape) +"dYb" = ( +/obj/structure/chair, +/obj/machinery/status_display{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/bot, +/area/shuttle/escape) +"dYc" = ( +/obj/structure/lattice, +/obj/structure/grille{ + density = 0; + icon_state = "brokengrille" + }, +/turf/open/space, +/area/space) +"dYd" = ( +/obj/structure/table/reinforced, +/obj/item/stack/sheet/metal{ + amount = 30 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/weapon/crowbar/red, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dYe" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dYf" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dYg" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dYh" = ( +/obj/structure/cable/white, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dYi" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dYj" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dYk" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dYl" = ( +/obj/structure/table/reinforced, +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/obj/item/weapon/storage/toolbox/mechanical, +/obj/item/device/flashlight, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dYm" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = -26 + }, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"dYn" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"dYo" = ( +/obj/structure/chair/office/dark, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"dYp" = ( +/obj/structure/chair/office/dark, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"dYq" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/structure/sign/nosmoking_2{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"dYr" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/external{ + name = "External Airlock"; + req_access_txt = "13" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dYs" = ( +/obj/structure/table/reinforced, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/power/apc{ + dir = 8; + name = "Departures Checkpoint APC"; + pixel_x = -26; + pixel_y = 3 + }, +/obj/item/weapon/crowbar, +/obj/item/weapon/wrench, +/obj/item/device/radio, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/checkpoint2) +"dYt" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral, +/area/security/checkpoint2) +"dYu" = ( +/obj/machinery/holopad, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/bot, +/area/security/checkpoint2) +"dYv" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/neutral, +/area/security/checkpoint2) +"dYw" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/security/checkpoint2) +"dYx" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/checkpoint2) +"dYy" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/glass_security{ + name = "Holding Area"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/warning/side, +/area/security/checkpoint2) +"dYz" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/checkpoint2) +"dYA" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/neutral, +/area/security/checkpoint2) +"dYB" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/neutral, +/area/security/checkpoint2) +"dYC" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/security/checkpoint2) +"dYD" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/checkpoint2) +"dYE" = ( +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/checkpoint2) +"dYF" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/escape) +"dYG" = ( +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/shuttle/escape) +"dYH" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/shuttle/escape) +"dYI" = ( +/turf/open/floor/plasteel, +/area/shuttle/escape) +"dYJ" = ( +/turf/open/floor/plasteel/neutral/corner, +/area/shuttle/escape) +"dYK" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = 58 + }, +/turf/open/floor/plasteel/neutral/side, +/area/shuttle/escape) +"dYL" = ( +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/shuttle/escape) +"dYM" = ( +/obj/machinery/door/airlock/external{ + name = "Emergency Recovery Airlock" + }, +/turf/open/floor/plasteel/warning/side, +/area/shuttle/escape) +"dYN" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/toolbox/emergency, +/obj/item/weapon/wrench, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dYO" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dYP" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plasteel/warning, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dYQ" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dYR" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dYS" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dYT" = ( +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dYU" = ( +/obj/structure/table/reinforced, +/obj/item/stack/sheet/rglass{ + amount = 20; + pixel_x = 2; + pixel_y = -2 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dYV" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = -26 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/chapel/office) +"dYW" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"dYX" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 1; + name = "Chapel Quarters APC"; + pixel_x = 0; + pixel_y = 25 + }, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"dYY" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/camera{ + c_tag = "Chapel Quarters"; + dir = 2; + name = "chapel camera" + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"dYZ" = ( +/obj/structure/table/wood, +/obj/item/device/camera_film{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/device/camera_film, +/obj/machinery/firealarm{ + dir = 4; + icon_state = "fire0"; + pixel_x = 24; + pixel_y = 0; + tag = "icon-fire0 (EAST)" + }, +/obj/machinery/status_display{ + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/chapel/office) +"dZa" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/chapel/office) +"dZb" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/chapel/office) +"dZc" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"dZd" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/chapel/office) +"dZe" = ( +/obj/structure/table/wood, +/obj/item/weapon/folder, +/obj/item/weapon/pen/fourcolor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/carpet, +/area/chapel/office) +"dZf" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/fancy/donut_box, +/obj/machinery/ai_status_display{ + pixel_x = 32 + }, +/turf/open/floor/carpet, +/area/chapel/office) +"dZg" = ( +/obj/structure/fans/tiny, +/obj/structure/sign/directions/engineering{ + desc = "A sign that shows there are doors here. There are doors everywhere!"; + icon_state = "doors"; + name = "WARNING: EXTERNAL AIRLOCK"; + pixel_x = 32; + tag = "icon-doors" + }, +/turf/open/floor/plasteel/bot, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dZh" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger, +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/security/checkpoint2) +"dZi" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/red/side, +/area/security/checkpoint2) +"dZj" = ( +/obj/machinery/computer/prisoner, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/checkpoint2) +"dZk" = ( +/obj/machinery/computer/secure_data, +/turf/open/floor/plasteel/red, +/area/security/checkpoint2) +"dZl" = ( +/obj/machinery/computer/security, +/obj/machinery/status_display{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/security/checkpoint2) +"dZm" = ( +/obj/structure/closet/secure_closet/security, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/checkpoint2) +"dZn" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/light, +/obj/structure/sign/poster{ + icon_state = "poster22_legit"; + pixel_y = -32; + tag = "icon-poster22_legit" + }, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/security/checkpoint2) +"dZo" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/red/side, +/area/security/checkpoint2) +"dZp" = ( +/obj/structure/table, +/obj/structure/cable/white{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/item/weapon/restraints/handcuffs, +/obj/item/weapon/restraints/handcuffs, +/obj/item/device/assembly/flash/handheld, +/turf/open/floor/plasteel/red/side, +/area/security/checkpoint2) +"dZq" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side, +/area/security/checkpoint2) +"dZr" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 0; + pixel_y = -26 + }, +/obj/machinery/light, +/obj/machinery/camera{ + c_tag = "Security - Departures Starboard"; + dir = 1; + name = "security camera" + }, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/checkpoint2) +"dZs" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/cable/white, +/obj/structure/cable/white{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/checkpoint2) +"dZt" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/status_display{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/escape) +"dZu" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/escape) +"dZv" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/lockbox/loyalty, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/escape) +"dZw" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger, +/turf/open/floor/plasteel/red/corner{ + dir = 8 + }, +/area/shuttle/escape) +"dZx" = ( +/obj/structure/fireaxecabinet{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/shuttle/escape) +"dZy" = ( +/obj/machinery/door/airlock/external{ + name = "Emergency Recovery Airlock" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (EAST)"; + icon_state = "plasteel_warn_side"; + dir = 4 + }, +/area/shuttle/escape) +"dZz" = ( +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/shuttle/escape) +"dZA" = ( +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/shuttle/escape) +"dZB" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/power/solar{ + id = "aftport"; + name = "Aft-Port Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/port) +"dZC" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable/white, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Aft Port Maintenance" + }) +"dZD" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "chapelprivacy"; + name = "Chapel Privacy Shutters" + }, +/turf/open/floor/plating, +/area/chapel/office) +"dZE" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/black, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/chapel/office) +"dZF" = ( +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"dZG" = ( +/obj/effect/landmark/start{ + name = "Chaplain" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"dZH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"dZI" = ( +/obj/machinery/light_switch{ + pixel_x = 26; + pixel_y = -26 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/chapel/office) +"dZJ" = ( +/obj/machinery/door/airlock/centcom{ + name = "Chapel Quarters"; + req_access_txt = "27" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/chapel/office) +"dZK" = ( +/obj/machinery/light_switch{ + pixel_x = -26; + pixel_y = 26 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/chapel/office) +"dZL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"dZM" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"dZN" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/carpet, +/area/chapel/office) +"dZO" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/effect/landmark/start{ + name = "Chaplain" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/carpet, +/area/chapel/office) +"dZP" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/fancy/candle_box{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/fancy/candle_box, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/obj/machinery/newscaster{ + pixel_x = 32 + }, +/turf/open/floor/carpet, +/area/chapel/office) +"dZQ" = ( +/obj/machinery/door/airlock/external{ + name = "External Airlock"; + req_access_txt = "13" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"dZR" = ( +/turf/closed/wall/r_wall, +/area/security/checkpoint2) +"dZS" = ( +/obj/structure/cable/white, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/checkpoint2) +"dZT" = ( +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/checkpoint2) +"dZU" = ( +/obj/structure/cable/white, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/checkpoint2) +"dZV" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/escape) +"dZW" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/box/zipties, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 0; + pixel_y = -26 + }, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/escape) +"dZX" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/red/corner{ + dir = 8 + }, +/area/shuttle/escape) +"dZY" = ( +/turf/open/floor/plasteel/blue/side, +/area/shuttle/escape) +"dZZ" = ( +/obj/machinery/door/airlock/command{ + name = "Emergency Recovery Airlock"; + req_access = null; + req_access_txt = "19" + }, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (NORTH)"; + icon_state = "plasteel_warn_side"; + dir = 1 + }, +/area/shuttle/escape) +"eaa" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/turf/open/floor/plasteel/delivery, +/area/shuttle/escape) +"eab" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/port) +"eac" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/port) +"ead" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/port) +"eae" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/port) +"eaf" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/port) +"eag" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/port) +"eah" = ( +/obj/structure/dresser, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/structure/sign/nanotrasen{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/chapel/office) +"eai" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/snacks/grown/poppy/geranium{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/weapon/reagent_containers/food/snacks/grown/poppy/lily, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"eaj" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/fancy/candle_box{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/fancy/candle_box, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"eak" = ( +/obj/structure/table/wood, +/obj/item/weapon/folder/red, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"eal" = ( +/obj/structure/closet/wardrobe/chaplain_black, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/chapel/office) +"eam" = ( +/obj/structure/table/wood, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/item/weapon/clipboard, +/obj/item/toy/figure/chaplain, +/obj/structure/sign/poster{ + icon_state = "poster6_legit"; + pixel_x = 0; + pixel_y = -32; + tag = "icon-poster6_legit" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/chapel/office) +"ean" = ( +/obj/machinery/photocopier, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/chapel/office) +"eao" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"eap" = ( +/turf/open/floor/carpet, +/area/chapel/office) +"eaq" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/crayons, +/obj/item/weapon/storage/crayons, +/obj/machinery/requests_console{ + department = "Chapel Office"; + departmentType = 0; + name = "Chapel RC"; + pixel_x = 0; + pixel_y = -32 + }, +/obj/machinery/status_display{ + pixel_x = 32 + }, +/obj/machinery/camera{ + c_tag = "Chapel Office"; + dir = 1; + name = "chapel camera" + }, +/turf/open/floor/carpet, +/area/chapel/office) +"ear" = ( +/obj/structure/cable, +/obj/machinery/power/solar{ + id = "aftport"; + name = "Aft-Port Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/port) +"eas" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/chapel/office) +"eat" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/shuttle/escape) +"eau" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + icon_state = "vault"; + dir = 5 + }, +/area/shuttle/escape) +"eav" = ( +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + icon_state = "vault"; + dir = 5 + }, +/area/shuttle/escape) +"eaw" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/fancy/donut_box, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/shuttle/escape) +"eax" = ( +/obj/machinery/computer/security, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTHWEST)"; + icon_state = "darkred"; + dir = 9 + }, +/area/shuttle/escape) +"eay" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + icon_state = "vault"; + dir = 5 + }, +/area/shuttle/escape) +"eaz" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 26; + pixel_y = 58 + }, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + icon_state = "vault"; + dir = 5 + }, +/area/shuttle/escape) +"eaA" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + icon_state = "vault"; + dir = 5 + }, +/area/shuttle/escape) +"eaB" = ( +/obj/machinery/computer/station_alert, +/turf/open/floor/plasteel/darkyellow/side{ + tag = "icon-darkyellow (NORTHEAST)"; + icon_state = "darkyellow"; + dir = 5 + }, +/area/shuttle/escape) +"eaC" = ( +/obj/item/stack/cable_coil, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/port) +"eaD" = ( +/obj/machinery/computer/secure_data, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (SOUTHWEST)"; + icon_state = "darkred"; + dir = 10 + }, +/area/shuttle/escape) +"eaE" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/plasteel/vault, +/area/shuttle/escape) +"eaF" = ( +/obj/structure/chair/office/dark, +/turf/open/floor/plasteel/vault, +/area/shuttle/escape) +"eaG" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plasteel/vault, +/area/shuttle/escape) +"eaH" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/blue, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/vault, +/area/shuttle/escape) +"eaI" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/turf/open/floor/plasteel/vault, +/area/shuttle/escape) +"eaJ" = ( +/obj/machinery/computer/atmos_alert, +/turf/open/floor/plasteel/darkyellow/side{ + tag = "icon-darkyellow (SOUTHEAST)"; + icon_state = "darkyellow"; + dir = 6 + }, +/area/shuttle/escape) +"eaK" = ( +/obj/structure/lattice/catwalk, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/space, +/area/solar/port) +"eaL" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/shuttle/escape) +"eaM" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/red, +/obj/item/weapon/restraints/handcuffs, +/obj/item/device/assembly/flash/handheld, +/turf/open/floor/plasteel/vault, +/area/shuttle/escape) +"eaN" = ( +/obj/machinery/computer/crew, +/turf/open/floor/plasteel/darkblue/side, +/area/shuttle/escape) +"eaO" = ( +/obj/machinery/computer/med_data, +/turf/open/floor/plasteel/darkblue/side{ + dir = 6 + }, +/area/shuttle/escape) +"eaP" = ( +/obj/machinery/computer/emergency_shuttle, +/turf/open/floor/plasteel/darkblue/side{ + dir = 10 + }, +/area/shuttle/escape) +"eaQ" = ( +/obj/machinery/computer/communications, +/turf/open/floor/plasteel/darkblue/side, +/area/shuttle/escape) +"eaR" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/plasteel/vault, +/area/shuttle/escape) +"eaS" = ( +/obj/structure/table/reinforced, +/obj/machinery/cell_charger, +/obj/item/weapon/stock_parts/cell/high, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/shuttle/escape) +"eaT" = ( +/obj/docking_port/stationary{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 24; + id = "syndicate_sw"; + name = "southwest of station"; + turf_type = /turf/open/space; + width = 18 + }, +/turf/open/space, +/area/space) +"eaU" = ( +/obj/docking_port/stationary{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 24; + id = "syndicate_se"; + name = "southeast of station"; + turf_type = /turf/open/space; + width = 18 + }, +/turf/open/space, +/area/space) +"eaV" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/port) +"eaW" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/port) +"eaX" = ( +/obj/structure/cable, +/obj/machinery/power/tracker, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/port) +"eaY" = ( +/obj/docking_port/stationary{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 24; + id = "syndicate_s"; + name = "south of station"; + turf_type = /turf/open/space; + width = 18 + }, +/turf/open/space, +/area/space) +"eaZ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_virology{ + name = "Virology Containment Cell 2"; + req_access_txt = "39" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/side{ + tag = "icon-plasteel_warn_side (WEST)"; + icon_state = "plasteel_warn_side"; + dir = 8 + }, +/area/medical/virology) + +(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 +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +agg +agg +agg +agg +aaf +agg +agg +agg +aaf +agg +agg +agg +aaf +agg +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +agg +aaa +biN +blN +biN +blN +biN +blN +biN +blN +biN +blN +biN +aaa +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaf +bgO +bHj +bww +bLo +bww +bOZ +bRe +bTx +bww +bww +bww +bHt +bnP +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaf +agg +agg +agg +agg +agg +aaf +agg +agg +aaf +agg +agg +agg +agg +bgP +bHk +bJk +biR +bNj +bPa +bRf +bTy +bnN +biR +bkt +bHk +bnO +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 +"} +(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 +aaf +aaa +blN +biN +biN +blN +biN +biN +blN +biN +biN +blN +biN +blN +bko +bHk +bnQ +bLp +bLp +bLp +bRg +bTz +bLp +bLp +bNB +bHk +bnP +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +adm +adn +adn +adn +adn +adn +adn +adn +adn +aes +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +bgP +blO +bnM +bnM +bnM +bnM +btv +buR +bww +bww +bww +bww +bww +bww +bHl +bnP +bLp +bNk +bPb +bRh +bTA +bVC +bLp +bgO +bHk +bnO +agg +agg +agg +agg +agg +agg +aaf +agg +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +adm +adn +adn +adn +adn +adn +adn +aiN +ajI +aiN +alK +amN +anW +aoz +aoC +apA +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +bgO +blP +bnN +bpI +biR +biR +biR +bpI +biR +biR +bpI +biR +biR +bpI +bHm +aaa +bLp +bNl +bPc +bRi +bTB +bVD +bLp +bgO +bHk +ccG +biN +blN +biN +biN +blN +biN +blN +aaa +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +adn +afv +afK +afK +afK +aho +adn +agG +aeh +aeG +aeG +amO +aeG +aoA +aoC +apB +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +bgO +blP +bnO +aaf +aaf +aaf +bpK +bpK +bpK +bpK +bpK +bpK +bpK +bpK +bpK +bpK +bLp +bNm +bPd +bRj +bTC +bVE +bLp +bNB +bHu +bww +bww +cfL +bnM +ciQ +bnM +bnM +cmZ +bnP +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +adn +aeG +aeG +aeG +aeG +aeG +aia +agG +aeh +akK +alL +amP +anX +aoB +aoC +apC +aaa +aaa +aaa +aaa +aaa +aaa +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 +bgP +blP +bnP +aaf +aaf +bpK +bpK +bpK +bwx +bpK +bpK +bpK +bso +bpK +bwx +bpK +bLp +bNn +bPe +bRk +bTC +bVF +bLp +aaa +bpI +biR +biR +bpI +biR +biR +blV +clD +blP +bnO +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +adm +adn +adn +adn +aes +aaa +aaa +adn +aeG +aeG +aeG +aeG +aeG +adn +aiO +aeh +akL +age +amQ +adn +adn +adn +aeI +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +bgO +blP +bnP +aaa +bpK +bpK +bpK +buS +bwy +bpK +bAc +bpK +bwy +bwG +bHn +bpK +bLp +bNo +bPf +bRl +bTD +bVG +bLp +bYV +bYV +ccH +cep +bYV +bYV +aaf +aaf +bgP +blP +bnP +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 +"} +(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 +adn +adA +adT +aeh +adn +aeE +aaa +adn +afw +afL +afw +agG +ahp +adn +aiP +aeh +akL +age +amR +adn +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +agg +agg +bgP +blP +bnQ +aaf +bpK +bpK +btw +buT +bwz +byo +bAd +byt +byq +bFv +byq +btw +bLp +bNp +bLp +bRm +bTE +bLp +bLp +bYW +caV +ccI +bYX +cfM +bYV +bYV +aaf +bgO +blP +bnO +agg +agg +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +ado +adB +adU +aeh +adn +adn +adn +adn +adn +adn +adn +agH +agb +adn +adn +adn +akM +agb +adn +adn +adn +aes +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +aaa +biN +bko +blP +bnP +aaa +bpK +bso +btx +buU +bwA +byp +bAe +byp +byp +bFw +bHo +bJl +bLq +bNq +bPg +bRn +bTF +bNq +bNp +bYX +caW +ccJ +ceq +cfN +chj +bYV +bYV +bgO +blP +bJr +blN +aaa +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +ado +adC +adV +aeh +aet +aeF +aeT +aeT +aeT +aeT +agb +aeG +aeG +aeG +aeG +aeG +akL +age +aeh +agb +aoC +apA +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +bgO +biO +bkp +blQ +bnR +bpJ +bpJ +bpJ +bty +buV +bwB +byq +byq +bBM +byq +byq +bHp +bJm +bLp +bNr +bPh +bRo +bTG +bVH +bLp +bYY +caX +ccK +cer +cfO +chk +ciR +ckt +clE +cna +coF +cqg +bnO +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +ado +adD +adW +aeh +aeu +aeG +adV +adV +adV +aeG +agc +aeG +adV +adV +adV +adV +akL +age +aeh +anY +aoC +apB +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +bgP +biP +bkq +blR +bnP +bpK +bpK +bsp +btz +buW +bwB +bpK +bAf +bpK +bpK +bFx +bHp +bJn +bLr +bNs +bPi +bRp +bTH +bVI +bLr +bYZ +caY +ccL +ces +caX +caW +ciS +bYV +bgO +biP +coG +blR +bnP +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +ado +adE +adV +aeh +adn +aeH +aeU +aeU +aeU +aeU +agb +aeG +aeG +aeG +aeG +aeG +akL +age +aeh +agb +aoC +apC +aaa +aaa +aaa +aaa +aaa +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 +bgO +biP +bkr +blS +bnS +bpK +bpK +bsq +btA +buX +bwC +byr +bAg +bBN +bpK +bFy +bHq +bAd +bLs +bNt +bPj +bRq +bTI +bVJ +bXn +bZa +caZ +ccM +cet +cfP +chl +ciT +cep +clF +biP +bkr +blR +bnO +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +ado +adF +adX +aeh +adn +adn +adn +afk +adn +adn +adn +agI +agb +adn +adn +adn +akM +agb +adn +adn +adn +aev +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +bgP +biP +bkq +blR +bnP +bpK +bpK +bsr +btz +buY +bwB +bpK +bAh +bpK +bpK +bFz +bHr +bJo +bLt +bNu +bPk +bRr +bTJ +bVK +bLt +bZb +cba +ccN +ceu +caX +caW +ciU +bYV +bgO +biP +coG +blR +bnP +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +adn +adG +adY +aeh +adn +aeI +aaa +aaa +aaa +adn +agd +aeG +ahq +adn +aiQ +aeh +akL +age +amS +adn +aoD +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +bgO +biQ +bks +blT +bnT +bpL +bpL +bpL +btB +buZ +bwD +btB +btB +bBO +btB +bFA +bHp +bJp +bLu +bNv +bPl +bRs +bTK +bVL +bLp +bZc +cbb +ccO +cev +cfQ +chm +ciV +cku +clG +cnb +coH +cqh +bnO +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +adp +adn +adn +adn +aev +aaa +aaa +aaa +aaa +afM +age +aeG +ahq +adn +aiR +aeh +akL +age +amT +adn +adn +adn +aeE +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +aaa +biR +bkt +blP +bnP +aaa +bpK +bso +btx +bva +bwE +bys +bAi +bys +bys +bFB +bHs +bJq +bLv +bNq +bPm +bRt +bTL +bVM +bLp +bZd +caW +ccJ +cew +cfR +chn +bYV +bYV +bgO +blP +bJk +blV +aaa +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +afN +agf +aeG +ahr +aet +aiS +aeh +akN +alM +amP +aeG +aoE +aoC +apA +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +agg +agg +bgP +blP +bnQ +aaf +bpK +bpK +btw +bvb +bwF +byt +bAd +byo +byq +bFC +byq +btw +bLp +bNp +bPn +bRu +bTE +bLp +bLp +bYW +cbc +ccP +bYX +cfS +bYV +bYV +aaf +bgO +blP +bnO +agg +agg +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +adp +adn +adn +adn +adn +aiT +aeh +aeG +aeG +amU +aeG +aoF +aoC +apB +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +bgO +blP +bnP +aaa +bpK +bpK +bpK +bvc +bwG +bpK +bAj +bpK +bDD +bFD +bwy +bpK +bLp +bNw +bPo +bRt +bTM +bNw +bLp +bYV +bYV +ccQ +cep +bYV +bYV +aaf +aaf +bgP +blP +bnP +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +ahs +adn +aiU +aeh +akO +alN +amV +aeG +aoE +aoC +apC +aaa +aaa +aaa +aaa +aaa +aaa +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 +bgO +blP +bnP +aaf +aaf +bpK +bpK +bpK +bwx +bpK +bpK +bpK +bso +bpK +bwx +bpK +bLp +bNx +bPp +bRv +bTB +bVN +bLp +aaa +bpM +biN +biN +bpM +biN +biN +blN +clH +blP +bnO +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +adp +adn +adn +adn +adn +adn +adn +adn +adn +aev +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +bgO +blP +bnO +aaf +aaf +aaf +bpK +bpK +bpK +bpK +bpK +bpK +bpK +bpK +bpK +bpK +bLp +bNy +bPp +bRj +bTC +bVO +bLp +bNB +bHj +bww +bww +cfL +bnM +ciW +bnM +bnM +cnc +bnP +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 +"} +(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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +bgO +blP +bnU +bpM +biN +biN +biN +bpM +biN +biN +bpM +biN +biN +bpM +biN +aaa +bLp +bNz +bPq +bRw +bTC +bVP +bLp +bgO +bHk +ccR +biR +blV +biR +biR +blV +biR +biR +aaa +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +bgP +blU +bnM +bnM +bnM +bnM +btC +buR +bww +bww +bww +bBP +bww +bww +bHt +bnP +bLp +bNw +bPr +bRt +bTL +bVQ +bLp +bgO +bHk +bnO +agg +agg +aaf +agg +agg +agg +aaf +agg +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +aaa +blV +biR +biR +blV +biR +biR +blV +biR +biR +blV +biR +blV +bkt +bHk +bnQ +bLp +bLp +bPn +bRx +bTE +bLp +bLp +bNB +bHk +bnP +agg +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 +"} +(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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +agg +agg +agg +aaf +agg +agg +agg +aaf +agg +agg +agg +agg +agg +bgP +bHk +bJr +biN +bNA +bPs +bRy +bTN +bnU +biN +bko +bHk +bnO +agg +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 +"} +(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 +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 +agg +bgO +bHu +bJs +bLw +bww +bPt +bRz +bTO +bww +bww +bww +bHl +ccS +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 +dLn +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +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 +aaa +bkt +bJt +bJk +bNj +bPu +bRA +blR +bnN +biR +blV +biR +aaa +agg +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 +aaH +aaa +aaH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +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 +agg +agg +bgP +bJu +bnO +bNB +bPu +bRB +blR +bnQ +agg +agg +agg +aaf +agg +aaf +aaf +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +eaT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +aaa +aaf +aaa +aaf +aaa +bJv +aaa +bNB +bPu +bRC +blR +bnQ +aaa +aaf +aaa +aaa +aaa +aaf +aaa +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +"} +(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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +aaf +agg +aaa +aaf +aaa +bJv +aaa +bNB +bPu +bRB +blR +bnQ +aaa +aaf +aaa +aaa +aaa +agg +aaf +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +dBa +dAZ +dBa +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 +"} +(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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +aaa +agg +aaf +aaf +aaf +bJv +aaf +bNC +bPu +bRD +bTP +aGe +aaf +aaf +aaf +aaf +aaf +agg +aaa +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +dAZ +dBa +dFD +dBa +dAZ +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 +"} +(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 +aaa +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 +agg +aaa +aaf +aaa +bJv +aaa +bgP +bPv +bRE +bTQ +bnO +aaa +aaf +aaa +aaa +aaa +agg +aaf +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +dBa +dBa +dEw +dFE +dHn +dBa +dBa +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 +"} +(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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +aaf +agg +aaa +aaf +aaa +bJv +aaa +bND +biR +bRF +biR +bVR +aaa +aaf +aaa +aaa +aaa +aaf +aaa +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaf +aaf +dAZ +dAZ +dDG +dEx +dFF +dHo +dHV +dAZ +dAZ +aaf +aaf +aaH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +aaa +agg +aaf +aaf +aaf +bJv +aaf +bNE +aaf +bRG +aaf +bNE +aaf +aaf +aaf +aaf +aaf +agg +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 +dBa +dCk +dDH +dDH +dFG +dHp +dFF +dII +dBa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +aaa +aaf +aaa +aaf +aaa +bJv +aaa +bNF +aaa +bRG +aaa +bVS +aaa +aaf +aaa +aaa +aaa +agg +aaf +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaf +aaf +dAZ +dAZ +dDI +dEy +dDH +dHq +dHW +dAZ +dAZ +aaf +aaf +aaH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +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 +agg +aaa +aaf +aaa +bJv +aaa +aaf +bPw +bRG +bTR +aaf +aaa +aaf +aaa +aaa +aaa +agg +aaa +agg +aaa +aaa +aaa +aaa +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +dBa +dBa +dEz +dFF +dHr +dBa +dBa +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 +"} +(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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +aaf +agg +aaa +aaf +aaa +bJv +aaa +aaf +aaa +bRH +aaa +aaf +aaa +aaf +aaa +aaa +aaa +agg +aaf +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +dAZ +dBa +dFH +dBa +dAZ +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 +"} +(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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +aaa +agg +aaf +aaf +aaf +bJw +bLx +bNG +aaf +bRI +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaa +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +dBa +dFI +dBa +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 +"} +(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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +aaa +aaf +aaa +aaf +aaa +aaf +aaa +bJv +aaa +bRJ +aaa +aaf +aaa +aaf +aaa +aaa +aaa +agg +aaf +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +"} +(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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +aaf +agg +aaa +aaf +aaa +aaf +aaa +bJv +aaa +bRJ +aaa +aaf +aaa +aaf +aaa +aaa +aaa +agg +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 +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 +"} +(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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +agg +aaf +aaf +aaf +aaf +aaf +bJv +aaf +bRJ +aaf +aaf +aaf +aaf +aaf +aaf +aaf +agg +aaa +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +aaa +aaf +aaa +aaa +aaa +aaf +aaa +bJv +aaa +bRJ +aaa +aaf +aaa +aaf +aaa +aaa +aaa +agg +aaf +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +"} +(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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +aaf +agg +aaa +aaa +aaa +aaf +aaa +bJv +aaa +bRJ +aaa +aaf +aaa +aaf +aaa +aaa +aaa +aaf +aaa +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +"} +(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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +aaa +agg +aaf +aaf +aaf +aaf +aaf +bJv +aaf +bRI +aaf +aaf +aaf +aaf +aaf +aaf +aaf +agg +aaf +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +aaf +agg +aaa +aaa +aaa +aaf +aaa +bJv +aaa +bRJ +aaa +aaf +aaa +aaf +aaa +aaa +aaa +agg +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 +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 +"} +(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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +aaa +aaf +aaa +aaa +aaa +aaf +aaa +bJv +aaa +bRJ +aaa +aaf +aaa +aaf +aaa +aaa +aaa +agg +aaa +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +"} +(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 +aaa +aaa +aae +aaf +aae +aaf +aae +aae +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 +agg +aaf +agg +aaf +aaf +aaf +aaf +aaf +bJv +aaf +bRJ +aaf +aaf +aaf +aaf +aaf +aaf +aaf +agg +aaf +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +"} +(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 +aae +aae +aaf +aae +aae +aaa +aaf +aaa +aaf +aaa +aae +aae +aaf +aae +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 +aaf +aaa +bJv +aaa +bRJ +aaa +aaf +aaa +aaf +aaa +aaa +aaa +agg +aaa +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +"} +(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 +aae +aaa +aaf +aaa +aaf +aaa +alO +amW +anZ +aaa +aaf +aaa +aaf +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 +agg +agg +aaf +agg +agg +agg +aaf +agg +agg +agg +aaf +agg +aaf +aaf +bJv +aaa +bRJ +aaa +aaf +aaa +aaf +aaa +aaa +aaa +agg +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 +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 +"} +(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 +aae +aaa +alO +amW +anZ +aaa +alO +amW +anZ +aaa +alO +amW +anZ +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 +agg +aaa +aaa +aaf +aaa +aaf +aaa +aaf +aaa +aaf +aaa +aaf +aaa +aaa +bJv +aaf +bRI +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +"} +(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 +aaf +aaa +alO +amW +anZ +aaa +alO +amW +anZ +aaa +alO +amW +anZ +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 +agg +aaf +agg +agg +aaf +agg +agg +agg +agg +aaf +agg +agg +agg +aaf +bJv +aaa +bRJ +aaa +aaf +aaa +aaf +aaa +aaf +agg +agg +agg +agg +aaf +agg +agg +aaf +agg +agg +agg +agg +agg +agg +aaf +aaf +aaf +aaf +aaH +aaf +aaf +agg +agg +agg +aaf +agg +agg +agg +aaf +agg +agg +aaf +agg +agg +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 +"} +(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 +aae +aaf +alO +amW +anZ +aaf +alO +amW +anZ +aaf +alO +amW +anZ +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 +agg +aaa +agg +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +agg +aaa +bJv +aaa +bRJ +aaa +aaf +aaa +aaf +aaa +aaf +aaa +aaa +aaf +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaf +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaH +aaa +aaf +aaa +aaf +aaa +aaf +aaa +aaf +aaa +aaf +aaa +aaf +aaf +aaa +agg +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 +"} +(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 +aae +aaa +alO +amW +anZ +aaa +apD +amW +anZ +aaa +alO +amW +anZ +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 +aaf +aaa +agg +aaf +btD +btD +btD +btD +btD +btD +btD +aaf +aaf +aaf +bJv +aaf +bRJ +aaf +aaf +aaf +agg +agg +agg +aaf +agg +agg +agg +aaf +agg +agg +agg +aaf +agg +agg +agg +aaf +agg +agg +agg +aaf +aaf +aaH +aaf +agg +agg +agg +aaf +agg +agg +agg +aaf +agg +aaf +agg +agg +aaf +aaf +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 +"} +(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 +aae +aaf +aae +aae +aaa +alO +amW +anZ +aaa +aaf +amX +aaf +aaa +alO +amW +anZ +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 +agg +aaf +agg +aaf +btD +bwH +bwH +bAk +bwH +bwH +btD +aaf +agg +aaa +bJv +aaa +bRJ +aaa +aaa +aaf +aaa +aaf +aaa +aaf +aaa +aaf +aaa +aaf +aaa +aaf +aaa +aaf +aaa +aaf +aaa +aaf +aaa +aaf +aaa +aaf +aaa +aaH +aaa +aaf +aaa +aaf +aaf +aaf +aaa +aaf +aaf +aaf +aaa +aaf +aaf +aaf +agg +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 +"} +(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 +aae +aaa +aaf +aaf +aaf +aaf +amX +aaf +aaf +aaf +apE +aaf +aaf +aaf +amX +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 +agg +aaa +aaf +aaf +btD +bwH +byu +byv +byw +bwH +btD +aaf +agg +aaa +bJv +aaa +bRJ +aaa +aaf +bVT +bZe +bZe +bZe +bVT +bZe +bZe +bZe +bVT +bZe +bZe +bZe +bVT +bZe +bZe +bZe +bVT +bZe +bZe +bZe +bVT +aaf +aaH +bWg +bWg +cJc +bWg +bWg +bWg +cJc +bWg +bWg +bWg +cJc +bWg +bWg +aaf +agg +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 +"} +(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 +aae +aaf +aiV +ajJ +ajJ +ajJ +ajJ +ajJ +aoG +apE +aqX +ajJ +ate +auu +apE +awP +axK +axK +axK +axK +ate +apE +apE +aaf +aaH +aaH +aaH +aaH +aaH +aaf +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +aaf +agg +aaf +btD +bwH +byv +bAl +bBQ +bwH +btD +aaf +aaf +aaf +bJv +aaf +bRI +aaf +aaf +bVT +bVT +bVT +bVT +bVT +bVT +bVT +bVT +bVT +bVT +bVT +bVT +bVT +bVT +bVT +bVT +bVT +bVT +bVT +bVT +bVT +bWg +cEM +bWg +chC +cJd +cKU +bWg +cOb +cQb +cRv +bWg +cUW +cWy +cBl +bWg +aaa +agg +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 +"} +(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 +aae +aaa +aaf +aaf +aaf +aaf +amY +aaf +aaf +aaf +apE +aaf +aaf +aaf +amY +aaf +aaf +aaf +aaf +aaf +aaf +aaf +apE +aaf +aHA +aaf +aaa +aaf +aaH +aaa +aaf +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaa +agg +aaf +btD +bwH +byw +byv +byu +bwH +btD +aaf +agg +aaa +bJv +aaa +bRJ +aaa +aaf +bVT +bZe +bZe +bZe +bVT +bZe +bZe +bZe +bVT +bZe +bZe +bZe +bVT +bZe +bZe +bZe +bVT +bZe +bZe +bZe +bVT +cDx +cme +bWg +cHH +cJe +cKV +bWg +cOc +cQc +cbu +bWg +cUX +cWz +cYo +bWg +aaf +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +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 +"} +(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 +aae +aae +aaf +aaf +aaa +alO +amZ +anZ +aaa +aaf +amY +aaf +aaa +alO +amZ +anZ +aaa +aaf +aaa +aaa +aaf +aBX +aEN +aBX +aaH +aIN +aKf +aIN +aNC +aaf +agg +aaf +aaf +agg +agg +agg +agg +agg +aaf +agg +agg +agg +agg +agg +aaf +agg +aaf +agg +aaf +btD +bwI +byx +bwH +bBR +bDE +btD +aaf +aaf +aaa +bJv +aaa +bRJ +aaa +bVT +bVT +bVT +aaf +aaa +cex +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaf +aaa +aaa +aaa +cvY +aaa +aaf +bVT +bVT +bVT +cEM +bWg +bWg +chF +bWg +bWg +bWg +chF +bWg +bWg +bWg +chF +bWg +bWg +aaf +agg +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 +"} +(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 +aae +aaa +alO +amZ +anZ +aaa +alO +amZ +anZ +aaa +alO +amZ +anZ +aaa +agg +aaa +aaf +aaf +aBX +aEO +aBX +aaH +aBZ +aKg +aBZ +aND +aPf +aaa +aaf +aaa +aaf +aaa +aaf +aaa +aaf +aaa +aaf +aaa +aaf +aaa +aaf +aaa +aaf +aaa +aaa +aaf +btD +bwJ +byy +bAm +byy +bDF +btD +aaf +bJx +bLx +bNH +aaf +bRJ +aaf +bVT +bXo +bZf +bZf +aaa +cey +cfT +cfT +ciX +cfT +cfT +ciX +cfT +cfT +ciX +cfT +cfT +cvZ +aaa +bZf +bZf +cCm +bVT +bZD +cGp +cHI +cJf +cHI +cMp +cOd +cQd +cHI +cHI +cMp +cWA +cYp +bWg +aaf +agg +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 +"} +(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 +aae +aaf +alO +amZ +anZ +aaf +alO +amZ +anZ +aaf +alO +amZ +anZ +aaf +agg +aaf +aaf +aBX +aBX +aEN +aBX +aBZ +aBZ +aKh +aBZ +aBZ +aPg +agg +agg +agg +agg +agg +aaf +agg +agg +agg +agg +agg +aaf +agg +agg +agg +agg +agg +aaf +aaf +btD +bwK +byz +byz +bBS +bDG +btD +aaf +bJv +aaf +aaf +aaf +bRJ +aaf +bVT +bXo +bZf +cbd +aaf +cez +cfU +cho +ciY +cho +cho +ciY +cho +cho +ciY +cho +cuI +cez +aaf +czj +bZf +cCm +bVT +cyh +cGq +ceO +cJg +cdj +cMq +cMq +bZC +bZD +cdj +cMq +cGq +bZC +cJc +aaf +agg +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 +"} +(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 +aae +aaa +alO +amZ +anZ +aaa +alO +amZ +anZ +aaa +alO +amZ +anZ +aaa +agg +aaa +aaf +aBY +aDs +aEP +aGf +aBZ +aIO +aKi +aLN +aNE +aPh +aaf +aaf +aaa +aaf +aaf +aaf +aaa +aaf +aaf +aaf +aaa +aaf +aaf +aaf +aaa +aaf +aaf +aaf +aaf +btD +bwL +byA +bAn +bBT +bDH +btD +bHv +bJy +bHv +bHv +aaf +bRJ +aaf +bVT +bXp +bZg +cbd +aaa +cez +cfV +chp +aaf +aaf +clI +aaa +aaH +aaf +aaf +csS +cuJ +cez +aaa +czj +cAU +cCn +bVT +bZD +cGq +cHJ +cHJ +cHJ +cHJ +cHJ +cHJ +cHJ +cHJ +cHJ +cWB +cbu +bWg +aaf +aaf +aaa +dcs +dcs +aHW +dcs +aHW +dcs +dcs +aaa +aaa +agg +agg +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 +"} +(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 +aaf +aaa +alO +amZ +anZ +aaa +alO +amZ +anZ +aaa +alO +amZ +anZ +aaa +aaf +aaa +aaf +aBY +aDt +aEQ +aGg +aBZ +aIP +aKj +aLO +aBZ +aPg +aNV +aNV +aNV +aNV +aNV +aNV +aNV +aNV +aNV +aNV +aNV +aNV +aNV +aNV +aNV +aNV +aNV +aaf +aaf +btD +bwM +byB +bAo +bBU +bDI +btD +bHw +bJz +bLy +bHv +bPx +bRK +bPx +bVT +bXq +bZf +cbd +aaf +ceA +cfW +aaf +aaa +aaa +aaH +aaf +aaH +aaa +aaa +aaf +cuK +cwa +aaf +czj +bZf +cAW +bVT +bZC +cGr +cHJ +cJh +cKW +cMr +cOe +cQe +cRw +cTi +cHJ +cWC +cYq +bWg +aaf +aaf +aaf +dcs +dgQ +diF +dks +dlV +diJ +dcs +aaf +aaf +aaf +aaf +aaf +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 +"} +(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 +agg +aaa +aaf +aaa +aaf +aaa +alO +amZ +anZ +aaa +aaf +aaa +aaf +aaa +agg +aaf +aaf +aBY +aDu +aER +aGh +aBZ +aIQ +aKk +aLP +aBZ +aPh +aNV +aSH +aUh +aSH +aNV +aZi +baG +aZi +aNV +bfa +bgQ +bfa +aNV +blW +bnV +blW +aNV +aaf +aaf +btD +bwN +byC +bAp +bBV +bDJ +btD +bHx +bJy +bLz +bHv +bPy +bRL +bTS +bVT +bXr +bZh +cbd +aaa +cez +cfV +aaf +aaa +aaH +aaH +aaH +aaH +aaH +aaa +aaf +cuJ +cez +aaa +czj +cAV +cCo +bVT +cEN +cGs +cHK +cJi +cKX +cMs +cOf +cQf +cRx +cTj +cHJ +cWD +cYr +bWg +aHW +dcs +aHW +dcs +aPD +diG +dkt +dlW +aNZ +dcs +aHW +dcs +aHW +aHW +aaf +agg +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 +"} +(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 +aaf +agg +agg +aaf +agg +aaf +aaa +aaf +aaa +aaf +aaa +aaf +agg +aaf +agg +agg +aaf +aaf +aBY +aBY +aES +aGi +aBZ +aIP +aKl +aLO +aBZ +aPg +aNV +aSI +aUi +aSH +aNV +aZj +baH +aZi +aNV +bfb +bgR +bfa +aNV +blW +blW +bpN +aNV +aaf +btD +btD +btD +byD +bAq +bBW +btD +btD +bHy +bJA +bLA +bNI +bPz +bRM +bTT +bVT +bVT +bXq +cbd +aaH +cez +cfV +chq +aaH +aaH +clJ +cho +coI +aaH +aaH +aaH +cuJ +cez +aaH +czj +cAW +bVT +bVT +bZD +cGt +cHL +cJj +cKY +cMt +cOg +cQg +cKY +cTk +cUY +cWE +cYq +bWg +daN +dct +ddL +daP +aMr +diH +dku +dlW +aNZ +ddQ +dqt +drZ +daT +aHW +aaf +agg +agg +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 +"} +(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 +aaf +aaa +aaf +aaa +agg +agg +agg +agg +agg +agg +agg +agg +agg +aaf +aaf +aaf +aaf +aaf +aBZ +aDv +aET +aGj +aHB +aIR +aKm +aLQ +aBZ +aPh +aNV +aSJ +aUj +aWb +aNV +aZk +baI +bcd +aNV +bfc +bgS +biS +aNV +blX +bnW +bpO +aNV +aaH +btD +bvd +bwO +byE +bAr +bBX +bDK +bFE +bHz +bJB +bLB +bNJ +bPA +bRN +bTU +bVT +bVT +bXq +bZf +aaf +ceA +cfW +aaa +aaf +aaH +clK +cnd +coJ +aaH +aaf +aaa +cuK +cwa +aaf +bZf +cAW +bVT +bVT +cEO +cGu +cHM +cJk +cKZ +cMu +cOh +cQh +cOh +cTl +cUZ +cWF +cYs +bWg +daO +dcu +ddM +dfE +dgR +dgR +dkv +dgR +dny +ddM +dqu +dsa +dlX +dcs +aaf +aaf +aaf +aaf +agg +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 +"} +(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 +aaf +aaa +aaf +aaa +aaf +aaa +aaa +aaf +aaa +aaa +agg +aaa +aaH +aCa +aDw +aEU +aGk +aHC +aIS +aKn +aLR +aNF +aPi +aNV +aSK +aIU +aWc +aXL +aSK +aIU +aWc +aNV +aSK +aIU +aWc +aNV +aWc +aIU +aSK +aNV +aaH +btE +bve +bwP +byF +bAs +bBY +bDL +bFF +bHA +bJC +bLC +bNK +bPB +bRO +bTV +bVT +bVT +bXq +cbd +aaH +cez +cfV +aaH +aaH +aaH +clL +cne +coK +aaH +aaH +csT +cuJ +cez +aaH +czj +cAW +bVT +bVT +cEP +cGq +cHJ +cJl +cLa +cMv +cOi +cQi +cRy +cTm +cHJ +cWG +cYt +bWg +daP +dcv +aMr +aKI +aPD +diI +dkw +dlX +diJ +aNZ +aMr +dfL +dtq +aHW +aaf +aaa +aaa +aaf +agg +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 +"} +(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 +aaf +aaa +aaf +aaa +agg +agg +agg +agg +agg +agg +agg +aaf +aaf +aBZ +aDx +aEV +aGl +aHD +aIT +aKo +aLS +aBZ +aaf +aNU +aSL +aNU +aWd +aNU +aSL +aNU +aWd +aNU +aSL +aNU +aWd +aNU +aWd +aNU +bpP +aNU +aaH +btD +bvf +bwO +byG +bAt +bBZ +bDM +bDM +bDM +bDM +bDM +bDM +bDM +bDM +bDM +bVT +bXs +bZi +cbd +aaa +cez +cfV +aaf +aaa +aaH +aaH +aaH +aaH +aaH +aaa +aaf +cuJ +cez +aaa +czj +cAX +cCp +bVT +cEQ +cGs +cHJ +cHJ +cLb +cMw +cLb +cMw +cLb +cHJ +cHJ +cWH +cJw +bWg +daQ +dcw +ddN +dfF +dgS +dgS +dgS +dgS +dgS +doG +aMr +dsb +diK +dcs +dcs +dcs +aaa +aaf +agg +aaf +aaf +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 +"} +(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 +agg +aaa +agg +aaa +aaf +aaa +aaf +aaa +aaf +aaf +aaf +aaf +aaf +aBZ +aDy +aEW +aGm +aHE +aIU +aIU +aIU +aIZ +aIZ +aIZ +aSM +aIU +aWe +aIZ +aSM +aIU +aWe +aIZ +aSM +aIU +aWe +aIZ +aWe +aIU +bjm +aIZ +aIZ +btF +bvg +bvg +byH +bAu +bvg +bDM +bFG +bHB +bJD +bLD +bNL +bPC +bRP +bTW +bVT +bXq +bZf +cbd +aaf +ceA +cfW +aaf +aaa +aaa +aaH +aaf +aaH +aaa +aaa +aaf +cuK +cwa +aaf +czk +bZf +cAW +bVT +cyf +cGv +cHJ +cJm +cLc +cMx +cOj +cQj +cRz +cTn +cHJ +cWI +cYu +bWg +daR +dcx +ddO +dfG +dfL +dfL +dkx +dkx +diJ +doH +dqv +aNZ +aNZ +aPD +diJ +dcs +aaa +aaf +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 +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +agg +aaf +agg +aaf +asa +atf +asa +atf +asa +atf +asa +atf +aaH +aBZ +aDz +aEW +aGn +aHF +aIV +aKp +aLT +aNG +aPj +aQZ +aSN +aUk +aWf +aXM +aZl +aPj +bce +bdo +aZl +aPj +aWf +bku +blY +bnX +bpQ +brb +bss +btF +bvh +bwQ +byI +bAv +bCa +bDM +bFH +bHC +bJE +bLE +bLE +bLE +bRQ +bTX +bVT +bXt +bZg +cbd +aaa +cez +cfV +chr +aaf +aaf +aaH +aaa +coL +aaf +aaf +csU +cuJ +cez +aaa +czj +cAU +cCq +bVT +cER +cGs +cHJ +cJn +cLd +cMy +cOk +cMy +cRA +cTo +cHJ +cWJ +cYu +bWg +daS +dcy +aNZ +dfH +dgT +dgT +diJ +dlY +dfL +doH +diJ +dsc +dtr +dma +dwd +aHW +aaf +aaH +aaa +aaa +aaa +aaf +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaf +aaa +agg +aaa +asb +atg +auv +atg +asb +atg +auv +ath +atf +aCa +aDA +aEX +aGo +aHG +aIW +aKq +aLU +aNH +aPk +aRa +aSO +aUl +aWg +aXN +aZm +baJ +bcf +aXN +bfd +bgT +biT +bkv +blZ +bnY +bpR +brc +bst +btF +bvi +bwR +byJ +bAw +bCb +bDM +bFI +bHD +bJF +bLF +bNM +bPD +bRR +bTY +bVT +bXq +bZf +cbd +aaf +ceB +cfX +chs +chs +chs +chs +cnf +chs +chs +chs +chs +cuL +cwb +aaf +czj +bZf +cAW +bVT +cES +cGq +cHJ +cJo +cLe +cMz +cOl +cQk +cRB +cTp +cHJ +cWJ +cYv +bWg +daT +dcz +ddP +dfI +dgU +dgT +dky +dgU +aPD +doH +aPD +dsc +dts +diJ +dwe +dcs +aaa +aaH +aaf +aaf +aaf +aaH +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 +"} +(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 +agg +aaf +agg +agg +agg +agg +agg +aaf +agg +agg +aaf +agg +aaf +asb +asb +asb +asb +asb +asb +asb +asa +awQ +aCa +aDB +aEY +aGp +aHH +aIU +aKq +aLV +aNI +aPl +aRb +aSP +aUm +aUm +aUm +aZn +aUm +aUm +aUm +bfe +bgU +biU +aPw +bma +bnZ +bpS +baK +bsu +btG +bvj +bwS +byK +bAx +bCc +bDM +bFJ +bHD +bJG +bLG +bNN +bPE +bRS +bTZ +bVT +bXu +bZj +cbe +aaa +aaf +aaa +aaf +ceC +ceC +ceC +cng +ceC +ceC +ceC +aaf +aaa +aaf +aaa +czl +cAY +cCr +bVT +cER +cGw +cHN +cJp +cLf +cMA +cOl +cQl +cRC +cTq +cHJ +cWK +cJA +bWg +daU +dcz +ddQ +dfI +dgU +aPD +dkz +dfL +dgT +doH +aNZ +dsc +dtt +aNZ +dwf +aHW +aaf +aaH +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 +"} +(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 +agg +aaf +aaa +aaa +aaf +aaa +aaf +aaa +aaf +aaf +aaf +aaf +aaf +asb +ath +auw +ath +awQ +ath +auw +ath +atf +aBZ +aDC +aEZ +aGq +aHI +aIU +aKq +aLW +aNJ +aPm +aRc +aSQ +aUn +aWh +aWh +aZo +baK +aWq +aWq +bff +bgV +biV +bkw +bmb +boa +bpT +brd +bsv +btH +bvk +bwR +byL +bAy +bCd +bDM +bFK +bHE +bJH +bLH +bNO +bPF +bRT +bUa +bVT +bVT +bZk +bVT +bVT +ceC +ceC +ceC +ceC +ckv +clM +cnh +clM +cqi +ceC +ceC +ceC +ceC +bVT +bVT +cAZ +bVT +bVT +cET +cGx +cHO +cJq +cLg +cMB +cOm +cQm +cRD +cTr +cVa +cWL +cYw +bWg +aPD +dcz +ddR +dfI +aPD +diJ +diJ +dfL +dkx +doH +aMr +dsd +dtu +aPD +dwg +dcs +aaa +aaH +aaf +aaf +aaf +aaH +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 +"} +(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 +agg +aaf +aaf +agg +agg +agg +agg +aaf +agg +aaf +aiW +aoK +aoK +asc +aoK +aoK +aoK +aiW +aoK +aoK +aoK +asc +aiW +aBZ +aFa +aGr +aHJ +aIX +aKr +aLX +aNK +aPn +aRd +aSR +aUo +aWi +aXO +aZp +baL +bcg +aSR +bfg +bgW +biW +aPw +bmc +bob +bpU +bre +bsw +btI +bvl +bwT +byM +bAz +bCe +bDM +bFL +bHF +bJI +bLI +bJI +bPG +bRU +bUb +bVT +bXv +bZl +cbf +ccT +ceD +ceD +ceD +ceC +ckw +clN +cni +coM +cqj +ceC +csV +ceD +cwc +cxJ +cbf +cBa +cCs +bVT +cEU +cGy +cHM +cJr +cLh +cMC +cOl +cQn +cRE +cRy +cHN +cWM +cYx +cZI +daV +dcA +ddS +dfJ +dgV +dgV +dgV +dlZ +dnz +doI +aNY +dse +dtv +dcs +dcs +dcs +aaa +aaf +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 +aae +aae +aae +aaf +dYc +aae +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 +"} +(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 +aaa +aaa +aaa +aaa +aaa +agg +aaa +aaf +aaa +aaf +aaf +aaf +aaf +aaf +aaf +aiW +apF +aqY +asd +ati +aux +avM +awR +axL +axL +axL +asd +aCb +aBZ +aFb +aGs +aHK +aIY +aKs +aLY +aNL +aPm +aRc +aSS +aUp +aWj +aXP +aZq +aZq +aWj +bdp +bfh +bgW +biX +bkx +bmd +boc +bpV +brf +bsx +btJ +bvg +bvg +byH +bAA +bvg +bDM +bFM +bHG +bJJ +bLJ +bNP +bPH +bRV +bDM +bVT +bXw +bZk +bVT +ccU +ceE +cfY +cht +ciZ +ckw +clO +cnj +coN +cqk +ciZ +csW +cuM +cht +ccU +bVT +cAZ +bXw +bVT +cEV +cGz +cHJ +cJs +cLi +cMD +cOn +cQo +cRF +cTs +cHJ +cWN +cYy +cZJ +daW +dcB +ddT +dfK +dgW +diK +dkA +dma +aNZ +doJ +aMr +dfL +dtw +aHW +aaf +aaa +aaa +aaf +agg +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 +aae +aaf +dYc +aae +aae +aaa +aaa +aaf +aaa +aaa +aae +aae +aaf +aae +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 +"} +(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 +agg +aaf +agg +aaf +aiW +aiW +aiW +aiW +aiW +aiW +aiW +apG +aqZ +ase +aqZ +auy +avN +awS +axM +aqZ +azZ +aAV +aCc +aBZ +aBZ +aGt +aBZ +aIZ +aKt +aLZ +aNM +aPo +aRd +aST +aUq +aWk +aXQ +aZr +baL +bch +aUo +bfi +bgX +biY +bky +bme +bod +bpW +brg +bsy +btK +bvm +bwU +byN +bAB +bCf +bDN +bFN +bHH +bJK +bDM +bNQ +bPI +bRW +bLJ +bVU +bXx +bZm +cbg +ccV +ceF +cfZ +chu +cja +ckx +clP +cnk +coO +cql +cja +csX +cfZ +ccV +ccV +czm +bZm +cCt +bVT +cEW +cGA +cHJ +cJt +cLj +cME +cME +cQp +cRG +cTt +cHJ +cWD +cYz +bWg +daX +dcC +ddU +dfL +dfL +dfL +dfL +dgT +diL +dfL +dfL +dgT +ddV +dcs +aaf +aaf +aaf +aaf +agg +aaf +aaf +aaf +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaa +aaa +aaf +aaa +aaa +dZB +eab +ear +aaa +aaa +aaf +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 +"} +(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 +aaf +aaa +agg +aaf +aiW +ajK +akP +akP +akP +akP +aoH +apH +ara +asf +atj +auz +ato +awT +axN +aza +aAa +aAW +aCd +aDD +azd +aGu +aHL +aIZ +aKu +aMa +aNL +aPm +aRe +aSU +aUr +aWl +aWl +aWl +baM +aSY +bdq +bfj +bgV +biZ +aIU +bmf +aIU +aIZ +aIZ +aIZ +btF +bvg +bvg +byO +bAC +bwR +bDO +bFO +bHI +bwR +bDM +bNR +bPJ +bRX +bUc +bVV +bXy +bZn +cbh +ccW +ceG +cga +chv +cjb +cky +clQ +cnl +coP +cqm +cjb +chv +cuN +cwd +cxK +czn +bZp +cbh +bVT +cEX +cGB +cHJ +cJu +cLk +cMF +cOo +cQq +cRH +cTu +cHJ +cWD +cYA +bWg +daT +dcD +ddV +dfM +ddV +diL +aRq +dmb +dnA +doK +dqw +diJ +aRq +aHW +aaf +aaa +aaa +aaf +agg +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 +aae +aaa +dZB +eab +ear +aaa +dZB +eac +ear +aaa +dZB +eab +ear +aaa +dYc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +agg +aaf +agg +aaa +aiW +ajL +akQ +ajL +ajL +ajL +aoH +apI +arb +asg +atk +auA +avO +auA +axO +azb +atk +aAX +aCe +aDE +aFc +aGv +aHM +aJa +aKv +aMb +aNL +aPm +aRf +aSV +aUs +aIU +aIU +aIU +aSV +aSV +bdr +bfk +bgY +bja +bkz +bmg +boe +bpX +brh +aIZ +btL +bvn +bwV +byP +bAD +bCg +bDP +bFP +bHJ +bJL +bDM +bNS +bPK +bRY +bUd +bVW +bXz +bZo +cbh +ccW +ceH +cgb +chw +bVT +ckz +clR +cnm +clR +cqn +bVT +csY +ceM +cwe +cxK +czn +cBb +cCu +bVT +cEY +cGq +cHJ +cHJ +cHJ +cHN +cOp +cHJ +cHJ +cHJ +cHJ +cGq +cYz +bWg +bWg +dcE +dcE +dcE +dcE +dcE +dcE +dcE +dcE +dcE +dcE +dcE +dcE +dcE +dcE +dcE +dcE +aaf +agg +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 +aaf +aaa +dZB +eac +ear +aaa +dZB +eac +ear +aaa +dZB +eac +ear +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 +"} +(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 +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +aaa +agg +aaf +aiW +ajM +ajL +ajL +ajL +ajL +aoH +apJ +arc +ash +atl +auB +auB +awU +atm +azc +aAb +aAY +aCf +aDF +aFd +aGw +aHN +aIZ +aKw +aMc +aNL +aPm +aRg +aIU +aUt +aWm +aXR +aZs +baN +bci +bds +bfl +bgZ +bjb +aXW +aXW +bof +aXW +bri +aIZ +btM +bvo +bwR +byQ +bAE +bCh +bDQ +bDQ +bHK +bJM +bDM +bNT +bPJ +bRX +bPM +bVW +bXA +bZp +cbh +ccW +ceI +ceM +chx +cjc +bVT +clS +bVT +clS +bVT +bVT +csZ +ceM +cwf +cxK +czn +bZp +cCv +cDy +cEZ +cGC +crJ +cmh +cLl +cMG +cOq +cLl +cRI +cMG +cmh +czC +cYB +cLl +daY +dcE +ddW +dfN +dgX +diM +dkB +dmc +dcE +doL +dqx +dsf +dtx +duE +dwh +dxn +dcE +aaf +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 +aaf +aaf +dZB +eac +ear +aaf +dZB +eac +ear +aaf +dZB +eac +ear +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 +"} +(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 +aaa +agg +aaf +aaf +aaa +aiW +ajL +ajL +alP +ajL +akR +aoI +apK +ard +asi +aiW +auC +auC +auC +aiW +azc +aAc +aAZ +aCg +aDG +aiW +aiW +aiW +aIZ +aKx +aMd +aNN +aPp +aRh +aSW +aUu +aWn +aXS +aZt +baO +bcj +bdt +bfm +bha +bjc +bkA +bmh +bkA +bpY +brj +bsz +btN +bvp +bwW +byR +bAF +bCi +bDR +bFQ +bHL +bJN +bLK +bNU +bPL +bRZ +bLJ +bVX +bXA +bZq +cbh +ccX +ceJ +cgc +chy +cjd +ckA +clT +cnn +coQ +cqo +crF +cta +cgc +ceJ +cxL +czn +bZq +cCw +cDz +cFa +cGD +bXM +cJv +bXM +cMH +bXM +cQr +cQr +cQr +cMH +cMH +cYC +cZK +daZ +dcE +ddX +dfO +dgY +dgY +dkC +dfP +dnB +deb +dfO +dsg +dgY +dkE +dwi +dxo +dcE +aaf +aaf +aaH +aaa +aaH +aaf +aaH +aaf +aaH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaa +dZB +eac +ear +aaa +dZB +eac +ear +aaa +dZB +eac +ear +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 +"} +(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 +aaa +aaf +aaa +agg +aaf +aiW +ajN +ajL +alQ +ana +ana +aoJ +apL +are +asj +aiW +auD +avP +avP +axP +azd +aiW +aAY +ark +aDH +aiW +aGx +aHO +aIZ +aKy +aMe +aNL +aPm +aRg +aIU +aUv +aWo +aXT +aZu +baP +aIU +bdu +bfn +bha +bjd +bkB +bmi +bog +bpZ +brk +aIZ +btF +btF +btF +byS +bAF +bCi +bDS +bFR +bHM +bJO +bDM +bDM +bPM +bDM +bDM +bNY +bXB +bZp +cbi +ccY +ccY +ccY +ccY +ccY +ccY +clU +cno +coR +ccY +ccY +ccY +ccY +ccY +cxM +czo +cBc +cCx +cDA +cFb +cGE +cHP +cJw +cHS +cHS +cHS +cHS +cHS +cHS +cHS +cHS +cHS +cyf +dba +dcF +ddY +dfP +dgZ +diN +dkD +dmd +dcE +doM +dfR +dkE +dty +duF +dkD +dxp +dcE +aaf +aaa +aaH +aaf +aaf +aaa +aaf +aaa +aaH +aaf +aaf +aaf +aaH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +agg +aaa +agg +agg +aaa +aae +aaa +dZB +eac +ear +aaa +aaf +ead +aaf +aaa +dZB +eac +ear +aaa +aaf +aae +aae +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 +"} +(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 +aaa +agg +aaf +agg +aaa +aiW +ajL +ajL +ajL +ajL +ajL +aoK +apM +arf +ask +aiW +auE +auE +auE +axQ +aze +aAd +aBa +aCh +aDI +aFe +aGy +aHP +aJb +aKz +aMf +aNO +aPm +aRg +aSX +aSV +aIU +aIU +aIU +baQ +aSV +bdv +bfn +bhb +bje +bkC +bkC +boh +bqa +brl +bsA +btO +bvq +bwX +byT +bAG +bCj +bDT +bFS +bHN +bJP +bLL +bNV +bPN +bSa +bUe +bVY +bXC +bZr +cbj +ccZ +ceK +ccZ +ceK +ccZ +ceK +clV +cnp +coS +cqp +crG +cqp +crG +cqp +crG +czp +cBd +cCy +bVT +cFc +bZC +cGq +cJx +cHS +cMI +cMI +cMI +cRJ +cMI +cMI +cMI +cHS +cyf +dbb +dcE +ddZ +dfQ +dha +diO +diO +dme +dnC +dkE +dfR +dsh +dsh +dsh +dwj +dfP +dcE +aaf +aaf +aaH +aaa +aaH +aaf +aaH +aaf +aaH +aaa +aaa +aaa +aaH +aaf +aaf +aaf +aaH +aaa +aaa +aaf +aaf +aaf +agg +aaf +aaf +aaf +aaf +aaf +aaf +aaa +aaa +ead +aaf +aaf +aaf +dVu +aaf +aaf +aaf +ead +aaf +aaa +aaa +aaf +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 +"} +(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 +aaa +agg +aaa +agg +aaf +aiW +ajO +ajL +akR +anb +ajL +aoK +apN +arg +asl +aoK +ajL +avQ +ajL +axR +ajL +axR +aBb +aCi +aDJ +aFf +aGz +aHQ +aJc +aKA +aMg +aNP +aPq +aRg +aSY +aUw +aWp +aXU +aZv +baR +aSU +bdw +bfo +bhc +bjf +bkD +bmj +boi +bqb +brm +bsB +btP +bvr +bwY +byU +bAH +bCk +bDU +bFT +bHO +bJQ +bLM +bNW +bPO +bSb +bUf +bVZ +bXD +bZs +cbk +cda +cda +cgd +cda +cda +cda +clW +cnq +coT +cqq +crH +ctb +cda +cwg +cxN +czq +cBe +cCz +bVT +cFd +bZC +cHQ +cJy +cHS +cMJ +cOr +cJH +cJH +cJH +cJH +cWO +cHS +cZL +dbc +dcG +dea +dfR +dhb +diP +dkE +diT +dcE +doN +dfR +dsi +dtz +duG +diO +diT +dcE +aaf +aaa +aaa +aaa +aaf +aaa +aaf +aaa +aaH +aaf +aaf +aaf +aaH +aaa +aaa +aaa +aaH +aaf +aaf +aaH +aaa +aaa +agg +aaf +dVu +dVu +dVu +dVu +dVu +dVu +dVu +dVu +dVu +dVu +eaC +eaK +dVu +dVu +dVu +eaV +eaW +eaW +eaW +eaX +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 +"} +(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 +aaa +agg +aaa +aaf +aaa +aiW +ajL +ajL +ajL +ajL +ajL +aoK +apO +arh +asm +aiW +auF +auF +auF +axS +azf +aAd +aBc +arj +aDK +aFg +aGA +aHR +aJd +aKB +aMh +aNQ +aPr +aRi +aSZ +aUx +aWq +aWq +aWq +aWq +aSZ +bdx +bfp +bhd +bjg +bkE +bmk +boj +bqc +brn +aJd +btQ +bvs +bwZ +byV +bAI +bCl +bDV +bFU +bDQ +bJR +bLN +bNX +bPP +bSc +bUg +bWa +bXE +bZt +cbl +cdb +ceL +cge +chz +cje +ckB +clX +cnr +coU +cqr +crI +crI +cuO +cwh +cxO +czr +cBf +crI +crI +cFe +cBp +bZD +cJz +cHS +cMI +cMI +cMI +cMI +cMI +cMI +cMI +cHS +cZL +dbc +dcE +deb +dfR +dhc +diQ +dkF +dmf +dcE +doO +dha +dfP +dtA +dsk +diO +dxq +dcE +aaf +agg +aaa +aaa +aaf +aaa +aaf +aaa +aaa +aaa +aaf +aaa +aaH +aaf +aaf +aaf +aaH +aaa +aaa +aaH +aaf +aaf +aaf +aaf +dVu +aaf +aaf +aaf +aaf +aaa +aaa +eae +aaf +aaf +aaf +dVu +aaf +aaf +aaf +eae +aaf +aaa +aaa +aaf +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 +"} +(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 +aaa +agg +aaf +agg +aaf +aiW +ajN +ajL +alR +anc +anc +aoL +apP +ari +asn +aiW +auG +avR +avR +axT +azd +aiW +aBd +ark +aDL +aiW +aGB +aHS +aIZ +aKC +aMi +aNR +aPs +aRj +aTa +aUy +aWr +aXV +aWr +aWr +aWr +bdy +bfq +bhe +bjh +bkF +bml +bok +bqd +bro +aIZ +aIZ +aIZ +aIZ +aIZ +aIZ +bCm +bDW +bFV +bFQ +bJS +bvg +bNY +bPQ +bSd +bUh +bNY +bXF +bZu +cbm +ccW +ceM +cgf +chA +bVT +ckC +clY +cns +coV +ckC +crI +ctc +cuP +cwi +cxP +czs +cBg +cCA +crI +cFe +bZC +bZD +cJA +cHS +cHS +cOs +cMI +cMI +cTv +cOs +cHS +cHS +cZM +dbd +dcE +dec +dfQ +dhd +diR +dkG +dmg +dnB +doP +dfP +dsj +dtA +duH +dkD +dxr +dcE +aaf +agg +aaa +aaa +aaf +aaa +aaf +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaf +aaa +aaH +aaf +aaf +aaH +aaa +aaa +agg +aaf +dVv +aaf +aaa +aaa +aae +aaa +dZB +eaf +ear +aaa +aaf +eae +aaf +aaa +dZB +eaf +ear +aaa +dYc +aae +aae +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 +"} +(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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +aaf +agg +aaa +aiW +ajL +ajL +ajL +ajL +ajL +aoI +apK +arj +aso +aiW +auH +auH +auH +aiW +azg +aAe +aBe +aCj +aDM +aiW +aiW +aiW +aIZ +aKD +aMj +aNL +aPm +aRc +aTb +aUz +aWs +aXW +aXW +baS +bck +bdz +bfr +bhf +bji +aIZ +bmm +bol +bqe +brp +bsC +btR +bvt +bxa +byW +aIZ +bCn +bDX +bFW +bHP +bJT +bLO +bJU +bPR +bSe +bUi +bWb +bXG +bZv +cbn +cdc +ceN +cgg +chB +bVT +ckD +clZ +cnt +coW +cqs +crI +ctd +cuQ +cwj +cxQ +czt +cBh +cCB +crI +cFf +cGF +cHR +cJB +cHS +cMK +cOt +cQs +cRK +cTw +cVb +cWP +cHS +cZN +dbb +dcE +ded +dfS +dhe +diS +dkH +dme +dnB +doQ +dfQ +dsk +dtB +dtA +dwk +dxs +dcE +aaf +agg +aaa +aaa +aaf +aaa +aaf +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaa +aaf +aaf +aaf +agg +aaf +dVw +aaf +aaa +aaa +aae +aaa +dZB +eaf +ear +aaa +dZB +eaf +ear +aaa +dZB +eaf +ear +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 +"} +(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 +aaa +aaf +aaf +agg +aaf +aiW +ajL +ajL +ajL +ajL +ajL +aoK +apQ +ark +ash +atm +auI +avS +auI +atl +azh +aAf +aBf +aCk +aDN +aFh +aGC +aHT +aIZ +aKD +aMk +aNL +aPt +aRk +aTc +aUA +aTc +aXX +aXX +baT +bcl +bdA +bfs +bhg +bjj +aIZ +bmn +bom +bqf +brq +bsD +aZq +bvu +bvu +byX +aIZ +bCo +bDY +bFX +bHQ +bJU +bLP +bHQ +bPS +bSf +bUj +bLT +bXH +bZw +cbo +cdd +bVT +bVT +bVT +bVT +ckE +cma +cnu +coX +cqt +crI +cte +cuR +cwk +cxR +czu +cBi +cCC +crI +cFc +cGG +cHS +cJC +cHW +cML +cOu +cQt +cRL +cTx +cVc +cML +cHS +cZO +dbc +dcE +dee +dfT +dhf +diT +dkI +dmh +dnB +doR +dha +dsl +dtC +diT +diO +dxt +dcE +aaf +agg +aaa +aaa +aaf +aaa +aaf +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaf +aaa +aaa +agg +agg +agg +aaf +aaf +aaf +aaf +dVw +aaf +aaf +aaa +aae +aaf +dZB +eaf +ear +aaf +dZB +eaf +ear +aaf +dZB +eaf +ear +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 +"} +(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 +aaa +agg +aaf +aaf +aaf +aiW +ajL +akR +ajL +akQ +ajL +aoK +apQ +arl +asp +atn +auJ +avT +awV +axU +azi +azi +aBg +aCl +aDO +aFi +aGD +aHU +aIZ +aKD +aMl +aNS +aPu +aRl +aTd +aUB +aWt +aXY +aZw +baU +bcm +bdB +bft +bhh +bjk +aIZ +bmo +bon +bqg +brr +bsE +btS +bvv +bxb +byY +bAJ +bCp +bDZ +bFY +bHR +bJV +bLQ +bNZ +bPT +bSg +bUk +bLT +bXI +bZx +cbp +cde +bVT +cgh +chC +bVT +ckF +cma +cnu +coY +cqu +crI +ctf +cuQ +cwl +cxQ +czv +cBh +cCD +crI +cFc +cGG +cHT +cJD +cHW +cMM +cOv +cQu +cRM +cQu +cVd +cWQ +cHS +cZL +dbc +dcE +dcE +dcE +dcE +diU +dkI +dmi +dcE +doS +dqy +diS +dtD +dhe +duI +dxu +dcE +aaf +aaa +aaa +aaa +aaf +aaa +aaf +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +dUl +dVx +dUl +aaf +aaa +aae +aaa +dZB +eaf +ear +aaa +dZB +eaf +ear +aaa +dZB +eaf +ear +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 +"} +(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 +aaa +agg +aaa +agg +aaf +aiW +ajP +akP +akP +akP +aoa +aiW +apR +ara +asq +ato +auK +avU +auK +axV +azj +aAg +aBh +aCm +aDP +aFj +aGE +aHV +aIZ +aKE +aMm +aNT +aPv +aMm +aTe +aUC +aWu +aXZ +aZx +baV +bcn +bdC +bfu +bhi +bjl +aIZ +bmp +boo +bqh +brs +bsF +aWq +bvw +bxc +byZ +bAK +bCq +bEa +bFZ +bHS +bJW +bLR +bOa +bPU +bSh +bUl +bWc +bXI +bZy +cbq +cdf +bVT +cgi +chD +bVT +ckG +cmb +cnv +coZ +cqv +crI +ctg +cuS +cwm +cxS +czw +cBj +cCE +crI +cFd +cGG +cHU +cJE +cLm +cMN +cOw +cQv +cRN +cTy +cVe +cWR +cHS +cZP +dbe +cDC +def +dfU +dcE +dcE +dkJ +dcE +dcE +doT +dqz +dsm +dtE +duI +dwl +dxv +dcE +aaf +aaf +aaf +aaf +aaH +aaa +aaH +aaf +aaf +aaf +agg +agg +aaf +agg +agg +agg +agg +agg +aaf +agg +agg +aaf +aaf +dUl +dVy +dUl +aaf +aaf +dYc +aaa +dZB +eag +ear +aaa +dZB +eaf +ear +aaa +dZB +eag +ear +aaa +dYc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +agg +aaf +agg +aaf +aiW +aiW +aiW +aiW +aiW +aiW +aiW +apS +arm +asr +atp +auL +avV +arm +axW +azk +aAh +aBi +aCn +aiW +aiW +aiW +aiW +aJe +aIZ +aIZ +aIZ +aPw +aRm +aPw +aIZ +aSM +aIU +aWe +aIZ +aSM +aIU +bfv +aIZ +bjm +aIZ +bmq +bop +bqi +brt +bsG +btT +bvx +bxd +bza +bAK +bCr +bEb +bGa +bHT +bJX +bLS +bOb +bPV +bSi +bUm +bLT +bXJ +bZz +cbr +cdg +bVT +cgj +chE +bVT +ckG +cmc +cnw +cpa +cqv +crI +crI +crI +crI +crI +crI +crI +crI +crI +cFg +cGG +cHV +cJF +cHW +cMO +cOx +cQw +cRO +cTz +cVf +cWS +cYD +cZQ +dbf +dcH +deg +dfV +bWg +diV +dkK +dmj +dcE +dcE +dcG +dcE +dtF +dcE +dcE +dcE +dcE +aaf +aaa +aaa +aaa +aaf +aaa +aaf +aaa +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaf +aaa +aaf +dUl +dUl +dVx +dUl +dUl +aaf +aae +aaa +aaa +aaf +aaa +aaa +dZB +eag +ear +aaa +aaa +aaf +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 +"} +(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 +agg +aaf +aaf +aaa +aaf +aaa +aaf +aaa +aiW +apT +arn +ass +atq +auM +atq +awW +axX +azl +aAi +aBj +aCo +aiW +aaf +aaf +aaf +aaf +aaf +aaf +aNU +aPx +aNU +aPx +aNU +aSL +aNU +aWd +aNU +aSL +aNU +bfw +bhj +aJg +aIZ +bmr +boq +bqj +bru +bsH +btU +bvy +bxe +aIZ +bAK +bCs +bEc +bGb +bHU +bJY +bLT +bLT +bLT +bLT +bLT +bLT +bVT +bVT +bVT +bVT +bVT +bWg +chF +cjf +cjf +cjf +cjf +cjf +cjf +cjf +cth +cbw +cwn +cxT +cbw +cBk +cbw +cwn +cFh +cGG +cHW +cHW +cHW +cHW +cOy +cQx +cRP +cTA +cOy +cHW +cHS +cHS +cHS +cHS +deh +dbe +dhg +diW +dkL +cHI +dnD +doU +def +def +cJf +duJ +bWg +aaa +aaf +aaf +aaf +aaf +aaf +aaH +aaa +aaH +aaH +aaH +aaf +aaa +agg +agg +agg +agg +agg +aaf +agg +agg +agg +aaa +aaf +dUm +dUR +dVz +dWh +dUm +aaf +aae +aae +aae +dYc +aae +aaa +aaa +aaf +aaa +aaa +dYc +aae +aae +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 +"} +(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 +aaa +aaa +aaa +aaa +aaa +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aiW +aiW +aiW +aiW +atr +aoK +atr +aiW +axY +aoK +aoK +aiW +aiW +aiW +aaa +aaf +aaa +aaf +aaa +aaf +aNV +aPy +aIU +aTf +aNV +aWv +aIU +aZy +aNV +aWv +aIU +aZy +aNV +aJg +aib +bms +bor +bqk +brv +bsI +btV +bvz +bxf +bvz +bxf +bCt +bEd +bGc +bHV +bGc +bLU +bGc +bGc +bSj +bUn +bWd +bWg +bZA +cbs +cdh +bZD +cbv +chG +cjf +ckH +cmd +cnx +cpb +cqw +cjf +cti +bWg +bWg +bWg +bWg +bWg +bWg +bWg +cFc +cGG +cHX +cHX +cHX +cMP +cOz +cQy +cML +cTB +cVg +cWT +cYE +cHX +cHX +cHS +dei +dfW +dcH +diX +dkM +dmk +dcH +doV +dqA +dmk +dtG +duK +bWg +aaf +dms +dyv +dyv +dms +dyv +dms +dFJ +dms +dHX +dIJ +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +dUm +dUS +dVA +dWi +dUm +aaf +aaa +aaa +aaa +aaf +aae +aae +aae +aaf +aae +aae +dYc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaf +aaa +aaa +aaf +aaa +aaf +ats +aaf +ats +aaf +axZ +azm +aAj +azm +aAj +azm +aAj +azm +aAj +aJf +aaf +aaf +aNV +aPz +aRn +aTg +aNV +aWw +aYa +aZz +aNV +bco +bdD +bfx +aNV +aJh +aib +bmt +bos +bql +brw +bsJ +btW +bvA +bxg +bzb +bAL +bCu +bEe +bGd +bGd +bGd +bLV +bGd +bPW +bSk +bUo +bWe +bXK +bZB +cbt +cdi +cbt +cgk +chH +cjf +ckI +ckI +cny +cpc +cqx +cjf +ctj +bWg +cwo +cxU +czx +cBl +cCF +bWg +cFi +cGG +cHY +cJG +cHX +cMQ +cOA +cQz +cRM +cTC +cVh +cWU +cHX +cJH +dbg +cHS +dej +dej +dej +diY +dkN +dej +dej +dej +dej +dej +cEW +duL +cJc +aaa +dyv +dzE +dBb +dCl +dDJ +dyv +dFK +dms +dHY +dIK +dIK +dIK +dIK +dIK +dIK +dIK +dIK +dIK +dIK +dIK +dIK +dIK +aaf +dUm +dUT +dVB +dWj +dUm +aaf +aaf +aaf +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 +"} +(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 +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aiX +aiX +aiY +aiY +aiY +aiX +aiX +aib +aib +aib +aok +aok +aok +aib +aok +aok +aok +aib +aib +aib +aib +aib +aib +aJg +aaa +aaf +aNV +aPA +aRo +aPB +aNV +aWx +aYb +aWy +aNV +bcp +bdE +bcq +aNV +aJg +aib +bmu +bot +bot +brx +brx +btX +bvB +bxh +bot +bAM +bCv +bEf +bCv +bCv +bCv +bLW +bOc +bPX +bSl +bUp +bWf +bWg +bZC +cbu +cdj +bZC +cdj +chI +cjf +ckJ +cme +cnz +cpd +cqy +cjf +ctk +bWg +cwp +bZD +czy +cBm +cCG +bWg +cFd +cGG +cHX +cHX +cLn +cMR +cOB +cQA +cRQ +cTD +cVi +cWV +cHX +cHX +cHX +cHS +dek +dfX +dhh +diZ +dkO +dml +dnE +doW +dqB +dej +cEV +duM +cJc +aaf +dyv +dzF +dBc +dCm +dDK +dEA +dFL +dms +dHZ +dIK +dJt +dKr +dLo +dMu +dNt +dMv +dPc +dPT +dQJ +dRA +dSr +dIK +dIJ +dUm +dUU +dVC +dWk +dUm +dIJ +dIJ +aaf +agg +aaf +aaa +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +aaa +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 +aiX +ajQ +akS +alS +and +aob +aiX +aic +aic +ast +aic +aoT +avW +ast +aic +aoT +aoT +ars +aic +aic +awY +aGF +aib +aJh +aaf +aaf +aNV +aPB +aRp +aPB +aNV +aWy +aYc +aWy +aNV +bcq +bdF +bcq +aNV +aJh +aib +bmv +bou +bou +bou +bov +bou +bou +bou +bou +bou +bou +bou +bou +bou +bou +bou +bOd +bPY +bSm +bUq +bWg +bWg +bZD +bZC +bWg +ceO +bZC +chI +cjf +ckK +cmf +cnA +cpe +cqz +cjf +cti +bWg +cwq +cxV +czz +cBn +cCH +bWg +cFc +cGG +cHW +cHW +cHW +cHW +cOC +cQA +cRR +cTE +cOF +cHW +cHW +cHW +cHW +cHS +del +dfY +dhi +dja +dkP +dmm +dnF +doX +dqC +dej +dtH +duK +bWg +aaa +dms +dzG +dBd +dCn +dDL +dyv +dFJ +dms +dIa +dIK +dJu +dKs +dLp +dMv +dNu +dLr +dMz +dMu +dQK +dRB +dSs +dIK +dTK +dUn +dUV +dVD +dVK +dFW +dWU +dXt +aaf +agg +agg +aaf +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aiX +ajR +akT +alT +akT +aoc +aiX +aic +aro +asu +aic +auN +aoQ +awX +awX +awX +awX +awX +awX +awX +aoT +aGG +aib +aJg +aaa +aaf +aNV +aNV +aNV +aNV +aNV +aNV +aNV +aNV +aNV +aNV +aNV +aNV +aNV +aJg +aib +bmw +bou +aaa +aaf +aaa +aaf +btY +bxi +bzc +bAN +bCw +bEg +bGe +bHW +bJZ +bLX +bou +bPZ +bSn +bUr +bWg +bXL +bZC +cbv +cdk +bZD +bZC +chJ +cjf +cjf +cmg +cnB +cjf +cjf +cjf +ctl +bWg +cwr +cxW +czA +bZD +cCI +bWg +cFj +cGG +cHX +cHX +cHX +cMS +cOD +cQA +cRR +cTF +cVj +cWW +cYE +cHX +cHX +cHS +dem +dfZ +dhj +djb +dkQ +dmn +dnF +doY +dqB +dej +dtI +duN +cJc +aaf +dyv +dzH +dBe +dCo +dDM +dEB +dFM +dms +dIb +dIL +dJv +dKt +dLq +dMw +dNv +dOl +dPd +dOo +dMz +dPe +dSt +dIK +dIi +dUo +dFW +dTm +dFW +dQQ +dXn +dXt +aaf +aaf +aaf +aaa +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aiY +ajS +akU +alU +ane +aod +aiX +apU +aoQ +asv +att +aic +avX +awX +aya +azn +aAk +azo +aCp +awX +axa +ame +aib +aJi +aAj +azm +aAj +azm +aAj +azm +aAj +azm +aAj +azm +aAj +azm +aAj +azm +aAj +bjn +aib +bmx +bou +aaf +bry +brz +btY +btY +bxj +bzd +bzd +bzd +bEh +bzd +bzd +bzd +bLY +bou +bQa +bSn +bUs +bWh +bXM +bZE +bXM +bXM +bXM +cgl +chK +cjg +bXM +bXM +cnC +cpf +cqA +bXM +ctm +cuT +cuT +cuT +czB +cuT +cuT +cuT +cFk +cGH +cHZ +cJH +cHX +cMT +cOA +cQB +cRS +cTG +cVh +cWX +cHX +cJG +dbh +cHS +den +dga +dhk +djc +dkR +dmo +dnF +doZ +dqB +dej +dtH +duK +cJc +aaa +dyv +dzI +dBf +dCp +dDN +dyv +dFN +dms +dFW +dIM +dJw +dJA +dJA +dMx +dNw +dJA +dJA +dJw +dJw +dRC +dSu +dIK +dTL +dUo +dFY +dFY +dFY +dFY +dFY +dFY +dFY +dFY +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 +"} +(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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aiX +ajT +akV +alV +anf +anf +aiX +apV +arp +arp +atu +auO +avY +awX +ayb +azo +azo +azn +aCq +aDQ +axa +aoQ +aib +aib +aib +aib +aib +aok +aok +aok +aib +aok +aok +aok +aib +aok +aok +aok +aib +aib +aib +bmy +bou +aaa +brz +bsK +btZ +brz +bxk +bze +bAO +bCx +bEi +bGf +bHX +bKa +bLZ +bOe +bQb +bSo +bUt +bWg +bXN +bZF +cbw +bZF +ceP +cbw +chL +cjh +ckL +cmh +cnD +ckL +cmh +crJ +ctn +cuU +crJ +cxX +czC +crJ +cCJ +cDB +cFl +cGG +cHX +cHX +cLn +cMU +cOE +cQA +cRR +cTF +cVk +cWY +cHX +cHX +cHX +cHS +deo +dgb +dhl +djd +dkS +dmp +dnF +dpa +dqD +dej +cEV +duM +bWg +aaf +dms +dzJ +dBg +dCq +dDO +dEC +dFO +dms +dIc +dIN +dJx +dKu +dJx +dMy +dNx +dOm +dOm +dOm +dOm +dRD +dSv +dIK +dIi +dUp +dUW +dVE +dWl +dWN +dXo +dYd +dYN +dUW +aaf +agg +aaa +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aiY +ajU +akW +alV +ala +akW +aoM +apW +aic +asw +atv +auP +ame +awX +ayc +azo +azo +aBk +aCr +awX +aoT +aic +ast +aoT +aoT +aMn +ast +aic +aoT +aoT +aoT +ars +ars +ast +aic +aic +ast +ars +bhk +aoQ +ars +bmz +bov +aaf +brA +bsL +bua +bvC +bxl +bzf +bzf +bzf +bEj +bzf +bzf +bzf +bxl +bOf +bQc +bSp +bUu +bWi +bWi +bWi +bWi +bWi +bWi +bWi +chM +cji +bWi +bWi +bWi +bWi +bWi +bWi +bWi +bWi +bWi +bWi +bWi +bWi +cCK +bZD +cFm +cGG +cHW +cHW +cHW +cHW +cOF +cQC +cRR +cTF +cOC +cHW +cHW +cHW +cHW +cHS +dep +dgc +dhm +dje +dkT +dmp +dnF +dpb +dqB +dej +dtI +duO +bWg +bWg +dms +dms +dms +dCr +dDP +dms +dms +dms +dId +dIL +dJy +dKv +dLr +dMz +dMv +dOn +dMu +dPU +dOo +dRE +dSw +dIK +dTM +dUq +dUX +dFW +dWm +dWO +dSC +dYe +dYO +dZC +aaf +agg +aaf +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aiY +ajV +akX +alW +ang +aoe +aoN +apX +aib +aib +aib +aib +aib +awX +ayd +azn +azo +aBl +aCs +awX +aic +aoQ +aHW +aHW +aHW +aHW +aNW +aPC +aHW +aHW +avX +aWz +aoT +aZA +aoT +bcr +bcr +aic +bhl +aic +aoT +aUG +bou +aaa +brB +bsM +bub +brB +bxm +bze +bAP +bCy +bEk +bGg +bHY +bze +bMa +bou +bQd +bSn +bUr +bWi +bXO +bZG +cbx +cdl +ceQ +ceR +chN +cjj +ckM +cmi +cnE +cpg +bWi +bXT +cto +cuV +cws +cxY +czD +bWi +cCL +ceO +cFn +cGG +cHX +cHX +cHX +cMV +cOG +cQD +cRT +cTF +cVg +cWZ +cYE +cHX +cHX +cHS +deq +dgd +dhn +djf +dkU +dmq +dnG +dpc +dqB +dej +cEW +duN +dwm +bZC +dyw +dzK +dBh +dCs +dDQ +dzK +dFP +dHs +dIe +dIK +dJz +dKt +dLs +dMz +dMz +dOo +dPe +dOo +dOl +dRF +dSx +dIK +dMI +dUo +dUY +dVF +dWn +dWP +dWP +dYf +dYP +dZC +aaf +agg +aaa +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aiY +ajW +akY +alX +anh +aof +aoM +apY +aib +asx +atw +auQ +aic +awX +aye +azn +azo +aBl +aCt +awX +aoS +aGH +aHW +aJj +aKF +aMo +aNX +aPD +aRq +aHW +aoQ +aGI +aro +aic +baW +bcs +aib +aro +aoQ +aib +aib +bmA +bou +aaf +bry +brB +btY +btY +bxn +bzg +bzg +bzg +bEl +bzg +bzg +bzg +bMb +bou +bQd +bSn +bUr +bWj +bXP +bZH +cby +cdm +ceR +cgm +chN +cjj +ckN +cmj +chQ +cpg +bWj +crK +ctp +cuW +cwt +ctp +czE +bWi +cCM +bZC +cFn +cGG +cIa +cJG +cHX +cMW +cOA +cQE +cRU +cTH +cVh +cXa +cHX +cJH +dbi +cHS +der +dgd +dho +djg +dkV +dmo +dnH +dpd +dqC +dej +dtJ +duP +cmh +dxw +cOq +dzL +dBi +dCt +dDR +dED +dFQ +dHt +dIf +dIK +dJA +dKw +dLt +dMA +dNy +dMv +dMz +dMv +dQL +dRG +dSy +dIK +dTN +dUr +dUZ +dVG +dSC +dWQ +dXp +dYg +dYQ +dFY +aaf +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 +"} +(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 +aiY +ajX +akZ +alY +ani +aog +aoO +apZ +aib +aoT +aoT +auR +avZ +awX +ayf +azo +aAl +aBm +aCu +aDR +aFk +aGI +aHW +aJk +aKG +aMp +aNY +aNZ +aRr +aHW +aUD +aic +aib +aoQ +aro +aib +aib +bfy +aic +bjo +aro +aUG +bou +aaa +aaf +aaa +aaf +bvD +bxo +bzh +bAQ +bCz +bEm +bGh +bHZ +bKb +bMc +bou +bQe +bSn +bUs +bWk +bXQ +bXQ +cbz +bXQ +bXQ +cgn +chO +cjk +ckO +bXQ +bXQ +bXQ +cqB +bXQ +ctq +cuX +cwu +cxZ +czF +bWi +cCK +bZD +cFn +cGG +cHX +cHX +cLn +cMX +cOB +cQy +cML +cTB +cVl +cXb +cHX +cHX +cHX +cHS +des +dge +dhp +djh +dkW +dmr +dnH +dpe +dqB +dej +dtK +cMH +dwn +cMH +dyx +dzM +dBj +dCu +dDS +dzM +dFR +dHu +dIg +dIK +dJB +dKx +dLu +dJA +dNz +dMv +dPf +dLr +dQM +dRH +dSz +dIK +dIi +dUr +dFY +dVH +dWo +dWR +dXq +dYh +dIJ +dFY +aaf +agg +aaf +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aiY +ajY +akW +alZ +anj +aoh +aoM +aqa +arq +asy +atx +auS +awa +awX +ayg +azo +azo +aBn +aCv +aDS +aFl +aGI +aHW +aJl +aKH +aMq +aNZ +aPE +aRs +aHW +awZ +aic +aic +aic +ast +ars +aic +ast +aic +ars +ars +bmB +bow +bou +bou +bov +bou +btY +btY +btY +btY +btY +btY +btY +btY +btY +btY +btY +bQe +bSn +bUr +bWl +bXR +bZI +bXR +bXR +bZI +cgo +chP +bXR +bZI +bXR +bXR +bXR +cqC +bXR +ctr +cuY +cwv +cya +czG +bWi +cCK +bZC +cFo +cGG +cHW +cHW +cHW +cHW +cOH +cQx +cRP +cTA +cOH +cHW +cHW +cHS +cHS +dcI +det +det +det +dji +dkX +dms +dms +dms +dms +dms +dms +dms +dms +dms +dms +dms +dms +dCv +dms +dms +dFS +dHv +dIh +dIK +dJC +dKy +dLv +dMB +dNA +dIK +dIK +dIK +dIK +dRI +dIK +dIK +dTO +dUs +dVa +dVI +dWp +dSC +dXr +dYi +dYR +dFY +aaf +agg +aaa +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aiX +ajZ +ala +ama +ank +aoi +aiX +aqb +aib +aic +aty +aic +awb +awX +ayh +azn +azo +azo +aCw +awX +aqg +aoT +aHW +aJm +aKI +aMr +aOa +aPF +aRt +aHW +aUE +aWA +aWA +aZB +baX +aWA +aZB +aZB +bhm +bjp +aZB +bmC +box +bqm +aBo +aCy +buc +bvE +bxp +akm +ajl +ajl +axb +akm +ajl +bKc +aip +aol +bQf +bSn +bUr +bWj +bXS +bZJ +cbA +cdn +ceS +cgp +chQ +cjl +ckP +cjl +chQ +cpg +bWj +crL +cts +cuZ +cww +cyb +czH +bWi +cCK +ceO +cFo +cGG +cHX +cHX +cHX +cHW +cOI +cQy +cML +cTB +cVm +cXc +cYF +cZR +dbj +dcJ +cOW +dad +dhq +djj +dkY +dmt +dnI +dpf +dqE +dsn +dtL +duQ +dwo +dxx +dyy +dzN +dBk +dCw +dDT +dms +dFT +dHw +dIh +dIK +dJD +dKz +dLw +dJw +dNB +dIK +dPg +dPV +dQN +dRJ +dSA +dIK +dTM +dUt +dVb +dVF +dWn +dWP +dWP +dYj +dYS +dZC +aaf +aaf +aaa +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aiY +aka +alb +amb +anl +aoj +aiX +aqc +aib +asz +aic +auT +awc +awX +ayb +azn +azo +azn +aCx +aDQ +aqg +aGJ +aHW +aJn +aKJ +aMs +aOb +aPG +aRu +aHW +aUF +aWB +aWB +aWB +aWB +aWB +aWB +aWB +aWB +aWB +aWB +aWB +boy +boy +boy +boy +boy +bvF +bxq +bzi +bzi +bzi +bzi +bzi +bzi +bzi +bzi +bzi +bQg +bSo +bUt +bWi +bXT +bZK +cbB +cdo +ceS +cgq +chQ +cjl +ckP +cjl +chQ +cpg +bWi +crM +ctt +cva +cwx +cyc +czI +bWi +cCL +ceO +cFm +cGG +cHX +cJI +cLo +cMY +cOJ +cQF +cRV +cTI +cVn +cXd +cYG +cZS +dbk +cLI +deu +dgf +dhr +djk +dkZ +dmu +dnJ +dnJ +dqF +dso +dtM +duR +dwp +dxy +dyz +dzO +dBl +dCx +dDU +dms +dFU +dHw +dIi +dIK +dIK +dIK +dIK +dIK +dNC +dIK +dPh +dMA +dQO +dRK +dSB +dIK +dIi +dUq +dUX +dSC +dWq +dWS +dSC +dYk +dYT +dZC +aaf +agg +aaf +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aax +ach +aax +aaf +aaa +aaa +aaf +aax +ach +aax +aaf +aaf +aaf +aaf +aaf +aax +aax +aax +aax +aaa +aiY +aiY +aiY +aiY +aiX +aiX +aiX +aqc +aib +aib +aro +aib +aib +awX +ayi +azo +aAm +azn +aCp +awX +aFm +aGJ +aHW +aJo +aKK +aMt +aNZ +aPH +aJm +aHW +aUG +aWB +aYd +aZC +baY +aWB +bdG +bfz +bhn +bjq +bkG +bmD +boz +bjq +brC +bsN +aWB +aqu +bxr +bzj +bAR +bCA +bEn +bGi +bIa +bKd +bMd +bzr +bQh +bSm +bUv +bWi +bWi +bWi +bWi +cdp +ceS +cgp +chQ +chQ +ckP +chQ +chQ +cph +cqD +crN +ctu +cvb +cwy +cyd +czJ +bWi +cCN +bWg +cFp +cGG +cIb +cJJ +cLp +cMZ +cOK +cQG +cRW +cTJ +cVo +cXe +cOK +cZT +dbk +cLH +dev +dgg +dhs +djl +dla +dmv +dnK +dpg +dqG +dsp +dtN +duS +dwq +dxz +dyA +dxz +dxz +dCy +dDV +dEE +dFV +dHx +dIi +dIO +dJE +dFW +dLx +dIK +dIK +dIK +dIK +dIK +dIK +dIK +dIK +dIK +dTM +dUo +dVc +dVJ +dWr +dWT +dXs +dYl +dYU +dUW +aaf +agg +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 +"} +(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 +aaf +aaf +aaa +aaa +aaf +aaa +aaa +aaf +aaa +aax +aci +aax +aax +aax +aax +aax +aax +aci +aax +aaa +aaf +aaa +aaa +aaa +aax +agh +agJ +aax +aaf +aaf +aaf +aaf +aaf +aaf +aok +aoP +aqd +aib +asA +atz +auU +awd +awX +awX +awX +awX +awX +awX +awX +aFm +aoT +aHW +aHW +aHW +aHW +aNW +aPI +aHW +aHW +aUH +aWC +aYe +aZD +baZ +bct +bdH +bfA +bho +bho +bho +bho +bho +bho +brD +bsO +aWB +bvG +bxr +bzk +bAS +bCB +bCB +bCB +bCB +bKe +bMe +bAZ +bQd +bSn +bUr +bWi +bXU +bZL +bWi +cdq +ceS +cgp +chQ +cjm +ckP +cmk +chQ +cmk +bWi +crO +ctv +cvc +cwz +cyc +czK +bWi +cCL +ceO +cFn +cGG +cHX +cJK +cLq +cNa +cOL +cQH +cRX +cTK +cRX +cXf +cYH +cZU +dbl +dcK +dew +cIi +dht +djm +dlb +dmu +dnL +dnL +dqH +dsq +dtO +duT +dwr +dxA +dyB +dzP +dBm +dCz +dDW +dms +dFW +dHy +dIj +dIP +dJF +dKA +dLy +dMC +dIP +dOp +dPi +dPW +dQP +dRL +dQP +dTl +dTP +dUu +dFY +dFY +dFY +dFY +dFY +dFY +dFY +dFY +aaf +agg +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 +"} +(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 +aax +aax +aaD +aax +aax +aaD +aax +aax +aaD +abP +aax +acj +aax +acC +acT +ack +adq +aax +ach +aax +abR +aaD +aax +aax +aaD +aaD +agi +agK +aaD +aib +aib +aib +aib +aib +aib +aib +aoQ +aqc +aro +asB +atA +auV +aib +aib +ayj +azp +aAn +aBo +aCy +aDT +aFn +aBo +aHX +aCy +aBo +aMu +aOc +aPJ +aBo +aMu +aUI +aWD +aYf +aZE +bba +bcu +bdI +bfB +bhp +bjr +bjt +bjt +boA +bjt +bbf +bsO +aWB +aqu +bxr +bzl +bAT +bCC +bEo +bCC +bCC +bKf +bIc +bAZ +bQd +bSn +bUr +bWi +bXV +bZM +cbC +cdr +ceT +cgp +chQ +cjn +ckP +cmk +cby +cmk +bWi +bWi +bWi +bWi +bWi +cye +czL +bWi +cCK +bZD +cFn +cGG +cHX +cHX +cHX +cHW +cOM +cQI +cRY +cTL +cVp +cXg +cYI +cHS +dbm +dcL +dex +dgh +dhu +djj +dkY +dmw +dnM +dph +dqI +dsr +dtP +duU +dws +dxB +dyC +dzQ +duU +dCA +dDX +dms +dFX +dHz +dIk +dIk +dJG +dKB +dLz +dMD +dND +dOq +dPj +dPX +dQQ +dFW +dSC +dTm +dSC +dSC +dTm +dVK +dFW +dWU +dXt +aaf +aaa +aaa +aaf +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 +"} +(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 +aax +aaC +aaI +aaP +aaP +aba +aaP +aaP +abB +aaP +aaP +aaP +aaP +aaP +aaP +aaP +aaP +adH +adZ +adZ +adZ +aeJ +adZ +adZ +afx +afO +agj +agL +aaD +aic +aiZ +akb +aic +amc +aic +aib +aoR +aqe +arr +aoT +atB +auW +aib +awY +ayk +azq +aAo +aAo +aAo +aAo +aAo +aAo +aAo +aJp +aJp +aJp +aOd +aPK +aJp +aJp +aUJ +aWE +aYg +aZF +bbb +bcv +bdJ +bfC +bhq +bjs +bkH +bmE +boB +bqn +bbf +bsP +aWB +aqu +bxs +bzm +bAU +bCD +bEp +bEq +bIb +bKg +bMf +bOg +bQi +bSn +bUr +bWi +bXW +bZN +bWi +cds +ceS +cgp +chQ +cjo +ceS +cml +cnF +cpi +bWi +crP +ctw +cvd +bWi +cyf +czM +cBo +cCO +cDC +cFq +cGI +cjf +cHS +cHS +cHS +cON +cQJ +cRZ +cTM +cRZ +cXh +cYJ +cHS +dbn +cLI +dex +cJL +cJL +djn +dlc +dms +dms +dms +dms +dms +dms +dms +dms +dms +dms +dms +dmt +dCB +dDY +dms +dFY +dFY +dFY +dFY +dJH +dKC +dLA +dME +dNE +dNE +dNE +dNE +dNE +dNE +dNE +dNE +dFX +dFW +dFW +dFW +dQQ +dHs +dXt +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 +"} +(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 +aax +aaC +aaJ +aaQ +aaQ +aba +aaQ +aaQ +abC +abQ +abQ +abQ +abQ +abQ +abQ +abQ +abQ +adI +abQ +abQ +abQ +aeK +abQ +afl +afy +afP +agk +agM +aht +aid +aja +akc +alc +amd +anm +aol +aip +aqf +aib +asC +atC +auX +aib +awZ +ayl +azr +aAp +aBp +aCz +aAu +aFo +aGK +aHY +aJq +aKL +aMv +aOe +aPL +aRv +aJq +aUK +aWF +aYh +aZG +bbc +aWB +bdK +bfD +bhr +bjt +bkI +bmF +bjt +bqo +bbf +bsQ +aWB +bvH +bxt +bzn +bAV +bCC +bEq +bGj +bCC +bGk +bGl +bOh +bQd +bSn +bUw +bWi +bWi +bWi +bWi +cdt +ceS +cgr +chR +cjp +ckQ +cmm +cnG +cpj +cqE +crQ +ctx +cve +bWi +cyg +bXM +bXM +cCP +bXM +cFr +cGJ +cIc +cJL +cLr +cHS +cHS +cHS +cHS +cHS +cHS +cHS +cHS +cHS +dbo +cLH +dex +dgi +dhv +djo +dld +dmx +dnN +dpi +dqJ +dss +dtQ +duV +dwt +dxC +dyD +dzR +dBn +dCC +dDZ +dEF +dFZ +dFZ +dIl +dIQ +dJI +dKD +dLB +dME +dNF +dOr +dNF +dPY +dNF +dRM +dSD +dNE +dTQ +dTQ +dTQ +dTQ +dTQ +dNE +dNE +dNE +dNE +dZD +dNE +dNE +aaf +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aax +aax +aaD +aax +aax +aaD +aax +aax +aaD +aax +aax +aax +aax +acD +acU +acW +adr +aax +aax +aax +aax +aaD +aax +aax +aaD +aaD +agl +agN +aaD +aie +ajb +akd +ald +ame +ann +aib +aoS +aqg +aib +asD +atD +auY +aib +aoT +aym +azr +aAq +aBq +aCA +aAu +aFp +aGL +aHZ +aJq +aKM +aMw +aOf +aPM +aRw +aJq +aqg +aWF +aYi +aZH +bbd +aWB +bdL +bfD +bhs +bju +bkJ +bjt +bjt +bjr +bbf +bsO +aWB +aUK +bxr +bzo +bAW +bCC +bEr +bCC +bCC +bKf +bCF +bAZ +bQj +bSq +bUr +bWi +bXU +bZL +bWi +cdu +ceS +cgp +chQ +cjq +ckR +cmn +cnH +bXR +cqF +crR +cty +cvf +bWi +cyh +czN +cBp +cCQ +bZC +cFs +cGK +cId +cJM +cLs +cLs +cOO +cOO +cLs +cTN +cLs +cLs +cLs +cZV +dbp +dcM +dey +dgj +dhw +djp +dle +dmy +dnO +dnO +dqK +dnO +dnO +duW +dwu +dxD +dyE +dzS +dBo +dCD +dEa +dEF +dFZ +dFZ +dIl +dIQ +dJJ +dKE +dLC +dMF +dNG +dOs +dPk +dPZ +dQR +dRN +dSE +dTn +dTR +dUv +dVd +dVL +dWs +dNE +dXu +dNE +dYV +dZE +eah +dNE +aaf +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaf +aaf +aaa +aaa +aaf +aaa +aaa +aaf +aaa +aaa +aaf +aax +aax +aax +aax +aax +aax +aaf +aaa +aaa +aaf +aaa +aaa +aaa +aaD +agm +agO +ahu +ahu +ahu +ahu +ahu +ahu +ahu +ahu +aoT +aqb +aib +aib +atE +aib +aoQ +axa +ayn +azr +aAr +aBr +aCB +aAu +aFq +aGM +aIa +aJq +aKN +aMx +aOg +aPN +aRx +aJq +aqb +aWF +aYj +aZI +bbe +aWB +bdM +bfE +bht +bjv +bjv +bjv +bjv +bjv +brE +bsO +aWB +aqc +bxr +bzp +bAX +bCE +bEs +bGk +bCE +bKh +bMg +bAZ +bQd +bSn +bUr +bWi +bXV +bZM +cbC +cdr +ceT +cgp +chS +cjr +ckS +cmo +ckS +cpk +cqD +crS +ctz +cvg +bWi +bZC +czO +bZD +cCR +cDD +cFt +cGL +cwn +cJN +cLt +cNb +cOP +cQK +cLI +cLH +cLI +cLH +cLI +cZW +dbq +dcN +dez +dgk +dhx +djq +dlf +dmz +dnP +dpj +dqL +dst +dtR +duX +dwv +dxE +dyF +dzT +dBp +dCE +dEb +dEb +dEb +dHA +dIm +dIQ +dJK +dKF +dLD +dMG +dNH +dOt +dPl +dQa +dQS +dRO +dSF +dTo +dTS +dUw +dVe +dVM +dWt +dWV +dXv +dWV +dYW +dZF +eai +dZD +aaf +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaa +aaa +aaa +aaa +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aax +agl +agP +ahu +aif +ajc +ake +ale +amf +aif +ahu +aic +aqg +ars +ars +atF +aoT +ast +aic +ayo +azr +aAs +aBs +aCC +aAu +aFr +aGN +aIb +aJq +aKO +aMw +aOh +aPM +aRy +aJq +aqc +aWF +aYk +aZG +bbf +aWB +bdN +bfF +bhu +bjw +bkK +bmG +bmG +bqp +brF +bsR +aWB +aqg +bxr +bzq +bAY +bCF +bEt +bGl +bIc +bKi +bMh +bMi +bQe +bSn +bUr +bWi +bXW +bZN +bWi +cdv +ceS +cgp +chT +cjs +ckT +cmp +cnI +cpl +bWi +crT +ctA +cvh +bWi +cyi +czP +ceO +czP +cDE +cFu +cGM +cIe +cJO +cLu +cNc +cOQ +cQL +cSa +cNc +cNc +cNc +cYK +cZX +dbr +dcO +deA +dgl +dgm +djr +dlg +dgm +dgp +dgm +dgp +dgm +dgm +dgm +dgm +dgm +dyG +dzU +dBq +dCF +dEc +dEG +dGa +dHB +dHB +dIQ +dJL +dKG +dLE +dMH +dNI +dNI +dPm +dPm +dNI +dNI +dNI +dNI +dNI +dNI +dNI +dNI +dNI +dNI +dNI +dNE +dYX +dZG +eaj +dZD +aaa +aaf +aaa +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaH +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaD +agn +agN +ahu +aig +ajd +akf +akk +ajd +ano +ahu +aoU +aqh +ajl +asE +atG +auZ +ajl +axb +ayp +azs +aAt +aBs +aCD +aAu +aFs +aGN +aIc +aJq +aKP +aMy +aOi +aPO +aRz +aJq +aUL +aWF +aYl +aZJ +bbg +aWB +bdO +bfG +bhv +aWB +bkL +bmH +boC +bct +brG +aWB +aWB +bvI +bxr +bzr +bAZ +bAZ +bEu +bGm +bAZ +bAZ +bMi +bOi +bQk +bSr +bUx +bWm +bWi +bWi +bWi +bWj +ceU +cgs +bWj +bWi +bWi +bWi +bWi +bWi +bWi +bWi +bWi +bWi +bWi +bWg +bWg +bWg +bWg +cDF +cFv +cGN +bWg +cJP +cLv +cNd +cOR +cQM +cLv +cLv +cVq +cQQ +cLv +cZY +dbs +dcP +deB +dgm +dhy +djs +dlh +dmA +dnQ +dpk +dqM +dsu +dtS +duY +dww +dgm +dyH +dzV +dBr +dCG +dEd +dEH +dGa +dGa +dGa +dIQ +dFX +dKH +dLB +dIh +dNI +dOu +dPn +dPn +dQT +dRP +dSG +dTp +dTT +dUx +dQV +dVN +dWu +dWW +dXw +dNE +dYY +dZH +eak +dZD +aaf +agg +aaa +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaH +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aax +agl +agN +ahv +aih +aje +akg +alf +amg +anp +ahu +aoV +aqi +art +art +art +art +art +art +ayo +azr +aAu +aBt +aCE +aAu +aAu +aGO +aCE +aJq +aJq +aMz +aOj +aPP +aJq +aJq +aUM +aCE +aAu +aZK +bbh +aAu +bdP +bfH +bhw +bjx +bkM +bmI +bmI +bqq +brH +brH +bud +bvJ +bxu +bmI +bBa +bBa +bEv +bBa +bBa +bBa +bMj +bqq +bvJ +bSs +bUy +brN +bXX +brN +cbD +brN +ceV +bUy +brN +brN +brN +bqq +brN +bsZ +brN +brN +ctB +brN +brN +brN +brN +brN +brN +ceV +cFw +cGO +brK +cJP +cLw +cNe +cOS +cQN +cSb +cTO +cVr +cXi +cTO +cZZ +cNp +cLE +dez +dgn +dhz +djt +dli +dmB +dnR +dpl +dqN +dsv +dtT +duZ +dwx +dgm +dyI +dyI +dyI +dyI +dyI +cJL +cJL +cJL +cJL +cJL +dac +dac +dLA +dMI +dNI +dOv +dPn +dQb +dQU +dRQ +dSH +dRQ +dTU +dUy +dVf +dVO +dWv +dNI +dOD +dNE +dYZ +dZI +eal +dNE +aaf +agg +aaf +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaH +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aax +agl +agN +ahu +aii +ajf +ajj +ajj +ajd +anq +ahu +aoW +aqj +art +asF +atH +ava +awe +axc +ayq +azt +aAv +aBu +aCF +aDU +aFt +aGP +aId +aJr +aKQ +aMA +aOk +aPQ +aKQ +aTh +aUN +aWG +aYm +aZL +bbi +bcw +bdQ +bfI +bhx +bjy +bkN +bmJ +boD +bqr +brI +brI +brI +bvK +brI +bzs +brO +bCG +brO +brO +brO +brO +brO +bqv +bQl +bSt +brO +brO +bXY +brO +brO +brO +bBy +brO +brO +brO +brO +bqv +cnJ +cpm +brO +brO +brO +brO +brO +brO +brO +brO +brO +cDG +cFx +boR +cIf +cJP +cLx +cNf +cOT +cQO +cSc +cTP +cVs +cXj +cYL +daa +dbt +cLD +dez +dgo +dhA +dju +dlj +dmC +dnS +dpm +dqO +dsw +dtU +dva +dwy +dgm +dyJ +dzW +dBs +dCH +dEe +cJL +dGb +dcK +dIn +dIR +dJM +dac +dLF +dMJ +dNI +dOw +dPn +dQc +dQV +dRP +dSI +dRP +dTV +dUz +dVg +dVP +dPn +dNI +dXx +dNE +dNE +dZJ +dNE +dNE +aaf +aaf +aaa +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaH +aaf +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aax +agl +agN +ahu +aij +ajf +ajd +ajd +amf +anr +ahu +aoW +aqk +art +asG +atI +avb +awf +axd +ayr +azu +aAw +aBv +aCG +aDV +aFu +aGQ +aIe +aJs +aJs +aMB +aOl +aPR +aRA +aTi +aUO +aWH +aYn +aZM +bbj +bcx +bdR +bfJ +bhy +bjz +bkO +bmK +boE +bqs +brJ +brJ +brJ +bvL +bxv +bzt +bBb +bCH +bEw +bGn +bGn +bGn +bGn +bOj +bQm +bSu +bUz +bUz +bXZ +bZO +bUz +bUz +ceW +bEw +chU +bGn +bGn +bOj +cnK +cpn +bnd +crU +bnd +cvi +bnd +bnd +bnd +bnd +bnd +cDH +bmX +cGP +cIg +cJP +cLy +cNg +cOU +cQP +cSd +cTQ +cVt +cXk +cVu +dab +dbo +cLE +dez +dgp +dhB +djv +dlk +dmD +dnT +dpn +dqP +dsx +dtV +dvb +dwz +dxF +dyK +dzX +dBt +dCI +dEf +cJL +dac +dHC +dIo +dac +dac +dac +dLG +dMK +dNI +dOx +dPn +dQc +dQU +dRQ +dSH +dTq +dTU +dUA +dVg +dPn +dWw +dNI +dXy +dNE +dZa +dZK +eam +dNE +aaf +agg +aaf +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +eaY +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 +aaH +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aax +agl +agQ +ahw +aik +ajg +akh +alg +akh +ans +ahu +aoV +aql +art +asH +atJ +avc +awg +art +ays +azv +aAx +aAx +aCH +aDW +aBB +aAx +aAx +aHb +aKR +aHb +aOm +aPS +aKR +aHb +aUP +aUP +aYo +aZN +aUP +aUP +bdS +bfK +bhz +aYx +bkP +bmL +boF +boZ +brK +brM +brM +bsV +bxw +bzu +bBc +bCI +bEx +bEx +bId +bKj +bMk +bEx +bQn +bSv +bUA +bqt +bqt +bZP +bqt +cdw +bqu +bQn +bQn +bQn +bQn +cmq +cnL +cpo +cqG +cqH +cqH +cqH +cwA +cqH +cqH +cqH +cCS +bkS +bmZ +boJ +cIh +cJP +cJP +cNd +cOV +cQQ +cJP +cJP +cVu +cXl +cLv +dac +dbu +dcQ +deA +dgq +dhC +djw +dll +dmE +dnU +dpo +dqQ +dsu +dtW +dvc +dwA +dgm +dyL +dzY +dBu +dCJ +dEg +cJL +dGc +dHD +dIp +dIS +dJN +cJM +dLH +dML +dNJ +dOy +dPo +dQd +dPo +dPo +dPo +dPo +dTW +dUB +dVh +dVQ +dWx +dNI +dXz +dYm +dZb +dZL +ean +dZD +aaf +agg +aaa +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaH +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aax +ago +agM +ahx +ail +ajh +aki +alh +amh +ant +ahu +aoX +aqm +art +asI +atK +avd +awh +axe +ayt +aqg +aAx +aBw +aCI +aDX +aFv +aGR +aAx +aJt +aKS +aMC +aOn +aPT +aRB +aTj +aUQ +aWI +aYp +aZO +bbk +bcy +bdT +bfL +bhA +aUP +bkP +bmL +boG +boZ +brL +brL +brL +bsV +bxx +bzv +bBd +bCJ +bEx +bGo +bIe +bKk +bMl +bOk +bQn +bSw +bUB +bWn +bWn +bZQ +bWn +bWn +ceX +bQn +chV +cjt +ckU +bQn +cnM +cpp +cqH +crV +ctC +cvj +cwB +cyj +czQ +cBq +cqH +cDI +bmX +boR +cIi +cJQ +cLz +cNh +cOW +cQR +cSe +cJL +cVv +cXm +cYM +dac +dbo +cLE +dez +dgr +dhD +djx +dlm +dgm +dgm +dpp +dgm +dgl +dgm +dgm +dgm +dgm +dyM +dzZ +dyI +dyI +dyI +cJL +dGd +dHE +dIq +dIT +dJO +dKI +dLI +dMM +dNK +dOz +dPp +dQe +dQW +dRR +dSJ +dTr +dQW +dUC +dVi +dPp +dWy +dWX +dXA +dYn +dZc +dZM +eao +eas +aaa +aaf +aaa +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaH +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aax +ach +aax +aaf +aaa +aaa +aaf +aax +acj +aax +aaa +aaa +aaa +aaa +aaa +aaD +agp +agN +ahu +aim +aji +akj +ali +alg +anu +ahu +aoV +aqn +art +asJ +atL +ave +awi +axf +ayu +aqc +aAx +aBx +aCJ +aDY +aFw +aGS +aAx +aJu +aKT +aKT +aOo +aPU +aKT +aTk +aUP +aWJ +aYq +aZP +bbl +aUP +aZV +bfM +bhB +aUP +bkP +bmL +boH +bqt +aaa +aaf +aaa +bsV +bxy +bzw +bBe +bCK +bEx +bGp +bIf +bKl +bIf +bOl +bQn +bQn +bUC +bWo +bYa +bWo +cbE +bWo +bQn +bQn +chW +cju +ckV +bQn +cnM +cpp +cqH +crW +ctD +cvk +cwC +cwC +czR +cBr +cqH +blb +bmX +cGQ +cIj +cJR +cLA +cLB +cOX +cQS +cSf +cTR +cVw +cXn +cYN +cTR +dbv +dcR +deC +dgs +dgs +djy +dln +dmF +dgs +dpq +dgs +cZX +dgs +dgs +dgs +dxG +djy +dAa +dpq +dCK +dEh +cJO +dGe +dHF +dIr +dIU +dJP +cJO +dLJ +dIi +dNI +dOA +dPn +dQf +dQU +dRQ +dSH +dRQ +dQU +dTq +dVg +dVP +dQc +dNI +dXB +dYo +dZd +dZN +eap +eas +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 +"} +(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 +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aax +aci +aax +aaf +aaf +aaf +aaf +aax +aci +aax +aaf +aaf +aaf +aaf +aaf +aax +agl +agN +ahy +ain +ajj +akk +ali +akh +anv +ahu +aoV +aqj +art +asK +atM +avf +awj +art +ayv +aqb +aAx +aBy +aCK +aDZ +aFx +aGT +aAx +aJv +aKU +aMD +aOp +aPV +aRC +aTl +aUP +aWK +aYr +aZQ +bbm +bcz +bdU +bfN +bhC +aUP +bkP +bmL +boH +bqt +aaa +aaf +aaa +bsV +bxw +bzx +bBf +bCL +bEx +bGq +bIg +bKm +bMm +bOm +bQn +bSx +bUD +bWp +bYb +bZR +cbF +cdx +ceY +bZU +bZU +cjv +ckW +bQn +cnM +cpq +cqI +crX +ctE +cvl +cvl +cvl +czS +cBs +cqH +cDJ +bmX +cGR +cIk +cJS +cLB +cNi +cOY +cLI +cOW +cTS +cVx +cXo +cYO +cKc +dbw +dcM +deD +cLA +cLB +djz +dlo +dmG +dnV +dpr +dqR +dsy +dqR +dmG +dqR +dpr +dqR +dAb +dBv +dCL +dEi +dEI +dGf +dHG +dIs +dIV +dJQ +dac +dLK +dIi +dNI +dOB +dPq +dQg +dQX +dRS +dSK +dRS +dQX +dUD +dQX +dVR +dWz +dWY +dXC +dYp +dZe +dZO +eap +eas +aaf +agg +aaa +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaf +aaf +aaa +aaa +aaf +aaa +aaa +aaf +aaa +aax +ack +aax +aax +aax +aax +aax +aax +ack +aax +aaa +aaf +aaa +aaa +aaa +aaD +ago +agR +ahu +aio +ajk +akl +alj +ami +anw +ahu +aoY +aqo +art +art +art +art +art +art +ayw +aqb +aAx +aBz +aCL +aEa +aFw +aGU +aAx +aJw +aKV +aME +aOq +aPW +aKV +aTm +aUP +aWL +aYs +aZR +bbn +aUP +aZV +bfO +bhD +aUP +bkP +bmL +boH +bqt +aaa +aaf +aaa +bsV +bxz +bzy +bBg +bCM +bEy +bGr +bIh +bKn +bMn +bMs +bQn +bSy +bUE +bWq +bUE +bWq +bUE +cdy +ceZ +cgt +chX +cjw +ckX +bQn +cnM +cpp +cqH +crY +ctF +cvm +cvm +cvm +czT +cBt +cCT +cDK +bmY +cGS +cIk +cJS +cLC +cNj +cOZ +cQT +cSg +cTT +cVy +cXp +cYP +cTT +dbx +dcS +deE +dgt +dhE +djA +dlp +dmH +dlp +dps +dqS +dsz +dmH +dmH +dwB +dxH +dhE +dAc +dhE +dCM +dhE +cJM +dGg +dHH +dIt +dIW +dJR +dac +dLL +dMN +dNI +dOC +dPr +dPn +dQY +dRT +dSH +dTs +dTX +dTq +dQU +dVS +dOx +dNI +dXD +dYq +dZf +dZP +eaq +dNE +aaf +agg +aaf +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aay +aaD +aaD +aaD +aaD +aaD +aax +aax +aaD +abR +aax +acj +aax +acE +acV +adg +adr +aax +ach +aax +abT +aaD +aax +aax +aaD +aaD +agq +agN +ahu +ahu +ahu +ahu +alk +ahu +ahu +ahu +aoV +aqp +aru +asL +atN +avg +aru +axg +ayx +azw +aAx +aBA +aCM +aEb +aFy +aGV +aAx +aJx +aKW +aMF +aMF +aMF +aMF +aTn +aUP +aWM +aYt +aZS +bbo +aUP +bdV +bfP +bhE +aUP +bkQ +bmL +boI +boZ +aaf +aaf +aaf +bsV +bxA +bzy +bBg +bCN +bEy +bGs +bIi +bKo +bMo +bOn +bQn +bSz +bUF +bWr +bUF +bWr +bUF +bWr +cfa +cgu +chY +cjx +ckY +cmr +cnN +cpr +cqH +crZ +ctG +cvn +cwD +cyk +czU +cBu +cCU +cDL +bmX +boR +cIi +cJT +cLD +cNk +cPa +cLI +cSh +cTU +cVz +cXq +cYQ +dad +cNp +dcT +deF +dgu +dgu +djB +dgu +dmI +dgu +dpt +dgu +dsA +dsA +dsA +dwC +dxI +dyN +dsA +dsA +dsA +dsE +cJL +dac +dac +dac +dac +dac +dac +dLM +dMH +dNI +dOD +dPs +dQh +dOD +dNI +dOD +dNI +dNI +dOD +dNI +dNI +dNI +dNI +dXE +dNE +dNE +dNE +dNE +dNE +aaf +aaf +aaa +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +aaa +aaa +aaa +aaa +aaa +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 +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aas +aas +aas +aaK +aaR +aax +abb +aaP +aaP +abD +abS +aaP +aaP +acq +acF +acF +acF +acF +acF +acF +acF +acF +aeL +acF +acF +afz +afQ +agr +agS +ahz +aip +ajl +akm +all +amj +akm +aom +aoZ +aqq +aib +aib +aib +aib +aib +aib +ayy +azx +aAx +aBB +aCN +aEc +aFz +aAx +aAx +aJy +aKX +aMG +aMG +aMG +aRD +aTo +aUP +aUP +aUP +aUP +aUP +aUP +bdW +bfQ +bhF +bjA +bkP +bmL +boH +bqt +aaa +aaf +aaa +bsV +bxB +bzz +bBh +bCO +bEy +bGt +bIj +bKp +bMp +bOo +bQo +bSA +bUG +bWs +bYc +bZS +cbG +bWs +cfb +bYc +chZ +cjy +ckZ +bQn +cnM +cps +cqH +crY +ctH +cvo +cvo +cvo +czV +cBv +cCV +cDM +bmX +boR +cIi +cJU +cLE +cNk +cPa +cLH +cSi +cTV +cVA +cTW +cTW +cTW +dby +dcU +deG +dgv +dhF +djC +dlq +dlv +dnW +dpu +dqT +dsA +dtX +dvd +dwD +dxJ +dyO +dAd +dBw +dCN +dsE +dEJ +dGh +dHI +dIu +dIX +dJS +dKJ +dLN +dMO +dNL +dOE +dPt +dQi +dQi +dRU +dSL +dTt +dTY +dUE +dVj +dVT +dPA +dWZ +dXF +dYr +dZg +dZQ +aaH +aaH +aaa +aaf +aaa +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aap +aat +aaz +aaE +aaL +aaS +aaV +abc +abh +abh +abh +abh +abh +abh +acr +abh +abh +abh +abh +adJ +abh +abh +abh +abh +abh +abh +afA +aba +agl +agN +ahA +ahA +ahA +ahA +ahA +ahA +ahA +ahA +aoV +aqr +arv +asM +atO +atO +awk +axh +ayz +aqg +aAx +aBC +aCM +aEd +aFA +aGW +aIf +aGY +aGY +aGY +aGY +aGY +aGY +aTp +aUR +aWN +aUQ +aZT +bbp +bcA +aZU +bfR +bhG +bjA +bkR +bmM +boH +bqt +aaa +aaf +aaa +bsV +bxC +bzA +bBi +bCP +bEz +bGu +bIk +bKq +bMq +bOp +bQp +bSB +bUH +bWt +bWt +bZT +cbH +bWt +bWt +bWt +bWt +cjz +cla +cms +cnO +cpt +cqJ +csa +ctI +cvl +cvl +cvl +czW +cBw +cqH +cDN +bna +boR +cIl +cJV +cLF +cNl +cPa +cLI +cSj +cTW +cVB +cXr +cYR +dae +dbz +dcV +deH +dgv +dhG +djD +dlr +dmJ +dmJ +dpv +dqU +dsB +dtY +dve +dwE +dxK +dyP +dAe +dBx +dCO +dEj +dEK +dGi +dHJ +dIv +dIY +dJT +dKK +dLO +dMP +dNM +dOF +dPu +dQj +dQj +dQj +dSM +dQj +dQj +dQj +dQj +dVU +dWA +ahL +ahL +ahL +ahL +dZR +aaf +aaf +aaa +agg +aaf +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aas +aas +aas +aaK +aaT +aax +abd +aaQ +aaQ +abE +aaQ +aaQ +aaQ +aaQ +aaQ +aaQ +aaQ +aaQ +adK +aea +aea +aew +aeM +aea +aea +afB +afO +ags +agT +ahB +aiq +ajm +akn +alm +amk +anx +ahA +apa +aqs +arv +asN +atP +avh +arv +arv +ayz +aqc +aAx +aBD +aCO +aEe +aFB +aGX +aGY +aJz +aKY +aMH +aGY +aJA +aRE +aGY +aGY +aGX +aYu +aZU +aZV +aZU +aZV +bfQ +bhH +bjA +bkP +bmL +boH +bqt +aaa +aaf +aaa +bsW +bxD +bzB +bBj +bCQ +bEA +bGv +bIl +bKr +bMr +bGv +bQq +bSC +bUI +bWu +bYd +bZU +cbI +cdz +cfc +cgv +cia +cjA +clb +bQq +cnP +cpu +cqH +csb +ctJ +cvp +cwE +cyl +czX +cBx +cqH +cDO +bmX +boR +cIi +cJW +cLG +cNm +cPb +cLB +cSk +cTX +cVC +cXs +cYS +daf +dbA +cXu +deI +dgw +dhH +djE +dls +dmK +dls +dpw +dqV +dsB +dtZ +dvf +dwF +dxL +dwH +dAf +dBy +dCP +dsE +dEL +dGj +ahA +ahA +ahA +ahA +ahA +ahA +dMQ +dNN +dOG +dPv +dPx +dPx +dPx +dSN +dQo +dQo +dQo +dQo +dVV +dWB +ahN +dXG +dYs +dZh +dZR +aaf +agg +aaf +agg +aaa +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aay +aaD +aaD +aaD +aaD +aaD +aax +aax +aaD +abT +aax +acj +aax +acG +acW +acW +ads +aax +acj +aax +abR +aaD +aax +aax +aaD +afR +agl +agN +ahC +air +ajn +ako +aln +aml +any +aon +apb +aqt +arv +asO +atQ +avi +awk +axi +ayz +aqg +aAx +aBE +aCM +aEf +aFB +aGX +aGY +aGY +aKZ +aMI +aGY +aPX +aRF +aJA +aGY +aGX +aYv +aZV +bbq +bcB +bdX +bfP +bhI +aUQ +bkS +bmN +boJ +bqu +aaf +aaf +aaf +bsU +bxE +bzC +bBk +bCR +bEy +bGw +bIm +bKs +bMs +bEx +bQn +bQn +bQn +bQn +bQn +bQn +bQn +bQn +bQn +bQn +bQn +bQn +bQn +bQn +cnM +cpp +cqH +csc +ctK +cvq +cwF +cvq +czY +cBy +cqH +cDP +bmX +boR +cIi +cJX +cLH +cNk +cPa +cLI +cSl +cTW +cVD +cXt +cYT +dag +dbB +cXu +deJ +dgv +dhH +djF +dlt +dmL +dnX +dpx +dqW +dsC +dua +dvg +dwG +dxM +dyQ +dAg +dBz +dCQ +dEk +dEM +dGk +ahA +dIw +dIZ +dJU +dKL +dLP +dMQ +dNO +dOH +dPw +dQk +dQZ +dQk +dSO +dPw +dQk +dQZ +dQk +dVW +dWC +dXa +dXH +dYt +dZi +dXb +aaf +aaf +aaa +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaf +aaf +aaf +aaa +aaf +aaa +aaa +aaf +aaa +aax +aci +aax +aax +aax +aax +aax +aax +aci +aax +aaa +aaf +aaa +aaa +aaa +aaD +agl +agN +ahA +ais +ajo +akp +alo +amm +anz +ahA +apc +aqu +arv +asP +atR +avj +arv +arv +ayz +aqc +aAx +aBF +aCP +aEg +aFC +aGY +aGY +aJA +aLa +aMJ +aOr +aPY +aRG +aJA +aGY +aGY +aUP +aZW +bbr +bcC +bdY +bfS +bhJ +bjA +bkP +bmL +boH +bqt +aaa +bsS +bue +bsV +bxF +bzy +bBd +bCS +bEy +bEx +bIn +bKt +bMt +bEx +bQr +bSD +bQr +bQr +bYe +bZV +bQr +bQr +bSD +bQr +bQs +aaa +aaa +cmt +cnQ +cpp +cqH +cqH +ctL +cqH +cqH +cqH +cqH +cqH +cqH +bla +bmX +cGP +cIk +cJY +cLA +cNn +cPc +cLB +cSm +cTY +cVE +cXu +cYU +dah +dbC +dcW +deK +dgx +dhI +djG +dlt +dmM +dnX +djG +dqX +dsB +dtZ +dvg +dwH +dxN +dyR +dAh +dBA +dCR +dsE +dEN +dGl +dHK +dIx +dJa +dJV +ako +dLQ +dMR +dNO +dOI +dPx +dQl +dRa +dRV +dSP +dPx +dQl +dRa +dRV +dVX +dWB +dXb +dXI +dYu +dZj +dZS +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 +"} +(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 +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aax +acj +aax +aaf +aaa +aaa +aaf +aax +ach +aax +aaf +aaf +aaf +aaf +aaf +aax +agl +agN +ahA +ahA +ajp +akq +alp +amn +ahA +ahB +aib +aqv +arv +arv +atS +avk +awk +axj +ayz +azy +aAx +aBG +aCM +aEf +aFB +aGX +aGY +aJA +aLb +aMK +aGY +aLa +aRH +aGY +aGY +aGZ +aYv +aZV +aZU +bcD +bdZ +bfP +bhK +bjA +bkP +bmL +boH +bqt +aaa +bsT +buf +bvM +bxG +bzy +bBd +bCN +bEB +bGx +bGx +bGx +bGx +bGx +bQs +bQr +bQr +bQr +bYf +bZW +cbJ +cdA +cdA +cgw +cib +aaf +aaf +cmu +cnR +cpv +cqK +aaf +aaf +cvr +cwG +cym +czZ +cBz +cCW +blb +bmX +boR +cIm +cJZ +cLH +cNk +cPa +cLI +cSn +cTZ +cVF +cXv +cYV +cXu +dbD +cXu +deL +dgv +dhJ +djH +dlt +dmK +dnY +dpy +dqY +dsD +dub +dvh +dwI +dxO +dyS +dAh +dBB +dCS +dsE +dEO +dGm +dHL +dIy +dJb +dJW +dKM +dLR +dMS +dNO +dOI +dPx +dQm +dRb +dRV +dSP +dPx +dTZ +dRb +dVk +dVX +dWB +dXc +dXJ +dYv +dZk +dZT +aaf +aaf +aaa +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaH +aaa +aaf +aaa +aaa +abq +abU +abV +acl +abV +abW +abW +abW +abW +adL +acl +abV +abV +aaa +aaa +aaa +aaa +aaD +agp +agU +ahD +afO +ajq +akr +alq +amo +amo +afO +apd +aqw +arw +arv +atT +avl +arv +arv +ayz +aqc +aAx +aBH +aCQ +aEh +aFB +aGZ +aGY +aGY +aJA +aML +aGY +aPZ +aRI +aTq +aGY +aWO +aYw +aZX +bbs +aZX +bbs +bfT +bhL +bjA +bkP +bmO +boH +bqt +aaa +bsT +bug +bvN +bvP +bzy +bBl +bCT +bEC +bGx +bIo +bKu +bMu +bOq +bQt +bSE +bUJ +bWv +bYg +bZX +cbK +cdB +cfd +cgx +bQs +aaa +aaa +cmt +cnM +cpw +cmt +csd +cqK +cvs +cwH +cyn +cAa +cBA +cCX +blb +cFy +boR +cIi +cKa +cLI +cNo +cPd +cLH +cSo +cUa +cVG +cXw +cYW +dai +dbE +dcX +deM +dgv +dhK +djI +dlu +djI +djI +djI +dqZ +dsB +duc +dvi +dwJ +dxP +dyT +dAi +dBC +dCT +dsE +dEP +dGn +ahA +dIz +dJc +dJX +dKN +dLS +dMT +dNO +dOI +dPx +dQl +dRc +dRV +dSP +dPx +dQl +dRc +dRV +dVX +dWD +dXd +dXK +dYw +dZl +dZR +aaf +agg +aaf +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaH +aaa +aaf +aaa +abp +abq +abV +abY +acm +acs +acH +acH +acH +acH +adM +acm +aei +abV +aaa +aaa +aaa +aaa +aax +ago +agV +ahE +afP +ahE +ahE +ahE +amp +ahE +afP +ahE +aqx +arx +asQ +atU +avm +awl +axk +ayz +aqe +aAx +aBI +aCR +aEi +aFB +aHa +aIg +aGY +aGY +aMM +aGY +aQa +aGY +aGY +aUS +aWP +aUQ +aZY +aZX +bbs +aZX +bfU +bhM +aYx +bkP +bmP +boK +bqt +aaa +bsU +buh +bvO +bxH +bzD +bBm +bCU +bED +bGx +bIp +bKv +bMv +bOr +bQu +bSE +bUK +bWw +bYh +bZY +cbK +cdC +cfe +bQr +bQs +cjB +cjB +cmt +cnS +cpx +cqL +cse +ctM +cvt +cwI +cyo +cwI +cwI +cCY +cDQ +cFz +boS +cIi +cKb +cLJ +cNp +cPe +cQU +cSp +cTW +cVH +cXx +cYX +cTW +dbF +dcY +dbF +dgv +dhL +djJ +dlv +dmN +dlv +dpz +dra +dsE +dsB +dvj +dsB +dsE +dyU +dAj +dBD +dCU +dsE +dEQ +dGo +ahA +ahA +dJd +dJY +dKO +ahA +dMQ +dNP +dOJ +dPx +dQn +dRd +dRW +dSP +dTu +dUa +dRd +dVl +dVX +dWB +dXe +dXL +dYx +dZm +dZR +aaf +agg +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 +"} +(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 +aaH +aaa +aaf +aaa +abp +abF +abW +abZ +acn +acn +acn +acn +acn +acn +acn +acn +aej +abV +abV +abW +abV +aaa +aax +agt +agW +ahF +ait +ajr +aks +alr +amq +anA +aiu +ape +aqy +ary +asR +arv +arv +arv +arv +ayz +azz +aAx +aAx +aAx +aAx +aFD +aHb +aHb +aJB +aJB +aMN +aOs +aQb +aJB +aJB +aHb +aHb +aYx +aUP +bbt +bbt +bbt +bfV +aUP +bjB +bkP +bmQ +boL +boZ +aaf +bsV +bui +bvP +bvP +bzE +bBn +bCV +bEE +bGy +bIq +bKw +bMw +bOs +bQu +bSF +bUL +bWx +bYh +bZZ +cbK +cbK +cbK +bQr +bQu +cjC +clc +cmt +cnM +cpy +cqM +csf +ctN +cvr +cwJ +cyp +cAb +cBB +cvs +cDR +cFA +cGT +cIn +cKc +cIi +cNq +cPf +cIi +cKc +cUb +cTY +cTW +cTY +cTV +dbG +dcZ +deN +dgv +dgv +dgv +dlw +dmO +dmO +dmI +dgv +dsE +dbG +dcZ +deN +dsE +dsE +dsE +dsE +dsE +dsE +dER +dGp +dgB +dIA +dJe +dJZ +dKP +dLT +dMU +dNO +dOK +dPx +dQl +dRa +dRV +dSP +dPx +dQl +dRa +dRV +dVX +dWE +ahL +dXk +dYy +dXk +dZR +aaf +agg +aaa +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaH +aaa +aaf +aaa +abp +abF +abW +aca +acn +acn +acI +acI +acI +acI +adN +acn +aek +aex +aeN +aeV +abW +aaa +aax +agl +agX +ahG +aax +ajs +akt +akt +amr +anB +aaD +apf +aqz +arz +asS +atV +avn +awm +awm +ayA +azA +aAy +aBJ +awm +awm +aFE +awm +awm +awm +awm +aMO +awm +ayA +awm +awm +aUT +aWQ +aYy +awm +awm +awm +bea +bfW +awm +bjC +bkT +bmR +boM +bqt +aaa +bsW +buj +bvQ +bvP +bzF +bBo +bCW +bEF +bGx +bIr +bKx +bMx +bOt +bQv +bQv +bQv +bWy +bYi +caa +cbL +cdD +bQv +bQv +bQv +cjD +cld +cmv +cnP +cpz +cqN +csg +ctN +cvs +cwK +cyq +cAc +cBC +cCW +cDS +cFB +cGU +cIo +cKd +cKd +cNr +cPg +cKd +cKd +cUc +cVI +cVI +cVI +cVI +cVI +cVI +cVI +dgy +cUc +djK +dlx +dmP +dmP +dpA +drb +dgy +dud +cVI +cVI +cUc +cKd +cKd +cKd +cKd +cKd +cPg +dGq +dHM +dIB +dJf +dJf +dKQ +dLU +dMV +dNQ +dOL +dPy +dQm +dRb +dRX +dSP +dPx +dQl +dRb +dVk +dVX +dWB +dXb +dXM +dYz +dZn +dZR +aaf +agg +aaf +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaH +aaf +aaf +aaa +abq +abq +abU +acb +acn +act +acJ +acX +adh +adt +acJ +aeb +ael +aey +aeO +aeW +abW +aaa +aax +agl +agY +ahH +aax +ajt +aku +als +ams +anC +aaD +apg +aqA +agX +asT +atW +avo +awn +axl +axl +azB +axl +aBK +axl +axl +aFF +axl +axl +axl +axl +aMP +aOt +aQc +aRJ +aTr +aUU +axl +aYz +axl +axl +bcE +beb +bfX +axl +bjD +bkU +bmS +boN +bqt +aaa +bsX +buk +bvR +bxI +bzG +bBp +bCX +bEG +bGz +bIs +bKy +bMy +bMy +bQw +bSG +bUM +bWz +bYj +cab +cbM +cdE +cff +cgy +cic +cjE +cle +cmw +cnT +cpA +cqO +csh +ctO +cvs +cwL +cyr +cAd +cBD +cCW +cDT +cFC +cGV +cIp +cKe +cKe +cNs +cPh +cKe +cKe +cKe +cVJ +cKe +cKe +cKe +cKe +cKe +cKe +dgz +cKe +cKe +dly +cKe +cKe +cKe +drc +dgz +cKe +cKe +cKe +cKe +dyV +cKe +cKe +cKe +cKe +dES +dGr +dHN +dIC +cKe +dKa +dKR +dLV +dMW +dNO +dOM +dOK +dQl +dRc +dRV +dSP +dPx +dQl +dRc +dRV +dVY +dWF +dXf +dXN +dYA +dZo +dXb +aaf +aaf +aaa +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaH +aaa +aaf +aaa +abp +abF +abW +acc +acn +acn +acH +acH +acH +acH +adO +acn +aem +aez +aeP +aeV +abW +aaa +aax +agl +agX +ahI +aax +aju +akv +akt +akt +anD +aaD +aph +aqB +arA +asU +atX +avp +awo +axm +axm +azC +aAz +aBL +aCS +aEj +aEj +aCS +aIh +aJC +axm +aMQ +axm +axm +aRK +aTs +aUV +axm +aYA +axm +bbu +bcF +bec +bbu +bhN +asU +bkV +bmT +boO +bqt +aaa +bsY +bul +bvQ +bvP +bzE +bBq +bCY +bEH +bGx +bIt +bKz +bMz +bOu +bQx +bQx +bQx +bWA +bYk +cac +bUL +cdF +bQu +bQu +bQu +cjF +clf +cmt +cnU +cpB +cqP +csi +ctP +cvs +cwM +cys +cAe +cBE +cCW +cDU +cFD +cGW +cIq +cKf +cKf +cNt +cPi +cQV +cSq +cUd +cVK +cXy +cYY +cYY +dbH +cYY +cYY +dgA +cSq +djL +cSq +dmQ +dnZ +dpB +drd +dsF +due +dpB +cSq +dxQ +dyW +dAk +cSq +cSq +dEl +dET +dGs +dHO +dID +dJg +dKb +dKb +dLW +dMV +dNQ +dON +dPz +dQo +dQo +dQo +dSQ +dPx +dPx +dUF +dPx +dVZ +dWB +dXg +dXO +dYB +dZp +dZS +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 +"} +(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 +aaH +aaa +aaf +aaa +abp +abF +abW +abZ +acn +acn +acn +acn +acn +acn +acn +acn +aej +abV +abV +abW +abV +aaa +aax +agl +agX +ahJ +aiu +ajv +akw +alr +amt +anE +ait +api +aqy +arB +asV +asW +avq +asW +asW +asW +asW +asW +aBM +aCT +aEk +aEk +aHc +aEk +aBM +aBM +aBM +aBM +aBM +aRL +aTt +aEk +aBM +aBM +aZZ +bbv +bcG +bed +bbv +bhO +bjE +bkW +bmU +boP +boZ +aaf +bsV +bum +bvP +bvP +bzE +bBr +bCZ +bEI +bGA +bIu +bKA +bMw +bOv +bQu +bSH +bUL +bWx +bYh +cad +cbN +cbN +cbN +bQr +bQu +cjG +clg +cmt +cnV +cpC +cqQ +csj +ctP +cvr +cwJ +cyt +cAf +cBF +cvs +cDV +cFE +cGX +cIr +cIw +cIs +cNu +cPj +cQW +cIw +cKs +cVL +cXz +cVL +daj +dbI +dda +deO +dgB +dgB +djM +dgB +dgB +doa +doa +dre +doa +dcZ +dbG +dwK +dwK +dwK +dAl +dwK +dwK +dwK +dEU +dGt +dgB +dIE +dJh +dKc +dJh +dLX +dMX +dNR +dOO +dOO +dOO +dOO +dOO +dOO +dOO +dOO +dOO +dOO +dOO +dWG +dXh +dXP +dYC +dZq +dZT +aaf +aaf +aaa +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaH +aaa +aaf +aaa +abp +abq +abV +abY +aco +acu +acI +acI +acI +acI +adP +aco +aen +abV +aaa +aaa +aaa +aaa +aax +ago +agV +ahE +afP +ahE +akx +ahE +ahE +ahE +afP +ahE +aqC +arB +asW +atY +avr +awp +axn +ayB +azD +aAA +aBM +aCU +aEk +aFG +aHd +aIi +aJD +aLc +aMR +aBM +aQd +aRM +aTu +aUW +aWR +aBM +baa +bbw +bcH +bee +bfY +bhP +bbv +bkW +bmV +boQ +bqt +aaa +bsS +bun +bvO +bxJ +bzH +bBs +bDa +bEJ +bGx +bIv +bKB +bMA +bOw +bQu +bSE +bUN +bWB +bYh +bZY +cbN +cdG +cfg +bQr +bQs +cjB +cjB +cmt +cnW +cpD +cqR +csk +ctQ +cvu +cwN +cyu +cwN +cwN +cvu +cDW +cFF +cGY +cIs +cKg +cLK +cNv +cPk +cQX +cSr +cKs +cVM +cXA +cYZ +cXz +dbJ +ddb +cVL +dgB +dhM +djN +dlz +dmR +doa +dpC +drf +doa +duf +dvk +dwK +dxR +dyX +dAm +dBE +dCV +dwK +dEV +dGu +dgB +dgB +dJi +dJi +dJi +dgB +dMQ +dNS +dOP +dPA +dPA +dPA +dPA +dPA +dPA +dPA +dUG +dPA +dPA +dPA +dXi +dXQ +dYD +dZr +dZR +aaf +agg +aaf +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaH +aaa +aaf +aaa +aaa +abq +abU +abV +acl +abV +abW +abW +abW +abW +adL +acl +abV +abV +aaa +aaa +aaa +aaa +aaD +agu +agZ +ahK +afO +ajw +aky +alt +amo +amo +afO +apj +aqD +arC +asW +asW +asW +asW +asW +asW +azE +asW +aBM +aCV +aEl +aFH +aHe +aIj +aJE +aLd +aMS +aEk +aQe +aRN +aTv +aUX +aWS +aYB +bab +bbx +bcI +bef +bbz +bhQ +bbv +bkW +bmW +boR +bqt +aaa +bsT +buo +bvS +bvP +bzy +bBt +bDb +bEK +bGx +bIw +bKC +bMB +bOx +bQs +bSE +bUO +bWC +bYl +cae +cbN +cdH +cfh +cgx +bQs +aaa +aaa +cmt +cnV +cpE +cmt +csl +cqK +cvs +cwH +cyv +cAa +cBG +cCX +bkP +bmW +cGY +cIs +cKh +cLL +cNw +cPl +cQY +cSs +cUe +cVN +cXB +cZa +dak +dbK +ddc +deP +dgB +dhN +djO +dlA +dhO +doa +dpD +drg +dsG +dug +dvl +dwK +dxS +dyY +dAn +dBF +dyY +dwK +dEW +dGv +dHP +aaa +aaf +aaa +aaf +aaa +dMY +dMY +dMY +dMY +dMY +dRe +dRY +dRe +dMY +dMY +dUH +dMY +dMY +dRe +dXj +dXR +dYE +dZs +dZU +aaf +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aax +ach +aax +aaf +aaa +aaa +aaf +aax +ach +aax +aaf +aaf +aaf +aaf +aaf +aax +agl +agN +ahL +ahL +ajx +akz +alu +amu +ahL +ahN +aeX +aqE +arD +asW +atZ +aua +awq +aua +ayC +azF +aAB +aBN +aCW +aEl +aFI +aHf +aIk +aJF +aLe +aMT +aOu +aQf +aRO +aTw +aUY +aWT +aYC +bac +bby +bcJ +beg +bfZ +bhR +bjF +bkW +bmX +boR +bqt +aaa +bsT +bup +bvT +bxK +bzy +bBd +bCN +bEB +bGx +bGx +bGx +bGx +bGx +bQs +bQr +bQr +bQr +bYm +caf +cbO +cdA +cdA +cgw +cib +aaf +aaf +cmu +cnX +cpF +cqK +aaf +aaf +cvr +cwO +cyw +cAg +cBH +cCW +bkP +bmX +cGY +cIt +cKi +cLM +cNx +cPm +cQZ +cSt +cUf +cVO +cXC +cZb +cZb +dbL +ddd +deQ +dgB +dhO +djP +dlB +dmS +dob +dpE +drh +dsH +duh +dvm +dwL +dxT +dyZ +dAo +dBG +dCW +dwK +dEX +dGw +dHP +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +dMY +dRf +dMY +dRf +dMY +aaf +aaf +aaf +dMY +dRf +dXk +dXS +dXk +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 +"} +(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 +aaf +aaf +aaf +aaa +aaf +aaa +aaa +aaf +aaa +aax +aci +aax +aax +aax +aax +aax +aax +aci +aax +aaa +aaf +aaa +aaa +aaa +aaD +agv +agN +ahL +aiv +ajy +akA +alv +amv +anF +ahL +apk +aqF +arE +asW +aua +avs +awr +axo +ayD +azG +aAC +aBO +aCX +aEm +aFJ +aHg +aIl +aIl +aLf +aMU +aOv +aQg +aRP +aTx +aUZ +aWU +aEk +bad +bbz +bcK +beh +bga +bhS +bjG +bkX +bmY +boS +bqt +aaa +bsU +bue +bsV +bxL +bzy +bBd +bCN +bEL +bEL +bIx +bKD +bMC +bEL +bQr +bSI +bQr +bQr +bYn +cag +cbP +bQr +bSI +bQr +bQs +aaa +aaa +cmt +cnY +cpG +cqS +cqS +ctR +cqS +cqS +cqS +cqS +cqS +cqS +cDX +bmX +cGY +cIt +cKi +cLL +cNy +cPn +cLM +cSu +cUg +cVP +cXD +cZc +dal +dbM +dde +deR +dgC +dhP +djQ +dlC +dmT +doc +dpF +dri +dsI +dui +dvn +dwK +dxU +dza +dAp +dBH +dCX +dwK +dEY +dGx +dHP +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +dMY +dRe +dMY +dRe +dMY +aaa +aaa +aaa +dMY +dRe +dXk +dXR +dXk +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aay +aaD +aaD +aaD +aaD +aaD +aax +aax +aaD +abR +aax +ach +aax +acK +acY +adi +adr +aax +acj +aax +abT +aaD +aax +aax +aaD +afR +agl +agN +ahM +aiw +ajz +akB +alw +amw +anG +aoo +apl +aqG +arF +asX +aub +avt +aws +axp +ayE +azH +aAD +aBP +aCY +aEn +aFK +aHh +aIm +aJG +aLg +aBM +aBM +aQh +aRQ +aTy +aUZ +aWV +aJG +bae +bbz +bcL +bei +bbz +bhT +bjH +bkS +bmZ +boJ +bqu +aaf +aaf +aaf +bsS +bxM +bzI +bBj +bDc +bEM +bGB +bIy +bKE +bMD +bEL +bEL +bEL +bQC +bQC +bQC +bQC +bQC +bQC +cfi +cfi +cfi +cfi +cfi +cfi +cnV +cpG +cqS +csm +ctS +cvv +cwP +cyx +cAh +cBI +cqS +bkP +bmX +cGY +cIs +cKj +cLM +cNx +cPo +cLO +cSv +cUh +cVQ +cXE +cZd +dam +dbN +cZb +deS +dgB +dhQ +djR +dlD +dmU +doa +dpG +drj +dsJ +duj +dvo +dwM +dxV +dxX +dAq +dBI +dxW +dwK +dEZ +dGy +dHP +aaa +aaa +dJk +dKS +dKT +dKT +dKU +dKU +dKT +dKT +dRg +dRZ +dSR +dKT +dKU +dKU +dKU +dKT +dRg +dKT +dXT +dKT +dKT +dKT +dKT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aau +aau +aau +aaM +aaR +aax +abb +aaP +aaP +abG +aaP +aaP +aaP +acq +acF +acZ +acF +acF +acF +acF +acF +acF +aeQ +acF +acF +afz +afP +agw +aha +ahN +aix +ajA +akC +alx +amx +anH +ahL +apm +aqH +arG +asY +auc +avu +awt +axq +ayF +azI +aAE +aBN +aCZ +aEo +aFL +aEo +aEo +aJH +aEo +aMV +aOw +aQi +aRQ +aTz +aVa +aWW +aEk +baf +bbA +bcM +bej +bby +bhU +bjI +bkV +bmX +boR +bqt +aaa +aaf +aaa +bsY +bxN +bzJ +bBd +bDd +bEL +bGC +bIz +bIB +bME +bOy +bQy +bSJ +bUP +bWD +bYo +cah +cbQ +bQC +cfj +cfj +cid +cjH +clh +cfi +cnV +cpH +cqT +csn +ctT +cvw +cwQ +cwQ +cAi +cBJ +cqT +cDY +bmY +cGZ +cIs +cKk +cLL +cNx +cPp +cLM +cSw +cKs +cVR +cXF +cXF +cXF +dbO +cXF +deT +dgD +dgD +dgD +dgD +dgD +dod +dpH +drk +dsK +duk +dvp +dwN +dxS +dzb +dAr +dBJ +dCY +dwK +dFa +dGz +dHQ +aaa +dJj +dKd +dKT +dLY +dMZ +dNT +dNT +dPB +dMZ +dOS +dSa +dOS +dMZ +dNT +dNT +dNT +dMZ +dOS +dKT +dXU +dYF +dZt +dZV +dKT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaq +aav +aaA +aaF +aaN +aaS +aaW +abc +abh +abh +abh +abh +abh +abh +acr +abh +ada +abh +abh +adJ +abh +abh +abh +abh +abh +abh +afA +aba +agx +ahb +ahL +ahL +ahL +ahL +ahL +ahL +ahL +ahL +ajD +aiB +arH +asZ +aud +avv +awu +axr +ayG +azJ +aAF +aBQ +aBQ +aEp +aFM +aHi +aBQ +aBQ +aLh +aHi +aOx +aQj +aRR +aTA +aVb +aWX +aEk +baf +bbz +bcK +bek +bbz +bhR +bjF +bkY +bna +boR +bqt +aaa +aaf +aaa +bsV +bxC +bzA +bBu +bDe +bEN +bGD +bIA +bKF +bMF +bOz +bQz +bSK +bUQ +bWE +bYp +cai +cbR +bQC +cfj +cfj +cie +cjI +cli +cmx +cnZ +cpI +cqU +cso +ctU +cvx +cwR +cyy +cAj +cBK +cCZ +cDZ +bna +cGY +cIu +cKl +cLN +cNx +cPq +cLL +cSx +cUe +cVS +cXG +cZe +dan +dbP +ddf +deU +dgD +dhR +djS +dlE +dmV +dod +dpI +drl +dsL +dul +dvq +dwN +dxW +dxW +dAq +dBI +dxX +dwK +dEX +dGA +dHP +aaa +dJj +dKd +dKU +dLZ +dNa +dNa +dNa +dNa +dNa +dNa +dNa +dNa +dNa +dNa +dNa +dNa +dNa +dWH +dXl +dXU +dXU +dXU +dZV +dKU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aau +aau +aau +aaM +aaT +aax +abd +aaQ +aaQ +abH +aaQ +aaQ +aaQ +aaQ +aaQ +adb +aaQ +aaQ +adK +aec +aea +aew +aeR +aea +aea +afB +afS +agj +ahc +aeX +aiy +ajB +akD +aly +aly +anI +agA +agA +aqI +arI +asZ +aue +avw +awv +axs +ayH +azK +aAG +aBQ +aDa +aEq +aFN +aHj +aIn +aJI +aLi +aMW +aOy +aQk +aRQ +aTB +aUZ +aWY +aEk +baf +bbz +bcL +bei +bbz +bhV +bbv +bkW +bmX +boR +bqt +aaa +aaf +aaa +bsV +bxO +bzK +bBv +bCN +bEO +bGE +bIB +bKG +bMG +bOA +bQA +bSL +bQC +bWF +bYq +caj +cbS +bQC +cfk +cfk +cif +cjJ +clj +cfi +coa +cpG +cqS +csp +ctV +cvy +cwS +cyz +cAk +cBL +cqS +bkP +bmX +cGY +cIs +cKm +cLL +cNx +cPp +cLM +cSy +cKs +cVT +cXz +cZf +cXz +dbQ +ddg +deV +dgD +dhS +djT +dlF +dmW +dod +dpJ +drm +dsM +dum +dvr +dwN +dxS +dzc +dAs +dBK +dCZ +dwK +dFb +dGB +dHP +aaa +dJj +dKd +dKU +dLZ +dNa +dNU +dNU +dNU +dNU +dNU +dNa +dNU +dNU +dNU +dNU +dNU +dNa +dWH +dKT +dXV +dXU +dXU +dZV +dKT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaB +aaG +aaG +aaG +aaG +aaG +aaG +aaG +aaG +aaG +aaG +aaG +acv +acL +adc +aaG +aaG +acv +aed +aeo +aaG +aaG +aeX +afm +aeX +aeX +agy +ahd +aeX +aiz +ajC +ajC +alz +amy +anJ +aop +ahg +aqJ +arJ +asZ +aue +avv +aww +axt +ayI +azL +aAH +aBQ +aDb +aEr +aFO +aHk +aIo +aJJ +aLj +aMX +aOz +aQl +aRS +aTB +aUZ +aWZ +aYD +bag +bbz +bcL +bei +bbz +bhW +bbv +bkW +bmX +boT +boZ +aaf +aaf +aaf +bsV +bxP +bzy +bBd +bDf +bEL +bGF +bIB +bKH +bMH +bOB +bOB +bSM +bQC +bWG +bYr +cak +cbT +cdI +cfl +cfk +cig +cjK +clk +cmy +cob +cpJ +cqS +csq +ctW +cvz +cwT +cyA +cAl +cBM +cqS +bkP +bmX +cGY +cIs +cKn +cLM +cNx +cPp +cLL +cSz +cIs +cVU +cXH +cZg +cKs +dbR +ddh +deW +dgD +dhT +djU +dlG +dmX +dod +dpK +drn +dsN +dun +dvs +dwN +dxX +dxW +dAq +dBI +dDa +dwK +dEZ +dGC +dHQ +aaf +dJk +dJk +dKT +dLZ +dNa +dNV +dOQ +dPC +dQp +dNV +dNa +dSS +dQp +dUb +dOR +dSS +dNa +dWH +dKU +dXV +dXU +dZu +dZV +dKT +dKT +dRZ +dKU +dKT +dKT +aaa +aaa +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaf +aaf +aaG +aaX +aaG +abi +abr +abI +abX +acd +aaG +acw +acM +add +adj +adu +adQ +aee +adQ +aeA +aaG +aeY +afn +afn +aeX +agz +ahe +aeX +aiA +ajD +aeX +aeX +aeX +afF +aeX +aeX +aeX +arK +asZ +auf +avx +awx +axu +aua +azM +aAI +aBQ +aDc +aEs +aFP +aHl +aIp +aJK +aLk +aMY +aOA +aQm +aRT +aTC +aVc +aXa +aBM +bah +bag +bcN +bek +bgb +bhX +aZZ +bkZ +bmX +boR +bqt +aaa +aaf +aaa +bsV +bxz +bzy +bBd +bDg +bEL +bGG +bIC +bKI +bIB +bOC +bQB +bSN +bUR +bWH +bYr +cal +cbU +bUP +cfm +cgz +cih +cjL +cll +cmz +coc +cpK +cqS +cqS +ctX +cvA +cwU +cyB +cAm +cBN +cqS +cEa +bmX +cHa +cIv +cKo +cLO +cNz +cPr +cLM +cSA +cUi +cVV +cXI +cZh +dao +dbS +ddi +deX +dgE +dhU +djU +dlH +dmY +doe +dpL +dro +dsO +duo +dvt +dwN +dxY +dzd +dAt +dBL +dDb +dwK +dEX +dGA +dHP +aaa +dJj +dKd +dKT +dLZ +dNa +dNT +dNT +dNT +dNT +dNT +dNa +dNT +dNT +dNT +dNT +dNT +dNa +dWH +dKT +dXW +dXU +dZv +dZW +dKT +eat +eax +eaD +eaL +dKT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaH +aaH +aaU +aaY +abe +abj +abs +abJ +abJ +ace +acp +acx +acN +ade +adk +adv +adR +aef +adR +aeB +aeS +aeZ +afo +afC +aeX +aeX +aeX +aeX +aiB +ajE +aeX +alA +amz +anK +aoq +apn +aeX +arL +asZ +asW +avy +awy +asW +ayJ +asW +asW +aBQ +aBQ +aEt +aFQ +aHm +aBQ +aBQ +aEp +aMZ +aOx +atc +aRU +aTD +ata +aXb +aXb +aXf +bbB +bcO +bel +aXf +aXb +aXb +bla +bmX +boR +bqt +aaa +aaf +aaa +bsV +bxw +bzL +bBc +bCL +bEL +bGH +bID +bKJ +bMI +bEL +bQC +bQC +bQC +bWI +bYs +cam +cbV +bQC +cfn +cgA +cii +cjM +clm +cfi +cod +cpG +cqV +cqS +ctY +cvB +cwV +cyC +cAn +cBO +cDa +cDL +bmX +cGY +cIt +cKp +cLM +cNx +cPm +cLL +cSA +cUj +cVW +cXJ +cZi +dap +dbT +ddj +deY +dgE +dhV +djV +dlI +dmZ +dof +dpM +drp +dsP +dup +dvu +dwN +dxZ +dze +dAu +dBM +dDc +dwK +dEY +dGz +dHP +aaa +dJj +dKd +dKU +dLZ +dNa +dNa +dNa +dNa +dNa +dNa +dNa +dNa +dNa +dNa +dNa +dNa +dNa +dWI +dKT +dKT +dXl +dKU +dRZ +dKT +eau +eay +eaE +eaM +dKU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaf +aaG +aaZ +aaG +abk +abt +abK +abK +acf +aaG +acy +acO +adf +adl +abK +adS +aeg +aep +aeC +aaG +afa +afp +afD +afT +agA +ahf +ahO +aiC +ajF +aeX +alB +amA +anL +aor +alC +aeX +arM +ata +aug +avz +awz +axv +ayK +azN +aAJ +avF +aDd +aEu +aFR +aHn +aIq +aJL +aLl +aNa +aOB +aQn +aRV +aTE +aVd +aXc +aYE +bai +bbC +bcP +bem +bgc +bhY +aXb +blb +bmX +boR +bqt +aaa +aaf +aaa +bsV +bxy +bzM +bBw +bxy +bEL +bGI +bIE +bIE +bIB +bOD +bQC +bSO +bUS +bWJ +bYt +can +cbW +bQC +cfo +cfk +cij +cjN +cln +cmA +cnV +cpG +cqW +cqS +ctZ +cvC +cwW +cyD +cAo +cBP +cDb +cDL +bmX +cGY +cIs +cKq +cLL +cNw +cPl +cLM +cSA +cUk +cVX +cLM +cSA +cIs +dbT +ddk +deY +dgE +dhW +djW +dlJ +dna +dog +dpN +drq +dsQ +duq +dvv +dwN +dwK +dwK +dAv +dBN +dwK +dwK +dFc +dGD +dHQ +aaf +dJk +dJk +dKT +dLZ +dNa +dNU +dNU +dNU +dNU +dNU +dNa +dNU +dNU +dNU +dNU +dNU +dNa +dWH +dKU +dXX +dYG +dZw +dZX +dNc +eav +eav +eaF +eaN +dKU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaf +aaG +aaG +abf +abl +abu +abL +abf +acg +aaG +acg +acg +acg +acg +adw +acg +acg +acg +acg +aaG +afb +afq +afE +afU +agB +ahg +ahP +aiD +ajG +aeX +alC +amB +anM +amA +apo +aeX +arN +ata +auh +avA +awA +axw +ayL +azO +aAK +avG +awC +aEv +aFS +azQ +awC +awC +aLm +aul +aOC +aQo +aRW +aTF +aVe +aXd +aYF +baj +bbD +bcQ +ben +bgd +bhZ +aXf +bkW +bmX +boU +boZ +brL +brL +brL +bsV +bxx +bzy +bBd +bDh +bEL +bGJ +bIF +bKK +bMJ +bOE +bQC +bSP +bUT +bWK +bYu +cao +cbX +bQC +cfp +cfk +cik +cjO +clo +cfi +cnV +cpG +cqX +cqS +cua +cvD +cwX +cyE +cAp +cBQ +cDc +cDL +bmX +cGY +cIs +cKr +cLP +cNA +cPs +cRa +cSB +cIs +cVY +cXK +cZj +cKs +dbT +ddj +deY +dgD +dhX +djX +dlK +dnb +dod +dpO +drr +dsR +dur +dvw +dwN +dya +dyY +dAw +dBO +dDd +dwK +dFd +dGE +dHP +aaa +dJj +dKd +dKU +dLZ +dNa +dNV +dOR +dPC +dQp +dNV +dNa +dSS +dOQ +dUb +dUI +dSS +dNa +dWH +dXm +dLZ +dNa +dNa +dZY +dXm +eav +eav +eaG +eaO +dKU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aae +aaf +aaf +aaf +abf +abm +abv +abM +abf +aaf +aaG +acz +acP +acP +acP +acP +acP +acP +acP +aeq +aaG +afc +afr +afF +afc +aeX +afc +ahQ +afc +aeX +aeX +alD +amC +anM +aos +app +aeX +arN +atb +aui +avB +awB +axx +ayM +azP +aAL +aBR +aDe +aEw +aFT +aFT +ayM +ayM +aLn +auq +aOD +aQp +aRX +aOE +aVf +aXe +aYG +bak +bbE +bcR +beo +bbD +bia +bjJ +blc +bmY +boV +boZ +brM +brM +brK +bsV +bxw +bzN +bBc +bCL +bEL +bEL +bEL +bEL +bEL +bEL +bQC +bQC +bQC +bQC +bQC +bQC +bQC +bQC +cfi +cfi +cil +cfi +cfi +cmB +cnL +cpo +cqY +cqS +cqS +cqS +cqS +cqS +cqS +cqS +cDd +bkS +bmZ +boJ +cIw +cKs +cIs +cNB +cPt +cIs +cIw +cKs +cIs +cXL +cIs +cKs +dbT +ddl +deZ +dgF +dgE +djY +dlL +dgE +dod +dpP +drs +dsS +drs +dvx +dwN +dyb +dzf +dAx +dBP +dDe +dwK +dFe +dGF +dHP +aaa +dJj +dKd +dKU +dLZ +dNa +dNT +dNT +dNT +dNT +dNT +dNa +dNT +dNT +dNT +dNT +dNT +dNa +dWH +dXm +dLZ +dNa +dNa +dZY +dXm +eav +eav +eaH +eaP +dKU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aae +aae +aaf +aaf +abg +abn +abw +abN +abf +aaa +aaG +acA +acz +acQ +acR +acR +acR +acR +aeq +aeD +aaG +afd +afs +afG +afV +aeX +afn +afn +aiE +ajH +akE +alB +amC +anN +amE +amE +aqK +arN +atc +auj +avC +awC +axy +ayN +azQ +axA +awC +aDf +aEv +aFU +awC +ayQ +awC +aLo +aNb +aDe +aQq +aRY +aDe +aVg +aXf +aYH +bal +bbF +bcS +bep +bge +bib +aXf +bkW +bnb +boW +bqq +brN +bsZ +brN +bvU +bxQ +bzO +bBx +bxQ +brN +bGK +brN +brN +brN +bqq +bsZ +bSQ +brN +brN +bsZ +brN +brN +brN +brN +cgB +cim +brN +brN +bqq +coe +cpL +cqZ +csr +cub +cvE +cwY +cqZ +cqZ +cqZ +brH +bkT +cFG +cuf +cIx +cKs +cLQ +cNv +cPu +cRb +cRb +cUl +cRb +cXM +cZk +cRb +dbU +ddm +dfa +dat +dhY +djZ +dlM +dnc +doh +dpQ +drt +dsT +dpQ +dvy +dwO +dyc +dzg +dAy +dBQ +dDf +dwO +dFf +dGG +dHQ +aaf +dJk +dJk +dKT +dLZ +dNa +dNa +dNa +dNa +dNa +dNa +dNa +dNa +dNa +dNa +dNa +dNa +dNa +dWH +dKU +dXY +dYH +dZx +dYJ +dNc +eav +eaz +eaF +eaQ +dKU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaf +aaf +abf +abo +abx +abO +abf +aaf +aaG +acA +acQ +acR +acR +acR +acR +acR +acR +aeD +aaG +afe +aft +afH +afW +agC +afn +ahR +aiF +aeX +akF +alE +amD +anO +amC +apq +aqL +arO +atd +auk +avD +awD +axz +ayO +azR +awD +ayO +aDg +aEx +aFV +aHo +aIr +aJM +aLp +aNc +aOE +aQr +aRZ +awC +aVh +aXb +aYI +bam +bbG +bcT +beq +bgf +bic +aXb +bld +bnc +boX +bqv +brO +bta +buq +brO +brO +bzP +bBy +bCG +buq +brO +brO +brO +brO +bqv +bta +bSR +brO +brO +bXY +brO +brO +brO +brO +bta +boX +brO +brO +bqv +bBy +cpM +brO +brO +bta +brO +brO +brO +brO +cBR +brO +bBy +cFH +boH +cIy +cKs +cLR +cNC +cPv +cLO +cSC +cLO +cSC +cLO +cZl +daq +dbV +ddn +dfb +dgG +dhZ +dka +dlN +dnd +doi +dnd +dru +dsU +dlN +dvz +dwP +dyd +dzh +dAz +dBR +dDg +dEm +dFg +dGH +dHP +aaa +dJj +dKd +dKU +dLY +dNb +dNU +dOS +dOS +dNU +dNU +dNU +dNU +dNU +dNU +dOS +dOS +dNb +dLY +dKT +dRZ +dKT +dKT +dZZ +dKT +eau +eaA +eaI +eaR +dKU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aae +aaf +abg +abg +aby +abg +abg +aaf +aaG +acA +acR +acR +acR +adx +acR +acQ +acR +aeD +aaG +aff +aft +afG +afX +agD +ahh +ahS +aiG +aeX +akG +afn +amE +amE +amA +alB +aqM +arP +atc +aul +avE +awC +awC +axA +azQ +axA +axA +awC +awC +axA +aHp +awC +awC +aLm +aul +awC +aQs +aSa +axA +aVi +aXb +aXb +aXf +bbH +bcO +ber +aXf +aXb +aXb +ble +bnd +boY +bqs +brP +btb +bur +bvV +brP +bzQ +bBz +bBz +bEP +bGL +brP +brP +bMK +bqs +bQD +bSS +bUU +brJ +bYv +brJ +brJ +cdJ +cfq +cgC +cin +cjP +brJ +bqs +cof +cof +cra +css +cuc +brJ +bYv +brJ +brJ +cdJ +brJ +cEb +cFI +cHb +cIz +cKs +cLS +cND +cPw +cRc +cRc +cUm +cRc +cRc +cRc +cRc +dbW +ddo +dfc +dav +dia +dia +dlO +dlO +doj +dlO +drv +dlO +dus +dvA +dwK +dxS +dzi +dAA +dBS +dxS +dwK +dEY +dGA +dHP +aaa +dJj +dKd +dKT +dKT +dNc +dKU +dOT +dOT +dKU +dRh +dKT +dKT +dKT +dKT +dUJ +dUJ +dKT +dKT +dKT +dXZ +dYI +dZy +dSa +dKT +eaw +eaB +eaJ +eaS +dKT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaf +aaf +abg +abz +abg +aaf +aaf +aaG +acA +acR +acR +acR +ady +acR +acR +acR +aeD +aaG +afg +afs +afI +afY +agE +ahi +ahT +aiH +aeX +akH +alF +amF +amC +amB +apr +aqM +arQ +atc +aum +avF +awE +axA +ayP +azS +aAM +awC +awG +awC +ayP +aHq +awG +awC +aLq +auq +aOF +aQp +aSb +aTG +aVj +aXb +aYJ +ban +bbI +bcU +bes +bgg +bid +aXb +blf +aXb +boZ +boZ +brQ +btc +bus +bvW +bxR +boZ +boZ +boZ +bEQ +boZ +bIG +bIG +bIG +bOF +bQE +bST +bUV +bWL +bWM +bWM +bWM +bWM +cfr +cgD +bWP +bWM +bWM +bWM +bWM +cpN +crb +cst +cud +cvF +cvF +cvF +cvF +cvF +cDe +cDe +cFJ +cHc +cDe +cDe +cLT +cLT +cPx +cRd +cSD +cLT +cLT +cXN +cSD +dar +dbX +ddp +dfd +cIu +cIs +cWd +cWd +cIs +dok +dpR +drw +dsV +dol +dvB +dol +dol +dol +dol +dol +dol +dol +dEY +dGI +dHQ +aaf +dJk +dJk +dKT +dMa +dNd +dNW +dOS +dOS +dQq +dRi +dKT +dST +dTv +dUc +dOS +dOS +dWa +dWJ +dKT +dYa +dYI +dKS +dKT +dKT +dKT +dRZ +dKU +dKT +dKT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +abg +aby +abg +aaf +aaf +aaG +acA +acR +acQ +acR +adz +acR +acR +acR +aeD +aaG +afh +aft +afJ +afZ +agF +ahh +ahU +ahX +aeX +akI +alG +afs +anP +amC +aps +aqM +arR +atc +aun +avF +awF +awC +awG +azS +aAN +awC +ayP +axA +aFW +aHp +awG +axA +aLm +auq +aOG +aQt +aSc +aTH +aVk +aXg +aYK +aYF +bbJ +bcQ +bet +bgh +bie +bjK +blg +aXb +aaa +aaf +aaa +btd +but +bvX +aaa +aaf +aaa +boZ +bER +boZ +bIH +bKL +bML +bIG +bQF +bSU +bUW +bWM +bYw +cap +cbY +cdK +cfs +cgE +cfu +cjQ +clp +cmC +cog +bWM +crc +csu +boH +cvF +cwZ +cyF +cAq +cvF +cDf +cEc +cFK +cHd +cIA +cKt +cLU +cNE +cPy +cRe +cSE +cUn +cVZ +cXO +cZm +cVZ +dbY +ddj +dfe +cIs +dib +dkb +dkb +dne +dol +dpS +drx +dsW +dut +dvC +dwQ +dye +dzj +dAB +dBT +dDh +dol +dEY +dGx +dHP +aaa +dJj +dKd +dKU +dMb +dNe +dNX +dNa +dNa +dQr +dRj +dSb +dOS +dTw +dUd +dUd +dUd +dWb +dWK +dKT +dYb +dYJ +dZz +eaa +dKT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aae +aae +aaf +aae +aae +aaf +aae +aaa +aaf +aaf +aaf +abA +aaf +aaf +aaa +aaG +acA +acQ +acR +acR +acR +acQ +acR +acR +aeD +aaG +afi +aft +aft +afZ +agD +ahj +ahT +aiI +ajH +akJ +alH +amG +akG +aot +apt +aqM +arK +atc +auo +avG +awG +axA +ayQ +azS +aAO +awC +aDh +axA +aDf +aHq +ayP +awC +aLr +aNd +aOH +aQu +aSd +aTI +aVl +aXh +aYL +bao +bbK +bcV +beu +bgi +bif +bjL +blh +aXb +aaa +bqw +bqw +bte +buu +bqw +bqw +bqw +aaa +boZ +bES +boZ +bII +bKM +bMM +bOG +bQG +bSU +bUX +bWN +bYx +caq +cbZ +cbZ +cft +cgF +caq +caq +caq +caq +cbZ +bWN +crd +csu +boH +cvF +cxa +cyG +cAr +cvF +cDg +cEd +cFL +cHe +cEd +cKu +cLU +cNF +cPz +cRf +cSF +cUo +cWa +cXP +cZn +das +dbZ +ddq +dfe +cKs +dic +dkc +dlP +dnf +dom +dpT +dry +dsX +duu +dvD +dwR +dyf +dzk +dAC +dBU +dDi +dol +dFa +dGJ +dHP +aaa +dJj +dKd +dKU +dMc +dNf +dNY +dNa +dNa +dQr +dRj +dSb +dOS +dTx +dUe +dUe +dUe +dWc +dWK +dKT +dYa +dYK +dLZ +eaa +dKU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aae +aae +aaf +aae +aae +aaa +aaa +aaf +aaa +aaa +aae +aae +aaf +aae +aaf +aak +aaf +aae +aaf +aaG +acA +acB +acR +acQ +acR +acR +acR +aer +aeD +aaG +afj +aft +afs +aga +aeX +ahk +ahV +aiJ +aeX +aeX +aeX +afu +afu +aeX +alJ +aqN +arS +alJ +aup +avG +awH +awC +ayR +azT +aAP +awC +awH +ayN +ayR +aHr +awH +awC +aLs +aNe +aNf +aQv +aSe +aTJ +aVm +aNg +aYM +bap +bbL +bcW +bev +bgj +big +aXb +bbO +aXb +aaf +bqw +brR +btf +but +btj +bxS +bqw +aaf +boZ +bET +bGM +bIJ +bKN +bMN +bOH +bQF +bSU +bUW +bWO +bYy +car +cca +cdL +cfu +cgG +cio +car +cfu +cfu +cfs +bWO +cre +csv +cue +cvF +cxb +cyH +cAs +cvF +cDh +cEe +cFM +cHf +cEd +cKv +cLU +cNG +cPA +cRg +cSG +cUp +cWb +cXQ +cZo +cWb +dca +ddr +dff +cIs +did +dkd +dlQ +dng +dom +dpU +drz +dsY +duv +dvE +dwS +dyg +dzl +dyg +dBV +dDj +dol +dFa +dGK +dHQ +aaa +dJj +dKd +dKT +dMd +dNg +dNZ +dOU +dPD +dQs +dRk +dRh +dSU +dTy +dUf +dSa +dSa +dLY +dWL +dKT +dLY +dYL +dZA +eaa +dKT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aae +aaa +aaa +aaf +aaa +aaa +aai +aaj +aan +aaa +aaa +aaf +aaa +aaa +aaf +aal +aaa +aae +aaf +aaG +acB +acS +acS +acS +acS +acS +acS +acS +aer +aaG +aeX +afu +afu +aeX +aeX +aeX +ahW +aeX +aeX +aaf +aaf +aaH +aaH +aaf +alI +aqO +arT +alJ +auq +avH +awI +awI +ayS +awI +awI +awI +awI +awI +awI +awI +awI +awI +aLt +aNf +aOI +aQw +aSf +aTK +aVn +aXi +aYM +bap +bbM +bcX +bew +bgk +aXb +aXb +bli +aXb +aaa +bqw +brS +btg +buv +bti +bxT +bqw +aaa +boZ +bER +boZ +bIK +bKO +bMO +bOI +bQH +bSV +bUY +bWP +bYz +car +ccb +cdL +cfv +cgH +cip +cjR +clq +cmD +coh +cpO +crf +csw +cuf +cvF +cxc +cyI +cAt +cvF +cvF +cvF +cFN +cHg +cDg +cKw +cLU +cLT +cPB +cRh +cSH +cLT +cLT +cPx +cZp +dar +dcb +ddk +deY +cKs +die +dke +dlR +dnh +dom +dpV +drA +dsZ +duw +dvF +dwT +dyh +dzm +dAD +dBW +dDk +dol +dFh +dGL +dHP +aaa +aaa +dJk +dKS +dKT +dKU +dKU +dKU +dKU +dKT +dKT +dRZ +dKT +dKU +dKU +dKU +dKU +dKU +dKT +dKT +dKU +dYM +dYM +dKU +dKT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaf +aaa +aai +aaj +aan +aaa +aai +aaj +aan +aaa +aai +aaj +aan +aaa +aaf +abA +aaf +aae +aaf +aaG +aaG +aaG +aaG +aaG +aaG +aaG +aaG +aaG +aaG +aaG +aaf +aaH +aaH +aaf +aeX +ahl +ahX +aiK +aeX +aaf +alI +alI +alI +alJ +alJ +aqP +arU +alJ +aur +avI +awJ +axB +ayT +ayT +aAQ +aAQ +ayT +aEy +aAQ +aAQ +aDi +aJN +aLu +aNf +aOJ +aQx +aSg +aTL +aVo +aNf +aYN +baq +bbN +bcX +bex +bgj +bih +aXb +bar +aXb +aaa +bqw +brT +bth +buw +bvY +bxU +bqw +aaa +boZ +bEU +boZ +bIL +bKP +bMP +bIG +bQF +bSU +bUW +bWM +bYA +car +car +cdL +cfu +cgG +car +car +car +cmE +coi +bWM +crg +csx +boH +cvF +cxd +cyJ +cAu +cBS +cDi +cEf +cFO +cHh +cIB +cDg +cKs +cNH +cPC +cRb +cSI +cUq +cWc +cRb +cRb +dat +dcc +ddj +deY +cIs +dib +dkb +dkb +dni +dol +dpW +drB +dta +dux +dvG +dwU +dyi +dzj +dAE +dBX +dDl +dol +dFi +dGM +dHP +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 +"} +(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 +aae +aaa +aai +aaj +aan +aaa +aai +aaj +aan +aaa +aai +aaj +aan +aaa +aaf +abA +aaa +aaf +aaf +aaf +aaf +aaa +aaf +aaf +aaf +aaa +aaf +aaa +aaf +aaf +aaf +aaf +aaf +aaf +aeX +ahm +ahY +aiL +aeX +aaf +alI +amH +anQ +aou +apu +aqQ +arV +alJ +aus +avJ +avJ +axC +avJ +awH +aAR +awH +aDi +aEz +aEz +aEz +aIs +aJN +aLv +aNf +aOK +aQy +aSh +aTL +aVp +aNg +aYO +bar +bbF +bcY +bbF +bgl +bii +aXb +blj +aXb +aaa +bqw +brU +bti +bux +bti +bxV +bqw +aaa +boZ +bEU +boZ +bIG +bIG +bIG +bIG +bQI +bSW +bUZ +bWM +bYB +bYB +bYB +cdM +cfw +cgI +bYB +bYB +bYB +cmF +coj +bWM +crh +csu +boH +cvG +cxe +cyK +cAv +cBT +cDj +cEg +cFP +cHi +cIC +cDg +cKs +cNI +cLM +cLL +cNw +cUr +cLM +cLL +cLM +dau +dcd +ddk +dfg +cIu +cIs +cWd +cWd +cIs +dok +dpR +drC +dsV +dol +dvH +dol +dol +dol +dol +dol +dol +dol +dch +dGN +cKs +cKs +dJl +dJp +dJp +dJp +dJp +aaa +dOV +dMh +dJp +dJr +dJp +dKq +dTz +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aae +aaf +aai +aaj +aan +aaf +aai +aaj +aan +aaf +aai +aaj +aan +aaf +aaf +abA +aaa +aae +aae +aaf +aae +aae +aae +aaf +aae +aae +aae +aae +aae +aaa +aaf +aaa +aaa +aaf +aeX +ahn +ahZ +aiM +aeX +aaf +alI +amI +anR +anR +apv +aqR +arW +alJ +aut +avK +awK +axD +ayU +azU +aAS +aBS +aDj +aEA +awK +awK +awK +awK +aLw +aNg +aOL +aQz +aSi +aTM +aVq +aNg +aYP +bas +bbO +bbF +bbF +bgm +bij +aXb +aXb +aXb +aaf +bqw +brV +btj +buy +btj +brR +bqw +aaf +boZ +bEV +bGN +bIM +bKQ +bMQ +bIM +bQJ +bSX +bVa +bWM +bYC +cas +ccc +cdN +cfx +cgJ +ciq +cjS +clr +cmG +cfs +bWM +cri +csy +cug +cvF +cxf +cyL +cAw +cvF +cvF +cvF +cFK +cHd +cDg +cDg +cKs +cNJ +cKp +cKp +cSJ +cPw +cRc +cRc +cRc +dav +dbW +dds +dfh +dav +dif +cZh +cZh +cZh +don +dif +drD +cZh +cZh +cZh +dwV +cZh +dzn +dif +dif +dDm +dEn +dFj +dGO +dHR +dIF +dJm +dKe +dKV +dMe +dJp +aaf +dOW +dPE +dQt +dRl +dSc +dSV +dTA +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 +"} +(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 +aaf +aaa +aai +aaj +aan +aaa +aai +aaj +aan +aaa +aai +aaj +aan +aaa +aaf +aak +aaf +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaH +aaf +aaf +aaH +aaf +aaf +aaa +aaa +aaf +aeX +aeX +aeX +aeX +aeX +aaf +alJ +amJ +alJ +alJ +apw +aqS +arW +alJ +aaf +aaf +aaf +axE +ayV +azV +aut +azV +aDk +axE +aaf +aaf +aaf +aaf +aaf +aNh +aOM +aQA +aSj +aTN +aVr +aNh +aYQ +bat +bbP +bbG +bey +bgn +bik +bjM +aaf +aaa +aaa +bqw +bqw +bqw +bqw +bqw +bqw +bqw +aaa +bDi +bDi +bGO +bDi +bKR +bMR +bIM +bQK +bSU +bVb +bWM +bYD +cat +ccd +cdO +cfy +cgK +cir +cjT +cls +cmH +cok +bWM +crg +csu +cuh +cvF +cxg +cyM +cAx +cBU +cDk +cvF +cFQ +cHj +cID +cID +cLV +cNK +cNK +cRi +cLV +cIs +cWd +cWd +cIs +daw +dbY +ddt +dfi +dgH +dig +cXR +cWe +cXR +cWe +dpX +drE +cXR +cWe +cXR +dfi +cXR +cWe +dAF +dfi +dDn +dEo +dFk +dGP +dHS +dDn +dJn +dKf +dKW +dMf +dJp +aaa +dJp +dPF +dQu +dRm +dSd +dSW +dJp +aaf +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aae +aaf +aae +aae +aaf +aai +aaj +aan +aaa +aaf +aak +aaf +aaa +aai +aaj +aan +aaa +aaf +aaw +aaa +aae +aaa +aaa +aaa +aaa +aaH +aaf +aaf +aaH +aaa +aaa +aaH +aaa +aaf +aaa +aaa +aaf +aaf +aaf +aaf +aaf +aaf +aaf +alI +amK +anS +aov +apw +aqT +arX +alJ +aaa +aaa +aaa +axF +ayW +azW +aAT +azW +aDl +aEB +aaa +aaa +aaa +aaa +aaf +aNi +aON +aQB +aSk +aTO +aVs +aXj +aYR +bau +bbQ +bcZ +aXf +bgo +aYR +bgp +aaf +aaa +aaa +aaa +aaf +aaa +aaf +aaa +aaf +aaa +aaa +bDi +bEW +bGP +bIN +bIO +bMS +bDi +bQL +bSU +bUW +bWM +bYE +cau +cce +cdP +cfz +cgL +cis +cjU +clt +cmI +col +bWM +crg +csu +cuh +cvF +cxg +cyN +cAy +cvF +cvF +cvF +cFQ +cHj +cIE +cKx +cLW +cNL +cPD +cRj +cLV +cUs +cKi +cSu +cZq +cIs +dce +ddu +dfj +dat +dih +dkf +dih +dnj +dih +dpY +drF +dih +duy +dih +dfl +dnj +dzo +dih +dfl +dDo +cNP +dFl +dGQ +dHT +dIG +dJo +dKg +dKX +dMg +dJp +aaf +dOX +dPG +dQv +dRn +dSe +dSX +dTB +aaa +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aae +aaa +aaf +aaa +aaa +aaf +aak +aaf +aaf +aaf +aaw +aaf +aaf +aaf +aak +aaf +aaf +aaf +aaw +aaf +aae +aaf +aaH +aaf +aaf +aaH +aaa +aaa +aaH +aaf +aaf +aaH +aaf +aaf +aaf +aae +aae +aaf +aaa +aae +aae +aae +aaf +alI +amK +anT +aow +apx +aqU +arX +alI +aaa +avL +avL +avL +ayX +azX +avL +azX +aDm +avL +avL +avL +aaa +aaa +aaf +aNj +aOO +aQC +aSl +aTP +aVt +aNj +aaf +bav +bbR +bda +bez +bav +aaf +aaf +aaf +aaf +aaf +aaf +aae +aae +aae +aae +aae +aaf +aaf +bDj +bEX +bGQ +bIO +bKS +bMT +bDi +bQL +bSU +bUW +bWM +bYF +cav +ccf +cdQ +cfA +cgM +cit +cjV +clu +cmJ +col +bWM +crj +csz +cui +cvF +cxh +cyO +cAz +cBU +cDl +cvF +cFK +cHj +cIF +cKy +cLX +cLX +cLX +cRk +cSK +cUt +cWe +cXR +cZr +dax +dbZ +ddv +dfe +dgI +dgI +dgI +dgI +dnk +dlS +dpZ +dlS +dgI +dgI +daA +dwW +dyj +cKs +daA +dwW +dyj +cKs +dch +dGR +cKs +cKs +dJl +dJp +dKY +dJp +dJp +aaa +dOY +dPH +dQw +dRo +dSf +dSY +dOY +aaa +aaf +aaf +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaf +aaf +aag +aah +aah +aah +aah +aah +aao +aar +aaw +aaw +aaw +aaO +aaw +aaw +aaw +aaw +aaw +aaa +aaf +aaa +aaH +aaa +aaa +aaH +aaf +aaf +aaH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaf +alJ +amK +anU +aox +apy +aqV +arY +alI +aaa +avL +awL +axG +axG +azY +aAU +azY +azY +aEC +avL +avL +aIt +aaa +aaf +aNg +aNg +aQD +aSm +aTQ +aNg +aNg +aaa +baw +bbS +bdb +beA +baw +aaa +aaa +aaa +aaa +aaH +aaH +aaH +aaH +aaH +aaH +aaH +aaa +aaa +bDj +bEY +bGR +bIP +bKT +bMU +bOJ +bQM +bSY +bVc +bWQ +bYG +caw +ccg +cdR +cfB +cgN +ciu +cjW +clu +cmH +com +bWM +crg +csu +cuh +cvF +cxi +cyN +cAA +cvF +cvF +cvF +cFQ +cHj +cIG +cKz +cLY +cNM +cLY +cRl +cNK +cUu +cWf +cXS +cZs +cIt +dbY +ddj +dfe +dgI +dii +dkg +dgL +dnl +doo +dqa +drG +dtb +dgI +dvI +cNx +dyk +cKs +dvI +cNx +dyk +cKs +dFm +dGS +cDe +aaa +aaa +dJq +dKZ +dMh +aaa +aaa +dJp +dPI +dQx +dRp +dSg +dSZ +dJp +aaf +agg +aaf +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aae +aaa +aaf +aaa +aaa +aaf +aal +aaf +aaf +aaf +aaw +aaf +aaf +aaf +aal +aaf +aaf +aaf +aaf +aaf +aae +aaf +aaH +aaf +aaf +aaH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +alJ +amL +anV +aoy +apz +aqW +arZ +alJ +aaa +avL +awM +axH +ayY +axH +axH +axH +axI +aED +aFX +aHs +aIu +aaa +aaf +aNh +aOI +aQE +aSf +aTR +aNh +aaf +aaa +bax +bbT +bdc +beB +bgp +aaa +aaa +aaa +bne +bne +bqx +bne +bne +bqx +bne +bne +bne +aaa +bDi +bEZ +bGS +bIQ +bKU +bMV +bOK +bQN +bSZ +bUW +bWM +bYH +cax +cch +cdS +cfC +cgO +civ +cjX +clv +cmK +con +bWM +crg +csA +cuj +cvF +cxj +cyP +cAB +cBV +cDm +cvF +cFR +cHj +cIH +cKz +cLZ +cNN +cPE +cRm +cSL +cKp +cLM +cLL +cSA +cIt +dbY +ddk +dfe +dgJ +dij +dio +dgM +dnm +dop +dqb +drH +dtc +dgI +dvJ +cNw +dyl +cKs +dvJ +cNw +dyl +cKs +dFn +dGT +daM +aaf +aaf +dKh +dLa +dMh +aaf +aaf +dKq +dPJ +dQy +dRq +dSh +dTa +dMh +aaa +agg +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 +"} +(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 +aae +aae +aae +aae +aaf +aai +aam +aan +aaa +aaf +aal +aaf +aaa +aai +aam +aan +aaf +aae +aaf +aae +aae +aaa +aaH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaf +alJ +amM +alJ +alJ +alI +alI +alJ +alJ +aaa +avL +awN +axI +axI +axI +axH +axI +axH +aEE +aFX +aHt +aIu +aaa +aaf +aNk +aOP +aQF +aSn +aTS +aVu +aaf +aYS +aYS +aYT +bdd +aYT +aYS +aYS +aaa +aaa +bnf +bpa +bqy +brW +btk +buz +bvZ +bne +bzR +aaa +bDj +bFa +bGT +bIR +bKV +bMW +bOL +bQO +bTa +bVd +bWR +bWR +cay +cci +bWR +bWR +bWR +bWM +bWM +bWM +bWM +bWM +bWM +crk +csB +cuk +cvF +cxc +cvF +cAC +cvF +cvF +cvF +cFS +cHj +cII +cKA +cMa +cNO +cPF +cRn +cLV +cUv +cWg +cXT +cZt +cIs +dbY +ddj +dfe +dgI +dik +dio +dgL +dnn +doq +dqc +drI +dtd +dgI +dvK +dwX +dym +cKs +dvK +dwX +dym +cKs +cHd +dGU +cDe +aaa +aaa +dJq +dKZ +dMh +aaa +aaa +dJp +dPK +dQz +dRr +dSi +dTb +dJp +aaf +aaf +aaf +agg +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aae +aaa +aai +aam +aan +aaa +aai +aam +aan +aaa +aai +aam +aan +aaa +aae +aaf +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaH +aaa +aaH +aaf +aaf +aaf +aaf +aaa +aaa +avL +awN +axI +axH +axH +axH +axH +axH +aEE +aFY +aHt +aIu +aaa +aaf +aNi +aOQ +aQG +aSo +aTT +aNi +aaf +aYS +bay +bbU +bde +beC +bgq +aYS +aaa +aaa +bnf +bpb +bqz +brX +btl +buA +bwa +bxW +bzR +aaa +bDj +bFb +bGU +bIS +bKW +bMX +bOM +bQP +bTb +bVe +bWR +bYI +caz +ccj +cdT +cfD +bWR +ciw +cjY +clw +cmL +coo +cpP +crl +csC +cul +cvH +cxk +cyQ +cAD +cBW +clx +cEh +cFR +cHj +cID +cKB +cMb +cID +cID +cLV +cLV +cKs +cKs +cKs +cKs +cIw +dce +ddw +dfk +dgI +dil +dkh +dil +dno +dgI +dqd +dgI +dgI +dgI +dvL +dwY +dyn +cKs +dvL +dwY +dyn +cKs +dFo +dGV +cDe +aaa +dJp +dJp +dLb +dJp +dJp +dJp +dJp +dOh +dQA +dRs +dMh +dKl +dJp +dJp +dJp +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 +"} +(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 +aaf +aaf +aai +aam +aan +aaf +aai +aam +aan +aaf +aai +aam +aan +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 +aaf +aaa +aaf +aaa +aae +aae +aaa +aaa +aaa +avL +awO +axJ +ayZ +axJ +ayZ +ayZ +axJ +aEF +avL +avL +aIv +aaa +aaf +aNl +aOR +aNg +aNg +aTU +aVv +aaf +aYT +baz +bbV +bdf +beD +bgr +bil +aaa +aaa +bnf +bpc +bqA +brY +btm +buB +bwb +bne +bzR +aaa +bDi +bFc +bGV +bIT +bKX +bMY +bDi +bQQ +bTc +bVf +bWS +bYJ +caA +cck +cdU +cfE +bWR +cix +cjZ +clx +cmM +cop +cpQ +crm +cpQ +cum +cpQ +cxl +cpQ +cAE +cBX +clx +cEi +cFT +cHk +cIJ +cKC +cMc +cKs +cPG +cKs +cSM +cUw +cWh +cXU +cZu +cKs +dcf +ddj +dfe +dgI +dim +dim +dlS +dnp +dor +dqe +drJ +dte +dgI +dvM +dwZ +dyo +cKs +dvM +dwZ +dyo +cKs +dFp +dGU +cDe +aaf +dJp +dKi +dLc +dMi +dNh +dOa +dOZ +dPL +dQB +dRt +dSj +dTc +dSj +dUg +dJp +dVm +dWd +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 +"} +(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 +aae +aaa +aai +aam +aan +aaa +aai +aam +aan +aaa +aai +aam +aan +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 +aaH +aaa +aaH +aaa +aaa +aaa +aaa +aaa +aaa +avL +avL +avL +avL +avL +avL +aBT +avL +avL +avL +avL +aaa +aaa +aaf +aaf +aaf +aaa +aaa +aaf +aaf +aaf +aYS +baA +bbW +bdg +beE +bgs +aYS +aaa +aaa +bne +bne +bqB +bne +bne +bne +bwc +bne +bne +aaa +bDi +bDi +bGW +bIU +bDi +bDi +bDi +bQQ +bTd +bVg +bWT +bYK +caB +ccl +cdV +cfF +cgP +ciy +cka +clx +cmM +cop +cpQ +crn +cpQ +cun +cvI +cxm +cpQ +cAE +cBY +clx +cEj +cFU +cHl +cIK +cKD +cMd +cNP +cPH +cNP +cSN +cUx +cWi +cXV +cZv +day +dcg +ddx +dfl +dgK +din +dim +dlS +dnq +dos +dqf +drK +dtf +dgI +cKs +cKs +cKs +cKs +cKs +cKs +cKs +cKs +cHd +dGW +daM +aaa +dJq +dKj +dLd +dMj +dNi +dOb +dPa +dPM +dQC +dRu +dSk +dTd +dTC +dUh +dUK +dVn +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 +"} +(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 +aae +aaa +aai +aam +aan +aaa +aai +aam +aan +aaa +aai +aam +aan +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 +aaH +aaH +aaH +aaH +aaH +aaH +aaH +aaH +aaH +aaa +aaa +aaa +aaf +aaa +aaf +aaf +aaf +aaf +aaa +aaa +aYS +aYS +aYT +bdh +aYT +aYS +aYS +aaa +aaa +aaa +bpd +bqC +bpd +aaa +bpd +bwd +bpd +aaa +aaa +bDi +bFd +bGX +bIV +bKY +bMZ +bDi +bQR +bSU +bVh +bWU +bYL +caC +ccm +cdW +cfG +cgQ +ciz +ckb +clx +cmM +cop +cpR +cro +csD +cuo +cvJ +cxn +cpR +cAE +cBZ +clx +cEk +cFV +cHm +cIL +cKE +cMe +cKs +cPI +cKs +cSO +cUy +cWj +cUz +cZw +daz +dbW +dds +dfm +dgL +dio +dim +dlS +dnr +dot +dqg +drL +dtg +dgI +dvN +daK +dyp +cYg +dAG +dBY +dDp +dgN +dFq +dGU +cDe +aaf +dJp +dKk +dLe +dMk +dNj +dOc +dPb +dPN +dQD +dRv +dSl +dTe +dTD +dUi +dUL +dVo +dWe +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 +"} +(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 +aae +aaa +aaa +aaf +aaa +aaa +aai +aam +aan +aaa +aaa +aaf +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 +aaf +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaf +aaf +aaa +aaa +aaf +aaa +aaa +aaa +aaH +aaH +aaH +aaH +aaH +aaa +aaf +aaf +aaf +bpe +bqD +bpf +aaf +bpf +bwe +bpe +aaf +aaf +bDi +bFe +bGY +bIW +bKZ +bNa +bDi +bQL +bSU +bVi +bWR +bYM +caD +ccn +cdX +cfH +bWR +ciA +ckc +clx +cmN +coq +cpQ +crp +csE +cuo +cvK +cxo +cpR +cAF +cmN +clx +cvP +cvP +cvP +cvP +cKF +cMf +cNQ +cPJ +cRo +cSP +cUz +cWk +cXW +cZx +daA +dbY +ddk +dfn +dgM +dip +dim +dlS +dns +dou +dqh +drM +dth +dgI +dvO +dxa +cZA +dgO +dAH +dcj +dDq +dgO +cWn +dGX +cDe +aaa +dJp +dKl +dLf +dMl +dNk +dKl +dKl +dKl +dOY +dRw +dKq +dTf +dTE +dKl +dJp +dJp +dJp +dJp +aaf +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aae +aae +aaf +aae +aae +aaa +aaa +aaf +aaa +aaa +aae +aae +aaf +aae +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 +aaf +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaa +aaf +aaa +aaa +aaf +aaa +aaa +aaf +aaa +aaa +aaf +aaa +aaa +aaf +bjN +blk +bjQ +bpf +bqE +bpf +bjQ +bpf +bwf +bpf +bzS +bzS +bDi +bDi +bDi +bDi +bDi +bDi +bDi +bQS +bTe +bVj +bWR +bYN +bYN +bYN +bYN +bYN +bWR +ciB +ckd +clx +cmO +cor +cpS +crq +csF +cuo +cvL +cxp +cpQ +cAG +cCa +clx +cEl +cFW +cHn +cvP +cKG +cMg +cKs +cPK +cKs +cSQ +cUA +cWl +cXX +cZy +cKs +dbY +ddy +dfe +dgI +diq +dki +dlS +dnt +dov +dqi +drN +dti +dgI +dvP +dxb +dyq +dyq +dyr +dyq +dDr +dyq +dyq +dyq +dyq +aaf +dJp +dKm +dLg +dMm +dNl +dOd +dKl +dPO +dQE +dKl +dSm +dTg +dTF +dUj +dUM +dVp +dWf +dJp +aaf +agg +aaf +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aae +aae +aaf +aae +aae +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 +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aae +aaa +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +bjO +bll +bng +bpg +bqF +brZ +bjQ +buC +bqF +bpg +bzT +bBA +bDk +bFf +bGZ +bIX +bGZ +bGZ +bON +bQT +bTa +bVk +bWV +bDn +caE +cco +cdY +bdi +cgR +ciC +cke +clx +cmO +cos +cpQ +crr +csG +cup +cvM +cxq +cyR +cAH +cCb +cDn +cEm +cFX +cHo +cvP +cKH +cHc +cKs +cKs +cKs +cKs +cKs +cKs +cKs +cKs +cKs +dch +ddz +dfo +dgI +dgI +dgI +dgI +dno +dgI +dqj +dgI +dgI +dgI +dvQ +dxc +dyq +dzp +dAI +dBZ +dDs +dAJ +dFr +dGY +dyq +aaa +dJr +dKn +dLh +dMn +dNm +dOe +dKl +dPP +dQF +dRx +dSn +dTh +dTG +dUk +dUN +dVq +dWg +dWM +aaa +aaf +aaa +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaf +aaa +aaa +aaf +aaa +aaf +aaa +aaa +aaf +aaa +aaa +aaa +aae +aaa +aaf +aaa +aaa +aaf +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaa +aaf +bjP +blm +bnh +bph +bqG +bsa +btn +buD +bwg +bxX +bzU +bBB +bDl +bFg +bDl +bDl +bLa +bDl +bDl +bQU +bTf +bVl +bWW +bYO +caF +ccp +cdZ +bdi +cgS +ciD +ckc +clx +cmP +cot +cpT +crs +csH +cuq +cvN +cxr +cvN +cAI +cCc +csB +cEn +cFY +cHp +cvP +cKI +cMh +cNR +cNR +cRp +cRp +cUB +cWm +cXY +cZz +daB +dci +ddA +dfp +dgN +dir +dkj +dkj +dnu +dow +dqk +drO +dkj +duz +dvR +dxd +dyq +dzq +dAJ +dCa +dDt +dAJ +dAL +dGZ +dHU +aaa +dJs +dKo +dLi +dMo +dNn +dOf +dMh +dPQ +dQG +dRy +dSo +dTi +dTH +dKl +dUO +dVr +dKl +dJp +aaf +agg +aaf +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaf +aaf +aaf +aaf +aaa +aaf +aaa +aaa +aaf +aaa +aaa +aaa +aae +aaf +aae +aaa +aaa +aaf +aaa +aaa +aaa +aaf +aaa +bdi +beF +bgt +bim +bjQ +bln +bni +bpi +bqH +bsb +bto +buE +bwh +bxY +bzV +bBC +bDm +bFh +bFh +bIY +bFh +bFh +bFh +bQV +bTg +bVm +bWX +bDn +caG +ccq +cea +bdi +cgT +ciB +cke +clx +cmP +cou +cpU +crt +csI +cur +cvO +cxs +cyS +cAJ +cCd +cDo +cEo +cFZ +cHq +cvP +cKJ +cMi +cMi +cPL +cRq +cSR +cUC +cWn +cWn +cZA +daC +dcj +ddB +dfq +dgO +dis +cMi +dcq +daL +dox +dql +daL +cWq +cWq +dvS +dxe +dyq +dzr +dAK +dCb +dDu +dEp +dFs +dHa +dHU +aaf +dJp +dKp +dLe +dMp +dNo +dOg +dKl +dPR +dQH +dRz +dSp +dTj +dTI +eaZ +dUP +dVs +dWg +dWM +aaa +aaf +aaa +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaH +aaa +aaa +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aae +aaa +aae +aaa +aaa +aBU +aEG +aEG +aBU +aBU +aaa +bdi +beG +bgu +bin +bjQ +blo +bnj +bpj +bqI +bsc +bjQ +buF +bwi +bxY +bzW +bjQ +bDn +bFi +bHa +bdi +bDn +bFi +bHa +bdi +bTh +bVn +bWY +bdi +bdi +bDq +ceb +bdi +cgU +ciE +ckf +clx +clx +clx +cpV +clx +clx +clx +clx +clx +clx +clx +clx +clx +cEp +cGa +cHr +cvP +cvP +cvP +cvP +cvP +cvP +cSS +cUD +cWo +cWo +cWo +daD +cZH +cWo +cWo +dgP +dgP +dgP +dgP +dgP +doy +dgP +dgP +dgP +dgP +dvT +dxf +dyq +dzs +dAL +dAL +dDv +dAJ +dAL +dHb +dyq +aaf +dJp +dKl +dLj +dMq +dNp +dOh +dKl +dPS +dQI +dKl +dSq +dTk +dTJ +dUj +dUQ +dVt +dWf +dJp +aaf +agg +aaf +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaH +aaf +aaf +aaH +aaa +aaf +aaa +aaa +aaf +aaa +aaa +aaa +aaf +aaa +aae +aaf +aaf +aBU +aVw +aXk +aYU +aBU +aaf +bdi +beH +bgv +bio +bjQ +blp +bnk +bpk +bqJ +bsd +blk +buG +bwh +bxZ +bzX +bjQ +bDo +bFj +bHb +bIZ +bLb +bFj +bHb +bIZ +bTi +bVo +bWZ +bIZ +caH +ccr +cec +bdi +cgV +ciF +ckg +cly +cmQ +cov +cpW +cru +csJ +cus +cvP +cxt +cyT +cAK +cCe +cvP +cEq +cGb +cHs +cvP +cCg +cyX +cNS +cxw +cvP +cST +cUE +cWo +cXZ +cZB +daE +dck +ddC +dfr +dgP +dit +dkk +dlT +dnv +doz +dqm +drP +dtj +dgP +dvU +dxf +dyq +dzt +dAM +dCc +dDw +dEq +dFt +dHc +dyq +aaf +aaf +dJp +dLk +dMr +dNl +dOi +dJp +dJp +dJp +dJp +dJp +dOY +dJp +dJp +dJp +dJp +dJp +dJp +aaf +aaa +aaa +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaH +aaa +aaa +aaH +aaf +aaf +aaf +agg +agg +agg +aaf +aaf +aaf +aaf +aaf +aaa +aaa +aBU +aVx +aXl +aYV +aBU +aaa +bdi +beI +bgw +bip +bjQ +blq +bnl +bpl +bqK +bse +bjQ +buH +bwj +bya +bzY +bjQ +bDp +bFk +bHc +bAb +bLc +bit +bOO +bIZ +bTj +bVp +bXa +bIZ +caI +ccs +ced +bdi +cgW +ciG +ckh +clz +cmR +cow +cpX +crv +csK +cke +cvP +cxu +cyT +cyT +cyT +cDp +cEq +cGc +cHt +cIM +cyX +cyX +cNT +cPM +cvP +cSU +cUF +cWo +cYa +cZC +daF +dcl +ddD +dfs +dgP +diu +dkl +dkl +dkl +doA +dkl +dkl +dqm +dgP +dvP +cSS +dyq +dzu +dAN +dAN +dDx +dAN +dFu +dHd +dyq +aaf +aaf +dKq +dLl +dMs +dNq +dOj +dMh +aaa +aaf +aaf +aaf +aaa +aaf +aaf +aaf +aaf +aaf +aaf +aaf +agg +aaf +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaH +aaf +aaf +aaH +aaa +aaa +aaf +aaa +aaf +aaa +aaa +aaf +aBU +aBU +aBU +aBU +aBU +aBU +aVy +aXm +aBU +aBU +aBU +bdi +beJ +bgx +biq +bjQ +blr +bnm +bpm +bqL +blk +bjQ +bjQ +bwk +byb +bjQ +bjQ +bDq +bFl +bim +bIZ +bDq +bNb +bOP +bIZ +bTh +bVq +bWY +bIZ +beF +cct +bOP +bdi +cgX +ciH +cki +cgX +cgT +cox +cmX +cmX +ciB +ckc +cvP +cxv +cyU +cAL +cCf +cvP +cEq +cGd +cHu +cvP +cKK +cMj +cyX +cPN +cvP +cSS +cUF +cWo +cYb +cZD +daG +dcm +dcl +dft +dgP +div +dkl +dkl +dkl +doB +dkl +drQ +dtk +duA +dvV +dxg +dyr +dzv +dAO +dAO +dDy +dAO +dAO +dHe +dHU +aaa +aaf +dJp +dLm +dMt +dNr +dOk +dJp +aaf +agg +agg +agg +aaf +agg +agg +agg +aaa +agg +agg +agg +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +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 +aaf +aaf +agg +aaa +aaf +aaf +aaf +aaf +aBU +aNm +aOS +aQH +aSp +aTV +aVz +aXn +aYW +baB +bbX +bdj +beK +bgy +bir +bjR +bir +bnn +bpn +bqM +bir +btp +buI +bwl +byc +bzZ +bir +bDr +bFm +bHd +bJa +bLd +bFm +bOQ +bQW +bTk +bir +bXb +bYP +caJ +ccu +cee +cfI +cgY +ciI +ckj +clA +cmS +coy +cpY +crw +ciB +cut +cvP +cvP +cvP +cvP +cvP +cvP +cEr +cGe +cHv +cvP +cvP +cvP +cvP +cvP +cvP +cSU +cUG +cWo +cYc +cZC +daH +dcn +ddE +dfu +dgP +diw +dkm +dkl +dnw +doC +dkl +drR +dtl +dgP +dvQ +dxh +dyr +dzw +dAL +dCd +dDz +dAI +dFv +dHf +dHU +aaa +aaf +dJp +dJp +dJp +dJp +dJp +dJp +aaa +aaf +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 +"} +(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 +agg +aaf +aaf +aBU +aBU +aBU +aBU +aNn +aOT +aOT +aOT +aTW +aVA +aXo +aYX +baC +bbY +bdk +beL +bgz +bis +bjS +bls +bno +bpo +bqN +bqN +bqN +bqN +bwm +byd +bAa +bBD +bDs +bFn +bHe +bqN +bLe +bFn +bOR +bqN +bTl +bVr +bjS +bYQ +caK +ccv +cef +cfJ +cgZ +ciJ +ckk +clB +cmT +coz +cpZ +cmX +ciF +cuu +cvP +cxw +cyV +cyX +cCg +cvP +cEq +cGc +cHt +cvP +cKL +cMk +cyY +cxz +cvP +cSV +cUG +cWo +cYd +cZE +cZC +dco +ddF +dfv +dgP +dix +dkl +dkl +dkl +dkl +dkl +drS +dtm +duA +dvW +cSS +dyq +dzx +dAP +dCe +dDA +dEr +dFw +dHg +dyq +aaf +aaf +aaf +aaa +aaa +aaa +aaf +aaf +aaf +agg +agg +aaf +aaf +aaf +agg +agg +agg +agg +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +agg +aaa +aaf +aBU +aIw +aJO +aBU +aNo +aOU +aQI +aSq +aTX +aVB +aXp +aYY +baD +bbZ +bdl +beM +bgA +bit +bjT +bgA +bnp +bpp +bgA +bgA +btq +buJ +bwn +bye +bAb +bBE +bDt +bFo +bHf +bJb +bJb +bJb +bHf +bJb +bTm +bVs +bXc +bYR +bDt +ccw +ceg +cfK +cha +ciK +ckl +cgX +cmU +coA +cqa +cmX +csL +cuv +cvP +cxx +cyW +cyX +cyX +cDq +cEs +cGf +cHw +cIN +cyZ +cAO +cyZ +cPO +cvP +cSU +cUG +cWo +cYe +cZF +cZE +cZC +dcl +dfw +dgP +diy +dkl +dkl +dkl +dkl +dqn +drT +dtn +dgP +dvP +drW +dys +dys +dys +dys +dys +dys +dys +dys +dys +aaf +agg +agg +agg +aaf +agg +agg +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaf +aaa +aaf +aBU +aHu +aJP +aBU +aBU +aBU +aBU +aBU +aBU +aVC +aXq +aBU +aBU +bca +bdm +bdm +bdn +biu +bjU +bdn +bnq +bpq +bqO +bdm +bdm +buK +bwo +byf +bdm +bBF +bDu +bBF +bBF +bHg +bLf +bHg +bBF +bBF +bTn +bVt +bXd +bBF +caL +ccx +bdi +bdi +chb +ciL +ckm +cgX +cgW +coB +cqb +cmX +csL +cuw +cvP +cxy +cyX +cAM +cCh +cvP +cEt +cGc +cHx +cvP +cKM +cyZ +cyZ +cPP +cvP +cSW +cUF +cWo +cYf +cZG +daI +dcp +ddG +dfx +dgP +diz +dkn +dlU +dnx +doD +dqo +drU +dto +dgP +dvT +dxf +dys +dzy +dAQ +dCf +dDB +dEs +dFx +dHh +dys +aaf +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 +"} +(203,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +agg +aaf +aaf +aaa +aaf +aBU +aIx +aJQ +aLx +aNp +aHu +aQJ +aSr +aTY +aVD +aXq +aBU +baE +bcb +bdm +beN +bgB +biv +bjV +blt +bnr +bpr +bqP +bsf +bdm +buL +bkd +byg +bdm +bBG +bDv +bFp +bHg +bJc +bLg +bNc +bOS +bQX +bTo +bVu +bXe +bHg +caM +ccy +ceh +bdi +chc +ciM +ckn +cgX +cmV +coC +cqc +cmX +ciC +cux +cvP +cvP +cvP +cvP +cvP +cvP +cEu +cGc +cHx +cvP +cvP +cvP +cvP +cvP +cvP +cSX +cUH +cWo +cWo +cZH +daJ +cWo +cWo +cWo +dgP +dgP +dgP +dgP +dgP +doE +dgP +dgP +dgP +dgP +dvX +dxi +dyt +dzz +dAR +dCg +dDC +dEt +dFy +dHi +dAV +aaf +aaf +agg +agg +agg +agg +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +agg +aaf +aaf +aaf +aaf +aaf +aBV +aIy +aJR +aLy +aNq +aOV +aQK +aSs +aTZ +aVD +aXr +aBU +baF +bcc +bdn +beO +bgC +biw +bjW +blu +bns +bps +bqQ +bsg +bdm +buM +bwp +byh +bdm +bBG +bDw +bFq +bHh +bJd +bLh +bNd +bOT +bQY +bTp +bVv +bXf +bYS +caN +ccz +cei +bdi +chd +ciM +cko +cgX +cmW +coD +cqd +cmX +ciF +ckc +cvP +cxz +cyY +cAN +cCi +cvP +cEv +cFY +cHy +cvP +cKN +cMl +cyT +cxt +cvP +cSY +cUI +cWp +cYg +cYg +daK +cWp +ddH +dfy +cWm +diA +cWp +cYg +ddH +doF +cWp +cWp +dtp +ddH +dvY +dxf +dys +dzA +dAS +dCh +dDD +dEu +dFz +dHj +dAV +aaf +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 +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +agg +aaf +aBU +aBU +aEG +aBU +aBU +aIz +aJS +aLz +aNr +aHu +aQL +aSt +aUa +aVE +aXs +aBU +aBU +aEM +bdm +beP +bgD +bix +bjX +blv +bnt +bpt +bqR +bsh +btr +buM +bwq +byi +bdm +bBH +bDx +bBG +bDC +bJe +bLi +bNe +bOU +bQZ +bTq +bVw +bXg +bDC +caO +ccA +cej +bdi +che +ciM +ckp +cgX +cmX +coE +cmX +cmX +csL +cke +cvP +cxA +cyZ +cAO +cyZ +cDr +cEt +cGc +cHx +cIO +cyT +cyT +cyT +cPQ +cvP +cSZ +cUJ +cWq +cMi +cMi +daL +dcq +cMi +dfz +cWq +diB +dko +daL +dcq +dcq +dqp +drV +daL +dqp +dvZ +dxj +dys +dzB +dAT +dAS +dDE +dAS +dFA +dHk +dAV +aaf +agg +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 +"} +(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 +aaf +aBU +aDn +aEH +aFZ +aHu +aIA +aJT +aLA +aNs +aHu +aHu +aHu +aHu +aVF +aXt +aYZ +aBU +aaa +bdm +beQ +bgD +biy +bjY +biz +bnu +bpu +bqR +bsi +bdm +buN +bwr +byj +bdm +bBI +bDy +bFr +bHi +bHi +bLj +bLj +bHi +bRa +bTr +bVx +bXh +bHi +caP +ccB +cek +bdi +chf +ciM +chh +cgX +aaa +aaa +aaf +coE +csM +cuy +cvP +cxB +cyZ +cyZ +cCj +cvP +cEt +cGg +cHx +cvP +cKO +cMm +cNU +cPR +cvP +cTa +cUK +cEe +cYh +cDe +daM +cDe +cDe +dfA +cDe +dfA +cDe +cDe +daM +cDe +cDe +dfA +abf +abL +dwa +abl +abf +dzC +dAU +dCi +dDF +dEv +dFB +dHl +dys +aaf +agg +aaf +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aBV +aDo +aEI +aGa +aHv +aIB +aJU +aLB +aNt +aHu +aQM +aSu +aTY +aVG +aXu +aZa +aYX +aaf +bdm +beR +bgE +biz +bjZ +blw +bnv +bpv +bqS +bsj +bdm +buM +buM +byg +bdm +bBJ +bDz +bFs +bHi +bJf +bJf +bJf +bOV +bRb +bTs +bVy +bXi +bHi +caQ +ccC +cel +bim +chg +ciN +ckq +cgX +aaf +aaf +cqe +cqe +csN +cuz +cvP +cvP +cvP +cvP +cvP +cvP +cEw +cGa +cHz +cvP +cvP +cvP +cvP +cvP +cvP +cTb +cUL +cqe +cqe +cqe +aaf +cDe +ddI +dfB +cDe +diC +dkp +cDe +aaf +cDe +dqq +drW +abf +duB +abv +dxk +abf +dys +dAV +dys +dys +dys +dAV +dys +dys +aaf +agg +aaf +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aBU +aDp +aEJ +aGb +aHw +aIC +aJV +aLC +aGb +aOW +aQN +aSv +aUb +aVH +aXq +aZb +aBU +aaa +bdn +beS +bgF +biA +bka +blx +bnw +bpw +bqT +bsk +bdm +buO +bws +byk +bdm +bBK +bDA +bFt +bHi +bJg +bLk +bNf +bNf +bNf +bTt +bVy +bXj +bYT +caR +ccB +cem +bdi +chh +ciO +ckr +clC +aaa +aaa +cqe +crx +csO +cuA +cvQ +cxC +cza +cAP +cCk +cDs +cEx +cGh +cHA +cIP +cKP +cMn +cNV +cPS +cRr +cTc +cUM +cWr +cYi +cqe +aaa +dcr +ddJ +dfC +cDe +diD +dkq +daM +aaa +daM +dqr +drX +abf +duC +abw +abN +abg +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaa +aaa +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aBV +aDq +aEK +aGc +aHx +aID +aJW +aLD +aNu +aHu +aQO +aSt +aUa +aVI +aXv +aHu +aBU +aaf +bdm +beT +bgG +bgG +bkb +bly +bnx +bpx +bgG +bgE +bts +buP +bwt +byl +bdm +bBL +bDB +bFu +bHi +bJh +bLl +bNg +bOW +bRc +bTu +bVz +bXk +bYU +caS +ccD +cen +bim +chi +ciM +cks +cgX +aaf +aaf +cqf +cry +csP +cuB +cvR +cxD +cxD +cxD +cxD +cxD +cEy +cGi +cHB +cxD +cxD +cxD +cxD +cxD +cRs +cvR +cUN +csQ +cYj +cqf +aaf +dcr +ddK +dfD +cDe +diE +dkr +daM +aaf +daM +dqs +drY +abf +duD +abx +dxl +abf +aaf +agg +agg +agg +aaf +agg +agg +agg +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 +"} +(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 +aaf +aBU +aDr +aEL +aGd +aHu +aIE +aJX +aLE +aNv +aHu +aHu +aHu +aHu +aVJ +aXq +aZc +aBU +aaa +bdm +beU +bgH +bgH +bkc +blz +bny +bpy +bqU +bsl +btt +buQ +bwu +bym +bdm +bBF +bDC +bBF +bHi +bJi +bLm +bNh +bNh +bNh +bTv +bVA +bXl +bHi +caT +ccE +ceo +bdi +cgX +ciP +cgX +cgX +aaa +aaa +cqf +cry +csQ +cuC +cvS +cxE +czb +csQ +czc +cDt +cEz +cEz +cHC +cIQ +cKQ +csQ +cNW +cNW +cRt +cTd +cUO +cNW +cYj +cqf +aaa +dcr +dcr +cDe +cDe +cDe +daM +daM +aaa +daM +daM +cDe +abg +abg +aby +abg +abg +aaf +aaa +aaa +aaf +aaa +aaa +aaf +aaf +aaa +aaf +aaa +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +agg +aaf +aBU +aBU +aEM +aBU +aBU +aIF +aJS +aLF +aNw +aHu +aQJ +aSw +aTY +aVK +aXo +aZd +aYX +aaf +bdm +beV +bgI +biB +bkd +blA +bnz +bpz +bqV +bsm +btu +buL +bwv +byn +bdm +aaf +aaa +aaf +bHi +bJj +bLn +bNi +bOX +bRd +bTw +bVB +bXm +bHi +caU +ccF +caU +bdi +aaa +aaf +aaa +aaa +cmY +aaa +cqf +crz +csQ +cuD +cvT +cxF +czc +csQ +cCl +cDu +cxF +cxF +cHD +cIR +cKR +csQ +cNX +cPT +cNW +cTe +cUP +cWs +cYj +cqf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +abg +abz +abg +aaf +aaa +aaa +agg +agg +aaf +agg +agg +agg +agg +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 +"} +(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 +agg +aaf +aaf +aaf +aaa +aaf +aBU +aIG +aJY +aLG +aNx +aOX +aQP +aSx +aUc +aVL +aXs +aZe +aBU +aaa +bdm +beW +beW +biC +bke +blB +bnA +bpA +beW +beW +bdm +bdm +bdm +bdm +bdm +aaf +aaa +aaf +bHi +bHi +bHi +bHi +bHi +bHi +bHi +bHi +bHi +bHi +bdi +bVq +bdi +bdi +aaa +aaf +aaf +agg +aaf +aaf +cqf +crA +csQ +cuD +cvU +cxF +czc +csQ +cCl +cDu +cxF +cxF +cxF +cIR +cKR +csQ +cNY +cPU +csQ +cTe +cUQ +cWt +cYk +cqf +aaf +aaa +agg +agg +agg +agg +agg +aaa +agg +aaa +agg +agg +aaf +abg +aby +abg +aaf +aaf +agg +agg +aaa +aaa +aaf +aaa +aaa +aaf +aaf +agg +agg +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaf +aaf +aaf +aBV +aIH +aJZ +aLH +aNy +aHu +aQQ +aSy +aHu +aVM +aXw +aBU +aBU +aaf +aaf +beW +bgJ +biD +bkf +blC +bnB +bpB +bqW +beW +aaa +aaa +aaf +aaa +aaa +aaf +aaa +aaf +aaf +aaf +aaf +aaf +bOY +aaf +aaa +aaa +aaf +aaa +aaa +aaf +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaa +cqf +crB +csQ +cuD +cvT +cxF +czc +csQ +cCl +cDu +cEA +cxF +cxF +cIR +cKR +csQ +cNZ +cPV +csQ +cTf +cUR +cWu +czc +cqf +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaa +dwb +aaf +aaf +aaa +aaf +aaa +aaa +dzD +dAW +dCj +aaa +aaa +aaf +aaa +aaa +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +agg +aaf +aaa +aaf +aBV +aII +aKa +aLI +aHy +aHy +aHy +aHy +aBU +aVN +aXo +aYX +aaa +aaf +aaa +beX +bgK +biE +bkg +blD +bnC +biG +bqX +beX +aaf +agg +agg +aaf +agg +agg +agg +agg +aaf +agg +agg +agg +agg +aaf +agg +agg +agg +agg +agg +aaf +agg +agg +aaf +aaf +agg +agg +aaf +aaf +cqf +crC +csQ +cuE +cvV +cxG +czd +csQ +czc +cDv +cEB +cGj +cGj +cIS +cKQ +csQ +cNW +cNW +cRu +cTg +cUS +cNW +cWv +cqf +aaf +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +aaf +dwc +aaf +aaa +dzD +dAW +dCj +aaa +dzD +dAW +dCj +aaa +dzD +dAW +dCj +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 +"} +(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 +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +aaf +aaf +aaf +aBU +aIJ +aKb +aLJ +aHy +aOY +aQR +aSz +aBU +aVO +aXx +aYX +aaf +aaf +aaf +beY +bgL +biF +bkh +blE +bnD +bpC +bqY +bsn +aaa +aaf +aaa +aaa +aaf +aaf +aaa +aaf +aaf +aaf +aaa +aaf +aaf +aaa +aaf +aaa +aaf +aaa +aaa +aaf +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaa +cqf +crC +csQ +cuF +cvW +cxH +cxH +cxH +cxH +cxH +cEC +cxH +cxH +cxH +cxH +cxH +cxH +cxH +cxH +cTh +cuF +csQ +cWv +cqf +aaf +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaa +dwc +aaf +aaf +dzD +dAW +dCj +aaa +dzD +dAW +dCj +aaa +dzD +dAW +dCj +aaa +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaf +aaa +aGe +aHy +aHy +aHy +aHy +aHy +aOZ +aQS +aSA +aUd +aVP +aXx +aYX +aaa +aaf +aaa +beZ +bgM +biG +bki +blF +bnE +biG +bqZ +beZ +aaf +aaf +agg +agg +agg +aaf +aaf +aaf +aaf +aaf +aaf +agg +agg +agg +agg +aaf +aaf +aaf +agg +agg +agg +agg +aaf +agg +aaf +aaf +agg +aaf +cqf +crC +crC +cuG +cvX +cxI +cze +cAQ +cAQ +cvX +cED +cGk +cGk +cIT +cKS +cMo +cMo +cPW +cMo +cKS +cUT +cWv +cYl +cqf +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +aaf +dwc +aaf +aaa +dzD +dAW +dCj +aaf +dzD +dAW +dCj +aaf +dzD +dAW +dCj +aaf +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaH +aaf +aaf +aHz +aIK +aKc +aLK +aNz +aPa +aQT +aSB +aUe +aVQ +aXy +aBU +aaf +aaf +aaf +beW +bgN +biH +bkf +blG +bnF +bpD +bra +beW +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 +cqf +crD +crD +crD +cqf +cqf +cqf +cqf +cqf +cqf +cEE +cqf +cqf +cIU +cqf +cqf +cqf +cqf +cqf +cqf +cUU +cWw +cYm +cqf +aaf +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +aaa +dwc +aaf +aaf +dzD +dAW +dCj +aaa +dzD +dAW +dCj +aaa +dzD +dAW +dCj +aaa +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaH +aaa +aaa +aHz +aIL +aKd +aLL +aNA +aPb +aQU +aSC +aBU +aVR +aXz +aBU +aaf +aaa +aaf +beW +beW +biI +bkj +blH +bnG +bpE +beW +beW +aaf +aaf +aaf +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cqf +crE +csR +cuH +cqf +aaa +aaa +aaf +aaa +cqf +cEF +cqe +cGl +cIV +cqf +aaa +aaf +aaa +aaa +cqf +cUV +cWx +cYn +cqf +aaf +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +aaf +dwc +aaf +aaa +dzD +dAW +dCj +aaa +aaf +dwb +aaf +aaa +dzD +dAW +dCj +aaa +agg +aaf +agg +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaH +aaf +aaf +aHz +aIM +aKe +aLM +aNB +aPc +aQV +aSD +aBU +aVS +aXA +aBU +aaf +aaa +aaf +aaa +beW +biJ +bkk +blI +bnH +biJ +beW +aaa +aaa +aaf +aaa +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +cqe +cqf +cqf +cqf +cqe +aaf +czf +cAR +cAR +cAR +cEG +cqf +cqf +cIW +cKT +cKT +cKT +cPX +aaf +cqe +cqf +cqf +cqf +cqe +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaa +dwc +aaf +aaa +aaf +dwb +aaf +aaf +aaf +dwc +aaf +aaf +aaf +dwb +aaf +aaa +aaa +aaf +aaa +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaf +aaa +aGe +aHy +aHy +aHy +aHy +aHy +aPd +aQW +aSE +aBU +aVT +aXB +aBU +aaf +aaa +aaf +aaa +beW +biK +bkf +blJ +bnI +bpF +beW +aaf +aaf +aaf +aaa +agg +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 +cqf +aaa +czg +cAS +cAS +cAS +cAS +cAS +cAS +cAS +cAS +cAS +cAS +cPY +aaa +cqf +aaf +aaf +aaf +aaf +aaf +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +aaf +dwc +dxm +dyu +dyu +dyu +dyu +dyu +dyu +dFC +dHm +dwc +dIH +dxm +dyu +dyu +dyu +dNs +aaf +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aBW +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aHy +aPe +aQX +aSF +aBU +aVR +aXz +aBU +aHu +aaf +aaf +aaf +beW +biL +bkl +blK +bnJ +bpG +beW +aaa +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 +aaf +cqf +aaa +czg +cAS +cAS +cAS +cAS +cAS +cAS +cAS +cAS +cAS +cAS +cPY +aaa +cqf +aaf +aaa +aaa +agg +agg +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +aaa +aaa +aaf +aaa +aaf +dAX +aaf +aaf +aaf +dwc +aaf +aaf +aaf +dAX +aaf +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 +"} +(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 +agg +agg +agg +aaa +agg +agg +agg +aaa +aHy +aHy +aHy +aHy +aBU +aVU +aXC +aZf +aHu +aaa +aaf +aaa +beW +biM +bkm +blL +bnK +bpH +beW +aaf +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 +agg +aaf +aaf +aaf +cqf +aaf +czh +cAT +cAS +cAS +cAS +cAS +cAS +cAS +cAS +cAS +cOa +cPZ +aaf +cqf +aaf +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +agg +aaf +aaf +aaa +dzD +dAY +dCj +aaa +aaf +dAX +aaf +aaa +dzD +dAY +dCj +aaa +agg +agg +aaf +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaH +aQY +aSG +aUf +aVV +aXD +aZg +aYX +aaa +aaf +aaa +beW +beW +bkn +blM +bnL +beW +beW +aaa +aaf +aaf +agg +aaa +aaa +aaa +aaa +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 +cqf +aaa +czg +cAS +cAS +cAS +cAS +cAS +cAS +cAS +cAS +cAS +cAS +cPY +aaa +cqf +aaf +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaf +dzD +dAY +dCj +aaa +dzD +dAY +dCj +aaa +dzD +dAY +dCj +aaa +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaf +aHu +aHu +aHu +aVW +aXE +aKa +aHu +aaa +aaf +aaa +aaa +aaf +aaa +aaf +aaa +aaf +aaa +aaa +aaf +aaa +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +aaf +cqf +aaa +czg +cAS +cAS +cAS +cAS +cAS +cAS +cAS +cAS +cAS +cAS +cPY +aaa +cqf +aaf +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +aaa +dzD +dAY +dCj +aaf +dzD +dAY +dCj +aaf +dzD +dAY +dCj +aaf +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaf +aHu +aVX +aXF +aVX +aHu +aaf +agg +agg +agg +aaf +agg +agg +agg +agg +agg +agg +aaf +aaa +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +aaf +cqe +aaf +czi +cAR +cAR +cAR +cEH +cqf +cqf +cIX +cKT +cKT +cKT +cQa +aaf +cqe +aaf +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +aaf +dzD +dAY +dCj +aaa +dzD +dAY +dCj +aaa +dzD +dAY +dCj +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 +"} +(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 +agg +aaf +aHu +aVY +aVY +aZh +aHu +aaa +aaa +aaa +aaa +aaf +aaa +aaa +aaf +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 +aaf +cqf +aaa +aaa +aaf +aaa +cqf +cEI +cGl +cqe +cIY +cqf +aaa +aaf +aaa +aaa +cqf +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +aaa +dzD +dAY +dCj +aaa +dzD +dAY +dCj +aaa +dzD +dAY +dCj +aaa +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +agg +aaf +aHu +aVZ +aXG +aVZ +aHu +aaf +aaf +agg +agg +agg +agg +agg +aaf +agg +agg +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 +aaf +cqf +cqf +cqf +cqf +cqf +cqf +cEE +cqf +cqf +cIU +cqf +cqf +cqf +cqf +cqf +cqf +aaf +agg +aaa +aaa +aaa +aaa +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +aaa +aaa +aaa +aaa +aaa +dzD +dAY +dCj +aaa +aaa +aaa +aaa +aaa +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaf +aHu +aWa +aXH +aWa +aHu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +cqf +cEJ +cGm +cHE +cIZ +cqf +aaf +aaf +aaf +aaf +aaf +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +agg +aaf +agg +agg +aaa +aaa +aaa +aaa +aaa +agg +aaf +agg +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 +eaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aUg +aWa +aXI +aWa +aUg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +agg +aaa +agg +aaf +cDw +cEK +cGn +cHF +cJa +cDw +aaf +aaa +agg +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +agg +aaf +agg +agg +aaf +agg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aWa +aXJ +aWa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cqf +cEL +cGo +cHG +cJb +cqf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aXK +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cqf +cqf +cqf +cqf +cqf +cqf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +"} diff --git a/_maps/map_files/DreamStation/dreamstation04.dmm b/_maps/map_files/DreamStation/dreamstation04.dmm index 739ad0c688..a493885269 100644 --- a/_maps/map_files/DreamStation/dreamstation04.dmm +++ b/_maps/map_files/DreamStation/dreamstation04.dmm @@ -81,6 +81,7 @@ /obj/item/stack/sheet/glass{ amount = 50 }, +/obj/item/stack/cable_coil/white, /turf/open/floor/plasteel/black, /area/storage/secure) "aap" = ( @@ -410,40 +411,40 @@ /area/aisat) "aaP" = ( /turf/closed/wall, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "aaQ" = ( /turf/closed/wall/r_wall, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "aaR" = ( /obj/structure/cable/white{ tag = "icon-1-10"; icon_state = "1-10" }, /turf/closed/wall/r_wall, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "aaS" = ( /obj/structure/cable/white{ tag = "icon-5-10"; icon_state = "5-10" }, /turf/closed/wall/r_wall, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "aaT" = ( /obj/machinery/porta_turret_construct, /obj/effect/decal/cleanable/cobweb, /turf/open/floor/plasteel/vault{ dir = 4 }, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "aaU" = ( /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "aaV" = ( /obj/machinery/light{ dir = 1 }, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "aaW" = ( /obj/machinery/flasher{ id = "AI"; @@ -460,13 +461,13 @@ start_active = 1 }, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "aaX" = ( /obj/machinery/porta_turret_construct, /turf/open/floor/plasteel/vault{ dir = 1 }, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "aaY" = ( /obj/machinery/firealarm{ dir = 8; @@ -476,7 +477,7 @@ dir = 6 }, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "aaZ" = ( /obj/structure/cable/white{ tag = "icon-2-4"; @@ -494,14 +495,14 @@ tag = "icon-darkbluecorners (NORTH)"; dir = 1 }, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "aba" = ( /obj/structure/cable/white{ tag = "icon-4-8"; icon_state = "4-8" }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "abb" = ( /obj/machinery/ai_slipper{ icon_state = "motion0"; @@ -518,7 +519,7 @@ /turf/open/floor/plasteel/vault{ dir = 8 }, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "abc" = ( /obj/structure/cable/white{ tag = "icon-2-8"; @@ -532,7 +533,7 @@ tag = "icon-darkbluecorners (EAST)"; dir = 4 }, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "abd" = ( /obj/machinery/airalarm{ dir = 8; @@ -543,7 +544,7 @@ dir = 10 }, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "abe" = ( /obj/machinery/light{ icon_state = "tube1"; @@ -551,7 +552,7 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "abf" = ( /obj/structure/cable/white{ d1 = 1; @@ -559,7 +560,7 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "abg" = ( /obj/machinery/porta_turret/ai{ dir = 4 @@ -567,11 +568,11 @@ /turf/open/floor/plasteel/vault{ dir = 4 }, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "abh" = ( /obj/structure/window/reinforced, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "abi" = ( /obj/structure/cable/white{ d1 = 1; @@ -582,9 +583,9 @@ name = "AI Core Door"; req_access_txt = "16" }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "abj" = ( /obj/machinery/porta_turret/ai{ dir = 8 @@ -592,14 +593,14 @@ /turf/open/floor/plasteel/vault{ dir = 1 }, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "abk" = ( /obj/machinery/light{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "abl" = ( /turf/closed/wall/r_wall, /area/aisat) @@ -609,14 +610,14 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "abn" = ( /obj/structure/window/reinforced{ dir = 4; pixel_x = 0 }, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "abo" = ( /obj/effect/landmark/start{ name = "AI" @@ -665,13 +666,13 @@ pixel_y = -25 }, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "abp" = ( /obj/structure/window/reinforced{ dir = 8 }, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "abq" = ( /obj/structure/window/reinforced{ dir = 4; @@ -679,7 +680,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "abr" = ( /obj/structure/cable/blue{ tag = "icon-1-2"; @@ -746,7 +747,7 @@ broken = 1; icon_state = "platingdmg2" }, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "abv" = ( /obj/effect/landmark{ name = "tripai" @@ -777,7 +778,7 @@ pixel_y = 23 }, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "abw" = ( /obj/machinery/door/window{ dir = 8; @@ -786,7 +787,7 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "abx" = ( /obj/machinery/ai_slipper{ icon_state = "motion0"; @@ -800,7 +801,7 @@ /turf/open/floor/plasteel/vault{ dir = 8 }, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "aby" = ( /obj/machinery/flasher{ id = "AI"; @@ -812,7 +813,7 @@ pixel_x = 0 }, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "abz" = ( /obj/machinery/flasher{ id = "AI"; @@ -823,7 +824,7 @@ dir = 8 }, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "abA" = ( /obj/machinery/door/window{ dir = 4; @@ -832,7 +833,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "abB" = ( /obj/effect/landmark{ name = "tripai" @@ -863,7 +864,7 @@ pixel_y = -27 }, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "abC" = ( /turf/open/space, /obj/item/weapon/dice/d8{ @@ -885,7 +886,7 @@ broken = 1; icon_state = "platingdmg2" }, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "abD" = ( /obj/structure/cable/blue{ tag = "icon-1-2"; @@ -926,7 +927,7 @@ icon_state = "0-10" }, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "abF" = ( /obj/docking_port/stationary{ dheight = 9; @@ -950,7 +951,7 @@ /turf/open/floor/plasteel/vault{ dir = 1 }, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "abH" = ( /obj/structure/window/reinforced{ dir = 1 @@ -966,7 +967,7 @@ icon_state = "2-5" }, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "abI" = ( /obj/machinery/power/terminal{ icon_state = "term"; @@ -986,7 +987,7 @@ tag = "icon-0-2" }, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "abJ" = ( /obj/structure/window/reinforced{ dir = 1 @@ -1002,7 +1003,7 @@ dir = 4 }, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "abK" = ( /obj/machinery/porta_turret/ai{ dir = 8 @@ -1013,7 +1014,7 @@ /turf/open/floor/plasteel/vault{ dir = 4 }, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "abL" = ( /obj/structure/cable/white{ d1 = 1; @@ -1024,7 +1025,7 @@ dir = 4 }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "abM" = ( /obj/machinery/light{ dir = 4 @@ -1034,7 +1035,7 @@ dir = 4 }, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "abN" = ( /obj/machinery/airalarm{ dir = 4; @@ -1043,7 +1044,7 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "abO" = ( /obj/structure/cable/white{ tag = "icon-1-4"; @@ -1057,7 +1058,7 @@ tag = "icon-darkbluecorners (WEST)"; dir = 8 }, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "abP" = ( /obj/structure/cable/white{ tag = "icon-4-8"; @@ -1067,14 +1068,14 @@ dir = 9 }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "abQ" = ( /obj/structure/cable/white{ tag = "icon-1-8"; icon_state = "1-8" }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "abR" = ( /obj/machinery/ai_slipper{ icon_state = "motion0"; @@ -1091,7 +1092,7 @@ /turf/open/floor/plasteel/vault{ dir = 8 }, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "abS" = ( /obj/structure/cable/white{ tag = "icon-4-8"; @@ -1101,7 +1102,7 @@ dir = 6 }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "abT" = ( /obj/structure/cable/white{ tag = "icon-1-8"; @@ -1118,7 +1119,7 @@ /turf/open/floor/plasteel/darkblue/corner{ tag = "icon-darkbluecorners" }, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "abU" = ( /obj/machinery/firealarm{ dir = 4; @@ -1126,7 +1127,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "abV" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 @@ -1135,21 +1136,21 @@ /turf/open/floor/plasteel/vault{ dir = 1 }, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "abW" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ tag = "icon-manifold-r-f (NORTH)"; dir = 1 }, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "abX" = ( /obj/machinery/light, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "abY" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -1159,7 +1160,7 @@ tag = "s" }, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "abZ" = ( /turf/open/floor/plasteel/darkblue/side{ tag = "icon-darkblue" @@ -1178,7 +1179,7 @@ dir = 4 }, /turf/open/floor/plasteel/warningline, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "aca" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -1190,20 +1191,20 @@ start_active = 1 }, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "acb" = ( /obj/machinery/light, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 }, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "acc" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 6 }, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "acd" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 @@ -1212,15 +1213,15 @@ /turf/open/floor/plasteel/vault{ dir = 4 }, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "ace" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall/r_wall, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "acf" = ( /obj/machinery/status_display, /turf/closed/wall/r_wall, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "acg" = ( /obj/structure/cable/white{ d1 = 1; @@ -1235,30 +1236,29 @@ req_access_txt = "16" }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "ach" = ( /obj/machinery/ai_status_display, /turf/closed/wall/r_wall, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "aci" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/closed/wall/r_wall, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "acj" = ( /turf/open/space, /obj/machinery/porta_turret/syndicate{ dir = 9 }, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ dir = 8; icon_state = "diagonalWall3" }, /area/shuttle/syndicate) "ack" = ( -/turf/closed/wall/shuttle{ - icon_state = "wall3" - }, -/area/shuttle/syndicate) +/obj/structure/shuttle/engine/propulsion, +/turf/closed/wall/mineral/titanium, +/area/shuttle/pod_2) "acl" = ( /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ @@ -1269,7 +1269,7 @@ /turf/open/floor/plating, /area/shuttle/syndicate) "acm" = ( -/turf/closed/indestructible/opshuttle, +/turf/closed/wall/mineral/plastitanium, /area/shuttle/syndicate) "acn" = ( /obj/structure/cable/blue{ @@ -1291,20 +1291,20 @@ /area/aisat) "aco" = ( /turf/closed/wall, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "acp" = ( /turf/closed/wall/r_wall, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "acq" = ( /obj/structure/table, /obj/item/weapon/secbot_assembly, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/bluegrid, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "acr" = ( /obj/machinery/porta_turret/ai, /turf/open/floor/bluegrid, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "acs" = ( /turf/open/floor/plasteel/darkblue/side{ tag = "icon-darkblue (NORTH)"; @@ -1314,7 +1314,7 @@ tag = "icon-warningline (NORTH)"; dir = 1 }, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "act" = ( /turf/open/floor/plasteel/darkblue/side{ tag = "icon-darkblue (NORTH)"; @@ -1325,7 +1325,7 @@ tag = "icon-warningline (NORTH)"; dir = 1 }, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "acu" = ( /turf/open/floor/plasteel/darkblue/side{ tag = "icon-darkblue (NORTH)"; @@ -1341,14 +1341,14 @@ tag = "icon-warningline (NORTH)"; dir = 1 }, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "acv" = ( /obj/structure/table, -/obj/item/robot_parts/robot_suit, -/obj/item/robot_parts/head, +/obj/item/robot_suit, +/obj/item/bodypart/head/robot, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/bluegrid, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "acw" = ( /obj/structure/cable/blue{ tag = "icon-1-2"; @@ -1369,10 +1369,10 @@ "acx" = ( /obj/structure/table, /obj/machinery/microwave, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "acy" = ( -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "acz" = ( /obj/structure/table, @@ -1380,11 +1380,11 @@ pixel_x = 4; pixel_y = 1 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "acA" = ( /obj/machinery/computer/shuttle/syndicate, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "acB" = ( /obj/structure/table, @@ -1393,11 +1393,11 @@ name = "remote shutter control"; req_access_txt = "150" }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "acC" = ( /obj/structure/frame/computer, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "acD" = ( /obj/structure/cable/blue{ @@ -1415,12 +1415,12 @@ icon_state = "0-4" }, /turf/open/floor/plating, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "acF" = ( /obj/structure/table, -/obj/item/robot_parts/l_arm, -/obj/item/robot_parts/chest, -/obj/item/robot_parts/l_arm, +/obj/item/bodypart/l_arm/robot, +/obj/item/bodypart/chest/robot, +/obj/item/bodypart/l_arm/robot, /obj/structure/cable/blue{ tag = "icon-2-8"; icon_state = "2-8" @@ -1430,20 +1430,20 @@ tag = "icon-darkbluecorners (NORTH)"; dir = 1 }, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "acG" = ( /turf/open/floor/plasteel/black, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "acH" = ( /obj/structure/cable/blue{ tag = "icon-0-2"; icon_state = "0-2" }, /turf/open/floor/plasteel/black, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "acI" = ( /obj/structure/table, -/obj/item/robot_parts/r_arm, +/obj/item/bodypart/r_arm/robot, /obj/structure/cable/blue{ tag = "icon-2-4"; icon_state = "2-4" @@ -1454,7 +1454,7 @@ tag = "icon-darkbluecorners (EAST)"; dir = 4 }, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "acJ" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable/blue{ @@ -1462,21 +1462,21 @@ icon_state = "0-8" }, /turf/open/floor/plating, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "acK" = ( /obj/structure/table, /obj/item/weapon/storage/box/donkpockets{ pixel_x = 3; pixel_y = 3 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "acL" = ( /turf/open/space, /obj/machinery/porta_turret/syndicate{ dir = 5 }, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ dir = 1; icon_state = "diagonalWall3" }, @@ -1498,7 +1498,7 @@ dir = 4 }, /turf/open/floor/plating, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "acO" = ( /obj/structure/table, /obj/structure/cable/blue{ @@ -1511,9 +1511,9 @@ }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/item/device/assembly/flash/handheld, -/obj/item/robot_parts/r_leg, +/obj/item/bodypart/r_leg/robot, /turf/open/floor/plasteel/black, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "acP" = ( /obj/structure/cable/blue{ tag = "icon-4-8"; @@ -1523,7 +1523,7 @@ dir = 4 }, /turf/open/floor/bluegrid, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "acQ" = ( /obj/structure/cable/blue{ tag = "icon-4-8"; @@ -1533,7 +1533,7 @@ dir = 10 }, /turf/open/floor/bluegrid, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "acR" = ( /obj/structure/cable/blue{ tag = "icon-1-2"; @@ -1547,12 +1547,12 @@ tag = "icon-2-8"; icon_state = "2-8" }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/darkblue/side{ tag = "icon-darkblue (NORTH)"; dir = 1 }, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "acS" = ( /obj/structure/cable/blue{ tag = "icon-4-8"; @@ -1562,7 +1562,7 @@ dir = 6 }, /turf/open/floor/bluegrid, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "acT" = ( /obj/structure/cable/blue{ tag = "icon-4-8"; @@ -1572,10 +1572,10 @@ dir = 4 }, /turf/open/floor/bluegrid, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "acU" = ( /obj/structure/table, -/obj/item/robot_parts/l_leg, +/obj/item/bodypart/l_leg/robot, /obj/structure/cable/blue{ tag = "icon-4-8"; icon_state = "4-8" @@ -1588,7 +1588,7 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/item/device/assembly/flash/handheld, /turf/open/floor/plasteel/black, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "acV" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable/blue{ @@ -1599,7 +1599,7 @@ dir = 4 }, /turf/open/floor/plating, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "acW" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 @@ -1613,7 +1613,7 @@ amount = 10 }, /obj/item/device/multitool, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "acY" = ( /obj/item/device/radio/intercom{ @@ -1625,11 +1625,11 @@ subspace_transmission = 1; syndie = 1 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "acZ" = ( /obj/structure/closet/syndicate/personal, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "ada" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -1647,14 +1647,14 @@ dir = 8 }, /turf/open/floor/bluegrid, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "adc" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/darkblue/corner{ tag = "icon-darkbluecorners (NORTH)"; dir = 1 }, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "add" = ( /obj/machinery/ai_slipper{ icon_state = "motion0"; @@ -1667,14 +1667,14 @@ /turf/open/floor/plasteel/vault{ dir = 8 }, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "ade" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/darkblue/corner{ tag = "icon-darkbluecorners (EAST)"; dir = 4 }, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "adf" = ( /obj/machinery/firealarm{ dir = 4; @@ -1684,7 +1684,7 @@ dir = 4 }, /turf/open/floor/bluegrid, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "adg" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/lattice, @@ -1692,8 +1692,7 @@ /area/space) "adh" = ( /turf/open/space, -/turf/closed/wall/shuttle{ - dir = 2; +/turf/closed/wall/mineral/plastitanium{ icon_state = "diagonalWall3" }, /area/shuttle/syndicate) @@ -1702,11 +1701,11 @@ name = "Cockpit"; req_access_txt = "150" }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "adj" = ( /turf/open/space, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ dir = 4; icon_state = "diagonalWall3" }, @@ -1728,14 +1727,14 @@ tag = "icon-darkblue (WEST)"; dir = 8 }, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "adl" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber{ dir = 1; on = 1 }, /turf/open/floor/plasteel/black, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "adm" = ( /obj/structure/cable/blue{ tag = "icon-2-4"; @@ -1746,7 +1745,7 @@ icon_state = "1-2" }, /turf/open/floor/bluegrid, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "adn" = ( /obj/structure/cable/blue{ tag = "icon-4-8"; @@ -1757,7 +1756,7 @@ on = 1 }, /turf/open/floor/plasteel/black, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "ado" = ( /obj/structure/cable/blue{ tag = "icon-0-8"; @@ -1779,7 +1778,7 @@ tag = "icon-darkblue (EAST)"; dir = 4 }, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "adp" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -1789,7 +1788,7 @@ /obj/structure/table, /obj/item/stack/cable_coil, /obj/item/weapon/crowbar/red, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "adr" = ( /obj/structure/table, @@ -1797,48 +1796,46 @@ pixel_x = 1; pixel_y = 2 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "ads" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "adt" = ( /obj/machinery/porta_turret/ai{ dir = 4 }, /turf/open/floor/bluegrid, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "adu" = ( /obj/structure/cable/blue{ tag = "icon-1-2"; icon_state = "1-2" }, /turf/open/floor/bluegrid, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "adv" = ( /obj/machinery/porta_turret/ai{ dir = 8 }, /turf/open/floor/bluegrid, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "adw" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "adx" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plasteel/shuttle/red, -/area/shuttle/syndicate) +/obj/structure/shuttle/engine/propulsion, +/turf/closed/wall/mineral/titanium, +/area/shuttle/pod_1) "ady" = ( /obj/structure/chair{ dir = 8 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "adz" = ( /obj/structure/cable/blue{ @@ -1874,14 +1871,14 @@ /area/space) "adD" = ( /turf/open/floor/bluegrid, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "adE" = ( /obj/structure/cable/blue{ tag = "icon-1-2"; icon_state = "1-2" }, /turf/open/floor/plasteel/black, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "adF" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 @@ -1919,7 +1916,7 @@ dir = 1; icon_state = "comfychair" }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "adK" = ( /obj/structure/cable/blue{ @@ -1951,7 +1948,7 @@ req_one_access_txt = "65" }, /turf/open/floor/plasteel/black, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "adM" = ( /obj/structure/cable/blue{ tag = "icon-1-2"; @@ -1972,11 +1969,11 @@ /area/aisat) "adN" = ( /obj/machinery/suit_storage_unit/syndicate, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "adO" = ( /obj/structure/closet/syndicate/nuclear, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "adP" = ( /obj/structure/cable/blue{ @@ -2234,17 +2231,16 @@ "aef" = ( /obj/structure/table, /obj/item/device/aicard, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "aeg" = ( /obj/structure/chair/stool{ pixel_y = 8 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "aeh" = ( /obj/machinery/door/poddoor{ - auto_close = 300; id = "smindicate"; name = "outer blast door" }, @@ -2262,8 +2258,8 @@ height = 24; id = "syndicate"; name = "syndicate infiltrator"; + port_angle = 0; roundstart_move = "syndicate_away"; - travelDir = 180; width = 18 }, /obj/docking_port/stationary{ @@ -2280,7 +2276,7 @@ /area/shuttle/syndicate) "aei" = ( /turf/open/space, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ dir = 1; icon_state = "diagonalWall3" }, @@ -2346,23 +2342,21 @@ /turf/open/floor/plasteel/black, /area/aisat) "aes" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s6"; - dir = 2 +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 }, -/area/shuttle/abandoned) +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) "aet" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall12"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/abandoned) "aeu" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s10"; - dir = 2 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 }, -/area/shuttle/abandoned) +/turf/open/floor/plasteel/white, +/area/medical/exam_room) "aev" = ( /obj/structure/sign/securearea{ desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; @@ -2371,7 +2365,7 @@ name = "EXTERNAL AIRLOCK"; pixel_x = 0 }, -/turf/closed/indestructible/opshuttle, +/turf/closed/wall/mineral/plastitanium, /area/shuttle/syndicate) "aew" = ( /obj/machinery/computer/teleporter, @@ -2426,42 +2420,43 @@ /turf/open/floor/plasteel/black, /area/aisat) "aeD" = ( -/turf/closed/wall/shuttle{ - tag = "icon-swall_f13"; - icon_state = "swall_f13" - }, +/turf/open/floor/mineral/titanium, +/turf/closed/wall/mineral/titanium/interior, /area/shuttle/abandoned) "aeE" = ( /obj/machinery/sleeper, /obj/effect/decal/remains/human, /obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "aeF" = ( -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "aeG" = ( /obj/structure/frame/computer{ anchored = 1 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "aeH" = ( /obj/structure/table/optable, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "aeI" = ( -/turf/closed/wall/shuttle{ - tag = "icon-swall_f11"; - icon_state = "swall_f11" +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" }, -/area/shuttle/abandoned) +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) "aeJ" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall13"; - dir = 2 - }, -/area/shuttle/abandoned) +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) "aeK" = ( /obj/structure/shuttle/engine/propulsion{ icon_state = "propulsion"; @@ -2475,7 +2470,7 @@ name = "EVA Storage"; req_access_txt = "150" }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "aeM" = ( /obj/structure/table, @@ -2499,7 +2494,7 @@ pixel_x = 3; pixel_y = 3 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "aeN" = ( /obj/structure/cable/blue{ @@ -2524,7 +2519,7 @@ tag = "icon-1-8"; icon_state = "1-8" }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/black, /area/aisat) "aeP" = ( @@ -2551,24 +2546,21 @@ /turf/open/floor/plating, /area/aisat) "aeR" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall11"; - dir = 2 - }, -/area/shuttle/abandoned) +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) "aeS" = ( /obj/structure/table, /obj/item/weapon/storage/firstaid/regular{ pixel_x = 6; pixel_y = -5 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "aeT" = ( -/turf/closed/wall/shuttle{ - tag = "icon-swall_f18"; - icon_state = "swall_f18" - }, +/turf/open/floor/plating, +/turf/closed/wall/mineral/titanium/interior, /area/shuttle/abandoned) "aeU" = ( /obj/structure/shuttle/engine/heater{ @@ -2585,7 +2577,7 @@ name = "Ready Room"; req_access_txt = "150" }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "aeW" = ( /obj/machinery/door/window{ @@ -2595,7 +2587,7 @@ name = "EVA Storage"; req_access_txt = "150" }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "aeX" = ( /obj/structure/grille, @@ -2606,7 +2598,7 @@ /obj/structure/rack, /obj/item/clothing/suit/space/syndicate/black/red, /obj/item/clothing/head/helmet/space/syndicate/black/red, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "aeZ" = ( /obj/structure/transit_tube{ @@ -2616,23 +2608,20 @@ /turf/open/space, /area/space) "afa" = ( -/obj/structure/transit_tube{ - icon_state = "E-SW" - }, /obj/structure/lattice, +/obj/structure/transit_tube/curved/flipped{ + dir = 4 + }, /turf/open/space, /area/space) "afb" = ( -/obj/structure/transit_tube, /obj/structure/lattice, +/obj/structure/transit_tube/horizontal, /turf/open/space, /area/space) "afc" = ( /obj/structure/lattice/catwalk, -/obj/structure/transit_tube{ - tag = "icon-E-W-Pass"; - icon_state = "E-W-Pass" - }, +/obj/structure/transit_tube/crossing/horizontal, /turf/open/space, /area/space) "afd" = ( @@ -2642,15 +2631,15 @@ /area/space) "afe" = ( /obj/structure/window/reinforced/fulltile, -/obj/structure/transit_tube, +/obj/structure/transit_tube/horizontal, /turf/open/floor/plating, /area/aisat) "aff" = ( -/obj/structure/transit_tube, /obj/structure/cable/blue{ tag = "icon-1-2"; icon_state = "1-2" }, +/obj/structure/transit_tube/horizontal, /turf/open/floor/plasteel/darkblue/corner{ tag = "icon-darkbluecorners (WEST)"; dir = 8 @@ -2661,11 +2650,7 @@ tag = "icon-1-2"; icon_state = "1-2" }, -/obj/structure/transit_tube/station/reverse{ - tag = "icon-closed (NORTH)"; - icon_state = "closed"; - dir = 1 - }, +/obj/structure/transit_tube/station/reverse/flipped, /turf/open/floor/plasteel/black, /area/aisat) "afh" = ( @@ -2673,11 +2658,6 @@ tag = "icon-1-2"; icon_state = "1-2" }, -/obj/structure/transit_tube{ - tag = "icon-Block (WEST)"; - icon_state = "Block"; - dir = 8 - }, /turf/open/floor/plasteel/darkblue/corner{ tag = "icon-darkbluecorners" }, @@ -2704,35 +2684,46 @@ /turf/open/floor/plating, /area/aisat) "afk" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall15"; - dir = 2 +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" }, -/area/shuttle/abandoned) +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) "afl" = ( -/turf/closed/wall/shuttle{ - tag = "icon-swall_f14"; - icon_state = "swall_f14" +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" }, -/area/shuttle/abandoned) +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) "afm" = ( /obj/item/weapon/hemostat, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "afn" = ( /obj/item/weapon/scalpel, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "afo" = ( /obj/item/weapon/circuitboard/computer/operating, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "afp" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall7"; - dir = 2 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" }, -/area/shuttle/abandoned) +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) "afq" = ( /turf/open/floor/plating, /area/shuttle/abandoned) @@ -2753,13 +2744,11 @@ subspace_transmission = 1; syndie = 1 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "aft" = ( -/obj/structure/transit_tube{ - icon_state = "NE-SW" - }, /obj/structure/lattice, +/obj/structure/transit_tube/diagonal, /turf/open/space, /area/space) "afu" = ( @@ -2804,29 +2793,38 @@ /turf/open/floor/plating, /area/aisat) "afA" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall14"; - dir = 2 +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 }, -/area/shuttle/abandoned) +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) "afB" = ( /obj/structure/grille, /obj/structure/window/shuttle, /turf/open/floor/plating, /area/shuttle/abandoned) "afC" = ( -/obj/machinery/door/airlock/shuttle, -/turf/open/floor/plasteel/shuttle/white, +/obj/machinery/door/airlock/titanium, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "afD" = ( /obj/machinery/recharge_station, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "afE" = ( /obj/machinery/door/airlock/external{ req_access_txt = "150" }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "afF" = ( /obj/docking_port/stationary{ @@ -2842,13 +2840,13 @@ /turf/open/space, /area/space) "afG" = ( -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "afH" = ( /obj/machinery/sleeper/syndie{ dir = 4 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "afI" = ( /obj/structure/table, @@ -2858,13 +2856,13 @@ /obj/item/device/assembly/voice{ pixel_y = 3 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "afJ" = ( /obj/structure/table, /obj/item/weapon/wrench, /obj/item/device/assembly/infra, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "afK" = ( /obj/structure/table, @@ -2878,7 +2876,7 @@ pixel_x = -8; pixel_y = 4 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "afL" = ( /obj/structure/table, @@ -2886,7 +2884,7 @@ pixel_y = 3 }, /obj/item/device/multitool, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "afM" = ( /obj/structure/grille, @@ -2956,44 +2954,50 @@ /obj/structure/chair{ dir = 1 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "afU" = ( /obj/structure/table, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "afV" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall3"; - dir = 2 +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" }, -/area/shuttle/abandoned) +/turf/open/floor/plating, +/area/maintenance/fpmaint) "afW" = ( -/obj/machinery/door/airlock/shuttle, +/obj/machinery/door/airlock/titanium, /turf/open/floor/plating, /area/shuttle/abandoned) "afX" = ( -/turf/closed/wall/shuttle{ - tag = "icon-swall_f16"; - icon_state = "swall_f16" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/shuttle/abandoned) +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) "afY" = ( /obj/structure/tank_dispenser/oxygen, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "afZ" = ( /obj/machinery/door/window/westright{ name = "Tool Storage"; req_access_txt = "150" }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "aga" = ( /obj/structure/table, /obj/item/weapon/storage/toolbox/syndicate, /obj/item/weapon/crowbar/red, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "agb" = ( /obj/structure/lattice/catwalk, @@ -3008,7 +3012,7 @@ /area/space) "agc" = ( /obj/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "agd" = ( /obj/structure/table, @@ -3018,7 +3022,7 @@ pixel_x = -5; pixel_y = 30 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "age" = ( /obj/machinery/door/window{ @@ -3026,24 +3030,24 @@ name = "Tool Storage"; req_access_txt = "150" }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "agf" = ( -/obj/structure/transit_tube{ - icon_state = "S-NE" - }, /obj/structure/lattice, +/obj/structure/transit_tube/curved, /turf/open/space, /area/space) "agg" = ( -/turf/closed/wall/shuttle{ - tag = "icon-swall_f12"; - icon_state = "swall_f12" +/obj/docking_port/stationary/random{ + dir = 1; + id = "pod_asteroid2"; + name = "asteroid" }, -/area/shuttle/abandoned) +/turf/open/space, +/area/space) "agh" = ( /obj/machinery/portable_atmospherics/scrubber, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "agi" = ( /obj/structure/table, @@ -3052,15 +3056,15 @@ pixel_y = 3 }, /obj/item/weapon/stock_parts/cell/high, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "agj" = ( /obj/structure/bed/roller, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "agk" = ( /obj/structure/sign/bluecross_2, -/turf/closed/indestructible/opshuttle, +/turf/closed/wall/mineral/plastitanium, /area/shuttle/syndicate) "agl" = ( /obj/machinery/door/window{ @@ -3068,7 +3072,7 @@ name = "Infirmary"; req_access_txt = "150" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "agm" = ( /obj/structure/table, @@ -3076,7 +3080,7 @@ pixel_y = 5 }, /obj/item/device/sbeacondrop/bomb, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "agn" = ( /obj/structure/table, @@ -3087,19 +3091,17 @@ /obj/item/weapon/grenade/syndieminibomb{ pixel_x = -1 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "ago" = ( -/obj/structure/transit_tube{ - icon_state = "N-S" - }, +/obj/structure/transit_tube, /turf/open/space, /area/space) "agp" = ( /obj/machinery/door/window, /obj/effect/decal/remains/human, /obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plasteel/shuttle/purple, +/turf/open/floor/mineral/titanium/purple, /area/shuttle/abandoned) "agq" = ( /obj/structure/bed, @@ -3108,7 +3110,7 @@ dir = 4 }, /obj/structure/window/reinforced, -/turf/open/floor/plasteel/shuttle/purple, +/turf/open/floor/mineral/titanium/purple, /area/shuttle/abandoned) "agr" = ( /obj/machinery/door/window{ @@ -3118,13 +3120,13 @@ name = "Infirmary"; req_access_txt = "150" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "ags" = ( /obj/machinery/telecomms/allinone{ intercept = 1 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "agt" = ( /obj/machinery/door/window{ @@ -3132,13 +3134,11 @@ name = "Surgery"; req_access_txt = "150" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "agu" = ( -/obj/structure/transit_tube{ - icon_state = "N-S-Pass" - }, /obj/structure/lattice, +/obj/structure/transit_tube/crossing, /turf/open/space, /area/space) "agv" = ( @@ -3153,24 +3153,24 @@ "agw" = ( /obj/structure/table, /obj/item/weapon/tank/internals/oxygen, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "agx" = ( /obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "agy" = ( /obj/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "agz" = ( /obj/structure/window/reinforced{ dir = 1 }, /obj/structure/table, -/obj/item/robot_parts/r_arm, -/obj/item/robot_parts/l_arm, -/turf/open/floor/plasteel/shuttle/white, +/obj/item/bodypart/r_arm/robot, +/obj/item/bodypart/l_arm/robot, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "agA" = ( /obj/structure/table, @@ -3186,13 +3186,13 @@ pixel_x = -3; pixel_y = -3 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "agB" = ( /obj/structure/window/reinforced{ dir = 1 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "agC" = ( /obj/structure/shuttle/engine/heater, @@ -3212,13 +3212,13 @@ pixel_x = -3; pixel_y = -3 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "agE" = ( /obj/structure/table, /obj/item/weapon/surgicaldrill, /obj/item/weapon/circular_saw, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "agF" = ( /obj/structure/sink{ @@ -3230,7 +3230,7 @@ /obj/structure/mirror{ pixel_x = 30 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "agG" = ( /obj/structure/lattice/catwalk, @@ -3243,7 +3243,7 @@ /area/space) "agH" = ( /obj/machinery/computer/shuttle/white_ship, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "agI" = ( /obj/structure/chair{ @@ -3251,20 +3251,20 @@ }, /obj/effect/decal/remains/human, /obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "agJ" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "agK" = ( /obj/item/weapon/ectoplasm, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "agL" = ( /obj/machinery/door/airlock/glass, /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "agM" = ( /obj/effect/decal/cleanable/blood/tracks{ @@ -3272,7 +3272,7 @@ icon_state = "tracks"; dir = 10 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "agN" = ( /obj/effect/decal/cleanable/blood/tracks{ @@ -3281,7 +3281,7 @@ dir = 8 }, /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "agO" = ( /obj/effect/decal/cleanable/blood/tracks{ @@ -3289,7 +3289,7 @@ icon_state = "tracks"; dir = 4 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "agP" = ( /obj/effect/decal/cleanable/blood/tracks{ @@ -3297,16 +3297,16 @@ icon_state = "tracks"; dir = 8 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "agQ" = ( -/obj/machinery/door/airlock/shuttle, +/obj/machinery/door/airlock/titanium, /obj/effect/decal/cleanable/blood/tracks{ tag = "icon-tracks (WEST)"; icon_state = "tracks"; dir = 8 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "agR" = ( /obj/effect/decal/remains/human, @@ -3316,7 +3316,7 @@ dir = 4 }, /obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "agS" = ( /obj/structure/shuttle/engine/propulsion{ @@ -3337,7 +3337,7 @@ "agV" = ( /obj/structure/table, /obj/item/weapon/gun/energy/laser/retro, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "agW" = ( /obj/structure/bed, @@ -3349,37 +3349,50 @@ /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/floor/plasteel/shuttle/purple, +/turf/open/floor/mineral/titanium/purple, /area/shuttle/abandoned) "agX" = ( /obj/machinery/door/window/northright, -/turf/open/floor/plasteel/shuttle/purple, +/turf/open/floor/mineral/titanium/purple, /area/shuttle/abandoned) "agY" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s9"; - dir = 2 +/obj/docking_port/stationary/random{ + dir = 1; + id = "pod_asteroid1"; + name = "asteroid" }, -/area/shuttle/abandoned) +/turf/open/space, +/area/space) "agZ" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s5"; - dir = 2 +/obj/structure/chair{ + dir = 1 }, -/area/shuttle/abandoned) +/obj/machinery/computer/shuttle/pod{ + pixel_x = -32; + pixel_y = 0; + possible_destinations = "pod_asteroid2"; + shuttleId = "pod2" + }, +/obj/machinery/status_display{ + layer = 4; + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_2) "aha" = ( /obj/machinery/portable_atmospherics/pump, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "ahb" = ( /obj/item/weapon/shard{ icon_state = "medium" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "ahc" = ( /obj/structure/chair, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "ahd" = ( /obj/structure/rack, @@ -3388,26 +3401,37 @@ /obj/item/weapon/tank/internals/emergency_oxygen, /obj/item/weapon/tank/internals/emergency_oxygen, /obj/item/weapon/storage/toolbox/mechanical, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "ahe" = ( /obj/item/weapon/stock_parts/cell{ charge = 100; maxcharge = 15000 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "ahf" = ( -/turf/closed/wall/shuttle{ - tag = "icon-swall_f15"; - icon_state = "swall_f15" +/obj/structure/chair{ + dir = 1 }, -/area/shuttle/abandoned) +/obj/machinery/computer/shuttle/pod{ + pixel_x = -32; + pixel_y = 0; + possible_destinations = "pod_asteroid1"; + shuttleId = "pod1" + }, +/obj/machinery/status_display{ + layer = 4; + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_1) "ahg" = ( /obj/structure/rack, /obj/item/clothing/suit/space/hardsuit/medical, /obj/item/clothing/mask/breath, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "ahh" = ( /obj/machinery/door/poddoor{ @@ -3425,67 +3449,69 @@ /turf/open/floor/plating, /area/shuttle/abandoned) "ahj" = ( -/turf/closed/wall/shuttle{ - tag = "icon-swall_f17"; - icon_state = "swall_f17" - }, -/area/shuttle/abandoned) +/turf/closed/wall, +/area/mining_construction) "ahk" = ( -/turf/open/space, -/turf/closed/wall/shuttle{ - icon_state = "swall_f6"; - dir = 2 - }, -/area/shuttle/arrival) +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/mining_construction) "ahl" = ( /obj/structure/grille, /obj/structure/window/shuttle, /turf/open/floor/plating, /area/shuttle/arrival) "ahm" = ( -/turf/open/space, -/turf/closed/wall/shuttle{ - icon_state = "swall_f10"; - dir = 2 +/obj/structure/chair{ + dir = 1 }, -/area/shuttle/arrival) +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_x = -25; + pixel_y = -2; + tag = "WEST" + }, +/obj/item/weapon/storage/pod{ + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_2) "ahn" = ( /obj/machinery/computer/pod{ id = "oldship_gun" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "aho" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall3"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/arrival) "ahp" = ( /obj/structure/chair{ dir = 4 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "ahq" = ( -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "ahr" = ( /obj/structure/chair{ dir = 8 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "ahs" = ( /obj/structure/table, /obj/item/weapon/screwdriver, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "aht" = ( /turf/closed/wall/r_wall, /area/hallway/secondary/entry) "ahu" = ( -/obj/machinery/door/airlock/shuttle, +/obj/machinery/door/airlock/titanium, /obj/docking_port/mobile{ dheight = 0; dir = 1; @@ -3495,7 +3521,7 @@ launch_status = 0; name = "NT Medical Ship"; roundstart_move = "whiteship_away"; - travelDir = 180; + port_angle = 180; width = 35 }, /obj/docking_port/stationary{ @@ -3506,7 +3532,7 @@ name = "SS13 Arrival Docking"; width = 35 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "ahv" = ( /turf/closed/wall, @@ -3516,22 +3542,33 @@ /turf/open/floor/plating, /area/hallway/secondary/entry) "ahx" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall13"; - dir = 2 +/obj/structure/chair{ + dir = 1 }, -/area/shuttle/arrival) +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_x = -25; + pixel_y = -2; + tag = "WEST" + }, +/obj/item/weapon/storage/pod{ + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_1) "ahy" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall12"; - dir = 2 +/turf/open/floor/plating/warnplate{ + dir = 9 }, -/area/shuttle/arrival) +/area/shuttle/auxillary_base) "ahz" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Arrivals Shuttle Airlock" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "ahA" = ( /obj/machinery/chem_heater, @@ -3556,31 +3593,17 @@ /turf/open/floor/plating, /area/hallway/secondary/entry) "ahD" = ( -/turf/open/space, -/turf/closed/wall/shuttle{ - icon_state = "swall_f6"; - dir = 2 +/turf/open/floor/plating/warnplate{ + dir = 1 }, -/area/shuttle/pod_1) +/area/shuttle/auxillary_base) "ahE" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall12"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/pod_1) "ahF" = ( -/turf/open/space, -/obj/structure/shuttle/engine/propulsion/burst{ - tag = "icon-propulsion (WEST)"; - icon_state = "propulsion"; - dir = 8 - }, -/turf/closed/wall/shuttle{ - dir = 2; - icon_state = "swall_f10"; - layer = 2 - }, -/area/shuttle/pod_1) +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/mining_construction) "ahG" = ( /obj/structure/sign/securearea{ desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; @@ -3602,9 +3625,7 @@ icon_state = "alarm0"; pixel_x = -22 }, -/turf/open/floor/plasteel/warning/corner{ - dir = 1 - }, +/turf/open/floor/plasteel, /area/hallway/secondary/entry) "ahI" = ( /turf/open/floor/plasteel/arrival{ @@ -3613,12 +3634,12 @@ /area/hallway/secondary/entry) "ahJ" = ( /obj/structure/closet/emcloset, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "ahK" = ( /obj/structure/table, /obj/item/weapon/storage/firstaid/regular, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "ahL" = ( /turf/open/floor/plasteel/arrival{ @@ -3644,60 +3665,42 @@ /turf/open/floor/plating, /area/hallway/secondary/entry) "ahP" = ( -/obj/docking_port/stationary/random{ - dir = 8; - id = "pod_asteroid1"; - name = "asteroid" +/turf/open/floor/plating/warnplate{ + dir = 5 }, -/turf/open/space, -/area/space) +/area/shuttle/auxillary_base) "ahQ" = ( /obj/structure/grille, /obj/structure/window/shuttle, /turf/open/floor/plating, /area/shuttle/pod_1) "ahR" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/status_display{ - density = 0; - layer = 3; - pixel_x = 0; - pixel_y = 32 - }, -/obj/machinery/computer/shuttle/pod{ - pixel_x = 0; - pixel_y = -32; - possible_destinations = "pod_asteroid1"; - shuttleId = "pod1" - }, -/turf/open/floor/plasteel/shuttle, -/area/shuttle/pod_1) -"ahS" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/item/device/radio/intercom{ - pixel_y = 25 - }, -/obj/item/weapon/storage/pod{ - pixel_x = 6; - pixel_y = -26 - }, -/turf/open/floor/plasteel/shuttle, -/area/shuttle/pod_1) -"ahT" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Escape Pod Airlock" }, /obj/docking_port/mobile/pod{ - dir = 8; + dir = 1; + id = "pod2"; + name = "escape pod 2" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_2) +"ahS" = ( +/obj/machinery/door/airlock/titanium{ + name = "Escape Pod Airlock" + }, +/obj/docking_port/mobile/pod{ + dir = 1; id = "pod1"; name = "escape pod 1" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/pod_1) +"ahT" = ( +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/shuttle/auxillary_base) "ahU" = ( /obj/machinery/door/airlock/external{ name = "Escape Pod One" @@ -3718,7 +3721,7 @@ /turf/open/floor/plating, /area/hallway/secondary/entry) "ahX" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Arrivals Shuttle Airlock" }, /obj/docking_port/stationary{ @@ -3735,7 +3738,7 @@ height = 7; id = "arrival"; name = "arrival shuttle"; - travelDir = -90; + port_angle = -90; width = 15 }, /turf/open/floor/plating, @@ -3747,10 +3750,10 @@ /obj/effect/landmark{ name = "JoinLate" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "ahZ" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Arrivals Shuttle Airlock" }, /turf/open/floor/plating, @@ -3767,6 +3770,13 @@ pixel_y = -2; tag = "EAST" }, +/obj/machinery/camera{ + c_tag = "Arrivals Northeast"; + dir = 8; + network = list("SS13"); + pixel_x = 0; + pixel_y = 0 + }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "aib" = ( @@ -3785,29 +3795,21 @@ /turf/open/floor/plasteel/airless/solarpanel, /area/solar/auxport) "aie" = ( -/turf/open/space, -/turf/closed/wall/shuttle{ - icon_state = "swall_f5"; - dir = 2 - }, -/area/shuttle/pod_1) -"aif" = ( -/turf/open/space, -/obj/structure/shuttle/engine/propulsion/burst{ - tag = "icon-propulsion (WEST)"; - icon_state = "propulsion"; - dir = 8 - }, -/turf/closed/wall/shuttle{ - icon_state = "swall_f9"; - dir = 2 - }, -/area/shuttle/pod_1) -"aig" = ( -/obj/structure/closet/emcloset, -/obj/machinery/light/small, /turf/open/floor/plating, -/area/hallway/secondary/entry) +/area/shuttle/auxillary_base) +"aif" = ( +/turf/open/floor/plating/warnplate{ + dir = 4; + luminosity = 2; + initial_gas_mix = "o2=0.01;n2=0.01" + }, +/area/shuttle/auxillary_base) +"aig" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/warning/corner{ + dir = 4 + }, +/area/mining_construction) "aih" = ( /obj/structure/sign/pods, /turf/closed/wall, @@ -3818,9 +3820,7 @@ dir = 4; network = list("SS13") }, -/turf/open/floor/plasteel/warning/corner{ - dir = 4 - }, +/turf/open/floor/plasteel, /area/hallway/secondary/entry) "aij" = ( /obj/effect/spawner/structure/window/reinforced, @@ -3840,21 +3840,15 @@ network = list("SS13"); start_active = 1 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "ail" = ( /obj/machinery/computer/arcade, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "aim" = ( -/obj/machinery/camera{ - c_tag = "Arrivals Northeast"; - dir = 8; - network = list("SS13"); - pixel_x = 0; - pixel_y = 0 - }, -/turf/open/floor/plasteel, +/obj/structure/closet/emcloset, +/turf/open/floor/plating, /area/hallway/secondary/entry) "ain" = ( /turf/open/floor/plasteel/white/side{ @@ -3883,7 +3877,13 @@ pixel_y = -2; tag = "WEST" }, -/turf/open/floor/plasteel, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 1 + }, /area/hallway/secondary/entry) "aiq" = ( /obj/machinery/vending/snack, @@ -3891,7 +3891,7 @@ /area/hallway/secondary/entry) "air" = ( /obj/structure/closet/wardrobe/green, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "ais" = ( /obj/structure/closet/emcloset, @@ -3908,31 +3908,21 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "aiv" = ( -/turf/open/space, -/turf/closed/wall/shuttle{ - icon_state = "swall_f6"; - dir = 2 - }, -/area/shuttle/pod_2) +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/hallway/secondary/entry) "aiw" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall12"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/pod_2) "aix" = ( -/turf/open/space, -/obj/structure/shuttle/engine/propulsion/burst{ - tag = "icon-propulsion (WEST)"; - icon_state = "propulsion"; +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ dir = 8 }, -/turf/closed/wall/shuttle{ - dir = 2; - icon_state = "swall_f10"; - layer = 2 - }, -/area/shuttle/pod_2) +/area/mining_construction) "aiy" = ( /obj/structure/sign/securearea{ desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; @@ -3949,23 +3939,26 @@ /turf/open/floor/plating, /area/hallway/secondary/entry) "aiz" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, -/turf/open/floor/plasteel/warning/corner{ - dir = 1 +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 8 }, /area/hallway/secondary/entry) "aiA" = ( /obj/effect/landmark{ name = "Observer-Start" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "aiB" = ( /obj/structure/closet/wardrobe/mixed, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "aiC" = ( /obj/structure/extinguisher_cabinet{ @@ -4046,60 +4039,36 @@ /turf/open/floor/plasteel/airless/solarpanel, /area/solar/auxport) "aiK" = ( -/obj/docking_port/stationary/random{ - dir = 8; - id = "pod_asteroid2"; - name = "asteroid" - }, -/turf/open/space, -/area/space) +/obj/machinery/light, +/turf/open/floor/plating, +/area/shuttle/auxillary_base) "aiL" = ( /obj/structure/grille, /obj/structure/window/shuttle, /turf/open/floor/plating, /area/shuttle/pod_2) "aiM" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/status_display{ - density = 0; - layer = 3; - pixel_x = 0; - pixel_y = 32 - }, -/obj/machinery/computer/shuttle/pod{ - pixel_x = 0; - pixel_y = -32; - possible_destinations = "pod_asteroid2"; - shuttleId = "pod2" - }, -/turf/open/floor/plasteel/shuttle, -/area/shuttle/pod_2) -"aiN" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/item/device/radio/intercom{ - pixel_y = 25 - }, -/obj/item/weapon/storage/pod{ - pixel_x = 6; - pixel_y = -26 - }, -/turf/open/floor/plasteel/shuttle, -/area/shuttle/pod_2) -"aiO" = ( -/obj/machinery/door/airlock/shuttle{ - name = "Escape Pod Airlock" - }, -/obj/docking_port/mobile/pod{ +/obj/machinery/camera{ + c_tag = "Auxillary Mining Base"; dir = 8; - id = "pod2"; - name = "escape pod 2" + start_active = 1 }, -/turf/open/floor/plasteel/shuttle, -/area/shuttle/pod_2) +/turf/open/floor/plating, +/area/shuttle/auxillary_base) +"aiN" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/mining_construction) +"aiO" = ( +/turf/open/floor/plasteel/warning/corner{ + dir = 4 + }, +/area/mining_construction) "aiP" = ( /obj/machinery/door/airlock/external{ name = "Escape Pod Two" @@ -4114,7 +4083,7 @@ /area/hallway/secondary/entry) "aiR" = ( /obj/structure/closet/wardrobe/grey, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "aiS" = ( /obj/machinery/light{ @@ -4279,32 +4248,44 @@ /turf/open/space, /area/solar/auxport) "ajc" = ( -/turf/open/space, -/turf/closed/wall/shuttle{ - icon_state = "swall_f5"; - dir = 2 +/obj/docking_port/mobile/auxillary_base{ + dheight = 4; + dir = 4; + dwidth = 4; + height = 9; + width = 9 }, -/area/shuttle/pod_2) +/obj/machinery/bluespace_beacon, +/obj/machinery/computer/shuttle/auxillary_base{ + pixel_y = 0 + }, +/turf/closed/wall, +/area/shuttle/auxillary_base) "ajd" = ( -/turf/open/space, -/obj/structure/shuttle/engine/propulsion/burst{ - tag = "icon-propulsion (WEST)"; - icon_state = "propulsion"; - dir = 8 +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 1; + glass = 1; + name = "Construction Zone"; + opacity = 0; + req_access = null; + req_access_txt = "0"; + req_one_access_txt = "0" }, -/turf/closed/wall/shuttle{ - icon_state = "swall_f9"; - dir = 2 - }, -/area/shuttle/pod_2) +/turf/open/floor/plating, +/area/mining_construction) "aje" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, /turf/open/floor/plasteel/warning/corner{ dir = 4 }, /area/hallway/secondary/entry) "ajf" = ( /obj/structure/closet/wardrobe/black, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "ajg" = ( /obj/machinery/vending/coffee, @@ -4322,16 +4303,10 @@ }, /area/hallway/secondary/entry) "ajj" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s6"; - dir = 2 - }, -/area/shuttle/transport) +/turf/open/floor/plating, +/area/mining_construction) "ajk" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall12"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/transport) "ajl" = ( /obj/structure/window/shuttle, @@ -4348,10 +4323,7 @@ icon_state = "propulsion"; dir = 8 }, -/turf/closed/wall/shuttle{ - icon_state = "swall_s10"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/transport) "ajo" = ( /obj/machinery/power/solar{ @@ -4405,7 +4377,7 @@ pixel_y = -2; tag = "WEST" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "ajt" = ( /obj/machinery/requests_console{ @@ -4414,7 +4386,7 @@ pixel_x = 30; pixel_y = 0 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "aju" = ( /obj/structure/sign/securearea{ @@ -4429,23 +4401,21 @@ /area/hallway/secondary/entry) "ajv" = ( /obj/structure/chair, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "ajw" = ( /obj/machinery/computer/shuttle/ferry/request, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "ajx" = ( /obj/structure/chair{ dir = 8 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "ajy" = ( -/turf/open/floor/plasteel/shuttle, -/turf/closed/wall/shuttle/interior{ - icon_state = "swall_f5" - }, +/turf/open/floor/mineral/titanium/blue, +/turf/closed/wall/mineral/titanium/interior, /area/shuttle/transport) "ajz" = ( /obj/structure/lattice/catwalk, @@ -4519,12 +4489,18 @@ tag = "icon-4-8"; icon_state = "4-8" }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, /turf/open/floor/plating, /area/maintenance/aft) "ajJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, /obj/structure/cable/green{ - tag = "icon-2-8"; - icon_state = "2-8" + tag = "icon-1-8"; + icon_state = "1-8" }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) @@ -4539,7 +4515,7 @@ /turf/open/floor/plating, /area/hallway/secondary/entry) "ajL" = ( -/obj/machinery/door/airlock/shuttle, +/obj/machinery/door/airlock/titanium, /obj/docking_port/mobile{ dir = 4; dwidth = 2; @@ -4547,7 +4523,7 @@ id = "ferry"; name = "ferry shuttle"; roundstart_move = "ferry_away"; - travelDir = 180; + port_angle = 180; width = 5 }, /obj/docking_port/stationary{ @@ -4559,14 +4535,14 @@ turf_type = /turf/open/space; width = 5 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "ajM" = ( -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "ajN" = ( -/obj/machinery/door/airlock/shuttle, -/turf/open/floor/plasteel/shuttle, +/obj/machinery/door/airlock/titanium, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "ajO" = ( /obj/machinery/door/airlock/external{ @@ -4612,11 +4588,11 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "ajV" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall7"; - dir = 2 +/obj/structure/closet/emcloset, +/turf/open/floor/plating/warnplate{ + dir = 8 }, -/area/shuttle/arrival) +/area/mining_construction) "ajW" = ( /obj/structure/window/reinforced{ dir = 1; @@ -4626,38 +4602,32 @@ /turf/open/floor/plasteel/black, /area/shuttle/arrival) "ajX" = ( -/turf/closed/wall/shuttle{ - tag = "icon-swall11"; - icon_state = "swall11"; - dir = 2 +/obj/machinery/light{ + dir = 1 }, -/area/shuttle/arrival) +/turf/open/floor/plating, +/area/shuttle/auxillary_base) "ajY" = ( /obj/structure/chair{ dir = 1 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "ajZ" = ( /obj/structure/closet/crate, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "aka" = ( -/turf/open/floor/plasteel/shuttle, -/turf/closed/wall/shuttle/interior{ - icon_state = "swall_f6" +/obj/effect/landmark{ + name = "carpspawn" }, -/area/shuttle/transport) +/obj/structure/lattice, +/turf/open/space, +/area/space) "akb" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion"; - dir = 8 - }, -/turf/closed/wall/shuttle{ - icon_state = "swall_s9"; - dir = 2 - }, -/area/shuttle/transport) +/obj/structure/closet/toolcloset, +/turf/open/floor/plasteel/yellow, +/area/mining_construction) "akc" = ( /obj/structure/lattice/catwalk, /obj/structure/cable/yellow{ @@ -4690,11 +4660,10 @@ /turf/open/space, /area/solar/auxport) "akd" = ( -/obj/structure/transit_tube{ - tag = "icon-N-SE"; - icon_state = "N-SE" - }, /obj/structure/lattice, +/obj/structure/transit_tube/curved/flipped{ + dir = 1 + }, /turf/open/space, /area/space) "ake" = ( @@ -4749,12 +4718,13 @@ /turf/open/floor/plating, /area/maintenance/aft) "akl" = ( -/turf/open/space, -/turf/closed/wall/shuttle{ - icon_state = "swall_f5"; - dir = 2 +/obj/machinery/light{ + dir = 1 }, -/area/shuttle/arrival) +/turf/open/floor/plasteel/warning/corner{ + dir = 8 + }, +/area/mining_construction) "akm" = ( /obj/structure/shuttle/engine/propulsion{ icon_state = "burst_l" @@ -4772,13 +4742,10 @@ /turf/open/floor/plasteel/black, /area/shuttle/arrival) "akp" = ( -/turf/open/space, -/turf/closed/wall/shuttle{ - tag = "icon-swall_f9"; - icon_state = "swall_f9"; - dir = 2 +/turf/open/floor/plasteel/warning{ + dir = 1 }, -/area/shuttle/arrival) +/area/mining_construction) "akq" = ( /obj/structure/closet/emcloset, /turf/open/floor/plasteel/warning{ @@ -4787,11 +4754,19 @@ }, /area/hallway/secondary/entry) "akr" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s5"; - dir = 2 +/turf/open/floor/plasteel/yellow, +/obj/structure/closet/toolcloset, +/obj/machinery/camera{ + c_tag = "Auxillary Base Construction"; + dir = 4 }, -/area/shuttle/transport) +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/turf/open/floor/plasteel/warningline, +/area/mining_construction) "aks" = ( /obj/structure/transit_tube{ tag = "icon-D-NE"; @@ -4801,24 +4776,23 @@ /turf/open/space, /area/space) "akt" = ( -/obj/structure/transit_tube{ - tag = "icon-E-NW"; - icon_state = "E-NW" - }, /obj/structure/lattice, +/obj/structure/transit_tube/curved{ + dir = 4 + }, /turf/open/space, /area/space) "aku" = ( /obj/structure/window/reinforced/fulltile, -/obj/structure/transit_tube, +/obj/structure/transit_tube/horizontal, /turf/open/floor/plating, /area/engine/engineering) "akv" = ( -/obj/structure/transit_tube, /obj/structure/cable/green{ tag = "icon-1-2"; icon_state = "1-2" }, +/obj/structure/transit_tube/horizontal, /turf/open/floor/plasteel/darkblue/corner{ tag = "icon-darkbluecorners (NORTH)"; dir = 1 @@ -4840,11 +4814,6 @@ tag = "icon-1-2"; icon_state = "1-2" }, -/obj/structure/transit_tube{ - tag = "icon-Block (WEST)"; - icon_state = "Block"; - dir = 8 - }, /turf/open/floor/plasteel/darkblue/corner{ tag = "icon-darkbluecorners (EAST)"; dir = 4 @@ -4884,6 +4853,7 @@ pixel_x = 0; pixel_y = 0 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/white/corner{ dir = 4 }, @@ -4943,7 +4913,7 @@ tag = "icon-2-8"; icon_state = "2-8" }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 }, @@ -5019,6 +4989,7 @@ tag = "icon-1-8"; icon_state = "1-8" }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, /area/maintenance/aft) "akP" = ( @@ -5254,8 +5225,8 @@ tag = "icon-4-8"; icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 }, /turf/open/floor/plating, /area/maintenance/aft) @@ -5268,6 +5239,9 @@ tag = "icon-2-8"; icon_state = "2-8" }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, /turf/open/floor/plating, /area/maintenance/aft) "alq" = ( @@ -5277,6 +5251,9 @@ lootcount = 2; name = "2maintenance loot spawner" }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, /turf/open/floor/plating, /area/maintenance/aft) "alr" = ( @@ -5286,6 +5263,9 @@ lootcount = 2; name = "2maintenance loot spawner" }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, /turf/open/floor/plating, /area/maintenance/aft) "als" = ( @@ -5297,38 +5277,35 @@ pixel_x = 1; pixel_y = -24 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, /turf/open/floor/plating, /area/security/vacantoffice) "alt" = ( -/obj/structure/cable/green{ - tag = "icon-1-4"; - icon_state = "1-4" +/obj/structure/disposalpipe/segment{ + dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/secondary/entry) +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) "alu" = ( -/obj/structure/cable/green{ - tag = "icon-4-8"; - icon_state = "4-8" - }, /obj/structure/extinguisher_cabinet{ pixel_x = 0; pixel_y = -30; tag = "s" }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"alv" = ( -/obj/structure/cable/green{ - tag = "icon-4-8"; - icon_state = "4-8" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"alv" = ( /obj/structure/sign/map/left/dream{ pixel_y = -32 }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "alw" = ( @@ -5342,10 +5319,6 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "alx" = ( -/obj/structure/cable/green{ - tag = "icon-2-8"; - icon_state = "2-8" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -5359,7 +5332,7 @@ /turf/open/floor/plasteel/neutral/side, /area/hallway/secondary/entry) "alz" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -5398,7 +5371,6 @@ icon_state = "4-8" }, /obj/machinery/newscaster{ - hitstaken = 0; pixel_x = 0; pixel_y = -32; tag = "s" @@ -5534,10 +5506,6 @@ /turf/closed/wall/rust, /area/security/vacantoffice) "alW" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/neutral/side{ @@ -5827,10 +5795,6 @@ }, /area/hallway/secondary/entry) "amG" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ tag = "icon-manifold-b-f (WEST)"; dir = 8 @@ -6156,10 +6120,6 @@ }, /area/hallway/secondary/entry) "anv" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ tag = "icon-manifold-b-f (EAST)"; dir = 4 @@ -6417,10 +6377,6 @@ }, /area/hallway/secondary/entry) "aof" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/neutral/side{ tag = "icon-neutral (EAST)"; @@ -6619,10 +6575,6 @@ /turf/open/floor/plasteel, /area/engine/engineering) "aoE" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -6630,7 +6582,7 @@ dir = 4; icon_state = "pipe-c" }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/bot, /area/engine/engineering) "aoF" = ( @@ -6723,10 +6675,6 @@ }, /area/hallway/secondary/entry) "aoP" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -7082,10 +7030,6 @@ tag = "icon-2-8"; icon_state = "2-8" }, -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, /area/engine/engineering) @@ -7144,10 +7088,6 @@ }, /area/hallway/secondary/entry) "apK" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/machinery/light{ dir = 4 }, @@ -7215,7 +7155,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/mob/living/simple_animal/mouse, /turf/open/floor/plating{ broken = 1; icon_state = "platingdmg1" @@ -7451,10 +7390,6 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "aqu" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ tag = "icon-manifold-b-f (EAST)"; dir = 4 @@ -8122,30 +8057,21 @@ /turf/closed/wall, /area/hallway/secondary/entry) "arG" = ( -/obj/structure/cable/green{ - tag = "icon-1-4"; - icon_state = "1-4" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "arH" = ( -/obj/structure/cable/green{ - tag = "icon-4-8"; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/secondary/entry) +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) "arI" = ( -/obj/structure/cable/green{ - tag = "icon-4-8"; - icon_state = "4-8" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 }, @@ -8164,10 +8090,6 @@ tag = "icon-2-4"; icon_state = "2-4" }, -/obj/structure/cable/green{ - tag = "icon-2-8"; - icon_state = "2-8" - }, /obj/structure/disposalpipe/junction{ dir = 8; icon_state = "pipe-j1"; @@ -9354,7 +9276,6 @@ dir = 4 }, /obj/machinery/meter, -/mob/living/simple_animal/mouse, /turf/open/floor/plasteel/floorgrime, /area/maintenance/incinerator) "auf" = ( @@ -9996,14 +9917,6 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "avt" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, -/obj/structure/cable/green{ - tag = "icon-2-8"; - icon_state = "2-8" - }, /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=CHW"; location = "Lockers" @@ -10011,6 +9924,10 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "avu" = ( @@ -10186,7 +10103,7 @@ dir = 8; external_pressure_bound = 0; frequency = 1441; - id_tag = "mix_in"; + id_tag = "mix_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; @@ -10790,7 +10707,7 @@ frequency = 1441; input_tag = "mix_in"; name = "Gas Mix Tank Control"; - output_tag = "mix_in"; + output_tag = "mix_out"; sensors = list("mix_sensor" = "Tank") }, /turf/open/floor/plasteel/green/side{ @@ -11039,7 +10956,6 @@ lootcount = 2; name = "random material damage spawner" }, -/mob/living/simple_animal/mouse, /turf/open/floor/plating, /area/maintenance/asmaint) "axw" = ( @@ -11704,11 +11620,6 @@ /turf/open/floor/plating, /area/maintenance/asmaint) "ayK" = ( -/obj/structure/cable/green{ - tag = "icon-2-4"; - icon_state = "2-4" - }, -/obj/structure/grille/broken, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 6 }, @@ -11717,13 +11628,8 @@ icon_state = "4-8" }, /obj/structure/cable/green{ - tag = "icon-1-4"; - icon_state = "1-4" - }, -/obj/effect/spawner/lootdrop{ - loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); - lootcount = 2; - name = "random material damage spawner" + tag = "icon-2-4"; + icon_state = "2-4" }, /turf/open/floor/plating, /area/maintenance/asmaint) @@ -11846,6 +11752,10 @@ }, /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, /obj/structure/disposalpipe/segment, +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, /turf/open/floor/plating, /area/maintenance/asmaint) "ayU" = ( @@ -12453,16 +12363,11 @@ /turf/open/floor/plating, /area/maintenance/asmaint) "aAj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/green{ tag = "icon-1-2"; icon_state = "1-2" }, -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable/green{ - tag = "icon-1-8"; - icon_state = "1-8" - }, /turf/open/floor/plating, /area/maintenance/asmaint) "aAk" = ( @@ -12489,6 +12394,10 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, /turf/open/floor/plating, /area/maintenance/asmaint) "aAo" = ( @@ -12758,10 +12667,6 @@ }, /area/hallway/secondary/entry) "aAP" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 }, @@ -12855,7 +12760,6 @@ pixel_x = 0; pixel_y = 0 }, -/obj/machinery/portable_atmospherics/canister/bz, /turf/open/floor/plasteel/escape{ tag = "icon-escape (NORTH)"; dir = 1 @@ -13142,7 +13046,7 @@ "aBE" = ( /obj/structure/table, /obj/item/weapon/folder/white, -/obj/item/clothing/tie/stethoscope, +/obj/item/clothing/neck/stethoscope, /obj/machinery/firealarm{ dir = 2; pixel_y = 24 @@ -13179,7 +13083,7 @@ "aBH" = ( /obj/structure/table, /obj/item/weapon/folder/white, -/obj/item/clothing/tie/stethoscope, +/obj/item/clothing/neck/stethoscope, /obj/machinery/firealarm{ dir = 2; pixel_y = 24 @@ -13207,6 +13111,10 @@ dir = 1; icon_state = "pipe-c" }, +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, /turf/open/floor/plating, /area/maintenance/asmaint) "aBK" = ( @@ -13220,6 +13128,10 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, /turf/open/floor/plating, /area/medical/medbay) "aBL" = ( @@ -13230,6 +13142,10 @@ dir = 2; icon_state = "pipe-c" }, +/obj/structure/cable/cyan{ + tag = "icon-2-8"; + icon_state = "2-8" + }, /turf/open/floor/plasteel/white, /area/medical/medbay) "aBM" = ( @@ -13463,7 +13379,7 @@ d1 = 1; d2 = 4 }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/black, /area/engine/engine_smes) "aCj" = ( @@ -13522,10 +13438,6 @@ }, /area/hallway/secondary/entry) "aCo" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ tag = "icon-manifold-b-f (WEST)"; dir = 8 @@ -13637,7 +13549,7 @@ /turf/open/floor/plasteel, /area/atmos) "aCz" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/machinery/light, /obj/machinery/camera{ c_tag = "Atmospherics"; @@ -13793,30 +13705,22 @@ /turf/open/floor/plating, /area/maintenance/asmaint) "aCY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 +/turf/open/floor/plasteel/warning/corner{ + dir = 1 }, -/turf/open/floor/plating, -/area/maintenance/asmaint) +/area/mining_construction) "aCZ" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint) +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/mining_construction) "aDa" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, -/obj/structure/grille/broken, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold-b-f (EAST)"; - dir = 4 - }, -/turf/open/floor/plating{ - broken = 1; - icon_state = "platingdmg1" - }, -/area/maintenance/asmaint) +/turf/open/floor/plasteel/warning/corner, +/area/mining_construction) "aDb" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/spawner/lootdrop{ @@ -13873,6 +13777,10 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, +/obj/structure/cable/cyan{ + tag = "icon-1-2"; + icon_state = "1-2" + }, /turf/open/floor/plasteel/whiteblue/corner{ dir = 8 }, @@ -14046,13 +13954,10 @@ }, /area/medical/virology) "aDu" = ( -/obj/structure/chair/stool, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/turf/open/floor/plating/warnplate{ + dir = 10 }, -/turf/open/floor/plasteel/white, -/area/medical/virology) +/area/shuttle/auxillary_base) "aDv" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber{ dir = 1; @@ -14246,10 +14151,6 @@ /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 }, -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/hallway/secondary/entry) @@ -14943,10 +14844,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ dir = 4 }, -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/hallway/secondary/entry) @@ -15377,10 +15274,6 @@ }, /area/hallway/secondary/entry) "aGi" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/hallway/secondary/entry) @@ -15696,23 +15589,11 @@ }, /area/medical/exam_room) "aGW" = ( -/obj/machinery/vending/medical{ - pixel_x = -2 +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/machinery/requests_console{ - announcementConsole = 0; - department = "Medbay"; - departmentType = 1; - name = "Medbay RC"; - pixel_x = -30; - pixel_y = 0; - pixel_z = 0 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold-b-f (WEST)"; - dir = 8 - }, -/turf/open/floor/plasteel/whiteblue/corner{ +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/whiteblue/side{ dir = 8 }, /area/medical/exam_room) @@ -15721,7 +15602,10 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-y"; + dir = 1 + }, /turf/open/floor/plasteel/white, /area/medical/exam_room) "aGY" = ( @@ -15733,10 +15617,17 @@ c_tag = "Medbay Northwest"; network = list("SS13") }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/plasteel/white, /area/medical/exam_room) "aGZ" = ( /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, /turf/open/floor/plasteel/white, /area/medical/exam_room) "aHa" = ( @@ -15781,7 +15672,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/item/clothing/tie/stethoscope, +/obj/item/clothing/neck/stethoscope, /turf/open/floor/plasteel/cmo, /area/medical/cmo) "aHf" = ( @@ -15985,6 +15876,12 @@ dir = 8 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/yellow{ + tag = "icon-4-10"; + icon_state = "4-10"; + d1 = 4; + d2 = 8 + }, /turf/open/floor/plasteel/warning{ dir = 8 }, @@ -16135,10 +16032,6 @@ }, /area/hallway/secondary/entry) "aHQ" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 }, @@ -16338,7 +16231,7 @@ /area/maintenance/fore) "aIo" = ( /obj/structure/rack, -/obj/item/robot_parts/l_arm, +/obj/item/bodypart/l_arm/robot, /obj/item/stack/sheet/metal{ amount = 2 }, @@ -16401,7 +16294,7 @@ pixel_x = 0; pixel_y = 2 }, -/obj/item/clothing/tie/stethoscope, +/obj/item/clothing/neck/stethoscope, /obj/machinery/requests_console{ announcementConsole = 0; department = "Medbay"; @@ -16473,10 +16366,7 @@ /turf/open/floor/plasteel/whiteblue, /area/medical/exam_room) "aIB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/structure/disposalpipe/segment{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /turf/open/floor/plasteel/whiteblue/side{ @@ -16484,21 +16374,24 @@ }, /area/medical/exam_room) "aIC" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-y"; - dir = 1 +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/plasteel/white, -/area/medical/exam_room) +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) "aID" = ( /obj/machinery/atmospherics/components/unary/vent_pump{ dir = 1; on = 1 }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /turf/open/floor/plasteel/white, /area/medical/exam_room) "aIE" = ( @@ -16507,10 +16400,7 @@ icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, +/obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/white, /area/medical/exam_room) "aIF" = ( @@ -17103,7 +16993,7 @@ "aJN" = ( /obj/structure/table, /obj/item/stack/cable_coil/green, -/obj/item/robot_parts/l_arm, +/obj/item/bodypart/l_arm/robot, /obj/item/weapon/storage/fancy/cigarettes/cigpack_robustgold, /obj/item/weapon/reagent_containers/food/drinks/mug/coco, /turf/open/floor/plating, @@ -17116,7 +17006,7 @@ "aJP" = ( /obj/structure/cable/green, /obj/machinery/computer/monitor, -/obj/machinery/light_construct, +/obj/structure/light_construct, /turf/open/floor/plating, /area/maintenance/fore) "aJQ" = ( @@ -17240,11 +17130,8 @@ "aKg" = ( /obj/structure/table, /obj/item/weapon/crowbar, -/obj/item/clothing/tie/stethoscope, +/obj/item/clothing/neck/stethoscope, /obj/item/weapon/reagent_containers/spray/cleaner, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, /turf/open/floor/plasteel/whiteblue/corner{ dir = 1 }, @@ -17327,7 +17214,7 @@ /turf/open/floor/plasteel/cafeteria, /area/medical/cmo) "aKp" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plasteel/cafeteria, /area/medical/cmo) @@ -17475,6 +17362,12 @@ "aKL" = ( /obj/structure/closet/emcloset, /obj/machinery/light/small, +/obj/structure/cable/yellow{ + tag = "icon-5-9"; + icon_state = "5-9"; + d1 = 4; + d2 = 8 + }, /turf/open/floor/plating/airless, /area/engine/engineering) "aKM" = ( @@ -17614,19 +17507,15 @@ /turf/open/floor/plating, /area/maintenance/aft) "aLd" = ( -/obj/structure/cable/green{ - tag = "icon-2-4"; - icon_state = "2-4" - }, -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, /turf/open/floor/plating, /area/maintenance/aft) "aLe" = ( @@ -17681,14 +17570,6 @@ }, /area/hallway/secondary/entry) "aLi" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, -/obj/structure/cable/green{ - tag = "icon-2-4"; - icon_state = "2-4" - }, /obj/structure/cable/green{ tag = "icon-2-8"; icon_state = "2-8" @@ -17699,10 +17580,6 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "aLj" = ( -/obj/structure/cable/green{ - tag = "icon-4-8"; - icon_state = "4-8" - }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ tag = "icon-manifold-r-f (EAST)"; dir = 4 @@ -17725,10 +17602,6 @@ name = "Atmos Blast Door"; opacity = 0 }, -/obj/structure/cable/green{ - tag = "icon-4-8"; - icon_state = "4-8" - }, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/glass_atmos{ name = "Atmospherics"; @@ -17740,17 +17613,13 @@ /turf/open/floor/plasteel/yellow, /area/atmos) "aLl" = ( -/obj/structure/cable/green{ - tag = "icon-4-8"; - icon_state = "4-8" - }, -/obj/structure/cable/green{ - tag = "icon-2-8"; - icon_state = "2-8" - }, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, /turf/open/floor/plasteel/caution{ dir = 8 }, @@ -18122,7 +17991,7 @@ /area/maintenance/port) "aMb" = ( /obj/effect/spawner/lootdrop/maintenance, -/obj/item/robot_parts/l_arm, +/obj/item/bodypart/l_arm/robot, /turf/open/floor/plating, /area/maintenance/port) "aMc" = ( @@ -18215,14 +18084,8 @@ /turf/open/floor/plasteel/yellow/corner, /area/engine/engineering) "aMo" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/aft) +/turf/open/floor/plating/warnplate, +/area/shuttle/auxillary_base) "aMp" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ tag = "icon-manifold-b-f (WEST)"; @@ -18604,7 +18467,7 @@ /turf/open/floor/plasteel/white, /area/medical/genetics) "aNg" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/whitebot, /area/medical/genetics) "aNh" = ( @@ -18723,10 +18586,6 @@ /turf/closed/wall, /area/maintenance/aft) "aNx" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 }, @@ -18882,35 +18741,40 @@ /turf/open/floor/plasteel/white, /area/medical/exam_room) "aNQ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating/warnplate{ + dir = 6 }, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 4 - }, -/area/medical/exam_room) +/area/shuttle/auxillary_base) "aNR" = ( /obj/structure/cable/cyan{ tag = "icon-2-4"; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 1 - }, +/turf/open/floor/plasteel/white, /area/medical/exam_room) "aNS" = ( -/obj/structure/cable/cyan{ - tag = "icon-4-8"; - icon_state = "4-8" +/obj/structure/mining_shuttle_beacon{ + dir = 2 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/obj/machinery/power/apc{ + auto_name = 1; + dir = 8; + name = "Autoname APC West"; + pixel_x = -25; + pixel_y = 0 + }, +/obj/structure/cable/green{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/turf/open/floor/plasteel/darkwarning/end{ + tag = "icon-black_warn_end (EAST)"; + icon_state = "black_warn_end"; dir = 4 }, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 1 - }, -/area/medical/exam_room) +/area/mining_construction) "aNT" = ( /obj/structure/cable/cyan{ tag = "icon-4-8"; @@ -18933,19 +18797,15 @@ /turf/open/floor/plasteel/white, /area/medical/exam_room) "aNV" = ( -/obj/machinery/firealarm{ - dir = 2; - pixel_y = 24 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 }, -/obj/structure/cable/cyan{ +/obj/structure/cable/green{ tag = "icon-4-8"; icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/exam_room) +/turf/open/floor/plasteel, +/area/mining_construction) "aNW" = ( /obj/structure/cable/cyan{ tag = "icon-4-8"; @@ -19249,42 +19109,26 @@ /turf/open/floor/plasteel/white, /area/medical/genetics) "aOt" = ( -/obj/structure/cable/cyan{ - tag = "icon-2-4"; - icon_state = "2-4" - }, -/obj/structure/cable/cyan{ - tag = "icon-4-8"; - icon_state = "4-8" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, +/obj/structure/cable/cyan{ + tag = "icon-2-8"; + icon_state = "2-8" + }, /turf/open/floor/plasteel/white, /area/medical/genetics) "aOu" = ( -/obj/structure/cable/cyan{ - tag = "icon-4-8"; - icon_state = "4-8" - }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plasteel/white, /area/medical/genetics) "aOv" = ( -/obj/structure/cable/cyan{ - tag = "icon-4-8"; - icon_state = "4-8" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /turf/open/floor/plasteel/white, /area/medical/genetics) "aOw" = ( -/obj/structure/cable/cyan{ - tag = "icon-4-8"; - icon_state = "4-8" - }, /obj/machinery/door/airlock/maintenance{ name = "Genetics Maintenance"; req_access_txt = "5;9" @@ -19295,10 +19139,6 @@ /turf/open/floor/plating, /area/medical/genetics) "aOx" = ( -/obj/structure/cable/green{ - tag = "icon-4-8"; - icon_state = "4-8" - }, /obj/structure/cable/green{ tag = "icon-1-4"; icon_state = "1-4" @@ -19586,10 +19426,6 @@ tag = "icon-2-8"; icon_state = "2-8" }, -/obj/structure/cable/green{ - tag = "icon-4-8"; - icon_state = "4-8" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -19602,10 +19438,6 @@ /turf/open/floor/plasteel, /area/engine/engineering) "aOV" = ( -/obj/structure/cable/green{ - tag = "icon-4-8"; - icon_state = "4-8" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -19614,14 +19446,10 @@ icon_state = "pipe-j1s"; sortType = 4 }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/bot, /area/engine/engineering) "aOW" = ( -/obj/structure/cable/green{ - tag = "icon-4-8"; - icon_state = "4-8" - }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/structure/disposalpipe/segment{ dir = 4 @@ -19633,10 +19461,6 @@ name = "Engineering Maintenance"; req_access_txt = "10" }, -/obj/structure/cable/green{ - tag = "icon-4-8"; - icon_state = "4-8" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -19646,10 +19470,6 @@ /turf/open/floor/plating, /area/engine/engineering) "aOY" = ( -/obj/structure/cable/green{ - tag = "icon-4-8"; - icon_state = "4-8" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 }, @@ -19659,10 +19479,6 @@ /turf/open/floor/plating, /area/maintenance/aft) "aOZ" = ( -/obj/structure/cable/green{ - tag = "icon-1-8"; - icon_state = "1-8" - }, /obj/structure/disposalpipe/segment{ dir = 8; icon_state = "pipe-c" @@ -20004,7 +19820,6 @@ }, /area/medical/exam_room) "aPI" = ( -/obj/structure/closet/wardrobe/pjs, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ tag = "icon-manifold-r-f (NORTH)"; dir = 1 @@ -20014,11 +19829,6 @@ }, /area/medical/exam_room) "aPJ" = ( -/obj/structure/table, -/obj/item/weapon/folder/white, -/obj/item/weapon/gun/syringe, -/obj/item/weapon/reagent_containers/dropper, -/obj/item/weapon/soap/nanotrasen, /obj/machinery/light, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/machinery/camera{ @@ -20042,11 +19852,6 @@ /area/medical/exam_room) "aPL" = ( /obj/structure/closet/secure_closet/medical1, -/obj/machinery/airalarm{ - dir = 1; - icon_state = "alarm0"; - pixel_y = -22 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -20169,7 +19974,7 @@ /turf/open/floor/plasteel/white, /area/medical/genetics) "aQb" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -21127,7 +20932,7 @@ /turf/open/floor/plasteel, /area/engine/chiefs_office) "aSj" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/machinery/light_switch{ pixel_y = 24; tag = "n" @@ -22092,15 +21897,17 @@ /turf/open/floor/plasteel/white, /area/medical/medbay) "aUl" = ( -/obj/structure/cable/cyan{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/green{ tag = "icon-4-8"; icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/turf/open/floor/plasteel/warning{ dir = 4 }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) +/area/mining_construction) "aUm" = ( /obj/structure/cable/cyan{ tag = "icon-2-4"; @@ -22468,30 +22275,28 @@ }, /area/engine/engineering) "aUS" = ( -/obj/structure/cable/green{ - tag = "icon-2-4"; - icon_state = "2-4" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 }, /turf/open/floor/plating, /area/maintenance/aft) "aUT" = ( -/obj/structure/cable/green{ - tag = "icon-4-8"; - icon_state = "4-8" +/obj/machinery/door/airlock/engineering{ + cyclelinkeddir = 1; + name = "Auxillary Base Construction"; + req_access_txt = "0"; + req_one_access_txt = "32;47;48" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aUU" = ( /obj/structure/cable/green{ tag = "icon-4-8"; icon_state = "4-8" }, +/turf/open/floor/plasteel, +/area/mining_construction) +"aUU" = ( /obj/effect/landmark/start{ name = "Station Engineer" }, @@ -22501,10 +22306,6 @@ /turf/open/floor/plasteel, /area/engine/engineering) "aUV" = ( -/obj/structure/cable/green{ - tag = "icon-4-8"; - icon_state = "4-8" - }, /obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, /turf/open/floor/plasteel, /area/engine/engineering) @@ -22513,10 +22314,6 @@ tag = "icon-1-4"; icon_state = "1-4" }, -/obj/structure/cable/green{ - tag = "icon-1-8"; - icon_state = "1-8" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -23001,7 +22798,7 @@ /turf/open/floor/plating, /area/maintenance/asmaint) "aVK" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/machinery/camera{ c_tag = "Medbay Surgery"; dir = 4; @@ -23744,10 +23541,6 @@ tag = "icon-1-8"; icon_state = "1-8" }, -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/yellow/corner{ dir = 1 @@ -24463,10 +24256,6 @@ /turf/open/floor/plating, /area/engine/engineering) "aYC" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/engine/chiefs_office) @@ -24539,7 +24328,6 @@ pixel_y = 0 }, /obj/machinery/newscaster{ - hitstaken = 0; pixel_x = 0; pixel_y = -32; tag = "s" @@ -24702,7 +24490,7 @@ }, /area/crew_quarters/courtroom) "aZf" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/bot, /area/crew_quarters/courtroom) @@ -25123,7 +24911,7 @@ /turf/open/floor/plasteel, /area/crew_quarters/locker) "aZU" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel, /area/crew_quarters/locker) "aZV" = ( @@ -25165,6 +24953,7 @@ pixel_x = -22; tag = "icon-alarm0 (EAST)" }, +/obj/machinery/ntnet_relay, /turf/open/floor/plasteel/darkyellow{ name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80" @@ -25303,7 +25092,7 @@ tag = "icon-2-8"; icon_state = "2-8" }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/vault{ @@ -25398,10 +25187,6 @@ /turf/open/floor/plating, /area/engine/engineering) "bau" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/machinery/door/airlock/maintenance{ glass = 0; name = "Chief Engineer's Office Maintenance"; @@ -25715,18 +25500,14 @@ /turf/open/floor/plating, /area/maintenance/asmaint) "bbg" = ( -/obj/structure/cable/cyan{ - tag = "icon-1-2"; - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - tag = "icon-2-4"; - icon_state = "2-4" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/structure/cable/cyan{ + tag = "icon-1-4"; + icon_state = "1-4" + }, /turf/open/floor/plating, /area/maintenance/asmaint) "bbh" = ( @@ -25765,7 +25546,7 @@ dir = 4 }, /obj/structure/closet/wardrobe/chemistry_white, -/obj/effect/decal/cleanable/cobweb2, +/obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/plating, /area/maintenance/asmaint) "bbl" = ( @@ -26194,20 +25975,12 @@ /turf/open/floor/plasteel, /area/engine/break_room) "bcb" = ( -/obj/structure/cable/green{ - tag = "icon-1-4"; - icon_state = "1-4" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 }, /turf/open/floor/plating, /area/maintenance/aft) "bcc" = ( -/obj/structure/cable/green{ - tag = "icon-2-8"; - icon_state = "2-8" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 }, @@ -26447,10 +26220,6 @@ /area/maintenance/asmaint) "bcC" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/structure/cable/cyan{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /turf/open/floor/plating, /area/maintenance/asmaint) "bcD" = ( @@ -26577,7 +26346,7 @@ tag = "icon-1-2"; icon_state = "1-2" }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -26891,7 +26660,7 @@ tag = "icon-1-2"; icon_state = "1-2" }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/bot, /area/engine/break_room) @@ -27176,16 +26945,13 @@ /turf/open/floor/plating, /area/maintenance/asmaint) "bee" = ( -/obj/structure/cable/green{ - tag = "icon-4-8"; - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 }, -/obj/structure/cable/green{ - tag = "icon-1-4"; - icon_state = "1-4" +/turf/open/floor/plasteel/arrival{ + dir = 4 }, -/turf/open/floor/plating, -/area/maintenance/asmaint) +/area/hallway/secondary/entry) "bef" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -27355,6 +27121,10 @@ tag = "every single paper bin is edited to this" }, /obj/item/weapon/folder/white, +/obj/item/weapon/paper/morguereminder{ + pixel_x = 4; + pixel_y = 5 + }, /turf/open/floor/plasteel/black, /area/medical/morgue) "bev" = ( @@ -27494,15 +27264,12 @@ /turf/open/floor/plasteel, /area/engine/break_room) "beM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 }, -/obj/structure/cable/green{ - tag = "icon-1-4"; - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/maintenance/aft) +/turf/open/floor/plasteel, +/area/mining_construction) "beN" = ( /obj/effect/spawner/lootdrop{ loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); @@ -27512,20 +27279,12 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/structure/cable/green{ - tag = "icon-4-8"; - icon_state = "4-8" - }, /turf/open/floor/plating, /area/maintenance/aft) "beO" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/structure/cable/green{ - tag = "icon-4-8"; - icon_state = "4-8" - }, /turf/open/floor/plating{ broken = 1; icon_state = "platingdmg3" @@ -27536,10 +27295,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/structure/cable/green{ - tag = "icon-4-8"; - icon_state = "4-8" - }, /turf/open/floor/plating, /area/maintenance/aft) "beQ" = ( @@ -27550,17 +27305,9 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/structure/cable/green{ - tag = "icon-4-8"; - icon_state = "4-8" - }, /turf/open/floor/plating, /area/maintenance/aft) "beR" = ( -/obj/structure/cable/green{ - tag = "icon-4-8"; - icon_state = "4-8" - }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ tag = "icon-manifold-b-f (EAST)"; dir = 4 @@ -27571,16 +27318,13 @@ }, /area/hallway/secondary/entry) "beS" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, -/obj/structure/cable/green{ - tag = "icon-2-8"; - icon_state = "2-8" +/turf/open/floor/plasteel/warning{ + dir = 4 }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) +/area/mining_construction) "beT" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -27812,7 +27556,7 @@ /turf/open/floor/wood, /area/lawoffice) "bfp" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ tag = "icon-manifold-r-f (EAST)"; dir = 4 @@ -28806,10 +28550,6 @@ name = "maintenance access"; req_access_txt = "12" }, -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, /area/maintenance/aft) @@ -29474,21 +29214,16 @@ name = "Fore Port Hallway" }) "biO" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/poddoor/shutters{ + id = "aux_base_shutters"; + name = "Auxillary Base Shutters" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/yellow/corner{ - tag = "icon-yellowcorner (NORTH)"; - dir = 1 - }, -/area/hallway/primary/port{ - name = "Fore Port Hallway" - }) +/turf/open/floor/plasteel, +/area/mining_construction) "biP" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -30036,7 +29771,6 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/mob/living/simple_animal/mouse, /turf/open/floor/plating{ broken = 1; icon_state = "platingdmg3" @@ -30063,10 +29797,6 @@ codes_txt = "patrol;next_patrol=AIW"; location = "QM" }, -/obj/structure/cable/green{ - tag = "icon-2-4"; - icon_state = "2-4" - }, /turf/open/floor/plasteel, /area/hallway/primary/port{ name = "Fore Port Hallway" @@ -30259,21 +29989,16 @@ name = "Fore Port Hallway" }) "bjW" = ( -/obj/structure/cable/green{ - tag = "icon-4-8"; - icon_state = "4-8" +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 }, -/obj/structure/cable/green{ - tag = "icon-2-4"; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment{ dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/primary/port{ - name = "Fore Port Hallway" +/area/hallway/primary/aft{ + name = "Aft Port Hallway" }) "bjX" = ( /obj/structure/cable/green{ @@ -30368,19 +30093,17 @@ name = "Fore Port Hallway" }) "bkc" = ( -/obj/structure/cable/green{ - tag = "icon-4-8"; - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 }, /obj/structure/cable/green{ - tag = "icon-1-8"; - icon_state = "1-8" + tag = "icon-1-2"; + icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/port{ - name = "Fore Port Hallway" - }) +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/hallway/secondary/entry) "bkd" = ( /obj/machinery/door/firedoor, /obj/structure/cable/green{ @@ -30427,7 +30150,7 @@ tag = "icon-1-8"; icon_state = "1-8" }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=Security"; location = "EVA2" @@ -30554,10 +30277,6 @@ name = "Fore Starboard Hallway" }) "bkr" = ( -/obj/structure/cable/green{ - tag = "icon-4-8"; - icon_state = "4-8" - }, /obj/machinery/door/firedoor, /turf/open/floor/plasteel, /area/hallway/primary/fore{ @@ -30568,7 +30287,7 @@ tag = "icon-4-8"; icon_state = "4-8" }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/bot, /area/hallway/primary/fore{ name = "Fore Starboard Hallway" @@ -30642,10 +30361,6 @@ tag = "icon-4-8"; icon_state = "4-8" }, -/obj/structure/cable/green{ - tag = "icon-2-8"; - icon_state = "2-8" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -30727,10 +30442,6 @@ name = "Fore Port Hallway" }) "bkH" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/structure/disposalpipe/segment{ dir = 4; icon_state = "pipe-c" @@ -30973,19 +30684,17 @@ name = "Fore Port Hallway" }) "bla" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/arrival{ dir = 4 }, -/turf/open/floor/plasteel/green/corner, -/area/hallway/primary/port{ - name = "Fore Port Hallway" - }) +/area/hallway/secondary/entry) "blb" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/turf/open/floor/plasteel/green/side, +/turf/open/floor/plasteel/green/corner, /area/hallway/primary/port{ name = "Fore Port Hallway" }) @@ -31002,9 +30711,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/turf/open/floor/plasteel/green/corner{ - dir = 8 - }, +/turf/open/floor/plasteel/green/side, /area/hallway/primary/port{ name = "Fore Port Hallway" }) @@ -31050,14 +30757,17 @@ name = "Fore Port Hallway" }) "bli" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, /turf/open/floor/plasteel, -/area/hallway/primary/port{ - name = "Fore Port Hallway" +/area/hallway/primary/aft{ + name = "Aft Port Hallway" }) "blj" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, @@ -31073,7 +30783,6 @@ dir = 4 }, /obj/machinery/newscaster{ - hitstaken = 0; pixel_x = 0; pixel_y = -32; tag = "s" @@ -31658,10 +31367,6 @@ }, /area/security/transfer) "bmf" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -31723,11 +31428,28 @@ }, /area/security/transfer) "bmm" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s6"; - dir = 2 +/turf/open/floor/plasteel/yellow/side{ + dir = 1 }, -/area/shuttle/escape) +/obj/structure/rack{ + dir = 4 + }, +/obj/item/weapon/electronics/airlock, +/obj/item/weapon/electronics/airlock, +/obj/item/weapon/electronics/airlock, +/obj/item/weapon/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/device/assault_pod/mining, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (NORTH)"; + dir = 1 + }, +/area/mining_construction) "bmn" = ( /obj/structure/shuttle/engine/propulsion{ icon_state = "propulsion"; @@ -31736,11 +31458,24 @@ /turf/open/floor/plating/airless, /area/shuttle/escape) "bmo" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s10"; - dir = 2 +/turf/open/floor/plasteel/yellow/side{ + dir = 1 }, -/area/shuttle/escape) +/obj/structure/table, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (NORTH)"; + dir = 1 + }, +/area/mining_construction) "bmp" = ( /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, @@ -31757,10 +31492,6 @@ }) "bmr" = ( /obj/machinery/door/firedoor, -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/structure/disposalpipe/segment, /obj/machinery/door/airlock/glass{ name = "Escape Waiting Area" @@ -31896,10 +31627,6 @@ /obj/machinery/door/airlock/glass{ name = "Bar" }, -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/bar, /area/crew_quarters/bar) @@ -32188,12 +31915,6 @@ }, /area/security/brig) "bnr" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, /obj/machinery/door/airlock/maintenance{ name = "maintenance access"; req_access_txt = "2" @@ -32318,10 +32039,7 @@ }, /area/security/transfer) "bnA" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall13"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/escape) "bnB" = ( /obj/structure/shuttle/engine/heater{ @@ -32353,10 +32071,6 @@ /area/hallway/secondary/exit) "bnG" = ( /obj/machinery/door/firedoor, -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, /area/hallway/secondary/exit) @@ -32620,13 +32334,17 @@ /turf/open/floor/plasteel/bar, /area/crew_quarters/bar) "bos" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) "bot" = ( /obj/machinery/light{ dir = 1 @@ -33111,6 +32829,9 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/effect/landmark/start{ + name = "Security Officer" + }, /turf/open/floor/plasteel/darkred/side{ tag = "icon-darkred (NORTHEAST)"; dir = 5 @@ -33242,12 +32963,6 @@ /turf/open/floor/plasteel/black, /area/security/transfer) "bpE" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -33407,28 +33122,38 @@ dir = 4; icon_state = "sleeper-open" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "bpR" = ( -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "bpS" = ( /obj/structure/closet/emcloset, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "bpT" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall3"; - dir = 2 +/turf/open/floor/plasteel/yellow/side{ + dir = 1 }, -/area/shuttle/escape) +/obj/structure/table, +/obj/item/stack/sheet/plasteel{ + amount = 10 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (NORTH)"; + dir = 1 + }, +/area/mining_construction) "bpU" = ( /obj/structure/closet/crate, -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/shuttle/escape) "bpV" = ( /obj/structure/closet, -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/shuttle/escape) "bpW" = ( /turf/open/floor/plasteel/delivery, @@ -33486,10 +33211,6 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit) "bqc" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, /area/hallway/secondary/exit) @@ -33718,10 +33439,6 @@ /turf/open/floor/plasteel/bar, /area/crew_quarters/bar) "bqH" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -34434,22 +34151,15 @@ /turf/open/floor/plasteel/black, /area/security/transfer) "brO" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4"; - tag = "" - }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ tag = "icon-manifold-b-f (WEST)"; dir = 8 }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, /turf/open/floor/plasteel/darkred/side{ tag = "icon-darkred (SOUTHWEST)"; dir = 10 @@ -34614,10 +34324,10 @@ pixel_x = -27; pixel_y = 0 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "bsa" = ( -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/shuttle/escape) "bsb" = ( /turf/open/floor/plasteel/brown{ @@ -34695,10 +34405,6 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit) "bsl" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -34994,10 +34700,6 @@ /turf/open/floor/plasteel/bar, /area/crew_quarters/bar) "bsU" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ tag = "icon-manifold-r-f (WEST)"; dir = 8 @@ -35152,7 +34854,7 @@ d1 = 4; d2 = 8 }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/warning, /area/engine/gravity_generator) "btk" = ( @@ -35227,7 +34929,7 @@ /turf/open/floor/plasteel/black, /area/crew_quarters/heads) "btu" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -35390,7 +35092,6 @@ "btJ" = ( /obj/structure/closet/secure_closet/detective, /obj/machinery/newscaster{ - hitstaken = 0; pixel_x = 0; pixel_y = -32; tag = "s" @@ -35666,10 +35367,10 @@ pixel_y = 0; tag = "w" }, -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/shuttle/escape) "buf" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Emergency Shuttle Airlock" }, /turf/open/floor/plating, @@ -35745,7 +35446,6 @@ /area/hallway/secondary/exit) "bup" = ( /obj/machinery/newscaster{ - hitstaken = 0; pixel_x = -32; pixel_y = 0; tag = "w" @@ -35760,10 +35460,6 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit) "bur" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/components/unary/vent_scrubber{ dir = 4; @@ -36059,10 +35755,6 @@ /turf/open/floor/plasteel/bar, /area/crew_quarters/bar) "bva" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ tag = "icon-manifold-r-f (EAST)"; dir = 4 @@ -36228,33 +35920,43 @@ name = "Bridge Storage" }) "bvt" = ( -/turf/open/floor/plasteel/darkwarning{ - tag = "icon-warndark (EAST)"; - dir = 4 +/turf/open/floor/plasteel/yellow/side{ + dir = 1 }, -/area/bridge/meeting_room{ - name = "Bridge Storage" - }) +/obj/structure/table, +/obj/item/weapon/storage/box/lights/mixed, +/obj/item/weapon/pipe_dispenser, +/obj/machinery/button/door{ + id = "aux_base_shutters"; + name = "Public Shutters Control"; + pixel_x = 24; + pixel_y = 0; + req_access_txt = "0"; + req_one_access_txt = "32;47;48" + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (NORTH)"; + dir = 1 + }, +/area/mining_construction) "bvu" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/blue{ tag = "icon-1-2"; icon_state = "1-2" }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, +/turf/open/floor/plasteel/darkwarning/end, /area/bridge/meeting_room{ name = "Bridge Storage" }) "bvv" = ( -/turf/open/floor/plasteel/darkwarning{ - tag = "icon-warndark (WEST)"; - dir = 8 +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" }, -/area/bridge/meeting_room{ - name = "Bridge Storage" - }) +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) "bvw" = ( /obj/structure/closet/emcloset, /obj/machinery/airalarm{ @@ -36957,42 +36659,52 @@ /turf/open/floor/plating, /area/security/prison) "bwp" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall7"; - dir = 2 +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" }, -/area/shuttle/escape) +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/aft) "bwq" = ( /obj/machinery/door/airlock/glass{ name = "Emergency Shuttle Infirmary" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "bwr" = ( /obj/machinery/status_display, -/turf/closed/wall/shuttle{ - icon_state = "swall13"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/escape) "bws" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall12"; - dir = 2 - }, -/area/shuttle/escape) +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) "bwt" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Emergency Shuttle Cargo" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "bwu" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall11"; - dir = 2 +/obj/structure/grille/broken, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" }, -/area/shuttle/escape) +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) "bwv" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/sign/securearea{ @@ -37294,7 +37006,7 @@ /area/engine/gravity_generator) "bxj" = ( /turf/closed/wall/r_wall, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "bxk" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable/white{ @@ -37303,7 +37015,7 @@ tag = "icon-0-2" }, /turf/open/floor/plating, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "bxl" = ( /obj/structure/sign/securearea{ desc = "A warning sign which reads 'HIGH VOLTAGE'"; @@ -37311,7 +37023,7 @@ name = "HIGH VOLTAGE" }, /turf/closed/wall/r_wall, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "bxm" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -37403,10 +37115,7 @@ dir = 4; on = 1 }, -/turf/open/floor/plasteel/darkwarning/corner{ - tag = "icon-warndarkcorners (WEST)"; - dir = 8 - }, +/turf/open/floor/plasteel/black, /area/bridge/meeting_room{ name = "Bridge Storage" }) @@ -37419,10 +37128,7 @@ tag = "icon-1-2"; icon_state = "1-2" }, -/turf/open/floor/plasteel/darkwarning{ - tag = "icon-warndark (NORTH)"; - dir = 1 - }, +/turf/open/floor/plasteel/black, /area/bridge/meeting_room{ name = "Bridge Storage" }) @@ -37431,10 +37137,7 @@ dir = 2; on = 1 }, -/turf/open/floor/plasteel/darkwarning/corner{ - tag = "icon-warndarkcorners (EAST)"; - dir = 4 - }, +/turf/open/floor/plasteel/black, /area/bridge/meeting_room{ name = "Bridge Storage" }) @@ -37800,10 +37503,10 @@ pixel_y = 0; tag = "w" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "byr" = ( -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "bys" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -38232,7 +37935,7 @@ tag = "icon-vault (WEST)"; dir = 8 }, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "bzn" = ( /turf/open/floor/plasteel/darkblue/side{ tag = "icon-darkblue (EAST)"; @@ -38252,7 +37955,7 @@ tag = "icon-warningline (EAST)"; dir = 4 }, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "bzo" = ( /obj/machinery/computer/upload/ai, /obj/structure/window/reinforced{ @@ -38276,7 +37979,7 @@ tag = "icon-vault (WEST)"; dir = 8 }, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "bzp" = ( /turf/open/floor/plasteel/darkblue/side{ tag = "icon-darkblue (WEST)"; @@ -38296,7 +37999,7 @@ tag = "icon-warningline (WEST)"; dir = 8 }, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "bzq" = ( /obj/machinery/porta_turret/ai{ dir = 8 @@ -38309,7 +38012,7 @@ tag = "icon-vault (WEST)"; dir = 8 }, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "bzr" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -38402,7 +38105,6 @@ /obj/item/weapon/folder/blue, /obj/item/weapon/stamp/hop, /obj/machinery/newscaster{ - hitstaken = 0; pixel_x = 0; pixel_y = -32; tag = "s" @@ -38770,7 +38472,7 @@ /obj/structure/chair{ dir = 4 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "bAq" = ( /obj/structure/chair{ @@ -38779,7 +38481,7 @@ /obj/structure/window/reinforced{ dir = 4 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "bAr" = ( /obj/structure/chair{ @@ -38788,13 +38490,13 @@ /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "bAs" = ( /obj/structure/chair{ dir = 8 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "bAt" = ( /turf/open/floor/plasteel/escape{ @@ -38866,7 +38568,7 @@ /turf/open/floor/plasteel, /area/storage/eva) "bAD" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/bot, /area/storage/eva) "bAE" = ( @@ -39016,14 +38718,14 @@ tag = "icon-warndark (NORTHEAST)"; dir = 5 }, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "bAQ" = ( /obj/structure/sign/kiddieplaque{ pixel_x = -32; pixel_y = 32 }, /turf/open/floor/bluegrid, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "bAR" = ( /turf/open/floor/plasteel/darkblue/side{ tag = "icon-darkblue (EAST)"; @@ -39033,7 +38735,7 @@ tag = "icon-warningline (EAST)"; dir = 4 }, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "bAS" = ( /obj/structure/cable/white{ d1 = 1; @@ -39041,7 +38743,7 @@ icon_state = "1-2" }, /turf/open/floor/bluegrid, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "bAT" = ( /turf/open/floor/plasteel/darkblue/side{ tag = "icon-darkblue (WEST)"; @@ -39051,10 +38753,10 @@ tag = "icon-warningline (WEST)"; dir = 8 }, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "bAU" = ( /turf/open/floor/bluegrid, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "bAV" = ( /obj/machinery/airalarm{ pixel_y = 23 @@ -39078,7 +38780,7 @@ network = list("Sat") }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "bAW" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable/white{ @@ -39088,14 +38790,14 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "bAX" = ( /turf/closed/wall, -/area/turret_protected/ai_upload_foyer) +/area/ai_monitored/turret_protected/ai_upload_foyer) "bAY" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/closed/wall, -/area/turret_protected/ai_upload_foyer) +/area/ai_monitored/turret_protected/ai_upload_foyer) "bAZ" = ( /obj/structure/sign/securearea{ pixel_x = -32 @@ -39292,6 +38994,9 @@ tag = "" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/landmark/start{ + name = "Security Officer" + }, /turf/open/floor/plasteel/darkred/corner{ tag = "icon-darkredcorners (EAST)"; dir = 4 @@ -39335,6 +39040,9 @@ pixel_x = 0; tag = "" }, +/obj/effect/landmark/start{ + name = "Security Officer" + }, /turf/open/floor/plasteel/darkred/corner{ tag = "icon-darkredcorners (NORTH)"; dir = 1 @@ -39823,10 +39531,6 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit) "bCa" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/structure/chair/stool, /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=AftH"; @@ -40027,6 +39731,10 @@ dir = 2; on = 1 }, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, /turf/open/floor/plating, /area/maintenance/fsmaint) "bCA" = ( @@ -40119,7 +39827,7 @@ "bCK" = ( /obj/structure/table/wood, /obj/item/weapon/reagent_containers/food/drinks/shaker, -/obj/item/weapon/gun/projectile/revolver/doublebarrel, +/obj/item/weapon/gun/ballistic/revolver/doublebarrel, /obj/item/stack/sheet/metal{ amount = 50 }, @@ -40157,7 +39865,7 @@ icon_state = "0-4" }, /turf/open/floor/plating, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "bCP" = ( /obj/structure/table, /obj/item/weapon/aiModule/reset, @@ -40166,7 +39874,7 @@ icon_state = "2-8" }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "bCQ" = ( /turf/open/floor/plasteel/darkblue/side{ dir = 10; @@ -40180,7 +39888,7 @@ tag = "icon-warningline (SOUTHWEST)"; dir = 10 }, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "bCR" = ( /turf/open/floor/plasteel/darkblue/side{ tag = "icon-darkblue" @@ -40189,7 +39897,7 @@ dir = 4 }, /turf/open/floor/plasteel/warningline, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "bCS" = ( /turf/open/floor/plasteel/darkblue/side{ tag = "icon-darkblue" @@ -40203,7 +39911,7 @@ dir = 4 }, /turf/open/floor/plasteel/warningline, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "bCT" = ( /turf/open/floor/plasteel/darkblue/side{ tag = "icon-darkblue" @@ -40221,7 +39929,7 @@ dir = 4 }, /turf/open/floor/plasteel/warningline, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "bCU" = ( /turf/open/floor/plasteel/darkblue/side{ tag = "icon-darkblue" @@ -40237,7 +39945,7 @@ dir = 4 }, /turf/open/floor/plasteel/warningline, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "bCV" = ( /turf/open/floor/plasteel/darkblue/side{ tag = "icon-darkblue" @@ -40252,7 +39960,7 @@ pixel_y = 23 }, /turf/open/floor/plasteel/warningline, -/area/turret_protected/ai_upload_foyer) +/area/ai_monitored/turret_protected/ai_upload_foyer) "bCW" = ( /turf/open/floor/plasteel/darkblue/side{ tag = "icon-darkblue" @@ -40270,7 +39978,7 @@ start_active = 1 }, /turf/open/floor/plasteel/warningline, -/area/turret_protected/ai_upload_foyer) +/area/ai_monitored/turret_protected/ai_upload_foyer) "bCX" = ( /obj/machinery/status_display{ layer = 4; @@ -40419,17 +40127,13 @@ /turf/open/floor/plasteel/black, /area/bridge) "bDi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/green/corner{ + dir = 8 }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (EAST)"; - dir = 4 - }, -/area/bridge) +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) "bDj" = ( /obj/machinery/firealarm{ dir = 2; @@ -41030,7 +40734,7 @@ }, /area/hallway/secondary/exit) "bEi" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/bot, /area/hallway/secondary/exit) @@ -41053,14 +40757,6 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit) "bEm" = ( -/obj/structure/cable/green{ - tag = "icon-1-4"; - icon_state = "1-4" - }, -/obj/structure/cable/green{ - tag = "icon-2-4"; - icon_state = "2-4" - }, /obj/structure/chair/stool, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, @@ -41084,7 +40780,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit) "bEo" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/carpet, /area/library) @@ -41317,14 +41013,10 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/bar, /area/crew_quarters/bar) "bEO" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -41504,14 +41196,14 @@ tag = "icon-vault (WEST)"; dir = 8 }, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "bFg" = ( /obj/structure/cable/white{ tag = "icon-4-8"; icon_state = "4-8" }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "bFh" = ( /turf/open/floor/plasteel/darkblue/side{ tag = "icon-darkblue (EAST)"; @@ -41525,9 +41217,9 @@ tag = "icon-warningline (EAST)"; dir = 4 }, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "bFi" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/structure/cable/white{ tag = "icon-4-8"; icon_state = "4-8" @@ -41541,14 +41233,14 @@ icon_state = "2-4" }, /turf/open/floor/bluegrid, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "bFj" = ( /obj/structure/cable/white{ tag = "icon-4-8"; icon_state = "4-8" }, /turf/open/floor/bluegrid, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "bFk" = ( /obj/structure/cable/white{ tag = "icon-1-4"; @@ -41559,7 +41251,7 @@ icon_state = "4-8" }, /turf/open/floor/bluegrid, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "bFl" = ( /obj/structure/cable/white{ tag = "icon-4-8"; @@ -41574,7 +41266,7 @@ icon_state = "1-4" }, /turf/open/floor/bluegrid, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "bFm" = ( /obj/structure/cable/white{ tag = "icon-4-8"; @@ -41591,7 +41283,7 @@ tag = "icon-warndark (WEST)"; dir = 8 }, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "bFn" = ( /obj/structure/cable/white{ tag = "icon-4-8"; @@ -41601,18 +41293,18 @@ tag = "icon-2-4"; icon_state = "2-4" }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/vault{ dir = 8 }, -/area/turret_protected/ai_upload_foyer) +/area/ai_monitored/turret_protected/ai_upload_foyer) "bFo" = ( /obj/structure/cable/white{ tag = "icon-4-8"; icon_state = "4-8" }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai_upload_foyer) +/area/ai_monitored/turret_protected/ai_upload_foyer) "bFp" = ( /obj/structure/cable/white{ tag = "icon-4-8"; @@ -41629,7 +41321,7 @@ tag = "icon-warndark (EAST)"; dir = 4 }, -/area/turret_protected/ai_upload_foyer) +/area/ai_monitored/turret_protected/ai_upload_foyer) "bFq" = ( /obj/structure/cable/green{ tag = "icon-4-8"; @@ -41757,15 +41449,17 @@ /turf/open/floor/plasteel/black, /area/bridge) "bFB" = ( -/obj/structure/cable/blue{ - tag = "icon-4-8"; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (EAST)"; +/turf/open/floor/plasteel/brown/corner, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/area/bridge) +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warningline/corner, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) "bFC" = ( /obj/structure/cable/blue{ tag = "icon-4-8"; @@ -41874,7 +41568,7 @@ tag = "icon-4-8"; icon_state = "4-8" }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/black, /area/bridge) "bFL" = ( @@ -41972,6 +41666,9 @@ pixel_x = 0; tag = "" }, +/obj/effect/landmark/start{ + name = "Security Officer" + }, /turf/open/floor/plasteel/black, /area/security/main) "bFQ" = ( @@ -42095,7 +41792,7 @@ icon_state = "1-2"; pixel_y = 0 }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment, /mob/living/simple_animal/bot/secbot/beepsky{ @@ -42201,7 +41898,7 @@ pixel_x = 0; tag = "" }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/vault{ dir = 8 @@ -42547,7 +42244,7 @@ pixel_x = 0; tag = "" }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 }, @@ -42675,10 +42372,6 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit) "bGJ" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/structure/chair/stool, /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=CHE"; @@ -42713,7 +42406,7 @@ /obj/structure/bookcase{ name = "Forbidden Knowledge" }, -/turf/open/floor/plasteel/cult, +/turf/open/floor/engine/cult, /area/library) "bGN" = ( /obj/structure/table/wood, @@ -42731,7 +42424,7 @@ pixel_y = 20; tag = "NORTH" }, -/turf/open/floor/plasteel/cult, +/turf/open/floor/engine/cult, /area/library) "bGO" = ( /obj/structure/table/wood, @@ -42741,7 +42434,7 @@ tag = "every single paper bin is edited to this" }, /obj/item/weapon/pen/invisible, -/turf/open/floor/plasteel/cult, +/turf/open/floor/engine/cult, /area/library) "bGP" = ( /obj/structure/table, @@ -42879,10 +42572,6 @@ /turf/open/floor/plasteel/bar, /area/crew_quarters/bar) "bHe" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, /obj/structure/chair{ dir = 8 @@ -42994,7 +42683,7 @@ icon_state = "1-8" }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "bHr" = ( /turf/open/floor/plasteel/darkblue/side{ dir = 9; @@ -43008,7 +42697,7 @@ tag = "icon-warningline (NORTHWEST)"; dir = 9 }, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "bHs" = ( /turf/open/floor/plasteel/darkblue/side{ tag = "icon-darkblue (NORTH)"; @@ -43021,7 +42710,7 @@ tag = "icon-warningline (NORTH)"; dir = 1 }, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "bHt" = ( /turf/open/floor/plasteel/darkblue/side{ tag = "icon-darkblue (NORTH)"; @@ -43038,7 +42727,7 @@ tag = "icon-warningline (NORTH)"; dir = 1 }, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "bHu" = ( /turf/open/floor/plasteel/darkblue/side{ tag = "icon-darkblue (NORTH)"; @@ -43060,7 +42749,7 @@ tag = "icon-warningline (NORTH)"; dir = 1 }, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "bHv" = ( /turf/open/floor/plasteel/darkblue/side{ tag = "icon-darkblue (NORTH)"; @@ -43084,7 +42773,7 @@ tag = "icon-warningline (NORTH)"; dir = 1 }, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "bHw" = ( /turf/open/floor/plasteel/darkblue/side{ tag = "icon-darkblue (NORTH)"; @@ -43106,7 +42795,7 @@ tag = "icon-warningline (NORTH)"; dir = 1 }, -/area/turret_protected/ai_upload_foyer) +/area/ai_monitored/turret_protected/ai_upload_foyer) "bHx" = ( /turf/open/floor/plasteel/darkblue/side{ tag = "icon-darkblue (NORTH)"; @@ -43123,7 +42812,7 @@ tag = "icon-warningline (NORTH)"; dir = 1 }, -/area/turret_protected/ai_upload_foyer) +/area/ai_monitored/turret_protected/ai_upload_foyer) "bHy" = ( /obj/machinery/ai_status_display{ pixel_x = -32 @@ -43262,17 +42951,24 @@ /turf/open/floor/plasteel/black, /area/bridge) "bHJ" = ( +/turf/open/floor/plasteel/brown/corner{ + tag = "icon-browncorner (WEST)"; + dir = 8 + }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (EAST)"; - dir = 4 +/turf/open/floor/plasteel/warningline/corner{ + tag = "icon-warninglinecorners (WEST)"; + icon_state = "warninglinecorners"; + dir = 8 }, -/area/bridge) +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) "bHK" = ( /obj/machinery/airalarm{ dir = 1; @@ -43501,6 +43197,9 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, +/obj/effect/landmark/start{ + name = "Security Officer" + }, /turf/open/floor/plasteel/black, /area/security/main) "bIg" = ( @@ -43925,19 +43624,19 @@ /turf/open/floor/wood, /area/library) "bIO" = ( -/turf/open/floor/plasteel/cult, +/turf/open/floor/engine/cult, /area/library) "bIP" = ( /obj/structure/chair/comfy/brown{ dir = 1 }, -/turf/open/floor/plasteel/cult, +/turf/open/floor/engine/cult, /area/library) "bIQ" = ( -/obj/structure/cult/tome, +/obj/structure/destructible/cult/tome, /obj/item/clothing/under/suit_jacket/red, /obj/item/weapon/book/codex_gigas, -/turf/open/floor/plasteel/cult, +/turf/open/floor/engine/cult, /area/library) "bIR" = ( /obj/structure/filingcabinet/chestdrawer/wheeled, @@ -43948,7 +43647,6 @@ dir = 1; icon_state = "pipe-c" }, -/mob/living/simple_animal/mouse, /turf/open/floor/plating, /area/maintenance/fpmaint) "bIT" = ( @@ -43977,6 +43675,10 @@ dir = 8 }, /obj/structure/disposalpipe/segment, +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, /turf/open/floor/plating, /area/maintenance/fpmaint) "bIV" = ( @@ -44193,7 +43895,7 @@ tag = "icon-warndark (SOUTHEAST)"; dir = 6 }, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "bJv" = ( /obj/structure/table, /obj/item/weapon/folder/blue, @@ -44208,22 +43910,22 @@ start_active = 1 }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "bJw" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable/white, /turf/open/floor/plating, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "bJx" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable/white, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "bJy" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall, -/area/turret_protected/ai_upload_foyer) +/area/ai_monitored/turret_protected/ai_upload_foyer) "bJz" = ( /obj/structure/cable/green{ tag = "icon-0-4"; @@ -44655,10 +44357,10 @@ pixel_y = -30; tag = "s" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "bKh" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Emergency Shuttle Airlock" }, /obj/docking_port/mobile/emergency{ @@ -44723,10 +44425,6 @@ }, /area/hallway/secondary/exit) "bKo" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/structure/disposalpipe/junction{ icon_state = "pipe-j2"; dir = 2 @@ -44765,7 +44463,7 @@ name = "Private Study"; req_access_txt = "37" }, -/turf/open/floor/plasteel/cult, +/turf/open/floor/engine/cult, /area/library) "bKs" = ( /obj/structure/cable/green{ @@ -44990,7 +44688,7 @@ tag = "icon-vault (WEST)"; dir = 8 }, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "bKR" = ( /turf/open/floor/plasteel/darkblue/side{ tag = "icon-darkblue (EAST)"; @@ -45010,7 +44708,7 @@ tag = "icon-warningline (EAST)"; dir = 4 }, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "bKS" = ( /obj/machinery/computer/upload/borg, /obj/structure/window/reinforced{ @@ -45028,7 +44726,7 @@ tag = "icon-vault (WEST)"; dir = 8 }, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "bKT" = ( /turf/open/floor/plasteel/darkblue/side{ tag = "icon-darkblue (WEST)"; @@ -45048,7 +44746,7 @@ tag = "icon-warningline (WEST)"; dir = 8 }, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "bKU" = ( /obj/machinery/porta_turret/ai{ dir = 8 @@ -45061,7 +44759,7 @@ tag = "icon-vault (WEST)"; dir = 8 }, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "bKV" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -45266,7 +44964,6 @@ /area/crew_quarters/captain) "bLr" = ( /obj/machinery/newscaster{ - hitstaken = 0; pixel_x = -32; pixel_y = 0; tag = "w" @@ -45385,11 +45082,11 @@ /obj/item/weapon/storage/box/rubbershot, /obj/item/weapon/storage/box/rubbershot, /obj/item/weapon/storage/box/rubbershot, -/obj/item/weapon/gun/projectile/shotgun/riot{ +/obj/item/weapon/gun/ballistic/shotgun/riot{ pixel_x = 3; pixel_y = 3 }, -/obj/item/weapon/gun/projectile/shotgun/riot, +/obj/item/weapon/gun/ballistic/shotgun/riot, /turf/open/floor/plasteel/vault{ tag = "icon-vault (WEST)"; dir = 8 @@ -45400,6 +45097,7 @@ /obj/item/weapon/gun/energy/ionrifle{ pin = /obj/item/device/firing_pin }, +/obj/item/weapon/gun/energy/temperature/security, /obj/item/clothing/suit/armor/laserproof, /obj/item/key/security, /turf/open/floor/plasteel/vault{ @@ -45662,13 +45360,10 @@ /area/security/prison) "bLZ" = ( /obj/structure/table, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "bMa" = ( -/turf/closed/wall/shuttle{ - icon_state = "swallc2"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/shuttle/escape) "bMb" = ( /obj/machinery/door/firedoor, @@ -45700,10 +45395,6 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit) "bMf" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/machinery/atmospherics/components/unary/vent_pump{ dir = 8; layer = 2.4; @@ -46087,7 +45778,18 @@ }, /area/bridge) "bNd" = ( -/turf/open/floor/plasteel/darkwarning, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 8; + name = "Autoname APC West"; + pixel_x = -25; + pixel_y = 0 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plasteel/black, /area/security/main) "bNe" = ( /obj/machinery/computer/secure_data, @@ -46315,7 +46017,7 @@ icon_state = "1-2"; pixel_y = 0 }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/structure/disposalpipe/segment{ dir = 8; icon_state = "pipe-c" @@ -46426,17 +46128,17 @@ /obj/structure/chair{ dir = 1 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "bNI" = ( /obj/structure/chair, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) "bNJ" = ( -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) "bNK" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Emergency Shuttle Airlock"; req_access_txt = "2" }, @@ -46517,10 +46219,6 @@ }, /area/hallway/secondary/exit) "bNT" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -46576,6 +46274,10 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, /turf/open/floor/plating, /area/maintenance/fpmaint) "bOc" = ( @@ -47046,40 +46748,53 @@ /turf/open/floor/plasteel/black, /area/bridge) "bPa" = ( -/obj/structure/plasticflaps/mining{ - opacity = 1 +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" }, -/obj/structure/window/reinforced{ - dir = 1; - pixel_y = 0 +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/grille, /turf/open/floor/plating, -/area/maintenance/fore) +/area/maintenance/asmaint) "bPb" = ( -/obj/structure/plasticflaps/mining{ - opacity = 1 - }, /obj/machinery/navbeacon{ codes_txt = "delivery;dir=4"; dir = 4; freq = 1400; location = "Security" }, +/obj/structure/plasticflaps{ + opacity = 1 + }, /turf/open/floor/plasteel/vault{ dir = 8 }, /area/security/main) "bPc" = ( -/turf/open/floor/plasteel/vault{ - dir = 5 +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" }, +/turf/open/floor/plasteel/black, /area/security/main) "bPd" = ( -/turf/open/floor/plasteel/darkwarning{ - tag = "icon-warndark (WEST)"; - dir = 8 +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" }, -/area/security/main) +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/asmaint) "bPe" = ( /obj/structure/chair/office/dark{ dir = 1 @@ -47141,12 +46856,12 @@ /area/security/armory) "bPk" = ( /obj/structure/rack, -/obj/item/weapon/gun/energy/gun/advtaser{ +/obj/item/weapon/gun/energy/e_gun/advtaser{ pixel_x = -3; pixel_y = 3 }, -/obj/item/weapon/gun/energy/gun/advtaser, -/obj/item/weapon/gun/energy/gun/advtaser{ +/obj/item/weapon/gun/energy/e_gun/advtaser, +/obj/item/weapon/gun/energy/e_gun/advtaser{ pixel_x = 3; pixel_y = -3 }, @@ -47179,12 +46894,12 @@ /area/security/armory) "bPm" = ( /obj/structure/rack, -/obj/item/weapon/gun/energy/gun{ +/obj/item/weapon/gun/energy/e_gun{ pixel_x = -3; pixel_y = 3 }, -/obj/item/weapon/gun/energy/gun, -/obj/item/weapon/gun/energy/gun{ +/obj/item/weapon/gun/energy/e_gun, +/obj/item/weapon/gun/energy/e_gun{ pixel_x = 3; pixel_y = -3 }, @@ -47434,7 +47149,7 @@ name = "Emergency Shuttle Brig"; req_access_txt = "2" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "bPH" = ( /obj/machinery/flasher{ @@ -47447,7 +47162,7 @@ pixel_x = 24; pixel_y = 6 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) "bPI" = ( /turf/open/floor/plasteel/darkred/side{ @@ -48018,32 +47733,19 @@ tag = "" }, /obj/structure/cable{ - d1 = 2; + d1 = 1; d2 = 8; - icon_state = "2-8"; - tag = "" - }, -/turf/open/floor/plasteel/darkwarning{ - tag = "icon-warndark (NORTH)"; - dir = 1 + icon_state = "1-8" }, +/turf/open/floor/plasteel/black, /area/security/main) "bQU" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" - }, -/turf/open/floor/plasteel/darkwarning/corner{ - tag = "icon-warndarkcorners (EAST)"; - dir = 4 - }, -/area/security/main) +/turf/open/floor/plating, +/area/maintenance/asmaint) "bQV" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/structure/cable{ @@ -48289,7 +47991,7 @@ pixel_y = 3 }, /obj/item/weapon/crowbar, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "bRu" = ( /obj/machinery/flasher{ @@ -48297,13 +47999,13 @@ pixel_x = -6; pixel_y = -24 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "bRv" = ( /obj/structure/chair{ dir = 1 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) "bRw" = ( /obj/structure/chair{ @@ -48743,8 +48445,9 @@ pixel_y = 24; req_access_txt = "17" }, -/turf/open/floor/plasteel/darkwarning{ - tag = "icon-warndark (EAST)"; +/turf/open/floor/plasteel/darkwarning/side{ + tag = "icon-black_warn_side (EAST)"; + icon_state = "black_warn_side"; dir = 4 }, /area/teleporter) @@ -48759,7 +48462,7 @@ tag = "icon-2-4"; icon_state = "2-4" }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -48776,10 +48479,6 @@ /turf/open/floor/plasteel/black, /area/teleporter) "bSr" = ( -/obj/structure/cable/blue{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/structure/cable/blue{ tag = "icon-1-8"; icon_state = "1-8" @@ -48812,12 +48511,13 @@ /area/crew_quarters/captain) "bSu" = ( /obj/structure/mirror{ - pixel_y = 28 + pixel_y = -28 }, /obj/item/weapon/soap/deluxe, /obj/machinery/shower{ - dir = 8 + pixel_y = 12 }, +/obj/structure/curtain, /turf/open/floor/plasteel/freezer, /area/crew_quarters/captain) "bSv" = ( @@ -48846,7 +48546,7 @@ tag = "icon-1-2"; icon_state = "1-2" }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/wood, /area/crew_quarters/captain) "bSz" = ( @@ -48879,24 +48579,24 @@ /turf/open/floor/plating, /area/maintenance/fore) "bSC" = ( +/obj/structure/grille/broken, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/turf/closed/wall/r_wall, -/area/security/main) +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/asmaint) "bSD" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/power/apc{ - auto_name = 1; - dir = 2; - name = "Autoname APC South"; - pixel_x = 1; - pixel_y = -24 +/turf/open/floor/plasteel/darkwarning/end{ + tag = "icon-black_warn_end (EAST)"; + icon_state = "black_warn_end"; + dir = 4 }, -/obj/structure/cable, -/turf/open/floor/plasteel/black, /area/security/main) "bSE" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -49064,6 +48764,8 @@ pixel_y = -24 }, /obj/machinery/light, +/obj/item/weapon/gun/energy/e_gun/dragnet, +/obj/item/weapon/gun/energy/e_gun/dragnet, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -49233,17 +48935,34 @@ /turf/open/floor/plasteel/showroomfloor, /area/security/prison) "bTi" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s5"; - dir = 2 +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 }, -/area/shuttle/escape) +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) "bTj" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall14"; - dir = 2 +/obj/machinery/vending/medical{ + pixel_x = -2 }, -/area/shuttle/escape) +/obj/machinery/requests_console{ + announcementConsole = 0; + department = "Medbay"; + departmentType = 1; + name = "Medbay RC"; + pixel_x = -30; + pixel_y = 0; + pixel_z = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/exam_room) "bTk" = ( /obj/machinery/status_display, /turf/closed/wall/shuttle{ @@ -49256,14 +48975,13 @@ name = "Emergency Shuttle Cockpit"; req_access_txt = "19" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "bTm" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s9"; - dir = 2 - }, -/area/shuttle/escape) +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) "bTn" = ( /obj/structure/table/wood, /obj/item/weapon/paper, @@ -49452,10 +49170,6 @@ /turf/open/floor/plasteel/bar, /area/crew_quarters/bar) "bTK" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment{ dir = 4; @@ -49643,10 +49357,6 @@ }, /area/teleporter) "bUi" = ( -/obj/structure/cable/blue{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /turf/open/floor/plasteel/darkblue/side{ tag = "icon-darkblue" }, @@ -49823,13 +49533,13 @@ /area/security/prison) "bUy" = ( /obj/machinery/computer/communications, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "bUz" = ( /obj/structure/chair{ dir = 8 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "bUA" = ( /obj/machinery/button/flasher{ @@ -49837,7 +49547,7 @@ pixel_x = -6; pixel_y = 24 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "bUB" = ( /obj/item/device/radio/intercom{ @@ -49845,7 +49555,7 @@ pixel_x = 0; pixel_y = 24 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "bUC" = ( /obj/structure/chair{ @@ -49855,11 +49565,11 @@ pixel_x = -5; pixel_y = 30 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "bUD" = ( /obj/machinery/computer/crew, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "bUE" = ( /obj/effect/spawner/structure/window/reinforced, @@ -49912,10 +49622,6 @@ }) "bUL" = ( /obj/machinery/door/firedoor, -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/structure/disposalpipe/segment, /obj/machinery/door/airlock/glass{ name = "Escape Waiting Area" @@ -49941,6 +49647,10 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, /turf/open/floor/plating, /area/maintenance/fpmaint) "bUO" = ( @@ -50048,10 +49758,6 @@ /obj/machinery/door/airlock/glass{ name = "Bar" }, -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/bar, @@ -50151,10 +49857,6 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "bVk" = ( -/obj/structure/cable/blue{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/command{ name = "Teleport Access"; @@ -50263,42 +49965,36 @@ /turf/open/floor/plating, /area/security/prison) "bVy" = ( -/turf/open/space, /obj/structure/shuttle/engine/propulsion/burst{ dir = 4 }, -/turf/closed/wall/shuttle{ - icon_state = "swall_f6"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/pod_3) "bVz" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall12"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/pod_3) "bVA" = ( -/turf/open/space, -/turf/closed/wall/shuttle{ - dir = 2; - icon_state = "swall_f10"; - layer = 2 +/obj/structure/cable/yellow{ + tag = "icon-2-6"; + icon_state = "2-6"; + d1 = 4; + d2 = 8 }, -/area/shuttle/pod_3) +/turf/open/floor/plating/airless, +/area/engine/engineering) "bVB" = ( /obj/machinery/computer/security, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "bVC" = ( /obj/structure/chair{ dir = 4 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "bVD" = ( /obj/machinery/computer/atmos_alert, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "bVE" = ( /obj/structure/table/glass, @@ -50365,10 +50061,6 @@ name = "Aft Port Hallway" }) "bVK" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -50505,6 +50197,10 @@ "bVV" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/disposalpipe/segment, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, /turf/open/floor/plasteel, /area/hallway/primary/aft{ name = "Aft Port Hallway" @@ -50668,10 +50364,6 @@ name = "Aft Port Hallway" }) "bWj" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -50919,10 +50611,6 @@ }, /area/hallway/primary/central) "bWC" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -51122,7 +50810,7 @@ /turf/open/floor/plating, /area/security/prison) "bWR" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Escape Pod Airlock" }, /obj/docking_port/mobile/pod{ @@ -51130,7 +50818,7 @@ id = "pod3"; name = "escape pod 3" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/pod_3) "bWS" = ( /obj/structure/chair{ @@ -51143,7 +50831,7 @@ pixel_x = 6; pixel_y = -26 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/pod_3) "bWT" = ( /obj/structure/chair{ @@ -51160,7 +50848,7 @@ possible_destinations = "pod_asteroid3"; shuttleId = "pod3" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/pod_3) "bWU" = ( /obj/structure/grille, @@ -51176,10 +50864,8 @@ /turf/open/space, /area/space) "bWW" = ( -/turf/open/floor/plasteel/shuttle/white, -/turf/closed/wall/shuttle/interior{ - icon_state = "swall_f10" - }, +/turf/open/floor/mineral/titanium, +/turf/closed/wall/mineral/titanium/interior, /area/shuttle/escape) "bWX" = ( /obj/structure/table, @@ -51188,27 +50874,33 @@ pixel_y = 3 }, /obj/item/weapon/crowbar, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "bWY" = ( /obj/structure/chair, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "bWZ" = ( /obj/machinery/computer/emergency_shuttle, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "bXa" = ( /obj/structure/table, /obj/item/weapon/storage/firstaid/fire, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "bXb" = ( -/turf/open/floor/plasteel/shuttle/white, -/turf/closed/wall/shuttle/interior{ - icon_state = "swall_f6" +/obj/structure/cable/green{ + tag = "icon-4-10"; + icon_state = "4-10" }, -/area/shuttle/escape) +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "bXc" = ( /obj/structure/table/glass, /obj/item/weapon/reagent_containers/food/snacks/grown/poppy, @@ -51262,10 +50954,6 @@ name = "Aft Port Hallway" }) "bXg" = ( -/obj/structure/cable/green{ - tag = "icon-1-4"; - icon_state = "1-4" - }, /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=HOP"; location = "CHE" @@ -51317,10 +51005,6 @@ name = "Aft Port Hallway" }) "bXk" = ( -/obj/structure/cable/green{ - tag = "icon-4-8"; - icon_state = "4-8" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/sortjunction{ dir = 4; @@ -51366,10 +51050,6 @@ name = "Aft Port Hallway" }) "bXn" = ( -/obj/structure/cable/green{ - tag = "icon-4-8"; - icon_state = "4-8" - }, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -51395,24 +51075,24 @@ name = "Aft Port Hallway" }) "bXp" = ( -/obj/structure/cable/green{ - tag = "icon-4-8"; - icon_state = "4-8" - }, /obj/structure/disposalpipe/sortjunction{ dir = 4; icon_state = "pipe-j2s"; sortType = 16 }, +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, /turf/open/floor/plasteel, /area/hallway/primary/aft{ name = "Aft Port Hallway" }) "bXq" = ( -/obj/structure/cable/green{ - tag = "icon-4-8"; - icon_state = "4-8" - }, /obj/structure/cable/green{ tag = "icon-1-4"; icon_state = "1-4" @@ -51420,30 +51100,39 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, /turf/open/floor/plasteel, /area/hallway/primary/aft{ name = "Aft Port Hallway" }) "bXr" = ( -/obj/structure/cable/green{ - tag = "icon-4-8"; - icon_state = "4-8" - }, -/obj/structure/cable/green{ - tag = "icon-2-4"; - icon_state = "2-4" - }, /obj/structure/disposalpipe/junction{ tag = "icon-pipe-j2 (NORTH)"; icon_state = "pipe-j2"; dir = 1 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, /turf/open/floor/plasteel, /area/hallway/primary/aft{ name = "Aft Port Hallway" }) "bXs" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, /obj/structure/cable/green{ tag = "icon-4-8"; icon_state = "4-8" @@ -51453,43 +51142,26 @@ name = "Aft Port Hallway" }) "bXt" = ( -/obj/structure/cable/green{ - tag = "icon-4-8"; - icon_state = "4-8" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/hallway/primary/aft{ name = "Aft Port Hallway" }) "bXu" = ( -/obj/structure/cable/green{ - tag = "icon-4-8"; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - layer = 2.4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, /obj/structure/disposalpipe/segment{ dir = 1; icon_state = "pipe-c" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 5 +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/hallway/primary/aft{ name = "Aft Port Hallway" }) "bXv" = ( -/obj/structure/cable/green{ - tag = "icon-4-8"; - icon_state = "4-8" - }, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -51501,30 +51173,18 @@ name = "Aft Port Hallway" }) "bXw" = ( -/obj/structure/cable/green{ - tag = "icon-4-8"; - icon_state = "4-8" - }, -/obj/structure/cable/green{ - tag = "icon-2-4"; - icon_state = "2-4" - }, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, /turf/open/floor/plasteel, /area/hallway/primary/aft{ name = "Aft Port Hallway" }) "bXx" = ( -/obj/structure/cable/green{ - tag = "icon-4-8"; - icon_state = "4-8" - }, -/obj/structure/cable/green{ - tag = "icon-1-4"; - icon_state = "1-4" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/junction{ icon_state = "pipe-j2"; @@ -51535,10 +51195,6 @@ name = "Aft Port Hallway" }) "bXy" = ( -/obj/structure/cable/green{ - tag = "icon-4-8"; - icon_state = "4-8" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/sortjunction{ dir = 4; @@ -51550,14 +51206,14 @@ name = "Aft Port Hallway" }) "bXz" = ( -/obj/structure/cable/green{ - tag = "icon-4-8"; - icon_state = "4-8" - }, /obj/structure/disposalpipe/junction{ icon_state = "pipe-j1"; dir = 4 }, +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, /turf/open/floor/plasteel, /area/hallway/primary/aft{ name = "Aft Port Hallway" @@ -51595,10 +51251,6 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "bXC" = ( -/obj/structure/cable/green{ - tag = "icon-4-8"; - icon_state = "4-8" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment{ dir = 2; @@ -51706,10 +51358,6 @@ tag = "icon-4-8"; icon_state = "4-8" }, -/obj/structure/cable/green{ - tag = "icon-1-8"; - icon_state = "1-8" - }, /obj/structure/disposalpipe/segment{ dir = 4; icon_state = "pipe-c" @@ -52022,22 +51670,31 @@ /turf/open/floor/plating, /area/security/prison) "bYh" = ( -/turf/open/space, -/obj/structure/shuttle/engine/propulsion/burst{ - dir = 4 +/obj/machinery/door/airlock/external{ + name = "Engineering External Access"; + req_access = null; + req_access_txt = "10;13" }, -/turf/closed/wall/shuttle{ - icon_state = "swall_f5"; - dir = 2 +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" }, -/area/shuttle/pod_3) +/obj/structure/cable/yellow{ + tag = "icon-5-10"; + icon_state = "5-10"; + d1 = 4; + d2 = 8 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "bYi" = ( -/turf/open/space, -/turf/closed/wall/shuttle{ - icon_state = "swall_f9"; - dir = 2 +/obj/structure/grille, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" }, -/area/shuttle/pod_3) +/turf/open/floor/plating/airless, +/area/engine/engineering) "bYj" = ( /obj/structure/table/glass, /obj/item/weapon/reagent_containers/food/snacks/grown/poppy, @@ -52294,14 +51951,15 @@ name = "Aft Port Hallway" }) "bYJ" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/plasteel/neutral/side, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, /area/hallway/primary/aft{ name = "Aft Port Hallway" }) @@ -52379,6 +52037,10 @@ dir = 1 }, /obj/structure/disposalpipe/segment, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, /turf/open/floor/plasteel, /area/hallway/primary/aft{ name = "Aft Port Hallway" @@ -52595,13 +52257,14 @@ name = "Aft Starboard Hallway" }) "bZn" = ( +/turf/open/floor/plasteel/brown, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/plasteel/warning, +/turf/open/floor/plasteel/warningline, /area/hallway/primary/starboard{ name = "Aft Starboard Hallway" }) @@ -52849,7 +52512,7 @@ /turf/open/floor/plasteel/black, /area/chapel/main) "bZJ" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/black, /area/chapel/main) "bZK" = ( @@ -53010,10 +52673,6 @@ /turf/open/floor/plasteel, /area/crew_quarters/sleep) "cac" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/crew_quarters/sleep) @@ -53046,6 +52705,10 @@ /obj/machinery/door/airlock/maintenance, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, /turf/open/floor/plating, /area/maintenance/asmaint2) "cai" = ( @@ -53690,10 +53353,6 @@ /turf/open/floor/plasteel, /area/crew_quarters/sleep) "cbI" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -53776,6 +53435,10 @@ "cbS" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, /turf/open/floor/plating, /area/maintenance/asmaint2) "cbT" = ( @@ -54520,11 +54183,7 @@ /turf/open/floor/plasteel, /area/crew_quarters/sleep) "cdE" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -55352,7 +55011,7 @@ /turf/open/floor/plasteel/delivery, /area/storage/primary) "cfv" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel, /area/storage/primary) "cfw" = ( @@ -55387,10 +55046,6 @@ pixel_y = 8 }, /obj/item/device/paicard, -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /turf/open/floor/plasteel, /area/crew_quarters/sleep) "cfA" = ( @@ -55565,7 +55220,7 @@ /turf/open/floor/plasteel/white, /area/assembly/robotics) "cfS" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/white, /area/assembly/robotics) "cfT" = ( @@ -55661,7 +55316,7 @@ /turf/open/floor/plasteel, /area/quartermaster/office) "cge" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/bot, /area/quartermaster/office) "cgf" = ( @@ -56106,10 +55761,6 @@ pixel_x = 2 }, /obj/item/weapon/coin/silver, -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -56388,7 +56039,7 @@ /turf/open/floor/bluegrid, /area/assembly/chargebay) "chA" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/structure/cable/pink{ tag = "icon-1-4"; icon_state = "1-4" @@ -57050,10 +56701,6 @@ "ciP" = ( /obj/structure/table/wood, /obj/item/weapon/storage/firstaid/regular, -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -57317,7 +56964,7 @@ tag = "icon-1-8"; icon_state = "1-8" }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/vault, /area/security/nuke_storage) "cjr" = ( @@ -57489,10 +57136,6 @@ /turf/open/floor/plating, /area/maintenance/apmaint) "cjJ" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/structure/cable/green{ tag = "icon-1-4"; icon_state = "1-4" @@ -57897,10 +57540,6 @@ /obj/structure/table/wood, /obj/item/device/instrument/guitar, /obj/item/device/instrument/violin, -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /turf/open/floor/plasteel, /area/crew_quarters/sleep) "ckB" = ( @@ -57962,7 +57601,7 @@ /turf/open/floor/plasteel/white, /area/toxins/lab) "ckJ" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -58376,10 +58015,6 @@ /turf/open/floor/plating, /area/maintenance/apmaint) "clx" = ( -/obj/structure/cable/orange{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -58809,17 +58444,21 @@ dir = 4; icon_state = "pipe-c" }, +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, /turf/open/floor/plating, /area/maintenance/asmaint2) "cmr" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, +/obj/machinery/door/firedoor, /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) "cms" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 @@ -58828,6 +58467,10 @@ dir = 8; icon_state = "pipe-c" }, +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, /turf/open/floor/plating, /area/maintenance/asmaint2) "cmt" = ( @@ -59351,16 +58994,12 @@ /turf/open/floor/plating, /area/maintenance/apmaint) "cnm" = ( -/obj/structure/cable/orange{ - tag = "icon-1-2"; - icon_state = "1-2" - }, -/obj/structure/cable/orange{ - tag = "icon-1-8"; - icon_state = "1-8" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment, +/obj/structure/cable/orange{ + tag = "icon-2-8"; + icon_state = "2-8" + }, /turf/open/floor/plating, /area/maintenance/apmaint) "cnn" = ( @@ -59617,15 +59256,15 @@ /turf/open/floor/plasteel, /area/crew_quarters/sleep) "cnV" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/door/airlock/glass{ + name = "Central Access" + }, /turf/open/floor/plasteel, -/area/crew_quarters/sleep) +/area/hallway/primary/central) "cnW" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock{ @@ -60510,10 +60149,6 @@ }, /area/crew_quarters/sleep) "cpL" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 }, @@ -60995,17 +60630,15 @@ /turf/open/floor/plasteel, /area/quartermaster/miningdock) "cqH" = ( -/turf/open/space, -/turf/closed/wall/shuttle{ - icon_state = "swall_f6"; - dir = 2 +/obj/structure/grille, +/obj/structure/cable/green{ + tag = "icon-5-8"; + icon_state = "5-8" }, -/area/shuttle/mining) +/turf/open/floor/plating/airless, +/area/engine/engineering) "cqI" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall12"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/mining) "cqJ" = ( /obj/structure/grille, @@ -61013,13 +60646,9 @@ /turf/open/floor/plating, /area/shuttle/mining) "cqK" = ( -/turf/open/space, -/turf/closed/wall/shuttle{ - dir = 2; - icon_state = "swall_f10"; - layer = 2 - }, -/area/shuttle/mining) +/obj/structure/closet/wardrobe/pjs, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) "cqL" = ( /obj/structure/table, /obj/item/weapon/poster/legit, @@ -61364,14 +60993,6 @@ }, /area/crew_quarters/sleep) "cry" = ( -/obj/structure/cable/green{ - tag = "icon-1-4"; - icon_state = "1-4" - }, -/obj/structure/cable/green{ - tag = "icon-1-8"; - icon_state = "1-8" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -61379,6 +61000,10 @@ dir = 1; on = 1 }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, /turf/open/floor/plasteel, /area/crew_quarters/sleep) "crz" = ( @@ -61691,7 +61316,7 @@ /turf/open/floor/plasteel, /area/quartermaster/office) "csd" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/quartermaster/office) @@ -61743,18 +61368,17 @@ /turf/open/floor/plating, /area/quartermaster/miningdock) "csk" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall3"; - dir = 2 +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 }, -/area/shuttle/mining) +/area/medical/exam_room) "csl" = ( /obj/structure/table, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/mining) "csm" = ( /obj/machinery/computer/shuttle/mining, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/mining) "csn" = ( /obj/structure/closet/emcloset, @@ -61850,7 +61474,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/mob/living/simple_animal/mouse, /turf/open/floor/plating, /area/maintenance/fsmaint) "csB" = ( @@ -62570,13 +62193,13 @@ /turf/open/floor/plasteel/warning/corner, /area/quartermaster/miningdock) "ctS" = ( -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/mining) "ctT" = ( /obj/structure/chair{ dir = 1 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/mining) "ctU" = ( /obj/structure/grille, @@ -63445,14 +63068,14 @@ /turf/open/floor/plasteel, /area/engine/engineering) "cvw" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Mining Shuttle Airlock"; req_access_txt = "0" }, /turf/open/floor/plating, /area/shuttle/mining) "cvx" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Mining Shuttle Airlock"; req_access_txt = "0" }, @@ -63462,7 +63085,7 @@ height = 5; id = "mining"; name = "mining shuttle"; - travelDir = 90; + port_angle = 90; width = 7 }, /obj/docking_port/stationary{ @@ -63484,14 +63107,14 @@ /turf/open/floor/plating, /area/maintenance/apmaint) "cvz" = ( -/obj/item/robot_parts/l_arm, +/obj/item/bodypart/l_arm/robot, /obj/structure/closet, /obj/item/weapon/reagent_containers/glass/beaker/large, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/apmaint) "cvA" = ( -/obj/item/clothing/tie/petcollar, +/obj/item/clothing/neck/petcollar, /obj/structure/closet/cardboard, /turf/open/floor/plating, /area/maintenance/apmaint) @@ -64933,7 +64556,7 @@ /area/quartermaster/qm) "cyw" = ( /obj/structure/closet/crate, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/mining) "cyx" = ( /obj/structure/shuttle/engine/heater, @@ -64950,7 +64573,7 @@ /area/shuttle/mining) "cyy" = ( /obj/structure/ore_box, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/mining) "cyz" = ( /obj/structure/cable/yellow{ @@ -65436,12 +65059,11 @@ }, /area/quartermaster/qm) "czz" = ( -/turf/open/space, -/turf/closed/wall/shuttle{ - icon_state = "swall_f5"; - dir = 2 +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 1 }, -/area/shuttle/mining) +/area/medical/exam_room) "czA" = ( /obj/structure/shuttle/engine/propulsion/burst, /obj/structure/window/reinforced{ @@ -65451,12 +65073,10 @@ /turf/open/floor/plating/airless, /area/shuttle/mining) "czB" = ( -/turf/open/space, -/turf/closed/wall/shuttle{ - icon_state = "swall_f9"; - dir = 2 +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 }, -/area/shuttle/mining) +/area/medical/exam_room) "czC" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -65467,6 +65087,10 @@ icon_state = "1-9" }, /obj/structure/grille, +/obj/structure/cable/green{ + tag = "icon-4-9"; + icon_state = "4-9" + }, /turf/open/floor/plating/airless, /area/engine/engineering) "czE" = ( @@ -65997,20 +65621,16 @@ /turf/open/floor/plasteel/white, /area/toxins/explab) "cAv" = ( -/obj/structure/cable/pink{ - tag = "icon-4-8"; - icon_state = "4-8" - }, -/obj/structure/cable/pink{ - tag = "icon-2-4"; - icon_state = "2-4" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/structure/cable/pink{ + tag = "icon-2-8"; + icon_state = "2-8" + }, /turf/open/floor/plasteel/white, /area/toxins/explab) "cAw" = ( @@ -66018,10 +65638,6 @@ name = "Experimentation Lab Maintenance"; req_access_txt = "7" }, -/obj/structure/cable/pink{ - tag = "icon-4-8"; - icon_state = "4-8" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -66035,10 +65651,6 @@ tag = "icon-1-2"; icon_state = "1-2" }, -/obj/structure/cable/green{ - tag = "icon-1-8"; - icon_state = "1-8" - }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ tag = "icon-manifold-b-f (EAST)"; dir = 4 @@ -66487,7 +66099,7 @@ /turf/open/floor/plasteel/white, /area/toxins/explab) "cBr" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/whitebot, /area/toxins/explab) "cBs" = ( @@ -66851,7 +66463,7 @@ }, /area/crew_quarters/fitness) "cCa" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -67166,7 +66778,7 @@ tag = "icon-1-8"; icon_state = "1-8" }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel, /area/quartermaster/storage) "cCJ" = ( @@ -67796,7 +67408,6 @@ dir = 4; network = list("SS13","Sci") }, -/obj/machinery/portable_atmospherics/canister/bz, /turf/open/floor/plasteel/floorgrime, /area/toxins/storage) "cEh" = ( @@ -68333,7 +67944,6 @@ icon_state = "tube1"; dir = 8 }, -/obj/machinery/portable_atmospherics/canister/bz, /turf/open/floor/plasteel/floorgrime, /area/toxins/storage) "cFh" = ( @@ -68352,7 +67962,6 @@ tag = "icon-4-8"; icon_state = "4-8" }, -/mob/living/simple_animal/mouse, /turf/open/floor/plasteel/floorgrime, /area/toxins/storage) "cFj" = ( @@ -68447,7 +68056,7 @@ /turf/open/floor/plasteel/white, /area/toxins/mixing) "cFr" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/structure/cable/pink{ tag = "icon-1-2"; icon_state = "1-2" @@ -68542,6 +68151,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/light/small, /turf/open/floor/plating/warnplate, /area/toxins/mixing) "cFB" = ( @@ -69196,8 +68806,8 @@ /obj/structure/disposalpipe/segment, /obj/structure/cable/yellow{ d1 = 1; - d2 = 2; - icon_state = "1-2" + d2 = 8; + icon_state = "1-8" }, /turf/open/floor/plasteel, /area/engine/engineering) @@ -70378,16 +69988,11 @@ /turf/closed/wall/r_wall, /area/maintenance/apmaint) "cIP" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s6"; - dir = 2 - }, -/area/shuttle/supply) +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) "cIQ" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall12"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/supply) "cIR" = ( /obj/machinery/door/poddoor{ @@ -70402,14 +70007,14 @@ /turf/open/floor/plating, /area/shuttle/supply) "cIS" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Supply Shuttle Airlock"; req_access_txt = "31" }, /turf/open/floor/plating, /area/shuttle/supply) "cIT" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Supply Shuttle Airlock"; req_access_txt = "31" }, @@ -70440,17 +70045,26 @@ /turf/open/floor/plating, /area/maintenance/atmos_control) "cIV" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall14"; - dir = 2 +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 }, -/area/shuttle/supply) +/obj/structure/table, +/obj/item/weapon/soap/nanotrasen, +/obj/item/weapon/gun/syringe, +/obj/item/weapon/reagent_containers/dropper, +/obj/item/weapon/folder/white, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) "cIW" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s10"; - dir = 2 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, -/area/shuttle/supply) +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) "cIX" = ( /obj/structure/lattice, /obj/structure/lattice, @@ -70729,13 +70343,16 @@ /turf/open/floor/plating, /area/maintenance/apmaint) "cJy" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall3"; - dir = 2 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, -/area/shuttle/supply) +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) "cJz" = ( -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/supply) "cJA" = ( /obj/machinery/button/door{ @@ -70751,20 +70368,30 @@ pixel_x = 8; pixel_y = 24 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/supply) "cJB" = ( -/turf/open/floor/plasteel/shuttle, -/turf/closed/wall/shuttle/interior{ - icon_state = "swall_f5" +/obj/machinery/iv_drip, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, -/area/shuttle/supply) +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) "cJC" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall15"; - dir = 2 +/obj/machinery/door/airlock/maintenance{ + name = "Engineering Maintenance"; + req_access_txt = "10" }, -/area/shuttle/supply) +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) "cJD" = ( /obj/structure/shuttle/engine/propulsion{ icon_state = "propulsion"; @@ -71214,7 +70841,7 @@ pixel_y = 24; req_access_txt = "0" }, -/obj/effect/decal/cleanable/cobweb2, +/obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/plating, /area/maintenance/asmaint2) "cKy" = ( @@ -71275,44 +70902,32 @@ name = "maintenance access"; req_access_txt = "12" }, -/obj/structure/cable/pink{ - tag = "icon-4-8"; - icon_state = "4-8" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, /turf/open/floor/plating, /area/maintenance/asmaint2) "cKF" = ( -/obj/structure/cable/pink{ - tag = "icon-4-8"; - icon_state = "4-8" - }, /obj/machinery/light/small{ dir = 1 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, /turf/open/floor/plasteel/whitepurple/side{ tag = "icon-whitepurple (NORTH)"; dir = 1 }, /area/toxins/xenobiology) "cKG" = ( -/obj/structure/cable/pink{ - tag = "icon-4-8"; - icon_state = "4-8" - }, -/obj/structure/cable/pink{ - tag = "icon-1-8"; - icon_state = "1-8" - }, -/obj/structure/cable/pink{ - tag = "icon-2-4"; - icon_state = "2-4" - }, /obj/effect/landmark{ name = "lightsout" }, @@ -71324,20 +70939,28 @@ dir = 1; icon_state = "pipe-c" }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, /turf/open/floor/plasteel/whitepurple/side{ tag = "icon-whitepurple (NORTH)"; dir = 1 }, /area/toxins/xenobiology) "cKH" = ( -/obj/structure/cable/pink{ - tag = "icon-4-8"; - icon_state = "4-8" - }, /obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, /turf/open/floor/plasteel/whitepurple/side{ tag = "icon-whitepurple (NORTH)"; dir = 1 @@ -71348,16 +70971,16 @@ name = "maintenance access"; req_access_txt = "12" }, -/obj/structure/cable/pink{ - tag = "icon-4-8"; - icon_state = "4-8" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, /turf/open/floor/plating, /area/maintenance/asmaint2) "cKJ" = ( @@ -71455,7 +71078,7 @@ id = "toxinsdriver"; name = "Toxins Launcher Bay Door" }, -/turf/open/floor/plating, +/turf/open/floor/plating/warnplate/side, /area/maintenance/apmaint) "cKQ" = ( /obj/structure/disposalpipe/segment, @@ -71688,10 +71311,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/turf/open/floor/plating{ - broken = 1; - icon_state = "platingdmg1" - }, +/turf/open/floor/plating/warnplate/side, /area/maintenance/apmaint) "cLs" = ( /obj/effect/spawner/lootdrop{ @@ -71749,11 +71369,8 @@ /turf/open/floor/plating, /area/maintenance/apmaint) "cLx" = ( -/turf/open/floor/plasteel/shuttle, -/turf/closed/wall/shuttle/interior{ - icon_state = "swall_f6" - }, -/area/shuttle/supply) +/turf/open/floor/plating/airless/warnplate/side, +/area/space/nearstation) "cLy" = ( /obj/structure/table, /obj/item/weapon/stock_parts/manipulator, @@ -71848,23 +71465,20 @@ /turf/open/floor/plating, /area/maintenance/apmaint) "cLL" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s5"; - dir = 2 - }, -/area/shuttle/supply) +/turf/open/space, +/area/shuttle/syndicate) "cLM" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall13"; - dir = 2 +/obj/machinery/porta_turret/syndicate{ + dir = 4 }, -/area/shuttle/supply) +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/syndicate) "cLN" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s9"; - dir = 2 +/obj/machinery/porta_turret/syndicate{ + dir = 5 }, -/area/shuttle/supply) +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/syndicate) "cLO" = ( /obj/structure/lattice/catwalk, /obj/structure/cable/yellow{ @@ -72009,14 +71623,9 @@ /turf/open/floor/plating, /area/maintenance/asmaint2) "cMe" = ( -/obj/effect/spawner/lootdrop{ - loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); - lootcount = 2; - name = "random material damage spawner" - }, -/mob/living/simple_animal/mouse, -/turf/open/floor/plating, -/area/maintenance/asmaint2) +/obj/effect/landmark/xmastree, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) "cMf" = ( /obj/item/clothing/suit/bio_suit/plaguedoctorsuit, /obj/item/clothing/head/plaguedoctorhat, @@ -72151,12 +71760,9 @@ /turf/open/floor/plating, /area/maintenance/asmaint2) "cMu" = ( -/mob/living/simple_animal/mouse, -/turf/open/floor/plating{ - broken = 1; - icon_state = "platingdmg2" - }, -/area/maintenance/asmaint2) +/obj/effect/landmark/xmastree, +/turf/open/floor/carpet, +/area/chapel/main) "cMv" = ( /obj/structure/girder, /turf/open/floor/plating/airless, @@ -72726,6 +72332,7 @@ /area/maintenance/asmaint2) "cNz" = ( /obj/item/weapon/coin/uranium, +/obj/item/device/instrument/eguitar, /turf/open/floor/plating{ burnt = 1; icon_state = "panelscorched" @@ -73034,7 +72641,7 @@ name = "Secure Storage"; req_access_txt = "150" }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "cNZ" = ( /turf/open/floor/plasteel/whitepurple/side, @@ -73191,29 +72798,20 @@ /turf/open/floor/plating, /area/maintenance/asmaint2) "cOp" = ( -/turf/open/space, /obj/structure/shuttle/engine/propulsion/burst{ dir = 4 }, -/turf/closed/wall/shuttle{ - icon_state = "swall_f6"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/pod_4) "cOq" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall12"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/pod_4) "cOr" = ( -/turf/open/space, -/turf/closed/wall/shuttle{ - dir = 2; - icon_state = "swall_f10"; - layer = 2 +/turf/open/floor/plating/airless/warnplate/corner{ + tag = "icon-warnplatecorner (WEST)"; + dir = 8 }, -/area/shuttle/pod_4) +/area/space/nearstation) "cOs" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 @@ -73293,7 +72891,7 @@ tag = "icon-1-4"; icon_state = "1-4" }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/whitebot, /area/toxins/xenobiology) "cOB" = ( @@ -73380,7 +72978,7 @@ /turf/open/floor/plating, /area/maintenance/asmaint2) "cOI" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Escape Pod Airlock" }, /obj/docking_port/mobile/pod{ @@ -73388,7 +72986,7 @@ id = "pod4"; name = "escape pod 4" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/pod_4) "cOJ" = ( /obj/structure/chair{ @@ -73401,7 +72999,7 @@ pixel_x = 6; pixel_y = -26 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/pod_4) "cOK" = ( /obj/structure/chair{ @@ -73418,7 +73016,7 @@ possible_destinations = "pod_asteroid4"; shuttleId = "pod4" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/pod_4) "cOL" = ( /obj/structure/grille, @@ -73555,21 +73153,23 @@ /area/maintenance/asmaint2) "cPd" = ( /turf/open/space, -/obj/structure/shuttle/engine/propulsion/burst{ - dir = 4 +/obj/machinery/porta_turret/syndicate{ + dir = 6 }, -/turf/closed/wall/shuttle{ - icon_state = "swall_f5"; - dir = 2 +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" }, -/area/shuttle/pod_4) +/area/shuttle/syndicate) "cPe" = ( /turf/open/space, -/turf/closed/wall/shuttle{ - icon_state = "swall_f9"; - dir = 2 +/obj/machinery/porta_turret/syndicate{ + dir = 10 }, -/area/shuttle/pod_4) +/turf/closed/wall/mineral/plastitanium{ + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) "cPf" = ( /obj/structure/closet, /obj/structure/cable/pink{ @@ -73908,8 +73508,7 @@ }, /obj/machinery/door/poddoor/preopen{ id = "Xenolab"; - name = "test chamber blast door"; - unacidable = 1 + name = "test chamber blast door" }, /turf/open/floor/engine, /area/toxins/xenobiology) @@ -74026,8 +73625,7 @@ /area/toxins/xenobiology) "cPV" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1; - unacidable = 1 + dir = 1 }, /turf/open/floor/engine, /area/toxins/xenobiology) @@ -74180,7 +73778,7 @@ "cQp" = ( /obj/structure/table/optable, /obj/item/weapon/surgical_drapes, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "cQq" = ( /obj/structure/disposalpipe/trunk{ @@ -74232,7 +73830,7 @@ /obj/structure/table, /obj/item/weapon/cautery, /obj/item/weapon/scalpel, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "cQA" = ( /obj/structure/chair{ @@ -74380,8 +73978,13 @@ req_access = null; req_access_txt = "10;13" }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, /obj/structure/cable/yellow{ - icon_state = "4-8"; + tag = "icon-6-9"; + icon_state = "6-9"; d1 = 4; d2 = 8 }, @@ -74410,10 +74013,9 @@ pixel_x = 0; pixel_y = 32 }, -/obj/structure/cable/yellow{ - icon_state = "4-8"; - d1 = 4; - d2 = 8 +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" }, /turf/open/floor/plating/airless, /area/engine/engineering) @@ -74423,19 +74025,17 @@ dir = 8 }, /obj/structure/disposalpipe/segment, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 8; - icon_state = "1-8" +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/engine/engineering) "cQV" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable/yellow{ - icon_state = "4-8"; - d1 = 4; - d2 = 8 +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" }, /turf/open/floor/plasteel/warning{ dir = 8 @@ -74457,6 +74057,10 @@ dir = 4 }, /obj/structure/chair/stool, +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, /turf/open/floor/plasteel, /area/engine/engineering) "cQX" = ( @@ -74465,6 +74069,10 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, /turf/open/floor/plasteel, /area/engine/engineering) "cQY" = ( @@ -74712,7 +74320,7 @@ /obj/structure/table, /obj/item/weapon/retractor, /obj/item/weapon/hemostat, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "cRu" = ( /obj/structure/table, @@ -74725,11 +74333,11 @@ /obj/item/stack/rods{ amount = 50 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "cRv" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "cRw" = ( /obj/docking_port/stationary{ @@ -74828,10 +74436,6 @@ /turf/open/floor/plasteel/bar, /area/crew_quarters/bar) "cRH" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/chair{ dir = 8 @@ -74924,10 +74528,6 @@ /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/kitchen) "cRT" = ( -/obj/structure/cable/green{ - tag = "icon-1-2"; - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/chair{ dir = 8 @@ -74968,10 +74568,6 @@ /turf/closed/wall/rust, /area/chapel/office) "cRY" = ( -/obj/structure/cable/green{ - tag = "icon-4-8"; - icon_state = "4-8" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -75036,10 +74632,6 @@ name = "Fore Port Hallway" }) "cSe" = ( -/obj/structure/cable/green{ - tag = "icon-4-8"; - icon_state = "4-8" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/green{ tag = "icon-1-4"; @@ -82221,23 +81813,23 @@ aae afv aae aaa -bmm +bnA bpP -bpT +bnA bpP -bwp -bpT -bpT +bnA +bnA +bnA bpP bpP bpP -bpT -bpT -bpT +bnA +bnA +bnA bpP -bpT +bnA bpP -bTi +bnA aaa aaa aaa @@ -82477,7 +82069,7 @@ aae aab afv aaa -bmm +bnA bnA bpQ brZ @@ -82494,10 +82086,10 @@ bpR bpR bpR bRt -bTj -bpT -bpT -bTi +bnA +bnA +bnA +bnA aaa aaa aaa @@ -82751,11 +82343,11 @@ byr byr byr bpS -bws +bnA bUy bVB bWW -bTi +bnA aaa aaa aaa @@ -83507,9 +83099,9 @@ afv aaa bmn bnB -bpT -bpT -bpT +bnA +bnA +bnA bwr byr byr @@ -83522,7 +83114,7 @@ bLZ bNH byr bRu -bws +bnA bUA byr bWZ @@ -83767,7 +83359,7 @@ bnB bpU bsa bue -bws +bnA byr bAq bAq @@ -84032,11 +83624,11 @@ bAr bAr bAr byr -bws +bnA bNI bNJ bRv -bws +bnA bUC bVC bXa @@ -84281,7 +83873,7 @@ bnB bpV bsa bsa -bws +bnA byr byr byr @@ -84289,15 +83881,15 @@ byr byr byr bKg -bws +bnA bNI bNJ bRv -bws +bnA bUD bVD -bXb -bTm +bWW +bnA aae aaa aae @@ -84503,7 +84095,7 @@ aaa aaa aaa aaa -aaa +cRz aaa aaa aaa @@ -84533,12 +84125,12 @@ aae aaa afv aaa -bmo +bnA bnA bpV bsa bsa -bws +bnA byr bAs bAs @@ -84546,14 +84138,14 @@ bAs bAs bAs byr -bws +bnA bNJ bPH bRv -bTj -bpT -bpT -bTm +bnA +bnA +bnA +bnA aaa aae aaa @@ -84760,8 +84352,8 @@ aaa aaa aaa aaa +amd aaa -cRz aaa aaa aaa @@ -84791,23 +84383,23 @@ aae afv aae aaa -bmo -bpT -bpT +bnA +bnA +bnA buf -bwu +bnA buf -bpT +bnA bpP bpP bpP -bpT +bnA bKh -bwu +bnA bNK -bpT -bpT -bTm +bnA +bnA +bnA aaa aaa aaa @@ -85017,8 +84609,8 @@ aaa aaa aaa aaa +cRz aaa -amd aaa aaa aaa @@ -85274,13 +84866,13 @@ aaa aaa aaa aaa -aaa cRz aaa aaa aaa aaa -aaa +aab +cRz aaa aaa aaa @@ -85531,14 +85123,14 @@ aaa aaa aaa aaa -aaa cRz aaa aaa aaa aaa -aab -cRz +aaa +amd +aaa aaa aaa aaa @@ -85788,14 +85380,14 @@ aaa aaa aaa aaa -aaa -cRz -aaa -aaa -aaa -aaa -aaa amd +aae +aae +anR +anS +anS +anR +aaa aaa aaa aaa @@ -86045,18 +85637,18 @@ aaa aaa aaa aaa +cRz +aae aaa -amd -aae -aae anR -anS -anS +aBx +aCW anR aae aae aae aae +aae amd aaa aaa @@ -86300,16 +85892,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -cRz aae +aae +anR +anR +anR +anR +axl +auq +anR aaa -anR -aBx -aCW -anR aaa aaa aae @@ -86557,17 +86149,17 @@ aaa aaa aaa aaa +aae aaa -aae -aae anR +axi +ayE anR -anR -anR -axl +aBy auq anR aaa +aaa aae aae aaa @@ -86814,17 +86406,17 @@ aaa aaa aaa aaa +anR +anR +anR +anR +anR +anR +anR +aCX +anR aaa aae -aaa -anR -axi -ayE -anR -aBy -auq -anR -aae aae aaa aaa @@ -87036,7 +86628,7 @@ acm acm acm acm -acm +cLN acm acm acm @@ -87071,7 +86663,14 @@ aaa aaa aaa aaa -aaa +anS +aun +auq +axj +ayF +aAe +aBz +auq anR anR anR @@ -87079,13 +86678,6 @@ anR anR anR anR -aCX -anR -anR -anR -anR -anR -anR anR anR anS @@ -87328,24 +86920,24 @@ aaa aaa aaa aaa -aaa anS -aun -auq -axj -ayF -aAe -aBz -aCY +auo +avT +aqh +ayG +aqh +aBA +bQU aEl aqh aqh +aqh aIt aqh aqh aMH aNN -aPD +aNN aRp aqh aqh @@ -87585,21 +87177,21 @@ aaa aaa aaa aaa -aaa anS auo -avT -axk -ayG -aqh -aBA -aCZ +avU +axl +anR +anR +auV +arm aEm aFD aFD aFD aFD aFD +aFD aMI aNO aPE @@ -87842,14 +87434,13 @@ aaa aaa aaa aaa -aaa anS -auo -avU -axl +aup +auq +axm anR -anR -auV +aAf +aBB arm asn aFE @@ -87866,6 +87457,7 @@ aBD aBD aBD aBD +aBD bbe bcA beb @@ -88068,7 +87660,7 @@ agA acm acm acm -adj +cPd aaa aaa aaa @@ -88099,14 +87691,13 @@ aaa aaa aaa aaa -aaa -anS -aup -auq -axm anR -aAf -aBB +auq +anR +anR +anR +anR +anR arm asn aFE @@ -88115,6 +87706,7 @@ aIu aJY aLI aBD +cqK aNP aPF aBD @@ -88308,7 +87900,7 @@ acx acK acX acm -adh +cLL aaa acm adO @@ -88356,14 +87948,13 @@ aaa aaa aaa aaa -aaa anR +aur +avV +axn +auq +aAg auq -anR -anR -anR -anR -anR arm asn aFE @@ -88372,7 +87963,8 @@ aIv aJZ aLJ aBD -aNQ +csk +aIx aPG aDe aSD @@ -88613,14 +88205,13 @@ aaa aaa aaa aaa -aaa anR -aur -avV -axn -auq -aAg -auq +aus +anR +axl +ayH +aos +axl arm asn aFE @@ -88629,6 +88220,7 @@ aIw aKa aLK aMJ +czz aNR aPH aRr @@ -88639,7 +88231,7 @@ aXK aZo bbg bcC -bee +bec auq bhg cSc @@ -88823,10 +88415,10 @@ acy acy acm adq -adx -adx -adx -adx +acy +acy +acy +acy aeX acy acy @@ -88870,13 +88462,12 @@ aaa aaa aaa aaa -aaa anR -aus +aut anR -axl -ayH -aos +axo +ayI +aAh axl arm asn @@ -88886,7 +88477,8 @@ aIx aKb aLL aMK -aNS +czB +aNU aPI aRs aSF @@ -88922,7 +88514,7 @@ bRE bnH bUM bVL -bXh +afX bYl bUI afr @@ -89127,14 +88719,13 @@ aaa aaa aaa aaa -aae anR -aut +auu anR -axo -ayI -aAh -axl +auq +auq +auq +auq arm asn aFE @@ -89143,6 +88734,7 @@ aIx aKc aLM aML +cIP aNT aPJ aBD @@ -89179,7 +88771,7 @@ bmt bmt bmt bVM -bXi +alt cSk bUI cbf @@ -89335,7 +88927,7 @@ acl acB acy acY -ack +acm adr ady ady @@ -89384,14 +88976,13 @@ aaa aaa aaa aaa -aae anR -auu +auv anR -auq -auq -auq -auq +axp +ayJ +aAi +aBC arm asn aFE @@ -89400,6 +88991,7 @@ aIy aKd aLN aMK +aKb aNU aPK aBD @@ -89436,7 +89028,7 @@ bRF bTn bmu bVM -bXi +alt bYm bZL bZI @@ -89595,7 +89187,7 @@ acy acm acm acm -acm +cLM acm acm acm @@ -89641,14 +89233,13 @@ aae aaa aaa aae -aae anR -auv +auw anR -axp -ayJ -aAi -aBC +axq +axq +axq +axq arm asn aFE @@ -89657,6 +89248,7 @@ aIz aKe aLO aMK +aKb aNU aPL aBD @@ -89693,7 +89285,7 @@ bnS bTo bmt bVN -bXi +alt bYn bZL bZI @@ -89898,15 +89490,14 @@ aae aae aaa aae -aaa anR -auw -anR -axq -axq -axq -axq -arm +aux +auv +axr +bwu +bPa +bPd +bSC asn aFE aBD @@ -89914,8 +89505,9 @@ aIA aKf aBD aBD -aNV -aPM +cIV +aNU +cJB aBD aSI aUc @@ -89950,7 +89542,7 @@ bnK bnK bmv bVO -bXj +arH bYo bZM cbg @@ -90124,7 +89716,7 @@ agn acm acm acm -adh +cPe aaa aaa aaa @@ -90155,17 +89747,17 @@ aaa aae aae aae -aaa anR -aux +anR auv -axr +auv +auq ayK aAj -aAj -aDa +bTi aEn aFF +bTj aGW aIB aKg @@ -90419,13 +90011,13 @@ atd atd ayL aAk -aqi aDb aEo aFG +bTm aGX -aIC -aKd +aPQ +aeu aLP aMN aNW @@ -90464,14 +90056,14 @@ bqg bTq bmt bVQ -bXl +aIC bYq bZL bZI cba cfd cgN -cgN +cMu cfd clO bZI @@ -90721,7 +90313,7 @@ bqg bTr bmu bVM -bXi +alt bYm bZL cbe @@ -90978,7 +90570,7 @@ bqg bTs bmt bVM -bXi +alt bYm bUI bUI @@ -91148,7 +90740,7 @@ acm acm acm acm -acm +cLM acm acm acm @@ -91235,7 +90827,7 @@ bqg bTt bmt bVM -bXi +alt bYr bZO cbi @@ -91492,7 +91084,7 @@ bqg bTu bmt bVR -bXi +alt bYs bTE cbj @@ -91749,7 +91341,7 @@ bqg bPV bmt bVM -bXi +alt bYt bZP cbj @@ -91763,7 +91355,7 @@ cgO cgO crh cgO -cuj +cdl cvT cgO aaa @@ -92006,7 +91598,7 @@ bqg bTv bmt bVM -bXi +alt bYt bZP cbk @@ -92263,7 +91855,7 @@ bqg bnN bmt bVS -bXm +bjW bYt bZP cbj @@ -92520,7 +92112,7 @@ bRG bmt bmt bVT -bXi +alt bYt bZQ cbj @@ -92777,7 +92369,7 @@ bnX bTw bTE bVM -bXi +alt bYu bTE cbj @@ -93034,7 +92626,7 @@ bnX bTw bTE bVM -bXi +alt bYm bTE cbl @@ -93291,7 +92883,7 @@ bnX bTx bTE bVM -bXi +alt bYm bTE cbm @@ -93805,7 +93397,7 @@ bEs bnX bTE bVU -bXo +bli bYw bTE cbn @@ -94054,12 +93646,12 @@ bCm bEt bEt bIU -bEt -bEt +afV +afV bOb -bEt -bEt -bEt +afV +afV +afV bUN bVV bXp @@ -94319,7 +93911,7 @@ bKt bKu bKu bVW -bXi +bos bYx bKu bKu @@ -94576,7 +94168,7 @@ bOc bTy bUO bVX -bXl +bXs bYy bZR cbp @@ -94833,7 +94425,7 @@ bRH bTz bUP bVY -bXj +bYJ bYz bZS bTz @@ -96375,7 +95967,7 @@ bRL bTD bTE bVM -bXs +bVb bYE bZW bZW @@ -96632,7 +96224,7 @@ bRL bnX bTE bVM -bXs +bVb bYn bZX cbt @@ -96889,7 +96481,7 @@ bRL bTE bTE bVM -bXs +bVb bYr bZY cbu @@ -96905,7 +96497,7 @@ cpF csV cpF cpF -cxB +cpF cpF czQ cAP @@ -97146,7 +96738,7 @@ bRL bTE bUT bWe -bXs +bVb bYF bZX cbv @@ -97403,7 +96995,7 @@ bRM bTE bUU bWe -bXs +bVb bYm bZX cbw @@ -97660,7 +97252,7 @@ bRN bTE bUV bWe -bXs +bVb bYm bZX cbx @@ -97886,7 +97478,7 @@ aQi aHv aHv aQl -aWs +aWq aYc aYc aYc @@ -97917,7 +97509,7 @@ bRO bTE bUW bWe -bXs +bVb bYn bZX cby @@ -98153,7 +97745,7 @@ aKx bhq biu bjP -bla +bkT bmE boj bqx @@ -98945,7 +98537,7 @@ bmH bTG bmH bWg -bXi +alt bYm bTE cbB @@ -99181,7 +98773,7 @@ aSP aRO biv bjS -bkX +bDi bmE boj bqA @@ -99202,7 +98794,7 @@ bOp bTH bmH bVM -bXi +alt bYm caa caa @@ -99459,7 +99051,7 @@ bop bTH bmH bVS -bXm +bjW bYm caa cbC @@ -99716,7 +99308,7 @@ bOq bTI bmH bVM -bXi +alt bYm caa cbD @@ -99973,7 +99565,7 @@ bRQ bTJ bmH bVU -bXo +cmr bYw caa cbE @@ -100230,7 +99822,7 @@ bqF bor bmH bWh -bXi +alt bYm caa cbF @@ -100487,7 +100079,7 @@ bqF bor bmI bWi -bXi +alt bYI caa cbG @@ -100744,7 +100336,7 @@ bqG boq bmJ bVO -bXj +arH bYG cab cbH @@ -100779,7 +100371,7 @@ cdO ckC cdO cdO -cMe +chl cdO cpP cMV @@ -101001,8 +100593,8 @@ bqF bor bmI bWe -bXw -bYJ +alt +bYt cac cbI cdE @@ -101011,7 +100603,7 @@ chd ciP ckA cbI -cnV +cdC cpL cry ctc @@ -101236,10 +100828,10 @@ bex bge bhu biC -bjW -bli +bjS +bkY bmK -bos +bxa bqH bsU bva @@ -101515,7 +101107,7 @@ bqF bTH bmI bWk -bXl +aIC bYL caa cbK @@ -101759,7 +101351,7 @@ bsV bvb bor bsV -bor +cMe bor bEP bsV @@ -101772,7 +101364,7 @@ bqF bTH bmL bVM -bXi +alt cSl caa cbF @@ -102029,7 +101621,7 @@ bqF bTL bmH bVM -bXi +alt aee caa cbL @@ -102286,7 +101878,7 @@ bRR bTM bmH bVM -bXi +alt bYm caa cbM @@ -102543,7 +102135,7 @@ bRR bTN bmH bVM -bXi +alt bYm caa cbN @@ -102800,7 +102392,7 @@ bRR bTO bmH bVM -bXi +alt bYm caa caa @@ -103057,7 +102649,7 @@ bRR bTP bmH bVS -bXm +bjW bYn cae cbO @@ -103571,7 +103163,7 @@ bRT bTR bmH bVM -bXi +alt bYN cag cbQ @@ -103828,7 +103420,7 @@ bRU bTS bmH bVM -bXi +alt bYO cae cbR @@ -103837,7 +103429,7 @@ cfF chk cae cdO -cmr +cKN cdO cpP crI @@ -104085,7 +103677,7 @@ bRU bTT bmH bWl -bXi +alt bYP cae cae @@ -104094,7 +103686,7 @@ cae cae cae cdO -cmr +cKN cdO cpP crJ @@ -104364,7 +103956,7 @@ cqd cBb cCi cpP -cEe +cfG cdO cpP cpP @@ -104903,7 +104495,7 @@ cdO chl cdO cfG -cLD +cdO cdO cdO cdO @@ -105074,7 +104666,7 @@ ame ame amc bhD -akE +bYi aky aky aOK @@ -105331,7 +104923,7 @@ ame ame ame bhF -akE +bYi aky aky aOD @@ -105588,7 +105180,7 @@ ame ame cGL bhD -akE +cqH aky alg aOz @@ -105843,8 +105435,8 @@ ame ame amc bNM -amZ -bhD +bVA +bXb aky aky aky @@ -106308,7 +105900,7 @@ aac aaa aaa aaa -aeZ +aae agf ago agu @@ -106335,7 +105927,7 @@ agu ago ago akd -aks +aae aae aae alN @@ -106431,7 +106023,7 @@ cJV cCj cKC cqd -cLD +cdO cLR cMk cMz @@ -106564,9 +106156,9 @@ aaa aac aaa aaa -aeZ +aae aft -afu +aae afN agv agG @@ -106591,7 +106183,7 @@ agG ajr ajz aae -ake +aae akt aae aaa @@ -106615,7 +106207,7 @@ aql aru aoy aky -cQR +bYh alg alN aky @@ -106820,9 +106412,9 @@ aak aaa aac aaa -aeZ +aae aft -afu +aae afN agb aaa @@ -106833,17 +106425,17 @@ aaa aaa aaa aaa -aae -aae -aaa -aaa -aaa -aaa -aaa -aae -aae -aaa -aaa +ahj +ahj +ahj +ahk +ahk +ahk +ahk +ahk +ahj +ahj +ahj aaa aaa ajA @@ -107076,9 +106668,9 @@ aar aak aaa aac -aeZ +aae aft -afu +aae afN agb aae @@ -107090,17 +106682,17 @@ aaa aaa aaa aae -aae -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aae -aae -aaa +ahj +ahy +ahT +ahT +ahT +ahT +ahT +ahT +ahT +aDu +ahj aaa aaa afP @@ -107334,7 +106926,7 @@ abl abl abl afa -afu +aae afN agb aaa @@ -107347,17 +106939,17 @@ aaa aaa aae aae -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aae -aae +ahj +ahD +aie +aie +aie +aie +aie +aie +aie +aMo +ahj aaa aaa afP @@ -107426,7 +107018,7 @@ bSa bTZ bVc bWn -bXh +afX bYW cao cbZ @@ -107604,17 +107196,17 @@ aaa aae aae aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aae +ahk +ahD +aie +aie +aie +aie +aie +aie +aie +aMo +ahk aae aaa afP @@ -107683,7 +107275,7 @@ bSb bMz bVd bVM -bXi +alt bYX cap cca @@ -107861,17 +107453,17 @@ aae aae aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +ahk +ahD +aie +aie +aie +aiM +aie +aie +aie +aMo +ahk aae aae afP @@ -107940,7 +107532,7 @@ bMz bMz bTE bWo -bXi +alt bYS cai cca @@ -108104,7 +107696,7 @@ adT aej aey abl -afd +afb aae afP aaa @@ -108118,17 +107710,17 @@ aae aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +ahk +ahD +aie +aie +aiK +ajc +ajX +aie +aie +aMo +ahk aaa aae ajB @@ -108166,16 +107758,16 @@ aQI aky ajD aUS -atG -atG -atG -atG -atG -atG -atG +awJ +awJ +awJ +awJ +awJ +awJ +awJ bhB -biO -bkc +biM +bjM bkX bhg boJ @@ -108197,7 +107789,7 @@ bSc boM bTE bVM -bXi +alt bYm caj cca @@ -108375,17 +107967,17 @@ aae aae aaa aaa -aaa -aaa -aaa -aaa -aaa -aab -aaa -aaa -aaa -aaa -aaa +ahk +ahD +aie +aie +aie +aie +aie +aie +aie +aMo +ahk aaa aaa ajC @@ -108395,9 +107987,9 @@ akz aki all alQ -amy -amy -amy +anl +anl +anl aoE apB aqr @@ -108422,7 +108014,7 @@ aOS aQJ aky aky -aOM +cJC aky aky aky @@ -108454,7 +108046,7 @@ bSd boK bTE bWp -bXm +bjW bYm caj ccb @@ -108632,17 +108224,17 @@ aaa aae aae aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +ahk +ahD +aie +aie +aie +aie +aie +aie +aie +aMo +ahk aaa aaa aaa @@ -108679,7 +108271,7 @@ aOP aCa aSd aTh -aUT +aoD aWQ aky baq @@ -108711,7 +108303,7 @@ bze boK bTE bVM -bXi +alt bYm caj ccc @@ -108889,17 +108481,17 @@ aaa aaa aae aae -aaa -aaa -aaa -aaa -aaa -aaa -ahP -aaa -aaa -aaa -aiK +ahj +ahD +aie +aie +aie +aie +aie +aie +aie +aMo +ahj aaa aaa ajD @@ -108936,7 +108528,7 @@ aOP aCa aSd aTi -aUT +aoD aWR aky baq @@ -108968,7 +108560,7 @@ bSe bUa bTE bVM -bXi +alt bYm caj ccb @@ -109146,19 +108738,19 @@ aaa aaa aaa aae -aae +ahj +ahP +aif +aif +aif +aif +aif +aif +aif +aNQ +ahj aaa aaa -aaa -aaa -ahD -ahQ -aie -aaa -aiv -aiL -ajc -aaa ajE ajP ajP @@ -109225,7 +108817,7 @@ bze boJ bTE bVM -bXi +alt bYR cak cca @@ -109403,19 +108995,19 @@ aaa aaa aaa aaa -aae -aae -aaa -aaa -ahv -ahE -ahR -ahE -ahv -aiw -aiM -aiw -ahv +ahj +ahj +ahj +ahk +ahj +ajd +ahj +ahk +ahj +ahj +ahj +ahk +ahj ajD ajQ ajQ @@ -109482,7 +109074,7 @@ bze bTE bTE bWq -bXi +alt bYY bTE cca @@ -109664,15 +109256,15 @@ aae aae aae aae -ahv -ahE -ahS -ahE -ahv -aiw +ahk +ajj +ahj +akb +akr +aNS aiN -aiw -ahv +bmm +ahj ajF ajR akk @@ -109739,7 +109331,7 @@ bSf bTE bVe bWe -bXi +alt bYm bVb ccd @@ -109921,15 +109513,15 @@ aaa aaa aae aae -ahv +ahk ahF -ahT -aif -ahv +ahj +akl +aCY aix aiO -ajd -ahv +bmo +ahj ajD ajD ajD @@ -109996,7 +109588,7 @@ bze bTE bVf bWe -bXi +alt bYm caq cce @@ -110178,15 +109770,15 @@ aaa aaa aaa aae -ahv -ahv -ahU -ahv -ahv -ahv -aiP -ahv -ahv +ahk +ajj +ajd +akp +aCZ +aNV +beM +bpT +ahj ajG ajS ajQ @@ -110217,7 +109809,7 @@ aky aKY aMm aCa -aOP +cIW aQO aSd aTn @@ -110253,7 +109845,7 @@ bze bTE bVg bWe -bXi +alt bYm caq cce @@ -110302,7 +109894,7 @@ czg cpP cOp cOI -cPd +cOp cpP aaa aae @@ -110435,19 +110027,19 @@ aaa aab aaa aaa -ahv -ahG -ahO +ahk +ajV +ahj aig -ahv -aiy -ahO -aig -ahv -ajH -ajT -ajT -ajT +aDa +aUl +beS +bvt +ahj +bwp +aAG +aAG +aAG akO als alU @@ -110510,7 +110102,7 @@ bze bTE bTE bVM -bXi +alt bYm car cce @@ -110686,21 +110278,21 @@ aaa aaa aaa aaa -afv -aae -aae -aae -aae -aae -aht +aaa +aaa +aaa +aaa ahv -ahU -aih -aht ahv -aiP -aih aht +ahj +ahj +ahj +ahj +aUT +biO +ahj +ahj ajI ahv ahv @@ -110731,7 +110323,7 @@ aky aky aky aNu -aOP +cIW anl aSd aQK @@ -110767,7 +110359,7 @@ bSg bUb bTE bVU -bXo +cmr bYw cas ccf @@ -110802,7 +110394,7 @@ cKO cLk cpP ahA -cMu +cwt cpP cLC cdO @@ -110944,26 +110536,26 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aae -ahw +ahv +ahv +ahv +ahv +aim +aih ahH -ahV +ahM aii aip aiz -ahV +bkc aje -ahM +bvv ajJ -ajU -ajU -ajU -ajU -alt +ahM +ahM +ahM +ahM +ahM alU amD anq @@ -111024,7 +110616,7 @@ bze boK bhC biQ -bXB +cnV blv bhC ccf @@ -111071,9 +110663,9 @@ aae aae aaa aaa -cOr +cOq cOL -cPe +cOq aaa aaa aaa @@ -111200,26 +110792,26 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aae -aae -ahw -ahI -ahI -ahI -ahI -ahI -ahI -ahI +aiw +aiw +aiw +ack +ahv +aiy +aiP ahI ahI ahI ahI +bee +bla +bla +bla +bla +bla +bla akB -ahM +bws alu alU amE @@ -111245,7 +110837,7 @@ aJq aLb ajQ aNv -avq +cJy aQP aSi aTq @@ -111456,13 +111048,13 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aae -aae -aaa +agg +aiL +agZ +ahm +ahR +aiP +aiv ahv ahw ahW @@ -111511,8 +111103,8 @@ aXb aYD aQP bcc -aAG -beM +alT +bcb ajQ bhg big @@ -111710,15 +111302,15 @@ aaa aaa aaa aaa -afv -aae -aae -aae -aae -aae -aae -aae -aae +aaa +aaa +aaa +aaa +aiw +aiw +aiw +ack +ahv aht aht ahw @@ -111757,7 +111349,7 @@ aFa aHN aJs aLd -aMo +awK aNx aOZ aQP @@ -111972,11 +111564,11 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa +ahv +ahv +ahv +ahv +aae aaa ahw ahW @@ -111991,7 +111583,7 @@ ahw aaa aht akR -alw +aoW aiu amF anu @@ -112226,15 +111818,15 @@ aaa aaa aaa aaa +afv +aae +aae +aae +aae aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -ahk +aho aho ahX aho @@ -112244,8 +111836,8 @@ ahl ahl aho ahZ -ajV -akl +aho +aho aht akS alx @@ -112488,10 +112080,10 @@ aaa aaa aaa aaa -ahk aho aho -ahx +aho +aho ahJ ahq aik @@ -112513,7 +112105,7 @@ aog aoQ ahv aqv -arH +akR ahM atI avr @@ -112748,7 +112340,7 @@ aaa ahl ahp ahp -ahy +aho ahq ahY ahq @@ -112857,7 +112449,7 @@ ava cns cLq cns -amd +cOr aae aaa aaa @@ -113031,16 +112623,16 @@ arJ ajU atK avt -ajU +ahM ayd -ajU +ahM aAP aCo aDO aFe aGi aHQ -aJw +aes aLi aMq aNz @@ -113054,7 +112646,7 @@ ajU ajU aJw ajU -beS +ajU bgx cQS biS @@ -113110,7 +112702,7 @@ cIf cIK cJw cKf -amd +cLx cKP cLr cKP @@ -113262,7 +112854,7 @@ aaa ahl ahr ahr -ahy +aho ahq ahY ahq @@ -113371,7 +112963,7 @@ auW cns cLs cns -amd +axN aae aaa aaa @@ -113516,10 +113108,10 @@ aaa aaa aaa aaa -ahm aho aho -ahx +aho +aho ahK ahq ail @@ -113768,15 +113360,15 @@ aaa aaa aaa aaa +afv +aae +aae +aae +aae aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -ahm +aho aho ahZ aho @@ -113786,8 +113378,8 @@ ahl ahl aho ahZ -ajX -akp +aho +aho aht akU alA @@ -114028,11 +113620,11 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa +ahv +ahv +ahv +ahv +aae aaa ahw ahW @@ -114280,15 +113872,15 @@ aaa aaa aaa aaa -afv -aae -aae -aae -aae -aae -aae -aae -aae +aaa +aaa +aaa +aaa +ahE +ahE +ahE +adx +ahv aht aht ahw @@ -114540,13 +114132,13 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aab -aaa -aae -aae +agY +ahQ +ahf +ahx +ahS +ahU +aiv ahv ahw ahW @@ -114787,24 +114379,24 @@ aaa aaa aaa aaa -aes -afp -afV -afB -afB -afB -afB -afB -afB -afB -afV -afp -agZ aaa aaa aaa aaa -ahw +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ahE +ahE +ahE +adx +ahv +ahG +ahU ahL ahL ahL @@ -115043,28 +114635,28 @@ aaa aaa aaa aaa -aes -afk -aeD -aeF -aeF -aeF -afU -agH -agV -aeF -aeF -ahb -afl -afk -ahh -agZ aaa aaa -ahw +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ahv +ahv +ahv +ahv +aim +aih ahM aia -aim +ahM ahM ahM aiS @@ -115166,7 +114758,7 @@ cIh csr csq ccC -cKv +chZ ccC aaa aaa @@ -115299,29 +114891,29 @@ aaa aaa aaa aaa -aes -afk -aeD -aeF -aeF -aeF -aeF -afU -agI -afU -aeF -aeF -ahc -aeG +aaa +aaa aet -ahi -afA -agZ +aet +aet +afB +afB +afB +afB +afB +afB +afB +aet +aet +aet +aaa aaa ahv ahv ahv ahv +ahv +ahw aiu aiu ahv @@ -115555,39 +115147,39 @@ aaa aaa aaa aaa -aes -aeR -aeJ -aeG -afT +aaa +aaa +aet +aet +aeD aeF aeF aeF -aeF -agJ +afU +agH +agV aeF aeF -aeF -ahc -aeG -afA -afW -aeR -aeR -agZ -ahw -ahN -ahw +ahb +aeD +aet +ahh +aet +aaa +aaa +aaa +aae +ahv ain ahM -aiC +ahM ahv aji aju ajK ahw aji -aht +ahv akW alF ama @@ -115812,29 +115404,29 @@ aaa aaa aaa aaa +aaa aet +aet +aeD +aeF +aeF +aeF +aeF +afU +agI +afU +aeF +aeF +ahc aeG -afl -aeI -aeF -aeF -aeF -aeF -aeF -aeF -agJ -aeF -aeF -aeF -agg -aeJ -aeF -ahn -aeF -afC -ahB -ahO -ahB +aet +ahi +aet +aet +aaa +aae +aae +ahv ain ahM ahM @@ -115851,7 +115443,7 @@ amb amS anH aol -apb +akZ apO aqI arQ @@ -115908,7 +115500,7 @@ bJG bVn bWF bXN -bZm +bFB caE ccn cet @@ -116068,33 +115660,33 @@ aaa aaa aaa aaa -aes -aeD -aeF -aeF +aaa aet -afU -afU -afU -aeF -aeF -agK +aet +aet +aeG +afT aeF aeF aeF -agg -afk -aeD +aeF +agJ aeF aeF aeF +ahc +aeG +aet +afW +aet +aet aet ahw -ahw +ahN ahw ain ahM -aiD +aiC aht aaa ahw @@ -116102,7 +115694,7 @@ ajK ahw aaa aht -akY +akX alc alc alc @@ -116325,41 +115917,41 @@ aaa aaa aaa aaa +aaa aet -aeE -aeF -aeF -afA -afV -afV -afV -afV -afB -agL -afB -afV -afp -afk +aeG +aeD aeD aeF aeF aeF aeF +aeF +aeF +agJ +aeF +aeF +aeF +aeD aet -aae -ahw -aib +aeF +ahn +aeF +afC +ahB +ahO +ahB ain ahM -aiE -ahw -ajj +ahM +aht +ajk ajl ajL ajl -akr -ahw -akZ +ajk +aht +akX alc amc amc @@ -116422,7 +116014,7 @@ bMQ bJG bWH bXN -bZo +bHJ caH ccp cev @@ -116583,40 +116175,40 @@ aaa aaa aaa aet +aeD +aeF +aeF +aet +afU +afU +afU +aeF +aeF +agK aeF aeF aeF -afB -aeF -aeF -aeF -aeF -aeF -aeF -agJ -aeF -afl -aeJ -aeF -aeF +aeD +aet +aeD aeF aeF aeF aet -aaa ahw -aic +ahw +ahw ain ahM -aiE -ahw +aiD +aht ajk ajv ajM ajY ajk -ahw -akZ +aht +akY alH amd amT @@ -116840,29 +116432,29 @@ aaa aaa aaa aet +aeE aeF aeF -afm -afB -aeF -aeF -aeF -aeF -aeF -aeF -aeF -aeF -aeF -afC -aeF -aeF -aeF -aeF -ahs aet -aaa +aet +aet +aet +aet +afB +agL +afB +aet +aet +aet +aeD +aeF +aeF +aeF +aeF +aet +aae ahw -aic +aib ain ahM aiE @@ -116873,7 +116465,7 @@ ajM ajY ajk ahw -ala +akZ alc ame amd @@ -116919,7 +116511,7 @@ bhG bpb brp btz -bvt +bxA bxx bzH bBh @@ -116962,13 +116554,13 @@ aOe cFW aaa aaa -cIP -cJy -cJy -cJy -cJy -cJy -cLL +cIQ +cIQ +cIQ +cIQ +cIQ +cIQ +cIQ aaa aaa aaa @@ -117097,29 +116689,29 @@ aaa aaa aaa aet -aeG aeF -afn +aeF +aeF afB aeF aeF -agg -afV -afV -afV -afV -aeI aeF +aeF +aeF +aeF +agJ +aeF +aeD aet aeF aeF aeF aeF -ahd +aeF aet -aae +aaa ahw -aib +aic ain ahM aiE @@ -117354,40 +116946,40 @@ aaa aaa aaa aet -aeH aeF aeF -aet +afm +afB +aeF +aeF +aeF +aeF aeF aeF -aet -agp aeF aeF aeF afC -agJ -aet -ahd -aeF -aeF -aeF -aeF +aeF +aeF +aeF +aeF +ahs aet +aaa ahw -ahw -ahw +aic ain ahM -aiF -aht +aiE +ahw ajk ajv ajM ajY ajk -aht -akZ +ahw +ala akZ amf alc @@ -117433,7 +117025,7 @@ bhG bpd brr btz -bvv +bxA bxz bzJ bBj @@ -117610,41 +117202,41 @@ aaa aaa aaa aaa -aeu -aeI +aet +aeG aeF +afn +afB +aeF +aeF +aeD +aet +aet +aet +aet +aeD aeF aet aeF aeF +aeF +aeF +ahd aet -agq -agw -aeF -agW -aet -aeF -afA -aeI -ahg -ahg -aeF -aeF -ahu -ahC -ahO -ahC +aae +ahw +aib ain ahM -ahM -aht +aiE +ahw ajk ajv ajM ajY ajk -aht -alb +ahw +akZ alI akZ akZ @@ -117867,33 +117459,33 @@ aaa aaa aaa aaa -aaa aet -aeS +aeH +aeF +aeF +aet +aeF +aeF +aet +agp aeF -afC aeF aeF afC -aeF -aeF -aeF -agX +agJ aet +ahd aeF -afl -aeR -afV -afV -afp -afp -agY +aeF +aeF +aeF +aet +ahw ahw -ahN ahw ain ahM -ahM +aiF aht ajk ajv @@ -118124,33 +117716,33 @@ aaa aaa aaa aaa -aaa -aeu -aeI -afo +aet +aeD +aeF +aeF aet aeF aeF -afl -afV -afV -afV -afV +aet +agq +agw +aeF +agW +aet +aeF +aet aeD -agJ +ahg +ahg aeF aeF -aeF -aeF -afA -agY -aaa -aaa -aae -aht -ahw -ahw -ahw +ahu +ahC +ahO +ahC +ain +ahM +ahM aht ajm ajv @@ -118382,33 +117974,33 @@ aaa aaa aaa aaa -aaa -aeu -afp -aeJ +aet +aeS +aeF +afC +aeF +aeF +afC aeF aeF aeF +agX +aet aeF -aeF -agJ -aeF -aeF -aeF -aeF -ahe -aeF -agg -agY -aaa -aaa -aaa -aaa -aaa -aae -aae -aaa -aae +aeD +aet +aet +aet +aet +aet +aet +ahw +ahN +ahw +ain +ahM +ahM +aht ajk ajw ajM @@ -118639,33 +118231,33 @@ aaa aaa aaa aaa -aaa -aaa -aeu -aeJ -aeF -aeF -aeF -aeF -aeF +aet +aeD +afo +aet aeF aeF +aeD +aet +aet +aet +aet +aeD agJ aeF aeF aeF -agg -agY -aaa -aaa -aaa -aaa -aaa -aaa +aeF +aet +aet aaa aae aae -aae +aht +ahw +ahw +ahw +aht ajk ajx ajM @@ -118897,28 +118489,28 @@ aaa aaa aaa aaa -aaa -aes -aeR -afW -afp -afV -afV -afB -agL -afB -afV -afV -afp -afW -aeR -agZ +aet +aet +aet +aeF +aeF +aeF +aeF +aeF +agJ +aeF +aeF +aeF +aeF +ahe +aeF +aeD +aet aaa aaa aaa -aaa -aaa -aab +aae +aka aaa aaa aae @@ -118926,8 +118518,8 @@ aae ajn ajy ajM -aka -akb +ajy +ajn aht ale akZ @@ -119154,23 +118746,23 @@ aaa aaa aaa aaa -aes -aeT -afq -afq +aaa aet -agh -aeF -aeF -aeF -aeF -aeF -aha aet -afq -afq -ahj -agZ +aeF +aeF +aeF +aeF +aeF +aeF +aeF +agJ +aeF +aeF +aeF +aeD +aet +aaa aaa aaa aaa @@ -119183,7 +118775,7 @@ aae aaa ajn ajN -akb +ajn aaa aht alf @@ -119275,13 +118867,13 @@ cFV cFW aaa aaa -cIV -cJB +cIQ +cIQ cJz cJz cJz -cLx -cLM +cIQ +cIQ aaa aaa aaa @@ -119410,25 +119002,25 @@ aaa aaa aaa aaa -aes -aeT -afq -afq -afX -afk -aeI -aeF -agx -agM -agJ -aeF -agg -afk -ahf -afq -afq -ahj -agZ +aaa +aaa +aet +aet +afW +aet +aet +aet +afB +agL +afB +aet +aet +aet +afW +aet +aet +aaa +aaa aaa aaa aaa @@ -119532,13 +119124,13 @@ byO cFW aaa aaa -cIW -cJC +cIQ +cIQ cKj cKj cKj -cJC -cLN +cIQ +cIQ aaa aaa aaa @@ -119666,27 +119258,27 @@ aaa aaa aaa aaa -aes -aeJ -aeU -aeU -aeU +aaa +aaa aet -aeu -aeJ -aeF -aeF -agN -aeF -aeF -afA -agY +aeT +afq +afq aet -aeU -aeU -aeU -afA -agZ +agh +aeF +aeF +aeF +aeF +aeF +aha +aet +afq +afq +aeT +aet +aaa +aaa aaa aaa aaa @@ -119923,27 +119515,27 @@ aaa aaa aaa aaa -aeu -aeK -aeK -aeK -aeK -aeK aaa -afA -aeI +aet +aeT +afq +afq +aeT +aet +aeD aeF -agO +agx +agM +agJ aeF -agg -aeJ +aeD +aet +aeT +afq +afq +aeT +aet aaa -aeK -aeK -aeK -aeK -aeK -agY aaa aaa aaa @@ -119997,7 +119589,7 @@ bfb bgG bhJ bjg -bkp +aeI blB bnd bpf @@ -120180,27 +119772,27 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aeu -afk -aeI -agP -agg -afk -agY -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aet +aet +aeU +aeU +aeU +aet +aet +aet +aeF +aeF +agN +aeF +aeF +aet +aet +aet +aeU +aeU +aeU +aet +aet aaa aaa aaa @@ -120254,7 +119846,7 @@ bfc bgH bhK bjh -bkq +aeJ blM bnd bpf @@ -120437,27 +120029,27 @@ aaa aaa aaa aaa +aet +aeK +aeK +aeK +aeK +aeK aaa +aet +aeD +aeF +agO +aeF +aeD +aet aaa -aaa -aaa -aaa -aaa -aaa -aaa -aeu -afk -agQ -afk -agY -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aeK +aeK +aeK +aeK +aeK +aet aaa aaa aaa @@ -120511,7 +120103,7 @@ bfd bdH aYP biW -bkj +aeR blN bne bhG @@ -120701,13 +120293,13 @@ aaa aaa aaa aaa -aaa -aaa aet -agO aet -aaa -aaa +aeD +agP +aeD +aet +aet aaa aaa aaa @@ -120959,11 +120551,11 @@ aaa aaa aaa aaa -aes -afk +aet +aet agQ -afk -agZ +aet +aet aaa aaa aaa @@ -121025,7 +120617,7 @@ bff bgJ aYP biW -bkj +aeR blO bng bpg @@ -121216,11 +120808,11 @@ aaa aaa aaa aaa -afA -aeD -agP -afl -aeJ +aaa +aet +agO +aet +aaa aaa aaa aaa @@ -121282,7 +120874,7 @@ bfg bgK aYP biW -bkm +afk blP bnh bph @@ -121298,7 +120890,7 @@ amc ame amc ame -bPa +azY bQR bSB bUq @@ -121474,9 +121066,9 @@ aaa aaa aaa aet -agy -agP -aeF +aet +agQ +aet aet aaa aaa @@ -121539,7 +121131,7 @@ bfg bgL aYP bjd -bkn +afl blQ bni bpi @@ -121555,9 +121147,9 @@ bDw bzY bzY bzY -bPb +bzW bQS -bSC +bPb bzW bUn bWP @@ -121731,9 +121323,9 @@ aaa aaa aaa aet -agx -agR -aeF +aeD +agP +aeD aet aaa aaa @@ -121988,9 +121580,9 @@ aaa aaa aaa aet +agy +agP aeF -aeF -agx aet aaa aaa @@ -122069,8 +121661,8 @@ bHZ bJL bzY bNe -bPd -bQU +bPf +bQW bSE bzW aaa @@ -122245,8 +121837,8 @@ aaa aaa aaa aet -aeF -aeF +agx +agR aeF aet aaa @@ -122504,7 +122096,7 @@ aaa aet aeF aeF -aeF +agx aet aaa aaa @@ -122567,7 +122159,7 @@ bfj bgO bhL bji -bkq +afp blM bnf bpl @@ -122600,13 +122192,13 @@ cjL clz ccC aaa -cqH -csk +cqI +cqI cqJ cvw cqJ -csk -czz +cqI +cqI aaa aaa afv @@ -122760,7 +122352,7 @@ aaa aaa aet aeF -agx +aeF aeF aet aaa @@ -122824,7 +122416,7 @@ bfk bgP bhM bjj -bkl +afA blR bnf bpm @@ -123074,7 +122666,7 @@ azZ azX azX azX -aRg +aRh bcp bdM bfl @@ -123272,11 +122864,11 @@ aaa aaa aaa aaa -afA -aeI +aet aeF -agg -aeJ +agx +aeF +aet aaa aaa aaa @@ -123529,11 +123121,11 @@ aaa aaa aaa aaa -aeu -aeR -afC -aeR -agY +aet +aeF +aeF +aeF +aet aaa aaa aaa @@ -123628,13 +123220,13 @@ cjO clB ccC aaa -cqK -csk +cqI +cqI cqJ cvx cqJ -csk -czB +cqI +cqI aaa aaa aaa @@ -123786,11 +123378,11 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa +aet +aeD +aeF +aeD +aet aaa aaa aaa @@ -124043,11 +123635,11 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa +aet +aet +afC +aet +aet aaa aaa aaa @@ -125381,7 +124973,7 @@ aae aae azZ arV -aRg +aRh aSw aTC aVu @@ -128454,7 +128046,7 @@ aaa aaa aaa azY -aBr +aBm azY azY azY @@ -129752,7 +129344,7 @@ aCS aPB aRn aRn -aTP +aRn aRn aRn aZj @@ -130556,7 +130148,7 @@ bwf bwf bVy bWR -bYh +bVy bwf aae aaa @@ -131325,9 +130917,9 @@ bwf bwf bTf bwf -bVA +bVz bWU -bYi +bVz aaa aaa aaa diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index bb988a8430..1d010a3fec 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -26,13 +26,13 @@ /obj/machinery/porta_turret/syndicate{ dir = 9 }, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ dir = 8; icon_state = "diagonalWall3" }, /area/shuttle/syndicate) "aae" = ( -/turf/closed/indestructible/opshuttle, +/turf/closed/wall/mineral/plastitanium, /area/shuttle/syndicate) "aaf" = ( /obj/structure/lattice, @@ -351,10 +351,7 @@ /turf/open/floor/plating, /area/security/prison) "aaM" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s6"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium/overspace, /area/shuttle/pod_2) "aaN" = ( /obj/structure/grille, @@ -414,30 +411,27 @@ /area/security/prison) "aaW" = ( /turf/open/space, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ dir = 8; icon_state = "diagonalWall3" }, /area/space) "aaX" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall3"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/pod_2) "aaY" = ( /turf/open/space, /obj/machinery/porta_turret/syndicate{ dir = 5 }, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ dir = 1; icon_state = "diagonalWall3" }, /area/shuttle/syndicate) "aaZ" = ( /turf/open/space, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ dir = 1; icon_state = "diagonalWall3" }, @@ -487,7 +481,7 @@ /area/security/prison) "abf" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "abg" = ( /turf/closed/wall, @@ -647,22 +641,19 @@ }, /area/security/prison) "abv" = ( -/turf/open/floor/plating, /obj/structure/shuttle/engine/propulsion/burst, -/turf/closed/wall/shuttle{ - icon_state = "swall_f5"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/pod_2) "abw" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Escape Pod Airlock" }, /obj/docking_port/mobile/pod{ id = "pod2"; - name = "escape pod 2" + name = "escape pod 2"; + port_angle = 180 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/pod_2) "abx" = ( /turf/open/floor/plating, @@ -1159,7 +1150,7 @@ /turf/open/floor/plasteel/floorgrime, /area/security/prison) "acx" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/structure/cable/yellow{ d1 = 4; d2 = 8; @@ -1712,26 +1703,16 @@ name = "\improper Recreation Area" }) "adn" = ( -/turf/open/floor/plating, /obj/structure/shuttle/engine/propulsion/burst{ dir = 4 }, -/turf/closed/wall/shuttle{ - icon_state = "swall_f6"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/pod_3) "ado" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall12"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/pod_3) "adp" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s10"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium/overspace, /area/shuttle/pod_3) "adq" = ( /obj/structure/table, @@ -1939,15 +1920,17 @@ name = "\improper Recreation Area" }) "adJ" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Escape Pod Airlock" }, /obj/docking_port/mobile/pod{ dir = 4; id = "pod3"; - name = "escape pod 3" + name = "escape pod 3"; + port_angle = 180; + preferred_direction = 4 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/pod_3) "adK" = ( /obj/docking_port/stationary/random{ @@ -1971,7 +1954,7 @@ possible_destinations = "pod_asteroid2"; shuttleId = "pod2" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/pod_2) "adM" = ( /obj/structure/grille, @@ -2387,10 +2370,11 @@ /obj/item/weapon/gun/energy/ionrifle{ pin = /obj/item/device/firing_pin }, -/obj/item/clothing/suit/armor/laserproof, /obj/machinery/light{ dir = 1 }, +/obj/item/weapon/gun/energy/temperature/security, +/obj/item/clothing/suit/armor/laserproof, /turf/open/floor/plasteel/vault{ dir = 4 }, @@ -2405,7 +2389,7 @@ name = "3maintenance loot spawner" }, /obj/effect/spawner/lootdrop/armory_contraband{ - loot = list(/obj/item/weapon/gun/projectile/automatic/pistol = 5, /obj/item/weapon/gun/projectile/shotgun/automatic/combat = 5, /obj/item/weapon/gun/projectile/revolver/mateba, /obj/item/weapon/gun/projectile/automatic/pistol/deagle, /obj/item/weapon/storage/box/syndie_kit/throwing_weapons = 3) + loot = list(/obj/item/weapon/gun/ballistic/automatic/pistol = 5, /obj/item/weapon/gun/ballistic/shotgun/automatic/combat = 5, /obj/item/weapon/gun/ballistic/revolver/mateba, /obj/item/weapon/gun/ballistic/automatic/pistol/deagle, /obj/item/weapon/storage/box/syndie_kit/throwing_weapons = 3) }, /turf/open/floor/plasteel/vault{ dir = 4 @@ -3487,12 +3471,12 @@ /area/ai_monitored/security/armory) "agh" = ( /obj/structure/rack, -/obj/item/weapon/gun/energy/gun/advtaser{ +/obj/item/weapon/gun/energy/e_gun/advtaser{ pixel_x = -3; pixel_y = 3 }, -/obj/item/weapon/gun/energy/gun/advtaser, -/obj/item/weapon/gun/energy/gun/advtaser{ +/obj/item/weapon/gun/energy/e_gun/advtaser, +/obj/item/weapon/gun/energy/e_gun/advtaser{ pixel_x = 3; pixel_y = -3 }, @@ -3939,13 +3923,13 @@ pixel_y = 0 }, /obj/structure/rack, -/obj/item/weapon/storage/fancy, +/obj/item/weapon/storage/fancy/donut_box, /turf/open/floor/plasteel/vault{ dir = 1 }, /area/ai_monitored/security/armory) "agY" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -3959,23 +3943,23 @@ /obj/item/weapon/storage/box/rubbershot, /obj/item/weapon/storage/box/rubbershot, /obj/item/weapon/storage/box/rubbershot, -/obj/item/weapon/gun/projectile/shotgun/riot{ +/obj/item/weapon/gun/ballistic/shotgun/riot{ pixel_x = -3; pixel_y = 3 }, -/obj/item/weapon/gun/projectile/shotgun/riot, +/obj/item/weapon/gun/ballistic/shotgun/riot, /turf/open/floor/plasteel/vault{ dir = 1 }, /area/ai_monitored/security/armory) "aha" = ( /obj/structure/rack, -/obj/item/weapon/gun/energy/gun{ +/obj/item/weapon/gun/energy/e_gun{ pixel_x = -3; pixel_y = 3 }, -/obj/item/weapon/gun/energy/gun, -/obj/item/weapon/gun/energy/gun{ +/obj/item/weapon/gun/energy/e_gun, +/obj/item/weapon/gun/energy/e_gun{ pixel_x = 3; pixel_y = -3 }, @@ -4011,7 +3995,7 @@ /turf/open/floor/carpet, /area/security/hos) "ahf" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/structure/chair{ dir = 1 }, @@ -4501,7 +4485,7 @@ /area/ai_monitored/security/armory) "ahW" = ( /obj/item/clothing/head/festive, -/obj/effect/decal/cleanable/cobweb2, +/obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/plating, /area/maintenance/fore) "ahX" = ( @@ -4520,7 +4504,7 @@ /turf/open/floor/plating, /area/maintenance/fore) "aia" = ( -/obj/effect/decal/cleanable/cobweb2, +/obj/effect/decal/cleanable/cobweb/cobweb2, /obj/structure/table, /obj/item/weapon/stock_parts/manipulator, /obj/effect/spawner/lootdrop/maintenance, @@ -5227,7 +5211,7 @@ }) "ajq" = ( /obj/item/stack/sheet/cardboard, -/obj/machinery/light_construct/small{ +/obj/structure/light_construct/small{ dir = 1 }, /obj/structure/closet/crate, @@ -5633,7 +5617,7 @@ }) "akc" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel, /area/crew_quarters/fitness{ name = "\improper Recreation Area" @@ -5874,12 +5858,12 @@ dir = 8; layer = 2.9 }, -/obj/item/clothing/tie/red{ +/obj/item/clothing/neck/tie/red{ pixel_x = -5; pixel_y = 3 }, -/obj/item/clothing/tie/horrible, -/obj/item/clothing/tie/blue{ +/obj/item/clothing/neck/tie/horrible, +/obj/item/clothing/neck/tie/blue{ pixel_x = 5; pixel_y = -2 }, @@ -6678,7 +6662,7 @@ name = "Port Maintenance" }) "alP" = ( -/obj/machinery/light_construct/small{ +/obj/structure/light_construct/small{ dir = 4 }, /obj/structure/rack{ @@ -7347,8 +7331,9 @@ dir = 8 }, /obj/machinery/conveyor{ - dir = 2; - id = "garbage" + dir = 9; + id = "garbage"; + verted = -1 }, /turf/open/floor/plating, /area/maintenance/disposal) @@ -7361,7 +7346,7 @@ /area/maintenance/disposal) "amW" = ( /obj/machinery/conveyor{ - dir = 4; + dir = 6; id = "garbage" }, /obj/machinery/door/window/eastright{ @@ -7418,7 +7403,7 @@ }) "anb" = ( /obj/structure/table/reinforced, -/obj/machinery/light_construct/small{ +/obj/structure/light_construct/small{ dir = 8 }, /obj/item/weapon/paper_bin{ @@ -7966,7 +7951,7 @@ req_access_txt = "12" }, /obj/machinery/conveyor{ - dir = 2; + dir = 10; id = "garbage" }, /turf/open/floor/plating, @@ -8295,7 +8280,7 @@ pixel_x = 28 }, /obj/structure/closet/secure_closet/warden, -/obj/item/weapon/gun/projectile/automatic/wt550, +/obj/item/weapon/gun/ballistic/automatic/wt550, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) "aoH" = ( @@ -8335,7 +8320,7 @@ /turf/open/floor/plasteel/red, /area/security/main) "aoM" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/structure/disposalpipe/segment{ dir = 4; icon_state = "pipe-c" @@ -8675,7 +8660,7 @@ /area/maintenance/starboard) "apo" = ( /obj/structure/closet, -/obj/effect/decal/cleanable/cobweb2, +/obj/effect/decal/cleanable/cobweb/cobweb2, /obj/item/weapon/reagent_containers/food/drinks/beer{ desc = "Takes you to a whole new level of thinking."; name = "Meta-Cider" @@ -8775,7 +8760,7 @@ pixel_x = 32; pixel_y = 0 }, -/obj/effect/decal/cleanable/cobweb2, +/obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/plating, /area/maintenance/auxsolarstarboard) "apy" = ( @@ -8874,7 +8859,7 @@ /turf/open/floor/plasteel/black, /area/storage/tech) "apG" = ( -/obj/machinery/light_construct/small{ +/obj/structure/light_construct/small{ dir = 4 }, /obj/structure/chair{ @@ -9066,7 +9051,7 @@ /obj/structure/rack, /obj/item/clothing/under/color/blue, /obj/item/clothing/ears/earmuffs, -/obj/item/clothing/tie/blue, +/obj/item/clothing/neck/tie/blue, /obj/item/clothing/head/soft/blue, /obj/structure/sign/poster{ pixel_y = -32 @@ -9143,9 +9128,6 @@ /turf/open/floor/plasteel, /area/security/main) "aqh" = ( -/obj/effect/landmark/start{ - name = "Security Officer" - }, /obj/structure/extinguisher_cabinet{ pixel_x = 27; pixel_y = 0 @@ -9182,7 +9164,7 @@ /obj/structure/rack, /obj/item/clothing/under/color/red, /obj/item/clothing/ears/earmuffs, -/obj/item/clothing/tie/red, +/obj/item/clothing/neck/tie/red, /obj/item/clothing/head/soft/red, /turf/open/floor/plasteel/vault, /area/crew_quarters/fitness{ @@ -9557,7 +9539,7 @@ }) "aqT" = ( /obj/structure/rack, -/obj/effect/decal/cleanable/cobweb2, +/obj/effect/decal/cleanable/cobweb/cobweb2, /obj/item/weapon/storage/toolbox/emergency, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, @@ -9593,7 +9575,7 @@ name = "Port Maintenance" }) "aqX" = ( -/obj/machinery/light_construct/small, +/obj/structure/light_construct/small, /obj/item/weapon/toolbox_tiles_sensor, /turf/open/floor/plating, /area/maintenance/fpmaint2{ @@ -9810,7 +9792,7 @@ /turf/open/floor/plasteel/showroomfloor, /area/security/warden) "arq" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/yellow{ d1 = 1; @@ -9864,6 +9846,9 @@ d2 = 8; icon_state = "4-8" }, +/obj/effect/landmark/start{ + name = "Security Officer" + }, /turf/open/floor/plasteel/red/side, /area/security/main) "arw" = ( @@ -9879,6 +9864,9 @@ d2 = 8; icon_state = "2-8" }, +/obj/effect/landmark/start{ + name = "Security Officer" + }, /turf/open/floor/plasteel/red/side, /area/security/main) "arx" = ( @@ -10006,12 +9994,7 @@ /area/crew_quarters/sleep) "arM" = ( /obj/structure/grille, -/obj/structure/window/reinforced/tinted{ - dir = 5; - health = 120; - icon_state = "twindow"; - reinf = 0 - }, +/obj/structure/window/reinforced/tinted/fulltile, /obj/structure/cable/yellow{ d1 = 1; d2 = 2; @@ -10141,7 +10124,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/warning{ dir = 2 }, @@ -10977,7 +10960,7 @@ req_access_txt = "0"; specialfunctions = 4 }, -/obj/effect/decal/cleanable/cobweb2, +/obj/effect/decal/cleanable/cobweb/cobweb2, /obj/machinery/atmospherics/components/unary/vent_pump{ dir = 4; on = 1 @@ -11455,11 +11438,7 @@ }, /area/maintenance/fore) "atT" = ( -/turf/open/space, -/turf/closed/wall/shuttle{ - icon_state = "swall_f6"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium/overspace, /area/shuttle/labor) "atU" = ( /obj/structure/grille, @@ -11614,12 +11593,7 @@ /area/security/main) "aul" = ( /obj/structure/grille, -/obj/structure/window/reinforced/tinted{ - dir = 5; - health = 120; - icon_state = "twindow"; - reinf = 0 - }, +/obj/structure/window/reinforced/tinted/fulltile, /turf/open/floor/plating, /area/security/main) "aum" = ( @@ -11866,7 +11840,7 @@ "auK" = ( /obj/item/stack/sheet/cardboard, /obj/item/device/flashlight, -/obj/effect/decal/cleanable/cobweb2, +/obj/effect/decal/cleanable/cobweb/cobweb2, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/starboard) @@ -11973,15 +11947,10 @@ }) "auV" = ( /obj/structure/grille, -/obj/structure/window/reinforced/tinted{ - dir = 5; - health = 120; - icon_state = "twindow"; - reinf = 0 - }, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/structure/window/reinforced/tinted/fulltile, /turf/open/floor/plating, /area/maintenance/fpmaint2{ name = "Port Maintenance" @@ -12054,10 +12023,7 @@ /turf/open/floor/plating, /area/maintenance/fore) "avc" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall3"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/labor) "avd" = ( /obj/machinery/computer/shuttle/labor, @@ -12065,19 +12031,19 @@ pixel_x = -31; pixel_y = 0 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/labor) "ave" = ( /obj/structure/chair/office/dark{ dir = 1 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/labor) "avf" = ( /obj/structure/table, /obj/item/weapon/folder/red, /obj/item/weapon/restraints/handcuffs, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/labor) "avg" = ( /obj/structure/disposalpipe/segment{ @@ -12726,7 +12692,6 @@ }) "awe" = ( /obj/structure/disposalpipe/segment, -/mob/living/simple_animal/mouse, /turf/open/floor/plating{ icon_state = "platingdmg2" }, @@ -12754,7 +12719,7 @@ /turf/open/floor/plating, /area/shuttle/labor) "awh" = ( -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/labor) "awi" = ( /obj/machinery/button/flasher{ @@ -12764,7 +12729,7 @@ pixel_y = -26; req_access_txt = "1" }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/labor) "awj" = ( /obj/machinery/mineral/labor_claim_console{ @@ -12772,14 +12737,14 @@ pixel_x = 30; pixel_y = 30 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/labor) "awk" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Labor Shuttle Airlock"; req_access_txt = "2" }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/labor) "awl" = ( /obj/machinery/door/airlock/external{ @@ -13271,17 +13236,10 @@ name = "Port Maintenance" }) "axa" = ( -/turf/open/space, -/turf/closed/wall/shuttle{ - icon_state = "swall_f6"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium/overspace, /area/shuttle/mining) "axb" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall12"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/mining) "axc" = ( /obj/structure/grille, @@ -13373,7 +13331,7 @@ /turf/closed/wall/r_wall, /area/security/nuke_storage) "axm" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Labor Shuttle Airlock"; req_access_txt = "2" }, @@ -13892,7 +13850,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/red/corner{ dir = 4 }, @@ -14051,11 +14009,11 @@ /area/shuttle/mining) "ayx" = ( /obj/structure/table, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/mining) "ayy" = ( /obj/machinery/computer/shuttle/mining, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/mining) "ayz" = ( /obj/structure/grille, @@ -14115,11 +14073,7 @@ /turf/open/floor/plating, /area/maintenance/fore) "ayF" = ( -/obj/structure/closet/secure_closet/freezer/money, -/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka/badminka, -/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass, -/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass, -/obj/item/clothing/head/bearpelt, +/obj/machinery/computer/bank_machine, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -14166,7 +14120,7 @@ }, /area/security/nuke_storage) "ayK" = ( -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/labor) "ayL" = ( /obj/machinery/mineral/labor_claim_console{ @@ -14174,7 +14128,7 @@ pixel_x = 30; pixel_y = 0 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/labor) "ayM" = ( /turf/closed/wall, @@ -14620,7 +14574,7 @@ /obj/item/weapon/twohanded/required/kirbyplants{ icon_state = "plant-22" }, -/obj/effect/decal/cleanable/cobweb2, +/obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/wood, /area/library) "azw" = ( @@ -14632,13 +14586,13 @@ /turf/open/floor/plating/airless, /area/space) "azy" = ( -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/mining) "azz" = ( /obj/structure/chair{ dir = 1 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/mining) "azA" = ( /obj/item/weapon/ore/iron, @@ -14852,9 +14806,7 @@ }, /area/security/nuke_storage) "azO" = ( -/obj/machinery/nuclearbomb/selfdestruct{ - layer = 2 - }, +/obj/machinery/nuclearbomb/selfdestruct, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -14885,7 +14837,7 @@ /obj/structure/chair{ dir = 4 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/labor) "azS" = ( /obj/structure/chair{ @@ -14895,7 +14847,7 @@ id = "gulagshuttleflasher"; pixel_x = 25 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/labor) "azT" = ( /obj/structure/grille, @@ -14973,7 +14925,7 @@ }, /area/security/brig) "aAa" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/red/side{ dir = 1 }, @@ -15248,7 +15200,7 @@ /obj/item/clothing/tie/waistcoat, /obj/item/clothing/suit/toggle/lawyer/black, /obj/item/clothing/under/suit_jacket/red, -/obj/item/clothing/tie/black, +/obj/item/clothing/neck/tie/black, /obj/item/clothing/under/lawyer/blacksuit, /turf/open/floor/plasteel/barber, /area/crew_quarters/sleep) @@ -15525,7 +15477,7 @@ }, /area/library) "aAR" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Mining Shuttle Airlock"; req_access_txt = "0" }, @@ -15535,7 +15487,7 @@ height = 5; id = "mining"; name = "mining shuttle"; - travelDir = 90; + port_angle = 90; width = 7 }, /obj/docking_port/stationary{ @@ -15774,10 +15726,10 @@ /area/security/nuke_storage) "aBl" = ( /obj/structure/closet/crate, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/labor) "aBm" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ id_tag = "prisonshuttle"; name = "Labor Shuttle Airlock" }, @@ -15787,7 +15739,7 @@ height = 5; id = "laborcamp"; name = "labor camp shuttle"; - travelDir = 90; + port_angle = 90; width = 9 }, /obj/docking_port/stationary{ @@ -15798,7 +15750,7 @@ name = "fore bay 1"; width = 9 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/labor) "aBn" = ( /obj/machinery/door/airlock/external{ @@ -15951,7 +15903,7 @@ /turf/open/floor/plasteel/grimy, /area/security/detectives_office) "aBC" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/grimy, /area/security/detectives_office) "aBD" = ( @@ -16338,7 +16290,7 @@ }) "aCm" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel, /area/quartermaster/miningdock{ name = "\improper Mining Office" @@ -16475,7 +16427,7 @@ "aCy" = ( /obj/structure/safe, /obj/item/weapon/storage/secure/briefcase{ - contents = newlist(/obj/item/clothing/suit/armor/vest,/obj/item/weapon/gun/projectile/automatic/pistol,/obj/item/weapon/suppressor,/obj/item/weapon/melee/classic_baton/telescopic,/obj/item/clothing/mask/balaclava,/obj/item/bodybag,/obj/item/weapon/soap/nanotrasen) + contents = newlist(/obj/item/clothing/suit/armor/vest,/obj/item/weapon/gun/ballistic/automatic/pistol,/obj/item/weapon/suppressor,/obj/item/weapon/melee/classic_baton/telescopic,/obj/item/clothing/mask/balaclava,/obj/item/bodybag,/obj/item/weapon/soap/nanotrasen) }, /obj/item/weapon/storage/backpack/dufflebag{ contents = newlist(/obj/item/clothing/under/lawyer/blacksuit,/obj/item/clothing/tie/waistcoat,/obj/item/clothing/suit/toggle/lawyer/black,/obj/item/clothing/shoes/laceup,/obj/item/clothing/gloves/color/black,/obj/item/clothing/glasses/sunglasses,/obj/item/clothing/head/fedora); @@ -16490,10 +16442,10 @@ registered_name = "Thirteen" }, /obj/item/weapon/lazarus_injector, -/obj/item/weapon/gun/energy/gun/advtaser, -/obj/item/weapon/gun/projectile/revolver/russian, +/obj/item/weapon/gun/energy/e_gun/advtaser, +/obj/item/weapon/gun/ballistic/revolver/russian, /obj/item/ammo_box/a357, -/obj/item/clothing/tie/stethoscope, +/obj/item/clothing/neck/stethoscope, /obj/item/weapon/book{ desc = "An undeniably handy book."; icon_state = "bookknock"; @@ -16780,7 +16732,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel, /area/crew_quarters/sleep) "aCX" = ( @@ -16994,12 +16946,13 @@ /turf/open/floor/plating, /area/engine/engineering) "aDr" = ( -/turf/closed/wall, -/area/construction) +/turf/open/floor/plating/warnplate{ + dir = 9 + }, +/area/shuttle/auxillary_base) "aDs" = ( -/obj/machinery/door/airlock/external, -/turf/open/floor/plating, -/area/construction) +/turf/closed/wall, +/area/mining_construction) "aDt" = ( /obj/structure/closet/crate, /obj/item/weapon/coin/silver, @@ -17018,7 +16971,7 @@ }) "aDv" = ( /obj/structure/closet/crate, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/mining) "aDw" = ( /obj/structure/shuttle/engine/heater, @@ -17035,7 +16988,7 @@ /area/shuttle/mining) "aDx" = ( /obj/structure/ore_box, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/mining) "aDy" = ( /obj/machinery/firealarm{ @@ -17131,7 +17084,7 @@ scrub_N2O = 0; scrub_Toxins = 0 }, -/obj/machinery/light_construct/small{ +/obj/structure/light_construct/small{ dir = 4 }, /turf/open/floor/plasteel/floorgrime, @@ -17880,7 +17833,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 }, -/obj/effect/decal/cleanable/cobweb2, +/obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/plating, /area/maintenance/fpmaint2{ name = "Port Maintenance" @@ -17908,7 +17861,9 @@ }, /area/shuttle/mining) "aET" = ( -/obj/machinery/computer/security/mining, +/obj/machinery/computer/security/mining{ + network = list("MINE","AuxBase") + }, /turf/open/floor/plasteel, /area/quartermaster/miningdock{ name = "\improper Mining Office" @@ -18666,7 +18621,7 @@ }, /obj/item/weapon/folder, /obj/item/weapon/folder, -/obj/effect/decal/cleanable/cobweb2, +/obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/plasteel/cult{ dir = 2 }, @@ -19634,15 +19589,19 @@ /turf/open/floor/plasteel, /area/construction) "aHE" = ( -/obj/machinery/light_construct{ +/obj/structure/light_construct{ dir = 1 }, /obj/structure/closet/emcloset, /turf/open/floor/plasteel, /area/construction) "aHF" = ( +/obj/machinery/camera{ + c_tag = "Auxillary Mining Base"; + dir = 1 + }, /turf/open/floor/plating, -/area/construction) +/area/shuttle/auxillary_base) "aHG" = ( /turf/open/floor/plating{ icon_state = "panelscorched" @@ -19670,7 +19629,7 @@ /area/construction) "aHJ" = ( /obj/structure/closet/toolcloset, -/obj/machinery/light_construct{ +/obj/structure/light_construct{ dir = 1 }, /turf/open/floor/plasteel, @@ -20250,8 +20209,20 @@ /turf/open/floor/plating/airless, /area/space) "aIO" = ( -/turf/open/floor/plasteel, -/area/construction) +/obj/machinery/camera{ + c_tag = "Auxillary Base Construction"; + dir = 1 + }, +/obj/machinery/button/door{ + id = "aux_base_shutters"; + name = "Public Shutters Control"; + pixel_x = 0; + pixel_y = -24; + req_access_txt = "0"; + req_one_access_txt = "32;47;48" + }, +/turf/open/floor/plasteel/yellow/side, +/area/mining_construction) "aIP" = ( /obj/structure/closet/crate, /obj/effect/spawner/lootdrop/maintenance{ @@ -21343,7 +21314,7 @@ /area/storage/primary) "aKF" = ( /turf/closed/wall/r_wall, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "aKG" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8; @@ -21546,12 +21517,7 @@ /area/crew_quarters/sleep) "aLa" = ( /obj/structure/grille, -/obj/structure/window/reinforced/tinted{ - dir = 5; - health = 120; - icon_state = "twindow"; - reinf = 0 - }, +/obj/structure/window/reinforced/tinted/fulltile, /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/crew_quarters/sleep) @@ -21684,7 +21650,7 @@ }, /area/engine/engineering) "aLo" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/engine/engineering) @@ -21783,7 +21749,7 @@ }, /area/space) "aLA" = ( -/obj/machinery/light_construct{ +/obj/structure/light_construct{ dir = 8 }, /turf/open/floor/plating, @@ -21798,7 +21764,7 @@ }, /area/construction) "aLD" = ( -/obj/machinery/light_construct{ +/obj/structure/light_construct{ dir = 4 }, /obj/machinery/light_switch{ @@ -22098,14 +22064,14 @@ dir = 4 }, /turf/closed/wall/r_wall, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "aMh" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /obj/machinery/porta_turret/ai, /turf/open/floor/plasteel/black, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "aMi" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber{ dir = 8; @@ -22119,7 +22085,7 @@ id = "AI" }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "aMj" = ( /obj/structure/sign/kiddieplaque{ pixel_y = 32 @@ -22135,7 +22101,7 @@ pixel_y = 10 }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "aMk" = ( /obj/machinery/atmospherics/components/unary/vent_pump{ dir = 4; @@ -22145,20 +22111,20 @@ pixel_y = 23 }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "aMl" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/machinery/porta_turret/ai, /turf/open/floor/plasteel/black, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "aMm" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /turf/closed/wall/r_wall, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "aMn" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -22760,10 +22726,10 @@ id = "AI" }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "aNB" = ( /turf/open/floor/bluegrid, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "aNC" = ( /obj/structure/table, /obj/machinery/door/window{ @@ -22785,7 +22751,7 @@ /obj/item/weapon/aiModule/zeroth/oneHuman, /obj/item/weapon/aiModule/reset/purge, /turf/open/floor/plasteel/black, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "aND" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/item/device/radio/intercom{ @@ -22823,7 +22789,7 @@ }, /area/crew_quarters/courtroom) "aNH" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/bot, /area/crew_quarters/courtroom) "aNI" = ( @@ -23030,12 +22996,7 @@ /area/crew_quarters/locker) "aOa" = ( /obj/structure/grille, -/obj/structure/window/reinforced/tinted{ - dir = 5; - health = 120; - icon_state = "twindow"; - reinf = 0 - }, +/obj/structure/window/reinforced/tinted/fulltile, /turf/open/floor/plating, /area/hallway/secondary/construction{ name = "\improper Garden" @@ -23262,10 +23223,7 @@ /turf/open/space, /area/space) "aOy" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s6"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium/overspace, /area/shuttle/pod_1) "aOz" = ( /obj/structure/grille, @@ -23427,7 +23385,7 @@ dir = 2; network = list("SS13") }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 }, @@ -23533,13 +23491,13 @@ icon_state = "0-2" }, /turf/open/floor/plating, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "aPc" = ( /obj/machinery/porta_turret/ai{ dir = 4 }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "aPd" = ( /obj/machinery/computer/upload/borg, /obj/structure/window/reinforced{ @@ -23560,11 +23518,11 @@ req_access_txt = "16" }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "aPe" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/black, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "aPf" = ( /obj/machinery/computer/upload/ai, /obj/structure/window/reinforced{ @@ -23585,13 +23543,13 @@ req_access_txt = "16" }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "aPg" = ( /obj/machinery/porta_turret/ai{ dir = 8 }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "aPh" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber{ dir = 1; @@ -23688,7 +23646,7 @@ /turf/open/floor/wood, /area/lawoffice) "aPs" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/wood, /area/lawoffice) "aPt" = ( @@ -23901,7 +23859,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel, /area/hallway/secondary/construction{ name = "\improper Garden" @@ -24109,10 +24067,7 @@ /turf/open/space, /area/space) "aQb" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall3"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/pod_1) "aQc" = ( /obj/structure/chair{ @@ -24124,19 +24079,20 @@ /obj/item/weapon/storage/pod{ pixel_x = -26 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/pod_2) "aQd" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, /area/construction) "aQe" = ( -/obj/machinery/light_construct{ - dir = 4 +/obj/structure/closet/secure_closet/miner{ + locked = 0 }, -/obj/machinery/pipedispenser/disposal/transit_tube, -/turf/open/floor/plasteel, -/area/construction) +/turf/open/floor/plating/warnplate{ + dir = 6 + }, +/area/shuttle/auxillary_base) "aQf" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9; @@ -24365,7 +24321,7 @@ }, /obj/structure/cable/yellow, /turf/open/floor/plating, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "aQx" = ( /obj/structure/table, /obj/structure/cable/yellow{ @@ -24375,7 +24331,7 @@ }, /obj/item/weapon/aiModule/supplied/quarantine, /turf/open/floor/plasteel/black, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "aQy" = ( /obj/structure/cable/yellow{ d1 = 4; @@ -24383,7 +24339,7 @@ icon_state = "4-8" }, /turf/open/floor/bluegrid, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "aQz" = ( /obj/structure/cable/yellow{ d1 = 4; @@ -24391,7 +24347,7 @@ icon_state = "4-8" }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "aQA" = ( /obj/structure/cable/yellow{ d1 = 2; @@ -24408,7 +24364,7 @@ uses = 8 }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "aQB" = ( /obj/structure/table, /obj/structure/cable/yellow{ @@ -24418,7 +24374,7 @@ }, /obj/item/weapon/aiModule/supplied/freeform, /turf/open/floor/plasteel/black, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "aQC" = ( /obj/structure/grille, /obj/structure/window/reinforced/fulltile, @@ -24428,7 +24384,7 @@ }, /obj/structure/cable/yellow, /turf/open/floor/plating, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "aQD" = ( /obj/structure/cable/yellow{ d1 = 1; @@ -24574,12 +24530,7 @@ /area/crew_quarters/locker) "aQR" = ( /obj/structure/grille, -/obj/structure/window/reinforced/tinted{ - dir = 5; - health = 120; - icon_state = "twindow"; - reinf = 0 - }, +/obj/structure/window/reinforced/tinted/fulltile, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -24804,7 +24755,7 @@ possible_destinations = "pod_asteroid3"; shuttleId = "pod3" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/pod_3) "aRk" = ( /turf/open/floor/plating{ @@ -24927,7 +24878,9 @@ /turf/closed/wall, /area/quartermaster/qm) "aRy" = ( -/obj/machinery/computer/security/mining, +/obj/machinery/computer/security/mining{ + network = list("MINE","AuxBase") + }, /obj/machinery/light_switch{ pixel_x = -23; pixel_y = 0 @@ -25015,7 +24968,7 @@ }, /area/storage/primary) "aRG" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel, /area/storage/primary) "aRH" = ( @@ -25048,7 +25001,7 @@ pixel_y = -24 }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "aRJ" = ( /obj/machinery/power/apc{ cell_type = 5000; @@ -25066,7 +25019,7 @@ network = list("SS13","RD","AIUpload") }, /turf/open/floor/bluegrid, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "aRK" = ( /obj/structure/cable/yellow{ d1 = 2; @@ -25079,7 +25032,7 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "aRL" = ( /obj/item/device/radio/intercom{ broadcasting = 1; @@ -25093,7 +25046,7 @@ network = list("SS13","RD","AIUpload") }, /turf/open/floor/bluegrid, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "aRM" = ( /obj/structure/table, /obj/machinery/light{ @@ -25111,7 +25064,7 @@ pixel_y = -24 }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "aRN" = ( /obj/machinery/light{ icon_state = "tube1"; @@ -25134,12 +25087,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/structure/window/reinforced/tinted{ - dir = 5; - health = 120; - icon_state = "twindow"; - reinf = 0 - }, +/obj/structure/window/reinforced/tinted/fulltile, /turf/open/floor/plating, /area/crew_quarters/courtroom) "aRP" = ( @@ -25699,22 +25647,19 @@ name = "Arrivals" }) "aSK" = ( -/turf/open/floor/plating, /obj/structure/shuttle/engine/propulsion/burst, -/turf/closed/wall/shuttle{ - icon_state = "swall_f5"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/pod_1) "aSL" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Escape Pod Airlock" }, /obj/docking_port/mobile/pod{ id = "pod1"; - name = "escape pod 1" + name = "escape pod 1"; + port_angle = 180 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/pod_1) "aSM" = ( /turf/open/floor/plating, @@ -25725,20 +25670,19 @@ }, /area/shuttle/pod_1) "aSN" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/structure/closet/toolcloset, +/obj/machinery/light{ + dir = 8 }, -/turf/open/floor/plasteel, -/area/construction) +/turf/open/floor/plasteel/yellow/side{ + dir = 9 + }, +/area/mining_construction) "aSO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 +/turf/open/floor/plasteel/yellow/side{ + dir = 1 }, -/turf/open/floor/plasteel, -/area/construction) +/area/mining_construction) "aSP" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 10 @@ -25746,12 +25690,15 @@ /turf/open/floor/plasteel, /area/construction) "aSQ" = ( -/obj/structure/rack{ - dir = 1 +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 }, -/obj/item/clothing/suit/hazardvest, -/turf/open/floor/plasteel, -/area/construction) +/turf/open/floor/plasteel/yellow/side{ + dir = 5 + }, +/area/mining_construction) "aSR" = ( /obj/effect/landmark{ name = "revenantspawn" @@ -25904,7 +25851,7 @@ dir = 1 }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "aTf" = ( /obj/structure/cable/yellow{ d1 = 1; @@ -25912,13 +25859,13 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "aTg" = ( /obj/machinery/porta_turret/ai{ dir = 1 }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "aTh" = ( /obj/structure/cable/yellow{ d1 = 1; @@ -25995,7 +25942,7 @@ /turf/open/floor/plasteel, /area/crew_quarters/locker) "aTr" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel, /area/crew_quarters/locker) "aTs" = ( @@ -26292,9 +26239,14 @@ name = "Arrivals" }) "aTT" = ( -/obj/machinery/light/small, -/turf/open/floor/plating/warnplate{ - dir = 1 +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" }, /area/hallway/secondary/entry{ name = "Arrivals" @@ -26317,14 +26269,14 @@ /turf/open/floor/plasteel, /area/construction) "aTX" = ( -/obj/machinery/light_construct, -/turf/open/floor/plasteel, -/area/construction) +/obj/structure/closet/toolcloset, +/turf/open/floor/plasteel/yellow/side{ + dir = 10 + }, +/area/mining_construction) "aTY" = ( -/obj/structure/table, -/obj/item/clothing/gloves/color/orange, -/turf/open/floor/plasteel, -/area/construction) +/turf/open/floor/plasteel/yellow/side, +/area/mining_construction) "aTZ" = ( /obj/structure/table, /obj/item/clothing/head/hardhat/orange{ @@ -26335,34 +26287,64 @@ /turf/open/floor/plasteel, /area/construction) "aUa" = ( +/obj/structure/rack{ + dir = 4 + }, +/obj/item/weapon/electronics/airlock, +/obj/item/weapon/electronics/airlock, +/obj/item/weapon/electronics/airlock, +/obj/item/weapon/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/device/assault_pod/mining, +/obj/structure/cable/yellow{ + d2 = 8; + icon_state = "0-8" + }, /obj/machinery/power/apc{ dir = 2; - name = "Construction Area APC"; + name = "Auxillary Base Construction APC"; + pixel_x = 0; pixel_y = -24 }, -/obj/structure/cable/yellow{ - d2 = 4; - icon_state = "0-4" - }, -/obj/machinery/light_construct, -/turf/open/floor/plating, -/area/construction) +/turf/open/floor/plasteel/yellow/side, +/area/mining_construction) "aUb" = ( -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 8; - icon_state = "2-8" +/obj/structure/table, +/obj/item/stack/sheet/metal{ + amount = 50 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/construction) +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/weapon/pipe_dispenser, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/turf/open/floor/plasteel/yellow/side, +/area/mining_construction) "aUc" = ( -/obj/machinery/light_switch{ - pixel_x = 26; - pixel_y = 0 +/obj/structure/table, +/obj/item/stack/sheet/plasteel{ + amount = 10 }, -/turf/open/floor/plasteel, -/area/construction) +/obj/item/stack/rods{ + amount = 50 + }, +/obj/item/weapon/storage/box/lights/mixed, +/turf/open/floor/plasteel/yellow/side{ + dir = 6 + }, +/area/mining_construction) "aUd" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/yellow{ @@ -26600,7 +26582,7 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai_upload) +/area/ai_monitored/turret_protected/ai_upload) "aUy" = ( /obj/structure/cable/yellow{ d1 = 1; @@ -26616,12 +26598,7 @@ /area/hallway/primary/fore) "aUz" = ( /obj/structure/grille, -/obj/structure/window/reinforced/tinted{ - dir = 5; - health = 120; - icon_state = "twindow"; - reinf = 0 - }, +/obj/structure/window/reinforced/tinted/fulltile, /turf/open/floor/plating, /area/crew_quarters/courtroom) "aUA" = ( @@ -27026,7 +27003,7 @@ }) "aVk" = ( /turf/closed/wall/r_wall, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "aVl" = ( /obj/structure/cable{ d1 = 2; @@ -27034,7 +27011,7 @@ icon_state = "2-4" }, /turf/closed/wall/r_wall, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "aVm" = ( /obj/machinery/power/smes{ charge = 5e+006 @@ -27044,7 +27021,7 @@ d2 = 4 }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "aVn" = ( /obj/structure/cable{ d1 = 2; @@ -27053,7 +27030,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/closed/wall/r_wall, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "aVo" = ( /obj/structure/lattice, /obj/structure/window/reinforced{ @@ -27124,25 +27101,15 @@ }) "aVu" = ( /obj/structure/grille, -/obj/structure/window/reinforced/tinted{ - dir = 5; - health = 120; - icon_state = "twindow"; - reinf = 0 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/window/reinforced/tinted/fulltile, /turf/open/floor/plating, /area/hallway/secondary/entry{ name = "Arrivals" }) "aVv" = ( /obj/structure/grille, -/obj/structure/window/reinforced/tinted{ - dir = 5; - health = 120; - icon_state = "twindow"; - reinf = 0 - }, +/obj/structure/window/reinforced/tinted/fulltile, /turf/open/floor/plating, /area/hallway/secondary/entry{ name = "Arrivals" @@ -27382,7 +27349,7 @@ /area/hallway/primary/central) "aVR" = ( /turf/closed/wall/r_wall, -/area/turret_protected/ai_upload_foyer) +/area/ai_monitored/turret_protected/ai_upload_foyer) "aVS" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber{ on = 1; @@ -27430,7 +27397,7 @@ /turf/open/floor/plasteel/vault{ dir = 6 }, -/area/turret_protected/ai_upload_foyer) +/area/ai_monitored/turret_protected/ai_upload_foyer) "aVT" = ( /obj/structure/cable/yellow{ d1 = 1; @@ -27443,7 +27410,7 @@ icon_state = "2-8" }, /turf/open/floor/plasteel/vault, -/area/turret_protected/ai_upload_foyer) +/area/ai_monitored/turret_protected/ai_upload_foyer) "aVU" = ( /obj/machinery/atmospherics/components/unary/vent_pump{ dir = 2; @@ -27473,7 +27440,7 @@ /turf/open/floor/plasteel/vault{ dir = 10 }, -/area/turret_protected/ai_upload_foyer) +/area/ai_monitored/turret_protected/ai_upload_foyer) "aVV" = ( /obj/structure/sign/directions/security{ desc = "A direction sign, pointing out which way the security department is."; @@ -27833,7 +27800,7 @@ dir = 4 }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "aWG" = ( /obj/machinery/status_display{ density = 0; @@ -27848,7 +27815,7 @@ scrub_Toxins = 0 }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "aWH" = ( /obj/structure/showcase{ density = 0; @@ -27861,7 +27828,7 @@ pixel_y = 20 }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "aWI" = ( /obj/structure/cable/yellow{ d1 = 4; @@ -27904,7 +27871,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/black, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "aWK" = ( /obj/machinery/status_display{ density = 0; @@ -27917,13 +27884,13 @@ on = 1 }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "aWL" = ( /obj/machinery/porta_turret/ai{ dir = 8 }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "aWM" = ( /obj/structure/grille, /obj/structure/window/reinforced/fulltile, @@ -27988,6 +27955,12 @@ dir = 4; on = 1 }, +/obj/machinery/status_display{ + density = 0; + layer = 4; + pixel_x = 0; + pixel_y = 32 + }, /turf/open/floor/plasteel/warning{ dir = 1 }, @@ -28019,26 +27992,31 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/light{ - dir = 1 +/obj/structure/cable/yellow{ + icon_state = "1-4"; + d1 = 1; + d2 = 4 }, -/turf/open/floor/plasteel/warning{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/yellow/side{ dir = 1 }, /area/hallway/secondary/entry{ name = "Arrivals" }) "aWW" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +/obj/machinery/light{ + dir = 1 }, -/obj/machinery/status_display{ - density = 0; - layer = 4; - pixel_x = 0; - pixel_y = 32 +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 2 }, -/turf/open/floor/plasteel/warning{ +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/turf/open/floor/plasteel/yellow/corner{ dir = 1 }, /area/hallway/secondary/entry{ @@ -28248,7 +28226,9 @@ name = "Station Intercom (General)"; pixel_x = 27 }, -/obj/machinery/computer/security/mining, +/obj/machinery/computer/security/mining{ + network = list("MINE","AuxBase") + }, /turf/open/floor/plasteel/red/side{ dir = 4 }, @@ -28306,7 +28286,7 @@ "aXt" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall/r_wall, -/area/turret_protected/ai_upload_foyer) +/area/ai_monitored/turret_protected/ai_upload_foyer) "aXu" = ( /obj/machinery/door/airlock/highsecurity{ name = "Secure Network Access"; @@ -28318,11 +28298,11 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/vault, -/area/turret_protected/ai_upload_foyer) +/area/ai_monitored/turret_protected/ai_upload_foyer) "aXv" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/closed/wall/r_wall, -/area/turret_protected/ai_upload_foyer) +/area/ai_monitored/turret_protected/ai_upload_foyer) "aXw" = ( /obj/machinery/airalarm{ pixel_y = 23 @@ -28726,21 +28706,21 @@ dir = 8 }, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "aYi" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "aYj" = ( /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "aYk" = ( /obj/machinery/ai_slipper{ icon_state = "motion0"; uses = 10 }, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "aYl" = ( /obj/structure/cable{ d1 = 1; @@ -28751,7 +28731,7 @@ dir = 5 }, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "aYm" = ( /obj/structure/cable{ d1 = 2; @@ -28762,7 +28742,7 @@ dir = 4 }, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "aYn" = ( /obj/machinery/light{ icon_state = "tube1"; @@ -28773,7 +28753,7 @@ pixel_y = 0 }, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "aYo" = ( /obj/structure/grille, /obj/structure/window/reinforced/fulltile, @@ -28802,7 +28782,6 @@ pixel_x = 0; pixel_y = -32 }, -/obj/machinery/light, /turf/open/floor/plasteel/warning, /area/hallway/secondary/entry{ name = "Arrivals" @@ -28832,8 +28811,9 @@ name = "Arrivals" }) "aYv" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8; + initialize_directions = 11 }, /turf/open/floor/plasteel/warning/corner{ dir = 2 @@ -28908,7 +28888,7 @@ /turf/open/floor/plating, /area/quartermaster/storage) "aYC" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel, /area/quartermaster/storage) "aYD" = ( @@ -29038,7 +29018,6 @@ "aYM" = ( /obj/item/weapon/book/manual/wiki/security_space_law, /obj/machinery/newscaster{ - hitstaken = 1; pixel_x = 0; pixel_y = -32 }, @@ -29530,7 +29509,7 @@ dir = 1; pixel_y = 1 }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/black, /area/construction/hallway{ name = "\improper MiniSat Exterior" @@ -29782,7 +29761,7 @@ /turf/open/floor/plating/warnplate{ dir = 2 }, -/area/engine/engineering) +/area/maintenance/starboard) "aZT" = ( /obj/structure/grille, /obj/structure/cable{ @@ -29826,7 +29805,7 @@ /turf/open/floor/plasteel/vault{ dir = 1 }, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "aZW" = ( /obj/structure/cable{ d1 = 1; @@ -29836,7 +29815,7 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "aZX" = ( /obj/structure/grille, /obj/structure/window/reinforced/fulltile, @@ -29845,7 +29824,7 @@ name = "AI core shutters" }, /turf/open/floor/plating, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "aZY" = ( /obj/structure/cable{ d1 = 1; @@ -29855,7 +29834,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "aZZ" = ( /obj/structure/showcase{ density = 0; @@ -29870,7 +29849,7 @@ /turf/open/floor/plasteel/vault{ dir = 4 }, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "baa" = ( /obj/structure/sign/securearea{ desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; @@ -29901,6 +29880,12 @@ name = "Arrivals" }) "bad" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, /turf/open/floor/plasteel/warning{ dir = 6 }, @@ -30205,7 +30190,7 @@ d2 = 4; icon_state = "1-4" }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel, /area/hallway/primary/central) "baE" = ( @@ -30650,22 +30635,19 @@ }, /area/security/checkpoint/engineering) "bbn" = ( -/obj/structure/closet/emcloset, -/obj/machinery/status_display{ - density = 0; - layer = 4; - pixel_x = -32; - pixel_y = 0 +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Library" }, -/turf/open/floor/plasteel/black, -/area/hallway/primary/central) +/turf/open/floor/wood, +/area/library) "bbo" = ( /obj/machinery/space_heater, -/obj/effect/decal/cleanable/cobweb2, +/obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/plating{ icon_state = "platingdmg3" }, -/area/engine/engineering) +/area/maintenance/starboard) "bbp" = ( /obj/effect/landmark{ name = "tripai" @@ -30698,7 +30680,7 @@ /obj/machinery/door/window{ base_state = "rightsecure"; dir = 4; - health = 300; + obj_integrity = 300; icon_state = "rightsecure"; layer = 4.1; name = "Secondary AI Core Access"; @@ -30706,9 +30688,9 @@ req_access_txt = "16" }, /turf/open/floor/greengrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "bbq" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/machinery/flasher{ id = "AI"; pixel_x = -25; @@ -30717,7 +30699,7 @@ /turf/open/floor/plasteel/vault{ dir = 1 }, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "bbr" = ( /obj/machinery/ai_slipper{ icon_state = "motion0"; @@ -30725,7 +30707,7 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "bbs" = ( /obj/machinery/vending/assist, /obj/machinery/light/small{ @@ -30749,7 +30731,7 @@ /obj/machinery/door/window{ base_state = "rightsecure"; dir = 4; - health = 300; + obj_integrity = 300; icon_state = "rightsecure"; name = "Primary AI Core Access"; req_access_txt = "16" @@ -30762,7 +30744,7 @@ /turf/open/floor/plasteel/vault{ dir = 10 }, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "bbv" = ( /obj/machinery/ai_slipper{ icon_state = "motion0"; @@ -30776,9 +30758,9 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "bbw" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/machinery/flasher{ id = "AI"; pixel_x = 25; @@ -30787,7 +30769,7 @@ /turf/open/floor/plasteel/vault{ dir = 4 }, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "bbx" = ( /obj/effect/landmark{ name = "tripai" @@ -30820,7 +30802,7 @@ /obj/machinery/door/window{ base_state = "leftsecure"; dir = 8; - health = 300; + obj_integrity = 300; icon_state = "leftsecure"; layer = 4.1; name = "Tertiary AI Core Access"; @@ -30828,7 +30810,7 @@ req_access_txt = "16" }, /turf/open/floor/greengrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "bby" = ( /turf/open/floor/plating/warnplate{ dir = 2 @@ -31394,7 +31376,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel, /area/hallway/primary/central) "bcs" = ( @@ -31738,7 +31720,7 @@ }, /area/engine/chiefs_office) "bcU" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/neutral{ dir = 8 }, @@ -31887,7 +31869,7 @@ /turf/open/floor/plating/warnplate{ dir = 4 }, -/area/engine/engineering) +/area/maintenance/starboard) "bdi" = ( /obj/machinery/door/airlock/external{ req_access_txt = "13" @@ -31908,7 +31890,7 @@ /turf/open/floor/plasteel/vault{ dir = 1 }, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "bdk" = ( /obj/structure/closet/secure_closet/personal, /obj/machinery/light/small{ @@ -31943,7 +31925,7 @@ /turf/open/floor/plasteel/vault{ dir = 4 }, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "bdm" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ req_access_txt = 1 @@ -32263,7 +32245,7 @@ /turf/open/floor/plasteel, /area/storage/tools) "bdT" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel, /area/storage/tools) "bdU" = ( @@ -32348,7 +32330,7 @@ }, /area/storage/tech) "bec" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -32547,7 +32529,7 @@ pixel_y = 0 }, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "beu" = ( /obj/structure/window/reinforced, /obj/structure/window/reinforced{ @@ -32556,22 +32538,16 @@ /turf/open/space, /area/space) "bev" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s6"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium/overspace, /area/shuttle/arrival) "bew" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall12"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/arrival) "bex" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Arrivals Shuttle Airlock" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "bey" = ( /obj/structure/grille, @@ -33517,13 +33493,13 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "bgb" = ( /obj/machinery/airalarm{ pixel_y = 23 }, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "bgc" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible, /obj/machinery/portable_atmospherics/pump, @@ -33544,7 +33520,7 @@ d2 = 4 }, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "bge" = ( /obj/structure/cable{ d1 = 1; @@ -33553,7 +33529,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "bgf" = ( /obj/structure/window/reinforced, /obj/structure/window/reinforced{ @@ -33605,18 +33581,18 @@ pixel_x = 3; pixel_y = -3 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "bgk" = ( -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "bgl" = ( /obj/machinery/computer/arcade, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "bgm" = ( /obj/structure/closet/wardrobe/green, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "bgn" = ( /obj/structure/closet/wardrobe/black, @@ -33625,7 +33601,7 @@ icon_state = "map-left-MS"; pixel_y = 32 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "bgo" = ( /obj/structure/closet/wardrobe/mixed, @@ -33634,11 +33610,11 @@ icon_state = "map-right-MS"; pixel_y = 32 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "bgp" = ( /obj/structure/closet/wardrobe/grey, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "bgq" = ( /obj/machinery/camera{ @@ -33646,7 +33622,7 @@ dir = 2; network = list("SS13") }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "bgr" = ( /turf/closed/wall/shuttle{ @@ -34445,26 +34421,16 @@ /turf/open/floor/plating, /area/engine/break_room) "bhJ" = ( -/turf/open/floor/plating, /obj/structure/shuttle/engine/propulsion/burst{ dir = 4 }, -/turf/closed/wall/shuttle{ - icon_state = "swall_f6"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/pod_4) "bhK" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall12"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/pod_4) "bhL" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s10"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium/overspace, /area/shuttle/pod_4) "bhM" = ( /obj/machinery/door/airlock/hatch{ @@ -34538,11 +34504,11 @@ pixel_y = 0 }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "bhS" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/black, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "bhT" = ( /obj/structure/cable{ d1 = 1; @@ -34550,7 +34516,7 @@ icon_state = "1-4" }, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "bhU" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 6 @@ -34560,20 +34526,20 @@ uses = 10 }, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "bhV" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 }, /turf/open/floor/bluegrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "bhW" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9; pixel_y = 0 }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "bhX" = ( /obj/structure/table/reinforced, /obj/item/weapon/phone{ @@ -34593,7 +34559,7 @@ pixel_y = 0 }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "bhY" = ( /obj/structure/window/reinforced{ dir = 1; @@ -34631,7 +34597,7 @@ /area/storage/primary) "bib" = ( /obj/structure/chair, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "bic" = ( /turf/closed/wall/shuttle{ @@ -34646,13 +34612,13 @@ /obj/effect/landmark{ name = "JoinLate" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "bie" = ( /obj/effect/landmark{ name = "JoinLate" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "bif" = ( /obj/structure/shuttle/engine/heater{ @@ -35122,6 +35088,7 @@ d2 = 8; icon_state = "4-8" }, +/obj/machinery/portable_atmospherics/canister/water_vapor, /mob/living/simple_animal/hostile/lizard{ name = "Wags-His-Tail"; real_name = "Wags-His-Tail" @@ -35377,7 +35344,7 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/wood, /area/crew_quarters/captain{ name = "\improper Captain's Quarters" @@ -35741,15 +35708,17 @@ /turf/open/floor/plating, /area/engine/break_room) "bjS" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Escape Pod Airlock" }, /obj/docking_port/mobile/pod{ dir = 4; id = "pod4"; - name = "escape pod 4" + name = "escape pod 4"; + port_angle = 180; + preferred_direction = 4 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/pod_4) "bjT" = ( /obj/structure/chair{ @@ -35762,7 +35731,7 @@ pixel_x = 6; pixel_y = -32 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/pod_3) "bjU" = ( /obj/docking_port/stationary/random{ @@ -35815,7 +35784,7 @@ dir = 8 }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "bjZ" = ( /obj/structure/chair/office/dark{ dir = 8 @@ -35826,7 +35795,7 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/black, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "bka" = ( /obj/machinery/camera{ c_tag = "AI Chamber - Aft"; @@ -35840,12 +35809,12 @@ scrub_Toxins = 0 }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "bkb" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/black, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "bkc" = ( /obj/structure/cable/yellow{ d1 = 4; @@ -35869,7 +35838,7 @@ pixel_y = -32 }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "bke" = ( /obj/structure/table/reinforced, /obj/item/weapon/folder/blue{ @@ -35880,12 +35849,12 @@ dir = 4 }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "bkf" = ( /obj/effect/landmark{ name = "Observer-Start" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "bkg" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -36677,7 +36646,7 @@ dir = 4; initialize_directions = 11 }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel, /area/engine/break_room) "blx" = ( @@ -36734,16 +36703,16 @@ }) "blD" = ( /turf/closed/wall/r_wall, -/area/turret_protected/tcomfoyer{ +/area/ai_monitored/turret_protected/tcomfoyer{ name = "\improper MiniSat Foyer" }) "blE" = ( /turf/closed/wall/r_wall, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "blF" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall/r_wall, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "blG" = ( /obj/machinery/power/terminal{ icon_state = "term"; @@ -36755,7 +36724,7 @@ pixel_y = 28 }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "blH" = ( /turf/closed/wall/r_wall, /area/ai_monitored/storage/secure{ @@ -36765,7 +36734,7 @@ /obj/structure/chair{ dir = 1 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "blJ" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ @@ -37059,7 +37028,7 @@ }) "bme" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/brown{ dir = 2 }, @@ -37097,7 +37066,7 @@ /area/hallway/primary/port) "bmh" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/brown/corner{ dir = 8 }, @@ -37277,7 +37246,9 @@ d2 = 4; icon_state = "2-4" }, -/obj/machinery/computer/security/mining, +/obj/machinery/computer/security/mining{ + network = list("MINE","AuxBase") + }, /obj/machinery/keycard_auth{ pixel_x = 0; pixel_y = 24 @@ -37310,18 +37281,15 @@ name = "xeno_spawn"; pixel_x = -1 }, -/obj/machinery/shower{ - icon_state = "shower"; - dir = 4 - }, -/obj/machinery/door/window/westright{ - dir = 4 - }, /obj/item/weapon/soap/deluxe, /obj/machinery/atmospherics/components/unary/vent_pump{ dir = 4; on = 1 }, +/obj/machinery/shower{ + pixel_y = 12 + }, +/obj/structure/curtain, /turf/open/floor/plasteel/white, /area/crew_quarters/captain{ name = "\improper Captain's Quarters" @@ -37705,22 +37673,20 @@ /turf/open/space, /area/space) "bnj" = ( -/obj/structure/transit_tube{ - icon_state = "E-SW" - }, /obj/structure/lattice, +/obj/structure/transit_tube/curved/flipped{ + dir = 4 + }, /turf/open/space, /area/space) "bnk" = ( -/obj/structure/transit_tube{ - icon_state = "E-W-Pass" - }, /obj/structure/lattice, +/obj/structure/transit_tube/crossing/horizontal, /turf/open/space, /area/space) "bnl" = ( -/obj/structure/transit_tube{ - icon_state = "W-SE" +/obj/structure/transit_tube/curved{ + dir = 8 }, /turf/open/space, /area/space) @@ -37754,11 +37720,7 @@ name = "\improper MiniSat Exterior" }) "bnq" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector{ - dir = 2; - icon_state = "inje_on"; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/outlet_injector/on, /obj/structure/window/reinforced, /turf/open/floor/plating/airless, /area/construction/hallway{ @@ -37778,7 +37740,7 @@ /turf/open/floor/plasteel/vault{ dir = 8 }, -/area/turret_protected/tcomfoyer{ +/area/ai_monitored/turret_protected/tcomfoyer{ name = "\improper MiniSat Foyer" }) "bns" = ( @@ -37792,7 +37754,7 @@ /turf/open/floor/plasteel/vault{ dir = 8 }, -/area/turret_protected/tcomfoyer{ +/area/ai_monitored/turret_protected/tcomfoyer{ name = "\improper MiniSat Foyer" }) "bnt" = ( @@ -37800,7 +37762,7 @@ /turf/open/floor/plasteel/vault{ dir = 8 }, -/area/turret_protected/tcomfoyer{ +/area/ai_monitored/turret_protected/tcomfoyer{ name = "\improper MiniSat Foyer" }) "bnu" = ( @@ -37809,7 +37771,7 @@ on = 1 }, /turf/open/floor/plasteel/black, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "bnv" = ( /obj/structure/showcase{ density = 0; @@ -37827,11 +37789,11 @@ /turf/open/floor/plasteel/darkblue/corner{ dir = 1 }, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "bnw" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/black, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "bnx" = ( /obj/structure/showcase{ density = 0; @@ -37846,7 +37808,7 @@ /turf/open/floor/plasteel/darkblue/corner{ dir = 4 }, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "bny" = ( /obj/machinery/door/airlock/highsecurity{ icon_state = "door_closed"; @@ -37873,7 +37835,7 @@ pixel_y = 0 }, /turf/open/floor/plasteel/black, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "bnz" = ( /obj/machinery/power/smes{ charge = 5e+006 @@ -37942,14 +37904,14 @@ /area/shuttle/arrival) "bnE" = ( /obj/structure/closet/emcloset, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "bnF" = ( /obj/item/device/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "bnG" = ( /obj/structure/sign/map/left{ @@ -37957,7 +37919,7 @@ icon_state = "map-left-MS"; pixel_y = -32 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "bnH" = ( /obj/structure/sign/map/right{ @@ -37965,14 +37927,14 @@ icon_state = "map-right-MS"; pixel_y = -32 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "bnI" = ( /obj/machinery/requests_console{ department = "Arrival shuttle"; pixel_y = -30 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "bnJ" = ( /obj/structure/shuttle/engine/propulsion{ @@ -38848,9 +38810,7 @@ /turf/open/space, /area/space) "bph" = ( -/obj/structure/transit_tube{ - icon_state = "NE-SW" - }, +/obj/structure/transit_tube/diagonal, /turf/open/space, /area/space) "bpi" = ( @@ -38876,9 +38836,7 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/structure/transit_tube{ - icon_state = "S-NW" - }, +/obj/structure/transit_tube/curved/flipped, /turf/open/floor/plasteel/darkblue/corner{ dir = 1 }, @@ -38992,7 +38950,7 @@ /turf/open/floor/plasteel/darkblue/corner{ dir = 1 }, -/area/turret_protected/tcomfoyer{ +/area/ai_monitored/turret_protected/tcomfoyer{ name = "\improper MiniSat Foyer" }) "bps" = ( @@ -39003,7 +38961,7 @@ /turf/open/floor/plasteel/darkblue/corner{ dir = 1 }, -/area/turret_protected/tcomfoyer{ +/area/ai_monitored/turret_protected/tcomfoyer{ name = "\improper MiniSat Foyer" }) "bpt" = ( @@ -39026,7 +38984,7 @@ /turf/open/floor/plasteel/darkblue/corner{ dir = 1 }, -/area/turret_protected/tcomfoyer{ +/area/ai_monitored/turret_protected/tcomfoyer{ name = "\improper MiniSat Foyer" }) "bpu" = ( @@ -39034,7 +38992,7 @@ dir = 4 }, /turf/closed/wall/r_wall, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "bpv" = ( /obj/machinery/light/small{ dir = 8 @@ -39050,15 +39008,15 @@ /turf/open/floor/plasteel/darkblue/corner{ dir = 1 }, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "bpw" = ( /obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, /turf/open/floor/plasteel/darkblue/corner{ dir = 1 }, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "bpx" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -39067,7 +39025,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/black, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "bpy" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -39075,7 +39033,7 @@ /turf/open/floor/plasteel/darkblue/corner{ dir = 4 }, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "bpz" = ( /obj/machinery/power/apc{ aidisabled = 0; @@ -39098,7 +39056,7 @@ /turf/open/floor/plasteel/darkblue/corner{ dir = 4 }, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "bpA" = ( /obj/machinery/power/terminal{ icon_state = "term"; @@ -39187,7 +39145,7 @@ name = "MiniSat Maintenance" }) "bpE" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Arrivals Shuttle Airlock" }, /obj/docking_port/mobile{ @@ -39195,7 +39153,8 @@ height = 7; id = "arrival"; name = "arrival shuttle"; - travelDir = -90; + port_angle = -90; + preferred_direction = 8; width = 15 }, /obj/docking_port/stationary{ @@ -39813,7 +39772,7 @@ /obj/structure/table/wood, /obj/item/stack/packageWrap, /obj/item/stack/packageWrap, -/obj/item/weapon/gun/projectile/revolver/doublebarrel, +/obj/item/weapon/gun/ballistic/revolver/doublebarrel, /obj/machinery/camera{ c_tag = "Bar - Backroom"; dir = 2; @@ -40094,18 +40053,20 @@ /turf/closed/wall/r_wall, /area/space) "brs" = ( -/obj/structure/transit_tube/station{ - reverse_launch = 1 - }, /obj/structure/sign/securearea{ pixel_y = 32 }, +/obj/structure/transit_tube/station/reverse/flipped{ + dir = 1 + }, +/obj/structure/transit_tube_pod{ + dir = 4 + }, /turf/open/floor/plasteel/darkblue/corner{ dir = 4 }, /area/engine/break_room) "brt" = ( -/obj/structure/transit_tube, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -40116,12 +40077,10 @@ icon_state = "4-8"; pixel_y = 0 }, +/obj/structure/transit_tube/horizontal, /turf/open/space, /area/space) "bru" = ( -/obj/structure/transit_tube{ - icon_state = "E-W-Pass" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -40132,10 +40091,10 @@ icon_state = "4-8"; pixel_y = 0 }, +/obj/structure/transit_tube/crossing/horizontal, /turf/open/space, /area/space) "brv" = ( -/obj/structure/transit_tube, /obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -40146,12 +40105,10 @@ icon_state = "4-8"; pixel_y = 0 }, +/obj/structure/transit_tube/horizontal, /turf/open/space, /area/space) "brw" = ( -/obj/structure/transit_tube{ - icon_state = "W-NE-SE" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -40162,6 +40119,9 @@ icon_state = "4-8"; pixel_y = 0 }, +/obj/structure/transit_tube/junction/flipped{ + dir = 8 + }, /turf/open/space, /area/space) "brx" = ( @@ -40213,10 +40173,6 @@ /turf/open/space, /area/space) "brA" = ( -/obj/structure/transit_tube/station{ - icon_state = "closed"; - dir = 4 - }, /obj/structure/window/reinforced{ dir = 8 }, @@ -40229,6 +40185,9 @@ icon_state = "4-8"; pixel_y = 0 }, +/obj/structure/transit_tube/station{ + dir = 4 + }, /turf/open/floor/plasteel/black, /area/construction/hallway{ name = "\improper MiniSat Exterior" @@ -40264,7 +40223,7 @@ name = "\improper MiniSat Exterior" }) "brD" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/structure/cable/yellow{ icon_state = "4-8"; d1 = 4; @@ -40318,7 +40277,7 @@ req_one_access_txt = "32;19" }, /turf/open/floor/plasteel/black, -/area/turret_protected/tcomfoyer{ +/area/ai_monitored/turret_protected/tcomfoyer{ name = "\improper MiniSat Foyer" }) "brH" = ( @@ -40332,7 +40291,7 @@ d2 = 8 }, /turf/open/floor/plasteel/black, -/area/turret_protected/tcomfoyer{ +/area/ai_monitored/turret_protected/tcomfoyer{ name = "\improper MiniSat Foyer" }) "brI" = ( @@ -40341,9 +40300,9 @@ d1 = 4; d2 = 8 }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/black, -/area/turret_protected/tcomfoyer{ +/area/ai_monitored/turret_protected/tcomfoyer{ name = "\improper MiniSat Foyer" }) "brJ" = ( @@ -40364,7 +40323,7 @@ icon_state = "2-4" }, /turf/open/floor/plasteel/black, -/area/turret_protected/tcomfoyer{ +/area/ai_monitored/turret_protected/tcomfoyer{ name = "\improper MiniSat Foyer" }) "brK" = ( @@ -40380,7 +40339,7 @@ req_one_access_txt = "32;19" }, /turf/open/floor/plasteel/black, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "brL" = ( /obj/structure/cable/yellow{ icon_state = "4-8"; @@ -40391,7 +40350,7 @@ dir = 5 }, /turf/open/floor/plasteel/black, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "brM" = ( /obj/structure/cable/yellow{ icon_state = "4-8"; @@ -40408,7 +40367,7 @@ dir = 10 }, /turf/open/floor/plasteel/black, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "brN" = ( /obj/structure/cable/yellow{ d1 = 2; @@ -40427,7 +40386,7 @@ }, /mob/living/simple_animal/bot/secbot/pingsky, /turf/open/floor/plasteel/black, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "brO" = ( /obj/structure/cable/yellow{ icon_state = "4-8"; @@ -40439,7 +40398,7 @@ on = 1 }, /turf/open/floor/plasteel/black, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "brP" = ( /obj/structure/cable/yellow{ icon_state = "4-8"; @@ -40452,7 +40411,7 @@ d2 = 4 }, /turf/open/floor/plasteel/black, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "brQ" = ( /obj/structure/cable/yellow{ icon_state = "4-8"; @@ -40465,7 +40424,7 @@ req_access_txt = "32" }, /turf/open/floor/plasteel/black, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "brR" = ( /obj/structure/cable/yellow{ d1 = 4; @@ -40595,7 +40554,7 @@ name = "Arrivals" }) "bsa" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/structure/cable/yellow{ d1 = 1; d2 = 2; @@ -40646,7 +40605,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/hologram/holopad{ +/obj/machinery/holopad{ pixel_y = -16 }, /turf/open/floor/carpet, @@ -40715,7 +40674,7 @@ /obj/machinery/door/window{ base_state = "leftsecure"; dir = 8; - health = 300; + obj_integrity = 300; icon_state = "leftsecure"; name = "Primary AI Core Access"; req_access_txt = "16" @@ -40727,7 +40686,7 @@ /turf/open/floor/plasteel/vault{ dir = 6 }, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "bsl" = ( /obj/structure/cable/yellow{ d1 = 4; @@ -40963,10 +40922,6 @@ /turf/open/floor/wood, /area/crew_quarters/heads) "bsD" = ( -/obj/structure/transit_tube{ - dir = 4; - icon_state = "Block" - }, /obj/machinery/status_display{ density = 0; layer = 4; @@ -41511,7 +41466,7 @@ pixel_y = -23 }, /turf/open/floor/plasteel/vault, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "btx" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable/yellow{ @@ -41643,12 +41598,12 @@ dir = 4; pixel_x = 0 }, -/obj/structure/transit_tube{ - icon_state = "W-SE" - }, /obj/machinery/ai_status_display{ pixel_y = 32 }, +/obj/structure/transit_tube/curved{ + dir = 8 + }, /turf/open/floor/plasteel/darkblue/corner{ dir = 4 }, @@ -41694,8 +41649,8 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/structure/transit_tube{ - icon_state = "E-NW" +/obj/structure/transit_tube/curved{ + dir = 4 }, /turf/open/space, /area/space) @@ -41704,9 +41659,6 @@ dir = 4; pixel_x = 0 }, -/obj/structure/transit_tube{ - icon_state = "D-NE" - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -41751,9 +41703,7 @@ /turf/open/space, /area/space) "btP" = ( -/obj/structure/transit_tube{ - icon_state = "NW-SE" - }, +/obj/structure/transit_tube/diagonal/topleft, /turf/open/space, /area/space) "btQ" = ( @@ -41770,8 +41720,8 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/structure/transit_tube{ - icon_state = "N-SW" +/obj/structure/transit_tube/curved{ + dir = 1 }, /turf/open/floor/plasteel/darkblue/corner{ dir = 8 @@ -41887,7 +41837,7 @@ /turf/open/floor/plasteel/darkblue/corner{ dir = 8 }, -/area/turret_protected/tcomfoyer{ +/area/ai_monitored/turret_protected/tcomfoyer{ name = "\improper MiniSat Foyer" }) "btZ" = ( @@ -41912,7 +41862,7 @@ /turf/open/floor/plasteel/vault{ dir = 1 }, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "bua" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -41934,7 +41884,7 @@ /turf/open/floor/plasteel/darkblue/corner{ dir = 8 }, -/area/turret_protected/tcomfoyer{ +/area/ai_monitored/turret_protected/tcomfoyer{ name = "\improper MiniSat Foyer" }) "bub" = ( @@ -41942,7 +41892,7 @@ dir = 4 }, /turf/closed/wall/r_wall, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "buc" = ( /obj/machinery/light/small{ dir = 8 @@ -41959,7 +41909,7 @@ /turf/open/floor/plasteel/darkblue/corner{ dir = 8 }, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "bud" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -41968,7 +41918,7 @@ /turf/open/floor/plasteel/darkblue/corner{ dir = 8 }, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "bue" = ( /obj/structure/cable/yellow{ d1 = 1; @@ -41977,11 +41927,11 @@ }, /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, /turf/open/floor/plasteel/black, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "buf" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plasteel/darkblue/corner, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "bug" = ( /obj/machinery/status_display{ density = 0; @@ -42002,7 +41952,7 @@ /turf/open/floor/plasteel/vault{ dir = 4 }, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "buh" = ( /obj/machinery/light, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -42011,7 +41961,7 @@ /turf/open/floor/plasteel/darkblue/corner{ dir = 8 }, -/area/turret_protected/tcomfoyer{ +/area/ai_monitored/turret_protected/tcomfoyer{ name = "\improper MiniSat Foyer" }) "bui" = ( @@ -42499,7 +42449,7 @@ /turf/open/floor/carpet, /area/bridge) "buZ" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/carpet, /area/bridge) "bva" = ( @@ -42960,17 +42910,17 @@ /turf/open/space, /area/space) "bvL" = ( -/obj/structure/transit_tube{ - icon_state = "E-NW" - }, /obj/structure/lattice, +/obj/structure/transit_tube/curved{ + dir = 4 + }, /turf/open/space, /area/space) "bvM" = ( -/obj/structure/transit_tube{ - icon_state = "W-NE" - }, /obj/structure/lattice, +/obj/structure/transit_tube/curved/flipped{ + dir = 8 + }, /turf/open/space, /area/space) "bvN" = ( @@ -42978,9 +42928,6 @@ dir = 1; pixel_y = 1 }, -/obj/structure/transit_tube{ - icon_state = "D-NW" - }, /obj/structure/lattice, /turf/open/space, /area/space) @@ -43169,9 +43116,8 @@ "bwj" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/door/airlock/centcom{ - name = "Library"; - opacity = 1 +/obj/machinery/door/airlock/glass{ + name = "Library" }, /turf/open/floor/wood, /area/library) @@ -43180,9 +43126,8 @@ req_access_txt = 1 }, /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/centcom{ - name = "Library"; - opacity = 1 +/obj/machinery/door/airlock/glass{ + name = "Library" }, /turf/open/floor/wood, /area/library) @@ -43322,7 +43267,7 @@ d2 = 8; icon_state = "1-8" }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/carpet, /area/crew_quarters/heads) "bwu" = ( @@ -43446,7 +43391,7 @@ name = "\improper Captain's Quarters" }) "bwJ" = ( -/obj/machinery/hologram/holopad{ +/obj/machinery/holopad{ pixel_x = 9; pixel_y = -9 }, @@ -43742,7 +43687,7 @@ req_access_txt = "16" }, /turf/open/floor/greengrid, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "bxj" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -44249,7 +44194,7 @@ }) "byc" = ( /obj/structure/closet, -/obj/effect/decal/cleanable/cobweb2, +/obj/effect/decal/cleanable/cobweb/cobweb2, /obj/item/weapon/poster/contraband, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, @@ -44455,7 +44400,7 @@ /turf/open/floor/plasteel/black, /area/bridge) "byx" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/machinery/status_display{ density = 0; layer = 4; @@ -45053,18 +44998,17 @@ name = "Arrivals" }) "bzx" = ( -/obj/item/device/radio/intercom{ - freerange = 0; - frequency = 1459; - name = "Station Intercom (General)"; - pixel_x = 0; - pixel_y = -25 - }, /obj/machinery/camera{ c_tag = "Arrivals - Middle Arm - Far"; dir = 1; network = list("SS13") }, +/obj/machinery/status_display{ + density = 0; + layer = 4; + pixel_x = 0; + pixel_y = -32 + }, /turf/open/floor/plasteel/warning, /area/hallway/secondary/entry{ name = "Arrivals" @@ -45707,7 +45651,7 @@ /turf/open/floor/plasteel/vault{ dir = 8 }, -/area/turret_protected/ai) +/area/ai_monitored/turret_protected/ai) "bAC" = ( /obj/effect/landmark/start{ name = "Bartender" @@ -45843,7 +45787,7 @@ }, /mob/living/simple_animal/bot/cleanbot, /turf/open/floor/plasteel/darkblue/corner, -/area/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat_interior) "bAR" = ( /turf/closed/wall, /area/crew_quarters/theatre) @@ -46211,7 +46155,7 @@ name = "\improper Telecoms Control Room" }) "bBu" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -46754,7 +46698,7 @@ "bCu" = ( /obj/structure/table/wood/poker, /obj/effect/spawner/lootdrop{ - loot = list(/obj/item/weapon/gun/projectile/revolver/russian = 5, /obj/item/weapon/storage/box/syndie_kit/throwing_weapons, /obj/item/toy/cards/deck/syndicate = 2); + loot = list(/obj/item/weapon/gun/ballistic/revolver/russian = 5, /obj/item/weapon/storage/box/syndie_kit/throwing_weapons, /obj/item/toy/cards/deck/syndicate = 2); name = "gambling valuables spawner" }, /turf/open/floor/wood, @@ -47149,7 +47093,7 @@ name = "Arrivals" }) "bDi" = ( -/obj/effect/decal/cleanable/cobweb2, +/obj/effect/decal/cleanable/cobweb/cobweb2, /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plating, /area/maintenance/fpmaint2{ @@ -47280,7 +47224,7 @@ /turf/open/floor/wood, /area/library) "bDx" = ( -/obj/machinery/portable_atmospherics/canister/bz, +/obj/machinery/portable_atmospherics/canister/nitrogen, /turf/open/floor/plasteel/bot, /area/atmos) "bDy" = ( @@ -47303,7 +47247,7 @@ /turf/open/floor/wood, /area/library) "bDB" = ( -/obj/effect/decal/cleanable/cobweb2, +/obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/wood, /area/library) "bDC" = ( @@ -47651,7 +47595,7 @@ /turf/open/floor/plasteel/bar, /area/crew_quarters/bar) "bDZ" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/bar, /area/crew_quarters/bar) "bEa" = ( @@ -48659,7 +48603,7 @@ /turf/open/floor/wood, /area/crew_quarters/bar) "bFP" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/carpet, /area/crew_quarters/theatre) @@ -48701,7 +48645,7 @@ }, /area/atmos) "bFU" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/atmos) @@ -48931,7 +48875,7 @@ name = "Port Maintenance" }) "bGw" = ( -/obj/machinery/light_construct{ +/obj/structure/light_construct{ dir = 8 }, /turf/open/floor/wood, @@ -48999,6 +48943,10 @@ pixel_x = -32; pixel_y = 0 }, +/obj/machinery/camera/autoname{ + dir = 4; + network = list("SS13") + }, /turf/open/floor/wood, /area/library) "bGD" = ( @@ -49315,7 +49263,7 @@ name = "\improper Command Hallway" }) "bGX" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/structure/cable/yellow{ d1 = 4; d2 = 8; @@ -50044,7 +49992,7 @@ }, /area/atmos) "bHS" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/caution{ dir = 8 }, @@ -50974,7 +50922,7 @@ }, /area/tcommsat/server) "bJL" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/structure/cable/yellow{ d1 = 1; d2 = 4; @@ -51146,7 +51094,7 @@ /turf/open/floor/wood, /area/library) "bKb" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/wood, /area/library) "bKc" = ( @@ -52881,7 +52829,7 @@ /turf/open/floor/wood, /area/security/vacantoffice) "bNk" = ( -/obj/machinery/light_construct{ +/obj/structure/light_construct{ dir = 4 }, /turf/open/floor/wood, @@ -52937,7 +52885,7 @@ name = "Port Maintenance" }) "bNq" = ( -/obj/effect/decal/cleanable/cobweb2, +/obj/effect/decal/cleanable/cobweb/cobweb2, /obj/structure/rack{ dir = 8; layer = 2.9 @@ -53411,7 +53359,7 @@ /area/bridge) "bOg" = ( /obj/structure/rack, -/obj/machinery/telecomms/bus, +/obj/item/weapon/circuitboard/machine/telecomms/bus, /obj/item/weapon/circuitboard/machine/telecomms/broadcaster, /obj/machinery/atmospherics/components/unary/vent_pump{ dir = 1; @@ -53428,7 +53376,7 @@ }) "bOh" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/structure/cable/yellow{ d1 = 1; d2 = 2; @@ -53554,7 +53502,7 @@ /turf/open/floor/plasteel, /area/atmos) "bOv" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel, /area/atmos) "bOw" = ( @@ -53909,13 +53857,13 @@ network = list("SS13") }, /obj/structure/table/wood, +/obj/item/device/taperecorder, +/obj/item/device/tape, /turf/open/floor/wood, /area/library) "bOZ" = ( /obj/machinery/light/small, -/obj/machinery/photocopier{ - pixel_y = 3 - }, +/obj/machinery/libraryscanner, /turf/open/floor/wood, /area/library) "bPa" = ( @@ -53926,16 +53874,10 @@ /turf/open/floor/wood, /area/library) "bPb" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/obj/structure/table/wood, -/obj/item/weapon/clipboard, -/obj/item/device/taperecorder, -/obj/item/device/tape, -/turf/open/floor/wood, -/area/library) +/obj/structure/chair/stool/bar, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) "bPc" = ( /obj/structure/easel, /obj/item/weapon/canvas/twentythreeXtwentythree, @@ -54236,7 +54178,7 @@ icon_state = "1-2" }, /obj/structure/window/reinforced, -/obj/effect/decal/cleanable/cobweb2, +/obj/effect/decal/cleanable/cobweb/cobweb2, /obj/structure/showcase{ desc = "A flimsy model of a standard NanoTrasen automated loyalty implant machine. With secure positioning harnesses and a robotic surgical injector, brain damage and other serious medical anomalies are now up to 60% less likely!"; icon = 'icons/obj/machines/implantchair.dmi'; @@ -54498,7 +54440,7 @@ icon_state = "alarm0"; pixel_x = 24 }, -/turf/open/floor/carpet, +/turf/open/floor/wood, /area/security/vacantoffice) "bPX" = ( /obj/structure/table, @@ -54671,6 +54613,7 @@ network = list("SS13","tcomm") }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/ntnet_relay, /turf/open/floor/plasteel/black{ name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80" @@ -54790,9 +54733,7 @@ name = "Private Study"; req_access_txt = "37" }, -/turf/open/floor/plasteel/cult{ - dir = 2 - }, +/turf/open/floor/engine/cult, /area/library) "bQz" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -54836,7 +54777,7 @@ name = "E.V.A. Storage" }) "bQB" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/warning{ dir = 8 }, @@ -55186,7 +55127,7 @@ }, /area/crew_quarters/kitchen) "bRh" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/cafeteria{ dir = 5 }, @@ -55502,7 +55443,7 @@ dir = 1; icon_state = "comfychair" }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "bRO" = ( /obj/structure/cable/yellow{ @@ -55620,7 +55561,7 @@ name = "Port Maintenance" }) "bRZ" = ( -/obj/effect/decal/cleanable/cobweb2, +/obj/effect/decal/cleanable/cobweb/cobweb2, /obj/structure/closet/emcloset, /turf/open/floor/plating, /area/maintenance/fpmaint2{ @@ -55679,26 +55620,23 @@ /obj/structure/table/wood, /obj/item/weapon/dice/d20, /obj/item/weapon/dice, -/obj/effect/decal/cleanable/cobweb2, +/obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/wood, /area/library) "bSh" = ( -/obj/structure/cult/tome, +/obj/structure/destructible/cult/tome, /obj/machinery/newscaster{ pixel_x = -30; pixel_y = 0 }, /obj/item/clothing/under/suit_jacket/red, /obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plasteel/cult{ - dir = 2 - }, +/obj/item/weapon/book/codex_gigas, +/turf/open/floor/engine/cult, /area/library) "bSi" = ( /obj/structure/chair/comfy/brown, -/turf/open/floor/plasteel/cult{ - dir = 2 - }, +/turf/open/floor/engine/cult, /area/library) "bSj" = ( /obj/effect/landmark{ @@ -55711,9 +55649,7 @@ pixel_x = 30; pixel_y = 0 }, -/turf/open/floor/plasteel/cult{ - dir = 2 - }, +/turf/open/floor/engine/cult, /area/library) "bSk" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -55815,12 +55751,12 @@ d2 = 2; icon_state = "1-2" }, -/obj/item/robot_parts/chest{ +/obj/item/bodypart/chest/robot{ name = "cyborg torso"; pixel_x = -2; pixel_y = 2 }, -/obj/item/robot_parts/head{ +/obj/item/bodypart/head/robot{ name = "cyborg head"; pixel_x = 3; pixel_y = 2 @@ -55870,7 +55806,7 @@ }) "bSw" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/carpet, /area/assembly/showroom{ name = "\improper Corporate Showroom" @@ -56378,7 +56314,7 @@ name = "\improper MiniSat Exterior" }) "bTn" = ( -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "bTo" = ( /obj/structure/cable/yellow{ @@ -56416,7 +56352,7 @@ name = "Port Maintenance" }) "bTs" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/structure/extinguisher_cabinet{ pixel_x = -27; pixel_y = 0 @@ -56450,6 +56386,10 @@ pixel_y = 0 }, /obj/machinery/photocopier, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, /turf/open/floor/wood, /area/library) "bTx" = ( @@ -56459,9 +56399,7 @@ pixel_y = 7 }, /obj/item/weapon/pen/invisible, -/turf/open/floor/plasteel/cult{ - dir = 2 - }, +/turf/open/floor/engine/cult, /area/library) "bTy" = ( /obj/item/device/taperecorder{ @@ -56472,17 +56410,13 @@ pixel_y = -25 }, /obj/structure/table/wood, -/turf/open/floor/plasteel/cult{ - dir = 2 - }, +/turf/open/floor/engine/cult, /area/library) "bTz" = ( /obj/structure/bookcase{ name = "Forbidden Knowledge" }, -/turf/open/floor/plasteel/cult{ - dir = 2 - }, +/turf/open/floor/engine/cult, /area/library) "bTA" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -57192,7 +57126,7 @@ "bUy" = ( /obj/structure/table, /obj/machinery/microwave, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "bUz" = ( /obj/structure/cable/yellow{ @@ -58493,9 +58427,20 @@ }, /area/maintenance/starboard) "bWI" = ( -/mob/living/simple_animal/mouse, +/obj/machinery/door/airlock/external{ + name = "Engineering External Access"; + req_access = null; + req_access_txt = "10;13" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/fans/tiny, /turf/open/floor/plating, -/area/maintenance/starboard) +/area/engine/engineering) "bWJ" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 @@ -60290,7 +60235,7 @@ }) "bZU" = ( /obj/structure/closet, -/obj/item/clothing/tie/stethoscope, +/obj/item/clothing/neck/stethoscope, /obj/item/weapon/hemostat, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, @@ -60501,7 +60446,7 @@ /obj/effect/landmark/start{ name = "Botanist" }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel, /area/hydroponics) "cat" = ( @@ -60790,7 +60735,7 @@ name = "Aft Maintenance" }) "caT" = ( -/obj/machinery/light_construct, +/obj/structure/light_construct, /turf/open/floor/plating{ icon_state = "panelscorched" }, @@ -62250,9 +62195,6 @@ /turf/open/floor/plasteel/black, /area/atmos) "cdo" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 5 - }, /obj/structure/window/reinforced{ dir = 4; pixel_x = 0 @@ -62261,6 +62203,9 @@ dir = 1; pixel_y = 0 }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 8 + }, /turf/open/floor/plasteel/black, /area/atmos) "cdp" = ( @@ -62397,11 +62342,12 @@ id = "whiteship"; launch_status = 0; name = "NT Recovery White-Ship"; + port_angle = -90; + preferred_direction = 4; roundstart_move = "whiteship_away"; - travelDir = 180; width = 27 }, -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "recovery shuttle external airlock" }, /obj/effect/decal/cleanable/dirt{ @@ -62416,7 +62362,7 @@ name = "SS13: Auxiliary Dock, Station-Port"; width = 27 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "cdz" = ( /obj/structure/window/reinforced, @@ -62522,7 +62468,7 @@ d2 = 4; icon_state = "2-4" }, -/obj/machinery/light_construct{ +/obj/structure/light_construct{ dir = 8 }, /turf/open/floor/plating, @@ -62565,7 +62511,7 @@ /obj/structure/rack, /obj/item/stack/sheet/cardboard, /obj/item/device/radio/off, -/obj/machinery/light_construct{ +/obj/structure/light_construct{ dir = 1 }, /obj/effect/spawner/lootdrop/maintenance, @@ -62641,7 +62587,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/item/clothing/tie/stethoscope, +/obj/item/clothing/neck/stethoscope, /turf/open/floor/plating{ icon_state = "platingdmg1" }, @@ -62728,7 +62674,7 @@ name = "Medbay Storage" }) "cdZ" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/effect/landmark/start{ name = "Medical Doctor" }, @@ -62748,6 +62694,8 @@ network = list("SS13","Medbay") }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/limbgrower, +/obj/item/weapon/reagent_containers/glass/beaker/synthflesh, /turf/open/floor/plasteel/whiteblue/side{ dir = 4 }, @@ -62858,7 +62806,7 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 2 }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/white, /area/medical/medbay{ name = "Medbay Central" @@ -62948,7 +62896,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/white, /area/medical/research{ @@ -63026,6 +62974,7 @@ }) "ceA" = ( /obj/machinery/light/small, +/obj/item/toy/dummy, /obj/item/toy/prize/honk{ pixel_y = 12 }, @@ -63652,8 +63601,8 @@ pixel_x = 0; pixel_y = 2 }, -/obj/item/clothing/tie/stethoscope, -/obj/item/clothing/tie/stethoscope, +/obj/item/clothing/neck/stethoscope, +/obj/item/clothing/neck/stethoscope, /obj/item/weapon/gun/syringe, /obj/structure/table/glass, /turf/open/floor/plasteel/whiteblue/side{ @@ -64043,7 +63992,6 @@ scrub_N2O = 0; scrub_Toxins = 0 }, -/mob/living/simple_animal/mouse, /turf/open/floor/plasteel/floorgrime, /area/maintenance/incinerator) "cgp" = ( @@ -65076,7 +65024,7 @@ d2 = 2; icon_state = "0-2" }, -/obj/item/clothing/tie/stethoscope, +/obj/item/clothing/neck/stethoscope, /turf/open/floor/plasteel/vault, /area/medical/sleeper{ name = "Sleepers" @@ -67215,7 +67163,7 @@ pixel_y = 2 }, /obj/structure/table/wood, -/obj/machinery/light_construct/small{ +/obj/structure/light_construct/small{ dir = 1 }, /obj/machinery/newscaster{ @@ -67347,7 +67295,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 6 }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/white, /area/medical/sleeper{ name = "Sleepers" @@ -67902,7 +67850,7 @@ pixel_y = 2 }, /obj/structure/table, -/obj/effect/decal/cleanable/cobweb2, +/obj/effect/decal/cleanable/cobweb/cobweb2, /obj/machinery/reagentgrinder{ pixel_y = 4 }, @@ -68080,7 +68028,7 @@ /turf/open/floor/plasteel/black, /area/medical/surgery) "cni" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/black, /area/medical/surgery) "cnj" = ( @@ -68446,7 +68394,7 @@ /turf/open/floor/plasteel/white, /area/toxins/lab) "cnP" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/warnwhite{ dir = 4 }, @@ -68816,7 +68764,7 @@ name = "Aft Maintenance" }) "cou" = ( -/obj/machinery/light_construct/small{ +/obj/structure/light_construct/small{ dir = 4 }, /obj/machinery/computer/security/telescreen/entertainment{ @@ -69004,7 +68952,7 @@ d2 = 4; icon_state = "2-4" }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/white, /area/medical/chemistry) @@ -69168,12 +69116,7 @@ "cpa" = ( /obj/structure/grille, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/window/reinforced/tinted{ - dir = 5; - health = 120; - icon_state = "twindow"; - reinf = 0 - }, +/obj/structure/window/reinforced/tinted/fulltile, /turf/open/floor/plating, /area/medical/research{ name = "Research Division" @@ -69278,7 +69221,7 @@ /area/toxins/explab) "cpj" = ( /obj/structure/window/reinforced, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/black, /area/construction/hallway{ name = "\improper MiniSat Exterior" @@ -70059,7 +70002,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/white, /area/toxins/explab) "cqC" = ( @@ -70367,7 +70310,7 @@ /obj/structure/closet/wardrobe/chemistry_white{ pixel_x = -3 }, -/obj/item/weapon/storage/backpack/satchel_chem, +/obj/item/weapon/storage/backpack/satchel/chem, /obj/machinery/airalarm{ dir = 4; icon_state = "alarm0"; @@ -70987,14 +70930,11 @@ /turf/open/space, /area/space) "crZ" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector{ - dir = 8; - on = 1; - pixel_y = 0; - use_power = 0 +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8 }, /turf/open/floor/plating/airless, -/area/space) +/area/maintenance/incinerator) "csa" = ( /obj/structure/window/reinforced{ dir = 8 @@ -71058,7 +70998,7 @@ /obj/machinery/porta_turret/syndicate{ dir = 4 }, -/turf/closed/indestructible/opshuttle, +/turf/closed/wall/mineral/plastitanium, /area/shuttle/syndicate) "csi" = ( /obj/structure/cable/yellow{ @@ -71101,7 +71041,7 @@ /obj/effect/landmark/start{ name = "Medical Doctor" }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/white, /area/medical/surgery) "csm" = ( @@ -71952,7 +71892,7 @@ /obj/item/weapon/screwdriver{ pixel_y = 6 }, -/obj/item/clothing/tie/stethoscope, +/obj/item/clothing/neck/stethoscope, /obj/item/weapon/wrench/medical, /turf/open/floor/plasteel/warnwhite{ dir = 4 @@ -72045,7 +71985,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/barber{ dir = 8 }, @@ -73088,6 +73028,7 @@ pixel_x = 0; pixel_y = 32 }, +/obj/effect/landmark/xmastree/rdrod, /turf/open/floor/plasteel/warnwhite{ dir = 8 }, @@ -73143,7 +73084,6 @@ /obj/structure/sign/nosmoking_2{ pixel_y = 32 }, -/obj/machinery/portable_atmospherics/canister/bz, /turf/open/floor/plasteel/warning{ dir = 5 }, @@ -73346,7 +73286,7 @@ "cvL" = ( /obj/structure/table/glass, /obj/item/weapon/pen, -/obj/item/clothing/tie/stethoscope, +/obj/item/clothing/neck/stethoscope, /obj/structure/extinguisher_cabinet{ pixel_x = 6; pixel_y = -30 @@ -73730,7 +73670,7 @@ "cww" = ( /obj/structure/table, /obj/item/weapon/folder/white, -/obj/item/clothing/tie/stethoscope, +/obj/item/clothing/neck/stethoscope, /obj/machinery/light/small{ dir = 8 }, @@ -74139,9 +74079,6 @@ /area/toxins/storage) "cxg" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/landmark/start{ - name = "Scientist" - }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/warning{ dir = 4 @@ -74760,7 +74697,7 @@ }, /area/crew_quarters/hor) "cyg" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/cafeteria{ dir = 5 }, @@ -74965,7 +74902,7 @@ "cyA" = ( /obj/structure/table, /obj/item/weapon/folder/white, -/obj/item/clothing/tie/stethoscope, +/obj/item/clothing/neck/stethoscope, /obj/machinery/light/small{ dir = 8 }, @@ -75105,7 +75042,7 @@ /obj/effect/landmark/start{ name = "Geneticist" }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 }, @@ -75406,7 +75343,6 @@ /obj/machinery/light_switch{ pixel_y = -23 }, -/obj/machinery/portable_atmospherics/canister/bz, /turf/open/floor/plasteel/warning{ dir = 10 }, @@ -75414,6 +75350,9 @@ "czj" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment, +/obj/effect/landmark/start{ + name = "Scientist" + }, /turf/open/floor/plasteel/warning{ dir = 6 }, @@ -75860,7 +75799,6 @@ dir = 9; pixel_y = 0 }, -/mob/living/simple_animal/mouse, /turf/open/floor/plating, /area/maintenance/aft{ name = "Aft Maintenance" @@ -77632,7 +77570,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/effect/landmark/start{ name = "Scientist" }, @@ -77809,7 +77747,7 @@ }) "cDg" = ( /obj/item/weapon/cigbutt, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/cafeteria{ dir = 5 }, @@ -77844,12 +77782,7 @@ }) "cDj" = ( /obj/structure/grille, -/obj/structure/window/reinforced/tinted{ - dir = 5; - health = 120; - icon_state = "twindow"; - reinf = 0 - }, +/obj/structure/window/reinforced/tinted/fulltile, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -78526,9 +78459,12 @@ }, /obj/structure/table, /obj/item/weapon/paper_bin{ - pixel_x = -2; + pixel_x = 6; pixel_y = 4 }, +/obj/item/weapon/paper/morguereminder{ + pixel_x = -4 + }, /obj/effect/landmark{ name = "revenantspawn" }, @@ -81086,7 +81022,7 @@ /obj/effect/landmark{ name = "lightsout" }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/white, /area/medical/virology) "cIL" = ( @@ -81387,7 +81323,7 @@ pixel_x = 3; pixel_y = 2 }, -/obj/effect/decal/cleanable/cobweb2, +/obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/plasteel/floorgrime, /area/maintenance/aft{ name = "Aft Maintenance" @@ -82182,7 +82118,7 @@ dir = 2; on = 1 }, -/obj/effect/decal/cleanable/cobweb2, +/obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/plasteel/black, /area/toxins/server{ name = "\improper Research Division Server Room" @@ -82344,6 +82280,7 @@ pixel_x = 32; pixel_y = 0 }, +/obj/item/device/instrument/eguitar, /turf/open/floor/plating/warnplate{ dir = 8 }, @@ -82385,7 +82322,7 @@ /area/medical/virology) "cKF" = ( /obj/structure/closet/wardrobe/virology_white, -/obj/item/weapon/storage/backpack/satchel_vir, +/obj/item/weapon/storage/backpack/satchel/vir, /obj/structure/disposalpipe/segment{ dir = 8; icon_state = "pipe-c" @@ -82578,7 +82515,7 @@ /turf/open/floor/plasteel/white, /area/assembly/robotics) "cKW" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/white, /area/assembly/robotics) "cKX" = ( @@ -83157,7 +83094,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "cLV" = ( /obj/machinery/computer/operating{ @@ -83390,7 +83327,7 @@ name = "Aft Maintenance" }) "cMp" = ( -/obj/machinery/light_construct/small, +/obj/structure/light_construct/small, /obj/structure/table/wood/poker, /obj/item/toy/cards/deck, /obj/structure/sign/poster{ @@ -84869,9 +84806,6 @@ /turf/open/floor/plating/airless, /area/space) "cOH" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector{ - dir = 4 - }, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -84879,7 +84813,7 @@ dir = 6 }, /turf/open/floor/plating/airless, -/area/space) +/area/medical/virology) "cOI" = ( /obj/structure/grille, /obj/structure/window/reinforced/fulltile, @@ -85074,7 +85008,7 @@ pixel_x = 0; pixel_y = 25 }, -/obj/effect/decal/cleanable/cobweb2, +/obj/effect/decal/cleanable/cobweb/cobweb2, /obj/structure/table/wood, /turf/open/floor/plasteel/vault, /area/chapel/main) @@ -85443,11 +85377,11 @@ /turf/open/floor/plating/airless, /area/space) "cPE" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector{ +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ dir = 1 }, /turf/open/floor/plating/airless, -/area/space) +/area/medical/virology) "cPF" = ( /obj/structure/bodycontainer/morgue, /turf/open/floor/plasteel/black, @@ -85646,10 +85580,7 @@ /obj/structure/flora/ausbushes/fullgrass, /obj/structure/flora/ausbushes/ppflowers, /obj/structure/flora/ausbushes/palebush, -/obj/structure/window/reinforced{ - dir = 5; - health = 1e+007 - }, +/obj/structure/window/reinforced/fulltile, /turf/open/floor/grass, /area/hallway/secondary/exit{ name = "\improper Departure Lounge" @@ -85897,12 +85828,7 @@ /area/chapel/office) "cQv" = ( /obj/structure/grille, -/obj/structure/window/reinforced/tinted{ - dir = 5; - health = 120; - icon_state = "twindow"; - reinf = 0 - }, +/obj/structure/window/reinforced/tinted/fulltile, /turf/open/floor/plasteel/black, /area/chapel/office) "cQw" = ( @@ -85935,6 +85861,7 @@ dir = 8; initialize_directions = 11 }, +/obj/effect/landmark/xmastree, /turf/open/floor/carpet, /area/chapel/main) "cQz" = ( @@ -86336,13 +86263,10 @@ /obj/structure/flora/ausbushes/fullgrass, /obj/structure/flora/ausbushes/brflowers, /obj/structure/flora/ausbushes/sunnybush, -/obj/structure/window/reinforced{ - dir = 5; - health = 1e+007 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, +/obj/structure/window/reinforced/fulltile, /turf/open/floor/grass, /area/hallway/secondary/exit{ name = "\improper Departure Lounge" @@ -86745,7 +86669,7 @@ pixel_x = -2; pixel_y = 8 }, -/obj/effect/decal/cleanable/cobweb2, +/obj/effect/decal/cleanable/cobweb/cobweb2, /obj/structure/table/wood, /turf/open/floor/plasteel/black, /area/chapel/main) @@ -86785,7 +86709,7 @@ }, /area/chapel/main) "cSd" = ( -/obj/effect/decal/cleanable/cobweb2, +/obj/effect/decal/cleanable/cobweb/cobweb2, /obj/structure/chair/comfy/black{ dir = 8 }, @@ -87383,7 +87307,7 @@ name = "\improper Departure Lounge" }) "cTf" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/delivery, /area/hallway/secondary/exit{ name = "\improper Departure Lounge" @@ -87608,12 +87532,11 @@ /turf/open/floor/plasteel/black, /area/chapel/main) "cTE" = ( -/turf/closed/wall/shuttle{ - tag = "icon-wall3 (NORTHWEST)"; - icon_state = "wall3"; - dir = 9 +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8 }, -/area/shuttle/escape) +/turf/open/floor/plating/airless, +/area/toxins/xenobiology) "cTF" = ( /obj/machinery/door/window{ dir = 4; @@ -87672,7 +87595,7 @@ /turf/open/floor/plasteel/vault, /area/chapel/main) "cTK" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/vault, /area/chapel/main) "cTL" = ( @@ -88106,7 +88029,7 @@ /area/chapel/main) "cUu" = ( /obj/machinery/computer/shuttle/syndicate, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "cUv" = ( /obj/structure/table/glass, @@ -88432,7 +88355,7 @@ /turf/open/floor/plasteel/white, /area/toxins/xenobiology) "cUY" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/structure/cable/yellow{ d1 = 1; d2 = 2; @@ -88981,7 +88904,7 @@ /obj/structure/chair/stool{ pixel_y = 8 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "cWb" = ( /obj/structure/sign/securearea{ @@ -89200,7 +89123,7 @@ possible_destinations = "pod_asteroid1"; shuttleId = "pod1" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/pod_1) "cWt" = ( /obj/structure/grille, @@ -89364,7 +89287,7 @@ /obj/item/weapon/storage/pod{ pixel_x = -26 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/pod_1) "cWG" = ( /obj/machinery/door/window/northleft{ @@ -89488,7 +89411,7 @@ possible_destinations = "pod_asteroid4"; shuttleId = "pod4" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/pod_4) "cWP" = ( /obj/structure/disposalpipe/segment, @@ -89542,7 +89465,6 @@ /area/toxins/xenobiology) "cWS" = ( /obj/machinery/door/poddoor{ - auto_close = 300; id = "smindicate"; name = "outer blast door" }, @@ -89560,8 +89482,8 @@ height = 24; id = "syndicate"; name = "syndicate infiltrator"; + port_angle = 0; roundstart_move = "syndicate_away"; - travelDir = 180; width = 18 }, /obj/docking_port/stationary{ @@ -89813,7 +89735,7 @@ pixel_x = 6; pixel_y = -32 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/pod_4) "cXl" = ( /obj/structure/disposalpipe/trunk{ @@ -89830,7 +89752,7 @@ name = "EXTERNAL AIRLOCK"; pixel_x = 0 }, -/turf/closed/indestructible/opshuttle, +/turf/closed/wall/mineral/plastitanium, /area/shuttle/syndicate) "cXn" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible, @@ -89932,11 +89854,11 @@ pixel_x = 4; pixel_y = 1 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "cXz" = ( /obj/structure/frame/computer, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "cXA" = ( /obj/structure/table, @@ -89945,7 +89867,7 @@ name = "remote shutter control"; req_access_txt = "150" }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "cXB" = ( /obj/structure/table, @@ -89953,7 +89875,7 @@ pixel_x = 3; pixel_y = 3 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "cXC" = ( /obj/structure/table, @@ -89977,7 +89899,7 @@ pixel_x = 3; pixel_y = 3 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "cXD" = ( /obj/structure/table, @@ -89985,7 +89907,7 @@ amount = 10 }, /obj/item/device/multitool, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "cXE" = ( /obj/item/device/radio/intercom{ @@ -89997,16 +89919,15 @@ subspace_transmission = 1; syndie = 1 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "cXF" = ( /obj/structure/closet/syndicate/personal, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "cXG" = ( /turf/open/space, -/turf/closed/wall/shuttle{ - dir = 2; +/turf/closed/wall/mineral/plastitanium{ icon_state = "diagonalWall3" }, /area/shuttle/syndicate) @@ -90015,11 +89936,11 @@ name = "Cockpit"; req_access_txt = "150" }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "cXI" = ( /turf/open/space, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ dir = 4; icon_state = "diagonalWall3" }, @@ -90028,7 +89949,7 @@ /obj/structure/table, /obj/item/stack/cable_coil, /obj/item/weapon/crowbar/red, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "cXK" = ( /obj/structure/table, @@ -90036,41 +89957,36 @@ pixel_x = 1; pixel_y = 2 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "cXL" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plasteel/shuttle/red, -/area/shuttle/syndicate) +/obj/effect/landmark/xmastree, +/turf/open/floor/wood, +/area/crew_quarters/bar) "cXM" = ( /obj/structure/chair{ dir = 8 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "cXN" = ( -/turf/open/space, -/turf/closed/wall/shuttle{ - dir = 8; - icon_state = "diagonalWall3" - }, -/area/shuttle/syndicate) +/obj/structure/disposalpipe/segment, +/turf/closed/wall/r_wall, +/area/toxins/xenobiology) "cXO" = ( /obj/machinery/door/window{ name = "Ready Room"; req_access_txt = "150" }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "cXP" = ( /obj/machinery/suit_storage_unit/syndicate, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "cXQ" = ( /obj/structure/closet/syndicate/nuclear, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "cXR" = ( /obj/docking_port/stationary{ @@ -90088,14 +90004,14 @@ "cXS" = ( /obj/structure/table, /obj/item/device/aicard, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "cXT" = ( -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "cXU" = ( /turf/open/space, -/turf/closed/wall/shuttle{ +/turf/closed/wall/mineral/plastitanium{ dir = 1; icon_state = "diagonalWall3" }, @@ -90104,11 +90020,11 @@ /obj/machinery/sleeper/syndie{ dir = 4 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "cXW" = ( /obj/structure/tank_dispenser/oxygen, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "cXX" = ( /obj/machinery/door/window{ @@ -90116,13 +90032,13 @@ name = "EVA Storage"; req_access_txt = "150" }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "cXY" = ( /obj/machinery/door/airlock/external{ req_access_txt = "150" }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "cXZ" = ( /obj/machinery/door/window{ @@ -90132,7 +90048,7 @@ name = "EVA Storage"; req_access_txt = "150" }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "cYa" = ( /obj/structure/grille, @@ -90143,7 +90059,7 @@ /obj/structure/rack, /obj/item/clothing/suit/space/syndicate/black/red, /obj/item/clothing/head/helmet/space/syndicate/black/red, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "cYc" = ( /obj/item/device/radio/intercom{ @@ -90155,15 +90071,15 @@ subspace_transmission = 1; syndie = 1 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "cYd" = ( /obj/machinery/recharge_station, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "cYe" = ( /obj/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "cYf" = ( /obj/structure/table, @@ -90173,11 +90089,11 @@ pixel_x = -5; pixel_y = 30 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "cYg" = ( /obj/structure/bed/roller, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "cYh" = ( /obj/structure/table, @@ -90187,7 +90103,7 @@ /obj/item/device/assembly/voice{ pixel_y = 3 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "cYi" = ( /obj/structure/table, @@ -90196,7 +90112,7 @@ pixel_y = 3 }, /obj/item/weapon/stock_parts/cell/high, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "cYj" = ( /obj/structure/table, @@ -90210,13 +90126,13 @@ pixel_x = -8; pixel_y = 4 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "cYk" = ( /obj/structure/table, /obj/item/weapon/wrench, /obj/item/device/assembly/infra, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "cYl" = ( /obj/structure/table, @@ -90224,24 +90140,24 @@ pixel_y = 3 }, /obj/item/device/multitool, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "cYm" = ( /obj/structure/sign/bluecross_2, -/turf/closed/indestructible/opshuttle, +/turf/closed/wall/mineral/plastitanium, /area/shuttle/syndicate) "cYn" = ( /obj/machinery/door/window/westright{ name = "Tool Storage"; req_access_txt = "150" }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "cYo" = ( /obj/structure/table, /obj/item/weapon/storage/toolbox/syndicate, /obj/item/weapon/crowbar/red, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "cYp" = ( /obj/machinery/door/window{ @@ -90249,7 +90165,7 @@ name = "Infirmary"; req_access_txt = "150" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "cYq" = ( /obj/machinery/door/window{ @@ -90259,7 +90175,7 @@ name = "Infirmary"; req_access_txt = "150" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "cYr" = ( /obj/machinery/door/window{ @@ -90267,7 +90183,7 @@ name = "Tool Storage"; req_access_txt = "150" }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "cYs" = ( /obj/machinery/door/window{ @@ -90275,16 +90191,16 @@ name = "Surgery"; req_access_txt = "150" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "cYt" = ( /obj/structure/window/reinforced{ dir = 1 }, /obj/structure/table, -/obj/item/robot_parts/r_arm, -/obj/item/robot_parts/l_arm, -/turf/open/floor/plasteel/shuttle/white, +/obj/item/bodypart/r_arm/robot, +/obj/item/bodypart/l_arm/robot, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "cYu" = ( /obj/structure/table, @@ -90300,13 +90216,13 @@ pixel_x = -3; pixel_y = -3 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "cYv" = ( /obj/structure/window/reinforced{ dir = 1 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "cYw" = ( /obj/structure/table, @@ -90317,7 +90233,7 @@ /obj/item/weapon/grenade/syndieminibomb{ pixel_x = -1 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "cYx" = ( /obj/structure/table, @@ -90325,7 +90241,7 @@ pixel_y = 5 }, /obj/item/device/sbeacondrop/bomb, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "cYy" = ( /obj/structure/table, @@ -90338,19 +90254,19 @@ pixel_x = -3; pixel_y = -3 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "cYz" = ( /obj/structure/table, /obj/item/weapon/surgicaldrill, /obj/item/weapon/circular_saw, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "cYA" = ( /obj/machinery/telecomms/allinone{ intercept = 1 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "cYB" = ( /obj/structure/table/optable, @@ -90366,7 +90282,7 @@ /obj/structure/mirror{ pixel_x = 30 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "cYD" = ( /obj/machinery/nuclearbomb/syndicate, @@ -90375,7 +90291,7 @@ name = "Secure Storage"; req_access_txt = "150" }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "cYE" = ( /obj/structure/shuttle/engine/heater, @@ -90402,7 +90318,7 @@ /obj/effect/landmark{ name = "lightsout" }, -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /turf/open/floor/plasteel/white, /area/toxins/xenobiology) "cYH" = ( @@ -90444,31 +90360,37 @@ /turf/open/floor/plating, /area/shuttle/syndicate) "cYL" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s6"; - dir = 2 +/obj/machinery/atmospherics/pipe/simple/general/visible{ + color = "#330000"; + dir = 4 }, -/area/shuttle/supply) +/obj/machinery/atmospherics/components/binary/valve/digital{ + name = "Waste Release" + }, +/turf/open/floor/plasteel/black, +/area/atmos) "cYM" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall12"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/supply) "cYN" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s10"; - dir = 2 +/obj/machinery/light{ + dir = 1 }, -/area/shuttle/supply) +/obj/machinery/status_display{ + pixel_y = 30 + }, +/obj/machinery/photocopier{ + pixel_y = 3 + }, +/turf/open/floor/wood, +/area/library) "cYO" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall3"; - dir = 2 - }, -/area/shuttle/supply) +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/wood, +/area/library) "cYP" = ( -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/supply) "cYQ" = ( /obj/machinery/conveyor{ @@ -90482,7 +90404,7 @@ /turf/open/floor/plating, /area/shuttle/supply) "cYR" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Supply Shuttle Airlock"; req_access_txt = "31" }, @@ -90502,10 +90424,10 @@ pixel_x = 24; pixel_y = -8 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/supply) "cYT" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Supply Shuttle Airlock"; req_access_txt = "31" }, @@ -90529,35 +90451,58 @@ /turf/open/floor/plasteel/white, /area/toxins/xenobiology) "cYV" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall7"; - dir = 2 +/obj/structure/table/wood, +/obj/item/device/camera_film{ + pixel_x = -3; + pixel_y = 5 }, -/area/shuttle/supply) +/obj/item/device/camera_film{ + pixel_y = 9 + }, +/obj/item/device/radio/intercom{ + dir = 4; + name = "Station Intercom (General)"; + pixel_x = 27 + }, +/turf/open/floor/wood, +/area/library) "cYW" = ( -/turf/open/floor/plasteel/shuttle, -/turf/closed/wall/shuttle/interior{ - icon_state = "swall_f10" - }, +/turf/open/floor/mineral/titanium/blue, +/turf/closed/wall/mineral/titanium/interior, /area/shuttle/supply) "cYX" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall11"; - dir = 2 +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 }, -/area/shuttle/supply) +/obj/item/device/radio/intercom{ + freerange = 1; + frequency = 1459; + name = "Station Intercom (General)"; + pixel_x = -30 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/primary/central) "cYY" = ( -/turf/open/floor/plasteel/shuttle, -/turf/closed/wall/shuttle/interior{ - icon_state = "swall_f6" +/obj/structure/table/wood, +/obj/machinery/computer/libraryconsole/bookmanagement, +/obj/structure/noticeboard{ + desc = "A board for pinning important notices upon. Probably helpful for keeping track of requests."; + dir = 8; + name = "requests board"; + pixel_x = 32; + pixel_y = 0 }, -/area/shuttle/supply) +/turf/open/floor/wood, +/area/library) "cYZ" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s5"; - dir = 2 +/obj/machinery/light_switch{ + pixel_x = 28; + pixel_y = 0 }, -/area/shuttle/supply) +/turf/open/floor/wood, +/area/library) "cZa" = ( /obj/structure/window/reinforced{ dir = 1 @@ -90566,17 +90511,16 @@ /turf/open/floor/plating, /area/shuttle/supply) "cZb" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall15"; - dir = 2 - }, -/area/shuttle/supply) +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/black, +/area/hallway/primary/central) "cZc" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s9"; - dir = 2 +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 }, -/area/shuttle/supply) +/turf/open/floor/wood, +/area/library) "cZd" = ( /obj/structure/shuttle/engine/propulsion, /turf/open/floor/plating, @@ -90598,16 +90542,10 @@ icon_state = "propulsion"; dir = 4 }, -/turf/closed/wall/shuttle{ - icon_state = "swall_s6"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium/overspace, /area/shuttle/transport) "cZh" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall12"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/transport) "cZi" = ( /obj/structure/window/shuttle, @@ -90620,48 +90558,44 @@ /turf/open/floor/plating, /area/shuttle/transport) "cZk" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s10"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium/overspace, /area/shuttle/transport) "cZl" = ( -/turf/open/floor/plasteel/shuttle, -/turf/closed/wall/shuttle/interior{ - icon_state = "swall_f9" - }, +/turf/open/floor/mineral/titanium/blue, +/turf/closed/wall/mineral/titanium/interior, /area/shuttle/transport) "cZm" = ( /obj/machinery/computer/shuttle/ferry/request, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "cZn" = ( /obj/structure/chair{ dir = 4 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "cZo" = ( /obj/structure/chair, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "cZp" = ( -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "cZq" = ( -/obj/machinery/door/airlock/shuttle, -/turf/open/floor/plasteel/shuttle, +/obj/machinery/door/airlock/titanium, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "cZr" = ( -/obj/machinery/door/airlock/shuttle, +/obj/machinery/door/airlock/titanium, /obj/docking_port/mobile{ dir = 8; dwidth = 2; height = 12; id = "ferry"; name = "ferry shuttle"; + port_angle = 0; + preferred_direction = 4; roundstart_move = "ferry_away"; - travelDir = 180; width = 5 }, /obj/docking_port/stationary{ @@ -90673,57 +90607,47 @@ turf_type = /turf/open/space; width = 5 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "cZs" = ( -/turf/open/floor/plasteel/shuttle, -/turf/closed/wall/shuttle/interior{ - icon_state = "swall_f10" - }, -/area/shuttle/transport) +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/atmos) "cZt" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion"; - dir = 4 +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 1; + frequency = 1441; + id = "n2_in" }, -/turf/closed/wall/shuttle{ - icon_state = "swall_s5"; - dir = 2 - }, -/area/shuttle/transport) +/turf/open/floor/plating, +/area/atmos) "cZu" = ( /obj/structure/closet/crate, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "cZv" = ( /obj/structure/chair{ dir = 1 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "cZw" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s9"; - dir = 2 - }, -/area/shuttle/transport) +/mob/living/simple_animal/sloth/citrus, +/turf/open/floor/plasteel, +/area/quartermaster/storage) "cZx" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s6"; - dir = 2 - }, -/area/shuttle/abandoned) +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/turf/open/floor/plasteel/bot, +/area/atmos) "cZy" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall12"; - dir = 2 +/turf/open/floor/plating/warnplate{ + dir = 1 }, -/area/shuttle/abandoned) +/area/shuttle/auxillary_base) "cZz" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall14"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/abandoned) "cZA" = ( /obj/structure/grille, @@ -90731,20 +90655,19 @@ /turf/open/floor/plating, /area/shuttle/abandoned) "cZB" = ( -/turf/closed/wall/shuttle{ - icon_state = "swallc1"; - dir = 2 +/turf/open/floor/plating/warnplate{ + dir = 5 }, -/area/shuttle/abandoned) +/area/shuttle/auxillary_base) "cZC" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "recovery shuttle external airlock" }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "cZD" = ( /obj/structure/window/reinforced, @@ -90763,23 +90686,20 @@ }, /area/atmos) "cZE" = ( -/turf/closed/wall/shuttle{ - icon_state = "swallc2"; - dir = 2 +/turf/open/floor/plating/warnplate{ + dir = 8 }, -/area/shuttle/abandoned) +/area/shuttle/auxillary_base) "cZF" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s10"; - dir = 2 - }, -/area/shuttle/abandoned) +/turf/open/floor/plating, +/area/shuttle/auxillary_base) "cZG" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall13"; - dir = 2 +/turf/open/floor/plating/warnplate{ + dir = 4; + luminosity = 2; + initial_gas_mix = "o2=0.01;n2=0.01" }, -/area/shuttle/abandoned) +/area/shuttle/auxillary_base) "cZH" = ( /obj/structure/shuttle/engine/propulsion{ icon_state = "propulsion_l"; @@ -90798,20 +90718,23 @@ /obj/effect/decal/cleanable/greenglow{ desc = "Looks like something's sprung a leak" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "cZJ" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall11"; - dir = 2 +/obj/structure/sign/poster{ + pixel_x = 32 }, -/area/shuttle/abandoned) +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "cZK" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall3"; - dir = 2 +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 }, -/area/shuttle/abandoned) +/turf/open/floor/plating, +/area/shuttle/auxillary_base) "cZL" = ( /obj/structure/mirror{ pixel_x = 28; @@ -90831,7 +90754,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "cZM" = ( /obj/structure/table, @@ -90842,7 +90765,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "cZN" = ( /obj/structure/closet/wardrobe/mixed, @@ -90858,7 +90781,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "cZO" = ( /obj/structure/table, @@ -90875,7 +90798,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "cZP" = ( /obj/machinery/suit_storage_unit/standard_unit, @@ -90883,7 +90806,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "cZQ" = ( /turf/closed/wall/shuttle{ @@ -90900,7 +90823,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "cZS" = ( /obj/effect/decal/cleanable/dirt{ @@ -90911,7 +90834,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "cZT" = ( /obj/structure/sign/vacuum{ @@ -90921,7 +90844,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "cZU" = ( /obj/structure/closet/crate/medical{ @@ -90999,7 +90922,7 @@ /obj/effect/spawner/lootdrop/maintenance, /obj/item/weapon/extinguisher, /obj/item/weapon/extinguisher, -/obj/effect/decal/cleanable/cobweb2, +/obj/effect/decal/cleanable/cobweb/cobweb2, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" @@ -91024,26 +90947,34 @@ /turf/open/floor/plating/airless, /area/shuttle/abandoned) "daa" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall8"; - dir = 2 +/obj/docking_port/mobile/auxillary_base{ + dheight = 4; + dir = 2; + dwidth = 4; + height = 9; + width = 9 }, -/area/shuttle/abandoned) +/obj/machinery/bluespace_beacon, +/obj/machinery/computer/shuttle/auxillary_base{ + pixel_y = 0 + }, +/turf/closed/wall, +/area/shuttle/auxillary_base) "dab" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall7"; - dir = 2 +/obj/machinery/light{ + dir = 8 }, -/area/shuttle/abandoned) +/turf/open/floor/plating, +/area/shuttle/auxillary_base) "dac" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "bathroom" }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "dad" = ( /obj/structure/bed, @@ -91054,7 +90985,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dae" = ( /obj/effect/decal/cleanable/blood/old, @@ -91070,7 +91001,7 @@ name = "remains" }, /obj/item/weapon/gun/energy/laser/retro, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "daf" = ( /obj/structure/table, @@ -91084,7 +91015,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dag" = ( /obj/effect/decal/cleanable/dirt{ @@ -91092,24 +91023,24 @@ name = "dust" }, /obj/effect/decal/cleanable/oil, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "dah" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "E.V.A. equipment" }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "dai" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "daj" = ( /obj/effect/decal/cleanable/blood/old, @@ -91124,7 +91055,7 @@ icon_state = "remains"; name = "remains" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "dak" = ( /obj/effect/decal/cleanable/oil, @@ -91137,7 +91068,7 @@ }, /area/shuttle/abandoned) "dal" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "cargo bay" }, /turf/open/floor/plasteel/delivery{ @@ -91184,7 +91115,7 @@ name = "remains" }, /obj/effect/decal/cleanable/blood/gibs/old, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dap" = ( /obj/effect/decal/cleanable/blood/old, @@ -91196,7 +91127,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "daq" = ( /obj/structure/bed, @@ -91205,7 +91136,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dar" = ( /obj/effect/decal/cleanable/blood/old, @@ -91218,7 +91149,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "das" = ( /obj/structure/table, @@ -91235,7 +91166,7 @@ name = "dust" }, /obj/item/weapon/wrench, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dat" = ( /obj/structure/rack{ @@ -91260,20 +91191,21 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dau" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall2" - }, -/area/shuttle/abandoned) +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "dav" = ( /obj/machinery/portable_atmospherics/canister/oxygen, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "daw" = ( /obj/effect/decal/cleanable/oil, @@ -91300,13 +91232,13 @@ /turf/open/floor/plasteel/bot, /area/shuttle/abandoned) "daz" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall1"; - dir = 2 +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating/warnplate{ + dir = 10 }, -/area/shuttle/abandoned) +/area/shuttle/auxillary_base) "daA" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "bathroom" }, /obj/effect/decal/cleanable/blood/old, @@ -91314,7 +91246,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "daB" = ( /obj/machinery/vending/boozeomat{ @@ -91329,7 +91261,7 @@ }, /area/shuttle/abandoned) "daC" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "dormitory" }, /obj/effect/decal/cleanable/blood/old, @@ -91337,22 +91269,18 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "daD" = ( -/turf/closed/wall/shuttle{ - icon_state = "swallc4"; - dir = 2 - }, -/area/shuttle/abandoned) +/turf/open/floor/plating/warnplate, +/area/shuttle/auxillary_base) "daE" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall4"; - dir = 2 - }, -/area/shuttle/abandoned) +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/mining_construction) "daF" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "recovery shuttle interior airlock" }, /obj/effect/decal/cleanable/dirt{ @@ -91363,16 +91291,20 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "daG" = ( -/turf/closed/wall/shuttle{ - icon_state = "swallc3"; - dir = 2 +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 1; + name = "Construction Zone"; + req_access = null; + req_access_txt = "0"; + req_one_access_txt = "0" }, -/area/shuttle/abandoned) +/turf/open/floor/plating, +/area/mining_construction) "daH" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "cargo bay" }, /obj/effect/decal/cleanable/dirt{ @@ -91387,7 +91319,7 @@ /obj/machinery/vending/cigarette{ use_power = 0 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "daJ" = ( /obj/effect/decal/cleanable/blood/gibs/old, @@ -91395,7 +91327,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "daK" = ( /obj/effect/decal/cleanable/blood/old, @@ -91404,7 +91336,7 @@ name = "dust" }, /obj/effect/decal/cleanable/blood/gibs/limb, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "daL" = ( /obj/effect/decal/cleanable/blood/old, @@ -91412,15 +91344,15 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "daM" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/decal/cleanable/cobweb2, -/turf/open/floor/plasteel/shuttle, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "daN" = ( /obj/structure/table, @@ -91429,7 +91361,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "daO" = ( /obj/effect/decal/cleanable/cobweb, @@ -91437,7 +91369,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "daP" = ( /obj/structure/table, @@ -91449,7 +91381,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "daQ" = ( /obj/structure/table, @@ -91458,7 +91390,7 @@ name = "dust" }, /obj/item/weapon/storage/photo_album, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "daR" = ( /obj/structure/reagent_dispensers/fueltank, @@ -91469,14 +91401,14 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "daS" = ( /obj/machinery/vending/coffee{ pixel_x = -2; use_power = 0 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "daT" = ( /obj/structure/chair, @@ -91484,14 +91416,14 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "daU" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "daV" = ( /obj/effect/decal/cleanable/dirt{ @@ -91502,7 +91434,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "daW" = ( /obj/machinery/light/small{ @@ -91528,7 +91460,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "daZ" = ( /obj/structure/table, @@ -91542,17 +91474,17 @@ pixel_x = -1; pixel_y = 2 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dba" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "recovery shuttle interior airlock" }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "dbb" = ( /obj/structure/table, @@ -91561,7 +91493,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dbc" = ( /obj/structure/chair{ @@ -91571,7 +91503,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dbd" = ( /obj/structure/table, @@ -91580,7 +91512,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dbe" = ( /obj/structure/table, @@ -91596,7 +91528,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dbf" = ( /obj/structure/chair{ @@ -91606,17 +91538,17 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dbg" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "living quarters" }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "dbh" = ( /obj/item/clothing/suit/bio_suit, @@ -91632,7 +91564,7 @@ /obj/item/clothing/mask/breath, /obj/item/clothing/mask/breath, /obj/structure/table, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dbi" = ( /obj/effect/decal/cleanable/dirt{ @@ -91649,7 +91581,7 @@ }, /obj/item/weapon/reagent_containers/spray/cleaner, /obj/structure/table, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dbj" = ( /obj/effect/decal/cleanable/blood/old, @@ -91658,7 +91590,7 @@ name = "dust" }, /obj/effect/decal/cleanable/blood/gibs/limb, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dbk" = ( /obj/effect/decal/cleanable/blood/gibs/old, @@ -91673,7 +91605,7 @@ icon_state = "remains"; name = "remains" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dbl" = ( /obj/item/weapon/storage/toolbox/emergency{ @@ -91690,7 +91622,7 @@ name = "dust" }, /obj/structure/table, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dbm" = ( /obj/effect/decal/cleanable/dirt{ @@ -91704,17 +91636,17 @@ /obj/structure/table, /obj/item/clothing/head/helmet/swat/nanotrasen, /obj/item/clothing/head/helmet/swat/nanotrasen, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dbn" = ( -/obj/machinery/door/airlock/shuttle{ +/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/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "dbo" = ( /obj/effect/decal/cleanable/dirt{ @@ -91722,7 +91654,7 @@ name = "dust" }, /obj/machinery/computer/shuttle/white_ship, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dbp" = ( /obj/effect/decal/cleanable/blood/old, @@ -91733,7 +91665,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dbq" = ( /obj/structure/reagent_dispensers/watertank, @@ -91741,14 +91673,14 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "dbr" = ( /obj/machinery/vending/cola{ pixel_x = -1; use_power = 0 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dbs" = ( /obj/structure/chair{ @@ -91758,7 +91690,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dbt" = ( /obj/machinery/camera/emp_proof{ @@ -91778,7 +91710,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dbw" = ( /obj/item/weapon/phone{ @@ -91794,7 +91726,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dbx" = ( /obj/effect/decal/cleanable/blood/old, @@ -91813,20 +91745,25 @@ icon_state = "remains"; name = "remains" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "dby" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s5"; - dir = 2 +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 }, -/area/shuttle/abandoned) +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/mining_construction) "dbz" = ( /obj/machinery/vending/snack{ pixel_x = -1; use_power = 0 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dbA" = ( /obj/structure/sign/science{ @@ -91836,7 +91773,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "dbB" = ( /obj/structure/table, @@ -91845,12 +91782,12 @@ name = "dust" }, /obj/item/device/megaphone, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dbC" = ( /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, -/area/engine/engineering) +/area/maintenance/starboard) "dbD" = ( /obj/structure/table, /obj/item/device/radio/off{ @@ -91860,7 +91797,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dbE" = ( /obj/structure/table, @@ -91869,54 +91806,48 @@ name = "dust" }, /obj/item/device/mass_spectrometer, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dbF" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "hydroponics" }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "dbG" = ( /obj/structure/sign/botany, -/turf/closed/wall/shuttle{ - icon_state = "swall8"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/abandoned) "dbH" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "kitchen" }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "dbI" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "laboratory" }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "dbJ" = ( /obj/structure/sign/bluecross_2, -/turf/closed/wall/shuttle{ - icon_state = "swall8"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/abandoned) "dbK" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ icon_state = "door_closed"; name = "medbay"; welded = 0 @@ -91925,14 +91856,16 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "dbL" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s9"; - dir = 2 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 }, -/area/shuttle/abandoned) +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/mining_construction) "dbM" = ( /obj/item/weapon/storage/bag/plants/portaseeder, /obj/structure/table, @@ -91952,14 +91885,14 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dbN" = ( /obj/machinery/biogenerator{ idle_power_usage = 0; use_power = 0 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dbO" = ( /obj/machinery/vending/hydroseeds{ @@ -91970,7 +91903,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dbP" = ( /obj/machinery/processor, @@ -91978,7 +91911,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dbQ" = ( /obj/structure/table, @@ -91991,8 +91924,8 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/decal/cleanable/cobweb2, -/turf/open/floor/plasteel/shuttle/white, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dbR" = ( /obj/structure/kitchenspike, @@ -92001,7 +91934,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dbS" = ( /obj/effect/decal/cleanable/oil, @@ -92009,7 +91942,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dbT" = ( /obj/structure/reagent_dispensers/watertank, @@ -92018,7 +91951,7 @@ }, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, -/area/engine/engineering) +/area/maintenance/starboard) "dbU" = ( /obj/machinery/sleeper{ dir = 4; @@ -92028,7 +91961,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dbV" = ( /obj/structure/closet/crate/freezer, @@ -92043,7 +91976,7 @@ name = "dust" }, /obj/effect/decal/cleanable/xenoblood, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dbW" = ( /obj/structure/table/optable{ @@ -92076,16 +92009,13 @@ /obj/item/weapon/wirecutters, /obj/item/device/plant_analyzer, /obj/item/weapon/reagent_containers/glass/bucket, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dbY" = ( /obj/machinery/smartfridge{ use_power = 0 }, -/turf/closed/wall/shuttle{ - icon_state = "swall3"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/abandoned) "dbZ" = ( /obj/structure/sink{ @@ -92098,7 +92028,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "dca" = ( /obj/structure/sink{ @@ -92111,7 +92041,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "dcb" = ( /obj/structure/table, @@ -92121,7 +92051,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dcc" = ( /obj/effect/decal/cleanable/egg_smudge, @@ -92130,18 +92060,18 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "dcd" = ( /obj/structure/closet/firecloset, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, -/area/engine/engineering) +/area/maintenance/starboard) "dce" = ( /obj/machinery/portable_atmospherics/canister/air, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, -/area/engine/engineering) +/area/maintenance/starboard) "dcf" = ( /obj/structure/chair/office/light, /obj/effect/decal/cleanable/dirt{ @@ -92152,7 +92082,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "dcg" = ( /obj/machinery/vending/wallmed{ @@ -92170,7 +92100,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "dch" = ( /obj/effect/decal/cleanable/xenoblood, @@ -92184,7 +92114,7 @@ icon_state = "remainsxeno"; name = "remains" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "dci" = ( /obj/effect/decal/cleanable/dirt{ @@ -92193,7 +92123,7 @@ }, /obj/effect/decal/cleanable/ash, /obj/effect/decal/cleanable/xenoblood, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "dcj" = ( /obj/structure/sink{ @@ -92208,7 +92138,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "dck" = ( /obj/structure/shuttle/engine/propulsion{ @@ -92223,7 +92153,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dcm" = ( /obj/machinery/hydroponics/constructable, @@ -92232,7 +92162,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dcn" = ( /obj/structure/table, @@ -92246,7 +92176,7 @@ /obj/item/weapon/storage/fancy/egg_box{ pixel_y = 5 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dco" = ( /obj/structure/table, @@ -92257,7 +92187,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dcp" = ( /obj/structure/table, @@ -92277,7 +92207,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dcq" = ( /obj/structure/table, @@ -92292,7 +92222,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dcr" = ( /obj/structure/table, @@ -92307,7 +92237,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dcs" = ( /obj/structure/table, @@ -92316,7 +92246,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dct" = ( /obj/structure/table, @@ -92325,7 +92255,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dcu" = ( /obj/structure/table, @@ -92334,7 +92264,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dcv" = ( /obj/structure/table, @@ -92345,7 +92275,7 @@ name = "dust" }, /obj/item/clothing/suit/apron/surgical, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dcw" = ( /obj/structure/table, @@ -92361,7 +92291,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dcx" = ( /obj/structure/table, @@ -92371,39 +92301,41 @@ name = "surgical dufflebag"; pixel_y = 4 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "dcy" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall7"; - dir = 2 +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 }, -/area/shuttle/escape) +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/mining_construction) "dcz" = ( /obj/structure/grille, /obj/structure/window/shuttle, /turf/open/floor/plating, /area/shuttle/escape) "dcA" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall12"; - dir = 2 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" }, -/area/shuttle/escape) +/turf/open/floor/plasteel/yellow/side, +/area/mining_construction) "dcB" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Emergency Shuttle Airlock" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "dcC" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall14"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/shuttle/escape) "dcD" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Emergency Shuttle Airlock" }, /obj/docking_port/mobile/emergency{ @@ -92422,27 +92354,42 @@ name = "MetaStation emergency evac bay"; width = 29 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "dcE" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall8"; +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/obj/structure/mining_shuttle_beacon{ dir = 2 }, -/area/shuttle/escape) +/obj/machinery/computer/security/telescreen{ + desc = "Used for the Auxillary Mining Base."; + dir = 1; + name = "Auxillary Base Monitor"; + network = list("AuxBase"); + pixel_x = 0; + pixel_y = -28 + }, +/turf/open/floor/plasteel/yellow/side, +/area/mining_construction) "dcF" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall3"; - dir = 2 +/obj/machinery/door/poddoor/shutters{ + id = "aux_base_shutters"; + name = "Auxillary Base Shutters" }, -/area/shuttle/escape) +/turf/open/floor/plasteel/delivery, +/area/mining_construction) "dcG" = ( /obj/structure/tank_dispenser/oxygen{ layer = 2.7; pixel_x = -1; pixel_y = 2 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "dcH" = ( /obj/item/clothing/suit/hazardvest{ @@ -92523,29 +92470,36 @@ /obj/structure/closet/crate{ name = "lifejackets" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "dcI" = ( -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "dcJ" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall4"; - dir = 2 +/obj/machinery/door/airlock/engineering{ + cyclelinkeddir = 1; + name = "Auxillary Base Construction"; + req_access_txt = "0"; + req_one_access_txt = "32;47;48" }, -/area/shuttle/escape) +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/mining_construction) "dcK" = ( -/obj/structure/sign/bluecross_2, -/turf/closed/wall/shuttle{ - icon_state = "swall2" - }, -/area/shuttle/escape) +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/mining_construction) "dcL" = ( /obj/structure/table, /obj/item/stack/medical/gauze, /obj/item/stack/medical/bruise_pack, /obj/item/stack/medical/ointment, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "dcM" = ( /obj/item/device/radio/intercom{ @@ -92555,7 +92509,7 @@ pixel_y = 27 }, /obj/structure/chair, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "dcN" = ( /obj/structure/cable/yellow{ @@ -92622,10 +92576,7 @@ /area/shuttle/escape) "dcU" = ( /obj/structure/extinguisher_cabinet, -/turf/closed/wall/shuttle{ - icon_state = "swall12"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/shuttle/escape) "dcV" = ( /obj/machinery/vending/wallmed{ @@ -92635,10 +92586,7 @@ req_access_txt = "0"; use_power = 0 }, -/turf/closed/wall/shuttle{ - icon_state = "swall12"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/shuttle/escape) "dcW" = ( /obj/structure/cable/yellow{ @@ -92697,32 +92645,36 @@ }, /area/chapel/main) "ddb" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s6"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/escape) "ddc" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall1" +/obj/structure/chair, +/obj/machinery/light{ + dir = 1 }, -/area/shuttle/escape) +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) "ddd" = ( /obj/structure/sign/nosmoking_2, -/turf/closed/wall/shuttle{ - icon_state = "swall12"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/escape) "dde" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s10"; - dir = 2 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, -/area/shuttle/escape) +/turf/open/floor/plasteel/yellow/corner{ + dir = 4 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) "ddf" = ( /obj/structure/chair, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "ddg" = ( /obj/structure/shuttle/engine/propulsion{ @@ -92740,7 +92692,7 @@ /obj/structure/chair{ dir = 1 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "ddi" = ( /obj/structure/shuttle/engine/heater{ @@ -92755,20 +92707,17 @@ /obj/structure/chair/office/dark{ dir = 1 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "ddk" = ( /obj/machinery/status_display, -/turf/closed/wall/shuttle{ - icon_state = "swall3"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/escape) "ddl" = ( /obj/structure/chair{ dir = 1 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "ddm" = ( /obj/machinery/door/airlock/glass_medical{ @@ -92776,20 +92725,26 @@ name = "Escape Shuttle Infirmary"; req_access_txt = "0" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "ddn" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall11"; - dir = 2 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, -/area/shuttle/escape) +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) "ddo" = ( /obj/structure/sign/bluecross_2, -/turf/closed/wall/shuttle{ - icon_state = "swall14"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/escape) "ddp" = ( /obj/structure/table, @@ -92798,7 +92753,7 @@ pixel_x = 3; pixel_y = 3 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "ddq" = ( /obj/structure/table, @@ -92807,7 +92762,7 @@ pixel_x = 2; pixel_y = 3 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "ddr" = ( /obj/machinery/status_display{ @@ -92815,8 +92770,8 @@ pixel_x = 32; pixel_y = 0 }, -/obj/machinery/hologram/holopad, -/turf/open/floor/plasteel/shuttle, +/obj/machinery/holopad, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "dds" = ( /turf/open/floor/bluegrid{ @@ -92857,12 +92812,12 @@ pixel_x = 2; pixel_y = 8 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "ddu" = ( /obj/structure/table, /obj/item/weapon/defibrillator/loaded, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "ddv" = ( /obj/structure/table, @@ -92876,12 +92831,12 @@ pixel_x = 0; pixel_y = -31 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "ddw" = ( /obj/structure/table/optable, /obj/item/weapon/surgical_drapes, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "ddx" = ( /obj/structure/table, @@ -92891,7 +92846,7 @@ pixel_x = 0; pixel_y = -27 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "ddy" = ( /obj/machinery/space_heater, @@ -92903,7 +92858,7 @@ /turf/open/floor/plasteel/bot, /area/shuttle/escape) "ddz" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Emergency Shuttle Cargo Bay Airlock" }, /turf/open/floor/plasteel/delivery, @@ -92912,7 +92867,7 @@ /obj/structure/chair{ dir = 4 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) "ddB" = ( /obj/structure/table, @@ -92920,14 +92875,14 @@ pixel_x = 2; pixel_y = 2 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) "ddC" = ( /obj/structure/chair, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) "ddD" = ( -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) "ddE" = ( /obj/structure/table, @@ -92936,25 +92891,25 @@ idle_power_usage = 0; use_power = 0 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) "ddF" = ( /obj/machinery/door/airlock/glass_security{ name = "Brig"; req_access_txt = "2" }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) "ddG" = ( /obj/structure/table, /obj/item/weapon/restraints/handcuffs{ pixel_y = 3 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) "ddH" = ( /obj/structure/closet/emcloset, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "ddI" = ( /obj/structure/chair{ @@ -92964,13 +92919,13 @@ /area/shuttle/escape) "ddJ" = ( /obj/machinery/shower, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "ddK" = ( /obj/machinery/sleeper{ dir = 8 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "ddL" = ( /obj/structure/rack, @@ -92992,25 +92947,36 @@ name = "Cockpit"; req_access_txt = "19" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "ddO" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall15"; - dir = 2 +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" }, -/area/shuttle/escape) +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/main) "ddP" = ( /obj/structure/table, /obj/item/weapon/restraints/handcuffs{ pixel_y = 3 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "ddQ" = ( /obj/structure/table, /obj/item/weapon/storage/firstaid/regular, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "ddR" = ( /obj/structure/reagent_dispensers/fueltank, @@ -93022,7 +92988,7 @@ req_access = null; req_access_txt = "19" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "ddT" = ( /turf/open/floor/plasteel/delivery, @@ -93035,24 +93001,21 @@ /obj/structure/chair{ dir = 8 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) "ddW" = ( /obj/structure/chair/office/dark{ dir = 8 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "ddX" = ( /obj/machinery/computer/security, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "ddY" = ( /obj/structure/reagent_dispensers/peppertank, -/turf/closed/wall/shuttle{ - icon_state = "swall3"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/escape) "ddZ" = ( /obj/structure/rack, @@ -93084,11 +93047,11 @@ /area/shuttle/escape) "dec" = ( /obj/machinery/computer/crew, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "ded" = ( /obj/structure/chair/office/dark, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "dee" = ( /turf/open/floor/plasteel/warning{ @@ -93098,7 +93061,7 @@ "def" = ( /obj/structure/table, /obj/item/weapon/storage/fancy/donut_box, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "deg" = ( /obj/structure/table, @@ -93110,26 +93073,26 @@ pixel_x = 5; pixel_y = -1 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "deh" = ( /obj/machinery/computer/communications, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "dei" = ( /obj/machinery/computer/emergency_shuttle, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "dej" = ( /obj/structure/table, /obj/item/weapon/storage/toolbox/emergency{ pixel_y = 3 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "dek" = ( /obj/machinery/computer/station_alert, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "del" = ( /obj/structure/table, @@ -93139,13 +93102,20 @@ pixel_y = 4; use_power = 0 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "dem" = ( -/turf/closed/wall/shuttle{ - icon_state = "diagonalWall3" +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/chair{ + dir = 8 }, -/area/shuttle/escape) +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/main) "den" = ( /obj/structure/table, /obj/item/weapon/folder/red{ @@ -93165,7 +93135,7 @@ pixel_x = -4; pixel_y = 4 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) "deo" = ( /obj/structure/reagent_dispensers/watertank, @@ -93191,17 +93161,21 @@ pixel_x = -27; pixel_y = 0 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "deq" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall13"; - dir = 2 +/obj/machinery/vending/wallmed{ + name = "Emergency NanoMed"; + pixel_x = 0; + pixel_y = 0; + req_access_txt = "0"; + use_power = 0 }, +/turf/closed/wall/mineral/titanium, /area/shuttle/escape) "der" = ( /obj/structure/sink, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "des" = ( /obj/structure/rack{ @@ -93226,22 +93200,18 @@ /turf/open/floor/plasteel/bot, /area/shuttle/escape) "deu" = ( -/turf/closed/wall/shuttle{ - icon_state = "wall3" - }, +/obj/structure/extinguisher_cabinet, +/turf/closed/wall/mineral/titanium, /area/shuttle/escape) "dev" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s5"; - dir = 2 - }, -/area/shuttle/escape) +/turf/open/space, +/area/shuttle/syndicate) "dew" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s9"; - dir = 2 +/obj/machinery/porta_turret/syndicate{ + dir = 5 }, -/area/shuttle/escape) +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/syndicate) "dex" = ( /obj/structure/grille, /obj/structure/window/reinforced/fulltile, @@ -93319,6 +93289,9 @@ /obj/structure/disposaloutlet{ dir = 2 }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, /turf/open/floor/engine, /area/toxins/xenobiology) "deE" = ( @@ -93338,8 +93311,7 @@ /area/toxins/xenobiology) "deG" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1; - unacidable = 1 + dir = 1 }, /turf/open/floor/engine, /area/toxins/xenobiology) @@ -93509,11 +93481,15 @@ }, /area/toxins/xenobiology) "deX" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating/airless, -/area/toxins/xenobiology) +/turf/open/space, +/obj/machinery/porta_turret/syndicate{ + dir = 6 + }, +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) "deY" = ( /obj/structure/cable{ tag = "icon-0-4"; @@ -93782,19 +93758,19 @@ "dfB" = ( /obj/structure/table/optable, /obj/item/weapon/surgical_drapes, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "dfC" = ( /obj/structure/table, /obj/item/weapon/cautery, /obj/item/weapon/scalpel, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "dfD" = ( /obj/structure/table, /obj/item/weapon/retractor, /obj/item/weapon/hemostat, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "dfE" = ( /obj/structure/table, @@ -93807,7 +93783,7 @@ /obj/item/stack/rods{ amount = 50 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "dfF" = ( /obj/docking_port/stationary{ @@ -93863,10 +93839,14 @@ }, /area/chapel/main) "dfK" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall2" +/turf/open/space, +/obj/machinery/porta_turret/syndicate{ + dir = 10 }, -/area/shuttle/escape) +/turf/closed/wall/mineral/plastitanium{ + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) (1,1,1) = {" aaa @@ -98546,12 +98526,12 @@ aaa aaa aaa aaa -cXN -aae +aad aae aae aae aae +dew aae aae aae @@ -98797,7 +98777,7 @@ aaa aaa aaa aaa -cXN +aad aae aae aae @@ -99583,7 +99563,7 @@ cYu aae aae aae -cXI +deX aaa aaa aaa @@ -99666,11 +99646,11 @@ aaa aaa aaa aaa -cZx -cZQ +cZz +cZz cZC -dau -dby +cZz +cZz aaa aaa aaa @@ -99823,7 +99803,7 @@ bUy cXB cXD aae -cXG +dev aaa aae cXQ @@ -100175,21 +100155,21 @@ aaa aaa aaa aaa -cZx -cZG -cZY -cZY -cZE -cZJ -cZQ -dba -dau -cZJ -daG +cZz +cZz cZY cZY cZz -dby +cZz +cZz +dba +cZz +cZz +cZz +cZY +cZY +cZz +cZz aaa aaa aaa @@ -100338,10 +100318,10 @@ bTn bTn aae cXJ -cXL -cXL -cXL -cXL +bTn +bTn +bTn +bTn cYa bTn bTn @@ -100433,20 +100413,20 @@ aaa aaa aaa cZz -cZJ -dab -cZK -cZG +cZz +cZz +cZz +cZz daI daS cZS dbr dbz cZz -cZK -cZK -cZJ -cZG +cZz +cZz +cZz +cZz aaa aaa aaa @@ -100689,21 +100669,21 @@ aaa aaa aaa aaa -cZy +cZz cZI -daa +cZz dao -daa +cZz dai dai dai dai dai -cZy +cZz dbM dbX dcl -cZy +cZz aaa aaa aaa @@ -100850,7 +100830,7 @@ aQg cXA bTn cXE -bGq +aae cXK cXM cXM @@ -101204,10 +101184,10 @@ aaa aaa aaa cZz -cZK -cZK -cZK -daz +cZz +cZz +cZz +cZz daJ daT dbb @@ -101470,11 +101450,11 @@ daT dbe dbs dai -daE +cZz dbO dbZ dcl -cZy +cZz aaa aaa aaa @@ -101639,7 +101619,7 @@ cYw aae aae aae -cXG +dfK aaa aaa aaa @@ -101717,7 +101697,7 @@ aaa aaa aaa aaa -cZy +cZz cZM dad daq @@ -101727,11 +101707,11 @@ daT dbd dbs dai -cZB -cZK +cZz +cZz dbY -cZK -cZG +cZz +cZz aaa aaa aaa @@ -101975,10 +101955,10 @@ aaa aaa aaa cZz -cZK -cZK -cZK -cZG +cZz +cZz +cZz +cZz dai daV dbf @@ -101988,7 +101968,7 @@ dbH dai dca dco -cZy +cZz aaa aaa aaa @@ -102231,17 +102211,17 @@ aaa aaa aaa aaa -cZy +cZz cZO daf das -cZy +cZz daM dai cZS dai dai -daE +cZz dbP cZS dcn @@ -102492,13 +102472,13 @@ cZA cZP dag dat -cZB -cZK -cZQ +cZz +cZz +cZz dbg -dau -cZK -cZG +cZz +cZz +cZz dbR dcc dcq @@ -102658,12 +102638,12 @@ aaa aaa aaa aaa -cXU -aae +aaY aae aae aae aae +csh aae aae aae @@ -102711,11 +102691,11 @@ aaa aaa aaa aaa -aaW -bnn -aSJ -aSJ -aSJ +aaa +aaa +aaa +aaa +aaa aaa aaa aaf @@ -102755,11 +102735,11 @@ dai dai dai dai -cZy +cZz dbQ dcb dcp -cZy +cZz aaa aaa aaa @@ -102967,11 +102947,11 @@ aaa aaa aaa aaa -aOy -aQb -aQb -aSK -aTS +aaa +aaW +bnn +aSJ +aSJ aSJ aWM aYo @@ -102994,7 +102974,7 @@ aYo aaa cZg cZq -cZt +cZg aaa aYo aYo @@ -103002,21 +102982,21 @@ aYo aYo aaa aaf -cZy +cZz cZR dai dav -daE +cZz dai daU dbi daU dai cZz -cZK -cZK -cZK -cZG +cZz +cZz +cZz +cZz aaa aaa aaa @@ -103223,11 +103203,11 @@ aaa aaa aaa aaa -cWl -aOz -cWs -cWF -aSL +aaa +aQb +aQb +aQb +aSK aTT aVr aWN @@ -103237,10 +103217,10 @@ aaf aaf aaa bev -bic +bew bey -bic -bnD +bew +bev aaa aaf aaf @@ -103251,29 +103231,29 @@ aYo cZg cZl cZp -cZs -cZt +cZl +cZg aYo bNc aYp aYo aYo aYo -cZB +cZz cZQ dah -dau -daD +cZz +cZz dai daV dbh daV dbA -daa +cZz dbS daU dcr -cZy +cZz aaa aaa aaa @@ -103480,12 +103460,12 @@ aaa aaa aaa aaa -aaa -aOA -aQb -aQb -aSM -aTU +cWl +aOz +cWs +cWF +aSL +bum aVs aWO aYq @@ -103733,15 +103713,15 @@ aaf aaf aaf aaf -aaf aaa aaa -aaf aaa aaa -aaZ -bnn -aSJ +aaa +aQb +aQb +aQb +aSK aTV aSJ aWP @@ -103783,11 +103763,11 @@ dai dbj cZS dai -daE +cZz daU daU dcs -cZy +cZz aaa aaa aaa @@ -103990,29 +103970,29 @@ aaf aaf aaa aaa -aDr -aDr -aDr -aDr -aGd -aGd -aDr -aDr -aDr -aDr +aaa +aaa +aaa +aaa +aaf +aaa +aaZ +bnn aSJ -aWQ +aSJ +aSJ +ddc aYr aSJ aaa aaa bev -bgi -bic +bew +bew bex -bic -bgi -bnD +bew +bew +bev aaa aaa aSJ @@ -104030,21 +104010,21 @@ aYq aYo aYo aYo -cZE -cZQ +cZz +cZz dal -dau -daG +cZz +cZz dai daU dbm daU dai cZz -cZK -cZK -cZK -cZG +cZz +cZz +cZz +cZz aaa aaa aaa @@ -104244,19 +104224,19 @@ aoa aoa aoa aoa -aDr -aDr -aDr -aDr -aIO -aKl -aLA -aHF -aHF -aHF -aLA -aHG -aTW +aaf +aoa +aaa +aaf +aaa +aaa +aaf +aaf +aaf +aaf +aaa +aaf +aaf aSJ aWR aYq @@ -104287,11 +104267,11 @@ aYq aYo aaa aaf -cZy +cZz cZU dak daw -daa +cZz dai daU dbl @@ -104301,7 +104281,7 @@ dbJ dbU dcg dcu -cZy +cZz aaa aaa aaa @@ -104502,19 +104482,19 @@ aoa aaf aoa aDs -aEM aDs -aHC -aIO -aHF -aHF -aHF -aHF -aHF -aIO -aIO -aIO -aVt +aDs +aDs +aDs +aDs +aDs +aDs +aDs +aDs +aDs +aDs +aDs +aDs aWO aYq bab @@ -104758,20 +104738,20 @@ aoa azx aoa aoa +aDs aDr -aDr -aDr -aHD -aIO -aHF -aHF -aHF -aHF -aHF -aHF +cZE +cZE +cZE +cZE +cZE +cZE +cZE +daz +daE aSN aTX -aSJ +aDs aWS aYq aYo @@ -104805,13 +104785,13 @@ cZA cZV dam dax -cZE -cZK -cZQ +cZz +cZz +cZz dbn -dau -cZK -daG +cZz +cZz +cZz dbV dch dcv @@ -105015,20 +104995,20 @@ aoa aoa aaf aai -aag -aaf -aDr -aHE -aHF -aHF -aHF -aHF -aOB -aHF -aHF +aDs +cZy +cZF +cZF +cZF +cZF +cZF +cZF +cZF +daD +daE aSO aTY -aSJ +dcF aWT aYs aYp @@ -105058,21 +105038,21 @@ bOH aYo aaa aaf -cZy +cZz cZX dan day -cZy +cZz daO daY dai dbv daU -cZy +cZz cLU dcj dcx -cZy +cZz aaa aaa aaf @@ -105272,22 +105252,22 @@ ayv aoa aaf aaa -aaa -aaf -aGd -aHF -aHF -aHF -aHF -aHF -aHC -aHF -aHF -aSP -aTZ -aVu -aWU -aYt +aDs +cZy +cZF +cZF +cZF +cZF +cZF +cZF +cZF +daD +daE +aSO +aTY +dcF +aWT +bxI aYq bbz aYo @@ -105315,21 +105295,21 @@ bOI aSJ aaa aaf -cZF -cZK +cZz +cZz cZA -cZK -cZG +cZz +cZz daN cZS dai daL dbB cZz -cZK +cZz cZA -cZK -dbL +cZz +cZz aaa aaa aaf @@ -105529,23 +105509,23 @@ aoa aoa aoa aaf -aaf -aaf -aGd -aHF -aHF -aHF -aLB -aHF -aHF -aHF -aHF -aHF +aDs +cZy +cZF +cZF +cZF +cZK +cZF +cZF +cZF +daD +daE +dby aIO -aVv -aWT -aYu -bac +aDs +dde +bxI +aYq bbA aYo bew @@ -105786,20 +105766,20 @@ aaf aoa aoa aaf -aaa -aaf -aGd -aHG +aDs +cZy +cZF +cZF aHF -aHF -aHF -aHF -aOC -aHF -aHF -aHF -aIO -aSJ +daa +cZF +cZF +cZF +daD +daG +dbL +dcA +dcJ aWV aYv bad @@ -105822,7 +105802,7 @@ cZk cZi cZr cZi -cZw +cZk aYo aWO bzz @@ -106043,20 +106023,20 @@ aaf aaf aaf aaf -aaf -aaf -aDr -aHH -aHF -aHF -aLC -aHF -aOD -aHF -aRk -aHF -aIO -aSJ +aDs +cZy +cZF +cZF +cZF +dab +cZF +cZF +cZF +daD +daE +dcy +dcE +dcK aWW aYw aYo @@ -106090,13 +106070,13 @@ aaa aaa aaa aaa -cZF +cZz cZA cZA cZA cZA cZA -dbL +cZz aaa aaa aaa @@ -106299,22 +106279,22 @@ alQ aaf aaa aaf -alQ -alQ -alQ -aDr -aHI -aHF -aHF -aHF -aHF -aOD -aHF -aHF -aHF +aaa +aDs +cZy +cZF +cZF +cZF +cZF +cZF +cZF +cZF +daD +daE +aSO aUa -aSJ -aWT +aDs +ddn aYw bab bby @@ -106330,7 +106310,7 @@ bab bum bab bxK -bzC +bOI aSJ aYo aYo @@ -106557,32 +106537,32 @@ aaf aaf alQ alQ -aDt -aMz -aDr -aHJ -aIO -aIO -aHF -aHF -aOE -aQd -aRl -aRl +aDs +cZy +cZF +cZF +cZF +cZF +cZF +cZF +cZF +daD +daE +aSO aUb -aVw -aWX +aDs +ddn aYw aYo aYo aYo -bez -bgr +bew +bew bif bif bif -bgr -bpF +bew +bew aYo aYo aYo @@ -106814,32 +106794,32 @@ alQ aiv alQ alI -aDu -aoj -aDr -aHK -aIO -aIO -aIO -aNk -aOF +aDs +cZB +cZG +cZG +cZG +cZG +cZG +cZG +cZG aQe -aRm +daE aSQ aUc -aSJ +aDs aWY aYx bae aYo aaa -beA +bev bgs big big big bnJ -bpG +bev aaa aYo bvU @@ -107071,20 +107051,20 @@ alI auR aqS alI -aku -aoj -aDr -aDr -aIP -aIO -aLD -aDr -aDr -aDr -aDr -aDr -aDr -aSJ +aDs +aDs +aDs +aDs +aDs +aDs +aDs +aDs +aDs +aDs +aDs +aDs +aDs +aDs aWZ aYy baf @@ -107329,16 +107309,16 @@ awf awf aJS awf -aEO -aGe -aDr -aDr -aKm -aDr -aDr -anf -aqU -aRn +bBG +avY +awf +awf +awf +awf +awf +awf +awf +awf awf aUd aVx @@ -107586,16 +107566,16 @@ ana alQ aiv alQ -aEP -aGf -awf -awf -aKn -aJS -aNl -awf -aQf -axg +bRZ +aDt +cZJ +aoj +aoj +dau +auS +aku +aDu +alI aSR aUe alQ @@ -108351,25 +108331,25 @@ asj atA aaf aaa -axa -ayw +axb +axb axc -ayw +axb axc -ayw -aEQ +axb +axb aaa -cYL -cYO -cYO -cYO -cYO -cYO -cYO -cYO -cYO -cYV -cYZ +cYM +cYM +cYM +cYM +cYM +cYM +cYM +cYM +cYM +cYM +cYM aaa aaa alQ @@ -108626,7 +108606,7 @@ cYP cYP cYP cYW -cZb +cYM cZe aaf alQ @@ -109379,13 +109359,13 @@ asj atA aaf aaa -axd -ayw +axb +axb axc aAR axc -ayw -aES +axb +axb aaa cYM cYP @@ -109653,8 +109633,8 @@ cYS cYP cYP cYP -cYY -cZb +cYW +cYM cZf aaf alQ @@ -109901,17 +109881,17 @@ aCj ayz aaf aaa -cYN -cYO -cYO +cYM +cYM +cYM cYQ cYR -cYO +cYM cYT cWM -cYO -cYX -cZc +cYM +cYM +cYM aaa aaf alQ @@ -111454,7 +111434,7 @@ aNp aNp aLI aNp -aNp +cZw aYC bal bbN @@ -111688,7 +111668,7 @@ amW aog ahv aqm -asr +asj atE alI alI @@ -115048,7 +115028,7 @@ aLV awf bhD aQp -aRC +awf avY aUn awf @@ -115070,11 +115050,11 @@ bwh bwh bwh bwh -bDA +cYN byf byf bKb -bKc +bKd bLJ bBI bPa @@ -115327,14 +115307,14 @@ bwh byi bAa bBL -bDB -aOo -bGG -bDC -bKd -bBI bBI +byf +byf bBI +cYV +cYY +cYZ +cZc bQy bSi bTy @@ -115584,14 +115564,14 @@ bwh aGc bAb bwh +bDA +byf +byf +bDC bwh bwh bwh bwh -bLL -bNx -bNw -bPb bwh bSj bTz @@ -115841,18 +115821,18 @@ bwl bwh bwh bwh -bwi +cYO bbn +bbn +cYO +bwh +bwi +cZb aXs bwh bwh bwh bwh -bwh -bwh -bwh -bwh -bwh bVP bXk bYs @@ -116101,8 +116081,8 @@ bBM bwm bFb bwm -bLK -bFb +bwm +cYX bwm bwm bwm @@ -116167,10 +116147,10 @@ aaa ddg ddg ddg -deu +ddb ddg ddg -deu +ddb ddg ddg ddg @@ -116420,18 +116400,18 @@ cTH cRh cOU aaa -cTE +ddb ddi ddi ddi -deu +ddb ddi ddi -deu +ddb ddi ddi ddi -dem +ddb aaa aaa aaa @@ -116572,15 +116552,15 @@ aor apK ahj agw -atT -avc -awg avc avc -awg +atU +avc +avc +atU +avc avc avc -aDK aDN aDN aDN @@ -116677,19 +116657,19 @@ cSB cTI cOU ddb -dcF -dcF -dcF -dcF -dcF -dcF -dcF -dcy -dcF -dcF -dcF -dcF -dev +ddb +ddb +ddb +ddb +ddb +ddb +ddb +ddb +ddb +ddb +ddb +ddb +ddb aaa aaa aaa @@ -116941,7 +116921,7 @@ dei dek dej del -dcU +deu ddI ddI ddI @@ -117089,7 +117069,7 @@ agw atU ave awi -axn +avc ayK ayK ayK @@ -117198,7 +117178,7 @@ ddW ddj dcI ddv -dcA +ddb dcP dcP dcP @@ -117455,9 +117435,9 @@ dcI dcI ded ddx -dcE +ddb deb -dcJ +dcC dcP dcP deb @@ -117600,7 +117580,7 @@ aov ajs arf agw -atV +avc avc awk avc @@ -117608,7 +117588,7 @@ avc avc aBm avc -aDM +avc aDN aGy aIg @@ -117714,7 +117694,7 @@ dcI dcI ddS ddD -dcA +ddb dea dea dcz @@ -117961,20 +117941,20 @@ cSY cTp cTJ cUh -dcC -dcF +ddb +ddb ddk -ddc +ddb ddN -dfK +ddb ddk -dcF -ddO -dcF -ddn +ddb +ddb +ddb +ddb ddk -dcF -deq +ddb +ddb aaa aaa aaa @@ -118218,7 +118198,7 @@ cTa cTr cTL cOU -dcA +ddb ddH dcI dcI @@ -118226,12 +118206,12 @@ dcI dcI dcI ddH -dcE +ddb ddA ddA ddA den -dcA +ddb aaa aaa aaa @@ -118732,7 +118712,7 @@ cOU cOU cOU cOU -dcA +ddb ddf dcI ddl @@ -118860,7 +118840,7 @@ aaa aaa aaf aaa -aaM +aaX aaX aaX abv @@ -118993,16 +118973,16 @@ dcB dcI dcI ddl -dcV +deq ddf dcI ddl -dcA +ddb ddC ddV ddV ddB -dcA +ddb aaa aaa aaa @@ -119254,12 +119234,12 @@ dcz ddf dcI ddh -dcC -dcF +ddb +ddb ddY ddk -dcF -deq +ddb +ddb aaa aaa aaa @@ -119374,10 +119354,10 @@ aaa aaf aaf aaa -aaO aaX aaX -abx +aaX +abv abQ ack aax @@ -119507,16 +119487,16 @@ dcB dcI dcI ddl -dcU +deu ddf dcI ddl -dcA +ddb ddu ddt ddw dep -dcA +ddb aaa aaa aaa @@ -120287,7 +120267,7 @@ ddK ddK dcI ddp -dcA +ddb aaa aaa aaa @@ -120540,11 +120520,11 @@ ddf dcI ddl ddo -dcF +ddb dcz ddm -dcK -deq +ddo +ddb aaa aaa aaa @@ -120788,7 +120768,7 @@ cTd cRK cRK cRK -dcA +ddb dcM dcI ddl @@ -120796,12 +120776,12 @@ dcz ddf dcI ddl -dcA +ddb ddL ddZ dee des -dcA +ddb aaa aaa aaa @@ -121058,7 +121038,7 @@ ddM dcT dcP ddy -dcA +ddb aaa aaa aaa @@ -121310,7 +121290,7 @@ dcz ddf dcI ddl -dcU +deu ddR dcP dcP @@ -121816,7 +121796,7 @@ cRq cRK cRK cRK -dcA +ddb dcI dcI dcI @@ -121829,7 +121809,7 @@ ddT dcP dcP det -dcA +ddb aaa aaa aaa @@ -122073,7 +122053,7 @@ aaf aaa aaa aaf -dcA +ddb dcH dcG dcH @@ -122086,7 +122066,7 @@ ddU ddT ddT dcO -dcA +ddb aaf aaf aaf @@ -122330,20 +122310,20 @@ aaf aaf aaf aaf -dde -dcF +ddb +ddb dcz -dcF +ddb dcz -dcF +ddb dcz -dcF -ddn -dcF +ddb +ddb +ddb dcz dcz -dcF -dew +ddb +ddb aaa aaa aaf @@ -123249,9 +123229,9 @@ aed ajI akS ame -anC -anC -anC +ddO +ddO +ddO aru asM auf @@ -124537,7 +124517,7 @@ amq boY aoN aqe -arz +arx asR aui avi @@ -125051,7 +125031,7 @@ ams anI aoP aqg -arz +arx asT ajJ avi @@ -125305,9 +125285,9 @@ aed ajP ala amt -anJ -anJ -anJ +dem +dem +dem arB asU auk @@ -125443,7 +125423,7 @@ deR deS deW dfz -cTC +cXN cXl aaa aaa @@ -126184,7 +126164,7 @@ aaa aaa aaa aaf -crZ +cTE cTC cUq cUG @@ -127667,7 +127647,7 @@ bDZ bFJ bHt bJi -bDY +bPb bMq bNX bPL @@ -129977,7 +129957,7 @@ byY bAJ bza bAG -bAG +cXL bHA bJm bAG @@ -131463,7 +131443,7 @@ aaa acS adn adJ -aei +adn acS afH agF @@ -132229,12 +132209,12 @@ aaa aaa aaa aaa -aaf -aaf aai -adp +aaa +aaa +ado adM -aej +ado aeI afJ afJ @@ -132301,7 +132281,7 @@ bRs bJs bUo bVq -bWI +apk bXO apj bZm @@ -132486,10 +132466,10 @@ aaa aaa aaa aaa -aaa -aaa aag aaa +aaa +aaa bjU aaa aeJ @@ -132743,10 +132723,10 @@ aaa aaa aaa aaa -aaa -aaa aai aaf +aaf +aaf aai aaf aeI @@ -134607,7 +134587,7 @@ bEn bHQ bJz bKT -bDx +cZx atw cXn bRz @@ -134877,9 +134857,9 @@ bZs bCS cbS cdo -ceY -bzf -aaf +cYL +cZs +cZt bCV bCV bCV @@ -136642,10 +136622,10 @@ aVe ayo aYd ayp -ayo -bdd -bdf -dcR +atw +aqy +aqz +aXQ bjR bjR bjR @@ -136879,7 +136859,7 @@ ajh avN atw ayo -azn +bWI ayo ayo aDq @@ -136897,12 +136877,12 @@ aDq aDq ayo ayo -azn +bWI ayo -ayo -aKe +atw +apk dbT -bjF +atw bhI bjR bhH @@ -137156,13 +137136,13 @@ dbt aaf aYe aZT -ayo +atw dbC dcd -bjF +atw bhJ bjS -blz +bhJ bjF brs btK @@ -137413,8 +137393,8 @@ aaf aoa azq ayr -ayo -bde +atw +atn dce brr bhK @@ -137670,15 +137650,15 @@ aaf aWB aYf aZU -ayo -aKe -aBZ +atw +apk +alw brr bhK cWO bhK brr -bsE +aOx btL aOx bjF @@ -137927,14 +137907,14 @@ aaa aWC bVC ayr -ayo -bdf -aBZ -aaf -bhL +atw +aqz +alw +aaa +bhK bjV -blA -aaf +bhK +aaa aaf brt aaf @@ -138184,15 +138164,15 @@ aaa azq ayq azu -ayo +atw dbC -aBZ +alw aaf aaa cYF aaa aaf -aaa +aaf brt aaa aaf @@ -138441,9 +138421,9 @@ aaa azq ayr ayo -ayo -aKe -aBZ +atw +apk +alw aaf aaf aaf @@ -138699,8 +138679,8 @@ azq aYg ayo bbo -aKe -aBZ +apk +alw aaf aaa aaa @@ -138955,9 +138935,9 @@ aaf azq ayr ayo -ayo -bdg -aBZ +atw +avD +alw aaf aaa aaa @@ -139212,9 +139192,9 @@ aaa azq ayt aZT -ayo +atw dbC -aDq +alx aaf aaa aaa @@ -139469,9 +139449,9 @@ aaa azq bVC ayr -ayo +atw bdh -aBZ +alw aaf aaf aaa @@ -139726,10 +139706,10 @@ aaf aWB aYf azu -ayo -bdi -aBZ -aBZ +atw +atx +alw +alw aaf aaa aaa @@ -139983,10 +139963,10 @@ aaf azq azq ayu -ayo -aKg +atw +avS aZS -bdi +atx acn acn aaf @@ -140240,10 +140220,10 @@ aaf aWD ayu ayu -ayo -bdi -aBZ -aBZ +atw +atx +alw +alw aaf aaa aaa @@ -141020,7 +141000,7 @@ aaa aaa aaf aaa -btN +brt aaa aaf aaa @@ -144103,9 +144083,9 @@ aaf aaa aaa aaf -bpg +aaa brw -btO +aaa aaf aaa aaa @@ -144359,11 +144339,11 @@ aaa aaf aaf aaf -bni +aaf bph -brx +bry btP -bvK +aaf aaa aaa aaa @@ -144617,9 +144597,9 @@ aaf aaa aaa bnj -bpi +aaa bry -bpf +aaa bvL aaa aaa @@ -145131,9 +145111,9 @@ bhM bhM aPX bnl -bpj +aOr brz -btQ +aOr bvM aaa aaa @@ -145387,7 +145367,7 @@ aNi bhN bhN aPX -bnm +aNi bpk brA btR diff --git a/_maps/map_files/MiniStation/MiniStation.dmm b/_maps/map_files/MiniStation/MiniStation.dmm index 25d8fb7e6f..639699ef69 100644 --- a/_maps/map_files/MiniStation/MiniStation.dmm +++ b/_maps/map_files/MiniStation/MiniStation.dmm @@ -22,8 +22,13 @@ /turf/open/space, /area/space) "ad" = ( -/turf/closed/mineral/random/low_chance, -/area/mine/explored) +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 4; + name = "4maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) "ae" = ( /obj/docking_port/stationary{ dheight = 9; @@ -42,7 +47,7 @@ /area/mine/unexplored) "ag" = ( /turf/closed/mineral/random/high_chance, -/area/mine/explored) +/area/mine/unexplored) "ah" = ( /turf/closed/wall, /area/bridge) @@ -515,9 +520,9 @@ /turf/closed/wall, /area/bridge) "bm" = ( -/turf/closed/wall/shuttle{ - icon_state = "wall3" - }, +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "bn" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber{ @@ -591,13 +596,13 @@ pixel_y = 0 }, /turf/closed/wall, -/area/hallway/primary/central) +/area/maintenance/fore) "bz" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fore) "bA" = ( /obj/machinery/airalarm{ pixel_y = 23 @@ -605,6 +610,11 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/bridge) "bB" = ( @@ -654,8 +664,12 @@ "bG" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 8; + name = "8maintenance loot spawner" + }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fore) "bH" = ( /obj/structure/plasticflaps/mining, /obj/machinery/conveyor{ @@ -703,14 +717,14 @@ req_access_txt = "13" }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fore) "bN" = ( /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fore) "bO" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fore) "bP" = ( /obj/structure/cable{ d1 = 1; @@ -749,11 +763,11 @@ pixel_y = 0 }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fore) "bT" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fore) "bU" = ( /turf/closed/wall, /area/medical/research{ @@ -787,9 +801,11 @@ /turf/open/floor/plasteel, /area/quartermaster/storage) "bY" = ( -/turf/open/floor/plasteel/loadingarea{ - dir = 4 +/obj/machinery/conveyor{ + dir = 4; + id = "mining_internal" }, +/turf/open/floor/plasteel, /area/quartermaster/storage) "bZ" = ( /obj/machinery/mineral/processing_unit{ @@ -809,15 +825,14 @@ /turf/open/floor/plasteel, /area/quartermaster/storage) "cb" = ( -/obj/machinery/mineral/stacking_machine{ - input_dir = 8; - output_dir = 4 +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) +/turf/open/floor/plating, +/area/maintenance/starboard) "cc" = ( /obj/machinery/conveyor{ - dir = 9; + dir = 6; id = "mining_internal" }, /turf/open/floor/plasteel, @@ -844,7 +859,7 @@ dir = 4 }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fore) "cg" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 @@ -878,7 +893,7 @@ dir = 8 }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fore) "cj" = ( /turf/closed/wall/r_wall, /area/security/brig) @@ -981,12 +996,12 @@ /turf/closed/wall, /area/quartermaster/storage) "cv" = ( -/obj/machinery/mineral/stacking_unit_console{ - layer = 3; - machinedir = 5; - pixel_y = 0 +/obj/machinery/conveyor{ + dir = 2; + id = "mining_bypass" }, -/turf/closed/wall, +/obj/structure/plasticflaps, +/turf/open/floor/plating, /area/quartermaster/storage) "cw" = ( /obj/machinery/conveyor{ @@ -998,8 +1013,12 @@ /area/quartermaster/storage) "cx" = ( /obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fore) "cy" = ( /turf/open/floor/plasteel/blue/side{ dir = 1 @@ -1192,7 +1211,7 @@ icon_state = "2-4" }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/starboard) "cU" = ( /obj/structure/cable{ d1 = 4; @@ -1201,7 +1220,7 @@ pixel_x = 0 }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fore) "cV" = ( /obj/structure/cable{ d1 = 4; @@ -1211,7 +1230,7 @@ }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fore) "cW" = ( /obj/structure/cable{ d1 = 4; @@ -1223,7 +1242,7 @@ req_access_txt = "12" }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fore) "cX" = ( /obj/structure/cable{ d1 = 4; @@ -1280,7 +1299,7 @@ icon_state = "1-8" }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fore) "db" = ( /obj/structure/cable{ d1 = 4; @@ -1290,7 +1309,7 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fore) "dc" = ( /obj/machinery/power/apc{ auto_name = 1; @@ -1427,11 +1446,9 @@ name = "Research Division" }) "dp" = ( -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 +/turf/open/floor/plasteel/loadingarea{ + dir = 1 }, -/turf/open/floor/plasteel/bot, /area/quartermaster/storage) "dq" = ( /turf/open/floor/plasteel/bot, @@ -1460,7 +1477,7 @@ "dt" = ( /obj/machinery/light/small, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fore) "du" = ( /obj/structure/closet/secure_closet/personal, /obj/machinery/airalarm{ @@ -1484,7 +1501,9 @@ "dx" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/closed/wall, -/area/hallway/primary/central) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "dy" = ( /obj/machinery/status_display{ density = 0; @@ -1492,7 +1511,7 @@ supply_display = 1 }, /turf/closed/wall, -/area/hallway/primary/central) +/area/maintenance/fore) "dz" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 @@ -1616,11 +1635,19 @@ name = "Research Division" }) "dN" = ( -/obj/machinery/mineral/equipment_vendor, -/turf/open/floor/plasteel/brown/corner{ - dir = 8 +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 }, -/area/quartermaster/storage) +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "dO" = ( /obj/effect/landmark/start{ name = "Cargo Technician" @@ -1891,19 +1918,13 @@ /turf/open/floor/plating, /area/security/brig) "eu" = ( -/turf/open/space, -/obj/machinery/porta_turret/syndicate, -/turf/closed/wall/shuttle{ - dir = 8; - icon_state = "diagonalWall3" - }, +/turf/closed/wall/mineral/plastitanium, /area/shuttle/syndicate) "ev" = ( -/obj/machinery/suit_storage_unit/mining/eva, -/turf/open/floor/plasteel/brown{ - dir = 8 - }, -/area/quartermaster/storage) +/turf/closed/wall, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "ew" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/glass_mining{ @@ -2212,22 +2233,13 @@ /turf/closed/wall, /area/space) "eY" = ( -/turf/closed/wall/shuttle{ - icon_state = "wall3" - }, -/area/space) +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "eZ" = ( -/obj/structure/rack, -/obj/item/weapon/pickaxe, -/obj/item/weapon/pickaxe{ - pixel_x = 5 - }, -/obj/item/weapon/shovel{ - pixel_x = -5 - }, -/obj/item/weapon/shovel{ - pixel_x = -5 - }, +/obj/structure/closet/wardrobe/cargotech, /turf/open/floor/plasteel/brown{ dir = 8 }, @@ -2446,7 +2458,7 @@ pixel_x = -25; pixel_y = 0 }, -/obj/structure/closet/wardrobe/miner, +/obj/structure/closet/wardrobe/cargotech, /turf/open/floor/plasteel/brown/corner{ dir = 1 }, @@ -2474,11 +2486,11 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/structure/closet/wardrobe/cargotech, /obj/machinery/light{ icon_state = "tube1"; dir = 4 }, +/obj/structure/closet/wardrobe/cargotech, /turf/open/floor/plasteel/yellow/side{ dir = 4 }, @@ -2924,11 +2936,18 @@ name = "Research Division" }) "gy" = ( -/obj/structure/closet/crate, /obj/machinery/camera/autoname{ dir = 8 }, /obj/item/weapon/ore/glass, +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, /turf/open/floor/plasteel/bot, /area/quartermaster/storage) "gz" = ( @@ -2974,6 +2993,7 @@ "gD" = ( /obj/structure/closet/crate, /obj/item/weapon/ore/slag, +/obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plasteel/bot, /area/quartermaster/storage) "gE" = ( @@ -3223,10 +3243,18 @@ /area/quartermaster/storage) "hb" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plasteel/bot, /area/quartermaster/storage) "hc" = ( -/obj/structure/closet/crate, +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, /turf/open/floor/plasteel/bot, /area/quartermaster/storage) "hd" = ( @@ -3438,6 +3466,10 @@ "hy" = ( /obj/structure/closet/crate, /obj/item/weapon/ore/glass, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, /turf/open/floor/plasteel/bot, /area/quartermaster/storage) "hz" = ( @@ -3561,8 +3593,13 @@ /area/hallway/primary/central) "hP" = ( /obj/machinery/camera{ - c_tag = "Toxin Test Site"; + active_power_usage = 0; + c_tag = "Bomb Test Site"; + desc = "A specially-reinforced camera with a long lasting battery, used to monitor the bomb testing site."; dir = 8; + invuln = 1; + light = null; + name = "Hardened Bomb-Test Camera"; network = list("RD","Toxins"); use_power = 0 }, @@ -3635,8 +3672,12 @@ name = "Research Division" }) "hY" = ( -/obj/structure/closet/crate, /obj/item/weapon/ore/iron, +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plasteel/bot, /area/quartermaster/storage) "hZ" = ( @@ -3678,6 +3719,7 @@ pixel_x = 24 }, /obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plasteel/bot, /area/quartermaster/storage) "id" = ( @@ -3939,8 +3981,10 @@ desc = "A warning sign which reads 'BOMB RANGE"; name = "BOMB RANGE" }, -/turf/closed/wall/shuttle{ - icon_state = "wall3" +/turf/closed/indestructible{ + desc = "A wall impregnated with Fixium, able to withstand massive explosions with ease"; + icon_state = "riveted"; + name = "hyper-reinforced wall" }, /area/space) "iE" = ( @@ -3948,7 +3992,7 @@ dir = 6 }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fore) "iF" = ( /obj/effect/landmark/start{ name = "Assistant" @@ -4012,10 +4056,10 @@ /area/hallway/primary/central) "iM" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/firedoor, /obj/machinery/door/airlock/glass{ name = "Central Access" }, -/obj/machinery/door/firedoor, /turf/open/floor/plasteel, /area/hallway/primary/central) "iN" = ( @@ -4025,17 +4069,17 @@ icon_state = "1-2"; pixel_y = 0 }, +/obj/machinery/door/firedoor, /obj/machinery/door/airlock/glass{ name = "Central Access" }, -/obj/machinery/door/firedoor, /turf/open/floor/plasteel, /area/hallway/primary/central) "iO" = ( +/obj/machinery/door/firedoor, /obj/machinery/door/airlock/glass{ name = "Central Access" }, -/obj/machinery/door/firedoor, /turf/open/floor/plasteel, /area/hallway/primary/central) "iP" = ( @@ -4051,7 +4095,9 @@ /obj/machinery/portable_atmospherics/pump, /obj/machinery/atmospherics/components/unary/portables_connector/visible, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "iR" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber{ dir = 2; @@ -4147,13 +4193,12 @@ name = "Research Division" }) "jc" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s6"; - dir = 2 - }, -/area/shuttle/arrival) +/turf/open/floor/plating, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "jd" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Arrivals Shuttle Airlock" }, /obj/docking_port/mobile{ @@ -4162,7 +4207,7 @@ height = 7; id = "arrival"; name = "arrival shuttle"; - travelDir = -90; + port_angle = -90; width = 15 }, /obj/docking_port/stationary{ @@ -4173,11 +4218,12 @@ name = "port bay 1"; width = 15 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "je" = ( /obj/machinery/light/small, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plasteel/bot, /area/quartermaster/storage) "jf" = ( @@ -4264,7 +4310,9 @@ dir = 1 }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "jp" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -4712,24 +4760,33 @@ }, /obj/structure/reagent_dispensers/watertank, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "kj" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "kk" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "kl" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "km" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -4989,19 +5046,25 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/space_heater, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "kS" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8 }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "kT" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "kU" = ( /obj/structure/rack{ dir = 1 @@ -5011,8 +5074,11 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, +/obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "kV" = ( /obj/structure/rack{ dir = 1 @@ -5022,8 +5088,11 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, +/obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "kW" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/closed/wall, @@ -5165,7 +5234,9 @@ dir = 4 }, /turf/closed/wall, -/area/hallway/secondary/exit) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "lq" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -5173,13 +5244,17 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/space_heater, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "lr" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "ls" = ( /obj/machinery/light{ icon_state = "tube1"; @@ -5195,15 +5270,15 @@ icon_state = "2-8" }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/starboard) "lu" = ( /obj/machinery/vending/assist, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/starboard) "lv" = ( /obj/machinery/vending/tool, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/starboard) "lw" = ( /obj/machinery/conveyor{ dir = 4; @@ -5411,7 +5486,9 @@ dir = 4 }, /turf/closed/wall, -/area/hallway/secondary/exit) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "lO" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -5422,13 +5499,17 @@ name = "Distribution Loop" }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "lP" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "lQ" = ( /obj/structure/reagent_dispensers/watertank, /obj/machinery/atmospherics/components/unary/vent_scrubber{ @@ -5441,14 +5522,19 @@ /turf/open/floor/plating/warnplate{ dir = 4 }, -/area/hallway/primary/central) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "lS" = ( /obj/machinery/conveyor{ dir = 4; id = "recycler" }, +/obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "lT" = ( /obj/machinery/conveyor{ dir = 4; @@ -5456,7 +5542,9 @@ }, /obj/machinery/recycler, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "lU" = ( /obj/machinery/airalarm{ dir = 8; @@ -5473,7 +5561,9 @@ stack_amt = 10 }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "lW" = ( /obj/machinery/mineral/stacking_unit_console{ dir = 2; @@ -5481,8 +5571,11 @@ pixel_y = 27 }, /obj/structure/chair/stool, +/obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "lX" = ( /obj/structure/cable{ d1 = 4; @@ -5494,7 +5587,9 @@ req_access_txt = "12" }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "lY" = ( /obj/structure/cable{ d1 = 4; @@ -5529,7 +5624,7 @@ icon_state = "1-8" }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/starboard) "mb" = ( /turf/closed/wall/r_wall, /area/ai_monitored/storage/eva) @@ -5703,36 +5798,52 @@ /area/hallway/secondary/exit) "mr" = ( /obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 4; + name = "4maintenance loot spawner" + }, /turf/open/floor/plating, -/area/hallway/secondary/exit) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "ms" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "mt" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "mu" = ( /obj/machinery/light/small{ dir = 1 }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "mv" = ( /turf/open/floor/plating/warnplate/corner{ dir = 8 }, -/area/hallway/primary/central) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "mw" = ( /turf/open/floor/plating/warnplate{ dir = 1 }, -/area/hallway/primary/central) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "mx" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 @@ -5745,7 +5856,9 @@ name = "recycler conveyor" }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "mz" = ( /obj/structure/cable{ d1 = 1; @@ -5757,7 +5870,9 @@ dir = 4 }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "mA" = ( /obj/structure/table, /obj/item/clothing/head/welding, @@ -5837,7 +5952,7 @@ name = "blobstart" }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/starboard) "mH" = ( /obj/structure/cable{ d1 = 1; @@ -5851,7 +5966,7 @@ pixel_y = 0 }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/starboard) "mI" = ( /obj/machinery/power/apc{ auto_name = 1; @@ -5997,7 +6112,9 @@ req_access_txt = "12" }, /turf/open/floor/plating, -/area/hallway/secondary/exit) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "mV" = ( /obj/structure/cable{ d1 = 4; @@ -6006,7 +6123,9 @@ pixel_x = 0 }, /turf/open/floor/plating, -/area/hallway/secondary/exit) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "mW" = ( /obj/structure/cable{ d1 = 2; @@ -6014,12 +6133,16 @@ icon_state = "2-8" }, /turf/open/floor/plating, -/area/hallway/secondary/exit) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "mX" = ( /turf/open/floor/plating/warnplate/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "mY" = ( /obj/structure/cable{ d1 = 1; @@ -6027,7 +6150,9 @@ icon_state = "1-8" }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "mZ" = ( /obj/structure/table, /obj/item/stack/sheet/rglass{ @@ -6073,8 +6198,9 @@ /obj/machinery/light/small{ dir = 8 }, +/obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/starboard) "nf" = ( /obj/structure/cable{ d1 = 1; @@ -6084,10 +6210,18 @@ }, /mob/living/simple_animal/mouse, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/starboard) "ng" = ( -/turf/closed/wall/r_wall, -/area/hallway/primary/central) +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "nh" = ( /obj/machinery/conveyor_switch{ id = "ToxinLoad" @@ -6290,7 +6424,9 @@ pixel_y = 0 }, /turf/open/floor/plating, -/area/hallway/secondary/exit) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "nz" = ( /obj/structure/closet/secure_closet/personal, /obj/machinery/airalarm{ @@ -6320,22 +6456,30 @@ name = "Distribution Loop" }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "nD" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 10 }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "nE" = ( /mob/living/simple_animal/mouse, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "nF" = ( /turf/open/floor/plating/warnplate{ dir = 9 }, -/area/hallway/primary/central) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "nG" = ( /obj/structure/table, /obj/item/stack/sheet/metal{ @@ -6375,7 +6519,7 @@ "nM" = ( /obj/machinery/space_heater, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/starboard) "nN" = ( /obj/structure/cable{ d1 = 1; @@ -6383,7 +6527,7 @@ icon_state = "1-4" }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/starboard) "nO" = ( /obj/machinery/power/apc{ auto_name = 1; @@ -6410,7 +6554,7 @@ /area/medical/medbay) "nR" = ( /obj/structure/table, -/obj/item/clothing/tie/stethoscope, +/obj/item/clothing/neck/stethoscope, /turf/open/floor/plasteel/white, /area/medical/medbay) "nS" = ( @@ -6487,7 +6631,9 @@ }, /obj/machinery/light/small, /turf/open/floor/plating, -/area/hallway/secondary/exit) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "nZ" = ( /obj/machinery/power/apc{ auto_name = 1; @@ -6575,7 +6721,9 @@ icon_state = "2-4" }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "oi" = ( /obj/machinery/power/apc{ auto_name = 1; @@ -6645,7 +6793,7 @@ "on" = ( /obj/structure/reagent_dispensers/watertank, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/starboard) "oo" = ( /obj/effect/landmark/start{ name = "Assistant" @@ -6848,7 +6996,9 @@ /turf/open/floor/plating/warnplate{ dir = 10 }, -/area/hallway/primary/central) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "oM" = ( /obj/machinery/light{ icon_state = "tube1"; @@ -6997,9 +7147,16 @@ }, /area/medical/medbay) "ph" = ( -/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, /turf/open/floor/plating, -/area/shuttle/arrival) +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "pi" = ( /obj/structure/chair/comfy/beige, /turf/open/floor/plasteel/grimy, @@ -7080,7 +7237,9 @@ pixel_y = 0 }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "ps" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -7099,7 +7258,7 @@ dir = 1 }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/starboard) "pu" = ( /obj/machinery/power/apc{ auto_name = 1; @@ -7138,7 +7297,9 @@ /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "py" = ( /obj/structure/toilet{ pixel_y = 8 @@ -7161,10 +7322,14 @@ /area/hallway/primary/central) "pA" = ( /obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, /turf/open/floor/plating/warnplate/corner{ dir = 8 }, -/area/hallway/primary/central) +/area/maintenance/starboard) "pB" = ( /obj/structure/sink{ icon_state = "sink"; @@ -7232,7 +7397,8 @@ /area/medical/medbay) "pK" = ( /obj/structure/table/optable, -/turf/open/floor/plasteel/shuttle/red, +/obj/item/weapon/surgical_drapes, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "pL" = ( /obj/structure/cable{ @@ -7558,7 +7724,9 @@ req_access_txt = "12" }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "qy" = ( /obj/structure/cable{ d1 = 4; @@ -7907,14 +8075,12 @@ /turf/open/floor/plasteel/white, /area/medical/medbay) "rm" = ( -/obj/machinery/meter, /obj/machinery/atmospherics/pipe/simple{ - dir = 4; - icon_state = "intact"; - level = 2 + dir = 4 }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating/airless, +/obj/structure/grille, +/obj/machinery/meter, +/turf/closed/wall/r_wall, /area/engine/engineering) "rn" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -8210,7 +8376,7 @@ /obj/machinery/light/small{ dir = 1 }, -/obj/machinery/telecomms/bus/preset_one/ministation, +/obj/machinery/telecomms/server/presets/common/birdstation, /turf/open/floor/plasteel/black{ name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80" @@ -8483,12 +8649,11 @@ /turf/open/floor/plasteel/white, /area/medical/medbay) "sF" = ( -/obj/machinery/telecomms/receiver/preset_left/ministation, -/turf/open/floor/plasteel/black{ - name = "Mainframe Floor"; - initial_gas_mix = "n2=100;TEMP=80" - }, -/area/tcommsat/computer) +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "sG" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -8685,7 +8850,9 @@ dir = 10 }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "sY" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber{ dir = 4; @@ -9028,7 +9195,9 @@ dir = 4 }, /turf/closed/wall, -/area/hallway/primary/central) +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "tO" = ( /obj/machinery/firealarm{ dir = 8; @@ -9037,10 +9206,8 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "tP" = ( -/obj/structure/transit_tube{ - icon_state = "N-S" - }, /obj/structure/window/reinforced/fulltile, +/obj/structure/transit_tube, /turf/open/floor/plating, /area/engine/engineering) "tQ" = ( @@ -9289,7 +9456,9 @@ pixel_y = 0 }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "uv" = ( /obj/structure/closet/emcloset, /turf/open/floor/plasteel/blue/side{ @@ -9297,10 +9466,8 @@ }, /area/hallway/primary/central) "uw" = ( -/obj/structure/transit_tube{ - icon_state = "N-S" - }, /obj/structure/window/reinforced/fulltile, +/obj/structure/transit_tube, /turf/open/floor/plating, /area/tcommsat/computer) "ux" = ( @@ -9382,13 +9549,7 @@ /turf/open/floor/wood, /area/crew_quarters/bar) "uI" = ( -/obj/structure/grille, -/obj/machinery/door/poddoor/shutters{ - id = "syndieshutters"; - name = "blast shutters" - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "uJ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -9643,10 +9804,7 @@ /turf/open/floor/plasteel/white, /area/medical/medbay) "vm" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall12"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/arrival) "vn" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -9660,29 +9818,33 @@ /turf/open/floor/plating/airless, /area/space) "vp" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall14"; - dir = 2 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 }, -/area/shuttle/arrival) +/turf/open/floor/plating, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "vq" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Arrivals Shuttle Airlock" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "vr" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s10"; - dir = 2 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 }, -/area/shuttle/arrival) +/turf/open/floor/plating, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "vs" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall11"; - dir = 2 - }, -/area/shuttle/arrival) +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "vt" = ( /obj/structure/cable{ d1 = 1; @@ -9765,7 +9927,9 @@ dir = 4 }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "vF" = ( /obj/machinery/atmospherics/components/unary/vent_pump{ dir = 1; @@ -9871,34 +10035,36 @@ /turf/open/floor/plasteel/white, /area/medical/medbay) "vS" = ( -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "vT" = ( /obj/structure/closet/wardrobe/green, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "vU" = ( /obj/machinery/computer/arcade, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "vV" = ( /obj/structure/closet/wardrobe/mixed, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "vW" = ( /obj/structure/closet/wardrobe/black, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "vX" = ( /obj/structure/closet/wardrobe/grey, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "vY" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall7"; - dir = 2 +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" }, -/area/shuttle/arrival) +/turf/open/floor/plating, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "vZ" = ( /obj/structure/shuttle/engine/propulsion{ icon_state = "propulsion"; @@ -9907,11 +10073,8 @@ /turf/open/floor/plating/airless, /area/shuttle/arrival) "wa" = ( -/turf/open/floor/plasteel/shuttle, -/turf/closed/wall/shuttle{ - icon_state = "swall_f9"; - dir = 2 - }, +/turf/open/floor/mineral/titanium/blue, +/turf/closed/wall/mineral/titanium/interior, /area/shuttle/arrival) "wb" = ( /obj/structure/rack{ @@ -9919,8 +10082,14 @@ layer = 2.9 }, /obj/item/weapon/tank/internals/emergency_oxygen, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "wc" = ( /turf/closed/wall, /area/crew_quarters/heads{ @@ -9931,8 +10100,14 @@ dir = 1 }, /obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "we" = ( /obj/structure/piano, /turf/open/floor/plasteel/bar, @@ -10024,7 +10199,7 @@ /turf/open/floor/plating/warnplate/corner{ dir = 2 }, -/area/hallway/primary/central) +/area/maintenance/starboard) "wp" = ( /obj/structure/cable{ icon_state = "0-2"; @@ -10080,16 +10255,16 @@ /turf/open/floor/plating, /area/engine/gravity_generator) "wu" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall3"; - dir = 2 - }, -/area/shuttle/arrival) +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "wv" = ( /obj/structure/chair{ dir = 8 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "ww" = ( /obj/structure/chair{ @@ -10098,7 +10273,7 @@ /obj/effect/landmark{ name = "JoinLate" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "wx" = ( /obj/structure/shuttle/engine/heater{ @@ -10111,27 +10286,24 @@ /turf/open/floor/plating/airless, /area/shuttle/arrival) "wy" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume{ dir = 8; external_pressure_bound = 0; - frequency = 1444; - id_tag = "o2_out"; - initialize_directions = 1; - internal_pressure_bound = 4000; + frequency = 1441; + icon_state = "vent_map"; + id_tag = "air_out"; + internal_pressure_bound = 2000; on = 1; pressure_checks = 2; pump_direction = 0 }, -/turf/open/floor/engine{ - name = "air floor"; - initial_gas_mix = "n2=10580;o2=2644" - }, +/turf/open/floor/engine/air, /area/engine/engineering) "wz" = ( /obj/effect/landmark{ name = "Observer-Start" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "wA" = ( /obj/machinery/power/apc{ @@ -10171,7 +10343,9 @@ icon_state = "2-4" }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "wD" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8 @@ -10183,7 +10357,9 @@ pixel_y = 0 }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "wE" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 10 @@ -10195,7 +10371,9 @@ pixel_y = 0 }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "wF" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 @@ -10206,7 +10384,9 @@ icon_state = "1-8" }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "wG" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/closed/wall, @@ -10301,18 +10481,25 @@ /turf/open/floor/plasteel, /area/engine/engineering) "wU" = ( -/turf/open/floor/plasteel/shuttle, -/turf/closed/wall/shuttle{ - icon_state = "swall_f10"; - dir = 2 +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" }, -/area/shuttle/arrival) +/turf/open/floor/plating, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "wV" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall13"; - dir = 2 +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" }, -/area/shuttle/arrival) +/turf/open/floor/plating, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "wW" = ( /obj/structure/cable{ d1 = 1; @@ -10321,7 +10508,9 @@ }, /mob/living/simple_animal/mouse, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "wX" = ( /obj/structure/cable{ d1 = 1; @@ -10331,7 +10520,9 @@ /turf/open/floor/plating/warnplate/corner{ dir = 2 }, -/area/hallway/primary/central) +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "wY" = ( /obj/machinery/atmospherics/components/binary/pump/on, /obj/structure/cable{ @@ -10342,7 +10533,9 @@ /turf/open/floor/plating/warnplate{ dir = 2 }, -/area/hallway/primary/central) +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "wZ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 @@ -10353,7 +10546,9 @@ /turf/open/floor/plating/warnplate/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "xa" = ( /obj/structure/closet/crate{ desc = "It's a storage unit for kitchen clothes and equipment."; @@ -10471,11 +10666,16 @@ /turf/open/floor/plasteel/white, /area/medical/medbay) "xq" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s5"; - dir = 2 +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 }, -/area/shuttle/arrival) +/turf/open/floor/plating, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "xr" = ( /obj/structure/cable{ d1 = 1; @@ -10483,7 +10683,9 @@ icon_state = "1-2" }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "xs" = ( /obj/structure/sign/securearea{ desc = "A warning sign which reads 'HIGH VOLTAGE'"; @@ -10491,7 +10693,9 @@ name = "HIGH VOLTAGE" }, /turf/closed/wall, -/area/hallway/primary/central) +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "xt" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ icon_state = "intact"; @@ -10505,7 +10709,9 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/meter, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "xv" = ( /obj/machinery/door/airlock/glass{ name = "Central Access" @@ -10610,23 +10816,31 @@ /turf/open/floor/plasteel/white, /area/medical/medbay) "xI" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s9"; - dir = 2 +/obj/machinery/light/small, +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" }, -/area/shuttle/arrival) +/turf/open/floor/plating, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "xJ" = ( -/turf/open/space, -/obj/machinery/porta_turret/syndicate, -/turf/closed/wall/shuttle{ - dir = 1; - icon_state = "diagonalWall3" +/obj/effect/landmark{ + name = "blobstart" }, -/area/shuttle/syndicate) +/turf/open/floor/plating, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "xK" = ( /obj/structure/table, -/obj/machinery/microwave, -/turf/open/floor/plasteel/shuttle/red, +/obj/item/weapon/storage/box/donkpockets{ + pixel_x = 3; + pixel_y = 3 + }, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "xL" = ( /obj/structure/cable{ @@ -10640,7 +10854,9 @@ icon_state = "2-8" }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "xM" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -10697,7 +10913,7 @@ /area/engine/engineering) "xU" = ( /obj/structure/table/wood, -/obj/item/weapon/gun/projectile/revolver/doublebarrel, +/obj/item/weapon/gun/ballistic/revolver/doublebarrel, /obj/item/weapon/reagent_containers/food/drinks/shaker, /turf/open/floor/wood, /area/crew_quarters/bar) @@ -10782,7 +10998,7 @@ /obj/item/clothing/glasses/hud/health, /obj/item/clothing/glasses/hud/health, /obj/item/clothing/glasses/hud/health, -/obj/item/clothing/tie/stethoscope, +/obj/item/clothing/neck/stethoscope, /obj/item/weapon/reagent_containers/hypospray, /turf/open/floor/plasteel/white, /area/medical/medbay) @@ -10800,8 +11016,11 @@ /obj/structure/rack, /obj/item/clothing/mask/gas, /obj/item/clothing/glasses/sunglasses, +/obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "ye" = ( /obj/machinery/meter, /obj/machinery/atmospherics/pipe/simple/cyan/visible{ @@ -10815,14 +11034,18 @@ dir = 5 }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "yg" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "yh" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 @@ -10864,7 +11087,9 @@ dir = 1 }, /turf/closed/wall, -/area/hallway/primary/central) +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "yo" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 @@ -10890,7 +11115,9 @@ dir = 4 }, /turf/closed/wall, -/area/hallway/primary/central) +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "yr" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -10901,7 +11128,9 @@ icon_state = "2-4" }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "ys" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -10913,7 +11142,9 @@ pixel_y = 0 }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "yt" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 @@ -10925,7 +11156,9 @@ pixel_y = 0 }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "yu" = ( /obj/machinery/power/apc{ auto_name = 1; @@ -10957,7 +11190,9 @@ dir = 1 }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "yx" = ( /obj/structure/cable{ d1 = 1; @@ -10971,7 +11206,9 @@ pixel_y = 0 }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "yy" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable{ @@ -10984,7 +11221,9 @@ req_access_txt = "12" }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "yz" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/door/airlock/maintenance{ @@ -10997,7 +11236,9 @@ pixel_y = 0 }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "yA" = ( /turf/closed/wall/r_wall, /area/engine/engineering) @@ -11020,7 +11261,9 @@ "yD" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/closed/wall, -/area/hallway/primary/central) +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "yE" = ( /obj/machinery/light{ icon_state = "tube1"; @@ -11325,11 +11568,11 @@ /turf/closed/wall/r_wall, /area/engine/engineering) "zd" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/door/airlock/glass{ name = "Central Access" }, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/hallway/primary/central) "ze" = ( @@ -11417,10 +11660,7 @@ /turf/open/floor/plating, /area/engine/engineering) "zo" = ( -/turf/open/floor/engine{ - name = "air floor"; - initial_gas_mix = "o2=2644;n2=10580" - }, +/turf/open/floor/engine/air, /area/engine/engineering) "zp" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ @@ -11630,10 +11870,7 @@ /area/engine/engineering) "zO" = ( /obj/machinery/portable_atmospherics/canister/air, -/turf/open/floor/engine{ - name = "air floor"; - initial_gas_mix = "o2=2644;n2=10580" - }, +/turf/open/floor/engine/air, /area/engine/engineering) "zP" = ( /obj/machinery/light/small{ @@ -11875,7 +12112,9 @@ icon_state = "2-4" }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "Aw" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 @@ -12127,7 +12366,9 @@ id = "recycler" }, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "Bd" = ( /obj/machinery/airalarm{ dir = 1; @@ -12348,10 +12589,10 @@ }, /area/engine/engineering) "BH" = ( -/obj/structure/transit_tube/station/reverse{ - dir = 8; - icon_state = "closed" +/obj/structure/transit_tube/station/reverse/flipped{ + dir = 4 }, +/obj/structure/transit_tube_pod, /turf/open/floor/plating/warnplate{ dir = 8 }, @@ -12434,15 +12675,38 @@ }, /area/engine/engineering) "BS" = ( -/obj/structure/table, -/obj/item/device/flashlight/lamp{ - pixel_x = 4; - pixel_y = 1 +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" }, -/turf/open/floor/plasteel/shuttle/red, -/area/shuttle/syndicate) +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 4; + name = "_East APC"; + pixel_x = 27; + pixel_y = 2 + }, +/turf/open/floor/plating, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "BT" = ( -/turf/open/floor/plasteel/shuttle/red, +/obj/item/device/radio/intercom{ + desc = "Talk through this. Evilly"; + freerange = 1; + frequency = 1213; + name = "Syndicate Intercom"; + pixel_y = -32; + subspace_transmission = 1; + syndie = 1 + }, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "BU" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ @@ -12455,10 +12719,7 @@ /turf/open/floor/plasteel, /area/engine/engineering) "BW" = ( -/obj/structure/transit_tube{ - icon_state = "N-S" - }, -/obj/structure/transit_tube_pod, +/obj/structure/transit_tube, /turf/open/floor/plating/warnplate{ dir = 8 }, @@ -12520,17 +12781,19 @@ /turf/open/floor/plasteel, /area/engine/engineering) "Cf" = ( -/obj/structure/table, -/obj/machinery/button/door{ - id = "syndieshutters"; - name = "remote shutter control"; - req_access_txt = "150" +/obj/machinery/door/airlock/external{ + req_access_txt = "13" }, -/turf/open/floor/plasteel/shuttle/red, -/area/shuttle/syndicate) +/turf/open/floor/plating, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "Cg" = ( -/obj/machinery/computer/shuttle/syndicate, -/turf/open/floor/plasteel/shuttle/red, +/obj/structure/chair/comfy/beige{ + dir = 1; + icon_state = "comfychair" + }, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "Ch" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -12541,8 +12804,8 @@ /turf/open/floor/plasteel, /area/engine/engineering) "Ci" = ( -/obj/structure/transit_tube{ - icon_state = "N-SE" +/obj/structure/transit_tube/curved/flipped{ + dir = 1 }, /turf/open/space, /area/space) @@ -12582,10 +12845,10 @@ /turf/open/space, /area/space) "Cp" = ( -/obj/structure/transit_tube{ - icon_state = "E-NW" - }, /obj/structure/lattice, +/obj/structure/transit_tube/curved{ + dir = 4 + }, /turf/open/space, /area/space) "Cq" = ( @@ -12593,15 +12856,13 @@ /turf/open/space, /area/space) "Cr" = ( -/obj/structure/transit_tube{ - icon_state = "E-W-Pass" - }, /obj/structure/lattice, +/obj/structure/transit_tube/crossing/horizontal, /turf/open/space, /area/space) "Cs" = ( -/obj/structure/transit_tube{ - icon_state = "W-SE" +/obj/structure/transit_tube/curved{ + dir = 8 }, /turf/open/space, /area/space) @@ -12630,9 +12891,18 @@ /turf/open/floor/plasteel, /area/engine/engineering) "Cw" = ( -/obj/structure/frame/computer, -/turf/open/floor/plasteel/shuttle/red, -/area/shuttle/syndicate) +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = 0 + }, +/turf/closed/wall, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "Cx" = ( /obj/structure/table, /obj/item/stack/sheet/glass{ @@ -12664,10 +12934,8 @@ /turf/open/floor/plasteel, /area/engine/engineering) "CA" = ( -/obj/structure/transit_tube{ - icon_state = "S-NW" - }, /obj/structure/lattice, +/obj/structure/transit_tube/curved/flipped, /turf/open/space, /area/space) "CB" = ( @@ -13000,11 +13268,11 @@ /area/engine/engineering) "Ds" = ( /obj/structure/table, -/obj/item/weapon/storage/box/donkpockets{ - pixel_x = 3; - pixel_y = 3 +/obj/item/stack/sheet/glass{ + amount = 10 }, -/turf/open/floor/plasteel/shuttle/red, +/obj/item/device/multitool, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "Dt" = ( /obj/structure/chair/office/dark{ @@ -13041,71 +13309,70 @@ /turf/open/floor/plasteel, /area/engine/engineering) "Dx" = ( -/obj/structure/chair/comfy/black{ - dir = 1; - icon_state = "comfychair"; - name = "pilot's chair" +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 }, -/turf/open/floor/plasteel/shuttle/red, -/area/shuttle/syndicate) +/turf/open/floor/plating, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "Dy" = ( -/obj/structure/table, -/obj/item/stack/sheet/glass{ - amount = 10 +/obj/machinery/light/small{ + dir = 1 }, -/obj/item/device/multitool, -/turf/open/floor/plasteel/shuttle/red, -/area/shuttle/syndicate) +/turf/open/floor/plating, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "Dz" = ( -/obj/item/device/radio/intercom{ - desc = "Talk through this. Evilly"; - freerange = 1; - frequency = 1213; - name = "Syndicate Intercom"; - pixel_y = -32; - subspace_transmission = 1; - syndie = 1 +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" }, -/turf/open/floor/plasteel/shuttle/red, -/area/shuttle/syndicate) +/turf/open/floor/plating, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "DA" = ( -/obj/structure/closet/syndicate/personal, -/turf/open/floor/plasteel/shuttle/red, -/area/shuttle/syndicate) +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "DB" = ( /turf/open/space, -/turf/closed/wall/shuttle{ - dir = 2; - icon_state = "diagonalWall3" - }, /area/shuttle/syndicate) "DC" = ( -/obj/machinery/door/window{ - name = "Cockpit"; - req_access_txt = "150" - }, -/turf/open/floor/plasteel/shuttle/red, -/area/shuttle/syndicate) +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/maintenance/aft{ + name = "Aft Maintenance" + }) "DD" = ( /turf/open/space, -/turf/closed/wall/shuttle{ +/obj/machinery/porta_turret/syndicate{ + dir = 6 + }, +/turf/closed/wall/mineral/plastitanium{ dir = 4; icon_state = "diagonalWall3" }, /area/shuttle/syndicate) "DE" = ( -/obj/structure/table, -/obj/item/stack/cable_coil, -/obj/item/weapon/crowbar/red, -/turf/open/floor/plasteel/shuttle/red, -/area/shuttle/syndicate) +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating/airless, +/area/engine/engineering) "DF" = ( -/obj/structure/table, -/obj/item/weapon/storage/box/zipties{ - pixel_x = 1; - pixel_y = 2 +/obj/structure/chair{ + dir = 8 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "DG" = ( /obj/machinery/atmospherics/components/binary/volume_pump{ @@ -13114,29 +13381,41 @@ /turf/open/floor/plating, /area/engine/engineering) "DH" = ( -/obj/structure/chair{ - dir = 4 +/obj/structure/rack{ + dir = 8; + layer = 2.9 }, -/turf/open/floor/plasteel/shuttle/red, -/area/shuttle/syndicate) +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/tcommsat/computer) "DI" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel/shuttle/red, -/area/shuttle/syndicate) -"DJ" = ( /turf/open/space, -/turf/closed/wall/shuttle{ +/obj/machinery/porta_turret/syndicate{ + dir = 9 + }, +/turf/closed/wall/mineral/plastitanium{ dir = 8; icon_state = "diagonalWall3" }, /area/shuttle/syndicate) -"DK" = ( -/obj/machinery/porta_turret/syndicate, -/turf/closed/wall/shuttle{ - icon_state = "wall3" +"DJ" = ( +/turf/closed/indestructible{ + desc = "A wall impregnated with Fixium, able to withstand massive explosions with ease"; + icon_state = "riveted"; + name = "hyper-reinforced wall" }, +/area/space) +"DK" = ( +/obj/structure/grille, +/obj/machinery/door/poddoor/shutters{ + id = "syndieshutters"; + name = "blast shutters" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, /area/shuttle/syndicate) "DL" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ @@ -13146,69 +13425,64 @@ /turf/open/space, /area/engine/engineering) "DM" = ( -/obj/machinery/suit_storage_unit/syndicate, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/space, +/obj/machinery/porta_turret/syndicate{ + dir = 5 + }, +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" + }, /area/shuttle/syndicate) "DN" = ( -/obj/structure/closet/syndicate/nuclear, -/turf/open/floor/plasteel/shuttle/red, +/obj/structure/table, +/obj/item/device/aicard, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "DO" = ( /obj/structure/table, -/obj/item/device/aicard, -/turf/open/floor/plasteel/shuttle/red, +/obj/item/weapon/c4{ + pixel_x = 2; + pixel_y = -5 + }, +/obj/item/weapon/c4{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/c4{ + pixel_x = 2; + pixel_y = -3 + }, +/obj/item/weapon/c4{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/weapon/c4{ + pixel_x = 3; + pixel_y = 3 + }, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "DP" = ( -/obj/structure/chair/stool, -/turf/open/floor/plasteel/shuttle/red, +/obj/structure/table, +/obj/item/device/flashlight/lamp{ + pixel_x = 4; + pixel_y = 1 + }, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "DQ" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 0 - }, -/turf/closed/wall/shuttle{ - icon_state = "wall3" - }, +/obj/machinery/computer/shuttle/syndicate, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "DR" = ( -/obj/machinery/door/poddoor{ - auto_close = 300; - id = "smindicate"; - name = "outer blast door" - }, +/obj/structure/table, /obj/machinery/button/door{ - id = "smindicate"; - name = "external door control"; - pixel_x = -26; - pixel_y = 0; + id = "syndieshutters"; + name = "remote shutter control"; req_access_txt = "150" }, -/obj/docking_port/mobile{ - dheight = 9; - dir = 2; - dwidth = 5; - height = 22; - id = "syndicate"; - name = "syndicate infiltrator"; - roundstart_move = "syndicate_away"; - travelDir = 180; - width = 18 - }, -/obj/docking_port/stationary{ - dheight = 9; - dir = 2; - dwidth = 5; - height = 22; - id = "syndicate_nw"; - name = "northwest of station"; - turf_type = /turf/open/space; - width = 18 - }, -/turf/open/floor/plating, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "DS" = ( /obj/machinery/computer/security/telescreen{ @@ -13235,11 +13509,8 @@ /turf/open/floor/plating, /area/engine/engineering) "DV" = ( -/turf/open/space, -/turf/closed/wall/shuttle{ - dir = 1; - icon_state = "diagonalWall3" - }, +/obj/structure/frame/computer, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "DW" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ @@ -13248,19 +13519,13 @@ /turf/open/floor/engine/vacuum, /area/engine/engineering) "DX" = ( -/obj/structure/transit_tube{ - icon_state = "N-S" - }, /obj/structure/lattice, +/obj/structure/transit_tube/crossing, /turf/open/space, /area/space) "DY" = ( -/obj/structure/table, -/obj/item/weapon/c4{ - pixel_x = 2; - pixel_y = 1 - }, -/turf/open/floor/plasteel/shuttle/red, +/obj/structure/closet/syndicate/personal, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "DZ" = ( /obj/structure/lattice, @@ -13296,17 +13561,19 @@ /area/tcommsat/computer) "Ed" = ( /obj/machinery/door/window{ + base_state = "right"; dir = 4; + icon_state = "right"; name = "EVA Storage"; req_access_txt = "150" }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "Ee" = ( -/obj/structure/transit_tube{ - icon_state = "N-SE" - }, /obj/structure/lattice, +/obj/structure/transit_tube/curved/flipped{ + dir = 1 + }, /turf/open/space, /area/space) "Ef" = ( @@ -13365,10 +13632,10 @@ /turf/open/floor/plating, /area/tcommsat/computer) "En" = ( -/obj/machinery/door/airlock/external{ - req_access_txt = "150" +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + icon_state = "diagonalWall3" }, -/turf/open/floor/plasteel/shuttle/red, /area/shuttle/syndicate) "Eo" = ( /obj/machinery/atmospherics/components/unary/outlet_injector{ @@ -13383,28 +13650,25 @@ /turf/open/space, /area/space) "Eq" = ( -/obj/structure/transit_tube{ - icon_state = "E-NW" +/obj/structure/transit_tube/curved{ + dir = 4 }, /turf/open/space, /area/space) "Er" = ( -/obj/structure/lattice, -/obj/structure/transit_tube{ - icon_state = "E-W-Pass" - }, -/turf/open/space, -/area/space) +/obj/effect/landmark/xmastree, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) "Es" = ( -/obj/structure/transit_tube, /obj/structure/lattice, +/obj/structure/transit_tube/horizontal, /turf/open/space, /area/space) "Et" = ( -/obj/structure/transit_tube{ - icon_state = "W-SE" - }, /obj/structure/lattice, +/obj/structure/transit_tube/curved{ + dir = 8 + }, /turf/open/space, /area/space) "Eu" = ( @@ -13451,21 +13715,16 @@ }, /area/tcommsat/computer) "EB" = ( -/obj/structure/transit_tube{ - icon_state = "NW-SE" - }, /obj/structure/lattice, +/obj/structure/transit_tube/diagonal/topleft, /turf/open/space, /area/space) "EC" = ( /obj/machinery/door/window{ - base_state = "right"; - dir = 4; - icon_state = "right"; - name = "EVA Storage"; + name = "Cockpit"; req_access_txt = "150" }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "ED" = ( /obj/machinery/light/small, @@ -13508,22 +13767,17 @@ /turf/closed/wall/r_wall, /area/tcommsat/computer) "EM" = ( -/obj/structure/rack, -/obj/item/clothing/suit/space/syndicate/black/red, -/obj/item/clothing/head/helmet/space/syndicate/black/red, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" + }, /area/shuttle/syndicate) "EN" = ( -/obj/item/device/radio/intercom{ - desc = "Talk through this. Evilly"; - freerange = 1; - frequency = 1213; - name = "Syndicate Intercom"; - pixel_x = -32; - subspace_transmission = 1; - syndie = 1 - }, -/turf/open/floor/plasteel/shuttle/red, +/obj/structure/table, +/obj/item/stack/cable_coil, +/obj/item/weapon/crowbar/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "EO" = ( /obj/machinery/atmospherics/components/unary/vent_pump{ @@ -13565,8 +13819,8 @@ }, /area/engine/gravity_generator) "EU" = ( -/obj/machinery/recharge_station, -/turf/open/floor/plasteel/shuttle/red, +/obj/structure/bed/roller, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "EV" = ( /turf/open/floor/plasteel/black{ @@ -13575,12 +13829,13 @@ }, /area/tcommsat/computer) "EW" = ( -/obj/machinery/telecomms/server/presets/common/ministation, -/turf/open/floor/plasteel/black{ - name = "Mainframe Floor"; - initial_gas_mix = "n2=100;TEMP=80" +/obj/structure/table, +/obj/item/weapon/storage/box/zipties{ + pixel_x = 1; + pixel_y = 2 }, -/area/tcommsat/computer) +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) "EX" = ( /obj/machinery/message_server, /turf/open/floor/plasteel/black{ @@ -13648,9 +13903,7 @@ /turf/open/floor/plasteel/black, /area/engine/gravity_generator) "Fh" = ( -/obj/structure/transit_tube{ - icon_state = "N-S" - }, +/obj/structure/transit_tube, /turf/open/floor/plating/warnplate{ dir = 4 }, @@ -13662,8 +13915,10 @@ /turf/open/floor/plating, /area/tcommsat/computer) "Fj" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/plasteel/shuttle/red, +/obj/machinery/porta_turret/syndicate{ + dir = 4 + }, +/turf/closed/wall/mineral/plastitanium, /area/shuttle/syndicate) "Fk" = ( /turf/open/floor/bluegrid{ @@ -13672,15 +13927,12 @@ }, /area/tcommsat/computer) "Fl" = ( -/obj/structure/table, -/obj/item/stack/medical/ointment, -/obj/item/stack/medical/bruise_pack, -/turf/open/floor/plasteel/shuttle/red, +/obj/machinery/suit_storage_unit/syndicate, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "Fm" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/turf/open/floor/plasteel/shuttle/red, +/obj/structure/closet/syndicate/nuclear, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "Fn" = ( /obj/machinery/door/airlock/glass_command{ @@ -13691,13 +13943,10 @@ /turf/open/floor/plasteel, /area/tcommsat/computer) "Fo" = ( -/obj/structure/table, -/obj/item/weapon/stock_parts/cell/high{ - pixel_x = -3; - pixel_y = 3 +/obj/structure/chair/stool{ + pixel_y = 8 }, -/obj/item/weapon/stock_parts/cell/high, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "Fp" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -13738,15 +13987,44 @@ /turf/open/floor/plasteel/black, /area/engine/gravity_generator) "Fv" = ( -/obj/structure/table, -/obj/item/weapon/wrench, -/obj/item/device/assembly/infra, -/turf/open/floor/plasteel/shuttle/red, +/obj/machinery/door/poddoor{ + auto_close = 300; + id = "smindicate"; + name = "outer blast door" + }, +/obj/machinery/button/door{ + id = "smindicate"; + name = "external door control"; + pixel_x = -26; + pixel_y = 0; + req_access_txt = "150" + }, +/obj/docking_port/mobile{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 24; + id = "syndicate"; + name = "syndicate infiltrator"; + port_angle = 0; + roundstart_move = "syndicate_away"; + width = 18 + }, +/obj/docking_port/stationary{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 24; + id = "syndicate_nw"; + name = "northwest of station"; + turf_type = /turf/open/space; + width = 18 + }, +/turf/open/floor/plating, /area/shuttle/syndicate) "Fw" = ( -/obj/structure/transit_tube/station/reverse{ - icon_state = "closed"; - dir = 4 +/obj/structure/transit_tube/station/reverse/flipped{ + dir = 8 }, /turf/open/floor/plating/warnplate{ dir = 4 @@ -13839,20 +14117,16 @@ /turf/open/floor/plasteel/black, /area/engine/gravity_generator) "FJ" = ( -/obj/structure/table, -/obj/item/weapon/screwdriver{ - pixel_y = 9 +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0 }, -/obj/item/device/assembly/voice{ - pixel_y = 3 - }, -/turf/open/floor/plasteel/shuttle/red, +/turf/closed/wall/mineral/plastitanium, /area/shuttle/syndicate) "FK" = ( -/obj/structure/transit_tube{ - icon_state = "Block"; - dir = 1 - }, /turf/open/floor/plating/warnplate{ dir = 4 }, @@ -13896,7 +14170,7 @@ /turf/open/floor/plasteel, /area/tcommsat/computer) "FQ" = ( -/obj/machinery/hologram/holopad, +/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/landmark/start{ name = "Cyborg" @@ -13940,25 +14214,16 @@ /area/engine/gravity_generator) "FV" = ( /obj/structure/table, -/obj/item/weapon/weldingtool/largetank{ - pixel_y = 3 - }, -/obj/item/device/multitool, -/turf/open/floor/plasteel/shuttle/red, +/obj/item/weapon/storage/toolbox/syndicate, +/obj/item/weapon/crowbar/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "FW" = ( -/obj/structure/table, -/obj/item/device/assembly/signaler, -/obj/item/device/assembly/signaler, -/obj/item/device/assembly/prox_sensor{ - pixel_x = -8; - pixel_y = 4 +/obj/machinery/door/window{ + name = "Ready Room"; + req_access_txt = "150" }, -/obj/item/device/assembly/prox_sensor{ - pixel_x = -8; - pixel_y = 4 - }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "FX" = ( /obj/machinery/door/airlock/glass_command{ @@ -13973,20 +14238,22 @@ name = "Infirmary"; req_access_txt = "150" }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "FZ" = ( /obj/machinery/door/window/westright{ name = "Tool Storage"; req_access_txt = "150" }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "Ga" = ( -/obj/structure/table, -/obj/item/weapon/storage/toolbox/syndicate, -/obj/item/weapon/crowbar/red, -/turf/open/floor/plasteel/shuttle/red, +/obj/machinery/door/window{ + dir = 4; + name = "EVA Storage"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "Gb" = ( /obj/machinery/telecomms/hub/preset, @@ -14145,10 +14412,13 @@ }, /area/tcommsat/computer) "Gu" = ( -/obj/machinery/sleeper/syndie{ - dir = 4 +/obj/structure/window/reinforced{ + dir = 1 }, -/turf/open/floor/plasteel/shuttle/red, +/obj/structure/table, +/obj/item/bodypart/r_arm/robot, +/obj/item/bodypart/l_arm/robot, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "Gv" = ( /obj/machinery/door/window{ @@ -14158,7 +14428,7 @@ name = "Infirmary"; req_access_txt = "150" }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "Gw" = ( /obj/machinery/door/airlock/engineering{ @@ -14216,7 +14486,7 @@ name = "Tool Storage"; req_access_txt = "150" }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "GB" = ( /turf/open/floor/plasteel, @@ -14326,14 +14596,16 @@ /area/engine/gravity_generator) "GM" = ( /obj/structure/table, -/obj/item/weapon/reagent_containers/syringe/charcoal, -/obj/item/weapon/reagent_containers/syringe/charcoal{ - pixel_y = 2 +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = 3 }, -/obj/item/weapon/reagent_containers/syringe/charcoal{ - pixel_y = 4 +/obj/item/weapon/storage/firstaid/fire, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = -3; + pixel_y = -3 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "GN" = ( /obj/structure/closet/radiation, @@ -14343,26 +14615,33 @@ /area/tcommsat/computer) "GO" = ( /obj/structure/table, -/obj/item/weapon/gun/syringe{ - pixel_x = 1; - pixel_y = 2 +/obj/structure/window/reinforced{ + dir = 8 }, -/turf/open/floor/plasteel/shuttle/red, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/firstaid/brute, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = -3; + pixel_y = -3 + }, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "GP" = ( -/obj/machinery/telecomms/processor/preset_one, +/obj/machinery/telecomms/processor/preset_one/birdstation, /turf/open/floor/plasteel/black{ name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80" }, /area/tcommsat/computer) "GQ" = ( -/obj/machinery/telecomms/broadcaster/preset_left/ministation, -/turf/open/floor/plasteel/black{ - name = "Mainframe Floor"; - initial_gas_mix = "n2=100;TEMP=80" +/obj/machinery/door/airlock/external{ + req_access_txt = "150" }, -/area/tcommsat/computer) +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) "GR" = ( /obj/docking_port/stationary{ dheight = 9; @@ -14377,21 +14656,23 @@ /turf/open/space, /area/space) "GS" = ( -/obj/structure/window/reinforced{ - dir = 1 +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plasteel/shuttle/red, /area/shuttle/syndicate) "GT" = ( -/obj/machinery/door/window{ - dir = 1; - name = "Secure Storage"; - req_access_txt = "150" +/obj/item/device/radio/intercom{ + desc = "Talk through this. Evilly"; + freerange = 1; + frequency = 1213; + name = "Syndicate Intercom"; + pixel_x = -32; + subspace_transmission = 1; + syndie = 1 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "GU" = ( /obj/structure/table, @@ -14399,7 +14680,7 @@ pixel_y = 5 }, /obj/item/device/sbeacondrop/bomb, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "GV" = ( /obj/structure/table, @@ -14410,7 +14691,7 @@ /obj/item/weapon/grenade/syndieminibomb{ pixel_x = -1 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "GW" = ( /obj/structure/sink{ @@ -14422,34 +14703,34 @@ /obj/structure/mirror{ pixel_x = 30 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "GX" = ( -/obj/machinery/telecomms/allinone{ - intercept = 1 +/obj/machinery/sleeper/syndie{ + dir = 4 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "GY" = ( /obj/machinery/nuclearbomb/syndicate, -/turf/open/floor/plasteel/shuttle/red, +/obj/machinery/door/window{ + dir = 1; + name = "Secure Storage"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "GZ" = ( /obj/structure/table, -/obj/item/weapon/circular_saw, /obj/item/weapon/cautery, -/obj/item/weapon/surgicaldrill, -/obj/item/robot_parts/l_arm, -/obj/item/robot_parts/r_arm, -/turf/open/floor/plasteel/shuttle/red, +/obj/item/weapon/scalpel, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "Ha" = ( /obj/structure/table, -/obj/item/weapon/scalpel, /obj/item/weapon/retractor, /obj/item/weapon/hemostat, -/obj/item/weapon/surgical_drapes, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "Hb" = ( /obj/structure/table/optable, @@ -14465,20 +14746,27 @@ /turf/open/floor/plating, /area/shuttle/syndicate) "Hd" = ( -/obj/structure/frame/computer, -/obj/item/weapon/paper{ - info = "

Teleporter Instruction


  1. Install circuit board, glass and wiring to complete Teleporter Control Console
  2. Use a screwdriver, wirecutter and screwdriver again on the Teleporter Station to connect it
  3. Set destination with Teleporter Control Computer
  4. Activate Teleporter Hub with Teleporter Station
"; - name = "Teleporter Instructions" - }, -/turf/open/floor/plasteel/shuttle/red, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "He" = ( -/obj/machinery/teleport/hub/syndicate, -/turf/open/floor/plasteel/shuttle/red, +/obj/structure/rack, +/obj/item/clothing/suit/space/syndicate/black/red, +/obj/item/clothing/head/helmet/space/syndicate/black/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "Hf" = ( -/obj/machinery/teleport/station, -/turf/open/floor/plasteel/shuttle/red, +/obj/structure/table, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "Hg" = ( /obj/structure/shuttle/engine/propulsion{ @@ -14504,12 +14792,9 @@ /turf/open/floor/plating/airless, /area/shuttle/supply) "Hk" = ( +/obj/structure/transit_tube/horizontal, /turf/open/space, -/turf/closed/wall/shuttle{ - icon_state = "swall_f6"; - dir = 2 - }, -/area/shuttle/supply) +/area/space) "Hl" = ( /obj/structure/shuttle/engine/heater{ icon_state = "heater"; @@ -14519,36 +14804,27 @@ /turf/open/floor/plating/airless, /area/shuttle/supply) "Hm" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall13"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/supply) "Hn" = ( -/turf/open/space, -/turf/closed/wall/shuttle{ - icon_state = "swall_f10"; - dir = 2 - }, -/area/shuttle/supply) +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) "Ho" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall3"; - dir = 2 - }, -/area/shuttle/supply) +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) "Hp" = ( -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/supply) "Hq" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Supply Shuttle Airlock"; req_access_txt = "31" }, /turf/open/floor/plating, /area/shuttle/supply) "Hr" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Supply Shuttle Airlock"; req_access_txt = "31" }, @@ -14574,19 +14850,16 @@ /turf/open/floor/plating/airless, /area/shuttle/escape) "Ht" = ( -/turf/open/space, -/turf/closed/wall/shuttle{ - icon_state = "swall_f6"; - dir = 2 +/obj/machinery/telecomms/broadcaster/preset_left/birdstation, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" }, -/area/shuttle/escape) +/area/tcommsat/computer) "Hu" = ( -/turf/open/space, -/turf/closed/wall/shuttle{ - icon_state = "swall_f10"; - dir = 2 - }, -/area/shuttle/escape) +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) "Hv" = ( /obj/structure/shuttle/engine/heater{ icon_state = "heater"; @@ -14596,19 +14869,20 @@ /turf/open/floor/plating/airless, /area/shuttle/escape) "Hw" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall13"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/escape) "Hx" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall3"; - dir = 2 +/obj/structure/table, +/obj/item/stack/medical/ointment, +/obj/item/stack/medical/bruise_pack, +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 }, -/area/shuttle/escape) +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) "Hy" = ( -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "Hz" = ( /obj/item/weapon/storage/firstaid/regular{ @@ -14619,113 +14893,118 @@ pixel_x = -2; pixel_y = 4 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "HA" = ( /obj/machinery/sleeper{ dir = 8; icon_state = "sleeper-open" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "HB" = ( -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) "HC" = ( /obj/structure/chair{ dir = 4 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) "HD" = ( /obj/structure/chair{ dir = 8 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) "HE" = ( -/turf/open/space, -/turf/closed/wall/shuttle{ - icon_state = "swall_f5"; - dir = 2 +/obj/structure/table, +/obj/item/weapon/stock_parts/cell/high{ + pixel_x = -3; + pixel_y = 3 }, -/area/shuttle/supply) +/obj/item/weapon/stock_parts/cell/high, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) "HF" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall12"; - dir = 2 +/obj/structure/table, +/obj/item/weapon/screwdriver{ + pixel_y = 9 }, -/area/shuttle/supply) +/obj/item/device/assembly/voice{ + pixel_y = 3 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) "HG" = ( -/turf/open/space, -/turf/closed/wall/shuttle{ - icon_state = "swall_f9"; - dir = 2 - }, -/area/shuttle/supply) +/obj/structure/table, +/obj/item/weapon/wrench, +/obj/item/device/assembly/infra, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) "HH" = ( /obj/machinery/vending/wallmed{ name = "Emergency NanoMed"; pixel_x = 28; req_access_txt = "0" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "HI" = ( /obj/machinery/door/airlock/glass_security{ name = "Escape Shuttle Cell"; req_access_txt = "2" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "HJ" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/shuttle/escape) +/obj/machinery/telecomms/bus/preset_one/birdstation, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/computer) "HK" = ( /obj/machinery/door/airlock/glass_medical{ id_tag = null; name = "Escape Shuttle Infirmary"; req_access_txt = "0" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "HL" = ( -/turf/closed/wall/shuttle{ - icon_state = "swallc4"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/shuttle/escape) "HM" = ( -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "HN" = ( /obj/structure/closet/emcloset, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "HO" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Emergency Shuttle Airlock" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "HP" = ( /obj/structure/chair{ dir = 4 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "HQ" = ( /obj/structure/chair{ dir = 1 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "HR" = ( /obj/structure/chair{ dir = 8 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "HS" = ( /obj/structure/grille, @@ -14737,10 +15016,7 @@ name = "Emergency NanoMed"; req_access_txt = "0" }, -/turf/closed/wall/shuttle{ - icon_state = "swall3"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/escape) "HU" = ( /obj/structure/chair{ @@ -14749,10 +15025,10 @@ /obj/item/device/radio/intercom{ pixel_x = 25 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "HV" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Emergency Shuttle Airlock" }, /obj/docking_port/mobile/emergency{ @@ -14760,6 +15036,7 @@ dwidth = 8; height = 9; name = "Mini emergency shuttle"; + timid = 0; width = 21 }, /obj/docking_port/stationary{ @@ -14770,11 +15047,11 @@ name = "emergency evac bay"; width = 21 }, -/turf/open/floor/plating, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "HW" = ( /obj/structure/chair, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "HX" = ( /obj/structure/table, @@ -14785,101 +15062,103 @@ }, /obj/item/weapon/crowbar, /obj/item/weapon/extinguisher, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "HY" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall7"; - dir = 2 +/obj/structure/table, +/obj/item/device/assembly/signaler, +/obj/item/device/assembly/signaler, +/obj/item/device/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 }, -/area/shuttle/escape) +/obj/item/device/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) "HZ" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall12"; - dir = 2 +/obj/structure/table, +/obj/item/weapon/weldingtool/largetank{ + pixel_y = 3 }, -/area/shuttle/escape) +/obj/item/device/multitool, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) "Ia" = ( /obj/machinery/door/airlock/glass_command{ name = "Escape Shuttle Cockpit"; req_access_txt = "19" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "Ib" = ( /obj/machinery/status_display, -/turf/closed/wall/shuttle{ - icon_state = "swall12"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/escape) "Ic" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall11"; - dir = 2 - }, -/area/shuttle/escape) +/obj/structure/sign/bluecross_2, +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/syndicate) "Id" = ( /obj/structure/chair{ dir = 8 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "Ie" = ( /obj/machinery/computer/atmos_alert, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "If" = ( /obj/structure/chair{ dir = 4 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "Ig" = ( /obj/item/device/radio/intercom{ name = "Station Intercom (General)"; pixel_y = 24 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "Ih" = ( /obj/machinery/computer/security, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "Ii" = ( /obj/machinery/computer/crew, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "Ij" = ( /obj/machinery/computer/communications, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "Ik" = ( -/turf/open/space, -/turf/closed/wall/shuttle{ - icon_state = "swall_f5"; - dir = 2 - }, -/area/shuttle/escape) +/obj/machinery/recharge_station, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) "Il" = ( /obj/structure/table, /obj/item/weapon/storage/firstaid/fire, /obj/item/weapon/extinguisher, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "Im" = ( -/turf/closed/wall/shuttle{ - icon_state = "swallc1"; - dir = 2 +/obj/machinery/porta_turret/syndicate{ + dir = 5 }, -/area/shuttle/escape) +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/syndicate) "In" = ( /obj/machinery/computer/emergency_shuttle, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "Io" = ( /obj/structure/chair, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "Ip" = ( /obj/structure/table, @@ -14888,36 +15167,31 @@ pixel_y = 3 }, /obj/item/weapon/crowbar, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "Iq" = ( -/turf/open/space, -/turf/closed/wall/shuttle{ - icon_state = "swall_f9"; - dir = 2 +/obj/machinery/door/window{ + dir = 1; + name = "Surgery"; + req_access_txt = "150" }, -/area/shuttle/escape) +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) "Ir" = ( -/turf/closed/wall/shuttle{ - icon_state = "swallc2"; - dir = 2 +/obj/structure/window/reinforced{ + dir = 1 }, -/area/shuttle/escape) +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) "Is" = ( /obj/structure/shuttle/engine/propulsion{ icon_state = "propulsion"; dir = 4 }, -/turf/closed/wall/shuttle{ - icon_state = "swall_s6"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium/overspace, /area/shuttle/transport) "It" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall12"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/transport) "Iu" = ( /obj/structure/window/shuttle, @@ -14930,40 +15204,39 @@ /turf/open/floor/plating, /area/shuttle/transport) "Iw" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s10"; - dir = 2 +/obj/machinery/telecomms/receiver/preset_left/birdstation, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" }, -/area/shuttle/transport) +/area/tcommsat/computer) "Ix" = ( -/turf/open/floor/plasteel/shuttle, -/turf/closed/wall/shuttle/interior{ - icon_state = "swall_f9" - }, +/turf/open/floor/mineral/titanium/blue, +/turf/closed/wall/mineral/titanium/interior, /area/shuttle/transport) "Iy" = ( /obj/machinery/computer/shuttle/ferry/request, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "Iz" = ( /obj/structure/chair{ dir = 4 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "IA" = ( /obj/structure/chair, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "IB" = ( -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "IC" = ( -/obj/machinery/door/airlock/shuttle, -/turf/open/floor/plasteel/shuttle, +/obj/machinery/door/airlock/titanium, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "ID" = ( -/obj/machinery/door/airlock/shuttle, +/obj/machinery/door/airlock/titanium, /obj/docking_port/mobile{ dir = 8; dwidth = 2; @@ -14971,7 +15244,7 @@ id = "ferry"; name = "ferry shuttle"; roundstart_move = "ferry_away"; - travelDir = 180; + port_angle = 180; width = 5 }, /obj/docking_port/stationary{ @@ -14983,40 +15256,39 @@ turf_type = /turf/open/space; width = 5 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "IE" = ( -/turf/open/floor/plasteel/shuttle, -/turf/closed/wall/shuttle/interior{ - icon_state = "swall_f10" - }, -/area/shuttle/transport) +/obj/structure/table, +/obj/item/weapon/surgicaldrill, +/obj/item/weapon/circular_saw, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) "IF" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion"; - dir = 4 +/obj/machinery/telecomms/allinone{ + intercept = 1 }, -/turf/closed/wall/shuttle{ - icon_state = "swall_s5"; - dir = 2 - }, -/area/shuttle/transport) +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) "IG" = ( /obj/structure/closet/crate, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "IH" = ( /obj/structure/chair{ dir = 1 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "II" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s9"; - dir = 2 +/turf/open/space, +/obj/machinery/porta_turret/syndicate{ + dir = 10 }, -/area/shuttle/transport) +/turf/closed/wall/mineral/plastitanium{ + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) "IJ" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber{ dir = 1; @@ -15041,66 +15313,9 @@ /obj/item/clothing/under/burial, /obj/item/clothing/under/burial, /turf/open/floor/plating, -/area/hallway/primary/central) -"IR" = ( -/obj/machinery/atmospherics/pipe/manifold{ - color = "#0000ff"; - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"IQ" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"IP" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/central) -"IO" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/central) -"IN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" - }, -/turf/open/floor/plating, -/area/hallway/primary/central) +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) "IM" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -15119,6 +15334,479 @@ dir = 2 }, /area/quartermaster/storage) +"IN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"IO" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"IP" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"IQ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"IR" = ( +/obj/machinery/atmospherics/pipe/manifold{ + color = "#0000ff"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"IS" = ( +/turf/closed/mineral/random{ + mineralSpawnChanceList = list(/turf/closed/mineral/uranium = 5, /turf/closed/mineral/diamond = 1, /turf/closed/mineral/gold = 10, /turf/closed/mineral/silver = 12, /turf/closed/mineral/plasma = 20, /turf/closed/mineral/iron = 40, /turf/closed/mineral/titanium = 11, /turf/closed/mineral/gibtonite = 4, /turf/closed/mineral/bscrystal = 1) + }, +/area/mine/unexplored) +"IT" = ( +/turf/closed/wall, +/area/maintenance/fore) +"IU" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/mining) +"IV" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/mining) +"IW" = ( +/obj/structure/table, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/mining) +"IX" = ( +/obj/machinery/computer/shuttle/mining, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/mining) +"IY" = ( +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 1; + name = "_North APC"; + pixel_y = 24 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"IZ" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"Ja" = ( +/turf/open/floor/plasteel/shuttle, +/area/shuttle/mining) +"Jb" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/mining) +"Jc" = ( +/obj/machinery/mineral/equipment_vendor, +/turf/open/floor/plasteel/brown{ + dir = 9 + }, +/area/quartermaster/storage) +"Jd" = ( +/obj/structure/closet/secure_closet/miner, +/turf/open/floor/plasteel/brown{ + dir = 1 + }, +/area/quartermaster/storage) +"Je" = ( +/obj/machinery/computer/shuttle/mining{ + req_access = "0"; + req_one_access = "0" + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"Jf" = ( +/obj/machinery/door/airlock/titanium{ + name = "Mining Shuttle Airlock"; + req_access_txt = "0" + }, +/obj/docking_port/mobile{ + dir = 8; + dwidth = 3; + height = 5; + id = "mining"; + name = "mining shuttle"; + port_angle = 270; + width = 7 + }, +/obj/docking_port/stationary{ + dir = 8; + dwidth = 3; + height = 5; + id = "mining_home"; + name = "mining shuttle bay"; + width = 7 + }, +/turf/open/floor/plating, +/area/shuttle/mining) +"Jg" = ( +/obj/machinery/door/airlock/external{ + name = "Mining Shuttle Airlock"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/quartermaster/storage) +"Jh" = ( +/obj/machinery/camera/autoname, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/quartermaster/storage) +"Ji" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/quartermaster/storage) +"Jj" = ( +/obj/machinery/door/airlock/external{ + name = "Mining Shuttle Airlock"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"Jk" = ( +/turf/open/floor/plasteel/brown{ + dir = 8 + }, +/area/quartermaster/storage) +"Jl" = ( +/obj/structure/closet/secure_closet/miner, +/turf/open/floor/plasteel/brown{ + dir = 10 + }, +/area/quartermaster/storage) +"Jm" = ( +/obj/structure/rack, +/obj/item/weapon/pickaxe, +/obj/item/weapon/pickaxe{ + pixel_x = 5 + }, +/obj/item/weapon/shovel{ + pixel_x = -5 + }, +/obj/item/weapon/shovel{ + pixel_x = -5 + }, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/quartermaster/storage) +"Jn" = ( +/obj/structure/closet/wardrobe/miner, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"Jo" = ( +/obj/structure/ore_box, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/mining) +"Jp" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/shuttle/mining) +"Jq" = ( +/obj/machinery/suit_storage_unit/mining/eva, +/turf/open/floor/plasteel/brown{ + dir = 4 + }, +/area/quartermaster/storage) +"Jr" = ( +/obj/structure/shuttle/engine/propulsion/burst, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/turf/open/floor/plating/airless, +/area/shuttle/mining) +"Js" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"Jt" = ( +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"Ju" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"Jv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"Jw" = ( +/turf/open/floor/plating, +/area/medical/research{ + name = "Research Division" + }) +"Jx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"Jy" = ( +/turf/closed/wall, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"Jz" = ( +/turf/closed/wall, +/area/maintenance/starboard) +"JA" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"JB" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"JC" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"JD" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"JE" = ( +/turf/open/floor/plating, +/area/maintenance/starboard) +"JF" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"JG" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/starboard) +"JH" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"JI" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"JJ" = ( +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"JK" = ( +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 8; + name = "_West APC"; + pixel_x = -25 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"JL" = ( +/obj/structure/cable, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 8; + name = "_West APC"; + pixel_x = -25 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"JM" = ( +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/maintenance/starboard) +"JN" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"JO" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"JP" = ( +/obj/machinery/light/small, +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"JQ" = ( +/obj/machinery/vending/tool, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"JR" = ( +/obj/machinery/vending/assist, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"JS" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Port Maintenance" + }) +"JT" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/tcommsat/computer) (1,1,1) = {" aa @@ -22662,16 +23350,16 @@ aa aa aa aa -aa -DJ -bm -bm -bm -bm -bm -bm -bm -DB +DI +eu +eu +eu +eu +Im +eu +eu +eu +En aa aa aa @@ -22913,19 +23601,19 @@ aa aa aa aa -aa -DJ -bm -bm -bm -bm -bm -bm +DI +eu +eu +eu +eu +eu +eu +GX EU -BT +GX +Hn Gu -Gu -BT +IE GZ Hc Hg @@ -23170,19 +23858,19 @@ aa aa aa aa -aa -bm -DM -DM -DM -DM -DM -bm -EU -BT -BT -BT -BT +eu +Fl +Fl +Fl +Fl +Fl +eu +Hn +Hn +Hn +Hn +Iq +Hn pK Hc Hi @@ -23427,18 +24115,18 @@ aa aa aa aa -aa -bm -BT -BT -BT -BT -BT -bm -Fj -BT -BT -BT +eu +uI +uI +uI +uI +uI +eu +Ho +Hn +Hn +Hn +Ir GW Ha Hc @@ -23677,28 +24365,28 @@ aa aa aa aa -aa +DI eu -bm -bm -bm +eu +eu +En DB aa -aa -bm -BT -DP -BT -BT -BT -bm -Fm -DP -BT +eu +uI +Fo +uI +uI +uI +eu +Hu +Hn +Hn +Hn GO -bm -bm -bm +eu +eu +eu DD aa aa @@ -23922,9 +24610,8 @@ aa aa aa aa -ad -ad -aa +af +af aa aa aa @@ -23935,25 +24622,26 @@ aa aa aa aa +eu bm xK Ds -Dy -bm +eu +DB aa -aa -bm +eu +Fm DN DO -DY -BT -BT -bm -Fl -BT -BT +uI +uI +eu +Hx +Hn +Hn +Hn GM -bm +eu aa aa aa @@ -24177,12 +24865,11 @@ aa aa aa aa -ad -ad -ad -ad -ad -aa +af +af +IS +IS +af aa aa aa @@ -24192,27 +24879,28 @@ aa aa aa aa +DK uI -BT -BT -BT -bm -bm -bm -bm -bm -bm -bm +uI +uI +eu +eu +eu +eu +eu +eu +eu +Ga Ed -EC -bm -bm +eu +eu +Ic FY Gv -bm -bm -bm -DB +eu +eu +eu +En aa aa aa @@ -24433,12 +25121,11 @@ aa aa aa aa -ad -ad -ad -ad -ad -aa +af +IS +IS +IS +af aa aa aa @@ -24449,25 +25136,26 @@ aa aa aa aa +DK +DP uI -BS -BT -BT -bm -DE -DH -DH -DH -DH -BT -BT -BT +uI +eu EN -BT -BT -BT -GS -GX +uI +uI +uI +uI +EK +uI +uI +GT +uI +uI +uI +uI +uI +EK Hc Hg aa @@ -24690,12 +25378,12 @@ aa aa aa aa -ad -ad -ad +af +IS +IS ag -ad -ad +IS +af aa aa aa @@ -24705,25 +25393,25 @@ aa aa aa aa -aa -uI +DK +DQ Cg -Dx -BT -DC -BT -BT -BT -BT -BT -BT -BT -BT -BT -BT -BT -BT -GT +uI +EC +uI +uI +uI +uI +uI +FW +uI +uI +uI +uI +uI +uI +uI +uI GY Hc Hi @@ -24940,20 +25628,19 @@ aa aa aa aa -ad -ad +af +af aa aa aa aa aa -ad -ad -ad -ad -ad -ad -aa +af +IS +IS +IS +IS +af aa aa aa @@ -24963,25 +25650,26 @@ aa aa aa aa +DK +DR uI -Cf BT -Dz -bm +eu +EW DF -DI -DI -DI -DI -BT -BT -BT -BT -BT -BT -BT -GS -BT +DF +DF +DF +EK +uI +uI +uI +uI +uI +uI +uI +uI +EK Hc Hh aa @@ -25197,18 +25885,18 @@ aa aa aa aa -ad -ad +IS +af aa aa aa aa aa aa -ad -ad -ad -ad +af +af +af +af aa aa aa @@ -25219,28 +25907,28 @@ aa aa aa aa -aa -uI -Cw -BT -BT -bm -bm -bm DK -bm -bm -bm -En +DV +uI +uI +eu +eu +eu +Fj +eu +eu +eu +GQ EK -bm -bm +eu +eu +eu FZ GA -bm -bm -bm -DD +eu +eu +eu +EM aa aa aa @@ -25465,38 +26153,38 @@ aa aa aa aa -ad +af aa aa aa aa aa -ad -ad -ad +af +af +af +aa +aa +eu +DV +uI +DY +eu +EM aa aa aa -bm -Cw -BT -DA -bm -aa -aa -aa -aa -bm -BT -BT -BT -bm -Fo -BT -BT +eu +uI +uI +uI +eu +HE +uI +uI +uI GU -bm -aa +IF +eu aa aa aa @@ -25728,37 +26416,37 @@ aa aa aa aa -ad -ad -ad +af +IS +af aa aa -aa -xJ -bm -bm -bm -DD -aa -aa -aa -aa -DR -BT -BT -BT -bm -FJ -DP -BT -GV -bm -bm -bm +DM +eu +eu +eu +EM DB aa aa aa +Fv +uI +uI +uI +eu +HF +uI +uI +uI +GV +eu +eu +eu +II +aa +aa +aa aa aa aa @@ -25972,8 +26660,8 @@ aa aa aa aa -ad -ad +af +IS aa aa aa @@ -25985,9 +26673,9 @@ aa aa aa aa -ad -ad -ad +af +IS +af aa aa aa @@ -25999,17 +26687,17 @@ aa aa aa aa -aa -DQ -BT -BT -EM -bm -Fv -BT -BT -BT -BT +FJ +uI +uI +uI +eu +HG +uI +uI +uI +uI +uI Hd Hc Hg @@ -26229,8 +26917,8 @@ aa aa aa aa -ad -ad +IS +af aa aa aa @@ -26241,10 +26929,10 @@ aa aa aa aa -ad -ad +af +IS ag -ad +af aa aa aa @@ -26256,17 +26944,17 @@ aa aa aa aa -aa -DV -bm -bm -bm -bm -FW -DP -BT -BT -BT +DM +eu +eu +eu +eu +HY +Fo +uI +uI +uI +uI Hf Hc Hi @@ -26481,8 +27169,8 @@ aa aa aa aa -ad -ad +af +af aa aa aa @@ -26498,10 +27186,10 @@ aa aa aa aa -ad -ad -ad -ad +af +IS +IS +af aa aa aa @@ -26516,14 +27204,14 @@ aa aa aa aa -aa -aa -bm +GS +eu +HZ FV -Ga -BT -BT -BT +uI +Ik +Ik +uI He Hc Hh @@ -26737,17 +27425,17 @@ aa aa aa aa -ad -ad -ad -ad +af +IS +IS +af aa aa aa aa aa aa -ad +af aa aa aa @@ -26755,9 +27443,9 @@ aa aa aa aa -ad -ad -ad +af +af +af aa aa aa @@ -26774,16 +27462,16 @@ aa aa aa aa -aa -DV -bm -bm -bm -bm -bm -bm -bm -DD +DM +eu +eu +eu +eu +Fj +eu +eu +eu +EM aa aa aa @@ -26994,17 +27682,17 @@ aa aa aa aa -ad -ad -ad +af +IS +af aa aa aa aa aa aa -ad -ad +af +af aa aa aa @@ -27018,8 +27706,8 @@ aa aa aa aa -ad -ad +af +af aa aa aa @@ -27252,18 +27940,18 @@ aa aa aa aa -ad -ad +af +af aa aa aa aa aa aa -ad -ad -ad -ad +af +IS +af +af aa aa aa @@ -27275,8 +27963,8 @@ aa aa aa aa -ad -ad +af +af aa aa aa @@ -27512,29 +28200,29 @@ aa aa aa aa -ad -ad -ad +af +af +af aa -ad -ad -ad -ad -ad +af +IS +IS +IS +af aa aa aa aa -ad -ad +af +af aa aa aa aa -ad -ad -ad -ad +af +IS +IS +af aa aa aa @@ -27769,29 +28457,29 @@ aa aa aa aa -ad +af ag -ad +af aa -ad -ad +af +IS ag -ad -ad +IS +af aa aa -ad -ad -ad -ad -ad +af +af +IS +IS +af aa aa -ad -ad +af +IS ag -ad -ad +IS +af aa aa aa @@ -28026,36 +28714,36 @@ aa aa aa aa -ad -ad -ad +af +af +af aa -ad -ad -ad -ad -ad +af +IS +IS +IS +af aa -ad -ad -ad -ad -ad -ad +af +IS +IS +IS +IS +af aa aa aa -ad -ad -ad -ad +af +IS +IS +af aa aa aa aa -ad -ad -ad +af +af +af aa aa aa @@ -28287,33 +28975,33 @@ aa aa aa aa -ad -ad -ad -ad +af +IS +IS +af aa aa -ad -ad -ad +af +IS +IS ag -ad -ad +IS +af aa aa aa -ad -ad -ad -ad +af +IS +IS +af aa aa -ad -ad -ad -ad -ad -ad +af +af +IS +IS +IS +af aa aa aa @@ -28545,32 +29233,32 @@ aa aa aa aa -ad -ad -ad +af +af +af aa aa aa -ad -ad -ad -ad +af +IS +IS +af aa aa aa aa -ad -ad -ad +af +IS +af aa aa aa -ad -ad -ad +af +IS +IS ag -ad -ad +IS +af aa aa aa @@ -28802,32 +29490,32 @@ aa aa aa aa -ad +af aa aa aa aa aa -ad -ad -ad -ad +af +IS +IS +af aa aa aa aa aa -ad -ad +af +af aa aa aa -ad -ad -ad -ad -ad -ad +af +IS +IS +IS +IS +af aa aa aa @@ -29066,9 +29754,9 @@ aa aa aa aa -ad -ad -ad +af +af +af aa aa aa @@ -29080,11 +29768,11 @@ aa aa aa aa -ad -ad -ad -ad -ad +af +IS +IS +af +af aa aa aa @@ -29318,7 +30006,7 @@ aa aa aa aa -ad +af aa aa aa @@ -29338,8 +30026,8 @@ aa aa aa aa -ad -ad +af +af aa aa aa @@ -29573,12 +30261,12 @@ aa aa aa aa -ad -ad -ad -ad -ad -ad +af +af +IS +af +af +af aa aa aa @@ -29830,12 +30518,12 @@ aa aa aa aa -ad -ad +af +IS ag -ad -ad -ad +IS +IS +af aa aa aa @@ -29845,9 +30533,9 @@ aa aa aa aa -ad -ad -ad +af +af +af aa aa aa @@ -30087,24 +30775,24 @@ aa aa aa aa -ad -ad -ad -ad -ad -ad +af +IS +IS +IS +af +af aa aa aa aa aa aa -ad -ad -ad -ad -ad -ad +af +af +af +IS +IS +af aa aa aa @@ -30121,9 +30809,9 @@ aa aa aa aa -ad -ad -ad +af +af +af aa aa aa @@ -30344,10 +31032,10 @@ aa aa aa aa -ad -ad -ad -ad +af +IS +IS +af aa aa aa @@ -30355,14 +31043,14 @@ aa aa aa aa -ad -ad -ad -ad -ad +af +IS +IS +IS +IS ag -ad -ad +IS +af aa aa aa @@ -30378,9 +31066,9 @@ aa aa aa aa -ad +af ag -ad +af aa aa aa @@ -30602,9 +31290,9 @@ aa aa aa aa -ad -ad -ad +af +af +af aa aa aa @@ -30612,32 +31300,32 @@ aa aa aa aa -ad -ad -ad -ad -ad -ad -ad -ad -ad +af +IS +IS +IS +IS +IS +IS +IS +af aa aa aa aa aa -ad -ad -ad +af +af +af aa aa aa aa aa aa -ad -ad -ad +af +IS +af aa aa aa @@ -30869,32 +31557,32 @@ aa aa aa aa -ad -ad -ad -ad -ad -ad -ad -ad -ad +af +IS +IS +IS +IS +IS +IS +IS +af aa aa aa -ad +af aa -ad +af ag -ad -ad +IS +af aa aa aa aa aa -ad -ad -ad +af +af +af aa aa aa @@ -31126,24 +31814,24 @@ aa aa aa aa -ad -ad -ad -ad -ad -ad -ad -ad -ad +af +IS +IS +IS +IS +IS +IS +IS +af aa aa aa -ad -ad -ad -ad -ad -ad +af +af +IS +IS +IS +af aa aa aa @@ -31384,22 +32072,22 @@ aa aa aa aa -ad -ad +af +IS ag -ad -ad -ad -ad +IS +IS +IS +af aa aa aa aa -ad -ad -ad -ad -ad +af +IS +IS +IS +af aa aa aa @@ -31641,22 +32329,22 @@ aa aa aa aa -ad -ad -ad -ad -ad -ad -ad +af +af +af +IS +IS +IS +af aa aa aa -ad -ad +af +IS ag -ad -ad -ad +IS +IS +af aa aa aa @@ -31885,8 +32573,8 @@ aa aa aa aa -ad -ad +af +af aa aa aa @@ -31901,19 +32589,19 @@ aa aa aa aa -ad -ad -ad +af +af +af aa aa aa aa -ad -ad -ad -ad -ad -ad +af +IS +IS +IS +IS +af aa aa aa @@ -31929,7 +32617,7 @@ aa aa aa aa -ad +af aa aa aa @@ -31942,9 +32630,9 @@ aa aa aa aa -ad -ad -ad +af +af +af aa aa aa @@ -32141,16 +32829,16 @@ aa aa aa aa -ad -ad -ad -ad +af +IS +IS +af aa aa -ad -ad -ad -ad +af +af +af +af aa aa aa @@ -32166,16 +32854,16 @@ aa aa aa aa -ad -ad -ad -ad +af +af +IS +af aa aa aa aa -ad -ad +af +af aa aa aa @@ -32199,9 +32887,9 @@ aa aa aa aa -ad -ad -ad +af +IS +af aa aa aa @@ -32398,16 +33086,16 @@ aa aa aa aa -ad +af ag -ad -ad +IS +af aa aa -ad -ad -ad -ad +af +IS +IS +af aa aa aa @@ -32425,14 +33113,14 @@ aa aa aa aa -ad +af aa aa aa aa -ad -ad -ad +af +IS +af aa aa aa @@ -32456,9 +33144,9 @@ aa aa aa aa -ad -ad -ad +af +af +af aa aa aa @@ -32655,17 +33343,17 @@ aa aa aa aa -ad -ad -ad -ad +af +IS +IS +af aa aa -ad -ad +af +IS ag -ad -ad +IS +af aa aa aa @@ -32674,9 +33362,9 @@ aa aa aa aa -ad -ad -ad +af +af +af aa aa aa @@ -32685,12 +33373,12 @@ aa aa aa aa -ad -ad -ad +af +af +IS ag -ad -ad +IS +af aa aa aa @@ -32909,19 +33597,19 @@ aa aa aa aa -ad -ad +af +af aa -ad -ad -ad -ad +af +IS +IS +af aa aa -ad -ad -ad -ad +af +af +af +af aa aa aa @@ -32930,10 +33618,10 @@ ac aa aa aa -ad -ad -ad -ad +af +IS +IS +af aa aa aa @@ -32942,12 +33630,12 @@ aa aa aa aa -ad -ad -ad -ad -ad -ad +af +IS +IS +IS +IS +af aa aa aa @@ -33164,14 +33852,14 @@ aa aa aa aa -ad -ad -ad -ad -ad -ad -ad -ad +af +af +IS +IS +af +IS +IS +af aa aa aa @@ -33188,9 +33876,9 @@ aa aa aa aa -ad +af ag -ad +af aa aa aa @@ -33199,12 +33887,12 @@ aa aa aa aa -ad +af ag -ad -ad -ad -ad +IS +af +af +af aa aa ac @@ -33421,14 +34109,14 @@ aa aa aa aa -ad -ad -ad -ad -ad -ad -ad -ad +af +IS +IS +IS +IS +IS +IS +af aa aa aa @@ -33439,15 +34127,15 @@ aa aa aa aa -ad +af aa aa aa aa aa -ad -ad -ad +af +IS +af aa aa aa @@ -33456,9 +34144,9 @@ aa aa aa aa -ad -ad -ad +af +af +af aa aa aa @@ -33677,14 +34365,14 @@ aa aa aa aa -ad -ad -ad -ad -ad -ad -ad -ad +af +IS +IS +IS +IS +IS +IS +af aa aa aa @@ -33695,15 +34383,15 @@ aa aa aa aa -ad -ad -ad +af +IS +af aa aa aa aa aa -ad +af aa aa aa @@ -33934,14 +34622,14 @@ aa aa aa aa -ad -ad -ad +af +IS +IS ag -ad -ad -ad -ad +IS +IS +IS +af aa aa aa @@ -33951,11 +34639,11 @@ aa aa aa aa -ad -ad +af +IS ag -ad -ad +IS +af aa aa aa @@ -33964,8 +34652,8 @@ aa aa aa aa -ad -ad +af +af aa aa aa @@ -33984,9 +34672,9 @@ aa aa aa aa -ad -ad -ad +af +af +af aa aa aa @@ -34191,14 +34879,14 @@ aa aa aa aa -ad -ad -ad -ad -ad -ad -ad -ad +af +IS +IS +IS +IS +IS +af +af aa aa aa @@ -34208,11 +34896,11 @@ aa aa aa aa -ad -ad -ad -ad -ad +af +IS +IS +IS +af aa aa aa @@ -34220,30 +34908,30 @@ aa aa aa aa -ad -ad -ad +af +IS +af aa aa aa aa -ad -ad -ad -ad -ad -ad -ad +af +af +af +af +af +af +af aa aa aa aa -ad -ad -ad -ad -ad -ad +af +af +af +IS +IS +af aa aa aa @@ -34449,11 +35137,11 @@ aa aa aa aa -ad -ad -ad -ad -ad +af +af +IS +IS +af aa aa aa @@ -34465,43 +35153,43 @@ aa aa aa aa -ad -ad -ad -ad -ad +af +IS +IS +IS +af aa aa aa aa aa aa -ad -ad +af +IS ag -ad -ad +IS +af aa aa aa -ad -ad -ad -ad -ad -ad -ad +af +IS +IS +IS +IS +af +af aa aa aa aa -ad -ad -ad -ad -ad -ad -ad +af +IS +IS +IS +IS +IS +af aa aa aa @@ -34708,8 +35396,8 @@ aa aa aa aa -ad -ad +af +af aa aa aa @@ -34723,9 +35411,9 @@ aa aa aa aa -ad -ad -ad +af +af +af aa aa aa @@ -34733,32 +35421,32 @@ aa aa aa aa -ad -ad -ad -ad +af +IS +IS +af aa aa aa aa -ad -ad +af +IS ag -ad -ad +IS +af aa aa aa aa aa -ad -ad -ad -ad -ad -ad -ad -ad +af +IS +IS +IS +IS +IS +IS +af aa aa aa @@ -34984,39 +35672,39 @@ aa aa aa aa -ad -ad +af +af aa aa aa aa -ad -ad -ad -ad -ad +af +IS +IS +IS +af aa aa aa -ad -ad -ad -ad -ad +af +IS +af +af +af aa aa aa aa aa -ad -ad -ad -ad +af +IS +IS +IS ag -ad -ad -ad -ad +IS +IS +IS +af aa aa aa @@ -35241,22 +35929,22 @@ aa aa aa aa -ad -ad +af +af aa aa aa aa -ad -ad -ad -ad -ad +af +af +IS +IS +af aa aa aa -ad -ad +af +af aa aa aa @@ -35265,15 +35953,15 @@ aa aa aa aa -ad -ad -ad -ad -ad -ad -ad -ad -ad +af +af +IS +IS +IS +IS +IS +IS +af aa aa aa @@ -35482,12 +36170,12 @@ aa aa aa aa -ad -ad -ad -ad -ad -ad +af +af +af +af +af +af aa aa aa @@ -35498,17 +36186,17 @@ aa aa aa aa -ad -ad -ad +af +IS +af aa aa aa aa aa -ad -ad -ad +af +af +af aa aa aa @@ -35524,13 +36212,13 @@ aa aa aa aa -ad -ad -ad -ad -ad -ad -ad +af +IS +IS +IS +IS +IS +af aa aa aa @@ -35740,11 +36428,11 @@ aa aa aa aa -ad -ad +af +IS ag -ad -ad +IS +af aa aa aa @@ -35755,9 +36443,9 @@ aa aa aa aa -ad -ad -ad +af +af +af aa aa aa @@ -35781,13 +36469,13 @@ aa aa aa aa -ad -ad -ad -ad -ad -ad -ad +af +IS +IS +IS +IS +IS +af aa aa aa @@ -35997,12 +36685,12 @@ aa aa aa aa -ad -ad -ad -ad -ad -ad +af +IS +IS +IS +IS +af aa aa aa @@ -36012,7 +36700,7 @@ aa aa aa aa -ad +af aa aa aa @@ -36028,9 +36716,9 @@ aa aa aa aa -ad -ad -ad +af +af +af aa aa aa @@ -36039,11 +36727,11 @@ aa aa aa aa -ad -ad -ad -ad -ad +af +af +af +af +af aa aa aa @@ -36254,12 +36942,12 @@ aa aa aa aa -ad -ad -ad -ad -ad -ad +af +IS +IS +IS +af +af aa aa aa @@ -36269,7 +36957,7 @@ aa aa aa aa -ad +af aa aa aa @@ -36285,10 +36973,10 @@ aa aa aa aa -ad -ad -ad -ad +af +IS +IS +af aa aa aa @@ -36497,8 +37185,26 @@ aa aa aa aa +IS +IS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa af af +af +aa +af aa aa aa @@ -36512,11 +37218,6 @@ aa aa aa aa -ad -ad -ad -aa -ad aa aa aa @@ -36529,24 +37230,11 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ad -ad -ad -ad -ad +af +IS +IS +IS +af aa aa aa @@ -36798,12 +37486,12 @@ aa aa aa aa -ad -ad -ad +af +IS +IS ag -ad -ad +IS +af aa aa aa @@ -36819,8 +37507,8 @@ aa aa aa aa -ad -ad +IS +af aa aa aa @@ -37045,8 +37733,8 @@ aa aa aa aa -ad -ad +af +af aa aa aa @@ -37055,12 +37743,12 @@ aa aa aa aa -ad -ad -ad -ad -ad -ad +af +IS +IS +IS +IS +af aa aa aa @@ -37302,8 +37990,8 @@ aa aa aa aa -ad -ad +af +af aa aa aa @@ -37313,11 +38001,11 @@ aa aa aa aa -ad -ad -ad -ad -ad +af +IS +af +af +af aa aa aa @@ -37546,11 +38234,11 @@ aa aa aa aa -ad -ad -ad -ad -ad +af +af +af +af +af aa aa aa @@ -37559,10 +38247,10 @@ aa aa aa aa -ad -ad -ad -ad +af +IS +af +af aa aa aa @@ -37570,8 +38258,8 @@ aa aa aa aa -ad -ad +af +af aa aa aa @@ -37803,11 +38491,11 @@ aa aa aa aa -ad -ad -ad -ad -ad +af +IS +IS +IS +af aa aa aa @@ -37815,11 +38503,11 @@ aa aa aa aa -ad -ad +af +IS ag -ad -ad +IS +af aa aa aa @@ -37866,25 +38554,25 @@ aa aa aa aa -Ht -Hx -Hx -Hx -Hx -Hx -Hx +Hw +Hw +Hw +Hw +Hw +Hw +Hw HS HS HS -Hx -Hx -Hx -Hx -Hx -HY -Hx -Hx -Ik +Hw +Hw +Hw +Hw +Hw +Hw +Hw +Hw +Hw aa aa aa @@ -38056,15 +38744,15 @@ aa aa aa aa -ad -ad -ad -ad -ad +af +af +af +af +IS ag -ad -ad -ad +IS +IS +af aa aa aa @@ -38072,11 +38760,11 @@ aa aa aa aa -ad -ad -ad -ad -ad +af +IS +IS +IS +af aa aa aa @@ -38122,7 +38810,7 @@ aa aa aa aa -Ht +Hw Hw Hz Hy @@ -38138,11 +38826,11 @@ HM HP HP HX -HZ +Hw Ie Ii -Im -Ik +HL +Hw aa aa aa @@ -38313,14 +39001,14 @@ aa aa aa aa -ad -ad -ad -ad -ad -ad -ad -ad +af +IS +af +af +IS +IS +IS +af aa aa aa @@ -38329,10 +39017,10 @@ aa aa aa aa -ad -ad -ad -ad +af +af +af +af aa aa aa @@ -38351,7 +39039,7 @@ aa aa aa aa -ad +af aa aa aa @@ -38384,7 +39072,7 @@ Hv Hy Hy Hy -HJ +HS HM HM HM @@ -38395,11 +39083,11 @@ HM HM HM Hy -HZ +Hw Id Id Il -HJ +HS aa aa aa @@ -38570,14 +39258,14 @@ aa aa aa aa -ad -ad +af +af aa aa -ad -ad -ad -ad +af +af +af +af aa aa aa @@ -38600,16 +39288,16 @@ aa aa aa aa -ad -ad -ad -ad +af +af +af +af aa aa aa aa -ad -ad +af +af aa aa aa @@ -38641,7 +39329,7 @@ Hv HA HH HA -HJ +HS HM HR HR @@ -38656,7 +39344,7 @@ Ib HM HM Io -HJ +HS aa aa aa @@ -38851,23 +39539,23 @@ aa aa aa aa -ad -ad -ad +af +af +af aa aa aa -ad -ad -ad -ad +af +IS +IS +af aa aa aa -ad -ad -ad -ad +af +IS +IS +af aa aa aa @@ -38895,17 +39583,17 @@ aa aa Hs Hv -Hx -Hx -Hx +Hw +Hw +Hw HL HM HQ -HJ -HJ +HS +HS HT -HJ -HJ +HS +HS HW HM HM @@ -38913,7 +39601,7 @@ Ia HM HM In -HJ +HS aa aa aa @@ -39108,29 +39796,22 @@ aa aa aa aa -ad +af ag -ad +af aa aa -ad -ad -ad +af +IS +IS ag -ad +af aa aa aa -ad +af ag -ad -aa -aa -aa -aa -aa -aa -aa +af aa aa aa @@ -39144,6 +39825,13 @@ aa aa aa aa +IU +IU +IV +IU +IV +IU +IU aa aa aa @@ -39154,7 +39842,7 @@ Hs Hv HC HC -HJ +HS Hy HM HP @@ -39166,11 +39854,11 @@ HP HP HM Hy -HZ +Hw Ig HM Io -HJ +HS aa aa aa @@ -39352,9 +40040,9 @@ aa aa aa aa -ad -ad -ad +af +af +af aa aa aa @@ -39365,29 +40053,22 @@ aa aa aa aa -ad -ad -ad -aa -aa -aa -ad -ad -ad -ad -aa -aa -aa -ad -ad -ad -aa +af +IS +af aa aa aa +af +IS +IS +af aa aa aa +af +af +af aa aa aa @@ -39401,6 +40082,13 @@ aa aa aa aa +IU +IW +Ja +Ja +Jb +Jo +IU aa aa aa @@ -39423,11 +40111,11 @@ HM HM HM Hy -HZ +Hw If If Ip -HJ +HS aa aa aa @@ -39608,29 +40296,29 @@ aa aa aa aa -ad -ad -ad -ad +af +IS +IS +af aa aa aa aa -ad -ad -ad +af +IS +af aa aa aa aa -ad -ad +af +af aa aa aa -ad -ad -ad +af +af +af aa aa aa @@ -39651,24 +40339,24 @@ aa aa aa aa +IV +IX +Jb +Ja +Jb +Jp +Jr aa aa aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -Hu +Hw Hw HD HD -HJ +HS HN HM HR @@ -39680,19 +40368,19 @@ HM HR HR HX -HZ +Hw Ih Ij -Ir -Iq +HL +Hw aa aa aa -jc -vY -ph -vY -xq +vm +vm +HS +vm +vm aa aa aa @@ -39857,25 +40545,25 @@ aa aa aa aa -ad -ad +af +af aa aa aa aa aa aa -ad -ad -ad -ad +af +IS +IS +af aa aa aa aa -ad -ad -ad +af +IS +af aa aa aa @@ -39885,7 +40573,7 @@ aa aa aa aa -ad +af aa aa aa @@ -39900,8 +40588,21 @@ aa aa aa aa -ad -ad +af +af +aa +aa +aa +aa +aa +aa +IU +IW +Ja +Ja +Jb +Jo +IU aa aa aa @@ -39909,47 +40610,34 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -Hu -Hx -Hx -Hx -Hx +Hw +Hw +Hw +Hw +Hw HO -Hx -Hx +Hw +Hw HS -Hx -Hx +Hw +Hw HV -Hx -Hx -Hx -Ic -Hx -Hx -Iq +Hw +Hw +Hw +Hw +Hw +Hw +Hw aa aa aa aa -vp +vm wa vS -wU -wV +wa +vm aa aa aa @@ -40122,10 +40810,10 @@ aa aa aa aa -ad +af ag -ad -ad +IS +af aa aa aa @@ -40157,21 +40845,21 @@ aa aa aa aa -ad -ad -aa -aa -aa -aa -aa -aa -aa +IS +af aa aa aa aa aa aa +IU +IU +IV +Jf +IV +IU +IU aa aa aa @@ -40211,7 +40899,7 @@ aa aa Is IC -IF +Is aa aa aa @@ -40379,10 +41067,10 @@ aa aa aa aa -ad -ad -ad -ad +af +IS +IS +af aa aa aa @@ -40424,20 +41112,20 @@ aa aa aa aa +bq +Jg +bq aa aa aa -aa -aa -aa -Hk -Ho -Ho -Ho -Ho -Ho -Ho -HE +Hm +Hm +Hm +Hm +Hm +Hm +Hm +Hm am am fW @@ -40458,18 +41146,18 @@ aa aa aa aa -jc -vs -wu +vm +vm +vm vq -wu -vs -xq +vm +vm +vm Is Ix IB -IE -IF +Ix +Is aa aa aa @@ -40636,19 +41324,16 @@ aa aa aa aa -ad -ad -ad -ad +af +af +af +af aa aa aa aa -ad -ad -aa -aa -aa +af +af aa aa aa @@ -40684,6 +41369,9 @@ aa aa aa aa +bQ +Jh +bq aa aa Hj @@ -40694,7 +41382,7 @@ Hp Hp Hp Hp -HF +Hm kf kf fW @@ -40884,10 +41572,10 @@ aa aa aa aa -ad -ad -ad -ad +af +af +af +af aa aa aa @@ -40901,14 +41589,9 @@ aa aa aa aa -ad -ad -ad -aa -aa -aa -aa -aa +af +IS +af aa aa aa @@ -40942,6 +41625,11 @@ aa aa aa aa +am +bQ +Ji +bq +am aa Hj Hl @@ -40951,7 +41639,7 @@ Hp Hp Hp Hp -HF +Hm kf kM lk @@ -41141,11 +41829,11 @@ aa aa aa aa -ad -ad -ad -ad -ad +af +IS +IS +IS +af aa aa aa @@ -41157,15 +41845,10 @@ aa aa aa aa -ad -ad -ad -ad -aa -aa -aa -aa -aa +af +IS +IS +af aa aa aa @@ -41199,6 +41882,11 @@ aa aa aa aa +bq +bq +Jj +bq +bq aa Hj Hl @@ -41208,7 +41896,7 @@ Hp Hp Hp Hp -HF +Hm fW kN lK @@ -41397,12 +42085,12 @@ aa aa aa aa -ad -ad -ad -ad -ad -ad +af +IS +IS +IS +IS +af aa aa aa @@ -41414,9 +42102,9 @@ aa aa aa aa -ad -ad -ad +af +af +af aa aa aa @@ -41430,17 +42118,12 @@ aa aa aa aa -ad -aa -aa -aa -ad -ad -aa -aa +af aa aa aa +af +af aa aa aa @@ -41456,6 +42139,11 @@ aa aa aa aa +bq +Jc +Jk +Jl +bq aa Hj Hl @@ -41465,7 +42153,7 @@ Hp Hp Hp Hp -HF +Hm fW kN ll @@ -41654,12 +42342,12 @@ aa aa aa aa -ad -ad -ad +af +IS +IS ag -ad -ad +IS +af aa aa aa @@ -41687,12 +42375,7 @@ aa aa aa aa -ad -aa -aa -aa -aa -aa +IS aa aa aa @@ -41713,6 +42396,11 @@ aa aa aa aa +bq +Jd +cS +Jm +bq aa Hj Hm @@ -41722,7 +42410,7 @@ Hp Hp Hp Hp -HF +Hm kf kO lm @@ -41912,11 +42600,11 @@ aa aa aa aa -ad -ad -ad -ad -ad +af +IS +IS +IS +af aa aa aa @@ -41964,22 +42652,22 @@ aa aa aa aa +am +bq +Je +cS +Jn +bq +am aa -aa -aa -aa -aa -aa -aa -aa -Hn -Ho +Hm +Hm Hq -Ho +Hm Hr -Ho -Ho -HG +Hm +Hm +Hm kf kP ln @@ -42169,10 +42857,10 @@ aa aa aa aa -ad -ad -ad -ad +af +af +af +af aa aa aa @@ -42223,9 +42911,9 @@ bq bq bq bq -bq -bq -bq +cS +cS +cS bq bJ bq @@ -42429,7 +43117,7 @@ aa aa aa aa -ad +af aa aa aa @@ -42467,8 +43155,8 @@ aa aa aa aa -ad -ad +af +IS aa aa aa @@ -42482,11 +43170,11 @@ bX ct cM dp -dN -ev +cS +Jk eZ fx -cS +Js gB ha ha @@ -42494,13 +43182,13 @@ ha hA cS bJ -kf -kf +Jy +Jy lp lN -kf +Jy mU -kf +Jy kf kf pi @@ -42677,7 +43365,7 @@ aa aa aa aa -ad +af aa aa aa @@ -42724,8 +43412,8 @@ aa aa aa aa -ad -ad +IS +IS am am am @@ -42757,7 +43445,7 @@ lq dx mr mV -lJ +Jt nX kf pj @@ -43004,7 +43692,7 @@ cS ey hb fc -hb +Ju fc je dS @@ -43012,7 +43700,7 @@ kj kS lr lO -lJ +Jt mW ny nY @@ -43028,18 +43716,18 @@ lK fW fW of -vp -vY +vm +vm wx wx wx -vY -wV -Iw +vm +vm +It Iu ID Iu -II +It aa aa aa @@ -43228,8 +43916,8 @@ aa aa aa aa -ad -ad +IS +af aa aa aa @@ -43267,11 +43955,11 @@ hc bq kk kT -bN +Jt kk -lJ -lJ -lJ +Jt +Jt +JI nZ kf pl @@ -43285,17 +43973,17 @@ lK kf kf am -vr +vm vZ vZ vZ vZ vZ -xI -bx -bx -bM -bx +vm +ev +ev +Cf +ev aa aa aa @@ -43485,8 +44173,8 @@ aa aa aa aa -ad -ad +af +af aa aa aa @@ -43508,7 +44196,7 @@ bu bQ bY cv -cP +cO cS cS cS @@ -43524,10 +44212,10 @@ hY bq kk kT -cf +JA lP ms -bN +Jt nA nA nA @@ -43549,10 +44237,10 @@ am am am am -by -bN -bN -bx +Cw +jc +jc +ev am aa aa @@ -43717,8 +44405,8 @@ aa aa aa aa -ad -ad +af +af aa aa aa @@ -43763,9 +44451,9 @@ aa bk bv bq -cb +bY bQ -cO +cP cS dP cS @@ -43781,10 +44469,10 @@ bq bq kk kU -bx -bx +Jy +Jy kk -bN +Jt nA jh oH @@ -43800,14 +44488,14 @@ qM sr sr sr -bx -bx -bx -bx -bx -bx -bx -bM +ev +ev +ev +ev +ev +ev +ev +Cf yB yB qI @@ -43974,8 +44662,8 @@ aa aa aa aa -ad -ad +IS +af aa aa aa @@ -44031,17 +44719,17 @@ fA cS gC bq -bN -bN -iE -bO -bO +Jt +Jt +Jv +Jx +Jx kl kV -bx +Jy iQ kl -bN +Jt nA ob oI @@ -44057,14 +44745,14 @@ qL un uS sr -bN -bN -bN -bN -cx +jc +jc +jc +sF +wU yd -bx -cT +ev +Dz yC vg za @@ -44288,7 +44976,7 @@ fz fc dZ bq -bN +Jt bx dw jg @@ -44298,7 +44986,7 @@ kW bx iQ mt -bN +Jt nA oc oJ @@ -44314,14 +45002,14 @@ tE uo tL vt -bS -bS -bS -bS -nN -dt -bx -pr +ng +ng +ng +ng +wV +xI +ev +xq yA yO zf @@ -44500,8 +45188,8 @@ aa aa aa aa -ad -ad +af +IS aa aa aa @@ -44539,13 +45227,13 @@ bK cS cS dQ -fe +Jq fe fB cS ez bq -bN +Jt bx cB ii @@ -44553,9 +45241,9 @@ bx nx vc bx -bx +Jy mu -bN +Jt nA od oK @@ -44572,13 +45260,13 @@ tn un sr wb -bN -bN -bN -pr -mG -bx -pr +jc +jc +jc +xq +xJ +ev +xq yA yP za @@ -44757,8 +45445,8 @@ aa aa aa aa -ad -ad +af +af aa aa aa @@ -44802,7 +45490,7 @@ fC ft ew bq -bN +Jt bx du ji @@ -44812,7 +45500,7 @@ ji bx lR mv -bN +Jt nB oe oe @@ -44829,12 +45517,12 @@ tn tu sr wc -bx -bx -bx -pr -bN -bx +ev +ev +ev +xq +jc +ev yw yA yR @@ -45048,7 +45736,7 @@ aa aa aa aa -bx +IT cx bN bq @@ -45059,7 +45747,7 @@ fD fa ez bq -bN +Jt bx bx jj @@ -45069,13 +45757,13 @@ kX bx lS mw -bN +Jt nC jo -bx -bN +Jy +Jt IL -bx +Jy ps rE qX @@ -45087,12 +45775,12 @@ un vu sr wA -bN -bN -pr -bN -bN -pr +jc +jc +xq +jc +jc +xq yA yQ zg @@ -45305,7 +45993,7 @@ aa aa aa bL -bx +IT bN dt bq @@ -45316,7 +46004,7 @@ fA cS ez bq -bN +Jt bx iH jk @@ -45325,13 +46013,13 @@ jk kY bx lT -fw +JH mv nD jo -bx -cT -bS +Jy +JC +ny qx qU rF @@ -45344,10 +46032,10 @@ un vv sr Av -wW +xr xr xL -xr +BS xr yx yA @@ -45560,9 +46248,9 @@ aa aa aa aa -bx +IT bM -bx +IT bN iE dR @@ -45573,7 +46261,7 @@ fE cS ez bq -bN +Jt bx iI iF @@ -45584,12 +46272,12 @@ bx Bc Bc mw -dt -bx -bx +JJ +Jy +Jy pr -bN -bx +Jt +Jy fX cX ks @@ -45603,10 +46291,10 @@ sr wC wX xs -bx -bx -bx -pr +ev +ev +ev +xq yA yT za @@ -45819,7 +46507,7 @@ ah am by bN -bx +IT bN IM bq @@ -45830,7 +46518,7 @@ fF fN dZ bq -bN +Jt bx iJ iG @@ -45839,14 +46527,14 @@ ko la bx lV -fw +JH mX -bN +Jt vE -bN -pr -dt -bx +JK +JN +JP +Jy qV cX ks @@ -45856,14 +46544,14 @@ tK ut uW sq -bG +ph wD wY px xM vo -bx -pr +ev +xq yA yU za @@ -46022,8 +46710,8 @@ aa aa aa aa -ad -ad +IS +IS aa aa aa @@ -46074,10 +46762,10 @@ aN aU ah ah -bx +IT bM -bx -bN +IT +IY IN bq bq @@ -46087,7 +46775,7 @@ fG bQ fV bq -bN +Jt bx iK iG @@ -46097,13 +46785,13 @@ lb bx lW my -bN -nE -bN -bN +Jt +Jt +Jt +Jt pr -lv -bx +JQ +Jy fX qy rV @@ -46117,10 +46805,10 @@ wd wE wZ xs -bx -bx -bx -pr +ev +ev +ev +xq yA yV vw @@ -46279,8 +46967,8 @@ aa aa aa aa -ad -ad +af +af aa aa aa @@ -46336,7 +47024,7 @@ bO bO bO cV -bx +IT eI eI eI @@ -46344,7 +47032,7 @@ fH fX ks bx -bN +Jt id iL kn @@ -46352,19 +47040,19 @@ mc oo lc bx -bN -bN -cT -bS +Jt +Jt +JC +ny oh -bS +ny mY -lu -bx +JR +Jy qW rG fj -qx +dN sX uu uu @@ -46372,12 +47060,12 @@ uu uu uu wF -nD -bT -bT +vr +wu +wu yf -bN -pr +jc +xq yA yW zi @@ -46609,32 +47297,32 @@ jm og AR bx -cT +JC mz mY nF oi oL -bN -cx -bx +Jt +JS +Jy lY fX fX -bx -on -bx -bx -bx -bx -bN -lP -bO +ev +eY +ev +ev +ev +ev +sF +vp +vs xu -bO +vs yg -ms -pr +Dx +xq yA yA yA @@ -46848,9 +47536,9 @@ ah bB ah ah -bx +IT IP -bx +IT dW eK eK @@ -46867,28 +47555,28 @@ tZ el bx lX +Jy +Jy bx bx bx -bx -bx -bx -bx -bx +Jy +Jy +Jy lY fX fX -bx -bx -bx +ev +ev +ev uv uX -bx -bx -bx -bx -bx -bx +ev +ev +ev +ev +ev +ev tN yn yy @@ -47876,7 +48564,7 @@ ah ah ah ah -bx +IT cW dC dr @@ -47892,17 +48580,17 @@ bx eC hG jN -bx -bx -lX -bx -bx -bx -bx -bx -bx -bx -bx +Jz +Jz +JD +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz lY fX fX @@ -47920,7 +48608,7 @@ su yh yq yz -jO +DC yY zk zB @@ -48149,17 +48837,17 @@ cj jq fX ks -bx +Jz cT ma -bS -bS -bS -bS -bS +JF +JF +JF +JF +JF nN -bN -bx +JO +Jz pL fX fX @@ -48176,7 +48864,7 @@ wh wl yi yr -mY +DA yA yA yA @@ -48406,8 +49094,8 @@ cj jq fX ks -bx -cU +Jz +JB mb mb mb @@ -48415,8 +49103,8 @@ mb mb mb pt -bN -bx +JE +Jz qY fX fX @@ -48644,9 +49332,9 @@ aT aZ ah ah -bx +IT bM -bx +IT bN cU cj @@ -48663,8 +49351,8 @@ cj jq fX kt -bx -cU +Jz +JB mb mA mZ @@ -48672,8 +49360,8 @@ nG oj mb pu -cx -bx +ad +Jz qm qA fX @@ -48903,8 +49591,8 @@ ah am by bN -bx -bN +IT +IZ dc cj ee @@ -48920,8 +49608,8 @@ cj jq fX ku -bx -cU +Jz +JB mb mB na @@ -48946,7 +49634,7 @@ uf xy wI yl -pr +xq yA yH yH @@ -49158,7 +49846,7 @@ aa aa aa aa -bx +IT bM cj cj @@ -49177,8 +49865,8 @@ cj jq fX ks -bx -cU +Jz +JB mb mC nb @@ -49434,8 +50122,8 @@ cj jq fX ks -bx -cU +Jz +JB mb mD nb @@ -49452,7 +50140,7 @@ kh td td td -td +Er td wj tt @@ -49460,7 +50148,7 @@ uG xA wJ su -bN +jc yA yI yI @@ -49691,8 +50379,8 @@ cj dz ik ks -bx -cU +Jz +JB mb mE nb @@ -49717,7 +50405,7 @@ xg qC xU su -bN +sF yA yJ yJ @@ -49948,8 +50636,8 @@ cj jq fX ks -bx -cU +Jz +JB mb mC iS @@ -49974,7 +50662,7 @@ vH xC xV su -mu +Dy yA yJ yJ @@ -50205,8 +50893,8 @@ cj jr fX ks -bx -cU +Jz +JB mb mF nd @@ -50231,7 +50919,7 @@ xi xD xW su -bN +jc yA yK yK @@ -50249,7 +50937,7 @@ BH BW tP Ci -Co +am am yB CY @@ -50462,8 +51150,8 @@ cj fq fX ks -bx -cU +Jz +JB mb mb mb @@ -50488,7 +51176,7 @@ xj xE xh su -bN +sF yA Ay za @@ -50505,7 +51193,7 @@ qI qI qI yB -Cj +aa Cp am yB @@ -50719,17 +51407,17 @@ cj jq fX ks -bx -cU -bN +Jz +JB +JE mG ne nM on -bx -bx -bx -bx +Jz +Jz +Jz +Jz jq fX ks @@ -50745,7 +51433,7 @@ uH xF uH ym -bN +jc yA uT xB @@ -50763,7 +51451,7 @@ aa aa aa aa -Cq +Hk am yB CX @@ -50976,17 +51664,17 @@ cj gg fX kt -bx +Jz lt -bS +JF mH -nf -nN -bN -bN -bN -bN -id +JF +mH +JF +JL +JE +JE +cb jq fX kt @@ -51002,7 +51690,7 @@ su su su su -bN +jc yA yB yB @@ -51020,7 +51708,7 @@ aa aa aa aa -Cq +Hk am yB Da @@ -51233,17 +51921,17 @@ fK js fX ks -bx +Jz lu -bN -cU -bN -cU -bN -bN -bN -bx -bx +JE +JB +JE +JB +JE +JE +JO +Jz +Jz jr fX rX @@ -51255,12 +51943,12 @@ yN ga Al Ax -id -bN -bN -bN -bN -bx +vY +jc +jc +jc +jc +ev aa yB qI @@ -51277,7 +51965,7 @@ aa aa aa aa -Cq +Hk am yB yB @@ -51490,16 +52178,16 @@ hz jt fX ks -bx +Jz lv -bN +JG mI -ng +go nO wo -lR +JM pA -bx +Jz oQ jq fX @@ -51512,12 +52200,12 @@ vb uB vb wL -bx -bx -bx -bM -bx -bx +ev +ev +ev +Cf +ev +ev aa am aa @@ -51771,9 +52459,9 @@ vb wM bx am -bx -bN -by +ev +jc +Cw am aa am @@ -51791,7 +52479,7 @@ aa aa aa aa -Cq +Hk am aa aa @@ -52028,15 +52716,15 @@ vb wN bx am -bx -bM -bx +ev +Cf +ev am aa zc -zc +DE rm -zc +DE zc aa aa @@ -52048,7 +52736,7 @@ aa aa aa aa -Cq +Hk am aa aa @@ -52305,7 +52993,7 @@ aa aa aa aa -Cq +Hk am aa aa @@ -52562,7 +53250,7 @@ aa aa aa aa -Cq +Hk am aa aa @@ -52820,7 +53508,7 @@ aa aa aa Cs -Co +am am aa aa @@ -53076,21 +53764,21 @@ aa aa aa aa -Cj +aa CA -CK -Db -Db -Db -Db +Cq +Cq +Cq +Cq +Cq DX -DZ DX -Db -Db -Db +DX +Cq +Cq +Cq Ee -Ep +aa aa aa aa @@ -53346,7 +54034,7 @@ am am am am -Ef +am Eq aa aa @@ -53604,7 +54292,7 @@ aa aa aa am -Cq +Hk aa aa aa @@ -53861,7 +54549,7 @@ aa aa aa am -Er +Cr aa aa aa @@ -54118,7 +54806,7 @@ aa aa aa am -Cq +Hk aa aa aa @@ -54375,7 +55063,7 @@ aa aa aa am -Cq +Hk aa aa aa @@ -54632,7 +55320,7 @@ aa aa aa am -Cq +Hk aa aa aa @@ -54889,7 +55577,7 @@ aa aa aa am -Cq +Hk aa aa aa @@ -55146,7 +55834,7 @@ aa aa aa am -Cq +Hk aa aa aa @@ -55403,7 +56091,7 @@ aa aa aa am -Cq +Hk aa aa aa @@ -55660,7 +56348,7 @@ aa aa aa am -Er +Cr aa aa aa @@ -55917,7 +56605,7 @@ aa aa aa am -Cq +Hk aa aa aa @@ -56174,7 +56862,7 @@ aa aa aa am -Cq +Hk aa aa aa @@ -56431,7 +57119,7 @@ aa aa aa am -Cq +Hk aa aa aa @@ -56688,7 +57376,7 @@ aa aa aa am -Cq +Hk aa aa aa @@ -56945,7 +57633,7 @@ aa aa aa am -Er +Cr aa aa aa @@ -57460,7 +58148,7 @@ aa aa am Et -Co +am am am am @@ -57716,9 +58404,9 @@ aa aa aa am -Ef +am EB -Co +am Ea uR uR @@ -57911,7 +58599,7 @@ aa aa am bU -iZ +Jw jL kd kK @@ -57974,7 +58662,7 @@ aa aa am am -Ef +am CA uw Fh @@ -58168,7 +58856,7 @@ aa aa aa bU -ja +iZ bU bV bV @@ -58424,9 +59112,9 @@ aa aa aa aa -am -bL -am +bU +ja +bU aa aa aa @@ -58488,15 +59176,15 @@ aa am am Ea +DH +JT Eh Eh Eh Eh Eh -Eh -Eh -Eh -Eh +JT +DH Ea am am @@ -59261,11 +59949,11 @@ Eg Ea Eh Ew -sF +Ht Fk Fy FN -GQ +Iw Gr Eh Ea @@ -60032,7 +60720,7 @@ Eh Eu Eh Ew -EW +HJ EV EV EV @@ -62793,9 +63481,9 @@ aa aa aa aa -eY +DJ hP -eY +DJ aa aa aa @@ -63050,9 +63738,9 @@ aa aa aa aa -eY +DJ iD -eY +DJ aa aa aa diff --git a/_maps/map_files/MiniStation/cargopacks.dm b/_maps/map_files/MiniStation/cargopacks.dm index a6a1db75df..097711e7f4 100644 --- a/_maps/map_files/MiniStation/cargopacks.dm +++ b/_maps/map_files/MiniStation/cargopacks.dm @@ -1,31 +1,3 @@ -/datum/supply_pack/engineering/oxygen - name = "Oxygen Canister" - cost = 15 - contains = list(/obj/machinery/portable_atmospherics/canister/oxygen) - crate_name = "oxygen canister crate" - crate_type = /obj/structure/closet/crate/large - -/datum/supply_pack/engineering/toxins - name = "Plasma Canister" - cost = 30 - contains = list(/obj/machinery/portable_atmospherics/canister/toxins) - crate_name = "plasma canister crate" - crate_type = /obj/structure/closet/crate/large - -/datum/supply_pack/engineering/nitrogen - name = "Nitrogen Canister" - cost = 20 - contains = list(/obj/machinery/portable_atmospherics/canister/nitrogen) - crate_name = "nitrogen canister crate" - crate_type = /obj/structure/closet/crate/large - -/datum/supply_pack/engineering/carbon_dio - name = "Carbon Dioxide Canister" - cost = 35 - contains = list(/obj/machinery/portable_atmospherics/canister/carbon_dioxide) - crate_name = "carbon dioxide canister crate" - crate_type = /obj/structure/closet/crate/large - /obj/machinery/hydroponics/constructable/unattached anchored = 0 diff --git a/_maps/map_files/MiniStation/job/jobs.dm b/_maps/map_files/MiniStation/job/jobs.dm index 03bdf00859..be8271da4a 100644 --- a/_maps/map_files/MiniStation/job/jobs.dm +++ b/_maps/map_files/MiniStation/job/jobs.dm @@ -80,4 +80,12 @@ total_positions = 4 spawn_positions = 4 access = list(access_security, access_sec_doors, access_brig, access_court) - minimal_access = list(access_security, access_sec_doors, access_brig, access_court) \ No newline at end of file + minimal_access = list(access_security, access_sec_doors, access_brig, access_court) + +/obj/item/weapon/robot_module/miner/New() + ..() + var/mining_type = MINETYPE + if(mining_type == "mining") + var/obj/item/stack/rods/cyborg/R = new /obj/item/stack/rods/cyborg(src) + basic_modules += R + add_module(R, FALSE, TRUE) diff --git a/_maps/map_files/MiniStation/job/removed.dm b/_maps/map_files/MiniStation/job/removed.dm index 3954ecf873..b425ced227 100644 --- a/_maps/map_files/MiniStation/job/removed.dm +++ b/_maps/map_files/MiniStation/job/removed.dm @@ -50,6 +50,3 @@ /datum/job/warden/config_check() return 0 - -/datum/job/cyborg/config_check() - return 0 \ No newline at end of file diff --git a/_maps/map_files/MiniStation/lavaland.dmm b/_maps/map_files/MiniStation/lavaland.dmm new file mode 100644 index 0000000000..676d51be4b --- /dev/null +++ b/_maps/map_files/MiniStation/lavaland.dmm @@ -0,0 +1,66360 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/closed/indestructible/necropolis, +/area/lavaland/surface/outdoors) +"ab" = ( +/obj/structure/necropolis_gate, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ac" = ( +/turf/open/indestructible/necropolis, +/area/lavaland/surface/outdoors) +"ad" = ( +/obj/effect/light_emitter, +/turf/open/indestructible/necropolis, +/area/lavaland/surface/outdoors) +"ae" = ( +/obj/structure/fluff/drake_statue, +/turf/open/indestructible/necropolis, +/area/lavaland/surface/outdoors) +"af" = ( +/obj/structure/fluff/drake_statue/falling, +/turf/open/indestructible/necropolis, +/area/lavaland/surface/outdoors) +"ag" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ah" = ( +/turf/closed/mineral/random/high_chance/volcanic, +/area/lavaland/surface/outdoors) +"ai" = ( +/turf/closed/indestructible/necropolis, +/area/ruin/unpowered{ + name = "Necropolis Bridge" + }) +"aj" = ( +/turf/open/indestructible/necropolis, +/area/ruin/unpowered{ + name = "Necropolis Bridge" + }) +"ak" = ( +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"al" = ( +/turf/closed/mineral/random/volcanic, +/area/lavaland/surface/outdoors) +"am" = ( +/obj/item/weapon/pickaxe, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"an" = ( +/obj/structure/ore_box, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ao" = ( +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"ap" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"aq" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/mine/production) +"ar" = ( +/obj/machinery/airalarm{ + frequency = 1439; + pixel_y = 23 + }, +/obj/machinery/computer/shuttle/mining{ + req_access = "0" + }, +/turf/open/floor/plasteel/purple/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1 + }, +/area/mine/production) +"as" = ( +/obj/structure/closet/secure_closet/miner, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1 + }, +/area/mine/production) +"at" = ( +/obj/structure/table, +/obj/item/weapon/pickaxe, +/obj/item/device/gps/mining, +/obj/item/device/gps/mining, +/obj/item/device/gps/mining, +/obj/item/device/gps/mining, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/mine/production) +"au" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"av" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; + name = "KEEP CLEAR: DOCKING AREA"; + pixel_y = 0 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"aw" = ( +/obj/item/device/radio/beacon, +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/mine/production) +"ax" = ( +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"ay" = ( +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Mining External Airlock"; + opacity = 0; + req_access_txt = "54" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"az" = ( +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/mine/production) +"aA" = ( +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 4 + }, +/area/mine/production) +"aB" = ( +/obj/docking_port/stationary{ + area_type = /area/lavaland/surface/outdoors; + dir = 8; + dwidth = 3; + height = 5; + id = "mining_away"; + name = "lavaland mine"; + turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + width = 7 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"aC" = ( +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Mining Shuttle Airlock"; + opacity = 0; + req_access_txt = "0" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"aD" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"aE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"aF" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1 + }, +/area/mine/production) +"aG" = ( +/obj/structure/ore_box, +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 4 + }, +/area/mine/production) +"aH" = ( +/obj/machinery/suit_storage_unit/mining, +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1 + }, +/area/mine/production) +"aI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"aJ" = ( +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors/explored) +"aK" = ( +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/mine/production) +"aL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/extinguisher_cabinet{ + pixel_x = 30; + pixel_y = 0 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"aM" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Mining Station Starboard Wing APC"; + pixel_x = -27; + pixel_y = 2 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/mine/production) +"aN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"aO" = ( +/obj/machinery/mineral/equipment_vendor, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"aP" = ( +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"aQ" = ( +/obj/item/device/radio/intercom{ + dir = 8; + name = "Station Intercom (General)"; + pixel_x = -28 + }, +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1 + }, +/area/mine/production) +"aR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"aS" = ( +/turf/closed/wall/r_wall{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/maintenance) +"aT" = ( +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"aU" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/closet/crate/secure/loot, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"aV" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"aW" = ( +/obj/machinery/suit_storage_unit/mining, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"aX" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"aY" = ( +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Mining Communications APC"; + pixel_x = 1; + pixel_y = 25 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/maintenance) +"aZ" = ( +/obj/machinery/telecomms/relay/preset/mining, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8; + tag = "icon-vault (WEST)" + }, +/area/mine/maintenance) +"ba" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/maintenance) +"bb" = ( +/obj/machinery/power/terminal{ + icon_state = "term"; + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/closet/secure_closet/miner, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"bc" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"bd" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"be" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"bf" = ( +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 8 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"bg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"bh" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/bluegrid{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/maintenance) +"bi" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/maintenance) +"bj" = ( +/obj/machinery/light_switch{ + pixel_y = -25 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/camera{ + c_tag = "Communications Relay"; + dir = 8; + network = list("MINE") + }, +/turf/open/floor/bluegrid{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/maintenance) +"bk" = ( +/obj/structure/cable, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/power/port_gen/pacman{ + anchored = 1 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"bl" = ( +/obj/machinery/power/port_gen/pacman{ + anchored = 1 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"bm" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"bn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"bo" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Mining Station Communications"; + req_access_txt = "48" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/maintenance) +"bp" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/door/airlock/maintenance{ + name = "Mining Station Maintenance"; + req_access_txt = "48" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"bq" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"br" = ( +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 4 + }, +/area/mine/living_quarters) +"bs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1; + tag = "icon-brown (NORTH)" + }, +/area/mine/living_quarters) +"bt" = ( +/obj/machinery/camera{ + c_tag = "Crew Area Hallway West"; + network = list("MINE") + }, +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1 + }, +/area/mine/living_quarters) +"bu" = ( +/obj/machinery/airalarm{ + frequency = 1439; + pixel_y = 23 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"bv" = ( +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"bw" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1; + tag = "icon-brown (NORTH)" + }, +/area/mine/living_quarters) +"bx" = ( +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1 + }, +/area/mine/living_quarters) +"by" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Mining Station Port Wing APC"; + pixel_x = 1; + pixel_y = 25 + }, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"bz" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"bA" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"bB" = ( +/obj/machinery/camera{ + c_tag = "Crew Area Hallway East"; + network = list("MINE") + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"bC" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"bD" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"bE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"bF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/light, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"bG" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"bH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"bI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"bJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/light, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) + +(1,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(2,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(3,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(4,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(5,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(6,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aJ +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(7,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aJ +aJ +ak +aJ +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(8,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aJ +aJ +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(9,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aJ +aJ +ak +ak +aJ +aJ +ak +ak +aJ +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(10,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(11,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(12,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(13,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(14,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(15,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(16,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(17,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(18,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(19,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(20,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(21,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(22,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(23,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(24,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(25,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(26,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(27,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(28,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(29,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(30,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(31,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(32,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(33,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(34,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(35,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(36,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(37,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(38,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(39,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(40,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(41,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(42,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(43,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(44,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ak +ak +ak +ag +ag +ak +ak +ak +ak +ak +ak +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(45,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ak +ak +ak +ak +ak +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(46,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(47,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(48,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(49,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +al +al +al +al +al +ak +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(50,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +ag +al +al +al +al +al +al +al +al +al +al +al +ak +al +al +al +al +al +al +ah +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(51,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +ag +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +al +al +al +al +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(52,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ah +al +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(53,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(54,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(55,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(56,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(57,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(58,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ak +ak +ak +ak +ak +ag +ak +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(59,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +ak +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ah +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(60,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(61,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(62,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(63,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +ak +ak +ak +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(64,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ak +ak +ak +ak +ak +ak +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(65,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ah +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ak +ag +ak +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(66,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ah +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(67,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ah +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(68,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ah +ah +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ah +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(69,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ah +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(70,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(71,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ah +ah +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(72,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ah +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +ak +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(73,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ah +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +ak +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ah +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(74,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ak +ak +ak +ak +ak +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ah +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(75,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +ak +ak +ak +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(76,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ah +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(77,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ah +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(78,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ah +ah +ah +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(79,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(80,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ah +ah +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +ak +ak +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(81,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ah +ah +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +ak +ak +ak +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(82,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(83,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(84,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ah +ah +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ah +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(85,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ah +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +ak +ak +ak +ak +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(86,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ak +ak +ak +ak +ak +ak +ak +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +al +ak +ak +ak +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(87,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +ak +ak +ak +ak +ak +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ah +al +al +ak +ak +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(88,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +ak +ak +ak +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(89,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(90,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ah +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(91,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ah +ah +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ah +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(92,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ah +ah +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(93,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ah +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(94,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(95,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(96,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(97,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ah +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(98,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ah +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ak +ak +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ah +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(99,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ag +ak +ak +ak +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(100,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ag +ak +ak +ak +ag +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(101,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ah +ag +ag +ak +ak +ak +ak +ak +ak +ak +ag +ag +ak +ak +ag +ak +ak +ag +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ah +al +ak +ak +ak +ag +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(102,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ah +ag +ag +ak +ak +ak +ak +ak +ak +ag +ag +ak +ak +ak +ak +ak +ag +ag +ag +ag +ah +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(103,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ah +ah +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(104,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(105,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ak +ak +ak +ak +ag +ak +ak +ak +ag +ak +ag +ag +ag +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(106,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ak +ak +ak +ag +ak +ak +ag +ag +ak +ak +ak +ag +ag +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(107,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(108,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ah +ah +ag +ag +ag +ag +ak +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ag +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(109,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ah +ah +ah +ag +ag +ak +ak +ak +ak +ak +ag +ak +ak +ak +ak +ak +ag +ag +ah +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +ak +ak +ak +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(110,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ah +ah +ah +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(111,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ah +ah +ah +ag +ag +ak +ak +ak +ak +ak +ak +ag +ag +ag +ak +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ag +ag +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +aS +aS +aS +aS +bq +bq +aP +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(112,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ag +ag +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +ak +ak +ag +aS +aY +bh +aS +br +bC +bq +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(113,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ag +ag +al +ag +al +al +al +al +al +al +al +al +al +ak +al +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +ak +ak +ak +aS +aZ +bi +bo +bs +bD +bq +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(114,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +al +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +ak +ag +aS +ba +bj +aS +bt +bE +bq +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(115,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ag +ak +ak +ak +ag +ag +ag +ak +ak +ak +ak +ag +ag +ah +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ag +ak +ag +aP +aS +aS +aS +aS +bu +bF +bq +ag +ak +ak +ak +ak +ak +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(116,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ag +ag +ak +ag +ag +ag +ag +ak +ak +ak +ag +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ag +al +al +ag +ag +ag +ag +ag +ag +ag +ag +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ag +ag +ag +ag +ag +ag +ag +aP +aT +bb +bk +aP +bv +bE +bq +ag +ak +ak +ak +ak +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(117,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ak +ak +ak +ak +ag +ag +ag +ag +ak +ag +ag +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ag +al +al +al +ag +ag +ag +ag +al +al +ag +ag +ag +al +al +al +al +ak +ak +ak +ak +ak +ag +ag +ag +ag +ag +ag +ag +ag +aP +aU +bc +bl +aP +br +bE +bq +ak +ak +ak +ak +ak +ak +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(118,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ak +ak +ak +ak +ak +ag +ag +ag +ag +ak +ak +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ag +al +al +ag +ag +ag +ag +al +al +al +ag +ag +ag +al +al +al +al +al +ak +ak +ak +ag +ag +ag +ag +ag +ag +ag +ag +ag +aP +aV +bd +bm +bp +bw +bG +bq +ag +ak +ak +ak +ak +ak +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(119,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ak +ak +ak +ak +ak +ag +ag +ag +ak +ak +ak +ak +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +al +al +al +al +ag +ag +ag +al +al +ah +al +al +ag +ag +ag +al +al +ag +ag +ak +ak +ak +ag +ag +ag +ag +ag +ag +ag +ag +ag +aP +aW +be +bn +aP +bx +bE +bq +ag +ak +ak +ak +ak +ak +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(120,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ag +ag +ag +al +al +al +al +al +ag +ag +ag +ag +al +ag +ag +ag +ak +ak +ak +ag +ag +ag +ag +ag +ag +ag +ag +aP +aX +bf +bf +aP +by +bH +bq +ag +ak +ak +ak +ak +ak +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(121,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ag +ak +ak +ak +ak +ag +ag +ak +ak +ak +ak +ak +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ag +ag +ag +ag +al +al +al +al +al +al +ag +ag +ag +al +ag +ag +ag +ak +ak +ak +ag +ag +ag +ag +aB +ag +ag +ag +aP +aP +aP +aP +aP +bz +bE +bq +ag +ak +ak +ak +ak +ak +ak +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(122,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ag +ag +ak +ag +ag +ag +ag +ag +ak +ak +ak +ag +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ag +ag +ag +ag +al +al +al +al +al +al +ag +ag +ag +ag +ag +ag +ag +ag +ak +ak +ak +ag +ag +av +aC +ap +ag +ag +ag +ag +ag +ag +bq +bA +bE +bq +ak +ak +ak +ak +ak +ak +ak +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(123,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ah +ah +ag +ag +ag +ak +ak +ak +ak +ag +ag +ag +ak +ak +ak +ak +ag +ag +ah +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ag +ag +al +al +al +al +al +ag +ag +ag +ag +ag +ag +ag +ag +ak +ak +ak +ak +ag +ap +ax +ap +ag +ak +ak +ak +ak +ag +bq +bv +bE +bq +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(124,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ah +ah +ag +ag +ag +ak +ak +ak +ak +ak +ag +ag +ag +ag +ag +ak +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ah +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ag +ag +al +al +al +al +al +ag +ag +ag +al +al +ag +ag +ag +ag +ak +ak +ak +ap +ap +aC +ap +ap +ag +ak +ak +ak +ag +bq +bB +bE +bq +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(125,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ah +ah +ah +ag +ag +ag +ak +ak +ak +ak +ak +ag +ak +ak +ak +ak +ak +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ag +ag +ag +ag +ag +al +ag +ag +ag +ag +al +al +ag +ag +ag +ag +ag +ag +ao +ap +aw +az +aH +ap +ao +ao +ap +ap +ap +ap +ax +bI +ap +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(126,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ah +ah +ah +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +al +al +al +ag +ag +ag +ag +ag +ao +ar +ax +aD +ax +aK +aM +aQ +ax +ax +ax +ax +ax +bI +ap +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(127,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ag +ag +ag +al +al +al +ag +ag +ag +ag +ag +ag +ag +al +al +al +al +al +ag +ag +ag +ag +ap +as +ax +aE +aI +aL +aN +aR +aR +bg +aR +aR +aR +bJ +ap +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(128,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ag +ag +ag +al +al +al +al +ag +ag +ag +ag +ag +ag +al +al +al +al +al +ag +ag +ag +ag +ao +ap +ay +ap +ao +ao +aO +ao +ap +ap +ap +ap +ap +ap +ao +ag +ak +ak +ak +ak +ak +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(129,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ag +ag +ag +ag +ak +ak +ak +ak +ag +ak +ak +ak +ak +ak +ak +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ah +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ag +ag +al +ag +al +al +al +al +ag +ag +al +al +ag +ag +al +al +al +al +al +ag +ag +ag +ag +ao +at +az +aF +ao +ao +ao +ao +ag +ak +ak +ag +ag +ag +ag +ag +ak +ak +ak +ak +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(130,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ag +ag +ag +ag +ag +ag +ag +ak +ak +ag +ak +ak +ak +ag +ag +ak +ag +ag +ag +ag +ag +al +al +al +al +al +ah +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ag +ag +al +al +al +al +al +al +al +al +al +al +ag +ag +al +al +al +al +al +al +ag +ag +ag +ao +au +aA +aG +ao +ak +ak +ag +ag +ak +ak +ak +ak +ak +ag +ag +ak +ak +ak +ak +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(131,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ag +ag +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +al +al +al +al +ah +ag +ag +ag +ag +ah +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ag +al +al +al +al +al +al +al +al +al +al +ag +ag +ag +al +al +al +al +al +al +ag +ag +ag +ao +ap +ay +ap +ao +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(132,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ae +ac +ac +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +al +al +al +al +ag +ag +ag +ag +ag +ag +ah +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ag +al +al +al +al +al +al +al +al +al +al +ag +ag +al +al +al +al +al +al +al +al +ag +ag +aq +ag +ag +ag +aq +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(133,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ah +al +ah +ag +ag +ag +ag +ag +ag +ag +ag +ag +ah +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +al +al +al +al +al +al +al +al +al +ag +ag +ag +al +al +al +al +al +al +al +al +al +ag +ag +ag +ag +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(134,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ag +ag +ai +ai +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ai +ai +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ag +ag +al +al +al +al +al +al +al +al +al +ag +ag +al +al +al +al +al +al +al +al +al +ag +ag +ag +ag +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(135,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ai +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ah +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ag +al +al +al +al +al +al +al +al +ag +ag +ag +ag +ag +al +al +al +al +al +al +al +ag +ag +ag +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(136,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ad +ac +ac +ac +ac +ac +ac +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ag +al +al +al +al +al +al +al +ag +ag +ag +ag +ag +ag +al +al +al +al +al +al +al +ag +ag +ag +ag +ag +ag +ag +ag +ak +ak +ak +ak +ag +ag +ag +ak +ak +ak +ak +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(137,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ai +ag +ag +ag +ag +ag +ag +ag +ag +ag +ah +ag +ag +ag +ag +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +am +ag +al +al +al +al +al +al +al +al +al +ag +ag +ag +ag +ag +ag +ag +ag +al +al +al +ag +ag +ag +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(138,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ag +ag +ai +ai +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ai +ai +ag +ag +ag +ag +ag +ag +ag +ag +ag +ah +ah +ag +ag +ag +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +an +ag +al +al +al +al +al +al +al +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +al +al +ag +ag +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(139,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ag +ag +ag +ag +ag +ak +ak +ak +ag +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +al +ag +ag +ag +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(140,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +af +ac +ac +ag +ag +ag +ag +ag +ag +ak +ag +ag +ag +ak +ag +ag +ak +ak +ak +ag +ag +al +ah +ag +ag +ag +ag +ag +ag +ah +al +al +ah +ag +ag +ag +ah +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(141,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ag +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ag +ag +ak +ak +ak +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ag +ag +ag +ag +ag +ag +ag +ak +ak +ag +ag +ag +ag +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(142,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ag +ag +ag +ah +ah +ag +ag +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ag +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(143,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ah +ah +ah +ag +ag +ak +ak +ak +ak +ag +ag +ak +ak +ak +ak +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ag +ag +al +al +ag +ag +ag +ak +ak +ak +ak +ak +ak +ag +ag +ag +ag +ak +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(144,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ah +ah +ah +ah +ag +ag +ak +ak +ak +ak +ag +ag +ag +ak +ak +ak +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ag +al +ag +al +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(145,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ah +ah +ah +ag +ag +ag +ag +ak +ak +ag +ag +ag +ag +ak +ak +ak +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ag +ag +ag +ag +al +al +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(146,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ag +ag +ak +ak +ag +ag +ag +ag +ag +ag +ag +ak +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ag +ag +ag +al +al +al +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(147,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ag +ak +ak +ak +ak +ag +ag +ag +ak +ak +ak +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ag +ag +al +al +al +al +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ag +ag +ak +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(148,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ak +ak +ak +ak +ag +ag +ag +ak +ak +ak +ag +ag +ah +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ag +ag +al +al +al +al +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +al +ah +ah +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(149,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ak +ak +ak +ak +ag +ag +ag +ak +ak +ak +ag +ag +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +al +al +al +al +al +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ah +ah +ah +ah +ah +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(150,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ak +ak +ak +ak +ag +ag +ak +ak +ak +ak +ag +ag +ag +ag +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ak +ak +ag +ag +ak +ak +ak +ak +ak +ak +ag +ak +ag +ag +ah +ah +ah +ah +ah +ah +ah +ah +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(151,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ag +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ak +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ah +ah +ah +ah +ah +ah +ah +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(152,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ag +ag +ag +ah +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ak +ak +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ah +ah +ah +ah +ah +ah +ah +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(153,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +ak +ag +ag +ag +ag +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ak +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ah +ah +al +ah +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(154,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ag +ag +ag +ak +ag +ag +ag +ak +ak +ag +ag +ag +ag +ag +ag +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ak +ak +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(155,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ag +ag +ak +ak +ak +ag +ag +ag +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(156,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +ak +ak +ag +ak +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(157,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ah +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ah +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(158,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ah +ah +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ak +ak +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ah +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(159,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ah +ah +ah +ag +ak +ak +ak +ak +ag +ak +ak +ak +ak +ak +ak +ag +ag +ak +ak +ag +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ah +ag +ak +ak +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(160,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ak +ak +ak +ak +ak +ag +ak +ak +ak +ak +ag +ag +ak +ak +ag +ag +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ak +ak +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(161,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ak +ak +ak +ak +ag +ag +ag +ak +ak +ak +ag +ag +ak +ak +ak +ag +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ak +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(162,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ak +ag +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ah +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ak +ak +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(163,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ak +ak +ak +ak +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ak +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(164,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ak +ak +ak +ak +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ag +ak +ak +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ak +ak +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(165,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ak +ak +ak +ak +ak +ag +ag +ag +ag +ak +ak +ak +ak +ag +ak +ak +ag +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ak +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(166,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ah +ah +ak +ak +ak +ak +ak +ag +ag +ag +ag +ak +ak +ak +ak +ag +ak +ak +ag +ag +ag +ag +ag +ah +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ak +ak +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(167,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ah +ah +ah +ak +ak +ak +ak +ak +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ak +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(168,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ak +ak +ak +ak +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ak +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(169,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ak +ak +ak +ak +ak +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ak +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(170,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +ag +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ah +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(171,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ag +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(172,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(173,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ah +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(174,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(175,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ah +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(176,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ah +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ah +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(177,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ah +ah +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(178,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ah +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(179,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +al +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(180,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +al +ah +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(181,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ah +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ak +ak +ak +ak +ak +ag +ag +ag +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(182,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(183,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ah +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ak +ak +ak +ak +al +ag +ak +ak +ak +ak +ak +ak +ak +ak +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ak +al +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(184,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ah +ah +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ag +ak +ak +ak +ag +ag +al +al +al +al +ag +ag +ak +ak +ak +ak +ak +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(185,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +al +al +al +al +al +al +al +al +al +al +ah +al +ag +ag +ag +ak +ak +ak +ak +ag +ag +al +al +al +al +al +al +al +ag +ag +ag +ak +ak +ak +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(186,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +al +al +al +al +al +al +al +al +al +al +ag +ag +ak +ak +ak +ak +ak +ag +ag +al +al +al +al +al +al +al +al +al +al +ag +ag +ak +ak +ak +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ah +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(187,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ag +ag +al +al +al +ah +al +al +al +al +al +al +al +al +al +ag +ak +ak +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(188,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +al +al +al +al +al +ag +ag +ak +ak +ag +ag +ag +al +al +al +al +al +al +ag +al +al +al +al +al +ah +ah +al +al +al +ag +ak +ak +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(189,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +al +al +al +ag +ag +ak +ak +ag +al +al +al +al +al +ag +ag +ak +ak +ak +ak +ag +ag +al +al +al +al +al +al +al +al +ak +ak +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(190,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ah +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +al +al +al +ak +ag +ak +ak +ag +ag +ak +ak +ag +ag +al +ak +ak +ak +ak +al +ag +ag +ag +ak +ak +ag +ag +ag +ak +ag +ak +ak +ak +ak +ak +ak +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(191,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ah +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(192,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +al +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(193,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ah +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(194,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +ah +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(195,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ah +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ah +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(196,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ah +ah +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +al +al +al +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(197,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ag +ag +ag +ak +ak +ag +ag +ak +ak +ak +ak +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +ak +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(198,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ag +ak +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(199,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(200,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ah +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ak +ag +ag +ag +ag +ak +ak +ak +ak +ak +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(201,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ah +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ag +ag +al +al +al +al +ah +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(202,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ak +ak +ag +ak +ak +ak +ak +ak +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(203,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ah +ah +ah +ah +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ag +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +al +ah +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(204,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ah +ah +ah +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +ak +ag +ag +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ah +al +al +al +al +ah +al +ak +ak +ak +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(205,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +al +al +al +al +al +ak +ak +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ak +ak +ak +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(206,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ak +ak +ak +ak +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +ak +ak +al +al +al +al +al +al +al +al +al +al +al +ak +al +ag +al +ak +ak +ag +ag +ag +ag +ak +ak +ak +ak +ag +ag +ag +ak +ak +ak +ak +ak +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(207,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +al +al +ag +al +al +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(208,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(209,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(210,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(211,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(212,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ak +ak +ak +ak +ag +ag +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(213,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(214,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(215,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(216,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(217,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(218,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(219,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(220,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(221,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(222,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(223,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(224,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(225,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(226,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(227,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(228,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(229,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(230,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(231,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(232,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(233,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(234,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(235,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(236,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(237,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(238,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(239,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(240,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(241,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(242,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(243,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(244,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(245,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(246,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(247,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(248,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(249,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(250,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(251,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(252,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(253,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(254,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} +(255,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +"} diff --git a/_maps/map_files/MiniStation/z5.dmm b/_maps/map_files/MiniStation/z5.dmm index 3797247c75..78d40228f5 100644 --- a/_maps/map_files/MiniStation/z5.dmm +++ b/_maps/map_files/MiniStation/z5.dmm @@ -1,9 +1,9 @@ "a" = (/turf/open/space,/area/space) -"b" = (/turf/closed/mineral/random/low_chance,/area/space) -"c" = (/turf/closed/mineral/random/high_chance,/area/space) -"d" = (/turf/closed/mineral,/area/space) -"e" = (/turf/closed/mineral/random,/area/space) -"f" = (/turf/open/floor/plating/asteroid/airless/cave,/area/space) +"b" = (/turf/closed/mineral/random/low_chance,/area/mine/unexplored) +"c" = (/turf/closed/mineral/random,/area/mine/unexplored) +"d" = (/turf/closed/mineral/random/high_chance,/area/mine/unexplored) +"e" = (/turf/closed/mineral,/area/mine/unexplored) +"f" = (/obj/effect/spawner/lootdrop/crate_spawner,/turf/open/floor/plating/asteroid/airless/cave,/area/mine/unexplored) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -56,7 +56,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabccbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -64,7 +64,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabccbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -73,157 +73,157 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbabbbaaaaaaaaabbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbaaaaaaaaaaaaaaaaaaaaaaaabbbcbbbbbbbbbaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbaaaaaaaabbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbabbbaaaaaaaabbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbabaaaaaaaaaaaabbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabccccccbaaaaaaaaaaaaaabcbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaccaaaaaaaaaaaaaaaaaaaaaabbcccccccbaaaaaaaaaaaaaabcbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcaaaaaaaaaaaaaaaaaaaaaabbcccccccbabbbaaaaaaaaabccbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcaaaaaaaaaaaaaaaaaaaaaaaabccdccccbcccbaaaaaaaabcbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbaaaaaaaaaaaaaaaaaaaaaaaabcccccccbbccbaaaaaaaabbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabccccccbbabbbaaaaaaaabbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcccbbbbabaaaaaaaaaaaabbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaabccbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaabbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaabbbbaaaaaaaaabbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaabbbbaaaaaaaaabbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaabbbbccbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaabbbbccbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbcbbaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbaaaaaaaaaaabbbbbbbbbbbaaaaaaaaaaaaaaaaabbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbaaaaaaaaaaabbbbbbbbbcbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbcbbbbbbbaaaaaaaabbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbcbbbbaaaaaaaabbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbaaaabbbaaaaaaaaaaaaaaaaaaaaabbbcbcbbbbcbaaaaaaaabbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaabbcbbbbbbbbbbaaaaaaaabbbbaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbcbbbbaaaaaaaaaaaaaaaaaaaabbbbbbbcbaaaaaaaaaaaabbbbaaaaabbaaabbaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbcbaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaabbbbbbbbbaaaaaaaaaaabbaaaaaaaabbbaabbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaaaaaaaaaabbbbbbbbbbcbbbbabbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbabbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbcaaaaaaaaaabccbaaaaaaaaabccccbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabccaaaaaaaaaabbbbaaaaaaaaabccccbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcccccbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcccccccbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaabcccddccbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaabcccddcbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabccccccccbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbcccbaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabccccccccbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabccdcbaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbccccccbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabccccbaaaaaaaaaaacccccccccccaaaaaaaaaaaaaaaaabbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbaaaaaaaaaaacccccccccdcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaccccdcccccccaaaaaaaabbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacccccccdccccaaaaaaaabccbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbaaaabbbaaaaaaaaaaaaaaaaaaaaacccdcdccccdcaaaaaaaabccbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabccccccccccbbbbccbaaaaaaaaaaaaaaaaaaaaccdccccccccccaaaaaaaabccbaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaabcbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaaaaaaaaaaabcccccccccccccdcccbaaaaaaaaaaaaaaaaaaaacccccccdcaaaaaaaaaaaabbbbaaaaabbaaabcaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcdbaaaaaaaaaaaaaaaaaaaabccccccccccccccbcccbaaaaaaaaaaaaaaaaaaaacccccccccaaaaaaaaaaabbaaaaaaaaccbaabbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaaaaaaaaaabcccccccccdcccbabbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbccccccbcccbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabccccbabccbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbabbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabccbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbaaaaaaaaccaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaabbaaabbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaabbaaabbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbcbbbbbbbbcbbbbbbaaaaaaaaaaabbbbaaaaaabbaaabbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbaaaaaaaaaaabbbbaaaaaaaaaaabbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaabbbbbbcbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaabbbbaaaaaaaaaaaaaabbbbbbbbbaaaaaabbaaaaaaaaaaaaaaaabbbbbbcbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbabbaaaaaaaaaaaabbbbbaaaaaaaaaaaaaaaaaaaabbbaaaaaabbaaaaaaaaaaaaaaaabbbbbbcbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbabbaaaaaaaaaaaabbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaabbbbbbbbbabbaaaaaaaaaaaabbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaabbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbabbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbaaaaaaaaaaaaaaabbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbaaaaaaaaaaaaaaabbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcccbbbbbbaaaaaaaaaaaaaaaaaaaaaaaabccccbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcaaaaaaaaaaaaaaaaaaaaaaaabbbbcccbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabccccccccbaaaaaaaaaaaaaaaaaaaaaaaabccccccccccccbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbaaaaaaaaaaaaaaaaaaaaaaaabcccccccbbbbbbbbbbaaaaaaaaddaaaaaaaaaaaaaaaaaaabcccccccccbbaaaaaaaaaaaaaaaaaaaaabccccccccccccccbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcccccccccccccccccbbbaaaaaaaaaaaaaaaaaaaaabbaaabccccccccccbaaaaaaaaaaaaaaaaaaaaabccccccccccccccbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcccccccccccccccccccbaaaaaaaaaaaaaaaaaaaaabbaaabcccccccccbbaaaaaaaaaaaaaaaaaaaaabcccccccccccccccbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabccccdccccccccdcccccbaaaaaaaaaaabbbbaaaaaabbaaabccccccccbaaaaaaaaaaaaaaaaaaaaaaabbbcccccccccccccbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabccccccccccccccccccbaaaaaaaaaaabccbaaaaaaaaaaabbbcccccccbbaaaaaaaaaaaaaaaaaaaaaaaabcccccdccccccbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbcccccccccccccbccbbaaaaaaaaaaabccbaaaaaaaaaaaaaabbbbbbbcbaaaaaabbaaaaaaaaaaaaaaaabcccccdccccccbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcccccccccccbabbaaaaaaaaaaaabcccbaaaaaaaaaaaaaaaaaaaabbbaaaaaacbaaaaaaaaaaaaaaaabcccccdccccccbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbccccccccbabbaaaaaaaaaaaabcbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbaaaaaaaaaaaaaaaabcccccccccccccbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaabcccccccbabbaaaaaaaaaaaabbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabccbcccccccccccbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaabbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbabccccccccccbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbaaaaaaaaaaaaaaabcccccccccbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcccbaaaaaaaaaaaaaaabbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcccbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaabbaaaaaaaaaaaabbbbbabbbbbaaaaaaaabbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbcbbbbbbbbbbbbbbbbaaaaaaaaaaaabbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaabbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaabbbabbbabbbbbaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaabbbbbbbbbbbbbaaaaaaaaaaaabbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaabbbbbbbbbbbcbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbaaaaaaaaaaaaabbbbbbbbcbbbbbbbaaaaaaaaaaaaaaaaaaabbbbbbcbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbcbbbbbcbbaaaaaaaaaaaaabbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbaaaaaaaaaaaaabbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaabbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaaaabbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaaaabbbbbbbbbabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaaaabbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaaaaabbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbaaaaaabbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcbaaaaaaaaaaaaaaaaaaaaaaaaabcccccbccccbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaabbccccccccccccbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabccccccccccccccccccbaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabccccccccccccccccccccbbbcbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabccccccccdccccccccccccccbbaaaaaaaaaaaabbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaabcccccccccccccccccccbbbbaaaaaaaaaaaabbccccccccccbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcbaaaaaaaaaaaabbbabcbabbbbbaaaaaaaaaaaabccccccccccccccccbbbaaaaaaaaaaaaaaaabccccccccccccccbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaabccbcccbccccbaaaaaaaaaaaabcccccccccccccccbaaaaaaaaaaaaaaaaaaabccccccccccdccccbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcccccccccccbaaaaaaaaaaaaabcccccccdccccccbaaaaaaaaaaaaaaaaaaabcccccdcccccccccccbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcccdcccccdcbaaaaaaaaaaaaabbcccccccccccbbbaaaaaaaaaaaaaaaaaabccccccccccccccccccbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabccccccccccccbbaaaaaaaaaaaaabbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaabccccccccccccccccccbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaabbccccccccccccbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbcccccccccccccccbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabccbaaaaaaaaaaaaaabccccccccbcbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcccccccccccccbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabccbaaaaaaaaaaaaaabcccccccbabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaaaabbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaaaaabbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcccbaaaaaabbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbaaaaaaaaaaaaaaaaabbbbbaaaaaabbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbaabbbbbaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaabbbbbbbbbaabbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaabbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaabbbbbbbbbcbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbcbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbcbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddadddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadaaaddddddddaaddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddddddddddddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddddddddddddddddddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbcbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddeeddddddddddddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddeeeeceeeeeeeeeeceeeeedddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddeeeeeeeeeeeeeeeeeeeeeddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddeceeeeeeeeeeeeeeeeeeeddddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddeeeeeeeeeeeeeeeeeeeeeeeeeeeeddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddeeeeeeeeeeeeeeeeeeeeeeeeceeeddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddeeeeeceeeeeeeeeeeeeeeeeeeeeeeeeedddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddddddddddddddddddddddeeeeeeeeeeeeeeeeeefeeeeeeeedddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddddddddddddddddddddeeeeeeeeeeeeeeeceeeeeeeeeeeeeddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddeeeeeeeeeeeeeeeeeeeceeeeeeeeeeeeeeeeeeeeeeeedddaaaddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddeeeeeeeceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeddddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedddddddddddddaaddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedddddddddddddaddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedddddddddddadddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedddddddddddadddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedddddddddadddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeddddadddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddeeeeeeeeeeeeeeeefeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedddadddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedddadddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeddddadddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeceeeeeeeeeddddadddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddeeeeeeeceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeddddaddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedddaaaddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddeeeeeeeeeeeeeeeeeeeeeeeceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeceeeeeddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddeeeeeeeeeeeeeeeeeeefeeeeeeeeeeeeeeeeeeeeeceeeeeeeeddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddddddddddddddeeeeeeeeeeeeeedddddddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddddddddddddddddddddddddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddddddddddddddddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabccccbbbaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcccccccbaaaaaaaaaaaaaaaaaaaaaaabcbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcccccccbaabbbbbaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaabcccccccbaabccccbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcbaaaaaaaabccccccccbbccccccbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaabccccccccdcccccccccbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabccdcccccccccccccccbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabccccccccccccccccccbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbcccccccccccdcccccbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabccccccccccbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbcccbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeaeeeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaaaeeeeeeeeaaeeeeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbccccbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeeeeeeeeeeeeeeeeeeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcccccbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcccdcbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeeecceeeeeeeeeeeeeeeeeeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcccccbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeccccdccccccccccdccccceeeeeeeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbccccbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeccccccccccccccccccccceeeeeeeeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeecdccccccccccccccccccceeeeeeeeeeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeecccccccccccccccccccccccccccceeeeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeccccccccccccccccccccccccdccceeeeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeecccccccccccccccccccccccccccccccceeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeecccccccccccccccccccccccccccccccceeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeecccccdcccccccccccccccccccccccccceeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeeecccccccccccccccccccccccccccccccceeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeeeeeeecccccccccccccccccccccccccccceeeeeeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeeeeeeeeecccccccccccccccccccccccccccceeeeeeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeeeeeeeeeeeeeeeeeeeeeeccccccccccccccccccfcccccccceeeeeeeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeeeeeeeeeeeeeeeeeeeecccccccccccccccdccccccccccccceeeeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeeeeeeeeeeeeeccccccccccccccccccccccccccccccccccccceeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeeeeeecccccccccccccccccccccccccccccccccccccccccccceeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeeeeeeecccccccccccccccccccdcccccccccccccccccccccccceeeaaaeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeeeeecccccccdcccccccccccccccccccccccccccccccccccccceeeeeeeeeeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeeecccccccccccccccccccccccccccccccccccccccccccccccceeeeeeeeeeeeeaaeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeeecccccccccccccccccccccccccccccccccccccccccccccccceeeeeeeeeeeeeaeeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeeeecccccccccccccccccccccccccccccccccccccccccccccccccceeeeeeeeeeeaeeeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeeeccccccccccccccccccccccccccccccccccccccccccccccccccceeeeeeeeeeeaeeeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeeeccccccccccccccccccccccccccccccccccccccccccccccccccccceeeeeeeeeaeeeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeeecccccccccccccccccccccccccccccccccccccccccccccccccccccccccceeeeaeeeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeeccccccccccccccccfcccccccccccccccccccccccccccccccccccccccccceeeaeeeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeeccccccccccccccccccccccccccccccccccccccccccccccccccccccccccceeeaeeeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeccccccccccccccccccccccccccccccccccccccccccccccccccccccccccceeeeaeeeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeecccccccccccccccccccccccccccccccccccccccccccccccccdccccccccceeeeaeeeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeecccccccdccccccccccccccccccccccccccccccccccccccccccccccccccceeeeaeeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeccccccccccccccccccccccccccccccccccccccccccfcccccccccccccccceeeaaaeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeccccccccccccccccccccccccccccccccccccccccccccccccccccccccccceeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeccccccccccccccccccccccccccccccccccccccccccccccccccccccccccceeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeccccccccccccccccccccccccccccccccccccccccccccccccccccccccccceeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeccccccccccccccccccccccccccccccccccccccccccccccccccccccccccceeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeecccccccccccccccccccccccdccccccccccccccccccccccccccccccccccceeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeeecccccccccccccccccccccccccccccccccccccccccccccccccccdccccceeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeeeecccccccccccccccccccccccccccccccccccccccccccccccccccccccceeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeeeecccccccccccccccccccccccccccccccccccccccccccccccccccccccceeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeeeeeeeeecccccccccccccccccccccccccccccccccccccccccccccccccceeeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeeeeeeeecccccccccccccccccccccccccccccccccccccccccccccccccceeeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeeeeeeeecccccccccccccccccccccccccccccccccccccccccccccccccceeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeeeeecccccccccccccccccccccccccccccccccccccccccccccccccceeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeeeeecccccccccccccccccccfcccccccccccccccccccccdcccccccceeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeeeeecccccccccccccccccccccccccccccccccccccccccccccccccceeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeeeecccccccccccccccccccccccccccccccccccccccccccccccceeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeeeeeeeecccccccccccccccccccccccccccccccccccccccccccceeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeeeeeeecccccccccccccccccccccccccccccccccccccccccccceeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeecccccccccccccccccccccccccccccccccccccccccccceeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeecccccccccccccccccccccccccccccccccccccccccccceeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeccccccccccccccccccccccccccccccccccccccccccccceeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeeeecccccccccccccccccccccccccccccccccccccccceeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeeecccccccccccccccccccccccccccccccccccccccceeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeeeccccccccccccccccccccccccccccccccccccccceeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeeeeeeeecccccccccccccccccccccccccccccccccceeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeeeeeeeeecccccccccccccccccccccccccccccccceeeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeeeeeeeeecccccccccccccccccccccccccccccccceeeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeeeeeeeeecccccccccccccccccccccccccccccccceeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeeeeeeeeecccccccccccccccccccccccceeeeeeeeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeeeeeeeeeeeeeecccccccccccccceeeeeeeeeeeeeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeeeeeeeeeeeeeeeeeeeeeeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeeeeeeeeeeeeeeeeeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeeeeeeeeeeeeeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/_maps/map_files/PubbyStation/EDITING_README.txt b/_maps/map_files/PubbyStation/EDITING_README.txt new file mode 100644 index 0000000000..a97e77f994 --- /dev/null +++ b/_maps/map_files/PubbyStation/EDITING_README.txt @@ -0,0 +1,4 @@ +Before opening PubbyStation.dme in DreamMaker, you have to tick all the +.dm files in this folder first. Otherwise you will get path errors. + +Do not commit these changes to tgstation.dme. diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm new file mode 100644 index 0000000000..e8351ddc52 --- /dev/null +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -0,0 +1,120186 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aaa" = ( +/turf/open/space, +/area/space) +"aab" = ( +/obj/effect/landmark{ + name = "carpspawn" + }, +/turf/open/space, +/area/space) +"aac" = ( +/obj/structure/lattice, +/obj/structure/grille, +/turf/open/space, +/area/space) +"aad" = ( +/obj/structure/lattice, +/turf/open/space, +/area/space) +"aae" = ( +/obj/structure/lattice, +/obj/machinery/camera/motion{ + c_tag = "MiniSat External Fore"; + dir = 1; + network = list("MiniSat") + }, +/turf/open/space, +/area/space) +"aaf" = ( +/turf/closed/wall/r_wall, +/area/wreck/ai) +"aag" = ( +/turf/open/floor/plasteel/warnwhite/corner, +/area/wreck/ai) +"aah" = ( +/turf/open/floor/plasteel/warnwhite, +/area/wreck/ai) +"aai" = ( +/turf/open/floor/plasteel/warnwhite/corner{ + dir = 1 + }, +/area/wreck/ai) +"aaj" = ( +/turf/open/floor/plasteel/white, +/area/wreck/ai) +"aak" = ( +/turf/open/floor/plasteel/warnwhite{ + dir = 4 + }, +/area/wreck/ai) +"aal" = ( +/obj/machinery/porta_turret/ai{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/wreck/ai) +"aam" = ( +/turf/open/floor/bluegrid, +/area/wreck/ai) +"aan" = ( +/obj/machinery/camera/motion{ + c_tag = "MiniSat AI Chamber North"; + dir = 1; + network = list("MiniSat") + }, +/obj/machinery/light, +/obj/machinery/flasher{ + id = "AI"; + pixel_x = 0; + pixel_y = -24 + }, +/turf/open/floor/bluegrid, +/area/wreck/ai) +"aao" = ( +/turf/open/floor/plasteel/warnwhite{ + dir = 8 + }, +/area/wreck/ai) +"aap" = ( +/turf/open/floor/plasteel/warnwhite/corner{ + dir = 8 + }, +/area/wreck/ai) +"aaq" = ( +/turf/open/floor/plasteel/warnwhite/corner{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/wreck/ai) +"aar" = ( +/turf/open/space, +/obj/machinery/porta_turret/syndicate{ + dir = 9 + }, +/turf/closed/wall/mineral/plastitanium{ + dir = 8; + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) +"aas" = ( +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/syndicate) +"aat" = ( +/obj/structure/grille, +/obj/machinery/door/poddoor/shutters{ + id = "syndieshutters"; + name = "blast shutters" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/shuttle/syndicate) +"aau" = ( +/turf/open/space, +/obj/machinery/porta_turret/syndicate{ + dir = 5 + }, +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) +"aav" = ( +/obj/docking_port/stationary{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 24; + id = "syndicate_n"; + name = "north of station"; + turf_type = /turf/open/space; + width = 18 + }, +/turf/open/space, +/area/space) +"aaw" = ( +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"aax" = ( +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"aay" = ( +/obj/structure/table, +/obj/item/device/flashlight/lamp{ + pixel_x = 4; + pixel_y = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"aaz" = ( +/obj/machinery/computer/shuttle/syndicate, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"aaA" = ( +/obj/structure/table, +/obj/machinery/button/door{ + id = "syndieshutters"; + name = "remote shutter control"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"aaB" = ( +/obj/structure/frame/computer, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"aaC" = ( +/obj/structure/table/wood, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/weapon/storage/crayons, +/turf/open/floor/plasteel/grimy, +/area/chapel/main{ + name = "Monastery" + }) +"aaD" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4"; + tag = "" + }, +/obj/effect/landmark{ + name = "tripai" + }, +/obj/item/device/radio/intercom{ + anyai = 1; + broadcasting = 0; + freerange = 1; + frequency = 1447; + name = "Private Channel"; + pixel_x = -27; + pixel_y = 0 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = 26 + }, +/turf/open/floor/bluegrid, +/area/wreck/ai) +"aaE" = ( +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/camera/motion{ + c_tag = "MiniSat AI Chamber Center"; + dir = 2; + network = list("MiniSat") + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/cable/yellow{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/ai_status_display{ + pixel_y = 32 + }, +/turf/open/floor/bluegrid, +/area/wreck/ai) +"aaF" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + aidisabled = 0; + dir = 1; + name = "AI Chamber APC"; + pixel_y = 24 + }, +/obj/effect/landmark{ + name = "tripai" + }, +/obj/item/device/radio/intercom{ + anyai = 1; + broadcasting = 0; + freerange = 1; + frequency = 1447; + name = "Private Channel"; + pixel_x = 27; + pixel_y = 0 + }, +/turf/open/floor/bluegrid, +/area/wreck/ai) +"aaG" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/yellow, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/main{ + name = "Monastery" + }) +"aaH" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/donkpockets{ + pixel_x = 3; + pixel_y = 3 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"aaI" = ( +/obj/structure/chair/comfy/beige{ + dir = 1; + icon_state = "comfychair" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"aaJ" = ( +/obj/machinery/porta_turret/ai{ + dir = 4 + }, +/obj/machinery/camera/motion{ + c_tag = "MiniSat AI Chamber West"; + dir = 4; + network = list("MiniSat") + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/wreck/ai) +"aaK" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4"; + tag = "" + }, +/turf/open/floor/bluegrid, +/area/wreck/ai) +"aaL" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/airlock/glass_command{ + name = "AI Core"; + req_access_txt = "65" + }, +/turf/open/floor/plasteel/white, +/area/wreck/ai) +"aaM" = ( +/obj/machinery/shower{ + dir = 8; + pixel_y = -4 + }, +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/obj/item/weapon/bikehorn/rubberducky, +/turf/open/floor/plasteel/showroomfloor, +/area/chapel/main{ + name = "Monastery" + }) +"aaN" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/turretid{ + name = "AI Chamber turret control"; + pixel_x = 5; + pixel_y = -24 + }, +/turf/open/floor/plasteel/white, +/area/wreck/ai) +"aaO" = ( +/obj/machinery/ai_slipper{ + icon_state = "motion0"; + uses = 8 + }, +/obj/machinery/power/terminal{ + icon_state = "term"; + dir = 1 + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel/white, +/area/wreck/ai) +"aaP" = ( +/obj/machinery/turretid{ + name = "AI Chamber turret control"; + pixel_x = -5; + pixel_y = -24 + }, +/turf/open/floor/plasteel/white, +/area/wreck/ai) +"aaQ" = ( +/obj/structure/shuttle/engine/propulsion/burst{ + dir = 4 + }, +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"aaR" = ( +/obj/machinery/porta_turret/ai{ + dir = 4 + }, +/obj/machinery/camera/motion{ + c_tag = "MiniSat AI Chamber East"; + dir = 8; + network = list("MiniSat") + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/wreck/ai) +"aaS" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass{ + amount = 10 + }, +/obj/item/device/multitool, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"aaT" = ( +/obj/item/device/radio/intercom{ + desc = "Talk through this. Evilly"; + freerange = 1; + frequency = 1213; + name = "Syndicate Intercom"; + pixel_y = -32; + subspace_transmission = 1; + syndie = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"aaU" = ( +/obj/structure/closet/syndicate/personal, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"aaV" = ( +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/wreck/ai) +"aaW" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/bluegrid, +/area/wreck/ai) +"aaX" = ( +/obj/effect/landmark/start{ + name = "AI" + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + freerange = 1; + listening = 1; + name = "Common Channel"; + pixel_x = -27; + pixel_y = -9 + }, +/obj/item/device/radio/intercom{ + anyai = 1; + freerange = 1; + listening = 0; + name = "Custom Channel"; + pixel_x = 0; + pixel_y = -31 + }, +/obj/item/device/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/bluegrid, +/area/wreck/ai) +"aaY" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) +"aaZ" = ( +/obj/machinery/door/window{ + name = "Cockpit"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"aba" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) +"abb" = ( +/turf/open/space, +/area/shuttle/syndicate) +"abc" = ( +/obj/structure/table, +/obj/item/stack/cable_coil, +/obj/item/weapon/crowbar/red, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"abd" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/zipties{ + pixel_x = 1; + pixel_y = 2 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"abe" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/bluegrid, +/area/wreck/ai) +"abf" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/bluegrid, +/area/wreck/ai) +"abg" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"abh" = ( +/obj/machinery/door/firedoor/heavy, +/turf/open/floor/bluegrid, +/area/wreck/ai) +"abi" = ( +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/bluegrid, +/area/wreck/ai) +"abj" = ( +/obj/machinery/camera/motion{ + c_tag = "MiniSat AI Chamber South"; + dir = 2; + network = list("MiniSat") + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/flasher{ + id = "AI"; + pixel_x = 0; + pixel_y = 20 + }, +/obj/machinery/ai_status_display{ + pixel_y = 37 + }, +/turf/open/floor/bluegrid, +/area/wreck/ai) +"abk" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on, +/turf/open/floor/plating/airless, +/area/space) +"abl" = ( +/obj/machinery/porta_turret/syndicate{ + dir = 4 + }, +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/syndicate) +"abm" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4"; + tag = "" + }, +/turf/open/floor/plasteel/warnwhite/corner{ + dir = 8 + }, +/area/wreck/ai) +"abn" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/wreck/ai) +"abo" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warnwhite/corner{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/wreck/ai) +"abp" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/door/firedoor/heavy, +/turf/open/floor/plasteel/white, +/area/wreck/ai) +"abq" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/white, +/area/wreck/ai) +"abr" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/ai_slipper{ + icon_state = "motion0"; + uses = 8 + }, +/turf/open/floor/plasteel/white, +/area/wreck/ai) +"abs" = ( +/obj/machinery/door/firedoor/heavy, +/turf/open/floor/plasteel/white, +/area/wreck/ai) +"abt" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/space, +/area/space) +"abu" = ( +/obj/structure/grille/broken, +/turf/open/space, +/area/space) +"abv" = ( +/obj/machinery/suit_storage_unit/syndicate, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"abw" = ( +/obj/structure/closet/syndicate/nuclear, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"abx" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/AIsatextAP) +"aby" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/AIsatextAP) +"abz" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/wreck/ai) +"abA" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/wreck/ai) +"abB" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/area/wreck/ai) +"abC" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/wreck/ai) +"abD" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/AIsatextAS) +"abE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/AIsatextAS) +"abF" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"abG" = ( +/obj/structure/table, +/obj/item/device/aicard, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"abH" = ( +/obj/machinery/door/poddoor{ + id = "smindicate"; + name = "outer blast door" + }, +/obj/machinery/button/door{ + id = "smindicate"; + name = "external door control"; + pixel_x = -26; + pixel_y = 0; + req_access_txt = "150" + }, +/obj/docking_port/mobile{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 24; + id = "syndicate"; + name = "syndicate infiltrator"; + port_angle = 0; + roundstart_move = "syndicate_away"; + width = 18 + }, +/obj/docking_port/stationary{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 24; + id = "syndicate_nw"; + name = "northwest of station"; + turf_type = /turf/open/space; + width = 18 + }, +/turf/open/floor/plating, +/area/shuttle/syndicate) +"abI" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0 + }, +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/syndicate) +"abJ" = ( +/obj/machinery/computer/station_alert, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAP) +"abK" = ( +/obj/machinery/computer/monitor, +/obj/structure/cable/yellow, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAP) +"abL" = ( +/obj/machinery/computer/atmos_alert, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAP) +"abM" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/wreck/ai) +"abN" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/glass_command{ + name = "AI Core"; + req_access_txt = "65" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/wreck/ai) +"abO" = ( +/obj/structure/table/glass, +/obj/item/stack/sheet/metal, +/obj/item/stack/sheet/glass{ + amount = 20; + pixel_x = 3; + pixel_y = -4 + }, +/obj/item/device/assembly/flash/handheld, +/obj/item/device/assembly/flash/handheld, +/obj/item/device/mmi, +/obj/item/device/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAS) +"abP" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/computer/rdconsole/robotics, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAS) +"abQ" = ( +/obj/machinery/mecha_part_fabricator, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAS) +"abR" = ( +/obj/structure/table, +/obj/item/weapon/c4{ + pixel_x = 2; + pixel_y = -5 + }, +/obj/item/weapon/c4{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/c4{ + pixel_x = 2; + pixel_y = -3 + }, +/obj/item/weapon/c4{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/weapon/c4{ + pixel_x = 3; + pixel_y = 3 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"abS" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/shuttle/syndicate) +"abT" = ( +/obj/machinery/door/window{ + name = "Ready Room"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"abU" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAP) +"abV" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAP) +"abW" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAP) +"abX" = ( +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/yellow{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/power/apc{ + dir = 8; + name = "MiniSat Antechamber APC"; + pixel_x = -24; + pixel_y = 0 + }, +/obj/machinery/recharger, +/turf/open/floor/plasteel/grimy, +/area/ai_monitored/turret_protected/aisat_interior) +"abY" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/grimy, +/area/ai_monitored/turret_protected/aisat_interior) +"abZ" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/grimy, +/area/ai_monitored/turret_protected/aisat_interior) +"aca" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/ai_monitored/turret_protected/aisat_interior) +"acb" = ( +/obj/structure/table, +/obj/item/weapon/pen, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 28 + }, +/obj/item/weapon/paper_bin{ + layer = 2.9; + pixel_x = 0; + pixel_y = 0; + tag = "every single paper bin is edited to this" + }, +/turf/open/floor/plasteel/grimy, +/area/ai_monitored/turret_protected/aisat_interior) +"acc" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAS) +"acd" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAS) +"ace" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAS) +"acf" = ( +/obj/machinery/door/window{ + dir = 4; + name = "EVA Storage"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"acg" = ( +/obj/machinery/door/airlock/external{ + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"ach" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAP) +"aci" = ( +/obj/machinery/camera{ + c_tag = "MiniSat Maintenance Port Fore"; + dir = 1; + network = list("MiniSat") + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAP) +"acj" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAP) +"ack" = ( +/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/AIsatextAP) +"acl" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel/grimy, +/area/ai_monitored/turret_protected/aisat_interior) +"acm" = ( +/obj/machinery/light/small, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/ai_monitored/turret_protected/aisat_interior) +"acn" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/grimy, +/area/ai_monitored/turret_protected/aisat_interior) +"aco" = ( +/obj/machinery/light/small, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/item/device/radio/intercom{ + broadcasting = 1; + frequency = 1447; + listening = 0; + name = "Station Intercom (AI Private)"; + pixel_x = 0; + pixel_y = -29 + }, +/obj/machinery/camera/motion{ + c_tag = "MiniSat AI Chamber Observation"; + dir = 1; + network = list("MiniSat") + }, +/turf/open/floor/plasteel/grimy, +/area/ai_monitored/turret_protected/aisat_interior) +"acp" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/grimy, +/area/ai_monitored/turret_protected/aisat_interior) +"acq" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "MiniSat Maintenance"; + req_access_txt = "65" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1; + initialize_directions = 11 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAS) +"acr" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAS) +"acs" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Waste Out"; + on = 1 + }, +/obj/machinery/camera{ + c_tag = "MiniSat Maintenance Starboard Fore"; + dir = 1; + network = list("MiniSat") + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAS) +"act" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAS) +"acu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/AIsatextAS) +"acv" = ( +/obj/machinery/door/window{ + base_state = "right"; + dir = 4; + icon_state = "right"; + name = "EVA Storage"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"acw" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) +"acx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/AIsatextAP) +"acy" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "MiniSat Maintenance"; + req_access_txt = "65" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAP) +"acz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/AIsatextAP) +"acA" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/AIsatextAP) +"acB" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/AIsatextAP) +"acC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/aisat_interior) +"acD" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/hatch{ + name = "MiniSat Chamber Observation"; + req_one_access_txt = "65" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior) +"acE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/AIsatextAS) +"acF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/AIsatextAS) +"acG" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/AIsatextAS) +"acH" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "MiniSat Maintenance"; + req_access_txt = "65" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAS) +"acI" = ( +/obj/item/device/radio/intercom{ + desc = "Talk through this. Evilly"; + freerange = 1; + frequency = 1213; + name = "Syndicate Intercom"; + pixel_x = -32; + subspace_transmission = 1; + syndie = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"acJ" = ( +/obj/structure/grille, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"acK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/AIsatextAP) +"acL" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAP) +"acM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9; + pixel_y = 0 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/AIsatextAP) +"acN" = ( +/turf/open/space, +/area/ai_monitored/turret_protected/AIsatextAP) +"acO" = ( +/obj/structure/lattice, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/camera/motion{ + c_tag = "MiniSat Bridge Port Fore"; + dir = 2; + network = list("MiniSat") + }, +/turf/open/space, +/area/ai_monitored/turret_protected/AIsatextAP) +"acP" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/aisat_interior) +"acQ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior) +"acR" = ( +/turf/open/space, +/area/ai_monitored/turret_protected/AIsatextAS) +"acS" = ( +/obj/structure/lattice, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/camera/motion{ + c_tag = "MiniSat Bridge Starboard Fore"; + dir = 2; + network = list("MiniSat") + }, +/turf/open/space, +/area/ai_monitored/turret_protected/AIsatextAS) +"acT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/AIsatextAS) +"acU" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAS) +"acV" = ( +/obj/machinery/sleeper/syndie{ + dir = 4 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"acW" = ( +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"acX" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"acY" = ( +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"acZ" = ( +/obj/structure/table, +/obj/item/stack/medical/ointment, +/obj/item/stack/medical/bruise_pack, +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"ada" = ( +/obj/structure/table, +/obj/item/weapon/stock_parts/cell/high{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/stock_parts/cell/high, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"adb" = ( +/obj/structure/table, +/obj/item/weapon/screwdriver{ + pixel_y = 9 + }, +/obj/item/device/assembly/voice{ + pixel_y = 3 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"adc" = ( +/obj/structure/table, +/obj/item/weapon/wrench, +/obj/item/device/assembly/infra, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"add" = ( +/obj/structure/table, +/obj/item/device/assembly/signaler, +/obj/item/device/assembly/signaler, +/obj/item/device/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/device/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"ade" = ( +/obj/structure/table, +/obj/item/weapon/weldingtool/largetank{ + pixel_y = 3 + }, +/obj/item/device/multitool, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"adf" = ( +/obj/structure/lattice, +/obj/structure/grille/broken, +/turf/open/space, +/area/space) +"adg" = ( +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAP) +"adh" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/space, +/area/ai_monitored/turret_protected/AIsatextAP) +"adi" = ( +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat_interior) +"adj" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior) +"adk" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/space, +/area/ai_monitored/turret_protected/AIsatextAS) +"adl" = ( +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAS) +"adm" = ( +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAS) +"adn" = ( +/obj/structure/bed/roller, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"ado" = ( +/obj/structure/sign/bluecross_2, +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/syndicate) +"adp" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/syndicate, +/obj/item/weapon/crowbar/red, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"adq" = ( +/turf/closed/wall/r_wall, +/area/security/prison) +"adr" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/turf/open/floor/plating, +/area/security/prison) +"ads" = ( +/obj/machinery/door/window{ + dir = 4; + name = "Infirmary"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"adt" = ( +/obj/machinery/door/window/westright{ + name = "Tool Storage"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"adu" = ( +/obj/machinery/hydroponics/constructable, +/obj/item/seeds/potato, +/obj/item/seeds/carrot, +/obj/item/seeds/corn, +/turf/open/floor/plasteel/black, +/area/security/prison) +"adv" = ( +/obj/item/weapon/cultivator, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/obj/structure/sign/poster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/black, +/area/security/prison) +"adw" = ( +/obj/machinery/hydroponics/constructable, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/item/seeds/glowshroom, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = 32 + }, +/obj/machinery/camera{ + c_tag = "Permabrig Central"; + network = list("SS13","Prison") + }, +/turf/open/floor/plasteel/black, +/area/security/prison) +"adx" = ( +/obj/item/weapon/reagent_containers/glass/bucket, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/sign/poster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/black, +/area/security/prison) +"ady" = ( +/obj/structure/easel, +/obj/item/weapon/canvas/nineteenXnineteen, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel/black, +/area/security/prison) +"adz" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8"; + tag = "" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/sign/poster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/black, +/area/security/prison) +"adA" = ( +/obj/machinery/biogenerator, +/turf/open/floor/plasteel/darkgreen/side{ + dir = 8 + }, +/area/security/prison) +"adB" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAP) +"adC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/AIsatextAP) +"adD" = ( +/obj/structure/lattice, +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/camera/motion{ + c_tag = "MiniSat Bridge Port Aft"; + dir = 1; + network = list("MiniSat") + }, +/turf/open/space, +/area/ai_monitored/turret_protected/AIsatextAP) +"adE" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior) +"adF" = ( +/obj/structure/lattice, +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/camera/motion{ + c_tag = "MiniSat Bridge Starboard Aft"; + dir = 1; + network = list("MiniSat") + }, +/turf/open/space, +/area/ai_monitored/turret_protected/AIsatextAS) +"adG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/AIsatextAS) +"adH" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAS) +"adI" = ( +/obj/machinery/door/window{ + base_state = "right"; + dir = 4; + icon_state = "right"; + name = "Infirmary"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"adJ" = ( +/obj/machinery/door/window{ + dir = 8; + name = "Tool Storage"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"adK" = ( +/obj/machinery/recharge_station, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"adL" = ( +/obj/machinery/hydroponics/constructable, +/obj/item/seeds/grass, +/turf/open/floor/plasteel/black, +/area/security/prison) +"adM" = ( +/obj/item/device/plant_analyzer, +/turf/open/floor/plasteel/black, +/area/security/prison) +"adN" = ( +/obj/machinery/hydroponics/constructable, +/obj/item/seeds/sunflower, +/obj/item/seeds/poppy, +/turf/open/floor/plasteel/black, +/area/security/prison) +"adO" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/black, +/area/security/prison) +"adP" = ( +/obj/item/weapon/storage/crayons, +/turf/open/floor/plasteel/black, +/area/security/prison) +"adQ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/area/security/prison) +"adR" = ( +/obj/machinery/seed_extractor, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel/darkgreen/side{ + dir = 8 + }, +/area/security/prison) +"adS" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8; + initialize_directions = 11 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/AIsatextAP) +"adT" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/AIsatextAP) +"adU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/AIsatextAP) +"adV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/AIsatextAP) +"adW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/aisat_interior) +"adX" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/hatch{ + name = "MiniSat Chamber Hallway"; + req_one_access_txt = "65" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior) +"adY" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/aisat_interior) +"adZ" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/AIsatextAS) +"aea" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/AIsatextAS) +"aeb" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "MiniSat Maintenance"; + req_access_txt = "65" + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAS) +"aec" = ( +/obj/machinery/porta_turret/syndicate{ + dir = 5 + }, +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/syndicate) +"aed" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/table, +/obj/item/bodypart/r_arm/robot, +/obj/item/bodypart/l_arm/robot, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"aee" = ( +/obj/machinery/door/window{ + dir = 1; + name = "Surgery"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"aef" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"aeg" = ( +/obj/structure/table, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/firstaid/brute, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = -3; + pixel_y = -3 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"aeh" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/firstaid/fire, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = -3; + pixel_y = -3 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"aei" = ( +/obj/structure/table, +/obj/item/device/sbeacondrop/bomb{ + pixel_y = 5 + }, +/obj/item/device/sbeacondrop/bomb, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"aej" = ( +/obj/structure/table, +/obj/item/weapon/grenade/syndieminibomb{ + pixel_x = 4; + pixel_y = 2 + }, +/obj/item/weapon/grenade/syndieminibomb{ + pixel_x = -1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"aek" = ( +/obj/structure/bookcase, +/turf/open/floor/plasteel/black, +/area/security/prison) +"ael" = ( +/turf/open/floor/plasteel/black, +/area/security/prison) +"aem" = ( +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plasteel/black, +/area/security/prison) +"aen" = ( +/obj/structure/sink{ + pixel_y = 30 + }, +/turf/open/floor/plasteel/barber, +/area/security/prison) +"aeo" = ( +/obj/machinery/washing_machine, +/turf/open/floor/plasteel/barber, +/area/security/prison) +"aep" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/cable/yellow{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/power/apc{ + dir = 8; + name = "MiniSat Port Maintenance APC"; + pixel_x = -24; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAP) +"aeq" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAP) +"aer" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/obj/machinery/camera{ + c_tag = "MiniSat Maintenance Port Aft"; + dir = 2; + network = list("MiniSat") + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAP) +"aes" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAP) +"aet" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "MiniSat Maintenance"; + req_access_txt = "65" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAP) +"aeu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior) +"aev" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-09"; + name = "Photosynthetic Potted plant"; + pixel_y = 10 + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/darkblue/side{ + dir = 8 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"aew" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/darkblue/side{ + dir = 1 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"aex" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-09"; + name = "Photosynthetic Potted plant"; + pixel_y = 10 + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/camera/motion{ + c_tag = "MiniSat Foyer"; + dir = 2; + network = list("MiniSat") + }, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (EAST)"; + dir = 4 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"aey" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior) +"aez" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "MiniSat Maintenance"; + req_access_txt = "65" + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAS) +"aeA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAS) +"aeB" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/obj/machinery/camera{ + c_tag = "MiniSat Maintenance Starboard Aft"; + dir = 2; + network = list("MiniSat") + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAS) +"aeC" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAS) +"aeD" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/structure/cable/yellow{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + dir = 4; + name = "MiniSat Starboard Maintenance APC"; + pixel_x = 24; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAS) +"aeE" = ( +/obj/structure/table, +/obj/item/weapon/surgicaldrill, +/obj/item/weapon/circular_saw, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"aeF" = ( +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/obj/structure/mirror{ + pixel_x = 30 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"aeG" = ( +/obj/machinery/nuclearbomb/syndicate, +/obj/machinery/door/window{ + dir = 1; + name = "Secure Storage"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"aeH" = ( +/obj/machinery/telecomms/allinone{ + intercept = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"aeI" = ( +/obj/machinery/computer/libraryconsole/bookmanagement{ + pixel_y = 0 + }, +/obj/structure/table, +/obj/machinery/newscaster{ + pixel_x = -32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/black, +/area/security/prison) +"aeJ" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/black, +/area/security/prison) +"aeK" = ( +/obj/item/weapon/storage/pill_bottle/dice, +/obj/structure/table, +/turf/open/floor/plasteel/black, +/area/security/prison) +"aeL" = ( +/obj/item/device/camera, +/obj/structure/table, +/turf/open/floor/plasteel/black, +/area/security/prison) +"aeM" = ( +/obj/machinery/light/small, +/turf/open/floor/plasteel/barber, +/area/security/prison) +"aeN" = ( +/obj/structure/table, +/obj/structure/bedsheetbin, +/turf/open/floor/plasteel/barber, +/area/security/prison) +"aeO" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAP) +"aeP" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Air Out"; + on = 1 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAP) +"aeQ" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAP) +"aeR" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior) +"aeS" = ( +/turf/open/floor/plasteel/darkblue/side{ + dir = 8 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"aeT" = ( +/obj/effect/landmark/start{ + name = "Cyborg" + }, +/obj/item/device/radio/beacon, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior) +"aeU" = ( +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (EAST)"; + dir = 4 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"aeV" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior) +"aeW" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/weapon/stock_parts/cell/high, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/item/stack/cable_coil, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAS) +"aeX" = ( +/obj/structure/table, +/obj/item/weapon/cautery, +/obj/item/weapon/scalpel, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"aeY" = ( +/obj/structure/table/optable, +/obj/item/weapon/surgical_drapes, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"aeZ" = ( +/obj/structure/table, +/obj/item/weapon/retractor, +/obj/item/weapon/hemostat, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"afa" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating, +/area/shuttle/syndicate) +"afb" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"afc" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"afd" = ( +/obj/structure/rack, +/obj/item/clothing/suit/space/syndicate/black/red, +/obj/item/clothing/head/helmet/space/syndicate/black/red, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"afe" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/security/prison) +"aff" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/black, +/area/security/prison) +"afg" = ( +/obj/item/toy/cards/deck, +/obj/structure/table, +/turf/open/floor/plasteel/black, +/area/security/prison) +"afh" = ( +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/weapon/pen, +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/black, +/area/security/prison) +"afi" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/security/prison) +"afj" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/security/prison) +"afk" = ( +/obj/machinery/computer/arcade, +/turf/open/floor/plasteel/black, +/area/security/prison) +"afl" = ( +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 1 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAP) +"afm" = ( +/obj/structure/table, +/obj/item/weapon/wrench, +/obj/item/weapon/tank/internals/emergency_oxygen, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAP) +"afn" = ( +/obj/structure/table, +/obj/item/weapon/crowbar, +/obj/item/clothing/mask/gas, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAP) +"afo" = ( +/obj/machinery/teleport/hub, +/turf/open/floor/plating/warnplate{ + dir = 5 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"afp" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior) +"afq" = ( +/obj/machinery/holopad, +/mob/living/simple_animal/bot/secbot/pingsky, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior) +"afr" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior) +"afs" = ( +/turf/open/floor/plating/warnplate{ + dir = 9 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"aft" = ( +/obj/machinery/recharge_station, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAS) +"afu" = ( +/obj/structure/rack, +/obj/item/weapon/storage/toolbox/electrical{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/storage/toolbox/mechanical, +/obj/item/device/multitool{ + layer = 5 + }, +/obj/item/weapon/extinguisher{ + layer = 4 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAS) +"afv" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_l" + }, +/turf/open/floor/plating, +/area/shuttle/syndicate) +"afw" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/floor/plating, +/area/shuttle/syndicate) +"afx" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_r" + }, +/turf/open/floor/plating, +/area/shuttle/syndicate) +"afy" = ( +/turf/closed/wall, +/area/security/transfer) +"afz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/closed/wall, +/area/security/transfer) +"afA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/security/transfer) +"afB" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/closed/wall, +/area/security/transfer) +"afC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/security/transfer) +"afD" = ( +/obj/machinery/vending/sustenance, +/turf/open/floor/plasteel/black, +/area/security/prison) +"afE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/security/prison) +"afF" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/black, +/area/security/prison) +"afG" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"afH" = ( +/obj/machinery/shower{ + dir = 8 + }, +/obj/item/weapon/soap/nanotrasen, +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"afI" = ( +/obj/machinery/teleport/station, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"afJ" = ( +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior) +"afK" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -28 + }, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (EAST)"; + dir = 4 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"afL" = ( +/obj/structure/transit_tube/station/reverse/flipped{ + dir = 4 + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"afM" = ( +/turf/open/space, +/obj/machinery/porta_turret/syndicate{ + dir = 6 + }, +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) +"afN" = ( +/turf/open/space, +/obj/machinery/porta_turret/syndicate{ + dir = 10 + }, +/turf/closed/wall/mineral/plastitanium{ + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) +"afO" = ( +/obj/machinery/door/poddoor{ + id = "executionspaceblast"; + name = "blast door" + }, +/turf/open/floor/plating, +/area/security/transfer) +"afP" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/darkwarning{ + dir = 9 + }, +/area/security/transfer) +"afQ" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/flasher{ + id = "executionflash"; + pixel_x = 0; + pixel_y = 25 + }, +/turf/open/floor/plasteel/darkwarning{ + dir = 1 + }, +/area/security/transfer) +"afR" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/darkwarning{ + dir = 5 + }, +/area/security/transfer) +"afS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/security/transfer) +"afT" = ( +/obj/machinery/vending/cola, +/turf/open/floor/plasteel/black, +/area/security/prison) +"afU" = ( +/obj/machinery/door/window/westleft{ + base_state = "right"; + dir = 8; + icon_state = "right"; + name = "Unisex Showers"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"afV" = ( +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"afW" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat_interior) +"afX" = ( +/obj/machinery/computer/teleporter, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"afY" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior) +"afZ" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 2; + name = "MiniSat External Access"; + req_access = null; + req_access_txt = "65" + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat_interior) +"aga" = ( +/obj/structure/transit_tube, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"agb" = ( +/turf/open/floor/plasteel/darkwarning{ + dir = 8 + }, +/area/security/transfer) +"agc" = ( +/obj/structure/bed, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"agd" = ( +/obj/machinery/sparker{ + dir = 2; + id = "executionburn"; + pixel_x = 25 + }, +/turf/open/floor/plasteel/darkwarning{ + dir = 4 + }, +/area/security/transfer) +"age" = ( +/turf/closed/wall, +/area/security/prison) +"agf" = ( +/obj/machinery/door/poddoor/preopen{ + id = "permacell2"; + name = "cell blast door" + }, +/obj/machinery/door/airlock/glass{ + id_tag = "permabolt2"; + name = "Cell 2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault, +/area/security/prison) +"agg" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/closed/wall, +/area/security/prison) +"agh" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "permacell1"; + name = "cell blast door" + }, +/obj/machinery/door/airlock/glass{ + id_tag = "permabolt1"; + name = "Cell 1" + }, +/turf/open/floor/plasteel/vault, +/area/security/prison) +"agi" = ( +/obj/machinery/door/airlock{ + name = "Unisex Restroom"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"agj" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 32; + pixel_y = 0 + }, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = -32; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat_interior) +"agk" = ( +/obj/structure/window/reinforced/fulltile, +/obj/structure/transit_tube, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat_interior) +"agl" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/darkwarning{ + dir = 10 + }, +/area/security/transfer) +"agm" = ( +/turf/open/floor/plasteel/darkwarning{ + dir = 2 + }, +/area/security/transfer) +"agn" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 2 + }, +/turf/open/floor/plasteel/darkwarning{ + dir = 6 + }, +/area/security/transfer) +"ago" = ( +/obj/structure/bed, +/obj/machinery/camera{ + c_tag = "Permabrig Cell 2"; + network = list("SS13","Prison") + }, +/obj/item/device/radio/intercom{ + desc = "Talk through this. It looks like it has been modified to not broadcast."; + dir = 2; + name = "Prison Intercom (General)"; + pixel_x = 0; + pixel_y = 24; + prison_radio = 1 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"agp" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"agq" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/button/door{ + id = "permabolt2"; + name = "Cell Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 0; + pixel_y = 25; + req_access_txt = "0"; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/chair, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"agr" = ( +/obj/structure/bed, +/obj/machinery/camera{ + c_tag = "Permabrig Cell 1"; + network = list("SS13","Prison") + }, +/obj/item/device/radio/intercom{ + desc = "Talk through this. It looks like it has been modified to not broadcast."; + dir = 2; + name = "Prison Intercom (General)"; + pixel_x = 0; + pixel_y = 24; + prison_radio = 1 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"ags" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"agt" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/button/door{ + id = "permabolt1"; + name = "Cell Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 0; + pixel_y = 25; + req_access_txt = "0"; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/chair, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"agu" = ( +/obj/structure/sink{ + icon_state = "sink"; + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"agv" = ( +/obj/structure/grille, +/turf/open/space, +/area/space) +"agw" = ( +/turf/closed/wall, +/area/security/main) +"agx" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/main) +"agy" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 1; + name = "MiniSat External Access"; + req_access = null; + req_access_txt = "65" + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat_interior) +"agz" = ( +/obj/structure/transit_tube, +/turf/open/floor/plating/airless, +/area/space) +"agA" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "executionfireblast"; + layer = 2.9; + name = "blast door" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/security/transfer) +"agB" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "executionfireblast"; + layer = 2.9; + name = "blast door" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plating, +/area/security/transfer) +"agC" = ( +/obj/machinery/door/poddoor/preopen{ + id = "executionfireblast"; + layer = 2.9; + 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/transfer) +"agD" = ( +/obj/machinery/flasher{ + id = "PCell 2"; + pixel_x = -28 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"agE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"agF" = ( +/obj/structure/table, +/obj/item/weapon/paper{ + layer = 2.9 + }, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"agG" = ( +/obj/machinery/flasher{ + id = "PCell 1"; + pixel_x = -28 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"agH" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"agI" = ( +/obj/structure/toilet{ + dir = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"agJ" = ( +/obj/structure/closet/wardrobe/red, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"agK" = ( +/obj/structure/closet/secure_closet/security/sec, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"agL" = ( +/obj/structure/closet/secure_closet/security/sec, +/obj/machinery/camera{ + c_tag = "Brig Equipment Room"; + dir = 2 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = 29 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"agM" = ( +/obj/machinery/vending/security, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"agN" = ( +/obj/machinery/suit_storage_unit/security, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"agO" = ( +/obj/structure/lattice/catwalk, +/obj/structure/showcase{ + density = 0; + desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; + dir = 2; + icon = 'icons/mob/robots.dmi'; + icon_state = "robot_old"; + name = "Cyborg Statue"; + pixel_x = 0; + pixel_y = 20 + }, +/turf/open/space, +/area/space) +"agP" = ( +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/space) +"agQ" = ( +/obj/item/device/radio/intercom{ + freerange = 0; + frequency = 1459; + name = "Station Intercom (General)"; + pixel_x = -28; + pixel_y = 0 + }, +/obj/structure/table, +/obj/item/weapon/storage/backpack/dufflebag/sec{ + contents = newlist(/obj/item/weapon/scalpel,/obj/item/weapon/hemostat,/obj/item/weapon/retractor,/obj/item/weapon/cautery,/obj/item/weapon/circular_saw,/obj/item/weapon/surgical_drapes,/obj/item/clothing/mask/surgical); + desc = "A large dufflebag for holding extra supplies - this one has a material inlay with space for various sharp-looking tools."; + name = "dufflebag"; + pixel_y = 5 + }, +/obj/item/clothing/mask/balaclava, +/obj/item/device/mmi, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"agR" = ( +/obj/structure/table, +/obj/item/weapon/folder/red{ + pixel_x = 3 + }, +/obj/item/device/taperecorder{ + pixel_x = -3; + pixel_y = 0 + }, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"agS" = ( +/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/black, +/area/security/transfer) +"agT" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Long-Term Cell 2"; + req_access_txt = "2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"agU" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/closed/wall, +/area/security/prison) +"agV" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/closed/wall, +/area/security/prison) +"agW" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Long-Term Cell 1"; + req_access_txt = "2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"agX" = ( +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"agY" = ( +/obj/structure/transit_tube/crossing, +/turf/open/floor/plating/airless, +/area/space) +"agZ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/turf/open/floor/plating, +/area/security/transfer) +"aha" = ( +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/turf/open/floor/plating/warnplate{ + dir = 9 + }, +/area/security/transfer) +"ahb" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/security/transfer) +"ahc" = ( +/obj/structure/table, +/obj/item/device/flashlight/lamp, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"ahd" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"ahe" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/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/black, +/area/security/transfer) +"ahf" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/security/transfer) +"ahg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red, +/area/security/prison) +"ahh" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/button/flasher{ + id = "PCell 2"; + pixel_x = 5; + pixel_y = 24 + }, +/obj/machinery/button/door{ + id = "permacell2"; + name = "Cell 2 Lockdown"; + pixel_x = 4; + pixel_y = 34; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/prison) +"ahi" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/prison) +"ahj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/prison) +"ahk" = ( +/obj/machinery/camera{ + c_tag = "Brig Prison Hallway"; + network = list("SS13","Prison") + }, +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching Prison Wing holding areas."; + name = "Prison Monitor"; + network = list("Prison"); + pixel_x = 0; + pixel_y = 30 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/prison) +"ahl" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4"; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/button/flasher{ + id = "PCell 1"; + pixel_x = 5; + pixel_y = 24 + }, +/obj/machinery/button/door{ + id = "permacell1"; + name = "Cell 1 Lockdown"; + pixel_x = 4; + pixel_y = 34; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/prison) +"ahm" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/prison) +"ahn" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/prison) +"aho" = ( +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 1; + name = "Prison Wing APC"; + pixel_x = 1; + pixel_y = 24 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/prison) +"ahp" = ( +/obj/structure/table, +/obj/item/weapon/melee/chainofcommand, +/turf/open/floor/plasteel/red, +/area/security/prison) +"ahq" = ( +/turf/closed/wall/r_wall, +/area/security/armory) +"ahr" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"ahs" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"aht" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"ahu" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"ahv" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"ahw" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/security/transfer) +"ahx" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/obj/item/weapon/wrench, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plating, +/area/security/transfer) +"ahy" = ( +/obj/structure/rack, +/obj/item/weapon/tank/internals/anesthetic{ + pixel_x = -3; + pixel_y = 1 + }, +/obj/item/weapon/tank/internals/oxygen/red{ + pixel_x = 3 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/transfer) +"ahz" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4"; + tag = "" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"ahA" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"ahB" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + aiControlDisabled = 0; + icon_state = "door_closed"; + id_tag = null; + locked = 0; + name = "Prisoner Transfer Centre"; + req_access = null; + req_access_txt = "2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"ahC" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/prison) +"ahD" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"ahE" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"ahF" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"ahG" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8"; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/security/prison) +"ahH" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8; + initialize_directions = 11 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"ahI" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"ahJ" = ( +/turf/open/floor/plasteel, +/area/security/prison) +"ahK" = ( +/obj/structure/table, +/obj/item/weapon/razor{ + pixel_x = -6 + }, +/obj/item/device/assembly/signaler{ + pixel_x = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0 + }, +/turf/open/floor/plasteel/red, +/area/security/prison) +"ahL" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/chemimp{ + pixel_x = 6 + }, +/obj/item/weapon/storage/box/trackimp{ + pixel_x = -3 + }, +/turf/open/floor/plasteel/black, +/area/security/armory) +"ahM" = ( +/obj/structure/closet/secure_closet{ + anchored = 1; + name = "Contraband Locker"; + req_access_txt = "3" + }, +/obj/item/weapon/book/codex_gigas, +/obj/item/weapon/poster/contraband, +/obj/item/weapon/grenade/smokebomb, +/turf/open/floor/plasteel/black, +/area/security/armory) +"ahN" = ( +/obj/structure/closet/secure_closet/lethalshots, +/obj/machinery/camera/motion{ + c_tag = "Armory Motion Sensor"; + dir = 2; + name = "motion-sensitive security camera" + }, +/turf/open/floor/plasteel/black, +/area/security/armory) +"ahO" = ( +/obj/vehicle/secway, +/turf/open/floor/plasteel/black, +/area/security/armory) +"ahP" = ( +/obj/item/weapon/grenade/barrier{ + pixel_x = 4 + }, +/obj/item/weapon/grenade/barrier, +/obj/item/weapon/grenade/barrier{ + pixel_x = -4 + }, +/obj/structure/table, +/turf/open/floor/plasteel/black, +/area/security/armory) +"ahQ" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"ahR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"ahS" = ( +/obj/vehicle/secway, +/obj/item/key/security, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"ahT" = ( +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"ahU" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"ahV" = ( +/turf/closed/wall, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"ahW" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/turf/open/floor/plating/warnplate{ + dir = 10 + }, +/area/security/transfer) +"ahX" = ( +/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" + }, +/turf/open/floor/plating/warnplate, +/area/security/transfer) +"ahY" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"ahZ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + icon_state = "intact"; + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"aia" = ( +/obj/machinery/light_switch{ + pixel_x = 25; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"aib" = ( +/turf/closed/wall/r_wall, +/area/security/transfer) +"aic" = ( +/turf/open/floor/plasteel/red, +/area/security/prison) +"aid" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/prison) +"aie" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/prison) +"aif" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/prison) +"aig" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/prison) +"aih" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/prison) +"aii" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/prison) +"aij" = ( +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/prison) +"aik" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/prison) +"ail" = ( +/obj/structure/table, +/obj/item/device/electropack, +/turf/open/floor/plasteel/red, +/area/security/prison) +"aim" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/flashbangs{ + pixel_x = 6; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/flashbangs{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/storage/lockbox/loyalty{ + layer = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/armory) +"ain" = ( +/turf/open/floor/plasteel/black, +/area/security/armory) +"aio" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4"; + tag = "" + }, +/turf/open/floor/plasteel/black, +/area/security/armory) +"aip" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/firingpins, +/obj/item/weapon/storage/box/firingpins, +/obj/item/key/security, +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 4; + name = "Armory APC"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plasteel/black, +/area/security/armory) +"aiq" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + name = "Equipment Room"; + req_access = null; + req_access_txt = "1" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/delivery, +/area/security/main) +"air" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + name = "Equipment Room"; + req_access = null; + req_access_txt = "1" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/delivery, +/area/security/main) +"ais" = ( +/turf/closed/wall, +/area/security/hos) +"ait" = ( +/turf/closed/wall, +/area/maintenance/fsmaint) +"aiu" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"aiv" = ( +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"aiw" = ( +/obj/structure/table, +/obj/structure/bedsheetbin, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"aix" = ( +/obj/structure/sink/kitchen{ + pixel_y = 28 + }, +/obj/item/weapon/reagent_containers/glass/beaker, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"aiy" = ( +/obj/structure/table, +/obj/item/device/flashlight/lamp, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"aiz" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/bodybags, +/obj/item/weapon/pen, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23; + pixel_y = 0 + }, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"aiA" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4"; + tag = "" + }, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"aiB" = ( +/obj/structure/closet/secure_closet/injection, +/obj/machinery/power/apc{ + dir = 4; + name = "Prisoner Transfer Centre"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"aiC" = ( +/obj/structure/closet/secure_closet/brig{ + anchored = 1 + }, +/turf/open/floor/plasteel/black, +/area/security/prison) +"aiD" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_security{ + name = "Prison Wing"; + req_access_txt = "1" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/red, +/area/security/prison) +"aiE" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/cable, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/prison) +"aiF" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/glass_security{ + name = "Prison Wing"; + req_access_txt = "1" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red, +/area/security/prison) +"aiG" = ( +/obj/structure/rack, +/obj/item/weapon/gun/energy/ionrifle, +/obj/item/weapon/gun/energy/temperature/security, +/obj/item/clothing/suit/armor/laserproof, +/obj/machinery/light{ + dir = 8; + icon_state = "tube1"; + pixel_x = 0 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23; + pixel_y = 0 + }, +/turf/open/floor/plasteel/black, +/area/security/armory) +"aiH" = ( +/obj/structure/rack, +/obj/item/clothing/suit/armor/riot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/suit/armor/riot, +/obj/item/clothing/suit/armor/riot{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/clothing/head/helmet/riot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/head/helmet/riot, +/obj/item/clothing/head/helmet/riot{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/weapon/shield/riot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/shield/riot, +/obj/item/weapon/shield/riot{ + pixel_x = 3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/black, +/area/security/armory) +"aiI" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/area/security/armory) +"aiJ" = ( +/obj/structure/rack, +/obj/item/weapon/storage/box/rubbershot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/rubbershot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/rubbershot, +/obj/item/weapon/storage/box/rubbershot, +/obj/item/weapon/storage/box/rubbershot{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/weapon/storage/box/rubbershot{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/structure/sign/nosmoking_2{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/black, +/area/security/armory) +"aiK" = ( +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/red, +/area/security/main) +"aiL" = ( +/obj/structure/filingcabinet, +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + pixel_x = 0; + pixel_y = 30 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/main) +"aiM" = ( +/obj/structure/table, +/obj/item/weapon/storage/fancy/donut_box{ + pixel_y = 2 + }, +/obj/structure/noticeboard{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/main) +"aiN" = ( +/obj/structure/table, +/obj/structure/sign/goldenplaque{ + pixel_y = 32 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/weapon/storage/box/handcuffs{ + pixel_x = 1; + pixel_y = 3 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/main) +"aiO" = ( +/obj/machinery/vending/coffee, +/obj/machinery/status_display{ + density = 0; + layer = 4; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/main) +"aiP" = ( +/obj/machinery/photocopier, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/main) +"aiQ" = ( +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/red, +/area/security/main) +"aiR" = ( +/obj/item/weapon/reagent_containers/food/snacks/donut, +/turf/open/floor/plating, +/area/security/hos) +"aiS" = ( +/obj/structure/table, +/obj/machinery/chem_dispenser/drinks/beer, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"aiT" = ( +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fsmaint) +"aiU" = ( +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"aiV" = ( +/obj/machinery/vending/boozeomat{ + products = list(/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey = 1, /obj/item/weapon/reagent_containers/food/drinks/bottle/absinthe = 1, /obj/item/weapon/reagent_containers/food/drinks/bottle/limejuice = 1, /obj/item/weapon/reagent_containers/food/drinks/bottle/cream = 1, /obj/item/weapon/reagent_containers/food/drinks/soda_cans/tonic = 1, /obj/item/weapon/reagent_containers/food/drinks/drinkingglass = 10, /obj/item/weapon/reagent_containers/food/drinks/ice = 3, /obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass = 6, /obj/item/weapon/reagent_containers/food/drinks/flask = 1); + req_access_txt = "0" + }, +/turf/open/floor/plasteel/bar, +/area/maintenance/fsmaint) +"aiW" = ( +/obj/item/weapon/storage/box/mousetraps, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"aiX" = ( +/obj/structure/chair/stool, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"aiY" = ( +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"aiZ" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/obj/structure/sign/poster{ + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"aja" = ( +/obj/machinery/atmospherics/components/unary/tank/oxygen, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"ajb" = ( +/obj/machinery/atmospherics/components/unary/tank/nitrogen, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"ajc" = ( +/turf/closed/wall, +/area/security/processing{ + name = "Crematorium" + }) +"ajd" = ( +/obj/machinery/door/airlock/security{ + aiControlDisabled = 0; + icon_state = "closed"; + id_tag = null; + locked = 0; + name = "Crematorium"; + req_access = null; + req_access_txt = "2;27"; + req_one_access_txt = "0" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/turf/open/floor/plasteel/black, +/area/security/processing{ + name = "Crematorium" + }) +"aje" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "Prison Gate"; + name = "prison blast door" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/security/brig) +"ajf" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "Prison Gate"; + name = "prison blast door" + }, +/obj/structure/cable{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/security/brig) +"ajg" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "Prison Gate"; + name = "prison blast door" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/security/brig) +"ajh" = ( +/turf/closed/wall, +/area/security/brig) +"aji" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/brig) +"ajj" = ( +/obj/structure/closet{ + name = "Evidence Closet" + }, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (NORTHEAST)"; + dir = 5 + }, +/area/security/brig) +"ajk" = ( +/obj/structure/rack, +/obj/item/weapon/gun/energy/e_gun{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/gun/energy/e_gun, +/obj/item/weapon/gun/energy/e_gun{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/security/armory) +"ajl" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/security/armory) +"ajm" = ( +/obj/structure/rack, +/obj/item/clothing/suit/armor/bulletproof{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/suit/armor/bulletproof{ + pixel_y = 0 + }, +/obj/item/clothing/suit/armor/bulletproof{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/clothing/head/helmet/alt{ + layer = 3.00001; + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/head/helmet/alt{ + layer = 3.00001 + }, +/obj/item/clothing/head/helmet/alt{ + layer = 3.00001; + pixel_x = 3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/black, +/area/security/armory) +"ajn" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/security/armory) +"ajo" = ( +/obj/structure/rack, +/obj/item/weapon/gun/energy/laser{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/gun/energy/laser, +/obj/item/weapon/gun/energy/laser{ + pixel_x = 3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/black, +/area/security/armory) +"ajp" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/power/apc{ + dir = 8; + name = "Security Office APC"; + pixel_x = -24; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/main) +"ajq" = ( +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/turf/open/floor/plasteel, +/area/security/main) +"ajr" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/turf/open/floor/plasteel, +/area/security/main) +"ajs" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/main) +"ajt" = ( +/obj/machinery/suit_storage_unit/hos, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/black, +/area/security/hos) +"aju" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/obj/structure/sign/atmosplaque{ + desc = "An embossed piece of paper from the University of Nanotrasen at Portpoint."; + icon_state = "kiddieplaque"; + name = "\improper 'Diploma' frame"; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plasteel/black, +/area/security/hos) +"ajv" = ( +/obj/structure/table/wood, +/obj/machinery/recharger, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/status_display{ + density = 0; + layer = 4; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plasteel/black, +/area/security/hos) +"ajw" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/box/seccarts{ + pixel_x = 3; + pixel_y = 2 + }, +/obj/item/weapon/storage/box/deputy, +/obj/machinery/newscaster/security_unit{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/black, +/area/security/hos) +"ajx" = ( +/obj/structure/closet/secure_closet/hos, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Head of Security's Desk"; + departmentType = 5; + name = "Head of Security RC"; + pixel_x = 0; + pixel_y = 30 + }, +/turf/open/floor/plasteel/black, +/area/security/hos) +"ajy" = ( +/obj/structure/mineral_door/wood, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"ajz" = ( +/obj/effect/decal/cleanable/oil{ + icon_state = "floor5" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"ajA" = ( +/obj/item/weapon/cigbutt/cigarbutt, +/obj/structure/sign/poster{ + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fsmaint) +"ajB" = ( +/obj/machinery/door/poddoor/shutters{ + id = "supplybridge" + }, +/turf/open/floor/plating/warnplate{ + dir = 9 + }, +/area/maintenance/fsmaint) +"ajC" = ( +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/table/glass, +/obj/item/weapon/gun/medbeam, +/turf/open/floor/plating/abductor, +/area/shuttle/abandoned) +"ajD" = ( +/obj/machinery/door/poddoor/shutters{ + id = "supplybridge" + }, +/turf/open/floor/plating/warnplate{ + dir = 5 + }, +/area/maintenance/fsmaint) +"ajE" = ( +/obj/machinery/washing_machine, +/obj/item/device/radio/intercom{ + dir = 4; + name = "Station Intercom (General)"; + pixel_x = -31 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"ajF" = ( +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"ajG" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/obj/machinery/button/door{ + id = "mainthideout"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 25; + pixel_y = 0; + req_access_txt = "0"; + specialfunctions = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"ajH" = ( +/obj/machinery/atmospherics/components/trinary/mixer/flipped{ + dir = 1; + node1_concentration = 0.2; + node2_concentration = 0.8; + on = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"ajI" = ( +/obj/machinery/atmospherics/pipe/manifold/general/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"ajJ" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 9 + }, +/obj/machinery/meter, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"ajK" = ( +/obj/structure/bodycontainer/crematorium, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = -27 + }, +/turf/open/floor/plasteel/black, +/area/security/processing{ + name = "Crematorium" + }) +"ajL" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4"; + tag = "" + }, +/turf/open/floor/plasteel/black, +/area/security/processing{ + name = "Crematorium" + }) +"ajM" = ( +/obj/machinery/button/crematorium{ + pixel_x = 25 + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Crematorium APC"; + pixel_x = 0; + pixel_y = 24 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plasteel/black, +/area/security/processing{ + name = "Crematorium" + }) +"ajN" = ( +/turf/closed/wall/r_wall, +/area/security/brig) +"ajO" = ( +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/mask/surgical, +/obj/item/weapon/reagent_containers/spray/cleaner, +/obj/structure/table/glass, +/turf/open/floor/plasteel/whitered/side{ + dir = 9 + }, +/area/security/brig) +"ajP" = ( +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/firstaid/regular, +/obj/structure/table/glass, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/whitered/side{ + dir = 1 + }, +/area/security/brig) +"ajQ" = ( +/obj/item/device/radio/intercom{ + freerange = 0; + frequency = 1459; + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = 24 + }, +/obj/structure/table/glass, +/obj/machinery/computer/med_data/laptop, +/turf/open/floor/plasteel/whitered/side{ + dir = 1 + }, +/area/security/brig) +"ajR" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/iv_drip{ + density = 0 + }, +/turf/open/floor/plasteel/whitered/side{ + dir = 5 + }, +/area/security/brig) +"ajS" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/brig) +"ajT" = ( +/obj/structure/cable{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"ajU" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"ajV" = ( +/obj/machinery/door/airlock/security{ + name = "Evidence Room"; + req_access_txt = "63" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/red, +/area/security/brig) +"ajW" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"ajX" = ( +/obj/structure/closet{ + name = "Evidence Closet" + }, +/obj/machinery/camera{ + c_tag = "Brig Evidence Room"; + dir = 8 + }, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (EAST)"; + dir = 4 + }, +/area/security/brig) +"ajY" = ( +/obj/structure/rack, +/obj/item/weapon/gun/energy/e_gun/advtaser{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/gun/energy/e_gun/advtaser, +/obj/item/weapon/gun/energy/e_gun/advtaser{ + pixel_x = 3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/black, +/area/security/armory) +"ajZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/security/armory) +"aka" = ( +/obj/effect/landmark/event_spawn, +/mob/living/simple_animal/bot/secbot{ + arrest_type = 1; + health = 45; + icon_state = "secbot1"; + idcheck = 1; + name = "Sergeant-at-Armsky"; + on = 1; + weaponscheck = 1 + }, +/turf/open/floor/plasteel/black, +/area/security/armory) +"akb" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/black, +/area/security/armory) +"akc" = ( +/obj/structure/rack, +/obj/item/weapon/gun/ballistic/shotgun/riot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/gun/ballistic/shotgun/riot, +/obj/item/weapon/gun/ballistic/shotgun/riot{ + pixel_x = 3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/black, +/area/security/armory) +"akd" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/main) +"ake" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/main) +"akf" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plasteel/black, +/area/security/main) +"akg" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating, +/area/security/hos) +"akh" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8"; + tag = "" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/darkred/corner, +/area/security/hos) +"aki" = ( +/turf/open/floor/plasteel/darkred/side, +/area/security/hos) +"akj" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/darkred/side, +/area/security/hos) +"akk" = ( +/obj/machinery/keycard_auth{ + pixel_x = 28; + pixel_y = 28 + }, +/turf/open/floor/plasteel/darkred/side, +/area/security/hos) +"akl" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/turf/open/floor/plating, +/area/security/hos) +"akm" = ( +/obj/structure/table, +/obj/item/weapon/lighter, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"akn" = ( +/obj/structure/table, +/obj/item/weapon/storage/fancy/cigarettes/cigars, +/obj/item/stack/spacecash/c20, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"ako" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/drinks/bottle/gin{ + pixel_y = 8 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass, +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"akp" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/obj/item/weapon/cigbutt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"akq" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/maintenance/fsmaint) +"akr" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/glass{ + name = "space-bridge access" + }, +/obj/machinery/button/door{ + id = "supplybridge"; + name = "Space Bridge Control"; + pixel_x = 0; + pixel_y = 27; + req_access_txt = "0" + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/maintenance/fsmaint) +"aks" = ( +/obj/structure/chair, +/turf/open/floor/plating/abductor, +/area/shuttle/abandoned) +"akt" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"aku" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"akv" = ( +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/table/glass, +/obj/machinery/recharger, +/obj/item/weapon/gun/energy/laser/retro, +/turf/open/floor/plating/abductor, +/area/shuttle/abandoned) +"akw" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"akx" = ( +/obj/machinery/door/airlock{ + id_tag = "mainthideout"; + name = "Hideout" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"aky" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/obj/item/weapon/wrench, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"akz" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"akA" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"akB" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/turf/open/floor/plasteel/black, +/area/security/processing{ + name = "Crematorium" + }) +"akC" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/turf/open/floor/plasteel/black, +/area/security/processing{ + name = "Crematorium" + }) +"akD" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Brig Crematorium"; + dir = 8; + network = list("SS13") + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/security/processing{ + name = "Crematorium" + }) +"akE" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/security/brig) +"akF" = ( +/obj/item/weapon/storage/box/bodybags, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27; + pixel_y = 0 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/structure/table/glass, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/obj/item/weapon/reagent_containers/syringe{ + name = "steel point" + }, +/obj/item/weapon/reagent_containers/glass/bottle/charcoal, +/obj/item/weapon/reagent_containers/glass/bottle/epinephrine, +/turf/open/floor/plasteel/whitered/side{ + dir = 10 + }, +/area/security/brig) +"akG" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/whitered/corner{ + tag = "icon-whiteredcorner (WEST)"; + dir = 8 + }, +/area/security/brig) +"akH" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/security/brig) +"akI" = ( +/obj/machinery/door/window/westleft{ + base_state = "left"; + dir = 4; + icon_state = "left"; + name = "Brig Infirmary"; + req_access_txt = "0" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/whitered/side{ + dir = 4 + }, +/area/security/brig) +"akJ" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"akK" = ( +/obj/structure/cable{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"akL" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/brig) +"akM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/security/brig) +"akN" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/security/brig) +"akO" = ( +/obj/structure/closet{ + name = "Evidence Closet" + }, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/brig) +"akP" = ( +/obj/machinery/flasher/portable, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/armory) +"akQ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/main) +"akR" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp/green{ + pixel_x = -4; + pixel_y = 12 + }, +/obj/item/weapon/pen, +/obj/item/weapon/folder/red{ + layer = 2.9; + pixel_x = 8 + }, +/turf/open/floor/plasteel, +/area/security/main) +"akS" = ( +/obj/machinery/computer/secure_data, +/turf/open/floor/plasteel, +/area/security/main) +"akT" = ( +/turf/open/floor/plasteel, +/area/security/main) +"akU" = ( +/obj/machinery/computer/security, +/turf/open/floor/plasteel, +/area/security/main) +"akV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/main) +"akW" = ( +/turf/open/floor/plasteel/black, +/area/security/main) +"akX" = ( +/obj/structure/cable{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/black, +/area/security/hos) +"akY" = ( +/turf/open/floor/carpet, +/area/security/hos) +"akZ" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet, +/area/security/hos) +"ala" = ( +/obj/structure/table/wood, +/obj/item/weapon/folder/red, +/obj/item/weapon/stamp/hos, +/turf/open/floor/carpet, +/area/security/hos) +"alb" = ( +/obj/machinery/computer/secure_data, +/turf/open/floor/carpet, +/area/security/hos) +"alc" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/security/hos) +"ald" = ( +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fsmaint) +"ale" = ( +/obj/structure/chair/stool/bar, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/maintenance/fsmaint) +"alf" = ( +/obj/effect/landmark{ + name = "blobstart" + }, +/obj/structure/chair/stool/bar, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"alg" = ( +/obj/structure/chair/stool/bar, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"alh" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"ali" = ( +/obj/machinery/door/poddoor/shutters{ + id = "supplybridge" + }, +/turf/open/floor/plating/warnplate{ + dir = 10 + }, +/area/maintenance/fsmaint) +"alj" = ( +/obj/machinery/door/poddoor/shutters{ + id = "supplybridge" + }, +/turf/open/floor/plating/warnplate, +/area/maintenance/fsmaint) +"alk" = ( +/obj/machinery/door/poddoor/shutters{ + id = "supplybridge" + }, +/turf/open/floor/plating/warnplate{ + dir = 6 + }, +/area/maintenance/fsmaint) +"all" = ( +/obj/docking_port/stationary{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 24; + id = "syndicate_ne"; + name = "northeast of station"; + turf_type = /turf/open/space; + width = 18 + }, +/turf/open/space, +/area/space) +"alm" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"aln" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"alo" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"alp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4"; + tag = "" + }, +/turf/open/floor/plasteel/black, +/area/security/processing{ + name = "Crematorium" + }) +"alq" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/black, +/area/security/processing{ + name = "Crematorium" + }) +"alr" = ( +/obj/structure/bodycontainer/morgue, +/obj/machinery/camera{ + c_tag = "Brig Infirmary"; + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"als" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1 + }, +/turf/open/floor/plasteel/whitered/side{ + dir = 8 + }, +/area/security/brig) +"alt" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/security/brig) +"alu" = ( +/obj/machinery/door/window/westleft{ + base_state = "right"; + dir = 4; + icon_state = "right"; + name = "Brig Infirmary"; + req_access_txt = "0" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel/whitered/side{ + dir = 4 + }, +/area/security/brig) +"alv" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"alw" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"alx" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + cell_type = 10000; + dir = 4; + name = "Brig APC"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/brig) +"aly" = ( +/turf/closed/wall/r_wall, +/area/security/warden) +"alz" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/warden) +"alA" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/window/southleft{ + base_state = "right"; + icon_state = "right"; + name = "Armory"; + req_access_txt = "3" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault, +/area/security/warden) +"alB" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/warden) +"alC" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/window/southleft{ + base_state = "right"; + icon_state = "right"; + name = "Armory"; + req_access_txt = "3" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/vault, +/area/security/warden) +"alD" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/closed/wall/r_wall, +/area/security/warden) +"alE" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Security Office"; + dir = 4; + network = list("SS13") + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/obj/item/device/radio/intercom{ + dir = 4; + name = "Station Intercom (General)"; + pixel_x = -31 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/main) +"alF" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"alG" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"alH" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/main) +"alI" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"alJ" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/main) +"alK" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/main) +"alL" = ( +/obj/machinery/door/airlock/glass_command{ + name = "Head of Security"; + req_access_txt = "58" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/hos) +"alM" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8"; + tag = "" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/black, +/area/security/hos) +"alN" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Head of Security" + }, +/turf/open/floor/carpet, +/area/security/hos) +"alO" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/carpet, +/area/security/hos) +"alP" = ( +/obj/structure/table/wood, +/obj/item/weapon/book/manual/wiki/security_space_law, +/turf/open/floor/carpet, +/area/security/hos) +"alQ" = ( +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/security/hos) +"alR" = ( +/obj/machinery/computer/security, +/turf/open/floor/carpet, +/area/security/hos) +"alS" = ( +/obj/item/weapon/cigbutt/roach, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"alT" = ( +/turf/open/floor/wood{ + broken = 1; + icon_state = "wood-broken"; + tag = "icon-wood-broken" + }, +/area/maintenance/fsmaint) +"alU" = ( +/obj/effect/decal/cleanable/oil{ + icon_state = "floor6" + }, +/turf/open/floor/wood{ + icon_state = "wood-broken4" + }, +/area/maintenance/fsmaint) +"alV" = ( +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics Maintenance"; + req_access_txt = "12;24" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"alW" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Crematorium Maintenance"; + req_access_txt = "0"; + req_one_access_txt = "2;27" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/security/processing{ + name = "Crematorium" + }) +"alX" = ( +/obj/machinery/door/window/eastright{ + base_state = "left"; + dir = 1; + icon_state = "left"; + name = "Security Delivery"; + req_access_txt = "1" + }, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=4"; + dir = 1; + freq = 1400; + location = "Security" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/processing{ + name = "Crematorium" + }) +"alY" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"alZ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/whitered/side{ + dir = 10 + }, +/area/security/brig) +"ama" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitered/side, +/area/security/brig) +"amb" = ( +/obj/structure/closet/crate/freezer, +/obj/structure/window/reinforced{ + dir = 4; + layer = 2.9 + }, +/obj/item/weapon/reagent_containers/blood/OMinus, +/obj/item/weapon/reagent_containers/blood/OMinus, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitered/side{ + dir = 6 + }, +/area/security/brig) +"amc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/brig) +"amd" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"ame" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/brig) +"amf" = ( +/obj/structure/closet/secure_closet/warden, +/obj/item/clothing/mask/gas/sechailer, +/obj/machinery/power/apc{ + dir = 8; + name = "Brig Control APC"; + pixel_x = -24; + pixel_y = 0 + }, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/obj/structure/reagent_dispensers/peppertank{ + pixel_y = 30 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"amg" = ( +/obj/machinery/computer/prisoner, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"amh" = ( +/obj/machinery/computer/security, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Brig Control Room"; + dir = 2 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"ami" = ( +/obj/machinery/computer/secure_data, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"amj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"amk" = ( +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"aml" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"amm" = ( +/obj/structure/table, +/obj/machinery/recharger, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"amn" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/turf/closed/wall/r_wall, +/area/security/warden) +"amo" = ( +/obj/structure/shuttle/engine/propulsion/burst{ + tag = "icon-propulsion (WEST)"; + icon_state = "propulsion"; + dir = 8 + }, +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"amp" = ( +/obj/structure/table/wood, +/obj/machinery/recharger, +/turf/open/floor/plasteel, +/area/security/main) +"amq" = ( +/obj/structure/table/wood, +/obj/machinery/recharger, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/security/main) +"amr" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/main) +"ams" = ( +/obj/structure/cable{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/area/security/hos) +"amt" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/turf/open/floor/carpet, +/area/security/hos) +"amu" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/security/hos) +"amv" = ( +/obj/structure/table/wood, +/obj/item/weapon/phone, +/turf/open/floor/carpet, +/area/security/hos) +"amw" = ( +/obj/machinery/computer/card/minor/hos, +/turf/open/floor/carpet, +/area/security/hos) +"amx" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Pete's Speakeasy"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"amy" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/pod_1) +"amz" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/pod_1) +"amA" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/robot_debris{ + icon_state = "gib6" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"amB" = ( +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"amC" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4"; + tag = "" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"amD" = ( +/obj/item/weapon/wirecutters, +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"amE" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"amF" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"amG" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/closed/wall, +/area/security/processing{ + name = "Crematorium" + }) +"amH" = ( +/obj/structure/plasticflaps{ + opacity = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/processing{ + name = "Crematorium" + }) +"amI" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Brig Infirmary Maintenance"; + req_access_txt = "63"; + req_one_access_txt = "0" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/security/brig) +"amJ" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/sign/map{ + icon_state = "map-pubby"; + pixel_x = -32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/brig) +"amK" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"amL" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/brig) +"amM" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/grille, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/warden) +"amN" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"amO" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"amP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"amQ" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"amR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"amS" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"amT" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"amU" = ( +/obj/structure/table, +/obj/machinery/recharger, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"amV" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/cable, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plating, +/area/security/warden) +"amW" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/security/main) +"amX" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/turf/open/floor/plasteel, +/area/security/main) +"amY" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/turf/open/floor/plasteel, +/area/security/main) +"amZ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/main) +"ana" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/main) +"anb" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/hos) +"anc" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/turf/open/floor/plasteel/darkred/corner{ + tag = "icon-darkredcorners (EAST)"; + dir = 4 + }, +/area/security/hos) +"and" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTH)"; + dir = 1 + }, +/area/security/hos) +"ane" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTH)"; + dir = 1 + }, +/area/security/hos) +"anf" = ( +/obj/machinery/light, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/camera{ + c_tag = "Head of Security's Office"; + dir = 1; + network = list("SS13") + }, +/obj/item/device/radio/intercom{ + dir = 4; + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = -27 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTH)"; + dir = 1 + }, +/area/security/hos) +"ang" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + dir = 2; + name = "Head of Security's Office APC"; + pixel_x = 0; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTH)"; + dir = 1 + }, +/area/security/hos) +"anh" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/security/hos) +"ani" = ( +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"anj" = ( +/obj/structure/closet/emcloset, +/obj/item/device/camera, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"ank" = ( +/obj/machinery/computer/shuttle/monastery_shuttle, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_1) +"anl" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"anm" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"ann" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"ano" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"anp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"anq" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"anr" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"ans" = ( +/obj/machinery/computer/security{ + name = "Labor Camp Monitoring"; + network = list("Labor") + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"ant" = ( +/obj/machinery/computer/shuttle/labor, +/turf/open/floor/plasteel/black, +/area/security/brig) +"anu" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/brig) +"anv" = ( +/turf/open/floor/plasteel, +/area/security/brig) +"anw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/brig) +"anx" = ( +/obj/structure/bed/dogbed, +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + pixel_x = -32; + pixel_y = 0 + }, +/mob/living/simple_animal/pet/dog/pug{ + name = "McGriff" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"any" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"anz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"anA" = ( +/obj/machinery/door/airlock/security{ + name = "Brig Control"; + req_access_txt = "3" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"anB" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/main) +"anC" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel, +/area/security/main) +"anD" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel, +/area/security/main) +"anE" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"anF" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 4; + icon_state = "pipe-j2s"; + sortType = 8 + }, +/turf/open/floor/plasteel, +/area/security/main) +"anG" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/main) +"anH" = ( +/turf/closed/wall, +/area/maintenance/fore) +"anI" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"anJ" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"anK" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/status_display{ + density = 0; + layer = 3; + pixel_x = -32; + pixel_y = 0 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_1) +"anL" = ( +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_1) +"anM" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/status_display{ + density = 0; + layer = 3; + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_1) +"anN" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"anO" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"anP" = ( +/obj/structure/chair/stool, +/obj/item/trash/raisins, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"anQ" = ( +/obj/structure/table, +/obj/item/weapon/paper, +/obj/item/weapon/pen, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"anR" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/obj/machinery/camera{ + c_tag = "Brig Gulag Teleporter"; + dir = 4 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/table, +/obj/item/weapon/storage/box/prisoner, +/obj/item/weapon/razor{ + pixel_x = -6 + }, +/obj/item/weapon/paper{ + desc = ""; + info = "Labor Camp Facility Operation Guide

Hello there, proud operator of an NT-Sec Prisoner Rehabilitation Center. A solution to rising crime rates and falling productivity, these facilities are specifically designed for the safe, productive imprisonment of your most dangerous criminals.

To press a long-term prisoner into the service of the station, replace his equipment with prisoners' garb at one of the prison lockers, as per normal operating procedure. Before assigning a prisoner his ID, insert the ID into a prisoner management console and assign the prisoner a quota, based on the severity of his crime.
A single sheet of most materials produces five points for the prisoner, and points can be expected to be produced at a rate of about 100 per minute, though punishments as severe as forced labor should be reserved for serious crimes of sentences not less than five minutes long.
Once you have prepared the prisoner, place him in the secure northern half of the labor shuttle, and send him to the station. Once he meets his quota by feeding sheets to the stacker, he will be allowed to return to the station, and will be able to open the secure door to the prisoner release area.

In the case of dangerous prisoners, surveilance may be needed. To that end, there is a prisoner monitoring room on the mining station, equipped with a remote flasher and a lockdown button. The mine itself is patrolled by a securibot, so the nearby security records console can also be used to secure hostile prisoners on the mine."; + name = "Labor Camp Operating Guide" + }, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/black, +/area/security/brig) +"anS" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"anT" = ( +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/warden) +"anU" = ( +/obj/item/weapon/book/manual/wiki/security_space_law, +/obj/item/clothing/ears/earmuffs, +/obj/item/clothing/glasses/sunglasses, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"anV" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "Secure Gate"; + name = "Entrance Lockdown"; + pixel_x = 5; + pixel_y = -2; + req_access_txt = "0" + }, +/obj/machinery/button/door{ + id = "Prison Gate"; + name = "Permabrig Lockdown"; + pixel_x = 5; + pixel_y = 8; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"anW" = ( +/obj/structure/chair/office/dark, +/obj/effect/landmark/start{ + name = "Warden" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"anX" = ( +/obj/item/device/radio/intercom{ + dir = 4; + name = "Station Intercom (General)"; + pixel_x = 0 + }, +/obj/structure/table/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"anY" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"anZ" = ( +/obj/structure/rack, +/obj/item/weapon/crowbar, +/obj/item/weapon/wrench, +/obj/item/device/laser_pointer/red, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"aoa" = ( +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"aob" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/cable, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/warden) +"aoc" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel/red, +/area/security/main) +"aod" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"aoe" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side, +/area/security/main) +"aof" = ( +/obj/structure/disposalpipe/sortjunction{ + dir = 1; + icon_state = "pipe-j2s"; + sortType = 7 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/security/main) +"aog" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side, +/area/security/main) +"aoh" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side, +/area/security/main) +"aoi" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 32; + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/red, +/area/security/main) +"aoj" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/security{ + name = "Security Access"; + req_access = null; + req_access_txt = "1" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aok" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aol" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Fore Maintenance APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aom" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aon" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8"; + tag = "" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aoo" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 0; + name = "Security External Airlock"; + req_access_txt = "63" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aop" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aoq" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 8; + name = "Security External Airlock"; + req_access_txt = "63" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aor" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/item/clothing/mask/cigarette, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"aos" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"aot" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9; + pixel_y = 0 + }, +/obj/item/device/camera_film, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/fsmaint) +"aou" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_1) +"aov" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_1) +"aow" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"aox" = ( +/mob/living/simple_animal/mouse/gray, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"aoy" = ( +/obj/structure/closet/firecloset, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"aoz" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/labor) +"aoA" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/labor) +"aoB" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/brig) +"aoC" = ( +/obj/machinery/computer/gulag_teleporter_computer, +/turf/open/floor/plasteel/black, +/area/security/brig) +"aoD" = ( +/obj/machinery/gulag_teleporter, +/turf/open/floor/plasteel/black, +/area/security/brig) +"aoE" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aoF" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/turf/closed/wall/r_wall, +/area/security/warden) +"aoG" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/warden) +"aoH" = ( +/obj/structure/table/reinforced, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 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/weapon/paper_bin{ + layer = 2.9; + pixel_x = 0; + pixel_y = 0 + }, +/obj/item/weapon/pen{ + pixel_x = 4; + pixel_y = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"aoI" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/security/warden) +"aoJ" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Brig Control"; + req_access_txt = "3" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"aoK" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/closed/wall/r_wall, +/area/security/warden) +"aoL" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/closed/wall/r_wall, +/area/security/warden) +"aoM" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + name = "Security Office"; + req_access = null; + req_access_txt = "1" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/main) +"aoN" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aoO" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/fore) +"aoP" = ( +/turf/closed/wall, +/area/crew_quarters/sleep) +"aoQ" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/item/weapon/storage/pod{ + pixel_x = -24; + pixel_y = 0 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_1) +"aoR" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/item/device/radio/intercom{ + pixel_x = 30; + pixel_y = 0 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_1) +"aoS" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/power/solar{ + id = "portsolar"; + name = "Port Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/port{ + name = "Port Solar Array" + }) +"aoT" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/space, +/area/solar/starboard{ + name = "Starboard Solar Array" + }) +"aoU" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/solar{ + id = "portsolar"; + name = "Port Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/port{ + name = "Port Solar Array" + }) +"aoV" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/space, +/area/solar/port{ + name = "Port Solar Array" + }) +"aoW" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/solar{ + id = "starboardsolar"; + name = "Starboard Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/port{ + name = "Port Solar Array" + }) +"aoX" = ( +/obj/structure/rack, +/obj/item/clothing/suit/hazardvest, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"aoY" = ( +/obj/effect/decal/remains/human, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"aoZ" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"apa" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"apb" = ( +/obj/structure/closet, +/obj/item/clothing/under/color/black, +/obj/item/clothing/under/color/red, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"apc" = ( +/obj/machinery/computer/shuttle/labor, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = -31; + pixel_y = 0 + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/labor) +"apd" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/labor) +"ape" = ( +/obj/structure/table, +/obj/item/weapon/folder/red, +/obj/item/weapon/restraints/handcuffs, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/labor) +"apf" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"apg" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 4 + }, +/area/security/brig) +"aph" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = 30 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) +"api" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) +"apj" = ( +/obj/machinery/camera{ + c_tag = "Brig Cells"; + dir = 2 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) +"apk" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1; + initialize_directions = 11 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"apl" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) +"apm" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) +"apn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/security/brig) +"apo" = ( +/obj/machinery/camera{ + c_tag = "Brig Entrance" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1; + initialize_directions = 11 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = 29 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) +"app" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/reagent_dispensers/peppertank{ + pixel_y = 30 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) +"apq" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"apr" = ( +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) +"aps" = ( +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/brig) +"apt" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"apu" = ( +/turf/open/floor/plasteel/black, +/area/security/brig) +"apv" = ( +/obj/machinery/ai_status_display{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"apw" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fore) +"apx" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/closed/wall/r_wall, +/area/bridge) +"apy" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/door/poddoor{ + density = 0; + icon_state = "open"; + id = "bridgespace"; + name = "bridge external shutters"; + opacity = 0 + }, +/turf/open/floor/plating, +/area/bridge) +"apz" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/closed/wall/r_wall, +/area/bridge) +"apA" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/closed/wall/r_wall, +/area/bridge) +"apB" = ( +/obj/machinery/computer/arcade, +/turf/open/floor/plasteel/barber, +/area/crew_quarters/sleep) +"apC" = ( +/obj/machinery/washing_machine, +/obj/machinery/requests_console{ + department = "Crew Quarters"; + pixel_y = 30 + }, +/turf/open/floor/plasteel/barber, +/area/crew_quarters/sleep) +"apD" = ( +/obj/machinery/washing_machine, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/barber, +/area/crew_quarters/sleep) +"apE" = ( +/obj/structure/table, +/obj/structure/sign/poster{ + pixel_x = 32 + }, +/obj/item/clothing/under/color/grey, +/obj/machinery/power/apc{ + dir = 1; + name = "Dormitory APC"; + pixel_y = 25 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plasteel/barber, +/area/crew_quarters/sleep) +"apF" = ( +/obj/structure/shuttle/engine/propulsion/burst, +/turf/closed/wall/mineral/titanium, +/area/shuttle/pod_1) +"apG" = ( +/obj/machinery/door/airlock/titanium{ + name = "Shuttle Airlock" + }, +/obj/docking_port/stationary{ + dwidth = 2; + height = 6; + id = "monastery_shuttle_station"; + name = "station"; + width = 5 + }, +/obj/docking_port/mobile{ + dwidth = 2; + height = 6; + id = "pod1"; + launch_status = 0; + name = "monastery shuttle"; + port_angle = 180; + width = 5 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_1) +"apH" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"apI" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/turf/open/space, +/area/solar/starboard{ + name = "Starboard Solar Array" + }) +"apJ" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/turf/open/space, +/area/solar/port{ + name = "Port Solar Array" + }) +"apK" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/item/stack/rods{ + amount = 25 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"apL" = ( +/obj/item/weapon/weldingtool, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"apM" = ( +/obj/machinery/door/airlock/external{ + name = "Dock Access" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"apN" = ( +/obj/item/clothing/head/cone, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"apO" = ( +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/labor) +"apP" = ( +/obj/machinery/button/flasher{ + id = "gulagshuttleflasher"; + name = "Flash Control"; + pixel_x = 0; + pixel_y = -26; + req_access_txt = "1" + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/labor) +"apQ" = ( +/obj/machinery/mineral/labor_claim_console{ + machinedir = 2; + pixel_x = 30; + pixel_y = 30 + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/labor) +"apR" = ( +/obj/machinery/door/airlock/titanium{ + name = "Labor Shuttle Airlock"; + req_access_txt = "2" + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/labor) +"apS" = ( +/obj/machinery/door/airlock/external{ + name = "Labor Camp Shuttle Airlock"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"apT" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_security{ + name = "Labor Camp Shuttle Airlock"; + req_access_txt = "2" + }, +/obj/machinery/button/door{ + id = "prison release"; + name = "Labor Camp Shuttle Lockdown"; + pixel_x = 0; + pixel_y = -25; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"apU" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"apV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"apW" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"apX" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"apY" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j1"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"apZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aqa" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aqb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aqc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/brig) +"aqd" = ( +/obj/machinery/door/airlock/security{ + name = "Interrogation"; + req_access = null; + req_access_txt = "63" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"aqe" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"aqf" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"aqg" = ( +/obj/structure/table, +/obj/item/device/flashlight/lamp, +/turf/open/floor/plasteel/black, +/area/security/brig) +"aqh" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"aqi" = ( +/obj/machinery/camera{ + c_tag = "Brig Interrogation"; + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"aqj" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/closed/wall/r_wall, +/area/bridge) +"aqk" = ( +/obj/machinery/modular_computer/console/preset/command, +/turf/open/floor/plasteel/darkgreen/side{ + dir = 9 + }, +/area/bridge) +"aql" = ( +/obj/machinery/computer/med_data, +/turf/open/floor/plasteel/darkgreen/side{ + dir = 1 + }, +/area/bridge) +"aqm" = ( +/obj/machinery/computer/crew, +/turf/open/floor/plasteel/darkgreen/side{ + dir = 1 + }, +/area/bridge) +"aqn" = ( +/obj/machinery/status_display{ + density = 0; + layer = 4; + pixel_x = 0; + pixel_y = 32 + }, +/obj/item/weapon/folder/yellow{ + pixel_y = 4 + }, +/obj/structure/table/glass, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (NORTH)"; + dir = 1 + }, +/area/bridge) +"aqo" = ( +/obj/machinery/computer/card, +/obj/machinery/camera{ + c_tag = "Bridge - Central"; + dir = 2; + network = list("SS13") + }, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (NORTH)"; + dir = 1 + }, +/area/bridge) +"aqp" = ( +/obj/machinery/computer/communications, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (NORTH)"; + dir = 1 + }, +/area/bridge) +"aqq" = ( +/obj/machinery/computer/teleporter, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (NORTH)"; + dir = 1 + }, +/area/bridge) +"aqr" = ( +/obj/machinery/ai_status_display{ + pixel_y = 32 + }, +/obj/structure/table/glass, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/recharger, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (NORTH)"; + dir = 1 + }, +/area/bridge) +"aqs" = ( +/obj/machinery/computer/security, +/turf/open/floor/plasteel/darkred/side{ + dir = 1 + }, +/area/bridge) +"aqt" = ( +/obj/machinery/computer/secure_data, +/turf/open/floor/plasteel/darkred/side{ + dir = 1 + }, +/area/bridge) +"aqu" = ( +/obj/machinery/computer/prisoner, +/turf/open/floor/plasteel/darkred/side{ + dir = 5 + }, +/area/bridge) +"aqv" = ( +/obj/structure/lattice, +/obj/machinery/camera{ + c_tag = "Bridge Starboard Exterior"; + dir = 1 + }, +/turf/open/space, +/area/space) +"aqw" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/nuke_storage) +"aqx" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fsmaint) +"aqy" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/crew_quarters/sleep) +"aqz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/barber, +/area/crew_quarters/sleep) +"aqA" = ( +/obj/effect/landmark/event_spawn, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/barber, +/area/crew_quarters/sleep) +"aqB" = ( +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/barber, +/area/crew_quarters/sleep) +"aqC" = ( +/obj/structure/bedsheetbin, +/obj/machinery/newscaster{ + pixel_x = 32 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/barber, +/area/crew_quarters/sleep) +"aqD" = ( +/obj/machinery/door/airlock/external{ + name = "Escape Pod" + }, +/turf/open/floor/plating, +/area/crew_quarters/sleep) +"aqE" = ( +/obj/item/clothing/under/kilt, +/obj/item/clothing/head/collectable/wizard, +/obj/structure/closet/cardboard, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"aqF" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/weapon/cigbutt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"aqG" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/effect/decal/cleanable/cobweb{ + icon_state = "cobweb2" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"aqH" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/vomit/old, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4"; + tag = "" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"aqI" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"aqJ" = ( +/obj/item/clothing/head/cone, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"aqK" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"aqL" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"aqM" = ( +/obj/machinery/door/airlock/titanium{ + name = "Labor Shuttle Airlock"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/black, +/area/shuttle/labor) +"aqN" = ( +/obj/machinery/mineral/stacking_machine/laborstacker{ + input_dir = 2; + output_dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/shuttle/labor) +"aqO" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/security/brig) +"aqP" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aqQ" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"aqR" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/machinery/door_timer{ + id = "Cell 1"; + name = "Cell 1"; + pixel_y = -32 + }, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"aqS" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"aqT" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/machinery/door_timer{ + id = "Cell 2"; + name = "Cell 2"; + pixel_y = -32 + }, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"aqU" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"aqV" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/machinery/door_timer{ + id = "Cell 3"; + name = "Cell 3"; + pixel_y = -32 + }, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"aqW" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"aqX" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"aqY" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"aqZ" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/brig) +"ara" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/closed/wall, +/area/security/brig) +"arb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"arc" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"ard" = ( +/obj/structure/table, +/obj/item/weapon/folder/red, +/obj/item/device/taperecorder{ + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"are" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"arf" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"arg" = ( +/turf/closed/wall/r_wall, +/area/bridge) +"arh" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/turf/closed/wall/r_wall, +/area/bridge) +"ari" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/keycard_auth{ + pixel_x = -28; + pixel_y = 9 + }, +/obj/machinery/button/door{ + id = "bridge blast"; + name = "Bridge Entrance Lockdown"; + pixel_x = -28; + pixel_y = -2; + req_access_txt = "19" + }, +/turf/open/floor/plasteel/darkgreen/side{ + dir = 8 + }, +/area/bridge) +"arj" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"ark" = ( +/turf/open/floor/plasteel/black, +/area/bridge) +"arl" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/button/door{ + id = "bridgespace"; + name = "Bridge Space Lockdown"; + pixel_x = 28; + pixel_y = 8; + req_access_txt = "19" + }, +/obj/machinery/button/door{ + id = "bridge blast"; + name = "Bridge Entrance Lockdown"; + pixel_x = 28; + pixel_y = -2; + req_access_txt = "19" + }, +/turf/open/floor/plasteel/darkred/side{ + dir = 4 + }, +/area/bridge) +"arm" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/closed/wall/r_wall, +/area/bridge) +"arn" = ( +/turf/closed/wall, +/area/bridge) +"aro" = ( +/obj/machinery/computer/bank_machine, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/nuke_storage) +"arp" = ( +/obj/machinery/light_switch{ + pixel_y = 28 + }, +/turf/open/floor/plasteel/circuit/gcircuit{ + luminosity = 2 + }, +/area/ai_monitored/nuke_storage) +"arq" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/circuit/gcircuit{ + luminosity = 2 + }, +/area/ai_monitored/nuke_storage) +"arr" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Vault APC"; + pixel_x = 0; + pixel_y = 25 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plasteel/circuit/gcircuit{ + luminosity = 2 + }, +/area/ai_monitored/nuke_storage) +"ars" = ( +/obj/structure/filingcabinet, +/obj/item/weapon/folder/documents, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/nuke_storage) +"art" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Dormitory Maintenance APC"; + pixel_x = -24; + pixel_y = 0 + }, +/obj/structure/cable, +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fsmaint) +"aru" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/sleep) +"arv" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/barber, +/area/crew_quarters/sleep) +"arw" = ( +/obj/machinery/light, +/obj/machinery/camera{ + c_tag = "Laundry Room"; + dir = 1 + }, +/turf/open/floor/plasteel/barber, +/area/crew_quarters/sleep) +"arx" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/barber, +/area/crew_quarters/sleep) +"ary" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/barber, +/area/crew_quarters/sleep) +"arz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"arA" = ( +/turf/open/floor/plating, +/area/crew_quarters/sleep) +"arB" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 32; + pixel_y = 0 + }, +/obj/structure/closet/emcloset{ + anchored = 1; + desc = "It's a storage unit for emergency breath masks and O2 tanks, and is securely bolted in place."; + name = "anchored emergency closet" + }, +/turf/open/floor/plating, +/area/crew_quarters/sleep) +"arC" = ( +/obj/structure/closet, +/obj/item/weapon/weldingtool, +/obj/item/weapon/crowbar, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"arD" = ( +/turf/closed/wall, +/area/crew_quarters/fitness{ + name = "Recreation Room" + }) +"arE" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/item/clothing/mask/balaclava, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"arF" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"arG" = ( +/turf/open/floor/plasteel/circuit/gcircuit, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"arH" = ( +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/labor) +"arI" = ( +/obj/machinery/mineral/labor_claim_console{ + machinedir = 1; + pixel_x = 30; + pixel_y = 0 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/labor) +"arJ" = ( +/turf/open/space, +/area/security/brig) +"arK" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/security/brig) +"arL" = ( +/obj/machinery/door/window/brigdoor{ + id = "Cell 1"; + name = "Cell 1"; + req_access_txt = "1" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"arM" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/security/brig) +"arN" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/closed/wall, +/area/security/brig) +"arO" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/security/brig) +"arP" = ( +/obj/machinery/door/window/brigdoor{ + id = "Cell 2"; + name = "Cell 2"; + req_access_txt = "1" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"arQ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/closed/wall, +/area/security/brig) +"arR" = ( +/obj/machinery/door/window/brigdoor{ + id = "Cell 3"; + name = "Cell 3"; + req_access_txt = "1" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"arS" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/security/brig) +"arT" = ( +/obj/machinery/door/airlock/glass_security{ + cyclelinkeddir = 2; + id_tag = "innerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/brig) +"arU" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/brig) +"arV" = ( +/obj/machinery/door/airlock/glass_security{ + cyclelinkeddir = 2; + id_tag = "innerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (EAST)"; + dir = 4 + }, +/area/security/brig) +"arW" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Brig Desk"; + req_access_txt = "1" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/black, +/area/security/brig) +"arX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/security/brig) +"arY" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"arZ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/command{ + name = "Emergency Escape"; + req_access = null; + req_access_txt = "20" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"asa" = ( +/obj/structure/window/reinforced, +/turf/open/space, +/area/space) +"asb" = ( +/obj/machinery/computer/atmos_alert, +/turf/open/floor/plasteel/darkpurple, +/area/bridge) +"asc" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/darkpurple/side{ + dir = 8 + }, +/area/bridge) +"asd" = ( +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners (EAST)"; + dir = 4 + }, +/area/bridge) +"ase" = ( +/turf/open/floor/plasteel/darkblue/side{ + dir = 1 + }, +/area/bridge) +"asf" = ( +/obj/item/device/radio/beacon, +/turf/open/floor/plasteel/darkblue/side{ + dir = 1 + }, +/area/bridge) +"asg" = ( +/turf/open/floor/plasteel/darkblue/corner{ + dir = 1 + }, +/area/bridge) +"ash" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/darkyellow/side{ + dir = 4 + }, +/area/bridge) +"asi" = ( +/obj/machinery/computer/shuttle/labor, +/turf/open/floor/plasteel/darkyellow, +/area/bridge) +"asj" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 2; + name = "Bridge External Access"; + req_access = null; + req_access_txt = "10;13" + }, +/turf/open/floor/plating, +/area/bridge) +"ask" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/ai_monitored/nuke_storage) +"asl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/circuit/gcircuit{ + luminosity = 2 + }, +/area/ai_monitored/nuke_storage) +"asm" = ( +/obj/machinery/nuclearbomb/selfdestruct, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/nuke_storage) +"asn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/circuit/gcircuit{ + luminosity = 2 + }, +/area/ai_monitored/nuke_storage) +"aso" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/ai_monitored/nuke_storage) +"asp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/crew_quarters/sleep) +"asq" = ( +/obj/machinery/door/airlock{ + name = "Laundry Room" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/barber, +/area/crew_quarters/sleep) +"asr" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/weapon/storage/box/lights/mixed, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"ass" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"ast" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/grille/broken, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"asu" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"asv" = ( +/turf/open/floor/engine{ + name = "Holodeck Projector Floor" + }, +/area/holodeck/rec_center) +"asw" = ( +/obj/machinery/mech_bay_recharge_port, +/obj/structure/cable, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"asx" = ( +/obj/item/clothing/head/collectable/police, +/turf/open/floor/mech_bay_recharge_floor, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"asy" = ( +/obj/machinery/computer/mech_bay_power_console, +/obj/structure/cable, +/turf/open/floor/plasteel, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"asz" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/labor) +"asA" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/flasher{ + id = "gulagshuttleflasher"; + pixel_x = 25 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/labor) +"asB" = ( +/obj/item/device/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 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) +"asC" = ( +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) +"asD" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) +"asE" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) +"asF" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/flasher{ + id = "brigentry"; + pixel_x = -28 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/brig) +"asG" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (EAST)"; + dir = 4 + }, +/area/security/brig) +"asH" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/eastleft{ + dir = 8; + name = "Brig Desk"; + req_access_txt = "1" + }, +/obj/item/weapon/paper_bin{ + pixel_x = 0; + pixel_y = 0; + tag = "every single paper bin is edited to this" + }, +/obj/item/weapon/pen{ + layer = 3.1 + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"asI" = ( +/obj/machinery/computer/secure_data, +/obj/machinery/button/door{ + desc = "A remote control switch for the medbay foyer."; + id = "innerbrig"; + name = "Brig Interior Doors Control"; + normaldoorcontrol = 1; + pixel_x = -6; + pixel_y = 36; + req_access_txt = "63" + }, +/obj/machinery/button/door{ + desc = "A remote control switch for the medbay foyer."; + id = "outerbrig"; + name = "Brig Exterior Doors Control"; + normaldoorcontrol = 1; + pixel_x = -6; + pixel_y = 24; + req_access_txt = "63" + }, +/obj/machinery/button/flasher{ + id = "brigentry"; + pixel_x = 6; + pixel_y = 24 + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"asJ" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/black, +/area/security/brig) +"asK" = ( +/obj/machinery/computer/security, +/turf/open/floor/plasteel/black, +/area/security/brig) +"asL" = ( +/turf/closed/wall, +/area/crew_quarters/captain) +"asM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/crew_quarters/captain) +"asN" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"asO" = ( +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/captain) +"asP" = ( +/obj/machinery/computer/monitor{ + name = "Bridge Power Monitoring Console" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plasteel/darkpurple, +/area/bridge) +"asQ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/darkpurple/side{ + dir = 8 + }, +/area/bridge) +"asR" = ( +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (EAST)"; + dir = 4 + }, +/area/bridge) +"asS" = ( +/obj/structure/chair/comfy/black, +/turf/open/floor/plasteel/black, +/area/bridge) +"asT" = ( +/turf/open/floor/plasteel/darkblue/side{ + dir = 8 + }, +/area/bridge) +"asU" = ( +/obj/machinery/computer/cargo/request, +/turf/open/floor/plasteel/darkyellow, +/area/bridge) +"asV" = ( +/obj/structure/closet/emcloset{ + anchored = 1; + desc = "It's a storage unit for emergency breath masks and O2 tanks, and is securely bolted in place."; + name = "anchored emergency closet" + }, +/turf/open/floor/plating, +/area/bridge) +"asW" = ( +/turf/open/floor/plating, +/area/bridge) +"asX" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/suit_storage_unit/standard_unit, +/turf/open/floor/plating, +/area/bridge) +"asY" = ( +/obj/structure/closet/crate{ + name = "Gold Crate" + }, +/obj/item/stack/sheet/mineral/gold{ + pixel_x = -1; + pixel_y = 5 + }, +/obj/item/stack/sheet/mineral/gold{ + pixel_y = 2 + }, +/obj/item/stack/sheet/mineral/gold{ + pixel_x = 1; + pixel_y = -2 + }, +/obj/item/weapon/storage/belt/champion, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/ai_monitored/nuke_storage) +"asZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/circuit/gcircuit{ + luminosity = 2 + }, +/area/ai_monitored/nuke_storage) +"ata" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/turf/open/floor/plasteel/circuit/gcircuit{ + luminosity = 2 + }, +/area/ai_monitored/nuke_storage) +"atb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/circuit/gcircuit{ + luminosity = 2 + }, +/area/ai_monitored/nuke_storage) +"atc" = ( +/obj/item/weapon/coin/silver{ + pixel_x = 7; + pixel_y = 12 + }, +/obj/item/weapon/coin/silver{ + pixel_x = 12; + pixel_y = 7 + }, +/obj/item/weapon/coin/silver{ + pixel_x = 4; + pixel_y = 8 + }, +/obj/item/weapon/coin/silver{ + pixel_x = -6; + pixel_y = 5 + }, +/obj/item/weapon/coin/silver{ + pixel_x = 5; + pixel_y = -8 + }, +/obj/structure/closet/crate{ + name = "Silver Crate" + }, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/ai_monitored/nuke_storage) +"atd" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Dorm3Shutters"; + name = "Dorm Shutters" + }, +/turf/open/floor/plating, +/area/crew_quarters/sleep) +"ate" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/nanotrasen, +/obj/machinery/button/door{ + id = "Dorm3Shutters"; + name = "Privacy Shutters Control"; + pixel_x = 0; + pixel_y = 26; + req_access_txt = "0" + }, +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"atf" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/sign/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 = 0; + pixel_y = 28 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"atg" = ( +/obj/machinery/button/door{ + id = "Dorm3"; + name = "Dorm Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 25; + pixel_y = 0; + req_access_txt = "0"; + specialfunctions = 4 + }, +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"ath" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/blue/side{ + dir = 1 + }, +/area/crew_quarters/sleep) +"ati" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/sign/map{ + icon_state = "map-pubby"; + pixel_y = 32 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 1 + }, +/area/crew_quarters/sleep) +"atj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/camera{ + c_tag = "Dormitories Fore"; + dir = 2 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the monastery."; + name = "Monastery Monitor"; + network = list("Monastery"); + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 1 + }, +/area/crew_quarters/sleep) +"atk" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"atl" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"atm" = ( +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"atn" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 28 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"ato" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/crew_quarters/fitness{ + name = "Recreation Room" + }) +"atp" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness{ + name = "Recreation Room" + }) +"atq" = ( +/obj/structure/closet/crate, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/labor) +"atr" = ( +/obj/machinery/door/airlock/titanium{ + id_tag = "prisonshuttle"; + name = "Labor Shuttle Airlock" + }, +/obj/docking_port/mobile{ + dir = 8; + dwidth = 2; + height = 5; + id = "laborcamp"; + name = "labor camp shuttle"; + port_angle = 90; + width = 9 + }, +/obj/docking_port/stationary{ + dir = 8; + dwidth = 2; + height = 5; + id = "laborcamp_home"; + name = "fore bay 1"; + width = 9 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/labor) +"ats" = ( +/obj/machinery/door/airlock/external{ + name = "Labor Camp Shuttle Airlock" + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"att" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Labor Shuttle Dock"; + dir = 8; + network = list("SS13") + }, +/obj/machinery/gulag_item_reclaimer{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"atu" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/obj/machinery/flasher{ + id = "Cell 1"; + pixel_x = -28 + }, +/turf/open/floor/plasteel/blue/side, +/area/security/brig) +"atv" = ( +/turf/open/floor/plasteel/blue/side, +/area/security/brig) +"atw" = ( +/obj/structure/closet/secure_closet/brig{ + id = "Cell 2"; + name = "Cell 2 Locker" + }, +/turf/open/floor/plasteel/blue/side, +/area/security/brig) +"atx" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/obj/machinery/flasher{ + id = "Cell 2"; + pixel_x = -28 + }, +/turf/open/floor/plasteel/green/side, +/area/security/brig) +"aty" = ( +/turf/open/floor/plasteel/green/side, +/area/security/brig) +"atz" = ( +/obj/structure/closet/secure_closet/brig{ + id = "Cell 3"; + name = "Cell 3 Locker" + }, +/turf/open/floor/plasteel/green/side, +/area/security/brig) +"atA" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/obj/machinery/flasher{ + id = "Cell 3"; + pixel_x = -28 + }, +/turf/open/floor/plasteel/yellow/side, +/area/security/brig) +"atB" = ( +/turf/open/floor/plasteel/yellow/side, +/area/security/brig) +"atC" = ( +/obj/structure/closet/secure_closet/brig{ + id = "Cell 3"; + name = "Cell 3 Locker" + }, +/turf/open/floor/plasteel/yellow/side, +/area/security/brig) +"atD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/brig) +"atE" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/eastleft{ + dir = 8; + name = "Brig Desk"; + req_access_txt = "1" + }, +/obj/item/weapon/folder/red, +/obj/item/weapon/restraints/handcuffs, +/turf/open/floor/plasteel/black, +/area/security/brig) +"atF" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"atG" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"atH" = ( +/obj/structure/chair/office/dark, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"atI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/captain) +"atJ" = ( +/obj/structure/toilet{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/captain) +"atK" = ( +/obj/structure/sink{ + pixel_y = 28 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/captain) +"atL" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/captain) +"atM" = ( +/obj/machinery/shower{ + dir = 1 + }, +/obj/item/weapon/soap/deluxe, +/obj/item/weapon/bikehorn/rubberducky, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/obj/structure/curtain, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/captain) +"atN" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plating, +/area/maintenance/fore) +"atO" = ( +/obj/machinery/door/airlock/command{ + name = "Balcony"; + req_access = null; + req_access_txt = "20" + }, +/turf/open/floor/plating, +/area/crew_quarters/captain) +"atP" = ( +/turf/open/floor/plasteel/vault, +/area/crew_quarters/captain) +"atQ" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/vault, +/area/crew_quarters/captain) +"atR" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/light, +/obj/machinery/camera{ + c_tag = "Captain's Balcony"; + dir = 1 + }, +/turf/open/floor/plasteel/vault, +/area/crew_quarters/captain) +"atS" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-20"; + layer = 4.1; + pixel_y = 3 + }, +/turf/open/floor/plasteel/vault, +/area/crew_quarters/captain) +"atT" = ( +/obj/machinery/computer/station_alert, +/turf/open/floor/plasteel/darkpurple, +/area/bridge) +"atU" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (EAST)"; + dir = 4 + }, +/area/bridge) +"atV" = ( +/obj/structure/table/glass, +/obj/item/weapon/storage/box/ids{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/weapon/storage/box/PDAs, +/turf/open/floor/plasteel/black, +/area/bridge) +"atW" = ( +/obj/structure/table/glass, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plasteel/black, +/area/bridge) +"atX" = ( +/obj/structure/table/glass, +/obj/item/weapon/storage/toolbox/emergency, +/turf/open/floor/plasteel/black, +/area/bridge) +"atY" = ( +/obj/structure/table/glass, +/obj/item/device/aicard, +/turf/open/floor/plasteel/black, +/area/bridge) +"atZ" = ( +/obj/structure/table/glass, +/obj/item/weapon/restraints/handcuffs, +/obj/item/device/assembly/flash/handheld, +/obj/item/device/laser_pointer/blue, +/turf/open/floor/plasteel/black, +/area/bridge) +"aua" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/darkblue/side{ + dir = 8 + }, +/area/bridge) +"aub" = ( +/obj/machinery/computer/security/mining, +/turf/open/floor/plasteel/darkyellow, +/area/bridge) +"auc" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 1; + name = "Bridge External Access"; + req_access = null; + req_access_txt = "10;13" + }, +/turf/open/floor/plating, +/area/bridge) +"aud" = ( +/obj/structure/window/reinforced/fulltile, +/obj/structure/transit_tube, +/turf/open/floor/plating, +/area/bridge) +"aue" = ( +/obj/structure/closet/secure_closet/freezer/money, +/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka/badminka, +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass, +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass, +/obj/item/clothing/head/bearpelt, +/obj/item/weapon/skub, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/ai_monitored/nuke_storage) +"auf" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/nuke_storage) +"aug" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/nuke_storage) +"auh" = ( +/obj/machinery/camera/motion{ + c_tag = "Vault"; + dir = 1; + network = list("SS13") + }, +/obj/machinery/light, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/nuke_storage) +"aui" = ( +/obj/structure/safe, +/obj/item/weapon/bikehorn/golden, +/obj/item/ammo_box/a357, +/obj/item/weapon/tank/internals/plasma/full, +/obj/item/weapon/disk/fakenucleardisk, +/obj/item/weapon/gun/energy/disabler, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/ai_monitored/nuke_storage) +"auj" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/book/bible, +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"auk" = ( +/obj/structure/chair/wood/normal{ + icon_state = "wooden_chair"; + dir = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"aul" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/crew_quarters/sleep) +"aum" = ( +/obj/machinery/door/airlock{ + id_tag = "Dorm3"; + name = "Dorm 3" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/sleep) +"aun" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"auo" = ( +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j2"; + dir = 2 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"aup" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"auq" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"aur" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness{ + name = "Recreation Room" + }) +"aus" = ( +/obj/structure/closet/athletic_mixed, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/arrival{ + dir = 1 + }, +/area/crew_quarters/fitness{ + name = "Recreation Room" + }) +"aut" = ( +/obj/structure/closet/lasertag/blue, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/arrival{ + dir = 1 + }, +/area/crew_quarters/fitness{ + name = "Recreation Room" + }) +"auu" = ( +/obj/structure/closet/lasertag/red, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/status_display{ + density = 0; + layer = 4; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plasteel/arrival{ + dir = 1 + }, +/area/crew_quarters/fitness{ + name = "Recreation Room" + }) +"auv" = ( +/obj/machinery/disposal/bin, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Fitness Room"; + dir = 2 + }, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/arrival{ + dir = 1 + }, +/area/crew_quarters/fitness{ + name = "Recreation Room" + }) +"auw" = ( +/obj/machinery/vending/clothing, +/turf/open/floor/plasteel/arrival{ + dir = 1 + }, +/area/crew_quarters/fitness{ + name = "Recreation Room" + }) +"aux" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-05"; + layer = 4.1 + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Fitness Room APC"; + pixel_x = 0; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness{ + name = "Recreation Room" + }) +"auy" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness{ + name = "Recreation Room" + }) +"auz" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"auA" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8"; + tag = "" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"auB" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/decal/cleanable/cobweb{ + icon_state = "cobweb2" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"auC" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/turf/open/floor/plating, +/area/shuttle/labor) +"auD" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_security{ + name = "Labor Camp Shuttle Airlock"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"auE" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/grille, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Gate"; + name = "brig shutters" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/brig) +"auF" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/grille, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Gate"; + name = "brig shutters" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/brig) +"auG" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/closed/wall, +/area/security/brig) +"auH" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Gate"; + name = "brig shutters" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/brig) +"auI" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_security{ + cyclelinkeddir = 1; + id_tag = "outerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/brig) +"auJ" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable, +/obj/structure/grille, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Gate"; + name = "brig shutters" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/brig) +"auK" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_security{ + cyclelinkeddir = 1; + id_tag = "outerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (EAST)"; + dir = 4 + }, +/area/security/brig) +"auL" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/southleft{ + base_state = "right"; + dir = 1; + icon_state = "right"; + name = "Brig Desk"; + req_access_txt = "1" + }, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Gate"; + name = "brig shutters" + }, +/obj/item/device/radio, +/turf/open/floor/plasteel/black, +/area/security/brig) +"auM" = ( +/obj/machinery/door/window/southleft{ + base_state = "right"; + dir = 1; + icon_state = "right"; + name = "Brig Desk"; + req_access_txt = "1" + }, +/obj/item/weapon/reagent_containers/food/snacks/donut{ + layer = 3 + }, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Gate"; + name = "brig shutters" + }, +/obj/structure/table/reinforced, +/obj/item/weapon/folder/red{ + layer = 2.9 + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"auN" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/southleft{ + base_state = "right"; + dir = 1; + icon_state = "right"; + layer = 2.7; + name = "Brig Desk"; + req_access_txt = "1" + }, +/obj/item/weapon/pen{ + layer = 3 + }, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Gate"; + name = "brig shutters" + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"auO" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/captain) +"auP" = ( +/obj/machinery/door/airlock{ + name = "Private Restroom"; + req_access_txt = "0" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/captain) +"auQ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/command{ + name = "Captain's Office Access"; + req_access = null; + req_access_txt = "20" + }, +/turf/open/floor/plating, +/area/crew_quarters/captain) +"auR" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -28 + }, +/turf/open/floor/plasteel/darkblue/side{ + dir = 8 + }, +/area/bridge) +"auS" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"auT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (EAST)"; + dir = 4 + }, +/area/bridge) +"auU" = ( +/obj/structure/chair/comfy/black{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"auV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/darkblue/side{ + dir = 8 + }, +/area/bridge) +"auW" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor{ + density = 0; + icon_state = "open"; + id = "bridgespace"; + name = "bridge external shutters"; + opacity = 0 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/bridge) +"auX" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"auY" = ( +/obj/machinery/camera{ + c_tag = "Bridge MiniSat Access"; + dir = 4; + network = list("SS13") + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel, +/area/bridge) +"auZ" = ( +/obj/structure/transit_tube, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/bridge) +"ava" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/bridge) +"avb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/nuke_storage) +"avc" = ( +/obj/structure/sign/securearea, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/nuke_storage) +"avd" = ( +/obj/machinery/door/airlock/vault{ + icon_state = "door_locked"; + locked = 1; + req_access_txt = "53" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault, +/area/ai_monitored/nuke_storage) +"ave" = ( +/obj/structure/sign/securearea, +/turf/closed/wall/r_wall, +/area/ai_monitored/nuke_storage) +"avf" = ( +/obj/structure/sign/poster{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8; + initialize_directions = 11 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"avg" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"avh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/chair/comfy/brown, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"avi" = ( +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/chair/comfy/brown, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"avj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/chair/comfy/brown, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"avk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"avl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"avm" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/crew_quarters/fitness{ + name = "Recreation Room" + }) +"avn" = ( +/turf/open/floor/plasteel, +/area/crew_quarters/fitness{ + name = "Recreation Room" + }) +"avo" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness{ + name = "Recreation Room" + }) +"avp" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Holodeck Door" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness{ + name = "Recreation Room" + }) +"avq" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness{ + name = "Recreation Room" + }) +"avr" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9; + pixel_y = 0 + }, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness{ + name = "Recreation Room" + }) +"avs" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/auxsolarport{ + name = "Port Solar Maintenance" + }) +"avt" = ( +/turf/closed/wall, +/area/maintenance/auxsolarport{ + name = "Port Solar Maintenance" + }) +"avu" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/floor/plating, +/area/shuttle/labor) +"avv" = ( +/obj/machinery/door/poddoor/preopen{ + id = "prison release"; + name = "prisoner processing blast door" + }, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/security/brig) +"avw" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-10"; + layer = 4.1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"avx" = ( +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"avy" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"avz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"avA" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"avB" = ( +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/hallway/primary/fore) +"avC" = ( +/obj/structure/dresser, +/obj/structure/sign/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 = 0; + pixel_y = 28 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/captain) +"avD" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/captain) +"avE" = ( +/obj/structure/closet/secure_closet/captains, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Captain's Quarters"; + dir = 2 + }, +/obj/item/clothing/suit/armor/riot/knight/blue, +/obj/item/clothing/head/helmet/knight/blue, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/captain) +"avF" = ( +/obj/machinery/suit_storage_unit/captain, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/captain) +"avG" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (NORTH)"; + dir = 1 + }, +/area/crew_quarters/captain) +"avH" = ( +/obj/machinery/power/apc{ + cell_type = 2500; + dir = 1; + name = "Captain's Office APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"avI" = ( +/obj/structure/table/wood, +/obj/machinery/recharger, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Captain's Desk"; + departmentType = 5; + name = "Captain RC"; + pixel_x = 0; + pixel_y = 30 + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"avJ" = ( +/obj/machinery/computer/card, +/obj/item/weapon/card/id/captains_spare, +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = 26 + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"avK" = ( +/obj/machinery/computer/communications, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"avL" = ( +/obj/structure/filingcabinet/employment, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"avM" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/darkblue/side{ + dir = 8 + }, +/area/bridge) +"avN" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"avO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/darkblue/corner, +/area/bridge) +"avP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"avQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkblue/side, +/area/bridge) +"avR" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/darkblue/corner{ + dir = 8 + }, +/area/bridge) +"avS" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (EAST)"; + dir = 4 + }, +/area/bridge) +"avT" = ( +/obj/machinery/door/airlock/command{ + name = "External Access"; + req_access_txt = "0"; + req_one_access_txt = "19; 65" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"avU" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/poddoor{ + density = 0; + icon_state = "open"; + id = "bridgespace"; + name = "bridge external shutters"; + opacity = 0 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/bridge) +"avV" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/black, +/area/bridge) +"avW" = ( +/obj/machinery/door/airlock/command{ + name = "MiniSat Access"; + req_access_txt = "65" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/bridge) +"avX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/bridge) +"avY" = ( +/obj/structure/transit_tube_pod, +/obj/structure/transit_tube/station/reverse{ + dir = 8 + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/bridge) +"avZ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/hallway/primary/central) +"awa" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/stairs, +/area/hallway/primary/central) +"awb" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/hallway/primary/central) +"awc" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Dorm2Shutters"; + name = "Dorm Shutters" + }, +/turf/open/floor/plating, +/area/crew_quarters/sleep) +"awd" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/nanotrasen, +/obj/machinery/button/door{ + id = "Dorm2Shutters"; + name = "Privacy Shutters Control"; + pixel_x = 0; + pixel_y = 26; + req_access_txt = "0" + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"awe" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/sign/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 = 0; + pixel_y = 28 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"awf" = ( +/obj/machinery/button/door{ + id = "Dorm2"; + name = "Dorm Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 25; + pixel_y = 0; + req_access_txt = "0"; + specialfunctions = 4 + }, +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"awg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"awh" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"awi" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/pill_bottle/dice, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"awj" = ( +/obj/structure/table/wood, +/obj/item/weapon/pen{ + layer = 4 + }, +/obj/item/weapon/paper_bin{ + layer = 2.9; + pixel_x = 0; + pixel_y = 0; + tag = "every single paper bin is edited to this" + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"awk" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/backpack, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"awl" = ( +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"awm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"awn" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Recreation Room" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness{ + name = "Recreation Room" + }) +"awo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness{ + name = "Recreation Room" + }) +"awp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness{ + name = "Recreation Room" + }) +"awq" = ( +/obj/machinery/computer/holodeck, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness{ + name = "Recreation Room" + }) +"awr" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness{ + name = "Recreation Room" + }) +"aws" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable, +/turf/open/space, +/area/solar/starboard{ + name = "Starboard Solar Array" + }) +"awt" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable, +/turf/open/space, +/area/solar/port{ + name = "Port Solar Array" + }) +"awu" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = -32; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarport{ + name = "Port Solar Maintenance" + }) +"awv" = ( +/obj/machinery/power/solar_control{ + id = "portsolar"; + name = "Port Solar Control"; + track = 0 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarport{ + name = "Port Solar Maintenance" + }) +"aww" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarport{ + name = "Port Solar Maintenance" + }) +"awx" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Port Solar APC"; + pixel_x = 0; + pixel_y = 24 + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarport{ + name = "Port Solar Maintenance" + }) +"awy" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"awz" = ( +/obj/machinery/button/door{ + id = "prison release"; + name = "Labor Camp Shuttle Lockdown"; + pixel_x = -25; + pixel_y = 0; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/hallway/primary/fore) +"awA" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"awB" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"awC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"awD" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=BrigS2"; + location = "BrigP" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"awE" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"awF" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"awG" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"awH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"awI" = ( +/obj/machinery/holopad, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=BrigP"; + location = "BrigS1" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"awJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"awK" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"awL" = ( +/obj/item/device/radio/beacon, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"awM" = ( +/obj/structure/sign/poster{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/hallway/primary/fore) +"awN" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/captain, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/captain) +"awO" = ( +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/captain) +"awP" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/captain) +"awQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/captain) +"awR" = ( +/obj/machinery/door/airlock/command{ + name = "Captain's Quarters"; + req_access = null; + req_access_txt = "20" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/captain) +"awS" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/captain) +"awT" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"awU" = ( +/obj/machinery/door/window{ + dir = 8; + name = "Captain's Desk"; + req_access_txt = "20" + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"awV" = ( +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"awW" = ( +/obj/structure/chair/comfy/black, +/obj/effect/landmark/start{ + name = "Captain" + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"awX" = ( +/obj/item/weapon/storage/secure/safe{ + pixel_x = 35; + pixel_y = 5 + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"awY" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/darkblue/side{ + dir = 8 + }, +/area/bridge) +"awZ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"axa" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = -28 + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"axb" = ( +/obj/structure/fireaxecabinet{ + pixel_y = -32 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"axc" = ( +/obj/machinery/light, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"axd" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Bridge"; + departmentType = 5; + name = "Bridge RC"; + pixel_y = -30 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"axe" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"axf" = ( +/obj/machinery/turretid{ + control_area = "AI Upload Chamber"; + name = "AI Upload turret control"; + pixel_y = -25 + }, +/obj/machinery/camera{ + c_tag = "Bridge Central"; + dir = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"axg" = ( +/obj/machinery/light, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/newscaster{ + pixel_y = -28 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"axh" = ( +/obj/machinery/power/apc{ + cell_type = 10000; + dir = 2; + name = "Bridge APC"; + pixel_y = -24 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"axi" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = -28 + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"axj" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"axk" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (EAST)"; + dir = 4 + }, +/area/bridge) +"axl" = ( +/obj/machinery/light, +/obj/machinery/camera{ + c_tag = "Bridge External Access"; + dir = 1; + network = list("SS13") + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"axm" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/bridge) +"axn" = ( +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/bridge) +"axo" = ( +/turf/closed/wall/r_wall, +/area/hallway/primary/central) +"axp" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"axq" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/book/bible, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"axr" = ( +/obj/structure/chair/wood/normal{ + icon_state = "wooden_chair"; + dir = 8 + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"axs" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"axt" = ( +/obj/machinery/door/airlock{ + id_tag = "Dorm2"; + name = "Dorm 2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/sleep) +"axu" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"axv" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/crayons, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"axw" = ( +/obj/structure/table/wood, +/obj/item/device/paicard, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"axx" = ( +/obj/structure/table/wood, +/obj/item/toy/cards/deck{ + pixel_x = 2 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"axy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"axz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"axA" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Recreation Room" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness{ + name = "Recreation Room" + }) +"axB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness{ + name = "Recreation Room" + }) +"axC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness{ + name = "Recreation Room" + }) +"axD" = ( +/obj/structure/table, +/obj/item/weapon/paper{ + desc = ""; + info = "Brusies sustained in the holodeck can be healed simply by sleeping."; + name = "Holodeck Disclaimer" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness{ + name = "Recreation Room" + }) +"axE" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/camera{ + c_tag = "Holodeck"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness{ + name = "Recreation Room" + }) +"axF" = ( +/obj/machinery/power/tracker, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/port{ + name = "Port Solar Array" + }) +"axG" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/space, +/area/solar/port{ + name = "Port Solar Array" + }) +"axH" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/space, +/area/solar/port{ + name = "Port Solar Array" + }) +"axI" = ( +/obj/structure/lattice/catwalk, +/obj/item/stack/cable_coil, +/turf/open/space, +/area/solar/starboard{ + name = "Starboard Solar Array" + }) +"axJ" = ( +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/port{ + name = "Port Solar Array" + }) +"axK" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/space, +/area/solar/port{ + name = "Port Solar Array" + }) +"axL" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 4; + name = "Solar Maintenance"; + req_access = null; + req_access_txt = "10; 13" + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarport{ + name = "Port Solar Maintenance" + }) +"axM" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarport{ + name = "Port Solar Maintenance" + }) +"axN" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 8; + name = "Solar Maintenance"; + req_access = null; + req_access_txt = "10; 13" + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarport{ + name = "Port Solar Maintenance" + }) +"axO" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarport{ + name = "Port Solar Maintenance" + }) +"axP" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarport{ + name = "Port Solar Maintenance" + }) +"axQ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarport{ + name = "Port Solar Maintenance" + }) +"axR" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/door/airlock/engineering{ + name = "Port Solar Access"; + req_access_txt = "10" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarport{ + name = "Port Solar Maintenance" + }) +"axS" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"axT" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"axU" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/item/weapon/vending_refill/cigarette, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"axV" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"axW" = ( +/obj/structure/plasticflaps, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"axX" = ( +/mob/living/simple_animal/bot/secbot/beepsky{ + name = "Officer Beepsky" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"axY" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/weapon/stock_parts/cell/potato{ + name = "\improper Beepsky's emergency battery" + }, +/obj/item/weapon/paper{ + info = "01001001 00100000 01101000 01101111 01110000 01100101 00100000 01111001 01101111 01110101 00100000 01110011 01110100 01100001 01111001 00100000 01110011 01100001 01100110 01100101 00101110 00100000 01001100 01101111 01110110 01100101 00101100 00100000 01101101 01101111 01101101 00101110"; + name = "Note from Beepsky's Mom" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"axZ" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Fore Primary Hallway APC"; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/hallway/primary/fore) +"aya" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"ayb" = ( +/obj/machinery/light, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"ayc" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"ayd" = ( +/obj/machinery/camera{ + c_tag = "Fore Primary Hallway Port"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aye" = ( +/obj/machinery/door/airlock/centcom{ + name = "Monastery Cemetary"; + opacity = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"ayf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"ayg" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1; + initialize_directions = 11 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"ayh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"ayi" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"ayj" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=Tool"; + location = "BrigS2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"ayk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"ayl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aym" = ( +/obj/machinery/light, +/obj/machinery/camera{ + c_tag = "Fore Primary Hallway Starboard"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"ayn" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-14"; + layer = 4.1 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/hallway/primary/fore) +"ayo" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp/green, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/captain) +"ayp" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/box/matches, +/obj/item/weapon/razor{ + pixel_x = -4; + pixel_y = 2 + }, +/obj/item/clothing/mask/cigarette/cigar, +/obj/item/weapon/reagent_containers/food/drinks/flask/gold, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/captain) +"ayq" = ( +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/captain) +"ayr" = ( +/obj/structure/table/wood, +/obj/item/weapon/kitchen/fork, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/captain) +"ays" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/black, +/area/crew_quarters/captain) +"ayt" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"ayu" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp/green, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"ayv" = ( +/obj/structure/table/wood, +/obj/item/weapon/pen, +/obj/item/weapon/paper_bin{ + layer = 2.9; + pixel_x = 0; + pixel_y = 0; + tag = "every single paper bin is edited to this" + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"ayw" = ( +/obj/structure/table/wood, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"ayx" = ( +/obj/structure/table/wood, +/obj/item/weapon/folder/blue, +/obj/item/weapon/stamp/captain, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"ayy" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/darkblue/side{ + dir = 8 + }, +/area/bridge) +"ayz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/bridge) +"ayA" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai_upload) +"ayB" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/highsecurity{ + icon_state = "door_closed"; + locked = 0; + name = "AI Upload Access"; + req_access_txt = "16" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/darkblue, +/area/ai_monitored/turret_protected/ai_upload) +"ayC" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"ayD" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (EAST)"; + dir = 4 + }, +/area/bridge) +"ayE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/crew_quarters/heads) +"ayF" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/crew_quarters/heads) +"ayG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/crew_quarters/heads) +"ayH" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/heads) +"ayI" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ayJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ayK" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ayL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ayM" = ( +/obj/structure/chair, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ayN" = ( +/turf/closed/wall, +/area/hallway/primary/central) +"ayO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"ayP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/chair/comfy/brown{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"ayQ" = ( +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/structure/chair/comfy/brown{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"ayR" = ( +/obj/structure/chair/comfy/brown{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"ayS" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness{ + name = "Recreation Room" + }) +"ayT" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness{ + name = "Recreation Room" + }) +"ayU" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness{ + name = "Recreation Room" + }) +"ayV" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/turf/open/space, +/area/solar/starboard{ + name = "Starboard Solar Array" + }) +"ayW" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/turf/open/space, +/area/solar/port{ + name = "Port Solar Array" + }) +"ayX" = ( +/obj/structure/rack, +/obj/item/clothing/mask/gas, +/obj/item/device/multitool, +/turf/open/floor/plating, +/area/maintenance/auxsolarport{ + name = "Port Solar Maintenance" + }) +"ayY" = ( +/obj/structure/chair/stool, +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/maintenance/auxsolarport{ + name = "Port Solar Maintenance" + }) +"ayZ" = ( +/obj/machinery/power/smes, +/obj/structure/cable, +/turf/open/floor/plating, +/area/maintenance/auxsolarport{ + name = "Port Solar Maintenance" + }) +"aza" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"azb" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"azc" = ( +/turf/closed/wall, +/area/security/detectives_office) +"azd" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "datboidetective"; + name = "privacy shutters" + }, +/turf/open/floor/plating, +/area/security/detectives_office) +"aze" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/security{ + name = "Detective's Office"; + req_access = null; + req_access_txt = "4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"azf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/corner{ + tag = "icon-redcorner (WEST)"; + dir = 8 + }, +/area/hallway/primary/fore) +"azg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/red/corner, +/area/hallway/primary/fore) +"azh" = ( +/turf/closed/wall, +/area/storage/primary) +"azi" = ( +/turf/closed/wall/r_wall, +/area/storage/primary) +"azj" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -24 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/captain) +"azk" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/crew_quarters/captain) +"azl" = ( +/turf/open/floor/plasteel/black, +/area/crew_quarters/captain) +"azm" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/black, +/area/crew_quarters/captain) +"azn" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/captain) +"azo" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 26; + pixel_y = 0 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/captain) +"azp" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_command{ + cyclelinkeddir = 2; + name = "Bridge Access"; + req_access_txt = "19" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/bridge) +"azq" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_command{ + cyclelinkeddir = 2; + name = "Bridge Access"; + req_access_txt = "19" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/bridge) +"azr" = ( +/turf/open/floor/plasteel/darkblue/side{ + dir = 9 + }, +/area/ai_monitored/turret_protected/ai_upload) +"azs" = ( +/turf/open/floor/plasteel/darkblue/side{ + dir = 1 + }, +/area/ai_monitored/turret_protected/ai_upload) +"azt" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/darkblue/side{ + dir = 1 + }, +/area/ai_monitored/turret_protected/ai_upload) +"azu" = ( +/turf/open/floor/plasteel/darkblue/side{ + dir = 5 + }, +/area/ai_monitored/turret_protected/ai_upload) +"azv" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp/green, +/obj/item/weapon/storage/secure/safe{ + pixel_x = -22; + pixel_y = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"azw" = ( +/obj/machinery/computer/security/mining, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"azx" = ( +/obj/machinery/computer/cargo/request, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"azy" = ( +/obj/structure/closet/secure_closet/hop, +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the monastery."; + name = "Monastery Monitor"; + network = list("Monastery"); + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"azz" = ( +/obj/structure/filingcabinet/chestdrawer{ + pixel_y = 2 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Head of Personnel's Office"; + dir = 2; + network = list("SS13") + }, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"azA" = ( +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Head of Personnel's Desk"; + departmentType = 5; + name = "Head of Personnel RC"; + pixel_y = 30 + }, +/obj/machinery/pdapainter{ + pixel_y = 2 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"azB" = ( +/obj/machinery/status_display{ + density = 0; + layer = 4; + pixel_x = 0; + pixel_y = 32 + }, +/obj/structure/bed/dogbed{ + anchored = 1; + desc = "Ian's bed! Looks comfy."; + name = "Ian's bed"; + pixel_y = 2 + }, +/mob/living/simple_animal/pet/dog/corgi/Ian, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"azC" = ( +/obj/machinery/vending/cart{ + req_access_txt = "57" + }, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"azD" = ( +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 8; + name = "Central Hall APC"; + pixel_x = -25 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"azE" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"azF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"azG" = ( +/obj/structure/table, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/item/weapon/crowbar, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"azH" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Dorm1Shutters"; + name = "Dorm Shutters" + }, +/turf/open/floor/plating, +/area/crew_quarters/sleep) +"azI" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/nanotrasen, +/obj/machinery/button/door{ + id = "Dorm1Shutters"; + name = "Privacy Shutters Control"; + pixel_x = 0; + pixel_y = 26; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/sleep) +"azJ" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/sign/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 = 0; + pixel_y = 28 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/sleep) +"azK" = ( +/obj/machinery/button/door{ + id = "Dorm1"; + name = "Dorm Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 25; + pixel_y = 0; + req_access_txt = "0"; + specialfunctions = 4 + }, +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/sleep) +"azL" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"azM" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"azN" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"azO" = ( +/obj/structure/closet/wardrobe/white, +/turf/open/floor/plasteel/arrival, +/area/crew_quarters/fitness{ + name = "Recreation Room" + }) +"azP" = ( +/obj/structure/closet/wardrobe/mixed, +/turf/open/floor/plasteel/arrival, +/area/crew_quarters/fitness{ + name = "Recreation Room" + }) +"azQ" = ( +/obj/structure/closet/wardrobe/green, +/turf/open/floor/plasteel/arrival, +/area/crew_quarters/fitness{ + name = "Recreation Room" + }) +"azR" = ( +/obj/structure/closet/wardrobe/grey, +/obj/machinery/light, +/turf/open/floor/plasteel/arrival, +/area/crew_quarters/fitness{ + name = "Recreation Room" + }) +"azS" = ( +/obj/structure/closet/wardrobe/black, +/obj/item/clothing/shoes/jackboots, +/obj/item/weapon/storage/backpack, +/turf/open/floor/plasteel/arrival, +/area/crew_quarters/fitness{ + name = "Recreation Room" + }) +"azT" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-05"; + layer = 4.1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness{ + name = "Recreation Room" + }) +"azU" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = 28 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness{ + name = "Recreation Room" + }) +"azV" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/turf/open/space, +/area/solar/starboard{ + name = "Starboard Solar Array" + }) +"azW" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/turf/open/space, +/area/solar/port{ + name = "Port Solar Array" + }) +"azX" = ( +/obj/structure/rack, +/obj/item/weapon/crowbar, +/obj/item/weapon/wrench, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"azY" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"azZ" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"aAa" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"aAb" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"aAc" = ( +/obj/structure/table/wood, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-18"; + layer = 4.1; + pixel_y = 12 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"aAd" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/requests_console{ + department = "Detective's office"; + pixel_x = 0; + pixel_y = 30 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"aAe" = ( +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"aAf" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"aAg" = ( +/obj/item/weapon/storage/briefcase, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"aAh" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/filingcabinet, +/obj/machinery/button/door{ + id = "datboidetective"; + name = "Privacy Shutters"; + pixel_x = 2; + pixel_y = 26 + }, +/obj/machinery/light_switch{ + pixel_x = -8; + pixel_y = 27 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"aAi" = ( +/obj/structure/closet/secure_closet/detective, +/obj/item/weapon/hand_labeler, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"aAj" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/red/corner{ + tag = "icon-redcorner (WEST)"; + dir = 8 + }, +/area/hallway/primary/fore) +"aAk" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aAl" = ( +/obj/machinery/vending/assist, +/turf/open/floor/plasteel/neutral/side{ + dir = 9 + }, +/area/storage/primary) +"aAm" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = 30 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/storage/primary) +"aAn" = ( +/obj/structure/table, +/obj/item/weapon/wrench, +/obj/item/device/analyzer, +/obj/machinery/requests_console{ + department = "Tool Storage"; + departmentType = 0; + pixel_y = 30 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/storage/primary) +"aAo" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/weapon/stock_parts/cell/high/plus, +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = 26 + }, +/obj/item/weapon/screwdriver{ + pixel_y = 16 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/storage/primary) +"aAp" = ( +/obj/structure/table, +/obj/item/device/assembly/igniter{ + pixel_x = -8; + pixel_y = -4 + }, +/obj/item/device/assembly/igniter, +/obj/machinery/camera{ + c_tag = "Primary Tool Storage" + }, +/obj/item/device/assembly/voice, +/obj/structure/noticeboard{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"aAq" = ( +/obj/structure/table, +/obj/item/device/assembly/signaler, +/obj/item/device/assembly/signaler, +/obj/item/device/multitool, +/obj/item/device/multitool, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/obj/item/device/flashlight, +/obj/item/weapon/electronics/airlock, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/storage/primary) +"aAr" = ( +/obj/machinery/vending/tool, +/turf/open/floor/plasteel/neutral/side{ + dir = 5 + }, +/area/storage/primary) +"aAs" = ( +/obj/structure/displaycase/captain, +/turf/open/floor/plasteel/black, +/area/crew_quarters/captain) +"aAt" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/crew_quarters/captain) +"aAu" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/captain) +"aAv" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/captain) +"aAw" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/camera{ + c_tag = "Captain's Office"; + dir = 8; + network = list("SS13") + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light_switch{ + pixel_x = 25 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/captain) +"aAx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/crew_quarters/captain) +"aAy" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/bridge) +"aAz" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners (WEST)"; + dir = 8 + }, +/area/bridge) +"aAA" = ( +/obj/structure/table, +/obj/item/weapon/aiModule/supplied/quarantine, +/obj/machinery/camera/motion{ + c_tag = "AI Upload Port"; + dir = 4 + }, +/obj/item/weapon/aiModule/reset, +/obj/machinery/flasher{ + id = "brigentry"; + pixel_x = -28 + }, +/turf/open/floor/plasteel/darkblue/side{ + dir = 9 + }, +/area/ai_monitored/turret_protected/ai_upload) +"aAB" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/darkblue/corner{ + dir = 1 + }, +/area/ai_monitored/turret_protected/ai_upload) +"aAC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai_upload) +"aAD" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai_upload) +"aAE" = ( +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai_upload) +"aAF" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners (EAST)"; + dir = 4 + }, +/area/ai_monitored/turret_protected/ai_upload) +"aAG" = ( +/obj/structure/table, +/obj/item/weapon/aiModule/supplied/freeform, +/obj/machinery/camera/motion{ + c_tag = "AI Upload Starboard"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/flasher{ + id = "brigentry"; + pixel_x = 28 + }, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (NORTHEAST)"; + dir = 5 + }, +/area/ai_monitored/turret_protected/ai_upload) +"aAH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai_upload) +"aAI" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"aAJ" = ( +/obj/structure/table/wood, +/obj/item/weapon/pen{ + layer = 4 + }, +/obj/machinery/keycard_auth{ + pixel_x = -26; + pixel_y = 6 + }, +/obj/item/weapon/paper_bin{ + layer = 2.9; + pixel_x = 0; + pixel_y = 0; + tag = "every single paper bin is edited to this" + }, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"aAK" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/effect/landmark/start{ + name = "Head of Personnel" + }, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"aAL" = ( +/obj/machinery/holopad, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"aAM" = ( +/turf/open/floor/wood, +/area/crew_quarters/heads) +"aAN" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"aAO" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"aAP" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Head of Personnel"; + req_access = null; + req_access_txt = "57" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"aAQ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j2"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aAR" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + 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/hallway/primary/central) +"aAS" = ( +/obj/machinery/holopad, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aAT" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aAU" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aAV" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/book/bible, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/sleep) +"aAW" = ( +/obj/structure/chair/wood/normal{ + icon_state = "wooden_chair"; + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/sleep) +"aAX" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/sleep) +"aAY" = ( +/obj/machinery/door/airlock{ + id_tag = "Dorm1"; + name = "Dorm 1" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/sleep) +"aAZ" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"aBa" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"aBb" = ( +/obj/machinery/light, +/obj/machinery/camera{ + c_tag = "Dormitories Aft"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = -26 + }, +/turf/open/floor/plasteel/white/corner, +/area/crew_quarters/sleep) +"aBc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side, +/area/crew_quarters/sleep) +"aBd" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/white/side, +/area/crew_quarters/sleep) +"aBe" = ( +/turf/open/floor/plasteel/white/side, +/area/crew_quarters/sleep) +"aBf" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness{ + name = "Recreation Room" + }) +"aBg" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"aBh" = ( +/obj/structure/grille/broken, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"aBi" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"aBj" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"aBk" = ( +/obj/structure/chair, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"aBl" = ( +/obj/structure/chair, +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-y"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"aBm" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"aBn" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"aBo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -28 + }, +/turf/open/floor/plasteel/red/corner{ + tag = "icon-redcorner (WEST)"; + dir = 8 + }, +/area/hallway/primary/fore) +"aBp" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/power/apc{ + dir = 8; + name = "Tool Storage APC"; + pixel_x = -24; + pixel_y = 0 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/storage/primary) +"aBq" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"aBr" = ( +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"aBs" = ( +/turf/open/floor/plasteel, +/area/storage/primary) +"aBt" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 28 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/storage/primary) +"aBu" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/lockbox/medal{ + pixel_y = 0 + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"aBv" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"aBw" = ( +/obj/structure/chair/comfy/brown, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"aBx" = ( +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j1"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/captain) +"aBy" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/captain) +"aBz" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Captain's Office"; + req_access = null; + req_access_txt = "20" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/captain) +"aBA" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/darkblue/corner{ + dir = 4 + }, +/area/bridge) +"aBB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners (WEST)"; + dir = 8 + }, +/area/bridge) +"aBC" = ( +/obj/machinery/porta_turret/ai{ + dir = 8 + }, +/turf/open/floor/plasteel/darkblue/side{ + dir = 8 + }, +/area/ai_monitored/turret_protected/ai_upload) +"aBD" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai_upload) +"aBE" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai_upload) +"aBF" = ( +/obj/machinery/holopad, +/obj/machinery/camera/motion{ + c_tag = "AI Upload Center"; + dir = 1 + }, +/obj/item/device/radio/intercom{ + broadcasting = 1; + frequency = 1447; + listening = 0; + name = "Station Intercom (AI Private)"; + pixel_y = -28 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai_upload) +"aBG" = ( +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai_upload) +"aBH" = ( +/obj/machinery/porta_turret/ai{ + dir = 8 + }, +/obj/structure/sign/kiddieplaque{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (EAST)"; + dir = 4 + }, +/area/ai_monitored/turret_protected/ai_upload) +"aBI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/darkblue/corner, +/area/bridge) +"aBJ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/darkblue/corner{ + dir = 1 + }, +/area/bridge) +"aBK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Head of Personnel"; + req_access = null; + req_access_txt = "57" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/heads) +"aBL" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 4; + icon_state = "pipe-j1s"; + sortType = 15 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"aBM" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"aBN" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"aBO" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"aBP" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads) +"aBQ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4"; + tag = "" + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads) +"aBR" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads) +"aBS" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "Head of Personnel APC"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads) +"aBT" = ( +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aBU" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aBV" = ( +/obj/machinery/newscaster{ + pixel_x = 32; + pixel_y = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aBW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"aBX" = ( +/turf/closed/wall, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"aBY" = ( +/obj/machinery/door/airlock{ + name = "Unisex Restrooms"; + req_access_txt = "0" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"aBZ" = ( +/obj/structure/urinal{ + pixel_y = 32 + }, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"aCa" = ( +/obj/structure/urinal{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"aCb" = ( +/obj/structure/urinal{ + pixel_y = 32 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 23; + pixel_y = 0 + }, +/obj/effect/decal/cleanable/deadcockroach, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"aCc" = ( +/obj/effect/landmark{ + name = "blobstart" + }, +/obj/item/toy/beach_ball/holoball, +/turf/open/floor/plating, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"aCd" = ( +/turf/closed/wall, +/area/maintenance/apmaint) +"aCe" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aCf" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp{ + pixel_x = 3; + pixel_y = 6 + }, +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = -27 + }, +/turf/open/floor/carpet, +/area/security/detectives_office) +"aCg" = ( +/obj/structure/table/wood, +/obj/item/weapon/pen, +/obj/item/weapon/paper_bin{ + layer = 2.9; + pixel_x = 0; + pixel_y = 0; + tag = "every single paper bin is edited to this" + }, +/turf/open/floor/carpet, +/area/security/detectives_office) +"aCh" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/fancy/cigarettes, +/obj/item/weapon/lighter, +/obj/item/clothing/glasses/hud/security/sunglasses, +/turf/open/floor/carpet, +/area/security/detectives_office) +"aCi" = ( +/obj/structure/table/wood, +/obj/machinery/computer/security/wooden_tv, +/turf/open/floor/carpet, +/area/security/detectives_office) +"aCj" = ( +/obj/structure/table/wood, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey{ + pixel_y = 20 + }, +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass{ + pixel_y = 10 + }, +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass{ + pixel_x = 7; + pixel_y = 10 + }, +/turf/open/floor/carpet, +/area/security/detectives_office) +"aCk" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "Detective's Office APC"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"aCl" = ( +/turf/closed/wall, +/area/maintenance/port{ + name = "Monastery Maintenance" + }) +"aCm" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/electrical{ + pixel_x = 2; + pixel_y = 4 + }, +/obj/item/weapon/storage/toolbox/electrical{ + pixel_x = -2 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/storage/primary) +"aCn" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"aCo" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"aCp" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = 2; + pixel_y = 4 + }, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = -2 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/storage/primary) +"aCq" = ( +/obj/structure/table/wood, +/obj/item/weapon/pinpointer, +/obj/item/weapon/disk/nuclear, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"aCr" = ( +/obj/structure/table/wood, +/obj/item/weapon/hand_tele, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"aCs" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/photo_album, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"aCt" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/captain) +"aCu" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/darkblue/corner{ + dir = 4 + }, +/area/bridge) +"aCv" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Bridge Port Entrance"; + dir = 8; + network = list("SS13") + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners (WEST)"; + dir = 8 + }, +/area/bridge) +"aCw" = ( +/obj/structure/table, +/obj/item/weapon/aiModule/core/full/asimov, +/obj/item/weapon/aiModule/core/freeformcore, +/obj/machinery/door/window{ + base_state = "right"; + dir = 4; + icon_state = "right"; + name = "Core Modules"; + req_access_txt = "20" + }, +/obj/item/weapon/aiModule/core/full/corp, +/obj/item/weapon/aiModule/core/full/custom, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/machinery/flasher{ + id = "brigentry"; + pixel_x = -28 + }, +/turf/open/floor/plasteel/darkblue/side{ + dir = 10 + }, +/area/ai_monitored/turret_protected/ai_upload) +"aCx" = ( +/obj/machinery/light, +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 2; + name = "Upload APC"; + pixel_y = -24 + }, +/obj/structure/cable, +/turf/open/floor/plasteel/darkblue/side, +/area/ai_monitored/turret_protected/ai_upload) +"aCy" = ( +/obj/machinery/computer/upload/ai, +/obj/machinery/flasher{ + id = "AI"; + pixel_x = 0; + pixel_y = -24 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai_upload) +"aCz" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/door/airlock/maintenance{ + name = "Monastery Maintenance"; + req_access_txt = "0"; + req_one_access_txt = "22;24;10;11" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Monastery Maintenance" + }) +"aCA" = ( +/obj/machinery/computer/upload/borg, +/obj/machinery/flasher{ + id = "AI"; + pixel_x = 0; + pixel_y = -24 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai_upload) +"aCB" = ( +/obj/machinery/light, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel/darkblue/side, +/area/ai_monitored/turret_protected/ai_upload) +"aCC" = ( +/obj/structure/table, +/obj/item/weapon/aiModule/supplied/oxygen, +/obj/item/weapon/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/weapon/aiModule/reset/purge, +/obj/item/weapon/aiModule/core/full/antimov, +/obj/item/weapon/aiModule/supplied/protectStation, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/machinery/flasher{ + id = "brigentry"; + pixel_x = 28 + }, +/turf/open/floor/plasteel/darkblue/side{ + dir = 6 + }, +/area/ai_monitored/turret_protected/ai_upload) +"aCD" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Bridge Starboard Entrance"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/darkblue/corner, +/area/bridge) +"aCE" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/darkblue/corner{ + dir = 1 + }, +/area/bridge) +"aCF" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"aCG" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-24"; + layer = 4.1 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"aCH" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/box/PDAs{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/weapon/storage/box/silver_ids, +/obj/item/weapon/storage/box/ids, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"aCI" = ( +/obj/machinery/computer/secure_data, +/turf/open/floor/carpet, +/area/crew_quarters/heads) +"aCJ" = ( +/obj/machinery/computer/card, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads) +"aCK" = ( +/obj/structure/chair/office/dark, +/obj/machinery/button/flasher{ + id = "hopflash"; + pixel_x = 38; + pixel_y = -25 + }, +/obj/machinery/button/door{ + id = "hop"; + name = "Privacy Shutters Control"; + pixel_x = 25; + pixel_y = -26; + req_access_txt = "28" + }, +/obj/machinery/button/door{ + id = "hopqueue"; + name = "Queue Shutters Control"; + pixel_x = 25; + pixel_y = -36; + req_access_txt = "28" + }, +/obj/machinery/light_switch{ + pixel_x = 38; + pixel_y = -35 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads) +"aCL" = ( +/obj/structure/table/wood, +/obj/item/weapon/stamp/hop{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = 27; + pixel_y = 0 + }, +/obj/item/weapon/paper_bin{ + layer = 2.9; + pixel_x = 0; + pixel_y = 0; + tag = "every single paper bin is edited to this" + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads) +"aCM" = ( +/obj/machinery/camera{ + c_tag = "Central Primary Hallway Vault"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = -27 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aCN" = ( +/turf/closed/wall, +/area/storage/emergency) +"aCO" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plating, +/area/storage/emergency) +"aCP" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/storage/emergency) +"aCQ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"aCR" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"aCS" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"aCT" = ( +/obj/structure/sink{ + icon_state = "sink"; + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/structure/mirror{ + pixel_x = -28 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"aCU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"aCV" = ( +/obj/machinery/light_switch{ + pixel_y = 25 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"aCW" = ( +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"aCX" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1 + }, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"aCY" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"aCZ" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aDa" = ( +/obj/structure/bodycontainer/morgue, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/turf/open/floor/plasteel/black, +/area/security/detectives_office) +"aDb" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/security/detectives_office) +"aDc" = ( +/obj/item/weapon/storage/secure/safe{ + pixel_x = -22 + }, +/turf/open/floor/carpet, +/area/security/detectives_office) +"aDd" = ( +/turf/open/floor/carpet, +/area/security/detectives_office) +"aDe" = ( +/obj/structure/chair/comfy/brown{ + buildstackamount = 0; + dir = 1 + }, +/obj/effect/landmark/start{ + name = "Detective" + }, +/turf/open/floor/carpet, +/area/security/detectives_office) +"aDf" = ( +/obj/structure/table/wood, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/device/taperecorder, +/turf/open/floor/carpet, +/area/security/detectives_office) +"aDg" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"aDh" = ( +/obj/machinery/camera{ + c_tag = "Fore Primary Hallway Entrance"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/corner{ + tag = "icon-redcorner (WEST)"; + dir = 8 + }, +/area/hallway/primary/fore) +"aDi" = ( +/obj/structure/table, +/obj/item/stack/cable_coil{ + pixel_x = 3; + pixel_y = -7 + }, +/obj/item/weapon/electronics/apc, +/obj/item/device/t_scanner, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/storage/primary) +"aDj" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/storage/primary) +"aDk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/storage/primary) +"aDl" = ( +/obj/structure/table, +/obj/item/weapon/weldingtool, +/obj/item/weapon/crowbar, +/obj/item/stack/packageWrap, +/obj/item/stack/packageWrap, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/storage/primary) +"aDm" = ( +/obj/structure/table/wood, +/obj/item/device/camera, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"aDn" = ( +/obj/structure/chair/comfy/brown{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"aDo" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/darkblue/side, +/area/crew_quarters/captain) +"aDp" = ( +/turf/open/floor/plasteel/darkblue/side, +/area/crew_quarters/captain) +"aDq" = ( +/obj/structure/grille, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hop"; + layer = 2.9; + name = "Privacy Shutters" + }, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plating, +/area/crew_quarters/heads) +"aDr" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/brigdoor{ + base_state = "rightsecure"; + dir = 1; + icon_state = "rightsecure"; + name = "Head of Personnel's Desk"; + req_access_txt = "57" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/window/northleft{ + dir = 2; + icon_state = "left"; + name = "Reception Window"; + req_access_txt = "0" + }, +/obj/machinery/door/poddoor{ + density = 0; + icon_state = "open"; + id = "hop"; + layer = 3.1; + name = "privacy shutters"; + opacity = 0 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads) +"aDs" = ( +/obj/machinery/vending/snack, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aDt" = ( +/obj/item/weapon/extinguisher, +/obj/machinery/power/apc{ + dir = 8; + name = "Starboard Emergency Storage APC"; + pixel_x = -24; + pixel_y = 0 + }, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/turf/open/floor/plating, +/area/storage/emergency) +"aDu" = ( +/obj/item/weapon/storage/box/lights/mixed, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/storage/emergency) +"aDv" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"aDw" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"aDx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/maintenance/port{ + name = "Monastery Maintenance" + }) +"aDy" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"aDz" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"aDA" = ( +/obj/machinery/door/airlock{ + name = "Unisex Showers"; + req_access_txt = "0" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"aDB" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"aDC" = ( +/obj/machinery/shower{ + dir = 8 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"aDD" = ( +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aDE" = ( +/obj/structure/sign/poster{ + pixel_x = 0; + pixel_y = 32 + }, +/obj/effect/decal/cleanable/vomit/old, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aDF" = ( +/obj/structure/sink/kitchen{ + pixel_y = 28 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aDG" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/glass/bowl, +/obj/item/weapon/reagent_containers/glass/bowl, +/obj/item/weapon/reagent_containers/food/condiment/rice, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/decal/cleanable/cobweb{ + icon_state = "cobweb2" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aDH" = ( +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aDI" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"aDJ" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/escape) +"aDK" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/bodybags, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/black, +/area/security/detectives_office) +"aDL" = ( +/turf/open/floor/plasteel/black, +/area/security/detectives_office) +"aDM" = ( +/obj/machinery/door/morgue{ + name = "Morgue" + }, +/turf/open/floor/plasteel/black, +/area/security/detectives_office) +"aDN" = ( +/obj/machinery/computer/med_data, +/turf/open/floor/carpet, +/area/security/detectives_office) +"aDO" = ( +/obj/machinery/computer/secure_data, +/obj/machinery/light, +/obj/machinery/camera{ + c_tag = "Detective's Office"; + dir = 1 + }, +/turf/open/floor/carpet, +/area/security/detectives_office) +"aDP" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/carpet, +/area/security/detectives_office) +"aDQ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"aDR" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Central Access" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aDS" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Central Access" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aDT" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Central Access" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aDU" = ( +/obj/structure/rack, +/obj/item/weapon/wirecutters, +/obj/item/device/flashlight, +/obj/item/device/gps, +/turf/open/floor/plasteel/neutral/side{ + dir = 10 + }, +/area/storage/primary) +"aDV" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plasteel/neutral/side, +/area/storage/primary) +"aDW" = ( +/obj/structure/table, +/obj/item/weapon/crowbar, +/obj/item/device/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/clothing/gloves/color/fyellow, +/obj/item/clothing/gloves/color/fyellow, +/obj/item/device/assembly/timer, +/obj/item/device/radio, +/turf/open/floor/plasteel/neutral/side, +/area/storage/primary) +"aDX" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular, +/obj/item/weapon/reagent_containers/glass/beaker, +/turf/open/floor/plasteel/neutral/side, +/area/storage/primary) +"aDY" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/neutral/side, +/area/storage/primary) +"aDZ" = ( +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel/neutral/side{ + dir = 6 + }, +/area/storage/primary) +"aEa" = ( +/obj/machinery/vending/boozeomat{ + products = list(/obj/item/weapon/reagent_containers/food/drinks/bottle/rum = 1, /obj/item/weapon/reagent_containers/food/drinks/bottle/wine = 1, /obj/item/weapon/reagent_containers/food/drinks/ale = 1, /obj/item/weapon/reagent_containers/food/drinks/drinkingglass = 6, /obj/item/weapon/reagent_containers/food/drinks/ice = 1, /obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass = 4); + req_access_txt = "20" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/captain) +"aEb" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/crew_quarters/captain) +"aEc" = ( +/obj/machinery/computer/arcade, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/crew_quarters/captain) +"aEd" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-09"; + name = "Photosynthetic Potted plant"; + pixel_y = 10 + }, +/turf/open/floor/plating/airless, +/area/space) +"aEe" = ( +/obj/machinery/vending/cola, +/turf/open/floor/plasteel/delivery, +/area/hallway/primary/central) +"aEf" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/bot, +/area/hallway/primary/central) +"aEg" = ( +/turf/open/floor/plasteel/bot, +/area/hallway/primary/central) +"aEh" = ( +/obj/machinery/flasher{ + id = "hopflash"; + pixel_x = 28; + pixel_y = -28 + }, +/turf/open/floor/plasteel/delivery, +/area/hallway/primary/central) +"aEi" = ( +/obj/structure/table, +/obj/item/weapon/pen, +/obj/item/weapon/paper_bin{ + layer = 2.9; + pixel_x = 0; + pixel_y = 0; + tag = "every single paper bin is edited to this" + }, +/turf/open/floor/plasteel/delivery, +/area/hallway/primary/central) +"aEj" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aEk" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/item/weapon/storage/toolbox/emergency, +/turf/open/floor/plating, +/area/storage/emergency) +"aEl" = ( +/obj/machinery/space_heater, +/obj/structure/sign/poster{ + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/storage/emergency) +"aEm" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8; + initialize_directions = 11 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"aEn" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"aEo" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"aEp" = ( +/obj/machinery/shower{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"aEq" = ( +/obj/machinery/shower{ + dir = 8 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"aEr" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/snacks/cookie{ + desc = "It has a distinctly eldritch taste to it."; + name = "grandma's cookie" + }, +/obj/item/weapon/cigbutt, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aEs" = ( +/obj/structure/chair/stool, +/obj/item/clothing/suit/apron/chef, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aEt" = ( +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aEu" = ( +/obj/machinery/hydroponics/constructable, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aEv" = ( +/obj/structure/closet/coffin, +/obj/item/toy/figure/lawyer, +/obj/effect/decal/cleanable/cobweb{ + icon_state = "cobweb2" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aEw" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aEx" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 2; + pixel_y = 3 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aEy" = ( +/obj/machinery/computer/emergency_shuttle, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aEz" = ( +/obj/structure/table, +/obj/machinery/recharger, +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aEA" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"aEB" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Detective Maintenance"; + req_access_txt = "4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/security/detectives_office) +"aEC" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aED" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aEE" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aEF" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/storage/primary) +"aEG" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Primary Tool Storage" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/storage/primary) +"aEH" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Primary Tool Storage" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/storage/primary) +"aEI" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = 0; + pixel_y = 3 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aEJ" = ( +/obj/machinery/computer/arcade, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aEK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "bridge blast door" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_command{ + cyclelinkeddir = 1; + name = "Bridge Access"; + req_access_txt = "19" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/vault, +/area/bridge) +"aEL" = ( +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "bridge blast door" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_command{ + cyclelinkeddir = 1; + name = "Bridge Access"; + req_access_txt = "19" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault, +/area/bridge) +"aEM" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"aEN" = ( +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "bridge blast door" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_command{ + cyclelinkeddir = 1; + name = "Bridge Access"; + req_access_txt = "19" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault, +/area/bridge) +"aEO" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hopqueue"; + name = "HoP Queue Shutters" + }, +/turf/open/floor/plasteel/loadingarea{ + dir = 1 + }, +/area/hallway/primary/central) +"aEP" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hopqueue"; + name = "HoP Queue Shutters" + }, +/turf/open/floor/plasteel/loadingarea, +/area/hallway/primary/central) +"aEQ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aER" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/crew_quarters/sleep) +"aES" = ( +/obj/machinery/door/airlock{ + name = "Starboard Emergency Storage"; + req_access_txt = "0" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/storage/emergency) +"aET" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"aEU" = ( +/obj/machinery/door/airlock{ + name = "Unit 1" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"aEV" = ( +/obj/machinery/door/airlock{ + name = "Unit 2" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"aEW" = ( +/obj/machinery/shower{ + dir = 4 + }, +/obj/item/weapon/soap/nanotrasen, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"aEX" = ( +/obj/structure/closet/crate, +/obj/item/weapon/cultivator, +/obj/item/weapon/shovel/spade, +/obj/item/weapon/storage/bag/plants/portaseeder, +/obj/item/seeds/wheat/rice, +/obj/item/seeds/replicapod, +/obj/item/seeds/carrot, +/obj/item/seeds/tomato, +/obj/item/weapon/reagent_containers/glass/bottle/nutrient/ez, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aEY" = ( +/obj/effect/decal/cleanable/egg_smudge, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aEZ" = ( +/turf/closed/wall, +/area/library) +"aFa" = ( +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"aFb" = ( +/obj/structure/chair/comfy/black{ + tag = "icon-comfychair (NORTH)"; + icon_state = "comfychair"; + dir = 1 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"aFc" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"aFd" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"aFe" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"aFf" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"aFg" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4; + initialize_directions = 11 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"aFh" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8; + initialize_directions = 11 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aFi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=Dorms"; + location = "Tool" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aFj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aFk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aFl" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"aFm" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/sign/map{ + icon_state = "map-pubby"; + pixel_y = 32 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"aFn" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1; + initialize_directions = 11 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aFo" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aFp" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1; + initialize_directions = 11 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aFq" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aFr" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"aFs" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"aFt" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"aFu" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/junction, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/blue/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"aFv" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/blue/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"aFw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"aFx" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"aFy" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/blue/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"aFz" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"aFA" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/sign/map{ + icon_state = "map-pubby"; + pixel_y = 32 + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"aFB" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aFC" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aFD" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Dormitory" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"aFE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"aFF" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"aFG" = ( +/obj/machinery/vending/cigarette, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/crew_quarters/sleep) +"aFH" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "Dormitory Bathrooms APC"; + pixel_x = 26; + pixel_y = 0 + }, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"aFI" = ( +/obj/structure/toilet{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"aFJ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"aFK" = ( +/obj/structure/mineral_door/iron, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aFL" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aFM" = ( +/obj/structure/closet/coffin, +/obj/item/toy/figure/librarian, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aFN" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/space, +/area/solar/starboard{ + name = "Starboard Solar Array" + }) +"aFO" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/space, +/area/solar/port{ + name = "Port Solar Array" + }) +"aFP" = ( +/obj/machinery/door/airlock/centcom{ + name = "Library" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/carpet, +/area/library) +"aFQ" = ( +/obj/structure/closet, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"aFR" = ( +/obj/machinery/vending/cola, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"aFS" = ( +/obj/machinery/computer/atmos_alert, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aFT" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"aFU" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"aFV" = ( +/obj/machinery/computer/security, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aFW" = ( +/obj/structure/chair, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"aFX" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"aFY" = ( +/obj/structure/chair/stool, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"aFZ" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"aGa" = ( +/turf/closed/wall, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aGb" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"aGc" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"aGd" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + layer = 2.4; + on = 1 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=Dorms"; + location = "Tool" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aGe" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aGf" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aGg" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aGh" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aGi" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aGj" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aGk" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aGl" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aGm" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aGn" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aGo" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aGp" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aGq" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aGr" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4; + initialize_directions = 11 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aGs" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aGt" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j2"; + dir = 2 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aGu" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8; + initialize_directions = 11 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=Robo"; + location = "HoP" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aGv" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aGw" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Dormitory" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"aGx" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"aGy" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"aGz" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"aGA" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"aGB" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=HoP"; + location = "Dorms" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"aGC" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + 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/crew_quarters/sleep) +"aGD" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/crew_quarters/sleep) +"aGE" = ( +/obj/machinery/door/airlock{ + name = "Unisex Restrooms"; + req_access_txt = "0" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"aGF" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"aGG" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"aGH" = ( +/obj/item/chair, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aGI" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/oil{ + icon_state = "floor6" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/apmaint) +"aGJ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aGK" = ( +/obj/structure/grille, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aGL" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4; + initialize_directions = 11 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aGM" = ( +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"aGN" = ( +/obj/machinery/computer/crew, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aGO" = ( +/obj/machinery/computer/communications, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aGP" = ( +/obj/machinery/flasher{ + id = "shuttle_flasher"; + pixel_x = -24; + pixel_y = 6 + }, +/obj/machinery/button/flasher{ + id = "shuttle_flasher"; + pixel_x = -24; + pixel_y = -6 + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"aGQ" = ( +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"aGR" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-17" + }, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = -32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aGS" = ( +/obj/structure/chair, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aGT" = ( +/obj/structure/chair, +/obj/machinery/status_display{ + density = 0; + layer = 4; + pixel_x = 0; + pixel_y = 30 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aGU" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-17" + }, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (NORTHEAST)"; + dir = 5 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aGV" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/sign/directions/security{ + dir = 1; + icon_state = "direction_sec"; + pixel_x = 32; + pixel_y = -26 + }, +/obj/structure/sign/directions/medical{ + pixel_x = 32; + pixel_y = -38 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aGW" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aGX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aGY" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aGZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aHa" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aHb" = ( +/obj/machinery/camera{ + c_tag = "Central Primary Hallway Bathroom"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aHc" = ( +/obj/machinery/door/airlock/centcom{ + name = "Library" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/carpet, +/area/library) +"aHd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"aHe" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"aHf" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/blue/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"aHg" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"aHh" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"aHi" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plating/abductor, +/area/shuttle/abandoned) +"aHj" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/blue/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"aHk" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"aHl" = ( +/obj/machinery/camera{ + c_tag = "Central Primary Hallway EVA"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"aHm" = ( +/obj/structure/sign/directions/security{ + dir = 8; + icon_state = "direction_sec"; + pixel_x = -32; + pixel_y = -24; + tag = "icon-direction_sec (WEST)" + }, +/obj/structure/sign/directions/evac{ + dir = 1; + icon_state = "direction_evac"; + pixel_x = -32; + pixel_y = -32; + tag = "icon-direction_evac (NORTH)" + }, +/obj/structure/sign/directions/science{ + pixel_x = -32; + pixel_y = -40 + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aHn" = ( +/obj/machinery/computer/shuttle/white_ship, +/turf/open/floor/plating/abductor, +/area/shuttle/abandoned) +"aHo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aHp" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aHq" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Dormitory" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"aHr" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"aHs" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"aHt" = ( +/obj/machinery/camera{ + c_tag = "Dormitories Hallway"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"aHu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"aHv" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-04"; + layer = 4.1 + }, +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/crew_quarters/sleep) +"aHw" = ( +/obj/machinery/light_switch{ + pixel_x = -25 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"aHx" = ( +/obj/machinery/door/airlock{ + name = "Unit B" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"aHy" = ( +/obj/machinery/recharge_station, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Dormitory Cyborg Recharging Station"; + dir = 2 + }, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"aHz" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aHA" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aHB" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aHC" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aHD" = ( +/mob/living/simple_animal/mouse/gray, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/apmaint) +"aHE" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aHF" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plating/abductor, +/area/shuttle/abandoned) +"aHG" = ( +/obj/machinery/door/airlock/glass{ + name = "Shuttle Airlock" + }, +/obj/docking_port/mobile{ + dheight = 0; + dir = 8; + dwidth = 4; + height = 9; + id = "whiteship"; + launch_status = 0; + name = "White Ship"; + port_angle = 90; + preferred_direction = 1; + roundstart_move = "whiteship_away"; + timid = null; + width = 9 + }, +/obj/docking_port/stationary{ + dir = 8; + dwidth = 11; + height = 22; + id = "whiteship_home"; + name = "monastery"; + turf_type = /turf/open/space; + width = 35 + }, +/turf/open/floor/plasteel/black, +/area/shuttle/abandoned) +"aHH" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"aHI" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"aHJ" = ( +/obj/machinery/door/airlock/glass{ + name = "Emergency Shuttle Cockpit"; + req_access_txt = "19" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"aHK" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"aHL" = ( +/obj/machinery/door/airlock/titanium{ + name = "Emergency Shuttle Airlock"; + req_access_txt = "2" + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"aHM" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 4; + name = "Escape Airlock" + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aHN" = ( +/turf/open/floor/plating, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aHO" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 8; + name = "Escape Airlock" + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aHP" = ( +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aHQ" = ( +/turf/open/floor/plasteel, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aHR" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/camera{ + c_tag = "Departure Lounge Holding Area"; + dir = 8 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0 + }, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (EAST)"; + dir = 4 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aHS" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aHT" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = 32 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/chapel/main{ + name = "Monastery" + }) +"aHU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/central) +"aHV" = ( +/turf/closed/wall, +/area/storage/art) +"aHW" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/storage/art) +"aHX" = ( +/obj/machinery/door/airlock/glass{ + name = "Art Storage" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/storage/art) +"aHY" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/crew_quarters/cafeteria{ + name = "Lunchroom" + }) +"aHZ" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/crew_quarters/cafeteria{ + name = "Lunchroom" + }) +"aIa" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Lunchroom" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/cafeteria{ + name = "Lunchroom" + }) +"aIb" = ( +/turf/closed/wall, +/area/crew_quarters/cafeteria{ + name = "Lunchroom" + }) +"aIc" = ( +/turf/closed/wall, +/area/crew_quarters/toilet{ + name = "\improper Auxiliary Restroom" + }) +"aId" = ( +/obj/machinery/door/airlock{ + id_tag = "Potty1"; + name = "Unisex Restrooms"; + req_access_txt = "0" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet{ + name = "\improper Auxiliary Restroom" + }) +"aIe" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/crew_quarters/toilet{ + name = "\improper Auxiliary Restroom" + }) +"aIf" = ( +/turf/closed/wall, +/area/maintenance/fsmaint2) +"aIg" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aIh" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel, +/area/maintenance/fsmaint2) +"aIi" = ( +/obj/machinery/camera{ + c_tag = "Central Primary Hallway Bridge"; + dir = 1 + }, +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel, +/area/maintenance/fsmaint2) +"aIj" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plasteel, +/area/maintenance/fsmaint2) +"aIk" = ( +/turf/closed/wall/r_wall, +/area/storage/eva) +"aIl" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/storage/eva) +"aIm" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters{ + id = "evashutter"; + name = "EVA Storage Shutters" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/delivery, +/area/storage/eva) +"aIn" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_command{ + name = "EVA Storage"; + req_access_txt = "18" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/storage/eva) +"aIo" = ( +/turf/closed/wall/r_wall, +/area/teleporter) +"aIp" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/glass_command{ + name = "Teleporter"; + req_access_txt = "17" + }, +/turf/open/floor/plasteel, +/area/teleporter) +"aIq" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/obj/machinery/camera{ + c_tag = "Monastery Secondary Dock"; + dir = 8; + network = list("SS13","Monastery") + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"aIr" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"aIs" = ( +/turf/closed/wall, +/area/security/checkpoint/supply) +"aIt" = ( +/turf/closed/wall, +/area/quartermaster/office) +"aIu" = ( +/turf/closed/wall, +/area/quartermaster/storage) +"aIv" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Cargo Bay Warehouse Maintenance"; + req_access_txt = "31" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/quartermaster/storage) +"aIw" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aIx" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aIy" = ( +/obj/structure/girder, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aIz" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aIA" = ( +/obj/item/weapon/storage/box/mousetraps, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aIB" = ( +/turf/closed/wall, +/area/maintenance/disposal) +"aIC" = ( +/obj/machinery/door/poddoor{ + id = "trash"; + name = "disposal bay door" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"aID" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/disposal) +"aIE" = ( +/obj/machinery/door/airlock/glass{ + name = "Emergency Shuttle Brig"; + req_access_txt = "2" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"aIF" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"aIG" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aIH" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aII" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aIJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/red/side, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aIK" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aIL" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/central) +"aIM" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/storage/art) +"aIN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/easel, +/obj/item/weapon/canvas/twentythreeXnineteen, +/turf/open/floor/plasteel/neutral/side{ + dir = 9 + }, +/area/storage/art) +"aIO" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel, +/area/storage/art) +"aIP" = ( +/obj/machinery/photocopier, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 23; + pixel_y = 0 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 5 + }, +/area/storage/art) +"aIQ" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/snacks/friedegg, +/obj/item/weapon/kitchen/fork, +/turf/open/floor/plasteel/neutral/side{ + dir = 9 + }, +/area/crew_quarters/cafeteria{ + name = "Lunchroom" + }) +"aIR" = ( +/obj/structure/chair{ + dir = 8; + name = "Defense" + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/crew_quarters/cafeteria{ + name = "Lunchroom" + }) +"aIS" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/cafeteria{ + name = "Lunchroom" + }) +"aIT" = ( +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/obj/machinery/vending/cola, +/turf/open/floor/plasteel/neutral/side{ + dir = 5 + }, +/area/crew_quarters/cafeteria{ + name = "Lunchroom" + }) +"aIU" = ( +/obj/structure/sink{ + icon_state = "sink"; + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet{ + name = "\improper Auxiliary Restroom" + }) +"aIV" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet{ + name = "\improper Auxiliary Restroom" + }) +"aIW" = ( +/obj/structure/urinal{ + pixel_y = 32 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/button/door{ + id = "Potty1"; + name = "Bathroom Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 25; + pixel_y = 4; + req_access_txt = "0"; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/machinery/light_switch{ + pixel_x = 36; + pixel_y = 6 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet{ + name = "\improper Auxiliary Restroom" + }) +"aIX" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aIY" = ( +/obj/structure/closet/coffin, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aIZ" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fsmaint2) +"aJa" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/fsmaint2) +"aJb" = ( +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aJc" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fsmaint2) +"aJd" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aJe" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fsmaint2) +"aJf" = ( +/obj/structure/girder, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fsmaint2) +"aJg" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/button/door{ + id = "evashutter"; + name = "EVA Shutters Control"; + pixel_x = -24; + pixel_y = 0; + req_access_txt = "18" + }, +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (EAST)"; + dir = 4 + }, +/area/storage/eva) +"aJh" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/storage/eva) +"aJi" = ( +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/storage/eva) +"aJj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/storage/eva) +"aJk" = ( +/obj/structure/closet/crate/rcd, +/turf/open/floor/plasteel/darkwarning{ + dir = 8 + }, +/area/storage/eva) +"aJl" = ( +/turf/closed/wall, +/area/storage/eva) +"aJm" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Teleporter APC"; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-14"; + layer = 4.1 + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 1 + }, +/area/teleporter) +"aJn" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 1 + }, +/area/teleporter) +"aJo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/teleporter) +"aJp" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 4 + }, +/area/teleporter) +"aJq" = ( +/obj/structure/closet/crate, +/obj/machinery/button/door{ + id = "teleshutter"; + name = "Teleporter Shutters Control"; + pixel_x = 25; + pixel_y = -5; + req_access_txt = "17" + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 4 + }, +/area/teleporter) +"aJr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/brown/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"aJs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/brown/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"aJt" = ( +/obj/item/weapon/pen, +/obj/structure/table, +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + pixel_x = -32; + pixel_y = 0 + }, +/obj/structure/reagent_dispensers/peppertank{ + pixel_y = 30 + }, +/obj/item/weapon/paper_bin{ + layer = 2.9; + pixel_x = 0; + pixel_y = 0; + tag = "every single paper bin is edited to this" + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/checkpoint/supply) +"aJu" = ( +/obj/machinery/computer/security/mining, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Cargo Security Post"; + dir = 2; + network = list("SS13") + }, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/checkpoint/supply) +"aJv" = ( +/obj/machinery/computer/secure_data, +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = 26 + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/checkpoint/supply) +"aJw" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "packageSort2" + }, +/obj/structure/disposaloutlet{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plating, +/area/quartermaster/office) +"aJx" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "packageSort2" + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/quartermaster/office) +"aJy" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "packageSort2" + }, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/status_display{ + density = 0; + layer = 4; + pixel_x = 0; + pixel_y = 30; + supply_display = 1 + }, +/turf/open/floor/plating, +/area/quartermaster/office) +"aJz" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "packageSort2" + }, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/sign/poster{ + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/quartermaster/office) +"aJA" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "packageSort2" + }, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/quartermaster/office) +"aJB" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "packageSort2" + }, +/turf/open/floor/plating, +/area/quartermaster/office) +"aJC" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "packageSort2" + }, +/obj/structure/plasticflaps{ + opacity = 0 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/quartermaster/office) +"aJD" = ( +/obj/machinery/disposal/deliveryChute{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/quartermaster/office) +"aJE" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/quartermaster/storage) +"aJF" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"aJG" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"aJH" = ( +/obj/structure/closet/crate, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"aJI" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/sign/poster{ + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"aJJ" = ( +/obj/structure/closet/cardboard, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Cargo Warehouse"; + dir = 2 + }, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"aJK" = ( +/obj/item/weapon/cigbutt/cigarbutt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"aJL" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"aJM" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aJN" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aJO" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/effect/decal/cleanable/ash, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aJP" = ( +/obj/structure/grille/broken, +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/item/weapon/crowbar, +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aJQ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/carpet, +/area/chapel/main{ + name = "Monastery" + }) +"aJR" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aJS" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aJT" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aJU" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/effect/decal/cleanable/cobweb{ + icon_state = "cobweb2" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aJV" = ( +/obj/machinery/button/massdriver{ + id = "trash"; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plating/warnplate{ + icon_plating = "warnplate" + }, +/area/maintenance/disposal) +"aJW" = ( +/obj/machinery/conveyor_switch/oneway{ + convdir = 1; + id = "garbagestacked"; + name = "disposal coveyor" + }, +/turf/open/floor/plating/warnplate{ + icon_plating = "warnplate" + }, +/area/maintenance/disposal) +"aJX" = ( +/turf/open/floor/plating/warnplate{ + icon_plating = "warnplate" + }, +/area/maintenance/disposal) +"aJY" = ( +/turf/open/floor/plating/warnplate/corner{ + dir = 1 + }, +/area/maintenance/disposal) +"aJZ" = ( +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aKa" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Holding Area"; + req_access_txt = "2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aKb" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aKc" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aKd" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8; + initialize_directions = 11 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aKe" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aKf" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/central) +"aKg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/storage/art) +"aKh" = ( +/obj/structure/table, +/obj/item/stack/cable_coil/random{ + layer = 3.4 + }, +/obj/item/stack/cable_coil/random{ + layer = 3.3 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/stack/cable_coil/random{ + layer = 3.2 + }, +/obj/item/stack/cable_coil/random{ + layer = 3.1 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/storage/art) +"aKi" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/storage/art) +"aKj" = ( +/obj/structure/table, +/obj/item/weapon/airlock_painter, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + dir = 4; + name = "Art Storage APC"; + pixel_x = 24; + pixel_y = 0 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/storage/art) +"aKk" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 10 + }, +/area/crew_quarters/cafeteria{ + name = "Lunchroom" + }) +"aKl" = ( +/obj/machinery/light, +/obj/machinery/camera{ + c_tag = "Lunchroom"; + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -28 + }, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/cafeteria{ + name = "Lunchroom" + }) +"aKm" = ( +/obj/structure/cable, +/obj/machinery/power/apc{ + dir = 2; + name = "Cafeteria APC"; + pixel_x = 0; + pixel_y = -24 + }, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/cafeteria{ + name = "Lunchroom" + }) +"aKn" = ( +/obj/machinery/vending/sustenance{ + contraband = list(/obj/item/weapon/kitchen/knife = 6, /obj/item/weapon/reagent_containers/food/drinks/coffee = 12); + desc = "A vending machine which vends food."; + product_ads = "Sufficiently healthy." + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 6 + }, +/area/crew_quarters/cafeteria{ + name = "Lunchroom" + }) +"aKo" = ( +/obj/structure/toilet{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet{ + name = "\improper Auxiliary Restroom" + }) +"aKp" = ( +/obj/machinery/light/small, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet{ + name = "\improper Auxiliary Restroom" + }) +"aKq" = ( +/obj/structure/cable, +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 2; + name = "Auxiliary Restrooms APC"; + pixel_y = -24 + }, +/obj/item/weapon/soap/nanotrasen, +/obj/machinery/shower{ + dir = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet{ + name = "\improper Auxiliary Restroom" + }) +"aKr" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fsmaint2) +"aKs" = ( +/obj/item/weapon/storage/box/lights/mixed, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aKt" = ( +/obj/item/weapon/extinguisher, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/fsmaint2) +"aKu" = ( +/obj/structure/grille/broken, +/obj/item/weapon/crowbar, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fsmaint2) +"aKv" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aKw" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aKx" = ( +/obj/item/trash/pistachios, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aKy" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aKz" = ( +/obj/item/weapon/shard{ + icon_state = "small" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aKA" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fsmaint2) +"aKB" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/clothing/shoes/magboots{ + pixel_x = -4; + pixel_y = 3 + }, +/obj/item/clothing/shoes/magboots{ + pixel_x = 0; + pixel_y = 0 + }, +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = -27 + }, +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (EAST)"; + dir = 4 + }, +/area/storage/eva) +"aKC" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/storage/eva) +"aKD" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/weapon/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000 + }, +/obj/item/weapon/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000 + }, +/turf/open/floor/plasteel/warning/end{ + dir = 1 + }, +/area/storage/eva) +"aKE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/storage/eva) +"aKF" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/tank/jetpack/carbondioxide{ + pixel_x = 0; + pixel_y = 0 + }, +/obj/item/weapon/tank/jetpack/carbondioxide{ + pixel_x = -4; + pixel_y = 1 + }, +/turf/open/floor/plasteel/darkwarning{ + dir = 8 + }, +/area/storage/eva) +"aKG" = ( +/obj/structure/closet/crate, +/obj/item/weapon/melee/flyswatter, +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = -27 + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 1 + }, +/area/teleporter) +"aKH" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/teleporter) +"aKI" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/teleporter) +"aKJ" = ( +/turf/open/floor/plasteel, +/area/teleporter) +"aKK" = ( +/turf/open/floor/plasteel/blue/corner{ + dir = 4 + }, +/area/teleporter) +"aKL" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters{ + id = "teleshutter"; + name = "Teleporter Shutters" + }, +/turf/open/floor/plasteel/delivery, +/area/teleporter) +"aKM" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/brown/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"aKN" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aKO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/brown/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"aKP" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/checkpoint/supply) +"aKQ" = ( +/obj/machinery/recharger{ + pixel_y = 4 + }, +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/checkpoint/supply) +"aKR" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/effect/landmark/start/depsec/supply, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"aKS" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/checkpoint/supply) +"aKT" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/disposalpipe/wrapsortjunction{ + dir = 1 + }, +/turf/open/floor/plating, +/area/quartermaster/office) +"aKU" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/quartermaster/office) +"aKV" = ( +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/quartermaster/office) +"aKW" = ( +/obj/machinery/conveyor_switch/oneway{ + id = "packageSort2" + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/quartermaster/office) +"aKX" = ( +/obj/structure/table, +/obj/item/device/destTagger, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/quartermaster/office) +"aKY" = ( +/obj/item/stack/wrapping_paper{ + pixel_x = 3; + pixel_y = 4 + }, +/obj/item/stack/packageWrap{ + pixel_x = -1; + pixel_y = -1 + }, +/obj/structure/table, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/quartermaster/office) +"aKZ" = ( +/obj/item/weapon/storage/box, +/obj/item/weapon/storage/box, +/obj/item/weapon/storage/box, +/obj/item/weapon/hand_labeler, +/obj/item/weapon/hand_labeler, +/obj/structure/table, +/obj/machinery/requests_console{ + department = "Cargo Bay"; + departmentType = 2; + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/quartermaster/office) +"aLa" = ( +/obj/structure/closet/crate/freezer, +/obj/structure/sign/poster{ + pixel_x = -32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"aLb" = ( +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"aLc" = ( +/obj/structure/closet/crate, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"aLd" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aLe" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aLf" = ( +/obj/machinery/mass_driver{ + dir = 1; + id = "trash" + }, +/obj/machinery/button/massdriver{ + id = "trash"; + pixel_x = -28; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"aLg" = ( +/obj/machinery/mineral/stacking_machine{ + input_dir = 8; + output_dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"aLh" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "garbagestacked" + }, +/obj/machinery/mineral/stacking_unit_console{ + dir = 2; + machinedir = 8; + pixel_x = -32; + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"aLi" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "garbagestacked" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"aLj" = ( +/obj/machinery/disposal/deliveryChute{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"aLk" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/maintenance/disposal) +"aLl" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aLm" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aLn" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aLo" = ( +/turf/open/floor/carpet, +/area/shuttle/escape) +"aLp" = ( +/obj/structure/chair/comfy/beige, +/turf/open/floor/carpet, +/area/shuttle/escape) +"aLq" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aLr" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plasteel/escape{ + tag = "icon-escape (NORTHWEST)"; + dir = 9 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aLs" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/escape{ + dir = 1 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aLt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/escape{ + dir = 1 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aLu" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/escape{ + dir = 1 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aLv" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = 26 + }, +/turf/open/floor/plasteel/escape{ + dir = 1 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aLw" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9; + pixel_y = 0 + }, +/turf/open/floor/plasteel/escape{ + dir = 1 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aLx" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-16"; + layer = 4.1 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 4; + name = "Departure Lounge APC"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = 29 + }, +/turf/open/floor/plasteel/escape{ + dir = 5 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aLy" = ( +/obj/structure/table, +/obj/item/weapon/hand_labeler, +/turf/open/floor/plasteel/neutral/side{ + dir = 10 + }, +/area/storage/art) +"aLz" = ( +/obj/structure/table, +/obj/item/weapon/storage/crayons, +/obj/item/weapon/storage/crayons, +/obj/machinery/light, +/obj/machinery/camera{ + c_tag = "Art Storage"; + dir = 1 + }, +/turf/open/floor/plasteel/neutral/side, +/area/storage/art) +"aLA" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal{ + amount = 20; + layer = 3.1 + }, +/obj/item/stack/sheet/glass{ + amount = 20; + layer = 3.2 + }, +/obj/item/stack/rods{ + amount = 20; + layer = 3.3 + }, +/obj/item/weapon/canvas/twentythreeXtwentythree, +/obj/item/weapon/canvas/nineteenXnineteen, +/turf/open/floor/plasteel/neutral/side{ + dir = 6 + }, +/area/storage/art) +"aLB" = ( +/obj/structure/grille/broken, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fsmaint2) +"aLC" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aLD" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aLE" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aLF" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aLG" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/requests_console{ + department = "EVA"; + pixel_x = -32; + pixel_y = 0 + }, +/obj/machinery/camera{ + c_tag = "EVA Storage"; + dir = 4; + network = list("SS13") + }, +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (EAST)"; + dir = 4 + }, +/area/storage/eva) +"aLH" = ( +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/plasteel/warning/end, +/area/storage/eva) +"aLI" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel/darkwarning{ + dir = 8 + }, +/area/storage/eva) +"aLJ" = ( +/obj/structure/table, +/obj/item/weapon/hand_tele, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Teleporter"; + dir = 4; + network = list("SS13") + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26; + pixel_y = 0 + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 1 + }, +/area/teleporter) +"aLK" = ( +/obj/structure/chair/stool, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel, +/area/teleporter) +"aLL" = ( +/obj/structure/chair/stool, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/teleporter) +"aLM" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/teleporter) +"aLN" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 4 + }, +/area/teleporter) +"aLO" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters{ + id = "teleshutter"; + name = "Teleporter Shutters" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/teleporter) +"aLP" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/brown/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"aLQ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aLR" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/brown/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"aLS" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/security/checkpoint/supply) +"aLT" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/checkpoint/supply) +"aLU" = ( +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"aLV" = ( +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/checkpoint/supply) +"aLW" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Cargo Security Post"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/quartermaster/office) +"aLX" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aLY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aLZ" = ( +/obj/structure/chair/stool, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/effect/landmark/start{ + name = "Cargo Technician" + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aMa" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aMb" = ( +/obj/machinery/door/window/eastleft{ + dir = 8; + icon_state = "right"; + name = "Mail"; + req_access_txt = "50" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/quartermaster/office) +"aMc" = ( +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/disposaloutlet{ + dir = 8 + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/quartermaster/office) +"aMd" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"aMe" = ( +/obj/item/stack/sheet/cardboard, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"aMf" = ( +/obj/structure/closet/crate, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"aMg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"aMh" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"aMi" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/quartermaster/storage) +"aMj" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_r" + }, +/turf/open/floor/plating/airless, +/area/shuttle/supply) +"aMk" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/item/weapon/shard, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aMl" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/conveyor{ + dir = 2; + id = "garbage" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"aMm" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "garbage" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"aMn" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/maintenance/disposal) +"aMo" = ( +/obj/structure/chair/comfy/beige{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/shuttle/escape) +"aMp" = ( +/obj/structure/table/wood/poker, +/obj/item/toy/cards/deck, +/turf/open/floor/carpet, +/area/shuttle/escape) +"aMq" = ( +/obj/structure/chair/comfy/beige{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/shuttle/escape) +"aMr" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/escape{ + dir = 8 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aMs" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8; + initialize_directions = 11 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aMt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aMu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aMv" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aMw" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Departure Lounge" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aMx" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/chapel/main{ + name = "Monastery" + }) +"aMy" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aMz" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fsmaint2) +"aMA" = ( +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fsmaint2) +"aMB" = ( +/obj/item/trash/cheesie, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aMC" = ( +/obj/structure/girder, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aMD" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/item/clothing/gloves/color/random, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aME" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Bar Maintenance APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aMF" = ( +/turf/closed/wall, +/area/crew_quarters/bar) +"aMG" = ( +/obj/structure/grille/broken, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aMH" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aMI" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26; + pixel_y = 0 + }, +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (EAST)"; + dir = 4 + }, +/area/storage/eva) +"aMJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/storage/eva) +"aMK" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/storage/eva) +"aML" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel, +/area/storage/eva) +"aMM" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/turf/open/floor/plasteel/darkwarning{ + dir = 8 + }, +/area/storage/eva) +"aMN" = ( +/obj/structure/table, +/obj/item/device/radio/beacon, +/turf/open/floor/plasteel/blue/side{ + dir = 10 + }, +/area/teleporter) +"aMO" = ( +/obj/machinery/computer/teleporter, +/turf/open/floor/plasteel/blue/side, +/area/teleporter) +"aMP" = ( +/obj/machinery/teleport/station, +/turf/open/floor/plasteel/blue/side, +/area/teleporter) +"aMQ" = ( +/obj/machinery/teleport/hub, +/turf/open/floor/plating, +/area/teleporter) +"aMR" = ( +/obj/structure/closet/crate, +/obj/item/weapon/crowbar, +/turf/open/floor/plasteel/blue/side{ + dir = 6 + }, +/area/teleporter) +"aMS" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aMT" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/brown/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"aMU" = ( +/obj/structure/cable, +/obj/machinery/power/apc{ + dir = 8; + name = "Security Post - Cargo APC"; + pixel_x = -24; + pixel_y = 0 + }, +/obj/structure/closet/wardrobe/red, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/security/checkpoint/supply) +"aMV" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/red/side, +/area/security/checkpoint/supply) +"aMW" = ( +/obj/structure/filingcabinet, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/checkpoint/supply) +"aMX" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/quartermaster/office) +"aMY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aMZ" = ( +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aNa" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aNb" = ( +/obj/structure/disposalpipe/wrapsortjunction{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aNc" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/camera{ + c_tag = "Cargo Mailroom"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aNd" = ( +/obj/machinery/button/door{ + id = "qm_warehouse"; + name = "Warehouse Door Control"; + pixel_x = -24; + pixel_y = 0; + req_access_txt = "31" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"aNe" = ( +/obj/item/device/flashlight, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"aNf" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"aNg" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"aNh" = ( +/obj/structure/closet/crate/medical, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"aNi" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/supply) +"aNj" = ( +/obj/structure/shuttle/engine/heater{ + icon_state = "heater"; + dir = 1 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plating/airless, +/area/shuttle/supply) +"aNk" = ( +/obj/structure/disposalpipe/sortjunction{ + dir = 2; + icon_state = "pipe-j2s"; + sortType = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aNl" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/disposal) +"aNm" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "garbage" + }, +/obj/structure/disposaloutlet{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/maintenance/disposal) +"aNn" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "garbage" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"aNo" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "garbage" + }, +/obj/machinery/recycler, +/turf/open/floor/plating, +/area/maintenance/disposal) +"aNp" = ( +/obj/machinery/conveyor{ + dir = 2; + id = "garbage" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"aNq" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/maintenance/disposal) +"aNr" = ( +/obj/structure/chair/comfy/beige{ + tag = "icon-comfychair (NORTH)"; + icon_state = "comfychair"; + dir = 1 + }, +/turf/open/floor/carpet, +/area/shuttle/escape) +"aNs" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = -32; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aNt" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aNu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aNv" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aNw" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aNx" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Departure Lounge" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aNy" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8; + initialize_directions = 11 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aNz" = ( +/obj/structure/disposalpipe/junction{ + dir = 8; + icon_state = "pipe-j2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aNA" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/central) +"aNB" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aNC" = ( +/obj/structure/grille/broken, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aND" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aNE" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aNF" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fsmaint2) +"aNG" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fsmaint2) +"aNH" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fsmaint2) +"aNI" = ( +/obj/structure/grille, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aNJ" = ( +/obj/structure/grille/broken, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aNK" = ( +/obj/item/weapon/reagent_containers/glass/bucket, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aNL" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aNM" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4"; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aNN" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + 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/fsmaint2) +"aNO" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fsmaint2) +"aNP" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9; + pixel_y = 0 + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aNQ" = ( +/obj/machinery/reagentgrinder, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aNR" = ( +/obj/machinery/vending/cigarette, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken6" + }, +/area/crew_quarters/bar) +"aNS" = ( +/obj/machinery/vending/coffee, +/obj/machinery/camera{ + c_tag = "Bar Backroom"; + dir = 2; + network = list("SS13") + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aNT" = ( +/obj/structure/closet/secure_closet/bar{ + req_access_txt = "25" + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aNU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aNV" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/item/weapon/broken_bottle, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aNW" = ( +/obj/structure/table, +/obj/item/stack/sheet/plasteel{ + amount = 10 + }, +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (EAST)"; + dir = 4 + }, +/area/storage/eva) +"aNX" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/weapon/crowbar, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/power/apc{ + dir = 2; + name = "EVA Storage APC"; + pixel_y = -24 + }, +/turf/open/floor/plasteel, +/area/storage/eva) +"aNY" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/storage/eva) +"aNZ" = ( +/obj/structure/table, +/obj/item/stack/sheet/rglass{ + amount = 50 + }, +/obj/item/stack/sheet/rglass{ + amount = 50 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel, +/area/storage/eva) +"aOa" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/rglass{ + amount = 50 + }, +/turf/open/floor/plasteel/darkwarning{ + dir = 8 + }, +/area/storage/eva) +"aOb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23; + pixel_y = 0 + }, +/turf/open/floor/plasteel/brown/corner{ + dir = 1; + tag = "icon-browncorner (NORTH)" + }, +/area/hallway/primary/central) +"aOc" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/checkpoint/supply) +"aOd" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_security{ + name = "Cargo Security Post"; + req_access_txt = "63" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/checkpoint/supply) +"aOe" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aOf" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aOg" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/yellow, +/obj/item/weapon/pen, +/obj/item/weapon/paper_bin{ + layer = 2.9; + pixel_x = 0; + pixel_y = 0; + tag = "every single paper bin is edited to this" + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aOh" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aOi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aOj" = ( +/obj/structure/closet/crate, +/obj/item/weapon/reagent_containers/food/snacks/donut, +/obj/item/weapon/reagent_containers/food/snacks/donut, +/obj/item/weapon/reagent_containers/food/snacks/donut, +/obj/item/weapon/reagent_containers/food/snacks/donut, +/turf/open/floor/plating, +/area/quartermaster/office) +"aOk" = ( +/obj/machinery/door/poddoor/shutters{ + id = "qm_warehouse"; + name = "warehouse shutters" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/quartermaster/storage) +"aOl" = ( +/obj/machinery/door/poddoor/shutters{ + id = "qm_warehouse"; + name = "warehouse shutters" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/quartermaster/storage) +"aOm" = ( +/obj/machinery/door/poddoor/shutters{ + id = "qm_warehouse"; + name = "warehouse shutters" + }, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/quartermaster/storage) +"aOn" = ( +/obj/structure/closet/crate/internals, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"aOo" = ( +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/supply) +"aOp" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aOq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/disposal) +"aOr" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/maintenance/disposal) +"aOs" = ( +/obj/item/trash/can, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/maintenance/disposal) +"aOt" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/maintenance/disposal) +"aOu" = ( +/obj/machinery/conveyor_switch/oneway{ + convdir = -1; + id = "garbage"; + name = "disposal coveyor" + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/maintenance/disposal) +"aOv" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/maintenance/disposal) +"aOw" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plating/warnplate/corner{ + tag = "icon-warnplatecorner (EAST)"; + dir = 4 + }, +/area/maintenance/disposal) +"aOx" = ( +/obj/machinery/door/airlock/titanium{ + name = "Emergency Shuttle Airlock" + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"aOy" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aOz" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aOA" = ( +/obj/structure/chair, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aOB" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aOC" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aOD" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aOE" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aOF" = ( +/turf/closed/wall, +/area/hydroponics) +"aOG" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/maintenance{ + name = "Hydroponics Maintenance"; + req_access_txt = "35" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/hydroponics) +"aOH" = ( +/turf/closed/wall, +/area/crew_quarters/kitchen) +"aOI" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/turf/open/floor/plating, +/area/crew_quarters/kitchen) +"aOJ" = ( +/obj/structure/plasticflaps{ + opacity = 1 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fsmaint2) +"aOK" = ( +/obj/item/weapon/reagent_containers/food/drinks/shaker, +/obj/item/weapon/gun/ballistic/revolver/doublebarrel, +/obj/structure/table/wood, +/obj/item/weapon/coin/silver, +/obj/item/stack/spacecash/c10, +/obj/item/stack/spacecash/c100, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aOL" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/chair/wood/normal{ + icon_state = "wooden_chair"; + dir = 8 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/crew_quarters/bar) +"aOM" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aON" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aOO" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Bar Storage Maintenance"; + req_access_txt = "25" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/bar) +"aOP" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4; + initialize_directions = 11 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aOQ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/item/chair, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aOR" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + name = "EVA Maintenance"; + req_access_txt = "18" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/storage/eva) +"aOS" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aOT" = ( +/obj/item/trash/tray, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aOU" = ( +/obj/structure/closet/secure_closet/freezer/cream_pie, +/obj/item/weapon/grown/bananapeel, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aOV" = ( +/obj/structure/closet/secure_closet/freezer/cream_pie, +/obj/item/seeds/banana, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aOW" = ( +/turf/open/floor/plasteel/brown/corner{ + dir = 4 + }, +/area/quartermaster/office) +"aOX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/brown/corner{ + dir = 4 + }, +/area/quartermaster/office) +"aOY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/firedoor, +/obj/structure/table/reinforced, +/obj/machinery/door/window/westleft{ + dir = 1; + name = "Delivery Desk"; + req_access_txt = "50" + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/office) +"aOZ" = ( +/obj/machinery/door/firedoor, +/obj/structure/table/reinforced, +/obj/machinery/door/window/westleft{ + dir = 1; + name = "Delivery Desk"; + req_access_txt = "50" + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/office) +"aPa" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/glass_mining{ + name = "Mailroom"; + req_access_txt = "0"; + req_one_access_txt = "48;50" + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aPb" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/quartermaster/office) +"aPc" = ( +/obj/machinery/button/door{ + id = "qm_warehouse"; + name = "Warehouse Door Control"; + pixel_x = -24; + pixel_y = 0; + req_access_txt = "31" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/quartermaster/storage) +"aPd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/quartermaster/storage) +"aPe" = ( +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/quartermaster/storage) +"aPf" = ( +/obj/machinery/power/apc{ + cell_type = 2500; + dir = 4; + name = "Cargo Maintenance APC"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aPg" = ( +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"aPh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/disposal) +"aPi" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "Disposal APC"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/disposal) +"aPj" = ( +/obj/machinery/door/airlock/glass{ + name = "Emergency Shuttle Infirmary" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"aPk" = ( +/obj/machinery/status_display{ + dir = 4; + layer = 4; + pixel_x = -32; + pixel_y = 0 + }, +/obj/machinery/camera{ + c_tag = "Departure Lounge"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aPl" = ( +/obj/effect/landmark/event_spawn, +/obj/item/device/radio/beacon, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aPm" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aPn" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/matches{ + pixel_x = -3; + pixel_y = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aPo" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aPp" = ( +/obj/structure/sink{ + pixel_y = 28 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -28 + }, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"aPq" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"aPr" = ( +/obj/structure/closet/secure_closet/hydroponics, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"aPs" = ( +/obj/structure/closet/secure_closet/hydroponics, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"aPt" = ( +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/obj/machinery/camera{ + c_tag = "Hydroponics Storage" + }, +/obj/machinery/plantgenes, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"aPu" = ( +/obj/machinery/chem_master/condimaster, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"aPv" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/hydroponics_pod_people, +/obj/item/weapon/paper/hydroponics, +/obj/item/weapon/reagent_containers/dropper, +/obj/item/weapon/reagent_containers/glass/bottle/mutagen, +/obj/item/weapon/reagent_containers/dropper, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"aPw" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Kitchen Maintenance"; + req_access_txt = "28" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/crew_quarters/kitchen) +"aPx" = ( +/obj/machinery/chem_master/condimaster{ + name = "CondiMaster Neo"; + pixel_x = -4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"aPy" = ( +/obj/machinery/gibber, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"aPz" = ( +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"aPA" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + freq = 1400; + location = "Kitchen" + }, +/obj/machinery/door/window/southleft{ + base_state = "left"; + dir = 8; + icon_state = "left"; + name = "Kitchen Delivery"; + req_access_txt = "28" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/crew_quarters/kitchen) +"aPB" = ( +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/maintenance/fsmaint2) +"aPC" = ( +/obj/item/device/assembly/mousetrap, +/turf/open/floor/wood{ + icon_state = "wood-broken6" + }, +/area/crew_quarters/bar) +"aPD" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aPE" = ( +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aPF" = ( +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/obj/item/weapon/storage/box/beanbag, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aPG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aPH" = ( +/obj/item/weapon/weldingtool, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aPI" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aPJ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aPK" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aPL" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aPM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aPN" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aPO" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = 29 + }, +/turf/open/floor/plasteel/brown/corner{ + dir = 4 + }, +/area/quartermaster/office) +"aPP" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/brown/corner{ + dir = 4 + }, +/area/quartermaster/office) +"aPQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/brown/corner{ + dir = 4 + }, +/area/quartermaster/office) +"aPR" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/quartermaster/office) +"aPS" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1; + initialize_directions = 11 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aPT" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aPU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aPV" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/requests_console{ + department = "Cargo Bay"; + departmentType = 2; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"aPW" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1; + initialize_directions = 11 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"aPX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"aPY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"aPZ" = ( +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"aQa" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/conveyor{ + dir = 8; + id = "QMLoad" + }, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"aQb" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "QMLoad" + }, +/obj/machinery/status_display{ + density = 0; + layer = 4; + pixel_x = 0; + pixel_y = 30; + supply_display = 1 + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"aQc" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "QMLoad" + }, +/obj/structure/sign/poster{ + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"aQd" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "QMLoad" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"aQe" = ( +/obj/machinery/door/poddoor{ + id = "QMLoaddoor"; + name = "supply dock loading door" + }, +/obj/machinery/conveyor{ + dir = 8; + id = "QMLoad" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"aQf" = ( +/obj/structure/plasticflaps, +/obj/machinery/conveyor{ + dir = 8; + id = "QMLoad" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"aQg" = ( +/obj/machinery/door/poddoor{ + id = "QMLoaddoor"; + name = "supply dock loading door" + }, +/obj/machinery/conveyor{ + dir = 8; + id = "QMLoad" + }, +/turf/open/floor/plating, +/area/shuttle/supply) +"aQh" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aQi" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aQj" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aQk" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/junction{ + dir = 2; + icon_state = "pipe-y" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aQl" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Disposal Access"; + req_access_txt = "12" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"aQm" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"aQn" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"aQo" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"aQp" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/power/solar{ + id = "portsolar"; + name = "Port Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/starboard{ + name = "Starboard Solar Array" + }) +"aQq" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/solar{ + id = "starboardsolar"; + name = "Starboard Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/starboard{ + name = "Starboard Solar Array" + }) +"aQr" = ( +/obj/machinery/sleeper{ + dir = 4; + icon_state = "sleeper-open" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aQs" = ( +/obj/machinery/vending/medical, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aQt" = ( +/obj/machinery/door/airlock/titanium{ + name = "Emergency Shuttle Airlock" + }, +/obj/docking_port/stationary{ + dheight = 0; + dir = 8; + dwidth = 4; + height = 15; + id = "emergency_home"; + name = "PubbyStation emergency evac bay"; + width = 20 + }, +/obj/docking_port/mobile/emergency{ + dheight = 0; + dir = 8; + dwidth = 4; + height = 15; + name = "Pubby emergency shuttle"; + port_angle = 90; + width = 18 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"aQu" = ( +/obj/machinery/light, +/turf/open/floor/plating, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aQv" = ( +/obj/structure/chair{ + dir = 1; + name = "Command Station" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aQw" = ( +/obj/machinery/camera{ + c_tag = "Central Primary Hallway Escape"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 28 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/central) +"aQx" = ( +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"aQy" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"aQz" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"aQA" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"aQB" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"aQC" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/spray/plantbgone{ + pixel_x = 0; + pixel_y = 3 + }, +/obj/item/weapon/reagent_containers/spray/plantbgone{ + pixel_x = 8; + pixel_y = 8 + }, +/obj/item/weapon/reagent_containers/spray/plantbgone{ + pixel_x = 13; + pixel_y = 5 + }, +/obj/item/weapon/watertank, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"aQD" = ( +/obj/structure/kitchenspike, +/obj/item/device/assembly/mousetrap, +/obj/item/trash/deadmouse, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"aQE" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"aQF" = ( +/obj/machinery/camera{ + c_tag = "Kitchen Cold Room"; + dir = 2; + network = list("SS13") + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/obj/machinery/requests_console{ + department = "Kitchen"; + departmentType = 2; + pixel_x = 0; + pixel_y = 30 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"aQG" = ( +/obj/structure/plasticflaps{ + opacity = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/maintenance/fsmaint2) +"aQH" = ( +/obj/structure/reagent_dispensers/beerkeg, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aQI" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aQJ" = ( +/obj/structure/closet/gmcloset, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/stack/cable_coil, +/obj/item/weapon/storage/box/mousetraps, +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/crew_quarters/bar) +"aQK" = ( +/turf/closed/wall, +/area/crew_quarters/theatre) +"aQL" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Theatre Maintenance"; + req_access_txt = "0"; + req_one_access_txt = "12;46" + }, +/turf/open/floor/plating, +/area/crew_quarters/theatre) +"aQM" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Theatre Maintenance"; + req_access_txt = "0"; + req_one_access_txt = "12;46" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/crew_quarters/theatre) +"aQN" = ( +/obj/machinery/camera{ + c_tag = "Central Primary Hallway Cargo"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/brown/corner{ + dir = 1; + tag = "icon-browncorner (NORTH)" + }, +/area/hallway/primary/central) +"aQO" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aQP" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aQQ" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aQR" = ( +/obj/machinery/holopad, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aQS" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aQT" = ( +/obj/machinery/door/airlock/glass_mining{ + name = "Cargo Bay"; + req_access_txt = "0"; + req_one_access_txt = "31;48" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aQU" = ( +/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, +/area/quartermaster/office) +"aQV" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aQW" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aQX" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aQY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"aQZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"aRa" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"aRb" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"aRc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/quartermaster/storage) +"aRd" = ( +/obj/machinery/door/airlock/external{ + name = "Supply Dock Airlock"; + req_access_txt = "31" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"aRe" = ( +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/quartermaster/storage) +"aRf" = ( +/obj/machinery/door/airlock/titanium{ + name = "Supply Shuttle Airlock"; + req_access_txt = "31" + }, +/obj/docking_port/mobile/supply{ + dir = 4 + }, +/obj/docking_port/stationary{ + dir = 4; + dwidth = 5; + height = 7; + id = "supply_home"; + name = "Cargo Bay"; + width = 12 + }, +/turf/open/floor/plating, +/area/shuttle/supply) +"aRg" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aRh" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aRi" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aRj" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/fire, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/weapon/crowbar, +/obj/structure/sign/nosmoking_2{ + pixel_x = 32 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aRk" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aRl" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4; + initialize_directions = 11 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aRm" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aRn" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aRo" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Departure Lounge" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aRp" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8; + initialize_directions = 11 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aRq" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aRr" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/central) +"aRs" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aRt" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aRu" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aRv" = ( +/obj/structure/plasticflaps{ + opacity = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/hydroponics) +"aRw" = ( +/obj/machinery/door/window/eastright{ + name = "Hydroponics Delivery"; + req_access_txt = "35" + }, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=4"; + dir = 1; + freq = 1400; + location = "Hydroponics" + }, +/turf/open/floor/plasteel/delivery, +/area/hydroponics) +"aRx" = ( +/obj/structure/closet/crate/hydroponics, +/obj/item/weapon/shovel/spade, +/obj/item/weapon/wrench, +/obj/item/weapon/reagent_containers/glass/bucket, +/obj/item/weapon/reagent_containers/glass/bucket, +/obj/item/weapon/wirecutters, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"aRy" = ( +/obj/structure/closet/wardrobe/botanist, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"aRz" = ( +/obj/machinery/power/apc{ + name = "Hydroponics APC"; + pixel_y = -24 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"aRA" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"aRB" = ( +/obj/machinery/light/small, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"aRC" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"aRD" = ( +/obj/machinery/icecream_vat, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"aRE" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"aRF" = ( +/mob/living/simple_animal/hostile/retaliate/goat{ + name = "Pete" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"aRG" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"aRH" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 23; + pixel_y = 0 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"aRI" = ( +/obj/machinery/door/window/southleft{ + base_state = "left"; + dir = 2; + icon_state = "left"; + name = "Bar Delivery"; + req_access_txt = "25" + }, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=2"; + freq = 1400; + location = "Bar" + }, +/turf/open/floor/plasteel/delivery, +/area/crew_quarters/bar) +"aRJ" = ( +/obj/machinery/door/airlock{ + name = "Bar Storage"; + req_access_txt = "25" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"aRK" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"aRL" = ( +/obj/structure/sign/poster{ + pixel_x = -32 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"aRM" = ( +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/theatre) +"aRN" = ( +/obj/structure/sign/poster{ + pixel_y = 32 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-04"; + layer = 4.1 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/theatre) +"aRO" = ( +/obj/machinery/camera{ + c_tag = "Theatre Stage"; + dir = 2 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/theatre) +"aRP" = ( +/obj/structure/sign/poster{ + pixel_x = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"aRQ" = ( +/obj/structure/table/wood, +/obj/item/weapon/lipstick/random{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/clothing/gloves/color/rainbow/clown, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/obj/item/weapon/book/random, +/obj/item/weapon/lipstick/random, +/turf/open/floor/plasteel/black, +/area/crew_quarters/theatre) +"aRR" = ( +/obj/structure/dresser, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/sign/poster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/theatre) +"aRS" = ( +/obj/machinery/vending/autodrobe, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/theatre) +"aRT" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Theatre Maintenance"; + req_access_txt = "46" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/crew_quarters/theatre) +"aRU" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/brown/corner{ + dir = 1; + tag = "icon-browncorner (NORTH)" + }, +/area/hallway/primary/central) +"aRV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aRW" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aRX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9; + pixel_y = 0 + }, +/turf/open/floor/plasteel/loadingarea{ + dir = 8 + }, +/area/quartermaster/office) +"aRY" = ( +/obj/structure/plasticflaps{ + opacity = 1 + }, +/obj/machinery/conveyor{ + dir = 4; + id = "cargodeliver" + }, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/quartermaster/office) +"aRZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/brown{ + dir = 8 + }, +/area/quartermaster/office) +"aSa" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aSb" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0 + }, +/obj/machinery/conveyor_switch{ + id = "cargodeliver" + }, +/turf/open/floor/plasteel/brown{ + dir = 4 + }, +/area/quartermaster/office) +"aSc" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=4"; + freq = 1400; + location = "QM #1" + }, +/mob/living/simple_animal/bot/mulebot{ + beacon_freq = 1400; + home_destination = "QM #1"; + suffix = "#1" + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"aSd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/quartermaster/storage) +"aSe" = ( +/obj/effect/landmark/start{ + name = "Cargo Technician" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"aSf" = ( +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"aSg" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"aSh" = ( +/obj/machinery/conveyor_switch/oneway{ + convdir = -1; + id = "QMLoad" + }, +/obj/machinery/button/door{ + id = "QMLoaddoor2"; + layer = 4; + name = "Loading Doors"; + pixel_x = 24; + pixel_y = -8 + }, +/obj/machinery/button/door{ + dir = 2; + id = "QMLoaddoor"; + layer = 4; + name = "Loading Doors"; + pixel_x = 24; + pixel_y = 8 + }, +/obj/machinery/camera{ + c_tag = "Cargo Supply Dock"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"aSi" = ( +/obj/machinery/button/door{ + id = "QMLoaddoor2"; + layer = 4; + name = "Loading Doors"; + pixel_x = -24; + pixel_y = -8 + }, +/obj/machinery/button/door{ + dir = 2; + id = "QMLoaddoor"; + layer = 4; + name = "Loading Doors"; + pixel_x = -24; + pixel_y = 8 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/supply) +"aSj" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aSk" = ( +/obj/structure/easel, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aSl" = ( +/obj/structure/closet/l3closet/scientist, +/obj/item/weapon/book/manual/wiki/chemistry, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aSm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/button/massdriver{ + id = "chapelgun"; + pixel_x = 28; + pixel_y = 0 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"aSn" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/shuttle/engine/heater, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"aSo" = ( +/obj/structure/table, +/obj/item/weapon/defibrillator/loaded, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aSp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aSq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aSr" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Departure Lounge" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aSs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/closed/wall, +/area/chapel/main{ + name = "Monastery" + }) +"aSt" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4; + initialize_directions = 11 + }, +/obj/structure/sign/directions/evac{ + dir = 1; + icon_state = "direction_evac"; + pixel_x = 32; + pixel_y = 0; + tag = "icon-direction_evac (NORTH)" + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/central) +"aSu" = ( +/turf/closed/wall, +/area/janitor) +"aSv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/janitor) +"aSw" = ( +/obj/machinery/door/window/eastright{ + dir = 2; + name = "Janitor Delivery"; + req_access_txt = "26" + }, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=1"; + dir = 1; + freq = 1400; + location = "Janitor" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/janitor) +"aSx" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Hydroponics"; + req_access_txt = "35" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hydroponics) +"aSy" = ( +/obj/structure/closet/chefcloset, +/obj/item/weapon/wrench, +/obj/item/weapon/crowbar, +/obj/item/stack/packageWrap, +/obj/item/weapon/hand_labeler, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"aSz" = ( +/obj/machinery/power/apc{ + dir = 2; + name = "Kitchen APC"; + pixel_y = -24 + }, +/obj/structure/cable, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"aSA" = ( +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen{ + name = "Kitchen Coldroom" + }) +"aSB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"aSC" = ( +/obj/structure/closet/secure_closet/freezer/kitchen, +/obj/item/weapon/reagent_containers/food/snacks/grown/potato, +/obj/item/weapon/reagent_containers/food/snacks/grown/potato, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"aSD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/kitchen) +"aSE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"aSF" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/sign/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 = 0; + pixel_y = 28 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"aSG" = ( +/obj/structure/sink/kitchen{ + pixel_y = 28 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"aSH" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"aSI" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/requests_console{ + department = "Bar"; + departmentType = 2; + pixel_x = 0; + pixel_y = 30 + }, +/obj/machinery/camera{ + c_tag = "Bar Access"; + dir = 2; + network = list("SS13") + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"aSJ" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = 26 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"aSK" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "Bar APC"; + pixel_x = 27 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"aSL" = ( +/obj/structure/piano{ + tag = "icon-piano"; + icon_state = "piano" + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"aSM" = ( +/obj/structure/chair/wood/normal{ + icon_state = "wooden_chair"; + dir = 8 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/theatre) +"aSN" = ( +/obj/structure/chair/wood/normal, +/mob/living/carbon/monkey/punpun, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/theatre) +"aSO" = ( +/obj/structure/table/wood, +/obj/item/device/instrument/violin, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/theatre) +"aSP" = ( +/obj/structure/table/wood, +/obj/item/device/instrument/guitar, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"aSQ" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Theatre APC"; + pixel_x = -25 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plasteel/redblue, +/area/crew_quarters/theatre) +"aSR" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/landmark/start{ + name = "Mime" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/redblue, +/area/crew_quarters/theatre) +"aSS" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/redblue, +/area/crew_quarters/theatre) +"aST" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = 26 + }, +/turf/open/floor/plasteel/redblue, +/area/crew_quarters/theatre) +"aSU" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9; + pixel_y = 0 + }, +/obj/machinery/light_switch{ + pixel_x = 24; + pixel_y = 24 + }, +/obj/structure/mirror{ + pixel_x = 28; + pixel_y = -2 + }, +/turf/open/floor/plasteel/redblue, +/area/crew_quarters/theatre) +"aSV" = ( +/obj/machinery/computer/cargo/request, +/turf/open/floor/plasteel/brown/corner, +/area/quartermaster/office) +"aSW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/brown/corner, +/area/quartermaster/office) +"aSX" = ( +/turf/open/floor/plasteel/brown/corner, +/area/quartermaster/office) +"aSY" = ( +/obj/machinery/door/firedoor, +/obj/machinery/mineral/ore_redemption{ + input_dir = 4; + output_dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/quartermaster/office) +"aSZ" = ( +/obj/machinery/status_display{ + dir = 8; + layer = 4; + pixel_x = 32; + pixel_y = 0; + supply_display = 1 + }, +/turf/open/floor/plasteel/brown{ + dir = 4 + }, +/area/quartermaster/office) +"aTa" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=4"; + freq = 1400; + location = "QM #2" + }, +/obj/machinery/camera{ + c_tag = "Cargo Bay"; + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"aTb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"aTc" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"aTd" = ( +/turf/open/floor/plasteel/warning, +/area/quartermaster/storage) +"aTe" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"aTf" = ( +/obj/machinery/door/airlock/titanium{ + name = "Supply Shuttle Airlock"; + req_access_txt = "31" + }, +/turf/open/floor/plating, +/area/shuttle/supply) +"aTg" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aTh" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aTi" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4"; + tag = "" + }, +/turf/closed/wall, +/area/maintenance/port{ + name = "Monastery Maintenance" + }) +"aTj" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"aTk" = ( +/obj/structure/table, +/obj/item/toy/cards/deck, +/turf/open/floor/plasteel/escape{ + dir = 10 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aTl" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel/escape, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aTm" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/escape, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aTn" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/escape, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aTo" = ( +/turf/open/floor/plasteel/escape, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aTp" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-14"; + layer = 4.1 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0 + }, +/turf/open/floor/plasteel/escape{ + dir = 6 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"aTq" = ( +/obj/machinery/washing_machine, +/obj/structure/sign/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 = 0; + pixel_y = 28 + }, +/turf/open/floor/plasteel/black, +/area/janitor) +"aTr" = ( +/obj/machinery/camera{ + c_tag = "Custodial Quarters" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = 26 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/janitor) +"aTs" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/obj/effect/landmark/start{ + name = "Janitor" + }, +/turf/open/floor/plasteel/black, +/area/janitor) +"aTt" = ( +/obj/machinery/hydroponics/constructable, +/turf/open/floor/plasteel/green/side{ + dir = 9 + }, +/area/hydroponics) +"aTu" = ( +/obj/machinery/hydroponics/constructable, +/turf/open/floor/plasteel/green/corner{ + dir = 4 + }, +/area/hydroponics) +"aTv" = ( +/obj/machinery/hydroponics/constructable, +/turf/open/floor/plasteel/green/side{ + dir = 1 + }, +/area/hydroponics) +"aTw" = ( +/obj/structure/sink{ + pixel_y = 28 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"aTx" = ( +/obj/structure/disposalpipe/sortjunction{ + dir = 2; + icon_state = "pipe-j2s"; + sortType = 21 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hydroponics) +"aTy" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/light_switch{ + pixel_x = -4; + pixel_y = 30 + }, +/turf/open/floor/plasteel/green/corner{ + dir = 4 + }, +/area/hydroponics) +"aTz" = ( +/obj/structure/closet/secure_closet/freezer/meat, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"aTA" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"aTB" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"aTC" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"aTD" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"aTE" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"aTF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 4; + icon_state = "pipe-j1s"; + sortType = 19 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"aTG" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"aTH" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j2"; + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"aTI" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"aTJ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/sign/poster{ + pixel_x = -32 + }, +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"aTK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/theatre) +"aTL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/theatre) +"aTM" = ( +/obj/structure/sign/poster{ + pixel_x = 32 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"aTN" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/redblue, +/area/crew_quarters/theatre) +"aTO" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Theatre Storage"; + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/redblue, +/area/crew_quarters/theatre) +"aTP" = ( +/obj/structure/disposalpipe/sortjunction{ + dir = 4; + icon_state = "pipe-j1s"; + sortType = 18 + }, +/obj/machinery/requests_console{ + department = "Theatre"; + departmentType = 0; + name = "theatre RC"; + pixel_x = -32; + pixel_y = -32 + }, +/turf/open/floor/plasteel/redblue, +/area/crew_quarters/theatre) +"aTQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Clown" + }, +/turf/open/floor/plasteel/redblue, +/area/crew_quarters/theatre) +"aTR" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/item/cardboard_cutout, +/obj/structure/mirror{ + pixel_x = 28; + pixel_y = -2 + }, +/turf/open/floor/plasteel/redblue, +/area/crew_quarters/theatre) +"aTS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/theatre) +"aTT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/brown/corner{ + dir = 1; + tag = "icon-browncorner (NORTH)" + }, +/area/hallway/primary/central) +"aTU" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/brown/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"aTV" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/window/westleft{ + dir = 2; + name = "Cargo Desk"; + req_access_txt = "50" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aTW" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/window/westleft{ + dir = 2; + name = "Cargo Desk"; + req_access_txt = "50" + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aTX" = ( +/obj/machinery/door/firedoor, +/obj/machinery/autolathe, +/turf/open/floor/plasteel/black, +/area/quartermaster/office) +"aTY" = ( +/obj/machinery/newscaster{ + pixel_x = 32 + }, +/obj/machinery/camera{ + c_tag = "Cargo Foyer"; + dir = 8 + }, +/turf/open/floor/plasteel/brown{ + dir = 4 + }, +/area/quartermaster/office) +"aTZ" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=4"; + freq = 1400; + location = "QM #3" + }, +/mob/living/simple_animal/bot/mulebot{ + home_destination = "QM #2"; + suffix = "#2" + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"aUa" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"aUb" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "QMLoad2" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"aUc" = ( +/obj/machinery/door/poddoor{ + id = "QMLoaddoor2"; + name = "supply dock loading door" + }, +/obj/machinery/conveyor{ + dir = 8; + id = "QMLoad2" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"aUd" = ( +/obj/structure/plasticflaps, +/obj/machinery/conveyor{ + dir = 8; + id = "QMLoad2" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"aUe" = ( +/obj/machinery/door/poddoor{ + id = "QMLoaddoor2"; + name = "supply dock loading door" + }, +/obj/machinery/conveyor{ + dir = 8; + id = "QMLoad2" + }, +/turf/open/floor/plating, +/area/shuttle/supply) +"aUf" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/item/device/assembly/timer{ + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aUg" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Monastery Maintenance" + }) +"aUh" = ( +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aUi" = ( +/obj/structure/chair/stool, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aUj" = ( +/turf/closed/wall, +/area/security/checkpoint2{ + name = "Customs" + }) +"aUk" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "papersplease"; + name = "security shutters" + }, +/turf/open/floor/plating, +/area/security/checkpoint2{ + name = "Customs" + }) +"aUl" = ( +/obj/machinery/door/firedoor, +/obj/structure/table/reinforced, +/obj/machinery/door/window/westright{ + dir = 2; + name = "Security Checkpoint"; + req_access_txt = "1" + }, +/obj/machinery/door/window/northleft{ + dir = 1; + icon_state = "left"; + name = "Reception Window"; + req_access_txt = "0" + }, +/obj/machinery/door/poddoor{ + density = 0; + icon_state = "open"; + id = "papersplease"; + layer = 3.1; + name = "privacy shutters"; + opacity = 0 + }, +/obj/item/weapon/folder/red, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/delivery, +/area/security/checkpoint2{ + name = "Customs" + }) +"aUm" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/item/weapon/storage/toolbox/mechanical, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Monastery Maintenance" + }) +"aUn" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/sign/poster{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/central) +"aUo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/janitor) +"aUp" = ( +/obj/structure/bedsheetbin, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault, +/area/janitor) +"aUq" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/vault, +/area/janitor) +"aUr" = ( +/obj/structure/table, +/obj/item/clothing/under/maid, +/obj/item/key/janitor, +/obj/item/weapon/grenade/clusterbuster/cleaner, +/obj/item/weapon/grenade/chem_grenade/cleaner, +/obj/item/weapon/grenade/chem_grenade/cleaner, +/turf/open/floor/plasteel/vault, +/area/janitor) +"aUs" = ( +/obj/machinery/hydroponics/constructable, +/turf/open/floor/plasteel/green/side{ + dir = 8 + }, +/area/hydroponics) +"aUt" = ( +/turf/open/floor/plasteel, +/area/hydroponics) +"aUu" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hydroponics) +"aUv" = ( +/obj/machinery/biogenerator, +/obj/machinery/requests_console{ + department = "Hydroponics"; + departmentType = 2; + pixel_x = 0; + pixel_y = 30 + }, +/turf/open/floor/plasteel/green/corner{ + dir = 4 + }, +/area/hydroponics) +"aUw" = ( +/obj/machinery/hydroponics/constructable, +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = 26 + }, +/turf/open/floor/plasteel/green/side{ + dir = 1 + }, +/area/hydroponics) +"aUx" = ( +/obj/machinery/hydroponics/constructable, +/obj/structure/sign/botany{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/green/side{ + dir = 1 + }, +/area/hydroponics) +"aUy" = ( +/obj/machinery/door/airlock{ + name = "Kitchen Cold Room"; + req_access_txt = "28" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"aUz" = ( +/obj/machinery/door/airlock{ + name = "Bar Access"; + req_access_txt = "28" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/black, +/area/crew_quarters/kitchen) +"aUA" = ( +/obj/machinery/door/airlock{ + cyclelinkeddir = 4; + name = "Bar Access"; + req_access_txt = "25" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"aUB" = ( +/obj/machinery/door/airlock{ + cyclelinkeddir = 8; + name = "Bar Access"; + req_access_txt = "0"; + req_one_access_txt = "25; 28" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"aUC" = ( +/obj/structure/window/reinforced, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"aUD" = ( +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"aUE" = ( +/obj/machinery/door/window{ + base_state = "right"; + icon_state = "right" + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"aUF" = ( +/obj/machinery/door/airlock{ + name = "Theatre Storage"; + req_access_txt = "46" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/theatre) +"aUG" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/crew_quarters/theatre) +"aUH" = ( +/obj/structure/table/wood, +/obj/item/weapon/soap, +/obj/structure/table/wood, +/obj/item/weapon/bikehorn, +/turf/open/floor/plasteel/black, +/area/crew_quarters/theatre) +"aUI" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/crayons{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/reagent_containers/food/snacks/pie/cream{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/toy/cattoy, +/turf/open/floor/plasteel/black, +/area/crew_quarters/theatre) +"aUJ" = ( +/obj/machinery/computer/cargo, +/obj/machinery/requests_console{ + department = "Cargo Bay"; + departmentType = 2; + pixel_x = -32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/brown{ + dir = 1 + }, +/area/quartermaster/office) +"aUK" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/brown{ + dir = 1 + }, +/area/quartermaster/office) +"aUL" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/effect/landmark/start{ + name = "Cargo Technician" + }, +/turf/open/floor/plasteel/brown{ + dir = 1 + }, +/area/quartermaster/office) +"aUM" = ( +/obj/item/weapon/stamp{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/stamp/denied{ + pixel_x = 4; + pixel_y = -2 + }, +/obj/structure/table, +/turf/open/floor/plasteel/brown{ + dir = 1 + }, +/area/quartermaster/office) +"aUN" = ( +/turf/open/floor/plasteel/brown{ + dir = 1 + }, +/area/quartermaster/office) +"aUO" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/brown{ + dir = 1 + }, +/area/quartermaster/office) +"aUP" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/quartermaster/office) +"aUQ" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 28 + }, +/turf/open/floor/plasteel/brown{ + dir = 4 + }, +/area/quartermaster/office) +"aUR" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=4"; + freq = 1400; + location = "QM #4" + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"aUS" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/quartermaster/storage) +"aUT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"aUU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"aUV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"aUW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"aUX" = ( +/obj/machinery/conveyor_switch/oneway{ + convdir = 1; + id = "QMLoad2" + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/quartermaster/storage) +"aUY" = ( +/obj/structure/table, +/obj/item/stack/cable_coil, +/obj/item/stack/cable_coil, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/weapon/storage/box/matches, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aUZ" = ( +/obj/structure/table, +/obj/item/device/assembly/igniter, +/obj/item/device/assembly/igniter, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aVa" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal{ + amount = 10 + }, +/obj/item/stack/rods{ + amount = 25 + }, +/obj/item/weapon/shard{ + icon_state = "small" + }, +/obj/effect/decal/cleanable/deadcockroach, +/obj/item/weapon/light/bulb, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aVb" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"aVc" = ( +/turf/closed/wall/r_wall, +/area/hallway/secondary/entry) +"aVd" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Monastery Maintenance APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Monastery Maintenance" + }) +"aVe" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Monastery Maintenance" + }) +"aVf" = ( +/obj/machinery/computer/security, +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + pixel_y = 30 + }, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = -32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/checkpoint2{ + name = "Customs" + }) +"aVg" = ( +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/checkpoint2{ + name = "Customs" + }) +"aVh" = ( +/obj/structure/closet/wardrobe/red, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/checkpoint2{ + name = "Customs" + }) +"aVi" = ( +/obj/structure/closet/secure_closet/security, +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = 26 + }, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (NORTHEAST)"; + dir = 5 + }, +/area/security/checkpoint2{ + name = "Customs" + }) +"aVj" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/central) +"aVk" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Custodial Quarters"; + req_access_txt = "26" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/janitor) +"aVl" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"aVm" = ( +/obj/machinery/vending/dinnerware, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aVn" = ( +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aVo" = ( +/obj/structure/sink/kitchen{ + pixel_y = 28 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aVp" = ( +/obj/machinery/processor, +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = 26 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aVq" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 28 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aVr" = ( +/obj/structure/table, +/obj/machinery/chem_dispenser/drinks/beer, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"aVs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"aVt" = ( +/obj/structure/table/reinforced, +/obj/machinery/chem_dispenser/drinks, +/turf/open/floor/plasteel/darkred/side{ + dir = 8 + }, +/area/crew_quarters/bar) +"aVu" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"aVv" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = 30 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar) +"aVw" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar) +"aVx" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar) +"aVy" = ( +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j2"; + dir = 1 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 28 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"aVz" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/item/weapon/storage/box/lights/bulbs, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Monastery Maintenance" + }) +"aVA" = ( +/obj/effect/decal/cleanable/cobweb{ + icon_state = "cobweb2" + }, +/obj/item/stack/sheet/glass{ + amount = 50; + layer = 4 + }, +/obj/item/stack/sheet/metal{ + amount = 20; + layer = 3.1 + }, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Monastery Maintenance" + }) +"aVB" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = 26 + }, +/turf/open/floor/plasteel/black, +/area/library) +"aVC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -28 + }, +/turf/open/floor/plasteel/brown/corner{ + dir = 1; + tag = "icon-browncorner (NORTH)" + }, +/area/hallway/primary/central) +"aVD" = ( +/obj/structure/table, +/obj/machinery/computer/stockexchange, +/obj/machinery/status_display{ + dir = 4; + layer = 4; + pixel_x = -32; + pixel_y = 0; + supply_display = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aVE" = ( +/obj/structure/disposalpipe/junction{ + dir = 8; + icon_state = "pipe-j1" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aVF" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_mining{ + name = "Cargo Office"; + req_access_txt = "50" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aVG" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aVH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aVI" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"aVJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"aVK" = ( +/obj/structure/disposalpipe/sortjunction{ + dir = 8; + icon_state = "pipe-j2s"; + sortType = 3 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"aVL" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"aVM" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"aVN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"aVO" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aVP" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aVQ" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aVR" = ( +/turf/open/floor/plasteel/arrival{ + dir = 1 + }, +/area/hallway/secondary/entry) +"aVS" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel/arrival{ + dir = 1 + }, +/area/hallway/secondary/entry) +"aVT" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/arrival{ + dir = 1 + }, +/area/hallway/secondary/entry) +"aVU" = ( +/obj/machinery/camera{ + c_tag = "Arrivals Fore"; + dir = 2 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/arrival{ + dir = 1 + }, +/area/hallway/secondary/entry) +"aVV" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = 26 + }, +/turf/open/floor/plasteel/arrival{ + dir = 1 + }, +/area/hallway/secondary/entry) +"aVW" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/arrival{ + dir = 1 + }, +/area/hallway/secondary/entry) +"aVX" = ( +/obj/machinery/computer/card, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Security Checkpoint"; + dir = 4; + network = list("SS13") + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23; + pixel_y = 0 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/checkpoint2{ + name = "Customs" + }) +"aVY" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint2{ + name = "Customs" + }) +"aVZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint2{ + name = "Customs" + }) +"aWa" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint2{ + name = "Customs" + }) +"aWb" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (EAST)"; + dir = 4 + }, +/area/security/checkpoint2{ + name = "Customs" + }) +"aWc" = ( +/obj/machinery/door/airlock/security{ + name = "Security Checkpoint"; + req_access = null; + req_access_txt = "1" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red, +/area/security/checkpoint2{ + name = "Customs" + }) +"aWd" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aWe" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aWf" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4; + initialize_directions = 11 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 23; + pixel_y = 0 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/central) +"aWg" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/floorgrime, +/area/janitor) +"aWh" = ( +/turf/open/floor/plasteel/floorgrime, +/area/janitor) +"aWi" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/machinery/power/apc{ + dir = 1; + name = "Custodial Closet APC"; + pixel_x = 0; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plasteel/floorgrime, +/area/janitor) +"aWj" = ( +/obj/machinery/hydroponics/constructable, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/green/side{ + dir = 8 + }, +/area/hydroponics) +"aWk" = ( +/obj/machinery/vending/hydronutrients, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/hydroponics) +"aWl" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/green/side{ + dir = 8 + }, +/area/hydroponics) +"aWm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"aWn" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"aWo" = ( +/obj/effect/landmark/start{ + name = "Botanist" + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"aWp" = ( +/obj/machinery/smartfridge, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/crew_quarters/kitchen) +"aWq" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aWr" = ( +/obj/machinery/vending/boozeomat, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/crew_quarters/kitchen) +"aWs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"aWt" = ( +/obj/structure/chair/stool/bar, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"aWu" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar) +"aWv" = ( +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"aWw" = ( +/obj/structure/chair/wood/normal, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/bar) +"aWx" = ( +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/structure/chair/wood/normal, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/bar) +"aWy" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8; + initialize_directions = 11 + }, +/obj/effect/landmark/xmastree, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/bar) +"aWz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/chair/wood/normal, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/bar) +"aWA" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar) +"aWB" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/newscaster{ + pixel_x = 32; + pixel_y = 1 + }, +/obj/structure/chair/wood/normal, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar) +"aWC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/extinguisher_cabinet{ + pixel_x = -24 + }, +/turf/open/floor/plasteel/brown/corner{ + dir = 1; + tag = "icon-browncorner (NORTH)" + }, +/area/hallway/primary/central) +"aWD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/carpet, +/area/library) +"aWE" = ( +/obj/structure/table, +/obj/item/weapon/pen, +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = -26 + }, +/obj/item/weapon/paper_bin{ + layer = 2.9; + pixel_x = 0; + pixel_y = 0; + tag = "every single paper bin is edited to this" + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aWF" = ( +/obj/structure/table, +/obj/item/weapon/clipboard, +/obj/item/weapon/folder/yellow, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aWG" = ( +/obj/machinery/photocopier, +/obj/machinery/light, +/obj/machinery/camera{ + c_tag = "Cargo Office"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aWH" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/power/apc{ + dir = 2; + name = "Cargo Office APC"; + pixel_x = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aWI" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aWJ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aWK" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/closed/wall, +/area/quartermaster/office) +"aWL" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aWM" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"aWN" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"aWO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/power/apc{ + dir = 2; + name = "Cargo Bay APC"; + pixel_x = 0; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"aWP" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = -26 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"aWQ" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 1; + icon_state = "pipe-j1s"; + sortType = 2 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"aWR" = ( +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"aWS" = ( +/turf/closed/wall, +/area/maintenance/auxsolarstarboard{ + name = "Starboard Solar Maintenance" + }) +"aWT" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/auxsolarstarboard{ + name = "Starboard Solar Maintenance" + }) +"aWU" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/solar{ + id = "portsolar"; + name = "Port Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/starboard{ + name = "Starboard Solar Array" + }) +"aWV" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aWW" = ( +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aWX" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aWY" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aWZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aXa" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aXb" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/secondary/entry) +"aXc" = ( +/obj/machinery/computer/secure_data, +/obj/machinery/button/door{ + dir = 2; + id = "papersplease"; + name = "Shutters Control Button"; + pixel_x = -26; + pixel_y = 6; + req_access_txt = "1" + }, +/obj/machinery/button/flasher{ + id = "brigentry"; + pixel_x = -26; + pixel_y = -4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/security/checkpoint2{ + name = "Customs" + }) +"aXd" = ( +/obj/item/weapon/pen, +/obj/structure/table, +/obj/item/weapon/paper_bin{ + layer = 2.9; + pixel_x = 0; + pixel_y = 0; + tag = "every single paper bin is edited to this" + }, +/turf/open/floor/plasteel/red/side, +/area/security/checkpoint2{ + name = "Customs" + }) +"aXe" = ( +/obj/structure/chair/office/dark, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/side, +/area/security/checkpoint2{ + name = "Customs" + }) +"aXf" = ( +/obj/machinery/recharger{ + pixel_y = 4 + }, +/obj/structure/table, +/turf/open/floor/plasteel/red/side, +/area/security/checkpoint2{ + name = "Customs" + }) +"aXg" = ( +/obj/machinery/power/apc{ + dir = 2; + name = "Security Checkpoint APC"; + pixel_x = 1; + pixel_y = -24 + }, +/obj/structure/cable, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/checkpoint2{ + name = "Customs" + }) +"aXh" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aXi" = ( +/obj/vehicle/janicart, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/button/door{ + dir = 2; + id = "jangarage"; + name = "Custodial Closet Shutters Control"; + pixel_x = -25; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4"; + tag = "" + }, +/turf/open/floor/plasteel/floorgrime, +/area/janitor) +"aXj" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel/floorgrime, +/area/janitor) +"aXk" = ( +/obj/structure/closet/l3closet/janitor, +/obj/machinery/requests_console{ + department = "Janitorial"; + departmentType = 1; + pixel_x = 32; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/floorgrime, +/area/janitor) +"aXl" = ( +/obj/machinery/vending/hydroseeds{ + slogan_delay = 700 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/hydroponics) +"aXm" = ( +/turf/open/floor/plasteel/green/corner, +/area/hydroponics) +"aXn" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/green/side, +/area/hydroponics) +"aXo" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/eastleft{ + dir = 8; + name = "Hydroponics Desk"; + req_access_txt = "35" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/window/eastleft{ + dir = 4; + name = "Kitchen Desk"; + req_access_txt = "28" + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aXp" = ( +/obj/effect/landmark/start{ + name = "Cook" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aXq" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/condiment/saltshaker{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/weapon/reagent_containers/food/condiment/peppermill, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aXr" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aXs" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/item/weapon/reagent_containers/food/snacks/pie/cream, +/obj/machinery/camera{ + c_tag = "Kitchen"; + dir = 1; + network = list("SS13") + }, +/turf/open/floor/plasteel/hydrofloor, +/area/crew_quarters/kitchen) +"aXt" = ( +/obj/effect/landmark/start{ + name = "Bartender" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"aXu" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/gun/ballistic/revolver/russian, +/turf/open/floor/plasteel/darkred/side{ + dir = 8 + }, +/area/crew_quarters/bar) +"aXv" = ( +/obj/structure/chair/stool/bar, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar) +"aXw" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/carpet, +/area/library) +"aXx" = ( +/obj/structure/table/wood/fancy, +/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/bar) +"aXy" = ( +/obj/item/weapon/coin/silver, +/obj/structure/table/wood/fancy, +/obj/item/weapon/cane, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/bar) +"aXz" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/bar) +"aXA" = ( +/obj/structure/table/wood/fancy, +/obj/item/weapon/storage/fancy/candle_box, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/bar) +"aXB" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/table/wood, +/obj/item/clothing/under/sundress, +/obj/item/clothing/under/waiter, +/obj/item/clothing/under/blacktango, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"aXC" = ( +/obj/structure/chair/stool, +/obj/item/trash/can, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/bar) +"aXD" = ( +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/structure/chair/stool, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/bar) +"aXE" = ( +/obj/structure/chair/stool, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/bar) +"aXF" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aXG" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Cargo Office Maintenance"; + req_access_txt = "50" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/quartermaster/office) +"aXH" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 6; + pixel_y = -5 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aXI" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/weapon/hand_labeler, +/obj/machinery/light/small, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aXJ" = ( +/obj/structure/closet/wardrobe/cargotech, +/obj/item/clothing/head/mailman, +/obj/item/clothing/under/rank/mailman, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aXK" = ( +/turf/closed/wall, +/area/quartermaster/qm) +"aXL" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/quartermaster/qm) +"aXM" = ( +/obj/machinery/door/airlock/glass_mining{ + name = "Quartermaster"; + req_access_txt = "41" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/brown, +/area/quartermaster/qm) +"aXN" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/quartermaster/qm) +"aXO" = ( +/turf/closed/wall, +/area/quartermaster/miningdock) +"aXP" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/brown, +/area/quartermaster/miningdock) +"aXQ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/brown, +/area/quartermaster/miningdock) +"aXR" = ( +/obj/machinery/power/smes, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarstarboard{ + name = "Starboard Solar Maintenance" + }) +"aXS" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarstarboard{ + name = "Starboard Solar Maintenance" + }) +"aXT" = ( +/obj/structure/rack, +/obj/item/clothing/mask/gas, +/obj/item/device/multitool, +/turf/open/floor/plating, +/area/maintenance/auxsolarstarboard{ + name = "Starboard Solar Maintenance" + }) +"aXU" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarstarboard{ + name = "Starboard Solar Maintenance" + }) +"aXV" = ( +/obj/machinery/door/airlock/external{ + name = "Port Docking Bay 1" + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"aXW" = ( +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/hallway/secondary/entry) +"aXX" = ( +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/hallway/secondary/entry) +"aXY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aXZ" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/secondary/entry) +"aYa" = ( +/obj/machinery/door/firedoor, +/obj/structure/table/reinforced, +/obj/machinery/door/window/westright{ + dir = 1; + name = "Security Checkpoint"; + req_access_txt = "1" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/window/northleft{ + dir = 2; + icon_state = "left"; + name = "Reception Window"; + req_access_txt = "0" + }, +/obj/machinery/door/poddoor{ + density = 0; + icon_state = "open"; + id = "papersplease"; + layer = 3.1; + name = "privacy shutters"; + opacity = 0 + }, +/obj/item/weapon/crowbar, +/turf/open/floor/plasteel/delivery, +/area/security/checkpoint2{ + name = "Customs" + }) +"aYb" = ( +/obj/structure/janitorialcart, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/floorgrime, +/area/janitor) +"aYc" = ( +/obj/structure/closet/jcloset, +/obj/item/clothing/head/crown, +/obj/machinery/camera{ + c_tag = "Custodial Closet"; + dir = 8 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 24 + }, +/turf/open/floor/plasteel/floorgrime, +/area/janitor) +"aYd" = ( +/obj/machinery/seed_extractor, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/hydroponics) +"aYe" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/camera{ + c_tag = "Hydroponics South"; + dir = 8; + network = list("SS13") + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"aYf" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/window/westright{ + dir = 1; + name = "Hydroponics Desk"; + req_access_txt = "35" + }, +/obj/item/weapon/reagent_containers/glass/bucket, +/turf/open/floor/plasteel, +/area/hydroponics) +"aYg" = ( +/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) +"aYh" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_x = -3; + pixel_y = 6 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aYi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aYj" = ( +/obj/structure/table, +/obj/item/weapon/kitchen/rollingpin, +/obj/item/weapon/reagent_containers/food/condiment/enzyme, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aYk" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/ingredients/wildcard, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aYl" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + dir = 4; + name = "Library APC"; + pixel_x = 24 + }, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/black, +/area/library) +"aYm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"aYn" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"aYo" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/head/that{ + throwforce = 1; + throwing = 1 + }, +/turf/open/floor/plasteel/darkred/side{ + dir = 8 + }, +/area/crew_quarters/bar) +"aYp" = ( +/obj/structure/chair/stool/bar, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"aYq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/bar) +"aYr" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/chair/wood/normal{ + icon_state = "wooden_chair"; + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar) +"aYs" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + layer = 2.4; + on = 1 + }, +/obj/item/clothing/shoes/sandal, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"aYt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar) +"aYu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"aYv" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/crew_quarters/bar) +"aYw" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aYx" = ( +/obj/structure/closet/secure_closet/quartermaster, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23; + pixel_y = 0 + }, +/obj/item/weapon/storage/belt/fannypack/yellow, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTHWEST)"; + dir = 9 + }, +/area/quartermaster/qm) +"aYy" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/brown{ + dir = 1; + tag = "icon-brown (NORTH)" + }, +/area/quartermaster/qm) +"aYz" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/brown{ + dir = 5 + }, +/area/quartermaster/qm) +"aYA" = ( +/obj/structure/closet/wardrobe/miner, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -28 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTHWEST)"; + dir = 9 + }, +/area/quartermaster/miningdock) +"aYB" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/brown{ + dir = 1 + }, +/area/quartermaster/miningdock) +"aYC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/brown{ + dir = 1 + }, +/area/quartermaster/miningdock) +"aYD" = ( +/obj/structure/closet/emcloset, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 23; + pixel_y = 0 + }, +/turf/open/floor/plasteel/brown{ + dir = 5 + }, +/area/quartermaster/miningdock) +"aYE" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aYF" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aYG" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/door/airlock/engineering{ + name = "Starboard Solar Access"; + req_access_txt = "10" + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarstarboard{ + name = "Starboard Solar Maintenance" + }) +"aYH" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarstarboard{ + name = "Starboard Solar Maintenance" + }) +"aYI" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarstarboard{ + name = "Starboard Solar Maintenance" + }) +"aYJ" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarstarboard{ + name = "Starboard Solar Maintenance" + }) +"aYK" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 4; + name = "Solar Maintenance"; + req_access = null; + req_access_txt = "10; 13" + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarstarboard{ + name = "Starboard Solar Maintenance" + }) +"aYL" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarstarboard{ + name = "Starboard Solar Maintenance" + }) +"aYM" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 8; + name = "Solar Maintenance"; + req_access = null; + req_access_txt = "10; 13" + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarstarboard{ + name = "Starboard Solar Maintenance" + }) +"aYN" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/space, +/area/solar/starboard{ + name = "Starboard Solar Array" + }) +"aYO" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/space, +/area/solar/starboard{ + name = "Starboard Solar Array" + }) +"aYP" = ( +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard{ + name = "Starboard Solar Array" + }) +"aYQ" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/space, +/area/solar/starboard{ + name = "Starboard Solar Array" + }) +"aYR" = ( +/obj/machinery/power/tracker, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/starboard{ + name = "Starboard Solar Array" + }) +"aYS" = ( +/obj/structure/grille, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = 32 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"aYT" = ( +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"aYU" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/hallway/secondary/entry) +"aYV" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/warning, +/area/hallway/secondary/entry) +"aYW" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/hallway/secondary/entry) +"aYX" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aYY" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/obj/structure/table/glass, +/obj/item/weapon/tank/internals/oxygen, +/obj/item/clothing/mask/breath, +/obj/item/clothing/suit/space/hardsuit/engine/elite, +/turf/open/floor/plating/abductor, +/area/shuttle/abandoned) +"aYZ" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aZa" = ( +/obj/machinery/flasher{ + id = "brigentry"; + pixel_x = -28; + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aZb" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aZc" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aZd" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plating/abductor, +/area/shuttle/abandoned) +"aZe" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced, +/obj/structure/table/glass, +/obj/item/clothing/shoes/magboots, +/turf/open/floor/plating/abductor, +/area/shuttle/abandoned) +"aZf" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/floorgrime, +/area/janitor) +"aZg" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/floorgrime, +/area/janitor) +"aZh" = ( +/obj/item/weapon/reagent_containers/glass/bucket, +/obj/item/weapon/mop, +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/turf/open/floor/plasteel/floorgrime, +/area/janitor) +"aZi" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/hydroponics) +"aZj" = ( +/turf/open/floor/plasteel/green/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"aZk" = ( +/obj/structure/table, +/obj/item/weapon/storage/crayons, +/obj/item/weapon/wrench, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"aZl" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/glass/beaker/large, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aZm" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/snacks/grown/tomato, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aZn" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"aZo" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"aZp" = ( +/obj/structure/table/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/clothing/head/hardhat/cakehat, +/turf/open/floor/plasteel/darkred/side{ + dir = 8 + }, +/area/crew_quarters/bar) +"aZq" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"aZr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar) +"aZs" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/item/device/radio/beacon, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar) +"aZt" = ( +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/carpet, +/area/chapel/main{ + name = "Monastery" + }) +"aZu" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/lighter, +/turf/open/floor/plasteel/darkred/side{ + dir = 8 + }, +/area/crew_quarters/bar) +"aZv" = ( +/obj/item/weapon/cigbutt, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aZw" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aZx" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"aZy" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/power/apc{ + dir = 8; + name = "Quartermaster APC"; + pixel_x = -24; + pixel_y = 0 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/brown{ + dir = 8 + }, +/area/quartermaster/qm) +"aZz" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"aZA" = ( +/obj/structure/filingcabinet, +/turf/open/floor/plasteel/brown{ + dir = 4 + }, +/area/quartermaster/qm) +"aZB" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/quartermaster/miningdock) +"aZC" = ( +/obj/structure/table, +/obj/item/weapon/folder/yellow, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/brown/corner{ + dir = 1; + tag = "icon-browncorner (NORTH)" + }, +/area/quartermaster/miningdock) +"aZD" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/effect/landmark/start{ + name = "Shaft Miner" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"aZE" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"aZF" = ( +/obj/machinery/computer/security/mining, +/obj/machinery/requests_console{ + department = "Mining"; + departmentType = 0; + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/brown/corner, +/area/quartermaster/miningdock) +"aZG" = ( +/obj/structure/table, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/labor) +"aZH" = ( +/obj/machinery/computer/shuttle/mining, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/labor) +"aZI" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/apmaint) +"aZJ" = ( +/obj/structure/cable, +/obj/machinery/power/apc{ + dir = 8; + name = "Starboard Solar APC"; + pixel_x = -24; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarstarboard{ + name = "Starboard Solar Maintenance" + }) +"aZK" = ( +/obj/structure/chair/stool, +/obj/item/weapon/cigbutt/cigarbutt, +/turf/open/floor/plating, +/area/maintenance/auxsolarstarboard{ + name = "Starboard Solar Maintenance" + }) +"aZL" = ( +/obj/machinery/power/solar_control{ + id = "starboardsolar"; + name = "Starboard Solar Control"; + track = 0 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/maintenance/auxsolarstarboard{ + name = "Starboard Solar Maintenance" + }) +"aZM" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aZN" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aZO" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aZP" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8; + initialize_directions = 11 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aZQ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aZR" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Central Access" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aZS" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/decal/cleanable/cobweb{ + icon_state = "cobweb2" + }, +/obj/item/weapon/storage/box/matches{ + pixel_x = -3; + pixel_y = 8 + }, +/obj/item/weapon/storage/fancy/candle_box, +/obj/structure/table/wood/fancy, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"aZT" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/janitor) +"aZU" = ( +/obj/structure/table, +/obj/item/weapon/restraints/legcuffs/beartrap, +/obj/item/weapon/restraints/legcuffs/beartrap, +/obj/item/weapon/reagent_containers/spray/cleaner, +/turf/open/floor/plasteel/floorgrime, +/area/janitor) +"aZV" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/lights/mixed{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/mousetraps, +/turf/open/floor/plasteel/floorgrime, +/area/janitor) +"aZW" = ( +/obj/structure/sink{ + icon_state = "sink"; + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/turf/open/floor/plasteel/green/side{ + dir = 8 + }, +/area/hydroponics) +"aZX" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"aZY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"aZZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hydroponics) +"baa" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"bab" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + cyclelinkeddir = 4; + name = "Hydroponics"; + req_access_txt = "35" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"bac" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/green/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"bad" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"bae" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + cyclelinkeddir = 8; + name = "Kitchen"; + req_access_txt = "28" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/kitchen) +"baf" = ( +/obj/structure/disposalpipe/sortjunction{ + dir = 4; + icon_state = "pipe-j1s"; + sortType = 20 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bag" = ( +/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/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bah" = ( +/obj/effect/landmark/start{ + name = "Cook" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bai" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"baj" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bak" = ( +/obj/structure/chair/stool/bar, +/obj/machinery/camera{ + c_tag = "Bar Port"; + dir = 1 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"bal" = ( +/obj/item/weapon/reagent_containers/food/condiment/peppermill{ + pixel_x = 5; + pixel_y = -2 + }, +/obj/item/weapon/reagent_containers/food/condiment/saltshaker{ + layer = 3.1; + pixel_x = -2; + pixel_y = 2 + }, +/obj/structure/table/wood, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar) +"bam" = ( +/obj/structure/chair/wood/normal{ + icon_state = "wooden_chair"; + dir = 8 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"ban" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"bao" = ( +/obj/structure/chair/wood/normal{ + icon_state = "wooden_chair"; + dir = 4 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"bap" = ( +/obj/structure/table/wood, +/obj/item/weapon/kitchen/fork, +/obj/item/clothing/glasses/regular/hipster, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar) +"baq" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar) +"bar" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Bar Starboard"; + dir = 1 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"bas" = ( +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Monastery Maintenance" + }) +"bat" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar) +"bau" = ( +/turf/closed/wall, +/area/assembly/chargebay) +"bav" = ( +/obj/structure/table, +/obj/item/weapon/cartridge/quartermaster{ + pixel_x = 6; + pixel_y = 5 + }, +/obj/item/weapon/cartridge/quartermaster, +/obj/item/weapon/cartridge/quartermaster{ + pixel_x = -4; + pixel_y = 7 + }, +/obj/item/weapon/coin/silver, +/obj/machinery/status_display{ + dir = 4; + layer = 4; + pixel_x = -32; + pixel_y = 0; + supply_display = 1 + }, +/turf/open/floor/plasteel/brown{ + dir = 8 + }, +/area/quartermaster/qm) +"baw" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Quartermaster" + }, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"bax" = ( +/obj/machinery/computer/cargo, +/turf/open/floor/plasteel/brown{ + dir = 4 + }, +/area/quartermaster/qm) +"bay" = ( +/obj/machinery/mineral/equipment_vendor, +/turf/open/floor/plasteel/brown/corner{ + dir = 1; + tag = "icon-browncorner (NORTH)" + }, +/area/quartermaster/miningdock) +"baz" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/start{ + name = "Shaft Miner" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"baA" = ( +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"baB" = ( +/obj/machinery/computer/shuttle/mining, +/turf/open/floor/plasteel/brown/corner, +/area/quartermaster/miningdock) +"baC" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/labor) +"baD" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"baE" = ( +/obj/item/weapon/caution, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"baF" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + layer = 2.9; + pixel_x = 0; + pixel_y = 0; + tag = "every single paper bin is edited to this" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"baG" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/arrival) +"baH" = ( +/obj/machinery/door/airlock/titanium{ + name = "Arrivals Shuttle Airlock" + }, +/turf/open/floor/plating, +/area/shuttle/arrival) +"baI" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/arrival) +"baJ" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "burst_r"; + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/shuttle/arrival) +"baK" = ( +/obj/machinery/camera{ + c_tag = "Arrivals Central"; + dir = 4; + network = list("SS13") + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8; + initialize_directions = 11 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"baL" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"baM" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"baN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -29 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"baO" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"baP" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"baQ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Central Access" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"baR" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/sign/directions/evac{ + dir = 8; + icon_state = "direction_evac"; + pixel_x = 0; + pixel_y = -32; + tag = "icon-direction_evac (WEST)" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"baS" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"baT" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"baU" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Custodial Closet"; + req_access_txt = "26" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/janitor) +"baV" = ( +/obj/machinery/hydroponics/constructable, +/turf/open/floor/plasteel/green/side{ + dir = 10 + }, +/area/hydroponics) +"baW" = ( +/obj/machinery/hydroponics/constructable, +/turf/open/floor/plasteel/green/corner, +/area/hydroponics) +"baX" = ( +/obj/item/weapon/reagent_containers/glass/bucket, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hydroponics) +"baY" = ( +/obj/structure/reagent_dispensers/watertank/high, +/turf/open/floor/plasteel/green/corner, +/area/hydroponics) +"baZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"bba" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/button/door{ + id = "kitchen"; + name = "Kitchen Shutters Control"; + pixel_x = -24; + pixel_y = 0; + req_access_txt = "28" + }, +/obj/machinery/light_switch{ + pixel_x = -34; + pixel_y = 1 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bbb" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Monastery Maintenance" + }) +"bbc" = ( +/obj/structure/sign/barsign, +/turf/closed/wall, +/area/crew_quarters/bar) +"bbd" = ( +/obj/item/weapon/wrench, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Monastery Maintenance" + }) +"bbe" = ( +/obj/item/stack/cable_coil, +/obj/item/stack/cable_coil, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Monastery Maintenance" + }) +"bbf" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bbg" = ( +/obj/structure/table, +/obj/item/weapon/crowbar/large, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/obj/item/clothing/head/welding, +/turf/open/floor/plasteel, +/area/assembly/chargebay) +"bbh" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical, +/obj/machinery/power/apc{ + cell_type = 2500; + dir = 1; + name = "Captain's Office APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plasteel, +/area/assembly/chargebay) +"bbi" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = 24 + }, +/turf/open/floor/plasteel/delivery, +/area/assembly/chargebay) +"bbj" = ( +/obj/machinery/mech_bay_recharge_port, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/status_display{ + density = 0; + layer = 4; + pixel_x = 0; + pixel_y = 30 + }, +/turf/open/floor/plating, +/area/assembly/chargebay) +"bbk" = ( +/turf/open/floor/mech_bay_recharge_floor, +/area/assembly/chargebay) +"bbl" = ( +/obj/machinery/computer/mech_bay_power_console, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plasteel, +/area/assembly/chargebay) +"bbm" = ( +/obj/structure/table, +/obj/machinery/computer/stockexchange, +/obj/machinery/requests_console{ + department = "Cargo Bay"; + departmentType = 2; + pixel_x = -30; + pixel_y = 0 + }, +/turf/open/floor/plasteel/brown{ + dir = 10 + }, +/area/quartermaster/qm) +"bbn" = ( +/obj/structure/table, +/obj/item/weapon/clipboard, +/obj/item/weapon/stamp/qm{ + pixel_x = 0; + pixel_y = 0 + }, +/obj/machinery/light, +/obj/machinery/camera{ + c_tag = "Cargo Quartermaster's Office"; + dir = 1; + network = list("SS13") + }, +/turf/open/floor/plasteel/brown{ + dir = 2 + }, +/area/quartermaster/qm) +"bbo" = ( +/obj/machinery/computer/security/mining, +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -35 + }, +/turf/open/floor/plasteel/brown{ + dir = 6 + }, +/area/quartermaster/qm) +"bbp" = ( +/obj/structure/rack{ + dir = 1 + }, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/weapon/pickaxe{ + pixel_x = 5 + }, +/obj/item/weapon/shovel{ + pixel_x = -5 + }, +/obj/machinery/camera{ + c_tag = "Cargo Mining Dock"; + dir = 4 + }, +/turf/open/floor/plasteel/brown/corner{ + dir = 1; + tag = "icon-browncorner (NORTH)" + }, +/area/quartermaster/miningdock) +"bbq" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/landmark/start{ + name = "Shaft Miner" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bbr" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bbs" = ( +/turf/open/floor/plasteel/brown/corner, +/area/quartermaster/miningdock) +"bbt" = ( +/obj/machinery/door/airlock/external{ + name = "Mining Dock Airlock"; + req_access = null; + req_access_txt = "48" + }, +/turf/open/floor/plating, +/area/quartermaster/miningdock) +"bbu" = ( +/turf/open/floor/plating, +/area/quartermaster/miningdock) +"bbv" = ( +/obj/machinery/door/airlock/titanium{ + name = "Mining Shuttle Airlock"; + req_access_txt = "48" + }, +/turf/open/floor/plating, +/area/shuttle/labor) +"bbw" = ( +/obj/machinery/door/airlock/titanium{ + name = "Mining Shuttle Airlock"; + req_access_txt = "48" + }, +/obj/docking_port/mobile{ + dir = 8; + dwidth = 3; + height = 5; + id = "mining"; + name = "mining shuttle"; + port_angle = 90; + width = 7 + }, +/obj/docking_port/stationary{ + dir = 8; + dwidth = 3; + height = 5; + id = "mining_home"; + name = "mining shuttle bay"; + width = 7 + }, +/turf/open/floor/plating, +/area/shuttle/labor) +"bbx" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bby" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/table, +/obj/item/weapon/paperplane, +/obj/item/trash/chips, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bbz" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bbA" = ( +/obj/structure/closet/cabinet, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/weapon/circuitboard/machine/hydroponics, +/obj/item/weapon/electronics/apc, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bbB" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular{ + pixel_y = 4 + }, +/obj/item/weapon/storage/toolbox/emergency, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"bbC" = ( +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"bbD" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Air Out"; + on = 1 + }, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Monastery Maintenance" + }) +"bbE" = ( +/obj/structure/closet/wardrobe/black, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"bbF" = ( +/obj/structure/closet/wardrobe/mixed, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"bbG" = ( +/obj/machinery/requests_console{ + department = "Arrival shuttle"; + pixel_y = 30 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"bbH" = ( +/obj/structure/shuttle/engine/heater{ + icon_state = "heater"; + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/shuttle/arrival) +"bbI" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/secondary/entry) +"bbJ" = ( +/turf/closed/wall/r_wall, +/area/construction/quarters{ + name = "Lounge" + }) +"bbK" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "loungeshutters"; + name = "privacy shutters" + }, +/turf/open/floor/plating, +/area/construction/quarters{ + name = "Lounge" + }) +"bbL" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Lounge" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/construction/quarters{ + name = "Lounge" + }) +"bbM" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "loungeshutters"; + name = "privacy shutters" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/construction/quarters{ + name = "Lounge" + }) +"bbN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/sign/directions/security{ + dir = 1; + icon_state = "direction_sec"; + pixel_x = 32; + pixel_y = 40 + }, +/obj/structure/sign/directions/medical{ + dir = 4; + icon_state = "direction_med"; + pixel_x = 32; + pixel_y = 32 + }, +/obj/structure/sign/directions/science{ + dir = 4; + icon_state = "direction_sci"; + pixel_x = 32; + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bbO" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/purple/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"bbP" = ( +/obj/structure/chair{ + name = "Throne of Custodia" + }, +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = 26 + }, +/turf/open/floor/plasteel/purple/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"bbQ" = ( +/obj/machinery/vending/cola, +/obj/structure/sign/map{ + icon_state = "map-pubby"; + pixel_y = 32 + }, +/turf/open/floor/plasteel/purple/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"bbR" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/hydroponics) +"bbS" = ( +/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) +"bbT" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchen"; + name = "kitchen shutters" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bbU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/sign/poster{ + pixel_y = 32 + }, +/obj/structure/chair{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27; + pixel_y = 0 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"bbV" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"bbW" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"bbX" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock/glass{ + name = "Bar" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"bbY" = ( +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"bbZ" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"bca" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Monastery Maintenance" + }) +"bcb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/sign/directions/evac{ + dir = 1; + icon_state = "direction_evac"; + pixel_x = -32; + pixel_y = 38; + tag = "icon-direction_evac (NORTH)" + }, +/obj/structure/sign/directions/medical{ + dir = 8; + icon_state = "direction_med"; + pixel_x = -32; + pixel_y = 28; + tag = "icon-direction_med (WEST)" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bcc" = ( +/turf/open/floor/plasteel/purple/corner, +/area/hallway/primary/central) +"bcd" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters{ + id = "Skynet_launch"; + name = "mech bay" + }, +/turf/open/floor/plasteel/delivery, +/area/assembly/chargebay) +"bce" = ( +/obj/effect/decal/cleanable/oil, +/obj/effect/decal/cleanable/robot_debris{ + icon_state = "gib3" + }, +/turf/open/floor/plasteel/floorgrime, +/area/assembly/chargebay) +"bcf" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/turf/open/floor/plasteel/warning/corner{ + tag = "icon-plasteel_warn_corner (WEST)"; + icon_state = "plasteel_warn_corner"; + dir = 8 + }, +/area/assembly/chargebay) +"bcg" = ( +/turf/open/floor/plasteel, +/area/assembly/chargebay) +"bch" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/assembly/chargebay) +"bci" = ( +/turf/open/floor/plasteel/circuit/gcircuit, +/area/assembly/chargebay) +"bcj" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0 + }, +/turf/open/floor/plasteel/circuit/gcircuit, +/area/assembly/chargebay) +"bck" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/power/apc{ + dir = 8; + name = "Mining Dock APC"; + pixel_x = -24; + pixel_y = 0; + pixel_z = 0 + }, +/turf/open/floor/plasteel/brown/corner{ + dir = 1; + tag = "icon-browncorner (NORTH)" + }, +/area/quartermaster/miningdock) +"bcl" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bcm" = ( +/obj/structure/table, +/obj/item/weapon/paperplane, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bcn" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/apmaint) +"bco" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/landmark{ + name = "JoinLate" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"bcp" = ( +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"bcq" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion"; + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/shuttle/arrival) +"bcr" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"bcs" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp/green{ + pixel_x = 1; + pixel_y = 5 + }, +/turf/open/floor/plasteel/grimy, +/area/construction/quarters{ + name = "Lounge" + }) +"bct" = ( +/turf/open/floor/plasteel/grimy, +/area/construction/quarters{ + name = "Lounge" + }) +"bcu" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/grimy, +/area/construction/quarters{ + name = "Lounge" + }) +"bcv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/grimy, +/area/construction/quarters{ + name = "Lounge" + }) +"bcw" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp/green{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/machinery/button/door{ + id = "loungeshutters"; + name = "Privacy Shutters"; + pixel_y = 25 + }, +/turf/open/floor/plasteel/grimy, +/area/construction/quarters{ + name = "Lounge" + }) +"bcx" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 1; + icon_state = "pipe-j1s"; + sortType = 22 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bcy" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bcz" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/junction{ + dir = 8; + icon_state = "pipe-j1" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bcA" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bcB" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bcC" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bcD" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bcE" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bcF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/sign/directions/engineering{ + pixel_x = 32; + pixel_y = 28 + }, +/obj/structure/sign/directions/evac{ + dir = 1; + icon_state = "direction_evac"; + pixel_x = 32; + pixel_y = 38; + tag = "icon-direction_evac (NORTH)" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bcG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bcH" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bcI" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=Bar1"; + location = "Robo" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bcJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/purple/corner, +/area/hallway/primary/central) +"bcK" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters{ + id = "Skynet_launch"; + name = "mech bay" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/assembly/chargebay) +"bcL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/assembly/chargebay) +"bcM" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4"; + tag = "" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/assembly/chargebay) +"bcN" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/assembly/chargebay) +"bcO" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4"; + tag = "" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/bluegrid, +/area/assembly/chargebay) +"bcP" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/bluegrid, +/area/assembly/chargebay) +"bcQ" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Mech Bay Maintenance"; + req_access_txt = "29" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/assembly/chargebay) +"bcR" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bcS" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Mining Maintenance"; + req_access_txt = "48" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/quartermaster/miningdock) +"bcT" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + dir = 10 + }, +/area/quartermaster/miningdock) +"bcU" = ( +/obj/structure/closet/secure_closet/miner, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9; + pixel_y = 0 + }, +/turf/open/floor/plasteel/brown, +/area/quartermaster/miningdock) +"bcV" = ( +/obj/structure/closet/secure_closet/miner, +/obj/machinery/light, +/turf/open/floor/plasteel/brown, +/area/quartermaster/miningdock) +"bcW" = ( +/obj/structure/closet/secure_closet/miner, +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0 + }, +/turf/open/floor/plasteel/brown{ + dir = 6 + }, +/area/quartermaster/miningdock) +"bcX" = ( +/obj/structure/shuttle/engine/heater, +/turf/open/floor/plating, +/area/shuttle/labor) +"bcY" = ( +/obj/structure/ore_box, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/labor) +"bcZ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bda" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bdb" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bdc" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bdd" = ( +/obj/effect/landmark{ + name = "Observer-Start" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"bde" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/secondary/entry) +"bdf" = ( +/obj/structure/chair/comfy/beige{ + dir = 4 + }, +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/grimy, +/area/construction/quarters{ + name = "Lounge" + }) +"bdg" = ( +/turf/open/floor/carpet, +/area/construction/quarters{ + name = "Lounge" + }) +"bdh" = ( +/obj/structure/cable{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/carpet, +/area/construction/quarters{ + name = "Lounge" + }) +"bdi" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 24 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Monastery Maintenance" + }) +"bdj" = ( +/obj/structure/chair/comfy/beige{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Lounge"; + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/construction/quarters{ + name = "Lounge" + }) +"bdk" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27; + pixel_y = -1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bdl" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bdm" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=BrigS1"; + location = "Lounge" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bdn" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bdo" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bdp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=Eng"; + location = "Bar1" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bdq" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/button/door{ + dir = 2; + id = "Skynet_launch"; + name = "Mech Bay Door Control"; + pixel_x = 25; + pixel_y = 0 + }, +/turf/open/floor/plasteel/purple/corner, +/area/hallway/primary/central) +"bdr" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/button/door{ + dir = 2; + id = "Skynet_launch"; + name = "Mech Bay Door Control"; + pixel_x = -25; + pixel_y = 0 + }, +/obj/machinery/camera{ + c_tag = "Mech Bay"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/assembly/chargebay) +"bds" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/assembly/chargebay) +"bdt" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/assembly/chargebay) +"bdu" = ( +/obj/machinery/mech_bay_recharge_port, +/obj/structure/cable, +/turf/open/floor/plating, +/area/assembly/chargebay) +"bdv" = ( +/obj/machinery/computer/mech_bay_power_console, +/obj/structure/cable, +/turf/open/floor/plasteel, +/area/assembly/chargebay) +"bdw" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bdx" = ( +/turf/closed/wall, +/area/space) +"bdy" = ( +/obj/structure/shuttle/engine/propulsion/burst, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/turf/open/floor/plating/airless, +/area/shuttle/labor) +"bdz" = ( +/obj/structure/closet/emcloset, +/obj/item/weapon/storage/firstaid/o2, +/obj/item/weapon/tank/internals/emergency_oxygen, +/obj/item/clothing/mask/breath, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"bdA" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"bdB" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "burst_l"; + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/shuttle/arrival) +"bdC" = ( +/obj/structure/chair/comfy/beige{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/construction/quarters{ + name = "Lounge" + }) +"bdD" = ( +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/carpet, +/area/construction/quarters{ + name = "Lounge" + }) +"bdE" = ( +/obj/structure/chair/comfy/beige{ + dir = 8 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8"; + tag = "" + }, +/turf/open/floor/plasteel/grimy, +/area/construction/quarters{ + name = "Lounge" + }) +"bdF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/structure/chair{ + dir = 4 + }, +/obj/structure/sign/poster{ + pixel_x = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bdG" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1; + initialize_directions = 11 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bdH" = ( +/obj/machinery/light, +/obj/machinery/camera{ + c_tag = "Central Primary Hallway Genetics"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bdI" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/corner, +/area/hallway/primary/central) +"bdJ" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/turf/open/floor/plasteel/blue/corner, +/area/hallway/primary/central) +"bdK" = ( +/obj/machinery/light, +/obj/machinery/camera{ + c_tag = "Central Primary Hallway Hydroponics"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/blue/corner, +/area/hallway/primary/central) +"bdL" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/corner, +/area/hallway/primary/central) +"bdM" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + initialize_directions = 11 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bdN" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=Lounge"; + location = "Bar2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bdO" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bdP" = ( +/obj/machinery/camera{ + c_tag = "Central Primary Hallway Robotics"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/purple/corner, +/area/hallway/primary/central) +"bdQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/purple/corner, +/area/hallway/primary/central) +"bdR" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + name = "Mech Bay"; + req_access_txt = "29"; + req_one_access_txt = "0" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/assembly/chargebay) +"bdS" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/assembly/chargebay) +"bdT" = ( +/obj/machinery/recharge_station, +/turf/open/floor/plasteel/bot, +/area/assembly/chargebay) +"bdU" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/robot_debris{ + icon_state = "gib3" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bdV" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bdW" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bdX" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/mob/living/simple_animal/mouse/gray, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bdY" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/junction{ + dir = 8; + icon_state = "pipe-j2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bdZ" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/item/weapon/shard{ + icon_state = "small" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bea" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"beb" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bec" = ( +/obj/item/weapon/cigbutt/cigarbutt, +/obj/effect/decal/cleanable/cobweb{ + icon_state = "cobweb2" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bed" = ( +/obj/machinery/door/airlock/titanium{ + name = "Arrivals Shuttle Airlock" + }, +/obj/docking_port/mobile{ + dwidth = 4; + height = 6; + id = "arrival"; + name = "arrival shuttle"; + port_angle = -90; + preferred_direction = 8; + width = 13 + }, +/obj/docking_port/stationary{ + dwidth = 4; + height = 6; + id = "arrival_home"; + name = "port bay 1"; + width = 13 + }, +/turf/open/floor/plating, +/area/shuttle/arrival) +"bee" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/secondary/entry) +"bef" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "loungeshutters"; + name = "privacy shutters" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plating, +/area/construction/quarters{ + name = "Lounge" + }) +"beg" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp/green{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/construction/quarters{ + name = "Lounge" + }) +"beh" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/construction/quarters{ + name = "Lounge" + }) +"bei" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/construction/quarters{ + name = "Lounge" + }) +"bej" = ( +/obj/structure/table/glass, +/obj/item/device/healthanalyzer{ + layer = 3.1 + }, +/obj/item/weapon/pen{ + layer = 3.2 + }, +/turf/open/floor/plasteel/blue/side, +/area/hallway/primary/central) +"bek" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/purple/side, +/area/hallway/primary/central) +"bel" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bem" = ( +/turf/closed/wall, +/area/storage/emergency2) +"ben" = ( +/obj/machinery/door/airlock{ + name = "Port Emergency Storage"; + req_access_txt = "0" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/storage/emergency2) +"beo" = ( +/turf/closed/wall, +/area/medical/morgue) +"bep" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/centcom{ + name = "Morgue"; + opacity = 1; + req_access_txt = "6" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"beq" = ( +/turf/closed/wall, +/area/security/checkpoint/medical) +"ber" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/security/checkpoint/medical) +"bes" = ( +/turf/closed/wall, +/area/medical/medbay) +"bet" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/medical/medbay) +"beu" = ( +/obj/structure/sign/bluecross_2, +/turf/closed/wall, +/area/medical/medbay) +"bev" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white/side, +/area/medical/medbay) +"bew" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/white/side, +/area/medical/medbay) +"bex" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white/side, +/area/medical/medbay) +"bey" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-10"; + layer = 4.1 + }, +/turf/open/floor/plasteel/blue/side, +/area/hallway/primary/central) +"bez" = ( +/obj/machinery/camera{ + c_tag = "Central Primary Hallway Bar"; + dir = 1 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/blue/side, +/area/hallway/primary/central) +"beA" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/purple/side, +/area/hallway/primary/central) +"beB" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/medical/research{ + name = "Research Division" + }) +"beC" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white/side, +/area/medical/research{ + name = "Research Division" + }) +"beD" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/white/side, +/area/medical/research{ + name = "Research Division" + }) +"beE" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white/side, +/area/medical/research{ + name = "Research Division" + }) +"beF" = ( +/obj/structure/sign/science, +/turf/closed/wall, +/area/medical/research{ + name = "Research Division" + }) +"beG" = ( +/turf/closed/wall, +/area/medical/research{ + name = "Research Division" + }) +"beH" = ( +/turf/open/floor/plasteel/purple/side, +/area/hallway/primary/central) +"beI" = ( +/turf/closed/wall/r_wall, +/area/assembly/chargebay) +"beJ" = ( +/turf/closed/wall/r_wall, +/area/toxins/explab) +"beK" = ( +/turf/closed/wall/r_wall, +/area/maintenance/apmaint) +"beL" = ( +/obj/structure/plasticflaps{ + opacity = 1 + }, +/turf/open/floor/plasteel/delivery, +/area/toxins/explab) +"beM" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/apmaint) +"beN" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"beO" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"beP" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"beQ" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"beR" = ( +/obj/item/trash/sosjerky, +/obj/effect/decal/cleanable/vomit/old, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"beS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"beT" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"beU" = ( +/obj/structure/bookcase/random/nonfiction, +/turf/open/floor/wood, +/area/construction/quarters{ + name = "Lounge" + }) +"beV" = ( +/obj/structure/bookcase/random/fiction, +/turf/open/floor/wood, +/area/construction/quarters{ + name = "Lounge" + }) +"beW" = ( +/obj/structure/bookcase/random/religion, +/turf/open/floor/wood, +/area/construction/quarters{ + name = "Lounge" + }) +"beX" = ( +/turf/closed/wall, +/area/medical/genetics) +"beY" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + name = "Genetics Access"; + req_access_txt = "0"; + req_one_access_txt = "5;9" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/freezer, +/area/medical/genetics) +"beZ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/storage/emergency2) +"bfa" = ( +/obj/structure/plasticflaps{ + opacity = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/storage/emergency2) +"bfb" = ( +/obj/machinery/door/window/eastleft{ + dir = 4; + name = "Medical Delivery"; + req_access_txt = "5" + }, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=2"; + dir = 4; + freq = 1400; + location = "Medbay" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/medical/morgue) +"bfc" = ( +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bfd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23 + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bfe" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Morgue APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bff" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bfg" = ( +/obj/structure/filingcabinet, +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + pixel_y = 30 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23; + pixel_y = 0 + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/checkpoint/medical) +"bfh" = ( +/obj/structure/table, +/obj/machinery/recharger{ + pixel_y = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = 26 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/checkpoint/medical) +"bfi" = ( +/obj/machinery/computer/secure_data, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = 0; + pixel_y = 30 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/checkpoint/medical) +"bfj" = ( +/obj/machinery/computer/security, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/checkpoint/medical) +"bfk" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/medical/medbay) +"bfl" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 1 + }, +/area/medical/medbay) +"bfm" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 1; + tag = "icon-whiteblue (NORTH)" + }, +/area/medical/medbay) +"bfn" = ( +/obj/structure/chair, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 1; + tag = "icon-whiteblue (NORTH)" + }, +/area/medical/medbay) +"bfo" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 1 + }, +/area/medical/medbay) +"bfp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bfq" = ( +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bfr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bfs" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Diner" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bft" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Diner" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bfu" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Diner" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bfv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bfw" = ( +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bfx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bfy" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"bfz" = ( +/obj/structure/table, +/obj/item/device/assembly/igniter{ + pixel_x = -4; + pixel_y = -4 + }, +/obj/item/weapon/screwdriver{ + pixel_y = 16 + }, +/obj/item/device/gps{ + gpstag = "RD0" + }, +/obj/item/clothing/head/welding, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"bfA" = ( +/obj/machinery/modular_computer/console/preset/civilian, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"bfB" = ( +/obj/structure/table, +/obj/item/weapon/electronics/apc, +/obj/item/weapon/wrench, +/obj/item/stack/cable_coil, +/obj/item/weapon/electronics/airlock, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"bfC" = ( +/turf/closed/wall/r_wall, +/area/assembly/robotics) +"bfD" = ( +/obj/structure/grille, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "robotics"; + name = "robotics lab shutters" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/assembly/robotics) +"bfE" = ( +/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/weapon/paper_bin{ + pixel_x = 0; + pixel_y = 0 + }, +/obj/item/weapon/pen, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "robotics"; + name = "robotics lab shutters" + }, +/turf/open/floor/plating, +/area/assembly/robotics) +"bfF" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + name = "Mech Bay"; + req_access_txt = "29"; + req_one_access_txt = "0" + }, +/turf/open/floor/plasteel, +/area/assembly/robotics) +"bfG" = ( +/turf/open/floor/engine, +/area/toxins/explab) +"bfH" = ( +/obj/machinery/camera{ + c_tag = "Experimentor Lab Chamber"; + dir = 2; + network = list("SS13","RD") + }, +/turf/open/floor/engine, +/area/toxins/explab) +"bfI" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/engine, +/area/toxins/explab) +"bfJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/engine, +/area/toxins/explab) +"bfK" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Testing Lab Maintenance"; + req_access_txt = "47" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/toxins/explab) +"bfL" = ( +/obj/machinery/door/window/eastright{ + base_state = "left"; + dir = 2; + icon_state = "left"; + name = "Research Division Delivery"; + req_access_txt = "47" + }, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=2"; + dir = 8; + freq = 1400; + location = "Research Division" + }, +/turf/open/floor/plasteel/delivery, +/area/toxins/explab) +"bfM" = ( +/obj/item/weapon/shard, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bfN" = ( +/turf/closed/wall/r_wall, +/area/toxins/xenobiology) +"bfO" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/toxins/xenobiology) +"bfP" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/closed/wall/r_wall, +/area/toxins/xenobiology) +"bfQ" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/toxins/xenobiology) +"bfR" = ( +/obj/item/weapon/extinguisher, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bfS" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bfT" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bfU" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bfV" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bfW" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/item/trash/deadmouse, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/apmaint) +"bfX" = ( +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bfY" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bfZ" = ( +/obj/item/weapon/tank/internals/air, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bga" = ( +/obj/machinery/vending/snack, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/hallway/secondary/entry) +"bgb" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/hallway/secondary/entry) +"bgc" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/hallway/secondary/entry) +"bgd" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/photocopier, +/turf/open/floor/plasteel/black, +/area/library) +"bge" = ( +/turf/closed/wall, +/area/mining_construction{ + name = "Auxillary Closet Construction" + }) +"bgf" = ( +/obj/item/weapon/hemostat, +/obj/item/weapon/retractor, +/obj/item/weapon/cautery, +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/decal/cleanable/cobweb{ + icon_state = "cobweb2" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bgg" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/genetics) +"bgh" = ( +/turf/open/floor/plasteel/freezer, +/area/medical/genetics) +"bgi" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Genetics Cloning Foyer"; + dir = 2; + network = list("SS13") + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/genetics) +"bgj" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + layer = 2.9; + pixel_x = 0; + pixel_y = 0; + tag = "every single paper bin is edited to this" + }, +/obj/item/weapon/pen, +/obj/structure/sign/poster{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/genetics) +"bgk" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/storage/emergency2) +"bgl" = ( +/obj/item/weapon/storage/box/lights/mixed, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/storage/emergency2) +"bgm" = ( +/obj/item/weapon/extinguisher, +/obj/structure/cable{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/storage/emergency2) +"bgn" = ( +/obj/structure/bodycontainer/morgue, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bgo" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bgp" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bgq" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bgr" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/checkpoint/medical) +"bgs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"bgt" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/effect/landmark/start/depsec/medical, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"bgu" = ( +/obj/structure/table, +/obj/item/weapon/pen, +/obj/item/weapon/paper_bin{ + layer = 2.9; + pixel_x = 0; + pixel_y = 0; + tag = "every single paper bin is edited to this" + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/checkpoint/medical) +"bgv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bgw" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bgx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9; + pixel_y = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bgy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 26; + pixel_y = 28 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bgz" = ( +/obj/structure/chair, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 1 + }, +/area/medical/medbay) +"bgA" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/bodybags{ + pixel_x = 3; + pixel_y = 2 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 1 + }, +/area/medical/medbay) +"bgB" = ( +/obj/structure/table, +/obj/item/weapon/folder/white, +/obj/item/device/healthanalyzer, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 1 + }, +/area/medical/medbay) +"bgC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bgD" = ( +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bgE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bgF" = ( +/obj/structure/table, +/obj/item/device/paicard, +/obj/item/clothing/glasses/science, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"bgG" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/weapon/stock_parts/cell/high/plus, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"bgH" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"bgI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -26; + pixel_y = 28 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bgJ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bgK" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bgL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bgM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bgN" = ( +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/plasteel/purple/side{ + dir = 8 + }, +/area/assembly/robotics) +"bgO" = ( +/obj/structure/chair/office/light{ + dir = 1 + }, +/obj/effect/landmark/start{ + name = "Roboticist" + }, +/turf/open/floor/plasteel, +/area/assembly/robotics) +"bgP" = ( +/turf/open/floor/plasteel, +/area/assembly/robotics) +"bgQ" = ( +/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" + }, +/turf/open/floor/plasteel, +/area/assembly/robotics) +"bgR" = ( +/obj/machinery/requests_console{ + department = "Robotics"; + departmentType = 2; + name = "Robotics RC"; + pixel_y = 30 + }, +/turf/open/floor/plasteel, +/area/assembly/robotics) +"bgS" = ( +/obj/structure/disposalpipe/sortjunction{ + dir = 2; + icon_state = "pipe-j2s"; + sortType = 14 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/assembly/robotics) +"bgT" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Robotics Lab APC"; + pixel_x = 0; + pixel_y = 25 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plasteel, +/area/assembly/robotics) +"bgU" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/purple/side{ + dir = 4 + }, +/area/assembly/robotics) +"bgV" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/engine, +/area/toxins/explab) +"bgW" = ( +/obj/effect/landmark/event_spawn, +/obj/item/device/radio/beacon, +/turf/open/floor/engine, +/area/toxins/explab) +"bgX" = ( +/obj/machinery/r_n_d/experimentor, +/turf/open/floor/engine, +/area/toxins/explab) +"bgY" = ( +/obj/effect/landmark{ + name = "blobstart" + }, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/engine, +/area/toxins/explab) +"bgZ" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/engine, +/area/toxins/explab) +"bha" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/engine, +/area/toxins/explab) +"bhb" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Testing Lab APC"; + pixel_y = 25 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/engine, +/area/toxins/explab) +"bhc" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10; + pixel_x = 0; + initialize_directions = 10 + }, +/turf/open/floor/engine, +/area/toxins/explab) +"bhd" = ( +/obj/structure/sign/atmosplaque{ + desc = "A guide to the drone shell dispenser, detailing the constructive and destructive applications of modern repair drones, as well as the development of the uncorruptable cyborg servants of tomorrow, available today."; + icon_state = "kiddieplaque"; + name = "\improper 'Perfect Drone' sign"; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/engine, +/area/toxins/explab) +"bhe" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bhf" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/grille/broken, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bhg" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/grille/broken, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bhh" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bhi" = ( +/turf/open/floor/engine, +/area/toxins/xenobiology) +"bhj" = ( +/obj/machinery/camera{ + c_tag = "Xenobiology Test Chamber"; + dir = 2; + network = list("Xeno","RD"); + pixel_x = 0 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"bhk" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/turf/closed/wall/r_wall, +/area/toxins/xenobiology) +"bhl" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bhm" = ( +/obj/item/trash/candle, +/obj/item/weapon/cautery, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bhn" = ( +/turf/open/floor/plating, +/area/shuttle/auxillary_base) +"bho" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/carpet, +/area/library) +"bhp" = ( +/obj/item/weapon/storage/bag/books, +/turf/open/floor/plasteel/black, +/area/library) +"bhq" = ( +/obj/structure/bookcase/random/religion, +/turf/open/floor/plasteel/black, +/area/library) +"bhr" = ( +/obj/structure/bookcase/random/religion, +/obj/effect/decal/cleanable/cobweb{ + icon_state = "cobweb2" + }, +/turf/open/floor/plasteel/black, +/area/library) +"bhs" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bht" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Genetics Maintenance"; + req_access_txt = "9"; + req_one_access_txt = "0" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/medical/genetics) +"bhu" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/freezer, +/area/medical/genetics) +"bhv" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/genetics) +"bhw" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/freezer, +/area/medical/genetics) +"bhx" = ( +/obj/structure/table, +/obj/machinery/newscaster{ + pixel_x = 32 + }, +/obj/item/weapon/crowbar, +/obj/item/weapon/folder/white, +/turf/open/floor/plasteel/freezer, +/area/medical/genetics) +"bhy" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/storage/emergency2) +"bhz" = ( +/obj/machinery/power/apc{ + dir = 2; + name = "Port Emergency Storage APC"; + pixel_x = 0; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/storage/emergency2) +"bhA" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/item/weapon/storage/toolbox/emergency, +/turf/open/floor/plating, +/area/storage/emergency2) +"bhB" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/storage/emergency2) +"bhC" = ( +/obj/structure/bodycontainer/morgue, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bhD" = ( +/obj/item/weapon/ectoplasm, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bhE" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/bodybags, +/obj/item/weapon/pen, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Morgue"; + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bhF" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Medbay Security APC"; + pixel_x = -25 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/camera{ + c_tag = "Medbay Security Post"; + dir = 4; + network = list("SS13") + }, +/obj/structure/closet/wardrobe/red, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/security/checkpoint/medical) +"bhG" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/red/side, +/area/security/checkpoint/medical) +"bhH" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel/red/side, +/area/security/checkpoint/medical) +"bhI" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/wiki/security_space_law, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/checkpoint/medical) +"bhJ" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bhK" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bhL" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/white/side{ + dir = 8 + }, +/area/medical/medbay) +"bhM" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"bhN" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bhO" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bhP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bhQ" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bhR" = ( +/obj/item/weapon/reagent_containers/food/snacks/grown/poppy, +/obj/item/weapon/reagent_containers/food/snacks/grown/poppy, +/obj/item/weapon/reagent_containers/food/snacks/grown/poppy, +/obj/structure/table/wood/fancy, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"bhS" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/storage/toolbox/electrical{ + pixel_x = 1; + pixel_y = 6 + }, +/obj/item/weapon/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, +/turf/open/floor/plasteel/purple/side{ + dir = 8 + }, +/area/assembly/robotics) +"bhT" = ( +/obj/machinery/mecha_part_fabricator, +/turf/open/floor/plasteel, +/area/assembly/robotics) +"bhU" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 1 + }, +/area/assembly/robotics) +"bhV" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel, +/area/assembly/robotics) +"bhW" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass{ + amount = 20; + pixel_x = 3; + pixel_y = -4 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0 + }, +/turf/open/floor/plasteel/purple/side{ + dir = 4 + }, +/area/assembly/robotics) +"bhX" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector{ + on = 1 + }, +/turf/open/floor/engine, +/area/toxins/explab) +"bhY" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/engine, +/area/toxins/explab) +"bhZ" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/toxins/explab) +"bia" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/engine, +/area/toxins/explab) +"bib" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/start{ + name = "Scientist" + }, +/obj/machinery/atmospherics/components/trinary/filter, +/turf/open/floor/engine{ + name = "Holodeck Projector Floor" + }, +/area/toxins/explab) +"bic" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 6 + }, +/turf/open/floor/engine, +/area/toxins/explab) +"bid" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/heater{ + dir = 8 + }, +/turf/open/floor/engine, +/area/toxins/explab) +"bie" = ( +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"bif" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 1; + frequency = 1441; + id = "air_in" + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"big" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"bih" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"bii" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"bij" = ( +/turf/closed/wall, +/area/toxins/xenobiology) +"bik" = ( +/obj/effect/decal/cleanable/ash, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bil" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bim" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/manifold/general/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/apmaint) +"bin" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 8 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/apmaint) +"bio" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"bip" = ( +/obj/item/device/radio/beacon, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"biq" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/secondary/entry) +"bir" = ( +/obj/machinery/mass_driver{ + id = "chapelgun" + }, +/obj/machinery/door/window/eastleft{ + dir = 8; + name = "Mass Driver"; + req_one_access_txt = "0" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"bis" = ( +/obj/structure/rack, +/obj/item/stack/cable_coil, +/obj/item/weapon/electronics/airlock, +/obj/item/wallframe/camera, +/obj/item/device/assault_pod/mining, +/turf/open/floor/plating, +/area/shuttle/auxillary_base) +"bit" = ( +/obj/structure/rack, +/obj/item/stack/sheet/metal{ + amount = 50; + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/stack/sheet/metal{ + amount = 50; + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/weapon/storage/box/lights/mixed, +/turf/open/floor/plating, +/area/shuttle/auxillary_base) +"biu" = ( +/obj/machinery/mass_driver{ + id = "chapelgun" + }, +/obj/structure/window/reinforced{ + dir = 4; + layer = 2.9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"biv" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"biw" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/medical/genetics) +"bix" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_medical{ + id_tag = null; + name = "Cloning"; + req_access_txt = "0"; + req_one_access_txt = "5;9" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/freezer, +/area/medical/genetics) +"biy" = ( +/turf/closed/wall, +/area/medical/medbay3) +"biz" = ( +/obj/structure/table, +/obj/item/weapon/folder/white, +/obj/item/clothing/gloves/color/latex, +/obj/item/weapon/storage/fancy/candle_box, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"biA" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/checkpoint/medical) +"biB" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_security{ + name = "Medbay Security Post"; + req_access_txt = "63" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/red, +/area/security/checkpoint/medical) +"biC" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/reagent_containers/food/drinks/britcup{ + desc = "Kingston's personal cup." + }, +/turf/open/floor/plasteel/whiteblue/side, +/area/medical/medbay) +"biD" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin{ + pixel_x = 1; + pixel_y = 0 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/medbay) +"biE" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"biF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"biG" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"biH" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"biI" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + initialize_directions = 11 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"biJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"biK" = ( +/obj/machinery/light, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/camera{ + c_tag = "Research Division Entrance"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_x = -2; + pixel_y = -27 + }, +/turf/open/floor/plasteel/whitepurple/side, +/area/medical/research{ + name = "Research Division" + }) +"biL" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/whitepurple/side, +/area/medical/research{ + name = "Research Division" + }) +"biM" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whitepurple/side, +/area/medical/research{ + name = "Research Division" + }) +"biN" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-18"; + layer = 3; + pixel_y = 0 + }, +/turf/open/floor/plasteel/whitepurple/side, +/area/medical/research{ + name = "Research Division" + }) +"biO" = ( +/obj/machinery/r_n_d/circuit_imprinter, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/purple/side{ + dir = 8 + }, +/area/assembly/robotics) +"biP" = ( +/turf/open/floor/plasteel/bot, +/area/assembly/robotics) +"biQ" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/assembly/robotics) +"biR" = ( +/obj/structure/table, +/obj/item/stack/sheet/plasteel{ + amount = 10 + }, +/obj/item/device/assembly/flash/handheld, +/obj/item/device/assembly/flash/handheld, +/obj/item/device/assembly/flash/handheld, +/obj/item/device/assembly/flash/handheld, +/obj/item/device/assembly/flash/handheld, +/obj/item/device/assembly/flash/handheld, +/obj/item/device/assembly/flash/handheld, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 23; + pixel_y = 0 + }, +/turf/open/floor/plasteel/purple/side{ + dir = 4 + }, +/area/assembly/robotics) +"biS" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/turf/closed/wall/r_wall, +/area/toxins/explab) +"biT" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/poddoor/preopen{ + id = "testlab"; + name = "test chamber blast door" + }, +/turf/open/floor/engine, +/area/toxins/explab) +"biU" = ( +/obj/structure/grille, +/obj/machinery/door/poddoor/preopen{ + id = "testlab"; + name = "test chamber blast door" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/engine, +/area/toxins/explab) +"biV" = ( +/obj/machinery/door/poddoor/preopen{ + id = "telelab"; + name = "test chamber blast door" + }, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/engine, +/area/toxins/explab) +"biW" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/toxins/explab) +"biX" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/turf/open/floor/engine, +/area/toxins/explab) +"biY" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/obj/item/weapon/wrench, +/turf/open/floor/engine, +/area/toxins/explab) +"biZ" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 8 + }, +/turf/open/floor/engine, +/area/toxins/explab) +"bja" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 9 + }, +/area/toxins/xenobiology) +"bjb" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/beakers{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/weapon/storage/box/syringes, +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = 26 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 1 + }, +/area/toxins/xenobiology) +"bjc" = ( +/obj/structure/table, +/obj/item/stack/sheet/mineral/plasma{ + layer = 2.9 + }, +/obj/item/stack/sheet/mineral/plasma{ + layer = 2.9 + }, +/obj/item/stack/sheet/mineral/plasma{ + layer = 2.9 + }, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 1 + }, +/area/toxins/xenobiology) +"bjd" = ( +/obj/structure/table, +/obj/item/weapon/pen, +/obj/item/clothing/glasses/science, +/obj/item/clothing/glasses/science, +/obj/item/weapon/paper_bin{ + layer = 2.9; + pixel_x = 0; + pixel_y = 0; + tag = "every single paper bin is edited to this" + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 5 + }, +/area/toxins/xenobiology) +"bje" = ( +/obj/effect/landmark{ + name = "revenantspawn" + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"bjf" = ( +/obj/item/weapon/weldingtool, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bjg" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/apmaint) +"bjh" = ( +/obj/machinery/atmospherics/pipe/manifold/general/hidden, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/apmaint) +"bji" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/heater{ + dir = 8 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/apmaint) +"bjj" = ( +/turf/open/floor/plasteel/arrival, +/area/hallway/secondary/entry) +"bjk" = ( +/obj/machinery/camera{ + c_tag = "Arrivals Port Aft"; + dir = 1 + }, +/turf/open/floor/plasteel/arrival, +/area/hallway/secondary/entry) +"bjl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"bjm" = ( +/obj/structure/table/wood/fancy, +/obj/item/clothing/under/burial, +/obj/item/clothing/under/burial, +/obj/item/clothing/under/burial, +/obj/item/clothing/under/burial, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"bjn" = ( +/obj/machinery/door/airlock/engineering{ + cyclelinkeddir = 1; + name = "Auxillary Mining Closet Construction"; + req_access_txt = "0"; + req_one_access_txt = "31;32;47;48" + }, +/turf/open/floor/plating, +/area/mining_construction{ + name = "Auxillary Closet Construction" + }) +"bjo" = ( +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Monastery Maintenance" + }) +"bjp" = ( +/obj/item/weapon/pickaxe/mini, +/turf/open/floor/plating, +/area/shuttle/auxillary_base) +"bjq" = ( +/obj/machinery/camera{ + c_tag = "Auxillary Mining Base"; + dir = 8 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/obj/machinery/computer/shuttle/auxillary_base{ + density = 0; + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/shuttle/auxillary_base) +"bjr" = ( +/obj/docking_port/mobile/auxillary_base{ + dheight = 0; + dir = 8; + dwidth = 2; + height = 4; + width = 5 + }, +/obj/machinery/bluespace_beacon, +/turf/closed/wall, +/area/shuttle/auxillary_base) +"bjs" = ( +/obj/item/device/radio/intercom{ + broadcasting = 0; + freerange = 0; + frequency = 1485; + listening = 1; + name = "Station Intercom (Medbay)"; + pixel_x = 0; + pixel_y = 26 + }, +/obj/structure/closet/secure_closet/personal/patient, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (NORTH)"; + dir = 1 + }, +/area/medical/genetics) +"bjt" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (NORTH)"; + dir = 1 + }, +/area/medical/genetics) +"bju" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (NORTH)"; + dir = 1 + }, +/area/medical/genetics) +"bjv" = ( +/obj/structure/closet/wardrobe/mixed, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (NORTH)"; + dir = 1 + }, +/area/medical/genetics) +"bjw" = ( +/obj/machinery/vending/clothing, +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 0; + pixel_y = 27 + }, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (NORTH)"; + dir = 1 + }, +/area/medical/genetics) +"bjx" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/obj/structure/sign/poster{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 9; + initial_gas_mix = "n2=100;TEMP=80"; + tag = "icon-whiteblue (NORTHWEST)" + }, +/area/medical/medbay3) +"bjy" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/table, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/obj/item/weapon/storage/box/gloves{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/masks, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 1; + tag = "icon-whiteblue (NORTH)" + }, +/area/medical/medbay3) +"bjz" = ( +/obj/machinery/vending/medical, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (NORTHEAST)"; + dir = 5 + }, +/area/medical/medbay3) +"bjA" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bjB" = ( +/obj/structure/sign/poster{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 9; + initial_gas_mix = "n2=100;TEMP=80"; + tag = "icon-whiteblue (NORTHWEST)" + }, +/area/medical/medbay) +"bjC" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 1; + tag = "icon-whiteblue (NORTH)" + }, +/area/medical/medbay) +"bjD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (NORTHEAST)"; + dir = 5 + }, +/area/medical/medbay) +"bjE" = ( +/obj/machinery/requests_console{ + announcementConsole = 0; + department = "Medbay"; + departmentType = 1; + name = "Medbay RC"; + pixel_x = -32; + pixel_y = 0; + pixel_z = 0 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + freerange = 0; + frequency = 1485; + listening = 1; + name = "Station Intercom (Medbay)"; + pixel_x = 0; + pixel_y = 26 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 1 + }, +/area/medical/medbay) +"bjF" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Medical Doctor" + }, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (NORTHEAST)"; + dir = 5 + }, +/area/medical/medbay) +"bjG" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/white, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 8 + }, +/area/medical/medbay) +"bjH" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bjI" = ( +/obj/structure/bed/roller, +/turf/open/floor/plasteel/whiteblue/side, +/area/medical/medbay) +"bjJ" = ( +/obj/structure/bed/roller, +/obj/machinery/camera{ + c_tag = "Medbay Entrance"; + dir = 1 + }, +/turf/open/floor/plasteel/whiteblue/side, +/area/medical/medbay) +"bjK" = ( +/turf/open/floor/plasteel/whiteblue/side, +/area/medical/medbay) +"bjL" = ( +/obj/structure/table/glass, +/obj/item/stack/medical/gauze, +/obj/item/weapon/reagent_containers/glass/bottle/epinephrine, +/turf/open/floor/plasteel/whiteblue/side, +/area/medical/medbay) +"bjM" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/whitepurple/side, +/area/medical/research{ + name = "Research Division" + }) +"bjN" = ( +/obj/structure/closet/firecloset/full, +/turf/open/floor/plasteel/whitepurple/side, +/area/medical/research{ + name = "Research Division" + }) +"bjO" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + layer = 2.9; + pixel_x = -2; + pixel_y = 4 + }, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/whitepurple/side, +/area/medical/research{ + name = "Research Division" + }) +"bjP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/medical/research{ + name = "Research Division" + }) +"bjQ" = ( +/obj/machinery/door/airlock/research{ + cyclelinkeddir = 2; + name = "Research Division Access"; + req_access_txt = "47" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bjR" = ( +/obj/machinery/computer/rdconsole/robotics, +/turf/open/floor/plasteel/purple/side{ + dir = 8 + }, +/area/assembly/robotics) +"bjS" = ( +/obj/effect/landmark/start{ + name = "Roboticist" + }, +/turf/open/floor/plasteel/bot, +/area/assembly/robotics) +"bjT" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/weapon/stock_parts/cell/high/plus, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 28 + }, +/turf/open/floor/plasteel/purple/side{ + dir = 4 + }, +/area/assembly/robotics) +"bjU" = ( +/turf/closed/wall, +/area/toxins/explab) +"bjV" = ( +/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/atmospherics/pipe/simple/general/visible, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/toxins/explab) +"bjW" = ( +/obj/machinery/button/door{ + id = "testlab"; + name = "Window Blast Doors"; + pixel_x = -6; + pixel_y = 0 + }, +/obj/structure/table/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/button/door{ + id = "telelab"; + name = "Test Chamber Blast Door"; + pixel_x = 6; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/toxins/explab) +"bjX" = ( +/obj/machinery/computer/rdconsole/experiment, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/toxins/explab) +"bjY" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder, +/obj/item/weapon/book/manual/experimentor, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/toxins/explab) +"bjZ" = ( +/obj/item/weapon/paper_bin{ + pixel_x = 0; + pixel_y = 6 + }, +/obj/item/weapon/pen, +/obj/item/device/radio/off, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/toxins/explab) +"bka" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/toxins/explab) +"bkb" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/requests_console{ + department = "Science"; + departmentType = 2; + dir = 2; + name = "Science Requests Console"; + pixel_x = 0; + pixel_y = 30 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/toxins/explab) +"bkc" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/toxins/explab) +"bkd" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/toxins/explab) +"bke" = ( +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/toxins/explab) +"bkf" = ( +/obj/structure/rack, +/obj/item/stack/packageWrap, +/obj/item/stack/cable_coil, +/obj/item/weapon/wirecutters, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/toxins/explab) +"bkg" = ( +/obj/machinery/monkey_recycler, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 8 + }, +/area/toxins/xenobiology) +"bkh" = ( +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bki" = ( +/obj/structure/chair/comfy/beige{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Scientist" + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bkj" = ( +/obj/machinery/computer/camera_advanced/xenobio, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 4 + }, +/area/toxins/xenobiology) +"bkk" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE" + }, +/turf/closed/wall/r_wall, +/area/toxins/xenobiology) +"bkl" = ( +/obj/structure/disposaloutlet{ + dir = 1 + }, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"bkm" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/apmaint) +"bkn" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Monastery Maintenance" + }) +"bko" = ( +/obj/machinery/atmospherics/pipe/manifold/general/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Monastery Maintenance" + }) +"bkp" = ( +/obj/machinery/atmospherics/pipe/manifold/general/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Monastery Maintenance" + }) +"bkq" = ( +/obj/item/weapon/extinguisher, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Monastery Maintenance" + }) +"bkr" = ( +/obj/item/weapon/storage/bag/ore, +/turf/open/floor/plating, +/area/shuttle/auxillary_base) +"bks" = ( +/obj/structure/mining_shuttle_beacon, +/turf/open/floor/plating, +/area/shuttle/auxillary_base) +"bkt" = ( +/obj/structure/chair/wood/normal, +/turf/open/floor/plasteel/black, +/area/library) +"bku" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bkv" = ( +/obj/machinery/clonepod, +/turf/open/floor/plasteel/blue, +/area/medical/genetics) +"bkw" = ( +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bkx" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bky" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bkz" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/genetics) +"bkA" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (WEST)"; + dir = 8 + }, +/area/medical/medbay3) +"bkB" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay3) +"bkC" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (EAST)"; + dir = 4 + }, +/area/medical/medbay3) +"bkD" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/centcom{ + name = "Morgue"; + opacity = 1; + req_access_txt = "6;5" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bkE" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bkF" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bkG" = ( +/obj/machinery/light/small, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bkH" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bkI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bkJ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/centcom{ + name = "Morgue"; + opacity = 1; + req_access_txt = "6;5" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bkK" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 8 + }, +/area/medical/medbay) +"bkL" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bkM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (EAST)"; + dir = 4 + }, +/area/medical/medbay) +"bkN" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/medical{ + name = "Medbay Reception"; + req_access_txt = "5" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bkO" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (EAST)"; + dir = 4 + }, +/area/medical/medbay) +"bkP" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + desc = "A remote control switch for the medbay foyer."; + id = "MedbayFoyer"; + name = "Medbay Door Control"; + normaldoorcontrol = 1; + pixel_x = 0; + pixel_y = 0; + req_access_txt = "5" + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 8 + }, +/area/medical/medbay) +"bkQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/medbay) +"bkR" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/medbay) +"bkS" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "chemistry_shutters"; + name = "chemistry shutters" + }, +/turf/open/floor/plating, +/area/medical/chemistry) +"bkT" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/northleft{ + dir = 2; + name = "Chemistry Desk"; + req_access_txt = "5; 33" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "chemistry_shutters"; + name = "chemistry shutters" + }, +/obj/item/weapon/folder/white, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/whiteyellow{ + dir = 4 + }, +/area/medical/chemistry) +"bkU" = ( +/obj/machinery/smartfridge/chemistry, +/turf/closed/wall, +/area/medical/chemistry) +"bkV" = ( +/turf/closed/wall, +/area/medical/chemistry) +"bkW" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "research_shutters_2"; + name = "research shutters" + }, +/turf/open/floor/plating, +/area/toxins/explab) +"bkX" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/pen{ + layer = 3.1 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/window/eastright{ + dir = 2; + name = "Research and Development Desk"; + req_access_txt = "7" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "research_shutters_2"; + name = "research shutters" + }, +/obj/item/weapon/folder/white, +/turf/open/floor/plating, +/area/toxins/explab) +"bkY" = ( +/obj/structure/sink{ + dir = 8; + icon_state = "sink"; + pixel_x = -12 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"bkZ" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bla" = ( +/obj/structure/closet/emcloset, +/obj/machinery/camera{ + c_tag = "Research Division Access"; + dir = 2; + network = list("SS13") + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"blb" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/robotics_cyborgs{ + pixel_x = 2; + pixel_y = 5 + }, +/obj/item/weapon/storage/belt/utility, +/obj/item/weapon/reagent_containers/glass/beaker/large, +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = -27 + }, +/turf/open/floor/plasteel/purple/side{ + dir = 8 + }, +/area/assembly/robotics) +"blc" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/assembly/robotics) +"bld" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel, +/area/assembly/robotics) +"ble" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/assembly/robotics) +"blf" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/effect/decal/cleanable/oil{ + icon_state = "floor6" + }, +/turf/open/floor/plasteel/purple/side{ + dir = 4 + }, +/area/assembly/robotics) +"blg" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/toxins/explab) +"blh" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/toxins/explab) +"bli" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start{ + name = "Scientist" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/toxins/explab) +"blj" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/toxins/explab) +"blk" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel, +/area/toxins/explab) +"bll" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8; + initialize_directions = 11 + }, +/turf/open/floor/plasteel, +/area/toxins/explab) +"blm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/toxins/explab) +"bln" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/toxins/explab) +"blo" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass{ + amount = 50; + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/device/assembly/timer, +/obj/item/device/assembly/timer, +/turf/open/floor/plasteel, +/area/toxins/explab) +"blp" = ( +/obj/machinery/processor{ + desc = "A machine used to process slimes and retrieve their extract."; + name = "Slime Processor" + }, +/obj/structure/sign/poster{ + pixel_x = -32; + pixel_y = 0 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 8 + }, +/area/toxins/xenobiology) +"blq" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"blr" = ( +/obj/machinery/smartfridge/extract, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 4 + }, +/area/toxins/xenobiology) +"bls" = ( +/obj/machinery/shieldwallgen{ + req_access = list(55) + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"blt" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "misclab"; + name = "test chamber blast door" + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"blu" = ( +/obj/structure/grille, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id = "misclab"; + name = "test chamber blast door" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"blv" = ( +/obj/machinery/door/window/southleft{ + dir = 1; + name = "Test Chamber"; + req_access_txt = "55" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/door/poddoor/preopen{ + id = "misclab"; + name = "test chamber blast door" + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"blw" = ( +/obj/structure/grille, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id = "misclab"; + name = "test chamber blast door" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"blx" = ( +/obj/structure/grille, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "misclab"; + name = "test chamber blast door" + }, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"bly" = ( +/obj/machinery/shieldwallgen{ + req_access = list(55) + }, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"blz" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/turf/closed/wall, +/area/toxins/xenobiology) +"blA" = ( +/obj/machinery/door/poddoor/preopen{ + id = "xenobio5"; + name = "containment blast door" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"blB" = ( +/obj/machinery/door/window/northleft{ + base_state = "right"; + dir = 1; + icon_state = "right"; + name = "Containment Pen #5"; + req_access_txt = "55" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio5"; + name = "containment blast door" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"blC" = ( +/obj/machinery/door/poddoor/preopen{ + id = "xenobio5"; + name = "containment blast door" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"blD" = ( +/obj/machinery/door/poddoor/preopen{ + id = "xenobio6"; + name = "containment blast door" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"blE" = ( +/obj/machinery/door/window/northleft{ + base_state = "right"; + dir = 1; + icon_state = "right"; + name = "Containment Pen #6"; + req_access_txt = "55" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio6"; + name = "containment blast door" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"blF" = ( +/obj/machinery/door/poddoor/preopen{ + id = "xenobio6"; + name = "containment blast door" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"blG" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"blH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"blI" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion"; + dir = 4 + }, +/turf/closed/wall/mineral/titanium, +/area/shuttle/transport) +"blJ" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/transport) +"blK" = ( +/obj/structure/window/shuttle, +/obj/structure/grille, +/turf/open/floor/plating, +/area/shuttle/transport) +"blL" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/transport) +"blM" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "Arrivals APC"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/secondary/entry) +"blN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/carpet, +/area/library) +"blO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/carpet, +/area/library) +"blP" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/library) +"blQ" = ( +/obj/machinery/computer/cloning, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Genetics Cloning"; + dir = 4; + network = list("SS13") + }, +/turf/open/floor/plasteel/blue, +/area/medical/genetics) +"blR" = ( +/obj/machinery/holopad, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"blS" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 8; + icon_state = "pipe-j2s"; + sortType = 23 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"blT" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"blU" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_medical{ + id_tag = "GeneticsDoor"; + name = "Cloning"; + req_access_txt = "5" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"blV" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 8; + icon_state = "pipe-j1s"; + sortType = 9 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/medbay3) +"blW" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay3) +"blX" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "Medbay APC"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/medbay3) +"blY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/cable, +/obj/machinery/power/apc{ + dir = 8; + name = "Medbay APC"; + pixel_x = -24; + pixel_y = 0 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/medbay) +"blZ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bma" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9; + pixel_y = 0 + }, +/obj/structure/sign/poster{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/medbay) +"bmb" = ( +/obj/machinery/computer/med_data, +/turf/open/floor/plasteel/whiteblue/side, +/area/medical/medbay) +"bmc" = ( +/obj/machinery/computer/crew, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 6 + }, +/area/medical/medbay) +"bmd" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_medical{ + id_tag = "MedbayFoyer"; + name = "Medbay"; + req_access_txt = "5" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/medbay) +"bme" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_medical{ + id_tag = "MedbayFoyer"; + name = "Medbay"; + req_access_txt = "5" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/medbay) +"bmf" = ( +/obj/machinery/chem_master{ + layer = 2.7; + pixel_x = -2 + }, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 9 + }, +/area/medical/chemistry) +"bmg" = ( +/obj/structure/chair/office/light{ + dir = 1 + }, +/obj/effect/landmark/start{ + name = "Chemist" + }, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 1 + }, +/area/medical/chemistry) +"bmh" = ( +/obj/item/weapon/reagent_containers/glass/beaker/large, +/obj/item/weapon/reagent_containers/glass/beaker/large, +/obj/structure/table/glass, +/obj/item/weapon/reagent_containers/glass/beaker/large, +/obj/item/weapon/reagent_containers/glass/beaker/large, +/obj/item/clothing/glasses/science, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 1 + }, +/area/medical/chemistry) +"bmi" = ( +/obj/machinery/chem_master{ + layer = 2.7; + pixel_x = -2 + }, +/obj/machinery/button/door{ + id = "chemistry_shutters"; + name = "Shutters Control"; + pixel_x = 26; + pixel_y = 4; + req_access_txt = "5; 33" + }, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 5 + }, +/area/medical/chemistry) +"bmj" = ( +/obj/structure/table, +/obj/item/weapon/crowbar, +/obj/item/weapon/wrench, +/obj/machinery/requests_console{ + department = "Science"; + departmentType = 2; + name = "Science Requests Console"; + pixel_x = -32; + pixel_y = 0 + }, +/obj/item/weapon/book/manual/research_and_development, +/turf/open/floor/plasteel/purple/side{ + dir = 1 + }, +/area/toxins/explab) +"bmk" = ( +/obj/structure/sink/kitchen{ + desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; + name = "old sink"; + pixel_y = 28 + }, +/turf/open/floor/plasteel/purple/side{ + dir = 1 + }, +/area/toxins/explab) +"bml" = ( +/obj/machinery/disposal/bin, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel/purple/side{ + dir = 1 + }, +/area/toxins/explab) +"bmm" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1 + }, +/turf/open/floor/plasteel/purple/side{ + dir = 1 + }, +/area/toxins/explab) +"bmn" = ( +/obj/structure/chair/office/light{ + dir = 1 + }, +/turf/open/floor/plasteel/purple/side{ + dir = 1 + }, +/area/toxins/explab) +"bmo" = ( +/obj/item/weapon/storage/toolbox/mechanical, +/obj/machinery/holopad, +/turf/open/floor/plasteel/purple/side{ + dir = 1 + }, +/area/toxins/explab) +"bmp" = ( +/obj/machinery/shower{ + dir = 4; + icon_state = "shower"; + name = "emergency shower" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 10; + heat_capacity = 1e+006 + }, +/area/medical/research{ + name = "Research Division" + }) +"bmq" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warnwhite, +/area/medical/research{ + name = "Research Division" + }) +"bmr" = ( +/obj/structure/closet/firecloset/full, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 6 + }, +/area/medical/research{ + name = "Research Division" + }) +"bms" = ( +/obj/structure/closet/wardrobe/robotics_black, +/obj/item/device/radio/headset/headset_sci{ + pixel_x = -3 + }, +/turf/open/floor/plasteel/purple/side{ + dir = 8 + }, +/area/assembly/robotics) +"bmt" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1 + }, +/turf/open/floor/plasteel, +/area/assembly/robotics) +"bmu" = ( +/obj/item/device/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/device/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/device/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/device/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/weapon/stock_parts/cell/high/plus, +/obj/item/weapon/stock_parts/cell/high/plus{ + pixel_x = 5; + pixel_y = -5 + }, +/obj/item/weapon/crowbar, +/obj/structure/table, +/turf/open/floor/plasteel, +/area/assembly/robotics) +"bmv" = ( +/obj/item/weapon/circular_saw, +/obj/item/weapon/scalpel{ + pixel_y = 12 + }, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/item/weapon/razor{ + pixel_y = 5 + }, +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 + }, +/obj/structure/table, +/turf/open/floor/plasteel/warnwhite{ + dir = 9 + }, +/area/assembly/robotics) +"bmw" = ( +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/assembly/robotics) +"bmx" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/assembly/robotics) +"bmy" = ( +/obj/item/clothing/gloves/color/latex, +/obj/item/weapon/surgical_drapes, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/structure/table, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/assembly/robotics) +"bmz" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1; + name = "Connector Port (Air Supply)" + }, +/obj/machinery/light_switch{ + pixel_x = -25 + }, +/turf/open/floor/plasteel, +/area/toxins/explab) +"bmA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/toxins/explab) +"bmB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/toxins/explab) +"bmC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/toxins/explab) +"bmD" = ( +/turf/open/floor/plasteel, +/area/toxins/explab) +"bmE" = ( +/obj/machinery/droneDispenser, +/turf/open/floor/plasteel, +/area/toxins/explab) +"bmF" = ( +/obj/structure/chair/stool, +/obj/effect/decal/cleanable/oil{ + icon_state = "floor5" + }, +/turf/open/floor/plasteel, +/area/toxins/explab) +"bmG" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel, +/area/toxins/explab) +"bmH" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/beakers{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/weapon/grenade/chem_grenade, +/obj/item/weapon/grenade/chem_grenade, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 28 + }, +/turf/open/floor/plasteel, +/area/toxins/explab) +"bmI" = ( +/obj/structure/table/glass, +/obj/item/weapon/folder, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 8 + }, +/area/toxins/xenobiology) +"bmJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bmK" = ( +/obj/structure/chair/comfy/beige{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bmL" = ( +/obj/machinery/computer/camera_advanced/xenobio, +/obj/machinery/camera{ + c_tag = "Xenobiology Port"; + dir = 8; + network = list("SS13","RD") + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 4 + }, +/area/toxins/xenobiology) +"bmM" = ( +/obj/structure/sign/biohazard, +/turf/closed/wall, +/area/toxins/xenobiology) +"bmN" = ( +/obj/item/weapon/wrench, +/turf/open/floor/plasteel/warning{ + dir = 2 + }, +/area/toxins/xenobiology) +"bmO" = ( +/obj/machinery/computer/security/telescreen{ + name = "Test Chamber Moniter"; + network = list("Xeno"); + pixel_x = 0; + pixel_y = 2 + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/warning{ + dir = 2 + }, +/area/toxins/xenobiology) +"bmP" = ( +/obj/machinery/button/door{ + id = "misclab"; + name = "Test Chamber Blast Doors"; + pixel_x = 0; + pixel_y = -2; + req_access_txt = "55" + }, +/obj/structure/table/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/toxins/xenobiology) +"bmQ" = ( +/obj/machinery/door/window/southleft{ + name = "Test Chamber"; + req_access_txt = "55" + }, +/turf/open/floor/plasteel/warning{ + dir = 2 + }, +/area/toxins/xenobiology) +"bmR" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/toxins/xenobiology) +"bmS" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/warning, +/area/toxins/xenobiology) +"bmT" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 2 + }, +/area/toxins/xenobiology) +"bmU" = ( +/obj/structure/sign/xenobio, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 9 + }, +/turf/closed/wall, +/area/toxins/xenobiology) +"bmV" = ( +/obj/machinery/disposal/bin, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (NORTHEAST)"; + dir = 5 + }, +/area/toxins/xenobiology) +"bmW" = ( +/obj/machinery/door/window/northleft{ + base_state = "right"; + dir = 2; + icon_state = "right"; + name = "Containment Pen #5"; + req_access_txt = "55" + }, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (NORTH)"; + dir = 1 + }, +/area/toxins/xenobiology) +"bmX" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "xenobio5"; + name = "Containment Blast Doors"; + pixel_x = 0; + pixel_y = 4; + req_access_txt = "55" + }, +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/toxins/xenobiology) +"bmY" = ( +/obj/machinery/door/window/northleft{ + base_state = "right"; + dir = 2; + icon_state = "right"; + name = "Containment Pen #6"; + req_access_txt = "55" + }, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (NORTH)"; + dir = 1 + }, +/area/toxins/xenobiology) +"bmZ" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "xenobio6"; + name = "Containment Blast Doors"; + pixel_x = 0; + pixel_y = 4; + req_access_txt = "55" + }, +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/toxins/xenobiology) +"bna" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "0"; + req_one_access_txt = "12; 55" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"bnb" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/item/weapon/cigbutt, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bnc" = ( +/turf/open/floor/mineral/titanium/blue, +/turf/closed/wall/mineral/titanium/interior, +/area/shuttle/transport) +"bnd" = ( +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"bne" = ( +/obj/machinery/computer/shuttle/ferry/request, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"bnf" = ( +/obj/structure/chair, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"bng" = ( +/obj/structure/grille, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"bnh" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/camera{ + c_tag = "Arrivals Starboard Aft"; + dir = 8 + }, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/secondary/entry) +"bni" = ( +/obj/machinery/dna_scannernew, +/turf/open/floor/plasteel/blue, +/area/medical/genetics) +"bnj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 8 + }, +/area/medical/genetics) +"bnk" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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) +"bnl" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bnm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bnn" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/genetics) +"bno" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/medbay3) +"bnp" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/medbay3) +"bnq" = ( +/obj/machinery/shower{ + dir = 8 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/medbay3) +"bnr" = ( +/turf/closed/wall, +/area/medical/sleeper) +"bns" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -26 + }, +/obj/structure/sign/poster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/blue, +/area/medical/sleeper) +"bnt" = ( +/obj/machinery/atmospherics/components/unary/cryo_cell, +/turf/open/floor/plasteel/blue, +/area/medical/sleeper) +"bnu" = ( +/turf/open/floor/plasteel/black, +/area/library) +"bnv" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/structure/noticeboard{ + pixel_y = 32 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/blue, +/area/medical/sleeper) +"bnw" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/item/device/radio/intercom{ + broadcasting = 0; + freerange = 0; + frequency = 1485; + listening = 1; + name = "Station Intercom (Medbay)"; + pixel_x = 28; + pixel_y = 0 + }, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/blue, +/area/medical/sleeper) +"bnx" = ( +/obj/machinery/shower{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/medbay) +"bny" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 24 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/medbay) +"bnz" = ( +/obj/machinery/button/door{ + desc = "A remote control switch for the medbay foyer."; + id = "MedbayFoyer"; + name = "Medbay Exit Button"; + normaldoorcontrol = 1; + pixel_x = -26; + pixel_y = -2 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/medbay) +"bnA" = ( +/obj/machinery/chem_dispenser{ + layer = 2.7 + }, +/obj/machinery/button/door{ + desc = "A remote control switch for the medbay foyer."; + id = "MedbayFoyer"; + name = "Medbay Door Control"; + normaldoorcontrol = 1; + pixel_x = -26; + pixel_y = -2; + req_access_txt = "5" + }, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 8 + }, +/area/medical/chemistry) +"bnB" = ( +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bnC" = ( +/obj/item/weapon/book/manual/wiki/chemistry, +/obj/item/weapon/storage/box/beakers, +/obj/structure/table/glass, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bnD" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bnE" = ( +/obj/machinery/chem_dispenser{ + layer = 2.7 + }, +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = 29 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bnF" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/hallway/primary/aft) +"bnG" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bnH" = ( +/obj/structure/table, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/item/weapon/disk/tech_disk{ + pixel_x = 0; + pixel_y = 0 + }, +/obj/item/weapon/disk/design_disk, +/turf/open/floor/plasteel, +/area/toxins/explab) +"bnI" = ( +/turf/open/floor/plasteel/warning, +/area/toxins/explab) +"bnJ" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning, +/area/toxins/explab) +"bnK" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "Research Lab APC"; + pixel_x = 26; + pixel_y = 0 + }, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/turf/open/floor/plasteel, +/area/toxins/explab) +"bnL" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/poddoor/preopen{ + id = "rndshutters"; + name = "research shutters" + }, +/turf/open/floor/plasteel/bot, +/area/medical/research{ + name = "Research Division" + }) +"bnM" = ( +/obj/machinery/door/firedoor/heavy, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/poddoor/preopen{ + id = "rndshutters"; + name = "research shutters" + }, +/turf/open/floor/plasteel/bot, +/area/medical/research{ + name = "Research Division" + }) +"bnN" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/poddoor/preopen{ + id = "rndshutters"; + name = "research shutters" + }, +/turf/open/floor/plasteel/bot, +/area/medical/research{ + name = "Research Division" + }) +"bnO" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/assembly/robotics) +"bnP" = ( +/obj/item/weapon/storage/firstaid/regular{ + empty = 1; + name = "First-Aid (empty)" + }, +/obj/item/weapon/storage/firstaid/regular{ + empty = 1; + name = "First-Aid (empty)" + }, +/obj/item/weapon/storage/firstaid/regular{ + empty = 1; + name = "First-Aid (empty)" + }, +/obj/item/device/healthanalyzer, +/obj/item/device/healthanalyzer, +/obj/item/device/healthanalyzer, +/obj/item/stack/cable_coil, +/obj/item/stack/cable_coil, +/obj/structure/table, +/turf/open/floor/plasteel, +/area/assembly/robotics) +"bnQ" = ( +/obj/item/weapon/retractor, +/obj/item/weapon/hemostat, +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 + }, +/obj/structure/table, +/turf/open/floor/plasteel/warnwhite{ + dir = 8 + }, +/area/assembly/robotics) +"bnR" = ( +/obj/structure/table/optable{ + name = "Robotics Operating Table" + }, +/obj/machinery/camera{ + c_tag = "Robotics - Aft"; + dir = 1; + network = list("SS13","RD") + }, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"bnS" = ( +/obj/machinery/computer/operating{ + name = "Robotics Operating Computer" + }, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"bnT" = ( +/obj/item/device/mmi, +/obj/item/device/mmi, +/obj/item/device/mmi, +/obj/structure/table, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"bnU" = ( +/obj/structure/rack, +/obj/item/weapon/crowbar, +/obj/item/weapon/wrench, +/turf/open/floor/plasteel, +/area/toxins/explab) +"bnV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/toxins/explab) +"bnW" = ( +/obj/structure/closet/emcloset, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/toxins/explab) +"bnX" = ( +/obj/structure/closet/radiation, +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = -28 + }, +/turf/open/floor/plasteel, +/area/toxins/explab) +"bnY" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel, +/area/toxins/explab) +"bnZ" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/machinery/camera{ + c_tag = "Experimentation Lab"; + dir = 1; + network = list("SS13","RD"); + pixel_y = 0 + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel, +/area/toxins/explab) +"boa" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical, +/obj/item/clothing/ears/earmuffs, +/turf/open/floor/plasteel, +/area/toxins/explab) +"bob" = ( +/obj/structure/table, +/obj/item/device/electropack, +/obj/item/device/healthanalyzer, +/obj/item/device/assembly/signaler, +/obj/machinery/light, +/obj/item/device/assembly/voice, +/turf/open/floor/plasteel, +/area/toxins/explab) +"boc" = ( +/obj/structure/table, +/obj/machinery/cell_charger{ + pixel_y = 5 + }, +/obj/item/stack/cable_coil, +/obj/item/device/multitool, +/obj/item/weapon/screwdriver, +/turf/open/floor/plasteel, +/area/toxins/explab) +"bod" = ( +/obj/structure/table, +/obj/item/weapon/hand_labeler, +/obj/item/clothing/glasses/science, +/obj/item/clothing/glasses/science, +/turf/open/floor/plasteel, +/area/toxins/explab) +"boe" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -27 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 8 + }, +/area/toxins/xenobiology) +"bof" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bog" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"boh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4 + }, +/area/toxins/xenobiology) +"boi" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 1 + }, +/area/toxins/xenobiology) +"boj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 1 + }, +/area/toxins/xenobiology) +"bok" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 1 + }, +/area/toxins/xenobiology) +"bol" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 1 + }, +/area/toxins/xenobiology) +"bom" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 1 + }, +/area/toxins/xenobiology) +"bon" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 1 + }, +/area/toxins/xenobiology) +"boo" = ( +/obj/machinery/camera{ + c_tag = "Xenobiology Starboard Fore"; + dir = 2; + network = list("SS13","RD") + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = 28 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 1 + }, +/area/toxins/xenobiology) +"bop" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 1 + }, +/area/toxins/xenobiology) +"boq" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + layer = 2.4; + on = 1 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/xenobiology) +"bor" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/xenobiology) +"bos" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/sign/biohazard, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"bot" = ( +/turf/open/floor/plasteel/airless/circuit, +/area/toxins/xenobiology) +"bou" = ( +/obj/effect/decal/remains/xeno, +/turf/open/floor/plasteel/airless/circuit, +/area/toxins/xenobiology) +"bov" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/item/weapon/reagent_containers/food/drinks/soda_cans/dr_gibb, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bow" = ( +/obj/machinery/door/airlock/titanium, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"box" = ( +/obj/machinery/door/airlock/titanium, +/obj/docking_port/mobile{ + dir = 8; + dwidth = 2; + height = 12; + id = "ferry"; + name = "ferry shuttle"; + port_angle = 0; + preferred_direction = 4; + roundstart_move = "ferry_away"; + width = 5 + }, +/obj/docking_port/stationary{ + dir = 8; + dwidth = 2; + height = 12; + id = "ferry_home"; + name = "port bay 2"; + turf_type = /turf/open/space; + width = 5 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"boy" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 4; + id_tag = null; + name = "Port Docking Bay 2"; + req_access_txt = "0" + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"boz" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 8; + id_tag = null; + name = "Port Docking Bay 2"; + req_access_txt = "0" + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"boA" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/secondary/entry) +"boB" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"boC" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"boD" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/aft) +"boE" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"boF" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"boG" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21" + }, +/turf/open/floor/plasteel/whiteblue/side, +/area/medical/genetics) +"boH" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/whiteblue/side, +/area/medical/genetics) +"boI" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whiteblue/side, +/area/medical/genetics) +"boJ" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/medical_cloning{ + pixel_y = 6 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whiteblue/side, +/area/medical/genetics) +"boK" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/rxglasses{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/bodybags, +/obj/item/weapon/pen, +/obj/machinery/button/door{ + desc = "A remote control switch for the genetics doors."; + id = "GeneticsDoor"; + name = "Genetics Exit Button"; + normaldoorcontrol = 1; + pixel_x = 24; + pixel_y = 8 + }, +/turf/open/floor/plasteel/whiteblue/side, +/area/medical/genetics) +"boL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay3) +"boM" = ( +/turf/open/floor/plasteel/white, +/area/medical/medbay3) +"boN" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"boO" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/warnwhite/corner{ + dir = 8 + }, +/area/medical/sleeper) +"boP" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/medical/sleeper) +"boQ" = ( +/obj/item/weapon/wrench/medical, +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/medical/sleeper) +"boR" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/library) +"boS" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/turf/open/floor/plasteel/warnwhite/corner{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/medical/sleeper) +"boT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"boU" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"boV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"boW" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/medbay) +"boX" = ( +/obj/machinery/chem_heater, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -28 + }, +/obj/machinery/camera{ + c_tag = "Chemistry"; + dir = 4; + network = list("SS13") + }, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 8 + }, +/area/medical/chemistry) +"boY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"boZ" = ( +/obj/machinery/disposal/bin{ + pixel_x = 0 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bpa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bpb" = ( +/obj/machinery/chem_heater, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 28 + }, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 6 + }, +/area/medical/chemistry) +"bpc" = ( +/obj/structure/rack, +/obj/effect/decal/cleanable/oil{ + icon_state = "floor6" + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50; + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/reagent_containers/glass/beaker/large, +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/obj/item/weapon/storage/box/beakers, +/obj/item/clothing/glasses/welding, +/turf/open/floor/plasteel, +/area/toxins/explab) +"bpd" = ( +/obj/machinery/r_n_d/destructive_analyzer, +/turf/open/floor/plasteel/delivery, +/area/toxins/explab) +"bpe" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/bot, +/area/toxins/explab) +"bpf" = ( +/obj/machinery/r_n_d/protolathe, +/turf/open/floor/plasteel/delivery, +/area/toxins/explab) +"bpg" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/camera{ + c_tag = "Research and Development Lab"; + dir = 8; + network = list("SS13","RD") + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 28 + }, +/turf/open/floor/plasteel, +/area/toxins/explab) +"bph" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/medical/research{ + name = "Research Division" + }) +"bpi" = ( +/obj/machinery/door/airlock/research{ + cyclelinkeddir = 1; + name = "Research Division Access"; + req_access_txt = "47" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"bpj" = ( +/turf/closed/wall/r_wall, +/area/medical/research{ + name = "Research Division" + }) +"bpk" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/assembly/robotics) +"bpl" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_research{ + name = "Robotics Lab"; + req_access_txt = "29" + }, +/turf/open/floor/plasteel, +/area/assembly/robotics) +"bpm" = ( +/turf/closed/wall, +/area/assembly/robotics) +"bpn" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/toxins/explab) +"bpo" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_research{ + name = "Experimentation Lab"; + req_access_txt = "47" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/toxins/explab) +"bpp" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/toxins/explab) +"bpq" = ( +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = -28 + }, +/turf/closed/wall, +/area/toxins/explab) +"bpr" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 8 + }, +/area/toxins/xenobiology) +"bps" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bpt" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bpu" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bpv" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bpw" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4"; + tag = "" + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bpx" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bpy" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bpz" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bpA" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4"; + tag = "" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bpB" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4"; + tag = "" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bpC" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bpD" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4"; + tag = "" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bpE" = ( +/obj/machinery/door/airlock/research{ + name = "Kill Room Access"; + req_access_txt = "55" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + name = "Kill Room Access"; + req_access_txt = "55" + }, +/turf/open/floor/plasteel, +/area/toxins/xenobiology) +"bpF" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/xenobiology) +"bpG" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4; + initialize_directions = 11 + }, +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/xenobiology) +"bpH" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_research{ + name = "Kill Room"; + req_access_txt = "55" + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"bpI" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Xenobiology Kill Room"; + dir = 8; + network = list("SS13","RD") + }, +/turf/open/floor/plasteel/airless/circuit, +/area/toxins/xenobiology) +"bpJ" = ( +/obj/structure/closet/crate, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"bpK" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"bpL" = ( +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/secondary/entry) +"bpM" = ( +/turf/closed/wall, +/area/maintenance/aft) +"bpN" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/aft) +"bpO" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating, +/area/maintenance/aft) +"bpP" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/aft) +"bpQ" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating, +/area/maintenance/aft) +"bpR" = ( +/obj/structure/girder, +/turf/open/floor/plating, +/area/maintenance/aft) +"bpS" = ( +/turf/closed/wall/r_wall, +/area/medical/genetics) +"bpT" = ( +/obj/machinery/door/airlock/glass_research{ + name = "Genetics"; + req_access_txt = "9" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whiteblue, +/area/medical/genetics) +"bpU" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/medical/genetics) +"bpV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/camera{ + c_tag = "Medbay Port Hallway"; + dir = 4; + network = list("SS13") + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay3) +"bpW" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay3) +"bpX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay3) +"bpY" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bpZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bqa" = ( +/obj/machinery/holopad, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bqb" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bqc" = ( +/obj/structure/disposalpipe/junction{ + dir = 8; + icon_state = "pipe-j2" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bqd" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bqe" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bqf" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/medbay) +"bqg" = ( +/obj/machinery/door/airlock/glass_medical{ + id_tag = null; + name = "Chemistry Lab"; + req_access_txt = "5; 33" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bqh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bqi" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bqj" = ( +/obj/machinery/shower{ + dir = 8; + name = "emergency shower" + }, +/obj/machinery/requests_console{ + department = "Chemistry"; + departmentType = 2; + pixel_x = 32; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bqk" = ( +/obj/machinery/camera{ + c_tag = "Aft Primary Hallway Chemistry"; + dir = 4; + network = list("SS13"); + pixel_x = 0; + pixel_y = 0; + start_active = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/hallway/primary/aft) +"bql" = ( +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = -28; + pixel_y = 3 + }, +/obj/machinery/button/door{ + dir = 2; + id = "research_shutters_2"; + name = "Shutters Control Button"; + pixel_x = -28; + pixel_y = -7; + req_access_txt = "7; 29" + }, +/turf/open/floor/plasteel, +/area/toxins/explab) +"bqm" = ( +/obj/machinery/computer/rdconsole/core, +/turf/open/floor/plasteel/delivery, +/area/toxins/explab) +"bqn" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/start{ + name = "Scientist" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/bot, +/area/toxins/explab) +"bqo" = ( +/obj/machinery/r_n_d/circuit_imprinter{ + pixel_y = 4 + }, +/obj/item/weapon/reagent_containers/glass/beaker/sulphuric, +/turf/open/floor/plasteel/delivery, +/area/toxins/explab) +"bqp" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/toxins/explab) +"bqq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"bqr" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bqs" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bqt" = ( +/obj/machinery/power/apc{ + cell_type = 10000; + dir = 1; + name = "Research Division APC"; + pixel_x = 0; + pixel_y = 25 + }, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bqu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side, +/area/medical/research{ + name = "Research Division" + }) +"bqv" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"bqw" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bqx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bqy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = 24 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bqz" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel/white/side, +/area/medical/research{ + name = "Research Division" + }) +"bqA" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"bqB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side, +/area/medical/research{ + name = "Research Division" + }) +"bqC" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-18"; + layer = 4.1; + pixel_y = 0 + }, +/turf/open/floor/plasteel/white/side{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"bqD" = ( +/obj/structure/closet/firecloset, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 9 + }, +/area/toxins/xenobiology) +"bqE" = ( +/obj/structure/closet/l3closet, +/obj/machinery/camera{ + c_tag = "Xenobiology Access"; + dir = 2; + network = list("SS13") + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bqF" = ( +/obj/structure/closet/l3closet, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 5 + }, +/area/toxins/xenobiology) +"bqG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/toxins/xenobiology) +"bqH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 8 + }, +/area/toxins/xenobiology) +"bqI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9; + pixel_y = 0 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bqJ" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bqK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/corner, +/area/toxins/xenobiology) +"bqL" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/side, +/area/toxins/xenobiology) +"bqM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/side, +/area/toxins/xenobiology) +"bqN" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/side, +/area/toxins/xenobiology) +"bqO" = ( +/obj/machinery/light, +/obj/machinery/camera{ + c_tag = "Xenobiology Central"; + dir = 1; + network = list("SS13","RD") + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/whitepurple/side, +/area/toxins/xenobiology) +"bqP" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/whitepurple/side, +/area/toxins/xenobiology) +"bqQ" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Xenobiology Starboard Aft"; + dir = 1; + network = list("SS13","RD") + }, +/turf/open/floor/plasteel/whitepurple/side, +/area/toxins/xenobiology) +"bqR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/toxins/xenobiology) +"bqS" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 8; + name = "Xenobiology APC"; + pixel_x = -25 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/xenobiology) +"bqT" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/xenobiology) +"bqU" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bqV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/apmaint) +"bqW" = ( +/obj/structure/disposaloutlet{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/space) +"bqX" = ( +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/aft) +"bqY" = ( +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/aft) +"bqZ" = ( +/obj/structure/table, +/obj/item/weapon/folder/white, +/obj/item/weapon/pen, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 9 + }, +/area/medical/genetics) +"bra" = ( +/obj/machinery/computer/scan_consolenew, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 1 + }, +/area/medical/genetics) +"brb" = ( +/obj/machinery/dna_scannernew, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 1 + }, +/area/medical/genetics) +"brc" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 1 + }, +/area/medical/genetics) +"brd" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 1 + }, +/area/medical/genetics) +"bre" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/rxglasses{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/weapon/storage/box/bodybags, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 5 + }, +/area/medical/genetics) +"brf" = ( +/obj/machinery/requests_console{ + announcementConsole = 0; + department = "Medbay"; + departmentType = 1; + name = "Medbay RC"; + pixel_x = -32; + pixel_y = 0; + pixel_z = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay3) +"brg" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay3) +"brh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay3) +"bri" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"brj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8"; + tag = "" + }, +/turf/open/floor/plasteel/warnwhite/corner, +/area/medical/sleeper) +"brk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warnwhite, +/area/medical/sleeper) +"brl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warnwhite/corner{ + dir = 1 + }, +/area/medical/sleeper) +"brm" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"brn" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bro" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"brp" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"brq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/medbay) +"brr" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"brs" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"brt" = ( +/obj/structure/rack, +/obj/item/stack/packageWrap, +/obj/item/weapon/hand_labeler, +/obj/item/device/radio/headset/headset_med, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bru" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/hallway/primary/aft) +"brv" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4"; + tag = "" + }, +/obj/structure/disposalpipe/junction{ + dir = 2; + icon_state = "pipe-y" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"brw" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"brx" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/purple/side{ + dir = 4 + }, +/area/hallway/primary/aft) +"bry" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "research_shutters_2"; + name = "research shutters" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/toxins/explab) +"brz" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4"; + tag = "" + }, +/turf/open/floor/plasteel, +/area/toxins/explab) +"brA" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (NORTH)"; + dir = 1 + }, +/area/toxins/explab) +"brB" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 8; + icon_state = "pipe-j1s"; + sortType = 12 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (NORTH)"; + dir = 1 + }, +/area/toxins/explab) +"brC" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (NORTH)"; + dir = 1 + }, +/area/toxins/explab) +"brD" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/toxins/explab) +"brE" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_research{ + name = "Research and Development Lab"; + req_access_txt = "0"; + req_one_access_txt = "7;29" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/toxins/explab) +"brF" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"brG" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 8; + icon_state = "pipe-j2s"; + sortType = 13 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"brH" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/junction{ + dir = 8; + icon_state = "pipe-j1" + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"brI" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"brJ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"brK" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"brL" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"brM" = ( +/obj/structure/window/reinforced{ + dir = 4; + layer = 2.9 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"brN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"brO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"brP" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + autoclose = 0; + frequency = 1449; + icon_state = "door_locked"; + id_tag = "xeno_airlock_exterior"; + locked = 1; + name = "Xenobiology Lab External Airlock"; + req_access_txt = "55" + }, +/obj/machinery/doorButtons/access_button{ + idDoor = "xeno_airlock_exterior"; + idSelf = "xeno_airlock_control"; + name = "Access Button"; + pixel_x = 0; + pixel_y = -24; + req_access_txt = "0" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple{ + dir = 4 + }, +/area/toxins/xenobiology) +"brQ" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 8 + }, +/area/toxins/xenobiology) +"brR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"brS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 4 + }, +/area/toxins/xenobiology) +"brT" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + autoclose = 0; + frequency = 1449; + icon_state = "door_locked"; + id_tag = "xeno_airlock_interior"; + locked = 1; + name = "Xenobiology Lab Internal Airlock"; + req_access_txt = "55" + }, +/obj/machinery/doorButtons/access_button{ + idDoor = "xeno_airlock_interior"; + idSelf = "xeno_airlock_control"; + name = "Access Button"; + pixel_x = 0; + pixel_y = -24; + req_access_txt = "0" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple, +/area/toxins/xenobiology) +"brU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/doorButtons/airlock_controller{ + idExterior = "xeno_airlock_exterior"; + idInterior = "xeno_airlock_interior"; + idSelf = "xeno_airlock_control"; + name = "Access Console"; + pixel_x = -25; + pixel_y = 25 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 8 + }, +/area/toxins/xenobiology) +"brV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"brW" = ( +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 4 + }, +/area/toxins/xenobiology) +"brX" = ( +/obj/machinery/disposal/bin, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (NORTHEAST)"; + dir = 5 + }, +/area/toxins/xenobiology) +"brY" = ( +/obj/machinery/door/window/northleft{ + base_state = "right"; + dir = 1; + icon_state = "right"; + name = "Containment Pen #1"; + req_access_txt = "55" + }, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (NORTH)"; + dir = 1 + }, +/area/toxins/xenobiology) +"brZ" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "xenobio1"; + name = "Containment Blast Doors"; + pixel_x = 0; + pixel_y = 4; + req_access_txt = "55" + }, +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/toxins/xenobiology) +"bsa" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/toxins/xenobiology) +"bsb" = ( +/obj/machinery/door/window/northleft{ + base_state = "right"; + dir = 1; + icon_state = "right"; + name = "Containment Pen #2"; + req_access_txt = "55" + }, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (NORTH)"; + dir = 1 + }, +/area/toxins/xenobiology) +"bsc" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "xenobio2"; + name = "Containment Blast Doors"; + pixel_x = 0; + pixel_y = 4; + req_access_txt = "55" + }, +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/toxins/xenobiology) +"bsd" = ( +/obj/machinery/door/window/northleft{ + base_state = "right"; + dir = 1; + icon_state = "right"; + name = "Containment Pen #3"; + req_access_txt = "55" + }, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (NORTH)"; + dir = 1 + }, +/area/toxins/xenobiology) +"bse" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "xenobio3"; + name = "Containment Blast Doors"; + pixel_x = 0; + pixel_y = 4; + req_access_txt = "55" + }, +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/toxins/xenobiology) +"bsf" = ( +/obj/machinery/door/window/northleft{ + base_state = "right"; + dir = 1; + icon_state = "right"; + name = "Containment Pen #4"; + req_access_txt = "55" + }, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (NORTH)"; + dir = 1 + }, +/area/toxins/xenobiology) +"bsg" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "xenobio4"; + name = "Containment Blast Doors"; + pixel_x = 0; + pixel_y = 4; + req_access_txt = "55" + }, +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/toxins/xenobiology) +"bsh" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "0"; + req_one_access_txt = "12; 55" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"bsi" = ( +/obj/structure/girder, +/turf/open/floor/plating/airless, +/area/toxins/xenobiology) +"bsj" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/clothing/shoes/winterboots, +/turf/open/floor/plating, +/area/maintenance/aft) +"bsk" = ( +/obj/structure/flora/ausbushes/palebush, +/turf/open/floor/grass, +/area/medical/genetics) +"bsl" = ( +/obj/structure/window/reinforced{ + dir = 4; + layer = 2.9 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/mob/living/carbon/monkey, +/turf/open/floor/grass, +/area/medical/genetics) +"bsm" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/disks, +/obj/item/device/flashlight/pen, +/obj/item/device/flashlight/pen, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 8 + }, +/area/medical/genetics) +"bsn" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start{ + name = "Geneticist" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bso" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bsp" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9; + pixel_y = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bsq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bsr" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/gloves/color/latex, +/obj/item/weapon/storage/box/monkeycubes, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 4 + }, +/area/medical/genetics) +"bss" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -24 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8; + initialize_directions = 11 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/medbay3) +"bst" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay3) +"bsu" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/medbay3) +"bsv" = ( +/obj/structure/table/glass, +/obj/item/stack/medical/gauze, +/obj/machinery/power/apc{ + dir = 8; + name = "Treatment Center APC"; + pixel_x = -24; + pixel_y = 0 + }, +/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone, +/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone, +/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone, +/obj/structure/cable, +/turf/open/floor/plasteel/blue, +/area/medical/sleeper) +"bsw" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Monastery Maintenance" + }) +"bsx" = ( +/obj/machinery/camera{ + c_tag = "Medbay Sleepers"; + dir = 1; + network = list("SS13") + }, +/obj/machinery/light, +/turf/open/floor/plasteel/blue, +/area/medical/sleeper) +"bsy" = ( +/obj/machinery/sleeper{ + icon_state = "sleeper-open"; + dir = 1 + }, +/turf/open/floor/plasteel/blue, +/area/medical/sleeper) +"bsz" = ( +/obj/structure/table/glass, +/obj/item/clothing/neck/stethoscope, +/obj/item/device/healthanalyzer, +/turf/open/floor/plasteel/blue, +/area/medical/sleeper) +"bsA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/medbay) +"bsB" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bsC" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/medbay) +"bsD" = ( +/turf/closed/wall, +/area/medical/cmo{ + name = "Chief Medical Office" + }) +"bsE" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/medical/cmo{ + name = "Chief Medical Office" + }) +"bsF" = ( +/obj/structure/closet/secure_closet/chemical, +/obj/machinery/power/apc{ + dir = 8; + name = "Chemistry APC"; + pixel_x = -24; + pixel_y = 0 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 8 + }, +/area/medical/chemistry) +"bsG" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bsH" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 4 + }, +/area/medical/chemistry) +"bsI" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/window/eastright{ + dir = 8; + name = "Chemistry Desk"; + req_access_txt = "5; 33" + }, +/obj/item/weapon/pen, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/weapon/paper_bin{ + layer = 2.9; + pixel_x = -2; + pixel_y = 0; + tag = "every single paper bin is edited to this" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "chemistry_shutters"; + name = "chemistry shutters" + }, +/turf/open/floor/plasteel/whiteyellow{ + dir = 4 + }, +/area/medical/chemistry) +"bsJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/hallway/primary/aft) +"bsK" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4; + initialize_directions = 11 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bsL" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bsM" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/purple/side{ + dir = 4 + }, +/area/hallway/primary/aft) +"bsN" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/eastright{ + dir = 4; + name = "Research and Development Desk"; + req_access_txt = "7" + }, +/obj/item/weapon/folder/white, +/obj/machinery/door/firedoor, +/obj/item/weapon/pen, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "research_shutters_2"; + name = "research shutters" + }, +/turf/open/floor/plating, +/area/toxins/explab) +"bsO" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/toxins/explab) +"bsP" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel, +/area/toxins/explab) +"bsQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"bsR" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bsS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + tag = "icon-whitehall (NORTH)"; + icon_state = "whitehall"; + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"bsT" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel/whitered/side, +/area/medical/research{ + name = "Research Division" + }) +"bsU" = ( +/obj/machinery/camera{ + c_tag = "Research Division Port"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + tag = "icon-whitehall (NORTH)"; + icon_state = "whitehall"; + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"bsV" = ( +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/glasses/science, +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bsW" = ( +/obj/item/device/analyzer, +/obj/structure/table, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bsX" = ( +/obj/machinery/vending/assist, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bsY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = -32 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bsZ" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/table, +/obj/item/weapon/folder, +/obj/item/weapon/pen, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bta" = ( +/obj/machinery/camera{ + c_tag = "Research Division Starboard"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"btb" = ( +/obj/structure/sink{ + dir = 8; + icon_state = "sink"; + pixel_x = -12 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 10; + heat_capacity = 1e+006 + }, +/area/toxins/xenobiology) +"btc" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"btd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/shower{ + dir = 8; + name = "emergency shower"; + pixel_y = -4 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 6 + }, +/area/toxins/xenobiology) +"bte" = ( +/turf/open/floor/plasteel/whitepurple/side{ + dir = 10 + }, +/area/toxins/xenobiology) +"btf" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/monkeycubes, +/obj/item/weapon/storage/box/monkeycubes, +/turf/open/floor/plasteel/whitepurple/side, +/area/toxins/xenobiology) +"btg" = ( +/obj/structure/table, +/obj/item/weapon/extinguisher{ + pixel_x = 4; + pixel_y = 3 + }, +/obj/item/weapon/extinguisher, +/turf/open/floor/plasteel/whitepurple/side, +/area/toxins/xenobiology) +"bth" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/machinery/requests_console{ + department = "Science"; + departmentType = 2; + name = "Science Requests Console"; + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 6 + }, +/area/toxins/xenobiology) +"bti" = ( +/obj/machinery/door/poddoor/preopen{ + id = "xenobio1"; + name = "containment blast door" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"btj" = ( +/obj/machinery/door/poddoor/preopen{ + id = "xenobio1"; + name = "containment blast door" + }, +/obj/machinery/door/window/northleft{ + base_state = "right"; + dir = 2; + icon_state = "right"; + name = "Containment Pen #1"; + req_access_txt = "55" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"btk" = ( +/obj/machinery/door/poddoor/preopen{ + id = "xenobio1"; + name = "containment blast door" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"btl" = ( +/obj/machinery/door/poddoor/preopen{ + id = "xenobio2"; + name = "containment blast door" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"btm" = ( +/obj/machinery/door/poddoor/preopen{ + id = "xenobio3"; + name = "containment blast door" + }, +/obj/machinery/door/window/northleft{ + base_state = "right"; + dir = 2; + icon_state = "right"; + name = "Containment Pen #2"; + req_access_txt = "55" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"btn" = ( +/obj/machinery/door/poddoor/preopen{ + id = "xenobio2"; + name = "containment blast door" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"bto" = ( +/obj/machinery/door/poddoor/preopen{ + id = "xenobio3"; + name = "containment blast door" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"btp" = ( +/obj/machinery/door/poddoor/preopen{ + id = "xenobio3"; + name = "containment blast door" + }, +/obj/machinery/door/window/northleft{ + base_state = "right"; + dir = 2; + icon_state = "right"; + name = "Containment Pen #3"; + req_access_txt = "55" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"btq" = ( +/obj/machinery/door/poddoor/preopen{ + id = "xenobio3"; + name = "containment blast door" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"btr" = ( +/obj/machinery/door/poddoor/preopen{ + id = "xenobio4"; + name = "containment blast door" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"bts" = ( +/obj/machinery/door/poddoor/preopen{ + id = "xenobio4"; + name = "containment blast door" + }, +/obj/machinery/door/window/northleft{ + base_state = "right"; + dir = 2; + icon_state = "right"; + name = "Containment Pen #4"; + req_access_txt = "55" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"btt" = ( +/obj/machinery/door/poddoor/preopen{ + id = "xenobio4"; + name = "containment blast door" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"btu" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4"; + tag = "" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"btv" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"btw" = ( +/turf/closed/wall, +/area/maintenance/asmaint2) +"btx" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bty" = ( +/obj/structure/chair/stool, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/aft) +"btz" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/aft) +"btA" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Genetics Monkey Pen"; + dir = 4; + network = list("SS13","RD"); + pixel_x = 0; + pixel_y = 0 + }, +/mob/living/carbon/monkey, +/turf/open/floor/grass, +/area/medical/genetics) +"btB" = ( +/obj/machinery/door/window/eastleft{ + name = "Monkey Pen"; + req_one_access_txt = "9" + }, +/obj/item/weapon/reagent_containers/food/snacks/grown/banana, +/turf/open/floor/grass, +/area/medical/genetics) +"btC" = ( +/turf/open/floor/plasteel/whitepurple/side{ + dir = 8 + }, +/area/medical/genetics) +"btD" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"btE" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"btF" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"btG" = ( +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/obj/structure/mirror{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 4 + }, +/area/medical/genetics) +"btH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-10"; + layer = 4.1 + }, +/turf/open/floor/plasteel/whitegreen/side, +/area/medical/medbay3) +"btI" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/whitegreen/side, +/area/medical/medbay3) +"btJ" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/whitegreen/side, +/area/medical/medbay3) +"btK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/medbay) +"btL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/medbay) +"btM" = ( +/obj/structure/sign/bluecross_2, +/turf/closed/wall, +/area/medical/cmo{ + name = "Chief Medical Office" + }) +"btN" = ( +/obj/machinery/suit_storage_unit/cmo, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo{ + name = "Chief Medical Office" + }) +"btO" = ( +/obj/machinery/computer/crew, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Chief Medical Officer's Desk"; + departmentType = 5; + name = "Chief Medical Officer RC"; + pixel_x = 0; + pixel_y = 30 + }, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo{ + name = "Chief Medical Office" + }) +"btP" = ( +/obj/machinery/computer/med_data, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo{ + name = "Chief Medical Office" + }) +"btQ" = ( +/obj/machinery/computer/card/minor/cmo, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo{ + name = "Chief Medical Office" + }) +"btR" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/obj/machinery/button/door{ + desc = "A remote control switch for the medbay foyer."; + id = "MedbayFoyer"; + name = "Medbay Door Control"; + normaldoorcontrol = 1; + pixel_x = 26; + pixel_y = -6; + req_access_txt = "5" + }, +/obj/machinery/keycard_auth{ + pixel_x = 26; + pixel_y = 6 + }, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo{ + name = "Chief Medical Office" + }) +"btS" = ( +/obj/structure/closet/wardrobe/chemistry_white, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 10 + }, +/area/medical/chemistry) +"btT" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/whiteyellow/side, +/area/medical/chemistry) +"btU" = ( +/obj/structure/table/glass, +/obj/machinery/reagentgrinder, +/obj/machinery/light, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel/whiteyellow/side, +/area/medical/chemistry) +"btV" = ( +/obj/structure/table/glass, +/obj/item/stack/sheet/mineral/plasma{ + amount = 2; + layer = 2.9 + }, +/obj/item/weapon/grenade/chem_grenade, +/obj/item/weapon/grenade/chem_grenade, +/obj/item/weapon/grenade/chem_grenade, +/obj/item/stack/cable_coil/random, +/obj/item/weapon/screwdriver, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 6 + }, +/area/medical/chemistry) +"btW" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"btX" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"btY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"btZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/table/glass, +/obj/item/weapon/paper_bin{ + layer = 2.9; + pixel_x = -2; + pixel_y = 4 + }, +/turf/open/floor/plasteel/purple/side{ + dir = 4 + }, +/area/hallway/primary/aft) +"bua" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "research_shutters_2"; + name = "research shutters" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/toxins/explab) +"bub" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/purple/side, +/area/toxins/explab) +"buc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9; + pixel_y = 0 + }, +/turf/open/floor/plasteel/purple/side, +/area/toxins/explab) +"bud" = ( +/obj/structure/table, +/obj/machinery/light, +/obj/item/weapon/stock_parts/console_screen, +/obj/item/weapon/stock_parts/console_screen, +/obj/item/weapon/stock_parts/capacitor, +/obj/item/weapon/stock_parts/capacitor, +/obj/item/weapon/stock_parts/manipulator, +/obj/item/weapon/stock_parts/manipulator, +/obj/item/weapon/stock_parts/scanning_module, +/obj/item/weapon/stock_parts/scanning_module, +/obj/item/device/multitool, +/turf/open/floor/plasteel/purple/side, +/area/toxins/explab) +"bue" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/weapon/stock_parts/cell/high/plus, +/obj/item/weapon/stock_parts/cell/high/plus, +/turf/open/floor/plasteel/purple/side, +/area/toxins/explab) +"buf" = ( +/obj/structure/table, +/obj/item/weapon/stock_parts/matter_bin, +/obj/item/weapon/stock_parts/matter_bin, +/obj/item/weapon/stock_parts/micro_laser, +/obj/item/weapon/stock_parts/micro_laser, +/obj/item/stack/cable_coil, +/obj/item/stack/cable_coil, +/obj/machinery/light_switch{ + pixel_x = 25 + }, +/turf/open/floor/plasteel/purple/side, +/area/toxins/explab) +"bug" = ( +/turf/open/floor/plasteel/white/side{ + tag = "icon-whitehall (NORTH)"; + icon_state = "whitehall"; + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"buh" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whiteblue/side, +/area/medical/research{ + name = "Research Division" + }) +"bui" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/checkpoint/science) +"buj" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Research Security Post"; + req_access_txt = "63" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whitered, +/area/security/checkpoint/science) +"buk" = ( +/turf/closed/wall/r_wall, +/area/toxins/storage) +"bul" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/toxins/storage) +"bum" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bun" = ( +/turf/closed/wall, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"buo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bup" = ( +/obj/structure/disposaloutlet, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"buq" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bur" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/grass, +/area/medical/genetics) +"bus" = ( +/obj/structure/window/reinforced{ + dir = 4; + layer = 2.9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/mob/living/carbon/monkey, +/turf/open/floor/grass, +/area/medical/genetics) +"but" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/glass/beaker, +/obj/item/weapon/reagent_containers/dropper, +/obj/item/weapon/storage/pill_bottle/mutadone, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 8 + }, +/area/medical/genetics) +"buu" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start{ + name = "Geneticist" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"buv" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"buw" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bux" = ( +/obj/machinery/shower{ + dir = 8 + }, +/obj/machinery/requests_console{ + department = "Genetics"; + departmentType = 0; + name = "Genetics Requests Console"; + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 4 + }, +/area/medical/genetics) +"buy" = ( +/turf/closed/wall, +/area/medical/virology) +"buz" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/virology{ + autoclose = 0; + frequency = 1449; + icon_state = "door_locked"; + id_tag = "virology_airlock_exterior"; + locked = 1; + name = "Virology Exterior Airlock"; + req_access_txt = "39" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/doorButtons/access_button{ + idDoor = "virology_airlock_exterior"; + idSelf = "virology_airlock_control"; + name = "Virology Access Button"; + pixel_x = -24; + pixel_y = 0; + req_access_txt = "39" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"buA" = ( +/obj/structure/sign/biohazard, +/turf/closed/wall, +/area/medical/virology) +"buB" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/beakers{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/weapon/storage/box/syringes, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 1 + }, +/area/medical/medbay) +"buC" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/brute{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/firstaid/brute, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = -3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 1 + }, +/area/medical/medbay) +"buD" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/fire{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/firstaid/fire, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = -3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 1 + }, +/area/medical/medbay) +"buE" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/toxin{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/firstaid/toxin, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = -3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 1 + }, +/area/medical/medbay) +"buF" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/o2{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/firstaid/o2, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = -3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 1 + }, +/area/medical/medbay) +"buG" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 8 + }, +/area/medical/medbay) +"buH" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"buI" = ( +/turf/open/floor/plasteel/cmo, +/area/medical/cmo{ + name = "Chief Medical Office" + }) +"buJ" = ( +/mob/living/simple_animal/pet/cat/Runtime, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo{ + name = "Chief Medical Office" + }) +"buK" = ( +/obj/effect/landmark/start{ + name = "Chief Medical Officer" + }, +/obj/structure/chair/office/light{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo{ + name = "Chief Medical Office" + }) +"buL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo{ + name = "Chief Medical Office" + }) +"buM" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/camera{ + c_tag = "Chief Medical Office"; + dir = 8; + network = list("SS13") + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching surgery."; + dir = 8; + layer = 4; + name = "Surgery Telescreen"; + network = list("Surgery"); + pixel_x = 30; + pixel_y = 0 + }, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo{ + name = "Chief Medical Office" + }) +"buN" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Chemistry Lab Maintenance"; + req_access_txt = "5; 33" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/medical/chemistry) +"buO" = ( +/turf/closed/wall/r_wall, +/area/toxins/server) +"buP" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Server Room"; + req_access = null; + req_access_txt = "30" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/area/toxins/server) +"buQ" = ( +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Monastery Maintenance" + }) +"buR" = ( +/turf/closed/wall, +/area/crew_quarters/hor) +"buS" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/crew_quarters/hor) +"buT" = ( +/obj/machinery/door/airlock/glass_command{ + name = "Research Director"; + req_access_txt = "30" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/hor) +"buU" = ( +/obj/structure/filingcabinet, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/checkpoint/science) +"buV" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/checkpoint/science) +"buW" = ( +/obj/structure/closet/wardrobe/red, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 23; + pixel_y = 0 + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/checkpoint/science) +"buX" = ( +/obj/machinery/portable_atmospherics/canister/toxins, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/toxins/storage) +"buY" = ( +/obj/machinery/portable_atmospherics/canister/toxins, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Toxins Storage"; + dir = 2; + network = list("SS13","RD") + }, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/toxins/storage) +"buZ" = ( +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/toxins/storage) +"bva" = ( +/obj/machinery/portable_atmospherics/scrubber/huge, +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 1; + name = "Toxins Storage APC"; + pixel_x = 0; + pixel_y = 25 + }, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/toxins/storage) +"bvb" = ( +/obj/machinery/portable_atmospherics/scrubber/huge, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/plasteel, +/area/toxins/storage) +"bvc" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bvd" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bve" = ( +/obj/structure/closet/bombcloset, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bvf" = ( +/obj/structure/closet/bombcloset, +/turf/open/floor/plasteel/white, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bvg" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bvh" = ( +/obj/machinery/portable_atmospherics/pump, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = 26 + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bvi" = ( +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/plasteel/white, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bvj" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Toxins Lab APC"; + pixel_y = 25 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 4 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bvk" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/camera{ + c_tag = "Toxins Lab"; + dir = 2; + network = list("SS13","RD"); + pixel_y = 0 + }, +/obj/structure/sign/poster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bvl" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/turf/open/floor/plasteel, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bvm" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/structure/sign/poster{ + pixel_y = 32 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 24 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bvn" = ( +/obj/effect/landmark{ + name = "revenantspawn" + }, +/mob/living/simple_animal/slime, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"bvo" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Monastery Maintenance" + }) +"bvp" = ( +/turf/open/floor/plating, +/area/maintenance/aft) +"bvq" = ( +/obj/structure/table, +/obj/item/weapon/pen, +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = -27 + }, +/obj/item/weapon/paper_bin{ + layer = 2.9; + pixel_x = 0; + pixel_y = 0; + tag = "every single paper bin is edited to this" + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 10 + }, +/area/medical/genetics) +"bvr" = ( +/obj/machinery/computer/scan_consolenew, +/turf/open/floor/plasteel/whitepurple/side, +/area/medical/genetics) +"bvs" = ( +/obj/machinery/dna_scannernew, +/obj/machinery/camera{ + c_tag = "Genetics"; + dir = 1; + network = list("SS13","RD"); + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plasteel/whitepurple/side, +/area/medical/genetics) +"bvt" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/whitepurple/corner{ + tag = "icon-whitepurplecorner (WEST)"; + dir = 8 + }, +/area/medical/genetics) +"bvu" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bvv" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "Genetics APC"; + pixel_x = 27 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 4 + }, +/area/medical/genetics) +"bvw" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/machinery/shower{ + dir = 4 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 9 + }, +/area/medical/virology) +"bvx" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bvy" = ( +/obj/structure/closet/emcloset, +/obj/machinery/camera{ + c_tag = "Virology Airlock"; + dir = 2; + network = list("SS13") + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 5 + }, +/area/medical/virology) +"bvz" = ( +/obj/structure/sink{ + icon_state = "sink"; + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/machinery/requests_console{ + announcementConsole = 0; + department = "Medbay"; + departmentType = 1; + name = "Medbay RC"; + pixel_x = -32; + pixel_y = 0; + pixel_z = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bvA" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bvB" = ( +/obj/machinery/door/airlock/glass_medical{ + id_tag = null; + name = "Medbay Storage"; + req_access_txt = "45" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bvC" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 8 + }, +/area/medical/medbay) +"bvD" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bvE" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (EAST)"; + dir = 4 + }, +/area/medical/medbay) +"bvF" = ( +/obj/machinery/door/airlock/glass_command{ + name = "Chief Medical Office"; + req_access_txt = "40" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/barber, +/area/medical/cmo{ + name = "Chief Medical Office" + }) +"bvG" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo{ + name = "Chief Medical Office" + }) +"bvH" = ( +/obj/structure/table/glass, +/obj/item/weapon/paper_bin{ + pixel_x = -2; + pixel_y = 5 + }, +/obj/item/weapon/pen{ + layer = 3.1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo{ + name = "Chief Medical Office" + }) +"bvI" = ( +/obj/structure/table/glass, +/obj/item/weapon/folder/white, +/obj/item/clothing/glasses/hud/health, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo{ + name = "Chief Medical Office" + }) +"bvJ" = ( +/obj/structure/table/glass, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/item/stack/medical/gauze, +/obj/item/clothing/neck/stethoscope, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo{ + name = "Chief Medical Office" + }) +"bvK" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 8; + icon_state = "pipe-j1s"; + sortType = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo{ + name = "Chief Medical Office" + }) +"bvL" = ( +/obj/machinery/door/airlock/maintenance{ + name = "CMO Maintenance"; + req_access_txt = "40" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + 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) +"bvM" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + 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) +"bvN" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 8; + icon_state = "pipe-j1s"; + sortType = 11 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"bvO" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bvP" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bvQ" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/yellow/corner, +/area/hallway/primary/aft) +"bvR" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + target_temperature = 80; + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/toxins/server) +"bvS" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/area/toxins/server) +"bvT" = ( +/obj/machinery/r_n_d/server/core, +/turf/open/floor/bluegrid{ + name = "Server Base"; + initial_gas_mix = "n2=500;TEMP=80" + }, +/area/toxins/server) +"bvU" = ( +/obj/structure/closet/secure_closet/RD, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 9 + }, +/area/crew_quarters/hor) +"bvV" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "RD Office APC"; + pixel_x = 0; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 1 + }, +/area/crew_quarters/hor) +"bvW" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 1 + }, +/area/crew_quarters/hor) +"bvX" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 1 + }, +/area/crew_quarters/hor) +"bvY" = ( +/obj/item/weapon/twohanded/required/kirbyplants/dead, +/obj/machinery/button/door{ + id = "rndshutters"; + name = "Research Lockdown"; + pixel_x = 28; + pixel_y = 0; + req_access_txt = "47" + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 5 + }, +/area/crew_quarters/hor) +"bvZ" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Science Security Post"; + dir = 4; + network = list("SS13","RD") + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/checkpoint/science) +"bwa" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/science) +"bwb" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "Science Security APC"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/checkpoint/science) +"bwc" = ( +/obj/machinery/portable_atmospherics/canister/nitrogen, +/turf/open/floor/plasteel/bot, +/area/toxins/storage) +"bwd" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/toxins/storage) +"bwe" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/toxins/storage) +"bwf" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/toxins/storage) +"bwg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/toxins/storage) +"bwh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"bwi" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/white/side{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"bwj" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bwk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bwl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bwm" = ( +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bwn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bwo" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bwp" = ( +/obj/machinery/atmospherics/components/trinary/mixer/flipped{ + dir = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bwq" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bwr" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/requests_console{ + department = "Science"; + departmentType = 2; + name = "Science Requests Console"; + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bws" = ( +/obj/machinery/light, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"bwt" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bwu" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/aft) +"bwv" = ( +/obj/structure/closet/crate/medical, +/obj/item/stack/medical/ointment, +/obj/item/stack/medical/bruise_pack, +/turf/open/floor/plating, +/area/maintenance/aft) +"bww" = ( +/obj/item/trash/candy, +/obj/effect/decal/cleanable/deadcockroach, +/turf/open/floor/plating, +/area/maintenance/aft) +"bwx" = ( +/obj/item/weapon/extinguisher, +/turf/open/floor/plating, +/area/maintenance/aft) +"bwy" = ( +/obj/item/chair, +/obj/item/weapon/cigbutt/roach, +/turf/open/floor/plating, +/area/maintenance/aft) +"bwz" = ( +/obj/structure/closet/secure_closet/medical1, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 10 + }, +/area/medical/genetics) +"bwA" = ( +/obj/structure/closet/secure_closet/personal/patient, +/obj/machinery/light, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel/whitepurple/side, +/area/medical/genetics) +"bwB" = ( +/obj/structure/closet/wardrobe/genetics_white, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 6 + }, +/area/medical/genetics) +"bwC" = ( +/obj/machinery/shower{ + dir = 4 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 8 + }, +/area/medical/virology) +"bwD" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bwE" = ( +/obj/structure/closet/l3closet, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 4 + }, +/area/medical/virology) +"bwF" = ( +/obj/machinery/shower{ + tag = "icon-shower (EAST)"; + icon_state = "shower"; + dir = 4 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + freerange = 0; + frequency = 1485; + listening = 1; + name = "Station Intercom (Medbay)"; + pixel_x = -28; + pixel_y = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bwG" = ( +/obj/effect/landmark/start{ + name = "Medical Doctor" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bwH" = ( +/obj/machinery/door/airlock/glass_medical{ + id_tag = null; + name = "Medbay Storage"; + req_access_txt = "45" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bwI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 8 + }, +/area/medical/medbay) +"bwJ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (EAST)"; + dir = 4 + }, +/area/medical/medbay) +"bwK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo{ + name = "Chief Medical Office" + }) +"bwL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo{ + name = "Chief Medical Office" + }) +"bwM" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo{ + name = "Chief Medical Office" + }) +"bwN" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo{ + name = "Chief Medical Office" + }) +"bwO" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "CMO's Office APC"; + pixel_x = 26; + pixel_y = 0 + }, +/obj/structure/cable, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo{ + name = "Chief Medical Office" + }) +"bwP" = ( +/turf/closed/wall, +/area/medical/exam_room) +"bwQ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"bwR" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Server Room APC"; + pixel_x = -24; + pixel_y = 0 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/toxins/server) +"bwS" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/black, +/area/toxins/server) +"bwT" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/toxins/server) +"bwU" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + external_pressure_bound = 140; + on = 1; + pressure_checks = 0 + }, +/turf/open/floor/bluegrid{ + name = "Server Base"; + initial_gas_mix = "n2=500;TEMP=80" + }, +/area/toxins/server) +"bwV" = ( +/obj/machinery/computer/robotics, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 8 + }, +/area/crew_quarters/hor) +"bwW" = ( +/turf/open/floor/plasteel/white, +/area/crew_quarters/hor) +"bwX" = ( +/obj/structure/displaycase/labcage, +/turf/open/floor/plasteel/white, +/area/crew_quarters/hor) +"bwY" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/hor) +"bwZ" = ( +/obj/machinery/disposal/bin, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 4 + }, +/area/crew_quarters/hor) +"bxa" = ( +/obj/item/weapon/pen, +/obj/structure/table, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = -32; + pixel_y = 0 + }, +/obj/item/weapon/paper_bin{ + layer = 2.9; + pixel_x = 0; + pixel_y = 0; + tag = "every single paper bin is edited to this" + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/checkpoint/science) +"bxb" = ( +/obj/structure/chair/office/dark, +/obj/effect/landmark/start/depsec/science, +/turf/open/floor/plasteel, +/area/security/checkpoint/science) +"bxc" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/checkpoint/science) +"bxd" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel/bot, +/area/toxins/storage) +"bxe" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/turf/open/floor/plasteel, +/area/toxins/storage) +"bxf" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/toxins/storage) +"bxg" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/airlock/research{ + name = "Toxins Storage"; + req_access_txt = "8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/toxins/storage) +"bxh" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"bxi" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bxj" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"bxk" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/airlock/glass_research{ + name = "Toxins Lab"; + req_access_txt = "8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bxl" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bxm" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bxn" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bxo" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bxp" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bxq" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bxr" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 28 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bxs" = ( +/turf/closed/wall, +/area/toxins/mineral_storeroom) +"bxt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/toxins/mineral_storeroom) +"bxu" = ( +/turf/closed/wall/r_wall, +/area/toxins/mineral_storeroom) +"bxv" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/item/trash/sosjerky, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bxw" = ( +/obj/structure/closet, +/obj/item/stack/cable_coil/random, +/obj/item/weapon/electronics/airalarm, +/turf/open/floor/plating, +/area/maintenance/aft) +"bxx" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bxy" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bxz" = ( +/turf/closed/wall/r_wall, +/area/medical/virology) +"bxA" = ( +/obj/structure/sink{ + icon_state = "sink"; + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 10 + }, +/area/medical/virology) +"bxB" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bxC" = ( +/obj/structure/closet/l3closet, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 6 + }, +/area/medical/virology) +"bxD" = ( +/obj/machinery/vending/medical, +/turf/open/floor/plasteel/whiteblue/side, +/area/medical/medbay) +"bxE" = ( +/obj/structure/closet/secure_closet/medical3, +/turf/open/floor/plasteel/whiteblue/side, +/area/medical/medbay) +"bxF" = ( +/obj/structure/closet/secure_closet/medical3, +/obj/machinery/light, +/obj/machinery/camera{ + c_tag = "Medbay Equipment Room"; + dir = 1; + network = list("SS13") + }, +/turf/open/floor/plasteel/whiteblue/side, +/area/medical/medbay) +"bxG" = ( +/obj/structure/closet/wardrobe/white/medical, +/turf/open/floor/plasteel/whiteblue/side, +/area/medical/medbay) +"bxH" = ( +/obj/structure/table, +/obj/item/weapon/storage/belt/medical{ + pixel_x = 0; + pixel_y = 2 + }, +/obj/item/weapon/storage/belt/medical{ + pixel_x = 0; + pixel_y = 2 + }, +/obj/item/weapon/storage/belt/medical{ + pixel_x = 0; + pixel_y = 2 + }, +/obj/item/clothing/glasses/hud/health, +/obj/item/clothing/glasses/hud/health, +/obj/item/clothing/glasses/hud/health, +/obj/item/weapon/reagent_containers/spray/cleaner, +/turf/open/floor/plasteel/whiteblue/side, +/area/medical/medbay) +"bxI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/medbay) +"bxJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/medbay) +"bxK" = ( +/obj/structure/closet/secure_closet/CMO, +/obj/item/weapon/valentine, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo{ + name = "Chief Medical Office" + }) +"bxL" = ( +/obj/machinery/modular_computer/console/preset/civilian, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo{ + name = "Chief Medical Office" + }) +"bxM" = ( +/obj/item/weapon/cartridge/medical{ + pixel_x = -2; + pixel_y = 6 + }, +/obj/item/weapon/cartridge/medical{ + pixel_x = 6; + pixel_y = 3 + }, +/obj/item/weapon/cartridge/medical, +/obj/item/weapon/cartridge/chemistry{ + pixel_y = 2 + }, +/obj/structure/table, +/obj/machinery/light, +/obj/item/weapon/wrench/medical, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo{ + name = "Chief Medical Office" + }) +"bxN" = ( +/obj/item/weapon/folder/blue, +/obj/item/weapon/stamp/cmo, +/obj/structure/table, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo{ + name = "Chief Medical Office" + }) +"bxO" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-16"; + layer = 4.1 + }, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo{ + name = "Chief Medical Office" + }) +"bxP" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/closet, +/obj/item/clothing/under/rank/nursesuit, +/obj/item/clothing/head/nursehat, +/obj/effect/decal/cleanable/cobweb, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/black, +/area/medical/exam_room) +"bxQ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/vending/wallmed{ + pixel_y = 28; + products = list(/obj/item/weapon/reagent_containers/syringe = 3, /obj/item/weapon/reagent_containers/pill/patch/styptic = 1, /obj/item/weapon/reagent_containers/pill/patch/silver_sulf = 1, /obj/item/weapon/reagent_containers/spray/medical/sterilizer = 1) + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/obj/effect/landmark{ + name = "blobstart" + }, +/obj/item/weapon/melee/baton/cattleprod{ + bcell = new /obj/item/weapon/stock_parts/cell/high() + }, +/turf/open/floor/plasteel/black, +/area/medical/exam_room) +"bxR" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/button/door{ + id = "CMOCell"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 0; + pixel_y = 26; + req_access_txt = "0"; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plasteel/black, +/area/medical/exam_room) +"bxS" = ( +/obj/machinery/door/airlock/command{ + id_tag = "CMOCell"; + name = "Personal Examination Room"; + req_access_txt = "40" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/medical/exam_room) +"bxT" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8"; + tag = "" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bxU" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bxV" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/yellow/corner, +/area/hallway/primary/aft) +"bxW" = ( +/obj/structure/chair/office/dark, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Server Room"; + dir = 4; + network = list("SS13","RD") + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/turf/open/floor/plasteel/black, +/area/toxins/server) +"bxX" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/toxins/server) +"bxY" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_command{ + name = "Server Room"; + req_access_txt = "30" + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/toxins/server) +"bxZ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + external_pressure_bound = 120; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/bluegrid{ + name = "Server Base"; + initial_gas_mix = "n2=500;TEMP=80" + }, +/area/toxins/server) +"bya" = ( +/obj/machinery/computer/aifixer, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 8 + }, +/area/crew_quarters/hor) +"byb" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/hor) +"byc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/hor) +"byd" = ( +/obj/structure/chair/office/light, +/obj/effect/landmark/start{ + name = "Research Director" + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/hor) +"bye" = ( +/obj/machinery/computer/card/minor/rd, +/obj/machinery/keycard_auth{ + pixel_x = 28; + pixel_y = 4 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 4 + }, +/area/crew_quarters/hor) +"byf" = ( +/obj/machinery/recharger{ + pixel_y = 4 + }, +/obj/structure/table, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/security/checkpoint/science) +"byg" = ( +/obj/machinery/computer/security/mining, +/obj/item/device/radio/intercom{ + dir = 8; + freerange = 1; + name = "Station Intercom (Telecoms)"; + pixel_x = 0; + pixel_y = -26 + }, +/turf/open/floor/plasteel/red/side, +/area/security/checkpoint/science) +"byh" = ( +/obj/machinery/computer/secure_data, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/checkpoint/science) +"byi" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plasteel/bot, +/area/toxins/storage) +"byj" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/toxins/storage) +"byk" = ( +/turf/open/floor/plasteel, +/area/toxins/storage) +"byl" = ( +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"bym" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"byn" = ( +/turf/open/floor/plasteel, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"byo" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"byp" = ( +/obj/item/device/assembly/prox_sensor{ + pixel_x = -4; + pixel_y = 1 + }, +/obj/item/device/assembly/prox_sensor{ + pixel_x = 8; + pixel_y = 9 + }, +/obj/item/device/assembly/prox_sensor{ + pixel_x = 9; + pixel_y = -2 + }, +/obj/item/device/assembly/prox_sensor{ + pixel_x = 0; + pixel_y = 2 + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"byq" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start{ + name = "Scientist" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"byr" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/wrench, +/obj/item/weapon/screwdriver{ + pixel_y = 10 + }, +/obj/item/device/analyzer, +/turf/open/floor/plasteel, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bys" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"byt" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"byu" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"byv" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the turbine vent."; + dir = 8; + name = "turbine vent monitor"; + network = list("Turbine"); + pixel_x = 30; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"byw" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/closed/wall, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"byx" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel, +/area/toxins/mineral_storeroom) +"byy" = ( +/obj/machinery/power/smes, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plasteel, +/area/toxins/mineral_storeroom) +"byz" = ( +/obj/machinery/suit_storage_unit/rd, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/toxins/mineral_storeroom) +"byA" = ( +/obj/structure/ore_box, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/toxins/mineral_storeroom) +"byB" = ( +/obj/structure/ore_box, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/sign/poster{ + pixel_x = 0; + pixel_y = 32 + }, +/obj/machinery/camera{ + c_tag = "Toxins Launch Area"; + dir = 2; + network = list("SS13","RD") + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/toxins/mineral_storeroom) +"byC" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/toxins/mineral_storeroom) +"byD" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/toxins/mineral_storeroom) +"byE" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/toxins/mineral_storeroom) +"byF" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Toxins Launch Room APC"; + pixel_y = 25 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/toxins/mineral_storeroom) +"byG" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Toxins Launch Room Maintenance"; + req_access_txt = "8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/toxins/mineral_storeroom) +"byH" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"byI" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/item/weapon/cigbutt/cigarbutt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"byJ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"byK" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"byL" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/aft) +"byM" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"byN" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"byO" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/closed/wall/r_wall, +/area/medical/virology) +"byP" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/mob/living/carbon/monkey, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"byQ" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"byR" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/mob/living/carbon/monkey, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"byS" = ( +/obj/effect/decal/cleanable/deadcockroach, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"byT" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/virology{ + autoclose = 0; + frequency = 1449; + icon_state = "door_locked"; + id_tag = "virology_airlock_interior"; + locked = 1; + name = "Virology Interior Airlock"; + req_access_txt = "39" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/doorButtons/access_button{ + idDoor = "virology_airlock_interior"; + idSelf = "virology_airlock_control"; + name = "Virology Access Button"; + pixel_x = -24; + pixel_y = 0; + req_access_txt = "39" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"byU" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/closed/wall/r_wall, +/area/medical/virology) +"byV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/medbay) +"byW" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"byX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/medbay) +"byY" = ( +/turf/closed/wall, +/area/medical/surgery) +"byZ" = ( +/obj/structure/table/glass, +/obj/item/device/flashlight/pen, +/obj/item/clothing/neck/stethoscope, +/obj/item/weapon/lipstick/black, +/obj/machinery/power/apc{ + dir = 8; + name = "Personal Examination Room APC"; + pixel_x = -25 + }, +/obj/structure/cable, +/obj/item/weapon/reagent_containers/pill/morphine, +/turf/open/floor/plasteel/black, +/area/medical/exam_room) +"bza" = ( +/obj/effect/decal/remains/human, +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/turf/open/floor/plasteel/black, +/area/medical/exam_room) +"bzb" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/cmo, +/obj/effect/decal/cleanable/blood/drip, +/obj/item/weapon/restraints/handcuffs, +/obj/item/clothing/mask/muzzle, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/turf/open/floor/plasteel/black, +/area/medical/exam_room) +"bzc" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/sign/examroom{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"bzd" = ( +/obj/machinery/camera{ + c_tag = "Aft Primary Hallway Central"; + dir = 8; + network = list("SS13") + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/yellow/corner, +/area/hallway/primary/aft) +"bze" = ( +/obj/structure/table, +/obj/item/weapon/folder/white, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/black, +/area/toxins/server) +"bzf" = ( +/obj/machinery/computer/rdservercontrol, +/turf/open/floor/plasteel/black, +/area/toxins/server) +"bzg" = ( +/obj/machinery/r_n_d/server/robotics, +/turf/open/floor/bluegrid{ + name = "Server Base"; + initial_gas_mix = "n2=500;TEMP=80" + }, +/area/toxins/server) +"bzh" = ( +/obj/machinery/computer/mecha, +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = -26 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 10 + }, +/area/crew_quarters/hor) +"bzi" = ( +/obj/structure/table, +/obj/item/device/aicard, +/obj/item/weapon/circuitboard/aicore, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Research Director's Desk"; + departmentType = 5; + name = "Research Director RC"; + pixel_x = 0; + pixel_y = -30 + }, +/turf/open/floor/plasteel/whitepurple/side, +/area/crew_quarters/hor) +"bzj" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + layer = 2.9; + pixel_x = -2; + pixel_y = 5; + tag = "every single paper bin is edited to this" + }, +/obj/item/weapon/folder/white, +/obj/item/weapon/pen, +/obj/item/weapon/stamp/rd, +/obj/machinery/status_display{ + density = 0; + pixel_y = -30; + supply_display = 0 + }, +/obj/machinery/camera{ + c_tag = "Research Director's Office"; + dir = 1; + network = list("SS13","RD") + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whitepurple/side, +/area/crew_quarters/hor) +"bzk" = ( +/obj/structure/table, +/obj/item/weapon/cartridge/signal/toxins, +/obj/item/weapon/cartridge/signal/toxins{ + pixel_x = -4; + pixel_y = 2 + }, +/obj/item/weapon/cartridge/signal/toxins{ + pixel_x = 4; + pixel_y = 6 + }, +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the RD's goons and the AI's satellite from the safety of his office."; + name = "Research Monitor"; + network = list("RD","MiniSat"); + pixel_x = 0; + pixel_y = -32 + }, +/turf/open/floor/plasteel/whitepurple/side, +/area/crew_quarters/hor) +"bzl" = ( +/obj/machinery/newscaster{ + pixel_y = -30 + }, +/obj/machinery/modular_computer/console/preset/research, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 6 + }, +/area/crew_quarters/hor) +"bzm" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/hor) +"bzn" = ( +/turf/closed/wall/r_wall, +/area/security/checkpoint/science) +"bzo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/security/checkpoint/science) +"bzp" = ( +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, +/turf/open/floor/plasteel/bot, +/area/toxins/storage) +"bzq" = ( +/obj/structure/sign/nosmoking_2{ + pixel_x = 32 + }, +/turf/open/floor/plasteel, +/area/toxins/storage) +"bzr" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plasteel/white/side{ + tag = "icon-whitehall (NORTH)"; + icon_state = "whitehall"; + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"bzs" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/machinery/light, +/turf/open/floor/plasteel/white/side{ + tag = "icon-whitehall (NORTH)"; + icon_state = "whitehall"; + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"bzt" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/white/side{ + tag = "icon-whitehall (NORTH)"; + icon_state = "whitehall"; + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"bzu" = ( +/obj/structure/tank_dispenser, +/turf/open/floor/plasteel, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bzv" = ( +/obj/structure/closet/wardrobe/science_white, +/turf/open/floor/plasteel, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bzw" = ( +/obj/item/device/assembly/signaler{ + pixel_x = 0; + pixel_y = 8 + }, +/obj/item/device/assembly/signaler{ + pixel_x = -8; + pixel_y = 5 + }, +/obj/item/device/assembly/signaler{ + pixel_x = 6; + pixel_y = 5 + }, +/obj/item/device/assembly/signaler{ + pixel_x = -2; + pixel_y = -2 + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/white, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bzx" = ( +/obj/item/device/transfer_valve{ + pixel_x = -5 + }, +/obj/item/device/transfer_valve{ + pixel_x = -5 + }, +/obj/item/device/transfer_valve{ + pixel_x = 0 + }, +/obj/item/device/transfer_valve{ + pixel_x = 0 + }, +/obj/item/device/transfer_valve{ + pixel_x = 5 + }, +/obj/item/device/transfer_valve{ + pixel_x = 5 + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bzy" = ( +/obj/item/device/assembly/timer{ + pixel_x = 5; + pixel_y = 4 + }, +/obj/item/device/assembly/timer{ + pixel_x = -4; + pixel_y = 2 + }, +/obj/item/device/assembly/timer{ + pixel_x = 6; + pixel_y = -4 + }, +/obj/item/device/assembly/timer{ + pixel_x = 0; + pixel_y = 0 + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bzz" = ( +/obj/machinery/computer/turbine_computer{ + id = "incineratorturbine" + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bzA" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/meter, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bzB" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4"; + tag = "" + }, +/turf/open/floor/plasteel, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bzC" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bzD" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/airlock/research{ + name = "Toxins Launch Room"; + req_access_txt = "8" + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + color = "#330000"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bzE" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10; + pixel_x = 0; + initialize_directions = 10 + }, +/turf/open/floor/plasteel, +/area/toxins/mineral_storeroom) +"bzF" = ( +/obj/structure/cable/yellow{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/terminal{ + icon_state = "term"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/toxins/mineral_storeroom) +"bzG" = ( +/turf/open/floor/plasteel, +/area/toxins/mineral_storeroom) +"bzH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/toxins/mineral_storeroom) +"bzI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/toxins/mineral_storeroom) +"bzJ" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Monastery Maintenance" + }) +"bzK" = ( +/turf/open/floor/plasteel/loadingarea{ + tag = "icon-loadingarea (EAST)"; + dir = 4 + }, +/area/toxins/mineral_storeroom) +"bzL" = ( +/turf/open/floor/plasteel/delivery, +/area/toxins/mineral_storeroom) +"bzM" = ( +/obj/structure/closet/boxinggloves, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/aft) +"bzN" = ( +/obj/structure/closet/masks, +/obj/item/trash/deadmouse, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bzO" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plating, +/area/maintenance/aft) +"bzP" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"bzQ" = ( +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"bzR" = ( +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1 + }, +/mob/living/carbon/monkey, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"bzS" = ( +/obj/structure/window/reinforced, +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"bzT" = ( +/obj/machinery/door/window/eastleft{ + dir = 2; + name = "Monkey Pen"; + req_one_access_txt = "39" + }, +/mob/living/carbon/monkey, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"bzU" = ( +/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 + }, +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (NORTHWEST)"; + icon_state = "whitegreen"; + dir = 9 + }, +/area/medical/virology) +"bzV" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bzW" = ( +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 1; + name = "Virology APC"; + pixel_x = 0; + pixel_y = 24 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (NORTHEAST)"; + icon_state = "whitegreen"; + dir = 5 + }, +/area/medical/virology) +"bzX" = ( +/obj/item/weapon/bedsheet/medical, +/obj/structure/bed, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/obj/structure/mirror{ + pixel_x = -28 + }, +/obj/structure/curtain{ + layer = 4.5 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/medbay) +"bzY" = ( +/obj/machinery/vending/wallmed{ + pixel_y = 28; + products = list(/obj/item/weapon/reagent_containers/syringe = 3, /obj/item/weapon/reagent_containers/pill/patch/styptic = 1, /obj/item/weapon/reagent_containers/pill/patch/silver_sulf = 1, /obj/item/weapon/reagent_containers/spray/medical/sterilizer = 1) + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + layer = 2.4; + on = 1 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/medbay) +"bzZ" = ( +/obj/machinery/button/door{ + id = "patientA"; + name = "Privacy Shutters"; + pixel_y = 25 + }, +/obj/machinery/camera{ + c_tag = "Patient Room A"; + dir = 2 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/medbay) +"bAa" = ( +/obj/machinery/door/airlock/medical{ + name = "Patient Room A"; + req_access_txt = "5" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/medbay) +"bAb" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bAc" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 28 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (EAST)"; + dir = 4 + }, +/area/medical/medbay) +"bAd" = ( +/obj/machinery/limbgrower, +/obj/item/weapon/reagent_containers/glass/beaker/synthflesh, +/obj/machinery/newscaster/security_unit{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/surgery) +"bAe" = ( +/obj/machinery/computer/med_data, +/obj/machinery/status_display{ + density = 0; + layer = 4; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/surgery) +"bAf" = ( +/obj/structure/table, +/obj/structure/bedsheetbin, +/obj/structure/extinguisher_cabinet{ + pixel_x = 24 + }, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/surgery) +"bAg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/medical/surgery) +"bAh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/crew_quarters/hor) +"bAi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/structure/table, +/obj/item/toy/cards/deck, +/turf/open/floor/plating, +/area/maintenance/maintcentral{ + name = "Atmospherics Maintenance" + }) +"bAj" = ( +/obj/machinery/space_heater, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/maintcentral{ + name = "Atmospherics Maintenance" + }) +"bAk" = ( +/obj/machinery/space_heater, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/maintcentral{ + name = "Atmospherics Maintenance" + }) +"bAl" = ( +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/toxins/storage) +"bAm" = ( +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/toxins/storage) +"bAn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/toxins/storage) +"bAo" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "External to Filter"; + on = 1 + }, +/turf/open/floor/plasteel, +/area/toxins/storage) +"bAp" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/toxins/storage) +"bAq" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/medical/research{ + name = "Research Division" + }) +"bAr" = ( +/turf/closed/wall/r_wall, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bAs" = ( +/obj/machinery/atmospherics/components/binary/valve, +/obj/machinery/button/door{ + id = "turbinevent"; + name = "Aft Vent Control"; + pixel_x = 6; + pixel_y = -24; + req_access_txt = "0"; + req_one_access_txt = "8;24" + }, +/obj/machinery/button/door{ + id = "mixvent"; + name = "Starboard Vent Control"; + pixel_x = -6; + pixel_y = -24; + req_access_txt = "0"; + req_one_access_txt = "8;24" + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bAt" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bAu" = ( +/obj/machinery/atmospherics/components/binary/valve, +/obj/machinery/button/ignition{ + id = "Incinerator"; + pixel_x = -6; + pixel_y = -24 + }, +/obj/machinery/doorButtons/airlock_controller{ + idExterior = "incinerator_airlock_exterior"; + idInterior = "incinerator_airlock_interior"; + idSelf = "incinerator_access_control"; + name = "Incinerator Access Console"; + pixel_x = 6; + pixel_y = -26; + req_access_txt = "0" + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 24 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bAv" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 2; + name = "Incinerator Output Pump"; + on = 0 + }, +/turf/open/floor/plasteel, +/area/toxins/mineral_storeroom) +"bAw" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/toxins/mineral_storeroom) +"bAx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/toxins/mineral_storeroom) +"bAy" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/toxins/mineral_storeroom) +"bAz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel, +/area/toxins/mineral_storeroom) +"bAA" = ( +/obj/item/device/radio/intercom{ + dir = 8; + name = "Station Intercom (General)"; + pixel_x = 28 + }, +/turf/open/floor/plasteel/brown{ + dir = 4 + }, +/area/toxins/mineral_storeroom) +"bAB" = ( +/obj/structure/table/wood, +/obj/item/weapon/folder/yellow, +/obj/item/weapon/pen, +/obj/machinery/camera{ + c_tag = "Monastery Library"; + dir = 4; + network = list("SS13","Monastery") + }, +/turf/open/floor/plasteel/black, +/area/library) +"bAC" = ( +/obj/machinery/mineral/unloading_machine{ + dir = 1; + icon_state = "unloader-corner"; + input_dir = 1; + output_dir = 2 + }, +/turf/open/floor/plating/warnplate{ + dir = 9 + }, +/area/toxins/mineral_storeroom) +"bAD" = ( +/obj/structure/table, +/obj/item/device/flashlight/lamp, +/obj/effect/decal/cleanable/cobweb{ + icon_state = "cobweb2" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bAE" = ( +/obj/machinery/vending/medical, +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (NORTHWEST)"; + icon_state = "whitegreen"; + dir = 9 + }, +/area/medical/virology) +"bAF" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 1 + }, +/area/medical/virology) +"bAG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 1 + }, +/area/medical/virology) +"bAH" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 1 + }, +/area/medical/virology) +"bAI" = ( +/obj/machinery/camera{ + c_tag = "Virology"; + dir = 2; + network = list("SS13") + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + dir = 8; + freerange = 1; + name = "Station Intercom (Telecoms)"; + pixel_x = 0; + pixel_y = 26 + }, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 1 + }, +/area/medical/virology) +"bAJ" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 1 + }, +/area/medical/virology) +"bAK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bAL" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 4 + }, +/area/medical/virology) +"bAM" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 1 + }, +/area/medical/virology) +"bAN" = ( +/obj/structure/closet/l3closet/virology, +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (NORTHEAST)"; + icon_state = "whitegreen"; + dir = 5 + }, +/area/medical/virology) +"bAO" = ( +/obj/structure/table, +/obj/item/weapon/clipboard{ + toppaper = null + }, +/obj/item/weapon/pen{ + layer = 3.1 + }, +/obj/item/clothing/neck/stethoscope{ + layer = 3.2 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/medbay) +"bAP" = ( +/turf/open/floor/carpet, +/area/library) +"bAQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/closet/secure_closet/personal/patient, +/turf/open/floor/plasteel/freezer, +/area/medical/medbay) +"bAR" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "patientA"; + name = "privacy shutters" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/medbay) +"bAS" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/medical/surgery) +"bAT" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/surgery) +"bAU" = ( +/obj/machinery/camera{ + c_tag = "Medbay Recovery Room"; + dir = 8; + network = list("SS13") + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + freerange = 0; + frequency = 1485; + listening = 1; + name = "Station Intercom (Medbay)"; + pixel_x = 28; + pixel_y = 0 + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel/freezer, +/area/medical/surgery) +"bAV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/medical/surgery) +"bAW" = ( +/obj/structure/closet/crate/freezer/blood, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue, +/area/medical/surgery) +"bAX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/sink{ + pixel_y = 28 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 1 + }, +/area/medical/surgery) +"bAY" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Surgery"; + dir = 2; + network = list("SS13","Surgery") + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 1 + }, +/area/medical/surgery) +"bAZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/vending/wallmed{ + pixel_y = 28; + products = list(/obj/item/weapon/reagent_containers/syringe = 3, /obj/item/weapon/reagent_containers/pill/patch/styptic = 1, /obj/item/weapon/reagent_containers/pill/patch/silver_sulf = 1, /obj/item/weapon/reagent_containers/spray/medical/sterilizer = 1) + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 1 + }, +/area/medical/surgery) +"bBa" = ( +/obj/structure/closet/secure_closet/medical2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/whiteblue, +/area/medical/surgery) +"bBb" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 8 + }, +/area/hallway/primary/aft) +"bBc" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bBd" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/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/yellow/corner, +/area/hallway/primary/aft) +"bBe" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Atmospherics Maintenance"; + req_access_txt = "24" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + 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/maintcentral{ + name = "Atmospherics Maintenance" + }) +"bBf" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + 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/maintcentral{ + name = "Atmospherics Maintenance" + }) +"bBg" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + 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/maintcentral{ + name = "Atmospherics Maintenance" + }) +"bBh" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/sign/poster{ + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/maintenance/maintcentral{ + name = "Atmospherics Maintenance" + }) +"bBi" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/maintcentral{ + name = "Atmospherics Maintenance" + }) +"bBj" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/maintcentral{ + name = "Atmospherics Maintenance" + }) +"bBk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/maintcentral{ + name = "Atmospherics Maintenance" + }) +"bBl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/maintcentral{ + name = "Atmospherics Maintenance" + }) +"bBm" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/effect/landmark{ + name = "blobstart" + }, +/obj/item/chair/stool, +/turf/open/floor/plating, +/area/maintenance/maintcentral{ + name = "Atmospherics Maintenance" + }) +"bBn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9; + pixel_y = 0 + }, +/obj/structure/sign/poster{ + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/maintenance/maintcentral{ + name = "Atmospherics Maintenance" + }) +"bBo" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/airlock/atmos{ + name = "Toxins Storage"; + req_access_txt = "24" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/toxins/storage) +"bBp" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 2 + }, +/turf/closed/wall/r_wall, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bBq" = ( +/obj/machinery/door/airlock/glass{ + autoclose = 0; + frequency = 1449; + heat_proof = 1; + icon_state = "door_locked"; + id_tag = "incinerator_airlock_interior"; + locked = 1; + name = "Turbine Interior Airlock"; + req_access_txt = "0"; + req_one_access_txt = "8;24" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bBr" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/closed/wall/r_wall, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bBs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel, +/area/toxins/mineral_storeroom) +"bBt" = ( +/obj/structure/window/reinforced, +/obj/machinery/doppler_array{ + dir = 2 + }, +/turf/open/floor/plasteel/bot{ + dir = 2 + }, +/area/toxins/mineral_storeroom) +"bBu" = ( +/obj/machinery/conveyor_switch/oneway{ + id = "toxmineral"; + name = "smelting conveyor" + }, +/turf/open/floor/plasteel/brown{ + dir = 4 + }, +/area/toxins/mineral_storeroom) +"bBv" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/toxins/mineral_storeroom) +"bBw" = ( +/obj/machinery/conveyor{ + dir = 2; + id = "toxmineral" + }, +/turf/open/floor/plating/warnplate{ + tag = "icon-warnplate (WEST)"; + dir = 8 + }, +/area/toxins/mineral_storeroom) +"bBx" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/toxins/mineral_storeroom) +"bBy" = ( +/obj/structure/chair/comfy/black, +/obj/item/trash/pistachios, +/turf/open/floor/plasteel/darkwarning{ + dir = 1 + }, +/area/maintenance/aft) +"bBz" = ( +/obj/structure/chair/comfy/black, +/obj/item/stack/spacecash/c100, +/turf/open/floor/plasteel/darkwarning{ + dir = 1 + }, +/area/maintenance/aft) +"bBA" = ( +/obj/structure/chair/comfy/black, +/turf/open/floor/plasteel/darkwarning{ + dir = 1 + }, +/area/maintenance/aft) +"bBB" = ( +/obj/structure/chair/comfy/black, +/obj/item/weapon/cigbutt, +/turf/open/floor/plasteel/darkwarning{ + dir = 1 + }, +/area/maintenance/aft) +"bBC" = ( +/obj/item/trash/popcorn, +/turf/open/floor/plasteel/darkwarning{ + dir = 5 + }, +/area/maintenance/aft) +"bBD" = ( +/obj/structure/sign/poster{ + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bBE" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bBF" = ( +/obj/structure/rack, +/obj/item/weapon/cartridge/medical, +/turf/open/floor/plating, +/area/maintenance/aft) +"bBG" = ( +/obj/structure/table/glass, +/obj/item/weapon/book/manual/wiki/infections, +/obj/item/weapon/hand_labeler, +/obj/item/device/radio/headset/headset_med, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26; + pixel_y = 0 + }, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 8 + }, +/area/medical/virology) +"bBH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bBI" = ( +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bBJ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bBK" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bBL" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 28 + }, +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (EAST)"; + icon_state = "whitegreen"; + dir = 4 + }, +/area/medical/virology) +"bBM" = ( +/obj/machinery/requests_console{ + announcementConsole = 0; + department = "Medbay"; + departmentType = 1; + name = "Medbay RC"; + pixel_x = -30; + pixel_y = 0; + pixel_z = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 8 + }, +/area/medical/medbay) +"bBN" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (EAST)"; + dir = 4 + }, +/area/medical/medbay) +"bBO" = ( +/obj/machinery/door/airlock/glass_medical{ + id_tag = null; + name = "Recovery Room"; + req_access_txt = "0" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/surgery) +"bBP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/surgery) +"bBQ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/surgery) +"bBR" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/medical{ + name = "Surgery"; + req_access_txt = "45" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/surgery) +"bBS" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 8 + }, +/area/medical/surgery) +"bBT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/medical/surgery) +"bBU" = ( +/obj/machinery/computer/operating, +/turf/open/floor/plasteel/white, +/area/medical/surgery) +"bBV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/surgery) +"bBW" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (EAST)"; + dir = 4 + }, +/area/medical/surgery) +"bBX" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Surgery Maintenance"; + req_access_txt = "45" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/surgery) +"bBY" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bBZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/yellow/corner{ + dir = 8 + }, +/area/hallway/primary/aft) +"bCa" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bCb" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/yellow/corner, +/area/hallway/primary/aft) +"bCc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/maintcentral{ + name = "Atmospherics Maintenance" + }) +"bCd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/maintcentral{ + name = "Atmospherics Maintenance" + }) +"bCe" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/maintcentral{ + name = "Atmospherics Maintenance" + }) +"bCf" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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/maintcentral{ + name = "Atmospherics Maintenance" + }) +"bCg" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1; + initialize_directions = 11 + }, +/obj/effect/decal/cleanable/vomit/old, +/turf/open/floor/plating, +/area/maintenance/maintcentral{ + name = "Atmospherics Maintenance" + }) +"bCh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/maintcentral{ + name = "Atmospherics Maintenance" + }) +"bCi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/maintcentral{ + name = "Atmospherics Maintenance" + }) +"bCj" = ( +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/plating, +/area/maintenance/maintcentral{ + name = "Atmospherics Maintenance" + }) +"bCk" = ( +/turf/closed/wall/r_wall, +/area/atmos) +"bCl" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/power/apc{ + dir = 8; + name = "Atmospherics APC"; + pixel_x = -24 + }, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/atmos) +"bCm" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/airalarm{ + dir = 2; + pixel_y = 22 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/atmos) +"bCn" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Head of Security's Desk"; + departmentType = 5; + name = "Head of Security RC"; + pixel_x = 0; + pixel_y = 30 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/atmos) +"bCo" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Atmospherics Toxins"; + dir = 2; + network = list("SS13"); + pixel_x = 0; + pixel_y = 0; + start_active = 1 + }, +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = 26 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/atmos) +"bCp" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/atmos) +"bCq" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/atmos) +"bCr" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 5 + }, +/area/atmos) +"bCs" = ( +/obj/machinery/bookbinder, +/turf/open/floor/plasteel/black, +/area/library) +"bCt" = ( +/obj/structure/grille, +/turf/closed/wall/r_wall, +/area/atmos) +"bCu" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 2; + on = 1; + target_pressure = 101.325 + }, +/obj/machinery/doorButtons/access_button{ + idDoor = "incinerator_airlock_exterior"; + idSelf = "incinerator_access_control"; + layer = 3.1; + name = "Incinerator airlock control"; + pixel_x = 8; + pixel_y = -24 + }, +/turf/open/floor/engine, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bCv" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bCw" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + on = 1; + target_pressure = 101.325 + }, +/obj/machinery/doorButtons/access_button{ + idSelf = "incinerator_access_control"; + idDoor = "incinerator_airlock_interior"; + name = "Incinerator airlock control"; + pixel_x = -8; + pixel_y = 24 + }, +/turf/open/floor/engine, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bCx" = ( +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the test chamber."; + dir = 2; + layer = 4; + name = "Test Chamber Telescreen"; + network = list("Toxins"); + pixel_x = 0; + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/toxins/mineral_storeroom) +"bCy" = ( +/obj/machinery/button/massdriver{ + dir = 2; + id = "toxinsdriver"; + pixel_y = -24 + }, +/turf/open/floor/plasteel/loadingarea{ + tag = "icon-loadingarea (EAST)"; + dir = 4 + }, +/area/toxins/mineral_storeroom) +"bCz" = ( +/obj/machinery/mass_driver{ + id = "toxinsdriver" + }, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/machinery/door/window/southleft{ + dir = 8; + name = "Mass Driver Door"; + req_access_txt = "7" + }, +/turf/open/floor/plating/warnplate/end{ + tag = "icon-plating_warn_end (NORTH)"; + icon_state = "plating_warn_end"; + dir = 1 + }, +/area/toxins/mineral_storeroom) +"bCA" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + dir = 4 + }, +/area/toxins/mineral_storeroom) +"bCB" = ( +/obj/machinery/mineral/processing_unit_console, +/turf/closed/wall, +/area/toxins/mineral_storeroom) +"bCC" = ( +/obj/machinery/mineral/processing_unit{ + dir = 1; + output_dir = 2 + }, +/turf/open/floor/plating/warnplate{ + dir = 9 + }, +/area/toxins/mineral_storeroom) +"bCD" = ( +/obj/machinery/door/window/eastright{ + base_state = "left"; + dir = 8; + icon_state = "left"; + name = "Arena" + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/chair/stool, +/turf/open/floor/engine, +/area/maintenance/aft) +"bCE" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/mob/living/simple_animal/chicken{ + name = "Bloodthirsty Peckins" + }, +/turf/open/floor/engine, +/area/maintenance/aft) +"bCF" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/engine, +/area/maintenance/aft) +"bCG" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/engine, +/area/maintenance/aft) +"bCH" = ( +/obj/item/stack/medical/gauze, +/turf/open/floor/plasteel/darkwarning{ + dir = 4 + }, +/area/maintenance/aft) +"bCI" = ( +/obj/structure/light_construct{ + tag = "icon-tube-construct-stage1 (EAST)"; + icon_state = "tube-construct-stage1"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bCJ" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/medical/virology) +"bCK" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_virology{ + name = "Isolation B"; + req_access_txt = "39" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"bCL" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_virology{ + name = "Isolation A"; + req_access_txt = "39" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"bCM" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bCN" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/obj/machinery/computer/pandemic, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bCO" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bCP" = ( +/obj/machinery/smartfridge/chemistry/virology, +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (EAST)"; + icon_state = "whitegreen"; + dir = 4 + }, +/area/medical/virology) +"bCQ" = ( +/obj/structure/bookcase/random/reference, +/turf/open/floor/plasteel/black, +/area/library) +"bCR" = ( +/obj/machinery/button/door{ + id = "patientB"; + name = "Privacy Shutters"; + pixel_y = 25 + }, +/obj/machinery/camera{ + c_tag = "Patient Room B"; + dir = 2 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/medbay) +"bCS" = ( +/obj/machinery/door/airlock/medical{ + name = "Patient Room B"; + req_access_txt = "5" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/medbay) +"bCT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/obj/item/device/radio/beacon, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bCU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9; + pixel_y = 0 + }, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (EAST)"; + dir = 4 + }, +/area/medical/medbay) +"bCV" = ( +/obj/structure/bed/roller, +/obj/machinery/iv_drip{ + density = 0 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/surgery) +"bCW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/freezer, +/area/medical/surgery) +"bCX" = ( +/obj/structure/bed, +/turf/open/floor/plasteel/freezer, +/area/medical/surgery) +"bCY" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 8 + }, +/area/medical/surgery) +"bCZ" = ( +/obj/structure/table/optable, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/turf/open/floor/plasteel/white, +/area/medical/surgery) +"bDa" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "Surgery APC"; + pixel_x = 26; + pixel_y = 0 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (EAST)"; + dir = 4 + }, +/area/medical/surgery) +"bDb" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/aft) +"bDc" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/yellow/corner{ + dir = 8 + }, +/area/hallway/primary/aft) +"bDd" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bDe" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/yellow/corner, +/area/hallway/primary/aft) +"bDf" = ( +/turf/closed/wall, +/area/maintenance/maintcentral{ + name = "Atmospherics Maintenance" + }) +"bDg" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics Maintenance"; + req_access_txt = "12;24" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/atmos) +"bDh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/closed/wall/r_wall, +/area/atmos) +"bDi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/turf/closed/wall/r_wall, +/area/atmos) +"bDj" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bDk" = ( +/obj/structure/bookcase/random/nonfiction, +/turf/open/floor/plasteel/black, +/area/library) +"bDl" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bDm" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bDn" = ( +/obj/structure/bookcase/random/fiction, +/turf/open/floor/plasteel/black, +/area/library) +"bDo" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Mix Outlet Pump"; + on = 0 + }, +/turf/open/floor/plasteel/yellow/side{ + tag = "icon-yellow (EAST)"; + dir = 4 + }, +/area/atmos) +"bDp" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/atmos) +"bDq" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/open/space, +/area/space) +"bDr" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/obj/structure/grille, +/obj/machinery/meter, +/turf/closed/wall/r_wall, +/area/atmos) +"bDs" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + external_pressure_bound = 0; + frequency = 1441; + id_tag = "mix_in"; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine/vacuum, +/area/atmos) +"bDt" = ( +/obj/machinery/camera{ + c_tag = "Atmospherics Waste Tank" + }, +/turf/open/floor/engine/vacuum, +/area/atmos) +"bDu" = ( +/turf/open/floor/engine/vacuum, +/area/atmos) +"bDv" = ( +/obj/machinery/door/airlock/glass{ + autoclose = 0; + frequency = 1449; + heat_proof = 1; + icon_state = "door_locked"; + id_tag = "incinerator_airlock_exterior"; + locked = 1; + name = "Turbine Exterior Airlock"; + req_access_txt = "0"; + req_one_access_txt = "8;24" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bDw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 2; + req_access_txt = "8"; + req_one_access_txt = "0" + }, +/turf/open/floor/plating, +/area/toxins/mineral_storeroom) +"bDx" = ( +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 + }, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plating/warnplate/side, +/area/toxins/mineral_storeroom) +"bDy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9; + pixel_y = 0 + }, +/turf/closed/wall, +/area/toxins/mineral_storeroom) +"bDz" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/obj/item/weapon/storage/bag/ore, +/obj/item/weapon/storage/bag/ore, +/turf/open/floor/plasteel, +/area/toxins/mineral_storeroom) +"bDA" = ( +/turf/open/floor/plasteel/loadingarea{ + dir = 8 + }, +/area/toxins/mineral_storeroom) +"bDB" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "toxmineral" + }, +/obj/structure/plasticflaps, +/turf/open/floor/plating/warnplate{ + dir = 9 + }, +/area/toxins/mineral_storeroom) +"bDC" = ( +/obj/machinery/conveyor{ + dir = 10; + icon_state = "conveyor0"; + id = "toxmineral" + }, +/obj/machinery/light/small, +/turf/open/floor/plating/warnplate/corner{ + tag = "icon-warnplatecorner (EAST)"; + dir = 4 + }, +/area/toxins/mineral_storeroom) +"bDD" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/engine, +/area/maintenance/aft) +"bDE" = ( +/obj/effect/landmark{ + name = "revenantspawn" + }, +/turf/open/floor/engine, +/area/maintenance/aft) +"bDF" = ( +/turf/open/floor/engine, +/area/maintenance/aft) +"bDG" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/engine, +/area/maintenance/aft) +"bDH" = ( +/obj/structure/mineral_door/wood{ + name = "The Roosterdome" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bDI" = ( +/obj/structure/barricade/wooden, +/obj/structure/girder, +/turf/open/floor/plating, +/area/maintenance/aft) +"bDJ" = ( +/obj/item/weapon/bedsheet/medical, +/obj/structure/bed, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"bDK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"bDL" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/medical, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"bDM" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/dropper, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bDN" = ( +/obj/effect/landmark/start{ + name = "Virologist" + }, +/obj/structure/chair/office/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bDO" = ( +/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/weapon/storage/box/monkeycubes{ + layer = 3.1 + }, +/obj/item/stack/sheet/mineral/plasma{ + amount = 1; + layer = 3 + }, +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (EAST)"; + icon_state = "whitegreen"; + dir = 4 + }, +/area/medical/virology) +"bDP" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/medbay) +"bDQ" = ( +/obj/structure/shuttle/engine/propulsion/burst, +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"bDR" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "patientB"; + name = "privacy shutters" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/medbay) +"bDS" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 8 + }, +/area/medical/medbay) +"bDT" = ( +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/turf/open/space, +/area/space) +"bDU" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (EAST)"; + dir = 4 + }, +/area/medical/medbay) +"bDV" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/surgery) +"bDW" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/mask/surgical, +/obj/item/clothing/suit/apron/surgical, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 8 + }, +/area/medical/surgery) +"bDX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/medical/surgery) +"bDY" = ( +/obj/effect/landmark/start{ + name = "Medical Doctor" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/surgery) +"bDZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9; + pixel_y = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/surgery) +"bEa" = ( +/obj/structure/table, +/obj/item/weapon/surgical_drapes, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (EAST)"; + dir = 4 + }, +/area/medical/surgery) +"bEb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/yellow/corner, +/area/hallway/primary/aft) +"bEc" = ( +/turf/closed/wall, +/area/hallway/primary/aft) +"bEd" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/hallway/primary/aft) +"bEe" = ( +/obj/machinery/vending/cola, +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/hallway/primary/aft) +"bEf" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "applebush"; + layer = 4.1 + }, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/hallway/primary/aft) +"bEg" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plasteel/escape{ + dir = 9 + }, +/area/hallway/primary/aft) +"bEh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + icon_state = "intact"; + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/atmos) +"bEi" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/atmos) +"bEj" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/atmos) +"bEk" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/atmos) +"bEl" = ( +/obj/machinery/computer/atmos_control, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/atmos) +"bEm" = ( +/obj/machinery/computer/atmos_alert, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/atmos) +"bEn" = ( +/obj/machinery/meter{ + frequency = 1441; + id_tag = "waste_meter"; + name = "Waste Loop" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 8 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/atmos) +"bEo" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Distro to Waste"; + on = 0 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/atmos) +"bEp" = ( +/obj/machinery/meter{ + frequency = 1441; + id_tag = "distro_meter"; + name = "Distribution Loop" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/visible, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/atmos) +"bEq" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/visible{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/atmos) +"bEr" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Mix to Distro"; + on = 0 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/atmos) +"bEs" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bEt" = ( +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/space, +/area/space) +"bEu" = ( +/obj/machinery/door/poddoor{ + id = "chapelgun"; + name = "mass driver door" + }, +/turf/open/floor/plating, +/area/chapel/main{ + name = "Monastery" + }) +"bEv" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/atmos) +"bEw" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bEx" = ( +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/space, +/area/space) +"bEy" = ( +/obj/machinery/computer/atmos_control/tank{ + frequency = 1441; + input_tag = "mix_in"; + name = "Gas Mix Tank Control"; + output_tag = "mix_in"; + sensors = list("mix_sensor" = "Tank") + }, +/turf/open/floor/plasteel/yellow/side{ + tag = "icon-yellow (EAST)"; + dir = 4 + }, +/area/atmos) +"bEz" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/atmos) +"bEA" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating/airless, +/area/atmos) +"bEB" = ( +/obj/machinery/air_sensor{ + frequency = 1441; + id_tag = "mix_sensor" + }, +/turf/open/floor/engine/vacuum, +/area/atmos) +"bEC" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/engine/vacuum, +/area/atmos) +"bED" = ( +/obj/machinery/door/poddoor{ + id = "mixvent"; + name = "Starboard Vent" + }, +/turf/open/floor/engine/vacuum, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bEE" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 1; + frequency = 1441; + id = "inc_in" + }, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = -32 + }, +/turf/open/floor/engine/vacuum, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bEF" = ( +/obj/machinery/igniter{ + icon_state = "igniter0"; + id = "Incinerator"; + luminosity = 2; + on = 0 + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/engine/vacuum, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bEG" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 0; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine/vacuum, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bEH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = -32; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/toxins/mineral_storeroom) +"bEI" = ( +/obj/structure/closet/emcloset{ + anchored = 1; + desc = "It's a storage unit for emergency breath masks and O2 tanks, and is securely bolted in place."; + name = "anchored emergency closet" + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/toxins/mineral_storeroom) +"bEJ" = ( +/obj/machinery/door/poddoor{ + id = "toxinsdriver"; + name = "toxins launcher bay door" + }, +/turf/open/floor/plating/warnplate/side, +/area/toxins/mineral_storeroom) +"bEK" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/engine, +/area/maintenance/aft) +"bEL" = ( +/obj/item/stack/spacecash/c10, +/turf/open/floor/plasteel/darkwarning{ + dir = 4 + }, +/area/maintenance/aft) +"bEM" = ( +/obj/machinery/atmospherics/components/unary/vent_pump, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"bEN" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"bEO" = ( +/obj/structure/table, +/obj/structure/disposalpipe/segment, +/obj/structure/table, +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/glasses/hud/health, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bEP" = ( +/turf/open/floor/plasteel/whitegreen/corner, +/area/medical/virology) +"bEQ" = ( +/obj/structure/table/glass, +/obj/item/weapon/storage/box/beakers{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/weapon/storage/box/syringes, +/obj/structure/reagent_dispensers/virusfood{ + density = 0; + pixel_x = 32; + pixel_y = 0 + }, +/obj/item/weapon/reagent_containers/spray/cleaner, +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (SOUTHEAST)"; + icon_state = "whitegreen"; + dir = 6 + }, +/area/medical/virology) +"bER" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 10 + }, +/area/medical/medbay) +"bES" = ( +/obj/machinery/light, +/obj/item/weapon/soap/nanotrasen, +/obj/item/clothing/neck/stethoscope, +/obj/item/weapon/gun/syringe, +/obj/structure/table/glass, +/turf/open/floor/plasteel/whiteblue/side, +/area/medical/medbay) +"bET" = ( +/obj/structure/closet/l3closet, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 6 + }, +/area/medical/medbay) +"bEU" = ( +/obj/structure/table, +/obj/item/weapon/hemostat, +/obj/item/stack/medical/gauze, +/turf/open/floor/plasteel/whiteblue, +/area/medical/surgery) +"bEV" = ( +/obj/structure/table, +/obj/item/weapon/surgicaldrill, +/turf/open/floor/plasteel/whiteblue, +/area/medical/surgery) +"bEW" = ( +/obj/structure/table, +/obj/item/weapon/scalpel{ + pixel_y = 12 + }, +/obj/item/weapon/circular_saw, +/obj/machinery/light, +/turf/open/floor/plasteel/whiteblue, +/area/medical/surgery) +"bEX" = ( +/obj/structure/table, +/obj/item/weapon/cautery{ + pixel_x = 4 + }, +/obj/item/weapon/razor{ + pixel_y = 5 + }, +/turf/open/floor/plasteel/whiteblue, +/area/medical/surgery) +"bEY" = ( +/obj/structure/table, +/obj/item/weapon/retractor, +/turf/open/floor/plasteel/whiteblue, +/area/medical/surgery) +"bEZ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bFa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bFb" = ( +/obj/machinery/camera{ + c_tag = "Aft Primary Hallway Atmospherics"; + dir = 2; + network = list("SS13"); + pixel_x = 0; + pixel_y = 0; + start_active = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + dir = 8; + freerange = 1; + name = "Station Intercom (Telecoms)"; + pixel_x = 0; + pixel_y = 26 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bFc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bFd" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plasteel/escape{ + dir = 10 + }, +/area/hallway/primary/aft) +"bFe" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible, +/turf/closed/wall/r_wall, +/area/atmos) +"bFf" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "External to Filter"; + on = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bFg" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bFh" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bFi" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/atmos) +"bFj" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/atmos) +"bFk" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Air to Distro"; + on = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bFl" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/atmos) +"bFm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/closed/wall, +/area/maintenance/port{ + name = "Monastery Maintenance" + }) +"bFn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/port{ + name = "Monastery Maintenance" + }) +"bFo" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/atmos) +"bFp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/closed/wall, +/area/maintenance/port{ + name = "Monastery Maintenance" + }) +"bFq" = ( +/obj/machinery/atmospherics/pipe/manifold/green/visible{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bFr" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side{ + tag = "icon-yellow (EAST)"; + dir = 4 + }, +/area/atmos) +"bFs" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/atmos) +"bFt" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/space, +/area/space) +"bFu" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8; + frequency = 1441; + id = "mix_in"; + pixel_y = 1 + }, +/turf/open/floor/engine/vacuum, +/area/atmos) +"bFv" = ( +/obj/structure/cable/yellow, +/obj/structure/cable/yellow{ + d2 = 2; + icon_state = "0-2" + }, +/obj/machinery/camera{ + c_tag = "Turbine Chamber"; + dir = 4; + network = list("Turbine") + }, +/obj/machinery/power/compressor{ + comp_id = "incineratorturbine"; + dir = 1; + luminosity = 2 + }, +/turf/open/floor/engine/vacuum, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bFw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plating, +/area/toxins/mineral_storeroom) +"bFx" = ( +/obj/item/stack/medical/bruise_pack, +/turf/open/floor/plating, +/area/maintenance/aft) +"bFy" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/engine, +/area/maintenance/aft) +"bFz" = ( +/obj/structure/window/reinforced, +/turf/open/floor/engine, +/area/maintenance/aft) +"bFA" = ( +/obj/structure/window/reinforced, +/mob/living/simple_animal/chicken{ + name = "Killer Cluck" + }, +/turf/open/floor/engine, +/area/maintenance/aft) +"bFB" = ( +/obj/machinery/door/window/eastright{ + base_state = "left"; + icon_state = "left"; + name = "Arena" + }, +/obj/structure/window/reinforced, +/obj/structure/chair/stool, +/turf/open/floor/engine, +/area/maintenance/aft) +"bFC" = ( +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/maintenance/aft) +"bFD" = ( +/obj/structure/table/glass, +/obj/item/weapon/reagent_containers/dropper, +/obj/item/weapon/reagent_containers/syringe, +/obj/item/weapon/reagent_containers/glass/beaker, +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"bFE" = ( +/obj/structure/table/glass, +/obj/item/weapon/folder/white{ + pixel_y = 4 + }, +/obj/item/weapon/pen/red, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"bFF" = ( +/obj/structure/table/glass, +/obj/item/weapon/folder/white{ + pixel_y = 4 + }, +/obj/item/weapon/pen/red, +/obj/machinery/light/small, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"bFG" = ( +/obj/structure/table/glass, +/obj/item/weapon/reagent_containers/dropper, +/obj/item/weapon/reagent_containers/syringe, +/obj/item/weapon/reagent_containers/glass/beaker, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"bFH" = ( +/obj/structure/table, +/obj/structure/disposalpipe/segment, +/obj/machinery/reagentgrinder, +/turf/open/floor/plasteel/whitegreen/side, +/area/medical/virology) +"bFI" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/table, +/obj/item/weapon/paper_bin{ + layer = 2.9; + pixel_x = 0; + pixel_y = 0; + tag = "every single paper bin is edited to this" + }, +/obj/item/weapon/pen/red, +/turf/open/floor/plasteel/whitegreen/side, +/area/medical/virology) +"bFJ" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21" + }, +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (SOUTHEAST)"; + icon_state = "whitegreen"; + dir = 6 + }, +/area/medical/virology) +"bFK" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/maintenance/aft) +"bFL" = ( +/obj/structure/closet/firecloset, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bFM" = ( +/obj/structure/chair, +/turf/open/floor/plating, +/area/maintenance/aft) +"bFN" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/aft) +"bFO" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bFP" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bFQ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/yellow/corner{ + dir = 8 + }, +/area/hallway/primary/aft) +"bFR" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8"; + tag = "" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bFS" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bFT" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bFU" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/plasteel/arrival{ + tag = "icon-arrival (NORTHWEST)"; + icon_state = "arrival"; + dir = 9 + }, +/area/hallway/primary/aft) +"bFV" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 + }, +/obj/machinery/meter, +/turf/closed/wall/r_wall, +/area/atmos) +"bFW" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Air to External"; + on = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bFX" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/atmos) +"bFY" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bFZ" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel, +/area/atmos) +"bGa" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + initialize_directions = 11 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bGb" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 0; + name = "Mix to Port"; + on = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bGc" = ( +/obj/structure/chair/wood/normal{ + icon_state = "wooden_chair"; + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/library) +"bGd" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bGe" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Pure to Port" + }, +/turf/open/floor/plasteel, +/area/atmos) +"bGf" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Unfiltered to Mix"; + on = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bGg" = ( +/turf/open/floor/plasteel/yellow/side{ + tag = "icon-yellow (EAST)"; + dir = 4 + }, +/area/atmos) +"bGh" = ( +/obj/structure/cable/yellow, +/obj/machinery/power/turbine{ + luminosity = 2 + }, +/turf/open/floor/engine/vacuum, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bGi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 1; + req_access_txt = "8"; + req_one_access_txt = "0" + }, +/turf/open/floor/plating, +/area/toxins/mineral_storeroom) +"bGj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/carpet, +/area/library) +"bGk" = ( +/obj/structure/chair/comfy/black{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bGl" = ( +/obj/structure/chair/stool, +/turf/open/floor/plating, +/area/maintenance/aft) +"bGm" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/aft) +"bGn" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall/r_wall, +/area/medical/virology) +"bGo" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bGp" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bGq" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bGr" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bGs" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bGt" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bGu" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/arrival{ + dir = 10 + }, +/area/hallway/primary/aft) +"bGv" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/atmos) +"bGw" = ( +/turf/open/floor/plasteel/yellow/side, +/area/atmos) +"bGx" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/yellow/side, +/area/atmos) +"bGy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side, +/area/atmos) +"bGz" = ( +/obj/machinery/space_heater, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Atmospherics Monitoring"; + dir = 1; + network = list("SS13") + }, +/turf/open/floor/plasteel/yellow/side, +/area/atmos) +"bGA" = ( +/obj/machinery/space_heater, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side, +/area/atmos) +"bGB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bGC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bGD" = ( +/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/device/multitool{ + layer = 4 + }, +/turf/open/floor/plasteel/yellow/side, +/area/atmos) +"bGE" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/weapon/storage/belt/utility, +/obj/item/device/t_scanner, +/obj/item/device/t_scanner, +/obj/item/device/t_scanner, +/turf/open/floor/plasteel/yellow/side, +/area/atmos) +"bGF" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50; + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/stack/sheet/glass{ + layer = 3.1 + }, +/obj/item/stack/rods{ + amount = 50; + layer = 3.2 + }, +/turf/open/floor/plasteel/yellow/side, +/area/atmos) +"bGG" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bGH" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4; + initialize_directions = 11 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bGI" = ( +/turf/open/floor/plasteel, +/area/atmos) +"bGJ" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bGK" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bGL" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "N2O Outlet Pump"; + on = 0 + }, +/turf/open/floor/plasteel/yellow/side{ + tag = "icon-yellow (EAST)"; + dir = 4 + }, +/area/atmos) +"bGM" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + external_pressure_bound = 0; + frequency = 1441; + id_tag = "n2o_out"; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine/n2o, +/area/atmos) +"bGN" = ( +/turf/open/floor/engine/n2o, +/area/atmos) +"bGO" = ( +/obj/structure/sign/fire{ + pixel_x = 0; + pixel_y = 0 + }, +/turf/closed/wall/r_wall, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bGP" = ( +/obj/machinery/door/poddoor{ + id = "turbinevent"; + name = "Aft Vent" + }, +/turf/open/floor/engine/vacuum, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"bGQ" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/space, +/area/space) +"bGR" = ( +/obj/structure/sign/poster{ + pixel_x = 0; + pixel_y = -32 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bGS" = ( +/obj/item/trash/chips, +/obj/effect/decal/cleanable/deadcockroach, +/turf/open/floor/plating, +/area/maintenance/aft) +"bGT" = ( +/obj/structure/table, +/obj/item/weapon/paper, +/obj/item/weapon/pen, +/turf/open/floor/plating, +/area/maintenance/aft) +"bGU" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bGV" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bGW" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"bGX" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + tag = "icon-manifold (NORTH)"; + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bGY" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bGZ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, +/mob/living/simple_animal/mouse/gray, +/turf/open/floor/plating, +/area/maintenance/aft) +"bHa" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/aft) +"bHb" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bHc" = ( +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"bHd" = ( +/obj/structure/table, +/obj/item/trash/chips, +/turf/open/floor/plating, +/area/maintenance/aft) +"bHe" = ( +/turf/closed/wall, +/area/storage/tech) +"bHf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/storage/tech) +"bHg" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 8 + }, +/area/hallway/primary/aft) +"bHh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bHi" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/drinks/soda_cans/lemon_lime, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bHj" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/fyellow, +/obj/item/weapon/wrench, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bHk" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bHl" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel/yellow/corner, +/area/hallway/primary/aft) +"bHm" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/atmos) +"bHn" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/airlock/glass_atmos{ + name = "Atmospherics Monitoring"; + req_access_txt = "24" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/atmos) +"bHo" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 0; + name = "Waste In"; + on = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bHp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/atmos) +"bHq" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 0; + name = "Air to Port"; + on = 0 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bHr" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 0; + name = "Mix to Port"; + on = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bHs" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/floor/plasteel, +/area/atmos) +"bHt" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/plasteel, +/area/atmos) +"bHu" = ( +/obj/machinery/computer/atmos_control/tank{ + frequency = 1441; + input_tag = "n2o_in"; + name = "Nitrous Oxide Supply Control"; + output_tag = "n2o_out"; + sensors = list("n2o_sensor" = "Tank") + }, +/turf/open/floor/plasteel/yellow/side{ + tag = "icon-yellow (EAST)"; + dir = 4 + }, +/area/atmos) +"bHv" = ( +/obj/machinery/air_sensor{ + frequency = 1441; + id_tag = "n2o_sensor" + }, +/turf/open/floor/engine/n2o, +/area/atmos) +"bHw" = ( +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/turf/open/floor/engine/n2o, +/area/atmos) +"bHx" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/engine/n2o, +/area/atmos) +"bHy" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/aft) +"bHz" = ( +/obj/structure/closet/emcloset, +/obj/effect/decal/cleanable/deadcockroach, +/turf/open/floor/plating, +/area/maintenance/aft) +"bHA" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plating, +/area/maintenance/aft) +"bHB" = ( +/obj/structure/rack, +/obj/item/weapon/book/manual/detective, +/obj/item/clothing/head/that, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"bHC" = ( +/obj/structure/girder, +/turf/closed/wall, +/area/maintenance/aft) +"bHD" = ( +/obj/item/trash/raisins, +/turf/open/floor/plating, +/area/maintenance/aft) +"bHE" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bHF" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bHG" = ( +/turf/open/floor/plasteel/black, +/area/engine/gravity_generator) +"bHH" = ( +/obj/machinery/camera{ + c_tag = "Gravity Generator"; + dir = 2; + network = list("SS13") + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/darkwarning, +/area/engine/gravity_generator) +"bHI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkwarning, +/area/engine/gravity_generator) +"bHJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/darkwarning/corner{ + tag = "icon-black_warn_corner (NORTH)"; + icon_state = "black_warn_corner"; + dir = 1 + }, +/area/engine/gravity_generator) +"bHK" = ( +/turf/closed/wall/r_wall, +/area/storage/tech) +"bHL" = ( +/obj/structure/table, +/obj/item/device/flashlight{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/item/device/flashlight{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/item/device/assembly/flash/handheld, +/obj/item/device/assembly/flash/handheld, +/obj/effect/decal/cleanable/cobweb, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/turf/open/floor/plasteel/black, +/area/storage/tech) +"bHM" = ( +/obj/structure/table, +/obj/item/device/aicard, +/obj/item/weapon/aiModule/reset, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/airalarm{ + dir = 2; + pixel_y = 22 + }, +/turf/open/floor/plasteel/black, +/area/storage/tech) +"bHN" = ( +/obj/structure/table, +/obj/machinery/cell_charger{ + pixel_y = 5 + }, +/obj/item/weapon/stock_parts/cell/high/plus, +/turf/open/floor/plasteel/black, +/area/storage/tech) +"bHO" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/circuitboard/computer/pandemic{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/circuitboard/computer/rdconsole, +/obj/item/weapon/circuitboard/machine/rdserver{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/weapon/circuitboard/machine/destructive_analyzer, +/obj/item/weapon/circuitboard/machine/protolathe, +/obj/item/weapon/circuitboard/computer/aifixer, +/obj/item/weapon/circuitboard/computer/teleporter, +/obj/item/weapon/circuitboard/machine/circuit_imprinter, +/obj/item/weapon/circuitboard/machine/mechfab, +/obj/structure/sign/poster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/black, +/area/storage/tech) +"bHP" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/circuitboard/computer/mining, +/obj/item/weapon/circuitboard/machine/autolathe{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/weapon/circuitboard/computer/arcade/battle, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Tech Storage"; + dir = 2; + network = list("SS13") + }, +/obj/item/weapon/circuitboard/computer/shuttle/monastery_shuttle, +/turf/open/floor/plasteel/black, +/area/storage/tech) +"bHQ" = ( +/obj/structure/rack, +/obj/item/weapon/circuitboard/machine/telecomms/processor, +/obj/item/weapon/circuitboard/machine/telecomms/receiver, +/obj/item/weapon/circuitboard/machine/telecomms/server, +/obj/item/weapon/circuitboard/machine/telecomms/bus, +/obj/item/weapon/circuitboard/machine/telecomms/broadcaster, +/obj/item/weapon/circuitboard/computer/message_monitor{ + pixel_y = -5 + }, +/turf/open/floor/plasteel/black, +/area/storage/tech) +"bHR" = ( +/obj/structure/rack, +/obj/item/weapon/electronics/airalarm, +/obj/item/weapon/electronics/airlock, +/obj/item/weapon/electronics/apc, +/obj/item/weapon/electronics/firealarm, +/obj/item/weapon/electronics/firelock, +/obj/item/weapon/electronics/tracker, +/obj/structure/sign/poster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/black, +/area/storage/tech) +"bHS" = ( +/obj/machinery/computer/arcade, +/turf/open/floor/plasteel/black, +/area/storage/tech) +"bHT" = ( +/obj/machinery/vending/assist, +/turf/open/floor/plasteel/black, +/area/storage/tech) +"bHU" = ( +/obj/machinery/power/apc{ + name = "Aft Hall APC"; + dir = 8; + pixel_x = -25; + pixel_y = 1 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/yellow/corner{ + dir = 8 + }, +/area/hallway/primary/aft) +"bHV" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=Bar2"; + location = "Eng" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bHW" = ( +/turf/open/floor/plasteel/yellow/corner, +/area/hallway/primary/aft) +"bHX" = ( +/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"; + layer = 2.9; + name = "atmos blast door" + }, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/atmos) +"bHY" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/effect/landmark/start{ + name = "Atmospheric Technician" + }, +/turf/open/floor/plasteel, +/area/atmos) +"bHZ" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bIa" = ( +/obj/structure/tank_dispenser, +/turf/open/floor/plasteel, +/area/atmos) +"bIb" = ( +/obj/machinery/pipedispenser, +/turf/open/floor/plasteel, +/area/atmos) +"bIc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel, +/area/atmos) +"bId" = ( +/obj/structure/closet/secure_closet/atmospherics, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/atmos) +"bIe" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/plasteel/bot{ + dir = 2 + }, +/area/atmos) +"bIf" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/turf/open/floor/plasteel/bot{ + dir = 2 + }, +/area/atmos) +"bIg" = ( +/obj/machinery/atmospherics/components/trinary/filter{ + dir = 1; + filter_type = "n2o"; + on = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bIh" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8; + frequency = 1441; + id = "n2o_in"; + pixel_y = 1 + }, +/turf/open/floor/engine/n2o, +/area/atmos) +"bIi" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"bIj" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 9 + }, +/turf/open/space, +/area/space) +"bIk" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/library) +"bIl" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/maintenance/aft) +"bIm" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/closed/wall, +/area/maintenance/aft) +"bIn" = ( +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/engine/gravity_generator) +"bIo" = ( +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/gravity_generator) +"bIp" = ( +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/engine/gravity_generator) +"bIq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/darkwarning{ + dir = 8 + }, +/area/engine/gravity_generator) +"bIr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"bIs" = ( +/obj/structure/closet/radiation, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1; + initialize_directions = 11 + }, +/obj/machinery/airalarm{ + dir = 2; + pixel_y = 22 + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/engine/gravity_generator) +"bIt" = ( +/obj/structure/closet/radiation, +/obj/machinery/camera{ + c_tag = "Gravity Generator Foyer"; + dir = 2; + network = list("SS13") + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = 26 + }, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (NORTHEAST)"; + dir = 5 + }, +/area/engine/gravity_generator) +"bIu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/storage/tech) +"bIv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'RADIOACTIVE AREA'"; + icon_state = "radiation"; + name = "RADIOACTIVE AREA"; + pixel_x = -32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/darkwarning/corner{ + tag = "icon-black_warn_corner (NORTH)"; + icon_state = "black_warn_corner"; + dir = 1 + }, +/area/storage/tech) +"bIw" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/chair/office/dark{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/storage/tech) +"bIx" = ( +/turf/open/floor/plasteel/black, +/area/storage/tech) +"bIy" = ( +/obj/machinery/light_switch{ + pixel_x = 25 + }, +/turf/open/floor/plasteel/black, +/area/storage/tech) +"bIz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bIA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bIB" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1; + initialize_directions = 11 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bIC" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/yellow/corner, +/area/hallway/primary/aft) +"bID" = ( +/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"; + layer = 2.9; + name = "atmos blast door" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/atmos) +"bIE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/effect/landmark/start{ + name = "Atmospheric Technician" + }, +/turf/open/floor/plasteel, +/area/atmos) +"bIF" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bIG" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/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/requests_console{ + department = "Atmospherics"; + departmentType = 4; + name = "Atmos RC"; + pixel_x = 30; + pixel_y = 0 + }, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel, +/area/atmos) +"bIH" = ( +/obj/machinery/pipedispenser/disposal, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Atmospherics Central"; + dir = 4; + network = list("SS13") + }, +/turf/open/floor/plasteel, +/area/atmos) +"bII" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bIJ" = ( +/obj/machinery/suit_storage_unit/atmos, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/atmos) +"bIK" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4; + initialize_directions = 11 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/atmos) +"bIL" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/atmos) +"bIM" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/atmos) +"bIN" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side{ + tag = "icon-yellow (EAST)"; + dir = 4 + }, +/area/atmos) +"bIO" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/obj/item/weapon/wrench, +/turf/open/floor/plating, +/area/maintenance/aft) +"bIP" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/maintenance/aft) +"bIQ" = ( +/obj/item/weapon/broken_bottle, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/aft) +"bIR" = ( +/obj/effect/decal/cleanable/ash, +/turf/open/floor/plating, +/area/maintenance/aft) +"bIS" = ( +/obj/structure/closet, +/obj/item/weapon/restraints/handcuffs/cable, +/turf/open/floor/plating, +/area/maintenance/aft) +"bIT" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering{ + name = "Gravity Generator"; + req_access_txt = "11" + }, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/engine/gravity_generator) +"bIU" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/gravity_generator) +"bIV" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (EAST)"; + dir = 4 + }, +/area/engine/gravity_generator) +"bIW" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering{ + name = "Gravity Generator"; + req_access_txt = "11" + }, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/storage/tech) +"bIX" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/black, +/area/storage/tech) +"bIY" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/storage/tech) +"bIZ" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/circuitboard/computer/cloning{ + pixel_x = 0 + }, +/obj/item/weapon/circuitboard/computer/med_data{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/weapon/circuitboard/machine/clonescanner, +/obj/item/weapon/circuitboard/machine/clonepod, +/obj/item/weapon/circuitboard/computer/scan_consolenew, +/turf/open/floor/plasteel/black, +/area/storage/tech) +"bJa" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/circuitboard/computer/secure_data{ + pixel_x = -2; + pixel_y = 2 + }, +/obj/item/weapon/circuitboard/computer/security{ + pixel_x = 1; + pixel_y = -1 + }, +/turf/open/floor/plasteel/black, +/area/storage/tech) +"bJb" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/circuitboard/computer/powermonitor{ + pixel_x = -2; + pixel_y = 2 + }, +/obj/item/weapon/circuitboard/computer/stationalert{ + pixel_x = 1; + pixel_y = -1 + }, +/obj/item/weapon/circuitboard/computer/atmos_alert{ + pixel_x = 3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/black, +/area/storage/tech) +"bJc" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/black, +/area/storage/tech) +"bJd" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/storage/tech) +"bJe" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4"; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/black, +/area/storage/tech) +"bJf" = ( +/obj/machinery/door/airlock/engineering{ + name = "Tech Storage"; + req_access_txt = "23" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/storage/tech) +"bJg" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 8 + }, +/area/hallway/primary/aft) +"bJh" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bJi" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bJj" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bJk" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8"; + tag = "" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bJl" = ( +/obj/structure/plasticflaps{ + opacity = 1 + }, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/atmos) +"bJm" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=4"; + freq = 1400; + location = "Atmospherics" + }, +/turf/open/floor/plasteel/loadingarea{ + dir = 4 + }, +/area/atmos) +"bJn" = ( +/obj/structure/disposalpipe/sortjunction{ + dir = 2; + icon_state = "pipe-j2s"; + sortType = 6 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bJo" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bJp" = ( +/obj/machinery/pipedispenser/disposal/transit_tube, +/turf/open/floor/plasteel, +/area/atmos) +"bJq" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4; + initialize_directions = 11 + }, +/obj/item/weapon/wrench, +/turf/open/floor/plasteel, +/area/atmos) +"bJr" = ( +/obj/machinery/camera{ + c_tag = "Atmospherics Starboard"; + dir = 8; + network = list("SS13") + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Plasma Outlet Pump"; + on = 0 + }, +/turf/open/floor/plasteel/yellow/side{ + tag = "icon-yellow (EAST)"; + dir = 4 + }, +/area/atmos) +"bJs" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/atmos) +"bJt" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + external_pressure_bound = 0; + frequency = 1441; + id_tag = "tox_out"; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine/plasma, +/area/atmos) +"bJu" = ( +/turf/open/floor/engine/plasma, +/area/atmos) +"bJv" = ( +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/engine/plasma, +/area/atmos) +"bJw" = ( +/obj/structure/disposalpipe/junction{ + dir = 2; + icon_state = "pipe-y" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/aft) +"bJx" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating/airless, +/area/maintenance/aft) +"bJy" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/chair/stool, +/turf/open/floor/plating, +/area/maintenance/aft) +"bJz" = ( +/obj/item/stack/sheet/cardboard{ + amount = 14 + }, +/obj/item/weapon/vending_refill/cola, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bJA" = ( +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics Maintenance"; + req_access_txt = "12;24" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bJB" = ( +/obj/machinery/atmospherics/components/binary/valve, +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bJC" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Air Out"; + on = 1 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bJD" = ( +/obj/item/weapon/picket_sign, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/aft) +"bJE" = ( +/obj/structure/bonfire, +/turf/open/floor/plating, +/area/maintenance/aft) +"bJF" = ( +/obj/structure/closet, +/obj/item/weapon/cigbutt/cigarbutt, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/aft) +"bJG" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/aft) +"bJH" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/aft) +"bJI" = ( +/obj/machinery/gravity_generator/main/station, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/gravity_generator) +"bJJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/darkwarning{ + dir = 8 + }, +/area/engine/gravity_generator) +"bJK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"bJL" = ( +/obj/structure/chair/office/light, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/engine/gravity_generator) +"bJM" = ( +/obj/machinery/power/terminal, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/engine/gravity_generator) +"bJN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/storage/tech) +"bJO" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'RADIOACTIVE AREA'"; + icon_state = "radiation"; + name = "RADIOACTIVE AREA"; + pixel_x = -32; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkwarning/corner{ + tag = "icon-black_warn_corner (EAST)"; + icon_state = "black_warn_corner"; + dir = 4 + }, +/area/storage/tech) +"bJP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/item/device/radio/beacon, +/turf/open/floor/plasteel/black, +/area/storage/tech) +"bJQ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/storage/tech) +"bJR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/storage/tech) +"bJS" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/black, +/area/storage/tech) +"bJT" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9; + pixel_y = 0 + }, +/turf/open/floor/plasteel/black, +/area/storage/tech) +"bJU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/yellow/corner, +/area/hallway/primary/aft) +"bJV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/corner, +/area/hallway/primary/aft) +"bJW" = ( +/obj/machinery/camera{ + c_tag = "Aft Primary Hallway Engineering"; + dir = 1; + network = list("SS13"); + pixel_x = 0; + pixel_y = 0; + start_active = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/corner, +/area/hallway/primary/aft) +"bJX" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/yellow/corner, +/area/hallway/primary/aft) +"bJY" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-02" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/yellow/corner, +/area/hallway/primary/aft) +"bJZ" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/airlock/glass_atmos{ + name = "Atmospherics Monitoring"; + req_access_txt = "24" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/atmos) +"bKa" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 0; + name = "Port to Filter"; + on = 0 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bKb" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/obj/structure/chair/stool, +/turf/open/floor/plasteel, +/area/atmos) +"bKc" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/heater{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bKd" = ( +/obj/machinery/computer/atmos_control/tank{ + frequency = 1441; + input_tag = "tox_in"; + name = "Plasma Supply Control"; + output_tag = "tox_out"; + sensors = list("tox_sensor" = "Tank") + }, +/turf/open/floor/plasteel/yellow/side{ + tag = "icon-yellow (EAST)"; + dir = 4 + }, +/area/atmos) +"bKe" = ( +/obj/machinery/air_sensor{ + frequency = 1441; + id_tag = "tox_sensor" + }, +/turf/open/floor/engine/plasma, +/area/atmos) +"bKf" = ( +/obj/machinery/portable_atmospherics/canister/toxins, +/turf/open/floor/engine/plasma, +/area/atmos) +"bKg" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/engine/plasma, +/area/atmos) +"bKh" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/mousetraps, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/aft) +"bKi" = ( +/obj/structure/table, +/obj/item/stack/cable_coil, +/obj/item/weapon/extinguisher, +/turf/open/floor/plating, +/area/maintenance/aft) +"bKj" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1; + name = "Connector Port (Air Supply)" + }, +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/turf/open/floor/plating, +/area/maintenance/aft) +"bKk" = ( +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bKl" = ( +/obj/structure/grille/broken, +/obj/structure/piano, +/turf/open/floor/plating, +/area/maintenance/aft) +"bKm" = ( +/obj/item/weapon/reagent_containers/food/snacks/beans, +/turf/open/floor/plating, +/area/maintenance/aft) +"bKn" = ( +/obj/structure/closet, +/obj/item/weapon/shard, +/obj/item/stack/spacecash/c10, +/turf/open/floor/plating, +/area/maintenance/aft) +"bKo" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/aft) +"bKp" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel/darkwarning{ + dir = 1 + }, +/area/engine/gravity_generator) +"bKq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkwarning{ + dir = 1 + }, +/area/engine/gravity_generator) +"bKr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9; + pixel_y = 0 + }, +/turf/open/floor/plasteel/darkwarning/corner{ + tag = "icon-black_warn_corner (EAST)"; + icon_state = "black_warn_corner"; + dir = 4 + }, +/area/engine/gravity_generator) +"bKs" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Gravity Generator APC"; + pixel_x = -25; + pixel_y = 1 + }, +/obj/structure/table, +/obj/item/weapon/paper/gravity_gen{ + layer = 3 + }, +/obj/item/weapon/pen/blue, +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/light, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/engine/gravity_generator) +"bKt" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/engine/gravity_generator) +"bKu" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/turf/open/floor/plasteel/black, +/area/storage/tech) +"bKv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/storage/tech) +"bKw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/closet/crate/engineering/electrical, +/obj/item/stack/cable_coil, +/obj/item/stack/cable_coil, +/obj/item/weapon/electronics/apc, +/obj/item/weapon/electronics/airalarm, +/obj/item/weapon/electronics/airlock, +/turf/open/floor/plasteel/black, +/area/storage/tech) +"bKx" = ( +/obj/structure/rack, +/obj/item/weapon/stock_parts/subspace/filter, +/obj/item/weapon/stock_parts/subspace/filter, +/obj/item/weapon/stock_parts/subspace/treatment, +/obj/item/weapon/stock_parts/subspace/treatment, +/obj/item/weapon/stock_parts/subspace/transmitter, +/obj/item/weapon/stock_parts/subspace/transmitter, +/turf/open/floor/plasteel/black, +/area/storage/tech) +"bKy" = ( +/obj/structure/rack, +/obj/item/weapon/stock_parts/subspace/ansible, +/obj/item/weapon/stock_parts/subspace/ansible, +/obj/item/weapon/stock_parts/subspace/crystal, +/obj/item/weapon/stock_parts/subspace/crystal, +/obj/machinery/light, +/turf/open/floor/plasteel/black, +/area/storage/tech) +"bKz" = ( +/obj/structure/rack, +/obj/item/weapon/stock_parts/subspace/amplifier, +/obj/item/weapon/stock_parts/subspace/amplifier, +/obj/item/weapon/stock_parts/subspace/analyzer, +/obj/item/weapon/stock_parts/subspace/analyzer, +/turf/open/floor/plasteel/black, +/area/storage/tech) +"bKA" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/storage/toolbox/electrical{ + pixel_x = 2; + pixel_y = 4 + }, +/obj/item/clothing/gloves/color/yellow, +/obj/item/device/t_scanner, +/turf/open/floor/plasteel/black, +/area/storage/tech) +"bKB" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/storage/toolbox/electrical{ + pixel_x = 2; + pixel_y = 4 + }, +/obj/item/device/multitool, +/obj/item/clothing/glasses/meson, +/obj/machinery/requests_console{ + department = "Tech storage"; + pixel_x = 0; + pixel_y = -32 + }, +/turf/open/floor/plasteel/black, +/area/storage/tech) +"bKC" = ( +/obj/structure/closet/crate{ + name = "solar pack crate" + }, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/weapon/circuitboard/computer/solar_control, +/obj/item/weapon/electronics/tracker, +/obj/item/weapon/paper/solar, +/obj/machinery/power/apc{ + dir = 2; + name = "Tech Storage APC"; + pixel_x = 0; + pixel_y = -24 + }, +/obj/structure/cable, +/turf/open/floor/plasteel/black, +/area/storage/tech) +"bKD" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/checkpoint/engineering) +"bKE" = ( +/turf/closed/wall, +/area/security/checkpoint/engineering) +"bKF" = ( +/turf/closed/wall, +/area/engine/engineering) +"bKG" = ( +/obj/machinery/door/airlock/engineering{ + cyclelinkeddir = 2; + name = "Engineering"; + req_one_access_txt = "10;24" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bKH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/engine/engineering) +"bKI" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/atmos) +"bKJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/atmos) +"bKK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/structure/sign/atmosplaque{ + pixel_y = 32 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Atmospherics Entrance"; + dir = 2; + network = list("SS13") + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/atmos) +"bKL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = 29 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/atmos) +"bKM" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible, +/turf/open/floor/plasteel, +/area/atmos) +"bKN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = 30; + pixel_y = 26 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bKO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/structure/closet/wardrobe/atmospherics_yellow, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/atmos) +"bKP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/structure/reagent_dispensers/watertank/high, +/obj/structure/fireaxecabinet{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/atmos) +"bKQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/camera{ + c_tag = "Atmospherics Mixing"; + dir = 2; + network = list("SS13") + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/atmos) +"bKR" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Port to Filter"; + on = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bKS" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/obj/item/weapon/cigbutt, +/turf/open/floor/plasteel, +/area/atmos) +"bKT" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bKU" = ( +/obj/machinery/atmospherics/components/trinary/filter{ + dir = 1; + filter_type = "plasma"; + on = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bKV" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/atmos) +"bKW" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8; + frequency = 1441; + id = "tox_in"; + pixel_y = 1 + }, +/turf/open/floor/engine/plasma, +/area/atmos) +"bKX" = ( +/obj/item/weapon/cigbutt/cigarbutt, +/turf/open/floor/plating, +/area/maintenance/aft) +"bKY" = ( +/obj/structure/sign/securearea, +/turf/closed/wall/r_wall, +/area/storage/tech) +"bKZ" = ( +/obj/machinery/door/airlock/highsecurity{ + name = "Secure Tech Storage"; + req_access_txt = "19;23" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/storage/tech) +"bLa" = ( +/obj/structure/sign/securearea, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/storage/tech) +"bLb" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/wiki/security_space_law, +/obj/machinery/camera{ + c_tag = "Engineering Security Post"; + dir = 4; + network = list("SS13") + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23; + pixel_y = 0 + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/checkpoint/engineering) +"bLc" = ( +/obj/machinery/computer/secure_data, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/checkpoint/engineering) +"bLd" = ( +/obj/machinery/computer/secure_data, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/checkpoint/engineering) +"bLe" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 0; + pixel_y = 28 + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/engine/engineering) +"bLf" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/engine/engineering) +"bLg" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Engineering Access" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = 24 + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/engine/engineering) +"bLh" = ( +/obj/machinery/door/poddoor/preopen{ + id = "atmos"; + name = "atmos blast door" + }, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/engine/engineering) +"bLi" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bLj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bLk" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bLl" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "N2 to Pure"; + on = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bLm" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bLn" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/space) +"bLo" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/libraryscanner, +/turf/open/floor/plasteel/black, +/area/library) +"bLp" = ( +/obj/machinery/newscaster{ + pixel_x = -32; + pixel_y = -32 + }, +/turf/open/floor/carpet, +/area/library) +"bLq" = ( +/obj/structure/closet/crate/bin, +/turf/open/floor/plasteel/black, +/area/library) +"bLr" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side{ + tag = "icon-yellow (EAST)"; + dir = 4 + }, +/area/atmos) +"bLs" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plating, +/area/atmos) +"bLt" = ( +/obj/docking_port/stationary{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 24; + id = "syndicate_southmaint"; + name = "south maintenance airlock"; + turf_type = /turf/open/space; + width = 18 + }, +/turf/open/space, +/area/space) +"bLu" = ( +/obj/structure/mopbucket, +/obj/item/weapon/mop, +/turf/open/floor/plating, +/area/maintenance/aft) +"bLv" = ( +/obj/structure/grille/broken, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/maintenance/aft) +"bLw" = ( +/obj/structure/bookcase/random/adult, +/turf/open/floor/plasteel/black, +/area/library) +"bLx" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/aft) +"bLy" = ( +/obj/structure/table/wood, +/obj/item/weapon/clipboard, +/obj/item/weapon/paper, +/obj/item/weapon/pen, +/obj/item/clothing/head/fedora, +/turf/open/floor/plating, +/area/maintenance/aft) +"bLz" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp, +/turf/open/floor/plating, +/area/maintenance/aft) +"bLA" = ( +/obj/structure/closet{ + name = "Clue Closet" + }, +/obj/item/weapon/kitchen/knife, +/obj/item/candle, +/obj/item/pipe, +/obj/item/weapon/gun/ballistic/revolver/russian, +/obj/item/stack/cable_coil/white, +/obj/item/weapon/wrench, +/obj/effect/decal/cleanable/cobweb{ + icon_state = "cobweb2" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/aft) +"bLB" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/aft) +"bLC" = ( +/obj/item/weapon/circuitboard/computer/libraryconsole, +/turf/open/floor/plating, +/area/maintenance/aft) +"bLD" = ( +/turf/closed/wall/r_wall, +/area/engine/chiefs_office) +"bLE" = ( +/obj/item/weapon/cartridge/engineering{ + pixel_x = 4; + pixel_y = 5 + }, +/obj/item/weapon/cartridge/engineering{ + pixel_x = -3; + pixel_y = 2 + }, +/obj/item/weapon/cartridge/engineering{ + pixel_x = 3 + }, +/obj/structure/table/reinforced, +/obj/item/weapon/cartridge/atmos, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Chief Engineer's Desk"; + departmentType = 3; + name = "Chief Engineer RC"; + pixel_x = -32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 9 + }, +/area/engine/chiefs_office) +"bLF" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Chief Engineer's Office"; + dir = 2; + network = list("SS13") + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/chiefs_office) +"bLG" = ( +/obj/machinery/computer/atmos_alert, +/obj/machinery/airalarm{ + dir = 2; + pixel_y = 22 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/chiefs_office) +"bLH" = ( +/obj/machinery/computer/station_alert, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/chiefs_office) +"bLI" = ( +/obj/machinery/computer/card/minor/ce, +/turf/open/floor/plasteel/yellow/side{ + dir = 5 + }, +/area/engine/chiefs_office) +"bLJ" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-07"; + name = "Photosynthetic Potted plant"; + pixel_y = 10 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/storage/tech) +"bLK" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-07"; + name = "Photosynthetic Potted plant"; + pixel_y = 10 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/storage/tech) +"bLL" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/closed/wall, +/area/engine/engine_smes) +"bLM" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/power/smes/engineering, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engine_smes) +"bLN" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/power/smes/engineering, +/obj/machinery/camera{ + c_tag = "Engineering Power Storage"; + dir = 2; + network = list("SS13") + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engine_smes) +"bLO" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/smes/engineering, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engine_smes) +"bLP" = ( +/turf/closed/wall, +/area/engine/engine_smes) +"bLQ" = ( +/turf/closed/wall/r_wall, +/area/engine/engine_smes) +"bLR" = ( +/obj/structure/table, +/obj/item/weapon/pen, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + pixel_x = -32; + pixel_y = 0 + }, +/obj/item/weapon/paper_bin{ + layer = 2.9; + pixel_x = 0; + pixel_y = 0; + tag = "every single paper bin is edited to this" + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/checkpoint/engineering) +"bLS" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4"; + tag = "" + }, +/obj/effect/landmark/start/depsec/engineering, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/engineering) +"bLT" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/checkpoint/engineering) +"bLU" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Engineering Security Post"; + req_access_txt = "63" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red, +/area/security/checkpoint/engineering) +"bLV" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/engineering) +"bLW" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/goonplaque, +/area/engine/engineering) +"bLX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (EAST)"; + dir = 4 + }, +/area/engine/engineering) +"bLY" = ( +/obj/machinery/door/poddoor/preopen{ + id = "atmos"; + name = "atmos blast door" + }, +/obj/machinery/door/firedoor/heavy, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/engine/engineering) +"bLZ" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics"; + req_access_txt = "24" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bMa" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel, +/area/atmos) +"bMb" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel, +/area/atmos) +"bMc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bMd" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bMe" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "O2 to Pure"; + on = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bMf" = ( +/obj/effect/decal/remains/human, +/turf/closed/mineral, +/area/chapel/asteroid{ + name = "Monastery Asteroid" + }) +"bMg" = ( +/obj/structure/table/wood, +/obj/machinery/computer/libraryconsole/bookmanagement{ + pixel_y = 0 + }, +/turf/open/floor/plasteel/black, +/area/library) +"bMh" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin{ + layer = 2.9; + pixel_x = -2; + pixel_y = 4 + }, +/obj/item/weapon/pen, +/obj/item/weapon/barcodescanner, +/turf/open/floor/plasteel/black, +/area/library) +"bMi" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible, +/turf/open/floor/plasteel, +/area/atmos) +"bMj" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "CO2 Outlet Pump"; + on = 0 + }, +/turf/open/floor/plasteel/yellow/side{ + tag = "icon-yellow (EAST)"; + dir = 4 + }, +/area/atmos) +"bMk" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plating, +/area/atmos) +"bMl" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + external_pressure_bound = 0; + frequency = 1441; + id_tag = "co2_out"; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine/co2, +/area/atmos) +"bMm" = ( +/turf/open/floor/engine/co2, +/area/atmos) +"bMn" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/aft) +"bMo" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/aft) +"bMp" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bMq" = ( +/obj/structure/closet/lawcloset, +/obj/item/weapon/gavelhammer, +/obj/item/weapon/gavelblock, +/obj/item/weapon/cartridge/lawyer, +/obj/item/clothing/head/powdered_wig, +/turf/open/floor/plating, +/area/maintenance/aft) +"bMr" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bMs" = ( +/obj/item/weapon/book/manual/barman_recipes, +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/obj/item/weapon/cigbutt, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/aft) +"bMt" = ( +/obj/machinery/button/door{ + desc = "A remote control-switch for the engineering security doors."; + id = "Engineering"; + name = "Engineering Lockdown"; + pixel_x = -24; + pixel_y = -10; + req_access_txt = "10" + }, +/obj/machinery/button/door{ + desc = "A remote control-switch for secure storage."; + id = "Secure Storage"; + name = "Engineering Secure Storage"; + pixel_x = -24; + pixel_y = 0; + req_access_txt = "11" + }, +/obj/machinery/button/door{ + id = "atmos"; + name = "Atmospherics Lockdown"; + pixel_x = -24; + pixel_y = 10; + req_access_txt = "24" + }, +/obj/structure/table/reinforced, +/obj/item/weapon/folder/yellow, +/obj/item/weapon/paper/monitorkey, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/yellow/side{ + dir = 8; + tag = "" + }, +/area/engine/chiefs_office) +"bMu" = ( +/turf/open/floor/plasteel, +/area/engine/chiefs_office) +"bMv" = ( +/obj/effect/landmark/start{ + name = "Chief Engineer" + }, +/turf/open/floor/plasteel, +/area/engine/chiefs_office) +"bMw" = ( +/obj/structure/chair/office/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/chiefs_office) +"bMx" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/clipboard, +/obj/item/weapon/lighter, +/obj/item/clothing/glasses/meson{ + pixel_y = 4 + }, +/obj/item/weapon/stamp/ce, +/obj/item/weapon/stock_parts/cell/high/plus, +/obj/machinery/keycard_auth{ + pixel_x = 26; + pixel_y = 26 + }, +/turf/open/floor/plasteel/yellow/side{ + tag = "icon-yellow (EAST)"; + dir = 4 + }, +/area/engine/chiefs_office) +"bMy" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/storage/tech) +"bMz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/black, +/area/storage/tech) +"bMA" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/storage/tech) +"bMB" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/metalfoam{ + pixel_x = 4; + pixel_y = 7 + }, +/obj/item/weapon/storage/box/lights/mixed, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23; + pixel_y = 0 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 8; + tag = "" + }, +/area/engine/engine_smes) +"bMC" = ( +/obj/machinery/power/terminal{ + icon_state = "term"; + dir = 1 + }, +/obj/structure/cable/yellow{ + d2 = 2; + icon_state = "0-2" + }, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (NORTH)"; + dir = 1 + }, +/area/engine/engine_smes) +"bMD" = ( +/obj/machinery/suit_storage_unit/engine, +/turf/open/floor/plasteel/yellow/side{ + tag = "icon-yellow (EAST)"; + dir = 4 + }, +/area/engine/engine_smes) +"bME" = ( +/obj/structure/table, +/obj/machinery/recharger{ + pixel_y = 4 + }, +/obj/machinery/power/apc{ + dir = 8; + name = "Engineering Security APC"; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/checkpoint/engineering) +"bMF" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/engineering) +"bMG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/checkpoint/engineering) +"bMH" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/checkpoint/engineering) +"bMI" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/engine/engineering) +"bMJ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/warning, +/area/engine/engineering) +"bMK" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/engine/engineering) +"bML" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bMM" = ( +/obj/item/weapon/pickaxe/mini, +/turf/closed/mineral, +/area/chapel/asteroid{ + name = "Monastery Asteroid" + }) +"bMN" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bMO" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bMP" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plasteel, +/area/atmos) +"bMQ" = ( +/obj/machinery/computer/atmos_control/tank{ + frequency = 1441; + input_tag = "co2_in"; + name = "Carbon Dioxide Supply Control"; + output_tag = "co2_out"; + sensors = list("co2_sensor" = "Tank") + }, +/turf/open/floor/plasteel/yellow/side{ + tag = "icon-yellow (EAST)"; + dir = 4 + }, +/area/atmos) +"bMR" = ( +/obj/machinery/air_sensor{ + frequency = 1441; + id_tag = "co2_sensor" + }, +/turf/open/floor/engine/co2, +/area/atmos) +"bMS" = ( +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, +/turf/open/floor/engine/co2, +/area/atmos) +"bMT" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/engine/co2, +/area/atmos) +"bMU" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/closed/mineral/random/low_chance, +/area/mine/explored{ + name = "Bomb Testing Asteroid" + }) +"bMV" = ( +/obj/structure/grille/broken, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/aft) +"bMW" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/aft) +"bMX" = ( +/obj/structure/closet/secure_closet/engineering_chief{ + req_access_txt = "0" + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27; + pixel_y = 0 + }, +/obj/item/clothing/glasses/meson/gar, +/turf/open/floor/plasteel/yellow/side{ + dir = 8; + tag = "" + }, +/area/engine/chiefs_office) +"bMY" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/engine/chiefs_office) +"bMZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/chiefs_office) +"bNa" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel, +/area/engine/chiefs_office) +"bNb" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "CE Office APC"; + pixel_x = 28; + pixel_y = 0 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plasteel/yellow/side{ + tag = "icon-yellow (EAST)"; + dir = 4 + }, +/area/engine/chiefs_office) +"bNc" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/circuitboard/computer/robotics{ + pixel_x = -2; + pixel_y = 2 + }, +/obj/item/weapon/circuitboard/computer/mecha_control{ + pixel_x = 1; + pixel_y = -1 + }, +/turf/open/floor/plating, +/area/storage/tech) +"bNd" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/circuitboard/computer/crew{ + pixel_x = -1; + pixel_y = 1 + }, +/obj/item/weapon/circuitboard/computer/card{ + pixel_x = 2; + pixel_y = -2 + }, +/obj/item/weapon/circuitboard/computer/communications{ + pixel_x = 5; + pixel_y = -5 + }, +/obj/machinery/camera{ + c_tag = "Secure Tech Storage"; + dir = 1 + }, +/turf/open/floor/plating, +/area/storage/tech) +"bNe" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/circuitboard/computer/borgupload{ + pixel_x = -1; + pixel_y = 1 + }, +/obj/item/weapon/circuitboard/computer/aiupload{ + pixel_x = 2; + pixel_y = -2 + }, +/turf/open/floor/plating, +/area/storage/tech) +"bNf" = ( +/obj/structure/table, +/obj/item/stack/sheet/plasteel{ + amount = 20; + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/stack/sheet/glass{ + amount = 50; + layer = 4 + }, +/obj/item/stack/sheet/glass{ + amount = 50; + layer = 4 + }, +/obj/item/stack/sheet/glass{ + amount = 50; + layer = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the engine containment area."; + dir = 4; + name = "Engine Monitor"; + network = list("Singularity"); + pixel_x = -32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 8; + tag = "" + }, +/area/engine/engine_smes) +"bNg" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4"; + d1 = 1; + d2 = 4 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8"; + tag = "" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/engine/engine_smes) +"bNh" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4"; + tag = "" + }, +/obj/effect/landmark/start{ + name = "Station Engineer" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/engine_smes) +"bNi" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engine_smes) +"bNj" = ( +/obj/structure/tank_dispenser, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel/yellow/side{ + tag = "icon-yellow (EAST)"; + dir = 4 + }, +/area/engine/engine_smes) +"bNk" = ( +/obj/structure/filingcabinet, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/security/checkpoint/engineering) +"bNl" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/red/side, +/area/security/checkpoint/engineering) +"bNm" = ( +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = 32; + pixel_y = 0 + }, +/obj/structure/closet/wardrobe/red, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/checkpoint/engineering) +"bNn" = ( +/turf/closed/wall/r_wall, +/area/security/checkpoint/engineering) +"bNo" = ( +/obj/machinery/door/poddoor/preopen{ + id = "Engineering"; + name = "engineering security door" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/engine/engineering) +"bNp" = ( +/obj/machinery/door/poddoor/preopen{ + id = "Engineering"; + name = "engineering security door" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/engine/engineering) +"bNq" = ( +/obj/machinery/door/poddoor/preopen{ + id = "Engineering"; + name = "engineering security door" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/engine/engineering) +"bNr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/closed/wall, +/area/engine/engineering) +"bNs" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel, +/area/atmos) +"bNt" = ( +/obj/machinery/portable_atmospherics/pump, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bNu" = ( +/obj/machinery/atmospherics/components/trinary/filter{ + dir = 4; + filter_type = "o2"; + on = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bNv" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bNw" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plasteel, +/area/atmos) +"bNx" = ( +/obj/machinery/camera{ + c_tag = "Telecoms External Fore"; + dir = 1; + network = list("SS13, Telecoms"); + pixel_x = 0; + pixel_y = 0; + start_active = 1 + }, +/turf/open/space, +/area/space) +"bNy" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4; + initialize_directions = 12 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plasteel, +/area/atmos) +"bNz" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bNA" = ( +/obj/machinery/atmospherics/components/trinary/filter{ + dir = 1; + filter_type = "co2"; + on = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bNB" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/atmos) +"bNC" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8; + frequency = 1441; + id = "co2_in"; + pixel_y = 1 + }, +/turf/open/floor/engine/co2, +/area/atmos) +"bND" = ( +/obj/item/device/flashlight, +/turf/open/floor/plating, +/area/maintenance/aft) +"bNE" = ( +/obj/effect/decal/cleanable/vomit/old, +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/maintenance/aft) +"bNF" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bNG" = ( +/obj/machinery/suit_storage_unit/ce, +/turf/open/floor/plasteel/yellow/side{ + dir = 10 + }, +/area/engine/chiefs_office) +"bNH" = ( +/turf/open/floor/plasteel/yellow/side, +/area/engine/chiefs_office) +"bNI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/yellow/side, +/area/engine/chiefs_office) +"bNJ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/yellow/side, +/area/engine/chiefs_office) +"bNK" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/light_switch{ + pixel_x = 25 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 6 + }, +/area/engine/chiefs_office) +"bNL" = ( +/turf/closed/wall/r_wall, +/area/engine/engineering) +"bNM" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/obj/item/stack/cable_coil, +/obj/machinery/power/apc{ + cell_type = 10000; + dir = 8; + name = "Engine Room APC"; + pixel_x = -26; + pixel_y = 0 + }, +/obj/structure/cable, +/obj/item/stack/sheet/metal{ + amount = 50; + layer = 2.9 + }, +/obj/item/stack/cable_coil, +/turf/open/floor/plasteel/yellow/side{ + dir = 8; + tag = "" + }, +/area/engine/engine_smes) +"bNN" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/engine_smes) +"bNO" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/engine_smes) +"bNP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/engine_smes) +"bNQ" = ( +/obj/machinery/door/airlock/engineering{ + cyclelinkeddir = 1; + name = "Engine Room"; + req_access_txt = "10" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bNR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"bNS" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel/yellow/side, +/area/atmos) +"bNT" = ( +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/plasteel/yellow/side, +/area/atmos) +"bNU" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/plasteel/yellow/side, +/area/atmos) +"bNV" = ( +/obj/machinery/computer/atmos_control/tank{ + frequency = 1441; + input_tag = "n2_in"; + name = "Nitrogen Supply Control"; + output_tag = "n2_out"; + sensors = list("n2_sensor" = "Tank") + }, +/turf/open/floor/plasteel/yellow/side, +/area/atmos) +"bNW" = ( +/obj/machinery/camera/motion{ + c_tag = "Telecoms External Access"; + dir = 1; + network = list("SS13","Telecoms") + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bNX" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/yellow/side, +/area/atmos) +"bNY" = ( +/obj/machinery/computer/atmos_control/tank{ + frequency = 1441; + input_tag = "o2_in"; + name = "Oxygen Supply Control"; + output_tag = "o2_out"; + sensors = list("o2_sensor" = "Tank") + }, +/turf/open/floor/plasteel/yellow/side, +/area/atmos) +"bNZ" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 8 + }, +/turf/open/floor/plasteel/yellow/side, +/area/atmos) +"bOa" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plasteel/yellow/side, +/area/atmos) +"bOb" = ( +/obj/machinery/computer/atmos_control/tank{ + frequency = 1441; + input_tag = "air_in"; + name = "Mixed Air Supply Control"; + output_tag = "air_out"; + sensors = list("air_sensor" = "Tank") + }, +/turf/open/floor/plasteel/yellow/side, +/area/atmos) +"bOc" = ( +/obj/structure/lattice, +/obj/machinery/camera/motion{ + c_tag = "Telecoms External Port"; + dir = 8; + network = list("Telecoms") + }, +/turf/open/space, +/area/space) +"bOd" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Air Outlet Pump"; + on = 1 + }, +/turf/open/floor/plasteel/yellow/side, +/area/atmos) +"bOe" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side, +/area/atmos) +"bOf" = ( +/obj/structure/lattice, +/obj/machinery/camera/motion{ + c_tag = "Telecoms External Starboard"; + dir = 4; + network = list("Telecoms") + }, +/turf/open/space, +/area/space) +"bOg" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 6 + }, +/area/atmos) +"bOh" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bOi" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8"; + tag = "" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bOj" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/engine/chiefs_office) +"bOk" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/engine/chiefs_office) +"bOl" = ( +/obj/machinery/door/airlock/glass_command{ + name = "Chief Engineer"; + req_access_txt = "56" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/chiefs_office) +"bOm" = ( +/turf/closed/wall, +/area/engine/chiefs_office) +"bOn" = ( +/obj/machinery/computer/atmos_alert, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) +"bOo" = ( +/obj/machinery/computer/monitor{ + name = "Engineering Power Monitoring Console" + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) +"bOp" = ( +/obj/machinery/computer/station_alert, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) +"bOq" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE" + }, +/turf/open/floor/plating, +/area/engine/engine_smes) +"bOr" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/engine/engine_smes) +"bOs" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_engineering{ + name = "Power Storage"; + req_access_txt = "11"; + req_one_access_txt = "0" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/engine_smes) +"bOt" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/engine/engine_smes) +"bOu" = ( +/obj/machinery/vending/engivend, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) +"bOv" = ( +/obj/machinery/vending/tool, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) +"bOw" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) +"bOx" = ( +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/engine/engineering) +"bOy" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/engine/engineering) +"bOz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/engine/engineering) +"bOA" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/atmos) +"bOB" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 0; + name = "Waste to Space"; + on = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bOC" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4; + initialize_directions = 12 + }, +/turf/open/floor/plating, +/area/atmos) +"bOD" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 2; + name = "Atmospherics External Access"; + req_access = null; + req_access_txt = "24" + }, +/turf/open/floor/plating, +/area/atmos) +"bOE" = ( +/obj/structure/table_frame/wood, +/turf/open/floor/plating, +/area/maintenance/aft) +"bOF" = ( +/obj/item/trash/candy, +/turf/open/floor/plating, +/area/maintenance/aft) +"bOG" = ( +/turf/open/space, +/area/space/nearstation) +"bOH" = ( +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) +"bOI" = ( +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 8; + name = "Engineering Maintenance APC"; + pixel_x = -25; + pixel_y = 1 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bOJ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bOK" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/maintenance{ + name = "Engineering Maintenance"; + req_access_txt = "10" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"bOL" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bOM" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + 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/plasteel, +/area/engine/engineering) +"bON" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 8; + icon_state = "pipe-j1s"; + sortType = 5 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bOO" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bOP" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Engineering Port Fore"; + dir = 2; + network = list("SS13") + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/sign/map{ + icon_state = "map-pubby"; + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bOQ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bOR" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bOS" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bOT" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 2; + pixel_y = 22 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bOU" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bOV" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + 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/engine/engineering) +"bOW" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bOX" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bOY" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = 29 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bOZ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Engineering Starboard Fore"; + dir = 2; + network = list("SS13") + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = 26 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bPa" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 8; + icon_state = "pipe-j2s"; + sortType = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bPb" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bPc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bPd" = ( +/turf/open/floor/plasteel, +/area/engine/engineering) +"bPe" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/space, +/area/space) +"bPf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/atmos) +"bPg" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/space, +/area/space) +"bPh" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = -32; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/atmos) +"bPi" = ( +/obj/structure/table_frame/wood, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/aft) +"bPj" = ( +/obj/item/weapon/bikehorn/rubberducky, +/turf/open/floor/plating, +/area/maintenance/aft) +"bPk" = ( +/turf/closed/wall/r_wall, +/area/maintenance/aft) +"bPl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bPm" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8; + initialize_directions = 11 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bPn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bPo" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1; + initialize_directions = 11 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bPp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bPq" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1; + initialize_directions = 11 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bPr" = ( +/obj/machinery/holopad, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bPs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bPt" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bPu" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bPv" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bPw" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bPx" = ( +/obj/machinery/atmospherics/pipe/simple, +/obj/structure/grille, +/obj/machinery/meter, +/turf/closed/wall/r_wall, +/area/atmos) +"bPy" = ( +/obj/machinery/atmospherics/pipe/simple, +/obj/structure/grille, +/obj/machinery/meter{ + name = "Mixed Air Tank In" + }, +/turf/closed/wall/r_wall, +/area/atmos) +"bPz" = ( +/obj/machinery/atmospherics/pipe/simple, +/obj/structure/grille, +/obj/machinery/meter{ + name = "Mixed Air Tank Out" + }, +/turf/closed/wall/r_wall, +/area/atmos) +"bPA" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 1; + name = "Atmospherics External Access"; + req_access = null; + req_access_txt = "24" + }, +/turf/open/floor/plating, +/area/atmos) +"bPB" = ( +/obj/structure/plasticflaps{ + opacity = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/engineering) +"bPC" = ( +/obj/machinery/door/window/southleft{ + base_state = "left"; + dir = 4; + icon_state = "left"; + name = "Engineering Delivery"; + req_access_txt = "10" + }, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=4"; + freq = 1400; + location = "Engineering" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/engineering) +"bPD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/loadingarea{ + dir = 4 + }, +/area/engine/engineering) +"bPE" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bPF" = ( +/obj/structure/chair/stool, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bPG" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start{ + name = "Station Engineer" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bPH" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/storage/belt/utility, +/obj/item/clothing/head/welding{ + pixel_x = -3; + pixel_y = 5 + }, +/obj/item/clothing/glasses/meson{ + pixel_x = 3; + pixel_y = -4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bPI" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bPJ" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4"; + tag = "" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bPK" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4"; + d1 = 1; + d2 = 4 + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/obj/machinery/camera{ + c_tag = "Engineering Central"; + dir = 1; + network = list("SS13") + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bPL" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bPM" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bPN" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/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) +"bPO" = ( +/obj/structure/table, +/obj/item/weapon/airlock_painter{ + pixel_y = 3 + }, +/obj/item/device/flashlight, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bPP" = ( +/obj/structure/table, +/obj/item/weapon/electronics/airlock, +/obj/item/weapon/electronics/airlock, +/obj/item/weapon/electronics/apc, +/obj/item/weapon/stock_parts/cell/high/plus, +/obj/item/weapon/stock_parts/cell/high/plus, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/item/stack/cable_coil, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bPQ" = ( +/obj/structure/closet/wardrobe/engineering_yellow, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bPR" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 1; + frequency = 1441; + id = "n2_in" + }, +/turf/open/floor/engine/n2, +/area/atmos) +"bPS" = ( +/obj/machinery/air_sensor{ + frequency = 1441; + id_tag = "n2_sensor" + }, +/turf/open/floor/engine/n2, +/area/atmos) +"bPT" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 0; + frequency = 1441; + id_tag = "n2_out"; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine/n2, +/area/atmos) +"bPU" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 1; + frequency = 1441; + id = "o2_in" + }, +/turf/open/floor/engine/o2, +/area/atmos) +"bPV" = ( +/obj/machinery/air_sensor{ + frequency = 1441; + id_tag = "o2_sensor" + }, +/turf/open/floor/engine/o2, +/area/atmos) +"bPW" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 0; + frequency = 1441; + id_tag = "o2_out"; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine/o2, +/area/atmos) +"bPX" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 1; + frequency = 1441; + id = "air_in" + }, +/turf/open/floor/engine/air, +/area/atmos) +"bPY" = ( +/obj/machinery/air_sensor{ + frequency = 1441; + id_tag = "air_sensor" + }, +/turf/open/floor/engine/air, +/area/atmos) +"bPZ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume{ + dir = 1; + external_pressure_bound = 0; + frequency = 1441; + icon_state = "vent_map"; + id_tag = "air_out"; + internal_pressure_bound = 2000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine/air, +/area/atmos) +"bQa" = ( +/obj/structure/rack, +/obj/item/weapon/paper, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/aft) +"bQb" = ( +/obj/item/toy/beach_ball{ + desc = "The simple beach ball is one of Nanotrasen's most popular products. 'Why do we make beach balls? Because we can! (TM)' - Nanotrasen"; + item_state = "beachball"; + name = "NanoTrasen-brand beach ball"; + pixel_y = 7 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"bQc" = ( +/obj/item/weapon/phone, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"bQd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light{ + dir = 8 + }, +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = -27 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 1 + }, +/area/engine/engineering) +"bQe" = ( +/obj/structure/table, +/obj/item/weapon/pen, +/obj/item/weapon/storage/belt/utility, +/obj/item/clothing/glasses/meson, +/obj/item/weapon/paper_bin{ + layer = 2.9; + pixel_x = 0; + pixel_y = 0; + tag = "every single paper bin is edited to this" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bQf" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/wiki/engineering_hacking{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/book/manual/wiki/engineering_construction, +/obj/item/clothing/gloves/color/yellow, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bQg" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/engineering_singularity_safety{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/book/manual/wiki/engineering_guide, +/obj/item/weapon/book/manual/engineering_particle_accelerator{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/gloves/color/yellow, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bQh" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bQi" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/structure/closet/radiation, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bQj" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'RADIOACTIVE AREA'"; + icon_state = "radiation"; + name = "RADIOACTIVE AREA"; + pixel_x = 0; + pixel_y = 0 + }, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"bQk" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Singularity"; + name = "radiation shutters" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/bot{ + dir = 2 + }, +/area/engine/engineering) +"bQl" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/closet/secure_closet/engineering_welding, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bQm" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/yellow, +/obj/item/weapon/storage/belt/utility, +/obj/item/clothing/glasses/meson, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bQn" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bQo" = ( +/obj/effect/landmark/start{ + name = "Station Engineer" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bQp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bQq" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bQr" = ( +/turf/open/floor/engine/n2, +/area/atmos) +"bQs" = ( +/obj/machinery/portable_atmospherics/canister/nitrogen, +/turf/open/floor/engine/n2, +/area/atmos) +"bQt" = ( +/turf/open/floor/engine/o2, +/area/atmos) +"bQu" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/engine/o2, +/area/atmos) +"bQv" = ( +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/engine/air, +/area/atmos) +"bQw" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/effect/landmark/event_spawn, +/turf/open/floor/engine/air, +/area/atmos) +"bQx" = ( +/turf/open/floor/engine/air, +/area/atmos) +"bQy" = ( +/obj/item/trash/tray, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/aft) +"bQz" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/aft) +"bQA" = ( +/obj/machinery/shieldgen, +/turf/open/floor/plating, +/area/engine/engineering) +"bQB" = ( +/obj/machinery/shieldgen, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"bQC" = ( +/turf/open/floor/plating, +/area/engine/engineering) +"bQD" = ( +/obj/machinery/door/poddoor{ + id = "Secure Storage"; + name = "secure storage" + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/engine/engineering) +"bQE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/engineering) +"bQF" = ( +/obj/structure/closet/radiation, +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bQG" = ( +/turf/open/floor/plating/warnplate{ + dir = 9 + }, +/area/engine/engineering) +"bQH" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/engine/engineering) +"bQI" = ( +/obj/machinery/camera{ + c_tag = "Engineering Center"; + dir = 2; + pixel_x = 23 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/engine/engineering) +"bQJ" = ( +/turf/open/floor/plating/warnplate{ + dir = 5 + }, +/area/engine/engineering) +"bQK" = ( +/obj/structure/closet/secure_closet/engineering_electrical, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bQL" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = 2; + pixel_y = 4 + }, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = -2 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bQM" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/electrical{ + pixel_x = 2; + pixel_y = 4 + }, +/obj/item/weapon/storage/toolbox/electrical{ + pixel_x = -2 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bQN" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bQO" = ( +/obj/machinery/light/small, +/turf/open/floor/engine/n2, +/area/atmos) +"bQP" = ( +/obj/machinery/light/small, +/turf/open/floor/engine/o2, +/area/atmos) +"bQQ" = ( +/obj/machinery/light/small, +/turf/open/floor/engine/air, +/area/atmos) +"bQR" = ( +/obj/structure/table, +/obj/item/weapon/wirecutters, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bQS" = ( +/obj/structure/table, +/obj/item/weapon/storage/fancy/cigarettes/cigpack_robustgold, +/obj/effect/decal/cleanable/deadcockroach, +/turf/open/floor/plating, +/area/maintenance/aft) +"bQT" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/aft) +"bQU" = ( +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/aft) +"bQV" = ( +/obj/machinery/field/generator, +/turf/open/floor/plating, +/area/engine/engineering) +"bQW" = ( +/obj/structure/closet/crate, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/weapon/electronics/airlock, +/obj/item/weapon/electronics/airlock, +/obj/item/weapon/stock_parts/cell/high/plus, +/obj/item/stack/sheet/mineral/plasma{ + amount = 30 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"bQX" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bQY" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bQZ" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bRa" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Singularity"; + name = "radiation shutters" + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/bot{ + dir = 2 + }, +/area/engine/engineering) +"bRb" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4"; + tag = "" + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/engine/engineering) +"bRc" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"bRd" = ( +/obj/structure/particle_accelerator/end_cap, +/turf/open/floor/plating, +/area/engine/engineering) +"bRe" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/engine/engineering) +"bRf" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/engine/engineering) +"bRg" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8"; + tag = "" + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bRh" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8"; + tag = "" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bRi" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bRj" = ( +/obj/item/weapon/shovel, +/turf/open/floor/plating, +/area/maintenance/aft) +"bRk" = ( +/obj/machinery/portable_atmospherics/canister/toxins, +/turf/open/floor/plating, +/area/engine/engineering) +"bRl" = ( +/obj/machinery/power/port_gen/pacman, +/turf/open/floor/plating, +/area/engine/engineering) +"bRm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/corner{ + dir = 4 + }, +/area/engine/engineering) +"bRn" = ( +/turf/open/floor/plasteel/warning/corner, +/area/engine/engineering) +"bRo" = ( +/turf/open/floor/plasteel/warning, +/area/engine/engineering) +"bRp" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning, +/area/engine/engineering) +"bRq" = ( +/obj/machinery/camera{ + c_tag = "Engineering Port Aft"; + dir = 1; + network = list("SS13") + }, +/obj/machinery/light, +/turf/open/floor/plasteel/warning, +/area/engine/engineering) +"bRr" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"bRs" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/button/door{ + id = "Singularity"; + name = "Shutters Control"; + pixel_x = 25; + pixel_y = 0; + req_access_txt = "11" + }, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"bRt" = ( +/obj/machinery/button/door{ + id = "Singularity"; + name = "Shutters Control"; + pixel_x = -25; + pixel_y = 0; + req_access_txt = "11" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/engine/engineering) +"bRu" = ( +/obj/machinery/particle_accelerator/control_box, +/obj/structure/cable/yellow, +/turf/open/floor/plating, +/area/engine/engineering) +"bRv" = ( +/obj/structure/particle_accelerator/fuel_chamber, +/turf/open/floor/plating, +/area/engine/engineering) +"bRw" = ( +/obj/effect/landmark/start{ + name = "Station Engineer" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"bRx" = ( +/obj/machinery/button/door{ + id = "Singularity"; + name = "Shutters Control"; + pixel_x = 25; + pixel_y = 0; + req_access_txt = "11" + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/engine/engineering) +"bRy" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/button/door{ + id = "Singularity"; + name = "Shutters Control"; + pixel_x = -25; + pixel_y = 0; + req_access_txt = "11" + }, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"bRz" = ( +/obj/machinery/camera{ + c_tag = "Engineering Starboard Aft"; + dir = 1; + network = list("SS13") + }, +/obj/machinery/light, +/turf/open/floor/plasteel/warning, +/area/engine/engineering) +"bRA" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning, +/area/engine/engineering) +"bRB" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/warning/corner{ + dir = 1 + }, +/area/engine/engineering) +"bRC" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bRD" = ( +/obj/structure/closet/crate/medical, +/obj/item/stack/medical/gauze, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/aft) +"bRE" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/random, +/obj/structure/table/optable, +/turf/open/floor/plating, +/area/maintenance/aft) +"bRF" = ( +/obj/machinery/power/emitter, +/turf/open/floor/plating, +/area/engine/engineering) +"bRG" = ( +/obj/machinery/door/airlock/engineering{ + name = "Telecommunications Transit Tube"; + req_access_txt = "10; 61" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bRH" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 2; + name = "Engineering External Access"; + req_access = null; + req_access_txt = "10;13" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/engine/engineering) +"bRI" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Singularity"; + name = "radiation shutters" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/engine/engineering) +"bRJ" = ( +/obj/item/stack/cable_coil{ + pixel_x = 3; + pixel_y = -7 + }, +/obj/item/stack/cable_coil{ + pixel_x = 3; + pixel_y = -7 + }, +/obj/item/weapon/crowbar, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/engine/engineering) +"bRK" = ( +/obj/structure/chair/stool, +/turf/open/floor/plating, +/area/engine/engineering) +"bRL" = ( +/obj/structure/particle_accelerator/power_box, +/turf/open/floor/plating, +/area/engine/engineering) +"bRM" = ( +/obj/item/weapon/screwdriver, +/turf/open/floor/plating, +/area/engine/engineering) +"bRN" = ( +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/engine/engineering) +"bRO" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 2; + name = "Engineering External Access"; + req_access = null; + req_access_txt = "10;13" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"bRP" = ( +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bRQ" = ( +/obj/effect/decal/cleanable/robot_debris{ + icon_state = "gib7" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bRR" = ( +/obj/item/device/radio, +/turf/open/floor/plating, +/area/maintenance/aft) +"bRS" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/maintenance/aft) +"bRT" = ( +/obj/machinery/field/generator, +/turf/open/floor/plating, +/area/maintenance/aft) +"bRU" = ( +/obj/machinery/power/emitter, +/turf/open/floor/plating, +/area/maintenance/aft) +"bRV" = ( +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/engine/engineering) +"bRW" = ( +/obj/structure/sign/poster{ + pixel_x = 0; + pixel_y = 32 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bRX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bRY" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/closet/emcloset{ + anchored = 1; + desc = "It's a storage unit for emergency breath masks and O2 tanks, and is securely bolted in place."; + name = "anchored emergency closet" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"bRZ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/engine/engineering) +"bSa" = ( +/obj/machinery/power/rad_collector{ + anchored = 1 + }, +/obj/item/weapon/tank/internals/plasma, +/obj/structure/cable/yellow, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/engine/engineering) +"bSb" = ( +/obj/machinery/power/rad_collector{ + anchored = 1 + }, +/obj/structure/cable/yellow, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/engine/engineering) +"bSc" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/engine/engineering) +"bSd" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/engine/engineering) +"bSe" = ( +/obj/structure/particle_accelerator/particle_emitter/left, +/turf/open/floor/plating, +/area/engine/engineering) +"bSf" = ( +/obj/structure/particle_accelerator/particle_emitter/center, +/turf/open/floor/plating, +/area/engine/engineering) +"bSg" = ( +/obj/structure/particle_accelerator/particle_emitter/right, +/turf/open/floor/plating, +/area/engine/engineering) +"bSh" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = -32 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"bSi" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/closet/emcloset{ + anchored = 1; + desc = "It's a storage unit for emergency breath masks and O2 tanks, and is securely bolted in place."; + name = "anchored emergency closet" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"bSj" = ( +/obj/docking_port/stationary{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 24; + id = "syndicate_se"; + name = "southeast of station"; + turf_type = /turf/open/space; + width = 18 + }, +/turf/open/space, +/area/space) +"bSk" = ( +/obj/structure/chair, +/obj/item/weapon/cigbutt, +/turf/open/floor/plating, +/area/maintenance/aft) +"bSl" = ( +/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola, +/turf/open/floor/plating, +/area/maintenance/aft) +"bSm" = ( +/obj/structure/transit_tube_pod, +/obj/structure/transit_tube/station/reverse{ + dir = 4 + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/engine/engineering) +"bSn" = ( +/obj/machinery/camera{ + c_tag = "Engineering Telecoms Access"; + dir = 8; + network = list("Labor") + }, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching telecoms."; + dir = 8; + layer = 4; + name = "Telecoms Telescreen"; + network = list("Telecoms"); + pixel_x = 30; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bSo" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 1; + name = "Engineering External Access"; + req_access = null; + req_access_txt = "10;13" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/engine/engineering) +"bSp" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4"; + d1 = 1; + d2 = 4 + }, +/turf/open/floor/plating/warnplate{ + dir = 10 + }, +/area/engine/engineering) +"bSq" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plating/warnplate, +/area/engine/engineering) +"bSr" = ( +/obj/item/weapon/wirecutters, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8"; + tag = "" + }, +/turf/open/floor/plating/warnplate, +/area/engine/engineering) +"bSs" = ( +/turf/open/floor/plating/warnplate, +/area/engine/engineering) +"bSt" = ( +/turf/open/floor/plating/warnplate{ + dir = 6 + }, +/area/engine/engineering) +"bSu" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 1; + name = "Engineering External Access"; + req_access = null; + req_access_txt = "10;13" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"bSv" = ( +/obj/structure/lattice, +/obj/machinery/camera/motion{ + c_tag = "Telecoms External Port Aft"; + dir = 2; + network = list("Telecoms") + }, +/turf/open/space, +/area/space) +"bSw" = ( +/obj/structure/lattice, +/obj/machinery/camera/motion{ + c_tag = "Telecoms External Starboard Aft"; + dir = 2; + network = list("Telecoms") + }, +/turf/open/space, +/area/space) +"bSx" = ( +/obj/structure/transit_tube, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/engine/engineering) +"bSy" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bSz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"bSA" = ( +/obj/structure/grille, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bSB" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bSC" = ( +/obj/machinery/camera/emp_proof{ + c_tag = "Engine Containment Port Fore"; + dir = 2; + network = list("Singularity") + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bSD" = ( +/obj/machinery/power/grounding_rod, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bSE" = ( +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bSF" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"bSG" = ( +/obj/machinery/camera/emp_proof{ + c_tag = "Engine Containment Starboard Fore"; + dir = 2; + network = list("Singularity") + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bSH" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bSI" = ( +/obj/structure/grille, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bSJ" = ( +/obj/structure/window/reinforced/fulltile, +/obj/structure/transit_tube, +/turf/open/floor/plating, +/area/engine/engineering) +"bSK" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 2; + name = "Engineering External Access"; + req_access = null; + req_access_txt = "61" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"bSL" = ( +/obj/structure/grille, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bSM" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4"; + tag = "" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bSN" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bSO" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bSP" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8"; + tag = "" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bSQ" = ( +/obj/structure/transit_tube, +/turf/open/floor/plating, +/area/space) +"bSR" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = -32; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"bSS" = ( +/obj/structure/grille, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bST" = ( +/obj/machinery/power/emitter{ + anchored = 1; + dir = 4; + state = 2 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bSU" = ( +/turf/open/floor/plating/airless/warnplate{ + dir = 8 + }, +/area/engine/engineering) +"bSV" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bSW" = ( +/obj/machinery/field/generator{ + anchored = 1; + state = 2 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"bSX" = ( +/turf/open/floor/plating/airless/warnplate{ + dir = 4 + }, +/area/engine/engineering) +"bSY" = ( +/obj/machinery/power/emitter{ + anchored = 1; + dir = 8; + state = 2 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bSZ" = ( +/obj/structure/grille, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bTa" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 1; + name = "Engineering External Access"; + req_access = null; + req_access_txt = "61" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"bTb" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4"; + d1 = 1; + d2 = 4 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bTc" = ( +/obj/structure/cable/yellow{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/tesla_coil, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bTd" = ( +/obj/structure/cable/yellow{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/power/tesla_coil, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bTe" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8"; + tag = "" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bTf" = ( +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/space/nearstation) +"bTg" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bTh" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bTi" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bTj" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bTk" = ( +/turf/closed/mineral, +/area/mine/explored{ + name = "Bomb Testing Asteroid" + }) +"bTl" = ( +/turf/closed/wall, +/area/mine/explored{ + name = "Bomb Testing Asteroid" + }) +"bTm" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'BOMB RANGE"; + name = "BOMB RANGE" + }, +/turf/closed/indestructible{ + desc = "A wall impregnated with Fixium, able to withstand massive explosions with ease"; + icon_state = "riveted"; + name = "hyper-reinforced wall" + }, +/area/mine/explored{ + name = "Bomb Testing Asteroid" + }) +"bTn" = ( +/turf/open/floor/plating/asteroid/airless, +/area/mine/explored{ + name = "Bomb Testing Asteroid" + }) +"bTo" = ( +/obj/structure/transit_tube/crossing, +/turf/open/floor/plating, +/area/space) +"bTp" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bTq" = ( +/turf/open/floor/plating/airless/warnplate{ + dir = 9 + }, +/area/space/nearstation) +"bTr" = ( +/turf/open/floor/plating/airless/warnplate{ + dir = 1 + }, +/area/space/nearstation) +"bTs" = ( +/turf/open/floor/plating/airless/warnplate{ + dir = 5 + }, +/area/space/nearstation) +"bTt" = ( +/obj/machinery/camera{ + active_power_usage = 0; + c_tag = "Bomb Testing Asteroid Fore"; + desc = "A specially-reinforced camera with a long lasting battery, used to monitor the bomb testing site. An external light is attached to the top."; + invuln = 1; + luminosity = 3; + name = "Hardened Bomb-Test Camera"; + network = list("Toxins"); + use_power = 0 + }, +/turf/open/floor/plating/asteroid/airless, +/area/mine/explored{ + name = "Bomb Testing Asteroid" + }) +"bTu" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bTv" = ( +/obj/machinery/the_singularitygen, +/turf/open/floor/plating/airless/warnplate{ + dir = 8 + }, +/area/space/nearstation) +"bTw" = ( +/obj/machinery/the_singularitygen/tesla, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"bTx" = ( +/turf/open/floor/plating/airless/warnplate{ + dir = 4 + }, +/area/space/nearstation) +"bTy" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bTz" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating/asteroid/airless, +/area/mine/explored{ + name = "Bomb Testing Asteroid" + }) +"bTA" = ( +/turf/open/floor/plating/airless/warnplate{ + dir = 10 + }, +/area/space/nearstation) +"bTB" = ( +/turf/open/floor/plating/airless/warnplate{ + dir = 2 + }, +/area/space/nearstation) +"bTC" = ( +/turf/open/floor/plating/airless/warnplate{ + dir = 6 + }, +/area/space/nearstation) +"bTD" = ( +/turf/closed/mineral/random/low_chance, +/area/mine/explored{ + name = "Bomb Testing Asteroid" + }) +"bTE" = ( +/obj/item/device/radio/beacon, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/turf/open/floor/plating/airless, +/area/mine/explored{ + name = "Bomb Testing Asteroid" + }) +"bTF" = ( +/obj/item/device/flashlight/lantern{ + on = 1 + }, +/turf/open/floor/plating/asteroid/airless, +/area/mine/explored{ + name = "Bomb Testing Asteroid" + }) +"bTG" = ( +/obj/structure/grille, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bTH" = ( +/obj/structure/grille, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bTI" = ( +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bTJ" = ( +/obj/structure/cable/yellow{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/power/tesla_coil, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bTK" = ( +/obj/machinery/camera/emp_proof{ + c_tag = "Engine Containment Port Aft"; + dir = 1; + network = list("Singularity") + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bTL" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bTM" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bTN" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/obj/machinery/light, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bTO" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bTP" = ( +/obj/machinery/camera/emp_proof{ + c_tag = "Engine Containment Starboard Aft"; + dir = 1; + network = list("Singularity") + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bTQ" = ( +/turf/closed/mineral/iron, +/area/mine/explored{ + name = "Bomb Testing Asteroid" + }) +"bTR" = ( +/obj/structure/sign/securearea, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"bTS" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/closed/mineral, +/area/mine/explored{ + name = "Bomb Testing Asteroid" + }) +"bTT" = ( +/turf/closed/wall/r_wall, +/area/tcommsat/computer) +"bTU" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space) +"bTV" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/space, +/area/space) +"bTW" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 2; + name = "Telecommunications External Access"; + req_access = null; + req_access_txt = "61" + }, +/turf/open/floor/plating, +/area/tcommsat/computer) +"bTX" = ( +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/turf/open/floor/plating, +/area/tcommsat/computer) +"bTY" = ( +/obj/structure/closet/emcloset{ + anchored = 1; + desc = "It's a storage unit for emergency breath masks and O2 tanks, and is securely bolted in place."; + name = "anchored emergency closet" + }, +/turf/open/floor/plating, +/area/tcommsat/computer) +"bTZ" = ( +/obj/structure/window/reinforced/fulltile, +/obj/structure/transit_tube, +/turf/open/floor/plating, +/area/tcommsat/computer) +"bUa" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 1; + name = "Telecommunications External Access"; + req_access = null; + req_access_txt = "61" + }, +/turf/open/floor/plating, +/area/tcommsat/computer) +"bUb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/tcommsat/computer) +"bUc" = ( +/obj/docking_port/stationary{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 24; + id = "syndicate_s"; + name = "south of station"; + turf_type = /turf/open/space; + width = 18 + }, +/turf/open/space, +/area/space) +"bUd" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/tcommsat/computer) +"bUe" = ( +/obj/structure/transit_tube, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/tcommsat/computer) +"bUf" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bUg" = ( +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bUh" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bUi" = ( +/turf/closed/wall, +/area/tcommsat/computer) +"bUj" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Waste Out"; + on = 1 + }, +/turf/open/floor/plating, +/area/tcommsat/computer) +"bUk" = ( +/obj/machinery/atmospherics/components/unary/tank/air, +/turf/open/floor/plating, +/area/tcommsat/computer) +"bUl" = ( +/obj/structure/grille, +/obj/structure/lattice, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"bUm" = ( +/obj/structure/transit_tube/station/reverse/flipped{ + dir = 8 + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/tcommsat/computer) +"bUn" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bUo" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1; + initialize_directions = 11 + }, +/obj/item/device/radio/beacon, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bUp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bUq" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Telecommunications Maintenance"; + req_access_txt = "61" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/tcommsat/computer) +"bUr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/tcommsat/computer) +"bUs" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 0; + name = "Air Out"; + on = 1 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/tcommsat/computer) +"bUt" = ( +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/tcommsat/computer) +"bUu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bUv" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bUw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/tcommsat/computer) +"bUx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/weapon/wrench, +/obj/item/stack/cable_coil, +/turf/open/floor/plating, +/area/tcommsat/computer) +"bUy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9; + pixel_y = 0 + }, +/obj/machinery/power/port_gen/pacman, +/turf/open/floor/plating, +/area/tcommsat/computer) +"bUz" = ( +/obj/machinery/door/airlock/engineering{ + name = "Telecommunications Chamber"; + req_access_txt = "61" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bUA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/tcommsat/computer) +"bUB" = ( +/obj/structure/rack, +/obj/item/weapon/storage/toolbox/mechanical, +/obj/item/device/radio, +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 9 + }, +/area/tcommsat/computer) +"bUC" = ( +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Telecoms Admin"; + departmentType = 5; + name = "Telecoms RC"; + pixel_x = 0; + pixel_y = 30 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/tcommsat/computer) +"bUD" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/tcommsat/computer) +"bUE" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4"; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = 26 + }, +/obj/machinery/camera/motion{ + c_tag = "Telecoms Monitoring"; + dir = 2; + network = list("SS13","Telecoms") + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/tcommsat/computer) +"bUF" = ( +/obj/machinery/door/airlock/glass_command{ + name = "Control Room"; + req_access_txt = "19; 61" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/tcommsat/computer) +"bUG" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Telecoms Monitoring APC"; + pixel_y = 25 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/tcommsat/computer) +"bUH" = ( +/obj/machinery/announcement_system, +/turf/open/floor/plasteel/yellow/side{ + dir = 5 + }, +/area/tcommsat/computer) +"bUI" = ( +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 8; + tag = "" + }, +/area/tcommsat/computer) +"bUJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/chair/office/dark, +/turf/open/floor/plasteel/yellow/corner, +/area/tcommsat/computer) +"bUK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side, +/area/tcommsat/computer) +"bUL" = ( +/obj/structure/cable{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply, +/turf/open/floor/plasteel/yellow/side, +/area/tcommsat/computer) +"bUM" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/tcommsat/computer) +"bUN" = ( +/obj/structure/chair/office/dark, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 8 + }, +/area/tcommsat/computer) +"bUO" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/tcommsat/computer) +"bUP" = ( +/obj/machinery/status_display{ + pixel_x = -32 + }, +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = -2; + pixel_y = 5; + tag = "every single paper bin is edited to this" + }, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/yellow/side{ + dir = 10 + }, +/area/tcommsat/computer) +"bUQ" = ( +/obj/machinery/computer/telecomms/monitor{ + network = "tcommsat" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 6 + }, +/area/tcommsat/computer) +"bUR" = ( +/obj/machinery/door/airlock/glass_engineering{ + cyclelinkeddir = 2; + name = "Server Room"; + req_access_txt = "61" + }, +/obj/structure/cable{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/tcommsat/computer) +"bUS" = ( +/obj/machinery/computer/telecomms/server{ + network = "tcommsat" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 10 + }, +/area/tcommsat/computer) +"bUT" = ( +/obj/machinery/computer/message_monitor, +/turf/open/floor/plasteel/yellow/side{ + dir = 6 + }, +/area/tcommsat/computer) +"bUU" = ( +/obj/structure/cable{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/tcommsat/computer) +"bUV" = ( +/turf/closed/wall/r_wall, +/area/tcommsat/server) +"bUW" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/closed/wall/r_wall, +/area/tcommsat/server) +"bUX" = ( +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/obj/structure/cable{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bUY" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/tcommsat/computer) +"bUZ" = ( +/obj/machinery/door/airlock/glass_engineering{ + cyclelinkeddir = 1; + name = "Server Room"; + req_access_txt = "61" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/tcommsat/computer) +"bVa" = ( +/obj/machinery/blackbox_recorder, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bVb" = ( +/obj/machinery/message_server, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bVc" = ( +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 1; + layer = 4; + name = "Telecoms Server APC"; + pixel_x = 0; + pixel_y = 24 + }, +/obj/structure/cable, +/turf/open/floor/plasteel/black, +/area/tcommsat/server) +"bVd" = ( +/obj/machinery/power/terminal{ + icon_state = "term"; + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/tcommsat/server) +"bVe" = ( +/turf/open/floor/plasteel/black, +/area/tcommsat/server) +"bVf" = ( +/obj/machinery/telecomms/bus/preset_three, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bVg" = ( +/obj/machinery/telecomms/receiver/preset_left, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bVh" = ( +/obj/machinery/telecomms/processor/preset_three, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bVi" = ( +/obj/machinery/telecomms/processor/preset_one, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bVj" = ( +/obj/machinery/telecomms/receiver/preset_right, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bVk" = ( +/obj/machinery/telecomms/bus/preset_one, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bVl" = ( +/obj/machinery/camera{ + active_power_usage = 0; + c_tag = "Bomb Testing Asteroid Aft"; + desc = "A specially-reinforced camera with a long lasting battery, used to monitor the bomb testing site. An external light is attached to the top."; + dir = 1; + invuln = 1; + luminosity = 3; + name = "Hardened Bomb-Test Camera"; + network = list("Toxins"); + use_power = 0 + }, +/turf/open/floor/plating/asteroid/airless, +/area/mine/explored{ + name = "Bomb Testing Asteroid" + }) +"bVm" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/darkred/side, +/area/tcommsat/server) +"bVn" = ( +/turf/open/floor/plasteel/darkpurple/side, +/area/tcommsat/server) +"bVo" = ( +/turf/open/floor/plasteel/darkgreen/side, +/area/tcommsat/server) +"bVp" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel/darkgreen/side, +/area/tcommsat/server) +"bVq" = ( +/turf/closed/indestructible{ + desc = "A wall impregnated with Fixium, able to withstand massive explosions with ease"; + icon_state = "riveted"; + name = "hyper-reinforced wall" + }, +/area/mine/explored{ + name = "Bomb Testing Asteroid" + }) +"bVr" = ( +/obj/machinery/telecomms/server/presets/security, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bVs" = ( +/obj/machinery/telecomms/server/presets/science, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bVt" = ( +/obj/machinery/telecomms/hub/preset, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bVu" = ( +/obj/machinery/telecomms/server/presets/common, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bVv" = ( +/obj/machinery/telecomms/server/presets/service, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bVw" = ( +/obj/machinery/telecomms/server/presets/medical, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bVx" = ( +/obj/machinery/telecomms/server/presets/command, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bVy" = ( +/obj/machinery/power/terminal, +/obj/machinery/ntnet_relay, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bVz" = ( +/obj/machinery/telecomms/server/presets/supply, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bVA" = ( +/obj/machinery/telecomms/server/presets/engineering, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bVB" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/darkblue/side{ + dir = 1 + }, +/area/tcommsat/server) +"bVC" = ( +/turf/open/floor/plasteel/darkblue/side{ + dir = 1 + }, +/area/tcommsat/server) +"bVD" = ( +/turf/open/floor/plasteel/darkyellow/side{ + dir = 1 + }, +/area/tcommsat/server) +"bVE" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel/darkyellow/side{ + dir = 1 + }, +/area/tcommsat/server) +"bVF" = ( +/obj/machinery/telecomms/processor/preset_four, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bVG" = ( +/obj/machinery/telecomms/broadcaster/preset_left, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bVH" = ( +/obj/machinery/telecomms/bus/preset_four, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bVI" = ( +/obj/machinery/telecomms/bus/preset_two, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bVJ" = ( +/obj/machinery/telecomms/broadcaster/preset_right, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bVK" = ( +/obj/machinery/telecomms/processor/preset_two, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bVL" = ( +/obj/structure/table, +/obj/item/weapon/stock_parts/subspace/amplifier, +/obj/item/weapon/stock_parts/subspace/amplifier, +/obj/item/weapon/stock_parts/subspace/analyzer, +/obj/item/weapon/stock_parts/subspace/analyzer, +/turf/open/floor/plasteel/black, +/area/tcommsat/server) +"bVM" = ( +/obj/structure/table, +/obj/item/weapon/stock_parts/subspace/ansible, +/obj/item/weapon/stock_parts/subspace/ansible, +/obj/item/weapon/stock_parts/subspace/crystal, +/obj/item/weapon/stock_parts/subspace/crystal, +/turf/open/floor/plasteel/black, +/area/tcommsat/server) +"bVN" = ( +/obj/structure/table, +/obj/item/weapon/stock_parts/subspace/filter, +/obj/item/weapon/stock_parts/subspace/filter, +/obj/item/weapon/stock_parts/subspace/transmitter, +/obj/item/weapon/stock_parts/subspace/transmitter, +/turf/open/floor/plasteel/black, +/area/tcommsat/server) +"bVO" = ( +/obj/machinery/camera/motion{ + c_tag = "Telecoms Server Room"; + dir = 1; + network = list("SS13","Telecoms") + }, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bVP" = ( +/obj/structure/table, +/obj/item/weapon/stock_parts/subspace/treatment, +/obj/item/weapon/stock_parts/subspace/treatment, +/obj/item/weapon/stock_parts/manipulator, +/obj/item/weapon/stock_parts/manipulator, +/turf/open/floor/plasteel/black, +/area/tcommsat/server) +"bVQ" = ( +/obj/structure/table, +/obj/item/weapon/stock_parts/console_screen, +/obj/item/weapon/stock_parts/console_screen, +/obj/item/weapon/stock_parts/micro_laser, +/obj/item/weapon/stock_parts/micro_laser, +/turf/open/floor/plasteel/black, +/area/tcommsat/server) +"bVR" = ( +/obj/structure/table, +/obj/item/weapon/stock_parts/scanning_module, +/obj/item/weapon/stock_parts/scanning_module, +/turf/open/floor/plasteel/black, +/area/tcommsat/server) +"bVS" = ( +/obj/machinery/camera/motion{ + c_tag = "MiniSat External Port"; + dir = 8; + network = list("MiniSat") + }, +/turf/open/space, +/area/space) +"bVT" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/airlock/glass_command{ + name = "AI Core"; + req_access_txt = "65" + }, +/turf/open/floor/plasteel/white, +/area/wreck/ai) +"bVU" = ( +/obj/machinery/camera/motion{ + c_tag = "MiniSat External Starboard"; + dir = 4; + network = list("MiniSat") + }, +/turf/open/space, +/area/space) +"bVV" = ( +/obj/item/device/radio/intercom{ + broadcasting = 1; + frequency = 1447; + listening = 0; + name = "Station Intercom (AI Private)"; + pixel_x = 0; + pixel_y = 24 + }, +/turf/open/floor/bluegrid, +/area/wreck/ai) +"bVW" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/wreck/ai) +"bVX" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/wreck/ai) +"bVY" = ( +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAP) +"bVZ" = ( +/obj/structure/lattice, +/obj/machinery/camera/motion{ + c_tag = "MiniSat Entrance"; + dir = 2; + network = list("MiniSat") + }, +/turf/open/space, +/area/space) +"bWa" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/security/transfer) +"bWb" = ( +/obj/structure/closet/l3closet, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"bWc" = ( +/obj/structure/closet/bombcloset, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"bWd" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/sign/barsign, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"bWe" = ( +/turf/closed/wall/r_wall, +/area/security/hos) +"bWf" = ( +/obj/machinery/door/poddoor/shutters{ + id = "supplybridge" + }, +/turf/open/floor/plating/warnplate{ + tag = "icon-warnplate (NORTH)"; + dir = 1 + }, +/area/maintenance/fsmaint) +"bWg" = ( +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/security/main) +"bWh" = ( +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"bWi" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -24 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"bWj" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating/warnplate{ + tag = "icon-warnplate (WEST)"; + dir = 8 + }, +/area/maintenance/fsmaint) +"bWk" = ( +/obj/machinery/door/airlock/glass{ + name = "space-bridge access" + }, +/obj/machinery/button/door{ + id = "supplybridge"; + name = "Space Bridge Control"; + pixel_x = 0; + pixel_y = 27; + req_access_txt = "0" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating/warnplate{ + tag = "icon-warnplate (WEST)"; + dir = 8 + }, +/area/maintenance/fsmaint) +"bWl" = ( +/obj/item/weapon/storage/secure/safe{ + pixel_x = -22; + pixel_y = 32 + }, +/turf/open/floor/plasteel/darkred/side, +/area/security/hos) +"bWm" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -27 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/main) +"bWn" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/black, +/area/security/processing{ + name = "Crematorium" + }) +"bWo" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/closed/wall, +/area/security/processing{ + name = "Crematorium" + }) +"bWp" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/security/main) +"bWq" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/fsmaint) +"bWr" = ( +/turf/closed/wall/r_wall, +/area/maintenance/fore) +"bWs" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/fsmaint) +"bWt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) +"bWu" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating/warnplate, +/area/crew_quarters/sleep) +"bWv" = ( +/obj/machinery/computer/shuttle/monastery_shuttle, +/obj/structure/sign/pods{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/sleep) +"bWw" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/crew_quarters/sleep) +"bWx" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"bWy" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 28 + }, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (EAST)"; + dir = 4 + }, +/area/bridge) +"bWz" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = 30 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"bWA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/extinguisher_cabinet{ + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"bWB" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"bWC" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"bWD" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/obj/structure/extinguisher_cabinet{ + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bWE" = ( +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"bWF" = ( +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"bWG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26; + pixel_y = 0 + }, +/turf/open/floor/plasteel/red/corner{ + tag = "icon-redcorner (WEST)"; + dir = 8 + }, +/area/hallway/primary/fore) +"bWH" = ( +/obj/machinery/porta_turret/ai{ + dir = 8 + }, +/turf/open/floor/plasteel/darkblue, +/area/ai_monitored/turret_protected/ai_upload) +"bWI" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"bWJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel/red/corner, +/area/hallway/primary/fore) +"bWK" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel, +/area/storage/primary) +"bWL" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -24 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"bWM" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bWN" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 4; + req_access_txt = "13" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bWO" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 8; + req_access_txt = "13" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bWP" = ( +/obj/structure/table, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/item/device/taperecorder, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bWQ" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bWR" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/bot, +/area/hallway/primary/central) +"bWS" = ( +/obj/structure/sink{ + icon_state = "sink"; + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/structure/mirror{ + pixel_x = -28 + }, +/obj/effect/decal/cleanable/vomit/old, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"bWT" = ( +/obj/machinery/camera{ + c_tag = "Dormitory Toilets"; + dir = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"bWU" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable, +/obj/structure/cable{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"bWV" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"bWW" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"bWX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"bWY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"bWZ" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"bXa" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"bXb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = 29 + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"bXc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23 + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"bXd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = 30 + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"bXe" = ( +/obj/structure/toilet{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/decal/cleanable/deadcockroach, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"bXf" = ( +/obj/machinery/recharge_station, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"bXg" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/apmaint) +"bXh" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/apmaint) +"bXi" = ( +/obj/structure/closet/coffin, +/obj/item/toy/figure/ian, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bXj" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"bXk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bXl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/blue/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"bXm" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/turf/open/floor/plating, +/area/teleporter) +"bXn" = ( +/obj/machinery/door/airlock/glass{ + name = "Emergency Shuttle Cargo Hold"; + req_access_txt = "0" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"bXo" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0 + }, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"bXp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/sign/directions/evac{ + dir = 1; + icon_state = "direction_evac"; + pixel_x = 32; + pixel_y = 0; + tag = "icon-direction_evac (NORTH)" + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/central) +"bXq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/brown/corner{ + dir = 1; + tag = "icon-browncorner (NORTH)" + }, +/area/hallway/primary/central) +"bXr" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bXs" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/brown/corner{ + dir = 1; + tag = "icon-browncorner (NORTH)" + }, +/area/hallway/primary/central) +"bXt" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -24 + }, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"bXu" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"bXv" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bXw" = ( +/obj/structure/closet, +/obj/item/weapon/canvas/twentythreeXnineteen, +/obj/item/weapon/canvas/nineteenXnineteen, +/obj/item/weapon/canvas/twentythreeXtwentythree, +/obj/item/weapon/storage/crayons, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bXx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"bXy" = ( +/obj/effect/decal/remains/human, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bXz" = ( +/turf/closed/wall/r_wall, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"bXA" = ( +/turf/closed/wall/r_wall, +/area/security/checkpoint2{ + name = "Customs" + }) +"bXB" = ( +/obj/item/weapon/reagent_containers/glass/bucket, +/turf/open/floor/plasteel, +/area/hydroponics) +"bXC" = ( +/obj/structure/window/reinforced, +/obj/item/device/flashlight/lantern, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"bXD" = ( +/obj/item/device/flashlight/lantern, +/obj/structure/window/reinforced, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"bXE" = ( +/obj/structure/grille/broken, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bXF" = ( +/turf/open/floor/plasteel/green/corner{ + dir = 4 + }, +/area/hydroponics) +"bXG" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/green/corner{ + dir = 1 + }, +/area/hydroponics) +"bXH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"bXI" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar) +"bXJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = 30 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar) +"bXK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel/brown/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"bXL" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/arrival{ + dir = 1 + }, +/area/hallway/secondary/entry) +"bXM" = ( +/turf/open/floor/plasteel/green/side{ + dir = 4 + }, +/area/hydroponics) +"bXN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"bXO" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/book/manual/barman_recipes, +/obj/item/weapon/reagent_containers/glass/rag, +/turf/open/floor/plasteel/darkred/side{ + dir = 8 + }, +/area/crew_quarters/bar) +"bXP" = ( +/obj/machinery/computer/slot_machine, +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = 26 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/bar) +"bXQ" = ( +/obj/machinery/computer/slot_machine, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/bar) +"bXR" = ( +/obj/machinery/computer/arcade, +/obj/structure/noticeboard{ + pixel_y = 32 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/bar) +"bXS" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/button/door{ + dir = 2; + id = "jangarage"; + name = "Custodial Closet Shutters Control"; + pixel_x = 25; + pixel_y = 0 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/central) +"bXT" = ( +/obj/effect/landmark/start{ + name = "Botanist" + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/hydroponics) +"bXU" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/green/side{ + dir = 8 + }, +/area/hydroponics) +"bXV" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"bXW" = ( +/obj/structure/table/wood/fancy, +/obj/item/toy/cards/deck, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/bar) +"bXX" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters{ + id = "jangarage"; + name = "Custodial Closet Shutters" + }, +/turf/open/floor/plasteel/delivery, +/area/janitor) +"bXY" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/window/westright{ + dir = 1; + name = "Hydroponics Desk"; + req_access_txt = "35" + }, +/obj/item/weapon/reagent_containers/food/snacks/monkeycube, +/turf/open/floor/plasteel, +/area/hydroponics) +"bXZ" = ( +/obj/machinery/newscaster{ + pixel_y = 1 + }, +/turf/closed/wall, +/area/crew_quarters/kitchen) +"bYa" = ( +/obj/structure/chair/wood/normal{ + icon_state = "wooden_chair"; + dir = 1 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/bar) +"bYb" = ( +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/structure/chair/wood/normal{ + icon_state = "wooden_chair"; + dir = 1 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/bar) +"bYc" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Bar" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/sign/poster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"bYd" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plasteel/brown/corner{ + dir = 1; + tag = "icon-browncorner (NORTH)" + }, +/area/hallway/primary/central) +"bYe" = ( +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/apmaint) +"bYf" = ( +/obj/item/chair, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/apmaint) +"bYg" = ( +/turf/open/floor/plasteel/green/corner{ + dir = 8 + }, +/area/hydroponics) +"bYh" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/green/corner{ + dir = 8 + }, +/area/hydroponics) +"bYi" = ( +/obj/machinery/door/airlock/glass{ + name = "Kitchen"; + req_access_txt = "25;28" + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/kitchen) +"bYj" = ( +/obj/structure/chair/stool/bar, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar) +"bYk" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Bar" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"bYl" = ( +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/apmaint) +"bYm" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/sign/poster{ + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bYn" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"bYo" = ( +/obj/structure/sink{ + icon_state = "sink"; + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/effect/decal/cleanable/deadcockroach, +/turf/open/floor/plasteel/green/side{ + dir = 8 + }, +/area/hydroponics) +"bYp" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bYq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -28 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"bYr" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"bYs" = ( +/obj/structure/chair/wood/normal{ + icon_state = "wooden_chair"; + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"bYt" = ( +/obj/structure/chair/wood/normal{ + icon_state = "wooden_chair"; + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"bYu" = ( +/obj/machinery/hydroponics/constructable, +/turf/open/floor/plasteel/green/side, +/area/hydroponics) +"bYv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/crew_quarters/bar) +"bYw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar) +"bYx" = ( +/obj/structure/frame/machine, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bYy" = ( +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"bYz" = ( +/obj/machinery/atmospherics/components/unary/tank/air, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"bYA" = ( +/turf/closed/wall, +/area/construction/quarters{ + name = "Lounge" + }) +"bYB" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/purple/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"bYC" = ( +/obj/structure/table, +/obj/item/trash/plate, +/obj/item/weapon/storage/fancy/rollingpapers, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"bYD" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"bYE" = ( +/obj/structure/table, +/obj/item/weapon/storage/fancy, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"bYF" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-14"; + layer = 4.1 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"bYG" = ( +/obj/structure/chair, +/obj/item/clothing/head/bowler, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"bYH" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 0; + pixel_y = 27 + }, +/obj/structure/chair, +/obj/item/clothing/mask/cigarette, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"bYI" = ( +/obj/structure/sign/poster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"bYJ" = ( +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bYK" = ( +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/assembly/chargebay) +"bYL" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "arrivy"; + name = "ship shutters" + }, +/turf/open/floor/plating, +/area/shuttle/arrival) +"bYM" = ( +/obj/machinery/door/airlock/titanium{ + name = "Arrivals Shuttle Airlock" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"bYN" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/landmark{ + name = "JoinLate" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9; + pixel_y = 0 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"bYO" = ( +/obj/item/trash/tray, +/obj/item/weapon/reagent_containers/food/snacks/badrecipe, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bYP" = ( +/obj/structure/closet/radiation, +/obj/structure/sign/poster{ + pixel_x = 32 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bYQ" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bYR" = ( +/obj/item/chair, +/obj/item/trash/popcorn, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/apmaint) +"bYS" = ( +/obj/structure/chair, +/obj/structure/sign/poster{ + pixel_x = 32 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/apmaint) +"bYT" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = -29 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"bYU" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/secondary/entry) +"bYV" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/carpet, +/area/construction/quarters{ + name = "Lounge" + }) +"bYW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/corner, +/area/hallway/primary/central) +"bYX" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/blue/corner, +/area/hallway/primary/central) +"bYY" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/purple/corner, +/area/hallway/primary/central) +"bYZ" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/purple/corner, +/area/hallway/primary/central) +"bZa" = ( +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/assembly/chargebay) +"bZb" = ( +/obj/item/weapon/wrench, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bZc" = ( +/obj/structure/table, +/obj/item/trash/plate, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/apmaint) +"bZd" = ( +/obj/structure/table, +/obj/item/weapon/kitchen/fork, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/apmaint) +"bZe" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp/green{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/machinery/power/apc{ + dir = 2; + name = "Lounge APC"; + pixel_x = 0; + pixel_y = -24 + }, +/obj/structure/cable, +/turf/open/floor/plasteel/grimy, +/area/construction/quarters{ + name = "Lounge" + }) +"bZf" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-05"; + layer = 4.1 + }, +/turf/open/floor/plasteel/blue/side, +/area/hallway/primary/central) +"bZg" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/blue/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"bZh" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plasteel/blue/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"bZi" = ( +/turf/open/floor/plasteel/blue/side, +/area/hallway/primary/central) +"bZj" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-10"; + layer = 4.1 + }, +/turf/open/floor/plasteel/purple/side, +/area/hallway/primary/central) +"bZk" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bZl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/shower{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bZm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/sink{ + dir = 8; + icon_state = "sink"; + pixel_x = -12 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bZn" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bZo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bZp" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bZq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bZr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/chair/stool, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bZs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/chair/stool, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bZt" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bZu" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-05"; + layer = 4.1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bZv" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bZw" = ( +/turf/open/floor/plasteel/warning/corner, +/area/assembly/robotics) +"bZx" = ( +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/assembly/robotics) +"bZy" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/whitepurple/side, +/area/medical/research{ + name = "Research Division" + }) +"bZz" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-17" + }, +/turf/open/floor/plasteel/whitepurple/side, +/area/medical/research{ + name = "Research Division" + }) +"bZA" = ( +/turf/open/floor/plasteel/warnwhite{ + dir = 8 + }, +/area/medical/genetics) +"bZB" = ( +/obj/machinery/smartfridge/chemistry, +/turf/open/floor/plasteel/black, +/area/medical/chemistry) +"bZC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/extinguisher_cabinet{ + pixel_x = -24 + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/hallway/primary/aft) +"bZD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/yellow/corner{ + tag = "icon-yellowcorner (EAST)"; + icon_state = "yellowcorner"; + dir = 4 + }, +/area/hallway/primary/aft) +"bZE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/hallway/primary/aft) +"bZF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/chair/stool, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bZG" = ( +/turf/open/floor/plasteel/purple/side{ + dir = 8 + }, +/area/assembly/robotics) +"bZH" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bZI" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bZJ" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/aft) +"bZK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/sign/poster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bZL" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bZM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/bed/roller, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bZN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/bed/roller, +/obj/machinery/iv_drip{ + density = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bZO" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bZP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bZQ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bZR" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bZS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-20"; + layer = 4.1; + pixel_y = 3 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bZT" = ( +/obj/structure/chair/comfy{ + tag = "icon-comfychair (EAST)"; + icon_state = "comfychair"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bZU" = ( +/obj/structure/chair/comfy{ + tag = "icon-comfychair (WEST)"; + icon_state = "comfychair"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bZV" = ( +/turf/open/floor/plasteel/white/side{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"bZW" = ( +/obj/item/weapon/folder/white, +/obj/item/clothing/gloves/color/latex, +/obj/structure/table/glass, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/hallway/primary/aft) +"bZX" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bZY" = ( +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 2 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bZZ" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plating, +/area/maintenance/aft) +"caa" = ( +/obj/structure/grille/broken, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"cab" = ( +/obj/machinery/atmospherics/pipe/manifold/general/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cac" = ( +/obj/machinery/atmospherics/pipe/manifold/general/hidden, +/obj/machinery/meter, +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/maintenance/aft) +"cad" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Air Out"; + on = 1 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cae" = ( +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics Maintenance"; + req_access_txt = "12;24" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"caf" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cag" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/sign/poster{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 8 + }, +/area/hallway/primary/aft) +"cah" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"cai" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"caj" = ( +/obj/docking_port/stationary{ + dwidth = 2; + height = 6; + id = "monastery_shuttle_asteroid"; + name = "monastery"; + width = 5 + }, +/turf/open/space, +/area/space) +"cak" = ( +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/maintenance/aft) +"cal" = ( +/obj/effect/decal/cleanable/vomit/old, +/turf/open/floor/plating, +/area/maintenance/aft) +"cam" = ( +/obj/structure/chair/office/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/surgery) +"can" = ( +/turf/closed/wall/r_wall, +/area/space) +"cao" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/space, +/area/space) +"cap" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/chapel/dock) +"caq" = ( +/obj/machinery/door/airlock/external{ + name = "Pod Docking Bay" + }, +/turf/open/floor/plating, +/area/chapel/dock) +"car" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 2 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"cas" = ( +/turf/open/floor/plasteel/darkwarning{ + dir = 9 + }, +/area/maintenance/aft) +"cat" = ( +/turf/open/floor/plating, +/area/chapel/dock) +"cau" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/chapel/dock) +"cav" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/chapel/dock) +"caw" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/space, +/area/space) +"cax" = ( +/turf/open/floor/plasteel/darkwarning{ + dir = 8 + }, +/area/maintenance/aft) +"cay" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/obj/structure/sign/deathsposal, +/turf/open/floor/plating, +/area/medical/virology) +"caz" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/atmos) +"caA" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/atmos) +"caB" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/closed/wall, +/area/chapel/dock) +"caC" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/chapel/dock) +"caD" = ( +/obj/machinery/computer/shuttle/monastery_shuttle, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/chapel/dock) +"caE" = ( +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 2 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/chapel/dock) +"caF" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"caG" = ( +/obj/effect/decal/cleanable/oil{ + icon_state = "floor6" + }, +/obj/effect/decal/cleanable/robot_debris/old, +/turf/open/floor/plating, +/area/maintenance/aft) +"caH" = ( +/turf/open/floor/plasteel/darkwarning{ + dir = 4 + }, +/area/maintenance/aft) +"caI" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced, +/turf/open/space, +/area/space) +"caJ" = ( +/turf/closed/wall/r_wall, +/area/chapel/dock) +"caK" = ( +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/turf/open/floor/plasteel/black, +/area/chapel/dock) +"caL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4"; + tag = "" + }, +/turf/open/floor/plasteel/black, +/area/chapel/dock) +"caM" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/black, +/area/chapel/dock) +"caN" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "Monastery Docking Bay APC"; + pixel_x = 24 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/chapel/dock) +"caO" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/turf/open/space, +/area/space) +"caP" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/engine, +/area/maintenance/aft) +"caQ" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/aft) +"caR" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/chair/office/light{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"caS" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"caT" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/chapel/asteroid{ + name = "Monastery Asteroid" + }) +"caU" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -24 + }, +/obj/machinery/light/small, +/obj/machinery/camera{ + c_tag = "Monastery Dock"; + dir = 1; + network = list("SS13","Monastery") + }, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/chapel/dock) +"caV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/black, +/area/chapel/dock) +"caW" = ( +/turf/open/floor/plasteel/black, +/area/chapel/dock) +"caX" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = 27 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/chapel/dock) +"caY" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Pure to Mix"; + on = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"caZ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 10; + initialize_directions = 10 + }, +/turf/open/floor/plating, +/area/atmos) +"cba" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"cbb" = ( +/turf/open/floor/plating/asteroid, +/area/chapel/asteroid{ + name = "Monastery Asteroid" + }) +"cbc" = ( +/turf/closed/wall, +/area/chapel/dock) +"cbd" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/vault, +/area/chapel/dock) +"cbe" = ( +/turf/open/floor/plasteel/vault, +/area/chapel/dock) +"cbf" = ( +/turf/open/floor/plasteel/darkwarning{ + dir = 10 + }, +/area/maintenance/aft) +"cbg" = ( +/obj/structure/chair/comfy/black{ + dir = 1 + }, +/turf/open/floor/plasteel/darkwarning, +/area/maintenance/aft) +"cbh" = ( +/turf/open/floor/plasteel/darkwarning{ + dir = 6 + }, +/area/maintenance/aft) +"cbi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/extinguisher_cabinet{ + pixel_x = -24 + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 8 + }, +/area/hallway/primary/aft) +"cbj" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"cbk" = ( +/obj/machinery/atmospherics/pipe/manifold4w/yellow/visible, +/turf/open/floor/plasteel, +/area/atmos) +"cbl" = ( +/obj/machinery/door/airlock/centcom{ + name = "Chapel"; + opacity = 1 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/chapel/dock) +"cbm" = ( +/obj/machinery/door/airlock/centcom{ + name = "Chapel"; + opacity = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/chapel/dock) +"cbn" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cbo" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cbp" = ( +/turf/closed/wall, +/area/atmos) +"cbq" = ( +/obj/machinery/camera{ + c_tag = "Monastery Asteroid Dock Port"; + dir = 4; + network = list("SS13","Monastery") + }, +/turf/open/floor/plating/asteroid, +/area/chapel/asteroid{ + name = "Monastery Asteroid" + }) +"cbr" = ( +/obj/structure/flora/ausbushes/leafybush, +/obj/structure/flora/ausbushes/reedbush, +/turf/open/floor/plating/asteroid, +/area/chapel/asteroid{ + name = "Monastery Asteroid" + }) +"cbs" = ( +/obj/item/device/flashlight/lantern{ + on = 1 + }, +/turf/open/floor/plating/asteroid, +/area/chapel/asteroid{ + name = "Monastery Asteroid" + }) +"cbt" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/asteroid{ + icon_plating = "asteroid" + }, +/area/chapel/asteroid{ + name = "Monastery Asteroid" + }) +"cbu" = ( +/turf/open/floor/plasteel/asteroid{ + icon_plating = "asteroid" + }, +/area/chapel/asteroid{ + name = "Monastery Asteroid" + }) +"cbv" = ( +/obj/machinery/camera{ + c_tag = "Monastery Asteroid Dock Staboard"; + dir = 8; + network = list("SS13","Monastery") + }, +/turf/open/floor/plating/asteroid, +/area/chapel/asteroid{ + name = "Monastery Asteroid" + }) +"cbw" = ( +/turf/open/floor/plasteel/darkwarning/corner, +/area/engine/gravity_generator) +"cbx" = ( +/turf/open/floor/plasteel/darkwarning, +/area/engine/gravity_generator) +"cby" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/aft) +"cbz" = ( +/turf/open/floor/plasteel/darkwarning{ + dir = 4 + }, +/area/engine/gravity_generator) +"cbA" = ( +/obj/structure/lattice, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"cbB" = ( +/turf/open/floor/plasteel/darkwarning{ + dir = 8 + }, +/area/engine/gravity_generator) +"cbC" = ( +/turf/open/floor/plasteel/darkwarning{ + dir = 8 + }, +/area/storage/tech) +"cbD" = ( +/obj/structure/flora/ausbushes, +/turf/open/floor/plating/asteroid, +/area/chapel/asteroid{ + name = "Monastery Asteroid" + }) +"cbE" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cbF" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cbG" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cbH" = ( +/obj/item/device/radio/beacon, +/turf/open/floor/plasteel, +/area/atmos) +"cbI" = ( +/obj/structure/lattice, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/space, +/area/space) +"cbJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) +"cbK" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"cbL" = ( +/turf/open/floor/plasteel/darkwarning/corner{ + tag = "icon-black_warn_corner (WEST)"; + icon_state = "black_warn_corner"; + dir = 8 + }, +/area/engine/gravity_generator) +"cbM" = ( +/turf/open/floor/plasteel/darkwarning{ + dir = 1 + }, +/area/engine/gravity_generator) +"cbN" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) +"cbO" = ( +/obj/structure/sign/directions/engineering{ + tag = "icon-direction_eng (EAST)"; + icon_state = "direction_eng"; + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/aft) +"cbP" = ( +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/aft) +"cbQ" = ( +/obj/item/clothing/head/welding, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/aft) +"cbR" = ( +/obj/structure/flora/ausbushes/fernybush, +/turf/open/floor/plating/asteroid, +/area/chapel/asteroid{ + name = "Monastery Asteroid" + }) +"cbS" = ( +/obj/structure/lattice, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/space, +/area/space) +"cbT" = ( +/obj/structure/lattice, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/space, +/area/space/nearstation) +"cbU" = ( +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/aft) +"cbV" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/aft) +"cbW" = ( +/obj/structure/window/reinforced, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"cbX" = ( +/obj/structure/disposaloutlet, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"cbY" = ( +/obj/structure/grille/broken, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/aft) +"cbZ" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/aft) +"cca" = ( +/obj/item/weapon/cigbutt/cigarbutt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/aft) +"ccb" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/maintenance/aft) +"ccc" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/space, +/area/space) +"ccd" = ( +/obj/structure/flora/ausbushes/leafybush, +/obj/structure/flora/ausbushes/reedbush, +/obj/machinery/camera{ + c_tag = "Monastery Asteroid Primary Entrance"; + dir = 1; + network = list("SS13","Monastery") + }, +/turf/open/floor/plating/asteroid, +/area/chapel/asteroid{ + name = "Monastery Asteroid" + }) +"cce" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Air to Pure"; + on = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"ccf" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plating, +/area/atmos) +"ccg" = ( +/obj/structure/flora/ausbushes, +/obj/machinery/camera{ + c_tag = "Monastery Asteroid Port Fore"; + dir = 1; + network = list("SS13","Monastery") + }, +/turf/open/floor/plating/asteroid, +/area/chapel/asteroid{ + name = "Monastery Asteroid" + }) +"cch" = ( +/turf/closed/wall, +/area/chapel/main{ + name = "Monastery" + }) +"cci" = ( +/obj/machinery/door/airlock/centcom{ + name = "Chapel"; + opacity = 1 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"ccj" = ( +/obj/machinery/door/airlock/centcom{ + name = "Chapel"; + opacity = 1 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"cck" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/chapel/asteroid{ + name = "Monastery Asteroid" + }) +"ccl" = ( +/obj/structure/lattice, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/space, +/area/space/nearstation) +"ccm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/requests_console{ + announcementConsole = 0; + department = "Engineering"; + departmentType = 4; + name = "Engineering RC"; + pixel_x = -32; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ccn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"cco" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side, +/area/atmos) +"ccp" = ( +/obj/machinery/atmospherics/components/trinary/mixer{ + node1_concentration = 0.8; + node2_concentration = 0.2; + on = 1 + }, +/turf/open/floor/plasteel/yellow/side, +/area/atmos) +"ccq" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/atmos) +"ccr" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"ccs" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"cct" = ( +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"ccu" = ( +/obj/item/device/radio/beacon, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"ccv" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 4 + }, +/turf/open/floor/plating, +/area/chapel/asteroid{ + name = "Monastery Asteroid" + }) +"ccw" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/chapel/asteroid{ + name = "Monastery Asteroid" + }) +"ccx" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 8 + }, +/turf/open/floor/plating, +/area/chapel/asteroid{ + name = "Monastery Asteroid" + }) +"ccy" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 4; + req_access_txt = "13" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"ccz" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"ccA" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 8; + req_access_txt = "13" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"ccB" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/aft) +"ccC" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 5; + initialize_directions = 12 + }, +/turf/open/floor/plating, +/area/atmos) +"ccD" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4; + initialize_directions = 12 + }, +/turf/open/floor/plating, +/area/atmos) +"ccE" = ( +/obj/machinery/atmospherics/pipe/simple/green/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/closed/wall/r_wall, +/area/atmos) +"ccF" = ( +/obj/machinery/atmospherics/pipe/simple/green/hidden{ + tag = "icon-intact (NORTHWEST)"; + icon_state = "intact"; + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/atmos) +"ccG" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"ccH" = ( +/obj/machinery/door/morgue{ + name = "Confession Booth" + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"ccI" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/chapel{ + dir = 1 + }, +/area/chapel/main{ + name = "Monastery" + }) +"ccJ" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/chapel{ + dir = 4 + }, +/area/chapel/main{ + name = "Monastery" + }) +"ccK" = ( +/obj/structure/chair, +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = 30; + pixel_y = 0 + }, +/turf/open/floor/plasteel/chapel{ + dir = 4 + }, +/area/chapel/main{ + name = "Monastery" + }) +"ccL" = ( +/obj/structure/lattice, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/turf/open/space, +/area/space/nearstation) +"ccM" = ( +/obj/structure/closet/emcloset{ + anchored = 1; + desc = "It's a storage unit for emergency breath masks and O2 tanks, and is securely bolted in place."; + name = "anchored emergency closet" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"ccN" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"ccO" = ( +/obj/structure/chair, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/chapel{ + dir = 8 + }, +/area/chapel/main{ + name = "Monastery" + }) +"ccP" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/chapel, +/area/chapel/main{ + name = "Monastery" + }) +"ccQ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/carpet, +/area/chapel/main{ + name = "Monastery" + }) +"ccR" = ( +/turf/open/floor/carpet, +/area/chapel/main{ + name = "Monastery" + }) +"ccS" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/chapel{ + dir = 8 + }, +/area/chapel/main{ + name = "Monastery" + }) +"ccT" = ( +/obj/structure/chair, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/chapel, +/area/chapel/main{ + name = "Monastery" + }) +"ccU" = ( +/mob/living/simple_animal/butterfly, +/turf/open/floor/grass, +/area/hallway/secondary/construction{ + name = "\improper Monastery Garden" + }) +"ccV" = ( +/obj/machinery/camera{ + c_tag = "Monastery Asteroid Port"; + dir = 1; + network = list("SS13","Monastery") + }, +/turf/open/floor/plating/asteroid, +/area/chapel/asteroid{ + name = "Monastery Asteroid" + }) +"ccW" = ( +/obj/structure/flora/ausbushes/palebush, +/turf/open/floor/plating/asteroid, +/area/chapel/asteroid{ + name = "Monastery Asteroid" + }) +"ccX" = ( +/turf/closed/wall, +/area/chapel/office) +"ccY" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/tinted/fulltile, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"ccZ" = ( +/turf/closed/wall, +/area/chapel/asteroid{ + name = "Monastery Asteroid" + }) +"cda" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"cdb" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"cdc" = ( +/obj/machinery/holopad, +/obj/item/device/flashlight/lantern, +/turf/open/floor/plasteel/chapel, +/area/chapel/main{ + name = "Monastery" + }) +"cdd" = ( +/obj/item/device/flashlight/lantern, +/turf/open/floor/plasteel/chapel{ + dir = 8 + }, +/area/chapel/main{ + name = "Monastery" + }) +"cde" = ( +/obj/structure/chair, +/obj/machinery/camera{ + c_tag = "Chapel"; + dir = 8; + network = list("SS13","Monastery") + }, +/turf/open/floor/plasteel/chapel, +/area/chapel/main{ + name = "Monastery" + }) +"cdf" = ( +/obj/structure/flora/ausbushes/pointybush, +/obj/machinery/camera{ + c_tag = "Monastery Asteroid Starboard"; + dir = 1; + network = list("SS13","Monastery") + }, +/turf/open/floor/plating/asteroid, +/area/chapel/asteroid{ + name = "Monastery Asteroid" + }) +"cdg" = ( +/obj/structure/flora/ausbushes/genericbush, +/turf/open/floor/plating/asteroid, +/area/chapel/asteroid{ + name = "Monastery Asteroid" + }) +"cdh" = ( +/obj/structure/closet{ + name = "chaplain closet" + }, +/obj/item/clothing/under/rank/chaplain, +/obj/item/clothing/shoes/sneakers/black, +/obj/item/weapon/storage/backpack/cultpack, +/obj/item/weapon/storage/fancy/candle_box, +/obj/item/weapon/storage/fancy/candle_box, +/obj/item/clothing/suit/nun, +/obj/item/clothing/head/nun_hood, +/obj/item/clothing/suit/holidaypriest, +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = 26 + }, +/obj/machinery/requests_console{ + department = "Chapel"; + departmentType = 2; + pixel_x = -32; + pixel_y = 0 + }, +/turf/open/floor/carpet, +/area/chapel/office) +"cdi" = ( +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23 + }, +/turf/open/floor/carpet, +/area/chapel/office) +"cdj" = ( +/obj/structure/table/wood, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-18"; + layer = 4.1; + pixel_y = 8 + }, +/obj/machinery/camera{ + c_tag = "Chapel Office"; + dir = 2; + network = list("SS13","Monastery") + }, +/turf/open/floor/carpet, +/area/chapel/office) +"cdk" = ( +/obj/machinery/door/morgue{ + name = "Confession Booth" + }, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"cdl" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/chapel{ + dir = 1 + }, +/area/chapel/main{ + name = "Monastery" + }) +"cdm" = ( +/turf/open/floor/plasteel/chapel{ + dir = 4 + }, +/area/chapel/main{ + name = "Monastery" + }) +"cdn" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/book/bible, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/carpet, +/area/chapel/main{ + name = "Monastery" + }) +"cdo" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/drinks/trophy{ + pixel_y = 8 + }, +/turf/open/floor/carpet, +/area/chapel/main{ + name = "Monastery" + }) +"cdp" = ( +/turf/open/floor/plasteel/chapel{ + dir = 1 + }, +/area/chapel/main{ + name = "Monastery" + }) +"cdq" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/chapel{ + dir = 4 + }, +/area/chapel/main{ + name = "Monastery" + }) +"cdr" = ( +/obj/machinery/door/airlock/centcom{ + name = "Chapel Access"; + opacity = 1 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"cds" = ( +/obj/structure/flora/ausbushes/pointybush, +/turf/open/floor/plating/asteroid, +/area/chapel/asteroid{ + name = "Monastery Asteroid" + }) +"cdt" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/chapel/office) +"cdu" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/chapel/office) +"cdv" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/chapel/office) +"cdw" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/drinks/bottle/holywater{ + name = "flask of holy water"; + pixel_x = -2; + pixel_y = 2 + }, +/obj/item/weapon/nullrod, +/turf/open/floor/carpet, +/area/chapel/office) +"cdx" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/light_switch{ + pixel_x = 26; + pixel_y = -2 + }, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"cdy" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"cdz" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = 26 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4"; + tag = "" + }, +/obj/machinery/camera{ + c_tag = "Chapel Port Access"; + dir = 2; + network = list("SS13","Monastery") + }, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"cdA" = ( +/obj/machinery/door/airlock/centcom{ + name = "Chapel Access"; + opacity = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"cdB" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/turf/open/floor/plasteel/chapel{ + dir = 8 + }, +/area/chapel/main{ + name = "Monastery" + }) +"cdC" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/turf/open/floor/plasteel/chapel, +/area/chapel/main{ + name = "Monastery" + }) +"cdD" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/carpet, +/area/chapel/main{ + name = "Monastery" + }) +"cdE" = ( +/obj/effect/landmark/start{ + name = "Chaplain" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/carpet, +/area/chapel/main{ + name = "Monastery" + }) +"cdF" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/chapel{ + dir = 8 + }, +/area/chapel/main{ + name = "Monastery" + }) +"cdG" = ( +/turf/open/floor/plasteel/chapel, +/area/chapel/main{ + name = "Monastery" + }) +"cdH" = ( +/obj/machinery/door/airlock/centcom{ + name = "Chape Access"; + opacity = 1 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"cdI" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"cdJ" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Chapel Starboard Access"; + dir = 2; + network = list("SS13","Monastery") + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"cdK" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/chapel/main{ + name = "Monastery" + }) +"cdL" = ( +/obj/structure/chair, +/turf/open/floor/plating/asteroid, +/area/chapel/asteroid{ + name = "Monastery Asteroid" + }) +"cdM" = ( +/obj/structure/closet/crate/bin, +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/turf/open/floor/carpet, +/area/chapel/office) +"cdN" = ( +/turf/open/floor/carpet, +/area/chapel/office) +"cdO" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin{ + layer = 2.9; + pixel_x = -2; + pixel_y = 4 + }, +/obj/item/weapon/pen, +/turf/open/floor/carpet, +/area/chapel/office) +"cdP" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4"; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"cdQ" = ( +/obj/machinery/door/airlock/centcom{ + name = "Chapel Office"; + opacity = 1; + req_access_txt = "22" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"cdR" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"cdS" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8"; + tag = "" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"cdT" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-08"; + layer = 4.1 + }, +/turf/open/floor/plasteel/chapel{ + dir = 1 + }, +/area/chapel/main{ + name = "Monastery" + }) +"cdU" = ( +/obj/structure/table/wood/fancy, +/obj/item/weapon/storage/box/matches{ + pixel_x = -3; + pixel_y = 8 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/chapel{ + dir = 4 + }, +/area/chapel/main{ + name = "Monastery" + }) +"cdV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"cdW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"cdX" = ( +/obj/structure/table/wood/fancy, +/obj/item/weapon/storage/fancy/candle_box, +/obj/machinery/light/small, +/turf/open/floor/plasteel/chapel{ + dir = 1 + }, +/area/chapel/main{ + name = "Monastery" + }) +"cdY" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-08"; + layer = 4.1 + }, +/turf/open/floor/plasteel/chapel{ + dir = 4 + }, +/area/chapel/main{ + name = "Monastery" + }) +"cdZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"cea" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"ceb" = ( +/obj/structure/chair/wood/normal, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"cec" = ( +/obj/structure/table, +/obj/item/trash/plate, +/obj/item/weapon/kitchen/fork, +/turf/open/floor/plating/asteroid, +/area/chapel/asteroid{ + name = "Monastery Asteroid" + }) +"ced" = ( +/obj/machinery/field/generator, +/obj/machinery/camera{ + c_tag = "Engineering Secure Storage"; + dir = 4; + network = list("SS13") + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cee" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Chapel Office APC"; + pixel_x = -24; + pixel_y = 0 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"cef" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"ceg" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"ceh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/chapel/office) +"cei" = ( +/obj/machinery/door/airlock/centcom{ + name = "Chapel Access"; + opacity = 1 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"cej" = ( +/obj/machinery/door/airlock/centcom{ + name = "Chapel"; + opacity = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"cek" = ( +/obj/machinery/door/airlock/centcom{ + name = "Chapel"; + opacity = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"cel" = ( +/obj/machinery/door/airlock/centcom{ + name = "Chapel Access"; + opacity = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"cem" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/chapel/main{ + name = "Monastery" + }) +"cen" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/photo_album, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"ceo" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plating/asteroid, +/area/chapel/asteroid{ + name = "Monastery Asteroid" + }) +"cep" = ( +/obj/structure/bodycontainer/crematorium{ + id = "foo" + }, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"ceq" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Chapel Crematorium"; + dir = 2; + network = list("SS13","Monastery") + }, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"cer" = ( +/obj/machinery/door/airlock/centcom{ + name = "Crematorium"; + opacity = 1; + req_access = "27" + }, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"ces" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"cet" = ( +/obj/structure/filingcabinet, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"ceu" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"cev" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4"; + tag = "" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"cew" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"cex" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"cey" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Monastery APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"cez" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"ceA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"ceB" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"ceC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"ceD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"ceE" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"ceF" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"ceG" = ( +/obj/machinery/button/crematorium{ + id = "foo"; + pixel_x = 25 + }, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"ceH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/closed/wall, +/area/chapel/office) +"ceI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/chapel/office) +"ceJ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"ceK" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/chapel/main{ + name = "Monastery" + }) +"ceL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/chapel/main{ + name = "Monastery" + }) +"ceM" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/chapel/main{ + name = "Monastery" + }) +"ceN" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/chapel/main{ + name = "Monastery" + }) +"ceO" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/closet/emcloset{ + anchored = 1; + desc = "It's a storage unit for emergency breath masks and O2 tanks, and is securely bolted in place."; + name = "anchored emergency closet" + }, +/turf/open/floor/plating, +/area/chapel/main{ + name = "Monastery" + }) +"ceP" = ( +/obj/machinery/chem_master/condimaster, +/turf/open/floor/plasteel/hydrofloor, +/area/chapel/main{ + name = "Monastery" + }) +"ceQ" = ( +/obj/machinery/seed_extractor, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/hydrofloor, +/area/chapel/main{ + name = "Monastery" + }) +"ceR" = ( +/obj/machinery/biogenerator, +/turf/open/floor/plasteel/hydrofloor, +/area/chapel/main{ + name = "Monastery" + }) +"ceS" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"ceT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/chapel/main{ + name = "Monastery" + }) +"ceU" = ( +/turf/closed/wall, +/area/hallway/secondary/construction{ + name = "\improper Monastery Garden" + }) +"ceV" = ( +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/hallway/secondary/construction{ + name = "\improper Monastery Garden" + }) +"ceW" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 4 + }, +/turf/open/floor/plating, +/area/chapel/main{ + name = "Monastery" + }) +"ceX" = ( +/turf/open/floor/plating, +/area/chapel/main{ + name = "Monastery" + }) +"ceY" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 8 + }, +/turf/open/floor/plating, +/area/chapel/main{ + name = "Monastery" + }) +"ceZ" = ( +/turf/open/floor/plasteel/asteroid, +/area/chapel/asteroid{ + name = "Monastery Asteroid" + }) +"cfa" = ( +/obj/structure/flora/ausbushes/fernybush, +/obj/machinery/camera{ + c_tag = "Monastery Asteroid Starboard Aft"; + dir = 1; + network = list("SS13","Monastery") + }, +/turf/open/floor/plasteel/asteroid, +/area/chapel/asteroid{ + name = "Monastery Asteroid" + }) +"cfb" = ( +/obj/structure/flora/ausbushes, +/turf/open/floor/plasteel/asteroid, +/area/chapel/asteroid{ + name = "Monastery Asteroid" + }) +"cfc" = ( +/turf/closed/mineral, +/area/chapel/asteroid{ + name = "Monastery Asteroid" + }) +"cfd" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/power/apc{ + dir = 4; + name = "Monastery External APC"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/asteroid{ + icon_plating = "asteroid" + }, +/area/chapel/asteroid{ + name = "Monastery Asteroid" + }) +"cfe" = ( +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plasteel/hydrofloor, +/area/chapel/main{ + name = "Monastery" + }) +"cff" = ( +/obj/item/seeds/wheat, +/turf/open/floor/plasteel/hydrofloor, +/area/chapel/main{ + name = "Monastery" + }) +"cfg" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/hydrofloor, +/area/chapel/main{ + name = "Monastery" + }) +"cfh" = ( +/obj/item/weapon/storage/bag/plants, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 24 + }, +/turf/open/floor/plasteel/hydrofloor, +/area/chapel/main{ + name = "Monastery" + }) +"cfi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/chapel/main{ + name = "Monastery" + }) +"cfj" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"cfk" = ( +/obj/structure/flora/ausbushes/pointybush, +/turf/open/floor/grass, +/area/hallway/secondary/construction{ + name = "\improper Monastery Garden" + }) +"cfl" = ( +/obj/structure/flora/ausbushes/ywflowers, +/obj/structure/flora/ausbushes/sparsegrass, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/grass, +/area/hallway/secondary/construction{ + name = "\improper Monastery Garden" + }) +"cfm" = ( +/obj/structure/flora/ausbushes/ywflowers, +/obj/structure/flora/ausbushes/ppflowers, +/obj/structure/flora/ausbushes/sparsegrass, +/turf/open/floor/grass, +/area/hallway/secondary/construction{ + name = "\improper Monastery Garden" + }) +"cfn" = ( +/obj/structure/flora/ausbushes/ywflowers, +/obj/structure/flora/ausbushes/sparsegrass, +/obj/machinery/camera{ + c_tag = "Monastery Garden"; + dir = 2; + network = list("SS13","Monastery") + }, +/turf/open/floor/grass, +/area/hallway/secondary/construction{ + name = "\improper Monastery Garden" + }) +"cfo" = ( +/obj/machinery/hydroponics/soil, +/obj/item/seeds/carrot, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/grass, +/area/hallway/secondary/construction{ + name = "\improper Monastery Garden" + }) +"cfp" = ( +/obj/machinery/hydroponics/soil, +/obj/item/seeds/watermelon/holy, +/turf/open/floor/grass, +/area/hallway/secondary/construction{ + name = "\improper Monastery Garden" + }) +"cfq" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/asteroid{ + icon_plating = "asteroid" + }, +/area/chapel/asteroid{ + name = "Monastery Asteroid" + }) +"cfr" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/chapel/main{ + name = "Monastery" + }) +"cfs" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/chapel/main{ + name = "Monastery" + }) +"cft" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 8 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/chapel/main{ + name = "Monastery" + }) +"cfu" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/hydrofloor, +/area/chapel/main{ + name = "Monastery" + }) +"cfv" = ( +/obj/machinery/vending/hydronutrients, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/hydrofloor, +/area/chapel/main{ + name = "Monastery" + }) +"cfw" = ( +/obj/item/weapon/shovel/spade, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/hydrofloor, +/area/chapel/main{ + name = "Monastery" + }) +"cfx" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8"; + tag = "" + }, +/turf/open/floor/plasteel/hydrofloor, +/area/chapel/main{ + name = "Monastery" + }) +"cfy" = ( +/obj/structure/flora/ausbushes/genericbush, +/obj/machinery/power/apc{ + dir = 8; + name = "Garden APC"; + pixel_x = -24; + pixel_y = 0 + }, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/turf/open/floor/grass, +/area/hallway/secondary/construction{ + name = "\improper Monastery Garden" + }) +"cfz" = ( +/turf/open/floor/grass, +/area/hallway/secondary/construction{ + name = "\improper Monastery Garden" + }) +"cfA" = ( +/obj/item/weapon/cultivator, +/turf/open/floor/grass, +/area/hallway/secondary/construction{ + name = "\improper Monastery Garden" + }) +"cfB" = ( +/obj/machinery/hydroponics/soil, +/obj/item/seeds/sugarcane, +/turf/open/floor/grass, +/area/hallway/secondary/construction{ + name = "\improper Monastery Garden" + }) +"cfC" = ( +/obj/structure/closet/cabinet, +/obj/item/clothing/suit/holidaypriest, +/obj/item/clothing/suit/nun, +/obj/item/clothing/head/nun_hood, +/obj/machinery/button/door{ + id = "Cell1"; + name = "Cell Bolt Control"; + normaldoorcontrol = 1; + pixel_x = -25; + pixel_y = 0; + req_access_txt = "0"; + specialfunctions = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/main{ + name = "Monastery" + }) +"cfD" = ( +/obj/structure/dresser, +/obj/structure/sign/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 = 0; + pixel_y = 28 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/main{ + name = "Monastery" + }) +"cfE" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/cobweb{ + icon_state = "cobweb2" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/item/device/flashlight/lantern, +/turf/open/floor/plasteel/grimy, +/area/chapel/main{ + name = "Monastery" + }) +"cfF" = ( +/obj/structure/toilet{ + pixel_y = 8 + }, +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/chapel/main{ + name = "Monastery" + }) +"cfG" = ( +/obj/machinery/camera{ + c_tag = "Monastery Kitchen"; + dir = 4; + network = list("SS13","Monastery") + }, +/turf/open/floor/plasteel/hydrofloor, +/area/chapel/main{ + name = "Monastery" + }) +"cfH" = ( +/obj/machinery/vending/dinnerware, +/turf/open/floor/plasteel/hydrofloor, +/area/chapel/main{ + name = "Monastery" + }) +"cfI" = ( +/obj/item/clothing/suit/apron/chef, +/turf/open/floor/plasteel/hydrofloor, +/area/chapel/main{ + name = "Monastery" + }) +"cfJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/hydrofloor, +/area/chapel/main{ + name = "Monastery" + }) +"cfK" = ( +/obj/machinery/door/airlock{ + name = "Kitchen" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"cfL" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4"; + tag = "" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4; + initialize_directions = 11 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"cfM" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/chapel/main{ + name = "Monastery" + }) +"cfN" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/door/airlock{ + name = "Garden" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/hallway/secondary/construction{ + name = "\improper Monastery Garden" + }) +"cfO" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/grass, +/area/hallway/secondary/construction{ + name = "\improper Monastery Garden" + }) +"cfP" = ( +/obj/structure/sink/puddle, +/obj/item/weapon/reagent_containers/glass/bucket, +/obj/effect/landmark/event_spawn, +/turf/open/floor/grass, +/area/hallway/secondary/construction{ + name = "\improper Monastery Garden" + }) +"cfQ" = ( +/obj/structure/flora/ausbushes/sunnybush, +/turf/open/floor/grass, +/area/hallway/secondary/construction{ + name = "\improper Monastery Garden" + }) +"cfR" = ( +/obj/machinery/door/airlock{ + name = "Garden" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/hallway/secondary/construction{ + name = "\improper Monastery Garden" + }) +"cfS" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/chapel/main{ + name = "Monastery" + }) +"cfT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"cfU" = ( +/obj/machinery/door/airlock{ + id_tag = "Cell1"; + name = "Cell 1" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/main{ + name = "Monastery" + }) +"cfV" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/main{ + name = "Monastery" + }) +"cfW" = ( +/turf/open/floor/plasteel/grimy, +/area/chapel/main{ + name = "Monastery" + }) +"cfX" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/main{ + name = "Monastery" + }) +"cfY" = ( +/obj/machinery/door/airlock{ + name = "Bathroom" + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/main{ + name = "Monastery" + }) +"cfZ" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/chapel/main{ + name = "Monastery" + }) +"cga" = ( +/obj/item/chair/stool, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/aft) +"cgb" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/aft) +"cgc" = ( +/obj/structure/flora/ausbushes/leafybush, +/obj/machinery/camera{ + c_tag = "Monastery Asteroid Port Aft"; + dir = 8; + network = list("SS13","Monastery") + }, +/turf/open/floor/plating/asteroid, +/area/chapel/asteroid{ + name = "Monastery Asteroid" + }) +"cgd" = ( +/obj/structure/table, +/obj/machinery/microwave, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/decal/cleanable/cobweb, +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = 26 + }, +/turf/open/floor/plasteel/hydrofloor, +/area/chapel/main{ + name = "Monastery" + }) +"cge" = ( +/turf/open/floor/plasteel/hydrofloor, +/area/chapel/main{ + name = "Monastery" + }) +"cgf" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/hydrofloor, +/area/chapel/main{ + name = "Monastery" + }) +"cgg" = ( +/obj/item/weapon/reagent_containers/glass/bucket, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/hydrofloor, +/area/chapel/main{ + name = "Monastery" + }) +"cgh" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"cgi" = ( +/obj/machinery/hydroponics/soil, +/obj/item/seeds/wheat, +/turf/open/floor/grass, +/area/hallway/secondary/construction{ + name = "\improper Monastery Garden" + }) +"cgj" = ( +/obj/structure/flora/ausbushes/genericbush, +/turf/open/floor/grass, +/area/hallway/secondary/construction{ + name = "\improper Monastery Garden" + }) +"cgk" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"cgl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/chapel/main{ + name = "Monastery" + }) +"cgm" = ( +/obj/structure/table/wood, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/item/device/instrument/violin, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/main{ + name = "Monastery" + }) +"cgn" = ( +/obj/structure/chair/wood/normal{ + icon_state = "wooden_chair"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/main{ + name = "Monastery" + }) +"cgo" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/green, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/main{ + name = "Monastery" + }) +"cgp" = ( +/obj/machinery/shower{ + dir = 8; + pixel_y = -4 + }, +/obj/item/weapon/soap/homemade, +/turf/open/floor/plasteel/showroomfloor, +/area/chapel/main{ + name = "Monastery" + }) +"cgq" = ( +/turf/closed/mineral{ + baseturf = /turf/open/floor/plating/asteroid + }, +/area/chapel/asteroid{ + name = "Monastery Asteroid" + }) +"cgr" = ( +/obj/structure/flora/ausbushes/leafybush, +/obj/structure/flora/ausbushes/fernybush, +/turf/open/floor/plating/asteroid, +/area/chapel/asteroid{ + name = "Monastery Asteroid" + }) +"cgs" = ( +/obj/item/weapon/phone, +/turf/open/floor/plating, +/area/chapel/main{ + name = "Monastery" + }) +"cgt" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder, +/turf/open/floor/plasteel/hydrofloor, +/area/chapel/main{ + name = "Monastery" + }) +"cgu" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/condiment/saltshaker{ + pixel_x = 3; + pixel_y = 4 + }, +/obj/item/weapon/reagent_containers/food/condiment/peppermill, +/obj/item/weapon/storage/box/ingredients/wildcard{ + layer = 3.1 + }, +/turf/open/floor/plasteel/hydrofloor, +/area/chapel/main{ + name = "Monastery" + }) +"cgv" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/condiment/flour, +/obj/item/weapon/kitchen/rollingpin, +/obj/item/weapon/kitchen/knife, +/obj/machinery/light/small, +/turf/open/floor/plasteel/hydrofloor, +/area/chapel/main{ + name = "Monastery" + }) +"cgw" = ( +/obj/structure/closet/crate/bin, +/turf/open/floor/plasteel/hydrofloor, +/area/chapel/main{ + name = "Monastery" + }) +"cgx" = ( +/obj/structure/reagent_dispensers/watertank/high, +/turf/open/floor/plasteel/hydrofloor, +/area/chapel/main{ + name = "Monastery" + }) +"cgy" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/camera{ + c_tag = "Monastery Kitchen Entrance"; + dir = 4; + network = list("SS13","Monastery") + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"cgz" = ( +/obj/machinery/hydroponics/soil, +/obj/item/seeds/grass, +/turf/open/floor/grass, +/area/hallway/secondary/construction{ + name = "\improper Monastery Garden" + }) +"cgA" = ( +/obj/machinery/hydroponics/soil, +/obj/item/seeds/apple, +/obj/machinery/light/small, +/turf/open/floor/grass, +/area/hallway/secondary/construction{ + name = "\improper Monastery Garden" + }) +"cgB" = ( +/obj/structure/flora/ausbushes/ywflowers, +/obj/structure/flora/ausbushes/sparsegrass, +/turf/open/floor/grass, +/area/hallway/secondary/construction{ + name = "\improper Monastery Garden" + }) +"cgC" = ( +/obj/structure/flora/ausbushes/ywflowers, +/obj/structure/flora/ausbushes/sparsegrass, +/obj/machinery/light/small, +/turf/open/floor/grass, +/area/hallway/secondary/construction{ + name = "\improper Monastery Garden" + }) +"cgD" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/camera{ + c_tag = "Monastery Cells"; + dir = 8; + network = list("SS13","Monastery") + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"cgE" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"cgF" = ( +/obj/structure/shuttle/engine/propulsion/burst{ + tag = "icon-propulsion (NORTH)"; + icon_state = "propulsion"; + dir = 1 + }, +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"cgG" = ( +/obj/machinery/door/airlock/glass{ + name = "Shuttle Airlock" + }, +/turf/open/floor/plasteel/black, +/area/shuttle/abandoned) +"cgH" = ( +/obj/structure/closet/cabinet, +/obj/item/clothing/suit/holidaypriest, +/obj/item/clothing/suit/nun, +/obj/item/clothing/head/nun_hood, +/obj/machinery/button/door{ + id = "Cell2"; + name = "Cell Bolt Control"; + normaldoorcontrol = 1; + pixel_x = -25; + pixel_y = 0; + req_access_txt = "0"; + specialfunctions = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/main{ + name = "Monastery" + }) +"cgI" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/easel, +/obj/item/weapon/canvas/twentythreeXnineteen, +/turf/open/floor/plasteel/grimy, +/area/chapel/main{ + name = "Monastery" + }) +"cgJ" = ( +/obj/structure/toilet{ + pixel_y = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/chapel/main{ + name = "Monastery" + }) +"cgK" = ( +/turf/open/floor/plasteel/black, +/area/shuttle/abandoned) +"cgL" = ( +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"cgM" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"cgN" = ( +/obj/structure/closet/coffin, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"cgO" = ( +/obj/structure/closet/coffin, +/obj/machinery/camera{ + c_tag = "Monastery Funeral Parlor"; + dir = 2; + network = list("SS13","Monastery") + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"cgP" = ( +/obj/structure/closet/coffin, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/decal/cleanable/cobweb{ + icon_state = "cobweb2" + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"cgQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"cgR" = ( +/obj/machinery/door/airlock/centcom{ + name = "Chapel Garden"; + opacity = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"cgS" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/chapel/main{ + name = "Monastery" + }) +"cgT" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/chapel/main{ + name = "Monastery" + }) +"cgU" = ( +/obj/machinery/door/airlock{ + id_tag = "Cell2"; + name = "Cell 2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/main{ + name = "Monastery" + }) +"cgV" = ( +/obj/structure/closet/emcloset, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"cgW" = ( +/obj/structure/table, +/obj/item/weapon/crowbar, +/obj/item/clothing/mask/gas, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"cgX" = ( +/obj/machinery/door/window/eastleft{ + dir = 1; + name = "Coffin Storage"; + req_one_access_txt = "22" + }, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = -32; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"cgY" = ( +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"cgZ" = ( +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/structure/chair, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/chapel/main{ + name = "Monastery" + }) +"cha" = ( +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"chb" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"chc" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"chd" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"che" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8"; + tag = "" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"chf" = ( +/obj/machinery/light/small, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"chg" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"chh" = ( +/obj/machinery/light/small, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"chi" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"chj" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8"; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/chapel/main{ + name = "Monastery" + }) +"chk" = ( +/obj/structure/closet/firecloset, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/fsmaint) +"chl" = ( +/obj/structure/grille/broken, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/fsmaint) +"chm" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"chn" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"cho" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"chp" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"chq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/sign/map{ + icon_state = "map-pubby"; + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"chr" = ( +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/plating, +/area/maintenance/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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aar +aas +aas +aas +aas +aec +aas +aas +aas +aaY +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aar +aas +aas +aas +aas +aas +aas +acV +adn +acV +acW +aed +aeE +aeX +afa +afv +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aas +abv +abv +abv +abv +abv +aas +acW +acW +acW +acW +aee +acW +aeY +afa +afw +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aac +aac +aac +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aas +aax +aax +aax +aax +aax +aas +acX +acW +acW +acW +aef +aeF +aeZ +afa +afx +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aaa +aad +aaa +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aar +aas +aas +aas +aaY +aaa +aaa +aas +aax +abF +aax +aax +aax +aas +acY +acW +acW +acW +aeg +aas +aas +aas +afM +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +aad +axF +aad +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aas +aaw +aaH +aaS +aas +abb +aaa +aas +abw +abG +abR +aax +aax +aas +acZ +acW +acW +acW +aeh +aas +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aaa +axG +aaa +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cgE +aaQ +cgG +aaQ +cgE +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aat +aax +aax +aax +aas +aas +aas +aas +aas +aas +aas +acf +acv +aas +aas +ado +ads +adI +aas +aas +aas +aaY +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +axG +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cgE +cgE +cgK +cgL +cgK +cgE +cgE +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aat +aay +aax +aax +aas +abc +aax +aax +aax +aax +abS +aax +aax +acI +aax +aax +aax +aax +aax +abS +afa +afv +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aaa +aoS +aoS +aoS +aoS +aoS +aoS +aoS +aoS +aaa +axH +aaa +aoS +aoS +aoS +aoS +aoS +aoS +aoS +aoS +aaa +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cgE +cgE +cgK +cgK +cgL +cgK +cgK +cgE +cgE +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aat +aaz +aaI +aax +aaZ +aax +aax +aax +aax +aax +abT +aax +aax +aax +aax +aax +aax +aax +aax +aeG +afa +afw +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aad +aoT +apI +apI +apI +apI +apI +apI +apI +aws +axI +ayV +azV +azV +azV +azV +azV +azV +azV +aFN +aad +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cgF +cgK +cgK +ajC +aHi +aYY +cgK +cgK +bDQ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aat +aaA +aax +aaT +aas +abd +abg +abg +abg +abg +abS +aax +aax +aax +aax +aax +aax +aax +aax +abS +afa +afx +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aaa +aoU +aoU +aoU +aoU +aoU +aoU +aoU +aoU +aaa +axJ +aaa +aoW +aoW +aoW +aoW +aoW +aoW +aoW +aoU +aaa +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cgG +cgL +cgL +aks +aHn +aZd +cgL +cgL +cgG +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aat +aaB +aax +aax +aas +aas +aas +abl +aas +aas +aas +acg +abS +aas +aas +aas +adt +adJ +aas +aas +aas +aba +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +adf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +axJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cgF +cgK +cgK +akv +aHF +aZe +cgK +cgK +bDQ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aas +aaB +aax +aaU +aas +aba +aaa +aaa +aaa +aas +aax +aax +aax +aas +ada +aax +aax +aax +aei +aeH +aas +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aaa +aoS +aoS +aoS +aoS +aoS +aoS +aoS +aoS +aaa +axJ +aaa +aoS +aoS +aoS +aoS +aoS +aoS +aoS +aoS +aaa +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cgE +cgE +cgK +cgK +cgL +cgK +cgK +cgE +cgE +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aau +aas +aas +aas +aba +aaa +aaa +aaa +aaa +abH +aax +aax +aax +aas +adb +aax +aax +aax +aej +aas +aas +aas +afN +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aad +aoV +apJ +apJ +apJ +apJ +apJ +apJ +apJ +awt +axJ +ayW +azW +azW +azW +azW +azW +azW +azW +aFO +aad +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cgE +cgE +cgK +cgL +cgK +cgE +cgE +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +abI +aax +aax +aax +aas +adc +aax +aax +aax +aax +aax +afb +afa +afv +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aaa +aoU +aoU +aoU +aoU +aoU +aoU +aoU +aoU +aaa +axJ +aaa +aoW +aoW +aoW +aoW +aoW +aoW +aoW +aoU +aaa +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cgE +amo +aHG +amo +cgE +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aau +aas +aas +aas +aas +add +abF +aax +aax +aax +aax +afc +afa +afw +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +axJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aac +aac +adf +aac +aac +aac +aac +aac +aaa +aaa +aaa +aaa +cfc +cdK +ceW +cdK +cfc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +acw +aas +ade +adp +aax +adK +adK +aax +afd +afa +afx +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aaa +aoS +aoS +aoS +aoS +aoS +aoS +aoS +aoS +aaa +axJ +aaa +aoS +aoS +aoS +aoS +aoS +aoS +aoS +aoS +aaa +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aad +aac +aac +aac +aac +aac +aaa +cao +cba +cao +cao +cao +cba +cao +cba +cao +cao +cao +cfc +cfc +cfc +cdK +ceX +cdK +cfc +cfc +cfc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aau +aas +aas +aas +aas +abl +aas +aas +aas +aba +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aad +aoV +apJ +apJ +apJ +apJ +apJ +apJ +apJ +awt +axJ +ayW +azW +azW +azW +azW +azW +azW +azW +aFO +aad +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aaa +aaa +aad +aaa +cba +cao +caI +caT +caT +caT +caT +caT +caT +caT +caT +caT +caT +caT +cfc +cfc +cfc +cdK +aHT +cdK +cfc +cfc +cfc +cfc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aac +aaa +aoW +aoW +aoW +aoW +aoW +aoW +aoW +aoU +aaa +axJ +aaa +aoW +aoW +aoW +aoW +aoW +aoW +aoW +aoU +aaa +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aaa +cao +cba +caI +caT +caT +caT +caT +cbb +cbb +cbb +cbR +cbb +cbb +cdg +cbb +cbb +cgq +cgq +cch +cch +cdK +ceY +cdK +cch +cfc +cfc +cfc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +axJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +adf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aad +aac +cbW +caT +caT +caT +caT +cbb +cbb +cbb +cbb +cbb +cbb +cbb +cbb +cbb +cbs +cbb +cbb +cbR +cgq +cch +cgV +anI +cct +aZk +cch +cfc +cfc +cfc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aac +aaa +aoS +aoS +aoS +aoS +aoS +aoS +aoS +aoS +aaa +axJ +aaa +aoS +aoS +aoS +aoS +aoS +aoS +aoS +aoS +aaa +aac +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aaa +cao +caI +caT +cbb +cbb +cbb +cbb +cbs +cbb +cbb +cbb +cbb +cbb +cbb +cbb +cbb +cbb +cgc +cgr +cgq +cch +cgW +aod +aIq +aZn +cch +cch +cch +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aac +aad +aoV +apJ +apJ +apJ +apJ +apJ +apJ +apJ +awt +axJ +ayW +azW +azW +azW +azW +azW +azW +azW +aFO +aad +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +adf +cbW +caT +caT +caT +cbb +cbb +cbb +cbb +cbb +cbb +cbb +cbr +cbb +cbb +cbb +cfd +cfq +cbu +cch +cch +cch +cch +cch +apM +cgl +cch +cch +cch +bDT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aac +aaa +aoW +aoW +aoW +aoW +aoW +aoW +aoW +aoU +aaa +axJ +aaa +aoW +aoW +aoW +aoW +aoW +aoW +aoW +aoU +aaa +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +asa +caT +cbb +cbb +cbb +cbD +ccV +ccZ +caT +ccZ +caT +ccX +ccX +ccX +ccX +cch +cfr +cch +cch +cgs +cch +cgM +cgX +arz +aIr +aZq +bhR +cdK +bEt +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aac +aaa +aaa +aaa +aad +aaa +aaa +aaa +aaa +aaa +aaa +axJ +aaa +aaa +aaa +aaa +aaa +aaa +aad +aaa +aaa +aaa +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +cbW +caT +cbb +cbb +cbb +cbb +ccW +ccZ +cdg +cds +cdg +ccX +cep +ceF +ccX +ceO +cfs +cch +cch +cch +cch +cgN +cgY +atk +ceD +cct +cct +cdK +cdK +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aac +aad +aac +aac +aac +aaa +aaa +aaa +aaa +aaa +aaa +axK +aaa +aaa +aaa +aaa +aaa +aaa +aac +aac +aac +aad +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +asa +caT +cbR +cbb +cbb +cbb +cbb +ccX +ccX +cdt +ccX +ccX +ceq +ceG +ccX +cch +cft +cch +cgd +cgt +cch +cgN +cgZ +ccR +aJQ +aZt +bir +brL +bEu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +axG +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aac +aac +aac +aac +cbW +caT +caT +cbb +cbb +cbb +cbb +ccX +cdh +cdu +cdM +ccX +cer +ccX +ccX +cfe +cfu +cfG +cge +cgu +cch +cgO +cgZ +ccR +aMx +aZt +biu +brM +bEu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +axG +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aaa +aaa +cba +cao +cao +ccc +caT +cbb +cbb +cbs +cbb +ccX +cdi +cdv +cdN +cee +ces +ceH +ceP +cff +cfv +cfH +cge +cgv +cch +cgP +cha +atl +aSm +cct +cct +cdK +cdK +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +axG +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +cao +caI +caT +caT +caT +caT +caT +cbb +cbb +cbb +cbb +ccX +cdj +cdw +cdO +cef +cet +ceI +ceQ +cfg +cfw +cfI +cgf +cgw +cch +cch +cfi +aye +cgl +aZS +bjm +cdK +bEx +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +axG +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aad +aac +aac +aac +aac +aaa +caS +caT +caT +caT +cbR +cbb +cbb +cbb +cbb +cbb +cbb +cbD +ccX +ccX +cdx +cdP +ceg +ceu +ceI +ceR +cfh +cfx +cfJ +cgg +cgx +cch +cgQ +chb +ceE +aSs +cch +cch +cch +bDT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +axG +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aaa +aaa +cba +cao +cba +caI +caT +caT +cbb +cbb +cbb +cbb +cbb +cbb +cbb +cbb +cbb +ccX +ccX +ccX +ccX +cdQ +ccX +ccX +ceI +cch +cfi +cch +cfK +cch +cch +cch +cgR +cgl +aCl +aTi +bas +bjo +aCl +bFm +bLn +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +aad +ahV +ahU +ahU +ahU +aad +aad +aad +aaa +aaa +aaa +aaa +axG +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +adf +aad +caS +caT +caT +caT +caT +caT +cbD +cbb +cbb +cbb +cbb +cbb +ccg +cch +cch +cch +ccX +cda +cdk +cdy +cdR +ceh +cev +ceJ +ceS +cfj +ceS +cfL +cgh +cgy +ceS +ceJ +chc +aCl +aUg +bbb +bbb +bsw +bFn +cfc +cfc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ahV +ahV +ahV +aow +aoX +ahU +ahV +aad +aad +aad +aaa +aaa +avs +axL +avs +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +asa +caT +caT +cbb +cbq +cbb +cbb +cbb +cbb +cbb +cbb +cbb +cbb +cbb +cch +ccG +ccN +ccY +cdb +ccX +cdz +cdS +cei +cew +ceK +ceT +ceN +ceT +cfM +ceT +ceT +ceT +ceM +chd +aCl +aUm +bbd +bkn +buQ +bFn +cfc +cfc +cfc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +ahU +ahU +ahU +ahV +ahV +aaa +aaa +ahV +anl +anN +aox +aoY +apK +ahV +ahU +ahU +ahV +aaa +aaa +awu +axM +avs +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cao +cao +cao +caI +caT +cbb +cbb +cbb +cbb +cbb +cbb +cbb +cbb +cbb +cbb +cbb +cbb +cch +ccH +cch +cch +cch +cch +cdA +cch +cch +cex +ceL +ceU +ceV +ceU +cfN +ceU +ceV +ceU +ceL +chd +aCl +aVd +bbe +bko +buQ +bFn +cfc +bMf +bMM +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +ahU +aiv +aiW +ajE +ahV +ahU +ahU +ahV +aiY +ahV +aoy +aiY +aiY +anN +aiY +aiY +ahV +aaa +avs +avs +axN +avs +avs +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cap +cap +caB +caJ +caJ +cbc +cbb +cbr +cbb +cbr +cbb +cbr +cbb +cbr +cbb +cbr +cch +cch +ccI +ccO +ccI +ccS +cdl +cdB +cdT +cch +cey +ceL +ceV +cfk +cfy +cfO +cgi +cgz +ceV +ceL +che +aCz +aVe +bbD +bkp +buQ +bFn +cfc +cfc +cfc +cfc +cfc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +ahU +aiw +aiX +aiY +akx +aiY +aiY +amB +aiY +ahV +ahV +ahV +ahV +ahV +ahV +aiY +ahV +ahV +avt +awv +axO +ayX +avt +aaa +aaa +aaa +aaa +aaa +aDI +aDJ +aDJ +aOx +aDI +aDI +aDJ +aDJ +aDI +aOx +aDI +aOx +aDI +aDI +aDI +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +caj +caq +cat +caq +caK +caU +cbc +cbc +cbs +cbb +cbb +cbb +cbs +cbb +cbb +cbb +cbs +cch +ccr +ccJ +ccP +ccJ +cdc +cdm +cdC +cdU +cch +cez +ceL +ceU +cfl +cfz +cfz +cfz +cgA +ceU +cgS +chf +aDx +aVz +bca +bca +bvo +bFp +cfc +cfc +cfc +cfc +cfc +cfc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +ahV +aix +aiY +ajF +ahV +ahU +ahU +ahV +amC +anO +anO +anO +anO +aqH +anO +anO +anO +auz +avt +aww +axP +ayY +avt +aaa +aaa +aaa +aaa +aaa +aDI +aFQ +aGM +aGM +aDJ +aJZ +aLl +aLl +aLl +aJZ +aLl +aJZ +aLl +aSn +aTj +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cap +cau +caC +caL +caV +cbd +cbl +cbt +cbt +cbt +cbt +cbt +cbt +cbt +cbt +cbt +cci +ccs +ccs +ccQ +ccQ +ccQ +cdn +cdD +cdV +cej +ceA +ceM +ceV +cfm +cfz +cfP +cfz +cgB +ceV +ceL +chg +aCl +aVA +bdi +bkq +bzJ +aCl +cfc +cfc +cfc +cfc +cfc +cfc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +ahU +aiy +aiZ +ajG +ahV +aaa +aaa +ahV +anm +aiY +ahV +ahV +ahU +aqI +ahV +ahU +ahV +anm +avt +awx +axQ +ayZ +avt +aaa +aaa +aaa +aaa +aaa +aDI +bXf +aGM +aGM +bXn +aFa +aFa +aFa +aFa +aFa +aFa +aFa +aFa +aSn +aTj +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +car +cav +caD +caM +caW +cbe +cbm +cbu +cbu +cbu +cbu +cbu +cbu +cbu +cbu +cbu +ccj +cct +cct +ccR +ccR +ccR +cdo +cdE +cdW +cek +ceB +ceL +ceV +cfn +ccU +cfQ +cfz +cfm +ceV +ceL +chg +aEZ +aEZ +aEZ +aEZ +aEZ +aEZ +aEZ +aEZ +cfc +cfc +cfc +cfc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +ahV +ahV +ahV +ahV +ahV +ahV +ahV +ahV +anm +aiY +ahV +aoZ +apL +aqJ +arF +asw +ahV +anm +avt +avt +axR +avt +avt +ahV +aaa +aaa +aaa +aaa +aDI +aFR +bXj +aHH +aDJ +aFa +aLm +aLm +aLm +aFa +aFa +aLq +aLq +aSn +aTj +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +asa +cap +caE +caN +caX +cbc +cbc +cbs +cbb +cbb +cbb +cbs +cbb +cbb +cbb +cbs +cch +ccu +ccI +ccS +ccI +cdd +cdp +cdF +cdX +cch +cez +ceL +ceU +cfo +cfA +cfz +cfz +cgC +ceU +ceL +chh +aEZ +aVB +bgd +bkt +bAB +bGc +bLo +aEZ +aEZ +cfc +cfc +cfc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +ahV +aja +ajH +aky +alm +ahV +amC +ann +anN +ahU +apa +aiY +aqK +arG +asx +ahV +auA +anO +anO +axS +anN +azX +ahV +aaa +aaa +aaa +aaa +aDI +aDI +aDI +aDI +aDI +aFa +aLn +aLn +aLn +aFa +aDI +aDI +aDI +aDI +aDI +aDI +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +blI +bow +blI +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +asa +cap +cap +caJ +caJ +cbc +cbb +cbr +cbb +cbr +cbb +cbr +cbb +cbr +cbb +ccd +cch +cch +ccK +ccT +ccJ +cde +cdq +cdG +cdY +cch +ceC +ceL +ceV +cfp +cfB +cfz +cgj +cfk +ceV +ceL +chi +aFP +aWD +aWD +blN +bAP +bAP +bLp +bMg +aEZ +cfc +cfc +cfc +cfc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +afy +agZ +bWa +afy +afy +ajb +ajI +akz +aln +alV +amD +ahV +anP +ahV +apb +apN +aqL +arF +asy +ahV +auB +aiY +aiY +anm +aiY +azY +ahV +aaa +aaa +aDI +aDI +aDI +aFS +aGN +aHI +aIF +aFa +aFa +aFa +aFa +aFa +aDI +aQr +aJZ +aQr +aSn +aTj +aaa +aaa +aaa +aaa +aaa +aaa +aaa +baG +bYL +bYL +baG +aaa +aaa +aaa +aaa +aaa +aaa +aaa +blI +bnc +bnd +bnc +blI +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +caw +caF +caO +caT +cbb +cbb +cbb +cbb +cbb +cbb +cbb +cbb +cbb +cbb +cbb +cbb +cch +cch +cch +cch +cch +cch +cdH +cch +cch +ceD +ceL +ceU +ceV +ceU +cfR +ceU +ceV +ceU +cgT +chj +aHc +aXw +bho +blO +bho +bGj +bAP +bMh +aEZ +cfc +cfc +cfc +cfc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +afy +aha +ahw +ahW +afy +ajb +ajJ +akA +alo +ahV +amE +ahV +anQ +ahV +ahV +ahU +ahU +ahV +ahU +ahV +ahV +ahV +awy +bWB +bWE +aiY +ahU +aaa +aaa +aDJ +aEx +aFa +aFT +aFT +aDJ +aFa +aFa +aLo +aMo +aLo +aFa +aDJ +aJZ +aJZ +aJZ +aSn +aTj +aaa +aaa +aaa +aaa +aaa +aaa +aaa +baG +bbC +bbC +baG +aaa +aaa +aaa +aaa +aaa +aaa +aaa +blJ +bnd +bnd +bpJ +blJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +asa +caT +caT +cbb +cbv +cbb +cbb +cbb +cbD +cbb +cbb +cbb +cbb +cbb +cbb +cbb +cbR +cbb +cbs +cch +cdI +cdV +cel +ceA +ceN +ceT +ceT +ceT +cfS +ceT +ceT +ceT +ceM +ceD +aEZ +aYl +bhp +blP +bCs +bIk +bLq +aEZ +aEZ +cfc +cfc +cfc +cfc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +afy +afO +afO +afO +afy +afy +ahb +ahx +ahX +afy +ajc +ajc +ajc +ajc +ajc +amE +ahV +ahV +ahV +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ahV +ahV +bWC +bWF +bWI +ahU +aaa +aaa +aDJ +aEy +aFb +aFa +aFa +aHJ +aFa +aFa +aLp +aMp +aNr +aFa +aPj +aJZ +aJZ +aJZ +aSn +aTj +aVb +aVb +aVb +aVb +aaa +aaa +baG +baG +bYM +bYM +baG +baG +aaa +aaa +aVb +aVb +aVb +aVb +blJ +bne +bnd +bpJ +blJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aaa +caF +caT +caT +caT +caT +caT +cbb +cbb +cbb +cbb +cbb +cbb +cbb +cbb +cbb +cbb +cbb +cbu +cdr +cct +cdZ +cem +ceE +cdW +cdW +ccn +cdW +cfT +cgk +cgD +cdW +cfT +ceB +aEZ +aEZ +bhq +bnu +bCQ +bnu +bLw +aEZ +cfc +cfc +cfc +cfc +cfc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +afz +afP +agb +agl +agA +agQ +ahc +ahy +ahY +aiz +ajc +ajK +akB +alp +alW +amF +ano +ahV +aoz +aoz +aoA +aoz +aoz +aoA +aoz +aoz +aoz +ahV +axU +bWF +aiY +ahU +aaa +aaa +aDJ +aEz +aFa +aFU +aFU +aDJ +aFa +aFa +aLo +aMq +aLo +aFa +aDJ +aJZ +aLl +aLl +aSn +aTj +aVb +aVR +aWV +aVb +aYS +aVb +baG +bbB +bbC +bbC +bdz +baG +aVb +aVb +aVb +aWV +bjj +aVb +blK +bnf +bnd +bpK +blK +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aaa +aad +caw +caw +caF +caO +caT +caT +cbb +cbb +cbb +cbb +cbb +cbu +cbu +cbu +cbb +cbb +cbu +cdr +cct +cea +cch +cch +cch +ceW +cch +cch +cfU +cgl +cch +cch +cgU +cgl +cch +aEZ +bhq +bnu +bDk +bnu +bLw +aEZ +cfc +cfc +cfc +cfc +cfc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +afA +afQ +agc +agm +agB +agR +ahd +ahz +ahZ +aiA +ajd +ajL +akC +bWn +bWo +amG +anp +ahV +aoA +apc +apO +aqM +arH +asz +atq +auC +avu +ahV +axV +aza +auz +ahV +aaa +aaa +aDI +aDI +aDI +aFV +aGO +aHI +aIF +aFa +aFa +aFa +aFa +aFa +aDI +aQs +aRj +aSo +aSn +aTj +aVb +aVR +aWW +aXV +aYT +aXV +baH +bbC +bco +bco +bbC +bed +aXV +aYT +aXV +aWW +bjj +aVb +blJ +bnf +bnd +bpK +blJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aac +adf +aac +aad +aac +aad +cbA +caT +caT +caT +caT +cbR +cbb +cck +ccv +caT +cbb +cbb +cbb +cch +cdJ +ceb +cen +cch +ceO +ceX +cch +cfC +cfV +cgm +cch +cgH +cfV +aaC +cch +aEZ +bhr +boR +bDn +boR +bLw +aEZ +cfc +cfc +cfc +cfc +cfc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +adf +acJ +aad +aad +aad +aad +aad +afB +afR +agd +agn +agC +agS +ahe +ahA +aia +aiB +ajc +ajM +akD +alq +alX +amH +anp +ahV +aoA +apd +apP +aoz +arH +arH +arH +auC +avu +ahV +axW +ahV +anm +ahV +aaa +aaa +aaa +aaa +aDI +aDI +aDI +aDI +aDI +aFa +aLm +aLm +aLm +aFa +aDI +aDI +aDI +aDI +aDI +aDI +aVb +aVS +aWW +aVb +aVb +aVb +baG +bYy +bbC +bbC +bYT +baG +aVb +aVb +aVb +aWW +bjj +aVb +blJ +bnf +bnd +bpK +blJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aac +aad +caw +cbI +caO +caT +caT +caT +caT +ccw +caT +cbb +cbb +cdf +cch +cdK +cch +cch +cch +cch +ceY +cch +cfD +cfW +cgn +cch +cfD +cfW +cgn +cch +aEZ +aEZ +aEZ +aEZ +aEZ +aEZ +aEZ +aEZ +cfc +cfc +cfc +cfc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +acJ +aaa +aad +aaa +adq +adq +adq +adq +afC +afS +afS +afS +afS +afS +ahf +ahB +aib +aib +aib +ajN +akE +ajN +ajN +ajN +anq +ahV +aoA +ape +apQ +aqN +arI +asA +arH +auC +avu +ahV +axX +ahV +anm +ahV +aaa +aaa +aaa +aaa +aDI +aFW +aGP +aHK +aDJ +aFa +aLn +aLn +aLn +aFa +aFa +aLl +aLl +aSn +aTj +aaa +aVb +aVT +aWW +aXW +aYU +aVb +baI +bbE +bco +bco +bbC +baI +aVb +bga +aXW +aWW +bjj +aVb +blJ +bnf +bnd +bpK +blJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +aad +aad +aad +cbI +cbI +caO +caT +ccx +caT +cbb +cbb +cbb +cbb +cdL +cec +ceo +cbb +cbb +ceZ +cch +cfE +cfX +cgo +cch +cgI +cfX +aaG +cch +cfc +cfc +cfc +cfc +cfc +cfc +cfc +cfc +cfc +cfc +cfc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +acJ +aaa +adq +adq +adq +aek +aeI +adq +afD +afT +age +age +age +age +ahg +ahC +aic +aiC +age +ajO +akF +alr +alY +amI +anr +ahV +aoz +aoz +apR +aoz +aoz +aoz +atr +aoz +aoz +ahV +axY +ahV +axT +ahV +aaa +aaa +aaa +aaa +aDI +aFW +aGQ +aGQ +aIE +aFa +aFa +aFa +aFa +aFa +aFa +aFa +aFa +aSn +aTj +aaa +aVb +aVT +aWX +aWW +aYV +aVb +baI +bbF +bcp +bdd +bbC +baI +aVb +bgb +aWW +aWX +bjj +aVb +blL +bnf +bnd +bpK +blL +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +aaa +aaa +aad +asa +caT +bTf +caT +cbD +cbb +cbb +cbb +cbb +cbs +cbb +cbb +cbb +cfa +cch +cch +cfY +cch +cch +cch +cfY +cch +cch +cfc +cfc +cfc +cfc +cfc +cfc +cfc +cfc +cfc +cfc +cfc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +acJ +aad +adq +adu +adL +ael +ael +afe +ael +ael +age +ago +agD +agg +ahh +ahD +aid +aiC +age +ajP +akG +als +alZ +ajN +ajN +ajN +aoB +aoB +apS +aoB +arJ +aoB +ats +aoB +ajh +ahV +ahV +ahV +anm +ahV +aaa +aaa +aaa +aaa +aDI +aFW +aGQ +aGQ +aDJ +aJZ +aLq +aLq +aLq +aJZ +aLq +aJZ +aLq +aSn +aTj +aaa +aVb +aVT +aWW +aXX +aYW +aVb +baI +bYz +bYN +bco +bbC +baI +aVb +bgc +aXX +aWW +bjj +aVb +blJ +bnf +bnd +bpK +blJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +aad +aad +aad +aad +ccl +bTf +caT +caT +cbb +cbb +cbR +cbb +cbb +cbb +cbb +cbR +cfb +cch +cfF +cfZ +cgp +cch +cgJ +cfZ +aaM +cch +cfc +cfc +cfc +cfc +cfc +cfc +cfc +cfc +cfc +cfc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +acJ +aaa +adr +adv +adM +ael +aeJ +aff +afE +afE +agf +agp +agE +agT +ahi +ahE +aie +aiC +age +ajQ +akH +alt +ama +ajh +ans +anR +aoC +aoB +apu +aoB +arJ +ajh +att +auD +avv +awz +axZ +ahV +anm +ahV +aaa +aaa +aaa +aaa +aDI +aDJ +aDJ +aHL +aDI +aDI +aDJ +aDJ +aDI +aOx +aDI +aQt +aDI +aDI +aDI +aaa +aVb +aVU +aWY +aVb +aVb +aVb +baG +bbG +bco +bco +bdA +baG +aVb +aVb +aVb +bio +bjk +aVb +blJ +bnf +bnd +bpK +blJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +aaa +aad +bTf +ccL +caT +caT +caT +caT +caT +caT +caT +caT +caT +caT +cch +cch +cch +cch +cch +cch +cch +cch +cch +cfc +cfc +cfc +cfc +cfc +cfc +cfc +cfc +cfc +cfc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +acJ +aad +adq +adw +adN +ael +aeK +afg +ael +ael +age +agq +agF +age +ahj +ahF +aif +age +age +ajR +akI +alu +amb +ajh +ant +anS +aoD +ajh +apT +ajh +ajh +ajN +ajN +ajN +ajh +awA +aya +ahV +anm +ahV +ahV +ahV +ahV +ahV +ahV +ahV +aGa +aHM +aIG +aaa +aaa +aaa +aIG +aHM +aIG +aHM +aIG +aaa +aaa +aaa +aVb +aVT +aWZ +aXV +aYT +aXV +baH +bbC +bbC +bbC +bbC +baH +aXV +aYT +aXV +aZc +bjj +aVb +blJ +blK +box +blK +blJ +aaa +aaa +abu +acJ +acJ +caa +acJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +aaa +aad +bTf +bOH +cbI +cbI +cbI +cbI +cbI +caw +caw +cbI +cbI +cfc +cfc +cfc +cfc +cfc +cfc +cfc +cfc +cfc +cfc +cfc +cfc +cfc +cfc +cfc +cfc +cfc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +acJ +aaa +adr +adx +adO +aem +aeL +afh +afF +afF +agg +agg +agg +agU +ahk +ahF +aig +aiD +aje +ajS +akJ +alv +amc +amJ +anu +anu +ajS +anu +apU +aqO +arK +asB +atu +auE +avw +avx +ayb +ahV +azZ +aBg +aBg +aBg +aBg +aEA +aFc +aFX +aGa +aHN +aIG +aaa +aaa +aaa +aIG +aHN +aIG +aHN +aIG +aaa +aaa +aaa +aVb +aVT +aWZ +aVb +aYS +aVb +baG +bbH +bbH +bbH +bbH +baG +aVb +aVb +aVb +aZc +bjj +aVb +aVb +bng +boy +aVb +aaa +aaa +aaa +aaa +aad +aad +aad +aad +aaa +bpM +bwu +bwu +bpM +bpM +bwu +bwu +bpM +aad +aaa +aaa +aaa +aaa +aaa +aaa +aad +aad +bOH +bTf +aad +aaa +aaa +aaa +aad +aad +aad +aad +aad +aaa +aaa +cfc +cfc +cfc +cfc +cfc +cfc +cfc +cfc +cfc +cfc +cfc +cfc +cfc +cfc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +acJ +aad +adq +ady +adP +ael +aeJ +afi +ael +ael +age +agr +agG +agV +ahl +ahG +aih +aiE +ajf +ajT +akK +alw +amd +amK +anv +anv +aoE +apf +anv +aqP +arL +asC +atv +auF +avx +awB +aya +ahV +aAa +aBh +azc +azc +azc +azc +aFd +aFY +aGa +aOy +aIG +aad +aad +aad +aIG +aOy +aIG +aQu +aIG +aad +aad +aad +aVc +aVT +aWZ +aXW +aXW +aVc +baJ +baJ +bcq +bcq +bdB +baJ +aVc +aXW +aXW +aZc +aWW +aXW +aXW +aVb +aYT +aVb +aaa +aaa +aaa +aaa +bPk +bPk +bPk +bPk +bpM +bpM +byL +bvp +caG +bvp +bFx +bvp +bpM +bpM +aaa +aaa +aaa +aaa +aaa +bOG +aad +aaa +bOH +bTf +aad +aaa +aaa +aaa +aad +aaa +aaa +aad +aaa +aaa +aaa +aad +cfc +cfc +cfc +cfc +cfc +cfc +cfc +cfc +cfc +cfc +cfc +cfc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +acJ +aaa +adr +adz +adQ +adQ +adQ +afj +adQ +adQ +agh +ags +agH +agW +ahm +ahH +aii +aiF +ajg +ajU +akL +alx +ame +amL +anw +anw +anw +apg +apV +aqQ +arM +asD +atw +auF +avx +awC +ayc +azb +aAb +anN +azc +aDa +aDK +azc +aAa +aFZ +aGa +aHN +aIG +aIG +aIG +aIG +aIG +aHN +aIG +aHN +aIG +aIG +aIG +aIG +aVc +aVV +aWZ +aWW +aWW +aVc +aVc +aVb +bcr +bcr +aVb +aVc +aVc +aWW +aWW +bip +aWY +aWW +aWW +bng +boz +aVb +aVb +aaa +aaa +aaa +bPk +bZY +cab +bKk +bpM +cak +cas +cax +cax +cax +cax +cbf +bGR +bpM +aaa +aaa +aaa +aaa +aaa +aaa +bdx +aad +bOH +bTf +bOH +aad +aad +aad +aad +aaa +aaa +aad +aaa +aaa +aad +aad +aaa +aaa +aaa +cfc +cfc +cfc +cfc +cfc +cfc +cfc +cfc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +acJ +aad +adq +adA +adR +ael +ael +afk +ael +ael +age +agt +agF +age +ahn +ahI +aij +age +ajh +ajV +akM +aly +aly +amM +amn +anT +aoF +aph +apW +aqR +arN +ajh +ajh +auG +bWz +awD +ayd +azc +azc +azc +azc +aDb +aDL +azc +aAa +aGa +aGa +aHO +aGa +aGa +aLr +aMr +aIG +aHO +aIG +aHO +aIG +aMr +aTk +bXz +aVc +bXL +aXa +aXY +aXY +aXY +baK +aXY +aXY +aXY +aXY +aXY +aXY +aXY +aXY +aZb +bjl +aWW +aWW +aWW +aWW +aWW +aVb +aaa +aaa +aaa +bPk +bZY +cac +bpM +bpM +bvp +bBy +bCD +bDD +bDD +bFy +cbg +bvp +bwu +aaa +aaa +aaa +aaa +aaa +cbS +cbX +aaa +bOH +bTf +bOH +aaa +aaa +aaa +aad +aad +aad +aad +aad +aad +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +acJ +aaa +adq +adq +adq +aen +aeM +adq +afG +afU +age +age +age +age +aho +ahJ +aik +age +aji +ajW +akN +aly +amf +amN +anx +anU +aoG +api +anv +aqS +arO +asB +atx +auH +avx +avx +avx +azc +aAc +aBi +azc +azc +aDM +azc +aAa +aGa +aGR +aHP +aIH +aIG +aLs +aHQ +aNs +aHQ +aPk +aHQ +aNs +aHQ +aTl +bXz +aVc +aVW +aXb +aXZ +aYX +aZM +baL +bbI +bbI +bde +bYU +bee +bbI +bbI +bbI +biq +bbI +bbI +blM +bnh +boA +bpL +aVb +aad +aad +aaa +bPk +bZZ +cad +bpM +bzM +bvp +bBz +bCE +bDE +bEK +bFz +cbg +bvp +bwu +bOG +bOG +bOG +cbJ +cbN +cbT +bdx +aad +bpM +ccy +bpM +aaa +aaa +aaa +aaa +aad +aaa +aaa +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +acJ +aaa +aad +aaa +adq +aeo +aeN +adq +afH +afV +agi +agu +agI +age +ahp +ahK +ail +age +ajj +ajX +akO +aly +amg +amO +amk +anV +aoG +apj +anv +aqP +arP +asE +aty +auF +avx +avx +avx +azc +aAd +aBj +aCf +aDc +aDd +azc +aFe +aGa +aGS +aHQ +aII +aIG +aLs +aHQ +aHQ +aHQ +aHQ +aHQ +aHQ +aHQ +aTm +bXA +bXA +bXA +bXA +bXA +aZN +bYn +baM +bbJ +bbK +bbJ +bbJ +bef +bbJ +bge +bge +bge +bjn +bge +bge +bge +boB +bpM +bpM +bpM +bwu +bwu +bpM +bpM +cae +bpM +bzN +bvp +bBA +bCF +bDF +caP +bFA +cbg +bvp +bwu +bOH +bOH +bOG +cbK +bOH +bpM +bpM +bpM +bpM +ccz +bwu +aad +aad +aad +aad +aad +aaa +aaa +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +adf +acJ +aad +adq +adq +adq +adq +adq +adq +adq +adq +adq +adq +ahq +ahq +ahq +ahq +ahq +ahq +ahq +aly +amh +amP +amk +anW +aoH +apk +apV +aqQ +arM +asD +atz +auF +avx +awE +ayf +azd +aAe +aBk +aCg +aDd +aDN +azc +aFe +aGa +aGT +aHQ +aIJ +aKa +aLt +aMs +aNt +aHQ +aPl +aHQ +aRk +aHQ +aTn +bXA +aVf +aVX +aXc +bXA +aYZ +aZO +baN +bbJ +bcs +bdf +bdC +beg +bbJ +bge +bhn +bhn +bhn +bhn +bhn +bge +bZH +bZJ +bxw +bsj +btx +btx +bwv +bvp +byN +bpM +bzO +cal +bBB +bCG +bDG +bDG +bFB +cbg +bvp +bwu +bOH +bwu +bwu +bJx +bwu +bpM +bLu +bMn +bpM +ccA +bpM +bpM +aad +aaa +bpM +bpM +bwu +bwu +bwu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aac +aad +aad +ahq +ahL +aim +aiG +ajk +ajY +akP +alz +ami +amQ +amj +anX +aoI +apl +anv +aqT +arQ +ajh +ajh +auG +avy +awF +ayg +aze +aAf +aBl +aCh +aDe +aDO +azc +aFe +aGa +aGU +aHR +aIK +aKb +aLu +aMt +aNu +aNu +aPm +aNu +aRl +aSp +aTo +aUk +aVg +aVY +aXd +aUk +aZa +aWW +aWZ +bbK +bct +bdg +bdg +beh +beU +bge +bhn +bis +bjp +bkr +bhn +bge +boD +bvp +bqY +bqX +bty +bqX +bvp +bww +byN +bpM +bpM +bpN +bBC +bCH +caH +bEL +caH +cbh +bGS +bpM +bpM +bwu +cbE +bJy +bKh +bpM +bLv +bpM +bpM +bvp +ccM +bpM +aaa +aaa +bwu +bQR +bGk +bRD +bwu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aac +aad +aad +ahq +ahM +ain +ain +ajl +ajZ +ajZ +alA +amj +amR +amk +anY +aoG +apm +apX +aqS +arO +asB +atA +auH +avx +awG +ayh +azd +aAg +aBm +aCi +aDd +aDd +azc +aFf +aGa +aGa +aGa +aGa +aGa +aLv +aMu +aHQ +aHQ +aHQ +aHQ +aHQ +aSq +aTo +aUl +aVg +aVZ +aXe +aYa +aXY +aZP +baO +bbL +bcu +bdh +bdD +bei +beV +bge +bhn +bit +bjq +bks +bhn +bge +boE +bpP +bzP +bzP +btz +bzP +bpP +bzP +caf +byL +bpM +bAD +bBD +bCI +bvp +caQ +bCI +bGl +bGT +bpM +cby +bvp +bJw +bJz +bKi +bpM +bQU +bpN +bQU +ccB +bwx +bwu +aaa +aaa +bwu +bQS +bRj +bvp +bwu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aac +aad +aad +ahq +ahN +ain +aiH +ajm +aka +ain +alB +amk +amS +any +chm +aoJ +apn +chn +aqU +arR +asE +atB +auF +avx +awG +ayh +azc +aAh +aBn +aCj +aDf +aDP +aEB +aFg +aGb +aGb +aGb +aGb +aKc +aLw +aMv +aNv +aOz +aOz +aOz +aRm +aSq +aTo +aUk +aVh +aWa +aXf +aUk +aWW +aZQ +baP +bbM +bcv +bdg +bYV +bct +beW +bge +bhn +bhn +bjr +bhn +bhn +bge +boC +bpQ +bpS +bpS +bpS +bpS +bpS +bwx +boC +bvp +bpM +bpM +bpM +bpM +bDH +bDH +bpM +bpM +bpM +bpM +bJH +bvp +cbF +bvp +cbP +cbU +cbY +bpM +cbP +bvp +bMn +bwu +aaa +aaa +bwu +bQT +bvp +bRE +bwu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aac +aad +aad +ahq +ahO +aio +aiI +ajn +akb +akb +alC +aml +amT +anz +anZ +aoG +apm +cho +aqQ +arS +asD +atC +auF +avx +awG +ayh +azc +aAi +aAe +aCk +aDg +aDQ +azc +azY +aGc +ahV +ahV +ahV +aGa +aLx +aMu +aNw +aOA +aPn +aQv +aRn +aSq +aTp +aUj +aVi +aWb +aXg +aUj +aZR +aZR +baQ +bYA +bcw +bdj +bdE +bZe +bYA +bge +bge +bge +bge +bge +bge +bge +boC +bpR +bpS +bsk +btA +bur +bpS +bwy +boC +bvp +bpM +bpO +bBE +bpM +bDI +bDI +bpM +bBE +bpO +bIl +bpQ +bvp +cbF +bpM +bpM +bpM +bpM +bpM +bvp +bvp +bpM +bpM +bpM +aad +bpM +bpM +bFC +bpM +bpM +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aac +aad +aad +ahq +ahP +aip +aiJ +ajo +akc +akP +alB +amm +amU +amk +aoa +aoK +api +apZ +aqV +arQ +ajh +ajh +auG +avx +awG +ayh +azc +azc +azc +azc +azc +azc +azc +ahV +ahV +ahV +bel +aHS +aGa +aGa +aMw +aNx +aOB +aOB +aOB +aRo +aSr +aGa +aUj +aUk +aWc +aUk +aUj +aED +aED +baR +bYA +bbK +bYA +bYA +bbK +bYA +bgf +bhs +biv +biv +bku +biv +biv +boF +bpS +bpS +bsl +btB +bus +bpS +bpS +bxy +byM +bzP +bzP +bzP +bzP +bzP +bzP +bzP +bzP +bGU +bpM +bpM +bvp +cbF +bpM +cbQ +cbV +cbZ +bpM +bpM +bvp +bOE +bPi +bpM +aad +aad +bwu +bvp +bwu +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aac +aad +agw +agx +agx +ahq +ahq +ahq +ahq +ahq +ahq +ahq +alD +amn +amV +anA +aob +aoL +apo +cho +aqQ +arT +asF +atD +auI +avz +awH +ayi +bWG +aAj +aBo +azf +aDh +aDR +aEC +aFh +azF +azF +azF +azF +aKd +azF +aAT +aNy +azF +azF +azF +aRp +aHo +azF +aEC +azF +aWd +azF +azF +azF +azF +baS +azF +azF +bdk +bdF +bej +beX +beX +bht +beX +beX +beX +beX +beX +beX +bpS +bqZ +bsm +btC +but +bvq +bpS +bvp +byN +bvp +bvp +bBF +bvp +bvp +bvp +bFC +bGm +cbn +bHy +bHy +bHy +cbG +bvp +bvp +bvp +cca +bMV +bvp +bvp +bvp +bGR +bpM +aad +aad +bwu +byL +bwu +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aac +aaa +agw +agJ +agX +ahr +ahQ +aiq +aiK +ajp +akd +bWm +alE +akQ +amW +anB +aoc +agw +app +apZ +aqW +arU +apW +apW +auJ +avx +awI +ayj +avx +aAk +avx +avx +avx +aDS +aED +aFi +aGd +aBT +aBT +aBT +aKe +aBT +aBT +aNz +aMS +aMS +aMS +aRq +aKN +aBU +aEQ +aBU +aWe +aXh +aBU +aBU +aBU +baT +aBU +bcx +bdl +bdG +bek +beY +bgg +bhu +beX +bjs +bkv +blQ +bni +boG +biw +bra +bsn +bkw +buu +bvr +bpS +bxz +byO +bxz +bxz +bxz +bxz +bxz +bxz +bxz +bxz +bGV +bHz +bpM +bpM +bJA +bpM +bpM +bLx +bMo +bMW +bpM +byL +bvp +bvp +bpM +bpM +bpM +bpM +bvp +bpM +bpM +bwu +bwu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aac +aaa +agx +agK +agX +ahs +bWb +agw +aiL +ajq +ajq +akR +alF +akR +akT +anC +aoe +agw +bWt +apY +aqX +arV +asG +asG +auK +avA +awJ +ayk +azg +azg +bWJ +azg +azg +aDT +aEE +aFj +aGe +aGV +aHU +aIL +aKf +aHU +bXp +aNA +aHU +aHU +aQw +aRr +aSt +aHU +aUn +aVj +aWf +bXS +aHU +aHU +aVj +aHU +bbN +bcy +bdm +aFk +bZf +beX +bgh +bhv +biw +bjt +bZA +bZA +bnj +boH +biw +brb +bso +btD +bnm +bvs +bpS +bpS +byP +bzQ +bAE +bBG +bCJ +bDJ +bEM +bFD +byU +bGW +bHA +bpM +bIO +bJB +bKj +bpM +bpM +bpM +bpM +bpM +bIl +bpM +bvp +bpO +bQa +bQy +bqY +bpN +bvp +bKo +bSk +bwu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aac +aaa +agx +agK +agX +agX +agK +agw +aiM +ajr +ajq +akS +alG +amp +amX +anC +aoe +agx +api +apZ +aqY +ajh +asH +atE +ajh +avx +avx +ayl +azh +azh +azh +azh +azh +azh +azh +bWX +aBT +aGW +aHV +aIM +aKg +aHW +aHV +aNB +aOC +aEj +aIf +aRs +aSu +aSu +aUo +aSu +aSu +aUo +bXX +bXX +aSu +aSu +bYB +bcz +aBT +bdH +ayN +beX +bgi +bhw +bix +bju +bkx +blR +bnk +boI +bpT +brc +bsp +btE +buv +bvt +bwz +bpS +byQ +bzR +bAF +bBH +bCK +bDK +bEN +bFE +bxz +bGX +bHB +bIm +bIP +bJC +bKk +bpM +bLy +bMp +bpM +bvp +bvp +bOF +bvp +bvp +bvp +bvp +bpN +bQU +bpN +bRP +bSl +bwu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aac +aaa +agx +agK +agX +agX +agK +agw +aiN +ajr +ajq +akT +alH +bWp +bWp +anD +aof +aoM +apq +aqa +aqW +ajh +asI +atF +auL +avx +avx +ayl +azh +aAl +aBp +aCm +aDi +aDU +aEF +bWX +aBT +aGX +aHW +aIN +aKh +aLy +aHV +aIf +aIf +aIf +aIf +aRt +aSu +aTq +aUp +aSu +aWg +aXi +aYb +aZf +aZT +baU +bbO +bcA +azF +aFo +bZg +beX +bgj +bhx +biw +bjv +bky +blS +bnl +boJ +bpU +brd +bsq +btF +buw +bvu +bwA +bpS +byR +bzS +bAG +bBI +bCJ +bCJ +bCJ +bCJ +bxz +bGY +bpM +bpM +bpM +bpM +bpM +bpM +bLz +ccb +bpM +bvp +bpM +bpM +bwu +bpM +bwu +bpM +bwu +bpM +bpM +bRQ +bpM +bpM +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aac +aad +agw +agL +agX +agX +agK +agw +aiO +bWg +ajq +akR +alF +akR +akT +anE +aog +agx +apr +aqb +aqS +arW +asJ +atG +auM +avx +awK +aym +azh +aAm +aBq +aCn +aDj +aDj +aEG +aFl +aGf +aGY +aHX +aIO +aKi +aLz +aHV +aNC +aOD +aPo +aPo +aRu +aSv +aTr +aUq +aVk +aWh +aXj +aWh +aZg +aZU +aSu +bbP +bcB +aBT +aFk +bZg +beX +beX +beX +beX +bjw +bky +blT +bZF +boK +bpS +bre +bsr +btG +bux +bvv +bwB +bpS +byS +bzT +bAH +bBH +bCL +bDK +bEN +bFF +bxz +bGY +bHC +bpM +bIQ +bJD +bKl +bpM +bpN +bvp +bpM +bND +bpM +bOG +bOG +bOG +bOH +bOG +bOG +bOG +bwu +bvp +bwu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bLt +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aac +aaa +agx +agK +agX +agX +bWc +agw +aiP +bWh +ajq +akU +alI +amq +amY +anF +aoh +agw +aps +aqc +aqZ +ajh +asK +atH +auN +avx +awL +avx +azh +aAn +aBr +aBs +aBs +aDV +aEF +bWX +aGg +aGX +aHW +aIP +aKj +aLA +aHV +aND +aOE +aOF +aOF +aRv +aSw +aTs +aUr +aSu +aWi +aXk +aYc +aZh +aZV +aSu +bbQ +bcB +aBT +aFk +bZh +bem +bgk +bhy +beX +beX +bkz +blU +bnn +beX +bpS +bpS +bpS +bpS +bpS +bpS +bpS +bpS +buy +buy +bAI +bBI +bCJ +bDL +bEM +bFG +byU +bGZ +bHC +bHC +bvp +bGl +bvp +bpR +bvp +bvp +bpM +bFC +bpM +bOH +bOH +bOH +bQb +bOG +bOG +bOG +bwu +bRR +bwu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aac +aaa +agx +agM +agX +aht +ahR +air +aiQ +ajs +ake +akV +alJ +amr +amZ +anG +aoi +ajh +ajh +aqd +ara +ajh +asL +atI +asL +avB +awM +ayn +azh +aAo +bWK +aBs +aBs +aDW +azh +bWY +aGg +aGX +aHV +aHV +aHV +aHV +aHV +aNE +aOF +aOF +aOF +aRw +aSu +aSu +aSu +aSu +aSu +aSu +aSu +aSu +aSu +aSu +aOF +bcB +aBT +bYW +bem +bem +bgl +bhz +biy +bjx +bkA +blV +bno +boL +bpV +brf +bss +btH +buy +bvw +bwC +bxA +bxz +bzU +bAJ +bBJ +cay +bCJ +bCJ +bCJ +bxz +bGY +bvp +bFC +bIR +bJE +bvp +bpM +bvp +bvp +bpM +bFC +bpM +bOG +bOG +bOG +bQc +bOH +bOH +bOH +bwu +bvp +bwu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aac +aaa +agx +agN +agX +ahu +ahS +agw +agw +agw +akf +akW +alK +akW +ana +agw +aoj +ajh +apt +aqe +arb +arX +asM +atJ +auO +auO +auO +auO +azi +aAp +bWK +aBs +aBs +aDX +azh +aFm +aGg +aGX +aHY +aIQ +aKk +aIb +aKy +aNE +aOF +aPp +bXt +aRx +aOF +aTt +aZW +aUs +aWj +aUs +aUs +aUs +bYo +baV +aZi +bcC +azE +bdI +ben +beZ +bgm +bhA +biy +bjy +bkB +blW +bnp +bnp +bpW +brg +bst +btI +buz +bvx +bwD +bxB +byT +bzV +bAK +bBI +bCM +bDM +bEO +bFH +bGn +bHa +bpR +bpM +bFN +bGl +bKm +bpM +bLA +bMq +bpM +bNE +bpM +bOG +bOG +bOG +bOH +bOG +bOG +bOG +bwu +bvp +bwu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aac +aaa +agw +agN +agX +ahv +ahT +agw +aiR +ais +akg +ais +alL +ais +anb +ais +aok +ajh +apu +aqf +arc +apu +asL +atK +asL +avC +awN +ayo +azi +aAq +aBs +aBr +aBs +aDY +aEF +bWZ +aGh +aGZ +aHZ +aIR +aKl +aIb +aMy +aNF +aOG +aPq +aQy +aRy +aOF +aTu +bXB +aUt +aUt +bXT +aUt +aUt +aUt +bYu +aZi +aGX +aBT +bYW +bem +bfa +bem +bhB +biy +bjz +bkC +blX +bnq +boM +bpX +brh +bsu +btJ +buA +bvy +bwE +bxC +byU +bzW +bAL +bBK +bCN +bDN +caR +bFI +byU +bHb +bHD +bpM +bIS +bJF +bKn +bpM +bpM +bpM +bpM +bvp +bpM +bpM +bwu +bpM +bwu +bpM +bwu +bpM +bpM +bRS +bpM +bpM +bpM +bpM +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aad +agw +agx +agx +agw +agw +agw +bWe +ais +akh +akX +alM +ams +anc +ais +aok +ajh +apv +aqg +ard +apu +asL +atL +auP +avD +awO +ayp +azi +aAm +aBs +aCo +aDk +aDk +aEH +bXa +aGi +aHa +aIa +aIS +aKm +aIb +aMz +aNG +aOF +aPr +aQz +aRz +aOF +aTu +aUt +bXF +bXM +bXM +bXM +aXm +aZX +baW +aZi +aGX +aBT +bdJ +beo +bfb +beo +beo +beo +beo +bkD +beo +bnr +boN +bpY +bZL +bnr +bes +bes +bes +bes +bes +bes +bxz +bAM +bBI +bCO +bBI +bEP +bFJ +bxz +bxy +bxx +bpM +bpM +bpM +bpM +bpM +bLB +bpR +bpM +bvp +bpM +bOI +bvp +bvp +bvp +bQz +bQU +bpN +bvp +bvp +bvp +byL +bvp +bwu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aav +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +aad +aad +aad +aad +aad +bWe +ajt +bWl +akY +alN +amt +and +ais +aol +ajh +apu +aqh +are +apu +asL +atM +asL +avE +awP +ayq +azi +aAr +aBt +aCp +aDl +aDZ +aEF +bWX +aGg +aGX +aIb +aIT +aKn +aIb +aMA +aNH +aOF +aPs +aQA +aQx +aOF +aTw +aUt +bXF +aWk +aXl +aYd +bYg +aZY +baW +aZi +aGX +aBT +bYW +beo +bfc +bgn +bhC +bgn +bgn +bkE +beo +bns +boO +bpZ +brj +bsv +bet +buB +bvz +bwF +bxD +bes +bxz +bAN +bBL +bCP +bDO +bEQ +bxz +bxz +bpR +bHE +bDb +bDb +bJG +bDb +bDb +bDb +bDb +bDb +bDb +bOh +boC +bPj +bFC +bPk +bPk +bPk +bPk +bPk +bPk +bPk +bvp +bpM +bpM +bpM +bpM +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +bWe +aju +akj +akZ +alO +amu +ane +ais +aok +ajh +apu +aqi +arf +arY +asL +asL +asL +avF +awQ +ayr +azi +azi +azi +azi +azi +azi +azh +aFk +aGg +aGX +aIc +aIc +aIc +aIc +aJb +aNI +aOF +aPt +aQB +aRA +aSx +aTx +aUu +bXG +aWl +bXU +bXU +bYh +aZZ +baX +bbR +bcD +aBT +bYW +beo +bfd +bgo +bfc +bfc +bjA +bkF +beo +bnt +boP +bpZ +brk +bsy +bes +buC +bfq +bfq +bxE +bes +buy +bxz +bxz +bxz +bxz +bxz +bxz +bGo +bDb +bHF +bvp +chr +bJH +bKo +bKX +byL +bMr +bpM +bpO +bOi +bOJ +cbO +bFC +bNL +bQA +bQV +ced +bQV +bRT +bPk +bvp +cbP +bvp +cga +bpM +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +aaa +aaa +aaa +aaa +aad +aaa +aaa +aaa +aaa +aad +aaa +aaa +aaa +aaa +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +bWe +ajv +aki +ala +alP +amv +anf +ais +aom +ajh +ajh +ajh +ajh +ajh +ajh +atN +asL +asL +awR +asL +auO +auO +auO +auO +auO +auO +aEI +aFk +aGg +aHb +aIc +aIU +aKo +aIc +aJb +aNJ +aOF +aPu +aQx +aRB +aOF +aTy +aUt +aUt +aWm +aUt +aYe +aUt +baa +baY +aZi +aGX +aBT +bYW +beo +bfe +bgn +bgn +bgn +bgn +bkG +beo +bnt +boQ +bqa +brk +bsx +bet +buD +bfq +bwG +bxF +bes +bzX +bAO +bes +bzX +bAO +bes +bFK +bGp +bHc +bHc +bHc +bHc +bHc +bHc +bHc +bGm +bpM +bpM +bNF +bvp +bGp +bIl +bvp +bNL +bQB +bQW +bRk +bRF +bRU +bPk +bvp +bpM +bQU +cgb +bpM +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +acJ +acJ +bUl +acJ +acJ +acJ +acJ +bUl +acJ +acJ +acJ +acJ +bUl +acJ +acJ +acJ +acJ +bUl +acJ +acJ +aaa +acJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +bWe +ajw +aki +akY +alQ +akY +ang +ais +aon +aoN +apw +apw +apw +arZ +asN +apw +auQ +avG +awS +ays +azj +aAs +aBu +aCq +aDm +auO +aEJ +aFk +aGi +aHa +aId +aIV +aKp +aIc +aJb +aNK +aOF +aPv +aQC +aRC +aOF +aOF +aUv +aUt +aWn +aXm +aOF +aZi +bab +aZi +aOF +bcE +bdn +bYX +bep +bff +bgp +bgp +bgp +bgp +bkH +beo +bnv +boP +bpZ +brk +bsy +bes +buE +bvA +boV +bxG +bes +bzY +bDP +bes +bzY +bDP +bes +bFL +bGp +bHc +cbw +cbz +cbz +cbz +cbL +bHc +bLC +bMs +bIl +bHA +bpN +bGp +bFC +bvp +bNL +bQC +bQC +bQC +bRF +bRU +bPk +byL +bpM +bwu +bpM +bpM +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +aaa +aaa +aaa +aaa +bOc +aaa +aaa +aaa +aaa +aad +aaa +aaa +aaa +aaa +aad +aaa +aaa +aaa +acJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +bWe +ajx +akk +alb +alR +amw +ane +bWe +aoo +anH +anH +anH +anH +anH +asL +atO +auO +avH +awT +ayt +azk +aAt +aBv +awV +awV +auO +ayI +aFp +aGh +aGZ +aIe +aIW +aKq +aIc +aMB +aNL +aOH +aOH +aOH +aOH +aOH +aOH +aUw +aUt +aUt +aXn +aYf +aZj +bac +aZj +aZj +aGX +aBT +bYW +beo +bZk +bgq +bhE +biz +bhD +bkI +beo +bnw +boS +bpZ +brl +bsz +bet +buF +biF +boV +bxH +bes +bzZ +bAQ +bes +bCR +bAQ +bes +bFM +bGp +bHc +cbx +bIn +bIo +bIp +cbM +bHc +bvp +bMn +bIl +bpQ +bvp +bGp +bpM +bvp +bNL +bQC +bQC +bRl +bNL +bNL +bNL +bNL +bNL +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +bTT +bUd +bUd +bUd +bTT +bTT +bTT +bTT +bTT +bUV +bUV +bUV +bUV +bUV +bUV +bUV +bUV +bUV +bUV +bUV +bSv +bUl +aad +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +bdx +bWe +bWe +akl +alc +alc +alc +anh +bWe +aop +aoO +aaa +aaa +aaa +asa +asO +atP +auO +avI +awU +ayu +azl +aAu +aBw +aCr +aDn +auO +auO +aFq +aGg +bXk +aIc +aIc +aIc +aIc +aJb +aNL +aOH +aOH +aQD +aRD +aSy +aOH +aUx +aUt +aWo +aXn +aYg +aBT +bYp +aBT +aBT +aGX +aBT +bYW +beo +beo +beo +beo +beo +beo +bkJ +beo +bnr +boN +bpY +bri +bnr +bes +bet +bvB +bwH +bet +bes +bAa +bAR +bes +bCS +bDR +bes +bes +bGp +bHc +bHH +bIo +bHG +bJI +bKp +bHc +bLD +bLD +bLD +bLD +bLD +bGp +bKF +bPB +bNL +bQC +bQC +bRl +bNL +bRV +bSm +bSx +bSJ +bSQ +bSQ +bSQ +bTo +bSQ +bSQ +bSQ +bSQ +bTo +bSQ +bSQ +bSQ +bSQ +bTo +bSQ +bSQ +bSQ +bSQ +bTo +bSQ +bSQ +bSQ +bSQ +bTo +bSQ +bSQ +bSQ +bTZ +bUe +bUm +bUt +bTT +bUB +bUI +bUP +bUd +bUW +bVc +bVf +bVm +bVr +bVw +bVB +bVF +bVe +bVL +bUV +aaa +acJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bdx +aad +aad +aad +aad +aad +bWr +aoq +anH +aaa +aaa +aaa +asa +asO +atQ +auO +avJ +awV +ayv +azm +aAv +aBw +aCs +aDn +aEa +auO +aFr +aGg +aHd +aIf +aIX +aKr +aIf +aJb +aNM +aOI +aPw +aQE +aRE +aSz +aOH +aTv +aVl +aUt +aXn +bXY +bbY +bad +baZ +baZ +aHo +azF +bdK +beq +bfg +bgr +bhF +biA +bjB +bkK +blY +bnx +bfq +bqb +brm +bsA +btK +buG +bvC +bwI +bxI +byV +bwI +bvC +bBM +bwI +bDS +bER +bes +bGp +bHc +bHI +bIp +bIo +bIn +bKq +bHc +bLE +bMt +bMX +bNG +bLD +bOK +bNL +bPC +bNL +bQD +bQD +bNL +bNL +bRW +bPd +bSy +bNL +bNL +bNL +bNL +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +bTT +bTT +bTT +bTT +bUf +bUn +bNW +bTT +bUC +bUJ +bUQ +bUd +bUX +bVd +bVg +bVn +bVs +bVx +bVC +bVG +bVe +bVM +bUV +aaa +acJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agP +agP +agP +aaa +aaa +aaa +asa +asO +atR +auO +avK +awW +ayw +azn +aAv +aBx +aCt +aDo +aEb +auO +aFs +aGj +aHe +aIf +aIY +aKs +aIf +aMC +aNN +aOH +aOH +aQF +aRF +aSA +aOH +aOH +aOH +aWp +aXo +aOH +aOH +bae +aOH +aOH +aGX +aBT +bYX +ber +bfh +bgs +bhG +biB +bjC +bkL +blZ +bfp +boT +bqc +brn +bsB +bsB +buH +bvD +boV +bfq +byW +boV +bAb +bfq +bCT +biH +bES +bes +bGp +bHc +bHJ +bIq +cbB +bJJ +bKr +bHc +bLF +bMu +bMY +bNH +bOj +bOL +ccm +bPD +bQd +bQE +bQE +bRm +bRG +bRX +bSn +bPn +bSK +bSR +bTa +bTf +aad +aad +aad +aaa +aaa +aaa +aaa +aaa +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agP +bTW +bTX +bUa +bUg +bUo +bUu +bUz +bUD +bUK +bUd +bUd +bUY +bVe +bVh +bVe +bVe +bVe +bVe +bVH +bVe +bVN +bUV +aaa +acJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +asa +asO +atS +auO +avL +awX +ayx +azo +aAw +aBy +azl +aDp +aEc +auO +aFr +aGg +aHd +aIf +aIZ +aJb +aLB +aJb +aNN +aOH +aPx +aPz +aPz +aPz +aTz +aOH +aVm +aVn +aVn +aYh +aYh +baf +bba +bbS +aGX +aBT +bYW +beq +bfi +bgt +bhH +biA +bjD +bkM +bma +bny +blZ +bqd +bro +bsC +btL +bkM +bvE +bwJ +bxJ +byX +bAc +bkM +bBN +bCU +bDU +bET +bes +bGp +bHc +bHc +bIr +bIT +bJK +bHc +bHc +bLG +bMv +bMZ +bNI +bOk +bOM +bPm +bPc +bPI +bPd +bPd +bRn +bNL +bNL +bNL +bSz +bNL +bNL +bNL +bNL +bNL +bNL +bQj +bNL +bNL +bNL +bNL +bNL +bNL +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bNx +bTT +bTT +bTY +bTT +bUh +bUp +bUv +bUA +bUE +bUL +bUR +bUU +bUZ +bVe +bVe +bVe +bVt +bVy +bVe +bVe +bVe +bVO +bUV +aad +bUl +aad +aaa +aaa +aaa +aaa +aaa +aaa +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 +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +arg +arg +arg +arg +auO +auO +auO +auO +auO +aAx +aBz +auO +auO +auO +auO +aFt +aGk +aHd +aIf +aJa +aKt +aIf +aMD +aNN +aOH +aPy +aPz +aRG +aSB +aTA +aUy +aVn +aVn +aXp +aYi +aYi +bag +aYi +bbT +bcD +aBT +bYW +beq +bfj +bgu +bhI +beq +bes +bkN +bes +bes +boU +bqe +brp +bsD +btM +bsE +bvF +bsE +btM +byY +byY +bAS +bBO +bAS +byY +byY +bes +bGp +bGl +bHc +bIs +bIU +bJL +bKs +bHc +bLH +bMw +bNa +bNJ +bOl +bON +bPn +bPE +bQe +bPG +bPd +bRo +bNL +bRY +bNL +bSA +bSL +bSS +bSL +bTg +bNL +bNL +bNL +bTi +bSL +bTG +bTI +bTI +bNL +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bTU +bTT +bTT +bTT +bUi +bUq +bUw +bTT +bUF +bUM +bUd +bUd +bUd +bVe +bVi +bVe +bVe +bVe +bVe +bVI +bVe +bVP +bUV +aaa +acJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +apx +aqj +arh +asb +asP +atT +auR +avM +awY +ayy +azp +aAy +aBA +aCu +aCu +aCu +aEK +aFu +aGl +aHf +aIf +aIf +aIf +aIf +aME +aNO +aOH +aPz +bXu +aRH +aSC +aTB +aOH +aVo +aVn +aXq +aYj +aZl +bah +aVn +bbS +aGX +aBT +bYW +bes +bfk +bfk +bfk +bes +bjE +bfq +bmb +bfk +boV +bqb +bZM +bsE +btN +buI +bvG +bwK +bxK +byY +bAd +bAT +bBP +bCV +bCV +byY +bvp +bGp +bHd +bHc +bIt +bIV +bJM +bKt +bHc +bLI +bMx +bNb +bNK +bOj +bOO +bPo +bPF +bQf +bPF +bQX +bRp +bRH +bRZ +bSo +bSB +bSE +bST +bSE +bTh +bTp +bTu +bTp +bTj +bSE +bST +bSE +bSE +bNL +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bTV +abt +abt +bUb +bUj +bUr +bUx +bTT +bUG +bUN +bUS +bUd +bVa +bVe +bVj +bVo +bVu +bVz +bVD +bVJ +bVe +bVQ +bUV +aaa +acJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +apy +aqk +ari +asc +asQ +asc +auS +avN +awZ +ayz +azq +aAz +aBB +aCv +aBB +ayz +aEL +aFv +aGm +bXl +aIf +aJb +aKu +aKy +aJb +aNN +aOH +aPA +aOH +aOH +aSD +aOH +aOH +aVp +aVn +aXr +aYk +aZm +bai +aVn +bbS +aGX +aBT +bYW +bes +bfl +bZn +bZu +biC +bjF +bkO +bmc +bfk +boV +bqb +bZN +bsD +btO +buJ +bvH +bwL +bxL +byY +bAe +cam +bBQ +bCW +bDV +byY +bFN +bGq +bHe +bHK +bIu +bIW +bJN +bHK +bHK +bLD +bLD +bLD +bLD +bOm +bOP +bPn +bPG +bQg +bPG +bPd +bRq +bNL +bKF +bNL +bSC +bSE +bSU +bSE +bSE +bSE +bSE +bSE +bSE +bSE +bSU +bSE +bTK +bKF +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +aad +aad +bTT +bUk +bUs +bUy +bTT +bUH +bUO +bUT +bUd +bVb +bVe +bVk +bVp +bVv +bVA +bVE +bVK +bVe +bVR +bUV +aaa +acJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +apy +aql +arj +asd +asR +atU +auT +avO +axa +ayA +ayA +ayA +ayA +ayA +ayA +arg +arg +aFw +aGn +aHh +aIg +aJc +aKv +aLC +aKv +aNP +aOJ +aPB +aQG +aRI +bXx +aTC +aUz +aVq +aWq +aWq +aWq +aWq +baj +aVn +bbS +aGX +aBT +bYW +bet +bfm +bfq +bfq +biD +bjG +bkP +bfk +bes +boV +bqb +bZN +bsE +btP +buK +bvI +bwM +bxM +byY +bAf +bAU +bBP +bCX +bCX +byY +byL +bGp +bHe +bHL +bIv +cbC +bJO +bKu +bKY +bLJ +bMy +bNc +bNL +bOn +bOQ +bPp +bPl +bQh +bPd +bQY +bRr +bRI +bSa +bSc +bSD +bSM +bSV +bTb +bSV +bSV +bTb +bSV +bSV +bTb +bSV +bSV +bTL +bKF +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +aad +aad +bTT +bTT +bTT +bTT +bTT +bTT +bTT +bTT +bTT +bUV +bUV +bUV +bUV +bUV +bUV +bUV +bUV +bUV +bUV +bUV +bSw +bUl +aad +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +apy +aqm +arj +ark +ark +ark +ark +avP +axb +ayA +bWH +aAA +aBC +aCw +ayA +aEd +axo +bXb +aGg +aHd +aIf +aJd +aJb +aLD +aMF +aMF +aMF +aMF +aMF +aMF +aSF +aTD +aOH +aOH +aWr +aXs +bXZ +bYi +aOH +aOH +aOH +aGX +aBT +bdL +beu +bfn +bgv +bfp +bfp +bfp +bkQ +bmd +bnz +bgx +bqb +biF +bsD +btQ +buL +bvJ +bwN +bxN +byY +byY +bAV +bBR +byY +byY +byY +byY +bGr +bHf +bHM +bIw +bIX +bJP +bKv +bKZ +bKv +bMz +bNd +bNL +bOo +bOR +bPn +bPd +bPd +bPd +bQZ +bRr +bRI +bSb +bSc +bSE +bSN +bSE +bTc +bSE +bSE +bTc +bSE +bSE +bTc +bSE +bSE +bSN +bKF +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +aaa +aaa +aaa +aaa +bOf +aaa +aaa +aaa +aaa +aad +aaa +aaa +aaa +aaa +aad +aaa +aaa +aaa +acJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +apz +aqn +ark +ase +asS +atV +auU +avQ +axc +ayA +azr +aAB +aBD +aCx +ayA +aad +aEM +aFx +aGo +aHd +aIf +aIf +aKw +aLD +aMF +aNQ +aOK +aPC +aQH +aMF +aSG +aTE +aMF +aVr +aWs +bXV +aYm +aYm +bYq +bYv +bbU +bcD +aBT +aFk +bet +bfo +bgw +bhJ +biE +bjH +bkR +bme +bkR +boW +bqf +brq +bsE +btR +buM +bvK +bwO +bxO +byY +byY +bAW +bBS +bCY +bDW +bEU +byY +bvM +bHe +bHN +bIx +bIY +bJQ +bKw +bLa +bLK +bMA +bNe +bNL +bOp +bOS +bPn +bPd +bQi +bQF +bQZ +bRs +bRI +bSb +bSc +bSD +bSN +bSW +bOG +bOG +bOH +bOG +bSW +bOG +bOG +bSW +bSE +bSN +bKF +aad +aad +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +acJ +acJ +bUl +acJ +acJ +acJ +acJ +bUl +acJ +acJ +acJ +acJ +bUl +acJ +acJ +acJ +acJ +bUl +acJ +acJ +aaa +acJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +abu +aac +aac +aac +aac +aac +aaa +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +apy +aqo +arj +ase +asS +atW +auU +avQ +axd +ayA +azs +aAC +aBE +aCy +ayA +aad +aEM +aFx +aGo +aHd +aIh +aIf +aKx +aLD +aMF +aNR +aOL +aPD +aQI +aRJ +aSH +aTF +aUA +aVs +bXN +aXt +aYn +aZo +bYr +aMF +bYC +bcE +ayJ +aFj +bev +bfp +bgx +bfq +biF +bjI +bkS +bkS +bkV +bkV +bqg +bkU +bkV +bkV +bkV +bvL +bwP +bwP +bwP +byY +bAX +bBT +bBV +bDX +bEV +byY +bvM +bHe +bHO +bIx +bIZ +bJR +bKx +bHK +bHK +bHK +bHK +bNL +bKF +bOT +bPn +bPH +bQj +bNL +bRa +bNL +bNL +bSc +bSc +bSc +bSN +bOG +bOG +bOG +bOH +bOG +bOH +bOG +bOG +bOG +bTJ +bTM +bKF +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +aaa +aaa +aaa +aaa +aad +aaa +aaa +aaa +aaa +aad +aaa +aaa +aaa +aaa +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aac +aac +aac +aac +aac +aac +aac +aac +aaa +aad +aaa +aaa +aaa +aad +aaa +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +apy +aqp +arj +asf +asS +atX +auU +avQ +axe +ayB +azt +aAD +aBF +ayA +ayA +aad +aEM +aFx +aGo +aHd +aIi +aIf +aKy +aLD +aMF +aNS +aOM +aPE +aQJ +aMF +aSI +aTG +aMF +aVt +bXO +aXu +aYo +aZp +aZu +aYv +bbV +aGX +aBT +aFk +bew +bfq +bfq +bhK +biF +bjJ +bkS +bmf +bnA +boX +bqh +brr +bsF +btS +bkV +bvM +bwP +bxP +byZ +byY +bAY +bBU +bCZ +bDY +bEW +byY +bvM +bHe +bHP +bIx +bJa +bJR +bKy +bHK +bLL +bMB +bNf +bNM +bOq +bOS +bPq +bPI +bNL +bQG +bRb +bRt +bRJ +bSd +bSp +bSc +bSN +bOG +bOG +bOH +bOH +bOH +bOH +bOH +bOG +bOG +bSE +bSN +bKF +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aaa +aaa +aad +aaa +aaa +aaa +aaa +aad +aaa +aaa +abx +abx +abx +abx +abx +aad +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +apy +aqq +arj +ase +asS +atY +auU +avQ +axf +ayA +azs +aAE +aBG +aCA +ayA +aad +aEM +aFx +aGo +aHd +aIj +aIf +aJb +aLD +aMF +aNT +aON +aPF +aMF +aMF +aSJ +aTH +aMF +aMF +aWt +aXv +aYp +bYj +bak +bbc +bbW +aGX +aBT +aFn +bex +bZl +bgy +bfr +biG +bjK +bkT +bmg +bnB +boY +bqi +brs +bsG +btT +buN +bvN +bwP +bxQ +bza +bAg +bAZ +bBV +bBV +bDZ +bEX +byY +bvM +bHe +bHQ +bIx +bJb +bJR +bKz +bHK +bLM +bMC +bNg +bNN +bOr +bOU +bPn +bPJ +bQk +bQH +bRc +bRu +bRK +bSe +bSq +bSc +bSN +bSW +bOH +bOH +bTq +bTv +bTA +bOH +bOH +bOH +bSE +bSN +bKF +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aad +aaa +aaa +aaa +aaa +aad +bVS +aaa +aaa +aaa +aad +aaa +abx +abx +abx +abx +acx +acK +acK +acK +acK +adS +aep +aeO +afl +abx +aaa +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +apz +aqr +ark +ase +asS +atZ +auU +avQ +axg +ayA +azu +aAF +aAE +aCB +ayA +aad +aEM +aFx +aGp +aHd +aIf +aIf +aKz +aLD +aMF +aMF +aOO +aMF +aMF +aRK +aSK +aTI +aUB +aVu +aWu +aWv +aWu +aSE +aWu +aMF +bYD +aGX +aBT +aFk +bet +bes +bgz +bfq +biH +bjK +bZB +bmh +bnC +boZ +bnB +bZO +bnB +btU +bkV +bvM +bwP +bxR +bzb +byY +bBa +bBW +bDa +bEa +bEY +byY +bvM +bHe +bHR +bIx +bJc +bJR +bKA +bHK +bLN +bMC +bNh +bNO +bOs +bOV +bPr +bPK +bNL +bQI +bRd +bRv +bRL +bSf +bSr +bSF +bSO +bOG +bOG +bOH +bTr +bTw +bTB +bOH +bOG +bOG +bTJ +bTN +bKF +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aac +aaa +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +abx +abJ +abU +ach +acy +acL +bVY +bVY +adB +ack +aeq +aeP +afm +abx +aad +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +apy +aqs +arj +ark +ark +ark +ark +avP +axh +ayA +bWH +aAG +aBH +aCC +ayA +aEd +axo +bXc +aBT +aHd +aIf +aJe +aJb +aLE +aMG +aNU +aOP +aPG +aQK +aQK +aQK +aQK +aQK +aVv +aWv +aWu +aWv +aZr +bYs +aYv +bYE +aGX +aBT +aFk +bey +bet +bgA +bfq +bfq +bjK +bkT +bmg +bnD +bpa +bqj +brt +bsH +btV +bkV +bvO +bwP +bxS +bwP +byY +byY +bBX +byY +byY +byY +byY +bvM +bHe +bHS +bIx +bJd +bJS +bKB +bHK +bLO +bMC +bNi +bNP +bOt +bOW +bPn +bPL +bQk +bQH +bRe +bRw +bRM +bSg +bSs +bSc +bSN +bOH +bOH +bOH +bTs +bTx +bTC +bOH +bOH +bSW +bSE +bSN +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aac +aad +aaf +aag +aak +aap +aaj +aah +aaJ +aaV +aaj +aag +aak +abm +aby +abK +abV +aci +acz +acM +adg +adg +adC +adT +aer +aeQ +afn +abx +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +apy +aqt +arj +asg +asT +aua +auV +avR +axi +ayA +ayA +aAH +ayA +ayA +ayA +arg +arg +aFw +aBT +aHd +aIf +aJf +aKA +aLF +aMH +aNV +aOQ +aPH +aQL +aRL +aSL +aTJ +bXC +bXH +aWu +aWv +aWu +aSE +bal +aYv +bbV +bcF +bdo +bdM +bZi +bet +bgB +bfq +bfq +bjL +bkS +bmi +bnE +bpb +bkV +bkS +bsI +bkS +bkV +bvP +bwQ +bxT +bzc +bwQ +bwQ +bBY +bDb +bDb +bDb +bFO +bGs +bHe +bHT +bIy +bJe +bJT +bKC +bHK +bLP +bMD +bNj +bMD +bOq +bOX +bPs +bPM +bNL +bQJ +bRf +bRx +bRN +bRN +bSt +bSc +bSN +bOG +bOG +bOH +bOH +bOH +bOH +bOH +bOG +bOG +bSE +bSN +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aac +aaa +aaf +aah +aal +aam +aam +aam +aaK +aaW +aaW +abe +aal +abn +abx +abL +abW +acj +acA +acN +acN +acN +acN +adU +aes +abx +abx +abx +afW +acP +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +apy +aqu +arl +ash +ash +ash +auS +avN +axj +ayC +azq +avO +aBI +aCD +aBI +ayz +aEL +aFv +aGq +aHg +aIk +aIk +aIk +aIk +aIk +aIk +aIk +aLD +aQK +aRM +aSM +aTK +aUC +bXI +aWw +aXx +bYa +aZr +bam +aMF +aMF +aGX +aBT +aFk +bez +beu +bet +bhL +bhL +bet +bkV +bkV +bkV +bkV +bkV +bru +bsJ +bZW +bpM +bpM +bpM +bpM +bpM +bpM +bpM +bpM +bpM +bpM +bpM +bFP +bpM +bHe +bHe +bHe +bJf +bHe +bHe +bHK +bLQ +bLQ +bLQ +bLQ +bLP +bOY +bPn +bPN +bQj +bNL +bRa +bNL +bNL +bSc +bSc +bSc +bSN +bOG +bOG +bOG +bOH +bOG +bOH +bOG +bOG +bOG +bTJ +bTM +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aac +aaa +aaf +aai +aam +aam +aaf +aaf +aaL +aaf +aaf +abf +aaW +abo +abx +abx +abx +ack +acB +acO +adh +adh +adD +adV +aet +abx +afo +afI +afX +acP +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +apA +aqj +arm +asi +asU +aub +bWy +avS +axk +ayD +azp +aAI +aBJ +aCE +aCE +aCE +aEN +aFy +aGr +aHf +aIl +aJg +aKB +aLG +aMI +aNW +aIk +aLD +aQK +aRN +aRM +aTK +aUC +bXH +aWx +aXy +bYa +aSE +aWu +aWv +bYk +bcE +ayJ +aFj +ayJ +bfs +bZo +bgC +bgC +bgC +bZC +bZE +bnF +bZE +bqk +bZP +bsK +btW +bBZ +bBZ +bBZ +cag +bBZ +bBZ +bBb +cag +bDc +bBZ +bBb +bFQ +cbi +bHg +bHU +bBZ +bJg +bJU +bKD +bLb +bLR +bME +bNk +bKD +bOu +bOS +bPn +bPd +bQl +bQK +bRg +bRy +bRI +bSb +bSc +bSD +bSN +bSW +bOG +bOG +bSW +bOG +bOH +bOG +bOG +bSW +bSE +bSN +bKF +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aac +aaa +aaf +aaj +aam +aaf +aaf +aaf +aaL +aaf +aaf +aaf +abh +abp +aaf +abz +abX +acl +acC +acN +acN +acN +acN +adW +aeu +aeR +afp +afJ +afY +acP +acP +acP +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +arg +arg +arg +arg +arg +avT +arg +ayE +ayH +ayH +aBK +ayH +ayH +axo +axo +aFz +aGs +aHj +aIm +aJh +aKC +aKC +aMJ +aNX +aIk +aLD +aQK +aRO +aSN +aTL +aUD +aVw +aWy +aXz +aYq +aZs +ban +bYw +bbX +aHo +bdp +bdN +aBT +bft +bZp +bgD +bgD +bgD +bgD +bgD +bnG +bgD +bgD +brv +bsL +btX +bsL +bsL +bsL +bxU +bsL +bsL +bBc +bCa +bDd +bCa +bEZ +bFR +bCa +cbo +bHV +bCa +bJh +bJV +bKD +bLc +bLS +bMF +bNl +bKD +bOv +bOS +bPn +bPd +bPd +bPd +bRg +bRr +bRI +bSb +bSc +bSE +bSN +bSE +bTd +bSE +bSE +bTd +bSE +bSE +bTd +bSE +bSE +bSN +bKF +aad +aad +aad +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aac +aaa +aaf +aaj +aam +aaf +aaf +aaD +aaN +aaf +aaf +aaf +abi +abq +abA +abM +abY +acm +acC +acP +adi +adi +acP +adW +aev +aeS +aeS +aeS +acP +acP +acP +agO +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agP +arn +asV +arn +auW +avU +auW +ayE +azv +aAJ +aBL +aCF +ayH +aEe +ayN +aFw +aBT +aHd +aIl +aJi +aKD +aLH +aMK +aNY +aOR +aPI +aQK +aRN +aRM +aRM +aUC +aTG +aWz +aXA +bYa +aWv +aWu +aWv +bYk +aGX +aBT +aFn +azF +bfu +bZq +bgE +bgE +bgE +bZD +bZD +bZD +bZD +bZD +brw +bgE +btY +bEb +bvQ +bEb +bxV +bzd +bEb +bBd +bCb +bDe +bEb +bFa +bFS +bgE +bHh +bgE +bIz +bJi +bJV +bKD +bLd +bLT +bMG +bNm +bKD +bOw +bOQ +bPp +bPl +bPM +bPd +bRh +bRr +bRI +bSb +bSc +bSD +bSP +bSV +bTe +bSV +bSV +bTe +bSV +bSV +bTe +bSV +bSV +bTO +bKF +aad +aaa +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aac +aae +aaf +aaj +aan +aaf +aaf +aaE +aaO +aaX +aaf +aaf +abj +abr +abB +abN +abZ +acn +acD +acQ +adj +adj +adE +adX +aew +aeT +afq +afJ +afZ +agj +agy +agP +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agP +asj +asW +auc +auX +avV +axl +ayF +azw +aAK +aBM +aAM +ayH +aEf +aEO +aFw +aBT +aHk +aIn +aJj +aKE +aKE +aML +aNZ +aIk +aNN +aQK +aRM +aSO +aRM +aUE +aVx +aWz +bXW +bYb +aWu +bao +aMF +aMF +chq +aBT +aFk +beA +beF +beB +bhM +bhM +beB +beJ +beJ +beJ +beJ +beJ +brx +bsM +btZ +buO +buO +buO +buO +buO +buO +bBe +bCc +bDf +bEc +bFb +bgD +bGt +bHi +bGt +bIA +bJi +bJW +bKE +bKD +bLU +bMH +bNn +bNn +bKF +bOZ +bPn +bPO +bQm +bQL +bPd +bRz +bNL +bNL +bNL +bSG +bSE +bSX +bSE +bSE +bSE +bSE +bSE +bSE +bSE +bSX +bSE +bTP +bNL +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aac +aaa +aaf +aaj +aam +aaf +aaf +aaF +aaP +aaf +aaf +aaf +bVV +aaj +bVW +bVX +aca +aco +acC +acP +adi +adi +acP +adW +aex +aeU +aeU +afK +acP +acP +acP +agO +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agP +arn +asX +arn +arn +avW +arn +ayE +azx +aAL +aBN +aCG +aDq +bWR +bWU +aFw +aBT +aHd +aIl +aJk +aKF +aLI +aMM +aOa +aIk +aPJ +aQM +aRP +aSP +aTM +bXD +aTG +aWA +aWv +aWu +aWv +bap +aYv +bYF +aGX +aBT +aFk +beH +beB +bgF +bfw +bfw +bjM +beJ +bmj +bnH +bpc +beJ +bry +bsN +bua +buO +bvR +bwR +bxW +bze +buO +bBf +bCd +bDf +bEd +bFc +bFT +bGt +bHj +bGt +bIB +bJj +bJV +bKF +bLe +bLV +bMI +bNo +bNL +bOx +bPa +bPt +bPP +bQn +bQM +bRi +bRA +bRO +bSh +bSu +bSH +bSE +bSY +bSE +bTi +bTp +bTy +bTp +bTg +bSE +bSY +bSE +bSE +bNL +aad +aad +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aac +aaa +aaf +aaj +aam +aaf +aaf +aaf +bVT +aaf +aaf +aaf +abh +abs +aaf +abC +acb +acp +acC +acR +acR +acR +acR +adY +aey +aeV +afr +afJ +afY +acP +acP +acP +bVZ +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aqv +arn +arn +arn +arn +auY +avX +axm +ayG +azy +aAM +aBO +aCH +ayH +aEg +bWV +aFw +aBT +aHl +aIk +aJl +aJl +aJl +aJl +aIk +aIk +aNL +aQK +aQK +aQK +aQK +aQK +bXJ +aWv +aWu +aWv +aWu +bYt +aYv +bYG +aGX +aBT +aFk +bZj +beB +bgG +bfw +bfw +bjN +beJ +bmk +bmD +bmD +bql +brz +bsO +bub +buP +bvS +bwS +bxX +bzf +buO +bBg +bCe +bDf +bEe +bgD +bgD +bGt +bHk +bGt +bIA +bJk +bJX +bKG +bLf +bLW +bMJ +bNp +bNQ +bOy +bPb +bPu +bPd +bQo +bPd +bPd +bRo +bNL +bSi +bNL +bSI +bSL +bSZ +bSL +bTj +bNL +bNL +bNL +bTh +bSL +bTH +bTI +bTI +bNL +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aac +aaa +aaf +aag +aam +aam +aaf +aaf +bVT +aaf +aaf +aam +aam +aap +abD +abD +abD +acq +acE +acS +adk +adk +adF +adZ +aez +abD +afs +afL +aga +agk +agz +agz +agY +agz +agz +agz +agz +agY +agz +agz +agz +agz +agY +agz +agz +agz +agz +agY +agz +agz +agz +aud +auZ +avY +axn +ayH +azz +aAM +aBP +aCI +ayH +aEg +bWV +aFw +aBT +bXl +aIo +aJm +aKG +aLJ +aMN +aIo +aMC +aNL +aQK +aRQ +aSQ +aTN +aUF +aVy +aWB +aXB +aYr +aYn +baq +aMF +bYH +aGX +aBT +aFk +beB +beG +bgH +bfw +bhN +bjO +beJ +bml +bnI +bpd +bqm +brA +bsP +buc +buO +buO +bwT +bxY +buO +buO +bBg +bCd +bDf +bEf +bgD +bgD +bgD +bgD +bgD +bIA +bgD +bHW +bKF +bLg +bLX +bMK +bNq +bNR +bOz +bPc +bPv +bPc +bQp +bPd +bPd +bRB +bNL +bNL +bNL +bNL +bNL +bNL +bNL +bNL +bNL +bQj +bNL +bNL +bNL +bNL +bNL +bNL +bTR +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aac +aaa +aaf +aah +aal +aam +aam +aam +aam +aam +aam +aam +aal +aaV +abD +abO +acc +acr +acF +acR +acR +acR +acR +aea +aeA +abD +abD +abD +afW +acP +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +arn +ava +arn +arn +ayH +azA +aAM +aBQ +aCJ +aDq +bWR +bWW +aFw +aBT +aHd +bXm +aJn +aKH +aLK +aMO +aIo +aOS +aNL +aQK +aRR +aSR +aTO +aQK +aQK +aMF +aYv +aYs +aWu +bar +aMF +bbZ +aGX +aBT +bdO +beC +bZm +bgI +bfv +biI +bZy +bkW +bmm +bnJ +bpe +bqn +brB +bmG +bud +buO +bvT +bwU +bxZ +bzg +buO +bBg +bCd +bDf +bEg +bFd +bFU +bGu +bHl +bHW +bIC +bEb +bJY +bKH +bLh +bLY +bLh +bNr +bNL +bKF +bPd +bPw +bPQ +bQq +bQN +bPd +bRC +bNL +aaa +aaa +aaa +aaa +aaa +aaa +aad +aaa +aaa +aaa +aad +aaa +aad +aad +aad +aad +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aac +aad +aaf +aai +aao +aaq +aaj +aah +aaR +aaV +aaj +aai +aao +aaq +abD +abP +acd +acs +acG +acT +adl +adl +adG +acu +aeB +adm +aft +abD +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ayH +azB +aAN +aBR +aCK +aDr +aEh +aEP +aFw +aBT +aHk +aIp +aJo +aKI +aLL +aMP +aIo +aOT +aNL +aQK +aRS +aSS +aTP +aUG +aQK +bXP +aXC +aYt +aWv +aVx +bYk +bbY +aGX +aBT +aFk +beD +bfw +bfw +bZv +biJ +bZy +bkX +bmn +bnI +bpf +bqo +brC +bmG +bue +bzm +bzm +bzm +bzm +bzm +bzm +bBh +bCd +bCk +bEh +bFe +bFV +bGv +bCk +bHX +bID +bJl +bCk +bCk +bCk +bLZ +bCk +bCk +bCk +bCk +bNL +bNL +bNL +bNL +bNL +bNL +bNL +bNL +aad +acJ +aaa +aaa +aaa +aaa +aad +aaa +aaa +aaa +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aac +aaa +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +abD +abQ +ace +act +acH +acU +adm +adm +adH +aeb +aeC +adm +aft +abD +aad +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +ayH +azC +aAO +aBS +aCL +ayH +aEi +ayN +aFw +aBT +aHd +bXm +aJp +aKJ +aLM +aMQ +aIo +aOU +aNL +aQK +aQK +aST +aTQ +aUH +aQK +bXQ +aXD +aYu +aWu +aTG +bYk +bbY +bcH +ayJ +aFj +beE +bfx +bgJ +bhP +biJ +bZz +bkW +bmo +bnK +bpg +bqp +brD +bmG +buf +buR +bvU +bwV +bya +bzh +bzm +bBg +bCd +bCk +bEi +bFf +bFW +bGw +bHm +bHY +bIE +bJm +bHm +bEi +bcG +bMa +bOB +bNs +bNS +bPf +abt +bLn +aad +aad +aad +aad +aaa +aaa +aaa +acJ +aaa +aaa +abu +acJ +acJ +acJ +acJ +acJ +acJ +acJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aad +aaa +aaa +aaa +aaa +aad +bVU +aaa +aaa +aaa +abk +abt +abE +abE +abE +acu +abD +abD +abD +abD +abD +abD +aeD +aeW +afu +abD +aaa +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +aqw +aqw +aqw +aqw +aqw +aqw +aad +axo +ayH +ayH +aAP +ayH +ayH +ayH +ayN +ayN +aFA +aED +aHe +aIo +aJq +aKK +aLN +aMR +aIo +aOV +aPK +aKv +aRT +aSU +aTR +aUI +aQK +bXR +aXE +aYt +aWv +bat +aMF +bYI +aGX +aBT +bdQ +beB +bfy +bgK +bhQ +biK +beG +beJ +beJ +beJ +beJ +bpn +brE +bpn +bjU +buR +bvV +bwW +byb +bzi +bzm +bBi +bCf +bDg +bEj +bFg +bFX +bGx +bHn +bHZ +bIF +bJn +bJZ +bKI +bLi +bMb +bIc +bNt +bNT +bCk +aad +bCt +bCt +bCt +bCt +bCt +aad +aac +aad +acJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aaa +aaa +aad +aaa +aaa +aaa +aaa +aad +aaa +aaa +abD +abD +abD +abD +abD +aad +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aqw +aro +ask +asY +aue +avb +aad +awb +bWD +azD +aAQ +aBT +ayN +aDs +aEj +ayN +bXd +aBT +aHd +aIo +aIo +aKL +aLO +aIo +aIo +aIf +bXr +aIf +aQK +aQK +aTS +aQK +aQK +aMF +aMF +bYc +bYk +aMF +aMF +aBT +aGX +aBT +bYY +beF +bfz +bZr +bfw +biL +bjP +bkY +bmp +bnL +bph +bqq +brF +bsQ +bug +buS +bvW +bwX +byc +bzj +bAh +bBj +bCd +bCk +bEk +bFh +bFY +bGy +bHm +bIa +bIG +bJo +bHm +bKJ +bGI +bMc +bGI +bNu +bNU +bOA +bPe +bPx +bPR +bQr +bQr +bCt +aaa +aac +aaa +acJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +abu +aac +aac +aac +aac +aac +aac +aac +aac +aaa +aad +aaa +aaa +aaa +aad +aaa +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +aqw +arp +asl +asZ +auf +avc +avZ +avZ +ayJ +ayJ +aAR +ayJ +aCM +ayJ +ayJ +aEE +aFj +ayJ +aHm +ayJ +aJr +aKM +aLP +aJr +aOb +bXq +bXs +aQN +aRU +bXq +aTT +bXq +aVC +aWC +bXq +bYd +bXq +ayJ +aEE +bcb +bcD +aBT +bdQ +beB +bfA +bZs +bfx +biM +bjQ +bkZ +bmq +bnM +bpi +bqr +brG +bsR +buh +buT +bvX +bwY +byd +bzk +bzm +bBk +bCd +bCk +bEl +bFh +bFY +bGz +bCk +bCk +bCk +bCk +bCk +bKK +bLj +bMd +bML +bNv +bNV +bHm +aad +bEA +bPS +bQs +bQO +bCt +aaa +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aac +aac +aac +aac +aac +aaa +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +aad +aqw +arq +asm +ata +aug +avd +awa +axp +ayK +azE +aAS +aBU +aBU +aBU +aBU +aEQ +aFB +aGt +aKN +aBU +aBU +aKN +aLQ +aMS +aMS +aMS +aMS +aQO +aGX +aBT +aFk +aBT +aBT +aBT +aXF +aBT +aBT +aBT +aED +aBT +bcI +bdn +bdP +beG +bfB +bZt +bfw +biN +beG +bla +bmr +bnN +bpj +bqs +brH +biJ +bug +buS +bvY +bwZ +bye +bzl +bzm +bBk +bCd +bCk +bEm +bFh +bFY +bGA +cbp +bIb +bIH +bJp +cbp +bKL +bMc +bGI +bLk +bNw +bOa +bLs +bPg +bPx +bPT +bQr +bQr +bCt +aaa +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aad +aqw +arr +asn +atb +auh +ave +awb +awb +ayL +azF +aAT +azF +azF +azF +azF +aEC +aAT +aGu +aHo +azF +aJs +aKO +aLR +aMT +aJs +aJs +aFh +aQP +aHo +aJs +aTU +aJs +bXK +aJs +aTU +aJs +aMT +azF +aEC +azF +aHo +azF +bYZ +beG +bfC +bfD +bfD +bfC +bfC +bfC +bfC +bfC +bfC +bqt +brI +biJ +bui +buR +buR +buR +buR +bzm +bzm +bBk +bCg +bDh +bEn +bFi +bFZ +bGB +bHo +bIc +bIc +bIc +bIc +bKM +bMc +bGI +bFY +bNv +bNX +bHm +aad +bCt +bCt +bCt +bCt +bCt +aaa +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bUc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aad +aqw +ars +aso +atc +aui +aqw +aad +awb +ayM +azG +aAU +aBV +ayM +bWP +aAU +ayN +aFC +aGv +aHp +aIs +aIs +aKP +aLS +aIs +aIs +aMX +aPL +aQQ +aQX +aMX +aIt +aIt +aIt +aIt +aIt +aCd +aCd +aCd +aCd +bYJ +aGX +aBT +aFk +beH +bfD +bgN +bhS +biO +bjR +blb +bms +bZG +bpk +bqu +brJ +bsS +bui +buU +bvZ +bxa +byf +bzn +bAi +bBl +bCh +bCk +bEo +bFj +bFY +bGC +bHp +bHp +bII +bGI +bGI +bKN +bMN +bGI +bFY +bNu +bNU +bOA +bPe +bPx +bPU +bQt +bQt +bCt +aaa +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aad +aqw +aqw +aqw +aqw +aqw +aqw +aad +axo +ayN +awb +awb +ayN +ayN +awb +awb +aoP +aFD +aGw +aHq +aIs +aJt +aKQ +aLT +aMU +aOc +aOW +aPM +aLY +aRV +aSV +aMX +aUJ +aVD +aWE +aIt +bYe +bYl +aDH +bbf +aBT +aGX +bYQ +aFk +beH +bfE +bgO +bgP +bgP +bgP +blc +bmt +bnO +bpl +bqv +brK +bsT +buj +buV +bwa +bxb +byg +bzn +bAj +bBm +bCi +bDi +bEp +bFj +bFY +bGD +cbp +bId +bIJ +bId +cbp +bKO +bGI +bGI +bFY +bNv +bNY +bHm +aad +bEA +bPV +bQu +bQP +bCt +aad +aac +aaa +aaa +aaa +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aoP +aFE +aGx +axz +aIs +aJu +aKR +aLU +aMV +aOd +aOX +aPN +aLY +aRW +aSW +aTV +aUK +aSa +aWF +aIt +bYf +aIy +aCd +aCd +bcc +bcJ +bdq +bdQ +beH +bfD +bgP +bZw +bZx +bZx +bld +bgP +bgP +bpk +bqu +bfw +bsU +bui +buW +bwb +bxc +byh +bzo +bAk +bBn +bCj +bCk +bEq +bFk +bGa +bGE +cbp +cbp +cbp +cbp +cbp +bKP +bGI +bDj +bMe +bNy +bNZ +bLs +bPg +bPx +bPW +bQt +bQt +bCt +aaa +aac +aaa +aaa +aaa +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aad +ait +ait +aiu +aiu +ait +ait +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aER +aFE +aGx +aHr +aIs +aJv +aKS +aLV +aMW +aOc +aOW +aPM +aQR +aRV +aSX +aTW +aUL +aMZ +aWG +aIt +aDH +aZv +bau +bau +bcd +bcK +bau +bdR +bau +bfC +bgQ +bhT +biP +biP +bld +bmu +bnP +bpm +bqw +bfw +bZS +buk +buk +buk +buk +buk +buk +bwg +buk +bCk +bCk +bEr +bFj +bFY +bGF +cbp +bIe +bIe +bIe +cbp +bKQ +bGI +bDl +bFY +bNz +cco +ccC +aad +bCt +bCt +bCt +bCt +bCt +aaa +aac +aad +aad +aad +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aad +ait +bWi +aiT +ald +ald +ait +ait +ait +aiu +ait +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aER +aFE +aGx +axz +aIt +aIt +aKT +aLW +aMX +aIt +aIt +aPO +aLY +aRV +aSX +aTX +aUM +aMZ +aWH +aIt +aDH +aDH +bau +bbg +bce +bcL +bdr +bdS +bcg +bfC +bgR +bhT +biP +bjS +bld +bmv +bnQ +bpm +bqx +bfw +bsV +buk +buX +buX +bxd +byi +bzp +bAl +buk +bCl +caz +bEs +bFl +bGb +bGd +bHq +bGH +bIK +bJq +bKa +bKM +bGI +bDl +bMO +bMP +ccp +bOC +bPg +bPy +bPX +bQv +bQx +bCt +aaa +aac +aaa +aaa +aaa +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +ait +ait +ajy +ait +ait +ajy +ait +chk +ait +aor +ait +ait +ait +ait +aoP +atd +atd +aoP +awc +awc +aoP +azH +azH +aoP +aaa +aaa +aaa +aER +aFE +aGx +axz +aIt +aJw +aKU +aLX +aMY +aOe +aOY +aPP +aLY +aRV +aSX +aMX +aUN +aMa +aWI +aXG +aYw +aZw +bau +bbh +bcf +bcM +bds +bds +bds +bfF +bgS +bhU +biQ +biQ +ble +bmw +bnR +bpm +bZK +bZQ +bsW +buk +buX +buX +bxd +byi +bzp +bAl +buk +bCm +bDl +bGI +bFj +bFY +bGG +bGI +bGI +bIL +bGI +cbH +bKR +bGI +bDl +bLl +bGI +bOb +ccD +aad +bEA +bPY +bQw +bQQ +bCt +aaa +aac +aaa +aaa +aaa +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aiu +aiS +aiT +akm +ale +alS +ait +bWq +aiU +aos +alh +alh +aqx +art +aoP +ate +auj +aoP +awd +axq +aoP +azI +aAV +aoP +aCN +aCN +aCN +aCN +aFE +aGy +aHs +aIt +aJx +aKV +aLY +aMZ +aOf +aOZ +aPQ +aQS +aRX +aSX +aIt +aUO +aVE +aWJ +aIt +aDH +aQj +bau +bbi +bYK +bcN +bdt +bZa +bZa +bfC +bgT +bhV +bgP +bgP +bgP +bmx +bnS +bpm +bqy +bfw +bsX +buk +buX +bwc +bxd +byi +bzp +bAl +buk +bCn +bDl +bGI +bFj +bFY +cbj +bHr +bGd +bIM +bGd +bKb +bKS +bGI +bLm +bEs +cce +bNZ +bOC +bPg +bPz +bPZ +bQx +bQx +bCt +aaa +aac +aaa +aaa +aaa +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +bWd +aiT +ajz +akn +alf +alT +amx +chl +ait +akt +aoP +aoP +aqy +aru +aoP +atf +auk +aoP +awe +axr +aoP +azJ +aAW +aoP +aCO +aDt +aEk +aES +aFF +aGz +aHt +aIt +aJy +aKW +aLY +aNa +aOg +aIt +aPR +aQT +aRY +aSY +aIt +aUP +aVF +aWK +aIt +aIt +aQj +bau +bbj +bch +bcO +bdu +bdT +bdT +bfC +bgU +bhW +biR +bjT +blf +bmy +bnT +bpm +bZK +bfw +bsY +buk +buY +bwc +bxd +byi +bzp +bAm +buk +bCo +bDm +bEv +bFo +bFY +bGe +bGI +bIf +bIf +bIf +bKc +bKT +bGI +bDl +bGI +bGI +bOd +ccE +aad +bCt +bCt +bCt +bCt +bCt +aad +aac +aad +aad +aad +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aiu +aiU +ajA +ako +alg +alU +ait +ait +ait +akt +aoP +apB +aqz +arv +asp +atg +aul +aoP +awf +axs +aoP +azK +aAX +aoP +aCP +aDu +aEl +aCN +aFE +aGx +axz +aIt +aJz +aKX +aLY +aMZ +aMZ +aMX +aPS +aQU +aRZ +aRZ +aRZ +aRZ +aVG +aMZ +aXH +aIt +bYm +bau +bbk +bci +bcP +bbk +bau +beI +bfC +bfC +bfC +beJ +bjU +bjU +bjU +bjU +bjU +bgL +bfw +bZT +buk +buZ +bwd +buZ +buZ +buZ +bAn +buk +bCp +bDl +bGI +bEw +caY +cbk +bHs +bHs +bHs +bGJ +bHs +bHs +bHs +bMi +bGI +bGI +bOe +ccE +aad +aaa +aaa +aaa +aaa +aaa +aaa +aac +aaa +aaa +aaa +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +ait +aiV +ait +ait +ait +ait +ait +anj +anJ +bWs +aoP +apC +aqA +arw +aoP +aru +aum +aoP +aru +axt +aoP +aru +aAY +aoP +aCN +aCN +aCN +aCN +aFE +aGx +axz +aIt +aJA +aKY +aLZ +aNb +aOh +aPa +aPT +aQV +aSa +aMZ +aMZ +aMZ +aVH +aMZ +aXI +aIt +aQj +bau +bbl +bcj +bcO +bdv +bau +beJ +bfG +bgV +bhX +biS +bjV +blg +bmz +bnU +bpn +bqz +bfx +bsZ +bul +bva +bwe +bxe +byj +byj +bAo +bBo +bCq +bDl +bGI +bFq +bGf +bGK +bHt +bIg +bHt +bGK +bHt +bKU +bHt +bGK +bHt +bNA +cco +ccF +bCk +bCk +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +ait +ait +akp +alh +alh +alh +alh +alh +alh +aot +aoP +apD +aqB +arx +asq +ath +aun +avf +bWA +aun +ayO +awg +aun +ayO +aCQ +ayO +aEm +ayO +aun +aGA +axz +aIt +aJB +aKZ +aMa +aNc +aOi +aPb +aPU +aQW +aSb +aSZ +aTY +aUQ +aLY +aMZ +aXJ +aIt +bYm +bau +bau +bau +bcQ +bau +bau +beJ +bfG +bgW +bhY +biT +bjW +blh +bmA +bmA +bpo +bqA +bfw +bZU +buk +bvb +bwf +bxf +byk +bzq +bAp +buk +bCr +bDo +bEy +bFr +bLr +bGL +bHu +bFr +bIN +bJr +bKd +bFr +bGg +bMj +bMQ +bFr +bOg +bOD +bPh +bPA +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aiu +akq +ait +ait +ait +aiu +aiu +aiu +ait +aoP +apE +aqC +ary +aoP +ati +auo +avg +awh +axu +axu +azL +aAZ +aAZ +aCR +aAZ +aEn +aAZ +aAZ +aGB +aHr +aIt +aJC +aIt +aMb +aIt +aIt +aIt +aPL +aQX +aIt +aIt +aIt +aIt +aQQ +aWL +aIt +aIt +aZx +aYw +aYw +aYw +bcR +aLd +bdU +beJ +bfG +bgX +bfG +biU +bjX +bli +bmB +bnV +bpp +bqB +bfv +bta +buk +buk +bwg +bxg +buk +buk +buk +buk +bCk +caA +bHm +bNB +caZ +bDp +bEz +bFs +bEz +bJs +bEz +bKV +bLs +bMk +bLs +ccf +ccq +bCk +bCk +bCk +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +ait +akr +ait +aaa +aaa +aaa +aaa +aaa +aaa +aoP +aoP +aoP +aoP +aoP +atj +aup +avh +awi +axv +ayP +azM +aBa +aBW +aCS +aBW +aBW +aBW +aBW +aGC +aHu +aIt +aJD +aIt +aMc +aIt +aOj +aIu +aPV +aQY +aSc +aTa +aTZ +aUR +aVI +aPZ +aXK +aXK +aXK +aXK +aXK +aXK +aCd +bdw +bdV +beJ +bfH +bgY +bfG +biU +bjY +blj +blm +bnW +bjU +bgL +bfw +biJ +bum +bvc +bwh +bxh +byl +bzr +bAq +aad +aad +bDq +aad +bFt +aad +bDq +aad +bFt +aad +bDq +aad +bFt +aad +bDq +aad +bFt +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +ajB +bWj +ali +aaa +aaa +aaa +amy +amy +amz +amy +apF +aoP +aoP +bWv +atm +bWx +avi +awj +axw +ayQ +atm +aBb +aBX +aBX +aBX +aBX +aBX +aFG +aGD +aHv +aIu +aJE +aIu +aIu +aIu +aIu +aIu +aPW +aQZ +aSd +aSd +aSd +aUS +aVJ +aVN +aXL +aYx +aZy +bav +bbm +aXK +aVO +aRi +bdW +beJ +bfI +bgZ +bfI +biU +bjZ +blk +blm +bnX +bjU +bgM +bZR +biJ +bfw +bvc +bZX +bxi +cah +bzs +bAq +aad +bCt +bDr +bEA +bDr +bCt +bDr +bEA +bDr +bCt +bDr +bEA +bDr +bCt +bDr +bEA +bDr +bCt +aad +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +bWf +akt +alj +aaa +aaa +amy +amy +anK +aou +aoQ +apF +aER +aER +aER +atm +auq +avj +awk +axx +ayR +atm +aBc +aBX +aCT +aCT +bWS +aBX +aBX +aGE +aBX +aBX +aJF +aLa +aMd +aNd +aOk +aPc +aPX +aRa +aSe +aTb +aUa +aUT +aVK +aWM +aXM +aYy +aZz +baw +bbn +aXK +aVP +aCd +aVP +beJ +bfJ +bha +bhZ +biV +bka +bll +bmC +bnY +bjU +bfw +brN +bhO +bfv +bvd +bwi +bxj +bZV +bzt +bAq +aad +bCt +bDs +bEB +bFu +bCt +bGM +bHv +bIh +bCt +bJt +bKe +bKW +bCt +bMl +bMR +bNC +bCt +aaa +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bTk +bTk +bTk +bTk +bTk +bTk +bTk +aaa +aaa +aaa +aaa +aaa +bTk +bTk +bTk +bTk +bTk +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bWf +aku +alj +aaa +aaa +amz +ank +anL +anL +anL +apG +aqD +arA +aqD +atm +auq +avk +awl +axy +awl +azN +aBd +aBY +aCU +aDv +aCW +aCW +aCW +aGF +aHw +aBX +aJG +aLb +aMe +aNe +aOl +aPd +aPY +aRb +aPZ +aPZ +aPZ +aUU +aVI +aWN +aXN +aYz +aZA +bax +bbo +aXK +aVP +aCd +bdX +beJ +beJ +beJ +beJ +beJ +bkb +blm +bmD +bnZ +bjU +bqC +brO +bZV +bun +bun +bwj +bxk +bym +bun +bAr +aad +bCt +bDt +bDu +bDu +bCt +bGN +bHw +bGN +bCt +bJu +bKf +bJu +bCt +bMm +bMS +bMm +bCt +aaa +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +bWf +akt +alj +aaa +aaa +amy +amy +anM +aov +aoR +apF +bWu +arB +bWw +atn +auq +avl +awm +axz +atm +atm +aBe +aBX +aCV +aDw +aEo +aET +aFH +aGG +aCW +aBX +aJH +aLb +aMf +aLb +aOm +aPe +aPZ +aQY +aSf +aTc +aSf +aUV +aVI +aWO +aXO +aXO +aZB +aZB +aZB +aXO +bcS +aXO +aVP +beK +beJ +bhb +bia +biW +bkc +blm +bmE +boa +bpq +bmM +brP +bij +bun +bve +bwk +bxl +byn +bzu +bAr +aad +bCt +bDu +bEC +bDu +bCt +bGN +bHx +bGN +bCt +bJv +bKg +bJu +bCt +bMm +bMT +bMm +bCt +aaa +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTD +bTk +bTk +bTk +bTk +bTk +bTk +bTD +bTk +bTk +bTk +bTk +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +ajD +akq +alk +aaa +aaa +aaa +amy +amy +amz +amy +apF +aoP +aoP +aoP +arD +aur +avm +awn +axA +avm +avm +arD +aBX +aBX +aDy +bWT +aBX +aBX +aBX +aHx +aBX +aJI +aLb +aMg +aNf +aIu +aIu +aQa +aRc +aSg +aPZ +aPZ +aPW +aVL +aWP +aXO +aYA +aZC +bay +bbp +bck +bcT +aXO +bdY +aYw +bfK +bhc +bib +biX +bkd +blm +bmF +bob +bjU +bqD +brQ +btb +bun +bvf +bwl +bxm +byo +bzv +bAr +aad +bCt +bCt +bCt +bCt +bCt +bCt +bCt +bCt +bCt +bCt +bCt +bCt +bCt +bCt +bCt +bCt +bCt +aad +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bTk +bTk +bTk +bTD +bTk +bTD +bTD +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTD +bTD +bTD +bTk +bTD +bTk +bTk +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +ait +bWk +ait +aaa +aaa +aaa +aaa +aaa +aaa +ait +ait +ait +arC +asr +arD +aus +avn +awo +axB +avn +azO +arD +aBZ +bWL +aDy +aCW +aEU +aFI +aBX +aHy +aBX +aJJ +aLc +aMg +aLb +aLc +aIu +aQb +aPe +aPZ +aPZ +aPZ +aUU +aVM +aWQ +aXP +aYB +aZD +baz +bbq +bcl +bcU +aXO +aVP +beJ +beJ +bhd +bic +biY +bke +bln +bmG +boc +bjU +bqE +brR +btc +bun +bvg +bwm +bxl +byp +bzw +bAr +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +aaa +aaa +aaa +aad +aaa +aaa +aaa +aaa +aaa +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bTk +bTk +bTD +bTk +bTD +bTk +bTD +bTD +bTk +bTk +bTk +bTD +bTk +bTD +bTk +bTk +bTk +bTD +bTk +bTk +bTk +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aiu +bWj +ait +ait +ait +aiu +aiu +aiu +ait +ait +apH +aqE +aiU +aiU +arD +aut +avn +awo +axB +avn +azP +arD +aCa +aCX +aDz +aCW +aBX +aBX +aBX +aBX +aBX +aJK +aLb +aMh +aNg +aOn +aIu +aQc +aPe +aPZ +aPZ +aPZ +aUW +aVN +aVJ +aXQ +aYC +aZE +chp +bbr +baA +bcV +aXO +aVP +beL +bfL +bfG +bid +biZ +bkf +blo +bmH +bod +bjU +bqF +brS +btd +buo +bvh +bwn +bxn +byq +bzx +bAr +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agv +aac +aac +aac +aac +aac +aac +aac +aac +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bTk +bTk +bTk +bTD +bTD +bTD +bTk +bTD +bTD +bTk +bTk +bTk +bTD +bTD +bTD +bTD +bTk +bTk +bTk +bTD +bTk +bTk +bTk +bTk +bTk +bTk +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aiu +akw +alh +alh +alh +amA +alh +alh +alh +alh +alh +alh +alh +ass +arD +auu +avo +awp +axC +ayS +azQ +arD +aCb +aCY +aDy +aCW +aEV +bXe +aBX +aHz +aIv +aJL +bXo +aLb +aNh +aLc +aIu +aQd +aPe +aSh +aTd +aUb +aUX +aPZ +aWR +aXO +aYD +aZF +baB +bbs +bbs +bcW +aXO +aVP +beJ +beJ +beJ +bfN +bij +bij +bij +bij +bij +bij +bqG +brT +bij +bun +bvi +bwm +bxl +byr +bzy +bAr +can +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +aaa +aaa +aaa +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bTk +bTk +bTk +bTD +bTD +bTD +bTD +bTD +bTk +bTD +bTk +bTD +bTD +bTk +bTD +bTD +bTk +bTD +bTD +bTD +bTD +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +ait +ait +ait +ait +ait +aiu +aiu +aiu +ait +ait +ait +ani +ait +ast +arD +auv +avn +avn +avn +avn +azR +arD +aBX +aBX +aDA +aBX +aBX +aBX +aBX +aHA +aIu +aIu +aIu +aMi +aMi +aMi +aIu +aQe +aRd +aMi +aRd +aUc +aIu +aIu +aIu +aXO +aXO +aXO +aZB +bbt +aZB +aXO +aXO +bdZ +aRi +aRi +bhe +bfN +bja +bkg +blp +bmI +boe +bpr +bqH +brU +bte +bun +bvj +bwo +bxo +bys +cai +bzz +bAr +bAr +bAr +bED +bAr +aad +aad +aad +aaa +abu +aac +aac +aac +aaa +abu +aac +agv +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bTk +bTk +bTk +bTD +bTk +bTD +bTD +bTk +bTD +bTk +bTD +bTD +bTk +bTk +bTk +bTD +bTk +bTD +bTD +bTD +bTk +bTk +bTD +bTk +bTD +bTk +bTk +bTk +bTk +bTk +bTk +bTk +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ait +aos +alh +asu +arD +auw +avn +avn +avn +avn +azS +arD +aCc +aBX +aDB +aEp +aEW +aBX +aGH +aHB +aIw +aJM +aCd +aaa +aaa +aaa +aIu +aQf +aRe +aMi +aTe +aUd +aIu +aaa +aaa +aaa +aaa +aaa +aZB +bbu +aZB +aaa +bdx +aDH +aDH +bfM +bhf +bfN +bjb +bkh +blq +bmJ +bof +bps +bqI +brR +btf +bun +bvk +bwp +bxp +byt +bzA +bAs +bBp +bCu +bBp +bEE +bAr +bAr +bGO +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bTk +bTk +bTk +bTk +bTk +bTD +bTk +bTD +bTD +bTD +bTD +bTk +bTD +bTk +bTD +bTD +bTD +bTD +bMU +bTk +bTk +bTD +bTD +bTk +bTk +bTk +bTk +bTD +bTk +bTk +bTk +bTk +bTk +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ait +akt +arD +arD +ato +ato +avp +ato +ato +avp +ato +ato +arD +arD +aDC +aEq +aEq +aFJ +aCe +aCe +aIx +aJN +aCd +aaa +aaa +aaa +aIu +aQe +aRd +aMi +aRd +aUc +aIu +aaa +aaa +aaa +aaa +aaa +aZB +bbt +aZB +aaa +bdx +aCd +aCd +aCd +bhg +bfN +bjc +bki +bkh +bmK +bog +bpt +bqJ +brV +btg +bun +bvl +bwq +bxq +byu +bzB +bAt +bBq +bCv +bDv +bEF +bFv +bGh +bGP +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bTk +bTk +bTD +bTk +bTk +bTk +bTk +bTD +bTD +bTk +bTk +bTk +bTD +bTD +bTD +bTD +bTk +bTD +bTD +bTk +bTk +bTk +bTD +bTk +bTk +bTk +bTD +bTk +bTk +bTk +bTD +bTQ +bTk +bTk +bTk +bTk +bTk +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aiu +akt +arD +asv +asv +asv +asv +asv +asv +asv +asv +asv +asv +arD +aBX +aBX +aBX +aBX +aCd +aCd +aIy +aGJ +aCd +aaa +aNi +aNi +aNi +aQg +aRf +aNi +aTf +aUe +aNi +aNi +aNi +aaa +aoz +aoz +aoA +bbv +aoA +aoz +aoz +aCd +aVO +aRi +bhh +bfN +bjd +bkj +blr +bmL +boh +bpu +bqK +brW +bth +bun +bvm +bwr +bxr +byv +bzC +bAu +bBr +bCw +bBr +bEG +bAr +bAr +bGO +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTD +bTk +bTk +bTD +bTD +bTk +bTD +bTD +bTD +bTD +bTD +bTD +bTk +bTk +bTD +bTk +bTD +bTD +bTD +bTk +bTD +bTk +bTD +bTD +bTD +bTD +bTk +bTk +bTk +bTk +bTk +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aiu +akt +arD +asv +asv +asv +asv +asv +asv +asv +asv +asv +asv +arD +aDD +aEr +aEX +aCd +aGI +aHC +aHC +aJO +aCd +aMj +aNi +aNi +aOo +aOo +aOo +aSi +aOo +aOo +aOo +aOo +aNi +aaa +aoz +aZG +arH +arH +baC +atq +aoz +aCd +aVP +bfN +bfN +bfN +bfN +bfN +bij +bmM +boi +bpv +bqL +bmM +bij +bun +bun +bun +bun +byw +bzD +bun +bAr +bAr +bAr +bAr +bAr +bAr +agP +agP +bIi +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bTl +bTk +bTk +bTk +bTk +bTD +bTk +bTk +bTk +bTk +bTD +bTD +bTk +bTk +bTD +bTD +bTD +bTk +bTk +bTk +bTk +bTD +bTD +bTD +bTD +bTD +bTk +bTD +bTD +bTD +bTk +bTD +bTD +bTQ +bTk +bTk +bTk +bTk +bTk +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ait +aqF +arD +asv +asv +asv +asv +asv +asv +asv +asv +asv +asv +arD +aDE +aEs +aEY +aCd +bXg +aCd +aIz +aIz +aCd +aMj +aNj +aOo +aOo +aOo +aOo +aOo +aOo +aOo +aOo +aOo +aNi +aaa +aoA +aZH +baC +arH +baC +bcX +bdy +aCd +aVP +bfN +bhi +bie +bhi +bfN +bls +bmN +boj +bpu +bqM +brX +bti +bup +bhi +bhi +bxs +byx +bzE +bAv +bBs +bBs +bDw +bEH +bFw +bGi +bGQ +bGQ +bIj +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +aad +bTl +bTl +bTn +bTn +bTn +bTk +bTk +bTD +bTk +bTk +bTD +bTD +bTk +bTk +bTD +bTD +bTD +bTk +bTk +bTD +bTD +bTD +bTD +bTD +bTD +bTD +bTD +bTD +bTD +bTk +bTD +bTD +bTk +bTk +bTk +bTk +bTk +bTD +bTk +bTk +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aiu +akt +arD +asv +asv +asv +asv +asv +asv +asv +asv +asv +asv +arD +aDF +aEt +aDH +aFK +aGJ +aHD +aIA +aJP +aCd +aMj +aNj +aOo +aOo +aOo +aOo +aOo +aOo +aOo +aOo +aOo +aNi +aaa +aoz +aZG +arH +arH +baC +bcY +aoz +aCd +aVP +bfN +bhi +bhi +bhi +bkk +blt +bmO +boj +bZI +bqM +brY +btj +bhi +bvn +bws +bxs +byy +bzF +bAw +bzG +bCx +bxs +bEI +bxu +bxu +agP +agP +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +agP +bTm +bTt +bTz +bTn +bTn +bTn +bTk +bTk +bTD +bTD +bTD +bTD +bTk +bTk +bTD +bTD +bTD +bTk +bTD +bTD +bTD +bTk +bTk +bTD +bTD +bTk +bTD +bTD +bTD +bTD +bTD +bTk +bTD +bTk +bTk +bTk +bTk +bTk +bTk +bTk +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aiu +akt +arD +asv +asv +asv +asv +asv +asv +asv +asv +asv +asv +arD +aDG +aEu +aEu +aCd +bXh +aDH +aDH +aCd +aCd +aMj +aNj +aOo +aOo +aOo +aOo +aOo +aOo +aOo +aOo +aOo +aNi +aaa +aoz +aoz +aoA +bbw +aoA +aoz +aoz +aCd +beM +bfN +bhi +bhi +bii +bhi +blu +bmP +boj +bpw +bqN +brZ +btk +bhi +bhi +bhi +bxs +byz +bzG +bAx +bzG +bCy +bxs +bxu +bxu +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +agP +bTn +bTn +bTn +bTn +bTn +bTn +bTn +bTD +bTD +bTD +bTD +bTk +bTk +bTD +bTD +bTD +bTk +bTD +bTk +bTD +bTD +bTD +bTk +bTD +bTD +bTD +bTD +bTD +bTD +bTD +bTk +bTD +bTD +bTk +bTk +bTk +bTn +bTk +bTk +bTk +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +ait +akt +arD +arD +ato +ato +avp +ato +ato +avp +ato +ato +arD +arD +aCd +aCd +aCd +aCd +aGK +aHE +aDH +aJR +aCd +aMj +aNi +aNi +aOo +aOo +aOo +aOo +aOo +aOo +aOo +aOo +aNi +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aCd +aVP +bfO +bhj +bif +bhi +bhi +blv +bmQ +boj +bpx +bqO +bsa +bsa +bsa +bsa +bsa +bxt +byA +bzH +bAy +bBt +bCz +bDx +bEJ +aaa +aaa +aaa +aad +aaa +aaa +aaa +aad +aaa +aaa +aaa +aad +aaa +aaa +aaa +aad +aaa +aaa +aaa +aad +aaa +aaa +aaa +aad +aaa +aaa +aaa +aad +agP +bTn +bTn +bTn +bTE +bTn +bTF +bTn +bTD +bTD +bTD +bTD +bTk +bTD +bTD +bTD +bTk +bTD +bTD +bTk +bTk +bTD +bTD +bTQ +bTQ +bTQ +bTD +bTD +bTD +bTD +bTk +bTD +bTk +bTD +bTD +bTk +bTn +bVl +bVq +bTk +bTk +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +ait +akt +arE +ait +arD +aux +avq +awq +axD +ayT +azT +arD +aCd +aCZ +aDH +aDH +aDH +aDH +aGJ +aDH +aDH +aDH +aCd +aaa +aNi +aNi +aNi +aNi +aNi +aNi +aNi +aNi +aNi +aNi +aNi +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aCd +beN +bfP +bhi +bhi +bhi +bkl +blw +bmR +boj +bpy +bqP +brX +btl +bup +bhi +bhi +bxs +byB +bzI +bzI +bzI +bzI +bDy +bxu +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +agP +bTn +bTn +bTn +bTn +bTn +bTn +bTn +bTk +bTD +bTD +bTk +bTD +bTD +bTD +bTD +bTk +bTD +bTD +bTk +bTk +bTD +bTD +bTk +bTk +bTD +bTD +bTD +bTD +bTD +bTD +bTk +bTk +bTD +bTk +bTk +bTk +bTn +bTk +bTk +bTk +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +ait +aqG +alh +alh +atp +auy +avr +awr +axE +ayU +azU +aBf +aCe +aCe +aCe +aCe +aCe +aCe +aGL +aHC +aHC +aJS +aCd +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aCd +aCd +aCd +aEw +aEw +aCd +aEw +aCd +aVP +bfP +bhi +bhi +bhi +bkk +blx +bmS +boj +bpz +bqM +bsb +btm +bhi +bvn +bws +bxs +byC +bzI +bAz +bzG +bzG +bDz +bBx +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +agP +bTm +bTn +bTn +bTz +bTn +bTn +bTk +bTk +bTD +bTk +bTD +bTD +bTD +bTD +bTk +bTD +bTD +bTD +bTk +bTD +bTD +bTk +bTD +bTD +bTD +bTk +bTk +bTD +bTD +bTk +bTk +bTD +bTk +bTD +bTk +bTk +bTk +bTk +bTk +bTk +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +ait +aiu +ait +ait +arD +arD +ato +ato +ato +ato +arD +arD +aCd +aCd +aCd +aCd +aUh +aCd +aCd +aFL +aCd +aGJ +aCd +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aEw +aZI +baD +aRi +aRi +bcZ +aRi +aRi +beO +bfP +bhi +big +bhi +bfN +bly +bmT +bok +bpA +bqN +bsc +btn +bhi +bhi +bhi +bxs +byD +bzG +bAA +bBu +bCA +bDA +bBx +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +aad +bTl +bTl +bTn +bTn +bTn +bTk +bTD +bTD +bTk +bTD +bTD +bTD +bTD +bTk +bTD +bTD +bTD +bTk +bTk +bTD +bTD +bTD +bTD +bTD +bTD +bTD +bTD +bTD +bTD +bTD +bTk +bTD +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +bdx +aad +aad +aaa +aaa +aaa +aaa +aad +aad +aCd +bWM +bWQ +aRh +aDH +aRh +aDH +aDH +aCd +aGJ +aCd +aCd +aEw +aEw +aEw +aEw +aCd +aCd +aEw +aEw +aCd +aEw +aEw +aCd +aCd +aVP +baE +aDH +aRh +bda +aCd +aIz +beP +bfQ +bhk +bhk +bhk +bhk +blz +bmU +bol +bpz +bqM +bij +bij +bij +bij +bij +bxs +byE +bzK +bxs +bBv +bCB +bDB +bxu +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bTl +bTk +bTk +bTk +bTk +bTk +bTk +bTD +bTk +bTD +bTk +bTk +bTD +bTD +bTD +bTD +bTD +bTk +bTk +bTD +bTD +bTD +bTk +bTk +bTk +bTD +bTD +bTD +bTD +bTk +bTD +bTk +bTk +bTk +bTk +bTk +bTk +bTD +bTk +bTk +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +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 +aad +aaa +aaa +aaa +aad +aad +aad +aCd +bWN +aCd +bbz +aCd +aFL +aCd +aCd +aCd +aJT +aLd +aLd +aLd +aLd +aLd +aQh +aRg +aCd +aTg +aUf +aCd +aVO +aRi +aRi +aYE +aVQ +aDH +bbx +aDH +bda +aCd +bea +beQ +bfR +bfN +bhi +bhi +bkl +blA +bmV +bom +bpz +bqM +brX +bto +bup +bhi +bhi +bxs +byF +bzL +bAC +bBw +bCC +bDC +bxu +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bTk +bTk +bTk +bTk +bTk +bTD +bTD +bTk +bTD +bTk +bTk +bTD +bTD +bTk +bTD +bTk +bTk +bTk +bTD +bTk +bTD +bTk +bTk +bTk +bTD +bTk +bTD +bTD +bTk +bTk +bTk +bTk +bTk +bTD +bTk +bTk +bTk +bTk +bTk +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aad +aaa +aEw +aDH +aCd +aCd +aCd +aEv +bXi +aFM +aCd +aJU +aLe +aMk +aNk +aOp +aPf +aQi +aRh +aCd +aTh +aDH +aCd +aVP +aRh +aDH +aYF +aDH +baF +bby +bcm +bda +aCd +beb +beR +bfS +bfN +bih +bje +bhi +blB +bmW +bom +bpz +bqM +bsd +btp +bhi +bje +bws +bxu +byG +bxu +bxu +bBx +bxu +bBx +bxu +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bTk +bTk +bTk +bTk +bTk +bTk +bTD +bTD +bTk +bTk +bTD +bTk +bTD +bTD +bTD +bTQ +bTD +bTD +bTk +bTk +bTk +bTD +bTD +bTk +bTk +bTD +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aad +aad +aCd +bWO +aCd +aaa +aCd +aEw +aCd +aCd +aIB +aIB +aIB +aIB +aNl +aOq +aIB +aQj +aDH +aDH +aDH +bXy +aCd +aVP +aWS +aWS +aYG +aWS +aWS +aCd +aCd +bdb +aCd +bec +beS +aDH +bfN +bii +bhi +bhi +blC +bmX +bon +bpB +bqN +bse +btq +bhi +bhi +bhi +bfN +byH +btw +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bTk +bTk +bTk +bTD +bTD +bTD +bTD +bTD +bTD +bTk +bTk +bTD +bTD +bTk +bTD +bTD +bTk +bTk +bTk +bTD +bTD +bTk +bTk +bTD +bTD +bTk +bTk +bTD +bTk +bTk +bTk +bTk +bTk +bTk +bTk +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +agP +agP +agP +aaa +aaa +aaa +aaa +aaa +aIC +aIC +aLf +aMl +aNm +aOr +aIB +aQj +aDH +aCd +aCd +aCd +aCd +aVP +aWS +aXR +aYH +aZJ +aWS +bYx +aDH +bda +aCd +aCd +beS +aHE +bfN +bij +bij +bij +bij +bij +boo +bpC +bqQ +bij +bij +bij +bij +bij +bfN +byI +btw +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bTk +bTk +bTk +bTk +bTk +bTk +bTD +bTD +bTS +bTD +bTD +bTk +bTk +bTD +bTk +bTk +bTD +bTk +bTk +bTk +bTk +bTD +bTk +bTk +bTk +bTk +bTk +bTk +bTk +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aIB +aIB +aLg +aMm +aNn +aOs +aIB +aQk +aRi +aSj +aRi +aRi +aRi +aVQ +aWS +aXS +aYI +aZK +aWS +bbA +bcn +bdc +aLd +aLd +beT +bfT +bfN +bhi +bhi +bkl +blD +bmV +bom +bpz +bqM +brX +btr +bup +bhi +bhi +bfN +byH +btw +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bTk +bTk +bTk +bTD +bTk +bTD +bTk +bTD +bTD +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aIB +aJV +aLh +aMm +aNn +aOt +aIB +aQl +aCd +aCd +aCd +aCd +bXE +aCd +aWS +aXT +aYJ +aZL +aWS +aCd +aEw +aEw +aCd +aCd +aCd +bfU +bfN +bih +bje +bhi +blE +bmY +bom +bpz +bqM +bsf +bts +bhi +bje +bws +bfN +byJ +btw +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aID +aJW +aLi +aMm +aNo +aOu +aPg +aQm +aCd +bXv +aDH +aDH +aDH +aCd +aWT +aWT +aYK +aWT +aWT +aad +aad +aad +aCd +bZb +aCd +bfV +bfN +bhi +bhi +bhi +blF +bmZ +bop +bpD +bqN +bsg +btt +bhi +bhi +bhi +bfN +byH +btw +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +bTk +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aID +aJX +aLj +aMm +aNp +aOv +aPh +aQn +aCd +aCd +aUh +aCd +aCd +aCd +aad +aXU +aYL +aWT +aaa +aaa +aaa +aaa +aCd +aDH +aIy +bfV +bfN +bfN +bfN +bfN +bfN +bfN +bfN +bpE +bqR +bfN +bfN +bfN +bfN +bfN +bfN +byK +btw +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aIB +aJY +aLk +aMn +aNq +aOw +aPi +aQo +aCd +aSk +aDH +aDH +aUY +aCd +aad +aWT +aYM +aWT +aaa +aaa +aaa +aCd +aCd +aDH +aCd +bfV +aDH +bik +bjf +bkm +aJR +bij +boq +bpF +bqS +bij +btu +buq +buq +buq +bxv +btv +btw +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aIB +aIB +aID +aIB +aID +aIB +aIB +aIB +aCd +aSl +aDH +aUi +aUZ +aCd +aaa +aaa +aYN +aaa +aaa +aaa +aaa +aCd +aDH +bYl +aDH +bfW +bhl +bhl +bhl +bhl +blG +bna +bor +bpG +bqT +bsh +btv +btw +btw +bwt +bwt +btw +btw +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +aad +aad +aaa +aaa +aad +aad +aad +aEw +bXw +aDH +aUi +aVa +aCd +aaa +aaa +aYN +aaa +aaa +aaa +aCd +aCd +bYl +aCd +aCd +aCd +aUh +aCd +aCd +aCd +aHA +bij +bos +bpH +bos +bij +btw +btw +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +aCd +aCd +aEw +aEw +aEw +aCd +aaa +aaa +aYN +aaa +aaa +aaa +aEw +bYO +bYR +bZc +aCd +bfX +aDH +bil +bjg +aCd +aHA +bij +bot +bot +bot +bsi +agv +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aYN +aaa +aaa +aaa +aEw +bYP +bYS +bZd +aCd +bfY +bhm +bim +bjh +aCd +blH +bij +bou +bpI +bot +bsi +agv +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aYN +aaa +aaa +aaa +aCd +aCd +aCd +aEw +aCd +bfZ +bcn +bin +bji +aCd +aHA +bij +bij +bij +bij +bij +bdx +bdx +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aYN +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aCd +aEw +aEw +aEw +aEw +aCd +aHB +aIw +aIw +aIw +bqU +aCd +aad +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aYN +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +aCd +aEw +bnb +bov +aEw +bqV +aCd +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bSj +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aYN +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +aad +aEw +aEw +aEw +aEw +bqW +aad +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aYN +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +adf +aac +aac +aac +aaa +aab +aaa +aaa +aaa +aaa +aYO +aaa +aaa +aaa +aaa +aaa +aaa +aac +aac +aac +aad +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aaa +aaa +aaa +aad +aaa +aaa +aaa +aaa +aaa +aaa +aYP +aaa +aaa +aaa +aaa +aaa +aaa +aad +aaa +aaa +aaa +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aaa +aQp +aQp +aQp +aQp +aQp +aQp +aQp +aQp +aaa +aYP +aaa +aQp +aQp +aQp +aQp +aQp +aQp +aQp +aQp +aaa +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aad +aoT +apI +apI +apI +apI +apI +apI +apI +aws +aYP +ayV +azV +azV +azV +azV +azV +azV +azV +aFN +aad +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aaa +aQq +aQq +aQq +aQq +aQq +aQq +aQq +aWU +aaa +aYP +aaa +aQq +aQq +aQq +aQq +aQq +aQq +aQq +aWU +aaa +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +adf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aYP +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +adf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aaa +aQp +aQp +aQp +aQp +aQp +aQp +aQp +aQp +aaa +aYP +aaa +aQp +aQp +aQp +aQp +aQp +aQp +aQp +aQp +aaa +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +all +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aad +aoT +apI +apI +apI +apI +apI +apI +apI +aws +aYP +ayV +azV +azV +azV +azV +azV +azV +azV +aFN +aad +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aac +aaa +aQq +aQq +aQq +aQq +aQq +aQq +aQq +aWU +aaa +aYP +aaa +aQq +aQq +aQq +aQq +aQq +aQq +aQq +aWU +aaa +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aYP +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aac +aaa +aQp +aQp +aQp +aQp +aQp +aQp +aQp +aQp +aaa +aYP +aaa +aQp +aQp +aQp +aQp +aQp +aQp +aQp +aQp +aaa +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aac +aad +aoT +apI +apI +apI +apI +apI +apI +apI +aws +aYP +ayV +azV +azV +azV +azV +azV +azV +azV +aFN +aad +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aac +aaa +aQq +aQq +aQq +aQq +aQq +aQq +aQq +aWU +aaa +aYP +aaa +aQq +aQq +aQq +aQq +aQq +aQq +aQq +aWU +aaa +adf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +adf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aYP +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aac +aaa +aQp +aQp +aQp +aQp +aQp +aQp +aQp +aQp +aaa +aYP +aaa +aQp +aQp +aQp +aQp +aQp +aQp +aQp +aQp +aaa +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aac +aad +aoT +apI +apI +apI +apI +apI +apI +apI +aws +axI +ayV +azV +azV +azV +azV +azV +azV +azV +aFN +aad +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aac +aaa +aQq +aQq +aQq +aQq +aQq +aQq +aQq +aWU +aaa +aYQ +aaa +aQq +aQq +aQq +aQq +aQq +aQq +aQq +aWU +aaa +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aYN +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +adf +aac +aac +aac +aac +aac +aac +aac +aac +aac +aaa +aYN +aaa +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aad +aad +aYR +aad +aad +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aac +aaa +aad +aaa +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aac +aac +aac +aac +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +"} diff --git a/_maps/map_files/PubbyStation/areas.dm b/_maps/map_files/PubbyStation/areas.dm new file mode 100644 index 0000000000..e15bc87193 --- /dev/null +++ b/_maps/map_files/PubbyStation/areas.dm @@ -0,0 +1,7 @@ +/area/chapel/asteroid + name = "Chapel Asteroid" + icon_state = "explored" + +/area/chapel/dock + name = "Chapel Dock" + icon_state = "construction" diff --git a/_maps/map_files/PubbyStation/job/job_changes.dm b/_maps/map_files/PubbyStation/job/job_changes.dm new file mode 100644 index 0000000000..232f127f2d --- /dev/null +++ b/_maps/map_files/PubbyStation/job/job_changes.dm @@ -0,0 +1,20 @@ +/datum/job/assistant +/datum/job/captain +/datum/job/hop + +/datum/job/hos/New() + ..() + access += access_crematorium + minimal_access += access_crematorium + +/datum/job/warden/New() + ..() + access += access_crematorium + minimal_access += access_crematorium + +/datum/job/officer/New() + ..() + access += access_crematorium + minimal_access += access_crematorium + +/datum/job/detective diff --git a/_maps/map_files/PubbyStation/job/removed_jobs.dm b/_maps/map_files/PubbyStation/job/removed_jobs.dm new file mode 100644 index 0000000000..aea9363737 --- /dev/null +++ b/_maps/map_files/PubbyStation/job/removed_jobs.dm @@ -0,0 +1,5 @@ +/datum/job/librarian/config_check() + return 0 + +/datum/job/lawyer/config_check() + return 0 diff --git a/_maps/map_files/PubbyStation/monastery_shuttle.dm b/_maps/map_files/PubbyStation/monastery_shuttle.dm new file mode 100644 index 0000000000..503a26abb6 --- /dev/null +++ b/_maps/map_files/PubbyStation/monastery_shuttle.dm @@ -0,0 +1,11 @@ +/obj/machinery/computer/shuttle/monastery_shuttle + name = "monastery shuttle console" + desc = "Used to control the monastery shuttle." + circuit = /obj/item/weapon/circuitboard/computer/shuttle/monastery_shuttle + shuttleId = "pod1" + possible_destinations = "monastery_shuttle_asteroid;monastery_shuttle_station" + no_destination_swap = TRUE + +/obj/item/weapon/circuitboard/computer/shuttle/monastery_shuttle + name = "circuit board (Monastery Shuttle)" + build_path = /obj/machinery/computer/shuttle/monastery_shuttle diff --git a/_maps/map_files/TgStation/tgstation.2.1.3.dmm b/_maps/map_files/TgStation/tgstation.2.1.3.dmm index 4459044c16..906e266805 100644 --- a/_maps/map_files/TgStation/tgstation.2.1.3.dmm +++ b/_maps/map_files/TgStation/tgstation.2.1.3.dmm @@ -1,7142 +1,126237 @@ -"aaa" = (/turf/open/space,/area/space) -"aab" = (/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 24; id = "syndicate_n"; name = "north of station"; turf_type = /turf/open/space; width = 18},/turf/open/space,/area/space) -"aac" = (/turf/open/space,/obj/machinery/porta_turret/syndicate{dir = 9},/turf/closed/wall/shuttle{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/syndicate) -"aad" = (/turf/closed/indestructible/opshuttle,/area/shuttle/syndicate) -"aae" = (/obj/structure/grille,/obj/machinery/door/poddoor/shutters{id = "syndieshutters"; name = "blast shutters"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/shuttle/syndicate) -"aaf" = (/turf/open/space,/obj/machinery/porta_turret/syndicate{dir = 5},/turf/closed/wall/shuttle{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/syndicate) -"aag" = (/obj/structure/table,/obj/machinery/microwave,/turf/open/floor/plasteel/shuttle/red,/area/shuttle/syndicate) -"aah" = (/turf/open/floor/plasteel/shuttle/red,/area/shuttle/syndicate) -"aai" = (/obj/structure/table,/obj/item/device/flashlight/lamp{pixel_x = 4; pixel_y = 1},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/syndicate) -"aaj" = (/obj/machinery/computer/shuttle/syndicate,/turf/open/floor/plasteel/shuttle/red,/area/shuttle/syndicate) -"aak" = (/obj/structure/table,/obj/machinery/button/door{id = "syndieshutters"; name = "remote shutter control"; req_access_txt = "150"},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/syndicate) -"aal" = (/obj/structure/frame/computer,/turf/open/floor/plasteel/shuttle/red,/area/shuttle/syndicate) -"aam" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/syndicate) -"aan" = (/obj/structure/chair/comfy/beige{dir = 1; icon_state = "comfychair"},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/syndicate) -"aao" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 10},/obj/item/device/multitool,/turf/open/floor/plasteel/shuttle/red,/area/shuttle/syndicate) -"aap" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_y = -32; subspace_transmission = 1; syndie = 1},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/syndicate) -"aaq" = (/obj/structure/closet/syndicate/personal,/turf/open/floor/plasteel/shuttle/red,/area/shuttle/syndicate) -"aar" = (/turf/open/space,/turf/closed/wall/shuttle{dir = 2; icon_state = "diagonalWall3"},/area/shuttle/syndicate) -"aas" = (/obj/machinery/door/window{name = "Cockpit"; req_access_txt = "150"},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/syndicate) -"aat" = (/turf/closed/wall/shuttle{icon_state = "wall3"},/area/shuttle/syndicate) -"aau" = (/turf/open/space,/turf/closed/wall/shuttle{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/syndicate) -"aav" = (/obj/structure/table,/obj/item/stack/cable_coil,/obj/item/weapon/crowbar/red,/turf/open/floor/plasteel/shuttle/red,/area/shuttle/syndicate) -"aaw" = (/obj/structure/table,/obj/item/weapon/storage/box/zipties{pixel_x = 1; pixel_y = 2},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/syndicate) -"aax" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/syndicate) -"aay" = (/turf/open/space,/turf/closed/wall/shuttle{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/syndicate) -"aaz" = (/obj/machinery/porta_turret/syndicate{dir = 4},/turf/closed/indestructible/opshuttle,/area/shuttle/syndicate) -"aaA" = (/obj/machinery/suit_storage_unit/syndicate,/turf/open/floor/plasteel/shuttle/red,/area/shuttle/syndicate) -"aaB" = (/obj/structure/closet/syndicate/nuclear,/turf/open/floor/plasteel/shuttle/red,/area/shuttle/syndicate) -"aaC" = (/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 24; id = "syndicate_ne"; name = "northeast of station"; turf_type = /turf/open/space; width = 18},/turf/open/space,/area/space) -"aaD" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/syndicate) -"aaE" = (/obj/structure/table,/obj/item/device/aicard,/turf/open/floor/plasteel/shuttle/red,/area/shuttle/syndicate) -"aaF" = (/obj/machinery/door/poddoor{auto_close = 300; id = "smindicate"; name = "outer blast door"},/obj/machinery/button/door{id = "smindicate"; name = "external door control"; pixel_x = -26; pixel_y = 0; req_access_txt = "150"},/obj/docking_port/mobile{dheight = 9; dir = 2; dwidth = 5; height = 24; id = "syndicate"; name = "syndicate infiltrator"; roundstart_move = "syndicate_away"; travelDir = 180; width = 18},/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 24; id = "syndicate_nw"; name = "northwest of station"; turf_type = /turf/open/space; width = 18},/turf/open/floor/plating,/area/shuttle/syndicate) -"aaG" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/turf/closed/indestructible/opshuttle,/area/shuttle/syndicate) -"aaH" = (/obj/structure/table,/obj/item/weapon/c4{pixel_x = 2; pixel_y = -5},/obj/item/weapon/c4{pixel_x = -3; pixel_y = 3},/obj/item/weapon/c4{pixel_x = 2; pixel_y = -3},/obj/item/weapon/c4{pixel_x = -2; pixel_y = -1},/obj/item/weapon/c4{pixel_x = 3; pixel_y = 3},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/syndicate) -"aaI" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/shuttle/syndicate) -"aaJ" = (/obj/machinery/door/window{name = "Ready Room"; req_access_txt = "150"},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/syndicate) -"aaK" = (/obj/effect/landmark{name = "carpspawn"},/turf/open/space,/area/space) -"aaL" = (/obj/machinery/door/window{dir = 4; name = "EVA Storage"; req_access_txt = "150"},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/syndicate) -"aaM" = (/obj/machinery/door/airlock/external{req_access_txt = "150"},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/syndicate) -"aaN" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "EVA Storage"; req_access_txt = "150"},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/syndicate) -"aaO" = (/turf/open/space,/turf/closed/wall/shuttle{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/syndicate) -"aaP" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_x = -32; subspace_transmission = 1; syndie = 1},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/syndicate) -"aaQ" = (/obj/machinery/sleeper/syndie{dir = 4},/turf/open/floor/plasteel/shuttle/white,/area/shuttle/syndicate) -"aaR" = (/turf/open/floor/plasteel/shuttle/white,/area/shuttle/syndicate) -"aaS" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/plasteel/shuttle/white,/area/shuttle/syndicate) -"aaT" = (/obj/structure/tank_dispenser/oxygen,/turf/open/floor/plasteel/shuttle/white,/area/shuttle/syndicate) -"aaU" = (/obj/structure/table,/obj/item/stack/medical/ointment,/obj/item/stack/medical/bruise_pack,/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/open/floor/plasteel/shuttle/white,/area/shuttle/syndicate) -"aaV" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell/high{pixel_x = -3; pixel_y = 3},/obj/item/weapon/stock_parts/cell/high,/turf/open/floor/plasteel/shuttle/red,/area/shuttle/syndicate) -"aaW" = (/obj/structure/table,/obj/item/weapon/screwdriver{pixel_y = 9},/obj/item/device/assembly/voice{pixel_y = 3},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/syndicate) -"aaX" = (/obj/structure/table,/obj/item/weapon/wrench,/obj/item/device/assembly/infra,/turf/open/floor/plasteel/shuttle/red,/area/shuttle/syndicate) -"aaY" = (/obj/structure/table,/obj/item/device/assembly/signaler,/obj/item/device/assembly/signaler,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/syndicate) -"aaZ" = (/obj/structure/table,/obj/item/weapon/weldingtool/largetank{pixel_y = 3},/obj/item/device/multitool,/turf/open/floor/plasteel/shuttle/red,/area/shuttle/syndicate) -"aba" = (/obj/structure/bed/roller,/turf/open/floor/plasteel/shuttle/white,/area/shuttle/syndicate) -"abb" = (/obj/structure/sign/bluecross_2,/turf/closed/indestructible/opshuttle,/area/shuttle/syndicate) -"abc" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/syndicate,/obj/item/weapon/crowbar/red,/turf/open/floor/plasteel/shuttle/red,/area/shuttle/syndicate) -"abd" = (/obj/machinery/door/window{dir = 4; name = "Infirmary"; req_access_txt = "150"},/turf/open/floor/plasteel/shuttle/white,/area/shuttle/syndicate) -"abe" = (/obj/machinery/door/window/westright{name = "Tool Storage"; req_access_txt = "150"},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/syndicate) -"abf" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Infirmary"; req_access_txt = "150"},/turf/open/floor/plasteel/shuttle/white,/area/shuttle/syndicate) -"abg" = (/obj/machinery/door/window{dir = 8; name = "Tool Storage"; req_access_txt = "150"},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/syndicate) -"abh" = (/obj/machinery/recharge_station,/turf/open/floor/plasteel/shuttle/red,/area/shuttle/syndicate) -"abi" = (/obj/structure/lattice,/turf/open/space,/area/space) -"abj" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table,/obj/item/robot_parts/r_arm,/obj/item/robot_parts/l_arm,/turf/open/floor/plasteel/shuttle/white,/area/shuttle/syndicate) -"abk" = (/obj/machinery/door/window{dir = 1; name = "Surgery"; req_access_txt = "150"},/turf/open/floor/plasteel/shuttle/white,/area/shuttle/syndicate) -"abl" = (/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plasteel/shuttle/white,/area/shuttle/syndicate) -"abm" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/storage/firstaid/regular{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/brute,/obj/item/weapon/storage/firstaid/regular{pixel_x = -3; pixel_y = -3},/turf/open/floor/plasteel/shuttle/white,/area/shuttle/syndicate) -"abn" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = -3; pixel_y = -3},/turf/open/floor/plasteel/shuttle/white,/area/shuttle/syndicate) -"abo" = (/obj/structure/table,/obj/item/device/sbeacondrop/bomb{pixel_y = 5},/obj/item/device/sbeacondrop/bomb,/turf/open/floor/plasteel/shuttle/red,/area/shuttle/syndicate) -"abp" = (/obj/structure/table,/obj/item/weapon/grenade/syndieminibomb{pixel_x = 4; pixel_y = 2},/obj/item/weapon/grenade/syndieminibomb{pixel_x = -1},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/syndicate) -"abq" = (/obj/structure/lattice/catwalk,/turf/open/space,/area/space) -"abr" = (/obj/structure/table,/obj/item/weapon/surgicaldrill,/obj/item/weapon/circular_saw,/turf/open/floor/plasteel/shuttle/white,/area/shuttle/syndicate) -"abs" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/mirror{pixel_x = 30},/turf/open/floor/plasteel/shuttle/white,/area/shuttle/syndicate) -"abt" = (/obj/machinery/nuclearbomb/syndicate,/obj/machinery/door/window{dir = 1; name = "Secure Storage"; req_access_txt = "150"},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/syndicate) -"abu" = (/obj/machinery/telecomms/allinone{intercept = 1},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/syndicate) -"abv" = (/obj/structure/sign/securearea{pixel_y = -32},/turf/open/space,/area/space) -"abw" = (/obj/structure/table,/obj/item/weapon/cautery,/obj/item/weapon/scalpel,/turf/open/floor/plasteel/shuttle/white,/area/shuttle/syndicate) -"abx" = (/obj/structure/table/optable,/obj/item/weapon/surgical_drapes,/turf/open/floor/plasteel/shuttle/white,/area/shuttle/syndicate) -"aby" = (/obj/structure/table,/obj/item/weapon/retractor,/obj/item/weapon/hemostat,/turf/open/floor/plasteel/shuttle/white,/area/shuttle/syndicate) -"abz" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating,/area/shuttle/syndicate) -"abA" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel/shuttle/red,/area/shuttle/syndicate) -"abB" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/rods{amount = 50},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/syndicate) -"abC" = (/obj/structure/rack,/obj/item/clothing/suit/space/syndicate/black/red,/obj/item/clothing/head/helmet/space/syndicate/black/red,/turf/open/floor/plasteel/shuttle/red,/area/shuttle/syndicate) -"abD" = (/turf/closed/wall/r_wall,/area/security/prison) -"abE" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/prison) -"abF" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/closed/wall/r_wall,/area/security/prison) -"abG" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/prison) -"abH" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/prison) -"abI" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"},/turf/open/floor/plating,/area/shuttle/syndicate) -"abJ" = (/obj/structure/shuttle/engine/propulsion,/turf/open/floor/plating,/area/shuttle/syndicate) -"abK" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"},/turf/open/floor/plating,/area/shuttle/syndicate) -"abL" = (/obj/machinery/hydroponics/soil,/obj/item/seeds/ambrosia,/turf/open/floor/plasteel/green/side{dir = 9},/area/security/prison) -"abM" = (/obj/machinery/hydroponics/soil,/obj/item/seeds/carrot,/turf/open/floor/plasteel/green/side{dir = 1},/area/security/prison) -"abN" = (/obj/machinery/airalarm{pixel_y = 23},/turf/open/floor/plating,/area/security/prison) -"abO" = (/obj/machinery/hydroponics/soil,/obj/item/seeds/glowshroom,/turf/open/floor/plasteel/green/side{dir = 1},/area/security/prison) -"abP" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/obj/machinery/hydroponics/soil,/obj/item/device/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) -"abQ" = (/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"abR" = (/obj/structure/sink{pixel_y = 20},/turf/open/floor/plating,/area/security/prison) -"abS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"abT" = (/obj/machinery/biogenerator,/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"abU" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plating,/area/security/prison) -"abV" = (/turf/open/floor/plating,/area/security/prison) -"abW" = (/mob/living/simple_animal/mouse/brown/Tom,/turf/open/floor/plating,/area/security/prison) -"abX" = (/obj/item/weapon/reagent_containers/glass/bucket,/turf/open/floor/plating,/area/security/prison) -"abY" = (/obj/machinery/seed_extractor,/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"abZ" = (/obj/structure/window/reinforced,/obj/machinery/hydroponics/soil,/obj/item/seeds/potato,/turf/open/floor/plasteel/green/side{dir = 10},/area/security/prison) -"aca" = (/obj/structure/window/reinforced,/obj/machinery/hydroponics/soil,/obj/item/seeds/grass,/turf/open/floor/plasteel/green/side{dir = 2},/area/security/prison) -"acb" = (/obj/structure/window/reinforced,/turf/open/floor/plating,/area/security/prison) -"acc" = (/obj/structure/window/reinforced,/obj/machinery/hydroponics/soil,/obj/item/weapon/cultivator,/turf/open/floor/plasteel/green/side{dir = 2},/area/security/prison) -"acd" = (/obj/structure/window/reinforced,/obj/machinery/hydroponics/soil,/obj/item/weapon/cultivator,/turf/open/floor/plasteel/green/side{dir = 6},/area/security/prison) -"ace" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"acf" = (/turf/open/floor/plating/airless,/area/space/nearstation) -"acg" = (/obj/structure/bookcase,/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"ach" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"aci" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plasteel/barber,/area/security/prison) -"acj" = (/obj/machinery/washing_machine,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plasteel/barber,/area/security/prison) -"ack" = (/obj/machinery/computer/libraryconsole/bookmanagement{pixel_y = 0},/obj/structure/table,/obj/machinery/newscaster{pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"acl" = (/obj/structure/table,/obj/item/weapon/storage/pill_bottle/dice,/turf/open/floor/plasteel,/area/security/prison) -"acm" = (/obj/structure/table,/obj/item/weapon/pen,/turf/open/floor/plasteel,/area/security/prison) -"acn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/barber,/area/security/prison) -"aco" = (/obj/structure/table,/obj/structure/bedsheetbin,/turf/open/floor/plasteel/barber,/area/security/prison) -"acp" = (/obj/structure/lattice,/obj/structure/sign/securearea{pixel_y = -32},/turf/open/space,/area/space) -"acq" = (/obj/structure/grille,/obj/structure/lattice,/turf/open/space,/area/space) -"acr" = (/obj/machinery/computer/arcade,/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"acs" = (/obj/structure/chair/stool,/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"act" = (/obj/structure/table,/obj/item/toy/cards/deck,/turf/open/floor/plasteel,/area/security/prison) -"acu" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/open/floor/plasteel,/area/security/prison) -"acv" = (/obj/structure/window/reinforced,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/barber,/area/security/prison) -"acw" = (/obj/machinery/washing_machine,/obj/structure/window/reinforced,/turf/open/floor/plasteel/barber,/area/security/prison) -"acx" = (/turf/closed/wall/r_wall,/area/ai_monitored/security/armory) -"acy" = (/obj/structure/lattice,/obj/structure/grille/broken,/turf/open/space,/area/space) -"acz" = (/turf/closed/wall,/area/security/transfer) -"acA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/closed/wall,/area/security/transfer) -"acB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/security/transfer) -"acC" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/closed/wall,/area/security/transfer) -"acD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/closed/wall/r_wall,/area/security/transfer) -"acE" = (/obj/machinery/vending/sustenance,/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"acF" = (/obj/machinery/hologram/holopad,/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"acG" = (/obj/machinery/light/small{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/freezer,/area/security/prison) -"acH" = (/obj/machinery/shower{dir = 8},/obj/item/weapon/soap/nanotrasen,/turf/open/floor/plasteel/freezer,/area/security/prison) -"acI" = (/obj/structure/lattice,/obj/structure/grille,/turf/open/space,/area/space) -"acJ" = (/obj/structure/grille,/turf/open/space,/area/space) -"acK" = (/turf/closed/wall/r_wall,/area/security/main) -"acL" = (/turf/closed/wall,/area/security/main) -"acM" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/main) -"acN" = (/turf/closed/wall,/area/security/hos) -"acO" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/hos) -"acP" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/tracker,/turf/open/floor/plasteel/airless/solarpanel,/area/solar/auxport) -"acQ" = (/obj/machinery/door/poddoor{id = "executionspaceblast"; name = "blast door"},/turf/open/floor/plating,/area/security/transfer) -"acR" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/darkwarning{dir = 9},/area/security/transfer) -"acS" = (/obj/machinery/light/small{dir = 1},/obj/machinery/flasher{id = "executionflash"; pixel_x = 0; pixel_y = 25},/turf/open/floor/plasteel/darkwarning{dir = 1},/area/security/transfer) -"acT" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/darkwarning{dir = 5},/area/security/transfer) -"acU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/security/transfer) -"acV" = (/obj/machinery/vending/cola,/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"acW" = (/obj/machinery/light,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"acX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"acY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"acZ" = (/obj/machinery/light,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"ada" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"adb" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"adc" = (/obj/machinery/door/window/westleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Unisex Showers"; req_access_txt = "0"},/turf/open/floor/plasteel/freezer,/area/security/prison) -"add" = (/turf/open/floor/plasteel/freezer,/area/security/prison) -"ade" = (/obj/structure/closet/secure_closet/security/sec,/turf/open/floor/plasteel/showroomfloor,/area/security/main) -"adf" = (/turf/open/floor/plasteel/showroomfloor,/area/security/main) -"adg" = (/obj/structure/closet/secure_closet/security/sec,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/showroomfloor,/area/security/main) -"adh" = (/obj/machinery/requests_console{announcementConsole = 1; department = "Head of Security's Desk"; departmentType = 5; name = "Head of Security RC"; pixel_x = 0; pixel_y = 30},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = -31},/obj/structure/table/wood,/obj/item/weapon/storage/box/seccarts{pixel_x = 3; pixel_y = 2},/obj/item/weapon/storage/box/deputy,/turf/open/floor/carpet,/area/security/hos) -"adi" = (/obj/machinery/computer/secure_data,/turf/open/floor/carpet,/area/security/hos) -"adj" = (/obj/machinery/computer/security,/turf/open/floor/carpet,/area/security/hos) -"adk" = (/obj/machinery/computer/card/minor/hos,/turf/open/floor/carpet,/area/security/hos) -"adl" = (/obj/machinery/airalarm{pixel_y = 23},/obj/structure/reagent_dispensers/peppertank{pixel_x = 30; pixel_y = 0},/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka/badminka,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass,/turf/open/floor/carpet,/area/security/hos) -"adm" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/tracker,/turf/open/floor/plasteel/airless/solarpanel,/area/solar/auxstarboard) -"adn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxport) -"ado" = (/turf/open/floor/plasteel/darkwarning{dir = 8},/area/security/transfer) -"adp" = (/obj/structure/bed,/obj/effect/landmark{name = "revenantspawn"},/turf/open/floor/plasteel/black,/area/security/transfer) -"adq" = (/obj/machinery/sparker{dir = 2; id = "executionburn"; pixel_x = 25},/turf/open/floor/plasteel/darkwarning{dir = 4},/area/security/transfer) -"adr" = (/turf/closed/wall,/area/security/prison) -"ads" = (/obj/machinery/door/poddoor/preopen{id = "permacell3"; name = "cell blast door"},/obj/machinery/door/airlock/glass{id_tag = "permabolt3"; name = "Cell 3"},/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"adt" = (/obj/machinery/door/poddoor/preopen{id = "permacell2"; name = "cell blast door"},/obj/machinery/door/airlock/glass{id_tag = "permabolt2"; name = "Cell 2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"adu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/poddoor/preopen{id = "permacell1"; name = "cell blast door"},/obj/machinery/door/airlock/glass{id_tag = "permabolt1"; name = "Cell 1"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"adv" = (/obj/machinery/door/airlock{name = "Unisex Restroom"; req_access_txt = "0"},/turf/open/floor/plasteel/freezer,/area/security/prison) -"adw" = (/obj/structure/closet/bombcloset,/turf/open/floor/plasteel/showroomfloor,/area/security/main) -"adx" = (/obj/effect/landmark{name = "secequipment"},/turf/open/floor/plasteel/showroomfloor,/area/security/main) -"ady" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/showroomfloor,/area/security/main) -"adz" = (/obj/machinery/newscaster/security_unit{pixel_x = -30; pixel_y = 0},/obj/machinery/camera{c_tag = "Head of Security's Office"; dir = 4; network = list("SS13")},/obj/machinery/recharger{pixel_y = 4},/obj/structure/table/wood,/turf/open/floor/carpet,/area/security/hos) -"adA" = (/obj/structure/chair/comfy/black,/turf/open/floor/carpet,/area/security/hos) -"adB" = (/turf/open/floor/carpet,/area/security/hos) -"adC" = (/obj/machinery/hologram/holopad,/turf/open/floor/carpet,/area/security/hos) -"adD" = (/obj/machinery/keycard_auth{pixel_x = 24; pixel_y = 10},/obj/structure/table/wood,/obj/item/device/radio/off,/obj/item/device/taperecorder{pixel_y = 0},/turf/open/floor/carpet,/area/security/hos) -"adE" = (/obj/structure/sign/securearea{pixel_y = -32},/obj/structure/lattice/catwalk,/turf/open/space,/area/space) -"adF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxstarboard) -"adG" = (/obj/structure/lattice,/obj/item/stack/cable_coil,/turf/open/space,/area/space) -"adH" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/darkwarning{dir = 10},/area/security/transfer) -"adI" = (/turf/open/floor/plasteel/darkwarning{dir = 2},/area/security/transfer) -"adJ" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 2},/turf/open/floor/plasteel/darkwarning{dir = 6},/area/security/transfer) -"adK" = (/obj/structure/bed,/obj/machinery/camera{c_tag = "Prison Cell 3"; network = list("SS13","Prison")},/obj/item/device/radio/intercom{desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; pixel_x = 0; pixel_y = 24; prison_radio = 1},/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"adL" = (/obj/structure/chair/stool,/obj/machinery/light/small{dir = 1},/obj/machinery/button/door{id = "permabolt3"; name = "Cell Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"adM" = (/obj/structure/bed,/obj/machinery/camera{c_tag = "Prison Cell 2"; network = list("SS13","Prison")},/obj/item/device/radio/intercom{desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; pixel_x = 0; pixel_y = 24; prison_radio = 1},/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"adN" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"adO" = (/obj/structure/chair/stool,/obj/machinery/light/small{dir = 1},/obj/machinery/button/door{id = "permabolt2"; name = "Cell Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"adP" = (/obj/structure/bed,/obj/machinery/camera{c_tag = "Prison Cell 1"; network = list("SS13","Prison")},/obj/item/device/radio/intercom{desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; pixel_x = 0; pixel_y = 24; prison_radio = 1},/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"adQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"adR" = (/obj/structure/chair/stool,/obj/machinery/light/small{dir = 1},/obj/machinery/button/door{id = "permabolt1"; name = "Cell Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"adS" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/freezer,/area/security/prison) -"adT" = (/obj/structure/table,/obj/item/weapon/storage/box/firingpins,/obj/item/weapon/storage/box/firingpins,/obj/item/key/security,/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/security/armory) -"adU" = (/obj/structure/table,/obj/item/weapon/storage/box/chemimp{pixel_x = 6},/obj/item/weapon/storage/box/trackimp{pixel_x = -3},/obj/item/weapon/storage/lockbox/loyalty,/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/security/armory) -"adV" = (/obj/structure/rack,/obj/item/clothing/suit/armor/vest{pixel_x = -3; pixel_y = 3},/obj/item/clothing/suit/armor/vest{pixel_y = 0},/obj/item/clothing/suit/armor/vest{pixel_x = 3; pixel_y = -3},/obj/item/clothing/head/helmet{layer = 3.00001; pixel_x = -3; pixel_y = 3},/obj/item/clothing/head/helmet{layer = 3.00001},/obj/item/clothing/head/helmet{layer = 3.00001; pixel_x = 3; pixel_y = -3},/obj/machinery/firealarm{pixel_y = 24},/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/security/armory) -"adW" = (/obj/structure/rack,/obj/item/clothing/suit/armor/bulletproof{pixel_x = -3; pixel_y = 3},/obj/item/clothing/suit/armor/bulletproof{pixel_y = 0},/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; name = "motion-sensitive security camera"},/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/security/armory) -"adX" = (/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/weapon/shield/riot{pixel_x = -3; pixel_y = 3},/obj/item/weapon/shield/riot,/obj/item/weapon/shield/riot{pixel_x = 3; pixel_y = -3},/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/security/armory) -"adY" = (/obj/structure/rack,/obj/machinery/airalarm{pixel_y = 23},/obj/item/weapon/gun/energy/ionrifle,/obj/item/clothing/suit/armor/laserproof,/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/security/armory) -"adZ" = (/obj/structure/closet/secure_closet/lethalshots,/turf/open/floor/plasteel/black,/area/ai_monitored/security/armory) -"aea" = (/obj/vehicle/secway,/turf/open/floor/plasteel/black,/area/ai_monitored/security/armory) -"aeb" = (/obj/structure/closet/l3closet/security,/obj/machinery/camera{c_tag = "Brig Equipment Room"; dir = 4},/turf/open/floor/plasteel/showroomfloor,/area/security/main) -"aec" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/showroomfloor,/area/security/main) -"aed" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green{on = 0; pixel_x = -3; pixel_y = 8},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/turf/open/floor/carpet,/area/security/hos) -"aee" = (/obj/structure/table/wood,/obj/item/weapon/folder/red,/obj/item/weapon/stamp/hos,/turf/open/floor/carpet,/area/security/hos) -"aef" = (/obj/item/weapon/book/manual/wiki/security_space_law,/obj/structure/table/wood,/turf/open/floor/carpet,/area/security/hos) -"aeg" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/suit_storage_unit/hos,/turf/open/floor/carpet,/area/security/hos) -"aeh" = (/obj/machinery/door/airlock/external{name = "Security External Airlock"; req_access_txt = "63"},/turf/open/floor/plating,/area/security/main) -"aei" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "auxsolareast"; name = "Port Auxiliary Solar Array"},/turf/open/floor/plasteel/airless/solarpanel,/area/solar/auxport) -"aej" = (/obj/structure/cable,/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxport) -"aek" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/poddoor/preopen{id = "executionfireblast"; layer = 2.9; name = "blast door"},/obj/machinery/door/firedoor,/turf/open/floor/plating,/area/security/transfer) -"ael" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "executionfireblast"; layer = 2.9; name = "blast door"},/obj/machinery/door/firedoor,/turf/open/floor/plating,/area/security/transfer) -"aem" = (/obj/machinery/door/poddoor/preopen{id = "executionfireblast"; layer = 2.9; 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/transfer) -"aen" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/obj/machinery/flasher{id = "PCell 3"; pixel_x = -28},/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"aeo" = (/obj/structure/table,/obj/item/weapon/paper,/obj/item/weapon/pen,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"aep" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/obj/machinery/flasher{id = "PCell 2"; pixel_x = -28},/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"aeq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"aer" = (/obj/structure/table,/obj/item/weapon/paper,/obj/item/weapon/pen,/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"aes" = (/obj/machinery/flasher{id = "PCell 1"; pixel_x = -28},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"aet" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"aeu" = (/obj/structure/toilet{dir = 1},/turf/open/floor/plasteel/freezer,/area/security/prison) -"aev" = (/obj/item/weapon/grenade/barrier{pixel_x = 4},/obj/item/weapon/grenade/barrier,/obj/item/weapon/grenade/barrier{pixel_x = -4},/obj/structure/table,/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/security/armory) -"aew" = (/turf/open/floor/plasteel/warning{dir = 9},/area/ai_monitored/security/armory) -"aex" = (/turf/open/floor/plasteel/warning{dir = 1},/area/ai_monitored/security/armory) -"aey" = (/obj/machinery/power/apc{cell_type = 5000; dir = 4; name = "Armory APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/open/floor/plasteel/warning{dir = 1},/area/ai_monitored/security/armory) -"aez" = (/obj/machinery/vending/security,/turf/open/floor/plasteel/showroomfloor,/area/security/main) -"aeA" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/carpet,/area/security/hos) -"aeB" = (/obj/structure/chair{dir = 1},/turf/open/floor/carpet,/area/security/hos) -"aeC" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/carpet,/area/security/hos) -"aeD" = (/obj/item/weapon/storage/secure/safe/HoS{pixel_x = 35},/obj/structure/closet/secure_closet/hos,/turf/open/floor/carpet,/area/security/hos) -"aeE" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = -32; pixel_y = 0},/turf/open/floor/plating,/area/security/main) -"aeF" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "auxsolareast"; name = "Port Auxiliary Solar Array"},/turf/open/floor/plasteel/airless/solarpanel,/area/solar/auxstarboard) -"aeG" = (/obj/structure/cable,/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxstarboard) -"aeH" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxport) -"aeI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxport) -"aeJ" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxport) -"aeK" = (/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxport) -"aeL" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxport) -"aeM" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxport) -"aeN" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxport) -"aeO" = (/obj/structure/sign/securearea{pixel_x = 32; pixel_y = 0},/turf/open/space,/area/space) -"aeP" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/weapon/scalpel{pixel_y = 12},/obj/item/weapon/circular_saw,/obj/item/weapon/hemostat,/obj/item/weapon/retractor,/obj/item/weapon/surgical_drapes,/obj/item/weapon/razor,/turf/open/floor/plasteel/black,/area/security/transfer) -"aeQ" = (/obj/structure/table,/obj/item/weapon/folder/red{pixel_x = 3},/obj/item/device/taperecorder{pixel_x = -3; pixel_y = 0},/obj/item/device/assembly/flash/handheld,/obj/item/weapon/reagent_containers/spray/pepper,/turf/open/floor/plasteel/black,/area/security/transfer) -"aeR" = (/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/black,/area/security/transfer) -"aeS" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/security/prison) -"aeT" = (/obj/machinery/door/airlock/glass_security{name = "Long-Term Cell 3"; req_access_txt = "2"},/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"aeU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/security/prison) -"aeV" = (/obj/machinery/door/airlock/glass_security{name = "Long-Term Cell 2"; req_access_txt = "2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"aeW" = (/obj/machinery/door/airlock/glass_security{name = "Long-Term Cell 1"; req_access_txt = "2"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"aeX" = (/obj/structure/closet/secure_closet{anchored = 1; name = "Contraband Locker"; req_access_txt = "3"},/turf/open/floor/plasteel/black,/area/ai_monitored/security/armory) -"aeY" = (/obj/item/weapon/storage/toolbox/drone,/turf/open/floor/plasteel/warning{dir = 8},/area/ai_monitored/security/armory) -"aeZ" = (/obj/structure/rack,/obj/item/weapon/gun/projectile/shotgun/riot{pixel_x = -3; pixel_y = 3},/obj/item/weapon/gun/projectile/shotgun/riot,/obj/item/weapon/gun/projectile/shotgun/riot{pixel_x = 3; pixel_y = -3},/turf/open/floor/plasteel/bot{dir = 2},/area/ai_monitored/security/armory) -"afa" = (/obj/structure/rack,/obj/item/weapon/gun/energy/gun{pixel_x = -3; pixel_y = 3},/obj/item/weapon/gun/energy/gun,/obj/item/weapon/gun/energy/gun{pixel_x = 3; pixel_y = -3},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/bot{dir = 2},/area/ai_monitored/security/armory) -"afb" = (/obj/structure/rack,/obj/item/weapon/gun/energy/laser{pixel_x = -3; pixel_y = 3},/obj/item/weapon/gun/energy/laser,/obj/item/weapon/gun/energy/laser{pixel_x = 3; pixel_y = -3},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/bot{dir = 2},/area/ai_monitored/security/armory) -"afc" = (/obj/structure/rack,/obj/item/weapon/gun/energy/gun/advtaser{pixel_x = -3; pixel_y = 3},/obj/item/weapon/gun/energy/gun/advtaser,/obj/item/weapon/gun/energy/gun/advtaser{pixel_x = 3; pixel_y = -3},/turf/open/floor/plasteel/bot{dir = 2},/area/ai_monitored/security/armory) -"afd" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/ai_monitored/security/armory) -"afe" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/chair/office/dark{dir = 4},/turf/open/floor/plasteel,/area/ai_monitored/security/armory) -"aff" = (/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) -"afg" = (/obj/machinery/power/apc{dir = 8; name = "Head of Security's Office APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/carpet,/area/security/hos) -"afh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/carpet,/area/security/hos) -"afi" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/carpet,/area/security/hos) -"afj" = (/obj/machinery/light_switch{pixel_y = -23},/obj/effect/landmark/event_spawn,/turf/open/floor/carpet,/area/security/hos) -"afk" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/turf/open/floor/carpet,/area/security/hos) -"afl" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxstarboard) -"afm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxstarboard) -"afn" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxstarboard) -"afo" = (/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxstarboard) -"afp" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxstarboard) -"afq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxstarboard) -"afr" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxstarboard) -"afs" = (/obj/structure/cable,/obj/machinery/power/solar{id = "auxsolareast"; name = "Port Auxiliary Solar Array"},/turf/open/floor/plasteel/airless/solarpanel,/area/solar/auxport) -"aft" = (/obj/machinery/portable_atmospherics/canister/nitrous_oxide,/obj/machinery/atmospherics/components/unary/portables_connector/visible,/turf/open/floor/plating/warnplate{dir = 9},/area/security/transfer) -"afu" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/obj/machinery/atmospherics/components/unary/portables_connector/visible,/turf/open/floor/plating/warnplate{dir = 1},/area/security/transfer) -"afv" = (/obj/structure/table,/obj/item/device/flashlight/lamp,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/security/transfer) -"afw" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/black,/area/security/transfer) -"afx" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/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/black,/area/security/transfer) -"afy" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/closed/wall/r_wall,/area/security/transfer) -"afz" = (/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) -"afA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/prison) -"afB" = (/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) -"afC" = (/obj/machinery/light{dir = 1},/obj/machinery/computer/security/telescreen{desc = "Used for watching Prison Wing holding areas."; name = "Prison Monitor"; network = list("Prison"); pixel_x = 0; pixel_y = 30},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/prison) -"afD" = (/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) -"afE" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel,/area/security/prison) -"afF" = (/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) -"afG" = (/obj/machinery/computer/security/telescreen{desc = "Used for watching Prison Wing holding areas."; name = "Prison Monitor"; network = list("Prison"); pixel_x = 0; 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) -"afH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/corner{dir = 1},/area/security/prison) -"afI" = (/obj/structure/cable{d1 = 1; d2 = 2; 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) -"afJ" = (/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) -"afK" = (/obj/machinery/airalarm{pixel_y = 23},/obj/machinery/light{dir = 1},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/prison) -"afL" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/power/apc{dir = 4; name = "Prison Wing APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/prison) -"afM" = (/obj/machinery/flasher/portable,/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/security/armory) -"afN" = (/turf/open/floor/plasteel/warning{dir = 10},/area/ai_monitored/security/armory) -"afO" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/warning{dir = 2},/area/ai_monitored/security/armory) -"afP" = (/turf/open/floor/plasteel/warning{dir = 2},/area/ai_monitored/security/armory) -"afQ" = (/turf/open/floor/plasteel/warning/corner{dir = 1},/area/ai_monitored/security/armory) -"afR" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1},/turf/open/floor/plasteel,/area/ai_monitored/security/armory) -"afS" = (/turf/open/floor/plasteel,/area/ai_monitored/security/armory) -"afT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/ai_monitored/security/armory) -"afU" = (/obj/machinery/door/poddoor/shutters{id = "armory"; name = "Armoury Shutter"},/obj/machinery/button/door{id = "armory"; name = "Armory Shutters"; pixel_x = 0; pixel_y = -26; req_access_txt = "3"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/ai_monitored/security/armory) -"afV" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/showroomfloor,/area/security/main) -"afW" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/reagent_dispensers/peppertank{pixel_x = 30; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/showroomfloor,/area/security/main) -"afX" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/hos) -"afY" = (/obj/machinery/door/airlock/glass_command{name = "Head of Security"; req_access_txt = "58"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/carpet,/area/security/hos) -"afZ" = (/obj/structure/grille,/obj/structure/disposalpipe/segment,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/hos) -"aga" = (/obj/structure/table,/obj/item/stack/packageWrap,/obj/item/weapon/pen,/turf/open/floor/plasteel,/area/security/main) -"agb" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/turf/open/floor/plasteel/warning{dir = 5},/area/security/main) -"agc" = (/obj/machinery/camera{c_tag = "Security Escape Pod"; dir = 4; network = list("SS13")},/turf/open/floor/plating,/area/security/main) -"agd" = (/obj/structure/shuttle/engine/propulsion/burst{dir = 4},/turf/closed/wall/shuttle{icon_state = "swall_f6"; dir = 2},/area/shuttle/pod_3) -"age" = (/turf/closed/wall/shuttle{icon_state = "swall12"; dir = 2},/area/shuttle/pod_3) -"agf" = (/turf/open/space,/turf/closed/wall/shuttle{dir = 2; icon_state = "swall_f10"; layer = 2},/area/shuttle/pod_3) -"agg" = (/obj/structure/cable,/obj/machinery/power/solar{id = "auxsolareast"; name = "Port Auxiliary Solar Array"},/turf/open/floor/plasteel/airless/solarpanel,/area/solar/auxstarboard) -"agh" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 8},/obj/machinery/light/small{dir = 8},/obj/machinery/portable_atmospherics/canister/nitrous_oxide,/turf/open/floor/plating/warnplate{dir = 8},/area/security/transfer) -"agi" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 9},/turf/open/floor/plating,/area/security/transfer) -"agj" = (/obj/structure/rack,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/item/weapon/tank/internals/anesthetic{pixel_x = -3; pixel_y = 1},/obj/item/weapon/tank/internals/oxygen/red{pixel_x = 3},/turf/open/floor/plasteel/vault{dir = 8},/area/security/transfer) -"agk" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/black,/area/security/transfer) -"agl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/general/hidden,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/black,/area/security/transfer) -"agm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/security{aiControlDisabled = 0; icon_state = "door_closed"; id_tag = null; locked = 0; name = "Prisoner Transfer Centre"; req_access = null; req_access_txt = "2"},/turf/open/floor/plasteel/black,/area/security/transfer) -"agn" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/prison) -"ago" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/security/prison) -"agp" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel,/area/security/prison) -"agq" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/security/prison) -"agr" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/prison) -"ags" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/security/prison) -"agt" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/security/prison) -"agu" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/security/prison) -"agv" = (/obj/item/device/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) -"agw" = (/obj/structure/rack,/obj/item/weapon/storage/box/rubbershot{pixel_x = -3; pixel_y = 3},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/weapon/storage/box/rubbershot{pixel_x = -3; pixel_y = 3},/obj/item/weapon/storage/box/rubbershot,/obj/item/weapon/storage/box/rubbershot,/obj/item/weapon/storage/box/rubbershot{pixel_x = 3; pixel_y = -3},/obj/item/weapon/storage/box/rubbershot{pixel_x = 3; pixel_y = -3},/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/security/armory) -"agx" = (/obj/structure/rack,/obj/item/weapon/storage/box/teargas{pixel_x = -3; pixel_y = 3},/obj/item/weapon/storage/box/handcuffs,/obj/item/weapon/storage/box/flashbangs{pixel_x = 3; pixel_y = -3},/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/security/armory) -"agy" = (/turf/open/floor/plasteel/warning{dir = 8},/area/ai_monitored/security/armory) -"agz" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/ai_monitored/security/armory) -"agA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/suit_storage_unit/security,/turf/open/floor/plasteel/red/side,/area/ai_monitored/security/armory) -"agB" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/suit_storage_unit/security,/turf/open/floor/plasteel/red/side,/area/ai_monitored/security/armory) -"agC" = (/obj/structure/table,/obj/machinery/recharger,/turf/open/floor/plasteel/showroomfloor,/area/security/main) -"agD" = (/obj/machinery/recharger,/obj/structure/table,/turf/open/floor/plasteel/showroomfloor,/area/security/main) -"agE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/showroomfloor,/area/security/main) -"agF" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/closet/wardrobe/red,/turf/open/floor/plasteel/showroomfloor,/area/security/main) -"agG" = (/obj/effect/landmark/start{name = "Security Officer"},/turf/open/floor/plasteel/red/side{dir = 9},/area/security/main) -"agH" = (/obj/effect/landmark/start{name = "Security Officer"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/red/side{dir = 1},/area/security/main) -"agI" = (/obj/effect/landmark/start{name = "Security Officer"},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/main) -"agJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side{dir = 1},/area/security/main) -"agK" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/effect/landmark/start{name = "Security Officer"},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/main) -"agL" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/effect/landmark/start{name = "Security Officer"},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/main) -"agM" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/main) -"agN" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plasteel/warning{dir = 4},/area/security/main) -"agO" = (/obj/machinery/door/airlock/external{name = "Escape Pod Three"; req_access_txt = "0"},/turf/open/floor/plating,/area/security/main) -"agP" = (/turf/open/floor/plating,/area/security/main) -"agQ" = (/obj/machinery/door/airlock/shuttle{name = "Escape Pod Airlock"},/obj/docking_port/mobile/pod{dir = 4; id = "pod3"; name = "escape pod 3"},/turf/open/floor/plasteel/shuttle,/area/shuttle/pod_3) -"agR" = (/obj/item/device/radio/intercom{pixel_y = 25},/obj/item/weapon/storage/pod{pixel_x = 6; pixel_y = -32},/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/shuttle,/area/shuttle/pod_3) -"agS" = (/obj/machinery/computer/shuttle/pod{pixel_y = -32; possible_destinations = "pod_asteroid3"; shuttleId = "pod3"},/obj/structure/chair{dir = 4},/obj/machinery/status_display{density = 0; layer = 3; pixel_x = 0; pixel_y = 32},/turf/open/floor/plasteel/shuttle,/area/shuttle/pod_3) -"agT" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/pod_3) -"agU" = (/obj/docking_port/stationary/random{dir = 4; id = "pod_asteroid3"; name = "asteroid"},/turf/open/space,/area/space) -"agV" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/transfer) -"agW" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 5},/turf/open/floor/plating/warnplate{dir = 10},/area/security/transfer) -"agX" = (/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"},/turf/open/floor/plating/warnplate,/area/security/transfer) -"agY" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{icon_state = "intact"; dir = 4},/turf/open/floor/plasteel/black,/area/security/transfer) -"agZ" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/machinery/atmospherics/pipe/simple/general/hidden{icon_state = "intact"; dir = 4},/turf/open/floor/plasteel/black,/area/security/transfer) -"aha" = (/obj/machinery/light_switch{pixel_x = 25; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 9},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/security/transfer) -"ahb" = (/turf/closed/wall/r_wall,/area/security/transfer) -"ahc" = (/obj/structure/table,/obj/item/weapon/restraints/handcuffs,/turf/open/floor/plasteel/red/side{dir = 10},/area/security/prison) -"ahd" = (/obj/structure/extinguisher_cabinet{pixel_x = 1; pixel_y = -27},/turf/open/floor/plasteel/red/side,/area/security/prison) -"ahe" = (/turf/open/floor/plasteel/red/side,/area/security/prison) -"ahf" = (/obj/structure/table,/obj/item/device/electropack,/turf/open/floor/plasteel/red/side,/area/security/prison) -"ahg" = (/obj/structure/table,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/item/weapon/storage/box/hug,/obj/item/weapon/razor{pixel_x = -6},/turf/open/floor/plasteel/red/side,/area/security/prison) -"ahh" = (/obj/structure/table,/obj/item/device/assembly/signaler,/obj/item/clothing/suit/straight_jacket,/turf/open/floor/plasteel/red/side,/area/security/prison) -"ahi" = (/obj/structure/closet/secure_closet/brig{anchored = 1},/turf/open/floor/plasteel/red/side,/area/security/prison) -"ahj" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Prison Wing"; req_access_txt = "2"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side{dir = 9},/area/security/prison) -"ahk" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{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) -"ahl" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/ai_monitored/security/armory) -"ahm" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/ai_monitored/security/armory) -"ahn" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/window/southleft{name = "Armory"; req_access_txt = "3"},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/warning{dir = 10},/area/ai_monitored/security/armory) -"aho" = (/obj/machinery/door/firedoor,/obj/machinery/door/window/southleft{base_state = "right"; icon_state = "right"; name = "Armory"; req_access_txt = "3"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/warning{dir = 2},/area/ai_monitored/security/armory) -"ahp" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/window/reinforced/fulltile,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/ai_monitored/security/armory) -"ahq" = (/obj/structure/reagent_dispensers/peppertank,/turf/closed/wall/r_wall,/area/ai_monitored/security/armory) -"ahr" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/sign/securearea{pixel_x = -32},/turf/open/floor/plating,/area/security/main) -"ahs" = (/obj/machinery/door/airlock/glass_security{name = "Equipment Room"; req_access_txt = "1"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/showroomfloor,/area/security/main) -"aht" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/main) -"ahu" = (/obj/effect/landmark/start{name = "Security Officer"},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/main) -"ahv" = (/obj/structure/table,/obj/item/weapon/restraints/handcuffs,/obj/item/device/assembly/timer,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/security/main) -"ahw" = (/turf/open/floor/plasteel,/area/security/main) -"ahx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/landmark/start{name = "Head of Security"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/security/main) -"ahy" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/security/main) -"ahz" = (/obj/structure/table,/obj/item/device/radio/off,/obj/item/weapon/screwdriver{pixel_y = 10},/turf/open/floor/plasteel,/area/security/main) -"ahA" = (/obj/effect/landmark/start{name = "Security Officer"},/obj/structure/chair{dir = 8},/turf/open/floor/plasteel,/area/security/main) -"ahB" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/red/side{dir = 4},/area/security/main) -"ahC" = (/obj/structure/sign/pods{pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel/warning{dir = 6},/area/security/main) -"ahD" = (/obj/structure/closet/emcloset,/obj/machinery/light/small{dir = 8},/turf/open/floor/plating,/area/security/main) -"ahE" = (/obj/structure/shuttle/engine/propulsion/burst{dir = 4},/turf/closed/wall/shuttle{icon_state = "swall_f5"; dir = 2},/area/shuttle/pod_3) -"ahF" = (/turf/open/space,/turf/closed/wall/shuttle{icon_state = "swall_f9"; dir = 2},/area/shuttle/pod_3) -"ahG" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 1},/obj/item/weapon/storage/box/bodybags,/obj/item/weapon/pen,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/plasteel/black,/area/security/transfer) -"ahH" = (/obj/structure/table,/obj/item/device/electropack,/obj/item/weapon/screwdriver,/obj/item/weapon/wrench,/obj/item/clothing/head/helmet,/obj/item/device/assembly/signaler,/obj/machinery/light/small,/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/open/floor/plasteel/black,/area/security/transfer) -"ahI" = (/obj/structure/closet/secure_closet/injection,/obj/structure/cable,/obj/machinery/power/apc{dir = 2; name = "Prisoner Transfer Centre"; pixel_x = 0; pixel_y = -27},/turf/open/floor/plasteel/black,/area/security/transfer) -"ahJ" = (/obj/machinery/door/airlock/security{name = "Interrogation"; req_access = null; req_access_txt = "63"},/turf/open/floor/plasteel/black,/area/security/prison) -"ahK" = (/turf/closed/wall,/area/security/brig) -"ahL" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/sign/securearea{pixel_x = -32; pixel_y = 0},/obj/machinery/door/poddoor/preopen{id = "Prison Gate"; name = "prison blast door"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/delivery{name = "floor"},/area/security/brig) -"ahM" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/preopen{id = "Prison Gate"; name = "prison blast door"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/delivery{name = "floor"},/area/security/brig) -"ahN" = (/turf/closed/wall/r_wall,/area/security/warden) -"ahO" = (/obj/machinery/requests_console{department = "Security"; departmentType = 5; pixel_x = -30; pixel_y = 0},/obj/machinery/camera{c_tag = "Brig Control Room"; dir = 4},/obj/machinery/light{icon_state = "tube1"; 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) -"ahP" = (/obj/machinery/computer/prisoner,/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"ahQ" = (/obj/machinery/computer/security,/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"ahR" = (/obj/machinery/computer/secure_data,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"ahS" = (/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"ahT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"ahU" = (/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) -"ahV" = (/obj/structure/table,/obj/machinery/recharger,/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"ahW" = (/obj/structure/table,/obj/machinery/syndicatebomb/training,/obj/item/weapon/gun/energy/laser/practice,/turf/open/floor/plasteel/red/side{dir = 9},/area/security/main) -"ahX" = (/turf/open/floor/plasteel/red/side{dir = 1},/area/security/main) -"ahY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side{dir = 1},/area/security/main) -"ahZ" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/main) -"aia" = (/obj/machinery/requests_console{department = "Security"; departmentType = 5; pixel_y = 30},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/main) -"aib" = (/obj/effect/landmark/start{name = "Security Officer"},/turf/open/floor/plasteel/red/corner{dir = 1},/area/security/main) -"aic" = (/obj/structure/table,/obj/item/device/assembly/flash/handheld,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/security/main) -"aid" = (/obj/machinery/hologram/holopad,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/security/main) -"aie" = (/obj/structure/table,/obj/item/weapon/folder/red,/obj/item/weapon/pen,/turf/open/floor/plasteel,/area/security/main) -"aif" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/main) -"aig" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/black,/area/security/prison) -"aih" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/security/prison) -"aii" = (/obj/machinery/airalarm{pixel_y = 23},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/security/prison) -"aij" = (/obj/item/weapon/cigbutt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/black,/area/security/prison) -"aik" = (/turf/open/floor/plasteel/black,/area/security/prison) -"ail" = (/obj/item/clothing/gloves/color/latex,/obj/item/clothing/mask/surgical,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/structure/table/glass,/turf/open/floor/plasteel/whitered/side{dir = 9},/area/security/brig) -"aim" = (/obj/item/weapon/storage/firstaid/regular{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/regular,/obj/structure/table/glass,/turf/open/floor/plasteel/whitered/side{dir = 1},/area/security/brig) -"ain" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 24},/obj/structure/table/glass,/obj/machinery/computer/med_data/laptop,/turf/open/floor/plasteel/whitered/side{dir = 1},/area/security/brig) -"aio" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/iv_drip{density = 0},/obj/item/weapon/reagent_containers/blood/empty,/turf/open/floor/plasteel/whitered/side{dir = 5},/area/security/brig) -"aip" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side{dir = 9},/area/security/brig) -"aiq" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/red/side{dir = 5},/area/security/brig) -"air" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/warden) -"ais" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"ait" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"aiu" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"aiv" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"aiw" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"aix" = (/obj/structure/table,/obj/machinery/recharger,/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"aiy" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/warden) -"aiz" = (/obj/structure/table,/obj/item/weapon/storage/fancy/donut_box,/turf/open/floor/plasteel/red/side{dir = 8},/area/security/main) -"aiA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/security/main) -"aiB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/security/main) -"aiC" = (/obj/effect/landmark/start{name = "Security Officer"},/turf/open/floor/plasteel,/area/security/main) -"aiD" = (/obj/structure/table,/obj/item/weapon/book/manual/wiki/security_space_law,/obj/item/weapon/book/manual/wiki/security_space_law,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/security/main) -"aiE" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/security/main) -"aiF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/security/main) -"aiG" = (/obj/structure/disposalpipe/sortjunction{dir = 4; icon_state = "pipe-j2s"; sortType = 8},/turf/open/floor/plasteel,/area/security/main) -"aiH" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/turf/open/floor/plasteel,/area/security/main) -"aiI" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/landmark/start{name = "Security Officer"},/obj/structure/chair{dir = 8},/turf/open/floor/plasteel,/area/security/main) -"aiJ" = (/obj/structure/disposalpipe/sortjunction{dir = 4; icon_state = "pipe-j2s"; sortType = 7},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/main) -"aiK" = (/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},/turf/open/floor/plasteel/delivery,/area/security/main) -"aiL" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; dir = 8; freq = 1400; location = "Security"},/obj/structure/plasticflaps{opacity = 1},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/bot,/area/security/main) -"aiM" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/fsmaint) -"aiN" = (/turf/closed/wall,/area/maintenance/fsmaint) -"aiO" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/black,/area/security/prison) -"aiP" = (/obj/structure/table,/obj/item/device/flashlight/lamp,/turf/open/floor/plasteel/black,/area/security/prison) -"aiQ" = (/obj/structure/chair{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/security/prison) -"aiR" = (/obj/item/weapon/storage/box/bodybags,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/item/weapon/reagent_containers/syringe{name = "steel point"},/obj/item/weapon/reagent_containers/glass/bottle/charcoal,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine,/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/table/glass,/turf/open/floor/plasteel/whitered/side{dir = 10},/area/security/brig) -"aiS" = (/turf/open/floor/plasteel/whitered/corner{tag = "icon-whiteredcorner (WEST)"; dir = 8},/area/security/brig) -"aiT" = (/turf/open/floor/plasteel/white,/area/security/brig) -"aiU" = (/obj/machinery/door/window/westleft{base_state = "left"; dir = 4; icon_state = "left"; name = "Brig Infirmary"; req_access_txt = "0"},/turf/open/floor/plasteel/whitered/side{dir = 4},/area/security/brig) -"aiV" = (/obj/machinery/power/apc{dir = 8; name = "Brig Control APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"aiW" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"aiX" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"aiY" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"aiZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"aja" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"ajb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"ajc" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"ajd" = (/obj/machinery/door/airlock/glass_security{name = "Brig Control"; req_access_txt = "3"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"aje" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/main) -"ajf" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/main) -"ajg" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,/turf/open/floor/plasteel,/area/security/main) -"ajh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/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) -"aji" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/main) -"ajj" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-y"; dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/main) -"ajk" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/chair,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel,/area/security/main) -"ajl" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/main) -"ajm" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/main) -"ajn" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/main) -"ajo" = (/obj/machinery/power/apc{dir = 4; name = "Security Office APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/main) -"ajp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/security/main) -"ajq" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/fsmaint) -"ajr" = (/obj/structure/table,/obj/item/weapon/folder/red,/obj/item/device/taperecorder{pixel_y = 0},/turf/open/floor/plasteel/black,/area/security/prison) -"ajs" = (/obj/machinery/camera{c_tag = "Brig Interrogation"; dir = 8},/turf/open/floor/plasteel/black,/area/security/prison) -"ajt" = (/obj/structure/bodycontainer/morgue,/obj/machinery/camera{c_tag = "Brig Infirmary"; dir = 4},/turf/open/floor/plasteel/black,/area/security/brig) -"aju" = (/turf/open/floor/plasteel/whitered/side{dir = 8},/area/security/brig) -"ajv" = (/obj/machinery/door/window/westleft{base_state = "right"; dir = 4; icon_state = "right"; name = "Brig Infirmary"; req_access_txt = "0"},/turf/open/floor/plasteel/whitered/side{dir = 4},/area/security/brig) -"ajw" = (/obj/structure/closet/secure_closet/warden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"ajx" = (/obj/structure/table,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"ajy" = (/obj/structure/chair/office/dark,/obj/effect/landmark/start{name = "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; req_access_txt = "0"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"ajz" = (/obj/structure/table,/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"ajA" = (/obj/structure/table,/obj/item/weapon/folder/red,/obj/item/weapon/pen,/obj/item/weapon/hand_labeler,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/weapon/book/manual/wiki/security_space_law,/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"ajB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"ajC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/filingcabinet/chestdrawer,/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"ajD" = (/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) -"ajE" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/warden) -"ajF" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/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) -"ajG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/red/side,/area/security/main) -"ajH" = (/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) -"ajI" = (/obj/machinery/light_switch{pixel_y = -23},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/red/side,/area/security/main) -"ajJ" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/red/side,/area/security/main) -"ajK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/red/side,/area/security/main) -"ajL" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/red/side,/area/security/main) -"ajM" = (/obj/machinery/camera{c_tag = "Security Office"; dir = 1; network = list("SS13")},/obj/machinery/computer/secure_data,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/red/side,/area/security/main) -"ajN" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/machinery/computer/security,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/red/side,/area/security/main) -"ajO" = (/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) -"ajP" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/red/side,/area/security/main) -"ajQ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/red/side,/area/security/main) -"ajR" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/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) -"ajS" = (/obj/machinery/door/airlock/maintenance{name = "Security Maintenance"; req_access_txt = "1"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/security/main) -"ajT" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint) -"ajU" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/fsmaint) -"ajV" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/fsmaint) -"ajW" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/security/prison) -"ajX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/security/prison) -"ajY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/security/prison) -"ajZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/black,/area/security/prison) -"aka" = (/obj/structure/bodycontainer/morgue,/turf/open/floor/plasteel/black,/area/security/brig) -"akb" = (/turf/open/floor/plasteel/whitered/side{dir = 10},/area/security/brig) -"akc" = (/obj/structure/bed,/obj/item/clothing/suit/straight_jacket,/turf/open/floor/plasteel/whitered/side,/area/security/brig) -"akd" = (/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) -"ake" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_x = -32},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/warden) -"akf" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/warden) -"akg" = (/obj/structure/table/reinforced,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 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/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen{pixel_x = 4; pixel_y = 4},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"akh" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/warden) -"aki" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/warden) -"akj" = (/obj/machinery/door/airlock/glass_security{name = "Brig Control"; req_access_txt = "3"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"akk" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable,/turf/open/floor/plating,/area/security/warden) -"akl" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/security{name = "Security Office"; req_access = null; req_access_txt = "1"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/security/main) -"akm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/security/main) -"akn" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint) -"ako" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint) -"akp" = (/obj/item/stack/rods,/turf/open/space,/area/space) -"akq" = (/turf/closed/wall,/area/security/processing) -"akr" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/processing) -"aks" = (/obj/machinery/door/airlock/security{name = "Interrogation"; req_access = null; req_access_txt = "63"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/security/prison) -"akt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/corner{dir = 1},/area/security/brig) -"aku" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/red/corner{dir = 4},/area/security/brig) -"akv" = (/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) -"akw" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) -"akx" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) -"aky" = (/obj/structure/sign/goldenplaque{pixel_y = 32},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) -"akz" = (/obj/machinery/camera{c_tag = "Brig East"},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) -"akA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) -"akB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) -"akC" = (/turf/open/floor/plasteel/red/side{dir = 5},/area/security/brig) -"akD" = (/turf/closed/wall/r_wall,/area/security/brig) -"akE" = (/obj/machinery/light_switch{pixel_y = 28},/obj/structure/closet/secure_closet/courtroom,/obj/effect/decal/cleanable/cobweb,/obj/structure/sign/securearea{pixel_x = -32},/obj/item/weapon/gavelhammer,/turf/open/floor/plasteel,/area/crew_quarters/courtroom) -"akF" = (/obj/item/device/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 = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/crew_quarters/courtroom) -"akG" = (/obj/structure/chair{name = "Judge"},/turf/open/floor/plasteel/blue/side{dir = 9},/area/crew_quarters/courtroom) -"akH" = (/obj/structure/chair{name = "Judge"},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/blue/side{dir = 1},/area/crew_quarters/courtroom) -"akI" = (/obj/structure/chair{name = "Judge"},/turf/open/floor/plasteel/blue/side{dir = 5},/area/crew_quarters/courtroom) -"akJ" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/turf/open/floor/plasteel,/area/crew_quarters/courtroom) -"akK" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) -"akL" = (/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) -"akM" = (/turf/closed/wall,/area/crew_quarters/courtroom) -"akN" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxport) -"akO" = (/obj/machinery/gulag_teleporter,/turf/open/floor/plasteel,/area/security/processing) -"akP" = (/obj/machinery/computer/gulag_teleporter_computer,/turf/open/floor/plasteel,/area/security/processing) -"akQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/machinery/computer/security{name = "Labor Camp Monitoring"; network = list("Labor")},/turf/open/floor/plasteel,/area/security/processing) -"akR" = (/obj/structure/sign/securearea{pixel_x = 32; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/table,/obj/item/weapon/storage/box/prisoner,/obj/machinery/camera{c_tag = "Labor Shuttle Dock North"},/turf/open/floor/plasteel,/area/security/processing) -"akS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/security/brig) -"akT" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/side{dir = 9},/area/security/brig) -"akU" = (/obj/machinery/power/apc{dir = 1; name = "Labor Shuttle Dock APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) -"akV" = (/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) -"akW" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) -"akX" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) -"akY" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/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) -"akZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/corner{dir = 1},/area/security/brig) -"ala" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/brig) -"alb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel,/area/security/brig) -"alc" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel,/area/security/brig) -"ald" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/security/brig) -"ale" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/brig) -"alf" = (/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,/turf/open/floor/plasteel,/area/security/brig) -"alg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/brig) -"alh" = (/obj/structure/cable{d1 = 1; d2 = 2; 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) -"ali" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/brig) -"alj" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/security{name = "Brig"; req_access = null; req_access_txt = "63; 42"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/brig) -"alk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/courtroom) -"all" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side{dir = 9},/area/crew_quarters/courtroom) -"alm" = (/obj/structure/table/wood,/obj/item/device/radio/intercom{broadcasting = 0; dir = 8; listening = 1; name = "Station Intercom (Court)"; pixel_x = 0},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/crew_quarters/courtroom) -"aln" = (/obj/structure/table/wood,/obj/item/weapon/gavelblock,/turf/open/floor/plasteel/neutral/side{dir = 1},/area/crew_quarters/courtroom) -"alo" = (/obj/structure/table/wood,/obj/item/weapon/book/manual/wiki/security_space_law,/turf/open/floor/plasteel/neutral/side{dir = 1},/area/crew_quarters/courtroom) -"alp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/neutral/side{dir = 5},/area/crew_quarters/courtroom) -"alq" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/vault{dir = 8},/area/crew_quarters/courtroom) -"alr" = (/obj/machinery/door/window/southleft{name = "Court Cell"; req_access_txt = "2"},/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) -"als" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/auxsolarport) -"alt" = (/obj/machinery/door/airlock/external{name = "Solar Maintenance"; req_access = null; req_access_txt = "10; 13"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/auxsolarport) -"alu" = (/turf/open/space,/turf/closed/wall/shuttle{icon_state = "swall_f6"; dir = 2},/area/shuttle/labor) -"alv" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/labor) -"alw" = (/turf/open/space,/turf/closed/wall/shuttle{dir = 2; icon_state = "swall_f10"; layer = 2},/area/shuttle/labor) -"alx" = (/turf/closed/wall/r_wall,/area/security/processing) -"aly" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/warning/corner{dir = 1},/area/security/processing) -"alz" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel,/area/security/processing) -"alA" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/security/processing) -"alB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel,/area/security/processing) -"alC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/security{name = "Labor Shuttle"; req_access = null; req_access_txt = "2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/brig) -"alD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/brig) -"alE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/brig) -"alF" = (/obj/structure/cable{d1 = 4; d2 = 8; 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) -"alG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/red/side,/area/security/brig) -"alH" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; 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) -"alI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/brig) -"alJ" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/red/corner{dir = 2},/area/security/brig) -"alK" = (/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) -"alL" = (/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) -"alM" = (/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel/red/corner{dir = 2},/area/security/brig) -"alN" = (/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) -"alO" = (/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) -"alP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/red/side,/area/security/brig) -"alQ" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/red/side{dir = 9},/area/security/brig) -"alR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/brig) -"alS" = (/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) -"alT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/red/corner{dir = 8},/area/security/brig) -"alU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/security/brig) -"alV" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/brig) -"alW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall/r_wall,/area/security/brig) -"alX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/courtroom) -"alY" = (/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/crew_quarters/courtroom) -"alZ" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side{dir = 4},/area/crew_quarters/courtroom) -"ama" = (/turf/open/floor/plasteel,/area/crew_quarters/courtroom) -"amb" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/auxsolarport) -"amc" = (/turf/closed/wall/shuttle{icon_state = "swall3"; dir = 2},/area/shuttle/labor) -"amd" = (/obj/machinery/computer/shuttle/labor,/obj/structure/reagent_dispensers/peppertank{pixel_x = -31; pixel_y = 0},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/labor) -"ame" = (/obj/structure/chair/office/dark{dir = 1},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/labor) -"amf" = (/obj/structure/table,/obj/item/weapon/folder/red,/obj/item/weapon/restraints/handcuffs,/turf/open/floor/plasteel/shuttle/red,/area/shuttle/labor) -"amg" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/processing) -"amh" = (/turf/open/floor/plasteel/warning{dir = 8},/area/security/processing) -"ami" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel,/area/security/processing) -"amj" = (/obj/structure/cable{d1 = 1; d2 = 2; 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) -"amk" = (/obj/machinery/light_switch{pixel_x = 27},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/processing) -"aml" = (/obj/machinery/door/airlock/glass_security{id_tag = null; name = "Evidence Storage"; req_access_txt = "63"},/turf/open/floor/plasteel/red/side,/area/security/brig) -"amm" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/brig) -"amn" = (/obj/machinery/door/window/brigdoor{id = "Cell 1"; name = "Cell 1"; req_access_txt = "1"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/red/side,/area/security/brig) -"amo" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/brig) -"amp" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/closed/wall,/area/security/brig) -"amq" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/brig) -"amr" = (/obj/machinery/door/window/brigdoor{id = "Cell 2"; name = "Cell 2"; req_access_txt = "1"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/red/side,/area/security/brig) -"ams" = (/obj/machinery/door/window/brigdoor{id = "Cell 3"; name = "Cell 3"; req_access_txt = "1"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/red/side,/area/security/brig) -"amt" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/brig) -"amu" = (/obj/machinery/door/airlock/glass_security{name = "Brig Desk"; req_access_txt = "1"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/black,/area/security/brig) -"amv" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/brig) -"amw" = (/obj/machinery/door/airlock/glass_security{id_tag = "innerbrig"; name = "Brig"; req_access_txt = "63"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/red/side{dir = 9},/area/security/brig) -"amx" = (/obj/machinery/door/airlock/glass_security{id_tag = "innerbrig"; name = "Brig"; req_access_txt = "63"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/brig) -"amy" = (/obj/structure/grille,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/brig) -"amz" = (/obj/machinery/door/window/brigdoor{id = "Cell 4"; name = "Cell 4"; req_access_txt = "1"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side,/area/security/brig) -"amA" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/brig) -"amB" = (/obj/structure/chair{dir = 4; name = "Prosecution"},/turf/open/floor/plasteel/red/side{dir = 9},/area/crew_quarters/courtroom) -"amC" = (/obj/structure/table/wood,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/side{dir = 8},/area/crew_quarters/courtroom) -"amD" = (/obj/machinery/hologram/holopad,/turf/open/floor/plasteel/bot,/area/crew_quarters/courtroom) -"amE" = (/obj/structure/table/wood,/obj/item/weapon/folder/blue,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/neutral/side{dir = 4},/area/crew_quarters/courtroom) -"amF" = (/obj/structure/chair{dir = 8; name = "Defense"},/turf/open/floor/plasteel/green/side{dir = 5},/area/crew_quarters/courtroom) -"amG" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxstarboard) -"amH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/external{name = "Solar Maintenance"; req_access = null; req_access_txt = "10; 13"},/turf/open/floor/plating,/area/maintenance/auxsolarport) -"amI" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/fpmaint2) -"amJ" = (/obj/structure/grille,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/labor) -"amK" = (/turf/open/floor/plasteel/shuttle/red,/area/shuttle/labor) -"amL" = (/obj/machinery/button/flasher{id = "gulagshuttleflasher"; name = "Flash Control"; pixel_x = 0; pixel_y = -26; req_access_txt = "1"},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/labor) -"amM" = (/obj/machinery/mineral/labor_claim_console{machinedir = 2; pixel_x = 30; pixel_y = 30},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/labor) -"amN" = (/obj/machinery/door/airlock/shuttle{name = "Labor Shuttle Airlock"; req_access_txt = "2"},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/labor) -"amO" = (/obj/machinery/door/airlock/external{name = "Labor Camp Shuttle Airlock"; req_access_txt = "2"},/turf/open/floor/plating,/area/security/processing) -"amP" = (/turf/open/floor/plating,/area/security/processing) -"amQ" = (/turf/open/floor/plasteel,/area/security/processing) -"amR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/security/processing) -"amS" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/security/processing) -"amT" = (/obj/structure/closet{name = "Evidence Closet"},/turf/open/floor/plasteel/red/side{dir = 9},/area/security/brig) -"amU" = (/obj/structure/closet{name = "Evidence Closet"},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/brig) -"amV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/item/device/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) -"amW" = (/turf/open/floor/plasteel/floorgrime,/area/security/brig) -"amX" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/security/brig) -"amY" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/item/device/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) -"amZ" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/floorgrime,/area/security/brig) -"ana" = (/obj/machinery/button/door{id = "briggate"; name = "Desk Shutters"; pixel_x = -26; pixel_y = 6; req_access_txt = "0"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/button/flasher{id = "brigentry"; pixel_x = -28; pixel_y = -8},/turf/open/floor/plasteel/black,/area/security/brig) -"anb" = (/obj/machinery/computer/secure_data,/turf/open/floor/plasteel/black,/area/security/brig) -"anc" = (/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/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/open/floor/plasteel/black,/area/security/brig) -"and" = (/turf/open/floor/plasteel/red/side{dir = 9},/area/security/brig) -"ane" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/floorgrime,/area/security/brig) -"anf" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/machinery/flasher{id = "Cell 4"; pixel_x = 28},/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/security/brig) -"ang" = (/obj/structure/chair{dir = 4; name = "Prosecution"},/turf/open/floor/plasteel/red/side{dir = 10},/area/crew_quarters/courtroom) -"anh" = (/obj/structure/table/wood,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/side{dir = 10},/area/crew_quarters/courtroom) -"ani" = (/turf/open/floor/plasteel/neutral/side,/area/crew_quarters/courtroom) -"anj" = (/obj/item/device/radio/beacon,/turf/open/floor/plasteel/neutral/side,/area/crew_quarters/courtroom) -"ank" = (/obj/structure/table/wood,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/neutral/side{dir = 6},/area/crew_quarters/courtroom) -"anl" = (/obj/structure/chair{dir = 8; name = "Defense"},/turf/open/floor/plasteel/green/side{dir = 6},/area/crew_quarters/courtroom) -"anm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxstarboard) -"ann" = (/turf/closed/wall,/area/maintenance/fsmaint2) -"ano" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"anp" = (/turf/closed/wall/r_wall,/area/maintenance/auxsolarport) -"anq" = (/obj/machinery/power/solar_control{id = "auxsolareast"; name = "Fore Port Solar Control"; track = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating,/area/maintenance/auxsolarport) -"anr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating,/area/maintenance/auxsolarport) -"ans" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 32; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/auxsolarport) -"ant" = (/turf/closed/wall,/area/maintenance/fpmaint2) -"anu" = (/obj/effect/decal/cleanable/vomit,/turf/open/floor/plating,/area/maintenance/fpmaint2) -"anv" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating,/area/maintenance/fpmaint2) -"anw" = (/obj/item/weapon/cigbutt/cigarbutt,/obj/effect/decal/cleanable/blood/old,/turf/open/floor/plating,/area/maintenance/fpmaint2) -"anx" = (/obj/machinery/door/airlock/shuttle{name = "Labor Shuttle Airlock"; req_access_txt = "2"},/turf/open/floor/plasteel/black,/area/shuttle/labor) -"any" = (/turf/closed/wall/shuttle,/area/shuttle/labor) -"anz" = (/obj/machinery/mineral/stacking_machine/laborstacker{input_dir = 2; output_dir = 1},/turf/open/floor/plasteel/black,/area/shuttle/labor) -"anA" = (/obj/machinery/computer/shuttle/labor,/turf/open/floor/plasteel/warning{dir = 8},/area/security/processing) -"anB" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/security/processing) -"anC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/processing) -"anD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/security/processing) -"anE" = (/obj/structure/closet{name = "Evidence Closet"},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/brig) -"anF" = (/turf/open/floor/plasteel,/area/security/brig) -"anG" = (/obj/structure/closet{name = "Evidence Closet"},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/brig) -"anH" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/flasher{id = "Cell 1"; pixel_x = -28},/turf/open/floor/plasteel/floorgrime,/area/security/brig) -"anI" = (/obj/structure/closet/secure_closet/brig{id = "Cell 1"; name = "Cell 1 Locker"},/turf/open/floor/plasteel/floorgrime,/area/security/brig) -"anJ" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/machinery/flasher{id = "Cell 2"; pixel_x = -28},/turf/open/floor/plasteel/floorgrime,/area/security/brig) -"anK" = (/obj/structure/closet/secure_closet/brig{id = "Cell 2"; name = "Cell 2 Locker"},/turf/open/floor/plasteel/floorgrime,/area/security/brig) -"anL" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/machinery/flasher{id = "Cell 3"; pixel_x = -28},/turf/open/floor/plasteel/floorgrime,/area/security/brig) -"anM" = (/obj/structure/closet/secure_closet/brig{id = "Cell 3"; name = "Cell 3 Locker"},/turf/open/floor/plasteel/floorgrime,/area/security/brig) -"anN" = (/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{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/security/brig) -"anO" = (/obj/structure/chair/office/dark{dir = 4},/turf/open/floor/plasteel/black,/area/security/brig) -"anP" = (/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/weapon/restraints/handcuffs,/obj/item/device/radio/off,/turf/open/floor/plasteel/black,/area/security/brig) -"anQ" = (/obj/machinery/flasher{id = "brigentry"; pixel_x = 28},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/brig) -"anR" = (/obj/structure/closet/secure_closet/brig{id = "Cell 4"; name = "Cell 4 Locker"},/turf/open/floor/plasteel/floorgrime,/area/security/brig) -"anS" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/floorgrime,/area/security/brig) -"anT" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/item/device/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) -"anU" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/courtroom) -"anV" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/courtroom) -"anW" = (/obj/machinery/door/airlock/glass{name = "Courtroom"; req_access_txt = "42"},/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) -"anX" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/crew_quarters/courtroom) -"anY" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/auxsolarstarboard) -"anZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/external{name = "Solar Maintenance"; req_access = null; req_access_txt = "10; 13"},/turf/open/floor/plating,/area/maintenance/auxsolarstarboard) -"aoa" = (/obj/structure/chair{dir = 1},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aob" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plating,/area/maintenance/auxsolarport) -"aoc" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating,/area/maintenance/auxsolarport) -"aod" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/terminal,/obj/machinery/light/small{dir = 4},/turf/open/floor/plating,/area/maintenance/auxsolarport) -"aoe" = (/obj/machinery/atmospherics/components/unary/tank/air{dir = 2},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"aof" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"aog" = (/turf/open/floor/plating,/area/maintenance/fpmaint2) -"aoh" = (/obj/structure/bed,/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/item/weapon/bedsheet,/turf/open/floor/plating,/area/maintenance/fpmaint2) -"aoi" = (/obj/machinery/computer/slot_machine{balance = 15; money = 500},/obj/item/weapon/coin/iron,/obj/item/weapon/coin/diamond,/obj/item/weapon/coin/diamond,/obj/item/weapon/coin/diamond,/turf/open/floor/plating,/area/maintenance/fpmaint2) -"aoj" = (/obj/structure/chair{dir = 1},/obj/item/toy/sword,/turf/open/floor/plating,/area/maintenance/fpmaint2) -"aok" = (/obj/structure/chair{dir = 1},/obj/structure/noticeboard{dir = 8; pixel_x = 27; pixel_y = 0},/obj/item/trash/plate,/turf/open/floor/plating,/area/maintenance/fpmaint2) -"aol" = (/turf/open/floor/plasteel/shuttle,/area/shuttle/labor) -"aom" = (/obj/machinery/mineral/labor_claim_console{machinedir = 1; pixel_x = 30; pixel_y = 0},/turf/open/floor/plasteel/shuttle,/area/shuttle/labor) -"aon" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/turf/closed/wall,/area/security/processing) -"aoo" = (/obj/machinery/door/airlock/glass_security{name = "Prisoner Processing"; req_access_txt = "2"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/security/processing) -"aop" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/processing) -"aoq" = (/obj/structure/closet{name = "Evidence Closet"},/turf/open/floor/plasteel/red/side{dir = 10},/area/security/brig) -"aor" = (/obj/machinery/light,/turf/open/floor/plasteel/red/side,/area/security/brig) -"aos" = (/obj/structure/closet{name = "Evidence Closet"},/turf/open/floor/plasteel/red/side{dir = 6},/area/security/brig) -"aot" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/grille,/obj/structure/cable,/obj/machinery/door/poddoor/preopen{id = "Secure Gate"; name = "brig shutters"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/brig) -"aou" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "Secure Gate"; name = "brig shutters"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/brig) -"aov" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/closed/wall/r_wall,/area/security/brig) -"aow" = (/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{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/black,/area/security/brig) -"aox" = (/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{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/black,/area/security/brig) -"aoy" = (/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "briggate"; name = "security blast door"},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/brig) -"aoz" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{id_tag = "outerbrig"; name = "Brig"; req_access_txt = "63"},/turf/open/floor/plasteel/red/side{dir = 9},/area/security/brig) -"aoA" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{id_tag = "outerbrig"; name = "Brig"; req_access_txt = "63"},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/brig) -"aoB" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) -"aoC" = (/obj/structure/chair{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) -"aoD" = (/obj/structure/chair{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) -"aoE" = (/obj/structure/disposalpipe/segment,/obj/machinery/power/apc{dir = 8; name = "Courtroom APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/crew_quarters/courtroom) -"aoF" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint) -"aoG" = (/obj/machinery/light/small{dir = 4},/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fsmaint) -"aoH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/auxsolarstarboard) -"aoI" = (/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aoJ" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 8; name = "Fore Port Solar APC"; pixel_x = -25; pixel_y = 3},/obj/machinery/camera{c_tag = "Fore Port Solar Control"; dir = 1},/turf/open/floor/plating,/area/maintenance/auxsolarport) -"aoK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating,/area/maintenance/auxsolarport) -"aoL" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/smes,/turf/open/floor/plating,/area/maintenance/auxsolarport) -"aoM" = (/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{icon_state = "manifold"; dir = 8},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"aoN" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 9},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"aoO" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"aoP" = (/obj/item/trash/sosjerky,/turf/open/floor/plating,/area/maintenance/fpmaint2) -"aoQ" = (/obj/item/weapon/electronics/airalarm,/obj/item/weapon/circuitboard/machine/seed_extractor,/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance{lootcount = 4; name = "4maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"aoR" = (/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/fpmaint2) -"aoS" = (/obj/item/weapon/cigbutt,/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/fpmaint2) -"aoT" = (/obj/structure/chair{dir = 8},/obj/machinery/flasher{id = "gulagshuttleflasher"; pixel_x = 25},/turf/open/floor/plasteel/shuttle,/area/shuttle/labor) -"aoU" = (/obj/machinery/gulag_item_reclaimer{pixel_y = 24},/turf/open/floor/plasteel/warning{dir = 9},/area/security/processing) -"aoV" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/processing) -"aoW" = (/obj/structure/cable{d1 = 1; d2 = 2; 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) -"aoX" = (/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; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/processing) -"aoY" = (/turf/open/floor/plasteel/red/corner{dir = 1},/area/hallway/primary/fore) -"aoZ" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/turf/open/floor/plasteel/red/corner{dir = 1},/area/hallway/primary/fore) -"apa" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/red/corner{dir = 1},/area/hallway/primary/fore) -"apb" = (/turf/open/floor/plasteel,/area/hallway/primary/fore) -"apc" = (/obj/machinery/light{dir = 1},/obj/structure/sign/securearea{pixel_y = 32},/turf/open/floor/plasteel/red/corner{dir = 4},/area/hallway/primary/fore) -"apd" = (/turf/open/floor/plasteel/red/corner{dir = 4},/area/hallway/primary/fore) -"ape" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/crew_quarters/courtroom) -"apf" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint) -"apg" = (/turf/open/floor/plating,/area/maintenance/fsmaint) -"aph" = (/obj/machinery/door/airlock/external{req_access_txt = "13"},/turf/open/floor/plating,/area/maintenance/fsmaint) -"api" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/open/floor/plating,/area/maintenance/fsmaint) -"apj" = (/obj/machinery/door/airlock/engineering{icon_state = "door_closed"; locked = 0; name = "Fore Port Solar Access"; req_access_txt = "10"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/auxsolarport) -"apk" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 0},/turf/closed/wall/r_wall,/area/maintenance/auxsolarport) -"apl" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 1},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"apm" = (/obj/effect/decal/cleanable/egg_smudge,/turf/open/floor/plating,/area/maintenance/fpmaint2) -"apn" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fpmaint2) -"apo" = (/obj/structure/closet/crate,/turf/open/floor/plasteel/shuttle,/area/shuttle/labor) -"app" = (/obj/machinery/door/airlock/shuttle{id_tag = "prisonshuttle"; name = "Labor Shuttle Airlock"},/obj/docking_port/mobile{dir = 8; dwidth = 2; height = 5; id = "laborcamp"; name = "labor camp shuttle"; travelDir = 90; width = 9},/obj/docking_port/stationary{dir = 8; dwidth = 2; height = 5; id = "laborcamp_home"; name = "fore bay 1"; width = 9},/turf/open/floor/plasteel/shuttle,/area/shuttle/labor) -"apq" = (/obj/machinery/door/airlock/external{name = "Labor Camp Shuttle Airlock"},/turf/open/floor/plating,/area/security/processing) -"apr" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/security{id_tag = "laborexit"; name = "Labor Shuttle"; req_access = null; req_access_txt = "63"},/turf/open/floor/plasteel,/area/security/processing) -"aps" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/fore) -"apt" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hallway/primary/fore) -"apu" = (/obj/machinery/hologram/holopad,/turf/open/floor/plasteel,/area/hallway/primary/fore) -"apv" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/turf/open/floor/plasteel,/area/hallway/primary/fore) -"apw" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Courtroom"},/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) -"apx" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) -"apy" = (/obj/machinery/light/small,/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) -"apz" = (/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) -"apA" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -32},/obj/machinery/camera{c_tag = "Courtroom South"; dir = 1},/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) -"apB" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) -"apC" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/fsmaint) -"apD" = (/obj/structure/disposalpipe/segment,/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint) -"apE" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/fsmaint) -"apF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/maintenance/fsmaint) -"apG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/closed/wall,/area/maintenance/fsmaint) -"apH" = (/turf/closed/wall/r_wall,/area/maintenance/auxsolarstarboard) -"apI" = (/obj/machinery/power/solar_control{id = "auxsolareast"; name = "Fore Starboard Solar Control"; track = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating,/area/maintenance/auxsolarstarboard) -"apJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating,/area/maintenance/auxsolarstarboard) -"apK" = (/obj/structure/rack,/obj/item/clothing/mask/gas,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/item/device/multitool,/turf/open/floor/plating,/area/maintenance/auxsolarstarboard) -"apL" = (/obj/machinery/camera{c_tag = "Fore Port Solar Access"},/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"apM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"apN" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 6},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"apO" = (/obj/machinery/atmospherics/components/binary/valve{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"apP" = (/obj/structure/chair,/turf/open/floor/plating,/area/maintenance/fpmaint2) -"apQ" = (/obj/structure/rack,/obj/item/weapon/circuitboard/machine/monkey_recycler,/turf/open/floor/plating,/area/maintenance/fpmaint2) -"apR" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1; layer = 2.9},/turf/open/floor/plating/airless,/area/shuttle/labor) -"apS" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/processing) -"apT" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/warning{dir = 10},/area/security/processing) -"apU" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/red/side{dir = 6},/area/security/processing) -"apV" = (/obj/structure/cable{d1 = 1; d2 = 4; 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) -"apW" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/red/side{dir = 6},/area/security/processing) -"apX" = (/turf/open/floor/plasteel/red/corner{dir = 8},/area/hallway/primary/fore) -"apY" = (/obj/machinery/camera{c_tag = "Fore Primary Hallway West"; dir = 1},/turf/open/floor/plasteel/red/corner{dir = 8},/area/hallway/primary/fore) -"apZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/corner{dir = 8},/area/hallway/primary/fore) -"aqa" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=EVA"; location = "Security"},/turf/open/floor/plasteel,/area/hallway/primary/fore) -"aqb" = (/turf/open/floor/plasteel/red/corner{dir = 2},/area/hallway/primary/fore) -"aqc" = (/obj/item/device/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) -"aqd" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/plasteel/red/corner{dir = 2},/area/hallway/primary/fore) -"aqe" = (/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) -"aqf" = (/obj/machinery/vending/coffee,/turf/open/floor/plasteel/red/corner{dir = 2},/area/hallway/primary/fore) -"aqg" = (/obj/machinery/vending/snack,/turf/open/floor/plasteel/red/corner{dir = 2},/area/hallway/primary/fore) -"aqh" = (/obj/machinery/vending/cigarette,/turf/open/floor/plasteel/red/corner{dir = 2},/area/hallway/primary/fore) -"aqi" = (/obj/structure/table,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) -"aqj" = (/obj/structure/table,/obj/item/weapon/book/manual/wiki/security_space_law{pixel_x = -3; pixel_y = 5},/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) -"aqk" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/fsmaint) -"aql" = (/obj/machinery/light/small{dir = 8},/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plating/warnplate{dir = 9},/area/maintenance/fsmaint) -"aqm" = (/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "Air Out"; on = 1},/turf/open/floor/plating/warnplate{dir = 5},/area/maintenance/fsmaint) -"aqn" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plating,/area/maintenance/auxsolarstarboard) -"aqo" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating,/area/maintenance/auxsolarstarboard) -"aqp" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/terminal,/obj/machinery/light/small{dir = 4},/turf/open/floor/plating,/area/maintenance/auxsolarstarboard) -"aqq" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aqr" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aqs" = (/obj/docking_port/stationary/random{id = "pod_asteroid1"; name = "asteroid"},/turf/open/space,/area/space) -"aqt" = (/obj/docking_port/stationary/random{id = "pod_asteroid2"; name = "asteroid"},/turf/open/space,/area/space) -"aqu" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plating,/area/maintenance/fpmaint2) -"aqv" = (/obj/machinery/atmospherics/components/trinary/filter{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"aqw" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 8},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"aqx" = (/obj/structure/bed,/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"aqy" = (/turf/open/space,/area/space/nearstation) -"aqz" = (/obj/structure/lattice,/turf/open/space,/area/space/nearstation) -"aqA" = (/turf/open/floor/plasteel/airless,/area/space/nearstation) -"aqB" = (/obj/structure/table,/obj/item/weapon/stamp,/obj/item/weapon/poster/legit,/turf/open/floor/plating,/area/maintenance/fpmaint2) -"aqC" = (/obj/structure/closet/emcloset,/turf/open/floor/plating,/area/maintenance/fpmaint2) -"aqD" = (/turf/open/space,/turf/closed/wall/shuttle{icon_state = "swall_f5"; dir = 2},/area/shuttle/labor) -"aqE" = (/obj/structure/shuttle/engine/propulsion,/turf/open/floor/plating/airless,/area/shuttle/labor) -"aqF" = (/turf/open/space,/turf/closed/wall/shuttle{icon_state = "swall_f9"; dir = 2},/area/shuttle/labor) -"aqG" = (/obj/structure/plasticflaps,/turf/open/floor/plating,/area/security/processing) -"aqH" = (/obj/machinery/door/airlock/maintenance{name = "Security Maintenance"; req_access_txt = "2"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/security/processing) -"aqI" = (/turf/closed/wall,/area/security/vacantoffice2) -"aqJ" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/engineering{name = "Vacant Office B"; req_access_txt = "32"},/turf/open/floor/plating,/area/security/vacantoffice2) -"aqK" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint) -"aqL" = (/turf/closed/wall,/area/lawoffice) -"aqM" = (/obj/machinery/door/airlock{name = "Law Office"; req_access_txt = "38"},/turf/open/floor/plasteel,/area/lawoffice) -"aqN" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/red/corner{dir = 1},/area/hallway/primary/fore) -"aqO" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/hallway/primary/fore) -"aqP" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/red/corner{dir = 4},/area/hallway/primary/fore) -"aqQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/closed/wall,/area/maintenance/fsmaint) -"aqR" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/closed/wall,/area/maintenance/fsmaint) -"aqS" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/closed/wall,/area/maintenance/fsmaint) -"aqT" = (/obj/machinery/space_heater,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint) -"aqU" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/reagent_dispensers/fueltank,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint) -"aqV" = (/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/fsmaint) -"aqW" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 1; name = "Dormitory Maintenance APC"; pixel_y = 24},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint) -"aqX" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint) -"aqY" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/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/fsmaint) -"aqZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/fsmaint) -"ara" = (/obj/machinery/door/airlock/atmos{name = "Atmospherics Maintenance"; req_access_txt = "12;24"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint) -"arb" = (/obj/machinery/atmospherics/components/binary/pump{dir = 4; name = "Air In"; on = 1},/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/fsmaint) -"arc" = (/obj/item/weapon/wrench,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/fsmaint) -"ard" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 8; name = "Fore Starboard Solar APC"; pixel_x = -25; pixel_y = 3},/turf/open/floor/plating,/area/maintenance/auxsolarstarboard) -"are" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/auxsolarstarboard) -"arf" = (/obj/machinery/camera{c_tag = "Fore Starboard Solars"; dir = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/smes,/turf/open/floor/plating,/area/maintenance/auxsolarstarboard) -"arg" = (/turf/closed/wall/r_wall,/area/maintenance/fsmaint2) -"arh" = (/obj/structure/closet/wardrobe/mixed,/obj/item/clothing/shoes/jackboots,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"ari" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"arj" = (/turf/open/space,/turf/closed/wall/shuttle{icon_state = "swall_f6"; dir = 2},/area/shuttle/pod_1) -"ark" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/pod_1) -"arl" = (/turf/open/space,/turf/closed/wall/shuttle{dir = 2; icon_state = "swall_f10"; layer = 2},/area/shuttle/pod_1) -"arm" = (/turf/open/space,/turf/closed/wall/shuttle{icon_state = "swall_f6"; dir = 2},/area/shuttle/pod_2) -"arn" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/pod_2) -"aro" = (/turf/open/space,/turf/closed/wall/shuttle{dir = 2; icon_state = "swall_f10"; layer = 2},/area/shuttle/pod_2) -"arp" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/fpmaint2) -"arq" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible,/turf/open/floor/plasteel/floorgrime,/area/maintenance/fpmaint2) -"arr" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/floorgrime,/area/maintenance/fpmaint2) -"ars" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 1},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"art" = (/obj/structure/grille,/obj/structure/window/fulltile{health = 35},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"aru" = (/obj/effect/landmark{name = "carpspawn"},/obj/structure/lattice,/turf/open/space,/area/space/nearstation) -"arv" = (/obj/item/weapon/paper{info = "01001001 00100000 01101000 01101111 01110000 01100101 00100000 01111001 01101111 01110101 00100000 01110011 01110100 01100001 01111001 00100000 01110011 01100001 01100110 01100101 00101110 00100000 01001100 01101111 01110110 01100101 00101100 00100000 01101101 01101111 01101101 00101110"; name = "Note from Beepsky's Mom"},/turf/open/floor/plating,/area/security/processing) -"arw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/security/processing) -"arx" = (/obj/structure/chair,/turf/open/floor/plating,/area/security/vacantoffice2) -"ary" = (/obj/machinery/airalarm{frequency = 1439; locked = 0; pixel_y = 23},/obj/structure/chair,/turf/open/floor/plating,/area/security/vacantoffice2) -"arz" = (/turf/open/floor/plasteel,/area/security/vacantoffice2) -"arA" = (/turf/open/floor/plating,/area/security/vacantoffice2) -"arB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint) -"arC" = (/obj/machinery/light_switch{pixel_x = -20; pixel_y = 0},/obj/item/device/radio/intercom{pixel_y = 25},/turf/open/floor/wood,/area/lawoffice) -"arD" = (/obj/machinery/airalarm{pixel_y = 23},/turf/open/floor/wood,/area/lawoffice) -"arE" = (/turf/open/floor/wood,/area/lawoffice) -"arF" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/briefcase,/obj/effect/decal/cleanable/cobweb2,/turf/open/floor/wood,/area/lawoffice) -"arG" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/plasteel/red/corner{dir = 4},/area/hallway/primary/fore) -"arH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/maintenance/fsmaint) -"arI" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/fsmaint) -"arJ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint) -"arK" = (/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/fsmaint) -"arL" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/fsmaint) -"arM" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint) -"arN" = (/obj/machinery/power/apc{dir = 2; name = "Dormitory APC"; pixel_y = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/crew_quarters/sleep) -"arO" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint) -"arP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint) -"arQ" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/fsmaint) -"arR" = (/obj/structure/cable{d1 = 4; d2 = 8; 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/fsmaint) -"arS" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/light/small{dir = 4},/obj/machinery/power/apc{dir = 2; name = "Fitness Room APC"; pixel_x = 0; pixel_y = -24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/crew_quarters/fitness) -"arT" = (/obj/structure/rack{dir = 1},/obj/item/clothing/suit/fire/firefighter,/obj/item/weapon/tank/internals/oxygen,/obj/item/clothing/mask/gas,/obj/item/weapon/extinguisher,/obj/item/clothing/head/hardhat/red,/obj/item/clothing/glasses/meson,/turf/open/floor/plating/warnplate{dir = 10},/area/maintenance/fsmaint) -"arU" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 1},/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plating/warnplate{dir = 6},/area/maintenance/fsmaint) -"arV" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/fitness) -"arW" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/fitness) -"arX" = (/obj/structure/grille,/obj/effect/landmark{name = "Syndicate Breach Area"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/fitness) -"arY" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/fitness) -"arZ" = (/obj/machinery/door/airlock/external{name = "External Access"; req_access = null; req_access_txt = "13"},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"asa" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/engineering{icon_state = "door_closed"; locked = 0; name = "Fore Starboard Solar Access"; req_access_txt = "10"},/turf/open/floor/plating,/area/maintenance/auxsolarstarboard) -"asb" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 0},/turf/closed/wall/r_wall,/area/maintenance/auxsolarstarboard) -"asc" = (/obj/structure/closet/emcloset,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"asd" = (/obj/structure/table,/obj/machinery/light/small{dir = 1},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"ase" = (/obj/structure/closet/firecloset,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"asf" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"asg" = (/obj/effect/decal/cleanable/cobweb2,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"ash" = (/obj/effect/decal/cleanable/cobweb,/obj/item/weapon/coin/gold,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"asi" = (/obj/machinery/computer/slot_machine{balance = 15; money = 500},/obj/item/weapon/coin/iron,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"asj" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"ask" = (/turf/closed/wall/shuttle{icon_state = "swall3"; dir = 2},/area/shuttle/pod_1) -"asl" = (/obj/structure/chair{dir = 1},/obj/machinery/status_display{density = 0; layer = 3; pixel_x = 32; pixel_y = 0},/obj/machinery/computer/shuttle/pod{pixel_x = -32; possible_destinations = "pod_asteroid1"; shuttleId = "pod1"},/turf/open/floor/plasteel/shuttle,/area/shuttle/pod_1) -"asm" = (/turf/closed/wall/shuttle{icon_state = "swall3"; dir = 2},/area/shuttle/pod_2) -"asn" = (/obj/structure/chair{dir = 1},/obj/machinery/status_display{density = 0; layer = 3; pixel_x = 32; pixel_y = 0},/obj/machinery/computer/shuttle/pod{pixel_x = -32; possible_destinations = "pod_asteroid2"; shuttleId = "pod2"},/turf/open/floor/plasteel/shuttle,/area/shuttle/pod_2) -"aso" = (/obj/machinery/door/airlock/external{name = "External Access"; req_access = null; req_access_txt = "13"},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"asp" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/floorgrime,/area/maintenance/fpmaint2) -"asq" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 5},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"asr" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"ass" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 10},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"ast" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"asu" = (/obj/machinery/power/apc{dir = 1; name = "Arrivals North Maintenance APC"; pixel_x = -1; pixel_y = 26},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"asv" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 1},/obj/effect/landmark/event_spawn,/turf/open/floor/plating,/area/maintenance/fpmaint2) -"asw" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/fpmaint) -"asx" = (/turf/open/floor/plating,/area/maintenance/fpmaint) -"asy" = (/obj/item/weapon/bedsheet/red,/mob/living/simple_animal/bot/secbot/beepsky{name = "Officer Beepsky"},/turf/open/floor/plating,/area/security/processing) -"asz" = (/obj/machinery/light/small{dir = 4},/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/potato{name = "\improper Beepsky's emergency battery"},/turf/open/floor/plating,/area/security/processing) -"asA" = (/obj/machinery/power/apc{dir = 8; name = "Labor Shuttle Dock APC"; pixel_x = -24},/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plating,/area/security/processing) -"asB" = (/obj/structure/table/wood,/obj/item/weapon/pen,/turf/open/floor/plating,/area/security/vacantoffice2) -"asC" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/obj/structure/table/wood,/obj/item/device/flashlight/lamp,/turf/open/floor/plating,/area/security/vacantoffice2) -"asD" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/turf/open/floor/plating,/area/security/vacantoffice2) -"asE" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/requests_console{department = "Law office"; pixel_x = -32; pixel_y = 0},/obj/structure/closet/lawcloset,/turf/open/floor/wood,/area/lawoffice) -"asF" = (/obj/structure/table/wood,/obj/item/weapon/book/manual/wiki/security_space_law,/obj/item/weapon/book/manual/wiki/security_space_law,/obj/item/weapon/pen/red,/turf/open/floor/wood,/area/lawoffice) -"asG" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green{pixel_x = 1; pixel_y = 5},/turf/open/floor/wood,/area/lawoffice) -"asH" = (/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "lawyer_blast"; name = "privacy door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/lawoffice) -"asI" = (/turf/closed/wall,/area/crew_quarters/sleep) -"asJ" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint) -"asK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/maintenance/fsmaint) -"asL" = (/turf/closed/wall,/area/crew_quarters/fitness) -"asM" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint) -"asN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/crew_quarters/fitness) -"asO" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/fitness) -"asP" = (/turf/open/floor/engine{name = "Holodeck Projector Floor"},/area/holodeck/rec_center) -"asQ" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"asR" = (/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/fsmaint2) -"asS" = (/obj/machinery/power/apc{dir = 1; name = "Bar Maintenance APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"asT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"asU" = (/obj/machinery/light/small{dir = 1},/obj/machinery/camera{c_tag = "Fore Starboard Solar Access"},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"asV" = (/obj/structure/chair/stool,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"asW" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"asX" = (/obj/structure/table,/obj/item/weapon/pen,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"asY" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"asZ" = (/obj/item/weapon/coin/gold,/obj/item/weapon/coin/iron,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"ata" = (/obj/structure/closet,/obj/item/weapon/coin/iron,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"atb" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"atc" = (/turf/closed/wall/r_wall,/area/hallway/secondary/entry) -"atd" = (/obj/structure/chair{dir = 1},/obj/item/device/radio/intercom{pixel_x = 25},/obj/item/weapon/storage/pod{pixel_x = -26},/turf/open/floor/plasteel/shuttle,/area/shuttle/pod_1) -"ate" = (/obj/structure/chair{dir = 1},/obj/item/device/radio/intercom{pixel_x = 25},/obj/item/weapon/storage/pod{pixel_x = -26},/turf/open/floor/plasteel/shuttle,/area/shuttle/pod_2) -"atf" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/fpmaint2) -"atg" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 5},/turf/closed/wall,/area/maintenance/fpmaint2) -"ath" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 4},/turf/closed/wall,/area/maintenance/fpmaint2) -"ati" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"atj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"atk" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"atl" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"atm" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 9},/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/fpmaint2) -"atn" = (/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"ato" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"atp" = (/obj/machinery/monkey_recycler,/obj/item/weapon/reagent_containers/food/snacks/monkeycube,/obj/item/weapon/reagent_containers/food/snacks/monkeycube,/turf/open/floor/plating,/area/maintenance/fpmaint2) -"atq" = (/turf/closed/wall,/area/maintenance/fpmaint) -"atr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/fpmaint) -"ats" = (/obj/structure/rack,/turf/open/floor/plasteel,/area/security/vacantoffice2) -"att" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/chair{dir = 1},/turf/open/floor/plating,/area/security/vacantoffice2) -"atu" = (/obj/structure/table/wood,/turf/open/floor/plating,/area/security/vacantoffice2) -"atv" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plating,/area/security/vacantoffice2) -"atw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/closed/wall,/area/lawoffice) -"atx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/filingcabinet/employment,/turf/open/floor/wood,/area/lawoffice) -"aty" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/wood,/area/lawoffice) -"atz" = (/obj/structure/table/wood,/obj/item/weapon/folder/blue,/obj/item/weapon/folder/blue,/obj/item/weapon/folder/blue,/obj/item/weapon/folder/blue,/obj/item/weapon/stamp/law,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/wood,/area/lawoffice) -"atA" = (/obj/structure/chair/office/dark{dir = 8},/obj/effect/landmark/start{name = "Lawyer"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/wood,/area/lawoffice) -"atB" = (/obj/machinery/status_display{density = 0; layer = 3; pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel/red/corner{dir = 4},/area/hallway/primary/fore) -"atC" = (/obj/structure/table,/obj/machinery/light/small{dir = 8},/turf/open/floor/carpet,/area/crew_quarters/sleep) -"atD" = (/obj/structure/closet/secure_closet/personal,/turf/open/floor/carpet,/area/crew_quarters/sleep) -"atE" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/machinery/airalarm{pixel_y = 23},/obj/machinery/button/door{id = "Dorm4"; name = "Dorm Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/carpet,/area/crew_quarters/sleep) -"atF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/crew_quarters/sleep) -"atG" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side{dir = 9},/area/crew_quarters/sleep) -"atH" = (/obj/machinery/airalarm{pixel_y = 23},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/side{dir = 5},/area/crew_quarters/sleep) -"atI" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/wood,/area/crew_quarters/sleep) -"atJ" = (/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/wood,/area/crew_quarters/sleep) -"atK" = (/obj/machinery/airalarm{pixel_y = 23},/obj/structure/closet/secure_closet/personal/cabinet,/obj/effect/decal/cleanable/cobweb2,/turf/open/floor/wood,/area/crew_quarters/sleep) -"atL" = (/obj/structure/dresser,/turf/open/floor/wood,/area/crew_quarters/sleep) -"atM" = (/obj/machinery/airalarm{pixel_y = 23},/obj/structure/closet/secure_closet/personal/cabinet,/turf/open/floor/wood,/area/crew_quarters/sleep) -"atN" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/neutral/side{dir = 9},/area/crew_quarters/fitness) -"atO" = (/obj/structure/disposalpipe/trunk{dir = 8},/obj/machinery/disposal/bin,/turf/open/floor/plasteel/neutral/side{dir = 1},/area/crew_quarters/fitness) -"atP" = (/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) -"atQ" = (/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) -"atR" = (/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) -"atS" = (/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) -"atT" = (/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) -"atU" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance{lootcount = 3; name = "3maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"atV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"atW" = (/obj/structure/door_assembly/door_assembly_mai,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"atX" = (/obj/machinery/door/airlock/maintenance{name = "Firefighting equipment"; req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"atY" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"atZ" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/snacks/donut,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aua" = (/turf/closed/wall,/area/maintenance/electrical) -"aub" = (/turf/closed/wall,/area/space/nearstation) -"auc" = (/turf/closed/wall,/area/hallway/secondary/entry) -"aud" = (/turf/open/floor/plating,/obj/structure/shuttle/engine/propulsion/burst,/turf/closed/wall/shuttle{icon_state = "swall_f5"; dir = 2},/area/shuttle/pod_1) -"aue" = (/obj/machinery/door/airlock/shuttle{name = "Escape Pod Airlock"},/obj/docking_port/mobile/pod{id = "pod1"; name = "escape pod 1"},/turf/open/floor/plasteel/shuttle,/area/shuttle/pod_1) -"auf" = (/turf/open/floor/plating,/obj/structure/shuttle/engine/propulsion/burst,/turf/closed/wall/shuttle{icon_state = "swall_f9"; dir = 2},/area/shuttle/pod_1) -"aug" = (/turf/open/floor/plating,/obj/structure/shuttle/engine/propulsion/burst,/turf/closed/wall/shuttle{icon_state = "swall_f5"; dir = 2},/area/shuttle/pod_2) -"auh" = (/obj/machinery/door/airlock/shuttle{name = "Escape Pod Airlock"},/obj/docking_port/mobile/pod{id = "pod2"; name = "escape pod 2"},/turf/open/floor/plasteel/shuttle,/area/shuttle/pod_2) -"aui" = (/turf/open/floor/plating,/obj/structure/shuttle/engine/propulsion/burst,/turf/closed/wall/shuttle{icon_state = "swall_f9"; dir = 2},/area/shuttle/pod_2) -"auj" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"auk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"aul" = (/obj/structure/cable{d1 = 4; d2 = 8; 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/fpmaint2) -"aum" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"aun" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/closed/wall,/area/maintenance/fpmaint2) -"auo" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating,/area/maintenance/fpmaint2) -"aup" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plating,/area/maintenance/fpmaint) -"auq" = (/obj/structure/closet/emcloset,/turf/open/floor/plating,/area/maintenance/fpmaint) -"aur" = (/obj/structure/chair/stool,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fpmaint) -"aus" = (/obj/effect/decal/cleanable/cobweb,/obj/structure/closet/secure_closet/chemical,/turf/open/floor/plating,/area/maintenance/fpmaint) -"aut" = (/obj/structure/closet/secure_closet/chemical,/turf/open/floor/plating,/area/maintenance/fpmaint) -"auu" = (/obj/structure/closet/secure_closet/medical1,/turf/open/floor/plating,/area/maintenance/fpmaint) -"auv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/security/vacantoffice2) -"auw" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plating,/area/security/vacantoffice2) -"aux" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plating,/area/maintenance/fpmaint) -"auy" = (/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/lawoffice) -"auz" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/wood,/area/lawoffice) -"auA" = (/obj/structure/chair/office/dark,/obj/effect/landmark/start{name = "Lawyer"},/turf/open/floor/wood,/area/lawoffice) -"auB" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/red/corner{dir = 4},/area/hallway/primary/fore) -"auC" = (/obj/structure/chair/stool{pixel_y = 8},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/carpet,/area/crew_quarters/sleep) -"auD" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/carpet,/area/crew_quarters/sleep) -"auE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/carpet,/area/crew_quarters/sleep) -"auF" = (/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/sleep) -"auG" = (/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/sleep) -"auH" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side{dir = 4},/area/crew_quarters/sleep) -"auI" = (/obj/structure/table/wood,/turf/open/floor/wood,/area/crew_quarters/sleep) -"auJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/crew_quarters/sleep) -"auK" = (/obj/structure/bed,/obj/item/weapon/bedsheet/red,/obj/machinery/button/door{id = "Dorm5"; name = "Cabin Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = -25; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/wood,/area/crew_quarters/sleep) -"auL" = (/turf/open/floor/wood,/area/crew_quarters/sleep) -"auM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/landmark/event_spawn,/turf/open/floor/wood,/area/crew_quarters/sleep) -"auN" = (/obj/structure/bed,/obj/item/weapon/bedsheet/red,/obj/machinery/button/door{id = "Dorm6"; name = "Cabin Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = -25; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/wood,/area/crew_quarters/sleep) -"auO" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/neutral/side{dir = 8},/area/crew_quarters/fitness) -"auP" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"auQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"auR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"auS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/side{dir = 4},/area/crew_quarters/fitness) -"auT" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plating,/area/crew_quarters/fitness) -"auU" = (/obj/structure/table,/obj/item/weapon/shard,/obj/item/weapon/shard{icon_state = "medium"},/obj/item/weapon/shard{icon_state = "small"},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"auV" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"auW" = (/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/fsmaint2) -"auX" = (/obj/machinery/button/door{id = "maint3"; name = "Blast Door Control C"; pixel_x = 0; pixel_y = 24; req_access_txt = "0"},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"auY" = (/mob/living/simple_animal/mouse,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"auZ" = (/obj/structure/table,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"ava" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"avb" = (/obj/machinery/recharge_station,/turf/open/floor/plasteel/floorgrime,/area/maintenance/electrical) -"avc" = (/obj/item/stack/rods{amount = 50},/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; layer = 2.9},/turf/open/floor/plasteel/floorgrime,/area/maintenance/electrical) -"avd" = (/obj/machinery/power/port_gen/pacman,/turf/open/floor/plating,/area/maintenance/electrical) -"ave" = (/obj/machinery/mech_bay_recharge_port,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plating,/area/maintenance/electrical) -"avf" = (/turf/open/floor/mech_bay_recharge_floor,/area/maintenance/electrical) -"avg" = (/obj/machinery/computer/mech_bay_power_console,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/bluegrid,/area/maintenance/electrical) -"avh" = (/obj/machinery/door/airlock/external{name = "Escape Pod One"},/turf/open/floor/plating,/area/hallway/secondary/entry) -"avi" = (/obj/machinery/space_heater,/turf/open/floor/plating,/area/maintenance/fpmaint2) -"avj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"avk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"avl" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"avm" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"avn" = (/obj/structure/reagent_dispensers/watertank,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"avo" = (/obj/structure/cable{d1 = 1; d2 = 2; 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/fpmaint2) -"avp" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/closed/wall,/area/maintenance/fpmaint2) -"avq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/maintenance/fpmaint2) -"avr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"avs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/maintenance/fpmaint2) -"avt" = (/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/space/nearstation) -"avu" = (/obj/item/weapon/paper/crumpled,/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/space/nearstation) -"avv" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fpmaint2) -"avw" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plating,/area/maintenance/fpmaint2) -"avx" = (/obj/structure/rack{dir = 1},/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"avy" = (/obj/structure/chair/stool,/turf/open/floor/plating,/area/maintenance/fpmaint2) -"avz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/fpmaint) -"avA" = (/obj/structure/table/wood,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/light,/turf/open/floor/plating,/area/security/vacantoffice2) -"avB" = (/obj/machinery/camera{c_tag = "Vacant Office B"; dir = 1},/obj/structure/table/wood,/turf/open/floor/plasteel,/area/security/vacantoffice2) -"avC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/security/vacantoffice2) -"avD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/lawoffice) -"avE" = (/obj/structure/table/wood,/obj/item/device/taperecorder{pixel_y = 0},/obj/item/weapon/cartridge/lawyer,/turf/open/floor/wood,/area/lawoffice) -"avF" = (/obj/structure/table/wood,/obj/machinery/camera{c_tag = "Law Office"; dir = 1; network = list("SS13")},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/machinery/computer/security/telescreen{desc = "Used for watching Prison Wing holding areas."; dir = 1; name = "Prison Monitor"; network = list("Prison"); pixel_x = 0; pixel_y = -27},/turf/open/floor/wood,/area/lawoffice) -"avG" = (/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) -"avH" = (/obj/machinery/power/apc{dir = 8; name = "Fore Primary Hallway APC"; pixel_x = -24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/camera{c_tag = "Fore Primary Hallway"; dir = 4; network = list("SS13")},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/red/corner{dir = 1},/area/hallway/primary/fore) -"avI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/neutral/side{dir = 8},/area/crew_quarters/sleep) -"avJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/side{dir = 4},/area/crew_quarters/sleep) -"avK" = (/obj/machinery/door/airlock{id_tag = "Dorm5"; name = "Cabin 1"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/crew_quarters/sleep) -"avL" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/crew_quarters/sleep) -"avM" = (/obj/machinery/door/airlock{id_tag = "Dorm6"; name = "Cabin 2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/crew_quarters/sleep) -"avN" = (/obj/machinery/airalarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/neutral/side{dir = 8},/area/crew_quarters/fitness) -"avO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"avP" = (/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/black,/area/crew_quarters/fitness) -"avQ" = (/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plasteel/black,/area/crew_quarters/fitness) -"avR" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/black,/area/crew_quarters/fitness) -"avS" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"avT" = (/turf/open/floor/plasteel/red/side{dir = 4},/area/crew_quarters/fitness) -"avU" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Holodeck Door"},/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"avV" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Holodeck Door"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"avW" = (/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"avX" = (/obj/machinery/camera{c_tag = "Holodeck"},/obj/machinery/airalarm{pixel_y = 24},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"avY" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/fitness) -"avZ" = (/obj/machinery/light/small,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"awa" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"awb" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"awc" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"awd" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"awe" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"awf" = (/turf/open/floor/plasteel/floorgrime,/area/maintenance/electrical) -"awg" = (/turf/open/floor/plating,/area/maintenance/electrical) -"awh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/electrical) -"awi" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/electrical) -"awj" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/electrical) -"awk" = (/obj/machinery/light/small{dir = 8},/obj/machinery/camera{c_tag = "Arrivals Escape Pod 1"; dir = 1},/turf/open/floor/plating,/area/hallway/secondary/entry) -"awl" = (/turf/open/floor/plating,/area/hallway/secondary/entry) -"awm" = (/obj/structure/closet/emcloset,/turf/open/floor/plating,/area/hallway/secondary/entry) -"awn" = (/obj/machinery/light/small{dir = 8},/obj/machinery/camera{c_tag = "Arrivals Escape Pod 2"; dir = 1},/turf/open/floor/plating,/area/hallway/secondary/entry) -"awo" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint2) -"awp" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light/small,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"awq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"awr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"aws" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/maintenance/fpmaint2) -"awt" = (/obj/structure/mirror{icon_state = "mirror_broke"; pixel_y = 28; shattered = 1},/obj/machinery/iv_drip,/turf/open/floor/plating,/area/maintenance/fpmaint2) -"awu" = (/obj/structure/frame/computer,/turf/open/floor/plating,/area/maintenance/fpmaint2) -"awv" = (/obj/structure/mirror{icon_state = "mirror_broke"; pixel_y = 28; shattered = 1},/obj/item/weapon/shard{icon_state = "medium"},/obj/item/weapon/circuitboard/computer/operating,/turf/open/floor/plating,/area/maintenance/fpmaint2) -"aww" = (/obj/effect/decal/cleanable/cobweb2,/obj/structure/chair,/obj/item/weapon/reagent_containers/blood/random,/turf/open/floor/plating,/area/maintenance/fpmaint2) -"awx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint2) -"awy" = (/obj/item/weapon/airlock_painter,/obj/structure/lattice,/obj/structure/closet,/turf/open/space,/area/space/nearstation) -"awz" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance{lootcount = 4; name = "4maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"awA" = (/obj/machinery/door/airlock/external{req_access_txt = "13"},/turf/open/floor/plating,/area/maintenance/fpmaint) -"awB" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fpmaint) -"awC" = (/obj/machinery/door/airlock/maintenance{name = "Chemical Storage"; req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/fpmaint) -"awD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/security/vacantoffice2) -"awE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/security/vacantoffice2) -"awF" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/power/apc{dir = 8; name = "Vacant Office B APC"; pixel_x = -24; pixel_y = 0},/turf/open/floor/plating,/area/security/vacantoffice2) -"awG" = (/obj/machinery/power/apc{dir = 1; name = "Law Office APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/lawoffice) -"awH" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/red/corner{dir = 1},/area/hallway/primary/fore) -"awI" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/plasteel/red/corner{dir = 4},/area/hallway/primary/fore) -"awJ" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/machinery/airalarm{pixel_y = 23},/obj/machinery/button/door{id = "Dorm3"; name = "Dorm Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/carpet,/area/crew_quarters/sleep) -"awK" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel/neutral/side{dir = 8},/area/crew_quarters/sleep) -"awL" = (/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/sleep) -"awM" = (/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/sleep) -"awN" = (/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/sleep) -"awO" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/neutral/side{dir = 1},/area/crew_quarters/sleep) -"awP" = (/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/sleep) -"awQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/crew_quarters/sleep) -"awR" = (/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/sleep) -"awS" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/crew_quarters/sleep) -"awT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/side{dir = 5},/area/crew_quarters/sleep) -"awU" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/crew_quarters/fitness) -"awV" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/neutral/side{dir = 8},/area/crew_quarters/fitness) -"awW" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/black,/area/crew_quarters/fitness) -"awX" = (/turf/open/floor/plasteel/vault{dir = 5},/area/crew_quarters/fitness) -"awY" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/black,/area/crew_quarters/fitness) -"awZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"axa" = (/obj/machinery/computer/holodeck,/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"axb" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"axc" = (/obj/machinery/door/poddoor/preopen{id = "maint3"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"axd" = (/obj/machinery/door/poddoor/preopen{id = "maint3"},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"axe" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 0},/turf/closed/wall,/area/maintenance/electrical) -"axf" = (/obj/machinery/power/apc{dir = 1; name = "Electrical Maintenance APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plating,/area/maintenance/electrical) -"axg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/electrical) -"axh" = (/obj/structure/table,/obj/item/clothing/gloves/color/fyellow,/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/obj/item/device/multitool,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/turf/open/floor/plasteel/floorgrime,/area/maintenance/electrical) -"axi" = (/obj/structure/sign/pods,/turf/closed/wall,/area/hallway/secondary/entry) -"axj" = (/obj/machinery/door/airlock/external{name = "Escape Pod Two"},/turf/open/floor/plating,/area/hallway/secondary/entry) -"axk" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint2) -"axl" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint2) -"axm" = (/obj/item/weapon/wrench,/turf/open/floor/plating,/area/maintenance/fpmaint2) -"axn" = (/obj/structure/table/optable{name = "Robotics Operating Table"},/obj/item/weapon/surgical_drapes,/turf/open/floor/plating,/area/maintenance/fpmaint2) -"axo" = (/turf/open/floor/plasteel/airless{icon_state = "damaged5"},/area/space/nearstation) -"axp" = (/obj/structure/table,/obj/machinery/cell_charger,/turf/open/floor/plating,/area/maintenance/fpmaint2) -"axq" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"axr" = (/obj/machinery/light/small{dir = 4},/obj/structure/chair/stool,/turf/open/floor/plating,/area/maintenance/fpmaint2) -"axs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/closed/wall,/area/maintenance/fpmaint2) -"axt" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/maintenance/fpmaint2) -"axu" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/fpmaint) -"axv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/maintenance/fpmaint) -"axw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint) -"axx" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/closed/wall,/area/maintenance/fpmaint) -"axy" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint) -"axz" = (/obj/machinery/power/apc{dir = 1; name = "EVA Maintenance APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint) -"axA" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/fpmaint) -"axB" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint) -"axC" = (/obj/structure/cable{d1 = 4; d2 = 8; 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/fpmaint) -"axD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint) -"axE" = (/obj/structure/cable{d1 = 4; d2 = 8; 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/fpmaint) -"axF" = (/obj/effect/landmark{name = "blobstart"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; 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/fpmaint) -"axG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint) -"axH" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 4; d2 = 8; 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/fpmaint) -"axI" = (/obj/structure/cable{d1 = 1; d2 = 8; 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) -"axJ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/fore) -"axK" = (/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/fsmaint) -"axL" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint) -"axM" = (/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/sleep) -"axN" = (/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,/turf/open/floor/plasteel,/area/crew_quarters/sleep) -"axO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/sleep) -"axP" = (/obj/structure/chair/stool{pixel_y = 8},/obj/effect/landmark/start{name = "Assistant"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/sleep) -"axQ" = (/obj/structure/table/wood,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/item/weapon/storage/pill_bottle/dice,/turf/open/floor/plasteel,/area/crew_quarters/sleep) -"axR" = (/obj/structure/table/wood,/obj/item/weapon/storage/firstaid/regular,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel,/area/crew_quarters/sleep) -"axS" = (/obj/structure/table/wood,/obj/item/weapon/coin/silver,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/sleep) -"axT" = (/obj/structure/chair/stool{pixel_y = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/sleep) -"axU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/crew_quarters/sleep) -"axV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel,/area/crew_quarters/sleep) -"axW" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Fitness"},/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"axX" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"axY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"axZ" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/vault{dir = 5},/area/crew_quarters/fitness) -"aya" = (/obj/effect/landmark/start{name = "Assistant"},/turf/open/floor/plasteel/green/side{dir = 4},/area/crew_quarters/fitness) -"ayb" = (/obj/structure/table,/obj/item/weapon/paper{desc = ""; info = "Brusies sustained in the holodeck can be healed simply by sleeping."; name = "Holodeck Disclaimer"},/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"ayc" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"ayd" = (/obj/effect/decal/cleanable/cobweb2,/obj/structure/closet/crate,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aye" = (/obj/structure/closet/crate,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"ayf" = (/obj/structure/girder,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"ayg" = (/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"ayh" = (/obj/machinery/button/door{id = "maint2"; name = "Blast Door Control B"; pixel_x = -28; pixel_y = 4; req_access_txt = "0"},/obj/machinery/button/door{id = "maint1"; name = "Blast Door Control A"; pixel_x = -28; pixel_y = -6; req_access_txt = "0"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"ayi" = (/obj/structure/janitorialcart,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"ayj" = (/obj/structure/table/glass,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"ayk" = (/obj/structure/table/glass,/obj/item/weapon/pen,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"ayl" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aym" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"ayn" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/engineering{name = "Electrical Maintenance"; req_access_txt = "11"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/electrical) -"ayo" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/electrical) -"ayp" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/electrical) -"ayq" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/electrical) -"ayr" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plating,/area/maintenance/electrical) -"ays" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plating,/area/maintenance/electrical) -"ayt" = (/obj/structure/table,/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/item/wallframe/camera,/obj/item/wallframe/camera,/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/turf/open/floor/plasteel/floorgrime,/area/maintenance/electrical) -"ayu" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hallway/secondary/entry) -"ayv" = (/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/secondary/entry) -"ayw" = (/obj/machinery/light{dir = 1},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"ayx" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/secondary/entry) -"ayy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/arrival{dir = 1},/area/hallway/secondary/entry) -"ayz" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/arrival{dir = 1},/area/hallway/secondary/entry) -"ayA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/arrival{dir = 1},/area/hallway/secondary/entry) -"ayB" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel/arrival{dir = 1},/area/hallway/secondary/entry) -"ayC" = (/turf/open/floor/plasteel/arrival{dir = 1},/area/hallway/secondary/entry) -"ayD" = (/turf/open/floor/plasteel/arrival{dir = 5},/area/hallway/secondary/entry) -"ayE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint2) -"ayF" = (/obj/machinery/sleeper{dir = 4; icon_state = "sleeper-open"},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"ayG" = (/mob/living/simple_animal/mouse,/turf/open/floor/plating,/area/maintenance/fpmaint2) -"ayH" = (/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"ayI" = (/obj/structure/table/glass,/obj/item/weapon/storage/bag/trash,/turf/open/floor/plating,/area/maintenance/fpmaint2) -"ayJ" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/closed/wall,/area/maintenance/fpmaint2) -"ayK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"ayL" = (/obj/machinery/door/airlock/maintenance{name = "Firefighting equipment"; req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"ayM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint2) -"ayN" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"ayO" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = -32},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint) -"ayP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint) -"ayQ" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/fpmaint) -"ayR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint) -"ayS" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint) -"ayT" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = -32},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint) -"ayU" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 2; d2 = 8; 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/fpmaint) -"ayV" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint) -"ayW" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint) -"ayX" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint) -"ayY" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/fpmaint) -"ayZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/ai_monitored/storage/eva) -"aza" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/closed/wall/r_wall,/area/ai_monitored/storage/eva) -"azb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/ai_monitored/storage/eva) -"azc" = (/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) -"azd" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/fore) -"aze" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel/blue/corner,/area/hallway/primary/fore) -"azf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/maintenance/fsmaint) -"azg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plating,/area/maintenance/fsmaint) -"azh" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/crew_quarters/sleep) -"azi" = (/turf/open/floor/plasteel,/area/crew_quarters/sleep) -"azj" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plasteel,/area/crew_quarters/sleep) -"azk" = (/obj/structure/table/wood,/obj/item/weapon/storage/crayons,/turf/open/floor/plasteel,/area/crew_quarters/sleep) -"azl" = (/obj/structure/table/wood,/obj/item/device/paicard,/turf/open/floor/plasteel,/area/crew_quarters/sleep) -"azm" = (/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/sleep) -"azn" = (/obj/structure/chair/stool{pixel_y = 8},/obj/effect/landmark/start{name = "Assistant"},/turf/open/floor/plasteel,/area/crew_quarters/sleep) -"azo" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel,/area/crew_quarters/sleep) -"azp" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/crew_quarters/sleep) -"azq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Fitness"},/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"azr" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"azs" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"azt" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/crew_quarters/fitness) -"azu" = (/obj/structure/window/reinforced,/turf/open/floor/plasteel/black,/area/crew_quarters/fitness) -"azv" = (/obj/machinery/door/window/eastright{base_state = "left"; icon_state = "left"; name = "Fitness Ring"},/obj/structure/window/reinforced,/turf/open/floor/plasteel/black,/area/crew_quarters/fitness) -"azw" = (/turf/open/floor/plasteel/green/side{dir = 4},/area/crew_quarters/fitness) -"azx" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Holodeck Door"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"azy" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"azz" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"azA" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"azB" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"azC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"azD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"azE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"azF" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/maintenance/electrical) -"azG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/maintenance/electrical) -"azH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/electrical) -"azI" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plating,/area/maintenance/electrical) -"azJ" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high/plus,/obj/item/weapon/stock_parts/cell/high/plus,/turf/open/floor/plating,/area/maintenance/electrical) -"azK" = (/turf/open/floor/plasteel/warning,/area/hallway/secondary/entry) -"azL" = (/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"azM" = (/turf/open/floor/plasteel/warning/corner{dir = 1},/area/hallway/secondary/entry) -"azN" = (/turf/open/floor/plasteel/warning/corner{dir = 2},/area/hallway/secondary/entry) -"azO" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/warning,/area/hallway/secondary/entry) -"azP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/warning/corner{dir = 1},/area/hallway/secondary/entry) -"azQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"azR" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/plasteel/arrival{dir = 4},/area/hallway/secondary/entry) -"azS" = (/obj/structure/closet/wardrobe/white,/obj/item/clothing/shoes/jackboots,/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka/badminka,/turf/open/floor/plating,/area/maintenance/fpmaint2) -"azT" = (/obj/structure/table/glass,/obj/item/weapon/hemostat,/turf/open/floor/plating,/area/maintenance/fpmaint2) -"azU" = (/obj/structure/table/glass,/obj/item/weapon/restraints/handcuffs/cable/zipties,/obj/item/weapon/reagent_containers/blood/random,/turf/open/floor/plating,/area/maintenance/fpmaint2) -"azV" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"azW" = (/obj/structure/cable{d1 = 4; d2 = 8; 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/fpmaint2) -"azX" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"azY" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"azZ" = (/obj/structure/closet/firecloset,/turf/open/floor/plating,/area/maintenance/fpmaint2) -"aAa" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint2) -"aAb" = (/turf/closed/wall/r_wall,/area/maintenance/fpmaint2) -"aAc" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/fpmaint) -"aAd" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/fpmaint) -"aAe" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/fpmaint) -"aAf" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/fpmaint) -"aAg" = (/obj/structure/grille,/obj/structure/cable,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/fpmaint) -"aAh" = (/turf/closed/wall/r_wall,/area/maintenance/fpmaint) -"aAi" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint) -"aAj" = (/turf/closed/wall/r_wall,/area/gateway) -"aAk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint) -"aAl" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/sign/securearea{pixel_x = 32; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint) -"aAm" = (/turf/closed/wall/r_wall,/area/ai_monitored/storage/eva) -"aAn" = (/obj/structure/closet/crate/rcd,/obj/machinery/camera/motion{c_tag = "EVA Motion Sensor"; name = "motion-sensitive security camera"},/turf/open/floor/plasteel/black,/area/ai_monitored/storage/eva) -"aAo" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/machinery/light{dir = 1},/obj/item/weapon/hand_labeler,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/device/flashlight,/turf/open/floor/plasteel/black,/area/ai_monitored/storage/eva) -"aAp" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/item/clothing/head/welding,/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aAq" = (/obj/machinery/power/apc{dir = 1; name = "EVA Storage APC"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aAr" = (/obj/machinery/airalarm{pixel_y = 23},/obj/item/device/radio/off,/obj/item/device/assembly/timer,/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aAs" = (/obj/structure/table,/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high/plus,/turf/open/floor/plasteel/black,/area/ai_monitored/storage/eva) -"aAt" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/obj/item/weapon/screwdriver{pixel_y = 16},/turf/open/floor/plasteel/black,/area/ai_monitored/storage/eva) -"aAu" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/sign/securearea{pixel_y = 32},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ai_monitored/storage/eva) -"aAv" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/item/device/multitool,/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aAw" = (/obj/machinery/light{dir = 1},/obj/structure/table,/obj/item/device/assembly/signaler,/obj/item/device/assembly/signaler,/obj/item/weapon/stock_parts/cell/high/plus,/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aAx" = (/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aAy" = (/obj/structure/table,/obj/item/weapon/storage/belt/utility,/obj/item/weapon/storage/belt/utility,/obj/item/weapon/storage/belt/utility,/obj/item/clothing/head/welding,/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aAz" = (/turf/closed/wall,/area/ai_monitored/storage/eva) -"aAA" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/fore) -"aAB" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/blue/corner,/area/hallway/primary/fore) -"aAC" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/machinery/airalarm{pixel_y = 23},/obj/machinery/button/door{id = "Dorm2"; name = "Dorm Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/carpet,/area/crew_quarters/sleep) -"aAD" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side{dir = 8},/area/crew_quarters/sleep) -"aAE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/crew_quarters/sleep) -"aAF" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/crew_quarters/sleep) -"aAG" = (/obj/machinery/light,/turf/open/floor/plasteel/neutral/side,/area/crew_quarters/sleep) -"aAH" = (/turf/open/floor/plasteel/neutral/side,/area/crew_quarters/sleep) -"aAI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/neutral/side{dir = 6},/area/crew_quarters/sleep) -"aAJ" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/open/floor/plasteel/neutral/side{dir = 10},/area/crew_quarters/fitness) -"aAK" = (/obj/structure/cable{d1 = 1; d2 = 2; 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) -"aAL" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"aAM" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular,/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"aAN" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"aAO" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"aAP" = (/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"aAQ" = (/obj/machinery/camera{c_tag = "Fitness Room South"; dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/green/side{dir = 4},/area/crew_quarters/fitness) -"aAR" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/crew_quarters/fitness) -"aAS" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/fitness) -"aAT" = (/obj/structure/grille/broken,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aAU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aAV" = (/obj/machinery/power/terminal,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating,/area/maintenance/electrical) -"aAW" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/electrical) -"aAX" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/maintenance/electrical) -"aAY" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plating,/area/maintenance/electrical) -"aAZ" = (/obj/machinery/light_switch{pixel_y = -25},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating,/area/maintenance/electrical) -"aBa" = (/obj/machinery/power/terminal,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/maintenance/electrical) -"aBb" = (/obj/machinery/door/airlock/external{name = "Port Docking Bay 1"},/turf/open/floor/plating,/area/hallway/secondary/entry) -"aBc" = (/turf/open/floor/plasteel/warning{dir = 8},/area/hallway/secondary/entry) -"aBd" = (/turf/open/floor/plasteel/warning{dir = 4},/area/hallway/secondary/entry) -"aBe" = (/turf/open/floor/plasteel/warning{dir = 10},/area/hallway/secondary/entry) -"aBf" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/open/floor/plasteel/warning,/area/hallway/secondary/entry) -"aBg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/arrival{dir = 4},/area/hallway/secondary/entry) -"aBh" = (/turf/closed/wall,/area/hallway/secondary/construction{name = "\improper Garden"}) -"aBi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/hallway/secondary/construction{name = "\improper Garden"}) -"aBj" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint2) -"aBk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/closed/wall,/area/maintenance/fpmaint2) -"aBl" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/space,/area/space) -"aBm" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/space,/area/space) -"aBn" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/black,/area/gateway) -"aBo" = (/obj/machinery/gateway{dir = 9},/turf/open/floor/plasteel/vault{dir = 1},/area/gateway) -"aBp" = (/obj/machinery/gateway{dir = 1},/turf/open/floor/plasteel/vault{dir = 8},/area/gateway) -"aBq" = (/obj/machinery/gateway{dir = 5},/turf/open/floor/plasteel/vault{dir = 4},/area/gateway) -"aBr" = (/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/black,/area/gateway) -"aBs" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plating,/area/maintenance/fpmaint) -"aBt" = (/obj/structure/cable{d1 = 4; d2 = 8; 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/ai_monitored/storage/eva) -"aBu" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aBv" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aBw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aBx" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aBy" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_command{name = "EVA Storage"; req_access_txt = "18"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aBz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aBA" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aBB" = (/obj/structure/table,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/device/assembly/prox_sensor,/obj/item/device/assembly/prox_sensor,/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aBC" = (/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/fore) -"aBD" = (/turf/open/floor/plasteel/blue/corner,/area/hallway/primary/fore) -"aBE" = (/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/sleep) -"aBF" = (/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/crew_quarters/sleep) -"aBG" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/neutral/side,/area/crew_quarters/sleep) -"aBH" = (/obj/machinery/light_switch{pixel_y = -25},/turf/open/floor/plasteel/neutral/side,/area/crew_quarters/sleep) -"aBI" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/open/floor/plasteel/neutral/side,/area/crew_quarters/sleep) -"aBJ" = (/obj/structure/closet/wardrobe/pjs,/turf/open/floor/plasteel/neutral/side,/area/crew_quarters/sleep) -"aBK" = (/obj/structure/closet/wardrobe/pjs,/turf/open/floor/plasteel/neutral/side{dir = 6},/area/crew_quarters/sleep) -"aBL" = (/turf/closed/wall,/area/crew_quarters/toilet) -"aBM" = (/obj/machinery/door/airlock{name = "Unisex Showers"; req_access_txt = "0"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aBN" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/neutral/side{dir = 10},/area/crew_quarters/fitness) -"aBO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side,/area/crew_quarters/fitness) -"aBP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/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) -"aBQ" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/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) -"aBR" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/neutral/side,/area/crew_quarters/fitness) -"aBS" = (/obj/structure/reagent_dispensers/water_cooler,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/neutral/side{dir = 6},/area/crew_quarters/fitness) -"aBT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aBU" = (/obj/machinery/atmospherics/components/unary/tank/air{dir = 8},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aBV" = (/obj/structure/closet,/obj/effect/decal/cleanable/cobweb,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aBW" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aBX" = (/obj/machinery/door/poddoor/preopen{id = "maint2"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aBY" = (/obj/machinery/door/poddoor/preopen{id = "maint2"},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aBZ" = (/obj/structure/closet,/obj/effect/landmark{name = "blobstart"},/obj/effect/spawner/lootdrop/maintenance,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka/badminka,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aCa" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aCb" = (/obj/machinery/power/smes{charge = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating,/area/maintenance/electrical) -"aCc" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/closed/wall,/area/maintenance/electrical) -"aCd" = (/obj/machinery/computer/monitor{name = "backup power monitoring console"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable,/turf/open/floor/plating,/area/maintenance/electrical) -"aCe" = (/obj/machinery/power/smes{charge = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/maintenance/electrical) -"aCf" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/turf/closed/wall/r_wall,/area/hallway/secondary/entry) -"aCg" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hallway/secondary/entry) -"aCh" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/warning{dir = 10},/area/hallway/secondary/entry) -"aCi" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/warning,/area/hallway/secondary/entry) -"aCj" = (/obj/machinery/camera{c_tag = "Arrivals Bay 1 North"; dir = 1},/turf/open/floor/plasteel/warning,/area/hallway/secondary/entry) -"aCk" = (/obj/machinery/vending/coffee,/turf/open/floor/plasteel/warning{dir = 6},/area/hallway/secondary/entry) -"aCl" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/warning{dir = 8},/area/hallway/secondary/entry) -"aCm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/arrival{dir = 4},/area/hallway/secondary/entry) -"aCn" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/power/apc{dir = 2; name = "Security Checkpoint APC"; pixel_x = 1; pixel_y = -24},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/security/checkpoint2) -"aCo" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint2) -"aCp" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"aCq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"aCr" = (/obj/machinery/power/apc{dir = 4; name = "Garden APC"; pixel_x = 27; pixel_y = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/hallway/secondary/construction{name = "\improper Garden"}) -"aCs" = (/obj/machinery/hydroponics/soil,/turf/open/floor/grass,/area/hallway/secondary/construction{name = "\improper Garden"}) -"aCt" = (/obj/machinery/light{dir = 1},/obj/structure/sink{pixel_y = 30},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/construction{name = "\improper Garden"}) -"aCu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/construction{name = "\improper Garden"}) -"aCv" = (/obj/machinery/seed_extractor,/turf/open/floor/plasteel,/area/hallway/secondary/construction{name = "\improper Garden"}) -"aCw" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/open/floor/plasteel,/area/hallway/secondary/construction{name = "\improper Garden"}) -"aCx" = (/obj/structure/sink{pixel_y = 30},/turf/open/floor/plasteel,/area/hallway/secondary/construction{name = "\improper Garden"}) -"aCy" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"aCz" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"aCA" = (/obj/machinery/power/apc{dir = 2; name = "Primary Tool Storage APC"; pixel_x = 1; pixel_y = -24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/storage/primary) -"aCB" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2) -"aCC" = (/turf/closed/wall/r_wall,/area/ai_monitored/nuke_storage) -"aCD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/ai_monitored/nuke_storage) -"aCE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall/r_wall,/area/ai_monitored/nuke_storage) -"aCF" = (/turf/open/floor/plasteel/black,/area/gateway) -"aCG" = (/obj/machinery/gateway{dir = 8},/turf/open/floor/plasteel/vault{dir = 8},/area/gateway) -"aCH" = (/obj/machinery/gateway/centerstation,/turf/open/floor/plasteel/black,/area/gateway) -"aCI" = (/obj/machinery/gateway{dir = 4},/turf/open/floor/plasteel/vault{dir = 8},/area/gateway) -"aCJ" = (/obj/machinery/power/apc{dir = 8; name = "Gateway APC"; pixel_x = -24; pixel_y = -1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/gateway) -"aCK" = (/obj/machinery/camera{c_tag = "EVA Maintenance"; dir = 8; network = list("SS13")},/obj/machinery/light/small{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; 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/fpmaint) -"aCL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall/r_wall,/area/ai_monitored/storage/eva) -"aCM" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/item/weapon/tank/jetpack/carbondioxide,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 9},/area/ai_monitored/storage/eva) -"aCN" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/tank/jetpack/carbondioxide,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 1},/area/ai_monitored/storage/eva) -"aCO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/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) -"aCP" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aCQ" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aCR" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 1},/area/ai_monitored/storage/eva) -"aCS" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 5},/area/ai_monitored/storage/eva) -"aCT" = (/obj/structure/grille,/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ai_monitored/storage/eva) -"aCU" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aCV" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ai_monitored/storage/eva) -"aCW" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/blue/corner,/area/hallway/primary/fore) -"aCX" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/neutral/side{dir = 8},/area/crew_quarters/sleep) -"aCY" = (/obj/machinery/shower{dir = 4},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aCZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aDa" = (/obj/machinery/shower{dir = 8},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aDb" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aDc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/maintenance/fsmaint2) -"aDd" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aDe" = (/obj/item/clothing/under/rank/mailman,/obj/item/clothing/head/mailman,/obj/structure/closet,/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aDf" = (/obj/machinery/space_heater,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aDg" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/warning{dir = 8},/area/hallway/secondary/entry) -"aDh" = (/turf/closed/wall,/area/security/checkpoint2) -"aDi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/security/checkpoint2) -"aDj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/security/checkpoint2) -"aDk" = (/obj/machinery/door/airlock/maintenance{name = "Security Maintenance"; req_access_txt = "1"},/turf/open/floor/plating,/area/security/checkpoint2) -"aDl" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/construction{name = "\improper Garden"}) -"aDm" = (/obj/effect/landmark/start{name = "Assistant"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel,/area/hallway/secondary/construction{name = "\improper Garden"}) -"aDn" = (/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/hallway/secondary/construction{name = "\improper Garden"}) -"aDo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/construction{name = "\improper Garden"}) -"aDp" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/hallway/secondary/construction{name = "\improper Garden"}) -"aDq" = (/obj/machinery/door/airlock/maintenance{name = "Garden Maintenance"; req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint2) -"aDr" = (/turf/closed/wall,/area/storage/primary) -"aDs" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/storage/primary) -"aDt" = (/turf/closed/wall/r_wall,/area/storage/primary) -"aDu" = (/obj/structure/closet/secure_closet/freezer/money,/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/nuke_storage) -"aDv" = (/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/bluegrid,/area/ai_monitored/nuke_storage) -"aDw" = (/obj/machinery/airalarm{pixel_y = 23},/obj/machinery/light{dir = 1},/turf/open/floor/bluegrid,/area/ai_monitored/nuke_storage) -"aDx" = (/obj/machinery/power/apc{dir = 1; name = "Vault APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/bluegrid,/area/ai_monitored/nuke_storage) -"aDy" = (/obj/structure/filingcabinet,/obj/item/weapon/folder/documents,/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/nuke_storage) -"aDz" = (/obj/machinery/gateway{dir = 10},/turf/open/floor/plasteel/vault{dir = 4},/area/gateway) -"aDA" = (/obj/machinery/gateway,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plasteel/vault{dir = 8},/area/gateway) -"aDB" = (/obj/machinery/gateway{dir = 6},/turf/open/floor/plasteel/vault{dir = 1},/area/gateway) -"aDC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/meter,/turf/open/floor/plating,/area/maintenance/fpmaint) -"aDD" = (/obj/machinery/requests_console{department = "EVA"; pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel/warning{dir = 8},/area/ai_monitored/storage/eva) -"aDE" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aDF" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aDG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aDH" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/item/weapon/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) -"aDI" = (/turf/open/floor/plasteel/warning{dir = 4},/area/ai_monitored/storage/eva) -"aDJ" = (/obj/structure/grille,/obj/structure/cable,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ai_monitored/storage/eva) -"aDK" = (/obj/machinery/camera{c_tag = "EVA East"; dir = 1},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aDL" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/machinery/airalarm{pixel_y = 23},/obj/machinery/button/door{id = "Dorm1"; name = "Dorm Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/carpet,/area/crew_quarters/sleep) -"aDM" = (/obj/structure/sink{icon_state = "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) -"aDN" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aDO" = (/obj/structure/urinal{pixel_y = 32},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aDP" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/item/weapon/bikehorn/rubberducky,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aDQ" = (/obj/structure/table/wood,/obj/machinery/requests_console{department = "Theatre"; departmentType = 0; name = "theatre RC"; pixel_x = -32; pixel_y = 0},/obj/item/weapon/reagent_containers/food/snacks/baguette,/turf/open/floor/plasteel/white/side{dir = 4},/area/crew_quarters/theatre) -"aDR" = (/obj/machinery/camera{c_tag = "Theatre Storage"},/turf/open/floor/plasteel/white/side{dir = 4},/area/crew_quarters/theatre) -"aDS" = (/obj/machinery/vending/autodrobe,/turf/open/floor/plasteel/white/side{dir = 4},/area/crew_quarters/theatre) -"aDT" = (/turf/closed/wall,/area/crew_quarters/theatre) -"aDU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aDV" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/fitness) -"aDW" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/fitness) -"aDX" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/fitness) -"aDY" = (/obj/machinery/atmospherics/components/binary/valve,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aDZ" = (/obj/effect/decal/cleanable/oil,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aEa" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aEb" = (/obj/structure/grille/broken,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/window{icon_state = "window"; dir = 4},/obj/structure/window,/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/fsmaint2) -"aEc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/closed/wall,/area/maintenance/fsmaint2) -"aEd" = (/obj/machinery/door/poddoor/preopen{id = "maint1"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aEe" = (/obj/machinery/door/poddoor/preopen{id = "maint1"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aEf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/maintenance/fsmaint2) -"aEg" = (/obj/structure/girder,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aEh" = (/obj/machinery/space_heater,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aEi" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aEj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aEk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aEl" = (/obj/structure/chair/stool{pixel_y = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aEm" = (/obj/structure/reagent_dispensers/watertank,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aEn" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aEo" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aEp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/chapel/main) -"aEq" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/black,/area/chapel/main) -"aEr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/black,/area/chapel/main) -"aEs" = (/turf/closed/wall,/area/chapel/main) -"aEt" = (/turf/open/space,/turf/closed/wall/shuttle{icon_state = "swall_f6"; dir = 2},/area/shuttle/arrival) -"aEu" = (/turf/closed/wall/shuttle{icon_state = "swall12"; dir = 2},/area/shuttle/arrival) -"aEv" = (/obj/machinery/door/airlock/shuttle{name = "Arrivals Shuttle Airlock"},/turf/open/floor/plating,/area/shuttle/arrival) -"aEw" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/arrival) -"aEx" = (/turf/closed/wall/shuttle{icon_state = "swall14"; dir = 2},/area/shuttle/arrival) -"aEy" = (/turf/open/space,/turf/closed/wall/shuttle{dir = 2; icon_state = "swall_f10"; layer = 2},/area/shuttle/arrival) -"aEz" = (/obj/machinery/camera{c_tag = "Arrivals North"; dir = 8; network = list("SS13")},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/arrival{dir = 4},/area/hallway/secondary/entry) -"aEA" = (/obj/structure/closet/secure_closet/security,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/red/side{dir = 9},/area/security/checkpoint2) -"aEB" = (/obj/structure/closet/wardrobe/red,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side{dir = 1},/area/security/checkpoint2) -"aEC" = (/obj/machinery/computer/security,/obj/structure/reagent_dispensers/peppertank{pixel_x = 0; pixel_y = 30},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/checkpoint2) -"aED" = (/obj/machinery/computer/card,/obj/machinery/light{dir = 1},/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/checkpoint2) -"aEE" = (/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/checkpoint2) -"aEF" = (/turf/open/floor/plasteel/red/side{dir = 5},/area/security/checkpoint2) -"aEG" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hallway/secondary/construction{name = "\improper Garden"}) -"aEH" = (/turf/open/floor/plasteel,/area/hallway/secondary/construction{name = "\improper Garden"}) -"aEI" = (/obj/machinery/biogenerator,/turf/open/floor/plasteel,/area/hallway/secondary/construction{name = "\improper Garden"}) -"aEJ" = (/obj/machinery/vending/assist,/turf/open/floor/plasteel,/area/storage/primary) -"aEK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/storage/primary) -"aEL" = (/obj/structure/table,/obj/item/weapon/wirecutters,/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/open/floor/plasteel,/area/storage/primary) -"aEM" = (/obj/structure/table,/obj/item/device/t_scanner,/obj/machinery/airalarm{pixel_y = 23},/turf/open/floor/plasteel,/area/storage/primary) -"aEN" = (/obj/structure/table,/obj/item/device/assembly/igniter{pixel_x = -8; pixel_y = -4},/obj/item/device/assembly/igniter,/obj/item/weapon/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) -"aEO" = (/obj/structure/table,/obj/item/device/assembly/signaler,/obj/item/device/assembly/signaler,/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20},/obj/item/device/multitool,/obj/item/device/multitool{pixel_x = 4},/turf/open/floor/plasteel,/area/storage/primary) -"aEP" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/machinery/light_switch{pixel_y = 28},/obj/item/weapon/stock_parts/cell/high/plus,/turf/open/floor/plasteel,/area/storage/primary) -"aEQ" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/turf/open/floor/plasteel,/area/storage/primary) -"aER" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/storage/primary) -"aES" = (/obj/machinery/vending/tool,/turf/open/floor/plasteel,/area/storage/primary) -"aET" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/vault{dir = 1},/area/ai_monitored/nuke_storage) -"aEU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/bluegrid,/area/ai_monitored/nuke_storage) -"aEV" = (/obj/machinery/nuclearbomb/selfdestruct{layer = 4},/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/nuke_storage) -"aEW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/bluegrid,/area/ai_monitored/nuke_storage) -"aEX" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/vault{dir = 4},/area/ai_monitored/nuke_storage) -"aEY" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/black,/area/gateway) -"aEZ" = (/obj/structure/window/reinforced,/turf/open/floor/plasteel/black,/area/gateway) -"aFa" = (/obj/structure/cable{d1 = 1; d2 = 2; 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/black,/area/gateway) -"aFb" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/gateway) -"aFc" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/gateway) -"aFd" = (/obj/structure/rack{dir = 1},/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint) -"aFe" = (/obj/machinery/suit_storage_unit/standard_unit,/turf/open/floor/plasteel/warning{dir = 10},/area/ai_monitored/storage/eva) -"aFf" = (/obj/machinery/suit_storage_unit/standard_unit,/turf/open/floor/plasteel/warning{dir = 2},/area/ai_monitored/storage/eva) -"aFg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aFh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aFi" = (/obj/machinery/suit_storage_unit/standard_unit,/obj/machinery/light,/obj/machinery/camera{c_tag = "EVA Storage"; dir = 1},/turf/open/floor/plasteel/warning{dir = 2},/area/ai_monitored/storage/eva) -"aFj" = (/obj/machinery/suit_storage_unit/standard_unit,/turf/open/floor/plasteel/warning{dir = 6},/area/ai_monitored/storage/eva) -"aFk" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/closed/wall/r_wall,/area/ai_monitored/storage/eva) -"aFl" = (/obj/machinery/door/airlock/command{name = "Command Tool Storage"; req_access = null; req_access_txt = "19"},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aFm" = (/obj/machinery/door/airlock/command{name = "Command Tool Storage"; req_access = null; req_access_txt = "19"},/turf/open/floor/plasteel/black,/area/ai_monitored/storage/eva) -"aFn" = (/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/sleep) -"aFo" = (/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,/turf/open/floor/plasteel/neutral/side{dir = 4},/area/crew_quarters/sleep) -"aFp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/crew_quarters/toilet) -"aFq" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/structure/sink{icon_state = "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) -"aFr" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aFs" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aFt" = (/obj/machinery/door/airlock{name = "Unisex Showers"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aFu" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aFv" = (/obj/machinery/light/small,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aFw" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aFx" = (/obj/structure/table/wood,/obj/structure/mirror{pixel_x = -28},/obj/item/weapon/lipstick/random{pixel_x = 2; pixel_y = 2},/obj/item/weapon/lipstick/random{pixel_x = -2; pixel_y = -2},/turf/open/floor/plasteel/white/side{dir = 4},/area/crew_quarters/theatre) -"aFy" = (/obj/structure/chair/stool,/obj/effect/landmark/start{name = "Mime"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white/side{dir = 4},/area/crew_quarters/theatre) -"aFz" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white/side{dir = 4},/area/crew_quarters/theatre) -"aFA" = (/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/crew_quarters/theatre) -"aFB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/sortjunction{dir = 2; icon_state = "pipe-j1s"; sortType = 18},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aFC" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aFD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aFE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aFF" = (/obj/effect/decal/cleanable/cobweb2,/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aFG" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aFH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aFI" = (/obj/structure/cable{d1 = 4; d2 = 8; 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/fsmaint2) -"aFJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; 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/fsmaint2) -"aFK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aFL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aFM" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aFN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aFO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/power/apc{dir = 2; name = "Chapel APC"; pixel_x = 0; pixel_y = -24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/chapel/main) -"aFP" = (/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/fsmaint2) -"aFQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/chapel/main) -"aFR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/black,/area/chapel/main) -"aFS" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/chapel/main) -"aFT" = (/obj/machinery/door/window{dir = 8; name = "Mass Driver"; req_access_txt = "22"},/obj/machinery/mass_driver{dir = 4; id = "chapelgun"; name = "Holy Driver"},/turf/open/floor/plating/warnplate{dir = 8},/area/chapel/main) -"aFU" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/effect/landmark/event_spawn,/turf/open/floor/plating/warnplate{dir = 4},/area/chapel/main) -"aFV" = (/obj/machinery/door/poddoor{id = "chapelgun"; name = "Chapel Launcher Door"},/turf/open/floor/plating,/area/chapel/main) -"aFW" = (/turf/closed/wall/shuttle{icon_state = "swall11"; dir = 2},/area/shuttle/arrival) -"aFX" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular,/turf/open/floor/plasteel/shuttle,/area/shuttle/arrival) -"aFY" = (/turf/open/floor/plasteel/shuttle,/area/shuttle/arrival) -"aFZ" = (/obj/machinery/computer/arcade,/turf/open/floor/plasteel/shuttle,/area/shuttle/arrival) -"aGa" = (/obj/structure/closet/wardrobe/green,/turf/open/floor/plasteel/shuttle,/area/shuttle/arrival) -"aGb" = (/obj/structure/closet/wardrobe/black,/turf/open/floor/plasteel/shuttle,/area/shuttle/arrival) -"aGc" = (/obj/structure/closet/wardrobe/mixed,/turf/open/floor/plasteel/shuttle,/area/shuttle/arrival) -"aGd" = (/obj/structure/closet/wardrobe/grey,/turf/open/floor/plasteel/shuttle,/area/shuttle/arrival) -"aGe" = (/obj/machinery/requests_console{department = "Arrival shuttle"; pixel_y = 30},/turf/open/floor/plasteel/shuttle,/area/shuttle/arrival) -"aGf" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/black,/area/shuttle/arrival) -"aGg" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"; dir = 8},/turf/open/floor/plasteel/black,/area/shuttle/arrival) -"aGh" = (/obj/machinery/power/apc{dir = 4; name = "Entry Hall APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable,/turf/open/floor/plasteel/arrival{dir = 4},/area/hallway/secondary/entry) -"aGi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/red/side{dir = 8},/area/security/checkpoint2) -"aGj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel,/area/security/checkpoint2) -"aGk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel,/area/security/checkpoint2) -"aGl" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel,/area/security/checkpoint2) -"aGm" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/security/checkpoint2) -"aGn" = (/turf/open/floor/plasteel/red/side{dir = 4},/area/security/checkpoint2) -"aGo" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/food/snacks/grown/wheat,/obj/item/weapon/reagent_containers/food/snacks/grown/watermelon,/obj/item/weapon/reagent_containers/food/snacks/grown/watermelon,/obj/item/weapon/reagent_containers/food/snacks/grown/watermelon,/obj/item/weapon/reagent_containers/food/snacks/grown/citrus/orange,/obj/item/weapon/reagent_containers/food/snacks/grown/grapes,/obj/item/weapon/reagent_containers/food/snacks/grown/cocoapod,/turf/open/floor/plasteel/green/side{dir = 4},/area/hallway/secondary/construction{name = "\improper Garden"}) -"aGp" = (/obj/machinery/door/airlock{name = "Garden"; req_access_txt = "0"},/turf/open/floor/plasteel,/area/hallway/secondary/construction{name = "\improper Garden"}) -"aGq" = (/turf/open/floor/plasteel,/area/storage/primary) -"aGr" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/storage/primary) -"aGs" = (/obj/structure/closet/crate{name = "Gold Crate"},/obj/item/stack/sheet/mineral/gold{pixel_x = -1; pixel_y = 5},/obj/item/stack/sheet/mineral/gold{pixel_y = 2},/obj/item/stack/sheet/mineral/gold{pixel_x = 1; pixel_y = -2},/obj/item/weapon/storage/belt/champion,/turf/open/floor/plasteel/vault{dir = 1},/area/ai_monitored/nuke_storage) -"aGt" = (/turf/open/floor/bluegrid,/area/ai_monitored/nuke_storage) -"aGu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/bluegrid,/area/ai_monitored/nuke_storage) -"aGv" = (/obj/item/weapon/coin/silver{pixel_x = 7; pixel_y = 12},/obj/item/weapon/coin/silver{pixel_x = 12; pixel_y = 7},/obj/item/weapon/coin/silver{pixel_x = 4; pixel_y = 8},/obj/item/weapon/coin/silver{pixel_x = -6; pixel_y = 5},/obj/item/weapon/coin/silver{pixel_x = 5; pixel_y = -8},/obj/structure/closet/crate{name = "Silver Crate"},/turf/open/floor/plasteel/vault{dir = 4},/area/ai_monitored/nuke_storage) -"aGw" = (/obj/machinery/camera{c_tag = "Gateway"; dir = 4; network = list("SS13")},/obj/structure/table,/obj/structure/sign/biohazard{pixel_x = -32},/obj/item/weapon/storage/firstaid/regular,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/gateway) -"aGx" = (/obj/structure/table,/obj/item/weapon/paper/pamphlet,/turf/open/floor/plasteel,/area/gateway) -"aGy" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/gateway) -"aGz" = (/obj/structure/table,/obj/item/device/radio/off{pixel_y = 6},/obj/item/device/radio/off{pixel_x = 6; pixel_y = 4},/obj/item/device/radio/off{pixel_x = -6; pixel_y = 4},/obj/item/device/radio/off,/turf/open/floor/plasteel,/area/gateway) -"aGA" = (/obj/structure/table,/obj/machinery/recharger,/obj/structure/sign/biohazard{pixel_x = 32},/turf/open/floor/plasteel,/area/gateway) -"aGB" = (/obj/structure/reagent_dispensers/watertank,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint) -"aGC" = (/obj/structure/grille,/obj/structure/cable,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/ai_monitored/storage/eva) -"aGD" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_command{name = "EVA Storage"; req_access_txt = "18"},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aGE" = (/obj/structure/grille,/obj/structure/cable,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/ai_monitored/storage/eva) -"aGF" = (/obj/structure/sign/securearea,/turf/closed/wall/r_wall,/area/ai_monitored/storage/eva) -"aGG" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/black,/area/ai_monitored/storage/eva) -"aGH" = (/obj/machinery/camera{c_tag = "Dormitory South"; c_tag_order = 999; dir = 4},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/neutral/side{dir = 8},/area/crew_quarters/sleep) -"aGI" = (/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/sleep) -"aGJ" = (/obj/machinery/door/airlock{name = "Unisex Restrooms"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aGK" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aGL" = (/obj/machinery/power/apc{dir = 4; name = "Dormitory Bathrooms APC"; pixel_x = 26; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable,/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aGM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/crew_quarters/toilet) -"aGN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/closed/wall,/area/crew_quarters/toilet) -"aGO" = (/obj/machinery/light/small{dir = 8},/obj/structure/dresser,/turf/open/floor/plasteel/redblue/redside,/area/crew_quarters/theatre) -"aGP" = (/turf/open/floor/plasteel/redblue/redside,/area/crew_quarters/theatre) -"aGQ" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 1},/turf/open/floor/plasteel/redblue/redside,/area/crew_quarters/theatre) -"aGR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aGS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aGT" = (/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aGU" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aGV" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/space,/area/space) -"aGW" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aGX" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aGY" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aGZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/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/fsmaint2) -"aHa" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aHb" = (/turf/closed/wall,/area/library) -"aHc" = (/turf/closed/wall,/area/chapel/office) -"aHd" = (/obj/machinery/power/apc{dir = 2; name = "Chapel Office APC"; pixel_x = 0; pixel_y = -24},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/chapel/office) -"aHe" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aHf" = (/turf/open/floor/plasteel/black,/area/chapel/main) -"aHg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/chapel/main) -"aHh" = (/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; pixel_y = 0},/turf/open/floor/plasteel/black,/area/chapel/main) -"aHi" = (/obj/structure/chair,/turf/open/floor/plasteel/shuttle,/area/shuttle/arrival) -"aHj" = (/turf/closed/wall/shuttle{icon_state = "swall1"; dir = 2},/area/shuttle/arrival) -"aHk" = (/obj/structure/chair{dir = 8},/obj/effect/landmark{name = "JoinLate"},/turf/open/floor/plasteel/shuttle,/area/shuttle/arrival) -"aHl" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 8},/turf/open/floor/plasteel/black,/area/shuttle/arrival) -"aHm" = (/turf/open/floor/plasteel/arrival{dir = 4},/area/hallway/secondary/entry) -"aHn" = (/obj/machinery/camera{c_tag = "Security Checkpoint"; dir = 1},/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; 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/checkpoint2) -"aHo" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/red/side,/area/security/checkpoint2) -"aHp" = (/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel/red/side,/area/security/checkpoint2) -"aHq" = (/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/checkpoint2) -"aHr" = (/obj/machinery/recharger{pixel_y = 4},/obj/structure/table,/turf/open/floor/plasteel/red/side,/area/security/checkpoint2) -"aHs" = (/obj/item/device/radio/off,/obj/item/weapon/crowbar,/obj/item/device/assembly/flash/handheld,/obj/structure/table,/turf/open/floor/plasteel/red/side{dir = 6},/area/security/checkpoint2) -"aHt" = (/obj/structure/table/glass,/obj/item/weapon/cultivator,/obj/item/weapon/hatchet,/obj/item/weapon/crowbar,/obj/item/device/plant_analyzer,/obj/item/weapon/reagent_containers/glass/bucket,/turf/open/floor/plasteel/green/side{dir = 4},/area/hallway/secondary/construction{name = "\improper Garden"}) -"aHu" = (/obj/machinery/camera{c_tag = "Garden"; dir = 8; network = list("SS13")},/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/plasteel,/area/hallway/secondary/construction{name = "\improper Garden"}) -"aHv" = (/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/weapon/screwdriver{pixel_y = 16},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel,/area/storage/primary) -"aHw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel,/area/storage/primary) -"aHx" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/storage/primary) -"aHy" = (/obj/effect/landmark/start{name = "Assistant"},/turf/open/floor/plasteel,/area/storage/primary) -"aHz" = (/obj/effect/landmark/start{name = "Assistant"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/storage/primary) -"aHA" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/storage/primary) -"aHB" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/machinery/light{dir = 4},/turf/open/floor/plasteel,/area/storage/primary) -"aHC" = (/turf/open/floor/plasteel/vault{dir = 1},/area/ai_monitored/nuke_storage) -"aHD" = (/obj/machinery/light,/turf/open/floor/plasteel/vault{dir = 6},/area/ai_monitored/nuke_storage) -"aHE" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/vault,/area/ai_monitored/nuke_storage) -"aHF" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/camera/motion{c_tag = "Vault"; dir = 1; network = list("MiniSat")},/obj/machinery/light,/turf/open/floor/plasteel/vault{dir = 10},/area/ai_monitored/nuke_storage) -"aHG" = (/obj/structure/safe,/obj/item/clothing/head/bearpelt,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass,/obj/item/weapon/gun/projectile/revolver/russian,/obj/item/ammo_box/a357,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka/badminka,/turf/open/floor/plasteel/vault{dir = 4},/area/ai_monitored/nuke_storage) -"aHH" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint) -"aHI" = (/obj/item/device/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) -"aHJ" = (/obj/structure/chair/stool,/turf/open/floor/plasteel,/area/gateway) -"aHK" = (/turf/open/floor/plasteel,/area/gateway) -"aHL" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel,/area/gateway) -"aHM" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint) -"aHN" = (/obj/structure/table,/obj/item/stack/sheet/rglass{amount = 50},/obj/item/stack/sheet/rglass{amount = 50},/obj/item/stack/rods{amount = 50},/obj/item/stack/rods{amount = 50},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/warning{dir = 8},/area/ai_monitored/storage/eva) -"aHO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/ai_monitored/storage/eva) -"aHP" = (/turf/open/floor/plasteel/black,/area/ai_monitored/storage/eva) -"aHQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/ai_monitored/storage/eva) -"aHR" = (/obj/item/stack/sheet/plasteel{amount = 10},/obj/structure/table,/turf/open/floor/plasteel/warning{dir = 4},/area/ai_monitored/storage/eva) -"aHS" = (/obj/machinery/light{dir = 8},/obj/structure/table,/obj/item/stack/sheet/plasteel{amount = 10},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aHT" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/rglass{amount = 50},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aHU" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/fore) -"aHV" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/blue/corner,/area/hallway/primary/fore) -"aHW" = (/obj/structure/sink{icon_state = "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) -"aHX" = (/obj/machinery/light_switch{pixel_x = 27},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aHY" = (/obj/structure/toilet{pixel_y = 8},/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aHZ" = (/obj/structure/toilet{pixel_y = 8},/obj/machinery/light/small{dir = 8},/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aIa" = (/obj/machinery/light/small{dir = 8},/obj/machinery/recharge_station,/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aIb" = (/obj/structure/table/wood,/obj/structure/mirror{pixel_x = -28},/obj/item/device/flashlight/lamp/bananalamp{pixel_y = 3},/turf/open/floor/plasteel/redblue,/area/crew_quarters/theatre) -"aIc" = (/obj/structure/chair/stool,/obj/effect/landmark/start{name = "Clown"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/redblue,/area/crew_quarters/theatre) -"aId" = (/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) -"aIe" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/crew_quarters/theatre) -"aIf" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 4; 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/fsmaint2) -"aIg" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aIh" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j1"; dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aIi" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aIj" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aIk" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aIl" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/sortjunction{dir = 4; icon_state = "pipe-j1s"; sortType = 19},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aIm" = (/obj/structure/cable{d1 = 4; d2 = 8; 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/fsmaint2) -"aIn" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aIo" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/sortjunction{dir = 4; icon_state = "pipe-j1s"; sortType = 20},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aIp" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aIq" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aIr" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aIs" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aIt" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aIu" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aIv" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aIw" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aIx" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/space,/area/space) -"aIy" = (/obj/structure/disposalpipe/sortjunction{dir = 4; icon_state = "pipe-j2s"; sortType = 17},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aIz" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aIA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/library) -"aIB" = (/obj/machinery/door/airlock/maintenance{name = "Library Maintenance"; req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/library) -"aIC" = (/obj/structure/table/wood,/obj/item/weapon/storage/pill_bottle/dice,/turf/open/floor/wood,/area/library) -"aID" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/stack/packageWrap,/turf/open/floor/wood,/area/library) -"aIE" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/turf/open/floor/wood,/area/library) -"aIF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/chapel/office) -"aIG" = (/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/chapel/office) -"aIH" = (/obj/structure/closet/wardrobe/chaplain_black,/obj/item/device/radio/intercom{pixel_y = 25},/turf/open/floor/plasteel/grimy,/area/chapel/office) -"aII" = (/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) -"aIJ" = (/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/camera{c_tag = "Chapel Office"; dir = 2; network = list("SS13")},/turf/open/floor/plasteel/grimy,/area/chapel/office) -"aIK" = (/obj/machinery/airalarm{pixel_y = 25},/turf/open/floor/plasteel/grimy,/area/chapel/office) -"aIL" = (/obj/structure/closet/coffin,/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/black,/area/chapel/office) -"aIM" = (/obj/structure/closet/coffin,/obj/machinery/door/window/eastleft{name = "Coffin Storage"; req_access_txt = "22"},/turf/open/floor/plasteel/black,/area/chapel/office) -"aIN" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/black,/area/chapel/main) -"aIO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/chapel/main) -"aIP" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/chapel/main) -"aIQ" = (/turf/open/floor/plasteel/chapel{dir = 1},/area/chapel/main) -"aIR" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/food/snacks/grown/poppy,/obj/item/weapon/reagent_containers/food/snacks/grown/harebell,/turf/open/floor/plasteel/chapel{dir = 4},/area/chapel/main) -"aIS" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/chapel/main) -"aIT" = (/turf/closed/wall/shuttle{icon_state = "swall_s6"; dir = 2},/area/shuttle/escape) -"aIU" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/escape) -"aIV" = (/turf/closed/wall/shuttle{icon_state = "swall_s10"; dir = 2},/area/shuttle/escape) -"aIW" = (/obj/effect/landmark{name = "Marauder Entry"},/turf/open/space,/area/space) -"aIX" = (/obj/machinery/door/airlock/shuttle{name = "Arrivals Shuttle Airlock"},/turf/open/floor/plasteel/shuttle,/area/shuttle/arrival) -"aIY" = (/obj/effect/landmark{name = "Observer-Start"},/turf/open/floor/plasteel/shuttle,/area/shuttle/arrival) -"aIZ" = (/obj/machinery/status_display{density = 0; layer = 3; pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel/white/corner{dir = 4},/area/hallway/secondary/entry) -"aJa" = (/obj/machinery/door/airlock/security{name = "Security Checkpoint"; req_access = null; req_access_txt = "1"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/security/checkpoint2) -"aJb" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/checkpoint2) -"aJc" = (/obj/machinery/door/firedoor,/obj/structure/table/reinforced,/obj/item/weapon/paper,/obj/machinery/door/window/westright{dir = 1; name = "Security Checkpoint"; req_access_txt = "1"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/delivery,/area/hallway/secondary/entry) -"aJd" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plasteel/green/side{dir = 5},/area/hallway/secondary/construction{name = "\improper Garden"}) -"aJe" = (/obj/effect/landmark/start{name = "Assistant"},/turf/open/floor/plasteel,/area/hallway/secondary/construction{name = "\improper Garden"}) -"aJf" = (/obj/item/weapon/reagent_containers/spray/plantbgone,/obj/item/weapon/reagent_containers/spray/pestspray{pixel_x = 3; pixel_y = 4},/obj/item/weapon/reagent_containers/glass/bottle/nutrient/ez,/obj/item/weapon/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/hallway/secondary/construction{name = "\improper Garden"}) -"aJg" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/turf/open/floor/plasteel,/area/storage/primary) -"aJh" = (/obj/structure/chair/stool{pixel_y = 8},/obj/effect/landmark/start{name = "Assistant"},/turf/open/floor/plasteel,/area/storage/primary) -"aJi" = (/obj/structure/table,/obj/item/weapon/weldingtool,/obj/item/weapon/crowbar,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/turf/open/floor/plasteel,/area/storage/primary) -"aJj" = (/obj/structure/sign/securearea,/turf/closed/wall/r_wall,/area/ai_monitored/nuke_storage) -"aJk" = (/obj/machinery/door/airlock/vault{icon_state = "door_locked"; locked = 1; req_access_txt = "53"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/vault{dir = 5},/area/ai_monitored/nuke_storage) -"aJl" = (/obj/machinery/light_switch{pixel_x = -20; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel,/area/gateway) -"aJm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/gateway) -"aJn" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/gateway) -"aJo" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/gateway) -"aJp" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/closet/l3closet/scientist,/turf/open/floor/plasteel/warning{dir = 9},/area/gateway) -"aJq" = (/obj/structure/grille,/obj/structure/window/fulltile{health = 25},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint) -"aJr" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/weapon/crowbar,/turf/open/floor/plasteel/warning{dir = 8},/area/ai_monitored/storage/eva) -"aJs" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/ai_monitored/storage/eva) -"aJt" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel/black,/area/ai_monitored/storage/eva) -"aJu" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel/warning{dir = 4},/area/ai_monitored/storage/eva) -"aJv" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/central) -"aJw" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/open/floor/plasteel,/area/hallway/primary/central) -"aJx" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/open/floor/plasteel/blue/side{dir = 4},/area/hallway/primary/central) -"aJy" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Dormitory"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/neutral/side{dir = 8},/area/crew_quarters/sleep) -"aJz" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Dormitory"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/side{dir = 4},/area/crew_quarters/sleep) -"aJA" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/structure/mirror{pixel_x = -28},/obj/effect/landmark/start{name = "Assistant"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aJB" = (/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aJC" = (/obj/machinery/door/airlock{name = "Unit 1"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aJD" = (/obj/machinery/door/airlock{name = "Unit 2"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aJE" = (/obj/machinery/door/airlock{name = "Unit B"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aJF" = (/obj/structure/table/wood,/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/item/weapon/storage/crayons{pixel_x = 3; pixel_y = 3},/obj/item/weapon/reagent_containers/food/snacks/pie/cream{pixel_x = -3; pixel_y = -3},/turf/open/floor/plasteel/redblue,/area/crew_quarters/theatre) -"aJG" = (/turf/open/floor/plasteel/redblue,/area/crew_quarters/theatre) -"aJH" = (/obj/structure/closet/secure_closet/freezer/cream_pie,/turf/open/floor/plasteel/redblue,/area/crew_quarters/theatre) -"aJI" = (/obj/machinery/power/apc{dir = 8; name = "Theatre APC"; pixel_x = -25},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plating,/area/crew_quarters/theatre) -"aJJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aJK" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aJL" = (/obj/machinery/power/apc{dir = 2; name = "Bar APC"; pixel_y = -24},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/crew_quarters/bar) -"aJM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/crew_quarters/bar) -"aJN" = (/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/crew_quarters/bar) -"aJO" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/closed/wall,/area/crew_quarters/bar) -"aJP" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=2"; freq = 1400; location = "Bar"},/obj/structure/plasticflaps{opacity = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/bot{dir = 2},/area/crew_quarters/bar) -"aJQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/crew_quarters/kitchen) -"aJR" = (/obj/machinery/power/apc{dir = 2; name = "Kitchen APC"; pixel_y = -24},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/crew_quarters/kitchen) -"aJS" = (/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/fsmaint2) -"aJT" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aJU" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aJV" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aJW" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/sortjunction{dir = 4; icon_state = "pipe-j1s"; sortType = 21},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aJX" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aJY" = (/obj/machinery/power/apc{dir = 2; name = "Hydroponics APC"; pixel_y = -24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plating,/area/hydroponics) -"aJZ" = (/turf/closed/wall,/area/hydroponics) -"aKa" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/hydroponics) -"aKb" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aKc" = (/obj/structure/filingcabinet,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/library) -"aKd" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/wood,/area/library) -"aKe" = (/obj/structure/chair/office/dark,/obj/machinery/camera{c_tag = "Library North"; dir = 2; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/wood,/area/library) -"aKf" = (/obj/structure/chair/office/dark,/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/effect/landmark/start{name = "Assistant"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/wood,/area/library) -"aKg" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/wood,/area/library) -"aKh" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/wood,/area/library) -"aKi" = (/obj/structure/bodycontainer/crematorium,/obj/effect/landmark{name = "revenantspawn"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/chapel/office) -"aKj" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/chapel/office) -"aKk" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/turf/open/floor/plasteel/grimy,/area/chapel/office) -"aKl" = (/obj/effect/landmark/start{name = "Chaplain"},/obj/structure/chair,/turf/open/floor/plasteel/grimy,/area/chapel/office) -"aKm" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/obj/item/weapon/storage/crayons,/turf/open/floor/plasteel/grimy,/area/chapel/office) -"aKn" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/grimy,/area/chapel/office) -"aKo" = (/obj/structure/closet/coffin,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/black,/area/chapel/office) -"aKp" = (/turf/open/floor/plasteel/chapel{dir = 8},/area/chapel/main) -"aKq" = (/obj/structure/table/glass,/turf/open/floor/plasteel/chapel,/area/chapel/main) -"aKr" = (/turf/open/floor/plasteel/shuttle/white,/turf/closed/wall/shuttle/interior{icon_state = "swall_f9"},/area/shuttle/escape) -"aKs" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/turf/open/floor/plasteel/shuttle/white,/area/shuttle/escape) -"aKt" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) -"aKu" = (/obj/machinery/computer/emergency_shuttle,/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) -"aKv" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/crowbar,/turf/open/floor/plasteel/shuttle/white,/area/shuttle/escape) -"aKw" = (/turf/open/floor/plasteel/shuttle/white,/turf/closed/wall/shuttle/interior{icon_state = "swall_f5"},/area/shuttle/escape) -"aKx" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/shuttle,/area/shuttle/arrival) -"aKy" = (/turf/closed/wall/shuttle{icon_state = "swall2"; dir = 2},/area/shuttle/arrival) -"aKz" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aKA" = (/turf/open/floor/plasteel/bot,/area/hallway/secondary/entry) -"aKB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/bot,/area/hallway/secondary/entry) -"aKC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/bot,/area/hallway/secondary/entry) -"aKD" = (/obj/machinery/camera{c_tag = "Arrivals Lounge"; dir = 2},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aKE" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aKF" = (/obj/structure/sign/map/left{pixel_y = 32},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aKG" = (/obj/structure/sign/map/right{pixel_y = 32},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aKH" = (/obj/structure/table/glass,/obj/item/weapon/hatchet,/obj/item/weapon/cultivator,/obj/item/weapon/crowbar,/obj/item/weapon/reagent_containers/glass/bucket,/obj/item/device/plant_analyzer,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/plasteel/green/side{dir = 4},/area/hallway/secondary/construction{name = "\improper Garden"}) -"aKI" = (/obj/item/weapon/storage/bag/plants/portaseeder,/obj/structure/table/glass,/obj/item/device/plant_analyzer,/obj/item/device/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/hallway/secondary/construction{name = "\improper Garden"}) -"aKJ" = (/obj/structure/table,/obj/item/weapon/wrench,/obj/item/device/analyzer,/turf/open/floor/plasteel,/area/storage/primary) -"aKK" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plasteel,/area/storage/primary) -"aKL" = (/obj/structure/table,/obj/item/weapon/crowbar,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/clothing/gloves/color/fyellow,/turf/open/floor/plasteel,/area/storage/primary) -"aKM" = (/obj/structure/table,/obj/item/weapon/storage/belt/utility,/obj/item/weapon/storage/firstaid/regular,/turf/open/floor/plasteel,/area/storage/primary) -"aKN" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel,/area/storage/primary) -"aKO" = (/turf/open/floor/plasteel/delivery,/area/storage/primary) -"aKP" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; freq = 1400; location = "Tool Storage"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/bot,/area/storage/primary) -"aKQ" = (/obj/structure/disposalpipe/trunk,/obj/machinery/disposal/bin,/turf/open/floor/plasteel,/area/storage/primary) -"aKR" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hallway/primary/port) -"aKS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/vault{dir = 5},/area/hallway/primary/port) -"aKT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/gateway) -"aKU" = (/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) -"aKV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/gateway) -"aKW" = (/obj/machinery/light{dir = 4},/obj/structure/closet/secure_closet/exile,/turf/open/floor/plasteel/warning{dir = 10},/area/gateway) -"aKX" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/item/weapon/extinguisher,/obj/item/weapon/extinguisher,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/warning{dir = 8},/area/ai_monitored/storage/eva) -"aKY" = (/obj/machinery/camera{c_tag = "EVA South"; dir = 1},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aKZ" = (/obj/structure/tank_dispenser/oxygen,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/open/floor/plasteel/warning{dir = 4},/area/ai_monitored/storage/eva) -"aLa" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hallway/primary/central) -"aLb" = (/turf/open/floor/plasteel/blue/side{dir = 9},/area/hallway/primary/central) -"aLc" = (/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) -"aLd" = (/turf/open/floor/plasteel/blue/corner{dir = 1},/area/hallway/primary/central) -"aLe" = (/turf/open/floor/plasteel,/area/hallway/primary/central) -"aLf" = (/obj/structure/sign/directions/security{dir = 1; icon_state = "direction_sec"; pixel_x = 32; pixel_y = 40},/obj/structure/sign/directions/medical{dir = 4; icon_state = "direction_med"; pixel_x = 32; pixel_y = 32},/obj/structure/sign/directions/evac{dir = 4; icon_state = "direction_evac"; pixel_x = 32; pixel_y = 24},/turf/open/floor/plasteel/blue/corner{dir = 4},/area/hallway/primary/central) -"aLg" = (/turf/open/floor/plasteel/blue/side{dir = 1},/area/hallway/primary/central) -"aLh" = (/turf/open/floor/plasteel/blue/side{dir = 5},/area/hallway/primary/central) -"aLi" = (/turf/closed/wall,/area/hallway/primary/central) -"aLj" = (/obj/machinery/vending/cola,/turf/open/floor/plasteel/black,/area/hallway/primary/central) -"aLk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/neutral/side{dir = 8},/area/hallway/primary/central) -"aLl" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/side{dir = 4},/area/hallway/primary/central) -"aLm" = (/obj/machinery/camera{c_tag = "Dormitory Toilets"; dir = 1},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aLn" = (/obj/machinery/light/small,/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aLo" = (/obj/machinery/door/airlock{name = "Theatre Backstage"; req_access_txt = "46"},/turf/open/floor/plasteel,/area/crew_quarters/theatre) -"aLp" = (/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/fsmaint2) -"aLq" = (/turf/closed/wall,/area/crew_quarters/bar) -"aLr" = (/obj/item/weapon/reagent_containers/food/drinks/shaker,/obj/item/weapon/gun/projectile/revolver/doublebarrel,/obj/structure/table/wood,/obj/item/stack/spacecash/c10,/obj/item/stack/spacecash/c100,/turf/open/floor/wood,/area/crew_quarters/bar) -"aLs" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/crew_quarters/bar) -"aLt" = (/obj/structure/sink/kitchen{pixel_y = 28},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/crew_quarters/bar) -"aLu" = (/obj/machinery/door/window/southleft{base_state = "left"; dir = 2; icon_state = "left"; name = "Bar Delivery"; req_access_txt = "25"},/turf/open/floor/plasteel/delivery,/area/crew_quarters/bar) -"aLv" = (/turf/closed/wall,/area/crew_quarters/kitchen) -"aLw" = (/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/crew_quarters/kitchen) -"aLx" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/crew_quarters/kitchen) -"aLy" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=2"; freq = 1400; location = "Kitchen"},/obj/structure/plasticflaps{opacity = 1},/turf/open/floor/plasteel/bot{dir = 2},/area/crew_quarters/kitchen) -"aLz" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=2"; freq = 1400; location = "Hydroponics"},/obj/structure/plasticflaps{opacity = 1},/turf/open/floor/plasteel/bot{dir = 2},/area/hydroponics) -"aLA" = (/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/hydroponics) -"aLB" = (/obj/structure/table,/obj/machinery/reagentgrinder,/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) -"aLC" = (/obj/structure/table,/obj/item/weapon/book/manual/hydroponics_pod_people,/obj/item/weapon/paper/hydroponics,/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) -"aLD" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/wood,/area/library) -"aLE" = (/obj/structure/chair/office/dark{dir = 4},/turf/open/floor/wood,/area/library) -"aLF" = (/obj/structure/table/wood,/obj/item/weapon/folder/yellow,/obj/item/weapon/pen,/turf/open/floor/wood,/area/library) -"aLG" = (/obj/structure/table/wood,/obj/structure/disposalpipe/segment,/turf/open/floor/wood,/area/library) -"aLH" = (/obj/structure/chair/office/dark{dir = 8},/turf/open/floor/wood,/area/library) -"aLI" = (/obj/machinery/newscaster{pixel_x = 30},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/wood,/area/library) -"aLJ" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plasteel/black,/area/chapel/office) -"aLK" = (/obj/structure/disposalpipe/segment,/obj/machinery/button/crematorium{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/black,/area/chapel/office) -"aLL" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/chapel/office) -"aLM" = (/obj/structure/table/wood,/obj/item/device/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) -"aLN" = (/obj/structure/table/wood,/obj/item/weapon/pen,/obj/item/weapon/reagent_containers/food/drinks/bottle/holywater,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/grimy,/area/chapel/office) -"aLO" = (/obj/structure/table/wood,/obj/item/weapon/nullrod,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/grimy,/area/chapel/office) -"aLP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/grimy,/area/chapel/office) -"aLQ" = (/obj/structure/closet/coffin,/obj/machinery/door/window/eastleft{dir = 8; name = "Coffin Storage"; req_access_txt = "22"},/turf/open/floor/plasteel/black,/area/chapel/office) -"aLR" = (/obj/structure/table/glass,/turf/open/floor/plasteel/chapel{dir = 4},/area/chapel/main) -"aLS" = (/turf/closed/wall/shuttle{icon_state = "swall3"; dir = 2},/area/shuttle/escape) -"aLT" = (/obj/machinery/computer/atmos_alert,/turf/open/floor/plasteel/shuttle/white,/area/shuttle/escape) -"aLU" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) -"aLV" = (/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) -"aLW" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) -"aLX" = (/obj/machinery/computer/security,/turf/open/floor/plasteel/shuttle/white,/area/shuttle/escape) -"aLY" = (/turf/open/space,/turf/closed/wall/shuttle{icon_state = "swall_f5"; dir = 2},/area/shuttle/arrival) -"aLZ" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/shuttle,/area/shuttle/arrival) -"aMa" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/open/floor/plasteel/shuttle,/area/shuttle/arrival) -"aMb" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_l"; dir = 8},/turf/open/floor/plasteel/black,/area/shuttle/arrival) -"aMc" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/hallway/secondary/entry) -"aMd" = (/turf/open/floor/plasteel/neutral/side,/area/hallway/secondary/entry) -"aMe" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/neutral/side,/area/hallway/secondary/entry) -"aMf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/side,/area/hallway/secondary/entry) -"aMg" = (/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/secondary/entry) -"aMh" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/hallway/secondary/construction{name = "\improper Garden"}) -"aMi" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Garden"},/turf/open/floor/plasteel,/area/hallway/secondary/construction{name = "\improper Garden"}) -"aMj" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/storage/primary) -"aMk" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Primary Tool Storage"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/storage/primary) -"aMl" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Primary Tool Storage"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/storage/primary) -"aMm" = (/obj/structure/grille,/obj/structure/disposalpipe/segment,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/storage/primary) -"aMn" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hallway/primary/port) -"aMo" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hallway/primary/port) -"aMp" = (/obj/structure/grille,/obj/structure/cable,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hallway/primary/port) -"aMq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/vault{dir = 5},/area/hallway/primary/port) -"aMr" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/obj/structure/cable,/turf/open/floor/plating,/area/hallway/primary/port) -"aMs" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hallway/primary/port) -"aMt" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; 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/fpmaint) -"aMu" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{icon_state = "door_closed"; lockdownbyai = 0; locked = 0; name = "Gateway Access"; req_access_txt = "62"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/gateway) -"aMv" = (/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) -"aMw" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters{id = "stationawaygate"; name = "Gateway Access Shutters"},/turf/open/floor/plasteel,/area/gateway) -"aMx" = (/obj/structure/sign/securearea,/turf/closed/wall/r_wall,/area/gateway) -"aMy" = (/turf/open/floor/plasteel/blue/side{dir = 8},/area/hallway/primary/central) -"aMz" = (/turf/open/floor/plasteel/blue/side{dir = 4},/area/hallway/primary/central) -"aMA" = (/obj/machinery/vending/snack,/turf/open/floor/plasteel/black,/area/hallway/primary/central) -"aMB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/side{dir = 4},/area/hallway/primary/central) -"aMC" = (/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/light{dir = 1},/turf/open/floor/wood,/area/crew_quarters/theatre) -"aMD" = (/turf/open/floor/wood,/area/crew_quarters/theatre) -"aME" = (/obj/machinery/airalarm{dir = 2; pixel_y = 24},/turf/open/floor/wood,/area/crew_quarters/theatre) -"aMF" = (/obj/item/device/radio/intercom{pixel_y = 25},/obj/machinery/camera{c_tag = "Theatre Stage"; dir = 2},/turf/open/floor/wood,/area/crew_quarters/theatre) -"aMG" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/wood,/area/crew_quarters/theatre) -"aMH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aMI" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aMJ" = (/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) -"aMK" = (/obj/machinery/reagentgrinder,/obj/structure/table/wood,/turf/open/floor/wood,/area/crew_quarters/bar) -"aML" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/wood,/area/crew_quarters/bar) -"aMM" = (/obj/machinery/camera{c_tag = "Bar Storage"},/turf/open/floor/wood,/area/crew_quarters/bar) -"aMN" = (/turf/open/floor/wood,/area/crew_quarters/bar) -"aMO" = (/obj/structure/closet/secure_closet/freezer/meat,/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) -"aMP" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) -"aMQ" = (/obj/machinery/door/window/southleft{base_state = "left"; dir = 2; icon_state = "left"; name = "Kitchen Delivery"; req_access_txt = "28"},/turf/open/floor/plasteel/delivery,/area/crew_quarters/kitchen) -"aMR" = (/obj/machinery/door/window/eastright{name = "Hydroponics Delivery"; req_access_txt = "35"},/turf/open/floor/plasteel/delivery,/area/hydroponics) -"aMS" = (/obj/machinery/light_switch{pixel_y = 28},/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) -"aMT" = (/obj/structure/sink{pixel_y = 30},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) -"aMU" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) -"aMV" = (/obj/structure/closet/wardrobe/botanist,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) -"aMW" = (/obj/structure/closet/secure_closet/hydroponics,/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) -"aMX" = (/obj/machinery/airalarm{pixel_y = 24},/obj/machinery/camera{c_tag = "Hydroponics Storage"},/obj/machinery/light/small{dir = 1},/obj/machinery/plantgenes,/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) -"aMY" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) -"aMZ" = (/obj/structure/table,/obj/item/weapon/reagent_containers/spray/plantbgone{pixel_x = 0; pixel_y = 3},/obj/item/weapon/reagent_containers/spray/plantbgone{pixel_x = 8; pixel_y = 8},/obj/item/weapon/reagent_containers/spray/plantbgone{pixel_x = 13; pixel_y = 5},/obj/item/weapon/watertank,/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) -"aNa" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/open/floor/wood,/area/library) -"aNb" = (/obj/structure/chair/office/dark{dir = 4},/obj/effect/landmark/event_spawn,/turf/open/floor/wood,/area/library) -"aNc" = (/obj/structure/table/wood,/turf/open/floor/wood,/area/library) -"aNd" = (/obj/structure/table/wood,/obj/structure/disposalpipe/segment,/obj/item/toy/cards/deck/cas,/obj/item/toy/cards/deck/cas/black{pixel_x = -2; pixel_y = 6},/turf/open/floor/wood,/area/library) -"aNe" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/wood,/area/library) -"aNf" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/camera{c_tag = "Chapel Crematorium"; dir = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/chapel/office) -"aNg" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/black,/area/chapel/office) -"aNh" = (/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/black,/area/chapel/office) -"aNi" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/grimy,/area/chapel/office) -"aNj" = (/obj/structure/chair{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/grimy,/area/chapel/office) -"aNk" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/grimy,/area/chapel/office) -"aNl" = (/turf/open/floor/plasteel/grimy,/area/chapel/office) -"aNm" = (/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/black,/area/chapel/main) -"aNn" = (/obj/machinery/computer/crew,/turf/open/floor/plasteel/shuttle/white,/area/shuttle/escape) -"aNo" = (/obj/structure/chair{dir = 8},/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) -"aNp" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -29},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) -"aNq" = (/obj/machinery/button/flasher{id = "cockpit_flasher"; pixel_x = 6; pixel_y = -24},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) -"aNr" = (/obj/machinery/computer/communications,/turf/open/floor/plasteel/shuttle/white,/area/shuttle/escape) -"aNs" = (/obj/machinery/door/airlock/shuttle{name = "Arrivals Shuttle Airlock"},/obj/docking_port/mobile{dwidth = 5; height = 7; id = "arrival"; name = "arrival shuttle"; travelDir = -90; width = 15},/obj/docking_port/stationary{dwidth = 5; height = 7; id = "arrival_home"; name = "port bay 1"; width = 15},/turf/open/floor/plating,/area/shuttle/arrival) -"aNt" = (/turf/closed/wall/shuttle{icon_state = "swall13"; dir = 2},/area/shuttle/arrival) -"aNu" = (/turf/open/space,/turf/closed/wall/shuttle{icon_state = "swall_f9"; dir = 2},/area/shuttle/arrival) -"aNv" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/plasteel/warning{dir = 8},/area/hallway/secondary/entry) -"aNw" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/hallway/secondary/entry) -"aNx" = (/obj/structure/chair/comfy/beige,/obj/effect/landmark/start{name = "Assistant"},/turf/open/floor/plasteel/grimy,/area/hallway/secondary/entry) -"aNy" = (/obj/structure/chair/comfy/beige,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/grimy,/area/hallway/secondary/entry) -"aNz" = (/turf/open/floor/plasteel/grimy,/area/hallway/secondary/entry) -"aNA" = (/obj/structure/chair/comfy/beige,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/grimy,/area/hallway/secondary/entry) -"aNB" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green{pixel_x = 1; pixel_y = 5},/turf/open/floor/plasteel/grimy,/area/hallway/secondary/entry) -"aNC" = (/obj/machinery/vending/cigarette,/turf/open/floor/plasteel/black,/area/hallway/secondary/entry) -"aND" = (/turf/open/floor/plasteel/neutral/side{dir = 8},/area/hallway/secondary/entry) -"aNE" = (/obj/machinery/door/firedoor,/obj/machinery/newscaster{pixel_y = 32},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aNF" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/hallway/primary/port) -"aNG" = (/turf/open/floor/plasteel,/area/hallway/primary/port) -"aNH" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{name = "Port Hall APC"; dir = 1; pixel_y = 26},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aNI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aNJ" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aNK" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/hallway/primary/port) -"aNL" = (/obj/machinery/light{dir = 1},/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/turf/open/floor/plasteel/warning/corner{dir = 8},/area/hallway/primary/port) -"aNM" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/primary/port) -"aNN" = (/obj/machinery/camera{c_tag = "Port Hallway 2"; dir = 2},/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/primary/port) -"aNO" = (/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/primary/port) -"aNP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/primary/port) -"aNQ" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/warning/corner{dir = 4},/area/hallway/primary/port) -"aNR" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/port) -"aNS" = (/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/warning/corner{dir = 8},/area/hallway/primary/port) -"aNT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/primary/port) -"aNU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/primary/port) -"aNV" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/warning/corner{dir = 4},/area/hallway/primary/port) -"aNW" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = 30},/turf/open/floor/plasteel,/area/hallway/primary/central) -"aNX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/central) -"aNY" = (/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) -"aNZ" = (/obj/machinery/light{dir = 1},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/open/floor/plasteel,/area/hallway/primary/central) -"aOa" = (/turf/open/floor/plasteel/blue/corner{dir = 4},/area/hallway/primary/central) -"aOb" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/hallway/primary/central) -"aOc" = (/turf/open/floor/plasteel{icon_state = "L1"},/area/hallway/primary/central) -"aOd" = (/turf/open/floor/plasteel{icon_state = "L3"},/area/hallway/primary/central) -"aOe" = (/turf/open/floor/plasteel{icon_state = "L5"},/area/hallway/primary/central) -"aOf" = (/turf/open/floor/plasteel{icon_state = "L7"},/area/hallway/primary/central) -"aOg" = (/turf/open/floor/plasteel{icon_state = "L9"},/area/hallway/primary/central) -"aOh" = (/turf/open/floor/plasteel{icon_state = "L11"},/area/hallway/primary/central) -"aOi" = (/turf/open/floor/plasteel{desc = ""; icon_state = "L13"; name = "floor"},/area/hallway/primary/central) -"aOj" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) -"aOk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/hallway/primary/central) -"aOl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/central) -"aOm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/hallway/primary/central) -"aOn" = (/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) -"aOo" = (/obj/machinery/camera{c_tag = "Central Hallway North-East"; dir = 2},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hallway/primary/central) -"aOp" = (/obj/machinery/light{dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) -"aOq" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/open/floor/plasteel,/area/hallway/primary/central) -"aOr" = (/obj/machinery/airalarm{pixel_y = 23},/turf/open/floor/plasteel,/area/hallway/primary/central) -"aOs" = (/obj/structure/piano{tag = "icon-piano"; icon_state = "piano"},/turf/open/floor/wood,/area/crew_quarters/theatre) -"aOt" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/wood,/area/crew_quarters/theatre) -"aOu" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/wood,/area/crew_quarters/theatre) -"aOv" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/wood,/area/crew_quarters/theatre) -"aOw" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aOx" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aOy" = (/obj/machinery/computer/slot_machine,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aOz" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/light/small{dir = 8},/obj/structure/reagent_dispensers/beerkeg,/turf/open/floor/wood,/area/crew_quarters/bar) -"aOA" = (/obj/structure/disposalpipe/segment,/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/crew_quarters/bar) -"aOB" = (/obj/machinery/vending/cola,/turf/open/floor/wood,/area/crew_quarters/bar) -"aOC" = (/obj/machinery/vending/coffee,/turf/open/floor/wood,/area/crew_quarters/bar) -"aOD" = (/obj/machinery/icecream_vat,/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) -"aOE" = (/obj/machinery/chem_master/condimaster{name = "CondiMaster Neo"},/obj/machinery/camera{c_tag = "Kitchen Cold Room"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) -"aOF" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) -"aOG" = (/obj/structure/closet/crate/hydroponics,/obj/item/weapon/shovel/spade,/obj/item/weapon/wrench,/obj/item/weapon/reagent_containers/glass/bucket,/obj/item/weapon/wirecutters,/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) -"aOH" = (/obj/machinery/light/small,/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) -"aOI" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) -"aOJ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) -"aOK" = (/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) -"aOL" = (/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) -"aOM" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) -"aON" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) -"aOO" = (/obj/machinery/chem_master/condimaster,/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) -"aOP" = (/turf/open/floor/wood,/area/library) -"aOQ" = (/obj/structure/chair/office/dark{dir = 1},/turf/open/floor/wood,/area/library) -"aOR" = (/obj/structure/chair/office/dark{dir = 1},/obj/structure/disposalpipe/segment,/turf/open/floor/wood,/area/library) -"aOS" = (/obj/structure/bodycontainer/morgue,/obj/effect/landmark{name = "revenantspawn"},/turf/open/floor/plasteel/black,/area/chapel/office) -"aOT" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel/black,/area/chapel/office) -"aOU" = (/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) -"aOV" = (/obj/machinery/camera{c_tag = "Chapel North"; dir = 2; network = list("SS13")},/turf/open/floor/plasteel/black,/area/chapel/main) -"aOW" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/chapel/main) -"aOX" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/chapel/main) -"aOY" = (/turf/closed/wall,/area/hallway/secondary/exit) -"aOZ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hallway/secondary/exit) -"aPa" = (/turf/closed/wall/shuttle{icon_state = "swall13"; dir = 2},/area/shuttle/escape) -"aPb" = (/turf/closed/wall/shuttle{icon_state = "swall12"; dir = 2},/area/shuttle/escape) -"aPc" = (/turf/closed/wall/shuttle{icon_state = "swall14"; dir = 2},/area/shuttle/escape) -"aPd" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Cockpit"; req_access_txt = "19"},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) -"aPe" = (/obj/machinery/status_display,/turf/closed/wall/shuttle{icon_state = "swall12"; dir = 2},/area/shuttle/escape) -"aPf" = (/obj/machinery/hologram/holopad,/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aPg" = (/obj/structure/table/wood,/turf/open/floor/plasteel/grimy,/area/hallway/secondary/entry) -"aPh" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/snacks/chips,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/carpet,/area/hallway/secondary/entry) -"aPi" = (/turf/open/floor/carpet,/area/hallway/secondary/entry) -"aPj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/carpet,/area/hallway/secondary/entry) -"aPk" = (/obj/structure/chair/comfy/beige{dir = 8},/turf/open/floor/plasteel/grimy,/area/hallway/secondary/entry) -"aPl" = (/obj/machinery/vending/coffee,/turf/open/floor/plasteel/black,/area/hallway/secondary/entry) -"aPm" = (/turf/open/floor/goonplaque,/area/hallway/secondary/entry) -"aPn" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=CHW"; location = "Lockers"},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aPo" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aPp" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aPq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aPr" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aPs" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aPt" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/hallway/primary/port) -"aPu" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aPv" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aPw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aPx" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/port) -"aPy" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; 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) -"aPz" = (/obj/structure/cable{d1 = 1; d2 = 2; 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) -"aPA" = (/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/port) -"aPB" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aPC" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Central Access"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) -"aPD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) -"aPE" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/central) -"aPF" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hallway/primary/central) -"aPG" = (/turf/open/floor/plasteel{icon_state = "L2"},/area/hallway/primary/central) -"aPH" = (/turf/open/floor/plasteel{icon_state = "L4"},/area/hallway/primary/central) -"aPI" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=Lockers"; location = "EVA"},/turf/open/floor/plasteel{icon_state = "L6"},/area/hallway/primary/central) -"aPJ" = (/turf/open/floor/plasteel{icon_state = "L8"},/area/hallway/primary/central) -"aPK" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=Security"; location = "EVA2"},/turf/open/floor/plasteel{icon_state = "L10"},/area/hallway/primary/central) -"aPL" = (/turf/open/floor/plasteel{icon_state = "L12"},/area/hallway/primary/central) -"aPM" = (/turf/open/floor/plasteel{desc = ""; icon_state = "L14"},/area/hallway/primary/central) -"aPN" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/hallway/primary/central) -"aPO" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=EVA2"; location = "Dorm"},/turf/open/floor/plasteel,/area/hallway/primary/central) -"aPP" = (/obj/structure/table/wood,/obj/item/device/instrument/guitar,/turf/open/floor/wood,/area/crew_quarters/theatre) -"aPQ" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/wood,/area/crew_quarters/theatre) -"aPR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/effect/landmark/event_spawn,/turf/open/floor/wood,/area/crew_quarters/theatre) -"aPS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/wood,/area/crew_quarters/theatre) -"aPT" = (/obj/machinery/door/window{dir = 4; name = "Theatre Stage"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/wood,/area/crew_quarters/theatre) -"aPU" = (/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) -"aPV" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aPW" = (/obj/machinery/computer/slot_machine,/obj/machinery/light/small{dir = 4},/obj/machinery/status_display{density = 0; layer = 3; pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aPX" = (/obj/structure/closet/secure_closet/bar{req_access_txt = "25"},/turf/open/floor/wood,/area/crew_quarters/bar) -"aPY" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/wood,/area/crew_quarters/bar) -"aPZ" = (/obj/structure/closet/gmcloset,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/cable_coil,/obj/item/device/flashlight/lamp,/obj/item/device/flashlight/lamp/green,/turf/open/floor/wood,/area/crew_quarters/bar) -"aQa" = (/obj/structure/kitchenspike,/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) -"aQb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/mob/living/simple_animal/hostile/retaliate/goat{name = "Pete"},/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) -"aQc" = (/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) -"aQd" = (/obj/machinery/light/small{dir = 4},/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/closet/chefcloset,/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) -"aQe" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/hydroponics) -"aQf" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/hydroponics) -"aQg" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/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) -"aQh" = (/obj/machinery/bookbinder{pixel_y = 0},/turf/open/floor/wood,/area/library) -"aQi" = (/obj/structure/disposalpipe/segment,/turf/open/floor/wood,/area/library) -"aQj" = (/obj/machinery/photocopier,/turf/open/floor/wood,/area/library) -"aQk" = (/obj/machinery/door/airlock/glass{name = "Chapel Office"; req_access_txt = "22"},/turf/open/floor/plasteel/black,/area/chapel/office) -"aQl" = (/obj/machinery/door/morgue{name = "Confession Booth (Chaplain)"; req_access_txt = "22"},/turf/open/floor/plasteel/black,/area/chapel/main) -"aQm" = (/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1480; name = "Confessional Intercom"; pixel_x = 25},/obj/structure/chair,/turf/open/floor/plasteel/black,/area/chapel/main) -"aQn" = (/obj/structure/chair,/turf/open/floor/plasteel/red/side{dir = 9},/area/hallway/secondary/exit) -"aQo" = (/obj/structure/chair,/turf/open/floor/plasteel/red/side{dir = 1},/area/hallway/secondary/exit) -"aQp" = (/obj/machinery/light{dir = 1},/obj/structure/chair,/turf/open/floor/plasteel/red/side{dir = 1},/area/hallway/secondary/exit) -"aQq" = (/obj/structure/chair,/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/secondary/exit) -"aQr" = (/obj/structure/chair,/turf/open/floor/plasteel/warning{dir = 5},/area/hallway/secondary/exit) -"aQs" = (/obj/structure/chair,/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) -"aQt" = (/obj/machinery/flasher{id = "cockpit_flasher"; pixel_x = 6; pixel_y = 24},/turf/open/floor/plasteel/shuttle/white,/area/shuttle/escape) -"aQu" = (/turf/open/floor/plasteel/shuttle/white,/area/shuttle/escape) -"aQv" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/shuttle/white,/area/shuttle/escape) -"aQw" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/crowbar,/turf/open/floor/plasteel/shuttle/white,/area/shuttle/escape) -"aQx" = (/obj/machinery/vending/snack,/turf/open/floor/plasteel/warning{dir = 9},/area/hallway/secondary/entry) -"aQy" = (/obj/item/device/radio/beacon,/obj/machinery/camera{c_tag = "Arrivals Bay 1 South"},/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/secondary/entry) -"aQz" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/secondary/entry) -"aQA" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/warning{dir = 5},/area/hallway/secondary/entry) -"aQB" = (/obj/structure/table/wood,/obj/item/weapon/storage/fancy/cigarettes{pixel_y = 2},/obj/item/weapon/lighter/greyscale{pixel_x = 4; pixel_y = 2},/turf/open/floor/plasteel/grimy,/area/hallway/secondary/entry) -"aQC" = (/obj/structure/table/wood,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/carpet,/area/hallway/secondary/entry) -"aQD" = (/obj/machinery/vending/cola,/turf/open/floor/plasteel/black,/area/hallway/secondary/entry) -"aQE" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aQF" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aQG" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aQH" = (/obj/machinery/light,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aQI" = (/obj/machinery/camera{c_tag = "Port Hallway 3"; dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aQJ" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j1"; dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aQK" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aQL" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/hallway/primary/port) -"aQM" = (/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) -"aQN" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 2; 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) -"aQO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/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) -"aQP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aQQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aQR" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/port) -"aQS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aQT" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/port) -"aQU" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aQV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aQW" = (/obj/structure/sign/directions/security{dir = 4; icon_state = "direction_sec"; pixel_x = 32; pixel_y = -24},/obj/structure/sign/directions/evac{dir = 4; icon_state = "direction_evac"; 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) -"aQX" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aQY" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Central Access"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) -"aQZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) -"aRa" = (/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) -"aRb" = (/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/central) -"aRc" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/central) -"aRd" = (/obj/machinery/light,/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = -32},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/central) -"aRe" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = -32},/obj/machinery/door/firedoor,/obj/machinery/light,/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/central) -"aRf" = (/obj/structure/window/reinforced,/obj/structure/table/wood,/obj/item/device/instrument/violin,/turf/open/floor/wood,/area/crew_quarters/theatre) -"aRg" = (/obj/structure/window/reinforced,/turf/open/floor/wood,/area/crew_quarters/theatre) -"aRh" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/wood,/area/crew_quarters/theatre) -"aRi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/chair/stool,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aRj" = (/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) -"aRk" = (/obj/effect/landmark{name = "blobstart"},/obj/item/toy/beach_ball/holoball,/turf/open/floor/plating,/area/crew_quarters/bar) -"aRl" = (/obj/structure/kitchenspike,/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) -"aRm" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) -"aRn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) -"aRo" = (/obj/machinery/gibber,/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) -"aRp" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/open/floor/plasteel/black,/area/hydroponics) -"aRq" = (/obj/machinery/requests_console{department = "Hydroponics"; departmentType = 2; pixel_x = 0; pixel_y = 30},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/hydroponics) -"aRr" = (/obj/machinery/hydroponics/constructable,/turf/open/floor/plasteel/black,/area/hydroponics) -"aRs" = (/obj/machinery/hydroponics/constructable,/obj/machinery/camera{c_tag = "Hydroponics North"; dir = 2},/turf/open/floor/plasteel/black,/area/hydroponics) -"aRt" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/hydroponics) -"aRu" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plasteel/black,/area/hydroponics) -"aRv" = (/obj/structure/bookcase/random/religion,/turf/open/floor/wood,/area/library) -"aRw" = (/turf/open/floor/carpet,/area/library) -"aRx" = (/obj/structure/disposalpipe/segment,/turf/open/floor/carpet,/area/library) -"aRy" = (/obj/structure/bookcase/random/reference,/turf/open/floor/wood,/area/library) -"aRz" = (/obj/machinery/computer/libraryconsole,/obj/structure/table/wood,/turf/open/floor/wood,/area/library) -"aRA" = (/obj/structure/bookcase{name = "Forbidden Knowledge"},/turf/open/floor/plasteel/cult{dir = 2},/area/library) -"aRB" = (/obj/structure/table/wood,/obj/item/device/taperecorder{pixel_y = 0},/obj/item/device/camera,/obj/item/device/radio/intercom{pixel_y = 25},/turf/open/floor/plasteel/cult{dir = 2},/area/library) -"aRC" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen/invisible,/turf/open/floor/plasteel/cult{dir = 2},/area/library) -"aRD" = (/obj/machinery/light_switch{pixel_y = 28},/turf/open/floor/plasteel/black,/area/chapel/main) -"aRE" = (/turf/open/floor/plasteel/chapel{dir = 4},/area/chapel/main) -"aRF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/chapel{dir = 1},/area/chapel/main) -"aRG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/chapel{dir = 4},/area/chapel/main) -"aRH" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted/fulltile,/turf/open/floor/plasteel/black,/area/chapel/main) -"aRI" = (/obj/machinery/camera{c_tag = "Escape Arm Holding Area"; dir = 4},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/open/floor/plasteel/red/side{dir = 8},/area/hallway/secondary/exit) -"aRJ" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"aRK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"aRL" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"aRM" = (/turf/open/floor/plasteel/warning{dir = 4},/area/hallway/secondary/exit) -"aRN" = (/obj/machinery/flasher{id = "shuttle_flasher"; pixel_x = -24; pixel_y = 6},/obj/machinery/button/flasher{id = "shuttle_flasher"; pixel_x = -24; pixel_y = -6},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) -"aRO" = (/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) -"aRP" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Brig"; req_access_txt = "2"},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) -"aRQ" = (/turf/open/floor/plasteel/warning{dir = 9},/area/hallway/secondary/entry) -"aRR" = (/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20},/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/secondary/entry) -"aRS" = (/turf/open/floor/plasteel/warning/corner{dir = 4},/area/hallway/secondary/entry) -"aRT" = (/obj/structure/chair/comfy/beige{dir = 1; icon_state = "comfychair"},/turf/open/floor/plasteel/grimy,/area/hallway/secondary/entry) -"aRU" = (/obj/structure/chair/comfy/beige{dir = 1; icon_state = "comfychair"},/obj/effect/landmark/start{name = "Assistant"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/grimy,/area/hallway/secondary/entry) -"aRV" = (/obj/structure/chair/comfy/beige{dir = 1; icon_state = "comfychair"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/grimy,/area/hallway/secondary/entry) -"aRW" = (/obj/machinery/vending/snack,/turf/open/floor/plasteel/black,/area/hallway/secondary/entry) -"aRX" = (/turf/closed/wall,/area/maintenance/port) -"aRY" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/port) -"aRZ" = (/turf/closed/wall,/area/crew_quarters/locker) -"aSa" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aSb" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aSc" = (/obj/machinery/status_display{density = 0; layer = 4},/turf/closed/wall,/area/crew_quarters/locker) -"aSd" = (/turf/closed/wall,/area/storage/art) -"aSe" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/storage/art) -"aSf" = (/obj/machinery/door/airlock/glass{name = "Art Storage"},/turf/open/floor/plasteel,/area/storage/art) -"aSg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/storage/art) -"aSh" = (/obj/structure/cable{d1 = 1; d2 = 2; 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) -"aSi" = (/turf/closed/wall,/area/storage/emergency2) -"aSj" = (/obj/structure/table,/turf/open/floor/plasteel,/area/hallway/primary/port) -"aSk" = (/obj/structure/table,/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aSl" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel,/area/hallway/primary/port) -"aSm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/port) -"aSn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/port) -"aSo" = (/turf/closed/wall,/area/storage/tools) -"aSp" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) -"aSq" = (/turf/closed/wall/r_wall,/area/bridge) -"aSr" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/poddoor/preopen{id = "bridge blast"; layer = 2.9; name = "bridge blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/bridge) -"aSs" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "bridge blast"; layer = 2.9; name = "bridge blast door"},/turf/open/floor/plating,/area/bridge) -"aSt" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/status_display{density = 0; layer = 4},/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "bridge blast"; layer = 2.9; name = "bridge blast door"},/turf/open/floor/plating,/area/bridge) -"aSu" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "bridge blast"; layer = 2.9; name = "bridge blast door"},/turf/open/floor/plating,/area/bridge) -"aSv" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/status_display{density = 0; layer = 4},/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "bridge blast"; layer = 2.9; name = "bridge blast door"},/turf/open/floor/plating,/area/bridge) -"aSw" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "bridge blast"; layer = 2.9; name = "bridge blast door"},/turf/open/floor/plating,/area/bridge) -"aSx" = (/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) -"aSy" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aSz" = (/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aSA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aSB" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/crew_quarters/bar) -"aSC" = (/obj/machinery/disposal/bin,/obj/structure/sign/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) -"aSD" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aSE" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/table,/obj/machinery/chem_dispenser/drinks/beer,/obj/item/device/radio/intercom{pixel_y = 25},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aSF" = (/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) -"aSG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/green/side{dir = 9},/area/hydroponics) -"aSH" = (/turf/open/floor/plasteel/green/side{dir = 1},/area/hydroponics) -"aSI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/green/side{dir = 5},/area/hydroponics) -"aSJ" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/wood,/area/library) -"aSK" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/wood,/area/library) -"aSL" = (/obj/machinery/light/small,/turf/open/floor/plasteel/cult{dir = 2},/area/library) -"aSM" = (/obj/effect/landmark{name = "blobstart"},/obj/structure/chair/comfy/brown{dir = 1},/turf/open/floor/plasteel/cult{dir = 2},/area/library) -"aSN" = (/obj/structure/cult/tome,/obj/item/clothing/under/suit_jacket/red,/obj/item/weapon/book/codex_gigas,/turf/open/floor/plasteel/cult{dir = 2},/area/library) -"aSO" = (/turf/open/floor/plasteel/chapel,/area/chapel/main) -"aSP" = (/obj/structure/table/wood,/turf/open/floor/plasteel/black,/area/chapel/main) -"aSQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/chapel{dir = 8},/area/chapel/main) -"aSR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/chapel,/area/chapel/main) -"aSS" = (/obj/machinery/door/morgue{name = "Confession Booth"},/turf/open/floor/plasteel/black,/area/chapel/main) -"aST" = (/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1480; name = "Confessional Intercom"; pixel_x = 25},/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/black,/area/chapel/main) -"aSU" = (/turf/open/floor/plasteel/red/side{dir = 8},/area/hallway/secondary/exit) -"aSV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"aSW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"aSX" = (/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"aSY" = (/obj/machinery/door/airlock/external{name = "Security Escape Airlock"; req_access_txt = "2"},/turf/open/floor/plating,/area/hallway/secondary/exit) -"aSZ" = (/turf/open/floor/plating,/area/hallway/secondary/exit) -"aTa" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/hallway/secondary/exit) -"aTb" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"; req_access_txt = "2"},/turf/open/floor/plating,/area/shuttle/escape) -"aTc" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) -"aTd" = (/obj/structure/chair,/turf/open/floor/plasteel/shuttle/white,/area/shuttle/escape) -"aTe" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/shuttle/white,/area/shuttle/escape) -"aTf" = (/obj/structure/table,/turf/open/floor/plasteel/shuttle/white,/area/shuttle/escape) -"aTg" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/secondary/entry) -"aTh" = (/turf/open/floor/plasteel/warning/corner{dir = 8},/area/hallway/secondary/entry) -"aTi" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/hallway/secondary/entry) -"aTj" = (/turf/open/floor/plasteel/neutral/side{dir = 1},/area/hallway/secondary/entry) -"aTk" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/hallway/secondary/entry) -"aTl" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/hallway/secondary/entry) -"aTm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/hallway/secondary/entry) -"aTn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/hallway/secondary/entry) -"aTo" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/hallway/secondary/entry) -"aTp" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/secondary/entry) -"aTq" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/port) -"aTr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/port) -"aTs" = (/obj/structure/closet/wardrobe/white,/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aTt" = (/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aTu" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aTv" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/light_switch{pixel_y = 28},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aTw" = (/obj/machinery/vending/cola,/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aTx" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aTy" = (/obj/machinery/vending/coffee,/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aTz" = (/obj/machinery/vending/clothing,/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aTA" = (/obj/machinery/vending/cigarette,/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aTB" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aTC" = (/obj/structure/closet/secure_closet/personal,/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aTD" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/obj/structure/table,/obj/item/stack/cable_coil/random,/obj/item/stack/cable_coil/random,/turf/open/floor/plasteel,/area/storage/art) -"aTE" = (/turf/open/floor/plasteel,/area/storage/art) -"aTF" = (/obj/machinery/light/small{dir = 4},/obj/machinery/light_switch{pixel_x = 27},/turf/open/floor/plasteel,/area/storage/art) -"aTG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/port) -"aTH" = (/obj/machinery/door/airlock{name = "Port Emergency Storage"; req_access_txt = "0"},/turf/open/floor/plating,/area/storage/emergency2) -"aTI" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/storage/tools) -"aTJ" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Auxiliary Tool Storage"; req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/storage/tools) -"aTK" = (/obj/machinery/light{dir = 8},/turf/open/floor/plasteel,/area/hallway/primary/central) -"aTL" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/secure/briefcase,/obj/item/weapon/storage/box/PDAs{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/box/ids,/turf/open/floor/plasteel,/area/bridge) -"aTM" = (/obj/machinery/computer/atmos_alert,/turf/open/floor/plasteel/yellow/side{dir = 10},/area/bridge) -"aTN" = (/obj/machinery/computer/station_alert,/turf/open/floor/plasteel/yellow/side,/area/bridge) -"aTO" = (/obj/machinery/computer/monitor{name = "bridge power monitoring console"},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plasteel/yellow/side{dir = 6},/area/bridge) -"aTP" = (/obj/machinery/computer/shuttle/labor,/turf/open/floor/plasteel/blue/side{dir = 10},/area/bridge) -"aTQ" = (/obj/machinery/computer/communications,/turf/open/floor/plasteel/blue/side{dir = 0},/area/bridge) -"aTR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/computer/shuttle/mining,/turf/open/floor/plasteel/blue/side{dir = 6},/area/bridge) -"aTS" = (/obj/machinery/computer/card,/turf/open/floor/plasteel/green/side{dir = 10},/area/bridge) -"aTT" = (/obj/machinery/computer/crew,/turf/open/floor/plasteel/green/side{dir = 2},/area/bridge) -"aTU" = (/obj/machinery/computer/med_data,/turf/open/floor/plasteel/green/side{dir = 6},/area/bridge) -"aTV" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/wrench,/obj/item/device/assembly/timer,/obj/item/device/assembly/signaler,/obj/item/device/assembly/signaler,/turf/open/floor/plasteel,/area/bridge) -"aTW" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel,/area/hallway/primary/central) -"aTX" = (/obj/effect/landmark/event_spawn,/turf/closed/wall,/area/crew_quarters/bar) -"aTY" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/chair/stool,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aTZ" = (/obj/structure/chair,/obj/effect/landmark/start{name = "Assistant"},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aUa" = (/obj/structure/chair/stool/bar,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aUb" = (/obj/structure/table/reinforced,/obj/item/weapon/lighter,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aUc" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aUd" = (/obj/machinery/vending/boozeomat,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aUe" = (/obj/machinery/vending/dinnerware,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aUf" = (/obj/structure/sink/kitchen{pixel_y = 28},/obj/machinery/food_cart,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aUg" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aUh" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aUi" = (/obj/item/device/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) -"aUj" = (/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) -"aUk" = (/obj/structure/table,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aUl" = (/obj/structure/closet/secure_closet/freezer/kitchen,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aUm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/green/side{dir = 8},/area/hydroponics) -"aUn" = (/turf/open/floor/plasteel,/area/hydroponics) -"aUo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/green/side{dir = 4},/area/hydroponics) -"aUp" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/power/apc{dir = 4; name = "Library APC"; pixel_x = 24},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/library) -"aUq" = (/obj/structure/bookcase/random/fiction,/turf/open/floor/wood,/area/library) -"aUr" = (/obj/structure/bookcase/random/nonfiction,/turf/open/floor/wood,/area/library) -"aUs" = (/obj/machinery/camera{c_tag = "Library South"; dir = 8; network = list("SS13")},/turf/open/floor/wood,/area/library) -"aUt" = (/obj/machinery/door/morgue{name = "Private Study"; req_access_txt = "37"},/turf/open/floor/plasteel/cult{dir = 2},/area/library) -"aUu" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/plasteel/black,/area/chapel/main) -"aUv" = (/turf/open/floor/carpet,/area/chapel/main) -"aUw" = (/obj/effect/landmark/event_spawn,/turf/open/floor/carpet,/area/chapel/main) -"aUx" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hallway/secondary/exit) -"aUy" = (/obj/machinery/door/airlock/glass_security{name = "Holding Area"; req_access_txt = "2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"aUz" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hallway/secondary/exit) -"aUA" = (/turf/closed/wall/shuttle{icon_state = "swall7"; dir = 2},/area/shuttle/escape) -"aUB" = (/turf/closed/wall/shuttle{icon_state = "swallc4"; dir = 2},/area/shuttle/escape) -"aUC" = (/obj/machinery/light,/turf/open/floor/plasteel/arrival{dir = 2},/area/hallway/secondary/entry) -"aUD" = (/turf/open/floor/plasteel/arrival{dir = 2},/area/hallway/secondary/entry) -"aUE" = (/turf/open/floor/plasteel/white/corner{dir = 8},/area/hallway/secondary/entry) -"aUF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aUG" = (/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aUH" = (/obj/machinery/firealarm{dir = 2; pixel_y = -24},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aUI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aUJ" = (/obj/machinery/light,/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aUK" = (/obj/machinery/camera{c_tag = "Arrivals Hallway"; dir = 8; network = list("SS13")},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aUL" = (/turf/open/floor/plating,/area/maintenance/port) -"aUM" = (/obj/structure/closet/wardrobe/mixed,/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = -27},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aUN" = (/obj/effect/landmark{name = "lightsout"},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aUO" = (/obj/structure/table,/obj/item/stack/cable_coil/random,/obj/item/stack/cable_coil/random,/turf/open/floor/plasteel,/area/storage/art) -"aUP" = (/obj/machinery/light_switch{pixel_y = 28},/obj/item/weapon/storage/box/lights/mixed,/turf/open/floor/plating,/area/storage/emergency2) -"aUQ" = (/turf/open/floor/plating,/area/storage/emergency2) -"aUR" = (/obj/item/weapon/extinguisher,/turf/open/floor/plating,/area/storage/emergency2) -"aUS" = (/obj/machinery/power/apc{dir = 1; name = "Auxiliary Tool Storage APC"; pixel_y = 24},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/table,/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/rods{amount = 50},/turf/open/floor/plasteel,/area/storage/tools) -"aUT" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/rack,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/weapon/electronics/apc,/obj/item/weapon/electronics/airlock,/turf/open/floor/plasteel,/area/storage/tools) -"aUU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/storage/tools) -"aUV" = (/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{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/weapon/storage/box/lights/mixed,/turf/open/floor/plasteel,/area/storage/tools) -"aUW" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/emergency,/turf/open/floor/plasteel,/area/storage/tools) -"aUX" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/storage/tools) -"aUY" = (/obj/structure/table/reinforced,/obj/item/device/assembly/flash/handheld,/obj/item/device/assembly/flash/handheld,/turf/open/floor/plasteel,/area/bridge) -"aUZ" = (/turf/open/floor/plasteel/yellow/corner{dir = 1},/area/bridge) -"aVa" = (/obj/structure/chair{dir = 1; name = "Engineering Station"},/turf/open/floor/plasteel,/area/bridge) -"aVb" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/yellow/corner{dir = 4},/area/bridge) -"aVc" = (/obj/structure/table/reinforced,/obj/item/device/aicard,/obj/item/device/multitool,/turf/open/floor/plasteel/blue/side{dir = 8},/area/bridge) -"aVd" = (/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) -"aVe" = (/obj/structure/table/reinforced,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/blue/side{dir = 4},/area/bridge) -"aVf" = (/turf/open/floor/plasteel/green/corner{dir = 1},/area/bridge) -"aVg" = (/obj/structure/chair{dir = 1; name = "Crew Station"},/turf/open/floor/plasteel,/area/bridge) -"aVh" = (/turf/open/floor/plasteel/green/corner{dir = 4},/area/bridge) -"aVi" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/fancy/donut_box,/turf/open/floor/plasteel,/area/bridge) -"aVj" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/door/poddoor/preopen{id = "barShutters"; name = "privacy shutters"},/turf/open/floor/plating,/area/crew_quarters/bar) -"aVk" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aVl" = (/obj/structure/table,/obj/item/weapon/kitchen/fork,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aVm" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aVn" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aVo" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aVp" = (/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) -"aVq" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aVr" = (/obj/structure/table/reinforced,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aVs" = (/mob/living/carbon/monkey/punpun,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aVt" = (/obj/machinery/door/airlock/glass{name = "Kitchen"; req_access_txt = "28"},/turf/open/floor/plasteel/bar,/area/crew_quarters/kitchen) -"aVu" = (/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aVv" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aVw" = (/obj/effect/landmark/start{name = "Cook"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aVx" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aVy" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aVz" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aVA" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aVB" = (/obj/machinery/smartfridge,/turf/closed/wall,/area/crew_quarters/kitchen) -"aVC" = (/turf/open/floor/plasteel/black,/area/hydroponics) -"aVD" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/green/side{dir = 8},/area/hydroponics) -"aVE" = (/obj/machinery/seed_extractor,/turf/open/floor/plasteel,/area/hydroponics) -"aVF" = (/obj/machinery/biogenerator,/turf/open/floor/plasteel,/area/hydroponics) -"aVG" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel/green/side{dir = 4},/area/hydroponics) -"aVH" = (/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) -"aVI" = (/obj/machinery/newscaster{pixel_y = 32},/turf/open/floor/wood,/area/library) -"aVJ" = (/obj/structure/table/wood,/obj/machinery/computer/libraryconsole/bookmanagement{pixel_y = 0},/obj/machinery/light_switch{pixel_y = 28},/turf/open/floor/wood,/area/library) -"aVK" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/chapel{dir = 8},/area/chapel/main) -"aVL" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/chapel,/area/chapel/main) -"aVM" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/landmark/start{name = "Assistant"},/turf/open/floor/plasteel/chapel{dir = 8},/area/chapel/main) -"aVN" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/chapel,/area/chapel/main) -"aVO" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/black,/area/chapel/main) -"aVP" = (/obj/machinery/vending/cola,/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/open/floor/plasteel/escape{dir = 9},/area/hallway/secondary/exit) -"aVQ" = (/turf/open/floor/plasteel/red/corner{dir = 1},/area/hallway/secondary/exit) -"aVR" = (/obj/machinery/door/airlock/external{name = "Escape Airlock"},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/open/floor/plating,/area/hallway/secondary/exit) -"aVS" = (/obj/machinery/door/airlock/external{name = "Escape Airlock"},/turf/open/floor/plating,/area/hallway/secondary/exit) -"aVT" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/obj/docking_port/mobile/emergency{name = "Box emergency shuttle"},/obj/docking_port/stationary{dir = 4; dwidth = 12; height = 18; id = "emergency_home"; name = "BoxStation emergency evac bay"; width = 32},/turf/open/floor/plating,/area/shuttle/escape) -"aVU" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) -"aVV" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) -"aVW" = (/obj/machinery/door/firedoor,/obj/machinery/status_display{density = 0; layer = 3; pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aVX" = (/turf/closed/wall,/area/security/vacantoffice{name = "Vacant Office A"}) -"aVY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/security/vacantoffice{name = "Vacant Office A"}) -"aVZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/security/vacantoffice{name = "Vacant Office A"}) -"aWa" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/port) -"aWb" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/port) -"aWc" = (/obj/structure/closet/wardrobe/green,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aWd" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aWe" = (/obj/structure/chair/stool{pixel_y = 8},/obj/effect/landmark/start{name = "Assistant"},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aWf" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aWg" = (/obj/structure/table,/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aWh" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aWi" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aWj" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aWk" = (/obj/structure/closet/secure_closet/personal,/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/camera{c_tag = "Locker Room East"; dir = 8; network = list("SS13")},/obj/machinery/light{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aWl" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/turf/open/floor/plasteel,/area/storage/art) -"aWm" = (/obj/structure/table,/obj/item/weapon/storage/crayons,/obj/item/weapon/storage/crayons,/turf/open/floor/plasteel,/area/storage/art) -"aWn" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/table,/obj/item/device/camera_film,/obj/item/device/camera,/turf/open/floor/plasteel,/area/storage/art) -"aWo" = (/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plating,/area/storage/emergency2) -"aWp" = (/obj/machinery/light/small,/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plating,/area/storage/emergency2) -"aWq" = (/obj/machinery/space_heater,/turf/open/floor/plating,/area/storage/emergency2) -"aWr" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/turf/open/floor/plating,/area/storage/emergency2) -"aWs" = (/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/open/floor/plasteel,/area/storage/tools) -"aWt" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel,/area/storage/tools) -"aWu" = (/turf/open/floor/plasteel,/area/storage/tools) -"aWv" = (/obj/structure/rack,/obj/item/clothing/gloves/color/fyellow,/obj/item/clothing/suit/hazardvest,/obj/item/device/multitool,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel,/area/storage/tools) -"aWw" = (/turf/closed/wall,/area/bridge) -"aWx" = (/obj/machinery/computer/prisoner,/turf/open/floor/plasteel/red/side{dir = 10},/area/bridge) -"aWy" = (/obj/machinery/computer/security,/turf/open/floor/plasteel/red/side,/area/bridge) -"aWz" = (/obj/machinery/computer/secure_data,/turf/open/floor/plasteel/red/side{dir = 6},/area/bridge) -"aWA" = (/obj/structure/table/reinforced,/obj/machinery/recharger,/turf/open/floor/plasteel,/area/bridge) -"aWB" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/bridge) -"aWC" = (/turf/open/floor/plasteel,/area/bridge) -"aWD" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel,/area/bridge) -"aWE" = (/turf/open/floor/plasteel/blue/corner{dir = 1},/area/bridge) -"aWF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/blue/corner{dir = 4},/area/bridge) -"aWG" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/bridge) -"aWH" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel,/area/bridge) -"aWI" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/firstaid/regular,/turf/open/floor/plasteel,/area/bridge) -"aWJ" = (/obj/machinery/computer/teleporter,/turf/open/floor/plasteel/brown{dir = 10},/area/bridge) -"aWK" = (/obj/machinery/computer/cargo/request,/turf/open/floor/plasteel/brown{dir = 2},/area/bridge) -"aWL" = (/obj/machinery/computer/security/mining,/turf/open/floor/plasteel/brown{dir = 6},/area/bridge) -"aWM" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/camera{c_tag = "Bar West"; dir = 4; network = list("SS13")},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aWN" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aWO" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aWP" = (/obj/structure/table/reinforced,/obj/item/clothing/head/that{throwforce = 1; throwing = 1},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aWQ" = (/obj/effect/landmark/start{name = "Bartender"},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aWR" = (/obj/machinery/requests_console{department = "Bar"; departmentType = 2; pixel_x = 30; pixel_y = 0},/obj/machinery/camera{c_tag = "Bar"; dir = 8; network = list("SS13")},/obj/structure/table,/obj/machinery/chem_dispenser/drinks,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aWS" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/snacks/mint,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aWT" = (/obj/structure/table,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aWU" = (/obj/structure/table,/obj/item/weapon/kitchen/rollingpin,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aWV" = (/obj/structure/table,/obj/item/weapon/book/manual/chef_recipes,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aWW" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aWX" = (/obj/structure/table/reinforced,/obj/machinery/door/window/eastleft{name = "Hydroponics Desk"; req_access_txt = "35"},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/delivery{name = "floor"},/area/crew_quarters/kitchen) -"aWY" = (/turf/open/floor/plasteel/vault{dir = 8},/area/hydroponics) -"aWZ" = (/turf/open/floor/plasteel/green/side{dir = 8},/area/hydroponics) -"aXa" = (/obj/machinery/vending/hydronutrients,/turf/open/floor/plasteel,/area/hydroponics) -"aXb" = (/obj/machinery/vending/hydroseeds{slogan_delay = 700},/turf/open/floor/plasteel,/area/hydroponics) -"aXc" = (/turf/open/floor/plasteel/green/side{dir = 4},/area/hydroponics) -"aXd" = (/obj/machinery/hydroponics/constructable,/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/plasteel/black,/area/hydroponics) -"aXe" = (/obj/structure/bookcase/random/adult,/turf/open/floor/wood,/area/library) -"aXf" = (/obj/structure/chair/comfy/black,/obj/effect/landmark/start{name = "Assistant"},/turf/open/floor/wood,/area/library) -"aXg" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green{pixel_x = 1; pixel_y = 5},/turf/open/floor/wood,/area/library) -"aXh" = (/obj/effect/landmark/start{name = "Librarian"},/obj/structure/chair/office/dark,/turf/open/floor/wood,/area/library) -"aXi" = (/obj/machinery/libraryscanner,/turf/open/floor/wood,/area/library) -"aXj" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/open/floor/plasteel/black,/area/chapel/main) -"aXk" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/chapel{dir = 1},/area/chapel/main) -"aXl" = (/obj/structure/chair/stool,/obj/effect/landmark/start{name = "Assistant"},/turf/open/floor/plasteel/chapel{dir = 4},/area/chapel/main) -"aXm" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/chapel{dir = 1},/area/chapel/main) -"aXn" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/chapel{dir = 4},/area/chapel/main) -"aXo" = (/obj/machinery/computer/arcade,/turf/open/floor/plasteel/escape{dir = 8},/area/hallway/secondary/exit) -"aXp" = (/obj/structure/chair{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/shuttle/white,/area/shuttle/escape) -"aXq" = (/obj/structure/chair{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/shuttle/white,/area/shuttle/escape) -"aXr" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/shuttle/white,/area/shuttle/escape) -"aXs" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 4},/turf/closed/wall/shuttle{icon_state = "swall_s6"; dir = 2},/area/shuttle/transport) -"aXt" = (/turf/closed/wall/shuttle{icon_state = "swall12"; dir = 2},/area/shuttle/transport) -"aXu" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/open/floor/plating,/area/shuttle/transport) -"aXv" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/transport) -"aXw" = (/turf/closed/wall/shuttle{icon_state = "swall_s10"; dir = 2},/area/shuttle/transport) -"aXx" = (/obj/machinery/camera{c_tag = "Arrivals Bay 2"; dir = 8; network = list("SS13")},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aXy" = (/turf/open/floor/wood,/area/security/vacantoffice{name = "Vacant Office A"}) -"aXz" = (/obj/structure/chair/office/dark{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/security/vacantoffice{name = "Vacant Office A"}) -"aXA" = (/obj/structure/table/wood,/turf/open/floor/wood,/area/security/vacantoffice{name = "Vacant Office A"}) -"aXB" = (/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/turf/open/floor/wood,/area/security/vacantoffice{name = "Vacant Office A"}) -"aXC" = (/obj/structure/chair/office/dark{dir = 8},/turf/open/floor/wood,/area/security/vacantoffice{name = "Vacant Office A"}) -"aXD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/security/vacantoffice{name = "Vacant Office A"}) -"aXE" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating,/area/maintenance/port) -"aXF" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating,/area/maintenance/port) -"aXG" = (/obj/structure/closet/wardrobe/grey,/obj/machinery/requests_console{department = "Locker Room"; pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aXH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aXI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aXJ" = (/obj/structure/chair/stool{pixel_y = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aXK" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aXL" = (/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) -"aXM" = (/obj/structure/table,/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aXN" = (/obj/structure/chair/stool{pixel_y = 8},/obj/effect/landmark/start{name = "Assistant"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aXO" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aXP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aXQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aXR" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/structure/closet/toolcloset,/turf/open/floor/plasteel,/area/storage/tools) -"aXS" = (/obj/structure/closet/toolcloset,/turf/open/floor/plasteel,/area/storage/tools) -"aXT" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/storage/tools) -"aXU" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel,/area/storage/tools) -"aXV" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/blue/side{dir = 5},/area/hallway/primary/central) -"aXW" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/bridge) -"aXX" = (/obj/structure/sign/securearea{pixel_x = 32; pixel_y = 0},/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/preopen{id = "bridge blast"; name = "bridge blast door"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/bridge) -"aXY" = (/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) -"aXZ" = (/obj/structure/chair{dir = 1; name = "Security Station"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/bridge) -"aYa" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/corner{dir = 4},/area/bridge) -"aYb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/bridge) -"aYc" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/bridge) -"aYd" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/bridge) -"aYe" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel,/area/bridge) -"aYf" = (/obj/machinery/hologram/holopad,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/bridge) -"aYg" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/bridge) -"aYh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/bridge) -"aYi" = (/obj/item/device/radio/beacon,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/bridge) -"aYj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 4; 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) -"aYk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/brown/corner{dir = 1},/area/bridge) -"aYl" = (/obj/structure/chair{dir = 1; name = "Logistics Station"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/bridge) -"aYm" = (/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) -"aYn" = (/obj/structure/sign/securearea{pixel_x = -32; pixel_y = 0},/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/preopen{id = "bridge blast"; name = "bridge blast door"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/bridge) -"aYo" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/blue/side{dir = 9},/area/hallway/primary/central) -"aYp" = (/obj/machinery/camera{c_tag = "Bridge East Entrance"; dir = 2},/turf/open/floor/plasteel/blue/side{dir = 1},/area/hallway/primary/central) -"aYq" = (/obj/machinery/hologram/holopad,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aYr" = (/obj/structure/chair,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aYs" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor,/obj/item/weapon/reagent_containers/food/snacks/pie/cream,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aYt" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/enzyme{layer = 5},/obj/item/stack/packageWrap,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aYu" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 5},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aYv" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = -3; pixel_y = 0},/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = 3},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aYw" = (/obj/machinery/processor,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aYx" = (/obj/machinery/light{dir = 8},/obj/machinery/hydroponics/constructable,/turf/open/floor/plasteel/black,/area/hydroponics) -"aYy" = (/obj/effect/landmark/start{name = "Botanist"},/turf/open/floor/plasteel,/area/hydroponics) -"aYz" = (/obj/machinery/hydroponics/constructable,/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/black,/area/hydroponics) -"aYA" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"aYB" = (/obj/structure/table/wood,/obj/item/weapon/paper,/turf/open/floor/wood,/area/library) -"aYC" = (/obj/structure/chair/comfy/black{dir = 8},/turf/open/floor/wood,/area/library) -"aYD" = (/obj/structure/table/wood,/obj/item/device/camera_film,/obj/item/device/camera_film,/turf/open/floor/wood,/area/library) -"aYE" = (/obj/structure/table/wood,/obj/item/weapon/pen/red,/obj/item/weapon/pen/blue{pixel_x = 5; pixel_y = 5},/turf/open/floor/wood,/area/library) -"aYF" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/turf/open/floor/wood,/area/library) -"aYG" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/chapel{dir = 8},/area/chapel/main) -"aYH" = (/obj/machinery/camera{c_tag = "Chapel South"; dir = 8; network = list("SS13")},/turf/open/floor/plasteel/black,/area/chapel/main) -"aYI" = (/obj/item/device/radio/intercom{pixel_x = -25},/turf/open/floor/plasteel/escape{dir = 8},/area/hallway/secondary/exit) -"aYJ" = (/turf/open/floor/plasteel/shuttle,/turf/closed/wall/shuttle/interior{icon_state = "swall_f9"},/area/shuttle/transport) -"aYK" = (/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) -"aYL" = (/obj/machinery/computer/shuttle/ferry/request,/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) -"aYM" = (/obj/structure/chair,/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) -"aYN" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hallway/secondary/entry) -"aYO" = (/obj/machinery/camera{c_tag = "Vacant Office"; dir = 4; network = list("SS13")},/turf/open/floor/wood,/area/security/vacantoffice{name = "Vacant Office A"}) -"aYP" = (/obj/structure/table/wood,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/security/vacantoffice{name = "Vacant Office A"}) -"aYQ" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp,/turf/open/floor/wood,/area/security/vacantoffice{name = "Vacant Office A"}) -"aYR" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green,/turf/open/floor/wood,/area/security/vacantoffice{name = "Vacant Office A"}) -"aYS" = (/obj/structure/table/wood,/obj/item/weapon/pen/red,/turf/open/floor/wood,/area/security/vacantoffice{name = "Vacant Office A"}) -"aYT" = (/obj/structure/grille,/obj/structure/window{icon_state = "window"; dir = 8},/obj/structure/window,/turf/open/floor/plating,/area/maintenance/port) -"aYU" = (/obj/structure/grille,/obj/structure/window{icon_state = "window"; dir = 1},/turf/open/floor/plating,/area/maintenance/port) -"aYV" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/port) -"aYW" = (/obj/structure/closet/wardrobe/black,/obj/item/clothing/shoes/jackboots,/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aYX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aYY" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aYZ" = (/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) -"aZa" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aZb" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aZc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aZd" = (/obj/structure/closet/secure_closet/personal,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aZe" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating,/area/maintenance/port) -"aZf" = (/obj/machinery/power/apc{dir = 1; name = "Art Storage"; pixel_x = 0; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/open/floor/plating,/area/storage/art) -"aZg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/open/floor/plating,/area/maintenance/port) -"aZh" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/open/floor/plating,/area/maintenance/port) -"aZi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating,/area/maintenance/port) -"aZj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/port) -"aZk" = (/obj/machinery/power/apc{dir = 1; name = "Port Emergency Storage APC"; pixel_y = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/open/floor/plating,/area/storage/emergency2) -"aZl" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating,/area/maintenance/port) -"aZm" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating,/area/maintenance/port) -"aZn" = (/turf/closed/wall,/area/security/detectives_office) -"aZo" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/blue/side{dir = 4},/area/hallway/primary/central) -"aZp" = (/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/airlock/glass_command{name = "Bridge"; req_access_txt = "19"},/turf/open/floor/plasteel,/area/bridge) -"aZq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/preopen{id = "bridge blast"; name = "bridge blast door"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/bridge) -"aZr" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/glass_command{name = "Bridge"; req_access_txt = "19"},/turf/open/floor/plasteel,/area/bridge) -"aZs" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/bridge) -"aZt" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel,/area/bridge) -"aZu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/bridge) -"aZv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/blue/corner,/area/bridge) -"aZw" = (/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{dir = 0},/area/bridge) -"aZx" = (/obj/structure/fireaxecabinet{pixel_y = -32},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/blue/side{dir = 0},/area/bridge) -"aZy" = (/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/blue/side{dir = 0},/area/bridge) -"aZz" = (/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{dir = 0},/area/bridge) -"aZA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/blue/side{dir = 0},/area/bridge) -"aZB" = (/obj/machinery/turretid{control_area = "AI Upload Chamber"; 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{dir = 0},/area/bridge) -"aZC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/blue/side{dir = 0},/area/bridge) -"aZD" = (/obj/machinery/newscaster{pixel_y = -32},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/blue/side{dir = 0},/area/bridge) -"aZE" = (/obj/machinery/power/apc{cell_type = 5000; dir = 2; name = "Bridge APC"; pixel_y = -24},/obj/structure/cable,/obj/machinery/light,/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/blue/side{dir = 0},/area/bridge) -"aZF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/blue/corner{dir = 8},/area/bridge) -"aZG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel,/area/bridge) -"aZH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/bridge) -"aZI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/glass_command{name = "Bridge"; req_access_txt = "19"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/bridge) -"aZJ" = (/obj/structure/cable{d1 = 4; d2 = 8; 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"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/bridge) -"aZK" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/door/airlock/glass_command{name = "Bridge"; req_access_txt = "19"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/bridge) -"aZL" = (/obj/structure/cable{d1 = 4; d2 = 8; 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) -"aZM" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) -"aZN" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) -"aZO" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/hallway/primary/central) -"aZP" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/computer/security/telescreen/entertainment{pixel_x = -31},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aZQ" = (/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) -"aZR" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = 5; pixel_y = -2},/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = -2; pixel_y = 2},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aZS" = (/obj/machinery/door/window/southright{name = "Bar Door"; req_access_txt = "0"; req_one_access_txt = "25;28"},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aZT" = (/obj/structure/table/reinforced,/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 32},/obj/item/weapon/book/manual/barman_recipes,/obj/item/weapon/reagent_containers/glass/rag,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aZU" = (/obj/effect/landmark/start{name = "Cook"},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aZV" = (/obj/structure/table,/obj/machinery/reagentgrinder,/obj/machinery/requests_console{department = "Kitchen"; departmentType = 2; pixel_x = 30; pixel_y = 0},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aZW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/sortjunction{dir = 2; icon_state = "pipe-j2s"; sortType = 16},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"aZX" = (/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) -"aZY" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"aZZ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Library"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/carpet,/area/library) -"baa" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/carpet,/area/library) -"bab" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/carpet,/area/library) -"bac" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/carpet,/area/library) -"bad" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/carpet,/area/library) -"bae" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Chapel"},/turf/open/floor/carpet,/area/chapel/main) -"baf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/carpet,/area/chapel/main) -"bag" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/carpet,/area/chapel/main) -"bah" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/carpet,/area/chapel/main) -"bai" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Chapel"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/carpet,/area/chapel/main) -"baj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/escape{dir = 8},/area/hallway/secondary/exit) -"bak" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"bal" = (/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) -"bam" = (/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"ban" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/warning{dir = 4},/area/hallway/secondary/exit) -"bao" = (/obj/machinery/door/airlock/shuttle,/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) -"bap" = (/obj/machinery/door/airlock/shuttle,/obj/docking_port/mobile{dir = 8; dwidth = 2; height = 12; id = "ferry"; name = "ferry shuttle"; roundstart_move = "ferry_away"; travelDir = 180; width = 5},/obj/docking_port/stationary{dir = 8; dwidth = 2; height = 12; id = "ferry_home"; name = "port bay 2"; turf_type = /turf/open/space; width = 5},/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) -"baq" = (/obj/machinery/door/airlock/external{id_tag = null; name = "Port Docking Bay 2"; req_access_txt = "0"},/turf/open/floor/plating,/area/hallway/secondary/entry) -"bar" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/light_switch{pixel_x = -28; pixel_y = 0},/turf/open/floor/wood,/area/security/vacantoffice{name = "Vacant Office A"}) -"bas" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/wood,/area/security/vacantoffice{name = "Vacant Office A"}) -"bat" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/carpet,/area/security/vacantoffice{name = "Vacant Office A"}) -"bau" = (/turf/open/floor/carpet,/area/security/vacantoffice{name = "Vacant Office A"}) -"bav" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/carpet,/area/security/vacantoffice{name = "Vacant Office A"}) -"baw" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/wood,/area/security/vacantoffice{name = "Vacant Office A"}) -"bax" = (/obj/machinery/light{dir = 4},/obj/structure/filingcabinet/chestdrawer,/turf/open/floor/wood,/area/security/vacantoffice{name = "Vacant Office A"}) -"bay" = (/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plating,/area/maintenance/port) -"baz" = (/turf/closed/wall,/area/crew_quarters/locker/locker_toilet) -"baA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/crew_quarters/locker/locker_toilet) -"baB" = (/obj/machinery/door/airlock{name = "Unisex Restrooms"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet) -"baC" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"baD" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"baE" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"baF" = (/turf/open/floor/plasteel/warning/corner{dir = 2},/area/crew_quarters/locker) -"baG" = (/turf/open/floor/plasteel/warning{dir = 2},/area/crew_quarters/locker) -"baH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/warning/corner{dir = 1},/area/crew_quarters/locker) -"baI" = (/obj/structure/closet/secure_closet/personal,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/crew_quarters/locker) -"baJ" = (/obj/machinery/power/apc{dir = 8; name = "Locker Room Maintenance APC"; pixel_x = -27; pixel_y = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/open/floor/plating,/area/maintenance/port) -"baK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/structure/disposalpipe/segment{dir = 4},/turf/closed/wall,/area/maintenance/port) -"baL" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/maintenance/port) -"baM" = (/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/maintenance/port) -"baN" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/closed/wall,/area/maintenance/port) -"baO" = (/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) -"baP" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/port) -"baQ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/security/detectives_office) -"baR" = (/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) -"baS" = (/obj/machinery/computer/med_data,/obj/machinery/newscaster{pixel_x = 0; 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) -"baT" = (/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) -"baU" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/closed/wall,/area/security/detectives_office) -"baV" = (/obj/structure/table/wood,/obj/item/weapon/storage/box/evidence,/obj/item/weapon/hand_labeler{pixel_x = 5},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) -"baW" = (/obj/structure/table/wood,/obj/item/device/taperecorder,/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/button/door{id = "datboidetective"; name = "Privacy Shutters"; pixel_x = 0; pixel_y = 24},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) -"baX" = (/turf/open/floor/plasteel/blue/corner,/area/hallway/primary/central) -"baY" = (/obj/machinery/light,/turf/open/floor/plasteel/blue/side{dir = 0},/area/hallway/primary/central) -"baZ" = (/obj/machinery/camera{c_tag = "Bridge West Entrance"; dir = 1},/turf/open/floor/plasteel/blue/side{dir = 0},/area/hallway/primary/central) -"bba" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/blue/side{dir = 6},/area/hallway/primary/central) -"bbb" = (/obj/structure/grille,/obj/structure/cable,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/bridge) -"bbc" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/preopen{id = "bridge blast"; name = "bridge blast door"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/bridge) -"bbd" = (/obj/structure/closet/emcloset,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/blue/side{dir = 0},/area/bridge) -"bbe" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/blue/side{dir = 0},/area/bridge) -"bbf" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/open/floor/plasteel/blue/side{dir = 0},/area/bridge) -"bbg" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/open/floor/plasteel/blue/side{dir = 6},/area/bridge) -"bbh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/closed/wall/r_wall,/area/turret_protected/ai_upload) -"bbi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/turret_protected/ai_upload) -"bbj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/closed/wall/r_wall,/area/turret_protected/ai_upload) -"bbk" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/highsecurity{icon_state = "door_closed"; locked = 0; name = "AI Upload Access"; req_access_txt = "16"},/turf/open/floor/plasteel/black,/area/turret_protected/ai_upload) -"bbl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/closed/wall/r_wall,/area/turret_protected/ai_upload) -"bbm" = (/obj/machinery/ai_status_display,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall/r_wall,/area/turret_protected/ai_upload) -"bbn" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall/r_wall,/area/turret_protected/ai_upload) -"bbo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/closed/wall/r_wall,/area/turret_protected/ai_upload) -"bbp" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/filingcabinet/filingcabinet,/turf/open/floor/plasteel/blue/side{dir = 10},/area/bridge) -"bbq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/blue/side{dir = 0},/area/bridge) -"bbr" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/blue/side{dir = 10},/area/hallway/primary/central) -"bbs" = (/obj/machinery/power/apc{dir = 2; name = "Central Hall APC"; pixel_y = -24},/obj/structure/cable,/turf/open/floor/plasteel/blue/side{dir = 0},/area/hallway/primary/central) -"bbt" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/central) -"bbu" = (/obj/structure/chair{dir = 1},/obj/effect/landmark/start{name = "Assistant"},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"bbv" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"bbw" = (/obj/structure/chair/stool/bar,/obj/effect/landmark/start{name = "Assistant"},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"bbx" = (/obj/structure/chair/stool/bar,/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"bby" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock{name = "Kitchen"; req_access_txt = "28"},/turf/open/floor/plasteel/bar,/area/crew_quarters/kitchen) -"bbz" = (/obj/machinery/light_switch{pixel_y = -25},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"bbA" = (/obj/machinery/light,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"bbB" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"bbC" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/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) -"bbD" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"bbE" = (/obj/structure/reagent_dispensers/watertank/high,/turf/open/floor/plasteel,/area/hydroponics) -"bbF" = (/obj/item/weapon/reagent_containers/glass/bucket,/turf/open/floor/plasteel,/area/hydroponics) -"bbG" = (/obj/machinery/hydroponics/constructable,/turf/open/floor/plasteel/green/side{dir = 1},/area/hydroponics) -"bbH" = (/obj/structure/chair/stool,/obj/effect/landmark/start{name = "Botanist"},/turf/open/floor/plasteel,/area/hydroponics) -"bbI" = (/obj/machinery/camera{c_tag = "Hydroponics South"; dir = 8; network = list("SS13")},/obj/structure/reagent_dispensers/watertank/high,/turf/open/floor/plasteel,/area/hydroponics) -"bbJ" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/closed/wall,/area/hydroponics) -"bbK" = (/obj/structure/disposalpipe/segment,/obj/machinery/light{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; 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) -"bbL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bbM" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Library"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/carpet,/area/library) -"bbN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/carpet,/area/library) -"bbO" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/carpet,/area/library) -"bbP" = (/obj/machinery/hologram/holopad,/turf/open/floor/carpet,/area/library) -"bbQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/carpet,/area/chapel/main) -"bbR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/carpet,/area/chapel/main) -"bbS" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/carpet,/area/chapel/main) -"bbT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/carpet,/area/chapel/main) -"bbU" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Chapel"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/carpet,/area/chapel/main) -"bbV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/escape{dir = 8},/area/hallway/secondary/exit) -"bbW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"bbX" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"bbY" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"bbZ" = (/obj/machinery/camera{c_tag = "Escape Arm Airlocks"; dir = 8; network = list("SS13")},/turf/open/floor/plasteel/warning{dir = 4},/area/hallway/secondary/exit) -"bca" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 4},/turf/closed/wall/shuttle{icon_state = "swall_s5"; dir = 2},/area/shuttle/transport) -"bcb" = (/turf/open/floor/plasteel/shuttle,/turf/closed/wall/shuttle/interior{icon_state = "swall_f10"},/area/shuttle/transport) -"bcc" = (/obj/structure/closet/crate,/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) -"bcd" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) -"bce" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"bcf" = (/obj/machinery/door/airlock/engineering{name = "Vacant Office A"; req_access_txt = "32"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/wood,/area/security/vacantoffice{name = "Vacant Office A"}) -"bcg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/wood,/area/security/vacantoffice{name = "Vacant Office A"}) -"bch" = (/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{name = "Vacant Office A"}) -"bci" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/carpet,/area/security/vacantoffice{name = "Vacant Office A"}) -"bcj" = (/obj/structure/chair/office/dark,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/wood,/area/security/vacantoffice{name = "Vacant Office A"}) -"bck" = (/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/components/unary/tank/air{dir = 4},/turf/open/floor/plating,/area/maintenance/port) -"bcl" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/port) -"bcm" = (/obj/structure/toilet{pixel_y = 8},/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet) -"bcn" = (/obj/machinery/door/airlock{name = "Unit 1"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet) -"bco" = (/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet) -"bcp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet) -"bcq" = (/obj/structure/table,/obj/item/weapon/razor,/obj/structure/window{icon_state = "window"; dir = 1},/turf/open/floor/plasteel/barber,/area/crew_quarters/locker) -"bcr" = (/turf/open/floor/plasteel/barber,/area/crew_quarters/locker) -"bcs" = (/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; pixel_y = 0},/obj/structure/window{icon_state = "window"; dir = 1},/turf/open/floor/plasteel/barber,/area/crew_quarters/locker) -"bct" = (/obj/machinery/portable_atmospherics/pump,/turf/open/floor/plasteel/delivery,/area/crew_quarters/locker) -"bcu" = (/obj/machinery/portable_atmospherics/scrubber,/turf/open/floor/plasteel/delivery,/area/crew_quarters/locker) -"bcv" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/warning{dir = 8},/area/crew_quarters/locker) -"bcw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/crew_quarters/locker) -"bcx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/port) -"bcy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/maintenance/port) -"bcz" = (/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) -"bcA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) -"bcB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) -"bcC" = (/turf/closed/wall,/area/quartermaster/storage) -"bcD" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/port) -"bcE" = (/obj/machinery/light/small{dir = 8},/obj/structure/rack,/obj/item/weapon/storage/briefcase,/turf/open/floor/plasteel/grimy,/area/security/detectives_office) -"bcF" = (/turf/open/floor/carpet,/area/security/detectives_office) -"bcG" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) -"bcH" = (/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) -"bcI" = (/turf/open/floor/plasteel/grimy,/area/security/detectives_office) -"bcJ" = (/obj/machinery/light_switch{pixel_x = 27},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/grimy,/area/security/detectives_office) -"bcK" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/blue/corner,/area/hallway/primary/central) -"bcL" = (/turf/closed/wall/r_wall,/area/bridge/meeting_room) -"bcM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/bridge/meeting_room) -"bcN" = (/obj/machinery/door/airlock/command{name = "Conference Room"; req_access = null; req_access_txt = "19"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/bridge/meeting_room) -"bcO" = (/turf/closed/wall,/area/bridge/meeting_room) -"bcP" = (/obj/machinery/porta_turret/ai{dir = 4},/turf/open/floor/plasteel/black,/area/turret_protected/ai_upload) -"bcQ" = (/turf/open/floor/bluegrid,/area/turret_protected/ai_upload) -"bcR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/turret_protected/ai_upload) -"bcS" = (/obj/machinery/porta_turret/ai{dir = 8},/turf/open/floor/plasteel/black,/area/turret_protected/ai_upload) -"bcT" = (/turf/closed/wall/r_wall,/area/crew_quarters/captain) -"bcU" = (/obj/machinery/door/airlock/command{name = "Captain's Office"; req_access = null; req_access_txt = "20"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/crew_quarters/captain) -"bcV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/crew_quarters/captain) -"bcW" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/central) -"bcX" = (/obj/machinery/computer/arcade,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"bcY" = (/obj/machinery/vending/cigarette{pixel_x = 0; pixel_y = 0},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"bcZ" = (/obj/machinery/newscaster{pixel_y = -28},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"bda" = (/obj/machinery/light,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"bdb" = (/obj/machinery/light,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"bdc" = (/obj/machinery/camera{c_tag = "Bar South"; dir = 1},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"bdd" = (/obj/structure/noticeboard{pixel_y = -27},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"bde" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"bdf" = (/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"bdg" = (/obj/machinery/light/small,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"bdh" = (/obj/structure/table/reinforced,/obj/item/weapon/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) -"bdi" = (/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) -"bdj" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/plasteel,/area/hydroponics) -"bdk" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/effect/landmark/event_spawn,/turf/open/floor/plating,/area/hydroponics) -"bdl" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hydroponics) -"bdm" = (/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) -"bdn" = (/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) -"bdo" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bdp" = (/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bdq" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bdr" = (/obj/machinery/vending/coffee,/turf/open/floor/wood,/area/library) -"bds" = (/obj/structure/chair/comfy/black{dir = 4},/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/open/floor/wood,/area/library) -"bdt" = (/obj/structure/table/wood,/obj/item/weapon/pen,/turf/open/floor/wood,/area/library) -"bdu" = (/obj/structure/chair/comfy/black{dir = 4},/turf/open/floor/wood,/area/library) -"bdv" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/wood,/area/library) -"bdw" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel/black,/area/chapel/main) -"bdx" = (/turf/open/floor/carpet{icon_state = "carpetsymbol"},/area/chapel/main) -"bdy" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/chapel/main) -"bdz" = (/obj/machinery/power/apc{dir = 8; name = "Escape Hallway APC"; pixel_x = -25},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel/escape{dir = 8},/area/hallway/secondary/exit) -"bdA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"bdB" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"bdC" = (/turf/closed/wall/shuttle{icon_state = "swall_s9"; dir = 2},/area/shuttle/transport) -"bdD" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/warning{dir = 9},/area/hallway/secondary/entry) -"bdE" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"bdF" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/open/floor/wood,/area/security/vacantoffice{name = "Vacant Office A"}) -"bdG" = (/obj/structure/table/wood,/obj/item/weapon/folder/blue,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/security/vacantoffice{name = "Vacant Office A"}) -"bdH" = (/obj/machinery/atmospherics/components/unary/tank/air{dir = 4},/turf/open/floor/plating,/area/maintenance/port) -"bdI" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port) -"bdJ" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/power/apc{dir = 4; name = "Locker Restrooms APC"; pixel_x = 27; pixel_y = 2},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plating,/area/crew_quarters/locker/locker_toilet) -"bdK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet) -"bdL" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet) -"bdM" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/barber,/area/crew_quarters/locker) -"bdN" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/stack/sheet/cardboard,/obj/item/stack/rods{amount = 50},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) -"bdO" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/electronics/apc,/obj/item/weapon/stock_parts/cell{maxcharge = 2000},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) -"bdP" = (/obj/effect/landmark/event_spawn,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) -"bdQ" = (/obj/item/weapon/storage/secure/safe{pixel_x = -23},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) -"bdR" = (/obj/structure/chair/comfy/brown,/obj/effect/landmark/start{name = "Detective"},/turf/open/floor/carpet,/area/security/detectives_office) -"bdS" = (/obj/structure/table/wood,/obj/item/device/camera/detective,/turf/open/floor/carpet,/area/security/detectives_office) -"bdT" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/grimy,/area/security/detectives_office) -"bdU" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Detective's Office"; req_access_txt = "4"},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) -"bdV" = (/obj/machinery/photocopier,/turf/open/floor/wood,/area/bridge/meeting_room) -"bdW" = (/obj/machinery/button/door{id = "heads_meeting"; name = "Security Shutters"; pixel_x = 0; pixel_y = 24},/turf/open/floor/wood,/area/bridge/meeting_room) -"bdX" = (/obj/machinery/newscaster{pixel_y = 32},/turf/open/floor/wood,/area/bridge/meeting_room) -"bdY" = (/obj/machinery/camera{c_tag = "Conference Room"; dir = 2},/turf/open/floor/wood,/area/bridge/meeting_room) -"bdZ" = (/turf/open/floor/wood,/area/bridge/meeting_room) -"bea" = (/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) -"beb" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/bridge/meeting_room) -"bec" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/wood,/area/bridge/meeting_room) -"bed" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/turret_protected/ai_upload) -"bee" = (/obj/structure/table,/obj/item/weapon/aiModule/reset,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/black,/area/turret_protected/ai_upload) -"bef" = (/turf/open/floor/plasteel/black,/area/turret_protected/ai_upload) -"beg" = (/obj/structure/table,/obj/item/weapon/folder/blue,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/black,/area/turret_protected/ai_upload) -"beh" = (/obj/structure/table,/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/black,/area/turret_protected/ai_upload) -"bei" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall/r_wall,/area/turret_protected/ai_upload) -"bej" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 4},/turf/open/floor/wood,/area/crew_quarters/captain) -"bek" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/wood,/area/crew_quarters/captain) -"bel" = (/obj/machinery/light_switch{pixel_y = 28},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/wood,/area/crew_quarters/captain) -"bem" = (/obj/machinery/ai_status_display{pixel_y = 32},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/carpet,/area/crew_quarters/captain) -"ben" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/carpet,/area/crew_quarters/captain) -"beo" = (/obj/machinery/status_display{pixel_x = 0; pixel_y = 32},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/carpet,/area/crew_quarters/captain) -"bep" = (/obj/machinery/power/apc{cell_type = 2500; dir = 1; name = "Captain's Office APC"; pixel_y = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/wood,/area/crew_quarters/captain) -"beq" = (/turf/open/floor/wood,/area/crew_quarters/captain) -"ber" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Diner"},/turf/open/floor/plasteel,/area/crew_quarters/bar) -"bes" = (/obj/structure/sign/barsign,/turf/closed/wall,/area/crew_quarters/bar) -"bet" = (/turf/open/floor/plasteel/white/corner{dir = 1},/area/hallway/primary/starboard) -"beu" = (/obj/machinery/camera{c_tag = "Starboard Primary Hallway 2"; dir = 2; network = list("SS13")},/turf/open/floor/plasteel/white/corner{dir = 1},/area/hallway/primary/starboard) -"bev" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Hydroponics"; req_access_txt = "35"},/turf/open/floor/plasteel,/area/hydroponics) -"bew" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/library) -"bex" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/chapel/main) -"bey" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/plasteel/escape{dir = 8},/area/hallway/secondary/exit) -"bez" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"beA" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/turf/open/floor/plating,/area/shuttle/escape) -"beB" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) -"beC" = (/obj/machinery/power/apc{dir = 8; name = "Vacant Office A APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating,/area/security/vacantoffice{name = "Vacant Office A"}) -"beD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/port) -"beE" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating,/area/maintenance/port) -"beF" = (/obj/machinery/door/airlock{name = "Unit 2"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet) -"beG" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/mirror{pixel_x = 28},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet) -"beH" = (/obj/machinery/washing_machine,/turf/open/floor/plasteel/barber,/area/crew_quarters/locker) -"beI" = (/obj/machinery/washing_machine,/obj/machinery/light,/turf/open/floor/plasteel/barber,/area/crew_quarters/locker) -"beJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/closet/crate,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) -"beK" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) -"beL" = (/obj/structure/closet/crate,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) -"beM" = (/obj/machinery/door/airlock/maintenance{name = "Detective Maintenance"; req_access_txt = "4"},/turf/open/floor/plating,/area/security/detectives_office) -"beN" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey{pixel_x = 3},/obj/item/weapon/lighter,/turf/open/floor/carpet,/area/security/detectives_office) -"beO" = (/obj/structure/table/wood,/obj/machinery/computer/security/wooden_tv,/turf/open/floor/carpet,/area/security/detectives_office) -"beP" = (/obj/structure/table/wood,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/clothing/glasses/sunglasses,/turf/open/floor/carpet,/area/security/detectives_office) -"beQ" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green,/turf/open/floor/carpet,/area/security/detectives_office) -"beR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "datboidetective"; layer = 2.9; name = "privacy shutters"},/turf/open/floor/plating,/area/security/detectives_office) -"beS" = (/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "heads_meeting"; layer = 2.9; name = "privacy shutters"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/bridge/meeting_room) -"beT" = (/obj/machinery/recharger{pixel_y = 4},/obj/structure/table,/turf/open/floor/wood,/area/bridge/meeting_room) -"beU" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/carpet,/area/bridge/meeting_room) -"beV" = (/obj/structure/chair/comfy/black,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/carpet,/area/bridge/meeting_room) -"beW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/carpet,/area/bridge/meeting_room) -"beX" = (/obj/structure/cable{d1 = 1; d2 = 2; 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) -"beY" = (/obj/machinery/vending/snack,/turf/open/floor/wood,/area/bridge/meeting_room) -"beZ" = (/obj/structure/table,/obj/item/weapon/aiModule/supplied/quarantine,/obj/machinery/camera/motion{dir = 4},/turf/open/floor/plasteel/black,/area/turret_protected/ai_upload) -"bfa" = (/obj/machinery/hologram/holopad,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/turret_protected/ai_upload) -"bfb" = (/obj/structure/table,/obj/item/weapon/aiModule/supplied/freeform,/obj/structure/sign/kiddieplaque{pixel_x = 32},/obj/machinery/camera/motion{dir = 8},/turf/open/floor/plasteel/black,/area/turret_protected/ai_upload) -"bfc" = (/obj/machinery/vending/cigarette,/turf/open/floor/wood,/area/crew_quarters/captain) -"bfd" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/crew_quarters/captain) -"bfe" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/crew_quarters/captain) -"bff" = (/obj/structure/chair/comfy/brown{dir = 4},/turf/open/floor/carpet,/area/crew_quarters/captain) -"bfg" = (/obj/structure/table/wood,/obj/item/weapon/storage/fancy/donut_box,/turf/open/floor/carpet,/area/crew_quarters/captain) -"bfh" = (/obj/structure/chair/comfy/brown{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/carpet,/area/crew_quarters/captain) -"bfi" = (/obj/structure/displaycase/captain,/turf/open/floor/wood,/area/crew_quarters/captain) -"bfj" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=Dorm"; location = "HOP2"},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bfk" = (/obj/structure/sign/directions/evac{dir = 4; icon_state = "direction_evac"; pixel_x = 32; pixel_y = 28},/obj/structure/sign/directions/security{dir = 1; icon_state = "direction_sec"; pixel_x = 32; pixel_y = 36},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bfl" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bfm" = (/obj/machinery/camera{c_tag = "Starboard Primary Hallway"; dir = 2; network = list("SS13")},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bfn" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bfo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bfp" = (/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bfq" = (/obj/structure/cable{d1 = 1; d2 = 2; 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) -"bfr" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bfs" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bft" = (/obj/machinery/camera{c_tag = "Starboard Primary Hallway 5"; dir = 2; network = list("SS13")},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bfu" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/white/corner{dir = 4},/area/hallway/secondary/exit) -"bfv" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"bfw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"bfx" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"bfy" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel/warning{dir = 4},/area/hallway/secondary/exit) -"bfz" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Cargo"},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) -"bfA" = (/obj/machinery/status_display,/turf/closed/wall/shuttle{icon_state = "swall14"; dir = 2},/area/shuttle/escape) -"bfB" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Infirmary"},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) -"bfC" = (/turf/closed/wall/shuttle{icon_state = "swall11"; dir = 2},/area/shuttle/escape) -"bfD" = (/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/arrival{dir = 1},/area/hallway/secondary/entry) -"bfE" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/blue/corner{dir = 1},/area/hallway/secondary/entry) -"bfF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"bfG" = (/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) -"bfH" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port) -"bfI" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plating,/area/maintenance/port) -"bfJ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port) -"bfK" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/port) -"bfL" = (/obj/effect/landmark{name = "blobstart"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/port) -"bfM" = (/obj/structure/closet/emcloset,/turf/open/floor/plating,/area/maintenance/port) -"bfN" = (/obj/structure/rack{dir = 4},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/port) -"bfO" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/port) -"bfP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 1},/turf/open/floor/plating,/area/maintenance/port) -"bfQ" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet) -"bfR" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet) -"bfS" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/warning{dir = 8},/area/crew_quarters/locker) -"bfT" = (/obj/machinery/camera{c_tag = "Locker Room South"; dir = 8; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/crew_quarters/locker) -"bfU" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/obj/structure/closet/crate/freezer,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) -"bfV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) -"bfW" = (/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/storage) -"bfX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/quartermaster/storage) -"bfY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/power/apc{dir = 4; name = "Detective's Office APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable,/turf/open/floor/plating,/area/maintenance/port) -"bfZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/security/detectives_office) -"bga" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) -"bgb" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) -"bgc" = (/obj/machinery/light/small,/turf/open/floor/plasteel/grimy,/area/security/detectives_office) -"bgd" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/filingcabinet,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/grimy,/area/security/detectives_office) -"bge" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bgf" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "heads_meeting"; layer = 2.9; name = "privacy shutters"},/turf/open/floor/plating,/area/bridge/meeting_room) -"bgg" = (/obj/item/weapon/hand_labeler,/obj/item/device/assembly/timer,/obj/structure/table,/turf/open/floor/wood,/area/bridge/meeting_room) -"bgh" = (/obj/structure/chair/comfy/black{dir = 4},/turf/open/floor/carpet,/area/bridge/meeting_room) -"bgi" = (/obj/structure/table/wood,/obj/item/device/radio/intercom{dir = 8; freerange = 1; name = "Station Intercom (Command)"; pixel_x = 0},/turf/open/floor/carpet,/area/bridge/meeting_room) -"bgj" = (/obj/item/weapon/book/manual/wiki/security_space_law,/obj/structure/table/wood,/turf/open/floor/carpet,/area/bridge/meeting_room) -"bgk" = (/obj/structure/chair/comfy/black{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/carpet,/area/bridge/meeting_room) -"bgl" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/bridge/meeting_room) -"bgm" = (/obj/machinery/vending/cola,/turf/open/floor/wood,/area/bridge/meeting_room) -"bgn" = (/obj/machinery/airalarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/porta_turret/ai{dir = 4},/turf/open/floor/plasteel/black,/area/turret_protected/ai_upload) -"bgo" = (/turf/open/floor/plasteel/vault{dir = 8},/area/turret_protected/ai_upload) -"bgp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/bluegrid,/area/turret_protected/ai_upload) -"bgq" = (/obj/machinery/computer/arcade,/turf/open/floor/wood,/area/crew_quarters/captain) -"bgr" = (/obj/structure/table/wood,/turf/open/floor/carpet,/area/crew_quarters/captain) -"bgs" = (/obj/machinery/camera{c_tag = "Central Hallway East"; dir = 4; network = list("SS13")},/obj/structure/disposalpipe/segment,/obj/machinery/status_display{density = 0; layer = 3; pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/central) -"bgt" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bgu" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bgv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bgw" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bgx" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bgy" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bgz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/junction{dir = 8; icon_state = "pipe-j1"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bgA" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bgB" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bgC" = (/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) -"bgD" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bgE" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"bgF" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"bgG" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"bgH" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"bgI" = (/obj/machinery/door/airlock/external{name = "Cargo Escape Airlock"},/turf/open/floor/plating,/area/hallway/secondary/exit) -"bgJ" = (/obj/machinery/light/small,/turf/open/floor/plating,/area/hallway/secondary/exit) -"bgK" = (/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape) -"bgL" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape) -"bgM" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 8},/turf/open/floor/plasteel/shuttle/white,/area/shuttle/escape) -"bgN" = (/turf/closed/wall,/area/maintenance/disposal) -"bgO" = (/obj/structure/disposalpipe/segment,/turf/closed/wall,/area/maintenance/disposal) -"bgP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/maintenance/disposal) -"bgQ" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/port) -"bgR" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/port) -"bgS" = (/obj/machinery/door/airlock{name = "Unit 3"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet) -"bgT" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet) -"bgU" = (/obj/item/latexballon,/turf/open/floor/plating,/area/maintenance/port) -"bgV" = (/obj/effect/landmark{name = "blobstart"},/obj/item/clothing/suit/ianshirt,/obj/structure/closet,/turf/open/floor/plating,/area/maintenance/port) -"bgW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/crew_quarters/locker) -"bgX" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/port) -"bgY" = (/obj/structure/closet/crate/internals,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) -"bgZ" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) -"bha" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) -"bhb" = (/obj/structure/closet/crate,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) -"bhc" = (/obj/structure/disposalpipe/segment,/turf/closed/wall,/area/security/detectives_office) -"bhd" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bhe" = (/obj/item/weapon/storage/fancy/donut_box,/obj/structure/table,/turf/open/floor/wood,/area/bridge/meeting_room) -"bhf" = (/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/structure/table/wood,/turf/open/floor/carpet,/area/bridge/meeting_room) -"bhg" = (/obj/item/weapon/folder/blue,/obj/structure/table/wood,/turf/open/floor/carpet,/area/bridge/meeting_room) -"bhh" = (/obj/structure/table,/obj/item/weapon/aiModule/core/full/asimov,/obj/item/weapon/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/item/weapon/aiModule/core/full/corp,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/aiModule/core/full/custom,/turf/open/floor/plasteel/black,/area/turret_protected/ai_upload) -"bhi" = (/obj/machinery/light,/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/turret_protected/ai_upload) -"bhj" = (/obj/machinery/computer/upload/ai,/obj/machinery/flasher{id = "AI"; pixel_x = 0; pixel_y = -21},/turf/open/floor/bluegrid,/area/turret_protected/ai_upload) -"bhk" = (/obj/machinery/power/apc{cell_type = 5000; dir = 2; name = "Upload APC"; pixel_y = -24},/obj/structure/cable,/turf/open/floor/bluegrid,/area/turret_protected/ai_upload) -"bhl" = (/obj/machinery/computer/upload/borg,/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1447; listening = 0; name = "Station Intercom (AI Private)"; pixel_y = -29},/turf/open/floor/bluegrid,/area/turret_protected/ai_upload) -"bhm" = (/obj/machinery/light,/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/black,/area/turret_protected/ai_upload) -"bhn" = (/obj/structure/table,/obj/item/weapon/aiModule/supplied/oxygen,/obj/item/weapon/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/weapon/aiModule/reset/purge,/obj/structure/window/reinforced,/obj/item/weapon/aiModule/core/full/antimov,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/aiModule/supplied/protectStation,/turf/open/floor/plasteel/black,/area/turret_protected/ai_upload) -"bho" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/wood,/area/crew_quarters/captain) -"bhp" = (/obj/structure/chair,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/crew_quarters/captain) -"bhq" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/wood,/area/crew_quarters/captain) -"bhr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/carpet,/area/crew_quarters/captain) -"bhs" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/carpet,/area/crew_quarters/captain) -"bht" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/carpet,/area/crew_quarters/captain) -"bhu" = (/obj/structure/table/wood,/obj/machinery/camera{c_tag = "Captain's Office"; dir = 8},/obj/item/weapon/storage/lockbox/medal{pixel_y = 0},/turf/open/floor/wood,/area/crew_quarters/captain) -"bhv" = (/obj/structure/disposalpipe/segment,/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/central) -"bhw" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=Stbd"; location = "HOP"},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bhx" = (/obj/structure/sign/directions/medical{dir = 4; icon_state = "direction_med"; pixel_x = 32; pixel_y = -24},/obj/structure/sign/directions/science{dir = 4; icon_state = "direction_sci"; 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) -"bhy" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bhz" = (/obj/machinery/light,/turf/open/floor/plasteel/blue/corner,/area/hallway/primary/starboard) -"bhA" = (/turf/open/floor/plasteel/blue/side{dir = 0},/area/hallway/primary/starboard) -"bhB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/blue/side{dir = 0},/area/hallway/primary/starboard) -"bhC" = (/obj/machinery/light,/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/starboard) -"bhD" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bhE" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/obj/machinery/light,/turf/open/floor/plasteel/white/corner{dir = 2},/area/hallway/primary/starboard) -"bhF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white/side{dir = 2},/area/hallway/primary/starboard) -"bhG" = (/turf/open/floor/plasteel/white/corner{dir = 8},/area/hallway/primary/starboard) -"bhH" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bhI" = (/obj/machinery/camera{c_tag = "Starboard Primary Hallway 3"; dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bhJ" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bhK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bhL" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bhM" = (/obj/machinery/light,/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bhN" = (/obj/machinery/camera{c_tag = "Starboard Primary Hallway 4"; dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bhO" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/red/corner{dir = 2},/area/hallway/secondary/exit) -"bhP" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -32},/turf/open/floor/plasteel/escape{dir = 2},/area/hallway/secondary/exit) -"bhQ" = (/obj/machinery/newscaster{pixel_y = -32},/obj/machinery/light,/turf/open/floor/plasteel/escape{dir = 2},/area/hallway/secondary/exit) -"bhR" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white/corner{dir = 8},/area/hallway/secondary/exit) -"bhS" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/crowbar,/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/plasteel/shuttle/white,/area/shuttle/escape) -"bhT" = (/obj/machinery/door/airlock/external{name = "Port Docking Bay 4"; req_access_txt = "0"},/turf/open/floor/plating,/area/hallway/secondary/entry) -"bhU" = (/obj/machinery/door/airlock/external{name = "Port Docking Bay 3"; req_access_txt = "0"},/turf/open/floor/plating,/area/hallway/secondary/entry) -"bhV" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/warning,/area/hallway/secondary/entry) -"bhW" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/warning,/area/hallway/secondary/entry) -"bhX" = (/obj/structure/disposaloutlet{dir = 4},/obj/structure/disposalpipe/trunk{dir = 1},/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/disposal) -"bhY" = (/obj/machinery/conveyor{dir = 8; id = "garbage"},/turf/open/floor/plating,/area/maintenance/disposal) -"bhZ" = (/obj/machinery/conveyor{dir = 8; id = "garbage"},/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/maintenance/disposal) -"bia" = (/obj/machinery/conveyor{dir = 8; id = "garbage"},/obj/machinery/recycler,/obj/structure/sign/securearea{name = "\improper STAY CLEAR HEAVY MACHINERY"; pixel_y = 32},/turf/open/floor/plating,/area/maintenance/disposal) -"bib" = (/obj/machinery/conveyor{dir = 6; id = "garbage"; verted = 1},/turf/open/floor/plating,/area/maintenance/disposal) -"bic" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/port) -"bid" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port) -"bie" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port) -"bif" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/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) -"big" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/sortjunction{dir = 1; icon_state = "pipe-j2s"; sortType = 1},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/port) -"bih" = (/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet) -"bii" = (/obj/machinery/camera{c_tag = "Locker Room Toilets"; dir = 8; network = list("SS13")},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet) -"bij" = (/obj/machinery/power/apc{dir = 1; name = "Locker Room APC"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/mob/living/simple_animal/mouse,/turf/open/floor/plating,/area/crew_quarters/locker) -"bik" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port) -"bil" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/port) -"bim" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plating,/area/maintenance/port) -"bin" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/port) -"bio" = (/obj/structure/closet/crate/medical,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) -"bip" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/stack/sheet/cardboard,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) -"biq" = (/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) -"bir" = (/obj/structure/disposalpipe/trunk,/obj/structure/disposaloutlet{dir = 4},/turf/open/floor/plating,/area/quartermaster/office) -"bis" = (/obj/machinery/conveyor{dir = 4; id = "packageSort2"},/turf/open/floor/plating,/area/quartermaster/office) -"bit" = (/obj/machinery/conveyor{dir = 4; id = "packageSort2"},/obj/structure/plasticflaps,/turf/open/floor/plating,/area/quartermaster/office) -"biu" = (/obj/machinery/disposal/deliveryChute{dir = 8},/obj/structure/disposalpipe/trunk{dir = 1},/turf/open/floor/plating,/area/quartermaster/office) -"biv" = (/turf/closed/wall,/area/quartermaster/office) -"biw" = (/turf/open/floor/plasteel/brown/corner{dir = 8},/area/hallway/primary/central) -"bix" = (/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) -"biy" = (/turf/open/floor/carpet,/area/bridge/meeting_room) -"biz" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/carpet,/area/bridge/meeting_room) -"biA" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/carpet,/area/bridge/meeting_room) -"biB" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/carpet,/area/bridge/meeting_room) -"biC" = (/obj/structure/noticeboard{dir = 8; pixel_x = 27; pixel_y = 0},/turf/open/floor/wood,/area/bridge/meeting_room) -"biD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/closed/wall/r_wall,/area/turret_protected/ai_upload) -"biE" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/turret_protected/ai_upload) -"biF" = (/obj/machinery/ai_status_display,/turf/closed/wall/r_wall,/area/turret_protected/ai_upload) -"biG" = (/turf/closed/wall/r_wall,/area/turret_protected/ai_upload) -"biH" = (/obj/machinery/status_display{density = 0; layer = 4},/turf/closed/wall/r_wall,/area/turret_protected/ai_upload) -"biI" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/closed/wall/r_wall,/area/turret_protected/ai_upload) -"biJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/closed/wall/r_wall,/area/turret_protected/ai_upload) -"biK" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/open/floor/wood,/area/crew_quarters/captain) -"biL" = (/obj/structure/table/wood,/obj/item/weapon/folder/blue,/obj/item/weapon/stamp/captain,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/crew_quarters/captain) -"biM" = (/obj/structure/table/wood,/obj/item/weapon/hand_tele,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/crew_quarters/captain) -"biN" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green,/turf/open/floor/wood,/area/crew_quarters/captain) -"biO" = (/obj/effect/landmark/event_spawn,/turf/open/floor/wood,/area/crew_quarters/captain) -"biP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/wood,/area/crew_quarters/captain) -"biQ" = (/obj/structure/table/wood,/obj/item/weapon/pinpointer,/obj/item/weapon/disk/nuclear,/obj/item/weapon/storage/secure/safe{pixel_x = 35; pixel_y = 5},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/wood,/area/crew_quarters/captain) -"biR" = (/turf/closed/wall,/area/medical/chemistry) -"biS" = (/obj/structure/sign/bluecross_2,/turf/closed/wall,/area/medical/medbay) -"biT" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/medical/medbay) -"biU" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay) -"biV" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/white,/area/medical/medbay) -"biW" = (/turf/closed/wall,/area/security/checkpoint/medical) -"biX" = (/turf/closed/wall,/area/medical/morgue) -"biY" = (/obj/machinery/door/airlock/medical{name = "Morgue"; req_access_txt = "6"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/medical/morgue) -"biZ" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bja" = (/obj/machinery/power/apc{dir = 2; name = "Starboard Primary Hallway APC"; pixel_y = -24},/obj/structure/cable,/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bjb" = (/turf/closed/wall,/area/storage/emergency) -"bjc" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) -"bjd" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/assembly/chargebay) -"bje" = (/turf/open/floor/plasteel/loadingarea{dir = 1},/area/hallway/primary/starboard) -"bjf" = (/turf/closed/wall/r_wall,/area/assembly/robotics) -"bjg" = (/turf/open/floor/plasteel/purple/side{dir = 10},/area/hallway/primary/starboard) -"bjh" = (/turf/open/floor/plasteel/purple/side{dir = 2},/area/hallway/primary/starboard) -"bji" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/open/floor/plasteel/purple/side{dir = 2},/area/hallway/primary/starboard) -"bjj" = (/obj/structure/sign/securearea{pixel_x = 0; pixel_y = -32},/turf/open/floor/plasteel/purple/side{dir = 2},/area/hallway/primary/starboard) -"bjk" = (/obj/machinery/light,/turf/open/floor/plasteel/purple/side{dir = 2},/area/hallway/primary/starboard) -"bjl" = (/turf/open/floor/plasteel/purple/side{dir = 6},/area/hallway/primary/starboard) -"bjm" = (/turf/closed/wall/r_wall,/area/toxins/lab) -"bjn" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/escape{dir = 10},/area/hallway/secondary/exit) -"bjo" = (/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/escape{dir = 2},/area/hallway/secondary/exit) -"bjp" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/warning,/area/hallway/secondary/exit) -"bjq" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/warning{dir = 6},/area/hallway/secondary/exit) -"bjr" = (/obj/structure/closet,/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape) -"bjs" = (/obj/structure/closet/crate,/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape) -"bjt" = (/obj/machinery/camera{c_tag = "Arrivals Bay 3 & 4"; dir = 1},/turf/open/floor/plasteel/warning,/area/hallway/secondary/entry) -"bju" = (/obj/machinery/vending/cigarette,/turf/open/floor/plasteel/warning{dir = 6},/area/hallway/secondary/entry) -"bjv" = (/obj/machinery/conveyor{dir = 5; id = "garbage"},/turf/open/floor/plating,/area/maintenance/disposal) -"bjw" = (/obj/machinery/conveyor{dir = 4; id = "garbage"},/turf/open/floor/plating,/area/maintenance/disposal) -"bjx" = (/obj/machinery/conveyor{dir = 10; id = "garbage"; verted = -1},/turf/open/floor/plating,/area/maintenance/disposal) -"bjy" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/closed/wall,/area/maintenance/disposal) -"bjz" = (/obj/machinery/power/apc{dir = 8; name = "Disposal APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/disposal) -"bjA" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port) -"bjB" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port) -"bjC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/port) -"bjD" = (/obj/machinery/door/airlock{name = "Unit 4"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet) -"bjE" = (/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet) -"bjF" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/port) -"bjG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/port) -"bjH" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; 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) -"bjI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port) -"bjJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/port) -"bjK" = (/obj/structure/cable{d1 = 4; d2 = 8; 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) -"bjL" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/power/apc{dir = 2; name = "Cargo Bay APC"; pixel_x = 1; pixel_y = -24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating,/area/quartermaster/storage) -"bjM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/closed/wall,/area/maintenance/port) -"bjN" = (/obj/structure/closet/cardboard,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) -"bjO" = (/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/storage) -"bjP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/obj/structure/closet/crate,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) -"bjQ" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/closed/wall,/area/quartermaster/storage) -"bjR" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/closed/wall,/area/quartermaster/office) -"bjS" = (/obj/machinery/conveyor_switch/oneway{id = "packageSort2"},/obj/machinery/camera{c_tag = "Cargo Delivery Office"; dir = 4; network = list("SS13")},/obj/machinery/requests_console{department = "Cargo Bay"; departmentType = 2; pixel_x = -30; pixel_y = 0},/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/brown{dir = 1},/area/quartermaster/office) -"bjT" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/brown{dir = 1},/area/quartermaster/office) -"bjU" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/brown{dir = 1},/area/quartermaster/office) -"bjV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/window/reinforced{dir = 1; layer = 2.9},/turf/open/floor/plasteel/brown{dir = 1},/area/quartermaster/office) -"bjW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/window/reinforced{dir = 1; layer = 2.9},/obj/structure/filingcabinet/filingcabinet,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel/brown{dir = 1},/area/quartermaster/office) -"bjX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/quartermaster/office) -"bjY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/brown/corner{dir = 8},/area/hallway/primary/central) -"bjZ" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bka" = (/obj/machinery/camera{c_tag = "Central Hallway West"; dir = 8},/turf/open/floor/plasteel/blue/corner,/area/hallway/primary/central) -"bkb" = (/obj/machinery/door/window/eastright{dir = 1; name = "Bridge Delivery"; req_access_txt = "19"},/turf/open/floor/plasteel/delivery,/area/bridge/meeting_room) -"bkc" = (/obj/structure/reagent_dispensers/water_cooler,/turf/open/floor/wood,/area/bridge/meeting_room) -"bkd" = (/obj/machinery/computer/slot_machine,/turf/open/floor/wood,/area/bridge/meeting_room) -"bke" = (/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 0; pixel_y = -32},/turf/open/floor/wood,/area/bridge/meeting_room) -"bkf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/bridge/meeting_room) -"bkg" = (/obj/machinery/vending/coffee,/obj/machinery/light{dir = 4},/turf/open/floor/wood,/area/bridge/meeting_room) -"bkh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/engine/gravity_generator) -"bki" = (/turf/open/floor/plasteel/black,/area/engine/gravity_generator) -"bkj" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall/r_wall,/area/engine/gravity_generator) -"bkk" = (/obj/machinery/requests_console{announcementConsole = 1; department = "Captain's Desk"; departmentType = 5; name = "Captain RC"; pixel_x = -30; pixel_y = 0},/obj/structure/filingcabinet,/turf/open/floor/wood,/area/crew_quarters/captain) -"bkl" = (/obj/structure/chair/comfy/brown{dir = 4},/obj/effect/landmark/start{name = "Captain"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/crew_quarters/captain) -"bkm" = (/obj/machinery/computer/communications,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/crew_quarters/captain) -"bkn" = (/obj/structure/table/wood,/obj/item/weapon/book/manual/wiki/security_space_law,/obj/item/weapon/coin/plasma,/turf/open/floor/wood,/area/crew_quarters/captain) -"bko" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/hologram/holopad,/turf/open/floor/wood,/area/crew_quarters/captain) -"bkp" = (/obj/structure/table/wood,/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/item/device/camera,/obj/item/weapon/storage/photo_album{pixel_y = -10},/turf/open/floor/wood,/area/crew_quarters/captain) -"bkq" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bkr" = (/obj/structure/closet/secure_closet/chemical,/turf/open/floor/plasteel/white,/area/medical/chemistry) -"bks" = (/obj/machinery/power/apc{dir = 1; name = "Chemistry APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/mob/living/simple_animal/bot/cleanbot{name = "C.L.E.A.N."},/turf/open/floor/plasteel/white,/area/medical/chemistry) -"bkt" = (/obj/machinery/camera{c_tag = "Chemistry"; dir = 2; network = list("SS13")},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/chem_heater,/turf/open/floor/plasteel/white,/area/medical/chemistry) -"bku" = (/obj/machinery/chem_dispenser,/turf/open/floor/plasteel/whiteyellow/side{dir = 1},/area/medical/chemistry) -"bkv" = (/obj/machinery/chem_master,/turf/open/floor/plasteel/whiteyellow/side{dir = 5},/area/medical/chemistry) -"bkw" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 0; pixel_y = 0},/turf/open/floor/plasteel/white,/area/medical/medbay) -"bkx" = (/obj/structure/chair,/turf/open/floor/plasteel/white,/area/medical/medbay) -"bky" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay) -"bkz" = (/turf/open/floor/plasteel/white,/area/medical/medbay) -"bkA" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/checkpoint/medical) -"bkB" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/machinery/button/door{desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyer"; name = "Medbay Doors Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = 26; req_access_txt = "5"},/obj/item/weapon/book/manual/wiki/security_space_law,/turf/open/floor/plasteel/red/side{dir = 9},/area/security/checkpoint/medical) -"bkC" = (/obj/machinery/camera{c_tag = "Security Post - Medbay"; dir = 2; network = list("SS13")},/obj/machinery/requests_console{department = "Security"; departmentType = 5; pixel_y = 30},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/checkpoint/medical) -"bkD" = (/obj/structure/filingcabinet,/obj/machinery/newscaster{pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/checkpoint/medical) -"bkE" = (/obj/structure/table,/obj/item/weapon/storage/box/bodybags,/obj/item/weapon/pen,/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/black,/area/medical/morgue) -"bkF" = (/turf/open/floor/plasteel/black,/area/medical/morgue) -"bkG" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/black,/area/medical/morgue) -"bkH" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/medical/morgue) -"bkI" = (/obj/machinery/power/apc{dir = 1; name = "Morgue APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plasteel/black,/area/medical/morgue) -"bkJ" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/black,/area/medical/morgue) -"bkK" = (/obj/machinery/door/airlock{name = "Starboard Emergency Storage"; req_access_txt = "0"},/turf/open/floor/plating,/area/storage/emergency) -"bkL" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) -"bkM" = (/turf/closed/wall,/area/assembly/chargebay) -"bkN" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Mech Bay"; req_access_txt = "29"; req_one_access_txt = "0"},/turf/open/floor/plasteel,/area/assembly/chargebay) -"bkO" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters{id = "Skynet_launch"; name = "mech bay"},/turf/open/floor/plasteel/delivery,/area/assembly/chargebay) -"bkP" = (/obj/machinery/computer/rdconsole/robotics,/obj/machinery/airalarm{pixel_y = 25},/turf/open/floor/plasteel/white,/area/assembly/robotics) -"bkQ" = (/obj/structure/table,/obj/item/weapon/book/manual/robotics_cyborgs{pixel_x = 2; pixel_y = 5},/obj/item/weapon/storage/belt/utility,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/machinery/requests_console{department = "Robotics"; departmentType = 2; name = "Robotics RC"; pixel_y = 30},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/white,/area/assembly/robotics) -"bkR" = (/obj/machinery/r_n_d/circuit_imprinter,/turf/open/floor/plasteel/white,/area/assembly/robotics) -"bkS" = (/obj/structure/grille,/obj/machinery/door/poddoor/shutters/preopen{id = "robotics"; name = "robotics lab shutters"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/assembly/robotics) -"bkT" = (/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/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/machinery/door/poddoor/shutters/preopen{id = "robotics"; name = "robotics lab shutters"},/turf/open/floor/plating,/area/assembly/robotics) -"bkU" = (/turf/closed/wall,/area/medical/research{name = "Research Division"}) -"bkV" = (/obj/machinery/door/airlock/research{name = "Research Division Access"; req_access_txt = "47"},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) -"bkW" = (/obj/structure/grille,/obj/machinery/door/poddoor/shutters/preopen{id = "rnd"; name = "research lab shutters"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/toxins/lab) -"bkX" = (/obj/structure/table/reinforced,/obj/machinery/door/window/southright{name = "Research and Development Desk"; req_access_txt = "7"},/obj/machinery/door/poddoor/shutters/preopen{id = "rnd"; name = "research lab shutters"},/turf/open/floor/plating,/area/toxins/lab) -"bkY" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 50; pixel_x = 3; pixel_y = 3},/obj/item/stack/sheet/metal{amount = 50},/obj/item/clothing/glasses/welding,/turf/open/floor/plasteel/white,/area/toxins/lab) -"bkZ" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = 2; pixel_y = 3},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/white,/area/toxins/lab) -"bla" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/asmaint2) -"blb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/maintenance/asmaint2) -"blc" = (/turf/closed/wall/shuttle{icon_state = "swall_s5"; dir = 2},/area/shuttle/escape) -"bld" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/turf/open/floor/plating/airless,/area/shuttle/escape) -"ble" = (/turf/closed/wall/shuttle{icon_state = "swall_s9"; dir = 2},/area/shuttle/escape) -"blf" = (/obj/machinery/conveyor{dir = 1; id = "garbage"},/turf/open/floor/plating,/area/maintenance/disposal) -"blg" = (/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},/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/disposal) -"blh" = (/obj/machinery/mineral/stacking_machine{input_dir = 1; stack_amt = 10},/turf/open/floor/plating,/area/maintenance/disposal) -"bli" = (/obj/machinery/mineral/stacking_unit_console{dir = 2; machinedir = 8},/turf/closed/wall,/area/maintenance/disposal) -"blj" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light/small,/turf/open/floor/plating,/area/maintenance/port) -"blk" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/port) -"bll" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/port) -"blm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/crew_quarters/locker/locker_toilet) -"bln" = (/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) -"blo" = (/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) -"blp" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/window,/turf/open/floor/plating,/area/maintenance/port) -"blq" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port) -"blr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/port) -"bls" = (/obj/machinery/door/poddoor/shutters{id = "qm_warehouse"; name = "warehouse shutters"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/delivery{name = "floor"},/area/quartermaster/storage) -"blt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/quartermaster/storage) -"blu" = (/obj/structure/disposalpipe/wrapsortjunction{dir = 1},/turf/closed/wall,/area/quartermaster/storage) -"blv" = (/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/disposaloutlet{dir = 4},/turf/open/floor/plating,/area/quartermaster/office) -"blw" = (/obj/machinery/door/window/eastleft{dir = 4; icon_state = "right"; name = "Mail"; req_access_txt = "50"},/turf/open/floor/plating,/area/quartermaster/office) -"blx" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/quartermaster/office) -"bly" = (/turf/open/floor/plasteel,/area/quartermaster/office) -"blz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/office) -"blA" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/yellow,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/turf/open/floor/plasteel,/area/quartermaster/office) -"blB" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/quartermaster/office) -"blC" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/plasteel/blue/corner,/area/hallway/primary/central) -"blD" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=1"; dir = 1; freq = 1400; location = "Bridge"},/obj/structure/plasticflaps{opacity = 1},/turf/open/floor/plasteel/bot,/area/bridge/meeting_room) -"blE" = (/obj/machinery/vending/cigarette,/turf/open/floor/wood,/area/bridge/meeting_room) -"blF" = (/turf/open/floor/plasteel/vault{dir = 1},/area/engine/gravity_generator) -"blG" = (/turf/open/floor/plasteel/vault{dir = 8},/area/engine/gravity_generator) -"blH" = (/turf/open/floor/plasteel/vault{dir = 4},/area/engine/gravity_generator) -"blI" = (/obj/item/device/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/captain) -"blJ" = (/obj/machinery/computer/card,/obj/item/weapon/card/id/captains_spare,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/crew_quarters/captain) -"blK" = (/obj/structure/table/wood,/obj/machinery/recharger,/obj/item/weapon/melee/chainofcommand,/turf/open/floor/wood,/area/crew_quarters/captain) -"blL" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine,/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/obj/machinery/requests_console{department = "Chemistry"; departmentType = 2; pixel_x = -30; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/white,/area/medical/chemistry) -"blM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/white,/area/medical/chemistry) -"blN" = (/turf/open/floor/plasteel/white,/area/medical/chemistry) -"blO" = (/obj/structure/chair/office/light{dir = 4},/obj/effect/landmark/start{name = "Chemist"},/turf/open/floor/plasteel/whiteyellow/side{dir = 4},/area/medical/chemistry) -"blP" = (/obj/structure/table/reinforced,/obj/machinery/door/window/eastright{dir = 8; name = "Chemistry Desk"; req_access_txt = "33"},/obj/machinery/door/firedoor,/turf/open/floor/plating,/area/medical/chemistry) -"blQ" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/white,/area/medical/medbay) -"blR" = (/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) -"blS" = (/turf/open/floor/plasteel,/area/security/checkpoint/medical) -"blT" = (/obj/machinery/computer/secure_data,/obj/item/device/radio/intercom{pixel_x = 25},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/checkpoint/medical) -"blU" = (/obj/structure/bodycontainer/morgue,/obj/effect/landmark{name = "revenantspawn"},/turf/open/floor/plasteel/black,/area/medical/morgue) -"blV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/medical/morgue) -"blW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/medical/morgue) -"blX" = (/turf/open/floor/plating,/area/storage/emergency) -"blY" = (/obj/machinery/light/small{dir = 1},/obj/item/weapon/extinguisher,/turf/open/floor/plating,/area/storage/emergency) -"blZ" = (/obj/item/weapon/storage/box/lights/mixed,/turf/open/floor/plating,/area/storage/emergency) -"bma" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/power/apc{dir = 4; name = "Mech Bay APC"; pixel_x = 26; pixel_y = 0},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/assembly/chargebay) -"bmb" = (/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/plasteel,/area/assembly/chargebay) -"bmc" = (/turf/open/floor/plasteel,/area/assembly/chargebay) -"bmd" = (/obj/machinery/button/door{dir = 2; id = "Skynet_launch"; name = "Mech Bay Door Control"; pixel_x = 6; pixel_y = 24},/turf/open/floor/plasteel/warning/corner{dir = 8},/area/assembly/chargebay) -"bme" = (/turf/open/floor/plasteel/warning{dir = 1},/area/assembly/chargebay) -"bmf" = (/obj/machinery/power/apc{dir = 8; name = "Robotics Lab APC"; pixel_x = -25},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plasteel/white,/area/assembly/robotics) -"bmg" = (/obj/structure/chair/office/light{dir = 1},/obj/effect/landmark/start{name = "Roboticist"},/turf/open/floor/plasteel/white,/area/assembly/robotics) -"bmh" = (/turf/open/floor/plasteel/white,/area/assembly/robotics) -"bmi" = (/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"},/turf/open/floor/plasteel/whitered/corner{dir = 4},/area/assembly/robotics) -"bmj" = (/turf/open/floor/plasteel/whitered/side{dir = 1},/area/assembly/robotics) -"bmk" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/whitered/side{dir = 1},/area/assembly/robotics) -"bml" = (/obj/structure/filingcabinet/chestdrawer,/turf/open/floor/plasteel/whitered/side{dir = 1},/area/assembly/robotics) -"bmm" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/warnwhite{dir = 9},/area/medical/research{name = "Research Division"}) -"bmn" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) -"bmo" = (/obj/machinery/camera{c_tag = "Research Division Access"; dir = 2; network = list("SS13")},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/open/floor/plasteel/warnwhite{dir = 5},/area/medical/research{name = "Research Division"}) -"bmp" = (/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/toxins/lab) -"bmq" = (/obj/structure/chair/stool,/obj/effect/landmark/start{name = "Scientist"},/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/toxins/lab) -"bmr" = (/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"},/turf/open/floor/plasteel/whitepurple/corner{dir = 1},/area/toxins/lab) -"bms" = (/turf/open/floor/plasteel/white,/area/toxins/lab) -"bmt" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/asmaint2) -"bmu" = (/obj/structure/shuttle/engine/propulsion,/turf/open/floor/plating/airless,/area/shuttle/escape) -"bmv" = (/turf/closed/wall/shuttle{icon_state = "swall_s6"; dir = 2},/area/shuttle/abandoned) -"bmw" = (/turf/closed/wall/shuttle{icon_state = "swall_s10"; dir = 2},/area/shuttle/abandoned) -"bmx" = (/obj/machinery/door/airlock/shuttle,/obj/docking_port/mobile{dheight = 0; dir = 2; dwidth = 11; height = 22; id = "whiteship"; launch_status = 0; name = "NT Medical Ship"; roundstart_move = "whiteship_away"; travelDir = 180; width = 35},/obj/docking_port/stationary{dir = 2; dwidth = 11; height = 22; id = "whiteship_home"; name = "SS13 Arrival Docking"; width = 35},/turf/open/floor/plasteel/shuttle/white,/area/shuttle/abandoned) -"bmy" = (/turf/closed/wall/shuttle{icon_state = "swall12"; dir = 2},/area/shuttle/abandoned) -"bmz" = (/obj/machinery/door/airlock/shuttle,/turf/open/floor/plasteel/shuttle/white,/area/shuttle/abandoned) -"bmA" = (/obj/machinery/conveyor{dir = 1; id = "garbage"},/obj/structure/sign/vacuum{pixel_x = -32},/turf/open/floor/plating,/area/maintenance/disposal) -"bmB" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/disposal) -"bmC" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/disposal) -"bmD" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/disposal) -"bmE" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/disposal) -"bmF" = (/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) -"bmG" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/port) -"bmH" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/port) -"bmI" = (/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) -"bmJ" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port) -"bmK" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port) -"bmL" = (/obj/structure/cable{d1 = 4; d2 = 8; 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) -"bmM" = (/obj/structure/cable{d1 = 4; d2 = 8; 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) -"bmN" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port) -"bmO" = (/obj/structure/table,/obj/item/clothing/head/soft,/obj/item/clothing/head/soft,/turf/open/floor/plasteel,/area/quartermaster/storage) -"bmP" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/obj/item/weapon/hand_labeler,/obj/machinery/requests_console{department = "Cargo Bay"; departmentType = 2; pixel_x = 0; pixel_y = 30},/turf/open/floor/plasteel,/area/quartermaster/storage) -"bmQ" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/turf/open/floor/plasteel,/area/quartermaster/storage) -"bmR" = (/obj/machinery/camera{c_tag = "Cargo Bay North"},/obj/structure/closet/wardrobe/cargotech,/turf/open/floor/plasteel,/area/quartermaster/storage) -"bmS" = (/turf/open/floor/plasteel,/area/quartermaster/storage) -"bmT" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = 30},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel,/area/quartermaster/storage) -"bmU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/storage) -"bmV" = (/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) -"bmW" = (/obj/machinery/photocopier,/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/turf/open/floor/plasteel,/area/quartermaster/office) -"bmX" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/turf/open/floor/plasteel,/area/quartermaster/office) -"bmY" = (/obj/structure/disposalpipe/segment,/turf/closed/wall,/area/quartermaster/office) -"bmZ" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/obj/machinery/airalarm{dir = 4; locked = 0; pixel_x = -23; pixel_y = 0},/turf/open/floor/plasteel,/area/quartermaster/office) -"bna" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/office) -"bnb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/office) -"bnc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/chair{dir = 4},/obj/effect/landmark/start{name = "Cargo Technician"},/turf/open/floor/plasteel,/area/quartermaster/office) -"bnd" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/hand_labeler,/obj/item/weapon/hand_labeler,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/office) -"bne" = (/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},/turf/open/floor/plasteel/bot,/area/quartermaster/office) -"bnf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/brown/corner{dir = 8},/area/hallway/primary/central) -"bng" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bnh" = (/turf/closed/wall/r_wall,/area/maintenance/maintcentral) -"bni" = (/turf/open/floor/plating,/area/maintenance/maintcentral) -"bnj" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/maintcentral) -"bnk" = (/obj/machinery/power/apc{dir = 1; name = "Bridge Maintenance APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plating,/area/maintenance/maintcentral) -"bnl" = (/obj/structure/closet/wardrobe/black,/turf/open/floor/plating,/area/maintenance/maintcentral) -"bnm" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/bridge/meeting_room) -"bnn" = (/obj/machinery/newscaster/security_unit{pixel_x = -32; pixel_y = 0},/obj/machinery/keycard_auth{pixel_x = 0; pixel_y = -24},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/crew_quarters/captain) -"bno" = (/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/captain) -"bnp" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/wood,/area/crew_quarters/captain) -"bnq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/wood,/area/crew_quarters/captain) -"bnr" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/wood,/area/crew_quarters/captain) -"bns" = (/obj/structure/table/glass,/obj/machinery/reagentgrinder,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/open/floor/plasteel/white,/area/medical/chemistry) -"bnt" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plasteel/white,/area/medical/chemistry) -"bnu" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plasteel/white,/area/medical/chemistry) -"bnv" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/dropper,/turf/open/floor/plasteel/whiteyellow/side{dir = 4},/area/medical/chemistry) -"bnw" = (/obj/machinery/smartfridge/chemistry,/turf/open/floor/plating,/area/medical/chemistry) -"bnx" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay) -"bny" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/whiteblue/corner{dir = 2},/area/medical/medbay) -"bnz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whiteblue/side{dir = 2},/area/medical/medbay) -"bnA" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/whiteblue/side{dir = 2},/area/medical/medbay) -"bnB" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/whiteblue/side{dir = 2},/area/medical/medbay) -"bnC" = (/turf/open/floor/plasteel/whiteblue/side{dir = 2},/area/medical/medbay) -"bnD" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 4},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/checkpoint/medical) -"bnE" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/security/checkpoint/medical) -"bnF" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/checkpoint/medical) -"bnG" = (/obj/machinery/camera{c_tag = "Medbay Morgue"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/plasteel/black,/area/medical/morgue) -"bnH" = (/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plating,/area/storage/emergency) -"bnI" = (/obj/machinery/space_heater,/turf/open/floor/plating,/area/storage/emergency) -"bnJ" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plating,/area/storage/emergency) -"bnK" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/turf/open/floor/plating,/area/storage/emergency) -"bnL" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/bluegrid,/area/assembly/chargebay) -"bnM" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/bluegrid,/area/assembly/chargebay) -"bnN" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel,/area/assembly/chargebay) -"bnO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/assembly/chargebay) -"bnP" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_research{name = "Robotics Lab"; req_access_txt = "29"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/assembly/robotics) -"bnQ" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/assembly/robotics) -"bnR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/assembly/robotics) -"bnS" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/assembly/robotics) -"bnT" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = 6},/obj/item/weapon/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,/turf/open/floor/plasteel/white,/area/assembly/robotics) -"bnU" = (/obj/structure/closet/firecloset,/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/warnwhite{dir = 8},/area/medical/research{name = "Research Division"}) -"bnV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) -"bnW" = (/obj/machinery/shower{dir = 8},/obj/structure/sign/securearea{pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel/warnwhite{dir = 4},/area/medical/research{name = "Research Division"}) -"bnX" = (/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = -30; pixel_y = 0},/turf/open/floor/plasteel/white,/area/toxins/lab) -"bnY" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plasteel/white,/area/toxins/lab) -"bnZ" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/lab) -"boa" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/turf/open/floor/plasteel/white,/area/toxins/lab) -"bob" = (/turf/closed/wall,/area/maintenance/asmaint2) -"boc" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 4},/turf/open/floor/plating/airless,/area/shuttle/abandoned) -"bod" = (/turf/closed/wall/shuttle{icon_state = "swall13"; dir = 2},/area/shuttle/abandoned) -"boe" = (/turf/closed/wall/shuttle{icon_state = "swall11"; dir = 2},/area/shuttle/abandoned) -"bof" = (/turf/open/floor/plasteel/shuttle/white,/area/shuttle/abandoned) -"bog" = (/obj/structure/table,/obj/item/device/radio/off,/turf/open/floor/plasteel/shuttle/white,/area/shuttle/abandoned) -"boh" = (/obj/structure/table,/obj/item/weapon/screwdriver,/turf/open/floor/plasteel/shuttle/white,/area/shuttle/abandoned) -"boi" = (/turf/closed/wall/shuttle{icon_state = "swall3"; dir = 2},/area/shuttle/abandoned) -"boj" = (/obj/machinery/conveyor{dir = 1; id = "garbage"; layer = 2.5},/obj/machinery/door/poddoor/preopen{id = "Disposal Exit"; layer = 3; name = "disposal exit vent"},/turf/open/floor/plating,/area/maintenance/disposal) -"bok" = (/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) -"bol" = (/turf/open/floor/plating,/area/maintenance/disposal) -"bom" = (/obj/effect/decal/cleanable/oil,/obj/machinery/light_switch{pixel_x = 25; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/disposal) -"bon" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/port) -"boo" = (/turf/closed/wall/r_wall,/area/maintenance/port) -"bop" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/turf/closed/wall/r_wall,/area/maintenance/port) -"boq" = (/obj/machinery/door/airlock/maintenance{name = "Cargo Bay Maintenance"; req_access_txt = "31"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/quartermaster/storage) -"bor" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel,/area/quartermaster/storage) -"bos" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/quartermaster/storage) -"bot" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/quartermaster/storage) -"bou" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/brown/corner{dir = 8},/area/quartermaster/office) -"bov" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/office) -"bow" = (/obj/structure/disposalpipe/sortjunction{dir = 1; icon_state = "pipe-j2s"; sortType = 2},/obj/structure/noticeboard{pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/office) -"box" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_mining{name = "Cargo Office"; req_access_txt = "50"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel,/area/quartermaster/office) -"boy" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/office) -"boz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/quartermaster/office) -"boA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel,/area/quartermaster/office) -"boB" = (/obj/structure/table/reinforced,/obj/item/device/destTagger,/obj/item/device/destTagger,/obj/machinery/computer/stockexchange,/turf/open/floor/plasteel,/area/quartermaster/office) -"boC" = (/obj/structure/table/reinforced,/obj/item/stack/wrapping_paper{pixel_x = 3; pixel_y = 4},/obj/item/stack/packageWrap{pixel_x = -1; pixel_y = -1},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -26},/turf/open/floor/plasteel,/area/quartermaster/office) -"boD" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hallway/primary/central) -"boE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/hallway/primary/central) -"boF" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating,/area/maintenance/maintcentral) -"boG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating,/area/maintenance/maintcentral) -"boH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/power/apc{dir = 2; name = "Head of Personnel APC"; pixel_y = -24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/crew_quarters/heads) -"boI" = (/obj/effect/landmark{name = "blobstart"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/maintcentral) -"boJ" = (/obj/machinery/power/apc{dir = 4; name = "Conference Room APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/bridge/meeting_room) -"boK" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/closed/wall/r_wall,/area/engine/gravity_generator) -"boL" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/engine/gravity_generator) -"boM" = (/obj/machinery/gravity_generator/main/station,/turf/open/floor/plasteel/vault{dir = 8},/area/engine/gravity_generator) -"boN" = (/obj/machinery/camera{c_tag = "Gravity Generator Room"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/black,/area/engine/gravity_generator) -"boO" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/closed/wall/r_wall,/area/engine/gravity_generator) -"boP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall/r_wall,/area/crew_quarters/captain) -"boQ" = (/obj/machinery/door/airlock/command{name = "Captain's Quarters"; req_access = null; req_access_txt = "20"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/carpet,/area/crew_quarters/captain) -"boR" = (/obj/machinery/door/airlock/maintenance{name = "Captain's Office Maintenance"; req_access_txt = "20"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/crew_quarters/captain) -"boS" = (/obj/structure/disposalpipe/segment,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) -"boT" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/syringes,/obj/item/clothing/glasses/science{pixel_x = 2; pixel_y = 4},/obj/item/clothing/glasses/science,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/open/floor/plasteel/white,/area/medical/chemistry) -"boU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/chemistry) -"boV" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/white,/area/medical/chemistry) -"boW" = (/obj/structure/table/reinforced,/obj/machinery/door/window/eastright{base_state = "left"; dir = 8; icon_state = "left"; name = "Chemistry Desk"; req_access_txt = "33"},/obj/machinery/door/firedoor,/turf/open/floor/plating,/area/medical/chemistry) -"boX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay) -"boY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/whiteblue/side{dir = 4},/area/medical/medbay) -"boZ" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/turf/open/floor/plasteel/white,/area/medical/medbay) -"bpa" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/food/drinks/britcup{desc = "Kingston's personal cup."},/turf/open/floor/plasteel/white,/area/medical/medbay) -"bpb" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/white,/obj/item/weapon/pen,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine,/turf/open/floor/plasteel/white,/area/medical/medbay) -"bpc" = (/obj/structure/table/reinforced,/obj/machinery/camera{c_tag = "Medbay Foyer"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/obj/machinery/cell_charger,/turf/open/floor/plasteel/white,/area/medical/medbay) -"bpd" = (/obj/machinery/power/apc{dir = 8; name = "Medbay Security APC"; pixel_x = -25},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/checkpoint/medical) -"bpe" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/security/checkpoint/medical) -"bpf" = (/obj/structure/reagent_dispensers/peppertank{pixel_x = 30; pixel_y = 0},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/checkpoint/medical) -"bpg" = (/obj/machinery/mech_bay_recharge_port,/obj/structure/cable,/turf/open/floor/plating,/area/assembly/chargebay) -"bph" = (/turf/open/floor/mech_bay_recharge_floor,/area/assembly/chargebay) -"bpi" = (/obj/machinery/computer/mech_bay_power_console,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/bluegrid,/area/assembly/chargebay) -"bpj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/assembly/chargebay) -"bpk" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel,/area/assembly/chargebay) -"bpl" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/assembly/robotics) -"bpm" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 20; pixel_x = -3; pixel_y = 6},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/device/multitool{pixel_x = 3},/obj/item/device/multitool{pixel_x = 3},/turf/open/floor/plasteel/warning{dir = 1},/area/assembly/robotics) -"bpn" = (/turf/open/floor/plasteel/warning{dir = 1},/area/assembly/robotics) -"bpo" = (/obj/machinery/mecha_part_fabricator,/turf/open/floor/plasteel/warning{dir = 1},/area/assembly/robotics) -"bpp" = (/turf/open/floor/plasteel/warnwhite{dir = 8},/area/assembly/robotics) -"bpq" = (/obj/machinery/ai_status_display{pixel_x = 32; pixel_y = 0},/obj/structure/table,/obj/item/device/assembly/flash/handheld,/obj/item/device/assembly/flash/handheld,/obj/item/device/assembly/flash/handheld,/obj/item/device/assembly/flash/handheld,/obj/item/device/assembly/flash/handheld,/turf/open/floor/plasteel/white,/area/assembly/robotics) -"bpr" = (/obj/structure/closet/firecloset,/turf/open/floor/plasteel/warnwhite{dir = 10},/area/medical/research{name = "Research Division"}) -"bps" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/warnwhite{dir = 6},/area/medical/research{name = "Research Division"}) -"bpt" = (/obj/machinery/r_n_d/destructive_analyzer,/turf/open/floor/plasteel/warning{dir = 1},/area/toxins/lab) -"bpu" = (/turf/open/floor/plasteel/warning{dir = 1},/area/toxins/lab) -"bpv" = (/obj/machinery/r_n_d/protolathe,/turf/open/floor/plasteel/warning{dir = 1},/area/toxins/lab) -"bpw" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/warnwhite{dir = 8},/area/toxins/lab) -"bpx" = (/obj/machinery/hologram/holopad,/turf/open/floor/plasteel/white,/area/toxins/lab) -"bpy" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/glass/beaker/large{pixel_x = -3; pixel_y = 3},/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 8; pixel_y = 2},/obj/item/weapon/reagent_containers/dropper,/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/plasteel/white,/area/toxins/lab) -"bpz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/asmaint2) -"bpA" = (/obj/machinery/light/small{dir = 1},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/asmaint2) -"bpB" = (/obj/machinery/door/airlock/external{req_access_txt = "13"},/turf/open/floor/plating,/area/maintenance/asmaint2) -"bpC" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/item/weapon/cigbutt,/turf/open/floor/plating,/area/maintenance/asmaint2) -"bpD" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 4},/turf/open/floor/plating/airless,/area/shuttle/abandoned) -"bpE" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating/airless,/area/shuttle/abandoned) -"bpF" = (/turf/closed/wall/shuttle{icon_state = "swall_f15"},/area/shuttle/abandoned) -"bpG" = (/turf/closed/wall/shuttle{icon_state = "swall15"; dir = 2},/area/shuttle/abandoned) -"bpH" = (/obj/machinery/computer/pod{id = "oldship_gun"},/turf/open/floor/plasteel/shuttle/white,/area/shuttle/abandoned) -"bpI" = (/turf/closed/wall/shuttle{icon_state = "swall7"; dir = 2},/area/shuttle/abandoned) -"bpJ" = (/obj/machinery/light/small{dir = 8},/obj/machinery/mass_driver{id = "trash"},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/disposal) -"bpK" = (/obj/machinery/conveyor_switch/oneway{convdir = -1; id = "garbage"; name = "disposal coveyor"},/turf/open/floor/plating,/area/maintenance/disposal) -"bpL" = (/obj/machinery/light/small,/turf/open/floor/plating,/area/maintenance/disposal) -"bpM" = (/obj/structure/closet,/turf/open/floor/plating,/area/maintenance/disposal) -"bpN" = (/turf/closed/wall/shuttle{icon_state = "swall_s6"; dir = 2},/area/shuttle/supply) -"bpO" = (/turf/closed/wall/shuttle{icon_state = "swall12"; dir = 2},/area/shuttle/supply) -"bpP" = (/turf/closed/wall/shuttle{icon_state = "swall_s10"; dir = 2},/area/shuttle/supply) -"bpQ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/quartermaster/storage) -"bpR" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/warning{dir = 8},/area/quartermaster/storage) -"bpS" = (/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) -"bpT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel,/area/quartermaster/storage) -"bpU" = (/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) -"bpV" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/quartermaster/storage) -"bpW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel,/area/quartermaster/storage) -"bpX" = (/obj/machinery/door/airlock/glass_mining{name = "Cargo Bay"; req_access_txt = "31"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/storage) -"bpY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/brown{dir = 8},/area/quartermaster/office) -"bpZ" = (/obj/structure/disposalpipe/segment,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel,/area/quartermaster/office) -"bqa" = (/obj/machinery/status_display{density = 0; 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/office) -"bqb" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/quartermaster/office) -"bqc" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plating,/area/quartermaster/office) -"bqd" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_mining{name = "Delivery Office"; req_access_txt = "50"},/turf/open/floor/plasteel,/area/quartermaster/office) -"bqe" = (/obj/machinery/light{dir = 8},/obj/machinery/door/firedoor,/obj/machinery/status_display{density = 0; layer = 3; pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel/brown/corner{dir = 8},/area/hallway/primary/central) -"bqf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/hallway/primary/central) -"bqg" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/maintcentral) -"bqh" = (/turf/closed/wall,/area/crew_quarters/heads) -"bqi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/crew_quarters/heads) -"bqj" = (/obj/machinery/door/airlock/command{name = "Head of Personnel"; req_access = null; req_access_txt = "57"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/crew_quarters/heads) -"bqk" = (/turf/closed/wall/r_wall,/area/crew_quarters/heads) -"bql" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/black,/area/engine/gravity_generator) -"bqm" = (/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/black,/area/engine/gravity_generator) -"bqn" = (/turf/closed/wall,/area/crew_quarters/captain) -"bqo" = (/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/captain) -"bqp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/carpet,/area/crew_quarters/captain) -"bqq" = (/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/carpet,/area/crew_quarters/captain) -"bqr" = (/obj/machinery/door/airlock{name = "Private Restroom"; req_access_txt = "0"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/captain) -"bqs" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/mirror{pixel_x = 28},/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/freezer,/area/crew_quarters/captain) -"bqt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/crew_quarters/captain) -"bqu" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/hallway/primary/central) -"bqv" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bqw" = (/obj/structure/table/glass,/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/item/stack/cable_coil/random,/obj/item/stack/cable_coil/random,/turf/open/floor/plasteel/white,/area/medical/chemistry) -"bqx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/chemistry) -"bqy" = (/obj/structure/disposalpipe/segment,/obj/machinery/chem_heater,/turf/open/floor/plasteel/white,/area/medical/chemistry) -"bqz" = (/obj/machinery/chem_dispenser,/turf/open/floor/plasteel/whiteyellow/side{dir = 2},/area/medical/chemistry) -"bqA" = (/obj/machinery/chem_master,/turf/open/floor/plasteel/whiteyellow/side{dir = 6},/area/medical/chemistry) -"bqB" = (/obj/item/device/radio/intercom{broadcasting = 1; freerange = 0; frequency = 1485; listening = 0; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = -30},/obj/machinery/light,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/plasteel/white,/area/medical/medbay) -"bqC" = (/obj/structure/table/reinforced,/turf/open/floor/plasteel/white,/area/medical/medbay) -"bqD" = (/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{name = "Medical Doctor"},/turf/open/floor/plasteel/white,/area/medical/medbay) -"bqE" = (/obj/structure/chair/office/light{dir = 1},/obj/structure/sign/nosmoking_2{pixel_x = 28},/turf/open/floor/plasteel/white,/area/medical/medbay) -"bqF" = (/obj/structure/closet,/turf/open/floor/plasteel/red/side{dir = 10},/area/security/checkpoint/medical) -"bqG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side,/area/security/checkpoint/medical) -"bqH" = (/obj/machinery/light_switch{pixel_x = 28; pixel_y = 0},/obj/item/weapon/screwdriver{pixel_y = 10},/obj/item/device/radio/off,/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/red/side{dir = 6},/area/security/checkpoint/medical) -"bqI" = (/obj/structure/table,/turf/open/floor/plasteel/black,/area/medical/morgue) -"bqJ" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel/black,/area/medical/morgue) -"bqK" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/light_switch{pixel_y = -25},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/medical/morgue) -"bqL" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/light/small,/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/black,/area/medical/morgue) -"bqM" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/medical/morgue) -"bqN" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/medical/morgue) -"bqO" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/maintenance{name = "Morgue Maintenance"; req_access_txt = "6"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/medical/morgue) -"bqP" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) -"bqQ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/power/apc{dir = 1; name = "Starboard Emergency Storage APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/storage/emergency) -"bqR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/sortjunction{sortType = 9},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) -"bqS" = (/obj/machinery/light{dir = 8},/obj/machinery/camera{c_tag = "Mech Bay"; dir = 4},/turf/open/floor/plasteel,/area/assembly/chargebay) -"bqT" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/assembly/chargebay) -"bqU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/assembly/chargebay) -"bqV" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel,/area/assembly/chargebay) -"bqW" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/assembly/robotics) -"bqX" = (/obj/structure/table,/obj/item/stack/sheet/plasteel{amount = 10},/obj/item/stack/cable_coil,/obj/item/device/assembly/flash/handheld,/obj/item/device/assembly/flash/handheld,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/assembly/robotics) -"bqY" = (/obj/structure/chair/stool,/obj/effect/landmark/start{name = "Roboticist"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/assembly/robotics) -"bqZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/bot,/area/assembly/robotics) -"bra" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/warnwhite{dir = 8},/area/assembly/robotics) -"brb" = (/obj/machinery/hologram/holopad,/turf/open/floor/plasteel/white,/area/assembly/robotics) -"brc" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high/plus,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/turf/open/floor/plasteel/white,/area/assembly/robotics) -"brd" = (/turf/closed/wall/r_wall,/area/medical/research{name = "Research Division"}) -"bre" = (/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/medical/research{name = "Research Division"}) -"brf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/medical/research{name = "Research Division"}) -"brg" = (/obj/machinery/computer/rdconsole/core,/turf/open/floor/plasteel,/area/toxins/lab) -"brh" = (/turf/open/floor/plasteel,/area/toxins/lab) -"bri" = (/obj/machinery/r_n_d/circuit_imprinter,/obj/item/weapon/reagent_containers/glass/beaker/sulphuric,/turf/open/floor/plasteel,/area/toxins/lab) -"brj" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/warnwhite{dir = 8},/area/toxins/lab) -"brk" = (/obj/structure/table/glass,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/micro_laser,/obj/item/weapon/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/toxins/lab) -"brl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating,/area/maintenance/asmaint2) -"brm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/asmaint2) -"brn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating,/area/maintenance/asmaint2) -"bro" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/maintenance/asmaint2) -"brp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/closed/wall,/area/maintenance/asmaint2) -"brq" = (/turf/open/floor/plating,/area/shuttle/abandoned) -"brr" = (/turf/closed/wall/shuttle{icon_state = "swall_f13"},/area/shuttle/abandoned) -"brs" = (/obj/structure/rack,/obj/item/clothing/suit/space/hardsuit/medical,/obj/item/clothing/mask/breath,/turf/open/floor/plasteel/shuttle/white,/area/shuttle/abandoned) -"brt" = (/obj/machinery/door/airlock/glass,/turf/open/floor/plating,/area/shuttle/abandoned) -"bru" = (/obj/machinery/mass_driver{dir = 4; icon_state = "mass_driver"; id = "oldship_gun"},/turf/open/floor/plating,/area/shuttle/abandoned) -"brv" = (/obj/machinery/door/poddoor{id = "oldship_gun"; name = "pod bay door"},/turf/open/floor/plating,/area/shuttle/abandoned) -"brw" = (/obj/machinery/door/poddoor{id = "trash"; name = "disposal bay door"},/turf/open/floor/plating,/area/maintenance/disposal) -"brx" = (/turf/closed/wall/shuttle{icon_state = "swall3"; dir = 2},/area/shuttle/supply) -"bry" = (/turf/open/floor/plasteel/shuttle,/area/shuttle/supply) -"brz" = (/turf/open/floor/plasteel/warning{dir = 8},/area/quartermaster/storage) -"brA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/quartermaster/storage) -"brB" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/storage) -"brC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/quartermaster/storage) -"brD" = (/obj/machinery/door/airlock/glass_mining{name = "Cargo Bay"; req_access_txt = "31"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/quartermaster/storage) -"brE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel/brown{dir = 8},/area/quartermaster/office) -"brF" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/quartermaster/office) -"brG" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/quartermaster/office) -"brH" = (/obj/item/weapon/stamp{pixel_x = -3; pixel_y = 3},/obj/item/weapon/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) -"brI" = (/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/clipboard,/obj/item/weapon/pen/red,/obj/structure/table,/obj/machinery/computer/stockexchange,/turf/open/floor/plasteel,/area/quartermaster/office) -"brJ" = (/obj/machinery/computer/cargo/request,/turf/open/floor/plasteel,/area/quartermaster/office) -"brK" = (/obj/machinery/firealarm{pixel_y = 27},/turf/open/floor/plasteel,/area/quartermaster/office) -"brL" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/quartermaster/office) -"brM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel,/area/hallway/primary/central) -"brN" = (/turf/open/floor/plasteel/red/corner{dir = 2},/area/hallway/primary/central) -"brO" = (/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 = "28"},/obj/machinery/button/door{id = "hopqueue"; name = "Queue Shutters Control"; pixel_x = -4; pixel_y = 25; req_access_txt = "28"},/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) -"brP" = (/obj/structure/table,/obj/machinery/newscaster/security_unit{pixel_x = 0; pixel_y = 32},/obj/item/weapon/hand_labeler,/obj/item/stack/packageWrap,/turf/open/floor/plasteel,/area/crew_quarters/heads) -"brQ" = (/obj/machinery/computer/security/telescreen{desc = "Used for watching Prison Wing holding areas."; name = "Prison Monitor"; network = list("Prison"); pixel_x = 0; pixel_y = 30},/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/turf/open/floor/plasteel,/area/crew_quarters/heads) -"brR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/bed/dogbed{anchored = 1; desc = "Ian's bed! Looks comfy."; name = "Ian's bed"},/mob/living/simple_animal/pet/dog/corgi/Ian{dir = 8},/turf/open/floor/plasteel,/area/crew_quarters/heads) -"brS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/crew_quarters/heads) -"brT" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_x = -32; pixel_y = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/gravity_generator) -"brU" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/gravity_generator) -"brV" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/glass_engineering{name = "Gravity Generator"; req_access_txt = "11"; req_one_access_txt = "0"},/turf/open/floor/plasteel/black,/area/engine/gravity_generator) -"brW" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 32; pixel_y = 0},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/gravity_generator) -"brX" = (/obj/structure/bed,/obj/item/weapon/bedsheet/captain,/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/carpet,/area/crew_quarters/captain) -"brY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/carpet,/area/crew_quarters/captain) -"brZ" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green,/turf/open/floor/carpet,/area/crew_quarters/captain) -"bsa" = (/obj/structure/toilet{dir = 4},/turf/open/floor/plasteel/freezer,/area/crew_quarters/captain) -"bsb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/central) -"bsc" = (/obj/structure/table/glass,/obj/item/weapon/grenade/chem_grenade,/obj/item/weapon/grenade/chem_grenade,/obj/item/weapon/grenade/chem_grenade,/obj/item/weapon/grenade/chem_grenade,/obj/item/weapon/screwdriver{pixel_x = -2; pixel_y = 6},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/white,/area/medical/chemistry) -"bsd" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/white,/area/medical/chemistry) -"bse" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/device/radio/headset/headset_med,/turf/open/floor/plasteel/white,/area/medical/chemistry) -"bsf" = (/turf/closed/wall,/area/medical/medbay) -"bsg" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{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) -"bsh" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{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) -"bsi" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/medical/medbay) -"bsj" = (/obj/machinery/computer/med_data,/turf/open/floor/plasteel/white,/area/medical/medbay) -"bsk" = (/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/requests_console{announcementConsole = 0; department = "Medbay"; departmentType = 1; name = "Medbay RC"; pixel_x = 30; pixel_y = 0; pixel_z = 0},/obj/machinery/light,/turf/open/floor/plasteel/white,/area/medical/medbay) -"bsl" = (/obj/machinery/door/airlock/glass_security{name = "Security Office"; req_access_txt = "63"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/security/checkpoint/medical) -"bsm" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/security/checkpoint/medical) -"bsn" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/medical{name = "Morgue"; req_access_txt = "6;5"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/medical/morgue) -"bso" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/closed/wall,/area/medical/morgue) -"bsp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/medical/morgue) -"bsq" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/closed/wall/r_wall,/area/medical/genetics) -"bsr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/medical/genetics) -"bss" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; 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/asmaint) -"bst" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/assembly/chargebay) -"bsu" = (/obj/machinery/mech_bay_recharge_port,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plating,/area/assembly/chargebay) -"bsv" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/assembly/chargebay) -"bsw" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/assembly/chargebay) -"bsx" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/assembly/robotics) -"bsy" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plasteel,/area/assembly/robotics) -"bsz" = (/turf/open/floor/plasteel,/area/assembly/robotics) -"bsA" = (/obj/structure/table,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/weapon/stock_parts/cell/high/plus,/obj/item/weapon/stock_parts/cell/high/plus{pixel_x = 5; pixel_y = -5},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/item/weapon/crowbar,/turf/open/floor/plasteel/white,/area/assembly/robotics) -"bsB" = (/turf/closed/wall,/area/assembly/robotics) -"bsC" = (/obj/machinery/door/firedoor/heavy,/obj/machinery/door/poddoor/preopen{id = "Biohazard"; name = "biohazard containment door"},/turf/open/floor/plasteel/bot,/area/medical/research{name = "Research Division"}) -"bsD" = (/obj/machinery/door/firedoor/heavy,/obj/machinery/door/poddoor/preopen{id = "Biohazard"; name = "biohazard containment door"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/bot,/area/medical/research{name = "Research Division"}) -"bsE" = (/obj/machinery/door/firedoor/heavy,/obj/machinery/door/poddoor/preopen{id = "Biohazard"; name = "biohazard containment door"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/bot,/area/medical/research{name = "Research Division"}) -"bsF" = (/turf/closed/wall,/area/toxins/lab) -"bsG" = (/turf/open/floor/plasteel/warnwhite{dir = 1},/area/toxins/lab) -"bsH" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/warnwhite{dir = 1},/area/toxins/lab) -"bsI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/warnwhite{dir = 1},/area/toxins/lab) -"bsJ" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/warnwhite/corner{dir = 4},/area/toxins/lab) -"bsK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/white,/area/toxins/lab) -"bsL" = (/obj/item/weapon/stock_parts/console_screen,/obj/structure/table/glass,/obj/item/weapon/stock_parts/console_screen,/obj/item/weapon/stock_parts/console_screen,/obj/item/weapon/stock_parts/matter_bin,/obj/item/weapon/stock_parts/matter_bin,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/item/weapon/stock_parts/scanning_module{pixel_x = 2; pixel_y = 3},/obj/item/weapon/stock_parts/scanning_module,/obj/machinery/power/apc{dir = 4; name = "Research Lab APC"; pixel_x = 26; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel/white,/area/toxins/lab) -"bsM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/plasticflaps{opacity = 1},/turf/open/floor/plasteel/loadingarea,/area/toxins/lab) -"bsN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/toxins/lab) -"bsO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating,/area/maintenance/asmaint2) -"bsP" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint2) -"bsQ" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/asmaint2) -"bsR" = (/turf/closed/wall/shuttle{icon_state = "swall_f12"},/area/shuttle/abandoned) -"bsS" = (/turf/closed/wall/shuttle{icon_state = "swall14"; dir = 2},/area/shuttle/abandoned) -"bsT" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/quartermaster/storage) -"bsU" = (/obj/machinery/conveyor_switch/oneway{id = "QMLoad2"},/turf/open/floor/plasteel/warning{dir = 8},/area/quartermaster/storage) -"bsV" = (/turf/open/floor/plasteel/bot,/area/quartermaster/storage) -"bsW" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/quartermaster/storage) -"bsX" = (/turf/open/floor/plasteel/brown/corner{dir = 1},/area/quartermaster/office) -"bsY" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/quartermaster/office) -"bsZ" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,/turf/open/floor/plasteel,/area/quartermaster/office) -"bta" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 8; 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) -"btb" = (/obj/effect/landmark/start{name = "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) -"btc" = (/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) -"btd" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/delivery,/area/quartermaster/office) -"bte" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/quartermaster/office) -"btf" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plasteel/brown/corner{dir = 8},/area/hallway/primary/central) -"btg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bth" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/red/side{dir = 4},/area/hallway/primary/central) -"bti" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/poddoor/shutters/preopen{id = "hopqueue"; name = "HoP Queue Shutters"},/turf/open/floor/plasteel/loadingarea{dir = 8},/area/hallway/primary/central) -"btj" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/delivery,/area/hallway/primary/central) -"btk" = (/obj/structure/table/reinforced,/obj/machinery/door/window/northleft{dir = 8; icon_state = "left"; name = "Reception Window"; req_access_txt = "0"},/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_x = 0; pixel_y = 28},/obj/machinery/door/poddoor/shutters/preopen{id = "hop"; layer = 2.9; name = "Privacy Shutters"},/turf/open/floor/plasteel,/area/crew_quarters/heads) -"btl" = (/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) -"btm" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/carpet,/area/crew_quarters/heads) -"btn" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/carpet,/area/crew_quarters/heads) -"bto" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/carpet,/area/crew_quarters/heads) -"btp" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/crew_quarters/heads) -"btq" = (/obj/structure/chair/office/light,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/plasteel/warning{dir = 9},/area/engine/gravity_generator) -"btr" = (/turf/open/floor/plasteel/warning{dir = 1},/area/engine/gravity_generator) -"bts" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/warning{dir = 5},/area/engine/gravity_generator) -"btt" = (/obj/structure/closet/secure_closet/captains,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/carpet,/area/crew_quarters/captain) -"btu" = (/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/captain) -"btv" = (/obj/structure/table/wood,/obj/item/weapon/storage/box/matches,/obj/item/weapon/razor{pixel_x = -4; pixel_y = 2},/obj/item/clothing/mask/cigarette/cigar,/obj/item/weapon/reagent_containers/food/drinks/flask/gold,/turf/open/floor/carpet,/area/crew_quarters/captain) -"btw" = (/obj/machinery/shower{dir = 4},/obj/item/weapon/soap/deluxe,/obj/item/weapon/bikehorn/rubberducky,/obj/effect/landmark{name = "revenantspawn"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/captain) -"btx" = (/obj/structure/disposalpipe/segment,/obj/machinery/light{dir = 8},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bty" = (/obj/structure/closet/wardrobe/chemistry_white,/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/turf/open/floor/plasteel/white,/area/medical/chemistry) -"btz" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/table,/obj/item/weapon/book/manual/wiki/chemistry,/obj/item/weapon/book/manual/wiki/chemistry{pixel_x = 3; pixel_y = 3},/turf/open/floor/plasteel/white,/area/medical/chemistry) -"btA" = (/obj/structure/chair,/turf/open/floor/plasteel/white,/area/medical/chemistry) -"btB" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/obj/item/stack/packageWrap,/turf/open/floor/plasteel/white,/area/medical/chemistry) -"btC" = (/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_x = 0; pixel_y = 26},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/open/floor/plasteel/white,/area/medical/medbay) -"btD" = (/obj/machinery/status_display,/turf/closed/wall,/area/medical/medbay) -"btE" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{name = "Medbay Reception"; req_access_txt = "5"},/turf/open/floor/plasteel/white,/area/medical/medbay) -"btF" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plasteel/white,/area/medical/medbay) -"btG" = (/obj/structure/cable{d1 = 1; d2 = 2; 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) -"btH" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/white,/area/medical/medbay) -"btI" = (/obj/structure/sign/nosmoking_2{pixel_x = 0; 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) -"btJ" = (/obj/machinery/airalarm{frequency = 1439; 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) -"btK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay) -"btL" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/white,/area/medical/medbay) -"btM" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay) -"btN" = (/obj/structure/bed/roller,/turf/open/floor/plasteel/whiteblue/side{dir = 4},/area/medical/medbay) -"btO" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/medical/genetics) -"btP" = (/obj/structure/table/glass,/obj/item/weapon/folder/white,/obj/item/device/radio/headset/headset_medsci,/obj/machinery/requests_console{department = "Genetics"; departmentType = 0; name = "Genetics Requests Console"; pixel_x = 0; pixel_y = 30},/obj/item/weapon/storage/pill_bottle/mutadone,/obj/item/weapon/storage/pill_bottle/mannitol,/turf/open/floor/plasteel/white,/area/medical/genetics) -"btQ" = (/obj/machinery/power/apc{dir = 1; name = "Genetics APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plasteel/white,/area/medical/genetics) -"btR" = (/obj/machinery/light{dir = 1},/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/turf/open/floor/plasteel/white,/area/medical/genetics) -"btS" = (/obj/machinery/dna_scannernew,/turf/open/floor/plasteel/whiteblue/side{dir = 5},/area/medical/genetics) -"btT" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel,/area/medical/genetics) -"btU" = (/mob/living/carbon/monkey,/turf/open/floor/plasteel,/area/medical/genetics) -"btV" = (/turf/closed/wall/r_wall,/area/medical/genetics) -"btW" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/closed/wall,/area/assembly/chargebay) -"btX" = (/obj/structure/extinguisher_cabinet{pixel_x = -27},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/bluegrid,/area/assembly/chargebay) -"btY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/bluegrid,/area/assembly/chargebay) -"btZ" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/bluegrid,/area/assembly/chargebay) -"bua" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel,/area/assembly/chargebay) -"bub" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/assembly/chargebay) -"buc" = (/obj/structure/table,/obj/item/weapon/retractor,/obj/item/weapon/hemostat,/turf/open/floor/plasteel,/area/assembly/robotics) -"bud" = (/obj/structure/table,/obj/item/device/mmi,/obj/item/device/mmi,/obj/item/device/mmi,/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/turf/open/floor/plasteel,/area/assembly/robotics) -"bue" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{empty = 1; name = "First-Aid (empty)"},/obj/item/weapon/storage/firstaid/regular{empty = 1; name = "First-Aid (empty)"},/obj/item/weapon/storage/firstaid/regular{empty = 1; name = "First-Aid (empty)"},/obj/item/device/healthanalyzer,/obj/item/device/healthanalyzer,/obj/item/device/healthanalyzer,/turf/open/floor/plasteel/white,/area/assembly/robotics) -"buf" = (/obj/structure/grille,/obj/machinery/door/poddoor/shutters/preopen{id = "robotics2"; name = "robotics lab shutters"},/obj/structure/window/fulltile,/obj/machinery/door/poddoor/shutters/preopen{id = "robotics2"; name = "robotics lab shutters"},/turf/open/floor/plating,/area/assembly/robotics) -"bug" = (/turf/open/floor/plasteel/white/corner{dir = 2},/area/medical/research{name = "Research Division"}) -"buh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white/side{dir = 2},/area/medical/research{name = "Research Division"}) -"bui" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white/corner{dir = 8},/area/medical/research{name = "Research Division"}) -"buj" = (/obj/item/weapon/folder/white,/obj/structure/table,/obj/item/weapon/disk/tech_disk{pixel_x = 0; pixel_y = 0},/obj/item/weapon/disk/tech_disk{pixel_x = 0; pixel_y = 0},/obj/item/weapon/disk/design_disk,/obj/item/weapon/disk/design_disk,/turf/open/floor/plasteel/white,/area/toxins/lab) -"buk" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high/plus,/obj/item/weapon/stock_parts/cell/high/plus,/turf/open/floor/plasteel/white,/area/toxins/lab) -"bul" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/toxins/lab) -"bum" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/white,/area/toxins/lab) -"bun" = (/obj/machinery/light_switch{pixel_x = 0; pixel_y = -23},/turf/open/floor/plasteel/white,/area/toxins/lab) -"buo" = (/obj/machinery/door/window/eastright{base_state = "left"; dir = 8; icon_state = "left"; name = "Research Division Delivery"; req_access_txt = "47"},/turf/open/floor/plasteel/delivery,/area/toxins/lab) -"bup" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; dir = 8; freq = 1400; location = "Research Division"},/turf/open/floor/plasteel/bot,/area/toxins/lab) -"buq" = (/turf/closed/wall/r_wall,/area/toxins/explab) -"bur" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"; dir = 4},/turf/open/floor/plating/airless,/area/shuttle/abandoned) -"bus" = (/turf/closed/wall/shuttle{icon_state = "swall_f17"},/area/shuttle/abandoned) -"but" = (/obj/machinery/door/airlock/shuttle,/turf/open/floor/plating,/area/shuttle/abandoned) -"buu" = (/obj/item/weapon/stock_parts/cell{charge = 100; maxcharge = 15000},/turf/open/floor/plasteel/shuttle/white,/area/shuttle/abandoned) -"buv" = (/turf/closed/wall/shuttle{icon_state = "swall_f14"},/area/shuttle/abandoned) -"buw" = (/obj/structure/rack,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/storage/toolbox/mechanical,/turf/open/floor/plasteel/shuttle/white,/area/shuttle/abandoned) -"bux" = (/obj/structure/frame/computer{anchored = 1},/turf/open/floor/plasteel/shuttle/white,/area/shuttle/abandoned) -"buy" = (/turf/closed/wall/shuttle{icon_state = "swall_f11"},/area/shuttle/abandoned) -"buz" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/obj/machinery/door/poddoor{id = "QMLoaddoor2"; name = "supply dock loading door"},/turf/open/floor/plating,/area/shuttle/supply) -"buA" = (/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) -"buB" = (/obj/structure/plasticflaps,/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/turf/open/floor/plating,/area/quartermaster/storage) -"buC" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/turf/open/floor/plating/warnplate{dir = 1},/area/quartermaster/storage) -"buD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/loadingarea{dir = 4},/area/quartermaster/storage) -"buE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/storage) -"buF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/storage) -"buG" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/quartermaster/storage) -"buH" = (/obj/machinery/light_switch{pixel_x = 27},/turf/open/floor/plasteel,/area/quartermaster/storage) -"buI" = (/obj/machinery/autolathe,/obj/machinery/light_switch{pixel_x = -27},/turf/open/floor/plasteel,/area/quartermaster/office) -"buJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/quartermaster/office) -"buK" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/office) -"buL" = (/obj/machinery/computer/cargo,/turf/open/floor/plasteel,/area/quartermaster/office) -"buM" = (/turf/open/floor/plasteel/bot,/area/quartermaster/office) -"buN" = (/obj/machinery/hologram/holopad,/turf/open/floor/plasteel,/area/quartermaster/office) -"buO" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/quartermaster/office) -"buP" = (/turf/open/floor/plasteel/red/corner{dir = 4},/area/hallway/primary/central) -"buQ" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/hallway/primary/central) -"buR" = (/turf/open/floor/plasteel/bot,/area/hallway/primary/central) -"buS" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/door/poddoor/shutters/preopen{id = "hop"; layer = 2.9; name = "Privacy Shutters"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/heads) -"buT" = (/obj/machinery/computer/card,/turf/open/floor/plasteel/blue/side{dir = 10},/area/crew_quarters/heads) -"buU" = (/turf/open/floor/carpet,/area/crew_quarters/heads) -"buV" = (/obj/machinery/hologram/holopad,/turf/open/floor/carpet,/area/crew_quarters/heads) -"buW" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/crew_quarters/heads) -"buX" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 8; name = "Gravity Generator APC"; pixel_x = -25; pixel_y = 1},/obj/structure/table,/obj/item/weapon/paper/gravity_gen{layer = 3},/obj/item/weapon/pen/blue,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -35},/turf/open/floor/plasteel,/area/engine/gravity_generator) -"buY" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/engine/gravity_generator) -"buZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/hologram/holopad,/turf/open/floor/plasteel,/area/engine/gravity_generator) -"bva" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable,/obj/machinery/power/smes{charge = 5e+006},/turf/open/floor/plasteel,/area/engine/gravity_generator) -"bvb" = (/turf/closed/wall/r_wall,/area/teleporter) -"bvc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall/r_wall,/area/teleporter) -"bvd" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/teleporter) -"bve" = (/obj/machinery/door/airlock/maintenance{name = "Teleporter Maintenance"; req_access_txt = "17"},/obj/structure/sign/securearea{pixel_x = -32; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/teleporter) -"bvf" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/hallway/primary/central) -"bvg" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/central) -"bvh" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Chemistry Lab"; req_access_txt = "5; 33"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/chemistry) -"bvi" = (/obj/structure/grille,/obj/structure/disposalpipe/segment,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/medical/chemistry) -"bvj" = (/obj/structure/table/reinforced,/obj/machinery/door/window/southleft{dir = 1; name = "Chemistry Desk"; req_access_txt = "33"},/obj/machinery/door/firedoor,/turf/open/floor/plating,/area/medical/chemistry) -"bvk" = (/obj/structure/bed/roller,/turf/open/floor/plasteel/white,/area/medical/medbay) -"bvl" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/white,/area/medical/medbay) -"bvm" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay) -"bvn" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/white,/area/medical/medbay) -"bvo" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/white,/area/medical/medbay) -"bvp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay) -"bvq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay) -"bvr" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay) -"bvs" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/rxglasses,/turf/open/floor/plasteel/white,/area/medical/genetics) -"bvt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/white,/area/medical/genetics) -"bvu" = (/obj/structure/chair/office/light{dir = 4},/obj/effect/landmark/start{name = "Geneticist"},/turf/open/floor/plasteel/white,/area/medical/genetics) -"bvv" = (/obj/machinery/computer/scan_consolenew,/turf/open/floor/plasteel/whiteblue/side{dir = 6},/area/medical/genetics) -"bvw" = (/obj/structure/window/reinforced{dir = 8},/mob/living/carbon/monkey,/turf/open/floor/plasteel,/area/medical/genetics) -"bvx" = (/turf/open/floor/plasteel,/area/medical/genetics) -"bvy" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/sortjunction{dir = 2; icon_state = "pipe-j2s"; sortType = 14},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plating,/area/maintenance/asmaint) -"bvz" = (/obj/machinery/door/airlock/maintenance{name = "Mech Bay Maintenance"; req_access_txt = "29"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/assembly/chargebay) -"bvA" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/assembly/chargebay) -"bvB" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/assembly/chargebay) -"bvC" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/assembly/chargebay) -"bvD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel,/area/assembly/chargebay) -"bvE" = (/obj/structure/table,/obj/item/weapon/circular_saw,/obj/item/weapon/scalpel{pixel_y = 12},/turf/open/floor/plasteel/white/corner{dir = 2},/area/assembly/robotics) -"bvF" = (/obj/structure/table,/obj/item/clothing/gloves/color/latex,/obj/item/weapon/surgical_drapes,/obj/item/weapon/razor,/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/turf/open/floor/plasteel/white/corner{dir = 8},/area/assembly/robotics) -"bvG" = (/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/white,/area/assembly/robotics) -"bvH" = (/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/weapon/folder/white,/obj/item/weapon/pen,/turf/open/floor/plating,/area/assembly/robotics) -"bvI" = (/turf/open/floor/plasteel/white/side{dir = 5},/area/medical/research{name = "Research Division"}) -"bvJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white/side{dir = 9},/area/medical/research{name = "Research Division"}) -"bvK" = (/obj/structure/grille,/obj/machinery/door/poddoor/shutters/preopen{id = "rnd2"; name = "research lab shutters"},/obj/structure/window/fulltile,/turf/open/floor/plating,/area/toxins/lab) -"bvL" = (/obj/machinery/door/firedoor/heavy,/obj/machinery/door/poddoor/shutters/preopen{id = "rnd2"; name = "research lab shutters"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/toxins/lab) -"bvM" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor/heavy,/obj/machinery/door/poddoor/shutters/preopen{id = "rnd2"; name = "research lab shutters"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/toxins/lab) -"bvN" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 0; pixel_y = 6},/turf/open/floor/plasteel/white/corner{dir = 2},/area/toxins/explab) -"bvO" = (/obj/structure/table,/obj/item/weapon/pen,/obj/machinery/camera{c_tag = "Experimentor Lab"; dir = 2; network = list("SS13","RD")},/obj/item/weapon/hand_labeler,/obj/item/stack/packageWrap,/turf/open/floor/plasteel/white/side{dir = 2},/area/toxins/explab) -"bvP" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/weapon/folder/white,/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/obj/item/device/radio/off,/turf/open/floor/plasteel/white/side{dir = 2},/area/toxins/explab) -"bvQ" = (/obj/structure/closet/l3closet/scientist,/turf/open/floor/plasteel/white/side{dir = 2},/area/toxins/explab) -"bvR" = (/obj/structure/closet/emcloset{pixel_x = -2},/turf/open/floor/plasteel/white/corner{dir = 8},/area/toxins/explab) -"bvS" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/sign/securearea{pixel_x = -32},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/asmaint2) -"bvT" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/shuttle/white,/area/shuttle/abandoned) -"bvU" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/open/floor/plasteel/shuttle/white,/area/shuttle/abandoned) -"bvV" = (/obj/machinery/door/airlock/shuttle{name = "Supply Shuttle Airlock"; req_access_txt = "31"},/turf/open/floor/plating,/area/shuttle/supply) -"bvW" = (/obj/machinery/door/airlock/external{name = "Supply Dock Airlock"; req_access_txt = "31"},/turf/open/floor/plating,/area/quartermaster/storage) -"bvX" = (/turf/open/floor/plating,/area/quartermaster/storage) -"bvY" = (/turf/open/floor/plasteel/warning{dir = 9},/area/quartermaster/storage) -"bvZ" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/bot,/area/quartermaster/storage) -"bwa" = (/turf/open/floor/plasteel/delivery,/area/quartermaster/storage) -"bwb" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; dir = 8; freq = 1400; location = "QM #1"},/mob/living/simple_animal/bot/mulebot{beacon_freq = 1400; home_destination = "QM #1"; suffix = "#1"},/turf/open/floor/plasteel/bot,/area/quartermaster/storage) -"bwc" = (/obj/structure/table,/obj/machinery/requests_console{department = "Cargo Bay"; departmentType = 2; pixel_x = -30; pixel_y = 0},/obj/item/device/multitool,/obj/machinery/camera{c_tag = "Cargo Office"; dir = 4; network = list("SS13")},/turf/open/floor/plasteel,/area/quartermaster/office) -"bwd" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_mining{name = "Cargo Office"; req_access_txt = "50"},/turf/open/floor/plasteel,/area/quartermaster/office) -"bwe" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/quartermaster/office) -"bwf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bwg" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/bot,/area/hallway/primary/central) -"bwh" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = -32},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable,/obj/machinery/door/poddoor/shutters/preopen{id = "hop"; layer = 2.9; name = "Privacy Shutters"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/heads) -"bwi" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/filingcabinet/chestdrawer,/turf/open/floor/plasteel,/area/crew_quarters/heads) -"bwj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/carpet,/area/crew_quarters/heads) -"bwk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/carpet,/area/crew_quarters/heads) -"bwl" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/crew_quarters/heads) -"bwm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/closed/wall/r_wall,/area/engine/gravity_generator) -"bwn" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/closed/wall/r_wall,/area/engine/gravity_generator) -"bwo" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/engine/gravity_generator) -"bwp" = (/turf/open/floor/plasteel,/area/engine/gravity_generator) -"bwq" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel,/area/engine/gravity_generator) -"bwr" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/closed/wall/r_wall,/area/engine/gravity_generator) -"bws" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/closed/wall/r_wall,/area/engine/gravity_generator) -"bwt" = (/turf/closed/wall,/area/teleporter) -"bwu" = (/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 1},/obj/structure/table,/obj/item/device/radio/beacon,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel,/area/teleporter) -"bwv" = (/obj/structure/table,/obj/item/weapon/hand_tele,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/teleporter) -"bww" = (/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/obj/structure/closet/crate,/obj/item/weapon/crowbar,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/teleporter) -"bwx" = (/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) -"bwy" = (/obj/machinery/camera{c_tag = "Teleporter"},/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/teleporter) -"bwz" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/teleporter) -"bwA" = (/obj/machinery/light_switch{pixel_x = 27},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/teleporter) -"bwB" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/blue/side{dir = 8},/area/hallway/primary/central) -"bwC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bwD" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/medical/medbay) -"bwE" = (/obj/structure/table,/obj/item/weapon/crowbar,/obj/item/clothing/tie/stethoscope,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/structure/sign/nosmoking_2{pixel_x = 0; pixel_y = 30},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/whiteyellow/corner{dir = 4},/area/medical/medbay) -"bwF" = (/obj/structure/cable{d1 = 1; d2 = 4; 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) -"bwG" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel/whiteyellow/side{dir = 1},/area/medical/medbay) -"bwH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/whiteyellow/side{dir = 1},/area/medical/medbay) -"bwI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/whiteyellow/corner{dir = 1},/area/medical/medbay) -"bwJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/noticeboard{pixel_y = 32},/obj/machinery/camera{c_tag = "Medbay West"; dir = 2; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay) -"bwK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay) -"bwL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel/white,/area/medical/medbay) -"bwM" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay) -"bwN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel/white,/area/medical/medbay) -"bwO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/white,/area/medical/medbay) -"bwP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/white,/area/medical/medbay) -"bwQ" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/whiteblue/corner{dir = 2},/area/medical/medbay) -"bwR" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/whiteblue/side{dir = 2},/area/medical/medbay) -"bwS" = (/obj/structure/bed/roller,/turf/open/floor/plasteel/whiteblue/side{dir = 6},/area/medical/medbay) -"bwT" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/disks{pixel_x = 2; pixel_y = 2},/turf/open/floor/plasteel/white,/area/medical/genetics) -"bwU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/white,/area/medical/genetics) -"bwV" = (/turf/open/floor/plasteel/white,/area/medical/genetics) -"bwW" = (/obj/machinery/door/window/westleft{name = "Monkey Pen"; req_access_txt = "9"},/turf/open/floor/plasteel,/area/medical/genetics) -"bwX" = (/obj/structure/table,/obj/item/weapon/crowbar/large,/turf/open/floor/plasteel,/area/assembly/chargebay) -"bwY" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical,/turf/open/floor/plasteel,/area/assembly/chargebay) -"bwZ" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel,/area/assembly/chargebay) -"bxa" = (/obj/machinery/recharge_station,/turf/open/floor/plasteel/bot,/area/assembly/chargebay) -"bxb" = (/obj/structure/table,/obj/item/weapon/storage/box/bodybags,/obj/item/weapon/pen,/turf/open/floor/plasteel/white/side{dir = 4},/area/assembly/robotics) -"bxc" = (/obj/structure/table/optable{name = "Robotics Operating Table"},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/white,/area/assembly/robotics) -"bxd" = (/obj/machinery/computer/operating{name = "Robotics Operating Computer"},/obj/machinery/light,/turf/open/floor/plasteel/white,/area/assembly/robotics) -"bxe" = (/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/turf/open/floor/plasteel/warnwhite{dir = 8},/area/assembly/robotics) -"bxf" = (/obj/structure/closet/wardrobe/robotics_black,/obj/item/device/radio/headset/headset_sci{pixel_x = -3},/turf/open/floor/plasteel/white,/area/assembly/robotics) -"bxg" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/white/side{dir = 5},/area/medical/research{name = "Research Division"}) -"bxh" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) -"bxi" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white/side{dir = 9},/area/medical/research{name = "Research Division"}) -"bxj" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/noticeboard{pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) -"bxk" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/camera{c_tag = "Research Division North"; dir = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) -"bxl" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white/side{dir = 10},/area/medical/research{name = "Research Division"}) -"bxm" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) -"bxn" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) -"bxo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white/side{dir = 6},/area/medical/research{name = "Research Division"}) -"bxp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) -"bxq" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/toxins/explab) -"bxr" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/explab) -"bxs" = (/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},/turf/open/floor/plasteel/white,/area/toxins/explab) -"bxt" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/explab) -"bxu" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/explab) -"bxv" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/explab) -"bxw" = (/obj/machinery/door/airlock/maintenance{name = "Experimentation Lab Maintenance"; req_access_txt = "7"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/toxins/explab) -"bxx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 1},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint2) -"bxy" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/shuttle/abandoned) -"bxz" = (/obj/machinery/button/door{dir = 2; id = "QMLoaddoor2"; name = "Loading Doors"; pixel_x = 24; pixel_y = 8},/obj/machinery/button/door{id = "QMLoaddoor"; name = "Loading Doors"; pixel_x = 24; pixel_y = -8},/turf/open/floor/plasteel/shuttle,/area/shuttle/supply) -"bxA" = (/obj/machinery/camera{c_tag = "Cargo Recieving 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},/turf/open/floor/plasteel/warning{dir = 8},/area/quartermaster/storage) -"bxB" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; dir = 8; freq = 1400; location = "QM #2"},/mob/living/simple_animal/bot/mulebot{home_destination = "QM #2"; suffix = "#2"},/turf/open/floor/plasteel/bot,/area/quartermaster/storage) -"bxC" = (/obj/structure/table,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/item/weapon/folder/yellow,/turf/open/floor/plasteel,/area/quartermaster/office) -"bxD" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel,/area/quartermaster/office) -"bxE" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/office) -"bxF" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/quartermaster/office) -"bxG" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/quartermaster/office) -"bxH" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel,/area/quartermaster/office) -"bxI" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/brown/corner{dir = 8},/area/hallway/primary/central) -"bxJ" = (/obj/structure/table,/obj/machinery/recharger,/turf/open/floor/plasteel/blue/side{dir = 9},/area/crew_quarters/heads) -"bxK" = (/turf/open/floor/plasteel,/area/crew_quarters/heads) -"bxL" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/open/floor/plasteel,/area/crew_quarters/heads) -"bxM" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/crew_quarters/heads) -"bxN" = (/obj/structure/cable{d1 = 1; d2 = 2; 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) -"bxO" = (/turf/closed/wall/r_wall,/area/engine/gravity_generator) -"bxP" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/engineering{name = "Gravity Generator"; req_access_txt = "11"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/gravity_generator) -"bxQ" = (/obj/machinery/power/apc{dir = 8; name = "Teleporter APC"; pixel_x = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel,/area/teleporter) -"bxR" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/teleporter) -"bxS" = (/obj/machinery/hologram/holopad,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/teleporter) -"bxT" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/bluespace_beacon,/turf/open/floor/plasteel,/area/teleporter) -"bxU" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/teleporter) -"bxV" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel,/area/teleporter) -"bxW" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{name = "Teleport Access"; req_access_txt = "17"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/teleporter) -"bxX" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/blue/side{dir = 8},/area/hallway/primary/central) -"bxY" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bxZ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/medical/medbay) -"bya" = (/obj/structure/table,/obj/item/weapon/storage/box/masks{pixel_x = 0; pixel_y = 0},/obj/item/weapon/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) -"byb" = (/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,/turf/open/floor/plasteel/white,/area/medical/medbay) -"byc" = (/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) -"byd" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay) -"bye" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay) -"byf" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = -30},/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay) -"byg" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay) -"byh" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/medbay) -"byi" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/plasteel/white,/area/medical/medbay) -"byj" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay) -"byk" = (/obj/machinery/light,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plasteel/white,/area/medical/medbay) -"byl" = (/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 30; pixel_y = 0},/obj/machinery/camera{c_tag = "Medbay East"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = -22},/turf/open/floor/plasteel/white,/area/medical/medbay) -"bym" = (/turf/closed/wall,/area/medical/genetics) -"byn" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{id_tag = "GeneticsDoor"; name = "Genetics"; req_access_txt = "5; 9"},/turf/open/floor/plasteel/white,/area/medical/genetics) -"byo" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/genetics) -"byp" = (/obj/structure/chair/office/light{dir = 4},/turf/open/floor/plasteel/white,/area/medical/genetics) -"byq" = (/obj/machinery/computer/scan_consolenew,/turf/open/floor/plasteel/whiteblue/side{dir = 5},/area/medical/genetics) -"byr" = (/turf/closed/wall/r_wall,/area/assembly/chargebay) -"bys" = (/obj/structure/grille,/obj/machinery/door/poddoor/shutters/preopen{id = "robotics2"; name = "robotics lab shutters"},/obj/structure/window/fulltile,/turf/open/floor/plating,/area/assembly/robotics) -"byt" = (/obj/machinery/door/airlock/research{name = "Robotics Lab"; req_access_txt = "29"; req_one_access_txt = "0"},/turf/open/floor/plasteel/white,/area/assembly/robotics) -"byu" = (/obj/machinery/status_display{density = 0; layer = 3; pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel/white/side{dir = 5},/area/medical/research{name = "Research Division"}) -"byv" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) -"byw" = (/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,/turf/open/floor/plasteel/white/side{dir = 9},/area/medical/research{name = "Research Division"}) -"byx" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) -"byy" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) -"byz" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) -"byA" = (/obj/machinery/light,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) -"byB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) -"byC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor/heavy,/obj/machinery/door/airlock/research{name = "Experimentation Lab"; req_access_txt = "7"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/explab) -"byD" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/explab) -"byE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/explab) -"byF" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/explab) -"byG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/white,/area/toxins/explab) -"byH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/explab) -"byI" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel/white,/area/toxins/explab) -"byJ" = (/obj/machinery/power/apc{dir = 4; name = "Experimentation Lab APC"; pixel_x = 26; pixel_y = 0},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/explab) -"byK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/toxins/explab) -"byL" = (/obj/structure/cable{d1 = 1; d2 = 2; 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/asmaint2) -"byM" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/maintenance/asmaint2) -"byN" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/asmaint2) -"byO" = (/obj/machinery/door/airlock/shuttle{name = "Supply Shuttle Airlock"; req_access_txt = "31"},/obj/docking_port/mobile/supply{dwidth = 5; width = 12},/obj/docking_port/stationary{dir = 8; dwidth = 5; height = 7; id = "supply_home"; name = "Cargo Bay"; width = 12},/turf/open/floor/plating,/area/shuttle/supply) -"byP" = (/obj/machinery/conveyor_switch/oneway{convdir = -1; id = "QMLoad"},/turf/open/floor/plasteel,/area/quartermaster/storage) -"byQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/storage) -"byR" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; dir = 8; freq = 1400; location = "QM #3"},/turf/open/floor/plasteel/bot,/area/quartermaster/storage) -"byS" = (/obj/structure/table,/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/computer/stockexchange,/turf/open/floor/plasteel,/area/quartermaster/office) -"byT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/office) -"byU" = (/obj/machinery/mineral/ore_redemption{input_dir = 8; output_dir = 4},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/office) -"byV" = (/turf/open/floor/plasteel/loadingarea{dir = 4},/area/quartermaster/office) -"byW" = (/obj/structure/chair{dir = 8},/obj/machinery/light,/turf/open/floor/plasteel,/area/quartermaster/office) -"byX" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/bot,/area/hallway/primary/central) -"byY" = (/obj/machinery/keycard_auth{pixel_x = -24; pixel_y = 0},/obj/machinery/computer/cargo,/turf/open/floor/plasteel/blue/side{dir = 8},/area/crew_quarters/heads) -"byZ" = (/obj/structure/chair/office/dark{dir = 4},/obj/effect/landmark/start{name = "Head of Personnel"},/turf/open/floor/plasteel,/area/crew_quarters/heads) -"bza" = (/obj/structure/table,/obj/item/weapon/folder/blue,/obj/item/weapon/stamp/hop,/turf/open/floor/plasteel,/area/crew_quarters/heads) -"bzb" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel,/area/crew_quarters/heads) -"bzc" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/closed/wall,/area/engine/gravity_generator) -"bzd" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/warning{dir = 9},/area/engine/gravity_generator) -"bze" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/camera{c_tag = "Gravity Generator Foyer"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/warning{dir = 5},/area/engine/gravity_generator) -"bzf" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/closed/wall,/area/engine/gravity_generator) -"bzg" = (/turf/open/floor/plasteel/warning{dir = 10},/area/teleporter) -"bzh" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/warning,/area/teleporter) -"bzi" = (/turf/open/floor/plasteel/warning,/area/teleporter) -"bzj" = (/turf/open/floor/plasteel/warning{dir = 6},/area/teleporter) -"bzk" = (/obj/machinery/shieldwallgen,/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/bot,/area/teleporter) -"bzl" = (/obj/machinery/shieldwallgen,/turf/open/floor/plasteel/bot,/area/teleporter) -"bzm" = (/obj/structure/closet/crate,/turf/open/floor/plasteel,/area/teleporter) -"bzn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/sign/securearea{pixel_x = -32; pixel_y = 0},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/blue/side{dir = 8},/area/hallway/primary/central) -"bzo" = (/obj/machinery/requests_console{announcementConsole = 0; department = "Medbay"; departmentType = 1; name = "Medbay RC"; pixel_x = -30; pixel_y = 0; pixel_z = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay) -"bzp" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay) -"bzq" = (/obj/machinery/vending/medical{pixel_x = -2},/turf/open/floor/plasteel/white,/area/medical/medbay) -"bzr" = (/turf/closed/wall,/area/medical/sleeper) -"bzs" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/medical/sleeper) -"bzt" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bzu" = (/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/weapon/book/manual/medical_cloning{pixel_y = 6},/turf/open/floor/plasteel/white,/area/medical/genetics) -"bzv" = (/obj/structure/closet/wardrobe/white,/turf/open/floor/plasteel/white,/area/medical/genetics) -"bzw" = (/obj/structure/closet/secure_closet/personal/patient,/turf/open/floor/plasteel/white,/area/medical/genetics) -"bzx" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/genetics) -"bzy" = (/obj/machinery/dna_scannernew,/turf/open/floor/plasteel/whiteblue/side{dir = 6},/area/medical/genetics) -"bzz" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/open/floor/plasteel,/area/medical/genetics) -"bzA" = (/obj/structure/window/reinforced,/mob/living/carbon/monkey,/turf/open/floor/plasteel,/area/medical/genetics) -"bzB" = (/obj/structure/disposalpipe/sortjunction{dir = 2; icon_state = "pipe-j2s"; sortType = 12},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/genetics) -"bzC" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/sign/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) -"bzD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/medical/research{name = "Research Division"}) -"bzE" = (/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},/turf/open/floor/plasteel/bot,/area/medical/research{name = "Research Division"}) -"bzF" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whiteblue/side{dir = 8},/area/medical/research{name = "Research Division"}) -"bzG" = (/obj/machinery/camera{c_tag = "Research Division West"; dir = 2; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) -"bzH" = (/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/medical/research{name = "Research Division"}) -"bzI" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) -"bzJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white/side{dir = 10},/area/medical/research{name = "Research Division"}) -"bzK" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) -"bzL" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white/side{dir = 6},/area/medical/research{name = "Research Division"}) -"bzM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white/side{dir = 5},/area/medical/research{name = "Research Division"}) -"bzN" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/hologram/holopad,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) -"bzO" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white/side{dir = 9},/area/medical/research{name = "Research Division"}) -"bzP" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/hor) -"bzQ" = (/turf/closed/wall,/area/crew_quarters/hor) -"bzR" = (/obj/machinery/light_switch{pixel_x = -20; pixel_y = 0},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/white,/area/toxins/explab) -"bzS" = (/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = 0; pixel_y = -30},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel/white,/area/toxins/explab) -"bzT" = (/turf/open/floor/plasteel/white,/area/toxins/explab) -"bzU" = (/obj/structure/chair/office/light,/obj/effect/landmark/start{name = "Scientist"},/turf/open/floor/plasteel/white,/area/toxins/explab) -"bzV" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -32},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/toxins/explab) -"bzW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/asmaint2) -"bzX" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/asmaint2) -"bzY" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/asmaint2) -"bzZ" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/asmaint2) -"bAa" = (/turf/open/floor/plating,/area/maintenance/asmaint2) -"bAb" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plasteel/shuttle/white,/area/shuttle/abandoned) -"bAc" = (/obj/machinery/door/window,/turf/open/floor/plasteel/shuttle/purple,/area/shuttle/abandoned) -"bAd" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/shuttle/purple,/area/shuttle/abandoned) -"bAe" = (/obj/structure/table,/turf/open/floor/plasteel/shuttle/white,/area/shuttle/abandoned) -"bAf" = (/obj/structure/table,/obj/item/weapon/gun/energy/laser/retro,/turf/open/floor/plasteel/shuttle/white,/area/shuttle/abandoned) -"bAg" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/obj/machinery/door/poddoor{id = "QMLoaddoor"; name = "supply dock loading door"},/turf/open/floor/plating,/area/shuttle/supply) -"bAh" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/obj/machinery/door/poddoor{id = "QMLoaddoor"; name = "supply dock loading door"},/turf/open/floor/plating,/area/quartermaster/storage) -"bAi" = (/obj/structure/plasticflaps,/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/turf/open/floor/plating,/area/quartermaster/storage) -"bAj" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/turf/open/floor/plating/warnplate{dir = 1},/area/quartermaster/storage) -"bAk" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/obj/machinery/light,/obj/machinery/status_display{density = 0; pixel_y = -30; supply_display = 1},/turf/open/floor/plating/warnplate{dir = 1},/area/quartermaster/storage) -"bAl" = (/obj/machinery/light,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -35},/turf/open/floor/plasteel/loadingarea{dir = 8},/area/quartermaster/storage) -"bAm" = (/obj/machinery/camera{c_tag = "Cargo Bay South"; dir = 1},/turf/open/floor/plasteel,/area/quartermaster/storage) -"bAn" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; dir = 8; freq = 1400; location = "QM #4"},/turf/open/floor/plasteel/bot,/area/quartermaster/storage) -"bAo" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 6; pixel_y = -5},/turf/open/floor/plasteel,/area/quartermaster/office) -"bAp" = (/obj/structure/closet/crate,/turf/open/floor/plasteel,/area/quartermaster/office) -"bAq" = (/obj/machinery/light,/obj/machinery/power/apc{dir = 2; name = "Cargo Office APC"; pixel_x = 1; pixel_y = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/brown/corner{dir = 2},/area/quartermaster/office) -"bAr" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/office) -"bAs" = (/turf/open/floor/plasteel/brown/corner{dir = 8},/area/quartermaster/office) -"bAt" = (/turf/closed/wall,/area/security/checkpoint/supply) -"bAu" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/checkpoint/supply) -"bAv" = (/obj/machinery/camera{c_tag = "Cargo Bay Entrance"; dir = 4; network = list("SS13")},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/brown/corner{dir = 8},/area/hallway/primary/central) -"bAw" = (/obj/machinery/door/poddoor/shutters/preopen{id = "hopqueue"; name = "HoP Queue Shutters"},/turf/open/floor/plasteel/loadingarea{dir = 4},/area/hallway/primary/central) -"bAx" = (/obj/item/device/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) -"bAy" = (/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) -"bAz" = (/obj/structure/table,/obj/item/weapon/book/manual/wiki/security_space_law,/turf/open/floor/plasteel,/area/crew_quarters/heads) -"bAA" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel,/area/crew_quarters/heads) -"bAB" = (/obj/structure/cable{d1 = 1; d2 = 2; 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) -"bAC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/engine/gravity_generator) -"bAD" = (/obj/structure/closet/radiation,/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel/warning{dir = 8},/area/engine/gravity_generator) -"bAE" = (/obj/structure/closet/radiation,/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel/warning{dir = 4},/area/engine/gravity_generator) -"bAF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/engine/gravity_generator) -"bAG" = (/obj/machinery/computer/teleporter,/turf/open/floor/plating,/area/teleporter) -"bAH" = (/obj/machinery/teleport/station,/turf/open/floor/plating,/area/teleporter) -"bAI" = (/obj/machinery/teleport/hub,/turf/open/floor/plating,/area/teleporter) -"bAJ" = (/obj/structure/rack,/obj/item/weapon/tank/internals/oxygen,/obj/item/clothing/mask/gas,/turf/open/floor/plating,/area/teleporter) -"bAK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/hallway/primary/central) -"bAL" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=4"; dir = 4; freq = 1400; location = "Medbay"},/obj/structure/plasticflaps{opacity = 1},/turf/open/floor/plasteel/bot,/area/medical/medbay) -"bAM" = (/obj/machinery/door/window/eastleft{name = "Medical Delivery"; req_access_txt = "5"},/turf/open/floor/plasteel/delivery,/area/medical/medbay) -"bAN" = (/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay) -"bAO" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plasteel/white,/area/medical/medbay) -"bAP" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plasteel/white,/area/medical/medbay) -"bAQ" = (/obj/machinery/computer/med_data,/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bAR" = (/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bAS" = (/turf/open/floor/plasteel/white/side{dir = 8},/area/medical/sleeper) -"bAT" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 8},/turf/open/floor/plasteel,/area/medical/sleeper) -"bAU" = (/obj/structure/sign/nosmoking_2,/turf/closed/wall,/area/medical/sleeper) -"bAV" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = 7; pixel_y = 1},/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = 7; pixel_y = 1},/turf/open/floor/plasteel,/area/medical/sleeper) -"bAW" = (/obj/machinery/atmospherics/components/unary/cryo_cell,/turf/open/floor/plasteel,/area/medical/sleeper) -"bAX" = (/obj/structure/table,/obj/machinery/cell_charger,/turf/open/floor/plasteel,/area/medical/sleeper) -"bAY" = (/obj/structure/table/glass,/obj/machinery/camera{c_tag = "Medbay Cryogenics"; dir = 2; network = list("SS13"); pixel_x = 0; pixel_y = 0},/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = 0; pixel_y = 0},/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = 0; pixel_y = 0},/turf/open/floor/plasteel,/area/medical/sleeper) -"bAZ" = (/obj/machinery/camera{c_tag = "Genetics Cloning"; dir = 4; network = list("SS13")},/obj/structure/table,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/item/weapon/storage/box/rxglasses{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/bodybags,/obj/item/weapon/pen,/turf/open/floor/plasteel/white,/area/medical/genetics) -"bBa" = (/obj/machinery/hologram/holopad,/turf/open/floor/plasteel/white,/area/medical/genetics) -"bBb" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/white,/area/medical/genetics) -"bBc" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/medical/genetics) -"bBd" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/genetics) -"bBe" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/genetics) -"bBf" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/genetics) -"bBg" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/whitepurple/side{dir = 4},/area/medical/genetics) -"bBh" = (/obj/machinery/door/airlock/research{name = "Genetics Research"; req_access_txt = "9"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/genetics) -"bBi" = (/obj/structure/disposalpipe/sortjunction{sortType = 23},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/genetics) -"bBj" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/genetics) -"bBk" = (/obj/machinery/door/airlock/research{name = "Genetics Research Access"; req_access_txt = "47"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) -"bBl" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/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},/turf/open/floor/plasteel/bot,/area/medical/research{name = "Research Division"}) -"bBm" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/whiteblue/side{dir = 8},/area/medical/research{name = "Research Division"}) -"bBn" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) -"bBo" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) -"bBp" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) -"bBq" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) -"bBr" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) -"bBs" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white/side{dir = 5},/area/medical/research{name = "Research Division"}) -"bBt" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) -"bBu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/white/side{dir = 9},/area/medical/research{name = "Research Division"}) -"bBv" = (/obj/structure/filingcabinet/chestdrawer,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/hor) -"bBw" = (/obj/machinery/computer/security/telescreen{desc = "Used for watching the RD's goons and the AI's satellite from the safety of his office."; name = "Research Monitor"; network = list("RD","MiniSat"); pixel_x = 0; pixel_y = 2},/obj/structure/table,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/hor) -"bBx" = (/obj/machinery/computer/aifixer,/obj/machinery/requests_console{announcementConsole = 1; department = "Research Director's Desk"; departmentType = 5; name = "Research Director RC"; pixel_x = -2; pixel_y = 30},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/hor) -"bBy" = (/obj/structure/rack,/obj/item/weapon/circuitboard/aicore{pixel_x = -2; pixel_y = 4},/turf/open/floor/plasteel/warnwhite{dir = 9},/area/crew_quarters/hor) -"bBz" = (/obj/machinery/ai_status_display{pixel_y = 32},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/warnwhite{dir = 1},/area/crew_quarters/hor) -"bBA" = (/turf/open/floor/plasteel/warnwhite{dir = 5},/area/crew_quarters/hor) -"bBB" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 1},/turf/open/floor/plasteel/warning{dir = 1},/area/toxins/explab) -"bBC" = (/turf/closed/wall,/area/toxins/explab) -"bBD" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/book/manual/experimentor,/turf/open/floor/plasteel/white/corner{dir = 4},/area/toxins/explab) -"bBE" = (/obj/machinery/computer/rdconsole/experiment,/turf/open/floor/plasteel/white/side{dir = 1},/area/toxins/explab) -"bBF" = (/obj/structure/closet/radiation,/turf/open/floor/plasteel/white/corner{dir = 1},/area/toxins/explab) -"bBG" = (/obj/machinery/button/door{id = "telelab"; name = "Test Chamber Blast Doors"; pixel_x = 25; pixel_y = 0},/turf/open/floor/plasteel/warnwhite{dir = 2},/area/toxins/explab) -"bBH" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 6},/turf/open/floor/plating,/area/maintenance/asmaint2) -"bBI" = (/obj/machinery/atmospherics/components/binary/valve{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint2) -"bBJ" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 8},/obj/machinery/light/small{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint2) -"bBK" = (/obj/structure/lattice,/obj/effect/landmark{name = "carpspawn"},/turf/open/space,/area/space) -"bBL" = (/obj/machinery/door/airlock/glass,/turf/open/floor/plasteel/shuttle/white,/area/shuttle/abandoned) -"bBM" = (/obj/effect/decal/remains/human,/turf/open/floor/plasteel/shuttle/white,/area/shuttle/abandoned) -"bBN" = (/obj/machinery/computer/shuttle/white_ship,/turf/open/floor/plasteel/shuttle/white,/area/shuttle/abandoned) -"bBO" = (/turf/closed/wall,/area/quartermaster/qm) -"bBP" = (/obj/machinery/door/airlock/glass_mining{name = "Quartermaster"; req_access_txt = "41"},/turf/open/floor/plasteel,/area/quartermaster/qm) -"bBQ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/quartermaster/qm) -"bBR" = (/turf/closed/wall,/area/quartermaster/miningdock) -"bBS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/quartermaster/miningdock) -"bBT" = (/obj/structure/cable{d1 = 1; d2 = 2; 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) -"bBU" = (/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/structure/table,/turf/open/floor/plasteel/red/side{dir = 9},/area/security/checkpoint/supply) -"bBV" = (/obj/item/weapon/book/manual/wiki/security_space_law,/obj/structure/table,/turf/open/floor/plasteel/red/side{dir = 1},/area/security/checkpoint/supply) -"bBW" = (/obj/machinery/recharger{pixel_y = 4},/obj/structure/table,/turf/open/floor/plasteel/red/side{dir = 1},/area/security/checkpoint/supply) -"bBX" = (/obj/machinery/computer/secure_data,/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/checkpoint/supply) -"bBY" = (/obj/machinery/door/airlock/command{name = "Head of Personnel"; req_access = null; req_access_txt = "57"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/crew_quarters/heads) -"bBZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/closed/wall,/area/engine/gravity_generator) -"bCa" = (/obj/machinery/ai_status_display,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/closed/wall,/area/engine/gravity_generator) -"bCb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/closed/wall,/area/engine/gravity_generator) -"bCc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/closed/wall,/area/engine/gravity_generator) -"bCd" = (/obj/machinery/camera{c_tag = "Central Hallway South-East"; dir = 8},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bCe" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/medical/sleeper) -"bCf" = (/obj/machinery/door/airlock/glass_medical{id_tag = ""; name = "Surgery Observation"; req_access_txt = "0"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/medical/sleeper) -"bCg" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/structure/mirror{pixel_x = -28},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bCh" = (/obj/machinery/hologram/holopad,/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bCi" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/delivery,/area/medical/sleeper) -"bCj" = (/turf/open/floor/plasteel,/area/medical/sleeper) -"bCk" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 5},/turf/open/floor/plasteel,/area/medical/sleeper) -"bCl" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/open/floor/plasteel,/area/medical/sleeper) -"bCm" = (/obj/machinery/atmospherics/pipe/manifold/general/visible,/turf/open/floor/plasteel,/area/medical/sleeper) -"bCn" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 10; pixel_x = 0; initialize_directions = 10},/turf/open/floor/plasteel,/area/medical/sleeper) -"bCo" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/white,/area/medical/genetics) -"bCp" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/genetics) -"bCq" = (/obj/structure/chair,/obj/effect/landmark/start{name = "Geneticist"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/genetics) -"bCr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/genetics) -"bCs" = (/obj/machinery/door/airlock/glass_research{name = "Genetics Research"; req_access_txt = "5; 9"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/genetics) -"bCt" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/genetics) -"bCu" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/genetics) -"bCv" = (/obj/machinery/camera{c_tag = "Genetics Research"; dir = 1; network = list("SS13","RD"); pixel_x = 0},/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) -"bCw" = (/obj/structure/sign/securearea,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/medical/genetics) -"bCx" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; 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) -"bCy" = (/obj/machinery/camera{c_tag = "Genetics Access"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = -22},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/genetics) -"bCz" = (/turf/closed/wall/r_wall,/area/toxins/server) -"bCA" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{name = "Server Room"; req_access = null; req_access_txt = "30"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/toxins/server) -"bCB" = (/turf/closed/wall,/area/security/checkpoint/science) -"bCC" = (/obj/machinery/door/airlock/glass_security{name = "Security Office"; req_access_txt = "63"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/security/checkpoint/science) -"bCD" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/security/checkpoint/science) -"bCE" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/checkpoint/science) -"bCF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) -"bCG" = (/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/hor) -"bCH" = (/obj/structure/chair/office/light{dir = 8},/obj/effect/landmark/start{name = "Research Director"},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/hor) -"bCI" = (/obj/machinery/computer/robotics,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/hor) -"bCJ" = (/obj/structure/rack,/obj/item/device/aicard,/turf/open/floor/plasteel/warnwhite{dir = 8},/area/crew_quarters/hor) -"bCK" = (/obj/machinery/hologram/holopad,/turf/open/floor/plasteel/white,/area/crew_quarters/hor) -"bCL" = (/obj/structure/displaycase/labcage,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/warnwhite{dir = 4},/area/crew_quarters/hor) -"bCM" = (/turf/closed/wall/r_wall,/area/crew_quarters/hor) -"bCN" = (/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "telelab"; name = "test chamber blast door"},/obj/structure/window/reinforced/fulltile,/obj/machinery/door/firedoor/heavy,/turf/open/floor/engine,/area/toxins/explab) -"bCO" = (/obj/machinery/door/poddoor/preopen{id = "telelab"; name = "test chamber blast door"},/obj/machinery/door/firedoor/heavy,/turf/open/floor/engine,/area/toxins/explab) -"bCP" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 8},/turf/open/floor/plating,/area/maintenance/asmaint2) -"bCQ" = (/obj/machinery/atmospherics/components/unary/thermomachine/freezer{dir = 8},/turf/open/floor/plating,/area/maintenance/asmaint2) -"bCR" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/plasteel/shuttle/white,/area/shuttle/abandoned) -"bCS" = (/obj/structure/table,/obj/item/weapon/tank/internals/oxygen,/turf/open/floor/plasteel/shuttle/white,/area/shuttle/abandoned) -"bCT" = (/turf/closed/wall/shuttle{icon_state = "swall7"; dir = 2},/area/shuttle/supply) -"bCU" = (/turf/open/floor/plasteel/shuttle,/turf/closed/wall/shuttle/interior{icon_state = "swall_f10"},/area/shuttle/supply) -"bCV" = (/turf/open/floor/plasteel/shuttle,/turf/closed/wall/shuttle/interior{icon_state = "swall_f6"},/area/shuttle/supply) -"bCW" = (/turf/closed/wall/shuttle{icon_state = "swall11"; dir = 2},/area/shuttle/supply) -"bCX" = (/obj/structure/table,/obj/item/weapon/cartridge/quartermaster{pixel_x = 6; pixel_y = 5},/obj/item/weapon/cartridge/quartermaster,/obj/item/weapon/cartridge/quartermaster{pixel_x = -4; pixel_y = 7},/obj/machinery/requests_console{department = "Cargo Bay"; departmentType = 2; pixel_x = -30; pixel_y = 0},/obj/item/weapon/coin/silver,/turf/open/floor/plasteel/brown{dir = 9},/area/quartermaster/qm) -"bCY" = (/obj/machinery/power/apc{dir = 1; name = "Quartermaster APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plasteel/brown{dir = 1},/area/quartermaster/qm) -"bCZ" = (/turf/open/floor/plasteel/brown{dir = 1},/area/quartermaster/qm) -"bDa" = (/obj/machinery/hologram/holopad,/turf/open/floor/plasteel/brown{dir = 1},/area/quartermaster/qm) -"bDb" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/turf/open/floor/plasteel/brown{dir = 1},/area/quartermaster/qm) -"bDc" = (/obj/structure/closet/secure_closet/quartermaster,/obj/machinery/airalarm{pixel_y = 23},/turf/open/floor/plasteel/brown{dir = 5},/area/quartermaster/qm) -"bDd" = (/obj/machinery/power/apc{dir = 1; name = "Mining Dock APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bDe" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bDf" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bDg" = (/obj/machinery/light{dir = 1},/obj/machinery/light_switch{pixel_y = 28},/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bDh" = (/turf/open/floor/plasteel/red/side{dir = 8},/area/security/checkpoint/supply) -"bDi" = (/obj/structure/chair/office/dark{dir = 1},/obj/effect/landmark/start/depsec/supply,/turf/open/floor/plasteel,/area/security/checkpoint/supply) -"bDj" = (/turf/open/floor/plasteel,/area/security/checkpoint/supply) -"bDk" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/obj/machinery/computer/security/mining,/turf/open/floor/plasteel/red/side{dir = 4},/area/security/checkpoint/supply) -"bDl" = (/obj/machinery/newscaster{pixel_y = 32},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bDm" = (/obj/structure/sign/securearea{pixel_y = 32},/turf/open/floor/plasteel/blue/side{dir = 1},/area/hallway/primary/central) -"bDn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plasteel/blue/side{dir = 1},/area/hallway/primary/central) -"bDo" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/blue/side{dir = 1},/area/hallway/primary/central) -"bDp" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/warning/corner{dir = 8},/area/hallway/primary/central) -"bDq" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/primary/central) -"bDr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/primary/central) -"bDs" = (/obj/structure/sign/securearea{pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/primary/central) -"bDt" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/warning/corner{dir = 4},/area/hallway/primary/central) -"bDu" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bDv" = (/obj/structure/chair,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/medical/sleeper) -"bDw" = (/obj/structure/chair,/obj/machinery/camera{c_tag = "Surgery Observation"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/medical/sleeper) -"bDx" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/medical/sleeper) -"bDy" = (/obj/structure/chair,/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/turf/open/floor/plasteel/black,/area/medical/sleeper) -"bDz" = (/obj/structure/chair,/turf/open/floor/plasteel/black,/area/medical/sleeper) -"bDA" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/shower{dir = 4},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bDB" = (/obj/effect/landmark/start{name = "Medical Doctor"},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bDC" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 6},/turf/open/floor/plasteel,/area/medical/sleeper) -"bDD" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 1},/turf/open/floor/plasteel,/area/medical/sleeper) -"bDE" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel,/area/medical/sleeper) -"bDF" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/white,/area/medical/medbay) -"bDG" = (/obj/machinery/dna_scannernew,/turf/open/floor/plasteel/whiteblue/side{dir = 10},/area/medical/genetics) -"bDH" = (/obj/machinery/computer/cloning,/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/open/floor/plasteel/whiteblue/side{dir = 2},/area/medical/genetics) -"bDI" = (/obj/machinery/clonepod,/turf/open/floor/plasteel/whiteblue/side{dir = 6},/area/medical/genetics) -"bDJ" = (/obj/structure/sign/securearea,/turf/closed/wall/r_wall,/area/medical/genetics) -"bDK" = (/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) -"bDL" = (/obj/structure/closet/secure_closet/medical1,/turf/open/floor/plasteel/white,/area/medical/genetics) -"bDM" = (/obj/structure/closet/secure_closet/personal/patient,/obj/machinery/light,/turf/open/floor/plasteel/white,/area/medical/genetics) -"bDN" = (/obj/structure/closet/wardrobe/genetics_white,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/open/floor/plasteel/white,/area/medical/genetics) -"bDO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/maintenance/asmaint) -"bDP" = (/obj/machinery/r_n_d/server/robotics,/turf/open/floor/bluegrid{name = "Server Base"; initial_gas_mix = "n2=500;TEMP=80"},/area/toxins/server) -"bDQ" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; external_pressure_bound = 140; on = 1; pressure_checks = 0},/turf/open/floor/bluegrid{name = "Server Base"; initial_gas_mix = "n2=500;TEMP=80"},/area/toxins/server) -"bDR" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/sign/securearea{desc = "A warning sign which reads 'SERVER ROOM'."; name = "SERVER ROOM"; pixel_y = 32},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/toxins/server) -"bDS" = (/obj/machinery/atmospherics/pipe/simple{dir = 10},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/black,/area/toxins/server) -"bDT" = (/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"; pixel_x = 0; pixel_y = 25},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel/black,/area/toxins/server) -"bDU" = (/obj/machinery/atmospherics/components/unary/thermomachine/freezer{target_temperature = 80; dir = 2; on = 1},/obj/effect/decal/cleanable/cobweb2,/turf/open/floor/plasteel/black,/area/toxins/server) -"bDV" = (/obj/structure/reagent_dispensers/peppertank{pixel_x = -30; pixel_y = 0},/obj/machinery/airalarm{pixel_y = 25},/obj/structure/closet,/turf/open/floor/plasteel/red/side{dir = 9},/area/security/checkpoint/science) -"bDW" = (/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{dir = 4; on = 1},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/checkpoint/science) -"bDX" = (/obj/structure/cable{d1 = 1; d2 = 2; 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) -"bDY" = (/obj/structure/table,/obj/machinery/computer/security/telescreen{desc = "Used for watching the RD's goons from the safety of your own office."; name = "Research Monitor"; network = list("RD"); pixel_x = 0; pixel_y = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side{dir = 1},/area/security/checkpoint/science) -"bDZ" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 4},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/checkpoint/science) -"bEa" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/white/side{dir = 9},/area/medical/research{name = "Research Division"}) -"bEb" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/crew_quarters/hor) -"bEc" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/item/weapon/folder/white,/obj/item/weapon/stamp/rd{pixel_x = 3; pixel_y = -2},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/hor) -"bEd" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/hor) -"bEe" = (/obj/machinery/computer/mecha,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/hor) -"bEf" = (/obj/structure/rack,/obj/item/device/taperecorder{pixel_x = -3},/obj/item/device/paicard{pixel_x = 4},/turf/open/floor/plasteel/warnwhite{dir = 10},/area/crew_quarters/hor) -"bEg" = (/turf/open/floor/plasteel/warnwhite{dir = 2},/area/crew_quarters/hor) -"bEh" = (/turf/open/floor/plasteel/warnwhite{dir = 6},/area/crew_quarters/hor) -"bEi" = (/turf/open/floor/engine,/area/toxins/explab) -"bEj" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/general/visible,/turf/open/floor/plating,/area/maintenance/asmaint2) -"bEk" = (/turf/closed/wall/shuttle{icon_state = "swall_s5"; dir = 2},/area/shuttle/abandoned) -"bEl" = (/turf/closed/wall/shuttle{icon_state = "swall_s9"; dir = 2},/area/shuttle/abandoned) -"bEm" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/shuttle/purple,/area/shuttle/abandoned) -"bEn" = (/obj/machinery/door/window/northright,/obj/effect/decal/remains/human,/turf/open/floor/plasteel/shuttle/purple,/area/shuttle/abandoned) -"bEo" = (/turf/closed/wall/shuttle{icon_state = "swall_s5"; dir = 2},/area/shuttle/supply) -"bEp" = (/turf/closed/wall/shuttle{icon_state = "swall15"; dir = 2},/area/shuttle/supply) -"bEq" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/turf/open/floor/plating/airless,/area/shuttle/supply) -"bEr" = (/turf/closed/wall/shuttle{icon_state = "swall_s9"; dir = 2},/area/shuttle/supply) -"bEs" = (/obj/machinery/computer/cargo,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/brown{dir = 8},/area/quartermaster/qm) -"bEt" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel,/area/quartermaster/qm) -"bEu" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/quartermaster/qm) -"bEv" = (/obj/structure/chair/office/dark,/obj/effect/landmark/start{name = "Quartermaster"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/quartermaster/qm) -"bEw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel,/area/quartermaster/qm) -"bEx" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/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) -"bEy" = (/obj/machinery/door/airlock/glass_mining{name = "Quartermaster"; req_access_txt = "41"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/qm) -"bEz" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bEA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/landmark/start{name = "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) -"bEB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/sortjunction{dir = 1; icon_state = "pipe-j2s"; sortType = 3},/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bEC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bED" = (/obj/machinery/door/airlock/glass_security{name = "Security Office"; req_access_txt = "63"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/checkpoint/supply) -"bEE" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/checkpoint/supply) -"bEF" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/security/checkpoint/supply) -"bEG" = (/obj/item/weapon/screwdriver{pixel_y = 10},/obj/machinery/light{dir = 4},/obj/item/device/radio/off,/turf/open/floor/plasteel/red/side{dir = 4},/area/security/checkpoint/supply) -"bEH" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=AIW"; location = "QM"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bEI" = (/obj/machinery/door/firedoor,/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/hallway/primary/central) -"bEJ" = (/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) -"bEK" = (/obj/machinery/hologram/holopad,/turf/open/floor/plasteel,/area/hallway/primary/central) -"bEL" = (/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) -"bEM" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=HOP"; location = "CHE"},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bEN" = (/obj/structure/chair,/obj/structure/sign/nosmoking_2{pixel_x = -28},/turf/open/floor/plasteel/black,/area/medical/sleeper) -"bEO" = (/obj/structure/chair,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/medical/sleeper) -"bEP" = (/obj/machinery/hologram/holopad,/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/black,/area/medical/sleeper) -"bEQ" = (/obj/structure/chair,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/black,/area/medical/sleeper) -"bER" = (/obj/structure/closet/secure_closet/medical1,/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bES" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 8},/obj/machinery/camera{c_tag = "Medbay Treatment Center"; dir = 8; network = list("SS13")},/turf/open/floor/plasteel,/area/medical/sleeper) -"bET" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/plasteel,/area/medical/sleeper) -"bEU" = (/obj/structure/table/reinforced,/obj/item/weapon/wrench/medical,/turf/open/floor/plasteel,/area/medical/sleeper) -"bEV" = (/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) -"bEW" = (/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) -"bEX" = (/obj/machinery/atmospherics/components/unary/thermomachine/freezer{dir = 1},/turf/open/floor/plasteel,/area/medical/sleeper) -"bEY" = (/turf/open/floor/plating,/area/maintenance/asmaint) -"bEZ" = (/obj/structure/reagent_dispensers/watertank,/obj/effect/decal/cleanable/cobweb2,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) -"bFa" = (/obj/machinery/airalarm/server{dir = 4; pixel_x = -22; pixel_y = 0},/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/black{name = "Server Walkway"; initial_gas_mix = "n2=500;TEMP=80"},/area/toxins/server) -"bFb" = (/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plasteel/black{name = "Server Walkway"; initial_gas_mix = "n2=500;TEMP=80"},/area/toxins/server) -"bFc" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_command{name = "Server Room"; req_access_txt = "30"},/turf/open/floor/plasteel/black,/area/toxins/server) -"bFd" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8},/turf/open/floor/plasteel/black,/area/toxins/server) -"bFe" = (/obj/structure/chair/office/light,/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/open/floor/plasteel/black,/area/toxins/server) -"bFf" = (/obj/machinery/atmospherics/pipe/simple{dir = 9},/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/black,/area/toxins/server) -"bFg" = (/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},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/checkpoint/science) -"bFh" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/security/checkpoint/science) -"bFi" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/security/checkpoint/science) -"bFj" = (/obj/structure/chair/office/dark{dir = 4},/obj/effect/landmark/start/depsec/science,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/security/checkpoint/science) -"bFk" = (/obj/structure/table,/obj/item/weapon/book/manual/wiki/security_space_law,/turf/open/floor/plasteel/red/side{dir = 4},/area/security/checkpoint/science) -"bFl" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) -"bFm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white/side{dir = 9},/area/medical/research{name = "Research Division"}) -"bFn" = (/obj/machinery/door/airlock/glass_command{name = "Research Director"; req_access_txt = "30"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/hor) -"bFo" = (/obj/structure/cable{d1 = 2; d2 = 8; 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/hor) -"bFp" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/hor) -"bFq" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/hor) -"bFr" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/hor) -"bFs" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/hor) -"bFt" = (/obj/machinery/r_n_d/experimentor,/turf/open/floor/engine,/area/toxins/explab) -"bFu" = (/obj/effect/landmark{name = "blobstart"},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/engine,/area/toxins/explab) -"bFv" = (/obj/machinery/atmospherics/components/unary/thermomachine/heater{dir = 8},/turf/open/floor/plating,/area/maintenance/asmaint2) -"bFw" = (/obj/machinery/portable_atmospherics/scrubber,/turf/open/floor/plasteel/shuttle/white,/area/shuttle/abandoned) -"bFx" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_l"},/turf/open/floor/plating/airless,/area/shuttle/supply) -"bFy" = (/obj/structure/shuttle/engine/propulsion,/turf/open/floor/plating/airless,/area/shuttle/supply) -"bFz" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"},/turf/open/floor/plating/airless,/area/shuttle/supply) -"bFA" = (/obj/machinery/computer/security/mining,/obj/machinery/camera{c_tag = "Quartermaster's Office"; dir = 4},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -35},/obj/machinery/status_display{density = 0; pixel_x = -32; pixel_y = 0; supply_display = 1},/turf/open/floor/plasteel/brown{dir = 10},/area/quartermaster/qm) -"bFB" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/brown{dir = 2},/area/quartermaster/qm) -"bFC" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/computer/stockexchange,/turf/open/floor/plasteel/brown{dir = 2},/area/quartermaster/qm) -"bFD" = (/obj/structure/table,/obj/item/weapon/folder/yellow,/obj/item/weapon/pen{pixel_x = 4; pixel_y = 4},/obj/item/weapon/pen/red,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/brown{dir = 2},/area/quartermaster/qm) -"bFE" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/stamp/qm{pixel_x = 0; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/brown{dir = 2},/area/quartermaster/qm) -"bFF" = (/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) -"bFG" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/quartermaster/qm) -"bFH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bFI" = (/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bFJ" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; 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) -"bFK" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/security/checkpoint/supply) -"bFL" = (/obj/machinery/light_switch{pixel_y = -25},/obj/structure/closet,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/side{dir = 10},/area/security/checkpoint/supply) -"bFM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/side,/area/security/checkpoint/supply) -"bFN" = (/obj/machinery/requests_console{department = "Security"; departmentType = 5; pixel_y = -30},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/red/side,/area/security/checkpoint/supply) -"bFO" = (/obj/structure/filingcabinet,/obj/structure/reagent_dispensers/peppertank{pixel_x = 30; pixel_y = 0},/obj/machinery/newscaster{hitstaken = 1; pixel_x = 0; 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) -"bFP" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/brown/corner{dir = 8},/area/hallway/primary/central) -"bFQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bFR" = (/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bFS" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/camera{c_tag = "Central Primary Hallway South-West"; dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bFT" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bFU" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -32},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bFV" = (/obj/machinery/light,/turf/open/floor/plasteel,/area/hallway/primary/central) -"bFW" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; 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; icon_state = "direction_med"; pixel_x = -32; pixel_y = -24},/obj/structure/sign/directions/evac{dir = 4; icon_state = "direction_evac"; pixel_x = -32; pixel_y = -32},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bFX" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bFY" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bFZ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/status_display{pixel_y = -32},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bGa" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light,/turf/open/floor/plasteel,/area/hallway/primary/central) -"bGb" = (/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) -"bGc" = (/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j2s"; sortType = 22},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bGd" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bGe" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -32},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bGf" = (/obj/machinery/light,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bGg" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/junction{dir = 8; icon_state = "pipe-j2"},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bGh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bGi" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bGj" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/window/fulltile,/turf/open/floor/plating,/area/medical/sleeper) -"bGk" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/medical/sleeper) -"bGl" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/medical/sleeper) -"bGm" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Recovery Room"; req_access_txt = "0"},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bGn" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/open/floor/plasteel/white,/area/medical/medbay) -"bGo" = (/obj/structure/table,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/weapon/pen,/obj/machinery/requests_console{announcementConsole = 0; department = "Medbay"; departmentType = 1; name = "Medbay RC"; pixel_x = 0; pixel_y = 30; pixel_z = 0},/turf/open/floor/plasteel/white,/area/medical/medbay) -"bGp" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/white,/area/medical/medbay) -"bGq" = (/turf/closed/wall,/area/medical/cmo) -"bGr" = (/obj/machinery/suit_storage_unit/cmo,/turf/open/floor/plasteel/barber,/area/medical/cmo) -"bGs" = (/obj/machinery/computer/crew,/obj/machinery/requests_console{announcementConsole = 1; department = "Chief Medical Officer's Desk"; departmentType = 5; name = "Chief Medical Officer RC"; pixel_x = 0; pixel_y = 32},/turf/open/floor/plasteel/barber,/area/medical/cmo) -"bGt" = (/obj/machinery/computer/med_data,/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/turf/open/floor/plasteel/barber,/area/medical/cmo) -"bGu" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/barber,/area/medical/cmo) -"bGv" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/asmaint) -"bGw" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plating,/area/maintenance/asmaint) -"bGx" = (/obj/machinery/r_n_d/server/core,/turf/open/floor/bluegrid{name = "Server Base"; initial_gas_mix = "n2=500;TEMP=80"},/area/toxins/server) -"bGy" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; external_pressure_bound = 120; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/bluegrid{name = "Server Base"; initial_gas_mix = "n2=500;TEMP=80"},/area/toxins/server) -"bGz" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'SERVER ROOM'."; name = "SERVER ROOM"; pixel_y = -32},/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/toxins/server) -"bGA" = (/obj/machinery/atmospherics/pipe/simple{dir = 9},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/plasteel/black,/area/toxins/server) -"bGB" = (/obj/machinery/computer/rdservercontrol,/turf/open/floor/plasteel/black,/area/toxins/server) -"bGC" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/weapon/pen,/turf/open/floor/plasteel/black,/area/toxins/server) -"bGD" = (/obj/item/device/radio/intercom{pixel_x = -25},/obj/structure/filingcabinet,/turf/open/floor/plasteel/red/side{dir = 10},/area/security/checkpoint/science) -"bGE" = (/obj/machinery/power/apc{dir = 2; name = "Science Security APC"; pixel_y = -24},/obj/structure/cable,/turf/open/floor/plasteel/red/side,/area/security/checkpoint/science) -"bGF" = (/obj/item/weapon/screwdriver{pixel_y = 10},/obj/item/device/radio/off,/turf/open/floor/plasteel/red/side,/area/security/checkpoint/science) -"bGG" = (/obj/machinery/computer/secure_data,/obj/machinery/requests_console{department = "Security"; departmentType = 5; pixel_y = -30},/turf/open/floor/plasteel/red/side,/area/security/checkpoint/science) -"bGH" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/turf/open/floor/plasteel/red/side{dir = 6},/area/security/checkpoint/science) -"bGI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) -"bGJ" = (/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/white/side{dir = 9},/area/medical/research{name = "Research Division"}) -"bGK" = (/obj/machinery/power/apc{dir = 8; name = "RD Office APC"; pixel_x = -25},/obj/structure/cable,/obj/machinery/light_switch{pixel_y = -23},/obj/item/weapon/twohanded/required/kirbyplants/dead,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/hor) -"bGL" = (/obj/machinery/keycard_auth{pixel_x = 0; pixel_y = -24},/obj/machinery/light,/obj/machinery/computer/card/minor/rd,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/hor) -"bGM" = (/obj/structure/table,/obj/item/weapon/cartridge/signal/toxins,/obj/item/weapon/cartridge/signal/toxins{pixel_x = -4; pixel_y = 2},/obj/item/weapon/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/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/hor) -"bGN" = (/obj/structure/closet/secure_closet/RD,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/hor) -"bGO" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 1},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/hor) -"bGP" = (/obj/machinery/suit_storage_unit/rd,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/hor) -"bGQ" = (/obj/machinery/camera{c_tag = "Experimentor Lab Chamber"; dir = 1; network = list("SS13","RD")},/obj/machinery/light,/obj/structure/sign/nosmoking_2{pixel_y = -32},/turf/open/floor/engine,/area/toxins/explab) -"bGR" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 5},/turf/open/floor/plating,/area/maintenance/asmaint2) -"bGS" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bGT" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bGU" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/aft) -"bGV" = (/turf/closed/wall,/area/maintenance/aft) -"bGW" = (/turf/closed/wall,/area/storage/tech) -"bGX" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Central Access"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/central) -"bGY" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Central Access"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/yellow/corner{dir = 2},/area/hallway/primary/central) -"bGZ" = (/turf/closed/wall,/area/janitor) -"bHa" = (/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) -"bHb" = (/turf/closed/wall,/area/maintenance/asmaint) -"bHc" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/asmaint) -"bHd" = (/obj/machinery/vending/cigarette,/turf/open/floor/plasteel/black,/area/hallway/primary/central) -"bHe" = (/obj/structure/disposalpipe/segment,/obj/structure/table,/obj/item/weapon/surgicaldrill,/turf/open/floor/plasteel,/area/medical/sleeper) -"bHf" = (/obj/structure/table,/obj/item/weapon/hemostat,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white/side{dir = 2},/area/medical/sleeper) -"bHg" = (/obj/structure/table,/obj/item/weapon/scalpel{pixel_y = 12},/obj/item/weapon/circular_saw,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bHh" = (/obj/structure/table,/obj/item/weapon/retractor,/turf/open/floor/plasteel/white/side{dir = 2},/area/medical/sleeper) -"bHi" = (/obj/structure/table,/obj/item/weapon/cautery{pixel_x = 4},/turf/open/floor/plasteel,/area/medical/sleeper) -"bHj" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/soap/nanotrasen,/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bHk" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/whiteblue/corner{dir = 2},/area/medical/sleeper) -"bHl" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/medical/sleeper) -"bHm" = (/obj/structure/closet/l3closet,/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bHn" = (/obj/structure/closet/wardrobe/white/medical,/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bHo" = (/obj/structure/closet/secure_closet/medical3,/obj/machinery/airalarm{pixel_y = 24},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bHp" = (/obj/structure/closet/secure_closet/medical3,/obj/machinery/camera{c_tag = "Medbay Storage"; dir = 2; network = list("SS13")},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bHq" = (/obj/structure/table,/obj/item/weapon/storage/box/bodybags{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/rxglasses,/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bHr" = (/obj/structure/disposalpipe/trunk,/obj/machinery/disposal/bin,/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bHs" = (/turf/open/floor/plasteel/whiteblue/corner{dir = 8},/area/medical/medbay) -"bHt" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/medical/cmo) -"bHu" = (/turf/open/floor/plasteel/barber,/area/medical/cmo) -"bHv" = (/obj/structure/chair/office/light,/obj/effect/landmark/start{name = "Chief Medical Officer"},/turf/open/floor/plasteel/barber,/area/medical/cmo) -"bHw" = (/obj/machinery/keycard_auth{pixel_x = 24; pixel_y = 0},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/barber,/area/medical/cmo) -"bHx" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) -"bHy" = (/turf/closed/wall/r_wall,/area/toxins/xenobiology) -"bHz" = (/turf/closed/wall,/area/toxins/storage) -"bHA" = (/obj/machinery/door/firedoor/heavy,/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/open/floor/plasteel/white/side{dir = 5},/area/medical/research{name = "Research Division"}) -"bHB" = (/obj/machinery/door/firedoor/heavy,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) -"bHC" = (/obj/machinery/door/firedoor/heavy,/turf/open/floor/plasteel/white/side{dir = 9},/area/medical/research{name = "Research Division"}) -"bHD" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/asmaint2) -"bHE" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance{lootcount = 3; name = "3maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/asmaint2) -"bHF" = (/turf/closed/wall/shuttle{icon_state = "swall_f18"},/area/shuttle/abandoned) -"bHG" = (/obj/item/device/multitool,/turf/open/floor/plasteel/shuttle/white,/area/shuttle/abandoned) -"bHH" = (/obj/structure/chair,/turf/open/floor/plasteel/shuttle/white,/area/shuttle/abandoned) -"bHI" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 32},/turf/open/space,/area/space) -"bHJ" = (/obj/structure/table,/obj/item/weapon/folder/yellow,/obj/item/weapon/pen,/obj/machinery/requests_console{department = "Mining"; departmentType = 0; pixel_x = -30; pixel_y = 0},/obj/machinery/light{dir = 8},/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bHK" = (/obj/structure/chair/office/dark{dir = 8},/obj/effect/landmark/start{name = "Shaft Miner"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bHL" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bHM" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bHN" = (/obj/machinery/door/airlock/maintenance{name = "Mining Maintenance"; req_access_txt = "48"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/quartermaster/miningdock) -"bHO" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"bHP" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/power/apc{dir = 1; name = "Cargo Security APC"; pixel_x = 1; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/security/checkpoint/supply) -"bHQ" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"bHR" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"bHS" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/aft) -"bHT" = (/obj/structure/table,/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/item/device/assembly/flash/handheld,/obj/item/device/assembly/flash/handheld,/obj/machinery/ai_status_display{pixel_x = -32; pixel_y = 0},/turf/open/floor/plating,/area/storage/tech) -"bHU" = (/obj/structure/table,/obj/item/weapon/electronics/apc,/obj/item/weapon/electronics/airlock,/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/storage/tech) -"bHV" = (/obj/structure/table,/obj/item/weapon/screwdriver{pixel_y = 16},/obj/item/weapon/wirecutters,/turf/open/floor/plating,/area/storage/tech) -"bHW" = (/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/turf/open/floor/plating,/area/storage/tech) -"bHX" = (/obj/machinery/camera{c_tag = "Tech Storage"; dir = 2},/obj/machinery/power/apc{dir = 1; name = "Tech Storage APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plating,/area/storage/tech) -"bHY" = (/obj/structure/table,/obj/item/device/analyzer,/obj/item/device/healthanalyzer,/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/storage/tech) -"bHZ" = (/obj/structure/table,/obj/item/device/plant_analyzer,/obj/item/weapon/stock_parts/cell/high/plus,/turf/open/floor/plating,/area/storage/tech) -"bIa" = (/turf/open/floor/plating,/area/storage/tech) -"bIb" = (/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) -"bIc" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/hallway/primary/aft) -"bId" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/yellow/corner{dir = 2},/area/hallway/primary/aft) -"bIe" = (/obj/structure/closet/jcloset,/turf/open/floor/plasteel,/area/janitor) -"bIf" = (/obj/structure/closet/l3closet/janitor,/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/turf/open/floor/plasteel,/area/janitor) -"bIg" = (/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/camera{c_tag = "Custodial Closet"},/obj/vehicle/janicart,/turf/open/floor/plasteel,/area/janitor) -"bIh" = (/obj/item/weapon/storage/box/lights/mixed,/obj/item/weapon/storage/box/lights/mixed,/turf/open/floor/plasteel,/area/janitor) -"bIi" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/janitor) -"bIj" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/janitor) -"bIk" = (/turf/open/floor/plasteel,/area/janitor) -"bIl" = (/obj/machinery/door/window/westleft{name = "Janitoral Delivery"; req_access_txt = "26"},/turf/open/floor/plasteel/delivery,/area/janitor) -"bIm" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; dir = 1; freq = 1400; location = "Janitor"},/obj/structure/plasticflaps{opacity = 1},/turf/open/floor/plasteel/bot,/area/janitor) -"bIn" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating,/area/maintenance/asmaint) -"bIo" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating,/area/maintenance/asmaint) -"bIp" = (/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) -"bIq" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bIr" = (/obj/effect/landmark/start{name = "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) -"bIs" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bIt" = (/obj/structure/table,/obj/item/weapon/surgical_drapes,/obj/item/weapon/razor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white/side{dir = 8},/area/medical/sleeper) -"bIu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/medical/sleeper) -"bIv" = (/obj/structure/table,/obj/structure/bedsheetbin{pixel_x = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whiteblue/corner{dir = 8},/area/medical/sleeper) -"bIw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bIx" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/whiteblue/side{dir = 4},/area/medical/sleeper) -"bIy" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Medbay Storage"; req_access_txt = "45"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bIz" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bIA" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bIB" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Medbay Storage"; req_access_txt = "45"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bIC" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/whiteblue/side{dir = 8},/area/medical/medbay) -"bID" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/white,/area/medical/medbay) -"bIE" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay) -"bIF" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay) -"bIG" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/white,/area/medical/medbay) -"bIH" = (/obj/structure/table/glass,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/turf/open/floor/plasteel/barber,/area/medical/cmo) -"bII" = (/obj/structure/table/glass,/obj/item/weapon/folder/white,/obj/item/weapon/stamp/cmo,/obj/item/clothing/glasses/hud/health,/turf/open/floor/plasteel/barber,/area/medical/cmo) -"bIJ" = (/obj/structure/table/glass,/obj/item/weapon/pen,/obj/item/clothing/tie/stethoscope,/mob/living/simple_animal/pet/cat/Runtime,/turf/open/floor/plasteel/barber,/area/medical/cmo) -"bIK" = (/obj/structure/disposalpipe/segment,/obj/item/device/radio/intercom{pixel_x = 25},/obj/machinery/camera{c_tag = "Chief Medical Office"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = -22},/turf/open/floor/plasteel/barber,/area/medical/cmo) -"bIL" = (/turf/open/floor/engine,/area/toxins/xenobiology) -"bIM" = (/obj/machinery/camera{c_tag = "Xenobiology Test Chamber"; dir = 2; network = list("Xeno","RD"); pixel_x = 0},/obj/machinery/light{dir = 1},/turf/open/floor/engine,/area/toxins/xenobiology) -"bIN" = (/obj/machinery/portable_atmospherics/canister/toxins,/turf/open/floor/plasteel/delivery{name = "floor"},/area/toxins/storage) -"bIO" = (/obj/machinery/portable_atmospherics/canister/toxins,/obj/structure/sign/nosmoking_2{pixel_x = 0; pixel_y = 32},/turf/open/floor/plasteel/delivery{name = "floor"},/area/toxins/storage) -"bIP" = (/obj/machinery/power/apc{dir = 8; name = "Misc Research APC"; pixel_x = -25},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel/white/side{dir = 5},/area/medical/research{name = "Research Division"}) -"bIQ" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) -"bIR" = (/turf/open/floor/plasteel/white/side{dir = 9},/area/medical/research{name = "Research Division"}) -"bIS" = (/obj/machinery/vending/coffee,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) -"bIT" = (/turf/closed/wall,/area/toxins/mixing) -"bIU" = (/obj/structure/closet/bombcloset,/obj/machinery/light_switch{pixel_x = 0; pixel_y = 28},/turf/open/floor/plasteel/warnwhite{dir = 2},/area/toxins/mixing) -"bIV" = (/obj/structure/closet/bombcloset,/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/warnwhite{dir = 2},/area/toxins/mixing) -"bIW" = (/obj/machinery/portable_atmospherics/canister,/obj/structure/window/reinforced{dir = 8},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/camera{c_tag = "Toxins Lab West"; dir = 2; network = list("SS13","RD"); pixel_y = 0},/turf/open/floor/plasteel/warnwhite{dir = 2},/area/toxins/mixing) -"bIX" = (/obj/machinery/portable_atmospherics/canister,/obj/item/device/radio/intercom{pixel_y = 25},/turf/open/floor/plasteel/warnwhite{dir = 2},/area/toxins/mixing) -"bIY" = (/obj/machinery/portable_atmospherics/scrubber,/obj/machinery/airalarm{frequency = 1439; locked = 0; pixel_y = 23},/obj/item/weapon/storage/firstaid/toxin,/turf/open/floor/plasteel/warnwhite{dir = 2},/area/toxins/mixing) -"bIZ" = (/obj/machinery/portable_atmospherics/pump,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/warnwhite{dir = 2},/area/toxins/mixing) -"bJa" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible,/turf/open/floor/plasteel/warnwhite{dir = 9},/area/toxins/mixing) -"bJb" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible,/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/warnwhite{dir = 1},/area/toxins/mixing) -"bJc" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible,/turf/open/floor/plasteel/warnwhite{dir = 5},/area/toxins/mixing) -"bJd" = (/turf/closed/wall/r_wall,/area/toxins/mixing) -"bJe" = (/obj/structure/closet/crate,/obj/effect/spawner/lootdrop/maintenance{lootcount = 4; name = "4maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/asmaint2) -"bJf" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/asmaint2) -"bJg" = (/obj/structure/cable{d1 = 4; d2 = 8; 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/asmaint2) -"bJh" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/asmaint2) -"bJi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/toxins/mixing) -"bJj" = (/turf/closed/wall/shuttle{icon_state = "swall12"; dir = 2},/area/shuttle/labor) -"bJk" = (/obj/machinery/computer/security/mining,/obj/machinery/camera{c_tag = "Mining Dock"; dir = 4; network = list("SS13")},/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bJl" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bJm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bJn" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/closet/wardrobe/miner,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bJo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/quartermaster/miningdock) -"bJp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"bJq" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"bJr" = (/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j1s"; sortType = 15},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"bJs" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; 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/aft) -"bJt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/closed/wall,/area/maintenance/aft) -"bJu" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/storage/tech) -"bJv" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/storage/tech) -"bJw" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/storage/tech) -"bJx" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/storage/tech) -"bJy" = (/obj/structure/table,/obj/item/device/aicard,/obj/item/weapon/aiModule/reset,/turf/open/floor/plating,/area/storage/tech) -"bJz" = (/obj/structure/table,/obj/item/stack/cable_coil{pixel_x = -3; pixel_y = 3},/obj/item/stack/cable_coil,/obj/item/weapon/stock_parts/cell/high/plus,/turf/open/floor/plating,/area/storage/tech) -"bJA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/storage/tech) -"bJB" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/aft) -"bJC" = (/turf/open/floor/plasteel,/area/hallway/primary/aft) -"bJD" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/yellow/corner{dir = 2},/area/hallway/primary/aft) -"bJE" = (/obj/structure/chair/stool,/obj/effect/landmark/start{name = "Janitor"},/turf/open/floor/plasteel,/area/janitor) -"bJF" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/janitor) -"bJG" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel,/area/janitor) -"bJH" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel,/area/janitor) -"bJI" = (/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) -"bJJ" = (/obj/item/weapon/mop,/obj/item/weapon/reagent_containers/glass/bucket,/turf/open/floor/plasteel,/area/janitor) -"bJK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/power/apc{dir = 8; name = "Custodial Closet APC"; pixel_x = -24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plating,/area/janitor) -"bJL" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/grille/broken,/turf/open/floor/plating,/area/maintenance/asmaint) -"bJM" = (/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j2s"; sortType = 6},/obj/structure/grille,/obj/structure/window/fulltile{health = 25},/turf/open/floor/plating,/area/maintenance/asmaint) -"bJN" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/window/fulltile,/turf/open/floor/plating,/area/maintenance/asmaint) -"bJO" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/asmaint) -"bJP" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/asmaint) -"bJQ" = (/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/medical/sleeper) -"bJR" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bJS" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bJT" = (/obj/structure/table/optable,/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bJU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bJV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bJW" = (/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) -"bJX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/whiteblue/side{dir = 8},/area/medical/sleeper) -"bJY" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bJZ" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; 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) -"bKa" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/medical/sleeper) -"bKb" = (/obj/structure/table,/obj/item/weapon/storage/belt/medical{pixel_x = 0; pixel_y = 2},/obj/item/weapon/storage/belt/medical{pixel_x = 0; pixel_y = 2},/obj/item/weapon/storage/belt/medical{pixel_x = 0; pixel_y = 2},/obj/item/clothing/tie/stethoscope,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bKc" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bKd" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bKe" = (/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = -30; pixel_y = 0},/obj/machinery/camera{c_tag = "Medbay South"; dir = 4; network = list("SS13")},/turf/open/floor/plasteel/white,/area/medical/medbay) -"bKf" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/medbay) -"bKg" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/barber,/area/medical/cmo) -"bKh" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/barber,/area/medical/cmo) -"bKi" = (/obj/structure/disposalpipe/segment,/obj/machinery/light_switch{pixel_x = 28; pixel_y = 0},/turf/open/floor/plasteel/barber,/area/medical/cmo) -"bKj" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/light/small{dir = 8},/obj/machinery/portable_atmospherics/canister/bz,/turf/open/floor/plasteel/floorgrime,/area/toxins/storage) -"bKk" = (/turf/open/floor/plasteel/floorgrime,/area/toxins/storage) -"bKl" = (/obj/effect/decal/cleanable/oil,/obj/item/weapon/cigbutt,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/floorgrime,/area/toxins/storage) -"bKm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/toxins/storage) -"bKn" = (/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/toxins/storage) -"bKo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/toxins/storage) -"bKp" = (/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/medical/research{name = "Research Division"}) -"bKq" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) -"bKr" = (/turf/open/floor/plasteel/warnwhite{dir = 9},/area/medical/research{name = "Research Division"}) -"bKs" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/toxins/mixing) -"bKt" = (/turf/open/floor/plasteel/white,/area/toxins/mixing) -"bKu" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 5},/turf/open/floor/plasteel/white,/area/toxins/mixing) -"bKv" = (/obj/machinery/atmospherics/pipe/manifold/general/visible,/obj/machinery/meter,/turf/open/floor/plasteel/white,/area/toxins/mixing) -"bKw" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 9},/turf/open/floor/plasteel/white,/area/toxins/mixing) -"bKx" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/asmaint2) -"bKy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/closed/wall,/area/maintenance/asmaint2) -"bKz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/toxins/mixing) -"bKA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/closed/wall,/area/toxins/mixing) -"bKB" = (/obj/machinery/doppler_array{dir = 4},/turf/open/floor/plasteel/bot{dir = 2},/area/toxins/mixing) -"bKC" = (/turf/closed/wall,/area/toxins/test_area) -"bKD" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating/airless,/area/toxins/test_area) -"bKE" = (/turf/closed/wall/shuttle{icon_state = "swall_f16"},/area/shuttle/abandoned) -"bKF" = (/obj/item/weapon/scalpel,/turf/open/floor/plasteel/shuttle/white,/area/shuttle/abandoned) -"bKG" = (/obj/structure/table,/turf/open/floor/plasteel/shuttle,/area/shuttle/labor) -"bKH" = (/obj/machinery/computer/shuttle/mining,/turf/open/floor/plasteel/shuttle,/area/shuttle/labor) -"bKI" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/quartermaster/miningdock) -"bKJ" = (/obj/machinery/computer/shuttle/mining,/turf/open/floor/plasteel/brown{dir = 9},/area/quartermaster/miningdock) -"bKK" = (/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bKL" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bKM" = (/obj/structure/closet/secure_closet/miner,/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bKN" = (/obj/machinery/door/airlock/maintenance{name = "Firefighting equipment"; req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/aft) -"bKO" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/aft) -"bKP" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/aft) -"bKQ" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/storage/tech) -"bKR" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/computer/borgupload{pixel_x = -1; pixel_y = 1},/obj/item/weapon/circuitboard/computer/aiupload{pixel_x = 2; pixel_y = -2},/turf/open/floor/plasteel,/area/storage/tech) -"bKS" = (/obj/machinery/camera{c_tag = "Secure Tech Storage"; dir = 2},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/storage/tech) -"bKT" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/closed/wall/r_wall,/area/storage/tech) -"bKU" = (/obj/structure/table,/obj/machinery/cell_charger{pixel_y = 5},/obj/item/device/multitool,/turf/open/floor/plating,/area/storage/tech) -"bKV" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/computer/pandemic{pixel_x = -3; pixel_y = 3},/obj/item/weapon/circuitboard/computer/rdconsole,/obj/item/weapon/circuitboard/machine/rdserver{pixel_x = 3; pixel_y = -3},/obj/item/weapon/circuitboard/machine/destructive_analyzer,/obj/item/weapon/circuitboard/machine/protolathe,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/weapon/circuitboard/computer/aifixer,/obj/item/weapon/circuitboard/computer/teleporter,/obj/item/weapon/circuitboard/machine/circuit_imprinter,/obj/item/weapon/circuitboard/machine/mechfab,/turf/open/floor/plating,/area/storage/tech) -"bKW" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/computer/mining,/obj/item/weapon/circuitboard/machine/autolathe{pixel_x = 3; pixel_y = -3},/obj/item/weapon/circuitboard/computer/arcade/battle,/turf/open/floor/plating,/area/storage/tech) -"bKX" = (/obj/structure/rack,/obj/item/weapon/circuitboard/machine/telecomms/processor,/obj/item/weapon/circuitboard/machine/telecomms/receiver,/obj/item/weapon/circuitboard/machine/telecomms/server,/obj/item/weapon/circuitboard/machine/telecomms/bus,/obj/item/weapon/circuitboard/machine/telecomms/broadcaster,/obj/item/weapon/circuitboard/computer/message_monitor{pixel_y = -5},/turf/open/floor/plating,/area/storage/tech) -"bKY" = (/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) -"bKZ" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/item/key/janitor,/turf/open/floor/plasteel,/area/janitor) -"bLa" = (/obj/structure/table,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/machinery/requests_console{department = "Janitorial"; departmentType = 1; pixel_y = -29},/obj/item/weapon/reagent_containers/spray/cleaner,/turf/open/floor/plasteel,/area/janitor) -"bLb" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/light,/turf/open/floor/plasteel,/area/janitor) -"bLc" = (/obj/structure/janitorialcart,/turf/open/floor/plasteel,/area/janitor) -"bLd" = (/obj/item/weapon/restraints/legcuffs/beartrap,/obj/item/weapon/restraints/legcuffs/beartrap,/obj/item/weapon/storage/box/mousetraps,/obj/item/weapon/storage/box/mousetraps,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/janitor) -"bLe" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/janitor) -"bLf" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plasteel,/area/janitor) -"bLg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating,/area/maintenance/asmaint) -"bLh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/asmaint) -"bLi" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment,/mob/living/simple_animal/mouse,/turf/open/floor/plating,/area/maintenance/asmaint) -"bLj" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/asmaint) -"bLk" = (/obj/structure/disposalpipe/segment,/obj/machinery/power/apc{dir = 4; name = "Treatment Center APC"; pixel_x = 26; pixel_y = 0},/obj/structure/cable{d2 = 8; 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/medical/sleeper) -"bLl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white/side{dir = 4},/area/medical/sleeper) -"bLm" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bLn" = (/obj/machinery/computer/operating,/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bLo" = (/obj/structure/sign/nosmoking_2{pixel_x = -28},/obj/structure/bed,/obj/item/weapon/bedsheet/medical,/turf/open/floor/plasteel/whiteblue/corner{dir = 1},/area/medical/sleeper) -"bLp" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bLq" = (/obj/machinery/vending/wallmed{pixel_x = 28; pixel_y = 0},/obj/machinery/camera{c_tag = "Medbay Recovery Room"; dir = 8; network = list("SS13")},/obj/machinery/iv_drip,/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bLr" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bLs" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{pixel_x = 7; pixel_y = -3},/obj/item/weapon/reagent_containers/glass/bottle/morphine,/obj/item/weapon/reagent_containers/syringe,/obj/item/clothing/suit/straight_jacket,/obj/item/clothing/mask/muzzle,/obj/item/weapon/gun/syringe,/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bLt" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/clothing/tie/stethoscope,/obj/machinery/vending/wallmed{pixel_y = 28},/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/white,/area/medical/medbay) -"bLu" = (/obj/structure/chair/office/light{dir = 8},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/white,/area/medical/medbay) -"bLv" = (/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) -"bLw" = (/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "medpriv4"; name = "privacy door"},/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/medical/medbay) -"bLx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay) -"bLy" = (/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) -"bLz" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay) -"bLA" = (/obj/machinery/door/airlock/glass_command{name = "Chief Medical Officer"; req_access_txt = "40"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/barber,/area/medical/cmo) -"bLB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel/barber,/area/medical/cmo) -"bLC" = (/obj/machinery/hologram/holopad,/turf/open/floor/plasteel/barber,/area/medical/cmo) -"bLD" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plasteel/barber,/area/medical/cmo) -"bLE" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/closed/wall,/area/medical/cmo) -"bLF" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) -"bLG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/sortjunction{sortType = 10},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) -"bLH" = (/obj/effect/landmark/event_spawn,/turf/open/floor/engine,/area/toxins/xenobiology) -"bLI" = (/obj/machinery/power/apc{dir = 8; name = "Toxins Storage APC"; pixel_x = -25},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/camera{c_tag = "Toxins Storage"; dir = 4; network = list("SS13","RD")},/obj/machinery/portable_atmospherics/canister/bz,/turf/open/floor/plasteel/floorgrime,/area/toxins/storage) -"bLJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/plasteel/floorgrime,/area/toxins/storage) -"bLK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/mob/living/simple_animal/mouse,/turf/open/floor/plasteel/floorgrime,/area/toxins/storage) -"bLL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/floorgrime,/area/toxins/storage) -"bLM" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/floorgrime,/area/toxins/storage) -"bLN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/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/toxins/storage) -"bLO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/white/side{dir = 5},/area/medical/research{name = "Research Division"}) -"bLP" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) -"bLQ" = (/turf/open/floor/plasteel/warnwhite{dir = 8},/area/medical/research{name = "Research Division"}) -"bLR" = (/obj/machinery/door/firedoor/heavy,/obj/machinery/door/airlock/research{name = "Toxins Lab"; req_access_txt = "8"},/turf/open/floor/plasteel/white,/area/toxins/mixing) -"bLS" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/white,/area/toxins/mixing) -"bLT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/mixing) -"bLU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall/r_wall,/area/toxins/mixing) -"bLV" = (/obj/structure/sign/securearea{pixel_x = -32},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/warning/corner{dir = 1},/area/toxins/mixing) -"bLW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel,/area/toxins/mixing) -"bLX" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/warning/corner{dir = 2},/area/toxins/mixing) -"bLY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/toxins/mixing) -"bLZ" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/obj/item/device/radio/intercom{pixel_y = 25},/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel,/area/toxins/mixing) -"bMa" = (/obj/machinery/button/massdriver{dir = 2; id = "toxinsdriver"; pixel_y = 24},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/warning/corner{dir = 8},/area/toxins/mixing) -"bMb" = (/obj/machinery/computer/security/telescreen{desc = "Used for watching the test chamber."; dir = 8; layer = 4; name = "Test Chamber Telescreen"; network = list("Toxins"); pixel_x = 30; pixel_y = 0},/turf/open/floor/plasteel/warning{dir = 5},/area/toxins/mixing) -"bMc" = (/obj/item/target,/obj/structure/window/reinforced,/turf/open/floor/plating/warnplate{dir = 1},/area/toxins/test_area) -"bMd" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 6; pixel_y = -5},/turf/open/floor/plasteel/shuttle/white,/area/shuttle/abandoned) -"bMe" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/shuttle,/area/shuttle/labor) -"bMf" = (/obj/item/weapon/ore/iron,/turf/open/floor/plasteel/warning{dir = 9},/area/quartermaster/miningdock) -"bMg" = (/obj/structure/closet/crate,/obj/machinery/light/small{dir = 4},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/turf/open/floor/plasteel/warning{dir = 1},/area/quartermaster/miningdock) -"bMh" = (/turf/open/floor/plasteel/brown{dir = 8},/area/quartermaster/miningdock) -"bMi" = (/obj/effect/landmark/start{name = "Shaft Miner"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bMj" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bMk" = (/obj/machinery/light/small{dir = 1},/obj/structure/chair/stool,/turf/open/floor/plating,/area/maintenance/aft) -"bMl" = (/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plating,/area/maintenance/aft) -"bMm" = (/turf/open/floor/plating,/area/maintenance/aft) -"bMn" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/computer/crew{pixel_x = -1; pixel_y = 1},/obj/item/weapon/circuitboard/computer/card{pixel_x = 2; pixel_y = -2},/obj/item/weapon/circuitboard/computer/communications{pixel_x = 5; pixel_y = -5},/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel,/area/storage/tech) -"bMo" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/storage/tech) -"bMp" = (/obj/machinery/door/airlock/highsecurity{name = "Secure Tech Storage"; req_access_txt = "19;23"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating,/area/storage/tech) -"bMq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating,/area/storage/tech) -"bMr" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/plating,/area/storage/tech) -"bMs" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plating,/area/storage/tech) -"bMt" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/effect/landmark{name = "blobstart"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/storage/tech) -"bMu" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/storage/tech) -"bMv" = (/obj/machinery/door/airlock/engineering{name = "Tech Storage"; req_access_txt = "23"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/storage/tech) -"bMw" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/aft) -"bMx" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hallway/primary/aft) -"bMy" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/yellow/corner{dir = 2},/area/hallway/primary/aft) -"bMz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/janitor) -"bMA" = (/obj/machinery/door/airlock/maintenance{name = "Custodial Maintenance"; req_access_txt = "26"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/janitor) -"bMB" = (/obj/machinery/power/apc{dir = 8; name = "Medbay Maintenance APC"; pixel_x = -24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plating,/area/maintenance/asmaint) -"bMC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/grille/broken,/turf/open/floor/plating,/area/maintenance/asmaint) -"bMD" = (/obj/structure/grille,/obj/structure/window/fulltile{health = 25},/turf/open/floor/plating,/area/maintenance/asmaint) -"bME" = (/obj/structure/disposalpipe/segment,/obj/structure/grille,/obj/structure/window/fulltile{health = 35},/turf/open/floor/plating,/area/maintenance/asmaint) -"bMF" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/maintenance/asmaint) -"bMG" = (/obj/structure/disposalpipe/segment,/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) -"bMH" = (/obj/structure/disposalpipe/segment,/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) -"bMI" = (/obj/structure/closet/secure_closet/medical2,/turf/open/floor/plasteel,/area/medical/sleeper) -"bMJ" = (/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel/white/side{dir = 1},/area/medical/sleeper) -"bMK" = (/obj/machinery/vending/wallmed{pixel_y = -28},/obj/machinery/camera{c_tag = "Surgery Operating"; dir = 1; network = list("SS13"); pixel_x = 22},/obj/machinery/light,/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bML" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/plasteel/white/side{dir = 1},/area/medical/sleeper) -"bMM" = (/obj/structure/closet/crate/freezer{name = "blood bags"},/obj/item/weapon/reagent_containers/blood/empty,/obj/item/weapon/reagent_containers/blood/empty{pixel_x = -3; pixel_y = -3},/obj/item/weapon/reagent_containers/blood/AMinus,/obj/item/weapon/reagent_containers/blood/BMinus{pixel_x = -4; pixel_y = 4},/obj/item/weapon/reagent_containers/blood/BPlus{pixel_x = 1; pixel_y = 2},/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OPlus{pixel_x = -2; pixel_y = -1},/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/random,/turf/open/floor/plasteel,/area/medical/sleeper) -"bMN" = (/obj/structure/bed,/obj/item/weapon/bedsheet/medical,/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bMO" = (/obj/machinery/light,/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bMP" = (/obj/structure/closet/wardrobe/pjs,/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bMQ" = (/obj/structure/table,/obj/machinery/light,/obj/item/weapon/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) -"bMR" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/o2{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/o2,/obj/item/weapon/storage/firstaid/regular{pixel_x = -3; pixel_y = -3},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bMS" = (/obj/structure/table,/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = -30},/obj/item/weapon/storage/firstaid/toxin{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/toxin,/obj/item/weapon/storage/firstaid/regular{pixel_x = -3; pixel_y = -3},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bMT" = (/obj/structure/table,/obj/machinery/requests_console{announcementConsole = 0; department = "Medbay"; departmentType = 1; name = "Medbay RC"; pixel_x = 0; pixel_y = -30; pixel_z = 0},/obj/item/weapon/storage/firstaid/fire{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = -3; pixel_y = -3},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bMU" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/brute{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/brute,/obj/item/weapon/storage/firstaid/regular{pixel_x = -3; pixel_y = -3},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bMV" = (/obj/machinery/light,/obj/structure/table,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/syringes,/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bMW" = (/obj/structure/bed,/obj/item/weapon/bedsheet/medical,/turf/open/floor/plasteel/white,/area/medical/medbay) -"bMX" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/medbay) -"bMY" = (/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) -"bMZ" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 2},/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,/turf/open/floor/plasteel/white,/area/medical/medbay) -"bNa" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay) -"bNb" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/medical/cmo) -"bNc" = (/obj/structure/table,/obj/item/weapon/cartridge/medical{pixel_x = -2; pixel_y = 6},/obj/item/weapon/cartridge/medical{pixel_x = 6; pixel_y = 3},/obj/item/weapon/cartridge/medical,/obj/item/weapon/cartridge/chemistry{pixel_y = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/barber,/area/medical/cmo) -"bNd" = (/obj/machinery/computer/card/minor/cmo,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/barber,/area/medical/cmo) -"bNe" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/barber,/area/medical/cmo) -"bNf" = (/obj/structure/closet/secure_closet/CMO,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/barber,/area/medical/cmo) -"bNg" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/closed/wall/r_wall,/area/toxins/xenobiology) -"bNh" = (/obj/structure/disposaloutlet{dir = 1},/obj/structure/disposalpipe/trunk,/turf/open/floor/engine,/area/toxins/xenobiology) -"bNi" = (/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/turf/open/floor/plasteel/bot,/area/toxins/storage) -"bNj" = (/obj/machinery/portable_atmospherics/canister/nitrous_oxide,/turf/open/floor/plasteel/bot,/area/toxins/storage) -"bNk" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/plasteel/bot,/area/toxins/storage) -"bNl" = (/obj/structure/sign/nosmoking_2{pixel_x = -32},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white/side{dir = 5},/area/medical/research{name = "Research Division"}) -"bNm" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) -"bNn" = (/turf/open/floor/plasteel/warnwhite{dir = 10},/area/medical/research{name = "Research Division"}) -"bNo" = (/obj/item/device/assembly/prox_sensor{pixel_x = -4; pixel_y = 1},/obj/item/device/assembly/prox_sensor{pixel_x = 8; pixel_y = 9},/obj/item/device/assembly/prox_sensor{pixel_x = 9; pixel_y = -2},/obj/item/device/assembly/prox_sensor{pixel_x = 0; pixel_y = 2},/obj/structure/table/reinforced,/turf/open/floor/plasteel/white,/area/toxins/mixing) -"bNp" = (/obj/structure/chair/stool,/obj/effect/landmark/start{name = "Scientist"},/turf/open/floor/plasteel/white,/area/toxins/mixing) -"bNq" = (/obj/structure/table/reinforced,/obj/item/weapon/wrench,/obj/item/weapon/screwdriver{pixel_y = 10},/turf/open/floor/plasteel/white,/area/toxins/mixing) -"bNr" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/white,/area/toxins/mixing) -"bNs" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/mixing) -"bNt" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor/heavy,/obj/machinery/door/airlock/research{name = "Toxins Launch Room Access"; req_access_txt = "8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/mixing) -"bNu" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 8},/area/toxins/mixing) -"bNv" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 2; 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/toxins/mixing) -"bNw" = (/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,/turf/open/floor/plasteel/warning{dir = 4},/area/toxins/mixing) -"bNx" = (/obj/machinery/door/airlock/research{name = "Toxins Launch Room"; req_access_txt = "8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/toxins/mixing) -"bNy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/toxins/mixing) -"bNz" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/warning/corner{dir = 2},/area/toxins/mixing) -"bNA" = (/turf/open/floor/plasteel/warning{dir = 6},/area/toxins/mixing) -"bNB" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'BOMB RANGE"; name = "BOMB RANGE"},/turf/closed/wall,/area/toxins/test_area) -"bNC" = (/obj/structure/chair,/turf/open/floor/plating/airless/warnplate{dir = 9},/area/toxins/test_area) -"bND" = (/obj/item/device/flashlight/lamp,/turf/open/floor/plating/airless/warnplate{dir = 1},/area/toxins/test_area) -"bNE" = (/obj/structure/chair,/turf/open/floor/plating/airless/warnplate{dir = 5},/area/toxins/test_area) -"bNF" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 8},/obj/effect/decal/remains/human,/turf/open/floor/plasteel/shuttle/white,/area/shuttle/abandoned) -"bNG" = (/obj/machinery/door/airlock/shuttle{name = "Mining Shuttle Airlock"; req_access_txt = "48"},/obj/docking_port/mobile{dir = 8; dwidth = 3; height = 5; id = "mining"; name = "mining shuttle"; travelDir = 90; width = 7},/obj/docking_port/stationary{dir = 8; dwidth = 3; height = 5; id = "mining_home"; name = "mining shuttle bay"; width = 7},/turf/open/floor/plating,/area/shuttle/labor) -"bNH" = (/obj/machinery/door/airlock/external{name = "Mining Dock Airlock"; req_access = null; req_access_txt = "48"},/turf/open/floor/plating,/area/quartermaster/miningdock) -"bNI" = (/obj/machinery/door/airlock/glass_mining{name = "Mining Dock"; req_access_txt = "48"},/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bNJ" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bNK" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft) -"bNL" = (/obj/structure/closet/firecloset,/turf/open/floor/plating,/area/maintenance/aft) -"bNM" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/computer/robotics{pixel_x = -2; pixel_y = 2},/obj/item/weapon/circuitboard/computer/mecha_control{pixel_x = 1; pixel_y = -1},/turf/open/floor/plasteel,/area/storage/tech) -"bNN" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/storage/tech) -"bNO" = (/obj/structure/sign/securearea,/turf/closed/wall/r_wall,/area/storage/tech) -"bNP" = (/obj/structure/table,/obj/item/weapon/stock_parts/subspace/analyzer,/obj/item/weapon/stock_parts/subspace/analyzer,/obj/item/weapon/stock_parts/subspace/analyzer,/turf/open/floor/plating,/area/storage/tech) -"bNQ" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/computer/cloning{pixel_x = 0},/obj/item/weapon/circuitboard/computer/med_data{pixel_x = 3; pixel_y = -3},/obj/item/weapon/circuitboard/machine/clonescanner,/obj/item/weapon/circuitboard/machine/clonepod,/obj/item/weapon/circuitboard/computer/scan_consolenew,/turf/open/floor/plating,/area/storage/tech) -"bNR" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/computer/secure_data{pixel_x = -2; pixel_y = 2},/obj/item/weapon/circuitboard/computer/security{pixel_x = 1; pixel_y = -1},/turf/open/floor/plating,/area/storage/tech) -"bNS" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/computer/powermonitor{pixel_x = -2; pixel_y = 2},/obj/item/weapon/circuitboard/computer/stationalert{pixel_x = 1; pixel_y = -1},/obj/item/weapon/circuitboard/computer/atmos_alert{pixel_x = 3; pixel_y = -3},/turf/open/floor/plating,/area/storage/tech) -"bNT" = (/obj/machinery/light_switch{pixel_x = 27},/turf/open/floor/plating,/area/storage/tech) -"bNU" = (/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) -"bNV" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/aft) -"bNW" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/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) -"bNX" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) -"bNY" = (/obj/structure/cable{d1 = 4; d2 = 8; 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/asmaint) -"bNZ" = (/obj/structure/cable{d1 = 4; d2 = 8; 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/asmaint) -"bOa" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) -"bOb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) -"bOc" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 8; 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/asmaint) -"bOd" = (/obj/structure/cable{d1 = 4; d2 = 8; 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/asmaint) -"bOe" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/effect/landmark/event_spawn,/turf/open/floor/plating,/area/maintenance/asmaint) -"bOf" = (/obj/effect/landmark{name = "blobstart"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) -"bOg" = (/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/asmaint) -"bOh" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,/turf/open/floor/plating,/area/maintenance/asmaint) -"bOi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/medical/sleeper) -"bOj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/closed/wall/r_wall,/area/medical/sleeper) -"bOk" = (/turf/closed/wall/r_wall,/area/medical/medbay) -"bOl" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/white,/area/medical/medbay) -"bOm" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay) -"bOn" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/shieldwallgen{req_access = list(55)},/turf/open/floor/plating,/area/toxins/xenobiology) -"bOo" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/poddoor/preopen{id = "misclab"; name = "test chamber blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/toxins/xenobiology) -"bOp" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/poddoor/preopen{id = "misclab"; name = "test chamber blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/toxins/xenobiology) -"bOq" = (/obj/machinery/door/window/southleft{dir = 1; name = "Test Chamber"; req_access_txt = "55"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/poddoor/preopen{id = "misclab"; name = "test chamber blast door"},/turf/open/floor/engine,/area/toxins/xenobiology) -"bOr" = (/obj/structure/grille,/obj/structure/disposalpipe/segment,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/poddoor/preopen{id = "misclab"; name = "test chamber blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/toxins/xenobiology) -"bOs" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "misclab"; name = "test chamber blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/toxins/xenobiology) -"bOt" = (/turf/closed/wall,/area/toxins/xenobiology) -"bOu" = (/obj/machinery/portable_atmospherics/scrubber/huge,/turf/open/floor/plasteel/floorgrime,/area/toxins/storage) -"bOv" = (/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white/side{dir = 5},/area/medical/research{name = "Research Division"}) -"bOw" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) -"bOx" = (/obj/machinery/vending/cigarette,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) -"bOy" = (/obj/structure/closet/l3closet/scientist{pixel_x = -2},/turf/open/floor/plasteel/white,/area/toxins/mixing) -"bOz" = (/obj/structure/closet/wardrobe/science_white,/turf/open/floor/plasteel/white,/area/toxins/mixing) -"bOA" = (/obj/item/device/assembly/signaler{pixel_x = 0; pixel_y = 8},/obj/item/device/assembly/signaler{pixel_x = -8; pixel_y = 5},/obj/item/device/assembly/signaler{pixel_x = 6; pixel_y = 5},/obj/item/device/assembly/signaler{pixel_x = -2; pixel_y = -2},/obj/structure/table/reinforced,/turf/open/floor/plasteel/white,/area/toxins/mixing) -"bOB" = (/obj/item/device/transfer_valve{pixel_x = -5},/obj/item/device/transfer_valve{pixel_x = -5},/obj/item/device/transfer_valve{pixel_x = 0},/obj/item/device/transfer_valve{pixel_x = 0},/obj/item/device/transfer_valve{pixel_x = 5},/obj/item/device/transfer_valve{pixel_x = 5},/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = 0; pixel_y = -30},/obj/structure/table/reinforced,/turf/open/floor/plasteel/white,/area/toxins/mixing) -"bOC" = (/obj/item/device/assembly/timer{pixel_x = 5; pixel_y = 4},/obj/item/device/assembly/timer{pixel_x = -4; pixel_y = 2},/obj/item/device/assembly/timer{pixel_x = 6; pixel_y = -4},/obj/item/device/assembly/timer{pixel_x = 0; pixel_y = 0},/obj/structure/table/reinforced,/turf/open/floor/plasteel/white,/area/toxins/mixing) -"bOD" = (/obj/structure/tank_dispenser,/turf/open/floor/plasteel/white,/area/toxins/mixing) -"bOE" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/toxins/mixing) -"bOF" = (/obj/machinery/power/apc{dir = 4; name = "Toxins Lab APC"; pixel_x = 26; pixel_y = 0},/obj/structure/cable,/turf/open/floor/plasteel/white,/area/toxins/mixing) -"bOG" = (/turf/open/floor/plasteel/warning/corner{dir = 4},/area/toxins/mixing) -"bOH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/toxins/mixing) -"bOI" = (/obj/machinery/camera{c_tag = "Toxins Launch Room Access"; dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/warning/corner{dir = 8},/area/toxins/mixing) -"bOJ" = (/obj/machinery/door/window/southleft{name = "Mass Driver Door"; req_access_txt = "7"},/turf/open/floor/plasteel/loadingarea,/area/toxins/mixing) -"bOK" = (/turf/open/floor/plating/airless/warnplate{dir = 9},/area/toxins/test_area) -"bOL" = (/turf/open/floor/plating/airless,/area/toxins/test_area) -"bOM" = (/obj/structure/chair{dir = 8},/turf/open/floor/plating/airless/warnplate{dir = 5},/area/toxins/test_area) -"bON" = (/obj/item/weapon/ore/silver,/obj/item/weapon/ore/silver,/turf/open/floor/plasteel/warning{dir = 10},/area/quartermaster/miningdock) -"bOO" = (/obj/machinery/camera{c_tag = "Mining Dock External"; dir = 8},/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel/warning,/area/quartermaster/miningdock) -"bOP" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/turf/closed/wall,/area/quartermaster/miningdock) -"bOQ" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/brown{dir = 10},/area/quartermaster/miningdock) -"bOR" = (/obj/structure/rack{dir = 1},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/item/weapon/pickaxe{pixel_x = 5},/obj/item/weapon/shovel{pixel_x = -5},/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bOS" = (/obj/structure/closet/crate,/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bOT" = (/obj/machinery/light,/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bOU" = (/obj/machinery/mineral/equipment_vendor,/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bOV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/maintenance/aft) -"bOW" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable,/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/storage/tech) -"bOX" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/grille,/obj/structure/cable,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/storage/tech) -"bOY" = (/obj/structure/table,/obj/item/weapon/stock_parts/micro_laser,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/turf/open/floor/plating,/area/storage/tech) -"bOZ" = (/obj/structure/table,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/weapon/stock_parts/subspace/amplifier,/turf/open/floor/plating,/area/storage/tech) -"bPa" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plating,/area/storage/tech) -"bPb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/storage/tech) -"bPc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/storage/tech) -"bPd" = (/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) -"bPe" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/aft) -"bPf" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel/yellow/corner{dir = 2},/area/hallway/primary/aft) -"bPg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/maintenance/asmaint) -"bPh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall/r_wall,/area/maintenance/asmaint) -"bPi" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/closed/wall/r_wall,/area/maintenance/asmaint) -"bPj" = (/obj/structure/closet,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) -"bPk" = (/obj/structure/reagent_dispensers/watertank,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) -"bPl" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) -"bPm" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) -"bPn" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) -"bPo" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/asmaint) -"bPp" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/sign/securearea{pixel_x = 0; pixel_y = -32},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) -"bPq" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) -"bPr" = (/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j1s"; sortType = 11},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) -"bPs" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/asmaint) -"bPt" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/asmaint) -"bPu" = (/obj/effect/decal/cleanable/cobweb2,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "Medbay APC"; pixel_x = 24; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/medical/medbay) -"bPv" = (/obj/machinery/vending/wallmed{pixel_y = 28},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/white,/area/medical/medbay) -"bPw" = (/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) -"bPx" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay) -"bPy" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/medical/medbay) -"bPz" = (/obj/structure/rack{dir = 1},/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/asmaint) -"bPA" = (/obj/machinery/power/apc{dir = 1; name = "CM Office APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/medical/cmo) -"bPB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) -"bPC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/mob/living/simple_animal/mouse,/turf/open/floor/plating,/area/maintenance/asmaint) -"bPD" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) -"bPE" = (/obj/item/weapon/wrench,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/warning{dir = 2},/area/toxins/xenobiology) -"bPF" = (/obj/machinery/computer/security/telescreen{name = "Test Chamber Moniter"; network = list("Xeno"); pixel_x = 0; pixel_y = 2},/obj/structure/table/reinforced,/turf/open/floor/plasteel/warning{dir = 2},/area/toxins/xenobiology) -"bPG" = (/obj/machinery/button/door{id = "misclab"; name = "Test Chamber Blast Doors"; pixel_x = 0; pixel_y = -2; req_access_txt = "55"},/obj/structure/table/reinforced,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/warning{dir = 6},/area/toxins/xenobiology) -"bPH" = (/obj/machinery/door/window/southleft{name = "Test Chamber"; req_access_txt = "55"},/turf/open/floor/plasteel/warning{dir = 2},/area/toxins/xenobiology) -"bPI" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/warning{dir = 10},/area/toxins/xenobiology) -"bPJ" = (/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,/turf/open/floor/plasteel/warning{dir = 2},/area/toxins/xenobiology) -"bPK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/warning{dir = 2},/area/toxins/xenobiology) -"bPL" = (/obj/structure/sign/biohazard,/turf/closed/wall,/area/toxins/xenobiology) -"bPM" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/door/firedoor/heavy,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white/side{dir = 5},/area/medical/research{name = "Research Division"}) -"bPN" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/heavy,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) -"bPO" = (/obj/machinery/camera{c_tag = "Research Division South"; dir = 8; network = list("SS13")},/obj/machinery/door/firedoor/heavy,/turf/open/floor/plasteel/white/side{dir = 9},/area/medical/research{name = "Research Division"}) -"bPP" = (/obj/structure/sign/fire,/turf/closed/wall,/area/medical/research{name = "Research Division"}) -"bPQ" = (/obj/structure/sign/nosmoking_2{pixel_x = -32},/turf/open/floor/plasteel/white,/area/toxins/mixing) -"bPR" = (/obj/structure/closet/wardrobe/grey,/turf/open/floor/plating,/area/toxins/mixing) -"bPS" = (/obj/machinery/mass_driver{dir = 4; id = "toxinsdriver"},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/turf/open/floor/plating,/area/toxins/mixing) -"bPT" = (/obj/machinery/door/poddoor{id = "toxinsdriver"; name = "toxins launcher bay door"},/turf/open/floor/plating,/area/toxins/mixing) -"bPU" = (/turf/open/floor/plating/airless/warnplate{dir = 8},/area/toxins/test_area) -"bPV" = (/turf/open/floor/plating/airless/warnplate{dir = 4},/area/toxins/test_area) -"bPW" = (/obj/item/device/radio/beacon,/turf/open/floor/plating/airless,/area/toxins/test_area) -"bPX" = (/obj/machinery/camera{active_power_usage = 0; c_tag = "Bomb Test Site"; desc = "A specially-reinforced camera with a long lasting battery, used to monitor the bomb testing site."; dir = 8; invuln = 1; light = null; name = "Hardened Bomb-Test Camera"; network = list("Toxins"); use_power = 0},/obj/item/target/alien{anchored = 1},/turf/open/floor/plating/warnplate{dir = 4; luminosity = 2; initial_gas_mix = "o2=0.01;n2=0.01"},/area/toxins/test_area) -"bPY" = (/turf/closed/indestructible{desc = "A wall impregnated with Fixium, able to withstand massive explosions with ease"; icon_state = "riveted"; name = "hyper-reinforced wall"},/area/toxins/test_area) -"bPZ" = (/obj/structure/shuttle/engine/heater,/turf/open/floor/plating,/area/shuttle/labor) -"bQa" = (/obj/structure/ore_box,/turf/open/floor/plasteel/shuttle,/area/shuttle/labor) -"bQb" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft) -"bQc" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/aft) -"bQd" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/aft) -"bQe" = (/obj/structure/table,/obj/item/weapon/stock_parts/subspace/transmitter,/obj/item/weapon/stock_parts/subspace/transmitter,/obj/item/weapon/stock_parts/subspace/treatment,/obj/item/weapon/stock_parts/subspace/treatment,/obj/item/weapon/stock_parts/subspace/treatment,/turf/open/floor/plating,/area/storage/tech) -"bQf" = (/obj/structure/table,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/machinery/light/small,/turf/open/floor/plating,/area/storage/tech) -"bQg" = (/obj/structure/table,/obj/item/weapon/stock_parts/subspace/ansible,/obj/item/weapon/stock_parts/subspace/ansible,/obj/item/weapon/stock_parts/subspace/ansible,/obj/item/weapon/stock_parts/subspace/crystal,/obj/item/weapon/stock_parts/subspace/crystal,/obj/item/weapon/stock_parts/subspace/crystal,/turf/open/floor/plating,/area/storage/tech) -"bQh" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/obj/item/clothing/gloves/color/yellow,/obj/item/device/t_scanner,/obj/item/device/multitool,/turf/open/floor/plating,/area/storage/tech) -"bQi" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/obj/item/device/multitool,/obj/item/clothing/glasses/meson,/obj/machinery/light/small,/turf/open/floor/plating,/area/storage/tech) -"bQj" = (/obj/machinery/requests_console{department = "Tech storage"; pixel_x = 0; pixel_y = -32},/turf/open/floor/plating,/area/storage/tech) -"bQk" = (/obj/machinery/vending/assist,/turf/open/floor/plating,/area/storage/tech) -"bQl" = (/obj/structure/disposalpipe/segment,/obj/machinery/camera{c_tag = "Aft Primary Hallway 2"; dir = 4; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/aft) -"bQm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/aft) -"bQn" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel,/area/hallway/primary/aft) -"bQo" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/caution{dir = 5},/area/hallway/primary/aft) -"bQp" = (/turf/closed/wall/r_wall,/area/atmos) -"bQq" = (/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plasteel/bot,/area/atmos) -"bQr" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/plasteel/bot,/area/atmos) -"bQs" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/turf/open/floor/plasteel/bot,/area/atmos) -"bQt" = (/obj/machinery/portable_atmospherics/canister/nitrous_oxide,/turf/open/floor/plasteel/bot,/area/atmos) -"bQu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/atmos) -"bQv" = (/obj/structure/cable{d1 = 1; d2 = 2; 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/atmos) -"bQw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/turf/closed/wall/r_wall,/area/atmos) -"bQx" = (/obj/machinery/atmospherics/pipe/simple/supply/visible,/turf/closed/wall/r_wall,/area/atmos) -"bQy" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) -"bQz" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/clothing/tie/stethoscope,/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/white,/area/medical/medbay) -"bQA" = (/obj/structure/chair/office/light{dir = 8},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/medbay) -"bQB" = (/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) -"bQC" = (/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "medpriv1"; name = "privacy door"},/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/medical/medbay) -"bQD" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,/turf/open/floor/plasteel/white,/area/medical/medbay) -"bQE" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay) -"bQF" = (/obj/machinery/door/airlock/maintenance{name = "Medbay Maintenance"; req_access_txt = "5"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/medical/medbay) -"bQG" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) -"bQH" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) -"bQI" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) -"bQJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/junction,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) -"bQK" = (/obj/machinery/power/apc{dir = 8; name = "Xenobiology APC"; pixel_x = -25},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"bQL" = (/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"bQM" = (/obj/structure/chair/stool,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"bQN" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"bQO" = (/obj/machinery/monkey_recycler,/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"bQP" = (/obj/machinery/processor{desc = "A machine used to process slimes and retrieve their extract."; name = "Slime Processor"},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"bQQ" = (/obj/machinery/smartfridge/extract,/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"bQR" = (/obj/structure/table,/obj/machinery/reagentgrinder,/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"bQS" = (/obj/structure/closet/l3closet/scientist,/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"bQT" = (/obj/structure/closet/l3closet/scientist,/obj/machinery/light_switch{pixel_x = 0; pixel_y = 28},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"bQU" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/toxins/xenobiology) -"bQV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white/side{dir = 5},/area/medical/research{name = "Research Division"}) -"bQW" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/medical/research{name = "Research Division"}) -"bQX" = (/obj/machinery/door/poddoor{id = "mixvent"; name = "Mixer Room Vent"},/turf/open/floor/engine/vacuum,/area/toxins/mixing) -"bQY" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/open/floor/engine/vacuum,/area/toxins/mixing) -"bQZ" = (/obj/machinery/sparker{dir = 2; id = "mixingsparker"; pixel_x = 25},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; external_pressure_bound = 0; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/engine/vacuum,/area/toxins/mixing) -"bRa" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/closed/wall/r_wall,/area/toxins/mixing) -"bRb" = (/obj/machinery/airlock_sensor{id_tag = "tox_airlock_sensor"; master_tag = "tox_airlock_control"; pixel_y = 24},/obj/machinery/atmospherics/components/binary/pump{dir = 4; on = 1},/turf/open/floor/engine,/area/toxins/mixing) -"bRc" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/obj/machinery/meter,/obj/machinery/embedded_controller/radio/airlock_controller{airpump_tag = "tox_airlock_pump"; exterior_door_tag = "tox_airlock_exterior"; id_tag = "tox_airlock_control"; interior_door_tag = "tox_airlock_interior"; pixel_x = -24; pixel_y = 0; sanitize_external = 1; sensor_tag = "tox_airlock_sensor"},/turf/open/floor/plasteel/warnwhite/corner{dir = 1},/area/toxins/mixing) -"bRd" = (/obj/machinery/atmospherics/components/binary/valve{dir = 4; name = "mix to port"},/turf/open/floor/plasteel/warnwhite{dir = 4},/area/toxins/mixing) -"bRe" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 8},/turf/open/floor/plasteel/warning{dir = 5},/area/toxins/mixing) -"bRf" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating,/area/maintenance/asmaint2) -"bRg" = (/obj/effect/decal/cleanable/cobweb2,/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/asmaint2) -"bRh" = (/turf/open/floor/plating,/area/toxins/mixing) -"bRi" = (/turf/open/floor/plating/airless/warnplate{dir = 10},/area/toxins/test_area) -"bRj" = (/obj/structure/chair{dir = 8},/turf/open/floor/plating/airless/warnplate{dir = 6},/area/toxins/test_area) -"bRk" = (/obj/structure/shuttle/engine/propulsion/burst,/obj/structure/window/reinforced{dir = 1; layer = 2.9},/turf/open/floor/plating/airless,/area/shuttle/labor) -"bRl" = (/obj/structure/disposalpipe/segment,/obj/machinery/status_display{density = 0; layer = 3; pixel_x = -32; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/aft) -"bRm" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/hallway/primary/aft) -"bRn" = (/turf/open/floor/plasteel/caution{dir = 4},/area/hallway/primary/aft) -"bRo" = (/turf/closed/wall,/area/atmos) -"bRp" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plasteel,/area/atmos) -"bRq" = (/obj/machinery/atmospherics/components/trinary/filter{dir = 4},/turf/open/floor/plasteel,/area/atmos) -"bRr" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 8},/obj/machinery/airalarm{pixel_y = 23},/turf/open/floor/plasteel,/area/atmos) -"bRs" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/atmos) -"bRt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/atmos) -"bRu" = (/obj/machinery/pipedispenser,/turf/open/floor/plasteel,/area/atmos) -"bRv" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/atmos) -"bRw" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{dir = 8},/obj/machinery/light{dir = 1},/obj/machinery/meter{frequency = 1441; id_tag = "waste_meter"; name = "Waste Loop"},/turf/open/floor/plasteel,/area/atmos) -"bRx" = (/obj/machinery/camera{c_tag = "Atmospherics North East"},/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Distro to Waste"; on = 0},/turf/open/floor/plasteel,/area/atmos) -"bRy" = (/obj/machinery/atmospherics/pipe/manifold/supply/visible{dir = 2},/obj/machinery/meter{frequency = 1441; id_tag = "distro_meter"; name = "Distribution Loop"},/turf/open/floor/plasteel,/area/atmos) -"bRz" = (/obj/machinery/atmospherics/pipe/manifold/supply/visible{dir = 1},/turf/open/floor/plasteel,/area/atmos) -"bRA" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Air to Distro"; on = 1},/turf/open/floor/plasteel,/area/atmos) -"bRB" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 10; initialize_directions = 10},/turf/open/floor/plasteel,/area/atmos) -"bRC" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 6},/turf/open/floor/plasteel,/area/atmos) -"bRD" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/closed/wall/r_wall,/area/atmos) -"bRE" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/open/space,/area/space/nearstation) -"bRF" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/open/space,/area/space) -"bRG" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/yellow/visible{icon_state = "intact"; dir = 10},/turf/open/space,/area/space/nearstation) -"bRH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/medical/virology) -"bRI" = (/turf/closed/wall/r_wall,/area/medical/virology) -"bRJ" = (/turf/closed/wall,/area/medical/virology) -"bRK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/doorButtons/access_button{idDoor = "virology_airlock_exterior"; idSelf = "virology_airlock_control"; name = "Virology Access Button"; pixel_x = -24; pixel_y = 0; req_access_txt = "39"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/virology{autoclose = 0; frequency = 1449; icon_state = "door_locked"; id_tag = "virology_airlock_exterior"; locked = 1; name = "Virology Exterior Airlock"; req_access_txt = "39"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/virology) -"bRL" = (/obj/structure/sign/biohazard,/turf/closed/wall,/area/medical/virology) -"bRM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/sortjunction{dir = 2; icon_state = "pipe-j2s"; sortType = 13},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plating,/area/maintenance/asmaint) -"bRN" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/maintenance{name = "Xenobiology Maintenance"; req_access_txt = "55"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/toxins/xenobiology) -"bRO" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"bRP" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"bRQ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"bRR" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"bRS" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"bRT" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"bRU" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"bRV" = (/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/toxins/xenobiology) -"bRW" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/white/side{dir = 5},/area/medical/research{name = "Research Division"}) -"bRX" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) -"bRY" = (/turf/open/floor/engine/vacuum,/area/toxins/mixing) -"bRZ" = (/obj/effect/landmark/event_spawn,/turf/open/floor/engine/vacuum,/area/toxins/mixing) -"bSa" = (/obj/machinery/door/airlock/glass_research{autoclose = 0; frequency = 1449; glass = 1; heat_proof = 1; icon_state = "door_locked"; id_tag = "tox_airlock_exterior"; locked = 1; name = "Mixing Room Exterior Airlock"; req_access_txt = "8"},/turf/open/floor/engine,/area/toxins/mixing) -"bSb" = (/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume{dir = 2; frequency = 1449; id = "tox_airlock_pump"},/turf/open/floor/engine,/area/toxins/mixing) -"bSc" = (/obj/machinery/door/airlock/glass_research{autoclose = 0; frequency = 1449; glass = 1; heat_proof = 1; icon_state = "door_locked"; id_tag = "tox_airlock_interior"; locked = 1; name = "Mixing Room Interior Airlock"; req_access_txt = "8"},/turf/open/floor/engine,/area/toxins/mixing) -"bSd" = (/turf/open/floor/plasteel/warnwhite{dir = 8},/area/toxins/mixing) -"bSe" = (/turf/open/floor/plasteel/warnwhite{dir = 4},/area/toxins/mixing) -"bSf" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/camera{c_tag = "Toxins Lab East"; dir = 8; network = list("SS13","RD"); pixel_y = -22},/turf/open/floor/plasteel/warning{dir = 4},/area/toxins/mixing) -"bSg" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plating,/area/maintenance/asmaint2) -"bSh" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/asmaint2) -"bSi" = (/obj/structure/chair{dir = 1},/turf/open/floor/plating/airless/warnplate{dir = 10},/area/toxins/test_area) -"bSj" = (/obj/item/device/flashlight/lamp,/turf/open/floor/plating/airless/warnplate{dir = 2},/area/toxins/test_area) -"bSk" = (/obj/structure/chair{dir = 1},/turf/open/floor/plating/airless/warnplate{dir = 6},/area/toxins/test_area) -"bSl" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/toxins/test_area) -"bSm" = (/turf/closed/wall,/area/construction) -"bSn" = (/obj/structure/closet/crate,/turf/open/floor/plating,/area/construction) -"bSo" = (/turf/open/floor/plating,/area/construction) -"bSp" = (/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/turf/open/floor/plating,/area/construction) -"bSq" = (/turf/open/floor/plasteel,/area/construction) -"bSr" = (/obj/structure/closet/toolcloset,/turf/open/floor/plasteel,/area/construction) -"bSs" = (/turf/open/floor/plasteel/caution{dir = 6},/area/hallway/primary/aft) -"bSt" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -30},/obj/machinery/portable_atmospherics/canister/bz,/turf/open/floor/plasteel,/area/atmos) -"bSu" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/portable_atmospherics/canister/bz,/turf/open/floor/plasteel,/area/atmos) -"bSv" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/atmos) -"bSw" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/atmos) -"bSx" = (/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; network = list("SS13")},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/caution{dir = 5},/area/atmos) -"bSy" = (/obj/machinery/camera{c_tag = "Atmospherics North West"; dir = 4; network = list("SS13")},/obj/machinery/light{dir = 8},/turf/open/floor/plasteel,/area/atmos) -"bSz" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 1},/turf/open/floor/plasteel,/area/atmos) -"bSA" = (/turf/open/floor/plasteel,/area/atmos) -"bSB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel,/area/atmos) -"bSC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel,/area/atmos) -"bSD" = (/obj/machinery/pipedispenser/disposal,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/atmos) -"bSE" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/atmos) -"bSF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/atmos) -"bSG" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/atmos) -"bSH" = (/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "Mix to Distro"; on = 0},/turf/open/floor/plasteel,/area/atmos) -"bSI" = (/obj/machinery/atmospherics/pipe/manifold/cyan/visible{dir = 8; initialize_directions = 11},/obj/machinery/meter,/turf/open/floor/plasteel,/area/atmos) -"bSJ" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "Mix to Incinerator"; on = 0},/turf/open/floor/plasteel,/area/atmos) -"bSK" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 10; initialize_directions = 10},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/atmos) -"bSL" = (/obj/structure/grille,/turf/closed/wall/r_wall,/area/atmos) -"bSM" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/open/space,/area/space/nearstation) -"bSN" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/closed/wall/r_wall,/area/medical/virology) -"bSO" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/blood/empty,/obj/item/weapon/reagent_containers/blood/empty{pixel_x = -3; pixel_y = -3},/obj/item/weapon/reagent_containers/blood/AMinus,/obj/item/weapon/reagent_containers/blood/BMinus{pixel_x = -4; pixel_y = 4},/obj/item/weapon/reagent_containers/blood/BPlus{pixel_x = 1; pixel_y = 2},/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OPlus{pixel_x = -2; pixel_y = -1},/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/random,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/virology) -"bSP" = (/obj/item/weapon/storage/secure/safe{pixel_x = 5; pixel_y = 29},/obj/machinery/camera{c_tag = "Virology Break Room"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/virology) -"bSQ" = (/obj/machinery/light{dir = 1},/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/turf/open/floor/plasteel/white,/area/medical/virology) -"bSR" = (/obj/item/weapon/bedsheet,/obj/structure/bed,/turf/open/floor/plasteel/white,/area/medical/virology) -"bSS" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/open/floor/plasteel/warnwhite{dir = 9},/area/medical/virology) -"bST" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/virology) -"bSU" = (/obj/structure/closet/emcloset,/obj/machinery/camera{c_tag = "Virology Airlock"; dir = 2; network = list("SS13")},/turf/open/floor/plasteel/warnwhite{dir = 5},/area/medical/virology) -"bSV" = (/turf/open/floor/plasteel/white,/area/medical/virology) -"bSW" = (/mob/living/carbon/monkey,/turf/open/floor/plasteel/white,/area/medical/virology) -"bSX" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/white,/area/medical/virology) -"bSY" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/sign/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/asmaint) -"bSZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/toxins/xenobiology) -"bTa" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"bTb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/chair/comfy/black,/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"bTc" = (/obj/effect/landmark/start{name = "Scientist"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/chair/comfy/black,/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"bTd" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"bTe" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"bTf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"bTg" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"bTh" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/toxins/xenobiology) -"bTi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white/side{dir = 1},/area/medical/research{name = "Research Division"}) -"bTj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/white/side{dir = 1},/area/medical/research{name = "Research Division"}) -"bTk" = (/turf/open/floor/plasteel/white/side{dir = 1},/area/medical/research{name = "Research Division"}) -"bTl" = (/obj/machinery/sparker{dir = 2; id = "mixingsparker"; pixel_x = 25},/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 4; frequency = 1441; id = "air_in"},/turf/open/floor/engine/vacuum,/area/toxins/mixing) -"bTm" = (/obj/structure/sign/fire{pixel_y = -32},/obj/machinery/atmospherics/components/binary/pump{dir = 8; on = 1},/turf/open/floor/engine,/area/toxins/mixing) -"bTn" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/obj/machinery/meter,/obj/machinery/button/door{id = "mixvent"; name = "Mixing Room Vent Control"; pixel_x = -25; pixel_y = 5; req_access_txt = "7"},/obj/machinery/button/ignition{id = "mixingsparker"; pixel_x = -25; pixel_y = -5},/turf/open/floor/plasteel/warnwhite/corner{dir = 4},/area/toxins/mixing) -"bTo" = (/obj/machinery/light,/obj/machinery/atmospherics/components/binary/valve{dir = 4; name = "port to mix"},/turf/open/floor/plasteel/warnwhite{dir = 4},/area/toxins/mixing) -"bTp" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 8},/turf/open/floor/plasteel/warning{dir = 6},/area/toxins/mixing) -"bTq" = (/obj/structure/closet/toolcloset,/turf/open/floor/plating,/area/maintenance/asmaint2) -"bTr" = (/obj/item/target,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating/warnplate,/area/toxins/test_area) -"bTs" = (/obj/structure/barricade/wooden,/obj/structure/girder,/turf/open/floor/plating,/area/maintenance/aft) -"bTt" = (/obj/machinery/light_construct{dir = 8},/turf/open/floor/plating,/area/construction) -"bTu" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plating,/area/construction) -"bTv" = (/obj/machinery/light_construct{dir = 4},/turf/open/floor/plasteel,/area/construction) -"bTw" = (/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) -"bTx" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/hallway/primary/aft) -"bTy" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/loadingarea{dir = 8},/area/hallway/primary/aft) -"bTz" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/plasticflaps{opacity = 1},/obj/machinery/navbeacon{codes_txt = "delivery;dir=4"; dir = 4; freq = 1400; location = "Atmospherics"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/atmos) -"bTA" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/loadingarea{dir = 4},/area/atmos) -"bTB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/atmos) -"bTC" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/atmos) -"bTD" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel,/area/atmos) -"bTE" = (/obj/machinery/computer/atmos_control,/obj/machinery/requests_console{department = "Atmospherics"; departmentType = 4; name = "Atmos RC"; pixel_x = 30; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/caution{dir = 4},/area/atmos) -"bTF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/atmos) -"bTG" = (/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,/turf/open/floor/plasteel,/area/atmos) -"bTH" = (/obj/structure/cable{d1 = 1; d2 = 2; 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/atmos) -"bTI" = (/obj/machinery/pipedispenser/disposal/transit_tube,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/atmos) -"bTJ" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/atmos) -"bTK" = (/obj/machinery/atmospherics/components/binary/pump{dir = 0; name = "Waste In"; on = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/atmos) -"bTL" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/atmos) -"bTM" = (/obj/machinery/atmospherics/pipe/manifold/yellow/visible,/turf/open/floor/plasteel,/area/atmos) -"bTN" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Mix Outlet Pump"; on = 0},/turf/open/floor/plasteel,/area/atmos) -"bTO" = (/obj/machinery/atmospherics/components/binary/pump{dir = 0; name = "Air to Mix"; on = 0},/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/open/floor/plasteel,/area/atmos) -"bTP" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/manifold/yellow/visible,/turf/open/floor/plasteel/green/side{dir = 5},/area/atmos) -"bTQ" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/cyan/visible,/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/atmos) -"bTR" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/grille,/obj/machinery/meter,/turf/closed/wall/r_wall,/area/atmos) -"bTS" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; external_pressure_bound = 0; frequency = 1441; id_tag = "mix_in"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/engine/vacuum,/area/atmos) -"bTT" = (/obj/machinery/camera{c_tag = "Atmospherics Waste Tank"},/turf/open/floor/engine/vacuum,/area/atmos) -"bTU" = (/turf/open/floor/engine/vacuum,/area/atmos) -"bTV" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/asmaint) -"bTW" = (/obj/structure/table,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/turf/open/floor/plasteel/white,/area/medical/virology) -"bTX" = (/obj/machinery/iv_drip,/turf/open/floor/plasteel/white,/area/medical/virology) -"bTY" = (/obj/machinery/shower{dir = 4},/obj/structure/sign/securearea{pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel/warnwhite{dir = 8},/area/medical/virology) -"bTZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/white,/area/medical/virology) -"bUa" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/closet/l3closet,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/warnwhite{dir = 4},/area/medical/virology) -"bUb" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/virology) -"bUc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/mob/living/carbon/monkey,/turf/open/floor/plasteel/white,/area/medical/virology) -"bUd" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/medical/virology) -"bUe" = (/obj/machinery/disposal/bin,/obj/structure/sign/deathsposal{pixel_x = 0; pixel_y = -32},/obj/structure/disposalpipe/trunk{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"bUf" = (/obj/machinery/computer/camera_advanced/xenobio,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"bUg" = (/obj/machinery/light,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/table/glass,/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/storage/box/monkeycubes,/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"bUh" = (/obj/structure/table/glass,/obj/structure/disposalpipe/segment{dir = 4},/obj/item/weapon/folder/white,/obj/item/weapon/pen,/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"bUi" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"bUj" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"bUk" = (/obj/structure/table,/obj/item/weapon/extinguisher{pixel_x = 4; pixel_y = 3},/obj/item/weapon/extinguisher,/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"bUl" = (/obj/structure/table,/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = 0; pixel_y = -30},/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"bUm" = (/obj/structure/table,/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/obj/machinery/light,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"bUn" = (/obj/structure/table,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/syringes,/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"bUo" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"bUp" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/toxins/misc_lab) -"bUq" = (/obj/machinery/door/airlock/research{name = "Testing Lab"; req_access_txt = "47"},/turf/open/floor/plasteel,/area/toxins/misc_lab) -"bUr" = (/turf/closed/wall,/area/toxins/misc_lab) -"bUs" = (/obj/effect/decal/cleanable/oil,/turf/open/floor/plating,/area/maintenance/asmaint2) -"bUt" = (/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/asmaint2) -"bUu" = (/obj/effect/decal/cleanable/oil,/obj/structure/rack,/turf/open/floor/plating,/area/maintenance/asmaint2) -"bUv" = (/obj/machinery/vending/boozeomat,/turf/open/floor/plasteel/bar,/area/maintenance/aft) -"bUw" = (/turf/open/floor/wood,/area/maintenance/aft) -"bUx" = (/obj/effect/decal/cleanable/robot_debris/old,/turf/open/floor/wood,/area/maintenance/aft) -"bUy" = (/turf/open/floor/wood{icon_state = "wood-broken"},/area/maintenance/aft) -"bUz" = (/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/aft) -"bUA" = (/obj/item/weapon/shard,/turf/open/floor/plating,/area/maintenance/aft) -"bUB" = (/obj/effect/decal/cleanable/oil,/turf/open/floor/plating,/area/maintenance/aft) -"bUC" = (/obj/structure/girder,/obj/structure/grille/broken,/turf/open/floor/plating,/area/maintenance/fsmaint2) -"bUD" = (/obj/structure/closet/emcloset,/obj/effect/decal/cleanable/cobweb,/turf/open/floor/plating,/area/maintenance/aft) -"bUE" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft) -"bUF" = (/obj/structure/chair{dir = 1},/turf/open/floor/plating,/area/maintenance/aft) -"bUG" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/aft) -"bUH" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"bUI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/construction) -"bUJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/construction) -"bUK" = (/obj/structure/closet/crate,/obj/effect/landmark{name = "blobstart"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/construction) -"bUL" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plating,/area/construction) -"bUM" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/construction) -"bUN" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/construction) -"bUO" = (/obj/machinery/door/airlock/engineering{name = "Construction Area"; req_access_txt = "32"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/construction) -"bUP" = (/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) -"bUQ" = (/turf/open/floor/plasteel/caution{dir = 5},/area/hallway/primary/aft) -"bUR" = (/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "atmos"; layer = 2.9; name = "atmos blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/atmos) -"bUS" = (/obj/structure/tank_dispenser{pixel_x = -1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/atmos) -"bUT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel,/area/atmos) -"bUU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/atmos) -"bUV" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel,/area/atmos) -"bUW" = (/obj/machinery/computer/atmos_control,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/caution{dir = 4},/area/atmos) -"bUX" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/window/fulltile,/turf/open/floor/plating,/area/atmos) -"bUY" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/atmos) -"bUZ" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/atmos) -"bVa" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel,/area/atmos) -"bVb" = (/obj/structure/closet/crate,/turf/open/floor/plasteel,/area/atmos) -"bVc" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{dir = 8},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/atmos) -"bVd" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Mix to Filter"; on = 1},/turf/open/floor/plasteel,/area/atmos) -"bVe" = (/obj/machinery/atmospherics/pipe/manifold/yellow/visible{dir = 4},/turf/open/floor/plasteel,/area/atmos) -"bVf" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 6},/turf/open/floor/plasteel,/area/atmos) -"bVg" = (/obj/machinery/atmospherics/pipe/manifold/green/visible{dir = 1},/turf/open/floor/plasteel,/area/atmos) -"bVh" = (/obj/machinery/atmospherics/pipe/manifold/green/visible{dir = 4},/turf/open/floor/plasteel,/area/atmos) -"bVi" = (/obj/machinery/computer/atmos_control/tank{frequency = 1441; input_tag = "mix_in"; name = "Gas Mix Tank Control"; output_tag = "mix_in"; sensors = list("mix_sensor" = "Tank")},/turf/open/floor/plasteel/green/side{dir = 4},/area/atmos) -"bVj" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/cyan/visible,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/atmos) -"bVk" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating/airless,/area/atmos) -"bVl" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "mix_sensor"},/turf/open/floor/engine/vacuum,/area/atmos) -"bVm" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/engine/vacuum,/area/atmos) -"bVn" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/machinery/newscaster{pixel_x = -30},/turf/open/floor/plasteel/white,/area/medical/virology) -"bVo" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/white,/area/medical/virology) -"bVp" = (/obj/structure/closet/wardrobe/virology_white,/turf/open/floor/plasteel/white,/area/medical/virology) -"bVq" = (/obj/structure/sink{icon_state = "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"},/turf/open/floor/plasteel/warnwhite{dir = 10},/area/medical/virology) -"bVr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/white,/area/medical/virology) -"bVs" = (/obj/structure/closet/l3closet,/turf/open/floor/plasteel/warnwhite{dir = 6},/area/medical/virology) -"bVt" = (/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plasteel/white,/area/medical/virology) -"bVu" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/warnwhite{dir = 1},/area/toxins/xenobiology) -"bVv" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/warnwhite{dir = 1},/area/toxins/xenobiology) -"bVw" = (/obj/machinery/door/firedoor,/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/camera{c_tag = "Xenobiology North"; dir = 8; network = list("SS13","RD")},/turf/open/floor/plasteel/warnwhite{dir = 1},/area/toxins/xenobiology) -"bVx" = (/obj/structure/closet/bombcloset,/obj/machinery/light_switch{pixel_x = -20; pixel_y = 0},/turf/open/floor/plasteel,/area/toxins/misc_lab) -"bVy" = (/turf/open/floor/plasteel,/area/toxins/misc_lab) -"bVz" = (/turf/open/floor/plasteel/floorgrime,/area/toxins/misc_lab) -"bVA" = (/obj/machinery/requests_console{department = "Science"; departmentType = 2; dir = 2; name = "Science Requests Console"; pixel_x = 0; pixel_y = 30},/turf/open/floor/plasteel,/area/toxins/misc_lab) -"bVB" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/storage/toolbox/mechanical,/obj/item/clothing/ears/earmuffs,/obj/machinery/camera{c_tag = "Testing Lab North"; dir = 2; network = list("SS13","RD")},/turf/open/floor/plasteel,/area/toxins/misc_lab) -"bVC" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/turf/open/floor/engine,/area/toxins/misc_lab) -"bVD" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 1},/turf/open/floor/engine,/area/toxins/misc_lab) -"bVE" = (/obj/machinery/atmospherics/components/trinary/filter{dir = 4; req_access = null},/turf/open/floor/engine,/area/toxins/misc_lab) -"bVF" = (/obj/machinery/atmospherics/components/unary/thermomachine/heater{dir = 8},/turf/open/floor/engine,/area/toxins/misc_lab) -"bVG" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/warning{dir = 9},/area/toxins/misc_lab) -"bVH" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/warning{dir = 5},/area/toxins/misc_lab) -"bVI" = (/turf/closed/wall/r_wall,/area/toxins/misc_lab) -"bVJ" = (/obj/structure/rack,/turf/open/floor/plating,/area/maintenance/asmaint2) -"bVK" = (/obj/structure/table,/obj/machinery/chem_dispenser/drinks/beer,/turf/open/floor/wood,/area/maintenance/aft) -"bVL" = (/obj/structure/table/wood,/obj/item/weapon/soap/nanotrasen,/turf/open/floor/wood{icon_state = "wood-broken7"},/area/maintenance/aft) -"bVM" = (/obj/structure/table/wood,/turf/open/floor/wood{icon_state = "wood-broken5"},/area/maintenance/aft) -"bVN" = (/obj/structure/table/wood,/obj/effect/spawner/lootdrop/maintenance{lootcount = 4; name = "4maintenance loot spawner"},/turf/open/floor/wood,/area/maintenance/aft) -"bVO" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/aft) -"bVP" = (/obj/effect/spawner/lootdrop/maintenance{lootcount = 3; name = "3maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/aft) -"bVQ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/aft) -"bVR" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/aft) -"bVS" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/maintenance{name = "Construction Area Maintenance"; req_access_txt = "32"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/construction) -"bVT" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/construction) -"bVU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/construction) -"bVV" = (/obj/machinery/light_switch{pixel_x = 27},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/construction) -"bVW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/construction) -"bVX" = (/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) -"bVY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel,/area/hallway/primary/aft) -"bVZ" = (/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"; layer = 2.9; name = "atmos blast door"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/atmos) -"bWa" = (/obj/structure/chair{dir = 8},/obj/effect/landmark/start{name = "Atmospheric Technician"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/atmos) -"bWb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/atmos) -"bWc" = (/obj/structure/chair/office/dark{dir = 4},/obj/effect/landmark/start{name = "Atmospheric Technician"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel,/area/atmos) -"bWd" = (/obj/machinery/computer/atmos_alert,/turf/open/floor/plasteel/caution{dir = 4},/area/atmos) -"bWe" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/atmos) -"bWf" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/plasteel,/area/atmos) -"bWg" = (/obj/machinery/atmospherics/components/trinary/mixer{dir = 8},/turf/open/floor/plasteel,/area/atmos) -"bWh" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 8},/turf/open/floor/plasteel,/area/atmos) -"bWi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 6},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/atmos) -"bWj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/turf/open/floor/plasteel,/area/atmos) -"bWk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_atmos{name = "Distribution Loop"; req_access_txt = "24"},/turf/open/floor/plasteel,/area/atmos) -"bWl" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 9},/turf/open/floor/plasteel,/area/atmos) -"bWm" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 9},/turf/open/floor/plasteel,/area/atmos) -"bWn" = (/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "Pure to Mix"; on = 0},/turf/open/floor/plasteel,/area/atmos) -"bWo" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 5; initialize_directions = 12},/turf/open/floor/plasteel,/area/atmos) -"bWp" = (/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "Unfiltered to Mix"; on = 1},/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4; initialize_directions = 12},/turf/open/floor/plasteel,/area/atmos) -"bWq" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/open/floor/plasteel/green/side{dir = 6},/area/atmos) -"bWr" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/cyan/visible,/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/atmos) -"bWs" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/open/space,/area/space/nearstation) -"bWt" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 8; frequency = 1441; id = "mix_in"; pixel_y = 1},/turf/open/floor/engine/vacuum,/area/atmos) -"bWu" = (/obj/structure/table,/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/obj/machinery/reagentgrinder,/turf/open/floor/plasteel/white,/area/medical/virology) -"bWv" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/white,/area/medical/virology) -"bWw" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel/white,/area/medical/virology) -"bWx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/virology{autoclose = 0; frequency = 1449; icon_state = "door_locked"; id_tag = "virology_airlock_interior"; locked = 1; name = "Virology Interior Airlock"; req_access_txt = "39"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/virology) -"bWy" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/medical/virology) -"bWz" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_virology{name = "Monkey Pen"; req_access_txt = "39"},/turf/open/floor/plasteel/white,/area/medical/virology) -"bWA" = (/obj/structure/disposalpipe/trunk{dir = 4},/obj/structure/disposaloutlet,/turf/open/floor/engine,/area/toxins/xenobiology) -"bWB" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/engine,/area/toxins/xenobiology) -"bWC" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/door/poddoor/preopen{id = "xenobio3"; name = "containment blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/toxins/xenobiology) -"bWD" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/window/reinforced,/turf/open/floor/plasteel/warning{dir = 6},/area/toxins/xenobiology) -"bWE" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"bWF" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"bWG" = (/obj/structure/window/reinforced,/obj/structure/table/reinforced,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/button/door{id = "xenobio8"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/turf/open/floor/plasteel/warning{dir = 10},/area/toxins/xenobiology) -"bWH" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "xenobio8"; name = "containment blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/toxins/xenobiology) -"bWI" = (/obj/structure/closet/l3closet/scientist{pixel_x = -2},/turf/open/floor/plasteel,/area/toxins/misc_lab) -"bWJ" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/floorgrime,/area/toxins/misc_lab) -"bWK" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 4},/obj/item/device/electropack,/obj/item/device/healthanalyzer,/obj/item/device/assembly/signaler,/turf/open/floor/plasteel,/area/toxins/misc_lab) -"bWL" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4; initialize_directions = 11},/turf/open/floor/engine,/area/toxins/misc_lab) -"bWM" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 8},/turf/open/floor/engine,/area/toxins/misc_lab) -"bWN" = (/obj/machinery/atmospherics/pipe/manifold/general/visible,/turf/open/floor/engine,/area/toxins/misc_lab) -"bWO" = (/obj/machinery/atmospherics/components/unary/thermomachine/freezer{dir = 8},/turf/open/floor/engine,/area/toxins/misc_lab) -"bWP" = (/obj/machinery/magnetic_module,/obj/effect/landmark{name = "blobstart"},/obj/structure/target_stake,/turf/open/floor/plasteel/bot{dir = 2},/area/toxins/misc_lab) -"bWQ" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/asmaint2) -"bWR" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/asmaint2) -"bWS" = (/obj/machinery/space_heater,/turf/open/floor/wood,/area/maintenance/aft) -"bWT" = (/obj/structure/chair/stool,/turf/open/floor/wood,/area/maintenance/aft) -"bWU" = (/obj/structure/grille/broken,/turf/open/floor/plating,/area/maintenance/aft) -"bWV" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/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/aft) -"bWW" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plating,/area/maintenance/aft) -"bWX" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft) -"bWY" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/aft) -"bWZ" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 1},/turf/open/floor/plating,/area/construction) -"bXa" = (/obj/machinery/camera{c_tag = "Construction Area"; dir = 1},/turf/open/floor/plating,/area/construction) -"bXb" = (/obj/structure/rack{dir = 1},/obj/item/clothing/suit/hazardvest,/turf/open/floor/plating,/area/construction) -"bXc" = (/obj/structure/table,/obj/item/stack/cable_coil{amount = 5},/obj/item/device/flashlight,/turf/open/floor/plating,/area/construction) -"bXd" = (/obj/structure/table,/turf/open/floor/plating,/area/construction) -"bXe" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/aft) -"bXf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/hallway/primary/aft) -"bXg" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "atmos"; layer = 2.9; name = "atmos blast door"},/turf/open/floor/plating,/area/atmos) -"bXh" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/table,/obj/item/weapon/tank/internals/emergency_oxygen{pixel_x = -8; pixel_y = 0},/obj/item/weapon/tank/internals/emergency_oxygen{pixel_x = -8; pixel_y = 0},/obj/item/clothing/mask/breath{pixel_x = 4; pixel_y = 0},/obj/item/clothing/mask/breath{pixel_x = 4; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/atmos) -"bXi" = (/obj/structure/sign/atmosplaque{pixel_x = 0; pixel_y = -32},/obj/structure/table,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/atmos) -"bXj" = (/obj/machinery/computer/station_alert,/obj/machinery/light{dir = 4; icon_state = "tube1"},/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/atmos) -"bXk" = (/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/device/multitool,/turf/open/floor/plasteel,/area/atmos) -"bXl" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 50},/obj/item/weapon/storage/belt/utility,/obj/item/device/t_scanner,/obj/item/device/t_scanner,/obj/item/device/t_scanner,/turf/open/floor/plasteel,/area/atmos) -"bXm" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50; pixel_x = 2; pixel_y = 2},/turf/open/floor/plasteel,/area/atmos) -"bXn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/atmos) -"bXo" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 6; initialize_directions = 6},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/atmos) -"bXp" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/yellow/visible,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/atmos) -"bXq" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/atmos) -"bXr" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/yellow/visible,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/atmos) -"bXs" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/atmos) -"bXt" = (/obj/machinery/atmospherics/pipe/simple/green/visible,/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/atmos) -"bXu" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/manifold/cyan/visible{dir = 4; initialize_directions = 11},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/atmos) -"bXv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/white,/area/medical/virology) -"bXw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/virology) -"bXx" = (/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) -"bXy" = (/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) -"bXz" = (/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) -"bXA" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/virology) -"bXB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/firealarm{pixel_y = 25},/turf/open/floor/plasteel/white,/area/medical/virology) -"bXC" = (/obj/machinery/power/apc{cell_type = 5000; dir = 1; name = "Virology APC"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/camera{c_tag = "Virology Module"},/turf/open/floor/plasteel/white,/area/medical/virology) -"bXD" = (/obj/machinery/vending/medical,/turf/open/floor/plasteel/white,/area/medical/virology) -"bXE" = (/obj/effect/landmark{name = "revenantspawn"},/turf/open/floor/engine,/area/toxins/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{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/poddoor/preopen{id = "xenobio3"; name = "containment blast door"},/turf/open/floor/engine,/area/toxins/xenobiology) -"bXG" = (/obj/machinery/door/window/northleft{dir = 4; name = "Containment Pen"; req_access_txt = "55"},/turf/open/floor/plasteel/warning{dir = 4},/area/toxins/xenobiology) -"bXH" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"bXI" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Containment Pen"; req_access_txt = "55"},/turf/open/floor/plasteel/warning{dir = 8},/area/toxins/xenobiology) -"bXJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/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/toxins/xenobiology) -"bXK" = (/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; locked = 0; pixel_x = -23; pixel_y = 0},/turf/open/floor/plasteel,/area/toxins/misc_lab) -"bXL" = (/obj/structure/table,/obj/machinery/cell_charger{pixel_y = 5},/obj/item/stack/cable_coil,/obj/item/device/multitool,/obj/item/weapon/stock_parts/cell/high/plus,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel,/area/toxins/misc_lab) -"bXM" = (/turf/open/floor/engine,/area/toxins/misc_lab) -"bXN" = (/obj/machinery/atmospherics/components/binary/valve,/turf/open/floor/engine,/area/toxins/misc_lab) -"bXO" = (/obj/machinery/atmospherics/pipe/simple/general/visible,/turf/open/floor/engine,/area/toxins/misc_lab) -"bXP" = (/obj/item/pipe{dir = 4; icon_state = "mixer"; name = "gas mixer fitting"; pipe_type = 14},/turf/open/floor/engine,/area/toxins/misc_lab) -"bXQ" = (/obj/structure/table,/obj/item/device/assembly/igniter{pixel_x = -5; pixel_y = 3},/obj/item/device/assembly/igniter{pixel_x = 5; pixel_y = -4},/obj/item/device/assembly/igniter{pixel_x = 2; pixel_y = 6},/obj/item/device/assembly/igniter{pixel_x = 2; pixel_y = -1},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/item/device/assembly/timer{pixel_x = -3; pixel_y = 3},/obj/item/device/assembly/timer{pixel_x = -3; pixel_y = 3},/obj/item/device/assembly/timer{pixel_x = -3; pixel_y = 3},/obj/item/device/assembly/timer{pixel_x = -3; pixel_y = 3},/turf/open/floor/engine,/area/toxins/misc_lab) -"bXR" = (/turf/open/floor/plasteel/warning{dir = 10},/area/toxins/misc_lab) -"bXS" = (/turf/open/floor/plasteel/warning{dir = 6},/area/toxins/misc_lab) -"bXT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/toxins/misc_lab) -"bXU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/asmaint2) -"bXV" = (/turf/open/floor/wood{icon_state = "wood-broken5"},/area/maintenance/aft) -"bXW" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/wood,/area/maintenance/aft) -"bXX" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{icon_state = "intact"; dir = 4},/turf/open/floor/wood{icon_state = "wood-broken6"},/area/maintenance/aft) -"bXY" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/general/hidden{icon_state = "intact"; dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"bXZ" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{icon_state = "intact"; dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"bYa" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/general/hidden{icon_state = "intact"; dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) -"bYb" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{icon_state = "connector_map"; dir = 8},/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plating,/area/maintenance/aft) -"bYc" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/aft) -"bYd" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/closed/wall,/area/maintenance/aft) -"bYe" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/maintenance/aft) -"bYf" = (/obj/structure/cable{d1 = 1; d2 = 2; 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/aft) -"bYg" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/closed/wall,/area/maintenance/aft) -"bYh" = (/obj/structure/closet/emcloset,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"bYi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/closed/wall,/area/maintenance/aft) -"bYj" = (/obj/machinery/power/apc{name = "Aft Hall APC"; dir = 8; pixel_x = -25; pixel_y = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/aft) -"bYk" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel,/area/hallway/primary/aft) -"bYl" = (/obj/item/weapon/crowbar,/obj/item/weapon/wrench,/obj/structure/window/reinforced,/turf/open/floor/plasteel/caution{dir = 6},/area/hallway/primary/aft) -"bYm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/atmos) -"bYn" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/atmos) -"bYo" = (/obj/machinery/door/firedoor/heavy,/obj/machinery/door/airlock/glass_atmos{name = "Atmospherics Monitoring"; req_access_txt = "24"},/turf/open/floor/plasteel,/area/atmos) -"bYp" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 6; initialize_directions = 6},/turf/open/floor/plasteel,/area/atmos) -"bYq" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/turf/open/floor/plasteel,/area/atmos) -"bYr" = (/obj/machinery/atmospherics/pipe/manifold/cyan/visible{dir = 4; initialize_directions = 11},/obj/machinery/meter,/turf/open/floor/plasteel,/area/atmos) -"bYs" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible,/obj/machinery/meter,/turf/open/floor/plasteel,/area/atmos) -"bYt" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 6},/obj/machinery/meter,/turf/open/floor/plasteel,/area/atmos) -"bYu" = (/obj/machinery/atmospherics/pipe/manifold/yellow/visible{dir = 1},/turf/open/floor/plasteel,/area/atmos) -"bYv" = (/obj/machinery/atmospherics/pipe/simple/green/visible,/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/open/floor/plasteel,/area/atmos) -"bYw" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "N2O Outlet Pump"; on = 0},/turf/open/floor/plasteel/escape{dir = 5},/area/atmos) -"bYx" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; external_pressure_bound = 0; frequency = 1441; id_tag = "n2o_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/engine/n2o,/area/atmos) -"bYy" = (/turf/open/floor/engine/n2o,/area/atmos) -"bYz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/closed/wall/r_wall,/area/medical/virology) -"bYA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/medical/virology) -"bYB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/closed/wall,/area/medical/virology) -"bYC" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/open/floor/plasteel/white,/area/medical/virology) -"bYD" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/white,/area/medical/virology) -"bYE" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/white,/area/medical/virology) -"bYF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/white,/area/medical/virology) -"bYG" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable,/obj/machinery/door/poddoor/preopen{id = "xenobio3"; name = "containment blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/toxins/xenobiology) -"bYH" = (/obj/structure/table/reinforced,/obj/machinery/button/door{id = "xenobio3"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel/warning{dir = 5},/area/toxins/xenobiology) -"bYI" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"bYJ" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 4},/turf/open/floor/plasteel/warning{dir = 9},/area/toxins/xenobiology) -"bYK" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable,/obj/machinery/door/poddoor/preopen{id = "xenobio8"; name = "containment blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/toxins/xenobiology) -"bYL" = (/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/disposaloutlet{dir = 1},/turf/open/floor/engine,/area/toxins/xenobiology) -"bYM" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/floorgrime,/area/toxins/misc_lab) -"bYN" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 10; pixel_x = 0; initialize_directions = 10},/turf/open/floor/plasteel,/area/toxins/misc_lab) -"bYO" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/table,/obj/item/weapon/hand_labeler,/obj/item/clothing/glasses/science,/obj/item/clothing/glasses/science,/turf/open/floor/plasteel,/area/toxins/misc_lab) -"bYP" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 9},/turf/open/floor/engine,/area/toxins/misc_lab) -"bYQ" = (/obj/structure/table,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/grenade/chem_grenade,/obj/item/weapon/grenade/chem_grenade,/turf/open/floor/engine,/area/toxins/misc_lab) -"bYR" = (/turf/open/floor/plating,/area/toxins/misc_lab) -"bYS" = (/obj/structure/target_stake,/obj/effect/decal/cleanable/cobweb,/turf/open/floor/plating,/area/toxins/misc_lab) -"bYT" = (/obj/structure/lattice/catwalk,/turf/open/space,/area/space/nearstation) -"bYU" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 2},/turf/open/floor/plating/airless,/area/space/nearstation) -"bYV" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating,/area/maintenance/aft) -"bYW" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/aft) -"bYX" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/aft) -"bYY" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/aft) -"bYZ" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-y"; dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plating,/area/maintenance/aft) -"bZa" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"bZb" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plating,/area/maintenance/aft) -"bZc" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"bZd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/power/apc{dir = 1; name = "Construction Area APC"; pixel_y = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/construction) -"bZe" = (/obj/machinery/power/apc{dir = 2; name = "Telecoms Monitoring APC"; pixel_y = -24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/tcommsat/computer) -"bZf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"bZg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/aft) -"bZh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/hallway/primary/aft) -"bZi" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/pump,/turf/open/floor/plasteel/arrival{dir = 8},/area/atmos) -"bZj" = (/obj/machinery/atmospherics/pipe/manifold/cyan/visible{dir = 1},/obj/machinery/meter,/turf/closed/wall/r_wall,/area/atmos) -"bZk" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/caution{dir = 8},/area/atmos) -"bZl" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/atmos) -"bZm" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/turf/open/floor/plasteel/caution{dir = 4},/area/atmos) -"bZn" = (/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/atmos) -"bZo" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Air to External"; on = 1},/turf/open/floor/plasteel,/area/atmos) -"bZp" = (/obj/structure/cable{d1 = 1; d2 = 2; 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/atmos) -"bZq" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 9},/turf/open/floor/plasteel,/area/atmos) -"bZr" = (/obj/item/device/radio/beacon,/turf/open/floor/plasteel,/area/atmos) -"bZs" = (/obj/machinery/atmospherics/components/binary/pump{dir = 0; name = "Air to Port"; on = 0},/turf/open/floor/plasteel,/area/atmos) -"bZt" = (/obj/machinery/atmospherics/components/binary/pump{dir = 0; name = "Mix to Port"; on = 0},/turf/open/floor/plasteel,/area/atmos) -"bZu" = (/obj/machinery/atmospherics/components/binary/pump{dir = 0; name = "Pure to Port"; on = 0},/turf/open/floor/plasteel,/area/atmos) -"bZv" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/open/floor/plasteel,/area/atmos) -"bZw" = (/obj/machinery/atmospherics/pipe/simple/green/visible,/turf/open/floor/plasteel,/area/atmos) -"bZx" = (/obj/machinery/computer/atmos_control/tank{frequency = 1441; input_tag = "n2o_in"; name = "Nitrous Oxide Supply Control"; output_tag = "n2o_out"; sensors = list("n2o_sensor" = "Tank")},/turf/open/floor/plasteel/escape{dir = 4},/area/atmos) -"bZy" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "n2o_sensor"},/turf/open/floor/engine/n2o,/area/atmos) -"bZz" = (/obj/machinery/portable_atmospherics/canister/nitrous_oxide,/turf/open/floor/engine/n2o,/area/atmos) -"bZA" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/engine/n2o,/area/atmos) -"bZB" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/asmaint) -"bZC" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) -"bZD" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/asmaint) -"bZE" = (/obj/machinery/smartfridge/chemistry/virology,/turf/open/floor/plasteel/whitegreen/side{dir = 8},/area/medical/virology) -"bZF" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel/white,/area/medical/virology) -"bZG" = (/obj/machinery/computer/pandemic,/turf/open/floor/plasteel/whitegreen/side{dir = 4},/area/medical/virology) -"bZH" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/medical/virology) -"bZI" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_virology{name = "Isolation A"; req_access_txt = "39"},/turf/open/floor/plasteel/white,/area/medical/virology) -"bZJ" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/medical/virology) -"bZK" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_virology{name = "Isolation B"; req_access_txt = "39"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/virology) -"bZL" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/closed/wall,/area/toxins/xenobiology) -"bZM" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"bZN" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"bZO" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/toxins/misc_lab) -"bZP" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4; initialize_directions = 11},/obj/machinery/meter,/turf/open/floor/plasteel/floorgrime,/area/toxins/misc_lab) -"bZQ" = (/turf/open/floor/plasteel/warning/corner{dir = 8},/area/toxins/misc_lab) -"bZR" = (/turf/open/floor/plasteel/warning{dir = 1},/area/toxins/misc_lab) -"bZS" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 50; pixel_x = 3; pixel_y = 3},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/turf/open/floor/plasteel/warning{dir = 1},/area/toxins/misc_lab) -"bZT" = (/obj/machinery/camera{c_tag = "Testing Firing Range"; dir = 8; network = list("SS13","RD"); pixel_y = -22},/turf/open/floor/plating,/area/toxins/misc_lab) -"bZU" = (/obj/structure/target_stake,/turf/open/floor/plating,/area/toxins/misc_lab) -"bZV" = (/obj/structure/disposaloutlet{dir = 8},/obj/structure/disposalpipe/trunk{dir = 4},/turf/open/floor/plating/airless,/area/space/nearstation) -"bZW" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating/airless,/area/space/nearstation) -"bZX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 5},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating/airless,/area/space/nearstation) -"bZY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating/airless,/area/space/nearstation) -"bZZ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Mix to Space"; on = 1},/turf/open/floor/plating/airless,/area/space/nearstation) -"caa" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/aft) -"cab" = (/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/aft) -"cac" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/reagent_dispensers/fueltank,/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{icon_state = "intact"; dir = 10},/turf/open/floor/plating,/area/maintenance/aft) -"cad" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/sign/deathsposal{pixel_y = 32},/turf/open/floor/plating,/area/maintenance/aft) -"cae" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible,/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/maintenance/aft) -"caf" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible,/turf/open/floor/plating,/area/maintenance/aft) -"cag" = (/obj/effect/decal/cleanable/cobweb2,/obj/machinery/atmospherics/components/unary/portables_connector/visible,/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/plating,/area/maintenance/aft) -"cah" = (/obj/structure/sign/nosmoking_2{pixel_x = -28},/turf/open/floor/plating,/area/maintenance/aft) -"cai" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/aft) -"caj" = (/turf/closed/wall/r_wall,/area/tcommsat/server) -"cak" = (/turf/closed/wall/r_wall,/area/tcommsat/computer) -"cal" = (/obj/structure/rack{dir = 1},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft) -"cam" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/aft) -"can" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 9},/turf/closed/wall/r_wall,/area/atmos) -"cao" = (/obj/machinery/camera{c_tag = "Atmospherics Access"; dir = 4; network = list("SS13")},/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/caution{dir = 8},/area/atmos) -"cap" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel,/area/atmos) -"caq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 6},/turf/open/floor/plasteel,/area/atmos) -"car" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/turf/open/floor/plasteel/caution{dir = 4},/area/atmos) -"cas" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/obj/structure/sign/securearea,/turf/closed/wall,/area/atmos) -"cat" = (/obj/machinery/atmospherics/components/binary/pump{dir = 4; name = "External to Filter"; on = 1},/turf/open/floor/plasteel,/area/atmos) -"cau" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{dir = 4},/turf/open/floor/plasteel,/area/atmos) -"cav" = (/obj/structure/reagent_dispensers/watertank/high,/turf/open/floor/plasteel,/area/atmos) -"caw" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel,/area/atmos) -"cax" = (/obj/structure/rack{dir = 8; layer = 2.9},/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/atmos) -"cay" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 8},/turf/open/floor/plasteel,/area/atmos) -"caz" = (/obj/machinery/atmospherics/pipe/manifold/general/visible,/obj/machinery/meter,/turf/open/floor/plasteel,/area/atmos) -"caA" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel,/area/atmos) -"caB" = (/obj/machinery/atmospherics/components/trinary/filter{dir = 1; filter_type = "n2o"; on = 1},/turf/open/floor/plasteel,/area/atmos) -"caC" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/open/floor/plasteel/escape{dir = 6},/area/atmos) -"caD" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 8; frequency = 1441; id = "n2o_in"; pixel_y = 1},/turf/open/floor/engine/n2o,/area/atmos) -"caE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/asmaint) -"caF" = (/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/device/healthanalyzer,/obj/item/clothing/glasses/hud/health,/turf/open/floor/plasteel/whitegreen/side{dir = 8},/area/medical/virology) -"caG" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/obj/item/device/radio/headset/headset_med,/turf/open/floor/plasteel/whitegreen/side{dir = 4},/area/medical/virology) -"caH" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plating,/area/medical/virology) -"caI" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/white,/area/medical/virology) -"caJ" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/effect/landmark{name = "revenantspawn"},/turf/open/floor/plasteel/white,/area/medical/virology) -"caK" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel/white,/area/medical/virology) -"caL" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/door/poddoor/preopen{id = "xenobio2"; name = "containment blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/toxins/xenobiology) -"caM" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"caN" = (/obj/structure/window/reinforced,/obj/structure/table/reinforced,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/button/door{id = "xenobio7"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/turf/open/floor/plasteel/warning{dir = 10},/area/toxins/xenobiology) -"caO" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "xenobio7"; name = "containment blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/toxins/xenobiology) -"caP" = (/obj/item/device/radio/intercom{pixel_x = -25},/turf/open/floor/plasteel/floorgrime,/area/toxins/misc_lab) -"caQ" = (/obj/machinery/atmospherics/components/binary/pump{dir = 2},/turf/open/floor/plasteel/floorgrime,/area/toxins/misc_lab) -"caR" = (/obj/structure/chair/office/light,/obj/effect/landmark/start{name = "Scientist"},/turf/open/floor/plasteel/floorgrime,/area/toxins/misc_lab) -"caS" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/floorgrime,/area/toxins/misc_lab) -"caT" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel,/area/toxins/misc_lab) -"caU" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plasteel/warning/corner{dir = 2},/area/toxins/misc_lab) -"caV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/turf/open/floor/plating,/area/maintenance/aft) -"caW" = (/turf/open/floor/plasteel/floorgrime,/area/maintenance/aft) -"caX" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 5},/turf/open/floor/plating,/area/maintenance/aft) -"caY" = (/obj/machinery/atmospherics/pipe/manifold4w/general,/obj/machinery/meter,/turf/open/floor/plating,/area/maintenance/aft) -"caZ" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 9},/turf/open/floor/plating,/area/maintenance/aft) -"cba" = (/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cbb" = (/obj/machinery/telecomms/server/presets/engineering,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cbc" = (/obj/machinery/telecomms/bus/preset_four,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cbd" = (/obj/machinery/light{dir = 1},/obj/machinery/power/apc{cell_type = 5000; dir = 1; name = "Telecoms Server APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cbe" = (/obj/machinery/telecomms/processor/preset_three,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cbf" = (/obj/machinery/telecomms/server/presets/security,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cbg" = (/obj/structure/window/reinforced/fulltile,/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plating,/area/tcommsat/computer) -"cbh" = (/obj/structure/table,/turf/open/floor/plasteel/yellow/side{dir = 9},/area/tcommsat/computer) -"cbi" = (/obj/item/device/radio/intercom{dir = 8; freerange = 1; name = "Station Intercom (Telecoms)"; pixel_x = 0; pixel_y = 26},/turf/open/floor/plasteel,/area/tcommsat/computer) -"cbj" = (/obj/machinery/light{dir = 1},/obj/machinery/announcement_system,/turf/open/floor/plasteel,/area/tcommsat/computer) -"cbk" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/structure/disposalpipe/segment,/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/aft) -"cbl" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/scrubber,/turf/open/floor/plasteel/escape{dir = 8},/area/atmos) -"cbm" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{dir = 1},/obj/machinery/meter,/turf/closed/wall/r_wall,/area/atmos) -"cbn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/obj/machinery/door/poddoor/preopen{id = "atmos"; name = "atmos blast door"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/atmos) -"cbo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 9},/obj/machinery/door/poddoor/preopen{id = "atmos"; name = "atmos blast door"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/atmos) -"cbp" = (/turf/closed/wall/r_wall,/area/security/checkpoint/engineering) -"cbq" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -30},/turf/open/floor/plasteel,/area/atmos) -"cbr" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/camera{c_tag = "Atmospherics West"; dir = 8; network = list("SS13")},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel,/area/atmos) -"cbs" = (/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/machinery/atmospherics/components/binary/pump{dir = 0; name = "Air to Port"; on = 0},/obj/machinery/light{dir = 8},/turf/open/floor/plasteel,/area/atmos) -"cbt" = (/obj/machinery/light{dir = 4},/turf/open/floor/plasteel,/area/atmos) -"cbu" = (/obj/structure/door_assembly/door_assembly_mai,/turf/open/floor/plating,/area/maintenance/asmaint) -"cbv" = (/obj/structure/table/glass,/obj/item/device/radio/intercom{pixel_x = -25},/obj/machinery/light{dir = 8},/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/syringes,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whitegreen/side{dir = 8},/area/medical/virology) -"cbw" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel/white,/area/medical/virology) -"cbx" = (/obj/structure/chair/office/light{dir = 4},/obj/effect/landmark/start{name = "Virologist"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/virology) -"cby" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/obj/item/weapon/pen/red,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whitegreen/side{dir = 4},/area/medical/virology) -"cbz" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/window/fulltile,/turf/open/floor/plating,/area/medical/virology) -"cbA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/white,/area/medical/virology) -"cbB" = (/obj/structure/table,/turf/open/floor/plasteel/white,/area/medical/virology) -"cbC" = (/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/white,/area/medical/virology) -"cbD" = (/obj/effect/landmark{name = "revenantspawn"},/mob/living/simple_animal/slime,/turf/open/floor/engine,/area/toxins/xenobiology) -"cbE" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Containment Pen"; req_access_txt = "55"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/poddoor/preopen{id = "xenobio2"; name = "containment blast door"},/turf/open/floor/engine,/area/toxins/xenobiology) -"cbF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/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/toxins/xenobiology) -"cbG" = (/obj/structure/filingcabinet/chestdrawer,/turf/open/floor/plasteel/floorgrime,/area/toxins/misc_lab) -"cbH" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/general/visible,/obj/machinery/button/ignition{id = "testigniter"; pixel_x = -6; pixel_y = 2},/obj/machinery/button/door{id = "testlab"; name = "Test Chamber Blast Doors"; pixel_x = 4; pixel_y = 2; req_access_txt = "55"},/turf/open/floor/plasteel/floorgrime,/area/toxins/misc_lab) -"cbI" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/weapon/folder/white,/obj/item/weapon/pen,/obj/item/device/taperecorder{pixel_y = 0},/turf/open/floor/plasteel/floorgrime,/area/toxins/misc_lab) -"cbJ" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 0; pixel_y = 6},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/floorgrime,/area/toxins/misc_lab) -"cbK" = (/obj/structure/rack,/obj/item/weapon/wrench,/obj/item/weapon/crowbar,/obj/machinery/computer/security/telescreen{name = "Test Chamber Moniter"; network = list("Test"); pixel_x = 0; pixel_y = -30},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/floorgrime,/area/toxins/misc_lab) -"cbL" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/droneDispenser,/turf/open/floor/plasteel,/area/toxins/misc_lab) -"cbM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/toxins/misc_lab) -"cbN" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/toxins/misc_lab) -"cbO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/warning{dir = 4},/area/toxins/misc_lab) -"cbP" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/recharger{pixel_y = 4},/obj/item/weapon/paper/range,/turf/open/floor/plating/warnplate{dir = 6},/area/toxins/misc_lab) -"cbQ" = (/obj/structure/table/reinforced,/obj/machinery/magnetic_controller{autolink = 1},/obj/structure/window/reinforced{dir = 1},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plating/warnplate{dir = 10},/area/toxins/misc_lab) -"cbR" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/window/reinforced/tinted/fulltile,/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/asmaint2) -"cbS" = (/obj/machinery/door/airlock/external{name = "External Access"; req_access = null; req_access_txt = "13"},/turf/open/floor/plating,/area/maintenance/aft) -"cbT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/turf/open/floor/plasteel/floorgrime,/area/maintenance/aft) -"cbU" = (/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/aft) -"cbV" = (/obj/machinery/atmospherics/pipe/simple/general/visible,/turf/open/floor/plasteel/floorgrime,/area/maintenance/aft) -"cbW" = (/obj/machinery/telecomms/server/presets/common,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cbX" = (/obj/machinery/telecomms/processor/preset_four,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cbY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cbZ" = (/obj/machinery/telecomms/bus/preset_three,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cca" = (/obj/machinery/telecomms/server/presets/command,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"ccb" = (/obj/structure/window/reinforced/fulltile,/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/turf/open/floor/plating,/area/tcommsat/computer) -"ccc" = (/obj/machinery/computer/message_monitor,/turf/open/floor/plasteel/yellow/side{dir = 8},/area/tcommsat/computer) -"ccd" = (/obj/structure/chair/office/dark{dir = 8},/turf/open/floor/plasteel,/area/tcommsat/computer) -"cce" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel,/area/tcommsat/computer) -"ccf" = (/obj/structure/table,/obj/item/weapon/paper_bin,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel,/area/tcommsat/computer) -"ccg" = (/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/atmos) -"cch" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 9},/turf/closed/wall/r_wall,/area/atmos) -"cci" = (/obj/machinery/door/firedoor/heavy,/obj/machinery/door/airlock/atmos{name = "Atmospherics"; req_access_txt = "24"},/turf/open/floor/plasteel,/area/atmos) -"ccj" = (/obj/structure/sign/securearea,/turf/closed/wall/r_wall,/area/atmos) -"cck" = (/obj/machinery/power/apc{dir = 8; name = "Engineering Security APC"; pixel_x = -24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/newscaster{pixel_y = 32},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/red/side{dir = 9},/area/security/checkpoint/engineering) -"ccl" = (/obj/machinery/requests_console{department = "Security"; departmentType = 5; pixel_y = 30},/obj/structure/closet,/turf/open/floor/plasteel/red/side{dir = 1},/area/security/checkpoint/engineering) -"ccm" = (/obj/structure/filingcabinet,/obj/machinery/airalarm{pixel_y = 23},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/checkpoint/engineering) -"ccn" = (/obj/structure/fireaxecabinet{pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel,/area/atmos) -"cco" = (/obj/structure/closet/secure_closet/atmospherics,/turf/open/floor/plasteel/warning{dir = 8},/area/atmos) -"ccp" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/canister,/turf/open/floor/plasteel/bot{dir = 2},/area/atmos) -"ccq" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 8},/turf/open/floor/plasteel/bot{dir = 2},/area/atmos) -"ccr" = (/obj/machinery/atmospherics/pipe/manifold/yellow/visible{dir = 8},/turf/open/floor/plasteel,/area/atmos) -"ccs" = (/obj/machinery/camera{c_tag = "Atmospherics East"; dir = 8; network = list("SS13")},/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Plasma Outlet Pump"; on = 0},/turf/open/floor/plasteel/warning{dir = 5},/area/atmos) -"cct" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; external_pressure_bound = 0; frequency = 1441; id_tag = "tox_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/engine/plasma,/area/atmos) -"ccu" = (/turf/open/floor/engine/plasma,/area/atmos) -"ccv" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/engine/plasma,/area/atmos) -"ccw" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating,/area/maintenance/asmaint) -"ccx" = (/obj/structure/closet/crate,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/asmaint) -"ccy" = (/obj/structure/table/glass,/obj/structure/reagent_dispensers/virusfood{density = 0; pixel_x = -30},/obj/item/weapon/book/manual/wiki/infections{pixel_y = 7},/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/spray/cleaner,/turf/open/floor/plasteel/whitegreen/side{dir = 8},/area/medical/virology) -"ccz" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/virology) -"ccA" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plasteel/white,/area/medical/virology) -"ccB" = (/obj/machinery/disposal/bin,/obj/structure/sign/deathsposal{pixel_x = 0; pixel_y = -32},/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plasteel/whitegreen/side{dir = 4},/area/medical/virology) -"ccC" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/medical/virology) -"ccD" = (/obj/structure/closet/secure_closet/personal/patient,/turf/open/floor/plasteel/white,/area/medical/virology) -"ccE" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/poddoor/preopen{id = "xenobio2"; name = "containment blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/toxins/xenobiology) -"ccF" = (/obj/structure/table/reinforced,/obj/machinery/button/door{id = "xenobio2"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel/warning{dir = 5},/area/toxins/xenobiology) -"ccG" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable,/obj/machinery/door/poddoor/preopen{id = "xenobio7"; name = "containment blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/toxins/xenobiology) -"ccH" = (/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "testlab"; name = "test chamber blast door"},/obj/machinery/atmospherics/pipe/simple/general/visible,/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/toxins/misc_lab) -"ccI" = (/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "testlab"; name = "test chamber blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/toxins/misc_lab) -"ccJ" = (/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "testlab"; name = "test chamber blast door"},/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/engine,/area/toxins/misc_lab) -"ccK" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel/bot{dir = 2},/area/toxins/misc_lab) -"ccL" = (/obj/structure/reagent_dispensers/watertank,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/bot{dir = 2},/area/toxins/misc_lab) -"ccM" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel,/area/toxins/misc_lab) -"ccN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/warning{dir = 4},/area/toxins/misc_lab) -"ccO" = (/obj/machinery/door/airlock/glass_research{name = "Firing Range"; req_access_txt = "47"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/toxins/misc_lab) -"ccP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/warning/corner{dir = 8},/area/toxins/misc_lab) -"ccQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 1},/area/toxins/misc_lab) -"ccR" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/warning/corner{dir = 4},/area/toxins/misc_lab) -"ccS" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/asmaint2) -"ccT" = (/obj/structure/closet/crate,/obj/item/clothing/under/color/lightpurple,/obj/item/stack/spacecash/c200,/turf/open/floor/plating,/area/maintenance/asmaint2) -"ccU" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = -32; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/aft) -"ccV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 5},/turf/open/floor/plating,/area/maintenance/aft) -"ccW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/maintenance/aft) -"ccX" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Mix to Space"; on = 0},/turf/open/floor/plasteel/floorgrime,/area/maintenance/aft) -"ccY" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel/floorgrime,/area/maintenance/aft) -"ccZ" = (/obj/machinery/door/airlock/maintenance{name = "Incinerator Access"; req_access_txt = "12"},/obj/structure/barricade/wooden{name = "wooden barricade (CLOSED)"},/turf/open/floor/plating,/area/maintenance/aft) -"cda" = (/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cdb" = (/obj/machinery/blackbox_recorder,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cdc" = (/obj/machinery/telecomms/broadcaster/preset_right,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cdd" = (/obj/machinery/telecomms/receiver/preset_right,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cde" = (/obj/machinery/computer/telecomms/server{network = "tcommsat"},/turf/open/floor/plasteel/yellow/side{dir = 10},/area/tcommsat/computer) -"cdf" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/tcommsat/computer) -"cdg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel,/area/tcommsat/computer) -"cdh" = (/obj/structure/table,/obj/item/weapon/folder/blue,/obj/item/weapon/pen/blue,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/tcommsat/computer) -"cdi" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel/yellow/corner{dir = 2},/area/hallway/primary/aft) -"cdj" = (/turf/closed/wall,/area/engine/break_room) -"cdk" = (/turf/open/floor/plasteel/caution{dir = 9},/area/engine/break_room) -"cdl" = (/turf/open/floor/plasteel/caution{dir = 1},/area/engine/break_room) -"cdm" = (/turf/open/floor/plasteel/caution{dir = 5},/area/engine/break_room) -"cdn" = (/turf/closed/wall,/area/security/checkpoint/engineering) -"cdo" = (/obj/item/weapon/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{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/item/device/radio/off,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/red/side{dir = 8},/area/security/checkpoint/engineering) -"cdp" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/security/checkpoint/engineering) -"cdq" = (/obj/machinery/camera{c_tag = "Security Post - Engineering"; dir = 8; network = list("SS13")},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/checkpoint/engineering) -"cdr" = (/obj/machinery/suit_storage_unit/atmos,/turf/open/floor/plasteel/warning{dir = 8},/area/atmos) -"cds" = (/obj/structure/sign/nosmoking_2,/turf/closed/wall,/area/atmos) -"cdt" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4; initialize_directions = 11},/obj/machinery/meter,/turf/open/floor/plasteel,/area/atmos) -"cdu" = (/obj/machinery/computer/atmos_control/tank{frequency = 1441; input_tag = "tox_in"; name = "Plasma Supply Control"; output_tag = "tox_out"; sensors = list("tox_sensor" = "Tank")},/turf/open/floor/plasteel/warning{dir = 4},/area/atmos) -"cdv" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "tox_sensor"},/turf/open/floor/engine/plasma,/area/atmos) -"cdw" = (/obj/machinery/portable_atmospherics/canister/toxins,/turf/open/floor/engine/plasma,/area/atmos) -"cdx" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/engine/plasma,/area/atmos) -"cdy" = (/obj/structure/closet/l3closet/virology,/turf/open/floor/plasteel/whitegreen/side{dir = 2},/area/medical/virology) -"cdz" = (/obj/structure/closet/secure_closet/medical1,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/whitegreen/side{dir = 2},/area/medical/virology) -"cdA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall/r_wall,/area/medical/virology) -"cdB" = (/obj/structure/sink{icon_state = "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/toxins/xenobiology) -"cdC" = (/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"cdD" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 1; unacidable = 1},/turf/open/floor/engine,/area/toxins/misc_lab) -"cdE" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/engine,/area/toxins/misc_lab) -"cdF" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/toxins/misc_lab) -"cdG" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plasteel/warning{dir = 4},/area/toxins/misc_lab) -"cdH" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/toxins/misc_lab) -"cdI" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/toxins/misc_lab) -"cdJ" = (/obj/structure/rack,/obj/item/weapon/gun/energy/laser/practice,/obj/item/clothing/ears/earmuffs,/turf/open/floor/plasteel,/area/toxins/misc_lab) -"cdK" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/canister,/turf/open/floor/plating,/area/maintenance/aft) -"cdL" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"cdM" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Mix to Port"; on = 0},/obj/machinery/light/small,/turf/open/floor/plating,/area/maintenance/aft) -"cdN" = (/obj/item/stack/tile/plasteel,/turf/open/space,/area/space/nearstation) -"cdO" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cdP" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cdQ" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cdR" = (/obj/structure/window/reinforced/fulltile,/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plating,/area/tcommsat/computer) -"cdS" = (/obj/structure/window/reinforced/fulltile,/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable,/turf/open/floor/plating,/area/tcommsat/computer) -"cdT" = (/obj/machinery/status_display,/turf/closed/wall,/area/tcommsat/computer) -"cdU" = (/obj/structure/window/reinforced/fulltile,/obj/structure/grille,/turf/open/floor/plating,/area/tcommsat/computer) -"cdV" = (/obj/machinery/door/airlock/glass_command{name = "Control Room"; req_access_txt = "19; 61"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/tcommsat/computer) -"cdW" = (/obj/structure/window/reinforced/fulltile,/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/tcommsat/computer) -"cdX" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/aft) -"cdY" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/hallway/primary/aft) -"cdZ" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/yellow/corner{dir = 2},/area/hallway/primary/aft) -"cea" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/obj/machinery/light{dir = 8},/turf/open/floor/plasteel,/area/engine/break_room) -"ceb" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel,/area/engine/break_room) -"cec" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel,/area/engine/break_room) -"ced" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/break_room) -"cee" = (/obj/machinery/door/airlock/glass_security{name = "Security Office"; req_access_txt = "63"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/checkpoint/engineering) -"cef" = (/obj/structure/cable{d1 = 1; d2 = 8; 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) -"ceg" = (/obj/structure/chair/office/dark,/obj/effect/landmark/start/depsec/engineering,/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/security/checkpoint/engineering) -"ceh" = (/obj/machinery/computer/secure_data,/obj/machinery/light_switch{pixel_x = 27},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/checkpoint/engineering) -"cei" = (/obj/machinery/power/apc{dir = 8; name = "Atmospherics APC"; pixel_x = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel,/area/atmos) -"cej" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/atmos) -"cek" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4; initialize_directions = 11},/obj/item/weapon/wrench,/turf/open/floor/plasteel,/area/atmos) -"cel" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 8},/obj/machinery/meter,/turf/open/floor/plasteel,/area/atmos) -"cem" = (/obj/machinery/atmospherics/components/trinary/filter{dir = 1; filter_type = "plasma"; on = 1},/turf/open/floor/plasteel,/area/atmos) -"cen" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/open/floor/plasteel/warning{dir = 6},/area/atmos) -"ceo" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 8; frequency = 1441; id = "tox_in"; pixel_y = 1},/turf/open/floor/engine/plasma,/area/atmos) -"cep" = (/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/asmaint) -"ceq" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plating,/area/maintenance/asmaint) -"cer" = (/obj/effect/decal/cleanable/cobweb2,/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plating,/area/maintenance/asmaint) -"ces" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/closed/wall/r_wall,/area/medical/virology) -"cet" = (/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/obj/item/weapon/wrench,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plating/warnplate{dir = 9},/area/maintenance/asmaint) -"ceu" = (/obj/machinery/atmospherics/components/binary/valve/open{icon_state = "mvalve_map"; dir = 4},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/asmaint) -"cev" = (/obj/machinery/atmospherics/components/unary/tank/air{dir = 8},/turf/open/floor/plating/warnplate{dir = 5},/area/maintenance/asmaint) -"cew" = (/obj/structure/closet/emcloset,/obj/effect/decal/cleanable/cobweb,/turf/open/floor/plating,/area/maintenance/asmaint) -"cex" = (/obj/structure/rack{dir = 1},/obj/machinery/light/small{dir = 1},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/asmaint) -"cey" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/door/poddoor/preopen{id = "xenobio1"; name = "containment blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/toxins/xenobiology) -"cez" = (/obj/structure/window/reinforced,/obj/structure/table/reinforced,/obj/machinery/button/door{id = "xenobio6"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/warning{dir = 10},/area/toxins/xenobiology) -"ceA" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "xenobio6"; name = "containment blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/toxins/xenobiology) -"ceB" = (/obj/item/device/radio/intercom{pixel_x = -25},/turf/open/floor/engine,/area/toxins/misc_lab) -"ceC" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/toxins/misc_lab) -"ceD" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/warning/corner{dir = 1},/area/toxins/misc_lab) -"ceE" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/warning/corner{dir = 8},/area/toxins/misc_lab) -"ceF" = (/obj/structure/table,/obj/item/device/flashlight/lamp,/turf/open/floor/plating,/area/maintenance/asmaint2) -"ceG" = (/obj/structure/chair/stool,/turf/open/floor/plating,/area/maintenance/asmaint2) -"ceH" = (/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/asmaint2) -"ceI" = (/obj/item/weapon/weldingtool,/turf/open/floor/plating/airless,/area/space/nearstation) -"ceJ" = (/obj/machinery/power/terminal{dir = 4},/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"ceK" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"ceL" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"ceM" = (/obj/machinery/telecomms/hub/preset,/turf/open/floor/plasteel/vault{dir = 8; name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"ceN" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"ceO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"ceP" = (/obj/machinery/door/airlock/glass_engineering{name = "Server Room"; req_access_txt = "61"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/vault{dir = 5},/area/tcommsat/computer) -"ceQ" = (/turf/open/floor/plasteel/vault{dir = 5},/area/tcommsat/computer) -"ceR" = (/obj/machinery/door/airlock/glass_engineering{name = "Server Room"; req_access_txt = "61"},/turf/open/floor/plasteel/vault{dir = 5},/area/tcommsat/computer) -"ceS" = (/turf/open/floor/plasteel/warning{dir = 8},/area/tcommsat/computer) -"ceT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/tcommsat/computer) -"ceU" = (/obj/structure/closet/emcloset,/obj/machinery/camera{c_tag = "Telecoms Monitoring"; dir = 8; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/tcommsat/computer) -"ceV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/aft) -"ceW" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"ceX" = (/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) -"ceY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/hallway/primary/aft) -"ceZ" = (/turf/open/floor/plasteel/yellow/corner{dir = 2},/area/hallway/primary/aft) -"cfa" = (/obj/structure/table,/obj/item/clothing/glasses/meson,/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/open/floor/plasteel,/area/engine/break_room) -"cfb" = (/turf/open/floor/plasteel,/area/engine/break_room) -"cfc" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/engine/break_room) -"cfd" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel,/area/engine/break_room) -"cfe" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/security/checkpoint/engineering) -"cff" = (/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) -"cfg" = (/obj/structure/table,/obj/item/weapon/book/manual/wiki/security_space_law,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/red/side,/area/security/checkpoint/engineering) -"cfh" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/structure/reagent_dispensers/peppertank{pixel_x = 30; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/side{dir = 6},/area/security/checkpoint/engineering) -"cfi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/security/checkpoint/engineering) -"cfj" = (/obj/machinery/requests_console{department = "Atmospherics"; departmentType = 4; name = "Atmos RC"; pixel_x = 30; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel,/area/atmos) -"cfk" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/camera{c_tag = "Atmospherics Central"; dir = 4; network = list("SS13")},/obj/machinery/atmospherics/components/binary/pump{dir = 0; name = "Port to Filter"; on = 0},/turf/open/floor/plasteel,/area/atmos) -"cfl" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 8},/obj/structure/chair/stool,/turf/open/floor/plasteel,/area/atmos) -"cfm" = (/obj/machinery/atmospherics/components/unary/thermomachine/heater{dir = 8},/turf/open/floor/plasteel,/area/atmos) -"cfn" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/yellow/visible{icon_state = "intact"; dir = 5},/turf/open/space,/area/space/nearstation) -"cfo" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) -"cfp" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) -"cfq" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/yellow/visible{icon_state = "intact"; dir = 10},/turf/open/floor/plating,/area/maintenance/asmaint) -"cfr" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/asmaint) -"cfs" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plating,/area/maintenance/asmaint) -"cft" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; 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/asmaint) -"cfu" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/asmaint) -"cfv" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) -"cfw" = (/obj/structure/chair/stool{pixel_y = 8},/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating/warnplate{dir = 10},/area/maintenance/asmaint) -"cfx" = (/obj/machinery/atmospherics/components/binary/valve{dir = 4},/turf/open/floor/plating/warnplate{dir = 2},/area/maintenance/asmaint) -"cfy" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 8},/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plating/warnplate{dir = 6},/area/maintenance/asmaint) -"cfz" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/asmaint) -"cfA" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) -"cfB" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Containment Pen"; req_access_txt = "55"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/poddoor/preopen{id = "xenobio1"; name = "containment blast door"},/turf/open/floor/engine,/area/toxins/xenobiology) -"cfC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/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/toxins/xenobiology) -"cfD" = (/obj/machinery/sparker{id = "testigniter"; pixel_x = -25},/turf/open/floor/engine,/area/toxins/misc_lab) -"cfE" = (/obj/item/device/radio/beacon,/turf/open/floor/engine,/area/toxins/misc_lab) -"cfF" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/engine,/area/toxins/misc_lab) -"cfG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/engine,/area/toxins/misc_lab) -"cfH" = (/obj/machinery/door/poddoor/preopen{id = "testlab"; name = "test chamber blast door"},/obj/machinery/door/airlock/glass_research{name = "Test Chamber"; req_access_txt = "47"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/engine,/area/toxins/misc_lab) -"cfI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/delivery{name = "floor"},/area/toxins/misc_lab) -"cfJ" = (/obj/machinery/door/airlock/glass_research{name = "Test Chamber"; req_access_txt = "47"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/delivery{name = "floor"},/area/toxins/misc_lab) -"cfK" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 8},/area/toxins/misc_lab) -"cfL" = (/obj/machinery/power/apc{dir = 4; name = "Testing Lab APC"; pixel_x = 26; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/floorgrime,/area/toxins/misc_lab) -"cfM" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel,/area/toxins/misc_lab) -"cfN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/asmaint2) -"cfO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/asmaint2) -"cfP" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/turf/open/floor/plating,/area/maintenance/asmaint2) -"cfQ" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/weapon/folder/white,/obj/item/weapon/pen,/turf/open/floor/plating,/area/maintenance/asmaint2) -"cfR" = (/obj/structure/closet/secure_closet/freezer/kitchen/maintenance,/turf/open/floor/plating,/area/maintenance/aft) -"cfS" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/maintenance/aft) -"cfT" = (/obj/item/stack/sheet/metal,/turf/open/floor/plating/airless,/area/space/nearstation) -"cfU" = (/obj/item/stack/cable_coil{amount = 5},/turf/open/floor/plating/airless,/area/space/nearstation) -"cfV" = (/obj/machinery/camera{c_tag = "Telecoms Server Room"; dir = 4; network = list("SS13")},/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cfW" = (/obj/structure/window/reinforced/fulltile,/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable,/turf/open/floor/plating,/area/tcommsat/computer) -"cfX" = (/obj/structure/window/reinforced/fulltile,/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/tcommsat/computer) -"cfY" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'SERVER ROOM'."; name = "SERVER ROOM"; pixel_y = 0},/turf/closed/wall,/area/tcommsat/computer) -"cfZ" = (/turf/open/floor/plasteel,/area/tcommsat/computer) -"cga" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/tcommsat/computer) -"cgb" = (/obj/machinery/requests_console{announcementConsole = 1; department = "Telecoms Admin"; departmentType = 5; name = "Telecoms RC"; pixel_x = 30; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/tcommsat/computer) -"cgc" = (/obj/structure/disposalpipe/sortjunction{dir = 2; icon_state = "pipe-j2s"; sortType = 5},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/aft) -"cgd" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/hallway/primary/aft) -"cge" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/camera{c_tag = "Aft Primary Hallway 1"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = -22},/turf/open/floor/plasteel/yellow/corner{dir = 2},/area/hallway/primary/aft) -"cgf" = (/obj/machinery/power/apc{dir = 8; name = "Engineering Foyer APC"; pixel_x = -24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plasteel,/area/engine/break_room) -"cgg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/engine/break_room) -"cgh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/engine/break_room) -"cgi" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/checkpoint/engineering) -"cgj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/turf/open/floor/plasteel,/area/atmos) -"cgk" = (/obj/structure/closet/wardrobe/atmospherics_yellow,/turf/open/floor/plasteel,/area/atmos) -"cgl" = (/obj/machinery/space_heater,/turf/open/floor/plasteel/warning{dir = 10},/area/atmos) -"cgm" = (/obj/machinery/space_heater,/turf/open/floor/plasteel/warning{dir = 6},/area/atmos) -"cgn" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{dir = 8},/turf/open/floor/plasteel,/area/atmos) -"cgo" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Port to Filter"; on = 0},/turf/open/floor/plasteel,/area/atmos) -"cgp" = (/obj/machinery/atmospherics/pipe/manifold/general/visible,/obj/item/weapon/cigbutt,/turf/open/floor/plasteel,/area/atmos) -"cgq" = (/obj/machinery/atmospherics/components/unary/thermomachine/freezer{dir = 8},/turf/open/floor/plasteel,/area/atmos) -"cgr" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "CO2 Outlet Pump"; on = 0},/turf/open/floor/plasteel/yellow/side{dir = 5},/area/atmos) -"cgs" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; external_pressure_bound = 0; frequency = 1441; id_tag = "co2_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/engine/co2,/area/atmos) -"cgt" = (/turf/open/floor/engine/co2,/area/atmos) -"cgu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/open/floor/plating,/area/maintenance/asmaint) -"cgv" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) -"cgw" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) -"cgx" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) -"cgy" = (/obj/machinery/door/airlock/atmos{name = "Atmospherics Maintenance"; req_access_txt = "12;24"},/turf/open/floor/plating,/area/maintenance/asmaint) -"cgz" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/asmaint) -"cgA" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) -"cgB" = (/obj/structure/grille,/obj/structure/cable,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/poddoor/preopen{id = "xenobio1"; name = "containment blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/toxins/xenobiology) -"cgC" = (/obj/structure/table/reinforced,/obj/machinery/button/door{id = "xenobio1"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/light,/turf/open/floor/plasteel/warning{dir = 5},/area/toxins/xenobiology) -"cgD" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"cgE" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable,/obj/machinery/door/poddoor/preopen{id = "xenobio6"; name = "containment blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/toxins/xenobiology) -"cgF" = (/obj/machinery/camera{c_tag = "Testing Chamber"; dir = 1; network = list("Test","RD"); pixel_x = 0},/obj/machinery/light,/turf/open/floor/engine,/area/toxins/misc_lab) -"cgG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/warning/corner{dir = 4},/area/toxins/misc_lab) -"cgH" = (/obj/machinery/camera{c_tag = "Testing Lab South"; dir = 8; network = list("SS13","RD"); pixel_y = -22},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/toxins/misc_lab) -"cgI" = (/obj/structure/closet/crate,/obj/item/target,/obj/item/target,/obj/item/target,/turf/open/floor/plasteel,/area/toxins/misc_lab) -"cgJ" = (/obj/structure/closet/crate,/obj/item/target/syndicate,/obj/item/target/alien,/obj/item/target/clown,/turf/open/floor/plasteel,/area/toxins/misc_lab) -"cgK" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/solar{id = "portsolar"; name = "Port Solar Array"},/turf/open/floor/plasteel/airless/solarpanel,/area/solar/port) -"cgL" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port) -"cgM" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/solar{id = "portsolar"; name = "Port Solar Array"},/turf/open/floor/plasteel/airless/solarpanel,/area/solar/port) -"cgN" = (/obj/structure/table,/obj/machinery/microwave,/turf/open/floor/plating,/area/maintenance/aft) -"cgO" = (/obj/structure/sink/kitchen{dir = 8; pixel_x = 11},/turf/open/floor/plating,/area/maintenance/aft) -"cgP" = (/obj/item/clothing/head/hardhat,/turf/open/floor/plating/airless,/area/space/nearstation) -"cgQ" = (/obj/machinery/message_server,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cgR" = (/obj/machinery/telecomms/broadcaster/preset_left,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cgS" = (/obj/machinery/telecomms/receiver/preset_left,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cgT" = (/obj/structure/table,/obj/item/device/multitool,/turf/open/floor/plasteel/yellow/side{dir = 9},/area/tcommsat/computer) -"cgU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/tcommsat/computer) -"cgV" = (/obj/machinery/light_switch{pixel_x = 27},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel,/area/tcommsat/computer) -"cgW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall/r_wall,/area/tcommsat/computer) -"cgX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/yellow/side{dir = 9},/area/hallway/primary/aft) -"cgY" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/hallway/primary/aft) -"cgZ" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/yellow/corner{dir = 1},/area/hallway/primary/aft) -"cha" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/aft) -"chb" = (/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) -"chc" = (/obj/item/device/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) -"chd" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/engine/break_room) -"che" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/break_room) -"chf" = (/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel,/area/engine/break_room) -"chg" = (/obj/structure/cable{d1 = 1; d2 = 2; 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) -"chh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/break_room) -"chi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/engine/break_room) -"chj" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel,/area/engine/break_room) -"chk" = (/obj/machinery/vending/snack,/turf/open/floor/plasteel,/area/engine/break_room) -"chl" = (/turf/closed/wall/r_wall,/area/engine/engineering) -"chm" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/plasteel,/area/atmos) -"chn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 5},/turf/open/floor/plasteel,/area/atmos) -"cho" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{dir = 1},/obj/machinery/meter,/turf/open/floor/plasteel,/area/atmos) -"chp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 9},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/atmos) -"chq" = (/obj/machinery/atmospherics/components/binary/pump{dir = 4; name = "N2 to Pure"; on = 0},/turf/open/floor/plasteel,/area/atmos) -"chr" = (/obj/machinery/computer/atmos_control/tank{frequency = 1441; input_tag = "co2_in"; name = "Carbon Dioxide Supply Control"; output_tag = "co2_out"; sensors = list("co2_sensor" = "Tank")},/turf/open/floor/plasteel/yellow/side{dir = 4},/area/atmos) -"chs" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "co2_sensor"},/turf/open/floor/engine/co2,/area/atmos) -"cht" = (/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/turf/open/floor/engine/co2,/area/atmos) -"chu" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/engine/co2,/area/atmos) -"chv" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/open/floor/plating,/area/maintenance/asmaint) -"chw" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/maintenance/asmaint) -"chx" = (/obj/structure/sign/nosmoking_2{pixel_x = 0; pixel_y = 28},/turf/open/floor/plating,/area/maintenance/asmaint) -"chy" = (/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/asmaint) -"chz" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/asmaint) -"chA" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) -"chB" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) -"chC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/asmaint) -"chD" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) -"chE" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plating,/area/maintenance/asmaint) -"chF" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/asmaint) -"chG" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/asmaint2) -"chH" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"chI" = (/obj/structure/rack,/obj/item/clothing/shoes/winterboots,/obj/item/clothing/suit/hooded/wintercoat,/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"chJ" = (/obj/machinery/portable_atmospherics/pump,/turf/open/floor/plasteel/bot{dir = 2},/area/toxins/misc_lab) -"chK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/toxins/misc_lab) -"chL" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/floorgrime,/area/toxins/misc_lab) -"chM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/maintenance/asmaint2) -"chN" = (/obj/structure/table,/obj/effect/decal/cleanable/cobweb,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/asmaint2) -"chO" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/asmaint2) -"chP" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port) -"chQ" = (/obj/structure/table,/obj/item/weapon/kitchen/rollingpin,/obj/item/weapon/reagent_containers/food/condiment/enzyme,/obj/item/weapon/reagent_containers/food/condiment/sugar,/turf/open/floor/plating,/area/maintenance/aft) -"chR" = (/obj/structure/chair/stool,/turf/open/floor/plating,/area/maintenance/aft) -"chS" = (/obj/machinery/light/small{dir = 1},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft) -"chT" = (/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plating,/area/maintenance/aft) -"chU" = (/obj/machinery/telecomms/server/presets/supply,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"chV" = (/obj/machinery/telecomms/bus/preset_two,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"chW" = (/obj/machinery/telecomms/processor/preset_one,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"chX" = (/obj/machinery/telecomms/server/presets/medical,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"chY" = (/obj/machinery/computer/telecomms/monitor{network = "tcommsat"},/turf/open/floor/plasteel/yellow/side{dir = 8},/area/tcommsat/computer) -"chZ" = (/obj/structure/chair/office/dark{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel,/area/tcommsat/computer) -"cia" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel,/area/tcommsat/computer) -"cib" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/tcommsat/computer) -"cic" = (/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) -"cid" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/yellow/side{dir = 8},/area/hallway/primary/aft) -"cie" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/aft) -"cif" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/aft) -"cig" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=AIE"; location = "AftH"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/aft) -"cih" = (/obj/structure/cable{d1 = 4; d2 = 8; 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) -"cii" = (/obj/structure/cable{d1 = 4; d2 = 8; 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) -"cij" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "32"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/break_room) -"cik" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/break_room) -"cil" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/break_room) -"cim" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,/turf/open/floor/plasteel,/area/engine/break_room) -"cin" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/break_room) -"cio" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/break_room) -"cip" = (/obj/machinery/vending/cigarette{pixel_x = 0; pixel_y = 0},/turf/open/floor/plasteel,/area/engine/break_room) -"ciq" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/open/floor/plasteel,/area/atmos) -"cir" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/obj/machinery/meter,/turf/open/floor/plasteel,/area/atmos) -"cis" = (/obj/machinery/atmospherics/pipe/manifold/cyan/visible,/turf/open/floor/plasteel,/area/atmos) -"cit" = (/obj/machinery/atmospherics/components/trinary/mixer{dir = 4; node1_concentration = 0.8; node2_concentration = 0.2; on = 1; pixel_x = 0; pixel_y = 0; target_pressure = 4500},/turf/open/floor/plasteel,/area/atmos) -"ciu" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "O2 to Pure"; on = 0},/turf/open/floor/plasteel,/area/atmos) -"civ" = (/obj/machinery/atmospherics/components/trinary/filter{dir = 1; filter_type = "co2"; on = 1},/turf/open/floor/plasteel,/area/atmos) -"ciw" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/open/floor/plasteel/yellow/side{dir = 6},/area/atmos) -"cix" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 8; frequency = 1441; id = "co2_in"; pixel_y = 1},/turf/open/floor/engine/co2,/area/atmos) -"ciy" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/open/floor/plating,/area/maintenance/asmaint) -"ciz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/asmaint) -"ciA" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) -"ciB" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plating,/area/maintenance/asmaint) -"ciC" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) -"ciD" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/asmaint) -"ciE" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) -"ciF" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/asmaint) -"ciG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/mob/living/simple_animal/mouse,/turf/open/floor/plating,/area/maintenance/asmaint) -"ciH" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) -"ciI" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/asmaint) -"ciJ" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/asmaint2) -"ciK" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; external_pressure_bound = 140; on = 1; pressure_checks = 0},/obj/machinery/camera{c_tag = "Xenobiology Kill Room"; dir = 4; network = list("SS13","RD")},/turf/open/floor/bluegrid{name = "Killroom Floor"; initial_gas_mix = "n2=500;TEMP=80"},/area/toxins/xenobiology) -"ciL" = (/turf/open/floor/bluegrid{name = "Killroom Floor"; initial_gas_mix = "n2=500;TEMP=80"},/area/toxins/xenobiology) -"ciM" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; external_pressure_bound = 120; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/bluegrid{name = "Killroom Floor"; initial_gas_mix = "n2=500;TEMP=80"},/area/toxins/xenobiology) -"ciN" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/sign/biohazard,/turf/open/floor/plating,/area/toxins/xenobiology) -"ciO" = (/obj/machinery/atmospherics/components/unary/thermomachine/freezer{target_temperature = 80; dir = 2; on = 1},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"ciP" = (/obj/structure/closet/emcloset,/obj/effect/decal/cleanable/cobweb,/turf/open/floor/plating,/area/maintenance/asmaint2) -"ciQ" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/maintenance/asmaint2) -"ciR" = (/obj/machinery/atmospherics/components/unary/tank/air,/turf/open/floor/plating,/area/maintenance/asmaint2) -"ciS" = (/obj/machinery/portable_atmospherics/scrubber,/turf/open/floor/plasteel/bot{dir = 2},/area/toxins/misc_lab) -"ciT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/toxins/misc_lab) -"ciU" = (/obj/structure/rack{dir = 1},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/asmaint2) -"ciV" = (/obj/structure/table,/turf/open/floor/plating,/area/maintenance/asmaint2) -"ciW" = (/obj/structure/table,/obj/item/weapon/kitchen/knife,/obj/item/weapon/storage/box/donkpockets,/turf/open/floor/plating,/area/maintenance/aft) -"ciX" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_y = 2},/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = 2},/obj/item/weapon/reagent_containers/food/snacks/mint{pixel_y = 9},/turf/open/floor/plating,/area/maintenance/aft) -"ciY" = (/obj/machinery/power/apc{dir = 8; name = "Engineering Maintenance APC"; pixel_x = -25; pixel_y = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating,/area/maintenance/aft) -"ciZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating,/area/maintenance/aft) -"cja" = (/obj/effect/spawner/lootdrop/maintenance,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating,/area/maintenance/aft) -"cjb" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating,/area/maintenance/aft) -"cjc" = (/obj/machinery/telecomms/server/presets/service,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cjd" = (/obj/machinery/telecomms/processor/preset_two,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cje" = (/obj/structure/sign/nosmoking_2{pixel_y = -32},/obj/machinery/light,/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cjf" = (/obj/machinery/telecomms/bus/preset_one,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cjg" = (/obj/machinery/telecomms/server/presets/science,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cjh" = (/obj/structure/window/reinforced/fulltile,/obj/structure/grille,/obj/structure/cable,/turf/open/floor/plating,/area/tcommsat/computer) -"cji" = (/obj/structure/table,/obj/item/device/radio/off,/turf/open/floor/plasteel/yellow/side{dir = 10},/area/tcommsat/computer) -"cjj" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -35},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/tcommsat/computer) -"cjk" = (/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/light,/obj/structure/filingcabinet/chestdrawer,/turf/open/floor/plasteel,/area/tcommsat/computer) -"cjl" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/turf/open/floor/plasteel,/area/tcommsat/computer) -"cjm" = (/obj/structure/sign/securearea{pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel/yellow/side{dir = 10},/area/hallway/primary/aft) -"cjn" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/yellow/side,/area/hallway/primary/aft) -"cjo" = (/turf/open/floor/plasteel/yellow/side,/area/hallway/primary/aft) -"cjp" = (/obj/machinery/light,/turf/open/floor/plasteel/yellow/side,/area/hallway/primary/aft) -"cjq" = (/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/yellow/side,/area/hallway/primary/aft) -"cjr" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/yellow/side{dir = 6},/area/hallway/primary/aft) -"cjs" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/break_room) -"cjt" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/engine/break_room) -"cju" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/engine/break_room) -"cjv" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/engine/break_room) -"cjw" = (/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) -"cjx" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/engine/break_room) -"cjy" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel,/area/engine/break_room) -"cjz" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/break_room) -"cjA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall/r_wall,/area/engine/engineering) -"cjB" = (/obj/machinery/camera{c_tag = "Atmospherics South West"; dir = 4; network = list("SS13")},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/atmos) -"cjC" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible,/turf/open/floor/plasteel,/area/atmos) -"cjD" = (/obj/machinery/light{dir = 4},/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 6},/turf/open/floor/plasteel,/area/atmos) -"cjE" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 9},/turf/open/floor/plating,/area/atmos) -"cjF" = (/obj/machinery/power/apc{dir = 2; name = "Incinerator APC"; pixel_x = 0; pixel_y = -24},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/open/floor/plating,/area/maintenance/incinerator) -"cjG" = (/obj/structure/sign/fire{pixel_x = 0; pixel_y = -32},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) -"cjH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating/warnplate,/area/maintenance/asmaint) -"cjI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) -"cjJ" = (/obj/structure/closet/emcloset,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plating,/area/maintenance/asmaint) -"cjK" = (/obj/structure/sign/biohazard,/turf/closed/wall,/area/maintenance/asmaint) -"cjL" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/maintenance/asmaint) -"cjM" = (/obj/structure/disposalpipe/segment,/turf/closed/wall,/area/maintenance/asmaint) -"cjN" = (/obj/structure/disposalpipe/segment,/obj/machinery/light/small,/turf/open/floor/plating,/area/maintenance/asmaint) -"cjO" = (/obj/structure/disposalpipe/segment,/obj/structure/closet/l3closet,/turf/open/floor/plating,/area/maintenance/asmaint) -"cjP" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 5},/turf/open/floor/bluegrid{name = "Killroom Floor"; initial_gas_mix = "n2=500;TEMP=80"},/area/toxins/xenobiology) -"cjQ" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/open/floor/bluegrid{name = "Killroom Floor"; initial_gas_mix = "n2=500;TEMP=80"},/area/toxins/xenobiology) -"cjR" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/manifold/general/visible,/turf/open/floor/bluegrid{name = "Killroom Floor"; initial_gas_mix = "n2=500;TEMP=80"},/area/toxins/xenobiology) -"cjS" = (/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/toxins/xenobiology) -"cjT" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"cjU" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"cjV" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 9},/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/weapon/pen,/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"cjW" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/asmaint2) -"cjX" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold/cyan/hidden,/turf/open/floor/plating,/area/maintenance/asmaint2) -"cjY" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden{icon_state = "intact"; dir = 9},/turf/open/floor/plating,/area/maintenance/asmaint2) -"cjZ" = (/obj/machinery/portable_atmospherics/canister,/turf/open/floor/plasteel/bot{dir = 2},/area/toxins/misc_lab) -"cka" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/toxins/misc_lab) -"ckb" = (/obj/item/stack/sheet/cardboard,/turf/open/floor/plating,/area/maintenance/asmaint2) -"ckc" = (/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plating,/area/maintenance/asmaint2) -"ckd" = (/obj/machinery/light/small,/turf/open/floor/plating,/area/maintenance/asmaint2) -"cke" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/turf/open/floor/plating,/area/maintenance/asmaint2) -"ckf" = (/obj/machinery/processor,/turf/open/floor/plating,/area/maintenance/aft) -"ckg" = (/obj/machinery/light/small,/turf/open/floor/plating,/area/maintenance/aft) -"ckh" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/aft) -"cki" = (/obj/machinery/space_heater,/turf/open/floor/plating,/area/maintenance/aft) -"ckj" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating,/area/maintenance/aft) -"ckk" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/aft) -"ckl" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/aft) -"ckm" = (/turf/closed/wall/r_wall,/area/engine/chiefs_office) -"ckn" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/poddoor/preopen{id = "Engineering"; name = "engineering security door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/chiefs_office) -"cko" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/disposalpipe/segment,/obj/machinery/door/poddoor/preopen{id = "Engineering"; name = "engineering security door"},/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/engine/chiefs_office) -"ckp" = (/obj/machinery/door/poddoor/preopen{id = "Engineering"; name = "engineering security door"},/obj/machinery/door/airlock/glass_command{name = "Chief Engineer"; req_access_txt = "56"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/chiefs_office) -"ckq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/yellow/side{dir = 10},/area/engine/break_room) -"ckr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/yellow/side,/area/engine/break_room) -"cks" = (/obj/machinery/light,/turf/open/floor/plasteel/yellow/side{dir = 6},/area/engine/break_room) -"ckt" = (/obj/machinery/atmospherics/components/trinary/filter{dir = 2; filter_type = "n2"; on = 1},/turf/open/floor/plasteel,/area/atmos) -"cku" = (/turf/closed/wall,/area/maintenance/incinerator) -"ckv" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/closed/wall,/area/maintenance/incinerator) -"ckw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/maintenance/incinerator) -"ckx" = (/obj/structure/cable{d1 = 1; d2 = 2; 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/incinerator) -"cky" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/obj/item/toy/minimeteor,/obj/item/weapon/poster/contraband,/turf/open/floor/plating,/area/maintenance/asmaint) -"ckz" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance,/obj/item/roller,/turf/open/floor/plating,/area/maintenance/asmaint) -"ckA" = (/obj/structure/disposalpipe/segment,/obj/structure/rack{dir = 1},/obj/effect/spawner/lootdrop/maintenance,/obj/item/weapon/reagent_containers/food/snacks/donkpocket,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) -"ckB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/weapon/c_tube,/turf/open/floor/plating,/area/maintenance/asmaint) -"ckC" = (/obj/structure/mopbucket,/obj/item/weapon/caution,/turf/open/floor/plating,/area/maintenance/asmaint) -"ckD" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/toxins/xenobiology) -"ckE" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/toxins/xenobiology) -"ckF" = (/obj/machinery/door/airlock/maintenance{name = "Air Supply Maintenance"; req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/asmaint2) -"ckG" = (/obj/machinery/door/airlock/maintenance{name = "Testing Lab Maintenance"; req_access_txt = "47"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/toxins/misc_lab) -"ckH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/toxins/misc_lab) -"ckI" = (/obj/structure/closet/cardboard,/turf/open/floor/plating,/area/maintenance/asmaint2) -"ckJ" = (/obj/machinery/door/airlock/maintenance{name = "Firefighting equipment"; req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/asmaint2) -"ckK" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating/airless,/area/maintenance/portsolar) -"ckL" = (/turf/closed/wall/r_wall,/area/maintenance/portsolar) -"ckM" = (/obj/structure/grille,/turf/open/floor/plating,/area/maintenance/aft) -"ckN" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/aft) -"ckO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/closed/wall,/area/maintenance/aft) -"ckP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/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/aft) -"ckQ" = (/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/aft) -"ckR" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"ckS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"ckT" = (/obj/structure/cable{d1 = 4; d2 = 8; 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) -"ckU" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plating,/area/maintenance/aft) -"ckV" = (/obj/machinery/suit_storage_unit/ce,/turf/open/floor/plasteel/warnwhite{dir = 4},/area/engine/chiefs_office) -"ckW" = (/obj/machinery/hologram/holopad,/turf/open/floor/plasteel/neutral{dir = 2},/area/engine/chiefs_office) -"ckX" = (/obj/machinery/light{dir = 1},/obj/machinery/keycard_auth{pixel_x = 0; pixel_y = 24},/turf/open/floor/plasteel/neutral{dir = 2},/area/engine/chiefs_office) -"ckY" = (/turf/open/floor/plasteel/neutral{dir = 2},/area/engine/chiefs_office) -"ckZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/neutral{dir = 2},/area/engine/chiefs_office) -"cla" = (/obj/machinery/power/apc{cell_type = 5000; dir = 4; name = "CE Office APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/neutral{dir = 2},/area/engine/chiefs_office) -"clb" = (/obj/structure/sign/securearea,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/engine/engineering) -"clc" = (/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) -"cld" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 0; pixel_y = 0},/turf/closed/wall,/area/engine/engineering) -"cle" = (/obj/machinery/portable_atmospherics/scrubber,/turf/open/floor/plasteel,/area/atmos) -"clf" = (/obj/machinery/atmospherics/pipe/simple/green/visible,/obj/machinery/portable_atmospherics/pump,/turf/open/floor/plasteel,/area/atmos) -"clg" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/cyan/visible,/turf/open/floor/plasteel,/area/atmos) -"clh" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/open/floor/plasteel,/area/atmos) -"cli" = (/obj/machinery/atmospherics/components/trinary/filter{dir = 4; filter_type = "o2"; on = 1},/turf/open/floor/plasteel,/area/atmos) -"clj" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4; initialize_directions = 12},/turf/open/floor/plasteel,/area/atmos) -"clk" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 9},/turf/open/floor/plasteel,/area/atmos) -"cll" = (/obj/effect/decal/cleanable/cobweb,/obj/structure/reagent_dispensers/watertank,/obj/item/weapon/extinguisher,/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) -"clm" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/components/binary/pump{dir = 2; name = "atmospherics mix pump"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) -"cln" = (/obj/machinery/light_switch{pixel_x = 0; pixel_y = 26},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) -"clo" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/incinerator) -"clp" = (/obj/machinery/disposal/bin,/obj/structure/sign/deathsposal{pixel_x = 0; pixel_y = 32},/obj/structure/disposalpipe/trunk,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/incinerator) -"clq" = (/obj/machinery/power/smes{capacity = 9e+006; charge = 10000},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/effect/decal/cleanable/cobweb{icon_state = "cobweb2"},/turf/open/floor/plating,/area/maintenance/incinerator) -"clr" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/asmaint) -"cls" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/asmaint) -"clt" = (/obj/structure/disposalpipe/segment,/obj/structure/grille/broken,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) -"clu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) -"clv" = (/obj/structure/disposalpipe/segment,/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) -"clw" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) -"clx" = (/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/asmaint) -"cly" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/asmaint2) -"clz" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plating/airless,/area/space/nearstation) -"clA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating,/area/maintenance/asmaint2) -"clB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plating,/area/maintenance/asmaint2) -"clC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint2) -"clD" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/asmaint2) -"clE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/maintenance/asmaint2) -"clF" = (/obj/machinery/space_heater,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint2) -"clG" = (/obj/structure/sign/securearea{pixel_y = 32},/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint2) -"clH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/asmaint2) -"clI" = (/obj/structure/rack{dir = 1},/obj/effect/decal/cleanable/cobweb2,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/asmaint2) -"clJ" = (/obj/machinery/door/airlock/maintenance{name = "Research Delivery access"; req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/asmaint2) -"clK" = (/obj/machinery/light/small{dir = 1},/obj/structure/chair/stool,/turf/open/floor/plating,/area/maintenance/asmaint2) -"clL" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plating,/area/maintenance/asmaint2) -"clM" = (/obj/structure/cable,/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port) -"clN" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = -32; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/portsolar) -"clO" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/maintenance/portsolar) -"clP" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/smes,/turf/open/floor/plating,/area/maintenance/portsolar) -"clQ" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 0},/turf/closed/wall/r_wall,/area/maintenance/portsolar) -"clR" = (/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/aft) -"clS" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating,/area/maintenance/aft) -"clT" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating,/area/maintenance/aft) -"clU" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/aft) -"clV" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/aft) -"clW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/aft) -"clX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/aft) -"clY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/aft) -"clZ" = (/obj/machinery/computer/atmos_alert,/obj/machinery/requests_console{announcementConsole = 1; department = "Chief Engineer's Desk"; departmentType = 3; name = "Chief Engineer RC"; pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel/neutral{dir = 2},/area/engine/chiefs_office) -"cma" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/item/weapon/lighter,/obj/item/clothing/glasses/meson{pixel_y = 4},/obj/item/weapon/stamp/ce,/obj/item/weapon/stock_parts/cell/high/plus,/turf/open/floor/plasteel/neutral{dir = 2},/area/engine/chiefs_office) -"cmb" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/neutral{dir = 2},/area/engine/chiefs_office) -"cmc" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/neutral{dir = 2},/area/engine/chiefs_office) -"cmd" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/chiefs_office) -"cme" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/engine/engineering) -"cmf" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) -"cmg" = (/obj/machinery/camera{c_tag = "Engineering Access"},/obj/structure/closet/radiation,/turf/open/floor/plasteel,/area/engine/engineering) -"cmh" = (/obj/machinery/atmospherics/pipe/simple/green/visible,/obj/machinery/portable_atmospherics/pump,/turf/open/floor/plasteel/red/side{dir = 10},/area/atmos) -"cmi" = (/obj/machinery/computer/atmos_control/tank{frequency = 1441; input_tag = "n2_in"; name = "Nitrogen Supply Control"; output_tag = "n2_out"; sensors = list("n2_sensor" = "Tank")},/turf/open/floor/plasteel/red/side,/area/atmos) -"cmj" = (/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "N2 Outlet Pump"; on = 1},/turf/open/floor/plasteel/red/side{dir = 6},/area/atmos) -"cmk" = (/obj/machinery/light,/turf/open/floor/plasteel,/area/atmos) -"cml" = (/obj/machinery/atmospherics/pipe/simple/green/visible,/turf/open/floor/plasteel/blue/side{dir = 10},/area/atmos) -"cmm" = (/obj/machinery/computer/atmos_control/tank{frequency = 1441; input_tag = "o2_in"; name = "Oxygen Supply Control"; output_tag = "o2_out"; sensors = list("o2_sensor" = "Tank")},/turf/open/floor/plasteel/blue/side{dir = 0},/area/atmos) -"cmn" = (/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "O2 Outlet Pump"; on = 1},/turf/open/floor/plasteel/blue/side{dir = 6},/area/atmos) -"cmo" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible,/turf/open/floor/plasteel/arrival{dir = 10},/area/atmos) -"cmp" = (/obj/machinery/computer/atmos_control/tank{frequency = 1441; input_tag = "air_in"; name = "Mixed Air Supply Control"; output_tag = "air_out"; sensors = list("air_sensor" = "Tank")},/turf/open/floor/plasteel/arrival,/area/atmos) -"cmq" = (/obj/machinery/camera{c_tag = "Atmospherics South East"; dir = 1},/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "Air Outlet Pump"; on = 1},/turf/open/floor/plasteel/arrival{dir = 6},/area/atmos) -"cmr" = (/obj/machinery/door/airlock/external{name = "Atmospherics External Airlock"; req_access_txt = "24"},/turf/open/floor/plating,/area/atmos) -"cms" = (/turf/open/floor/plating,/area/atmos) -"cmt" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 6},/turf/open/space,/area/space/nearstation) -"cmu" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/closed/wall,/area/maintenance/incinerator) -"cmv" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/obj/structure/reagent_dispensers/fueltank,/obj/item/weapon/storage/toolbox/emergency,/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) -"cmw" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Mix to MiniSat"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) -"cmx" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) -"cmy" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) -"cmz" = (/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) -"cmA" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) -"cmB" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/machinery/airalarm{desc = "This particular atmos control unit appears to have no access restrictions."; dir = 8; icon_state = "alarm0"; locked = 0; name = "all-access air alarm"; pixel_x = 24; req_access = "0"; req_one_access = "0"},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) -"cmC" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/asmaint2) -"cmD" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/asmaint2) -"cmE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/asmaint2) -"cmF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/asmaint2) -"cmG" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/asmaint2) -"cmH" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/asmaint2) -"cmI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint2) -"cmJ" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/asmaint2) -"cmK" = (/obj/structure/reagent_dispensers/watertank,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint2) -"cmL" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/asmaint2) -"cmM" = (/obj/structure/rack{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/spawner/lootdrop/maintenance,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint2) -"cmN" = (/obj/structure/cable{d1 = 4; d2 = 8; 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/asmaint2) -"cmO" = (/obj/structure/cable{d1 = 4; d2 = 8; 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/asmaint2) -"cmP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plating,/area/maintenance/asmaint2) -"cmQ" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/asmaint2) -"cmR" = (/obj/structure/closet/firecloset,/turf/open/floor/plating,/area/maintenance/asmaint2) -"cmS" = (/obj/machinery/power/tracker,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel/airless/solarpanel,/area/solar/port) -"cmT" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port) -"cmU" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port) -"cmV" = (/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port) -"cmW" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port) -"cmX" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/external{name = "Solar Maintenance"; req_access = null; req_access_txt = "10; 13"},/turf/open/floor/plating,/area/maintenance/portsolar) -"cmY" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/portsolar) -"cmZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating,/area/maintenance/portsolar) -"cna" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating,/area/maintenance/portsolar) -"cnb" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating,/area/maintenance/portsolar) -"cnc" = (/obj/machinery/door/airlock/engineering{name = "Aft Port Solar Access"; req_access_txt = "10"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/portsolar) -"cnd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/mob/living/simple_animal/mouse,/turf/open/floor/plating,/area/maintenance/aft) -"cne" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating,/area/maintenance/aft) -"cnf" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/aft) -"cng" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/aft) -"cnh" = (/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j2s"; sortType = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/aft) -"cni" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/aft) -"cnj" = (/obj/machinery/shieldgen,/turf/open/floor/plating,/area/engine/engineering) -"cnk" = (/obj/machinery/the_singularitygen{anchored = 0},/turf/open/floor/plating,/area/engine/engineering) -"cnl" = (/obj/machinery/button/door{desc = "A door remote control switch for secure storage"; id = "Secure Storage"; name = "Secure Storage Control"; req_access = null; req_access_txt = "11"},/turf/closed/wall/r_wall,/area/engine/engineering) -"cnm" = (/obj/machinery/power/apc{cell_type = 15000; dir = 1; name = "Engineering APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel/yellow/side,/area/engine/engineering) -"cnn" = (/obj/machinery/light{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/yellow/side,/area/engine/engineering) -"cno" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/portable_atmospherics/pump,/turf/open/floor/plasteel/yellow/side,/area/engine/engineering) -"cnp" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/table,/turf/open/floor/plasteel/yellow/side,/area/engine/engineering) -"cnq" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/table,/obj/item/weapon/tank/internals/emergency_oxygen/engi,/obj/item/clothing/mask/breath,/turf/open/floor/plasteel/yellow/side,/area/engine/engineering) -"cnr" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/open/floor/plasteel/yellow/side,/area/engine/engineering) -"cns" = (/obj/machinery/airalarm{pixel_y = 23},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/plasteel/yellow/side,/area/engine/engineering) -"cnt" = (/turf/closed/wall,/area/engine/engineering) -"cnu" = (/obj/machinery/computer/station_alert,/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20},/turf/open/floor/plasteel,/area/engine/engineering) -"cnv" = (/obj/machinery/computer/monitor{name = "primary power monitoring console"},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plasteel,/area/engine/engineering) -"cnw" = (/obj/machinery/computer/station_alert,/obj/machinery/button/door{desc = "A remote control-switch for the engineering security doors."; id = "Engineering"; name = "Engineering Lockdown"; pixel_x = -24; pixel_y = -10; req_access_txt = "10"},/obj/machinery/button/door{desc = "A remote control-switch for secure storage."; id = "Secure Storage"; name = "Engineering Secure Storage"; pixel_x = -24; pixel_y = 0; req_access_txt = "11"},/obj/machinery/button/door{id = "atmos"; name = "Atmospherics Lockdown"; pixel_x = -24; pixel_y = 10; req_access_txt = "24"},/turf/open/floor/plasteel/neutral{dir = 2},/area/engine/chiefs_office) -"cnx" = (/obj/structure/chair/office/light{dir = 4},/obj/effect/landmark/start{name = "Chief Engineer"},/turf/open/floor/plasteel/neutral{dir = 2},/area/engine/chiefs_office) -"cny" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/yellow,/obj/item/weapon/paper/monitorkey,/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/neutral{dir = 2},/area/engine/chiefs_office) -"cnz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel/neutral{dir = 2},/area/engine/chiefs_office) -"cnA" = (/obj/structure/closet/secure_closet/engineering_chief{req_access_txt = "0"},/turf/open/floor/plasteel/neutral{dir = 2},/area/engine/chiefs_office) -"cnB" = (/obj/structure/grille,/obj/structure/cable,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/chiefs_office) -"cnC" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plasteel,/area/engine/engineering) -"cnD" = (/obj/effect/landmark{name = "lightsout"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/engine/engineering) -"cnE" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/closet/radiation,/turf/open/floor/plasteel,/area/engine/engineering) -"cnF" = (/obj/machinery/atmospherics/pipe/simple/green/visible,/turf/closed/wall/r_wall,/area/atmos) -"cnG" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/yellow/visible,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/atmos) -"cnH" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/green/visible,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/atmos) -"cnI" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible,/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/atmos) -"cnJ" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible,/turf/closed/wall/r_wall,/area/atmos) -"cnK" = (/obj/machinery/atmospherics/components/unary/tank/toxins{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) -"cnL" = (/obj/machinery/atmospherics/components/binary/pump{dir = 4; name = "plasma tank pump"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) -"cnM" = (/obj/machinery/atmospherics/pipe/manifold4w/general{level = 2},/obj/machinery/meter,/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) -"cnN" = (/obj/effect/landmark{name = "blobstart"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/components/binary/pump{dir = 4; name = "Mix to Incinerator"; on = 0},/mob/living/simple_animal/mouse,/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) -"cnO" = (/obj/item/weapon/cigbutt,/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 10},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) -"cnP" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) -"cnQ" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{name = "output gas connector port"},/obj/machinery/portable_atmospherics/canister,/obj/structure/sign/nosmoking_2{pixel_x = 28},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) -"cnR" = (/obj/structure/table,/obj/item/weapon/cartridge/medical,/turf/open/floor/plating,/area/maintenance/asmaint) -"cnS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/closet/firecloset/full,/turf/open/floor/plating,/area/maintenance/asmaint) -"cnT" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/obj/item/latexballon,/turf/open/floor/plating,/area/maintenance/asmaint) -"cnU" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating,/area/maintenance/aft) -"cnV" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/landmark/event_spawn,/turf/open/floor/plating,/area/maintenance/aft) -"cnW" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"cnX" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"cnY" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"cnZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating,/area/maintenance/asmaint2) -"coa" = (/obj/structure/rack,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/asmaint2) -"cob" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/asmaint2) -"coc" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted/fulltile,/turf/open/floor/plating,/area/maintenance/asmaint2) -"cod" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/asmaint2) -"coe" = (/obj/machinery/power/apc{dir = 8; name = "Science Maintenance APC"; pixel_x = -25},/obj/structure/cable{icon_state = "0-4"; d2 = 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/asmaint2) -"cof" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint2) -"cog" = (/obj/structure/closet/emcloset,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plating,/area/maintenance/asmaint2) -"coh" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port) -"coi" = (/obj/machinery/power/solar_control{id = "portsolar"; name = "Aft Port Solar Control"; track = 0},/obj/structure/cable,/turf/open/floor/plating,/area/maintenance/portsolar) -"coj" = (/turf/open/floor/plating,/area/maintenance/portsolar) -"cok" = (/obj/machinery/power/apc{dir = 4; name = "Aft Port Solar APC"; pixel_x = 23; pixel_y = 2},/obj/machinery/camera{c_tag = "Aft Port Solar Control"; dir = 1},/obj/structure/cable,/turf/open/floor/plating,/area/maintenance/portsolar) -"col" = (/obj/structure/closet/emcloset,/turf/open/floor/plating,/area/maintenance/aft) -"com" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/aft) -"con" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/aft) -"coo" = (/obj/structure/closet/crate,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/rods{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/weapon/electronics/airlock,/obj/item/weapon/electronics/airlock,/obj/item/weapon/stock_parts/cell/high/plus,/obj/item/stack/sheet/mineral/plasma{amount = 30},/turf/open/floor/plating,/area/engine/engineering) -"cop" = (/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plating,/area/engine/engineering) -"coq" = (/turf/open/floor/plating,/area/engine/engineering) -"cor" = (/obj/machinery/door/poddoor{id = "Secure Storage"; name = "secure storage"},/turf/open/floor/plating,/area/engine/engineering) -"cos" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/engine/engineering) -"cot" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/engine/engineering) -"cou" = (/turf/open/floor/plasteel,/area/engine/engineering) -"cov" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/engine/engineering) -"cow" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel,/area/engine/engineering) -"cox" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/engine/engineering) -"coy" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/sign/nosmoking_2{pixel_y = 32},/obj/machinery/camera{c_tag = "Engineering Power Storage"},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel,/area/engine/engineering) -"coz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/chair/office/dark{dir = 1},/obj/effect/landmark/start{name = "Station Engineer"},/turf/open/floor/plasteel,/area/engine/engineering) -"coA" = (/obj/machinery/camera{c_tag = "Chief Engineer's Office"; dir = 4; network = list("SS13")},/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/computer/card/minor/ce,/turf/open/floor/plasteel/neutral{dir = 2},/area/engine/chiefs_office) -"coB" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/item/weapon/storage/fancy/cigarettes,/turf/open/floor/plasteel/neutral{dir = 2},/area/engine/chiefs_office) -"coC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/neutral{dir = 2},/area/engine/chiefs_office) -"coD" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/obj/structure/filingcabinet/chestdrawer,/mob/living/simple_animal/parrot/Poly,/turf/open/floor/plasteel/neutral{dir = 2},/area/engine/chiefs_office) -"coE" = (/obj/machinery/door/poddoor/preopen{id = "Engineering"; name = "engineering security door"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/engineering) -"coF" = (/obj/machinery/door/poddoor/preopen{id = "Engineering"; name = "engineering security door"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/engineering) -"coG" = (/obj/machinery/door/poddoor/preopen{id = "Engineering"; name = "engineering security door"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/engineering) -"coH" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/green/visible,/turf/open/space,/area/space/nearstation) -"coI" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/cyan/visible,/turf/open/space,/area/space/nearstation) -"coJ" = (/obj/structure/sign/nosmoking_2{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/incinerator) -"coK" = (/obj/machinery/atmospherics/components/binary/pump{dir = 4; name = "input port pump"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) -"coL" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) -"coM" = (/obj/machinery/atmospherics/pipe/simple/general/visible,/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) -"coN" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) -"coO" = (/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "Incinerator to Output"; on = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) -"coP" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/closed/wall,/area/maintenance/incinerator) -"coQ" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/closed/wall,/area/maintenance/asmaint) -"coR" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/closed/wall,/area/maintenance/asmaint) -"coS" = (/obj/structure/disposalpipe/segment,/obj/item/weapon/shard,/turf/open/floor/plating,/area/maintenance/asmaint) -"coT" = (/obj/structure/disposalpipe/segment,/obj/item/weapon/cigbutt/roach,/turf/open/floor/plating,/area/maintenance/asmaint) -"coU" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/closed/wall,/area/maintenance/asmaint) -"coV" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"coW" = (/obj/structure/chair,/obj/item/weapon/storage/fancy/cigarettes,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"coX" = (/obj/structure/chair,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"coY" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/maintenance/aft) -"coZ" = (/obj/structure/closet,/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint2) -"cpa" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plating,/area/maintenance/asmaint2) -"cpb" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/asmaint2) -"cpc" = (/obj/structure/rack,/obj/effect/decal/cleanable/cobweb2,/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/asmaint2) -"cpd" = (/turf/closed/wall/r_wall,/area/maintenance/starboardsolar) -"cpe" = (/obj/machinery/door/airlock/engineering{name = "Aft Starboard Solar Access"; req_access_txt = "10"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/starboardsolar) -"cpf" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 0},/turf/closed/wall/r_wall,/area/maintenance/starboardsolar) -"cpg" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port) -"cph" = (/obj/structure/closet/crate,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/aft) -"cpi" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/closed/wall/r_wall,/area/engine/engine_smes) -"cpj" = (/turf/closed/wall/r_wall,/area/engine/engine_smes) -"cpk" = (/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/aft) -"cpl" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/aft) -"cpm" = (/obj/machinery/portable_atmospherics/canister/toxins,/obj/machinery/light/small{dir = 8},/obj/machinery/camera{c_tag = "Engineering Secure Storage"; dir = 4; network = list("SS13")},/turf/open/floor/plating,/area/engine/engineering) -"cpn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/engine/engineering) -"cpo" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/engine/engineering) -"cpp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) -"cpq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel,/area/engine/engineering) -"cpr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/engine/engineering) -"cps" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 4},/turf/open/floor/plasteel/neutral{dir = 2},/area/engine/chiefs_office) -"cpt" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/neutral{dir = 2},/area/engine/chiefs_office) -"cpu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plasteel/neutral{dir = 2},/area/engine/chiefs_office) -"cpv" = (/obj/item/weapon/cartridge/engineering{pixel_x = 4; pixel_y = 5},/obj/item/weapon/cartridge/engineering{pixel_x = -3; pixel_y = 2},/obj/item/weapon/cartridge/engineering{pixel_x = 3},/obj/structure/table/reinforced,/obj/machinery/light_switch{pixel_x = 27},/obj/item/weapon/cartridge/atmos,/turf/open/floor/plasteel/neutral{dir = 2},/area/engine/chiefs_office) -"cpw" = (/obj/structure/sign/securearea,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/engine/engineering) -"cpx" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 0; pixel_y = 0},/turf/closed/wall/r_wall,/area/engine/engineering) -"cpy" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/grille,/obj/machinery/meter,/turf/closed/wall/r_wall,/area/atmos) -"cpz" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/grille,/obj/machinery/meter{name = "Mixed Air Tank In"},/turf/closed/wall/r_wall,/area/atmos) -"cpA" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/grille,/obj/machinery/meter{name = "Mixed Air Tank Out"},/turf/closed/wall/r_wall,/area/atmos) -"cpB" = (/obj/structure/grille,/obj/structure/disposalpipe/segment,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/incinerator) -"cpC" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) -"cpD" = (/obj/machinery/atmospherics/components/binary/valve{name = "Mix to Space"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) -"cpE" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 2},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) -"cpF" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) -"cpG" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/general/visible,/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) -"cpH" = (/obj/machinery/portable_atmospherics/canister,/obj/effect/decal/cleanable/cobweb,/turf/open/floor/plating,/area/maintenance/asmaint) -"cpI" = (/obj/machinery/door/airlock/maintenance{name = "Biohazard Disposals"; req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) -"cpJ" = (/obj/structure/disposalpipe/segment,/turf/closed/wall,/area/maintenance/asmaint2) -"cpK" = (/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/asmaint2) -"cpL" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/asmaint2) -"cpM" = (/obj/machinery/power/apc{dir = 8; name = "Aft Starboard Solar APC"; pixel_x = -26; pixel_y = 3},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating,/area/maintenance/starboardsolar) -"cpN" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/starboardsolar) -"cpO" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/smes,/turf/open/floor/plating,/area/maintenance/starboardsolar) -"cpP" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plating,/area/maintenance/aft) -"cpQ" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/black,/area/engine/engine_smes) -"cpR" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/black,/area/engine/engine_smes) -"cpS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/black,/area/engine/engine_smes) -"cpT" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/black,/area/engine/engine_smes) -"cpU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/aft) -"cpV" = (/obj/machinery/field/generator,/turf/open/floor/plating,/area/engine/engineering) -"cpW" = (/obj/machinery/power/emitter,/turf/open/floor/plating,/area/engine/engineering) -"cpX" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/engine/engineering) -"cpY" = (/obj/structure/table,/obj/item/weapon/electronics/airlock,/obj/item/weapon/electronics/airlock,/obj/item/weapon/electronics/apc,/obj/item/weapon/stock_parts/cell/high/plus,/obj/item/weapon/stock_parts/cell/high/plus,/turf/open/floor/plasteel,/area/engine/engineering) -"cpZ" = (/obj/structure/table,/obj/item/weapon/book/manual/engineering_singularity_safety,/obj/item/clothing/gloves/color/yellow,/turf/open/floor/plasteel,/area/engine/engineering) -"cqa" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/engine/engineering) -"cqb" = (/obj/structure/closet/crate{name = "solar pack crate"},/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/weapon/circuitboard/computer/solar_control,/obj/item/weapon/electronics/tracker,/obj/item/weapon/paper/solar,/turf/open/floor/plasteel,/area/engine/engineering) -"cqc" = (/obj/structure/tank_dispenser,/turf/open/floor/plasteel,/area/engine/engineering) -"cqd" = (/obj/machinery/suit_storage_unit/engine,/turf/open/floor/plasteel,/area/engine/engineering) -"cqe" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/chiefs_office) -"cqf" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/chiefs_office) -"cqg" = (/obj/machinery/door/airlock/glass_command{name = "Chief Engineer"; req_access_txt = "56"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/neutral{dir = 2},/area/engine/chiefs_office) -"cqh" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/chiefs_office) -"cqi" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/closed/wall/r_wall,/area/engine/chiefs_office) -"cqj" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/yellow/side{dir = 9},/area/engine/engineering) -"cqk" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/yellow/side{dir = 1},/area/engine/engineering) -"cql" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/yellow/side{dir = 5},/area/engine/engineering) -"cqm" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 1; frequency = 1441; id = "n2_in"},/turf/open/floor/engine/n2,/area/atmos) -"cqn" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "n2_sensor"},/turf/open/floor/engine/n2,/area/atmos) -"cqo" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 0; frequency = 1441; id_tag = "n2_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/engine/n2,/area/atmos) -"cqp" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 1; frequency = 1441; id = "o2_in"},/turf/open/floor/engine/o2,/area/atmos) -"cqq" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "o2_sensor"},/turf/open/floor/engine/o2,/area/atmos) -"cqr" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 0; frequency = 1441; id_tag = "o2_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/engine/o2,/area/atmos) -"cqs" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 1; frequency = 1441; id = "air_in"},/turf/open/floor/engine/air,/area/atmos) -"cqt" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "air_sensor"},/turf/open/floor/engine/air,/area/atmos) -"cqu" = (/obj/machinery/atmospherics/components/unary/vent_pump/high_volume{dir = 1; external_pressure_bound = 0; frequency = 1441; icon_state = "vent_map"; id_tag = "air_out"; internal_pressure_bound = 2000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/engine/air,/area/atmos) -"cqv" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/open/floor/plating,/area/maintenance/incinerator) -"cqw" = (/obj/machinery/light/small,/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -31},/obj/machinery/computer/turbine_computer{id = "incineratorturbine"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) -"cqx" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 8},/obj/machinery/meter,/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) -"cqy" = (/obj/machinery/computer/security/telescreen{desc = "Used for watching the turbine vent."; dir = 1; name = "turbine vent monitor"; network = list("Turbine"); pixel_x = 0; pixel_y = -29},/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) -"cqz" = (/obj/machinery/button/door{id = "auxincineratorvent"; name = "Auxiliary Vent Control"; pixel_x = 6; pixel_y = -24; req_access_txt = "32"},/obj/machinery/button/door{id = "turbinevent"; name = "Turbine Vent Control"; pixel_x = -6; pixel_y = -24; req_access_txt = "32"},/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/general/visible,/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) -"cqA" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/binary/valve{dir = 4; name = "Incinerator to Space"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) -"cqB" = (/obj/machinery/doorButtons/airlock_controller{idExterior = "incinerator_airlock_exterior"; idSelf = "incinerator_access_control"; idInterior = "incinerator_airlock_interior"; name = "Incinerator Access Console"; pixel_x = 6; pixel_y = -26; req_access_txt = "12"},/obj/machinery/button/ignition{id = "Incinerator"; pixel_x = -6; pixel_y = -24},/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4; initialize_directions = 11},/obj/machinery/meter,/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) -"cqC" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) -"cqD" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold/general/hidden{icon_state = "manifold"; dir = 1},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/asmaint) -"cqE" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/components/binary/pump{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) -"cqF" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/obj/machinery/meter,/turf/open/floor/plating,/area/maintenance/asmaint) -"cqG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plating,/area/maintenance/asmaint) -"cqH" = (/obj/structure/disposalpipe/segment,/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating,/area/maintenance/asmaint) -"cqI" = (/obj/machinery/door/airlock/external{name = "Solar Maintenance"; req_access = null; req_access_txt = "10; 13"},/turf/open/floor/plating,/area/maintenance/aft) -"cqJ" = (/obj/structure/rack,/obj/structure/disposalpipe/segment,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/asmaint2) -"cqK" = (/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/asmaint2) -"cqL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/asmaint2) -"cqM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint2) -"cqN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/asmaint2) -"cqO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plating,/area/maintenance/asmaint2) -"cqP" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/asmaint2) -"cqQ" = (/obj/structure/chair/stool,/obj/machinery/camera{c_tag = "Aft Starboard Solar Control"; dir = 4; network = list("SS13")},/turf/open/floor/plating,/area/maintenance/starboardsolar) -"cqR" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating,/area/maintenance/starboardsolar) -"cqS" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/light/small{dir = 4},/turf/open/floor/plating,/area/maintenance/starboardsolar) -"cqT" = (/obj/machinery/door/airlock/external{req_access_txt = "13"},/turf/open/floor/plating,/area/maintenance/aft) -"cqU" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/open/floor/plating,/area/maintenance/aft) -"cqV" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft) -"cqW" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/engine/engine_smes) -"cqX" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/smes/engineering,/turf/open/floor/plasteel/vault{dir = 1},/area/engine/engine_smes) -"cqY" = (/turf/open/floor/plasteel/vault{dir = 8},/area/engine/engine_smes) -"cqZ" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/smes/engineering,/turf/open/floor/plasteel/vault{dir = 4},/area/engine/engine_smes) -"cra" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/engine/engine_smes) -"crb" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/closed/wall,/area/engine/engineering) -"crc" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/engine/engineering) -"crd" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/window/fulltile,/turf/open/floor/plating,/area/engine/engineering) -"cre" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_engineering{name = "Power Storage"; req_access_txt = "11"; req_one_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/engine/engineering) -"crf" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/engine/engineering) -"crg" = (/obj/structure/table,/obj/item/weapon/crowbar/large,/obj/item/weapon/storage/box/lights/mixed,/turf/open/floor/plasteel/yellow/side{dir = 9},/area/engine/engineering) -"crh" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/belt/utility,/obj/item/weapon/wrench,/obj/item/weapon/weldingtool,/obj/item/clothing/head/welding{pixel_x = -3; pixel_y = 5},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/engine/engineering) -"cri" = (/turf/open/floor/plasteel/yellow/corner{dir = 1},/area/engine/engineering) -"crj" = (/turf/open/floor/plasteel/yellow/corner{dir = 4},/area/engine/engineering) -"crk" = (/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/engine/engineering) -"crl" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/yellow/corner{dir = 1},/area/engine/engineering) -"crm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/engine/engineering) -"crn" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel/yellow/side{dir = 4},/area/engine/engineering) -"cro" = (/turf/open/floor/engine/n2,/area/atmos) -"crp" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/turf/open/floor/engine/n2,/area/atmos) -"crq" = (/turf/open/floor/engine/o2,/area/atmos) -"crr" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/engine/o2,/area/atmos) -"crs" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/engine/air,/area/atmos) -"crt" = (/obj/machinery/portable_atmospherics/canister/air,/obj/effect/landmark/event_spawn,/turf/open/floor/engine/air,/area/atmos) -"cru" = (/turf/open/floor/engine/air,/area/atmos) -"crv" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/incinerator) -"crw" = (/turf/closed/wall/r_wall,/area/maintenance/incinerator) -"crx" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 2},/turf/closed/wall/r_wall,/area/maintenance/incinerator) -"cry" = (/obj/machinery/door/airlock/glass{autoclose = 0; frequency = 1449; heat_proof = 1; icon_state = "door_locked"; id_tag = "incinerator_airlock_interior"; locked = 1; name = "Turbine Interior Airlock"; req_access_txt = "32"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/engine,/area/maintenance/incinerator) -"crz" = (/obj/machinery/atmospherics/pipe/simple/general/visible,/turf/closed/wall/r_wall,/area/maintenance/incinerator) -"crA" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 9},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/asmaint) -"crB" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) -"crC" = (/obj/structure/disposalpipe/junction{dir = 2; icon_state = "pipe-y"},/turf/open/floor/plating,/area/maintenance/asmaint) -"crD" = (/obj/structure/disposalpipe/segment,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) -"crE" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plating,/area/maintenance/asmaint) -"crF" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/structure/disposalpipe/segment,/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/asmaint2) -"crG" = (/obj/structure/closet/toolcloset,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/asmaint2) -"crH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint2) -"crI" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint2) -"crJ" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/asmaint2) -"crK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/closed/wall,/area/maintenance/asmaint2) -"crL" = (/obj/machinery/power/solar_control{id = "starboardsolar"; name = "Aft Starboard Solar Control"; track = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating,/area/maintenance/starboardsolar) -"crM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating,/area/maintenance/starboardsolar) -"crN" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/turf/open/floor/plating,/area/maintenance/starboardsolar) -"crO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/engine/engine_smes) -"crP" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/open/floor/plasteel/vault{dir = 8},/area/engine/engine_smes) -"crQ" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/black,/area/engine/engine_smes) -"crR" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel/vault{dir = 8},/area/engine/engine_smes) -"crS" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=2"; freq = 1400; location = "Engineering"},/obj/structure/plasticflaps{opacity = 1},/turf/open/floor/plasteel/bot,/area/engine/engineering) -"crT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/engine/engineering) -"crU" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = -32; pixel_y = 0},/obj/structure/disposalpipe/segment,/obj/structure/sign/securearea{pixel_x = 32; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/aft) -"crV" = (/obj/structure/closet/secure_closet/engineering_welding,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/yellow/side{dir = 9},/area/engine/engineering) -"crW" = (/obj/structure/closet/secure_closet/engineering_electrical,/turf/open/floor/plasteel/yellow/side{dir = 1},/area/engine/engineering) -"crX" = (/obj/machinery/vending/engivend,/turf/open/floor/plasteel/yellow/side{dir = 1},/area/engine/engineering) -"crY" = (/obj/machinery/vending/tool,/turf/open/floor/plasteel/yellow/corner{dir = 1},/area/engine/engineering) -"crZ" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/yellow/corner{dir = 4},/area/engine/engineering) -"csa" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/engine/engineering) -"csb" = (/obj/machinery/requests_console{announcementConsole = 0; department = "Engineering"; departmentType = 4; name = "Engineering RC"; pixel_y = 30},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/engine/engineering) -"csc" = (/obj/structure/sign/nosmoking_2{pixel_y = 32},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/engine/engineering) -"csd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel/yellow/corner{dir = 1},/area/engine/engineering) -"cse" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/engine/engineering) -"csf" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/engine/engineering) -"csg" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/engine/engineering) -"csh" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) -"csi" = (/obj/structure/closet/secure_closet/engineering_personal,/turf/open/floor/plasteel/yellow/side{dir = 4},/area/engine/engineering) -"csj" = (/obj/machinery/light/small,/turf/open/floor/engine/n2,/area/atmos) -"csk" = (/obj/machinery/light/small,/turf/open/floor/engine/o2,/area/atmos) -"csl" = (/obj/machinery/light/small,/turf/open/floor/engine/air,/area/atmos) -"csm" = (/obj/structure/lattice,/obj/machinery/atmospherics/components/binary/pump{dir = 2; name = "Incinerator Output Pump"; on = 1},/turf/open/space,/area/maintenance/incinerator) -"csn" = (/obj/machinery/atmospherics/components/binary/pump{dir = 2; on = 1},/obj/machinery/doorButtons/access_button{idDoor = "incinerator_airlock_exterior"; idSelf = "incinerator_access_control"; layer = 3.1; name = "Incinerator airlock control"; pixel_x = 8; pixel_y = -24},/obj/machinery/light/small{dir = 8},/obj/structure/sign/fire{pixel_x = -32; pixel_y = 0},/turf/open/floor/engine,/area/maintenance/incinerator) -"cso" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/engine,/area/maintenance/incinerator) -"csp" = (/obj/machinery/atmospherics/components/binary/pump{dir = 1; on = 1},/obj/structure/sign/fire{pixel_x = 32; pixel_y = 0},/obj/machinery/doorButtons/access_button{idSelf = "incinerator_access_control"; idDoor = "incinerator_airlock_interior"; name = "Incinerator airlock control"; pixel_x = -8; pixel_y = 24},/obj/machinery/light/small{dir = 4},/turf/open/floor/engine,/area/maintenance/incinerator) -"csq" = (/obj/machinery/light/small,/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/asmaint) -"csr" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/asmaint) -"css" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/asmaint) -"cst" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/asmaint) -"csu" = (/obj/machinery/light/small,/obj/structure/table,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/effect/spawner/lootdrop/maintenance,/obj/item/weapon/clipboard,/turf/open/floor/plating,/area/maintenance/asmaint) -"csv" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/asmaint) -"csw" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/asmaint2) -"csx" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/starboardsolar) -"csy" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/airlock/external{name = "Solar Maintenance"; req_access = null; req_access_txt = "10; 13"},/turf/open/floor/plating,/area/maintenance/starboardsolar) -"csz" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port) -"csA" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/engine/engine_smes) -"csB" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/smes/engineering,/turf/open/floor/plasteel/vault{dir = 4},/area/engine/engine_smes) -"csC" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/vault{dir = 8},/area/engine/engine_smes) -"csD" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/smes/engineering,/turf/open/floor/plasteel/vault{dir = 1},/area/engine/engine_smes) -"csE" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/camera{c_tag = "SMES Room"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/engine/engine_smes) -"csF" = (/obj/machinery/door/window/southleft{base_state = "left"; dir = 2; icon_state = "left"; name = "Engineering Delivery"; req_access_txt = "10"},/turf/open/floor/plasteel/delivery,/area/engine/engineering) -"csG" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/maintenance{name = "Engineering Maintenance"; req_access_txt = "10"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/engine/engineering) -"csH" = (/obj/machinery/camera{c_tag = "Engineering West"; dir = 4; network = list("SS13")},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/yellow/corner{dir = 1},/area/engine/engineering) -"csI" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/engine/engineering) -"csJ" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/engine/engineering) -"csK" = (/obj/machinery/computer/security/telescreen{desc = "Used for watching the singularity chamber."; dir = 1; layer = 4; name = "Singularity Engine Telescreen"; network = list("Singularity"); pixel_x = 0; pixel_y = -30},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/engine/engineering) -"csL" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel,/area/engine/engineering) -"csM" = (/obj/effect/landmark/start{name = "Station Engineer"},/turf/open/floor/plasteel,/area/engine/engineering) -"csN" = (/obj/structure/closet/secure_closet/engineering_personal,/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/plasteel/yellow/side{dir = 4},/area/engine/engineering) -"csO" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/turf/open/space,/area/maintenance/incinerator) -"csP" = (/obj/machinery/door/airlock/glass{autoclose = 0; frequency = 1449; heat_proof = 1; icon_state = "door_locked"; id_tag = "incinerator_airlock_exterior"; locked = 1; name = "Turbine Exterior Airlock"; req_access_txt = "32"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/engine,/area/maintenance/incinerator) -"csQ" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/closed/wall,/area/maintenance/asmaint) -"csR" = (/obj/machinery/atmospherics/components/binary/pump{dir = 2; name = "Waste Out"; on = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) -"csS" = (/obj/structure/disposalpipe/junction{dir = 4; icon_state = "pipe-j2"},/turf/open/floor/plating,/area/maintenance/asmaint) -"csT" = (/obj/structure/closet/emcloset,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/asmaint) -"csU" = (/obj/structure/disposalpipe/segment,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/asmaint2) -"csV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/starboardsolar) -"csW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/engine/engine_smes) -"csX" = (/obj/structure/window/reinforced,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/turf/open/floor/plasteel/black,/area/engine/engine_smes) -"csY" = (/obj/machinery/door/window{name = "SMES Chamber"; req_access_txt = "32"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/black,/area/engine/engine_smes) -"csZ" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/window/reinforced,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel/black,/area/engine/engine_smes) -"cta" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/black,/area/engine/engine_smes) -"ctb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/engine/engine_smes) -"ctc" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 8},/area/engine/engine_smes) -"ctd" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/camera{c_tag = "SMES Access"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel/warning{dir = 4},/area/engine/engine_smes) -"cte" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_x = -32; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/loadingarea,/area/engine/engineering) -"ctf" = (/obj/machinery/light/small{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,/turf/open/floor/plasteel,/area/engine/engineering) -"ctg" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 8; 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) -"cth" = (/obj/machinery/firealarm{pixel_y = 24},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) -"cti" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/sign/nosmoking_2{pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) -"ctj" = (/obj/structure/cable{d1 = 4; d2 = 8; 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) -"ctk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) -"ctl" = (/obj/structure/cable{d1 = 4; d2 = 8; 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) -"ctm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) -"ctn" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel,/area/engine/engineering) -"cto" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/item/weapon/storage/firstaid/fire,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) -"ctp" = (/obj/effect/landmark/start{name = "Station Engineer"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) -"ctq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel,/area/engine/engineering) -"ctr" = (/obj/structure/closet/radiation,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/engine/engineering) -"cts" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters/preopen{id = "Singularity"; name = "radiation shutters"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/bot{dir = 2},/area/engine/engineering) -"ctt" = (/obj/structure/closet/radiation,/turf/open/floor/plasteel,/area/engine/engineering) -"ctu" = (/obj/structure/table,/obj/item/device/flashlight{pixel_y = 5},/obj/item/clothing/ears/earmuffs{pixel_x = -5; pixel_y = 6},/obj/item/weapon/airlock_painter,/turf/open/floor/plasteel,/area/engine/engineering) -"ctv" = (/obj/machinery/camera{c_tag = "Engineering East"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/obj/structure/closet/wardrobe/engineering_yellow,/turf/open/floor/plasteel/yellow/corner{dir = 4},/area/engine/engineering) -"ctw" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 1; frequency = 1441; id = "inc_in"},/turf/open/floor/engine/vacuum,/area/maintenance/incinerator) -"ctx" = (/obj/machinery/igniter{icon_state = "igniter0"; id = "Incinerator"; luminosity = 2; on = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/engine/vacuum,/area/maintenance/incinerator) -"cty" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 0; initialize_directions = 1; internal_pressure_bound = 4000; on = 0; pressure_checks = 2; pump_direction = 0},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/turf/open/floor/engine/vacuum,/area/maintenance/incinerator) -"ctz" = (/obj/machinery/door/poddoor{id = "auxincineratorvent"; name = "Auxiliary Incinerator Vent"},/turf/open/floor/engine/vacuum,/area/maintenance/incinerator) -"ctA" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/asmaint) -"ctB" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/asmaint2) -"ctC" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint2) -"ctD" = (/obj/structure/table,/obj/item/weapon/weldingtool,/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/asmaint2) -"ctE" = (/obj/machinery/space_heater,/turf/open/floor/plating,/area/maintenance/asmaint2) -"ctF" = (/obj/machinery/power/port_gen/pacman,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/warning{dir = 9},/area/engine/engine_smes) -"ctG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 1},/area/engine/engine_smes) -"ctH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/warning{dir = 1},/area/engine/engine_smes) -"ctI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/warning{dir = 1},/area/engine/engine_smes) -"ctJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/warning{dir = 5},/area/engine/engine_smes) -"ctK" = (/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{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/engine_smes) -"ctL" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/warning{dir = 8},/area/engine/engine_smes) -"ctM" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/warning{dir = 4},/area/engine/engine_smes) -"ctN" = (/obj/machinery/door/airlock/engineering{name = "SMES Room"; req_access_txt = "32"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/engine_smes) -"ctO" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 8},/area/engine/engineering) -"ctP" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; 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) -"ctQ" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel,/area/engine/engineering) -"ctR" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) -"ctS" = (/obj/machinery/door/firedoor,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) -"ctT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) -"ctU" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) -"ctV" = (/obj/structure/table,/obj/item/weapon/book/manual/wiki/engineering_hacking{pixel_x = 3; pixel_y = 3},/obj/item/weapon/book/manual/wiki/engineering_construction,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel,/area/engine/engineering) -"ctW" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) -"ctX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) -"ctY" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/gloves/color/black,/obj/item/weapon/extinguisher{pixel_x = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel,/area/engine/engineering) -"ctZ" = (/turf/open/floor/plating/warnplate{dir = 9},/area/engine/engineering) -"cua" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/warnplate{dir = 1},/area/engine/engineering) -"cub" = (/obj/machinery/camera{c_tag = "Engineering Center"; dir = 2; pixel_x = 23},/obj/machinery/light{dir = 1},/turf/open/floor/plating/warnplate{dir = 1},/area/engine/engineering) -"cuc" = (/turf/open/floor/plating/warnplate{dir = 5},/area/engine/engineering) -"cud" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/gloves/color/yellow,/obj/item/weapon/storage/belt/utility,/turf/open/floor/plasteel,/area/engine/engineering) -"cue" = (/obj/machinery/hologram/holopad,/turf/open/floor/plasteel,/area/engine/engineering) -"cuf" = (/obj/structure/table,/obj/item/weapon/book/manual/wiki/engineering_guide,/obj/item/weapon/book/manual/engineering_particle_accelerator{pixel_y = 6},/turf/open/floor/plasteel,/area/engine/engineering) -"cug" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel,/area/engine/engineering) -"cuh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel,/area/engine/engineering) -"cui" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/warning{dir = 5},/area/engine/engineering) -"cuj" = (/obj/structure/closet/emcloset,/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/engine/engineering) -"cuk" = (/turf/open/floor/plating,/obj/structure/shuttle/engine/propulsion/burst{dir = 4},/turf/closed/wall/shuttle{icon_state = "swall_f6"; dir = 2},/area/shuttle/pod_4) -"cul" = (/turf/closed/wall/shuttle{icon_state = "swall12"; dir = 2},/area/shuttle/pod_4) -"cum" = (/turf/open/space,/turf/closed/wall/shuttle{dir = 2; icon_state = "swall_f10"; layer = 2},/area/shuttle/pod_4) -"cun" = (/obj/machinery/power/compressor{comp_id = "incineratorturbine"; dir = 1; luminosity = 2},/obj/structure/cable/yellow,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/camera{c_tag = "Turbine Chamber"; dir = 4; network = list("Turbine")},/turf/open/floor/engine/vacuum,/area/maintenance/incinerator) -"cuo" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/turf/open/space,/area/space/nearstation) -"cup" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard) -"cuq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel/warning{dir = 8},/area/engine/engine_smes) -"cur" = (/turf/open/floor/plasteel,/area/engine/engine_smes) -"cus" = (/turf/open/floor/plasteel/warning/corner{dir = 2},/area/engine/engine_smes) -"cut" = (/obj/machinery/light,/turf/open/floor/plasteel/warning,/area/engine/engine_smes) -"cuu" = (/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/warning{dir = 6},/area/engine/engine_smes) -"cuv" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel/warning{dir = 8},/area/engine/engine_smes) -"cuw" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/open/floor/plasteel/warning{dir = 4},/area/engine/engine_smes) -"cux" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel,/area/engine/engineering) -"cuy" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/engine/engineering) -"cuz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/engine/engineering) -"cuA" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/turf/open/floor/plasteel,/area/engine/engineering) -"cuB" = (/obj/structure/table,/obj/item/clothing/gloves/color/yellow,/obj/item/weapon/storage/toolbox/electrical{pixel_y = 5},/turf/open/floor/plasteel,/area/engine/engineering) -"cuC" = (/obj/effect/landmark/start{name = "Station Engineer"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel,/area/engine/engineering) -"cuD" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel,/area/engine/engineering) -"cuE" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/engine/engineering) -"cuF" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters/preopen{id = "Singularity"; name = "radiation shutters"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/bot{dir = 2},/area/engine/engineering) -"cuG" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/open/floor/plating/warnplate{dir = 8},/area/engine/engineering) -"cuH" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating,/area/engine/engineering) -"cuI" = (/obj/structure/particle_accelerator/end_cap,/turf/open/floor/plating,/area/engine/engineering) -"cuJ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/landmark/event_spawn,/turf/open/floor/plating,/area/engine/engineering) -"cuK" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating/warnplate{dir = 4},/area/engine/engineering) -"cuL" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel,/area/engine/engineering) -"cuM" = (/obj/effect/landmark/start{name = "Station Engineer"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel,/area/engine/engineering) -"cuN" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) -"cuO" = (/turf/open/floor/plasteel/warning{dir = 4},/area/engine/engineering) -"cuP" = (/obj/machinery/door/airlock/external{name = "Escape Pod Four"; req_access = null; req_access_txt = "0"},/turf/open/floor/plating,/area/engine/engineering) -"cuQ" = (/obj/machinery/door/airlock/shuttle{name = "Escape Pod Airlock"},/obj/docking_port/mobile/pod{dir = 4; id = "pod4"; name = "escape pod 4"},/turf/open/floor/plasteel/shuttle,/area/shuttle/pod_4) -"cuR" = (/obj/item/device/radio/intercom{pixel_y = 25},/obj/item/weapon/storage/pod{pixel_x = 6; pixel_y = -32},/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/shuttle,/area/shuttle/pod_4) -"cuS" = (/obj/machinery/computer/shuttle/pod{pixel_y = -32; possible_destinations = "pod_asteroid4"; shuttleId = "pod4"},/obj/structure/chair{dir = 4},/obj/machinery/status_display{density = 0; layer = 3; pixel_x = 0; pixel_y = 32},/turf/open/floor/plasteel/shuttle,/area/shuttle/pod_4) -"cuT" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/pod_4) -"cuU" = (/obj/docking_port/stationary/random{dir = 4; id = "pod_asteroid4"; name = "asteroid"},/turf/open/space,/area/space) -"cuV" = (/obj/machinery/power/turbine{luminosity = 2},/obj/structure/cable/yellow,/turf/open/floor/engine/vacuum,/area/maintenance/incinerator) -"cuW" = (/obj/item/weapon/wrench,/obj/structure/lattice/catwalk,/turf/open/space,/area/space/nearstation) -"cuX" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 1},/turf/open/floor/plating/airless,/area/space/nearstation) -"cuY" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table_frame,/obj/item/weapon/wirerod,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/asmaint2) -"cuZ" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating,/area/maintenance/asmaint2) -"cva" = (/obj/structure/disposaloutlet,/obj/structure/disposalpipe/trunk{dir = 1},/turf/open/floor/plating/airless,/area/space) -"cvb" = (/obj/machinery/door/airlock{name = "Observatory Access"},/turf/open/floor/plating,/area/maintenance/aft) -"cvc" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 2; name = "SMES room APC"; pixel_y = -24},/turf/open/floor/plasteel/warning{dir = 10},/area/engine/engine_smes) -"cvd" = (/obj/structure/chair/office/light{dir = 4},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/plasteel/warning,/area/engine/engine_smes) -"cve" = (/obj/structure/table,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -35},/obj/item/weapon/stock_parts/cell/high/plus,/turf/open/floor/plasteel/warning{dir = 6},/area/engine/engine_smes) -"cvf" = (/obj/structure/table,/obj/machinery/camera{c_tag = "Engineering Storage"; dir = 4; network = list("SS13")},/turf/open/floor/plasteel,/area/engine/engineering) -"cvg" = (/obj/structure/table,/obj/item/stack/rods{amount = 50},/turf/open/floor/plasteel,/area/engine/engineering) -"cvh" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_y = 5},/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/turf/open/floor/plasteel/warning{dir = 2},/area/engine/engineering) -"cvi" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 0; pixel_y = -32},/obj/machinery/light,/turf/open/floor/plasteel/warning{dir = 2},/area/engine/engineering) -"cvj" = (/turf/open/floor/plasteel/warning{dir = 2},/area/engine/engineering) -"cvk" = (/obj/item/clothing/glasses/meson,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/warning{dir = 2},/area/engine/engineering) -"cvl" = (/obj/structure/chair/stool,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/warning{dir = 2},/area/engine/engineering) -"cvm" = (/obj/machinery/button/door{id = "Singularity"; name = "Shutters Control"; pixel_x = 25; pixel_y = 0; req_access_txt = "11"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/warning{dir = 2},/area/engine/engineering) -"cvn" = (/obj/machinery/button/door{id = "Singularity"; name = "Shutters Control"; pixel_x = -25; pixel_y = 0; req_access_txt = "11"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/warnplate{dir = 8},/area/engine/engineering) -"cvo" = (/obj/machinery/particle_accelerator/control_box,/obj/structure/cable/yellow,/turf/open/floor/plating,/area/engine/engineering) -"cvp" = (/obj/structure/particle_accelerator/fuel_chamber,/turf/open/floor/plating,/area/engine/engineering) -"cvq" = (/obj/effect/landmark/start{name = "Station Engineer"},/turf/open/floor/plating,/area/engine/engineering) -"cvr" = (/obj/machinery/button/door{id = "Singularity"; name = "Shutters Control"; pixel_x = 25; pixel_y = 0; req_access_txt = "11"},/turf/open/floor/plating/warnplate{dir = 4},/area/engine/engineering) -"cvs" = (/obj/machinery/button/door{id = "Singularity"; name = "Shutters Control"; pixel_x = -25; pixel_y = 0; req_access_txt = "11"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/warning{dir = 2},/area/engine/engineering) -"cvt" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/warning{dir = 2},/area/engine/engineering) -"cvu" = (/obj/structure/rack{dir = 8; layer = 2.9},/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/warning{dir = 2},/area/engine/engineering) -"cvv" = (/obj/structure/closet/firecloset,/turf/open/floor/plasteel,/area/engine/engineering) -"cvw" = (/obj/structure/sign/pods{pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel/warning{dir = 6},/area/engine/engineering) -"cvx" = (/obj/machinery/camera{c_tag = "Engineering Escape Pod"; dir = 4; network = list("SS13")},/turf/open/floor/plating,/area/engine/engineering) -"cvy" = (/turf/open/floor/plating,/obj/structure/shuttle/engine/propulsion/burst{dir = 4},/turf/closed/wall/shuttle{icon_state = "swall_f5"; dir = 2},/area/shuttle/pod_4) -"cvz" = (/turf/open/space,/turf/closed/wall/shuttle{icon_state = "swall_f9"; dir = 2},/area/shuttle/pod_4) -"cvA" = (/obj/effect/landmark{name = "carpspawn"},/turf/open/space,/area/space/nearstation) -"cvB" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 1},/turf/open/floor/plating/airless,/area/maintenance/incinerator) -"cvC" = (/obj/structure/sign/fire{pixel_x = 0; pixel_y = 0},/turf/closed/wall/r_wall,/area/maintenance/incinerator) -"cvD" = (/obj/machinery/door/poddoor{id = "turbinevent"; name = "Turbine Vent"},/turf/open/floor/engine/vacuum,/area/maintenance/incinerator) -"cvE" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint2) -"cvF" = (/obj/effect/decal/cleanable/cobweb2,/turf/open/floor/plating,/area/maintenance/aft) -"cvG" = (/obj/structure/table,/obj/item/stack/sheet/plasteel{amount = 10},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel,/area/engine/engineering) -"cvH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel,/area/engine/engineering) -"cvI" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) -"cvJ" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plasteel,/area/engine/engineering) -"cvK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/external{name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/turf/open/floor/plating,/area/engine/engineering) -"cvL" = (/obj/machinery/door/poddoor/shutters/preopen{id = "Singularity"; name = "radiation shutters"},/turf/open/floor/plating,/area/engine/engineering) -"cvM" = (/obj/machinery/door/poddoor/shutters/preopen{id = "Singularity"; name = "radiation shutters"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/engine/engineering) -"cvN" = (/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/weapon/crowbar,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/warnplate{dir = 8},/area/engine/engineering) -"cvO" = (/obj/structure/chair/stool,/turf/open/floor/plating,/area/engine/engineering) -"cvP" = (/obj/structure/particle_accelerator/power_box,/turf/open/floor/plating,/area/engine/engineering) -"cvQ" = (/obj/item/weapon/screwdriver,/turf/open/floor/plating,/area/engine/engineering) -"cvR" = (/turf/open/floor/plating/warnplate{dir = 4},/area/engine/engineering) -"cvS" = (/obj/machinery/door/airlock/external{name = "External Access"; req_access = null; req_access_txt = "13"},/turf/open/floor/plating,/area/maintenance/asmaint2) -"cvT" = (/obj/effect/decal/cleanable/dirt,/obj/structure/closet/emcloset,/turf/open/floor/plating,/area/maintenance/asmaint2) -"cvU" = (/obj/structure/cable,/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard) -"cvV" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/aft) -"cvW" = (/obj/structure/chair,/turf/open/floor/plating,/area/maintenance/aft) -"cvX" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"cvY" = (/obj/structure/table,/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/stack/cable_coil,/obj/item/weapon/electronics/airlock,/obj/item/weapon/electronics/airlock,/turf/open/floor/plasteel,/area/engine/engineering) -"cvZ" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/turf/open/floor/plasteel,/area/engine/engineering) -"cwa" = (/obj/structure/table,/obj/item/weapon/folder/yellow,/obj/item/clothing/ears/earmuffs{pixel_x = -3; pixel_y = -2},/turf/open/floor/plasteel,/area/engine/engineering) -"cwb" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel,/area/engine/engineering) -"cwc" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plasteel,/area/engine/engineering) -"cwd" = (/obj/machinery/light/small{dir = 8},/obj/structure/closet/emcloset,/turf/open/floor/plating,/area/engine/engineering) -"cwe" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 32},/turf/open/floor/plating,/area/engine/engineering) -"cwf" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating/warnplate{dir = 1},/area/engine/engineering) -"cwg" = (/obj/machinery/power/rad_collector{anchored = 1},/obj/structure/cable/yellow,/turf/open/floor/plating/warnplate{dir = 1},/area/engine/engineering) -"cwh" = (/obj/machinery/power/rad_collector{anchored = 1},/obj/item/weapon/tank/internals/plasma,/obj/structure/cable/yellow,/turf/open/floor/plating/warnplate{dir = 1},/area/engine/engineering) -"cwi" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/engineering) -"cwj" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/warnplate{dir = 8},/area/engine/engineering) -"cwk" = (/obj/structure/particle_accelerator/particle_emitter/left,/turf/open/floor/plating,/area/engine/engineering) -"cwl" = (/obj/structure/particle_accelerator/particle_emitter/center,/turf/open/floor/plating,/area/engine/engineering) -"cwm" = (/obj/structure/particle_accelerator/particle_emitter/right,/turf/open/floor/plating,/area/engine/engineering) -"cwn" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plating/warnplate{dir = 1},/area/engine/engineering) -"cwo" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = -32},/turf/open/floor/plating,/area/engine/engineering) -"cwp" = (/obj/machinery/light/small{dir = 4},/obj/structure/closet/emcloset,/turf/open/floor/plating,/area/engine/engineering) -"cwq" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel,/area/engine/engineering) -"cwr" = (/obj/structure/sign/securearea,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall/r_wall,/area/engine/engineering) -"cws" = (/obj/machinery/camera{c_tag = "Engineering MiniSat Access"; dir = 4; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) -"cwt" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/engine/engineering) -"cwu" = (/obj/structure/transit_tube{icon_state = "Block"},/turf/open/floor/plating/warnplate{dir = 8},/area/engine/engineering) -"cwv" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "starboardsolar"; name = "Starboard Solar Array"},/turf/open/floor/plasteel/airless/solarpanel,/area/solar/starboard) -"cww" = (/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard) -"cwx" = (/obj/structure/table,/obj/item/device/taperecorder{pixel_y = 0},/turf/open/floor/plating,/area/maintenance/aft) -"cwy" = (/obj/structure/table,/obj/item/weapon/storage/box/matches,/obj/item/weapon/storage/fancy/cigarettes,/turf/open/floor/plating,/area/maintenance/aft) -"cwz" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating/airless,/area/engine/engineering) -"cwA" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/closed/wall/r_wall,/area/engine/engineering) -"cwB" = (/obj/machinery/door/airlock/external{name = "Construction Site Airlock"; req_access = null; req_access_txt = "10;32"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/engine/engineering) -"cwC" = (/obj/structure/cable/yellow{icon_state = "1-4"; d1 = 1; d2 = 4},/turf/open/floor/plating/warnplate{dir = 10},/area/engine/engineering) -"cwD" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating/warnplate,/area/engine/engineering) -"cwE" = (/obj/item/weapon/wirecutters,/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/open/floor/plating/warnplate,/area/engine/engineering) -"cwF" = (/turf/open/floor/plating/warnplate,/area/engine/engineering) -"cwG" = (/turf/open/floor/plating/warnplate{dir = 6},/area/engine/engineering) -"cwH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel,/area/engine/engineering) -"cwI" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) -"cwJ" = (/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) -"cwK" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/engine/engineering) -"cwL" = (/obj/structure/transit_tube/station{dir = 8; icon_state = "closed"; reverse_launch = 1},/obj/structure/transit_tube_pod,/turf/open/floor/plating/warnplate{dir = 8},/area/engine/engineering) -"cwM" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/open/space,/area/space) -"cwN" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard) -"cwO" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard) -"cwP" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard) -"cwQ" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard) -"cwR" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard) -"cwS" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard) -"cwT" = (/turf/open/floor/plating/airless,/area/space) -"cwU" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plating,/area/engine/engineering) -"cwV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/engine/engineering) -"cwW" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plating,/area/engine/engineering) -"cwX" = (/obj/structure/grille,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating/airless,/area/engine/engineering) -"cwY" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating/airless,/area/engine/engineering) -"cwZ" = (/obj/machinery/camera/emp_proof{c_tag = "Singularity North-West"; dir = 2; network = list("Singularity")},/obj/machinery/power/grounding_rod,/turf/open/floor/plating/airless,/area/engine/engineering) -"cxa" = (/obj/machinery/power/grounding_rod,/turf/open/floor/plating/airless,/area/space/nearstation) -"cxb" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/engine/engineering) -"cxc" = (/obj/machinery/camera/emp_proof{c_tag = "Singularity North East"; dir = 2; network = list("Singularity")},/obj/machinery/power/grounding_rod,/turf/open/floor/plating/airless,/area/engine/engineering) -"cxd" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating/airless,/area/engine/engineering) -"cxe" = (/obj/structure/grille,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating/airless,/area/engine/engineering) -"cxf" = (/obj/machinery/door/airlock/external{name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/turf/open/floor/plasteel,/area/engine/engineering) -"cxg" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel,/area/engine/engineering) -"cxh" = (/obj/machinery/light,/turf/open/floor/plasteel,/area/engine/engineering) -"cxi" = (/obj/structure/transit_tube{icon_state = "N-S"},/turf/open/floor/plating/warnplate{dir = 8},/area/engine/engineering) -"cxj" = (/obj/structure/cable,/obj/machinery/power/solar{id = "starboardsolar"; name = "Starboard Solar Array"},/turf/open/floor/plasteel/airless/solarpanel,/area/solar/starboard) -"cxk" = (/obj/structure/cable,/turf/open/floor/plating,/area/engine/engineering) -"cxl" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/airless,/area/engine/engineering) -"cxm" = (/turf/open/floor/plating/airless,/area/engine/engineering) -"cxn" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/open/floor/plating/airless,/area/space/nearstation) -"cxo" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating/airless,/area/space/nearstation) -"cxp" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/turf/open/floor/plating/airless,/area/space/nearstation) -"cxq" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/open/floor/plating/airless,/area/space/nearstation) -"cxr" = (/obj/item/weapon/wrench,/turf/open/floor/plating/airless,/area/engine/engineering) -"cxs" = (/obj/structure/closet/emcloset,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 32},/turf/open/floor/plating,/area/engine/engineering) -"cxt" = (/obj/structure/transit_tube{icon_state = "N-S"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/engineering) -"cxu" = (/obj/machinery/door/airlock/external{name = "Construction Site Airlock"; req_access = null; req_access_txt = "10;32"},/turf/open/floor/plating,/area/engine/engineering) -"cxv" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating/airless,/area/engine/engineering) -"cxw" = (/obj/machinery/power/emitter{anchored = 1; dir = 4; state = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating/airless,/area/engine/engineering) -"cxx" = (/turf/open/floor/plating/airless/warnplate{dir = 8},/area/engine/engineering) -"cxy" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/airless,/area/space/nearstation) -"cxz" = (/obj/machinery/field/generator{anchored = 1; state = 2},/turf/open/floor/plating/airless,/area/space/nearstation) -"cxA" = (/turf/open/floor/plating/airless/warnplate{dir = 4},/area/engine/engineering) -"cxB" = (/obj/machinery/power/emitter{anchored = 1; dir = 8; state = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating/airless,/area/engine/engineering) -"cxC" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating/airless,/area/engine/engineering) -"cxD" = (/obj/machinery/door/airlock/external{name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/turf/open/floor/plating,/area/engine/engineering) -"cxE" = (/obj/structure/sign/securearea,/turf/closed/wall,/area/engine/engineering) -"cxF" = (/obj/structure/transit_tube{icon_state = "N-SE"},/turf/open/space,/area/space) -"cxG" = (/obj/structure/transit_tube{icon_state = "D-SW"},/turf/open/space,/area/space) -"cxH" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/turret_protected/aisat_interior) -"cxI" = (/turf/closed/wall,/area/space) -"cxJ" = (/obj/item/device/multitool,/turf/open/floor/plating/airless,/area/engine/engineering) -"cxK" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{icon_state = "1-4"; d1 = 1; d2 = 4},/turf/open/floor/plating/airless,/area/space/nearstation) -"cxL" = (/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/power/tesla_coil,/turf/open/floor/plating/airless,/area/space/nearstation) -"cxM" = (/obj/item/weapon/wirecutters,/obj/structure/lattice,/turf/open/space,/area/space/nearstation) -"cxN" = (/obj/structure/cable/yellow{icon_state = "0-4"; d2 = 4},/obj/machinery/power/tesla_coil,/turf/open/floor/plating/airless,/area/space/nearstation) -"cxO" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/open/floor/plating/airless,/area/space/nearstation) -"cxP" = (/obj/structure/transit_tube{icon_state = "D-NE"},/turf/open/space,/area/space) -"cxQ" = (/obj/structure/transit_tube{icon_state = "E-NW"},/turf/open/space,/area/space) -"cxR" = (/obj/structure/transit_tube,/obj/structure/lattice,/turf/open/space,/area/space) -"cxS" = (/obj/structure/transit_tube,/turf/open/space,/area/space) -"cxT" = (/obj/structure/transit_tube{icon_state = "E-W-Pass"},/turf/open/space,/area/space) -"cxU" = (/obj/structure/transit_tube,/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/open/space,/area/space) -"cxV" = (/obj/structure/window/reinforced/fulltile,/obj/structure/transit_tube,/turf/open/floor/plating,/area/turret_protected/aisat_interior) -"cxW" = (/obj/structure/transit_tube,/turf/open/floor/plating,/area/turret_protected/aisat_interior) -"cxX" = (/obj/structure/transit_tube/station{reverse_launch = 1},/turf/open/floor/plating,/area/turret_protected/aisat_interior) -"cxY" = (/obj/structure/transit_tube{dir = 8; icon_state = "Block"},/turf/open/floor/plating,/area/turret_protected/aisat_interior) -"cxZ" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/grille,/turf/open/floor/plating/airless,/area/engine/engineering) -"cya" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/grille,/turf/open/floor/plating/airless,/area/engine/engineering) -"cyb" = (/obj/effect/landmark/event_spawn,/turf/open/space,/area/space/nearstation) -"cyc" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/grille,/turf/open/floor/plating/airless,/area/engine/engineering) -"cyd" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/grille,/turf/open/floor/plating/airless,/area/engine/engineering) -"cye" = (/turf/open/floor/plating/warnplate{dir = 1},/area/turret_protected/aisat_interior) -"cyf" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plating/warnplate{dir = 1},/area/turret_protected/aisat_interior) -"cyg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/grille,/turf/open/floor/plating/airless,/area/engine/engineering) -"cyh" = (/turf/open/floor/plating/airless/warnplate{dir = 9},/area/space/nearstation) -"cyi" = (/turf/open/floor/plating/airless/warnplate{dir = 1},/area/space/nearstation) -"cyj" = (/turf/open/floor/plating/airless/warnplate{dir = 5},/area/space/nearstation) -"cyk" = (/obj/item/weapon/crowbar,/turf/open/space,/area/space/nearstation) -"cyl" = (/obj/machinery/door/airlock/external{name = "MiniSat External Access"; req_access = null; req_access_txt = "65;13"},/turf/open/floor/plating,/area/turret_protected/aisat_interior) -"cym" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/open/floor/plating,/area/turret_protected/aisat_interior) -"cyn" = (/turf/open/floor/plating,/area/turret_protected/aisat_interior) -"cyo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/turret_protected/aisat_interior) -"cyp" = (/obj/machinery/light{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/grille,/turf/open/floor/plating/airless,/area/engine/engineering) -"cyq" = (/obj/machinery/the_singularitygen,/turf/open/floor/plating/airless/warnplate{dir = 8},/area/space/nearstation) -"cyr" = (/obj/item/weapon/wrench,/turf/open/floor/plating/airless,/area/space/nearstation) -"cys" = (/obj/machinery/the_singularitygen/tesla,/turf/open/floor/plating/airless/warnplate{dir = 4},/area/space/nearstation) -"cyt" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/grille,/turf/open/floor/plating/airless,/area/engine/engineering) -"cyu" = (/obj/structure/lattice/catwalk,/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/open/space,/area/space) -"cyv" = (/obj/structure/closet/emcloset,/turf/open/floor/plating,/area/turret_protected/aisat_interior) -"cyw" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/sign/securearea{pixel_y = -32},/turf/open/floor/plating,/area/turret_protected/aisat_interior) -"cyx" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -29},/obj/machinery/light/small,/turf/open/floor/plating,/area/turret_protected/aisat_interior) -"cyy" = (/obj/machinery/camera{c_tag = "MiniSat Pod Access"; dir = 1; network = list("MiniSat"); pixel_x = 0; pixel_y = 0; start_active = 1},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1},/obj/machinery/light/small,/turf/open/floor/plating,/area/turret_protected/aisat_interior) -"cyz" = (/obj/item/weapon/weldingtool,/turf/open/space,/area/space/nearstation) -"cyA" = (/turf/open/floor/plating/airless/warnplate{dir = 10},/area/space/nearstation) -"cyB" = (/turf/open/floor/plating/airless/warnplate{dir = 2},/area/space/nearstation) -"cyC" = (/turf/open/floor/plating/airless/warnplate{dir = 6},/area/space/nearstation) -"cyD" = (/turf/closed/wall,/area/turret_protected/aisat_interior) -"cyE" = (/obj/machinery/door/airlock/hatch{name = "MiniSat Foyer"; req_one_access_txt = "65"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/turret_protected/aisat_interior) -"cyF" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/closed/wall,/area/turret_protected/aisat_interior) -"cyG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/turret_protected/aisat_interior) -"cyH" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 8},/turf/open/floor/plating/airless,/area/turret_protected/aisat_interior) -"cyI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard) -"cyJ" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard) -"cyK" = (/obj/structure/table,/obj/machinery/light/small{dir = 1},/obj/item/weapon/folder{pixel_x = 3},/obj/item/weapon/phone{pixel_x = -3; pixel_y = 3},/obj/item/weapon/pen,/turf/open/floor/plasteel/vault{dir = 8},/area/turret_protected/aisat_interior) -"cyL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/turret_protected/aisat_interior) -"cyM" = (/obj/structure/rack{dir = 1},/obj/machinery/light/small{dir = 1},/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/device/radio/off{pixel_y = 4},/obj/item/weapon/screwdriver{pixel_y = 10},/turf/open/floor/plasteel/vault{dir = 8},/area/turret_protected/aisat_interior) -"cyN" = (/obj/item/device/radio/off,/turf/open/floor/plating/airless,/area/engine/engineering) -"cyO" = (/obj/machinery/airalarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/computer/station_alert,/turf/open/floor/plasteel/vault{dir = 8},/area/turret_protected/aisat_interior) -"cyP" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/grimy,/area/turret_protected/aisat_interior) -"cyQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/grimy,/area/turret_protected/aisat_interior) -"cyR" = (/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,/turf/open/floor/plasteel/grimy,/area/turret_protected/aisat_interior) -"cyS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/open/floor/plasteel/black,/area/turret_protected/aisat_interior) -"cyT" = (/obj/machinery/door/poddoor/shutters{id = "teledoor"; name = "MiniSat Teleport Access"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/turret_protected/aisat_interior) -"cyU" = (/obj/machinery/button/door{id = "teledoor"; name = "MiniSat Teleport Shutters Control"; pixel_x = 0; pixel_y = 25; req_access_txt = "17;65"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/darkwarning{dir = 4},/area/turret_protected/aisat_interior) -"cyV" = (/obj/machinery/teleport/hub,/turf/open/floor/plating,/area/turret_protected/aisat_interior) -"cyW" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating/airless,/area/engine/engineering) -"cyX" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating/airless,/area/engine/engineering) -"cyY" = (/obj/machinery/computer/security/telescreen/entertainment{pixel_x = -31},/obj/machinery/computer/monitor,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel/vault{dir = 8},/area/turret_protected/aisat_interior) -"cyZ" = (/obj/structure/chair/office/dark{dir = 8},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/grimy,/area/turret_protected/aisat_interior) -"cza" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/effect/landmark/start{name = "Cyborg"},/turf/open/floor/plasteel/grimy,/area/turret_protected/aisat_interior) -"czb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/grimy,/area/turret_protected/aisat_interior) -"czc" = (/turf/open/floor/plasteel/black,/area/turret_protected/aisat_interior) -"czd" = (/obj/machinery/door/airlock/hatch{name = "MiniSat Teleporter"; req_access_txt = "17;65"},/turf/open/floor/plasteel/black,/area/turret_protected/aisat_interior) -"cze" = (/obj/machinery/bluespace_beacon,/turf/open/floor/plasteel/darkwarning{dir = 4},/area/turret_protected/aisat_interior) -"czf" = (/obj/machinery/teleport/station,/obj/machinery/light/small{dir = 4},/turf/open/floor/plating,/area/turret_protected/aisat_interior) -"czg" = (/obj/structure/grille,/turf/open/floor/plating/airless,/area/engine/engineering) -"czh" = (/obj/structure/cable/yellow{icon_state = "0-2"; d2 = 2},/obj/machinery/power/tesla_coil,/turf/open/floor/plating/airless,/area/space/nearstation) -"czi" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/yellow/visible{icon_state = "intact"; dir = 5},/turf/open/space,/area/space) -"czj" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{icon_state = "intact"; dir = 10},/obj/structure/lattice,/turf/open/space,/area/space) -"czk" = (/obj/structure/table,/obj/machinery/microwave{pixel_x = 0; pixel_y = 4},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/plasteel/vault{dir = 8},/area/turret_protected/aisat_interior) -"czl" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/grimy,/area/turret_protected/aisat_interior) -"czm" = (/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/grimy,/area/turret_protected/aisat_interior) -"czn" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/grimy,/area/turret_protected/aisat_interior) -"czo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "MiniSat Foyer APC"; pixel_x = 27; pixel_y = 0},/obj/structure/chair,/turf/open/floor/plasteel/black,/area/turret_protected/aisat_interior) -"czp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/turret_protected/aisat_interior) -"czq" = (/obj/machinery/camera{c_tag = "MiniSat Teleporter"; dir = 1; network = list("MiniSat"); pixel_x = 0; pixel_y = 0; start_active = 1},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/darkwarning{dir = 4},/area/turret_protected/aisat_interior) -"czr" = (/obj/machinery/computer/teleporter,/turf/open/floor/plating,/area/turret_protected/aisat_interior) -"czs" = (/obj/structure/cable,/obj/machinery/power/tracker,/turf/open/floor/plasteel/airless/solarpanel,/area/solar/starboard) -"czt" = (/obj/machinery/camera/emp_proof{c_tag = "Singularity West"; dir = 1; network = list("Singularity")},/turf/open/floor/plating/airless,/area/engine/engineering) -"czu" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/turf/open/floor/plating/airless,/area/space/nearstation) -"czv" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/open/floor/plating/airless,/area/space/nearstation) -"czw" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/open/floor/plating/airless,/area/space/nearstation) -"czx" = (/obj/machinery/camera/emp_proof{c_tag = "Singularity East"; dir = 1; network = list("Singularity")},/turf/open/floor/plating/airless,/area/engine/engineering) -"czy" = (/turf/closed/wall/r_wall,/area/turret_protected/AIsatextAS{name = "AI Satellite Atmospherics"}) -"czz" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible,/obj/machinery/meter,/turf/closed/wall/r_wall,/area/turret_protected/AIsatextAS{name = "AI Satellite Atmospherics"}) -"czA" = (/obj/structure/rack{dir = 1},/obj/machinery/status_display{pixel_y = -32},/obj/item/weapon/storage/box/donkpockets,/turf/open/floor/plasteel/vault{dir = 8},/area/turret_protected/aisat_interior) -"czB" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -29},/obj/machinery/light/small,/turf/open/floor/plasteel/black,/area/turret_protected/aisat_interior) -"czC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/turret_protected/aisat_interior) -"czD" = (/obj/machinery/turretid{control_area = null; enabled = 1; icon_state = "control_standby"; name = "Antechamber Turret Control"; pixel_x = 0; pixel_y = -24; req_access = list(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/black,/area/turret_protected/aisat_interior) -"czE" = (/obj/machinery/ai_status_display{pixel_y = -32},/obj/structure/table,/turf/open/floor/plasteel/vault{dir = 8},/area/turret_protected/aisat_interior) -"czF" = (/turf/closed/wall/r_wall,/area/turret_protected/AIsatextFP{name = "AI Satellite Service"}) -"czG" = (/obj/structure/sign/securearea,/turf/closed/wall/r_wall,/area/engine/engineering) -"czH" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible,/obj/structure/rack,/obj/item/weapon/wrench,/obj/item/weapon/crowbar/red,/obj/item/clothing/head/welding,/turf/open/floor/plating,/area/turret_protected/AIsatextAS{name = "AI Satellite Atmospherics"}) -"czI" = (/obj/machinery/atmospherics/components/unary/tank/air,/turf/open/floor/plating,/area/turret_protected/AIsatextAS{name = "AI Satellite Atmospherics"}) -"czJ" = (/turf/closed/wall/r_wall,/area/turret_protected/aisat_interior) -"czK" = (/obj/structure/cable{d1 = 1; d2 = 2; 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/black,/area/turret_protected/aisat_interior) -"czL" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/turret_protected/aisat_interior) -"czM" = (/obj/machinery/recharge_station,/turf/open/floor/plating,/area/turret_protected/AIsatextFP{name = "AI Satellite Service"}) -"czN" = (/obj/machinery/portable_atmospherics/canister/air,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/plating/warnplate/corner{tag = "icon-warnplatecorner"; dir = 2},/area/turret_protected/AIsatextAS{name = "AI Satellite Atmospherics"}) -"czO" = (/obj/machinery/atmospherics/components/binary/pump{dir = 2; name = "Mix to MiniSat"},/turf/open/floor/plating/warnplate{icon_plating = "warnplate"},/area/turret_protected/AIsatextAS{name = "AI Satellite Atmospherics"}) -"czP" = (/obj/machinery/atmospherics/components/binary/pump{dir = 0; name = "Air Out"; on = 0},/turf/open/floor/plating/warnplate{icon_plating = "warnplate"},/area/turret_protected/AIsatextAS{name = "AI Satellite Atmospherics"}) -"czQ" = (/obj/structure/showcase{density = 0; desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; dir = 8; icon = 'icons/mob/robots.dmi'; icon_state = "robot_old"; name = "Cyborg Statue"; pixel_x = 9; pixel_y = 2},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/open/floor/plating/warnplate{icon_plating = "warnplate"},/area/turret_protected/AIsatextAS{name = "AI Satellite Atmospherics"}) -"czR" = (/obj/structure/showcase{density = 0; desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; dir = 4; icon = 'icons/mob/robots.dmi'; icon_state = "robot_old"; name = "Cyborg Statue"; pixel_x = -9; pixel_y = 2},/turf/open/floor/plasteel/darkblue/corner{dir = 1},/area/turret_protected/aisat_interior) -"czS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/black,/area/turret_protected/aisat_interior) -"czT" = (/obj/structure/showcase{density = 0; desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; dir = 8; icon = 'icons/mob/robots.dmi'; icon_state = "robot_old"; name = "Cyborg Statue"; pixel_x = 9; pixel_y = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/darkblue/corner{dir = 4},/area/turret_protected/aisat_interior) -"czU" = (/obj/structure/showcase{density = 0; desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; dir = 4; icon = 'icons/mob/robots.dmi'; icon_state = "robot_old"; name = "Cyborg Statue"; pixel_x = -9; pixel_y = 2},/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = 30},/turf/open/floor/plating/warnplate{icon_plating = "warnplate"},/area/turret_protected/AIsatextFP{name = "AI Satellite Service"}) -"czV" = (/turf/open/floor/plating/warnplate{icon_plating = "warnplate"},/area/turret_protected/AIsatextFP{name = "AI Satellite Service"}) -"czW" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/clothing/head/welding,/obj/item/stack/sheet/mineral/plasma{amount = 35; layer = 3.1},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plating/warnplate/corner{dir = 1},/area/turret_protected/AIsatextFP{name = "AI Satellite Service"}) -"czX" = (/obj/machinery/light/small{dir = 8},/obj/machinery/camera{c_tag = "MiniSat Atmospherics"; dir = 4; network = list("MiniSat"); pixel_x = 0; pixel_y = 0; start_active = 1},/obj/machinery/airalarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/space_heater,/turf/open/floor/plating/warnplate{dir = 4},/area/turret_protected/AIsatextAS{name = "AI Satellite Atmospherics"}) -"czY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/turret_protected/AIsatextAS{name = "AI Satellite Atmospherics"}) -"czZ" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/turret_protected/AIsatextAS{name = "AI Satellite Atmospherics"}) -"cAa" = (/obj/machinery/light/small{dir = 4},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 28; pixel_y = 0},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/darkblue/corner{dir = 4},/area/turret_protected/AIsatextAS{name = "AI Satellite Atmospherics"}) -"cAb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/turret_protected/aisat_interior) -"cAc" = (/obj/machinery/light/small{dir = 8},/obj/machinery/camera{c_tag = "MiniSat Antechamber"; dir = 4; network = list("MiniSat"); pixel_x = 0; pixel_y = 0; start_active = 1},/obj/machinery/turretid{control_area = "AI Satellite Atmospherics"; enabled = 1; icon_state = "control_standby"; name = "Atmospherics Turret Control"; pixel_x = -27; pixel_y = 0; req_access = list(65)},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/darkblue/corner{dir = 1},/area/turret_protected/aisat_interior) -"cAd" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/turret_protected/aisat_interior) -"cAe" = (/obj/machinery/light/small{dir = 4},/obj/machinery/turretid{control_area = "AI Satellite Service"; enabled = 1; icon_state = "control_standby"; name = "Service Bay Turret Control"; pixel_x = 27; pixel_y = 0; req_access = list(65)},/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,/turf/open/floor/plasteel/darkblue/corner{dir = 4},/area/turret_protected/aisat_interior) -"cAf" = (/obj/machinery/light/small{dir = 8},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = -28; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/darkblue/corner{dir = 1},/area/turret_protected/AIsatextFP{name = "AI Satellite Service"}) -"cAg" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/turret_protected/AIsatextFP{name = "AI Satellite Service"}) -"cAh" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/turret_protected/AIsatextFP{name = "AI Satellite Service"}) -"cAi" = (/obj/machinery/light/small{dir = 4},/obj/machinery/camera{c_tag = "MiniSat Service Bay"; dir = 8; network = list("MiniSat"); pixel_x = 0; pixel_y = 0; start_active = 1},/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/rack,/obj/item/weapon/storage/toolbox/electrical{pixel_x = -3; pixel_y = 3},/obj/item/weapon/storage/toolbox/mechanical,/obj/item/device/multitool,/turf/open/floor/plating/warnplate{dir = 8},/area/turret_protected/AIsatextFP{name = "AI Satellite Service"}) -"cAj" = (/obj/machinery/power/apc{dir = 8; name = "MiniSat Atmospherics APC"; pixel_x = -27; pixel_y = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/portable_atmospherics/scrubber,/turf/open/floor/plating/warnplate{dir = 4},/area/turret_protected/AIsatextAS{name = "AI Satellite Atmospherics"}) -"cAk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/black,/area/turret_protected/AIsatextAS{name = "AI Satellite Atmospherics"}) -"cAl" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/ai_slipper{icon_state = "motion0"; uses = 10},/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel/black,/area/turret_protected/AIsatextAS{name = "AI Satellite Atmospherics"}) -"cAm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/black,/area/turret_protected/AIsatextAS{name = "AI Satellite Atmospherics"}) -"cAn" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/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/black,/area/turret_protected/aisat_interior) -"cAo" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/turret_protected/aisat_interior) -"cAp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/ai_slipper{icon_state = "motion0"; uses = 10},/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/mob/living/simple_animal/bot/secbot/pingsky,/turf/open/floor/plasteel/black,/area/turret_protected/aisat_interior) -"cAq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/turret_protected/aisat_interior) -"cAr" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/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/black,/area/turret_protected/aisat_interior) -"cAs" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/black,/area/turret_protected/AIsatextFP{name = "AI Satellite Service"}) -"cAt" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/ai_slipper{icon_state = "motion0"; uses = 10},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/open/floor/plasteel/black,/area/turret_protected/AIsatextFP{name = "AI Satellite Service"}) -"cAu" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/black,/area/turret_protected/AIsatextFP{name = "AI Satellite Service"}) -"cAv" = (/obj/machinery/power/apc{dir = 4; name = "MiniSat Service Bay APC"; pixel_x = 27; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/port_gen/pacman,/turf/open/floor/plating/warnplate{dir = 8},/area/turret_protected/AIsatextFP{name = "AI Satellite Service"}) -"cAw" = (/obj/machinery/porta_turret/ai{dir = 4},/turf/open/floor/plasteel/vault{dir = 8},/area/turret_protected/AIsatextAS{name = "AI Satellite Atmospherics"}) -"cAx" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/mob/living/simple_animal/bot/floorbot,/turf/open/floor/plasteel/darkblue/corner,/area/turret_protected/AIsatextAS{name = "AI Satellite Atmospherics"}) -"cAy" = (/obj/structure/sign/securearea{pixel_x = -32; pixel_y = 0},/obj/machinery/porta_turret/ai{dir = 4},/obj/item/device/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/turret_protected/aisat_interior) -"cAz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/turretid{control_area = "AI Satellite Hallway"; enabled = 1; icon_state = "control_standby"; name = "Chamber Hallway Turret Control"; pixel_x = 32; pixel_y = -24; req_access = list(65)},/turf/open/floor/plasteel/black,/area/turret_protected/aisat_interior) -"cAA" = (/obj/machinery/porta_turret/ai{dir = 4},/obj/structure/sign/securearea{pixel_x = 32; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/darkblue/corner,/area/turret_protected/aisat_interior) -"cAB" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/mob/living/simple_animal/bot/cleanbot,/turf/open/floor/plasteel/darkblue/corner{dir = 8},/area/turret_protected/AIsatextFP{name = "AI Satellite Service"}) -"cAC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/turret_protected/AIsatextFP{name = "AI Satellite Service"}) -"cAD" = (/obj/machinery/porta_turret/ai{dir = 4},/turf/open/floor/plasteel/vault{dir = 8},/area/turret_protected/AIsatextFP{name = "AI Satellite Service"}) -"cAE" = (/turf/closed/wall/r_wall,/area/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) -"cAF" = (/turf/closed/wall,/area/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) -"cAG" = (/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/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) -"cAH" = (/obj/structure/cable{d1 = 1; d2 = 2; 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/black,/area/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) -"cAI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) -"cAJ" = (/obj/machinery/door/airlock/maintenance_hatch{name = "MiniSat Maintenance"; req_access_txt = "65"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) -"cAK" = (/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 24; id = "syndicate_southmaint"; name = "south maintenance airlock"; turf_type = /turf/open/space; width = 18},/turf/open/space,/area/space) -"cAL" = (/obj/machinery/portable_atmospherics/scrubber,/turf/open/floor/plating,/area/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) -"cAM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) -"cAN" = (/turf/open/floor/bluegrid,/area/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) -"cAO" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) -"cAP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) -"cAQ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) -"cAR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) -"cAS" = (/obj/structure/rack,/obj/item/weapon/crowbar/red,/obj/item/weapon/wrench,/turf/open/floor/plating,/area/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) -"cAT" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plating,/area/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) -"cAU" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating,/area/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) -"cAV" = (/obj/structure/lattice,/obj/machinery/camera{c_tag = "MiniSat External NorthWest"; dir = 8; network = list("MiniSat"); pixel_x = 0; pixel_y = 0; start_active = 1},/turf/open/space,/area/space) -"cAW" = (/obj/machinery/porta_turret/ai{dir = 4; installation = /obj/item/weapon/gun/energy/gun},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/bluegrid,/area/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) -"cAX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) -"cAY" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) -"cAZ" = (/obj/machinery/porta_turret/ai{dir = 4; installation = /obj/item/weapon/gun/energy/gun},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/open/floor/bluegrid,/area/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) -"cBa" = (/obj/structure/lattice,/obj/machinery/camera{c_tag = "MiniSat External NorthEast"; dir = 4; network = list("MiniSat"); pixel_x = 0; pixel_y = 0; start_active = 1},/turf/open/space,/area/space) -"cBb" = (/obj/structure/sign/securearea{pixel_x = 32; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) -"cBc" = (/obj/machinery/camera/motion{c_tag = "MiniSat Core Hallway"; dir = 4; network = list("MiniSat")},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/bluegrid,/area/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) -"cBd" = (/obj/structure/sign/securearea{pixel_x = -32; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) -"cBe" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) -"cBf" = (/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/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) -"cBg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/bluegrid,/area/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) -"cBh" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) -"cBi" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) -"cBj" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/bluegrid,/area/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) -"cBk" = (/obj/machinery/door/airlock/maintenance_hatch{name = "MiniSat Maintenance"; req_access_txt = "65"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating,/area/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) -"cBl" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating,/area/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) -"cBm" = (/turf/open/floor/plating,/area/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) -"cBn" = (/obj/machinery/airalarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/open/floor/bluegrid,/area/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) -"cBo" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) -"cBp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/black,/area/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) -"cBq" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 4; name = "MiniSat Chamber Hallway APC"; pixel_x = 27; pixel_y = 0},/turf/open/floor/bluegrid,/area/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) -"cBr" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) -"cBs" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/black,/area/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) -"cBt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1447; listening = 0; name = "Station Intercom (AI Private)"; pixel_x = -28; pixel_y = -29},/turf/open/floor/plasteel/black,/area/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) -"cBu" = (/turf/closed/wall/r_wall,/area/turret_protected/ai) -"cBv" = (/obj/machinery/status_display,/turf/closed/wall/r_wall,/area/turret_protected/ai) -"cBw" = (/obj/structure/cable{d1 = 1; d2 = 2; 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/black,/area/turret_protected/ai) -"cBx" = (/obj/structure/sign/securearea,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/turret_protected/ai) -"cBy" = (/obj/machinery/ai_status_display,/turf/closed/wall/r_wall,/area/turret_protected/ai) -"cBz" = (/obj/machinery/light/small{dir = 1},/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen{pixel_x = 4; pixel_y = 4},/turf/open/floor/plasteel/black,/area/turret_protected/ai) -"cBA" = (/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/black,/area/turret_protected/ai) -"cBB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/turret_protected/ai) -"cBC" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plasteel/black,/area/turret_protected/ai) -"cBD" = (/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel/black,/area/turret_protected/ai) -"cBE" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/white,/turf/open/floor/plasteel/black,/area/turret_protected/ai) -"cBF" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/black,/area/turret_protected/ai) -"cBG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/turret_protected/ai) -"cBH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/turret_protected/ai) -"cBI" = (/obj/structure/chair/office/dark,/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/plasteel/black,/area/turret_protected/ai) -"cBJ" = (/obj/structure/grille,/turf/open/floor/plating,/area/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) -"cBK" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/turret_protected/ai) -"cBL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_command{name = "AI Core"; req_access_txt = "65"},/turf/open/floor/plasteel/black,/area/turret_protected/ai) -"cBM" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/turret_protected/ai) -"cBN" = (/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 24; id = "syndicate_se"; name = "southeast of station"; turf_type = /turf/open/space; width = 18},/turf/open/space,/area/space) -"cBO" = (/turf/open/floor/bluegrid,/area/turret_protected/ai) -"cBP" = (/turf/open/floor/plasteel/black,/area/turret_protected/ai) -"cBQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/ai_slipper{icon_state = "motion0"; uses = 10},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/turret_protected/ai) -"cBR" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/status_display{pixel_x = -32},/turf/open/floor/bluegrid,/area/turret_protected/ai) -"cBS" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel/black,/area/turret_protected/ai) -"cBT" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/turret_protected/ai) -"cBU" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/plasteel/black,/area/turret_protected/ai) -"cBV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/black,/area/turret_protected/ai) -"cBW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/black,/area/turret_protected/ai) -"cBX" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/ai_status_display{pixel_x = 32},/turf/open/floor/bluegrid,/area/turret_protected/ai) -"cBY" = (/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/bluegrid,/area/turret_protected/ai) -"cBZ" = (/obj/machinery/door/window{dir = 1; name = "AI Core Door"; req_access_txt = "16"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/bluegrid,/area/turret_protected/ai) -"cCa" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{cell_type = 5000; dir = 2; name = "AI Chamber APC"; pixel_y = -24},/obj/machinery/flasher{id = "AI"; pixel_x = -11; pixel_y = -24},/obj/machinery/camera/motion{c_tag = "MiniSat AI Chamber North"; dir = 1; network = list("MiniSat")},/turf/open/floor/bluegrid,/area/turret_protected/ai) -"cCb" = (/obj/machinery/porta_turret/ai{dir = 4},/turf/open/floor/bluegrid,/area/turret_protected/ai) -"cCc" = (/turf/closed/wall,/area/turret_protected/ai) -"cCd" = (/obj/effect/landmark/start{name = "AI"},/obj/item/device/radio/intercom{broadcasting = 0; freerange = 1; listening = 1; name = "Common Channel"; pixel_x = -27; pixel_y = -9},/obj/item/device/radio/intercom{anyai = 1; freerange = 1; listening = 0; name = "Custom Channel"; pixel_x = 0; pixel_y = -31},/obj/item/device/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/bluegrid,/area/turret_protected/ai) -"cCe" = (/obj/machinery/ai_slipper{icon_state = "motion0"; uses = 10},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/turret_protected/ai) -"cCf" = (/obj/structure/lattice,/obj/machinery/camera{c_tag = "MiniSat External SouthWest"; dir = 8; network = list("MiniSat"); pixel_x = 0; pixel_y = 0; start_active = 1},/turf/open/space,/area/space) -"cCg" = (/obj/effect/landmark{name = "tripai"},/obj/item/device/radio/intercom{anyai = 1; freerange = 1; listening = 0; name = "Custom Channel"; pixel_x = 0; pixel_y = 28},/obj/item/device/radio/intercom{broadcasting = 0; freerange = 1; listening = 1; name = "Common Channel"; pixel_x = -27; pixel_y = 5},/obj/item/device/radio/intercom{anyai = 1; broadcasting = 0; freerange = 1; frequency = 1447; name = "Private Channel"; pixel_x = 0; pixel_y = -25},/turf/open/floor/bluegrid,/area/turret_protected/ai) -"cCh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/showcase{density = 0; desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; dir = 8; icon = 'icons/mob/robots.dmi'; icon_state = "robot_old"; name = "Cyborg Statue"; pixel_x = 9; pixel_y = 2},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel/black,/area/turret_protected/ai) -"cCi" = (/obj/structure/showcase{density = 0; desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; dir = 4; icon = 'icons/mob/robots.dmi'; icon_state = "robot_old"; name = "Cyborg Statue"; pixel_x = -9; pixel_y = 2},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1},/turf/open/floor/plasteel/black,/area/turret_protected/ai) -"cCj" = (/obj/effect/landmark{name = "tripai"},/obj/item/device/radio/intercom{anyai = 1; freerange = 1; listening = 0; name = "Custom Channel"; pixel_x = 0; pixel_y = 28},/obj/item/device/radio/intercom{broadcasting = 0; freerange = 1; listening = 1; name = "Common Channel"; pixel_x = 27; pixel_y = 5},/obj/item/device/radio/intercom{anyai = 1; broadcasting = 0; freerange = 1; frequency = 1447; name = "Private Channel"; pixel_x = 0; pixel_y = -25},/turf/open/floor/bluegrid,/area/turret_protected/ai) -"cCk" = (/obj/structure/lattice,/obj/machinery/camera{c_tag = "MiniSat External SouthEast"; dir = 4; network = list("MiniSat"); pixel_x = 0; pixel_y = 0; start_active = 1},/turf/open/space,/area/space) -"cCl" = (/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 24; id = "syndicate_s"; name = "south of station"; turf_type = /turf/open/space; width = 18},/turf/open/space,/area/space) -"cCm" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/black,/area/turret_protected/ai) -"cCn" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/closed/wall,/area/turret_protected/ai) -"cCo" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/bluegrid,/area/turret_protected/ai) -"cCp" = (/obj/machinery/camera/motion{c_tag = "MiniSat AI Chamber South"; dir = 2; network = list("MiniSat")},/turf/open/floor/bluegrid,/area/turret_protected/ai) -"cCq" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/machinery/ai_slipper{icon_state = "motion0"; uses = 10},/turf/open/floor/bluegrid,/area/turret_protected/ai) -"cCr" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/plasteel/black,/area/turret_protected/ai) -"cCs" = (/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/hologram/holopad,/turf/open/floor/plasteel/black,/area/turret_protected/ai) -"cCt" = (/obj/machinery/camera{c_tag = "MiniSat External South"; dir = 2; network = list("MiniSat"); pixel_x = 0; pixel_y = 0; start_active = 1},/turf/open/space,/area/space) +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aaa" = ( +/turf/open/space, +/area/space) +"aab" = ( +/obj/docking_port/stationary{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 24; + id = "syndicate_n"; + name = "north of station"; + turf_type = /turf/open/space; + width = 18 + }, +/turf/open/space, +/area/space) +"aac" = ( +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/syndicate) +"aad" = ( +/turf/closed/wall/shuttle{ + icon_state = "wall3" + }, +/area/shuttle/syndicate) +"aae" = ( +/obj/effect/landmark{ + name = "carpspawn" + }, +/turf/open/space, +/area/space) +"aaf" = ( +/obj/structure/lattice, +/turf/open/space, +/area/space) +"aag" = ( +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/space) +"aah" = ( +/obj/structure/sign/securearea{ + pixel_y = -32 + }, +/turf/open/space, +/area/space) +"aai" = ( +/turf/closed/wall/r_wall, +/area/security/prison) +"aaj" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/closed/wall/r_wall, +/area/security/prison) +"aak" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/prison) +"aal" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/prison) +"aam" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/window/reinforced/fulltile, +/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/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE"; + pixel_y = 32 + }, +/obj/machinery/hydroponics/soil, +/obj/item/device/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{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"aaw" = ( +/obj/machinery/light{ + icon_state = "tube1"; + 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/weapon/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/weapon/cultivator, +/turf/open/floor/plasteel/green/side{ + dir = 6 + }, +/area/security/prison) +"aaF" = ( +/obj/structure/window/reinforced, +/obj/machinery/hydroponics/soil, +/obj/item/weapon/cultivator, +/turf/open/floor/plasteel/green/side{ + dir = 2 + }, +/area/security/prison) +"aaG" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/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{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plasteel/barber, +/area/security/prison) +"aaM" = ( +/obj/machinery/computer/libraryconsole/bookmanagement{ + pixel_y = 0 + }, +/obj/structure/table, +/obj/machinery/newscaster{ + pixel_x = -32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"aaN" = ( +/obj/structure/table, +/obj/item/weapon/pen, +/turf/open/floor/plasteel, +/area/security/prison) +"aaO" = ( +/obj/structure/table, +/obj/item/weapon/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{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/barber, +/area/security/prison) +"aaR" = ( +/obj/structure/lattice, +/obj/structure/sign/securearea{ + pixel_y = -32 + }, +/turf/open/space, +/area/space) +"aaS" = ( +/obj/structure/grille, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"aaT" = ( +/obj/structure/lattice, +/obj/structure/grille, +/turf/open/space, +/area/space) +"aaU" = ( +/obj/machinery/computer/arcade, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"aaV" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/weapon/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{ + d1 = 1; + d2 = 2; + 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) +"abb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/closed/wall, +/area/security/transfer) +"abc" = ( +/turf/closed/wall, +/area/security/transfer) +"abd" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/closed/wall, +/area/security/transfer) +"abe" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/security/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/transfer) +"abh" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"abi" = ( +/obj/machinery/shower{ + dir = 8 + }, +/obj/item/weapon/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/device/radio/off, +/obj/item/device/taperecorder{ + pixel_y = 0 + }, +/turf/open/floor/carpet, +/area/security/hos) +"abl" = ( +/obj/machinery/vending/security, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"abm" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/firingpins, +/obj/item/weapon/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/weapon/gun/energy/e_gun/dragnet, +/obj/item/weapon/gun/energy/e_gun/dragnet, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/security/armory) +"abo" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/main) +"abp" = ( +/turf/closed/wall, +/area/security/main) +"abq" = ( +/turf/closed/wall, +/area/security/hos) +"abr" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/hos) +"abs" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/power/tracker, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/auxport) +"abt" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/darkwarning{ + dir = 9 + }, +/area/security/transfer) +"abu" = ( +/obj/machinery/door/poddoor{ + id = "executionspaceblast"; + name = "blast door" + }, +/turf/open/floor/plating, +/area/security/transfer) +"abv" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/darkwarning{ + dir = 5 + }, +/area/security/transfer) +"abw" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/flasher{ + id = "executionflash"; + pixel_x = 0; + pixel_y = 25 + }, +/turf/open/floor/plasteel/darkwarning{ + dir = 1 + }, +/area/security/transfer) +"abx" = ( +/obj/machinery/vending/cola, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"aby" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/security/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{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/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{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"abE" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"abH" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/chemimp{ + pixel_x = 6 + }, +/obj/item/weapon/storage/box/trackimp{ + pixel_x = -3 + }, +/obj/item/weapon/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/weapon/shield/riot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/shield/riot, +/obj/item/weapon/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{ + pixel_y = 0 + }, +/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; + name = "motion-sensitive security camera" + }, +/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_x = 0; + pixel_y = 25; + req_access_txt = "0"; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/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_x = 0; + pixel_y = 25; + req_access_txt = "0"; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/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/black, +/area/ai_monitored/security/armory) +"abO" = ( +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"abP" = ( +/obj/structure/closet/secure_closet/security/sec, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"abQ" = ( +/obj/structure/rack, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/item/weapon/gun/energy/ionrifle, +/obj/item/weapon/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; + icon_state = "tube1" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"abS" = ( +/obj/machinery/computer/secure_data, +/turf/open/floor/carpet, +/area/security/hos) +"abT" = ( +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Head of Security's Desk"; + departmentType = 5; + name = "Head of Security RC"; + pixel_x = 0; + pixel_y = 30 + }, +/obj/item/device/radio/intercom{ + dir = 4; + name = "Station Intercom (General)"; + pixel_x = -31 + }, +/obj/structure/table/wood, +/obj/item/weapon/storage/box/seccarts{ + pixel_x = 3; + pixel_y = 2 + }, +/obj/item/weapon/storage/box/deputy, +/turf/open/floor/carpet, +/area/security/hos) +"abU" = ( +/obj/machinery/computer/card/minor/hos, +/turf/open/floor/carpet, +/area/security/hos) +"abV" = ( +/obj/machinery/computer/security, +/turf/open/floor/carpet, +/area/security/hos) +"abW" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = 30; + pixel_y = 0 + }, +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka/badminka, +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass, +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass, +/turf/open/floor/carpet, +/area/security/hos) +"abX" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/power/tracker, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/auxstarboard) +"abY" = ( +/obj/structure/grille, +/turf/open/space, +/area/space) +"abZ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/auxport) +"aca" = ( +/turf/open/floor/plasteel/darkwarning{ + dir = 8 + }, +/area/security/transfer) +"acb" = ( +/obj/machinery/sparker{ + dir = 2; + id = "executionburn"; + pixel_x = 25 + }, +/turf/open/floor/plasteel/darkwarning{ + dir = 4 + }, +/area/security/transfer) +"acc" = ( +/obj/structure/bed, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"acd" = ( +/turf/closed/wall, +/area/security/prison) +"ace" = ( +/obj/machinery/door/poddoor/preopen{ + id = "permacell3"; + name = "cell blast door" + }, +/obj/machinery/door/airlock/glass{ + id_tag = "permabolt3"; + name = "Cell 3" + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"acf" = ( +/obj/machinery/door/poddoor/preopen{ + id = "permacell2"; + name = "cell blast door" + }, +/obj/machinery/door/airlock/glass{ + id_tag = "permabolt2"; + name = "Cell 2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"acg" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "permacell1"; + name = "cell blast door" + }, +/obj/machinery/door/airlock/glass{ + id_tag = "permabolt1"; + name = "Cell 1" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"ach" = ( +/obj/machinery/door/airlock{ + name = "Unisex Restroom"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"aci" = ( +/obj/vehicle/secway, +/turf/open/floor/plasteel/black, +/area/ai_monitored/security/armory) +"acj" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/suit_storage_unit/hos, +/turf/open/floor/carpet, +/area/security/hos) +"ack" = ( +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/ai_monitored/security/armory) +"acl" = ( +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/ai_monitored/security/armory) +"acm" = ( +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 4; + name = "Armory APC"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/ai_monitored/security/armory) +"acn" = ( +/obj/item/weapon/storage/secure/safe/HoS{ + pixel_x = 35 + }, +/obj/structure/closet/secure_closet/hos, +/turf/open/floor/carpet, +/area/security/hos) +"aco" = ( +/obj/structure/closet/bombcloset, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"acp" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"acq" = ( +/obj/effect/landmark{ + name = "secequipment" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"acr" = ( +/obj/structure/chair/comfy/black, +/turf/open/floor/carpet, +/area/security/hos) +"acs" = ( +/obj/machinery/newscaster/security_unit{ + pixel_x = -30; + pixel_y = 0 + }, +/obj/machinery/camera{ + c_tag = "Head of Security's Office"; + dir = 4; + network = list("SS13") + }, +/obj/machinery/recharger{ + pixel_y = 4 + }, +/obj/structure/table/wood, +/turf/open/floor/carpet, +/area/security/hos) +"act" = ( +/obj/machinery/holopad, +/turf/open/floor/carpet, +/area/security/hos) +"acu" = ( +/turf/open/floor/carpet, +/area/security/hos) +"acv" = ( +/obj/structure/closet/secure_closet{ + anchored = 1; + name = "Contraband Locker"; + req_access_txt = "3" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/security/armory) +"acw" = ( +/obj/structure/sign/securearea{ + pixel_y = -32 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/space) +"acx" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/auxstarboard) +"acy" = ( +/obj/structure/lattice, +/obj/item/stack/cable_coil/random, +/turf/open/space, +/area/space) +"acz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/darkwarning{ + dir = 10 + }, +/area/security/transfer) +"acA" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 2 + }, +/turf/open/floor/plasteel/darkwarning{ + dir = 6 + }, +/area/security/transfer) +"acB" = ( +/turf/open/floor/plasteel/darkwarning{ + dir = 2 + }, +/area/security/transfer) +"acC" = ( +/obj/structure/bed, +/obj/machinery/camera{ + c_tag = "Prison Cell 3"; + network = list("SS13","Prison") + }, +/obj/item/device/radio/intercom{ + desc = "Talk through this. It looks like it has been modified to not broadcast."; + dir = 2; + name = "Prison Intercom (General)"; + pixel_x = 0; + 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_x = 0; + pixel_y = 25; + req_access_txt = "0"; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/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/device/radio/intercom{ + desc = "Talk through this. It looks like it has been modified to not broadcast."; + dir = 2; + name = "Prison Intercom (General)"; + pixel_x = 0; + 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/device/radio/intercom{ + desc = "Talk through this. It looks like it has been modified to not broadcast."; + dir = 2; + name = "Prison Intercom (General)"; + pixel_x = 0; + pixel_y = 24; + prison_radio = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"acI" = ( +/obj/machinery/door/poddoor/preopen{ + id = "executionfireblast"; + layer = 2.9; + 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/transfer) +"acJ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"acK" = ( +/obj/structure/sink{ + icon_state = "sink"; + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"acL" = ( +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/ai_monitored/security/armory) +"acM" = ( +/obj/structure/rack, +/obj/item/weapon/gun/energy/e_gun{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/gun/energy/e_gun, +/obj/item/weapon/gun/energy/e_gun{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/bot{ + 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/weapon/folder/red, +/obj/item/weapon/stamp/hos, +/turf/open/floor/carpet, +/area/security/hos) +"acR" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp/green{ + on = 0; + pixel_x = -3; + pixel_y = 8 + }, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/turf/open/floor/carpet, +/area/security/hos) +"acS" = ( +/obj/item/weapon/book/manual/wiki/security_space_law, +/obj/structure/table/wood, +/turf/open/floor/carpet, +/area/security/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" + }, +/turf/open/floor/plating, +/area/security/main) +"acV" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/power/solar{ + id = "auxsolareast"; + name = "Port Auxiliary Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/auxport) +"acW" = ( +/obj/structure/cable, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/auxport) +"acX" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/poddoor/preopen{ + id = "executionfireblast"; + layer = 2.9; + name = "blast door" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plating, +/area/security/transfer) +"acY" = ( +/obj/structure/table, +/obj/item/weapon/paper, +/obj/item/weapon/pen, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"acZ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "executionfireblast"; + layer = 2.9; + name = "blast door" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plating, +/area/security/transfer) +"ada" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/obj/machinery/flasher{ + id = "PCell 3"; + pixel_x = -28 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"adb" = ( +/obj/structure/table, +/obj/item/weapon/paper, +/obj/item/weapon/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{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"add" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/obj/machinery/flasher{ + id = "PCell 2"; + pixel_x = -28 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"ade" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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{ + d1 = 1; + d2 = 2; + 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/security/hos) +"adi" = ( +/obj/machinery/flasher/portable, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/security/armory) +"adj" = ( +/obj/structure/rack, +/obj/item/weapon/gun/energy/e_gun/advtaser{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/gun/energy/e_gun/advtaser, +/obj/item/weapon/gun/energy/e_gun/advtaser{ + pixel_x = 3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/bot{ + dir = 2 + }, +/area/ai_monitored/security/armory) +"adk" = ( +/obj/structure/rack, +/obj/item/weapon/gun/ballistic/shotgun/riot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/gun/ballistic/shotgun/riot, +/obj/item/weapon/gun/ballistic/shotgun/riot{ + pixel_x = 3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/bot{ + 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_x = 0; + pixel_y = -26; + req_access_txt = "3" + }, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/ai_monitored/security/armory) +"adm" = ( +/obj/structure/grille, +/obj/structure/disposalpipe/segment, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/hos) +"adn" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/security/hos) +"ado" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/carpet, +/area/security/hos) +"adp" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/carpet, +/area/security/hos) +"adq" = ( +/obj/structure/table/wood, +/obj/item/device/instrument/guitar{ + pixel_x = -7 + }, +/obj/item/device/instrument/eguitar{ + pixel_x = 5 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"adr" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = -32; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/security/main) +"ads" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/power/solar{ + id = "auxsolareast"; + name = "Port Auxiliary Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/auxstarboard) +"adt" = ( +/obj/structure/cable, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/auxstarboard) +"adu" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/auxport) +"adv" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/auxport) +"adw" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/auxport) +"adx" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/auxport) +"ady" = ( +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/auxport) +"adz" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/auxport) +"adA" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/auxport) +"adB" = ( +/obj/structure/sign/securearea{ + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/space, +/area/space) +"adC" = ( +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/weapon/scalpel{ + pixel_y = 12 + }, +/obj/item/weapon/circular_saw, +/obj/item/weapon/hemostat, +/obj/item/weapon/retractor, +/obj/item/weapon/surgical_drapes, +/obj/item/weapon/razor, +/turf/open/floor/plasteel/black, +/area/security/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/black, +/area/security/transfer) +"adE" = ( +/obj/structure/table, +/obj/item/weapon/folder/red{ + pixel_x = 3 + }, +/obj/item/device/taperecorder{ + pixel_x = -3; + pixel_y = 0 + }, +/obj/item/device/assembly/flash/handheld, +/obj/item/weapon/reagent_containers/spray/pepper, +/turf/open/floor/plasteel/black, +/area/security/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/glass_security{ + name = "Long-Term Cell 3"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"adI" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Long-Term Cell 2"; + req_access_txt = "2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"adJ" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Long-Term Cell 1"; + req_access_txt = "2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"adK" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 2 + }, +/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{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/carpet, +/area/security/hos) +"adN" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Head of Security's Office APC"; + pixel_x = -24; + pixel_y = 0 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/carpet, +/area/security/hos) +"adO" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"adP" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/carpet, +/area/security/hos) +"adQ" = ( +/turf/open/floor/plasteel/warning{ + dir = 2 + }, +/area/ai_monitored/security/armory) +"adR" = ( +/turf/closed/wall/r_wall, +/area/security/main) +"adS" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/auxstarboard) +"adT" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/auxstarboard) +"adU" = ( +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/auxstarboard) +"adV" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/auxstarboard) +"adW" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/auxstarboard) +"adX" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/auxstarboard) +"adY" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/auxstarboard) +"adZ" = ( +/obj/structure/cable, +/obj/machinery/power/solar{ + id = "auxsolareast"; + name = "Port Auxiliary Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/auxport) +"aea" = ( +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/turf/open/floor/plating/warnplate{ + dir = 9 + }, +/area/security/transfer) +"aeb" = ( +/obj/structure/table, +/obj/item/device/flashlight/lamp, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"aec" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/security/transfer) +"aed" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/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/black, +/area/security/transfer) +"aee" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/security/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/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{ + desc = "Used for watching Prison Wing holding areas."; + name = "Prison Monitor"; + network = list("Prison"); + pixel_x = 0; + pixel_y = 30 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/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{ + desc = "Used for watching Prison Wing holding areas."; + name = "Prison Monitor"; + network = list("Prison"); + pixel_x = 0; + 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{ + d1 = 1; + d2 = 2; + 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"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/prison) +"aes" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/suit_storage_unit/security, +/turf/open/floor/plasteel/red/side, +/area/ai_monitored/security/armory) +"aet" = ( +/turf/open/floor/plasteel/warning/corner{ + dir = 1 + }, +/area/ai_monitored/security/armory) +"aeu" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + 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; + icon_state = "tube1" + }, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = 30; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"aew" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"aex" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/hos) +"aey" = ( +/obj/machinery/door/airlock/glass_command{ + name = "Head of Security"; + req_access_txt = "58" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/carpet, +/area/security/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, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/security/main) +"aeB" = ( +/obj/structure/table, +/obj/item/stack/packageWrap, +/obj/item/weapon/pen, +/turf/open/floor/plasteel, +/area/security/main) +"aeC" = ( +/obj/machinery/camera{ + c_tag = "Security Escape Pod"; + dir = 4; + network = list("SS13") + }, +/turf/open/floor/plating, +/area/security/main) +"aeD" = ( +/obj/structure/shuttle/engine/propulsion/burst{ + dir = 4 + }, +/turf/closed/wall/mineral/titanium, +/area/shuttle/pod_3) +"aeE" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/pod_3) +"aeF" = ( +/turf/closed/wall/mineral/titanium/overspace, +/area/shuttle/pod_3) +"aeG" = ( +/obj/structure/cable, +/obj/machinery/power/solar{ + id = "auxsolareast"; + name = "Port Auxiliary Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/auxstarboard) +"aeH" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/security/transfer) +"aeI" = ( +/obj/structure/rack, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/item/device/flashlight{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/item/weapon/tank/internals/anesthetic{ + pixel_x = -3; + pixel_y = 1 + }, +/obj/item/weapon/tank/internals/oxygen/red{ + pixel_x = 3 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/transfer) +"aeJ" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/turf/open/floor/plating, +/area/security/transfer) +"aeK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"aeL" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"aeM" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + 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{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + aiControlDisabled = 0; + icon_state = "door_closed"; + id_tag = null; + locked = 0; + name = "Prisoner Transfer Centre"; + req_access = null; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"aeO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + 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{ + d1 = 2; + d2 = 4; + 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{ + d1 = 4; + d2 = 8; + 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{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aeT" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aeU" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/security/prison) +"aeV" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aeW" = ( +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + pixel_x = -30; + pixel_y = 0 + }, +/obj/machinery/camera{ + c_tag = "Brig Control Room"; + dir = 4 + }, +/obj/machinery/light{ + icon_state = "tube1"; + 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/grille, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/ai_monitored/security/armory) +"aeY" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/door/window/southleft{ + name = "Armory"; + req_access_txt = "3" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/ai_monitored/security/armory) +"aeZ" = ( +/obj/structure/grille, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/ai_monitored/security/armory) +"afa" = ( +/obj/machinery/door/airlock/titanium{ + name = "Emergency Shuttle Airlock" + }, +/obj/docking_port/mobile/emergency{ + name = "Box emergency shuttle"; + timid = 0 + }, +/obj/docking_port/stationary{ + dir = 4; + dwidth = 12; + height = 18; + id = "emergency_home"; + name = "BoxStation emergency evac bay"; + turf_type = /turf/open/space; + width = 32 + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"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/device/radio/intercom{ + freerange = 0; + frequency = 1459; + name = "Station Intercom (General)"; + pixel_x = 29 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/closet/wardrobe/red, +/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{ + name = "Security Officer" + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/main) +"afg" = ( +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/main) +"afh" = ( +/obj/effect/landmark/start{ + name = "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 = 4; + icon_state = "pipe-c" + }, +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/main) +"afj" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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 = 8; + icon_state = "pipe-c" + }, +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/main) +"afl" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/security/main) +"afm" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/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"; + req_access_txt = "0" + }, +/turf/open/floor/plating, +/area/security/main) +"afp" = ( +/obj/machinery/door/airlock/titanium{ + name = "Escape Pod Airlock" + }, +/obj/docking_port/mobile/pod{ + dir = 4; + id = "pod3"; + name = "escape pod 3"; + port_angle = 180; + preferred_direction = 4 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_3) +"afq" = ( +/obj/machinery/computer/shuttle/pod{ + pixel_y = -32; + possible_destinations = "pod_asteroid3"; + shuttleId = "pod3" + }, +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/status_display{ + density = 0; + layer = 3; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_3) +"afr" = ( +/obj/item/device/radio/intercom{ + pixel_y = 25 + }, +/obj/item/weapon/storage/pod{ + pixel_x = 6; + pixel_y = -32 + }, +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_3) +"afs" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/pod_3) +"aft" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/turf/open/floor/plating/warnplate{ + dir = 10 + }, +/area/security/transfer) +"afu" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/transfer) +"afv" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/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" + }, +/turf/open/floor/plating/warnplate, +/area/security/transfer) +"afx" = ( +/obj/machinery/light_switch{ + pixel_x = 25; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 9 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"afy" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"afz" = ( +/obj/structure/table, +/obj/item/weapon/restraints/handcuffs, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/security/prison) +"afA" = ( +/turf/closed/wall/r_wall, +/area/security/transfer) +"afB" = ( +/obj/item/device/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{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/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/device/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/device/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{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/item/weapon/storage/box/hug, +/obj/item/weapon/razor{ + pixel_x = -6 + }, +/turf/open/floor/plasteel/red/side, +/area/security/prison) +"afH" = ( +/obj/structure/closet/secure_closet/brig{ + anchored = 1 + }, +/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/glass_security{ + id_tag = null; + 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 = null; + req_access_txt = "19" + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"afP" = ( +/obj/machinery/door/airlock/command{ + cyclelinkeddir = 2; + name = "Command Tool Storage"; + req_access = null; + req_access_txt = "19" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/storage/eva) +"afQ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/sign/securearea{ + pixel_x = -32 + }, +/turf/open/floor/plating, +/area/security/main) +"afR" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/main) +"afS" = ( +/obj/machinery/door/airlock/glass_security{ + 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{ + name = "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/weapon/restraints/handcuffs, +/obj/item/device/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{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/landmark/start{ + name = "Head of Security" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/main) +"afY" = ( +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/main) +"afZ" = ( +/obj/structure/table, +/obj/item/device/radio/off, +/obj/item/weapon/screwdriver{ + pixel_y = 10 + }, +/turf/open/floor/plasteel, +/area/security/main) +"aga" = ( +/obj/structure/sign/pods{ + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/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/atmos) +"age" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/atmos) +"agf" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal{ + amount = 1 + }, +/obj/item/weapon/storage/box/bodybags, +/obj/item/weapon/pen, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"agg" = ( +/obj/structure/closet/secure_closet/injection, +/obj/structure/cable, +/obj/machinery/power/apc{ + dir = 2; + name = "Prisoner Transfer Centre"; + pixel_x = 0; + pixel_y = -27 + }, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"agh" = ( +/obj/structure/table, +/obj/item/device/electropack, +/obj/item/weapon/screwdriver, +/obj/item/weapon/wrench, +/obj/item/clothing/head/helmet, +/obj/item/device/assembly/signaler, +/obj/machinery/light/small, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"agi" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_security{ + 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/glass_security{ + name = "Prison Wing"; + req_access_txt = "2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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 = null; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/black, +/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{ + d1 = 2; + d2 = 8; + icon_state = "2-8"; + tag = "" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 2 + }, +/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/black, +/area/security/prison) +"agt" = ( +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"agu" = ( +/obj/structure/table, +/obj/machinery/recharger, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"agv" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/atmos) +"agw" = ( +/obj/structure/table, +/obj/machinery/syndicatebomb/training, +/obj/item/weapon/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{ + name = "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{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/main) +"agB" = ( +/obj/structure/table, +/obj/item/device/assembly/flash/handheld, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/main) +"agC" = ( +/obj/machinery/holopad, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/security/brig) +"agE" = ( +/obj/structure/table, +/obj/item/weapon/folder/red, +/obj/item/weapon/pen, +/turf/open/floor/plasteel, +/area/security/main) +"agF" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/sign/securearea{ + pixel_x = -32; + pixel_y = 0 + }, +/obj/machinery/door/poddoor/preopen{ + id = "Prison Gate"; + name = "prison blast door" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/security/brig) +"agG" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/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/black, +/area/security/prison) +"agI" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/prison) +"agJ" = ( +/obj/item/weapon/cigbutt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/black, +/area/security/prison) +"agK" = ( +/turf/open/floor/plasteel/black, +/area/security/prison) +"agL" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/security/prison) +"agM" = ( +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/mask/surgical, +/obj/item/weapon/reagent_containers/spray/cleaner, +/obj/structure/table/glass, +/turf/open/floor/plasteel/whitered/side{ + dir = 9 + }, +/area/security/brig) +"agN" = ( +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/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{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/brig) +"agQ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"agR" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/warden) +"agS" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"agT" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + 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{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"agW" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/window/reinforced/fulltile, +/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/weapon/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{ + name = "Security Officer" + }, +/turf/open/floor/plasteel, +/area/security/main) +"ahc" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/security/main) +"ahd" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/wiki/security_space_law, +/obj/item/weapon/book/manual/wiki/security_space_law, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/main) +"ahe" = ( +/obj/structure/disposalpipe/sortjunction{ + dir = 4; + icon_state = "pipe-j2s"; + sortType = 8 + }, +/turf/open/floor/plasteel, +/area/security/main) +"ahf" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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{ + name = "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/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/turf/open/floor/plasteel, +/area/security/main) +"ahi" = ( +/obj/structure/disposalpipe/sortjunction{ + dir = 4; + icon_state = "pipe-j2s"; + sortType = 7 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + 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 + }, +/turf/open/floor/plasteel/delivery, +/area/security/main) +"ahk" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"ahl" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + dir = 8; + freq = 1400; + location = "Security" + }, +/obj/structure/plasticflaps{ + opacity = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/bot, +/area/security/main) +"ahm" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/iv_drip{ + density = 0 + }, +/obj/item/weapon/reagent_containers/blood/empty, +/turf/open/floor/plasteel/whitered/side{ + dir = 5 + }, +/area/security/brig) +"ahn" = ( +/turf/closed/wall, +/area/maintenance/fsmaint) +"aho" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/prison) +"ahp" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/security/prison) +"ahq" = ( +/obj/structure/table, +/obj/item/device/flashlight/lamp, +/turf/open/floor/plasteel/black, +/area/security/prison) +"ahr" = ( +/obj/structure/closet{ + name = "Evidence Closet" + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/brig) +"ahs" = ( +/obj/item/device/radio/intercom{ + freerange = 0; + frequency = 1459; + name = "Station Intercom (General)"; + pixel_x = 0; + 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{ + tag = "icon-whiteredcorner (WEST)"; + dir = 8 + }, +/area/security/brig) +"ahu" = ( +/obj/item/weapon/storage/box/bodybags, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27; + pixel_y = 0 + }, +/obj/item/weapon/reagent_containers/syringe{ + name = "steel point" + }, +/obj/item/weapon/reagent_containers/glass/bottle/charcoal, +/obj/item/weapon/reagent_containers/glass/bottle/epinephrine, +/obj/machinery/light{ + icon_state = "tube1"; + 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"; + pixel_x = -24; + pixel_y = 0 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"ahw" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"ahx" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"ahy" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"ahz" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"ahA" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + 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{ + d1 = 4; + d2 = 8; + 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{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/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"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/whitered/side{ + dir = 4 + }, +/area/security/brig) +"ahE" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Brig Control"; + req_access_txt = "3" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + 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{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/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{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + 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{ + icon_state = "pipe-y"; + dir = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"ahI" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/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{ + d1 = 4; + d2 = 8; + 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{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/chair, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/turf/open/floor/plasteel, +/area/security/main) +"ahL" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"ahM" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + 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"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/structure/cable{ + d2 = 8; + 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/security/main) +"ahP" = ( +/turf/open/floor/plasteel/white, +/area/security/brig) +"ahQ" = ( +/obj/structure/closet/secure_closet/warden, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"ahR" = ( +/obj/structure/chair/office/dark, +/obj/effect/landmark/start{ + name = "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; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"ahS" = ( +/obj/structure/table, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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/fsmaint) +"ahU" = ( +/obj/structure/closet{ + name = "Evidence Closet" + }, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/security/brig) +"ahV" = ( +/obj/structure/table, +/obj/item/weapon/folder/red, +/obj/item/device/taperecorder{ + pixel_y = 0 + }, +/turf/open/floor/plasteel/black, +/area/security/prison) +"ahW" = ( +/obj/structure/bodycontainer/morgue, +/obj/machinery/camera{ + c_tag = "Brig Infirmary"; + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"ahX" = ( +/obj/structure/table, +/obj/item/device/radio/intercom{ + dir = 4; + name = "Station Intercom (General)"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/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 = 8; + icon_state = "pipe-c" + }, +/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{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"aic" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"aid" = ( +/turf/open/floor/plasteel/whitered/side{ + dir = 10 + }, +/area/security/brig) +"aie" = ( +/obj/structure/table, +/obj/item/weapon/folder/red, +/obj/item/weapon/pen, +/obj/item/weapon/hand_labeler, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/weapon/book/manual/wiki/security_space_law, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"aif" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"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/grille, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/window/reinforced/fulltile, +/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{ + d1 = 1; + d2 = 2; + 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 + }, +/turf/open/floor/plasteel/black, +/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{ + amount = 50 + }, +/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; + network = list("SS13") + }, +/obj/machinery/computer/secure_data, +/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/vacantoffice2) +"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/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/obj/machinery/computer/security, +/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{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/red/side, +/area/security/main) +"aiv" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/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"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/whitered/side{ + dir = 4 + }, +/area/security/brig) +"aix" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/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{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/security/brig) +"aiA" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"aiB" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/security/prison) +"aiC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/security/prison) +"aiD" = ( +/obj/structure/bodycontainer/morgue, +/turf/open/floor/plasteel/black, +/area/security/brig) +"aiE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/black, +/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 = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) +"aiI" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE"; + pixel_x = -32 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/warden) +"aiJ" = ( +/obj/structure/table/reinforced, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 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/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/weapon/pen{ + pixel_x = 4; + pixel_y = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"aiK" = ( +/obj/structure/grille, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/warden) +"aiL" = ( +/obj/structure/grille, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/warden) +"aiM" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Brig Control"; + req_access_txt = "3" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"aiN" = ( +/obj/structure/grille, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/window/reinforced/fulltile, +/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) +"aiT" = ( +/turf/closed/wall, +/area/security/processing) +"aiU" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/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 = null; + req_access_txt = "63" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/security/prison) +"aiX" = ( +/turf/closed/wall/r_wall, +/area/security/brig) +"aiY" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/courtroom) +"aiZ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/security/brig) +"aja" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/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/goldenplaque{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) +"aje" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) +"ajf" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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{ + d1 = 1; + d2 = 8; + 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/securearea{ + pixel_x = -32 + }, +/obj/item/weapon/gavelhammer, +/turf/open/floor/plasteel, +/area/crew_quarters/courtroom) +"aji" = ( +/obj/structure/chair{ + name = "Judge" + }, +/turf/open/floor/plasteel/blue/side{ + dir = 9 + }, +/area/crew_quarters/courtroom) +"ajj" = ( +/obj/item/device/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 = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/courtroom) +"ajk" = ( +/obj/structure/chair{ + name = "Judge" + }, +/turf/open/floor/plasteel/blue/side{ + dir = 5 + }, +/area/crew_quarters/courtroom) +"ajl" = ( +/obj/structure/chair{ + name = "Judge" + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 1 + }, +/area/crew_quarters/courtroom) +"ajm" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/courtroom) +"ajn" = ( +/turf/open/floor/plasteel, +/area/crew_quarters/courtroom) +"ajo" = ( +/turf/closed/wall, +/area/crew_quarters/courtroom) +"ajp" = ( +/turf/open/floor/plasteel/black, +/area/crew_quarters/courtroom) +"ajq" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/auxport) +"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/securearea{ + pixel_x = 32; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/table, +/obj/item/weapon/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{ + name = "Labor Camp Monitoring"; + network = list("Labor") + }, +/turf/open/floor/plasteel, +/area/security/processing) +"ajv" = ( +/obj/machinery/light{ + icon_state = "tube1"; + 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 = "Labor Shuttle Dock APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 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{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/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/weapon/storage/toolbox/drone, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/ai_monitored/security/armory) +"ajD" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + 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/crew_quarters/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/crew_quarters/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{ + d1 = 1; + d2 = 2; + 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/crew_quarters/courtroom) +"ajN" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + name = "Brig"; + req_access = null; + 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/device/radio/intercom{ + broadcasting = 0; + dir = 8; + listening = 1; + name = "Station Intercom (Court)"; + pixel_x = 0 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/crew_quarters/courtroom) +"ajP" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 9 + }, +/area/crew_quarters/courtroom) +"ajQ" = ( +/obj/structure/table/wood, +/obj/item/weapon/book/manual/wiki/security_space_law, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/crew_quarters/courtroom) +"ajR" = ( +/obj/structure/table/wood, +/obj/item/weapon/gavelblock, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/crew_quarters/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/crew_quarters/courtroom) +"ajT" = ( +/obj/structure/chair{ + dir = 8; + name = "Defense" + }, +/turf/open/floor/plasteel/green/side{ + dir = 5 + }, +/area/crew_quarters/courtroom) +"ajU" = ( +/obj/machinery/door/window/southleft{ + name = "Court Cell"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/courtroom) +"ajV" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/auxsolarport) +"ajW" = ( +/obj/machinery/door/airlock/external{ + name = "Solar Maintenance"; + req_access = null; + req_access_txt = "10; 13" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarport) +"ajX" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/labor) +"ajY" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Unfiltered to Port"; + on = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"ajZ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/mining_construction) +"aka" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"akb" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 1 + }, +/area/security/processing) +"akc" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"akd" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/processing) +"ake" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + 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{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + name = "Labor Shuttle"; + req_access = null; + req_access_txt = "2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"akg" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + 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{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aki" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + 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{ + d1 = 4; + d2 = 8; + 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/weapon/folder/blue, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/crew_quarters/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{ + d1 = 1; + d2 = 2; + 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/crew_quarters/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/crew_quarters/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/crew_quarters/courtroom) +"akB" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarport) +"akC" = ( +/obj/machinery/computer/shuttle/labor, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = -31; + pixel_y = 0 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/labor) +"akD" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/labor) +"akE" = ( +/obj/structure/table, +/obj/item/weapon/folder/red, +/obj/item/weapon/restraints/handcuffs, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/labor) +"akF" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/labor) +"akG" = ( +/obj/structure/grille, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = 32 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/processing) +"akH" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"akI" = ( +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/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{ + d1 = 1; + d2 = 2; + 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/fpmaint) +"akM" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/brig) +"akN" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/brig) +"akO" = ( +/obj/machinery/door/window/brigdoor{ + id = "Cell 1"; + name = "Cell 1"; + req_access_txt = "1" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"akP" = ( +/obj/structure/grille, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/brig) +"akQ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/closed/wall, +/area/security/brig) +"akR" = ( +/obj/machinery/door/window/brigdoor{ + id = "Cell 2"; + name = "Cell 2"; + req_access_txt = "1" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"akS" = ( +/obj/structure/grille, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/brig) +"akT" = ( +/obj/machinery/door/window/brigdoor{ + id = "Cell 3"; + name = "Cell 3"; + req_access_txt = "1" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"akU" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Brig Desk"; + req_access_txt = "1" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"akV" = ( +/obj/structure/grille, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/brig) +"akW" = ( +/obj/machinery/door/airlock/glass_security{ + cyclelinkeddir = 2; + id_tag = "innerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/brig) +"akX" = ( +/obj/machinery/door/airlock/glass_security{ + cyclelinkeddir = 2; + id_tag = "innerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/brig) +"akY" = ( +/obj/structure/grille, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/brig) +"akZ" = ( +/obj/structure/grille, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/brig) +"ala" = ( +/obj/machinery/door/window/brigdoor{ + id = "Cell 4"; + name = "Cell 4"; + req_access_txt = "1" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + 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" + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/crew_quarters/courtroom) +"alc" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/crew_quarters/courtroom) +"ald" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/courtroom) +"ale" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 6 + }, +/area/crew_quarters/courtroom) +"alf" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) +"alg" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/auxstarboard) +"alh" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/external{ + name = "Solar Maintenance"; + req_access = null; + req_access_txt = "10; 13" + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarport) +"ali" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"alj" = ( +/turf/open/floor/mineral/plastitanium, +/area/shuttle/labor) +"alk" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"all" = ( +/obj/machinery/mineral/labor_claim_console{ + machinedir = 2; + pixel_x = 30; + pixel_y = 30 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/labor) +"alm" = ( +/obj/machinery/button/flasher{ + id = "gulagshuttleflasher"; + name = "Flash Control"; + pixel_x = 0; + pixel_y = -26; + req_access_txt = "1" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/labor) +"aln" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 4; + name = "Labor Camp Shuttle Airlock"; + req_access_txt = "2"; + shuttledocked = 1 + }, +/turf/open/floor/plating, +/area/security/processing) +"alo" = ( +/obj/machinery/door/airlock/titanium{ + name = "Labor Shuttle Airlock"; + req_access_txt = "2" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/labor) +"alp" = ( +/turf/open/floor/plating, +/area/security/processing) +"alq" = ( +/turf/open/floor/plasteel, +/area/security/processing) +"alr" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/processing) +"als" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/item/device/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{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 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{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/item/device/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; + req_access_txt = "0" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/button/flasher{ + id = "brigentry"; + pixel_x = -28; + pixel_y = -8 + }, +/turf/open/floor/plasteel/black, +/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/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/black, +/area/security/brig) +"alB" = ( +/obj/machinery/computer/secure_data, +/turf/open/floor/plasteel/black, +/area/security/brig) +"alC" = ( +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/brig) +"alD" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/crew_quarters/courtroom) +"alE" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 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/fpmaint2) +"alG" = ( +/obj/structure/chair{ + dir = 4; + name = "Prosecution" + }, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/crew_quarters/courtroom) +"alH" = ( +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/courtroom) +"alI" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 10 + }, +/area/crew_quarters/courtroom) +"alJ" = ( +/obj/item/device/radio/beacon, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/courtroom) +"alK" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"alL" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/power/apc{ + dir = 8; + name = "Courtroom APC"; + pixel_x = -24; + pixel_y = 0 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/crew_quarters/courtroom) +"alM" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"alN" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/auxstarboard) +"alO" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"alP" = ( +/turf/closed/wall, +/area/maintenance/fsmaint2) +"alQ" = ( +/obj/machinery/power/solar_control{ + id = "auxsolareast"; + name = "Fore Port Solar Control"; + track = 0 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarport) +"alR" = ( +/turf/closed/wall/r_wall, +/area/maintenance/auxsolarport) +"alS" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarport) +"alT" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarport) +"alU" = ( +/turf/closed/wall, +/area/maintenance/fpmaint2) +"alV" = ( +/obj/effect/decal/cleanable/vomit, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"alW" = ( +/obj/item/weapon/cigbutt/cigarbutt, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"alX" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel, +/area/atmos) +"alY" = ( +/obj/machinery/door/airlock/titanium{ + name = "Labor Shuttle Airlock"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/black, +/area/shuttle/labor) +"alZ" = ( +/obj/machinery/mineral/stacking_machine/laborstacker{ + input_dir = 2; + output_dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/shuttle/labor) +"ama" = ( +/mob/living/simple_animal/sloth/paperwork, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"amb" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"amc" = ( +/obj/machinery/computer/shuttle/labor, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/security/processing) +"amd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/processing) +"ame" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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/weapon/bedsheet, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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/weapon/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/weapon/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{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/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/weapon/restraints/handcuffs, +/obj/item/device/radio/off, +/turf/open/floor/plasteel/black, +/area/security/brig) +"amn" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/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/weapon/bedsheet, +/obj/item/device/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/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/crew_quarters/courtroom) +"ams" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/crew_quarters/courtroom) +"amt" = ( +/obj/machinery/door/airlock/glass{ + name = "Courtroom"; + req_access_txt = "42" + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/courtroom) +"amu" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/courtroom) +"amv" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 2; + name = "Solar Maintenance"; + req_access = null; + req_access_txt = "10; 13" + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarstarboard) +"amw" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/auxsolarstarboard) +"amx" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"amy" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarport) +"amz" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/terminal, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarport) +"amA" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarport) +"amB" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"amC" = ( +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"amD" = ( +/obj/structure/sink{ + icon_state = "sink"; + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"amE" = ( +/obj/structure/bed, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/obj/item/weapon/bedsheet, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"amF" = ( +/obj/machinery/computer/slot_machine{ + balance = 15; + money = 500 + }, +/obj/item/weapon/coin/iron, +/obj/item/weapon/coin/diamond, +/obj/item/weapon/coin/diamond, +/obj/item/weapon/coin/diamond, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"amG" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/item/toy/sword, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"amH" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/structure/noticeboard{ + dir = 8; + pixel_x = 27; + pixel_y = 0 + }, +/obj/item/trash/plate, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"amI" = ( +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/labor) +"amJ" = ( +/obj/machinery/mineral/labor_claim_console{ + machinedir = 1; + pixel_x = 30; + pixel_y = 0 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/labor) +"amK" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; + name = "KEEP CLEAR: DOCKING AREA"; + pixel_y = 0 + }, +/turf/closed/wall, +/area/security/processing) +"amL" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/processing) +"amM" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Prisoner Processing"; + req_access_txt = "2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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) +"amO" = ( +/turf/open/space, +/obj/machinery/porta_turret/syndicate{ + dir = 9 + }, +/turf/closed/wall/mineral/plastitanium{ + dir = 8; + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) +"amP" = ( +/obj/structure/grille, +/obj/machinery/door/poddoor/shutters{ + id = "syndieshutters"; + name = "blast shutters" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/shuttle/syndicate) +"amQ" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/grille, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Gate"; + name = "brig shutters" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/brig) +"amR" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Gate"; + name = "brig shutters" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/brig) +"amS" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + 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{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"amU" = ( +/obj/structure/grille, +/obj/machinery/door/poddoor/preopen{ + id = "briggate"; + name = "security blast door" + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/window/reinforced/fulltile, +/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{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"amW" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_security{ + cyclelinkeddir = 1; + 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/machinery/door/airlock/glass_security{ + cyclelinkeddir = 1; + 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/black, +/area/crew_quarters/courtroom) +"amZ" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/crew_quarters/courtroom) +"ana" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/crew_quarters/courtroom) +"anb" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"anc" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"and" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"ane" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarstarboard) +"anf" = ( +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"ang" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/power/apc{ + dir = 8; + name = "Fore Port Solar APC"; + pixel_x = -25; + pixel_y = 3 + }, +/obj/machinery/camera{ + c_tag = "Fore Port Solar Control"; + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarport) +"anh" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/smes, +/turf/open/floor/plating, +/area/maintenance/auxsolarport) +"ani" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarport) +"anj" = ( +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{ + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"ank" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"anl" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"anm" = ( +/obj/item/trash/sosjerky, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"ann" = ( +/obj/item/weapon/electronics/airalarm, +/obj/item/weapon/circuitboard/machine/seed_extractor, +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 4; + name = "4maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"ano" = ( +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/maintenance/fpmaint2) +"anp" = ( +/obj/item/weapon/cigbutt, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/maintenance/fpmaint2) +"anq" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"anr" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/flasher{ + id = "gulagshuttleflasher"; + pixel_x = 25 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/labor) +"ans" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/processing) +"ant" = ( +/obj/machinery/gulag_item_reclaimer{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/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; + req_access_txt = "0" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/processing) +"anv" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE"; + pixel_y = 32 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/hallway/primary/fore) +"any" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE"; + 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/securearea{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 4 + }, +/area/hallway/primary/fore) +"anC" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/crew_quarters/courtroom) +"anD" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"anE" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 4; + req_access_txt = "13" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"anF" = ( +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"anG" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"anH" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE"; + pixel_y = 0 + }, +/turf/closed/wall/r_wall, +/area/maintenance/auxsolarport) +"anI" = ( +/obj/machinery/door/airlock/engineering{ + icon_state = "door_closed"; + locked = 0; + name = "Fore Port Solar Access"; + req_access_txt = "10" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarport) +"anJ" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + icon_state = "intact"; + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"anK" = ( +/obj/effect/decal/cleanable/egg_smudge, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"anL" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"anM" = ( +/obj/structure/closet/crate, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/labor) +"anN" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 4; + name = "Labor Camp Shuttle Airlock"; + shuttledocked = 1 + }, +/turf/open/floor/plating, +/area/security/processing) +"anO" = ( +/obj/machinery/door/airlock/titanium{ + id_tag = "prisonshuttle"; + name = "Labor Shuttle Airlock" + }, +/obj/docking_port/mobile{ + dir = 8; + dwidth = 2; + height = 5; + id = "laborcamp"; + name = "labor camp shuttle"; + port_angle = 90; + width = 9 + }, +/obj/docking_port/stationary{ + dir = 8; + dwidth = 2; + height = 5; + id = "laborcamp_home"; + name = "fore bay 1"; + width = 9 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/labor) +"anP" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + id_tag = "laborexit"; + name = "Labor Shuttle"; + req_access = null; + req_access_txt = "63" + }, +/turf/open/floor/plasteel, +/area/security/processing) +"anQ" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE"; + 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 = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/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{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"anU" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Courtroom" + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/courtroom) +"anV" = ( +/obj/machinery/light/small, +/turf/open/floor/plasteel/black, +/area/crew_quarters/courtroom) +"anW" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/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/black, +/area/crew_quarters/courtroom) +"anY" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/courtroom) +"anZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/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/fsmaint) +"aoa" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"aob" = ( +/obj/machinery/light_switch{ + pixel_x = -20; + pixel_y = 0 + }, +/obj/item/device/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/fsmaint) +"aoe" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/closed/wall, +/area/maintenance/fsmaint) +"aof" = ( +/turf/closed/wall/r_wall, +/area/maintenance/auxsolarstarboard) +"aog" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarstarboard) +"aoh" = ( +/obj/machinery/power/solar_control{ + id = "auxsolareast"; + name = "Fore Starboard Solar Control"; + track = 0 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarstarboard) +"aoi" = ( +/obj/structure/rack, +/obj/item/clothing/mask/gas, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = 32 + }, +/obj/item/device/multitool, +/turf/open/floor/plating, +/area/maintenance/auxsolarstarboard) +"aoj" = ( +/obj/machinery/camera{ + c_tag = "Fore Port Solar Access" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"aok" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"aol" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"aom" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"aon" = ( +/obj/structure/chair, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"aoo" = ( +/obj/structure/rack, +/obj/item/weapon/circuitboard/machine/monkey_recycler, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"aop" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/turf/open/floor/plating/airless, +/area/shuttle/labor) +"aoq" = ( +/obj/structure/grille, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = -32 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/processing) +"aor" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/processing) +"aos" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/security/processing) +"aot" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/processing) +"aou" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + 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/device/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, +/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/black, +/area/crew_quarters/courtroom) +"aoH" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/wiki/security_space_law{ + pixel_x = -3; + pixel_y = 5 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/courtroom) +"aoI" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/power/apc{ + dir = 2; + name = "Fitness Room APC"; + pixel_x = 0; + pixel_y = -24 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"aoJ" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"aoK" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/plating/warnplate{ + dir = 9 + }, +/area/maintenance/fsmaint) +"aoL" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Air Out"; + on = 1 + }, +/turf/open/floor/plating/warnplate{ + dir = 5 + }, +/area/maintenance/fsmaint) +"aoM" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarstarboard) +"aoN" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarstarboard) +"aoO" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/terminal, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarstarboard) +"aoP" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aoQ" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aoR" = ( +/obj/machinery/atmospherics/components/trinary/filter{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"aoS" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"aoT" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"aoU" = ( +/obj/structure/bed, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"aoV" = ( +/turf/open/space, +/area/space/nearstation) +"aoW" = ( +/obj/structure/table, +/obj/item/weapon/stamp, +/obj/item/weapon/poster/legit, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"aoX" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"aoY" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/floor/plating/airless, +/area/shuttle/labor) +"aoZ" = ( +/obj/machinery/atmospherics/components/binary/valve/digital{ + name = "Waste Release" + }, +/turf/open/floor/plasteel, +/area/atmos) +"apa" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel, +/area/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{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/security/processing) +"apd" = ( +/turf/closed/wall, +/area/security/detectives_office) +"ape" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering{ + name = "Vacant Office B"; + req_access_txt = "32" + }, +/turf/open/floor/plating, +/area/security/vacantoffice2) +"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/fpmaint) +"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/fsmaint) +"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/fsmaint) +"apo" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/closed/wall, +/area/maintenance/fsmaint) +"app" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"apq" = ( +/obj/machinery/space_heater, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"apr" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Dormitory Maintenance APC"; + pixel_y = 24 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"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/fsmaint) +"apt" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"apu" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + 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/fsmaint) +"apv" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"apw" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Air In"; + on = 1 + }, +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/maintenance/fsmaint) +"apx" = ( +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics Maintenance"; + req_access_txt = "12;24" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"apy" = ( +/obj/item/weapon/wrench, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/maintenance/fsmaint) +"apz" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarstarboard) +"apA" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/power/apc{ + dir = 8; + name = "Fore Starboard Solar APC"; + pixel_x = -25; + pixel_y = 3 + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarstarboard) +"apB" = ( +/obj/machinery/camera{ + c_tag = "Fore Starboard Solars"; + dir = 1 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/smes, +/turf/open/floor/plating, +/area/maintenance/auxsolarstarboard) +"apC" = ( +/turf/closed/wall/r_wall, +/area/maintenance/fsmaint2) +"apD" = ( +/obj/structure/closet/wardrobe/mixed, +/obj/item/clothing/shoes/jackboots, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"apE" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"apF" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plating, +/area/atmos) +"apG" = ( +/obj/machinery/portable_atmospherics/canister/water_vapor, +/turf/open/floor/plasteel, +/area/janitor) +"apH" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/pod_1) +"apI" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 1; + frequency = 1441; + id = "waste_out" + }, +/turf/open/floor/plating/airless, +/area/atmos) +"apJ" = ( +/turf/closed/wall, +/area/mining_construction) +"apK" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/pod_2) +"apL" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/fpmaint2) +"apM" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/fpmaint2) +"apN" = ( +/turf/open/floor/plating/warnplate{ + dir = 9 + }, +/area/shuttle/auxillary_base) +"apO" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"apP" = ( +/obj/structure/grille, +/obj/structure/window/fulltile{ + obj_integrity = 35 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"apQ" = ( +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) +"apR" = ( +/obj/item/weapon/paper{ + info = "01001001 00100000 01101000 01101111 01110000 01100101 00100000 01111001 01101111 01110101 00100000 01110011 01110100 01100001 01111001 00100000 01110011 01100001 01100110 01100101 00101110 00100000 01001100 01101111 01110110 01100101 00101100 00100000 01101101 01101111 01101101 00101110"; + name = "Note from Beepsky's Mom" + }, +/turf/open/floor/plating, +/area/security/processing) +"apS" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/security/processing) +"apT" = ( +/obj/structure/chair/comfy/beige{ + dir = 1; + icon_state = "comfychair" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"apU" = ( +/turf/open/floor/plating, +/area/security/vacantoffice2) +"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/fpmaint) +"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/sleep) +"apZ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/wood, +/area/lawoffice) +"aqa" = ( +/obj/structure/table, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"aqb" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/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/fsmaint) +"aqd" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + 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/fsmaint) +"aqf" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"aqg" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"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/fsmaint) +"aqi" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"aqj" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"aqk" = ( +/obj/machinery/power/apc{ + dir = 2; + name = "Dormitory APC"; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/sleep) +"aql" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"aqm" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"aqn" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/button/door{ + id = "Dorm4"; + name = "Dorm Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 25; + pixel_y = 0; + req_access_txt = "0"; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"aqo" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"aqp" = ( +/obj/structure/rack{ + dir = 1 + }, +/obj/item/clothing/suit/fire/firefighter, +/obj/item/weapon/tank/internals/oxygen, +/obj/item/clothing/mask/gas, +/obj/item/weapon/extinguisher, +/obj/item/clothing/head/hardhat/red, +/obj/item/clothing/glasses/meson, +/turf/open/floor/plating/warnplate{ + dir = 10 + }, +/area/maintenance/fsmaint) +"aqq" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating/warnplate{ + dir = 6 + }, +/area/maintenance/fsmaint) +"aqr" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"aqs" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"aqt" = ( +/obj/structure/grille, +/obj/effect/landmark{ + name = "Syndicate Breach Area" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"aqu" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"aqv" = ( +/obj/machinery/door/airlock/external{ + name = "External Access"; + req_access = null; + req_access_txt = "13" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aqw" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/engineering{ + icon_state = "door_closed"; + locked = 0; + name = "Fore Starboard Solar Access"; + req_access_txt = "10" + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarstarboard) +"aqx" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE"; + pixel_y = 0 + }, +/turf/closed/wall/r_wall, +/area/maintenance/auxsolarstarboard) +"aqy" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aqz" = ( +/obj/structure/table, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aqA" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aqB" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aqC" = ( +/obj/machinery/computer/slot_machine{ + balance = 15; + money = 500 + }, +/obj/item/weapon/coin/iron, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aqD" = ( +/obj/effect/decal/cleanable/cobweb, +/obj/item/weapon/coin/gold, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aqE" = ( +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aqF" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/pod_1) +"aqG" = ( +/obj/docking_port/stationary/random{ + dir = 4; + id = "pod_asteroid3"; + name = "asteroid" + }, +/turf/open/space, +/area/space) +"aqH" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/pod_2) +"aqI" = ( +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/shuttle/auxillary_base) +"aqJ" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 2; + name = "External Access"; + req_access = null; + req_access_txt = "13" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"aqK" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/fpmaint2) +"aqL" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"aqM" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + icon_state = "intact"; + dir = 10 + }, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"aqN" = ( +/obj/structure/closet/secure_closet/miner{ + locked = 0 + }, +/turf/open/floor/plating/warnplate{ + dir = 5 + }, +/area/shuttle/auxillary_base) +"aqO" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"aqP" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Arrivals North Maintenance APC"; + pixel_x = -1; + pixel_y = 26 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"aqQ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"aqR" = ( +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"aqS" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/weapon/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"; + pixel_x = -24 + }, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plating, +/area/security/processing) +"aqU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Cargo Technician" + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aqV" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/turf/open/floor/plating, +/area/security/vacantoffice2) +"aqW" = ( +/turf/open/floor/carpet, +/area/security/detectives_office) +"aqX" = ( +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23 + }, +/obj/structure/chair, +/turf/open/floor/plating, +/area/security/vacantoffice2) +"aqY" = ( +/obj/structure/table/wood, +/obj/item/weapon/pen, +/turf/open/floor/plating, +/area/security/vacantoffice2) +"aqZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"ara" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/requests_console{ + department = "Law office"; + pixel_x = -32; + pixel_y = 0 + }, +/obj/structure/closet/lawcloset, +/turf/open/floor/wood, +/area/lawoffice) +"arb" = ( +/obj/structure/table/wood, +/obj/item/weapon/book/manual/wiki/security_space_law, +/obj/item/weapon/book/manual/wiki/security_space_law, +/obj/item/weapon/pen/red, +/turf/open/floor/wood, +/area/lawoffice) +"arc" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"ard" = ( +/obj/structure/grille, +/obj/machinery/door/poddoor/preopen{ + id = "lawyer_blast"; + name = "privacy door" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/lawoffice) +"are" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp/green{ + pixel_x = 1; + pixel_y = 5 + }, +/turf/open/floor/wood, +/area/lawoffice) +"arf" = ( +/turf/closed/wall, +/area/crew_quarters/sleep) +"arg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/maintenance/fsmaint) +"arh" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"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/sleep) +"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/sleep) +"arl" = ( +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j2"; + dir = 2 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 9 + }, +/area/crew_quarters/fitness) +"arm" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/window/reinforced/fulltile, +/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/grille, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = 32 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"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/fsmaint2) +"arr" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"ars" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Bar Maintenance APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"art" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Fore Starboard Solar Access" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aru" = ( +/obj/structure/chair/stool, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"arv" = ( +/obj/structure/table, +/obj/item/weapon/pen, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"arw" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"arx" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"ary" = ( +/obj/structure/closet, +/obj/item/weapon/coin/iron, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"arz" = ( +/obj/item/weapon/coin/gold, +/obj/item/weapon/coin/iron, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"arA" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"arB" = ( +/turf/closed/wall/r_wall, +/area/hallway/secondary/entry) +"arC" = ( +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/shuttle/auxillary_base) +"arD" = ( +/turf/open/floor/plating, +/area/shuttle/auxillary_base) +"arE" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/mining_construction) +"arF" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + icon_state = "intact"; + dir = 5 + }, +/turf/closed/wall, +/area/maintenance/fpmaint2) +"arG" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/fpmaint2) +"arH" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"arI" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"arJ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"arK" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/fpmaint2) +"arL" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"arM" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"arN" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"arO" = ( +/obj/machinery/monkey_recycler, +/obj/item/weapon/reagent_containers/food/snacks/monkeycube, +/obj/item/weapon/reagent_containers/food/snacks/monkeycube, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"arP" = ( +/turf/closed/wall, +/area/maintenance/fpmaint) +"arQ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"arR" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp, +/turf/open/floor/plating, +/area/security/vacantoffice2) +"arS" = ( +/obj/structure/table/wood, +/turf/open/floor/plating, +/area/security/vacantoffice2) +"arT" = ( +/turf/open/floor/plasteel, +/area/security/vacantoffice2) +"arU" = ( +/obj/structure/rack, +/turf/open/floor/plasteel, +/area/security/vacantoffice2) +"arV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/filingcabinet/employment, +/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/weapon/folder/blue, +/obj/item/weapon/folder/blue, +/obj/item/weapon/folder/blue, +/obj/item/weapon/folder/blue, +/obj/item/weapon/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{ + name = "Lawyer" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/wood, +/area/lawoffice) +"asa" = ( +/obj/machinery/status_display{ + density = 0; + layer = 3; + pixel_x = 32; + pixel_y = 0 + }, +/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{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"asd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/sleep) +"ase" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"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/sleep) +"asg" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 9 + }, +/area/crew_quarters/sleep) +"ash" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + 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/fpmaint2) +"asi" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"asj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plating, +/area/security/vacantoffice2) +"ask" = ( +/obj/structure/dresser, +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"asl" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plating, +/area/security/vacantoffice2) +"asm" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"asn" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plating, +/area/security/vacantoffice2) +"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/lawoffice) +"asp" = ( +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"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/weapon/bedsheet/red, +/obj/machinery/button/door{ + id = "Dorm5"; + name = "Cabin Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 0; + pixel_y = -25; + req_access_txt = "0"; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"asv" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"asw" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"asx" = ( +/obj/structure/door_assembly/door_assembly_mai, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"asy" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Firefighting equipment"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"asz" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/snacks/donut, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"asA" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"asB" = ( +/turf/closed/wall, +/area/maintenance/electrical) +"asC" = ( +/turf/open/floor/plasteel/airless, +/area/space/nearstation) +"asD" = ( +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/shuttle/auxillary_base) +"asE" = ( +/turf/closed/wall, +/area/hallway/secondary/entry) +"asF" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/mining_construction) +"asG" = ( +/obj/machinery/light, +/turf/open/floor/plating, +/area/shuttle/auxillary_base) +"asH" = ( +/obj/structure/closet/toolcloset, +/turf/open/floor/plasteel/yellow/side{ + dir = 9 + }, +/area/mining_construction) +"asI" = ( +/obj/structure/closet/toolcloset, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/mining_construction) +"asJ" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/yellow/side{ + dir = 5 + }, +/area/mining_construction) +"asK" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"asL" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/red, +/obj/machinery/button/door{ + id = "Dorm6"; + name = "Cabin Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 0; + pixel_y = -25; + req_access_txt = "0"; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"asM" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + 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/fpmaint2) +"asP" = ( +/obj/structure/chair/stool, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"asQ" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"asR" = ( +/obj/effect/decal/cleanable/cobweb, +/obj/structure/closet/secure_closet/chemical, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"asS" = ( +/obj/structure/closet/secure_closet/medical1, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"asT" = ( +/obj/structure/closet/secure_closet/chemical, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"asU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/vacantoffice2) +"asV" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"asW" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/rack, +/obj/item/weapon/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/structure/grille, +/obj/structure/window/reinforced/fulltile, +/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 + }, +/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{ + amount = 50 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/mining_construction) +"atc" = ( +/obj/structure/chair/office/dark, +/obj/effect/landmark/start{ + name = "Lawyer" + }, +/turf/open/floor/wood, +/area/lawoffice) +"atd" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel/red/corner{ + dir = 4 + }, +/area/hallway/primary/fore) +"ate" = ( +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"atf" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"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/sleep) +"ath" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"ati" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/crew_quarters/sleep) +"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/sleep) +"atk" = ( +/obj/machinery/camera{ + c_tag = "Auxillary Mining Base"; + dir = 8; + network = list("SS13","AuxBase") + }, +/turf/open/floor/plating, +/area/shuttle/auxillary_base) +"atl" = ( +/obj/docking_port/mobile/auxillary_base{ + dheight = 4; + dir = 4; + dwidth = 4; + height = 9; + width = 9 + }, +/obj/machinery/bluespace_beacon, +/obj/machinery/computer/shuttle/auxillary_base{ + pixel_y = 0 + }, +/turf/closed/wall, +/area/shuttle/auxillary_base) +"atm" = ( +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"atn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/closed/wall, +/area/maintenance/fpmaint2) +"ato" = ( +/obj/machinery/light_switch{ + pixel_y = -23 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/carpet, +/area/security/hos) +"atp" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 1; + name = "Construction Zone"; + req_access = null; + req_access_txt = "0"; + req_one_access_txt = "0" + }, +/turf/open/floor/plating, +/area/mining_construction) +"atq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/fpmaint2) +"atr" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"ats" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light, +/turf/open/floor/plating, +/area/security/vacantoffice2) +"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/vacantoffice2) +"atv" = ( +/obj/structure/table, +/obj/item/weapon/shard, +/obj/item/weapon/shard{ + icon_state = "medium" + }, +/obj/item/weapon/shard{ + icon_state = "small" + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"atw" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"atx" = ( +/obj/machinery/button/door{ + id = "maint3"; + name = "Blast Door Control C"; + pixel_x = 0; + pixel_y = 24; + req_access_txt = "0" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aty" = ( +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/fsmaint2) +"atz" = ( +/mob/living/simple_animal/mouse, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"atA" = ( +/obj/structure/table, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"atB" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"atC" = ( +/obj/item/stack/rods{ + amount = 50 + }, +/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; + layer = 2.9 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/electrical) +"atD" = ( +/obj/machinery/recharge_station, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/electrical) +"atE" = ( +/obj/machinery/power/port_gen/pacman, +/turf/open/floor/plating, +/area/maintenance/electrical) +"atF" = ( +/turf/open/floor/mech_bay_recharge_floor, +/area/maintenance/electrical) +"atG" = ( +/obj/machinery/mech_bay_recharge_port, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plating, +/area/maintenance/electrical) +"atH" = ( +/obj/machinery/computer/mech_bay_power_console, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/bluegrid, +/area/maintenance/electrical) +"atI" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/mining_construction) +"atJ" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"atK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/security/vacantoffice2) +"atL" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"atM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/closed/wall, +/area/maintenance/fpmaint2) +"atN" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"atO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/fpmaint2) +"atP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/closed/wall, +/area/maintenance/fpmaint2) +"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/sleep) +"atR" = ( +/obj/effect/landmark{ + name = "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/fpmaint2) +"atU" = ( +/obj/structure/rack{ + dir = 1 + }, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"atV" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/crew_quarters/fitness) +"atW" = ( +/obj/structure/chair/stool, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"atX" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"atY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/security/vacantoffice2) +"atZ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/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/mining_construction) +"auc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/yellow/side{ + dir = 10 + }, +/area/mining_construction) +"aud" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"aue" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/maintenance/fpmaint2) +"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; + network = list("SS13") + }, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/weapon/pen, +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching Prison Wing holding areas."; + dir = 1; + name = "Prison Monitor"; + network = list("Prison"); + pixel_x = 0; + pixel_y = -27 + }, +/turf/open/floor/wood, +/area/lawoffice) +"auh" = ( +/obj/structure/table/wood, +/obj/item/device/taperecorder{ + pixel_y = 0 + }, +/obj/item/weapon/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{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/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/sleep) +"aul" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/crew_quarters/sleep) +"aum" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + 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/fpmaint2) +"aun" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/crew_quarters/sleep) +"auo" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"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/sleep) +"auq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/security/vacantoffice2) +"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/black, +/area/crew_quarters/fitness) +"aus" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/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/black, +/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{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/fitness) +"auw" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/button/door{ + id = "Dorm3"; + name = "Dorm Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 25; + pixel_y = 0; + req_access_txt = "0"; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"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/sleep) +"auy" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/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{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/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/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"auC" = ( +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"auD" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"auE" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"auF" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"auG" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"auH" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"auI" = ( +/turf/open/floor/plating, +/area/maintenance/electrical) +"auJ" = ( +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/electrical) +"auK" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/electrical) +"auL" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/electrical) +"auM" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/electrical) +"auN" = ( +/turf/open/floor/plating/warnplate, +/area/shuttle/auxillary_base) +"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/mining_construction) +"auR" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/crew_quarters/sleep) +"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/sleep) +"auT" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"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/sleep) +"auV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/maintenance/fpmaint2) +"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/sleep) +"auX" = ( +/obj/structure/mirror{ + icon_state = "mirror_broke"; + pixel_y = 28; + broken = 1 + }, +/obj/machinery/iv_drip, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"auY" = ( +/obj/structure/mirror{ + icon_state = "mirror_broke"; + pixel_y = 28; + broken = 1 + }, +/obj/item/weapon/shard{ + icon_state = "medium" + }, +/obj/item/weapon/circuitboard/computer/operating, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"auZ" = ( +/obj/structure/frame/computer, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"ava" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/chair, +/obj/item/weapon/reagent_containers/blood/random, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"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/fpmaint2) +"avd" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 4; + req_access_txt = "13" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"ave" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = 32 + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"avf" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Chemical Storage"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"avg" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/crew_quarters/sleep) +"avh" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/power/apc{ + dir = 8; + name = "Vacant Office B APC"; + pixel_x = -24; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/security/vacantoffice2) +"avi" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Law Office APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 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{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/hallway/primary/fore) +"avk" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0 + }, +/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/sleep) +"avm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/crew_quarters/sleep) +"avn" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/crew_quarters/sleep) +"avo" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE"; + pixel_y = 0 + }, +/turf/closed/wall, +/area/maintenance/electrical) +"avp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/poddoor/shutters{ + id = "aux_base_shutters"; + name = "Auxillary Base Shutters" + }, +/turf/open/floor/plasteel/delivery, +/area/mining_construction) +"avq" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"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{ + d1 = 4; + d2 = 8; + 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/fpmaint) +"avt" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"avu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 5 + }, +/area/crew_quarters/sleep) +"avv" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"avw" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/crew_quarters/fitness) +"avx" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"avy" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/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/black, +/area/crew_quarters/fitness) +"avB" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + d2 = 8; + 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, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"avE" = ( +/obj/machinery/door/poddoor/preopen{ + id = "maint3" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"avF" = ( +/obj/machinery/door/poddoor/preopen{ + id = "maint3" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"avG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"avH" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/electrical) +"avI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"avJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/electrical) +"avK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/electrical) +"avL" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Electrical Maintenance APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plating, +/area/maintenance/electrical) +"avM" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plating, +/area/maintenance/electrical) +"avN" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/electrical) +"avO" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/fyellow, +/obj/item/weapon/storage/toolbox/electrical{ + pixel_x = 1; + pixel_y = -1 + }, +/obj/item/device/multitool, +/obj/item/device/radio/intercom{ + freerange = 0; + frequency = 1459; + name = "Station Intercom (General)"; + pixel_x = 29 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/electrical) +"avP" = ( +/obj/structure/sign/pods, +/turf/closed/wall, +/area/hallway/secondary/entry) +"avQ" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Auxillary Base Construction"; + dir = 8 + }, +/obj/structure/mining_shuttle_beacon{ + dir = 2 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/mining_construction) +"avR" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/firstaid/regular, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"avS" = ( +/obj/item/weapon/wrench, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"avT" = ( +/obj/docking_port/stationary{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 24; + id = "syndicate_ne"; + name = "northeast of station"; + turf_type = /turf/open/space; + width = 18 + }, +/turf/open/space, +/area/space) +"avU" = ( +/obj/item/weapon/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/fpmaint2) +"avW" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"avX" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/chair/stool, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"avY" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"avZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/fpmaint) +"awa" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/closed/wall, +/area/maintenance/fpmaint) +"awb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"awc" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"awd" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "EVA Maintenance APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"awe" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"awf" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"awg" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + 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/fpmaint) +"awh" = ( +/obj/effect/landmark{ + name = "blobstart" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + 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/fpmaint) +"awi" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"awj" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + 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/fpmaint) +"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{ + d1 = 1; + d2 = 8; + 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/fsmaint) +"awn" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"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/sleep) +"awp" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/weapon/storage/pill_bottle/dice, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"awq" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"awr" = ( +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"aws" = ( +/obj/structure/table/wood, +/obj/item/weapon/coin/silver, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"awt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"awu" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"awv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"aww" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) +"awx" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"awy" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"awz" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Fitness" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"awA" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"awB" = ( +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel/green/side{ + dir = 4 + }, +/area/crew_quarters/fitness) +"awC" = ( +/obj/structure/table, +/obj/item/weapon/paper{ + desc = ""; + info = "Brusies sustained in the holodeck can be healed simply by sleeping."; + name = "Holodeck Disclaimer" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"awD" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"awE" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"awF" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"awG" = ( +/obj/structure/girder, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"awH" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"awI" = ( +/obj/machinery/button/door{ + id = "maint2"; + name = "Blast Door Control B"; + pixel_x = -28; + pixel_y = 4; + req_access_txt = "0" + }, +/obj/machinery/button/door{ + id = "maint1"; + name = "Blast Door Control A"; + pixel_x = -28; + pixel_y = -6; + req_access_txt = "0" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"awJ" = ( +/obj/structure/janitorialcart, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"awK" = ( +/obj/structure/table/glass, +/obj/item/weapon/pen, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"awL" = ( +/obj/structure/table/glass, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"awM" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"awN" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"awO" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/electrical) +"awP" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/electrical) +"awQ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/engineering{ + name = "Electrical Maintenance"; + req_access_txt = "11" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/electrical) +"awR" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/electrical) +"awS" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/plating, +/area/maintenance/electrical) +"awT" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/electrical) +"awU" = ( +/obj/structure/table, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/obj/item/wallframe/camera, +/obj/item/wallframe/camera, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/item/device/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/electrical) +"awV" = ( +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/hallway/secondary/entry) +"awW" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"awX" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating, +/area/shuttle/auxillary_base) +"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{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plating, +/area/maintenance/electrical) +"axb" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/arrival{ + dir = 5 + }, +/area/hallway/secondary/entry) +"axc" = ( +/obj/structure/rack{ + dir = 4 + }, +/obj/item/weapon/electronics/airlock, +/obj/item/weapon/electronics/airlock, +/obj/item/weapon/electronics/airlock, +/obj/item/weapon/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/device/assault_pod/mining, +/obj/machinery/computer/security/telescreen{ + desc = "Used for the Auxillary Mining Base."; + dir = 8; + name = "Auxillary Base Monitor"; + network = list("AuxBase"); + pixel_x = 28 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/mining_construction) +"axd" = ( +/mob/living/simple_animal/mouse, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"axe" = ( +/obj/machinery/sleeper{ + dir = 4; + icon_state = "sleeper-open" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"axf" = ( +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"axg" = ( +/obj/structure/table/glass, +/obj/item/weapon/storage/bag/trash, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"axh" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/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/fpmaint2) +"axj" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Firefighting equipment"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"axk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"axl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"axm" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE"; + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"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/fpmaint2) +"axo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"axp" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"axq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"axr" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE"; + pixel_y = -32 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"axs" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"axt" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"axu" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + 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/fpmaint) +"axv" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"axw" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"axx" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"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/fsmaint) +"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/fsmaint) +"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) +"axJ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"axK" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/closed/wall, +/area/maintenance/fpmaint2) +"axL" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"axM" = ( +/obj/structure/table/wood, +/obj/item/device/paicard, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"axN" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/crayons, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"axO" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"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/sleep) +"axQ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"axR" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/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{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/fitness) +"axT" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/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/black, +/area/crew_quarters/fitness) +"axV" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"axW" = ( +/obj/machinery/door/window/eastright{ + base_state = "left"; + icon_state = "left"; + name = "Fitness Ring" + }, +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/black, +/area/crew_quarters/fitness) +"axX" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"axY" = ( +/turf/open/floor/plasteel/green/side{ + dir = 4 + }, +/area/crew_quarters/fitness) +"axZ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/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{ + dir = 8; + on = 1 + }, +/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{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"ayd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aye" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"ayf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"ayg" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"ayh" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + 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/fpmaint2) +"ayi" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"ayj" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/weapon/stock_parts/cell/high/plus, +/obj/item/weapon/stock_parts/cell/high/plus, +/turf/open/floor/plating, +/area/maintenance/electrical) +"ayk" = ( +/turf/open/floor/plasteel/warning, +/area/hallway/secondary/entry) +"ayl" = ( +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aym" = ( +/turf/open/floor/plasteel/warning/corner{ + dir = 1 + }, +/area/hallway/secondary/entry) +"ayn" = ( +/turf/open/floor/plasteel/warning/corner{ + dir = 2 + }, +/area/hallway/secondary/entry) +"ayo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 1 + }, +/area/hallway/secondary/entry) +"ayp" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/warning, +/area/hallway/secondary/entry) +"ayq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/mining_construction) +"ayr" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/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/weapon/reagent_containers/blood/random, +/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka/badminka, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"ayt" = ( +/obj/structure/table/glass, +/obj/item/weapon/hemostat, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"ayu" = ( +/obj/structure/table/glass, +/obj/item/weapon/restraints/handcuffs/cable/zipties, +/obj/item/weapon/reagent_containers/blood/random, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"ayv" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/item/device/radio/off, +/obj/item/device/assembly/timer, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"ayw" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"ayx" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"ayy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"ayz" = ( +/turf/closed/wall/r_wall, +/area/maintenance/fpmaint2) +"ayA" = ( +/obj/structure/grille, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"ayB" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"ayC" = ( +/obj/structure/grille, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"ayD" = ( +/obj/structure/grille, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"ayE" = ( +/turf/closed/wall/r_wall, +/area/maintenance/fpmaint) +"ayF" = ( +/obj/structure/grille, +/obj/structure/cable, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"ayG" = ( +/turf/closed/wall/r_wall, +/area/gateway) +"ayH" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"ayI" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/sign/securearea{ + pixel_x = 32; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"ayJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"ayK" = ( +/obj/structure/closet/crate/rcd, +/obj/machinery/camera/motion{ + c_tag = "EVA Motion Sensor"; + name = "motion-sensitive security camera" + }, +/turf/open/floor/plasteel/black, +/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{ + dir = 8; + layer = 2.9 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/weapon/hand_labeler, +/obj/item/device/flashlight, +/obj/item/device/flashlight, +/obj/item/device/flashlight, +/obj/item/device/flashlight, +/turf/open/floor/plasteel/black, +/area/ai_monitored/storage/eva) +"ayO" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/electrical{ + pixel_x = 1; + pixel_y = -1 + }, +/obj/item/weapon/screwdriver{ + pixel_y = 16 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/storage/eva) +"ayP" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "EVA Storage APC"; + pixel_x = 0; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 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/weapon/stock_parts/cell/high/plus, +/turf/open/floor/plasteel/black, +/area/ai_monitored/storage/eva) +"ayR" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/device/multitool, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"ayS" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/sign/securearea{ + pixel_y = 32 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/ai_monitored/storage/eva) +"ayT" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/table, +/obj/item/device/assembly/signaler, +/obj/item/device/assembly/signaler, +/obj/item/weapon/stock_parts/cell/high/plus, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"ayU" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"ayV" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/button/door{ + id = "Dorm2"; + name = "Dorm Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 25; + pixel_y = 0; + req_access_txt = "0"; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"ayW" = ( +/turf/closed/wall, +/area/ai_monitored/storage/eva) +"ayX" = ( +/obj/structure/table, +/obj/item/weapon/storage/belt/utility, +/obj/item/weapon/storage/belt/utility, +/obj/item/weapon/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{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 8 + }, +/area/hallway/primary/fore) +"ayZ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/blue/corner, +/area/hallway/primary/fore) +"aza" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/sleep) +"azb" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 2 + }, +/area/crew_quarters/sleep) +"azc" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/crew_quarters/sleep) +"azd" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 6 + }, +/area/crew_quarters/sleep) +"aze" = ( +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/sleep) +"azf" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"azg" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"azh" = ( +/obj/machinery/camera{ + c_tag = "Fitness Room South"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/green/side{ + dir = 4 + }, +/area/crew_quarters/fitness) +"azi" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"azj" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/item/device/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 = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"azl" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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/weapon/storage/firstaid/regular, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"azo" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"azp" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"azq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/hallway/secondary/construction{ + name = "\improper Garden" + }) +"azr" = ( +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"azs" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + 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"; + d2 = 4 + }, +/turf/open/floor/plating, +/area/maintenance/electrical) +"azu" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plating, +/area/maintenance/electrical) +"azv" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/maintenance/electrical) +"azw" = ( +/obj/machinery/light_switch{ + pixel_y = -25 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating, +/area/maintenance/electrical) +"azx" = ( +/obj/machinery/power/terminal, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/maintenance/electrical) +"azy" = ( +/obj/machinery/door/airlock/external{ + name = "Port Docking Bay 1" + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"azz" = ( +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/hallway/secondary/entry) +"azA" = ( +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/hallway/secondary/entry) +"azB" = ( +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/hallway/secondary/entry) +"azC" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/turf/open/floor/plasteel/warning, +/area/hallway/secondary/entry) +"azD" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/arrival{ + dir = 4 + }, +/area/hallway/secondary/entry) +"azE" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"azF" = ( +/turf/closed/wall, +/area/hallway/secondary/construction{ + name = "\improper Garden" + }) +"azG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/closed/wall, +/area/maintenance/fpmaint2) +"azH" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/space, +/area/space) +"azI" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/space, +/area/space) +"azJ" = ( +/obj/machinery/gateway{ + dir = 9 + }, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/gateway) +"azK" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/gateway) +"azL" = ( +/obj/machinery/gateway{ + dir = 5 + }, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/gateway) +"azM" = ( +/obj/machinery/gateway{ + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/gateway) +"azN" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/gateway) +"azO" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"azP" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"azQ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + 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/ai_monitored/storage/eva) +"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/glass_command{ + name = "EVA Storage"; + req_access_txt = "18" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + 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/sleep) +"azU" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + 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{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/sleep) +"azW" = ( +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"azX" = ( +/obj/machinery/door/airlock{ + name = "Unisex Showers"; + req_access_txt = "0" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"azY" = ( +/obj/structure/table, +/obj/item/device/radio/off, +/obj/item/device/radio/off, +/obj/item/device/assembly/prox_sensor, +/obj/item/device/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/sleep) +"aAc" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aAd" = ( +/obj/machinery/light_switch{ + pixel_y = -25 + }, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/sleep) +"aAe" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"aAf" = ( +/obj/structure/closet/wardrobe/pjs, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/sleep) +"aAg" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/sleep) +"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/sleep) +"aAj" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/power/apc{ + dir = 2; + name = "Security Checkpoint APC"; + pixel_x = 1; + pixel_y = -24 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/security/checkpoint2) +"aAk" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/fitness) +"aAl" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 10 + }, +/area/crew_quarters/fitness) +"aAm" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/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{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/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/structure/reagent_dispensers/water_cooler, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 6 + }, +/area/crew_quarters/fitness) +"aAp" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/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/fsmaint2) +"aAr" = ( +/obj/structure/closet, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aAs" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aAt" = ( +/obj/machinery/door/poddoor/preopen{ + id = "maint2" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aAu" = ( +/obj/machinery/door/poddoor/preopen{ + id = "maint2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aAv" = ( +/obj/structure/closet, +/obj/effect/landmark{ + name = "blobstart" + }, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka/badminka, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aAw" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "Garden APC"; + pixel_x = 27; + pixel_y = 2 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/hallway/secondary/construction{ + name = "\improper Garden" + }) +"aAx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/construction{ + name = "\improper Garden" + }) +"aAy" = ( +/obj/machinery/power/smes{ + charge = 0 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating, +/area/maintenance/electrical) +"aAz" = ( +/obj/machinery/computer/monitor{ + name = "backup power monitoring console" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/maintenance/electrical) +"aAA" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/closed/wall, +/area/maintenance/electrical) +"aAB" = ( +/obj/machinery/power/smes{ + charge = 0 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/maintenance/electrical) +"aAC" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; + name = "KEEP CLEAR: DOCKING AREA"; + pixel_y = 0 + }, +/turf/closed/wall/r_wall, +/area/hallway/secondary/entry) +"aAD" = ( +/obj/structure/grille, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = 32 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"aAE" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/warning, +/area/hallway/secondary/entry) +"aAF" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/hallway/secondary/entry) +"aAG" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/hallway/secondary/entry) +"aAH" = ( +/obj/machinery/camera{ + c_tag = "Arrivals Bay 1 North"; + dir = 1 + }, +/turf/open/floor/plasteel/warning, +/area/hallway/secondary/entry) +"aAI" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/hallway/secondary/entry) +"aAJ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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/hallway/secondary/construction{ + name = "\improper Garden" + }) +"aAL" = ( +/obj/machinery/power/apc{ + dir = 2; + name = "Primary Tool Storage APC"; + pixel_x = 1; + pixel_y = -24 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/storage/primary) +"aAM" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"aAN" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"aAO" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"aAP" = ( +/obj/machinery/hydroponics/soil, +/turf/open/floor/grass, +/area/hallway/secondary/construction{ + name = "\improper Garden" + }) +"aAQ" = ( +/turf/open/floor/plasteel, +/area/hallway/secondary/construction{ + name = "\improper Garden" + }) +"aAR" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/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/hallway/secondary/construction{ + name = "\improper Garden" + }) +"aAT" = ( +/obj/machinery/seed_extractor, +/turf/open/floor/plasteel, +/area/hallway/secondary/construction{ + name = "\improper Garden" + }) +"aAU" = ( +/obj/structure/sink{ + pixel_y = 30 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/construction{ + name = "\improper Garden" + }) +"aAV" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"aAW" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/tank/jetpack/carbondioxide, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/ai_monitored/storage/eva) +"aAX" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/crew_quarters/sleep) +"aAY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"aAZ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/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 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/gateway) +"aBe" = ( +/turf/open/floor/plasteel/black, +/area/gateway) +"aBf" = ( +/obj/machinery/gateway{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/gateway) +"aBg" = ( +/obj/machinery/gateway/centerstation, +/turf/open/floor/plasteel/black, +/area/gateway) +"aBh" = ( +/obj/machinery/camera{ + c_tag = "EVA Maintenance"; + dir = 8; + network = list("SS13") + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + 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/fpmaint) +"aBi" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Gateway APC"; + pixel_x = -24; + pixel_y = -1 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/gateway) +"aBj" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/item/weapon/tank/jetpack/carbondioxide, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/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/security/checkpoint2) +"aBm" = ( +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/construction{ + name = "\improper 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{ + dir = 8; + layer = 2.9 + }, +/obj/item/clothing/shoes/magboots, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/ai_monitored/storage/eva) +"aBq" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/clothing/shoes/magboots, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/ai_monitored/storage/eva) +"aBr" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"aBs" = ( +/obj/structure/grille, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/ai_monitored/storage/eva) +"aBt" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/ai_monitored/storage/eva) +"aBu" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel/blue/corner, +/area/hallway/primary/fore) +"aBv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/construction{ + name = "\improper 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/hallway/secondary/construction{ + name = "\improper 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/fsmaint2) +"aBC" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aBD" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aBE" = ( +/obj/item/clothing/under/rank/mailman, +/obj/item/clothing/head/mailman, +/obj/structure/closet, +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aBF" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aBG" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/construction{ + name = "\improper Garden" + }) +"aBH" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/hallway/secondary/entry) +"aBI" = ( +/turf/closed/wall, +/area/security/checkpoint2) +"aBJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/security/checkpoint2) +"aBK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/security/checkpoint2) +"aBL" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Garden Maintenance"; + req_access_txt = "12" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"aBM" = ( +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/construction{ + name = "\improper 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; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/ai_monitored/storage/eva) +"aBP" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/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/bluegrid, +/area/ai_monitored/nuke_storage) +"aBT" = ( +/obj/machinery/computer/bank_machine, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/nuke_storage) +"aBU" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Vault APC"; + pixel_x = 0; + pixel_y = 25 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/bluegrid, +/area/ai_monitored/nuke_storage) +"aBV" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/nuke_storage) +"aBW" = ( +/obj/structure/filingcabinet, +/obj/item/weapon/folder/documents, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/nuke_storage) +"aBX" = ( +/obj/machinery/gateway{ + dir = 10 + }, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/gateway) +"aBY" = ( +/obj/machinery/gateway{ + dir = 6 + }, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/gateway) +"aBZ" = ( +/obj/machinery/gateway, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/gateway) +"aCa" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"aCb" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/item/weapon/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" = ( +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/ai_monitored/storage/eva) +"aCd" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/button/door{ + id = "Dorm1"; + name = "Dorm Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 25; + pixel_y = 0; + req_access_txt = "0"; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"aCe" = ( +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/obj/item/weapon/bikehorn/rubberducky, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/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{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/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/grille, +/obj/structure/cable, +/obj/structure/window/reinforced/fulltile, +/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/fsmaint2) +"aCl" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aCm" = ( +/obj/structure/sink{ + icon_state = "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/fsmaint2) +"aCp" = ( +/obj/machinery/camera{ + c_tag = "Arrivals North"; + dir = 8; + network = list("SS13") + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/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; + pixel_y = 0 + }, +/obj/item/weapon/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/structure/closet/wardrobe/red, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/checkpoint2) +"aCt" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aCu" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"aCv" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"aCw" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"aCx" = ( +/obj/machinery/atmospherics/components/binary/valve, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aCy" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aCz" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aCA" = ( +/obj/structure/grille/broken, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/window{ + icon_state = "window"; + dir = 4 + }, +/obj/structure/window, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/fsmaint2) +"aCB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/closed/wall, +/area/maintenance/fsmaint2) +"aCC" = ( +/obj/machinery/door/poddoor/preopen{ + id = "maint1" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aCD" = ( +/obj/machinery/door/poddoor/preopen{ + id = "maint1" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aCE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/fsmaint2) +"aCF" = ( +/obj/structure/girder, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aCG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aCH" = ( +/obj/machinery/space_heater, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aCI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aCJ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aCK" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aCL" = ( +/obj/structure/closet/secure_closet/security, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/checkpoint2) +"aCM" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aCN" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aCO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"aCP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"aCQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"aCR" = ( +/turf/closed/wall, +/area/chapel/main) +"aCS" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/arrival) +"aCT" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/mining_construction) +"aCU" = ( +/obj/machinery/door/airlock/titanium{ + name = "Arrivals Shuttle Airlock" + }, +/turf/open/floor/plating, +/area/shuttle/arrival) +"aCV" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/arrival) +"aCW" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"aCX" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/mining_construction) +"aCY" = ( +/obj/machinery/computer/security, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = 0; + pixel_y = 30 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/checkpoint2) +"aCZ" = ( +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/checkpoint2) +"aDa" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/construction{ + name = "\improper Garden" + }) +"aDb" = ( +/obj/structure/table, +/obj/item/weapon/wirecutters, +/obj/item/device/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/device/radio/intercom{ + broadcasting = 0; + name = "Station Intercom (General)"; + pixel_y = 20 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/checkpoint2) +"aDd" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/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/checkpoint2) +"aDg" = ( +/obj/machinery/biogenerator, +/turf/open/floor/plasteel, +/area/hallway/secondary/construction{ + name = "\improper Garden" + }) +"aDh" = ( +/obj/machinery/vending/assist, +/turf/open/floor/plasteel, +/area/storage/primary) +"aDi" = ( +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/black, +/area/gateway) +"aDj" = ( +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/gateway) +"aDk" = ( +/obj/structure/table, +/obj/item/device/assembly/igniter{ + pixel_x = -8; + pixel_y = -4 + }, +/obj/item/device/assembly/igniter, +/obj/item/weapon/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/device/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/weapon/stock_parts/cell/high/plus, +/turf/open/floor/plasteel, +/area/storage/primary) +"aDn" = ( +/obj/structure/table, +/obj/item/device/assembly/signaler, +/obj/item/device/assembly/signaler, +/obj/item/device/radio/intercom{ + broadcasting = 0; + name = "Station Intercom (General)"; + pixel_y = 20 + }, +/obj/item/device/multitool, +/obj/item/device/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/weapon/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/bluegrid, +/area/ai_monitored/nuke_storage) +"aDs" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/ai_monitored/nuke_storage) +"aDt" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/nuke_storage) +"aDu" = ( +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"aDv" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/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/black, +/area/gateway) +"aDx" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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/black, +/area/gateway) +"aDy" = ( +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/gateway) +"aDz" = ( +/obj/structure/rack{ + dir = 1 + }, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"aDA" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"aDB" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/turf/open/floor/plasteel/warning{ + dir = 2 + }, +/area/ai_monitored/storage/eva) +"aDC" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/ai_monitored/storage/eva) +"aDD" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/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 + }, +/turf/open/floor/plasteel/warning{ + dir = 2 + }, +/area/ai_monitored/storage/eva) +"aDF" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/ai_monitored/storage/eva) +"aDG" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/crew_quarters/sleep) +"aDH" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/weapon/pen, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/weapon/folder/white, +/obj/item/weapon/stamp/rd{ + pixel_x = 3; + pixel_y = -2 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/hor) +"aDI" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE" + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/storage/eva) +"aDJ" = ( +/obj/structure/table, +/obj/item/device/flashlight/lamp{ + pixel_x = 4; + pixel_y = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"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/sleep) +"aDL" = ( +/obj/structure/sink{ + icon_state = "sink"; + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/structure/sink{ + icon_state = "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{ + d1 = 4; + d2 = 8; + 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 = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"aDP" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"aDQ" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + 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/weapon/lipstick/random{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/weapon/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"; + req_access_txt = "0" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"aDT" = ( +/obj/machinery/light/small, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"aDU" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + 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/fsmaint2) +"aDW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aDX" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aDY" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start{ + name = "Mime" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/crew_quarters/theatre) +"aDZ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + 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/fsmaint2) +"aEa" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"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/crew_quarters/theatre) +"aEc" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/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{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aEe" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aEf" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aEg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/power/apc{ + dir = 2; + name = "Chapel APC"; + pixel_x = 0; + pixel_y = -24 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/chapel/main) +"aEh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/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/fsmaint2) +"aEj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"aEk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"aEl" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"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" + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/chapel/main) +"aEn" = ( +/obj/machinery/door/poddoor{ + id = "chapelgun"; + name = "Chapel Launcher Door" + }, +/turf/open/floor/plating, +/area/chapel/main) +"aEo" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"aEp" = ( +/turf/open/floor/plating/warnplate{ + dir = 10 + }, +/area/shuttle/auxillary_base) +"aEq" = ( +/obj/machinery/computer/arcade, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"aEr" = ( +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"aEs" = ( +/obj/structure/closet/wardrobe/black, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"aEt" = ( +/obj/structure/closet/wardrobe/green, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"aEu" = ( +/obj/structure/closet/wardrobe/grey, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"aEv" = ( +/obj/structure/closet/wardrobe/mixed, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"aEw" = ( +/obj/machinery/requests_console{ + department = "Arrival shuttle"; + pixel_y = 30 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"aEx" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "burst_r"; + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/shuttle/arrival) +"aEy" = ( +/obj/structure/shuttle/engine/heater{ + icon_state = "heater"; + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/shuttle/arrival) +"aEz" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "Entry Hall APC"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/structure/cable, +/turf/open/floor/plasteel/arrival{ + dir = 4 + }, +/area/hallway/secondary/entry) +"aEA" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 2; + icon_state = "pipe-j1s"; + sortType = 18 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aEB" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aEC" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aED" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + 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/fsmaint2) +"aEE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint2) +"aEF" = ( +/obj/structure/table/glass, +/obj/item/weapon/reagent_containers/food/snacks/grown/wheat, +/obj/item/weapon/reagent_containers/food/snacks/grown/watermelon, +/obj/item/weapon/reagent_containers/food/snacks/grown/watermelon, +/obj/item/weapon/reagent_containers/food/snacks/grown/watermelon, +/obj/item/weapon/reagent_containers/food/snacks/grown/citrus/orange, +/obj/item/weapon/reagent_containers/food/snacks/grown/grapes, +/obj/item/weapon/reagent_containers/food/snacks/grown/cocoapod, +/turf/open/floor/plasteel/green/side{ + dir = 4 + }, +/area/hallway/secondary/construction{ + name = "\improper Garden" + }) +"aEG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/checkpoint2) +"aEH" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint2) +"aEI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint2) +"aEJ" = ( +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/checkpoint2) +"aEK" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint2) +"aEL" = ( +/obj/machinery/door/airlock{ + name = "Garden"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/construction{ + name = "\improper Garden" + }) +"aEM" = ( +/turf/open/floor/bluegrid, +/area/ai_monitored/nuke_storage) +"aEN" = ( +/obj/structure/closet/crate{ + name = "Gold Crate" + }, +/obj/item/stack/sheet/mineral/gold{ + pixel_x = -1; + pixel_y = 5 + }, +/obj/item/stack/sheet/mineral/gold{ + pixel_y = 2 + }, +/obj/item/stack/sheet/mineral/gold{ + pixel_x = 1; + pixel_y = -2 + }, +/obj/item/weapon/storage/belt/champion, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/ai_monitored/nuke_storage) +"aEO" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/nuke_storage) +"aEP" = ( +/obj/item/weapon/coin/silver{ + pixel_x = 7; + pixel_y = 12 + }, +/obj/item/weapon/coin/silver{ + pixel_x = 12; + pixel_y = 7 + }, +/obj/item/weapon/coin/silver{ + pixel_x = 4; + pixel_y = 8 + }, +/obj/item/weapon/coin/silver{ + pixel_x = -6; + pixel_y = 5 + }, +/obj/item/weapon/coin/silver{ + pixel_x = 5; + pixel_y = -8 + }, +/obj/structure/closet/crate{ + name = "Silver Crate" + }, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/ai_monitored/nuke_storage) +"aEQ" = ( +/obj/structure/table, +/obj/item/weapon/paper/pamphlet, +/turf/open/floor/plasteel, +/area/gateway) +"aER" = ( +/obj/machinery/camera{ + c_tag = "Gateway"; + dir = 4; + network = list("SS13") + }, +/obj/structure/table, +/obj/structure/sign/biohazard{ + pixel_x = -32 + }, +/obj/item/weapon/storage/firstaid/regular, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/gateway) +"aES" = ( +/obj/structure/table, +/obj/item/device/radio/off{ + pixel_y = 6 + }, +/obj/item/device/radio/off{ + pixel_x = 6; + pixel_y = 4 + }, +/obj/item/device/radio/off{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/device/radio/off, +/turf/open/floor/plasteel, +/area/gateway) +"aET" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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/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/fpmaint) +"aEW" = ( +/obj/structure/grille, +/obj/structure/cable, +/obj/structure/window/reinforced/fulltile, +/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/glass_command{ + name = "EVA Storage"; + req_access_txt = "18" + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"aEY" = ( +/obj/structure/grille, +/obj/structure/cable, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/ai_monitored/storage/eva) +"aEZ" = ( +/turf/open/floor/plasteel/black, +/area/ai_monitored/storage/eva) +"aFa" = ( +/obj/machinery/suit_storage_unit/cmo, +/turf/open/floor/plasteel/barber, +/area/medical/cmo) +"aFb" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/storage/eva) +"aFc" = ( +/obj/structure/sign/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/sleep) +"aFe" = ( +/obj/machinery/camera{ + c_tag = "Dormitory South"; + c_tag_order = 999; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/crew_quarters/sleep) +"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"; + req_access_txt = "0" + }, +/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"; + pixel_x = 26; + pixel_y = 0 + }, +/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 = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aFn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aFo" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aFp" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aFq" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/space, +/area/space) +"aFr" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aFs" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/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/fsmaint2) +"aFt" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aFu" = ( +/turf/closed/wall, +/area/library) +"aFv" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"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/fsmaint2) +"aFy" = ( +/obj/machinery/power/apc{ + dir = 2; + name = "Chapel Office APC"; + pixel_x = 0; + 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/black, +/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; + pixel_y = 0 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"aFB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"aFC" = ( +/obj/structure/chair, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"aFD" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating/warnplate{ + dir = 6 + }, +/area/shuttle/auxillary_base) +"aFE" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/landmark{ + name = "JoinLate" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"aFF" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion"; + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/shuttle/arrival) +"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/checkpoint2) +"aFI" = ( +/obj/machinery/camera{ + c_tag = "Security Checkpoint"; + dir = 1 + }, +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + 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/checkpoint2) +"aFJ" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + icon_state = "intact"; + dir = 1 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"aFK" = ( +/obj/item/weapon/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/weapon/pen, +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/red/side, +/area/security/checkpoint2) +"aFL" = ( +/obj/item/device/radio/off, +/obj/item/weapon/crowbar, +/obj/item/device/assembly/flash/handheld, +/obj/structure/table, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/checkpoint2) +"aFM" = ( +/obj/machinery/recharger{ + pixel_y = 4 + }, +/obj/structure/table, +/turf/open/floor/plasteel/red/side, +/area/security/checkpoint2) +"aFN" = ( +/obj/structure/table/glass, +/obj/item/weapon/cultivator, +/obj/item/weapon/hatchet, +/obj/item/weapon/crowbar, +/obj/item/device/plant_analyzer, +/obj/item/weapon/reagent_containers/glass/bucket, +/turf/open/floor/plasteel/green/side{ + dir = 4 + }, +/area/hallway/secondary/construction{ + name = "\improper Garden" + }) +"aFO" = ( +/obj/machinery/camera{ + c_tag = "Garden"; + dir = 8; + network = list("SS13") + }, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/construction{ + name = "\improper Garden" + }) +"aFP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/construction{ + name = "\improper 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/weapon/screwdriver{ + pixel_y = 16 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"aFR" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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{ + name = "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{ + name = "Assistant" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"aFV" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"aFW" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel, +/area/gateway) +"aFX" = ( +/obj/item/device/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{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"aFZ" = ( +/obj/structure/table, +/obj/item/weapon/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{ + dir = 6 + }, +/area/ai_monitored/nuke_storage) +"aGb" = ( +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/ai_monitored/nuke_storage) +"aGc" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/camera/motion{ + c_tag = "Vault"; + dir = 1; + network = list("MiniSat") + }, +/obj/machinery/light, +/turf/open/floor/plasteel/vault{ + dir = 10 + }, +/area/ai_monitored/nuke_storage) +"aGd" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/vault, +/area/ai_monitored/nuke_storage) +"aGe" = ( +/obj/structure/safe, +/obj/item/clothing/head/bearpelt, +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass, +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass, +/obj/item/weapon/gun/ballistic/revolver/russian, +/obj/item/ammo_box/a357, +/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka/badminka, +/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/fpmaint) +"aGh" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"aGi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/ai_monitored/storage/eva) +"aGj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/ai_monitored/storage/eva) +"aGk" = ( +/obj/structure/sink{ + icon_state = "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{ + name = "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{ + amount = 50 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/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, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/ai_monitored/storage/eva) +"aGr" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start{ + name = "Clown" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/redblue, +/area/crew_quarters/theatre) +"aGs" = ( +/obj/machinery/suit_storage_unit/rd, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/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{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aGz" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + 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/fsmaint2) +"aGA" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 4; + icon_state = "pipe-j1s"; + sortType = 19 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aGB" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 4; + icon_state = "pipe-j1s"; + sortType = 20 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aGC" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aGD" = ( +/obj/structure/table/wood, +/obj/structure/mirror{ + pixel_x = -28 + }, +/obj/item/device/flashlight/lamp/bananalamp{ + pixel_y = 3 + }, +/turf/open/floor/plasteel/redblue, +/area/crew_quarters/theatre) +"aGE" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aGF" = ( +/obj/structure/disposalpipe/sortjunction{ + dir = 4; + icon_state = "pipe-j2s"; + sortType = 17 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"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/library) +"aGH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aGI" = ( +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j1"; + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aGJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aGK" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aGL" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + 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/fsmaint2) +"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/chapel/office) +"aGN" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aGO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/chapel/office) +"aGP" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aGQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aGR" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aGS" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aGT" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"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/grille, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aGW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aGX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/space, +/area/space) +"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 = null; + req_access_txt = "1" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/checkpoint2) +"aHa" = ( +/obj/machinery/door/firedoor, +/obj/structure/table/reinforced, +/obj/item/weapon/paper, +/obj/machinery/door/window/westright{ + dir = 1; + name = "Security Checkpoint"; + req_access_txt = "1" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/entry) +"aHb" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/stack/packageWrap, +/turf/open/floor/wood, +/area/library) +"aHc" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/pill_bottle/dice, +/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/weapon/storage/toolbox/electrical{ + pixel_x = 1; + pixel_y = -1 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"aHf" = ( +/obj/structure/closet/wardrobe/chaplain_black, +/obj/item/device/radio/intercom{ + pixel_y = 25 + }, +/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; + network = list("SS13") + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"aHh" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel, +/area/gateway) +"aHi" = ( +/obj/structure/closet/coffin, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"aHj" = ( +/obj/machinery/light_switch{ + pixel_x = -20; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + 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{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"aHl" = ( +/obj/structure/closet/coffin, +/obj/machinery/door/window/eastleft{ + name = "Coffin Storage"; + req_access_txt = "22" + }, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"aHm" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"aHn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"aHo" = ( +/obj/structure/table/glass, +/obj/item/weapon/reagent_containers/food/snacks/grown/poppy, +/obj/item/weapon/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{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"aHq" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/chapel/main) +"aHr" = ( +/obj/effect/landmark{ + name = "Marauder Entry" + }, +/turf/open/space, +/area/space) +"aHs" = ( +/obj/machinery/door/airlock/titanium{ + name = "Arrivals Shuttle Airlock" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"aHt" = ( +/obj/effect/landmark{ + name = "Observer-Start" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"aHu" = ( +/obj/machinery/status_display{ + density = 0; + layer = 3; + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 4 + }, +/area/hallway/secondary/entry) +"aHv" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/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/sleep) +"aHx" = ( +/obj/structure/grille, +/obj/structure/window/fulltile{ + obj_integrity = 25 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"aHy" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/checkpoint2) +"aHz" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plasteel/green/side{ + dir = 5 + }, +/area/hallway/secondary/construction{ + name = "\improper Garden" + }) +"aHA" = ( +/obj/item/weapon/reagent_containers/spray/plantbgone, +/obj/item/weapon/reagent_containers/spray/pestspray{ + pixel_x = 3; + pixel_y = 4 + }, +/obj/item/weapon/reagent_containers/glass/bottle/nutrient/ez, +/obj/item/weapon/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/hallway/secondary/construction{ + name = "\improper Garden" + }) +"aHB" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/storage/eva) +"aHC" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/storage/eva) +"aHD" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"aHE" = ( +/obj/structure/table, +/obj/item/weapon/weldingtool, +/obj/item/weapon/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/securearea, +/turf/closed/wall/r_wall, +/area/ai_monitored/nuke_storage) +"aHG" = ( +/obj/machinery/door/airlock/vault{ + icon_state = "door_locked"; + locked = 1; + req_access_txt = "53" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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/glass{ + name = "Dormitory" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/crew_quarters/sleep) +"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; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/structure/closet/l3closet/scientist, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/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{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/weapon/crowbar, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/ai_monitored/storage/eva) +"aHO" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/ai_monitored/storage/eva) +"aHP" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Central Access" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aHQ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/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/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/crew_quarters/bar) +"aHT" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Dormitory" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/crew_quarters/sleep) +"aHU" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/obj/structure/sink{ + icon_state = "sink"; + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/structure/mirror{ + pixel_x = -28 + }, +/obj/effect/landmark/start{ + name = "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/fsmaint2) +"aHZ" = ( +/obj/structure/table/wood, +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/obj/item/weapon/storage/crayons{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/reagent_containers/food/snacks/pie/cream{ + pixel_x = -3; + pixel_y = -3 + }, +/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/fsmaint2) +"aIb" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Theatre APC"; + pixel_x = -25 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/crew_quarters/theatre) +"aIc" = ( +/obj/machinery/power/apc{ + dir = 2; + name = "Bar APC"; + pixel_y = -24 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/bar) +"aId" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"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/fsmaint2) +"aIg" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=2"; + freq = 1400; + location = "Bar" + }, +/obj/structure/plasticflaps{ + opacity = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot{ + dir = 2 + }, +/area/crew_quarters/bar) +"aIh" = ( +/obj/machinery/power/apc{ + dir = 2; + name = "Kitchen APC"; + pixel_y = -24 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/kitchen) +"aIi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/kitchen) +"aIj" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 4; + icon_state = "pipe-j1s"; + sortType = 21 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aIk" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aIl" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aIm" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aIn" = ( +/obj/machinery/power/apc{ + dir = 2; + name = "Hydroponics APC"; + pixel_y = -24 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/hydroponics) +"aIo" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"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; + network = list("SS13") + }, +/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 = 4; + icon_state = "pipe-c" + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/library) +"aIx" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/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/black, +/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/weapon/paper_bin{ + pixel_x = -2; + pixel_y = 5 + }, +/obj/item/weapon/storage/crayons, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"aIB" = ( +/obj/structure/bodycontainer/crematorium, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"aIC" = ( +/obj/effect/landmark/start{ + name = "Chaplain" + }, +/obj/structure/chair, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"aID" = ( +/obj/structure/closet/coffin, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"aIE" = ( +/obj/structure/table/glass, +/turf/open/floor/plasteel/chapel, +/area/chapel/main) +"aIF" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable, +/turf/open/floor/plating, +/area/security/warden) +"aIG" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"aIH" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/lights/mixed, +/obj/item/weapon/pipe_dispenser, +/obj/machinery/button/door{ + id = "aux_base_shutters"; + name = "Public Shutters Control"; + pixel_x = 24; + pixel_y = 0; + req_access_txt = "0"; + req_one_access_txt = "32;47;48" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 6 + }, +/area/mining_construction) +"aII" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"aIJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/bot, +/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, +/turf/open/floor/plasteel/bot, +/area/hallway/secondary/entry) +"aIM" = ( +/turf/open/floor/plasteel/bot, +/area/hallway/secondary/entry) +"aIN" = ( +/obj/structure/table, +/obj/item/weapon/wrench, +/obj/item/device/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/weapon/hatchet, +/obj/item/weapon/cultivator, +/obj/item/weapon/crowbar, +/obj/item/weapon/reagent_containers/glass/bucket, +/obj/item/device/plant_analyzer, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/green/side{ + dir = 4 + }, +/area/hallway/secondary/construction{ + name = "\improper Garden" + }) +"aIT" = ( +/obj/item/weapon/storage/bag/plants/portaseeder, +/obj/structure/table/glass, +/obj/item/device/plant_analyzer, +/obj/item/device/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/hallway/secondary/construction{ + name = "\improper Garden" + }) +"aIU" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + freq = 1400; + location = "Tool Storage" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/bot, +/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/weapon/crowbar, +/obj/item/device/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/weapon/storage/belt/utility, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plasteel, +/area/storage/primary) +"aJa" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/gateway) +"aJb" = ( +/turf/open/floor/plasteel/delivery, +/area/storage/primary) +"aJc" = ( +/obj/structure/disposalpipe/trunk, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel, +/area/storage/primary) +"aJd" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/hallway/primary/port) +"aJe" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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; + pixel_y = 0 + }, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/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, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/gateway) +"aJj" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/weapon/extinguisher, +/obj/item/weapon/extinguisher, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/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{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/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/structure/grille, +/obj/structure/window/reinforced/fulltile, +/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; + icon_state = "direction_sec"; + pixel_x = 32; + pixel_y = 40 + }, +/obj/structure/sign/directions/medical{ + dir = 4; + icon_state = "direction_med"; + pixel_x = 32; + pixel_y = 32 + }, +/obj/structure/sign/directions/evac{ + dir = 4; + icon_state = "direction_evac"; + 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, +/turf/open/floor/plasteel/black, +/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/crew_quarters/kitchen) +"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/hydroponics) +"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/fsmaint2) +"aJE" = ( +/obj/item/weapon/reagent_containers/food/drinks/shaker, +/obj/item/weapon/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{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/wood, +/area/library) +"aJG" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/button/crematorium{ + 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/black, +/area/chapel/office) +"aJH" = ( +/obj/machinery/door/window/southleft{ + base_state = "left"; + dir = 2; + icon_state = "left"; + name = "Bar Delivery"; + req_access_txt = "25" + }, +/turf/open/floor/plasteel/delivery, +/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/black, +/area/chapel/office) +"aJK" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=2"; + freq = 1400; + location = "Kitchen" + }, +/obj/structure/plasticflaps{ + opacity = 1 + }, +/turf/open/floor/plasteel/bot{ + dir = 2 + }, +/area/crew_quarters/kitchen) +"aJL" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=2"; + freq = 1400; + location = "Hydroponics" + }, +/obj/structure/plasticflaps{ + opacity = 1 + }, +/turf/open/floor/plasteel/bot{ + dir = 2 + }, +/area/hydroponics) +"aJM" = ( +/obj/structure/table/wood, +/obj/item/device/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/weapon/book/manual/hydroponics_pod_people, +/obj/item/weapon/paper/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/weapon/folder/yellow, +/obj/item/weapon/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/weapon/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/weapon/pen, +/obj/item/weapon/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/coffin, +/obj/machinery/door/window/eastleft{ + dir = 8; + name = "Coffin Storage"; + req_access_txt = "22" + }, +/turf/open/floor/plasteel/black, +/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{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/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/glass{ + name = "Primary Tool Storage" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/storage/primary) +"aKb" = ( +/obj/structure/grille, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable, +/turf/open/floor/plating, +/area/hallway/primary/port) +"aKc" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + icon_state = "door_closed"; + lockdownbyai = 0; + locked = 0; + name = "Gateway Access"; + req_access_txt = "62" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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"; + d2 = 4 + }, +/obj/machinery/power/apc{ + dir = 8; + name = "Auxillary Base Construction APC"; + pixel_x = -24; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/mining_construction) +"aKg" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"aKh" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"aKi" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "burst_l"; + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/shuttle/arrival) +"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/glass{ + name = "Garden" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/construction{ + name = "\improper Garden" + }) +"aKn" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/hallway/secondary/construction{ + name = "\improper Garden" + }) +"aKo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/hallway/primary/central) +"aKp" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/storage/primary) +"aKq" = ( +/obj/item/device/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/grille, +/obj/structure/disposalpipe/segment, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/storage/primary) +"aKt" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/hallway/primary/port) +"aKu" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/hallway/primary/port) +"aKv" = ( +/obj/structure/grille, +/obj/structure/cable, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/hallway/primary/port) +"aKw" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/hallway/primary/port) +"aKx" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/hallway/primary/port) +"aKy" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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/fpmaint) +"aKz" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/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/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, +/turf/open/floor/plasteel/black, +/area/hallway/primary/central) +"aKH" = ( +/obj/structure/sink{ + pixel_y = 30 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/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/structure/closet/wardrobe/botanist, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/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, +/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 = 1; + icon_state = "pipe-c" + }, +/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 = 1 + }, +/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" + }, +/turf/open/floor/plasteel/delivery, +/area/crew_quarters/kitchen) +"aKW" = ( +/obj/machinery/light_switch{ + pixel_y = 28 + }, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"aKX" = ( +/obj/machinery/door/window/eastright{ + name = "Hydroponics Delivery"; + req_access_txt = "35" + }, +/turf/open/floor/plasteel/delivery, +/area/hydroponics) +"aKY" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"aKZ" = ( +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/obj/machinery/camera{ + c_tag = "Chapel Crematorium"; + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"aLa" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/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/black, +/area/chapel/office) +"aLc" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"aLd" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/spray/plantbgone{ + pixel_x = 0; + pixel_y = 3 + }, +/obj/item/weapon/reagent_containers/spray/plantbgone{ + pixel_x = 8; + pixel_y = 8 + }, +/obj/item/weapon/reagent_containers/spray/plantbgone{ + pixel_x = 13; + pixel_y = 5 + }, +/obj/item/weapon/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; + icon_state = "alarm0"; + 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; + icon_state = "tube1" + }, +/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{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aLl" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE"; + pixel_y = 32 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 4 + }, +/area/hallway/primary/port) +"aLm" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 8 + }, +/area/hallway/primary/port) +"aLn" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/hallway/primary/port) +"aLq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/hallway/primary/port) +"aLr" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"aLs" = ( +/obj/machinery/door/airlock/titanium{ + name = "Arrivals Shuttle Airlock" + }, +/obj/docking_port/mobile{ + dwidth = 5; + height = 7; + id = "arrival"; + name = "arrival shuttle"; + port_angle = -90; + preferred_direction = 8; + width = 15 + }, +/obj/docking_port/stationary{ + dwidth = 5; + height = 7; + id = "arrival_home"; + name = "port bay 1"; + width = 15 + }, +/turf/open/floor/plating, +/area/shuttle/arrival) +"aLt" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/fpmaint2) +"aLu" = ( +/obj/machinery/door/airlock/engineering{ + cyclelinkeddir = 1; + name = "Auxillary Base Construction"; + req_access_txt = "0"; + req_one_access_txt = "32;47;48" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/mining_construction) +"aLv" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/hallway/secondary/entry) +"aLw" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/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{ + name = "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/device/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/black, +/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"; + d2 = 2 + }, +/obj/machinery/power/apc{ + name = "Port Hall APC"; + dir = 1; + pixel_y = 26 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aLH" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/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/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE"; + pixel_y = 32 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 8 + }, +/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 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/hallway/primary/port) +"aLM" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/hallway/primary/port) +"aLN" = ( +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/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{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/hallway/primary/port) +"aLQ" = ( +/obj/machinery/camera{ + c_tag = "Central Hallway North-East"; + dir = 2 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/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{ + dir = 4; + on = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"aLT" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warning/corner{ + dir = 4 + }, +/area/hallway/primary/port) +"aLU" = ( +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + 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" = ( +/turf/open/floor/plasteel{ + icon_state = "L3" + }, +/area/hallway/primary/central) +"aMa" = ( +/turf/open/floor/plasteel{ + icon_state = "L1" + }, +/area/hallway/primary/central) +"aMb" = ( +/turf/open/floor/plasteel{ + icon_state = "L7" + }, +/area/hallway/primary/central) +"aMc" = ( +/turf/open/floor/plasteel{ + icon_state = "L5" + }, +/area/hallway/primary/central) +"aMd" = ( +/turf/open/floor/plasteel{ + icon_state = "L11" + }, +/area/hallway/primary/central) +"aMe" = ( +/turf/open/floor/plasteel{ + icon_state = "L9" + }, +/area/hallway/primary/central) +"aMf" = ( +/turf/open/floor/plasteel{ + desc = ""; + icon_state = "L13"; + name = "floor" + }, +/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{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aMi" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/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/camera{ + c_tag = "Kitchen Cold Room" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"aMl" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/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{ + tag = "icon-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 = 1; + icon_state = "pipe-c" + }, +/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, +/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 = 2; + icon_state = "pipe-c" + }, +/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/weapon/shovel/spade, +/obj/item/weapon/wrench, +/obj/item/weapon/reagent_containers/glass/bucket, +/obj/item/weapon/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, +/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{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"aML" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"aMM" = ( +/obj/machinery/camera{ + c_tag = "Chapel North"; + dir = 2; + network = list("SS13") + }, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"aMN" = ( +/obj/machinery/chem_master/condimaster, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"aMO" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/snacks/chips, +/obj/item/weapon/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{ + d1 = 2; + d2 = 8; + 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{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/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{ + d1 = 1; + d2 = 2; + 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{ + d1 = 1; + d2 = 2; + 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, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/turf/open/floor/plasteel/black, +/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/structure/grille, +/obj/structure/window/reinforced/fulltile, +/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/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/black, +/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{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aNl" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aNm" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aNn" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aNo" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + 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{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aNt" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/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" = ( +/turf/open/floor/plasteel{ + icon_state = "L4" + }, +/area/hallway/primary/central) +"aNw" = ( +/turf/open/floor/plasteel{ + icon_state = "L2" + }, +/area/hallway/primary/central) +"aNx" = ( +/turf/open/floor/plasteel{ + icon_state = "L8" + }, +/area/hallway/primary/central) +"aNy" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=Lockers"; + location = "EVA" + }, +/turf/open/floor/plasteel{ + icon_state = "L6" + }, +/area/hallway/primary/central) +"aNz" = ( +/turf/open/floor/plasteel{ + icon_state = "L12" + }, +/area/hallway/primary/central) +"aNA" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=Security"; + location = "EVA2" + }, +/turf/open/floor/plasteel{ + icon_state = "L10" + }, +/area/hallway/primary/central) +"aNB" = ( +/turf/open/floor/plasteel{ + desc = ""; + icon_state = "L14" + }, +/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/structure/closet/gmcloset, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/stack/cable_coil, +/obj/item/device/flashlight/lamp, +/obj/item/device/flashlight/lamp/green, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aNE" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 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"; + req_access_txt = "0" + }, +/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{ + density = 0; + layer = 3; + pixel_x = 32; + pixel_y = 0 + }, +/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/simple/scrubbers/hidden, +/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/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; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/structure/closet/chefcloset, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"aNP" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/library) +"aNQ" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/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{ + pixel_y = 0 + }, +/turf/open/floor/wood, +/area/library) +"aNT" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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/glass{ + name = "Chapel Office"; + req_access_txt = "22" + }, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"aNX" = ( +/obj/item/device/radio/intercom{ + broadcasting = 1; + frequency = 1480; + name = "Confessional Intercom"; + pixel_x = 25 + }, +/obj/structure/chair, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"aNY" = ( +/obj/machinery/door/morgue{ + name = "Confession Booth (Chaplain)"; + req_access_txt = "22" + }, +/turf/open/floor/plasteel/black, +/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, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/hallway/secondary/exit) +"aOd" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/hallway/secondary/exit) +"aOe" = ( +/obj/item/device/radio/beacon, +/obj/machinery/camera{ + c_tag = "Arrivals Bay 1 South" + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/hallway/secondary/entry) +"aOf" = ( +/obj/machinery/vending/snack, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/hallway/secondary/entry) +"aOg" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/hallway/secondary/entry) +"aOh" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/hallway/secondary/entry) +"aOi" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/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/weapon/storage/fancy/cigarettes{ + pixel_y = 2 + }, +/obj/item/weapon/lighter/greyscale{ + pixel_x = 4; + pixel_y = 2 + }, +/turf/open/floor/plasteel/grimy, +/area/hallway/secondary/entry) +"aOk" = ( +/obj/machinery/vending/cola, +/turf/open/floor/plasteel/black, +/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 = 4; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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{ + icon_state = "pipe-j1"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aOr" = ( +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j2"; + 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{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/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) +"aOu" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/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{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aOw" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aOx" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + 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{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + 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; + icon_state = "direction_sec"; + pixel_x = 32; + pixel_y = -24 + }, +/obj/structure/sign/directions/evac{ + dir = 4; + icon_state = "direction_evac"; + 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/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/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE"; + pixel_y = -32 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/blue/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"aOG" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE"; + pixel_y = -32 + }, +/obj/machinery/door/firedoor, +/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/structure/grille, +/obj/structure/window/fulltile, +/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{ + dir = 8; + on = 1 + }, +/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{ + name = "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_x = 0; + pixel_y = 30 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/hydroponics) +"aOR" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/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{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aOV" = ( +/obj/structure/sink{ + icon_state = "sink"; + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/turf/open/floor/plasteel/black, +/area/hydroponics) +"aOW" = ( +/obj/machinery/hydroponics/constructable, +/obj/machinery/camera{ + c_tag = "Hydroponics North"; + dir = 2 + }, +/turf/open/floor/plasteel/black, +/area/hydroponics) +"aOX" = ( +/obj/machinery/hydroponics/constructable, +/turf/open/floor/plasteel/black, +/area/hydroponics) +"aOY" = ( +/obj/structure/chair/comfy/beige{ + dir = 1; + icon_state = "comfychair" + }, +/obj/effect/landmark/start{ + name = "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/black, +/area/hydroponics) +"aPa" = ( +/obj/structure/chair/comfy/beige{ + dir = 1; + icon_state = "comfychair" + }, +/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{ + d1 = 1; + d2 = 2; + 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{ + dir = 1; + on = 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/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/weapon/pen/invisible, +/turf/open/floor/engine/cult, +/area/library) +"aPi" = ( +/obj/structure/table/wood, +/obj/item/device/taperecorder{ + pixel_y = 0 + }, +/obj/item/device/camera, +/obj/item/device/radio/intercom{ + pixel_y = 25 + }, +/turf/open/floor/engine/cult, +/area/library) +"aPj" = ( +/obj/machinery/light_switch{ + pixel_y = 28 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"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/structure/grille, +/obj/structure/window/reinforced/tinted/fulltile, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"aPp" = ( +/obj/machinery/camera{ + c_tag = "Escape Arm Holding Area"; + dir = 4 + }, +/obj/item/device/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 = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aPs" = ( +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/hallway/secondary/exit) +"aPt" = ( +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/hallway/secondary/entry) +"aPu" = ( +/turf/open/floor/plasteel/warning/corner{ + dir = 4 + }, +/area/hallway/secondary/entry) +"aPv" = ( +/obj/item/device/radio/intercom{ + broadcasting = 0; + name = "Station Intercom (General)"; + pixel_y = 20 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/hallway/secondary/entry) +"aPw" = ( +/obj/machinery/disposal/bin, +/obj/structure/sign/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; + icon_state = "comfychair" + }, +/turf/open/floor/plasteel/grimy, +/area/hallway/secondary/entry) +"aPy" = ( +/obj/machinery/vending/snack, +/turf/open/floor/plasteel/black, +/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{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/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{ + density = 0; + layer = 4 + }, +/turf/closed/wall, +/area/crew_quarters/locker) +"aPF" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/storage/art) +"aPG" = ( +/turf/closed/wall, +/area/storage/art) +"aPH" = ( +/obj/machinery/door/airlock/glass{ + name = "Art Storage" + }, +/turf/open/floor/plasteel, +/area/storage/art) +"aPI" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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/emergency2) +"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; + icon_state = "alarm0"; + 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) +"aPP" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/structure/table, +/obj/machinery/chem_dispenser/drinks/beer, +/obj/item/device/radio/intercom{ + pixel_y = 25 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"aPQ" = ( +/turf/closed/wall, +/area/storage/tools) +"aPR" = ( +/turf/closed/wall/r_wall, +/area/bridge) +"aPS" = ( +/obj/structure/grille, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + layer = 2.9; + name = "bridge blast door" + }, +/turf/open/floor/plating, +/area/bridge) +"aPT" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + layer = 2.9; + name = "bridge blast door" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/bridge) +"aPU" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/status_display{ + density = 0; + layer = 4 + }, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + layer = 2.9; + name = "bridge blast door" + }, +/turf/open/floor/plating, +/area/bridge) +"aPV" = ( +/obj/structure/grille, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + layer = 2.9; + name = "bridge blast door" + }, +/turf/open/floor/plating, +/area/bridge) +"aPW" = ( +/obj/structure/grille, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/status_display{ + density = 0; + layer = 4 + }, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + layer = 2.9; + name = "bridge blast door" + }, +/turf/open/floor/plating, +/area/bridge) +"aPX" = ( +/obj/structure/grille, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + layer = 2.9; + 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/weapon/kitchen/fork, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"aQb" = ( +/obj/structure/window/reinforced, +/obj/structure/table/wood, +/obj/item/device/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{ + name = "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/structure/grille, +/obj/structure/window/fulltile, +/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 = 8; + icon_state = "pipe-c" + }, +/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{ + dir = 8; + on = 1 + }, +/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, +/turf/open/floor/engine/cult, +/area/library) +"aQs" = ( +/obj/structure/destructible/cult/tome, +/obj/item/clothing/under/suit_jacket/red, +/obj/item/weapon/book/codex_gigas, +/turf/open/floor/engine/cult, +/area/library) +"aQt" = ( +/obj/effect/landmark{ + name = "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/black, +/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/device/radio/intercom{ + broadcasting = 1; + frequency = 1480; + name = "Confessional Intercom"; + pixel_x = 25 + }, +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"aQA" = ( +/obj/machinery/door/morgue{ + name = "Confession Booth" + }, +/turf/open/floor/plasteel/black, +/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/machinery/door/airlock/external{ + cyclelinkeddir = 4; + name = "Security Escape Airlock"; + req_access_txt = "2" + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"aQG" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/hallway/secondary/entry) +"aQH" = ( +/turf/open/floor/plasteel/warning/corner{ + dir = 8 + }, +/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{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/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{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/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, +/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/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/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{ + d1 = 1; + d2 = 2; + 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"; + req_access_txt = "0" + }, +/turf/open/floor/plating, +/area/storage/emergency2) +"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/grille, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/storage/tools) +"aRf" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/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/weapon/storage/secure/briefcase, +/obj/item/weapon/storage/box/PDAs{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/weapon/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"; + d2 = 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{ + dir = 0 + }, +/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{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/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/weapon/storage/toolbox/emergency, +/obj/item/weapon/wrench, +/obj/item/device/assembly/timer, +/obj/item/device/assembly/signaler, +/obj/item/device/assembly/signaler, +/turf/open/floor/plasteel, +/area/bridge) +"aRt" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aRu" = ( +/obj/machinery/light{ + icon_state = "tube1"; + 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{ + name = "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; + icon_state = "tube1" + }, +/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/device/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{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/power/apc{ + dir = 4; + name = "Library APC"; + pixel_x = 24 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/library) +"aRL" = ( +/obj/machinery/door/airlock/glass_security{ + 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/bookcase/random/nonfiction, +/turf/open/floor/wood, +/area/library) +"aRP" = ( +/obj/machinery/camera{ + c_tag = "Library South"; + dir = 8; + network = list("SS13") + }, +/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/black, +/area/chapel/main) +"aRS" = ( +/turf/open/floor/carpet, +/area/chapel/main) +"aRT" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/rack, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/weapon/electronics/apc, +/obj/item/weapon/electronics/airlock, +/turf/open/floor/plasteel, +/area/storage/tools) +"aRU" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"aRV" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Auxiliary Tool Storage APC"; + pixel_y = 24 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/table, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"aRW" = ( +/obj/structure/grille, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; + name = "KEEP CLEAR: DOCKING AREA"; + pixel_y = 0 + }, +/obj/structure/window/reinforced/fulltile, +/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{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/weapon/storage/box/lights/mixed, +/turf/open/floor/plasteel, +/area/storage/tools) +"aSb" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + 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; + network = list("SS13") + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aSg" = ( +/turf/open/floor/plating, +/area/maintenance/port) +"aSh" = ( +/obj/structure/closet/wardrobe/mixed, +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = -27 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aSi" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aSj" = ( +/obj/effect/landmark{ + name = "lightsout" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aSk" = ( +/obj/structure/table, +/obj/item/stack/cable_coil/random, +/obj/item/stack/cable_coil/random, +/turf/open/floor/plasteel, +/area/storage/art) +"aSl" = ( +/obj/machinery/light_switch{ + pixel_y = 28 + }, +/obj/item/weapon/storage/box/lights/mixed, +/turf/open/floor/plating, +/area/storage/emergency2) +"aSm" = ( +/turf/open/floor/plating, +/area/storage/emergency2) +"aSn" = ( +/obj/item/weapon/extinguisher, +/turf/open/floor/plating, +/area/storage/emergency2) +"aSo" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/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/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/storage/tools) +"aSt" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 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/device/assembly/flash/handheld, +/obj/item/device/assembly/flash/handheld, +/turf/open/floor/plasteel, +/area/bridge) +"aSw" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/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/device/aicard, +/obj/item/device/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{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/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/weapon/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/glass{ + name = "Kitchen"; + req_access_txt = "28" + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/kitchen) +"aSJ" = ( +/obj/effect/landmark/start{ + name = "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{ + dir = 4; + on = 1 + }, +/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 = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aSN" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/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{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/green/side{ + dir = 8 + }, +/area/hydroponics) +"aSR" = ( +/turf/open/floor/plasteel/black, +/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{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel/green/side{ + dir = 4 + }, +/area/hydroponics) +"aSV" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aSW" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -27; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"aSX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aSY" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/head/that{ + throwforce = 1; + throwing = 1 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"aSZ" = ( +/obj/effect/landmark/start{ + name = "Bartender" + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"aTa" = ( +/obj/machinery/requests_console{ + department = "Bar"; + departmentType = 2; + pixel_x = 30; + pixel_y = 0 + }, +/obj/machinery/camera{ + c_tag = "Bar"; + dir = 8; + network = list("SS13") + }, +/obj/structure/table, +/obj/machinery/chem_dispenser/drinks, +/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{ + pixel_y = 0 + }, +/obj/machinery/light_switch{ + pixel_y = 28 + }, +/turf/open/floor/wood, +/area/library) +"aTe" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/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{ + name = "Assistant" + }, +/turf/open/floor/plasteel/chapel{ + dir = 8 + }, +/area/chapel/main) +"aTj" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"aTk" = ( +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/hallway/secondary/exit) +"aTl" = ( +/obj/machinery/vending/cola, +/obj/machinery/status_display{ + layer = 4; + pixel_x = 0; + 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/machinery/door/airlock/external{ + cyclelinkeddir = 4; + name = "Escape Airlock" + }, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"aTo" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 8; + name = "Escape Airlock" + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"aTp" = ( +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"aTq" = ( +/turf/closed/wall, +/area/security/vacantoffice{ + name = "Vacant Office A" + }) +"aTr" = ( +/obj/machinery/door/firedoor, +/obj/machinery/status_display{ + density = 0; + layer = 3; + pixel_x = 32; + pixel_y = 0 + }, +/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 = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aTv" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aTw" = ( +/obj/structure/closet/wardrobe/green, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aTx" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/obj/effect/landmark/start{ + name = "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/weapon/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/weapon/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; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/machinery/camera{ + c_tag = "Locker Room East"; + dir = 8; + network = list("SS13") + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aTE" = ( +/obj/structure/table, +/obj/item/weapon/hand_labeler, +/turf/open/floor/plasteel, +/area/storage/art) +"aTF" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/table, +/obj/item/device/camera_film, +/obj/item/device/camera, +/turf/open/floor/plasteel, +/area/storage/art) +"aTG" = ( +/obj/structure/table, +/obj/item/weapon/storage/crayons, +/obj/item/weapon/storage/crayons, +/turf/open/floor/plasteel, +/area/storage/art) +"aTH" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating, +/area/storage/emergency2) +"aTI" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/storage/emergency2) +"aTJ" = ( +/obj/machinery/light/small, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/storage/emergency2) +"aTK" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/tank/internals/emergency_oxygen, +/obj/item/weapon/tank/internals/emergency_oxygen, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/turf/open/floor/plating, +/area/storage/emergency2) +"aTL" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/emergency, +/turf/open/floor/plasteel, +/area/storage/tools) +"aTM" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/snacks/mint, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aTN" = ( +/obj/structure/table, +/obj/item/weapon/kitchen/rollingpin, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aTO" = ( +/obj/structure/table, +/obj/item/weapon/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/device/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 = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aTV" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger, +/turf/open/floor/plasteel, +/area/bridge) +"aTW" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/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{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 4 + }, +/area/bridge) +"aUa" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aUb" = ( +/obj/machinery/computer/teleporter, +/turf/open/floor/plasteel/brown{ + dir = 10 + }, +/area/bridge) +"aUc" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plasteel, +/area/bridge) +"aUd" = ( +/obj/machinery/computer/security/mining{ + network = list("MINE","AuxBase") + }, +/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; + icon_state = "alarm0"; + pixel_x = -22 + }, +/obj/machinery/camera{ + c_tag = "Bar West"; + dir = 4; + network = list("SS13") + }, +/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, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/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{ + name = "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{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/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{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"aUy" = ( +/obj/machinery/camera{ + c_tag = "Vacant Office"; + dir = 4; + network = list("SS13") + }, +/turf/open/floor/wood, +/area/security/vacantoffice) +"aUz" = ( +/obj/machinery/hydroponics/constructable, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/black, +/area/hydroponics) +"aUA" = ( +/obj/structure/table/wood, +/obj/item/device/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{ + name = "Assistant" + }, +/turf/open/floor/wood, +/area/library) +"aUD" = ( +/obj/structure/table/wood, +/obj/item/device/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{ + name = "Librarian" + }, +/obj/structure/chair/office/dark, +/turf/open/floor/wood, +/area/library) +"aUG" = ( +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"aUH" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start{ + name = "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; + network = list("SS13") + }, +/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{ + frequency = 1439; + 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/weapon/pen/red, +/turf/open/floor/wood, +/area/security/vacantoffice) +"aUS" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aUT" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + 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; + pixel_y = 0 + }, +/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/device/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; + icon_state = "alarm0"; + pixel_x = -22 + }, +/obj/structure/closet/toolcloset, +/turf/open/floor/plasteel, +/area/storage/tools) +"aVb" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE"; + pixel_y = 32 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/blue/side{ + dir = 5 + }, +/area/hallway/primary/central) +"aVc" = ( +/obj/structure/sign/securearea{ + pixel_x = 32; + pixel_y = 0 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "bridge blast door" + }, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/bridge) +"aVd" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/window/reinforced/fulltile, +/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"; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/camera{ + c_tag = "Fore Primary Hallway"; + dir = 4; + network = list("SS13") + }, +/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{ + d1 = 1; + d2 = 4; + 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{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aVl" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aVm" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aVn" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aVo" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + 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/device/radio/beacon, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aVq" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + 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{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aVt" = ( +/obj/structure/sign/securearea{ + pixel_x = -32; + pixel_y = 0 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "bridge blast door" + }, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/bridge) +"aVu" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE"; + pixel_y = 32 + }, +/obj/machinery/door/firedoor, +/turf/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/weapon/reagent_containers/food/snacks/pie/cream, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aVB" = ( +/obj/structure/table, +/obj/item/weapon/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{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aVD" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/condiment/saltshaker{ + pixel_x = -3; + pixel_y = 0 + }, +/obj/item/weapon/reagent_containers/food/condiment/peppermill{ + pixel_x = 3 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aVE" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/donkpockets{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/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) +"aVG" = ( +/obj/structure/table, +/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/black, +/area/hydroponics) +"aVK" = ( +/obj/effect/landmark/start{ + name = "Botanist" + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"aVL" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 2; + icon_state = "pipe-j2s"; + 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/black, +/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/weapon/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/weapon/pen/red, +/obj/item/weapon/pen/blue{ + pixel_x = 5; + pixel_y = 5 + }, +/turf/open/floor/wood, +/area/library) +"aVS" = ( +/obj/structure/table/wood, +/obj/item/device/camera_film, +/obj/item/device/camera_film, +/turf/open/floor/wood, +/area/library) +"aVT" = ( +/obj/structure/table/wood, +/obj/item/weapon/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; + network = list("SS13") + }, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"aVW" = ( +/obj/item/device/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/glass{ + name = "Library" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/library) +"aWa" = ( +/obj/structure/grille, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"aWb" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/library) +"aWc" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aWd" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/carpet, +/area/library) +"aWe" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/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{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/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{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/light_switch{ + pixel_x = -28; + pixel_y = 0 + }, +/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{ + dir = 8; + on = 1 + }, +/turf/open/floor/carpet, +/area/security/vacantoffice) +"aWs" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/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{ + d1 = 2; + d2 = 4; + 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"; + pixel_x = 0; + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/turf/open/floor/plating, +/area/storage/art) +"aWx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + 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/locker/locker_toilet) +"aWz" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Port Emergency Storage APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/turf/open/floor/plating, +/area/storage/emergency2) +"aWA" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + 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/maintenance/port) +"aWD" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel, +/area/storage/tools) +"aWE" = ( +/obj/machinery/computer/med_data, +/obj/machinery/newscaster{ + pixel_x = 0; + 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{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "bridge blast door" + }, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/bridge) +"aWJ" = ( +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/door/airlock/glass_command{ + cyclelinkeddir = 4; + name = "Bridge"; + req_access_txt = "19" + }, +/turf/open/floor/plasteel, +/area/bridge) +"aWK" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/bridge) +"aWL" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/glass_command{ + cyclelinkeddir = 8; + 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{ + d1 = 2; + d2 = 8; + 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{ + dir = 0 + }, +/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; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 0 + }, +/area/bridge) +"aWR" = ( +/obj/structure/fireaxecabinet{ + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 0 + }, +/area/bridge) +"aWS" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 0 + }, +/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{ + dir = 0 + }, +/area/bridge) +"aWU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 0 + }, +/area/bridge) +"aWV" = ( +/obj/machinery/turretid{ + control_area = "AI Upload Chamber"; + 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{ + dir = 0 + }, +/area/bridge) +"aWW" = ( +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 2; + name = "Bridge APC"; + pixel_y = -24 + }, +/obj/structure/cable, +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/blue/side{ + dir = 0 + }, +/area/bridge) +"aWX" = ( +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 0 + }, +/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{ + d1 = 4; + d2 = 8; + 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{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aXb" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + 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" + }, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/bridge) +"aXc" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/glass_command{ + cyclelinkeddir = 4; + name = "Bridge"; + req_access_txt = "19" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aXd" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + 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"; + d2 = 2 + }, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/door/airlock/glass_command{ + cyclelinkeddir = 8; + 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{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aXh" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aXi" = ( +/obj/machinery/light{ + icon_state = "tube1"; + 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/weapon/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/weapon/book/manual/barman_recipes, +/obj/item/weapon/reagent_containers/glass/rag, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"aXl" = ( +/obj/machinery/door/window/southright{ + name = "Bar Door"; + req_access_txt = "0"; + req_one_access_txt = "25;28" + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"aXm" = ( +/obj/effect/landmark/start{ + name = "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; + pixel_y = 0 + }, +/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"; + req_access_txt = "0" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet) +"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" = ( +/turf/open/floor/plasteel/warning/corner{ + dir = 2 + }, +/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 = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aXw" = ( +/turf/open/floor/plasteel/warning{ + dir = 2 + }, +/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/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, +/turf/open/floor/plasteel/warning/corner{ + dir = 1 + }, +/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/maintenance/port) +"aXF" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/fitness) +"aXG" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/hallway/secondary/exit) +"aXH" = ( +/obj/structure/table, +/obj/machinery/button/door{ + id = "syndieshutters"; + name = "remote shutter control"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"aXI" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 4; + id_tag = null; + name = "Port Docking Bay 2"; + req_access_txt = "0" + }, +/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/maintenance/port) +"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{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/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/locker/locker_toilet) +"aXR" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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/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{ + dir = 8; + on = 1 + }, +/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{ + 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 = "Locker Room Maintenance APC"; + pixel_x = -27; + pixel_y = 2 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aYb" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/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/maintenance/port) +"aYd" = ( +/obj/structure/chair/office/dark, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/security/vacantoffice) +"aYe" = ( +/obj/machinery/light_switch{ + pixel_y = 28 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet) +"aYf" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aYg" = ( +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/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{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/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/device/taperecorder, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/button/door{ + id = "kanyewest"; + name = "Privacy Shutters"; + pixel_x = 0; + pixel_y = 24 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"aYk" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/blue/side{ + dir = 0 + }, +/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{ + dir = 0 + }, +/area/hallway/primary/central) +"aYo" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "bridge blast door" + }, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/bridge) +"aYp" = ( +/obj/structure/grille, +/obj/structure/cable, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/bridge) +"aYq" = ( +/obj/structure/closet/emcloset, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/blue/side{ + dir = 0 + }, +/area/bridge) +"aYr" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 0 + }, +/area/bridge) +"aYs" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/blue/side{ + dir = 0 + }, +/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/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/weapon/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{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/highsecurity{ + icon_state = "door_closed"; + locked = 0; + name = "AI Upload Access"; + req_access_txt = "16" + }, +/turf/open/floor/plasteel/black, +/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{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/blue/side{ + dir = 0 + }, +/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"; + pixel_y = -24 + }, +/obj/structure/cable, +/turf/open/floor/plasteel/blue/side{ + dir = 0 + }, +/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/weapon/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{ + name = "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 = 1; + icon_state = "pipe-c" + }, +/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/weapon/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{ + name = "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; + pixel_y = 0 + }, +/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; + network = list("SS13") + }, +/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, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/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/weapon/storage/box/evidence, +/obj/item/weapon/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{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/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{ + d1 = 1; + d2 = 2; + 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/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; + network = list("SS13") + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/hallway/secondary/exit) +"aZn" = ( +/obj/structure/table/wood, +/obj/item/weapon/folder/blue, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/security/vacantoffice) +"aZo" = ( +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet) +"aZp" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/electronics/apc, +/obj/item/weapon/stock_parts/cell{ + maxcharge = 2000 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"aZq" = ( +/obj/machinery/button/door{ + id = "heads_meeting"; + name = "Security Shutters"; + pixel_x = 0; + 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/locker/locker_toilet) +"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/locker/locker_toilet) +"aZw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet) +"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, +/turf/open/floor/plasteel/delivery, +/area/crew_quarters/locker) +"aZB" = ( +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/plasteel/delivery, +/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{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/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/maintenance/port) +"aZG" = ( +/obj/machinery/light_switch{ + pixel_y = 28 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"aZH" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "packageSort2" + }, +/turf/open/floor/plating, +/area/quartermaster/office) +"aZI" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/stack/sheet/cardboard, +/obj/item/stack/rods{ + amount = 50 + }, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"aZJ" = ( +/obj/structure/table/wood, +/obj/item/device/camera/detective, +/turf/open/floor/carpet, +/area/security/detectives_office) +"aZK" = ( +/turf/closed/wall, +/area/quartermaster/office) +"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 = null; + req_access_txt = "19" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"aZR" = ( +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai_upload) +"aZS" = ( +/obj/machinery/porta_turret/ai{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai_upload) +"aZT" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai_upload) +"aZU" = ( +/obj/machinery/porta_turret/ai{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai_upload) +"aZV" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/captain) +"aZW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/crew_quarters/captain) +"aZX" = ( +/obj/machinery/door/airlock/command{ + name = "Captain's Office"; + req_access = null; + req_access_txt = "20" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/crew_quarters/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{ + pixel_x = 0; + pixel_y = 0 + }, +/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 = 8; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bag" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bah" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + 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/weapon/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{ + icon_state = "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/structure/grille, +/obj/structure/window/reinforced/fulltile, +/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{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = 0; + pixel_y = 32 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/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{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/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/weapon/pen, +/turf/open/floor/wood, +/area/library) +"bau" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/turf/open/floor/wood, +/area/library) +"bav" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/wood, +/area/library) +"baw" = ( +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/obj/structure/mirror{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet) +"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{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"baA" = ( +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/chapel/main) +"baB" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"baC" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"baD" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Escape Hallway APC"; + pixel_x = -25 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plasteel/escape{ + dir = 8 + }, +/area/hallway/secondary/exit) +"baE" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"baF" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/hallway/secondary/entry) +"baG" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0 + }, +/obj/machinery/light{ + icon_state = "tube1"; + 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{ + dir = 4; + on = 1 + }, +/turf/open/floor/carpet, +/area/bridge/meeting_room) +"baJ" = ( +/obj/item/device/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{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/power/apc{ + dir = 4; + name = "Locker Restrooms APC"; + pixel_x = 27; + pixel_y = 2 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plating, +/area/crew_quarters/locker/locker_toilet) +"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/locker/locker_toilet) +"baP" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/fancy/donut_box, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"baQ" = ( +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/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/storage) +"baT" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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/weapon/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{ + name = "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/storage) +"baZ" = ( +/obj/machinery/status_display{ + layer = 4; + pixel_x = 0; + 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{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bbb" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/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{ + name = "blobstart" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/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{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"bbj" = ( +/obj/structure/table, +/obj/item/weapon/aiModule/reset, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/black, +/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/sleep) +"bbm" = ( +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai_upload) +"bbn" = ( +/obj/structure/table, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/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/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{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet) +"bbr" = ( +/obj/machinery/camera{ + c_tag = "Locker Room South"; + dir = 8; + network = list("SS13") + }, +/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, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/crew_quarters/locker) +"bbt" = ( +/obj/structure/closet/crate, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"bbu" = ( +/obj/machinery/power/apc{ + cell_type = 2500; + dir = 1; + name = "Captain's Office APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bbv" = ( +/obj/machinery/status_display{ + pixel_x = 0; + pixel_y = 32 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"bbw" = ( +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bbx" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/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; + network = list("SS13") + }, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/hallway/primary/starboard) +"bbB" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/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/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/library) +"bbE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/library) +"bbF" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/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{ + d1 = 1; + d2 = 2; + 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 A APC"; + pixel_x = -24; + pixel_y = 0 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating, +/area/security/vacantoffice{ + name = "Vacant Office A" + }) +"bbJ" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bbK" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + 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/locker/locker_toilet) +"bbM" = ( +/obj/item/weapon/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{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"bbQ" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey{ + pixel_x = 3 + }, +/obj/item/weapon/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/storage) +"bbT" = ( +/obj/structure/table/wood, +/obj/item/device/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/security/detectives_office) +"bbV" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bbW" = ( +/obj/structure/grille, +/obj/machinery/door/poddoor/preopen{ + id = "heads_meeting"; + layer = 2.9; + name = "privacy shutters" + }, +/obj/structure/window/reinforced/fulltile, +/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/captain) +"bca" = ( +/turf/open/floor/carpet, +/area/bridge/meeting_room) +"bcb" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/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, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"bcd" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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/weapon/aiModule/supplied/quarantine, +/obj/machinery/camera/motion{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai_upload) +"bcf" = ( +/obj/machinery/holopad, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai_upload) +"bcg" = ( +/obj/structure/table, +/obj/item/weapon/aiModule/supplied/freeform, +/obj/structure/sign/kiddieplaque{ + pixel_x = 32 + }, +/obj/machinery/camera/motion{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai_upload) +"bch" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bci" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bcj" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/junction{ + dir = 8; + icon_state = "pipe-j1" + }, +/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{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"bcn" = ( +/obj/structure/displaycase/captain, +/turf/open/floor/wood, +/area/crew_quarters/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; + icon_state = "direction_evac"; + pixel_x = 32; + pixel_y = 28 + }, +/obj/structure/sign/directions/security{ + dir = 1; + icon_state = "direction_sec"; + 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; + network = list("SS13") + }, +/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{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet) +"bcu" = ( +/obj/machinery/door/airlock/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; + network = list("SS13") + }, +/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{ + d1 = 1; + d2 = 2; + 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/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/hallway/secondary/exit) +"bcC" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/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{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"bcF" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"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/weapon/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/storage) +"bcK" = ( +/obj/structure/rack{ + dir = 4 + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/port) +"bcL" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j2"; + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bcM" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/port) +"bcN" = ( +/obj/item/weapon/folder/blue, +/obj/structure/table/wood, +/turf/open/floor/carpet, +/area/bridge/meeting_room) +"bcO" = ( +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet) +"bcP" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"bcQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"bcR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"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/storage) +"bcT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/quartermaster/storage) +"bcU" = ( +/obj/item/stack/tile/plasteel, +/turf/open/space, +/area/space/nearstation) +"bcV" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/structure/filingcabinet, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bcW" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bcX" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "heads_meeting"; + layer = 2.9; + name = "privacy shutters" + }, +/turf/open/floor/plating, +/area/bridge/meeting_room) +"bcY" = ( +/obj/item/weapon/hand_labeler, +/obj/item/device/assembly/timer, +/obj/structure/table, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"bcZ" = ( +/obj/structure/table/wood, +/obj/item/device/radio/intercom{ + dir = 8; + freerange = 1; + name = "Station Intercom (Command)"; + pixel_x = 0 + }, +/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_x = 0; + pixel_y = -30 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/white/corner{ + dir = 2 + }, +/area/hallway/primary/starboard) +"bdd" = ( +/obj/machinery/vending/cola, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"bde" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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; + pixel_y = 0 + }, +/obj/machinery/porta_turret/ai{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai_upload) +"bdg" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai_upload) +"bdh" = ( +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/ai_upload) +"bdi" = ( +/obj/machinery/computer/arcade, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bdj" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bdk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bdl" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bdm" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bdn" = ( +/obj/machinery/camera{ + c_tag = "Central Hallway East"; + dir = 4; + network = list("SS13") + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/status_display{ + density = 0; + layer = 3; + pixel_x = -32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"bdo" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/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{ + dir = 4; + on = 1 + }, +/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{ + d1 = 2; + d2 = 4; + 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 = 1; + icon_state = "pipe-c" + }, +/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 = 2; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bdA" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 4; + name = "Cargo Escape Airlock" + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"bdB" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bdC" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 1; + icon_state = "pipe-j2s"; + sortType = 1 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + 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{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/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{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bdF" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/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/locker/locker_toilet) +"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{ + name = "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/black, +/area/medical/morgue) +"bdO" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bdP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/assembly/chargebay) +"bdQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/closed/wall, +/area/maintenance/disposal) +"bdR" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + 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/storage) +"bdT" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Disposal APC"; + pixel_x = -24; + pixel_y = 0 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bdU" = ( +/obj/structure/closet/crate/medical, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"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/weapon/storage/fancy/donut_box, +/obj/structure/table, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"bdY" = ( +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/weapon/pen, +/obj/structure/table/wood, +/turf/open/floor/carpet, +/area/bridge/meeting_room) +"bdZ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/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/weapon/aiModule/core/full/asimov, +/obj/item/weapon/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/item/weapon/aiModule/core/full/corp, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/weapon/aiModule/core/full/custom, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai_upload) +"bec" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai_upload) +"bed" = ( +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 2; + name = "Upload APC"; + pixel_y = -24 + }, +/obj/structure/cable, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai_upload) +"bee" = ( +/obj/machinery/computer/upload/ai, +/obj/machinery/flasher{ + id = "AI"; + pixel_x = 0; + pixel_y = -21 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai_upload) +"bef" = ( +/obj/machinery/computer/upload/borg, +/obj/item/device/radio/intercom{ + broadcasting = 1; + frequency = 1447; + listening = 0; + name = "Station Intercom (AI Private)"; + pixel_y = -29 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai_upload) +"beg" = ( +/obj/structure/table, +/obj/item/weapon/aiModule/supplied/oxygen, +/obj/item/weapon/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/weapon/aiModule/reset/purge, +/obj/structure/window/reinforced, +/obj/item/weapon/aiModule/core/full/antimov, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/item/weapon/aiModule/supplied/protectStation, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai_upload) +"beh" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai_upload) +"bei" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bej" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bek" = ( +/obj/structure/chair, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bel" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bem" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"ben" = ( +/obj/structure/table/wood, +/obj/machinery/camera{ + c_tag = "Captain's Office"; + dir = 8 + }, +/obj/item/weapon/storage/lockbox/medal{ + pixel_y = 0 + }, +/turf/open/floor/wood, +/area/crew_quarters/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; + icon_state = "direction_med"; + pixel_x = 32; + pixel_y = -24 + }, +/obj/structure/sign/directions/science{ + dir = 4; + icon_state = "direction_sci"; + 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_x = 0; + 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{ + dir = 0 + }, +/area/hallway/primary/starboard) +"beu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/blue/side{ + dir = 0 + }, +/area/hallway/primary/starboard) +"bev" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/blue/corner{ + dir = 8 + }, +/area/hallway/primary/starboard) +"bew" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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/storage) +"bey" = ( +/turf/open/floor/plasteel/white/corner{ + dir = 8 + }, +/area/hallway/primary/starboard) +"bez" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + 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/office) +"beB" = ( +/obj/machinery/camera{ + c_tag = "Starboard Primary Hallway 3"; + dir = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"beC" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + 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/storage) +"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/office) +"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{ + d1 = 1; + d2 = 2; + 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/machinery/door/airlock/external{ + cyclelinkeddir = 2; + name = "Port Docking Bay 4"; + req_access_txt = "0" + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"beL" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 2; + name = "Port Docking Bay 3"; + req_access_txt = "0" + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"beM" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/warning, +/area/hallway/secondary/entry) +"beN" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/warning, +/area/hallway/secondary/entry) +"beO" = ( +/turf/closed/wall, +/area/maintenance/disposal) +"beP" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "garbage" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"beQ" = ( +/obj/structure/disposaloutlet{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/maintenance/disposal) +"beR" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "garbage" + }, +/obj/machinery/recycler, +/obj/structure/sign/securearea{ + name = "\improper STAY CLEAR HEAVY MACHINERY"; + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"beS" = ( +/obj/machinery/conveyor{ + dir = 8; + 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"; + verted = -1 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"beV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/quartermaster/office) +"beW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/structure/filingcabinet/filingcabinet, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel/brown{ + dir = 1 + }, +/area/quartermaster/office) +"beX" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"beY" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/black, +/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/locker/locker_toilet) +"bfb" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = 32 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/chapel/main) +"bfc" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Locker Room APC"; + pixel_x = 0; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/crew_quarters/locker) +"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{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/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/storage) +"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/storage) +"bfj" = ( +/obj/structure/disposalpipe/trunk, +/obj/structure/disposaloutlet{ + dir = 4 + }, +/turf/open/floor/plating, +/area/quartermaster/office) +"bfk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/power/apc{ + dir = 2; + name = "Cargo Bay APC"; + pixel_x = 1; + pixel_y = -24 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + 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/office) +"bfm" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/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/office) +"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 = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/port) +"bfr" = ( +/obj/structure/noticeboard{ + dir = 8; + pixel_x = 27; + pixel_y = 0 + }, +/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{ + density = 0; + layer = 4 + }, +/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/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/weapon/pen, +/turf/open/floor/wood, +/area/crew_quarters/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/weapon/hand_tele, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bfB" = ( +/obj/structure/table/wood, +/obj/item/weapon/folder/blue, +/obj/item/weapon/stamp/captain, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bfC" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp/green, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bfD" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bfE" = ( +/obj/structure/table/wood, +/obj/item/weapon/pinpointer, +/obj/item/weapon/disk/nuclear, +/obj/item/weapon/storage/secure/safe{ + pixel_x = 35; + pixel_y = 5 + }, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bfF" = ( +/turf/closed/wall, +/area/medical/chemistry) +"bfG" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/medical/medbay) +"bfH" = ( +/obj/structure/sign/bluecross_2, +/turf/closed/wall, +/area/medical/medbay) +"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) +"bfK" = ( +/turf/closed/wall, +/area/security/checkpoint/medical) +"bfL" = ( +/turf/closed/wall, +/area/medical/morgue) +"bfM" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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 = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"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"; + pixel_y = -24 + }, +/obj/structure/cable, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bfQ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/quartermaster/office) +"bfR" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/yellow, +/obj/item/weapon/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/weapon/pen, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bfS" = ( +/turf/closed/wall, +/area/storage/emergency) +"bfT" = ( +/turf/closed/wall, +/area/assembly/chargebay) +"bfU" = ( +/turf/open/floor/plasteel/loadingarea{ + dir = 1 + }, +/area/hallway/primary/starboard) +"bfV" = ( +/turf/closed/wall/r_wall, +/area/assembly/robotics) +"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/device/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/securearea{ + pixel_x = 0; + 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/toxins/lab) +"bgd" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + 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{ + d1 = 1; + d2 = 2; + 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, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/hallway/secondary/exit) +"bgg" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/warning, +/area/hallway/secondary/exit) +"bgh" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/hallway/secondary/entry) +"bgi" = ( +/obj/machinery/camera{ + c_tag = "Arrivals Bay 3 & 4"; + dir = 1 + }, +/turf/open/floor/plasteel/warning, +/area/hallway/secondary/entry) +"bgj" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "garbage" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bgk" = ( +/obj/machinery/conveyor{ + dir = 5; + id = "garbage" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bgl" = ( +/obj/machinery/conveyor{ + dir = 10; + id = "garbage"; + verted = -1 + }, +/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{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/power/apc{ + dir = 4; + name = "Mech Bay APC"; + pixel_x = 26; + pixel_y = 0 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/assembly/chargebay) +"bgp" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bgq" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + 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/locker/locker_toilet) +"bgs" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet) +"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{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/port) +"bgx" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + 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) +"bgy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/closed/wall, +/area/maintenance/port) +"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/storage) +"bgB" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/closed/wall, +/area/quartermaster/storage) +"bgC" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/closed/wall, +/area/quartermaster/office) +"bgD" = ( +/obj/machinery/conveyor_switch/oneway{ + id = "packageSort2" + }, +/obj/machinery/camera{ + c_tag = "Cargo Delivery Office"; + dir = 4; + network = list("SS13") + }, +/obj/machinery/requests_console{ + department = "Cargo Bay"; + departmentType = 2; + pixel_x = -30; + pixel_y = 0 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/brown{ + dir = 1 + }, +/area/quartermaster/office) +"bgE" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 4; + locked = 0; + pixel_x = -23; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bgF" = ( +/obj/structure/table/glass, +/obj/machinery/reagentgrinder, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27; + pixel_y = 0 + }, +/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" + }, +/turf/open/floor/plasteel/delivery, +/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_x = 0; + 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/black, +/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 = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bgQ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 2 + }, +/area/medical/medbay) +"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; + pixel_y = 0 + }, +/obj/structure/filingcabinet, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bgT" = ( +/obj/machinery/computer/communications, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bgU" = ( +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Captain" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bgV" = ( +/obj/structure/table/wood, +/obj/item/weapon/book/manual/wiki/security_space_law, +/obj/item/weapon/coin/plasma, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bgW" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/holopad, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bgX" = ( +/obj/structure/table/wood, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/item/device/camera, +/obj/item/weapon/storage/photo_album{ + pixel_y = -10 + }, +/turf/open/floor/wood, +/area/crew_quarters/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"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/mob/living/simple_animal/bot/cleanbot{ + name = "C.L.E.A.N." + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bha" = ( +/obj/structure/closet/secure_closet/chemical, +/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; + network = list("SS13") + }, +/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, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 5 + }, +/area/medical/chemistry) +"bhe" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bhf" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bhg" = ( +/turf/open/floor/plasteel/whiteblue/side{ + dir = 2 + }, +/area/medical/medbay) +"bhh" = ( +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bhi" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/checkpoint/medical) +"bhj" = ( +/obj/machinery/camera{ + c_tag = "Security Post - Medbay"; + dir = 2; + network = list("SS13") + }, +/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/weapon/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/weapon/pen, +/obj/machinery/button/door{ + desc = "A remote control switch for the medbay foyer."; + id = "MedbayFoyer"; + name = "Medbay Doors Control"; + normaldoorcontrol = 1; + pixel_x = 0; + pixel_y = 26; + req_access_txt = "5" + }, +/obj/item/weapon/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; + pixel_y = 0 + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/checkpoint/medical) +"bhm" = ( +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bhn" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/bodybags, +/obj/item/weapon/pen, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bho" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bhp" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Morgue APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bhq" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bhr" = ( +/obj/machinery/door/airlock{ + name = "Starboard Emergency Storage"; + req_access_txt = "0" + }, +/turf/open/floor/plating, +/area/storage/emergency) +"bhs" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/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"; + req_one_access_txt = "0" + }, +/turf/open/floor/plasteel, +/area/assembly/chargebay) +"bhu" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters{ + id = "Skynet_launch"; + name = "mech bay" + }, +/turf/open/floor/plasteel/delivery, +/area/assembly/chargebay) +"bhv" = ( +/obj/machinery/computer/rdconsole/robotics, +/obj/machinery/airalarm{ + pixel_y = 25 + }, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"bhw" = ( +/obj/machinery/r_n_d/circuit_imprinter, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"bhx" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/robotics_cyborgs{ + pixel_x = 2; + pixel_y = 5 + }, +/obj/item/weapon/storage/belt/utility, +/obj/item/weapon/reagent_containers/glass/beaker/large, +/obj/machinery/requests_console{ + department = "Robotics"; + departmentType = 2; + name = "Robotics RC"; + pixel_y = 30 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"bhy" = ( +/obj/structure/grille, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "robotics"; + name = "robotics lab shutters" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/assembly/robotics) +"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/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/weapon/pen, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "robotics"; + name = "robotics lab shutters" + }, +/turf/open/floor/plating, +/area/assembly/robotics) +"bhA" = ( +/turf/closed/wall, +/area/medical/research{ + name = "Research Division" + }) +"bhB" = ( +/obj/machinery/door/airlock/research{ + cyclelinkeddir = 2; + name = "Research Division Access"; + req_access_txt = "47" + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bhC" = ( +/obj/structure/grille, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rnd"; + name = "research lab shutters" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/toxins/lab) +"bhD" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/southright{ + name = "Research and Development Desk"; + req_access_txt = "7" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rnd"; + name = "research lab shutters" + }, +/turf/open/floor/plating, +/area/toxins/lab) +"bhE" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass{ + amount = 50; + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/clothing/glasses/welding, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"bhF" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"bhG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/maintenance/asmaint2) +"bhH" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bhI" = ( +/obj/machinery/conveyor{ + dir = 1; + 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 + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/maintenance/disposal) +"bhK" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/assembly/chargebay) +"bhL" = ( +/obj/machinery/mineral/stacking_machine{ + input_dir = 1; + stack_amt = 10 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bhM" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/assembly/chargebay) +"bhN" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bhO" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bhP" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"bhQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/locker/locker_toilet) +"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/medical/research{ + name = "Research Division" + }) +"bhV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"bhW" = ( +/obj/machinery/door/poddoor/shutters{ + id = "qm_warehouse"; + name = "warehouse shutters" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/quartermaster/storage) +"bhX" = ( +/obj/structure/disposalpipe/wrapsortjunction{ + dir = 1 + }, +/turf/closed/wall, +/area/quartermaster/storage) +"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/office) +"bia" = ( +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/disposaloutlet{ + dir = 4 + }, +/turf/open/floor/plating, +/area/quartermaster/office) +"bib" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/item/device/radio/intercom{ + freerange = 0; + frequency = 1459; + name = "Station Intercom (General)"; + pixel_x = 29 + }, +/turf/open/floor/plasteel/white, +/area/toxins/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; + pixel_y = 0 + }, +/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{ + opacity = 1 + }, +/turf/open/floor/plasteel/bot, +/area/bridge/meeting_room) +"bif" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"big" = ( +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/gravity_generator) +"bih" = ( +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/engine/gravity_generator) +"bii" = ( +/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/device/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/captain) +"bil" = ( +/obj/machinery/computer/card, +/obj/item/weapon/card/id/captains_spare, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bim" = ( +/obj/structure/table/wood, +/obj/machinery/recharger, +/obj/item/weapon/melee/chainofcommand, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bin" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bio" = ( +/obj/structure/table/glass, +/obj/item/weapon/reagent_containers/glass/bottle/epinephrine, +/obj/item/stack/sheet/mineral/plasma{ + layer = 2.9 + }, +/obj/item/stack/sheet/mineral/plasma{ + layer = 2.9 + }, +/obj/machinery/requests_console{ + department = "Chemistry"; + departmentType = 2; + pixel_x = -30; + pixel_y = 0 + }, +/obj/machinery/light{ + icon_state = "tube1"; + 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, +/turf/open/floor/plating, +/area/medical/chemistry) +"bis" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Chemist" + }, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 4 + }, +/area/medical/chemistry) +"bit" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"biu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"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, +/obj/item/device/radio/intercom{ + pixel_x = 25 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/checkpoint/medical) +"biz" = ( +/obj/structure/bodycontainer/morgue, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"biA" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"biB" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"biC" = ( +/turf/open/floor/plating, +/area/storage/emergency) +"biD" = ( +/obj/item/weapon/storage/box/lights/mixed, +/turf/open/floor/plating, +/area/storage/emergency) +"biE" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/item/weapon/extinguisher, +/turf/open/floor/plating, +/area/storage/emergency) +"biF" = ( +/obj/structure/disposalpipe/sortjunction{ + dir = 1; + icon_state = "pipe-j2s"; + sortType = 2 + }, +/obj/structure/noticeboard{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"biG" = ( +/obj/machinery/light_switch{ + pixel_y = 28 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/assembly/chargebay) +"biH" = ( +/obj/machinery/button/door{ + dir = 2; + id = "Skynet_launch"; + name = "Mech Bay Door Control"; + pixel_x = 6; + pixel_y = 24 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 8 + }, +/area/assembly/chargebay) +"biI" = ( +/turf/open/floor/plasteel, +/area/assembly/chargebay) +"biJ" = ( +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/assembly/chargebay) +"biK" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Robotics Lab APC"; + pixel_x = -25 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"biL" = ( +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"biM" = ( +/obj/structure/chair/office/light{ + dir = 1 + }, +/obj/effect/landmark/start{ + name = "Roboticist" + }, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"biN" = ( +/turf/open/floor/plasteel/whitered/side{ + dir = 1 + }, +/area/assembly/robotics) +"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" + }, +/turf/open/floor/plasteel/whitered/corner{ + dir = 4 + }, +/area/assembly/robotics) +"biP" = ( +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/plasteel/whitered/side{ + dir = 1 + }, +/area/assembly/robotics) +"biQ" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/whitered/side{ + dir = 1 + }, +/area/assembly/robotics) +"biR" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/warnwhite{ + dir = 9 + }, +/area/medical/research{ + name = "Research Division" + }) +"biS" = ( +/obj/machinery/camera{ + c_tag = "Research Division Access"; + dir = 2; + network = list("SS13") + }, +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 5 + }, +/area/medical/research{ + name = "Research Division" + }) +"biT" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/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/toxins/lab) +"biV" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start{ + name = "Scientist" + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 1 + }, +/area/toxins/lab) +"biW" = ( +/turf/open/floor/plasteel/white, +/area/toxins/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" + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1 + }, +/area/toxins/lab) +"biY" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"biZ" = ( +/obj/machinery/computer/shuttle/syndicate, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"bja" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bjb" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "garbage" + }, +/obj/structure/sign/vacuum{ + pixel_x = -32 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bjc" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/maintenance/disposal) +"bjd" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/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 = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bjh" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + 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{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bjk" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + 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{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bjm" = ( +/obj/structure/table, +/obj/item/weapon/hand_labeler, +/obj/item/weapon/hand_labeler, +/obj/machinery/requests_console{ + department = "Cargo Bay"; + departmentType = 2; + pixel_x = 0; + 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/structure/closet/wardrobe/cargotech, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bjp" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/device/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/glass_mining{ + name = "Cargo Office"; + req_access_txt = "50" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bjt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bju" = ( +/obj/machinery/photocopier, +/obj/item/device/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 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bjx" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bjy" = ( +/obj/machinery/camera{ + c_tag = "Gravity Generator Room"; + dir = 8; + network = list("SS13"); + pixel_x = 0; + pixel_y = 0 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/engine/gravity_generator) +"bjz" = ( +/turf/closed/wall/r_wall, +/area/maintenance/maintcentral) +"bjA" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/maintcentral) +"bjB" = ( +/turf/open/floor/plating, +/area/maintenance/maintcentral) +"bjC" = ( +/obj/structure/closet/wardrobe/black, +/turf/open/floor/plating, +/area/maintenance/maintcentral) +"bjD" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Bridge Maintenance APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plating, +/area/maintenance/maintcentral) +"bjE" = ( +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + 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; + pixel_y = 0 + }, +/obj/machinery/keycard_auth{ + pixel_x = 0; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/crew_quarters/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/captain) +"bjH" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bjI" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bjJ" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bjK" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/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{ + d1 = 2; + d2 = 8; + 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; + pixel_y = 0 + }, +/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/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel, +/area/assembly/chargebay) +"bjQ" = ( +/obj/machinery/smartfridge/chemistry, +/turf/open/floor/plating, +/area/medical/chemistry) +"bjR" = ( +/obj/structure/table/glass, +/obj/item/weapon/storage/box/beakers{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/weapon/storage/box/beakers{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/weapon/reagent_containers/glass/beaker/large, +/obj/item/weapon/reagent_containers/glass/beaker/large, +/obj/item/weapon/reagent_containers/dropper, +/obj/item/weapon/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) +"bjT" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 2 + }, +/area/medical/medbay) +"bjU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 2 + }, +/area/medical/medbay) +"bjV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 2 + }, +/area/medical/medbay) +"bjW" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/assembly/chargebay) +"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; + icon_state = "alarm0"; + 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, +/turf/open/floor/plasteel/warnwhite{ + dir = 10 + }, +/area/medical/research{ + name = "Research Division" + }) +"bka" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warnwhite{ + dir = 8 + }, +/area/toxins/lab) +"bkb" = ( +/obj/machinery/camera{ + c_tag = "Medbay Morgue"; + dir = 8; + network = list("SS13"); + pixel_x = 0; + pixel_y = 0 + }, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bkc" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/storage/emergency) +"bkd" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating, +/area/storage/emergency) +"bke" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/tank/internals/emergency_oxygen, +/obj/item/weapon/tank/internals/emergency_oxygen, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/turf/open/floor/plating, +/area/storage/emergency) +"bkf" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/storage/emergency) +"bkg" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/bluegrid, +/area/assembly/chargebay) +"bkh" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/bluegrid, +/area/assembly/chargebay) +"bki" = ( +/obj/structure/table/glass, +/obj/item/weapon/reagent_containers/glass/beaker/large{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/reagent_containers/glass/beaker{ + pixel_x = 8; + pixel_y = 2 + }, +/obj/item/weapon/reagent_containers/dropper, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/white, +/area/toxins/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/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"bkl" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_research{ + name = "Robotics Lab"; + req_access_txt = "29" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"bkm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"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/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/storage/toolbox/electrical{ + pixel_x = 1; + pixel_y = 6 + }, +/obj/item/weapon/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, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"bkp" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"bkr" = ( +/obj/machinery/shower{ + dir = 8 + }, +/obj/structure/sign/securearea{ + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"bks" = ( +/obj/machinery/requests_console{ + department = "Science"; + departmentType = 2; + name = "Science Requests Console"; + pixel_x = -30; + pixel_y = 0 + }, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"bkt" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/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/toxins/lab) +"bkw" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bkx" = ( +/obj/machinery/status_display{ + density = 0; + 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/office) +"bky" = ( +/turf/closed/wall, +/area/maintenance/asmaint2) +"bkz" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "garbage"; + layer = 2.5 + }, +/obj/machinery/door/poddoor/preopen{ + id = "Disposal Exit"; + layer = 3; + 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; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bkD" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/port) +"bkE" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; + name = "KEEP CLEAR: DOCKING AREA"; + pixel_y = 0 + }, +/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{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/quartermaster/storage) +"bkH" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/quartermaster/office) +"bkI" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/engine/gravity_generator) +"bkJ" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/quartermaster/storage) +"bkK" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/quartermaster/office) +"bkO" = ( +/obj/machinery/light_switch{ + pixel_x = 28; + pixel_y = 0 + }, +/obj/item/weapon/screwdriver{ + pixel_y = 10 + }, +/obj/item/device/radio/off, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/checkpoint/medical) +"bkP" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bkQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bkR" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/light_switch{ + pixel_y = -25 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/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{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plating, +/area/maintenance/maintcentral) +"bkU" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bkV" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"bkW" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plating, +/area/maintenance/maintcentral) +"bkX" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "Conference Room APC"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/bridge/meeting_room) +"bkY" = ( +/obj/effect/landmark{ + name = "blobstart" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/maintcentral) +"bkZ" = ( +/obj/machinery/gravity_generator/main/station, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/gravity_generator) +"bla" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"blb" = ( +/obj/machinery/door/airlock/command{ + name = "Captain's Quarters"; + req_access = null; + req_access_txt = "20" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"blc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/crew_quarters/captain) +"bld" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Captain's Office Maintenance"; + req_access_txt = "20" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/crew_quarters/captain) +"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/weapon/storage/box/syringes, +/obj/item/clothing/glasses/science{ + pixel_x = 2; + pixel_y = 4 + }, +/obj/item/clothing/glasses/science, +/obj/item/device/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{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/morgue) +"blh" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/eastright{ + base_state = "left"; + dir = 8; + icon_state = "left"; + name = "Chemistry Desk"; + req_access_txt = "33" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plating, +/area/medical/chemistry) +"bli" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"blj" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"blk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 4 + }, +/area/medical/medbay) +"bll" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/white, +/obj/item/weapon/pen, +/obj/item/weapon/reagent_containers/glass/bottle/epinephrine, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"blm" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/reagent_containers/food/drinks/britcup{ + desc = "Kingston's personal cup." + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bln" = ( +/obj/structure/table/reinforced, +/obj/machinery/camera{ + c_tag = "Medbay Foyer"; + dir = 8; + network = list("SS13"); + pixel_x = 0; + pixel_y = 0 + }, +/obj/machinery/cell_charger, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"blo" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Starboard Emergency Storage APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/storage/emergency) +"blp" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Medbay Security APC"; + pixel_x = -25 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/checkpoint/medical) +"blq" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/sortjunction{ + sortType = 9 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"blr" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bls" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/assembly/chargebay) +"blt" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/assembly/chargebay) +"blu" = ( +/obj/machinery/mech_bay_recharge_port, +/obj/structure/cable, +/turf/open/floor/plating, +/area/assembly/chargebay) +"blv" = ( +/obj/machinery/computer/mech_bay_power_console, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/bluegrid, +/area/assembly/chargebay) +"blw" = ( +/turf/open/floor/mech_bay_recharge_floor, +/area/assembly/chargebay) +"blx" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/assembly/chargebay) +"bly" = ( +/obj/structure/table, +/obj/item/stack/sheet/plasteel{ + amount = 10 + }, +/obj/item/stack/cable_coil, +/obj/item/device/assembly/flash/handheld, +/obj/item/device/assembly/flash/handheld, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/assembly/robotics) +"blz" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass{ + amount = 20; + pixel_x = -3; + pixel_y = 6 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/device/multitool{ + pixel_x = 3 + }, +/obj/item/device/multitool{ + pixel_x = 3 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/assembly/robotics) +"blA" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/assembly/robotics) +"blB" = ( +/obj/machinery/mecha_part_fabricator, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/assembly/robotics) +"blC" = ( +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/assembly/robotics) +"blD" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/assembly/robotics) +"blE" = ( +/obj/machinery/ai_status_display{ + pixel_x = 32; + pixel_y = 0 + }, +/obj/structure/table, +/obj/item/device/assembly/flash/handheld, +/obj/item/device/assembly/flash/handheld, +/obj/item/device/assembly/flash/handheld, +/obj/item/device/assembly/flash/handheld, +/obj/item/device/assembly/flash/handheld, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"blF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/assembly/robotics) +"blG" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start{ + name = "Roboticist" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/assembly/robotics) +"blH" = ( +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 6 + }, +/area/medical/research{ + name = "Research Division" + }) +"blI" = ( +/obj/machinery/r_n_d/destructive_analyzer, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/toxins/lab) +"blJ" = ( +/obj/machinery/r_n_d/protolathe, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/toxins/lab) +"blK" = ( +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/toxins/lab) +"blL" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"blM" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 8 + }, +/area/assembly/robotics) +"blN" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"blO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"blP" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 4; + req_access_txt = "13" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"blQ" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"blR" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = 32 + }, +/obj/item/weapon/cigbutt, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"blS" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/mass_driver{ + id = "trash" + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/maintenance/disposal) +"blT" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + 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/sleep) +"blV" = ( +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/maintenance/disposal) +"blW" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/quartermaster/storage) +"blX" = ( +/obj/machinery/door/airlock/research{ + cyclelinkeddir = 1; + name = "Research Division Access"; + req_access_txt = "47" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"blY" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/quartermaster/storage) +"blZ" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 8 + }, +/area/toxins/lab) +"bma" = ( +/obj/structure/table/glass, +/obj/item/weapon/stock_parts/manipulator, +/obj/item/weapon/stock_parts/capacitor, +/obj/item/weapon/stock_parts/capacitor, +/obj/item/weapon/stock_parts/manipulator, +/obj/item/weapon/stock_parts/micro_laser, +/obj/item/weapon/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/toxins/lab) +"bmb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bmc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bmd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bme" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"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/glass_mining{ + 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{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/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/office) +"bmj" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + 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/glass_mining{ + name = "Delivery Office"; + req_access_txt = "50" + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bml" = ( +/obj/machinery/mineral/ore_redemption{ + input_dir = 8; + output_dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/office) +"bmm" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/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{ + density = 0; + layer = 3; + pixel_x = -32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/brown/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"bmo" = ( +/turf/closed/wall, +/area/crew_quarters/heads) +"bmp" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/maintcentral) +"bmq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/crew_quarters/heads) +"bmr" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/heads) +"bms" = ( +/obj/machinery/door/airlock/command{ + name = "Head of Personnel"; + req_access = null; + req_access_txt = "57" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"bmt" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/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{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/engine/gravity_generator) +"bmw" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/engine/gravity_generator) +"bmx" = ( +/turf/closed/wall, +/area/crew_quarters/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/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/captain) +"bmA" = ( +/obj/machinery/door/airlock{ + name = "Private Restroom"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/captain) +"bmB" = ( +/obj/machinery/light_switch{ + pixel_y = 28 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"bmC" = ( +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/obj/structure/mirror{ + pixel_x = 28 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/captain) +"bmD" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/crew_quarters/captain) +"bmE" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bmF" = ( +/obj/structure/table/glass, +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/obj/item/stack/cable_coil/random, +/obj/item/stack/cable_coil/random, +/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/glass_mining{ + name = "Cargo Bay"; + req_access_txt = "31" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/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/device/radio/intercom{ + broadcasting = 1; + freerange = 0; + frequency = 1485; + listening = 0; + name = "Station Intercom (Medbay)"; + pixel_x = 0; + pixel_y = -30 + }, +/obj/machinery/light, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bmK" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"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{ + name = "Medical Doctor" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bmM" = ( +/obj/structure/chair/office/light{ + dir = 1 + }, +/obj/structure/sign/nosmoking_2{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bmN" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/security/checkpoint/medical) +"bmP" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bmQ" = ( +/obj/item/weapon/stamp{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/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/weapon/paper/morguereminder{ + pixel_x = 5; + pixel_y = 4 + }, +/turf/open/floor/plasteel/black, +/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 = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bmU" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/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{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/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{ + d1 = 1; + d2 = 2; + 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/asmaint) +"bnb" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Mech Bay"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/assembly/chargebay) +"bnc" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/assembly/chargebay) +"bnd" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/assembly/chargebay) +"bne" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/assembly/chargebay) +"bnf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/toxins/lab) +"bng" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/toxins/lab) +"bnh" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"bni" = ( +/turf/open/floor/plasteel/warnwhite{ + dir = 8 + }, +/area/assembly/robotics) +"bnj" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/weapon/stock_parts/cell/high/plus, +/obj/item/device/radio/intercom{ + freerange = 0; + frequency = 1459; + name = "Station Intercom (General)"; + pixel_x = 29 + }, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"bnk" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/warnwhite/corner{ + dir = 4 + }, +/area/toxins/lab) +"bnl" = ( +/obj/item/weapon/stock_parts/console_screen, +/obj/structure/table/glass, +/obj/item/weapon/stock_parts/console_screen, +/obj/item/weapon/stock_parts/console_screen, +/obj/item/weapon/stock_parts/matter_bin, +/obj/item/weapon/stock_parts/matter_bin, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/item/weapon/stock_parts/scanning_module{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/weapon/stock_parts/scanning_module, +/obj/machinery/power/apc{ + dir = 4; + name = "Research Lab APC"; + pixel_x = 26; + pixel_y = 0 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"bnm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/medical/research{ + name = "Research Division" + }) +"bnn" = ( +/obj/machinery/computer/rdconsole/core, +/turf/open/floor/plasteel, +/area/toxins/lab) +"bno" = ( +/obj/machinery/r_n_d/circuit_imprinter, +/obj/item/weapon/reagent_containers/glass/beaker/sulphuric, +/turf/open/floor/plasteel, +/area/toxins/lab) +"bnp" = ( +/turf/open/floor/plasteel, +/area/toxins/lab) +"bnq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/toxins/lab) +"bnr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/plasticflaps{ + opacity = 1 + }, +/turf/open/floor/plasteel/loadingarea, +/area/toxins/lab) +"bns" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/asmaint2) +"bnt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bnu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/closed/wall, +/area/maintenance/asmaint2) +"bnv" = ( +/obj/machinery/door/poddoor{ + id = "trash"; + name = "disposal bay door" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bnw" = ( +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/quartermaster/storage) +"bnx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bny" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bnz" = ( +/obj/effect/landmark/start{ + name = "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 = 2; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bnB" = ( +/obj/structure/closet/wardrobe/chemistry_white, +/obj/machinery/light_switch{ + pixel_x = -23; + pixel_y = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bnC" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bnD" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/table, +/obj/item/weapon/book/manual/wiki/chemistry, +/obj/item/weapon/book/manual/wiki/chemistry{ + pixel_x = 3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bnE" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bnF" = ( +/obj/structure/sign/nosmoking_2{ + pixel_x = 0; + 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) +"bnG" = ( +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/weapon/clipboard, +/obj/item/weapon/pen/red, +/obj/structure/table, +/obj/machinery/computer/stockexchange, +/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) +"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/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/quartermaster/office) +"bnL" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/brown{ + dir = 1 + }, +/area/quartermaster/office) +"bnM" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bnN" = ( +/turf/open/floor/plasteel/red/corner{ + dir = 2 + }, +/area/hallway/primary/central) +"bnO" = ( +/obj/structure/table, +/obj/machinery/newscaster/security_unit{ + pixel_x = 0; + pixel_y = 32 + }, +/obj/item/weapon/hand_labeler, +/obj/item/stack/packageWrap, +/turf/open/floor/plasteel, +/area/crew_quarters/heads) +"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 = "28" + }, +/obj/machinery/button/door{ + id = "hopqueue"; + name = "Queue Shutters Control"; + pixel_x = -4; + pixel_y = 25; + req_access_txt = "28" + }, +/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) +"bnQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/bed/dogbed{ + anchored = 1; + desc = "Ian's bed! Looks comfy."; + name = "Ian's bed" + }, +/mob/living/simple_animal/pet/dog/corgi/Ian{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads) +"bnR" = ( +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching Prison Wing holding areas."; + name = "Prison Monitor"; + network = list("Prison"); + pixel_x = 0; + pixel_y = 30 + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel, +/area/crew_quarters/heads) +"bnS" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/heads) +"bnT" = ( +/obj/structure/grille, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE"; + pixel_x = -32; + pixel_y = 0 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/engine/gravity_generator) +"bnU" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/glass_engineering{ + name = "Gravity Generator"; + req_access_txt = "11"; + req_one_access_txt = "0" + }, +/turf/open/floor/plasteel/black, +/area/engine/gravity_generator) +"bnV" = ( +/obj/structure/grille, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/engine/gravity_generator) +"bnW" = ( +/obj/structure/grille, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'RADIOACTIVE AREA'"; + icon_state = "radiation"; + name = "RADIOACTIVE AREA"; + pixel_x = 32; + pixel_y = 0 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/engine/gravity_generator) +"bnX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"bnY" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/captain, +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"bnZ" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp/green, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"boa" = ( +/obj/structure/toilet{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/captain) +"bob" = ( +/obj/structure/table/glass, +/obj/item/weapon/grenade/chem_grenade, +/obj/item/weapon/grenade/chem_grenade, +/obj/item/weapon/grenade/chem_grenade, +/obj/item/weapon/grenade/chem_grenade, +/obj/item/weapon/screwdriver{ + pixel_x = -2; + pixel_y = 6 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"boc" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bod" = ( +/obj/structure/table, +/obj/item/weapon/folder/white, +/obj/item/device/radio/headset/headset_med, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"boe" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_medical{ + 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) +"bof" = ( +/turf/closed/wall, +/area/medical/medbay) +"bog" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/medical/medbay) +"boh" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_medical{ + 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) +"boi" = ( +/obj/machinery/computer/med_data, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"boj" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/requests_console{ + announcementConsole = 0; + department = "Medbay"; + departmentType = 1; + name = "Medbay RC"; + pixel_x = 30; + pixel_y = 0; + pixel_z = 0 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bok" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Security Office"; + req_access_txt = "63" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/security/checkpoint/medical) +"bol" = ( +/obj/machinery/airalarm{ + frequency = 1439; + 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) +"bom" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bon" = ( +/turf/closed/wall/r_wall, +/area/medical/genetics) +"boo" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bop" = ( +/obj/machinery/mech_bay_recharge_port, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plating, +/area/assembly/chargebay) +"boq" = ( +/obj/structure/bed/roller, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 4 + }, +/area/medical/medbay) +"bor" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/bluegrid, +/area/assembly/chargebay) +"bos" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/assembly/robotics) +"bot" = ( +/obj/structure/grille, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/assembly/robotics) +"bou" = ( +/turf/open/floor/plasteel, +/area/assembly/robotics) +"bov" = ( +/obj/structure/table, +/obj/item/device/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/device/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/device/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/device/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/weapon/stock_parts/cell/high/plus, +/obj/item/weapon/stock_parts/cell/high/plus{ + pixel_x = 5; + pixel_y = -5 + }, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/item/weapon/crowbar, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"bow" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "biohazard containment door" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/bot, +/area/medical/research{ + name = "Research Division" + }) +"box" = ( +/turf/closed/wall, +/area/assembly/robotics) +"boy" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "biohazard containment door" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/bot, +/area/medical/research{ + name = "Research Division" + }) +"boz" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "biohazard containment door" + }, +/turf/open/floor/plasteel/bot, +/area/medical/research{ + name = "Research Division" + }) +"boA" = ( +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/toxins/lab) +"boB" = ( +/turf/closed/wall, +/area/toxins/lab) +"boC" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/closed/wall, +/area/assembly/chargebay) +"boD" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/bluegrid, +/area/assembly/chargebay) +"boE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/bluegrid, +/area/assembly/chargebay) +"boF" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"boG" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/assembly/chargebay) +"boH" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"boI" = ( +/obj/structure/grille, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/quartermaster/storage) +"boJ" = ( +/obj/machinery/conveyor_switch/oneway{ + id = "QMLoad2" + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/quartermaster/storage) +"boK" = ( +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"boL" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/assembly/chargebay) +"boM" = ( +/turf/open/floor/plasteel/white/corner{ + dir = 2 + }, +/area/medical/research{ + name = "Research Division" + }) +"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/medical/research{ + name = "Research Division" + }) +"boP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"boQ" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/weapon/stock_parts/cell/high/plus, +/obj/item/weapon/stock_parts/cell/high/plus, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"boR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/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{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/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{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"boW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/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" + }, +/turf/open/floor/plasteel/loadingarea{ + dir = 8 + }, +/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"; + req_access_txt = "0" + }, +/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_x = 0; + pixel_y = 28 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hop"; + layer = 2.9; + name = "Privacy Shutters" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads) +"bpa" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/hallway/primary/central) +"bpb" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads) +"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) +"bpd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/carpet, +/area/crew_quarters/heads) +"bpe" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads) +"bpf" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/heads) +"bpg" = ( +/obj/structure/chair/office/light, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/engine/gravity_generator) +"bph" = ( +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/engine/gravity_generator) +"bpi" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/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/captain) +"bpk" = ( +/obj/structure/closet/secure_closet/captains, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"bpl" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/box/matches, +/obj/item/weapon/razor{ + pixel_x = -4; + pixel_y = 2 + }, +/obj/item/clothing/mask/cigarette/cigar, +/obj/item/weapon/reagent_containers/food/drinks/flask/gold, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"bpm" = ( +/obj/machinery/shower{ + dir = 1 + }, +/obj/item/weapon/soap/deluxe, +/obj/item/weapon/bikehorn/rubberducky, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/obj/structure/curtain, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/captain) +"bpn" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bpo" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"bpp" = ( +/obj/machinery/door/window/eastright{ + base_state = "left"; + dir = 8; + icon_state = "left"; + name = "Research Division Delivery"; + req_access_txt = "47" + }, +/turf/open/floor/plasteel/delivery, +/area/toxins/lab) +"bpq" = ( +/obj/machinery/light_switch{ + pixel_x = 0; + pixel_y = -23 + }, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"bpr" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + dir = 8; + freq = 1400; + location = "Research Division" + }, +/turf/open/floor/plasteel/bot, +/area/toxins/lab) +"bps" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/loadingarea{ + dir = 4 + }, +/area/quartermaster/storage) +"bpt" = ( +/obj/structure/table, +/obj/item/weapon/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_x = 0; + pixel_y = 26 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27; + pixel_y = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"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) +"bpw" = ( +/obj/machinery/status_display, +/turf/closed/wall, +/area/medical/medbay) +"bpx" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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) +"bpy" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bpz" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bpA" = ( +/obj/machinery/computer/cargo, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bpB" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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/glass_medical{ + id_tag = null; + name = "Chemistry Lab"; + req_access_txt = "5; 33" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bpE" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/medical/genetics) +"bpF" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/southleft{ + dir = 1; + name = "Chemistry Desk"; + req_access_txt = "33" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plating, +/area/medical/chemistry) +"bpG" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Genetics APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bpH" = ( +/obj/structure/table/glass, +/obj/item/weapon/folder/white, +/obj/item/device/radio/headset/headset_medsci, +/obj/machinery/requests_console{ + department = "Genetics"; + departmentType = 0; + name = "Genetics Requests Console"; + pixel_x = 0; + pixel_y = 30 + }, +/obj/item/weapon/storage/pill_bottle/mutadone, +/obj/item/weapon/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{ + frequency = 1439; + 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/grille, +/obj/structure/disposalpipe/segment, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/medical/chemistry) +"bpN" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bpO" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bpP" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bpQ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 2; + icon_state = "pipe-j2s"; + sortType = 14 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bpR" = ( +/obj/structure/table, +/obj/item/weapon/retractor, +/obj/item/weapon/hemostat, +/turf/open/floor/plasteel, +/area/assembly/robotics) +"bpS" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/assembly/chargebay) +"bpT" = ( +/obj/structure/table, +/obj/item/device/mmi, +/obj/item/device/mmi, +/obj/item/device/mmi, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/turf/open/floor/plasteel, +/area/assembly/robotics) +"bpU" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular{ + empty = 1; + name = "First-Aid (empty)" + }, +/obj/item/weapon/storage/firstaid/regular{ + empty = 1; + name = "First-Aid (empty)" + }, +/obj/item/weapon/storage/firstaid/regular{ + empty = 1; + name = "First-Aid (empty)" + }, +/obj/item/device/healthanalyzer, +/obj/item/device/healthanalyzer, +/obj/item/device/healthanalyzer, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"bpV" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Mech Bay Maintenance"; + req_access_txt = "29" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/assembly/chargebay) +"bpW" = ( +/obj/structure/grille, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "robotics2"; + name = "robotics lab shutters" + }, +/obj/structure/window/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "robotics2"; + name = "robotics lab shutters" + }, +/turf/open/floor/plating, +/area/assembly/robotics) +"bpX" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white/corner{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"bpY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/assembly/chargebay) +"bpZ" = ( +/obj/item/weapon/folder/white, +/obj/structure/table, +/obj/item/weapon/disk/tech_disk{ + pixel_x = 0; + pixel_y = 0 + }, +/obj/item/weapon/disk/tech_disk{ + pixel_x = 0; + pixel_y = 0 + }, +/obj/item/weapon/disk/design_disk, +/obj/item/weapon/disk/design_disk, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"bqa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/assembly/chargebay) +"bqb" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/assembly/chargebay) +"bqc" = ( +/obj/structure/table, +/obj/item/weapon/circular_saw, +/obj/item/weapon/scalpel{ + pixel_y = 12 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 2 + }, +/area/assembly/robotics) +"bqd" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/latex, +/obj/item/weapon/surgical_drapes, +/obj/item/weapon/razor, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 8 + }, +/area/assembly/robotics) +"bqe" = ( +/turf/closed/wall/r_wall, +/area/toxins/explab) +"bqf" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rnd2"; + name = "research lab shutters" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"bqg" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bqh" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bqi" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "QMLoad2" + }, +/obj/machinery/door/poddoor{ + id = "QMLoaddoor2"; + name = "supply dock loading door" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"bqj" = ( +/obj/structure/plasticflaps, +/obj/machinery/conveyor{ + dir = 4; + id = "QMLoad2" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"bqk" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rnd2"; + name = "research lab shutters" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"bql" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "QMLoad2" + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/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 + }, +/turf/open/floor/plasteel/brown{ + dir = 1 + }, +/area/quartermaster/office) +"bqq" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads) +"bqr" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/carpet, +/area/crew_quarters/heads) +"bqs" = ( +/turf/open/floor/plasteel/bot, +/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/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/hallway/primary/central) +"bqw" = ( +/turf/open/floor/plasteel/red/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"bqx" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hop"; + layer = 2.9; + name = "Privacy Shutters" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/crew_quarters/heads) +"bqy" = ( +/turf/open/floor/plasteel/bot, +/area/hallway/primary/central) +"bqz" = ( +/turf/open/floor/carpet, +/area/crew_quarters/heads) +"bqA" = ( +/obj/machinery/computer/card, +/turf/open/floor/plasteel/blue/side{ + dir = 10 + }, +/area/crew_quarters/heads) +"bqB" = ( +/obj/machinery/holopad, +/turf/open/floor/carpet, +/area/crew_quarters/heads) +"bqC" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/heads) +"bqD" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/power/apc{ + dir = 8; + name = "Gravity Generator APC"; + pixel_x = -25; + pixel_y = 1 + }, +/obj/structure/table, +/obj/item/weapon/paper/gravity_gen{ + layer = 3 + }, +/obj/item/weapon/pen/blue, +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -35 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"bqE" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"bqF" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"bqG" = ( +/obj/structure/cable{ + d2 = 8; + 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/securearea{ + pixel_x = -32; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/teleporter) +"bqL" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bqM" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/medbay) +"bqN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bqO" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + 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) +"bqP" = ( +/obj/structure/bed/roller, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bqQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bqR" = ( +/obj/structure/table, +/obj/item/weapon/crowbar, +/obj/item/clothing/neck/stethoscope, +/obj/item/weapon/reagent_containers/spray/cleaner, +/obj/structure/sign/nosmoking_2{ + pixel_x = 0; + pixel_y = 30 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteyellow/corner{ + dir = 4 + }, +/area/medical/medbay) +"bqS" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 1 + }, +/area/medical/medbay) +"bqT" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 1 + }, +/area/medical/medbay) +"bqU" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/noticeboard{ + pixel_y = 32 + }, +/obj/machinery/camera{ + c_tag = "Medbay West"; + dir = 2; + network = list("SS13") + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bqV" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteyellow/corner{ + dir = 1 + }, +/area/medical/medbay) +"bqW" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bqX" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bqY" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bqZ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bra" = ( +/obj/structure/table/glass, +/obj/item/weapon/storage/box/rxglasses, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"brb" = ( +/obj/machinery/computer/scan_consolenew, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 6 + }, +/area/medical/genetics) +"brc" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "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{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"brg" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"brh" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 2 + }, +/area/medical/medbay) +"bri" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 2 + }, +/area/medical/medbay) +"brj" = ( +/obj/structure/bed/roller, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 6 + }, +/area/medical/medbay) +"brk" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"brl" = ( +/obj/machinery/light_switch{ + pixel_x = -23; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 8 + }, +/area/assembly/robotics) +"brm" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 9 + }, +/area/medical/research{ + name = "Research Division" + }) +"brn" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bro" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 10 + }, +/area/medical/research{ + name = "Research Division" + }) +"brp" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"brq" = ( +/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/white, +/area/assembly/robotics) +"brr" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/toxins/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/weapon/folder/white, +/obj/item/weapon/pen, +/turf/open/floor/plating, +/area/assembly/robotics) +"brt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white/side{ + dir = 9 + }, +/area/medical/research{ + name = "Research Division" + }) +"bru" = ( +/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 + }, +/turf/open/floor/plasteel/white, +/area/toxins/explab) +"brv" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/explab) +"brw" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/explab) +"brx" = ( +/obj/structure/grille, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rnd2"; + name = "research lab shutters" + }, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/toxins/lab) +"bry" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Experimentation Lab Maintenance"; + req_access_txt = "7" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/toxins/explab) +"brz" = ( +/obj/structure/table, +/obj/item/weapon/pen, +/obj/machinery/camera{ + c_tag = "Experimentor Lab"; + dir = 2; + network = list("SS13","RD") + }, +/obj/item/weapon/hand_labeler, +/obj/item/stack/packageWrap, +/turf/open/floor/plasteel/white/side{ + dir = 2 + }, +/area/toxins/explab) +"brA" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = 0; + pixel_y = 6 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 2 + }, +/area/toxins/explab) +"brB" = ( +/obj/structure/closet/l3closet/scientist, +/turf/open/floor/plasteel/white/side{ + dir = 2 + }, +/area/toxins/explab) +"brC" = ( +/obj/structure/table, +/obj/item/weapon/folder/white, +/obj/item/weapon/folder/white, +/obj/machinery/airalarm{ + frequency = 1439; + pixel_y = 23 + }, +/obj/item/device/radio/off, +/turf/open/floor/plasteel/white/side{ + dir = 2 + }, +/area/toxins/explab) +"brD" = ( +/obj/structure/closet/emcloset{ + pixel_x = -2 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 8 + }, +/area/toxins/explab) +"brE" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"brF" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/sign/securearea{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"brG" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"brH" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"brI" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"brJ" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 4; + name = "Supply Dock Airlock"; + req_access_txt = "31" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"brK" = ( +/turf/open/floor/plating, +/area/quartermaster/storage) +"brL" = ( +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/quartermaster/storage) +"brM" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + dir = 8; + freq = 1400; + location = "QM #1" + }, +/mob/living/simple_animal/bot/mulebot{ + beacon_freq = 1400; + home_destination = "QM #1"; + suffix = "#1" + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"brN" = ( +/turf/open/floor/plasteel/delivery, +/area/quartermaster/storage) +"brO" = ( +/obj/structure/table, +/obj/machinery/requests_console{ + department = "Cargo Bay"; + departmentType = 2; + pixel_x = -30; + pixel_y = 0 + }, +/obj/item/device/multitool, +/obj/machinery/camera{ + c_tag = "Cargo Office"; + dir = 4; + network = list("SS13") + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"brP" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/explab) +"brQ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j2"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"brR" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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) +"brT" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"brU" = ( +/obj/structure/grille, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE"; + pixel_y = -32 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hop"; + layer = 2.9; + name = "Privacy Shutters" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/crew_quarters/heads) +"brV" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/medbay) +"brW" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/plasteel, +/area/crew_quarters/heads) +"brX" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/masks{ + pixel_x = 0; + pixel_y = 0 + }, +/obj/item/weapon/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) +"brY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"brZ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/heads) +"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{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"bse" = ( +/obj/machinery/power/terminal{ + icon_state = "term"; + 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{ + dir = 4; + on = 1 + }, +/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/weapon/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/device/radio/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/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = 20 + }, +/obj/structure/closet/crate, +/obj/item/weapon/crowbar, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/teleporter) +"bsm" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel, +/area/teleporter) +"bsn" = ( +/obj/machinery/camera{ + c_tag = "Teleporter" + }, +/obj/machinery/airalarm{ + frequency = 1439; + 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{ + d1 = 1; + d2 = 2; + 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/device/radio/intercom{ + broadcasting = 0; + freerange = 0; + frequency = 1485; + listening = 1; + name = "Station Intercom (Medbay)"; + pixel_x = 0; + pixel_y = -30 + }, +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bsr" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bss" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bst" = ( +/obj/item/device/radio/intercom{ + broadcasting = 0; + freerange = 0; + frequency = 1485; + listening = 1; + name = "Station Intercom (Medbay)"; + pixel_x = 30; + pixel_y = 0 + }, +/obj/machinery/camera{ + c_tag = "Medbay East"; + dir = 8; + network = list("SS13"); + pixel_x = 0; + pixel_y = -22 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bsu" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_medical{ + id_tag = "GeneticsDoor"; + name = "Genetics"; + req_access_txt = "5; 9" + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bsv" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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"; + req_one_access_txt = "0" + }, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"bsx" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bsy" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bsz" = ( +/obj/machinery/status_display{ + density = 0; + layer = 3; + pixel_x = -32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/white/side{ + dir = 5 + }, +/area/medical/research{ + name = "Research Division" + }) +"bsA" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, +/turf/open/floor/plasteel/white/side{ + dir = 9 + }, +/area/medical/research{ + name = "Research Division" + }) +"bsB" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"bsC" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bsD" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bsE" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/airlock/research{ + name = "Experimentation Lab"; + req_access_txt = "7" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/explab) +"bsF" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/explab) +"bsG" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/toxins/explab) +"bsH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/toxins/explab) +"bsI" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "Experimentation Lab APC"; + pixel_x = 26; + pixel_y = 0 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/explab) +"bsJ" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/asmaint2) +"bsK" = ( +/obj/structure/table/glass, +/obj/item/weapon/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{ + d1 = 1; + d2 = 2; + 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/asmaint2) +"bsN" = ( +/obj/machinery/door/window/westleft{ + name = "Monkey Pen"; + req_access_txt = "9" + }, +/turf/open/floor/plasteel, +/area/medical/genetics) +"bsO" = ( +/obj/structure/table, +/obj/item/weapon/crowbar/large, +/turf/open/floor/plasteel, +/area/assembly/chargebay) +"bsP" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel, +/area/assembly/chargebay) +"bsQ" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/plasteel, +/area/assembly/chargebay) +"bsR" = ( +/obj/machinery/recharge_station, +/turf/open/floor/plasteel/bot, +/area/assembly/chargebay) +"bsS" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/bodybags, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/assembly/robotics) +"bsT" = ( +/obj/machinery/computer/operating{ + name = "Robotics Operating Computer" + }, +/obj/machinery/light, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"bsU" = ( +/obj/structure/table/optable{ + name = "Robotics Operating Table" + }, +/obj/item/weapon/surgical_drapes, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"bsV" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bsW" = ( +/obj/structure/closet/wardrobe/robotics_black, +/obj/item/device/radio/headset/headset_sci{ + pixel_x = -3 + }, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"bsX" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/white/side{ + dir = 5 + }, +/area/medical/research{ + name = "Research Division" + }) +"bsY" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Head of Personnel" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads) +"bsZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bta" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Research Division North"; + dir = 2 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"btb" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/noticeboard{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"btc" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/warning, +/area/teleporter) +"btd" = ( +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/teleporter) +"bte" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 6 + }, +/area/medical/research{ + name = "Research Division" + }) +"btf" = ( +/obj/machinery/requests_console{ + announcementConsole = 0; + department = "Medbay"; + departmentType = 1; + name = "Medbay RC"; + pixel_x = -30; + pixel_y = 0; + pixel_z = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"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/medical/research{ + name = "Research Division" + }) +"bti" = ( +/obj/structure/closet/secure_closet/personal/patient, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"btj" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/explab) +"btk" = ( +/obj/structure/closet/wardrobe/white, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"btl" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"btm" = ( +/obj/structure/disposalpipe/sortjunction{ + dir = 2; + icon_state = "pipe-j2s"; + sortType = 12 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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/medical/research{ + name = "Research Division" + }) +"bto" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/structure/sign/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/asmaint2) +"btq" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"btr" = ( +/obj/machinery/camera{ + c_tag = "Cargo Recieving 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 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/quartermaster/storage) +"bts" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + dir = 8; + freq = 1400; + location = "QM #2" + }, +/mob/living/simple_animal/bot/mulebot{ + home_destination = "QM #2"; + suffix = "#2" + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"btt" = ( +/obj/structure/table, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/item/weapon/folder/yellow, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"btu" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/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/medical/research{ + name = "Research Division" + }) +"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 + }, +/turf/open/floor/plasteel/bot, +/area/medical/research{ + name = "Research Division" + }) +"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; + network = list("SS13") + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"btB" = ( +/obj/structure/table, +/obj/machinery/recharger, +/turf/open/floor/plasteel/blue/side{ + dir = 9 + }, +/area/crew_quarters/heads) +"btC" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads) +"btD" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/weapon/pen, +/turf/open/floor/plasteel, +/area/crew_quarters/heads) +"btE" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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) +"btF" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering{ + name = "Gravity Generator"; + req_access_txt = "11" + }, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/engine/gravity_generator) +"btG" = ( +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"btH" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/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"; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plasteel, +/area/teleporter) +"btJ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/bluespace_beacon, +/turf/open/floor/plasteel, +/area/teleporter) +"btK" = ( +/obj/machinery/holopad, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel, +/area/teleporter) +"btL" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/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{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel, +/area/teleporter) +"btN" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/teleporter) +"btO" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + 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/medical/research{ + name = "Research Division" + }) +"btQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 10 + }, +/area/medical/research{ + name = "Research Division" + }) +"btR" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"btS" = ( +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"btT" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"btU" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"btV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"btW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 5 + }, +/area/medical/research{ + name = "Research Division" + }) +"btX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"btY" = ( +/obj/machinery/requests_console{ + department = "Science"; + departmentType = 2; + name = "Science Requests Console"; + pixel_x = 0; + pixel_y = -30 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel/white, +/area/toxins/explab) +"btZ" = ( +/obj/machinery/light, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bua" = ( +/turf/closed/wall, +/area/medical/genetics) +"bub" = ( +/obj/machinery/light, +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -35 + }, +/turf/open/floor/plasteel/loadingarea{ + dir = 8 + }, +/area/quartermaster/storage) +"buc" = ( +/obj/machinery/light, +/obj/machinery/power/apc{ + dir = 2; + name = "Cargo Office APC"; + pixel_x = 1; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/brown/corner{ + dir = 2 + }, +/area/quartermaster/office) +"bud" = ( +/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) +"buf" = ( +/obj/machinery/computer/scan_consolenew, +/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) +"buh" = ( +/turf/closed/wall/r_wall, +/area/assembly/chargebay) +"bui" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"buj" = ( +/obj/structure/grille, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "robotics2"; + name = "robotics lab shutters" + }, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/assembly/robotics) +"buk" = ( +/turf/open/floor/plasteel/white/side{ + dir = 8 + }, +/area/medical/sleeper) +"bul" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/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 = 4; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + 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/medical/research{ + name = "Research Division" + }) +"bup" = ( +/obj/machinery/light, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"buq" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/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{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bus" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"but" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"buu" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/explab) +"buv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/explab) +"buw" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/explab) +"bux" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 4 + }, +/area/medical/genetics) +"buy" = ( +/obj/structure/disposalpipe/sortjunction{ + sortType = 23 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"buz" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"buA" = ( +/obj/structure/frame/computer, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"buB" = ( +/obj/machinery/conveyor_switch/oneway{ + convdir = -1; + id = "QMLoad" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"buC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"buD" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + dir = 8; + freq = 1400; + location = "QM #3" + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"buE" = ( +/obj/structure/table, +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/obj/machinery/computer/stockexchange, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"buF" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"buG" = ( +/obj/machinery/door/airlock/research{ + name = "Genetics Research"; + req_access_txt = "9" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + 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{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"buI" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/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; + icon_state = "tube1" + }, +/turf/open/floor/plasteel/bot, +/area/hallway/primary/central) +"buL" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/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; + pixel_y = 0 + }, +/obj/machinery/computer/cargo, +/turf/open/floor/plasteel/blue/side{ + dir = 8 + }, +/area/crew_quarters/heads) +"buN" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads) +"buO" = ( +/obj/structure/table, +/obj/item/weapon/folder/blue, +/obj/item/weapon/stamp/hop, +/turf/open/floor/plasteel, +/area/crew_quarters/heads) +"buP" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/closed/wall, +/area/engine/gravity_generator) +"buQ" = ( +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/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; + icon_state = "tube1" + }, +/obj/machinery/camera{ + c_tag = "Gravity Generator Foyer" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/engine/gravity_generator) +"buT" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"buU" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/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 + }, +/turf/open/floor/plasteel/bot, +/area/medical/research{ + name = "Research Division" + }) +"buV" = ( +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/teleporter) +"buW" = ( +/turf/open/floor/plasteel/warning, +/area/teleporter) +"buX" = ( +/obj/machinery/shieldwallgen, +/turf/open/floor/plasteel/bot, +/area/teleporter) +"buY" = ( +/obj/machinery/shieldwallgen, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/bot, +/area/teleporter) +"buZ" = ( +/obj/structure/closet/crate, +/turf/open/floor/plasteel, +/area/teleporter) +"bva" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/sign/securearea{ + pixel_x = -32; + pixel_y = 0 + }, +/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{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bvc" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"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{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bvf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/white/side{ + dir = 9 + }, +/area/medical/research{ + name = "Research Division" + }) +"bvg" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bvh" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/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) +"bvl" = ( +/obj/machinery/door/airlock/glass_medical{ + id_tag = ""; + name = "Surgery Observation"; + req_access_txt = "0" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/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/weapon/book/manual/medical_cloning{ + pixel_y = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bvo" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/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{ + name = "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/glass_research{ + name = "Genetics Research"; + req_access_txt = "5; 9" + }, +/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/medical/research{ + name = "Research Division" + }) +"bvy" = ( +/obj/machinery/camera{ + c_tag = "Genetics Research"; + dir = 1; + network = list("SS13","RD"); + pixel_x = 0 + }, +/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{ + d1 = 1; + d2 = 2; + 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/securearea, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/medical/genetics) +"bvB" = ( +/obj/machinery/camera{ + c_tag = "Genetics Access"; + dir = 8; + network = list("SS13"); + pixel_x = 0; + pixel_y = -22 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bvC" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/security/checkpoint/science) +"bvD" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bvE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 6 + }, +/area/medical/research{ + name = "Research Division" + }) +"bvF" = ( +/obj/structure/table, +/obj/item/weapon/cartridge/quartermaster{ + pixel_x = 6; + pixel_y = 5 + }, +/obj/item/weapon/cartridge/quartermaster, +/obj/item/weapon/cartridge/quartermaster{ + pixel_x = -4; + pixel_y = 7 + }, +/obj/machinery/requests_console{ + department = "Cargo Bay"; + departmentType = 2; + pixel_x = -30; + pixel_y = 0 + }, +/obj/item/weapon/coin/silver, +/turf/open/floor/plasteel/brown{ + dir = 9 + }, +/area/quartermaster/qm) +"bvG" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/light_switch{ + pixel_y = 28 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bvH" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 9 + }, +/area/medical/research{ + name = "Research Division" + }) +"bvI" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bvJ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/crew_quarters/hor) +"bvK" = ( +/turf/closed/wall, +/area/crew_quarters/hor) +"bvL" = ( +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/checkpoint/supply) +"bvM" = ( +/obj/machinery/light_switch{ + pixel_x = -20; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/toxins/explab) +"bvN" = ( +/obj/structure/chair/office/light, +/obj/effect/landmark/start{ + name = "Scientist" + }, +/turf/open/floor/plasteel/white, +/area/toxins/explab) +"bvO" = ( +/turf/open/floor/plasteel/white, +/area/toxins/explab) +"bvP" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 5; + pixel_y = -32 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white, +/area/toxins/explab) +"bvQ" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bvR" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bvS" = ( +/obj/machinery/conveyor{ + dir = 4; + 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 = 4; + id = "QMLoad" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"bvU" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "QMLoad" + }, +/obj/machinery/light, +/obj/machinery/status_display{ + density = 0; + pixel_y = -30; + supply_display = 1 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/quartermaster/storage) +"bvV" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "QMLoad" + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/quartermaster/storage) +"bvW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/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" + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"bvZ" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 6; + pixel_y = -5 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bwa" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/hallway/primary/central) +"bwb" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"bwc" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bwd" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/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; + network = list("SS13") + }, +/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" + }, +/turf/open/floor/plasteel/loadingarea{ + dir = 4 + }, +/area/hallway/primary/central) +"bwh" = ( +/obj/structure/sign/securearea{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/hallway/primary/central) +"bwi" = ( +/obj/item/device/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) +"bwj" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads) +"bwk" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/wiki/security_space_law, +/turf/open/floor/plasteel, +/area/crew_quarters/heads) +"bwl" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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) +"bwm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/engine/gravity_generator) +"bwn" = ( +/obj/structure/closet/radiation, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'RADIOACTIVE AREA'"; + icon_state = "radiation"; + name = "RADIOACTIVE AREA"; + pixel_x = -32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/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/securearea{ + desc = "A warning sign which reads 'RADIOACTIVE AREA'"; + icon_state = "radiation"; + name = "RADIOACTIVE AREA"; + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/gravity_generator) +"bwq" = ( +/obj/machinery/teleport/station, +/turf/open/floor/plating, +/area/teleporter) +"bwr" = ( +/obj/machinery/computer/teleporter, +/turf/open/floor/plating, +/area/teleporter) +"bws" = ( +/obj/structure/rack, +/obj/item/weapon/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{ + d1 = 1; + d2 = 2; + 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{ + opacity = 1 + }, +/turf/open/floor/plasteel/bot, +/area/medical/medbay) +"bww" = ( +/obj/structure/chair, +/obj/machinery/camera{ + c_tag = "Surgery Observation" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/medical/sleeper) +"bwx" = ( +/obj/machinery/door/window/eastleft{ + name = "Medical Delivery"; + req_access_txt = "5" + }, +/turf/open/floor/plasteel/delivery, +/area/medical/medbay) +"bwy" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bwz" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bwA" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bwB" = ( +/obj/structure/chair, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/medical/sleeper) +"bwC" = ( +/obj/machinery/computer/med_data, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bwD" = ( +/obj/machinery/sleeper{ + icon_state = "sleeper-open"; + 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/black, +/area/medical/sleeper) +"bwF" = ( +/obj/structure/table/glass, +/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{ + pixel_x = 7; + pixel_y = 1 + }, +/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{ + pixel_x = 7; + pixel_y = 1 + }, +/turf/open/floor/plasteel, +/area/medical/sleeper) +"bwG" = ( +/obj/structure/sign/nosmoking_2, +/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"; + dir = 2; + network = list("SS13"); + pixel_x = 0; + pixel_y = 0 + }, +/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{ + pixel_x = 0; + pixel_y = 0 + }, +/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{ + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/medical/sleeper) +"bwK" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0 + }, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bwL" = ( +/obj/machinery/camera{ + c_tag = "Genetics Cloning"; + dir = 4; + network = list("SS13") + }, +/obj/structure/table, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/item/weapon/storage/box/rxglasses{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/bodybags, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bwM" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/checkpoint/science) +"bwO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/white/side{ + dir = 9 + }, +/area/medical/research{ + name = "Research Division" + }) +"bwP" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/donkpockets{ + pixel_x = 3; + pixel_y = 3 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"bwQ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/hor) +"bwR" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/hor) +"bwS" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"bwT" = ( +/obj/machinery/door/airlock/glass_mining{ + name = "Quartermaster"; + req_access_txt = "41" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/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{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/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{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "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{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bwX" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 1; + icon_state = "pipe-j2s"; + sortType = 3 + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bwY" = ( +/obj/machinery/door/airlock/glass_security{ + 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/black, +/area/medical/sleeper) +"bxa" = ( +/obj/structure/chair, +/obj/structure/sign/nosmoking_2{ + pixel_x = -28 + }, +/turf/open/floor/plasteel/black, +/area/medical/sleeper) +"bxb" = ( +/obj/structure/chair, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/medical/sleeper) +"bxc" = ( +/obj/machinery/holopad, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/medical/sleeper) +"bxd" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bxe" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bxf" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 5 + }, +/area/medical/research{ + name = "Research Division" + }) +"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/asmaint) +"bxh" = ( +/obj/machinery/door/poddoor{ + id = "smindicate"; + name = "outer blast door" + }, +/obj/machinery/button/door{ + id = "smindicate"; + name = "external door control"; + pixel_x = -26; + pixel_y = 0; + req_access_txt = "150" + }, +/obj/docking_port/mobile{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 24; + id = "syndicate"; + name = "syndicate infiltrator"; + port_angle = 0; + roundstart_move = "syndicate_away"; + width = 18 + }, +/obj/docking_port/stationary{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 24; + id = "syndicate_nw"; + name = "northwest of station"; + turf_type = /turf/open/space; + width = 18 + }, +/turf/open/floor/plating, +/area/shuttle/syndicate) +"bxi" = ( +/obj/machinery/computer/aifixer, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Research Director's Desk"; + departmentType = 5; + name = "Research Director RC"; + pixel_x = -2; + pixel_y = 30 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/hor) +"bxj" = ( +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the RD's goons and the AI's satellite from the safety of his office."; + name = "Research Monitor"; + network = list("RD","MiniSat"); + pixel_x = 0; + pixel_y = 2 + }, +/obj/structure/table, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/hor) +"bxk" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/storage/primary) +"bxl" = ( +/obj/structure/rack, +/obj/item/weapon/circuitboard/aicore{ + pixel_x = -2; + pixel_y = 4 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 9 + }, +/area/crew_quarters/hor) +"bxm" = ( +/obj/effect/landmark/xmastree/rdrod, +/turf/open/floor/plasteel/warnwhite{ + dir = 5 + }, +/area/crew_quarters/hor) +"bxn" = ( +/turf/closed/wall, +/area/toxins/explab) +"bxo" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/toxins/explab) +"bxp" = ( +/obj/machinery/computer/rdconsole/experiment, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/toxins/explab) +"bxq" = ( +/obj/structure/table, +/obj/item/weapon/clipboard, +/obj/item/weapon/book/manual/experimentor, +/turf/open/floor/plasteel/white/corner{ + dir = 4 + }, +/area/toxins/explab) +"bxr" = ( +/obj/structure/closet/radiation, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/toxins/explab) +"bxs" = ( +/obj/machinery/button/door{ + id = "telelab"; + name = "Test Chamber Blast Doors"; + pixel_x = 25; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 2 + }, +/area/toxins/explab) +"bxt" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"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{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/science) +"bxw" = ( +/obj/machinery/door/airlock/glass_mining{ + name = "Quartermaster"; + req_access_txt = "41" + }, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"bxx" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/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{ + d1 = 1; + d2 = 2; + 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/weapon/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/weapon/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/weapon/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, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/checkpoint/supply) +"bxF" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 9 + }, +/area/medical/research{ + name = "Research Division" + }) +"bxG" = ( +/obj/machinery/door/airlock/command{ + name = "Head of Personnel"; + req_access = null; + req_access_txt = "57" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/heads) +"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/checkpoint2) +"bxN" = ( +/obj/structure/sink{ + icon_state = "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{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bxP" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + 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/hor) +"bxQ" = ( +/turf/open/floor/plasteel, +/area/medical/sleeper) +"bxR" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/delivery, +/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; + pixel_x = 0; + initialize_directions = 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/glass_command{ + name = "Research Director"; + req_access_txt = "30" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/hor) +"bxX" = ( +/obj/machinery/light{ + icon_state = "tube1"; + 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/hor) +"bxZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/hor) +"bya" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/hor) +"byb" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/hor) +"byc" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/computer/stockexchange, +/turf/open/floor/plasteel/brown{ + dir = 2 + }, +/area/quartermaster/qm) +"byd" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/brown{ + dir = 2 + }, +/area/quartermaster/qm) +"bye" = ( +/obj/structure/sign/securearea, +/turf/closed/wall/r_wall, +/area/medical/genetics) +"byf" = ( +/turf/closed/wall/r_wall, +/area/toxins/server) +"byg" = ( +/obj/structure/table, +/obj/item/weapon/clipboard, +/obj/item/weapon/stamp/qm{ + pixel_x = 0; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/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 = null; + req_access_txt = "30" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/area/toxins/server) +"byi" = ( +/turf/closed/wall, +/area/security/checkpoint/science) +"byj" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Security Office"; + req_access_txt = "63" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/security/checkpoint/science) +"byk" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/checkpoint/science) +"byl" = ( +/obj/structure/table, +/obj/item/weapon/folder/yellow, +/obj/item/weapon/pen{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/weapon/pen/red, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + dir = 2 + }, +/area/quartermaster/qm) +"bym" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/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/hor) +"byp" = ( +/obj/machinery/computer/robotics, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/hor) +"byq" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/obj/effect/landmark/start{ + name = "Research Director" + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/hor) +"byr" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/white, +/area/crew_quarters/hor) +"bys" = ( +/obj/structure/rack, +/obj/item/device/aicard, +/turf/open/floor/plasteel/warnwhite{ + dir = 8 + }, +/area/crew_quarters/hor) +"byt" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/hor) +"byu" = ( +/obj/structure/displaycase/labcage, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 4 + }, +/area/crew_quarters/hor) +"byv" = ( +/obj/structure/grille, +/obj/machinery/door/poddoor/preopen{ + id = "telelab"; + name = "test chamber blast door" + }, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor/heavy, +/turf/open/floor/engine, +/area/toxins/explab) +"byw" = ( +/obj/machinery/door/poddoor/preopen{ + id = "telelab"; + name = "test chamber blast door" + }, +/obj/machinery/door/firedoor/heavy, +/turf/open/floor/engine, +/area/toxins/explab) +"byx" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/heater{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"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"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 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"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"byG" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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/structure/closet, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/security/checkpoint/supply) +"byI" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/checkpoint/supply) +"byJ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/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/device/radio/intercom{ + dir = 4; + name = "Station Intercom (General)"; + pixel_x = 27 + }, +/obj/machinery/computer/security/mining{ + network = list("MINE","AuxBase") + }, +/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{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/red/side, +/area/security/checkpoint/supply) +"byP" = ( +/obj/structure/sign/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{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/blue/side{ + dir = 1 + }, +/area/hallway/primary/central) +"byS" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"byT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/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; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"byY" = ( +/obj/structure/grille, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/window/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/medical/sleeper) +"byZ" = ( +/obj/structure/grille, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/medical/sleeper) +"bza" = ( +/obj/structure/chair, +/obj/machinery/airalarm{ + frequency = 1439; + pixel_y = 23 + }, +/turf/open/floor/plasteel/black, +/area/medical/sleeper) +"bzb" = ( +/obj/structure/grille, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/window/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/medical/sleeper) +"bzc" = ( +/obj/machinery/door/airlock/glass_medical{ + id_tag = null; + name = "Recovery Room"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bzd" = ( +/obj/structure/table, +/obj/item/stack/packageWrap, +/obj/item/stack/packageWrap, +/obj/item/weapon/pen, +/obj/machinery/requests_console{ + announcementConsole = 0; + department = "Medbay"; + departmentType = 1; + name = "Medbay RC"; + pixel_x = 0; + pixel_y = 30; + pixel_z = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bze" = ( +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/obj/machinery/shower{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bzf" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bzg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"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; + initialize_directions = 11 + }, +/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/asmaint) +"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, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + 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/structure/closet/wardrobe/genetics_white, +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bzs" = ( +/turf/closed/wall, +/area/maintenance/asmaint) +"bzt" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 140; + on = 1; + pressure_checks = 0 + }, +/turf/open/floor/bluegrid{ + name = "Server Base"; + initial_gas_mix = "n2=500;TEMP=80" + }, +/area/toxins/server) +"bzu" = ( +/obj/machinery/r_n_d/server/robotics, +/turf/open/floor/bluegrid{ + name = "Server Base"; + initial_gas_mix = "n2=500;TEMP=80" + }, +/area/toxins/server) +"bzv" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 10 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/black, +/area/toxins/server) +"bzw" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'SERVER ROOM'."; + name = "SERVER ROOM"; + pixel_y = 32 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/toxins/server) +"bzx" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + target_temperature = 80; + dir = 2; + on = 1 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plasteel/black, +/area/toxins/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"; + pixel_x = 0; + pixel_y = 25 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plasteel/black, +/area/toxins/server) +"bzz" = ( +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = -30; + pixel_y = 0 + }, +/obj/machinery/airalarm{ + pixel_y = 25 + }, +/obj/structure/closet, +/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/medical/research{ + name = "Research Division" + }) +"bzB" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"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/computer/security/telescreen{ + desc = "Used for watching the RD's goons from the safety of your own office."; + name = "Research Monitor"; + network = list("RD"); + pixel_x = 0; + pixel_y = 2 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/checkpoint/science) +"bzE" = ( +/turf/open/floor/plasteel/white/side{ + dir = 5 + }, +/area/medical/research{ + name = "Research Division" + }) +"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/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/weapon/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/weapon/surgicaldrill, +/turf/open/floor/plasteel, +/area/medical/sleeper) +"bzJ" = ( +/obj/machinery/computer/mecha, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/hor) +"bzK" = ( +/obj/structure/table, +/obj/item/weapon/scalpel{ + pixel_y = 12 + }, +/obj/item/weapon/circular_saw, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bzL" = ( +/turf/open/floor/plasteel/warnwhite{ + dir = 2 + }, +/area/crew_quarters/hor) +"bzM" = ( +/obj/structure/rack, +/obj/item/device/taperecorder{ + pixel_x = -3 + }, +/obj/item/device/paicard{ + pixel_x = 4 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 10 + }, +/area/crew_quarters/hor) +"bzN" = ( +/obj/machinery/modular_computer/console/preset/research, +/turf/open/floor/plasteel/warnwhite{ + dir = 6 + }, +/area/crew_quarters/hor) +"bzO" = ( +/turf/open/floor/engine, +/area/toxins/explab) +"bzP" = ( +/obj/machinery/computer/cargo, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/brown{ + dir = 8 + }, +/area/quartermaster/qm) +"bzQ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"bzR" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"bzS" = ( +/obj/structure/table, +/obj/item/weapon/cautery{ + pixel_x = 4 + }, +/turf/open/floor/plasteel, +/area/medical/sleeper) +"bzT" = ( +/obj/structure/chair/office/dark, +/obj/effect/landmark/start{ + name = "Quartermaster" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"bzU" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 2 + }, +/area/medical/sleeper) +"bzV" = ( +/obj/structure/closet/wardrobe/white/medical, +/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) +"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/medical/research{ + name = "Research Division" + }) +"bAa" = ( +/obj/machinery/door/firedoor/heavy, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bAb" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/effect/landmark/start{ + name = "Shaft Miner" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bAc" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/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/weapon/screwdriver{ + pixel_y = 10 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/item/device/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{ + d1 = 1; + d2 = 2; + 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 = 1 + }, +/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{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bAl" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/black, +/area/medical/sleeper) +"bAm" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + 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{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/quartermaster/miningdock) +"bAo" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Cargo Security APC"; + pixel_x = 1; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/checkpoint/supply) +"bAp" = ( +/obj/structure/closet/secure_closet/medical1, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bAq" = ( +/obj/machinery/sleeper{ + icon_state = "sleeper-open"; + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Medbay Treatment Center"; + dir = 8; + network = list("SS13") + }, +/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/weapon/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/asmaint) +"bAx" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bAy" = ( +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plasteel/black{ + name = "Server Walkway"; + initial_gas_mix = "n2=500;TEMP=80" + }, +/area/toxins/server) +"bAz" = ( +/obj/machinery/airalarm/server{ + dir = 4; + pixel_x = -22; + pixel_y = 0 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/black{ + name = "Server Walkway"; + initial_gas_mix = "n2=500;TEMP=80" + }, +/area/toxins/server) +"bAA" = ( +/obj/machinery/atmospherics/pipe/manifold{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/toxins/server) +"bAB" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_command{ + name = "Server Room"; + req_access_txt = "30" + }, +/turf/open/floor/plasteel/black, +/area/toxins/server) +"bAC" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 9 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/toxins/server) +"bAD" = ( +/obj/structure/chair/office/light, +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/toxins/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 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/checkpoint/science) +"bAF" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/science) +"bAG" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/science) +"bAH" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/wiki/security_space_law, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/checkpoint/science) +"bAI" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bAJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bAK" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bAL" = ( +/obj/structure/table, +/obj/item/device/plant_analyzer, +/obj/item/weapon/stock_parts/cell/high/plus, +/turf/open/floor/plating, +/area/storage/tech) +"bAM" = ( +/obj/structure/table, +/obj/item/device/analyzer, +/obj/item/device/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{ + name = "blobstart" + }, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/engine, +/area/toxins/explab) +"bAR" = ( +/obj/machinery/r_n_d/experimentor, +/turf/open/floor/engine, +/area/toxins/explab) +"bAS" = ( +/obj/machinery/computer/security/mining{ + network = list("MINE","AuxBase") + }, +/obj/machinery/camera{ + c_tag = "Quartermaster's Office"; + dir = 4 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -35 + }, +/obj/machinery/status_display{ + density = 0; + pixel_x = -32; + pixel_y = 0; + supply_display = 1 + }, +/turf/open/floor/plasteel/brown{ + dir = 10 + }, +/area/quartermaster/qm) +"bAT" = ( +/obj/structure/closet/jcloset, +/turf/open/floor/plasteel, +/area/janitor) +"bAU" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/janitor) +"bAV" = ( +/obj/machinery/door/window/westleft{ + name = "Janitoral Delivery"; + req_access_txt = "26" + }, +/turf/open/floor/plasteel/delivery, +/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{ + name = "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/weapon/surgical_drapes, +/obj/item/weapon/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; + pixel_y = 0 + }, +/obj/machinery/newscaster{ + pixel_x = 0; + 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{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bBh" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/brown/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"bBi" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bBj" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bBk" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/camera{ + c_tag = "Central Primary Hallway South-West"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bBl" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + 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) +"bBn" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"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{ + icon_state = "pipe-j2"; + 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; + icon_state = "direction_med"; + pixel_x = -32; + pixel_y = -24 + }, +/obj/structure/sign/directions/evac{ + dir = 4; + icon_state = "direction_evac"; + 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/sortjunction{ + dir = 8; + icon_state = "pipe-j2s"; + 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) +"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{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bBA" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/junction{ + dir = 8; + icon_state = "pipe-j2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bBB" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bBC" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bBD" = ( +/turf/open/floor/plasteel/white/side{ + dir = 9 + }, +/area/medical/research{ + name = "Research Division" + }) +"bBE" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bBF" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23 + }, +/obj/item/weapon/storage/firstaid/toxin, +/turf/open/floor/plasteel/warnwhite{ + dir = 2 + }, +/area/toxins/mixing) +"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; + icon_state = "alarm0"; + 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) +"bBK" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bBL" = ( +/obj/machinery/vending/medical{ + pixel_x = -2 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bBM" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass{ + amount = 10 + }, +/obj/item/device/multitool, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"bBN" = ( +/turf/closed/wall, +/area/medical/cmo) +"bBO" = ( +/obj/machinery/computer/med_data, +/obj/machinery/airalarm{ + frequency = 1439; + pixel_y = 23 + }, +/turf/open/floor/plasteel/barber, +/area/medical/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_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plasteel/barber, +/area/medical/cmo) +"bBQ" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel/barber, +/area/medical/cmo) +"bBR" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bBS" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 120; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/bluegrid{ + name = "Server Base"; + initial_gas_mix = "n2=500;TEMP=80" + }, +/area/toxins/server) +"bBT" = ( +/obj/machinery/r_n_d/server/core, +/turf/open/floor/bluegrid{ + name = "Server Base"; + initial_gas_mix = "n2=500;TEMP=80" + }, +/area/toxins/server) +"bBU" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 9 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/black, +/area/toxins/server) +"bBV" = ( +/obj/structure/grille, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'SERVER ROOM'."; + name = "SERVER ROOM"; + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/toxins/server) +"bBW" = ( +/obj/structure/table, +/obj/item/weapon/folder/white, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/black, +/area/toxins/server) +"bBX" = ( +/obj/machinery/computer/rdservercontrol, +/turf/open/floor/plasteel/black, +/area/toxins/server) +"bBY" = ( +/obj/item/device/radio/intercom{ + pixel_x = -25 + }, +/obj/structure/filingcabinet, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/security/checkpoint/science) +"bBZ" = ( +/obj/item/weapon/screwdriver{ + pixel_y = 10 + }, +/obj/item/device/radio/off, +/turf/open/floor/plasteel/red/side, +/area/security/checkpoint/science) +"bCa" = ( +/obj/machinery/power/apc{ + dir = 2; + name = "Science Security APC"; + pixel_y = -24 + }, +/obj/structure/cable, +/turf/open/floor/plasteel/red/side, +/area/security/checkpoint/science) +"bCb" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/checkpoint/science) +"bCc" = ( +/obj/machinery/computer/secure_data, +/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/sortjunction{ + dir = 8; + icon_state = "pipe-j1s"; + sortType = 15 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bCe" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bCf" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "RD Office APC"; + pixel_x = -25 + }, +/obj/structure/cable, +/obj/machinery/light_switch{ + pixel_y = -23 + }, +/obj/item/weapon/twohanded/required/kirbyplants/dead, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/hor) +"bCg" = ( +/obj/structure/table, +/obj/item/weapon/cartridge/signal/toxins, +/obj/item/weapon/cartridge/signal/toxins{ + pixel_x = -4; + pixel_y = 2 + }, +/obj/item/weapon/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/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/hor) +"bCh" = ( +/obj/machinery/keycard_auth{ + pixel_x = 0; + pixel_y = -24 + }, +/obj/machinery/light, +/obj/machinery/computer/card/minor/rd, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/hor) +"bCi" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/hor) +"bCj" = ( +/obj/structure/closet/secure_closet/RD, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/hor) +"bCk" = ( +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/hor) +"bCl" = ( +/obj/machinery/camera{ + c_tag = "Experimentor Lab Chamber"; + dir = 1; + network = list("SS13","RD") + }, +/obj/machinery/light, +/obj/structure/sign/nosmoking_2{ + pixel_y = -32 + }, +/turf/open/floor/engine, +/area/toxins/explab) +"bCm" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bCn" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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/aft) +"bCo" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bCp" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/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/aft) +"bCr" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bCs" = ( +/turf/closed/wall, +/area/storage/tech) +"bCt" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel, +/area/janitor) +"bCu" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/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 = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/janitor) +"bCx" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + 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{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bCA" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/black, +/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/medical/sleeper) +"bCC" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bCD" = ( +/obj/structure/table, +/obj/item/weapon/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 = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bCG" = ( +/obj/structure/table, +/obj/item/weapon/folder/white, +/obj/item/weapon/gun/syringe, +/obj/item/weapon/reagent_containers/dropper, +/obj/item/weapon/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{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/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"; + dir = 2; + network = list("SS13") + }, +/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/weapon/storage/box/bodybags{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/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/structure/grille, +/obj/structure/window/reinforced/fulltile, +/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) +"bCS" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + 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/weapon/storage/belt/medical{ + pixel_x = 0; + pixel_y = 2 + }, +/obj/item/weapon/storage/belt/medical{ + pixel_x = 0; + pixel_y = 2 + }, +/obj/item/weapon/storage/belt/medical{ + pixel_x = 0; + 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/device/radio/intercom{ + broadcasting = 0; + freerange = 0; + frequency = 1485; + listening = 1; + name = "Station Intercom (Medbay)"; + pixel_x = -30; + pixel_y = 0 + }, +/obj/machinery/camera{ + c_tag = "Medbay South"; + dir = 4; + network = list("SS13") + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bCV" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bCW" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/barber, +/area/medical/cmo) +"bCX" = ( +/obj/effect/decal/cleanable/oil, +/obj/item/weapon/cigbutt, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/storage) +"bCY" = ( +/turf/open/floor/plasteel/barber, +/area/medical/cmo) +"bCZ" = ( +/obj/structure/chair/office/light, +/obj/effect/landmark/start{ + name = "Chief Medical Officer" + }, +/turf/open/floor/plasteel/barber, +/area/medical/cmo) +"bDa" = ( +/obj/machinery/keycard_auth{ + pixel_x = 24; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/barber, +/area/medical/cmo) +"bDb" = ( +/turf/closed/wall/r_wall, +/area/toxins/xenobiology) +"bDc" = ( +/turf/closed/wall, +/area/toxins/storage) +"bDd" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/turf/open/floor/plasteel/white/side{ + dir = 5 + }, +/area/medical/research{ + name = "Research Division" + }) +"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/toxins/storage) +"bDg" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bDh" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bDi" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; + name = "KEEP CLEAR: DOCKING AREA"; + pixel_y = 32 + }, +/turf/open/space, +/area/space) +"bDj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/storage) +"bDk" = ( +/obj/structure/table, +/obj/item/weapon/folder/yellow, +/obj/item/weapon/pen, +/obj/machinery/requests_console{ + department = "Mining"; + departmentType = 0; + pixel_x = -30; + pixel_y = 0 + }, +/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/medical/research{ + name = "Research Division" + }) +"bDm" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bDn" = ( +/turf/open/floor/plasteel/warnwhite{ + dir = 9 + }, +/area/medical/research{ + name = "Research Division" + }) +"bDo" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 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/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/weapon/pen, +/obj/item/key/janitor, +/turf/open/floor/plasteel, +/area/janitor) +"bDr" = ( +/obj/item/weapon/restraints/legcuffs/beartrap, +/obj/item/weapon/restraints/legcuffs/beartrap, +/obj/item/weapon/storage/box/mousetraps, +/obj/item/weapon/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/aft) +"bDu" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bDv" = ( +/obj/structure/table, +/obj/item/device/flashlight{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/item/device/flashlight{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/item/device/assembly/flash/handheld, +/obj/item/device/assembly/flash/handheld, +/obj/machinery/ai_status_display{ + pixel_x = -32; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/storage/tech) +"bDw" = ( +/obj/structure/table, +/obj/item/weapon/screwdriver{ + pixel_y = 16 + }, +/obj/item/weapon/wirecutters, +/turf/open/floor/plating, +/area/storage/tech) +"bDx" = ( +/obj/structure/table, +/obj/item/weapon/electronics/apc, +/obj/item/weapon/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"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plating, +/area/storage/tech) +"bDz" = ( +/obj/machinery/airalarm{ + frequency = 1439; + 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"; + pixel_x = 26; + pixel_y = 0 + }, +/obj/structure/cable{ + d2 = 8; + 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/medical/sleeper) +"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, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bDD" = ( +/obj/structure/sign/nosmoking_2{ + pixel_x = -28 + }, +/obj/structure/bed, +/obj/item/weapon/bedsheet/medical, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/sleeper) +"bDE" = ( +/obj/machinery/vending/wallmed{ + pixel_x = 28; + pixel_y = 0 + }, +/obj/machinery/camera{ + c_tag = "Medbay Recovery Room"; + dir = 8; + network = list("SS13") + }, +/obj/machinery/iv_drip, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bDF" = ( +/obj/structure/grille, +/obj/machinery/door/poddoor/preopen{ + id = "medpriv4"; + name = "privacy door" + }, +/obj/structure/window/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/medbay) +"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{ + frequency = 1439; + 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) +"bDJ" = ( +/obj/item/weapon/storage/box/lights/mixed, +/obj/item/weapon/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/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) +"bDO" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bDP" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + dir = 1; + freq = 1400; + location = "Janitor" + }, +/obj/structure/plasticflaps{ + opacity = 1 + }, +/turf/open/floor/plasteel/bot, +/area/janitor) +"bDQ" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"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/medical/cmo) +"bDT" = ( +/obj/effect/landmark/start{ + name = "Medical Doctor" + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bDU" = ( +/obj/machinery/door/airlock/glass_command{ + name = "Chief Medical Officer"; + req_access_txt = "40" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/barber, +/area/medical/cmo) +"bDV" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/sortjunction{ + sortType = 10 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bDW" = ( +/obj/machinery/door/airlock/glass_medical{ + id_tag = null; + name = "Medbay Storage"; + req_access_txt = "45" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bDX" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/mob/living/simple_animal/mouse, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/storage) +"bDY" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/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 = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bEb" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/storage) +"bEc" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/storage) +"bEd" = ( +/obj/machinery/door/airlock/glass_medical{ + id_tag = null; + name = "Medbay Storage"; + req_access_txt = "45" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/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) +"bEf" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/white/side{ + dir = 5 + }, +/area/medical/research{ + name = "Research Division" + }) +"bEg" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/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/toxins/storage) +"bEh" = ( +/obj/structure/table/glass, +/obj/item/weapon/paper_bin{ + pixel_x = -2; + pixel_y = 5 + }, +/turf/open/floor/plasteel/barber, +/area/medical/cmo) +"bEi" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/medical/cmo) +"bEj" = ( +/obj/structure/table/glass, +/obj/item/weapon/pen, +/obj/item/clothing/neck/stethoscope, +/mob/living/simple_animal/pet/cat/Runtime, +/turf/open/floor/plasteel/barber, +/area/medical/cmo) +"bEk" = ( +/obj/structure/table/glass, +/obj/item/weapon/folder/white, +/obj/item/weapon/stamp/cmo, +/obj/item/clothing/glasses/hud/health, +/turf/open/floor/plasteel/barber, +/area/medical/cmo) +"bEl" = ( +/obj/structure/disposalpipe/segment, +/obj/item/device/radio/intercom{ + pixel_x = 25 + }, +/obj/machinery/camera{ + c_tag = "Chief Medical Office"; + dir = 8; + network = list("SS13"); + pixel_x = 0; + pixel_y = -22 + }, +/turf/open/floor/plasteel/barber, +/area/medical/cmo) +"bEm" = ( +/turf/open/floor/engine, +/area/toxins/xenobiology) +"bEn" = ( +/obj/machinery/camera{ + c_tag = "Xenobiology Test Chamber"; + dir = 2; + network = list("Xeno","RD"); + pixel_x = 0 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"bEo" = ( +/obj/machinery/portable_atmospherics/canister/toxins, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/toxins/storage) +"bEp" = ( +/obj/machinery/portable_atmospherics/canister/toxins, +/obj/structure/sign/nosmoking_2{ + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/toxins/storage) +"bEq" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Misc Research APC"; + pixel_x = -25 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 5 + }, +/area/medical/research{ + name = "Research Division" + }) +"bEr" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bEs" = ( +/turf/closed/wall, +/area/toxins/mixing) +"bEt" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bEu" = ( +/obj/structure/closet/bombcloset, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 2 + }, +/area/toxins/mixing) +"bEv" = ( +/obj/structure/closet/bombcloset, +/obj/machinery/light_switch{ + pixel_x = 0; + pixel_y = 28 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 2 + }, +/area/toxins/mixing) +"bEw" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/item/device/radio/intercom{ + pixel_y = 25 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 2 + }, +/area/toxins/mixing) +"bEx" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/obj/machinery/camera{ + c_tag = "Toxins Lab West"; + dir = 2; + network = list("SS13","RD"); + pixel_y = 0 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 2 + }, +/area/toxins/mixing) +"bEy" = ( +/obj/machinery/portable_atmospherics/pump, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 2 + }, +/area/toxins/mixing) +"bEz" = ( +/turf/open/floor/plasteel/warnwhite{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"bEA" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/toxins/mixing) +"bEB" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/turf/open/floor/plasteel/warnwhite{ + dir = 9 + }, +/area/toxins/mixing) +"bEC" = ( +/turf/closed/wall/r_wall, +/area/toxins/mixing) +"bED" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/turf/open/floor/plasteel/warnwhite{ + dir = 5 + }, +/area/toxins/mixing) +"bEE" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bEF" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 4; + name = "4maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bEG" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + 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/asmaint2) +"bEH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/toxins/mixing) +"bEI" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bEJ" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"bEK" = ( +/obj/machinery/computer/security/mining{ + network = list("MINE","AuxBase") + }, +/obj/machinery/camera{ + c_tag = "Mining Dock"; + dir = 4; + network = list("SS13") + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bEL" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing) +"bEM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/toxins/mixing) +"bEN" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel, +/area/toxins/mixing) +"bEO" = ( +/obj/structure/sign/securearea{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 1 + }, +/area/toxins/mixing) +"bEP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bEQ" = ( +/obj/effect/landmark/start{ + name = "Shaft Miner" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bER" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plating, +/area/storage/tech) +"bES" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/maintenance/aft) +"bET" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/storage/tech) +"bEU" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/storage/tech) +"bEV" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/storage/tech) +"bEW" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/storage/tech) +"bEX" = ( +/obj/structure/table, +/obj/item/device/aicard, +/obj/item/weapon/aiModule/reset, +/turf/open/floor/plating, +/area/storage/tech) +"bEY" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/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/weapon/stock_parts/cell/high/plus, +/turf/open/floor/plating, +/area/storage/tech) +"bFa" = ( +/turf/open/floor/plating, +/area/storage/tech) +"bFb" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/storage/tech) +"bFc" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/effect/landmark{ + name = "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{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/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{ + name = "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{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bFi" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/janitor) +"bFj" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, +/turf/open/floor/plasteel/caution/corner{ + dir = 8 + }, +/area/hallway/primary/aft) +"bFk" = ( +/obj/item/weapon/mop, +/obj/item/weapon/reagent_containers/glass/bucket, +/turf/open/floor/plasteel, +/area/janitor) +"bFl" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/power/apc{ + dir = 8; + name = "Custodial Closet APC"; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plating, +/area/janitor) +"bFm" = ( +/obj/structure/disposalpipe/sortjunction{ + dir = 8; + icon_state = "pipe-j2s"; + sortType = 6 + }, +/obj/structure/grille, +/obj/structure/window/fulltile{ + obj_integrity = 25 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bFn" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bFo" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bFp" = ( +/obj/structure/grille, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"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 = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"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/janitor) +"bFt" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/grille, +/obj/structure/window/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"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/structure/grille, +/obj/structure/window/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bFy" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bFz" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/medical/sleeper) +"bFA" = ( +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/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/weapon/reagent_containers/food/condiment/peppermill{ + pixel_x = 5; + pixel_y = -2 + }, +/obj/item/weapon/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) +"bFE" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/barber, +/area/medical/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/medical/cmo) +"bFH" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/light_switch{ + pixel_x = 28; + pixel_y = 0 + }, +/turf/open/floor/plasteel/barber, +/area/medical/cmo) +"bFI" = ( +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/storage) +"bFJ" = ( +/obj/structure/bed, +/obj/item/weapon/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 = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bFM" = ( +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j2"; + dir = 2 + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bFN" = ( +/obj/structure/table, +/obj/item/weapon/cartridge/medical{ + pixel_x = -2; + pixel_y = 6 + }, +/obj/item/weapon/cartridge/medical{ + pixel_x = 6; + pixel_y = 3 + }, +/obj/item/weapon/cartridge/medical, +/obj/item/weapon/cartridge/chemistry{ + pixel_y = 2 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/barber, +/area/medical/cmo) +"bFO" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/cmo) +"bFP" = ( +/obj/machinery/computer/card/minor/cmo, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/barber, +/area/medical/cmo) +"bFQ" = ( +/obj/structure/sign/nosmoking_2{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white/side{ + dir = 5 + }, +/area/medical/research{ + name = "Research Division" + }) +"bFR" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bFS" = ( +/turf/open/floor/plasteel/warnwhite{ + dir = 10 + }, +/area/medical/research{ + name = "Research Division" + }) +"bFT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing) +"bFU" = ( +/turf/open/floor/plasteel/white, +/area/toxins/mixing) +"bFV" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/obj/machinery/meter, +/turf/open/floor/plasteel/white, +/area/toxins/mixing) +"bFW" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing) +"bFX" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing) +"bFY" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bFZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/toxins/mixing) +"bGa" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/closed/wall, +/area/maintenance/asmaint2) +"bGb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/closed/wall, +/area/toxins/mixing) +"bGc" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/toxins/mixing) +"bGd" = ( +/obj/machinery/doppler_array{ + dir = 4 + }, +/turf/open/floor/plasteel/bot{ + dir = 2 + }, +/area/toxins/mixing) +"bGe" = ( +/turf/closed/wall, +/area/toxins/test_area) +"bGf" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating/airless, +/area/toxins/test_area) +"bGg" = ( +/obj/structure/table, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/labor) +"bGh" = ( +/obj/machinery/computer/shuttle/mining, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/labor) +"bGi" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/quartermaster/miningdock) +"bGj" = ( +/obj/machinery/computer/shuttle/mining, +/turf/open/floor/plasteel/brown{ + dir = 9 + }, +/area/quartermaster/miningdock) +"bGk" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start{ + name = "Scientist" + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing) +"bGl" = ( +/obj/item/device/assembly/prox_sensor{ + pixel_x = -4; + pixel_y = 1 + }, +/obj/item/device/assembly/prox_sensor{ + pixel_x = 8; + pixel_y = 9 + }, +/obj/item/device/assembly/prox_sensor{ + pixel_x = 9; + pixel_y = -2 + }, +/obj/item/device/assembly/prox_sensor{ + pixel_x = 0; + pixel_y = 2 + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/white, +/area/toxins/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{ + name = "Firefighting equipment"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bGp" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/aft) +"bGq" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"bGr" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/cable, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/storage/tech) +"bGs" = ( +/obj/machinery/camera{ + c_tag = "Secure Tech Storage"; + dir = 2 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/storage/tech) +"bGt" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/circuitboard/computer/borgupload{ + pixel_x = -1; + pixel_y = 1 + }, +/obj/item/weapon/circuitboard/computer/aiupload{ + pixel_x = 2; + pixel_y = -2 + }, +/turf/open/floor/plasteel, +/area/storage/tech) +"bGu" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE" + }, +/turf/closed/wall/r_wall, +/area/storage/tech) +"bGv" = ( +/obj/structure/table, +/obj/machinery/cell_charger{ + pixel_y = 5 + }, +/obj/item/device/multitool, +/turf/open/floor/plating, +/area/storage/tech) +"bGw" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/circuitboard/computer/pandemic{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/circuitboard/computer/rdconsole, +/obj/item/weapon/circuitboard/machine/rdserver{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/weapon/circuitboard/machine/destructive_analyzer, +/obj/item/weapon/circuitboard/machine/protolathe, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/item/weapon/circuitboard/computer/aifixer, +/obj/item/weapon/circuitboard/computer/teleporter, +/obj/item/weapon/circuitboard/machine/circuit_imprinter, +/obj/item/weapon/circuitboard/machine/mechfab, +/turf/open/floor/plating, +/area/storage/tech) +"bGx" = ( +/obj/structure/rack, +/obj/item/weapon/circuitboard/machine/telecomms/processor, +/obj/item/weapon/circuitboard/machine/telecomms/receiver, +/obj/item/weapon/circuitboard/machine/telecomms/server, +/obj/item/weapon/circuitboard/machine/telecomms/bus, +/obj/item/weapon/circuitboard/machine/telecomms/broadcaster, +/obj/item/weapon/circuitboard/computer/message_monitor{ + pixel_y = -5 + }, +/turf/open/floor/plating, +/area/storage/tech) +"bGy" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/circuitboard/computer/mining, +/obj/item/weapon/circuitboard/machine/autolathe{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/weapon/circuitboard/computer/arcade/battle, +/turf/open/floor/plating, +/area/storage/tech) +"bGz" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/wrench, +/obj/item/weapon/screwdriver{ + pixel_y = 10 + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing) +"bGA" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing) +"bGB" = ( +/obj/structure/table, +/obj/item/weapon/grenade/chem_grenade/cleaner, +/obj/item/weapon/grenade/chem_grenade/cleaner, +/obj/item/weapon/grenade/chem_grenade/cleaner, +/obj/machinery/requests_console{ + department = "Janitorial"; + departmentType = 1; + pixel_y = -29 + }, +/obj/item/weapon/reagent_containers/spray/cleaner, +/turf/open/floor/plasteel, +/area/janitor) +"bGC" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/airlock/research{ + name = "Toxins Launch Room Access"; + req_access_txt = "8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/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{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing) +"bGG" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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/toxins/mixing) +"bGH" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bGI" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bGJ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bGK" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/toxins/mixing) +"bGL" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/toxins/mixing) +"bGM" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bGN" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bGO" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/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{ + d1 = 4; + d2 = 8; + 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/asmaint) +"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/asmaint) +"bGR" = ( +/obj/structure/table, +/obj/item/weapon/hand_labeler, +/obj/item/weapon/gun/syringe, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bGS" = ( +/obj/machinery/limbgrower, +/obj/item/weapon/reagent_containers/glass/beaker/synthflesh, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bGT" = ( +/obj/structure/table, +/obj/item/weapon/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) +"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) +"bGV" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bGW" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bGX" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bGY" = ( +/obj/machinery/portable_atmospherics/scrubber/huge, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/storage) +"bGZ" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/barber, +/area/medical/cmo) +"bHa" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/medical/cmo) +"bHb" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/barber, +/area/medical/cmo) +"bHc" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -27; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white/side{ + dir = 5 + }, +/area/medical/research{ + name = "Research Division" + }) +"bHd" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bHe" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Toxins Storage APC"; + pixel_x = -25 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/camera{ + c_tag = "Toxins Storage"; + dir = 4; + network = list("SS13","RD") + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/storage) +"bHf" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bHg" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing) +"bHh" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/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{ + d1 = 1; + d2 = 2; + 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 = "8" + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing) +"bHn" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/closed/wall/r_wall, +/area/maintenance/asmaint) +"bHo" = ( +/obj/structure/closet, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bHp" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bHq" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bHr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/toxins/mixing) +"bHs" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning/corner{ + dir = 2 + }, +/area/toxins/mixing) +"bHt" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bHu" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/obj/item/device/radio/intercom{ + pixel_y = 25 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/toxins/mixing) +"bHv" = ( +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the test chamber."; + dir = 8; + layer = 4; + name = "Test Chamber Telescreen"; + network = list("Toxins"); + pixel_x = 30; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/toxins/mixing) +"bHw" = ( +/obj/item/target, +/obj/structure/window/reinforced, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/toxins/test_area) +"bHx" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/labor) +"bHy" = ( +/obj/structure/closet/crate, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + dir = 4; + name = "Station Intercom (General)"; + pixel_x = 27 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/quartermaster/miningdock) +"bHz" = ( +/obj/item/weapon/ore/iron, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/quartermaster/miningdock) +"bHA" = ( +/turf/open/floor/plasteel/brown{ + dir = 8 + }, +/area/quartermaster/miningdock) +"bHB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/mob/living/simple_animal/mouse, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bHC" = ( +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bHD" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/chair/stool, +/turf/open/floor/plating, +/area/maintenance/aft) +"bHE" = ( +/turf/open/floor/plating, +/area/maintenance/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{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/circuitboard/computer/crew{ + pixel_x = -1; + pixel_y = 1 + }, +/obj/item/weapon/circuitboard/computer/card{ + pixel_x = 2; + pixel_y = -2 + }, +/obj/item/weapon/circuitboard/computer/communications{ + pixel_x = 5; + pixel_y = -5 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/storage/tech) +"bHH" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/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{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plating, +/area/storage/tech) +"bHJ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plating, +/area/storage/tech) +"bHK" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white/side{ + dir = 5 + }, +/area/medical/research{ + name = "Research Division" + }) +"bHL" = ( +/obj/machinery/camera{ + c_tag = "Research Division South"; + dir = 8; + network = list("SS13") + }, +/obj/machinery/door/firedoor/heavy, +/turf/open/floor/plasteel/white/side{ + dir = 9 + }, +/area/medical/research{ + name = "Research Division" + }) +"bHM" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bHN" = ( +/obj/machinery/requests_console{ + department = "Tech storage"; + pixel_x = 0; + pixel_y = -32 + }, +/turf/open/floor/plating, +/area/storage/tech) +"bHO" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/storage/toolbox/electrical{ + pixel_x = 1; + pixel_y = -1 + }, +/obj/item/device/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; + network = list("SS13") + }, +/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{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bHT" = ( +/obj/structure/grille, +/obj/machinery/door/poddoor/preopen{ + id = "medpriv1"; + name = "privacy door" + }, +/obj/structure/window/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/medbay) +"bHU" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bHV" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Medbay Maintenance APC"; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bHW" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/grille, +/obj/structure/window/fulltile{ + obj_integrity = 35 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bHX" = ( +/obj/structure/grille, +/obj/structure/window/fulltile{ + obj_integrity = 25 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bHY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bHZ" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bIa" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bIb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white/side{ + dir = 5 + }, +/area/medical/research{ + name = "Research Division" + }) +"bIc" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/medical/sleeper) +"bId" = ( +/obj/machinery/vending/wallmed{ + pixel_y = -28 + }, +/obj/machinery/camera{ + c_tag = "Surgery Operating"; + dir = 1; + network = list("SS13"); + pixel_x = 22 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bIe" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/status_display{ + density = 0; + layer = 3; + pixel_x = -32; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/caution/corner{ + dir = 8 + }, +/area/hallway/primary/aft) +"bIf" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/doorButtons/access_button{ + idDoor = "virology_airlock_exterior"; + idSelf = "virology_airlock_control"; + name = "Virology Access Button"; + pixel_x = -24; + pixel_y = 0; + req_access_txt = "39" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/virology{ + autoclose = 0; + frequency = 1449; + icon_state = "door_locked"; + id_tag = "virology_airlock_exterior"; + locked = 1; + name = "Virology Exterior Airlock"; + req_access_txt = "39" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bIg" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 2; + icon_state = "pipe-j2s"; + sortType = 13 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bIh" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bIi" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/o2{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/firstaid/o2, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = -3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bIj" = ( +/obj/structure/table, +/obj/machinery/light, +/obj/item/weapon/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/machinery/requests_console{ + announcementConsole = 0; + department = "Medbay"; + departmentType = 1; + name = "Medbay RC"; + pixel_x = 0; + pixel_y = -30; + pixel_z = 0 + }, +/obj/item/weapon/storage/firstaid/fire{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/firstaid/fire, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = -3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bIl" = ( +/obj/structure/table, +/obj/item/device/radio/intercom{ + broadcasting = 0; + freerange = 0; + frequency = 1485; + listening = 1; + name = "Station Intercom (Medbay)"; + pixel_x = 0; + pixel_y = -30 + }, +/obj/item/weapon/storage/firstaid/toxin{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/firstaid/toxin, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = -3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bIm" = ( +/obj/machinery/light, +/obj/structure/table, +/obj/item/weapon/storage/box/beakers{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/weapon/storage/box/syringes, +/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{ + pixel_x = 7; + pixel_y = -3 + }, +/obj/item/weapon/reagent_containers/glass/bottle/morphine{ + pixel_x = 8; + pixel_y = -3 + }, +/obj/item/weapon/reagent_containers/syringe{ + pixel_x = 6; + pixel_y = -3 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bIn" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/brute{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/firstaid/brute, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = -3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bIo" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/medical, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bIp" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bIq" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"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) +"bIs" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance{ + name = "Xenobiology Maintenance"; + req_access_txt = "55" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"bIt" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bIu" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bIv" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bIw" = ( +/obj/structure/closet/secure_closet/CMO, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel/barber, +/area/medical/cmo) +"bIx" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE" + }, +/turf/closed/wall/r_wall, +/area/toxins/xenobiology) +"bIy" = ( +/obj/structure/disposaloutlet{ + dir = 1 + }, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"bIz" = ( +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, +/turf/open/floor/plasteel/bot, +/area/toxins/storage) +"bIA" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel/bot, +/area/toxins/storage) +"bIB" = ( +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/turf/open/floor/plasteel/bot, +/area/toxins/storage) +"bIC" = ( +/turf/open/floor/plasteel/floorgrime, +/area/toxins/storage) +"bID" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/white/side{ + dir = 5 + }, +/area/medical/research{ + name = "Research Division" + }) +"bIE" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bIF" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel, +/area/atmos) +"bIG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bIH" = ( +/obj/machinery/pipedispenser/disposal, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bII" = ( +/obj/item/weapon/storage/secure/safe{ + pixel_x = 5; + pixel_y = 29 + }, +/obj/machinery/camera{ + c_tag = "Virology Break Room" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/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{ + icon_state = "sink"; + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 9 + }, +/area/medical/virology) +"bIL" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bIM" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/sign/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/asmaint) +"bIN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/toxins/xenobiology) +"bIO" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bIP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/chair/comfy/black, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bIQ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bIR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bIS" = ( +/obj/machinery/door/airlock/research{ + name = "Toxins Launch Room"; + req_access_txt = "8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/toxins/mixing) +"bIT" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"bIU" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 2 + }, +/area/toxins/mixing) +"bIV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/toxins/mixing) +"bIW" = ( +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/toxins/mixing) +"bIX" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'BOMB RANGE"; + name = "BOMB RANGE" + }, +/turf/closed/wall, +/area/toxins/test_area) +"bIY" = ( +/obj/structure/chair, +/turf/open/floor/plating/airless/warnplate{ + dir = 9 + }, +/area/toxins/test_area) +"bIZ" = ( +/obj/structure/chair, +/turf/open/floor/plating/airless/warnplate{ + dir = 5 + }, +/area/toxins/test_area) +"bJa" = ( +/obj/item/device/flashlight/lamp, +/turf/open/floor/plating/airless/warnplate{ + dir = 1 + }, +/area/toxins/test_area) +"bJb" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 4; + name = "Mining Dock Airlock"; + req_access = null; + req_access_txt = "48"; + shuttledocked = 1 + }, +/turf/open/floor/plating, +/area/quartermaster/miningdock) +"bJc" = ( +/obj/machinery/door/airlock/titanium{ + name = "Mining Shuttle Airlock"; + req_access_txt = "48" + }, +/obj/docking_port/mobile{ + dir = 8; + dwidth = 3; + height = 5; + id = "mining"; + name = "mining shuttle"; + port_angle = 90; + width = 7 + }, +/obj/docking_port/stationary{ + dir = 8; + dwidth = 3; + height = 5; + id = "mining_home"; + name = "mining shuttle bay"; + width = 7 + }, +/turf/open/floor/plating, +/area/shuttle/labor) +"bJd" = ( +/obj/machinery/door/airlock/glass_mining{ + cyclelinkeddir = 8; + 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/aft) +"bJf" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plating, +/area/maintenance/aft) +"bJg" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/storage/tech) +"bJh" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/circuitboard/computer/robotics{ + pixel_x = -2; + pixel_y = 2 + }, +/obj/item/weapon/circuitboard/computer/mecha_control{ + pixel_x = 1; + pixel_y = -1 + }, +/turf/open/floor/plasteel, +/area/storage/tech) +"bJi" = ( +/obj/structure/sign/securearea, +/turf/closed/wall/r_wall, +/area/storage/tech) +"bJj" = ( +/obj/structure/table, +/obj/item/weapon/stock_parts/subspace/analyzer, +/obj/item/weapon/stock_parts/subspace/analyzer, +/obj/item/weapon/stock_parts/subspace/analyzer, +/turf/open/floor/plating, +/area/storage/tech) +"bJk" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/circuitboard/computer/cloning{ + pixel_x = 0 + }, +/obj/item/weapon/circuitboard/computer/med_data{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/weapon/circuitboard/machine/clonescanner, +/obj/item/weapon/circuitboard/machine/clonepod, +/obj/item/weapon/circuitboard/computer/scan_consolenew, +/turf/open/floor/plating, +/area/storage/tech) +"bJl" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/circuitboard/computer/powermonitor{ + pixel_x = -2; + pixel_y = 2 + }, +/obj/item/weapon/circuitboard/computer/stationalert{ + pixel_x = 1; + pixel_y = -1 + }, +/obj/item/weapon/circuitboard/computer/atmos_alert{ + pixel_x = 3; + pixel_y = -3 + }, +/turf/open/floor/plating, +/area/storage/tech) +"bJm" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/circuitboard/computer/secure_data{ + pixel_x = -2; + pixel_y = 2 + }, +/obj/item/weapon/circuitboard/computer/security{ + pixel_x = 1; + pixel_y = -1 + }, +/turf/open/floor/plating, +/area/storage/tech) +"bJn" = ( +/obj/machinery/light_switch{ + pixel_x = 27 + }, +/turf/open/floor/plating, +/area/storage/tech) +"bJo" = ( +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"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{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bJr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"bJs" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + 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/asmaint) +"bJt" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bJu" = ( +/obj/structure/light_construct{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/construction) +"bJv" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + 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/asmaint) +"bJw" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bJx" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/blue/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"bJy" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + 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/asmaint) +"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{ + name = "blobstart" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bJB" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, +/turf/open/floor/plasteel, +/area/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) +"bJF" = ( +/obj/machinery/pipedispenser/disposal/transit_tube, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bJG" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bJH" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/shieldwallgen{ + req_access = list(55) + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"bJI" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id = "misclab"; + name = "test chamber blast door" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"bJJ" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id = "misclab"; + name = "test chamber blast door" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"bJK" = ( +/obj/structure/grille, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id = "misclab"; + name = "test chamber blast door" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"bJL" = ( +/obj/machinery/door/window/southleft{ + dir = 1; + name = "Test Chamber"; + req_access_txt = "55" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/door/poddoor/preopen{ + id = "misclab"; + name = "test chamber blast door" + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"bJM" = ( +/obj/structure/grille, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "misclab"; + name = "test chamber blast door" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"bJN" = ( +/turf/closed/wall, +/area/toxins/xenobiology) +"bJO" = ( +/obj/machinery/door/airlock/research{ + name = "Testing Lab"; + req_access_txt = "47" + }, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"bJP" = ( +/obj/machinery/vending/boozeomat, +/turf/open/floor/plasteel/bar, +/area/maintenance/aft) +"bJQ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/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 = 4 + }, +/turf/closed/wall, +/area/toxins/storage) +"bJS" = ( +/turf/open/space, +/obj/machinery/porta_turret/syndicate{ + dir = 5 + }, +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) +"bJT" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"bJU" = ( +/obj/structure/closet/wardrobe/science_white, +/turf/open/floor/plasteel/white, +/area/toxins/mixing) +"bJV" = ( +/obj/structure/closet/l3closet/scientist{ + pixel_x = -2 + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing) +"bJW" = ( +/obj/item/device/transfer_valve{ + pixel_x = -5 + }, +/obj/item/device/transfer_valve{ + pixel_x = -5 + }, +/obj/item/device/transfer_valve{ + pixel_x = 0 + }, +/obj/item/device/transfer_valve{ + pixel_x = 0 + }, +/obj/item/device/transfer_valve{ + pixel_x = 5 + }, +/obj/item/device/transfer_valve{ + pixel_x = 5 + }, +/obj/machinery/requests_console{ + department = "Science"; + departmentType = 2; + name = "Science Requests Console"; + pixel_x = 0; + pixel_y = -30 + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/white, +/area/toxins/mixing) +"bJX" = ( +/obj/item/device/assembly/signaler{ + pixel_x = 0; + pixel_y = 8 + }, +/obj/item/device/assembly/signaler{ + pixel_x = -8; + pixel_y = 5 + }, +/obj/item/device/assembly/signaler{ + pixel_x = 6; + pixel_y = 5 + }, +/obj/item/device/assembly/signaler{ + pixel_x = -2; + pixel_y = -2 + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/white, +/area/toxins/mixing) +"bJY" = ( +/obj/structure/tank_dispenser, +/turf/open/floor/plasteel/white, +/area/toxins/mixing) +"bJZ" = ( +/obj/item/device/assembly/timer{ + pixel_x = 5; + pixel_y = 4 + }, +/obj/item/device/assembly/timer{ + pixel_x = -4; + pixel_y = 2 + }, +/obj/item/device/assembly/timer{ + pixel_x = 6; + pixel_y = -4 + }, +/obj/item/device/assembly/timer{ + pixel_x = 0; + pixel_y = 0 + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/white, +/area/toxins/mixing) +"bKa" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "Toxins Lab APC"; + pixel_x = 26; + pixel_y = 0 + }, +/obj/structure/cable, +/turf/open/floor/plasteel/white, +/area/toxins/mixing) +"bKb" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/toxins/mixing) +"bKc" = ( +/turf/open/floor/plasteel/warning/corner{ + dir = 4 + }, +/area/toxins/mixing) +"bKd" = ( +/obj/machinery/camera{ + c_tag = "Toxins Launch Room Access"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning/corner{ + dir = 8 + }, +/area/toxins/mixing) +"bKe" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/toxins/mixing) +"bKf" = ( +/obj/machinery/door/window/southleft{ + name = "Mass Driver Door"; + req_access_txt = "7" + }, +/turf/open/floor/plasteel/loadingarea, +/area/toxins/mixing) +"bKg" = ( +/turf/open/floor/plating/airless, +/area/toxins/test_area) +"bKh" = ( +/turf/open/floor/plating/airless/warnplate{ + dir = 9 + }, +/area/toxins/test_area) +"bKi" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plating/airless/warnplate{ + dir = 5 + }, +/area/toxins/test_area) +"bKj" = ( +/obj/machinery/camera{ + c_tag = "Mining Dock External"; + dir = 8 + }, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/warning, +/area/quartermaster/miningdock) +"bKk" = ( +/obj/item/weapon/ore/silver, +/obj/item/weapon/ore/silver, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/quartermaster/miningdock) +"bKl" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/brown{ + dir = 10 + }, +/area/quartermaster/miningdock) +"bKm" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0 + }, +/turf/closed/wall, +/area/quartermaster/miningdock) +"bKn" = ( +/obj/structure/rack{ + dir = 1 + }, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/weapon/pickaxe{ + pixel_x = 5 + }, +/obj/item/weapon/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"; + d2 = 4 + }, +/obj/structure/cable, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/storage/tech) +"bKs" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/structure/cable, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/storage/tech) +"bKt" = ( +/obj/structure/table, +/obj/item/weapon/stock_parts/micro_laser, +/obj/item/weapon/stock_parts/manipulator, +/obj/item/weapon/stock_parts/manipulator, +/obj/item/weapon/stock_parts/manipulator, +/obj/item/weapon/stock_parts/manipulator, +/obj/item/weapon/stock_parts/capacitor, +/obj/item/weapon/stock_parts/micro_laser/high, +/obj/item/weapon/stock_parts/micro_laser/high, +/obj/item/weapon/stock_parts/micro_laser/high, +/obj/item/weapon/stock_parts/micro_laser/high, +/turf/open/floor/plating, +/area/storage/tech) +"bKu" = ( +/obj/structure/table, +/obj/item/weapon/stock_parts/subspace/amplifier, +/obj/item/weapon/stock_parts/subspace/amplifier, +/obj/item/weapon/stock_parts/subspace/amplifier, +/turf/open/floor/plating, +/area/storage/tech) +"bKv" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bKw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/asmaint) +"bKx" = ( +/obj/structure/closet/crate, +/obj/effect/landmark{ + name = "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/asmaint) +"bKz" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"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/asmaint) +"bKC" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bKD" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bKE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bKF" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/box, +/obj/item/weapon/storage/box, +/obj/item/weapon/storage/box, +/obj/item/weapon/hand_labeler, +/obj/item/weapon/hand_labeler, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bKG" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/sign/securearea{ + pixel_x = 0; + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bKH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bKI" = ( +/obj/structure/disposalpipe/sortjunction{ + dir = 8; + icon_state = "pipe-j1s"; + sortType = 11 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bKJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bKK" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + dir = 4; + name = "Medbay APC"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/medical/medbay) +"bKL" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bKM" = ( +/obj/machinery/vending/wallmed{ + pixel_y = 28 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"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) +"bKO" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"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 + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/office) +"bKQ" = ( +/obj/structure/rack{ + dir = 1 + }, +/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/asmaint) +"bKR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/medical/medbay) +"bKS" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "CM Office APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/cmo) +"bKT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bKU" = ( +/obj/machinery/door/airlock/engineering{ + 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{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bKW" = ( +/obj/item/weapon/wrench, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning{ + dir = 2 + }, +/area/toxins/xenobiology) +"bKX" = ( +/obj/machinery/button/door{ + id = "misclab"; + name = "Test Chamber Blast Doors"; + pixel_x = 0; + pixel_y = -2; + req_access_txt = "55" + }, +/obj/structure/table/reinforced, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/toxins/xenobiology) +"bKY" = ( +/obj/machinery/computer/security/telescreen{ + name = "Test Chamber Moniter"; + network = list("Xeno"); + pixel_x = 0; + pixel_y = 2 + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/warning{ + dir = 2 + }, +/area/toxins/xenobiology) +"bKZ" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/toxins/xenobiology) +"bLa" = ( +/obj/machinery/door/window/southleft{ + name = "Test Chamber"; + req_access_txt = "55" + }, +/turf/open/floor/plasteel/warning{ + dir = 2 + }, +/area/toxins/xenobiology) +"bLb" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning{ + dir = 2 + }, +/area/toxins/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, +/turf/open/floor/plasteel/warning{ + dir = 2 + }, +/area/toxins/xenobiology) +"bLd" = ( +/obj/structure/sink{ + icon_state = "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" + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 10 + }, +/area/medical/virology) +"bLe" = ( +/obj/structure/sign/biohazard, +/turf/closed/wall, +/area/toxins/xenobiology) +"bLf" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bLg" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bLh" = ( +/obj/structure/sign/fire, +/turf/closed/wall, +/area/medical/research{ + name = "Research Division" + }) +"bLi" = ( +/obj/structure/sign/nosmoking_2{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing) +"bLj" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = -32 + }, +/turf/open/floor/plating, +/area/toxins/mixing) +"bLk" = ( +/obj/machinery/mass_driver{ + dir = 4; + id = "toxinsdriver" + }, +/turf/open/floor/plating, +/area/toxins/mixing) +"bLl" = ( +/obj/machinery/door/poddoor{ + id = "toxinsdriver"; + name = "toxins launcher bay door" + }, +/turf/open/floor/plating, +/area/toxins/mixing) +"bLm" = ( +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/toxins/mixing) +"bLn" = ( +/turf/open/floor/plating/airless/warnplate{ + dir = 4 + }, +/area/toxins/test_area) +"bLo" = ( +/turf/open/floor/plating/airless/warnplate{ + dir = 8 + }, +/area/toxins/test_area) +"bLp" = ( +/obj/item/device/radio/beacon, +/turf/open/floor/plating/airless, +/area/toxins/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/toxins/test_area) +"bLr" = ( +/obj/machinery/camera{ + active_power_usage = 0; + c_tag = "Bomb Test Site"; + desc = "A specially-reinforced camera with a long lasting battery, used to monitor the bomb testing site."; + dir = 8; + invuln = 1; + light = null; + name = "Hardened Bomb-Test Camera"; + network = list("Toxins"); + use_power = 0 + }, +/obj/item/target/alien{ + anchored = 1 + }, +/turf/open/floor/plating/warnplate{ + dir = 4; + luminosity = 2; + initial_gas_mix = "o2=0.01;n2=0.01" + }, +/area/toxins/test_area) +"bLs" = ( +/obj/structure/ore_box, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/labor) +"bLt" = ( +/obj/structure/shuttle/engine/heater, +/turf/open/floor/plating, +/area/shuttle/labor) +"bLu" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/aft) +"bLv" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/aft) +"bLw" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"bLx" = ( +/obj/structure/table, +/obj/item/weapon/stock_parts/subspace/transmitter, +/obj/item/weapon/stock_parts/subspace/transmitter, +/obj/item/weapon/stock_parts/subspace/treatment, +/obj/item/weapon/stock_parts/subspace/treatment, +/obj/item/weapon/stock_parts/subspace/treatment, +/turf/open/floor/plating, +/area/storage/tech) +"bLy" = ( +/obj/structure/table, +/obj/item/weapon/stock_parts/subspace/ansible, +/obj/item/weapon/stock_parts/subspace/ansible, +/obj/item/weapon/stock_parts/subspace/ansible, +/obj/item/weapon/stock_parts/subspace/crystal, +/obj/item/weapon/stock_parts/subspace/crystal, +/obj/item/weapon/stock_parts/subspace/crystal, +/turf/open/floor/plating, +/area/storage/tech) +"bLz" = ( +/obj/structure/table, +/obj/item/weapon/stock_parts/subspace/filter, +/obj/item/weapon/stock_parts/subspace/filter, +/obj/item/weapon/stock_parts/subspace/filter, +/obj/item/weapon/stock_parts/subspace/filter, +/obj/item/weapon/stock_parts/subspace/filter, +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/storage/tech) +"bLA" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/storage/toolbox/electrical{ + pixel_x = 1; + pixel_y = -1 + }, +/obj/item/clothing/gloves/color/yellow, +/obj/item/device/t_scanner, +/obj/item/device/multitool, +/turf/open/floor/plating, +/area/storage/tech) +"bLB" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"bLC" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/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/table/reinforced, +/obj/item/device/destTagger, +/obj/item/device/destTagger, +/obj/machinery/computer/stockexchange, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"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, +/turf/open/floor/plasteel/bot, +/area/atmos) +"bLK" = ( +/turf/closed/wall/r_wall, +/area/atmos) +"bLL" = ( +/obj/machinery/portable_atmospherics/canister/nitrogen, +/turf/open/floor/plasteel/bot, +/area/atmos) +"bLM" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel/bot, +/area/atmos) +"bLN" = ( +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/turf/open/floor/plasteel/bot, +/area/atmos) +"bLO" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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/atmos) +"bLP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/atmos) +"bLQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/closed/wall/r_wall, +/area/atmos) +"bLR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/turf/closed/wall/r_wall, +/area/atmos) +"bLS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bLT" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bLU" = ( +/obj/structure/table, +/obj/item/weapon/folder/white, +/obj/item/clothing/neck/stethoscope, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"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) +"bLW" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bLX" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bLY" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bLZ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bMc" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Medbay Maintenance"; + req_access_txt = "5" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/medbay) +"bMd" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bMe" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/junction, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bMf" = ( +/obj/structure/table, +/obj/machinery/cell_charger{ + pixel_y = 5 + }, +/obj/item/stack/cable_coil, +/obj/item/device/multitool, +/obj/item/weapon/stock_parts/cell/high/plus, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"bMg" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Xenobiology APC"; + pixel_x = -25 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/cable, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bMh" = ( +/obj/structure/chair/stool, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bMi" = ( +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bMj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/closed/wall, +/area/maintenance/aft) +"bMk" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bMl" = ( +/obj/machinery/processor{ + desc = "A machine used to process slimes and retrieve their extract."; + name = "Slime Processor" + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bMm" = ( +/obj/machinery/monkey_recycler, +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bMn" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder, +/obj/machinery/airalarm{ + frequency = 1439; + pixel_y = 23 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bMo" = ( +/obj/machinery/smartfridge/extract, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bMp" = ( +/obj/structure/closet/l3closet/scientist, +/obj/machinery/light_switch{ + pixel_x = 0; + pixel_y = 28 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bMq" = ( +/obj/structure/closet/l3closet/scientist, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bMr" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"bMs" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/medical/research{ + name = "Research Division" + }) +"bMt" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/engine/vacuum, +/area/toxins/mixing) +"bMu" = ( +/obj/machinery/door/poddoor{ + id = "mixvent"; + name = "Mixer Room Vent" + }, +/turf/open/floor/engine/vacuum, +/area/toxins/mixing) +"bMv" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/toxins/mixing) +"bMw" = ( +/obj/machinery/sparker{ + dir = 2; + id = "mixingsparker"; + pixel_x = 25 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 0; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine/vacuum, +/area/toxins/mixing) +"bMx" = ( +/obj/machinery/airlock_sensor{ + id_tag = "tox_airlock_sensor"; + master_tag = "tox_airlock_control"; + pixel_y = 24 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/engine, +/area/toxins/mixing) +"bMy" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4; + name = "mix to port" + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 4 + }, +/area/toxins/mixing) +"bMz" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/machinery/meter, +/obj/machinery/embedded_controller/radio/airlock_controller{ + airpump_tag = "tox_airlock_pump"; + exterior_door_tag = "tox_airlock_exterior"; + id_tag = "tox_airlock_control"; + interior_door_tag = "tox_airlock_interior"; + pixel_x = -24; + pixel_y = 0; + sanitize_external = 1; + sensor_tag = "tox_airlock_sensor" + }, +/turf/open/floor/plasteel/warnwhite/corner{ + dir = 1 + }, +/area/toxins/mixing) +"bMA" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/toxins/mixing) +"bMB" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"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/asmaint2) +"bMD" = ( +/turf/open/floor/plating/airless/warnplate{ + dir = 10 + }, +/area/toxins/test_area) +"bME" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plating/airless/warnplate{ + dir = 6 + }, +/area/toxins/test_area) +"bMF" = ( +/obj/structure/shuttle/engine/propulsion/burst, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/turf/open/floor/plating/airless, +/area/shuttle/labor) +"bMG" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + 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/atmos) +"bML" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plasteel, +/area/atmos) +"bMM" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bMN" = ( +/obj/machinery/atmospherics/components/trinary/filter{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bMO" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/atmos) +"bMP" = ( +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/atmos) +"bMQ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/atmos) +"bMR" = ( +/obj/machinery/pipedispenser, +/turf/open/floor/plasteel, +/area/atmos) +"bMS" = ( +/obj/machinery/camera{ + c_tag = "Atmospherics North East" + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Distro to Waste"; + on = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bMT" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 8 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/meter{ + frequency = 1441; + id_tag = "waste_meter"; + name = "Waste Loop" + }, +/turf/open/floor/plasteel, +/area/atmos) +"bMU" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/visible{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bMV" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/visible{ + dir = 2 + }, +/obj/machinery/meter{ + frequency = 1441; + id_tag = "distro_meter"; + name = "Distribution Loop" + }, +/turf/open/floor/plasteel, +/area/atmos) +"bMW" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 10; + initialize_directions = 10 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bMX" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Air to Distro"; + on = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bMY" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/atmos) +"bMZ" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bNa" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/open/space, +/area/space) +"bNb" = ( +/obj/item/weapon/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) +"bNe" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/table, +/obj/item/weapon/hand_labeler, +/obj/item/clothing/glasses/science, +/obj/item/clothing/glasses/science, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"bNf" = ( +/obj/structure/sign/biohazard, +/turf/closed/wall, +/area/medical/virology) +"bNg" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/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{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bNj" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_virology{ + name = "Isolation A"; + req_access_txt = "39" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bNk" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/medical/virology) +"bNl" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_virology{ + name = "Isolation B"; + req_access_txt = "39" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bNm" = ( +/turf/open/floor/plasteel/warning/corner{ + dir = 8 + }, +/area/toxins/misc_lab) +"bNn" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bNo" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bNp" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bNq" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass{ + amount = 50; + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/mineral/plasma{ + layer = 2.9 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/toxins/misc_lab) +"bNr" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + name = "Xenobiology Lab"; + req_access_txt = "55" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bNs" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bNt" = ( +/turf/open/floor/engine/vacuum, +/area/toxins/mixing) +"bNu" = ( +/obj/machinery/door/airlock/glass_research{ + autoclose = 0; + frequency = 1449; + glass = 1; + heat_proof = 1; + icon_state = "door_locked"; + id_tag = "tox_airlock_exterior"; + locked = 1; + name = "Mixing Room Exterior Airlock"; + req_access_txt = "8" + }, +/turf/open/floor/engine, +/area/toxins/mixing) +"bNv" = ( +/obj/machinery/door/airlock/glass_research{ + autoclose = 0; + frequency = 1449; + glass = 1; + heat_proof = 1; + icon_state = "door_locked"; + id_tag = "tox_airlock_interior"; + locked = 1; + name = "Mixing Room Interior Airlock"; + req_access_txt = "8" + }, +/turf/open/floor/engine, +/area/toxins/mixing) +"bNw" = ( +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume{ + dir = 2; + frequency = 1449; + id = "tox_airlock_pump" + }, +/turf/open/floor/engine, +/area/toxins/mixing) +"bNx" = ( +/turf/open/floor/plasteel/warnwhite{ + dir = 4 + }, +/area/toxins/mixing) +"bNy" = ( +/turf/open/floor/plasteel/warnwhite{ + dir = 8 + }, +/area/toxins/mixing) +"bNz" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0 + }, +/obj/machinery/camera{ + c_tag = "Toxins Lab East"; + dir = 8; + network = list("SS13","RD"); + pixel_y = -22 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/toxins/mixing) +"bNA" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bNB" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bNC" = ( +/obj/structure/closet/wardrobe/grey, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bND" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plating/airless/warnplate{ + dir = 10 + }, +/area/toxins/test_area) +"bNE" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plating/airless/warnplate{ + dir = 6 + }, +/area/toxins/test_area) +"bNF" = ( +/obj/item/device/flashlight/lamp, +/turf/open/floor/plating/airless/warnplate{ + dir = 2 + }, +/area/toxins/test_area) +"bNG" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/toxins/test_area) +"bNH" = ( +/obj/structure/table/reinforced, +/obj/item/stack/wrapping_paper{ + pixel_x = 3; + pixel_y = 4 + }, +/obj/item/stack/packageWrap{ + pixel_x = -1; + pixel_y = -1 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -26 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bNI" = ( +/turf/closed/wall, +/area/construction) +"bNJ" = ( +/turf/open/floor/plating, +/area/construction) +"bNK" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_mining{ + name = "Cargo Office"; + req_access_txt = "50" + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bNL" = ( +/obj/machinery/airalarm{ + frequency = 1439; + pixel_y = 23 + }, +/turf/open/floor/plating, +/area/construction) +"bNM" = ( +/turf/open/floor/plasteel/loadingarea{ + dir = 4 + }, +/area/quartermaster/office) +"bNN" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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 = 4; + icon_state = "pipe-c" + }, +/obj/item/device/radio/intercom{ + freerange = 0; + frequency = 1459; + name = "Station Intercom (General)"; + pixel_x = -30 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bNQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/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; + network = list("SS13") + }, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel/caution{ + dir = 5 + }, +/area/atmos) +"bNS" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bNT" = ( +/obj/machinery/camera{ + c_tag = "Atmospherics North West"; + dir = 4; + network = list("SS13") + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bNU" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/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/atmos) +"bNW" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bNX" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/misc_lab) +"bNY" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/atmos) +"bNZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"bOa" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bOb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bOc" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Mix to Distro"; + on = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bOd" = ( +/turf/open/floor/plasteel, +/area/atmos) +"bOe" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 8; + initialize_directions = 11 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/atmos) +"bOf" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 10; + initialize_directions = 10 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/atmos) +"bOg" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Mix to Incinerator"; + on = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bOh" = ( +/obj/structure/grille, +/turf/closed/wall/r_wall, +/area/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) +"bOk" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 2 + }, +/area/toxins/misc_lab) +"bOl" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/announcement_system, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bOm" = ( +/obj/item/weapon/bedsheet, +/obj/structure/bed, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bOn" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/airalarm{ + frequency = 1439; + pixel_y = 23 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bOo" = ( +/obj/item/device/radio/intercom{ + dir = 8; + freerange = 1; + name = "Station Intercom (Telecoms)"; + pixel_x = 0; + pixel_y = 26 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bOp" = ( +/obj/structure/closet/emcloset, +/obj/machinery/camera{ + c_tag = "Virology Airlock"; + dir = 2; + network = list("SS13") + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 5 + }, +/area/medical/virology) +"bOq" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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; + locked = 0; + pixel_x = -23; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"bOv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"bOw" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/droneDispenser, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"bOx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bOy" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/misc_lab) +"bOz" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bOA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"bOB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/toxins/misc_lab) +"bOC" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/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{ + dir = 2; + id = "mixingsparker"; + pixel_x = 25 + }, +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 4; + frequency = 1441; + id = "air_in" + }, +/turf/open/floor/engine/vacuum, +/area/toxins/mixing) +"bOF" = ( +/obj/structure/sign/fire{ + pixel_y = -32 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/engine, +/area/toxins/mixing) +"bOG" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4; + name = "port to mix" + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 4 + }, +/area/toxins/mixing) +"bOH" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/machinery/meter, +/obj/machinery/button/door{ + id = "mixvent"; + name = "Mixing Room Vent Control"; + pixel_x = -25; + pixel_y = 5; + req_access_txt = "7" + }, +/obj/machinery/button/ignition{ + id = "mixingsparker"; + pixel_x = -25; + pixel_y = -5 + }, +/turf/open/floor/plasteel/warnwhite/corner{ + dir = 4 + }, +/area/toxins/mixing) +"bOI" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/toxins/mixing) +"bOJ" = ( +/obj/item/target, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating/warnplate, +/area/toxins/test_area) +"bOK" = ( +/obj/structure/barricade/wooden, +/obj/structure/girder, +/turf/open/floor/plating, +/area/maintenance/aft) +"bOL" = ( +/obj/structure/closet/crate, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bOM" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bON" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kanyewest"; + layer = 2.9; + name = "privacy shutters" + }, +/turf/open/floor/plating, +/area/security/detectives_office) +"bOO" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Engineering Security APC"; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/checkpoint/engineering) +"bOP" = ( +/obj/structure/table/glass, +/obj/structure/reagent_dispensers/virusfood{ + density = 0; + pixel_x = -30 + }, +/obj/item/weapon/book/manual/wiki/infections{ + pixel_y = 7 + }, +/obj/item/weapon/reagent_containers/syringe/antiviral, +/obj/item/weapon/reagent_containers/dropper, +/obj/item/weapon/reagent_containers/spray/cleaner, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 8 + }, +/area/medical/virology) +"bOQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/loadingarea{ + dir = 8 + }, +/area/hallway/primary/aft) +"bOR" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bOS" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/loadingarea{ + dir = 4 + }, +/area/atmos) +"bOT" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/plasticflaps{ + opacity = 1 + }, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=4"; + dir = 4; + freq = 1400; + location = "Atmospherics" + }, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/atmos) +"bOU" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bOV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bOW" = ( +/obj/machinery/computer/atmos_control, +/obj/machinery/requests_console{ + department = "Atmospherics"; + departmentType = 4; + name = "Atmos RC"; + pixel_x = 30; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/caution{ + dir = 4 + }, +/area/atmos) +"bOX" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/atmos) +"bOY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/atmos) +"bOZ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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/atmos) +"bPa" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/atmos) +"bPb" = ( +/obj/machinery/door/airlock/glass_research{ + name = "Firing Range"; + req_access_txt = "47" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"bPc" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bPd" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 0; + name = "Waste In"; + on = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bPe" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible, +/turf/open/floor/plasteel, +/area/atmos) +"bPf" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 0; + name = "Air to Mix"; + on = 0 + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bPg" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Mix Outlet Pump"; + on = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bPh" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/atmos) +"bPi" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/atmospherics/pipe/manifold/yellow/visible, +/turf/open/floor/plasteel/green/side{ + dir = 5 + }, +/area/atmos) +"bPj" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/obj/structure/grille, +/obj/machinery/meter, +/turf/closed/wall/r_wall, +/area/atmos) +"bPk" = ( +/obj/machinery/camera{ + c_tag = "Atmospherics Waste Tank" + }, +/turf/open/floor/engine/vacuum, +/area/atmos) +"bPl" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + external_pressure_bound = 0; + frequency = 1441; + id_tag = "mix_out"; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine/vacuum, +/area/atmos) +"bPm" = ( +/turf/open/floor/engine/vacuum, +/area/atmos) +"bPn" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"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/securearea{ + pixel_x = -32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 8 + }, +/area/medical/virology) +"bPr" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/structure/closet/l3closet, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 4 + }, +/area/medical/virology) +"bPs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/toxins/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{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bPv" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"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/deathsposal{ + pixel_x = 0; + pixel_y = -32 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bPy" = ( +/obj/effect/landmark/start{ + name = "Scientist" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/chair/comfy/black, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bPz" = ( +/obj/machinery/light, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/table/glass, +/obj/item/weapon/storage/box/monkeycubes, +/obj/item/weapon/storage/box/monkeycubes, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bPA" = ( +/obj/machinery/computer/camera_advanced/xenobio, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bPB" = ( +/obj/structure/table/glass, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/item/weapon/folder/white, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bPC" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bPD" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bPE" = ( +/obj/structure/table, +/obj/item/weapon/extinguisher{ + pixel_x = 4; + pixel_y = 3 + }, +/obj/item/weapon/extinguisher, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bPF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/toxins/misc_lab) +"bPG" = ( +/obj/structure/table, +/obj/item/stack/sheet/mineral/plasma{ + layer = 2.9 + }, +/obj/item/stack/sheet/mineral/plasma{ + layer = 2.9 + }, +/obj/item/stack/sheet/mineral/plasma{ + layer = 2.9 + }, +/obj/machinery/light, +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bPH" = ( +/obj/structure/table, +/obj/machinery/requests_console{ + department = "Science"; + departmentType = 2; + name = "Science Requests Console"; + pixel_x = 0; + pixel_y = -30 + }, +/obj/item/weapon/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bPI" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bPJ" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/beakers{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/weapon/storage/box/syringes, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bPK" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/toxins/misc_lab) +"bPL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 8 + }, +/area/toxins/misc_lab) +"bPM" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 4 + }, +/area/toxins/misc_lab) +"bPN" = ( +/turf/closed/wall, +/area/toxins/misc_lab) +"bPO" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bPP" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"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/aft) +"bPS" = ( +/turf/open/floor/wood, +/area/maintenance/aft) +"bPT" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/maintenance/aft) +"bPU" = ( +/obj/item/weapon/shard, +/turf/open/floor/plating, +/area/maintenance/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/aft) +"bPW" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/maintenance/aft) +"bPX" = ( +/obj/structure/closet/emcloset, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/maintenance/aft) +"bPY" = ( +/obj/structure/girder, +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bPZ" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bQa" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/aft) +"bQb" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bQc" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plating, +/area/construction) +"bQd" = ( +/obj/structure/table, +/obj/item/weapon/folder/blue, +/obj/item/weapon/pen/blue, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bQe" = ( +/obj/item/weapon/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{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/item/device/radio/off, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/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/atmos) +"bQi" = ( +/obj/structure/grille, +/obj/machinery/door/poddoor/preopen{ + id = "atmos"; + layer = 2.9; + name = "atmos blast door" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/atmos) +"bQj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bQk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bQl" = ( +/obj/machinery/computer/atmos_control, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/caution{ + dir = 4 + }, +/area/atmos) +"bQm" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bQn" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/atmos) +"bQo" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bQp" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bQq" = ( +/obj/machinery/camera{ + c_tag = "Security Post - Engineering"; + dir = 8; + network = list("SS13") + }, +/obj/item/device/radio/intercom{ + dir = 4; + name = "Station Intercom (General)"; + pixel_x = 27 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/checkpoint/engineering) +"bQr" = ( +/obj/structure/closet/crate, +/turf/open/floor/plasteel, +/area/atmos) +"bQs" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Mix to Filter"; + on = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bQt" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bQu" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bQv" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bQw" = ( +/obj/machinery/atmospherics/pipe/manifold/green/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bQx" = ( +/obj/machinery/atmospherics/pipe/manifold/green/visible{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bQy" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/atmos) +"bQz" = ( +/obj/machinery/computer/atmos_control/tank{ + frequency = 1441; + input_tag = "mix_in"; + name = "Gas Mix Tank Control"; + output_tag = "mix_out"; + sensors = list("mix_sensor" = "Tank") + }, +/turf/open/floor/plasteel/green/side{ + dir = 4 + }, +/area/atmos) +"bQA" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating/airless, +/area/atmos) +"bQB" = ( +/obj/machinery/air_sensor{ + frequency = 1441; + id_tag = "mix_sensor" + }, +/turf/open/floor/engine/vacuum, +/area/atmos) +"bQC" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/engine/vacuum, +/area/atmos) +"bQD" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bQE" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/donkpockets{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/machinery/newscaster{ + pixel_x = -30 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bQF" = ( +/obj/structure/closet/wardrobe/virology_white, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bQG" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/toxins/misc_lab) +"bQH" = ( +/obj/structure/closet/l3closet, +/turf/open/floor/plasteel/warnwhite{ + dir = 6 + }, +/area/medical/virology) +"bQI" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"bQJ" = ( +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bQK" = ( +/obj/machinery/door/airlock/glass_command{ + 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{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/toxins/xenobiology) +"bQM" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/toxins/xenobiology) +"bQN" = ( +/obj/machinery/door/firedoor, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Xenobiology North"; + dir = 8; + network = list("SS13","RD") + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/toxins/xenobiology) +"bQO" = ( +/obj/structure/closet/bombcloset, +/obj/machinery/light_switch{ + pixel_x = -20; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"bQP" = ( +/obj/structure/window/reinforced/fulltile, +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/tcommsat/computer) +"bQQ" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bQR" = ( +/obj/structure/table, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/item/weapon/storage/toolbox/mechanical, +/obj/item/clothing/ears/earmuffs, +/obj/machinery/camera{ + c_tag = "Testing Lab North"; + dir = 2; + network = list("SS13","RD") + }, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"bQS" = ( +/obj/machinery/requests_console{ + department = "Science"; + departmentType = 2; + dir = 2; + name = "Science Requests Console"; + pixel_x = 0; + pixel_y = 30 + }, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"bQT" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/turf/open/floor/engine, +/area/toxins/misc_lab) +"bQU" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/toxins/misc_lab) +"bQV" = ( +/obj/machinery/atmospherics/components/trinary/filter{ + dir = 4; + req_access = null + }, +/turf/open/floor/engine, +/area/toxins/misc_lab) +"bQW" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/heater{ + dir = 8 + }, +/turf/open/floor/engine, +/area/toxins/misc_lab) +"bQX" = ( +/turf/open/floor/plasteel/floorgrime, +/area/toxins/misc_lab) +"bQY" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/toxins/misc_lab) +"bQZ" = ( +/turf/closed/wall/r_wall, +/area/toxins/misc_lab) +"bRa" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/toxins/misc_lab) +"bRb" = ( +/obj/structure/rack, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bRc" = ( +/obj/structure/table/wood, +/obj/item/weapon/soap/nanotrasen, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/maintenance/aft) +"bRd" = ( +/obj/structure/table, +/obj/machinery/chem_dispenser/drinks/beer, +/turf/open/floor/wood, +/area/maintenance/aft) +"bRe" = ( +/obj/structure/table/wood, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 4; + name = "4maintenance loot spawner" + }, +/turf/open/floor/wood, +/area/maintenance/aft) +"bRf" = ( +/obj/structure/table/wood, +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/maintenance/aft) +"bRg" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bRh" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bRi" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bRj" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + 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{ + d1 = 1; + d2 = 8; + 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/glass_security{ + name = "Security Office"; + req_access_txt = "63" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/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, +/obj/machinery/light_switch{ + pixel_x = 27 + }, +/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{ + name = "Atmospheric Technician" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/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"; + layer = 2.9; + name = "atmos blast door" + }, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/atmos) +"bRt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/atmos) +"bRu" = ( +/obj/machinery/computer/atmos_alert, +/turf/open/floor/plasteel/caution{ + dir = 4 + }, +/area/atmos) +"bRv" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Atmospheric Technician" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bRw" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel, +/area/atmos) +"bRx" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/atmos) +"bRy" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bRz" = ( +/obj/machinery/atmospherics/components/trinary/mixer{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bRA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bRB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 6 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/atmos) +"bRC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_atmos{ + name = "Distribution Loop"; + req_access_txt = "24" + }, +/turf/open/floor/plasteel, +/area/atmos) +"bRD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bRE" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Pure to Mix"; + on = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bRF" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bRG" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Unfiltered to Mix"; + on = 1 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4; + initialize_directions = 12 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bRH" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 5; + initialize_directions = 12 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bRI" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/atmos) +"bRJ" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/green/side{ + dir = 6 + }, +/area/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/on{ + dir = 8; + frequency = 1441; + id = "mix_in"; + pixel_y = 1 + }, +/turf/open/floor/engine/vacuum, +/area/atmos) +"bRM" = ( +/obj/structure/table, +/obj/machinery/light_switch{ + pixel_x = -23; + pixel_y = 0 + }, +/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{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/virology{ + autoclose = 0; + frequency = 1449; + icon_state = "door_locked"; + id_tag = "virology_airlock_interior"; + locked = 1; + name = "Virology Interior Airlock"; + req_access_txt = "39" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bRQ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/medical/virology) +"bRR" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_virology{ + 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 = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/engineering) +"bRT" = ( +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/structure/disposaloutlet, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"bRU" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"bRV" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/toxins/xenobiology) +"bRW" = ( +/obj/structure/grille, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio3"; + name = "containment blast door" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"bRX" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bRY" = ( +/obj/structure/window/reinforced, +/obj/structure/table/reinforced, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/button/door{ + id = "xenobio8"; + name = "Containment Blast Doors"; + pixel_x = 0; + pixel_y = 4; + req_access_txt = "55" + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/toxins/xenobiology) +"bRZ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bSa" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio8"; + name = "containment blast door" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"bSb" = ( +/obj/structure/closet/l3closet/scientist{ + pixel_x = -2 + }, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"bSc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"bSd" = ( +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/tcommsat/computer) +"bSe" = ( +/obj/structure/table, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/item/device/electropack, +/obj/item/device/healthanalyzer, +/obj/item/device/assembly/signaler, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"bSf" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/misc_lab) +"bSg" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4; + initialize_directions = 11 + }, +/turf/open/floor/engine, +/area/toxins/misc_lab) +"bSh" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/turf/open/floor/engine, +/area/toxins/misc_lab) +"bSi" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/turf/open/floor/engine, +/area/toxins/misc_lab) +"bSj" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 8 + }, +/turf/open/floor/engine, +/area/toxins/misc_lab) +"bSk" = ( +/obj/machinery/magnetic_module, +/obj/effect/landmark{ + name = "blobstart" + }, +/obj/structure/target_stake, +/turf/open/floor/plasteel/bot{ + dir = 2 + }, +/area/toxins/misc_lab) +"bSl" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bSm" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/asmaint2) +"bSn" = ( +/obj/machinery/space_heater, +/turf/open/floor/wood, +/area/maintenance/aft) +"bSo" = ( +/obj/structure/chair/stool, +/turf/open/floor/wood, +/area/maintenance/aft) +"bSp" = ( +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/maintenance/aft) +"bSq" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/tank/internals/emergency_oxygen, +/obj/item/weapon/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/aft) +"bSr" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/aft) +"bSs" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/aft) +"bSt" = ( +/obj/structure/closet/emcloset, +/obj/machinery/camera{ + c_tag = "Telecoms Monitoring"; + dir = 8; + network = list("SS13") + }, +/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 + }, +/turf/open/floor/plating, +/area/construction) +"bSw" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/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/weapon/tank/internals/emergency_oxygen{ + pixel_x = -8; + pixel_y = 0 + }, +/obj/item/weapon/tank/internals/emergency_oxygen{ + pixel_x = -8; + pixel_y = 0 + }, +/obj/item/clothing/mask/breath{ + pixel_x = 4; + pixel_y = 0 + }, +/obj/item/clothing/mask/breath{ + pixel_x = 4; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/atmos) +"bSC" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "atmos"; + layer = 2.9; + name = "atmos blast door" + }, +/turf/open/floor/plating, +/area/atmos) +"bSD" = ( +/obj/structure/sign/atmosplaque{ + pixel_x = 0; + pixel_y = -32 + }, +/obj/structure/table, +/obj/item/weapon/storage/box, +/obj/item/weapon/storage/box, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/atmos) +"bSE" = ( +/obj/machinery/computer/station_alert, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/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/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/device/multitool, +/turf/open/floor/plasteel, +/area/atmos) +"bSG" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50; + pixel_x = 2; + pixel_y = 2 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bSH" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/weapon/storage/belt/utility, +/obj/item/device/t_scanner, +/obj/item/device/t_scanner, +/obj/item/device/t_scanner, +/turf/open/floor/plasteel, +/area/atmos) +"bSI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/atmos) +"bSJ" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/atmos) +"bSK" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 6; + initialize_directions = 6 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/atmos) +"bSL" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/atmos) +"bSM" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/atmos) +"bSN" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/atmos) +"bSO" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/atmos) +"bSP" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 4; + initialize_directions = 11 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/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{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/firealarm{ + pixel_y = 25 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bSW" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + 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{ + cell_type = 5000; + dir = 1; + name = "Virology APC"; + pixel_x = 0; + pixel_y = 24 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/camera{ + c_tag = "Virology Module" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bSY" = ( +/obj/machinery/vending/medical, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bSZ" = ( +/obj/effect/landmark{ + name = "revenantspawn" + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"bTa" = ( +/obj/machinery/door/window/northleft{ + dir = 4; + name = "Containment Pen"; + req_access_txt = "55" + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/toxins/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{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio3"; + name = "containment blast door" + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"bTc" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bTd" = ( +/obj/machinery/door/window/northleft{ + base_state = "right"; + dir = 8; + icon_state = "right"; + name = "Containment Pen"; + req_access_txt = "55" + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/toxins/xenobiology) +"bTe" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/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/toxins/xenobiology) +"bTf" = ( +/obj/structure/rack, +/obj/item/weapon/wrench, +/obj/item/weapon/crowbar, +/obj/machinery/computer/security/telescreen{ + name = "Test Chamber Moniter"; + network = list("Test"); + pixel_x = 0; + pixel_y = -30 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/misc_lab) +"bTg" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/checkpoint/engineering) +"bTk" = ( +/obj/machinery/atmospherics/components/binary/valve, +/turf/open/floor/engine, +/area/toxins/misc_lab) +"bTl" = ( +/turf/open/floor/engine, +/area/toxins/misc_lab) +"bTm" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/floor/engine, +/area/toxins/misc_lab) +"bTn" = ( +/obj/structure/table, +/obj/item/device/assembly/igniter{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/item/device/assembly/igniter{ + pixel_x = 5; + pixel_y = -4 + }, +/obj/item/device/assembly/igniter{ + pixel_x = 2; + pixel_y = 6 + }, +/obj/item/device/assembly/igniter{ + pixel_x = 2; + pixel_y = -1 + }, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/item/device/assembly/timer{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/device/assembly/timer{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/device/assembly/timer{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/device/assembly/timer{ + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/engine, +/area/toxins/misc_lab) +"bTo" = ( +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/toxins/misc_lab) +"bTp" = ( +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/toxins/misc_lab) +"bTq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/toxins/misc_lab) +"bTr" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bTs" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/maintenance/aft) +"bTt" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken6" + }, +/area/maintenance/aft) +"bTu" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/wood, +/area/maintenance/aft) +"bTv" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bTw" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bTx" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + icon_state = "connector_map"; + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating, +/area/maintenance/aft) +"bTy" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bTz" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bTA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/aft) +"bTB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/closed/wall, +/area/maintenance/aft) +"bTC" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/closed/wall, +/area/maintenance/aft) +"bTD" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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/aft) +"bTE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bTF" = ( +/obj/structure/closet/emcloset, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bTG" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/weapon/pen, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = 30; + pixel_y = 0 + }, +/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/weapon/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"; + dir = 8; + pixel_x = -25; + pixel_y = 1 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/caution/corner{ + dir = 8 + }, +/area/hallway/primary/aft) +"bTK" = ( +/obj/item/weapon/crowbar, +/obj/item/weapon/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/atmos) +"bTM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/atmos) +"bTN" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/airlock/glass_atmos{ + name = "Atmospherics Monitoring"; + req_access_txt = "24" + }, +/turf/open/floor/plasteel, +/area/atmos) +"bTO" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 6; + initialize_directions = 6 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bTP" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bTQ" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/atmos) +"bTR" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 4; + initialize_directions = 11 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/atmos) +"bTS" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 6 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/atmos) +"bTT" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bTU" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bTV" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "N2O Outlet Pump"; + on = 0 + }, +/turf/open/floor/plasteel/escape{ + dir = 5 + }, +/area/atmos) +"bTW" = ( +/turf/open/floor/engine/n2o, +/area/atmos) +"bTX" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + external_pressure_bound = 0; + frequency = 1441; + id_tag = "n2o_out"; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine/n2o, +/area/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; + icon_state = "alarm0"; + pixel_x = -22 + }, +/obj/structure/sink{ + icon_state = "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 = "Telecoms Admin"; + departmentType = 5; + name = "Telecoms RC"; + pixel_x = 30; + pixel_y = 0 + }, +/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_x = 0; + pixel_y = 4; + req_access_txt = "55" + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/toxins/xenobiology) +"bUe" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio3"; + name = "containment blast door" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"bUf" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bUg" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/toxins/xenobiology) +"bUh" = ( +/obj/structure/grille, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio8"; + name = "containment blast door" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"bUi" = ( +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/disposaloutlet{ + dir = 1 + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"bUj" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/misc_lab) +"bUk" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10; + pixel_x = 0; + initialize_directions = 10 + }, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"bUl" = ( +/obj/structure/disposalpipe/sortjunction{ + dir = 2; + icon_state = "pipe-j2s"; + 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{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bUn" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/turf/open/floor/engine, +/area/toxins/misc_lab) +"bUo" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/beakers{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/weapon/grenade/chem_grenade, +/obj/item/weapon/grenade/chem_grenade, +/turf/open/floor/engine, +/area/toxins/misc_lab) +"bUp" = ( +/turf/open/floor/plating, +/area/toxins/misc_lab) +"bUq" = ( +/obj/structure/target_stake, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/toxins/misc_lab) +"bUr" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + icon_state = "intact"; + dir = 10 + }, +/turf/open/space, +/area/space/nearstation) +"bUs" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bUt" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bUu" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bUv" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"bUw" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bUx" = ( +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-y"; + dir = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/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{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bUA" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Construction Area APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/construction) +"bUB" = ( +/obj/machinery/power/apc{ + dir = 2; + name = "Telecoms Monitoring APC"; + pixel_y = -24 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/tcommsat/computer) +"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/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/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/atmos) +"bUG" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 + }, +/obj/machinery/meter, +/turf/closed/wall/r_wall, +/area/atmos) +"bUH" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/atmos) +"bUI" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/caution{ + dir = 4 + }, +/area/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/atmos) +"bUK" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Air to External"; + on = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bUL" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bUM" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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/atmos) +"bUN" = ( +/obj/item/device/radio/beacon, +/turf/open/floor/plasteel, +/area/atmos) +"bUO" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 0; + name = "Mix to Port"; + on = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bUP" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 0; + name = "Air to Port"; + on = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bUQ" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 0; + name = "Pure to Port"; + on = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bUR" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/plasteel, +/area/atmos) +"bUS" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/floor/plasteel, +/area/atmos) +"bUT" = ( +/obj/machinery/computer/atmos_control/tank{ + frequency = 1441; + input_tag = "n2o_in"; + name = "Nitrous Oxide Supply Control"; + output_tag = "n2o_out"; + sensors = list("n2o_sensor" = "Tank") + }, +/turf/open/floor/plasteel/escape{ + dir = 4 + }, +/area/atmos) +"bUU" = ( +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/turf/open/floor/engine/n2o, +/area/atmos) +"bUV" = ( +/obj/machinery/air_sensor{ + frequency = 1441; + id_tag = "n2o_sensor" + }, +/turf/open/floor/engine/n2o, +/area/atmos) +"bUW" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/engine/n2o, +/area/atmos) +"bUX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bUY" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bUZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bVa" = ( +/obj/machinery/smartfridge/chemistry/virology, +/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 = 4; + icon_state = "pipe-c" + }, +/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{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bVf" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/hallway/primary/aft) +"bVg" = ( +/obj/item/device/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/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE" + }, +/turf/closed/wall, +/area/toxins/xenobiology) +"bVj" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bVk" = ( +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bVl" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/misc_lab) +"bVm" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bVn" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4; + initialize_directions = 11 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/misc_lab) +"bVo" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/break_room) +"bVp" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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 = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bVs" = ( +/obj/machinery/camera{ + c_tag = "Testing Firing Range"; + dir = 8; + network = list("SS13","RD"); + pixel_y = -22 + }, +/turf/open/floor/plating, +/area/toxins/misc_lab) +"bVt" = ( +/obj/structure/target_stake, +/turf/open/floor/plating, +/area/toxins/misc_lab) +"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) +"bVw" = ( +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/space/nearstation) +"bVx" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 2 + }, +/turf/open/floor/plating/airless, +/area/maintenance/aft) +"bVy" = ( +/obj/structure/grille, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/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{ + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/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/aft) +"bVC" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bVD" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/sign/deathsposal{ + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/maintenance/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/aft) +"bVF" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/turf/open/floor/plating, +/area/maintenance/aft) +"bVG" = ( +/obj/structure/sign/nosmoking_2{ + pixel_x = -28 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bVH" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"bVI" = ( +/turf/closed/wall/r_wall, +/area/tcommsat/server) +"bVJ" = ( +/turf/closed/wall/r_wall, +/area/tcommsat/computer) +"bVK" = ( +/obj/machinery/vending/snack, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bVL" = ( +/obj/structure/rack{ + dir = 1 + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/aft) +"bVM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"bVN" = ( +/obj/machinery/camera{ + c_tag = "Atmospherics Access"; + dir = 4; + network = list("SS13") + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/caution{ + dir = 8 + }, +/area/atmos) +"bVO" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/atmos) +"bVP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bVQ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bVR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/caution{ + dir = 4 + }, +/area/atmos) +"bVS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/structure/sign/securearea, +/turf/closed/wall, +/area/atmos) +"bVT" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "External to Filter"; + on = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bVU" = ( +/obj/structure/reagent_dispensers/watertank/high, +/turf/open/floor/plasteel, +/area/atmos) +"bVV" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bVW" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/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/atmos) +"bVX" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel, +/area/atmos) +"bVY" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/atmos) +"bVZ" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bWa" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4; + initialize_directions = 11 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bWb" = ( +/obj/machinery/atmospherics/components/trinary/filter{ + dir = 1; + filter_type = "n2o"; + on = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bWc" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/escape{ + dir = 6 + }, +/area/atmos) +"bWd" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8; + frequency = 1441; + id = "n2o_in"; + pixel_y = 1 + }, +/turf/open/floor/engine/n2o, +/area/atmos) +"bWe" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"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/device/healthanalyzer, +/obj/item/clothing/glasses/hud/health, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 8 + }, +/area/medical/virology) +"bWg" = ( +/obj/structure/table, +/obj/item/weapon/hand_labeler, +/obj/item/device/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/structure/grille, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/medical/virology) +"bWj" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/medical/virology) +"bWk" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bWl" = ( +/obj/structure/grille, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio2"; + name = "containment blast door" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"bWm" = ( +/obj/structure/window/reinforced, +/obj/structure/table/reinforced, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/button/door{ + id = "xenobio7"; + name = "Containment Blast Doors"; + pixel_x = 0; + pixel_y = 4; + req_access_txt = "55" + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/toxins/xenobiology) +"bWn" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio7"; + name = "containment blast door" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"bWo" = ( +/obj/item/device/radio/intercom{ + pixel_x = -25 + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/misc_lab) +"bWp" = ( +/obj/structure/chair/office/light, +/obj/effect/landmark/start{ + name = "Scientist" + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/misc_lab) +"bWq" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 2 + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/misc_lab) +"bWr" = ( +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"bWs" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bWt" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bWu" = ( +/obj/machinery/door/airlock/engineering{ + name = "Telecommunications"; + req_access_txt = "61" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bWv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bWw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plating, +/area/maintenance/aft) +"bWx" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bWy" = ( +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/aft) +"bWz" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bWA" = ( +/obj/machinery/atmospherics/pipe/manifold4w/general, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/maintenance/aft) +"bWB" = ( +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bWC" = ( +/obj/machinery/telecomms/bus/preset_four, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bWD" = ( +/obj/machinery/telecomms/server/presets/engineering, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bWE" = ( +/obj/machinery/telecomms/processor/preset_three, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bWF" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 1; + name = "Telecoms Server APC"; + pixel_x = 0; + pixel_y = 25 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bWG" = ( +/obj/machinery/telecomms/server/presets/security, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bWH" = ( +/obj/structure/table, +/turf/open/floor/plasteel/yellow/side{ + dir = 9 + }, +/area/tcommsat/computer) +"bWI" = ( +/obj/structure/window/reinforced/fulltile, +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plating, +/area/tcommsat/computer) +"bWJ" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + 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; + icon_state = "alarm0"; + 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/atmos) +"bWN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id = "atmos"; + name = "atmos blast door" + }, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/atmos) +"bWO" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 1 + }, +/obj/machinery/meter, +/turf/closed/wall/r_wall, +/area/atmos) +"bWP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 9 + }, +/obj/machinery/door/poddoor/preopen{ + id = "atmos"; + name = "atmos blast door" + }, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/atmos) +"bWQ" = ( +/turf/closed/wall/r_wall, +/area/security/checkpoint/engineering) +"bWR" = ( +/obj/item/device/radio/intercom{ + freerange = 0; + frequency = 1459; + name = "Station Intercom (General)"; + pixel_x = -30 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bWS" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0 + }, +/obj/machinery/camera{ + c_tag = "Atmospherics West"; + dir = 8; + network = list("SS13") + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel, +/area/atmos) +"bWT" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -27; + pixel_y = 0 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 0; + name = "Air to Port"; + on = 0 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bWU" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bWV" = ( +/obj/structure/door_assembly/door_assembly_mai, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"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/device/radio/intercom{ + pixel_x = -25 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/item/weapon/storage/box/beakers{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/weapon/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/weapon/paper_bin{ + pixel_x = -2; + pixel_y = 5 + }, +/obj/item/weapon/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{ + name = "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/structure/grille, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/window/fulltile, +/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" = ( +/obj/effect/landmark{ + name = "revenantspawn" + }, +/mob/living/simple_animal/slime, +/turf/open/floor/engine, +/area/toxins/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{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio2"; + name = "containment blast door" + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"bXg" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/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/toxins/xenobiology) +"bXh" = ( +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/misc_lab) +"bXi" = ( +/obj/structure/table, +/obj/item/weapon/folder/white, +/obj/item/weapon/folder/white, +/obj/item/weapon/pen, +/obj/item/device/taperecorder{ + pixel_y = 0 + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/misc_lab) +"bXj" = ( +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/button/ignition{ + id = "testigniter"; + pixel_x = -6; + pixel_y = 2 + }, +/obj/machinery/button/door{ + id = "testlab"; + name = "Test Chamber Blast Doors"; + pixel_x = 4; + pixel_y = 2; + req_access_txt = "55" + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/misc_lab) +"bXk" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=AIE"; + location = "AftH" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bXl" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = 0; + pixel_y = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/misc_lab) +"bXm" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + 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{ + d1 = 4; + d2 = 8; + 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{ + d1 = 4; + d2 = 8; + 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{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bXq" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_engineering{ + name = "Engineering"; + req_access_txt = "32" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bXr" = ( +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/toxins/misc_lab) +"bXs" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/recharger{ + pixel_y = 4 + }, +/obj/item/weapon/paper/range, +/turf/open/floor/plating/warnplate{ + dir = 6 + }, +/area/toxins/misc_lab) +"bXt" = ( +/obj/structure/table/reinforced, +/obj/machinery/magnetic_controller{ + autolink = 1 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/item/device/radio/intercom{ + freerange = 0; + frequency = 1459; + name = "Station Intercom (General)"; + pixel_x = 29 + }, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plating/warnplate{ + dir = 10 + }, +/area/toxins/misc_lab) +"bXu" = ( +/obj/structure/grille, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/window/reinforced/tinted/fulltile, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bXv" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 4; + name = "External Access"; + req_access = null; + req_access_txt = "13" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bXw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/aft) +"bXx" = ( +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/aft) +"bXy" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/aft) +"bXz" = ( +/obj/machinery/telecomms/processor/preset_four, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bXA" = ( +/obj/machinery/telecomms/server/presets/common, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bXB" = ( +/obj/machinery/telecomms/bus/preset_three, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bXC" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bXD" = ( +/obj/machinery/telecomms/server/presets/command, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bXE" = ( +/obj/machinery/computer/message_monitor, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/tcommsat/computer) +"bXF" = ( +/obj/structure/window/reinforced/fulltile, +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/tcommsat/computer) +"bXG" = ( +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bXH" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bXI" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/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/atmos) +"bXK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/atmos) +"bXL" = ( +/obj/structure/sign/securearea, +/turf/closed/wall/r_wall, +/area/atmos) +"bXM" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics"; + req_access_txt = "24" + }, +/turf/open/floor/plasteel, +/area/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, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/checkpoint/engineering) +"bXQ" = ( +/obj/structure/fireaxecabinet{ + pixel_x = -32; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bXR" = ( +/obj/structure/closet/secure_closet/atmospherics, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/atmos) +"bXS" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/plasteel/bot{ + dir = 2 + }, +/area/atmos) +"bXT" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/turf/open/floor/plasteel/bot{ + dir = 2 + }, +/area/atmos) +"bXU" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bXV" = ( +/obj/machinery/camera{ + c_tag = "Atmospherics East"; + dir = 8; + network = list("SS13") + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Plasma Outlet Pump"; + on = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/atmos) +"bXW" = ( +/turf/open/floor/engine/plasma, +/area/atmos) +"bXX" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + external_pressure_bound = 0; + frequency = 1441; + id_tag = "tox_out"; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine/plasma, +/area/atmos) +"bXY" = ( +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/engine/plasma, +/area/atmos) +"bXZ" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bYa" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bYb" = ( +/obj/machinery/vending/cigarette{ + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bYc" = ( +/obj/machinery/disposal/bin, +/obj/structure/sign/deathsposal{ + pixel_x = 0; + 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 = 4; + icon_state = "pipe-c" + }, +/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_x = 0; + pixel_y = 4; + req_access_txt = "55" + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/toxins/xenobiology) +"bYg" = ( +/obj/structure/grille, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio2"; + name = "containment blast door" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"bYh" = ( +/obj/structure/grille, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio7"; + name = "containment blast door" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"bYi" = ( +/obj/structure/grille, +/obj/machinery/door/poddoor/preopen{ + id = "testlab"; + name = "test chamber blast door" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/engine, +/area/toxins/misc_lab) +"bYj" = ( +/obj/structure/grille, +/obj/machinery/door/poddoor/preopen{ + id = "testlab"; + name = "test chamber blast door" + }, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/engine, +/area/toxins/misc_lab) +"bYk" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/bot{ + dir = 2 + }, +/area/toxins/misc_lab) +"bYl" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"bYm" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel/bot{ + dir = 2 + }, +/area/toxins/misc_lab) +"bYn" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/yellow/side, +/area/hallway/primary/aft) +"bYo" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/toxins/misc_lab) +"bYp" = ( +/obj/structure/sign/securearea{ + pixel_x = -32; + pixel_y = 0 + }, +/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" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bYs" = ( +/obj/structure/closet/crate, +/obj/item/clothing/under/color/lightpurple, +/obj/item/stack/spacecash/c200, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bYt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bYu" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = -32; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bYv" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Mix to Space"; + on = 0 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/aft) +"bYw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/aft) +"bYx" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/aft) +"bYy" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Incinerator Access"; + req_access_txt = "12" + }, +/obj/structure/barricade/wooden{ + name = "wooden barricade (CLOSED)" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bYz" = ( +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bYA" = ( +/obj/machinery/telecomms/broadcaster/preset_right, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bYB" = ( +/obj/machinery/blackbox_recorder, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bYC" = ( +/obj/machinery/telecomms/receiver/preset_right, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bYD" = ( +/obj/machinery/computer/telecomms/server{ + 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; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/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, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/atmos) +"bYR" = ( +/obj/structure/sign/nosmoking_2, +/turf/closed/wall, +/area/atmos) +"bYS" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4; + initialize_directions = 11 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/atmos) +"bYT" = ( +/obj/machinery/computer/atmos_control/tank{ + frequency = 1441; + input_tag = "tox_in"; + name = "Plasma Supply Control"; + output_tag = "tox_out"; + sensors = list("tox_sensor" = "Tank") + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/atmos) +"bYU" = ( +/obj/machinery/portable_atmospherics/canister/toxins, +/turf/open/floor/engine/plasma, +/area/atmos) +"bYV" = ( +/obj/machinery/air_sensor{ + frequency = 1441; + id_tag = "tox_sensor" + }, +/turf/open/floor/engine/plasma, +/area/atmos) +"bYW" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/engine/plasma, +/area/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{ + icon_state = "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/toxins/xenobiology) +"bZb" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bZc" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 1 + }, +/turf/open/floor/engine, +/area/toxins/misc_lab) +"bZd" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"bZe" = ( +/obj/structure/grille, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/engine/break_room) +"bZf" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bZg" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bZh" = ( +/obj/structure/rack, +/obj/item/weapon/gun/energy/laser/practice, +/obj/item/clothing/ears/earmuffs, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"bZi" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bZj" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bZk" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/plating, +/area/maintenance/aft) +"bZl" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Mix to Port"; + on = 0 + }, +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/maintenance/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{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bZo" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bZp" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bZq" = ( +/obj/structure/window/reinforced/fulltile, +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plating, +/area/tcommsat/computer) +"bZr" = ( +/obj/machinery/status_display, +/turf/closed/wall, +/area/tcommsat/computer) +"bZs" = ( +/obj/structure/window/reinforced/fulltile, +/obj/structure/grille, +/obj/structure/cable{ + d2 = 8; + 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/structure/window/reinforced/fulltile, +/obj/structure/grille, +/turf/open/floor/plating, +/area/tcommsat/computer) +"bZw" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/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; + pixel_y = 0 + }, +/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{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"bZC" = ( +/obj/machinery/door/poddoor/preopen{ + id = "Engineering"; + name = "engineering security door" + }, +/obj/machinery/door/airlock/glass_command{ + name = "Chief Engineer"; + req_access_txt = "56" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/engine/chiefs_office) +"bZD" = ( +/obj/structure/grille, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/poddoor/preopen{ + id = "Engineering"; + name = "engineering security door" + }, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/engine/chiefs_office) +"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"; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bZG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/atmos) +"bZH" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4; + initialize_directions = 11 + }, +/obj/item/weapon/wrench, +/turf/open/floor/plasteel, +/area/atmos) +"bZI" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/atmos) +"bZJ" = ( +/obj/machinery/atmospherics/components/trinary/filter{ + dir = 1; + filter_type = "plasma"; + on = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"bZK" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/atmos) +"bZL" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8; + frequency = 1441; + id = "tox_in"; + pixel_y = 1 + }, +/turf/open/floor/engine/plasma, +/area/atmos) +"bZM" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/asmaint) +"bZN" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"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/asmaint) +"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/open{ + icon_state = "mvalve_map"; + dir = 4 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/maintenance/asmaint) +"bZR" = ( +/obj/machinery/airalarm{ + frequency = 1439; + pixel_y = 23 + }, +/obj/item/weapon/wrench, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plating/warnplate{ + dir = 9 + }, +/area/maintenance/asmaint) +"bZS" = ( +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 8 + }, +/turf/open/floor/plating/warnplate{ + dir = 5 + }, +/area/maintenance/asmaint) +"bZT" = ( +/obj/structure/rack{ + dir = 1 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bZU" = ( +/obj/structure/closet/emcloset, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bZV" = ( +/obj/structure/grille, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio1"; + name = "containment blast door" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"bZW" = ( +/obj/structure/window/reinforced, +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "xenobio6"; + name = "Containment Blast Doors"; + pixel_x = 0; + pixel_y = 4; + req_access_txt = "55" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/toxins/xenobiology) +"bZX" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio6"; + name = "containment blast door" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"bZY" = ( +/obj/item/device/radio/intercom{ + pixel_x = -25 + }, +/turf/open/floor/engine, +/area/toxins/misc_lab) +"bZZ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/toxins/misc_lab) +"caa" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/corner{ + dir = 1 + }, +/area/toxins/misc_lab) +"cab" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning/corner{ + dir = 8 + }, +/area/toxins/misc_lab) +"cac" = ( +/obj/structure/chair/stool, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cad" = ( +/obj/structure/table, +/obj/item/device/flashlight/lamp, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cae" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/asmaint2) +"caf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/maintenance/aft) +"cag" = ( +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/machinery/ntnet_relay, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"cah" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"cai" = ( +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"caj" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"cak" = ( +/obj/machinery/telecomms/hub/preset, +/turf/open/floor/plasteel/vault{ + dir = 8; + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"cal" = ( +/obj/machinery/door/airlock/glass_engineering{ + cyclelinkeddir = 4; + name = "Server Room"; + req_access_txt = "61" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/tcommsat/computer) +"cam" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"can" = ( +/obj/machinery/door/airlock/glass_engineering{ + cyclelinkeddir = 8; + 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, +/turf/open/floor/plasteel/yellow/side{ + dir = 6 + }, +/area/engine/break_room) +"caq" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/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/aft) +"car" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/closed/wall, +/area/maintenance/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/aft) +"cat" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cau" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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; + icon_state = "alarm0"; + 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/aft) +"cay" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"caz" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"caA" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/checkpoint/engineering) +"caB" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + 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) +"caC" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/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; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel, +/area/atmos) +"caF" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Atmospherics Central"; + dir = 4; + network = list("SS13") + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 0; + name = "Port to Filter"; + on = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"caG" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/heater{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/atmos) +"caH" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/obj/structure/chair/stool, +/turf/open/floor/plasteel, +/area/atmos) +"caI" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"caJ" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + icon_state = "intact"; + dir = 5 + }, +/turf/open/space, +/area/space/nearstation) +"caK" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"caL" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + 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/asmaint) +"caM" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"caN" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"caO" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"caP" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4 + }, +/turf/open/floor/plating/warnplate{ + dir = 2 + }, +/area/maintenance/asmaint) +"caQ" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating/warnplate{ + dir = 10 + }, +/area/maintenance/asmaint) +"caR" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating/warnplate{ + dir = 6 + }, +/area/maintenance/asmaint) +"caS" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"caT" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"caU" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"caV" = ( +/obj/machinery/door/window/northleft{ + base_state = "right"; + dir = 8; + icon_state = "right"; + name = "Containment Pen"; + req_access_txt = "55" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio1"; + name = "containment blast door" + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"caW" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/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/toxins/xenobiology) +"caX" = ( +/obj/machinery/sparker{ + id = "testigniter"; + pixel_x = -25 + }, +/turf/open/floor/engine, +/area/toxins/misc_lab) +"caY" = ( +/obj/item/device/radio/beacon, +/turf/open/floor/engine, +/area/toxins/misc_lab) +"caZ" = ( +/obj/structure/grille, +/obj/machinery/door/poddoor/preopen{ + id = "testlab"; + name = "test chamber blast door" + }, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/engine, +/area/toxins/misc_lab) +"cba" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/engine, +/area/toxins/misc_lab) +"cbb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/toxins/misc_lab) +"cbc" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/engine, +/area/toxins/misc_lab) +"cbd" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "Testing Lab APC"; + pixel_x = 26; + pixel_y = 0 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/misc_lab) +"cbe" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"cbf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cbg" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/asmaint2) +"cbh" = ( +/obj/structure/table, +/obj/item/weapon/folder/white, +/obj/item/weapon/folder/white, +/obj/item/weapon/pen, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cbi" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = -2; + pixel_y = 5 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cbj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/maintenance/aft) +"cbk" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Mix to Space"; + on = 1 + }, +/turf/open/floor/plating/airless, +/area/maintenance/aft) +"cbl" = ( +/obj/machinery/camera{ + c_tag = "Telecoms Server Room"; + dir = 4; + network = list("SS13") + }, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"cbm" = ( +/obj/structure/window/reinforced/fulltile, +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/tcommsat/computer) +"cbn" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'SERVER ROOM'."; + name = "SERVER ROOM"; + pixel_y = 0 + }, +/turf/closed/wall, +/area/tcommsat/computer) +"cbo" = ( +/obj/structure/window/reinforced/fulltile, +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/tcommsat/computer) +"cbp" = ( +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 4; + name = "CE Office APC"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral{ + dir = 2 + }, +/area/engine/chiefs_office) +"cbq" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral{ + dir = 2 + }, +/area/engine/chiefs_office) +"cbr" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cbs" = ( +/obj/structure/sign/securearea, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/engine/engineering) +"cbt" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/camera{ + c_tag = "Aft Primary Hallway 1"; + dir = 8; + network = list("SS13"); + pixel_x = 0; + 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"; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cbv" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Research Delivery access"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cbw" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cbx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"cby" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cbz" = ( +/obj/structure/closet/wardrobe/atmospherics_yellow, +/turf/open/floor/plasteel, +/area/atmos) +"cbA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel, +/area/atmos) +"cbB" = ( +/obj/machinery/space_heater, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/atmos) +"cbC" = ( +/obj/machinery/space_heater, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/atmos) +"cbD" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Port to Filter"; + on = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"cbE" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/atmos) +"cbF" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/obj/item/weapon/cigbutt, +/turf/open/floor/plasteel, +/area/atmos) +"cbG" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "CO2 Outlet Pump"; + on = 0 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 5 + }, +/area/atmos) +"cbH" = ( +/turf/open/floor/engine/co2, +/area/atmos) +"cbI" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + external_pressure_bound = 0; + frequency = 1441; + id_tag = "co2_out"; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine/co2, +/area/atmos) +"cbJ" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cbK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/maintenance/asmaint) +"cbL" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cbM" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cbN" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cbO" = ( +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics Maintenance"; + req_access_txt = "12;24" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cbP" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cbQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cbR" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "xenobio1"; + name = "Containment Blast Doors"; + pixel_x = 0; + pixel_y = 4; + req_access_txt = "55" + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/toxins/xenobiology) +"cbS" = ( +/obj/structure/grille, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio1"; + name = "containment blast door" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"cbT" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"cbU" = ( +/obj/structure/grille, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio6"; + name = "containment blast door" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"cbV" = ( +/obj/machinery/camera{ + c_tag = "Testing Chamber"; + dir = 1; + network = list("Test","RD"); + pixel_x = 0 + }, +/obj/machinery/light, +/turf/open/floor/engine, +/area/toxins/misc_lab) +"cbW" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/corner{ + dir = 4 + }, +/area/toxins/misc_lab) +"cbX" = ( +/obj/machinery/camera{ + c_tag = "Testing Lab South"; + dir = 8; + network = list("SS13","RD"); + pixel_y = -22 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"cbY" = ( +/obj/structure/closet/crate, +/obj/item/target/syndicate, +/obj/item/target/alien, +/obj/item/target/clown, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"cbZ" = ( +/obj/structure/closet/crate, +/obj/item/target, +/obj/item/target, +/obj/item/target, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"cca" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/power/solar{ + id = "portsolar"; + name = "Port Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/port) +"ccb" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/solar{ + id = "portsolar"; + name = "Port Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/port) +"ccc" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/port) +"ccd" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/aft) +"cce" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance{ + name = "Construction Area Maintenance"; + req_access_txt = "32" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/construction) +"ccf" = ( +/obj/machinery/telecomms/broadcaster/preset_left, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"ccg" = ( +/obj/machinery/message_server, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"cch" = ( +/obj/machinery/telecomms/receiver/preset_left, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"cci" = ( +/obj/structure/table, +/obj/item/device/multitool, +/turf/open/floor/plasteel/yellow/side{ + dir = 9 + }, +/area/tcommsat/computer) +"ccj" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/clipboard, +/obj/item/weapon/lighter, +/obj/item/clothing/glasses/meson{ + pixel_y = 4 + }, +/obj/item/weapon/stamp/ce, +/obj/item/weapon/stock_parts/cell/high/plus, +/turf/open/floor/plasteel/neutral{ + dir = 2 + }, +/area/engine/chiefs_office) +"cck" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/neutral{ + dir = 2 + }, +/area/engine/chiefs_office) +"ccl" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral{ + dir = 2 + }, +/area/engine/chiefs_office) +"ccm" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/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{ + d1 = 4; + d2 = 8; + 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/asmaint2) +"ccq" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + 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/asmaint2) +"ccr" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"ccs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cct" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"ccu" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"ccv" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/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/atmos) +"ccy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/atmos) +"ccz" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "N2 to Pure"; + on = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"ccA" = ( +/obj/machinery/computer/atmos_control/tank{ + frequency = 1441; + input_tag = "co2_in"; + name = "Carbon Dioxide Supply Control"; + output_tag = "co2_out"; + sensors = list("co2_sensor" = "Tank") + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/atmos) +"ccB" = ( +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, +/turf/open/floor/engine/co2, +/area/atmos) +"ccC" = ( +/obj/machinery/air_sensor{ + frequency = 1441; + id_tag = "co2_sensor" + }, +/turf/open/floor/engine/co2, +/area/atmos) +"ccD" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/engine/co2, +/area/atmos) +"ccE" = ( +/obj/structure/sign/nosmoking_2{ + pixel_x = 0; + pixel_y = 28 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"ccF" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"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/asmaint) +"ccH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"ccI" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"ccJ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"ccK" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"ccL" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"ccM" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"ccN" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"ccO" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"ccP" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"ccQ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"ccR" = ( +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/plasteel/bot{ + dir = 2 + }, +/area/toxins/misc_lab) +"ccS" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/misc_lab) +"ccT" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/misc_lab) +"ccU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/maintenance/asmaint2) +"ccV" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"ccW" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"ccX" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/port) +"ccY" = ( +/obj/structure/table, +/obj/item/weapon/kitchen/rollingpin, +/obj/item/weapon/reagent_containers/food/condiment/enzyme, +/obj/item/weapon/reagent_containers/food/condiment/sugar, +/turf/open/floor/plating, +/area/maintenance/aft) +"ccZ" = ( +/obj/structure/chair/stool, +/turf/open/floor/plating, +/area/maintenance/aft) +"cda" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/aft) +"cdb" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating, +/area/maintenance/aft) +"cdc" = ( +/obj/machinery/telecomms/bus/preset_two, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"cdd" = ( +/obj/machinery/telecomms/server/presets/supply, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"cde" = ( +/obj/machinery/telecomms/processor/preset_one, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"cdf" = ( +/obj/machinery/telecomms/server/presets/medical, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"cdg" = ( +/obj/machinery/computer/telecomms/monitor{ + network = "tcommsat" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/tcommsat/computer) +"cdh" = ( +/obj/structure/disposalpipe/sortjunction{ + dir = 8; + icon_state = "pipe-j2s"; + sortType = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"cdi" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cdj" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cdk" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/modular_computer/console/preset/engineering, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cdl" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/carpet, +/area/chapel/main) +"cdm" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel/neutral{ + dir = 2 + }, +/area/engine/chiefs_office) +"cdn" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cdo" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/structure/closet/radiation, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cdp" = ( +/obj/effect/landmark{ + name = "lightsout" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cdq" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/tinted/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cdr" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cds" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Science Maintenance APC"; + pixel_x = -25 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 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/asmaint2) +"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/asmaint2) +"cdv" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cdw" = ( +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/turf/open/floor/plasteel, +/area/atmos) +"cdx" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible, +/turf/open/floor/plasteel, +/area/atmos) +"cdy" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/atmos) +"cdz" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "O2 to Pure"; + on = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"cdA" = ( +/obj/machinery/atmospherics/components/trinary/mixer{ + dir = 4; + node1_concentration = 0.8; + node2_concentration = 0.2; + on = 1; + pixel_x = 0; + pixel_y = 0; + target_pressure = 4500 + }, +/turf/open/floor/plasteel, +/area/atmos) +"cdB" = ( +/obj/machinery/atmospherics/components/trinary/filter{ + dir = 1; + filter_type = "co2"; + on = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"cdC" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 6 + }, +/area/atmos) +"cdD" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8; + frequency = 1441; + id = "co2_in"; + pixel_y = 1 + }, +/turf/open/floor/engine/co2, +/area/atmos) +"cdE" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cdF" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cdG" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cdH" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cdI" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cdJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cdK" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cdL" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cdM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/mob/living/simple_animal/mouse, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cdN" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cdO" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cdP" = ( +/obj/machinery/door/window{ + name = "Ready Room"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"cdQ" = ( +/obj/structure/closet/emcloset, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cdR" = ( +/obj/machinery/atmospherics/components/unary/tank/air, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cdS" = ( +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plasteel/bot{ + dir = 2 + }, +/area/toxins/misc_lab) +"cdT" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cdU" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/weapon/pen, +/obj/item/weapon/storage/fancy/cigarettes, +/turf/open/floor/plasteel/neutral{ + dir = 2 + }, +/area/engine/chiefs_office) +"cdV" = ( +/obj/structure/table, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cdW" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Engineering Maintenance APC"; + pixel_x = -25; + pixel_y = 1 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cdX" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"cdY" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cdZ" = ( +/obj/machinery/telecomms/processor/preset_two, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"cea" = ( +/obj/machinery/telecomms/server/presets/service, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"ceb" = ( +/obj/machinery/telecomms/bus/preset_one, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"cec" = ( +/obj/structure/sign/nosmoking_2{ + pixel_y = -32 + }, +/obj/machinery/light, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"ced" = ( +/obj/machinery/telecomms/server/presets/science, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"cee" = ( +/obj/structure/table, +/obj/item/device/radio/off, +/turf/open/floor/plasteel/yellow/side{ + dir = 10 + }, +/area/tcommsat/computer) +"cef" = ( +/obj/structure/window/reinforced/fulltile, +/obj/structure/grille, +/obj/structure/cable, +/turf/open/floor/plating, +/area/tcommsat/computer) +"ceg" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + 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{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/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, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/engine/engineering) +"cek" = ( +/obj/machinery/door/poddoor/preopen{ + id = "Engineering"; + name = "engineering security door" + }, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/engine/engineering) +"cel" = ( +/obj/machinery/door/poddoor/preopen{ + id = "Engineering"; + name = "engineering security door" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/engine/engineering) +"cem" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cen" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ceo" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral{ + dir = 2 + }, +/area/engine/chiefs_office) +"cep" = ( +/obj/structure/sign/securearea, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"ceq" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/engine/chiefs_office) +"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) +"ceu" = ( +/obj/structure/grille, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/engine/engineering) +"cev" = ( +/obj/structure/grille, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/window/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/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; + network = list("SS13") + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel, +/area/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/atmos) +"ceA" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 9 + }, +/turf/open/floor/plating, +/area/atmos) +"ceB" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/atmos) +"ceC" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"ceD" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating/warnplate, +/area/maintenance/asmaint) +"ceE" = ( +/obj/structure/sign/fire{ + pixel_x = 0; + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"ceF" = ( +/obj/structure/closet/emcloset, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"ceG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"ceH" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/maintenance/asmaint) +"ceI" = ( +/obj/structure/sign/biohazard, +/turf/closed/wall, +/area/maintenance/asmaint) +"ceJ" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/maintenance/asmaint) +"ceK" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/closet/l3closet, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"ceL" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"ceM" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"ceN" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"ceO" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"ceP" = ( +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/plasteel/bot{ + dir = 2 + }, +/area/toxins/misc_lab) +"ceQ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"ceR" = ( +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"ceS" = ( +/obj/item/stack/sheet/cardboard, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"ceT" = ( +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"ceU" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = -32 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"ceV" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"ceW" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/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/medical/research{ + name = "Research Division" + }) +"ceY" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/aft) +"ceZ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_engineering{ + name = "Power Storage"; + req_access_txt = "11"; + req_one_access_txt = "0" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cfa" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/storage/belt/utility, +/obj/item/weapon/wrench, +/obj/item/weapon/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/engine/chiefs_office) +"cfc" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id = "Engineering"; + name = "engineering security door" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/engine/chiefs_office) +"cfd" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/engine/engineering) +"cfe" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'RADIOACTIVE AREA'"; + icon_state = "radiation"; + name = "RADIOACTIVE AREA"; + pixel_x = -32; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/sign/securearea{ + pixel_x = 32; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"cff" = ( +/obj/machinery/vending/tool, +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/engine/engineering) +"cfg" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + 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{ + dir = 2; + filter_type = "n2"; + on = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"cfj" = ( +/turf/closed/wall, +/area/maintenance/incinerator) +"cfk" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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/incinerator) +"cfl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/maintenance/incinerator) +"cfm" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/item/toy/minimeteor, +/obj/item/weapon/poster/contraband, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cfn" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/rack{ + dir = 1 + }, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/weapon/reagent_containers/food/snacks/donkpocket, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cfo" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/roller, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cfp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/item/weapon/c_tube, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cfq" = ( +/obj/structure/mopbucket, +/obj/item/weapon/caution, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cfr" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + external_pressure_bound = 140; + on = 1; + pressure_checks = 0 + }, +/obj/machinery/camera{ + c_tag = "Xenobiology Kill Room"; + dir = 4; + network = list("SS13","RD") + }, +/turf/open/floor/bluegrid{ + name = "Killroom Floor"; + initial_gas_mix = "n2=500;TEMP=80" + }, +/area/toxins/xenobiology) +"cfs" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Air Supply Maintenance"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cft" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Testing Lab Maintenance"; + req_access_txt = "47" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/toxins/misc_lab) +"cfu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/toxins/misc_lab) +"cfv" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Firefighting equipment"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cfw" = ( +/turf/closed/wall/r_wall, +/area/maintenance/portsolar) +"cfx" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating/airless, +/area/maintenance/portsolar) +"cfy" = ( +/obj/structure/rack, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/suit/hooded/wintercoat, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"cfz" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/engine/engineering) +"cfA" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cfB" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/engine/engineering) +"cfC" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cfD" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/maintenance{ + name = "Engineering Maintenance"; + req_access_txt = "10" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/engine/engineering) +"cfE" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/neutral{ + dir = 2 + }, +/area/engine/chiefs_office) +"cfF" = ( +/obj/machinery/suit_storage_unit/ce, +/turf/open/floor/plasteel/warnwhite{ + dir = 4 + }, +/area/engine/chiefs_office) +"cfG" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cfH" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/keycard_auth{ + pixel_x = 0; + pixel_y = 24 + }, +/turf/open/floor/plasteel/neutral{ + dir = 2 + }, +/area/engine/chiefs_office) +"cfI" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/engine/engineering) +"cfJ" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cfK" = ( +/obj/structure/sign/securearea, +/turf/closed/wall, +/area/engine/engineering) +"cfL" = ( +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cfM" = ( +/obj/machinery/door/airlock/engineering{ + cyclelinkeddir = 2; + 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/atmos) +"cfO" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/plasteel, +/area/atmos) +"cfP" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"cfQ" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plasteel, +/area/atmos) +"cfR" = ( +/obj/machinery/atmospherics/components/trinary/filter{ + dir = 4; + filter_type = "o2"; + on = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"cfS" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4; + initialize_directions = 12 + }, +/turf/open/floor/plasteel, +/area/atmos) +"cfT" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/atmos) +"cfU" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/incinerator) +"cfV" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cfW" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cfX" = ( +/obj/machinery/power/apc{ + dir = 2; + name = "Incinerator APC"; + pixel_x = 0; + pixel_y = -24 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/floor/plating, +/area/maintenance/incinerator) +"cfY" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/maintenance/incinerator) +"cfZ" = ( +/obj/machinery/light_switch{ + pixel_x = 0; + pixel_y = 26 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"cga" = ( +/obj/machinery/power/smes{ + capacity = 9e+006; + charge = 10000 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/effect/decal/cleanable/cobweb{ + icon_state = "cobweb2" + }, +/turf/open/floor/plating, +/area/maintenance/incinerator) +"cgb" = ( +/obj/machinery/disposal/bin, +/obj/structure/sign/deathsposal{ + pixel_x = 0; + pixel_y = 32 + }, +/obj/structure/disposalpipe/trunk, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/incinerator) +"cgc" = ( +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/asmaint) +"cgd" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cge" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cgf" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/grille/broken, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cgg" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cgh" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cgi" = ( +/turf/open/floor/bluegrid{ + name = "Killroom Floor"; + initial_gas_mix = "n2=500;TEMP=80" + }, +/area/toxins/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/asmaint) +"cgk" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/sign/biohazard, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"cgl" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + external_pressure_bound = 120; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/bluegrid{ + name = "Killroom Floor"; + initial_gas_mix = "n2=500;TEMP=80" + }, +/area/toxins/xenobiology) +"cgm" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cgn" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + target_temperature = 80; + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"cgo" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cgp" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cgq" = ( +/obj/machinery/space_heater, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cgr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/asmaint2) +"cgs" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cgt" = ( +/obj/structure/sign/securearea{ + pixel_y = 32 + }, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cgu" = ( +/obj/structure/rack{ + dir = 1 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cgv" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + 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/effect/landmark/start{ + name = "Station Engineer" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cgy" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/chair/stool, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cgz" = ( +/obj/structure/cable, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/port) +"cgA" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = -32; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/maintenance/portsolar) +"cgB" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/power/smes, +/turf/open/floor/plating, +/area/maintenance/portsolar) +"cgC" = ( +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/portsolar) +"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/aft) +"cgE" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE"; + pixel_y = 0 + }, +/turf/closed/wall/r_wall, +/area/maintenance/portsolar) +"cgF" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cgG" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cgH" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cgI" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/weapon/pen, +/obj/item/weapon/storage/firstaid/fire, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cgJ" = ( +/obj/structure/closet/radiation, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cgK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cgL" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Singularity"; + name = "radiation shutters" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/bot{ + dir = 2 + }, +/area/engine/engineering) +"cgM" = ( +/obj/machinery/computer/atmos_alert, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Chief Engineer's Desk"; + departmentType = 3; + name = "Chief Engineer RC"; + pixel_x = -32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/neutral{ + dir = 2 + }, +/area/engine/chiefs_office) +"cgN" = ( +/obj/structure/closet/radiation, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cgO" = ( +/turf/open/floor/plasteel/neutral{ + dir = 2 + }, +/area/engine/chiefs_office) +"cgP" = ( +/obj/structure/table, +/obj/item/device/flashlight{ + pixel_y = 5 + }, +/obj/item/clothing/ears/earmuffs{ + pixel_x = -5; + pixel_y = 6 + }, +/obj/item/weapon/airlock_painter, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cgQ" = ( +/obj/machinery/camera{ + c_tag = "Engineering East"; + dir = 8; + network = list("SS13"); + pixel_x = 0; + pixel_y = 0 + }, +/obj/structure/closet/wardrobe/engineering_yellow, +/turf/open/floor/plasteel/yellow/corner{ + dir = 4 + }, +/area/engine/engineering) +"cgR" = ( +/turf/open/floor/plasteel, +/area/engine/engineering) +"cgS" = ( +/obj/structure/grille, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/engine/chiefs_office) +"cgT" = ( +/obj/machinery/door/airlock/engineering{ + cyclelinkeddir = 8; + name = "SMES Room"; + req_access_txt = "32" + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/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{ + frequency = 1441; + input_tag = "n2_in"; + name = "Nitrogen Supply Control"; + output_tag = "n2_out"; + sensors = list("n2_sensor" = "Tank") + }, +/turf/open/floor/plasteel/red/side, +/area/atmos) +"cgW" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/atmos) +"cgX" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel, +/area/atmos) +"cgY" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "N2 Outlet Pump"; + on = 1 + }, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/atmos) +"cgZ" = ( +/obj/machinery/computer/atmos_control/tank{ + frequency = 1441; + input_tag = "o2_in"; + name = "Oxygen Supply Control"; + output_tag = "o2_out"; + sensors = list("o2_sensor" = "Tank") + }, +/turf/open/floor/plasteel/blue/side{ + dir = 0 + }, +/area/atmos) +"cha" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/plasteel/blue/side{ + dir = 10 + }, +/area/atmos) +"chb" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "O2 Outlet Pump"; + on = 1 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 6 + }, +/area/atmos) +"chc" = ( +/obj/machinery/computer/atmos_control/tank{ + frequency = 1441; + input_tag = "air_in"; + name = "Mixed Air Supply Control"; + output_tag = "air_out"; + sensors = list("air_sensor" = "Tank") + }, +/turf/open/floor/plasteel/arrival, +/area/atmos) +"chd" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plasteel/arrival{ + dir = 10 + }, +/area/atmos) +"che" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 4; + name = "Atmospherics External Airlock"; + req_access_txt = "24" + }, +/turf/open/floor/plating, +/area/atmos) +"chf" = ( +/obj/machinery/camera{ + c_tag = "Atmospherics South East"; + dir = 1 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Air Outlet Pump"; + on = 1 + }, +/turf/open/floor/plasteel/arrival{ + dir = 6 + }, +/area/atmos) +"chg" = ( +/turf/open/floor/plating, +/area/atmos) +"chh" = ( +/obj/machinery/atmospherics/components/unary/tank/toxins{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"chi" = ( +/obj/machinery/atmospherics/pipe/manifold4w/general{ + level = 2 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"chj" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "plasma tank pump" + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"chk" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/closed/wall, +/area/maintenance/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/incinerator) +"chm" = ( +/obj/machinery/power/terminal{ + icon_state = "term"; + dir = 1 + }, +/obj/machinery/airalarm{ + desc = "This particular atmos control unit appears to have no access restrictions."; + dir = 8; + icon_state = "alarm0"; + locked = 0; + name = "all-access air alarm"; + pixel_x = 24; + req_access = "0"; + req_one_access = "0" + }, +/obj/structure/cable/yellow{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"chn" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"cho" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/turf/open/floor/bluegrid{ + name = "Killroom Floor"; + initial_gas_mix = "n2=500;TEMP=80" + }, +/area/toxins/xenobiology) +"chp" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/closed/wall, +/area/maintenance/asmaint) +"chq" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/bluegrid{ + name = "Killroom Floor"; + initial_gas_mix = "n2=500;TEMP=80" + }, +/area/toxins/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/toxins/xenobiology) +"chs" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/turf/open/floor/bluegrid{ + name = "Killroom Floor"; + initial_gas_mix = "n2=500;TEMP=80" + }, +/area/toxins/xenobiology) +"cht" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"chu" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"chv" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"chw" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"chx" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"chy" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"chz" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"chA" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"chB" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + 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{ + dir = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"chD" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/engineering) +"chE" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"chF" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/wiki/engineering_hacking{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/book/manual/wiki/engineering_construction, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"chG" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/clothing/gloves/color/black, +/obj/item/weapon/extinguisher{ + pixel_x = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"chH" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"chI" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/port) +"chJ" = ( +/obj/machinery/power/tracker, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/port) +"chK" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/port) +"chL" = ( +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/port) +"chM" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/port) +"chN" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/portsolar) +"chO" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 4; + name = "Solar Maintenance"; + req_access = null; + req_access_txt = "10; 13" + }, +/turf/open/floor/plating, +/area/maintenance/portsolar) +"chP" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/portsolar) +"chQ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/portsolar) +"chR" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/portsolar) +"chS" = ( +/obj/machinery/door/airlock/engineering{ + name = "Aft Port Solar Access"; + req_access_txt = "10" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/portsolar) +"chT" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"chU" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/mob/living/simple_animal/mouse, +/turf/open/floor/plating, +/area/maintenance/aft) +"chV" = ( +/turf/open/floor/plating/warnplate{ + dir = 9 + }, +/area/engine/engineering) +"chW" = ( +/obj/machinery/camera{ + c_tag = "Engineering Center"; + dir = 2; + pixel_x = 23 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/engine/engineering) +"chX" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/engine/engineering) +"chY" = ( +/obj/machinery/shieldgen, +/turf/open/floor/plating, +/area/engine/engineering) +"chZ" = ( +/obj/machinery/the_singularitygen{ + anchored = 0 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cia" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"cib" = ( +/obj/machinery/power/apc{ + cell_type = 15000; + dir = 1; + name = "Engineering APC"; + pixel_x = 0; + pixel_y = 25 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"cic" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/table, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"cid" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"cie" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"cif" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/table, +/obj/item/weapon/tank/internals/emergency_oxygen/engi, +/obj/item/clothing/mask/breath, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"cig" = ( +/turf/closed/wall, +/area/engine/engineering) +"cih" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"cii" = ( +/turf/open/floor/plating/warnplate{ + dir = 5 + }, +/area/engine/engineering) +"cij" = ( +/obj/machinery/computer/station_alert, +/obj/item/device/radio/intercom{ + broadcasting = 0; + name = "Station Intercom (General)"; + pixel_y = 20 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cik" = ( +/obj/machinery/computer/station_alert, +/obj/machinery/button/door{ + desc = "A remote control-switch for the engineering security doors."; + id = "Engineering"; + name = "Engineering Lockdown"; + pixel_x = -24; + pixel_y = -10; + req_access_txt = "10" + }, +/obj/machinery/button/door{ + desc = "A remote control-switch for secure storage."; + id = "Secure Storage"; + name = "Engineering Secure Storage"; + pixel_x = -24; + pixel_y = 0; + req_access_txt = "11" + }, +/obj/machinery/button/door{ + id = "atmos"; + name = "Atmospherics Lockdown"; + pixel_x = -24; + pixel_y = 10; + req_access_txt = "24" + }, +/turf/open/floor/plasteel/neutral{ + dir = 2 + }, +/area/engine/chiefs_office) +"cil" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/clothing/gloves/color/yellow, +/obj/item/weapon/storage/belt/utility, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cim" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Chief Engineer" + }, +/turf/open/floor/plasteel/neutral{ + dir = 2 + }, +/area/engine/chiefs_office) +"cin" = ( +/obj/structure/closet/secure_closet/engineering_chief{ + req_access_txt = "0" + }, +/turf/open/floor/plasteel/neutral{ + dir = 2 + }, +/area/engine/chiefs_office) +"cio" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral{ + dir = 2 + }, +/area/engine/chiefs_office) +"cip" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ciq" = ( +/obj/structure/grille, +/obj/structure/cable, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/engine/chiefs_office) +"cir" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/wiki/engineering_guide, +/obj/item/weapon/book/manual/engineering_particle_accelerator{ + pixel_y = 6 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cis" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cit" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/closed/wall/r_wall, +/area/atmos) +"ciu" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/atmos) +"civ" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/atmos) +"ciw" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/atmos) +"cix" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/closed/wall/r_wall, +/area/atmos) +"ciy" = ( +/obj/structure/sign/nosmoking_2{ + 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/incinerator) +"ciz" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"ciA" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "input port pump" + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"ciB" = ( +/obj/effect/decal/cleanable/cobweb, +/obj/structure/reagent_dispensers/watertank, +/obj/item/weapon/extinguisher, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/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/nosmoking_2{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"ciE" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"ciF" = ( +/obj/structure/table, +/obj/item/weapon/cartridge/medical, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"ciG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/closet/firecloset/full, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"ciH" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/item/latexballon, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"ciI" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"ciJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/asmaint2) +"ciK" = ( +/obj/structure/rack, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"ciL" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/tinted/fulltile, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"ciM" = ( +/obj/machinery/power/compressor{ + comp_id = "incineratorturbine"; + dir = 1; + luminosity = 2 + }, +/obj/structure/cable/yellow, +/obj/structure/cable/yellow{ + d2 = 2; + icon_state = "0-2" + }, +/obj/machinery/camera{ + c_tag = "Turbine Chamber"; + dir = 4; + network = list("Turbine") + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/incinerator) +"ciN" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ciP" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/port) +"ciQ" = ( +/obj/machinery/power/solar_control{ + id = "portsolar"; + name = "Aft Port Solar Control"; + track = 0 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/maintenance/portsolar) +"ciR" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "Aft Port Solar APC"; + pixel_x = 23; + pixel_y = 2 + }, +/obj/machinery/camera{ + c_tag = "Aft Port Solar Control"; + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/maintenance/portsolar) +"ciS" = ( +/turf/open/floor/plating, +/area/maintenance/portsolar) +"ciT" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/maintenance/aft) +"ciU" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"ciV" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ciW" = ( +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"ciX" = ( +/obj/structure/closet/crate, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/weapon/electronics/airlock, +/obj/item/weapon/electronics/airlock, +/obj/item/weapon/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{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cjb" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cjc" = ( +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/engineering) +"cjd" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/sign/nosmoking_2{ + pixel_y = 32 + }, +/obj/machinery/camera{ + c_tag = "Engineering Power Storage" + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cje" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cjf" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/effect/landmark/start{ + name = "Station Engineer" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cjg" = ( +/obj/machinery/camera{ + c_tag = "Chief Engineer's Office"; + dir = 4; + network = list("SS13") + }, +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/obj/machinery/computer/card/minor/ce, +/turf/open/floor/plasteel/neutral{ + dir = 2 + }, +/area/engine/chiefs_office) +"cjh" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cji" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cjj" = ( +/obj/item/device/radio/intercom{ + dir = 4; + name = "Station Intercom (General)"; + pixel_x = 27 + }, +/obj/structure/filingcabinet/chestdrawer, +/mob/living/simple_animal/parrot/Poly, +/turf/open/floor/plasteel/neutral{ + dir = 2 + }, +/area/engine/chiefs_office) +"cjk" = ( +/obj/structure/sign/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; + network = list("SS13") + }, +/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/weapon/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/weapon/storage/toolbox/emergency, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"cjq" = ( +/obj/machinery/atmospherics/components/binary/valve{ + name = "Mix to Space" + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"cjr" = ( +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"cjs" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"cjt" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"cju" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Incinerator to Output"; + on = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"cjv" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"cjw" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/asmaint) +"cjx" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/incinerator) +"cjy" = ( +/obj/structure/disposalpipe/segment, +/obj/item/weapon/shard, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cjz" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/closed/wall, +/area/maintenance/asmaint) +"cjA" = ( +/obj/structure/disposalpipe/segment, +/obj/item/weapon/cigbutt/roach, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cjB" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/obj/structure/table, +/obj/item/weapon/folder/white, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"cjC" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cjD" = ( +/turf/closed/wall/r_wall, +/area/maintenance/starboardsolar) +"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/asmaint2) +"cjF" = ( +/obj/machinery/door/airlock/engineering{ + name = "Aft Starboard Solar Access"; + req_access_txt = "10" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/maintenance/starboardsolar) +"cjG" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE"; + pixel_y = 0 + }, +/turf/closed/wall/r_wall, +/area/maintenance/starboardsolar) +"cjH" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/port) +"cjI" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/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/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; + network = list("SS13") + }, +/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{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cjR" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 2; + name = "Engineering External Access"; + req_access = null; + 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{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cjU" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral{ + dir = 2 + }, +/area/engine/chiefs_office) +"cjV" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cjW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/toxins/misc_lab) +"cjX" = ( +/obj/item/weapon/cartridge/engineering{ + pixel_x = 4; + pixel_y = 5 + }, +/obj/item/weapon/cartridge/engineering{ + pixel_x = -3; + pixel_y = 2 + }, +/obj/item/weapon/cartridge/engineering{ + pixel_x = 3 + }, +/obj/structure/table/reinforced, +/obj/machinery/light_switch{ + pixel_x = 27 + }, +/obj/item/weapon/cartridge/atmos, +/turf/open/floor/plasteel/neutral{ + dir = 2 + }, +/area/engine/chiefs_office) +"cjY" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral{ + dir = 2 + }, +/area/engine/chiefs_office) +"cjZ" = ( +/obj/structure/sign/securearea, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"cka" = ( +/obj/machinery/door/poddoor/preopen{ + id = "testlab"; + name = "test chamber blast door" + }, +/obj/machinery/door/airlock/glass_research{ + cyclelinkeddir = 4; + name = "Test Chamber"; + req_access_txt = "47" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/toxins/misc_lab) +"ckb" = ( +/obj/machinery/atmospherics/pipe/simple, +/obj/structure/grille, +/obj/machinery/meter, +/turf/closed/wall/r_wall, +/area/atmos) +"ckc" = ( +/obj/machinery/atmospherics/pipe/simple, +/obj/structure/grille, +/obj/machinery/meter{ + name = "Mixed Air Tank In" + }, +/turf/closed/wall/r_wall, +/area/atmos) +"ckd" = ( +/obj/machinery/atmospherics/pipe/simple, +/obj/structure/grille, +/obj/machinery/meter{ + name = "Mixed Air Tank Out" + }, +/turf/closed/wall/r_wall, +/area/atmos) +"cke" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"ckf" = ( +/obj/structure/grille, +/obj/structure/disposalpipe/segment, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/incinerator) +"ckg" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"ckh" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Mix to MiniSat" + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"cki" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"ckj" = ( +/obj/item/weapon/cigbutt, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"ckk" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4; + name = "Incinerator to Space" + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"ckl" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"ckm" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Biohazard Disposals"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"ckn" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"cko" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/maintenance/asmaint2) +"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/asmaint2) +"ckq" = ( +/obj/structure/shuttle/engine/propulsion/burst{ + tag = "icon-propulsion (WEST)"; + icon_state = "propulsion"; + dir = 8 + }, +/turf/closed/wall/mineral/titanium, +/area/shuttle/pod_2) +"ckr" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cks" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/maintenance/starboardsolar) +"ckt" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Aft Starboard Solar APC"; + pixel_x = -26; + pixel_y = 3 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboardsolar) +"cku" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/smes, +/turf/open/floor/plating, +/area/maintenance/starboardsolar) +"ckv" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"ckw" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/black, +/area/engine/engine_smes) +"ckx" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/engine/engine_smes) +"cky" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/black, +/area/engine/engine_smes) +"ckz" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/black, +/area/engine/engine_smes) +"ckA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/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/structure/table, +/obj/item/weapon/electronics/airlock, +/obj/item/weapon/electronics/airlock, +/obj/item/weapon/electronics/apc, +/obj/item/weapon/stock_parts/cell/high/plus, +/obj/item/weapon/stock_parts/cell/high/plus, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ckE" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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/structure/table, +/obj/item/weapon/book/manual/engineering_singularity_safety, +/obj/item/clothing/gloves/color/yellow, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ckH" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ckI" = ( +/obj/structure/tank_dispenser, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ckJ" = ( +/obj/structure/closet/crate{ + name = "solar pack crate" + }, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/weapon/circuitboard/computer/solar_control, +/obj/item/weapon/electronics/tracker, +/obj/item/weapon/paper/solar, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ckK" = ( +/obj/machinery/suit_storage_unit/engine, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ckL" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/engine/chiefs_office) +"ckM" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/toxins/misc_lab) +"ckN" = ( +/obj/machinery/door/airlock/glass_research{ + cyclelinkeddir = 8; + name = "Test Chamber"; + req_access_txt = "47" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/toxins/misc_lab) +"ckO" = ( +/obj/structure/grille, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/engine/chiefs_office) +"ckP" = ( +/obj/machinery/door/airlock/glass_command{ + name = "Chief Engineer"; + req_access_txt = "56" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/neutral{ + dir = 2 + }, +/area/engine/chiefs_office) +"ckQ" = ( +/obj/structure/closet/cardboard, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"ckR" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE" + }, +/turf/closed/wall/r_wall, +/area/engine/chiefs_office) +"ckS" = ( +/obj/structure/closet/cardboard, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"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{ + frequency = 1441; + id_tag = "n2_sensor" + }, +/turf/open/floor/engine/n2, +/area/atmos) +"ckV" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 1; + frequency = 1441; + id = "n2_in" + }, +/turf/open/floor/engine/n2, +/area/atmos) +"ckW" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 0; + frequency = 1441; + id_tag = "n2_out"; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine/n2, +/area/atmos) +"ckX" = ( +/obj/machinery/air_sensor{ + frequency = 1441; + id_tag = "o2_sensor" + }, +/turf/open/floor/engine/o2, +/area/atmos) +"ckY" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 1; + frequency = 1441; + id = "o2_in" + }, +/turf/open/floor/engine/o2, +/area/atmos) +"ckZ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 0; + frequency = 1441; + id_tag = "o2_out"; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine/o2, +/area/atmos) +"cla" = ( +/obj/machinery/air_sensor{ + frequency = 1441; + id_tag = "air_sensor" + }, +/turf/open/floor/engine/air, +/area/atmos) +"clb" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 1; + frequency = 1441; + id = "air_in" + }, +/turf/open/floor/engine/air, +/area/atmos) +"clc" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume{ + dir = 1; + external_pressure_bound = 0; + frequency = 1441; + icon_state = "vent_map"; + id_tag = "air_out"; + internal_pressure_bound = 2000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine/air, +/area/atmos) +"cld" = ( +/obj/effect/landmark{ + name = "blobstart" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Mix to Incinerator"; + on = 0 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"cle" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 2 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"clf" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"clg" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/weapon/pen, +/turf/open/floor/plating, +/area/maintenance/incinerator) +"clh" = ( +/obj/machinery/light/small, +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = -31 + }, +/obj/machinery/computer/turbine_computer{ + id = "incineratorturbine" + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"cli" = ( +/obj/machinery/button/door{ + id = "auxincineratorvent"; + name = "Auxiliary Vent Control"; + pixel_x = 6; + pixel_y = -24; + req_access_txt = "32" + }, +/obj/machinery/button/door{ + id = "turbinevent"; + name = "Turbine Vent Control"; + pixel_x = -6; + pixel_y = -24; + req_access_txt = "32" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"clj" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"clk" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cll" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"clm" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold/general/hidden{ + icon_state = "manifold"; + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cln" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"clo" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"clp" = ( +/obj/machinery/door/airlock/external{ + name = "Solar Maintenance"; + req_access = null; + 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/asmaint2) +"clr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"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/asmaint2) +"clt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"clu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"clv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/asmaint2) +"clw" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"clx" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/starboardsolar) +"cly" = ( +/obj/structure/chair/stool, +/obj/machinery/camera{ + c_tag = "Aft Starboard Solar Control"; + dir = 4; + network = list("SS13") + }, +/turf/open/floor/plating, +/area/maintenance/starboardsolar) +"clz" = ( +/obj/machinery/power/terminal{ + icon_state = "term"; + dir = 1 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboardsolar) +"clA" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/maintenance/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{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/area/engine/engine_smes) +"clD" = ( +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/engine_smes) +"clE" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/smes/engineering, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/engine/engine_smes) +"clF" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/area/engine/engine_smes) +"clG" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/power/smes/engineering, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/engine/engine_smes) +"clH" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/closed/wall, +/area/engine/engineering) +"clI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side, +/area/security/main) +"clJ" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/engine/engineering) +"clK" = ( +/obj/item/device/radio/intercom{ + desc = "Talk through this. Evilly"; + freerange = 1; + frequency = 1213; + name = "Syndicate Intercom"; + pixel_y = -32; + subspace_transmission = 1; + syndie = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"clL" = ( +/obj/structure/closet/syndicate/personal, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"clM" = ( +/obj/structure/table, +/obj/item/weapon/crowbar/large, +/obj/item/weapon/storage/box/lights/mixed, +/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" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) +"clP" = ( +/turf/open/floor/plasteel/yellow/corner{ + dir = 4 + }, +/area/engine/engineering) +"clQ" = ( +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/engine/engineering) +"clR" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) +"clS" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/red/side, +/area/security/main) +"clT" = ( +/obj/machinery/portable_atmospherics/canister/nitrogen, +/turf/open/floor/engine/n2, +/area/atmos) +"clU" = ( +/turf/open/floor/engine/n2, +/area/atmos) +"clV" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/engine/o2, +/area/atmos) +"clW" = ( +/turf/open/floor/engine/o2, +/area/atmos) +"clX" = ( +/obj/effect/landmark/event_spawn, +/obj/effect/landmark/xmastree, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"clY" = ( +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/engine/air, +/area/atmos) +"clZ" = ( +/turf/open/floor/engine/air, +/area/atmos) +"cma" = ( +/obj/machinery/door/window{ + name = "Cockpit"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"cmb" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/incinerator) +"cmc" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 2 + }, +/turf/closed/wall/r_wall, +/area/maintenance/incinerator) +"cmd" = ( +/turf/closed/wall/r_wall, +/area/maintenance/incinerator) +"cme" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/closed/wall/r_wall, +/area/maintenance/incinerator) +"cmf" = ( +/obj/machinery/door/airlock/glass{ + autoclose = 0; + frequency = 1449; + heat_proof = 1; + icon_state = "door_locked"; + id_tag = "incinerator_airlock_interior"; + locked = 1; + name = "Turbine Interior Airlock"; + req_access_txt = "32" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/maintenance/incinerator) +"cmg" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 9 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cmh" = ( +/obj/structure/disposalpipe/junction{ + dir = 2; + icon_state = "pipe-y" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cmi" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cmj" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cmk" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cml" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"cmm" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"cmn" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cmo" = ( +/obj/structure/rack{ + dir = 1 + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cmp" = ( +/obj/machinery/porta_turret/syndicate{ + dir = 4 + }, +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/syndicate) +"cmq" = ( +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/asmaint2) +"cmr" = ( +/obj/structure/closet/toolcloset, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"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/asmaint2) +"cmt" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cmu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/closed/wall, +/area/maintenance/asmaint2) +"cmv" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/starboardsolar) +"cmw" = ( +/obj/machinery/power/solar_control{ + id = "starboardsolar"; + name = "Aft Starboard Solar Control"; + track = 0 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboardsolar) +"cmx" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = -32 + }, +/turf/open/floor/plating, +/area/maintenance/starboardsolar) +"cmy" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/area/engine/engine_smes) +"cmz" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/black, +/area/engine/engine_smes) +"cmA" = ( +/obj/machinery/power/terminal{ + icon_state = "term"; + dir = 1 + }, +/obj/structure/cable/yellow{ + d2 = 4; + icon_state = "0-4" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/engine_smes) +"cmB" = ( +/obj/machinery/power/terminal{ + icon_state = "term"; + dir = 1 + }, +/obj/structure/cable/yellow{ + d2 = 8; + 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{ + opacity = 1 + }, +/turf/open/floor/plasteel/bot, +/area/engine/engineering) +"cmE" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) +"cmF" = ( +/obj/structure/closet/secure_closet/engineering_electrical, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) +"cmG" = ( +/obj/structure/closet/secure_closet/engineering_welding, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 9 + }, +/area/engine/engineering) +"cmH" = ( +/obj/structure/table, +/obj/item/stack/cable_coil, +/obj/item/weapon/crowbar/red, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"cmI" = ( +/obj/machinery/vending/engivend, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) +"cmJ" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/zipties{ + pixel_x = 1; + pixel_y = 2 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"cmK" = ( +/obj/machinery/requests_console{ + announcementConsole = 0; + department = "Engineering"; + departmentType = 4; + name = "Engineering RC"; + pixel_y = 30 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) +"cmL" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) +"cmM" = ( +/obj/machinery/sleeper/syndie{ + dir = 4 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"cmN" = ( +/obj/structure/sign/nosmoking_2{ + pixel_y = 32 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) +"cmO" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"cmP" = ( +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"cmQ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cmR" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cmS" = ( +/obj/structure/table, +/obj/item/stack/medical/ointment, +/obj/item/stack/medical/bruise_pack, +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"cmT" = ( +/obj/machinery/suit_storage_unit/syndicate, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"cmU" = ( +/obj/machinery/light/small, +/turf/open/floor/engine/n2, +/area/atmos) +"cmV" = ( +/obj/machinery/light/small, +/turf/open/floor/engine/o2, +/area/atmos) +"cmW" = ( +/obj/machinery/light/small, +/turf/open/floor/engine/air, +/area/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{ + dir = 2; + on = 1 + }, +/obj/machinery/doorButtons/access_button{ + idDoor = "incinerator_airlock_exterior"; + idSelf = "incinerator_access_control"; + layer = 3.1; + name = "Incinerator airlock control"; + pixel_x = 8; + pixel_y = -24 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/sign/fire{ + pixel_x = -32; + pixel_y = 0 + }, +/turf/open/floor/engine, +/area/maintenance/incinerator) +"cmZ" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + on = 1 + }, +/obj/structure/sign/fire{ + pixel_x = 32; + pixel_y = 0 + }, +/obj/machinery/doorButtons/access_button{ + idSelf = "incinerator_access_control"; + idDoor = "incinerator_airlock_interior"; + name = "Incinerator airlock control"; + pixel_x = -8; + pixel_y = 24 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/engine, +/area/maintenance/incinerator) +"cna" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/maintenance/incinerator) +"cnb" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cnc" = ( +/obj/machinery/light/small, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cnd" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cne" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cnf" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cng" = ( +/obj/machinery/light/small, +/obj/structure/table, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/weapon/clipboard, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cnh" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"cni" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0 + }, +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/syndicate) +"cnj" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/starboardsolar) +"cnk" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 2; + name = "Solar Maintenance"; + req_access = null; + req_access_txt = "10; 13" + }, +/turf/open/floor/plating, +/area/maintenance/starboardsolar) +"cnl" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/port) +"cnm" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/area/engine/engine_smes) +"cnn" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/engine_smes) +"cno" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/smes/engineering, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/engine/engine_smes) +"cnp" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/camera{ + c_tag = "SMES Room"; + dir = 8; + network = list("SS13"); + pixel_x = 0; + pixel_y = 0 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/engine/engine_smes) +"cnq" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 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" + }, +/turf/open/floor/plasteel/delivery, +/area/engine/engineering) +"cns" = ( +/obj/structure/closet/syndicate/nuclear, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"cnt" = ( +/obj/machinery/camera{ + c_tag = "Engineering West"; + dir = 4; + network = list("SS13") + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/engine/engineering) +"cnu" = ( +/obj/structure/table, +/obj/item/device/aicard, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"cnv" = ( +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the singularity chamber."; + dir = 1; + layer = 4; + name = "Singularity Engine Telescreen"; + network = list("Singularity"); + pixel_x = 0; + pixel_y = -30 + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cnw" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cnx" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cny" = ( +/obj/effect/landmark/start{ + name = "Station Engineer" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cnz" = ( +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"cnA" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cnB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/construction) +"cnC" = ( +/obj/machinery/door/airlock/glass{ + autoclose = 0; + frequency = 1449; + heat_proof = 1; + icon_state = "door_locked"; + id_tag = "incinerator_airlock_exterior"; + locked = 1; + name = "Turbine Exterior Airlock"; + req_access_txt = "32" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/maintenance/incinerator) +"cnD" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/closed/wall, +/area/maintenance/asmaint) +"cnE" = ( +/obj/structure/disposalpipe/junction{ + dir = 4; + icon_state = "pipe-j2" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cnF" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 2; + name = "Waste Out"; + on = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cnG" = ( +/obj/structure/closet/emcloset, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cnH" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cnI" = ( +/obj/structure/table, +/obj/item/weapon/c4{ + pixel_x = 2; + pixel_y = -5 + }, +/obj/item/weapon/c4{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/c4{ + pixel_x = 2; + pixel_y = -3 + }, +/obj/item/weapon/c4{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/weapon/c4{ + pixel_x = 3; + pixel_y = 3 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"cnJ" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cnK" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/maintenance/starboardsolar) +"cnL" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/engine/engine_smes) +"cnM" = ( +/obj/machinery/door/window{ + name = "SMES Chamber"; + req_access_txt = "32" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/black, +/area/engine/engine_smes) +"cnN" = ( +/obj/structure/window/reinforced, +/obj/structure/cable/yellow{ + d2 = 4; + icon_state = "0-4" + }, +/obj/machinery/power/terminal{ + icon_state = "term"; + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/engine/engine_smes) +"cnO" = ( +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/black, +/area/engine/engine_smes) +"cnP" = ( +/obj/machinery/power/terminal{ + icon_state = "term"; + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/structure/cable/yellow{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plasteel/black, +/area/engine/engine_smes) +"cnQ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/engine_smes) +"cnR" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + 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{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/camera{ + c_tag = "SMES Access"; + dir = 8; + network = list("SS13"); + pixel_x = 0; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/engine_smes) +"cnT" = ( +/obj/structure/sign/bluecross_2, +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/syndicate) +"cnU" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE"; + pixel_x = -32; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/loadingarea, +/area/engine/engineering) +"cnV" = ( +/obj/structure/bed/roller, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"cnW" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) +"cnX" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + 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{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/sign/nosmoking_2{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cnZ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + 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{ + d1 = 4; + d2 = 8; + 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{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"coc" = ( +/obj/effect/landmark/start{ + name = "Station Engineer" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cod" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/firstaid/fire, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = -3; + pixel_y = -3 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"coe" = ( +/obj/machinery/door/window{ + dir = 4; + name = "EVA Storage"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"cof" = ( +/obj/machinery/door/airlock/external{ + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"cog" = ( +/obj/machinery/door/window{ + base_state = "right"; + dir = 4; + icon_state = "right"; + name = "EVA Storage"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"coh" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/shuttle/syndicate) +"coi" = ( +/obj/structure/rack, +/obj/item/clothing/suit/space/syndicate/black/red, +/obj/item/clothing/head/helmet/space/syndicate/black/red, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"coj" = ( +/obj/item/device/radio/intercom{ + desc = "Talk through this. Evilly"; + freerange = 1; + frequency = 1213; + name = "Syndicate Intercom"; + pixel_x = -32; + subspace_transmission = 1; + syndie = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"cok" = ( +/obj/machinery/recharge_station, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"col" = ( +/obj/machinery/door/window{ + dir = 4; + name = "Infirmary"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"com" = ( +/obj/machinery/door/window{ + base_state = "right"; + dir = 4; + icon_state = "right"; + name = "Infirmary"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"con" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/table, +/obj/item/bodypart/r_arm/robot, +/obj/item/bodypart/l_arm/robot, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"coo" = ( +/obj/structure/table, +/obj/item/weapon/stock_parts/cell/high{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/stock_parts/cell/high, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"cop" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 1; + frequency = 1441; + id = "inc_in" + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/incinerator) +"coq" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 0; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 0; + pressure_checks = 2; + pump_direction = 0 + }, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = -32 + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/incinerator) +"cor" = ( +/obj/machinery/igniter{ + icon_state = "igniter0"; + id = "Incinerator"; + luminosity = 2; + on = 0 + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/incinerator) +"cos" = ( +/obj/machinery/door/poddoor{ + id = "auxincineratorvent"; + name = "Auxiliary Incinerator Vent" + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/incinerator) +"cot" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cou" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cov" = ( +/obj/machinery/power/port_gen/pacman, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/engine/engine_smes) +"cow" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/engine/engine_smes) +"cox" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/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{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/engine/engine_smes) +"coz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/engine/engine_smes) +"coA" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/engine_smes) +"coB" = ( +/obj/machinery/door/airlock/engineering{ + cyclelinkeddir = 4; + name = "SMES Room"; + req_access_txt = "32" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/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{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/engine_smes) +"coD" = ( +/obj/structure/table, +/obj/item/weapon/wrench, +/obj/item/device/assembly/infra, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"coE" = ( +/obj/structure/table, +/obj/item/weapon/screwdriver{ + pixel_y = 9 + }, +/obj/item/device/assembly/voice{ + pixel_y = 3 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"coF" = ( +/obj/structure/table, +/obj/item/weapon/weldingtool/largetank{ + pixel_y = 3 + }, +/obj/item/device/multitool, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"coG" = ( +/obj/structure/table, +/obj/item/device/assembly/signaler, +/obj/item/device/assembly/signaler, +/obj/item/device/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/device/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"coH" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"coI" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"coJ" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"coK" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"coL" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"coM" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"coN" = ( +/obj/machinery/door/window/westright{ + name = "Tool Storage"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"coO" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/syndicate, +/obj/item/weapon/crowbar/red, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"coP" = ( +/obj/machinery/door/window{ + dir = 1; + name = "Surgery"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"coQ" = ( +/obj/structure/table, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/firstaid/brute, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = -3; + pixel_y = -3 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"coR" = ( +/obj/machinery/door/window{ + dir = 8; + name = "Tool Storage"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"coS" = ( +/obj/structure/rack, +/obj/item/weapon/gun/energy/laser{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/gun/energy/laser, +/obj/item/weapon/gun/energy/laser{ + pixel_x = 3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/bot{ + dir = 2 + }, +/area/ai_monitored/security/armory) +"coT" = ( +/obj/item/pipe{ + dir = 4; + icon_state = "mixer"; + name = "gas mixer fitting"; + pipe_type = 14 + }, +/turf/open/floor/engine, +/area/toxins/misc_lab) +"coU" = ( +/obj/structure/table, +/obj/item/weapon/surgicaldrill, +/obj/item/weapon/circular_saw, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"coV" = ( +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/obj/structure/mirror{ + pixel_x = 30 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"coW" = ( +/obj/structure/table, +/obj/item/device/sbeacondrop/bomb{ + pixel_y = 5 + }, +/obj/item/device/sbeacondrop/bomb, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"coX" = ( +/obj/structure/table, +/obj/item/weapon/grenade/syndieminibomb{ + pixel_x = 4; + pixel_y = 2 + }, +/obj/item/weapon/grenade/syndieminibomb{ + pixel_x = -1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"coY" = ( +/obj/machinery/nuclearbomb/syndicate, +/obj/machinery/door/window{ + dir = 1; + name = "Secure Storage"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"coZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cpa" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/engine/engineering) +"cpb" = ( +/obj/structure/closet/emcloset, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cpc" = ( +/obj/structure/shuttle/engine/propulsion/burst{ + dir = 4 + }, +/turf/closed/wall/mineral/titanium, +/area/shuttle/pod_4) +"cpd" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/pod_4) +"cpe" = ( +/obj/docking_port/stationary/random{ + dir = 8; + id = "pod_asteroid2"; + name = "asteroid" + }, +/turf/open/space, +/area/space) +"cpf" = ( +/obj/machinery/telecomms/allinone{ + intercept = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"cpg" = ( +/obj/item/weapon/grenade/barrier{ + pixel_x = 4 + }, +/obj/item/weapon/grenade/barrier, +/obj/item/weapon/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{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard) +"cpj" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/engine_smes) +"cpk" = ( +/turf/open/floor/plasteel/warning/corner{ + dir = 2 + }, +/area/engine/engine_smes) +"cpl" = ( +/turf/open/floor/plasteel, +/area/engine/engine_smes) +"cpm" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/engine/engine_smes) +"cpn" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/warning, +/area/engine/engine_smes) +"cpo" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/engine_smes) +"cpp" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/engine_smes) +"cpq" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE"; + pixel_x = -32; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cpr" = ( +/obj/structure/table, +/obj/item/weapon/cautery, +/obj/item/weapon/scalpel, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"cps" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cpt" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/yellow, +/obj/item/weapon/storage/toolbox/electrical{ + pixel_y = 5 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cpu" = ( +/obj/effect/landmark/start{ + name = "Station Engineer" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cpv" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cpw" = ( +/obj/structure/table, +/obj/item/weapon/retractor, +/obj/item/weapon/hemostat, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"cpx" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4"; + tag = "" + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/engine/engineering) +"cpy" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Singularity"; + name = "radiation shutters" + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/bot{ + dir = 2 + }, +/area/engine/engineering) +"cpz" = ( +/obj/structure/particle_accelerator/end_cap, +/turf/open/floor/plating, +/area/engine/engineering) +"cpA" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/chair/office/dark{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"cpB" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/engine/engineering) +"cpC" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/bridge) +"cpD" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cpE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cpF" = ( +/obj/structure/table/optable, +/obj/item/weapon/surgical_drapes, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"cpG" = ( +/obj/structure/table/optable, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"cpH" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating, +/area/shuttle/syndicate) +"cpI" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 4; + name = "Escape Pod Four"; + req_access = null; + req_access_txt = "0" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cpJ" = ( +/obj/machinery/door/airlock/titanium{ + name = "Escape Pod Airlock" + }, +/obj/docking_port/mobile/pod{ + dir = 4; + id = "pod4"; + name = "escape pod 4"; + port_angle = 180; + preferred_direction = 4 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_4) +"cpK" = ( +/obj/machinery/computer/shuttle/pod{ + pixel_x = 0; + pixel_y = -32; + possible_destinations = "pod_asteroid2"; + shuttleId = "pod2" + }, +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/status_display{ + density = 0; + layer = 3; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_2) +"cpL" = ( +/obj/item/weapon/storage/pod{ + pixel_x = 6; + pixel_y = -28 + }, +/obj/item/device/radio/intercom{ + pixel_x = 0; + pixel_y = 25 + }, +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_2) +"cpM" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/pod_4) +"cpN" = ( +/obj/machinery/power/turbine{ + luminosity = 2 + }, +/obj/structure/cable/yellow, +/turf/open/floor/engine/vacuum, +/area/maintenance/incinerator) +"cpO" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 2; + name = "Incinerator Output Pump"; + on = 1 + }, +/turf/open/space, +/area/maintenance/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/incinerator) +"cpR" = ( +/obj/machinery/door/airlock{ + name = "Observatory Access" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cpS" = ( +/obj/structure/cable, +/obj/machinery/power/apc{ + dir = 2; + name = "SMES room APC"; + pixel_y = -24 + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/engine/engine_smes) +"cpT" = ( +/obj/structure/table, +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -35 + }, +/obj/item/weapon/stock_parts/cell/high/plus, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/engine/engine_smes) +"cpU" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/warning, +/area/engine/engine_smes) +"cpV" = ( +/obj/structure/table, +/obj/machinery/camera{ + c_tag = "Engineering Storage"; + dir = 4; + network = list("SS13") + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cpW" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cpX" = ( +/obj/structure/table, +/obj/item/stack/rods{ + amount = 50 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cpY" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cpZ" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_y = 5 + }, +/obj/item/device/flashlight{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/item/device/flashlight{ + pixel_x = 1; + pixel_y = 5 + }, +/turf/open/floor/plasteel/warning{ + dir = 2 + }, +/area/engine/engineering) +"cqa" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'RADIOACTIVE AREA'"; + icon_state = "radiation"; + name = "RADIOACTIVE AREA"; + pixel_x = 0; + pixel_y = -32 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/warning{ + dir = 2 + }, +/area/engine/engineering) +"cqb" = ( +/obj/item/clothing/glasses/meson, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning{ + dir = 2 + }, +/area/engine/engineering) +"cqc" = ( +/turf/open/floor/plasteel/warning{ + dir = 2 + }, +/area/engine/engineering) +"cqd" = ( +/obj/machinery/button/door{ + id = "Singularity"; + name = "Shutters Control"; + pixel_x = 25; + pixel_y = 0; + req_access_txt = "11" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning{ + dir = 2 + }, +/area/engine/engineering) +"cqe" = ( +/obj/structure/chair/stool, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning{ + dir = 2 + }, +/area/engine/engineering) +"cqf" = ( +/obj/machinery/button/door{ + id = "Singularity"; + name = "Shutters Control"; + pixel_x = -25; + pixel_y = 0; + req_access_txt = "11" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/engine/engineering) +"cqg" = ( +/obj/structure/particle_accelerator/fuel_chamber, +/turf/open/floor/plating, +/area/engine/engineering) +"cqh" = ( +/obj/machinery/particle_accelerator/control_box, +/obj/structure/cable/yellow, +/turf/open/floor/plating, +/area/engine/engineering) +"cqi" = ( +/obj/machinery/button/door{ + id = "Singularity"; + name = "Shutters Control"; + pixel_x = 25; + pixel_y = 0; + req_access_txt = "11" + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/engine/engineering) +"cqj" = ( +/obj/effect/landmark/start{ + name = "Station Engineer" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cqk" = ( +/obj/machinery/button/door{ + id = "Singularity"; + name = "Shutters Control"; + pixel_x = -25; + pixel_y = 0; + req_access_txt = "11" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning{ + dir = 2 + }, +/area/engine/engineering) +"cql" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning{ + dir = 2 + }, +/area/engine/engineering) +"cqm" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/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/warning{ + dir = 2 + }, +/area/engine/engineering) +"cqn" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/aft) +"cqo" = ( +/obj/structure/sign/pods{ + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/engine/engineering) +"cqp" = ( +/obj/machinery/camera{ + c_tag = "Engineering Escape Pod"; + dir = 4; + network = list("SS13") + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cqq" = ( +/obj/machinery/door/airlock/titanium{ + name = "Escape Pod Airlock" + }, +/obj/docking_port/mobile/pod{ + dir = 8; + id = "pod2"; + name = "escape pod 2"; + port_angle = 180 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_2) +"cqr" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 1 + }, +/area/hallway/secondary/entry) +"cqs" = ( +/obj/structure/sign/fire{ + pixel_x = 0; + pixel_y = 0 + }, +/turf/closed/wall/r_wall, +/area/maintenance/incinerator) +"cqt" = ( +/obj/machinery/door/poddoor{ + id = "turbinevent"; + name = "Turbine Vent" + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/incinerator) +"cqu" = ( +/obj/machinery/door/airlock/external{ + name = "External Access"; + req_access = null; + req_access_txt = "13" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cqv" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating, +/area/maintenance/aft) +"cqw" = ( +/obj/structure/table, +/obj/item/stack/sheet/plasteel{ + amount = 10 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/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{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cqz" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cqA" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 2; + name = "Engineering External Access"; + req_access = null; + req_access_txt = "10;13" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cqB" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Singularity"; + name = "radiation shutters" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cqC" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Singularity"; + name = "radiation shutters" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cqD" = ( +/obj/item/stack/cable_coil{ + pixel_x = 3; + pixel_y = -7 + }, +/obj/item/stack/cable_coil{ + pixel_x = 3; + pixel_y = -7 + }, +/obj/item/weapon/crowbar, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/engine/engineering) +"cqE" = ( +/obj/structure/particle_accelerator/power_box, +/turf/open/floor/plating, +/area/engine/engineering) +"cqF" = ( +/obj/structure/chair/stool, +/turf/open/floor/plating, +/area/engine/engineering) +"cqG" = ( +/obj/structure/rack, +/obj/item/weapon/storage/box/rubbershot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/weapon/storage/box/rubbershot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/rubbershot, +/obj/item/weapon/storage/box/rubbershot, +/obj/item/weapon/storage/box/rubbershot{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/weapon/storage/box/rubbershot{ + pixel_x = 3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/security/armory) +"cqH" = ( +/obj/item/weapon/screwdriver, +/turf/open/floor/plating, +/area/engine/engineering) +"cqI" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_l" + }, +/turf/open/floor/plating, +/area/shuttle/syndicate) +"cqJ" = ( +/obj/structure/cable, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard) +"cqK" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cqL" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cqM" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"cqN" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/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/weapon/electronics/airlock, +/obj/item/weapon/electronics/airlock, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cqP" = ( +/obj/structure/table, +/obj/item/weapon/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, +/turf/open/floor/plating, +/area/engine/engineering) +"cqT" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 32 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cqU" = ( +/obj/machinery/power/rad_collector{ + anchored = 1 + }, +/obj/structure/cable/yellow, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/engine/engineering) +"cqV" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/engine/engineering) +"cqW" = ( +/obj/machinery/power/rad_collector{ + anchored = 1 + }, +/obj/item/weapon/tank/internals/plasma, +/obj/structure/cable/yellow, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/engine/engineering) +"cqX" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/engine/engineering) +"cqY" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/engine/engineering) +"cqZ" = ( +/obj/structure/particle_accelerator/particle_emitter/center, +/turf/open/floor/plating, +/area/engine/engineering) +"cra" = ( +/obj/structure/particle_accelerator/particle_emitter/left, +/turf/open/floor/plating, +/area/engine/engineering) +"crb" = ( +/obj/structure/particle_accelerator/particle_emitter/right, +/turf/open/floor/plating, +/area/engine/engineering) +"crc" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/engine/engineering) +"crd" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/engine/engineering) +"cre" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = -32 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"crf" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_r" + }, +/turf/open/floor/plating, +/area/shuttle/syndicate) +"crg" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/floor/plating, +/area/shuttle/syndicate) +"crh" = ( +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/engine/engineering) +"cri" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"crj" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/power/solar{ + id = "starboardsolar"; + name = "Starboard Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/starboard) +"crk" = ( +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard) +"crl" = ( +/obj/structure/table, +/obj/item/device/taperecorder{ + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"crm" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/matches, +/obj/item/weapon/storage/fancy/cigarettes, +/turf/open/floor/plating, +/area/maintenance/aft) +"crn" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"cro" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/engine/engineering) +"crp" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE" + }, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"crq" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/grille, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Gate"; + name = "brig shutters" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/engine/engineering) +"crr" = ( +/obj/structure/grille, +/obj/structure/cable, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/engine/engineering) +"crs" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4"; + d1 = 1; + d2 = 4 + }, +/turf/open/floor/plating/warnplate{ + dir = 10 + }, +/area/engine/engineering) +"crt" = ( +/obj/item/weapon/wirecutters, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8"; + tag = "" + }, +/turf/open/floor/plating/warnplate, +/area/engine/engineering) +"cru" = ( +/turf/open/floor/plating/warnplate, +/area/engine/engineering) +"crv" = ( +/turf/open/floor/plating/warnplate{ + dir = 6 + }, +/area/engine/engineering) +"crw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"crx" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/escape) +"cry" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 2 + }, +/area/hallway/secondary/entry) +"crz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning, +/area/hallway/secondary/entry) +"crA" = ( +/obj/structure/transit_tube_pod, +/obj/structure/transit_tube/station/reverse/flipped{ + dir = 4 + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/engine/engineering) +"crB" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard) +"crC" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard) +"crD" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard) +"crE" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard) +"crF" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard) +"crG" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard) +"crH" = ( +/obj/structure/grille, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"crI" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plating/warnplate, +/area/engine/engineering) +"crJ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"crK" = ( +/obj/machinery/camera/emp_proof{ + c_tag = "Singularity North-West"; + dir = 2; + network = list("Singularity") + }, +/obj/machinery/power/grounding_rod, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"crL" = ( +/obj/structure/grille, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"crM" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"crN" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/fire, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"crO" = ( +/turf/open/floor/mineral/titanium, +/turf/closed/wall/mineral/titanium/interior, +/area/shuttle/escape) +"crP" = ( +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/engine/engineering) +"crQ" = ( +/obj/machinery/computer/emergency_shuttle, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"crR" = ( +/obj/structure/transit_tube, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/engine/engineering) +"crS" = ( +/obj/structure/cable, +/obj/machinery/power/solar{ + id = "starboardsolar"; + name = "Starboard Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/starboard) +"crT" = ( +/obj/structure/grille, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"crU" = ( +/turf/open/floor/plating/airless, +/area/engine/engineering) +"crV" = ( +/obj/item/weapon/wrench, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"crW" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"crX" = ( +/obj/structure/closet/emcloset, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 32 + }, +/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/structure/grille, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"csa" = ( +/turf/open/floor/plating/airless/warnplate{ + dir = 8 + }, +/area/engine/engineering) +"csb" = ( +/obj/machinery/power/emitter{ + anchored = 1; + dir = 4; + state = 2 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"csc" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/space, +/area/maintenance/asmaint) +"csd" = ( +/turf/open/floor/plating/airless/warnplate{ + dir = 4 + }, +/area/engine/engineering) +"cse" = ( +/obj/structure/grille, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"csf" = ( +/obj/machinery/power/emitter{ + anchored = 1; + dir = 8; + state = 2 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"csg" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 1; + name = "Engineering External Access"; + req_access = null; + req_access_txt = "10;13" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"csh" = ( +/obj/structure/transit_tube{ + icon_state = "D-SW" + }, +/turf/open/space, +/area/space) +"csi" = ( +/obj/structure/transit_tube/curved/flipped{ + dir = 1 + }, +/turf/open/space, +/area/space) +"csj" = ( +/obj/item/device/multitool, +/turf/open/floor/plating/airless, +/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) +"csm" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/maintenance/asmaint) +"csn" = ( +/obj/structure/transit_tube/horizontal, +/turf/open/space, +/area/space) +"cso" = ( +/obj/structure/lattice, +/obj/structure/transit_tube/crossing/horizontal, +/turf/open/space, +/area/space) +"csp" = ( +/obj/structure/transit_tube{ + icon_state = "E-W-Pass" + }, +/turf/open/space, +/area/space) +"csq" = ( +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the turbine vent."; + dir = 1; + name = "turbine vent monitor"; + network = list("Turbine"); + pixel_x = 0; + pixel_y = -29 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"csr" = ( +/obj/machinery/doorButtons/airlock_controller{ + idExterior = "incinerator_airlock_exterior"; + idSelf = "incinerator_access_control"; + idInterior = "incinerator_airlock_interior"; + name = "Incinerator Access Console"; + pixel_x = 6; + pixel_y = -26; + req_access_txt = "12" + }, +/obj/machinery/button/ignition{ + id = "Incinerator"; + pixel_x = -6; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4; + initialize_directions = 11 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"css" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"cst" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"csu" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"csv" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"csw" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/space, +/area/space) +"csx" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"csy" = ( +/obj/structure/table, +/obj/item/weapon/weldingtool, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"csz" = ( +/obj/effect/landmark{ + name = "carpspawn" + }, +/turf/open/space, +/area/space/nearstation) +"csA" = ( +/obj/machinery/field/generator{ + anchored = 1; + state = 2 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"csB" = ( +/obj/item/weapon/wirecutters, +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) +"csC" = ( +/turf/open/floor/plating/airless/warnplate{ + dir = 1 + }, +/area/space/nearstation) +"csD" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat_interior) +"csE" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard) +"csF" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'RADIOACTIVE AREA'"; + icon_state = "radiation"; + name = "RADIOACTIVE AREA"; + pixel_x = 0; + pixel_y = 0 + }, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"csG" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"csH" = ( +/turf/open/floor/plating/airless/warnplate{ + dir = 9 + }, +/area/space/nearstation) +"csI" = ( +/turf/open/floor/plating/airless/warnplate{ + dir = 5 + }, +/area/space/nearstation) +"csJ" = ( +/obj/item/weapon/crowbar, +/turf/open/space, +/area/space/nearstation) +"csK" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"csL" = ( +/obj/structure/transit_tube{ + icon_state = "D-NE" + }, +/turf/open/space, +/area/space) +"csM" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/structure/transit_tube/crossing/horizontal, +/turf/open/space, +/area/space) +"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/machinery/power/grounding_rod, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"csQ" = ( +/obj/item/weapon/wrench, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"csR" = ( +/obj/machinery/the_singularitygen, +/turf/open/floor/plating/airless/warnplate{ + dir = 8 + }, +/area/space/nearstation) +"csS" = ( +/obj/item/weapon/weldingtool, +/turf/open/space, +/area/space/nearstation) +"csT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/landmark/xmastree, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"csU" = ( +/obj/structure/transit_tube/station/reverse, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat_interior) +"csV" = ( +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"csW" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"csX" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat_interior) +"csY" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard) +"csZ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard) +"cta" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 4; + name = "MiniSat External Access"; + req_access = null; + 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) +"cte" = ( +/obj/item/device/radio/off, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"ctf" = ( +/turf/open/floor/plating/airless/warnplate{ + dir = 2 + }, +/area/space/nearstation) +"ctg" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat_interior) +"cth" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = -29 + }, +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat_interior) +"cti" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/sign/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"); + pixel_x = 0; + pixel_y = 0; + start_active = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1 + }, +/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) +"ctl" = ( +/obj/structure/grille, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"ctm" = ( +/turf/open/floor/plating/airless/warnplate{ + dir = 10 + }, +/area/space/nearstation) +"ctn" = ( +/obj/structure/grille, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"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/black, +/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/weapon/folder{ + pixel_x = 3 + }, +/obj/item/weapon/phone{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"cts" = ( +/obj/structure/rack{ + dir = 1 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/light_switch{ + pixel_y = 28 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/item/device/radio/off{ + pixel_y = 4 + }, +/obj/item/weapon/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/black, +/area/ai_monitored/turret_protected/aisat_interior) +"ctu" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/grimy, +/area/ai_monitored/turret_protected/aisat_interior) +"ctv" = ( +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"ctw" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23; + pixel_y = 0 + }, +/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/black, +/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/black, +/area/ai_monitored/turret_protected/aisat_interior) +"ctB" = ( +/obj/structure/cable, +/obj/machinery/power/tracker, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/starboard) +"ctC" = ( +/obj/machinery/camera/emp_proof{ + c_tag = "Singularity West"; + dir = 1; + network = list("Singularity") + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"ctD" = ( +/obj/machinery/camera/emp_proof{ + c_tag = "Singularity East"; + dir = 1; + network = list("Singularity") + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"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_x = 0; + pixel_y = 25; + req_access_txt = "17;65" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/darkwarning{ + dir = 4 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"ctG" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/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"; + d2 = 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{ + d1 = 2; + d2 = 8; + icon_state = "2-8"; + tag = "" + }, +/obj/effect/landmark/start{ + name = "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/black, +/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, +/turf/open/floor/plasteel/darkwarning{ + dir = 4 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"ctN" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + icon_state = "intact"; + dir = 10 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"ctO" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + icon_state = "intact"; + dir = 5 + }, +/turf/open/space, +/area/space) +"ctP" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/ai_monitored/turret_protected/aisat_interior) +"ctQ" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_x = 0; + 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/securearea{ + desc = "A warning sign which reads 'RADIOACTIVE AREA'"; + icon_state = "radiation"; + name = "RADIOACTIVE AREA"; + pixel_x = 0; + pixel_y = 0 + }, +/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{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/grimy, +/area/ai_monitored/turret_protected/aisat_interior) +"ctT" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + dir = 4; + name = "MiniSat Foyer APC"; + pixel_x = 27; + pixel_y = 0 + }, +/obj/structure/chair, +/turf/open/floor/plasteel/black, +/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"); + pixel_x = 0; + pixel_y = 0; + start_active = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/darkwarning{ + dir = 4 + }, +/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/AIsatextAS{ + name = "AI Satellite Atmospherics" + }) +"ctZ" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/AIsatextAS{ + name = "AI Satellite Atmospherics" + }) +"cua" = ( +/turf/closed/wall, +/area/ai_monitored/turret_protected/aisat_interior) +"cub" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = -29 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior) +"cuc" = ( +/obj/structure/rack{ + dir = 1 + }, +/obj/machinery/status_display{ + pixel_y = -32 + }, +/obj/item/weapon/storage/box/donkpockets, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"cud" = ( +/obj/machinery/turretid{ + control_area = null; + enabled = 1; + icon_state = "control_standby"; + name = "Antechamber Turret Control"; + pixel_x = 0; + pixel_y = -24; + req_access = list(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/black, +/area/ai_monitored/turret_protected/aisat_interior) +"cue" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior) +"cuf" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/AIsatextFP{ + name = "AI Satellite 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/weapon/wrench, +/obj/item/weapon/crowbar/red, +/obj/item/clothing/head/welding, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAS{ + name = "AI Satellite Atmospherics" + }) +"cui" = ( +/obj/machinery/atmospherics/components/unary/tank/air, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAS{ + name = "AI Satellite Atmospherics" + }) +"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{ + d1 = 1; + d2 = 2; + 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/black, +/area/ai_monitored/turret_protected/aisat_interior) +"cum" = ( +/obj/machinery/recharge_station, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextFP{ + name = "AI Satellite Service" + }) +"cun" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 2; + name = "Mix to MiniSat" + }, +/turf/open/floor/plating/warnplate{ + icon_plating = "warnplate" + }, +/area/ai_monitored/turret_protected/AIsatextAS{ + name = "AI Satellite Atmospherics" + }) +"cuo" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plating/warnplate/corner{ + tag = "icon-warnplatecorner"; + dir = 2 + }, +/area/ai_monitored/turret_protected/AIsatextAS{ + name = "AI Satellite Atmospherics" + }) +"cup" = ( +/obj/structure/showcase{ + density = 0; + desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; + dir = 8; + icon = 'icons/mob/robots.dmi'; + icon_state = "robot_old"; + name = "Cyborg Statue"; + pixel_x = 9; + pixel_y = 2 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/turf/open/floor/plating/warnplate{ + icon_plating = "warnplate" + }, +/area/ai_monitored/turret_protected/AIsatextAS{ + name = "AI Satellite Atmospherics" + }) +"cuq" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 0; + name = "Air Out"; + on = 0 + }, +/turf/open/floor/plating/warnplate{ + icon_plating = "warnplate" + }, +/area/ai_monitored/turret_protected/AIsatextAS{ + name = "AI Satellite Atmospherics" + }) +"cur" = ( +/obj/structure/showcase{ + density = 0; + desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; + dir = 4; + icon = 'icons/mob/robots.dmi'; + icon_state = "robot_old"; + name = "Cyborg Statue"; + 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{ + density = 0; + desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; + dir = 8; + icon = 'icons/mob/robots.dmi'; + icon_state = "robot_old"; + name = "Cyborg Statue"; + pixel_x = 9; + pixel_y = 2 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/darkblue/corner{ + dir = 4 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"cut" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"cuu" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior) +"cuv" = ( +/obj/structure/showcase{ + density = 0; + desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; + dir = 4; + icon = 'icons/mob/robots.dmi'; + icon_state = "robot_old"; + name = "Cyborg Statue"; + pixel_x = -9; + pixel_y = 2 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 5; + pixel_y = 30 + }, +/turf/open/floor/plating/warnplate{ + icon_plating = "warnplate" + }, +/area/ai_monitored/turret_protected/AIsatextFP{ + name = "AI Satellite Service" + }) +"cuw" = ( +/turf/open/floor/plating/warnplate{ + icon_plating = "warnplate" + }, +/area/ai_monitored/turret_protected/AIsatextFP{ + name = "AI Satellite Service" + }) +"cux" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/clothing/head/welding, +/obj/item/stack/sheet/mineral/plasma{ + amount = 35; + layer = 3.1 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plating/warnplate/corner{ + dir = 1 + }, +/area/ai_monitored/turret_protected/AIsatextFP{ + name = "AI Satellite Service" + }) +"cuy" = ( +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior) +"cuz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/AIsatextAS{ + name = "AI Satellite Atmospherics" + }) +"cuA" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "MiniSat Atmospherics"; + dir = 4; + network = list("MiniSat"); + pixel_x = 0; + pixel_y = 0; + start_active = 1 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23; + pixel_y = 0 + }, +/obj/machinery/space_heater, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/ai_monitored/turret_protected/AIsatextAS{ + name = "AI Satellite Atmospherics" + }) +"cuB" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 28; + pixel_y = 0 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/darkblue/corner{ + dir = 4 + }, +/area/ai_monitored/turret_protected/AIsatextAS{ + name = "AI Satellite Atmospherics" + }) +"cuC" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/AIsatextAS{ + name = "AI Satellite Atmospherics" + }) +"cuD" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "MiniSat Antechamber"; + dir = 4; + network = list("MiniSat"); + pixel_x = 0; + pixel_y = 0; + start_active = 1 + }, +/obj/machinery/turretid{ + control_area = "AI Satellite Atmospherics"; + enabled = 1; + icon_state = "control_standby"; + name = "Atmospherics Turret Control"; + pixel_x = -27; + pixel_y = 0; + req_access = list(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 = "AI Satellite Service"; + enabled = 1; + icon_state = "control_standby"; + name = "Service Bay Turret Control"; + pixel_x = 27; + pixel_y = 0; + req_access = list(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{ + d1 = 1; + d2 = 2; + 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/black, +/area/ai_monitored/turret_protected/aisat_interior) +"cuH" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = -28; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkblue/corner{ + dir = 1 + }, +/area/ai_monitored/turret_protected/AIsatextFP{ + name = "AI Satellite Service" + }) +"cuI" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/AIsatextFP{ + name = "AI Satellite Service" + }) +"cuJ" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/AIsatextFP{ + name = "AI Satellite Service" + }) +"cuK" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "MiniSat Service Bay"; + dir = 8; + network = list("MiniSat"); + pixel_x = 0; + pixel_y = 0; + start_active = 1 + }, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/structure/rack, +/obj/item/weapon/storage/toolbox/electrical{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/storage/toolbox/mechanical, +/obj/item/device/multitool, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/ai_monitored/turret_protected/AIsatextFP{ + name = "AI Satellite Service" + }) +"cuL" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/AIsatextAS{ + name = "AI Satellite Atmospherics" + }) +"cuM" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "MiniSat Atmospherics APC"; + pixel_x = -27; + pixel_y = 0 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/ai_monitored/turret_protected/AIsatextAS{ + name = "AI Satellite Atmospherics" + }) +"cuN" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/AIsatextAS{ + name = "AI Satellite Atmospherics" + }) +"cuO" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/ai_slipper{ + icon_state = "motion0"; + uses = 10 + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/AIsatextAS{ + name = "AI Satellite Atmospherics" + }) +"cuP" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior) +"cuQ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/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/black, +/area/ai_monitored/turret_protected/aisat_interior) +"cuR" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior) +"cuS" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8"; + tag = "" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/ai_slipper{ + icon_state = "motion0"; + uses = 10 + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/mob/living/simple_animal/bot/secbot/pingsky, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior) +"cuT" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/AIsatextFP{ + name = "AI Satellite Service" + }) +"cuU" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/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/black, +/area/ai_monitored/turret_protected/aisat_interior) +"cuV" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/AIsatextFP{ + name = "AI Satellite Service" + }) +"cuW" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/ai_slipper{ + icon_state = "motion0"; + uses = 10 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8"; + tag = "" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/AIsatextFP{ + name = "AI Satellite Service" + }) +"cuX" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "MiniSat Service Bay APC"; + pixel_x = 27; + pixel_y = 0 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/port_gen/pacman, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/ai_monitored/turret_protected/AIsatextFP{ + name = "AI Satellite Service" + }) +"cuY" = ( +/obj/machinery/porta_turret/ai{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/AIsatextAS{ + name = "AI Satellite Atmospherics" + }) +"cuZ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/mob/living/simple_animal/bot/floorbot, +/turf/open/floor/plasteel/darkblue/corner, +/area/ai_monitored/turret_protected/AIsatextAS{ + name = "AI Satellite Atmospherics" + }) +"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/securearea{ + pixel_x = -32; + pixel_y = 0 + }, +/obj/machinery/porta_turret/ai{ + dir = 4 + }, +/obj/item/device/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/securearea{ + pixel_x = 32; + pixel_y = 0 + }, +/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{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/machinery/turretid{ + control_area = "AI Satellite Hallway"; + enabled = 1; + icon_state = "control_standby"; + name = "Chamber Hallway Turret Control"; + pixel_x = 32; + pixel_y = -24; + req_access = list(65) + }, +/turf/open/floor/plasteel/black, +/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{ + dir = 1; + on = 1 + }, +/mob/living/simple_animal/bot/cleanbot, +/turf/open/floor/plasteel/darkblue/corner{ + dir = 8 + }, +/area/ai_monitored/turret_protected/AIsatextFP{ + name = "AI Satellite Service" + }) +"cvh" = ( +/obj/machinery/porta_turret/ai{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/AIsatextFP{ + name = "AI Satellite Service" + }) +"cvi" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/AIsatextFP{ + name = "AI Satellite Service" + }) +"cvj" = ( +/turf/closed/wall, +/area/ai_monitored/turret_protected/AIsatextFS{ + name = "AI Satellite Hallway" + }) +"cvk" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/AIsatextFS{ + name = "AI Satellite Hallway" + }) +"cvl" = ( +/turf/open/floor/plasteel/black, +/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/AIsatextFS{ + name = "AI Satellite Hallway" + }) +"cvn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/AIsatextFS{ + name = "AI Satellite Hallway" + }) +"cvo" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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/black, +/area/ai_monitored/turret_protected/AIsatextFS{ + name = "AI Satellite Hallway" + }) +"cvp" = ( +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"cvq" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "MiniSat Maintenance"; + req_access_txt = "65" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextFS{ + name = "AI Satellite Hallway" + }) +"cvr" = ( +/obj/machinery/porta_turret/ai{ + dir = 4 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"cvs" = ( +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextFS{ + name = "AI Satellite Hallway" + }) +"cvt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextFS{ + name = "AI Satellite Hallway" + }) +"cvu" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextFS{ + name = "AI Satellite Hallway" + }) +"cvv" = ( +/turf/closed/wall, +/area/ai_monitored/turret_protected/ai) +"cvw" = ( +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/AIsatextFS{ + name = "AI Satellite Hallway" + }) +"cvx" = ( +/obj/effect/landmark{ + name = "tripai" + }, +/obj/item/device/radio/intercom{ + anyai = 1; + freerange = 1; + listening = 0; + name = "Custom Channel"; + pixel_x = 0; + pixel_y = 28 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + freerange = 1; + listening = 1; + name = "Common Channel"; + pixel_x = -27; + pixel_y = 5 + }, +/obj/item/device/radio/intercom{ + anyai = 1; + broadcasting = 0; + freerange = 1; + frequency = 1447; + name = "Private Channel"; + pixel_x = 0; + pixel_y = -25 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"cvy" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextFS{ + name = "AI Satellite Hallway" + }) +"cvz" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/AIsatextFS{ + name = "AI Satellite Hallway" + }) +"cvA" = ( +/obj/effect/landmark{ + name = "tripai" + }, +/obj/item/device/radio/intercom{ + anyai = 1; + freerange = 1; + listening = 0; + name = "Custom Channel"; + pixel_x = 0; + pixel_y = 28 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + freerange = 1; + listening = 1; + name = "Common Channel"; + pixel_x = 27; + pixel_y = 5 + }, +/obj/item/device/radio/intercom{ + anyai = 1; + broadcasting = 0; + freerange = 1; + frequency = 1447; + name = "Private Channel"; + pixel_x = 0; + pixel_y = -25 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"cvB" = ( +/obj/structure/rack, +/obj/item/weapon/crowbar/red, +/obj/item/weapon/wrench, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextFS{ + name = "AI Satellite Hallway" + }) +"cvC" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextFS{ + name = "AI Satellite Hallway" + }) +"cvD" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextFS{ + name = "AI Satellite Hallway" + }) +"cvE" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextFS{ + name = "AI Satellite Hallway" + }) +"cvF" = ( +/obj/structure/lattice, +/obj/machinery/camera{ + c_tag = "MiniSat External NorthWest"; + dir = 8; + network = list("MiniSat"); + pixel_x = 0; + pixel_y = 0; + start_active = 1 + }, +/turf/open/space, +/area/space) +"cvG" = ( +/obj/machinery/porta_turret/ai{ + dir = 4; + installation = /obj/item/weapon/gun/energy/e_gun + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/AIsatextFS{ + name = "AI Satellite Hallway" + }) +"cvH" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextFS{ + name = "AI Satellite Hallway" + }) +"cvI" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/AIsatextFS{ + name = "AI Satellite Hallway" + }) +"cvJ" = ( +/obj/machinery/porta_turret/ai{ + dir = 4; + installation = /obj/item/weapon/gun/energy/e_gun + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/AIsatextFS{ + name = "AI Satellite Hallway" + }) +"cvK" = ( +/obj/structure/lattice, +/obj/machinery/camera{ + c_tag = "MiniSat External NorthEast"; + dir = 4; + network = list("MiniSat"); + pixel_x = 0; + pixel_y = 0; + start_active = 1 + }, +/turf/open/space, +/area/space) +"cvL" = ( +/obj/structure/sign/securearea{ + pixel_x = 32; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextFS{ + name = "AI Satellite Hallway" + }) +"cvM" = ( +/obj/machinery/camera/motion{ + c_tag = "MiniSat Core Hallway"; + dir = 4; + network = list("MiniSat") + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/AIsatextFS{ + name = "AI Satellite Hallway" + }) +"cvN" = ( +/obj/structure/sign/securearea{ + pixel_x = -32; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextFS{ + name = "AI Satellite Hallway" + }) +"cvO" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"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/AIsatextFS{ + name = "AI Satellite Hallway" + }) +"cvQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextFS{ + name = "AI Satellite Hallway" + }) +"cvR" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextFS{ + name = "AI Satellite Hallway" + }) +"cvS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/AIsatextFS{ + name = "AI Satellite Hallway" + }) +"cvT" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/AIsatextFS{ + name = "AI Satellite Hallway" + }) +"cvU" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "MiniSat Maintenance"; + req_access_txt = "65" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextFS{ + name = "AI Satellite Hallway" + }) +"cvV" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/AIsatextFS{ + name = "AI Satellite Hallway" + }) +"cvW" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextFS{ + name = "AI Satellite Hallway" + }) +"cvX" = ( +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextFS{ + name = "AI Satellite Hallway" + }) +"cvY" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextFS{ + name = "AI Satellite Hallway" + }) +"cvZ" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23; + pixel_y = 0 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/AIsatextFS{ + name = "AI Satellite Hallway" + }) +"cwa" = ( +/obj/structure/cable, +/obj/machinery/power/apc{ + dir = 4; + name = "MiniSat Chamber Hallway APC"; + pixel_x = 27; + pixel_y = 0 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/AIsatextFS{ + name = "AI Satellite Hallway" + }) +"cwb" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextFS{ + name = "AI Satellite Hallway" + }) +"cwc" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/AIsatextFS{ + name = "AI Satellite Hallway" + }) +"cwd" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/device/radio/intercom{ + broadcasting = 1; + frequency = 1447; + listening = 0; + name = "Station Intercom (AI Private)"; + pixel_x = -28; + pixel_y = -29 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/AIsatextFS{ + name = "AI Satellite Hallway" + }) +"cwe" = ( +/obj/structure/sign/securearea, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai) +"cwf" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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/black, +/area/ai_monitored/turret_protected/ai) +"cwg" = ( +/obj/machinery/airalarm{ + frequency = 1439; + pixel_y = 23 + }, +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai) +"cwh" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/weapon/pen{ + pixel_x = 4; + pixel_y = 4 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai) +"cwi" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai) +"cwj" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai) +"cwk" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai) +"cwl" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai) +"cwm" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/white, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai) +"cwn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai) +"cwo" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai) +"cwp" = ( +/obj/structure/chair/office/dark, +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai) +"cwq" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextFS{ + name = "AI Satellite Hallway" + }) +"cwr" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai) +"cws" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai) +"cwt" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_command{ + name = "AI Core"; + req_access_txt = "65" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai) +"cwu" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/ai_slipper{ + icon_state = "motion0"; + uses = 10 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai) +"cwv" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/status_display{ + pixel_x = -32 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"cww" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai) +"cwx" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai) +"cwy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table_frame, +/obj/item/weapon/wirerod, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cwz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai) +"cwA" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9; + pixel_y = 0 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai) +"cwB" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/obj/machinery/ai_status_display{ + pixel_x = 32 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"cwC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/black, +/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/bluegrid, +/area/ai_monitored/turret_protected/ai) +"cwE" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 2; + name = "AI Chamber APC"; + pixel_y = -24 + }, +/obj/machinery/flasher{ + id = "AI"; + pixel_x = -11; + pixel_y = -24 + }, +/obj/machinery/camera/motion{ + c_tag = "MiniSat AI Chamber North"; + dir = 1; + network = list("MiniSat") + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"cwF" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"cwG" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/weapon/crowbar, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"cwH" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"cwI" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"cwJ" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"cwK" = ( +/obj/machinery/computer/atmos_alert, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"cwL" = ( +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"cwM" = ( +/obj/structure/rack, +/obj/item/weapon/storage/box/teargas{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/handcuffs, +/obj/item/weapon/storage/box/flashbangs{ + pixel_x = 3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/security/armory) +"cwN" = ( +/obj/machinery/computer/security, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"cwO" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = -30 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"cwP" = ( +/obj/machinery/computer/crew, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"cwQ" = ( +/obj/machinery/button/flasher{ + id = "cockpit_flasher"; + pixel_x = 6; + pixel_y = -24 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"cwR" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = -29 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"cwS" = ( +/obj/machinery/computer/communications, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"cwT" = ( +/obj/machinery/camera{ + c_tag = "Arrivals Escape Pod 2"; + dir = 8 + }, +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"cwU" = ( +/obj/structure/shuttle/engine/propulsion/burst{ + tag = "icon-propulsion (WEST)"; + icon_state = "propulsion"; + dir = 8 + }, +/turf/closed/wall/mineral/titanium, +/area/shuttle/pod_1) +"cwV" = ( +/obj/docking_port/stationary/random{ + dir = 8; + id = "pod_asteroid1"; + name = "asteroid" + }, +/turf/open/space, +/area/space) +"cwW" = ( +/obj/machinery/status_display, +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"cwX" = ( +/obj/machinery/door/airlock/glass{ + name = "Emergency Shuttle Cockpit"; + req_access_txt = "19" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"cwY" = ( +/obj/structure/chair, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"cwZ" = ( +/obj/machinery/flasher{ + id = "cockpit_flasher"; + pixel_x = 6; + pixel_y = 24 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"cxa" = ( +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"cxb" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/fire, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/weapon/crowbar, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"cxc" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"cxd" = ( +/obj/machinery/flasher{ + id = "shuttle_flasher"; + pixel_x = -24; + pixel_y = 6 + }, +/obj/machinery/button/flasher{ + id = "shuttle_flasher"; + pixel_x = -24; + pixel_y = -6 + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"cxe" = ( +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"cxf" = ( +/obj/machinery/door/airlock/glass{ + name = "Emergency Shuttle Brig"; + req_access_txt = "2" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"cxg" = ( +/obj/machinery/door/airlock/titanium{ + name = "Emergency Shuttle Airlock"; + req_access_txt = "2" + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"cxh" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"cxi" = ( +/obj/structure/chair, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"cxj" = ( +/obj/structure/table, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"cxk" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"cxl" = ( +/obj/machinery/computer/shuttle/pod{ + pixel_x = 0; + pixel_y = -32; + possible_destinations = "pod_asteroid1"; + shuttleId = "pod1" + }, +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/status_display{ + density = 0; + layer = 3; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_1) +"cxm" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/escape) +"cxn" = ( +/obj/structure/lattice, +/obj/effect/landmark{ + name = "carpspawn" + }, +/turf/open/space, +/area/space) +"cxo" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"cxp" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"cxq" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"cxr" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"cxs" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"cxt" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion"; + dir = 4 + }, +/turf/closed/wall/mineral/titanium, +/area/shuttle/transport) +"cxu" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/transport) +"cxv" = ( +/obj/structure/window/shuttle, +/obj/structure/grille, +/turf/open/floor/plating, +/area/shuttle/transport) +"cxw" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/transport) +"cxx" = ( +/obj/item/weapon/storage/pod{ + pixel_x = 6; + pixel_y = -28 + }, +/obj/item/device/radio/intercom{ + pixel_x = 0; + pixel_y = 25 + }, +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_1) +"cxy" = ( +/turf/open/floor/mineral/titanium/blue, +/turf/closed/wall/mineral/titanium/interior, +/area/shuttle/transport) +"cxz" = ( +/obj/machinery/computer/shuttle/ferry/request, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"cxA" = ( +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/ai_monitored/security/armory) +"cxB" = ( +/obj/structure/chair, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"cxC" = ( +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"cxD" = ( +/obj/machinery/door/airlock/titanium, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"cxE" = ( +/obj/machinery/door/airlock/titanium, +/obj/docking_port/mobile{ + dir = 8; + dwidth = 2; + height = 12; + id = "ferry"; + name = "ferry shuttle"; + port_angle = 0; + preferred_direction = 4; + roundstart_move = "ferry_away"; + width = 5 + }, +/obj/docking_port/stationary{ + dir = 8; + dwidth = 2; + height = 12; + id = "ferry_home"; + name = "port bay 2"; + turf_type = /turf/open/space; + width = 5 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"cxF" = ( +/obj/machinery/door/airlock/titanium{ + name = "Escape Pod Airlock" + }, +/obj/docking_port/mobile/pod{ + dir = 8; + id = "pod1"; + name = "escape pod 1"; + port_angle = 180 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_1) +"cxG" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 4; + name = "Escape Pod Three"; + req_access_txt = "0" + }, +/turf/open/floor/plating, +/area/security/main) +"cxH" = ( +/obj/structure/closet/crate, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"cxI" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"cxJ" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 8; + name = "Labor Camp Shuttle Airlock"; + req_access_txt = "2" + }, +/turf/open/floor/plating, +/area/security/processing) +"cxK" = ( +/obj/machinery/door/airlock/titanium{ + name = "Emergency Shuttle Airlock" + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"cxL" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = -30 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"cxM" = ( +/obj/machinery/door/airlock/titanium{ + name = "Emergency Shuttle Cargo" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"cxN" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 1; + name = "Solar Maintenance"; + req_access = null; + req_access_txt = "10; 13" + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarstarboard) +"cxO" = ( +/obj/machinery/door/airlock/glass{ + name = "Emergency Shuttle Infirmary" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"cxP" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 8; + name = "Labor Camp Shuttle Airlock" + }, +/turf/open/floor/plating, +/area/security/processing) +"cxQ" = ( +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"cxR" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"cxS" = ( +/obj/machinery/sleeper{ + icon_state = "sleeper-open"; + dir = 8 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"cxT" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/fire, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/weapon/crowbar, +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"cxU" = ( +/obj/structure/closet, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"cxV" = ( +/obj/structure/closet/crate, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"cxW" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 2; + name = "External Access"; + req_access = null; + req_access_txt = "13" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"cxX" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/shuttle/engine/heater, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"cxY" = ( +/obj/machinery/camera{ + c_tag = "Arrivals Escape Pod 1"; + dir = 8 + }, +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"cxZ" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"cya" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 8; + req_access_txt = "13" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"cyb" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 1; + name = "Escape Pod One" + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"cyc" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"cyd" = ( +/obj/machinery/door/airlock/titanium, +/obj/docking_port/mobile{ + dheight = 0; + dir = 2; + dwidth = 11; + height = 22; + id = "whiteship"; + launch_status = 0; + name = "NT Medical Ship"; + port_angle = -90; + preferred_direction = 4; + roundstart_move = "whiteship_away"; + timid = null; + width = 35 + }, +/obj/docking_port/stationary{ + dir = 2; + dwidth = 11; + height = 22; + id = "whiteship_home"; + name = "SS13 Arrival Docking"; + turf_type = /turf/open/space; + width = 35 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"cye" = ( +/obj/machinery/door/airlock/titanium, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"cyf" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_l"; + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/shuttle/abandoned) +"cyg" = ( +/obj/machinery/door/airlock/command{ + cyclelinkeddir = 1; + name = "Command Tool Storage"; + req_access = null; + req_access_txt = "19" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/storage/eva) +"cyh" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 8; + name = "Security Escape Airlock"; + req_access_txt = "2" + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"cyi" = ( +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"cyj" = ( +/obj/structure/table, +/obj/item/weapon/screwdriver, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"cyk" = ( +/obj/structure/table, +/obj/item/device/radio/off, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"cyl" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 8; + id_tag = null; + name = "Port Docking Bay 2"; + req_access_txt = "0" + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"cym" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion"; + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/shuttle/abandoned) +"cyn" = ( +/turf/open/floor/plating, +/turf/closed/wall/mineral/titanium/interior, +/area/shuttle/abandoned) +"cyo" = ( +/obj/structure/shuttle/engine/heater{ + icon_state = "heater"; + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/shuttle/abandoned) +"cyp" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 4; + name = "Escape Airlock" + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"cyq" = ( +/obj/machinery/computer/pod{ + id = "oldship_gun" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"cyr" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 8; + name = "Cargo Escape Airlock" + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"cys" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/supply) +"cyt" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 1; + name = "Port Docking Bay 4"; + req_access_txt = "0" + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"cyu" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 1; + name = "Port Docking Bay 3"; + req_access_txt = "0" + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"cyv" = ( +/turf/open/floor/plating, +/area/shuttle/abandoned) +"cyw" = ( +/turf/open/floor/mineral/titanium, +/turf/closed/wall/mineral/titanium/interior, +/area/shuttle/abandoned) +"cyx" = ( +/obj/structure/rack, +/obj/item/clothing/suit/space/hardsuit/medical, +/obj/item/clothing/mask/breath, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"cyy" = ( +/obj/machinery/mass_driver{ + dir = 4; + icon_state = "mass_driver"; + id = "oldship_gun" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"cyz" = ( +/obj/machinery/door/airlock/glass, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"cyA" = ( +/obj/machinery/door/poddoor{ + id = "oldship_gun"; + name = "pod bay door" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"cyB" = ( +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/supply) +"cyC" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 8; + req_access_txt = "13" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cyD" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 8; + name = "Supply Dock Airlock"; + req_access_txt = "31" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"cyE" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 8; + name = "External Access"; + req_access = null; + req_access_txt = "13" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cyF" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_r"; + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/shuttle/abandoned) +"cyG" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 8; + name = "Atmospherics External Airlock"; + req_access_txt = "24" + }, +/turf/open/floor/plating, +/area/atmos) +"cyH" = ( +/obj/machinery/door/airlock/titanium, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"cyI" = ( +/obj/item/weapon/stock_parts/cell{ + charge = 100; + maxcharge = 15000 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"cyJ" = ( +/obj/structure/rack, +/obj/item/weapon/tank/internals/emergency_oxygen, +/obj/item/weapon/tank/internals/emergency_oxygen, +/obj/item/weapon/tank/internals/emergency_oxygen, +/obj/item/weapon/tank/internals/emergency_oxygen, +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"cyK" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 8; + name = "Solar Maintenance"; + req_access = null; + req_access_txt = "10; 13" + }, +/turf/open/floor/plating, +/area/maintenance/portsolar) +"cyL" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cyM" = ( +/obj/machinery/door/airlock/engineering{ + cyclelinkeddir = 1; + name = "Engine Room"; + req_access_txt = "10" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cyN" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "QMLoad2" + }, +/obj/machinery/door/poddoor{ + id = "QMLoaddoor2"; + name = "supply dock loading door" + }, +/turf/open/floor/plating, +/area/shuttle/supply) +"cyO" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"cyP" = ( +/obj/item/weapon/shard{ + icon_state = "medium" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"cyQ" = ( +/obj/machinery/door/airlock/titanium{ + name = "Supply Shuttle Airlock"; + req_access_txt = "31" + }, +/turf/open/floor/plating, +/area/shuttle/supply) +"cyR" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"cyS" = ( +/obj/machinery/button/door{ + dir = 2; + id = "QMLoaddoor2"; + name = "Loading Doors"; + pixel_x = 24; + pixel_y = 8 + }, +/obj/machinery/button/door{ + id = "QMLoaddoor"; + name = "Loading Doors"; + pixel_x = 24; + pixel_y = -8 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/supply) +"cyT" = ( +/obj/machinery/door/airlock/titanium{ + name = "Supply Shuttle Airlock"; + req_access_txt = "31" + }, +/obj/docking_port/mobile/supply{ + dwidth = 5; + width = 12 + }, +/obj/docking_port/stationary{ + dir = 8; + dwidth = 5; + height = 7; + id = "supply_home"; + name = "Cargo Bay"; + width = 12 + }, +/turf/open/floor/plating, +/area/shuttle/supply) +"cyU" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 1; + name = "Solar Maintenance"; + req_access = null; + req_access_txt = "10; 13" + }, +/turf/open/floor/plating, +/area/maintenance/starboardsolar) +"cyV" = ( +/obj/machinery/door/window, +/turf/open/floor/mineral/titanium/purple, +/area/shuttle/abandoned) +"cyW" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/purple, +/area/shuttle/abandoned) +"cyX" = ( +/obj/structure/table, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"cyY" = ( +/obj/structure/table, +/obj/item/weapon/gun/energy/laser/retro, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"cyZ" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "QMLoad" + }, +/obj/machinery/door/poddoor{ + id = "QMLoaddoor"; + name = "supply dock loading door" + }, +/turf/open/floor/plating, +/area/shuttle/supply) +"cza" = ( +/obj/machinery/door/airlock/glass, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"czb" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/decal/remains/human, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"czc" = ( +/obj/machinery/computer/shuttle/white_ship, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"czd" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"cze" = ( +/obj/structure/table, +/obj/item/weapon/tank/internals/oxygen, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"czf" = ( +/turf/open/floor/mineral/titanium/blue, +/turf/closed/wall/mineral/titanium/interior, +/area/shuttle/supply) +"czg" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 8; + name = "Escape Pod Four"; + req_access = null; + req_access_txt = "0"; + shuttledocked = 1 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"czh" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 1; + name = "Engineering External Access"; + req_access = null; + req_access_txt = "10;13" + }, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/engine/engineering) +"czi" = ( +/obj/machinery/door/airlock/titanium, +/turf/open/floor/plasteel/shuttle/white, +/area/shuttle/abandoned) +"czj" = ( +/obj/machinery/door/airlock/glass, +/turf/open/floor/plasteel/shuttle/white, +/area/shuttle/abandoned) +"czk" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 8; + name = "MiniSat External Access"; + req_access = null; + req_access_txt = "65;13" + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat_interior) +"czl" = ( +/obj/machinery/door/window/northright, +/obj/effect/decal/remains/human, +/turf/open/floor/mineral/titanium/purple, +/area/shuttle/abandoned) +"czm" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/purple, +/area/shuttle/abandoned) +"czn" = ( +/obj/structure/frame/computer{ + anchored = 1 + }, +/turf/open/floor/plasteel/shuttle/white, +/area/shuttle/abandoned) +"czo" = ( +/turf/open/space, +/area/shuttle/syndicate) +"czp" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/shuttle/engine/heater, +/turf/open/floor/plating/airless, +/area/shuttle/supply) +"czq" = ( +/obj/machinery/porta_turret/syndicate{ + dir = 5 + }, +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/syndicate) +"czr" = ( +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"czs" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "burst_l" + }, +/turf/open/floor/plating/airless, +/area/shuttle/supply) +"czt" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/floor/plating/airless, +/area/shuttle/supply) +"czu" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "burst_r" + }, +/turf/open/floor/plating/airless, +/area/shuttle/supply) +"czv" = ( +/turf/open/space, +/obj/machinery/porta_turret/syndicate{ + dir = 6 + }, +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) +"czw" = ( +/obj/item/device/multitool, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"czx" = ( +/obj/structure/chair, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"czy" = ( +/obj/structure/frame/computer{ + anchored = 1 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"czz" = ( +/turf/open/space, +/obj/machinery/porta_turret/syndicate{ + dir = 10 + }, +/turf/closed/wall/mineral/plastitanium{ + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) +"czA" = ( +/obj/item/weapon/scalpel, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"czB" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 6; + pixel_y = -5 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"czC" = ( +/obj/machinery/sleeper{ + icon_state = "sleeper-open"; + dir = 8 + }, +/obj/effect/decal/remains/human, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"czD" = ( +/turf/open/floor/plating/airless/warnplate{ + dir = 6 + }, +/area/space/nearstation) +"czE" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"czF" = ( +/obj/machinery/camera/emp_proof{ + c_tag = "Singularity North East"; + dir = 2; + network = list("Singularity") + }, +/obj/machinery/power/grounding_rod, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"czG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"czH" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"czI" = ( +/obj/item/weapon/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/incinerator) +"czK" = ( +/turf/closed/wall, +/area/security/vacantoffice) +"czL" = ( +/obj/machinery/computer/shuttle/pod{ + pixel_y = -32; + possible_destinations = "pod_asteroid4"; + shuttleId = "pod4" + }, +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/status_display{ + density = 0; + layer = 3; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_4) +"czM" = ( +/obj/item/device/radio/intercom{ + pixel_y = 25 + }, +/obj/item/weapon/storage/pod{ + pixel_x = 6; + pixel_y = -32 + }, +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_4) +"czN" = ( +/obj/docking_port/stationary/random{ + dir = 4; + id = "pod_asteroid4"; + name = "asteroid" + }, +/turf/open/space, +/area/space) +"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/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"czR" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"czS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/asmaint2) +"czT" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"czU" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"czV" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"czW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"czX" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"czY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/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/aft) +"cAa" = ( +/obj/structure/chair, +/obj/item/weapon/storage/fancy/cigarettes, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cAb" = ( +/obj/structure/closet, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cAc" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/aft) +"cAd" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cAe" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cAf" = ( +/obj/structure/disposaloutlet, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/space) +"cAg" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"cAh" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cAi" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cAj" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/closed/wall/r_wall, +/area/engine/engine_smes) +"cAk" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4"; + tag = "" + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"cAl" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"cAm" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"cAn" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8"; + tag = "" + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"cAo" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"cAp" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4"; + d1 = 1; + d2 = 4 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"cAq" = ( +/obj/structure/cable/yellow{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/tesla_coil, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"cAr" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8"; + tag = "" + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"cAs" = ( +/obj/structure/cable/yellow{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/power/tesla_coil, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"cAt" = ( +/obj/machinery/the_singularitygen/tesla, +/turf/open/floor/plating/airless/warnplate{ + dir = 4 + }, +/area/space/nearstation) +"cAu" = ( +/obj/structure/cable/yellow{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/power/tesla_coil, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"cAv" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"cAw" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"cAx" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"cAy" = ( +/obj/structure/closet/secure_closet/freezer/kitchen/maintenance, +/turf/open/floor/plating, +/area/maintenance/aft) +"cAz" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"cAA" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cAB" = ( +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/plating, +/area/maintenance/aft) +"cAC" = ( +/obj/structure/sink/kitchen{ + dir = 8; + pixel_x = 11 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cAD" = ( +/obj/structure/table, +/obj/item/weapon/kitchen/knife, +/obj/item/weapon/storage/box/donkpockets, +/turf/open/floor/plating, +/area/maintenance/aft) +"cAE" = ( +/obj/structure/table/glass, +/obj/item/weapon/reagent_containers/food/condiment/saltshaker{ + pixel_y = 2 + }, +/obj/item/weapon/reagent_containers/food/condiment/peppermill{ + pixel_x = 2 + }, +/obj/item/weapon/reagent_containers/food/snacks/mint{ + pixel_y = 9 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cAF" = ( +/turf/open/floor/plating, +/area/maintenance/disposal) +"cAG" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/power/apc{ + dir = 2; + name = "Head of Personnel APC"; + pixel_y = -24 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads) +"cAH" = ( +/obj/machinery/processor, +/turf/open/floor/plating, +/area/maintenance/aft) +"cAI" = ( +/obj/machinery/conveyor_switch/oneway{ + convdir = -1; + id = "garbage"; + name = "disposal coveyor" + }, +/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/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) +"cAM" = ( +/obj/structure/table/wood, +/obj/structure/disposalpipe/segment, +/obj/item/toy/cards/deck/cas, +/obj/item/toy/cards/deck/cas/black{ + pixel_x = -2; + pixel_y = 6 + }, +/turf/open/floor/wood, +/area/library) +"cAN" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Security Maintenance"; + req_access_txt = "1" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/main) +"cAO" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cAP" = ( +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/engine/engineering) +"cAQ" = ( +/obj/structure/chair, +/turf/open/floor/plating, +/area/maintenance/aft) +"cAR" = ( +/obj/machinery/door/window{ + dir = 1; + name = "AI Core Door"; + req_access_txt = "16" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"cAS" = ( +/obj/effect/landmark/start{ + name = "AI" + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + freerange = 1; + listening = 1; + name = "Common Channel"; + pixel_x = -27; + pixel_y = -9 + }, +/obj/item/device/radio/intercom{ + anyai = 1; + freerange = 1; + listening = 0; + name = "Custom Channel"; + pixel_x = 0; + pixel_y = -31 + }, +/obj/item/device/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/bluegrid, +/area/ai_monitored/turret_protected/ai) +"cAT" = ( +/obj/machinery/ai_slipper{ + icon_state = "motion0"; + uses = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai) +"cAU" = ( +/obj/structure/lattice, +/obj/machinery/camera{ + c_tag = "MiniSat External SouthWest"; + dir = 8; + network = list("MiniSat"); + pixel_x = 0; + pixel_y = 0; + start_active = 1 + }, +/turf/open/space, +/area/space) +"cAV" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/showcase{ + density = 0; + desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; + dir = 8; + icon = 'icons/mob/robots.dmi'; + icon_state = "robot_old"; + name = "Cyborg Statue"; + pixel_x = 9; + pixel_y = 2 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai) +"cAW" = ( +/obj/structure/showcase{ + density = 0; + desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; + dir = 4; + icon = 'icons/mob/robots.dmi'; + icon_state = "robot_old"; + name = "Cyborg Statue"; + pixel_x = -9; + pixel_y = 2 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai) +"cAX" = ( +/obj/structure/lattice, +/obj/machinery/camera{ + c_tag = "MiniSat External SouthEast"; + dir = 4; + network = list("MiniSat"); + pixel_x = 0; + pixel_y = 0; + start_active = 1 + }, +/turf/open/space, +/area/space) +"cAY" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/closed/wall, +/area/ai_monitored/turret_protected/ai) +"cAZ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai) +"cBa" = ( +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"cBb" = ( +/obj/machinery/camera/motion{ + c_tag = "MiniSat AI Chamber South"; + dir = 2; + network = list("MiniSat") + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"cBc" = ( +/obj/machinery/power/terminal{ + icon_state = "term"; + dir = 1 + }, +/obj/machinery/ai_slipper{ + icon_state = "motion0"; + uses = 10 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"cBd" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai) +"cBe" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai) +"cBf" = ( +/obj/machinery/camera{ + c_tag = "MiniSat External South"; + dir = 2; + network = list("MiniSat"); + pixel_x = 0; + pixel_y = 0; + start_active = 1 + }, +/turf/open/space, +/area/space) +"cBg" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/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/storage) +"cBj" = ( +/obj/structure/table, +/obj/item/weapon/folder/blue, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/black, +/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; + network = list("SS13") + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet) +"cBo" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"cBp" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"cBq" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cBr" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/bot, +/area/hallway/primary/central) +"cBs" = ( +/obj/structure/table/optable{ + name = "Robotics Operating Table" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"cBt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/white, +/area/toxins/explab) +"cBu" = ( +/obj/machinery/ai_status_display{ + pixel_y = 32 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/crew_quarters/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{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"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/toxins/xenobiology) +"cBA" = ( +/obj/machinery/button/massdriver{ + dir = 2; + id = "toxinsdriver"; + pixel_y = 24 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/warning/corner{ + dir = 8 + }, +/area/toxins/mixing) +"cBB" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"cBC" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/storage/tech) +"cBD" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cBE" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/engine/vacuum, +/area/toxins/mixing) +"cBF" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 8 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/atmos) +"cBG" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"cBH" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + 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/atmos) +"cBK" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -35 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"cBL" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cBM" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/yellow, +/obj/item/weapon/paper/monitorkey, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/neutral{ + dir = 2 + }, +/area/engine/chiefs_office) +"cBN" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/maintenance/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/atmos) +"cBQ" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/engine/engineering) +"cBR" = ( +/obj/effect/landmark/event_spawn, +/turf/open/space, +/area/space/nearstation) +"cBS" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/AIsatextFS{ + name = "AI Satellite Hallway" + }) +"cBT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cBU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cBV" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + name = "Security Office"; + req_access = null; + req_access_txt = "1" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/main) +"cBW" = ( +/obj/docking_port/stationary{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 24; + id = "syndicate_southmaint"; + name = "south maintenance airlock"; + turf_type = /turf/open/space; + width = 18 + }, +/turf/open/space, +/area/space) +"cBX" = ( +/obj/docking_port/stationary{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 24; + id = "syndicate_se"; + name = "southeast of station"; + turf_type = /turf/open/space; + width = 18 + }, +/turf/open/space, +/area/space) +"cBY" = ( +/obj/docking_port/stationary{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 24; + id = "syndicate_s"; + name = "south of station"; + turf_type = /turf/open/space; + width = 18 + }, +/turf/open/space, +/area/space) +"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/device/flashlight, +/turf/open/floor/plating, +/area/construction) +"cCc" = ( +/obj/structure/rack{ + dir = 1 + }, +/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) +"cCg" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"cCh" = ( +/obj/item/weapon/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/vacantoffice2) +"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{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"cCm" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/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"; + pixel_x = 24; + pixel_y = 0 + }, +/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/weapon/reagent_containers/blood/empty, +/obj/item/weapon/reagent_containers/blood/empty, +/obj/item/weapon/reagent_containers/blood/AMinus, +/obj/item/weapon/reagent_containers/blood/BMinus{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/weapon/reagent_containers/blood/BPlus{ + pixel_x = 1; + pixel_y = 2 + }, +/obj/item/weapon/reagent_containers/blood/OMinus, +/obj/item/weapon/reagent_containers/blood/OPlus{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/weapon/reagent_containers/blood/random, +/obj/item/weapon/reagent_containers/blood/random, +/obj/item/weapon/reagent_containers/blood/APlus, +/obj/item/weapon/reagent_containers/blood/random, +/turf/open/floor/plasteel, +/area/medical/sleeper) (1,1,1) = {" -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaadaaeaaeaaeaaeaaeaadaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaagaahaaiaajaakaalaalaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaamaahaahaanaahaahaahaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaoaahaahaahaapaahaaqaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaraadaadaadaasaataadaadaauaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaraadaavaahaawaadaauaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaahaahaaxaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaadaadaadaadaadaahaahaaxaazaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaAaahaahaaBaadaahaahaaxaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaAaahaaDaaEaadaahaahaaxaadaadaaFaaGaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaAaahaahaaHaadaaIaaJaaIaadaahaahaahaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaAaahaahaahaaLaahaahaahaaMaahaahaahaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaAaahaahaahaaNaahaahaahaaIaahaahaahaadaaOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaadaadaadaadaadaadaaPaahaahaadaadaadaadaadaadaaOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaQaaRaaSaaTaaUaadaahaahaahaadaaVaaWaaXaaYaaZaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadabaaaRaaRaaRaaRabbaahaahaahaadaahaahaahaaDabcaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaQaaRaaRaaRaaRabdaahaahaahabeaahaahaahaahaahaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaRaaRaaRaaRaaRabfaahaahaahabgaahaahaahaahabhaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadabjabkablabmabnaadaahaahaahaadaboabpaahaahabhaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqabqabqabqabqabqabqabqabqabqabqaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadabraaRabsaadaadaadaaIabtaaIaadabuaadaahaahaahaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvabiaaaabiaaaabiaaaabiaaaabiaaaaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadabwabxabyaadaaaaadabzabzabzaadaadaadabAabBabCaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabDabDabEabFabGabFabGabFabHabDabDaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadabzabzabzaadaaaaarabIabJabKaauaaaaadabzabzabzaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabDabLabMabNabOabPabQabRabSabTabDaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarabIabJabKaauaaaaaaaaaaaaaaaaaaaaaaarabIabJabKaauaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabiabDabUabVabWabVabVabVabXabSabYabDabiabiaaaaaaaaaaaaaaaaaaaaaaaaabiaaaaaaaaaaaaaaaabiaaaabiaaaabiaaaaaaaaaaaaaaaaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabDabDabZacaacbaccacdabQabQabSaceabDabiabiabiabiabiabiabiabiabiabiabiaaaaaaaaaabiaaaabiaaaabiaaaabiaaaaaaaaaaaaaaaaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfabDacgabQabQabQabQachabQabQaciacjabDaaaabiaaaaaaaaaaaaaaaaaaaaaaaaabiabiaaaaaaabiaaaabiaaaabiaaaabiaaaaaaaaaaaaaaaaaaabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabDabDackachabQabQaclacmachabQacnacoabDabiacpabiabiabiabiabiabiabiabiabiabiabiabiabiaaaabiaaaabiaaaabiaaaaaaaaaaaaaaaaaaabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKaaaaaaacqacqacqacqacqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabDacrabQabQabQacsactacuabQabQacvacwabDabDacxabiabiabiabiabiabiabiabiaaaaaaaaaaaaabiabiabiabiabiabiabiabiaaaaaaaaaaaaaaaabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqacqacqacqacqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqaaaabiaaaacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczacAacBacCacDacEabQacFabQabQabQabQabQabQabSabQacGacHacxacIacIacJacIacIacJacJacIacKacLacMacLacMacLacNacNacOacOacOacNacNaaaaaaaaaaaaaaaabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqaaaabiaaaacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqabiacPabiacqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacQacRacSacTacUacVabQabQacWacXacYabQacZadaadbabQadcaddacxabiaaaaaaaaaaaaaaaaaaabiacMadeadfadfadfadgacNadhadiadjadkadlacNaaaaaaaaaabiaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqabiadmabiacqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqacJacJacJacJabiabiaaaadnaaaabiabiacqacqacqacqacqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacQadoadpadqacUadradsadradradradtadradradraduadradradvacxacxacxacxacxacxacxacxacxacxadwadfadxadyadeacNadzadAadBadCadDacNaaaabiadEabqabqabiabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqacqacqacqacqabiabiaaaadFaaaadGabiacqacqacqacqacqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqaaaaaaabiaaaabiaaaaaaadnaaaaaaabiaaaabiaaaaaaacqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacQadHadIadJacUadKabQadLadradMadNadOadradPadQadRadradSacxadTadUadVadWadXadYadZaeaacxaebadfadxaecadeacOaedaeeaefadBaegacNaaaabiacLaehacLabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyaaaaaaabiaaaabiaaaaaaadFaaaaaaabiaaaabiaaaaaaacqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqabiaeiaeiaeiaeiaeiaaaaejaaaaeiaeiaeiaeiaeiabiacqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczaekaelaemacUaenabQaeoadraepaeqaeradraesaetaeoadraeuacxaevaewaexaexaexaexaexaeyacxaezadfadxaecadeacOaeAaeBaeCadBaeDacNabiabiacLaeEacLabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqabiaeFaeFaeFaeFaeFaaaaeGaaaaeFaeFaeFaeFaeFabiacqaaaaaaaaaaaKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqaaaaeHaeIaeIaeIaeIaeJaeKaeLaeMaeMaeMaeMaeNaaaacqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeOaczaczaczaePaeQaeRacUaeSaeTaeUadraeSaeVadradradraeWaeUadradracxaeXaeYaeZafaafbafcafdafeaffadfadfadxaecadeacNafgafhafiafjafkacNacMacMacKaehacLacLacKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqaaaaflafmafmafmafmafnafoafpafqafqafqafqafraaaacqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqabiafsafsafsafsafsaaaaeKaaaafsafsafsafsafsabiacqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczaftafuafvafwafxafyafzafAafBafCafDafEafFafGafHafIafJafKafLacxafMafNafOafPafQafRafSafTafUadfadfafVafWacLacNafXacNafYacNafZacNagaagbacLagcacLagdageageagfaaaaaaaaKaaaaaaaaaaaaaaaaaaaaaaaaaaaacqabiaggaggaggaggaggaaaafoaaaaggaggaggaggaggabiacqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqaaaaaaaaaabiaaaaaaaaaaeKaaaaaaaaaabiaaaaaaaaaacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczaghagiagjagkaglagmagnagoagoagpagqagoagoagoagragsagtaguagvacxafMafMagwagxagyagzagAagBacxagCagDagEagFacLagGagHagIagJagKagLagIagMagNagOagPagOagQagRagSagTagUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqaaaaaaaaaabiaaaaaaaaaafoaaaaaaaaaabiaaaaaaaaaacqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqabiaeiaeiaeiaeiaeiaaaaeKaaaaeiaeiaeiaeiaeiabiacqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagVagWagXagYagZahaahbahcahdaheaheahfahgahhahiahiahiadrahjahkacxacxacxahlahmahnahoahpahqacxahracMahsahtacLahuahvahwahxahyahzahAahBahCacLahDacLahEageageahFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqabiaeFaeFaeFaeFaeFaaaafoaaaaeFaeFaeFaeFaeFabiacqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqaaaaeHaeIaeIaeIaeIaeJaeKaeLaeMaeMaeMaeMaeNaaaacqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczaczaczahGahHahIahbabDadrahJadradradrahKahKahKahKahKahLahMahNahOahPahQahRahSahTahUahVahNahWahXahYahZaiaaibaicahwaidahyaieahAaifacLacKacLacLacLacKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqaaaaflafmafmafmafmafnafoafpafqafqafqafqafraaaacqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqadGafsafsafsafsafsaaaaeKaaaafsafsafsafsafsabiacqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKaaaaaaaaaaaaaczaczaczaczahbabDaigaihaiiaijaikahKailaimainaioaipaiqairaisaitaiuaivahSaiwahSaixaiyaizahwaiAaiBahwaiCaiDaiEaiFaiGaiHaiIaiJaiKaiLaiMaiNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqabiaggaggaggaggaggaaaafoaaaaggaggaggaggaggabiacqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqaaaaaaaaaabiaaaaaaaaaaeKaaaaaaaaaabiaaaaaaaaaacqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabiabiabiabiabDaikaiOaiPaiQaikahKaiRaiSaiTaiUaipaiqahNaiVaiWaiXaiYaiZajaajbajcajdajeajfajgajhajiajiajhajjajkajlajmajnajoacLajpajqaiNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqaaaaaaaaaabiaaaaaaaaaafoaaaaaaaaaabiaaaaaaaaaacqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqabiaeiaeiaeiaeiaeiaaaaeKaaaaeiaeiaeiaeiaeiabiacqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabDaikaiOajraiQajsahKajtajuaiTajvaipaiqairajwajxajyajzajAajBajCajDajEajFajGajHajIajJajKajLajMajNajOajPajQajRajSajTajUajVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqabiaeFaeFaeFaeFaeFaaaafoaaaaeFaeFaeFaeFaeFabiacqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqaaaaeHaeIaeIaeIaeIaeJaeKaeLaeMaeMaeMaeMaeNaaaacqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiaaaabiaaaaaaabDajWajXajXajYajZahKakaakbakcakdaipaiqahNakeakfakgakhakiakjakkahNahNacKaklakmacKacKacLacLacLacLacLacLacLacLacLaknakoajVabiabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqaaaaflafmafmafmafmafnafoafpafqafqafqafqafraaaacqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyakpafsafsafsafsafsaaaaeKaaaafsafsafsafsafsabiacqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiakqakqakrakrabDabDadradraeSaksahKahKahKahKahKaktakuakvakwakvakvakvakvakvakvakxakyakzakAakBakCakDakEakFakGakHakIakJakKakLakMaknakoajVabiabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqabiaggaggaggaggaggaaaafoaaaaggaggaggaggaggakpacyaaaaaaaaaaaaaaaaaaaaaaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqaaaaaaabiaaaabiaaaaaaakNaaaaaaabiaaaabiaaaaaaacqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiakqakOakPakQakRakSakTakUakVakWakXakYakZalaalbalcaldalealfalealealealealealealgalealealhalfalialjalkallalmalnaloalpalqalrakMaknakoaiNabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqaaaaaaabiaaaabiaaaaaaafoaaaaaaabiaaaabiaaaaaaacqaaaaaaaaaaaaaaaaaaaaaaaaabiaaaaaaaaaaaaaaaaaaaaaaaKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqacqacqabiabiabiabialsaltalsabiabiabiabiacqacqacqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalualvalvalvalwaaaabialxalyalzalAalBalCalDalEalFalGalHalIalJalKalLalIalMalNalLalIalJalOalPalPalPalQalRalSalTalUalValWalXalYalXalXalXalZamaamaakMaknakoajVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqacqacqabiabiabiabiabiafoabiabiabiabiabiacqacqacqabiaaaaaaaaaaaaaaaaaaaaaabiaaaaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiaaaabiaaaaaaabiaaaalsambalsaaaaaaabiaaaaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamcamdameamfamcakrakramgamhamiamjamkakDahKamlahKahKammamnamoampamqamramoampamqamsamtampamuamvampamwamxampamyamzamAakDamBamCamaamDamaamEamFamaakMaknakoajVabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabiaaaaaaabiaaaaaaamGaaaaaaabiaaaaaaabiaaaabiabiabiaaaaaaaaaaaaaaaaaaabiaaaaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiaaaabiaaaaaaabialsalsamHalsalsaaaabiaaaaaaabiaaaaaaaaaaaaaaaaaaaaaaaKamIamIamIamIamIaaaamJamKamLamMamNamOamPamOamhamQamRamSakDamTakvamUahKamVamWamXahKamYamWamXahKamYamZamXahKanaanbancandakCahKamWaneanfakDanganhanianjaniankanlamaakMaknakoajVabiaaaaaaaaaaaaaaaaaaaaaaaKaaaaaaaaaaaaaaaaaaaaaabiabiaaaaaaaaaabiaaaaaaanmaaaaaaabiaaaaaaabiaaaaaaaaaabiabiaaaaaaaaaaaaaaaannanoannabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiaaaabiaaaaaaabianpanqanransanpantantantantantantantantantaaaaaaaaaaaaamIanuanvanwamIaaaamcanxanyanzamcakrakrakranAanBanCanDakDanEanFanGahKanHamWanIahKanJamWanKahKanLamWanMahKanNanOanPandanQahKanRanSanTakDanUanVanUanWanUanXanUanUakMaknakoaiNaiNabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabiaaaaaaaaaaaaabiaaaanYanZanYaaaabiaaaaaaabiaaaaaaaaaaaaabiabiaaaaaaaaaaaaannaoaannabiaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanpaobaocaodanpaoeaoeantaofaogaohantaoiantaaaaaaaaaabiantaojaogaokantaaaamcaolaolaomamcaaaaaaaonakqakraooaopakDaoqaoraosakDaotaouaouaovaouaouaouaovaouaouaouaovaowaoxaoyaozaoAakDakDakDakDakDaoBaoCaoBakLaoBaoDaoBakLakMaoEaoFaoGaiNaiNaiNabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabiaaaaaaaaaaaaaaaabiaaaanYaoHanYaaaabiabiabiabiaaaabiaaaaaaaaaabiabiaaaaaaaaaannaoIannabiaaaabiaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanpaoJaoKaoLanpaoMaoNaoOaoPaogaoQantantantamIantamIamIantaoRaoSaoRantaaaamJaolaolaoTamcakrakrakraoUaoVaoWaoXalxakDakDakDakDaoYaoYaoYaoZaoYaoYaoYapaaoYaoYaoYaoZaoYaoYaoYapbapbapcapdapdapdapeaoBaoCaoBakLaoBaoDaoBakLakMaknapfapgaphapiaphabqaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabiaaaaaaaaaaaaaaaaaaabianYanYanZanYanYabiaaaaaaabiaaaabiaaaaaaaaaaaaabiabiaaaaaaannaoIannabiabiabiabiabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiaaaaaaaaaaaaaaaaaaanpanpapjapkanpaplaogantaogaogaogaoOaogaogapmaoganvaogaogaogaogapnamIaaaamcapoaolaolappapqamPapqamhamQamRamQaprapbapbapbapsapbapbaptapbapbapbapbapbapbapbapuapbapbapbapvapbapbapbapbapbapbapwakLapxapyapzapAapBapyakLapCapDapEapFapFapGaiNabqaaaaaaaaaaaaaaaaaaaaaaaaabiabiaaaaaaaaaaaaaaaaaaaaaabiapHapIapJapKapHabiaaaaaaabiaaaabiaaaabiaaaaaaaaaabiannannannaoIannannannannannannaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiaaaaaaaaaaaaaaaaaaaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaantantantantantabiabiantapLapMapNapOaoNantantamIamIantantantantamIantamIamIantapPaogapQantaaaamcapRapRapRamcakrakrapSapTapUapVapWakqapXapXapXapXapXapYapZapXapXapXapXapXapXapXaqaaqbaqbaqbaqcaqdaqbaqeaqfaqgaqhapeaqiaqjakMakMakMakMakMakMakMaknaqkaiNaqlaqmaiNaaaaaaaaaaaaaaaaaaaaaaaaabiabiaaaaaaaaaaaaaaaaaaaaaaaaabiapHaqnaqoaqpapHabiaaaaaaabiaaaabiaaaabiannanoannanoannaqqaoIaoIaoIaoIaoIaoIaqrannabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiaaaaqsaaaaaaaaaaqtaaaabiaaaaaaaaaaaaaaaaaaaaaantantantantaquaqvaqwantaaaaaaantaogapMaplaogaqxantaqyaqyaqzaqyaqyaqzaqzacfacfaqAaqAantaqBaogaqCantaaaaqDaqEaqEaqEaqFaaaabialxakqaqGakqaqHaqIaqIaqIaqJaqIaqIaqIaqKaqLaqLaqLaqMaqLaqLaqNaqOaqPaqQapFaqRapFapFapFapFaqSapFapFapFapFapFaqTaqUaqVaqWaqXaqXaqYaqZaraarbarcaiNaaaaaaaaaaaaaaaaaaaaaaaaabiabiaaaaaaaaaaaaabqabqabqaaaabiapHardarearfapHargargargargarganoanoanoannarhaoIaqrannannaoIannannannannariannannabiabiabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiarjarkarlaaaarmarnaroabiaaaabqabqabqaaaaaaabiantarparqarraogarsaogantamIamIantartapMaplartantantantamIamIamIantantacfaruaqzaqzacfantantaoOantantaaaaaaaaaaaaaaaaaaaaaabiakqarvamPakqarwaqIarxaryarzarAarzaqIarBaqLarCarDarEarFaqLaoYapbarGarHarIarJarJarJarJarJarKarLarJarJarJarJarJarMarNarOarParQarRarSaiNarTarUaiNabiarVarWarWarXarWarWarYabiabiaaaaaaaaaabianoarZanoaaaargapHapHasaasbapHascaoIaoIaoIannasdaoIaseannasfaoIaoIasgannaoIannashasiannaoIasjannaaaaaaaaaaaaaaaaaaaaaaaaaaKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiaskaslaskaaaasmasnasmabiabiamIasoamIaaaaaaabiantaspasqapOasrassastantaqCaogasuaogapMasvaogaogaogaogaogaogaogaogantantantaqzacfaqzacfaswasxaswaaaaaaaaaaaaaaaaaaaaaaaaabiakqasyaszakqasAaqIasBasCasDarzarzaqIarBaqLasEarEasFasGasHaoYapbapdarHaknasIasIasIasIasIasJasKasIasIasIasIasIasIasIasIasLasMaiNasNasLasLasLasLasLasOasPasPasPasPasPasOasLabiaaaaaaaaaabiasQaoIanoaaaargasRasSasTasUaoIaoIaoIannaoIannasVaoIaoIannaoIasWasXasYariaoIannasZataannaoIatbannaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatcaskatdaskatcasmateasmatcabiatfaogamIaaaaaaantantantantantaoOatgathathatiatjatkatjatlatmatnatoantaogantantantaogantatpantacfaqzaqyaqzaswasxaswaaaaaaaaaaaaaaaatqatqatqatqatqatqatqatqatraqIatsattatuarzatvaqIarBatwatxatyatzatAasHaoYapbatBarHaknasIatCatDatEatFatGatHasIatIatJatKasIatLatJatMasLatNatOatPatQatRatSatTasLasOasPasPasPasPasPasOasLabiabiabiabianoanoarZanoanoargatUaoIatVaoIaqqaoIannannatWannannatXannannasYatYatZaoIannaoIauaauaauaauaauaauaauaauaauaaubaubaubaubacfaubaubaqzaqzaqyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaucaudaueaufaucaugauhauiaucantamIasoamIamIamIantaujaukaukaukaukaukaukaulaumaunantantantantaogantantaogauoantatnaogantantantantaqyaqyaqyaswaupaswaaaaaaaaaabiabiatqauqauratqausautauuatqatraqIarAauvarAauwarzaqIauxauyauzarEauAarEasHaoYapbauBarHaknasIauCauDauEauFauGauHasIauIauJauKasIauLauMauNasLauOauPauQauQauQauQauRauSauTasPasPasPasPasPasOasLasLasLaaaaaaanoaoIaoIaoIascargauUasYatVaoIauVauWauXariaoIaoIaoIaoIauYaoIaoIatYauZaoIavaaoIauaavbavcavdauaaveavfavgauaaqzaqyaqyaqyaqyaqyaqyaqyaqyaqyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaucaucavhaucaucaucavhaucaucaviavjavkavlavlavmavnavoavpavqavqavqavqavqavqavravsavtacfavuantaogavvartatnavwantavxaogaogaogavyamIaqyaqyaqzaswasxaswaaaaaaaaaatqatqatqasxasxatqasxasxasxatqavzaqIarAavAavBavCarAaqIarBavDaqLavEavFavGaqLavHapbapdarHaknasIasIasIasIasIavIavJasIasIavKavLasIasIavMavLasLavNavOavPavQavQavRavSavTavUasPasPasPasPasPavVavWavXavYaaaaaaanoaoIaoIavZaoIargawaaoIawbawcawcawcawcawdawcaweaoIaoIaoIaoIaoIaoIaoIaoIannauWauaawfawgawgauaawhawiawjauaaqyaqyaqyaqyaqyaqyaqyaqyaqyaqyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaucawkawlawmaucawnawlawmaucastawoawpaukaukaukawqawrawsapPawtawuawvawwantawxavsacfawyavtamIaogauoantantantantantantantawzavyamIaqzaqyaqzaswasxaswabqabqabqawAawBawAasxasxatqatqawCatqatqavzaqIaqIawDaqIawEaqIaqIawFawGaqLaqLaqLaqLaqLawHapbawIarHaknasIatCatDawJatFawKawLawMawNawOawPawQawRawSawTawUawVavOawWawXawXawYawZavTavYasPasPasPasPasPavYaxaaxbavYabiabiannaoIaoIannannargargargargargargargargargannaxcaxdannannannannannannannannaoIaxeauaawgawgaxfaxgawfaxhauaaqyaqyaqyaqyaqyaqyaqyaqyaqyaqyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKaaaaaaaaaaaaabiatcaucavhaxiatcaucaxjaxiatcantaxkavsantantantantaxlawsaogaxmaxnaogaogantawxavsaxoaqzaxoantaogaxpantaxqaxrantavxastaxsaxtaxtaxtaxuaxuaxuaxvaxwaxxaxuaxuaxuaxvaxxaxvaxvaxwaxvaxyaxwaxzaxAaxBaxCaxCaxCaxDaxEaxCaxCaxFaxGaxCaxCaxCaxCaxHaxIaxJaxJaxKaxLasIauCauEauEaxMauGaxNaxOaxPaxQaxRaxSaxTaxUaxVaxWaxXaxYawWaxZawXawYawZayaavYasPasPasPasPasPavYaybaxbasLaaaaaaannaycasfaoIaydannayeaqrayfaygaqqannawaaqqannayhaoIannayiaoIannayjaykaylaymaymaymaynayoaypayqayraysaytauaaubaubacfacfaubaubaubaubaqzaqzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayuayvayvayvaywayvayvayxayyayzayAayBayCayCayDantayEawsayFayGayHaogayIantawxayJaxtaxtaxtaxtayKaxtaunaogayHayLaogaogayMavjayNayOayPayPayPayQayPayRayPayPaySayTayUayVayVayVayVayVayVayWayXayYayZayZayZayZazaayZayZazaayZazbazbazbazbazbazcazdazeazfazgasIasIasIasIasIavIazhaziazjazkazlazmaznazoazpazqazrazsaztazuazuazvawZazwavUasPasPasPasPasPazxazyazzasLaaaaaaannaoIaoIaoIaoIaoIaoIazAawcawcawcawcawcawcawcazBaoIaoIaoIaoIavaaoIaoIazCazDazEazFazGazHazIawgawgawgazJauaaqzaqyaqyaqyaqyaqyaqyaqyaqyaqyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayuazKazLazKazMazLazLazNazKazLazOazPazQazQazRantayEawsazSaogaogazTazUantazVazWazXazXazXazXazXazYavsazZaogantaviaviavsaAaantaAbaAcaAdaAdaAeaAdaAfaAdaAdaAgaAhaAiaAjaAjaAjaAjaAjaAjaAjaAkaAlaAmaAnaAoaApaAqaAraAsaAtaAuaAvaAwaAxaAyaAzaAAapbaABaiNapgasIatCatDaACatFaADaAEaziaziaziazjaAFaAGaAHaAIawUaAJaAKaALaAMaANaAOaAPaAQaARasPasPasPasPasPaASasLasLasLannannannaqqannannariannannatVannannaATannannariannatVaycannannariannaoIaycazCaAUatYauaaAVaAWaAXaAYaAZaAWaBaauaaqzaqyaqyaqyaqyaqyaqyaqyaqyaqyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaucayuaBbayuaBcazLazLaBdayuaBbayuaBeaBfazMaBgantayEawsantantantantaBhaBhaBiaBjaBhaBhaBhaBhaBhawxayJaxtaxtaxtaxtaxtaBkaAaaqCaAbaaaabiaaaaBlaaaaBmaaaabiaaaaAhaAiaAjaBnaBoaBpaBqaBraAjaAkaBsaBtaBuaBuaBvaBwaBxaBxaBxaByaBzaBzaBAaBBaAzaBCapbaBDaiNapgasIauCauEauEaBEauGaBFaBGaBHaBIaBJaBKaBLaBLaBMaBLasLaBNaBOaBPaBQaBRaBSasLaASasPasPasPasPasPaASannatbaoIaBTaBUannannannatbaoIannatbatVannaBVaoIannaBWaoIannaBXaBYannaBZaoIannariariazCaCaariauaaCbaAWaCcaCdaCcaAWaCeauaaqzaqzaqzaqyaqyaqyaqyaqyaqyaqyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqabiabiabiabiaCfatcaCgawlayuaChaCiaCjaCkayuawlaCgayuatcaClaCmantaCnaCoaCpaCpaCqaCraBhaCsaCtaCuaCvaCwaCxaCsaBhaCyaCzaCAavkavkavkavkavkaCBaviaAbabiaCCaCCaCDaCCaCEaCCaCCabiaAhaAiaAjaCFaCGaCHaCIaCFaAjaCJaCKaCLaCMaCNaCOaCPaCQaCRaCSaCTaCUaAxaAxaAxaCVaBCapbaCWaiNapgasIasIasIasIasIaCXavJaBLaBLaBLaBLaBLaBLaCYaCZaDaaBLasLasLasLasLaDbaDcasLaASasPasPasPasPasPaASannannaoIaDdaBUannaDeannaoIaoIannaoIatVannaoIaoIannaoIaoIannatVauWannaoIaoIannaDfaoIazCaAUasYauaauaauaauaauaauaauaauaauaaubaubaubaubaubaqzaqyaqyaqyaqyaaaaaaaaaaaaaaKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayuaBbayuayuayuayuayuayuaBbayuaaaatcaDgaBgaDhaDiaDjaDhaDhaDhaDkaBhaCsaDlaDmaDnaDoaDpaCsaBhantaDqaDraDraDraDraDraDraDsaDraDtaaaaCCaDuaDvaDwaDxaDyaCCaaaaAhaAiaAjaCFaDzaDAaDBaCFaAjasxaDCaAmaDDaDEaDFaDGaDHaCUaDIaDJaAxaAxaDKaAxaCVaBCapbaBDaiNapgasIatCatDaDLatFaADavJaBLaDMaDNaDOaDOaBLaCYaDPaDaaBLaDQaDRaDSaDTaDUaDcabiaDVaDWaDWaDWaDWaDWaDXaaaannaoIaDYaDZannannannannannannaEaaEbannannannannannannaEcaEdaEeaEfaEfaEfaEgaEhaEiaEjaEkaElaEmaEnaEoaEfaEpaEqaEraEsaEsaEsabiabiabiabiabiabiabiabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKaaaaaaaaaaaaaaaaEtaEuaEvaEuaEwaEwaEwaEwaEuaEvaExaEyatcaBcaEzaDhaEAaEBaECaEDaEEaEFaBhaCsaEGaEHaEIaEHaEHaCsaBhaEJaEKaELaEMaENaEOaEPaEQaERaESaDtabiaCCaETaEUaEVaEWaEXaCCabiaAhaAiaAjaEYaEZaFaaFbaFcaAjasxaFdaAmaFeaFfaFgaAxaFhaFiaFjaFkaFlaCVaAzaFmaAzaBCapbaBDaiNapgasIauCauDauEaFnauGaFoaFpaFqaFraFsaFsaFtaFuaFvaFwaBLaFxaFyaFzaFAaFBaDcaaaabiaaaabiaaaabiaaaabiaaaannaycaFCaFDaFEaFFannauVaoIaycatVaoIannaaaannaBTaFDaFDaFGaFHaFIaFIaFIaFIaFIaFJaFKaFLaFMaFNaFNaFNaFOaFPaFQaFRaFSaFTaFUaFVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEtaEuaEuaFWaFXaFYaFZaGaaGbaGcaGdaGeaFYaGfaGgayuaBcaGhaDhaGiaGjaGkaGlaGmaGnaBhaGoaEHaEHaEHaEHaEHaEHaGpaGqaEKaGqaGraGqaGqaGqaGqaERaGqaDtaaaaCCaGsaGtaGtaGuaGvaCCaaaaAhaAiaAjaGwaGxaGyaGzaGAaAjasxaGBaAmaAmaFkaGCaGDaGEaGFaAmaAmaAxaAxaAzaGGaAzaBCapbaBDaiNapgasIasIasIasIasIaGHaGIaGJaGKaGLaGMaGMaGMaGMaGMaGNaBLaGOaGPaGQaDTaDUaDcannannannannannannannannannannannannannaGRannannannannaBTaGSaGTaGUaGVaGUaGWaGXaGYaGZaHaaHbaHbaHbaHbaHcaHdaHeaHcaHcaHcaHcaHcaHcaHcaHfaHgaHhaEsaEsaEsabiabiabiabiabiabiabiabiabiabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEwaHiaHiaHjaFYaHkaFYaHkaFYaHkaFYaHkaFYaGfaHlayuaBcaHmaDhaHnaHoaHpaHqaHraHsaBhaHtaEHaEHaEHaEHaEHaHuaBhaHvaHwaHxaHyaGqaGqaGqaHzaHAaHBaDtabiaCCaHCaHDaHEaHFaHGaCCabiaAhaHHaAjaHIaHJaGyaHKaHLaAjasxaHMaAzaHNaAxaHOaHPaHQaAxaHRaAzaHSaHTaAzaHPaAzaHUaqOaHVaiNapgapgapgapgapgapCavIavJaBLaHWaHXaBLaHYaBLaHZaBLaIaaBLaIbaIcaIdaIeaIfaIgaIhaIiaIjaIkaIlaImaImaImaImaInaIoaImaImaIpaIqaIraIsaEfaItaIuaIvaIwaIxaIwaIyaIzaHbaIAaIBaHbaICaIDaIEaHcaIFaIGaHcaIHaIIaIJaIKaILaIMaINaIOaIPaIQaIRaISaaaaaaaaaaaaaaaabiaaaaaaaaaaaaaaaaaaaaaaITaIUaIUaIUaIUaIUaIVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIWaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEwaFYaFYaIXaFYaHkaFYaHkaIYaHkaFYaHkaFYaGfaHlayuaBcaIZaDhaDhaJaaJbaJcaJbaDhaBhaBhaBhaBhaJdaEHaJeaJfaBhaJgaEKaGqaGqaGqaJhaGqaGqaERaJiaDtaaaaCCaCCaJjaJkaJjaCCaCCaaaaAhaAiaAjaJlaJmaJnaJoaJpaAjasxaJqaAzaJraAxaJsaHPaJtaAxaJuaAzaCVaCVaAzaFmaAzaJvaJwaJxaiNapCaiNaiNaiNaiNaiNaJyaJzaBLaJAaJBaBLaJCaBLaJDaBLaJEaBLaJFaJGaJHaDTaJIaJJaJKaJLaJMaJMaJNaJOaJMaJPaJQaJRaJSaJTazEazEazEaJUaJVaJWaJXaJYaoIaJZaJZaJZaKaaKbaHbaKcaKdaKeaKfaKgaKhaHcaKiaKjaHcaKkaKlaKmaKnaILaKoaHfaHgaFSaKpaKqaISaaaaaaaaaaaaaaaabiaaaaaaaaaaaaaaaaaaaITaKraKsaKtaKuaKtaKvaKwaIVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEwaKxaKxaKyaFYaHkaFYaHkaFYaHkaFYaHkaFYaGfaHlayuaBcazLaKzaKAaKBaKAaKCazLaKDaKEaKFaKGaBhaKHaEHaEHaKIaBhaKJaEKaGqaKKaKLaKMaKNaKOaKPaKQaDtaaaabiaaaaKRaKSaKRaaaabiaaaaAhaAiaAjaKTaKUaKVaHKaKWaAjasxarBaAzaKXaAxaHPaHPaHPaKYaKZaAzaaaaaaaLaaLbaLcaLdaLeaLfaLgaLhaLaaaaaaaaLiaLjaLkaLlaBLaLmaJBaJBaJBaLnaJBaJBaJBaBLaDTaLoaDTaDTaDTaDcaLpaLqaLqaLraLsaLtaLqaLuaLvaLvaLwaLxaLyaLvaLzaJZaJZaLAaKaaJZaJZaJZaLBaLCaKaaKbaHbaLDaLEaLFaLGaLHaLIaHcaLJaLKaLLaLMaLNaLOaLPaLQaKoaHfaHgaFSaIQaLRaISaaaaaaaaaaaaaaaabiaaaaaaaaaaaaaaaaaaaLSaLTaLUaLVaLVaLVaLWaLXaLSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaLYaEuaEuaFWaLZaFYaFYaFYaFYaFYaFYaMaaFYaGfaMbayuaBcazLaMcaMdaMeaMdaMfaMdaMdaMdaMgazLaBhaMhaMiaMhaBhaBhaMjaMkaMjaDraDraDraDraMjaMlaMmaDtaMnaMoaMoaMpaMqaMraMoaMoaMsaAhaMtaAjaMuaAjaMvaMwaMxaAjatqaqKaAzaAzaAzaCVaGDaCVaAzaAzaAzaLaaLaaLaaMyaLeaLeaLeaLeaLeaMzaLaaLaaLaaLiaMAaLkaMBaBLaBLaBLaBLaBLaBLaBLaBLaBLaBLaMCaMDaMEaMFaMGaMHaMIaMJaLqaMKaLsaMLaMMaMNaLvaMOaMPaLxaMQaLvaMRaMSaMTaMUaMVaMWaMWaMXaMYaMZaKaaKbaHbaNaaNbaNcaNdaLHaNeaHcaNfaNgaNhaNiaNjaNkaNlaHcaHcaNmaHgaFSaKpaKqaISaaaabiabiabiabiabiabiabiaaaaaaaaaaaaaLSaNnaNoaNpaNqaLVaLWaNraLSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaLYaEuaNsaEuaEwaEwaEwaEwaEuaEvaNtaNuatcaNvazLaNwaNxaNyaNzaNAaNBaucaNCaNDazLaNEaNFaNGaNGaNHaNGaNGaNIaNGaNGaNGaNGaNGaNGaNJaNKaNLaNMaNNaNOaNOaNPaNOaNOaNOaNOaNQaNRaNSaNTaNOaNUaNOaNVaJwaNWaNXaNYaNZaOaaLgaLgaLgaLdaLeaLeaObaLeaLeaOcaOdaOeaOfaOgaOhaOiaLeaLeaObaOjaOkaOlaOmaOnaOoaOpaOqaLeaOraLeaDTaOsaOtaMDaMDaMDaOuaOvaOwaOxaOyaLqaOzaOAaMNaOBaOCaLvaODaMPaOEaOFaLvaLvaOGaOHaOIaOJaOKaOLaOMaONaOOaKaaKbaHbaOPaOPaOQaORaOPaOPaHcaOSaOTaHcaOUaNlaNlaNlaHcaOVaOWaOXaFSaEsaEsaEsaOYaOYaOYaOZaOZaOZabiabiaaaaaaaaaaITaPaaPbaPbaPcaPbaPdaPeaPbaPaaIVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayuaBbayuayuayuayuayuayuaBbayuaaaatcaDgaPfaNwaPgaPhaPiaPjaPkaucaPlaNDaPmaKzaNFaPnaPoaPpaPqaPraPsaNGaNGaNGaNGaNGaNGaNGaNKaNGaNFaPtaNGaNGaPuaPvaPwaPwaPwaPxaPyaPwaPzaPwaPAaPwaPBaPCaPDaPEaPFaLeaLeaLeaLeaLeaLeaLeaLeaObaLeaLeaPGaPHaPIaPJaPKaPLaPMaLeaLeaObaLeaPNaLeaLeaLeaLeaLeaLeaLeaPOaLeaDTaPPaMDaMDaPQaPRaPSaPTaPUaPVaPWaLqaPXaPYaPZaLqaLqaLvaQaaMPaQbaQcaQdaLvaJZaJZaQeaJZaJZaJZaQfaQgaQfaKaaKbaHbaQhaOPaOPaQiaOPaQjaHcaHcaHcaHcaHcaHcaHcaQkaHcaHfaHfaHgaFSaQlaQmaEsaQnaQoaQpaQqaQraOZabiaaaaaaaaaaaaaLSaQsaQsaQsaIUaQtaLVaQuaQvaQwaIUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqabiabiabiabiaCfatcayuawlayuaQxaQyaQzaQAayuawlayuayuatcaBcazLaNwaQBaQCaPiaPjaPkaucaQDaNDazLaKzaNFaNGaQEaQFaQFaQFaQGaQHaQIaQFaQJaQFaQFaQFaQKaQFaQLaQFaQFaQFaQMaQNaQOaQPaQPaQQaQRaQSaQTaQUaQVaQWaQXaQYaQZaRaaLeaRbaRbaRbaRcaRbaRbaRbaRbaRdaRbaRbaRbaRbaRbaRbaRbaRbaRbaRbaRbaReaRbaRbaRbaRbaRbaRbaRbaRbaLeaLeaLeaDTaRfaRgaRgaRgaRgaRgaRhaMHaRiaOyaLqaLqaRjaLqaLqaRkaLvaRlaRmaRnaQcaRoaLvaJZaRpaRqaRraRsaRraRraRtaRuaKaaKbaHbaRvaRvaRwaRxaRyaRyaRzaHbaRAaRBaRCaEsaRDaIQaREaHfaHfaRFaRGaEsaRHaEsaRIaRJaRKaRLaRMaOZaOZaOZaOZaOZaOZaLSaRNaROaROaRPaLVaLVaLVaLVaQuaLSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabiaucayuaBbayuaBcazLazLaBdayuaBbayuaRQaRRaRSazLaNwaRTaRUaNzaRVaNBaucaRWaNDazLaRXaRXaRXaRYaRZaRZaRZaRZaRZaRZaSaaSbaRZaScaRZaRZaRZaSdaSeaSfaSeaSgaShaSiaNGaNGaSjaSkaSlaNGaSmaSnaNGaSoaSoaLeaSpaOaaLaaLaaLaaLaaLaaLaaLaaLaaSqaSraSsaStaSsaSsaSsaSuaSsaSvaSsaSwaSqaLaaLaaLaaLaaLaaLaaLaaLaaLdaLeaLeaLqaSxaSyaSzaSzaSzaSzaSzaMHaSAaSBaLqaSCaSDaSEaLvaLvaLvaLvaSFaLxaLvaLvaLvaLvaRraSGaSHaSHaSHaSHaSIaRraKaaKbaHbaSJaOPaRwaRxaOPaOPaSKaHbaSLaSMaSNaEsaHfaKpaSOaSPaSPaSQaSRaSSaSTaEsaSUaSVaSWaSXaSXaSYaSZaSZaTaaSZaSYaTbaROaTcaTcaIUaTdaTeaTfaLVaQuaIUaaaaaaaaaaaaaaaaaaaaaaaKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayuaTgazLayvaRSazLazLaThayvazLaTgaRSazLazLazLaTiaTjaTkaTlaTmaTnaTnaToaTpazLaRXaTqaRXaTraRZaTsaTtaTuaTvaTwaTtaTxaTyaTzaTAaTBaTCaSdaTDaTEaTFaSgaTGaSiaSiaTHaSiaSiaSoaSoaTIaTJaSoaSoaSoaTKaLeaOaaLaaaaaaaaaaaaaaaaaaaaaaaSqaTLaTMaTNaTOaTPaTQaTRaTSaTTaTUaTVaSqaaaaaaaaaaaaaaaaaaaaaaLaaLdaLeaTWaTXaTYaSzaTZaSzaSzaSzaSyaMHaSAaUaaUbaSzaUcaUdaLvaUeaUfaUgaUhaUiaUjaUkaUlaLvaRraUmaUnaUnaUnaUnaUoaRraKaaUpaHbaUqaUqaRwaRxaUraUraUsaHbaHbaUtaHbaEsaUuaIQaREaUvaUwaRFaRGaEsaEsaEsaOZaUxaUyaOZaOZaOZaOZaOZaOZaOZaUzaUAaPbaPbaPbaUBaTfaTfaTfaLVaQuaLSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKaaaaaaaaaaaaaaaaaaayuaUCaUDaUDaUDaUDaUDaUDaUDaUDaUCaUDaUEazLazLaKzazLaUFaUGazLaUHazLaUIaUJaUKaRXaULaRXaTraRZaUMaTtaTtaTtaTtaTtaTxaUNaTtaTtaTtaTCaSdaUOaTEaTEaSgaTGaSiaUPaUQaUQaURaSoaUSaUTaUUaUVaUWaUXaLeaLeaOaaLaaaaaaaaaaaaaaSqaSqaSqaSqaUYaUZaVaaVbaVcaVdaVeaVfaVgaVhaViaSqaSqaSqaSqaaaaaaaaaaaaaLaaLdaLeaLeaVjaSzaVkaVlaVmaVnaVoaVpaVqaSAaUaaVraSzaVsaSzaVtaVuaVvaVwaVxaVyaVzaVAaVuaVBaVCaVDaUnaVEaVFaUnaVGaRraKaaKbaHbaOPaOPaRwaRxaOPaOPaOPaVHaVIaOPaVJaEsaNmaVKaVLaUvaUvaVMaVNaVOaEsaVPaVQaSVaSWaSXaSXaVRaSZaSZaSZaSZaVSaVTaLVaVUaLVaLVaLVaLVaLVaLVaVVaLSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabiabiabiatcatcayuayuayuayuayuayuayuayuatcatcaucaKzaVWaVXaVXaVYaVXaVXaVXaVXaVZaVXaVXaRXaULaWaaWbaRZaWcaTtaWdaWeaWfaWgaWhaWiaWjaTtaTtaWkaSdaWlaWmaWnaSgaTGaSiaWoaWpaWqaWraSoaWsaWtaUUaWuaWvaUXaLeaLeaOaaLaaLaaLiaWwaSqaSqaWxaWyaWzaWAaWBaWCaWDaWEaWCaWFaWCaWGaWHaWIaWJaWKaWLaSqaSqaWwaLiaLaaLaaLdaLeaLeaLqaWMaSzaWNaSzaWOaSzaSyaSzaSAaUaaWPaWQaSzaWRaLvaVuaVuaWSaWTaWUaWVaWWaVuaWXaWYaWZaUnaXaaXbaUnaXcaXdaKaaKbaHbaXeaXeaRwaRxaXfaOPaOPaXgaOPaXhaXiaEsaXjaXkaXlaUvaUvaXmaXnaHfaEsaXoaSXaSVaSWaSXaRMaOZaOZaOZaOZaOZaOZaLSaTeaLVaXpaXqaLVaXpaXqaLVaXraLSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaXsaXtaXtaXuaXtaXtaXtaXvaXtaXtaXwaaaayuaChazMaXxaVXaXyaXzaXAaXBaXAaXCaXDaXAaVXaULaULaXEaXFaRZaXGaXHaXIaXJaXKaXLaXMaXNaXOaXPaXQaTCaSdaSdaSdaSdaSgaTGaSiaSiaSiaSiaSiaSoaXRaXSaXTaWuaXUaUXaLeaLeaOaaLgaLgaXVaXWaXXaSqaXYaXZaYaaYbaYcaYbaYdaYeaYfaYgaYhaYiaYjaYhaYkaYlaYmaSqaYnaXWaYoaYpaLgaLdaLeaLeaVjaSzaSzaSyaSzaYqaSzaYraSzaSAaUaaVraSzaSzaSzaYsaVuaVuaYtaYuaYvaWTaWWaYwaLvaYxaWZaYyaUnaUnaUnaXcaYzaKaaYAaHbaHbaHbaRwaRxaYBaYCaOPaYDaYEaNcaYFaEsaHfaVKaVLaUvaUvaYGaVNaYHaEsaYIaSXaSVaSWaSXaRMaOZaaaabiabiabiaaaaIUaTeaLVaXpaXqaLVaXpaXqaLVaXraIUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaXsaYJaYKaYLaYMaYMaYMaYMaYMaYMaYMaXuaYNayuayuaBcazLaVXaYOaYPaYQaXyaYRaYSaXDaXAaVXaYTaYUaYVaRXaRZaYWaYXaYYaYZaZaaZaaZbaZaaZaaZaaZcaZdaRZaZeaZfaZgaZhaZiaZjaZkaZlaZmaZnaZnaZnaZnaZnaZnaZnaZnaLeaLeaLeaLeaLeaZoaZpaZqaZraZsaZtaZuaZvaZwaZxaZyaZzaZAaZBaZCaZDaZEaZFaZuaZGaZHaZIaZJaZKaZLaZMaZNaZOaLeaLeaLqaZPaSyaZQaSyaSzaVkaZRaVmaSAaUaaVraVraZSaZTaLvaVuaVuaVuaZUaVuaVuaWWaZVaLvaRraWZaUnaUnaUnaUnaXcaRraKaaZWaZXaZYaZZbaababbacbacbadaRwaRwaRwaRwbaeaUvaUvaUvaUvaUvbafbagbahbaibajbakbalbamaRLbanaOZabiabiaaaabiabiaIUaTeaLVaXpaXqaLVaXpaXqaLVaXraIUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaoaYKaYKaYKaYKaYKaYKaYKaYKaYKaYKbapbaqawlbaqazLazLaVXbarbasbatbaubaubavbawbaxaVXbayaULaYVbazbazbazbaAbaBbazbaCbaDbaEbaFbaGbaGbaHbaIaRZbaJbaKbaLbaMbaNbaObaLbaPbaQbaQbaRbaSbaTbaUbaVbaWaZnaLeaLebaXbaYbaZbbabbbbbcaSqbbdbbebbfbbgbbhbbibbibbjbbkbblbbmbbnbbobbpbbfbbqbbdaSqbbcbbbbbrbbsbaYbbtaLeaLeaVjaSzaSzaSyaSzaSzaSzbbuaSzbbvaSzbbwbbxaSzaSzbbybbzbbAaVuaVubbBaVubbCbbDaLvbbEbbFaUnbbGbbGbbHbbFbbIbbJbbKbbLbbLbbMbbNbbOaRwaRwbbPaRwaRwaRwaRwbaebbQbbRbbRbbRbbRbbRbbSbbTbbUbbVbbWbbXbbYaSXbbZaOZaaaabiabiabiaaaaIUaTeaLVaXpaXqaLVaXpaXqaLVaXraIUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcabcbbccbccbcdbcdbcdbcdbcdbcdbcdaXuayuayuayuaBcbcebcfbcgbchbcibcibcibcibcjaXyaVXbckbclaYVbazbcmbcnbcobcpbazbcqbcrbcsaRZbctbcubcvbcwaRZbcxbcybczbcAbczbcBbcCbcDaZnbcEbcFbcFbcGbcHbcIbcJaZnaObaObbcKbcLbcLbcLbcLbcLbcLbcMbcNbcObbhbbjbcPbcQbcQbcRbcQbcQbcSbblbbobcTbcUbcVbcTbcTbcTbcTbcTbcTbcWaObaObaLqbcXbcYbcZbdaaSzaSzaSzbdbbdcbddbdebdfbdgaSzaLvaLvaLvbdhbdibdibdiaLvaLvaLvbdjaUnaUnbdkbdlbdmbdnbdlaKabdobdpbdqaHbbdrbdsbdtaYCaOPbduaXgaYCbdvaEsbdwaHfbdxaUvaUvbdxaHfbdyaEsbdzbdAbdBaSWaSXaRMaOZaOZaOZaOZaOZaOZaLSaTeaLVaXpaXqaLVaXpaXqaLVaXraLSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcaaXtaXtaXuaXtaXtaXtaXvaXtaXtbdCaaaayubdDaRSbdEaVXaXAaYPaXAaXybdFaXAbdGaXAaVXbdHbdIbdJbazbazbazbdKbdLbazbcrbdMbcraRZbctbcubcvbcwaRZbcxbcybdNbdObczbdPbcCbcDaZnbdQbcFbcFbdRbdSbcFbdTbdUaLeaLebaXbcLbdVbdWbdXbdYbdZbeabebbecbedbeebcQbcQbefbegbefbcQbcQbehbeibejbekbelbembenbeobepbeqbcTbbtaLeaLeaLqaLqaLqaLqaLqberaSBberbesaLqaLqaLqaLqaLqaLqaLvbetbetbetbetbetbetbeubetaLvbdlbevbevbdlbdpbdpbdpbdpaKabdobdpbdqaHbaHbaHbbewaHbbewaHbbewaHbaHbaEsaEsbexbexbexbexbexbexaEsaEsbeyaSXbezaSWaSXaSXaVSaSZaSZaSZaSZaVSbeAaLVbeBaLVaLVaLVaLVaLVaLVaVVaLSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabiabiabiatcatcayuayuayuayuayuayuayuayuatcatcaucazLazLaVXaVXaVYaVXaVXaVXaVXaVZaVXaVXbeCbeDbeEbazbcmbeFbdKbeGbazbeHbeIbeHaRZbctbcubcvbcwaRZbcxbcybczbeJbeKbeLbcCbcDbeMbcIbeNbeObePbeQbcFbdTbeRaLeaLebaXbeSbeTbdZbeUbeVbeVbeWbeXbeYbedbeZbcQbcQbefbfabefbcQbcQbfbbeibfcbfdbfebffbfgbfhbeqbfibcTbbtbfjbfkaJwbflbdpbdpbdpbdpbdpbdpbdpbdpbfmbdpbdpbdpbdpbfnbdpbdpbdpbdpbdpbdpbdpbdpbflbdpbdpbdpbdpbdpbdpbdpbfobfpbfqbfrbdpbfsbdpbdpbdpbdpbdpbdpbdpbdpbdpbfnbftbdpbdpbdpbdpbdpbdpbflbfuaVQaSXbfvbfwbfxbfyaOZaOZaOZaOZaOZaUzaUAaPbaPbbfzaPbbfAaIUbfBaIUaIUbfCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayubfDayCayCayCayCayCayCayCayCbfDayCbfEbfFbfFbfGbfHbfIbfJbfJbfJbfKbfLbfMaRXbfNbfObfPbazbazbazbfQbfRbazaRZaRZaRZaRZbctbcubfSbfTaRZbcxbcybczbfUbfVbfWbfXbfYbfZbgabgabgabgbbgcbcIbgdaZnbgeaPNbaXbgfbggbdZbghbgibgjbgkbglbgmbedbgnbefbcQbgobgpbgobcQbefbcSbeibgqbfdbfebffbgrbfhbeqbeqbcTbgsaLeaLeaJwbflbdpbdpbdpbdpbdpbdpbdpbdpbdpbgtbdpbdpbdpbdpbdpbgubbLbbLbbLbbLbgvbdpbflbdpbdpbdpbdpbdpbdpbgwbgxbgybgzbgAbgAbgAbgBbgAbgAbgAbgAbgAbgAbgAbgAbgAbgAbgAbgAbgAbgAbgAbgCbgDbgEbgFbgFbgGaSWbgHaSXbgIaSZaSZbgJaSZbgIbeAbgKbgKbgKbgLaLSaQvaQuaQubgMaIUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiayuazKazLazKazMazLazLazNazKazLazKazMazLazLazLbgNbgObgNbgNbgNbgNbgPbgQaRXaRXaRXbgRaYVbazbcmbgSbgTbeGbazbgUbgVbgUaRZaRZaRZbgWbgXaRZbcxbcybgYbgZbhabhbbcCaRXaZnaZnaZnaZnaZnaZnaZnbhcaZnbhdaLebaXbgfbhebdZbghbhfbhgbgkbglbdZbedbhhbhibcQbhjbhkbhlbcQbhmbhnbeibhobhpbhqbhrbhsbhtbeqbhubcTbhvbhwbhxaJwbflbdpbdpbhybdpbhzbhAbhAbhAbhAbhBbhAbhAbhCbdpbdpbdpbdpbdpbhDbhEbhFbhGbflbdpbdpbdpbdpbdpbhHbhIbhJbhKbhLbdpbdpbdpbdpbdpbhMbhNbdpbdpbdpbdpbdpbdpbdpbdpbdpbdpbdpbdpbdpbflbhObhPbhQbhRaSWaSXaRMaOZaOZaOZaOZaOZaOZaLSbgKbgKbgKbgKaLSaQuaQuaQubhSaLSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaucayubhTayuaBcazLazLaBdayubhUayuaBebhVbhWbhWbgNbhXbhYbhZbiabibbgPbicbidbiebiebifbigbazbazbazbihbiibazaRXaRXaRXaRXbijbikbilbimbikbinbcybiobipbczbcBbcCbiqbcCbirbisbisbisbisbitbiubivbiwaLebaXbcLbdZbixbiybizbiAbiBbglbiCbiDbbibiEbiFbiGbiGbiGbiHbiIbbnbiJbiKbiLbiMbiNbiObiPbeqbiQbcTbbtaLeaLebiRbiRbiRbiRbiRbiRbiRbiSbiTbiTbiTbiUbiVbiSbiWbiWbiWbiWbiWbiXbiXbiXbiYbiXbiXbiXbiXbiZbdpbhMbjabjbbjcbjdbdpbdpbdpbjebjebjfbjfbjfbjfbjfbjgbjhbjhbjhbjibjhbjjbjkbjhbjhbjlbjmbjmbjmbjmbjnbjobjpbjqaOZabiaaaaaaaaaaaaaLSbjrbjrbjsbjsaLSaQvaQuaQubgMaIUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiaCfatcaCgawlayuaChaCibjtbjuayuawlaCgayuatcaCfaucbgNbjvbjwbjwbjwbjxbjybjzbjAbikbikbjBbjCbazbcmbjDbihbjEbazbjFbjFaULbjGbjHbjIbjJbjKbjKbjLbjMbjNbcAbjObjPbcCaULbjQbjRbivbjSbjTbjUbjVbjWbjXbjYbjZbkabcLbkbbcObkcbkdbkebkfbglbkgbcLabibkhbkibkibkibkibkibkjabibcTbkkbklbkmbknbeqbkobeqbkpbcTbbtaLebkqbiRbkrbksbktbkubkvbiRbkwbkxbkxbkxbkybkzbkzbkAbkBbkCbkDbiWbkEbkFbkGbkHbkFbkIbkJbiXbjbbkKbjbbjbbjbbkLbjdbkMbkNbkMbkObkObjfbkPbkQbkRbjfbkSbkTbkSbjfbkUbkVbkUbjmbkWbkXbkWbjmbkYbkZbjmblablbaOZaOZaOZabiabiaaaaaaaaablcaPcbldbldbldbldbldbldbldaPcbleaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKaaaaaaaaaabiabiabiabiayubhTayuayuayuayuayuayubhUayuabiabiabiaaabgNblfbgNblgbjwblhblibgNaULaWabljblkbllblmblmblmblmblmblmblnbloblpblqblrbcCbcCbcCbcCbcCbcCbcCblsbltbcCbcCbcCblublvblwblxblyblzblyblAblBbiwaLeblCbcLblDbcObcObcObcObkfbglblEbcLabibkhbkiblFblGblHbkibkjabibcTblIbfdblJblKbeqbiPbeqbeqbcTbbtaLeaLebiRblLblMblNblNblOblPbkzblQbkzbkzbkybkzbkzbkAblRblSblTbiWblUbkFblUblVblUblWbkFbiXblXblXblYblZbjbbmabjdbmbbmcbmdbmebmebjfbmfbmgbmhbmibmjbmkbmlbjfbmmbmnbmobjmbmpbmqbmpbmrbmsbmsbjmbmtblbaaaabiaaaabiaaaaaaaaaabiaaablcbmubmubmubmubmubmubmubleaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabmvbmwaaaaaaaaaabiaaaaaabmvbmxbmybmybmybmybmybmybmzbmwaaaabiabiaaabgNbmAbmBbmCbmDbmDbmEbmFbmGbmHaRXbmIbmJbmKbmKbmKbmLbmLbmLbmLbmLbmLbmMbmNbcCbmObmPbmQbmRbmSbmTbmUbmVbcCbmWbmXbmYbivbivbmZbnabnbbncbndbnebnfbngbaXbnhbnibnjbnkbnlbcObnmbglbcLbcLabibkhbkiblGbkiblGbkibkjabibcTbcTbnnbfebnobeqbnpbnqbnrbcTbbtaLeaLebiRbnsblMbntbnubnvbnwbkzbnxbnybnzbnAbnBbnCbkAbnDbnEbnFbiWblUbkFblUblVblUblWbnGbiXbnHbnIbnJbnKbjbbkLbjdbnLbnMbnMbnNbnObnPbnQbnRbnSbmhbmhbmhbnTbjfbnUbnVbnWbjmbnXbmsbmsbnYbnZboabjmbmtblbbobbobbobbobabiabiabiabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabocbodbmwaaaaaaabiabibmvboebofbofbogbohbofbofbofbofboiaaaabiabiaaabgNbojbgNbokbolbolbombgNbonbonaRXboobopboobooboobopbooaRXaRXbcCbcCbltboqbcCbmSbmSbmSbmSbmSbmSborbosbotboubovbowboxboybozboyboAboBboCblBbiwboDboEboFboGboHboIboJbcObkfbglbcLabiabiboKboLblHboMblFboNboOabiabibcTboPboQbcTbcTbcTbcTboRbcTboSaLeaLebiRboTboUboVblNblOboWbkzboXboYboZbpabpbbpcbiWbpdbpebpfbiWblUbkFblUblVblUblWbkFbiXbjbbjbbjbbjbbjbbkLbjdbpgbphbpibpjbpkbplbpmbpnbpobpobppbmhbpqbjfbprbnVbpsbjmbptbpubpvbpwbpxbpybjmbmtbpzbpAbpBbpCbpBaaaaaaabiabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpDbpEbpFbmwaaaabibmvbpGboebofbofbofbofbofbofbofbpHbpIbmybmwabiaaabgNbpJbmBbpKbolbpLbpMbgNaaaaaaaaabpNbpObpObpObpObpObpPaaaaaabpQbpRbpSbpTbpUbpVbmSbmSbmSbmSbmSbmSbpWbpXbpYbnabpZbqabqbbqcblBbqdbivbivbivbqebqfaObbnhbqgbqhbqhbqhbqhbqibqjbqkabiaaabkhbqlbkibkibkibqmbkjaaaabibqnbqobqpbqqbqrbqsbqnbqtbqnbquaLebqvbiRbqwbqxbqybqzbqAbiRbqBboXboYbqCbqDbkzbqEbiWbqFbqGbqHbiWbqIbqJbqKbqLbqMbqNbqMbqObqPbqQbqPbqPbqPbqRbjdbqSbmcbqTbqUbqVbqWbqXbqYbqZbqZbrabrbbrcbjfbrdbrebrfbjmbrgbrhbribrjbmsbrkbjmbrlbrmbrnbrobrobrobrobrobrobrpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpDbpEbrqbpFbmwbmvbpGbrrboibrsbofbofbofbofbofbofbofbrtbrubrvabiaaabgNbrwbmBbmBbmBbgNbgNbgNaaaaaaaaabrxbrybrybrybrybrybrxaaaaaabpQbrzbrAbrBbrCbrCbrCbrCbrCbrCbrCbrCbrCbrDbrEbrFbrGbrHbrIblBbrJblybrKblybrLbiwbrMbrNbnhbnhbqkbrObrPbrQbrRbrSbqkaaaaaabkhbrTbrUbrVbrUbrWbkjaaaaaabqnbrXbrYbrZbqnbsabqnbqtbqnbquaLebsbbiRbscbqxbsdblNbsebiRbsfbsgbshbsibsjbkzbskbiWbkAbslbsmbiWbiXbsnbiXbsobspbsqbsrbsrbsrbsrbsrbsrbsrbssbstbsubphbpibsvbswbsxbsybszbszbszbppbmhbsAbsBbsCbsDbsEbsFbsGbsHbsIbsJbsKbsLbjmbsMbsNbsObsPbsPbsPbsPbsPbsQblbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpDbpEbrqbrqbpIbodbrrbofboibrsbofbofbofbofbofbsRbpGbmybodbsSbmwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrxbrybrybrybrybrybrxbsTbpQbpQbsUbrAbmUbmSbsVbsVbsVbsVbmSbmSbmSbmSbsWbsXbsYbsZbtabtbbtcbtdbteblyblybrLbtfbtgbthbtibtjbtkbtlbtmbtnbtobtpbqkabiaaabkhbtqbtrbtrbtrbtsbkjaaaabibqnbttbtubtvbqnbtwbqnbqtbqnbtxaLebsbbiRbtybqxbtzbtAbtBbiRbtCboXbkybsibtDbtEbsfbsfbtFbtGbtHbtIbtJbtKbtLbtMbtNbtObtPbtQbtRbtSbtTbtUbtVbkLbtWbtXbtYbtZbuabubbjfbucbszbszbudbppbmhbuebufbugbuhbuibsFbujbukbulbumbmsbunbuobupbjmbuqbuqbuqbuqbuqbuqbmtblbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaburbmybusbrqbutbofbuubofbpIbuvbuwbofbofbofbsRbpGbrrbuxbuxbuyboeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrxbrybrybrybrybrybuzbuAbuBbuAbuCbuDbuEbuFbuGbmSbmSbmSbmSbmSbuHbcCbcCbuIblybuJbuKbuLblBbuMblybuNblybuObqubrMbuPbuQbuRbuSbuTbuUbuVbtobuWbqkaaaaaabkhbuXbuYbuZbuYbvabkjaaaaaabvbbvcbvdbvbbvbbvbbvbbvebvbbvfaObbvgbiRbiRbvhbvibvjbiRbiRbvkbvlbvmbkzbkzbkzbkzbkzbvnbvobvpbvpbvpbvqbvpbvrbtNbtObvsbvtbvubvvbvwbvxbtVbvybvzbvAbvBbvBbvCbvDbjfbvEbmhbmhbvFbppbmhbvGbvHbvIbnVbvJbsFbsFbvKbvLbvMbvKbsFbjmbjmbjmbvNbvObvPbvQbvRbuqbvSblbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabmvbpGbmyboebofbofbofbuybodbmybmybmzbsSbpGbrrbofbvTbvTbvUboiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrxbrybrybrybrybrybvVbvWbvXbvWbvYbmSbmUbmSbsVbsVbvZbsVbmSbmSbwabwbbcCbwcblybuJbuKblybwdblyblybweblybuObqubwfaLebuQbwgbwhbwibwjbwjbwkbwlbqkabiabibwmbwnbwobwpbwqbwrbwsabiabibwtbwubwvbwwbwxbwybwzbwAbvbbwBaLebwCbwDbwEbwFbwGbwHbwIbwJbwKbwLbwMbwNbwNbwNbwNbwNbwObwPbwNbwNbwNbwQbnCbwRbwSbtObwTbwUbwVbwVbwWbtUbtVbkLbjdbwXbwYbwZbxabxabjfbxbbxcbxdbsBbxebmhbxfbsBbxgbxhbxibxjbxkbxlbxmbxnbxobxpbxqbxrbxsbxtbxubxubxubxvbxwbxxblbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabmvbsSbodbrrbofboibofbofbofbofbofbofbofbofbuyboebofbofbofbofbofbxyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrxbrybrybrybrybxzbrxbsTbpQbpQbxAbmSbmUbmSbmSbmSbmSbmSbmSbmSbwabxBbcCbxCbxDbozbxEboybxFboybxGblybxHbrLbxIbwfaLebuQbuRbqkbxJbxKbxLbxMbxNbqkaaaaaaabibkhbxObxPbxObkjabiaaaaaabwtbxQbxRbxSbxTbxUbxUbxVbxWbxXbxYaPDbxZbyabybbycbydbyebyfbyebyebygbyhbyibyjbyjbyjbykbkzbkzbkzbylbymbymbynbtObtObtObyobypbyqbvwbtUbtVbjcbjdbyrbyrbyrbyrbyrbjfbsBbsBbsBbsBbysbytbysbsBbyubyvbywbyxbyxbyxbyybyzbyAbyBbyCbyDbyEbyFbyGbyHbyIbyJbyKbyLbyMbobbyNbyNbobabiabiabiabiabiabiabiabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabmvbsSbmybmybmybmybmybmybmybsSbmwaaabmvbpGbrrbofbofbofboibofbofbsRbmybmybmzbuvbofbofboibofbofbofbofbofbxyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrxbrybrybrybrybrybyObvWbvXbvWbrzbyPborbyQbpVbmSbyPbmSbmSbmSbwabyRbcCbySblybuJbyTbuMbyUbyVblyblybyWbrLbxIbwfbaXbuQbyXbqkbyYbyZbzabzbbrSbqkaaaaaaabibzcbzdbtrbzebzfabiaaaaaabwtbzgbzhbzibzjbzkbzlbzmbvbbznaLeaLebsfbsfbzobzpbvnbzqbzrbzsbztbztbzsbzrbzsbzrbzsbzrbzsbzrbiVbiVbymbzubwVbzvbzwbtObyobzxbzybzzbzAbtVbzBbzCbzDbzEbzFbyxbyxbzGbyxbyxbzHbzIbzJbzKbzLbyxbzMbzNbzObzPbzPbzPbzQbzQbzQbzQbzQbzRbzSbzTbzUbzTbzVbzTbuqbzWbzXbzYbzZbAabobabiaaaaaaaaaaaaaaaaaaabiaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpGbrrbofbofbofbofbofbofbofbuybpGbmybpGbrrbofbofbofbofbAbbofbofboibAcbAdbofboibofbofbxybofbofbofbAebAfbxyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrxbrybrybrybrybrybAgbAhbAibAhbAjbAkbAjbAjbAjbAjbAjbAlbAmbmSbwabAnbcCbAobApbAqbArbAsbAtbAubAubAubAtbAtbAvbwfaMzbAwbuRbqkbAxbAybAzbAAbABbqkaaaaaaabibACbADbwpbAEbAFabiaaaaaabwtbAGbAHbAIbAJbzkbzlbzmbvbbAKaLeaLebALbAMbANbzpbAObAPbzrbAQbARbASbATbAUbAVbAWbAXbAWbAYbzrbkzbkzbymbAZbwVbBabBbbBcbBdbBebBfbBfbBgbBhbBibBjbBkbBlbBmbBnbBobBnbBnbBpbBnbBnbBqbBrbBnbBnbBsbBtbBubzPbBvbBwbBxbBybBzbBAbzQbBBbBCbBDbBEbBFbBCbBGbuqbzWblbbBHbBIbBJbobaaaaaaaaaaaaaaaaaaaaaabibBKabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabmzbofbofbofbofbofbofbofbofbofbmzbofbmzbofbofbofbofbofbBLbofbofboibofbofbofboibofbofbBLbofbofbofbBMbBNbxyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrxbrybrybrybrybrybrxbsTbpQbpQbpQbcCbpQbpQbpQbBObBObBObBObBPbBQbBQbBObBObBRbBSbBTbBRbAtbBUbBVbBWbBXbAtbxIbwfaOaaLiaLibqkbqkbqkbqkbqkbBYbqkaLaaLaaLabBZbCabxPbCbbCcaLaaLaaLabvbbvbbvbbvbbvbbvbbvbbvbbvbbAKaLebCdbzrbzrbCebCfbzrbzrbzrbCgbARbChbARbCibCjbCkbClbCmbCnbCibkzbkzbymbCobCpbCqbCrbCsbCtbCubCrbCrbCvbCwbCxbCybCzbCzbCzbCzbCAbCzbCzbCzbCBbCBbCCbCDbCEbCEbvIbCFbvJbzPbCGbCHbCIbCJbCKbCLbCMbuqbuqbCNbCNbCNbuqbCObuqbzWblbbCPbBIbCQbobabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpGbuvbofbofbofbofbofbofbCRbsRbpGbmybpGbuvbofbofbofbofbAbbofbofboibofbCSbofboibofbofbxybofbofbofbAebAebxyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabCTbCUbrybrybrybCVbCWaaaaaaaaaaaaabiaaaaaaaaaaaabBObCXbCYbCZbDabDbbDcbBQbDdbDebDfbDgbAubDhbDibDjbDkbAtbxIbwfaLeaLeaLebDlaOqaOpaObbDmbDnbDoaZNaZNaZNbDpbDqbDrbDsbDtaLeaLeaLeaLeaOqaLeaObaLeaLeaLebDlaLebAKaLebDubzrbDvbDwbDxbDybDzbzrbDAbARbDBbARbCibCjbCjbDCbDDbDEbCibkzbDFbymbwVbDGbDHbDIbDJbDKbDLbDMbDNbtVbtVbjcbDObCzbDPbDQbDRbDSbDTbDUbCzbDVbDWbDXbDYbDZbCEbvIbCFbEabEbbEcbEdbEebEfbEgbEhbCMbEibEibEibEibEibEibEibuqbzWblbbEjbAabAabobabiabiabiabiabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIWaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabEkbodbmybmybmybmybmybmybmybodbElaaabEkbpGbuvbofbofbofboibofbofboibofbEmbEnboibofbofboibofbofbofbofbofbxyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabEobEpbEqbEqbEqbEpbEraaaaaaaaaaaaabiaaaaaaaaaaaabBQbEsbEtbEubEvbEwbExbEybEzbEAbEBbECbEDbEEbDjbEFbEGbAtbxIbEHaLeaLeaLeaLeaLeaLebEIaLebwfaLeaLeaLeaLeaLebEJbEKbELaLeaLeaLeaLeaLeaLeaLeaObaLeaLeaLeaLeaPNbAKbEMaLebzrbENbEObEPbEQbDzbzrbERbARbASbESbzrbETbEUbEVbEWbEXbzrbkzbkzbymbymbymbymbymbtVbtVbtVbtVbtVbtVbEYbkLbEZbCzbFabFbbFcbFdbFebFfbCzbFgbFhbFibFjbFkbCEbvIbFlbFmbFnbFobFpbFpbFqbFrbFsbCMbEibEibFtbFubEibEibEibuqbzWblbbCPbBIbFvbobabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabEkbodbsSbuvbFwboibofbofbuybmzbmybmybrrbofbofboibAebofbofbofbofbxyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFxbFybFybFybFzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBObFAbFBbFCbFDbFEbFFbFGbFHbFIbFJbFHbFKbFLbFMbFNbFObAtbFPbFQboEboEboEbFRboEboEbFSboEbFTaLebFUbFVaLeaOjbFWbFXbFYbFZbGabGbaZNaZNbGcaZNbGdbGeaZNbGfbGgbGhbGiaLeaLebzrbGjbGkbGlbzsbzsbzrbzsbGmbzsbzrbzrbzrbzrbzrbzrbzrbzrbkzbkzbkzbGnbGobzqbGpbGqbGrbGsbGtbGubGqbGvbssbGwbCzbGxbGybGzbGAbGBbGCbCzbGDbGEbGFbGGbGHbCEbvIbGIbGJbzQbGKbGLbGMbGNbGObGPbCMbEibEibEibGQbEibEibEibuqbzWbzXbGRbBIbBJbobaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabEkbpGbmyboebofbofbofbofbofbofbofbofbofboibAebofbofbofbofboiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBObBObBQbBQbBQbBQbBObBObGSbDebDfbGTbAtbAtbAtbAtbAtbAtbGUbGVaLiaLiaLiaLibGWbGWbGWbGWbGWbGWbGWbGWbGWbGWbGXaJwbGYbGZbGZbGZbGZbGZbHabGZbGZbGZbGZbHbbHcbHbaLjaMAbHdbzrbHebHfbHgbHhbHibzrbHjbARbHkbHlbHmbHnbHobHpbHqbHrbHlbHsbkzbkzbkzbkzbkzbvnbHtbHubHvbHubHwbGqbHxbkLbHybHybHybHybHybHybHybHybHybHzbHzbHzbHzbHzbHzbHAbHBbHCbzQbzQbzQbzQbzQbzQbzQbCMbuqbuqbuqbuqbuqbuqbuqbuqbzWblbbHDbHEbobbobabiabiabiabqabqabqabqabqabqabqabqabiabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabocbmybHFbrqbutbofbofbofbofbofbofbuubofbHGboibAebofbHHbofbsRboeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabHIaaaaaaaaaabiaaaaaabBRbHJbHKbHLbHMbHMbHNbHObHPbHQbHRbHSbGVaaaaaaabiaaabGWbHTbHUbHVbHWbHXbHYbHZbIabGWbIbbIcbIdbGZbIebIfbIgbIhbIibIjbIkbIlbImbInbIobHbbHbbHbbHbbzrbIpbIqbIrbIsbItbIubIvbIwbIxbIybIwbIwbIwbIzbARbIAbIBbICbyjbyjbIDbIEbIFbIGbHtbIHbIIbIJbIKbGqbHxbkLbHybILbILbILbIMbILbILbILbHybINbINbIObINbINbHzbIPbIQbIRbISbITbIUbIVbIWbIXbIYbIZbJabJbbJcbJdbJebJfbJgbJgbJhbJibITbITbobabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabiabiabiabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpDbpEbrqbrqbpIbsSbsSbsSbmzbmybmybxybxybxybodbmybuvbuxbsRbpGbElaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalubJjalvbJjalwaaaabiaaabBRbBRbJkbJlbJmbFHbJnbJobJpbJpbJqbJrbJsbJtabibJubJvbJwbJxbJybIabJzbIabJAbIabIabIabGWbJBbJCbJDbGZbIkbJEbJFbJGbJHbJIbJJbGZbGZbJKbJLbJMbJNbJObJPbJQbJRbJSbJTbJUbJVbJWbJXbJYbJZbKabKbbKcbARbARbARbKdbsfbsfbsfbsfbsfbKebKfbzpbHtbKgbKhbHubKibGqbHxbkLbHybILbILbILbILbILbILbILbHybKjbKkbKlbKmbKnbKobKpbKqbIRbKrbKsbKtbKtbKtbKtbKtbKtbKubKvbKwbJdbobbKxbKybKzbKzbKAbKBbKsabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabibKCbKDbKCabiabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpDbpEbrqbKEbElbEkbpGboebofbofbofbKFbofbofbofbofbuybsSbpGbElaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamcbKGbKHbKGamcbKIbKIbKIbBRbKJbKKbDebKLbKKbKMbBRbGVbKNbGVbGVbKObKPaaabKQbKRbKSbKTbIabIabKUbIabKVbKWbKXbIabGWbJBbJCbKYbGZbKZbLabLbbLcbLdbLebLfbGZbEYbLgbLhbLibLhbLjbLkbKabLlbLmbLnbARbASbzrbLobLpbLqbzrbLrbARbARbARbARbLsbsfbLtbLubLvbLwbLxbLybLzbLAbLBbHubLCbLDbLEbLFbLGbHybILbILbLHbILbILbILbILbHybLIbLJbLKbLLbLMbLNbLObLPbIRbLQbLRbKtbKtbKtbKtbLSbLTbLTbLTbLTbLUbLVbLWbLXbLYbLZbMabMbbKsabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabibKDbKCbMcbKCbKDabiabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpDbpEbKEbElaaaaaabEkbpGbuvbMdbofbofbofbofbofbofbuxbpIbElaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaolbMeaolalvbKIbMfbMgbBRbMhbKKbMibKKbMjbKMbBRbMkbMlbMmbGVbKObKPabibKQbMnbMobMpbMqbMrbMqbMqbMsbMtbMubMubMvbMwbMxbMybGZbGZbGZbGZbGZbMzbMAbGZbGZbMBbMCbMDbMEbMFbMGbMHbzrbMIbMJbMKbMLbMMbzrbMNbMObMPbzrbMQbMRbMSbMTbMUbMVbsfbMWbMXbvpbMYbvpbMZbNabNbbNcbNdbNebNfbGqbHxbkLbHybHybNgbILbILbNhbNgbHybHybNibNjbNkbNkbKkbHzbNlbNmbIRbNnbKsbKtbKtbNobNpbNqbKtbKtbNrbNsbNtbNubNvbNwbNxbNybNzbNAbKsabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabibNBbKDbNCbNDbNEbKDbNBabiabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaburbsSbElaaaaaaaaaaaabEkbodbsSbuvbofbNFbofbofbsRbmybElaaaaaaaaaaaaaaaaaaaaKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamcaolaolaolbNGbNHbKKbKKbNIbMhbKKbNJbKKbKKbKMbBRbNKbMmbNLbGVbKObKPaaabKQbNMbNNbNObIabIabNPbIabNQbNRbNSbNTbGWbNUbNVbNWbNXbNYbNYbNYbNYbNZbOabNYbNYbObbOcbOdbOebOfbOgbOhbIubIubIubIubIubIubIubIubIubIubOibOibOibOibOibOibOjbOkbsfbsfbsfbsfbOlbOmboXbGqbGqbGqbGqbGqbGqbHxbkLbHybOnbOobOpbOqbOrbOsbOnbOtbNibNjbNkbNkbOubHzbOvbOwbIRbOxbITbOybOzbOAbOBbOCbODbKtbOEbOFbJdbOGbOHbOIbITbITbITbOJbITabiabiabiabiabiabiabiabiabiabiabiabiabiabiabiabiabiabiabiabiabiabibKDbKDbOKbOLbOLbOLbOMbKDbKDabiabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabEkbElaaaaaaaaaaaaaaaaaaaaabEkbodbmybmybmybmybElaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvbMebMebMealvbKIbONbOObOPbOQbKKbORbOSbOTbOUbBRbGVbGVbGVbGVbKObOVabibOWbJvbOXbJxbOYbIabOZbIabIabIabPabPbbPcbPdbPebPfbPgbPhbPhbPhbPhbPibPhbPjbPkbPlbPmbPnbPobPpbPqbPrbqPbPsbqPbqPbqPbqPbqPbqPbqPbqPbqPbqPbqPbqPbqPbPtbPubsfbMWbPvbLxbPwbLxbLybPxbPybPzbPzbPAbPBbPmbPCbPDbHybPEbPFbPGbPHbPIbPJbPKbOtbOtbOtbOtbOtbOtbPLbPMbPNbPObPPbITbJdbJdbJdbJdbJdbJdbPQbKtbKtbJdbobbKxblbbITbPRbITbPSbPTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabPUbPVbPUbOLbPWbOLbPXbPYbKCabiabiabiabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamcapobPZbQaamcbKIbKIbKIbBRbBRbKIbKIbKIbBRbBRbBRbQbbGVaaabQcbQdbKPaaaaaaabiaaabGWbQebQfbQgbIabQhbQibQjbQkbGWbQlbQmbQnbQobQpbQqbQrbQsbQtbQpbQpbQpbQpbQpbQubQvbQpbQpbQwbQpbQxbQpbQpbQpbQpbQpbHbbHbbHbbHbbHbbHbbHbbHbbQybHxbsfbQzbQAbQBbQCbvpbQDbQEbQFbQGbQGbQHbQGbQGbQIbQJbHybQKbQLbQMbQLbQLbQLbQNbQObQPbQQbQRbQSbQTbQUbQVbNmbIRbQWabibQXbQYbQZbRabRbbRabRcbRdbRebJdbRfbzWbRgbRhbRhbITbITbITabiabiabiabiabiabiabiabiabiabiabiabiabiabiabiabiabiabiabiabiabiabibKDbKDbRibOLbOLbOLbRjbKDbKDabiabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiaaaaaaaqDbJjbRkbJjaqFaqyaqyaqyaqzacfaqzaqyaqzacfaqzbQcbMmbQcabibQcbKObKPabiabiabiabibGWbGWbGWbGWbGWbGWbGWbGWbGWbGWbRlbQmbRmbRnbQpbQqbQrbQsbQtbRobRobRpbRqbRrbRsbRtbRubRvbRwbRxbRybRzbRAbRBbRCbRDbREbRFbRFbRFbRFbRFbRGbHbbQybRHbRIbRIbRIbRIbRIbRJbRKbRLbRIbRIbRIbRIbRIbRIbRHbRMbRNbRObRPbRQbRPbRRbRPbRSbRTbRUbRTbRTbRTbRTbRVbRWbRXbIRbQWabibQXbRYbRZbSabSbbScbSdbSebSfbJdbSgbzWbpzbAabAabShbobabiabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKaaaaaaaaaaaaaaaaaaaaaaaaabiabibNBbKDbSibSjbSkbSlbNBabiabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiaaaaaaaaaaaaaaaaaaaaaaqyaqyaqyaqzacfaqzaqyaqzacfaqzbQcbMmbQcbQcbQcbKObKPaaaaaaaaaabibSmbSnbSnbSobSpbSqbSqbSrbSrbSmbJBbQmbRmbSsbQpbStbSubSvbSwbSxbRobSybSzbSAbSBbSCbSDbSEbSFbSGbSAbSHbSAbSIbSJbSKaqzbSLbSLbSLbSLbSLbSMbHbbQybSNbSObSPbSQbSRbRIbSSbSTbSUbRIbSVbSWbSXbSWbSVbSNbSYbSZbTabTbbTabTcbTdbTabTebTabTfbTabTgbTabTabThbTibTjbTkbQWabibQXbRYbTlbRabTmbRabTnbTobTpbJdbAabzWbpzbAabAabTqbobaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabibKDbKCbTrbKCbSlabiabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabibGVbGVbGVbQcbGVbQcbGVbGVbGVbGVbGVbGVbQcbQcbQcbGVbGVbGVbMmbMmbMmbTsbKObKPaaaaaaaaaabibSmbTtbSobSobSobTubSqbSqbTvbSmbTwbQmbTxbTybTzbTAbTBbTCbTDbTEbTFbTBbTBbTBbTGbTHbTIbTJbTKbTLbRCbTMbTNbTObTPbTQbREbTRbTSbTTbTUbSLbSMbTVbQybRHbTWbSVbSVbTXbRIbTYbTZbUabRIbSWbSVbSWbUbbUcbUdbkLbHybUebUfbUgbUfbUhbUibUjbQLbUkbUlbUmbUnbUobOtbUpbUqbUpbUrbUrbJdbJdbJdbJdbJdbJdbITbITbITbJdbUsbzWbUtbAabAabUubobabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabibKCbKDbKCabiabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGVbUvbUwbUxbUwbUybUzbUAbUBbMmbUCbUDbUEbUFbMmbMmbTsbMmbMmbQcbQcbQcbQdbKPaaaabibUGbUHbUIbUJbUJbUKbUJbULbUMbUNbUNbUObUPbQmbJCbUQbURbUSbUTbUUbUVbUWbUXbUUbUYbUUbUZbVabVbbRvbVcbVdbVebVfbVgbVhbVibVjaqzbVkbVlbTUbVmbSLbSMbTVbQybRHbVnbVobSVbVpbRIbVqbVrbVsbRIbSVbSVbVtbSVbSVbRHbQybHybOtbOtbOtbOtbPLbVubVvbVwbPLbOtbOtbOtbOtbOtbVxbVybVzbVAbVBbVCbVDbVEbVDbVFbUrbVGbVzbVHbVIbVJbzWbpzbobbobbobbobaubabiabiabiabqabqabqabqabqabqabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabiabiabiabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGVbGVbVKbVLbVMbVNbGVbMmbGVbMmaribVObMmbMmbMmbVPbGVbQcbQcbGVaaabQcbKObKPaaaabibVQbVRbVSbVTbVUbVUbVUbVUbVUbVUbVVbVWbVXbVYbJCbRnbVZbWabWbbSAbWcbWdbWebWfbWgbWhbWibWjbWjbWkbWlbRCbWmbWnbWobWpbWqbWrbWsbTRbWtbTUbTUbSLbSMbTVbQybRHbWubWvbWwbRJbRIbRIbWxbRIbRIbWybWybWzbWybWybRHbQybHybWAbWBbWBbWCbWDbQLbWEbWFbWGbWHbILbILbILbOtbWIbVzbVybWJbWKbVCbWLbWMbWNbWObUpbVzbWPbVzbVIbHDbWQbWRbobaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqabqabqabqabqabqabqabqabqabqabqabqbQcbWSbUwbWTbWTbWTbGVbWUbGVbWVbGVbVObMmbMmbWWbWXbGVaaaabiaaaaaabQcbKObOVbGVbGVbOVbWYbSmbWZbSobSobSobXabXbbXcbXdbSmbXebXfbJCbRnbXgbXhbXibSAbSAbXjbRobXkbXlbXmbXnbSAbSAbRvbXobXpbXqbXrbXsbXtbXsbXuaqzbSLbSLbSLbSLbSLbSMbHbbQybRHbSVbXvbXwbXxbXybXzbXAbXBbXCbSVbSVbSVbSVbXDbRHbQybHybILbXEbILbXFbXGbQLbXHbQLbXIbXJbILbXEbILbOtbXKbVzbVzbVybXLbXMbXNbXObXPbXQbUrbXRbVzbXSbVIbUrbXTbXUbobaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGVbGVbUwbXVbXWbXXbXYbXZbYabYbbGVbGVbGVbYcbGVbGVbGVbQcbQcbQcbYdbYebYfbYgbYhbJpbYibWYbSmbSmbSmbSmbSmbSmbSmbSmbSmbSmbYjbYkbJCbYlbQpbYmbYnbWebYobWebRobSAbSAbSAbXnbYpbYqbYqbYrbYsbYtbTMbYubYvbYwbTQbREbTRbYxbYybYybSLbSMbHbbQybYzbYAbYAbYAbYBbYCbSVbYDbXwbYEbXwbXwbXwbXwbYFbRHbQybHybILbILbILbYGbYHbWFbYIbQLbYJbYKbWBbWBbYLbOtbYMbYNbVzbVybYObVCbWNbYPbXMbYQbUrbYRbYRbYRbVIbYSbXTbXUbobabiabiabiabiabiabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqyaqybYTaqzaqzbYUaqybGVbGVbGVbGVbGVbGVbGVbGVbGVbGVbMmbMmbMmbMmbMmbMmbMmbYVbYWbYXbYYbYZbZabZabZabZabZbbZcbZcbZcbZdbZcbZebZfbZfbZgbGVbXebZhbJCbZibZjbZkbZlbYqbYqbZmbZnbYqbYqbZobZpbZqbSAbZrbZsbZtbZubSAbZvbZwbZxbVjaqzbVkbZybZzbZAbSLbSMbTVbZBbZCbZCbZCbZDbRHbZEbSVbZFbZGbZHbZIbZJbZJbZJbZKbRHbQybHybOtbOtbOtbOtbZLbZMbXHbZNbZLbOtbOtbOtbOtbOtbZObZPbVybVzbZQbZRbZRbZRbZRbZSbUpbYRbYRbZTbVIbZUbXTbXUbobbobbobaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabZVbZWbZWbZWbZWbZXbZYbZYbZZcaacabcaccadcaecafcagbGVcahbQcbQcbQcbQcbQcbQcbQcbQcbOVcaicajcajcajcajcajcajcajcajcakcakcakcakcakcalcambGVbXebZhbJCbZicancaocapcaqbWjcarcasbWjbWjcatcaucavcawcaxcaycazcaAbSAbZvcaBcaCbWrbWsbTRcaDbYybYybSLbSMbTVcaEbHbbHbbHbbkLbRHcaFbSVbSVcaGcaHcaIcaJbZJcaJcaKbRHbQybHybWAbWBbWBcaLbWDbQLcaMbWFcaNcaObILbILbILbOtcaPcaQcaRbVycaSbVybVzbVzcaTcaUbUrbYRbYRbYRbVIbZUbXTbXUbAabAabobabiabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqyaqzbYTaqyaqzaqyaqybQcbQcbQcbMmcaVcaWcaXcaYcaZbGVbMmbQcaqyaqyaqzaqyaqyaqzaqybOVcaicajcbacbbcbccbdcbecbfcbacbgcbhcbicbjcakcakcambGVcbkbZhbJCcblcbmcbncbncbocbpcbpcbpcbpcbpcbqcbrbRobRobRocbsbSAbZtbSAbZvbZwcbtbVjaqzbSLbSLbSLbSLbSLbSMbTVcaEcbubEYbEYbkLbSNcbvcbwcbxcbycbzcbAcbBbZJcbBcbCbRHbQybHybILcbDbILcbEbXGbQLbXHbQLbXIcbFbILcbDbILbOtcbGcbHcbIcbJcbKcbLcbMcbMcbNcbObUpcbPbZRcbQbVIbYRbXTcbRbobbAabobbobbobabqabqabiabiabiabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqyaqzbYTbYTbYTbYTbYTcbSbMmcbSbMmcbTcbUcaWcbVbMmbGVbMmbQcaqyaqyaqzaqyaqyaqzaqybOVcaicajcbacbWcbXcbYcbZccacbaccbcccccdcceccfcakcambGVbXebZhbJCccgcchbQpcciccjcbpcckcclccmcbpccnbXnccobRoccpcaAbSAcayccqccrbYvccsbTQbREbTRcctccuccvbSLbSMbHbcaEbHbccwccxbkLbRHccycczccAccBccCcczccDbZJccDbUbbUdbQybHybILbILbILccEccFbWFbYIbQLbYJccGbWBbWBbYLbHybVIccHccIccJbVIbVIccKccLccMccNccOccPccQccRbYRbYRbXTbXUbobccSbobccTbobabiabiabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqyaqyaqyaqyaqyaqzaqzbQcbQcbQcccUccVccWccXccYbMmccZbMmbQcaqyaqyaqyaqyaqyaqyaqybOVcaicajcdacdbcdccbYcddcdacdaccbcdecdfcdgcdhcakcambGVbXebZhcdicdjcdjcdkcdlcdmcdncdocdpcdqcbpbSAbXncdrcdsccpcdtbSAcayccqbZvbZwcdubVjaqzbVkcdvcdwcdxbSLbSMbHbcaEbHbbMFbMFbkLbRHbRIcdycdzbRIcdAbRIbRIbRIbRIbRIbRHbQybHybOtbOtbOtbOtbZLcdBbXHcdCbZLbOtbOtbOtbOtbHybXMcdDbXMcdEbXMbVIccKccLcdFcdGcdHcdIbVycdJbVIbYRbXTbXUbobbAabAabAabyNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabiabiabiabiabiabiaaaaaaaaaaaaaaaaaaabiabiabibQccdKcdLcdLcdMcaZbQbbGVbQcbQcaqycdNaqyaqyaqyaqyaqybKPcaicajcdacdacdOcdPcdQcdacdRcdScdTcdUcdVcdWcakcambGVcdXcdYcdZcdjceacebceccedceecefcegcehcbpceicejccobRoccpcekbSAcelccqbZvcemcenbWrbWsbTRceoccuccubSLbSMbTVcaEcepbHbceqbkLcerbYAbYAcesbRIcetceucevbHbcewcexbHxbQybHybWAbWBbWBceybWDbQLcaMbWFcezceAbILbILbILbHyceBbXMbXMbXMbXMbVIceCceCceDceEbUrbUrbVybUrbVIbUrbXTbXUbobceFceGceHbyNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqacqacqacqacqacqacqacqacqacyacqacqacqacqacqaaaaaabGVbGVbGVbGVbGVbGVccZbGVbGVbGVbGVaqzaqyaqyaqzacfceIaqyaqyaqybKPcaicajceJceKceLceMceNceOcePceQceRceSceTceUcakceVceWceXceYceZcdjcfacfbcfccfdcfecffcfgcfhcfibTLcfjbRobRobRocfkbSAcflcfmbZvbZwbSAbVjaqzbSLbSLbSLbSLbSLcfncfocfpcfqbHbcfrcfscftbZCcfucfvbHbcfwcfxcfybHbcfzbQGbQIcfAbHybILbXEbILcfBbXGbQLbXHbQLbXIcfCbILbXEbILbHycfDbXMcfEcfFcfGcfHcfIcfJcfKcfLbUrbVybVycfMbVIbHDcfNcfObobcfPcfQbAabyNaaaaaaaaaaaaaaaaaaaaKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqaaaabiaaaabiaaaabiaaaadGaaaabiaaaabiaaaacqabiabibGVcfRcfSbMmbYcbMmbMmbMmbMmbQbbQcaqyaqyaqyacfcfTcfUacfacfaqzbKPcaicajcfVcdacbacbacbacdacfWcfXcfYcfZcgacgbcakbGVbGVcgccgdcgecdjcdjcgfcggcghcgicgicgicgicbpbSAcgjcgkcglcgmcgncgocgpcgqccrbYvcgrbTQbREbTRcgscgtcgtbSLaqzbTVbEYcgubHbbHbcgvbDObHbcgwcgxbHbbHbcgybHbbHbcgxcgzbLFcgAbHybILbILbLHcgBcgCbWFcgDbQLbYJcgEbWBbWBbYLbHybXMbXMcgFbXMbXMbVIceCceCcgGcgHbUrcgIcgJcgJbVIbzZcfNbXUbobbobbobbAabobabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqaaacgKcgLcgMaaacgKcgLcgMaaacgKcgLcgMaaaacqaaaaaabGVcgNbMmcgObGVbGVbYcbGVbGVbGVbGVaqyaqyaqycgPacfacfaqzaqyaqybKPcaicajcdacgQcgRcbacgScdacdaccbcgTccecgUcgVcgWcgXcgYcgZchachbchcchdchechfchgchhchichjchkchlchmchnchobWjbWjchpbYpchqbYubWmbZwchrbVjaqzbVkchschtchubSLaqzbHbbHbchvchwchxcgvchybHbcgwchzchAchBchCchDchAchEchFblbchGbHybHybHybHybHybHybQLchHchIbHybHybHybHybHybHybVIbVIbVIbVIbVIbVIchJchJchKchLbVIbVIbVIbVIbVIbobchMbXUbobchNchObAabobabiabiabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqabicgKchPcgMaaacgKchPcgMaaacgKchPcgMabiabiaaaaaabGVchQbMmchRbGVbWVbMmchSbUEchTbGVaqyaqyaqyaqyaqzaqyaqyaqyaqybOVcaicajcbachUchVcbachWchXcbaccbchYchZciacibciccidciecifcigcihciicijcikcilcimcinciocggcipchlciqbSAcgjbYpbYqcirciscitciubRBcivciwbWrbWsbTRcixcgtcgtbSLaqzbHbbEYciycizciAciBciCbHbciDciEciFchFciGchFcgzciHciIblbciJbHyciKciLciLciMciNbQLchHciObHyabiabiabiabibobciPbShciQciRciRbVIciSciSchKciTbVIciUbAabAabAabHDchMcbRbobciVbAabAabobbobbobabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqaaacgKchPcgMabicgKchPcgMabicgKchPcgMaaaabiabiabibGVciWchRciXbGVciYciZcjacjbbWWbGVaqyaqyaqyaqyaqzaqyaqyaqzaqybOVcaicajcbacjccjdcjecjfcjgcbacjhcjicjjcjkcjlcakcjmcjncjocjpcjqcjrcjscjtcjucjvcjwcjxcjycjzcjAcjBbSAcgjcjCbSAbSAbSAcjCcjCcjCbZwcjDcjEaqzbSLbSLbSLbSLbSLaqzbHbcfrcjFcjGcjHcjIcjJbHbbHbcjKcjLcjMbHxcjNcjObHbbHbblbciJbHycjPcjQcjQcjRcjScjTcjUcjVbHyabiaaaaaaabibobbAacjWbBIcjXcjYbVIcjZcjZckaciTbVIbobbobckbckcbHDchMbXUbAabAabAackdbpBckebpBabqabqabiabiabiabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabicgKchPcgMaaacgKchPcgMaaacgKchPcgMabiabiaaaaaabGVckfckgckhbGVckickjbGVckkbGVbGVaqyaqzaqyaqyaqzaqyaqyaqzaqybOVcaicajcajcajcajcajcajcajcajcakcakcakcakcakcakbGVcklbGVchlckmckmckmcknckockpckmckqckrckschlbSAbVfcktcjCbSAbSAbSAbSIbZqcjCbZwcjCbQpaqzaqzaqzaqzaqzaqzaqzckuckuckvckwckxckuckuckuckyckzckAcjMckBcjMcjMbHbckCbDOciJbHybHyckDckDbHybHyckDckEckDbHyaaaaaaaaaaaabobbobchMckFbobbobbVIbVIbVIckGckHbVIbHDbobceHbAackIchMcfObobbobckJbobbobbobbobabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqacqacqabiaaacgKchPcgMaaacgKchPcgMaaacgKchPcgMaaaabiaaaaaackKckLckLckLckLbGVbGVckMckNbGVbQcbQcbQcbQcbQcbQcbQcbQcbQcbGVckOckPbYeckQckRckSckSckSckSckSckSckSckSckSckTckTckSckUckichlckVckWckXckYckZclackmclbclccldchlcleclfbWoclgclhcliclhclgcljclgclkcjCbQpbQpbQpaqyaqyaqzaqzckuckucllclmclncloclpclqckuclrbEYclscltcluclvclwbPBbPBclxclybobaaaaaaaaaaaaaaaabiclzabiaaaaaaaaaaaaaaabobclAclBclCclCclDclEclFclGclHclIbobbobbobbobclJbobchMbXUbobclKclLbAabobaaaabiabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqaaaabiaaaaaaaaaclMaaaaaaaaaclMaaaaaaaaaclMaaaaaaabickKckKckKclNclOclPclQclRbMmclSclTclUclVclVclVclVclVclVclVclVclVclVclVclWbZfclXclYchlchlchlchlchlchlchlchlchlchlchlchlchlchlchlckmclZckYcmacmbcmccmdcmecmfcmgchlclecmhcmicmjcmkcmlcmmcmnbSAcmocmpcmqcmrcmscmraqyaqyaqzcmtcmucmvcmwcmxcmycmzcmAcmBckubEYbEYcjMcjMbDOcjMchFbEYbEYbDOcmCbobbobbyNbyNbobbobbyNcmDbyNbobbobbyNbyNbyNbobcmEcmFbrocmGcmHcmIcmIcmIcmJcmKcmLcmMcmNcmOcmOcmOcmPcmQbobchObAacmRbobaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqabicmScmTcmTcmUcmVcmVcmVcmVcmVcmVcmVcmVcmVcmVcmVcmWcmXcmYcmXcmZcnacnbcncclVcndcnebUEbGVbQcbQcbQcbQcbQcbQcbQcbQcbQcbGVbGVcnfcngcnhcnichlcnjcnjcnkcnlcnmcnncnocnpcnqcnrcnscntcnucnvckmcnwcnxcnycnzcnAcnBcnCcnDcnEchlbQpcnFbRvcnGbRvcnHbRvcnGbRvcnIbRvcnJbQpbQpbQpaqzaqzaqzbSMckucnKcnLcnMcnNcnOcnPcnQckucnRbEYchFchFcnScjMchFbEYcnTbDOcnUbZabZabZabZabZacnVbZacnWcnXcnXcnXcnXcnXcnXcnYcnZbpzbobcoacobbobbobbyNbyNbobbobcoccfNcodbrocoecofcogbobbobbobbobbobaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqaaaabiaaaaaaaaacohaaaaaaaaacohaaaaaaaaacohaaaaaaabickKckKckKcoicojcokckLbMmbMmbMmbMmbGVaaaaaaabiaaaaaaabiaaaaaaabiaaabGVcolbGVcomconchlcoocopcoqcorcoscotcoucovcoucowcoxcoycozcotckmcoAckYcoBcoCcoDckmcoEcoFcoGchlaqzcoHaqzbSMaqzcoHaqzbSMaqzcoIaqzcoIaqzaqzaqyaqyaqyaqzbSMckucoJcoKcmxcoLcoMcoNcoOcoPcoQcoRcoSchFbHxchFcoTcgzciHcoUcoVcoVcoVcoVcoVcoVcoVcoWcoXcoVcoVcoVcoVcoVcoVcoYcoZcpabobcpbcfNbobaaaaaaaaaaaabobbAacfNcpccpdcpdcpecpfcpdaaaabiabiabiabiabiabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqacqacqabiaaacgKcpgcgMaaacgKcpgcgMaaacgKcpgcgMaaaabiaaaaaackKckLckLckLckLcphbQbbMmbMmbGVbGVbQccpicpjcpjcpjcpjcpjcpjabibGVbGVbGVcpkcplchlcpmcoqcoqcorcpncoucpocppcpqcprcoucoucoucouckmcpscptcptcpucpvckmcpwclccpxchlbSLcpybVkcpybSLcpybVkcpybSLcpzbVkcpAbSLaqyaqyaqyaqyaqybSMcpBcpCcmzcpDcmzcpEcpFcpGckucpHcjMcjMcjMcpIcjMcjMcjMbHbbGVbGVbGVbQcbQcbQcbGVbGVbQcbQcbQcbGVbGVbQcbQcbQcbGVcpJbobbobcpKcfNbobbobbyNbyNbobbobbAacfNcpLcpdcpMcpNcpOcpdaaaaaaabiabiaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabicgKcpgcgMaaacgKcpgcgMaaacgKcpgcgMabiabiabiaaaaaaaaaaaaabqbGVbGVbGVcpPbMmbGVcpPbNLcpjcpQcpRcpScpRcpTcpjaaabGVbWWbMmcpUcplchlcpVcpVcpWchlcpXcpYcpZcoucqacprcqbcqccqdcqdckmcqecqfcqfcqgcqhcqicqjcqkcqlchlbSLcqmcqncqobSLcqpcqqcqrbSLcqscqtcqubSLaqyaqyaqyaqyaqybSMckucqvcqwcqxcqycqzcqAcqBckucqCcqDcqEcqFcqGcqHchFchFbEYcqIbMmbQcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiaaabobcqJbHDbobcqKcqLcqMclEcqMcqMcqMcqMcqNcqOcqPcpdcqQcqRcqScpdabiaaaaaaaaaaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIWaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqaaacgKcpgcgMabicgKcpgcgMabicgKcpgcgMaaaabiabiabiaaaaaaaaaabqcqTcqUcqTbMmbMmbYcbMmcqVcpjcqWcqXcqYcqZcracpjaaabGVckjbMmcpUcplchlcpVcpVcpWchlcrbcntcrccrdcrecrfcrccntcrccrccntcrgcrhcricpncrjcrkcrlcrmcrnchlbSLcrocrpcrobSLcrqcrrcrqbSLcrscrtcrubSLaqzaqzaqzaqzaqzbSMckuckuckucrvcrwcrxcrycrzcrwcqCcrAchFcrBcrCcrDciIchFcrEbGVbMmbQcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiaaabobcrFclLbobcrGcrHcrHcrIcrHbrobrobrocrJcrJcrKcpdcrLcrMcrNcpdabiaaaabiaaaaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqabicgKcpgcgMaaacgKcpgcgMaaacgKcpgcgMabiabiaaaabiabiaaaaaaabqbGVbGVbGVbGVbMmbGVbGVbGVcpjcrOcrPcrQcrRcrOcpjabibGVchlcrScrTcrUchlcpVcpWcpWchlcrVcrWcrXcrYcqacrZcsacsbcsacsacsccsdcsecsecsfcsecsecsgcshcsichlbSLcrocsjcrobSLcrqcskcrqbSLcrucslcrubSLaqyaqyaqzaqzaqycfnbRGaqyaqycsmcrwcsncsocspcrwbEYcsqcsrbLFcsscstcgzcsucsvbGVcqIbQcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiaaabobcswbAabobbobbobbobbobbAabobabiaaaaaaaaaabicsxcsxcsycsxcsxabiabiabiabiabiabiabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyaaacgKcszcgMaaacgKcszcgMaaacgKcszcgMaaaacqaaaaaaabiabiaaaaaaaaaaaaaaabQcbMmbQcaaaaaacpjcsAcsBcsCcsDcsEcpjcpjcpjchlcsFcrTcsGchlchlchlchlchlcsHcsIcoucoucqacrmcoucovcsJcsKcsLcoucoucoucoucsMcoucqacprcsNchlbSLbSLbSLbSLbSLbSLbSLbSLbSLbSLbSLbSLbSLaqyaqzaqzaqyaqyaqybSMaqyaqycsOcrwcrxcsPcrzcrwbHbcsQciHcsRcsSciHcsTbHbbHbbGVabqabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabibobcsUbAabAabAabAabAabAabAabobabiaaaaaaaaaabiaaacsxcsVcsxaaaabiaaaabiaaaaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqaaaabiaaaabiaaaabiaaaabiaaaabiaaaabiaaaacqaaaaaaaaaabiabiaaaaaaaaaaaabQcbMmbQcaaaaaacpjcsWcsXcsYcsZctactbctcctdctbctectfctgcthctictjctkctlctmctnctoctpctqctrcpxchlctschlctschlcpxcttcoucouctucqacprctvchlchlchlchlchlcntcntcntcntchlabiabiabiabiaqzaqzaqyaqyaqyaqybSMaqyaqycsOcrwctwctxctyctzaqzbHbcjKctAbTVbTVbHbbHbaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabibobctBctCctDciUctEbRfbSgbobbobabiaaaaaaaaaabiaaacsxcsycsxaaaabiaaaabiaaaaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqacqacqacqacqacyacqacqacqacqacqacqacqacqacqaaaaaaaaaaaaabiabiaaaaaaabibQcbMmbQcabiabicpjctFctGctHctIctJctKctLctMctNctOctPctQctRctRctRctSctRctTctUctVctWctXctYchlctZcuacubcuacucchlcudcoucuecufcqacugctXctXctXcuhcuichlcujcntcukculculcumaaaaaaaaaaqyaqyaqyaqyaqyaqybSMaqyaqycsOcrwcrwcuncrwcrwaaaaqzaaacuoaqyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabobbobbobccSbobcpJbobbyNbyNbobbobaaaabiaaaaaaaaaabiaaaaaacupaaaaaaabiaaaabiaaaaaaabiaaaaaaaaaaaKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabiaaaaaabQcbMmbQcaaaaaacpjcuqcurcuscutcuucpjcuvcuwcpjcuxcuycuzcovcoucuAcrccuBcpncuCcuDcuEcuEcuEcuFcuGcuHcuIcuJcuKcuFcuLcuLcsLcpocuMcuNcppcppcpqcrmcuOcuPcoqcuPcuQcuRcuScuTcuUaaaaaaaqyaqyaqyaqyaqyaqybSMaqyaqycsObYTcrwcuVcrwcuWaqzaqzaaacuXaqyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabobcuYcuZcuZbobcvaabiaaaaaaabiaaaaaaabiaaaaaaaaaabiaaaaaacupaaaaaaabiaaaabiaaaaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabibGVbGVcvbbGVbGVaaacpjcvccvdcvecpjcpjcpjcpjcpjchlcvfcoucuzcoucoucvgcrccvhcpncvicvjcvkcvlcvmchlcvncvocvpcvqcvrchlcvscvtcvtcvjcvicpncvucvvcqacrmcvwchlcvxcntcvyculculcvzaaaaaaaaaaqyaqyaqyaqycvAaqybSMaqyaqycvBbYTcvCcvDcvCbYTaqzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyNbyNbyNcuZcuZcvEbobaaaabiaaaaaaabiaaaacqacqacqacyabiabiabiabicupabiabiabiabiabiacyacqacqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabibGVcolbMmcvFbGVabicpjcpjcpjcpjcpjabiaaaaaaabichlcvGcoucvHcvIcvIcvJcntcntcvKchlcvLcvMcvMcvMchlcvNcvOcvPcvQcvRchlcvMcvMcvMcvLchlcvKcntcntcqacrmchlchlcntcntcntcntchlabiabiabiabiaqzaqzaqyaqyaqyaqybSMaqyaqyaqzbYTaaaaaaaaabYTaqzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyNbAacvScuZcuZcvTbobaaaabiaaaaaaabiaaaacqaaaaaaabiaaaabiaaaaaacvUaaaaaaabiaaaabiaaaaaaacqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabQccvVcvWcvXbGVabiaaaaaaabiaaaaaaabiaaaaaaabichlcvYcvZcpncwacwbcwccntcwdcwechlcwfcwgcwhcwgcwicwjcwkcwlcwmcvRcwicwgcwgcwgcwnchlcwocwpchlcqacwqcwrcwscwtcwucwiaaaaaaaaaaaaaaaaaaaqyaqyaqyaqyaqyaqybSMaqyaqyaqybYTbYTbYTbYTbYTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyNcvSbyNbyNbyNbyNbobaaaabiaaaaaaabiaaaacqabicwvcwvcwvcwvcwvaaacwwaaacwvcwvcwvcwvcwvabiacqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabQccwxcwybNKbGVcntcwzcwzcwzcwzcwzcwzcwzcwzcntchlcwAchlcwBchlcwAchlchlchlcvKchlchlcwicwicwicwicwCcwDcwEcwFcwGcwicwicwicwichlchlcvKchlchlcwHcwIcwJcwKcoucwLcwiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqabqabqaaaaaaaaaaaaaaaaaaaaaaaaabiaaaacqaaacwNcwOcwOcwOcwOcwPcwwcwQcwRcwRcwRcwRcwSaaaacqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabQcbQcbQcbQcbGVabiabicwTcwTcwTcwTcwTcwTcwTcwTcwTcntcwUcwVcwWcntabichlcwXcwYcwZaqyacfcxacwicwicwicwicxbcwicwicwicwicxaacfaqycxccxdcxechlcxfchlchlcxgcxhcxicwiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiaaaacqadGcxjcxjcxjcxjcxjaaacwwaaacxjcxjcxjcxjcxjabiacqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabicwTcwTcwTcwTcwTcwTcwTcwTcwTcntcoqcxkcoqcntabichlcxlcxmcxmaqycxncxocxocxocxocxocxpcxocxocxocxocxocxqaqycxmcxrcxlchlcwUcxschlcntcntcxtcntabiabiabiabiabiabiabiabiabiabiabiabicwMabiabiabiabiabiabiabiabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiaaaacqaaaaaaaaaabiaaaaaaaaacwwaaaaaaaaaabiaaaaaaaaaacqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabicwTcwTcwTcwTcwTcwTcwTcwTcwTcntcntcxucntcntabichlcxvcxwcxxaqzcxyacfcxzaqyaqyaqyaqycxzaqyaqycxzacfcxyaqycxAcxBcxCchlcxDcxEcntabiaaacxFcxGabiaaaaaaaaaabiaaaaaaaaaabiaaaaaaaaacwMaaaaaaaaacxHcxHcxHcxHcxHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqabicwvcwvcwvcwvcwvaaacwwaaacwvcwvcwvcwvcwvabiacqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabicwTcwTcwTcwTcwTcwTcwTcwTcwTcwTcwTcwTcwTcxIabichlcxlcxmcxJaqycxKcxLaqyaqyaqyaqyaqycxMaqyaqyaqycxNcxOaqycxmcxmcxlchlabqabqabqabiaaacxPcxQcxRcxScxTcxScxRcxScxTcxScxRcxScxTcxScxUcxScxScxScxVcxWcxXcxYcxHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqaaacwNcwOcwOcwOcwOcwPcwwcwQcwRcwRcwRcwRcwSaaaacqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKaaaaaaaaaabiabiabicwTcwTcwTcwTcwTcwTcwTcwTcwTcwTcwTcwTcxIabichlcxZcyacxmaqycxyacfaqyaqyaqzaqzaqzaqzaqzaqyaqyacfcxycybcxmcyccydchlabiaaaabqabiaaaaaaaaaabiaaaaaaaaaabiaaaaaaaaaabiaaaaaaaaacwMabqcxHcxHcxHcyecyfcyecxHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqabicxjcxjcxjcxjcxjaaacwwaaacxjcxjcxjcxjcxjabiacqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabiabicwTcwTcwTcwTcwTcwTcwTcwTcwTcwTcwTcwTcxIabichlchlcygcxmaqycxyacfcxzaqzaqzcyhcyicyjaqzcykaqyacfcxyaqycxmcygchlchlabiaaaabqabiabiabiabiabiabiabiabiabiabiabiabiabiabiabiabicwMabqcylcymcylcyncyocyncxHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyaaaaaaaaaabiaaaaaaaaacwwaaaaaaaaaabiaaaaaaaaaacqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabiabiabicwTcwTcwTcwTcwTcwTcwTcwTcwTcwTcwTcxIabicpxchlcypcxmaqycxKcxLaqyaqyaqzcyqcyrcysaqzaqyaqycxNcxOaqycxmcytchlcpxabiaaaabqabqabqabqabqabqabqabqabqabqabqabqabqabqabqabqabqcyuabqcxHcyvcywcyxcyocyycywaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqabicwvcwvcwvcwvcwvaaacwwaaacwvcwvcwvcwvcwvabiacqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabiabiabicwTcwTcwTcwTcwTcwTcwTcwTcwTcwTcwTcxIabichlchlcygcxmaqycxyacfaqycyzaqzcyAcyBcyCaqzaqzcxzacfcxyaqycxmcygchlchlabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMabqcyDcyDcyDcyDcyEcyFcyGcyHabiabiabiabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqaaacwNcwOcwOcwOcwOcyIcyJcyIcwRcwRcwRcwRcwSaaaacqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabiabiabicwTcwTcwTcwTcwTcwTcwTcwTcwTcwTcwTcxIabichlcyccydcxmaqycxyacfaqyaqyaqzaqzaqzaqzaqzaqyaqyacfcxyaqycxmcxZcyachlabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMaaaaaacyDcyDcyKcyLcyMcyDcyDcyDcyDcyDabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqabicxjcxjcxjcxjcxjaaacupaaacxjcxjcxjcxjcxjabiacqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabiabiabicwTcwTcwTcwTcwTcwTcwTcwTcwTcwTcwTcxIabichlcxlcxmcyNaqycxKcxLaqyaqyaqyaqzaqyaqyaqyaqyaqycxNcxOaqycxmcxmcxlchlabiaaaaaaaaKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMaaaaaacyDcyOcyPcyQcyRcyScyTcyUcyVcyDabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqaaaaaaabiaaaabiaaaaaacupaaaaaaabiaaaabiaaaaaaacqaaaaaaaaaaaaaaKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabiabiabiabiabicwTcwTcwTcwTcwTcwTcwTcwTcwTcwTcwTcxIabichlcyWcxwcxxaqzcxyacfcxzaqyaqycxzaqyaqyaqyaqycxzacfcxyaqycxAcxBcyXchlabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMaaaaaacyDcyYcyZczaczbczcczdczeczfcyDabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKaaaaaaaaaaaaacqacqacqacqacqabiabiaaacupaaaabiabiacqacqacqacyacqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabiabiabiabiabiabiabiabiabiabicwTcwTcwTcwTcwTcwTcwTcwTcxIabichlczgcxmcxmaqycxyacfacfczhacfacfczhacfacfczhacfacfcxyaqycxmcxmczgchlabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabicziczjabicyDczkczlczmcznczoczpczqczrcyDabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqabiczsabiacqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabiabiabiabiabiabicwTcwTcwTcwTcwTcwTcwTcwTcxIabichlczgcxmcztaqyczucxocxoczvcxocxoczvcxocxoczvcxocxoczwaqyczxcxmczgchlabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiczyczzczyczyczAczBczCczDczEczFczFczFczFabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqaaaabiaaaacqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabiabiabiabiabiabiabiabiabiabiabicwTcwTcwTcxIabiczGchlchlchlcxmaqzaqzaqzaqzaqyaqyaqyaqyaqyaqzaqzaqzaqzcxmchlchlchlczGabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczyczyczHczIczyczJczJczKczLczJczFczMczMczFczFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqacqacqacqacqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabiabiabiabiabiabiabiabiabiabiabiabiabiabiabiabiabiabiabiabiabiczgchlchlcntcntcntcntcntcntcntcntcntcntcntcntcntchlchlczgabiabiabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczyczNczOczPczQczJczRczSczTczJczUczVczVczWczFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiaaaaaaabiabiaaaaaaaaaabiabiabiaaaabiabiaaaaaaaaaabiabiabiczgczgczgczgcldczgczgczgczgczgczgczgcldczgczgczgczgabiabiabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczyczXczYczZcAacAbcAccAdcAecAbcAfcAgcAhcAiczFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiaaaaaaabiabiaaaaaaaaaabiabiabiaaaabiabiaaaaaaaaaabiabiabiabiabiabiabiabiabiabiabiabiabiabiabiabiabiabiabiabiabiabiabiaaaaaKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczycAjcAkcAlcAmcAncAocApcAqcArcAscAtcAucAvczFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiaaaaaaabiaaaaaaaaaaaaabiabiabiaaaabiabiaaaaaaaaaabiaaaaaaaaaaaaaaaaaaabiaaaaaaaaaaaaaaaaaaaaaabiabiaaaaaaaaaaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczyczycAwczYcAxczJcAycAzcAAczJcABcACcADczFczFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiaaaaaaaaaaaaabiabiabiaaaaaaabiaaaaaaaaaabiaaaaaaaaaaaaaaaaaaabiaaaaaaaaaaaaaaaaaaaaaabiabiaaaaaaaaaaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabicAEcAFcAGcAFcAEcAEcAHcAIcAEcAFcAJcAFcAEabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabiaaaaaaabiaaaaaaaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKaaaaaaaaaaaaaaaabiaaaaaaaaaaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAEcALcAMcAFcANcAOcAPcAQcANcAFcARcAScAEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabiaaaaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabicAEcATcAMcAFcANcAOcAPcAQcANcAFcARcAUcAEabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiaaaaaaaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAVcAEcAEcAMcAFcAWcAOcAXcAYcAZcAFcARcAEcAEcBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabicAEcBbcAFcBccAOcAPcAQcANcAFcBdcAEabiabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabicAEcBecBfcBgcBhcBicAQcBjcBkcBlcAEabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabicAEcBmcAFcBncBocBpcAQcBqcAFcBmcAEabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabicAEcBmcAFcAWcBrcBscAQcAZcAFcBmcAEabiabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabicAEcAEcBmcAFcANcAOcAPcAQcANcAFcBmcAEcAEabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabicAEcBmcBmcAFcANcAOcBtcAQcANcAFcBmcBmcAEabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAEcBmcBucBucBvcBucBwcBxcBycBucBucBmcAEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAEcBmcBucBucBzcBAcBBcBCcBDcBucBucBmcAEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAEcBmcBucBucBEcBFcBGcBHcBIcBucBucBmcAEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAEcBJcBucBucBKcBKcBLcBMcBKcBucBucBJcAEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAEcBJcBucBOcBOcBPcBQcBHcBOcBOcBucBJcAEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBucBucBucBRcBScBTcBUcBVcBWcBXcBucBucBuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBucBucBucBOcBBcBYcBZcCacBHcBOcBucBucBuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabicBucBucBucCbcBQcCccCdcCccCecCbcBucBucBuabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacCfcBucBucCgcBPcChcCccCccCccCicBPcCjcBucBucCkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacClaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabicBucBucBucCbcCmcCncCocCccBPcCbcBucBucBuabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBucBucBucBRcBPcCpcCqcBOcBPcBXcBucBucBuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBucBucBucBOcBPcCrcCscBPcBPcBOcBucBucBuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBucBucBucBucBucBucBucBucBucBucBucBucBuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBucBucBucBucBucBucBucBucBucBucBuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabicBucBucBucBucBucBucBucBucBuabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabiaaaaaacCtaaaaaaabiabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +cyc +cyc +cye +cyc +cyc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +cyc +cyw +cyi +cyw +cyc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +cyc +cyi +cyi +cyi +cyc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +cyc +cyi +cyi +cyi +cyc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +cyc +cyi +cyi +cyi +cyc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +cyc +cyi +cyi +cyi +cyc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +cyc +cyi +cyi +cyi +cyc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +cyc +cyi +cyi +cyi +cyc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +cyc +cyi +cyi +czd +cyc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +cyc +cyw +cyi +cyw +cyc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +cyc +cyc +cye +cyc +cyc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +cyc +cyi +cyc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +cyc +cyc +cye +cyc +cyc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +cyc +cyc +cyw +cyi +cyw +cyc +cyc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +cyc +cyf +cym +cym +cym +cyF +aaa +cyc +cyw +cyi +cyi +cyi +cyw +cyc +aaa +cyf +cym +cym +cym +cyF +cyc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aqH +apK +aqH +aaa +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aqF +apH +aqF +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cyc +cyc +cyo +cyo +cyo +cyc +cyc +cyc +cyi +cyi +cyi +cyi +cyi +cyc +cyc +cyc +cyo +cyo +cyo +cyc +cyc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aqH +cpK +aqH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aqF +cxl +aqF +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cyc +cyn +cyv +cyv +cyn +cyc +cyw +cyi +cyi +cyi +cyi +cyi +cyw +cyc +cyn +cyv +cyv +cyn +cyc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aqH +cpL +aqH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aqF +cxx +aqF +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cyc +cyn +cyv +cyv +cyc +cyi +cyi +cyi +cyi +cyi +cyi +czr +cyc +cyv +cyv +cyn +cyc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +ckq +cqq +ckq +aaa +aaa +aaa +aCS +aCV +aCV +aCV +aCS +aaa +aaa +aaa +cwU +cxF +cwU +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaa +aaf +aaa +aaa +aaa +cyc +cyc +cyH +cyc +cyc +cyc +cyR +cza +cyR +cyc +cyc +cyc +cyH +cyc +cyc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aCS +aFC +aEr +aIG +aCS +aaa +aaa +arB +asE +cyb +asE +arB +aaa +cxt +cxD +cxt +aaa +aaf +aaa +aaa +aaa +aaf +aaf +aaa +aaa +aaa +cyc +cyc +cyi +cyi +cyi +cyi +cyi +cyi +cyi +cyi +cyi +cyi +cyi +cyc +cyc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aCS +aFC +aEr +aIG +aCS +aaa +aaa +aAC +auO +auP +cxY +arB +cxt +cxy +cxC +cxy +cxt +aaf +aaa +aaf +aaa +aAC +aaf +aaa +aaa +cyc +cyc +cyw +cyI +cyi +cyi +cyi +cyi +cyi +cyi +cyi +cyi +cyi +cyi +cyc +cyc +cyc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +amO +aac +aac +aac +aac +czq +aac +aac +aac +clO +aaa +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 +arC +arC +arC +arC +arC +arC +arC +aEp +apJ +avP +cyb +asE +arB +aaa +aCS +aCS +aCS +aHs +aCS +aCS +aCS +aaa +arB +asE +cyb +avP +arB +cxu +cxC +cxC +cxH +cxu +arB +awW +awW +asE +arB +aaf +aaa +cyc +cyc +cyw +cyi +cyi +cyi +cyi +cyc +cyc +cyc +cyc +cyc +cyc +cyi +cyi +cyc +cyc +cyc +cyc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +amO +aac +aac +aac +aac +aac +aac +cmM +cnV +cmM +cmP +con +coU +cpr +cpH +cqI +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 +aqI +arD +arD +arD +arD +arD +arD +arD +auN +apJ +awY +ayk +awW +aAD +awW +aCS +aEo +aEr +aEr +aEr +aKg +aCS +awW +awW +awW +aQG +aRX +arB +cxu +cxz +cxC +cxH +cxu +arB +awY +ayk +awW +aAD +awW +cyc +cyc +cyc +cyc +cyc +cyc +cyw +cyi +cyc +cyV +cyi +cyi +cyi +czi +cyi +cyi +cye +cyi +cyw +cyc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aac +cmT +cmT +cmT +cmT +cmT +aac +cmP +cmP +cmP +cmP +coP +cmP +cpF +cpH +crg +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 +aqI +arD +arD +arD +arD +arD +arD +arD +auN +apJ +awZ +ayl +azy +auP +azy +aCU +aEr +aFE +aFE +aFE +aEr +aLs +azy +auP +azy +ayl +aRY +awW +cxv +cxB +cxC +cxI +cxv +awW +awZ +ayl +beK +auP +cyt +cyd +cyi +cyi +cyx +cyx +cyw +cyc +cyi +cyc +cyW +cyi +cze +czm +cyc +cyi +cyi +cyc +cyi +czB +cyc +cyc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aac +aTp +aTp +aTp +aTp +aTp +aac +cmO +cmP +cmP +cmP +coI +coV +cpw +cpH +crf +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 +aqI +arD +arD +arD +atk +arD +arD +arD +auN +apJ +awZ +ayk +awW +awW +awW +aCS +aEq +aEr +aEr +aEr +aEr +aCS +awW +awW +awW +awV +aRY +awW +cxu +cxB +cxC +cxI +cxu +awW +awZ +ayk +awW +awW +awW +cyc +cyi +cyi +cyi +cyi +cyJ +cyc +cyi +czi +cyi +cyi +cyi +czl +cyc +cyi +cyi +cyc +cyi +cyi +cyw +cyc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +amO +aac +aac +aac +clO +aaa +aaa +aac +aTp +cnh +aTp +aTp +aTp +aac +cnz +cmP +cmP +cmP +coQ +aac +aac +aac +czv +aaa +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 +aqI +arD +arD +asG +atl +awX +arD +arD +auN +apJ +awZ +cqr +azz +aAF +awW +aCV +aEt +aFE +aFE +aFE +aEr +aCV +awW +aOf +azz +aPu +aRY +awW +cxu +cxB +cxC +cxI +cxu +awW +awZ +aym +azz +aAF +awW +cyc +cyk +cyi +cyi +cyi +cyi +cyc +cyi +cyc +cyc +cyc +cyc +cyc +cyc +cyi +cyI +cyR +czA +cyi +cyi +cyc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aac +aDu +bwP +bBM +aac +czo +aaa +aac +cns +cnu +cnI +aTp +aTp +aac +cmS +cmP +cmP +cmP +cod +aac +aaa +aaa +aaa +aaa +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 +aqI +arD +arD +arD +arD +arD +arD +arD +auN +apJ +awZ +aIK +ayl +aAE +awW +aCV +aEs +aEr +aHt +aEr +aEr +aCV +awW +aOe +ayl +ayl +aRY +awW +cxu +cxB +cxC +cxI +cxu +awW +awZ +ayl +ayl +aAE +awW +cyc +cyj +cyi +cyi +cyi +cyi +cye +cyi +cyi +cyi +cyi +cyi +cyi +cyi +cyi +cyi +cyR +cyi +cyi +czC +cyc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +amP +aTp +aTp +aTp +aac +aac +aac +aac +aac +aac +aac +coe +cog +aac +aac +cnT +col +com +aac +aac +aac +clO +aaa +aaa +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 +aqI +arD +arD +arD +arD +arD +arD +arD +auN +apJ +awZ +aIK +ayl +aAH +awW +aCV +aEv +aFE +aFE +aFE +aEr +aCV +awW +aOh +ayl +ayl +aRY +awW +cxw +cxB +cxC +cxI +cxw +awW +awZ +ayl +ayl +bgi +awW +cyc +cyi +cyi +cyi +cyi +cyi +cyc +cyw +cyi +cyi +cyi +cyi +cyi +cyi +cyi +czw +cyR +cyi +cyi +cyi +cyc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +amP +aDJ +aTp +aTp +aac +cmH +aTp +aTp +aTp +aTp +coh +aTp +aTp +coj +aTp +aTp +aTp +aTp +aTp +coh +cpH +cqI +aaa +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 +aqI +arD +arD +arD +arD +arD +arD +arD +auN +apJ +awZ +cry +azA +aAG +awW +aCV +aEu +aEr +aEr +aEr +aEr +aCV +awW +aOg +azA +aQH +aRY +awW +cxu +cxB +cxC +cxI +cxu +awW +awZ +ayn +azA +bgh +awW +cyc +cyi +cyi +cyi +cyi +cyw +cyc +cyc +cyc +cyR +czj +cyR +cyc +cyc +cyc +cyc +cyc +cyi +cyi +cyi +cyc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +amP +biZ +apT +aTp +cma +aTp +aTp +aTp +aTp +aTp +cdP +aTp +aTp +aTp +aTp +aTp +aTp +aTp +aTp +coY +cpH +crg +aaa +aaa +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 +aqN +asD +asD +asD +asD +asD +asD +asD +aFD +apJ +awZ +crz +awW +awW +awW +aCS +aEw +aFE +aFE +aFE +aKh +aCS +awW +awW +awW +awV +aRY +awW +cxu +cxB +cxC +cxI +cxu +awW +awZ +ayk +awW +awW +awW +cyc +cyi +cyi +cyi +cyw +cyc +cyw +cyi +cyi +cyi +cyi +cyi +cyi +cyX +cyX +cyX +cyc +cyi +cyi +cyw +cyc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +amP +aXH +aTp +clK +aac +cmJ +cmm +cmm +cmm +cmm +coh +aTp +aTp +aTp +aTp +aTp +aTp +aTp +aTp +coh +cpH +crf +aaa +aaa +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 +ajZ +atp +asF +asF +asF +asF +apJ +axh +aIK +azy +auP +azy +aCU +aEr +aEr +aEr +aEr +aEr +aCU +azy +auP +azy +ayl +aRY +awW +cxu +cxv +cxE +cxv +cxu +awW +awZ +ayl +beL +auP +cyu +cye +cyi +cyq +cyi +cyc +cyw +cyi +cyi +cyi +cyi +cyi +cyi +cyi +cyi +cyi +cyi +cyw +cyw +czy +cyc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +amP +buA +aTp +aTp +aac +aac +aac +cmp +aac +aac +aac +cof +coh +aac +aac +aac +coN +coR +aac +aac +aac +cmE +aaa +aaa +aaa +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 +apJ +asH +atI +arE +ayq +ayq +auc +avp +axI +ayp +awW +aAD +awW +aCS +aEy +aEy +aEy +aEy +aEy +aCS +awW +awW +awW +aQG +aRX +arB +aaa +aWa +aXI +awW +aaa +arB +awY +ayk +awW +aAD +awW +cyc +cyc +cyc +cyz +cyc +czy +cyO +cyi +cyi +cyi +cyi +cyi +cyi +cyi +cyi +czx +czn +cyc +cyc +cyc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aac +buA +aTp +clL +aac +cmE +aaa +aaa +aaa +aac +aTp +aTp +aTp +aac +coo +aTp +aTp +aTp +coW +cpf +aac +aaa +aaa +aaa +aaa +aaa +aaa +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 +aCX +aub +aLu +axH +ayo +azB +awW +aaa +aCS +aEx +aFF +aFF +aFF +aKi +aCS +aaa +awW +aPt +aPu +aRY +arB +awW +awW +auP +awW +awW +arB +awZ +aym +azB +awW +aaf +aaa +aaa +cyc +cyy +cyc +czy +cyO +cyi +cyi +cyX +czb +cyX +cyi +cyi +cyi +cyi +cyw +cyc +cyc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +bJS +aac +aac +aac +cmE +aaa +aaa +aaa +aaa +bxh +aTp +aTp +aTp +aac +coE +aTp +aTp +aTp +coX +aac +aac +aac +czz +aaa +aaa +aaa +aaa +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 +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 +aaf +aaf +cyc +cyA +cyc +cyw +cyP +cyi +cyi +cyY +czc +cyX +cyi +cyi +cyi +cyw +cyc +cyc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +cni +aTp +aTp +aTp +aac +coD +aTp +aTp +aTp +aTp +aTp +bsB +cpH +cqI +aaa +aaa +aaa +aaa +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 +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 +aaf +aaf +aaf +aaf +cyc +cyc +cyc +cyR +cyR +cyR +cyR +cyR +cyR +cyR +cyc +cyc +cyc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +bJS +aac +aac +aac +aac +coG +cnh +aTp +aTp +aTp +aTp +cut +cpH +crg +aaa +aaa +aaa +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 +cnW +aac +coF +coO +aTp +cok +cok +aTp +coi +cpH +crf +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 +aud +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 +bJS +aac +aac +aac +aac +cmp +aac +aac +aac +cmE +aaa +aaa +aaa +aaa +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 +aqJ +ase +avq +aum +avq +axJ +cwH +axJ +aAj +aBK +aCL +aEG +aFI +aBI +aIM +aKk +aLy +aNd +aOj +aPx +aQJ +ayl +czK +aUO +aUy +aWm +aWf +aUQ +czK +bhN +bcl +beQ +bgk +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 +aAM +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 +cBW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aAM +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 +bgl +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 +aTq +aTq +aTq +aTq +aTq +aTq +aTq +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 +cys +cys +cys +cys +cys +cys +cys +cys +cys +cys +cys +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 +apQ +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 +cys +cyB +cyB +cyB +cyB +cyB +cyB +cyB +cyB +czf +cys +czs +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 +cys +cyB +cyB +cyB +cyB +cyB +cyB +cyB +cyB +cyB +czp +czt +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 +cys +cyB +cyB +cyB +cyB +cyB +cyB +cyB +cyB +cyB +czp +czt +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 +aNn +aOl +aPA +aQO +aSh +aTw +aUU +aWn +aXQ +aZv +aXQ +bbL +aXQ +bdJ +aXQ +bgr +bhQ +bjj +bkF +cys +cyB +cyB +cyB +cyB +cyB +cyB +cyB +cyB +cyB +czp +czt +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 +alU +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 +cys +cyB +cyB +cyB +cyB +cyS +cyB +cyB +cyB +czf +cys +czu +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 +cys +cys +cys +cyN +cyQ +cys +cyT +cyZ +cys +cys +cys +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 +apQ +apQ +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 +bVw +bVz +bVw +bVw +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 +apQ +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 +apQ +bVz +aoV +bVw +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 +apQ +bVz +apQ +bVw +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 +aSj +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 +bVw +apQ +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 +apQ +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 +bVw +apQ +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 +apQ +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 +akD +akD +ajX +akD +ajX +akD +akD +aaa +bCq +bPS +bRd +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 +apQ +apQ +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 +bgx +aZE +bjm +bjr +bjr +bmh +boK +bjr +boK +bjr +bjr +bvV +bxu +aaa +aaa +aaa +aaa +aaa +akD +bGg +amI +amI +bHx +anM +akD +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 +apQ +aaH +apQ +aoV +aoV +apQ +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 +bgx +aZE +bjp +bjr +bjr +bmh +boK +bjr +cBp +bjr +buB +bvV +bxu +bxu +bxx +bxu +bxu +bDi +ajX +bGh +bHx +amI +bHx +bLt +bMF +aaa +bCq +bPS +bRf +bSo +bTu +bCq +bVB +bHE +bHE +bYu +bZk +bCq +bTz +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 +apQ +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 +aZD +aZD +aZD +bff +bfk +aZE +bjo +bjr +bjr +bmh +boK +bjr +boK +bjr +bjr +bub +bxu +bvF +bzP +bAS +bxu +aaa +akD +bGg +amI +amI +bHx +bLs +akD +aaa +bLv +bPT +bRe +bSo +bTt +bCq +bVA +bWw +bXw +bYt +bZj +bCq +bHE +bCq +bSq +cdW +ceW +bCq +cgD +cgH +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 +apQ +aoV +apQ +apQ +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 +akD +akD +ajX +bJc +ajX +akD +akD +aaa +bCq +bPV +bCq +bCq +bTw +bCq +bVD +bWy +bXx +bYw +bZj +bYy +bHE +bTz +bHE +cdY +ceY +bCq +bHE +cgH +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 +aZE +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 +bhY +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 +bTz +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 +aZE +aZE +biA +bmg +bmH +bkJ +aZE +aZE +aZE +aZE +aZE +bxu +byD +bwU +byn +bxu +aaa +bxy +bxy +bxy +bJd +bKm +bxy +apQ +apQ +bCq +bPY +apE +bCq +bCq +bCq +bCq +bCq +bCq +bYy +bCq +bCq +bLv +bCq +bCq +bCq +bCq +bLv +cgH +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 +aZE +aZE +aZE +bcT +aZE +aZE +aZE +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 +apQ +aoV +aoV +aoV +aoV +aoV +bLv +cgH +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 +akD +akD +ajX +akD +akD +ajX +akD +akD +akD +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 +apQ +apQ +bLv +bQa +bHE +bHE +bCq +bHE +bLv +bLv +bLv +bLv +bLv +aoV +aoV +aoV +aoV +aoV +apQ +bLv +cgH +bLv +aaf +cAj +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 +ajX +akC +alj +alY +amI +amI +anM +aop +aoY +aaa +aaa +aaa +aaf +arP +avd +avZ +axr +ayE +ayE +ayE +ayE +ayE +ayE +ayE +ayE +ayE +ayE +aLl +aMT +aOu +aPL +aPK +aSm +aTI +aPK +aWB +cCj +apd +apd +bbU +cCk +apd +aZE +bgB +bhX +bgv +biF +bkw +bnE +bny +btv +btv +bjv +btv +buc +bxz +bBa +bwV +byy +bBa +bAb +bzY +bBa +bEQ +bGM +bKn +bGi +aoV +aoV +bLv +bPZ +bHE +bHE +bTz +bHE +bLv +aoV +aoV +aoV +aoV +aoV +aoV +aoV +aoV +aoV +aoV +bLv +cgH +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 +ajX +akF +alm +akD +amI +amI +amI +aop +aoY +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 +apQ +apQ +bLv +bHE +bHE +bSs +bCq +bHE +bLv +aoV +aoV +aoV +bcU +apQ +aaH +cCa +aoV +aoV +aoV +bLv +cgH +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 +ajX +akE +all +alZ +amJ +anr +amI +aop +aoY +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 +bkM +bfQ +bnG +bnz +bpA +bbR +bkM +bqs +bud +bxy +bvG +bAZ +bGm +bzF +bAc +bGm +byE +cBB +byE +bKo +bxy +aaH +aaH +bCq +bHE +bRh +bSr +bCq +bHE +bLv +apQ +apQ +aoV +aoV +aaH +bdV +aaH +apQ +apQ +apQ +bLv +cgH +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 +akD +akD +alo +akD +akD +akD +anO +akD +akD +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 +bjv +bkH +bfm +boS +bfm +bNK +bkN +bml +bwe +bwe +bwd +bwY +byJ +bwe +bAc +bBI +bGn +bGn +bGn +bKq +bxy +apQ +apQ +bCq +bOK +bCq +bCq +bCq +bHE +bLv +aoV +aoV +aoV +aoV +cjn +bSu +aaH +aoV +aoV +aoV +bLv +cgH +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 +bbR +boU +bkM +bfm +bnI +boR +bqs +bbR +bkM +bNM +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 +apQ +aoV +aoV +aoV +bLv +cgH +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +apQ +apQ +aoV +aoV +aoV +aaH +aoV +aoV +apQ +apQ +bLv +cgH +bLv +aaf +cjJ +cjJ +cjJ +cjJ +cjJ +cnR +coB +cjJ +cjJ +aaa +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 +"} +(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 +bbR +aqU +bLF +aZK +bnJ +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 +apQ +aoV +aoV +aoV +aoV +bCq +cgH +bCq +aaa +aaf +aaa +aaa +aaf +cjJ +cnQ +coA +cpo +cjJ +aaa +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 +"} +(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 +bbR +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 +cgH +bCq +bCq +bCq +bCq +bCq +bCq +cjJ +cnS +coC +cpp +cjJ +aaf +aaf +cig +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +bfm +bKP +bfm +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 +bVH +bVH +bVH +bVH +bVH +bVH +bVH +bVH +bVH +bVH +bVH +caq +cbw +ccu +ciT +bCq +bSs +ceY +ccw +ccw +cnR +cgT +cjJ +ccw +ccw +ccw +ccw +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +bcW +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 +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 +"} +(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 +arQ +arQ +atX +atX +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 +brT +brT +brT +brT +brT +brT +bAe +bBg +bCq +bCq +bDt +bGp +bGp +bGp +bES +bGp +bGp +bGp +bGp +bGp +bGp +bES +bTC +bUw +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +bUw +bVI +bWD +bXA +bYB +bYz +cai +bYz +ccg +cdd +cea +bVI +caz +cby +cdj +cdv +cem +cem +cem +cfe +cfD +cgv +chE +ciN +ciN +cji +ckH +crr +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +azP +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 +bUw +bVI +bWC +bXz +bYA +bZn +cah +bWB +ccf +cdc +cdZ +bVI +cay +ccw +ccw +ccw +ccw +ccw +ccw +ccw +ccw +cfL +coH +cBO +cgR +cqx +cqP +crq +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +azP +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 +bUw +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +cCg +cCg +bNg +bVI +bWE +bXB +bYC +bZo +caj +bWB +cch +cde +ceb +bVI +cay +ccw +chY +ciW +ciZ +ckB +ckB +ckC +ccw +cnX +coH +cps +cpX +cqz +cqQ +ccw +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 +"} +(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 +aEX +aJs +aJq +bJx +aJn +aaa +aaa +aTQ +aVd +aWJ +aYp +aZM +aZz +baI +bda +bda +bca +bgJ +aZP +bjD +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 +bYz +cam +bYz +bYz +cdf +ced +bVI +cay +ccw +chZ +ciZ +ciZ +ckC +ckC +ckC +ccw +coa +coJ +clJ +clJ +cig +cig +ccw +ccw +ccw +ccw +ccw +ccw +ccw +csF +ccw +ccw +ccw +ccw +ccw +ccw +cjZ +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 +"} +(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 +crT +css +ccw +ccw +ccw +csv +crT +ctl +ctv +ctv +ccw +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +cjL +bNJ +bNI +bUz +bVJ +bWI +bXF +bXF +bZs +cao +cbo +bXF +bXF +cef +bVJ +cay +ccw +cib +cjb +ckH +ckE +clH +cmG +cnt +cob +coL +ckH +ckH +cqA +cqT +czh +crJ +crU +csb +crU +cst +csx +csG +csx +csu +crU +csb +crU +crU +ccw +ctv +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +bNJ +bNI +bUA +bVJ +bWH +bXE +bYD +bZr +can +cbn +cci +cdg +cee +bVJ +cay +ccw +cia +cja +cgR +ckD +cig +cmF +cfG +cgw +coK +cpu +cqa +ccw +ccw +ccw +crK +crU +csa +csj +crU +crU +crU +crU +crU +cte +csa +crU +ctC +ccw +ccw +ctv +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aab +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 +brT +bBl +bCs +bDz +bFa +bFa +bHH +bFa +bFa +bFa +bCs +bNL +bNJ +apV +cjL +bNJ +bNI +bUz +bVJ +bOo +bOD +bQb +bZv +bSd +bXG +bOC +bWt +cBK +bVJ +cay +ccw +cid +cgR +cen +ckG +clJ +cmI +cgR +cgI +chF +ciO +cqc +cqC +cqV +ccw +aoV +aoV +apQ +aoV +aoV +aoV +aoV +aoV +aoV +aoV +apQ +aoV +aoV +crU +ccw +ctv +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +cjL +bSv +bNI +bUB +bVJ +bOl +bOC +bPQ +bQK +bYF +bTI +bUy +bWs +ceg +bVJ +cay +ccw +cic +cBO +cjN +cgR +ceu +cff +cgR +cgx +coM +cpv +cqb +cqB +cqU +cqY +aaH +cAk +cAo +cAp +cAo +cAo +cAp +cAo +cAo +cAp +cAo +cAo +cAv +apQ +cig +ctv +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +caB +ccw +cif +cgR +cjP +ckF +ceZ +ckF +ckF +cgK +cjS +cpv +cqe +cqB +cqW +cqY +csP +cAl +aaH +cAq +aaH +aaH +cAq +aaH +aaH +cAq +aaH +aaH +cAl +apQ +cig +ctv +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 +"} +(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 +bVL +bVJ +bVJ +bVJ +bVJ +bVJ +bVJ +bUC +bWu +bVJ +bVJ +caB +ccw +cie +cdT +cnA +cnA +cev +cfg +cgU +cgJ +chG +cpv +cqd +cqB +cqU +cqY +cqY +cAl +csA +aoV +aoV +csA +aoV +aoV +aoV +aoV +csA +aaH +cAl +apQ +cig +ctR +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 +"} +(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 +cih +cje +cgR +ckJ +clJ +cmL +cgR +csF +ccw +cpy +ccw +ccw +cqY +cqY +cqY +cAl +aoV +aoV +aoV +apQ +aoV +csS +aoV +aoV +aoV +cAu +cAw +apQ +cig +ctv +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 +"} +(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 +cig +cjd +cgR +ckI +cig +cmK +cBO +ccw +chV +cpx +cqf +cqD +cqX +crs +cqY +cAl +aoV +aoV +apQ +apQ +apQ +apQ +apQ +aoV +aoV +aaH +cAl +aoV +cig +ctv +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +ceW +ccw +cij +cjf +cgR +ckK +clJ +cmL +cnw +cgL +chX +cAO +cqh +cqF +cra +crI +cqY +cAl +aoV +aoV +apQ +csH +csR +ctm +apQ +apQ +csA +aaH +cAl +aoV +cig +ctv +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 +"} +(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 +ahw +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 +btF +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 +ccw +ccw +ccw +cdk +cja +cgR +ckK +clJ +cmL +cnv +ccw +chW +cpz +cqg +cqE +cqZ +crt +czE +cAm +aoV +aoV +apQ +csC +csQ +ctf +apQ +aoV +aoV +cAu +cAw +aoV +cig +ctv +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +cfF +cfb +cfb +cfb +cfb +cfb +cig +cmN +cnx +cgL +chX +cBQ +cqj +cqH +crb +cru +cqY +cAl +csA +csB +apQ +csI +cAt +czD +apQ +aoV +aoV +aaH +cAl +aoV +cig +ctv +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +cfE +cgM +cik +cjg +cjU +ckL +clM +cfz +cgR +ccw +cii +cpB +cqi +cAP +cAP +crv +cqY +cAl +aoV +aoV +apQ +apQ +apQ +apQ +apQ +aoV +aoV +aaH +cAl +aoV +cig +ctv +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cBY +aaa +aaa +aaa +aaa +aaa +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 +cgO +cim +cgO +ceo +ceq +cfa +cmQ +cgR +csF +ccw +cpy +ccw +ccw +cqY +cqY +cqY +cAl +aoV +aoV +aoV +csJ +aoV +apQ +aoV +aoV +aoV +cAu +cAw +apQ +cig +ctv +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 +"} +(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 +ceo +ceq +clQ +cmQ +cgR +cgN +cil +cpD +cqk +cqB +cqU +cqY +cqY +cAl +csA +aoV +aoV +aoV +aoV +csA +aoV +aoV +csA +aaH +cAl +apQ +cig +ctR +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 +"} +(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 +ckP +ckH +cmR +cgR +cgR +cgR +cpD +cql +cqB +cqU +cqY +csP +cAl +aaH +cAs +aaH +aaH +cAs +aaH +aaH +cAs +aaH +aaH +cAl +apQ +cig +ctv +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 +"} +(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 +bZf +bZC +cbp +cck +cin +cjj +cjX +ckO +clP +cmQ +cny +cgR +cip +cnx +cql +cqB +cqU +cqY +aaH +cAn +cAo +cAr +cAo +cAo +cAr +cAo +cAo +cAr +cAo +cAo +cAx +apQ +cig +ctv +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +ckR +clR +cmQ +cgR +cgP +cir +cen +cqc +cqC +crc +ccw +aoV +aoV +aoV +aoV +cBR +aoV +aoV +aoV +aoV +aoV +aoV +aoV +aoV +crU +ccw +ctv +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +ccm +cdn +cej +cep +ces +clN +cfA +ckF +ckF +ckF +coc +cqa +ccw +ccw +ccw +czF +crU +csd +crU +crU +crU +crU +crU +crU +crU +csd +crU +ctD +ccw +ccw +ctv +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +cfC +cnA +cnA +cis +ciV +ckH +cqA +cre +czh +crM +crV +csf +crU +csv +csx +csK +csx +css +crU +csf +crU +crU +ccw +ctv +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +arg +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 +csF +cet +cfd +cfB +cfI +cgQ +cjS +cjN +cqm +cig +crd +ccw +crL +crT +cse +crT +csu +ccw +ccw +ccw +cst +crT +ctn +ctv +ctv +ccw +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 +"} +(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 +aod +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 +cjS +cjN +cjh +cig +ccw +ccw +ccw +ccw +ccw +ccw +ccw +ccw +csF +ccw +ccw +ccw +ccw +ccw +ccw +cjZ +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 +"} +(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 +aod +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 +apQ +bOh +bOh +bOh +bOh +bOh +ccw +cjS +cjP +ckF +ckF +ckF +cpE +cjR +crW +csg +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 +"} +(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 +aod +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 +bmD +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 +cgU +crw +cjO +ccw +crX +cfK +aag +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 +"} +(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 +aod +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 +apQ +bQA +ckU +clT +cmU +bOh +ccw +cpa +cjc +cqo +ccw +cjk +cjm +ccw +ccw +cig +aag +aag +aag +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 +"} +(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 +bHZ +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 +ccw +cjl +cjQ +cjV +cig +aaf +aaf +aaf +aaf +aag +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 +"} +(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 +cig +cjT +cgR +crP +cig +aaa +aaa +aaa +aaf +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 +"} +(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 +cig +crh +crA +crR +crY +csi +aaa +aaa +aaf +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 +"} +(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 +apQ +bQA +ckX +clV +cmV +bOh +cig +cpc +cpJ +cpc +cig +cqY +cqY +cqY +cig +aaa +csl +aaa +aaf +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 +"} +(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 +ajn +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 +bha +bio +bgF +blf +bmF +bob +bnB +bfF +bqR +brX +bof +bwx +bvj +bwB +bxa +byZ +bzI +bAX +bCF +bDB +bFB +bvd +bKJ +bLR +bMV +bOd +bMZ +bQv +bRF +bSM +bTS +bUQ +bWa +bUO +bVZ +bVZ +bZI +caH +cbF +ccz +cdA +cez +bOe +cfQ +chb +ciu +bVu +ckb +ckZ +clW +clW +bOh +cig +cpd +czM +cpd +cig +aaa +aaa +aaa +aaf +aaf +cso +aaf +aaf +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 +"} +(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 +bSL +bPe +bOd +bOd +bOd +bXT +bXT +bXT +caG +cbE +bTU +cdz +cez +bUL +cfS +bOd +bMQ +apQ +bOh +bOh +bOh +bOh +bOh +ccw +cpd +czL +cpd +ccw +aaf +aaa +aaa +aaf +aaa +csn +aaa +aaf +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 +"} +(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 +ahn +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 +bnD +bpM +bqT +bFD +bJG +bJG +bvl +bwE +bxc +bzb +bzK +bBb +cpG +bDC +bId +bvd +bKH +bLK +bMX +bOd +bPg +bQx +bRH +bSO +bTU +bUS +bUS +bUS +bXU +bUS +bUS +bUS +bXU +bRF +bMW +cez +cez +cfQ +chd +ciw +cpP +ckc +clb +clY +clZ +bOh +aaa +cpd +cpM +cpd +aaa +aaf +aaa +aaa +aaf +aaa +csn +aaa +aaf +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 +"} +(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 +acU +aeC +afn +agc +abp +ahk +aoJ +aib +aif +aif +aif +aif +aif +aif +aif +alK +alM +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 +bip +bnC +bpF +bqS +brY +bwz +bwy +bvj +bza +bxb +bvh +bCD +bAY +bCH +bDR +bIc +bvd +bKH +bLK +bMW +bOe +bPf +bQw +bRG +bSN +bTT +bUR +bWb +bUR +bTT +bUR +bZJ +bUR +bTT +bUR +cdB +bUR +bUR +cfT +chc +bMQ +apQ +bQA +cla +cBP +cmW +bOh +aaa +aaa +czN +aaa +aaa +aaf +aaa +aaa +aaf +aaa +csn +aaa +aaf +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 +"} +(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 +bis +bmI +bod +bpt +bfF +bqV +bEe +bBL +bwA +bvj +bAl +bAl +bvh +bzS +bBc +bCJ +buk +cCp +bvd +bKH +bLK +bMZ +bOg +bPi +bQz +bRJ +bSO +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 +aaa +aaf +aaa +aaa +aaf +aaf +cso +aaf +aaf +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 +"} +(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 +aeD +afp +aeD +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 +bQy +bPh +bQy +bRI +bQy +bPh +bQy +bRI +ceA +bLK +bLK +che +bLK +apQ +bOh +bOh +bOh +bOh +bOh +aaa +aaa +aaa +aaa +aaa +aaf +aaa +aaa +aaf +aaa +csn +aaa +aaf +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 +"} +(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 +aeE +afr +aeE +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 +apQ +bRK +apQ +bVv +apQ +bRK +apQ +bVv +apQ +bRK +apQ +bVv +apQ +bRK +apQ +bVv +apQ +apQ +bLK +chg +bLK +apQ +aoV +aoV +apQ +apQ +apQ +aoV +aoV +aoV +aoV +aoV +aoV +aaa +aaa +aaf +aaa +csn +aaa +aaf +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 +"} +(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 +aeE +afq +aeE +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ahn +anE +ahn +ahn +ahn +ahn +arj +ass +asX +auu +att +att +att +azf +aAo +aBB +aBB +aBB +aBB +aGy +aIa +aBB +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 +bNa +bOh +bPj +bQA +bPj +bOh +bPj +bQA +bPj +bOh +bPj +bQA +bPj +bOh +bPj +bQA +bPj +bOh +apQ +bLK +cyG +bLK +aoV +aoV +aoV +apQ +apQ +aoV +aoV +aoV +aoV +aoV +aoV +aoV +aaa +aaa +aaf +aaa +csn +aaa +aaf +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 +"} +(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 +aeE +afs +aeE +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aag +aag +aag +aaa +aaa +aaf +arj +arj +asZ +aua +aua +awB +axY +azh +arj +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 +bNa +bOh +bPl +bQB +bRL +bOh +bTX +bUV +bWd +bOh +bXX +bYV +bZL +bOh +cbI +ccC +cdD +bOh +apQ +aoV +aoV +apQ +aoV +aoV +aoV +apQ +aoV +aoV +aoV +aoV +aoV +aoV +aoV +aoV +aaa +aaa +aaf +aaf +cso +aaf +aaf +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 +"} +(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 +bNa +bOh +bPk +bPm +bPm +bOh +bTW +bUU +bTW +bOh +bXW +bYU +bXW +bOh +cbH +ccB +cbH +bOh +apQ +aoV +aoV +apQ +aoV +aoV +aoV +apQ +aoV +aoV +aoV +aoV +aoV +aoV +aoV +aoV +aaa +aaa +aaf +aaa +csn +aaa +aaf +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 +"} +(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 +aGK +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 +bNa +bOh +bPm +bQC +bPm +bOh +bTW +bUW +bTW +bOh +bXY +bYW +bXW +bOh +cbH +ccD +cbH +bOh +apQ +apQ +apQ +apQ +apQ +aoV +aoV +apQ +aoV +aoV +aoV +aoV +aoV +csz +aoV +aoV +aaa +aaa +aaf +aaa +csn +aaa +aaf +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 +"} +(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 +bNa +bOh +bOh +bOh +bOh +bOh +bOh +bOh +bOh +bOh +bOh +bOh +bOh +bOh +bOh +bOh +bOh +bOh +apQ +apQ +ciC +bVu +bVu +bVu +bVu +bVu +caJ +aoV +aoV +aoV +aoV +aoV +aoV +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 +aqt +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 +apQ +apQ +apQ +apQ +apQ +cfj +cfU +cfj +cfj +ckf +cfj +cfj +bUr +bVu +bVu +bVu +bVu +bVu +bVu +bVu +csw +csw +csw +csw +csM +csw +csw +ctd +csw +csw +csw +csw +ctO +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 +aKR +aND +aJC +aPP +aRg +aQc +aTa +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 +bFA +bGS +bIm +bJD +bKK +bLS +bNc +bOj +bNc +bNc +bNc +bNc +bTY +bUX +bzs +bWV +bzs +bzs +bZM +cbJ +ceC +cfV +cfW +cfX +chk +chl +ciz +chi +ciz +cjq +ckg +cmb +cpO +cpQ +cpQ +cpQ +cpQ +czJ +apQ +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 +aIi +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 +bUX +bzs +bAw +bBR +bHZ +bzs +bzs +bzs +ccF +cdG +ceE +cfl +cfZ +cki +cld +cjt +cjr +csq +cmd +cmd +cmd +cmd +cmd +bVw +bVw +bVw +bVw +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 +bUX +bzs +bAw +bXZ +bHZ +bZN +caK +bzs +ccE +cdF +ceD +cfk +cfY +cjr +ckj +cjs +cle +cli +cmc +cmY +cmc +cop +cmd +cmd +cqs +aaa +bVw +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 +aVG +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 +bPv +bPv +bPv +bPv +bPv +caM +cbL +cbL +cdI +ceG +cfj +cgb +chn +ciE +cjv +clj +ckk +cmf +cna +cnC +cor +ciM +cpN +cqt +aaa +bVw +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 +aQj +aMk +aNK +aOM +aQj +aRB +aSL +aTN +aVD +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 +bVw +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 +aMl +aMF +aMF +aJI +aRG +aSO +aTO +aVG +aVz +aVz +bak +bbz +aYV +bdp +bdc +bfL +beY +biz +biz +biz +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 +bUX +bzs +bzs +bzs +bzs +cfj +cfj +cfj +cfj +cjx +cfj +cfj +cmd +cmd +cmd +cos +cmd +czI +bVw +bVw +bVw +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 +apQ +aaa +apQ +apQ +apQ +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 +anf +anf +anf +awD +anf +aoP +alP +aBE +alP +aDX +alP +aGR +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 +apQ +apQ +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 +alP +alP +alP +alP +alP +alP +aGQ +aIk +aIp +aKW +aMG +aIp +aIp +aJI +aJI +aSP +aUh +aJI +aJI +aJI +aJI +aJI +bcq +bcq +bcq +bfL +bhp +biB +biB +biB +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 +ccH +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 +alP +arA +anf +alP +atw +alP +aGS +aIm +aIp +aKH +aMI +aIp +aOV +aOX +aOX +aSR +aUi +aVJ +aOX +aYP +bal +bam +aYV +aYV +aYV +bfL +bhq +bhm +bkb +bhm +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 +apE +anf +anf +alP +anf +alP +aCE +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 +cdM +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 +alP +alP +alP +alP +awD +ayf +aGC +aIl +aIq +aKK +aMy +aIp +aOX +aQm +aRJ +aRJ +aRJ +aVK +aRJ +aRJ +aRJ +bbB +aYV +aYV +aYV +bfO +bfS +biC +bkd +bfS +bKH +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 +ccH +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 +aKI +aMA +aIp +aOX +aQm +aRJ +aST +aUk +aRJ +aRJ +aYQ +bam +aYV +aYV +aYV +aYV +beE +bfS +biE +bkf +bfS +bKH +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 +alN +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 +biD +bke +bfS +bKH +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 +bfS +bfS +bfS +bKH +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 +bhG +bhG +bhG +cbK +cgj +cbK +cbK +chp +bCq +clp +bCq +bCq +bCq +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 +anf +alP +alP +aFo +aGV +aIp +aJN +aLd +aMN +aNQ +aOZ +aOX +aOX +aOX +aUz +aVM +aOX +aYT +bam +aYV +baR +bcb +bdl +bdO +bPv +bgo +bPv +bPv +blq +bna +bPv +bpQ +bPv +bdO +btm +buy +bvz +bdO +bPv +bna +bPv +bPv +bPv +bDV +bPv +bPv +bHq +bMe +bIg +bIM +bPv +bLT +bLT +bLT +bLT +bLT +bLT +bLT +bLT +bLT +bLT +caT +cbP +ccO +cdO +cdO +cdO +cnH +czH +czT +czY +bCq +bHE +bHE +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 +bdP +bdP +bdP +bdP +bdP +bnc +boC +bpV +bdP +bdP +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 +bky +bky +bUw +czY +bCq +bLv +bLv +bLv +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 +aYV +bfT +biG +bkg +blu +bnb +bop +bor +bpS +bsO +buh +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 +bky +bUw +czY +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 +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 +aFt +aFu +aFu +aFu +aFu +aFu +aFu +aFu +aFu +aFu +aFu +aFu +aFu +aVO +bdp +aYV +aYV +bba +aXq +aYV +aYV +bht +biI +bkh +blw +biI +blw +boE +bpY +bsQ +buh +btx +buU +byf +bzu +bAz +bBT +bDb +bEm +bEm +bEm +bIx +bJJ +bKY +bMi +bNo +bIP +bPA +bJN +bRU +bSZ +bEm +bJN +bRU +bXe +bEm +bJN +bRU +bSZ +bEm +bDb +cgi +chq +ccQ +aaa +bZi +bUw +czY +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 +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 +anf +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 +aYV +aYV +bfT +biH +bkh +blv +bls +blv +boD +bpY +bsP +buh +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 +bZi +bUw +czY +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 +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 +aYV +bfU +bhu +biJ +bhM +bjW +blx +bne +boL +bqb +bsR +buh +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 +bky +bUw +czY +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 +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 +bfU +bhu +biJ +bhK +bjP +blt +bnd +boG +bqa +bsR +buh +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 +bky +cBN +czY +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 +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 +cAM +aMJ +aNP +aOS +aOS +aOS +aOS +aOS +aOS +aWb +aXU +bau +aFu +aYV +aXq +aYV +bfV +bfV +bfV +bkl +blA +blD +bot +bfV +bfV +bfV +bfV +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 +bMi +bMi +chu +ccQ +aaf +bZi +bUw +cAa +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 +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 +aIt +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 +bJH +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 +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 +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 +anf +aCE +aDZ +aFu +aHd +aIx +aJF +aLh +aIt +aNV +aPd +aIt +aRO +aIt +aIt +aVQ +aXu +aYW +aVQ +aFu +aYV +aXq +bds +bfV +bhx +biM +bkm +blC +blG +bou +bou +biL +cBs +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 +bZi +czV +czY +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 +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 +biL +bhP +blB +blF +bou +bou +biL +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 +bky +czV +czY +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 +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 +blB +blF +bou +bpT +bqd +box +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 +bky +czV +czY +bCq +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bZi +bZi +bZi +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 +bni +bni +bni +brl +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 +bZi +czV +czY +bLv +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bZi +btp +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 +biL +blN +biL +biL +biL +biL +bsw +btU +bxe +bvC +bzD +bxv +bCc +bDc +bEo +bDj +bDY +bIA +bIA +bJN +bMq +bNp +bOx +bPJ +bJN +bEm +bSZ +bRU +bJN +bEm +bXe +bRU +bJN +bEm +bSZ +bRU +bDb +aaf +aaa +aaa +aaa +bZi +czV +czY +bLv +aaf +aaf +aaf +aaf +aaf +bky +bky +bZi +cqu +bZi +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 +bZi +czV +czY +bLv +aaa +aaa +aaa +aaf +aaf +bky +cwy +cmn +cmn +bZi +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +bky +bky +bky +bky +bky +czX +cAc +bCq +bky +bky +bky +bky +bky +bky +cmn +cmn +cmn +bZi +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aPj +aFz +aRR +aTe +aUG +aFz +aRS +aXW +baz +aCR +bcx +aXq +aYV +bfY +bhA +biR +bkq +bjZ +bvx +boz +boM +bzE +bsX +bsz +btW +bxf +bzE +bzE +bzE +bzE +bDd +bEq +bDl +bEf +bFQ +bHc +bHK +bIb +bID +bOA +bPK +bQO +bSb +bOu +bUj +bVl +bWo +bXh +bQZ +bTl +bZY +caX +bTl +bQZ +cdQ +btp +bky +czG +czR +czW +cAb +cko +clq +cmq +ciI +cnJ +cri +bYr +cmn +cBT +cBU +bZi +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +bhU +bsZ +cdX +ceX +bvg +bvD +bvD +cBx +bzB +bAa +bBE +bDm +bEr +bFR +bHf +bHM +bFR +bIE +bJr +bJO +bWr +bQX +bQX +bUk +bVn +bWq +bXj +bYj +bZc +bTl +bTl +bTl +bQZ +bNB +ceM +ccU +cgo +czS +blO +cAd +bky +bDh +cBL +btp +btp +cvO +bky +bky +bky +bky +bky +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +brt +bwO +bxF +bzA +bzZ +bBD +bBD +bBD +bBD +bBD +bHL +bBD +bBD +bJo +bPK +bQX +bWr +bQX +bQX +bWr +bWp +bXi +bYi +bTl +bTl +caY +cbV +bQZ +blQ +brG +cfs +cgm +bns +bky +bky +bky +bky +bky +bky +btp +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 +aCE +aEi +aFw +aHl +aID +aID +aFw +aMM +aFz +aFz +aQw +aRS +aRS +aRS +aRS +aRS +aZf +aRS +bbF +aYV +aXq +aYV +bga +bgc +bgc +bgc +bgc +bgc +boB +boB +boB +btb +buo +bvJ +bvJ +bvJ +bwQ +bxW +bvK +bvK +bEt +bDn +bEz +bFS +bJT +bLh +bMs +bMs +bMs +bPN +bQS +bSf +bWr +bWr +bQX +bWr +bXl +caZ +cba +bTl +cbc +bTl +bQZ +cdR +ceO +bky +cgm +chw +ciK +cjC +ckp +cls +cmr +bky +btp +cmo +bky +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 +boA +bpZ +boB +bta +buo +bvJ +bCk +byo +aDH +bxP +bCf +bvK +bEs +bGc +bHm +bGc +bEs +bEs +aaf +aaf +aaf +bPN +bQR +bSe +bMf +bNe +bNm +bNX +bTf +bQZ +bTl +bTl +cbb +bTl +bQZ +cdR +ceN +bky +cgp +chv +ciJ +cbf +cbf +clr +bnt +bky +btp +cou +bZi +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +buo +bvJ +bxj +byq +bwR +bxY +bCh +bvK +bEv +bFU +bFU +bFU +bJV +bEC +bMu +bMu +bMu +bEC +bQU +bQU +bTl +bQU +bXr +bWr +bOw +bQZ +bQZ +bQZ +cka +bQZ +bQZ +bQZ +bQZ +bQZ +cgr +chx +bky +bky +bky +clt +bnt +bky +btp +bMB +bZi +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +bnf +boP +bqf +brn +bsC +bvK +bxi +byp +bzJ +bxY +bCg +bvK +bEu +bFU +bFU +bFU +bJU +bEC +bMt +bNt +bNt +bEC +bQT +bSg +bTk +bSh +bXr +bQX +bOv +bYk +bYk +bZZ +cjW +bZZ +ccR +cdS +ceP +bQZ +cgq +chx +bky +aaa +bky +cgr +cms +bky +btp +bNA +bky +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 +brp +bsD +bvK +bxl +bys +bzM +bya +bCj +bvK +bEx +bFU +bFU +bGl +bJX +bEC +bMw +cBE +bOE +bEC +bQV +bSi +bTm +bUn +bXr +bQX +bOv +bYm +bYm +bZZ +ckN +bZZ +ccR +cdS +ceP +bQZ +cgt +chx +bZi +aaa +bZi +clt +bnt +btp +btp +bky +bky +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +biW +bkv +blL +biW +bnh +biW +brx +bte +bup +bvK +cBu +byr +bzL +bxZ +bCi +bvK +bEw +bFU +bFU +bGk +bJW +bEC +bMv +bNu +bMv +bEC +bQT +bSh +coT +bTl +bXr +bNZ +bOy +bZd +bYl +caa +ckM +cbW +ccS +ccS +ceQ +cft +cgs +chy +bZi +aaa +bZi +clt +bns +bky +bky +bky +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 +apQ +aoV +aoV +atS +apQ +apQ +apQ +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 +biW +bib +bki +bma +bnl +bpq +boB +bth +bus +bvK +bxm +byu +bzN +byb +aGs +bvK +bBF +bFU +bEL +bGz +bJZ +bEC +bMx +bNw +bOF +bEC +bQW +bSj +bTn +bUo +bNq +bOk +bOB +bPs +bYo +cab +cbd +cbX +ccT +bSc +bSc +cfu +cgu +chA +bky +aaa +bky +clt +bns +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 +apQ +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 +bgc +bpp +bgc +brr +bsE +bvK +bvK +byt +byt +byt +byt +byt +bEy +bFU +bFT +bFU +bJY +bEC +bMv +bNv +bMv +bEC +bPN +bPK +bPN +bPN +bPK +bPN +bPK +bPb +bQG +bPN +bPN +bPN +bQZ +bQZ +bQZ +bQZ +bky +chz +bky +bky +bky +clt +bns +aaa +aaa +aaa +aaa +aaa +aaS +aaa +crj +crB +crS +aaa +crj +crB +crS +aaa +crj +crB +crS +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 +apQ +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 +biY +bmd +bnr +bpr +bgc +btj +buu +bvM +bxo +bqe +bzO +bzO +bzO +bqe +bEB +bFW +bFT +bFU +bFU +bLi +bMz +bNy +bOH +bEs +bQY +bQX +bTo +bUp +bUp +bUp +bXs +bPL +bQI +bPN +bWr +cbZ +bQZ +cmo +bky +bDh +bky +chC +ciL +btp +btp +clv +cmt +aaa +aaa +aaa +aaa +aaa +aba +aaf +crj +crC +crS +aaa +crj +crC +crS +aaa +crj +crC +crS +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 +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 +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 +bgc +bgc +bru +bsF +btY +bxn +bqe +bzO +bzO +bzO +bqe +bEA +bFV +bFT +bGA +bHg +bFU +bMy +bNx +bOG +bEs +bQX +bSk +bQX +bUp +bUp +bUp +bXr +bPF +bWr +bWr +bWr +cbY +bQZ +btp +bky +bky +bky +ccp +cbf +cbf +cbf +clu +cmt +aaa +aaa +aaa +aaa +aaa +aaf +aaa +crj +crC +crS +aaf +crj +crC +crS +aaf +crj +crC +crS +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 +brw +buw +bvO +bxq +byv +bzO +bAR +bzO +bqe +bED +bFX +bFT +bGF +bKa +bFU +bMA +bNz +bOI +bEs +bRa +bQX +bTp +bUp +bVs +bUp +bXt +bPM +bZh +bPN +cbe +cbY +bQZ +btp +ceS +cae +bky +ccq +cdq +cjE +ckr +clw +cmu +aaf +aaf +aaf +aaf +aaf +aaf +aaf +crj +crC +crS +aaa +crj +crC +crS +aaa +crj +crC +crS +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 +apQ +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 +blP +bns +boF +bqe +brz +brv +cBt +bvN +bxp +byv +bzO +bAQ +bCl +bqe +bEC +bEC +bEM +bGC +bEC +bEC +bEC +bEC +bEC +bEC +bQZ +bQZ +bQZ +bQZ +bQZ +bQZ +bQZ +bUp +bQZ +bQZ +bQZ +bQZ +bQZ +btp +ceR +btp +cbv +ccq +bns +cjD +cjD +cjD +cjD +cnj +aaa +aaa +aaa +aaa +aaf +aaa +crj +crC +crS +aaa +crj +crC +crS +aaa +crj +crC +crS +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 +blR +bns +boF +bqe +brC +brv +buv +bvO +bxr +byv +bzO +bzO +bzO +bqe +bEF +bky +bEO +bGK +bKc +bky +bMB +bNA +btp +btp +bRb +bDh +bPN +bUq +bVt +bVt +bUp +bUp +bUp +bPN +bDh +bqg +bky +bDh +bDh +ckS +bky +ccq +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 +apQ +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 +cyC +bns +boF +bqe +brB +brv +bsG +bvP +bxn +bqe +bzO +bzO +bzO +bqe +bEE +bFY +bEN +bGG +bKb +bFY +buz +buz +buz +buz +buz +bSl +bTq +bTq +bTq +bTq +bTq +bTq +bTq +bTq +cbf +cbf +ccU +ccU +ccU +ccU +ccU +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 +apQ +aoV +aoV +aoV +apQ +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 +aaf +aaa +bns +boF +bqe +brD +brP +bsI +bvO +bxs +byw +bzO +bzO +bzO +bqe +bEG +bGa +bHs +bGL +bKd +bhG +bMC +blO +blO +bPO +blO +bSm +bTr +bTr +bTr +bTr +bXu +bTr +bTr +bTr +cbg +bTr +bTr +bXu +bTr +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 +apQ +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 +bqe +bry +bsH +bqe +bqe +bqe +bqe +bqe +bqe +bqe +bEG +bFZ +bHr +bIS +bEs +bEs +bEs +bky +bky +btp +bky +bky +bky +bky +bky +btp +bky +bky +bky +bky +bky +bky +bky +bky +btp +bky +bky +bky +bky +cjD +cjD +cjD +cjD +cnj +aaa +aaa +aaa +aaa +aaf +aaa +crj +crE +crS +aaa +crj +crE +crS +aaa +crj +crE +crS +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 +biY +brF +brQ +bsM +buz +buz +buz +buz +buz +buz +buz +bEI +bFZ +bHu +bIV +bKf +bLk +bEs +bNC +btp +btp +bky +aaa +aaa +aaf +bky +btp +btp +bYr +btp +cad +cbi +bky +ccW +cdV +btp +bky +cgy +ccV +bky +aaa +aaa +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +crj +crE +crS +aaa +crj +crE +crS +aaa +crj +crE +crS +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +bhG +bsJ +brE +bhG +bhG +bhG +bhG +brE +bhG +bEH +bGb +cBA +bIU +bKe +bLj +bEs +bNB +btp +bPP +bky +aaa +aaa +aaf +bky +bky +bky +bky +btp +cac +cbh +bky +ccV +btp +btp +cfv +cBL +btp +bky +aaf +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaa +aaf +aaa +crj +crE +crS +aaf +crj +crE +crS +aaf +crj +crE +crS +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 +cwI +cwI +cwI +cxg +cwI +afa +cwI +crx +crx +crx +cwI +cxK +cwI +cxK +cwI +cwI +cwI +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bky +btq +brH +bvQ +bxt +bvQ +bCm +bDh +bEs +bGd +bHv +bIW +bKe +bLm +bEs +bky +bky +bky +bky +aaa +aaa +aaf +aaa +aaf +bky +bYs +btp +cae +btp +btp +btp +btp +ceT +bky +btp +chH +bky +aaf +aaf +aaa +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +crj +crE +crS +aaa +crj +crE +crS +aaa +crj +crE +crS +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 +cwI +cwI +cwI +cwI +cwY +cxd +cxe +cwI +cwL +anq +anq +anq +anq +anq +cwL +cwI +cxQ +cxQ +cxU +cwI +cwI +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bZi +bqg +brG +brG +btp +brG +brG +bDg +bEs +bGc +bGc +bGc +bEs +bLl +bEs +aaf +aaa +aaf +atS +aaa +aaa +aaf +aaa +aaf +bky +bky +bZi +bZi +bZi +bky +bky +bky +blP +bky +bky +bky +bky +aaf +aaf +aaa +aaa +aaf +aaa +aaa +aaa +aaa +aba +aaa +crj +crG +crS +aaa +crj +crG +crS +aaa +crj +crG +crS +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 +cwI +crO +cwK +cwP +cwI +cwY +cxe +cxh +cwI +cxo +cwL +cwL +cwL +cwL +cwL +cxL +cwI +cxQ +cxQ +cxU +cxX +cxZ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bZi +btp +brI +bvR +btp +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 +bky +ceU +bky +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 +crx +crN +cwJ +cwO +cwI +cwY +cxe +cxh +cwI +cwL +cxq +cxq +cxq +cxq +cxq +cwL +cxM +cxQ +cxQ +cxV +cxX +cxZ +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 +bky +cyC +bky +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 +crx +cwF +cwL +cwR +cwI +crx +cxf +crx +cxm +cwL +cxr +cxr +cxr +cxr +cxr +cwL +cwI +cxR +cxQ +cxV +cxX +cxZ +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 +crx +crQ +cwL +cwQ +cwI +cwZ +cwL +cxi +cxj +cwL +cwL +cwL +cwL +cwL +cwL +cwL +cwW +cwI +cwI +cwI +cxX +cxZ +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 +crx +cwF +cwL +cwL +cwX +cwL +cwL +anq +cxj +cwL +cxq +cxq +cxq +cxq +cxq +cwL +crx +cxc +cxa +cxc +cxX +cxZ +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 +crx +cwG +amB +amB +cwW +cxa +cwL +cxj +cxj +cwL +cxr +cxr +cxr +cxr +cxr +cwL +cxO +cxa +cxa +cxa +cxX +cxZ +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 +cwI +crO +cwN +cwS +cwI +cxc +cwL +cwL +cwL +cwL +cwL +cwL +cwL +cwL +cwL +cwL +crx +cxa +cxa +cxa +cxX +cxZ +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 +cwI +cwI +cwI +cwI +cxb +cxa +cxa +cxa +cxp +cxs +cxs +cxs +cxs +cxs +cxp +crx +cxS +cxT +cxS +cwI +cwI +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 +cwI +crx +cwI +crx +cwI +cwI +cwI +crx +crx +crx +cwI +cwI +cwI +crx +cwI +crx +cwI +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 +cBX +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aHr +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aHr +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aHr +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aHr +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aHr +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aHr +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 "} diff --git a/_maps/map_files/debug/runtimestation.dmm b/_maps/map_files/debug/runtimestation.dmm new file mode 100644 index 0000000000..5bfc19354f --- /dev/null +++ b/_maps/map_files/debug/runtimestation.dmm @@ -0,0 +1,255 @@ +"aa" = (/turf/open/space,/area/space) +"ab" = (/obj/structure/lattice,/turf/open/space,/area/space) +"ac" = (/turf/open/space,/area/space/nearstation) +"ad" = (/turf/closed/wall/r_wall,/area/maintenance/maintcentral) +"ae" = (/obj/structure/lattice,/obj/structure/grille,/turf/open/space,/area/space/nearstation) +"af" = (/turf/open/floor/plating,/area/maintenance/maintcentral) +"ag" = (/obj/structure/lattice,/turf/open/space,/area/space/nearstation) +"ah" = (/turf/closed/wall/r_wall,/area/atmos) +"ai" = (/obj/machinery/power/rtg/advanced,/turf/open/floor/plating/airless,/area/space/nearstation) +"aj" = (/turf/closed/wall/r_wall,/area/engine/engineering) +"ak" = (/turf/closed/wall/r_wall,/area/engine/gravity_generator) +"al" = (/obj/machinery/airalarm{frequency = 1439; locked = 0; pixel_y = 23},/obj/structure/closet/secure_closet/atmospherics,/turf/open/floor/plating,/area/atmos) +"am" = (/obj/machinery/atmospherics/components/unary/tank/air,/turf/open/floor/plating,/area/atmos) +"an" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/space,/area/space/nearstation) +"ao" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/open/space,/area/space/nearstation) +"ap" = (/obj/machinery/airalarm{frequency = 1439; locked = 0; pixel_y = 23},/obj/machinery/power/apc{dir = 8; pixel_x = -24},/obj/structure/closet/secure_closet/engineering_electrical,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating,/area/engine/engineering) +"aq" = (/obj/machinery/computer/monitor,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/open/floor/plating,/area/engine/engineering) +"ar" = (/obj/structure/closet/secure_closet/engineering_welding,/turf/open/floor/plating,/area/engine/engineering) +"as" = (/obj/machinery/power/smes{charge = 5e+006},/obj/machinery/airalarm{frequency = 1439; locked = 0; pixel_y = 23},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel/warning{dir = 9},/area/engine/gravity_generator) +"at" = (/obj/machinery/power/apc{dir = 1; name = "Gravity Generator APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable{icon_state = "0-8"; d2 = 8},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plasteel/warning{dir = 5},/area/engine/gravity_generator) +"au" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 0; pixel_y = 32},/turf/open/floor/plating,/area/engine/gravity_generator) +"av" = (/turf/open/floor/plasteel/black,/area/engine/gravity_generator) +"aw" = (/turf/open/floor/plating,/area/atmos) +"ax" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/atmos) +"ay" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plating,/area/atmos) +"az" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/machinery/meter,/turf/open/floor/plating,/area/atmos) +"aA" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/space,/area/space/nearstation) +"aB" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/space,/area/space/nearstation) +"aC" = (/obj/machinery/door/airlock,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating,/area/engine/engineering) +"aD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating,/area/engine/engineering) +"aE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/open/floor/plating,/area/engine/engineering) +"aF" = (/turf/open/floor/plating,/area/engine/engineering) +"aG" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/warning{dir = 8},/area/engine/gravity_generator) +"aH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/warning{dir = 4},/area/engine/gravity_generator) +"aI" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/gravity_generator) +"aJ" = (/turf/open/floor/plasteel/vault{dir = 1},/area/engine/gravity_generator) +"aK" = (/turf/open/floor/plasteel/vault{dir = 8},/area/engine/gravity_generator) +"aL" = (/turf/open/floor/plasteel/vault{dir = 4},/area/engine/gravity_generator) +"aM" = (/obj/machinery/suit_storage_unit/ce,/turf/open/floor/plating,/area/atmos) +"aN" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/canister/nitrous_oxide,/turf/open/floor/plasteel/bot{dir = 2},/area/atmos) +"aO" = (/obj/machinery/atmospherics/components/binary/pump{dir = 4; on = 1},/turf/open/floor/plasteel,/area/atmos) +"aP" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plating,/area/atmos) +"aQ" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/space,/area/space/nearstation) +"aR" = (/obj/structure/lattice/catwalk,/obj/structure/cable{icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/space,/area/space/nearstation) +"aS" = (/obj/structure/table,/obj/item/device/flashlight{pixel_y = 5},/obj/item/weapon/airlock_painter,/turf/open/floor/plating,/area/engine/engineering) +"aT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating,/area/engine/engineering) +"aU" = (/obj/machinery/door/airlock/glass_engineering{name = "Gravity Generator"; req_access_txt = "11"; req_one_access_txt = "0"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/engine/gravity_generator) +"aV" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/warning{dir = 8},/area/engine/gravity_generator) +"aW" = (/obj/structure/cable{icon_state = "1-8"},/turf/open/floor/plasteel/warning{dir = 4},/area/engine/gravity_generator) +"aX" = (/obj/machinery/door/airlock/glass_engineering{name = "Gravity Generator"; req_access_txt = "11"; req_one_access_txt = "0"},/turf/open/floor/plasteel/black,/area/engine/gravity_generator) +"aY" = (/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/black,/area/engine/gravity_generator) +"aZ" = (/obj/structure/tank_dispenser{pixel_x = -1},/turf/open/floor/plating,/area/atmos) +"ba" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plating,/area/atmos) +"bb" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/canister,/turf/open/floor/plasteel/bot{dir = 2},/area/atmos) +"bc" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/atmos) +"bd" = (/obj/structure/table,/obj/item/weapon/weldingtool/experimental,/turf/open/floor/plating,/area/engine/engineering) +"be" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/engine/engineering) +"bf" = (/obj/structure/closet/secure_closet/engineering_chief,/turf/open/floor/plating,/area/engine/engineering) +"bg" = (/turf/open/floor/plasteel/warning{dir = 8},/area/engine/gravity_generator) +"bh" = (/turf/open/floor/plasteel/warning{dir = 4},/area/engine/gravity_generator) +"bi" = (/obj/machinery/gravity_generator/main/station,/turf/open/floor/plasteel/vault{dir = 8},/area/engine/gravity_generator) +"bj" = (/obj/machinery/power/apc{dir = 8; pixel_x = -24},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/light,/obj/structure/table,/obj/item/device/analyzer,/obj/item/weapon/wrench,/turf/open/floor/plating,/area/atmos) +"bk" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plating,/area/atmos) +"bl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/meter,/turf/open/floor/plating,/area/atmos) +"bm" = (/obj/machinery/atmospherics/components/binary/valve/open{icon_state = "mvalve_map"; dir = 4},/turf/open/floor/plating,/area/atmos) +"bn" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/obj/machinery/light,/turf/open/floor/plating,/area/atmos) +"bo" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/obj/structure/table,/obj/item/weapon/screwdriver/power,/obj/item/weapon/wirecutters/power,/turf/open/floor/plating,/area/engine/engineering) +"bp" = (/obj/machinery/light,/obj/item/weapon/storage/box/lights/mixed,/obj/item/device/lightreplacer,/turf/open/floor/plating,/area/engine/engineering) +"bq" = (/turf/open/floor/plasteel/warning{dir = 10},/area/engine/gravity_generator) +"br" = (/obj/structure/closet/radiation,/turf/open/floor/plasteel/warning{dir = 6},/area/engine/gravity_generator) +"bs" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/closed/wall/r_wall,/area/hallway/primary/central) +"bt" = (/obj/machinery/door/airlock,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/atmos) +"bu" = (/turf/closed/wall/r_wall,/area/bridge) +"bv" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/bridge) +"bw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall/r_wall,/area/engine/engineering) +"bx" = (/obj/machinery/door/airlock,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/engine/engineering) +"by" = (/turf/closed/wall/r_wall,/area/hallway/secondary/entry) +"bz" = (/obj/machinery/light{dir = 8},/turf/open/floor/plating,/area/maintenance/maintcentral) +"bA" = (/turf/closed/wall/r_wall,/area/hallway/primary/central) +"bB" = (/obj/machinery/power/apc{dir = 8; pixel_x = -24},/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/airalarm{frequency = 1439; locked = 0; pixel_y = 23},/obj/structure/closet/jcloset,/turf/open/floor/plasteel,/area/hallway/primary/central) +"bC" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bD" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bE" = (/turf/open/floor/plasteel,/area/hallway/primary/central) +"bF" = (/obj/structure/closet/secure_closet/CMO,/turf/open/floor/plasteel,/area/hallway/primary/central) +"bG" = (/obj/machinery/airalarm{frequency = 1439; locked = 0; pixel_y = 23},/obj/machinery/power/apc{dir = 8; pixel_x = -24},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/closet/secure_closet/captains,/turf/open/floor/plasteel/blue/side{dir = 8},/area/bridge) +"bH" = (/obj/structure/table,/obj/item/ammo_box/c10mm,/obj/item/weapon/gun/ballistic,/turf/open/floor/plasteel,/area/bridge) +"bI" = (/obj/structure/table,/turf/open/floor/plasteel,/area/bridge) +"bJ" = (/obj/structure/table,/obj/item/weapon/card/id/captains_spare,/turf/open/floor/plasteel,/area/bridge) +"bK" = (/obj/structure/table,/obj/item/weapon/storage/backpack/holding,/turf/open/floor/plasteel,/area/bridge) +"bL" = (/obj/structure/table,/obj/item/weapon/rcd_ammo/large,/obj/item/weapon/rcd_ammo/large,/obj/item/weapon/rcd_ammo/large,/obj/item/weapon/rcd,/turf/open/floor/plasteel,/area/bridge) +"bM" = (/obj/structure/closet/secure_closet/hop,/turf/open/floor/plasteel/blue/side{dir = 4},/area/bridge) +"bN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/central) +"bO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bP" = (/obj/machinery/vending/cigarette,/turf/open/floor/plasteel/black,/area/hallway/primary/central) +"bQ" = (/obj/machinery/vending/coffee,/turf/open/floor/plasteel/black,/area/hallway/primary/central) +"bR" = (/obj/machinery/vending/cola,/turf/open/floor/plasteel/black,/area/hallway/primary/central) +"bS" = (/obj/machinery/vending/snack,/turf/open/floor/plasteel/black,/area/hallway/primary/central) +"bT" = (/obj/machinery/computer/arcade,/turf/open/floor/plasteel/black,/area/hallway/primary/central) +"bU" = (/obj/machinery/airalarm{frequency = 1439; locked = 0; pixel_y = 23},/obj/machinery/power/apc{dir = 8; pixel_x = -24},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/closet/firecloset/full,/turf/open/floor/plasteel/arrival{tag = "icon-arrival (NORTHWEST)"; icon_state = "arrival"; dir = 9},/area/hallway/secondary/entry) +"bV" = (/obj/machinery/light{dir = 1},/obj/structure/closet/emcloset,/turf/open/floor/plasteel/arrival{dir = 1},/area/hallway/secondary/entry) +"bW" = (/obj/structure/closet/secure_closet/hos,/turf/open/floor/plasteel/arrival{dir = 1},/area/hallway/secondary/entry) +"bX" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/arrival{dir = 1},/area/hallway/secondary/entry) +"bY" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/maintcentral) +"bZ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hallway/primary/central) +"ca" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"cb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/central) +"cc" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/hallway/primary/central) +"cd" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating,/area/bridge) +"ce" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/blue/side{dir = 8},/area/bridge) +"cf" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/bridge) +"cg" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel/blue/side{dir = 4},/area/bridge) +"ch" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating,/area/bridge) +"ci" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/hallway/primary/central) +"cj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{icon_state = "1-8"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"ck" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/closed/wall/r_wall,/area/hallway/secondary/entry) +"cl" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/arrival{dir = 8},/area/hallway/secondary/entry) +"cm" = (/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"cn" = (/obj/machinery/door/airlock,/turf/open/floor/plating,/area/hallway/secondary/entry) +"co" = (/obj/machinery/light{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) +"cp" = (/obj/machinery/light,/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/blue/side{dir = 10},/area/bridge) +"cq" = (/turf/open/floor/plasteel/blue/side,/area/bridge) +"cr" = (/obj/machinery/light,/turf/open/floor/plasteel/blue/side{dir = 6},/area/bridge) +"cs" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/closed/wall/r_wall,/area/bridge) +"ct" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel,/area/hallway/primary/central) +"cu" = (/turf/open/floor/plasteel/arrival{dir = 8},/area/hallway/secondary/entry) +"cv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall/r_wall,/area/bridge) +"cw" = (/obj/machinery/door/airlock,/turf/open/floor/plasteel,/area/bridge) +"cx" = (/obj/machinery/door/airlock/glass,/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"cy" = (/turf/open/floor/plasteel/loadingarea{dir = 8},/area/hallway/secondary/entry) +"cz" = (/turf/open/floor/plating,/area/hallway/secondary/entry) +"cA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) +"cB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/blue/corner{dir = 4},/area/hallway/primary/central) +"cC" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/blue/side{dir = 1},/area/hallway/primary/central) +"cD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/blue/side{dir = 1},/area/hallway/primary/central) +"cE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/blue/corner{dir = 1},/area/hallway/primary/central) +"cF" = (/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/central) +"cG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall/r_wall,/area/hallway/secondary/entry) +"cH" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/arrival{dir = 8},/area/hallway/secondary/entry) +"cI" = (/obj/structure/table,/obj/item/weapon/storage/fancy/donut_box,/turf/open/floor/plasteel/arrival{dir = 8},/area/hallway/secondary/entry) +"cJ" = (/obj/structure/table,/obj/item/weapon/storage/fancy/donut_box,/turf/open/floor/plasteel/arrival{dir = 10},/area/hallway/secondary/entry) +"cK" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/rods{amount = 50},/obj/machinery/light,/turf/open/floor/plasteel/arrival,/area/hallway/secondary/entry) +"cL" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/open/floor/plasteel/arrival,/area/hallway/secondary/entry) +"cM" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/firstaid/regular,/obj/item/device/healthanalyzer,/turf/open/floor/plasteel/arrival,/area/hallway/secondary/entry) +"cN" = (/turf/closed/wall/r_wall,/area/construction) +"cO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/closed/wall/r_wall,/area/construction) +"cP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall/r_wall,/area/construction) +"cQ" = (/obj/machinery/door/airlock/glass,/turf/open/floor/plasteel,/area/construction) +"cR" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/construction) +"cS" = (/turf/closed/wall/r_wall,/area/storage/primary) +"cT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/closed/wall/r_wall,/area/storage/primary) +"cU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall/r_wall,/area/storage/primary) +"cV" = (/obj/machinery/door/airlock/glass,/turf/open/floor/plasteel,/area/storage/primary) +"cW" = (/obj/machinery/airalarm{frequency = 1439; locked = 0; pixel_y = 23},/obj/structure/cable,/obj/machinery/power/apc{dir = 8; pixel_x = -24},/turf/open/floor/plasteel/warning/corner,/area/construction) +"cX" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel/warning,/area/construction) +"cY" = (/turf/open/floor/plasteel/warning,/area/construction) +"cZ" = (/turf/open/floor/plasteel/warning/corner{dir = 1},/area/construction) +"da" = (/obj/machinery/airalarm{frequency = 1439; locked = 0; pixel_y = 23},/obj/machinery/power/apc{dir = 8; pixel_x = -24},/obj/structure/cable,/turf/open/floor/plating,/area/storage/primary) +"db" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plating,/area/storage/primary) +"dc" = (/turf/open/floor/plasteel/warning{dir = 8},/area/storage/primary) +"dd" = (/turf/open/floor/plasteel{icon_state = "L1"},/area/storage/primary) +"de" = (/obj/machinery/light{dir = 1},/turf/open/floor/plasteel{icon_state = "L3"},/area/storage/primary) +"df" = (/turf/open/floor/plasteel{icon_state = "L5"},/area/storage/primary) +"dg" = (/turf/open/floor/plasteel{icon_state = "L7"},/area/storage/primary) +"dh" = (/turf/open/floor/plasteel{icon_state = "L9"},/area/storage/primary) +"di" = (/obj/machinery/light{dir = 1},/turf/open/floor/plasteel{icon_state = "L11"},/area/storage/primary) +"dj" = (/turf/open/floor/plasteel{icon_state = "L13"; name = "floor"},/area/storage/primary) +"dk" = (/turf/open/floor/plasteel/warning{dir = 4},/area/storage/primary) +"dl" = (/turf/open/floor/plating,/area/storage/primary) +"dm" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/warning{dir = 4},/area/construction) +"dn" = (/turf/open/floor/plating,/area/construction) +"do" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/open/floor/plasteel/warning{dir = 8},/area/construction) +"dp" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plating,/area/storage/primary) +"dq" = (/turf/open/floor/plasteel{icon_state = "L2"},/area/storage/primary) +"dr" = (/turf/open/floor/plasteel{icon_state = "L4"},/area/storage/primary) +"ds" = (/turf/open/floor/plasteel{icon_state = "L6"},/area/storage/primary) +"dt" = (/turf/open/floor/plasteel{icon_state = "L8"},/area/storage/primary) +"du" = (/turf/open/floor/plasteel{icon_state = "L10"},/area/storage/primary) +"dv" = (/turf/open/floor/plasteel{icon_state = "L12"},/area/storage/primary) +"dw" = (/turf/open/floor/plasteel{icon_state = "L14"},/area/storage/primary) +"dx" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/open/floor/plating,/area/storage/primary) +"dy" = (/turf/open/floor/plasteel/warning{dir = 4},/area/construction) +"dz" = (/turf/open/floor/plasteel/warning{dir = 8},/area/construction) +"dA" = (/turf/open/floor/plasteel/warning{dir = 10},/area/storage/primary) +"dB" = (/turf/open/floor/plasteel/warning,/area/storage/primary) +"dC" = (/turf/open/floor/plasteel/warning{dir = 6},/area/storage/primary) +"dD" = (/turf/open/floor/plasteel/warning{dir = 9},/area/storage/primary) +"dE" = (/turf/open/floor/plasteel/warning{dir = 1},/area/storage/primary) +"dF" = (/turf/open/floor/plasteel/warning{dir = 5},/area/storage/primary) +"dG" = (/obj/machinery/door/airlock,/turf/open/floor/plasteel,/area/storage/primary) +"dH" = (/obj/effect/landmark/start,/turf/open/floor/plasteel,/area/storage/primary) +"dI" = (/obj/effect/landmark{name = "JoinLate"},/turf/open/floor/plasteel,/area/storage/primary) +"dJ" = (/turf/open/floor/plasteel,/area/storage/primary) +"dK" = (/turf/open/floor/plasteel/warning/corner{dir = 8},/area/construction) +"dL" = (/turf/open/floor/plasteel/warning{dir = 1},/area/construction) +"dM" = (/turf/open/floor/plasteel/warning/corner{dir = 4},/area/construction) +"dN" = (/obj/structure/table,/turf/open/floor/plasteel,/area/storage/primary) +"dO" = (/obj/structure/table,/obj/machinery/light,/obj/item/weapon/twohanded/fireaxe,/obj/item/weapon/extinguisher,/turf/open/floor/plasteel,/area/storage/primary) +"dP" = (/obj/structure/table,/obj/item/device/lightreplacer,/turf/open/floor/plasteel,/area/storage/primary) +"dQ" = (/obj/structure/table,/obj/item/weapon/storage/box/lights/mixed,/obj/item/weapon/storage/box/lights/tubes,/obj/machinery/light,/turf/open/floor/plasteel,/area/storage/primary) +"dR" = (/obj/structure/table,/obj/item/device/flashlight{pixel_y = 5},/turf/open/floor/plasteel,/area/storage/primary) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabacadadadadadadadadadaeaeaeaeaeaeaeadadadadadadadadadadadadadadadadacabaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabacadafafafafafafafadagagagagacacacadafafafafafafafafafafafafafafadacabaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabacadafahahahahahahahagaiaiagacacacajajajajakakakakakakakakakakafadacabaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabacadafahalamamamamahaganaoagagajajajapaqarakasatauavavavavavakafadacabaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabacadafahawaxayayazahagaiaAaBaBaCaDaCaDaEaFakaGaHaIavaJaKaLavakafadacabaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabacadafahaMawaNaOaPahagaQaRagagajajajaSaTaDaUaVaWaXavaKavaKaYakafadacabaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabacadafahaZbabbbcaPahagaiaiagacacacajbdbebfakbgbhaIavaLbiaJavakafadacabaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabacadafahbjbkblbmbnahagagagagacacacajbobebpakbqbraIavavavavavakafadacabaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabacadafahbsbtahahahbububvbvbvbvbvbububwbxajakakakakbybybybybybyafadacabaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabacadbzbAbBbCbDbEbFbubGbHbIbJbKbLbMbubNbObPbQbRbSbTbybUbVbWbXbyafadacabaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabacbYafbZcacbcccccccdcecfcfcfcfcfcgchcicjccccccccccckclcmcmcmcnafadacabaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabacbYafbZbObNbEbEcobucpcqcqcqcqcqcrcsctbEbEbEbEbEcobycucmcmcmbybybyacabaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabacbYafbZbObNbEbEbEbucvbvbucwbubvbucsbNbEbEbEbEbEbEcxcucmcmcycnczcnacabaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabacbYafbZbObCcAcAcAcBcCcDcDcDcDcDcDcEcFcAcAcAcAcAcAcGcHcmcmcmbybybyacabaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabacbYafbZbObNbEbEbEbEbEbEbEbEbEbEbEbObNbEbEbEbEbEbEbycIcmcmcmcnafadacabaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabacadbzbAbObNbEbEbEbEbEbEbEbEbEbEbEbObNbEbEbEbEbEbEbycJcKcLcMbyafadacabaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabacadafcNcOcPcQcQcNcRcRcRcNcQcQcNcScTcUcScScScVcVcVbybybybybybyafadacabaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabacadafcNcWcXcYcYcYcYcYcYcYcYcYcZcSdadbdcdddedfdgdhdidjdkdldlcSafadacabaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabacadafcNdmdndndndndndndndndndndocSdpdldcdqdrdsdtdudvdwdkdldxcSafadacabaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabacadafcNdydndndndndndndndndndndzcSdldldAdBdBdBdBdBdBdBdCdldlcSafadacabaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabacadafcNdydndndndndndndndndndndzcSdldldldldldldldldldldldldlcSafadacabaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabacadafcNdydndndndndndndndndndndzcSdldldDdEdEdEdEdEdEdEdFdldlcSafadacabaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabacadafcNdydndndndndndndndndndndzdGdldldcdHdHdHdHdHdHdHdkdldlcSafadacabaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabacadafcNdydndndndndndndndndndndzdGdldldcdIdIdIdIdIdIdIdkdldlcSafadacabaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabacadafcNdydndndndndndndndndndndzcSdldldAdBdBdBdBdBdBdBdCdldlcSafadacabaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabacadafcNdydndndndndndndndndndndzcSdldldldldldldldldldldldldlcSafadacabaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabacadafcNdydndndndndndndndndndndzcSdldldDdEdEdEdEdEdEdEdFdldlcSafadacabaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabacadafcNdmdndndndndndndndndndndocSdpdldcdJdJdJdJdJdJdJdkdldxcSafadacabaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabacadafcNdKdLdLdLdLdLdLdLdLdLdLdMcSdldldcdNdOdNdNdPdQdRdkdldlcSafadacabaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabacadafcNcNcNcNcNcNcNcNcNcNcNcNcNcScScScScScScScScScScScScScScSafadacabaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabacadafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafadacabaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabacadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadacabaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +"} diff --git a/_maps/map_files/generic/lavaland.dmm b/_maps/map_files/generic/lavaland.dmm index 3d1078b926..0605fc05ef 100644 --- a/_maps/map_files/generic/lavaland.dmm +++ b/_maps/map_files/generic/lavaland.dmm @@ -1,599 +1,68343 @@ -"aa" = (/turf/closed/indestructible/riveted,/area/lavaland/surface/outdoors) -"ab" = (/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors) -"ac" = (/obj/machinery/lavaland_controller,/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area) -"ad" = (/obj/structure/lavaland_door,/turf/closed/indestructible/riveted,/area/lavaland/surface/outdoors) -"ae" = (/turf/closed/mineral/random/high_chance/volcanic,/area/lavaland/surface/outdoors) -"af" = (/obj/effect/light_emitter,/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors) -"ag" = (/turf/open/floor/plating/lava/smooth/lava_land_surface,/area/lavaland/surface/outdoors) -"ah" = (/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/obj/item/weapon/pickaxe,/turf/closed/indestructible/riveted,/area/ruin/unpowered{name = "Necropolis Bridge"}) -"ai" = (/turf/open/floor/plasteel/neutral{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300"},/area/ruin/unpowered{name = "Necropolis Bridge"}) -"aj" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/neutral{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300"},/area/ruin/unpowered{name = "Necropolis Bridge"}) -"ak" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/neutral{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300"},/area/ruin/unpowered{name = "Necropolis Bridge"}) -"al" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating/lava/smooth/lava_land_surface,/area/lavaland/surface/outdoors) -"am" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/lava/smooth/lava_land_surface,/area/lavaland/surface/outdoors) -"an" = (/turf/closed/mineral/random/volcanic,/area/lavaland/surface/outdoors) -"ao" = (/turf/closed/mineral/random/labormineral/volcanic,/area/lavaland/surface/outdoors) -"ap" = (/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/turf/closed/mineral/random/volcanic,/area/lavaland/surface/outdoors) -"aq" = (/obj/effect/spawner/structure/window/reinforced,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"ar" = (/turf/closed/wall{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"as" = (/obj/structure/table,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"at" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"au" = (/obj/structure/bed,/obj/item/weapon/bedsheet/medical,/obj/machinery/camera{c_tag = "Labor Camp Medical"; dir = 8; network = list("Labor")},/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"av" = (/obj/structure/rack{dir = 1},/obj/item/weapon/storage/bag/ore,/obj/item/weapon/pickaxe,/obj/item/device/flashlight,/obj/item/clothing/glasses/meson,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"aw" = (/obj/structure/rack{dir = 1},/obj/item/weapon/storage/bag/ore,/obj/item/device/flashlight,/obj/item/weapon/pickaxe,/obj/item/clothing/glasses/meson,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"ax" = (/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors/explored) -"ay" = (/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"az" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"aA" = (/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"aB" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"aC" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Infirmary"; req_access_txt = "0"},/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"aD" = (/obj/structure/closet/crate/internals,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"aE" = (/obj/item/device/radio/intercom{desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; pixel_x = 0; pixel_y = 24; prison_radio = 1},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"aF" = (/obj/machinery/door/airlock{name = "Labor Camp Storage"},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"aG" = (/obj/structure/table,/obj/item/trash/plate,/obj/item/weapon/kitchen/fork,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"aH" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"aI" = (/obj/machinery/door/airlock{name = "Labor Camp External Access"},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"aJ" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"aK" = (/obj/machinery/door/airlock{name = "Labor Camp External Access"},/obj/structure/fans/tiny,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"aL" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"aM" = (/obj/machinery/door/airlock{name = "Vending"},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"aN" = (/obj/machinery/light/small,/turf/open/floor/plasteel/loadingarea{tag = "icon-loadingarea (EAST)"; dir = 4; baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"aO" = (/turf/open/floor/plasteel/delivery{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"aP" = (/obj/machinery/camera{c_tag = "Labor Camp External"; dir = 4; network = list("Labor")},/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors) -"aQ" = (/obj/machinery/vending/sustenance,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"aR" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"aS" = (/obj/machinery/mineral/unloading_machine{dir = 1; icon_state = "unloader-corner"; input_dir = 1; output_dir = 2},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"aT" = (/obj/structure/ore_box,/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors/explored) -"aU" = (/obj/machinery/flasher{id = "Labor"; pixel_x = 0; pixel_y = 0},/turf/closed/wall{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"aV" = (/obj/machinery/conveyor{dir = 2; id = "gulag"},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"aW" = (/obj/structure/closet/crate,/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors/explored) -"aX" = (/obj/machinery/door/airlock/glass_security{name = "Labor Camp Shuttle Security Airlock"; req_access_txt = "2"},/obj/structure/fans/tiny,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"aY" = (/obj/machinery/light/small{dir = 1},/obj/machinery/button/door{id = "Labor"; name = "Labor Camp Lockdown"; pixel_x = 0; pixel_y = 28; req_access_txt = "2"},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"aZ" = (/obj/machinery/door/airlock/glass_security{name = "Labor Camp Shuttle Security Airlock"; req_access_txt = "2"},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"ba" = (/obj/machinery/door/poddoor/preopen{id = "Labor"; name = "labor camp blast door"},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"bb" = (/obj/machinery/camera{c_tag = "Labor Camp Central"; network = list("Labor")},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"bc" = (/obj/machinery/conveyor_switch/oneway{id = "gulag"},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"bd" = (/obj/machinery/mineral/processing_unit_console{dir = 2; machinedir = 4},/turf/closed/wall{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"be" = (/obj/machinery/mineral/processing_unit{dir = 1; output_dir = 2},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"bf" = (/turf/closed/wall{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/eva) -"bg" = (/obj/effect/spawner/structure/window/reinforced,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/eva) -"bh" = (/turf/closed/wall{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/lavaland/surface/outdoors) -"bi" = (/obj/machinery/computer/shuttle/labor/one_way,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"bj" = (/obj/structure/gulag_beacon,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"bk" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"bl" = (/turf/open/floor/plasteel/loadingarea{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 8},/area/mine/laborcamp) -"bm" = (/obj/machinery/conveyor{dir = 8; id = "gulag"},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"bn" = (/obj/machinery/conveyor{dir = 10; icon_state = "conveyor0"; id = "gulag"},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"bo" = (/obj/structure/table,/obj/item/weapon/pickaxe,/obj/item/device/gps/mining,/obj/item/device/gps/mining,/obj/item/device/gps/mining,/obj/item/device/gps/mining,/turf/open/floor/plasteel/purple/side{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 9},/area/mine/eva) -"bp" = (/obj/machinery/suit_storage_unit/mining,/turf/open/floor/plasteel/brown{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 1},/area/mine/eva) -"bq" = (/obj/machinery/suit_storage_unit/mining,/turf/open/floor/plasteel/purple/side{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 5},/area/mine/eva) -"br" = (/turf/closed/wall{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/production) -"bs" = (/obj/effect/spawner/structure/window/reinforced,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/production) -"bt" = (/obj/machinery/camera{c_tag = "EVA"; dir = 4; network = list("MINE")},/obj/machinery/airalarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/turf/open/floor/plasteel/brown{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 8},/area/mine/eva) -"bu" = (/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/eva) -"bv" = (/obj/machinery/light_switch{pixel_x = 27},/turf/open/floor/plasteel/brown{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 4},/area/mine/eva) -"bw" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/mine/eva) -"bx" = (/obj/docking_port/stationary{area_type = /area/lavaland/surface/outdoors; dir = 8; dwidth = 2; height = 5; id = "laborcamp_away"; name = "labor camp"; turf_type = /turf/open/floor/plating/lava/smooth; width = 9},/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors/explored) -"by" = (/obj/machinery/door/airlock/glass_security{name = "Labor Camp Shuttle Prisoner Airlock"; req_access_txt = "0"},/obj/structure/fans/tiny,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"bz" = (/obj/machinery/door/airlock/glass_security{name = "Labor Camp Shuttle Prisoner Airlock"; req_access_txt = "0"},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"bA" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"bB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"bC" = (/obj/machinery/door/airlock/glass_security{name = "Labor Camp Backroom"; req_access_txt = "2"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"bD" = (/obj/machinery/power/apc{dir = 1; name = "Labor Camp APC"; pixel_y = 24},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"bE" = (/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/obj/machinery/computer/shuttle/mining{req_access = "0"},/turf/open/floor/plasteel/purple/side{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 1},/area/mine/production) -"bF" = (/obj/structure/closet/crate,/turf/open/floor/plasteel/brown{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 1},/area/mine/production) -"bG" = (/turf/open/floor/plasteel/purple/corner{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/production) -"bH" = (/obj/effect/spawner/structure/window,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/eva) -"bI" = (/obj/structure/table,/obj/machinery/cell_charger,/turf/open/floor/plasteel/purple/corner{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 8},/area/mine/eva) -"bJ" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/eva) -"bK" = (/obj/structure/tank_dispenser/oxygen,/turf/open/floor/plasteel/purple/corner{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/eva) -"bL" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/purple/corner{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 8},/area/mine/eva) -"bM" = (/turf/open/floor/plasteel/purple/corner{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/eva) -"bN" = (/obj/machinery/door/airlock/glass_security{name = "Labor Camp Monitoring"; req_access_txt = "2"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"bO" = (/obj/machinery/door/airlock/maintenance{name = "Labor Camp Maintenance"; req_access_txt = "2"},/obj/structure/cable{tag = "icon-1-10"; icon_state = "1-10"; d1 = 2; d2 = 4},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"bP" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/obj/effect/spawner/structure/window/reinforced,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/production) -"bQ" = (/obj/item/device/radio/beacon,/turf/open/floor/plasteel/purple/corner{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 8},/area/mine/production) -"bR" = (/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/production) -"bS" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/production) -"bT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/brown{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 4},/area/mine/production) -"bU" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/airlock/glass_mining{name = "Mining Station EVA"; req_access_txt = "54"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/eva) -"bV" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/brown{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 8},/area/mine/eva) -"bW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/eva) -"bX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/eva) -"bY" = (/turf/open/floor/plasteel/brown{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 4},/area/mine/eva) -"bZ" = (/obj/machinery/door/airlock/external{glass = 1; name = "Mining External Airlock"; opacity = 0; req_access_txt = "54"},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/eva) -"ca" = (/turf/open/floor/plasteel/brown{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 8},/area/mine/eva) -"cb" = (/obj/machinery/door/airlock/external{glass = 1; name = "Mining External Airlock"; opacity = 0; req_access_txt = "54"},/obj/structure/fans/tiny,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/eva) -"cc" = (/turf/closed/mineral/random/volcanic,/area/lavaland/surface/outdoors/explored) -"cd" = (/turf/closed/wall{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp/security) -"ce" = (/obj/structure/table,/obj/machinery/recharger,/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp/security) -"cf" = (/obj/structure/chair/office/dark,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/mob/living/simple_animal/bot/secbot/beepsky{desc = "Powered by tears and swet of laborer."; name = "Prison Ofitser"},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp/security) -"cg" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/machinery/power/apc{dir = 4; name = "Labor Camp Security APC"; pixel_x = 24; pixel_y = 0},/obj/machinery/camera{c_tag = "Labor Camp Monitoring"; network = list("Labor")},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp/security) -"ch" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{tag = "icon-5-6"; icon_state = "5-6"; d1 = 2; d2 = 4},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"ci" = (/obj/machinery/power/terminal,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"cj" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"ck" = (/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"cl" = (/obj/docking_port/stationary{area_type = /area/lavaland/surface/outdoors; dir = 8; dwidth = 3; height = 5; id = "mining_away"; name = "lavaland mine"; turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; width = 7},/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors) -"cm" = (/obj/machinery/door/airlock/external{glass = 1; name = "Mining Shuttle Airlock"; opacity = 0; req_access_txt = "0"},/obj/structure/fans/tiny,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/production) -"cn" = (/obj/machinery/door/airlock/external{glass = 1; name = "Mining Shuttle Airlock"; opacity = 0; req_access_txt = "0"},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/production) -"co" = (/turf/open/floor/plasteel/brown{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 8},/area/mine/production) -"cp" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/production) -"cq" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (EAST)"; dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/production) -"cr" = (/turf/open/floor/plasteel/purple/corner{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 4},/area/mine/production) -"cs" = (/obj/machinery/power/apc{dir = 2; name = "Mining EVA APC"; pixel_x = 1; pixel_y = -23},/obj/structure/cable,/obj/machinery/recharge_station,/turf/open/floor/plasteel/purple/corner{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 1},/area/mine/eva) -"ct" = (/obj/machinery/mech_bay_recharge_port,/obj/structure/cable,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/eva) -"cu" = (/turf/open/floor/mech_bay_recharge_floor{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/eva) -"cv" = (/obj/machinery/computer/mech_bay_power_console,/turf/open/floor/plasteel/purple/corner{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 4},/area/mine/eva) -"cw" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/purple/corner{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 1},/area/mine/eva) -"cx" = (/obj/structure/ore_box,/turf/open/floor/plasteel/purple/corner{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 4},/area/mine/eva) -"cy" = (/obj/item/weapon/pickaxe,/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors) -"cz" = (/obj/structure/ore_box,/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors) -"cA" = (/obj/machinery/computer/secure_data,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp/security) -"cB" = (/obj/machinery/computer/security{name = "Labor Camp Monitoring"; network = list("Labor")},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp/security) -"cC" = (/obj/machinery/computer/prisoner,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp/security) -"cD" = (/obj/machinery/power/port_gen/pacman{anchored = 1},/obj/structure/cable,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"cE" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{tag = "icon-0-9"; icon_state = "0-9"; d1 = 2; d2 = 4},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"cF" = (/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"cG" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp) -"cH" = (/turf/open/floor/plasteel/purple/corner{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 1},/area/mine/production) -"cI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/production) -"cJ" = (/turf/open/floor/plasteel/brown{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 4},/area/mine/production) -"cK" = (/obj/effect/spawner/structure/window/reinforced,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/laborcamp/security) -"cL" = (/turf/open/floor/plasteel/purple/corner{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 8},/area/mine/production) -"cM" = (/turf/open/floor/plasteel/purple/side{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 4},/area/mine/production) -"cN" = (/obj/machinery/door/airlock{name = "Closet"; req_access_txt = "0"},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/production) -"cO" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/production) -"cP" = (/obj/machinery/space_heater,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/production) -"cQ" = (/turf/closed/wall{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"cR" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/closed/wall{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"cS" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/open/floor/plasteel/brown{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 8},/area/mine/production) -"cT" = (/turf/open/floor/plating/lava/smooth/lava_land_surface,/area/lavaland/surface/outdoors/explored) -"cU" = (/turf/closed/wall/r_wall{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/maintenance) -"cV" = (/obj/effect/spawner/structure/window/reinforced,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"cW" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"cX" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/light/small{dir = 1},/obj/structure/closet/crate/secure/loot,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"cY" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"cZ" = (/obj/structure/mopbucket,/obj/item/weapon/mop,/obj/item/weapon/reagent_containers/glass/bucket,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"da" = (/obj/machinery/atmospherics/components/unary/tank/air{dir = 8},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"db" = (/obj/machinery/power/apc{dir = 8; name = "Mining Station Starboard Wing APC"; pixel_x = -27; pixel_y = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/purple/side{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 8},/area/mine/production) -"dc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/production) -"dd" = (/obj/machinery/mineral/equipment_vendor,/turf/open/floor/plasteel/brown{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 5},/area/mine/production) -"de" = (/obj/machinery/mineral/mint{input_dir = 4},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/production) -"df" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/loadingarea{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 8},/area/mine/production) -"dg" = (/obj/structure/closet/crate,/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/turf/open/floor/plasteel/bot{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/production) -"dh" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/obj/structure/table,/obj/item/weapon/paper{anchored = 0; info = "A hastily written note has been scribbled here...

Please use the ore redemption machine in the science wing for smelting. PLEASE!

--The Research Staff"; name = "URGENT!"},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/production) -"di" = (/obj/structure/ore_box,/turf/open/floor/plasteel/bot{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/production) -"dj" = (/turf/open/floor/plasteel/bot{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/production) -"dk" = (/turf/open/floor/bluegrid{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/maintenance) -"dl" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/power/apc{dir = 1; name = "Mining Communications APC"; pixel_x = 1; pixel_y = 25},/turf/open/floor/plasteel/black{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/maintenance) -"dm" = (/obj/machinery/telecomms/relay/preset/mining,/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/vault{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 8; tag = "icon-vault (WEST)"},/area/mine/maintenance) -"dn" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/black{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/maintenance) -"do" = (/obj/machinery/airalarm{pixel_y = 24},/turf/open/floor/bluegrid{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/maintenance) -"dp" = (/obj/machinery/light/small{dir = 8},/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/obj/machinery/iv_drip{density = 0},/turf/open/floor/plasteel/whiteblue/side{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 1; tag = "icon-whiteblue (NORTH)"},/area/mine/living_quarters) -"dq" = (/turf/open/floor/plasteel/whiteblue/side{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 1; tag = "icon-whiteblue (NORTH)"},/area/mine/living_quarters) -"dr" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/toxin{pixel_x = 3; pixel_y = 3},/turf/open/floor/plasteel/whiteblue/side{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 5; tag = "icon-whiteblue (NORTHEAST)"},/area/mine/living_quarters) -"ds" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"dt" = (/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"du" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"dv" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"dw" = (/obj/machinery/mineral/equipment_vendor,/turf/open/floor/plasteel/purple/side{dir = 4},/area/mine/production) -"dx" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/production) -"dy" = (/turf/open/floor/plasteel/loadingarea{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/production) -"dz" = (/turf/open/floor/plasteel/loadingarea{tag = "icon-loadingarea (EAST)"; dir = 4; baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/production) -"dA" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/delivery{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/production) -"dB" = (/obj/machinery/vending/boozeomat{req_access_txt = "0"},/obj/effect/decal/cleanable/cobweb,/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"dC" = (/obj/structure/table/wood/bar,/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey,/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"dD" = (/obj/structure/table/wood/bar,/obj/machinery/light{tag = "icon-tube1 (NORTH)"; icon_state = "tube1"; dir = 1},/obj/item/weapon/reagent_containers/food/drinks/drinkingglass,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass,/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"dE" = (/obj/machinery/vending/cigarette{contraband = list(); name = "\improper ShadyCigs Super Deluxe"; premium = list(/obj/item/weapon/lighter = 6); products = list(/obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/lighter = 6, /obj/item/weapon/storage/fancy/cigarettes/cigars = 3, /obj/item/weapon/storage/fancy/cigarettes/cigars/havana = 3, /obj/item/weapon/storage/fancy/cigarettes/cigars/cohiba = 3); refill_canister = null},/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"dF" = (/obj/structure/closet/crate/bin,/obj/machinery/camera{c_tag = "Crew Area Hallway East"; network = list("MINE")},/obj/item/toy/cards/deck/cas,/obj/item/toy/cards/deck/cas/black,/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"dG" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/bluegrid{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/maintenance) -"dH" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel/black{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/maintenance) -"dI" = (/obj/machinery/light_switch{pixel_y = -25},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/bluegrid{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/maintenance) -"dJ" = (/obj/machinery/camera{c_tag = "Communications Relay"; dir = 8; network = list("MINE")},/turf/open/floor/bluegrid{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/maintenance) -"dK" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/blood/empty,/obj/item/weapon/reagent_containers/blood/empty{pixel_x = -3; pixel_y = -3},/obj/item/weapon/reagent_containers/blood/AMinus,/obj/item/weapon/reagent_containers/blood/BMinus{pixel_x = -4; pixel_y = 4},/obj/item/weapon/reagent_containers/blood/BPlus{pixel_x = 1; pixel_y = 2},/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OPlus{pixel_x = -2; pixel_y = -1},/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/random,/obj/machinery/camera{c_tag = "Sleeper Room"; dir = 1; network = list("MINE")},/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"dL" = (/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"dM" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"dN" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular,/turf/open/floor/plasteel/whiteblue/side{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 4; tag = "icon-whiteblue (EAST)"},/area/mine/living_quarters) -"dO" = (/obj/structure/cable,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/power/port_gen/pacman{anchored = 1},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"dP" = (/obj/machinery/power/port_gen/pacman{anchored = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"dQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"dR" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"dS" = (/turf/open/floor/plasteel/purple/side{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 8},/area/mine/production) -"dT" = (/obj/machinery/light{dir = 4},/obj/machinery/camera{c_tag = "Shuttle Docking Foyer"; dir = 8; network = list("MINE")},/obj/machinery/newscaster{pixel_x = 30; pixel_y = 1},/turf/open/floor/plasteel/brown{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 4},/area/mine/production) -"dU" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/turf/open/floor/plasteel/bot{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/production) -"dV" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/production) -"dW" = (/obj/machinery/camera{c_tag = "Processing Area Room"; dir = 8; network = list("MINE")},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = 28},/turf/open/floor/plasteel/brown{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 4},/area/mine/production) -"dX" = (/obj/machinery/mineral/unloading_machine{dir = 1; icon_state = "unloader-corner"; input_dir = 1; output_dir = 2},/turf/open/floor/plating/warnplate{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 9},/area/mine/production) -"dY" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"dZ" = (/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"ea" = (/obj/machinery/door/airlock/maintenance{name = "Mining Station Communications"; req_access_txt = "48"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/maintenance) -"eb" = (/obj/effect/spawner/structure/window,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"ec" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Infirmary"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"ed" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/airlock/maintenance{name = "Mining Station Maintenance"; req_access_txt = "48"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"ee" = (/turf/open/floor/plasteel/brown/corner{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 1; tag = "icon-browncorner (NORTH)"},/area/mine/production) -"ef" = (/obj/effect/spawner/structure/window,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/production) -"eg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/production) -"eh" = (/obj/machinery/conveyor_switch/oneway{id = "mining_internal"; name = "mining conveyor"},/turf/open/floor/plasteel/purple/side{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 4},/area/mine/production) -"ei" = (/obj/machinery/conveyor{dir = 2; id = "mining_internal"},/turf/open/floor/plating/warnplate{tag = "icon-warnplate (WEST)"; dir = 8; baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/production) -"ej" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted/fulltile,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"ek" = (/obj/structure/chair/wood{tag = "icon-wooden_chair (EAST)"; icon_state = "wooden_chair"; dir = 4},/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"el" = (/obj/structure/table/wood/poker,/obj/item/toy/cards/deck,/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"em" = (/obj/structure/chair/wood{tag = "icon-wooden_chair (WEST)"; icon_state = "wooden_chair"; dir = 8},/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"en" = (/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"eo" = (/turf/open/floor/plasteel/purple/corner{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 4},/area/mine/living_quarters) -"ep" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/brown{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 1; tag = "icon-brown (NORTH)"},/area/mine/living_quarters) -"eq" = (/turf/open/floor/plasteel/purple/corner{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 1},/area/mine/living_quarters) -"er" = (/obj/machinery/camera{c_tag = "Crew Area Hallway West"; network = list("MINE")},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"es" = (/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"et" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/brown{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 1; tag = "icon-brown (NORTH)"},/area/mine/living_quarters) -"eu" = (/obj/machinery/power/apc{dir = 1; name = "Mining Station Port Wing APC"; pixel_x = 1; pixel_y = 25},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"ev" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/brown{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 1; tag = "icon-brown (NORTH)"},/area/mine/living_quarters) -"ew" = (/obj/machinery/camera{c_tag = "Crew Area Hallway East"; network = list("MINE")},/turf/open/floor/plasteel/purple/corner{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 1},/area/mine/living_quarters) -"ex" = (/turf/open/floor/plasteel/purple/corner{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"ey" = (/obj/machinery/door/airlock/glass_mining{name = "Processing Area"; req_access_txt = "48"},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"ez" = (/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/brown{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 4},/area/mine/production) -"eA" = (/obj/machinery/mineral/processing_unit_console,/turf/closed/wall{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/production) -"eB" = (/obj/machinery/mineral/processing_unit{dir = 1; output_dir = 2},/turf/open/floor/plating/warnplate{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 9},/area/mine/production) -"eC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"eD" = (/obj/structure/chair/wood{tag = "icon-wooden_chair (EAST)"; icon_state = "wooden_chair"; dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"eE" = (/obj/structure/table/wood/poker,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/weapon/lighter,/obj/item/clothing/mask/cigarette/cigar/havana,/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"eF" = (/obj/structure/chair/wood{tag = "icon-wooden_chair (WEST)"; icon_state = "wooden_chair"; dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"eG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"eH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/airlock{name = "Cigar Lounge"},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"eI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"eJ" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (NORTH)"; dir = 1},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"eK" = (/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"eL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"eM" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"eN" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (NORTH)"; dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"eO" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"eP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (NORTH)"; dir = 1},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"eQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/brown{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 4},/area/mine/living_quarters) -"eR" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/airlock/glass_mining{name = "Mining Station Bridge"; req_access_txt = "48"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"eS" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/brown{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 8},/area/mine/living_quarters) -"eT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/production) -"eU" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/airlock/glass_mining{name = "Mining Station Bridge"; req_access_txt = "48"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/production) -"eV" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/brown{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 8},/area/mine/production) -"eW" = (/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/production) -"eX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/production) -"eY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/brown{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 4},/area/mine/production) -"eZ" = (/obj/machinery/door/airlock/glass_mining{name = "Processing Area"; req_access_txt = "48"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/production) -"fa" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/brown{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 8},/area/mine/production) -"fb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/purple/corner{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/production) -"fc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel/brown{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/production) -"fd" = (/turf/open/floor/plasteel/purple/side{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 6},/area/mine/production) -"fe" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"ff" = (/obj/structure/table/wood/poker,/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"fg" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel/purple/corner{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"fh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/brown{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"fi" = (/turf/open/floor/plasteel/purple/corner{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 8},/area/mine/living_quarters) -"fj" = (/obj/machinery/light,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"fk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"fl" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"fm" = (/obj/machinery/light/small,/turf/open/floor/plasteel/purple/corner{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 4},/area/mine/living_quarters) -"fn" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/production) -"fo" = (/obj/machinery/light,/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 0; pixel_y = -32},/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"fp" = (/obj/machinery/light_switch{pixel_y = -25},/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"fq" = (/obj/machinery/airalarm{dir = 1; pixel_y = -22},/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"fr" = (/obj/machinery/door/airlock/mining{name = "Mining Station Storage"; req_access_txt = "48"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"fs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock{glass = 1; name = "Break Room"; opacity = 0},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"ft" = (/obj/machinery/airalarm{dir = 1; pixel_y = -22},/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/turf/open/floor/plasteel/purple/side{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/production) -"fu" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/machinery/light,/turf/open/floor/plasteel/brown{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/production) -"fv" = (/obj/structure/closet/crate,/turf/open/floor/plasteel/purple/side{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/production) -"fw" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/turf/open/floor/plasteel/brown{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 6},/area/mine/production) -"fx" = (/turf/open/floor/plasteel/loadingarea{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 8},/area/mine/production) -"fy" = (/obj/machinery/conveyor{dir = 8; id = "mining_internal"},/obj/structure/plasticflaps,/turf/open/floor/plating/warnplate{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 9},/area/mine/production) -"fz" = (/obj/machinery/conveyor{dir = 8; id = "mining_internal"},/turf/open/floor/plating/warnplate{tag = "icon-warnplate (NORTH)"; dir = 1; baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/production) -"fA" = (/obj/machinery/conveyor{icon_state = "conveyor0"; dir = 10; id = "mining_internal"},/obj/machinery/light/small{dir = 4},/turf/open/floor/plating/warnplate/corner{tag = "icon-warnplatecorner (EAST)"; dir = 4; baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/production) -"fB" = (/obj/machinery/mineral/equipment_vendor,/turf/open/floor/plasteel/brown{tag = "icon-brown (NORTHWEST)"; dir = 9; baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"fC" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/purple/corner{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 4},/area/mine/living_quarters) -"fD" = (/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/turf/open/floor/plasteel/purple/corner{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 1},/area/mine/living_quarters) -"fE" = (/obj/machinery/camera{c_tag = "Storage"; dir = 2; network = list("MINE")},/obj/structure/table,/obj/machinery/cell_charger,/turf/open/floor/plasteel/brown{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 5},/area/mine/living_quarters) -"fF" = (/obj/structure/bed,/obj/item/weapon/bedsheet/brown,/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/turf/open/floor/carpet{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"fG" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/carpet{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"fH" = (/obj/machinery/door/airlock{id_tag = "miningdorm1"; name = "Room 1"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"fI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/brown{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 8},/area/mine/living_quarters) -"fJ" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (EAST)"; dir = 4},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"fK" = (/obj/machinery/vending/snack,/turf/open/floor/plasteel/bar{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"fL" = (/turf/open/floor/plasteel/bar{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"fM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/bar{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"fN" = (/obj/machinery/newscaster{pixel_y = 32},/turf/open/floor/plasteel/bar{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"fO" = (/obj/structure/table,/obj/machinery/reagentgrinder,/turf/open/floor/plasteel/bar{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"fP" = (/obj/structure/ore_box,/turf/open/floor/plasteel/purple/side{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 8},/area/mine/living_quarters) -"fQ" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = 28},/turf/open/floor/plasteel/purple/side{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 4},/area/mine/living_quarters) -"fR" = (/obj/structure/table,/turf/open/floor/carpet{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"fS" = (/obj/machinery/light/small{dir = 4},/obj/machinery/button/door{id = "miningdorm1"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/open/floor/carpet{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"fT" = (/obj/machinery/camera{c_tag = "Dormatories"; dir = 4; network = list("MINE")},/turf/open/floor/plasteel/purple/corner{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 1},/area/mine/living_quarters) -"fU" = (/obj/structure/chair,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/bar{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"fV" = (/obj/structure/table,/obj/machinery/microwave{pixel_y = 6},/turf/open/floor/plasteel/bar{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"fW" = (/obj/docking_port/stationary{area_type = /area/lavaland/surface/outdoors; dir = 2; dwidth = 11; height = 22; id = "whiteship_lavaland"; name = "lavaland wastes"; turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; width = 35},/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors) -"fX" = (/obj/structure/ore_box,/turf/open/floor/plasteel/brown{tag = "icon-brown (SOUTHWEST)"; dir = 10; baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"fY" = (/obj/machinery/recharge_station,/turf/open/floor/plasteel/purple/side{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"fZ" = (/obj/structure/closet/secure_closet/miner,/turf/open/floor/plasteel/brown{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"ga" = (/obj/structure/closet/secure_closet/miner,/turf/open/floor/plasteel/purple/side{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"gb" = (/obj/structure/closet/secure_closet/miner,/turf/open/floor/plasteel/brown{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 6},/area/mine/living_quarters) -"gc" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/bar{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"gd" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/bar{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"ge" = (/obj/structure/chair{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/bar{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"gf" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; layer = 2.4; on = 1},/turf/open/floor/plasteel/bar{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"gg" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 14; tag = "icon-sink (EAST)"},/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/open/floor/plasteel/bar{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"gh" = (/obj/machinery/door/airlock{id_tag = "miningdorm2"; name = "Room 2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"gi" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/open/floor/plasteel/bar{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"gj" = (/obj/machinery/camera{c_tag = "Crew Area"; dir = 1; network = list("MINE")},/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 0; pixel_y = -32},/obj/machinery/light,/turf/open/floor/plasteel/bar{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"gk" = (/obj/machinery/airalarm{dir = 1; pixel_y = -22},/turf/open/floor/plasteel/bar{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"gl" = (/obj/structure/closet/secure_closet/freezer/kitchen/mining,/turf/open/floor/plasteel/bar{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"gm" = (/obj/machinery/light/small{dir = 4},/obj/machinery/button/door{id = "miningdorm2"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/open/floor/carpet{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"gn" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"go" = (/obj/machinery/button/door{id = "lavalandrestroom"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = -25; pixel_y = -10; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"gp" = (/obj/machinery/light/small{dir = 4},/obj/structure/table,/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"gq" = (/obj/machinery/shower{tag = "icon-shower (EAST)"; icon_state = "shower"; dir = 4},/obj/item/weapon/soap,/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"gr" = (/obj/machinery/shower{dir = 8},/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"gs" = (/obj/machinery/door/airlock{id_tag = "miningdorm3"; name = "Room 3"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"gt" = (/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"gu" = (/obj/machinery/door/airlock{id_tag = "lavalandrestroom"; name = "Restroom"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"gv" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"gw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"gx" = (/obj/machinery/door/airlock/glass{name = "Shower"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"gy" = (/obj/machinery/light{dir = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; layer = 2.4; on = 1},/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"gz" = (/obj/machinery/light/small{dir = 4},/obj/machinery/button/door{id = "miningdorm3"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/open/floor/carpet{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"gA" = (/obj/structure/sink{dir = 8; icon_state = "sink"; pixel_x = -14; tag = "icon-sink (WEST)"},/obj/structure/mirror{pixel_x = -27},/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"gB" = (/obj/structure/toilet{tag = "icon-toilet00 (WEST)"; icon_state = "toilet00"; dir = 8},/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) -"gC" = (/obj/machinery/shower{tag = "icon-shower (EAST)"; icon_state = "shower"; dir = 4},/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/mine/living_quarters) +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/closed/indestructible/necropolis, +/area/lavaland/surface/outdoors) +"ab" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ac" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ad" = ( +/turf/closed/indestructible/necropolis, +/area/lavaland/surface/outdoors) +"ae" = ( +/obj/structure/necropolis_gate, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"af" = ( +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"ag" = ( +/obj/item/device/radio/intercom{ + dir = 8; + name = "Station Intercom (General)"; + pixel_x = 28 + }, +/turf/open/floor/plasteel/purple/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 4 + }, +/area/mine/living_quarters) +"ah" = ( +/turf/closed/indestructible/necropolis, +/area/ruin/unpowered{ + name = "Necropolis Bridge" + }) +"ai" = ( +/turf/open/indestructible/necropolis, +/area/ruin/unpowered{ + name = "Necropolis Bridge" + }) +"aj" = ( +/turf/open/indestructible/necropolis, +/area/lavaland/surface/outdoors) +"ak" = ( +/obj/effect/light_emitter, +/turf/open/indestructible/necropolis, +/area/lavaland/surface/outdoors) +"al" = ( +/turf/closed/mineral/random/volcanic, +/area/lavaland/surface/outdoors) +"am" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"an" = ( +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"ao" = ( +/obj/structure/table, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"ap" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"aq" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/medical, +/obj/machinery/camera{ + c_tag = "Labor Camp Medical"; + dir = 8; + network = list("Labor") + }, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"ar" = ( +/obj/structure/rack{ + dir = 1 + }, +/obj/item/weapon/storage/bag/ore, +/obj/item/weapon/pickaxe, +/obj/item/device/flashlight, +/obj/item/clothing/glasses/meson, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"as" = ( +/obj/structure/rack{ + dir = 1 + }, +/obj/item/weapon/storage/bag/ore, +/obj/item/device/flashlight, +/obj/item/weapon/pickaxe, +/obj/item/clothing/glasses/meson, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"at" = ( +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"au" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"av" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"aw" = ( +/obj/machinery/door/airlock/glass_medical{ + id_tag = null; + name = "Infirmary"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"ax" = ( +/obj/structure/closet/crate/internals, +/obj/item/weapon/tank/internals/emergency_oxygen, +/obj/item/weapon/tank/internals/emergency_oxygen, +/obj/item/weapon/tank/internals/emergency_oxygen, +/obj/item/weapon/tank/internals/emergency_oxygen, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"ay" = ( +/obj/structure/table, +/obj/item/trash/plate, +/obj/item/weapon/kitchen/fork, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"az" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"aA" = ( +/obj/item/device/radio/intercom{ + desc = "Talk through this. It looks like it has been modified to not broadcast."; + dir = 2; + name = "Prison Intercom (General)"; + pixel_x = 0; + pixel_y = 24; + prison_radio = 1 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"aB" = ( +/obj/machinery/door/airlock{ + name = "Labor Camp Storage" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"aC" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"aD" = ( +/obj/machinery/door/airlock{ + name = "Vending" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"aE" = ( +/obj/machinery/door/airlock{ + name = "Labor Camp External Access" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"aF" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"aG" = ( +/obj/machinery/vending/sustenance, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"aH" = ( +/obj/item/device/radio/intercom{ + dir = 8; + name = "Station Intercom (General)"; + pixel_x = -28 + }, +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"aI" = ( +/obj/machinery/mineral/unloading_machine{ + dir = 1; + icon_state = "unloader-corner"; + input_dir = 1; + output_dir = 2 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"aJ" = ( +/obj/machinery/camera{ + c_tag = "Labor Camp External"; + dir = 4; + network = list("Labor") + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"aK" = ( +/obj/machinery/flasher{ + id = "Labor"; + pixel_x = 0; + pixel_y = 0 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"aL" = ( +/obj/machinery/mineral/processing_unit_console{ + dir = 2; + machinedir = 4 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"aM" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"aN" = ( +/obj/structure/closet/crate, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/explored) +"aO" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Labor Camp Shuttle Security Airlock"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"aP" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/button/door{ + id = "Labor"; + name = "Labor Camp Lockdown"; + pixel_x = 0; + pixel_y = 28; + req_access_txt = "2" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"aQ" = ( +/obj/machinery/door/poddoor/preopen{ + id = "Labor"; + name = "labor camp blast door" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"aR" = ( +/obj/machinery/camera{ + c_tag = "Labor Camp Central"; + network = list("Labor") + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"aS" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "gulag" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"aT" = ( +/obj/machinery/conveyor{ + dir = 2; + id = "gulag" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"aU" = ( +/obj/item/weapon/pickaxe, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"aV" = ( +/obj/machinery/conveyor{ + dir = 10; + icon_state = "conveyor0"; + id = "gulag" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"aW" = ( +/obj/machinery/power/terminal, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"aX" = ( +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + tag = "icon-0-9"; + icon_state = "0-9"; + d1 = 2; + d2 = 4 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"aY" = ( +/obj/structure/ore_box, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"aZ" = ( +/obj/machinery/computer/shuttle/labor/one_way, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"ba" = ( +/obj/machinery/status_display{ + density = 0; + layer = 4; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"bb" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/eva) +"bc" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"bd" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Labor Camp Backroom"; + req_access_txt = "2" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"be" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"bf" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Labor Camp APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"bg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"bh" = ( +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"bi" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"bj" = ( +/turf/open/floor/mech_bay_recharge_floor{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/eva) +"bk" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"bl" = ( +/obj/docking_port/stationary{ + area_type = /area/lavaland/surface/outdoors; + dir = 8; + dwidth = 2; + height = 5; + id = "laborcamp_away"; + name = "labor camp"; + turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + width = 9 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/explored) +"bm" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Labor Camp Shuttle Prisoner Airlock"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"bn" = ( +/obj/structure/ore_box, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (SOUTHWEST)"; + dir = 10; + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"bo" = ( +/obj/structure/closet/secure_closet/miner, +/turf/open/floor/plasteel/purple/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"bp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 4 + }, +/area/mine/living_quarters) +"bq" = ( +/obj/machinery/airalarm{ + frequency = 1439; + pixel_y = 23 + }, +/obj/machinery/computer/shuttle/mining{ + req_access = "0" + }, +/turf/open/floor/plasteel/purple/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1 + }, +/area/mine/production) +"br" = ( +/obj/structure/table, +/obj/item/stack/packageWrap, +/obj/item/stack/packageWrap, +/obj/item/stack/packageWrap, +/obj/item/weapon/hand_labeler, +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/mine/eva) +"bs" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/door/airlock/glass_mining{ + name = "Mining Station Bridge"; + req_access_txt = "48" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"bt" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/mine/eva) +"bu" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Labor Camp Monitoring"; + req_access_txt = "2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"bv" = ( +/obj/structure/closet/secure_closet/miner, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 6 + }, +/area/mine/living_quarters) +"bw" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Labor Camp Maintenance"; + req_access_txt = "2" + }, +/obj/structure/cable{ + tag = "icon-1-10"; + icon_state = "1-10"; + d1 = 2; + d2 = 4 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"bx" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"by" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; + name = "KEEP CLEAR: DOCKING AREA"; + pixel_y = 0 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"bz" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/door/airlock/glass_mining{ + name = "Mining Station EVA"; + req_access_txt = "54" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/eva) +"bA" = ( +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors/explored) +"bB" = ( +/obj/structure/table, +/obj/machinery/recharger, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp/security) +"bC" = ( +/obj/structure/chair/office/dark, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/mob/living/simple_animal/bot/secbot/beepsky{ + desc = "Powered by tears and swet of laborer."; + name = "Prison Ofitser" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp/security) +"bD" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/weapon/pen, +/obj/machinery/power/apc{ + dir = 4; + name = "Labor Camp Security APC"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/machinery/camera{ + c_tag = "Labor Camp Monitoring"; + network = list("Labor") + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp/security) +"bE" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + tag = "icon-5-6"; + icon_state = "5-6"; + d1 = 2; + d2 = 4 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"bF" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"bG" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"bH" = ( +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Mining Shuttle Airlock"; + opacity = 0; + req_access_txt = "0" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"bI" = ( +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 4 + }, +/area/mine/production) +"bJ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"bK" = ( +/obj/machinery/computer/secure_data, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp/security) +"bL" = ( +/obj/machinery/computer/security{ + name = "Labor Camp Monitoring"; + network = list("Labor") + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp/security) +"bM" = ( +/obj/machinery/computer/prisoner, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp/security) +"bN" = ( +/obj/machinery/power/port_gen/pacman{ + anchored = 1 + }, +/obj/structure/cable, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"bO" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"bP" = ( +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1 + }, +/area/mine/production) +"bQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/mine/living_quarters) +"bR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"bS" = ( +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 4 + }, +/area/mine/production) +"bT" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 30; + pixel_y = 0 + }, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 4 + }, +/area/mine/production) +"bU" = ( +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/mine/production) +"bV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"bW" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/mine/production) +"bX" = ( +/obj/machinery/power/terminal{ + icon_state = "term"; + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"bY" = ( +/obj/structure/cable, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/power/port_gen/pacman{ + anchored = 1 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"bZ" = ( +/obj/machinery/power/port_gen/pacman{ + anchored = 1 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"ca" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"cb" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/door/airlock/glass_mining{ + name = "Mining Station Bridge"; + req_access_txt = "48" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"cc" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/door/airlock/maintenance{ + name = "Mining Station Maintenance"; + req_access_txt = "48" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"cd" = ( +/obj/machinery/mineral/equipment_vendor, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTHWEST)"; + dir = 9; + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"ce" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"cf" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1; + tag = "icon-brown (NORTH)" + }, +/area/mine/living_quarters) +"cg" = ( +/obj/machinery/camera{ + c_tag = "Crew Area Hallway East"; + network = list("MINE") + }, +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1 + }, +/area/mine/living_quarters) +"ch" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"ci" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"cj" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"ck" = ( +/obj/docking_port/stationary{ + area_type = /area/lavaland/surface/outdoors; + dir = 8; + dwidth = 3; + height = 5; + id = "mining_away"; + name = "lavaland mine"; + turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + width = 7 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"cl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"cm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 4 + }, +/area/mine/production) +"cn" = ( +/obj/machinery/door/airlock/glass_mining{ + name = "Processing Area"; + req_access_txt = "48" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"co" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/mine/production) +"cp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"cq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"cr" = ( +/turf/open/floor/plasteel/purple/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 6 + }, +/area/mine/production) +"cs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"ct" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock{ + glass = 1; + name = "Break Room"; + opacity = 0 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"cu" = ( +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/mine/living_quarters) +"cv" = ( +/obj/machinery/light, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"cw" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"cx" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"cy" = ( +/obj/machinery/door/airlock/mining{ + name = "Mining Station Storage"; + req_access_txt = "48" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"cz" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/turf/open/floor/plasteel/purple/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"cA" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"cB" = ( +/obj/docking_port/stationary{ + area_type = /area/lavaland/surface/outdoors; + dir = 2; + dwidth = 11; + height = 22; + id = "whiteship_lavaland"; + name = "lavaland wastes"; + turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + width = 35 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"cC" = ( +/obj/structure/closet/crate, +/turf/open/floor/plasteel/purple/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"cD" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 6 + }, +/area/mine/production) +"cE" = ( +/turf/open/floor/plasteel/loadingarea{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/mine/production) +"cF" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "mining_internal" + }, +/obj/structure/plasticflaps, +/turf/open/floor/plating/warnplate{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 9 + }, +/area/mine/production) +"cG" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "mining_internal" + }, +/turf/open/floor/plating/warnplate{ + tag = "icon-warnplate (NORTH)"; + dir = 1; + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"cH" = ( +/obj/machinery/light/small, +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 4 + }, +/area/mine/living_quarters) +"cI" = ( +/obj/machinery/conveyor{ + icon_state = "conveyor0"; + dir = 10; + id = "mining_internal" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating/warnplate/corner{ + tag = "icon-warnplatecorner (EAST)"; + dir = 4; + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"cJ" = ( +/obj/machinery/airalarm{ + frequency = 1439; + pixel_y = 23 + }, +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1 + }, +/area/mine/living_quarters) +"cK" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/brown, +/obj/machinery/airalarm{ + frequency = 1439; + pixel_y = 23 + }, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"cL" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"cM" = ( +/obj/machinery/door/airlock{ + id_tag = "miningdorm1"; + name = "Room 1" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"cN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/mine/living_quarters) +"cO" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"cP" = ( +/obj/machinery/vending/snack, +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"cQ" = ( +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"cR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"cS" = ( +/obj/machinery/vending/cigarette, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"cT" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_y = 6 + }, +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"cU" = ( +/obj/structure/ore_box, +/turf/open/floor/plasteel/purple/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/mine/living_quarters) +"cV" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"cW" = ( +/obj/structure/table, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"cX" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "miningdorm1"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 25; + pixel_y = 0; + req_access_txt = "0"; + specialfunctions = 4 + }, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"cY" = ( +/obj/structure/chair, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"cZ" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder, +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"da" = ( +/obj/machinery/recharge_station, +/turf/open/floor/plasteel/purple/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"db" = ( +/obj/structure/closet/secure_closet/miner, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"dc" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"dd" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/drinks/beer, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"de" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"df" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"dg" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/drinks/beer, +/obj/item/weapon/reagent_containers/food/drinks/beer, +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"dh" = ( +/obj/machinery/door/airlock{ + id_tag = "miningdorm2"; + name = "Room 2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"di" = ( +/obj/machinery/camera{ + c_tag = "Crew Area"; + dir = 1; + network = list("MINE") + }, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = 0; + pixel_y = -32 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"dj" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"dk" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/donkpockets, +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"dl" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "miningdorm2"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 25; + pixel_y = 0; + req_access_txt = "0"; + specialfunctions = 4 + }, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"dm" = ( +/turf/open/floor/bluegrid{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/maintenance) +"dn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"do" = ( +/obj/machinery/door/airlock{ + id_tag = "miningdorm3"; + name = "Room 3" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"dp" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "miningdorm3"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 25; + pixel_y = 0; + req_access_txt = "0"; + specialfunctions = 4 + }, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"dq" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/explored) +"dr" = ( +/obj/machinery/conveyor_switch/oneway{ + id = "gulag" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"ds" = ( +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/eva) +"dt" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/eva) +"du" = ( +/obj/structure/table, +/obj/item/weapon/pickaxe, +/obj/item/device/gps/mining, +/obj/item/device/gps/mining, +/obj/item/device/gps/mining, +/obj/item/device/gps/mining, +/turf/open/floor/plasteel/purple/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 9 + }, +/area/mine/eva) +"dv" = ( +/obj/machinery/suit_storage_unit/mining, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1 + }, +/area/mine/eva) +"dw" = ( +/obj/machinery/suit_storage_unit/mining, +/turf/open/floor/plasteel/purple/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 5 + }, +/area/mine/eva) +"dx" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"dy" = ( +/obj/machinery/camera{ + c_tag = "EVA"; + dir = 4; + network = list("MINE") + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23; + pixel_y = 0 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/mine/eva) +"dz" = ( +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/eva) +"dA" = ( +/obj/machinery/light_switch{ + pixel_x = 27 + }, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 4 + }, +/area/mine/eva) +"dB" = ( +/obj/structure/closet/crate, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1 + }, +/area/mine/production) +"dC" = ( +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"dD" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/eva) +"dE" = ( +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/eva) +"dF" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/mine/eva) +"dG" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/eva) +"dH" = ( +/obj/item/device/radio/beacon, +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/mine/production) +"dI" = ( +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"dJ" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"dK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 4 + }, +/area/mine/production) +"dL" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/mine/eva) +"dM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/eva) +"dN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/eva) +"dO" = ( +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 4 + }, +/area/mine/eva) +"dP" = ( +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Mining External Airlock"; + opacity = 0; + req_access_txt = "54" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/eva) +"dQ" = ( +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/mine/eva) +"dR" = ( +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/mine/production) +"dS" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"dT" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"dU" = ( +/obj/machinery/power/apc{ + dir = 2; + name = "Mining EVA APC"; + pixel_x = 1; + pixel_y = -23 + }, +/obj/structure/cable, +/obj/machinery/recharge_station, +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1 + }, +/area/mine/eva) +"dV" = ( +/obj/machinery/mech_bay_recharge_port, +/obj/structure/cable, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/eva) +"dW" = ( +/obj/machinery/computer/mech_bay_power_console, +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 4 + }, +/area/mine/eva) +"dX" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1 + }, +/area/mine/eva) +"dY" = ( +/obj/structure/ore_box, +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 4 + }, +/area/mine/eva) +"dZ" = ( +/turf/open/floor/plasteel/purple/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 4 + }, +/area/mine/production) +"ea" = ( +/obj/machinery/door/airlock{ + name = "Closet"; + req_access_txt = "0" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"eb" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"ec" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"ed" = ( +/turf/closed/mineral/random/high_chance/volcanic, +/area/lavaland/surface/outdoors) +"ee" = ( +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"ef" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE" + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"eg" = ( +/obj/item/device/radio/intercom{ + dir = 8; + name = "Station Intercom (General)"; + pixel_x = -28 + }, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/mine/production) +"eh" = ( +/turf/closed/wall/r_wall{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/maintenance) +"ei" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"ej" = ( +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"ek" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/closet/crate/secure/loot, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"el" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"em" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"en" = ( +/obj/structure/fluff/drake_statue, +/turf/open/indestructible/necropolis, +/area/lavaland/surface/outdoors) +"eo" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Mining Station Starboard Wing APC"; + pixel_x = -27; + pixel_y = 2 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/purple/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/mine/production) +"ep" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"eq" = ( +/obj/machinery/mineral/equipment_vendor, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 5 + }, +/area/mine/production) +"er" = ( +/obj/machinery/mineral/mint{ + input_dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"es" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/loadingarea{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/mine/production) +"et" = ( +/obj/structure/closet/crate, +/obj/machinery/airalarm{ + frequency = 1439; + pixel_y = 23 + }, +/turf/open/floor/plasteel/bot{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"eu" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/obj/structure/table, +/obj/item/weapon/paper{ + anchored = 0; + info = "A hastily written note has been scribbled here...

Please use the ore redemption machine in the cargo office for smelting. PLEASE!

--The Research Staff"; + name = "URGENT!" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"ev" = ( +/obj/structure/ore_box, +/turf/open/floor/plasteel/bot{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"ew" = ( +/turf/open/floor/plasteel/bot{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"ex" = ( +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Mining Communications APC"; + pixel_x = 1; + pixel_y = 25 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/maintenance) +"ey" = ( +/obj/machinery/telecomms/relay/preset/mining, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8; + tag = "icon-vault (WEST)" + }, +/area/mine/maintenance) +"ez" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/maintenance) +"eA" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/airalarm{ + frequency = 1439; + pixel_y = 23 + }, +/obj/machinery/iv_drip, +/turf/open/floor/plasteel/whiteblue/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1; + tag = "icon-whiteblue (NORTH)" + }, +/area/mine/living_quarters) +"eB" = ( +/turf/open/floor/plasteel/whiteblue/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1; + tag = "icon-whiteblue (NORTH)" + }, +/area/mine/living_quarters) +"eC" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/toxin{ + pixel_x = 3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/whiteblue/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 5; + tag = "icon-whiteblue (NORTHEAST)" + }, +/area/mine/living_quarters) +"eD" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"eE" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"eF" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"eG" = ( +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 8 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"eH" = ( +/obj/machinery/mineral/equipment_vendor, +/turf/open/floor/plasteel/purple/side{ + dir = 4 + }, +/area/mine/production) +"eI" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"eJ" = ( +/turf/open/floor/plasteel/loadingarea{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"eK" = ( +/turf/open/floor/plasteel/loadingarea{ + tag = "icon-loadingarea (EAST)"; + dir = 4; + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"eL" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"eM" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/bluegrid{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/maintenance) +"eN" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/maintenance) +"eO" = ( +/obj/machinery/light_switch{ + pixel_y = -25 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/bluegrid{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/maintenance) +"eP" = ( +/obj/machinery/camera{ + c_tag = "Communications Relay"; + dir = 8; + network = list("MINE") + }, +/turf/open/floor/bluegrid{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/maintenance) +"eQ" = ( +/obj/structure/closet/crate/freezer, +/obj/item/weapon/reagent_containers/blood/empty, +/obj/item/weapon/reagent_containers/blood/empty{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/weapon/reagent_containers/blood/AMinus, +/obj/item/weapon/reagent_containers/blood/BMinus{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/weapon/reagent_containers/blood/BPlus{ + pixel_x = 1; + pixel_y = 2 + }, +/obj/item/weapon/reagent_containers/blood/OMinus, +/obj/item/weapon/reagent_containers/blood/OPlus{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/weapon/reagent_containers/blood/random, +/obj/item/weapon/reagent_containers/blood/random, +/obj/item/weapon/reagent_containers/blood/random, +/obj/machinery/camera{ + c_tag = "Sleeper Room"; + dir = 1; + network = list("MINE") + }, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"eR" = ( +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"eS" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"eT" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plasteel/whiteblue/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 4; + tag = "icon-whiteblue (EAST)" + }, +/area/mine/living_quarters) +"eU" = ( +/turf/open/floor/plasteel/purple/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/mine/production) +"eV" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Shuttle Docking Foyer"; + dir = 8; + network = list("MINE") + }, +/obj/machinery/newscaster{ + pixel_x = 30; + pixel_y = 1 + }, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 4 + }, +/area/mine/production) +"eW" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/turf/open/floor/plasteel/bot{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"eX" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"eY" = ( +/obj/machinery/camera{ + c_tag = "Processing Area Room"; + dir = 8; + network = list("MINE") + }, +/obj/item/device/radio/intercom{ + dir = 8; + name = "Station Intercom (General)"; + pixel_x = 28 + }, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 4 + }, +/area/mine/production) +"eZ" = ( +/obj/machinery/mineral/unloading_machine{ + dir = 1; + icon_state = "unloader-corner"; + input_dir = 1; + output_dir = 2 + }, +/turf/open/floor/plating/warnplate{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 9 + }, +/area/mine/production) +"fa" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Mining Station Communications"; + req_access_txt = "48" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/maintenance) +"fb" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"fc" = ( +/obj/machinery/door/airlock/glass_medical{ + id_tag = null; + name = "Infirmary"; + req_access_txt = "0" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"fd" = ( +/obj/machinery/camera{ + c_tag = "Storage"; + dir = 2; + network = list("MINE") + }, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 5 + }, +/area/mine/living_quarters) +"fe" = ( +/turf/open/floor/plasteel/brown/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1; + tag = "icon-browncorner (NORTH)" + }, +/area/mine/production) +"ff" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"fg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"fh" = ( +/obj/machinery/conveyor_switch/oneway{ + id = "mining_internal"; + name = "mining conveyor" + }, +/turf/open/floor/plasteel/purple/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 4 + }, +/area/mine/production) +"fi" = ( +/obj/machinery/conveyor{ + dir = 2; + id = "mining_internal" + }, +/turf/open/floor/plating/warnplate{ + tag = "icon-warnplate (WEST)"; + dir = 8; + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"fj" = ( +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"fk" = ( +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 4 + }, +/area/mine/living_quarters) +"fl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1; + tag = "icon-brown (NORTH)" + }, +/area/mine/living_quarters) +"fm" = ( +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1 + }, +/area/mine/living_quarters) +"fn" = ( +/obj/machinery/airalarm{ + frequency = 1439; + pixel_y = 23 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"fo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1; + tag = "icon-brown (NORTH)" + }, +/area/mine/living_quarters) +"fp" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Mining Station Port Wing APC"; + pixel_x = 1; + pixel_y = 25 + }, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"fq" = ( +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"fr" = ( +/obj/machinery/door/airlock/glass_mining{ + name = "Processing Area"; + req_access_txt = "48" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"fs" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 4 + }, +/area/mine/production) +"ft" = ( +/obj/machinery/mineral/processing_unit_console, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"fu" = ( +/obj/machinery/mineral/processing_unit{ + dir = 1; + output_dir = 2 + }, +/turf/open/floor/plating/warnplate{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 9 + }, +/area/mine/production) +"fv" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"fw" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"fx" = ( +/obj/structure/fluff/drake_statue/falling, +/turf/open/indestructible/necropolis, +/area/lavaland/surface/outdoors) +"fy" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/turf/closed/mineral/random/volcanic, +/area/lavaland/surface/outdoors) +"fz" = ( +/obj/machinery/camera{ + c_tag = "Crew Area Hallway West"; + network = list("MINE") + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"fA" = ( +/obj/machinery/camera{ + c_tag = "Dormatories"; + dir = 4; + network = list("MINE") + }, +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1 + }, +/area/mine/living_quarters) +"fB" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 4 + }, +/area/mine/living_quarters) +"fC" = ( +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/turf/open/floor/bluegrid{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/maintenance) +"fD" = ( +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"fE" = ( +/obj/machinery/light/small, +/turf/open/floor/plasteel/loadingarea{ + tag = "icon-loadingarea (EAST)"; + dir = 4; + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"fF" = ( +/turf/open/floor/plasteel/delivery{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"fG" = ( +/obj/machinery/mineral/processing_unit{ + dir = 1; + output_dir = 2 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"fH" = ( +/turf/open/floor/plasteel/loadingarea{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/mine/laborcamp) +"fI" = ( +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/lavaland/surface/outdoors) +"fJ" = ( +/turf/closed/mineral/random/volcanic, +/area/lavaland/surface/outdoors/explored) +"fK" = ( +/turf/closed/mineral/random/labormineral/volcanic, +/area/lavaland/surface/outdoors) +"fL" = ( +/obj/structure/ore_box, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/explored) +"fM" = ( +/obj/structure/gulag_beacon, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"fN" = ( +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp/security) +"fO" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp/security) +"fP" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/turf/closed/indestructible/riveted, +/area/ruin/unpowered{ + name = "Necropolis Bridge" + }) (1,1,1) = {" -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aeaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaaaaaaaaaeaeaaaaaaaaaaababababaeaeaeaaaaaaaaaaaaababababaeaeaaaaababababababababababababababababababaeaaaaaaaaabababababababababababababababaeaaaaaaaaaaaeaeaeababababababaeaeaeaaaaaaaaaaaeababaeaeabaeaaaaaaaeabababababafababababaeaeaaaaababababaeaaaaaaaeababaeaeaaaaabababaeaeaaaaaaaaaeabababababababababababababaeaeaaaaaaaaabababababaeaeaeaeaeabababaeaaaaaaaaaeaaaaaaaaaeaeabababababaeaaaaaaaaaaaaaaaeaeaeaeaeaeaeababababababababaeaeaeaeabaaaaaaaaaaaaaaaaaaaaaaaeaeababaeaaaa -aeaaaaaaaaaaaaaaaeababababaeaeabaeaaaaaaaaabaeaaaaaaaaaaabababababaeaeaaaaaaaaaaaaabababababaeaeaeabababababababaeaeaeababababababababaeaaaaaaaaaeabababababaeaeaeabababababababaaaaaaaaaaaeabababababababababaeaeaaaaaaaaaaaeaeabababababaaaaaaababababababababababababaeaaaaabababababaeaeaeababababaeaaaaabababaeaeaaaaaaaaaeababababababababababababababaeaaaaaaaaababababaeaeaeaeaeabababababaaaaaaaaaeaaaaaaaaaeabababababababaaaaaaaeababababaeaaaaaaaaaaaaaaaaababababababaeaeaeabaaaaaaaaaaaaaaaaaaaaaaaeaeababaeaaaa -abaeaeaeababaeaeababababababababaeaaaaaaaaababababaeaeabababababababaeaaaaaaaaaaaaababababababababababababababaaaaaaaeabababababababababaaaaaaaaaeabababababaeaaaaaaabababababababaeaeabababababababababababababaeaaaaaaaaaaaeabababababababaeaeababababababababababababaeaaaaabababababababababababababaaaaababababaeaeabababababababababababababababababababaaaaaaaaaeabababaaaaaaaaaaabababababababaeaeabaaaaaaaaaeababababababababaeaeabababababaeaaaaaaaaaaaaaaaaabababababababaeaeabaaaaaaaaaaaaaaaaaaaaaaaeabababaeaaaa -abababagababababababababababababababaeaeabababababaeabababababababababaaaaaaaaaaaaabababababababababababababaeaaaaaaaeabababababababababababaeaeababababababaeaaaaaaaeababababababababababababababababaeabababababaaaaaaaaaaaeababababababababababababababababababababababaaaaaeabababababababababababaeaaaaabaeababaeababababababababababababababaeababababababababaeababababababaeaeabababababababababababaaaaaaaaabababababababababababababababababaaaaaaaaaaaaaaaaabababababababaeaeaeaaaaaaaaaaaaaaaaaaaaaaaeabababaeaaaa -abababagagabababagabababababababababababababababababababababababababababaeaeaeaeababababababababababababababaeaaaaaaabababababababababababababababababababababaaaaaaaeababababababababababababababaaaaaaaeababababaaaaaaaaaaababababababaeababababababababababababababababaaaaaeababababababababababababaaaaaeaeababababababababababababababababaeaeaeaeaeaeabababababababababababababababababababababababaeaaaaaaaaabababababababababababababababababaaaaaaaaaaaaaaaaabababababababababaeaaaaaaaaaaaaaaaaaaaaaaaeaeabababaaaa -agagagagagababagagagagagagagagagagagagagagagabagababagagagababababababababababababababababababababababababababaaaaaaabababababagagagababababababababababababababaeaeabababababababababababababababaaaaaaaeabababababaeaeabababababababaeaeaeaeabababababababababababababababaeabababababababababababababaaaaaeaeababababababababababababababaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababaeaaaaaaaaababababababababababababababababababaeaeaeaeaeabababababababababababababaeaeaeabababababaeaeaeababababaaaa -agagagagagagagagagagagagagagagagagagagagagagagagagagagagagabagagagagagagagagagagagabababagagagagagagagabababababababababababagagabagababababababababababababababababababababababababababababababababaeaeababababababababababababababaeaaaaaaaaabababababababababababababababababababababababababababababaaaaaeababababababababababababababaeaaaaaaaaaaaaaaaaaaaaaeababababababababababababababababababababababaeaeababababababababababababababababababababababababababababababababababababababababababababababaeabababababaaaa -agagagagagababagagagagagagagagagagagagagagagabagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagababagagagabagagagagagabababababababagagagagagagagagagabababababababababababababababababababababababababababababaaaaaaaaabababababahahaiahahabababababababababababababababababababaeaeabababababababababababababababaeaaaaaaaaaaaaaaaaaaaaaeabababababababababababababababababababababababababababababaeabababababababababababababababababababababababababababababababababababababababababababababababae -agagagagagagabagagagagagagagagagagagagagagababagagagagagagagagagagabababagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagababagagagagagagagagagagabagagagagagagagabababababababababababababababababababababaeaeababababababahajaiakahabababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababaaaaaaababababababababababababababababababababababababababababababababababababababababababababababab -agagagagagagagagagagagagagagagagagababababababagagagagagagagabababababababababagagagagagagagagagagagagagagagagagagagagabagagagagabagagagagagagagagagagagabagagagagagagagagagagagagagagagagagagagababababagagagagagagagagagagagabababagagagagagagagabagagalajaiakamagagagagabagagagagagagagagagagagagagagagagabababababababababababababababababababaeaeaeaeaeabababababababababababababababababababababababababababababababaaaaaaaeabababababababababababababababababababababababababababababababababababababababababababababab -agagagagagagagagagagagagagagagabababababababagagagagagagagagabababagagagababababagagabababagagagagagagagagagagagagagagagagagagababagagagagagagagagagagagabagagagagagagagagagagabagagagagagagagagagababagagagagagagagagagagagagabababagagagagagagagagagagalajaiakamagagagagagagagagagagagagagagagagagagagagagagababababababababababababagagagagagababaeaeababababababababababababababababababagagagagagagagagagagagagabababababaeababababababababababababababababababababababababababababababababababababababababababababababab -agagagagagagagagagagagagagagagagagabababababagagagagagagagabababagagagagabababababababababagagagagagagagagagagagagagagagabababababababagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagabagagagagagagagagagagagagagagabagagagagagagagabagagagalajaiakamagagagagagagagagagagagagagagagagagagagagagagabababababababababababagagagagagagabababababababababababababababababababagagabagagagagagagagagagagagagabababababababababababagagagagagagagagagagagagababagagagagagagagagagagagagabagababababababababababagagagag -agagagagagagagagagagagagagagagagagagagababagagagagagagagagabagagagagagagagababagagagagagagagagagagagagagagagagagagagagabababababababababababababababagagagagagagagagagagagagababagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagalajaiakamababagagagagagagagagagabagababababababababagabagababagagagagagababagagagagagagabababababababagagagababababagagagagagagagabagagagagagagagagagagagagagagagababagagagagagagagagagagagagagagagagagagagabagagagagagagagagagagagagagagagagagagagagagagagagagagagag -agagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagabagagabababababababababababababagabagagagagagagababababababababagagagagagagagagagagagagagagagagagagagagagagagagagagagagabagagagagalajaiakamagabagagagagagagagagagagagagagababababagagagagagababagagagagagagabagagagagabagagagagagagagagagagagagababagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagabagagagagagagagagagagagagagagag -agagagagagagagagagagagagagagagagagagagagagagagagagagagagagabagagagagagagabagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagababagagagagagagagagagababababababababababababababagagagagagagagagagagagagagagagagagagagagagagagagagagagagalajaiakamagagagagagagagagagagagagagagagagagagagagagagagagabagagagagagagagagagagabababagagagagagagagagagagagagababagagagagagagagagabagagagagagagagagagagagagagagagagabagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagag -agagagagagagagagagagagagagagagagagagagagagagagagagagagagagabagagagagagagagagagagagagagagagagagagagagagagagagagagagagagabagagagagagagagagagagagagagagagagagagagagagagagagagagagagagababababababababagagagagagagagagagagagagagagagagagagagagagagagabagagagalajaiakamagababagagagagagagagagagagagagagagagagagagagagagabagagagagagagagagagababababagagagagagagagagagagagagababagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagabagagagagagagagagagagagababagagagagagagagagagagagagagagag -agagagagagagagagagagagagagagagagagagagagagababagagagagagabababagagagagagabagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagabagagagagagagababababagagabagababababababababababagagagagagagagagagagagagagagagagagagagagagagagabagagagalajaiakamagabababagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagabagagagagagagagagagagagagagagabagagagagagagagagagagagagagagagagagagagagagagagagagabagagagagagagagagagagagagagagagagagagagabagagagagagagagagabagababababagagagagagagagagagagagagagag -agagagagagagagagagagagagagabanabababababababababababababababababagagagabababagagagagabagagagagagagagagagagagagagagagagabagagagagagagagagagagagagagagagagagagababababagagagagagagagagagagagababababababababababababagabagagagagagagagagagagagagagagagagagalajaiakamagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagabagagagagagagagagabagagagagagagagagagagagagagagagabababagagagagagagagagagagagagagagagagagagabababagagagagagagagagagagababagagagagagagagagagagagagagag -agagagagagagagagagagagagagababaeagagagagagagababagagabababababababagagabababagagagababagagagagagagagagagagagagagagagabababagagagagagagagagagagababagagagagababababagagagagagagagagagagagagagagagagagagababagagagagagagagagagagagagagagagagagagagagagagagalajaiakamagagagagagabagagagagagagagagagagagagagagagagagagabagagagagagagagagagagagabagagagagagagagagagagagagagagagagagagagagagagagabababababagagagagagagagagagagabababababababagagagagagagagagagagagagagagabaeaeabagagagagagagagagagagababagagagagagagagagagagagagagag -agagagagagagagagagagagaganababaeaeabagagagagagabagagagabababababagagababababagagabababagagagagagagagagagagagagagagababababagagagagagagagagababababababababababababababababababagagagagagagagagagagagagagabagagagagagagagagagagagagagagagagagabagagagagagalajaiakamagagagagagababagagagagagagagabababababababababababagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagabababababagagagagagagagagagagababababababababababababababababababababababaeaeababagagagagagagagagagababagagagagagagagagagagagagagag -agagagagagagababababababanabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababagagagagagagagagagagagagagagagagagagagagagabababababababababababababababahajaiakahabababababababababababababababababaeananababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaeaeababababagagagagagagagababababababababababababababababab -agagagagagaganabababananananabababababababababababananababababababababababababababanananabababababababababababababanabababananananabababababababababababababababababababababababababababababababababababababababababababababababaeaeababababababababababahahaiahahababababababababababababababababananananabababababababababababababababababababababababababababababaeanananananabababababababababababababababananananananananananababababababababababababababababaeanabababababababababababababababababaeanananananananananan -agagagagagaeananananaeananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananaeananaeananananabababababababanananananananananananananananananananaeananananananananananananabaeananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagaeananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananaeananananananananananananananananananananananaeababababababaeanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagaeanananaeananaeanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananabababababababanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananabababababababanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananaeababababababanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananaeababababababanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananaeabababababababanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagananananananananananananananananananananananananananananananaeananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananaeabababababababababanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananababababababababababananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananaeananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananaeababababababababababanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananababababababababababanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananabababababababababaeanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagananananananananananananananananananananananaeananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananaeabababababaeaeabananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananaeabababababaeanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananabababababababaeanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananababababababababananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananaeananananananan -agagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananaeabababababababanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananaeanananananananananananananananananananananananananananan -agagagagagagaeanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananaeananananananananananananananananananananananananananananananananananananananananananananananananananananananananaeabababababanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananababababaeanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananaeananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananaeanananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagaeananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagaeananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananaeananananananananananananananananananananananananananananananananananan -agagagagagagagagaganananananananananananananananananananananananananananaeanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagabanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagababanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagaganababanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananaeanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagaeanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagaeananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananaeanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagabagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananaeanananananananananananananananananananananananananananananananananan -agagagagagagaoabababagagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagaoaeaoabagagagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagaoaoaoaoaoagagagagagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagaoaoaoaoaoaoaoagagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagaoaoaoaoaoaoaoagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagaoaoaoaoaoaoaoagaoagagagagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagaoaoaoaoaoaoaoaoaoaoagagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagaoaoaoaoaoaoaoaoaoaoagagagagagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagaoaoaoaoaoaoaoaoaoaoaoagaoagagagagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananaeanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoabagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoabagagagabananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoabagagagababanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagabagagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoabagagagagagagananananananananananananananananananananananananananananananananananananananananananananananananananananaeananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaeagagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagaeaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagagababaeananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagabanagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagagagagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagaoagagagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagaoaoagagagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagaeabagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagaeabagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagaeababagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagaeabababagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagaeabababagabaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagaganaganananababanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagabagagabagabaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagagagagagabagabanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananaeanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagabaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagagagagagagabanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagabagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagagagagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagababaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoabagagagagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananaeananananananananananananananananananaeanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagabaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoababagagagagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoababagagagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoabababaoagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananaeananananananananananananananananananananananananananananananan -agagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananaeananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagabaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagabaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagabaoabagabaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananaeananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagababagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoabagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagaoagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoabagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagaoababaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagagagaeanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagaoababaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagagagagabanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagaoababaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagagagagabanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagabaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagagagagabanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagaoabaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagaoabaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoabagagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagaoababaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoabagagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagababaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoabagaoagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoabaoagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagagagabanananananananananananananananananananananananananananananananananananananananananananananananaeananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagagagabananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagaoabaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagagababaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagagagabaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananaeananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagagabaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagabanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananaeanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoabagagagabanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagabaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoabagagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagagagagagagababaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagagagagagagagabaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoabagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagagagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagagagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagaganananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagagagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagagabananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagagagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagagabananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagagagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagagabanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananaeananananananananananananananananananan -agagagagagagagagagagagagagagagagagagabaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagagagagagagagagabaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagagagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagananananananananananananananananananananananananananababanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagagagagagagagagabaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagaganananananananananananananananananananananananapababababanabanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagagagagagagagagagabaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagaganananananananananananananananananananananananababababananabanabanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagagagagagagagagagagaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagaganananananananananananananananananananananananabababababababababanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagagagagagagagagagagaqaqararararararaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagaganananananananananananananananananananananananananabababababababanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagagagagagagagagagagaqasatauaravawararaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoagagagagananananananananananananananananananananananananabababababababababapapababapanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagaxagagagagagagagagabaqasayazaravaAaBaraoaoaoaoaoaoaoaoaoaoaoaoaoaoaoabagagagaganananananananananananananananananananananananananabababababababababababababanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagaxaxagaxaxagagagababararaCararavaAaDaraoaxaoaoaoaoaoaoaoaoaoaoaoaoaoagagagaganananananananananananananananananananananananananananananabababababababababababanabananananananababababananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagaxaxaxaxaxaxaxaxararararaAaAaEararaFararararaxaxaoaoaoaoaoaoaoaoaoaoaoagagagagananabababagananananananananananananananananapababanababananababababababababababanababababababababababababanababanabananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagaxaxaxaxaxaxaxaxaxaxaraGaHaraAaAaAaAaAaAaIaAaJaKaxaxaoaoaoaoaoaoaoaoaoaoaoaoagagaganabagagagagagabananananananananananananananabababababababanababababababababababababababababababanananababababababababanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagaxaxaxaxaxaxaxaxaxaxaxaraLaAaMaAaAaAaAaNaOararararaPaxaxaxaxaoaoaoaoaoaoaoaoaoagagagagagagagabagabababanananagaganananananananababababababababababababababababababababababababababananabababababababababananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagaxagagaxaxaxaxaxaxaxaxaraQaRaraAaAaAaAaraSaraTaTaTaxaxaxaxaxaoaoaoaoaoaoaoaoaoagagagagagagababagagagagananagagagananagagagagananababababababababababababababanananababababababababababababababababababanabanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagaxaxaxaxaxaxaxaxararararaAaUaAaAaraVaraWaxaxaxaxaxaxaxaxaoaoaoaoaoaoaoaoaxagagagagagabagagagagaganagagagananabagagagagaganabababababababababababananananapababababababababababababababababababananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagaxagaxaxaxaxaxaxaxaxaxaXaYaZbaaAbbaAbcbdbearaWaxaxaxaxaxaxaxahaoaoaoaoaoaoaoaoaxagagagagagagagagagagagagagagagabababababababagagababababababanananananananananababababababababababababababapapanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagaxaxaxaxaxaxaxaxaxararararaAaAaRararaVaraxaxaxaxaxaxaxaxaTaoaoaoaoaoaoaoaxaxagagagagababagagagagagagagagabbfbfbgbgbfbfababagabababababapananananananababababababababababababababababababapanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagaxagagagaxaxaxaxaxaxaxaxbhbibjbkaAaAblbmbmbnaraxaxaxaxaxaxaxaxaoaoaoaoaoaoaoaoaxaxagagagabababababagagagagabababbfbobpbpbqbfabababababababababanananananababababababababababababababababababababanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagaxaxaxaxaxaxaxaxarararaAaAaAaAararararaxaxaxagaxaxaxaxaxaxaoaoaoaoaoaoaxagagagabababababababagagbrbrbsbsbfbtbububvbfbfbfbfbwabababababababababababababababababababababababababananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagaxaxaxaxaxaxaxaxbxbyaJbzaAaAbAbBbCbBbDaraxaxagagagagagaxaxaxaoaoaoaoaoaxaxagagagababababababababbsbsbEbFbGbHbIbubJbKbgbLbMbgabababababababababababababababababababababababababababapanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananaeananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagaxaxaxaxaxaxaxaxarararararbNarararbOarararagagagagagagagaxaoaoaxaxaxaxagagababababababababbPbsbsbQbRbSbTbUbVbWbXbYbZcabYcbababababababababababababababababababapabababababababababananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagaxaxaxaxaxaxaxaxaxaxcccdcecfcgarchcicjckaragagagagagagagagagaxaxaxaxagagagagagabababababclcmbRcncocpcqcrbHcsctcucvbgcwcxbgabababababababababababababababababananananabababababababananancyczababanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagaxaxaxaxaxaxaxaxaxcccccdcAcBcCarcDcEcFcGaragagagagagagagagagagagagagagagagagabababababababbsbsbscHbRcIcJbfbfbfbfbfbfbfbfbfbwababababababababababababababababananananapababababababanananababababanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagaxaxagaxaxagagagagcccdcKcKcKararararararagabababagagagananagagagababagagagagababababababababbsbscLcIcMcNcOcPbraeanananananabababagagabababababababababababananananananabababababanananabababababananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagaxagagaxagagagagagagagagagagagagagagagabaeanababababaecQcQcRcQcQcQcQagagagabababababababagabbrcScIcJbrbrbrbrbrbrbrbrbranababagagagababababababababababanananananananababababababapababababababananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagagagagagagagagcTagagagagagagagagcUcUcUcUcUcUcUcQcVcVcQcQcWcXcYcZdacQagagagagabababababagagagbrdbdccrddbrdedfdgdhdidjbrabagagagagaganabababagababababababananananananananananababababababababapananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagcTagagagagababagagabcQcQcQcQcQcQcUdkdldmdndocUdpdqdqdrcQdsdtdudvdacQabagagagagagababagagagagbrcocIbRdwdxdybRbRbRdzdAbrabagagagagaganababagagabananabababananananananananananananababababapananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagagagagagagagababagabcQdBdCdDdEdFcUdkdGdHdIdJcUdKdLdMdNcQdOdPdQdtdRcQababagagagagagagagagagabbrdScIbRdTbrdUbRdVdWbrdXbragagagagagagananabagagabananapabababanananananananananananababababapananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagagagagagagagababababcQdYdZdZdZdZcUcUcUeacUcUcUcQebecebcQcQcQedcQcQcQcVcVcVagagagagababababbsbseecIbRbGefcLbRegehefeibragagagagagagananabagagabanananananananananananananananananabababababananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagagagagagagagagabababejdZekelemdZejeneoepeqereseneoeteqeueneoevewenenenexcVcVcVcVcVbsbsbsbsbscLbRcIbRcJeycobRegezeAeBbragagagagagagananabagagaganananananananananananananananananapababababananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagagagagababagababababejeCeDeEeFeGeHeIeJeKeLeLeLeLeLeMeLeNeLeLeOePeLePeLeQeReSeLeLeLeTeTeTbTeUeVeTeWeXeYeZfafbfcfdefeibragagagagaganananagagagagabananananananananananananananananapababababananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagagagagabababababababejfeekffemdZejenfgfhfifjenenenenenfkenfjexfhfiflenfmcVcVcVcVcVbsbsbsbsbscHbRfnbRcrefcHcJbrefefeibrabagagagagananagagagagagagagagaganananananananananananananabababababananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagagagagagababababababcQdZdZfofpfqcQcQcQfrcQcQcQcQcQcQfifkcQcQebfsebcQcQcQcVababababababababbsbsftfufvfwbrbRfxfyfzfzfAbrababagaganananagagagagagagagagabanananananananananananananabababababananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagagagagagabagababababcQcQcQcQcQcQcQfBfCetfDfEcQfFfGfHfIfJcQfKfLfMfLfNfOcVababagagagagagagababbrbrbrbsbsbrbsbrbrbrbrbrbrabababaganananagagagagagagagababananananabababababanananaeababababababanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagagagagagagagababagababananananancQfPenflenfQcQfRfScQfTfkebfLfLfUfLfLfVcQabagagagagagagagagabanabababababababababababababababababananababagagagagababababapapabababababababababababfWababababababababababanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagagagagagagagabagagagagabanananancQfXfYfZgagbcQcQcQcQfifkebfLgcgdgegfggcQabagagagagagagagagaganagagagagababababababababababababababanababababagabababababababababababababababababababababababababababababababanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagagagagagagagabagagagagabababanaecQcQcVcVcVcQcQfFfGghfIfJcQgifLgjgkfLglcVabagagagagagagagagagagagagagagagagagagagagabababababababababababababababababababababababababababababababababababababababababababababababanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagagagagagagagagagagagagagabaganananababababancQfRgmcQeqgncQcQcQcQcQcQcQcQanagagagagagagagagagagagagagagagagagagagagagagagagagagagagagabababababababababababababababababababababababababababababababababababababababananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagagagagagagagagagagagagagagagagananabababanaecQcQcQcQfifkcQgogpcQgqgrcQananagagagagagagagagagagagagagagagagagagagagagagagagagagabababababababababababababababababababababababababababababababababababababababababababanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagagagagagagagagagagagagagagagaganagagagabanancQfFfGgsfIgtgugvgwgxgwgycQananabagagagagagagagagagagagagagagagagagagagagagabagabababababababababababababababababababababababababababababababababababababababababababababanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagabancQfRgzcQeqflcQgAgBcQgCgrcQanababagagagagagagagagagagagagagagagagagagagagagagagagagababababababababababababababababababababababababababababababababababababababababababababananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagababcQcQcQcQcVcVcQcQcQcQcQcQcQanababagagagagagagagagagagagagagagagagagagagagabagagagagagagabababababababababababababababababababababababababababababababababababababababababababanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan -agagagagagagagagabagagagagagagagagagagagagagagagagagagagagagagagagababagagagabanaeananananananabababagagagagagagagagagagagagagagagagagagagagagagagagagagabababababababababababababababababababababababababababababababababababababababababababananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananaeananananan -agagagagagagagagababagabagagagagagagagagagagagagagagagagagagagagagabagagagagagabanananabababababagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagababababababababababababababababababababababababababababababababababababababababananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananabananananananananananananananananananananananananag -agagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagabanabababagagagagagabagagagagagagagagagagagagagagagagagagagagababababababababababababababababababababababababababababababababababababababababababababababababababanananananananananananananananananananananananananananananananananananananananananananananananababananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananabanananananananananananananananananananananananagag -agagagagagagagagabagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagabababagabagagababagababagagagagagagagagagagagagagagagagagababababababababababababababababababababababababababababababababababababababababababababababababababababananananananananaeababanananabababananananananananananananananananananananananananananananananababaeananananananananananananananananananananananananananananananananananananananananananananananananananananananananananabababanananananananananananananananananananaeagagagag -agagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagababagababagabababaeababagagagagagagagagagagagagagagagagagagagagagagabababababababababababababababababababababababababababababababababababababababababababababababananabagagagagagagagabababagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagabagagagagagagagagagagagagagagagagagababanananananananananananananananananananagagagagagagagaeanananananananananananananababababanananananananananananananananananananagagagagag -agagagagagagagagagagabagagababagagagagagagagagagagagagagagagagagagagagagagagagagabagagagagagagabaeaeaeaeabagagagagagagagagagagagagagagagagagagagagagagababababababababababababababababababababababababababababababababababababababababababababababababagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagananananaeagagagagagagananananananananabagagagagagagagabanananananananananababagagagagagagagananananaeagagagagagagagagagagagaganagagagagag -agagagagagagagagagagagagabababababagagagagagagagagagagagagagagagagagagagagagagagabagagagagagabanaeaeaeaeababagagagagagagagagagagagagagagagagagagagagagababababababababababababababababababababababababababababababababababababababababababababababababagagagagagagagagagagabagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagabagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagabababagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagag -agagagagagagagagagababagabababababagagagagagagagagagagagagagagagagagagagagagagagagagagagagababaeaeaeaeaeaeababagagagagagagagagagagagagagagagagagagagagabababababababababababababababababababababababababababababababababababababababababababababababababagabagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagag -agagagagagagagabagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagabaeaeaeaeaeaeababagagagagagagagagagagagagagagagagagabababababababababababababababababababababababababababababababababababababababababababababababagagagagagagagagagagagagagagabagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagabagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagag -agagagagagagagagagagagagagabagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagabaeaeaeaeanababababagabagagagagagagabababagabagabababababababagagagagababababababababababababababababababababababababababababababababababababababagagagagagagagagagabagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagabagababagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagag -agagagagagagabagagagagagagagagagabagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagabanaeaeaeaeabagagagagagagagagagagagagagagagagagagabababababababagagagagagagagababababababababababababababababababababababababababagagagagabababababagababagagagagagagagagabagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagag -agagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaganaeaeaeabagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagabababababababababababababababababababababababagagagagagagagagagagababagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagag -agagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagababababagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagababagagagagabagabababagagagagagagababababababagabagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagag -agagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagababagagabagagagagagagagagagagagagagagagababagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagag -agagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagababagagabagagagagagagagagagagagagagagagababagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagag +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(2,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(3,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ed +ed +ed +ed +ed +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(4,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +al +al +af +af +af +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(5,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +fK +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +al +al +al +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(6,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +af +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ed +ed +ed +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +ab +af +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +af +af +af +af +af +fK +fK +fK +fK +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +af +af +af +af +af +af +af +af +ab +al +dq +ab +af +af +af +af +af +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(7,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +af +ab +ab +af +af +af +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +al +al +al +al +al +al +al +ed +af +af +af +af +af +af +af +af +fK +fK +fK +fK +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +af +af +bA +bA +ab +dq +ab +af +af +af +af +af +af +af +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +af +af +af +af +"} +(8,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +ed +af +ab +ab +ed +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +ed +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +ab +ab +ab +fK +fK +ab +ab +fK +fK +fK +fK +fK +fK +fK +fK +fK +ab +ab +ab +af +af +af +af +af +af +af +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +af +af +af +ab +af +af +af +bA +bA +af +af +af +af +af +af +af +af +af +af +af +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +af +af +af +af +af +af +"} +(9,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +ab +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +af +ab +ab +af +af +af +af +bA +bA +af +af +bA +bA +af +af +bA +af +ab +af +af +af +af +af +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +af +ab +af +af +af +af +af +af +af +af +af +af +af +"} +(10,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +ab +ab +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +af +af +af +bA +bA +bA +bA +bA +bA +bA +bA +bA +bA +bA +bA +bA +af +af +af +af +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +af +af +af +af +af +ab +af +af +af +af +af +af +af +"} +(11,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +ab +ab +fK +fK +fK +fK +fK +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +bA +bA +dq +bA +bA +bA +bA +bA +bA +bA +bA +bA +bA +bA +bA +bA +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +af +ab +af +af +af +af +af +af +af +"} +(12,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +af +af +af +af +af +af +af +af +fK +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +bA +bA +bA +dq +bA +bA +bA +bA +bA +dq +bA +bA +dq +bA +bA +bA +af +bA +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(13,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +ab +ab +af +af +af +af +af +af +ab +fK +fK +af +af +af +af +af +af +af +af +ab +af +af +af +af +af +af +ab +af +bA +bA +bA +dq +dq +dq +dq +dq +dq +dq +dq +dq +bA +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +af +af +af +af +af +af +af +"} +(14,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +ab +ab +fK +fK +fK +fK +fK +fK +fK +fK +af +af +af +af +af +af +af +ab +ab +af +af +af +af +af +af +af +bA +bA +bA +bA +dq +dq +dq +dq +dq +dq +dq +dq +dq +bA +bA +ab +af +af +af +af +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +ab +af +ab +af +af +af +af +af +"} +(15,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +al +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +af +af +af +af +af +af +af +af +af +af +af +ab +af +af +af +af +bA +bA +bA +bA +dq +dq +dq +dq +dq +dq +dq +dq +dq +bA +bA +bA +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +ab +af +af +af +af +af +af +af +"} +(16,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +af +af +af +af +af +ab +af +af +af +af +af +af +ab +ed +ed +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +bA +bA +bA +dq +dq +dq +dq +dq +dq +dq +dq +dq +bA +af +af +af +af +af +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +af +af +af +af +af +af +af +"} +(17,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ed +ed +ab +ab +af +af +af +af +af +ab +af +af +af +af +af +af +ab +af +ed +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +bA +bA +dq +dq +dq +dq +dq +dq +dq +bl +dq +dq +dq +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +af +af +ab +af +af +af +af +"} +(18,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +af +af +af +af +ab +ab +ab +af +af +af +af +af +ab +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +ab +ab +af +af +af +af +af +ab +af +af +af +af +af +af +af +af +af +an +an +an +an +an +aO +an +an +an +bm +an +bA +bA +af +af +af +af +af +al +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(19,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +af +af +af +af +ab +ab +ab +af +af +af +af +af +ab +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +ab +ab +fK +ab +af +af +af +af +af +ab +an +ay +aC +aG +an +aP +an +aZ +an +aF +an +dq +fJ +af +af +dq +af +ab +al +al +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(20,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +af +af +af +af +ab +ab +ab +ab +af +af +af +af +ab +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +ab +af +af +af +ab +ab +an +az +at +au +an +aO +an +fM +an +bm +an +fJ +fJ +fJ +af +af +af +al +al +al +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(21,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +af +af +af +af +ab +ab +ab +ab +af +af +af +af +ab +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +am +am +am +an +an +an +aD +an +an +aQ +an +ba +at +at +an +fN +fN +fN +af +af +af +al +ed +al +al +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(22,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +af +af +af +ab +ab +ab +ab +af +af +af +af +ab +ab +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +am +ao +ao +an +at +at +at +at +at +at +at +at +at +at +an +bB +bK +fO +af +af +af +af +al +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(23,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ab +ab +ab +ab +af +ab +ab +ab +af +af +af +af +af +af +ab +ab +ab +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +an +ap +fD +aw +at +at +at +at +aK +aR +at +at +at +bc +bu +bC +bL +fO +af +af +af +af +af +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(24,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +ab +ab +ab +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +an +aq +aM +an +aA +at +at +at +at +at +au +fH +at +be +an +bD +bM +fO +af +af +af +af +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(25,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +ab +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +ab +ab +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +an +an +an +an +an +at +at +at +at +dr +an +aS +an +bd +an +an +an +an +af +af +af +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(26,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ab +ab +af +af +af +af +af +af +af +af +af +af +af +ab +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +ed +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +an +ar +ar +ar +an +at +fE +an +an +aL +an +aS +an +be +an +bE +bN +an +af +af +af +ab +ab +ab +ab +ab +ab +af +af +af +al +al +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(27,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +an +as +at +at +aB +at +fF +aI +aT +fG +aT +aV +an +bf +bw +aW +aX +an +af +af +ab +ed +al +ab +ab +ab +al +ab +ab +ab +ed +al +al +al +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(28,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +al +ab +ab +af +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +an +an +av +ax +an +aE +an +an +an +an +an +an +an +an +an +bx +bO +an +af +eh +eh +eh +eh +ei +ei +ei +ee +ei +ei +ei +ee +al +al +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(29,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +ab +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +al +af +af +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +an +an +an +an +at +an +fL +aN +aN +dq +dq +dq +dq +an +bF +bG +an +af +eh +dm +dm +eh +fj +fj +fj +ee +cd +cU +bn +ee +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(30,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +ab +ab +af +ab +ab +ab +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +an +aF +an +fL +dq +dq +dq +dq +dq +dq +an +an +an +an +af +eh +ex +eM +eh +fk +fv +fq +ee +fB +fj +da +ei +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(31,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +af +af +af +ab +ab +ab +af +af +af +af +ab +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +al +af +af +af +af +af +fK +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +dq +an +aE +an +fL +dq +dq +dq +dq +dq +af +af +af +af +af +ab +eh +ey +eN +fa +fl +fw +cs +cy +fo +cV +db +ei +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(32,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +af +af +af +ab +ab +ab +af +af +af +af +af +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +af +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +dq +dq +aJ +dq +dq +dq +dq +dq +af +af +af +af +af +ab +ed +eh +ez +eO +eh +fm +bg +cu +ee +cJ +fj +bo +ei +ab +al +al +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(33,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +af +af +af +ab +ab +af +af +af +af +af +af +af +ab +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +al +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +dq +dq +dq +dq +dq +dq +dq +dq +dq +af +af +af +af +ab +al +eh +fC +eP +eh +fz +bg +cv +ee +fd +ag +bv +ee +al +ed +al +al +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(34,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ab +ab +ab +ab +af +af +ab +ab +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +af +af +af +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +dq +dq +dq +dq +dq +dq +dq +af +af +af +af +ab +ab +eh +eh +eh +eh +fn +bg +fj +ee +ee +ee +ee +ee +ee +ee +ee +ee +ee +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(35,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ed +ab +ab +ab +af +af +ab +ab +af +af +af +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +dq +dq +dq +dq +dq +dq +dq +af +af +af +af +af +ab +ee +eA +eQ +ee +fj +bg +fj +ee +cK +cW +ee +cK +cW +ee +cK +cW +ee +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(36,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +af +af +ab +ab +af +af +af +af +af +af +af +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +dq +dq +dq +dq +dq +dq +dq +dq +af +af +af +af +ab +ei +eB +eR +fb +fk +bg +fj +ee +cL +cX +ee +cL +dl +ee +cL +dp +ee +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(37,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +af +af +af +ab +ab +ab +af +af +ab +af +ab +ab +ab +ab +ab +ab +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +dq +fP +fL +fK +dq +dq +af +af +af +af +ab +ei +eB +eS +fc +fo +bi +fj +ee +cM +ee +ee +dh +ee +ee +do +ee +ee +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(38,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +af +af +af +ab +ab +ab +ab +af +af +af +af +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +fK +fK +fK +ab +ab +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +dq +dq +dq +af +af +al +ed +ee +eC +eT +fb +fm +bg +fj +cu +cN +fA +cu +cN +fm +cu +cN +fm +ei +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(39,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +af +af +af +ab +ab +ab +ab +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +ab +ab +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +af +af +al +ee +ee +ee +ee +ee +fp +ci +cl +cl +cO +cl +cl +cO +dn +cl +cO +cV +ei +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(40,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +af +af +af +af +ab +ab +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +al +al +al +af +af +af +af +af +af +af +ab +ab +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +dq +af +af +ee +ej +bX +bY +ee +cx +bg +fj +ee +ee +fb +fb +ee +ee +ee +ei +ei +ee +al +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +"} +(41,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +af +af +af +af +af +ab +af +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +ab +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +dq +dq +af +af +ef +ek +eD +bZ +ee +fk +bg +cv +ee +cP +cQ +cQ +aH +ee +ab +ab +ab +al +ed +al +al +ab +ab +ab +ab +af +af +af +af +af +af +af +af +"} +(42,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +ab +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +ab +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +dq +dq +af +af +ee +el +eE +bJ +cc +cf +bk +fq +fb +cQ +cQ +dc +cQ +ee +ab +af +ab +ab +al +al +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +"} +(43,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +af +af +af +ab +ab +af +af +af +af +af +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +af +af +af +af +af +ab +ab +ab +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +dq +dq +af +ab +ee +eD +eF +ca +ee +cg +cj +cs +ct +cR +cY +dd +di +ee +al +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(44,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +af +af +af +ab +ab +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +ab +ab +af +af +af +af +af +af +af +af +af +ab +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +ab +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +dq +dq +af +af +ab +ee +em +eG +eG +ee +fj +bg +cu +fb +cQ +cQ +de +dj +ee +ed +af +af +af +af +af +af +ab +ab +af +af +af +af +af +af +af +af +af +af +"} +(45,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +af +af +af +af +ab +ab +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +af +af +af +af +af +af +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +af +af +af +af +af +af +af +af +af +af +af +af +fK +fK +ab +af +af +ab +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +ab +af +af +fK +fK +fK +fK +fK +dq +dq +dq +dq +af +af +af +af +ee +ee +ee +ee +ee +fj +bg +fj +ee +cS +cQ +df +cQ +ee +al +af +af +af +af +af +af +af +ab +af +af +af +af +af +af +af +af +af +af +"} +(46,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +af +af +af +al +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +fK +fK +fK +fK +fK +af +af +af +af +af +af +af +dq +dq +dq +dq +af +af +af +af +af +af +af +af +ab +ab +ei +fj +bg +fj +ee +cT +cZ +dg +dk +ee +al +al +af +af +af +af +af +af +af +af +af +ab +af +af +af +af +af +af +af +"} +(47,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +al +al +al +af +af +al +al +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +af +af +af +af +af +af +ab +ei +fq +bp +cH +ee +ei +ei +ei +ei +ee +al +al +al +af +ab +af +af +ab +ab +af +ab +ab +ab +af +af +af +af +af +af +"} +(48,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +al +al +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +af +ab +af +af +af +af +af +ei +ei +bs +ei +ei +ab +ab +ab +ab +al +al +al +ab +af +af +af +af +ab +ab +ab +al +ed +ed +ab +ab +af +af +af +af +"} +(49,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +ed +ab +ab +ab +al +af +af +af +af +af +af +af +al +al +al +al +al +al +al +af +af +af +af +af +al +al +al +al +al +al +al +ab +ab +al +al +al +al +af +af +af +af +al +al +af +af +af +af +af +af +af +al +al +al +af +af +af +af +af +af +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +ei +bQ +ei +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +ab +ed +ed +ed +ed +ed +al +al +af +af +af +"} +(50,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +ab +af +af +af +af +af +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +ei +bg +ei +ab +af +af +af +af +af +af +af +af +af +ab +af +ab +ab +ed +ed +ed +ed +ed +ed +ed +ed +ab +af +af +"} +(51,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +af +af +af +af +af +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +ei +bg +ei +ab +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +ed +ed +ed +ed +ed +ed +ed +ab +af +af +"} +(52,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +af +af +ab +ab +af +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +ei +bg +ei +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ed +ed +ed +ed +ed +ed +ed +ab +af +af +"} +(53,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +af +ab +ab +af +af +af +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +ab +dx +bV +dx +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +ed +ed +al +ed +ab +ab +af +af +"} +(54,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +ab +ab +ab +ab +ck +ab +ab +ab +ab +af +af +ab +dx +bV +dx +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +ab +ab +ab +af +af +af +af +"} +(55,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ed +ed +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +ab +af +af +af +af +af +ab +ab +by +bH +dx +ab +ab +af +af +af +ab +dx +bV +dx +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +ab +af +af +af +af +af +"} +(56,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +al +al +al +al +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +af +af +af +af +af +af +ab +dx +dI +dx +ab +af +af +af +af +ab +dx +dK +dx +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +af +af +af +af +af +"} +(57,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ed +al +al +al +al +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +af +af +af +af +af +af +dx +dx +bH +dx +dx +ab +af +af +ab +dx +dx +cb +dx +dx +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +af +af +af +af +af +"} +(58,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ed +al +al +al +al +ab +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +bh +dx +dH +dR +bP +dx +bh +bh +bh +bh +dx +bU +bW +bP +dx +bh +al +al +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(59,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ed +ed +ed +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +ab +bh +bq +dI +dS +dI +bU +eg +eo +dR +eU +fe +dI +bV +dI +cz +bh +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +af +af +af +af +af +"} +(60,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +af +ab +af +af +ab +ab +af +ab +af +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +ab +dx +dB +dJ +dT +bR +bR +bR +ep +bR +bR +bR +bR +ce +cw +cA +bh +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(61,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +ab +ab +af +af +af +af +af +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +ab +ab +dx +dC +dK +bI +bS +dZ +bT +bI +dI +dI +dI +dI +ch +dI +cC +dx +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(62,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +ab +ab +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +al +ab +ds +ds +ds +bb +bz +bb +ds +ea +bh +eq +eH +eV +dC +bS +cm +bI +cD +dx +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(63,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +af +af +af +af +af +ab +ab +ab +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ds +du +dy +br +dL +dU +ds +eb +bh +bh +eI +bh +ff +fr +cn +ff +bh +bh +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(64,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +af +af +af +af +af +ab +ab +ab +ab +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +dt +dv +dz +dz +dM +dV +ds +ec +bh +er +eJ +eW +bU +dR +co +bP +dI +dx +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(65,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +af +ab +ab +af +ab +ab +ab +ab +ab +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +ab +dt +dv +dz +dD +dN +bj +ds +bh +bh +es +dI +dI +dI +dI +cp +bS +cE +bh +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(66,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +af +af +af +af +af +af +ab +ab +ab +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +ab +ds +dw +dA +dE +dO +dW +ds +ed +bh +et +dI +eX +fg +fg +cq +bh +cF +bh +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +af +af +af +af +af +"} +(67,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +ab +ab +ab +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +ab +ds +ds +ds +dt +dP +dt +ds +al +bh +eu +dI +eY +fh +fs +cr +ff +cG +bh +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +af +af +af +af +af +"} +(68,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ab +ab +ab +ab +ab +af +af +af +af +af +ab +ab +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +ab +ab +ab +ds +dF +dQ +dX +ds +al +bh +ev +eK +bh +ff +ft +ff +ff +cG +bh +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +af +af +af +af +af +"} +(69,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +af +af +af +af +af +ab +ab +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +ab +ab +ds +dG +dO +dY +ds +al +bh +ew +eL +eZ +fi +fu +fi +fi +cI +bh +ab +ab +ab +af +af +af +af +af +af +af +af +ab +af +af +af +af +af +af +af +af +af +af +af +"} +(70,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +af +af +af +af +af +ab +ab +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +al +al +af +af +ab +ds +dt +dP +dt +ds +al +bh +bh +bh +bh +bh +bh +bh +bh +bh +bh +ab +ab +ab +af +af +af +af +ab +af +af +af +ab +af +af +af +af +af +ab +af +af +af +af +af +"} +(71,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +af +af +af +af +ab +ab +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +fy +ab +ab +ab +ab +ab +ab +ab +bt +ab +ab +ab +bt +al +al +ab +ab +af +af +af +af +ab +ab +ab +ab +ab +ab +af +af +ab +af +af +af +af +ab +ab +af +af +af +af +af +af +af +af +af +af +af +"} +(72,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +af +af +af +af +ab +ab +ab +af +af +af +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +ab +ab +af +af +af +af +af +ab +af +af +af +af +af +"} +(73,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ed +ed +ab +ab +ab +ab +ab +af +af +af +af +ab +ab +ab +af +ab +af +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +fy +ab +ab +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +ab +ab +af +af +ab +af +af +af +af +ab +ab +af +af +af +af +ab +ab +ab +af +af +af +af +"} +(74,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +ab +ab +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +al +ab +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +ab +ab +ab +af +af +ab +af +af +af +af +ab +ab +af +af +af +af +ab +ab +ab +af +af +af +af +"} +(75,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +ab +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +al +al +ab +ab +ab +af +ab +ab +ab +af +af +af +ab +ab +ab +af +af +af +ab +ab +ab +af +af +af +af +"} +(76,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +al +ab +ab +ab +ab +ab +ab +fy +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +al +al +al +al +al +ab +ab +af +ab +ab +ab +af +af +af +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +"} +(77,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +ab +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +al +ab +ab +ab +ab +al +al +ab +ab +ab +ab +al +al +al +ab +ab +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +ab +af +ab +ab +ab +ab +ab +af +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +"} +(78,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +al +al +ab +ab +ab +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +al +al +al +al +af +af +af +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +"} +(79,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ed +ed +ed +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +ab +ab +ab +ab +ab +ab +ab +af +ab +af +af +af +af +"} +(80,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ed +al +al +al +ab +ab +af +af +af +af +af +af +af +af +af +ab +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +"} +(81,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ed +al +al +al +ed +ab +af +af +af +af +af +af +af +af +af +ab +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +al +al +al +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +"} +(82,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +al +al +al +ed +ab +af +af +af +af +af +af +af +af +af +ab +ab +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +"} +(83,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ed +ed +ab +ab +af +af +af +af +af +af +af +ab +af +ab +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +fy +ab +ab +ab +ab +ab +ab +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +al +al +al +al +ab +af +af +af +af +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +"} +(84,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +ab +ab +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +fy +ab +ab +ab +ab +ab +ab +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +al +al +al +al +al +af +af +af +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +"} +(85,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +ab +ab +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +fy +al +al +al +af +af +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +"} +(86,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +ab +ab +af +ab +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +al +fy +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +al +al +al +af +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +"} +(87,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +ab +ab +ab +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +fy +ab +ab +ab +ab +ab +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +al +ab +ab +ab +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +"} +(88,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +ab +ab +af +ab +af +ab +ab +ab +af +ab +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +al +al +al +al +al +al +ab +al +al +al +al +al +al +fy +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +"} +(89,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +af +af +af +af +af +ab +ab +af +ab +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +fy +al +al +al +al +al +al +al +al +al +al +al +al +al +fy +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +"} +(90,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +af +af +af +af +af +ab +ab +ab +ab +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +"} +(91,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +af +af +af +af +af +ab +ab +ab +ab +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +"} +(92,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +ab +ab +ab +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +fy +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(93,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +ab +ab +ab +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(94,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +ab +ab +ab +ab +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +"} +(95,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +ab +ab +ab +ab +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +"} +(96,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +ab +ab +ab +ab +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +ab +ab +"} +(97,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +ab +ab +ab +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +al +al +ab +ab +ab +ab +ab +al +ab +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +"} +(98,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +al +al +ab +ab +ab +ab +ab +ab +af +af +af +af +af +ab +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +al +ab +ab +ab +ab +ab +ab +al +fy +ab +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +"} +(99,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +al +al +ed +ab +ab +ab +ab +af +af +af +af +af +af +ab +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +al +ab +ab +ab +ab +ab +ab +al +al +al +al +al +al +ab +ab +al +al +al +al +al +al +al +ed +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +"} +(100,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ed +al +al +ed +ab +ab +ab +af +af +af +af +af +af +af +ab +ab +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +fy +ab +ab +al +al +al +al +al +al +fy +ab +ab +ab +ab +fy +fy +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +"} +(101,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ed +ed +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +ab +af +ab +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +fy +fy +ab +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +cB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +"} +(102,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +al +al +al +al +al +al +aU +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +"} +(103,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +al +al +al +al +al +al +aY +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +"} +(104,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +al +al +al +al +al +al +ab +ab +ab +ab +ab +fy +fy +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +"} +(105,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ed +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +"} +(106,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +ab +ab +fy +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +"} +(107,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +af +af +af +af +af +af +af +af +ab +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +al +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +"} +(108,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +"} +(109,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +"} +(110,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +"} +(111,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ed +ed +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +"} +(112,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ed +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(113,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +ab +ab +ab +ab +"} +(114,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +ab +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +ab +af +af +"} +(115,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ed +ab +ab +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +"} +(116,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ed +al +al +ab +af +af +af +af +af +af +af +af +af +af +af +ab +ab +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +ab +af +af +"} +(117,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ed +ed +al +al +ed +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +"} +(118,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ed +al +al +ed +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +"} +(119,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ed +al +al +ab +af +af +af +af +af +af +af +af +af +af +ab +ab +ab +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +"} +(120,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +af +af +af +af +ab +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +af +ab +ab +af +af +af +af +"} +(121,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aj +aj +ab +ab +ab +ab +ab +ab +ab +af +af +ab +af +af +af +ab +ab +af +af +af +ab +ab +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +af +af +ab +af +af +af +af +"} +(122,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aj +aj +aj +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +ed +ab +ab +ab +ab +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +af +af +af +af +af +af +af +"} +(123,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aj +en +aj +aj +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +ab +ab +ab +ab +ab +ab +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +af +af +ab +af +af +af +af +"} +(124,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aj +aj +aj +aj +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +ab +ab +ab +ed +al +ed +ab +ab +ab +ab +ab +ab +ab +ab +ab +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +af +af +ab +af +af +ab +ab +af +af +af +"} +(125,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aj +aj +aj +aj +aj +ab +ab +ah +ah +af +af +af +af +af +af +af +af +af +af +af +ah +ah +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +ab +af +af +af +"} +(126,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aj +aj +aj +aj +aj +aj +aj +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ah +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +ab +af +af +af +af +af +af +af +"} +(127,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ae +ak +aj +aj +aj +aj +aj +aj +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(128,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aj +aj +aj +aj +aj +aj +aj +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ah +ab +ab +ab +ab +ab +ab +ab +ab +ab +ed +ab +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(129,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aj +aj +aj +aj +aj +ab +ab +ah +ah +af +af +af +af +af +af +af +af +af +af +af +ah +ah +ab +ab +ab +ab +ab +ab +ab +ab +ab +ed +ed +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +af +af +af +af +af +af +af +af +af +af +af +"} +(130,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aj +aj +aj +aj +ab +ab +ab +ab +ab +af +af +af +ab +af +af +af +af +af +af +af +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +al +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +af +af +af +af +af +ab +af +af +af +af +af +"} +(131,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aj +fx +aj +aj +ab +ab +ab +ab +ab +af +af +af +ab +ab +af +ab +ab +af +af +af +ab +ab +al +ed +ab +ab +ab +ab +ab +ab +ed +al +al +ed +ab +ab +ab +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +af +af +af +af +af +af +af +af +af +af +af +"} +(132,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aj +aj +aj +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +ab +ab +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +af +af +af +af +af +af +af +af +af +af +"} +(133,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aj +aj +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +ab +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +af +af +af +af +af +ab +af +af +af +af +"} +(134,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +af +ab +af +ab +af +af +af +af +af +af +"} +(135,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +af +af +af +af +af +af +af +af +af +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +af +af +af +af +af +af +af +af +af +af +af +"} +(136,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ed +ed +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +af +af +af +af +af +af +af +af +af +af +af +"} +(137,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +af +af +af +af +af +af +af +af +af +af +af +"} +(138,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(139,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(140,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(141,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +ab +af +af +af +ab +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(142,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(143,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +ab +af +af +af +ab +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(144,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +ab +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(145,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +ab +ab +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(146,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +ab +ab +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(147,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +ab +ab +af +af +af +af +af +ab +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(148,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ab +ed +ab +ab +ab +ab +ab +af +af +af +ab +ab +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(149,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +af +af +af +ab +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(150,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +af +af +af +ab +af +af +af +af +af +af +ab +ab +ab +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(151,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ed +ed +ed +ab +ab +ab +af +af +af +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(152,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ed +ed +ed +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(153,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(154,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(155,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ed +ed +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(156,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(157,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(158,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(159,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(160,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(161,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(162,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(163,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(164,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +ab +af +af +af +af +ab +ab +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(165,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +ab +ab +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(166,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ed +ed +ab +ab +af +af +af +af +ab +ab +ab +af +ab +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(167,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +al +al +al +al +ab +af +af +af +ab +ab +ab +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +ab +af +ab +af +af +af +af +af +af +"} +(168,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +al +al +al +al +ab +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +"} +(169,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ed +al +al +al +al +ab +ab +ab +ab +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +af +af +af +af +af +ab +af +af +af +af +af +"} +(170,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ed +ed +al +al +al +al +ed +ab +ab +ab +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +af +af +af +af +af +af +af +af +af +af +af +"} +(171,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ed +al +al +al +al +ed +ed +ab +ab +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +ab +af +af +af +af +af +"} +(172,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ed +al +al +al +al +ed +ed +ab +ab +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +ab +af +af +af +af +af +"} +(173,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ed +al +al +al +al +ed +ab +ab +ab +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(174,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ed +al +al +al +al +ed +ab +ab +ab +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(175,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ab +ab +ab +al +al +al +al +ab +ab +ab +ab +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(176,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +al +al +al +al +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(177,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ed +ed +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(178,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(179,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +ab +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(180,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ed +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(181,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(182,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(183,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(184,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ed +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(185,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(186,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +al +ed +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +af +af +af +af +af +af +af +af +af +af +"} +(187,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +al +ed +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +al +af +af +af +af +af +af +af +af +af +"} +(188,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +al +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +"} +(189,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +"} +(190,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +ab +af +af +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +"} +(191,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +af +af +af +af +af +af +af +af +af +"} +(192,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +"} +(193,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +"} +(194,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +"} +(195,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +"} +(196,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +"} +(197,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +"} +(198,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ab +ab +ed +ed +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +"} +(199,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +"} +(200,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +"} +(201,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +"} +(202,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +"} +(203,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ed +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +"} +(204,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +"} +(205,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +"} +(206,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +al +al +ab +ab +ab +af +af +af +af +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +af +af +af +af +af +af +af +af +af +"} +(207,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ed +al +al +ab +ab +ab +af +ab +af +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(208,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +al +al +ed +ab +af +af +af +af +af +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(209,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ed +ab +ab +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(210,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(211,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(212,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(213,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(214,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +ab +af +af +af +af +af +af +af +af +af +"} +(215,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +"} +(216,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +"} +(217,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +"} +(218,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +"} +(219,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ed +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +"} +(220,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +al +al +al +al +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +af +af +af +af +af +af +af +af +"} +(221,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +al +al +al +al +ed +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +af +af +af +af +af +af +af +af +"} +(222,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +al +al +al +al +ed +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +af +af +af +af +af +af +af +af +"} +(223,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +al +al +al +al +ed +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +"} +(224,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +al +al +al +al +ed +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +af +af +af +af +af +af +af +af +af +"} +(225,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +al +al +al +al +ed +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +af +af +af +af +af +af +af +af +af +"} +(226,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +ab +ab +ed +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +"} +(227,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +af +af +ab +ab +ab +ed +ed +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +"} +(228,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +ab +ed +ed +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +af +af +af +af +af +af +af +af +af +af +"} +(229,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +af +af +af +af +af +af +af +af +af +af +"} +(230,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +"} +(231,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +af +af +af +af +af +af +af +af +af +af +"} +(232,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +"} +(233,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +"} +(234,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +"} +(235,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ed +ed +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +"} +(236,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ed +ed +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +ab +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +"} +(237,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ed +ed +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +af +af +af +af +af +af +af +af +af +"} +(238,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +af +af +af +af +af +ab +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +"} +(239,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +af +af +af +af +ab +ab +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +"} +(240,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +af +ab +af +ab +ab +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +"} +(241,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +af +af +af +af +af +ab +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +"} +(242,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +"} +(243,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +"} +(244,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +"} +(245,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +"} +(246,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +"} +(247,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +"} +(248,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +"} +(249,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ed +ed +ed +ed +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +"} +(250,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ab +ab +ed +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +af +af +af +af +af +af +af +af +af +"} +(251,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +af +af +af +af +af +af +af +af +af +af +af +"} +(252,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +af +"} +(253,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ed +ed +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +af +"} +(254,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(255,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +af +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +af +af +af "} diff --git a/_maps/map_files/generic/z2.dmm b/_maps/map_files/generic/z2.dmm index 239790bc13..cd9bdb86f4 100644 --- a/_maps/map_files/generic/z2.dmm +++ b/_maps/map_files/generic/z2.dmm @@ -1,1214 +1,1303 @@ -"aa" = (/turf/open/space/transit,/area/space) -"ab" = (/turf/open/space,/area/space) -"ac" = (/turf/open/space/transit/horizontal,/area/space) -"ad" = (/turf/closed/indestructible/riveted,/area/space) -"ae" = (/obj/structure/window/reinforced,/turf/closed/indestructible/riveted,/area/space) -"af" = (/obj/structure/window/reinforced{dir = 4},/turf/closed/indestructible/riveted,/area/space) -"ag" = (/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) -"ah" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/closed/indestructible/riveted,/area/space) -"ai" = (/obj/structure/foamedmetal,/obj/structure/window{icon_state = "rwindow"; dir = 8},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/bunker) -"aj" = (/obj/structure/foamedmetal,/obj/structure/window{icon_state = "rwindow"; dir = 4},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/bunker) -"ak" = (/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/bunker) -"al" = (/obj/structure/table,/obj/item/stack/medical/ointment{heal_burn = 10},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/bunker) -"am" = (/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) -"an" = (/obj/structure/chair/wood/normal{icon_state = "wooden_chair"; dir = 4},/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) -"ao" = (/obj/structure/table/wood/poker,/obj/effect/holodeck_effect/cards,/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) -"ap" = (/obj/structure/table/wood/poker,/obj/item/clothing/mask/cigarette/pipe,/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) -"aq" = (/obj/structure/chair/wood/normal{icon_state = "wooden_chair"; dir = 8},/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) -"ar" = (/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/wildlife) -"as" = (/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/offline) -"at" = (/turf/open/floor/holofloor/plating/burnmix,/area/holodeck/rec_center/burn) -"au" = (/turf/open/floor/holofloor{dir = 9; icon_state = "red"},/area/holodeck/rec_center/court) -"av" = (/turf/open/floor/holofloor{dir = 1; icon_state = "red"},/area/holodeck/rec_center/court) -"aw" = (/turf/open/floor/holofloor{dir = 5; icon_state = "red"},/area/holodeck/rec_center/court) -"ax" = (/obj/structure/window/reinforced{dir = 8},/turf/closed/indestructible/riveted,/area/space) -"ay" = (/obj/structure/flora/bush,/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) -"az" = (/obj/structure/table,/obj/machinery/recharger,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/bunker) -"aA" = (/obj/structure/chair/wood/normal{icon_state = "wooden_chair"; dir = 1},/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) -"aB" = (/obj/effect/holodeck_effect/mobspawner,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/wildlife) -"aC" = (/obj/effect/holodeck_effect/sparks,/turf/open/floor/holofloor/plating/burnmix,/area/holodeck/rec_center/burn) -"aD" = (/turf/open/floor/holofloor{dir = 8; icon_state = "red"},/area/holodeck/rec_center/court) -"aE" = (/turf/open/floor/holofloor,/area/holodeck/rec_center/court) -"aF" = (/turf/open/floor/holofloor{dir = 4; icon_state = "red"},/area/holodeck/rec_center/court) -"aG" = (/obj/structure/flora/grass/brown,/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) -"aH" = (/obj/structure/table,/obj/item/weapon/gun/energy/laser,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/bunker) -"aI" = (/obj/structure/window/reinforced/tinted{icon_state = "rwindow"; dir = 4},/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) -"aJ" = (/obj/item/device/instrument/violin,/obj/structure/table/wood,/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) -"aK" = (/obj/structure/chair/comfy/brown{buildstackamount = 0},/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) -"aL" = (/obj/structure/chair/wood/wings,/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) -"aM" = (/obj/structure/flora/tree/pine,/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) -"aN" = (/obj/structure/chair/wood,/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) -"aO" = (/turf/open/floor/holofloor{dir = 8; icon_state = "green"},/area/holodeck/rec_center/court) -"aP" = (/turf/open/floor/holofloor{dir = 4; icon_state = "green"},/area/holodeck/rec_center/court) -"aQ" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green,/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) -"aR" = (/obj/structure/chair/comfy/brown{buildstackamount = 0; dir = 1},/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) -"aS" = (/obj/docking_port/stationary/transit{dheight = 0; dir = 2; dwidth = 11; height = 22; id = "whiteship_transit"; width = 35},/turf/open/space/transit/horizontal,/area/space) -"aT" = (/obj/structure/chair/wood/normal,/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) -"aU" = (/obj/docking_port/stationary/transit{dir = 4; dwidth = 1; height = 4; id = "pod3_transit"; turf_type = /turf/open/space/transit/horizontal; width = 3},/turf/open/space/transit/horizontal,/area/space) -"aV" = (/obj/structure/table,/obj/item/stack/medical/bruise_pack{heal_brute = 10},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/bunker) -"aW" = (/obj/structure/table/wood/poker,/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) -"aX" = (/turf/open/floor/holofloor{dir = 10; icon_state = "green"},/area/holodeck/rec_center/court) -"aY" = (/turf/open/floor/holofloor{dir = 2; icon_state = "green"},/area/holodeck/rec_center/court) -"aZ" = (/turf/open/floor/holofloor{dir = 6; icon_state = "green"},/area/holodeck/rec_center/court) -"ba" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/closed/indestructible/riveted,/area/space) -"bb" = (/obj/effect/holodeck_effect/mobspawner/bee,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/anthophila) -"bc" = (/obj/effect/holodeck_effect/mobspawner/pet,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) -"bd" = (/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) -"be" = (/obj/structure/table/glass,/obj/item/weapon/surgicaldrill,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHWEST)"; icon = 'icons/turf/floors/warning.dmi'; icon_state = "white_warn"; dir = 9},/area/holodeck/rec_center/medical) -"bf" = (/obj/structure/table/glass,/obj/item/weapon/hemostat,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTH)"; icon = 'icons/turf/floors/warning.dmi'; icon_state = "white_warn"; dir = 1},/area/holodeck/rec_center/medical) -"bg" = (/obj/structure/table/glass,/obj/item/weapon/scalpel{pixel_y = 10},/obj/item/weapon/circular_saw,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTH)"; icon = 'icons/turf/floors/warning.dmi'; icon_state = "white_warn"; dir = 1},/area/holodeck/rec_center/medical) -"bh" = (/obj/structure/table/glass,/obj/item/weapon/retractor,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTH)"; icon = 'icons/turf/floors/warning.dmi'; icon_state = "white_warn"; dir = 1},/area/holodeck/rec_center/medical) -"bi" = (/obj/structure/table/glass,/obj/item/weapon/cautery,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHEAST)"; icon = 'icons/turf/floors/warning.dmi'; icon_state = "white_warn"; dir = 5},/area/holodeck/rec_center/medical) -"bj" = (/turf/open/floor/holofloor{dir = 9; icon_state = "red"},/area/holodeck/rec_center/basketball) -"bk" = (/obj/structure/holohoop,/turf/open/floor/holofloor{dir = 1; icon_state = "red"},/area/holodeck/rec_center/basketball) -"bl" = (/turf/open/floor/holofloor{dir = 5; icon_state = "red"},/area/holodeck/rec_center/basketball) -"bm" = (/turf/open/floor/holofloor/beach,/area/holodeck/rec_center/beach) -"bn" = (/obj/structure/table,/obj/machinery/readybutton,/turf/open/floor/holofloor{dir = 9; icon_state = "red"},/area/holodeck/rec_center/thunderdome) -"bo" = (/obj/structure/table,/obj/item/clothing/head/helmet/thunderdome,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/under/color/red,/obj/item/weapon/holo/esword/red,/turf/open/floor/holofloor{dir = 1; icon_state = "red"},/area/holodeck/rec_center/thunderdome) -"bp" = (/obj/structure/table,/turf/open/floor/holofloor{dir = 5; icon_state = "red"},/area/holodeck/rec_center/thunderdome) -"bq" = (/obj/machinery/readybutton,/turf/open/floor/holofloor{dir = 9; icon_state = "red"},/area/holodeck/rec_center/dodgeball) -"br" = (/turf/open/floor/holofloor{dir = 1; icon_state = "red"},/area/holodeck/rec_center/dodgeball) -"bs" = (/turf/open/floor/holofloor{dir = 5; icon_state = "red"},/area/holodeck/rec_center/dodgeball) -"bt" = (/obj/structure/table/glass,/obj/item/weapon/surgical_drapes,/obj/item/weapon/razor,/turf/open/floor/holofloor{tag = "icon-white_warn (WEST)"; icon = 'icons/turf/floors/warning.dmi'; icon_state = "white_warn"; dir = 8},/area/holodeck/rec_center/medical) -"bu" = (/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) -"bv" = (/turf/open/floor/holofloor{tag = "icon-white_warn (EAST)"; icon = 'icons/turf/floors/warning.dmi'; icon_state = "white_warn"; dir = 4},/area/holodeck/rec_center/medical) -"bw" = (/turf/open/floor/holofloor{dir = 8; icon_state = "red"},/area/holodeck/rec_center/basketball) -"bx" = (/turf/open/floor/holofloor,/area/holodeck/rec_center/basketball) -"by" = (/turf/open/floor/holofloor{dir = 4; icon_state = "red"},/area/holodeck/rec_center/basketball) -"bz" = (/obj/effect/overlay/palmtree_r,/turf/open/floor/holofloor/beach,/area/holodeck/rec_center/beach) -"bA" = (/obj/effect/overlay/palmtree_l,/obj/effect/overlay/coconut,/turf/open/floor/holofloor/beach,/area/holodeck/rec_center/beach) -"bB" = (/turf/open/floor/holofloor{dir = 8; icon_state = "red"},/area/holodeck/rec_center/thunderdome) -"bC" = (/turf/open/floor/holofloor,/area/holodeck/rec_center/thunderdome) -"bD" = (/turf/open/floor/holofloor{dir = 4; icon_state = "red"},/area/holodeck/rec_center/thunderdome) -"bE" = (/turf/open/floor/holofloor{dir = 8; icon_state = "red"},/area/holodeck/rec_center/dodgeball) -"bF" = (/turf/open/floor/holofloor,/area/holodeck/rec_center/dodgeball) -"bG" = (/turf/open/floor/holofloor{dir = 4; icon_state = "red"},/area/holodeck/rec_center/dodgeball) -"bH" = (/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHWEST)"; icon = 'icons/turf/floors/warning.dmi'; icon_state = "white_warn"; dir = 10},/area/holodeck/rec_center/medical) -"bI" = (/turf/open/floor/holofloor{icon = 'icons/turf/floors/warning.dmi'; icon_state = "white_warn"},/area/holodeck/rec_center/medical) -"bJ" = (/obj/structure/table/optable,/turf/open/floor/holofloor{icon = 'icons/turf/floors/warning.dmi'; icon_state = "white_warn"},/area/holodeck/rec_center/medical) -"bK" = (/obj/machinery/computer/operating,/turf/open/floor/holofloor{icon = 'icons/turf/floors/warning.dmi'; icon_state = "white_warn"},/area/holodeck/rec_center/medical) -"bL" = (/obj/structure/table/glass,/obj/item/clothing/gloves/color/latex/nitrile,/obj/item/clothing/suit/apron/surgical,/obj/item/clothing/mask/surgical,/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHEAST)"; icon = 'icons/turf/floors/warning.dmi'; icon_state = "white_warn"; dir = 6},/area/holodeck/rec_center/medical) -"bM" = (/turf/open/floor/holofloor{dir = 1; icon_state = "red"},/area/holodeck/rec_center/basketball) -"bN" = (/turf/open/floor/holofloor{dir = 2; icon_state = "red"},/area/holodeck/rec_center/dodgeball) -"bO" = (/obj/docking_port/stationary/transit{dir = 4; dwidth = 1; height = 4; id = "pod4_transit"; turf_type = /turf/open/space/transit/horizontal; width = 3},/turf/open/space/transit/horizontal,/area/space) -"bP" = (/obj/structure/window{dir = 1},/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) -"bQ" = (/obj/structure/table/glass,/obj/machinery/reagentgrinder,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHWEST)"; icon = 'icons/turf/floors/warning.dmi'; icon_state = "white_warn"; dir = 9},/area/holodeck/rec_center/medical) -"bR" = (/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHEAST)"; icon = 'icons/turf/floors/warning.dmi'; icon_state = "white_warn"; dir = 5},/area/holodeck/rec_center/medical) -"bS" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/beakers,/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) -"bT" = (/obj/machinery/washing_machine,/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) -"bU" = (/turf/open/floor/holofloor{dir = 10; icon_state = "red"},/area/holodeck/rec_center/basketball) -"bV" = (/turf/open/floor/holofloor{dir = 2; icon_state = "red"},/area/holodeck/rec_center/basketball) -"bW" = (/turf/open/floor/holofloor{dir = 6; icon_state = "red"},/area/holodeck/rec_center/basketball) -"bX" = (/obj/item/clothing/under/color/rainbow,/obj/item/clothing/glasses/sunglasses,/turf/open/floor/holofloor/beach,/area/holodeck/rec_center/beach) -"bY" = (/obj/structure/window,/turf/open/floor/holofloor{dir = 8; icon_state = "red"},/area/holodeck/rec_center/thunderdome) -"bZ" = (/obj/structure/window,/turf/open/floor/holofloor,/area/holodeck/rec_center/thunderdome) -"ca" = (/obj/structure/window,/turf/open/floor/holofloor{dir = 4; icon_state = "red"},/area/holodeck/rec_center/thunderdome) -"cb" = (/obj/structure/window{dir = 1},/obj/item/toy/beach_ball/holoball/dodgeball,/turf/open/floor/holofloor{dir = 10; icon_state = "red"},/area/holodeck/rec_center/dodgeball) -"cc" = (/obj/structure/window{dir = 1},/obj/item/toy/beach_ball/holoball/dodgeball,/turf/open/floor/holofloor{dir = 2; icon_state = "red"},/area/holodeck/rec_center/dodgeball) -"cd" = (/obj/structure/window{dir = 1},/obj/item/toy/beach_ball/holoball/dodgeball,/turf/open/floor/holofloor{dir = 6; icon_state = "red"},/area/holodeck/rec_center/dodgeball) -"ce" = (/obj/machinery/chem_master,/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHWEST)"; icon = 'icons/turf/floors/warning.dmi'; icon_state = "white_warn"; dir = 10},/area/holodeck/rec_center/medical) -"cf" = (/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHEAST)"; icon = 'icons/turf/floors/warning.dmi'; icon_state = "white_warn"; dir = 6},/area/holodeck/rec_center/medical) -"cg" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/syringes,/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) -"ch" = (/obj/structure/closet/wardrobe/white,/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) -"ci" = (/turf/open/floor/holofloor{dir = 9; icon_state = "green"},/area/holodeck/rec_center/basketball) -"cj" = (/turf/open/floor/holofloor{dir = 1; icon_state = "green"},/area/holodeck/rec_center/basketball) -"ck" = (/turf/open/floor/holofloor{dir = 5; icon_state = "green"},/area/holodeck/rec_center/basketball) -"cl" = (/obj/item/toy/beach_ball,/turf/open/floor/holofloor/beach,/area/holodeck/rec_center/beach) -"cm" = (/obj/structure/window{dir = 1},/turf/open/floor/holofloor{dir = 8; icon_state = "green"},/area/holodeck/rec_center/thunderdome) -"cn" = (/obj/structure/window{dir = 1},/turf/open/floor/holofloor,/area/holodeck/rec_center/thunderdome) -"co" = (/obj/structure/window{dir = 1},/turf/open/floor/holofloor{dir = 4; icon_state = "green"},/area/holodeck/rec_center/thunderdome) -"cp" = (/obj/structure/window,/obj/item/toy/beach_ball/holoball/dodgeball,/turf/open/floor/holofloor{dir = 9; icon_state = "green"},/area/holodeck/rec_center/dodgeball) -"cq" = (/obj/structure/window,/obj/item/toy/beach_ball/holoball/dodgeball,/turf/open/floor/holofloor{dir = 1; icon_state = "green"},/area/holodeck/rec_center/dodgeball) -"cr" = (/obj/structure/window,/obj/item/toy/beach_ball/holoball/dodgeball,/turf/open/floor/holofloor{dir = 5; icon_state = "green"},/area/holodeck/rec_center/dodgeball) -"cs" = (/obj/docking_port/stationary/transit{dir = 4; dwidth = 9; height = 11; id = "emergency_transit"; width = 22},/turf/open/space/transit,/area/space) -"ct" = (/obj/structure/window,/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) -"cu" = (/turf/open/floor/holofloor{dir = 8; icon_state = "green"},/area/holodeck/rec_center/basketball) -"cv" = (/obj/item/toy/beach_ball/holoball,/turf/open/floor/holofloor,/area/holodeck/rec_center/basketball) -"cw" = (/turf/open/floor/holofloor{dir = 4; icon_state = "green"},/area/holodeck/rec_center/basketball) -"cx" = (/turf/open/floor/holofloor{dir = 8; icon_state = "green"},/area/holodeck/rec_center/thunderdome) -"cy" = (/turf/open/floor/holofloor{dir = 4; icon_state = "green"},/area/holodeck/rec_center/thunderdome) -"cz" = (/turf/open/floor/holofloor{dir = 8; icon_state = "green"},/area/holodeck/rec_center/dodgeball) -"cA" = (/turf/open/floor/holofloor{dir = 4; icon_state = "green"},/area/holodeck/rec_center/dodgeball) -"cB" = (/obj/structure/bed,/obj/item/weapon/bedsheet/medical,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHWEST)"; icon = 'icons/turf/floors/warning.dmi'; icon_state = "white_warn"; dir = 9},/area/holodeck/rec_center/medical) -"cC" = (/obj/structure/window{icon_state = "rwindow"; dir = 8},/obj/structure/bed,/obj/item/weapon/bedsheet/medical,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHEAST)"; icon = 'icons/turf/floors/warning.dmi'; icon_state = "white_warn"; dir = 5},/area/holodeck/rec_center/medical) -"cD" = (/obj/structure/window{icon_state = "rwindow"; dir = 8},/obj/structure/window,/obj/machinery/computer/pandemic,/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) -"cE" = (/turf/open/floor/holofloor{dir = 2; icon_state = "green"},/area/holodeck/rec_center/basketball) -"cF" = (/turf/open/floor/holofloor/beach/coast_t,/area/holodeck/rec_center/beach) -"cG" = (/turf/open/floor/holofloor{dir = 1; icon_state = "green"},/area/holodeck/rec_center/dodgeball) -"cH" = (/turf/open/floor/holofloor{tag = "icon-white_warn (WEST)"; icon = 'icons/turf/floors/warning.dmi'; icon_state = "white_warn"; dir = 8},/area/holodeck/rec_center/medical) -"cI" = (/obj/machinery/door/window/westleft,/turf/open/floor/holofloor{dir = 8; icon = 'icons/turf/floors/warning.dmi'; icon_state = "white_warn_corner"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/medical) -"cJ" = (/obj/machinery/door/window/westleft,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTH)"; icon = 'icons/turf/floors/warning.dmi'; icon_state = "white_warn"; dir = 1},/area/holodeck/rec_center/medical) -"cK" = (/turf/open/floor/holofloor/beach/coast_b,/area/holodeck/rec_center/beach) -"cL" = (/obj/structure/bed,/obj/item/weapon/bedsheet/medical,/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHWEST)"; icon = 'icons/turf/floors/warning.dmi'; icon_state = "white_warn"; dir = 10},/area/holodeck/rec_center/medical) -"cM" = (/obj/structure/window{icon_state = "rwindow"; dir = 8},/obj/structure/bed,/obj/item/weapon/bedsheet/medical,/turf/open/floor/holofloor{icon = 'icons/turf/floors/warning.dmi'; icon_state = "white_warn"},/area/holodeck/rec_center/medical) -"cN" = (/obj/structure/window{icon_state = "rwindow"; dir = 8},/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 1},/turf/open/floor/holofloor{icon = 'icons/turf/floors/warning.dmi'; icon_state = "white_warn"},/area/holodeck/rec_center/medical) -"cO" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 1},/obj/structure/window{icon_state = "rwindow"; dir = 8},/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHEAST)"; icon = 'icons/turf/floors/warning.dmi'; icon_state = "white_warn"; dir = 6},/area/holodeck/rec_center/medical) -"cP" = (/turf/open/floor/holofloor{dir = 10; icon_state = "green"},/area/holodeck/rec_center/basketball) -"cQ" = (/obj/structure/holohoop{dir = 1},/turf/open/floor/holofloor{dir = 2; icon_state = "green"},/area/holodeck/rec_center/basketball) -"cR" = (/turf/open/floor/holofloor{dir = 6; icon_state = "green"},/area/holodeck/rec_center/basketball) -"cS" = (/turf/open/floor/holofloor/beach/water,/area/holodeck/rec_center/beach) -"cT" = (/obj/structure/table,/turf/open/floor/holofloor{dir = 10; icon_state = "green"},/area/holodeck/rec_center/thunderdome) -"cU" = (/obj/structure/table,/obj/item/clothing/head/helmet/thunderdome,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/under/color/green,/obj/item/weapon/holo/esword/green,/turf/open/floor/holofloor{dir = 2; icon_state = "green"},/area/holodeck/rec_center/thunderdome) -"cV" = (/obj/structure/table,/obj/machinery/readybutton,/turf/open/floor/holofloor{dir = 6; icon_state = "green"},/area/holodeck/rec_center/thunderdome) -"cW" = (/turf/open/floor/holofloor{dir = 10; icon_state = "green"},/area/holodeck/rec_center/dodgeball) -"cX" = (/turf/open/floor/holofloor{dir = 2; icon_state = "green"},/area/holodeck/rec_center/dodgeball) -"cY" = (/obj/machinery/readybutton,/turf/open/floor/holofloor{dir = 6; icon_state = "green"},/area/holodeck/rec_center/dodgeball) -"cZ" = (/obj/structure/window/reinforced{dir = 1},/turf/closed/indestructible/riveted,/area/space) -"da" = (/turf/closed/indestructible/riveted,/area/tdome/arena_source) -"db" = (/obj/machinery/igniter,/turf/open/floor/plasteel,/area/tdome/arena_source) -"dc" = (/turf/open/floor/plasteel,/area/tdome/arena_source) -"dd" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/saber/red,/turf/open/floor/plasteel/black,/area/tdome/arena_source) -"de" = (/obj/machinery/door/poddoor{id = "thunderdomegen"; name = "General Supply"},/turf/open/floor/plasteel/black,/area/tdome/arena_source) -"df" = (/obj/machinery/door/poddoor{id = "thunderdome"; name = "Thunderdome Blast Door"},/turf/open/floor/plasteel,/area/tdome/arena_source) -"dg" = (/turf/open/floor/plasteel/red/side{dir = 8},/area/tdome/arena_source) -"dh" = (/turf/open/floor/plasteel/green/side{dir = 4},/area/tdome/arena_source) -"di" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/saber/green,/turf/open/floor/plasteel/black,/area/tdome/arena_source) -"dj" = (/turf/open/floor/bluegrid,/area/tdome/arena_source) -"dk" = (/obj/machinery/flasher{id = "tdomeflash"; name = "Thunderdome Flash"},/turf/open/floor/bluegrid,/area/tdome/arena_source) -"dl" = (/obj/docking_port/stationary/transit{dir = 8; dwidth = 2; height = 5; id = "laborcamp_transit"; width = 9},/turf/open/space/transit,/area/space) -"dm" = (/obj/machinery/door/poddoor{id = "thunderdomehea"; name = "Heavy Supply"},/turf/open/floor/plasteel/black,/area/tdome/arena_source) -"dn" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/turf/open/floor/plasteel/black,/area/tdome/arena_source) -"do" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/turf/open/floor/plasteel/black,/area/tdome/arena_source) -"dp" = (/obj/docking_port/stationary/transit{dheight = 9; dir = 2; dwidth = 5; height = 22; id = "syndicate_transit"; width = 18},/turf/open/space/transit,/area/space) -"dq" = (/obj/docking_port/stationary/transit{dir = 8; dwidth = 2; height = 12; id = "ferry_transit"; width = 5},/turf/open/space/transit/horizontal,/area/space) -"dr" = (/obj/docking_port/stationary/transit{dwidth = 1; height = 4; id = "pod1_transit"; width = 3},/turf/open/space/transit,/area/space) -"ds" = (/obj/docking_port/stationary/transit{dwidth = 1; height = 4; id = "pod2_transit"; width = 3},/turf/open/space/transit,/area/space) -"dt" = (/obj/docking_port/stationary/transit{dir = 8; dwidth = 5; height = 7; id = "supply_transit"; width = 12},/turf/open/space/transit,/area/space) -"du" = (/obj/docking_port/stationary/transit{dir = 8; dwidth = 3; height = 5; id = "mining_transit"; width = 7},/turf/open/space/transit,/area/space) -"dv" = (/obj/docking_port/stationary/transit{dwidth = 3; height = 7; id = "steel_rain_transit"; width = 7},/turf/open/space/transit/horizontal,/area/space) -"dw" = (/turf/closed/indestructible/riveted,/area/start) -"dx" = (/obj/effect/landmark/start,/turf/open/floor/plating,/area/start) -"dy" = (/turf/closed/indestructible/riveted,/area/ctf) -"dz" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTHWEST)"; dir = 9},/area/ctf) -"dA" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTH)"; dir = 1},/area/ctf) -"dB" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTHEAST)"; dir = 5},/area/ctf) -"dC" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (NORTHWEST)"; dir = 9},/area/ctf) -"dD" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (NORTH)"; dir = 1},/area/ctf) -"dE" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (NORTHEAST)"; dir = 5},/area/ctf) -"dF" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (WEST)"; dir = 8},/area/ctf) -"dG" = (/turf/open/floor/plasteel/black,/area/ctf) -"dH" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (EAST)"; dir = 4},/area/ctf) -"dI" = (/turf/open/floor/plasteel/blue,/area/ctf) -"dJ" = (/turf/open/floor/plasteel/darkblue,/area/ctf) -"dK" = (/obj/structure/barricade/security/ctf,/turf/open/floor/plasteel/circuit,/area/ctf) -"dL" = (/obj/structure/table/reinforced,/turf/open/floor/plasteel/bluespace,/area/ctf) -"dM" = (/obj/structure/barricade/security/ctf,/turf/open/floor/plasteel/bluespace,/area/ctf) -"dN" = (/turf/open/floor/plasteel/bluespace,/area/ctf) -"dO" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (WEST)"; dir = 8},/area/ctf) -"dP" = (/obj/structure/barricade/security/ctf,/turf/open/floor/plasteel/circuit/rcircuit,/area/ctf) -"dQ" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (EAST)"; dir = 4},/area/ctf) -"dR" = (/turf/open/floor/plasteel/red,/area/ctf) -"dS" = (/obj/structure/kitchenspike,/turf/open/floor/plasteel/black,/area/ctf) -"dT" = (/obj/docking_port/stationary/transit{dir = 8; dwidth = 2; height = 8; id = "backup_transit"; width = 8},/turf/open/space/transit,/area/space) -"dU" = (/turf/closed/indestructible/splashscreen,/area/start) -"dV" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (SOUTHWEST)"; dir = 10},/area/ctf) -"dW" = (/turf/open/floor/plasteel/darkblue/side,/area/ctf) -"dX" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (SOUTHEAST)"; dir = 6},/area/ctf) -"dY" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (SOUTHWEST)"; dir = 10},/area/ctf) -"dZ" = (/turf/open/floor/plasteel/darkred/side,/area/ctf) -"ea" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (SOUTHEAST)"; dir = 6},/area/ctf) -"eb" = (/obj/structure/window/reinforced/fulltile{health = 1e+007; maxhealth = 1e+007; name = "hardened window"},/turf/open/floor/plating,/area/ctf) -"ec" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline,/area/ctf) -"ed" = (/turf/open/floor/plasteel/darkblue/corner,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHWEST)"; dir = 9},/area/ctf) -"ee" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (WEST)"; dir = 8},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) -"ef" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) -"eg" = (/turf/open/floor/plasteel/darkblue/corner,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) -"eh" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHEAST)"; dir = 5},/area/ctf) -"ei" = (/obj/machinery/power/emitter/energycannon,/turf/open/floor/plating,/area/ctf) -"ej" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (EAST)"; dir = 4},/area/ctf) -"ek" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (EAST)"; dir = 4},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)"; dir = 8},/area/ctf) -"el" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (WEST)"; dir = 8},/area/ctf) -"em" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (EAST)"; dir = 4},/area/ctf) -"en" = (/turf/open/floor/plating/warnplate{icon_plating = "warnplate"},/area/ctf) -"eo" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)"; dir = 8},/area/ctf) -"ep" = (/turf/open/floor/plating/warnplate{dir = 8},/area/ctf) -"eq" = (/turf/open/floor/plating,/area/ctf) -"er" = (/turf/open/floor/plating/airless/warnplate{dir = 4; luminosity = 2},/area/ctf) -"es" = (/turf/open/floor/plasteel/darkblue/corner,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)"; dir = 8},/area/ctf) -"et" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (NORTH)"; dir = 1},/area/ctf) -"eu" = (/turf/open/floor/plasteel/darkblue/corner,/area/ctf) -"ev" = (/turf/open/floor/plating/warnplate{dir = 1},/area/ctf) -"ew" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (EAST)"; dir = 4},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHWEST)"; dir = 10},/area/ctf) -"ex" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (NORTH)"; dir = 1},/turf/open/floor/plasteel/warningline,/area/ctf) -"ey" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (EAST)"; dir = 4},/turf/open/floor/plasteel/warningline,/area/ctf) -"ez" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHEAST)"; dir = 6},/area/ctf) -"eA" = (/obj/machinery/power/emitter/energycannon{tag = "icon-emitter (NORTH)"; icon_state = "emitter"; dir = 1},/turf/open/floor/plating,/area/ctf) -"eB" = (/obj/structure/divine/trap/ctf/blue,/turf/open/floor/plasteel/blue,/area/ctf) -"eC" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHWEST)"; dir = 9},/area/ctf) -"eD" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) -"eE" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHEAST)"; dir = 5},/area/ctf) -"eF" = (/turf/open/floor/plasteel/darkred,/area/ctf) -"eG" = (/obj/structure/divine/trap/ctf/red,/turf/open/floor/plasteel/darkred,/area/ctf) -"eH" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)"; dir = 8},/area/ctf) -"eI" = (/turf/open/floor/plasteel/circuit,/area/ctf) -"eJ" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (EAST)"; dir = 4},/area/ctf) -"eK" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHWEST)"; dir = 10},/area/ctf) -"eL" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline,/area/ctf) -"eM" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHEAST)"; dir = 6},/area/ctf) -"eN" = (/obj/structure/barricade/security/ctf,/turf/open/floor/plasteel/circuit/gcircuit/off,/area/ctf) -"eO" = (/obj/structure/divine/trap/ctf/red,/turf/open/floor/plasteel/red,/area/ctf) -"eP" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTHWEST)"; dir = 9},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHWEST)"; dir = 9},/area/ctf) -"eQ" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTH)"; dir = 1},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) -"eR" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTHEAST)"; dir = 5},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) -"eS" = (/turf/open/floor/plasteel/circuit/gcircuit/off,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) -"eT" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (NORTHWEST)"; dir = 9},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) -"eU" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (NORTH)"; dir = 1},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) -"eV" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (NORTHEAST)"; dir = 5},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHEAST)"; dir = 5},/area/ctf) -"eW" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (WEST)"; dir = 8},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)"; dir = 8},/area/ctf) -"eX" = (/turf/open/floor/plasteel/circuit/gcircuit/off,/area/ctf) -"eY" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (EAST)"; dir = 4},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (EAST)"; dir = 4},/area/ctf) -"eZ" = (/turf/open/floor/plasteel/circuit/rcircuit,/area/ctf) -"fa" = (/turf/open/floor/plasteel/circuit/gcircuit/animated,/area/ctf) -"fb" = (/obj/machinery/capture_the_flag/blue,/turf/open/floor/plasteel/circuit/gcircuit/animated,/area/ctf) -"fc" = (/obj/item/weapon/twohanded/required/ctf/blue,/turf/open/floor/plasteel/circuit/gcircuit/animated,/area/ctf) -"fd" = (/obj/item/weapon/twohanded/required/ctf/red,/turf/open/floor/plasteel/circuit/gcircuit/animated,/area/ctf) -"fe" = (/obj/machinery/capture_the_flag/red,/turf/open/floor/plasteel/circuit/gcircuit/animated,/area/ctf) -"ff" = (/obj/effect/landmark/shuttle_import,/turf/open/space,/area/space) -"fg" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (SOUTHWEST)"; dir = 10},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHWEST)"; dir = 10},/area/ctf) -"fh" = (/turf/open/floor/plasteel/darkblue/side,/turf/open/floor/plasteel/warningline,/area/ctf) -"fi" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (SOUTHEAST)"; dir = 6},/turf/open/floor/plasteel/warningline,/area/ctf) -"fj" = (/turf/open/floor/plasteel/circuit/gcircuit/off,/turf/open/floor/plasteel/warningline,/area/ctf) -"fk" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (SOUTHWEST)"; dir = 10},/turf/open/floor/plasteel/warningline,/area/ctf) -"fl" = (/turf/open/floor/plasteel/darkred/side,/turf/open/floor/plasteel/warningline,/area/ctf) -"fm" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (SOUTHEAST)"; dir = 6},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHEAST)"; dir = 6},/area/ctf) -"fn" = (/turf/closed/wall/shuttle{icon_state = "swall_s6"; dir = 2},/area/centcom/evac) -"fo" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"; dir = 1},/turf/open/floor/plating/airless,/area/centcom/evac) -"fp" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 1},/turf/open/floor/plating/airless,/area/centcom/evac) -"fq" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 1},/turf/open/floor/plating/airless,/area/centcom/evac) -"fr" = (/turf/closed/wall/shuttle{icon_state = "swall_s10"; dir = 2},/area/centcom/evac) -"fs" = (/obj/docking_port/stationary{dir = 1; dwidth = 1; height = 4; id = "pod1_away"; name = "recovery ship"; width = 3},/turf/open/space,/area/space) -"ft" = (/obj/docking_port/stationary{dir = 1; dwidth = 1; height = 4; id = "pod2_away"; name = "recovery ship"; width = 3},/turf/open/space,/area/space) -"fu" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHWEST)"; dir = 9},/area/ctf) -"fv" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) -"fw" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHEAST)"; dir = 5},/area/ctf) -"fx" = (/turf/closed/wall/shuttle{icon_state = "swall3"; dir = 2},/area/centcom/evac) -"fy" = (/obj/structure/window/reinforced,/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 1},/turf/open/floor/plating/airless,/area/centcom/evac) -"fz" = (/turf/closed/wall/shuttle{icon_state = "swall7"; dir = 2},/area/centcom/evac) -"fA" = (/turf/closed/wall/shuttle{icon_state = "swall8"; dir = 2},/area/centcom/evac) -"fB" = (/obj/machinery/door/airlock/shuttle,/turf/open/floor/plating,/area/centcom/evac) -"fC" = (/turf/closed/wall/shuttle{icon_state = "swall0"; dir = 2},/area/centcom/evac) -"fD" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/open/floor/plating,/area/centcom/evac) -"fE" = (/turf/closed/wall/shuttle{icon_state = "swall4"; dir = 2},/area/centcom/evac) -"fF" = (/turf/closed/wall/shuttle{icon_state = "swall11"; dir = 2},/area/centcom/evac) -"fG" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)"; dir = 8},/area/ctf) -"fH" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (EAST)"; dir = 4},/area/ctf) -"fI" = (/turf/open/floor/plating,/area/centcom/evac) -"fJ" = (/turf/open/floor/plating,/turf/closed/wall/shuttle{icon_state = "swall_f6"; dir = 2},/area/centcom/evac) -"fK" = (/turf/open/floor/plasteel/shuttle,/turf/closed/wall/shuttle{icon_state = "swall_f9"; dir = 2},/area/centcom/evac) -"fL" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/shuttle,/area/centcom/evac) -"fM" = (/turf/open/floor/plasteel/shuttle/yellow,/area/centcom/evac) -"fN" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/toxin{pixel_x = -2; pixel_y = 4},/obj/item/weapon/storage/firstaid/toxin,/turf/open/floor/plasteel/shuttle,/area/centcom/evac) -"fO" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/fire{pixel_x = -2; pixel_y = 4},/turf/open/floor/plasteel/shuttle,/area/centcom/evac) -"fP" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 0},/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/turf/open/floor/plasteel/shuttle,/area/centcom/evac) -"fQ" = (/turf/open/floor/plasteel/shuttle,/turf/closed/wall/shuttle{icon_state = "swall_f5"; dir = 2},/area/centcom/evac) -"fR" = (/turf/open/floor/plating,/turf/closed/wall/shuttle{dir = 2; icon_state = "swall_f10"; layer = 2},/area/centcom/evac) -"fS" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHWEST)"; dir = 10},/area/ctf) -"fT" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline,/area/ctf) -"fU" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHEAST)"; dir = 6},/area/ctf) -"fV" = (/turf/closed/wall/shuttle{icon_state = "swall1"; dir = 2},/area/centcom/evac) -"fW" = (/turf/open/floor/plasteel/shuttle,/area/centcom/evac) -"fX" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)"; dir = 8},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) -"fY" = (/turf/open/floor/plasteel/darkred/corner,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) -"fZ" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (WEST)"; dir = 8},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) -"ga" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (WEST)"; dir = 8},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHEAST)"; dir = 5},/area/ctf) -"gb" = (/turf/closed/wall/shuttle{icon_state = "swall_s5"; dir = 2},/area/centcom/evac) -"gc" = (/turf/closed/wall/shuttle{icon_state = "swall_s9"; dir = 2},/area/centcom/evac) -"gd" = (/turf/open/floor/plasteel/darkred/corner,/area/ctf) -"ge" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (NORTH)"; dir = 1},/area/ctf) -"gf" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (NORTH)"; dir = 1},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (EAST)"; dir = 4},/area/ctf) -"gg" = (/turf/closed/wall/shuttle{icon_state = "swall12"; dir = 2},/area/centcom/evac) -"gh" = (/turf/closed/wall/shuttle{icon_state = "swallc1"; dir = 2},/area/centcom/evac) -"gi" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/open/floor/plasteel/shuttle/red,/area/centcom/evac) -"gj" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/fancy/donut_box,/turf/open/floor/plasteel/shuttle/red,/area/centcom/evac) -"gk" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/open/floor/plasteel/shuttle/red,/area/centcom/evac) -"gl" = (/obj/structure/table/reinforced,/turf/open/floor/plasteel/shuttle/red,/area/centcom/evac) -"gm" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 8},/turf/open/floor/plasteel/shuttle,/area/centcom/evac) -"gn" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/shuttle,/area/centcom/evac) -"go" = (/turf/closed/wall/shuttle{icon_state = "swallc2"; dir = 2},/area/centcom/evac) -"gp" = (/turf/open/floor/plating/warnplate{dir = 4; luminosity = 2; initial_gas_mix = "o2=0.01;n2=0.01"},/area/ctf) -"gq" = (/obj/machinery/computer/secure_data,/turf/open/floor/plasteel/shuttle/red,/area/centcom/evac) -"gr" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/shuttle/red,/area/centcom/evac) -"gs" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/shuttle/red,/area/centcom/evac) -"gt" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/item/weapon/stamp,/turf/open/floor/plasteel/shuttle/red,/area/centcom/evac) -"gu" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (EAST)"; dir = 4},/area/ctf) -"gv" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (WEST)"; dir = 8},/area/ctf) -"gw" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (WEST)"; dir = 8},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (EAST)"; dir = 4},/area/ctf) -"gx" = (/obj/structure/table,/obj/item/weapon/gun/projectile/shotgun/automatic/dual_tube,/turf/open/floor/plasteel/shuttle/red,/area/centcom/evac) -"gy" = (/turf/open/floor/plasteel/shuttle/red,/area/centcom/evac) -"gz" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/shuttle,/area/centcom/evac) -"gA" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHWEST)"; dir = 10},/area/ctf) -"gB" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (EAST)"; dir = 4},/turf/open/floor/plasteel/warningline,/area/ctf) -"gC" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (NORTH)"; dir = 1},/turf/open/floor/plasteel/warningline,/area/ctf) -"gD" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (NORTH)"; dir = 1},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHEAST)"; dir = 6},/area/ctf) -"gE" = (/obj/structure/table,/obj/item/weapon/storage/box/handcuffs,/obj/item/device/assembly/flash/handheld,/turf/open/floor/plasteel/shuttle/red,/area/centcom/evac) -"gF" = (/obj/machinery/door/window/northright{base_state = "right"; dir = 4; icon_state = "right"; name = "Security Desk"; req_access_txt = "103"},/turf/open/floor/plasteel/shuttle/red,/area/centcom/evac) -"gG" = (/obj/docking_port/stationary{dir = 4; dwidth = 1; height = 4; id = "pod3_away"; name = "recovery ship"; width = 3},/turf/open/space,/area/space) -"gH" = (/obj/structure/bed,/turf/open/floor/plasteel/shuttle,/area/centcom/evac) -"gI" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/centcom/evac) -"gJ" = (/obj/machinery/door/airlock/shuttle,/turf/open/floor/plasteel/shuttle/yellow,/area/centcom/evac) -"gK" = (/obj/docking_port/stationary{dir = 4; dwidth = 1; height = 4; id = "pod4_away"; name = "recovery ship"; width = 3},/turf/open/space,/area/space) -"gL" = (/turf/closed/wall/shuttle{icon_state = "swall2"; dir = 2},/area/centcom/evac) -"gM" = (/obj/structure/table,/obj/structure/bedsheetbin,/turf/open/floor/plasteel/shuttle,/area/centcom/evac) -"gN" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/turf/open/floor/plasteel/shuttle,/area/centcom/evac) -"gO" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/open/floor/plasteel/shuttle,/area/centcom/evac) -"gP" = (/turf/closed/wall/shuttle{icon_state = "swall14"; dir = 2},/area/centcom/evac) -"gQ" = (/turf/closed/wall/shuttle{icon_state = "swallc4"; dir = 2},/area/centcom/evac) -"gR" = (/obj/machinery/door/airlock/shuttle{name = "Cockpit"; req_access_txt = "109"},/turf/open/floor/plasteel/shuttle/yellow,/area/centcom/evac) -"gS" = (/obj/structure/table,/obj/item/device/radio/off,/turf/open/floor/plasteel/shuttle,/area/centcom/evac) -"gT" = (/obj/structure/chair{dir = 4; name = "Prosecution"},/turf/open/floor/plasteel/shuttle,/area/centcom/evac) -"gU" = (/obj/structure/filingcabinet,/turf/open/floor/plasteel/shuttle,/area/centcom/evac) -"gV" = (/obj/structure/chair,/turf/open/floor/plasteel/shuttle,/area/centcom/evac) -"gW" = (/turf/closed/wall/shuttle/smooth,/area/shuttle/escape) -"gX" = (/obj/machinery/status_display,/turf/closed/wall/shuttle/smooth,/area/shuttle/escape) -"gY" = (/obj/structure/table,/obj/item/weapon/storage/lockbox,/turf/open/floor/plasteel/shuttle,/area/centcom/evac) -"gZ" = (/obj/structure/table,/turf/open/floor/plasteel/shuttle,/area/centcom/evac) -"ha" = (/obj/machinery/computer/shuttle,/turf/open/floor/plasteel/shuttle,/area/centcom/evac) -"hb" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/pen,/turf/open/floor/plasteel/shuttle,/area/centcom/evac) -"hc" = (/obj/structure/table,/obj/item/weapon/paper_bin,/turf/open/floor/plasteel/shuttle,/area/centcom/evac) -"hd" = (/turf/closed/indestructible/riveted,/area/centcom/ferry) -"he" = (/turf/open/floor/plasteel/shuttle/white,/area/shuttle/escape) -"hf" = (/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) -"hg" = (/turf/open/floor/plasteel/black,/area/centcom/ferry) -"hh" = (/turf/open/floor/plasteel/darkwarning{tag = "icon-warndark (EAST)"; dir = 4},/area/centcom/ferry) -"hi" = (/turf/open/floor/plasteel/delivery,/area/centcom/ferry) -"hj" = (/obj/machinery/door/airlock/external{name = "Backup Emergency Escape Shuttle"},/turf/open/floor/plasteel/delivery,/area/centcom/ferry) -"hk" = (/obj/machinery/door/airlock/shuttle,/obj/docking_port/stationary{dir = 4; dwidth = 3; height = 8; id = "backup_away"; name = "Backup Shuttle Dock"; width = 8},/obj/docking_port/mobile/emergency/backup{dwidth = 3},/turf/open/floor/plating,/area/shuttle/escape) -"hl" = (/obj/structure/chair/office/light{dir = 4},/turf/open/floor/plasteel/shuttle/white,/area/shuttle/escape) -"hm" = (/obj/structure/table/wood,/obj/item/weapon/paper{info = "Due to circumstances beyond our control, your Emergency Evacuation Shuttle is out of service.

We apologise for the inconvinience this may cause you.

Please enjoy the use of this complementary book.

Sincerely,
Centcom Operations Demolitions Examination Retribution Bugfixing Underlining Services"},/turf/open/floor/plasteel/shuttle/white,/area/shuttle/escape) -"hn" = (/obj/structure/table/wood,/obj/item/weapon/book/manual/random,/turf/open/floor/plasteel/shuttle/white,/area/shuttle/escape) -"ho" = (/turf/closed/indestructible/fakedoor,/area/centcom/ferry) -"hp" = (/obj/machinery/door/airlock/centcom{name = "Centcom Backup Docks"; opacity = 1; req_access_txt = "101"},/turf/open/floor/plasteel/black,/area/centcom/ferry) -"hq" = (/obj/machinery/vending/coffee,/turf/open/floor/plasteel/black,/area/centcom/ferry) -"hr" = (/obj/machinery/vending/cigarette{products = list(/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate = 7, /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2, /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/lighter/greyscale = 4, /obj/item/weapon/storage/fancy/rollingpapers = 5)},/turf/open/floor/plasteel/black,/area/centcom/ferry) -"hs" = (/obj/structure/reagent_dispensers/water_cooler,/turf/open/floor/plasteel/black,/area/centcom/ferry) -"ht" = (/obj/machinery/status_display{density = 0; pixel_y = 32; supply_display = 1},/turf/open/floor/plasteel/black,/area/centcom/ferry) -"hu" = (/obj/item/weapon/twohanded/required/kirbyplants,/obj/machinery/status_display{pixel_y = 32},/turf/open/floor/plasteel/black,/area/centcom/ferry) -"hv" = (/obj/structure/chair/office/dark,/obj/effect/landmark{name = "Emergencyresponseteam"},/turf/open/floor/plasteel/black,/area/centcom/ferry) -"hw" = (/obj/structure/table/reinforced,/turf/open/floor/vault,/area/centcom/ferry) -"hx" = (/obj/structure/chair/office/dark{dir = 8},/obj/effect/landmark{name = "Emergencyresponseteam"},/turf/open/floor/plasteel/black,/area/centcom/ferry) -"hy" = (/obj/structure/chair/office/dark{dir = 4},/obj/effect/landmark{name = "Emergencyresponseteam"},/turf/open/floor/plasteel/black,/area/centcom/ferry) -"hz" = (/obj/machinery/shuttle_manipulator,/turf/open/floor/plasteel/circuit,/area/centcom/ferry) -"hA" = (/turf/open/floor/plasteel/circuit,/area/centcom/ferry) -"hB" = (/obj/structure/extinguisher_cabinet{pixel_x = 28},/turf/open/floor/plasteel/black,/area/centcom/ferry) -"hC" = (/obj/structure/closet/secure_closet/ertCom,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) -"hD" = (/obj/structure/chair/office/dark,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) -"hE" = (/obj/structure/table/reinforced,/obj/item/weapon/c4,/obj/item/weapon/c4{pixel_x = 7},/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) -"hF" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/syringes,/obj/item/weapon/gun/syringe/rapidsyringe,/obj/structure/extinguisher_cabinet{pixel_y = 28},/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) -"hG" = (/obj/structure/closet/secure_closet/ertEngi,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) -"hH" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/drinks/bottle/rum,/obj/item/weapon/reagent_containers/food/drinks/bottle/tequila,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka{pixel_x = -5},/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey{pixel_x = 5},/turf/open/floor/plasteel/black,/area/centcom/ferry) -"hI" = (/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) -"hJ" = (/obj/machinery/door/poddoor/ert,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) -"hK" = (/obj/structure/chair/office/dark{dir = 1},/obj/effect/landmark{name = "Emergencyresponseteam"},/turf/open/floor/plasteel/black,/area/centcom/ferry) -"hL" = (/obj/structure/table/wood,/obj/item/weapon/storage/box/drinkingglasses,/turf/open/floor/plasteel/black,/area/centcom/ferry) -"hM" = (/turf/closed/indestructible/riveted,/area/centcom/prison) -"hN" = (/turf/open/floor/plasteel/darkgreen/side{dir = 4},/area/centcom/ferry) -"hO" = (/obj/machinery/door/poddoor/shutters/preopen{id = "adminshut"; name = "Administrative Shutters"},/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/centcom/ferry) -"hP" = (/turf/open/floor/wood,/area/centcom/ferry) -"hQ" = (/obj/effect/landmark{name = "prisonwarp"},/turf/open/floor/plasteel,/area/centcom/prison) -"hR" = (/obj/structure/closet/secure_closet/ertSec,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) -"hS" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/emps,/obj/item/weapon/gun/energy/ionrifle{pin = /obj/item/device/firing_pin},/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) -"hT" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/syringes,/obj/item/weapon/gun/syringe/rapidsyringe,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) -"hU" = (/obj/structure/closet/secure_closet/ertMed,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) -"hV" = (/obj/structure/table/reinforced,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/turf/open/floor/vault,/area/centcom/ferry) -"hW" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 5},/obj/item/weapon/pen/blue,/turf/open/floor/vault,/area/centcom/ferry) -"hX" = (/obj/machinery/door/airlock/centcom{name = "Administrative Office"; opacity = 1; req_access_txt = "109"},/turf/open/floor/wood,/area/centcom/ferry) -"hY" = (/obj/structure/chair/office/dark,/turf/open/floor/wood,/area/centcom/ferry) -"hZ" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 8},/area/centcom/ferry) -"ia" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/centcom/ferry) -"ib" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 4},/area/centcom/ferry) -"ic" = (/obj/machinery/door/airlock/centcom{name = "briefing room"; opacity = 1; req_access_txt = "101"},/turf/open/floor/plasteel/black,/area/centcom/ferry) -"id" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin,/turf/open/floor/carpet,/area/centcom/ferry) -"ie" = (/obj/structure/table/wood,/obj/item/weapon/pen,/turf/open/floor/carpet,/area/centcom/ferry) -"if" = (/turf/open/floor/carpet,/area/centcom/ferry) -"ig" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/ferry) -"ih" = (/obj/machinery/door/poddoor/shutters/preopen{id = "adminshut"; name = "Administrative Shutters"},/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/ferry) -"ii" = (/obj/machinery/button/door{id = "adminshut"; name = "Administrative Shutter-Control"; pixel_y = 26},/turf/open/floor/carpet,/area/centcom/ferry) -"ij" = (/obj/structure/chair/comfy/black{dir = 1},/turf/open/floor/carpet,/area/centcom/ferry) -"ik" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 9},/area/centcom/ferry) -"il" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 6},/area/centcom/ferry) -"im" = (/obj/machinery/door/poddoor/shutters/preopen{id = "adminshut"; name = "Administrative Shutters"},/turf/closed/indestructible/fakeglass,/area/centcom/ferry) -"in" = (/obj/structure/showcase/fakesec,/turf/open/floor/carpet,/area/centcom/ferry) -"io" = (/obj/structure/filingcabinet,/turf/open/floor/carpet,/area/centcom/ferry) -"ip" = (/obj/structure/reagent_dispensers/water_cooler,/turf/open/floor/carpet,/area/centcom/ferry) -"iq" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 8},/area/centcom/ferry) -"ir" = (/obj/machinery/computer/shuttle/ferry,/turf/open/floor/plasteel/darkwarning{dir = 8},/area/centcom/ferry) -"is" = (/turf/closed/indestructible/riveted,/area/centcom/evac) -"it" = (/obj/docking_port/stationary{dir = 8; dwidth = 2; height = 12; id = "ferry_away"; name = "unknown"; width = 5},/turf/open/space,/area/space) -"iu" = (/obj/machinery/door/airlock/external{name = "Ferry Airlock"; req_access_txt = "0"},/turf/open/floor/plasteel/delivery,/area/centcom/ferry) -"iv" = (/turf/open/floor/plasteel/darkwarning{dir = 8},/area/centcom/ferry) -"iw" = (/turf/open/floor/plasteel/darkgreen/corner{dir = 4},/area/centcom/ferry) -"ix" = (/obj/structure/mirror{pixel_y = 32},/obj/structure/dresser,/turf/open/floor/wood,/area/centcom/ferry) -"iy" = (/obj/machinery/vending/autodrobe,/turf/open/floor/wood,/area/centcom/ferry) -"iz" = (/turf/open/floor/plasteel/darkred/side{dir = 9},/area/centcom/evac) -"iA" = (/turf/open/floor/plasteel/darkred/side{dir = 1},/area/centcom/evac) -"iB" = (/obj/structure/table,/obj/item/weapon/storage/box/handcuffs,/turf/open/floor/plasteel/darkred/side{dir = 5},/area/centcom/evac) -"iC" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 5},/area/centcom/ferry) -"iD" = (/obj/machinery/door/airlock/centcom{name = "Dressing Room"; opacity = 1; req_access_txt = "0"},/turf/open/floor/wood,/area/centcom/ferry) -"iE" = (/obj/machinery/vending/clothing,/turf/open/floor/wood,/area/centcom/ferry) -"iF" = (/turf/closed/indestructible/fakedoor{name = "Centcom Security"},/area/centcom/evac) -"iG" = (/turf/open/floor/plasteel/black,/area/centcom/evac) -"iH" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 10},/area/centcom/ferry) -"iI" = (/turf/open/floor/plasteel/darkgreen/corner,/area/centcom/ferry) -"iJ" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin{pixel_y = 4},/obj/item/weapon/pen,/turf/open/floor/wood,/area/centcom/ferry) -"iK" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/turf/open/floor/plasteel/darkred/side{dir = 8},/area/centcom/evac) -"iL" = (/obj/structure/chair/office/dark,/turf/open/floor/plasteel/black,/area/centcom/evac) -"iM" = (/obj/structure/showcase/fakesec,/turf/open/floor/plasteel/black,/area/centcom/evac) -"iN" = (/turf/closed/indestructible/fakeglass,/area/centcom/ferry) -"iO" = (/obj/structure/chair/comfy/black{dir = 4},/turf/open/floor/wood,/area/centcom/ferry) -"iP" = (/obj/structure/table/wood,/turf/open/floor/wood,/area/centcom/ferry) -"iQ" = (/obj/machinery/door/window/northleft{dir = 2; name = "Centcom Security"; req_access_txt = "101"},/turf/open/floor/plasteel/black,/area/centcom/evac) -"iR" = (/obj/structure/table/reinforced,/turf/open/floor/plasteel/darkred/side{dir = 10},/area/centcom/evac) -"iS" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/open/floor/plasteel/darkred/side{dir = 2},/area/centcom/evac) -"iT" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/open/floor/plasteel/darkred/side{dir = 2},/area/centcom/evac) -"iU" = (/obj/machinery/door/airlock/centcom{name = "Transport Shuttle"; opacity = 1; req_access_txt = "101"},/turf/open/floor/plasteel/darkgreen/side{dir = 2},/area/centcom/ferry) -"iV" = (/turf/closed/indestructible/riveted,/area/centcom/control) -"iW" = (/obj/structure/flora/ausbushes/brflowers,/turf/open/floor/grass,/area/centcom/control) -"iX" = (/obj/structure/flora/ausbushes/palebush,/turf/open/floor/grass,/area/centcom/control) -"iY" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/control) -"iZ" = (/turf/open/floor/plasteel/green/side{dir = 1},/area/centcom/control) -"ja" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 9},/area/centcom/evac) -"jb" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/centcom/evac) -"jc" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 4},/area/centcom/evac) -"jd" = (/obj/machinery/door/airlock/centcom{name = "Centcom Security"; opacity = 1; req_access_txt = "0"},/turf/open/floor/plasteel/black,/area/centcom/evac) -"je" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/centcom/evac) -"jf" = (/turf/closed/indestructible/fakeglass,/area/centcom/control) -"jg" = (/turf/open/floor/plasteel,/area/centcom/control) -"jh" = (/obj/item/weapon/twohanded/required/kirbyplants,/turf/open/floor/plasteel/red/side{dir = 9},/area/centcom/evac) -"ji" = (/obj/structure/chair,/turf/open/floor/plasteel/red/side{dir = 1},/area/centcom/evac) -"jj" = (/turf/open/floor/plasteel/red/side{dir = 1},/area/centcom/evac) -"jk" = (/obj/structure/rack,/obj/item/weapon/gun/projectile/shotgun/toy/crossbow,/obj/item/toy/foamblade,/turf/open/floor/plasteel/red/side{dir = 1},/area/centcom/evac) -"jl" = (/obj/structure/rack,/obj/item/weapon/storage/crayons,/obj/item/toy/sword,/turf/open/floor/plasteel/red/side{dir = 1},/area/centcom/evac) -"jm" = (/turf/closed/indestructible/fakeglass,/area/centcom/evac) -"jn" = (/turf/open/floor/plasteel/yellowsiding{dir = 8},/area/centcom/evac) -"jo" = (/turf/open/floor/plasteel,/area/centcom/evac) -"jp" = (/turf/open/floor/plasteel/warning{dir = 4},/area/centcom/evac) -"jq" = (/obj/machinery/door/poddoor/shuttledock{name = "blast doorend"},/turf/open/floor/engine,/area/centcom/evac) -"jr" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/centcom/control) -"js" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/red/side{dir = 8},/area/centcom/evac) -"jt" = (/obj/structure/chair/office/dark,/turf/open/floor/plasteel,/area/centcom/evac) -"ju" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/gun/energy/gun/mini,/turf/open/floor/plasteel/red/side{dir = 4},/area/centcom/evac) -"jv" = (/obj/machinery/door/poddoor/shuttledock,/turf/open/floor/engine,/area/centcom/evac) -"jw" = (/turf/open/floor/grass,/area/centcom/control) -"jx" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/green/side{dir = 8},/area/centcom/control) -"jy" = (/turf/open/floor/plasteel/warning{dir = 4},/area/centcom/control) -"jz" = (/obj/machinery/door/airlock/centcom{name = "Centcom Customs"; opacity = 1; req_access_txt = "109"},/turf/open/floor/plasteel/black,/area/centcom/control) -"jA" = (/turf/open/floor/plasteel/black,/area/centcom/control) -"jB" = (/obj/structure/table,/turf/open/floor/plasteel/black,/area/centcom/control) -"jC" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/open/floor/plasteel/red/side{dir = 2},/area/centcom/evac) -"jD" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/open/floor/plasteel/red/side{dir = 2},/area/centcom/evac) -"jE" = (/obj/structure/table/reinforced,/obj/item/toy/carpplushie,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/red/side{dir = 6},/area/centcom/evac) -"jF" = (/turf/closed/indestructible/riveted,/area/centcom/supply) -"jG" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/centcom/control) -"jH" = (/turf/open/floor/plasteel/green/corner,/area/centcom/control) -"jI" = (/obj/structure/table,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/turf/open/floor/plasteel/black,/area/centcom/control) -"jJ" = (/turf/open/floor/plasteel/yellowsiding{dir = 1},/area/centcom/evac) -"jK" = (/turf/open/floor/plasteel/yellowsiding/corner{dir = 1},/area/centcom/evac) -"jL" = (/obj/docking_port/stationary{dir = 4; dwidth = 25; height = 50; id = "emergency_away"; name = "Centcom Emergency Shuttle Dock"; width = 50},/turf/open/space,/area/space) -"jM" = (/turf/closed/indestructible/rock/snow,/area/syndicate_mothership) -"jN" = (/obj/structure/closet,/turf/open/floor/plasteel/warning/corner{dir = 1},/area/centcom/supply) -"jO" = (/obj/structure/closet/wardrobe/cargotech,/turf/open/floor/plasteel/loadingarea,/area/centcom/supply) -"jP" = (/obj/structure/closet/secure_closet/quartermaster,/turf/open/floor/plasteel/loadingarea,/area/centcom/supply) -"jQ" = (/obj/structure/closet,/turf/open/floor/plasteel,/area/centcom/supply) -"jR" = (/turf/open/floor/plasteel/green/side{dir = 4},/area/centcom/control) -"jS" = (/obj/machinery/button/door{desc = "A remote control switch for port-side blast doors."; icon_state = "doorctrl0"; id = "CentComPort"; name = "Security Doors"; pixel_y = 28; req_access_txt = "101"},/obj/structure/showcase/fakeid,/turf/open/floor/plasteel/black,/area/centcom/control) -"jT" = (/obj/structure/chair/office/dark{dir = 8},/turf/open/floor/plasteel/black,/area/centcom/control) -"jU" = (/obj/structure/table,/obj/item/weapon/stamp{pixel_x = -3; pixel_y = 3},/obj/item/weapon/stamp/denied{pixel_x = 4; pixel_y = -2},/obj/item/weapon/paper/centcom,/turf/open/floor/plasteel/black,/area/centcom/control) -"jV" = (/turf/open/floor/plasteel/red/corner{dir = 1},/area/centcom/evac) -"jW" = (/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) -"jX" = (/obj/structure/flora/grass/brown,/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) -"jY" = (/obj/structure/flora/tree/pine,/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) -"jZ" = (/obj/structure/flora/grass/both,/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) -"ka" = (/obj/item/weapon/disk/data,/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) -"kb" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/centcom/supply) -"kc" = (/turf/open/floor/plasteel/warning{dir = 8},/area/centcom/supply) -"kd" = (/turf/open/floor/plasteel,/area/centcom/supply) -"ke" = (/turf/open/floor/plasteel/green/corner{dir = 1},/area/centcom/control) -"kf" = (/turf/open/floor/plasteel/green/corner{dir = 4},/area/centcom/control) -"kg" = (/obj/structure/table/reinforced,/obj/machinery/door/window/brigdoor{base_state = "rightsecure"; dir = 1; icon_state = "rightsecure"; name = "Centcom Customs"; req_access_txt = "109"},/turf/open/floor/plasteel/black,/area/centcom/control) -"kh" = (/turf/open/floor/plasteel/warning/corner{dir = 1},/area/centcom/evac) -"ki" = (/obj/item/toy/figure/syndie,/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) -"kj" = (/obj/machinery/door/airlock/external{name = "Supply Shuttle"; req_access_txt = "106"},/turf/open/floor/plasteel/delivery,/area/centcom/supply) -"kk" = (/obj/machinery/door/airlock/centcom{name = "Centcom Supply"; req_access_txt = "106"},/turf/open/floor/plasteel/brown{dir = 4},/area/centcom/supply) -"kl" = (/turf/open/floor/plasteel/brown{dir = 8},/area/centcom/control) -"km" = (/obj/machinery/door/airlock/centcom{name = "Centcom Docks"; opacity = 1; req_access_txt = "101"},/turf/open/floor/plasteel/black,/area/centcom/control) -"kn" = (/obj/machinery/door/poddoor/preopen{id = "CentComPort"; name = "security door"},/turf/open/floor/plasteel/loadingarea{dir = 8},/area/centcom/control) -"ko" = (/turf/open/floor/plasteel/warning{dir = 8},/area/centcom/evac) -"kp" = (/obj/structure/flora/bush,/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) -"kq" = (/obj/machinery/computer/cargo,/turf/open/floor/plasteel/warning{dir = 8},/area/centcom/supply) -"kr" = (/turf/open/floor/plasteel/green/corner{dir = 8},/area/centcom/control) -"ks" = (/turf/open/floor/plasteel/warning/corner{dir = 4},/area/centcom/evac) -"kt" = (/obj/docking_port/stationary{dir = 8; dwidth = 5; height = 7; id = "supply_away"; name = "Centcom"; width = 12},/turf/open/space,/area/space) -"ku" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/green/side{dir = 4},/area/centcom/control) -"kv" = (/turf/open/floor/plasteel/green/corner{dir = 8},/area/centcom/evac) -"kw" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/supply) -"kx" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/green/side{dir = 8},/area/centcom/evac) -"ky" = (/turf/open/floor/plasteel/yellowsiding,/area/centcom/evac) -"kz" = (/turf/open/floor/plasteel/yellowsiding/corner{dir = 8},/area/centcom/evac) -"kA" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/centcom/supply) -"kB" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/green/side{dir = 10},/area/centcom/control) -"kC" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/green/side{dir = 6},/area/centcom/control) -"kD" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/open/floor/plasteel/green/side{dir = 1},/area/centcom/evac) -"kE" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/open/floor/plasteel/green/side{dir = 1},/area/centcom/evac) -"kF" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/gun/medbeam,/turf/open/floor/plasteel/green/side{dir = 5},/area/centcom/evac) -"kG" = (/obj/machinery/door/poddoor/shuttledock{name = "blast door3"},/turf/open/floor/engine,/area/centcom/evac) -"kH" = (/turf/open/floor/plating/asteroid/snow,/area/space) -"kI" = (/turf/closed/indestructible/fakeglass,/area/centcom/supply) -"kJ" = (/turf/closed/indestructible/riveted,/area/tdome/tdomeobserve) -"kK" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 8},/area/tdome/tdomeobserve) -"kL" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 4},/area/tdome/tdomeobserve) -"kM" = (/obj/machinery/door/airlock/centcom{name = "Thunderdome"; opacity = 1; req_access_txt = "101"},/turf/open/floor/plasteel,/area/tdome/tdomeobserve) -"kN" = (/obj/structure/chair/office/dark{dir = 1},/turf/open/floor/plasteel,/area/centcom/evac) -"kO" = (/obj/structure/table/reinforced,/obj/item/toy/talking/AI,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/green/side{dir = 4},/area/centcom/evac) -"kP" = (/obj/machinery/door/poddoor/shuttledock{name = "blast door2"},/turf/open/floor/engine,/area/centcom/evac) -"kQ" = (/turf/closed/indestructible/riveted,/area/syndicate_mothership) -"kR" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 8},/area/syndicate_mothership) -"kS" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 4},/area/syndicate_mothership) -"kT" = (/obj/structure/table,/obj/item/weapon/paper_bin,/turf/open/floor/plasteel/warning/corner{dir = 4},/area/centcom/supply) -"kU" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/coin/silver,/turf/open/floor/plasteel,/area/centcom/supply) -"kV" = (/obj/structure/table,/obj/item/weapon/pen/blue{pixel_x = 4; pixel_y = 4},/obj/item/weapon/pen/red,/obj/item/weapon/pen{pixel_x = 8; pixel_y = 8},/turf/open/floor/plasteel,/area/centcom/supply) -"kW" = (/obj/structure/table,/turf/open/floor/plasteel/red/side{dir = 9},/area/tdome/tdomeobserve) -"kX" = (/turf/open/floor/plasteel/red/side{dir = 1},/area/tdome/tdomeobserve) -"kY" = (/obj/structure/table,/turf/open/floor/plasteel/red/side{dir = 1},/area/tdome/tdomeobserve) -"kZ" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/neutral/side{dir = 8},/area/tdome/tdomeobserve) -"la" = (/turf/open/floor/plasteel,/area/tdome/tdomeobserve) -"lb" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/neutral/side{dir = 4},/area/tdome/tdomeobserve) -"lc" = (/obj/structure/table,/turf/open/floor/plasteel/green/side{dir = 1},/area/tdome/tdomeobserve) -"ld" = (/turf/open/floor/plasteel/green/side{dir = 1},/area/tdome/tdomeobserve) -"le" = (/obj/structure/table,/turf/open/floor/plasteel/green/side{dir = 5},/area/tdome/tdomeobserve) -"lf" = (/obj/item/weapon/twohanded/required/kirbyplants,/turf/open/floor/plasteel/green/side{dir = 10},/area/centcom/evac) -"lg" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/green/side,/area/centcom/evac) -"lh" = (/turf/open/floor/plasteel/green/side,/area/centcom/evac) -"li" = (/obj/structure/rack,/obj/item/weapon/gun/projectile/shotgun/toy/crossbow,/obj/item/toy/katana,/turf/open/floor/plasteel/green/side,/area/centcom/evac) -"lj" = (/obj/structure/rack,/obj/item/weapon/storage/crayons,/obj/item/toy/sword,/turf/open/floor/plasteel/green/side,/area/centcom/evac) -"lk" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/evac) -"ll" = (/obj/machinery/door/poddoor/shuttledock{name = "blast door1"},/turf/open/floor/engine,/area/centcom/evac) -"lm" = (/turf/closed/indestructible/fakeglass{color = "#008000"; dir = 9; icon_state = "fakewindows"},/area/space) -"ln" = (/turf/closed/indestructible/fakeglass{color = "#008000"; dir = 8; icon_state = "fakewindows2"},/area/wizard_station) -"lo" = (/turf/closed/indestructible/fakeglass{color = "#008000"; dir = 5; icon_state = "fakewindows"},/area/space) -"lp" = (/obj/item/weapon/storage/crayons,/obj/structure/table,/obj/item/weapon/storage/crayons,/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) -"lq" = (/obj/machinery/washing_machine,/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) -"lr" = (/obj/machinery/door/airlock/centcom{name = "Crate Storage"; req_access_txt = "106"},/turf/open/floor/plasteel/delivery,/area/centcom/supply) -"ls" = (/obj/structure/closet/secure_closet/bar,/turf/open/floor/plasteel/red/side{dir = 8},/area/tdome/tdomeobserve) -"lt" = (/obj/structure/table,/turf/open/floor/plasteel,/area/tdome/tdomeobserve) -"lu" = (/obj/structure/closet/secure_closet/freezer/kitchen,/turf/open/floor/plasteel/green/side{dir = 4},/area/tdome/tdomeobserve) -"lv" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 10},/area/centcom/evac) -"lw" = (/obj/machinery/door/airlock/centcom{name = "Centcom"; opacity = 1; req_access_txt = "0"},/turf/open/floor/plasteel/black,/area/centcom/evac) -"lx" = (/turf/closed/indestructible/fakeglass{color = "#008000"; dir = 1; icon_state = "fakewindows2"},/area/wizard_station) -"ly" = (/turf/open/floor/engine/cult,/area/wizard_station) -"lz" = (/obj/machinery/computer/shuttle/fluff,/turf/open/floor/engine/cult,/area/wizard_station) -"lA" = (/obj/machinery/computer/shuttle/syndicate/recall,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) -"lB" = (/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) -"lC" = (/obj/machinery/vending/coffee,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) -"lD" = (/obj/machinery/vending/cola,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) -"lE" = (/obj/machinery/vending/cigarette{products = list(/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate = 7, /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2, /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/lighter/greyscale = 4, /obj/item/weapon/storage/fancy/rollingpapers = 5)},/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) -"lF" = (/obj/structure/urinal{pixel_y = 28},/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) -"lG" = (/obj/item/weapon/soap/syndie,/obj/structure/mopbucket,/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) -"lH" = (/obj/structure/mirror{pixel_x = 28},/obj/item/weapon/mop,/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) -"lI" = (/obj/structure/closet/crate,/turf/open/floor/plasteel,/area/centcom/supply) -"lJ" = (/obj/structure/table,/obj/item/weapon/storage/box/drinkingglasses,/turf/open/floor/plasteel/red/side{dir = 8},/area/tdome/tdomeobserve) -"lK" = (/obj/structure/table,/turf/open/floor/plasteel/green/side{dir = 4},/area/tdome/tdomeobserve) -"lL" = (/turf/closed/indestructible/fakeglass{color = "#008000"},/area/wizard_station) -"lM" = (/obj/item/weapon/paper{info = "GET DAT FUKKEN DISK"; name = "memo"},/obj/structure/noticeboard{pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) -"lN" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) -"lO" = (/mob/living/simple_animal/hostile/carp/cayenne,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) -"lP" = (/obj/machinery/door/airlock/centcom{name = "Restroom"; opacity = 1; req_access_txt = "150"},/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) -"lQ" = (/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) -"lR" = (/obj/structure/mirror{pixel_x = 28},/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) -"lS" = (/turf/open/floor/plasteel/red/side{dir = 8},/area/tdome/tdomeobserve) -"lT" = (/obj/structure/closet/secure_closet/freezer/fridge,/turf/open/floor/plasteel/green/side{dir = 4},/area/tdome/tdomeobserve) -"lU" = (/obj/structure/table/reinforced,/turf/open/floor/plasteel/green/side{dir = 9},/area/centcom/evac) -"lV" = (/turf/closed/indestructible/riveted/uranium,/area/wizard_station) -"lW" = (/obj/structure/showcase{desc = "A strange machine supposedly from another world. The Wizard Federation has been meddling with it for years."; icon = 'icons/obj/machines/telecomms.dmi'; icon_state = "processor"; name = "byond random number generator"},/turf/open/floor/engine/cult,/area/wizard_station) -"lX" = (/obj/structure/showcase{desc = "A historical figure of great importance to the wizard federation. He spent his long life learning magic, stealing artifacts, and harassing idiots with swords. May he rest forever, Rodney."; icon = 'icons/mob/mob.dmi'; icon_state = "nim"; name = "wizard of yendor showcase"},/turf/open/floor/engine/cult,/area/wizard_station) -"lY" = (/obj/structure/table/wood,/obj/item/device/paicard,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) -"lZ" = (/obj/structure/table/wood,/obj/item/pizzabox,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) -"ma" = (/obj/structure/chair/stool,/obj/effect/landmark{name = "Syndicate-Spawn"},/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) -"mb" = (/obj/machinery/computer/telecrystals/uplinker,/turf/open/floor/plasteel/podhatch{dir = 9},/area/syndicate_mothership) -"mc" = (/obj/structure/toilet{icon_state = "toilet00"; dir = 8},/obj/structure/window/reinforced/tinted{tag = "icon-rwindow (NORTH)"; icon_state = "rwindow"; dir = 1},/obj/machinery/door/window{tag = "icon-right (WEST)"; name = "Tactical Toilet"; icon_state = "right"; dir = 8; opacity = 1},/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) -"md" = (/turf/open/floor/plating/airless,/area/syndicate_mothership) -"me" = (/turf/open/floor/plating/airless/warnplate{dir = 2},/area/syndicate_mothership) -"mf" = (/turf/open/floor/plasteel/red/side{dir = 10},/area/tdome/tdomeobserve) -"mg" = (/turf/open/floor/plasteel/red/side{dir = 2},/area/tdome/tdomeobserve) -"mh" = (/turf/open/floor/plasteel/neutral/side{dir = 8},/area/tdome/tdomeobserve) -"mi" = (/turf/open/floor/plasteel/neutral/side{dir = 4},/area/tdome/tdomeobserve) -"mj" = (/turf/open/floor/plasteel/green/side,/area/tdome/tdomeobserve) -"mk" = (/turf/open/floor/plasteel/green/side{dir = 6},/area/tdome/tdomeobserve) -"ml" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/turf/open/floor/plasteel/green/side{dir = 8},/area/centcom/evac) -"mm" = (/obj/structure/filingcabinet/filingcabinet,/turf/open/floor/plasteel,/area/centcom/evac) -"mn" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Bridge"},/turf/open/floor/engine/cult,/area/wizard_station) -"mo" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 9},/area/syndicate_mothership) -"mp" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/syndicate_mothership) -"mq" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/snacks/pizzaslice/mushroom,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) -"mr" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/drinks/beer{pixel_x = 5; pixel_y = -2},/obj/item/toy/cards/deck/syndicate{icon_state = "deck_syndicate_full"; pixel_x = -6; pixel_y = 6},/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) -"ms" = (/obj/machinery/computer/telecrystals/uplinker,/turf/open/floor/plasteel/podhatch{dir = 8},/area/syndicate_mothership) -"mt" = (/obj/structure/closet/cardboard,/turf/open/floor/plating/airless,/area/syndicate_mothership) -"mu" = (/turf/open/floor/plating/airless/warnplate{dir = 6},/area/syndicate_mothership) -"mv" = (/turf/open/space,/obj/machinery/porta_turret/syndicate/pod,/turf/closed/wall/shuttle{tag = "icon-wall3 (NORTHWEST)"; icon_state = "wall3"; dir = 9},/area/shuttle/assault_pod) -"mw" = (/turf/closed/wall/shuttle{tag = "icon-wall3"; icon_state = "wall3"; dir = 2},/area/shuttle/assault_pod) -"mx" = (/obj/machinery/door/airlock/centcom{name = "Assault Pod"; opacity = 1; req_access_txt = "150"},/turf/open/floor/plating,/area/shuttle/assault_pod) -"my" = (/turf/open/space,/obj/machinery/porta_turret/syndicate/pod,/turf/closed/wall/shuttle{tag = "icon-wall3 (NORTHEAST)"; icon_state = "wall3"; dir = 5},/area/shuttle/assault_pod) -"mz" = (/turf/open/floor/plating/airless/warnplate{dir = 10},/area/syndicate_mothership) -"mA" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/tdome/tdomeobserve) -"mB" = (/turf/closed/indestructible/fakedoor{name = "Centcom"},/area/centcom/evac) -"mC" = (/turf/open/floor/carpet/carpetsymbol2,/area/wizard_station) -"mD" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/syndicate_mothership) -"mE" = (/turf/open/floor/plating,/area/syndicate_mothership) -"mF" = (/obj/machinery/door/poddoor/shutters{id = "nukeop_ready"; name = "shuttle dock"},/turf/open/floor/plating,/area/syndicate_mothership) -"mG" = (/turf/open/floor/plating/airless/warnplate{dir = 4},/area/syndicate_mothership) -"mH" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/assault_pod) -"mI" = (/turf/open/floor/plasteel/shuttle/red,/area/shuttle/assault_pod) -"mJ" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/assault_pod) -"mK" = (/turf/open/floor/plating/airless/warnplate{dir = 8},/area/syndicate_mothership) -"mL" = (/turf/open/floor/grass,/area/tdome/tdomeobserve) -"mM" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/tdome/tdomeobserve) -"mN" = (/turf/open/floor/plasteel/green/side{dir = 10},/area/centcom/evac) -"mO" = (/turf/open/floor/plasteel/green/side{dir = 6},/area/centcom/evac) -"mP" = (/obj/machinery/vending/magivend,/turf/open/floor/engine/cult,/area/wizard_station) -"mQ" = (/obj/machinery/vending/snack,/turf/open/floor/engine/cult,/area/wizard_station) -"mR" = (/turf/closed/indestructible/fakeglass,/area/syndicate_mothership) -"mS" = (/obj/machinery/door/airlock/external{req_access_txt = "150"},/turf/open/floor/plating,/area/syndicate_mothership) -"mT" = (/obj/machinery/button/door{id = "nukeop_ready"; name = "mission launch control"; pixel_x = -26; pixel_y = 0; req_access_txt = "151"},/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) -"mU" = (/obj/machinery/computer/telecrystals/uplinker,/turf/open/floor/plasteel/podhatch{dir = 10},/area/syndicate_mothership) -"mV" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/assault_pod) -"mW" = (/obj/docking_port/stationary{area_type = /area/syndicate_mothership; dheight = 9; dir = 2; dwidth = 5; height = 24; id = "syndicate_away"; name = "syndicate recon outpost"; turf_type = /turf/open/floor/plating/asteroid/snow; width = 18},/turf/open/floor/plating/asteroid/snow,/area/space) -"mX" = (/obj/item/weapon/storage/box/drinkingglasses,/obj/item/weapon/reagent_containers/food/drinks/bottle/rum,/obj/structure/table/wood,/turf/open/floor/wood,/area/syndicate_mothership) -"mY" = (/obj/structure/table/wood,/turf/open/floor/wood,/area/syndicate_mothership) -"mZ" = (/obj/structure/table/wood,/obj/item/device/syndicatedetonator{desc = "This gaudy button can be used to instantly detonate syndicate bombs that have been activated on the station. It is also fun to press."},/turf/open/floor/wood,/area/syndicate_mothership) -"na" = (/obj/structure/table/wood,/obj/item/toy/nuke,/turf/open/floor/wood,/area/syndicate_mothership) -"nb" = (/obj/machinery/door/airlock/centcom{aiControlDisabled = 1; name = "Assault Pod"; opacity = 1; req_access_txt = "150"},/turf/open/floor/plating,/area/shuttle/assault_pod) -"nc" = (/obj/machinery/computer/shuttle/syndicate/drop_pod,/turf/closed/wall/shuttle{tag = "icon-wall3"; icon_state = "wall3"; dir = 2},/area/shuttle/assault_pod) -"nd" = (/turf/open/floor/plasteel/redblue,/area/tdome/tdomeobserve) -"ne" = (/obj/structure/chair,/obj/effect/landmark{name = "tdomeobserve"},/turf/open/floor/plasteel/redblue,/area/tdome/tdomeobserve) -"nf" = (/obj/structure/bookcase,/turf/open/floor/carpet/carpetsymbol2,/area/wizard_station) -"ng" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'FOURTH WALL'."; name = "\improper FOURTH WALL"; pixel_x = -32},/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) -"nh" = (/turf/open/floor/wood,/area/syndicate_mothership) -"ni" = (/obj/effect/landmark{name = "Syndicate-Spawn"},/turf/open/floor/wood,/area/syndicate_mothership) -"nj" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Uplink Management Control"; req_access_txt = "151"},/turf/open/floor/wood,/area/syndicate_mothership) -"nk" = (/obj/structure/chair,/turf/open/floor/plasteel/shuttle/red,/area/shuttle/assault_pod) -"nl" = (/turf/closed/indestructible/fakedoor{name = "Thunderdome"},/area/tdome/tdomeobserve) -"nm" = (/obj/machinery/computer/security/telescreen,/turf/open/floor/plasteel/redblue,/area/tdome/tdomeobserve) -"nn" = (/turf/closed/indestructible/fakeglass{color = "#008000"; dir = 1; icon_state = "fakewindows"},/area/wizard_station) -"no" = (/turf/closed/indestructible/fakeglass{color = "#008000"; dir = 6; icon_state = "fakewindows2"},/area/wizard_station) -"np" = (/obj/structure/cult/pylon,/turf/open/floor/engine/cult,/area/wizard_station) -"nq" = (/obj/effect/mob_spawn/human/corpse/russian/ranged/officer,/obj/structure/chair/wood/wings,/obj/effect/decal/cleanable/blood,/turf/open/floor/engine/cult,/area/wizard_station) -"nr" = (/obj/machinery/computer/telecrystals/boss,/turf/open/floor/plasteel/podhatch{dir = 5},/area/syndicate_mothership) -"ns" = (/obj/structure/sign/map/left{pixel_y = -32},/obj/structure/rack{icon = 'icons/obj/stationobjs.dmi'; icon_state = "minibar_left"; name = "skeletal minibar"},/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka,/turf/open/floor/wood,/area/syndicate_mothership) -"nt" = (/obj/structure/sign/map/right{pixel_y = -32},/obj/structure/rack{icon = 'icons/obj/stationobjs.dmi'; icon_state = "minibar_right"; name = "skeletal minibar"},/obj/item/weapon/reagent_containers/food/drinks/bottle/gin,/turf/open/floor/wood,/area/syndicate_mothership) -"nu" = (/obj/machinery/door/airlock/centcom{name = "Equipment Room"; opacity = 1; req_access_txt = "150"},/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) -"nv" = (/turf/open/space,/obj/machinery/porta_turret/syndicate/pod,/turf/closed/wall/shuttle{tag = "icon-wall3 (SOUTHWEST)"; icon_state = "wall3"; dir = 10},/area/shuttle/assault_pod) -"nw" = (/turf/open/space,/obj/machinery/porta_turret/syndicate/pod,/turf/closed/wall/shuttle{tag = "icon-wall3 (SOUTHEAST)"; icon_state = "wall3"; dir = 6},/area/shuttle/assault_pod) -"nx" = (/obj/structure/chair/wood/wings{tag = "icon-wooden_chair_wings (EAST)"; icon_state = "wooden_chair_wings"; dir = 4},/turf/open/floor/carpet/carpetsymbol2,/area/wizard_station) -"ny" = (/obj/structure/cult/tome,/turf/open/floor/carpet/carpetsymbol2,/area/wizard_station) -"nz" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Break Room"},/turf/open/floor/engine/cult,/area/wizard_station) -"nA" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Tabletop Room"},/turf/open/floor/engine/cult,/area/wizard_station) -"nB" = (/obj/structure/chair/wood/wings{tag = "icon-wooden_chair_wings (EAST)"; icon_state = "wooden_chair_wings"; dir = 4},/turf/open/floor/engine/cult,/area/wizard_station) -"nC" = (/obj/structure/table/wood/poker,/obj/item/weapon/dice/d20,/turf/open/floor/engine/cult,/area/wizard_station) -"nD" = (/obj/structure/chair/wood/wings{tag = "icon-wooden_chair_wings (WEST)"; icon_state = "wooden_chair_wings"; dir = 8},/turf/open/floor/engine/cult,/area/wizard_station) -"nE" = (/turf/open/floor/plasteel/black,/area/syndicate_mothership) -"nF" = (/obj/machinery/mech_bay_recharge_port,/turf/open/floor/plating,/area/syndicate_mothership) -"nG" = (/turf/open/floor/mech_bay_recharge_floor,/area/syndicate_mothership) -"nH" = (/obj/machinery/computer/mech_bay_power_console,/turf/open/floor/plating,/area/syndicate_mothership) -"nI" = (/obj/machinery/vending/tool,/turf/open/floor/plasteel/black,/area/syndicate_mothership) -"nJ" = (/obj/structure/closet/cardboard/metal,/turf/open/floor/plating/airless,/area/syndicate_mothership) -"nK" = (/turf/open/floor/plating/airless/warnplate{dir = 5},/area/syndicate_mothership) -"nL" = (/obj/machinery/door/airlock/centcom{aiControlDisabled = 1; name = "Assault Pod"; opacity = 1; req_access_txt = "150"},/obj/docking_port/mobile/assault_pod{dwidth = 3; name = "steel rain"},/turf/open/floor/plating,/area/shuttle/assault_pod) -"nM" = (/turf/open/floor/plating/airless/warnplate{dir = 9},/area/syndicate_mothership) -"nN" = (/obj/structure/cult/talisman{desc = "A altar dedicated to the Wizard's Federation"},/obj/item/weapon/kitchen/knife/ritual,/obj/effect/decal/cleanable/blood/old,/turf/open/floor/engine/cult,/area/wizard_station) -"nO" = (/obj/effect/mob_spawn/human/corpse/russian,/turf/open/floor/engine/cult,/area/wizard_station) -"nP" = (/obj/structure/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 1},/turf/open/floor/engine/cult,/area/wizard_station) -"nQ" = (/obj/item/weapon/broken_bottle,/turf/open/floor/engine/cult,/area/wizard_station) -"nR" = (/turf/open/floor/plating/airless/warnplate{dir = 1},/area/syndicate_mothership) -"nS" = (/turf/closed/indestructible/riveted,/area/tdome/arena) -"nT" = (/obj/machinery/igniter,/turf/open/floor/plasteel,/area/tdome/arena) -"nU" = (/turf/open/floor/plasteel,/area/tdome/arena) -"nV" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/syndicate_mothership) -"nW" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/black,/area/syndicate_mothership) -"nX" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/saber/red,/turf/open/floor/plasteel/black,/area/tdome/arena) -"nY" = (/obj/machinery/door/poddoor{id = "thunderdomegen"; name = "General Supply"},/turf/open/floor/plasteel/black,/area/tdome/arena) -"nZ" = (/obj/effect/landmark{name = "tdome2"},/turf/open/floor/plasteel,/area/tdome/tdome2) -"oa" = (/obj/machinery/door/poddoor{id = "thunderdome"; name = "Thunderdome Blast Door"},/turf/open/floor/plasteel,/area/tdome/arena) -"ob" = (/turf/open/floor/plasteel/red/side{dir = 8},/area/tdome/arena) -"oc" = (/turf/open/floor/plasteel/green/side{dir = 4},/area/tdome/arena) -"od" = (/obj/effect/landmark{name = "tdome1"},/turf/open/floor/plasteel,/area/tdome/tdome1) -"oe" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/saber/green,/turf/open/floor/plasteel/black,/area/tdome/arena) -"of" = (/obj/structure/closet/syndicate/personal,/turf/open/floor/plasteel/darkwarning{dir = 1},/area/syndicate_mothership) -"og" = (/obj/structure/table,/obj/item/weapon/gun/energy/ionrifle{pin = /obj/item/device/firing_pin},/turf/open/floor/plasteel/darkwarning{dir = 1},/area/syndicate_mothership) -"oh" = (/obj/machinery/recharger{pixel_y = 4},/obj/effect/landmark{name = "tdome2"},/turf/open/floor/plasteel,/area/tdome/tdome2) -"oi" = (/obj/machinery/recharger{pixel_y = 4},/obj/effect/landmark{name = "tdome1"},/turf/open/floor/plasteel,/area/tdome/tdome1) -"oj" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Corridor"},/turf/open/floor/engine/cult,/area/wizard_station) -"ok" = (/obj/machinery/camera{pixel_x = 11; pixel_y = -9; network = list("thunder"); c_tag = "Red Team"},/obj/effect/landmark{name = "tdome2"},/turf/open/floor/plasteel,/area/tdome/tdome2) -"ol" = (/turf/open/floor/bluegrid,/area/tdome/arena) -"om" = (/obj/machinery/flasher{id = "tdomeflash"; name = "Thunderdome Flash"},/turf/open/floor/bluegrid,/area/tdome/arena) -"on" = (/obj/machinery/camera{pixel_x = 12; pixel_y = -10; network = list("thunder"); c_tag = "Green Team"},/obj/effect/landmark{name = "tdome1"},/turf/open/floor/plasteel,/area/tdome/tdome1) -"oo" = (/obj/machinery/camera{pixel_x = 10; network = list("thunder"); c_tag = "Arena"},/turf/open/floor/bluegrid,/area/tdome/arena) -"op" = (/turf/open/floor/carpet/carpetsymbol,/area/wizard_station) -"oq" = (/turf/closed/indestructible/fakeglass{color = "#008000"; dir = 8; icon_state = "fakewindows"},/area/wizard_station) -"or" = (/turf/closed/indestructible/fakeglass{color = "#008000"; dir = 4; icon_state = "fakewindows"},/area/wizard_station) -"os" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; locked = 1; name = "Experiment Room"},/turf/open/floor/engine/cult,/area/wizard_station) -"ot" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Personal Quarters"},/turf/open/floor/engine/cult,/area/wizard_station) -"ou" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Cargo"},/turf/open/floor/engine/cult,/area/wizard_station) -"ov" = (/obj/structure/statue/uranium/nuke,/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) -"ow" = (/obj/machinery/door/poddoor{id = "thunderdomehea"; name = "Heavy Supply"},/turf/open/floor/plasteel/black,/area/tdome/arena) -"ox" = (/obj/effect/decal/cleanable/blood/old,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/goliath,/turf/open/floor/engine/cult,/area/wizard_station) -"oy" = (/obj/structure/table/wood,/obj/item/clothing/suit/wizrobe/magusblue,/obj/item/clothing/head/wizard/magus,/obj/item/weapon/staff,/turf/open/floor/engine/cult,/area/wizard_station) -"oz" = (/turf/open/floor/carpet,/area/wizard_station) -"oA" = (/obj/structure/dresser,/obj/item/weapon/storage/backpack/satchel,/obj/structure/mirror/magic{pixel_y = 28},/turf/open/floor/carpet,/area/wizard_station) -"oB" = (/obj/structure/closet/masks,/turf/open/floor/engine/cult,/area/wizard_station) -"oC" = (/obj/structure/rack,/obj/item/weapon/staff,/obj/item/clothing/head/wizard/magus,/obj/item/clothing/suit/wizrobe/magusred,/turf/open/floor/engine/cult,/area/wizard_station) -"oD" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/turf/open/floor/plasteel/black,/area/tdome/arena) -"oE" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 8},/area/tdome/tdomeadmin) -"oF" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/tdome/tdomeadmin) -"oG" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 4},/area/tdome/tdomeadmin) -"oH" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/turf/open/floor/plasteel/black,/area/tdome/arena) -"oI" = (/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/blood/old,/turf/open/floor/engine/cult,/area/wizard_station) -"oJ" = (/mob/living/simple_animal/hostile/creature{desc = "Chompy, your cute little sanity-destroying otherthing."; name = "Chompy"},/turf/open/floor/engine/cult,/area/wizard_station) -"oK" = (/obj/structure/table/wood,/obj/effect/landmark{name = "Teleport-Scroll"},/obj/item/weapon/dice/d20,/obj/item/weapon/dice,/turf/open/floor/carpet,/area/wizard_station) -"oL" = (/obj/effect/landmark/start{name = "wizard"},/turf/open/floor/carpet,/area/wizard_station) -"oM" = (/obj/structure/bed,/obj/item/weapon/bedsheet/wiz,/turf/open/floor/carpet,/area/wizard_station) -"oN" = (/obj/structure/closet/wardrobe/mixed,/turf/open/floor/engine/cult,/area/wizard_station) -"oO" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/item/clothing/suit/wizrobe/red,/obj/item/clothing/head/wizard/red,/obj/item/weapon/staff,/obj/item/clothing/shoes/sandal,/turf/open/floor/engine/cult,/area/wizard_station) -"oP" = (/turf/open/floor/plasteel/redyellow,/area/tdome/tdomeadmin) -"oQ" = (/obj/structure/chair{dir = 1},/obj/effect/landmark{name = "tdomeadmin"},/turf/open/floor/plasteel/redyellow,/area/tdome/tdomeadmin) -"oR" = (/obj/structure/table,/obj/machinery/computer/security/telescreen{pixel_y = 0},/turf/open/floor/plasteel/redyellow,/area/tdome/tdomeadmin) -"oS" = (/obj/structure/chair/comfy/brown{dir = 1},/turf/open/floor/plasteel/redyellow,/area/tdome/tdomeadmin) -"oT" = (/obj/machinery/button/flasher{id = "tdomeflash"; pixel_x = 0; pixel_y = 0},/obj/structure/table,/turf/open/floor/plasteel/redyellow,/area/tdome/tdomeadmin) -"oU" = (/obj/structure/table/wood,/obj/item/candle/infinite,/turf/open/floor/carpet,/area/wizard_station) -"oV" = (/obj/structure/table/wood,/obj/item/weapon/storage/bag/tray,/obj/item/weapon/reagent_containers/food/snacks/burger/spell,/turf/open/floor/carpet,/area/wizard_station) -"oW" = (/obj/structure/closet/wardrobe/pjs,/turf/open/floor/engine/cult,/area/wizard_station) -"oX" = (/obj/structure/rack,/obj/item/weapon/staff/broom,/obj/item/clothing/head/wizard/marisa,/obj/item/clothing/suit/wizrobe/marisa,/obj/item/clothing/shoes/sandal/marisa,/turf/open/floor/engine/cult,/area/wizard_station) -"oY" = (/turf/closed/indestructible/riveted,/area/tdome/tdomeadmin) -"oZ" = (/obj/machinery/computer/security/telescreen{pixel_y = -32},/turf/open/floor/plasteel/redyellow,/area/tdome/tdomeadmin) -"pa" = (/turf/open/floor/plasteel,/area/tdome/tdomeadmin) -"pb" = (/obj/item/organ/heart,/obj/effect/decal/cleanable/blood/old,/turf/open/floor/engine/cult,/area/wizard_station) -"pc" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Engine Room"},/turf/open/floor/engine/cult,/area/wizard_station) -"pd" = (/obj/structure/mecha_wreckage/ripley,/obj/effect/decal/cleanable/oil,/turf/open/floor/engine/cult,/area/wizard_station) -"pe" = (/obj/structure/closet/crate,/obj/item/weapon/coin/uranium,/obj/effect/spawner/lootdrop/gambling,/obj/item/weapon/lipstick/random,/obj/item/weapon/c_tube,/turf/open/floor/engine/cult,/area/wizard_station) -"pf" = (/obj/structure/closet/crate,/obj/item/weapon/storage/box/donkpockets,/obj/item/weapon/crowbar,/obj/item/weapon/wrench,/obj/item/weapon/weldingtool,/turf/open/floor/engine/cult,/area/wizard_station) -"pg" = (/turf/closed/indestructible/fakedoor{name = "Thunderdome Admin"},/area/tdome/tdomeadmin) -"ph" = (/obj/structure/table,/obj/machinery/button/door{id = "thunderdomehea"; name = "Heavy Supply Control"; pixel_y = 0; req_access_txt = "102"},/turf/open/floor/plasteel,/area/tdome/tdomeadmin) -"pi" = (/obj/structure/table,/obj/machinery/button/door{id = "thunderdome"; name = "Main Blast Doors Control"; pixel_y = 0; req_access_txt = "102"},/turf/open/floor/plasteel,/area/tdome/tdomeadmin) -"pj" = (/obj/structure/table,/obj/machinery/button/door{id = "thunderdomegen"; name = "General Supply Control"; pixel_y = 0; req_access_txt = "102"},/turf/open/floor/plasteel,/area/tdome/tdomeadmin) -"pk" = (/obj/structure/table/wood,/obj/item/weapon/gun/magic/wand{desc = "Used in emergencies to reignite magma engines."; max_charges = 0; name = "wand of emergency engine ignition"},/turf/open/floor/engine/cult,/area/wizard_station) -"pl" = (/obj/structure/table/wood,/turf/open/floor/engine/cult,/area/wizard_station) -"pm" = (/obj/structure/cult/forge{desc = "A engine used in powering the wizards ship"; name = "magma engine"},/turf/open/floor/engine/cult,/area/wizard_station) -"pn" = (/mob/living/simple_animal/mouse/white{name = "Stuart"},/turf/open/floor/engine/cult,/area/wizard_station) -"po" = (/turf/closed/indestructible/riveted,/area/centcom/holding) -"pp" = (/obj/structure/window/reinforced{color = "#008000"; dir = 1},/turf/open/floor/plating/lava/airless,/area/wizard_station) -"pq" = (/obj/structure/table,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) -"pr" = (/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) -"ps" = (/obj/structure/closet/secure_closet/bar{req_access_txt = "25"},/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) -"pt" = (/obj/structure/reagent_dispensers/beerkeg,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) -"pu" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) -"pv" = (/obj/structure/rack,/obj/item/device/camera,/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) -"pw" = (/obj/structure/rack,/obj/item/toy/sword,/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) -"px" = (/obj/structure/rack,/obj/item/toy/gun,/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) -"py" = (/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) -"pz" = (/turf/open/floor/plating/beach/sand,/area/centcom/holding) -"pA" = (/obj/effect/overlay/palmtree_r,/obj/effect/overlay/coconut,/turf/open/floor/plating/beach/sand,/area/centcom/holding) -"pB" = (/obj/effect/overlay/palmtree_l,/turf/open/floor/plating/beach/sand,/area/centcom/holding) -"pC" = (/obj/structure/shuttle/engine/heater,/turf/open/floor/plating/lava/airless,/area/wizard_station) -"pD" = (/obj/structure/table,/obj/item/clothing/head/that,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) -"pE" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) -"pF" = (/obj/item/device/camera,/turf/open/floor/plating/beach/sand,/area/centcom/holding) -"pG" = (/obj/structure/shuttle/engine/propulsion,/turf/open/space,/area/space) -"pH" = (/obj/structure/table,/obj/item/ammo_box/foambox,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) -"pI" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/shaker,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) -"pJ" = (/obj/structure/table,/obj/item/weapon/lighter,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) -"pK" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) -"pL" = (/obj/structure/table,/obj/item/weapon/dice/d20,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) -"pM" = (/obj/structure/chair/stool{pixel_y = 8},/obj/item/clothing/head/bandana{pixel_y = -10},/obj/item/clothing/glasses/sunglasses,/turf/open/floor/plating/beach/sand,/area/centcom/holding) -"pN" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plating/beach/sand,/area/centcom/holding) -"pO" = (/obj/structure/rack,/obj/item/clothing/head/that,/obj/item/clothing/under/suit_jacket,/obj/item/clothing/tie/waistcoat,/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) -"pP" = (/obj/item/toy/beach_ball,/turf/open/floor/plating/beach/sand,/area/centcom/holding) -"pQ" = (/obj/structure/rack,/obj/item/weapon/storage/crayons,/obj/item/weapon/gun/projectile/automatic/toy/pistol,/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) -"pR" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) -"pS" = (/obj/structure/rack,/obj/item/weapon/storage/crayons,/obj/item/weapon/gun/projectile/shotgun/toy/crossbow,/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) -"pT" = (/turf/open/floor/plating/beach/coastline_b,/area/centcom/holding) -"pU" = (/obj/item/clothing/head/collectable/paper,/turf/open/floor/plating/beach/coastline_b,/area/centcom/holding) -"pV" = (/obj/structure/rack,/obj/item/clothing/shoes/laceup,/obj/item/clothing/under/suit_jacket/female{desc = "A black trouser suit for women. Very formal."; name = "black suit"; pixel_x = 3; pixel_y = 1},/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) -"pW" = (/obj/structure/table,/obj/item/weapon/gun/projectile/automatic/toy/pistol,/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) -"pX" = (/turf/open/floor/plating/beach/water,/area/centcom/holding) -"pY" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel,/area/centcom/holding) -"pZ" = (/turf/open/floor/plasteel/delivery,/area/centcom/holding) -"qa" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel,/area/centcom/holding) -"qb" = (/obj/effect/landmark{name = "Holding Facility"},/turf/open/floor/engine,/area/centcom/holding) -"qc" = (/turf/closed/indestructible/abductor{icon_state = "alien20"},/area/abductor_ship) -"qd" = (/turf/closed/indestructible/abductor{icon_state = "alien21"},/area/abductor_ship) -"qe" = (/turf/closed/indestructible/abductor{icon_state = "alien22"},/area/abductor_ship) -"qf" = (/turf/closed/indestructible/abductor{icon_state = "alien23"},/area/abductor_ship) -"qg" = (/turf/closed/indestructible/abductor{icon_state = "alien24"},/area/abductor_ship) -"qh" = (/turf/closed/indestructible/abductor{icon_state = "alien16"},/area/abductor_ship) -"qi" = (/turf/closed/indestructible/abductor{icon_state = "alien17"},/area/abductor_ship) -"qj" = (/obj/machinery/abductor/experiment{team = 1},/turf/open/floor/plating/abductor,/area/abductor_ship) -"qk" = (/obj/effect/landmark/abductor/console,/turf/open/floor/plating/abductor,/area/abductor_ship) -"ql" = (/obj/machinery/abductor/pad{team = 1},/turf/open/floor/plating/abductor,/area/abductor_ship) -"qm" = (/turf/closed/indestructible/abductor{icon_state = "alien18"},/area/abductor_ship) -"qn" = (/turf/closed/indestructible/abductor{icon_state = "alien19"},/area/abductor_ship) -"qo" = (/obj/machinery/abductor/experiment{team = 4},/turf/open/floor/plating/abductor,/area/abductor_ship) -"qp" = (/obj/effect/landmark/abductor/console{team = 4},/turf/open/floor/plating/abductor,/area/abductor_ship) -"qq" = (/obj/machinery/abductor/pad{team = 4},/turf/open/floor/plating/abductor,/area/abductor_ship) -"qr" = (/turf/closed/indestructible/riveted,/area/hades) -"qs" = (/turf/closed/indestructible/abductor{icon_state = "alien14"},/area/abductor_ship) -"qt" = (/obj/machinery/computer/camera_advanced/abductor{team = 1},/turf/open/floor/plating/abductor,/area/abductor_ship) -"qu" = (/turf/open/floor/plating/abductor,/area/abductor_ship) -"qv" = (/obj/structure/closet/abductor,/turf/open/floor/plating/abductor,/area/abductor_ship) -"qw" = (/turf/closed/indestructible/abductor{icon_state = "alien15"},/area/abductor_ship) -"qx" = (/obj/machinery/computer/camera_advanced/abductor{team = 4},/turf/open/floor/plating/abductor,/area/abductor_ship) -"qy" = (/obj/structure/bookcase/random/religion,/turf/open/floor/plasteel/hades,/area/hades) -"qz" = (/turf/closed/indestructible/abductor{icon_state = "alien12"},/area/abductor_ship) -"qA" = (/obj/item/weapon/retractor/alien,/obj/item/weapon/hemostat/alien,/obj/structure/table/abductor,/turf/open/floor/plating/abductor,/area/abductor_ship) -"qB" = (/obj/effect/landmark/abductor/scientist,/turf/open/floor/plating/abductor,/area/abductor_ship) -"qC" = (/obj/structure/table/optable/abductor,/turf/open/floor/plating/abductor,/area/abductor_ship) -"qD" = (/obj/effect/landmark/abductor/agent,/turf/open/floor/plating/abductor,/area/abductor_ship) -"qE" = (/obj/structure/table/abductor,/obj/item/weapon/storage/box/alienhandcuffs,/turf/open/floor/plating/abductor,/area/abductor_ship) -"qF" = (/turf/closed/indestructible/abductor{icon_state = "alien13"},/area/abductor_ship) -"qG" = (/obj/effect/landmark/abductor/scientist{team = 4},/turf/open/floor/plating/abductor,/area/abductor_ship) -"qH" = (/obj/effect/landmark/abductor/agent{team = 4},/turf/open/floor/plating/abductor,/area/abductor_ship) -"qI" = (/obj/structure/piano,/turf/open/floor/plasteel/hades,/area/hades) -"qJ" = (/obj/effect/gibspawner/human,/turf/open/floor/plasteel/hades,/area/hades) -"qK" = (/turf/open/floor/plasteel/hades,/area/hades) -"qL" = (/turf/closed/indestructible/abductor{icon_state = "alien10"},/area/abductor_ship) -"qM" = (/obj/item/weapon/surgical_drapes,/obj/item/weapon/paper/abductor,/obj/item/weapon/scalpel/alien,/obj/structure/table/abductor,/obj/item/weapon/cautery/alien,/turf/open/floor/plating/abductor,/area/abductor_ship) -"qN" = (/turf/closed/indestructible/abductor{icon_state = "alien11"},/area/abductor_ship) -"qO" = (/obj/structure/window/fulltile,/turf/open/floor/plasteel/hades,/area/hades) -"qP" = (/obj/structure/window/reinforced,/turf/open/floor/plasteel/hades,/area/hades) -"qQ" = (/obj/effect/gibspawner/human,/mob/living/simple_animal/hostile/hadesacolyte,/turf/open/floor/plasteel/hades,/area/hades) -"qR" = (/mob/living/simple_animal/hostile/hadesacolyte,/turf/open/floor/plasteel/hades,/area/hades) -"qS" = (/turf/closed/indestructible/abductor{icon_state = "alien6"},/area/abductor_ship) -"qT" = (/turf/closed/indestructible/abductor{icon_state = "alien7"},/area/abductor_ship) -"qU" = (/obj/machinery/abductor/gland_dispenser,/turf/open/floor/plating/abductor,/area/abductor_ship) -"qV" = (/obj/structure/table/abductor,/obj/item/weapon/surgicaldrill/alien,/obj/item/weapon/circular_saw/alien,/turf/open/floor/plating/abductor,/area/abductor_ship) -"qW" = (/obj/structure/bed/abductor,/turf/open/floor/plating/abductor,/area/abductor_ship) -"qX" = (/turf/closed/indestructible/abductor{icon_state = "alien8"},/area/abductor_ship) -"qY" = (/turf/closed/indestructible/abductor{icon_state = "alien9"},/area/abductor_ship) -"qZ" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/fulltile,/turf/open/floor/plasteel/hades,/area/hades) -"ra" = (/obj/structure/table/reinforced/brass,/obj/item/candle/infinite,/turf/open/floor/plasteel/hades,/area/hades) -"rb" = (/obj/structure/table/reinforced/brass,/obj/item/candle/infinite,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/hades,/area/hades) -"rc" = (/obj/structure/table/reinforced/brass,/turf/open/floor/plasteel/hades,/area/hades) -"rd" = (/obj/structure/table/reinforced/brass,/obj/item/candle/infinite,/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/hades,/area/hades) -"re" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/fulltile,/turf/open/floor/plasteel/hades,/area/hades) -"rf" = (/turf/closed/indestructible/abductor,/area/abductor_ship) -"rg" = (/turf/closed/indestructible/abductor{icon_state = "alien2"},/area/abductor_ship) -"rh" = (/turf/closed/indestructible/abductor{icon_state = "alien3"},/area/abductor_ship) -"ri" = (/turf/closed/indestructible/abductor{icon_state = "alien4"},/area/abductor_ship) -"rj" = (/turf/closed/indestructible/abductor{icon_state = "alien5"},/area/abductor_ship) -"rk" = (/turf/open/floor/carpet,/area/hades) -"rl" = (/obj/structure/chair/wood/normal{icon_state = "wooden_chair"; dir = 1},/mob/living/simple_animal/hostile/hadesacolyte,/turf/open/floor/plasteel/hades,/area/hades) -"rm" = (/obj/structure/chair/wood/normal{icon_state = "wooden_chair"; dir = 1},/turf/open/floor/plasteel/hades,/area/hades) -"rn" = (/obj/effect/gibspawner/human,/turf/open/floor/carpet,/area/hades) -"ro" = (/obj/machinery/abductor/experiment{team = 2},/turf/open/floor/plating/abductor,/area/abductor_ship) -"rp" = (/obj/effect/landmark/abductor/console{team = 2},/turf/open/floor/plating/abductor,/area/abductor_ship) -"rq" = (/obj/machinery/abductor/pad{team = 2},/turf/open/floor/plating/abductor,/area/abductor_ship) -"rr" = (/obj/machinery/abductor/experiment{team = 3},/turf/open/floor/plating/abductor,/area/abductor_ship) -"rs" = (/obj/effect/landmark/abductor/console{team = 3},/turf/open/floor/plating/abductor,/area/abductor_ship) -"rt" = (/obj/machinery/abductor/pad{team = 3},/turf/open/floor/plating/abductor,/area/abductor_ship) -"ru" = (/obj/machinery/computer/camera_advanced/abductor{team = 2},/turf/open/floor/plating/abductor,/area/abductor_ship) -"rv" = (/obj/machinery/computer/camera_advanced/abductor{team = 3},/turf/open/floor/plating/abductor,/area/abductor_ship) -"rw" = (/obj/effect/landmark/abductor/scientist{team = 2},/turf/open/floor/plating/abductor,/area/abductor_ship) -"rx" = (/obj/effect/landmark/abductor/agent{team = 2},/turf/open/floor/plating/abductor,/area/abductor_ship) -"ry" = (/obj/effect/landmark/abductor/scientist{team = 3},/turf/open/floor/plating/abductor,/area/abductor_ship) -"rz" = (/obj/effect/landmark/abductor/agent{team = 3},/turf/open/floor/plating/abductor,/area/abductor_ship) -"rA" = (/obj/effect/landmark/event_spawn,/turf/open/floor/carpet,/area/hades) -"rB" = (/obj/structure/dresser,/turf/open/floor/carpet,/area/hades) -"rC" = (/obj/structure/table/wood,/obj/item/trash/candle,/turf/open/floor/carpet,/area/hades) -"rD" = (/obj/structure/flora/grass/green,/turf/open/floor/grass,/area/hades) -"rE" = (/obj/structure/flora/ausbushes/ppflowers,/turf/open/floor/grass,/area/hades) -"rF" = (/obj/structure/flora/ausbushes/palebush,/turf/open/floor/grass,/area/hades) -"rG" = (/obj/structure/flora/ausbushes/ywflowers,/turf/open/floor/grass,/area/hades) -"rH" = (/obj/structure/bookcase/random/nonfiction,/turf/open/floor/carpet,/area/hades) -"rI" = (/obj/structure/bookcase/random/fiction,/turf/open/floor/carpet,/area/hades) -"rJ" = (/obj/structure/bookcase/random/adult,/turf/open/floor/carpet,/area/hades) -"rK" = (/obj/structure/bookcase/random/religion,/turf/open/floor/carpet,/area/hades) -"rL" = (/obj/structure/kitchenspike,/turf/open/floor/mineral/diamond,/area/hades) -"rM" = (/mob/living/simple_animal/hostile/hadesacolyte,/turf/open/floor/mineral/gold,/area/hades) -"rN" = (/turf/open/floor/mineral/gold,/area/hades) -"rO" = (/obj/structure/table/wood,/turf/open/floor/carpet,/area/hades) -"rP" = (/obj/structure/flora/ausbushes/grassybush,/turf/open/floor/grass,/area/hades) -"rQ" = (/obj/structure/flora/ausbushes/stalkybush,/turf/open/floor/grass,/area/hades) -"rR" = (/obj/structure/flora/ausbushes/genericbush,/turf/open/floor/grass,/area/hades) -"rS" = (/obj/structure/bookcase/random/reference,/turf/open/floor/carpet,/area/hades) -"rT" = (/obj/structure/closet/cabinet,/turf/open/floor/carpet,/area/hades) -"rU" = (/obj/structure/table/wood,/obj/item/weapon/paper/hades_instructions,/turf/open/floor/carpet,/area/hades) -"rV" = (/obj/structure/flora/ausbushes/fernybush,/turf/open/floor/grass,/area/hades) -"rW" = (/obj/structure/bed,/obj/item/weapon/bedsheet/black,/turf/open/floor/carpet,/area/hades) -"rX" = (/mob/living/simple_animal/hostile/hadesacolyte,/turf/open/floor/carpet,/area/hades) -"rY" = (/obj/structure/table/wood,/obj/item/weapon/storage/box/matches,/turf/open/floor/carpet,/area/hades) -"rZ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plasteel,/area/hades) -"sa" = (/obj/machinery/door/airlock/wood,/turf/open/floor/plasteel/hades,/area/hades) -"sb" = (/obj/structure/table/wood,/obj/item/weapon/lipstick,/turf/open/floor/carpet,/area/hades) -"sc" = (/obj/structure/table/wood,/obj/item/weapon/storage/fancy/candle_box,/turf/open/floor/carpet,/area/hades) -"sd" = (/obj/structure/chair/wood/normal{icon_state = "wooden_chair"; dir = 4},/turf/open/floor/carpet,/area/hades) -"se" = (/obj/structure/chair/wood/normal{icon_state = "wooden_chair"; dir = 8},/turf/open/floor/carpet,/area/hades) -"sf" = (/obj/structure/table/wood,/obj/item/weapon/storage/crayons,/turf/open/floor/carpet,/area/hades) -"sg" = (/obj/structure/table/wood,/obj/item/weapon/razor,/turf/open/floor/carpet,/area/hades) -"sh" = (/obj/machinery/door/airlock/wood,/turf/open/floor/carpet,/area/hades) -"si" = (/obj/structure/chair/hades,/turf/open/floor/mineral/diamond,/area/hades) -"sj" = (/obj/machinery/vending/cola,/turf/open/floor/carpet,/area/hades) -"sk" = (/obj/machinery/vending/snack,/turf/open/floor/carpet,/area/hades) -"sl" = (/obj/structure/table/wood,/obj/machinery/chem_dispenser/drinks/beer,/turf/open/floor/carpet,/area/hades) -"sm" = (/obj/structure/table/wood,/obj/machinery/microwave,/turf/open/floor/carpet,/area/hades) -"sn" = (/obj/structure/table/wood,/obj/item/weapon/storage/box/donkpockets,/turf/open/floor/carpet,/area/hades) -"so" = (/obj/machinery/chem_dispenser/drinks,/obj/structure/table/wood,/turf/open/floor/carpet,/area/hades) -"sp" = (/obj/structure/chair/wood/normal,/mob/living/simple_animal/hostile/hadesacolyte,/turf/open/floor/carpet,/area/hades) -"sq" = (/obj/structure/table/wood,/turf/open/floor/carpet,/area/syndicate_mothership) -"sr" = (/obj/structure/table/wood,/obj/structure/table/wood,/turf/open/floor/carpet,/area/hades) -"ss" = (/obj/structure/table/wood,/obj/item/weapon/storage/box/drinkingglasses,/turf/open/floor/carpet,/area/hades) -"st" = (/obj/structure/lattice,/turf/open/space,/area/space) +"aa" = (/turf/open/space,/area/space) +"ab" = (/turf/closed/indestructible/riveted,/area/space) +"ac" = (/obj/structure/window/reinforced,/turf/closed/indestructible/riveted,/area/space) +"ad" = (/obj/effect/landmark/transit,/turf/open/space,/area/space) +"ae" = (/obj/structure/window/reinforced{dir = 4},/turf/closed/indestructible/riveted,/area/space) +"af" = (/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) +"ag" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/closed/indestructible/riveted,/area/space) +"ah" = (/obj/structure/foamedmetal,/obj/structure/window{icon_state = "rwindow";dir = 8},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/bunker) +"ai" = (/obj/structure/foamedmetal,/obj/structure/window{icon_state = "rwindow";dir = 4},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/bunker) +"aj" = (/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/bunker) +"ak" = (/turf/open/floor/holofloor{tag = "icon-asteroid_warn_side (WEST)";icon_state = "asteroid_warn_side";dir = 8},/area/holodeck/rec_center/bunker) +"al" = (/obj/structure/table,/obj/item/stack/medical/ointment{heal_burn = 10},/turf/open/floor/holofloor{tag = "icon-asteroid_warn_side (WEST)";icon_state = "asteroid_warn_side";dir = 8},/area/holodeck/rec_center/bunker) +"am" = (/obj/structure/table/wood{layer = 3.3},/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-05";layer = 4.1;pixel_y = 4},/turf/open/floor/holofloor{icon_state = "wood";dir = 9},/area/holodeck/rec_center/lounge) +"an" = (/obj/structure/closet/crate/bin,/turf/open/floor/holofloor{icon_state = "wood";dir = 9},/area/holodeck/rec_center/lounge) +"ao" = (/turf/open/floor/holofloor{icon_state = "wood";dir = 9},/area/holodeck/rec_center/lounge) +"ap" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green{layer = 3.3;pixel_y = 0},/turf/open/floor/holofloor{icon_state = "wood";dir = 9},/area/holodeck/rec_center/lounge) +"aq" = (/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/wildlife) +"ar" = (/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/offline) +"as" = (/turf/open/floor/holofloor/plating/burnmix,/area/holodeck/rec_center/burn) +"at" = (/turf/open/floor/holofloor{dir = 9;icon_state = "red"},/area/holodeck/rec_center/court) +"au" = (/turf/open/floor/holofloor{dir = 1;icon_state = "red"},/area/holodeck/rec_center/court) +"av" = (/turf/open/floor/holofloor{dir = 5;icon_state = "red"},/area/holodeck/rec_center/court) +"aw" = (/obj/structure/window/reinforced{dir = 8},/turf/closed/indestructible/riveted,/area/space) +"ax" = (/obj/structure/flora/bush,/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) +"ay" = (/obj/item/toy/snowball{pixel_x = 0;pixel_y = 6},/obj/item/toy/snowball{pixel_x = 5;pixel_y = 0},/obj/item/toy/snowball{pixel_x = -4},/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) +"az" = (/turf/open/floor/holofloor{tag = "icon-asteroid_warn (WEST)";icon_state = "asteroid_warn";dir = 8},/area/holodeck/rec_center/bunker) +"aA" = (/obj/structure/table,/obj/machinery/recharger,/turf/open/floor/holofloor{tag = "icon-asteroidfloor (WEST)";icon_state = "asteroidfloor";dir = 8},/area/holodeck/rec_center/bunker) +"aB" = (/obj/structure/table/wood,/obj/item/weapon/storage/box/matches{pixel_x = -4;pixel_y = 8},/turf/open/floor/holofloor{icon_state = "wood";dir = 9},/area/holodeck/rec_center/lounge) +"aC" = (/obj/structure/chair/wood/normal,/turf/open/floor/holofloor{icon_state = "wood";dir = 9},/area/holodeck/rec_center/lounge) +"aD" = (/obj/effect/holodeck_effect/mobspawner,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/wildlife) +"aE" = (/obj/effect/holodeck_effect/sparks,/turf/open/floor/holofloor/plating/burnmix,/area/holodeck/rec_center/burn) +"aF" = (/turf/open/floor/holofloor{dir = 8;icon_state = "red"},/area/holodeck/rec_center/court) +"aG" = (/turf/open/floor/holofloor,/area/holodeck/rec_center/court) +"aH" = (/turf/open/floor/holofloor{dir = 4;icon_state = "red"},/area/holodeck/rec_center/court) +"aI" = (/obj/structure/flora/grass/brown,/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) +"aJ" = (/obj/structure/table,/obj/item/weapon/gun/energy/laser,/turf/open/floor/holofloor{tag = "icon-asteroidfloor (WEST)";icon_state = "asteroidfloor";dir = 8},/area/holodeck/rec_center/bunker) +"aK" = (/obj/structure/chair/wood/normal{icon_state = "wooden_chair";dir = 4},/turf/open/floor/holofloor{icon_state = "wood";dir = 9},/area/holodeck/rec_center/lounge) +"aL" = (/obj/structure/table/wood/poker,/obj/item/clothing/mask/cigarette/pipe,/turf/open/floor/holofloor{icon_state = "wood";dir = 9},/area/holodeck/rec_center/lounge) +"aM" = (/obj/structure/table/wood/poker,/obj/structure/table/wood/poker,/obj/effect/holodeck_effect/cards,/turf/open/floor/holofloor{icon_state = "wood";dir = 9},/area/holodeck/rec_center/lounge) +"aN" = (/obj/structure/chair/wood/normal{icon_state = "wooden_chair";dir = 8},/turf/open/floor/holofloor{icon_state = "wood";dir = 9},/area/holodeck/rec_center/lounge) +"aO" = (/obj/structure/statue/snow/snowman{anchored = 1},/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) +"aP" = (/obj/structure/chair/wood/normal{icon_state = "wooden_chair";dir = 1},/turf/open/floor/holofloor{icon_state = "wood";dir = 9},/area/holodeck/rec_center/lounge) +"aQ" = (/obj/structure/chair/wood/wings,/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) +"aR" = (/obj/structure/window/reinforced/tinted{icon_state = "rwindow";dir = 4},/turf/open/floor/holofloor{icon_state = "wood";dir = 9},/area/holodeck/rec_center/lounge) +"aS" = (/obj/structure/window/reinforced,/turf/open/floor/holofloor{icon_state = "wood";dir = 9},/area/holodeck/rec_center/lounge) +"aT" = (/obj/structure/flora/tree/pine,/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) +"aU" = (/obj/structure/chair/wood,/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) +"aV" = (/obj/structure/table/wood,/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-05";layer = 4.1;pixel_y = 10},/turf/open/floor/holofloor{icon_state = "wood";dir = 9},/area/holodeck/rec_center/lounge) +"aW" = (/turf/open/floor/holofloor{dir = 9;icon_state = "stairs-l"},/area/holodeck/rec_center/lounge) +"aX" = (/turf/open/floor/holofloor{dir = 9;icon_state = "stairs-r"},/area/holodeck/rec_center/lounge) +"aY" = (/turf/open/floor/holofloor{dir = 8;icon_state = "green"},/area/holodeck/rec_center/court) +"aZ" = (/turf/open/floor/holofloor{dir = 4;icon_state = "green"},/area/holodeck/rec_center/court) +"ba" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green{pixel_y = 4},/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) +"bb" = (/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) +"bc" = (/obj/structure/chair/comfy/brown{dir = 4},/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) +"bd" = (/obj/structure/chair/comfy/brown{dir = 8},/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) +"be" = (/obj/structure/table,/obj/item/stack/medical/bruise_pack{heal_brute = 10},/turf/open/floor/holofloor{tag = "icon-asteroid_warn_side (WEST)";icon_state = "asteroid_warn_side";dir = 8},/area/holodeck/rec_center/bunker) +"bf" = (/obj/structure/table/wood,/obj/item/device/instrument/violin,/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) +"bg" = (/obj/structure/chair/comfy/brown{buildstackamount = 0;dir = 1},/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) +"bh" = (/obj/structure/table/wood,/obj/item/weapon/book/manual/barman_recipes,/obj/item/clothing/mask/cigarette/pipe,/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) +"bi" = (/turf/open/floor/holofloor{dir = 10;icon_state = "green"},/area/holodeck/rec_center/court) +"bj" = (/turf/open/floor/holofloor{dir = 2;icon_state = "green"},/area/holodeck/rec_center/court) +"bk" = (/turf/open/floor/holofloor{dir = 6;icon_state = "green"},/area/holodeck/rec_center/court) +"bl" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/closed/indestructible/riveted,/area/space) +"bm" = (/obj/effect/holodeck_effect/mobspawner/bee,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/anthophila) +"bn" = (/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"bo" = (/obj/structure/flora/ausbushes/sunnybush,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"bp" = (/obj/structure/flora/ausbushes/genericbush,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"bq" = (/obj/structure/table/glass,/obj/item/weapon/surgicaldrill,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHWEST)";icon_state = "white_warn";dir = 9},/area/holodeck/rec_center/medical) +"br" = (/obj/structure/table/glass,/obj/item/weapon/hemostat,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTH)";icon_state = "white_warn";dir = 1},/area/holodeck/rec_center/medical) +"bs" = (/obj/structure/table/glass,/obj/item/weapon/scalpel{pixel_y = 10},/obj/item/weapon/circular_saw,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTH)";icon_state = "white_warn";dir = 1},/area/holodeck/rec_center/medical) +"bt" = (/obj/structure/table/glass,/obj/item/weapon/retractor,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTH)";icon_state = "white_warn";dir = 1},/area/holodeck/rec_center/medical) +"bu" = (/obj/structure/table/glass,/obj/item/stack/medical/gauze,/obj/item/weapon/cautery,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHEAST)";icon_state = "white_warn";dir = 5},/area/holodeck/rec_center/medical) +"bv" = (/turf/open/floor/holofloor{dir = 9;icon_state = "red"},/area/holodeck/rec_center/basketball) +"bw" = (/obj/structure/holohoop{layer = 3.9},/turf/open/floor/holofloor{dir = 1;icon_state = "red"},/area/holodeck/rec_center/basketball) +"bx" = (/turf/open/floor/holofloor{dir = 5;icon_state = "red"},/area/holodeck/rec_center/basketball) +"by" = (/turf/open/floor/holofloor/beach,/area/holodeck/rec_center/beach) +"bz" = (/turf/open/floor/holofloor/basalt,/obj/structure/table,/obj/machinery/readybutton,/turf/open/floor/holofloor{tag = "icon-warningline";icon_state = "warningline";dir = 2},/area/holodeck/rec_center/thunderdome) +"bA" = (/turf/open/floor/holofloor/basalt,/obj/structure/table,/obj/item/clothing/head/helmet/thunderdome,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/under/color/red,/obj/item/weapon/holo/esword/red,/turf/open/floor/holofloor{tag = "icon-warningline";icon_state = "warningline";dir = 2},/area/holodeck/rec_center/thunderdome) +"bB" = (/turf/open/floor/holofloor/basalt,/obj/structure/table,/turf/open/floor/holofloor{tag = "icon-warningline";icon_state = "warningline";dir = 2},/area/holodeck/rec_center/thunderdome) +"bC" = (/obj/machinery/readybutton,/turf/open/floor/holofloor{dir = 9;icon_state = "red"},/area/holodeck/rec_center/dodgeball) +"bD" = (/turf/open/floor/holofloor{dir = 1;icon_state = "red"},/area/holodeck/rec_center/dodgeball) +"bE" = (/turf/open/floor/holofloor{dir = 5;icon_state = "red"},/area/holodeck/rec_center/dodgeball) +"bF" = (/obj/effect/holodeck_effect/mobspawner/pet,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"bG" = (/obj/structure/flora/ausbushes/ppflowers,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"bH" = (/obj/effect/holodeck_effect/mobspawner/pet,/obj/structure/flora/ausbushes/brflowers,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"bI" = (/obj/structure/table/glass,/obj/item/weapon/surgical_drapes,/obj/item/weapon/razor,/turf/open/floor/holofloor{tag = "icon-white_warn (WEST)";icon_state = "white_warn";dir = 8},/area/holodeck/rec_center/medical) +"bJ" = (/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) +"bK" = (/turf/open/floor/holofloor{tag = "icon-white_warn (EAST)";icon_state = "white_warn";dir = 4},/area/holodeck/rec_center/medical) +"bL" = (/turf/open/floor/holofloor{dir = 8;icon_state = "red"},/area/holodeck/rec_center/basketball) +"bM" = (/turf/open/floor/holofloor,/area/holodeck/rec_center/basketball) +"bN" = (/turf/open/floor/holofloor{dir = 4;icon_state = "red"},/area/holodeck/rec_center/basketball) +"bO" = (/obj/effect/overlay/palmtree_r,/turf/open/floor/holofloor/beach,/area/holodeck/rec_center/beach) +"bP" = (/obj/effect/overlay/palmtree_l,/obj/effect/overlay/coconut,/turf/open/floor/holofloor/beach,/area/holodeck/rec_center/beach) +"bQ" = (/turf/open/floor/holofloor/basalt,/area/holodeck/rec_center/thunderdome) +"bR" = (/turf/open/floor/holofloor{dir = 8;icon_state = "red"},/area/holodeck/rec_center/dodgeball) +"bS" = (/turf/open/floor/holofloor,/area/holodeck/rec_center/dodgeball) +"bT" = (/turf/open/floor/holofloor{dir = 4;icon_state = "red"},/area/holodeck/rec_center/dodgeball) +"bU" = (/obj/structure/flora/ausbushes/brflowers,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"bV" = (/obj/item/weapon/storage/bag/easterbasket{name = "picnic basket";pixel_y = 6},/turf/open/floor/holofloor{icon_state = "redbluefull"},/area/holodeck/rec_center/pet_lounge) +"bW" = (/obj/item/trash/plate,/turf/open/floor/holofloor{icon_state = "redbluefull"},/area/holodeck/rec_center/pet_lounge) +"bX" = (/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHWEST)";icon_state = "white_warn";dir = 10},/area/holodeck/rec_center/medical) +"bY" = (/turf/open/floor/holofloor{icon_state = "white_warn"},/area/holodeck/rec_center/medical) +"bZ" = (/obj/structure/table/optable,/turf/open/floor/holofloor{icon_state = "white_warn"},/area/holodeck/rec_center/medical) +"ca" = (/obj/machinery/computer/operating,/turf/open/floor/holofloor{icon_state = "white_warn"},/area/holodeck/rec_center/medical) +"cb" = (/obj/structure/table/glass,/obj/item/clothing/gloves/color/latex/nitrile,/obj/item/clothing/suit/apron/surgical,/obj/item/clothing/mask/surgical,/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHEAST)";icon_state = "white_warn";dir = 6},/area/holodeck/rec_center/medical) +"cc" = (/turf/open/floor/holofloor{dir = 1;icon_state = "red"},/area/holodeck/rec_center/basketball) +"cd" = (/obj/effect/holodeck_effect/mobspawner/monkey,/turf/open/floor/holofloor/beach,/area/holodeck/rec_center/beach) +"ce" = (/turf/open/floor/holofloor{dir = 2;icon_state = "red"},/area/holodeck/rec_center/dodgeball) +"cf" = (/obj/structure/flora/ausbushes/palebush,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"cg" = (/obj/effect/holodeck_effect/mobspawner/pet,/turf/open/floor/holofloor{icon_state = "redbluefull"},/area/holodeck/rec_center/pet_lounge) +"ch" = (/obj/item/weapon/shovel/spade{pixel_x = 2;pixel_y = -2},/turf/open/floor/holofloor{icon_state = "redbluefull"},/area/holodeck/rec_center/pet_lounge) +"ci" = (/obj/structure/window{dir = 1},/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) +"cj" = (/obj/effect/holodeck_effect/mobspawner/bee,/obj/item/clothing/head/beekeeper_head,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/anthophila) +"ck" = (/obj/structure/table/glass,/obj/machinery/reagentgrinder,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHWEST)";icon_state = "white_warn";dir = 9},/area/holodeck/rec_center/medical) +"cl" = (/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHEAST)";icon_state = "white_warn";dir = 5},/area/holodeck/rec_center/medical) +"cm" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/syringes{pixel_x = 4;pixel_y = 4},/obj/item/weapon/storage/box/beakers,/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) +"cn" = (/obj/machinery/washing_machine,/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) +"co" = (/turf/open/floor/holofloor{dir = 10;icon_state = "red"},/area/holodeck/rec_center/basketball) +"cp" = (/turf/open/floor/holofloor{dir = 2;icon_state = "red"},/area/holodeck/rec_center/basketball) +"cq" = (/turf/open/floor/holofloor{dir = 6;icon_state = "red"},/area/holodeck/rec_center/basketball) +"cr" = (/obj/item/clothing/under/color/rainbow,/obj/item/clothing/glasses/sunglasses,/turf/open/floor/holofloor/beach,/area/holodeck/rec_center/beach) +"cs" = (/obj/structure/window,/turf/open/floor/holofloor/basalt,/area/holodeck/rec_center/thunderdome) +"ct" = (/obj/structure/window{dir = 1},/obj/item/toy/beach_ball/holoball/dodgeball,/turf/open/floor/holofloor{dir = 10;icon_state = "red"},/area/holodeck/rec_center/dodgeball) +"cu" = (/obj/structure/window{dir = 1},/obj/item/toy/beach_ball/holoball/dodgeball,/turf/open/floor/holofloor{dir = 2;icon_state = "red"},/area/holodeck/rec_center/dodgeball) +"cv" = (/obj/structure/window{dir = 1},/obj/item/toy/beach_ball/holoball/dodgeball,/turf/open/floor/holofloor{dir = 6;icon_state = "red"},/area/holodeck/rec_center/dodgeball) +"cw" = (/obj/effect/holodeck_effect/mobspawner/bee,/obj/effect/decal/remains/human,/obj/item/clothing/suit/beekeeper_suit,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/anthophila) +"cx" = (/obj/effect/holodeck_effect/mobspawner/bee,/obj/item/weapon/melee/flyswatter,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/anthophila) +"cy" = (/obj/machinery/chem_master,/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHWEST)";icon_state = "white_warn";dir = 10},/area/holodeck/rec_center/medical) +"cz" = (/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHEAST)";icon_state = "white_warn";dir = 6},/area/holodeck/rec_center/medical) +"cA" = (/obj/structure/table/glass,/obj/item/device/healthanalyzer,/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) +"cB" = (/obj/structure/closet/wardrobe/white,/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) +"cC" = (/turf/open/floor/holofloor{dir = 9;icon_state = "green"},/area/holodeck/rec_center/basketball) +"cD" = (/turf/open/floor/holofloor{dir = 1;icon_state = "green"},/area/holodeck/rec_center/basketball) +"cE" = (/turf/open/floor/holofloor{dir = 5;icon_state = "green"},/area/holodeck/rec_center/basketball) +"cF" = (/obj/item/toy/beach_ball,/turf/open/floor/holofloor/beach,/area/holodeck/rec_center/beach) +"cG" = (/obj/structure/window{dir = 1},/turf/open/floor/holofloor/basalt,/area/holodeck/rec_center/thunderdome) +"cH" = (/obj/structure/window,/obj/item/toy/beach_ball/holoball/dodgeball,/turf/open/floor/holofloor{dir = 9;icon_state = "green"},/area/holodeck/rec_center/dodgeball) +"cI" = (/obj/structure/window,/obj/item/toy/beach_ball/holoball/dodgeball,/turf/open/floor/holofloor{dir = 1;icon_state = "green"},/area/holodeck/rec_center/dodgeball) +"cJ" = (/obj/structure/window,/obj/item/toy/beach_ball/holoball/dodgeball,/turf/open/floor/holofloor{dir = 5;icon_state = "green"},/area/holodeck/rec_center/dodgeball) +"cK" = (/obj/structure/sink/puddle,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"cL" = (/obj/item/weapon/reagent_containers/glass/bucket,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"cM" = (/turf/open/floor/holofloor{dir = 8;icon_state = "green"},/area/holodeck/rec_center/basketball) +"cN" = (/obj/item/toy/beach_ball/holoball,/turf/open/floor/holofloor,/area/holodeck/rec_center/basketball) +"cO" = (/turf/open/floor/holofloor{dir = 4;icon_state = "green"},/area/holodeck/rec_center/basketball) +"cP" = (/turf/open/floor/holofloor{dir = 8;icon_state = "green"},/area/holodeck/rec_center/dodgeball) +"cQ" = (/turf/open/floor/holofloor{dir = 4;icon_state = "green"},/area/holodeck/rec_center/dodgeball) +"cR" = (/obj/machinery/hydroponics/soil,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"cS" = (/obj/machinery/hydroponics/soil,/obj/item/weapon/cultivator,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"cT" = (/obj/machinery/hydroponics/soil,/obj/effect/holodeck_effect/mobspawner/pet,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"cU" = (/obj/structure/flora/ausbushes/grassybush,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"cV" = (/obj/structure/bed,/obj/item/weapon/bedsheet/medical,/obj/structure/window{dir = 1},/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHWEST)";icon_state = "white_warn";dir = 9},/area/holodeck/rec_center/medical) +"cW" = (/obj/structure/window{icon_state = "rwindow";dir = 8},/obj/structure/bed,/obj/item/weapon/bedsheet/medical,/obj/structure/window{dir = 1},/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHEAST)";icon_state = "white_warn";dir = 5},/area/holodeck/rec_center/medical) +"cX" = (/obj/structure/window{icon_state = "rwindow";dir = 8},/obj/machinery/computer/pandemic,/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) +"cY" = (/turf/open/floor/holofloor{dir = 2;icon_state = "green"},/area/holodeck/rec_center/basketball) +"cZ" = (/turf/open/floor/holofloor/beach/coast_t,/area/holodeck/rec_center/beach) +"da" = (/obj/item/weapon/reagent_containers/glass/bucket,/turf/open/floor/holofloor/beach/coast_t,/area/holodeck/rec_center/beach) +"db" = (/obj/item/weapon/shovel/spade,/turf/open/floor/holofloor/beach/coast_t,/area/holodeck/rec_center/beach) +"dc" = (/turf/open/floor/holofloor{dir = 1;icon_state = "green"},/area/holodeck/rec_center/dodgeball) +"dd" = (/obj/structure/flora/ausbushes/pointybush,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"de" = (/turf/open/floor/holofloor{tag = "icon-white_warn (WEST)";icon_state = "white_warn";dir = 8},/area/holodeck/rec_center/medical) +"df" = (/turf/open/floor/holofloor{dir = 8;icon_state = "white_warn_corner";tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/medical) +"dg" = (/obj/machinery/door/window/westleft,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTH)";icon_state = "white_warn";dir = 1},/area/holodeck/rec_center/medical) +"dh" = (/turf/open/floor/holofloor{tag = "icon-white_warn (NORTH)";icon_state = "white_warn";dir = 1},/area/holodeck/rec_center/medical) +"di" = (/turf/open/floor/holofloor/beach/coast_b,/area/holodeck/rec_center/beach) +"dj" = (/obj/structure/bed,/obj/item/weapon/bedsheet/medical,/obj/machinery/iv_drip{density = 0},/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHWEST)";icon_state = "white_warn";dir = 10},/area/holodeck/rec_center/medical) +"dk" = (/obj/structure/window{icon_state = "rwindow";dir = 8},/obj/structure/bed,/obj/item/weapon/bedsheet/medical,/obj/machinery/iv_drip{density = 0},/turf/open/floor/holofloor{icon_state = "white_warn"},/area/holodeck/rec_center/medical) +"dl" = (/obj/structure/window{icon_state = "rwindow";dir = 8},/obj/machinery/sleeper{icon_state = "sleeper-open";dir = 1},/turf/open/floor/holofloor{icon_state = "white_warn"},/area/holodeck/rec_center/medical) +"dm" = (/obj/machinery/iv_drip{density = 0},/turf/open/floor/holofloor{icon_state = "white_warn"},/area/holodeck/rec_center/medical) +"dn" = (/obj/machinery/sleeper{icon_state = "sleeper-open";dir = 1},/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHEAST)";icon_state = "white_warn";dir = 6},/area/holodeck/rec_center/medical) +"do" = (/turf/open/floor/holofloor{dir = 10;icon_state = "green"},/area/holodeck/rec_center/basketball) +"dp" = (/obj/structure/holohoop{dir = 1;layer = 4.1},/turf/open/floor/holofloor{dir = 2;icon_state = "green"},/area/holodeck/rec_center/basketball) +"dq" = (/turf/open/floor/holofloor{dir = 6;icon_state = "green"},/area/holodeck/rec_center/basketball) +"dr" = (/turf/open/floor/holofloor/beach/water,/area/holodeck/rec_center/beach) +"ds" = (/turf/open/floor/holofloor/basalt,/obj/structure/table,/turf/open/floor/holofloor{tag = "icon-warningline (NORTH)";icon_state = "warningline";dir = 1},/area/holodeck/rec_center/thunderdome) +"dt" = (/turf/open/floor/holofloor/basalt,/obj/structure/table,/obj/item/clothing/head/helmet/thunderdome,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/under/color/green,/obj/item/weapon/holo/esword/green,/turf/open/floor/holofloor{tag = "icon-warningline (NORTH)";icon_state = "warningline";dir = 1},/area/holodeck/rec_center/thunderdome) +"du" = (/turf/open/floor/holofloor/basalt,/obj/structure/table,/obj/machinery/readybutton,/turf/open/floor/holofloor{tag = "icon-warningline (NORTH)";icon_state = "warningline";dir = 1},/area/holodeck/rec_center/thunderdome) +"dv" = (/turf/open/floor/holofloor{dir = 10;icon_state = "green"},/area/holodeck/rec_center/dodgeball) +"dw" = (/turf/open/floor/holofloor{dir = 2;icon_state = "green"},/area/holodeck/rec_center/dodgeball) +"dx" = (/obj/machinery/readybutton,/turf/open/floor/holofloor{dir = 6;icon_state = "green"},/area/holodeck/rec_center/dodgeball) +"dy" = (/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/refuel) +"dz" = (/turf/open/floor/holofloor/grass,/turf/open/floor/holofloor{tag = "icon-warningline";icon_state = "warningline";dir = 2},/area/holodeck/rec_center/spacechess) +"dA" = (/obj/item/weapon/banner/blue,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) +"dB" = (/obj/structure/table/wood/fancy,/obj/item/clothing/suit/armor/riot/knight/blue,/obj/item/clothing/head/helmet/knight/blue,/obj/item/weapon/claymore/weak,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) +"dC" = (/obj/structure/table/wood/fancy,/obj/item/clothing/head/crown/fancy{pixel_y = 6},/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) +"dD" = (/obj/structure/table/wood/fancy,/obj/item/clothing/suit/armor/riot/knight/red,/obj/item/clothing/head/helmet/knight/red,/obj/item/weapon/claymore/weak,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) +"dE" = (/obj/item/weapon/banner/red,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) +"dF" = (/turf/open/floor/holofloor/hyperspace,/area/holodeck/rec_center/kobayashi) +"dG" = (/obj/structure/window/reinforced,/turf/open/floor/holofloor/hyperspace,/area/holodeck/rec_center/kobayashi) +"dH" = (/obj/structure/closet{density = 0;opened = 1},/obj/item/clothing/suit/judgerobe,/obj/item/clothing/head/powdered_wig,/turf/open/floor/holofloor{dir = 8;icon_state = "dark";tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/chapelcourt) +"dI" = (/obj/structure/table/wood/fancy,/obj/item/clothing/suit/nun,/obj/item/clothing/head/nun_hood,/obj/item/clothing/suit/holidaypriest,/turf/open/floor/holofloor{dir = 8;icon_state = "dark";tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/chapelcourt) +"dJ" = (/obj/structure/table/wood/fancy,/obj/item/weapon/storage/book/bible,/turf/open/floor/holofloor{dir = 8;icon_state = "dark";tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/chapelcourt) +"dK" = (/obj/structure/table/wood/fancy,/obj/item/weapon/book/manual/wiki/security_space_law,/turf/open/floor/holofloor{dir = 8;icon_state = "dark";tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/chapelcourt) +"dL" = (/obj/structure/closet{name = "Evidence Closet"},/turf/open/floor/holofloor{dir = 8;icon_state = "dark";tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/chapelcourt) +"dM" = (/obj/machinery/conveyor/holodeck{dir = 5;icon_state = "conveyor0";id = "holocoaster";movedir = null;verted = -1},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"dN" = (/obj/machinery/conveyor/holodeck{dir = 8;id = "holocoaster"},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"dO" = (/obj/machinery/conveyor/holodeck{dir = 6;id = "holocoaster";movedir = null;verted = -1},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"dP" = (/turf/open/floor/holofloor{dir = 8;icon_state = "green"},/area/holodeck/rec_center/firingrange) +"dQ" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHWEST)";icon_state = "white_warn";dir = 9},/area/holodeck/rec_center/firingrange) +"dR" = (/obj/structure/window/reinforced{dir = 1},/turf/open/floor/holofloor{tag = "icon-white_warn (NORTH)";icon_state = "white_warn";dir = 1},/area/holodeck/rec_center/firingrange) +"dS" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHEAST)";icon_state = "white_warn";dir = 5},/area/holodeck/rec_center/firingrange) +"dT" = (/turf/open/floor/holofloor{dir = 4;icon_state = "green"},/area/holodeck/rec_center/firingrange) +"dU" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/refuel) +"dV" = (/obj/item/cardboard_cutout/adaptive{color = "#9999BB";icon_state = "cutout_viva";name = "Black Rook";tag = "icon-cutout_viva"},/turf/open/floor/holofloor{dir = 8;icon_state = "dark";tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/spacechess) +"dW" = (/obj/item/cardboard_cutout/adaptive{color = "#9999BB";icon_state = "cutout_mime";name = "Black Queen";tag = "icon-cutout_mime"},/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/spacechess) +"dX" = (/obj/item/cardboard_cutout/adaptive{color = "#9999BB";icon_state = "cutout_clown";name = "Black King";tag = "icon-cutout_clown"},/turf/open/floor/holofloor{dir = 8;icon_state = "dark";tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/spacechess) +"dY" = (/obj/item/cardboard_cutout/adaptive{color = "#9999BB";icon_state = "cutout_ian";name = "Black Knight";tag = "icon-cutout_ian"},/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/spacechess) +"dZ" = (/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) +"ea" = (/obj/structure/chair/wood/wings,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) +"eb" = (/obj/structure/window/reinforced,/obj/machinery/mass_driver{dir = 1;icon_state = "mass_driver";id = "trektorpedo1";name = "photon torpedo tube";tag = "icon-mass_driver (NORTH)"},/obj/item/toy/minimeteor{color = "";icon = 'icons/effects/effects.dmi';icon_state = "impact_laser";name = "photon torpedo"},/turf/open/floor/holofloor/hyperspace,/area/holodeck/rec_center/kobayashi) +"ec" = (/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/weapon/paper/trek_diploma = 1);settlers = list("Kirk","Worf","Gene")},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"ed" = (/obj/machinery/button/massdriver{id = "trektorpedo1";layer = 3.9;name = "photon torpedo button";pixel_x = -16;pixel_y = -5},/obj/machinery/button/massdriver{id = "trektorpedo2";layer = 3.9;name = "photon torpedo button";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/weapon/paper/trek_diploma = 1);settlers = list("Kirk","Worf","Gene")},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"ee" = (/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/weapon/paper/trek_diploma = 1);settlers = list("Kirk","Worf","Gene")},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"ef" = (/obj/structure/window/reinforced,/obj/machinery/mass_driver{dir = 1;icon_state = "mass_driver";id = "trektorpedo2";name = "photon torpedo tube";tag = "icon-mass_driver (NORTH)"},/obj/item/toy/minimeteor{color = "";icon = 'icons/effects/effects.dmi';icon_state = "impact_laser";name = "photon torpedo"},/turf/open/floor/holofloor/hyperspace,/area/holodeck/rec_center/kobayashi) +"eg" = (/obj/structure/chair{dir = 4},/turf/open/floor/holofloor{tag = "icon-chapel (NORTH)";icon_state = "chapel";dir = 1},/area/holodeck/rec_center/chapelcourt) +"eh" = (/turf/open/floor/holofloor{tag = "icon-chapel (EAST)";icon_state = "chapel";dir = 4},/area/holodeck/rec_center/chapelcourt) +"ei" = (/obj/structure/chair,/turf/open/floor/holofloor{dir = 8;icon_state = "dark";tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/chapelcourt) +"ej" = (/turf/open/floor/holofloor{tag = "icon-chapel (NORTH)";icon_state = "chapel";dir = 1},/area/holodeck/rec_center/chapelcourt) +"ek" = (/obj/structure/chair{dir = 8},/turf/open/floor/holofloor{tag = "icon-chapel (EAST)";icon_state = "chapel";dir = 4},/area/holodeck/rec_center/chapelcourt) +"el" = (/obj/machinery/conveyor/holodeck{id = "holocoaster"},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"em" = (/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"en" = (/obj/machinery/conveyor/holodeck{dir = 1;id = "holocoaster";layer = 2.5},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"eo" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/holofloor{tag = "icon-white_warn (WEST)";icon_state = "white_warn";dir = 8},/area/holodeck/rec_center/firingrange) +"ep" = (/obj/structure/target_stake,/obj/machinery/magnetic_module,/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/firingrange) +"eq" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/holofloor{tag = "icon-white_warn (EAST)";icon_state = "white_warn";dir = 4},/area/holodeck/rec_center/firingrange) +"er" = (/obj/item/cardboard_cutout/adaptive{color = "#9999BB";icon_state = "cutout_greytide";name = "Black Pawn";tag = "icon-cutout_greytide"},/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/spacechess) +"es" = (/obj/item/cardboard_cutout/adaptive{color = "#9999BB";icon_state = "cutout_greytide";name = "Black Pawn";tag = "icon-cutout_greytide"},/turf/open/floor/holofloor{dir = 8;icon_state = "dark";tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/spacechess) +"et" = (/obj/machinery/door/window/westleft{dir = 2;icon_state = "right"},/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) +"eu" = (/obj/structure/window/reinforced,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) +"ev" = (/obj/machinery/door/window/westleft{dir = 2},/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) +"ew" = (/obj/structure/table/glass,/obj/machinery/recharger,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"ex" = (/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"ey" = (/obj/structure/chair/comfy{tag = "icon-comfychair (NORTH)";icon_state = "comfychair";dir = 1},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"ez" = (/obj/structure/table/glass,/obj/item/weapon/gun/energy/e_gun/mini/practice_phaser,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"eA" = (/obj/structure/chair{dir = 4},/turf/open/floor/holofloor{dir = 8;icon_state = "chapel";tag = "icon-chapel"},/area/holodeck/rec_center/chapelcourt) +"eB" = (/turf/open/floor/holofloor{tag = "icon-chapel";icon_state = "chapel";dir = 2},/area/holodeck/rec_center/chapelcourt) +"eC" = (/obj/item/weapon/gavelblock,/obj/item/weapon/gavelhammer,/obj/structure/table/wood,/turf/open/floor/holofloor{dir = 8;icon_state = "dark";tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/chapelcourt) +"eD" = (/turf/open/floor/holofloor{dir = 8;icon_state = "chapel";tag = "icon-chapel"},/area/holodeck/rec_center/chapelcourt) +"eE" = (/obj/structure/chair{dir = 8},/turf/open/floor/holofloor{tag = "icon-chapel";icon_state = "chapel";dir = 2},/area/holodeck/rec_center/chapelcourt) +"eF" = (/obj/item/weapon/shovel,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"eG" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHWEST)";icon_state = "white_warn";dir = 10},/area/holodeck/rec_center/firingrange) +"eH" = (/turf/open/floor/holofloor{icon_state = "white_warn"},/area/holodeck/rec_center/firingrange) +"eI" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHEAST)";icon_state = "white_warn";dir = 6},/area/holodeck/rec_center/firingrange) +"eJ" = (/obj/item/weapon/weldingtool,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/refuel) +"eK" = (/turf/open/floor/holofloor{dir = 8;icon_state = "dark";tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/spacechess) +"eL" = (/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/spacechess) +"eM" = (/turf/open/floor/holofloor{tag = "icon-stairs-old (WEST)";icon_state = "stairs-old";dir = 8},/area/holodeck/rec_center/thunderdome1218) +"eN" = (/obj/structure/table/wood,/obj/item/weapon/melee/chainofcommand{name = "chain whip"},/obj/item/weapon/twohanded/spear,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/thunderdome1218) +"eO" = (/obj/structure/table/wood,/obj/item/weapon/scythe,/obj/item/weapon/twohanded/spear,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/thunderdome1218) +"eP" = (/obj/structure/table/wood,/obj/item/weapon/tailclub,/obj/item/weapon/twohanded/spear,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/thunderdome1218) +"eQ" = (/turf/open/floor/holofloor{dir = 8;icon_state = "dark";tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/chapelcourt) +"eR" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/holofloor{dir = 8;icon_state = "red"},/area/holodeck/rec_center/firingrange) +"eS" = (/turf/open/floor/holofloor,/area/holodeck/rec_center/firingrange) +"eT" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/holofloor{dir = 4;icon_state = "red"},/area/holodeck/rec_center/firingrange) +"eU" = (/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/thunderdome1218) +"eV" = (/obj/machinery/modular_computer/console/preset/civilian,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"eW" = (/obj/structure/chair/office/dark{dir = 8},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"eX" = (/obj/structure/chair/office/dark{dir = 4},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"eY" = (/obj/machinery/computer/station_alert,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"eZ" = (/obj/structure/chair{dir = 1},/turf/open/floor/holofloor{tag = "icon-chapel (NORTH)";icon_state = "chapel";dir = 1},/area/holodeck/rec_center/chapelcourt) +"fa" = (/obj/structure/chair{dir = 1},/turf/open/floor/holofloor{tag = "icon-chapel (EAST)";icon_state = "chapel";dir = 4},/area/holodeck/rec_center/chapelcourt) +"fb" = (/obj/machinery/modular_computer/console/preset/civilian,/obj/structure/window/reinforced,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"fc" = (/obj/machinery/computer/atmos_alert,/obj/structure/window/reinforced,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"fd" = (/obj/structure/chair{dir = 1},/turf/open/floor/holofloor{dir = 8;icon_state = "chapel";tag = "icon-chapel"},/area/holodeck/rec_center/chapelcourt) +"fe" = (/obj/structure/chair{dir = 1},/turf/open/floor/holofloor{tag = "icon-chapel";icon_state = "chapel";dir = 2},/area/holodeck/rec_center/chapelcourt) +"ff" = (/obj/machinery/conveyor/holodeck{id = "holocoaster"},/obj/structure/chair/office{dir = 1;name = "coaster car"},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"fg" = (/obj/machinery/conveyor_switch/oneway{convdir = -1;id = "holocoaster"},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"fh" = (/obj/structure/window/reinforced,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"fi" = (/obj/item/cardboard_cutout/adaptive{icon_state = "cutout_greytide";name = "White Pawn";tag = "icon-cutout_greytide"},/turf/open/floor/holofloor{dir = 8;icon_state = "dark";tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/spacechess) +"fj" = (/obj/item/cardboard_cutout/adaptive{icon_state = "cutout_greytide";name = "White Pawn";tag = "icon-cutout_greytide"},/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/spacechess) +"fk" = (/obj/structure/window/reinforced,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/thunderdome1218) +"fl" = (/obj/machinery/door/window/westleft{dir = 2},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/thunderdome1218) +"fm" = (/obj/machinery/door/window/westleft{dir = 2;icon_state = "right"},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"fn" = (/obj/structure/table,/obj/item/weapon/folder,/obj/item/weapon/pen/blue,/obj/structure/window/reinforced{dir = 8},/turf/open/floor/holofloor{tag = "icon-neutral (NORTH)";icon_state = "neutral";dir = 1},/area/holodeck/rec_center/kobayashi) +"fo" = (/obj/structure/table,/obj/item/weapon/folder,/obj/item/weapon/pen,/turf/open/floor/holofloor{tag = "icon-neutral (NORTH)";icon_state = "neutral";dir = 1},/area/holodeck/rec_center/kobayashi) +"fp" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/folder,/obj/item/weapon/pen/red,/turf/open/floor/holofloor{tag = "icon-neutral (NORTH)";icon_state = "neutral";dir = 1},/area/holodeck/rec_center/kobayashi) +"fq" = (/obj/machinery/door/window/westleft{dir = 2},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"fr" = (/obj/structure/closet/crate/miningcar{can_buckle = 1;desc = "Great for mining!";name = "minecart"},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"fs" = (/obj/structure/table/reinforced,/obj/machinery/recharger,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/holofloor{dir = 8;icon_state = "red"},/area/holodeck/rec_center/firingrange) +"ft" = (/obj/item/weapon/paper/range,/turf/open/floor/holofloor,/area/holodeck/rec_center/firingrange) +"fu" = (/obj/structure/table/reinforced,/obj/machinery/magnetic_controller{autolink = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/holofloor{dir = 4;icon_state = "red"},/area/holodeck/rec_center/firingrange) +"fv" = (/obj/item/cardboard_cutout/adaptive{icon_state = "cutout_viva";name = "White Rook";tag = "icon-cutout_viva"},/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/spacechess) +"fw" = (/obj/item/cardboard_cutout/adaptive{icon_state = "cutout_mime";name = "White Queen";tag = "icon-cutout_mime"},/turf/open/floor/holofloor{dir = 8;icon_state = "dark";tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/spacechess) +"fx" = (/obj/item/cardboard_cutout/adaptive{icon_state = "cutout_clown";name = "White King";tag = "icon-cutout_clown"},/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/spacechess) +"fy" = (/obj/item/cardboard_cutout/adaptive{icon_state = "cutout_ian";name = "White Knight";tag = "icon-cutout_ian"},/turf/open/floor/holofloor{dir = 8;icon_state = "dark";tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/spacechess) +"fz" = (/turf/open/floor/holofloor{tag = "icon-neutral (NORTH)";icon_state = "neutral";dir = 1},/area/holodeck/rec_center/kobayashi) +"fA" = (/obj/structure/chair{dir = 1},/turf/open/floor/holofloor,/area/holodeck/rec_center/kobayashi) +"fB" = (/turf/open/floor/holofloor{dir = 1;icon_state = "green"},/area/holodeck/rec_center/firingrange) +"fC" = (/turf/open/floor/holofloor/grass,/turf/open/floor/holofloor{tag = "icon-warningline (NORTH)";icon_state = "warningline";dir = 1},/area/holodeck/rec_center/spacechess) +"fD" = (/obj/structure/chair/wood/normal{icon_state = "wooden_chair";dir = 1},/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) +"fE" = (/obj/structure/rack,/obj/item/clothing/under/trek/medsci,/obj/item/clothing/under/trek/medsci,/obj/item/clothing/under/trek/command,/turf/open/floor/holofloor{tag = "icon-neutral (NORTH)";icon_state = "neutral";dir = 1},/area/holodeck/rec_center/kobayashi) +"fF" = (/turf/open/floor/holofloor{tag = "icon-neutral";icon_state = "neutral";dir = 2},/area/holodeck/rec_center/kobayashi) +"fG" = (/obj/structure/rack,/obj/item/clothing/under/trek/engsec,/obj/item/clothing/under/trek/engsec,/turf/open/floor/holofloor{tag = "icon-neutral (NORTH)";icon_state = "neutral";dir = 1},/area/holodeck/rec_center/kobayashi) +"fH" = (/obj/machinery/conveyor/holodeck{dir = 9;icon_state = "conveyor0";id = "holocoaster";tag = "icon-conveyor0 (NORTHWEST)";verted = -1},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"fI" = (/obj/machinery/conveyor/holodeck{dir = 4;id = "holocoaster"},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"fJ" = (/obj/machinery/conveyor/holodeck{dir = 10;id = "holocoaster";verted = -1},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"fK" = (/obj/item/target,/obj/item/target/clown,/turf/open/floor/holofloor,/area/holodeck/rec_center/firingrange) +"fL" = (/obj/item/target,/obj/item/target/syndicate,/turf/open/floor/holofloor,/area/holodeck/rec_center/firingrange) +"fM" = (/obj/structure/rack,/obj/item/weapon/gun/energy/laser/practice,/obj/item/clothing/ears/earmuffs,/turf/open/floor/holofloor,/area/holodeck/rec_center/firingrange) +"fN" = (/obj/structure/window/reinforced{dir = 1},/turf/closed/indestructible/riveted,/area/space) +"fO" = (/turf/closed/indestructible/riveted,/area/tdome/arena_source) +"fP" = (/obj/machinery/igniter,/turf/open/floor/plasteel,/area/tdome/arena_source) +"fQ" = (/turf/open/floor/plasteel,/area/tdome/arena_source) +"fR" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/saber/red,/turf/open/floor/plasteel/black,/area/tdome/arena_source) +"fS" = (/obj/machinery/door/poddoor{id = "thunderdomegen";name = "General Supply"},/turf/open/floor/plasteel/black,/area/tdome/arena_source) +"fT" = (/obj/machinery/door/poddoor{id = "thunderdome";name = "Thunderdome Blast Door"},/turf/open/floor/plasteel,/area/tdome/arena_source) +"fU" = (/turf/open/floor/plasteel/red/side{dir = 8},/area/tdome/arena_source) +"fV" = (/turf/open/floor/plasteel/green/side{dir = 4},/area/tdome/arena_source) +"fW" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/saber/green,/turf/open/floor/plasteel/black,/area/tdome/arena_source) +"fX" = (/turf/open/floor/bluegrid,/area/tdome/arena_source) +"fY" = (/obj/machinery/flasher{id = "tdomeflash";name = "Thunderdome Flash"},/turf/open/floor/bluegrid,/area/tdome/arena_source) +"fZ" = (/obj/machinery/door/poddoor{id = "thunderdomehea";name = "Heavy Supply"},/turf/open/floor/plasteel/black,/area/tdome/arena_source) +"ga" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/turf/open/floor/plasteel/black,/area/tdome/arena_source) +"gb" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/turf/open/floor/plasteel/black,/area/tdome/arena_source) +"gc" = (/turf/closed/indestructible/riveted,/area/start) +"gd" = (/obj/effect/landmark/start,/turf/open/floor/plating,/area/start) +"ge" = (/turf/closed/indestructible/riveted,/area/ctf) +"gf" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTHWEST)";dir = 9},/area/ctf) +"gg" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTH)";dir = 1},/area/ctf) +"gh" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTHEAST)";dir = 5},/area/ctf) +"gi" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (NORTHWEST)";dir = 9},/area/ctf) +"gj" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (NORTH)";dir = 1},/area/ctf) +"gk" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (NORTHEAST)";dir = 5},/area/ctf) +"gl" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (WEST)";dir = 8},/area/ctf) +"gm" = (/turf/open/floor/plasteel/black,/area/ctf) +"gn" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (EAST)";dir = 4},/area/ctf) +"go" = (/turf/open/floor/plasteel/blue,/area/ctf) +"gp" = (/turf/open/floor/plasteel/darkblue,/area/ctf) +"gq" = (/obj/structure/barricade/security/ctf,/turf/open/floor/plasteel/circuit,/area/ctf) +"gr" = (/obj/structure/table/reinforced,/turf/open/floor/plasteel/bluespace,/area/ctf) +"gs" = (/obj/structure/barricade/security/ctf,/turf/open/floor/plasteel/bluespace,/area/ctf) +"gt" = (/turf/open/floor/plasteel/bluespace,/area/ctf) +"gu" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (WEST)";dir = 8},/area/ctf) +"gv" = (/obj/structure/barricade/security/ctf,/turf/open/floor/plasteel/circuit/rcircuit,/area/ctf) +"gw" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (EAST)";dir = 4},/area/ctf) +"gx" = (/turf/open/floor/plasteel/red,/area/ctf) +"gy" = (/obj/structure/kitchenspike,/turf/open/floor/plasteel/black,/area/ctf) +"gz" = (/turf/closed/indestructible/splashscreen,/area/start) +"gA" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (SOUTHWEST)";dir = 10},/area/ctf) +"gB" = (/turf/open/floor/plasteel/darkblue/side,/area/ctf) +"gC" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (SOUTHEAST)";dir = 6},/area/ctf) +"gD" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (SOUTHWEST)";dir = 10},/area/ctf) +"gE" = (/turf/open/floor/plasteel/darkred/side,/area/ctf) +"gF" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (SOUTHEAST)";dir = 6},/area/ctf) +"gG" = (/obj/structure/window/reinforced/fulltile{obj_integrity = 5000;max_integrity = 5000;name = "hardened window"},/turf/open/floor/plating,/area/ctf) +"gH" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline,/area/ctf) +"gI" = (/turf/open/floor/plasteel/darkblue/corner,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)";dir = 1},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHWEST)";dir = 9},/area/ctf) +"gJ" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (WEST)";dir = 8},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)";dir = 1},/area/ctf) +"gK" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)";dir = 1},/area/ctf) +"gL" = (/turf/open/floor/plasteel/darkblue/corner,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)";dir = 1},/area/ctf) +"gM" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)";dir = 1},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHEAST)";dir = 5},/area/ctf) +"gN" = (/obj/machinery/power/emitter/energycannon,/turf/open/floor/plating,/area/ctf) +"gO" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (EAST)";dir = 4},/area/ctf) +"gP" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (EAST)";dir = 4},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)";dir = 8},/area/ctf) +"gQ" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (WEST)";dir = 8},/area/ctf) +"gR" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (EAST)";dir = 4},/area/ctf) +"gS" = (/turf/open/floor/plating/warnplate{icon_plating = "warnplate"},/area/ctf) +"gT" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)";dir = 8},/area/ctf) +"gU" = (/turf/open/floor/plating/warnplate{dir = 8},/area/ctf) +"gV" = (/turf/open/floor/plating,/area/ctf) +"gW" = (/turf/open/floor/plating/warnplate{dir = 4;luminosity = 2},/area/ctf) +"gX" = (/turf/open/floor/plasteel/darkblue/corner,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)";dir = 8},/area/ctf) +"gY" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (NORTH)";dir = 1},/area/ctf) +"gZ" = (/turf/open/floor/plasteel/darkblue/corner,/area/ctf) +"ha" = (/turf/open/floor/plating/warnplate{dir = 1},/area/ctf) +"hb" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (EAST)";dir = 4},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHWEST)";dir = 10},/area/ctf) +"hc" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (NORTH)";dir = 1},/turf/open/floor/plasteel/warningline,/area/ctf) +"hd" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (EAST)";dir = 4},/turf/open/floor/plasteel/warningline,/area/ctf) +"he" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHEAST)";dir = 6},/area/ctf) +"hf" = (/obj/machinery/power/emitter/energycannon{tag = "icon-emitter (NORTH)";icon_state = "emitter";dir = 1},/turf/open/floor/plating,/area/ctf) +"hg" = (/obj/structure/trap/ctf/blue,/turf/open/floor/plasteel/blue,/area/ctf) +"hh" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHWEST)";dir = 9},/area/ctf) +"hi" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)";dir = 1},/area/ctf) +"hj" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHEAST)";dir = 5},/area/ctf) +"hk" = (/turf/open/floor/plasteel/darkred,/area/ctf) +"hl" = (/obj/structure/trap/ctf/red,/turf/open/floor/plasteel/darkred,/area/ctf) +"hm" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)";dir = 8},/area/ctf) +"hn" = (/turf/open/floor/plasteel/circuit,/area/ctf) +"ho" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (EAST)";dir = 4},/area/ctf) +"hp" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHWEST)";dir = 10},/area/ctf) +"hq" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline,/area/ctf) +"hr" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHEAST)";dir = 6},/area/ctf) +"hs" = (/obj/structure/barricade/security/ctf,/turf/open/floor/plasteel/circuit/gcircuit/off,/area/ctf) +"ht" = (/obj/structure/trap/ctf/red,/turf/open/floor/plasteel/red,/area/ctf) +"hu" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTHWEST)";dir = 9},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHWEST)";dir = 9},/area/ctf) +"hv" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTH)";dir = 1},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)";dir = 1},/area/ctf) +"hw" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTHEAST)";dir = 5},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)";dir = 1},/area/ctf) +"hx" = (/turf/open/floor/plasteel/circuit/gcircuit/off,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)";dir = 1},/area/ctf) +"hy" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (NORTHWEST)";dir = 9},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)";dir = 1},/area/ctf) +"hz" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (NORTH)";dir = 1},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)";dir = 1},/area/ctf) +"hA" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (NORTHEAST)";dir = 5},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHEAST)";dir = 5},/area/ctf) +"hB" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (WEST)";dir = 8},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)";dir = 8},/area/ctf) +"hC" = (/turf/open/floor/plasteel/circuit/gcircuit/off,/area/ctf) +"hD" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (EAST)";dir = 4},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (EAST)";dir = 4},/area/ctf) +"hE" = (/turf/open/floor/plasteel/circuit/rcircuit,/area/ctf) +"hF" = (/turf/open/floor/plasteel/circuit/gcircuit/animated,/area/ctf) +"hG" = (/obj/machinery/capture_the_flag/blue,/turf/open/floor/plasteel/circuit/gcircuit/animated,/area/ctf) +"hH" = (/obj/item/weapon/twohanded/required/ctf/blue,/turf/open/floor/plasteel/circuit/gcircuit/animated,/area/ctf) +"hI" = (/obj/item/weapon/twohanded/required/ctf/red,/turf/open/floor/plasteel/circuit/gcircuit/animated,/area/ctf) +"hJ" = (/obj/machinery/capture_the_flag/red,/turf/open/floor/plasteel/circuit/gcircuit/animated,/area/ctf) +"hK" = (/obj/effect/landmark/shuttle_import,/turf/open/space,/area/space) +"hL" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (SOUTHWEST)";dir = 10},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHWEST)";dir = 10},/area/ctf) +"hM" = (/turf/open/floor/plasteel/darkblue/side,/turf/open/floor/plasteel/warningline,/area/ctf) +"hN" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (SOUTHEAST)";dir = 6},/turf/open/floor/plasteel/warningline,/area/ctf) +"hO" = (/turf/open/floor/plasteel/circuit/gcircuit/off,/turf/open/floor/plasteel/warningline,/area/ctf) +"hP" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (SOUTHWEST)";dir = 10},/turf/open/floor/plasteel/warningline,/area/ctf) +"hQ" = (/turf/open/floor/plasteel/darkred/side,/turf/open/floor/plasteel/warningline,/area/ctf) +"hR" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (SOUTHEAST)";dir = 6},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHEAST)";dir = 6},/area/ctf) +"hS" = (/turf/closed/wall/mineral/titanium/overspace,/area/centcom/evac) +"hT" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r";dir = 1},/turf/open/floor/plating/airless,/area/centcom/evac) +"hU" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion";dir = 1},/turf/open/floor/plating/airless,/area/centcom/evac) +"hV" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l";dir = 1},/turf/open/floor/plating/airless,/area/centcom/evac) +"hW" = (/obj/docking_port/stationary{dir = 1;dwidth = 1;height = 4;id = "pod4_away";name = "recovery ship";width = 3},/turf/open/space,/area/space) +"hX" = (/obj/docking_port/stationary{dir = 1;dwidth = 1;height = 4;id = "pod3_away";name = "recovery ship";width = 3},/turf/open/space,/area/space) +"hY" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHWEST)";dir = 9},/area/ctf) +"hZ" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)";dir = 1},/area/ctf) +"ia" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHEAST)";dir = 5},/area/ctf) +"ib" = (/turf/closed/wall/mineral/titanium,/area/centcom/evac) +"ic" = (/obj/structure/window/reinforced,/obj/structure/shuttle/engine/heater{icon_state = "heater";dir = 1},/turf/open/floor/plating/airless,/area/centcom/evac) +"id" = (/obj/machinery/door/airlock/titanium,/turf/open/floor/plating,/area/centcom/evac) +"ie" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/open/floor/plating,/area/centcom/evac) +"if" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)";dir = 8},/area/ctf) +"ig" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (EAST)";dir = 4},/area/ctf) +"ih" = (/turf/open/floor/plating,/area/centcom/evac) +"ii" = (/turf/open/floor/plating,/turf/closed/wall/mineral/titanium/interior,/area/centcom/evac) +"ij" = (/turf/open/floor/mineral/titanium/blue,/turf/closed/wall/mineral/titanium/interior,/area/centcom/evac) +"ik" = (/obj/structure/closet/emcloset,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"il" = (/turf/open/floor/mineral/titanium/yellow,/area/centcom/evac) +"im" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/toxin{pixel_x = -2;pixel_y = 4},/obj/item/weapon/storage/firstaid/toxin,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"in" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/fire{pixel_x = -2;pixel_y = 4},/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"io" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2;pixel_y = 0},/obj/item/weapon/storage/firstaid/regular{pixel_x = -2;pixel_y = 4},/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"ip" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHWEST)";dir = 10},/area/ctf) +"iq" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline,/area/ctf) +"ir" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHEAST)";dir = 6},/area/ctf) +"is" = (/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"it" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)";dir = 8},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)";dir = 1},/area/ctf) +"iu" = (/turf/open/floor/plasteel/darkred/corner,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)";dir = 1},/area/ctf) +"iv" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (WEST)";dir = 8},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)";dir = 1},/area/ctf) +"iw" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (WEST)";dir = 8},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHEAST)";dir = 5},/area/ctf) +"ix" = (/turf/open/floor/plasteel/darkred/corner,/area/ctf) +"iy" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (NORTH)";dir = 1},/area/ctf) +"iz" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (NORTH)";dir = 1},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (EAST)";dir = 4},/area/ctf) +"iA" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/open/floor/mineral/plastitanium,/area/centcom/evac) +"iB" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/fancy/donut_box,/turf/open/floor/mineral/plastitanium,/area/centcom/evac) +"iC" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/open/floor/mineral/plastitanium,/area/centcom/evac) +"iD" = (/obj/structure/table/reinforced,/turf/open/floor/mineral/plastitanium,/area/centcom/evac) +"iE" = (/obj/machinery/sleeper{icon_state = "sleeper-open";dir = 8},/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"iF" = (/obj/structure/chair{dir = 8},/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"iG" = (/obj/machinery/computer/secure_data,/turf/open/floor/mineral/plastitanium,/area/centcom/evac) +"iH" = (/obj/structure/chair{dir = 1},/turf/open/floor/mineral/plastitanium,/area/centcom/evac) +"iI" = (/obj/structure/chair{dir = 4},/turf/open/floor/mineral/plastitanium,/area/centcom/evac) +"iJ" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/item/weapon/stamp,/turf/open/floor/mineral/plastitanium,/area/centcom/evac) +"iK" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (EAST)";dir = 4},/area/ctf) +"iL" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (WEST)";dir = 8},/area/ctf) +"iM" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (WEST)";dir = 8},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (EAST)";dir = 4},/area/ctf) +"iN" = (/obj/structure/table,/obj/item/device/assembly/flash/handheld,/turf/open/floor/mineral/plastitanium,/area/centcom/evac) +"iO" = (/turf/open/floor/mineral/plastitanium,/area/centcom/evac) +"iP" = (/obj/structure/chair{dir = 4},/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"iQ" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHWEST)";dir = 10},/area/ctf) +"iR" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (EAST)";dir = 4},/turf/open/floor/plasteel/warningline,/area/ctf) +"iS" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (NORTH)";dir = 1},/turf/open/floor/plasteel/warningline,/area/ctf) +"iT" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (NORTH)";dir = 1},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHEAST)";dir = 6},/area/ctf) +"iU" = (/obj/structure/table,/obj/item/weapon/storage/box/handcuffs,/turf/open/floor/mineral/plastitanium,/area/centcom/evac) +"iV" = (/obj/machinery/door/window/northright{base_state = "right";dir = 4;icon_state = "right";name = "Security Desk";req_access_txt = "103"},/turf/open/floor/mineral/plastitanium,/area/centcom/evac) +"iW" = (/obj/docking_port/stationary{dir = 4;dwidth = 1;height = 4;id = "pod2_away";name = "recovery ship";width = 3},/turf/open/space,/area/space) +"iX" = (/obj/structure/bed,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"iY" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/centcom/evac) +"iZ" = (/obj/machinery/door/airlock/titanium,/turf/open/floor/mineral/titanium/yellow,/area/centcom/evac) +"ja" = (/obj/docking_port/stationary{dir = 4;dwidth = 2;height = 7;id = "pod1_away";name = "recovery ship";width = 5},/turf/open/space,/area/space) +"jb" = (/obj/structure/table,/obj/structure/bedsheetbin,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"jc" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"jd" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"je" = (/obj/machinery/door/airlock/titanium{name = "Cockpit";req_access_txt = "109"},/turf/open/floor/mineral/titanium/yellow,/area/centcom/evac) +"jf" = (/obj/structure/table,/obj/item/device/radio/off,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"jg" = (/obj/structure/chair{dir = 4;name = "Prosecution"},/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"jh" = (/obj/structure/filingcabinet,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"ji" = (/obj/structure/chair,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"jj" = (/turf/closed/wall/mineral/titanium,/area/shuttle/escape) +"jk" = (/obj/machinery/status_display,/turf/closed/wall/mineral/titanium,/area/shuttle/escape) +"jl" = (/obj/structure/table,/obj/item/weapon/storage/lockbox,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"jm" = (/obj/structure/table,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"jn" = (/obj/machinery/computer/shuttle,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"jo" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/pen,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"jp" = (/obj/structure/table,/obj/item/weapon/paper_bin,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"jq" = (/turf/closed/indestructible/riveted,/area/centcom/ferry) +"jr" = (/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"js" = (/turf/open/floor/mineral/plastitanium,/area/shuttle/escape) +"jt" = (/turf/open/floor/plasteel/black,/area/centcom/ferry) +"ju" = (/turf/open/floor/plasteel/darkwarning{tag = "icon-warndark (EAST)";dir = 4},/area/centcom/ferry) +"jv" = (/turf/open/floor/plasteel/delivery,/area/centcom/ferry) +"jw" = (/obj/machinery/door/airlock/external{name = "Backup Emergency Escape Shuttle"},/turf/open/floor/plasteel/delivery,/area/centcom/ferry) +"jx" = (/obj/machinery/door/airlock/titanium,/obj/docking_port/stationary{dir = 4;dwidth = 2;height = 8;id = "backup_away";name = "Backup Shuttle Dock";width = 8},/obj/docking_port/mobile/emergency/backup,/turf/open/floor/plating,/area/shuttle/escape) +"jy" = (/obj/structure/chair/office/light{dir = 4},/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"jz" = (/obj/structure/table/wood,/obj/item/weapon/paper{info = "Due to circumstances beyond our control, your Emergency Evacuation Shuttle is out of service.

We apologise for the inconvinience this may cause you.

Please enjoy the use of this complementary book.

Sincerely,
Centcom Operations Demolitions Examination Retribution Bugfixing Underlining Services"},/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"jA" = (/obj/structure/table/wood,/obj/item/weapon/book/manual/random,/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"jB" = (/turf/closed/indestructible/fakedoor,/area/centcom/ferry) +"jC" = (/obj/machinery/door/airlock/centcom{name = "Centcom Backup Docks";opacity = 1;req_access_txt = "101"},/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jD" = (/obj/machinery/vending/coffee,/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jE" = (/obj/machinery/vending/cigarette{products = list(/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate = 7, /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2, /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/lighter/greyscale = 4, /obj/item/weapon/storage/fancy/rollingpapers = 5)},/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jF" = (/obj/structure/reagent_dispensers/water_cooler,/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jG" = (/obj/machinery/status_display{density = 0;pixel_y = 32;supply_display = 1},/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jH" = (/obj/item/weapon/twohanded/required/kirbyplants,/obj/machinery/status_display{pixel_y = 32},/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jI" = (/obj/structure/chair/office/dark,/obj/effect/landmark{name = "Emergencyresponseteam"},/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jJ" = (/obj/structure/table/reinforced,/turf/open/floor/vault,/area/centcom/ferry) +"jK" = (/obj/structure/chair/office/dark{dir = 8},/obj/effect/landmark{name = "Emergencyresponseteam"},/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jL" = (/obj/structure/chair/office/dark{dir = 4},/obj/effect/landmark{name = "Emergencyresponseteam"},/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jM" = (/obj/machinery/shuttle_manipulator,/turf/open/floor/plasteel/circuit,/area/centcom/ferry) +"jN" = (/turf/open/floor/plasteel/circuit,/area/centcom/ferry) +"jO" = (/obj/structure/extinguisher_cabinet{pixel_x = 28},/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jP" = (/obj/structure/closet/secure_closet/ertCom,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) +"jQ" = (/obj/structure/chair/office/dark,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) +"jR" = (/obj/structure/table/reinforced,/obj/item/weapon/c4,/obj/item/weapon/c4{pixel_x = 7},/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) +"jS" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/syringes,/obj/item/weapon/gun/syringe/rapidsyringe,/obj/structure/extinguisher_cabinet{pixel_y = 28},/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) +"jT" = (/obj/structure/closet/secure_closet/ertEngi,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) +"jU" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/drinks/bottle/rum,/obj/item/weapon/reagent_containers/food/drinks/bottle/tequila,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka{pixel_x = -5},/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey{pixel_x = 5},/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jV" = (/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) +"jW" = (/obj/machinery/door/poddoor/ert,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) +"jX" = (/obj/structure/chair/office/dark{dir = 1},/obj/effect/landmark{name = "Emergencyresponseteam"},/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jY" = (/obj/structure/table/wood,/obj/item/weapon/storage/box/drinkingglasses,/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jZ" = (/turf/closed/indestructible/riveted,/area/centcom/prison) +"ka" = (/turf/open/floor/plasteel/darkgreen/side{dir = 4},/area/centcom/ferry) +"kb" = (/obj/machinery/door/poddoor/shutters/preopen{id = "adminshut";name = "Administrative Shutters"},/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2";dir = 6},/area/centcom/ferry) +"kc" = (/turf/open/floor/wood,/area/centcom/ferry) +"kd" = (/obj/effect/landmark{name = "prisonwarp"},/turf/open/floor/plasteel,/area/centcom/prison) +"ke" = (/obj/structure/closet/secure_closet/ertSec,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) +"kf" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/emps,/obj/item/weapon/gun/energy/ionrifle{pin = /obj/item/device/firing_pin},/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) +"kg" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/syringes,/obj/item/weapon/gun/syringe/rapidsyringe,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) +"kh" = (/obj/structure/closet/secure_closet/ertMed,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) +"ki" = (/obj/structure/table/reinforced,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/turf/open/floor/vault,/area/centcom/ferry) +"kj" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -3;pixel_y = 5},/obj/item/weapon/pen/blue,/turf/open/floor/vault,/area/centcom/ferry) +"kk" = (/obj/machinery/door/airlock/centcom{name = "Administrative Office";opacity = 1;req_access_txt = "109"},/turf/open/floor/wood,/area/centcom/ferry) +"kl" = (/obj/structure/chair/office/dark,/turf/open/floor/wood,/area/centcom/ferry) +"km" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows";dir = 8},/area/centcom/ferry) +"kn" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2";dir = 8},/area/centcom/ferry) +"ko" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows";dir = 4},/area/centcom/ferry) +"kp" = (/obj/machinery/door/airlock/centcom{name = "briefing room";opacity = 1;req_access_txt = "101"},/turf/open/floor/plasteel/black,/area/centcom/ferry) +"kq" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin,/turf/open/floor/carpet,/area/centcom/ferry) +"kr" = (/obj/structure/table/wood,/obj/item/weapon/pen,/turf/open/floor/carpet,/area/centcom/ferry) +"ks" = (/turf/open/floor/carpet,/area/centcom/ferry) +"kt" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows";dir = 1},/area/centcom/ferry) +"ku" = (/obj/machinery/door/poddoor/shutters/preopen{id = "adminshut";name = "Administrative Shutters"},/turf/closed/indestructible/fakeglass{icon_state = "fakewindows";dir = 1},/area/centcom/ferry) +"kv" = (/obj/machinery/button/door{id = "adminshut";name = "Administrative Shutter-Control";pixel_y = 26},/turf/open/floor/carpet,/area/centcom/ferry) +"kw" = (/obj/structure/chair/comfy/black{dir = 1},/turf/open/floor/carpet,/area/centcom/ferry) +"kx" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows";dir = 9},/area/centcom/ferry) +"ky" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows";dir = 6},/area/centcom/ferry) +"kz" = (/obj/machinery/door/poddoor/shutters/preopen{id = "adminshut";name = "Administrative Shutters"},/turf/closed/indestructible/fakeglass,/area/centcom/ferry) +"kA" = (/obj/structure/showcase/fakesec,/turf/open/floor/carpet,/area/centcom/ferry) +"kB" = (/obj/structure/filingcabinet,/turf/open/floor/carpet,/area/centcom/ferry) +"kC" = (/obj/structure/reagent_dispensers/water_cooler,/turf/open/floor/carpet,/area/centcom/ferry) +"kD" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'";icon_state = "space";layer = 4;name = "EXTERNAL AIRLOCK";pixel_x = 0},/turf/closed/indestructible/fakeglass{icon_state = "fakewindows";dir = 8},/area/centcom/ferry) +"kE" = (/obj/machinery/computer/shuttle/ferry,/turf/open/floor/plasteel/darkwarning{dir = 8},/area/centcom/ferry) +"kF" = (/turf/closed/indestructible/riveted,/area/centcom/evac) +"kG" = (/obj/docking_port/stationary{dir = 8;dwidth = 2;height = 12;id = "ferry_away";name = "unknown";width = 5},/turf/open/space,/area/space) +"kH" = (/obj/machinery/door/airlock/external{name = "Ferry Airlock";req_access_txt = "0"},/turf/open/floor/plasteel/delivery,/area/centcom/ferry) +"kI" = (/turf/open/floor/plasteel/darkwarning{dir = 8},/area/centcom/ferry) +"kJ" = (/turf/open/floor/plasteel/darkgreen/corner{dir = 4},/area/centcom/ferry) +"kK" = (/obj/structure/mirror{pixel_y = 32},/obj/structure/dresser,/turf/open/floor/wood,/area/centcom/ferry) +"kL" = (/obj/machinery/vending/autodrobe,/turf/open/floor/wood,/area/centcom/ferry) +"kM" = (/turf/open/floor/plasteel/darkred/side{dir = 9},/area/centcom/evac) +"kN" = (/turf/open/floor/plasteel/darkred/side{dir = 1},/area/centcom/evac) +"kO" = (/obj/structure/table,/obj/item/weapon/storage/box/handcuffs,/turf/open/floor/plasteel/darkred/side{dir = 5},/area/centcom/evac) +"kP" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows";dir = 5},/area/centcom/ferry) +"kQ" = (/obj/machinery/door/airlock/centcom{name = "Dressing Room";opacity = 1;req_access_txt = "0"},/turf/open/floor/wood,/area/centcom/ferry) +"kR" = (/obj/machinery/vending/clothing,/turf/open/floor/wood,/area/centcom/ferry) +"kS" = (/turf/closed/indestructible/fakedoor{name = "Centcom Security"},/area/centcom/evac) +"kT" = (/turf/open/floor/plasteel/black,/area/centcom/evac) +"kU" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows";dir = 10},/area/centcom/ferry) +"kV" = (/turf/open/floor/plasteel/darkgreen/corner,/area/centcom/ferry) +"kW" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin{pixel_y = 4},/obj/item/weapon/pen,/turf/open/floor/wood,/area/centcom/ferry) +"kX" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/turf/open/floor/plasteel/darkred/side{dir = 8},/area/centcom/evac) +"kY" = (/obj/structure/chair/office/dark,/turf/open/floor/plasteel/black,/area/centcom/evac) +"kZ" = (/obj/structure/showcase/fakesec,/turf/open/floor/plasteel/black,/area/centcom/evac) +"la" = (/turf/closed/indestructible/fakeglass,/area/centcom/ferry) +"lb" = (/obj/structure/chair/comfy/black{dir = 4},/turf/open/floor/wood,/area/centcom/ferry) +"lc" = (/obj/structure/table/wood,/turf/open/floor/wood,/area/centcom/ferry) +"ld" = (/obj/machinery/door/window/northleft{dir = 2;name = "Centcom Security";req_access_txt = "101"},/turf/open/floor/plasteel/black,/area/centcom/evac) +"le" = (/obj/structure/table/reinforced,/turf/open/floor/plasteel/darkred/side{dir = 10},/area/centcom/evac) +"lf" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/open/floor/plasteel/darkred/side{dir = 2},/area/centcom/evac) +"lg" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/open/floor/plasteel/darkred/side{dir = 2},/area/centcom/evac) +"lh" = (/obj/machinery/door/airlock/centcom{name = "Transport Shuttle";opacity = 1;req_access_txt = "101"},/turf/open/floor/plasteel/darkgreen/side{dir = 2},/area/centcom/ferry) +"li" = (/turf/closed/indestructible/riveted,/area/centcom/control) +"lj" = (/obj/structure/flora/ausbushes/brflowers,/turf/open/floor/grass,/area/centcom/control) +"lk" = (/obj/structure/flora/ausbushes/palebush,/turf/open/floor/grass,/area/centcom/control) +"ll" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows";dir = 1},/area/centcom/control) +"lm" = (/turf/open/floor/plasteel/green/side{dir = 1},/area/centcom/control) +"ln" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows";dir = 9},/area/centcom/evac) +"lo" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2";dir = 8},/area/centcom/evac) +"lp" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows";dir = 4},/area/centcom/evac) +"lq" = (/obj/machinery/door/airlock/centcom{name = "Centcom Security";opacity = 1;req_access_txt = "0"},/turf/open/floor/plasteel/black,/area/centcom/evac) +"lr" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2";dir = 6},/area/centcom/evac) +"ls" = (/turf/closed/indestructible/fakeglass,/area/centcom/control) +"lt" = (/turf/open/floor/plasteel,/area/centcom/control) +"lu" = (/obj/item/weapon/twohanded/required/kirbyplants,/turf/open/floor/plasteel/red/side{dir = 9},/area/centcom/evac) +"lv" = (/obj/structure/chair,/turf/open/floor/plasteel/red/side{dir = 1},/area/centcom/evac) +"lw" = (/turf/open/floor/plasteel/red/side{dir = 1},/area/centcom/evac) +"lx" = (/obj/structure/rack,/obj/item/weapon/gun/ballistic/shotgun/toy/crossbow,/obj/item/toy/foamblade,/turf/open/floor/plasteel/red/side{dir = 1},/area/centcom/evac) +"ly" = (/obj/structure/rack,/obj/item/weapon/storage/crayons,/obj/item/toy/sword,/turf/open/floor/plasteel/red/side{dir = 1},/area/centcom/evac) +"lz" = (/turf/closed/indestructible/fakeglass,/area/centcom/evac) +"lA" = (/turf/open/floor/plasteel/yellowsiding{dir = 8},/area/centcom/evac) +"lB" = (/turf/open/floor/plasteel,/area/centcom/evac) +"lC" = (/turf/open/floor/plasteel/warning{dir = 4},/area/centcom/evac) +"lD" = (/obj/machinery/door/poddoor/shuttledock,/turf/open/floor/engine,/area/centcom/evac) +"lE" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2";dir = 6},/area/centcom/control) +"lF" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/red/side{dir = 8},/area/centcom/evac) +"lG" = (/obj/structure/chair/office/dark,/turf/open/floor/plasteel,/area/centcom/evac) +"lH" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/red/side{dir = 4},/area/centcom/evac) +"lI" = (/turf/open/floor/grass,/area/centcom/control) +"lJ" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/green/side{dir = 8},/area/centcom/control) +"lK" = (/turf/open/floor/plasteel/warning{dir = 4},/area/centcom/control) +"lL" = (/obj/machinery/door/airlock/centcom{name = "Centcom Customs";opacity = 1;req_access_txt = "109"},/turf/open/floor/plasteel/black,/area/centcom/control) +"lM" = (/turf/open/floor/plasteel/black,/area/centcom/control) +"lN" = (/obj/structure/table,/turf/open/floor/plasteel/black,/area/centcom/control) +"lO" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/open/floor/plasteel/red/side{dir = 2},/area/centcom/evac) +"lP" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/open/floor/plasteel/red/side{dir = 2},/area/centcom/evac) +"lQ" = (/obj/structure/table/reinforced,/obj/item/toy/carpplushie,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/red/side{dir = 6},/area/centcom/evac) +"lR" = (/turf/open/space/transit,/area/space) +"lS" = (/turf/closed/indestructible/riveted,/area/centcom/supply) +"lT" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2";dir = 1},/area/centcom/control) +"lU" = (/turf/open/floor/plasteel/green/corner,/area/centcom/control) +"lV" = (/obj/structure/table,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/turf/open/floor/plasteel/black,/area/centcom/control) +"lW" = (/turf/open/floor/plasteel/yellowsiding{dir = 1},/area/centcom/evac) +"lX" = (/turf/open/floor/plasteel/yellowsiding/corner{dir = 1},/area/centcom/evac) +"lY" = (/obj/docking_port/stationary{dir = 4;dwidth = 25;height = 50;id = "emergency_away";name = "Centcom Emergency Shuttle Dock";width = 50},/turf/open/space,/area/space) +"lZ" = (/turf/closed/indestructible/rock/snow,/area/syndicate_mothership) +"ma" = (/obj/structure/closet,/turf/open/floor/plasteel/warning/corner{dir = 1},/area/centcom/supply) +"mb" = (/obj/structure/closet/wardrobe/cargotech,/turf/open/floor/plasteel/loadingarea,/area/centcom/supply) +"mc" = (/obj/structure/closet/secure_closet/quartermaster,/turf/open/floor/plasteel/loadingarea,/area/centcom/supply) +"md" = (/obj/structure/closet,/turf/open/floor/plasteel,/area/centcom/supply) +"me" = (/turf/open/floor/plasteel/green/side{dir = 4},/area/centcom/control) +"mf" = (/obj/machinery/button/door{desc = "A remote control switch for port-side blast doors.";icon_state = "doorctrl0";id = "CentComPort";name = "Security Doors";pixel_y = 28;req_access_txt = "101"},/obj/structure/showcase/fakeid,/turf/open/floor/plasteel/black,/area/centcom/control) +"mg" = (/obj/structure/chair/office/dark{dir = 8},/turf/open/floor/plasteel/black,/area/centcom/control) +"mh" = (/obj/structure/table,/obj/item/weapon/stamp{pixel_x = -3;pixel_y = 3},/obj/item/weapon/stamp/denied{pixel_x = 4;pixel_y = -2},/obj/item/weapon/paper/centcom,/turf/open/floor/plasteel/black,/area/centcom/control) +"mi" = (/turf/open/floor/plasteel/red/corner{dir = 1},/area/centcom/evac) +"mj" = (/turf/open/floor/plating/asteroid/snow/atmosphere,/area/syndicate_mothership) +"mk" = (/obj/structure/flora/grass/brown,/turf/open/floor/plating/asteroid/snow/atmosphere,/area/syndicate_mothership) +"ml" = (/obj/structure/flora/tree/pine,/turf/open/floor/plating/asteroid/snow/atmosphere,/area/syndicate_mothership) +"mm" = (/obj/structure/flora/grass/both,/turf/open/floor/plating/asteroid/snow/atmosphere,/area/syndicate_mothership) +"mn" = (/obj/item/weapon/disk/data,/turf/open/floor/plating/asteroid/snow/atmosphere,/area/syndicate_mothership) +"mo" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2";dir = 6},/area/centcom/supply) +"mp" = (/turf/open/floor/plasteel/warning{dir = 8},/area/centcom/supply) +"mq" = (/turf/open/floor/plasteel,/area/centcom/supply) +"mr" = (/turf/open/floor/plasteel/green/corner{dir = 1},/area/centcom/control) +"ms" = (/turf/open/floor/plasteel/green/corner{dir = 4},/area/centcom/control) +"mt" = (/obj/structure/table/reinforced,/obj/machinery/door/window/brigdoor{base_state = "rightsecure";dir = 1;icon_state = "rightsecure";name = "Centcom Customs";req_access_txt = "109"},/turf/open/floor/plasteel/black,/area/centcom/control) +"mu" = (/turf/open/floor/plasteel/warning/corner{dir = 1},/area/centcom/evac) +"mv" = (/obj/item/toy/figure/syndie,/turf/open/floor/plating/asteroid/snow/atmosphere,/area/syndicate_mothership) +"mw" = (/obj/machinery/door/airlock/external{name = "Supply Shuttle";req_access_txt = "106"},/turf/open/floor/plasteel/delivery,/area/centcom/supply) +"mx" = (/obj/machinery/door/airlock/centcom{name = "Centcom Supply";req_access_txt = "106"},/turf/open/floor/plasteel/brown{dir = 4},/area/centcom/supply) +"my" = (/turf/open/floor/plasteel/brown{dir = 8},/area/centcom/control) +"mz" = (/obj/machinery/door/airlock/centcom{name = "Centcom Docks";opacity = 1;req_access_txt = "101"},/turf/open/floor/plasteel/black,/area/centcom/control) +"mA" = (/obj/machinery/door/poddoor/preopen{id = "CentComPort";name = "security door"},/turf/open/floor/plasteel/loadingarea{dir = 8},/area/centcom/control) +"mB" = (/turf/open/floor/plasteel/warning{dir = 8},/area/centcom/evac) +"mC" = (/obj/structure/flora/bush,/turf/open/floor/plating/asteroid/snow/atmosphere,/area/syndicate_mothership) +"mD" = (/obj/machinery/computer/cargo,/turf/open/floor/plasteel/warning{dir = 8},/area/centcom/supply) +"mE" = (/turf/open/floor/plasteel/green/corner{dir = 8},/area/centcom/control) +"mF" = (/obj/effect/spawner/structure/window/reinforced,/turf/open/floor/plating,/area/centcom/control) +"mG" = (/turf/open/floor/plasteel/warning/corner{dir = 4},/area/centcom/evac) +"mH" = (/obj/docking_port/stationary{dir = 8;dwidth = 5;height = 7;id = "supply_away";name = "Centcom";width = 12},/turf/open/space,/area/space) +"mI" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/green/side{dir = 4},/area/centcom/control) +"mJ" = (/turf/open/floor/plasteel/green/corner{dir = 8},/area/centcom/evac) +"mK" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows";dir = 1},/area/centcom/supply) +"mL" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/green/side{dir = 8},/area/centcom/evac) +"mM" = (/turf/open/floor/plasteel/yellowsiding,/area/centcom/evac) +"mN" = (/turf/open/floor/plasteel/yellowsiding/corner{dir = 8},/area/centcom/evac) +"mO" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2";dir = 1},/area/centcom/supply) +"mP" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/green/side{dir = 10},/area/centcom/control) +"mQ" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/green/side{dir = 6},/area/centcom/control) +"mR" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/open/floor/plasteel/green/side{dir = 1},/area/centcom/evac) +"mS" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/open/floor/plasteel/green/side{dir = 1},/area/centcom/evac) +"mT" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/green/side{dir = 5},/area/centcom/evac) +"mU" = (/turf/open/floor/plating/asteroid/snow/atmosphere,/area/space) +"mV" = (/turf/closed/indestructible/fakeglass,/area/centcom/supply) +"mW" = (/turf/closed/indestructible/riveted,/area/tdome/tdomeobserve) +"mX" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows";dir = 8},/area/tdome/tdomeobserve) +"mY" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows";dir = 4},/area/tdome/tdomeobserve) +"mZ" = (/obj/machinery/door/airlock/centcom{name = "Thunderdome";opacity = 1;req_access_txt = "101"},/turf/open/floor/plasteel,/area/tdome/tdomeobserve) +"na" = (/obj/structure/chair/office/dark{dir = 1},/turf/open/floor/plasteel,/area/centcom/evac) +"nb" = (/obj/structure/table/reinforced,/obj/item/toy/talking/AI,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/green/side{dir = 4},/area/centcom/evac) +"nc" = (/turf/closed/indestructible/riveted,/area/syndicate_mothership) +"nd" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows";dir = 8},/area/syndicate_mothership) +"ne" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows";dir = 4},/area/syndicate_mothership) +"nf" = (/obj/structure/table,/obj/item/weapon/paper_bin,/turf/open/floor/plasteel/warning/corner{dir = 4},/area/centcom/supply) +"ng" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/coin/silver,/turf/open/floor/plasteel,/area/centcom/supply) +"nh" = (/obj/structure/table,/obj/item/weapon/pen/blue{pixel_x = 4;pixel_y = 4},/obj/item/weapon/pen/red,/obj/item/weapon/pen{pixel_x = 8;pixel_y = 8},/turf/open/floor/plasteel,/area/centcom/supply) +"ni" = (/obj/structure/table,/turf/open/floor/plasteel/red/side{dir = 9},/area/tdome/tdomeobserve) +"nj" = (/turf/open/floor/plasteel/red/side{dir = 1},/area/tdome/tdomeobserve) +"nk" = (/obj/structure/table,/turf/open/floor/plasteel/red/side{dir = 1},/area/tdome/tdomeobserve) +"nl" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/neutral/side{dir = 8},/area/tdome/tdomeobserve) +"nm" = (/turf/open/floor/plasteel,/area/tdome/tdomeobserve) +"nn" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/neutral/side{dir = 4},/area/tdome/tdomeobserve) +"no" = (/obj/structure/table,/turf/open/floor/plasteel/green/side{dir = 1},/area/tdome/tdomeobserve) +"np" = (/turf/open/floor/plasteel/green/side{dir = 1},/area/tdome/tdomeobserve) +"nq" = (/obj/structure/table,/turf/open/floor/plasteel/green/side{dir = 5},/area/tdome/tdomeobserve) +"nr" = (/obj/item/weapon/twohanded/required/kirbyplants,/turf/open/floor/plasteel/green/side{dir = 10},/area/centcom/evac) +"ns" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/green/side,/area/centcom/evac) +"nt" = (/turf/open/floor/plasteel/green/side,/area/centcom/evac) +"nu" = (/obj/structure/rack,/obj/item/weapon/gun/ballistic/shotgun/toy/crossbow,/obj/item/toy/katana,/turf/open/floor/plasteel/green/side,/area/centcom/evac) +"nv" = (/obj/structure/rack,/obj/item/weapon/storage/crayons,/obj/item/toy/sword,/turf/open/floor/plasteel/green/side,/area/centcom/evac) +"nw" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows";dir = 1},/area/centcom/evac) +"nx" = (/obj/item/weapon/storage/crayons,/obj/structure/table,/obj/item/weapon/storage/crayons,/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) +"ny" = (/obj/machinery/washing_machine,/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) +"nz" = (/obj/machinery/door/airlock/centcom{name = "Crate Storage";req_access_txt = "106"},/turf/open/floor/plasteel/delivery,/area/centcom/supply) +"nA" = (/obj/structure/closet/secure_closet/bar,/turf/open/floor/plasteel/red/side{dir = 8},/area/tdome/tdomeobserve) +"nB" = (/obj/structure/table,/turf/open/floor/plasteel,/area/tdome/tdomeobserve) +"nC" = (/obj/structure/closet/secure_closet/freezer/kitchen,/turf/open/floor/plasteel/green/side{dir = 4},/area/tdome/tdomeobserve) +"nD" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows";dir = 10},/area/centcom/evac) +"nE" = (/obj/machinery/door/airlock/centcom{name = "Centcom";opacity = 1;req_access_txt = "0"},/turf/open/floor/plasteel/black,/area/centcom/evac) +"nF" = (/turf/closed/indestructible/riveted/uranium,/area/wizard_station) +"nG" = (/turf/closed/indestructible/fakeglass{color = "#008000";dir = 8;icon_state = "fakewindows"},/area/wizard_station) +"nH" = (/turf/closed/indestructible/fakeglass{color = "#008000";dir = 8;icon_state = "fakewindows2"},/area/wizard_station) +"nI" = (/turf/closed/indestructible/fakeglass{color = "#008000";dir = 4;icon_state = "fakewindows"},/area/wizard_station) +"nJ" = (/obj/machinery/computer/shuttle/syndicate/recall,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"nK" = (/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"nL" = (/obj/machinery/vending/coffee,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"nM" = (/obj/machinery/vending/cola,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"nN" = (/obj/machinery/vending/cigarette{products = list(/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate = 7, /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2, /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/lighter/greyscale = 4, /obj/item/weapon/storage/fancy/rollingpapers = 5)},/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"nO" = (/obj/structure/urinal{pixel_y = 28},/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) +"nP" = (/obj/item/weapon/soap/syndie,/obj/structure/mopbucket,/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) +"nQ" = (/obj/structure/mirror{pixel_x = 28},/obj/item/weapon/mop,/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) +"nR" = (/obj/structure/closet/crate,/turf/open/floor/plasteel,/area/centcom/supply) +"nS" = (/obj/structure/table,/obj/item/weapon/storage/box/drinkingglasses,/turf/open/floor/plasteel/red/side{dir = 8},/area/tdome/tdomeobserve) +"nT" = (/obj/structure/table,/turf/open/floor/plasteel/green/side{dir = 4},/area/tdome/tdomeobserve) +"nU" = (/turf/open/floor/engine/cult,/area/wizard_station) +"nV" = (/obj/machinery/computer/shuttle,/turf/open/floor/engine/cult,/area/wizard_station) +"nW" = (/obj/item/weapon/paper{info = "GET DAT FUKKEN DISK";name = "memo"},/obj/structure/noticeboard{pixel_x = -32;pixel_y = 0},/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"nX" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"nY" = (/mob/living/simple_animal/hostile/carp/cayenne,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"nZ" = (/obj/machinery/door/airlock/centcom{name = "Restroom";opacity = 1;req_access_txt = "150"},/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"oa" = (/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) +"ob" = (/obj/structure/mirror{pixel_x = 28},/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) +"oc" = (/turf/open/floor/plasteel/red/side{dir = 8},/area/tdome/tdomeobserve) +"od" = (/obj/structure/closet/secure_closet/freezer/fridge,/turf/open/floor/plasteel/green/side{dir = 4},/area/tdome/tdomeobserve) +"oe" = (/obj/structure/table/reinforced,/turf/open/floor/plasteel/green/side{dir = 9},/area/centcom/evac) +"of" = (/obj/structure/table/wood,/obj/item/device/paicard,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"og" = (/obj/structure/table/wood,/obj/item/pizzabox,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"oh" = (/obj/structure/chair/stool,/obj/effect/landmark{name = "Syndicate-Spawn"},/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"oi" = (/obj/machinery/computer/telecrystals/uplinker,/turf/open/floor/plasteel/podhatch{dir = 9},/area/syndicate_mothership) +"oj" = (/obj/structure/toilet{icon_state = "toilet00";dir = 8},/obj/structure/window/reinforced/tinted{tag = "icon-rwindow (NORTH)";icon_state = "rwindow";dir = 1},/obj/machinery/door/window{tag = "icon-right (WEST)";name = "Tactical Toilet";icon_state = "right";dir = 8;opacity = 1},/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) +"ok" = (/turf/open/floor/plating/airless,/area/syndicate_mothership) +"ol" = (/turf/open/floor/plating/airless/warnplate{dir = 2},/area/syndicate_mothership) +"om" = (/turf/open/floor/plasteel/red/side{dir = 10},/area/tdome/tdomeobserve) +"on" = (/turf/open/floor/plasteel/red/side{dir = 2},/area/tdome/tdomeobserve) +"oo" = (/turf/open/floor/plasteel/neutral/side{dir = 8},/area/tdome/tdomeobserve) +"op" = (/turf/open/floor/plasteel/neutral/side{dir = 4},/area/tdome/tdomeobserve) +"oq" = (/turf/open/floor/plasteel/green/side,/area/tdome/tdomeobserve) +"or" = (/turf/open/floor/plasteel/green/side{dir = 6},/area/tdome/tdomeobserve) +"os" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/turf/open/floor/plasteel/green/side{dir = 8},/area/centcom/evac) +"ot" = (/obj/structure/filingcabinet/filingcabinet,/turf/open/floor/plasteel,/area/centcom/evac) +"ou" = (/obj/structure/showcase{desc = "A strange machine supposedly from another world. The Wizard Federation has been meddling with it for years.";icon = 'icons/obj/machines/telecomms.dmi';icon_state = "processor";name = "byond random number generator"},/turf/open/floor/engine/cult,/area/wizard_station) +"ov" = (/obj/structure/showcase{desc = "A historical figure of great importance to the wizard federation. He spent his long life learning magic, stealing artifacts, and harassing idiots with swords. May he rest forever, Rodney.";icon = 'icons/mob/mob.dmi';icon_state = "nim";name = "wizard of yendor showcase"},/turf/open/floor/engine/cult,/area/wizard_station) +"ow" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows";dir = 9},/area/syndicate_mothership) +"ox" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2";dir = 8},/area/syndicate_mothership) +"oy" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/snacks/pizzaslice/mushroom,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"oz" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/drinks/beer{pixel_x = 5;pixel_y = -2},/obj/item/toy/cards/deck/syndicate{icon_state = "deck_syndicate_full";pixel_x = -6;pixel_y = 6},/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"oA" = (/obj/machinery/computer/telecrystals/uplinker,/turf/open/floor/plasteel/podhatch{dir = 8},/area/syndicate_mothership) +"oB" = (/obj/structure/closet/cardboard,/turf/open/floor/plating/airless,/area/syndicate_mothership) +"oC" = (/turf/open/floor/plating/airless/warnplate{dir = 6},/area/syndicate_mothership) +"oD" = (/turf/open/space,/obj/machinery/porta_turret/syndicate/pod,/turf/closed/wall/mineral/plastitanium{dir = 8;icon_state = "diagonalWall3"},/area/shuttle/assault_pod) +"oE" = (/turf/closed/wall/mineral/plastitanium,/area/shuttle/assault_pod) +"oF" = (/obj/machinery/door/airlock/centcom{name = "Assault Pod";opacity = 1;req_access_txt = "150"},/turf/open/floor/plating,/area/shuttle/assault_pod) +"oG" = (/turf/open/space,/obj/machinery/porta_turret/syndicate/pod,/turf/closed/wall/mineral/plastitanium{dir = 1;icon_state = "diagonalWall3"},/area/shuttle/assault_pod) +"oH" = (/turf/open/floor/plating/airless/warnplate{dir = 10},/area/syndicate_mothership) +"oI" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2";dir = 8},/area/tdome/tdomeobserve) +"oJ" = (/turf/closed/indestructible/fakedoor{name = "Centcom"},/area/centcom/evac) +"oK" = (/turf/closed/indestructible/fakeglass{color = "#008000";dir = 6;icon_state = "fakewindows2"},/area/wizard_station) +"oL" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi';name = "Cockpit"},/turf/open/floor/engine/cult,/area/wizard_station) +"oM" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2";dir = 1},/area/syndicate_mothership) +"oN" = (/turf/open/floor/plating,/area/syndicate_mothership) +"oO" = (/obj/machinery/door/poddoor/shutters{id = "nukeop_ready";name = "shuttle dock"},/turf/open/floor/plating,/area/syndicate_mothership) +"oP" = (/turf/open/floor/plating/airless/warnplate{dir = 4},/area/syndicate_mothership) +"oQ" = (/obj/structure/chair{dir = 4},/turf/open/floor/mineral/plastitanium,/area/shuttle/assault_pod) +"oR" = (/turf/open/floor/mineral/plastitanium,/area/shuttle/assault_pod) +"oS" = (/obj/structure/chair{dir = 8},/turf/open/floor/mineral/plastitanium,/area/shuttle/assault_pod) +"oT" = (/turf/open/floor/plating/airless/warnplate{dir = 8},/area/syndicate_mothership) +"oU" = (/turf/open/floor/grass,/area/tdome/tdomeobserve) +"oV" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2";dir = 6},/area/tdome/tdomeobserve) +"oW" = (/turf/open/floor/plasteel/green/side{dir = 10},/area/centcom/evac) +"oX" = (/turf/open/floor/plasteel/green/side{dir = 6},/area/centcom/evac) +"oY" = (/obj/machinery/computer/camera_advanced,/turf/open/floor/wood,/area/wizard_station) +"oZ" = (/obj/structure/table/wood/fancy,/obj/item/device/radio/intercom{desc = "Talk smack through this.";syndie = 1},/turf/open/floor/wood,/area/wizard_station) +"pa" = (/turf/open/floor/carpet,/area/wizard_station) +"pb" = (/obj/structure/chair/wood/wings,/turf/open/floor/carpet,/area/wizard_station) +"pc" = (/turf/closed/indestructible/fakeglass,/area/syndicate_mothership) +"pd" = (/obj/machinery/door/airlock/external{req_access_txt = "150"},/turf/open/floor/plating,/area/syndicate_mothership) +"pe" = (/obj/machinery/button/door{id = "nukeop_ready";name = "mission launch control";pixel_x = -26;pixel_y = 0;req_access_txt = "151"},/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"pf" = (/obj/machinery/computer/telecrystals/uplinker,/turf/open/floor/plasteel/podhatch{dir = 10},/area/syndicate_mothership) +"pg" = (/obj/structure/chair{dir = 1},/turf/open/floor/mineral/plastitanium,/area/shuttle/assault_pod) +"ph" = (/turf/open/floor/wood,/area/wizard_station) +"pi" = (/obj/structure/chair/wood/wings{icon_state = "wooden_chair_wings";dir = 1},/turf/open/floor/wood,/area/wizard_station) +"pj" = (/obj/structure/chair/wood/wings{tag = "icon-wooden_chair_wings (EAST)";icon_state = "wooden_chair_wings";dir = 4},/turf/open/floor/carpet,/area/wizard_station) +"pk" = (/obj/structure/table/wood/poker,/obj/item/toy/figure/wizard,/turf/open/floor/carpet,/area/wizard_station) +"pl" = (/obj/structure/chair/wood/wings{tag = "icon-wooden_chair_wings (WEST)";icon_state = "wooden_chair_wings";dir = 8},/turf/open/floor/carpet,/area/wizard_station) +"pm" = (/obj/docking_port/stationary{area_type = /area/syndicate_mothership;dheight = 9;dir = 2;dwidth = 5;height = 24;id = "syndicate_away";name = "syndicate recon outpost";turf_type = /turf/open/floor/plating/asteroid/snow;width = 18},/turf/open/floor/plating/asteroid/snow/atmosphere,/area/space) +"pn" = (/obj/item/weapon/storage/box/drinkingglasses,/obj/item/weapon/reagent_containers/food/drinks/bottle/rum,/obj/structure/table/wood,/turf/open/floor/wood,/area/syndicate_mothership) +"po" = (/obj/structure/table/wood,/turf/open/floor/wood,/area/syndicate_mothership) +"pp" = (/obj/structure/table/wood,/obj/item/device/syndicatedetonator{desc = "This gaudy button can be used to instantly detonate syndicate bombs that have been activated on the station. It is also fun to press."},/turf/open/floor/wood,/area/syndicate_mothership) +"pq" = (/obj/structure/table/wood,/obj/item/toy/nuke,/turf/open/floor/wood,/area/syndicate_mothership) +"pr" = (/obj/machinery/door/airlock/centcom{aiControlDisabled = 1;name = "Assault Pod";opacity = 1;req_access_txt = "150"},/turf/open/floor/plating,/area/shuttle/assault_pod) +"ps" = (/obj/machinery/computer/shuttle/syndicate/drop_pod,/turf/closed/wall/shuttle{tag = "icon-wall3";icon_state = "wall3";dir = 2},/area/shuttle/assault_pod) +"pt" = (/turf/open/floor/plasteel/redblue,/area/tdome/tdomeobserve) +"pu" = (/obj/structure/chair,/obj/effect/landmark{name = "tdomeobserve"},/turf/open/floor/plasteel/redblue,/area/tdome/tdomeobserve) +"pv" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi';name = "Observation Room"},/turf/open/floor/engine/cult,/area/wizard_station) +"pw" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi';name = "Game Room"},/turf/open/floor/engine/cult,/area/wizard_station) +"px" = (/obj/structure/chair/wood/wings{icon_state = "wooden_chair_wings";dir = 1},/turf/open/floor/carpet,/area/wizard_station) +"py" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'FOURTH WALL'.";name = "\improper FOURTH WALL";pixel_x = -32},/turf/open/floor/plating/asteroid/snow/atmosphere,/area/syndicate_mothership) +"pz" = (/turf/open/floor/wood,/area/syndicate_mothership) +"pA" = (/obj/effect/landmark{name = "Syndicate-Spawn"},/turf/open/floor/wood,/area/syndicate_mothership) +"pB" = (/obj/machinery/door/window{base_state = "right";dir = 4;icon_state = "right";name = "Uplink Management Control";req_access_txt = "151"},/turf/open/floor/wood,/area/syndicate_mothership) +"pC" = (/obj/structure/chair,/turf/open/floor/mineral/plastitanium,/area/shuttle/assault_pod) +"pD" = (/turf/closed/indestructible/fakedoor{name = "Thunderdome"},/area/tdome/tdomeobserve) +"pE" = (/obj/machinery/computer/security/telescreen,/turf/open/floor/plasteel/redblue,/area/tdome/tdomeobserve) +"pF" = (/obj/structure/chair/wood/wings{tag = "icon-wooden_chair_wings (WEST)";icon_state = "wooden_chair_wings";dir = 8},/turf/open/floor/wood,/area/wizard_station) +"pG" = (/obj/structure/table/wood/fancy,/obj/item/device/camera/spooky,/turf/open/floor/carpet,/area/wizard_station) +"pH" = (/obj/structure/table/wood/poker,/obj/item/toy/cards/deck,/turf/open/floor/carpet,/area/wizard_station) +"pI" = (/obj/machinery/computer/telecrystals/boss,/turf/open/floor/plasteel/podhatch{dir = 5},/area/syndicate_mothership) +"pJ" = (/obj/structure/sign/map/left{pixel_y = -32},/obj/structure/rack{icon = 'icons/obj/stationobjs.dmi';icon_state = "minibar_left";name = "skeletal minibar"},/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka,/turf/open/floor/wood,/area/syndicate_mothership) +"pK" = (/obj/structure/sign/map/right{pixel_y = -32},/obj/structure/rack{icon = 'icons/obj/stationobjs.dmi';icon_state = "minibar_right";name = "skeletal minibar"},/obj/item/weapon/reagent_containers/food/drinks/bottle/gin,/turf/open/floor/wood,/area/syndicate_mothership) +"pL" = (/obj/machinery/door/airlock/centcom{name = "Equipment Room";opacity = 1;req_access_txt = "150"},/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"pM" = (/turf/open/space,/obj/machinery/porta_turret/syndicate/pod,/turf/closed/wall/mineral/plastitanium{icon_state = "diagonalWall3"},/area/shuttle/assault_pod) +"pN" = (/turf/open/space,/obj/machinery/porta_turret/syndicate/pod,/turf/closed/wall/mineral/plastitanium{dir = 4;icon_state = "diagonalWall3"},/area/shuttle/assault_pod) +"pO" = (/obj/item/weapon/statuebust{pixel_y = 12},/obj/structure/table/wood/fancy,/turf/open/floor/wood,/area/wizard_station) +"pP" = (/obj/machinery/vending/magivend,/turf/open/floor/engine/cult,/area/wizard_station) +"pQ" = (/obj/machinery/vending/snack,/turf/open/floor/engine/cult,/area/wizard_station) +"pR" = (/obj/structure/table/wood/fancy,/obj/item/weapon/storage/pill_bottle/dice{icon_state = "magicdicebag"},/turf/open/floor/carpet,/area/wizard_station) +"pS" = (/obj/structure/table/wood/fancy,/obj/item/weapon/storage/photo_album,/turf/open/floor/carpet,/area/wizard_station) +"pT" = (/turf/open/floor/plasteel/black,/area/syndicate_mothership) +"pU" = (/obj/machinery/mech_bay_recharge_port,/turf/open/floor/plating,/area/syndicate_mothership) +"pV" = (/turf/open/floor/mech_bay_recharge_floor,/area/syndicate_mothership) +"pW" = (/obj/machinery/computer/mech_bay_power_console,/turf/open/floor/plating,/area/syndicate_mothership) +"pX" = (/obj/machinery/vending/tool,/turf/open/floor/plasteel/black,/area/syndicate_mothership) +"pY" = (/obj/structure/closet/cardboard/metal,/turf/open/floor/plating/airless,/area/syndicate_mothership) +"pZ" = (/turf/open/floor/plating/airless/warnplate{dir = 5},/area/syndicate_mothership) +"qa" = (/obj/machinery/door/airlock/centcom{aiControlDisabled = 1;name = "Assault Pod";opacity = 1;req_access_txt = "150"},/obj/docking_port/mobile/assault_pod{dwidth = 3;name = "steel rain";port_angle = 90;preferred_direction = 4},/turf/open/floor/plating,/area/shuttle/assault_pod) +"qb" = (/turf/open/floor/plating/airless/warnplate{dir = 9},/area/syndicate_mothership) +"qc" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi';name = "Study"},/turf/open/floor/engine/cult,/area/wizard_station) +"qd" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi';name = "Break Room"},/turf/open/floor/engine/cult,/area/wizard_station) +"qe" = (/turf/open/floor/plating/airless/warnplate{dir = 1},/area/syndicate_mothership) +"qf" = (/turf/closed/indestructible/riveted,/area/tdome/arena) +"qg" = (/obj/machinery/igniter,/turf/open/floor/plasteel,/area/tdome/arena) +"qh" = (/turf/open/floor/plasteel,/area/tdome/arena) +"qi" = (/obj/structure/chair/wood/wings,/turf/open/floor/engine/cult,/area/wizard_station) +"qj" = (/obj/structure/table/wood,/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/ointment,/turf/open/floor/engine/cult,/area/wizard_station) +"qk" = (/obj/structure/table/wood,/obj/item/weapon/retractor,/turf/open/floor/engine/cult,/area/wizard_station) +"ql" = (/obj/structure/table/wood,/obj/item/clothing/suit/wizrobe/magusblue,/obj/item/clothing/head/wizard/magus,/obj/item/weapon/staff,/obj/structure/mirror/magic{pixel_y = 28},/turf/open/floor/engine/cult,/area/wizard_station) +"qm" = (/obj/structure/table/wood,/obj/item/clothing/suit/wizrobe/magusred,/obj/item/clothing/head/wizard/magus,/obj/item/weapon/staff,/turf/open/floor/engine/cult,/area/wizard_station) +"qn" = (/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/turf/open/floor/grass,/area/wizard_station) +"qo" = (/obj/effect/decal/cleanable/blood/splatter,/obj/effect/decal/cleanable/blood/gibs/body,/turf/open/floor/grass,/area/wizard_station) +"qp" = (/obj/effect/decal/remains/xeno/larva,/turf/open/floor/grass,/area/wizard_station) +"qq" = (/obj/effect/decal/cleanable/blood/splatter,/turf/open/floor/grass,/area/wizard_station) +"qr" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2";dir = 6},/area/syndicate_mothership) +"qs" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/black,/area/syndicate_mothership) +"qt" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/saber/red,/turf/open/floor/plasteel/black,/area/tdome/arena) +"qu" = (/obj/machinery/door/poddoor{id = "thunderdomegen";name = "General Supply"},/turf/open/floor/plasteel/black,/area/tdome/arena) +"qv" = (/obj/effect/landmark{name = "tdome2"},/turf/open/floor/plasteel,/area/tdome/tdome2) +"qw" = (/obj/machinery/door/poddoor{id = "thunderdome";name = "Thunderdome Blast Door"},/turf/open/floor/plasteel,/area/tdome/arena) +"qx" = (/turf/open/floor/plasteel/red/side{dir = 8},/area/tdome/arena) +"qy" = (/turf/open/floor/plasteel/green/side{dir = 4},/area/tdome/arena) +"qz" = (/obj/effect/landmark{name = "tdome1"},/turf/open/floor/plasteel,/area/tdome/tdome1) +"qA" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/saber/green,/turf/open/floor/plasteel/black,/area/tdome/arena) +"qB" = (/turf/closed/indestructible/fakeglass{color = "#008000";dir = 1;icon_state = "fakewindows"},/area/wizard_station) +"qC" = (/obj/structure/destructible/cult/tome,/turf/open/floor/engine/cult,/area/wizard_station) +"qD" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/item/clothing/suit/wizrobe/red,/obj/item/clothing/head/wizard/red,/obj/item/weapon/staff,/obj/item/clothing/shoes/sandal/magic,/turf/open/floor/engine/cult,/area/wizard_station) +"qE" = (/turf/open/floor/grass,/area/wizard_station) +"qF" = (/obj/item/weapon/reagent_containers/food/snacks/meat/slab/corgi,/turf/open/floor/grass,/area/wizard_station) +"qG" = (/obj/structure/closet/syndicate/personal,/turf/open/floor/plasteel/darkwarning{dir = 1},/area/syndicate_mothership) +"qH" = (/obj/structure/table,/obj/item/weapon/gun/energy/ionrifle{pin = /obj/item/device/firing_pin},/turf/open/floor/plasteel/darkwarning{dir = 1},/area/syndicate_mothership) +"qI" = (/obj/machinery/recharger{pixel_y = 4},/obj/effect/landmark{name = "tdome2"},/turf/open/floor/plasteel,/area/tdome/tdome2) +"qJ" = (/obj/machinery/recharger{pixel_y = 4},/obj/effect/landmark{name = "tdome1"},/turf/open/floor/plasteel,/area/tdome/tdome1) +"qK" = (/turf/closed/indestructible/fakeglass{color = "#008000";dir = 1;icon_state = "fakewindows2"},/area/wizard_station) +"qL" = (/obj/structure/bookcase/random/reference,/turf/open/floor/engine/cult,/area/wizard_station) +"qM" = (/obj/structure/destructible/cult/talisman{desc = "A altar dedicated to the Wizard's Federation"},/obj/item/weapon/kitchen/knife/ritual,/turf/open/floor/engine/cult,/area/wizard_station) +"qN" = (/obj/item/clothing/shoes/sandal/marisa,/obj/item/clothing/suit/wizrobe/marisa,/obj/item/clothing/head/wizard/marisa,/obj/item/weapon/staff/broom,/turf/open/floor/engine/cult,/area/wizard_station) +"qO" = (/obj/effect/decal/cleanable/blood/splatter,/mob/living/simple_animal/hostile/creature{name = "Experiment 35b"},/turf/open/floor/grass,/area/wizard_station) +"qP" = (/obj/machinery/camera{pixel_x = 11;pixel_y = -9;network = list("thunder");c_tag = "Red Team"},/obj/effect/landmark{name = "tdome2"},/turf/open/floor/plasteel,/area/tdome/tdome2) +"qQ" = (/turf/open/floor/bluegrid,/area/tdome/arena) +"qR" = (/obj/machinery/flasher{id = "tdomeflash";name = "Thunderdome Flash"},/turf/open/floor/bluegrid,/area/tdome/arena) +"qS" = (/obj/machinery/camera{pixel_x = 12;pixel_y = -10;network = list("thunder");c_tag = "Green Team"},/obj/effect/landmark{name = "tdome1"},/turf/open/floor/plasteel,/area/tdome/tdome1) +"qT" = (/turf/closed/indestructible/fakeglass{color = "#008000"},/area/wizard_station) +"qU" = (/obj/effect/landmark/start{name = "wizard"},/turf/open/floor/engine/cult,/area/wizard_station) +"qV" = (/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/blood/splatter,/turf/open/floor/grass,/area/wizard_station) +"qW" = (/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/slime,/turf/open/floor/grass,/area/wizard_station) +"qX" = (/obj/effect/decal/remains/xeno,/turf/open/floor/grass,/area/wizard_station) +"qY" = (/obj/machinery/camera{pixel_x = 10;network = list("thunder");c_tag = "Arena"},/turf/open/floor/bluegrid,/area/tdome/arena) +"qZ" = (/obj/structure/chair/wood/wings{icon_state = "wooden_chair_wings";dir = 1},/turf/open/floor/engine/cult,/area/wizard_station) +"ra" = (/mob/living/simple_animal/bot/medbot/mysterious{desc = "If you don't accidentally blow yourself up from time to time you're not really a wizard anyway.";faction = list("neutral","silicon","creature");name = "Nobody's Perfect"},/turf/open/floor/engine/cult,/area/wizard_station) +"rb" = (/obj/item/weapon/reagent_containers/food/snacks/meat/slab/xeno,/turf/open/floor/grass,/area/wizard_station) +"rc" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi';name = "Observation Deck"},/turf/open/floor/engine/cult,/area/wizard_station) +"rd" = (/obj/structure/statue/uranium/nuke,/turf/open/floor/plating/asteroid/snow/atmosphere,/area/syndicate_mothership) +"re" = (/obj/machinery/door/poddoor{id = "thunderdomehea";name = "Heavy Supply"},/turf/open/floor/plasteel/black,/area/tdome/arena) +"rf" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/turf/open/floor/plasteel/black,/area/tdome/arena) +"rg" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows";dir = 8},/area/tdome/tdomeadmin) +"rh" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2";dir = 8},/area/tdome/tdomeadmin) +"ri" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows";dir = 4},/area/tdome/tdomeadmin) +"rj" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/turf/open/floor/plasteel/black,/area/tdome/arena) +"rk" = (/turf/open/floor/plasteel/redyellow,/area/tdome/tdomeadmin) +"rl" = (/obj/structure/chair{dir = 1},/obj/effect/landmark{name = "tdomeadmin"},/turf/open/floor/plasteel/redyellow,/area/tdome/tdomeadmin) +"rm" = (/obj/structure/table,/obj/machinery/computer/security/telescreen{pixel_y = 0},/turf/open/floor/plasteel/redyellow,/area/tdome/tdomeadmin) +"rn" = (/obj/structure/chair/comfy/brown{dir = 1},/turf/open/floor/plasteel/redyellow,/area/tdome/tdomeadmin) +"ro" = (/obj/machinery/button/flasher{id = "tdomeflash";pixel_x = 0;pixel_y = 0},/obj/structure/table,/turf/open/floor/plasteel/redyellow,/area/tdome/tdomeadmin) +"rp" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi';name = "Storage"},/turf/open/floor/engine/cult,/area/wizard_station) +"rq" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi';name = "Personal Quarters"},/turf/open/floor/engine/cult,/area/wizard_station) +"rr" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi';name = "Bathroom"},/turf/open/floor/engine/cult,/area/wizard_station) +"rs" = (/turf/closed/indestructible/riveted,/area/tdome/tdomeadmin) +"rt" = (/obj/machinery/computer/security/telescreen{pixel_y = -32},/turf/open/floor/plasteel/redyellow,/area/tdome/tdomeadmin) +"ru" = (/turf/open/floor/plasteel,/area/tdome/tdomeadmin) +"rv" = (/obj/item/clothing/suit/wizrobe/black,/obj/item/clothing/head/wizard/black,/turf/open/floor/plasteel/bot,/area/wizard_station) +"rw" = (/turf/open/floor/plasteel/bot,/area/wizard_station) +"rx" = (/obj/item/cardboard_cutout,/turf/open/floor/plasteel/bot,/area/wizard_station) +"ry" = (/obj/structure/table/wood,/obj/effect/landmark{name = "Teleport-Scroll"},/obj/item/weapon/dice/d20,/obj/item/weapon/dice,/turf/open/floor/carpet,/area/wizard_station) +"rz" = (/obj/structure/punching_bag,/turf/open/floor/carpet,/area/wizard_station) +"rA" = (/obj/structure/urinal{pixel_y = 28},/turf/open/floor/plasteel/white,/area/wizard_station) +"rB" = (/turf/open/floor/plasteel/white,/area/wizard_station) +"rC" = (/obj/structure/mirror/magic{pixel_y = 28},/obj/structure/sink{pixel_y = 20},/turf/open/floor/plasteel/white,/area/wizard_station) +"rD" = (/turf/closed/indestructible/fakedoor{name = "Thunderdome Admin"},/area/tdome/tdomeadmin) +"rE" = (/obj/structure/table,/obj/machinery/button/door{id = "thunderdomehea";name = "Heavy Supply Control";pixel_y = 0;req_access_txt = "102"},/turf/open/floor/plasteel,/area/tdome/tdomeadmin) +"rF" = (/obj/structure/table,/obj/machinery/button/door{id = "thunderdome";name = "Main Blast Doors Control";pixel_y = 0;req_access_txt = "102"},/turf/open/floor/plasteel,/area/tdome/tdomeadmin) +"rG" = (/obj/structure/table,/obj/machinery/button/door{id = "thunderdomegen";name = "General Supply Control";pixel_y = 0;req_access_txt = "102"},/turf/open/floor/plasteel,/area/tdome/tdomeadmin) +"rH" = (/obj/item/weapon/cautery/alien,/turf/open/floor/plasteel/bot,/area/wizard_station) +"rI" = (/obj/item/weapon/coin/antagtoken,/turf/open/floor/plasteel/bot,/area/wizard_station) +"rJ" = (/obj/structure/bed,/obj/item/weapon/bedsheet/wiz,/turf/open/floor/carpet,/area/wizard_station) +"rK" = (/obj/item/weapon/soap/homemade,/turf/open/floor/plasteel/white,/area/wizard_station) +"rL" = (/obj/structure/closet/cardboard,/obj/item/weapon/banhammer,/turf/open/floor/plasteel/warning,/area/wizard_station) +"rM" = (/turf/open/floor/plasteel/warning,/area/wizard_station) +"rN" = (/obj/vehicle/scooter/skateboard{tag = "icon-skateboard (EAST)";icon_state = "skateboard";dir = 4},/turf/open/floor/plasteel/warning,/area/wizard_station) +"rO" = (/obj/structure/dresser,/obj/item/weapon/storage/backpack/satchel,/turf/open/floor/carpet,/area/wizard_station) +"rP" = (/obj/structure/table/wood,/obj/item/weapon/storage/bag/tray,/obj/item/weapon/reagent_containers/food/snacks/burger/spell,/turf/open/floor/carpet,/area/wizard_station) +"rQ" = (/obj/structure/bookcase/random/adult,/turf/open/floor/plasteel/white,/area/wizard_station) +"rR" = (/obj/structure/toilet{tag = "icon-toilet00 (NORTH)";icon_state = "toilet00";dir = 1},/turf/open/floor/plasteel/white,/area/wizard_station) +"rS" = (/obj/structure/table/wood/fancy,/obj/item/weapon/skub{pixel_y = 16},/turf/open/floor/plasteel/white,/area/wizard_station) +"rT" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi';name = "Engine Room"},/obj/structure/barricade/wooden,/turf/open/floor/engine/cult,/area/wizard_station) +"rU" = (/turf/closed/indestructible/riveted,/area/centcom/holding) +"rV" = (/obj/structure/table/wood,/turf/open/floor/engine/cult,/area/wizard_station) +"rW" = (/obj/structure/table/wood,/obj/item/weapon/gun/magic/wand{desc = "Used in emergencies to reignite magma engines.";max_charges = 0;name = "wand of emergency engine ignition"},/turf/open/floor/engine/cult,/area/wizard_station) +"rX" = (/obj/structure/table/wood,/obj/item/weapon/bikehorn/golden{pixel_x = -8;pixel_y = 8},/turf/open/floor/engine/cult,/area/wizard_station) +"rY" = (/obj/structure/table,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) +"rZ" = (/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) +"sa" = (/obj/structure/closet/secure_closet/bar{req_access_txt = "25"},/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) +"sb" = (/obj/structure/reagent_dispensers/beerkeg,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) +"sc" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3;pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3;pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3;pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3;pixel_y = 3},/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) +"sd" = (/obj/structure/rack,/obj/item/device/camera,/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) +"se" = (/obj/structure/rack,/obj/item/toy/sword,/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) +"sf" = (/obj/structure/rack,/obj/item/toy/gun,/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) +"sg" = (/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) +"sh" = (/turf/open/floor/plating/beach/sand,/area/centcom/holding) +"si" = (/obj/effect/overlay/palmtree_r,/obj/effect/overlay/coconut,/turf/open/floor/plating/beach/sand,/area/centcom/holding) +"sj" = (/obj/effect/overlay/palmtree_l,/turf/open/floor/plating/beach/sand,/area/centcom/holding) +"sk" = (/obj/structure/table,/obj/item/clothing/head/that,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) +"sl" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) +"sm" = (/obj/item/device/camera,/turf/open/floor/plating/beach/sand,/area/centcom/holding) +"sn" = (/obj/structure/destructible/cult/forge{desc = "A engine used in powering the wizards ship";name = "magma engine"},/turf/open/floor/engine/cult,/area/wizard_station) +"so" = (/obj/structure/table,/obj/item/ammo_box/foambox,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) +"sp" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/shaker,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) +"sq" = (/obj/structure/table,/obj/item/weapon/lighter,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) +"sr" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) +"ss" = (/obj/structure/table,/obj/item/weapon/dice/d20,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) +"st" = (/obj/structure/chair/stool{pixel_y = 8},/obj/item/clothing/head/bandana{pixel_y = -10},/obj/item/clothing/glasses/sunglasses,/turf/open/floor/plating/beach/sand,/area/centcom/holding) +"su" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plating/beach/sand,/area/centcom/holding) +"sv" = (/obj/structure/window/reinforced{resistance_flags = 3;color = "#008000";dir = 1},/turf/open/floor/plating/lava,/area/wizard_station) +"sw" = (/obj/structure/rack,/obj/item/clothing/head/that,/obj/item/clothing/under/suit_jacket,/obj/item/clothing/tie/waistcoat,/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) +"sx" = (/obj/item/toy/beach_ball,/turf/open/floor/plating/beach/sand,/area/centcom/holding) +"sy" = (/obj/structure/shuttle/engine/heater{resistance_flags = 3},/obj/structure/window/reinforced{resistance_flags = 3;color = "#008000";dir = 1},/turf/open/floor/plating/lava/airless,/area/wizard_station) +"sz" = (/obj/structure/rack,/obj/item/weapon/storage/crayons,/obj/item/weapon/gun/ballistic/automatic/toy/pistol,/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) +"sA" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) +"sB" = (/obj/structure/shuttle/engine/propulsion,/turf/open/space,/area/wizard_station) +"sC" = (/obj/structure/rack,/obj/item/weapon/storage/crayons,/obj/item/weapon/gun/ballistic/shotgun/toy/crossbow,/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) +"sD" = (/turf/open/floor/plating/beach/coastline_b,/area/centcom/holding) +"sE" = (/obj/item/clothing/head/collectable/paper,/turf/open/floor/plating/beach/coastline_b,/area/centcom/holding) +"sF" = (/obj/structure/rack,/obj/item/clothing/shoes/laceup,/obj/item/clothing/under/suit_jacket/female{desc = "A black trouser suit for women. Very formal.";name = "black suit";pixel_x = 3;pixel_y = 1},/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) +"sG" = (/obj/structure/table,/obj/item/weapon/gun/ballistic/automatic/toy/pistol,/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) +"sH" = (/turf/open/floor/plating/beach/water,/area/centcom/holding) +"sI" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel,/area/centcom/holding) +"sJ" = (/turf/open/floor/plasteel/delivery,/area/centcom/holding) +"sK" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel,/area/centcom/holding) +"sL" = (/obj/item/weapon/reagent_containers/food/snacks/egg/rainbow{desc = "I bet you think you're pretty clever... well you are.";name = "easter egg"},/turf/open/space,/area/space) +"sM" = (/obj/effect/landmark{name = "Holding Facility"},/turf/open/floor/engine,/area/centcom/holding) +"sN" = (/turf/closed/indestructible/abductor{icon_state = "alien20"},/area/abductor_ship) +"sO" = (/turf/closed/indestructible/abductor{icon_state = "alien21"},/area/abductor_ship) +"sP" = (/turf/closed/indestructible/abductor{icon_state = "alien22"},/area/abductor_ship) +"sQ" = (/turf/closed/indestructible/abductor{icon_state = "alien23"},/area/abductor_ship) +"sR" = (/turf/closed/indestructible/abductor{icon_state = "alien24"},/area/abductor_ship) +"sS" = (/turf/closed/indestructible/abductor{icon_state = "alien16"},/area/abductor_ship) +"sT" = (/turf/closed/indestructible/abductor{icon_state = "alien17"},/area/abductor_ship) +"sU" = (/obj/machinery/abductor/experiment{team = 1},/turf/open/floor/plating/abductor,/area/abductor_ship) +"sV" = (/obj/effect/landmark/abductor/console,/turf/open/floor/plating/abductor,/area/abductor_ship) +"sW" = (/obj/machinery/abductor/pad{team = 1},/turf/open/floor/plating/abductor,/area/abductor_ship) +"sX" = (/turf/closed/indestructible/abductor{icon_state = "alien18"},/area/abductor_ship) +"sY" = (/turf/closed/indestructible/abductor{icon_state = "alien19"},/area/abductor_ship) +"sZ" = (/obj/machinery/abductor/experiment{team = 4},/turf/open/floor/plating/abductor,/area/abductor_ship) +"ta" = (/obj/effect/landmark/abductor/console{team = 4},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tb" = (/obj/machinery/abductor/pad{team = 4},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tc" = (/turf/closed/indestructible/abductor{icon_state = "alien14"},/area/abductor_ship) +"td" = (/obj/machinery/computer/camera_advanced/abductor{team = 1},/turf/open/floor/plating/abductor,/area/abductor_ship) +"te" = (/turf/open/floor/plating/abductor,/area/abductor_ship) +"tf" = (/obj/structure/closet/abductor,/turf/open/floor/plating/abductor,/area/abductor_ship) +"tg" = (/turf/closed/indestructible/abductor{icon_state = "alien15"},/area/abductor_ship) +"th" = (/obj/machinery/computer/camera_advanced/abductor{team = 4},/turf/open/floor/plating/abductor,/area/abductor_ship) +"ti" = (/turf/closed/indestructible/abductor{icon_state = "alien12"},/area/abductor_ship) +"tj" = (/obj/item/weapon/retractor/alien,/obj/item/weapon/hemostat/alien,/obj/structure/table/abductor,/turf/open/floor/plating/abductor,/area/abductor_ship) +"tk" = (/obj/effect/landmark/abductor/scientist,/turf/open/floor/plating/abductor,/area/abductor_ship) +"tl" = (/obj/structure/table/optable/abductor,/turf/open/floor/plating/abductor,/area/abductor_ship) +"tm" = (/obj/effect/landmark/abductor/agent,/turf/open/floor/plating/abductor,/area/abductor_ship) +"tn" = (/obj/structure/table/abductor,/obj/item/weapon/storage/box/alienhandcuffs,/turf/open/floor/plating/abductor,/area/abductor_ship) +"to" = (/turf/closed/indestructible/abductor{icon_state = "alien13"},/area/abductor_ship) +"tp" = (/obj/effect/landmark/abductor/scientist{team = 4},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tq" = (/obj/effect/landmark/abductor/agent{team = 4},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tr" = (/turf/closed/indestructible/abductor{icon_state = "alien10"},/area/abductor_ship) +"ts" = (/obj/item/weapon/surgical_drapes,/obj/item/weapon/paper/abductor,/obj/item/weapon/scalpel/alien,/obj/structure/table/abductor,/obj/item/weapon/cautery/alien,/turf/open/floor/plating/abductor,/area/abductor_ship) +"tt" = (/turf/closed/indestructible/abductor{icon_state = "alien11"},/area/abductor_ship) +"tu" = (/turf/closed/indestructible/abductor{icon_state = "alien6"},/area/abductor_ship) +"tv" = (/turf/closed/indestructible/abductor{icon_state = "alien7"},/area/abductor_ship) +"tw" = (/obj/machinery/abductor/gland_dispenser,/turf/open/floor/plating/abductor,/area/abductor_ship) +"tx" = (/obj/structure/table/abductor,/obj/item/weapon/surgicaldrill/alien,/obj/item/weapon/circular_saw/alien,/turf/open/floor/plating/abductor,/area/abductor_ship) +"ty" = (/obj/structure/bed/abductor,/turf/open/floor/plating/abductor,/area/abductor_ship) +"tz" = (/turf/closed/indestructible/abductor{icon_state = "alien8"},/area/abductor_ship) +"tA" = (/turf/closed/indestructible/abductor{icon_state = "alien9"},/area/abductor_ship) +"tB" = (/turf/closed/indestructible/abductor,/area/abductor_ship) +"tC" = (/turf/closed/indestructible/abductor{icon_state = "alien2"},/area/abductor_ship) +"tD" = (/turf/closed/indestructible/abductor{icon_state = "alien3"},/area/abductor_ship) +"tE" = (/turf/closed/indestructible/abductor{icon_state = "alien4"},/area/abductor_ship) +"tF" = (/turf/closed/indestructible/abductor{icon_state = "alien5"},/area/abductor_ship) +"tG" = (/obj/machinery/abductor/experiment{team = 2},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tH" = (/obj/effect/landmark/abductor/console{team = 2},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tI" = (/obj/machinery/abductor/pad{team = 2},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tJ" = (/obj/machinery/abductor/experiment{team = 3},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tK" = (/obj/effect/landmark/abductor/console{team = 3},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tL" = (/obj/machinery/abductor/pad{team = 3},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tM" = (/obj/machinery/computer/camera_advanced/abductor{team = 2},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tN" = (/obj/machinery/computer/camera_advanced/abductor{team = 3},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tO" = (/obj/effect/landmark/abductor/scientist{team = 2},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tP" = (/obj/effect/landmark/abductor/agent{team = 2},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tQ" = (/obj/effect/landmark/abductor/scientist{team = 3},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tR" = (/obj/effect/landmark/abductor/agent{team = 3},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tS" = (/turf/closed/indestructible/riveted,/area/awaymission/errorroom) +"tT" = (/turf/closed/mineral/ash_rock,/area/awaymission/errorroom) +"tU" = (/obj/structure/speaking_tile,/turf/closed/mineral/ash_rock,/area/awaymission/errorroom) +"tV" = (/obj/item/rupee,/turf/open/floor/plating/ashplanet/wateryrock{initial_gas_mix = "o2=22;n2=82;TEMP=293.15";planetary_atmos = 0},/area/awaymission/errorroom) +"tW" = (/turf/open/floor/plating/ashplanet/wateryrock{initial_gas_mix = "o2=22;n2=82;TEMP=293.15";planetary_atmos = 0},/area/awaymission/errorroom) +"tX" = (/obj/effect/landmark/error,/turf/open/floor/plating/ashplanet/wateryrock{initial_gas_mix = "o2=22;n2=82;TEMP=293.15";planetary_atmos = 0},/area/awaymission/errorroom) +"tY" = (/obj/structure/signpost/salvation{icon = 'icons/obj/structures.dmi';icon_state = "ladder10";invisibility = 100},/turf/open/floor/plating/ashplanet/wateryrock{initial_gas_mix = "o2=22;n2=82;TEMP=293.15";planetary_atmos = 0},/area/awaymission/errorroom) +"tZ" = (/obj/structure/lattice,/turf/open/space,/area/space) +"ue" = (/obj/machinery/door/airlock/centcom{name = "Auxillary Dock";opacity = 1;req_access_txt = ""},/turf/open/floor/plating,/area/syndicate_mothership) +"ud" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows";dir = 1},/area/syndicate_mothership) +"uc" = (/turf/open/floor/plating/warnplate{dir = 1},/area/syndicate_mothership) +"ub" = (/obj/machinery/door/poddoor/shuttledock{checkdir = 1;name = "syndicate blast door";turftype = /turf/open/floor/plating/asteroid/snow},/turf/open/floor/plating,/area/syndicate_mothership) +"ua" = (/obj/docking_port/stationary{area_type = /area/syndicate_mothership;dir = 1;dwidth = 25;height = 50;id = "emergency_syndicate";name = "Syndicate Auxillary Shuttle Dock";turf_type = /turf/open/floor/plating/asteroid/snow;width = 50},/turf/open/floor/plating/asteroid/snow/atmosphere,/area/syndicate_mothership) (1,1,1) = {" -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababadaeaeaeaeaeadaeaeaeaeaeadaeaeaeaeaeadaeaeaeaeaeadaeaeaeaeaeadaeaeaeaeaeadaeaeaeaeaead -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababafagagagagagahaiajakakalahamanaoapaqaharararararahasasasasasahatatatatatahauavavavawax -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababafagayagagagahaiajakakazahamamaAaAamaharaBaraBarahasasasasasahataCataCatahaDaEaEaEaFax -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababafagagagaGagahaiajakakaHahaIamamamamaharararararahasasasasasahatatatatatahaDaEaEaEaFax -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababafagagagagagahaiajakakakahaIaJaKaKamaharararararahasasasasasahatataCatatahaDaEaEaEaFax -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababafagaLagagagahaiajakakaHahaIamamamamahararaBararahasasasasasahatatatatatahaDaEaEaEaFax -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababafagaMagaNayahaiajakakaHahaIamamamamahararaBararahasasasasasahatatatatatahaOaEaEaEaPax -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababafagaGagagagahaiajakakakahaIaQaRaRamaharararararahasasasasasahatataCatatahaOaEaEaEaPax -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababafagagagagagahaiajakakaHahaIamamamamaharararararahasasasasasahatatatatatahaOaEaEaEaPax -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaSacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababafagagagaGagahaiajakakazahamamaTaTamaharaBaraBarahasasasasasahataCataCatahaOaEaEaEaPax -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacaUacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababafagagagagagahaiajakakaVahamanaWaoaqaharararararahasasasasasahatatatatatahaXaYaYaYaZax -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababadbababababaadbababababaadbababababaadbababababaadbababababaadbababababaadbababababaad -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababafbbbbbbbbbbahbcbdbcbdbcahbebfbgbhbiahbjbjbkblblahbmbmbmbmbmahbnbobobobpahbqbrbrbrbsax -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababafbbbbbbbbbbahbdbcbdbcbdahbtbubububvahbwbwbxbybyahbmbzbmbAbmahbBbCbCbCbDahbEbFbFbFbGax -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababafbbbbbbbbbbahbcbdbcbdbcahbHbIbJbKbLahbwbMbMbMbyahbmbmbmbmbmahbBbCbCbCbDahbEbNbNbNbGax -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacbOacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababafbbbbbbbbbbahbdbdbdbdbdahbububPbPbPahbwbxbxbxbyahbmbmbmbmbmahbBbCbCbCbDahbEbFbFbFbGax -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababafbbbbbbbbbbahbcbdbcbdbcahbQbRbSbubTahbUbVbVbVbWahbmbXbmbmbmahbYbZbZbZcaahcbcccccccdax -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababafbbbbbbbbbbahbcbdbcbdbcahcecfcgbuchahcicjcjcjckahbmbmbmclbmahcmcncncncoahcpcqcqcqcrax -aaaaaaaaaaaaaaaacsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababafbbbbbbbbbbahbdbdbdbdbdahctctbububuahcubxcvbxcwahbmbmbmbmbmahcxbCbCbCcyahczbFbFbFcAax -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababafbbbbbbbbbbahbcbdbcbdbcahcBcCcDbubuahcucEcEcEcwahcFcFcFcFcFahcxbCbCbCcyahczcGcGcGcAax -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababafbbbbbbbbbbahbdbcbdbcbdahcHcIcJcJbRahcucubxcwcwahcKcKcKcKcKahcxbCbCbCcyahczbFbFbFcAax -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababafbbbbbbbbbbahbcbdbcbdbcahcLcMcMcNcOahcPcPcQcRcRahcScScScScSahcTcUcUcUcVahcWcXcXcXcYax -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababadcZcZcZcZcZadcZcZcZcZcZadcZcZcZcZcZadcZcZcZcZcZadcZcZcZcZcZadcZcZcZcZcZadcZcZcZcZcZad -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababdadadadadadadadadadbdcdcdcdcdcdcdcdcdcdcdcdcdcdbdadadadadadadadada -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababdadddeadadadadaddfdgdcdcdcdcdcdcdcdcdcdcdcdcdcdhdfadadadadaddedida -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababdadddeadadadadaddfdgdcdcdcdcdcdcdcdcdcdcdcdcdcdhdfadadadadaddedida -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababdadddeadadadadaddfdgdcdcdcdcdcdjdkdjdcdcdcdcdcdhdfadadadadaddedida -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababdadddeadadadadaddfdgdcdcdcdcdcdjdjdjdcdcdcdcdcdhdfadadadadaddedida -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababdadddeadadadadaddfdgdcdcdcdcdcdcdcdcdcdcdcdcdcdhdfadadadadaddedida -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababdadddeadadadadaddfdgdcdcdcdcdcdcdcdcdcdcdcdcdcdhdfadadadadaddedida -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababdadadadmdmdmdmdmdadbdcdcdcdcdcdcdcdcdcdcdcdcdcdbdadmdmdmdmdmdadada -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababdadndndndndndaadadadadadadadadadadadadadadaddadodododododaabab -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababdadadadadadadaabababababababababababababababdadadadadadadaabab -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacdqacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -aaaaaaaaaaaaaaaaaaaadraaaaaaaaaadsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtaaaaaaaaaaaaaaaaababababababababababababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababacacacacacacacacacacacacacacacdvacacacacacacacacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -dwdwdwdwdwdwdwdwdwdwdwdwdwdwdwabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -dwdwdwdwdwdwdwdwdwdwdwdwdwdwdwabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -dwdwdwdwdwdwdwdwdwdwdwdwdwdwdwabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -dwdwdwdwdwdwdwdwdwdwdwdwdwdwdwabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -dwdwdwdwdwdwdwdwdwdwdwdwdwdwdwabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -dwdwdwdwdwdwdwdwdwdwdwdwdwdwdwabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -dwdwdwdwdwdwdwdwdwdwdwdwdwdwdwabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -dwdwdwdwdwdwdwdxdwdwdwdwdwdwdwabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -dwdwdwdwdwdwdwdwdwdwdwdwdwdwdwabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -dwdwdwdwdwdwdwdwdwdwdwdwdwdwdwabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababdydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydyab -dwdwdwdwdwdwdwdwdwdwdwdwdwdwdwabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababdydzdAdAdAdAdAdBdydzdAdAdAdBdydzdAdAdAdBdydzdAdAdAdBdydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydCdDdDdDdEdydCdDdDdDdEdydCdDdDdDdEdydCdDdDdDdDdDdEdyab -dwdwdwdwdwdwdwdwdwdwdwdwdwdwdwabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababdydFdGdGdGdGdGdHdIdFdJdKdJdHdIdFdJdKdJdHdIdFdJdKdJdHdLdLdLdLdLdMdMdLdLdLdLdLdLdNdLdLdLdLdLdLdLdLdLdNdLdLdLdLdLdLdLdNdLdLdLdLdLdLdLdLdLdNdLdLdLdLdLdLdMdMdLdLdLdLdLdOdGdPdGdQdRdOdGdPdGdQdRdOdGdPdGdQdRdOdGdGdGdGdGdQdyab -dwdwdwdwdwdwdwdwdwdwdwdwdwdwdwabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdydFdGdSdSdSdGdHdIdFdJdKdKdHdIdFdKdKdKdHdIdFdKdKdJdHdLdLdLdLdLdLdLdLdLdLdLdLdLdLdLdLdLdLdMdLdLdLdLdLdLdLdLdMdLdLdLdLdLdLdLdLdMdLdLdLdLdLdLdLdLdLdLdLdLdLdLdLdLdLdLdOdGdPdPdQdRdOdPdPdPdQdRdOdPdPdGdQdRdOdGdSdSdSdGdQdyab -dwdwdwdwdwdwdwdwdwdwdwdwdwdwdwabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdydFdGdGdGdGdGdHdIdFdJdKdJdHdIdFdJdKdJdHdIdFdJdKdJdHdLdLdLdLdLdMdMdLdLdLdLdLdLdNdLdLdLdLdLdLdLdLdLdNdLdLdLdLdLdLdLdNdLdLdLdLdLdLdLdLdLdNdLdLdLdLdLdLdMdMdLdLdLdLdLdOdGdPdGdQdRdOdGdPdGdQdRdOdGdPdGdQdRdOdGdGdGdGdGdQdyab -dUdwdwdwdwdwdwdwdwdwdwdwdwdwdwabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdydFdGdSdSdSdGdHdydVdWdWdWdXdydVdWdWdWdXdydVdWdWdWdXdydGdGdGdydydydydGdGdGdydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydYdZdZdZeadydYdZdZdZeadydYdZdZdZeadydOdGdSdSdSdGdQdyab -ababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdydFdGdGdGdGdGdHdydydIdIdIdydydyebebebdydydydIdIdIdydyecececdydydydyecececdydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydRdRdRdydydyebebebdydydydRdRdRdydydOdGdGdGdGdGdQdyab -ababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdydFdGdSdSdSdGdHdydzdAdAdAdBdydzdAdAdAdBdydzdAdAdAdBdyedeeefefegeeefefegeeefefegeeefefegeeefehdydyeidydydyeidydydyeidydydydyeidydydydyeidydydyeidydydyeidydydydydydCdDdDdDdEdydCdDdDdDdEdydCdDdDdDdEdydOdGdSdSdSdGdQdyab -ababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdydFdGdGdGdGdGdHdIdFdJdKdJdHdIdFdJdKdJdHdIdFdJdKdJdHejekdJeldGemdJeldGemdJeldGemdJeldGemdKelejdydyendydydyendydydyendydydydyendydydydyendydydyendydydyendydydydydydOdGdPdGdQdRdOdGdPdGdQdRdOdGdPdGdQdRdOdGdGdGdGdGdQdyab -ababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdydFdGdSdSdSdGdHdIdFdJdKdKdHdIdFdKdKdKdHdIdFdKdKdJdHejeodHdJdGdGdHdJdGdGdHdJdGdGdHdJdGdGdKdJejepeqeqeqeqeqeqeqeqeqeqeqeqeqeqeqeqeqeqeqeqeqeqeqeqeqeqeqeqeqeqeqeqerdOdGdPdPdQdRdOdPdPdPdQdRdOdPdPdGdQdRdOdGdSdSdSdGdQdyab -ababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdydFdGdGdGdGdGdHdIdFdJdKdJdHdIdFdJdKdJdHdIdFdJdKdJdHejesdJetdGeudJetdGeudJetdGeudJetdGeudKetejdydyevdyebdyevdyebdyevdydyebdyevdyebdydyevdyebdyevdyebdyevdydyebdydydOdGdPdGdQdRdOdGdPdGdQdRdOdGdPdGdQdRdOdGdGdGdGdGdQdyab -ababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdydVdWdWdWdWdWdXdydVdWdWdWdXdydVdWdWdWdXdydVdWdWdWdXdyewexececeyexececeyexececeyexececeyexecezdydyeAdyebdyeAdyebdyeAdydyebdyeAdyebdydyeAdyebdyeAdyebdyeAdydyebdydydYdZdZdZeadydYdZdZdZeadydYdZdZdZeadydYdZdZdZdZdZeadyab -ababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdyeBdydydydydyeBdydydIdIdIdydydydJdJdJdydydydyeqdydydydyefdydydydydydKdKdKdydydydydyeCeDeDeDeEdydyebdyebdyebdyebdyebdydyebdyebdyebdydyebdyebdyebdyebdyebdydyebdydydydyeqdydydydyeFeFeFdydydydRdRdRdydyeGdydydydydyeGdyab -ababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdydJdJdJdJdJdJdJdydzdAdAdAdBdydJdJdJdJdJdydydyeqdydydydydGdNdNdNdNdNdNdNdNdNdNdNdNdNeHeIeIeIeJdNdNdNdNdNdNdNdNdNdNdNdNdNdGdydydydGdNdNdNdNdNdNdNdNdNdNdNdNdNdGdydydydyeqdydydyeFeFeFeFeFdydCdDdDdDdEdyeFeFeFeFeFeFeFdyab -ababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdydJdKdKdKdKdKdJeBdFdJdKdJdHdydJdGdGdGdJdydydyeqdydydydydGdyebebebdydKdKdKdyebebebdyeKeLeLeLeMdyebebebdyeNeNeNdyebebebdydGdydydydGdyebebebdydPdPdPdyebebebdydGdydydydyeqdydydyeFdGdGdGeFdydOdGdPdGdQeOeFdPdPdPdPdPeFdyab -ababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdydJdKdJdJdJdKdJeBdFdKdKdKdHdydJdydKdydJdyeqeqeqeqeqeqdGdGdGdGdGdGdGdGdGdGdGdGdGdGdGePeQeQeQeReSeSeSeSeSeSeSeSeSeSeSeSeSeTeUeUeUeVdGdGdGdGdGdGdGdGdGdGdGdGdGdGdGeqeqeqeqeqeqdyeFdydPdyeFdydOdPdPdPdQeOeFdPeFeFeFdPeFdyab -ababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdydJdKdJdJdJdKdJeBdFdJdKdJdHdydJdGdGdGdJdydydyeqdyebdydGdGdGeIeIeIeIeIeIeIeIeIeIeIdGeWdJdJdJdHeXeXeXeXeXdyeXdyeXeXeXeXeXdOeFeFeFeYdGeZeZeZeZeZeZeZeZeZeZeZdGdGdGdyebdyeqdydydyeFdGdGdGeFdydOdGdPdGdQeOeFdPeFeFeFdPeFdyab -ababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdydJdJdJdJdJdJdJdydVdWdWdWdXdydJdJdJdJdJdydydyeqebebebdGdGdGdGdGdGdGdGdGdGdGdGdGdGdGeWdJdKdJdHeXeXeXeXeXeXdyeXeXeXeXeXeXdOeFdPeFeYdGdGdGdGdGdGdGdGdGdGdGdGdGdGdGebebebeqdydydyeFeFeFeFeFdydYdZdZdZeadyeFeFeFeFeFeFeFdyab -ababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdydydIdIdIdIdIdydydydydydydydydydJdJdJdydydydydydyebdydGdGdydJdIdJdyebebebdydJdIdJdyeWdJdJdJdHdyeXeIdKeXeXeXeXeXdPeZeXdydOeFeFeFeYdyeFdReFdyebebebdyeFdReFdydGdGdyebdydydydydydyeFeFeFdydydydydydydydydyeFeFeFeFeFdydyab -ababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdydJdJdJdJdJdJdJdydJdJdJdJdJdydJdJdJdJdJdydJdJdJdJdJdydGdGdydIdJdIdKeIeIeIdKdIdJdIdyeWdJdydJdHdyeXeXeIdKeXeXeXdPeZeXeXdydOeFdyeFeYdydReFdRdPeZeZeZdPdReFdRdydGdGdyeFeFeFeFeFdyeFeFeFeFeFdyeFeFeFeFeFdyeFeFeFeFeFeFeFdyab -ababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdydJdJdJfadJdJdJdydJdGdydGdJdJdJdKfadKdJdJdJdGdydGdJdJdGdGebdJdIdJeIeIeIeIeIdJdIdJdyeWdJdKdJdHdyeIeXeXeIdKeXdPeZeXeXeZdydOeFdPeFeYdyeFdReFeZeZeZeZeZeFdReFebdGdGeFeFdGdydGeFeFeFdPfadPeFeFeFdGdydGeFdyeFeFeFfaeFeFeFdyab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdydJdJfafbfadJdJdydJdGdKdGdJdJdJfafcfadJdJdJdGdKdGdJdJdGdGebdIdJdIeIeIdKeIeIdIdJdIdyeWdJdKdJdHdydKeIeXeXeIeXeZeXeXeZdPdydOeFdPeFeYdydReFdReZeZdPeZeZdReFdRebdGdGeFeFdGdPdGeFeFeFfafdfaeFeFeFdGdPdGeFdyeFeFfafefaeFeFdyab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdydJdJdJfadJdJdJdydJdGdydGdJdJdJdKfadKdJdJdJdGdydGdJdJdGdGebdJdIdJeIeIeIeIeIdJdIdJdyeWdJdKdJdHdyeIeXeXeIdKeXdPeZeXeXeZdydOeFdPeFeYdyeFdReFeZeZeZeZeZeFdReFebdGdGeFeFdGdydGeFeFeFdPfadPeFeFeFdGdydGeFdyeFeFeFfaeFeFeFdyab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdydJdJdJdJdJdJdJdydJdJdJdJdJdydJdJdJdJdJdydJdJdJdJdJdydGdGdydIdJdIdKeIeIeIdKdIdJdIdyeWdJdydJdHdyeXeXeIdKeXeXeXdPeZeXeXdydOeFdyeFeYdydReFdRdPeZeZeZdPdReFdRdydGdGdyeFeFeFeFeFdyeFeFeFeFeFdyeFeFeFeFeFdyeFeFeFeFeFeFeFdyab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababffababababababababababababababababababababababababababdydydIdIdIdIdIdydydydydydydydydydJdJdJdydydydydydyebdydGdGdydJdIdJdyebebebdydJdIdJdyeWdJdJdJdHdyeXeIdKeXeXeXeXeXdPeZeXdydOeFeFeFeYdyeFdReFdyebebebdyeFdReFdydGdGdyebdydydydydydyeFeFeFdydydydydydydydydyeFeFeFeFeFdydyab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdydJdJdJdJdJdJdJdydzdAdAdAdBdydJdJdJdJdJdydydyeqebebebdGdGdGdGdGdGdGdGdGdGdGdGdGdGdGeWdJdKdJdHeXeXeXeXeXeXdyeXeXeXeXeXeXdOeFdPeFeYdGdGdGdGdGdGdGdGdGdGdGdGdGdGdGebebebeqdydydyeFeFeFeFeFdydCdDdDdDdEdyeFeFeFeFeFeFeFdyab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdydJdKdJdJdJdKdJeBdFdGdKdGdHdydJdGdGdGdJdydydyeqdyebdydGdGdGeIeIeIeIeIeIeIeIeIeIeIdGeWdJdJdJdHeXeXeXeXeXdyeXdyeXeXeXeXeXdOeFeFeFeYdGeZeZeZeZeZeZeZeZeZeZeZdGdGdGdyebdyeqdydydyeFdGdGdGeFdydOeFdPeFdQeOeFdPeFeFeFdPeFdyab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdydJdKdJdJdJdKdJeBdFdKdKdKdHdydJdydKdydJdyeqeqeqeqeqeqdGdGdGdGdGdGdGdGdGdGdGdGdGdGdGfgfhfhfhfifjfjfjfjfjfjfjfjfjfjfjfjfjfkflflflfmdGdGdGdGdGdGdGdGdGdGdGdGdGdGdGeqeqeqeqeqeqdyeFdydPdyeFdydOdPdPdPdQeOeFdPeFeFeFdPeFdyab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfnfofpfqfrabfsabababftabfnfofpfqfrabababababababababababababababababababababababababababababababababababababababababababababababababababababababababdydJdKdKdKdKdKdJeBdFdGdKdGdHdydJdGdGdGdJdydydyeqdydydydydGdyebebebdydKdKdKdyebebebdydGdydydydGdyebebebdyeNeNeNdyebebebdyfufvfvfvfwdyebebebdydPdPdPdyebebebdydGdydydydyeqdydydyeFdGdGdGeFdydOeFdPeFdQeOeFdPdPdPdPdPeFdyab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfxfyfyfyfzfAfBfCfDfCfBfEfFfyfyfyfxabababababababababababababababababababababababababababababababababababababababababababababababababababababababababdydJdJdJdJdJdJdJdydVdWdWdWdXdydJdJdJdJdJdydydyeqdydydydydGdNdNdNdNdNdNdNdNdNdNdNdNdNdGdydydydGdNdNdNdNdNdNdNdNdNdNdNdNdNfGeZeZeZfHdNdNdNdNdNdNdNdNdNdNdNdNdNdGdydydydyeqdydydyeFeFeFeFeFdydYdZdZdZeadyeFeFeFeFeFeFeFdyab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfxfIfIfJfKfLfMfNfOfPfMfLfQfRfIfIfxabababababababababababababababababababababababababababababababababababababababababababababababababababababababababdyeBdydydydydyeBdydydIdIdIdydydydJdJdJdydydydyeqdydydydyebdydyebdyebdyebdyebdyebdydyebdydydyebdydyebdyebdyebdyebdyebdydyfSfTfTfTfUdydydydydydPdPdPdydydydydyecdydydydyeqdydydydyeFeFeFdydydydRdRdRdydyeGdydydydydyeGdyab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfxfIfIfVfWfWfMfWfWfWfMfWfWfVfIfIfxabababababababababababababababababababababababababababababababababababababababababababababababababababababababababdydzdAdAdAdAdAdBdydzdAdAdAdBdydzdAdAdAdBdydzdAdAdAdBdydyebdydyeidyebdyeidyebdyeidydyebdyeidyebdydyeidyebdyeidyebdyeidydyfXeffYfZefeffYfZefeffYfZefeffYfZefeffYgadydCdDdDdDdEdydCdDdDdDdEdydCdDdDdDdEdydCdDdDdDdDdDdEdyab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgbfRfIfBfWfMfMfMfMfMfMfMfWfBfIfJgcabababababababababababababababababababababababababababababababababababababababababababababababababababababababababdydFdGdGdGdGdGdHdIdFdGdKdGdHdIdFdGdKdGdHdIdFdGdKdGdHdydyebdydyendyebdyendyebdyendydyebdyendyebdydyendyebdyendyebdyendydyeogddPgedGgdeFgedGgdeFgedGgdeFgedGgdeFgfeodOdGdPdGdQdRdOdGdPdGdQdRdOdGdPdGdQdRdOdGdGdGdGdGdQdyab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgbggghgigjgkglfMgmfWfMgngogggcababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdydFdGdSdSdSdGdHdIdFdGdKdKdHdIdFdKdKdKdHdIdFdKdKdGdHepeqeqeqeqeqeqeqeqeqeqeqeqeqeqeqeqeqeqeqeqeqeqeqeqeqeqeqeqeqeqeqeqgpeoeFdPdGdGeFdOdGdGeFdOdGdGeFdOdGdGeFdOejeodOdGdPdPdQdRdOdPdPdPdQdRdOdPdPdGdQdRdOdGdSdSdSdGdQdyab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfxgqgrgsgtfMfWfWfMgnfxababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdydFdGdGdGdGdGdHdIdFdGdKdGdHdIdFdGdKdGdHdIdFdGdKdGdHdydydydydyevdydydyevdydydyevdydydydyevdydydydyevdydydyevdydydyevdydyeogudPgvdGgueFgvdGgueFgvdGgueFgvdGgueFgweodOdGdPdGdQdRdOdGdPdGdQdRdOdGdPdGdQdRdOdGdGdGdGdGdQdyab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfxgxgygyglfMgngzfMgnfVababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdydFdGdSdSdSdGdHdydVdWdWdWdXdydVdWdWdWdXdydVdWdWdWdXdydydydydyeAdydydyeAdydydyeAdydydydyeAdydydydyeAdydydyeAdydydyeAdydygAecgBgCececgBgCececgBgCececgBgCececgBgDdydYdZdZdZeadydYdZdZdZeadydYdZdZdZeadydOdGdSdSdSdGdQdyab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfxgEgygygFfMgngzfMfMfBgGabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdydFdGdGdGdGdGdHdydydIdIdIdydydyebebebdydydydIdIdIdydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydyefefefdydydydyefefefdydydRdRdRdydydyebebebdydydydRdRdRdydydOdGdGdGdGdGdQdyab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfzggggggghfMfWfWfMgnfCababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdydFdGdSdSdSdGdHdydzdAdAdAdBdydzdAdAdAdBdydzdAdAdAdBdydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydGdGdGdydydydydGdGdGdydCdDdDdDdEdydCdDdDdDdEdydCdDdDdDdEdydOdGdSdSdSdGdQdyab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfxgHfMgHfxfMgngzfMgngIababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdydFdGdGdGdGdGdHdIdFdGdKdGdHdIdFdGdKdGdHdIdFdGdKdGdHdGdLdLdLdLdMdMdLdLdLdLdLdLdNdLdLdLdLdLdLdLdLdLdNdLdLdLdLdLdLdLdNdLdLdLdLdLdLdLdLdLdNdLdLdLdLdLdLdMdMdLdLdLdLdLdOdGdPdGdQdRdOdGdPdGdQdRdOdGdPdGdQdRdOdGdGdGdGdGdQdyab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfxgHfMgHfVfMgngzfMgnfCababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdydFdGdSdSdSdGdHdIdFdGdKdKdHdIdFdKdKdKdHdIdFdKdKdGdHdGdLdLdLdLdLdLdLdLdLdLdLdLdLdLdLdLdLdMdLdLdLdLdLdLdLdLdMdLdLdLdLdLdLdLdLdMdLdLdLdLdLdLdLdLdLdLdLdLdLdLdLdLdLdLdOdGdPdPdQdRdOdPdPdPdQdRdOdPdPdGdQdRdOdGdSdSdSdGdQdyab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfxgHfMfMgJfMfMfMfMfMfBgKabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdydFdGdGdGdGdGdHdIdFdGdKdGdHdIdFdGdKdGdHdIdFdGdKdGdHdGdLdLdLdLdMdMdLdLdLdLdLdLdNdLdLdLdLdLdLdLdLdLdNdLdLdLdLdLdLdLdNdLdLdLdLdLdLdLdLdLdNdLdLdLdLdLdLdMdMdLdLdLdLdLdOdGdPdGdQdRdOdGdPdGdQdRdOdGdPdGdQdRdOdGdGdGdGdGdQdyab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfxgHfMgHgLfMfWfWfWfWgLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdydVdWdWdWdWdWdXdydVdWdWdWdXdydVdWdWdWdXdydVdWdWdWdXdydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydYdZdZdZeadydYdZdZdZeadydYdZdZdZeadydYdZdZdZdZdZeadyab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfxgHfMgHfxfMgMgNgOfLfxababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydydyab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgbgPgPgggQgRfEgggPgPgcabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgbfFgSgnfMgTgUfzgcababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfxgOfWgVfWgSfxabababababababababababababababababababababababababababababababababababababababababababababababgWgXgWgWgWgWgXgWababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfxgYgZhahbhcfxababababababababababababababababababababababababababababababababababababababababababhdhdhdhdhdgWhehehfhfhehegWababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgbgIgIgIgIgIgcababababababababababababababababababababababababababababababababababababababababababhdhghhhihjhkhehehfhfhlhmgWababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababhdhghdhdhdgWhehehfhfhehngWababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababhdhdhdhdhdhohdhdhdhphdababgWhehehfhfhehegWababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababhdhqhrhshghghghthuhghdababgWhehehehehehegWababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababhdhghghghvhghvhghghghdababgWhehehfhfhehegWababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababhdhghghwhwhwhwhxhghghdababgWgXgWgWgWgWgXgWababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababhdhdhdhdhdhdhdhdhghyhwhzhAhwhghghBhdababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababhdhChDhEhFhGhGhdhghghwhwhwhwhxhghHhdababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababhdhIhIhIhIhIhIhJhghghKhghKhghghghLhdhdhdhdhdhMhMhMhMhMhMhMhMhMabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababhdhIhIhIhIhIhIhJhghghghghghghghghNhOhPhPhPhdhMhQhMhQhMhQhMhQhMabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababhdhRhRhShThUhUhdhVhWhghghghghghghNhXhPhYhPhdhMhMhMhMhMhMhMhMhMabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababhdhdhZiaiaibhdhdhZiaiaibhdhdhdichdhdidieifhdhMhQhMhQhMhQhMhQhMabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababighghghNihiiijifhdhMhMhMhMhMhMhMhMhMabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababikilhghghNiminioiphdababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababiqilirhghghNhdhdhdhdhdhMhMhMhMhMhMhMhMhMabisisisisisisababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababitiuhiivhghgiwhdixhPiyhdhMhQhMhQhMhQhMhQhMabisiziAiAiBisababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababiqiCivhghghgiDhPhPiEhdhMhMhMhMhMhMhMhMhMabiFiGiGiGiGisababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababiHiChghgiIhdhPhPiJhdhMhQhMhQhMhQhMhQhMabisiGiKiLiMisababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababiNhghghNhdhPiOiPhdhMhMhMhMhMhMhMhMhMabisiQiRiSiTisababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababhdhdhdhdhdiUhdhdhdhdhdhdababababababababababisiGiGiGiGisababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababiViWiXiWiYiZiYiWiXiWiVabababisisisisisisisisjajbjcjdjeisababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababiViWiWiWjfjgjfiWiWiWiVabababisjhjijijijjjkjljmjnjojojpjqababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababiVjriVjriVjgiVjriVjriViViViVisjsjojojojojojtjujnjojojpjvababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababiVjwiYjxjgjgjgjgjgjyjzjAjAjBisjsjojojojojCjDjEjnjojojpjvababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababjFjFjFjFjFjFjFjwjGjxjgjgjgjHiVjriViVjAjIisjsjojojojojJjJjJjKjojojpjvjLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMababababababababababababababababababababababababababababababababababababababjFjNjOjPjOjQjFjwjfjxjgjgjgjRjrjwiVjSjTjUisjVjojojojojojojojojojojpjvababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababjMjWjWjWjWjWjWjWjWjWjXjWjWjWjYjZjWjWjWjWjWjYjWjWjWjWjWkajYjWjWjMababababababababababababababababababababababababababababababababababababababkbkckdkdkdkdjFjriVkejgjgjgkfiVjriVjrkgjriskhjojojojojojojojojojojpjvababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababjMjWjWjWjWjXjWjWjWjWjWjWjWjWjWjWjWjYjWjWjWjWjWjWjWjYjWkijWjWjWjMababababababababababababababababababababababababababababababababababababababkjkckdkdkdkdkkkljgjgjgjgjgjgjgjykmjAjAjAknkojojojojojojojojojojojpjvababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababjMjWjWjWjWjWjWjWkpjWjWjWjWjWjXjWjWjZjWjWjYjWjWjYjWjWjYjZjWjYjWjMababababababababababababababababababababababababababababababababababababababkbkqkdkdkdkdjFjriVkrjgjgjgjHiVjriViViViVisksjojojojojojojojojojojpjvababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababjMjWjWjWjWjWjWjWjWjWjWjWjWjWjWjWjWjWjYjWjWjXjWjWjYjZjWjWjYjWjZjMabababababababababababababababababababababababababababababababababababababktkjkckdkdkdkdjFjwiYjxjgjgjgkuiYjwiVabababiskvjojojojojojojojojojojpjvababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababjMjWjWjWjWjWjWjWjWjWjWjWjWjWjWjWjXjWjWjWjWjWjWjWjZjWjYjZjWjYjWjMababababababababababababababababababababababababababababababababababababababkwkckdkdkdkdjFjwjGjxjgjgjgkujGjwiVabababiskxjojojojokykykykzjojojpjvababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababjMjWjWjWjWjWjWjWjWjWjWjWjWjWjWjWjWjWjWjZjWjWjWjYjWjWkpjZjWjWjWjMababababababababababababababababababababababababababababababababababababababkAkckdkdkdkdjFjwjfkBkrjgjHkCjfjwiVabababiskxjojojojokDkEkFjnjojojpkGababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababjMjWjWjWjWjWkHkHkHkHkHkHkHkHkHjWjWjWjWjWjWkpjWjWjXjWjXjWjYjWjYjMababababababababababababababababababababababababababababababababababababababkIkckdkdkdkdjFkJkJkKkLkMkKkLkJkJkJabababiskxjojojojojokNkOjnjojojpkPababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababjMjWjWjWjWjWkHkHkHkHkHkHkHkHkHjWjWjWjWjWjWkQkQkRkSkQkQjWjZjYjWjMababababababababababababababababababababababababababababababababababababababjFkTkUkVkdkdjFkWkXkYkZlalblcldlekJabababislflglglglhliljlkjnjojojpllababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababaaaaaaaaaaaaaaaaaaaaaaaaaaaalmlnlnlnloaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababjMjWjWjWjWjWkHkHkHkHkHkHkHkHkHjWjWjWjWjWkQkQlplqlqlpkQkQkQkQkQkQkQkQababababababababababababababababababababababababababababababababababababjFjFjFjFlrjFjFlslaltkZlalbltlalukJabababisisisisisisisislvjbjclwjeisababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababaaaaaaaaaaaaaaaaaaaaaaaaaaaalxlylzlylxaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababjMjWjWjWjWjWkHkHkHkHkHkHkHkHkHjWkpjWjWjWkQlAlBlBlBlBlClDlEkQlFlGlHkQababababababababababababababababababababababababababababababababababababababjFlIlIlIjFlJlaltkZlalbltlalKkJabababababababababababisjojojojoisababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababaaaaaaaaaaaaaaaaaaaaaaaaaaaalLlylylylLaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababjMjWjWjWjWjWkHkHkHkHkHkHkHkHkHjWjWjWjWjXkQlMlBlNlNlOlBlBlBlPlQlQlRkQkQkQkQkQkQkQkQkQkQkQkQabababababababababababababababababababababababababababjFlIlIlIjFlSlaltkZlalbltlalTkJabababababababababababisjolUkEkDisababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababaaaaaaaaaaaaaaaaaaaaaaaaaaaalVlWlylXlVaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababjMjWjWjWjWjWjWkHkHkHkHkHkHkHjWjWjWjWjWjWkQlBlNlYlZlNlBmambkQlQmckQkQmdmdmdmemememememdmdkQabababababababababababababababababababababababababababjFlIlIlIjFmfmgmgmhlamimjmjmkkJabababababababababababisjomlkNmmisababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababaaaaaaaaaaaaaaaaaaaaaaaaaaaalVlVmnlVlVaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababjMjWjWjWjWjWjWjWkHkHkHkHkHmompmpmpmpmpkSkQlBlNmqmrlNlBmamskQkQkQkQkQmdmtmumvmwmxmwmymzmdkQabababababababababababababababababababababababababababjFjFjFjFjFkKmAkLkJlakJkKmAkLkJabababababababababababmBjojojojoisababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababaaaaaaaaaaaaaaaaaaaaaaaaaaaalVlymClylVaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababjMjWjWkHkHkHkHkHkHkHkHkHkHmDmEmEmEmEmEmEmFlBlBlBlBlBlBmamskQkQkQkQkQmdmGmvmwmHmImJmwmymKkQabababababababababababababababababababababababababababababababkJmLmLmLmMlamMmLmLmLkJabababababababababababismNlhlhmOisababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababaaaaaaaaaaaaaaaaaaaaaaaaaaaalVmPmCmQlVaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababjMjWjWkHkHkHkHkHkHkHkHkHkHmRmSkRmpmpmpkSkQmTlNlNlNlBlBmamUkRmpmpmpmpmpmpmwmHmImVmImJmwmKkQababababababababababababababababababababababababababababkJkJkJkJkJkJkJkJkMkJkJkJkJkJkJkJkJababababababababisisisisisisababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababaaaaaaaaaaaalVlVlVlVlVlVaaaalVlymClylVaaaalVlVlVlVlVlVaaaaaaaaaaaaababababababababjMjWjWkHkHkHkHkHkHkHkHkHkHkHmWkHkHjWjWjWkQmXmYmZmYnalBlBlBmSmEmEmEmEmEmSnbmImJncmHmInbmKkQababababababababababababababababababababababababababababkJndnenenenenendndndnenenenenendkJababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababaaaaaaaaaaaalVnfnfnfnflVlVlVlVlVmnlVlVlVlVlVlylylylylVaaaaaaaaaaaaababababababababjMngjWkHkHkHkHkHkHkHkHkHkHkHkHkHkHjWjWjXkQnhninhnhnjlBlBlBkRmpmpmpmpmpmpmwmHmInkmImJmwmKkQababababababababababababababababababababababababababababnlndndndnmndndndndndndndnmndndndnlababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababaaaaaaaaaaaannmCmCmCmCnolynplylylylylynplynolylynqlynnaaaaaaaaaaaaababababababababjMjWjWkHkHkHkHkHkHkHkHkHkHkHkHkHkHjWkpjWkQkQmbnrnsntkQnukQkQkQkQkQkQmdmGnvmwmHmImJmwnwmKkQababababababababababababababababababababababababababababkJndnenenenenendndndnenenenenendkJababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababaaaaaaaaaaaalxnxnymCmCnzlylylylylylylylylynAlynBnCnDlxaaaaaaaaaaaaababababababababjMjWjWkHkHkHkHkHkHkHkHkHkHkHkHkHkHkHjWjWjWkQkQkQkQkQkQnEnEnFnGnHnIkQmdnJnKnvmwnLmwnwnMmdkQababababababababababababababababababababababababababababkJkKmAmAmAmAmAmAmAmAmAmAmAmAmAkLkJababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababaaaaaaaaaaaalLmCmCmCnfnolylylylynNlylylylynolynOnPnQlLaaaaaaaaaaaaababababababababjMjWkHkHkHkHkHkHkHkHkHkHkHkHkHkHkHkHkHjWjWjWjWjWkpjWkQnEnEnEnEnEnEkQmdmdmdnRnRnRnRnRmdmdkQababababababababababababababababababababnSnSnSnSnSnSnSnSnSnTnUnUnUnUnUnUnUnUnUnUnUnUnUnTnSnSnSnSnSnSnSnSnSababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababaaaaaaaaaaaalVnfnfmCnflVlylylylylylylylylylVlylylylylVaaaaaaaaaaaaababababababababjMjWkHkHkHkHkHkHkHkHkHkHkHkHkHkHkHkHkHjWjWjWjXjWjWjZnVnEnEnEnEnEnWkQkQkQkQkQkQkQkQkQkQkQkQababababababababababababababababababababnSnXnYnZnZnZnZnZoaobnUnUnUnUnUnUnUnUnUnUnUnUnUocoaodododododnYoenSababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababaaaaaaaaaaaalVlVlVnzlVlVlynplylylylylynplylVlVnAlVlVlVaaaaaaaaaaaaababababababababjMjWkHkHkHkHkHkHkHkHkHkHkHkHkHkHkHkHkHjWjWjWkpjYjXkpkQofofofofofogkQabababababababababababababababababababababababababababababababnSnXnYnZohnZohnZoaobnUnUnUnUnUnUnUnUnUnUnUnUnUocoaodoiodoiodnYoenSababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababaaaaaaaaaaaaaalVlylylylVlVlVlVnoojnolVlVlVlVlylylylVaaaaaaaaaaaaaaababababababababjMjWkHkHkHkHkHkHkHkHkHkHkHkHkHkHkHkHkHjWjWjWjWjWjYjWkQkQkQkQkQkQkQkQabababababababababababababababababababababababababababababababnSnXnYnZnZoknZnZoaobnUnUnUnUnUolomolnUnUnUnUnUocoaododonododnYoenSababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababaaaaaaaaaaaaaannlylylylylylylylylylylylylylylylylynnaaaaaaaaaaaaaaababababababababjMjWkHkHkHkHkHkHkHkHkHkHkHkHkHkHkHkHkHjWjWjWjYjWkpjWjMababababababababababababababababababababababababababababababababababababababnSnXnYnZnZnZnZnZoaobnUnUnUnUnUolooolnUnUnUnUnUocoaodododododnYoenSababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababaaaaaaaaaaaaaalxlyoplyoplyoplyoplyoplyoplyoplyoplylxaaaaaaaaaaaaaaababababababababjMjWkHkHkHkHkHkHkHkHkHkHkHkHkHkHkHkHkHjWjWjWjWjWjWjWjMababababababababababababababababababababababababababababababababababababababnSnXnYnZohnZohnZoaobnUnUnUnUnUnUnUnUnUnUnUnUnUocoaodoiodoiodnYoenSababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababaaaaaaaaaaaaaalLlylylylylylylylylylylylylylylylylylLaaaaaaaaaaaaaaababababababababjMjWkHkHkHkHkHjWkHkHkHkHkHkHkHkHkHkHkHjWjWjWjWkijWjWjMababababababababababababababababababababababababababababababababababababababnSnXnYnZnZnZnZnZoaobnUnUnUnUnUnUnUnUnUnUnUnUnUocoaodododododnYoenSababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababaaaaaaaaaaaaaalVlVoqorosoqorlVlVotlVlVoqorouoqorlVlVaaaaaaaaaaaaaaababababababababjMjWkHkHkHkHkHjWkHkHkHkHkHjWkHkHkHkHkHjWjWjWkiovkijWjMababababababababababababababababababababababababababababababababababababababnSnSnSowowowowownSnTnUnUnUnUnUnUnUnUnUnUnUnUnUnTnSowowowowownSnSnSababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababaaaaaaaaaaaaaaaalVlylylylyoxlVoyozoAlVoBlylylyoClVaaaaaaaaaaaaaaaaababababababababjMjWkHkHkHkHkHjWjWjWjWjWjWjWkHkHkHkHkHjWjWjWjWkijWjWjMababababababababababababababababababababababababababababababababababababababababnSoDoDoDoDoDnSoEoFoFoFoFoFoFoFoFoFoFoFoFoFoGnSoHoHoHoHoHnSababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababaaaaaaaaaaaaaaaalVoIoJlylylylVoKoLoMlVoNlylylyoOlVaaaaaaaaaaaaaaaaababababababababjMjWkHkHkHkHkHjWjWjWjWjWjWjWkHkHkHkHkHjWjWjWjWjWjWjWjMababababababababababababababababababababababababababababababababababababababababnSnSnSnSnSnSnSoPoQoQoQoQoQoRoSoToQoQoQoQoQoPnSnSnSnSnSnSnSababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababaaaaaaaaaaaaaaaalVlylylylylylVoUozoVlVoWlylylyoXlVaaaaaaaaaaaaaaaaababababababababjMjWjWjWjWjWjWjWjWjWjWjWjWjWjWjWjWjWjWjWjWjWjWjWjWjWjMababababababababababababababababababababababababababababababababababababababababababababababoYoPoPoPoZoPpapapapapaoPoZoPoPoPoYababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababaaaaaaaaaaaaaaaalVlVlylypblVlVlVpclVlVlVpdpepflVlVaaaaaaaaaaaaaaaaababababababababjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMababababababababababababababababababababababababababababababababababababababababababababababoYoYpgoYoYoYoYphpipjoYoYoYoYpgoYoYababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababaaaaaaaaaaaaaaaaaalVlVlVlVlVpkpllyplpllVlVlVlVlVaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababoYoYoYoYoYababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababaaaaaaaaaaaaaaaaaaaaaaaaaalVlylylylylylVaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababaaaaaaaaaaaaaaaaaaaaaaaaaalVpmlypnlypmlVaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababpopopopopopopopopopopopopopopopopopopoababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababaaaaaaaaaaaaaaaaaaaaaaaaaalVpppppppppplVaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababpopqprpsptptprpupvpwpxpypzpApzpzpzpBpoababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababaaaaaaaaaaaaaaaaaaaaaaaaaalVlVpCpCpClVlVaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababpopqprprprprprpDpypypypEpzpzpzpFpzpzpoababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapGpGpGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababpopHprpIpqpJpKpLpypypypypzpzpMpzpNpApoababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababpopOpypEpEpEpEpEpypypypypzpzpzpPpzpzpoababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababpopQpypypypypypypypypypypRpzpzpzpzpzpoababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababpopSpypypypypypypypypEpypRpTpTpTpUpTpoababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababpopVpypypypypypypypEpWpEpRpXpXpXpXpXpoababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababpopopYpZpZqapopopopopopopopopopopopopoababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababpoqbqbqbqbpoababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababpoqbqbqbqbpoababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababpopopopopopoababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqcqdqeqfqgabababqcqdqeqfqgababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqhqiqjqkqlqmqnabqhqiqoqpqqqmqnabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababqrqrqrqrqrqrqrqrqrqrqrqrababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqsqtquququqvqwabqsqxquququqvqwabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababqrqyqyqyqyqyqyqyqyqyqyqrababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqzqAqBqCqDqEqFabqzqAqGqCqHqEqFabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababqrqIqJqKqKqKqKqJqKqKqKqrababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqLqMquququqvqNabqLqMquququqvqNabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abqrqrqrqrqOqPqPqQqKqKqRqPqPqOqrqrqrqrabababababababababababababababababababababababababababababababababababababababababababababababababababababababqSqTqUqVqWqXqYabqSqTqUqVqWqXqYabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abqrqyqyqyqZrarbrcrcrcrcrdrareqyqyqyqrababababababababababababababababababababababababababababababababababababababababababababababababababababababababrfrgrhrirjabababrfrgrhrirjababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abqrqJqKqKqKqKqRrkrkrkrkqRqKqKqKqKqJqrabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abqrqKqKqKqJqKqKrkrkrkrkqKqKqJqKqKqKqrababababababababababababababababababababababababababababababababababababababababababababababababababababababababqcqdqeqfqgabababqcqdqeqfqgababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abqrqKrlrmrmrmqKrkrnrkrkqKrlrmrmrlqKqrabababababababababababababababababababababababababababababababababababababababababababababababababababababababqhqirorprqqmqnabqhqirrrsrtqmqnabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abqrqKqKqKqKqKqKrkrkrkrkqKqKqKqKqKqKqrabababababababababababababababababababababababababababababababababababababababababababababababababababababababqsruquququqvqwabqsrvquququqvqwabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abqrqKrmrmrlrmqKrkrkrkrkqKrmrlrmrmqKqrabababababababababababababababababababababababababababababababababababababababababababababababababababababababqzqArwqCrxqEqFabqzqAryqCrzqEqFabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abqrqKqKqJqKqKqKrkrnrkrkqKqKqJqKqKqKqrabababababababababababababababababababababababababababababababababababababababababababababababababababababababqLqMquququqvqNabqLqMquququqvqNabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abqrqKrmrmrmrlqKrkrkrkrkqKrmrmrlrmqKqrabababababababababababababababababababababababababababababababababababababababababababababababababababababababqSqTqUqVqWqXqYabqSqTqUqVqWqXqYabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abqrqKqKqKqJqKqKrkrArkrkqKqKqKqKqJqKqrababababababababababababababababababababababababababababababababababababababababababababababababababababababababrfrgrhrirjabababrfrgrhrirjababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abqrqKrlrmrmrmqKrkrkrnrkqKrmrlrmrmqKqrabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abqrqJqKqKqKqKqKrkrkrkrkqKqKqKqKqKqJqrabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abqrqrqrqrqrqrqrrkrkrkrkqrqrqrqrqrqrqrqrqrqrqrqrqrqrqrqrqrqrqrqrqrqrababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abqrrBrBrBrBrBqrrCrkrkrkqrrDrErFrGrDqrrHrHrIrIrJrKqrrLrMrNrNrNrMrLqrababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abqrrkrkrkrkrkqrrOrkrkrkqrrPrQrRrGrEqrrSrkrkrkrkrSqrqKqKqKrNqKqKqKqrababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abqrrTrkrkrkrTqrrUrkrkrkqrrVrErPrDrFqrrSrkrkrkrkrIqrqKqKqKrNqKqKqKqrababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abqrrWrXrkrkrWqrrYrkrkrkqrrZrZrZrZrZqrrKrkrXrXrkrHsaqKqKqKrNqKqKqKqrababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abqrsbrkrkrkrUqrscrkrkrkqrsdrkrkrkseqrrKrkrXrXrkrHqrqKqKqKrNqKqKqKqrababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abqrrWrkrkrkrWqrsfrkrkrkqrsdrkrkrkseqrrKrkrkrkrkrIqrqKqKqKrNqKqKqKqrababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abqrrOrkrkrXsgqrrOrkrkrkshrkrkrkrkrkqrqrqrshqrqrqrqrrLrMrNsirNrMrLqrababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abqrrWrXrkrkrWqrrkrkrkrkqrrkrkrkrkrkqrrKrHrkrIrHrKqrqKqKqKrNqKqKqKqrababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abqrqrqrshqrqrqrqrqrqrqrqrrkrkrkrkrkqrrKrkrkrkrXrHqrqKqKqKrNqKqKqKqrababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abqrrkrkrkrksjskslsmsnsoqrsdrkrkrXseqrrHrkrkrkrkrKqrqKqKqKrNqKqKqKqrababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abqrrkspsprkrkrkrkrkrkrkqrsdrkrkrkseqrrIrkrkrkrkrSqrqKqKqKrNqKqKqKqrababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abqrsdsqsrserkrkrkrkrkrkshrkrkrkrkrkshrkrkrXrkrkrKqrqKqKqKrNqKqKqKqrababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abqrsdsqsqserkrkssrOrOrUqrrkrkrkrkrkqrrSrSrHrJrIrSqrrLrMrNrNrNrMrLqrababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abqrqrqrqrqrqrqrqrqrqrqrqrqrqrqrqrqrqrqrqrqrqrqrqrqrqrqrqrqrqrqrqrqrababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababst -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababst +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacabacacacacacabacacacacacabacacacacacabacacacacacabacacacacacabacacacacacab +aaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafafafafafagahaiajakalagamanaoaoapagaqaqaqaqaqagarararararagasasasasasagatauauauavaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafaxayayafagahaiajazaAagaBaoaCaCaoagaqaDaqaDaqagarararararagasaEasaEasagaFaGaGaGaHaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafafafaIafagahaiajazaJagaoaKaLaMaNagaqaqaqaqaqagarararararagasasasasasagaFaGaGaGaHaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafafafaOafagahaiajakakagaoaoaPaPaoagaqaqaqaqaqagarararararagasasaEasasagaFaGaGaGaHaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafaQafafafagahaiajazaJagaRaSaoaoaSagaqaqaDaqaqagarararararagasasasasasagaFaGaGaGaHaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafaTafaUaxagahaiajazaJagaRaVaWaXaVagaqaqaDaqaqagarararararagasasasasasagaYaGaGaGaZaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafaIafafafagahaiajakakagaRbabbbbbbagaqaqaqaqaqagarararararagasasaEasasagaYaGaGaGaZaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafafafafafagahaiajazaJagaRbcbbbbbdagaqaqaqaqaqagarararararagasasasasasagaYaGaGaGaZaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafayayaIafagahaiajazaAagaRbcbbbbbdagaqaDaqaDaqagarararararagasaEasaEasagaYaGaGaGaZaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafafafafafagahaiajakbeagaRbfbgbgbhagaqaqaqaqaqagarararararagasasasasasagbibjbjbjbkaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabblblblblblabblblblblblabblblblblblabblblblblblabblblblblblabblblblblblabblblblblblab +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmbmbmbmagbnbobnbpbnagbqbrbsbtbuagbvbvbwbxbxagbybybybybyagbzbAbAbAbBagbCbDbDbDbEaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmbmbmbmagbpbFbGbHbnagbIbJbJbJbKagbLbLbMbNbNagbybObybPbyagbQbQbQbQbQagbRbSbSbSbTaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmbmbmbmagbFbUbVbWbFagbXbYbZcacbagbLccccccbNagbycdbycdbyagbQbQbQbQbQagbRcececebTaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmbmbmbmagcfbncgchcfagbJbJciciciagbLbMbMbMbNagbybybybybyagbQbQbQbQbQagbRbSbSbSbTaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmcjbmbmagbFbnbnbnbnagckclcmbJcnagcocpcpcpcqagbycrbybybyagcscscscscsagctcucucucvaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmcwcxbmagbnbGbnbobFagcyczcAbJcBagcCcDcDcDcEagbybybycFbyagcGcGcGcGcGagcHcIcIcIcJaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmbmbmbmagcfcKbUcLbnagbJbJbJbJbJagcMbMcNbMcOagbybybybybyagbQbQbQbQbQagcPbSbSbScQaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmbmbmbmagbFcRcScTcUagcVcWcXbJbJagcMcYcYcYcOagcZdadbcZcZagbQbQbQbQbQagcPdcdcdccQaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmbmbmbmagbocRcTcRddagdedfdgdhclagcMcMbMcOcOagdididididiagbQbQbQbQbQagcPbSbSbScQaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmbmbmbmagbncfbnbpbnagdjdkdldmdnagdododpdqdqagdrdrdrdrdragdsdtdtdtduagdvdwdwdwdxaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabblblblblblabblblblblblabacacacacacabblblblblblabblblblblblabblblblblblabblblblblblab +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydydydydyagdzdzdzdzdzagdAdBdCdDdEagdFdGdGdGdFagdHdIdJdKdLagdMdNdNdNdOagdPdQdRdSdTag +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydUdUdUdyagdVdWdXdYdVagdZdZeadZdZagebecedeeefagegeheiejekagelemememenagdPeoepeqdTag +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydUdUdUdyageresereserageteueueuevagewexeyexezageAeBeCeDeEageleFememenagdPeGeHeIdTag +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydyeJdydyageKeLeKeLeKageMeNeOePeMagexexexexexageQeQeQeQeQagelemememenagdPeReSeTdTag +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydUdUdUdyageLeKeLeKeLageUeUeUeUeUageVeWexeXeYageZfaeQeZfaagelemememenagdPeReSeTdTag +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydUdUdUdyageKeLeKeLeKageUeUeUeUeUagfbeWexeXfcagfdfeeQfdfeagfffgememenagdPeReSeTdTag +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydyeJdydyageLeKeLeKeLageUeUeUeUeUagexfhfhfhexageZfaeQeZfaagffemememenagdPeReSeTdTag +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydUdUdUdyagfifjfifjfiagfkfkflfkfkagfmfnfofpfqagfdfeeQfdfeagffememfrenagdPfsftfudTag +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydUdUdUdyagfvfwfxfyfvagdZdZdZdZdZagfzfAfAfAfzageZfaeQeZfaagffemememenagdPfBfBfBdTag +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydydydydyagfCfCfCfCfCagfDfDfDfDfDagfEfFfFfFfGageDeBeQeDeBagfHfIfIfIfJagdPfKfLfMdTag +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfNfNfNfNfNabfNfNfNfNfNabfNfNfNfNfNabfNfNfNfNfNabfNfNfNfNfNabfNfNfNfNfNabfNfNfNfNfNab +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfOfOfOfOfOfOfOfOfPfQfQfQfQfQfQfQfQfQfQfQfQfQfPfOfOfOfOfOfOfOfOfO +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfRfSabababababfTfUfQfQfQfQfQfQfQfQfQfQfQfQfQfVfTabababababfSfWfO +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfRfSabababababfTfUfQfQfQfQfQfQfQfQfQfQfQfQfQfVfTabababababfSfWfO +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfRfSabababababfTfUfQfQfQfQfQfXfYfXfQfQfQfQfQfVfTabababababfSfWfO +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfRfSabababababfTfUfQfQfQfQfQfXfXfXfQfQfQfQfQfVfTabababababfSfWfO +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfRfSabababababfTfUfQfQfQfQfQfQfQfQfQfQfQfQfQfVfTabababababfSfWfO +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfRfSabababababfTfUfQfQfQfQfQfQfQfQfQfQfQfQfQfVfTabababababfSfWfO +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfOfOfZfZfZfZfZfOfPfQfQfQfQfQfQfQfQfQfQfQfQfQfPfOfZfZfZfZfZfOfOfO +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOgagagagagafOabababababababababababababababfOgbgbgbgbgbfOaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfOfOfOfOfOfOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfOfOfOfOfOfOaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +gcgcgcgcgcgcgcgdgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegeaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegfggggggggggghgegfggggggghgegfggggggghgegfggggggghgegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegigjgjgjgkgegigjgjgjgkgegigjgjgjgkgegigjgjgjgjgjgkgeaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngoglgpgqgpgngoglgpgqgpgngoglgpgqgpgngrgrgrgrgrgsgsgrgrgrgrgrgrgtgrgrgrgrgrgrgrgrgrgtgrgrgrgrgrgrgrgtgrgrgrgrgrgrgrgrgrgtgrgrgrgrgrgrgsgsgrgrgrgrgrgugmgvgmgwgxgugmgvgmgwgxgugmgvgmgwgxgugmgmgmgmgmgwgeaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgygygygmgngoglgpgqgqgngoglgqgqgqgngoglgqgqgpgngrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgsgrgrgrgrgrgrgrgrgsgrgrgrgrgrgrgrgrgsgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgugmgvgvgwgxgugvgvgvgwgxgugvgvgmgwgxgugmgygygygmgwgeaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngoglgpgqgpgngoglgpgqgpgngoglgpgqgpgngrgrgrgrgrgsgsgrgrgrgrgrgrgtgrgrgrgrgrgrgrgrgrgtgrgrgrgrgrgrgrgtgrgrgrgrgrgrgrgrgrgtgrgrgrgrgrgrgsgsgrgrgrgrgrgugmgvgmgwgxgugmgvgmgwgxgugmgvgmgwgxgugmgmgmgmgmgwgeaa +gzgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgygygygmgngegAgBgBgBgCgegAgBgBgBgCgegAgBgBgBgCgegmgmgmgegegegegmgmgmgegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegDgEgEgEgFgegDgEgEgEgFgegDgEgEgEgFgegugmgygygygmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngegegogogogegegegGgGgGgegegegogogogegegHgHgHgegegegegHgHgHgegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegxgxgxgegegegGgGgGgegegegxgxgxgegegugmgmgmgmgmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgygygygmgngegfggggggghgegfggggggghgegfggggggghgegIgJgKgKgLgJgKgKgLgJgKgKgLgJgKgKgLgJgKgMgegegNgegegegNgegegegNgegegegegNgegegegegNgegegegNgegegegNgegegegegegigjgjgjgkgegigjgjgjgkgegigjgjgjgkgegugmgygygygmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngoglgpgqgpgngoglgpgqgpgngoglgpgqgpgngOgPgpgQgmgRgpgQgmgRgpgQgmgRgpgQgmgRgqgQgOgegegSgegegegSgegegegSgegegegegSgegegegegSgegegegSgegegegSgegegegegegugmgvgmgwgxgugmgvgmgwgxgugmgvgmgwgxgugmgmgmgmgmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgygygygmgngoglgpgqgqgngoglgqgqgqgngoglgqgqgpgngOgTgngpgmgmgngpgmgmgngpgmgmgngpgmgmgqgpgOgUgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgWgugmgvgvgwgxgugvgvgvgwgxgugvgvgmgwgxgugmgygygygmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngoglgpgqgpgngoglgpgqgpgngoglgpgqgpgngOgXgpgYgmgZgpgYgmgZgpgYgmgZgpgYgmgZgqgYgOgegehagegGgehagegGgehagegegGgehagegGgegehagegGgehagegGgehagegegGgegegugmgvgmgwgxgugmgvgmgwgxgugmgvgmgwgxgugmgmgmgmgmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegAgBgBgBgBgBgCgegAgBgBgBgCgegAgBgBgBgCgegAgBgBgBgCgehbhcgHgHhdhcgHgHhdhcgHgHhdhcgHgHhdhcgHhegegehfgegGgehfgegGgehfgegegGgehfgegGgegehfgegGgehfgegGgehfgegegGgegegDgEgEgEgFgegDgEgEgEgFgegDgEgEgEgFgegDgEgEgEgEgEgFgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagehggegegegegehggegegogogogegegegpgpgpgegegegegVgegegegegKgegegegegegqgqgqgegegegegehhhihihihjgegegGgegGgegGgegGgegGgegegGgegGgegGgegegGgegGgegGgegGgegGgegegGgegegegegVgegegegehkhkhkgegegegxgxgxgegehlgegegegegehlgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgpgpgpgpgpgpgegfggggggghgegpgpgpgpgpgegegegVgegegegegmgtgtgtgtgtgtgtgtgtgtgtgtgthmhnhnhnhogtgtgtgtgtgtgtgtgtgtgtgtgtgmgegegegmgtgtgtgtgtgtgtgtgtgtgtgtgtgmgegegegegVgegegehkhkhkhkhkgegigjgjgjgkgehkhkhkhkhkhkhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgqgqgqgqgqgphgglgpgqgpgngegpgmgmgmgpgegegegVgegegegegmgegGgGgGgegqgqgqgegGgGgGgehphqhqhqhrgegGgGgGgehshshsgegGgGgGgegmgegegegmgegGgGgGgegvgvgvgegGgGgGgegmgegegegegVgegegehkgmgmgmhkgegugmgvgmgwhthkgvgvgvgvgvhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgqgpgpgpgqgphgglgqgqgqgngegpgegqgegpgegVgVgVgVgVgVgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmhuhvhvhvhwhxhxhxhxhxhxhxhxhxhxhxhxhxhyhzhzhzhAgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgVgVgVgVgVgVgehkgegvgehkgegugvgvgvgwhthkgvhkhkhkgvhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgqgpgpgpgqgphgglgpgqgpgngegpgmgmgmgpgegegegVgegGgegmgmgmhnhnhnhnhnhnhnhnhnhnhngmhBgpgpgpgnhChChChChCgehCgehChChChChCguhkhkhkhDgmhEhEhEhEhEhEhEhEhEhEhEgmgmgmgegGgegVgegegehkgmgmgmhkgegugmgvgmgwhthkgvhkhkhkgvhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgpgpgpgpgpgpgegAgBgBgBgCgegpgpgpgpgpgegegegVgGgGgGgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmhBgpgqgpgnhChChChChChCgehChChChChChCguhkgvhkhDgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgGgGgGgVgegegehkhkhkhkhkgegDgEgEgEgFgehkhkhkhkhkhkhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegegogogogogogegegegegegegegegegpgpgpgegegegegegegGgegmgmgegpgogpgegGgGgGgegpgogpgehBgpgpgpgngehChngqhChChChChCgvhEhCgeguhkhkhkhDgehkgxhkgegGgGgGgehkgxhkgegmgmgegGgegegegegegehkhkhkgegegegegegegegegehkhkhkhkhkgegeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgpgpgpgpgpgpgegpgpgpgpgpgegpgpgpgpgpgegpgpgpgpgpgegmgmgegogpgogqhnhnhngqgogpgogehBgpgegpgngehChChngqhChChCgvhEhChCgeguhkgehkhDgegxhkgxgvhEhEhEgvgxhkgxgegmgmgehkhkhkhkhkgehkhkhkhkhkgehkhkhkhkhkgehkhkhkhkhkhkhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgpgphFgpgpgpgegpgmgegmgpgpgpgqhFgqgpgpgpgmgegmgpgpgmgmgGgpgogphnhnhnhnhngpgogpgehBgpgqgpgngehnhChChngqhCgvhEhChChEgeguhkgvhkhDgehkgxhkhEhEhEhEhEhkgxhkgGgmgmhkhkgmgegmhkhkhkgvhFgvhkhkhkgmgegmhkgehkhkhkhFhkhkhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgphFhGhFgpgpgegpgmgqgmgpgpgphFhHhFgpgpgpgmgqgmgpgpgmgmgGgogpgohnhngqhnhngogpgogehBgpgqgpgngegqhnhChChnhChEhChChEgvgeguhkgvhkhDgegxhkgxhEhEgvhEhEgxhkgxgGgmgmhkhkgmgvgmhkhkhkhFhIhFhkhkhkgmgvgmhkgehkhkhFhJhFhkhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgpgphFgpgpgpgegpgmgegmgpgpgpgqhFgqgpgpgpgmgegmgpgpgmgmgGgpgogphnhnhnhnhngpgogpgehBgpgqgpgngehnhChChngqhCgvhEhChChEgeguhkgvhkhDgehkgxhkhEhEhEhEhEhkgxhkgGgmgmhkhkgmgegmhkhkhkgvhFgvhkhkhkgmgegmhkgehkhkhkhFhkhkhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgpgpgpgpgpgpgegpgpgpgpgpgegpgpgpgpgpgegpgpgpgpgpgegmgmgegogpgogqhnhnhngqgogpgogehBgpgegpgngehChChngqhChChCgvhEhChCgeguhkgehkhDgegxhkgxgvhEhEhEgvgxhkgxgegmgmgehkhkhkhkhkgehkhkhkhkhkgehkhkhkhkhkgehkhkhkhkhkhkhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegegogogogogogegegegegegegegegegpgpgpgegegegegegegGgegmgmgegpgogpgegGgGgGgegpgogpgehBgpgpgpgngehChngqhChChChChCgvhEhCgeguhkhkhkhDgehkgxhkgegGgGgGgehkgxhkgegmgmgegGgegegegegegehkhkhkgegegegegegegegegehkhkhkhkhkgegeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgpgpgpgpgpgpgegfggggggghgegpgpgpgpgpgegegegVgGgGgGgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmhBgpgqgpgnhChChChChChCgehChChChChChCguhkgvhkhDgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgGgGgGgVgegegehkhkhkhkhkgegigjgjgjgkgehkhkhkhkhkhkhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgqgpgpgpgqgphgglgmgqgmgngegpgmgmgmgpgegegegVgegGgegmgmgmhnhnhnhnhnhnhnhnhnhnhngmhBgpgpgpgnhChChChChCgehCgehChChChChCguhkhkhkhDgmhEhEhEhEhEhEhEhEhEhEhEgmgmgmgegGgegVgegegehkgmgmgmhkgeguhkgvhkgwhthkgvhkhkhkgvhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgqgpgpgpgqgphgglgqgqgqgngegpgegqgegpgegVgVgVgVgVgVgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmhLhMhMhMhNhOhOhOhOhOhOhOhOhOhOhOhOhOhPhQhQhQhRgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgVgVgVgVgVgVgehkgegvgehkgegugvgvgvgwhthkgvhkhkhkgvhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgqgqgqgqgqgphgglgmgqgmgngegpgmgmgmgpgegegegVgegegegegmgegGgGgGgegqgqgqgegGgGgGgegmgegegegmgegGgGgGgehshshsgegGgGgGgehYhZhZhZiagegGgGgGgegvgvgvgegGgGgGgegmgegegegegVgegegehkgmgmgmhkgeguhkgvhkgwhthkgvgvgvgvgvhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgpgpgpgpgpgpgegAgBgBgBgCgegpgpgpgpgpgegegegVgegegegegmgtgtgtgtgtgtgtgtgtgtgtgtgtgmgegegegmgtgtgtgtgtgtgtgtgtgtgtgtgtifhEhEhEiggtgtgtgtgtgtgtgtgtgtgtgtgtgmgegegegegVgegegehkhkhkhkhkgegDgEgEgEgFgehkhkhkhkhkhkhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagehggegegegegehggegegogogogegegegpgpgpgegegegegVgegegegegGgegegGgegGgegGgegGgegGgegegGgegegegGgegegGgegGgegGgegGgegGgegeipiqiqiqirgegegegegegvgvgvgegegegegegHgegegegegVgegegegehkhkhkgegegegxgxgxgegehlgegegegegehlgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegfggggggggggghgegfggggggghgegfggggggghgegfggggggghgegegGgegegNgegGgegNgegGgegNgegegGgegNgegGgegegNgegGgegNgegGgegNgegeitgKiuivgKgKiuivgKgKiuivgKgKiuivgKgKiuiwgegigjgjgjgkgegigjgjgjgkgegigjgjgjgkgegigjgjgjgjgjgkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngoglgmgqgmgngoglgmgqgmgngoglgmgqgmgngegegGgegegSgegGgegSgegGgegSgegegGgegSgegGgegegSgegGgegSgegGgegSgegegTixgviygmixhkiygmixhkiygmixhkiygmixhkizgTgugmgvgmgwgxgugmgvgmgwgxgugmgvgmgwgxgugmgmgmgmgmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgygygygmgngoglgmgqgqgngoglgqgqgqgngoglgqgqgmgngUgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgWgThkgvgmgmhkgugmgmhkgugmgmhkgugmgmhkgugOgTgugmgvgvgwgxgugvgvgvgwgxgugvgvgmgwgxgugmgygygygmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngoglgmgqgmgngoglgmgqgmgngoglgmgqgmgngegegegegehagegegehagegegehagegegegehagegegegehagegegehagegegehagegegTiKgviLgmiKhkiLgmiKhkiLgmiKhkiLgmiKhkiMgTgugmgvgmgwgxgugmgvgmgwgxgugmgvgmgwgxgugmgmgmgmgmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgygygygmgngegAgBgBgBgCgegAgBgBgBgCgegAgBgBgBgCgegegegegehfgegegehfgegegehfgegegegehfgegegegehfgegegehfgegegehfgegeiQgHiRiSgHgHiRiSgHgHiRiSgHgHiRiSgHgHiRiTgegDgEgEgEgFgegDgEgEgEgFgegDgEgEgEgFgegugmgygygygmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngegegogogogegegegGgGgGgegegegogogogegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegKgKgKgegegegegKgKgKgegegxgxgxgegegegGgGgGgegegegxgxgxgegegugmgmgmgmgmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgygygygmgngegfggggggghgegfggggggghgegfggggggghgegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegmgmgmgegegegegmgmgmgegigjgjgjgkgegigjgjgjgkgegigjgjgjgkgegugmgygygygmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngoglgmgqgmgngoglgmgqgmgngoglgmgqgmgngmgrgrgrgrgsgsgrgrgrgrgrgrgtgrgrgrgrgrgrgrgrgrgtgrgrgrgrgrgrgrgtgrgrgrgrgrgrgrgrgrgtgrgrgrgrgrgrgsgsgrgrgrgrgrgugmgvgmgwgxgugmgvgmgwgxgugmgvgmgwgxgugmgmgmgmgmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgygygygmgngoglgmgqgqgngoglgqgqgqgngoglgqgqgmgngmgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgsgrgrgrgrgrgrgrgrgsgrgrgrgrgrgrgrgrgsgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgugmgvgvgwgxgugvgvgvgwgxgugvgvgmgwgxgugmgygygygmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngoglgmgqgmgngoglgmgqgmgngoglgmgqgmgngmgrgrgrgrgsgsgrgrgrgrgrgrgtgrgrgrgrgrgrgrgrgrgtgrgrgrgrgrgrgrgtgrgrgrgrgrgrgrgrgrgtgrgrgrgrgrgrgsgsgrgrgrgrgrgugmgvgmgwgxgugmgvgmgwgxgugmgvgmgwgxgugmgmgmgmgmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegAgBgBgBgBgBgCgegAgBgBgBgCgegAgBgBgBgCgegAgBgBgBgCgegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegDgEgEgEgFgegDgEgEgEgFgegDgEgEgEgFgegDgEgEgEgEgEgFgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajjjkjjjjjjjjjkjjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjqjqjqjqjjjrjrjsjsjrjrjjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjtjujvjwjxjrjrjsjsjyjzjjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjtjqjqjqjjjrjrjsjsjrjAjjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjqjqjqjqjBjqjqjqjCjqaaaajjjrjrjsjsjrjrjjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjDjEjFjtjtjtjGjHjtjqaaaajjjrjrjrjrjrjrjjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjtjtjtjIjtjIjtjtjtjqaaaajjjrjrjsjsjrjrjjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjtjtjJjJjJjJjKjtjtjqaaaajjjkjjjjjjjjjkjjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjqjqjqjqjqjqjqjtjLjJjMjNjJjtjtjOjqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjPjQjRjSjTjTjqjtjtjJjJjJjJjKjtjUjqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjVjVjVjVjVjVjWjtjtjXjtjXjtjtjtjYjqjqjqjqjqjZjZjZjZjZjZjZjZjZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjVjVjVjVjVjVjWjtjtjtjtjtjtjtjtkakbkckckcjqjZkdjZkdjZkdjZkdjZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqkekekfkgkhkhjqkikjjtjtjtjtjtjtkakkkcklkcjqjZjZjZjZjZjZjZjZjZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjqkmknknkojqjqkmknknkojqjqjqkpjqjqkqkrksjqjZkdjZkdjZkdjZkdjZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaktjtjtkakukvkwksjqjZjZjZjZjZjZjZjZjZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakxkyjtjtkakzkAkBkCjqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakDkykEjtjtkajqjqjqjqjqjZjZjZjZjZjZjZjZjZaakFkFkFkFkFkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakGkHjvkIjtjtkJjqkKkckLjqjZkdjZkdjZkdjZkdjZaakFkMkNkNkOkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakDkPkIjtjtjtkQkckckRjqjZjZjZjZjZjZjZjZjZaakSkTkTkTkTkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakUkPjtjtkVjqkckckWjqjZkdjZkdjZkdjZkdjZaakFkTkXkYkZkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalajtjtkajqkclblcjqjZjZjZjZjZjZjZjZjZaakFldlelflgkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjqjqjqjqlhjqjqjqjqjqjqaaaaaaaaaaaaaaaaaaaakFkTkTkTkTkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjuamjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaliljlkljlllmllljlkljliaaaaaakFkFkFkFkFkFkFkFlnlolplqlrkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjncubububububububububububububncmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaliljljljlsltlsljljljliaaaaaakFlulvlvlvlwlxlylzlAlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZlZlZlZlZlZlZlZlZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjncucucucucucucucucucucucucucncmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalilElilEliltlilElilElilililikFlFlBlBlBlBlBlGlHlAlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjncoNoNoNoNoNoNoNoNoNoNoNoNoNncmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalilIlllJltltltltltlKlLlMlMlNkFlFlBlBlBlBlOlPlQlAlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjncncncncncncncoNncncncncncncncmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalSlSlSlSlSlSlSlIlTlJltltltlUlilElililMlVkFlFlBlBlBlBlWlWlWlXlBlBlClDlYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjncoNncmjmjmjmjmmmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalSmambmcmbmdlSlIlslJltltltmelElIlimfmgmhkFmilBlBlBlBlBlBlBlBlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmjmjmjmkmjmjmjmlmmmjmjmjmjmjmlmjmjncoNudmnmlmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamompmqmqmqmqlSlElimrltltltmslilElilEmtlEkFmulBlBlBlBlBlBlBlBlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmkmjmjmjmjmjmjmjmjmjmjmjmlmjmjmjmjmjmjncoNoMmvmjmjmlmjmlmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamwmpmqmqmqmqmxmyltltltltltltltlKmzlMlMlMmAmBlBlBlBlBlBlBlBlBlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmjmCmjmjmjmjmjmkmjmjmmmjmjmlmjmjmjncoNpcmmmjmlmjmjmmmjmlmjmmmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamomDmqmqmqmqlSlElimEltltltlUlimFlilililikFmGlBlBlBlBlBlBlBlBlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmlmjmjmkmjmjncoNncmjmlmjmmmlmjmmmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamHmwmpmqmqmqmqlSlIlllJltltltmIlllIliaaaaaakFmJlBlBlBlBlBlBlBlBlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmkmjmjmjmjmjmjmjncoNncmmmjmlmjmjmjmlmjmlmjmlmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamKmpmqmqmqmqlSlIlTlJltltltmIlTlIliaaaaaakFmLlBlBlBlBmMmMmMmNlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmmmjmjmjmjncoNncmmmjmjmjmjmmmjmjmjmmmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamOmpmqmqmqmqlSlIlsmPmEltlUmQlslIliaaaaaakFmLlBlBlBlBmRmSmTlAlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmCmjmjncoNncmjmlmjmlmlmjmmmlmmmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamVmpmqmqmqmqlSmWmWmXmYmZmXmYmWmWmWaaaaaakFmLlBlBlBlBlBnanblAlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjncncqrncuencmjmmmlmjmmmlmjmmmjmlmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalSnfngnhmqmqlSninjnknlnmnnnonpnqmWaaaaaakFnrnsnsnsntnunvnwlAlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjncncnxnynKnKncncncncncncqrnclZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalSlSlSlSnzlSlSnAnmnBnlnmnnnBnmnCmWaaaaaakFkFkFkFkFkFkFkFnDlolpnElrkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRnFnGnHnInFlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmUmUmUmUmUmUmUmUmUmjmCmjmjmjncnJnKnKnKnKnLnMnNncnOnPnQncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalSnRnRnRlSnSnmnBnlnmnnnBnmnTmWaaaaaaaaaaaaaaaaaaaaaakFlBlBlBlBkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRnFnFnUnVnUnFnFlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmUmUmUmUmUmUmUmUmUmjmjmjmjmkncnWnKnXnXnYnKnKnKnZoaoaobncncncncncncncncncncncncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalSnRnRnRlSocnmnBnlnmnnnBnmodmWaaaaaaaaaaaaaaaaaaaaaakFlBoemSmRkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRnFnUnUnUnUnUnFlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmUmUmUmUmUmUmUmjmjmjmjmjmjncnKnXofognXnKohoincoaojncncokokokolololololokokncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalSnRnRnRlSomononoonmopoqoqormWaaaaaaaaaaaaaaaaaaaaaakFlBosnaotkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRnFounUnUnUovnFlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmjmUmUmUmUmUowoxoxoxoxoxnencnKnXoyoznXnKohoAncncncncncokoBoCoDoEoFoEoGoHokncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalSlSlSlSlSmXoImYmWnmmWmXoImYmWaaaaaaaaaaaaaaaaaaaaaaoJlBlBlBlBkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRnFnFnFnFoKoLoKnFnFnFnFlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmUmUmUmUmUmUmUmUmUmUoMoNoNoNoNoNoNoOnKnKnKnKnKnKohoAncncncncncokoPoDoEoQoRoSoEoGoTncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamWoUoUoUoVnmoVoUoUoUmWaaaaaaaaaaaaaaaaaaaaaakFoWntntoXkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRnFnFoYoZnFnUnUnUnFpapbnFnFlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmUmUmUmUmUmUmUmUmUmUpcpdndoxoxoxnencpenXnXnXnKnKohpfndoxoxoxoxoxoxoEoQoRpgoRoSoEoTncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamWmWmWmWmWmWmWmWmZmWmWmWmWmWmWmWmWaaaaaaaaaaaaaaaakFkFkFkFkFkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRnFnFphpiphnFnUnUnUnFpjpkplnFnFlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmUmUmUmUmUmUmUmUmUmUmUpmmUmUmjmjmjncpnpopppopqnKnKnKpdoNoNoNoNoNpdproRoSpsoQoRproTncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamWptpupupupupuptptptpupupupupuptmWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRnFnFoZphphphpvnUnUnUpwpapxpapbnFnFlRlRlRlRlRlRlRaaaaaaaalZpymjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmjmkncpzpApzpzpBnKnKnKndoxoxoxoxoxoxoEoQoRpCoRoSoEoTncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapDptptptpEptptptptptptptpEptptptpDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRnFoYpFphphphnFnUnUnUnFpGpapjpHplnFlRlRlRlRlRlRlRaaaaaaaalZmjmjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmCmjncncoipIpJpKncpLncncncncncncokoPpMoEoQoRoSoEpNoTncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamWptpupupupupuptptptpupupupupuptmWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRnFphphphphpOnFpPnUpQnFpRpSpapxpanFlRlRlRlRlRlRlRaaaaaaaalZmjmjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmjmjncncncncncncpTpTpUpVpWpXncokpYpZpMoEqaoEpNqbokncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamWmXoIoIoIoIoIoIoIoIoIoIoIoIoImYmWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRnFnFqcnFnFnFnFnFnFqdnFnFnFnFnGnHnInFnFlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmjmjmjmjmCmjncpTpTpTpTpTpTncokokokqeqeqeqeqeokokncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqfqfqfqfqfqfqfqfqgqhqhqhqhqhqhqhqhqhqhqhqhqhqgqfqfqfqfqfqfqfqfqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRnFqinUnUqinFqjqknUnUnUqlqmnFqnqoqpqqnFlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmjmjmkmjmjmmqrpTpTpTpTpTqsncncncncncncncncncncncncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqtquqvqvqvqvqvqwqxqhqhqhqhqhqhqhqhqhqhqhqhqhqyqwqzqzqzqzqzquqAqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRqBqCnUnUqCqBnUnUnUnUnUnUqDqBqqqEqFqEnFlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmjmjmCmlmkmCncqGqGqGqGqGqHncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqtquqvqIqvqIqvqwqxqhqhqhqhqhqhqhqhqhqhqhqhqhqyqwqzqJqzqJqzquqAqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRqKqLnUnUnUqKnUnUnUqMnUnUqNqKqOqoqqqonFlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmjmjmjmjmlmjncncncncncncncncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqtquqvqvqPqvqvqwqxqhqhqhqhqhqQqRqQqhqhqhqhqhqyqwqzqzqSqzqzquqAqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRqTqCnUnUqCqTnUnUnUqUnUnUnUqTqVqWqEqXnFlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmjmjmlmjmCmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqtquqvqvqvqvqvqwqxqhqhqhqhqhqQqYqQqhqhqhqhqhqyqwqzqzqzqzqzquqAqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRnFqZnUnUqZnFranUnUnUnUnUnUnFqqqoqqrbnFlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqtquqvqIqvqIqvqwqxqhqhqhqhqhqhqhqhqhqhqhqhqhqyqwqzqJqzqJqzquqAqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRnFnFrcnFnFnFnFnFoKrcoKnFnFnFnGnHnInFnFlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmjmUmUmUmUmUmUmUmUmUmUmUmjmjmjmjmvmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqtquqvqvqvqvqvqwqxqhqhqhqhqhqhqhqhqhqhqhqhqhqyqwqzqzqzqzqzquqAqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRqBnUnUnUnUnUnUnUnUnUnUnUnUnUnUnUqBlRlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmjmUmUmUmUmUmjmUmUmUmUmUmjmjmjmvrdmvmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqfqfrerererereqfqgqhqhqhqhqhqhqhqhqhqhqhqhqhqgqfrerererereqfqfqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRqTnUpanUpanUpanUpanUpanUpanUpanUqTlRlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmjmjmjmjmjmjmjmUmUmUmUmUmjmjmjmjmvmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfrfrfrfrfrfqfrgrhrhrhrhrhrhrhrhrhrhrhrhrhriqfrjrjrjrjrjqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRnFnFnUnUnUnUnUnUnUnUnUnUnUnUnUnFnFlRlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmjmjmjmjmjmjmjmUmUmUmUmUmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqfqfqfqfqfqfrkrlrlrlrlrlrmrnrorlrlrlrlrlrkqfqfqfqfqfqfqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRnFnFnFrpnFnFnFrqnFnFnFrrnFnFnFlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarsrkrkrkrtrkrurururururkrtrkrkrkrsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRnFrvrwrxnFryparznFrArBrCnFlRlRlRlRlRlRlRlRlRaaaaaaaalZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarsrsrDrsrsrsrsrErFrGrsrsrsrsrDrsrsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRnFrHrwrInFparJpanFrKrBrBnFlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarsrsrsrsrsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRnFrLrMrNnFrOparPnFrQrRrSnFlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRnFnFrTnFnFnFoKnFnFnFnFnFnFlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUrUrUrUrUrUrUrUrUrUrUrUrUrUrUrUrUrUrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRnFnUnFnUrVrWrVrXnFlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUrYrZsasbsbrZscsdsesfsgshsishshshsjrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRoKnUrTnUnUnUnUnUoKlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUrYrZrZrZrZrZsksgsgsgslshshshsmshshrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRnFnFnFsnnUnUnUsnnFlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUsorZsprYsqsrsssgsgsgsgshshstshsusirUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRnFsvsvsvsvsvnFlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUswsgslslslslslsgsgsgsgshshshsxshshrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRnFnFsysysynFnFlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUszsgsgsgsgsgsgsgsgsgsgsAshshshshshrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRsBsBsBlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUsCsgsgsgsgsgsgsgsgslsgsAsDsDsDsEsDrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUsFsgsgsgsgsgsgsgslsGslsAsHsHsHsHsHrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUrUsIsJsJsKrUrUrUrUrUrUrUrUrUrUrUrUrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUsMsMsMsMrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUsMsMsMsMrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUrUrUrUrUrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahShThUhVhSaahWaaaaaahXaahShThUhVhSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibicicicibibidibieibidibibicicicibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibihihiiijikiliminioilikijiiihihibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibihihibisisilisisisilisisibihihibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasNsOsPsQsRaaaaaasNsOsPsQsRaaaaaaaaaaaaaaaahSihihidisilililililililisidihihhSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasSsTsUsVsWsXsYaasSsTsZtatbsXsYaaaaaaaaaaaaaaaahSibibiAiBiCiDiliEisiliFibibhSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatctdtetetetftgaatcthtetetetftgaaaaaaaaaaaaaaaaaaaaibiGiHiIiJilisisiliFibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatitjtktltmtntoaatitjtptltqtntoaaaaaaaaaaaaaaaaaaaaibiNiOiOiDiliFiPiliFibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatrtstetetetfttaatrtstetetetfttaaaaaaaaaaaaaaaaaaaaibiUiOiOiViliFiPililidiWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatutvtwtxtytztAaatutvtwtxtytztAaaaaaaaaaaaaaaaaaaaaibibibibibilisisiliFibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatBtCtDtEtFaaaaaatBtCtDtEtFaaaaaaaaaaaaaaaaaaaaaaibiXiliXibiliFiPiliFiYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibiXiliXibiliFiPiliFibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasNsOsPsQsRaaaaaasNsOsPsQsRaaaaaaaaaaaaaaaaaaaaaaibiXililiZilililililidjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasSsTtGtHtIsXsYaasSsTtJtKtLsXsYaaaaaaaaaaaaaaaaaaaaibiXiliXibilisisisisibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatctMtetetetftgaatctNtetetetftgaaaaaaaaaaaaaaaaaaaaibiXiliXibiljbjcjdikibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatitjtOtltPtntoaatitjtQtltRtntoaaaaaaaaaaaaaaaaaaaahSibibibibjeibibibibhSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatrtstetetetfttaatrtstetetetfttaaaaaaaaaaaaaaaaaaaaaahSibjfiFiljgjhibhSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatutvtwtxtytztAaatutvtwtxtytztAaaaaaaaaaaaaaaaaaaaaaaaaibjdisjiisjfibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatBtCtDtEtFaaaaaatBtCtDtEtFaaaaaaaaaaaaaaaaaaaaaaaaaaibjljmjnjojpibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahSiYiYiYiYiYhSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aatStStStStStStStStStStStStStStSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aatStTtTtTtTtTtTtUtTtTtTtTtTtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aatStTtVtVtVtWtVtVtVtWtVtVtVtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aatStTtVtVtVtWtVtVtVtWtVtVtVtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aatStTtVtVtVtWtVtVtVtWtVtVtVtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aatStTtWtWtWtWtWtWtWtWtWtWtWtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aatStTtVtVtVtWtWtWtWtWtVtVtVtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aatStTtVtVtVtWtWtXtWtWtVtVtVtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aatStTtVtVtVtWtWtYtWtWtVtVtVtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aatStTtTtTtTtTtTtTtTtTtTtTtTtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aatStStStStStStStStStStStStStStSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatZ +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatZ "} diff --git a/_maps/map_files/generic/z5.dmm b/_maps/map_files/generic/z5.dmm index b5fa974079..1bf6980061 100644 --- a/_maps/map_files/generic/z5.dmm +++ b/_maps/map_files/generic/z5.dmm @@ -153,10 +153,7 @@ /turf/open/floor/plating/airless, /area/mine/abandoned) "aA" = ( -/obj/item/clothing/mask/facehugger{ - icon_state = "facehugger_dead"; - stat = 2 - }, +/obj/item/clothing/mask/facehugger/dead, /turf/open/floor/plasteel/airless, /area/mine/abandoned) "aB" = ( @@ -280,10 +277,7 @@ /turf/open/floor/plating/airless, /area/mine/abandoned) "aU" = ( -/obj/item/clothing/mask/facehugger{ - icon_state = "facehugger_dead"; - stat = 2 - }, +/obj/item/clothing/mask/facehugger/dead, /obj/structure/alien/weeds, /turf/open/floor/plating/airless, /area/mine/abandoned) @@ -324,10 +318,7 @@ /obj/item/weapon/shard{ icon_state = "small" }, -/obj/item/clothing/mask/facehugger{ - icon_state = "facehugger_dead"; - stat = 2 - }, +/obj/item/clothing/mask/facehugger/dead, /turf/open/space, /area/mine/abandoned) "bc" = ( @@ -396,10 +387,7 @@ }, /area/mine/abandoned) "bn" = ( -/obj/item/clothing/mask/facehugger{ - icon_state = "facehugger_dead"; - stat = 2 - }, +/obj/item/clothing/mask/facehugger/dead, /obj/structure/alien/weeds, /turf/open/floor/plasteel/airless{ icon_state = "floorscorched1" @@ -465,10 +453,7 @@ /turf/open/floor/plating/airless, /area/mine/abandoned) "by" = ( -/obj/item/clothing/mask/facehugger{ - icon_state = "facehugger_dead"; - stat = 2 - }, +/obj/item/clothing/mask/facehugger/dead, /obj/structure/alien/weeds, /turf/open/floor/plasteel/airless, /area/mine/abandoned) @@ -1091,7 +1076,7 @@ /turf/open/floor/plasteel/floorgrime, /area/mine/laborcamp) "dp" = ( -/obj/effect/decal/cleanable/cobweb2, +/obj/effect/decal/cleanable/cobweb/cobweb2, /obj/structure/chair{ dir = 8 }, @@ -4657,7 +4642,7 @@ /obj/structure/table, /obj/item/weapon/paper{ anchored = 0; - info = "A hastily written note has been scribbled here...

Please use the ore redemption machine in the science wing for smelting. PLEASE!

--The Research Staff"; + info = "A hastily written note has been scribbled here...

Please use the ore redemption machine in the cargo office for smelting. PLEASE!

--The Research Staff"; name = "URGENT!" }, /turf/open/floor/plasteel/bot{ diff --git a/_maps/ministation.dm b/_maps/ministation.dm index 268439050a..e47dece814 100644 --- a/_maps/ministation.dm +++ b/_maps/ministation.dm @@ -50,13 +50,18 @@ Changes to the uplinks were made to discourage murderboning, the rest is the sam #define TITLESCREEN "title" //Add an image in misc/fullscreen.dmi, and set this define to the icon_state, to set a custom titlescreen for your map - #define MINETYPE "mining" + // Uncomment the following to use the old mining asteroid (The mining shuttle won't be used if this is enabled) + //#define MINETYPE "mining" #include "map_files\MiniStation\MiniStation.dmm" #include "map_files\generic\z2.dmm" #include "map_files\generic\z3.dmm" #include "map_files\generic\z4.dmm" - #include "map_files\MiniStation\z5.dmm" + #if defined(MINETYPE) + #include "map_files\MiniStation\z5.dmm" + #else + #include "map_files\MiniStation\lavaland.dmm" + #endif #include "map_files\generic\z6.dmm" #include "map_files\generic\z7.dmm" #include "map_files\generic\z8.dmm" @@ -68,14 +73,26 @@ Changes to the uplinks were made to discourage murderboning, the rest is the sam #define MAP_FILE "MiniStation.dmm" #define MAP_NAME "MiniStation" - #define MAP_TRANSITION_CONFIG DEFAULT_MAP_TRANSITION_CONFIG + #if defined(MINETYPE) + #define MAP_TRANSITION_CONFIG list(MAIN_STATION = CROSSLINKED, CENTCOMM = SELFLOOPING, EMPTY_AREA_1 = CROSSLINKED, EMPTY_AREA_2 = CROSSLINKED, MINING = CROSSLINKED, EMPTY_AREA_3 = CROSSLINKED, EMPTY_AREA_4 = SELFLOOPING, EMPTY_AREA_5 = SELFLOOPING, EMPTY_AREA_6 = SELFLOOPING, EMPTY_AREA_7 = SELFLOOPING, EMPTY_AREA_8 = SELFLOOPING) + #else + #define MAP_TRANSITION_CONFIG list(MAIN_STATION = CROSSLINKED, CENTCOMM = SELFLOOPING, EMPTY_AREA_1 = CROSSLINKED, EMPTY_AREA_2 = CROSSLINKED, MINING = SELFLOOPING, EMPTY_AREA_3 = CROSSLINKED, EMPTY_AREA_4 = SELFLOOPING, EMPTY_AREA_5 = SELFLOOPING, EMPTY_AREA_6 = SELFLOOPING, EMPTY_AREA_7 = SELFLOOPING, EMPTY_AREA_8 = SELFLOOPING) + #endif + + #include "..\code\__DEFINES\misc.dm" //Load defines early so we can modify them + #if defined(MINETYPE) + #define ZLEVEL_LAVALAND -1 //Prevents lavaland weather effects from happening on the mining asteroid + #endif + #define ZLEVEL_SPACEMAX 6 //Makes space navigation a little more manageable for lowpop, especially with no mining shuttle + + #if !defined(MINETYPE) + #define MINETYPE "lavaland" + #endif #if !defined(MAP_OVERRIDE_FILES) #define MAP_OVERRIDE_FILES #include "map_files\MiniStation\misc.dm" #include "map_files\MiniStation\cargopacks.dm" - #include "map_files\MiniStation\telecomms.dm" - #include "map_files\MiniStation\uplink_item.dm" #include "map_files\MiniStation\job\jobs.dm" #include "map_files\MiniStation\job\removed.dm" #endif diff --git a/_maps/pubbystation.dm b/_maps/pubbystation.dm new file mode 100644 index 0000000000..92ef96be5e --- /dev/null +++ b/_maps/pubbystation.dm @@ -0,0 +1,37 @@ +#if !defined(MAP_FILE) + + #define TITLESCREEN "title" //Add an image in misc/fullscreen.dmi, and set this define to the icon_state, to set a custom titlescreen for your map + + #define MINETYPE "lavaland" + + #include "map_files\PubbyStation\PubbyStation.dmm" + #include "map_files\generic\z2.dmm" + #include "map_files\generic\z3.dmm" + #include "map_files\generic\z4.dmm" + #include "map_files\generic\lavaland.dmm" + #include "map_files\generic\z6.dmm" + #include "map_files\generic\z7.dmm" + #include "map_files\generic\z8.dmm" + #include "map_files\generic\z9.dmm" + #include "map_files\generic\z10.dmm" + #include "map_files\generic\z11.dmm" + + #define MAP_PATH "map_files/PubbyStation" + #define MAP_FILE "PubbyStation.dmm" + #define MAP_NAME "PubbyStation" + + #define MAP_TRANSITION_CONFIG DEFAULT_MAP_TRANSITION_CONFIG + + #if !defined(MAP_OVERRIDE_FILES) + #define MAP_OVERRIDE_FILES + #include "map_files\PubbyStation\job\job_changes.dm" + #include "map_files\PubbyStation\job\removed_jobs.dm" + #include "map_files\PubbyStation\monastery_shuttle.dm" + #include "map_files\PubbyStation\areas.dm" + #endif + +#elif !defined(MAP_OVERRIDE) + + #warn a map has already been included, ignoring PubbyStation. + +#endif diff --git a/_maps/runtimestation.dm b/_maps/runtimestation.dm new file mode 100644 index 0000000000..7c97c10344 --- /dev/null +++ b/_maps/runtimestation.dm @@ -0,0 +1,23 @@ +#if !defined(MAP_FILE) + + // Runtime Station + // This is a developer sandbox map that will compile and + // load quickly. Not intended for production deployment. + + #define TITLESCREEN "title" + + #define MINETYPE "lavaland" + + #include "map_files\debug\runtimestation.dmm" + + #define MAP_PATH "map_files/debug" + #define MAP_FILE "runtimestation.dmm" + #define MAP_NAME "Runtime Station" + + #define MAP_TRANSITION_CONFIG list(MAIN_STATION = UNAFFECTED) + +#elif !defined(MAP_OVERRIDE) + + #warn a map has already been included, ignoring Runtime Station. + +#endif diff --git a/_maps/shuttles/cargo_birdboat.dmm b/_maps/shuttles/cargo_birdboat.dmm index ed21b35382..056319c722 100644 --- a/_maps/shuttles/cargo_birdboat.dmm +++ b/_maps/shuttles/cargo_birdboat.dmm @@ -1,15 +1,9 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "a" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s6"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium/overspace, /area/shuttle/supply) "b" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall12"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/supply) "c" = ( /turf/closed/wall/shuttle{ @@ -29,7 +23,7 @@ id = "cargoshuttle"; name = "cargo shuttle conveyor belt" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/supply) "f" = ( /obj/machinery/conveyor{ @@ -37,7 +31,7 @@ id = "cargoshuttle"; name = "cargo shuttle conveyor belt" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/supply) "g" = ( /obj/machinery/conveyor{ @@ -45,7 +39,7 @@ id = "cargoshuttle"; name = "cargo shuttle conveyor belt" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/supply) "h" = ( /obj/machinery/conveyor{ @@ -53,7 +47,7 @@ id = "cargoshuttle"; name = "cargo shuttle conveyor belt" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/supply) "i" = ( /obj/machinery/conveyor{ @@ -61,7 +55,7 @@ id = "cargoshuttle"; name = "cargo shuttle conveyor belt" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/supply) "j" = ( /obj/machinery/conveyor{ @@ -69,7 +63,7 @@ id = "cargoshuttle"; name = "cargo shuttle conveyor belt" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/supply) "k" = ( /obj/machinery/conveyor{ @@ -77,7 +71,7 @@ id = "cargoshuttle"; name = "cargo shuttle conveyor belt" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/supply) "l" = ( /obj/machinery/door/poddoor{ @@ -92,13 +86,13 @@ /turf/open/floor/plating, /area/shuttle/supply) "m" = ( -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/supply) "n" = ( -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/supply) "o" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Supply Shuttle Airlock"; req_access_txt = "31" }, @@ -121,10 +115,10 @@ /obj/machinery/conveyor_switch/oneway{ id = "cargoshuttle" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/supply) "q" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Supply Shuttle Airlock"; req_access_txt = "31" }, @@ -148,9 +142,7 @@ /turf/open/floor/plating, /area/shuttle/supply) "s" = ( -/turf/closed/wall/shuttle{ - icon_state = "swallc3" - }, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/shuttle/supply) "t" = ( /turf/closed/wall/shuttle{ @@ -192,15 +184,15 @@ /area/shuttle/supply) (1,1,1) = {" -a -d -d -d -d -d -d -d -s +b +b +b +b +b +b +b +b +b w "} (2,1,1) = {" @@ -212,7 +204,7 @@ m m m g -t +b x "} (3,1,1) = {" @@ -260,18 +252,18 @@ n p n g -t +b z "} (7,1,1) = {" -c -d -d +b +b +b l o -d +b q r -v +b w "} diff --git a/_maps/shuttles/cargo_box.dmm b/_maps/shuttles/cargo_box.dmm index bbc040600c..e66dcfe483 100644 --- a/_maps/shuttles/cargo_box.dmm +++ b/_maps/shuttles/cargo_box.dmm @@ -1,15 +1,9 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "a" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s6"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium/overspace, /area/shuttle/supply) "b" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall12"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/supply) "c" = ( /turf/closed/wall/shuttle{ @@ -24,7 +18,7 @@ }, /area/shuttle/supply) "e" = ( -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/supply) "f" = ( /obj/machinery/conveyor{ @@ -38,7 +32,7 @@ /turf/open/floor/plating, /area/shuttle/supply) "g" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Supply Shuttle Airlock"; req_access_txt = "31" }, @@ -58,10 +52,10 @@ pixel_x = 24; pixel_y = -8 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/supply) "i" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Supply Shuttle Airlock"; req_access_txt = "31" }, @@ -90,10 +84,8 @@ }, /area/shuttle/supply) "l" = ( -/turf/open/floor/plasteel/shuttle, -/turf/closed/wall/shuttle/interior{ - icon_state = "swall_f10" - }, +/turf/open/floor/mineral/titanium/blue, +/turf/closed/wall/mineral/titanium/interior, /area/shuttle/supply) "m" = ( /turf/open/floor/plasteel/shuttle, @@ -153,17 +145,17 @@ /area/shuttle/supply) (1,1,1) = {" -a -d -d -d -d -d -d -d -d -k -o +b +b +b +b +b +b +b +b +b +b +b s "} (2,1,1) = {" @@ -177,7 +169,7 @@ e e e l -p +b t "} (3,1,1) = {" @@ -232,21 +224,21 @@ h e e e -m -p +l +b v "} (7,1,1) = {" -c -d -d +b +b +b f g -d +b i j -d -n -r +b +b +b s "} diff --git a/_maps/shuttles/emergency_airless.dmm b/_maps/shuttles/emergency_airless.dmm index 17c492af9d..480f27bd8a 100644 --- a/_maps/shuttles/emergency_airless.dmm +++ b/_maps/shuttles/emergency_airless.dmm @@ -1,381 +1,36 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"a" = ( -/turf/open/space, -/area/space) -"b" = ( -/turf/open/floor/plating/airless, -/area/shuttle/escape) -"c" = ( -/turf/closed/wall, -/area/shuttle/escape) -"d" = ( -/obj/structure/fireaxecabinet, -/turf/closed/wall, -/area/shuttle/escape) -"e" = ( -/obj/structure/closet/malf, -/turf/open/floor/plating/airless, -/area/shuttle/escape) -"f" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/grille, -/turf/open/floor/plating/airless, -/area/shuttle/escape) -"g" = ( -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/grille, -/turf/open/floor/plating/airless, -/area/shuttle/escape) -"h" = ( -/obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/grille, -/turf/open/floor/plating/airless, -/area/shuttle/escape) -"i" = ( -/obj/machinery/computer/emergency_shuttle, -/turf/open/floor/plating/airless, -/area/shuttle/escape) -"j" = ( -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/grille, -/turf/open/floor/plating/airless, -/area/shuttle/escape) -"k" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced, -/obj/structure/grille, -/turf/open/floor/plating/airless, -/area/shuttle/escape) -"l" = ( -/turf/open/floor/plating, -/area/shuttle/escape) -"m" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 - }, -/turf/open/floor/plating/airless, -/area/shuttle/escape) -"n" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/shuttle/escape) -"o" = ( -/obj/docking_port/mobile/emergency{ - name = "Shuttle Under Construction"; - timid = 1 - }, -/turf/open/floor/plating/airless, -/area/shuttle/escape) -"p" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 4; - name = "4maintenance loot spawner" - }, -/turf/open/floor/plating/airless, -/area/shuttle/escape) -"q" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/shuttle/engine/heater, -/turf/open/floor/plating/airless, -/area/shuttle/escape) -"r" = ( -/obj/structure/shuttle/engine/propulsion, -/turf/open/floor/plating/airless, -/area/shuttle/escape) -"s" = ( -/obj/machinery/status_display, -/turf/closed/wall, -/area/shuttle/escape) +"a" = (/turf/open/space,/area/space) +"b" = (/turf/open/floor/plating/airless,/area/shuttle/escape) +"c" = (/turf/closed/wall,/area/shuttle/escape) +"d" = (/obj/structure/closet/malf,/turf/open/floor/plating/airless,/area/shuttle/escape) +"e" = (/obj/machinery/status_display,/turf/closed/wall,/area/shuttle/escape) +"f" = (/obj/effect/shuttle_build,/turf/open/floor/plating/airless,/area/shuttle/escape) +"g" = (/turf/open/floor/plating,/area/shuttle/escape) +"h" = (/obj/docking_port/mobile/emergency{name = "Shuttle Under Construction"; timid = 1},/turf/open/floor/plating/airless,/area/shuttle/escape) +"i" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance{lootcount = 4; name = "4maintenance loot spawner"},/turf/open/floor/plating/airless,/area/shuttle/escape) +"j" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/turf/open/floor/plating/airless,/area/shuttle/escape) +"k" = (/obj/structure/shuttle/engine/propulsion,/turf/open/floor/plating/airless,/area/shuttle/escape) (1,1,1) = {" -a -a -a -a -a -a -b -l -b -o -b -b -b -b -a -a -a -a -a -a -a -a -"} -(2,1,1) = {" -a -b -c -s -c -b -b -b -b -b -b -b -b -b -b -b -b -c -c -c -a -a -"} -(3,1,1) = {" -b -b -e -e -e -b -b -m -m -m -m -m -b -b -b -b -b -b -b -b -q -r -"} -(4,1,1) = {" -c -b -b -b -b -b -b -n -n -n -n -n -b -b -b -b -b -b -b -b -q -r -"} -(5,1,1) = {" -c -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -q -r -"} -(6,1,1) = {" -c -b -b -b -b -b -b -m -m -m -m -m -b -b -b -b -b -b -b -b -q -r -"} -(7,1,1) = {" -d -b -b -b -b -b -b -n -n -n -n -n -b -b -b -b -b -b -b -b -q -r -"} -(8,1,1) = {" -c -b -f -h -j -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -q -r -"} -(9,1,1) = {" -c -b -g -i -k -b -b -m -m -m -m -m -b -b -b -p -p -p -b -b -q -r -"} -(10,1,1) = {" -a -b -c -c -c -b -b -b -b -b -b -b -b -b -b -c -s -c -b -c -a -a -"} -(11,1,1) = {" -a -a -a -a -a -a -c -c -c -c -c -b -c -c -a -a -a -a -a -a -a -a +aabbbbbbbaa +abbbbbbbbba +acdbbbbbbba +aedbbbfbbba +abdbbbbbbba +abbbbbbbbba +bbbbbbbbbbc +gbbbbbbbbbc +bbbbbbbbbbc +hbbbbbbbbbc +bbbbbbbbbbc +bbbbbbbbbbb +bbbbbbbbbbc +bbbbbbbbbbc +abbbbbbbbba +abbbbbbbica +abbbbbbbiea +acbbbbbbica +acbbbbbbbba +acbbbbbbbca +aajjjjjjjaa +aakkkkkkkaa "} diff --git a/_maps/shuttles/emergency_asteroid.dmm b/_maps/shuttles/emergency_asteroid.dmm index cc22fab653..a093338f73 100644 --- a/_maps/shuttles/emergency_asteroid.dmm +++ b/_maps/shuttles/emergency_asteroid.dmm @@ -3,16 +3,10 @@ /turf/open/space, /area/space) "ab" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s6"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium/overspace, /area/shuttle/escape) "ac" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall14"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/escape) "ad" = ( /obj/structure/window/shuttle, @@ -20,10 +14,10 @@ /turf/open/floor/plating, /area/shuttle/escape) "ae" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Emergency Shuttle Airlock" }, -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/shuttle/escape) "af" = ( /turf/closed/wall/shuttle{ @@ -40,13 +34,13 @@ /turf/open/floor/plating, /area/shuttle/escape) "ai" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Emergency Shuttle Airlock" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "aj" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Emergency Shuttle Airlock" }, /obj/docking_port/mobile/emergency{ @@ -57,7 +51,7 @@ width = 28; timid = 1 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "ak" = ( /turf/closed/wall/shuttle{ @@ -66,11 +60,11 @@ }, /area/shuttle/escape) "al" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Emergency Shuttle Airlock"; req_access_txt = "2" }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) "am" = ( /obj/structure/shuttle/engine/propulsion{ @@ -94,14 +88,14 @@ /area/shuttle/escape) "ap" = ( /obj/structure/ore_box, -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/shuttle/escape) "aq" = ( -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/shuttle/escape) "ar" = ( /obj/machinery/recharge_station, -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/shuttle/escape) "as" = ( /turf/closed/wall/shuttle{ @@ -110,7 +104,7 @@ }, /area/shuttle/escape) "at" = ( -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "au" = ( /turf/closed/wall/shuttle{ @@ -122,16 +116,16 @@ /obj/structure/chair{ dir = 4 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) "aw" = ( -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) "ax" = ( /obj/structure/chair{ dir = 8 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) "ay" = ( /turf/closed/wall/shuttle{ @@ -140,10 +134,7 @@ }, /area/shuttle/escape) "az" = ( -/turf/closed/wall/shuttle{ - icon_state = "swallc4"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/shuttle/escape) "aA" = ( /turf/closed/wall/shuttle{ @@ -152,9 +143,8 @@ }, /area/shuttle/escape) "aB" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_f13" - }, +/turf/open/floor/mineral/titanium, +/turf/closed/wall/mineral/titanium/interior, /area/shuttle/escape) "aC" = ( /turf/closed/wall/shuttle{ @@ -175,38 +165,38 @@ name = "Station Intercom (General)"; pixel_x = -28 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) "aF" = ( /obj/machinery/suit_storage_unit, -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/shuttle/escape) "aG" = ( /obj/machinery/door/airlock/mining{ name = "Emergency Shuttle Storage"; req_access_txt = "0" }, -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/shuttle/escape) "aH" = ( /obj/structure/extinguisher_cabinet{ pixel_y = 30 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "aI" = ( /obj/structure/closet, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "aJ" = ( /obj/structure/table, /obj/item/weapon/extinguisher, /obj/item/weapon/crowbar, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "aK" = ( /obj/structure/chair, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "aL" = ( /obj/structure/table, @@ -215,7 +205,7 @@ pixel_x = 2; pixel_y = 3 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "aM" = ( /obj/structure/closet/emcloset, @@ -224,11 +214,11 @@ name = "Station Intercom (General)"; pixel_y = 23 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "aN" = ( /obj/structure/bed/roller, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "aO" = ( /turf/closed/wall/shuttle{ @@ -241,36 +231,36 @@ name = "Emergency Shuttle Brig"; req_access_txt = "2" }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) "aQ" = ( /obj/structure/bed, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) "aR" = ( /obj/machinery/computer/station_alert, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "aS" = ( -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "aT" = ( /obj/structure/chair/office/light{ name = "Chief Engineer" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "aU" = ( /obj/structure/chair/office/light{ name = "Captain" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "aV" = ( /obj/structure/chair/office/light{ name = "Head of Security" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "aW" = ( /obj/item/device/radio/intercom{ @@ -278,36 +268,33 @@ name = "Station Intercom (General)"; pixel_y = 23 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "aX" = ( /obj/machinery/ai_status_display, -/turf/closed/wall/shuttle{ - icon_state = "swall1"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/escape) "aY" = ( /obj/structure/chair{ dir = 8 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "aZ" = ( /obj/structure/chair{ dir = 1 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "ba" = ( /obj/structure/chair{ dir = 4 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "bb" = ( /obj/machinery/computer/security, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) "bc" = ( /obj/structure/table, @@ -315,29 +302,29 @@ pixel_x = -1; pixel_y = 6 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "bd" = ( /obj/machinery/computer/emergency_shuttle, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "be" = ( /obj/structure/table, /obj/item/weapon/folder/blue, /obj/item/weapon/pen, /obj/machinery/recharger, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "bf" = ( /obj/machinery/ai_slipper, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "bg" = ( /obj/machinery/door/airlock/glass_command{ name = "Emergency Shuttle Cockpit"; req_access_txt = "19" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "bh" = ( /obj/structure/grille, @@ -346,41 +333,38 @@ /area/shuttle/escape) "bi" = ( /obj/machinery/status_display, -/turf/closed/wall/shuttle{ - icon_state = "swall7"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/escape) "bj" = ( /obj/machinery/computer/communications, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "bk" = ( /obj/structure/chair/office/light{ dir = 1; name = "Research Director" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "bl" = ( /obj/structure/chair/office/light{ dir = 1; name = "Head of Personnel" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "bm" = ( /obj/structure/chair/office/light{ dir = 1; name = "Chief Medical Officer" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "bn" = ( /obj/structure/extinguisher_cabinet{ pixel_y = -30 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "bo" = ( /obj/machinery/status_display, @@ -391,7 +375,7 @@ /area/shuttle/escape) "bp" = ( /obj/machinery/computer/crew, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "bq" = ( /obj/machinery/door/airlock/glass_medical{ @@ -399,7 +383,7 @@ name = "Escape Shuttle Infirmary"; req_access_txt = "5" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "br" = ( /obj/machinery/door/airlock/glass_medical{ @@ -407,11 +391,11 @@ name = "Escape Shuttle Infirmary"; req_access_txt = "0" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "bs" = ( /obj/structure/bed, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "bt" = ( /obj/structure/sink{ @@ -423,17 +407,17 @@ /obj/structure/mirror{ pixel_x = -30 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "bu" = ( /obj/machinery/door/airlock{ name = "Emergency Shuttle Restroom" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "bv" = ( /obj/structure/closet/emcloset, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "bw" = ( /obj/structure/chair{ @@ -443,7 +427,7 @@ name = "Station Intercom (General)"; pixel_y = -29 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "bx" = ( /obj/structure/chair{ @@ -452,21 +436,21 @@ /obj/structure/extinguisher_cabinet{ pixel_y = -30 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "by" = ( /obj/structure/table, /obj/item/weapon/extinguisher, /obj/item/weapon/crowbar, /obj/machinery/recharger, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "bz" = ( /obj/machinery/sleeper{ icon_state = "sleeper-open"; dir = 8 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "bA" = ( /turf/closed/wall/shuttle{ @@ -486,28 +470,28 @@ name = "Station Intercom (General)"; pixel_x = -28 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "bD" = ( /obj/structure/closet/secure_closet/medical2, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "bE" = ( /obj/structure/toilet{ dir = 1 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "bF" = ( /obj/structure/table, /obj/item/weapon/retractor, /obj/item/weapon/hemostat, /obj/item/weapon/scalpel, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "bG" = ( /obj/structure/table/optable, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "bH" = ( /obj/structure/table, @@ -516,82 +500,84 @@ pixel_x = 4 }, /obj/item/weapon/surgical_drapes, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "bI" = ( -/turf/closed/wall/shuttle, +/obj/structure/window/shuttle, +/obj/structure/grille, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) (1,1,1) = {" aa aa -ab +ac am -as +ac ad ad -ad -as +bI +ac am -bB +ac aa aa "} (2,1,1) = {" -ab +ac am -ak +ac an -ak +ac aR aS bj -ak +ac an -ak +ac am -bB +ac "} (3,1,1) = {" ac an -ay -au -aA +ac +ac +ac aS aS aS ac -au -ay +ac +ac an -aA +ac "} (4,1,1) = {" ac -ao +ac az aF -ak +ac aT bc bk -ak -bt ac -ao -aA +bt +az +ac +ac "} (5,1,1) = {" ad ap aq aq -ak +ac aU bd bl -ak +ac at bu bE @@ -602,50 +588,50 @@ ae aq aq aq -ak +ac aV be bm -ak +ac at ac -au -bI +ac +ac "} (7,1,1) = {" ad ar aq aq -ak +ac aW bf bn -ak +ac at bu bE ad "} (8,1,1) = {" -af -as -as +ac +ac +ac aG -aO +ac aX bg -bo +bi az bu -ay -as -bA +az +ac +ac "} (9,1,1) = {" ag -af -aA +ac +ac aH at at @@ -654,13 +640,13 @@ at at at ac -bA +ac aa "} (10,1,1) = {" ag ag -ak +ac aI at aY @@ -668,7 +654,7 @@ aY aY at bv -ak +ac aa aa "} @@ -683,7 +669,7 @@ ah aK at aL -ak +ac aa aa "} @@ -698,14 +684,14 @@ ah aK at aS -ak +ac aa aa "} (13,1,1) = {" ah ah -aC +aB aK at aZ @@ -713,7 +699,7 @@ ah aK at bw -ak +ac aa aa "} @@ -773,7 +759,7 @@ ah aK at bx -ak +ac aa aa "} @@ -788,14 +774,14 @@ ah aK at aS -ak +ac aa aa "} (19,1,1) = {" ah ah -aC +aB aL at aZ @@ -803,14 +789,14 @@ ah aK at by -ak +ac aa aa "} (20,1,1) = {" ag ag -ak +ac aM at ba @@ -818,14 +804,14 @@ ba ba at aI -ak +ac aa aa "} (21,1,1) = {" ag -ag -ak +ac +ac aN at at @@ -833,14 +819,14 @@ at at at aN -ak -aa +ac +ac aa "} (22,1,1) = {" -ab -au -ao +ac +ac +ac ad aP ad @@ -848,24 +834,24 @@ bi ad br ad -ao -au -bB +ac +ac +ac "} (23,1,1) = {" -ak +ac av aE av aw bb -ak +ac bp at at bC bF -ak +ac "} (24,1,1) = {" al @@ -883,47 +869,47 @@ bG ad "} (25,1,1) = {" -ak +ac ax ax ax aw aw -ak +ac at at bz bD bH -ak +ac "} (26,1,1) = {" -af -au -as -as +ac +ac +ac +ac ad aP -ak +ac bq ad -as -as -au -bA +ac +ac +ac +ac "} (27,1,1) = {" aa aa -af -aA +ac +ac aQ aw ad at bs ac -bA +ac aa aa "} @@ -931,13 +917,13 @@ aa ag ag ag -af -au +ac +ac ad -ao +ac ad -au -bA +ac +ac aa aa aa diff --git a/_maps/shuttles/emergency_bar.dmm b/_maps/shuttles/emergency_bar.dmm index 15abf97cae..7e888e9d4d 100644 --- a/_maps/shuttles/emergency_bar.dmm +++ b/_maps/shuttles/emergency_bar.dmm @@ -3,7 +3,7 @@ /turf/open/space, /area/space) "ab" = ( -/turf/closed/wall/shuttle/smooth/overspace, +/turf/closed/wall/mineral/titanium/overspace, /area/shuttle/escape) "ac" = ( /obj/structure/grille, @@ -17,7 +17,7 @@ }, /area/shuttle/escape) "ae" = ( -/turf/closed/wall/shuttle/smooth/nodiagonal, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/shuttle/escape) "af" = ( /obj/structure/table/wood, @@ -150,7 +150,7 @@ /area/shuttle/escape) "aA" = ( /obj/machinery/status_display, -/turf/closed/wall/shuttle/smooth, +/turf/closed/wall/mineral/titanium, /area/shuttle/escape) "aB" = ( /turf/closed/wall/shuttle{ @@ -160,7 +160,7 @@ /area/shuttle/escape) "aC" = ( /obj/structure/chair, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) "aD" = ( /obj/machinery/flasher{ @@ -204,10 +204,10 @@ pixel_x = -24; pixel_y = -6 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) "aI" = ( -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) "aJ" = ( /obj/machinery/door/airlock/glass{ @@ -217,24 +217,24 @@ /turf/open/floor/plasteel/bar, /area/shuttle/escape) "aK" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Emergency Shuttle Airlock"; req_access_txt = "2" }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) "aL" = ( /obj/structure/extinguisher_cabinet{ pixel_x = 0; pixel_y = -30 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) "aM" = ( /obj/structure/chair{ dir = 1 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) "aN" = ( /obj/structure/chair/stool/bar{ @@ -276,7 +276,7 @@ /turf/open/floor/plasteel/bar, /area/shuttle/escape) "aT" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Emergency Shuttle Airlock" }, /obj/docking_port/mobile/emergency{ @@ -350,7 +350,7 @@ }, /area/shuttle/escape) "bg" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Emergency Shuttle Airlock" }, /turf/open/floor/plasteel/bar, @@ -362,7 +362,7 @@ /turf/open/floor/plasteel/shuttle/white, /area/shuttle/escape) "bi" = ( -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "bj" = ( /obj/structure/table/reinforced, @@ -394,10 +394,10 @@ /obj/structure/grille, /obj/structure/window/shuttle, /obj/structure/sign/bluecross_2, -/turf/open/floor/plasteel/freezer, +/turf/closed/wall/mineral/titanium, /area/shuttle/escape) "bo" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Emergency Shuttle Airlock" }, /turf/open/floor/plasteel/freezer, @@ -409,13 +409,13 @@ /obj/machinery/door/airlock/glass_medical{ name = "Medbay" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "br" = ( /obj/machinery/sleeper{ dir = 8 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "bs" = ( /obj/machinery/door/airlock{ @@ -424,7 +424,7 @@ /turf/open/floor/plasteel/freezer, /area/shuttle/escape) "bt" = ( -/turf/closed/wall/shuttle/smooth, +/turf/closed/wall/mineral/titanium, /area/shuttle/escape) "bu" = ( /obj/machinery/door/airlock{ @@ -441,7 +441,7 @@ "bw" = ( /obj/structure/table/optable, /obj/item/weapon/surgical_drapes, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "bx" = ( /obj/structure/toilet{ @@ -461,21 +461,16 @@ /obj/item/weapon/hemostat, /obj/item/weapon/retractor, /obj/item/weapon/scalpel, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "bA" = ( -/turf/closed/wall/shuttle{ - tag = "icon-gwall_space"; - icon_state = "gwall_space"; - dir = 2 +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + icon_state = "diagonalWall3" }, /area/shuttle/escape) "bB" = ( -/turf/closed/wall/shuttle{ - tag = "icon-wall3"; - icon_state = "wall3"; - dir = 2 - }, +/turf/closed/wall/mineral/plastitanium, /area/shuttle/escape) "bC" = ( /obj/structure/window/reinforced{ @@ -485,10 +480,10 @@ /turf/open/floor/plating/airless, /area/shuttle/escape) "bD" = ( -/turf/closed/wall/shuttle{ - tag = "icon-gwall_space (EAST)"; - icon_state = "gwall_space"; - dir = 4 +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" }, /area/shuttle/escape) "bE" = ( @@ -578,7 +573,7 @@ pixel_x = 4; pixel_y = 4 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "bT" = ( /obj/item/weapon/twohanded/required/kirbyplants{ @@ -594,7 +589,7 @@ pixel_x = 4; pixel_y = 4 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "bV" = ( /obj/structure/table/wood/bar{ @@ -611,7 +606,7 @@ aa aa aa aa -ab +bt bt bt aK @@ -627,12 +622,12 @@ bt bo bt bt -bA +bt aa "} (2,1,1) = {" aa -ab +bt bt bt bt @@ -651,11 +646,11 @@ bt bp bs bx -bB -bB +bt +bt "} (3,1,1) = {" -ab +bt ae al aq @@ -799,7 +794,7 @@ bC bE "} (9,1,1) = {" -ab +bt ae ap au @@ -824,7 +819,7 @@ bE "} (10,1,1) = {" aa -ab +bt bt bt bt @@ -843,15 +838,15 @@ bF br br bU -bB -bB +bt +bt "} (11,1,1) = {" aa aa aa aa -ab +bt ac bt ac @@ -867,6 +862,6 @@ bt ac bt ac -bD +bt aa "} diff --git a/_maps/shuttles/emergency_birdboat.dmm b/_maps/shuttles/emergency_birdboat.dmm index b664d550b0..96443b0cd6 100644 --- a/_maps/shuttles/emergency_birdboat.dmm +++ b/_maps/shuttles/emergency_birdboat.dmm @@ -1,55 +1,19 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"aa" = ( +"a" = ( /turf/open/space, /area/space) -"ab" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s6"; - dir = 2 - }, +"b" = ( +/turf/closed/wall/mineral/titanium/overspace, /area/shuttle/escape) -"ac" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall12"; - dir = 2 - }, +"c" = ( +/turf/closed/wall/mineral/titanium, /area/shuttle/escape) -"ad" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall14"; - dir = 2 - }, -/area/shuttle/escape) -"ae" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s10"; - dir = 2 - }, -/area/shuttle/escape) -"af" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall8"; - dir = 2 - }, -/area/shuttle/escape) -"ag" = ( +"d" = ( /obj/structure/grille, /obj/structure/window/shuttle, /turf/open/floor/plating, /area/shuttle/escape) -"ah" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall4"; - dir = 2 - }, -/area/shuttle/escape) -"ai" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall11"; - dir = 2 - }, -/area/shuttle/escape) -"aj" = ( +"e" = ( /obj/structure/table, /obj/item/weapon/scalpel, /obj/item/weapon/retractor{ @@ -59,7 +23,7 @@ /obj/item/weapon/hemostat, /turf/open/floor/plasteel/white, /area/shuttle/escape) -"ak" = ( +"f" = ( /obj/structure/table, /obj/item/weapon/cautery, /obj/item/weapon/surgicaldrill, @@ -68,97 +32,82 @@ }, /turf/open/floor/plasteel/white, /area/shuttle/escape) -"al" = ( +"g" = ( /turf/open/floor/plasteel/white, /area/shuttle/escape) -"am" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall3"; - dir = 2 - }, -/area/shuttle/escape) -"an" = ( +"h" = ( /obj/structure/shuttle/engine/propulsion{ icon_state = "propulsion_r"; dir = 8 }, /turf/open/floor/plating/airless, /area/shuttle/escape) -"ao" = ( -/turf/closed/wall/shuttle{ - icon_state = "swallc4"; - dir = 2 - }, +"i" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, /area/shuttle/escape) -"ap" = ( +"j" = ( /obj/machinery/computer/emergency_shuttle, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) -"aq" = ( -/turf/open/floor/plasteel/shuttle, +"k" = ( +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) -"ar" = ( +"l" = ( /obj/item/weapon/twohanded/required/kirbyplants{ icon_state = "plant-22" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) -"as" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall1"; - dir = 2 - }, -/area/shuttle/escape) -"at" = ( +"m" = ( /obj/structure/chair, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) -"au" = ( +"n" = ( /obj/structure/table/optable, /obj/item/weapon/surgical_drapes, /turf/open/floor/plasteel/white, /area/shuttle/escape) -"av" = ( +"o" = ( /obj/structure/shuttle/engine/propulsion{ icon_state = "propulsion"; dir = 8 }, /turf/open/floor/plating/airless, /area/shuttle/escape) -"aw" = ( +"p" = ( /obj/machinery/computer/communications, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) -"ax" = ( +"q" = ( /obj/structure/chair{ dir = 8 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) -"ay" = ( +"r" = ( /obj/machinery/door/airlock/glass_command{ name = "bridge door"; req_access_txt = "19" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) -"az" = ( -/turf/open/floor/plasteel/shuttle/red, +"s" = ( +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) -"aA" = ( +"t" = ( /obj/structure/shuttle/engine/propulsion{ icon_state = "propulsion_l"; dir = 8 }, /turf/open/floor/plating/airless, /area/shuttle/escape) -"aB" = ( +"u" = ( /obj/structure/extinguisher_cabinet{ pixel_y = -32 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) -"aC" = ( +"v" = ( /obj/structure/table, /obj/machinery/recharger{ active_power_usage = 0; @@ -166,90 +115,58 @@ pixel_y = 4; use_power = 0 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) -"aD" = ( +"w" = ( /obj/structure/table, /obj/item/weapon/storage/box/handcuffs, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) -"aE" = ( -/turf/closed/wall/shuttle{ - icon_state = "swallc2"; - dir = 2 - }, -/area/shuttle/escape) -"aF" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall15"; - dir = 2 - }, -/area/shuttle/escape) -"aG" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s9"; - dir = 2 - }, -/area/shuttle/escape) -"aH" = ( -/turf/closed/wall/shuttle, -/area/shuttle/escape) -"aI" = ( +"x" = ( /obj/machinery/door/airlock/glass_security{ name = "security airlock"; req_access_txt = "63" }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) -"aJ" = ( +"y" = ( /obj/machinery/door/airlock/glass, /turf/open/floor/plasteel/white, /area/shuttle/escape) -"aK" = ( -/turf/closed/wall/shuttle{ - icon_state = "swallc3" - }, -/area/shuttle/escape) -"aL" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall13"; - dir = 2 - }, -/area/shuttle/escape) -"aM" = ( +"z" = ( /obj/item/weapon/twohanded/required/kirbyplants{ icon_state = "plant-21"; layer = 4.1 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) -"aN" = ( -/turf/open/floor/plasteel/shuttle/white, +"A" = ( +/turf/open/floor/mineral/titanium, /area/shuttle/escape) -"aO" = ( +"B" = ( /turf/open/floor/plasteel/black, /area/shuttle/escape) -"aP" = ( +"C" = ( /obj/structure/chair{ dir = 4 }, /turf/open/floor/plasteel/black, /area/shuttle/escape) -"aQ" = ( +"D" = ( /obj/structure/table, /turf/open/floor/plasteel/black, /area/shuttle/escape) -"aR" = ( -/obj/machinery/door/airlock/shuttle, -/turf/open/floor/plasteel/shuttle/white, +"E" = ( +/obj/machinery/door/airlock/titanium, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) -"aS" = ( +"F" = ( /obj/structure/chair{ dir = 8 }, /turf/open/floor/plasteel/black, /area/shuttle/escape) -"aT" = ( +"G" = ( /obj/structure/table, /obj/item/weapon/reagent_containers/food/snacks/boiledspaghetti{ name = "pasghetti"; @@ -258,39 +175,33 @@ }, /turf/open/floor/plasteel/black, /area/shuttle/escape) -"aU" = ( -/obj/machinery/door/airlock/shuttle, +"H" = ( +/obj/machinery/door/airlock/titanium, /obj/docking_port/mobile/emergency{ dheight = 0; dir = 8; dwidth = 6; height = 18; - travelDir = 90; + port_angle = 90; width = 14; timid = 1; name = "Birdboat emergency escape shuttle" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) -"aV" = ( +"I" = ( /obj/structure/table, /obj/item/weapon/reagent_containers/food/snacks/chocolatebar, /turf/open/floor/plasteel/black, /area/shuttle/escape) -"aW" = ( +"J" = ( /obj/structure/chair{ dir = 1 }, /obj/structure/window/reinforced, /turf/open/floor/plasteel/black, /area/shuttle/escape) -"aX" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall2"; - dir = 2 - }, -/area/shuttle/escape) -"aY" = ( +"K" = ( /obj/structure/chair, /obj/structure/window/reinforced{ dir = 1; @@ -298,13 +209,13 @@ }, /turf/open/floor/plasteel/black, /area/shuttle/escape) -"aZ" = ( +"L" = ( /obj/structure/extinguisher_cabinet{ pixel_x = -27 }, /turf/open/floor/plasteel/white, /area/shuttle/escape) -"ba" = ( +"M" = ( /obj/structure/table/glass, /obj/item/weapon/storage/firstaid/fire{ pixel_x = 5; @@ -313,25 +224,13 @@ /obj/item/weapon/storage/firstaid/toxin, /turf/open/floor/plasteel/white, /area/shuttle/escape) -"bb" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s5"; - dir = 2 - }, -/area/shuttle/escape) -"bc" = ( -/turf/closed/wall/shuttle{ - icon_state = "swallc1"; - dir = 2 - }, -/area/shuttle/escape) -"bd" = ( +"N" = ( /obj/structure/chair{ dir = 1 }, /turf/open/floor/plasteel/black, /area/shuttle/escape) -"be" = ( +"O" = ( /obj/structure/table/glass, /obj/item/weapon/storage/firstaid/brute{ pixel_x = 5; @@ -340,314 +239,314 @@ /obj/item/weapon/storage/firstaid/brute, /turf/open/floor/plasteel/white, /area/shuttle/escape) -"bf" = ( +"P" = ( /obj/structure/extinguisher_cabinet{ pixel_y = -32 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) -"bg" = ( +"Q" = ( /obj/structure/chair, /turf/open/floor/plasteel/black, /area/shuttle/escape) -"bh" = ( +"R" = ( /obj/machinery/sleeper{ icon_state = "sleeper-open"; dir = 1 }, /turf/open/floor/plasteel/white, /area/shuttle/escape) -"bi" = ( +"S" = ( /obj/structure/table/glass, /obj/item/weapon/defibrillator/loaded, /turf/open/floor/plasteel/white, /area/shuttle/escape) (1,1,1) = {" -aa -aa -ab -as -ag -aH -ag -ag -ag -ag -ag -bb -aa -aa +a +a +c +c +d +c +d +d +d +d +d +c +a +a "} (2,1,1) = {" -aa -ab -ao -aw -ar -ag -aM -aS -aS -aS -aM -bc -bb -aa +a +c +i +p +l +d +z +F +F +F +z +i +c +a "} (3,1,1) = {" -aa -af -ap -ax -aq -ay -aN -aN -aN -aN -aN -bd -ac -aa +a +c +j +q +k +r +A +A +A +A +A +N +c +a "} (4,1,1) = {" -aa -ag -aq -aq -aq -ah -aO -aO -aQ -aN -aN -bd -ac -aa +a +d +k +k +k +c +B +B +D +A +A +N +c +a "} (5,1,1) = {" -aa -ag -aq -aq -aB -ac -aP -aP -aV -aN -aN -bd -ac -aa +a +d +k +k +u +c +C +C +I +A +A +N +c +a "} (6,1,1) = {" -aa -ah -ar -aq -ar -ac -aQ -aT -aQ -aN -aN -bd -bc -bb +a +c +l +k +l +c +D +G +D +A +A +N +i +c "} (7,1,1) = {" -aa -ad -as -ay -ag -af -aN -aN -aN -aN -aN -aN -aM -ac +a +c +c +r +d +c +A +A +A +A +A +A +z +c "} (8,1,1) = {" -aa -ac -at -az -az -ag -aM -aN -aN -aN -aN -aN -bf -af +a +c +m +s +s +d +z +A +A +A +A +A +P +c "} (9,1,1) = {" -aa -ac -at -az -az -aI -aN -aN -aW -aY -aN -aN -bg -ag +a +c +m +s +s +x +A +A +J +K +A +A +Q +d "} (10,1,1) = {" -aa -ac -at -az -az -ag -aN -aN -aW -aY -aN -aN -bg -ag +a +c +m +s +s +d +A +A +J +K +A +A +Q +d "} (11,1,1) = {" -aa -ac -at -az -aC -ah -aN -aN -aW -aY -aN -aN -bg -ag +a +c +m +s +v +c +A +A +J +K +A +A +Q +d "} (12,1,1) = {" -aa -ac -at -az -aD -ac -aN -aN -aW -aY -aN -aN -aM -ah +a +c +m +s +w +c +A +A +J +K +A +A +z +c "} (13,1,1) = {" -ab -ai -am -am -am -ao -aN -aN -aX -as -aJ -ag -aX -aL +c +c +c +c +c +i +A +A +c +c +y +d +c +c "} (14,1,1) = {" -ac -aj -au -al -al -aJ -aN -aN -aJ -aZ -al -al -bh -ac +c +e +n +g +g +y +A +A +y +L +g +g +R +c "} (15,1,1) = {" -ac -ak -al -al -al -aJ -aN -aN -aJ -al -al -al -al -ac +c +f +g +g +g +y +A +A +y +g +g +g +g +c "} (16,1,1) = {" -ac -al -al -al -aE -aK -aR -aR -aE -aK -ba -be -bi -ac +c +g +g +g +c +c +E +E +c +c +M +O +S +c "} (17,1,1) = {" -ad -am -am -am -aF -aL -aN -aN -ad -aF -am -am -am -aL +c +c +c +c +c +c +A +A +c +c +c +c +c +c "} (18,1,1) = {" -ae -an -av -aA -aG -af -aR -aU -af -ae -an -av -aA -aG +c +h +o +t +c +c +E +H +c +c +h +o +t +c "} diff --git a/_maps/shuttles/emergency_box.dmm b/_maps/shuttles/emergency_box.dmm index 51d5348175..68404f35ac 100644 --- a/_maps/shuttles/emergency_box.dmm +++ b/_maps/shuttles/emergency_box.dmm @@ -3,10 +3,7 @@ /turf/open/space, /area/space) "ab" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s6"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium/overspace, /area/shuttle/escape) "ac" = ( /obj/structure/grille, @@ -20,25 +17,23 @@ }, /area/shuttle/escape) "ae" = ( -/turf/open/floor/plasteel/shuttle/white, -/turf/closed/wall/shuttle/interior{ - icon_state = "swall_f9" - }, +/turf/open/floor/mineral/titanium, +/turf/closed/wall/mineral/titanium/interior, /area/shuttle/escape) "af" = ( /obj/structure/table, /obj/item/weapon/storage/firstaid/fire, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "ag" = ( /obj/structure/chair{ dir = 1 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "ah" = ( /obj/machinery/computer/emergency_shuttle, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "ai" = ( /obj/structure/table, @@ -47,7 +42,7 @@ pixel_y = 3 }, /obj/item/weapon/crowbar, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "aj" = ( /turf/open/floor/plasteel/shuttle/white, @@ -56,37 +51,34 @@ }, /area/shuttle/escape) "ak" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall3"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/escape) "al" = ( /obj/machinery/computer/atmos_alert, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "am" = ( /obj/structure/chair{ dir = 8 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "an" = ( -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "ao" = ( /obj/structure/chair{ dir = 4 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "ap" = ( /obj/machinery/computer/security, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "aq" = ( /obj/machinery/computer/crew, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "ar" = ( /obj/structure/chair{ @@ -96,7 +88,7 @@ pixel_x = 0; pixel_y = -30 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "as" = ( /obj/item/device/radio/intercom{ @@ -104,7 +96,7 @@ pixel_x = 0; pixel_y = -29 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "at" = ( /obj/machinery/button/flasher{ @@ -112,11 +104,11 @@ pixel_x = 6; pixel_y = -24 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "au" = ( /obj/machinery/computer/communications, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "av" = ( /turf/closed/wall/shuttle{ @@ -141,18 +133,15 @@ name = "Emergency Shuttle Cockpit"; req_access_txt = "19" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "az" = ( /obj/machinery/status_display, -/turf/closed/wall/shuttle{ - icon_state = "swall12"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/escape) "aA" = ( /obj/structure/chair, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) "aB" = ( /obj/machinery/flasher{ @@ -160,14 +149,14 @@ pixel_x = 6; pixel_y = 24 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "aC" = ( -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "aD" = ( /obj/structure/closet/emcloset, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "aE" = ( /obj/structure/table, @@ -177,7 +166,7 @@ pixel_y = 3 }, /obj/item/weapon/crowbar, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "aF" = ( /obj/machinery/flasher{ @@ -190,20 +179,20 @@ pixel_x = -24; pixel_y = -6 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) "aG" = ( -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) "aH" = ( /obj/machinery/door/airlock/glass{ name = "Emergency Shuttle Brig"; req_access_txt = "2" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "aI" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Emergency Shuttle Airlock"; req_access_txt = "2" }, @@ -213,21 +202,21 @@ /obj/structure/chair{ dir = 1 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) "aK" = ( /obj/structure/chair, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "aL" = ( /obj/structure/chair{ dir = 4 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "aM" = ( /obj/structure/table, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "aN" = ( /turf/closed/wall/shuttle{ @@ -242,7 +231,7 @@ }, /area/shuttle/escape) "aP" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Emergency Shuttle Airlock" }, /obj/docking_port/mobile/emergency{ @@ -256,14 +245,14 @@ pixel_x = -5; pixel_y = 30 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "aR" = ( /obj/structure/extinguisher_cabinet{ pixel_x = 27; pixel_y = 0 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "aS" = ( /obj/structure/chair{ @@ -272,7 +261,7 @@ /obj/structure/window/reinforced{ dir = 4 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "aT" = ( /obj/structure/chair{ @@ -281,16 +270,16 @@ /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "aU" = ( /obj/structure/chair{ dir = 8 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "aV" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Emergency Shuttle Airlock" }, /turf/open/floor/plating, @@ -300,13 +289,13 @@ pixel_x = 0; pixel_y = -30 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "aX" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Emergency Shuttle Cargo" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "aY" = ( /obj/machinery/status_display, @@ -319,7 +308,7 @@ /obj/machinery/door/airlock/glass{ name = "Emergency Shuttle Infirmary" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "ba" = ( /turf/closed/wall/shuttle{ @@ -328,21 +317,21 @@ }, /area/shuttle/escape) "bb" = ( -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/shuttle/escape) "bc" = ( /obj/structure/extinguisher_cabinet{ pixel_x = 27; pixel_y = 0 }, -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/shuttle/escape) "bd" = ( /obj/machinery/sleeper{ icon_state = "sleeper-open"; dir = 8 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "be" = ( /obj/structure/table, @@ -356,15 +345,15 @@ pixel_x = 27; pixel_y = 0 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "bf" = ( /obj/structure/closet, -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/shuttle/escape) "bg" = ( /obj/structure/closet/crate, -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/shuttle/escape) "bh" = ( /turf/closed/wall/shuttle{ @@ -380,10 +369,7 @@ /turf/open/floor/plating/airless, /area/shuttle/escape) "bj" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s9"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/shuttle/escape) "bk" = ( /obj/structure/shuttle/engine/propulsion, @@ -395,11 +381,11 @@ aa aa aa aa -ab +ak ak ak aI -aN +ak aP ak ac @@ -407,23 +393,23 @@ ac ac ak aV -aN +ak aV ak ak -bh +ak aa "} (2,1,1) = {" aa -ab ak ak -av +ak +ak aA aF aG -aw +ak an aL aL @@ -431,23 +417,23 @@ aL aL aL an -aw +ak bb bb bf -ax -bh +ak +ak "} (3,1,1) = {" -ab +ak ae al aq -aw +ak aA aG aJ -aw +ak aQ an an @@ -455,7 +441,7 @@ an an an aW -aw +ak bb bb bf @@ -467,11 +453,11 @@ ac af am ar -aw +ak aA aG aJ -aw +ak an aS aS @@ -491,11 +477,11 @@ ac ag an as -ax +ak ac aH ac -aO +bj an aT aT @@ -503,7 +489,7 @@ aT aT aT an -aw +ak bc bb bg @@ -515,7 +501,7 @@ ac ah an at -aw +ak aB an aK @@ -527,7 +513,7 @@ an an an an -aY +az ak ak ak @@ -583,11 +569,11 @@ bi bk "} (9,1,1) = {" -ad -aj +ak +ae ap au -aw +ak aD an an @@ -608,10 +594,10 @@ bk "} (10,1,1) = {" aa -ad ak ak -av +ak +ak aE aC aC @@ -627,15 +613,15 @@ ac bd be bd -ax -bj +ak +ak "} (11,1,1) = {" aa aa aa aa -ad +ak ac ak ac @@ -647,10 +633,10 @@ ac ac ak ak -ba +ak ac ak ac -bj +ak aa "} diff --git a/_maps/shuttles/emergency_clown.dmm b/_maps/shuttles/emergency_clown.dmm index ceccd98c98..05f2b9929c 100644 --- a/_maps/shuttles/emergency_clown.dmm +++ b/_maps/shuttles/emergency_clown.dmm @@ -1,46 +1,35 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"aa" = ( +"a" = ( /turf/open/space, /area/space) -"ab" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s6"; - dir = 2 - }, +"b" = ( +/turf/closed/wall/mineral/titanium, /area/shuttle/escape) -"ac" = ( +"c" = ( /obj/structure/grille, /obj/structure/window/shuttle, /turf/open/floor/plating, /area/shuttle/escape) -"ad" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s10"; - dir = 2 - }, +"d" = ( +/turf/open/floor/mineral/titanium, +/turf/closed/wall/mineral/titanium/interior, /area/shuttle/escape) -"ae" = ( -/turf/open/floor/plasteel/shuttle/white, -/turf/closed/wall/shuttle/interior{ - icon_state = "swall_f9" - }, -/area/shuttle/escape) -"af" = ( +"e" = ( /obj/structure/table, /obj/item/weapon/storage/firstaid/fire, /turf/open/floor/noslip, /area/shuttle/escape) -"ag" = ( +"f" = ( /obj/structure/chair{ dir = 1 }, /turf/open/floor/bluespace, /area/shuttle/escape) -"ah" = ( +"g" = ( /obj/machinery/computer/emergency_shuttle, /turf/open/floor/bluespace, /area/shuttle/escape) -"ai" = ( +"h" = ( /obj/structure/table, /obj/item/weapon/storage/firstaid/regular{ pixel_x = 2; @@ -49,47 +38,35 @@ /obj/item/weapon/crowbar, /turf/open/floor/noslip, /area/shuttle/escape) -"aj" = ( -/turf/open/floor/plasteel/shuttle/white, -/turf/closed/wall/shuttle/interior{ - icon_state = "swall_f5" - }, -/area/shuttle/escape) -"ak" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall3"; - dir = 2 - }, -/area/shuttle/escape) -"al" = ( +"i" = ( /obj/machinery/computer/atmos_alert, /turf/open/floor/noslip, /area/shuttle/escape) -"am" = ( +"j" = ( /obj/structure/chair{ dir = 8 }, /turf/open/floor/bluespace, /area/shuttle/escape) -"an" = ( +"k" = ( /obj/item/toy/snappop/phoenix, /turf/open/floor/bluespace, /area/shuttle/escape) -"ao" = ( +"l" = ( /obj/structure/chair{ dir = 4 }, /turf/open/floor/bluespace, /area/shuttle/escape) -"ap" = ( +"m" = ( /obj/machinery/computer/security, /turf/open/floor/noslip, /area/shuttle/escape) -"aq" = ( +"n" = ( /obj/machinery/computer/crew, /turf/open/floor/noslip, /area/shuttle/escape) -"ar" = ( +"o" = ( /obj/structure/chair{ dir = 8 }, @@ -99,7 +76,7 @@ }, /turf/open/floor/bluespace, /area/shuttle/escape) -"as" = ( +"p" = ( /obj/item/device/radio/intercom{ name = "Station Intercom (General)"; pixel_x = 0; @@ -108,54 +85,33 @@ /obj/item/toy/snappop/phoenix, /turf/open/floor/bluespace, /area/shuttle/escape) -"at" = ( +"q" = ( /obj/machinery/computer/communications, /turf/open/floor/noslip, /area/shuttle/escape) -"au" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall13"; - dir = 2 - }, -/area/shuttle/escape) -"av" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall12"; - dir = 2 - }, -/area/shuttle/escape) -"aw" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall14"; - dir = 2 - }, -/area/shuttle/escape) -"ax" = ( +"r" = ( /obj/machinery/door/airlock/glass{ name = "Emergency Shuttle Premium Lounge"; req_access_txt = "0" }, /turf/open/floor/bluespace, /area/shuttle/escape) -"ay" = ( +"s" = ( /obj/machinery/status_display, -/turf/closed/wall/shuttle{ - icon_state = "swall12"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/escape) -"az" = ( +"t" = ( /turf/open/chasm/straight_down/lava_land_surface/normal_air, /area/shuttle/escape) -"aA" = ( +"u" = ( /turf/open/floor/noslip, /area/shuttle/escape) -"aB" = ( +"v" = ( /obj/structure/closet/emcloset, /obj/item/toy/sword, /turf/open/floor/noslip, /area/shuttle/escape) -"aC" = ( +"w" = ( /obj/structure/table, /obj/item/weapon/storage/firstaid/fire, /obj/item/weapon/storage/firstaid/regular{ @@ -165,53 +121,44 @@ /obj/item/weapon/crowbar, /turf/open/floor/noslip, /area/shuttle/escape) -"aD" = ( +"x" = ( /obj/item/weapon/greentext/quiet{ anchored = 1 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) -"aE" = ( +"y" = ( /obj/machinery/door/airlock/glass{ name = "Emergency Shuttle Greentext"; req_access_txt = "0" }, /turf/open/floor/bluespace, /area/shuttle/escape) -"aF" = ( +"z" = ( /obj/structure/chair, /turf/open/floor/noslip, /area/shuttle/escape) -"aG" = ( +"A" = ( /obj/structure/chair{ dir = 4 }, /turf/open/floor/noslip, /area/shuttle/escape) -"aH" = ( +"B" = ( /obj/structure/table, /obj/item/device/multitool/ai_detect, /turf/open/floor/noslip, /area/shuttle/escape) -"aI" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall7"; - dir = 2 - }, +"C" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, /area/shuttle/escape) -"aJ" = ( -/turf/closed/wall/shuttle{ - icon_state = "swallc4"; - dir = 2 - }, -/area/shuttle/escape) -"aK" = ( +"D" = ( /obj/structure/table, /obj/item/toy/sword, /turf/open/floor/noslip, /area/shuttle/escape) -"aL" = ( -/obj/machinery/door/airlock/shuttle{ +"E" = ( +/obj/machinery/door/airlock/titanium{ name = "Emergency Shuttle Airlock" }, /obj/docking_port/mobile/emergency{ @@ -220,7 +167,7 @@ }, /turf/open/floor/plating, /area/shuttle/escape) -"aM" = ( +"F" = ( /obj/structure/extinguisher_cabinet{ pixel_x = -5; pixel_y = 30 @@ -228,7 +175,7 @@ /obj/item/toy/snappop/phoenix, /turf/open/floor/bluespace, /area/shuttle/escape) -"aN" = ( +"G" = ( /obj/structure/extinguisher_cabinet{ pixel_x = 27; pixel_y = 0 @@ -236,12 +183,12 @@ /obj/item/toy/snappop/phoenix, /turf/open/floor/bluespace, /area/shuttle/escape) -"aO" = ( +"H" = ( /obj/structure/bed, /obj/item/weapon/bedsheet/random, /turf/open/floor/noslip, /area/shuttle/escape) -"aP" = ( +"I" = ( /obj/structure/window/reinforced{ dir = 4 }, @@ -249,7 +196,7 @@ /obj/item/weapon/bedsheet/random, /turf/open/floor/noslip, /area/shuttle/escape) -"aQ" = ( +"J" = ( /obj/structure/window/reinforced{ dir = 8 }, @@ -257,7 +204,7 @@ /obj/item/weapon/bedsheet/random, /turf/open/floor/noslip, /area/shuttle/escape) -"aR" = ( +"K" = ( /obj/structure/bed, /obj/item/weapon/bedsheet/random, /obj/structure/window/reinforced{ @@ -265,13 +212,13 @@ }, /turf/open/floor/noslip, /area/shuttle/escape) -"aS" = ( -/obj/machinery/door/airlock/shuttle{ +"L" = ( +/obj/machinery/door/airlock/titanium{ name = "Emergency Shuttle Airlock" }, /turf/open/floor/plating, /area/shuttle/escape) -"aT" = ( +"M" = ( /obj/structure/extinguisher_cabinet{ pixel_x = 0; pixel_y = -30 @@ -279,53 +226,36 @@ /obj/item/toy/snappop/phoenix, /turf/open/floor/bluespace, /area/shuttle/escape) -"aU" = ( -/obj/item/toy/snappop/phoenix, -/turf/open/floor/bluespace, -/area/shuttle/escape) -"aV" = ( -/obj/machinery/door/airlock/shuttle{ +"N" = ( +/obj/machinery/door/airlock/titanium{ name = "Emergency Shuttle Cargo" }, /turf/open/floor/bluespace, /area/shuttle/escape) -"aW" = ( -/obj/machinery/status_display, -/turf/closed/wall/shuttle{ - icon_state = "swall14"; - dir = 2 - }, -/area/shuttle/escape) -"aX" = ( +"O" = ( /obj/machinery/door/airlock/glass{ name = "Emergency Shuttle Infirmary" }, /turf/open/floor/bluespace, /area/shuttle/escape) -"aY" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall11"; - dir = 2 - }, -/area/shuttle/escape) -"aZ" = ( +"P" = ( /turf/open/floor/mineral/bananium, /area/shuttle/escape) -"ba" = ( +"Q" = ( /obj/structure/extinguisher_cabinet{ pixel_x = 27; pixel_y = 0 }, /turf/open/floor/mineral/bananium, /area/shuttle/escape) -"bb" = ( +"R" = ( /obj/machinery/sleeper{ icon_state = "sleeper-open"; dir = 8 }, /turf/open/floor/noslip, /area/shuttle/escape) -"bc" = ( +"S" = ( /obj/structure/table, /obj/item/weapon/storage/firstaid/fire, /obj/item/weapon/storage/firstaid/regular{ @@ -339,311 +269,299 @@ }, /turf/open/floor/noslip, /area/shuttle/escape) -"bd" = ( +"T" = ( /obj/structure/closet/crate/trashcart{ desc = "A heavy, metal trashcart with wheels. Feel free to hop in at any time!" }, /obj/item/toy/sword, /turf/open/floor/mineral/bananium, /area/shuttle/escape) -"be" = ( +"U" = ( /obj/machinery/vending/autodrobe{ extended_inventory = 1; scan_id = 0 }, /turf/open/floor/mineral/bananium, /area/shuttle/escape) -"bf" = ( +"V" = ( /obj/machinery/vending/clothing{ extended_inventory = 1 }, /turf/open/floor/mineral/bananium, /area/shuttle/escape) -"bg" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s5"; - dir = 2 - }, -/area/shuttle/escape) -"bh" = ( +"W" = ( /obj/structure/window/reinforced{ dir = 1 }, /obj/structure/shuttle/engine/heater, /turf/open/floor/plating/airless, /area/shuttle/escape) -"bi" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s9"; - dir = 2 - }, -/area/shuttle/escape) -"bj" = ( +"X" = ( /obj/structure/shuttle/engine/propulsion, /turf/open/floor/plating/airless, /area/shuttle/escape) (1,1,1) = {" -aa -aa -aa -aa -ab -ak -ak -ak -aI -aL -ak -ac -ac -ac -ak -aS -aI -aS -ak -ak -bg -aa +a +a +a +a +b +b +b +b +b +E +b +c +c +c +b +L +b +L +b +b +b +a "} (2,1,1) = {" -aa -ab -ak -ak -au -az -az -az -av -an -aO -aO -aO -aO -aO -an -av -aZ -aZ -bd -aw -bg +a +b +b +b +b +t +t +t +b +k +H +H +H +H +H +k +b +P +P +T +b +b "} (3,1,1) = {" -ab -ae -al -aq -av -az -aD -az -av -aM -an -an -an -an -an -aT -av -aZ -aZ -bd -bh -bj +b +d +i +n +b +t +x +t +b +F +k +k +k +k +k +M +b +P +P +T +W +X "} (4,1,1) = {" -ac -af -am -ar -av -az -az -az -av -an -aP -aP -aP -aP -aP -an -aV -aZ -aZ -be -bh -bj +c +e +j +o +b +t +t +t +b +k +I +I +I +I +I +k +N +P +P +U +W +X "} (5,1,1) = {" -ac -ag -an -as -aw -ac -aE -ac -aJ -an -aQ -aQ -aQ -aQ -aQ -an -av -ba -aZ -bf -bh -bj +c +f +k +p +b +c +y +c +C +k +J +J +J +J +J +k +b +Q +P +V +W +X "} (6,1,1) = {" -ac -ah -an -an -av -aA -an -aF -aK -an -an -an -an -an -an -an -aW -ak -ak -ak -bh -bj +c +g +k +k +b +u +k +z +D +k +k +k +k +k +k +k +s +b +b +b +W +X "} (7,1,1) = {" -ac -ag -an -an -ax -an -an -aG -aK -an -aP -aP -aP -aP -aP -an -ac -aB -aA -aB -bh -bj +c +f +k +k +r +k +k +A +D +k +I +I +I +I +I +k +c +v +u +v +W +X "} (8,1,1) = {" -ac -ai -ao -ao -ay -aA -an -aH -aK -an -aR -aQ -aQ -aQ -aQ -an -aX -aA -aA -aA -bh -bj +c +h +l +l +s +u +k +B +D +k +K +J +J +J +J +k +O +u +u +u +W +X "} (9,1,1) = {" -ad -aj -ap -at -av -aB -an -an -an -an -an -an -an -an -an -aU -ac -aA -aA -aA -bh -bj +b +d +m +q +b +v +k +k +k +k +k +k +k +k +k +k +c +u +u +u +W +X "} (10,1,1) = {" -aa -ad -ak -ak -au -aC -aA -aA -aA -aN -aO -aO -aO -aO -aO -aN -ac -bb -bc -bb -aw -bi +a +b +b +b +b +w +u +u +u +G +H +H +H +H +H +G +c +R +S +R +b +b "} (11,1,1) = {" -aa -aa -aa -aa -ad -ac -ak -ac -ak -ak -ak -ac -ac -ac -ak -ak -aY -ac -ak -ac -bi -aa +a +a +a +a +b +c +b +c +b +b +b +c +c +c +b +b +b +c +b +c +b +a "} diff --git a/_maps/shuttles/emergency_cramped.dmm b/_maps/shuttles/emergency_cramped.dmm index 140156dc68..0ae834c1dc 100644 --- a/_maps/shuttles/emergency_cramped.dmm +++ b/_maps/shuttles/emergency_cramped.dmm @@ -1,6 +1,6 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "a" = ( -/turf/closed/wall/shuttle/smooth, +/turf/closed/wall/mineral/titanium, /area/shuttle/escape) "b" = ( /obj/structure/grille, @@ -8,7 +8,7 @@ /turf/open/floor/plating, /area/shuttle/escape) "c" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Emergency Shuttle Airlock"; req_access_txt = "2" }, @@ -51,12 +51,10 @@ /area/shuttle/escape) "j" = ( /obj/machinery/status_display, -/turf/closed/wall/shuttle{ - icon_state = "swall3" - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/escape) "k" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Emergency Shuttle Airlock" }, /obj/docking_port/mobile/emergency{ @@ -94,7 +92,7 @@ /turf/open/floor/plasteel/bot, /area/shuttle/escape) "q" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Emergency Shuttle Airlock" }, /turf/open/floor/plating, @@ -121,64 +119,25 @@ /turf/open/floor/plating/airless, /area/shuttle/escape) "u" = ( -/turf/open/space, -/area/space) -"v" = ( /obj/structure/shuttle/engine/propulsion, /turf/open/floor/plating/airless, /area/shuttle/escape) -"w" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s6"; - dir = 2 - }, -/area/shuttle/escape) -"x" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s10"; - dir = 2 - }, -/area/shuttle/escape) -"y" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall3" - }, -/area/shuttle/escape) -"z" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall2"; - dir = 2 - }, -/area/shuttle/escape) -"A" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall1"; - dir = 2 - }, -/area/shuttle/escape) -"B" = ( -/turf/closed/wall/shuttle{ - tag = "icon-wall3 (WEST)"; - icon_state = "wall3"; - dir = 8 - }, -/area/shuttle/escape) (1,1,1) = {" -w +a c a k -z +a b b b -A +a q a q -B -u +a +a "} (2,1,1) = {" b @@ -194,7 +153,7 @@ l s l t -v +u "} (3,1,1) = {" b @@ -210,7 +169,7 @@ l l l t -v +u "} (4,1,1) = {" b @@ -226,21 +185,21 @@ r r m t -v -"} -(5,1,1) = {" -x -y -j -y -y -b -b -b -y -y -y -A -B u "} +(5,1,1) = {" +a +a +j +a +a +b +b +b +a +a +a +a +a +a +"} diff --git a/_maps/shuttles/emergency_delta.dmm b/_maps/shuttles/emergency_delta.dmm new file mode 100644 index 0000000000..a1a7fd709a --- /dev/null +++ b/_maps/shuttles/emergency_delta.dmm @@ -0,0 +1,160 @@ +"aa" = (/turf/open/space,/area/space) +"ab" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion (NORTH)"; icon_state = "propulsion"; dir = 1},/turf/open/floor/plating/warnplate{dir = 1},/area/shuttle/escape) +"ac" = (/turf/closed/wall/mineral/plastitanium,/area/shuttle/escape) +"ad" = (/obj/structure/window/reinforced,/obj/structure/shuttle/engine/heater{tag = "icon-heater (NORTH)"; icon_state = "heater"; dir = 1},/turf/open/floor/plating/warnplate{dir = 1},/area/shuttle/escape) +"ae" = (/turf/closed/wall/mineral/titanium/nodiagonal,/area/shuttle/escape) +"af" = (/turf/closed/wall/mineral/titanium,/area/shuttle/escape) +"ag" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/open/floor/plating,/area/shuttle/escape) +"ah" = (/obj/item/clothing/suit/hazardvest{desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; name = "emergency lifejacket"},/obj/item/clothing/suit/hazardvest{desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; name = "emergency lifejacket"},/obj/item/clothing/suit/hazardvest{desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; name = "emergency lifejacket"},/obj/item/clothing/suit/hazardvest{desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; name = "emergency lifejacket"},/obj/item/clothing/suit/hazardvest{desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; name = "emergency lifejacket"},/obj/item/weapon/tank/internals/emergency_oxygen/double{pixel_x = 3},/obj/item/weapon/tank/internals/emergency_oxygen/double{pixel_x = 3},/obj/item/weapon/tank/internals/emergency_oxygen/double{pixel_x = 3},/obj/item/weapon/tank/internals/emergency_oxygen/double{pixel_x = 3},/obj/item/weapon/tank/internals/emergency_oxygen/double{pixel_x = 3},/obj/item/clothing/mask/breath{pixel_x = -3; pixel_y = -3},/obj/item/clothing/mask/breath{pixel_x = -3; pixel_y = -3},/obj/item/clothing/mask/breath{pixel_x = -3; pixel_y = -3},/obj/item/clothing/mask/breath{pixel_x = -3; pixel_y = -3},/obj/item/clothing/mask/breath{pixel_x = -3; pixel_y = -3},/obj/item/clothing/head/hardhat/orange{name = "protective hat"; pixel_y = 9},/obj/item/clothing/head/hardhat/orange{name = "protective hat"; pixel_y = 9},/obj/item/clothing/head/hardhat/orange{name = "protective hat"; pixel_y = 9},/obj/item/clothing/head/hardhat/orange{name = "protective hat"; pixel_y = 9},/obj/item/clothing/head/hardhat/orange{name = "protective hat"; pixel_y = 9},/obj/structure/closet/crate/internals,/turf/open/floor/plasteel/bot,/area/shuttle/escape) +"ai" = (/turf/open/floor/plasteel/neutral/side{dir = 1},/area/shuttle/escape) +"aj" = (/obj/item/weapon/defibrillator/loaded,/obj/structure/table/reinforced,/turf/open/floor/plasteel/cmo,/area/shuttle/escape) +"ak" = (/obj/machinery/computer/operating,/turf/open/floor/plasteel/cmo,/area/shuttle/escape) +"al" = (/obj/structure/table/optable,/obj/item/weapon/surgical_drapes,/turf/open/floor/plasteel/cmo,/area/shuttle/escape) +"am" = (/obj/item/weapon/scalpel{pixel_y = 12},/obj/item/weapon/circular_saw,/obj/item/weapon/retractor{pixel_x = 4},/obj/item/weapon/hemostat{pixel_x = -4},/obj/item/clothing/gloves/color/latex,/obj/item/clothing/mask/surgical,/obj/structure/table/reinforced,/turf/open/floor/plasteel/cmo,/area/shuttle/escape) +"an" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-21"; layer = 4.1; pixel_x = -3; pixel_y = 3},/turf/open/floor/plasteel/neutral/side{dir = 8; heat_capacity = 1e+006},/area/shuttle/escape) +"ao" = (/turf/open/floor/plasteel/neutral,/area/shuttle/escape) +"ap" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-21"; layer = 4.1; pixel_x = -3; pixel_y = 3},/turf/open/floor/plasteel/neutral/side{dir = 4},/area/shuttle/escape) +"aq" = (/obj/machinery/status_display,/turf/closed/wall/mineral/titanium,/area/shuttle/escape) +"ar" = (/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{pixel_x = 6; pixel_y = 0},/obj/item/weapon/reagent_containers/glass/bottle/charcoal{pixel_x = -3},/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{pixel_x = -3; pixel_y = 8},/obj/item/weapon/reagent_containers/glass/bottle/charcoal{pixel_x = 6; pixel_y = 8},/obj/item/weapon/reagent_containers/syringe/epinephrine{pixel_x = 3; pixel_y = -2},/obj/item/weapon/reagent_containers/syringe/epinephrine{pixel_x = 4; pixel_y = 1},/obj/item/weapon/reagent_containers/syringe/epinephrine{pixel_x = -2; pixel_y = 5},/obj/item/weapon/reagent_containers/syringe/epinephrine{pixel_x = 2; pixel_y = 8},/obj/structure/table/reinforced,/turf/open/floor/plasteel/cmo,/area/shuttle/escape) +"as" = (/obj/structure/chair/office/light{dir = 1},/turf/open/floor/plasteel/cmo,/area/shuttle/escape) +"at" = (/obj/item/device/radio/intercom{name = "Station Intercom"; pixel_x = 26; pixel_y = 58},/turf/open/floor/plasteel/cmo,/area/shuttle/escape) +"au" = (/obj/structure/sink{dir = 4; pixel_x = 11},/turf/open/floor/plasteel/cmo,/area/shuttle/escape) +"av" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/bot,/area/shuttle/escape) +"aw" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/bot,/area/shuttle/escape) +"ax" = (/obj/structure/flora/ausbushes/grassybush,/obj/structure/flora/ausbushes/lavendergrass,/obj/structure/flora/ausbushes/brflowers,/obj/structure/flora/ausbushes/leafybush,/obj/structure/window/shuttle,/turf/open/floor/grass,/area/shuttle/escape) +"ay" = (/obj/machinery/computer/med_data,/turf/open/floor/plasteel/whiteblue/side{dir = 1},/area/shuttle/escape) +"az" = (/obj/structure/chair/office/light{dir = 8},/turf/open/floor/plasteel/whiteblue/side{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/shuttle/escape) +"aA" = (/turf/open/floor/plasteel/whiteblue/side{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/shuttle/escape) +"aB" = (/obj/item/weapon/storage/firstaid/toxin,/obj/item/weapon/storage/firstaid/o2{pixel_x = 3; pixel_y = 3},/obj/structure/table/reinforced,/turf/open/floor/plasteel/whiteblue/side{dir = 5},/area/shuttle/escape) +"aC" = (/obj/machinery/ai_status_display,/turf/closed/wall/shuttle/smooth/nodiagonal,/area/shuttle/escape) +"aD" = (/obj/machinery/status_display,/turf/closed/wall/shuttle/smooth/nodiagonal,/area/shuttle/escape) +"aE" = (/turf/open/floor/plasteel/delivery,/area/shuttle/escape) +"aF" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Escape Shuttle Infirmary"; req_access_txt = "0"},/turf/open/floor/plasteel/warning/side,/area/shuttle/escape) +"aG" = (/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/structure/table/reinforced,/turf/open/floor/plasteel/whiteblue/side{dir = 4},/area/shuttle/escape) +"aH" = (/obj/structure/chair{dir = 4},/obj/item/device/radio/intercom{name = "Station Intercom"; pixel_x = -26; pixel_y = 0},/turf/open/floor/plasteel/bot,/area/shuttle/escape) +"aI" = (/obj/structure/flora/ausbushes/grassybush,/obj/structure/flora/ausbushes/lavendergrass,/obj/structure/flora/ausbushes/ywflowers,/obj/structure/flora/ausbushes/genericbush,/obj/structure/window/shuttle,/turf/open/floor/grass,/area/shuttle/escape) +"aJ" = (/obj/machinery/shower{dir = 8; icon_state = "shower"; name = "emergency shower"},/turf/open/floor/plasteel/whiteblue/side{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 4; tag = "icon-whiteblue (EAST)"},/area/shuttle/escape) +"aK" = (/obj/structure/extinguisher_cabinet,/turf/closed/wall/shuttle/smooth/nodiagonal,/area/shuttle/escape) +"aL" = (/obj/structure/bed/roller,/obj/machinery/iv_drip,/turf/open/floor/plasteel/whiteblue/side,/area/shuttle/escape) +"aM" = (/turf/open/floor/plasteel/whiteblue/side,/area/shuttle/escape) +"aN" = (/obj/structure/bed/roller,/obj/machinery/iv_drip,/obj/structure/extinguisher_cabinet{pixel_x = 26},/turf/open/floor/plasteel/whiteblue/side{dir = 6},/area/shuttle/escape) +"aO" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"; req_access_txt = "0"},/turf/open/floor/plasteel/warnwhite/side,/area/shuttle/escape) +"aP" = (/obj/structure/sign/bluecross_2,/turf/closed/wall/mineral/titanium,/area/shuttle/escape) +"aQ" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 4},/turf/open/floor/plasteel/cmo,/area/shuttle/escape) +"aR" = (/turf/open/floor/plasteel/cmo,/area/shuttle/escape) +"aS" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 8},/turf/open/floor/plasteel/cmo,/area/shuttle/escape) +"aT" = (/obj/structure/sign/nanotrasen,/turf/closed/wall/mineral/titanium,/area/shuttle/escape) +"aU" = (/turf/open/floor/plasteel/bot,/area/shuttle/escape) +"aV" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Escape Shuttle Infirmary"; req_access_txt = "0"},/turf/open/floor/plasteel/warning/side{tag = "icon-plasteel_warn_side (EAST)"; icon_state = "plasteel_warn_side"; dir = 4},/area/shuttle/escape) +"aW" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/obj/docking_port/mobile/emergency{dheight = 0; dwidth = 11; height = 18; name = "Delta emergency shuttle"; timid = 1; width = 30},/turf/open/floor/plating,/area/shuttle/escape) +"aX" = (/obj/structure/flora/ausbushes/grassybush,/obj/structure/flora/ausbushes/lavendergrass,/obj/structure/flora/ausbushes/ppflowers,/obj/structure/flora/ausbushes/sunnybush,/obj/structure/window/shuttle,/turf/open/floor/grass,/area/shuttle/escape) +"aY" = (/obj/structure/extinguisher_cabinet{pixel_x = -26},/obj/machinery/shieldgen,/turf/open/floor/plasteel/bot,/area/shuttle/escape) +"aZ" = (/obj/structure/rack,/obj/item/weapon/storage/toolbox/electrical{pixel_x = -3; pixel_y = 1},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = 0; pixel_y = -1},/obj/item/weapon/storage/toolbox/emergency{pixel_x = 3; pixel_y = -5},/turf/open/floor/plasteel/bot,/area/shuttle/escape) +"ba" = (/obj/structure/reagent_dispensers/fueltank,/obj/item/device/radio/intercom{name = "Station Intercom"; pixel_x = -26; pixel_y = 0},/turf/open/floor/plasteel/bot,/area/shuttle/escape) +"bb" = (/turf/open/floor/plasteel/warning{dir = 9},/area/shuttle/escape) +"bc" = (/turf/open/floor/plasteel/warning{dir = 5},/area/shuttle/escape) +"bd" = (/obj/structure/closet/crate/medical{name = "medical crate"},/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/firstaid/o2{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/toxin{pixel_x = -4; pixel_y = 3},/obj/item/device/healthanalyzer{pixel_x = 3; pixel_y = 3},/obj/item/weapon/lazarus_injector,/mob/living/simple_animal/bot/medbot{name = "\improper emergency medibot"; pixel_x = -3; pixel_y = 2},/turf/open/floor/plasteel/bot,/area/shuttle/escape) +"be" = (/obj/structure/flora/ausbushes/grassybush,/obj/structure/flora/ausbushes/lavendergrass,/obj/structure/flora/ausbushes/ywflowers,/obj/structure/flora/ausbushes/fernybush,/obj/structure/window/shuttle,/turf/open/floor/grass,/area/shuttle/escape) +"bf" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plasteel/bot,/area/shuttle/escape) +"bg" = (/turf/open/floor/plasteel/warning{dir = 8},/area/shuttle/escape) +"bh" = (/turf/open/floor/plasteel/warning{dir = 4},/area/shuttle/escape) +"bi" = (/obj/structure/closet/crate{name = "emergency supplies crate"},/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/storage/toolbox/emergency,/obj/item/device/flashlight/flare{pixel_x = 3; pixel_y = 3},/obj/item/device/flashlight/flare{pixel_x = -6; pixel_y = -2},/obj/item/weapon/crowbar,/obj/item/weapon/wrench,/obj/item/device/radio,/turf/open/floor/plasteel/bot,/area/shuttle/escape) +"bj" = (/obj/machinery/vending/wallmed{name = "Emergency NanoMed"; pixel_x = 0; pixel_y = 0; req_access_txt = "0"; use_power = 0},/turf/closed/wall/shuttle/smooth/nodiagonal,/area/shuttle/escape) +"bk" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Cargo"},/turf/open/floor/plasteel/warning/side,/area/shuttle/escape) +"bl" = (/obj/structure/rack,/obj/item/clothing/suit/fire/firefighter,/obj/item/weapon/tank/internals/oxygen/red,/obj/item/clothing/mask/gas,/obj/item/clothing/head/hardhat/red,/turf/open/floor/plasteel/bot,/area/shuttle/escape) +"bm" = (/turf/open/floor/plasteel/warning{dir = 10},/area/shuttle/escape) +"bn" = (/turf/open/floor/plasteel/warning{dir = 6},/area/shuttle/escape) +"bo" = (/turf/open/floor/plasteel/neutral/side,/area/shuttle/escape) +"bp" = (/obj/machinery/flasher{id = "shuttleflash"; pixel_y = -26},/turf/open/floor/plasteel/neutral/side,/area/shuttle/escape) +"bq" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/folder/yellow,/obj/item/weapon/pen,/obj/item/hand_labeler_refill,/turf/open/floor/plasteel/bot,/area/shuttle/escape) +"br" = (/obj/machinery/recharge_station,/turf/open/floor/plasteel/delivery,/area/shuttle/escape) +"bs" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high,/turf/open/floor/plasteel/bot,/area/shuttle/escape) +"bt" = (/obj/machinery/door/airlock/glass_security{name = "Holding Area"; req_access_txt = "2"},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) +"bu" = (/obj/machinery/door/airlock/glass_command{name = "Cockpit"; req_access_txt = "19"},/turf/open/floor/plasteel/warning/side{tag = "icon-plasteel_warn_side (EAST)"; icon_state = "plasteel_warn_side"; dir = 4},/area/shuttle/escape) +"bv" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"; req_access_txt = "2"},/turf/open/floor/plasteel/warnwhite/side,/area/shuttle/escape) +"bw" = (/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) +"bx" = (/obj/structure/chair,/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) +"by" = (/obj/structure/table/reinforced,/obj/machinery/recharger,/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) +"bz" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-21"; layer = 4.1},/obj/machinery/button/flasher{id = "shuttleflash"; pixel_x = -26; pixel_y = 24},/turf/open/floor/plasteel/red/corner{dir = 1},/area/shuttle/escape) +"bA" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-21"; layer = 4.1},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/shuttle/escape) +"bB" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/toy/figure/ninja,/turf/open/floor/plasteel/bot,/area/shuttle/escape) +"bC" = (/obj/structure/chair,/turf/open/floor/plasteel/bot,/area/shuttle/escape) +"bD" = (/obj/structure/chair,/obj/machinery/status_display{pixel_y = 32},/turf/open/floor/plasteel/bot,/area/shuttle/escape) +"bE" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) +"bF" = (/turf/open/floor/plasteel/red/corner{dir = 1},/area/shuttle/escape) +"bG" = (/obj/structure/extinguisher_cabinet{pixel_x = 26},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/shuttle/escape) +"bH" = (/turf/open/floor/plasteel,/area/shuttle/escape) +"bI" = (/turf/open/floor/plasteel/neutral/corner,/area/shuttle/escape) +"bJ" = (/obj/item/device/radio/intercom{name = "Station Intercom"; pixel_x = 0; pixel_y = 58},/turf/open/floor/plasteel/neutral/side,/area/shuttle/escape) +"bK" = (/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/shuttle/escape) +"bL" = (/obj/machinery/door/airlock/external{name = "Emergency Recovery Airlock"},/turf/open/floor/plasteel/warning/side,/area/shuttle/escape) +"bM" = (/obj/structure/chair{dir = 4},/obj/machinery/status_display{pixel_x = -32},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) +"bN" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) +"bO" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/lockbox/loyalty,/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) +"bP" = (/obj/structure/table/reinforced,/obj/machinery/recharger,/turf/open/floor/plasteel/red/corner{dir = 8},/area/shuttle/escape) +"bQ" = (/obj/structure/fireaxecabinet{pixel_x = 32},/turf/open/floor/plasteel/neutral/corner,/area/shuttle/escape) +"bR" = (/obj/machinery/door/airlock/external{name = "Emergency Recovery Airlock"},/turf/open/floor/plasteel/warning/side{tag = "icon-plasteel_warn_side (EAST)"; icon_state = "plasteel_warn_side"; dir = 4},/area/shuttle/escape) +"bS" = (/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/shuttle/escape) +"bT" = (/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/shuttle/escape) +"bU" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) +"bV" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/zipties,/obj/item/device/radio/intercom{name = "Station Intercom"; pixel_x = 0; pixel_y = -26},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) +"bW" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/turf/open/floor/plasteel/red/corner{dir = 8},/area/shuttle/escape) +"bX" = (/turf/open/floor/plasteel/blue/side,/area/shuttle/escape) +"bY" = (/obj/machinery/door/airlock/command{name = "Emergency Recovery Airlock"; req_access = null; req_access_txt = "19"},/turf/open/floor/plasteel/warning/side{tag = "icon-plasteel_warn_side (NORTH)"; icon_state = "plasteel_warn_side"; dir = 1},/area/shuttle/escape) +"bZ" = (/obj/machinery/suit_storage_unit/standard_unit,/turf/open/floor/plasteel/delivery,/area/shuttle/escape) +"ca" = (/obj/structure/table/reinforced,/obj/machinery/recharger,/turf/open/floor/plasteel/vault{dir = 4},/area/shuttle/escape) +"cb" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-21"; layer = 4.1; pixel_x = -3; pixel_y = 3},/turf/open/floor/plasteel/vault{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/shuttle/escape) +"cc" = (/turf/open/floor/plasteel/vault{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/shuttle/escape) +"cd" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/fancy/donut_box,/turf/open/floor/plasteel/vault{dir = 4},/area/shuttle/escape) +"ce" = (/obj/machinery/computer/security,/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (NORTHWEST)"; icon_state = "darkred"; dir = 9},/area/shuttle/escape) +"cf" = (/obj/structure/chair/office/dark{dir = 8},/turf/open/floor/plasteel/vault{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/shuttle/escape) +"cg" = (/obj/item/device/radio/intercom{name = "Station Intercom"; pixel_x = 26; pixel_y = 58},/turf/open/floor/plasteel/vault{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/shuttle/escape) +"ch" = (/obj/structure/chair/office/dark{dir = 4},/turf/open/floor/plasteel/vault{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/shuttle/escape) +"ci" = (/obj/machinery/computer/station_alert,/turf/open/floor/plasteel/darkyellow/side{tag = "icon-darkyellow (NORTHEAST)"; icon_state = "darkyellow"; dir = 5},/area/shuttle/escape) +"cj" = (/obj/machinery/computer/secure_data,/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (SOUTHWEST)"; icon_state = "darkred"; dir = 10},/area/shuttle/escape) +"ck" = (/obj/structure/chair/office/dark{dir = 8},/turf/open/floor/plasteel/vault,/area/shuttle/escape) +"cl" = (/obj/structure/chair/office/dark,/turf/open/floor/plasteel/vault,/area/shuttle/escape) +"cm" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/firstaid/regular,/turf/open/floor/plasteel/vault,/area/shuttle/escape) +"cn" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/blue,/obj/item/weapon/pen,/turf/open/floor/plasteel/vault,/area/shuttle/escape) +"co" = (/obj/structure/chair/office/dark{dir = 4},/turf/open/floor/plasteel/vault,/area/shuttle/escape) +"cp" = (/obj/machinery/computer/atmos_alert,/turf/open/floor/plasteel/darkyellow/side{tag = "icon-darkyellow (SOUTHEAST)"; icon_state = "darkyellow"; dir = 6},/area/shuttle/escape) +"cq" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/turf/open/floor/plasteel/vault{dir = 4},/area/shuttle/escape) +"cr" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/red,/obj/item/weapon/restraints/handcuffs,/obj/item/device/assembly/flash/handheld,/turf/open/floor/plasteel/vault,/area/shuttle/escape) +"cs" = (/obj/machinery/computer/crew,/turf/open/floor/plasteel/darkblue/side,/area/shuttle/escape) +"ct" = (/obj/machinery/computer/med_data,/turf/open/floor/plasteel/darkblue/side{dir = 6},/area/shuttle/escape) +"cu" = (/obj/machinery/computer/emergency_shuttle,/turf/open/floor/plasteel/darkblue/side{dir = 10},/area/shuttle/escape) +"cv" = (/obj/machinery/computer/communications,/turf/open/floor/plasteel/darkblue/side,/area/shuttle/escape) +"cw" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/toolbox/mechanical,/turf/open/floor/plasteel/vault,/area/shuttle/escape) +"cx" = (/obj/structure/table/reinforced,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high,/turf/open/floor/plasteel/vault{dir = 4},/area/shuttle/escape) + +(1,1,1) = {" +aaabababacababacababacababacabababaa +acadadadacadadacadadacadadacadadadac +aeafagagafafagafagagafagafafagagafae +afahaiaiaiaiaiaiaiaiaiahafajakalamaf +afanaoaoaoaoaoaoaoaoaoapaqarasatauag +agavaoawaxavaoawaxavaoawagayazaAaBag +agavaoawaCavaoawaDavaoaEaFaEaoaoaGag +afaHaoawaIavaoawaIavaoaEaFaEaoaoaJag +afanaoawaKavaoawaKavaoawagaLaMaMaNaf +aOaEaoawaxavaoawaxavaoawaPaQaRaRaSaf +aTaUaoaoaoaoaoaoaoaoaoawafafaVaVaPaT +aWaEaoawaXavaoawaXavaoawafaYaEaEaZaf +afanaoawaKavaoawaCavaoawafbabbbcbdag +agavaoawbeavaoawbeavaoawafbfbgbhbiag +agavaoawaDavaoawbjavaoaEbkaEbgbhaUag +agavaoawaXavaoawaXavaoaEbkaEbgbhaUag +afanaoaoaoaoaoaoaoaoaoapafblbmbnahag +aOaEbobobobobpboboboboahafbqbrbrbsaf +afafbtafagafafagbubuagafafafafafafaf +bvbwbwbxbxbyafbzaiaibAaTbBbCbDbCahag +afbEbwbwbwbwbtbFaoaobGafbHbHbIbJbKbL +afbMbwbwbNbOagbPaoaobQafbRaebSaibTbL +afbUbUbUbUbVaTbWbXbXbIbYaUafbZbZbZag +afafagafafafafaqbubuaqafafafafagafaf +aaaaaaaaafcacbcccccccccbcdafaaaaaaaa +aaaaaaaaaTcecfcccccccgchciaTaaaaaaaa +aaaaaaaaagcjckclcmcnclcocpagaaaaaaaa +aaaaaaaaafcqcrcsctcucvcwcxafaaaaaaaa +aaaaaaaaafafagagagagagagafafaaaaaaaa +"} diff --git a/_maps/shuttles/emergency_goon.dmm b/_maps/shuttles/emergency_goon.dmm index 06b874baa6..f400b86ddb 100644 --- a/_maps/shuttles/emergency_goon.dmm +++ b/_maps/shuttles/emergency_goon.dmm @@ -17,23 +17,23 @@ /turf/open/floor/plating, /area/shuttle/escape) "d" = ( -/turf/closed/wall/shuttle/smooth/nodiagonal, +/turf/closed/wall/mineral/titanium, /area/shuttle/escape) "e" = ( -/turf/closed/wall/shuttle/smooth/overspace, +/turf/closed/wall/mineral/titanium/overspace, /area/shuttle/escape) "f" = ( /obj/machinery/status_display, -/turf/closed/wall/shuttle/smooth/nodiagonal, +/turf/closed/wall/mineral/titanium, /area/shuttle/escape) "g" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Emergency Shuttle Airlock" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "h" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Emergency Shuttle Airlock" }, /obj/docking_port/mobile/emergency{ @@ -44,7 +44,7 @@ width = 19; timid = 1 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "i" = ( /turf/closed/wall/shuttle{ @@ -67,7 +67,7 @@ /area/shuttle/escape) "l" = ( /obj/machinery/vending/wallmed, -/turf/closed/wall/shuttle/smooth/nodiagonal, +/turf/closed/wall/mineral/titanium, /area/shuttle/escape) "m" = ( /obj/structure/window/shuttle, @@ -81,7 +81,7 @@ }, /area/shuttle/escape) "o" = ( -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "p" = ( /obj/structure/shuttle/engine/heater{ @@ -99,22 +99,20 @@ icon_state = "sleeper-open"; dir = 4 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "r" = ( -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "s" = ( /obj/structure/chair{ dir = 4 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "t" = ( -/turf/closed/wall/shuttle{ - tag = "icon-wall_floor"; - icon_state = "wall_floor" - }, +/turf/open/floor/mineral/titanium/blue, +/turf/closed/wall/mineral/titanium/interior, /area/shuttle/escape) "u" = ( /turf/open/space, @@ -122,13 +120,13 @@ "v" = ( /obj/structure/table, /obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "w" = ( /obj/machinery/door/airlock/glass{ name = "Emergency Shuttle Infirmary" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "x" = ( /obj/structure/window/shuttle, @@ -138,7 +136,7 @@ "y" = ( /obj/structure/table/reinforced, /obj/item/weapon/storage/toolbox/emergency, -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/shuttle/escape) "z" = ( /obj/structure/table/reinforced, @@ -151,13 +149,13 @@ dir = 4; pixel_x = 0 }, -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/shuttle/escape) "A" = ( /obj/structure/chair/comfy/brown{ dir = 4 }, -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/shuttle/escape) "B" = ( /obj/structure/window/reinforced{ @@ -168,7 +166,7 @@ dir = 1 }, /obj/structure/table/reinforced, -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/shuttle/escape) "C" = ( /turf/closed/wall/shuttle{ @@ -187,10 +185,10 @@ name = "Emergency Shuttle Cockpit"; req_access_txt = "19" }, -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/shuttle/escape) "F" = ( -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/shuttle/escape) "G" = ( /obj/machinery/computer/emergency_shuttle, @@ -198,13 +196,13 @@ dir = 4; pixel_x = 0 }, -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/shuttle/escape) "H" = ( /obj/structure/chair{ dir = 4 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) "I" = ( /obj/structure/table/reinforced, @@ -213,22 +211,22 @@ pixel_x = 0 }, /obj/structure/window/reinforced, -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/shuttle/escape) "J" = ( -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) "K" = ( /obj/machinery/door/airlock/glass{ name = "Emergency Shuttle Brig"; req_access_txt = "2" }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) "L" = ( /obj/structure/table/reinforced, /obj/item/weapon/storage/firstaid/regular, -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/shuttle/escape) "M" = ( /obj/structure/table/reinforced, @@ -238,7 +236,7 @@ dir = 4; pixel_x = 0 }, -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/shuttle/escape) "N" = ( /turf/closed/wall/shuttle{ @@ -264,7 +262,7 @@ (1,1,1) = {" a -e +d b b b @@ -272,7 +270,7 @@ d b b b -e +d a "} (2,1,1) = {" @@ -315,7 +313,7 @@ d d "} (5,1,1) = {" -e +d d d w @@ -325,7 +323,7 @@ f K d d -e +d "} (6,1,1) = {" a @@ -440,21 +438,21 @@ s o s s -O +t d a "} (15,1,1) = {" a -e +d d x d E -P +f x d -e +d a "} (16,1,1) = {" @@ -473,13 +471,13 @@ a (17,1,1) = {" a a -e +d z A A A M -e +d a a "} @@ -500,11 +498,11 @@ a a a a -e +d x x x -e +d a a a diff --git a/_maps/shuttles/emergency_imfedupwiththisworld.dmm b/_maps/shuttles/emergency_imfedupwiththisworld.dmm index aa4719f3ec..9afc23482c 100644 --- a/_maps/shuttles/emergency_imfedupwiththisworld.dmm +++ b/_maps/shuttles/emergency_imfedupwiththisworld.dmm @@ -120,7 +120,7 @@ /obj/effect/decal/cleanable/blood/drip, /obj/effect/decal/cleanable/blood/gibs, /obj/effect/mob_spawn/human/corpse, -/obj/item/weapon/gun/projectile/automatic/pistol/m1911, +/obj/item/weapon/gun/ballistic/automatic/pistol/m1911, /obj/machinery/light/small{ dir = 8 }, diff --git a/_maps/shuttles/emergency_luxury.dmm b/_maps/shuttles/emergency_luxury.dmm new file mode 100644 index 0000000000..1b1443fb26 --- /dev/null +++ b/_maps/shuttles/emergency_luxury.dmm @@ -0,0 +1,77 @@ +"aa" = (/turf/open/space,/area/space) +"ab" = (/turf/closed/indestructible/riveted/uranium,/area/shuttle/escape) +"ac" = (/obj/machinery/door/airlock/external,/turf/open/floor/plating{tag = "icon-wood-broken2"; icon_state = "wood-broken2"},/area/shuttle/escape) +"ad" = (/obj/machinery/door/airlock/gold,/obj/effect/forcefield/luxury_shuttle{name = "Ticket Booth"},/turf/open/floor/mineral/gold,/area/shuttle/escape) +"ae" = (/obj/docking_port/mobile/emergency{dir = 2; dwidth = 5; height = 14; name = "Luxury emergency shuttle"; timid = 1; width = 25},/obj/machinery/door/airlock/gold,/obj/effect/forcefield/luxury_shuttle{name = "Ticket Booth"},/turf/open/floor/mineral/gold,/area/shuttle/escape) +"af" = (/turf/open/floor/plating{tag = "icon-wood-broken3"; icon_state = "wood-broken3"},/area/shuttle/escape) +"ag" = (/turf/open/floor/plating{tag = "icon-wood"; icon_state = "wood"},/area/shuttle/escape) +"ah" = (/turf/open/floor/plating{tag = "icon-wood-broken"; icon_state = "wood-broken"},/area/shuttle/escape) +"ai" = (/turf/open/floor/plating{tag = "icon-wood-broken5"; icon_state = "wood-broken5"},/area/shuttle/escape) +"aj" = (/turf/open/floor/mineral/gold,/area/shuttle/escape) +"ak" = (/obj/item/weapon/twohanded/required/kirbyplants{tag = "icon-plant-10"; icon_state = "plant-10"},/turf/open/floor/mineral/gold,/area/shuttle/escape) +"al" = (/obj/structure/mirror{pixel_y = 32},/turf/open/floor/mineral/gold,/area/shuttle/escape) +"am" = (/turf/open/floor/plating{tag = "icon-wood-broken7"; icon_state = "wood-broken7"},/area/shuttle/escape) +"an" = (/turf/open/floor/plating{tag = "icon-wood-broken2"; icon_state = "wood-broken2"},/area/shuttle/escape) +"ao" = (/turf/open/floor/plating{tag = "icon-wood-broken6"; icon_state = "wood-broken6"},/area/shuttle/escape) +"ap" = (/obj/structure/toilet{dir = 4; icon_state = "toilet00"; tag = "icon-toilet00 (NORTH)"},/turf/open/floor/mineral/gold,/area/shuttle/escape) +"aq" = (/obj/machinery/door/airlock/gold,/turf/open/floor/mineral/gold,/area/shuttle/escape) +"ar" = (/obj/structure/shuttle/engine/propulsion{dir = 4},/turf/open/floor/plating/airless,/area/shuttle/escape) +"as" = (/obj/structure/shuttle/engine/heater{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating/airless,/area/shuttle/escape) +"at" = (/turf/open/floor/carpet,/area/shuttle/escape) +"au" = (/obj/structure/chair/comfy,/turf/open/floor/carpet,/area/shuttle/escape) +"av" = (/obj/structure/chair/comfy{tag = "icon-comfychair (EAST)"; icon_state = "comfychair"; dir = 4},/turf/open/floor/mineral/gold,/area/shuttle/escape) +"aw" = (/obj/machinery/computer/communications,/turf/open/floor/mineral/gold,/area/shuttle/escape) +"ax" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/meatballspaghetti,/turf/open/floor/carpet,/area/shuttle/escape) +"ay" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/notasandwich,/turf/open/floor/carpet,/area/shuttle/escape) +"az" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/pastatomato,/turf/open/floor/carpet,/area/shuttle/escape) +"aA" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/kebab/tofu,/turf/open/floor/carpet,/area/shuttle/escape) +"aB" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/honkdae,/turf/open/floor/carpet,/area/shuttle/escape) +"aC" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/enchiladas,/turf/open/floor/carpet,/area/shuttle/escape) +"aD" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/candiedapple,/turf/open/floor/carpet,/area/shuttle/escape) +"aE" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/burger/baconburger,/turf/open/floor/carpet,/area/shuttle/escape) +"aF" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/benedict,/turf/open/floor/carpet,/area/shuttle/escape) +"aG" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/cakeslice/chocolate,/turf/open/floor/carpet,/area/shuttle/escape) +"aH" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/chowmein,/turf/open/floor/carpet,/area/shuttle/escape) +"aI" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/dulcedebatataslice,/turf/open/floor/carpet,/area/shuttle/escape) +"aJ" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/salad/validsalad,/turf/open/floor/carpet,/area/shuttle/escape) +"aK" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/carneburrito,/turf/open/floor/carpet,/area/shuttle/escape) +"aL" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/chawanmushi,/turf/open/floor/carpet,/area/shuttle/escape) +"aM" = (/obj/machinery/computer/emergency_shuttle,/turf/open/floor/mineral/gold,/area/shuttle/escape) +"aN" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/melonfruitbowl,/turf/open/floor/carpet,/area/shuttle/escape) +"aO" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/khachapuri,/turf/open/floor/carpet,/area/shuttle/escape) +"aP" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/grilledcheese,/turf/open/floor/carpet,/area/shuttle/escape) +"aQ" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/jelliedtoast/cherry,/turf/open/floor/carpet,/area/shuttle/escape) +"aR" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/honeybun,/turf/open/floor/carpet,/area/shuttle/escape) +"aS" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/eggplantparm,/turf/open/floor/carpet,/area/shuttle/escape) +"aT" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/copypasta,/turf/open/floor/carpet,/area/shuttle/escape) +"aU" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/bearsteak,/turf/open/floor/carpet,/area/shuttle/escape) +"aV" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/boiledspaghetti,/turf/open/floor/carpet,/area/shuttle/escape) +"aW" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/cherrycupcake,/turf/open/floor/carpet,/area/shuttle/escape) +"aX" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/customizable/pizza,/turf/open/floor/carpet,/area/shuttle/escape) +"aY" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/hotdog,/turf/open/floor/carpet,/area/shuttle/escape) +"aZ" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/pie/grapetart,/turf/open/floor/carpet,/area/shuttle/escape) +"ba" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/burger/superbite,/turf/open/floor/carpet,/area/shuttle/escape) +"bb" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/cakeslice/slimecake,/turf/open/floor/carpet,/area/shuttle/escape) +"bc" = (/obj/machinery/computer/station_alert,/turf/open/floor/mineral/gold,/area/shuttle/escape) +"bd" = (/obj/structure/chair/comfy{tag = "icon-comfychair (NORTH)"; icon_state = "comfychair"; dir = 1},/turf/open/floor/carpet,/area/shuttle/escape) +"be" = (/obj/machinery/computer/crew,/turf/open/floor/mineral/gold,/area/shuttle/escape) +"bf" = (/obj/machinery/sleeper{tag = "icon-sleeper-open (EAST)"; icon_state = "sleeper-open"; dir = 4},/turf/open/floor/mineral/gold,/area/shuttle/escape) +"bg" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-21"; layer = 4.1; pixel_x = -3; pixel_y = 3},/turf/open/floor/mineral/gold,/area/shuttle/escape) +"bh" = (/turf/open/floor/plating/beach/coastline_b,/area/shuttle/escape) + +(1,1,1) = {" +aaababababababababababacabadabababababaeababababab +ababafagagagahagagaiagagabajajajajajajajabakajalab +abamaganagagagagagaoagafabajajajajajajajabapajajab +abababababababababababababajajajajajajajabababaqab +abababakajajajajajajajajajajajajajajajajajajajajab +arasabajatauauauauauauauauauauauauauauauatajavawab +arasabajataxayazaAaBaCaDaEaFaGaHaIaJaKaLatajavaMab +arasabajataNaOaPaQaRaSaTaUaVaWaXaYaZbabbatajavbcab +arasabajatbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdatajavbeab +abababajajajajajajajajajajajajajajajajajajajajajab +abbfajajajajajajajajajajajajajajajajajajajajajajab +abbfajajajbgbhbhbhbhbhbhbhbhbhbhbhbhbhbgajajajajab +abababakajbgbhbhbhbhbhbhbhbhbhbhbhbhbhbgajajajakab +aaabababababababababababababababababababababababab +"} diff --git a/_maps/shuttles/emergency_meta.dmm b/_maps/shuttles/emergency_meta.dmm index 1a9a5a1a8a..0c3359597a 100644 --- a/_maps/shuttles/emergency_meta.dmm +++ b/_maps/shuttles/emergency_meta.dmm @@ -3,10 +3,7 @@ /turf/open/space, /area/space) "ab" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s6"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium/overspace, /area/shuttle/escape) "ac" = ( /obj/structure/grille, @@ -14,10 +11,7 @@ /turf/open/floor/plating, /area/shuttle/escape) "ad" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall14"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/escape) "ae" = ( /turf/closed/wall/shuttle{ @@ -26,20 +20,17 @@ }, /area/shuttle/escape) "af" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Emergency Shuttle Airlock" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "ag" = ( /obj/structure/sign/nosmoking_2, -/turf/closed/wall/shuttle{ - icon_state = "swall12"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/escape) "ah" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Emergency Shuttle Airlock" }, /obj/docking_port/mobile/emergency{ @@ -47,10 +38,10 @@ dwidth = 5; height = 14; name = "Meta emergency shuttle"; - width = 25; - timid = 1 + timid = 1; + width = 25 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "ai" = ( /turf/closed/wall/shuttle{ @@ -59,10 +50,10 @@ }, /area/shuttle/escape) "aj" = ( -/turf/closed/wall/shuttle{ - tag = "icon-wall3 (NORTHWEST)"; - icon_state = "wall3"; - dir = 9 +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 8; + icon_state = "diagonalWall3" }, /area/shuttle/escape) "ak" = ( @@ -81,31 +72,31 @@ pixel_x = 5; pixel_y = -1 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "am" = ( /obj/machinery/computer/crew, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "an" = ( /obj/machinery/computer/security, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "ao" = ( /obj/structure/table, /obj/item/weapon/storage/firstaid/regular, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "ap" = ( /obj/structure/closet/emcloset, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "aq" = ( -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "ar" = ( /obj/structure/chair, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "as" = ( /obj/item/device/radio/intercom{ @@ -115,7 +106,7 @@ pixel_y = 27 }, /obj/structure/chair, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "at" = ( /obj/item/clothing/suit/hazardvest{ @@ -196,7 +187,7 @@ /obj/structure/closet/crate{ name = "lifejackets" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "au" = ( /obj/structure/shuttle/engine/propulsion{ @@ -216,27 +207,24 @@ "aw" = ( /obj/structure/table, /obj/item/weapon/storage/fancy/donut_box, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "ax" = ( /obj/structure/chair/office/dark{ dir = 1 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "ay" = ( /obj/structure/table, /obj/item/weapon/restraints/handcuffs{ pixel_y = 3 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "az" = ( /obj/machinery/status_display, -/turf/closed/wall/shuttle{ - icon_state = "swall3"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/escape) "aA" = ( /obj/structure/tank_dispenser/oxygen{ @@ -244,15 +232,15 @@ pixel_x = -1; pixel_y = 2 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "aB" = ( /obj/machinery/computer/communications, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "aC" = ( /obj/structure/chair/office/dark, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "aD" = ( /turf/closed/wall/shuttle{ @@ -263,24 +251,24 @@ /obj/structure/chair{ dir = 1 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "aF" = ( /obj/machinery/computer/emergency_shuttle, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "aG" = ( /obj/structure/chair/office/dark{ dir = 8 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "aH" = ( /obj/machinery/door/airlock/glass_command{ name = "Cockpit"; req_access_txt = "19" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "aI" = ( /obj/machinery/vending/wallmed{ @@ -290,26 +278,18 @@ req_access_txt = "0"; use_power = 0 }, -/turf/closed/wall/shuttle{ - icon_state = "swall12"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/escape) "aJ" = ( /obj/structure/extinguisher_cabinet, -/turf/closed/wall/shuttle{ - icon_state = "swall12"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/escape) "aK" = ( -/turf/closed/wall/shuttle{ - icon_state = "wall3" - }, +/turf/closed/wall/mineral/plastitanium, /area/shuttle/escape) "aL" = ( /obj/machinery/computer/station_alert, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "aM" = ( /turf/closed/wall/shuttle{ @@ -322,15 +302,15 @@ pixel_x = 32; pixel_y = 0 }, -/obj/machinery/hologram/holopad, -/turf/open/floor/plasteel/shuttle, +/obj/machinery/holopad, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "aO" = ( /obj/structure/table, /obj/item/weapon/storage/toolbox/emergency{ pixel_y = 3 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "aP" = ( /obj/structure/table, @@ -340,7 +320,7 @@ pixel_y = 4; use_power = 0 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "aQ" = ( /obj/structure/table, @@ -354,7 +334,7 @@ pixel_x = 0; pixel_y = -31 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "aR" = ( /obj/structure/table, @@ -364,7 +344,7 @@ pixel_x = 0; pixel_y = -27 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "aS" = ( /obj/item/device/radio/intercom{ @@ -376,14 +356,14 @@ /obj/structure/chair{ dir = 1 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "aT" = ( /obj/structure/table, /obj/item/stack/medical/gauze, /obj/item/stack/medical/bruise_pack, /obj/item/stack/medical/ointment, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "aU" = ( /turf/closed/wall/shuttle{ @@ -403,7 +383,7 @@ req_access = null; req_access_txt = "19" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "aX" = ( /turf/closed/wall/shuttle{ @@ -416,7 +396,7 @@ name = "Brig"; req_access_txt = "2" }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) "aZ" = ( /obj/machinery/door/airlock/glass_medical{ @@ -424,17 +404,14 @@ name = "Escape Shuttle Infirmary"; req_access_txt = "0" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "ba" = ( /obj/structure/sign/bluecross_2, -/turf/closed/wall/shuttle{ - icon_state = "swall14"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/escape) "bb" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Emergency Shuttle Cargo Bay Airlock" }, /turf/open/floor/plasteel/delivery, @@ -461,32 +438,32 @@ /turf/open/floor/plasteel/floorgrime, /area/shuttle/escape) "bg" = ( -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium, /area/shuttle/escape) "bh" = ( /obj/structure/chair{ dir = 4 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) "bi" = ( /obj/structure/chair, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) "bj" = ( /obj/structure/table, /obj/item/weapon/defibrillator/loaded, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "bk" = ( /obj/machinery/shower, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "bl" = ( /obj/machinery/sleeper{ dir = 8 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "bm" = ( /obj/structure/rack, @@ -524,14 +501,11 @@ /obj/structure/chair{ dir = 8 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) "bt" = ( /obj/structure/reagent_dispensers/peppertank, -/turf/closed/wall/shuttle{ - icon_state = "swall3"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/escape) "bu" = ( /obj/structure/table, @@ -566,7 +540,7 @@ pixel_x = 2; pixel_y = 8 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "bv" = ( /obj/structure/rack, @@ -600,7 +574,7 @@ "bz" = ( /obj/structure/table/optable, /obj/item/weapon/surgical_drapes, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "bA" = ( /turf/open/floor/plasteel/warning{ @@ -608,7 +582,8 @@ }, /area/shuttle/escape) "bB" = ( -/turf/closed/wall/shuttle{ +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ icon_state = "diagonalWall3" }, /area/shuttle/escape) @@ -635,14 +610,14 @@ pixel_x = -4; pixel_y = 4 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) "bE" = ( /obj/structure/table, /obj/item/weapon/restraints/handcuffs{ pixel_y = 3 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) "bF" = ( /obj/structure/table, @@ -651,7 +626,7 @@ idle_power_usage = 0; use_power = 0 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) "bG" = ( /obj/structure/table, @@ -659,7 +634,7 @@ pixel_x = 2; pixel_y = 2 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) "bH" = ( /obj/structure/table, @@ -681,11 +656,11 @@ pixel_x = -27; pixel_y = 0 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "bI" = ( /obj/structure/sink, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "bJ" = ( /obj/structure/table, @@ -694,7 +669,7 @@ pixel_x = 2; pixel_y = 3 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "bK" = ( /obj/structure/table, @@ -703,13 +678,11 @@ pixel_x = 3; pixel_y = 3 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "bL" = ( -/obj/structure/sign/bluecross_2, -/turf/closed/wall/shuttle{ - icon_state = "swall2" - }, +/obj/structure/extinguisher_cabinet, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/shuttle/escape) "bM" = ( /obj/structure/rack{ @@ -795,22 +768,20 @@ /turf/open/floor/plasteel/bot, /area/shuttle/escape) "bS" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s5"; - dir = 2 +/obj/machinery/vending/wallmed{ + name = "Emergency NanoMed"; + pixel_x = 0; + pixel_y = 0; + req_access_txt = "0"; + use_power = 0 }, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/shuttle/escape) "bT" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall13"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/shuttle/escape) "bU" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s9"; - dir = 2 - }, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) (1,1,1) = {" @@ -819,10 +790,10 @@ aa au au au -aK +ad au au -aK +ad au au au @@ -831,35 +802,35 @@ aa "} (2,1,1) = {" aa -aj +ad av av av -aK +ad av av -aK +ad av av av -bB +ad aa "} (3,1,1) = {" -ab -ak -ak -ak -ak -ak -ak -ak -aU -ak -ak -ak -ak -bS +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad "} (4,1,1) = {" ac @@ -886,7 +857,7 @@ aG ax aq aQ -ae +ad be be be @@ -902,9 +873,9 @@ aq aq aC aR -aV +ad bf -br +bT be be bf @@ -919,30 +890,30 @@ aq aq aq aW -bg -ae +bU +ad by by ac "} (8,1,1) = {" ad -ak +ad az -aD +ad aH -aM +ad az -ak -aX -ak -bc +ad +ad +ad +ad az -ak -bT +ad +ad "} (9,1,1) = {" -ae +ad ap aq aq @@ -950,12 +921,12 @@ aq aq aq ap -aV +ad bh bh bh bD -ae +ad "} (10,1,1) = {" ac @@ -967,14 +938,14 @@ aq aq aq aY -bg -bg -bg +bU +bU +bU bE ac "} (11,1,1) = {" -ae +ad ar aq aE @@ -984,8 +955,8 @@ aq aE ac bi -bg -bg +bU +bU bF ac "} @@ -998,12 +969,12 @@ aI ar aq aE -ae +ad bi bs bs bG -ae +ad "} (13,1,1) = {" ac @@ -1015,11 +986,11 @@ ar aq aS ad -ak +ad bt az -ak -bT +ad +ad "} (14,1,1) = {" af @@ -1030,12 +1001,12 @@ aJ ar aq aE -ae +ad bj bu bz bH -ae +ad "} (15,1,1) = {" ag @@ -1083,26 +1054,26 @@ bl bl aq bK -ae +ad "} (18,1,1) = {" ac ar aq aE -aJ +bL ar aq aE ba -ak +ad ac aZ -bL -bT +ba +ad "} (19,1,1) = {" -ae +ad as aq aE @@ -1110,28 +1081,28 @@ ac ar aq aE -ae +ad bm bv bA bM -ae +ad "} (20,1,1) = {" ah aq aq aE -aI +bS ar aq aE ac bn bw -bx +be bN -ae +ad "} (21,1,1) = {" ac @@ -1144,8 +1115,8 @@ aq aE aJ bo -bx -bx +be +be bO ac "} @@ -1160,13 +1131,13 @@ aq aq bb bp -bx +be bw bP ac "} (23,1,1) = {" -ae +ad aq aq aq @@ -1176,13 +1147,13 @@ aq aq bb bp -bx -bx +be +be bQ -ae +ad "} (24,1,1) = {" -ae +ad at aA at @@ -1195,21 +1166,21 @@ bq bp bp bR -ae +ad "} (25,1,1) = {" -ai -ak +ad +ad ac -ak +ad ac -ak +ad ac -ak -bc -ak +ad +ad +ad ac ac -ak -bU +ad +ad "} diff --git a/_maps/shuttles/emergency_meteor.dmm b/_maps/shuttles/emergency_meteor.dmm new file mode 100644 index 0000000000..4809e66ac9 --- /dev/null +++ b/_maps/shuttles/emergency_meteor.dmm @@ -0,0 +1,57 @@ +"a" = (/turf/open/space,/area/space) +"b" = (/turf/closed/mineral,/area/shuttle/escape{luminosity = 0}) +"c" = (/obj/structure/window/reinforced{dir = 1; layer = 2.9},/turf/open/floor/plating/asteroid,/area/shuttle/escape{luminosity = 0}) +"d" = (/turf/open/floor/plating/asteroid,/area/shuttle/escape{luminosity = 0}) +"e" = (/obj/machinery/computer/emergency_shuttle{use_power = 0},/turf/open/floor/plating/asteroid,/area/shuttle/escape{luminosity = 0}) +"f" = (/mob/living/simple_animal/hostile/asteroid/goliath,/turf/open/floor/plating/asteroid,/area/shuttle/escape{luminosity = 0}) +"g" = (/obj/structure/mineral_door/iron,/turf/open/floor/plating/asteroid,/area/shuttle/escape{luminosity = 0}) +"h" = (/obj/item/weapon/pickaxe,/turf/open/floor/plating/asteroid,/area/shuttle/escape{luminosity = 0}) +"i" = (/obj/effect/station_crash,/turf/open/floor/plating/asteroid,/area/shuttle/escape{luminosity = 0}) +"j" = (/obj/docking_port/mobile/emergency{dwidth = 20; height = 40; name = "a meteor with engines strapped to it"; timid = 1; width = 40},/turf/open/floor/plating/asteroid,/area/shuttle/escape{luminosity = 0}) +"k" = (/obj/structure/closet/crate,/turf/open/floor/plating/asteroid,/area/shuttle/escape{luminosity = 0}) +"l" = (/obj/machinery/power/smes,/turf/open/floor/plating/asteroid,/area/shuttle/escape{luminosity = 0}) +"m" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/turf/open/floor/plating/airless,/area/shuttle/escape{luminosity = 0}) +"n" = (/obj/structure/shuttle/engine/propulsion,/turf/open/floor/plating/airless,/area/shuttle/escape{luminosity = 0}) + +(1,1,1) = {" +aaabbbbbbaaabbbbaaaaabbbbbabbbbaaaaaaaaa +aabbbbbbbbbbbbbbcccccbbbbbbbbbbbbbbbbbaa +abbbbbbbbbbbbbbbdddddbbbbbbbbbbbbbbbbbba +bbbbbbbbbbbbbbbbeddddbbbbbbbbbbbbbbbbbba +bbbbbbbbbbbbbbbbbbdbbbbbbbbbbbbbbbbbbbba +ddddbbbbbbdbbbbbbbdbbbbbbbbbbbbbbbbbbbba +ddddbbbbbbddbbbbbbdbbbbbbbbbbbbbbbddbbbb +ddddbbbbbbddbbbbbbdbbbdddddbbbbbbdddbbbb +bbbbbbbbbbddbbbbbbdddddddddbbbbbbdfdbbbb +bbbbbbbbbbddbbbbbbbbbddbbbbbbbbbbdddbbbb +bbbbbbbbbbddbbbbbbbbbddbbbbbbbbbbbbbbbbb +dbbbbbbbbbddbbbbbbbbbddbbbbbbbbbbbbbbbbb +dbddbbbbbdddbbbbbbbbdddddddbbbbbbbbbbbbb +dbddddddgdddbbbbbbbddddddddbbbbbbbbbbbaa +bbddddddgdddbbbbbbbdbbbbbbbbbbbbbbdbbbaa +bddbbbbbbbbdbbbbbbbdbbbbbbbddddddddbbbbb +bdbbbbbbbbbdbbbbbbbdbbbbbbbbdbbbbbdbbbbb +ddbbbbbbbbbdbbbbbbbdbbbbbbbbdbbbbbdbbbbb +dbbbbbbbbbbdbbbbbbbdbbbbbbbbddddhbdbbbbb +dibbbbbbbbbdbbbbbbbdbbbbbbbbbbbbbbdbbbbb +jbbbbbbbbbbdbbbbbbbdbbbbbbbbbbbbbbdbbbba +dbbbbddddddddddddddddbbbbbbdbbbbbbdbbbba +dbbbdddbbbbdbbbbbbbdbbbbbbbddddddddbbbbb +bbbbdddbbbbdbbbbbbbdbbbbbbbdbbbbbbbbbbba +dbbbdddbbbbdbbbbbbbdbbbbbbbdbbbbbbbbbbba +dbbbddbbbbbbbbbbbbbdbbbbbbbdbbbbbbbbbbba +dbbbkkkbbbbbbbbbbbbdbbbbbbbdbbbllllllbba +dbbbbbbbbbbbbbbbbbbdbbbbbbbdbbbddddddbbb +dbbbbbbbbbbbbbbbbbbddddddddddddddddddbbb +ddbbbbbbbbbbbbbbbbbdbbbbbbbbbbbddddddbbb +ddbbbbbbbbbbbbbbbbbdbbbbbbbbbbbddddddbbb +ddbbbbbbbbbbbbbbbbbdbbbbbbbbbbbddddddbbb +ddbbbbbbbbbbbbbbbbbdbbbbbbbbbbbbbbbdbbbb +ddbbbbbbbbbbbbbbbbbdbbbbbbbbbbbbbbbdbbbb +ddbbbbbbbbbbbbbbbbbdbbbbbbbbbbbbbbbdbbbb +ddbbbbbbbbbbbbbbbbddddbbbbbbbbbbbbbdbbbb +bbbbbbbbbbbbbbbbbbddddbbbbbbbbbbbbbdbbbb +abbbbbbbbbbbbbbbbbddddbbbbbbbbbbbmmmmbba +aaabbbbaaaaaabbbbbmmmmbbbbbbbbaaannnnbaa +aaaaabbaaaaaabbaabnnnnaaaaaaaaaaaaaaaaaa +"} diff --git a/_maps/shuttles/emergency_mini.dmm b/_maps/shuttles/emergency_mini.dmm index 20e636028f..3930750859 100644 --- a/_maps/shuttles/emergency_mini.dmm +++ b/_maps/shuttles/emergency_mini.dmm @@ -3,11 +3,7 @@ /turf/open/space, /area/space) "b" = ( -/turf/open/space, -/turf/closed/wall/shuttle{ - icon_state = "swall_f6"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium/overspace, /area/shuttle/escape) "c" = ( /obj/structure/shuttle/engine/propulsion{ @@ -24,10 +20,7 @@ }, /area/shuttle/escape) "e" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall13"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/escape) "f" = ( /obj/structure/shuttle/engine/heater{ @@ -52,32 +45,32 @@ pixel_x = -2; pixel_y = 4 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "i" = ( -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "j" = ( /obj/machinery/sleeper{ dir = 8; icon_state = "sleeper-open" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "k" = ( /obj/structure/chair{ dir = 4 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) "l" = ( -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) "m" = ( /obj/structure/chair{ dir = 8 }, -/turf/open/floor/plasteel/shuttle/red, +/turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) "n" = ( /obj/machinery/vending/wallmed{ @@ -85,7 +78,7 @@ pixel_x = 28; req_access_txt = "0" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "o" = ( /obj/effect/spawner/structure/window/reinforced, @@ -96,7 +89,7 @@ name = "Escape Shuttle Cell"; req_access_txt = "2" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "q" = ( /obj/machinery/door/airlock/glass_medical{ @@ -104,44 +97,41 @@ name = "Escape Shuttle Infirmary"; req_access_txt = "0" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "r" = ( -/turf/closed/wall/shuttle{ - icon_state = "swallc4"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/shuttle/escape) "s" = ( -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "t" = ( /obj/structure/closet/emcloset, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "u" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Emergency Shuttle Airlock" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "v" = ( /obj/structure/chair{ dir = 4 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "w" = ( /obj/structure/chair{ dir = 8 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "x" = ( /obj/structure/chair{ dir = 1 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "y" = ( /obj/structure/grille, @@ -153,10 +143,7 @@ name = "Emergency NanoMed"; req_access_txt = "0" }, -/turf/closed/wall/shuttle{ - icon_state = "swall3"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/escape) "A" = ( /obj/structure/chair{ @@ -165,10 +152,10 @@ /obj/item/device/radio/intercom{ pixel_x = 25 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "B" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Emergency Shuttle Airlock" }, /obj/docking_port/mobile/emergency{ @@ -179,11 +166,11 @@ timid = 1; width = 21 }, -/turf/open/floor/plating, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "C" = ( /obj/structure/chair, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "D" = ( /obj/structure/table, @@ -194,7 +181,7 @@ }, /obj/item/weapon/crowbar, /obj/item/weapon/extinguisher, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "E" = ( /turf/closed/wall/shuttle{ @@ -210,17 +197,14 @@ /area/shuttle/escape) "G" = ( /obj/machinery/status_display, -/turf/closed/wall/shuttle{ - icon_state = "swall12"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/escape) "H" = ( /obj/machinery/door/airlock/glass_command{ name = "Escape Shuttle Cockpit"; req_access_txt = "19" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "I" = ( /turf/closed/wall/shuttle{ @@ -230,38 +214,38 @@ /area/shuttle/escape) "J" = ( /obj/machinery/computer/atmos_alert, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "K" = ( /obj/structure/chair{ dir = 8 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "L" = ( /obj/item/device/radio/intercom{ name = "Station Intercom (General)"; pixel_y = 24 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "M" = ( /obj/structure/chair{ dir = 4 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "N" = ( /obj/machinery/computer/security, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "O" = ( /obj/machinery/computer/crew, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "P" = ( /obj/machinery/computer/communications, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "Q" = ( /turf/open/space, @@ -280,15 +264,15 @@ /obj/structure/table, /obj/item/weapon/storage/firstaid/fire, /obj/item/weapon/extinguisher, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "T" = ( /obj/structure/chair, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "U" = ( /obj/machinery/computer/emergency_shuttle, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "V" = ( /obj/structure/table, @@ -297,7 +281,7 @@ pixel_y = 3 }, /obj/item/weapon/crowbar, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "W" = ( /turf/closed/wall/shuttle{ @@ -315,29 +299,29 @@ (1,1,1) = {" a -b -g -g -g -g -g -g +e +e +e +e +e +e +e y y y -g -g -g -g -g -E -g -g -Q +e +e +e +e +e +e +e +e +e a "} (2,1,1) = {" -b +e e h i @@ -353,11 +337,11 @@ s v v D -F +e J O -R -Q +r +e "} (3,1,1) = {" c @@ -365,7 +349,7 @@ f i i i -o +y s s s @@ -376,11 +360,11 @@ s s s i -F +e K K S -o +y "} (4,1,1) = {" c @@ -388,7 +372,7 @@ f j n j -o +y s w w @@ -403,22 +387,22 @@ G s s T -o +y "} (5,1,1) = {" c f -g -g -g +e +e +e r s x -o -o +y +y z -o -o +y +y C s s @@ -426,14 +410,14 @@ H s s U -o +y "} (6,1,1) = {" c f k k -o +y i s v @@ -445,11 +429,11 @@ v v s i -F +e L s T -o +y "} (7,1,1) = {" c @@ -468,18 +452,18 @@ s s s i -F +e M M V -o +y "} (8,1,1) = {" -d +e e m m -o +y t s w @@ -491,32 +475,32 @@ s w w D -F +e N P -W -X +r +e "} (9,1,1) = {" a -d -g -g -g -g +e +e +e +e +e u -g -g +e +e y -g -g +e +e B -g -g -g -I -g -g -X +e +e +e +e +e +e +e a "} diff --git a/_maps/shuttles/emergency_narnar.dmm b/_maps/shuttles/emergency_narnar.dmm index 3295aee638..a6da04a518 100644 --- a/_maps/shuttles/emergency_narnar.dmm +++ b/_maps/shuttles/emergency_narnar.dmm @@ -164,9 +164,6 @@ /area/shuttle/escape) "G" = ( /obj/structure/extinguisher_cabinet{ - has_extinguisher = null; - icon_state = "extinguisher_empty"; - opened = 1; pixel_x = 27; pixel_y = 0 }, diff --git a/_maps/shuttles/emergency_pubby.dmm b/_maps/shuttles/emergency_pubby.dmm new file mode 100644 index 0000000000..6ccfbbec7a --- /dev/null +++ b/_maps/shuttles/emergency_pubby.dmm @@ -0,0 +1,71 @@ +"a" = (/turf/open/space,/area/space) +"b" = (/turf/closed/wall/mineral/titanium,/area/shuttle/escape) +"c" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/escape) +"d" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"e" = (/obj/machinery/computer/emergency_shuttle,/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"f" = (/obj/structure/table,/obj/machinery/recharger,/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"g" = (/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"h" = (/obj/structure/chair/comfy/black{tag = "icon-comfychair (NORTH)"; icon_state = "comfychair"; dir = 1},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"i" = (/obj/structure/closet,/turf/open/floor/mineral/titanium/yellow,/area/shuttle/escape) +"j" = (/obj/machinery/recharge_station,/turf/open/floor/mineral/titanium/yellow,/area/shuttle/escape) +"k" = (/obj/machinery/vending/cola,/turf/open/floor/mineral/titanium/yellow,/area/shuttle/escape) +"l" = (/obj/machinery/computer/atmos_alert,/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"m" = (/obj/structure/chair{dir = 8},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"n" = (/obj/structure/chair{dir = 4},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"o" = (/obj/machinery/computer/security,/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"p" = (/obj/structure/chair,/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/escape) +"q" = (/turf/open/floor/mineral/titanium/yellow,/area/shuttle/escape) +"r" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/mineral/titanium/yellow,/area/shuttle/escape) +"s" = (/obj/machinery/computer/crew,/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"t" = (/obj/machinery/computer/communications,/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"u" = (/obj/machinery/flasher{id = "shuttle_flasher"; pixel_x = -24; pixel_y = 6},/obj/machinery/button/flasher{id = "shuttle_flasher"; pixel_x = -24; pixel_y = -6},/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/escape) +"v" = (/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/escape) +"w" = (/obj/machinery/door/airlock/titanium{name = "Emergency Shuttle Airlock"},/turf/open/floor/plating,/area/shuttle/escape) +"x" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/mineral/titanium/yellow,/area/shuttle/escape) +"y" = (/obj/structure/sign/nanotrasen,/turf/closed/wall/mineral/titanium,/area/shuttle/escape) +"z" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Cockpit"; req_access_txt = "19"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"A" = (/obj/structure/chair{dir = 1},/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/escape) +"B" = (/obj/machinery/door/airlock/titanium{name = "Emergency Shuttle Airlock"; req_access_txt = "2"},/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/escape) +"C" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Cargo Hold"; req_access_txt = "0"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"D" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-22"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"E" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Brig"; req_access_txt = "2"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"F" = (/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"G" = (/obj/structure/chair{dir = 4},/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"H" = (/obj/structure/chair{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"I" = (/obj/structure/chair{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"J" = (/turf/open/floor/carpet,/area/shuttle/escape) +"K" = (/obj/structure/chair/comfy/beige,/turf/open/floor/carpet,/area/shuttle/escape) +"L" = (/obj/structure/chair{dir = 8},/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"M" = (/obj/structure/chair/comfy/beige{dir = 4},/turf/open/floor/carpet,/area/shuttle/escape) +"N" = (/obj/structure/table/wood/poker,/obj/item/toy/cards/deck,/turf/open/floor/carpet,/area/shuttle/escape) +"O" = (/obj/structure/chair/comfy/beige{dir = 8},/turf/open/floor/carpet,/area/shuttle/escape) +"P" = (/obj/structure/chair/comfy/beige{tag = "icon-comfychair (NORTH)"; icon_state = "comfychair"; dir = 1},/turf/open/floor/carpet,/area/shuttle/escape) +"Q" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Infirmary"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"R" = (/obj/machinery/sleeper{dir = 4; icon_state = "sleeper-open"},/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"S" = (/obj/machinery/vending/medical,/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"T" = (/obj/machinery/door/airlock/titanium{name = "Emergency Shuttle Airlock"},/obj/docking_port/mobile/emergency{dheight = 0; dir = 8; dwidth = 4; height = 15; name = "Pubby emergency shuttle"; port_angle = 90; timid = 1; width = 18},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"U" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/crowbar,/obj/structure/sign/nosmoking_2{pixel_x = 32},/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"V" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/turf/open/floor/plating/airless,/area/shuttle/escape) +"W" = (/obj/structure/table,/obj/item/weapon/defibrillator/loaded,/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"X" = (/obj/structure/shuttle/engine/propulsion,/turf/open/floor/plating/airless,/area/shuttle/escape) + +(1,1,1) = {" +aaaaabcccbaaaaa +aaaaabdefbaaaaa +bbbbbbghgbbbbbb +cijkblmgnobpppc +cqqrbsmgntbuvvc +wqqxbyczcybAvvB +bcCcbDgggDbcEcb +bFgggggggggggFb +cGgHIgJKJgHIgLc +cGgHIgMNOgHIgLc +bGgHIgJPJgHIgLb +wFgggggggggggFw +bGggbbcQcbbggLb +wFgLbRFFFSbGgFT +bGgLbFFFGUbGgLb +bVVVbRFFGWbVVVb +bXXXbVVVVVbXXXb +aaaabXXXXXbaaaa +"} diff --git a/_maps/shuttles/emergency_scrapheap.dmm b/_maps/shuttles/emergency_scrapheap.dmm new file mode 100644 index 0000000000..b089143ba8 --- /dev/null +++ b/_maps/shuttles/emergency_scrapheap.dmm @@ -0,0 +1,91 @@ +"aa" = (/turf/open/space,/area/space) +"ab" = (/turf/closed/wall/mineral/titanium,/area/shuttle/escape) +"ac" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/escape) +"ad" = (/turf/closed/wall/mineral/titanium/nodiagonal,/area/shuttle/escape) +"ae" = (/obj/structure/table/wood,/turf/open/floor/carpet,/area/shuttle/escape) +"af" = (/obj/structure/chair/comfy/brown{tag = "icon-comfychair (NORTH)"; icon_state = "comfychair"; dir = 1},/turf/open/floor/carpet,/area/shuttle/escape) +"ag" = (/obj/machinery/computer/emergency_shuttle,/turf/open/floor/carpet,/area/shuttle/escape) +"ah" = (/obj/structure/table/wood,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/carpet,/area/shuttle/escape) +"ai" = (/obj/machinery/computer/atmos_alert,/turf/open/floor/carpet,/area/shuttle/escape) +"aj" = (/obj/structure/chair/comfy/brown{tag = "icon-comfychair (WEST)"; icon_state = "comfychair"; dir = 8},/turf/open/floor/carpet,/area/shuttle/escape) +"ak" = (/turf/open/floor/carpet,/area/shuttle/escape) +"al" = (/obj/structure/chair/comfy/brown{tag = "icon-comfychair (EAST)"; icon_state = "comfychair"; dir = 4},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/open/floor/carpet,/area/shuttle/escape) +"am" = (/obj/machinery/computer/crew,/turf/open/floor/carpet,/area/shuttle/escape) +"an" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -29},/turf/open/floor/carpet,/area/shuttle/escape) +"ao" = (/obj/machinery/button/flasher{id = "cockpit_flasher"; pixel_x = 6; pixel_y = -24},/obj/structure/table/wood/poker,/turf/open/floor/carpet,/area/shuttle/escape) +"ap" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/carpet,/area/shuttle/escape) +"aq" = (/obj/machinery/door/airlock/titanium{name = "Emergency Shuttle Airlock"; req_access_txt = "2"},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) +"ar" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Cockpit"; req_access_txt = "19"},/turf/open/floor/carpet,/area/shuttle/escape) +"as" = (/obj/machinery/door/airlock/titanium{name = "Emergency Shuttle Airlock"; req_access_txt = "2"},/turf/open/floor/plasteel/shuttle/white,/area/shuttle/escape) +"at" = (/obj/structure/chair,/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/escape) +"au" = (/obj/machinery/flasher{id = "cockpit_flasher"; pixel_x = 6; pixel_y = 24},/turf/open/floor/plasteel/bar,/area/shuttle/escape) +"av" = (/turf/open/floor/plasteel/bar,/area/shuttle/escape) +"aw" = (/turf/open/floor/plasteel/shuttle/white,/area/shuttle/escape) +"ax" = (/obj/machinery/flasher{id = "shuttle_flasher"; pixel_x = -24; pixel_y = 6},/obj/machinery/button/flasher{id = "shuttle_flasher"; pixel_x = -24; pixel_y = -6},/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/escape) +"ay" = (/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/escape) +"az" = (/obj/structure/grille,/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Brig"; req_access_txt = "2"},/turf/open/floor/plating,/area/shuttle/escape) +"aA" = (/obj/structure/grille/broken,/turf/open/floor/plasteel,/area/shuttle/escape) +"aB" = (/turf/closed/wall/mineral/titanium/interior,/area/shuttle/escape) +"aC" = (/obj/machinery/door/airlock/titanium{name = "Emergency Shuttle Airlock"; req_access_txt = "2"},/turf/open/floor/plating,/area/shuttle/escape) +"aD" = (/obj/structure/extinguisher_cabinet{pixel_y = -30},/obj/structure/table,/obj/item/weapon/extinguisher,/obj/item/weapon/crowbar,/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/escape) +"aE" = (/obj/structure/chair{dir = 1},/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/escape) +"aF" = (/obj/item/weapon/twohanded/required/kirbyplants/random,/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"aG" = (/obj/structure/chair,/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"aH" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular,/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"aI" = (/obj/structure/window/reinforced{dir = 4},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 23},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"aJ" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/shuttle/white,/area/shuttle/escape) +"aK" = (/obj/machinery/door/airlock/titanium{name = "Emergency Shuttle Airlock"},/obj/docking_port/mobile/emergency{name = "Scrapheap Challenge"; timid = 1},/turf/open/floor/plating,/area/shuttle/escape) +"aL" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"aM" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"aN" = (/obj/structure/table/wood,/obj/item/toy/cards/deck/cas/black,/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"aO" = (/obj/structure/table/wood,/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"aP" = (/obj/structure/table/wood,/obj/item/toy/cards/deck/cas,/turf/open/floor/plasteel/shuttle/white,/area/shuttle/escape) +"aQ" = (/obj/structure/chair/comfy/brown{dir = 8},/turf/open/floor/plasteel/shuttle/white,/area/shuttle/escape) +"aR" = (/obj/structure/table_frame,/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"aS" = (/obj/structure/table/wood,/obj/item/weapon/storage/firstaid/fire,/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"aT" = (/obj/structure/chair{dir = 1},/obj/structure/extinguisher_cabinet{pixel_y = -30},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"aU" = (/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"aV" = (/obj/structure/table,/obj/machinery/recharger,/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"aW" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"aX" = (/turf/open/floor/plasteel/grimy,/area/shuttle/escape) +"aY" = (/obj/structure/chair/wood{tag = "icon-wooden_chair (NORTH)"; icon_state = "wooden_chair"; dir = 1},/turf/open/floor/plasteel/grimy,/area/shuttle/escape) +"aZ" = (/obj/machinery/door/airlock/titanium{name = "Emergency Shuttle Airlock"},/turf/open/floor/plating,/area/shuttle/escape) +"ba" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/open/floor/plasteel/bar,/area/shuttle/escape) +"bb" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/barricade/wooden,/turf/open/floor/plasteel/bar,/area/shuttle/escape) +"bc" = (/obj/machinery/status_display,/turf/closed/wall/mineral/titanium,/area/shuttle/escape) +"bd" = (/obj/machinery/door/airlock{name = "Unisex Restrooms"; req_access_txt = "0"},/turf/open/floor/plasteel/freezer,/area/shuttle/escape) +"be" = (/turf/open/floor/plasteel/freezer,/area/shuttle/escape) +"bf" = (/obj/structure/extinguisher_cabinet{pixel_y = 30},/turf/open/floor/plasteel/freezer,/area/shuttle/escape) +"bg" = (/obj/machinery/door/airlock{name = "Unit 1"},/turf/open/floor/plasteel/freezer,/area/shuttle/escape) +"bh" = (/obj/machinery/door/airlock{name = "Unit 2"},/turf/open/floor/plasteel/freezer,/area/shuttle/escape) +"bi" = (/obj/machinery/door/airlock{name = "Unit B"},/turf/open/floor/plasteel/freezer,/area/shuttle/escape) +"bj" = (/obj/structure/toilet{tag = "icon-toilet00 (EAST)"; icon_state = "toilet00"; dir = 4},/turf/open/floor/plasteel/freezer,/area/shuttle/escape) +"bk" = (/obj/machinery/recharge_station,/turf/open/floor/plasteel/freezer,/area/shuttle/escape) +"bl" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/turf/open/floor/plating/airless,/area/shuttle/escape) +"bm" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating/airless,/area/shuttle/escape) +"bn" = (/obj/structure/shuttle/engine/propulsion,/turf/open/floor/plating/airless,/area/shuttle/escape) + +(1,1,1) = {" +aaaaabacacacacacaaaaaa +aaabadaeafagafahaaaaaa +aaabaiajakakakalaaaaaa +aaabamakanaoapaaaaaaaa +abacaqacababaracasacaa +abacatacacauavacawacaa +abaxayayazaAacaBawaBab +aCaDaEaEacaFaGaGawaHaI +ababababadawawawawawaJ +aKaLaLaLaLawaLaLaLaLaM +abaAacacacawacacacacaM +acaGaNaOaGawaGaGaGaGaM +acawaPaQawawawawawawaJ +acaRaSaOaLaLaLaTaUaVaW +abaXaYaYacacacabababab +aZavbaavavavbbaaaaaaaa +ababababbcbdadaaaaaaaa +aZbebebfbebeabaaaaaaaa +abbgabbhabbiabaaaaaaaa +abbjabbjabbkabaaaaaaaa +ababblblblblbmaaaaaaaa +aaabbnbnbnbnbnaaaaaaaa +"} diff --git a/_maps/shuttles/emergency_supermatter.dmm b/_maps/shuttles/emergency_supermatter.dmm index e9620c3389..69ea316bb2 100644 --- a/_maps/shuttles/emergency_supermatter.dmm +++ b/_maps/shuttles/emergency_supermatter.dmm @@ -3,17 +3,11 @@ /turf/open/space, /area/space) "ab" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s6"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium/overspace, /area/shuttle/escape) "ac" = ( /obj/structure/sign/radiation, -/turf/closed/wall/shuttle{ - tag = "icon-swall12"; - icon_state = "swall12" - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/escape) "ad" = ( /obj/structure/grille, @@ -27,30 +21,27 @@ }, /area/shuttle/escape) "af" = ( -/turf/closed/wall/shuttle{ - tag = "icon-swall3"; - icon_state = "swall3" - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/escape) "ag" = ( /obj/structure/closet/radiation{ anchored = 1 }, /obj/item/clothing/glasses/meson/engine, -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/shuttle/escape) "ah" = ( /obj/structure/chair, -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/shuttle/escape) "ai" = ( -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/shuttle/escape) "aj" = ( /obj/structure/chair{ dir = 1 }, -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/shuttle/escape) "ak" = ( /obj/structure/sign/radiation, @@ -98,16 +89,13 @@ /area/shuttle/escape) "aq" = ( /obj/machinery/status_display, -/turf/closed/wall/shuttle{ - tag = "icon-swall3"; - icon_state = "swall3" - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/escape) "ar" = ( /obj/structure/chair{ dir = 8 }, -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/shuttle/escape) "as" = ( /turf/open/floor/plating/warnplate{ @@ -126,19 +114,14 @@ /obj/structure/chair{ dir = 4 }, -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/shuttle/escape) "aw" = ( -/turf/closed/wall/shuttle{ - icon_state = "swallc2"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/shuttle/escape) "ax" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_f9"; - dir = 2 - }, +/turf/open/floor/mineral/titanium/yellow, +/turf/closed/wall/mineral/titanium/interior, /area/shuttle/escape) "ay" = ( /turf/closed/wall/shuttle{ @@ -152,7 +135,7 @@ }, /area/shuttle/escape) "aA" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Emergency Shuttle Airlock" }, /turf/open/floor/plating, @@ -180,14 +163,14 @@ pixel_x = 4; pixel_y = -4 }, -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/shuttle/escape) "aE" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plasteel/shuttle/yellow, +/turf/open/floor/mineral/titanium/yellow, /area/shuttle/escape) "aF" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Emergency Shuttle Airlock" }, /obj/docking_port/mobile/emergency{ @@ -209,9 +192,7 @@ /area/shuttle/escape) "aI" = ( /obj/structure/sign/radiation, -/turf/closed/wall/shuttle{ - icon_state = "swallc1" - }, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/shuttle/escape) "aJ" = ( /obj/structure/sign/radiation, @@ -338,11 +319,9 @@ /obj/structure/shuttle/engine/propulsion, /turf/open/floor/plating/airless, /area/shuttle/escape) -"bh" = ( +"bf" = ( /obj/structure/grille, -/turf/open/floor/plating/warnplate{ - dir = 4 - }, +/turf/open/floor/plating, /area/shuttle/escape) "bg" = ( /obj/structure/grille, @@ -350,9 +329,11 @@ dir = 8 }, /area/shuttle/escape) -"bf" = ( +"bh" = ( /obj/structure/grille, -/turf/open/floor/plating, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, /area/shuttle/escape) (1,1,1) = {" @@ -366,7 +347,7 @@ aw aA aC aF -aG +aw aa aa aa @@ -380,17 +361,17 @@ aa aa "} (2,1,1) = {" -ab +af af ad -ak +ac aq ad ax ai aD ai -aH +aq aa aa aN @@ -439,7 +420,7 @@ ar ar ar aI -aG +aw aa at aa @@ -534,8 +515,8 @@ av av av av -aJ -aK +aI +aw aa at aa @@ -572,17 +553,17 @@ bc be "} (10,1,1) = {" -ae +af af ad -ak +ac aq ad -ay +ax ai aE ai -aH +aq aa aa aQ @@ -602,11 +583,11 @@ aa aa aa aa -az +aw aA aC aA -aK +aw aa aa aa diff --git a/_maps/shuttles/emergency_wabbajack.dmm b/_maps/shuttles/emergency_wabbajack.dmm index aa454b07d1..e646fb1578 100644 --- a/_maps/shuttles/emergency_wabbajack.dmm +++ b/_maps/shuttles/emergency_wabbajack.dmm @@ -3,7 +3,7 @@ /turf/open/space, /area/space) "ab" = ( -/turf/closed/wall/shuttle/smooth, +/turf/closed/wall/mineral/titanium, /area/shuttle/escape) "ac" = ( /obj/structure/grille, @@ -30,11 +30,11 @@ /area/shuttle/escape) "ai" = ( /obj/structure/sign/biohazard, -/turf/closed/wall/shuttle/smooth, +/turf/closed/wall/mineral/titanium, /area/shuttle/escape) "aj" = ( /obj/structure/barricade/wooden, -/obj/machinery/door/airlock/shuttle, +/obj/machinery/door/airlock/titanium, /turf/open/floor/plasteel/cult, /area/shuttle/escape) "ak" = ( @@ -65,7 +65,7 @@ /turf/open/floor/plasteel/cult, /area/shuttle/escape) "aq" = ( -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "ar" = ( /obj/structure/table, @@ -75,7 +75,7 @@ pixel_y = 3 }, /obj/item/weapon/crowbar, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "as" = ( /obj/structure/grille, @@ -104,16 +104,16 @@ /area/shuttle/escape) "av" = ( /obj/structure/chair, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "aw" = ( /obj/structure/chair{ dir = 8 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "ax" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Emergency Shuttle Airlock"; req_access_txt = "2" }, @@ -126,16 +126,16 @@ pixel_x = -2; pixel_y = 4 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "az" = ( /obj/machinery/computer/emergency_shuttle, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "aA" = ( /obj/structure/table, /obj/item/weapon/coin/mythril, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "aB" = ( /obj/machinery/door/airlock/glass{ @@ -145,11 +145,11 @@ /turf/open/floor/plasteel/shuttle, /area/shuttle/escape) "aC" = ( -/obj/machinery/door/airlock/shuttle, -/turf/open/floor/plasteel/shuttle/white, +/obj/machinery/door/airlock/titanium, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "aD" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Emergency Shuttle Airlock" }, /obj/docking_port/mobile/emergency{ @@ -163,7 +163,7 @@ /area/shuttle/escape) "aF" = ( /obj/machinery/door/window/eastleft, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "aG" = ( /obj/structure/extinguisher_cabinet{ @@ -176,17 +176,17 @@ pixel_y = 3 }, /obj/item/weapon/storage/box/beakers, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "aH" = ( /obj/machinery/status_display, -/turf/closed/wall/shuttle/smooth, +/turf/closed/wall/mineral/titanium, /area/shuttle/escape) "aI" = ( /obj/structure/chair{ dir = 4 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "aJ" = ( /obj/structure/chair{ @@ -195,22 +195,22 @@ /obj/structure/window/reinforced{ dir = 4 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "aK" = ( /obj/machinery/sleeper{ icon_state = "sleeper-open"; dir = 4 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "aL" = ( /obj/structure/table/reinforced, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "aM" = ( /obj/machinery/chem_dispenser, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "aN" = ( /obj/structure/table, @@ -220,7 +220,7 @@ pixel_y = 1 }, /obj/item/weapon/wrench/medical, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "aO" = ( /turf/open/floor/plating, @@ -229,19 +229,19 @@ /obj/structure/chair/office/light{ dir = 8 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "aQ" = ( /obj/machinery/chem_heater, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "aR" = ( /obj/machinery/chem_master, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "aS" = ( /obj/machinery/door/window/eastright, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "aT" = ( /obj/structure/table/glass, @@ -250,14 +250,14 @@ pixel_y = 2 }, /obj/item/weapon/reagent_containers/glass/bottle/charcoal, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/escape) "aU" = ( /obj/machinery/door/airlock/glass, /turf/open/floor/plasteel/shuttle, /area/shuttle/escape) "aV" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "Emergency Shuttle Airlock" }, /turf/open/floor/plating, @@ -291,7 +291,7 @@ }, /area/shuttle/escape) "ba" = ( -/obj/structure/cult/forge{ +/obj/structure/destructible/cult/forge{ desc = "A engine used in powering the shuttle."; name = "magma engine" }, @@ -312,7 +312,7 @@ }, /area/shuttle/escape) "bd" = ( -/obj/structure/cult/forge{ +/obj/structure/destructible/cult/forge{ desc = "A engine used in powering the shuttle."; name = "magma engine" }, @@ -333,7 +333,7 @@ /turf/open/floor/plating/airless, /area/shuttle/escape) "bh" = ( -/turf/closed/wall/shuttle/smooth/overspace, +/turf/closed/wall/mineral/titanium/overspace, /area/shuttle/escape) (1,1,1) = {" @@ -341,7 +341,7 @@ aa aa aa aa -bh +ab ab ab ax @@ -357,12 +357,12 @@ ab aV ab ab -bh +ab aa "} (2,1,1) = {" aa -bh +ab ab ab ab @@ -382,10 +382,10 @@ aW ba be ab -bh +ab "} (3,1,1) = {" -bh +ab ab ag ae @@ -529,7 +529,7 @@ bf bg "} (9,1,1) = {" -bh +ab ab ah ae @@ -554,7 +554,7 @@ bg "} (10,1,1) = {" aa -bh +ab ab ab ab @@ -574,14 +574,14 @@ aZ bd be ab -bh +ab "} (11,1,1) = {" aa aa aa aa -bh +ab as ab as @@ -597,6 +597,6 @@ ab as ab ab -bh +ab aa "} diff --git a/_maps/shuttles/ferry_base.dmm b/_maps/shuttles/ferry_base.dmm index efe2532f80..d6463d278c 100644 --- a/_maps/shuttles/ferry_base.dmm +++ b/_maps/shuttles/ferry_base.dmm @@ -7,16 +7,10 @@ icon_state = "propulsion"; dir = 4 }, -/turf/closed/wall/shuttle{ - icon_state = "swall_s6"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/transport) "c" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall12"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/transport) "d" = ( /obj/structure/window/shuttle, @@ -29,40 +23,35 @@ /turf/open/floor/plating, /area/shuttle/transport) "f" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s10"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium/overspace, /area/shuttle/transport) "g" = ( -/turf/open/floor/plasteel/shuttle, -/turf/closed/wall/shuttle/interior{ - icon_state = "swall_f9" - }, +/turf/open/floor/mineral/titanium/blue, +/turf/closed/wall/mineral/titanium/interior, /area/shuttle/transport) "h" = ( /obj/structure/chair{ dir = 4 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "i" = ( /obj/machinery/computer/shuttle/ferry/request, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "j" = ( /obj/structure/chair, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "k" = ( -/obj/machinery/door/airlock/shuttle, -/turf/open/floor/plasteel/shuttle, +/obj/machinery/door/airlock/titanium, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "l" = ( -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "m" = ( -/obj/machinery/door/airlock/shuttle, +/obj/machinery/door/airlock/titanium, /obj/docking_port/mobile{ dir = 8; dwidth = 2; @@ -70,11 +59,11 @@ id = "ferry"; name = "ferry shuttle"; roundstart_move = "ferry_away"; - travelDir = 180; + port_angle = 180; width = 5; timid = 1 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "n" = ( /obj/structure/shuttle/engine/propulsion{ @@ -94,13 +83,13 @@ /area/shuttle/transport) "p" = ( /obj/structure/closet/crate, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "q" = ( /obj/structure/chair{ dir = 1 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "r" = ( /turf/closed/wall/shuttle{ @@ -113,15 +102,15 @@ a b k -n +b a "} (2,1,1) = {" b g l -o -n +g +b "} (3,1,1) = {" c @@ -187,9 +176,9 @@ q c "} (12,1,1) = {" -f +c d m d -r +c "} diff --git a/_maps/shuttles/ferry_lighthouse.dmm b/_maps/shuttles/ferry_lighthouse.dmm index bce3237400..47a989477c 100644 --- a/_maps/shuttles/ferry_lighthouse.dmm +++ b/_maps/shuttles/ferry_lighthouse.dmm @@ -17,7 +17,7 @@ /turf/open/floor/plating/airless, /area/shuttle/transport) "ad" = ( -/turf/closed/wall/shuttle/smooth, +/turf/closed/wall/mineral/titanium, /area/shuttle/transport) "ae" = ( /turf/open/space, @@ -34,18 +34,18 @@ /area/shuttle/transport) "ai" = ( /obj/machinery/vending/liberationstation, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "aj" = ( /obj/machinery/door/airlock/vault, /turf/open/floor/plating/airless, /area/shuttle/transport) "ak" = ( -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "al" = ( /obj/machinery/computer/shuttle/ferry/request, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "am" = ( /obj/structure/grille{ @@ -59,13 +59,13 @@ dir = 8 }, /obj/machinery/vending/autodrobe, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "ao" = ( /obj/structure/mirror/magic/badmin{ pixel_x = 30 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "ap" = ( /turf/closed/wall, @@ -75,14 +75,14 @@ dir = 8 }, /obj/machinery/vending/clothing, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "ar" = ( /obj/structure/chair, /turf/open/floor/wood, /area/shuttle/transport) "as" = ( -/obj/machinery/shield, +/obj/structure/emergency_shield, /turf/open/space, /area/shuttle/transport) "at" = ( @@ -146,50 +146,46 @@ /area/shuttle/transport) "aF" = ( /obj/machinery/vending/sovietsoda, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "aG" = ( /obj/machinery/vending/snack, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "aH" = ( /obj/machinery/newscaster{ pixel_y = 30 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "aI" = ( /obj/structure/bed, /obj/item/weapon/bedsheet/wiz, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "aJ" = ( /obj/structure/chair, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "aK" = ( /obj/structure/table/wood, /obj/item/device/flashlight/lamp/green, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "aL" = ( /turf/closed/wall/rust, /area/shuttle/transport) "aM" = ( -/obj/structure/table/wood, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/wood, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/shuttle/transport) "aN" = ( /obj/machinery/power/grounding_rod{ anchored = 1 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "aO" = ( -/obj/machinery/door/airlock/shuttle, +/obj/machinery/door/airlock/titanium, /obj/docking_port/mobile{ dir = 8; dwidth = 8; @@ -198,14 +194,14 @@ name = "The Lighthouse"; roundstart_move = "ferry_away"; timid = 1; - travelDir = 180; + port_angle = 180; width = 16 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "aP" = ( /obj/machinery/vending/magivend, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "aQ" = ( /obj/structure/grille, @@ -226,26 +222,26 @@ "aT" = ( /obj/structure/bed, /obj/item/weapon/bedsheet/centcom, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "aU" = ( /obj/structure/bed, /obj/item/weapon/bedsheet/rainbow, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "aV" = ( /obj/structure/closet/crate, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "aW" = ( /obj/structure/chair{ dir = 1 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "aX" = ( /obj/structure/window/fulltile, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "aY" = ( /obj/structure/grille, @@ -253,10 +249,7 @@ /turf/closed/wall/shuttle/smooth, /area/shuttle/transport) "aZ" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s9"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium/overspace, /area/shuttle/transport) "ba" = ( /obj/machinery/conveyor{ @@ -400,7 +393,7 @@ bj "} (5,1,1) = {" ad -ad +aM ai ak ao @@ -419,7 +412,7 @@ bj (6,1,1) = {" ae ad -ad +aM al ap ap @@ -431,7 +424,7 @@ ap aL be bh -ad +aM ad "} (7,1,1) = {" @@ -439,7 +432,7 @@ ae ae ad ad -ad +aM ar au au @@ -448,7 +441,7 @@ au au aL bf -ad +aM ad ae "} @@ -483,7 +476,7 @@ aC aS aC bc -ad +aM ad ae ae @@ -518,7 +511,7 @@ aD aD aD aD -ad +aM ad ae ae @@ -553,7 +546,7 @@ ap aE aN aE -ad +aM ad ae ae @@ -639,7 +632,7 @@ ae ae ae ae -ax +ad aG aE aU @@ -657,11 +650,11 @@ ae ae ae ae -ax +ad aH aE aV -ax +ad ae ae ae @@ -693,11 +686,11 @@ ae ae ae ae -ax +ad ak aE aW -ax +ad ae ae ae @@ -711,11 +704,11 @@ ae ae ae ae -ax +ad aJ aE aW -ax +ad ae ae ae @@ -729,11 +722,11 @@ ae ae ae ae -ax +ad aJ aE aW -ax +ad ae ae ae @@ -765,11 +758,11 @@ ae ae ae ae -ax +ad aJ aE aW -ax +ad ae ae ae @@ -783,11 +776,11 @@ ae ae ae ae -ax +ad aK aE aW -ax +ad ae ae ae @@ -801,11 +794,11 @@ ae ae ae ae -aA +ad ay aO ay -aZ +ad ae ae ae diff --git a/_maps/shuttles/ferry_meat.dmm b/_maps/shuttles/ferry_meat.dmm index a818725389..071b5b4cf0 100644 --- a/_maps/shuttles/ferry_meat.dmm +++ b/_maps/shuttles/ferry_meat.dmm @@ -7,28 +7,17 @@ icon_state = "propulsion"; dir = 4 }, -/turf/closed/wall/shuttle{ - icon_state = "swall_s6"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium/overspace, /area/shuttle/transport) "c" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall12"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/transport) "d" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s10"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium/overspace, /area/shuttle/transport) "e" = ( /turf/open/floor/plasteel/freezer, -/turf/closed/wall/shuttle/interior{ - icon_state = "swall_f9" - }, +/turf/closed/wall/mineral/titanium/interior, /area/shuttle/transport) "f" = ( /obj/structure/chair{ @@ -115,11 +104,11 @@ /turf/open/floor/plating, /area/shuttle/transport) "p" = ( -/obj/machinery/door/airlock/shuttle, +/obj/machinery/door/airlock/titanium, /turf/open/floor/plasteel/freezer, /area/shuttle/transport) "q" = ( -/obj/machinery/door/airlock/shuttle, +/obj/machinery/door/airlock/titanium, /obj/docking_port/mobile{ dir = 8; dwidth = 2; @@ -127,7 +116,7 @@ id = "ferry"; name = "ferry shuttle"; roundstart_move = "ferry_away"; - travelDir = 180; + port_angle = 180; width = 5; timid = 1 }, @@ -181,15 +170,15 @@ a b p -r +b a "} (2,1,1) = {" b e i -s -r +e +b "} (3,1,1) = {" c @@ -255,9 +244,9 @@ w c "} (12,1,1) = {" -d +c o q o -x +c "} diff --git a/_maps/shuttles/whiteship_box.dmm b/_maps/shuttles/whiteship_box.dmm index 34f09e6e87..8806c72c3e 100644 --- a/_maps/shuttles/whiteship_box.dmm +++ b/_maps/shuttles/whiteship_box.dmm @@ -3,10 +3,7 @@ /turf/open/space, /area/space) "ab" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s6"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium/overspace, /area/shuttle/abandoned) "ac" = ( /turf/closed/wall/shuttle{ @@ -15,7 +12,7 @@ }, /area/shuttle/abandoned) "ad" = ( -/obj/machinery/door/airlock/shuttle, +/obj/machinery/door/airlock/titanium, /obj/docking_port/mobile{ dheight = 0; dir = 2; @@ -25,11 +22,11 @@ launch_status = 0; name = "NT Medical Ship"; roundstart_move = "whiteship_away"; - travelDir = 180; + port_angle = 180; width = 35; timid = 1 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "ae" = ( /turf/closed/wall/shuttle{ @@ -38,7 +35,7 @@ }, /area/shuttle/abandoned) "af" = ( -/obj/machinery/door/airlock/shuttle, +/obj/machinery/door/airlock/titanium, /turf/open/floor/plasteel/shuttle/white, /area/shuttle/abandoned) "ag" = ( @@ -61,17 +58,17 @@ }, /area/shuttle/abandoned) "aj" = ( -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "ak" = ( /obj/structure/table, /obj/item/device/radio/off, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "al" = ( /obj/structure/table, /obj/item/weapon/screwdriver, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "am" = ( /turf/closed/wall/shuttle{ @@ -97,9 +94,8 @@ /turf/open/floor/plating/airless, /area/shuttle/abandoned) "ap" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_f15" - }, +/turf/open/floor/plating, +/turf/closed/wall/mineral/titanium/interior, /area/shuttle/abandoned) "aq" = ( /turf/closed/wall/shuttle{ @@ -111,7 +107,7 @@ /obj/machinery/computer/pod{ id = "oldship_gun" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "as" = ( /turf/closed/wall/shuttle{ @@ -131,7 +127,7 @@ /obj/structure/rack, /obj/item/clothing/suit/space/hardsuit/medical, /obj/item/clothing/mask/breath, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "aw" = ( /obj/machinery/door/airlock/glass, @@ -171,12 +167,10 @@ /turf/open/floor/plating/airless, /area/shuttle/abandoned) "aC" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_f17" - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/abandoned) "aD" = ( -/obj/machinery/door/airlock/shuttle, +/obj/machinery/door/airlock/titanium, /turf/open/floor/plating, /area/shuttle/abandoned) "aE" = ( @@ -184,7 +178,7 @@ charge = 100; maxcharge = 15000 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "aF" = ( /turf/closed/wall/shuttle{ @@ -198,7 +192,7 @@ /obj/item/weapon/tank/internals/emergency_oxygen, /obj/item/weapon/tank/internals/emergency_oxygen, /obj/item/weapon/storage/toolbox/mechanical, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "aH" = ( /obj/structure/frame/computer{ @@ -215,17 +209,17 @@ /obj/structure/chair{ dir = 1 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "aK" = ( /obj/item/weapon/shard{ icon_state = "medium" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "aL" = ( /obj/structure/grille, -/obj/structure/window/reinforced/fulltile, +/obj/structure/window/shuttle, /turf/open/floor/plating, /area/shuttle/abandoned) "aM" = ( @@ -235,7 +229,7 @@ /area/shuttle/abandoned) "aN" = ( /obj/machinery/door/window, -/turf/open/floor/plasteel/shuttle/purple, +/turf/open/floor/mineral/titanium/purple, /area/shuttle/abandoned) "aO" = ( /obj/structure/bed, @@ -244,16 +238,16 @@ /obj/structure/window/reinforced{ dir = 4 }, -/turf/open/floor/plasteel/shuttle/purple, +/turf/open/floor/mineral/titanium/purple, /area/shuttle/abandoned) "aP" = ( /obj/structure/table, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "aQ" = ( /obj/structure/table, /obj/item/weapon/gun/energy/laser/retro, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "aR" = ( /obj/machinery/door/airlock/glass, @@ -264,32 +258,28 @@ dir = 4 }, /obj/effect/decal/remains/human, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "aT" = ( /obj/machinery/computer/shuttle/white_ship, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "aU" = ( /obj/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "aV" = ( /obj/structure/table, /obj/item/weapon/tank/internals/oxygen, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "aW" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s5"; - dir = 2 - }, +/obj/machinery/door/airlock/titanium, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "aX" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s9"; - dir = 2 - }, +/turf/open/floor/mineral/titanium, +/turf/closed/wall/mineral/titanium/interior, /area/shuttle/abandoned) "aY" = ( /obj/structure/bed, @@ -300,38 +290,38 @@ /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/floor/plasteel/shuttle/purple, +/turf/open/floor/mineral/titanium/purple, /area/shuttle/abandoned) "aZ" = ( /obj/machinery/door/window/northright, /obj/effect/decal/remains/human, -/turf/open/floor/plasteel/shuttle/purple, +/turf/open/floor/mineral/titanium/purple, /area/shuttle/abandoned) "ba" = ( /obj/machinery/portable_atmospherics/scrubber, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "bb" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_f18" +/obj/structure/frame/computer{ + anchored = 1 }, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "bc" = ( /obj/item/device/multitool, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "bd" = ( /obj/structure/chair, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "be" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_f16" - }, +/obj/machinery/door/airlock/glass, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "bf" = ( /obj/item/weapon/scalpel, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "bg" = ( /obj/structure/table, @@ -339,7 +329,7 @@ pixel_x = 6; pixel_y = -5 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "bh" = ( /obj/machinery/sleeper{ @@ -347,7 +337,7 @@ dir = 8 }, /obj/effect/decal/remains/human, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) (1,1,1) = {" @@ -359,11 +349,11 @@ aa aa aa aa -ab -aq -af -aq +aC +aC aW +aC +aC aa aa aa @@ -383,11 +373,11 @@ aa aa aa aa -aA -au +aC +aX aj -aF -ah +aX +aC aa aa aa @@ -407,11 +397,11 @@ aa aa aa aa -ae +aC aj aj aj -ae +aC aa aa aa @@ -431,11 +421,11 @@ aa aa aa aa -ae +aC aj aj aj -ae +aC aa aa aa @@ -455,11 +445,11 @@ aa aa aa aa -ae +aC aj aj aj -ae +aC aa aa aa @@ -479,11 +469,11 @@ aa aa aa aa -ae +aC aj aj aj -ae +aC aa aa aa @@ -503,11 +493,11 @@ aa aa aa aa -ae +aC aj aj aj -ae +aC aa aa aa @@ -527,11 +517,11 @@ aa aa aa aa -ae +aC aj aj aj -ae +aC aa aa aa @@ -551,11 +541,11 @@ aa aa aa aa -ae +aC aj aj aU -ae +aC aa aa aa @@ -575,11 +565,11 @@ aa aa aa aa -aA -aI +aC +aX aj -az -ah +aX +aC aa aa aa @@ -599,11 +589,11 @@ aa aa aa aa -ac -aq -af -aq -aX +aC +aC +aW +aC +aC aa aa aa @@ -624,9 +614,9 @@ aa aa aa aa -ae +aC aj -ae +aC aa aa aa @@ -647,11 +637,11 @@ aa aa aa aa -ab -aq -af -aq +aC +aC aW +aC +aC aa aa aa @@ -670,13 +660,13 @@ aa aa aa aa -ab -aq -au +aC +aC +aX aj -aF -aq -aW +aX +aC +aC aa aa aa @@ -687,85 +677,85 @@ aa aa "} (15,1,1) = {" -ab +aC ag an an an aB aa -aA -au +aC +aX aj aj aj -aF -ah +aX +aC aa ag an an an aB -aW +aC aa "} (16,1,1) = {" -ac -ah +aC +aC ao ao ao -ae -ab -ah +aC +aC +aC aj aj aj aj aj -aA -aW -ae +aC +aC +aC ao ao ao -aA -aX +aC +aC aa "} (17,1,1) = {" aa -ac +aC ap at at +ap aC -aq -au -aj -aj -aj -aj -aj -aF -aq -bb -at -at -be aX +aj +aj +aj +aj +aj +aX +aC +ap +at +at +ap +aC aa aa "} (18,1,1) = {" aa aa -ac +aC ap at at -ae +aC aj aj aj @@ -773,11 +763,11 @@ aj aj aj ba -ae +aC at at -be -aX +ap +aC aa aa aa @@ -786,21 +776,21 @@ aa aa aa aa -ac -as +aC +aC aD -ai -am -am -aM -aR -aM -am -am -ai +aC +aC +aC +aL +be +aL +aC +aC +aC aD -as -aX +aC +aC aa aa aa @@ -810,8 +800,8 @@ aa aa aa aa -ab -ah +aC +aC aj aj aj @@ -823,8 +813,8 @@ aj aj aj aj -aA -aW +aC +aC aa aa aa @@ -833,9 +823,9 @@ aa (21,1,1) = {" aa aa -ab -aq -au +aC +aC +aX aE aj aj @@ -847,18 +837,18 @@ aj aj aj aj -aA -aq -aW +aC +aC +aC aa aa aa "} (22,1,1) = {" aa -ab -aq -au +aC +aC +aX aj aj aj @@ -871,21 +861,21 @@ am aI aj aj -aA -ai -aq -aW +aC +aC +aC +aC aa aa "} (23,1,1) = {" -ab -ai -ai -am -am -as -aI +aC +aC +aC +aC +aC +aC +aX aj ae aN @@ -895,10 +885,10 @@ aj af aj aj -af +aW aj -aF -ah +aX +aC aa aa "} @@ -908,8 +898,8 @@ aj aj av av -aF -ah +aX +aC aj ae aO @@ -919,21 +909,21 @@ aY ae aj aj -ae +aC aj bg -aA -aW +aC +aC aa "} (25,1,1) = {" -ae +aC aj aj aj aj aG -ae +aC aj af aj @@ -943,21 +933,21 @@ aZ ae aj aj -ae +aC aj aj -aF -ah +aX +aC aa "} (26,1,1) = {" -ae +aC ak aj aj aj aj -ae +aC aj aF am @@ -971,17 +961,17 @@ aL bf aj aj -ae +aC aa "} (27,1,1) = {" -ae +aC al aj aj aj aj -af +aW aj aj aj @@ -995,18 +985,18 @@ aL aj aj bh -ae +aC aa "} (28,1,1) = {" -ae +aC aj aj aj aj aj -aA -aI +aC +aX aj aj aj @@ -1019,64 +1009,64 @@ aL aj aj aj -ae +aC aa "} (29,1,1) = {" -ae +aC aj aj aj aj -az -aq -ai -am +aX +aC +aC +aC aL aR aL -am -am -am -am -ah +aC +aC +aC +aC +aC aj aj aj -ae +aC aa "} (30,1,1) = {" -ae +aC aj aj aj -az -aq -au -aj -aj -aj -aj -aj -aj -aP -aP -aP -ae -aj -aj -az aX +aC +aX +aj +aj +aj +aj +aj +aj +aP +aP +aP +aC +aj +aj +aX +aC aa "} (31,1,1) = {" -af +aW aj ar aj -aq -au +aC +aX aj aj aj @@ -1087,20 +1077,20 @@ aj aj aj aj -aF -aI -aH -ae +aX +aX +bb +aC aa aa "} (32,1,1) = {" -ac -am -as +aC +aC +aC aw -ae -aH +aC +bb aJ aj aj @@ -1112,19 +1102,19 @@ aj aj bd aH -aA -as -aX +aC +aC +aC aa aa "} (33,1,1) = {" aa aa -ae +aC ax -ah -aH +aC +bb aJ aj aj @@ -1135,9 +1125,9 @@ aj aj aj aj -az -aq aX +aC +aC aa aa aa @@ -1145,10 +1135,10 @@ aa (34,1,1) = {" aa aa -ac +aC ay -aA -aI +aC +aX aK aj aj @@ -1158,9 +1148,9 @@ aP aj aj aj -az -aq aX +aC +aC aa aa aa @@ -1171,9 +1161,9 @@ aa aa aa aa -ac -ai -am +aC +aC +aC aL aL aL @@ -1181,9 +1171,9 @@ aL aL aL aL -am -ai -aX +aC +aC +aC aa aa aa diff --git a/_maps/shuttles/whiteship_meta.dmm b/_maps/shuttles/whiteship_meta.dmm index b5344f4198..0b3256aef2 100644 --- a/_maps/shuttles/whiteship_meta.dmm +++ b/_maps/shuttles/whiteship_meta.dmm @@ -3,16 +3,10 @@ /turf/open/space, /area/space) "ab" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s6"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium/overspace, /area/shuttle/abandoned) "ac" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall14"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/abandoned) "ad" = ( /turf/closed/wall/shuttle{ @@ -40,29 +34,30 @@ id = "whiteship"; launch_status = 0; name = "NT Recovery White-Ship"; + port_angle = 180; + preferred_direction = 1; roundstart_move = "whiteship_away"; - travelDir = 180; - width = 27; - timid = 1 + timid = 1; + width = 27 }, -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "recovery shuttle external airlock" }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "ah" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "recovery shuttle external airlock" }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "ai" = ( /turf/closed/wall/shuttle{ @@ -106,7 +101,7 @@ /obj/effect/decal/cleanable/greenglow{ desc = "Looks like something's sprung a leak" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "ao" = ( /obj/structure/mirror{ @@ -127,7 +122,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "ap" = ( /turf/closed/wall/shuttle{ @@ -149,7 +144,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "ar" = ( /obj/structure/table, @@ -160,7 +155,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "as" = ( /obj/structure/table, @@ -177,7 +172,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "at" = ( /obj/machinery/suit_storage_unit/standard_unit, @@ -185,7 +180,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "au" = ( /obj/structure/tank_dispenser/oxygen{ @@ -197,7 +192,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "av" = ( /turf/closed/wall/shuttle{ @@ -212,7 +207,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "ax" = ( /obj/effect/decal/cleanable/dirt{ @@ -223,7 +218,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "ay" = ( /obj/structure/closet/crate/medical{ @@ -301,7 +296,7 @@ /obj/effect/spawner/lootdrop/maintenance, /obj/item/weapon/extinguisher, /obj/item/weapon/extinguisher, -/obj/effect/decal/cleanable/cobweb2, +/obj/effect/decal/cleanable/cobweb/cobweb2, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" @@ -338,14 +333,14 @@ }, /area/shuttle/abandoned) "aG" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "bathroom" }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "aH" = ( /obj/effect/decal/cleanable/blood/old, @@ -361,7 +356,7 @@ name = "remains" }, /obj/item/weapon/gun/energy/laser/retro, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "aI" = ( /obj/structure/bed, @@ -372,7 +367,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "aJ" = ( /obj/structure/table, @@ -386,7 +381,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "aK" = ( /obj/effect/decal/cleanable/dirt{ @@ -394,24 +389,24 @@ name = "dust" }, /obj/effect/decal/cleanable/oil, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "aL" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "aM" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "E.V.A. equipment" }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "aN" = ( /obj/effect/decal/cleanable/blood/old, @@ -426,10 +421,10 @@ icon_state = "remains"; name = "remains" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "aO" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "cargo bay" }, /turf/open/floor/plasteel/delivery{ @@ -486,7 +481,7 @@ name = "remains" }, /obj/effect/decal/cleanable/blood/gibs/old, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "aT" = ( /obj/effect/decal/cleanable/blood/old, @@ -498,7 +493,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "aU" = ( /obj/effect/decal/cleanable/blood/old, @@ -511,7 +506,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "aV" = ( /obj/structure/bed, @@ -520,7 +515,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "aW" = ( /obj/structure/table, @@ -537,7 +532,7 @@ name = "dust" }, /obj/item/weapon/wrench, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "aX" = ( /obj/structure/rack{ @@ -562,7 +557,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "aY" = ( /obj/machinery/portable_atmospherics/canister/oxygen, @@ -570,7 +565,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "aZ" = ( /turf/closed/wall/shuttle{ @@ -578,8 +573,6 @@ }, /area/shuttle/abandoned) "ba" = ( -/obj/structure/frame/machine, -/obj/item/weapon/circuitboard/machine/cyborgrecharger, /obj/effect/decal/cleanable/oil, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; @@ -604,7 +597,7 @@ /turf/open/floor/plasteel/bot, /area/shuttle/abandoned) "bd" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "bathroom" }, /obj/effect/decal/cleanable/blood/old, @@ -612,7 +605,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "be" = ( /turf/closed/wall/shuttle{ @@ -621,7 +614,7 @@ }, /area/shuttle/abandoned) "bf" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "dormitory" }, /obj/effect/decal/cleanable/blood/old, @@ -629,7 +622,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "bg" = ( /obj/machinery/vending/boozeomat{ @@ -656,7 +649,7 @@ }, /area/shuttle/abandoned) "bj" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "recovery shuttle interior airlock" }, /obj/effect/decal/cleanable/dirt{ @@ -667,7 +660,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "bk" = ( /turf/closed/wall/shuttle{ @@ -676,7 +669,7 @@ }, /area/shuttle/abandoned) "bl" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "cargo bay" }, /obj/effect/decal/cleanable/dirt{ @@ -691,7 +684,7 @@ /obj/machinery/vending/cigarette{ use_power = 0 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "bn" = ( /obj/effect/decal/cleanable/blood/old, @@ -700,7 +693,7 @@ name = "dust" }, /obj/effect/decal/cleanable/blood/gibs/limb, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "bo" = ( /obj/effect/decal/cleanable/blood/gibs/old, @@ -708,7 +701,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "bp" = ( /obj/effect/decal/cleanable/blood/old, @@ -716,24 +709,23 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "bq" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/decal/cleanable/cobweb2, -/turf/open/floor/plasteel/shuttle, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "br" = ( -/obj/structure/frame/computer, /obj/effect/decal/cleanable/cobweb, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "bs" = ( /obj/structure/table, @@ -742,7 +734,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "bt" = ( /obj/structure/table, @@ -751,7 +743,7 @@ name = "dust" }, /obj/item/weapon/storage/photo_album, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "bu" = ( /obj/structure/table, @@ -763,7 +755,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "bv" = ( /obj/structure/reagent_dispensers/fueltank, @@ -774,21 +766,21 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "bw" = ( /obj/machinery/vending/coffee{ pixel_x = -2; use_power = 0 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "bx" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "by" = ( /obj/structure/chair, @@ -796,7 +788,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "bz" = ( /obj/effect/decal/cleanable/dirt{ @@ -807,7 +799,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "bA" = ( /obj/effect/decal/cleanable/dirt{ @@ -818,7 +810,7 @@ dir = 1; pixel_y = 0 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "bB" = ( /obj/effect/decal/cleanable/dirt{ @@ -833,7 +825,7 @@ dir = 1; pixel_y = 0 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "bC" = ( /obj/structure/chair/office/light{ @@ -843,7 +835,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "bD" = ( /obj/structure/table, @@ -857,17 +849,17 @@ pixel_x = -1; pixel_y = 2 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "bE" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "recovery shuttle interior airlock" }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "bF" = ( /obj/structure/chair{ @@ -877,7 +869,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "bG" = ( /obj/structure/table, @@ -886,7 +878,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "bH" = ( /obj/structure/table, @@ -902,7 +894,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "bI" = ( /obj/structure/table, @@ -911,7 +903,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "bJ" = ( /obj/structure/chair{ @@ -921,17 +913,17 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "bK" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "living quarters" }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "bL" = ( /obj/effect/decal/cleanable/dirt{ @@ -948,7 +940,7 @@ }, /obj/item/weapon/reagent_containers/spray/cleaner, /obj/structure/table, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "bM" = ( /obj/item/clothing/suit/bio_suit, @@ -964,7 +956,7 @@ /obj/item/clothing/mask/breath, /obj/item/clothing/mask/breath, /obj/structure/table, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "bN" = ( /obj/effect/decal/cleanable/blood/gibs/old, @@ -979,7 +971,7 @@ icon_state = "remains"; name = "remains" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "bO" = ( /obj/effect/decal/cleanable/blood/old, @@ -988,7 +980,7 @@ name = "dust" }, /obj/effect/decal/cleanable/blood/gibs/limb, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "bP" = ( /obj/effect/decal/cleanable/dirt{ @@ -1002,7 +994,7 @@ /obj/structure/table, /obj/item/clothing/head/helmet/swat/nanotrasen, /obj/item/clothing/head/helmet/swat/nanotrasen, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "bQ" = ( /obj/item/weapon/storage/toolbox/emergency{ @@ -1019,17 +1011,17 @@ name = "dust" }, /obj/structure/table, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "bR" = ( -/obj/machinery/door/airlock/shuttle{ +/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/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "bS" = ( /obj/effect/decal/cleanable/blood/old, @@ -1040,7 +1032,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "bT" = ( /obj/effect/decal/cleanable/dirt{ @@ -1048,7 +1040,7 @@ name = "dust" }, /obj/machinery/computer/shuttle/white_ship, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "bU" = ( /obj/structure/reagent_dispensers/watertank, @@ -1056,14 +1048,14 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "bV" = ( /obj/machinery/vending/cola{ pixel_x = -1; use_power = 0 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "bW" = ( /obj/structure/chair{ @@ -1073,7 +1065,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "bX" = ( /obj/effect/decal/cleanable/dirt{ @@ -1084,7 +1076,7 @@ dir = 2; pixel_y = 3 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "bY" = ( /obj/effect/decal/cleanable/dirt{ @@ -1099,7 +1091,7 @@ dir = 2; pixel_y = 3 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "bZ" = ( /obj/structure/chair/office/light, @@ -1107,7 +1099,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "ca" = ( /obj/effect/decal/cleanable/blood/old, @@ -1126,7 +1118,7 @@ icon_state = "remains"; name = "remains" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "cb" = ( /obj/item/weapon/phone{ @@ -1142,7 +1134,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "cc" = ( /turf/closed/wall/shuttle{ @@ -1155,7 +1147,7 @@ pixel_x = -1; use_power = 0 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "ce" = ( /obj/structure/sign/science{ @@ -1165,7 +1157,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "cf" = ( /obj/structure/frame/computer, @@ -1173,7 +1165,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "cg" = ( /obj/structure/table, @@ -1182,7 +1174,7 @@ name = "dust" }, /obj/item/device/megaphone, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "ch" = ( /obj/structure/table, @@ -1191,7 +1183,7 @@ name = "dust" }, /obj/item/device/mass_spectrometer, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "ci" = ( /obj/structure/table, @@ -1202,54 +1194,48 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "cj" = ( /obj/structure/sign/botany, -/turf/closed/wall/shuttle{ - icon_state = "swall8"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/abandoned) "ck" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "hydroponics" }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "cl" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "kitchen" }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "cm" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ name = "laboratory" }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "cn" = ( /obj/structure/sign/bluecross_2, -/turf/closed/wall/shuttle{ - icon_state = "swall8"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/abandoned) "co" = ( -/obj/machinery/door/airlock/shuttle{ +/obj/machinery/door/airlock/titanium{ icon_state = "door_closed"; name = "medbay"; welded = 0 @@ -1258,7 +1244,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "cp" = ( /turf/closed/wall/shuttle{ @@ -1285,14 +1271,14 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "cr" = ( /obj/machinery/biogenerator{ idle_power_usage = 0; use_power = 0 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "cs" = ( /obj/machinery/vending/hydroseeds{ @@ -1303,7 +1289,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "ct" = ( /obj/machinery/processor, @@ -1311,7 +1297,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "cu" = ( /obj/structure/kitchenspike, @@ -1320,7 +1306,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "cv" = ( /obj/structure/table, @@ -1333,17 +1319,16 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/decal/cleanable/cobweb2, -/turf/open/floor/plasteel/shuttle/white, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "cw" = ( -/obj/structure/fluff/empty_sleeper/nanotrasen, /obj/effect/decal/cleanable/oil, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "cx" = ( /obj/structure/fluff/empty_sleeper/nanotrasen, @@ -1352,7 +1337,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "cy" = ( /obj/machinery/sleeper{ @@ -1363,7 +1348,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "cz" = ( /obj/structure/closet/crate/freezer, @@ -1378,7 +1363,7 @@ name = "dust" }, /obj/effect/decal/cleanable/xenoblood, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "cA" = ( /obj/structure/table/optable, @@ -1388,7 +1373,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "cB" = ( /obj/structure/table, @@ -1404,7 +1389,7 @@ /obj/item/weapon/wirecutters, /obj/item/device/plant_analyzer, /obj/item/weapon/reagent_containers/glass/bucket, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "cC" = ( /obj/structure/sink{ @@ -1417,16 +1402,13 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "cD" = ( /obj/machinery/smartfridge{ use_power = 0 }, -/turf/closed/wall/shuttle{ - icon_state = "swall3"; - dir = 2 - }, +/turf/closed/wall/mineral/titanium, /area/shuttle/abandoned) "cE" = ( /obj/structure/sink{ @@ -1439,7 +1421,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "cF" = ( /obj/effect/decal/cleanable/egg_smudge, @@ -1448,7 +1430,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "cG" = ( /obj/structure/table, @@ -1458,7 +1440,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "cH" = ( /obj/structure/fluff/empty_sleeper/nanotrasen, @@ -1467,7 +1449,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "cI" = ( /obj/structure/chair/office/light, @@ -1479,7 +1461,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "cJ" = ( /obj/structure/fluff/empty_sleeper/nanotrasen, @@ -1487,7 +1469,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "cK" = ( /obj/machinery/vending/wallmed{ @@ -1505,7 +1487,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "cL" = ( /obj/effect/decal/cleanable/dirt{ @@ -1514,7 +1496,7 @@ }, /obj/effect/decal/cleanable/ash, /obj/effect/decal/cleanable/xenoblood, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "cM" = ( /obj/effect/decal/cleanable/xenoblood, @@ -1528,7 +1510,7 @@ icon_state = "remainsxeno"; name = "remains" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "cN" = ( /obj/structure/sink{ @@ -1543,7 +1525,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "cO" = ( /obj/structure/shuttle/engine/propulsion{ @@ -1558,7 +1540,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "cQ" = ( /obj/machinery/hydroponics/constructable, @@ -1567,7 +1549,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "cR" = ( /obj/structure/table, @@ -1578,7 +1560,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "cS" = ( /obj/structure/table, @@ -1592,7 +1574,7 @@ /obj/item/weapon/storage/fancy/egg_box{ pixel_y = 5 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "cT" = ( /obj/structure/table, @@ -1607,7 +1589,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "cU" = ( /obj/structure/table, @@ -1627,7 +1609,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "cV" = ( /obj/structure/table, @@ -1642,7 +1624,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "cW" = ( /obj/structure/table, @@ -1651,7 +1633,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "cX" = ( /obj/structure/table, @@ -1660,7 +1642,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "cY" = ( /obj/structure/table, @@ -1669,7 +1651,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "cZ" = ( /obj/structure/table, @@ -1685,7 +1667,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "da" = ( /obj/structure/table, @@ -1696,7 +1678,7 @@ name = "dust" }, /obj/item/clothing/suit/apron/surgical, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "db" = ( /obj/structure/table, @@ -1706,7 +1688,7 @@ name = "surgical dufflebag"; pixel_y = 4 }, -/turf/open/floor/plasteel/shuttle/white, +/turf/open/floor/mineral/titanium, /area/shuttle/abandoned) (1,1,1) = {" @@ -1715,11 +1697,11 @@ aa aa aa aa -ab -av +ac +ac ah -aZ -cc +ac +ac aa aa aa @@ -1744,55 +1726,55 @@ cO aa "} (3,1,1) = {" -ab -al -aD -aD -ai -am -av -bE -aZ -am -bk +ac +ac aD aD ac -cc +ac +ac +bE +ac +ac +ac +aD +aD +ac +ac "} (4,1,1) = {" ac -am -aE -ap -al +ac +ac +ac +ac bm bw ax bV cd ac -ap -ap -am -al +ac +ac +ac +ac "} (5,1,1) = {" -ad +ac an -aF +ac aS -aF +ac aL aL aL aL aL -ad +ac cq cB cP -ad +ac "} (6,1,1) = {" ae @@ -1813,10 +1795,10 @@ ae "} (7,1,1) = {" ac -ap -ap -ap -be +ac +ac +ac +ac bo by bG @@ -1839,14 +1821,14 @@ by bH bW aL -bh +ac cs cC cP -ad +ac "} (9,1,1) = {" -ad +ac ar aI aV @@ -1856,18 +1838,18 @@ by bI bW aL -af -ap +ac +ac cD -ap -al +ac +ac "} (10,1,1) = {" ac -ap -ap -ap -al +ac +ac +ac +ac aL bz bJ @@ -1877,20 +1859,20 @@ cl aL cE cR -ad +ac "} (11,1,1) = {" -ad +ac as aJ aW -ad +ac bq aL ax aL aL -bh +ac ct ax cS @@ -1901,13 +1883,13 @@ ae at aK aX -af -ap -av +ac +ac +ac bK -aZ -ap -al +ac +ac +ac cu cF cT @@ -1924,45 +1906,45 @@ aL aL aL aL -ad +ac cv cG cU -ad +ac "} (14,1,1) = {" -ad +ac au aL aY -bh +ac aL -bA +bx bL -bX +bx aL ac -ap -ap -ap -al +ac +ac +ac +ac "} (15,1,1) = {" -af +ac av aM -aZ -bi +ac +ac aL -bB +bz bM -bY +bz ce -aF +ac cw -cH +bx cV -ad +ac "} (16,1,1) = {" ag @@ -1992,45 +1974,45 @@ aL bO ax aL -bh -cx -cJ +ac +bx +bx cX -ad +ac "} (18,1,1) = {" -ai -av +ac +ac aO -aZ -bk +ac +ac aL -bA +bx bP -bX +bx aL ac -ap -ap -ap -al +ac +ac +ac +ac "} (19,1,1) = {" -ad +ac ay aP ba -aF +ac aL -bA +bx bQ -bY +bz aL cn cy cK cY -ad +ac "} (20,1,1) = {" ae @@ -2054,51 +2036,51 @@ ae aA aQ bb -ai -ap -av +ac +ac +ac bR -aZ -ap -bk +ac +ac +ac cz cM da ae "} (22,1,1) = {" -ad +ac aB aR bc -ad +ac br bC aL bZ -cf -ad +bx +ac cA cN db -ad +ac "} (23,1,1) = {" -aj -ap +ac +ac ae -ap -al +ac +ac bs ax aL bp cg ac -ap +ac ae -ap -cp +ac +ac "} (24,1,1) = {" aa @@ -2139,13 +2121,13 @@ aa aa aa aa -aj +ac ae ae ae ae ae -cp +ac aa aa aa diff --git a/_maps/shuttles/whiteship_pubby.dmm b/_maps/shuttles/whiteship_pubby.dmm new file mode 100644 index 0000000000..7f17a983dc --- /dev/null +++ b/_maps/shuttles/whiteship_pubby.dmm @@ -0,0 +1,31 @@ +"a" = (/turf/open/space,/area/space) +"b" = (/turf/closed/wall/mineral/titanium,/area/shuttle/abandoned) +"c" = (/obj/structure/shuttle/engine/propulsion/burst{tag = "icon-propulsion (NORTH)"; icon_state = "propulsion"; dir = 1},/turf/closed/wall/mineral/titanium,/area/shuttle/abandoned) +"d" = (/obj/machinery/door/airlock/glass{name = "Shuttle Airlock"},/turf/open/floor/plasteel/black,/area/shuttle/abandoned) +"e" = (/turf/open/floor/plasteel/black,/area/shuttle/abandoned) +"f" = (/turf/open/floor/plasteel,/area/shuttle/abandoned) +"g" = (/obj/structure/shuttle/engine/propulsion/burst{dir = 4},/turf/closed/wall/mineral/titanium,/area/shuttle/abandoned) +"h" = (/obj/structure/window/reinforced{dir = 1; layer = 2.9},/obj/structure/window/reinforced{dir = 8},/obj/structure/table/glass,/obj/item/weapon/gun/medbeam,/turf/open/floor/plating/abductor,/area/shuttle/abandoned) +"i" = (/obj/structure/chair,/turf/open/floor/plating/abductor,/area/shuttle/abandoned) +"j" = (/obj/structure/window/reinforced{dir = 1; layer = 2.9},/obj/structure/window/reinforced{dir = 4},/obj/structure/table/glass,/obj/machinery/recharger,/obj/item/weapon/gun/energy/laser/retro,/turf/open/floor/plating/abductor,/area/shuttle/abandoned) +"k" = (/obj/structure/shuttle/engine/propulsion/burst{tag = "icon-propulsion (WEST)"; icon_state = "propulsion"; dir = 8},/turf/closed/wall/mineral/titanium,/area/shuttle/abandoned) +"l" = (/obj/structure/chair{dir = 4},/turf/open/floor/plating/abductor,/area/shuttle/abandoned) +"m" = (/obj/machinery/computer/shuttle/white_ship,/turf/open/floor/plating/abductor,/area/shuttle/abandoned) +"n" = (/obj/structure/chair{dir = 8},/turf/open/floor/plating/abductor,/area/shuttle/abandoned) +"o" = (/obj/machinery/door/airlock/glass{name = "Shuttle Airlock"},/obj/docking_port/mobile{dheight = 0; dir = 8; dwidth = 4; height = 9; id = "whiteship"; launch_status = 0; name = "White Ship"; port_angle = 90; preferred_direction = 1; roundstart_move = "whiteship_away"; timid = 1; width = 9},/turf/open/floor/plasteel/black,/area/shuttle/abandoned) +"p" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/table/glass,/obj/item/weapon/tank/internals/oxygen,/obj/item/clothing/mask/breath,/obj/item/clothing/suit/space/hardsuit/engine/elite,/turf/open/floor/plating/abductor,/area/shuttle/abandoned) +"q" = (/obj/structure/chair{dir = 1},/turf/open/floor/plating/abductor,/area/shuttle/abandoned) +"r" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/table/glass,/obj/item/clothing/shoes/magboots,/turf/open/floor/plating/abductor,/area/shuttle/abandoned) +"s" = (/obj/structure/shuttle/engine/propulsion/burst,/turf/closed/wall/mineral/titanium,/area/shuttle/abandoned) + +(1,1,1) = {" +aabcdcbaa +abbefebba +bbeefeebb +geehijeek +dfflmnffo +geepqreek +bbeefeebb +abbefebba +aabsdsbaa +"} diff --git a/_maps/templates/medium_shuttle1.dmm b/_maps/templates/medium_shuttle1.dmm index db4cdf2aaf..7a75899024 100644 --- a/_maps/templates/medium_shuttle1.dmm +++ b/_maps/templates/medium_shuttle1.dmm @@ -28,32 +28,31 @@ name = "Shuttle" }) "d" = ( -/turf/closed/indestructible/opshuttle, +/turf/closed/wall/mineral/plastitanium, /area/ruin/powered{ name = "Shuttle" }) "e" = ( /turf/open/space, -/turf/closed/indestructible/opshuttle{ - tag = "icon-wall3 (NORTHEAST)"; - icon_state = "wall3"; - dir = 5 +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" }, /area/ruin/powered{ name = "Shuttle" }) "f" = ( -/turf/closed/wall/shuttle/smooth, -/turf/closed/indestructible/opshuttle{ - tag = "icon-wall3 (SOUTHEAST)"; - icon_state = "wall3"; - dir = 6 +/turf/open/floor/plating, +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" }, +/turf/closed/wall/mineral/titanium, /area/ruin/powered{ name = "Shuttle" }) "g" = ( -/turf/closed/wall/shuttle/smooth, +/turf/closed/wall/mineral/titanium, /area/ruin/powered{ name = "Shuttle" }) @@ -64,7 +63,7 @@ name = "Shuttle" }) "i" = ( -/turf/closed/wall/shuttle/smooth/overspace, +/turf/closed/wall/mineral/titanium/overspace, /area/ruin/powered{ name = "Shuttle" }) @@ -159,21 +158,20 @@ name = "Shuttle" }) "x" = ( -/turf/closed/wall/shuttle/smooth, -/turf/closed/indestructible/opshuttle{ - tag = "icon-wall3 (NORTHEAST)"; - icon_state = "wall3"; - dir = 5 +/turf/open/floor/plating, +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" }, +/turf/closed/wall/mineral/titanium, /area/ruin/powered{ name = "Shuttle" }) "y" = ( /turf/open/space, -/turf/closed/indestructible/opshuttle{ - tag = "icon-wall3 (SOUTHEAST)"; - icon_state = "wall3"; - dir = 6 +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" }, /area/ruin/powered{ name = "Shuttle" diff --git a/_maps/templates/medium_shuttle2.dmm b/_maps/templates/medium_shuttle2.dmm index 5d2af9c565..0b81941ced 100644 --- a/_maps/templates/medium_shuttle2.dmm +++ b/_maps/templates/medium_shuttle2.dmm @@ -28,20 +28,15 @@ name = "Shuttle" }) "d" = ( -/turf/closed/indestructible/opshuttle{ - tag = "icon-wall3 (EAST)"; - icon_state = "wall3"; - dir = 4 - }, +/turf/closed/wall/mineral/plastitanium, /area/ruin/powered{ name = "Shuttle" }) "e" = ( /turf/open/space, -/turf/closed/indestructible/opshuttle{ - tag = "icon-wall3 (NORTHEAST)"; - icon_state = "wall3"; - dir = 5 +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" }, /area/ruin/powered{ name = "Shuttle" @@ -57,31 +52,30 @@ name = "Shuttle" }) "g" = ( -/turf/closed/wall/shuttle, -/turf/closed/indestructible/opshuttle{ - tag = "icon-wall3 (SOUTHEAST)"; - icon_state = "wall3"; - dir = 6 +/turf/open/floor/plating, +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" }, +/turf/closed/wall/mineral/titanium, /area/ruin/powered{ name = "Shuttle" }) "h" = ( -/turf/closed/wall/shuttle, +/turf/closed/wall/mineral/titanium, /area/ruin/powered{ name = "Shuttle" }) "i" = ( -/turf/closed/wall/shuttle/smooth/overspace, +/turf/closed/wall/mineral/titanium/overspace, /area/ruin/powered{ name = "Shuttle" }) "j" = ( /turf/open/space, -/turf/closed/indestructible/opshuttle{ - tag = "icon-wall3 (NORTHWEST)"; - icon_state = "wall3"; - dir = 9 +/turf/closed/wall/mineral/plastitanium{ + dir = 8; + icon_state = "diagonalWall3" }, /area/ruin/powered{ name = "Shuttle" @@ -120,10 +114,8 @@ }) "q" = ( /turf/open/space, -/turf/closed/indestructible/opshuttle{ - tag = "icon-wall3 (SOUTHWEST)"; - icon_state = "wall3"; - dir = 10 +/turf/closed/wall/mineral/plastitanium{ + icon_state = "diagonalWall3" }, /area/ruin/powered{ name = "Shuttle" @@ -187,25 +179,29 @@ name = "Shuttle" }) "z" = ( -/turf/closed/wall/shuttle, -/turf/closed/indestructible/opshuttle{ - tag = "icon-wall3 (NORTHEAST)"; - icon_state = "wall3"; - dir = 5 +/turf/open/floor/plating, +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" }, +/turf/closed/wall/mineral/titanium, /area/ruin/powered{ name = "Shuttle" }) "A" = ( /turf/open/space, -/turf/closed/indestructible/opshuttle{ - tag = "icon-wall3 (SOUTHEAST)"; - icon_state = "wall3"; - dir = 6 +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" }, /area/ruin/powered{ name = "Shuttle" }) +"B" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ruin/powered{ + name = "Shuttle" + }) (1,1,1) = {" a @@ -318,9 +314,9 @@ g h n h -h +B w -h +B h n h @@ -334,7 +330,7 @@ k k h h -h +B h h k diff --git a/_maps/templates/medium_shuttle3.dmm b/_maps/templates/medium_shuttle3.dmm index 359922091b..406677afd9 100644 --- a/_maps/templates/medium_shuttle3.dmm +++ b/_maps/templates/medium_shuttle3.dmm @@ -13,7 +13,7 @@ name = "Shuttle" }) "c" = ( -/turf/closed/indestructible/opshuttle, +/turf/closed/wall/mineral/plastitanium, /area/ruin/powered{ name = "Shuttle" }) @@ -29,46 +29,43 @@ }) "e" = ( /turf/open/space, -/turf/closed/indestructible/opshuttle{ - tag = "icon-wall3 (NORTHWEST)"; - icon_state = "wall3"; - dir = 9 +/turf/closed/wall/mineral/plastitanium{ + dir = 8; + icon_state = "diagonalWall3" }, /area/ruin/powered{ name = "Shuttle" }) "f" = ( /turf/open/space, -/turf/closed/indestructible/opshuttle{ - tag = "icon-wall3 (NORTHEAST)"; - icon_state = "wall3"; - dir = 5 +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" }, /area/ruin/powered{ name = "Shuttle" }) "g" = ( -/turf/closed/wall/shuttle/smooth, -/turf/closed/indestructible/opshuttle{ - tag = "icon-wall3 (SOUTHEAST)"; - icon_state = "wall3"; - dir = 6 +/turf/open/floor/plating, +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" }, +/turf/closed/wall/mineral/titanium, /area/ruin/powered{ name = "Shuttle" }) "h" = ( -/turf/closed/wall/shuttle/smooth, +/turf/closed/wall/mineral/titanium, /area/ruin/powered{ name = "Shuttle" }) "i" = ( -/turf/closed/wall/shuttle/smooth, -/turf/closed/indestructible/opshuttle{ - tag = "icon-wall3 (SOUTHWEST)"; - icon_state = "wall3"; - dir = 10 +/turf/open/floor/plating, +/turf/closed/wall/mineral/plastitanium{ + icon_state = "diagonalWall3" }, +/turf/closed/wall/mineral/titanium, /area/ruin/powered{ name = "Shuttle" }) @@ -141,12 +138,12 @@ name = "Shuttle" }) "s" = ( -/turf/closed/wall/shuttle/smooth, -/turf/closed/indestructible/opshuttle{ - tag = "icon-wall3 (NORTHEAST)"; - icon_state = "wall3"; - dir = 5 +/turf/open/floor/plating, +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" }, +/turf/closed/wall/mineral/titanium, /area/ruin/powered{ name = "Shuttle" }) @@ -157,12 +154,12 @@ name = "Shuttle" }) "u" = ( -/turf/closed/wall/shuttle/smooth, -/turf/closed/indestructible/opshuttle{ - tag = "icon-wall3 (NORTHWEST)"; - icon_state = "wall3"; - dir = 9 +/turf/open/floor/plating, +/turf/closed/wall/mineral/plastitanium{ + dir = 8; + icon_state = "diagonalWall3" }, +/turf/closed/wall/mineral/titanium, /area/ruin/powered{ name = "Shuttle" }) @@ -189,10 +186,8 @@ }) "y" = ( /turf/open/space, -/turf/closed/indestructible/opshuttle{ - tag = "icon-wall3 (SOUTHWEST)"; - icon_state = "wall3"; - dir = 10 +/turf/closed/wall/mineral/plastitanium{ + icon_state = "diagonalWall3" }, /area/ruin/powered{ name = "Shuttle" @@ -210,10 +205,9 @@ }) "B" = ( /turf/open/space, -/turf/closed/indestructible/opshuttle{ - tag = "icon-wall3 (SOUTHEAST)"; - icon_state = "wall3"; - dir = 6 +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" }, /area/ruin/powered{ name = "Shuttle" @@ -239,6 +233,11 @@ "F" = ( /obj/structure/shuttle/engine/propulsion, /turf/open/space, +/area/ruin/powered{ + name = "Shuttle" + }) +"G" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ruin/powered{ name = "Shuttle" }) @@ -371,14 +370,14 @@ c h k l +G h -h -h +G m m +G h -h -h +G l k h @@ -417,18 +416,18 @@ c c c i -h +G l l l -h +G t t -h +G l l l -h +G u c c @@ -444,12 +443,12 @@ c h l l -h +G z C C D -h +G l l h @@ -465,18 +464,18 @@ a f c g -h +G p -h +G v -h +G C C -h +G A -h +G p -h +G s c B @@ -537,18 +536,18 @@ a e c i -h +G p -h +G w -h +G A A -h +G A -h +G p -h +G u c y @@ -564,12 +563,12 @@ c h l l -h +G A A A A -h +G l l h @@ -585,18 +584,18 @@ c c c g -h +G l l l -h +G t t -h +G l l l -h +G s c c @@ -635,14 +634,14 @@ c h k l +G h -h -h +G m m +G h -h -h +G l k h diff --git a/_maps/templates/small_shuttle_1.dmm b/_maps/templates/small_shuttle_1.dmm index 890b172819..8aeacad17b 100644 --- a/_maps/templates/small_shuttle_1.dmm +++ b/_maps/templates/small_shuttle_1.dmm @@ -3,11 +3,7 @@ /turf/open/space, /area/space) "b" = ( -/turf/open/space, -/turf/closed/wall/shuttle{ - tag = "icon-swall_f6"; - icon_state = "swall_f6" - }, +/turf/closed/wall/mineral/titanium/overspace, /area/space) "c" = ( /obj/structure/grille, @@ -22,19 +18,16 @@ }, /area/space) "e" = ( -/turf/closed/wall/shuttle{ - tag = "icon-swall3"; - icon_state = "swall3" - }, +/turf/closed/wall/mineral/titanium, /area/space) "f" = ( -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/space) "g" = ( /obj/structure/chair{ dir = 1 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/space) "h" = ( /turf/closed/wall/shuttle{ @@ -50,7 +43,7 @@ /area/space) "j" = ( /obj/machinery/door/unpowered/shuttle, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/space) "k" = ( /turf/closed/wall/shuttle{ @@ -62,13 +55,13 @@ /obj/structure/chair{ dir = 4 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/space) "m" = ( /obj/structure/chair{ dir = 8 }, -/turf/open/floor/plasteel/shuttle, +/turf/open/floor/mineral/titanium/blue, /area/space) "n" = ( /obj/structure/shuttle/engine/heater, @@ -116,13 +109,13 @@ j j e e -o +b "} (2,1,1) = {" b e e -h +e l l f @@ -135,7 +128,7 @@ p c f f -i +e f f f @@ -161,7 +154,7 @@ q c f f -k +e f f f @@ -171,10 +164,10 @@ n q "} (6,1,1) = {" -d +b +e e e -h m m f @@ -187,12 +180,12 @@ r a a a -d +b e e j j e e -s +b "} diff --git a/code/__DEFINES/_MC.dm b/code/__DEFINES/MC.dm similarity index 90% rename from code/__DEFINES/_MC.dm rename to code/__DEFINES/MC.dm index 932805089e..b0030793b6 100644 --- a/code/__DEFINES/_MC.dm +++ b/code/__DEFINES/MC.dm @@ -5,8 +5,8 @@ #define MC_AVERAGE_SLOW(average, current) (0.9 * (average) + 0.1 * (current)) #define NEW_SS_GLOBAL(varname) if(varname != src){if(istype(varname)){Recover();qdel(varname);}varname = src;} -#define START_PROCESSING(Processor, Datum) if (!Datum.isprocessing) Datum.isprocessing = 1;Processor.processing += Datum -#define STOP_PROCESSING(Processor, Datum) if (Datum.isprocessing) Datum.isprocessing = 0;Processor.processing -= Datum +#define START_PROCESSING(Processor, Datum) if (!Datum.isprocessing) {Datum.isprocessing = 1;Processor.processing += Datum} +#define STOP_PROCESSING(Processor, Datum) Datum.isprocessing = 0;Processor.processing -= Datum //SubSystem flags (Please design any new flags so that the default is off, to make adding flags to subsystems easier) @@ -46,4 +46,4 @@ //Timing subsystem -#define GLOBAL_PROC "some_magic_bullshit" \ No newline at end of file +#define GLOBAL_PROC "some_magic_bullshit" diff --git a/code/__DEFINES/admin.dm b/code/__DEFINES/admin.dm index e1af51cb55..dd02cbb27e 100644 --- a/code/__DEFINES/admin.dm +++ b/code/__DEFINES/admin.dm @@ -14,7 +14,7 @@ #define BANTYPE_JOB_PERMA 3 #define BANTYPE_JOB_TEMP 4 #define BANTYPE_ANY_FULLBAN 5 //used to locate stuff to unban. -#define BANTYPE_APPEARANCE 6 + #define BANTYPE_ADMIN_PERMA 7 #define BANTYPE_ADMIN_TEMP 8 #define BANTYPE_ANY_JOB 9 //used to remove jobbans @@ -36,3 +36,21 @@ #define R_SPAWN 4096 #define R_MAXPERMISSION 4096 //This holds the maximum value for a permission. It is used in iteration, so keep it updated. + +#define ADMIN_QUE(user) "(?)" +#define ADMIN_FLW(user) "(FLW)" +#define ADMIN_PP(user) "(PP)" +#define ADMIN_VV(atom) "(VV)" +#define ADMIN_SM(user) "(SM)" +#define ADMIN_TP(user) "(TP)" +#define ADMIN_BSA(user) "(BSA)" +#define ADMIN_CENTCOM_REPLY(user) "(RPLY)" +#define ADMIN_SYNDICATE_REPLY(user) "(RPLY)" +#define ADMIN_SC(user) "(SC)" +#define ADMIN_LOOKUP(user) "[key_name_admin(user)][ADMIN_QUE(user)]" +#define ADMIN_LOOKUPFLW(user) "[key_name_admin(user)][ADMIN_QUE(user)] [ADMIN_FLW(user)]" +#define ADMIN_SET_SD_CODE "(SETCODE)" +#define ADMIN_FULLMONTY(user) "[key_name_admin(user)] [ADMIN_QUE(user)] [ADMIN_PP(user)] [ADMIN_VV(user)] [ADMIN_SM(user)] [ADMIN_FLW(user)] [ADMIN_TP(user)]" +#define ADMIN_JMP(src) "(JMP)" +#define COORD(src) "[src ? "([src.x],[src.y],[src.z])" : "nonexistent location"]" +#define ADMIN_COORDJMP(src) "[src ? "[COORD(src)] [ADMIN_JMP(src)]" : "nonexistent location"]" diff --git a/code/__DEFINES/atmospherics.dm b/code/__DEFINES/atmospherics.dm index 69d51ed0bd..733e21e503 100644 --- a/code/__DEFINES/atmospherics.dm +++ b/code/__DEFINES/atmospherics.dm @@ -163,3 +163,10 @@ #define TANK_MAX_RELEASE_PRESSURE (ONE_ATMOSPHERE*3) #define TANK_MIN_RELEASE_PRESSURE 0 #define TANK_DEFAULT_RELEASE_PRESSURE 16 + + +#define ATMOS_PASS_YES 1 +#define ATMOS_PASS_NO 0 +#define ATMOS_PASS_PROC -1 //ask CanAtmosPass() +#define ATMOS_PASS_DENSITY -2 //just check density +#define CANATMOSPASS(A, O) ( A.CanAtmosPass == ATMOS_PASS_PROC ? A.CanAtmosPass(O) : ( A.CanAtmosPass == ATMOS_PASS_DENSITY ? !A.density : A.CanAtmosPass ) ) \ No newline at end of file diff --git a/code/__DEFINES/clockcult.dm b/code/__DEFINES/clockcult.dm new file mode 100644 index 0000000000..ba2e9cf239 --- /dev/null +++ b/code/__DEFINES/clockcult.dm @@ -0,0 +1,98 @@ +//component id defines +#define BELLIGERENT_EYE "belligerent_eye" +#define VANGUARD_COGWHEEL "vanguard_cogwheel" +#define GEIS_CAPACITOR "geis_capacitor" +#define REPLICANT_ALLOY "replicant_alloy" +#define HIEROPHANT_ANSIBLE "hierophant_ansible" + +var/global/clockwork_construction_value = 0 //The total value of all structures built by the clockwork cult +var/global/clockwork_caches = 0 //How many clockwork caches exist in the world (not each individual) +var/global/clockwork_daemons = 0 //How many daemons exist in the world +var/global/list/clockwork_generals_invoked = list("nezbere" = FALSE, "sevtug" = FALSE, "nzcrentr" = FALSE, "inath-neq" = FALSE) //How many generals have been recently invoked +var/global/list/all_clockwork_objects = list() //All clockwork items, structures, and effects in existence +var/global/list/all_clockwork_mobs = list() //All clockwork SERVANTS (not creatures) in existence +var/global/list/clockwork_component_cache = list(BELLIGERENT_EYE = 0, VANGUARD_COGWHEEL = 0, GEIS_CAPACITOR = 0, REPLICANT_ALLOY = 0, HIEROPHANT_ANSIBLE = 0) //The pool of components that caches draw from +var/global/ratvar_awakens = 0 //If Ratvar has been summoned; not a boolean, for proper handling of multiple ratvars +var/global/clockwork_gateway_activated = FALSE //if a gateway to the celestial derelict has ever been successfully activated +var/global/list/all_scripture = list() //a list containing scripture instances; not used to track existing scripture + +//Scripture tiers and requirements; peripherals should never be used +#define SCRIPTURE_PERIPHERAL "Peripheral" +#define SCRIPTURE_DRIVER "Driver" +#define SCRIPTURE_SCRIPT "Script" +#define SCRIPT_SERVANT_REQ 5 +#define SCRIPT_CACHE_REQ 1 +#define SCRIPTURE_APPLICATION "Application" +#define APPLICATION_SERVANT_REQ 8 +#define APPLICATION_CACHE_REQ 3 +#define APPLICATION_CV_REQ 100 +#define SCRIPTURE_REVENANT "Revenant" +#define REVENANT_SERVANT_REQ 10 +#define REVENANT_CACHE_REQ 4 +#define REVENANT_CV_REQ 200 +#define SCRIPTURE_JUDGEMENT "Judgement" +#define JUDGEMENT_SERVANT_REQ 12 +#define JUDGEMENT_CACHE_REQ 5 +#define JUDGEMENT_CV_REQ 300 + +//general component/cooldown things +#define SLAB_PRODUCTION_TIME 900 //how long(deciseconds) slabs require to produce a single component; defaults to 1 minute 30 seconds + +#define SLAB_SERVANT_SLOWDOWN 300 //how much each servant above 5 slows down slab-based generation; defaults to 30 seconds per sevant + +#define SLAB_SLOWDOWN_MAXIMUM 2700 //maximum slowdown from additional servants; defaults to 4 minutes 30 seconds + +#define CACHE_PRODUCTION_TIME 900 //how long(deciseconds) caches require to produce a component; defaults to 1 minute 30 seconds + +#define LOWER_PROB_PER_COMPONENT 10 //how much each component in the cache reduces the weight of getting another of that component type + +#define MAX_COMPONENTS_BEFORE_RAND 10*LOWER_PROB_PER_COMPONENT //the number of each component, times LOWER_PROB_PER_COMPONENT, you need to have before component generation will become random + +#define CLOCKWORK_GENERAL_COOLDOWN 3000 //how long clockwork generals go on cooldown after use, defaults to 5 minutes + +//proselytizer defines +#define REPLICANT_ALLOY_UNIT 100 //how much each piece of replicant alloy gives in a clockwork proselytizer + +#define REPLICANT_STANDARD REPLICANT_ALLOY_UNIT*0.2 //how much alloy is in anything else; doesn't matter as much as the following + +#define REPLICANT_FLOOR REPLICANT_ALLOY_UNIT*0.1 //how much alloy is in a clockwork floor, determines the cost of clockwork floor production + +#define REPLICANT_WALL_MINUS_FLOOR REPLICANT_ALLOY_UNIT*0.4 //amount of alloy in a clockwork wall, determines the cost of clockwork wall production + +#define REPLICANT_GEAR REPLICANT_ALLOY_UNIT*0.3 //amount of alloy in a wall gear, minus the brass from the wall + +#define REPLICANT_WALL_TOTAL REPLICANT_WALL_MINUS_FLOOR+REPLICANT_FLOOR //how much alloy is in a clockwork wall and the floor under it + +#define REPLICANT_ROD REPLICANT_ALLOY_UNIT*0.01 //amount of replicant alloy in one rod + +#define REPLICANT_METAL REPLICANT_ALLOY_UNIT*0.02 //amount of replicant alloy in one sheet of metal + +#define REPLICANT_PLASTEEL REPLICANT_ALLOY_UNIT*0.05 //amount of replicant alloy in one sheet of plasteel + +#define RATVAR_ALLOY_CHECK "ratvar?" //when passed into can_use_alloy(), converts it into a check for if ratvar has woken/the proselytizer is debug + +//clockcult power defines +#define MIN_CLOCKCULT_POWER 50 //the minimum amount of power clockcult machines will handle gracefully + +#define CLOCKCULT_POWER_TO_ALLOY_MULTIPLIER 0.04 //conversion rate for power -> alloy + +#define CLOCKCULT_ALLOY_TO_POWER_MULTIPLIER 25 //conversion rate for alloy -> power + +#define REPLICANT_ALLOY_POWER REPLICANT_ALLOY_UNIT*CLOCKCULT_ALLOY_TO_POWER_MULTIPLIER //the amount of power you get from a single piece of replicant alloy + +//Ark defines +#define GATEWAY_SUMMON_RATE 1 //the time amount the Gateway to the Celestial Derelict gets each process tick; defaults to 1 per tick + +#define GATEWAY_REEBE_FOUND 119 //when progress is at or above this, the gateway finds reebe and begins drawing power + +#define GATEWAY_RATVAR_COMING 239 //when progress is at or above this, ratvar has entered and is coming through the gateway + +#define GATEWAY_RATVAR_ARRIVAL 300 //when progress is at or above this, game over ratvar's here everybody go home + +//Objective defines + +#define CLOCKCULT_GATEWAY "gateway" + +#define CLOCKCULT_ESCAPE "escape" + +#define CLOCKCULT_SILICONS "silicons" diff --git a/code/__DEFINES/clothing.dm b/code/__DEFINES/clothing.dm index c180fca98a..f38adac009 100644 --- a/code/__DEFINES/clothing.dm +++ b/code/__DEFINES/clothing.dm @@ -10,20 +10,22 @@ #define SLOT_ID 256 #define SLOT_BELT 512 #define SLOT_BACK 1024 -#define SLOT_POCKET 2048 //this is to allow items with a w_class of 3 or 4 to fit in pockets. -#define SLOT_DENYPOCKET 4096 //this is to deny items with a w_class of 2 or 1 to fit in pockets. +#define SLOT_POCKET 2048 // this is to allow items with a w_class of WEIGHT_CLASS_NORMAL or WEIGHT_CLASS_BULKY to fit in pockets. +#define SLOT_DENYPOCKET 4096 // this is to deny items with a w_class of WEIGHT_CLASS_SMALL or WEIGHT_CLASS_TINY to fit in pockets. +#define SLOT_NECK 8192 //SLOTS #define slot_back 1 #define slot_wear_mask 2 #define slot_handcuffed 3 -#define slot_l_hand 4 -#define slot_r_hand 5 -#define slot_belt 6 -#define slot_wear_id 7 -#define slot_ears 8 -#define slot_glasses 9 -#define slot_gloves 10 +#define slot_hands 4 //wherever you provide a slot for hands you provide slot_hands + //slot_hands as a slot will pick ANY available hand +#define slot_belt 5 +#define slot_wear_id 6 +#define slot_ears 7 +#define slot_glasses 8 +#define slot_gloves 9 +#define slot_neck 10 #define slot_head 11 #define slot_shoes 12 #define slot_wear_suit 13 @@ -33,7 +35,7 @@ #define slot_s_store 17 #define slot_in_backpack 18 #define slot_legcuffed 19 -#define slot_drone_storage 20 +#define slot_generic_dextrous_storage 20 #define slots_amt 20 // Keep this up to date! @@ -45,6 +47,8 @@ . = SLOT_BACK if(slot_wear_mask) . = SLOT_MASK + if(slot_neck) + . = SLOT_NECK if(slot_belt) . = SLOT_BELT if(slot_wear_id) @@ -78,7 +82,7 @@ #define HIDEFACE 128 // Whether we appear as unknown. #define HIDEHAIR 256 #define HIDEFACIALHAIR 512 - +#define HIDENECK 1024 //Cant seem to find a mob bitflags area other than the powers one @@ -98,7 +102,8 @@ #define HAND_LEFT 512 #define HAND_RIGHT 1024 #define HANDS 1536 -#define FULL_BODY 2047 +#define NECK 2048 +#define FULL_BODY 4095 // bitflags for the percentual amount of protection a piece of clothing which covers the body part offers. // Used with human/proc/get_heat_protection() and human/proc/get_cold_protection() @@ -122,6 +127,20 @@ #define FEMALE_UNIFORM_FULL 1 #define FEMALE_UNIFORM_TOP 2 +//flags for alternate styles: These are hard sprited so don't set this if you didn't put the effort it + +#define NORMAL_STYLE 0 +#define ALT_STYLE 1 +#define DIGITIGRADE_STYLE 2 + +//flags for outfits that have mutantrace variants (try not to use this): Currently only needed if you're trying to add tight fitting bootyshorts + +#define NO_MUTANTRACE_VARIATION 0 +#define MUTANTRACE_VARIATION 1 + +#define NOT_DIGITIGRADE 0 +#define FULL_DIGITIGRADE 1 +#define SQUISHED_DIGITIGRADE 2 //flags for covering body parts #define GLASSESCOVERSEYES 1 diff --git a/code/__DEFINES/combat.dm b/code/__DEFINES/combat.dm index f14e5f2fb6..6517b8e0f1 100644 --- a/code/__DEFINES/combat.dm +++ b/code/__DEFINES/combat.dm @@ -69,12 +69,22 @@ #define UNARMED_ATTACK 2 #define PROJECTILE_ATTACK 3 #define THROWN_PROJECTILE_ATTACK 4 +#define LEAP_ATTACK 5 + +//the define for visible message range in combat +#define COMBAT_MESSAGE_RANGE 3 //Gun Stuff #define SAWN_INTACT 0 #define SAWN_OFF 1 - #define WEAPON_LIGHT 0 - #define WEAPON_MEDIUM 1 - #define WEAPON_HEAVY 2 \ No newline at end of file +#define WEAPON_DUAL_WIELD 0 +#define WEAPON_LIGHT 1 +#define WEAPON_MEDIUM 2 +#define WEAPON_HEAVY 3 + +//Health Defines + +#define HEALTH_THRESHOLD_CRIT 0 +#define HEALTH_THRESHOLD_DEAD -100 \ No newline at end of file diff --git a/code/__DEFINES/construction.dm b/code/__DEFINES/construction.dm new file mode 100644 index 0000000000..2a329d105b --- /dev/null +++ b/code/__DEFINES/construction.dm @@ -0,0 +1,28 @@ +//Defines for construction states of various objects + +//girder construction states +#define GIRDER_NORMAL 0 +#define GIRDER_REINF_STRUTS 1 +#define GIRDER_REINF 2 +#define GIRDER_DISPLACED 3 +#define GIRDER_DISASSEMBLED 4 + +//rwall construction states +#define INTACT 0 +#define SUPPORT_LINES 1 +#define COVER 2 +#define CUT_COVER 3 +#define BOLTS 4 +#define SUPPORT_RODS 5 +#define SHEATH 6 + +//default_unfasten_wrench() return defines +#define CANT_UNFASTEN 0 +#define FAILED_UNFASTEN 1 +#define SUCCESSFUL_UNFASTEN 2 + +//disposal unit mode defines, which do double time as the construction defines +#define PRESSURE_OFF 0 +#define PRESSURE_ON 1 +#define PRESSURE_MAXED 2 +#define SCREWS_OUT -1 diff --git a/code/__DEFINES/contracts.dm b/code/__DEFINES/contracts.dm index cba98a29b2..e2f4aff409 100644 --- a/code/__DEFINES/contracts.dm +++ b/code/__DEFINES/contracts.dm @@ -15,7 +15,8 @@ #define BANE_TOOLBOX "toolbox" #define OBLIGATION_FOOD "food" -#define OBLIGATION_DRINK "drink" +#define OBLIGATION_FIDDLE "fiddle" +#define OBLIGATION_DANCEOFF "danceoff" #define OBLIGATION_GREET "greet" #define OBLIGATION_PRESENCEKNOWN "presenceknown" #define OBLIGATION_SAYNAME "sayname" diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm index 5d38343e5f..c2b639be84 100644 --- a/code/__DEFINES/flags.dm +++ b/code/__DEFINES/flags.dm @@ -34,6 +34,8 @@ //turf-only flags #define NOJAUNT 1 +#define UNUSED_TRANSIT_TURF 2 +#define CAN_BE_DIRTY 4 //If a turf can be made dirty at roundstart. This is also used in areas. /* These defines are used specifically with the atom/pass_flags bitmask @@ -47,34 +49,12 @@ #define PASSMOB 16 #define LETPASSTHROW 32 -//flags for species -#define MUTCOLORS 1 -#define HAIR 2 -#define FACEHAIR 3 -#define EYECOLOR 4 -#define LIPS 5 -#define RESISTTEMP 6 -#define RADIMMUNE 7 -#define NOBREATH 8 -#define NOGUNS 9 -#define NOBLOOD 10 -#define NOFIRE 11 -#define VIRUSIMMUNE 12 -#define PIERCEIMMUNE 13 -#define NOTRANSSTING 14 -#define MUTCOLORS_PARTSONLY 15 //Used if we want the mutant colour to be only used by mutant bodyparts. Don't combine this with MUTCOLORS, or it will be useless. -#define NODISMEMBER 16 -#define NOHUNGER 17 -#define NOCRITDAMAGE 18 -#define NOZOMBIE 19 -#define EASYDISMEMBER 20 -#define EASYLIMBATTACHMENT 21 -#define TOXINLOVER 22 -#define MUTCOLORS2 23 -#define MUTCOLORS3 24 +//Movement Types +#define IMMOBILE 0 +#define GROUND 1 +#define FLYING 2 -#define FLYING 65536 /* These defines are used specifically with the atom/movable/languages bitmask. @@ -88,7 +68,6 @@ #define DRONE 32 #define SWARMER 64 #define RATVAR 128 -#define YAUTJA 256 // Flags for reagents #define REAGENT_NOREACT 1 diff --git a/code/__DEFINES/genetics.dm b/code/__DEFINES/genetics.dm index f0cb6dd926..06284ce232 100644 --- a/code/__DEFINES/genetics.dm +++ b/code/__DEFINES/genetics.dm @@ -61,23 +61,24 @@ #define DNA_HAIR_COLOR_BLOCK 1 #define DNA_FACIAL_HAIR_COLOR_BLOCK 2 #define DNA_SKIN_TONE_BLOCK 3 -#define DNA_EYE_COLOR_TWO_BLOCK 4 -#define DNA_EYE_COLOR_SWITCH_BLOCK 5 -#define DNA_EYE_COLOR_BLOCK 6 -#define DNA_GENDER_BLOCK 7 -#define DNA_FACIAL_HAIR_STYLE_BLOCK 8 -#define DNA_HAIR_STYLE_BLOCK 9 -#define DNA_COLOR_ONE_BLOCK 10 -#define DNA_COLOR_TWO_BLOCK 11 -#define DNA_COLOR_THR_BLOCK 12 -#define DNA_COLOR_SWITCH_BLOCK 13 +#define DNA_EYE_COLOR_BLOCK 4 +#define DNA_GENDER_BLOCK 5 +#define DNA_FACIAL_HAIR_STYLE_BLOCK 6 +#define DNA_HAIR_STYLE_BLOCK 7 +#define DNA_EYE_COLOR_TWO_BLOCK 8 +#define DNA_EYE_COLOR_SWITCH_BLOCK 9 +#define DNA_EYE_COLOR_BLOCK 10 +#define DNA_COLOR_ONE_BLOCK 11 +#define DNA_COLOR_TWO_BLOCK 12 +#define DNA_COLOR_THR_BLOCK 13 +#define DNA_COLOR_SWITCH_BLOCK 14 #define DNA_COLOR_SWITCH_MAX 7 //must be (2^(n+1))-1 -#define DNA_COCK_BLOCK 14 -#define DNA_MUTANTRACE_BLOCK 15 -#define DNA_MUTANTTAIL_BLOCK 16 -#define DNA_MUTANTWING_BLOCK 17 -#define DNA_WINGCOLOR_BLOCK 18 -#define DNA_TAUR_BLOCK 19 +#define DNA_COCK_BLOCK 15 +#define DNA_MUTANTRACE_BLOCK 16 +#define DNA_MUTANTTAIL_BLOCK 17 +#define DNA_MUTANTWING_BLOCK 18 +#define DNA_WINGCOLOR_BLOCK 19 +//#define DNA_TAUR_BLOCK 20 //Taurs will be tails for now, easier - Pooj #define DNA_STRUC_ENZYMES_BLOCKS 19 #define DNA_UNIQUE_ENZYMES_LEN 32 @@ -97,6 +98,14 @@ #define ORGAN_ORGANIC 1 #define ORGAN_ROBOTIC 2 +#define BODYPART_ORGANIC 1 +#define BODYPART_ROBOTIC 2 + +#define MONKEY_BODYPART "monkey" +#define ALIEN_BODYPART "alien" +#define LARVA_BODYPART "larva" +#define DEVIL_BODYPART "devil" + //Nutrition levels for humans. No idea where else to put it #define NUTRITION_LEVEL_FAT 600 #define NUTRITION_LEVEL_FULL 550 @@ -116,3 +125,32 @@ #define BLOOD_VOLUME_OKAY 336 #define BLOOD_VOLUME_BAD 224 #define BLOOD_VOLUME_SURVIVE 122 + +//species traits for mutantraces +#define MUTCOLORS 1 +#define HAIR 2 +#define FACEHAIR 3 +#define EYECOLOR 4 +#define LIPS 5 +#define RESISTHOT 6 +#define RESISTCOLD 7 +#define RESISTPRESSURE 8 +#define RADIMMUNE 9 +#define NOBREATH 10 +#define NOGUNS 11 +#define NOBLOOD 12 +#define NOFIRE 13 +#define VIRUSIMMUNE 14 +#define PIERCEIMMUNE 15 +#define NOTRANSSTING 16 +#define MUTCOLORS_PARTSONLY 17 //Used if we want the mutant colour to be only used by mutant bodyparts. Don't combine this with MUTCOLORS, or it will be useless. +#define NODISMEMBER 18 +#define NOHUNGER 19 +#define NOCRITDAMAGE 20 +#define NOZOMBIE 21 +#define EASYDISMEMBER 22 +#define EASYLIMBATTACHMENT 23 +#define TOXINLOVER 24 +#define DIGITIGRADE 25 //Uses weird leg sprites. Optional for Lizards, required for ashwalkers. Don't give it to other races unless you make sprites for this (see human_parts_greyscale.dmi) +#define MUTCOLORS2 26 +#define MUTCOLORS3 27 \ No newline at end of file diff --git a/code/__DEFINES/hud.dm b/code/__DEFINES/hud.dm index b3dfca079c..cb2c3adab5 100644 --- a/code/__DEFINES/hud.dm +++ b/code/__DEFINES/hud.dm @@ -30,16 +30,14 @@ #define ANTAG_HUD_OPS 8 #define ANTAG_HUD_WIZ 9 #define ANTAG_HUD_SHADOW 10 -#define ANTAG_HUD_HOG_BLUE 11 -#define ANTAG_HUD_HOG_RED 12 -#define ANTAG_HUD_TRAITOR 13 -#define ANTAG_HUD_NINJA 14 -#define ANTAG_HUD_CHANGELING 15 -#define ANTAG_HUD_ABDUCTOR 16 -#define ANTAG_HUD_DEVIL 17 -#define ANTAG_HUD_SINTOUCHED 18 -#define ANTAG_HUD_SOULLESS 19 -#define ANTAG_HUD_CLOCKWORK 20 +#define ANTAG_HUD_TRAITOR 11 +#define ANTAG_HUD_NINJA 12 +#define ANTAG_HUD_CHANGELING 13 +#define ANTAG_HUD_ABDUCTOR 14 +#define ANTAG_HUD_DEVIL 15 +#define ANTAG_HUD_SINTOUCHED 16 +#define ANTAG_HUD_SOULLESS 17 +#define ANTAG_HUD_CLOCKWORK 18 // Notification action types #define NOTIFY_JUMP "jump" diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm index 50a9beb37b..b4746944a3 100644 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -4,13 +4,32 @@ #define in_range(source, user) (get_dist(source, user) <= 1) -#define is_cleanable(A) (istype(A, /obj/effect/decal/cleanable) || istype(A, /obj/effect/rune)) //if something is cleanable +#define ismovableatom(A) (istype(A, /atom/movable)) -// MOB HELPERS +//Turfs +#define isopenturf(A) (istype(A, /turf/open)) + +#define isspaceturf(A) (istype(A, /turf/open/space)) + +#define isfloorturf(A) (istype(A, /turf/open/floor)) + +#define isclosedturf(A) (istype(A, /turf/closed)) + +#define iswallturf(A) (istype(A, /turf/closed/wall)) + +#define ismineralturf(A) (istype(A, /turf/closed/mineral)) + +//Mobs +#define isliving(A) (istype(A, /mob/living)) + +#define isbrain(A) (istype(A, /mob/living/brain)) + +//Carbon mobs +#define iscarbon(A) (istype(A, /mob/living/carbon)) #define ishuman(A) (istype(A, /mob/living/carbon/human)) -// Human sub-species +//Human sub-species #define isabductor(A) (is_species(A, /datum/species/abductor)) #define isgolem(A) (is_species(A, /datum/species/golem)) #define islizard(A) (is_species(A, /datum/species/lizard)) @@ -22,80 +41,86 @@ #define iszombie(A) (is_species(A, /datum/species/zombie)) #define ishumanbasic(A) (is_species(A, /datum/species/human)) +//more carbon mobs #define ismonkey(A) (istype(A, /mob/living/carbon/monkey)) -#define isbrain(A) (istype(A, /mob/living/carbon/brain))//We didn't port the /mob/living/brain update, yet. - #define isalien(A) (istype(A, /mob/living/carbon/alien)) -#define isalienadult(A) (istype(A, /mob/living/carbon/alien/humanoid)) - #define islarva(A) (istype(A, /mob/living/carbon/alien/larva)) -#define isslime(A) (istype(A, /mob/living/simple_animal/slime)) +#define isalienadult(A) (istype(A, /mob/living/carbon/alien/humanoid)) -#define isrobot(A) (istype(A, /mob/living/silicon/robot)) +#define isdevil(A) (istype(A, /mob/living/carbon/true_devil)) -#define isanimal(A) (istype(A, /mob/living/simple_animal)) +//Silicon mobs +#define issilicon(A) (istype(A, /mob/living/silicon)) -#define iscorgi(A) (istype(A, /mob/living/simple_animal/pet/dog/corgi)) - -#define iscrab(A) (istype(A, /mob/living/simple_animal/crab)) - -#define iscat(A) (istype(A, /mob/living/simple_animal/pet/cat)) - -#define ismouse(A) (istype(A, /mob/living/simple_animal/mouse)) - -#define isconstruct(A) (istype(A, /mob/living/simple_animal/hostile/construct)) - -#define isclockmob(A) (istype(A, /mob/living/simple_animal/hostile/clockwork)) - -#define ismegafauna(A) (istype(A, /mob/living/simple_animal/hostile/megafauna)) - -#define isshade(A) (istype(A, /mob/living/simple_animal/shade)) - -#define isbear(A) (istype(A, /mob/living/simple_animal/hostile/bear)) - -#define iscarp(A) (istype(A, /mob/living/simple_animal/hostile/carp)) - -#define isclown(A) (istype(A, /mob/living/simple_animal/hostile/retaliate/clown)) +#define iscyborg(A) (istype(A, /mob/living/silicon/robot)) #define isAI(A) (istype(A, /mob/living/silicon/ai)) #define ispAI(A) (istype(A, /mob/living/silicon/pai)) -#define iscarbon(A) (istype(A, /mob/living/carbon)) +//Simple animals +#define isanimal(A) (istype(A, /mob/living/simple_animal)) -#define issilicon(A) (istype(A, /mob/living/silicon)) +#define isrevenant(A) (istype(A, /mob/living/simple_animal/revenant)) -#define iscyborg(A) (istype(A, /mob/living/silicon/robot)) +#define isborer(A) (istype(A, /mob/living/simple_animal/borer)) -#define isliving(A) (istype(A, /mob/living)) +#define isbot(A) (istype(A, /mob/living/simple_animal/bot)) +#define iscrab(A) (istype(A, /mob/living/simple_animal/crab)) + +#define isshade(A) (istype(A, /mob/living/simple_animal/shade)) + +#define ismouse(A) (istype(A, /mob/living/simple_animal/mouse)) + +#define isslime(A) (istype(A, /mob/living/simple_animal/slime)) + +#define isdrone(A) (istype(A, /mob/living/simple_animal/drone)) + +#define iscat(A) (istype(A, /mob/living/simple_animal/pet/cat)) + +#define isdog(A) (istype(A, /mob/living/simple_animal/pet/dog)) + +#define iscorgi(A) (istype(A, /mob/living/simple_animal/pet/dog/corgi)) + +#define ishostile(A) (istype(A, /mob/living/simple_animal/hostile)) + +#define isbear(A) (istype(A, /mob/living/simple_animal/hostile/bear)) + +#define iscarp(A) (istype(A, /mob/living/simple_animal/hostile/carp)) + +#define isswarmer(A) (istype(A, /mob/living/simple_animal/hostile/swarmer)) + +#define isguardian(A) (istype(A, /mob/living/simple_animal/hostile/guardian)) + +#define isclockmob(A) (istype(A, /mob/living/simple_animal/hostile/clockwork)) + +#define isconstruct(A) (istype(A, /mob/living/simple_animal/hostile/construct)) + +#define ismegafauna(A) (istype(A, /mob/living/simple_animal/hostile/megafauna)) + +#define isclown(A) (istype(A, /mob/living/simple_animal/hostile/retaliate/clown)) + +//Misc mobs #define isobserver(A) (istype(A, /mob/dead/observer)) #define isnewplayer(A) (istype(A, /mob/new_player)) #define isovermind(A) (istype(A, /mob/camera/blob)) -#define isdrone(A) (istype(A, /mob/living/simple_animal/drone)) - -#define isswarmer(A) (istype(A, /mob/living/simple_animal/hostile/swarmer)) - -#define isguardian(A) (istype(A, /mob/living/simple_animal/hostile/guardian)) - -#define ishostile(A) (istype(A, /mob/living/simple_animal/hostile)) +//Objects +#define isobj(A) istype(A, /obj) //override the byond proc because it returns true on children of /atom/movable that aren't objs #define islimb(A) (istype(A, /obj/item/bodypart)) -#define isbot(A) (istype(A, /mob/living/simple_animal/bot)) +#define is_cleanable(A) (istype(A, /obj/effect/decal/cleanable) || istype(A, /obj/effect/rune)) //if something is cleanable -#define ismovableatom(A) (istype(A, /atom/movable)) - -#define isobj(A) istype(A, /obj) //override the byond proc because it returns true on children of /atom/movable that aren't objs - -// ASSEMBLY HELPERS +#define isorgan(A) (istype(A, /obj/item/organ)) +//Assemblies #define isassembly(O) (istype(O, /obj/item/device/assembly)) #define isigniter(O) (istype(O, /obj/item/device/assembly/igniter)) @@ -106,4 +131,4 @@ #define issignaler(O) (istype(O, /obj/item/device/assembly/signaler)) -#define istimer(O) (istype(O, /obj/item/device/assembly/timer)) \ No newline at end of file +#define istimer(O) (istype(O, /obj/item/device/assembly/timer)) diff --git a/code/__DEFINES/layers.dm b/code/__DEFINES/layers.dm index fb3b61cd80..fa040bf866 100644 --- a/code/__DEFINES/layers.dm +++ b/code/__DEFINES/layers.dm @@ -1,8 +1,16 @@ -//Defines for atom layers +//Defines for atom layers and planes //KEEP THESE IN A NICE ACSCENDING ORDER, PLEASE +#define CLICKCATCHER_PLANE -99 + +#define PLANE_SPACE -95 +#define PLANE_SPACE_PARALLAX -90 + +#define GAME_PLANE 0 //#define TURF_LAYER 2 //For easy recordkeeping; this is a byond define -#define ABOVE_OPEN_TURF_LAYER 2.01 +#define MID_TURF_LAYER 2.02 +#define HIGH_TURF_LAYER 2.03 +#define ABOVE_OPEN_TURF_LAYER 2.04 #define CLOSED_TURF_LAYER 2.05 #define ABOVE_NORMAL_TURF_LAYER 2.08 #define LATTICE_LAYER 2.2 @@ -24,7 +32,8 @@ #define ABOVE_OBJ_LAYER 3.2 #define ABOVE_WINDOW_LAYER 3.3 #define SIGN_LAYER 3.4 -#define HIGH_OBJ_LAYER 3.5 +#define NOT_HIGH_OBJ_LAYER 3.5 +#define HIGH_OBJ_LAYER 3.6 #define BELOW_MOB_LAYER 3.7 #define LYING_MOB_LAYER 3.8 @@ -45,13 +54,20 @@ #define AREA_LAYER 10 #define MASSIVE_OBJ_LAYER 11 #define POINT_LAYER 12 + +#define LIGHTING_PLANE 15 #define LIGHTING_LAYER 15 //HUD layer defines -#define FLASH_LAYER 17.9 -#define FULLSCREEN_LAYER 18 -#define UI_DAMAGE_LAYER 18.1 -#define BLIND_LAYER 18.2 -#define CRIT_LAYER 18.3 + +#define FULLSCREEN_PLANE 18 +#define FLASH_LAYER 18 +#define FULLSCREEN_LAYER 18.1 +#define UI_DAMAGE_LAYER 18.2 +#define BLIND_LAYER 18.3 +#define CRIT_LAYER 18.4 + +#define HUD_PLANE 19 #define HUD_LAYER 19 -#define ABOVE_HUD_LAYER 19.1 +#define ABOVE_HUD_PLANE 20 +#define ABOVE_HUD_LAYER 20 diff --git a/code/__DEFINES/lighting.dm b/code/__DEFINES/lighting.dm index d3915d6584..1fdbfaee66 100644 --- a/code/__DEFINES/lighting.dm +++ b/code/__DEFINES/lighting.dm @@ -1,79 +1,16 @@ -#define DYNAMIC_LIGHTING_DISABLED 0 //dynamic lighting disabled (area stays at full brightness) -#define DYNAMIC_LIGHTING_ENABLED 1 //dynamic lighting enabled -#define DYNAMIC_LIGHTING_IFSTARLIGHT 2 //dynamic lighting enabled only if starlight is. -#define IS_DYNAMIC_LIGHTING(A) ( A.dynamic_lighting == DYNAMIC_LIGHTING_IFSTARLIGHT ? config.starlight : A.dynamic_lighting ) +//Arbitrary lighting related stuff + +#define LIGHTING_CIRCULAR 1 //Comment this out to use old square lighting effects. +#define LIGHTING_CAP 10 //The lumcount level at which alpha is 0 and we're fully lit. +#define LIGHTING_CAP_FRAC (255/LIGHTING_CAP) //A precal'd variable we'll use in turf/redraw_lighting() +#define LIGHTING_ICON 'icons/effects/alphacolors.dmi' +#define LIGHTING_ICON_STATE "" +#define LIGHTING_TIME 2 //Time to do any lighting change. Actual number pulled out of my ass +#define LIGHTING_DARKEST_VISIBLE_ALPHA 250 //Anything darker than this is so dark, we'll just consider the whole tile unlit +#define LIGHTING_LUM_FOR_FULL_BRIGHT 6 //Anything who's lum is lower then this starts off less bright. +#define LIGHTING_MIN_RADIUS 4 //Lowest radius a light source can effect. -//Bay lighting engine shit, not in /code/modules/lighting because BYOND is being shit about it -#define LIGHTING_INTERVAL 5 // frequency, in 1/10ths of a second, of the lighting process - -#ifndef LIGHTING_INSTANT_UPDATES -#define LIGHTING_INTERVAL 5 // Frequency, in 1/10ths of a second, of the lighting process. -#include "../controllers/subsystem/lighting.dm" -#endif - -#define LIGHTING_FALLOFF 1 // type of falloff to use for lighting; 1 for circular, 2 for square -#define LIGHTING_LAMBERTIAN 0 // use lambertian shading for light sources -#define LIGHTING_HEIGHT 1 // height off the ground of light sources on the pseudo-z-axis, you should probably leave this alone -#define LIGHTING_ROUND_VALUE 1 / 128 //Value used to round lumcounts, values smaller than 1/255 don't matter (if they do, thanks sinking points), greater values will make lighting less precise, but in turn increase performance, VERY SLIGHTLY. - -#define LIGHTING_ICON 'icons/effects/lighting_overlay.png' // icon used for lighting shading effects - -#define LIGHTING_SOFT_THRESHOLD 0.05 // If the max of the lighting lumcounts of each spectrum drops below this, disable luminosity on the lighting overlays. - -// If I were you I'd leave this alone. -#define LIGHTING_BASE_MATRIX \ - list \ - ( \ - LIGHTING_SOFT_THRESHOLD, LIGHTING_SOFT_THRESHOLD, LIGHTING_SOFT_THRESHOLD, 0, \ - LIGHTING_SOFT_THRESHOLD, LIGHTING_SOFT_THRESHOLD, LIGHTING_SOFT_THRESHOLD, 0, \ - LIGHTING_SOFT_THRESHOLD, LIGHTING_SOFT_THRESHOLD, LIGHTING_SOFT_THRESHOLD, 0, \ - LIGHTING_SOFT_THRESHOLD, LIGHTING_SOFT_THRESHOLD, LIGHTING_SOFT_THRESHOLD, 0, \ - 0, 0, 0, 1 \ - ) \ - -// Helpers so we can (more easily) control the colour matrices. -#define CL_MATRIX_RR 1 -#define CL_MATRIX_RG 2 -#define CL_MATRIX_RB 3 -#define CL_MATRIX_RA 4 -#define CL_MATRIX_GR 5 -#define CL_MATRIX_GG 6 -#define CL_MATRIX_GB 7 -#define CL_MATRIX_GA 8 -#define CL_MATRIX_BR 9 -#define CL_MATRIX_BG 10 -#define CL_MATRIX_BB 11 -#define CL_MATRIX_BA 12 -#define CL_MATRIX_AR 13 -#define CL_MATRIX_AG 14 -#define CL_MATRIX_AB 15 -#define CL_MATRIX_AA 16 -#define CL_MATRIX_CR 17 -#define CL_MATRIX_CG 18 -#define CL_MATRIX_CB 19 -#define CL_MATRIX_CA 20 - -//Some defines to generalise colours used in lighting. -//Important note on colors. Colors can end up significantly different from the basic html picture, especially when saturated -#define LIGHT_COLOR_RED "#FA8282" //Warm but extremely diluted red. rgb(250, 130, 130) -#define LIGHT_COLOR_GREEN "#64C864" //Bright but quickly dissipating neon green. rgb(100, 200, 100) -#define LIGHT_COLOR_BLUE "#6496FA" //Cold, diluted blue. rgb(100, 150, 250) - -#define LIGHT_COLOR_CYAN "#7DE1E1" //Diluted cyan. rgb(125, 225, 225) -#define LIGHT_COLOR_PINK "#E17DE1" //Diluted, mid-warmth pink. rgb(225, 125, 225) -#define LIGHT_COLOR_YELLOW "#E1E17D" //Dimmed yellow, leaning kaki. rgb(225, 225, 125) -#define LIGHT_COLOR_BROWN "#966432" //Clear brown, mostly dim. rgb(150, 100, 50) -#define LIGHT_COLOR_ORANGE "#FA9632" //Mostly pure orange. rgb(250, 150, 50) - -//These ones aren't a direct colour like the ones above, because nothing would fit -#define LIGHT_COLOR_FIRE "#FAA019" //Warm orange color, leaning strongly towards yellow. rgb(250, 160, 25) -#define LIGHT_COLOR_FLARE "#FA644B" //Bright, non-saturated red. Leaning slightly towards pink for visibility. rgb(250, 100, 75) -#define LIGHT_COLOR_SLIME_LAMP "#AFC84B" //Weird color, between yellow and green, very slimy. rgb(175, 200, 75) -#define LIGHT_COLOR_TUNGSTEN "#FAE1AF" //Extremely diluted yellow, close to skin color (for some reason). rgb(250, 225, 175) -#define LIGHT_COLOR_HALOGEN "#F0FAFA" //Barely visible cyan-ish hue, as the doctor prescribed. rgb(240, 250, 250) - -#define FOR_DVIEW(type, range, center, invis_flags) \ - dview_mob.forceMove(center); \ - dview_mob.see_invisible = invis_flags; \ - for(type in view(range, dview_mob)) +//different modes that lights can operate in +#define LIGHTING_REGULAR 1 //Apply all effects additively +#define LIGHTING_STARLIGHT 2 //Track all starlight but only apply brightest \ No newline at end of file diff --git a/code/__DEFINES/machines.dm b/code/__DEFINES/machines.dm index 2180d8cb29..9df0604a7f 100644 --- a/code/__DEFINES/machines.dm +++ b/code/__DEFINES/machines.dm @@ -21,4 +21,16 @@ #define AUTOLATHE 4 //Uses glass/metal only. #define CRAFTLATHE 8 //Uses fuck if I know. For use eventually. #define MECHFAB 16 //Remember, objects utilising this flag should have construction_time and construction_cost vars. -//Note: More then one of these can be added to a design but imprinter and lathe designs are incompatable. \ No newline at end of file +#define BIOGENERATOR 32 //Uses biomass +#define LIMBGROWER 64 //Uses synthetic flesh +//Note: More then one of these can be added to a design but imprinter and lathe designs are incompatable. + +#define MC_CPU "CPU" +#define MC_HDD "HDD" +#define MC_SDD "SDD" +#define MC_CARD "CARD" +#define MC_NET "NET" +#define MC_PRINT "PRINT" +#define MC_CELL "CELL" +#define MC_CHARGE "CHARGE" +#define MC_AI "AI" \ No newline at end of file diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 0d740458d1..217aa70b6c 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -1,3 +1,10 @@ +// Byond direction defines, because I want to put them somewhere. +// #define NORTH 1 +// #define SOUTH 2 +// #define EAST 4 +// #define WEST 8 + + #define MIDNIGHT_ROLLOVER 864000 //number of deciseconds in a day #define JANUARY 1 @@ -20,6 +27,7 @@ #define EASTER "Easter" #define HALLOWEEN "Halloween" #define CHRISTMAS "Christmas" +#define FESTIVE_SEASON "Festive Season" #define FRIDAY_13TH "Friday the 13th" //Human Overlays Indexes///////// @@ -39,14 +47,14 @@ #define GLASSES_LAYER 13 #define BELT_LAYER 12 //Possible make this an overlay of somethign required to wear a belt? #define SUIT_STORE_LAYER 11 -#define BACK_LAYER 10 -#define HAIR_LAYER 9 //TODO: make part of head layer? -#define FACEMASK_LAYER 8 -#define HEAD_LAYER 7 -#define HANDCUFF_LAYER 6 -#define LEGCUFF_LAYER 5 -#define L_HAND_LAYER 4 -#define R_HAND_LAYER 3 //Having the two hands seperate seems rather silly, merge them together? It'll allow for code to be reused on mobs with arbitarily many hands +#define NECK_LAYER 10 +#define BACK_LAYER 9 +#define HAIR_LAYER 8 //TODO: make part of head layer? +#define FACEMASK_LAYER 7 +#define HEAD_LAYER 6 +#define HANDCUFF_LAYER 5 +#define LEGCUFF_LAYER 4 +#define HANDS_LAYER 3 #define BODY_FRONT_LAYER 2 #define FIRE_LAYER 1 //If you're on fire #define TOTAL_LAYERS 26 //KEEP THIS UP-TO-DATE OR SHIT WILL BREAK ;_; @@ -75,8 +83,7 @@ #define UNDER_HEAD_LAYER HEAD_LAYER+1 #define UNDER_HANDCUFF_LAYER HANDCUFF_LAYER+1 #define UNDER_LEGCUFF_LAYER LEGCUFF_LAYER+1 -#define UNDER_L_HAND_LAYER L_HAND_LAYER+1 -#define UNDER_R_HAND_LAYER R_HAND_LAYER+1 +#define UNDER_HANDS_LAYER HANDS_LAYER+1 #define UNDER_BODY_FRONT_LAYER BODY_FRONT_LAYER+1 #define UNDER_FIRE_LAYER FIRE_LAYER+1 @@ -102,8 +109,7 @@ #define ABOVE_HEAD_LAYER HEAD_LAYER-1 #define ABOVE_HANDCUFF_LAYER HANDCUFF_LAYER-1 #define ABOVE_LEGCUFF_LAYER LEGCUFF_LAYER-1 -#define ABOVE_L_HAND_LAYER L_HAND_LAYER-1 -#define ABOVE_R_HAND_LAYER R_HAND_LAYER-1 +#define ABOVE_HANDS_LAYER HANDS_LAYER-1 #define ABOVE_BODY_FRONT_LAYER BODY_FRONT_LAYER-1 #define ABOVE_FIRE_LAYER FIRE_LAYER-1 @@ -145,6 +151,7 @@ #define CLICK_CD_MELEE 8 #define CLICK_CD_RANGE 4 +#define CLICK_CD_RAPID 2 #define CLICK_CD_CLICK_ABILITY 6 #define CLICK_CD_BREAKOUT 100 #define CLICK_CD_HANDCUFFED 10 @@ -307,6 +314,14 @@ var/list/bloody_footprints_cache = list() #define POLLTYPE_MULTI "MULTICHOICE" #define POLLTYPE_IRV "IRV" + + +//lighting area defines +#define DYNAMIC_LIGHTING_DISABLED 0 //dynamic lighting disabled (area stays at full brightness) +#define DYNAMIC_LIGHTING_ENABLED 1 //dynamic lighting enabled +#define DYNAMIC_LIGHTING_IFSTARLIGHT 2 //dynamic lighting enabled only if starlight is. +#define IS_DYNAMIC_LIGHTING(A) ( A.lighting_use_dynamic == DYNAMIC_LIGHTING_IFSTARLIGHT ? config.starlight : A.lighting_use_dynamic ) + //subtypesof(), typesof() without the parent path #define subtypesof(typepath) ( typesof(typepath) - typepath ) @@ -327,12 +342,15 @@ var/list/bloody_footprints_cache = list() #define SENTIENCE_MINEBOT 4 #define SENTIENCE_BOSS 5 -//Fire stuff, for burn_state -#define LAVA_PROOF -2 -#define FIRE_PROOF -1 -#define FLAMMABLE 0 -#define ON_FIRE 1 +//Fire and Acid stuff, for resistance_flags +#define LAVA_PROOF 1 +#define FIRE_PROOF 2 //100% immune to fire damage (but not necessarily to lava or heat) +#define FLAMMABLE 4 +#define ON_FIRE 8 +#define UNACIDABLE 16 //acid can't even appear on it, let alone melt it. +#define ACID_PROOF 32 //acid stuck on it doesn't melt it. +#define INDESTRUCTIBLE 64 //doesn't take damage //Ghost orbit types: #define GHOST_ORBIT_CIRCLE "circle" @@ -409,12 +427,6 @@ var/global/list/ghost_others_options = list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE #define TRIGGER_GUARD_NONE 0 #define TRIGGER_GUARD_NORMAL 1 -// Plant types -#define PLANT_NORMAL 0 -#define PLANT_WEED 1 -#define PLANT_MUSHROOM 2 -#define PLANT_ALIEN 3 - // Maploader bounds indices #define MAP_MINX 1 #define MAP_MINY 2 @@ -428,6 +440,9 @@ var/global/list/ghost_others_options = list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE // Evil narsie colour #define NARSIE_WINDOW_COLOUR "#7D1919" +//let's just pretend fulltile windows being children of border windows is fine +#define FULLTILE_WINDOW_DIR NORTHEAST + // Defib stats #define DEFIB_TIME_LIMIT 120 #define DEFIB_TIME_LOSS 60 @@ -469,7 +484,6 @@ var/global/list/ghost_others_options = list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE #define STORAGE_VIEW_DEPTH 2 - // Medal names #define BOSS_KILL_MEDAL "Killer" @@ -482,5 +496,128 @@ var/global/list/ghost_others_options = list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE #define COLOSSUS_SCORE "Colossus Killed" #define BUBBLEGUM_SCORE "Bubblegum Killed" #define DRAKE_SCORE "Drakes Killed" +#define BIRD_SCORE "Hierophants Killed" +#define SWARMER_BEACON_SCORE "Swarmer Beacons Killed" #define BOSS_SCORE "Bosses Killed" #define TENDRIL_CLEAR_SCORE "Tendrils Killed" + + + + // NTNet module-configuration values. Do not change these. If you need to add another use larger number (5..6..7 etc) +#define NTNET_SOFTWAREDOWNLOAD 1 // Downloads of software from NTNet +#define NTNET_PEERTOPEER 2 // P2P transfers of files between devices +#define NTNET_COMMUNICATION 3 // Communication (messaging) +#define NTNET_SYSTEMCONTROL 4 // Control of various systems, RCon, air alarm control, etc. + +// NTNet transfer speeds, used when downloading/uploading a file/program. +#define NTNETSPEED_LOWSIGNAL 0.5 // GQ/s transfer speed when the device is wirelessly connected and on Low signal +#define NTNETSPEED_HIGHSIGNAL 1 // GQ/s transfer speed when the device is wirelessly connected and on High signal +#define NTNETSPEED_ETHERNET 2 // GQ/s transfer speed when the device is using wired connection + + +// Program bitflags +#define PROGRAM_ALL 7 +#define PROGRAM_CONSOLE 1 +#define PROGRAM_LAPTOP 2 +#define PROGRAM_TABLET 4 + +#define PROGRAM_STATE_KILLED 0 +#define PROGRAM_STATE_BACKGROUND 1 +#define PROGRAM_STATE_ACTIVE 2 + +// Caps for NTNet logging. Less than 10 would make logging useless anyway, more than 500 may make the log browser too laggy. Defaults to 100 unless user changes it. +#define MAX_NTNET_LOGS 300 +#define MIN_NTNET_LOGS 10 +//TODO Move to a pref +#define STATION_GOAL_BUDGET 1 + +//Luma coefficients suggested for HDTVs. If you change these, make sure they add up to 1. +#define LUMA_R 0.213 +#define LUMA_G 0.715 +#define LUMA_B 0.072 + + +//attack visual effects +#define ATTACK_EFFECT_PUNCH "punch" +#define ATTACK_EFFECT_KICK "kick" +#define ATTACK_EFFECT_SMASH "smash" +#define ATTACK_EFFECT_CLAW "claw" +#define ATTACK_EFFECT_DISARM "disarm" +#define ATTACK_EFFECT_BITE "bite" +#define ATTACK_EFFECT_MECHFIRE "mech_fire" +#define ATTACK_EFFECT_MECHTOXIN "mech_toxin" +#define ATTACK_EFFECT_BOOP "boop" //Honk + + +//different types of atom colorations +#define ADMIN_COLOUR_PRIORITY 1 //only used by rare effects like greentext coloring mobs and when admins varedit color +#define TEMPORARY_COLOUR_PRIORITY 2 //e.g. purple effect of the revenant on a mob, black effect when mob electrocuted +#define WASHABLE_COLOUR_PRIORITY 3 //color splashed onto an atom (e.g. paint on turf) +#define FIXED_COLOUR_PRIORITY 4 //color inherent to the atom (e.g. blob color) +#define COLOUR_PRIORITY_AMOUNT 4 //how many priority levels there are. + +// w_class (weight class) +#define WEIGHT_CLASS_TINY 1 // Usually items smaller then a human hand +#define WEIGHT_CLASS_SMALL 2 // Pockets can hold small and tiny items +#define WEIGHT_CLASS_NORMAL 3 // Standard backpacks can carry tiny, small & normal items +#define WEIGHT_CLASS_BULKY 4 // Items that can be weilded or equipped but not stored in an inventory +#define WEIGHT_CLASS_HUGE 5 // Usually represents objects that require two hands to operate +#define WEIGHT_CLASS_GIGANTIC 6 // Essentially means it cannot be picked up or placed in an inventory + +// Examples of tiny items: Playing Cards, Lighter, Scalpel, Coins/Money +// Examples of small items: Flashlight, Multitool, Grenades, GPS Device +// Examples of normal items: Fire extinguisher, Stunbaton, Gas Mask, Metal Sheets +// Examples of bulky items: Defibrillator, Backpack, Space Suits +// Examples of huge items: Shotgun, Two Handed Melee Weapons +// Examples of gigantic items: Mech Parts, Safe + +// m_intent +#define MOVE_INTENT_WALK "walk" +#define MOVE_INTENT_RUN "run" + +//Endgame Results + +#define NUKE_NEAR_MISS 1 +#define NUKE_MISS_STATION 2 +#define NUKE_SYNDICATE_BASE 3 +#define STATION_DESTROYED_NUKE 4 +#define STATION_EVACUATED 5 +#define GANG_LOSS 6 +#define GANG_TAKEOVER 7 +#define BLOB_WIN 8 +#define BLOB_NUKE 9 +#define BLOB_DESTROYED 10 +#define CULT_ESCAPE 11 +#define CULT_FAILURE 12 +#define CULT_SUMMON 13 +#define NUKE_MISS 14 +#define OPERATIVES_KILLED 15 +#define OPERATIVE_SKIRMISH 16 +#define REVS_WIN 17 +#define REVS_LOSE 18 +#define WIZARD_KILLED 19 +#define STATION_NUKED 20 +#define CLOCK_SUMMON 21 +#define CLOCK_SILICONS 22 +#define CLOCK_PROSELYTIZATION 23 +#define SHUTTLE_HIJACK 24 + +//For SSTimer + +#define TIMER_NORMAL "normal" +#define TIMER_UNIQUE "unique" + +// Ventcrawling +#define VENTCRAWLER_NONE 0 +#define VENTCRAWLER_NUDE 1 +#define VENTCRAWLER_ALWAYS 2 + +// Intent +#define INTENT_HELP "help" +#define INTENT_GRAB "grab" +#define INTENT_DISARM "disarm" +#define INTENT_HARM "harm" +// NOTE: INTENT_HOTKEY_* defines are not actual intents! +// they are here to support hotkeys +#define INTENT_HOTKEY_LEFT "left" +#define INTENT_HOTKEY_RIGHT "right" diff --git a/code/__DEFINES/pinpointers.dm b/code/__DEFINES/pinpointers.dm new file mode 100644 index 0000000000..80403e54de --- /dev/null +++ b/code/__DEFINES/pinpointers.dm @@ -0,0 +1,7 @@ +//I would rather have these in pinpointer.dm, but Malf_Modules.dm is loaded before that file so they need to be here. +#define TRACK_NUKE_DISK 1 //We track the nuclear authentication disk, either to protect it or steal it +#define TRACK_MALF_AI 2 //We track the malfunctioning AI, so we can prevent it from blowing us all up +#define TRACK_INFILTRATOR 3 //We track the Syndicate infiltrator, so we can get back to ship when the nuke's armed +#define TRACK_OPERATIVES 4 //We track the closest operative, so we can regroup when we need to +#define TRACK_ATOM 5 //We track a specified atom, so admins can make us function for events +#define TRACK_COORDINATES 6 //We point towards the specified coordinates on our z-level, so we can navigate diff --git a/code/__DEFINES/pipe_construction.dm b/code/__DEFINES/pipe_construction.dm index f19c19824a..84c4563bf2 100644 --- a/code/__DEFINES/pipe_construction.dm +++ b/code/__DEFINES/pipe_construction.dm @@ -38,4 +38,21 @@ Construction breaks otherwise #define DISP_END_OUTLET 7 #define DISP_END_CHUTE 8 #define DISP_SORTJUNCTION 9 -#define DISP_SORTJUNCTION_FLIP 10 \ No newline at end of file +#define DISP_SORTJUNCTION_FLIP 10 + +//Transit tubes +#define TRANSIT_TUBE_STRAIGHT 0 +#define TRANSIT_TUBE_STRAIGHT_CROSSING 1 +#define TRANSIT_TUBE_CURVED 2 +#define TRANSIT_TUBE_DIAGONAL 3 +#define TRANSIT_TUBE_DIAGONAL_CROSSING 4 +#define TRANSIT_TUBE_JUNCTION 5 +#define TRANSIT_TUBE_STATION 6 +#define TRANSIT_TUBE_TERMINUS 7 +#define TRANSIT_TUBE_POD 8 + +//the open status of the transit tube station +#define STATION_TUBE_OPEN 0 +#define STATION_TUBE_OPENING 1 +#define STATION_TUBE_CLOSED 2 +#define STATION_TUBE_CLOSING 3 \ No newline at end of file diff --git a/code/__DEFINES/preferences.dm b/code/__DEFINES/preferences.dm index ec4017088c..5a9f36674a 100644 --- a/code/__DEFINES/preferences.dm +++ b/code/__DEFINES/preferences.dm @@ -28,7 +28,15 @@ #define CHAT_GHOSTWHISPER 128 #define CHAT_GHOSTPDA 256 #define CHAT_GHOSTRADIO 512 -#define CHAT_LOOC 1024 -#define TOGGLES_DEFAULT_CHAT (CHAT_OOC|CHAT_DEAD|CHAT_GHOSTEARS|CHAT_GHOSTSIGHT|CHAT_PRAYER|CHAT_RADIO|CHAT_PULLR|CHAT_GHOSTWHISPER|CHAT_GHOSTPDA|CHAT_GHOSTRADIO|CHAT_LOOC) +#define TOGGLES_DEFAULT_CHAT (CHAT_OOC|CHAT_DEAD|CHAT_GHOSTEARS|CHAT_GHOSTSIGHT|CHAT_PRAYER|CHAT_RADIO|CHAT_PULLR|CHAT_GHOSTWHISPER|CHAT_GHOSTPDA|CHAT_GHOSTRADIO) +#define PARALLAX_INSANE -1 //for show offs +#define PARALLAX_HIGH 0 //default. +#define PARALLAX_MED 1 +#define PARALLAX_LOW 2 +#define PARALLAX_DISABLE 3 //this option must be the highest number + +#define PARALLAX_DELAY_DEFAULT world.tick_lag +#define PARALLAX_DELAY_MED 1 +#define PARALLAX_DELAY_LOW 2 \ No newline at end of file diff --git a/code/__DEFINES/qdel.dm b/code/__DEFINES/qdel.dm index 78c0b532bd..8358df737e 100644 --- a/code/__DEFINES/qdel.dm +++ b/code/__DEFINES/qdel.dm @@ -12,4 +12,5 @@ //defines for the gc_destroyed var #define GC_QUEUED_FOR_QUEUING -1 -#define GC_QUEUED_FOR_HARD_DEL -2 \ No newline at end of file +#define GC_QUEUED_FOR_HARD_DEL -2 +#define GC_CURRENTLY_BEING_QDELETED -3 diff --git a/code/__DEFINES/role_preferences.dm b/code/__DEFINES/role_preferences.dm index 2427c1cc17..94995eeb23 100644 --- a/code/__DEFINES/role_preferences.dm +++ b/code/__DEFINES/role_preferences.dm @@ -21,10 +21,9 @@ #define ROLE_GANG "gangster" #define ROLE_ABDUCTOR "abductor" #define ROLE_REVENANT "revenant" -#define ROLE_HOG_GOD "hand of god: god" -#define ROLE_HOG_CULTIST "hand of god: cultist" #define ROLE_DEVIL "devil" #define ROLE_SERVANT_OF_RATVAR "servant of Ratvar" +#define ROLE_BORER "borer" //Missing assignment means it's not a gamemode specific role, IT'S NOT A BUG OR ERROR. //The gamemode specific ones are just so the gamemodes can query whether a player is old enough @@ -45,8 +44,12 @@ var/global/list/special_roles = list( ROLE_GANG = /datum/game_mode/gang, ROLE_REVENANT, ROLE_ABDUCTOR = /datum/game_mode/abduction, - ROLE_HOG_GOD = /datum/game_mode/hand_of_god, - ROLE_HOG_CULTIST = /datum/game_mode/hand_of_god, ROLE_DEVIL = /datum/game_mode/devil, ROLE_SERVANT_OF_RATVAR = /datum/game_mode/clockwork_cult, + ROLE_BORER, ) + +//Job defines for what happens when you fail to qualify for any job during job selection +#define BEASSISTANT 1 +#define BERANDOMJOB 2 +#define RETURNTOLOBBY 3 \ No newline at end of file diff --git a/code/__DEFINES/say.dm b/code/__DEFINES/say.dm index 226bfee631..070837bee9 100644 --- a/code/__DEFINES/say.dm +++ b/code/__DEFINES/say.dm @@ -24,6 +24,7 @@ #define SPAN_PAPYRUS "papyrus" #define SPAN_REALLYBIG "reallybig" #define SPAN_COMMAND "command_headset" +#define SPAN_CLOWN "clown" //bitflag #defines for return value of the radio() proc. #define ITALICS 1 diff --git a/code/__DEFINES/shuttles.dm b/code/__DEFINES/shuttles.dm index 7fbaf6d8c9..a9c14bdd5c 100644 --- a/code/__DEFINES/shuttles.dm +++ b/code/__DEFINES/shuttles.dm @@ -1,17 +1,19 @@ //shuttle mode defines -#define SHUTTLE_IDLE 0 -#define SHUTTLE_RECALL 1 -#define SHUTTLE_CALL 2 -#define SHUTTLE_DOCKED 3 -#define SHUTTLE_STRANDED 4 -#define SHUTTLE_ESCAPE 5 -#define SHUTTLE_ENDGAME 6 +#define SHUTTLE_IDLE "idle" +#define SHUTTLE_IGNITING "igniting" +#define SHUTTLE_RECALL "recall" +#define SHUTTLE_CALL "call" +#define SHUTTLE_DOCKED "docked" +#define SHUTTLE_STRANDED "stranded" +#define SHUTTLE_ESCAPE "escape" +#define SHUTTLE_ENDGAME "endgame: game over" #define EMERGENCY_IDLE_OR_RECALLED (SSshuttle.emergency && ((SSshuttle.emergency.mode == SHUTTLE_IDLE) || (SSshuttle.emergency.mode == SHUTTLE_RECALL))) #define EMERGENCY_ESCAPED_OR_ENDGAMED (SSshuttle.emergency && ((SSshuttle.emergency.mode == SHUTTLE_ESCAPE) || (SSshuttle.emergency.mode == SHUTTLE_ENDGAME))) #define EMERGENCY_AT_LEAST_DOCKED (SSshuttle.emergency && SSshuttle.emergency.mode != SHUTTLE_IDLE && SSshuttle.emergency.mode != SHUTTLE_RECALL && SSshuttle.emergency.mode != SHUTTLE_CALL) // Shuttle return values +#define SHUTTLE_CAN_DOCK "can_dock" #define SHUTTLE_NOT_A_DOCKING_PORT "not_a_docking_port" #define SHUTTLE_DWIDTH_TOO_LARGE "docking_width_too_large" #define SHUTTLE_WIDTH_TOO_LARGE "width_too_large" @@ -29,3 +31,11 @@ // Ripples, effects that signal a shuttle's arrival #define SHUTTLE_RIPPLE_TIME 100 #define SHUTTLE_RIPPLE_FADEIN 50 + +#define TRANSIT_REQUEST 1 +#define TRANSIT_READY 2 +#define TRANSIT_FULL 3 + +#define SHUTTLE_TRANSIT_BORDER 8 + +#define PARALLAX_LOOP_TIME 25 \ No newline at end of file diff --git a/code/__DEFINES/stat.dm b/code/__DEFINES/stat.dm index 9711fa9ff1..e2cf5d5dd7 100644 --- a/code/__DEFINES/stat.dm +++ b/code/__DEFINES/stat.dm @@ -24,3 +24,8 @@ #define POWEROFF 4 // tbd #define MAINT 8 // under maintaince #define EMPED 16 // temporary broken by EMP pulse + +//ai power requirement defines +#define POWER_REQ_NONE 0 +#define POWER_REQ_ALL 1 +#define POWER_REQ_CLOCKCULT 2 diff --git a/code/__DEFINES/status_effects.dm b/code/__DEFINES/status_effects.dm new file mode 100644 index 0000000000..e80157fa63 --- /dev/null +++ b/code/__DEFINES/status_effects.dm @@ -0,0 +1,21 @@ + +//These are all the different status effects. Use the paths for each effect in the defines. + +#define BASIC_STATUS_EFFECT /datum/status_effect //Has no effect. + +/////////// +// BUFFS // +/////////// + +#define STATUS_EFFECT_SHADOW_MEND /datum/status_effect/shadow_mend //Quick, powerful heal that deals damage afterwards. Heals 15 brute/burn every second for 3 seconds. +#define STATUS_EFFECT_VOID_PRICE /datum/status_effect/void_price //The price of healing yourself with void energy. Deals 3 brute damage every 3 seconds for 30 seconds. + +#define STATUS_EFFECT_VANGUARD /datum/status_effect/vanguard_shield //Grants temporary stun absorption, but will stun the user based on how many stuns they absorbed. +#define STATUS_EFFECT_INATHNEQS_ENDOWMENT /datum/status_effect/inathneqs_endowment //A 15-second invulnerability and stun absorption, granted by Inath-neq. +#define STATUS_EFFECT_WRAITHSPECS /datum/status_effect/wraith_spectacles + +#define STATUS_EFFECT_POWERREGEN /datum/status_effect/cyborg_power_regen //Regenerates power on a given cyborg over time + +///////////// +// DEBUFFS // +///////////// diff --git a/code/__DEFINES/tablecrafting.dm b/code/__DEFINES/tablecrafting.dm index cfe3f8cb38..a5dc040cc7 100644 --- a/code/__DEFINES/tablecrafting.dm +++ b/code/__DEFINES/tablecrafting.dm @@ -3,6 +3,18 @@ #define CAT_WEAPON "Weaponry" #define CAT_AMMO "Ammunition" #define CAT_ROBOT "Robots" -#define CAT_FOOD "Food" #define CAT_MISC "Misc" -#define CAT_PRIMAL "Tribal" \ No newline at end of file +#define CAT_PRIMAL "Tribal" +#define CAT_BREAD "Breads" +#define CAT_BURGER "Burgers" +#define CAT_CAKE "Cakes" +#define CAT_EGG "Egg-Based Food" +#define CAT_MEAT "Meats" +#define CAT_MISCFOOD "Misc. Food" +#define CAT_PASTRY "Pastries" +#define CAT_PIE "Pies" +#define CAT_PIZZA "Pizzas" +#define CAT_SALAD "Salads" +#define CAT_SANDWICH "Sandwiches" +#define CAT_SOUP "Soups" +#define CAT_SPAGHETTI "Spaghettis" diff --git a/code/__DEFINES/tick.dm b/code/__DEFINES/tick.dm index 04e333fc95..03ba94a8b3 100644 --- a/code/__DEFINES/tick.dm +++ b/code/__DEFINES/tick.dm @@ -1,7 +1,7 @@ -#define TICK_LIMIT_RUNNING 85 -#define TICK_LIMIT_TO_RUN 80 -#define TICK_LIMIT_MC 84 -#define TICK_LIMIT_MC_INIT 100 +#define TICK_LIMIT_RUNNING 80 +#define TICK_LIMIT_TO_RUN 78 +#define TICK_LIMIT_MC 70 +#define TICK_LIMIT_MC_INIT 98 #define TICK_CHECK ( world.tick_usage > CURRENT_TICKLIMIT ? stoplag() : 0 ) #define CHECK_TICK if (world.tick_usage > CURRENT_TICKLIMIT) stoplag() diff --git a/code/__DEFINES/typeids.dm b/code/__DEFINES/typeids.dm new file mode 100644 index 0000000000..ae5df258b4 --- /dev/null +++ b/code/__DEFINES/typeids.dm @@ -0,0 +1,8 @@ +//Byond type ids +#define TYPEID_NULL "0" +#define TYPEID_NORMAL_LIST "f" +//helper macros +#define GET_TYPEID(ref) ( ( (lentext(ref) <= 10) ? "TYPEID_NULL" : copytext(ref, 4, lentext(ref)-6) ) ) +#define IS_NORMAL_LIST(L) (GET_TYPEID("\ref[L]") == TYPEID_NORMAL_LIST) + + diff --git a/code/__DEFINES/vv.dm b/code/__DEFINES/vv.dm new file mode 100644 index 0000000000..807e5187b0 --- /dev/null +++ b/code/__DEFINES/vv.dm @@ -0,0 +1,21 @@ +#define VV_NUM "Number" +#define VV_TEXT "Text" +#define VV_MESSAGE "Mutiline Text" +#define VV_ICON "Icon" +#define VV_ATOM_REFERENCE "Atom Reference" +#define VV_DATUM_REFERENCE "Datum Reference" +#define VV_MOB_REFERENCE "Mob Reference" +#define VV_CLIENT "Client" +#define VV_ATOM_TYPE "Atom Typepath" +#define VV_DATUM_TYPE "Datum Typepath" +#define VV_TYPE "Custom Typepath" +#define VV_FILE "File" +#define VV_LIST "List" +#define VV_NEW_ATOM "New Atom" +#define VV_NEW_DATUM "New Datum" +#define VV_NEW_TYPE "New Custom Typepath" +#define VV_NEW_LIST "New List" +#define VV_NULL "NULL" +#define VV_RESTORE_DEFAULT "Restore to Default" +#define VV_MARKED_DATUM "Marked Datum" + diff --git a/code/__DEFINES/wires.dm b/code/__DEFINES/wires.dm index 8f863cd0ab..d9bbff0b5f 100644 --- a/code/__DEFINES/wires.dm +++ b/code/__DEFINES/wires.dm @@ -1,44 +1,45 @@ -#define WIRE_ACTIVATE "activate" -#define WIRE_AI "ai" -#define WIRE_ALARM "alarm" -#define WIRE_AVOIDANCE "avoidance" -#define WIRE_BACKUP1 "backup1" -#define WIRE_BACKUP2 "backup2" -#define WIRE_BEACON "beacon" -#define WIRE_BOLTS "bolts" -#define WIRE_BOOM "boom" -#define WIRE_CAMERA "camera" -#define WIRE_CONTRABAND "contraband" -#define WIRE_DELAY "delay" -#define WIRE_DISABLE "disable" -#define WIRE_DISARM "disarm" -#define WIRE_ELECTRIFY "electrify" -#define WIRE_HACK "hack" -#define WIRE_IDSCAN "idscan" -#define WIRE_INTERFACE "interface" -#define WIRE_LAWSYNC "lawsync" -#define WIRE_LIGHT "light" -#define WIRE_LIMIT "limit" -#define WIRE_LOADCHECK "loadcheck" -#define WIRE_LOCKDOWN "lockdown" -#define WIRE_MOTOR1 "motor1" -#define WIRE_MOTOR2 "motor2" -#define WIRE_OPEN "open" -#define WIRE_PANIC "panic" -#define WIRE_POWER "power" -#define WIRE_POWER1 "power1" -#define WIRE_POWER2 "power2" -#define WIRE_PROCEED "proceed" -#define WIRE_RX "recieve" -#define WIRE_SAFETY "safety" -#define WIRE_SHOCK "shock" -#define WIRE_SIGNAL "signal" -#define WIRE_SPEAKER "speaker" -#define WIRE_STRENGTH "strength" -#define WIRE_THROW "throw" -#define WIRE_TIMING "timing" -#define WIRE_TX "transmit" -#define WIRE_UNBOLT "unbolt" -#define WIRE_ZAP "zap" -#define WIRE_ZAP1 "zap1" -#define WIRE_ZAP2 "zap2" +#define WIRE_DUD_PREFIX "__dud" +#define WIRE_ACTIVATE "Activate" +#define WIRE_AI "AI Connection" +#define WIRE_ALARM "Alarm" +#define WIRE_AVOIDANCE "Avoidance" +#define WIRE_BACKUP1 "Auxillary Power 1" +#define WIRE_BACKUP2 "Auxillary Power 2" +#define WIRE_BEACON "Beacon" +#define WIRE_BOLTS "Bolts" +#define WIRE_BOOM "Boom" +#define WIRE_CAMERA "Camera" +#define WIRE_CONTRABAND "Contraband" +#define WIRE_DELAY "Delay" +#define WIRE_DISABLE "Disable" +#define WIRE_DISARM "Disarm" +#define WIRE_HACK "Hack" +#define WIRE_IDSCAN "ID Scan" +#define WIRE_INTERFACE "Interface" +#define WIRE_LAWSYNC "AI Law Synchronization" +#define WIRE_LIGHT "Bolt Lights" +#define WIRE_LIMIT "Limiter" +#define WIRE_LOADCHECK "Load Check" +#define WIRE_LOCKDOWN "Lockdown" +#define WIRE_MOTOR1 "Motor 1" +#define WIRE_MOTOR2 "Motor 2" +#define WIRE_OPEN "Open" +#define WIRE_PANIC "Panic Siphon" +#define WIRE_POWER "Power" +#define WIRE_POWER1 "Main Power 1" +#define WIRE_POWER2 "Main Power 2" +#define WIRE_PROCEED "Proceed" +#define WIRE_RX "Recieve" +#define WIRE_RESET_MODULE "Reset Module" +#define WIRE_SAFETY "Safety" +#define WIRE_SHOCK "High Voltage Ground" +#define WIRE_SIGNAL "Signal" +#define WIRE_SPEAKER "Speaker" +#define WIRE_STRENGTH "Strength" +#define WIRE_THROW "Throw" +#define WIRE_TIMING "Timing" +#define WIRE_TX "Transmit" +#define WIRE_UNBOLT "Unbolt" +#define WIRE_ZAP "High Voltage Circuit" +#define WIRE_ZAP1 "High Voltage Circuit 1" +#define WIRE_ZAP2 "High Voltage Circuit 2" diff --git a/code/__HELPERS/_logging.dm b/code/__HELPERS/_logging.dm index a23204ac5d..b6f7407e3f 100644 --- a/code/__HELPERS/_logging.dm +++ b/code/__HELPERS/_logging.dm @@ -22,7 +22,7 @@ /proc/log_adminsay(text) if (config.log_adminchat) log_admin("ASAY: [text]") - + /proc/log_dsay(text) if (config.log_adminchat) log_admin("DSAY: [text]") @@ -76,3 +76,6 @@ //reusing the PDA option because I really don't think news comments are worth a config option diary << "\[[time_stamp()]]COMMENT: [text]" +/proc/log_chat(text) + if (config.log_pda) + diary << "\[[time_stamp()]]CHAT: [text]" \ No newline at end of file diff --git a/code/__HELPERS/bandetect.dm b/code/__HELPERS/bandetect.dm index 97c7e1567c..61698c54d8 100644 --- a/code/__HELPERS/bandetect.dm +++ b/code/__HELPERS/bandetect.dm @@ -10,6 +10,8 @@ if(query.NextRow()) var/diff = text2num(query.item[1]) + if(config.use_account_age_for_jobs) + player_age = max(0,diff) //So job code soesn't freak out if they are time traveling. if(diff < YOUNG) var/msg = "(IP: [address], ID: [computer_id]) is a new BYOND account made on [y]-[m]-[d]." if(diff < 0) diff --git a/code/__HELPERS/cmp.dm b/code/__HELPERS/cmp.dm index 54cdc9bb8c..1cad2a5e5e 100644 --- a/code/__HELPERS/cmp.dm +++ b/code/__HELPERS/cmp.dm @@ -41,4 +41,7 @@ var/cmp_field = "name" return a.priority - b.priority /proc/cmp_clientcolour_priority(datum/client_colour/A, datum/client_colour/B) - return B.priority - A.priority \ No newline at end of file + return B.priority - A.priority + +/proc/cmp_clockscripture_priority(datum/clockwork_scripture/A, datum/clockwork_scripture/B) + return initial(A.sort_priority) - initial(B.sort_priority) \ No newline at end of file diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index ac32632559..fd25bc68b6 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -13,13 +13,17 @@ for(A, A && !isarea(A), A=A.loc); //semicolon is for the empty statement return A +/proc/get_area_name(atom/X) + var/area/Y = get_area(X) + return Y.name + /proc/get_area_master(O) var/area/A = get_area(O) if(A && A.master) A = A.master return A -/proc/get_area_name(N) //get area by its name +/proc/get_area_by_name(N) //get area by its name for(var/area/A in world) if(A.name == N) return A @@ -344,9 +348,9 @@ continue else if(afk_check && M.client.is_afk()) continue - else if(human_check && !istype(M, /mob/living/carbon/human)) + else if(human_check && !ishuman(M)) continue - else if(istype(M, /mob/new_player)) // exclude people in the lobby + else if(isnewplayer(M)) // exclude people in the lobby continue else if(isobserver(M)) // Ghosts are fine if they were playing once (didn't start as observers) var/mob/dead/observer/O = M @@ -393,14 +397,14 @@ return new /datum/projectile_data(src_x, src_y, time, distance, power_x, power_y, dest_x, dest_y) -/proc/pollCandidates(var/Question, var/jobbanType, var/datum/game_mode/gametypeCheck, var/be_special_flag = 0, var/poll_time = 300) +/proc/pollCandidates(var/Question, var/jobbanType, var/datum/game_mode/gametypeCheck, var/be_special_flag = 0, var/poll_time = 300, var/ignore_category = null) var/list/mob/dead/observer/candidates = list() var/time_passed = world.time if (!Question) Question = "Would you like to be a special role?" for(var/mob/dead/observer/G in player_list) - if(!G.key || !G.client) + if(!G.key || !G.client || (ignore_category && poll_ignore[ignore_category] && G.ckey in poll_ignore[ignore_category])) continue if(be_special_flag) if(!(G.client.prefs) || !(be_special_flag in G.client.prefs.be_special)) @@ -413,7 +417,7 @@ continue spawn(0) G << 'sound/misc/notice2.ogg' //Alerting them to their consideration - switch(askuser(G,Question,"Please answer in [poll_time/10] seconds!","Yes","No", StealFocus=0, Timeout=poll_time)) + switch(ignore_category ? askuser(G,Question,"Please answer in [poll_time/10] seconds!","Yes","No","Never for this round", StealFocus=0, Timeout=poll_time) : askuser(G,Question,"Please answer in [poll_time/10] seconds!","Yes","No", StealFocus=0, Timeout=poll_time)) if(1) G << "Choice registered: Yes." if((world.time-time_passed)>poll_time) @@ -423,6 +427,12 @@ candidates += G if(2) G << "Choice registered: No." + if(3) + var/list/L = poll_ignore[ignore_category] + if(!L) + poll_ignore[ignore_category] = list() + poll_ignore[ignore_category] += G.ckey + G << "Choice registered: Never for this round." sleep(poll_time) //Check all our candidates, to make sure they didn't log off during the wait period. @@ -432,6 +442,23 @@ return candidates +/proc/pollCandidatesForMob(Question, jobbanType, datum/game_mode/gametypeCheck, be_special_flag = 0, poll_time = 300, mob/M, ignore_category = null) + var/list/L = pollCandidates(Question, jobbanType, gametypeCheck, be_special_flag, poll_time, ignore_category) + if(!M || qdeleted(M) || !M.loc) + return list() + return L + +/proc/pollCandidatesForMobs(Question, jobbanType, datum/game_mode/gametypeCheck, be_special_flag = 0, poll_time = 300, list/mobs, ignore_category = null) + var/list/L = pollCandidates(Question, jobbanType, gametypeCheck, be_special_flag, poll_time, ignore_category) + var/i=1 + for(var/v in mobs) + var/atom/A = v + if(!A || qdeleted(A) || !A.loc) + mobs.Cut(i,i+1) + else + ++i + return L + /proc/makeBody(mob/dead/observer/G_found) // Uses stripped down and bastardized code from respawn character if(!G_found || !G_found.key) return @@ -444,3 +471,13 @@ new_character.key = G_found.key return new_character + +/proc/send_to_playing_players(thing) //sends a whatever to all playing players; use instead of world << where needed + for(var/M in player_list) + if(M && !isnewplayer(M)) + M << thing + +/proc/window_flash(var/client_or_usr) + if (!client_or_usr) + return + winset(client_or_usr, "mainwindow", "flash=5") diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index f6b65bfa39..ab6d327994 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -13,22 +13,23 @@ init_sprite_accessory_subtypes(/datum/sprite_accessory/undershirt, undershirt_list, undershirt_m, undershirt_f) //socks init_sprite_accessory_subtypes(/datum/sprite_accessory/socks, socks_list) - //human mutant bodyparts - init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/human, tails_list_human) - init_sprite_accessory_subtypes(/datum/sprite_accessory/tails_animated/human, animated_tails_list_human) - init_sprite_accessory_subtypes(/datum/sprite_accessory/ears, ears_list) - init_sprite_accessory_subtypes(/datum/sprite_accessory/wings, wings_list) - init_sprite_accessory_subtypes(/datum/sprite_accessory/wings_open, wings_open_list) //lizard bodyparts (blizzard intensifies) init_sprite_accessory_subtypes(/datum/sprite_accessory/body_markings, body_markings_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/lizard, tails_list_lizard) init_sprite_accessory_subtypes(/datum/sprite_accessory/tails_animated/lizard, animated_tails_list_lizard) + init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/human, tails_list_human) + init_sprite_accessory_subtypes(/datum/sprite_accessory/tails_animated/human, animated_tails_list_human) init_sprite_accessory_subtypes(/datum/sprite_accessory/snouts, snouts_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/horns, horns_list) + init_sprite_accessory_subtypes(/datum/sprite_accessory/ears, ears_list) + init_sprite_accessory_subtypes(/datum/sprite_accessory/wings, wings_list) + init_sprite_accessory_subtypes(/datum/sprite_accessory/wings_open, wings_open_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/frills, frills_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/spines, spines_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/spines_animated, animated_spines_list) + init_sprite_accessory_subtypes(/datum/sprite_accessory/legs, legs_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/wings, r_wings_list,roundstart = TRUE) + //mammal bodyparts (fucking furries) init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_body_markings, mam_body_markings_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_tails, mam_tails_list) @@ -44,6 +45,7 @@ init_sprite_accessory_subtypes(/datum/sprite_accessory/xeno_tail, xeno_tail_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/xeno_dorsal, xeno_dorsal_list) + //Species for(var/spath in subtypesof(/datum/species)) var/datum/species/S = new spath() diff --git a/code/__HELPERS/icon_smoothing.dm b/code/__HELPERS/icon_smoothing.dm index fd4b322202..483f54b860 100644 --- a/code/__HELPERS/icon_smoothing.dm +++ b/code/__HELPERS/icon_smoothing.dm @@ -108,39 +108,39 @@ return adjacencies +//do not use, use queue_smooth(atom) /proc/smooth_icon(atom/A) + if(!A || !A.smooth || !A.z) + return if(qdeleted(A)) return - if(!A || !A.smooth) - return - spawn(0) - if((A.smooth & SMOOTH_TRUE) || (A.smooth & SMOOTH_MORE)) - var/adjacencies = calculate_adjacencies(A) + if((A.smooth & SMOOTH_TRUE) || (A.smooth & SMOOTH_MORE)) + var/adjacencies = calculate_adjacencies(A) - if(A.smooth & SMOOTH_DIAGONAL) - A.diagonal_smooth(adjacencies) - else - cardinal_smooth(A, adjacencies) + if(A.smooth & SMOOTH_DIAGONAL) + A.diagonal_smooth(adjacencies) + else + cardinal_smooth(A, adjacencies) /atom/proc/diagonal_smooth(adjacencies) switch(adjacencies) if(N_NORTH|N_WEST) - replace_smooth_overlays("d1-se-0","d2-se","d3-se","d4-se") + replace_smooth_overlays("d-se","d-se-0") if(N_NORTH|N_EAST) - replace_smooth_overlays("d1-sw","d2-sw-0","d3-sw","d4-sw") + replace_smooth_overlays("d-sw","d-sw-0") if(N_SOUTH|N_WEST) - replace_smooth_overlays("d1-ne","d2-ne","d3-ne-0","d4-ne") + replace_smooth_overlays("d-ne","d-ne-0") if(N_SOUTH|N_EAST) - replace_smooth_overlays("d1-nw","d2-nw","d3-nw","d4-nw-0") + replace_smooth_overlays("d-nw","d-nw-0") if(N_NORTH|N_WEST|N_NORTHWEST) - replace_smooth_overlays("d1-se-1","d2-se","d3-se","d4-se") + replace_smooth_overlays("d-se","d-se-1") if(N_NORTH|N_EAST|N_NORTHEAST) - replace_smooth_overlays("d1-sw","d2-sw-1","d3-sw","d4-sw") + replace_smooth_overlays("d-sw","d-sw-1") if(N_SOUTH|N_WEST|N_SOUTHWEST) - replace_smooth_overlays("d1-ne","d2-ne","d3-ne-1","d4-ne") + replace_smooth_overlays("d-ne","d-ne-1") if(N_SOUTH|N_EAST|N_SOUTHEAST) - replace_smooth_overlays("d1-nw","d2-nw","d3-nw","d4-nw-1") + replace_smooth_overlays("d-nw","d-nw-1") else cardinal_smooth(src, adjacencies) @@ -153,25 +153,33 @@ /turf/closed/wall/diagonal_smooth(adjacencies) adjacencies = reverse_ndir(..()) if(adjacencies) - underlays.Cut() + var/list/U = list() if(fixed_underlay) if(fixed_underlay["space"]) - underlays += image('icons/turf/space.dmi', SPACE_ICON_STATE, layer=src.layer) + var/image/I = image('icons/turf/space.dmi', SPACE_ICON_STATE, layer=TURF_LAYER) + I.plane = PLANE_SPACE + U += I else - underlays += image(fixed_underlay["icon"], fixed_underlay["icon_state"], layer=src.layer) + U += image(fixed_underlay["icon"], fixed_underlay["icon_state"], layer=TURF_LAYER) else var/turf/T = get_step(src, turn(adjacencies, 180)) - if(T && T.density) + if(T && (T.density || T.smooth)) T = get_step(src, turn(adjacencies, 135)) - if(T && T.density) + if(T && (T.density || T.smooth)) T = get_step(src, turn(adjacencies, 225)) - if(istype(T, /turf/open/space)) - underlays += image('icons/turf/space.dmi', SPACE_ICON_STATE, layer=src.layer) + if(isspaceturf(T) && !istype(T, /turf/open/space/transit)) + var/image/I = image('icons/turf/space.dmi', SPACE_ICON_STATE, layer=TURF_LAYER) + I.plane = PLANE_SPACE + U += I else if(T && !T.density && !T.smooth) - underlays += T + U += T + else if(baseturf && !initial(baseturf.density) && !initial(baseturf.smooth)) + U += image(initial(baseturf.icon), initial(baseturf.icon_state), layer=TURF_LAYER) else - underlays += DEFAULT_UNDERLAY_IMAGE + U += DEFAULT_UNDERLAY_IMAGE + underlays = U + /proc/cardinal_smooth(atom/A, adjacencies) //NW CORNER @@ -226,25 +234,31 @@ else if(adjacencies & N_EAST) se = "4-e" + var/list/New = list() + if(A.top_left_corner != nw) A.overlays -= A.top_left_corner A.top_left_corner = nw - A.add_overlay(nw) + New += nw if(A.top_right_corner != ne) A.overlays -= A.top_right_corner A.top_right_corner = ne - A.add_overlay(ne) + New += ne if(A.bottom_right_corner != sw) A.overlays -= A.bottom_right_corner A.bottom_right_corner = sw - A.add_overlay(sw) + New += sw if(A.bottom_left_corner != se) A.overlays -= A.bottom_left_corner A.bottom_left_corner = se - A.add_overlay(se) + New += se + + if(New.len) + A.add_overlay(New) + /proc/find_type_in_direction(atom/source, direction) var/turf/target_turf = get_step(source, direction) @@ -305,14 +319,16 @@ /atom/proc/replace_smooth_overlays(nw, ne, sw, se) clear_smooth_overlays() + var/list/O = list() top_left_corner = nw - add_overlay(nw) + O += nw top_right_corner = ne - add_overlay(ne) + O += ne bottom_left_corner = sw - add_overlay(sw) + O += sw bottom_right_corner = se - add_overlay(se) + O += se + add_overlay(O) /proc/reverse_ndir(ndir) switch(ndir) @@ -351,19 +367,6 @@ else return 0 -//SSicon_smooth -/proc/ss_smooth_icon(atom/A) - if(qdeleted(A)) - return - if(!istype(A) || (A && !A.smooth)) - return - if((A.smooth & SMOOTH_TRUE) || (A.smooth & SMOOTH_MORE)) - var/adjacencies = calculate_adjacencies(A) - if(A.smooth & SMOOTH_DIAGONAL) - A.diagonal_smooth(adjacencies) - else - cardinal_smooth(A, adjacencies) - //SSicon_smooth /proc/queue_smooth_neighbors(atom/A) for(var/V in orange(1,A)) @@ -384,6 +387,5 @@ name = "smooth wall" icon = 'icons/turf/smooth_wall.dmi' icon_state = "smooth" - walltype = "shuttle" smooth = SMOOTH_TRUE|SMOOTH_DIAGONAL|SMOOTH_BORDER canSmoothWith = null diff --git a/code/__HELPERS/icons.dm b/code/__HELPERS/icons.dm index cffdc7fe48..9ebc0ef72d 100644 --- a/code/__HELPERS/icons.dm +++ b/code/__HELPERS/icons.dm @@ -199,7 +199,7 @@ mob getFlatIcon(src) Browse_Icon() -obj/effect/overlayTest +/obj/effect/overlayTest icon = 'old_or_unused.dmi' icon_state = "blue" pixel_x = -24 @@ -948,9 +948,8 @@ var/global/list/friendly_animal_types = list() overlays += priority_overlays /atom/proc/add_overlay(image, priority = 0) - if(image in overlays) - return var/list/new_overlays = overlays.Copy() + new_overlays -= image if(priority) if(!priority_overlays) priority_overlays = list() @@ -1007,3 +1006,32 @@ var/global/list/humanoid_icon_cache = list() //Lame. /image/proc/setDir(newdir) dir = newdir + +// Used to make the frozen item visuals for Freon. +var/list/freeze_item_icons = list() + +/atom/proc/freeze_icon_index() + return "\ref[initial(icon)]-[initial(icon_state)]" + +/obj/proc/make_frozen_visual() + if(!is_frozen && (initial(icon) && initial(icon_state))) + var/index = freeze_icon_index() + var/icon/IC + var/icon/P = freeze_item_icons[index] + if(!P) + P = new /icon + for(var/iconstate in icon_states(icon)) + var/icon/O = new('icons/effects/freeze.dmi', "ice_cube") + IC = new(icon, iconstate) + O.Blend(IC, ICON_ADD) + P.Insert(O, iconstate) + freeze_item_icons[index] = P + icon = P + name = "frozen [name]" + is_frozen = TRUE + +//Assumes already frozed +obj/proc/make_unfrozen() + icon = initial(icon) + name = replacetext(name, "frozen ", "") + is_frozen = FALSE diff --git a/code/__HELPERS/lists.dm b/code/__HELPERS/lists.dm index e7807a881e..692d2953f3 100644 --- a/code/__HELPERS/lists.dm +++ b/code/__HELPERS/lists.dm @@ -104,13 +104,8 @@ //Removes any null entries from the list /proc/listclearnulls(list/L) - if(istype(L)) - var/i=1 - for(var/thing in L) - if(thing != null) - ++i - continue - L.Cut(i,i+1) + var/list/N = new(L.len) + L -= N /* * Returns list containing all the entries from first list that are not present in second. @@ -228,12 +223,30 @@ return L +//same, but returns nothing and acts on list in place +/proc/shuffle_inplace(list/L) + if(!L) + return + + for(var/i=1, i= 0 ? /proc/cmp_ckey_asc : /proc/cmp_ckey_dsc) @@ -392,5 +405,26 @@ if(islist(.[i])) .[i] = .(.[i]) +#if DM_VERSION > 512 +#error Remie said that lummox was adding a way to get a lists +#error contents via list.values, if that is true remove this +#error otherwise, update the version and bug lummox +#elseif +//Flattens a keyed list into a list of it's contents +/proc/flatten_list(list/key_list) + if(!islist(key_list)) + return null + . = list() + for(var/key in key_list) + . |= key_list[key] + //Picks from the list, with some safeties, and returns the "default" arg if it fails #define DEFAULTPICK(L, default) ((istype(L, /list) && L:len) ? pick(L) : default) + +#define LAZYINITLIST(L) if (!L) L = list() + +#define UNSETEMPTY(L) if (L && !L.len) L = null +#define LAZYREMOVE(L, I) if(L) { L -= I; if(!L.len) { L = null; } } +#define LAZYADD(L, I) if(!L) { L = list(); } L += I; +#define LAZYACCESS(L, I) (L ? (isnum(I) ? (I > 0 && I <= L.len ? L[I] : null) : L[I]) : null) +#define LAZYLEN(L) length(L) diff --git a/code/__HELPERS/maths.dm b/code/__HELPERS/maths.dm index 9e34764192..c64350a8a6 100644 --- a/code/__HELPERS/maths.dm +++ b/code/__HELPERS/maths.dm @@ -21,7 +21,6 @@ var/list/sqrtTable = list(1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, return -round(-x / y) * y #define Clamp(CLVALUE,CLMIN,CLMAX) ( max( (CLMIN), min((CLVALUE), (CLMAX)) ) ) -#define CLAMP01(x) (Clamp(x,0,1)) // cotangent /proc/Cot(x) diff --git a/code/__HELPERS/matrices.dm b/code/__HELPERS/matrices.dm index 808612107e..c77b8aa7f4 100644 --- a/code/__HELPERS/matrices.dm +++ b/code/__HELPERS/matrices.dm @@ -63,91 +63,96 @@ // Color matrices: -//Luma coefficients suggested for HDTVs. If you change these, make sure they add up to 1. -#define LUMR 0.2126 -#define LUMG 0.7152 -#define LUMB 0.0722 +/* Documenting a couple of potentially useful color matrices here to inspire ideas +// Greyscale - indentical to saturation @ 0 +list(LUMA_R,LUMA_R,LUMA_R,0, LUMA_G,LUMA_G,LUMA_G,0, LUMA_B,LUMA_B,LUMA_B,0, 0,0,0,1, 0,0,0,0) -//Still need color matrix addition, negation, and multiplication. +// Color inversion +list(-1,0,0,0, 0,-1,0,0, 0,0,-1,0, 0,0,0,1, 1,1,1,0) -//Returns an identity color matrix which does nothing -/proc/color_identity() - return list(1,0,0, 0,1,0, 0,0,1) +// Sepiatone +list(0.393,0.349,0.272,0, 0.769,0.686,0.534,0, 0.189,0.168,0.131,0, 0,0,0,1, 0,0,0,0) +*/ -//Moves all colors angle degrees around the color wheel while maintaining intensity of the color and not affecting whites -//TODO: Need a version that only affects one color (ie shift red to blue but leave greens and blues alone) -/proc/color_rotation(angle) - if(angle == 0) - return color_identity() - angle = Clamp(angle, -180, 180) - var/cos = cos(angle) +//Does nothing +/proc/color_matrix_identity() + return list(1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1, 0,0,0,0) + +//Adds/subtracts overall lightness +//0 is identity, 1 makes everything white, -1 makes everything black +/proc/color_matrix_lightness(power) + return list(1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1, power,power,power,0) + +//Changes distance hues have from grey while maintaining the overall lightness. Greys are unaffected. +//1 is identity, 0 is greyscale, >1 oversaturates colors +/proc/color_matrix_saturation(value) + var/inv = 1 - value + var/R = round(LUMA_R * inv, 0.001) + var/G = round(LUMA_G * inv, 0.001) + var/B = round(LUMA_B * inv, 0.001) + + return list(R + value,R,R,0, G,G + value,G,0, B,B,B + value,0, 0,0,0,1, 0,0,0,0) + +//Changes distance colors have from rgb(127,127,127) grey +//1 is identity. 0 makes everything grey >1 blows out colors and greys +/proc/color_matrix_contrast(value) + var/add = (1 - value) / 2 + return list(value,0,0,0, 0,value,0,0, 0,0,value,0, 0,0,0,1, add,add,add,0) + +//Moves all colors angle degrees around the color wheel while maintaining intensity of the color and not affecting greys +//0 is identity, 120 moves reds to greens, 240 moves reds to blues +/proc/color_matrix_rotate_hue(angle) var/sin = sin(angle) - - var/constA = 0.143 - var/constB = 0.140 - var/constC = -0.283 + var/cos = cos(angle) + var/cos_inv_third = 0.333*(1-cos) + var/sqrt3_sin = sqrt(3)*sin return list( - LUMR + cos * (1-LUMR) + sin * -LUMR, LUMR + cos * -LUMR + sin * constA, LUMR + cos * -LUMR + sin * -(1-LUMR), - LUMG + cos * -LUMG + sin * -LUMG, LUMG + cos * (1-LUMG) + sin * constB, LUMG + cos * -LUMG + sin * LUMG, - LUMB + cos * -LUMB + sin * (1-LUMB), LUMB + cos * -LUMB + sin * constC, LUMB + cos * (1-LUMB) + sin * LUMB - ) +round(cos+cos_inv_third, 0.001), round(cos_inv_third+sqrt3_sin, 0.001), round(cos_inv_third-sqrt3_sin, 0.001), 0, +round(cos_inv_third-sqrt3_sin, 0.001), round(cos+cos_inv_third, 0.001), round(cos_inv_third+sqrt3_sin, 0.001), 0, +round(cos_inv_third+sqrt3_sin, 0.001), round(cos_inv_third-sqrt3_sin, 0.001), round(cos+cos_inv_third, 0.001), 0, +0,0,0,1, +0,0,0,0) -//Makes everything brighter or darker without regard to existing color or brightness -/proc/color_brightness(power) - power = Clamp(power, -255, 255) - power = power/255 +//These next three rotate values about one axis only +//x is the red axis, y is the green axis, z is the blue axis. +/proc/color_matrix_rotate_x(angle) + var/sinval = round(sin(angle), 0.001); var/cosval = round(cos(angle), 0.001) + return list(1,0,0,0, 0,cosval,sinval,0, 0,-sinval,cosval,0, 0,0,0,1, 0,0,0,0) - return list(1,0,0, 0,1,0, 0,0,1, power,power,power) +/proc/color_matrix_rotate_y(angle) + var/sinval = round(sin(angle), 0.001); var/cosval = round(cos(angle), 0.001) + return list(cosval,0,-sinval,0, 0,1,0,0, sinval,0,cosval,0, 0,0,0,1, 0,0,0,0) -/var/list/delta_index = list( - 0, 0.01, 0.02, 0.04, 0.05, 0.06, 0.07, 0.08, 0.1, 0.11, - 0.12, 0.14, 0.15, 0.16, 0.17, 0.18, 0.20, 0.21, 0.22, 0.24, - 0.25, 0.27, 0.28, 0.30, 0.32, 0.34, 0.36, 0.38, 0.40, 0.42, - 0.44, 0.46, 0.48, 0.5, 0.53, 0.56, 0.59, 0.62, 0.65, 0.68, - 0.71, 0.74, 0.77, 0.80, 0.83, 0.86, 0.89, 0.92, 0.95, 0.98, - 1.0, 1.06, 1.12, 1.18, 1.24, 1.30, 1.36, 1.42, 1.48, 1.54, - 1.60, 1.66, 1.72, 1.78, 1.84, 1.90, 1.96, 2.0, 2.12, 2.25, - 2.37, 2.50, 2.62, 2.75, 2.87, 3.0, 3.2, 3.4, 3.6, 3.8, - 4.0, 4.3, 4.7, 4.9, 5.0, 5.5, 6.0, 6.5, 6.8, 7.0, - 7.3, 7.5, 7.8, 8.0, 8.4, 8.7, 9.0, 9.4, 9.6, 9.8, - 10.0) +/proc/color_matrix_rotate_z(angle) + var/sinval = round(sin(angle), 0.001); var/cosval = round(cos(angle), 0.001) + return list(cosval,sinval,0,0, -sinval,cosval,0,0, 0,0,1,0, 0,0,0,1, 0,0,0,0) -//Exxagerates or removes brightness -/proc/color_contrast(value) - value = Clamp(value, -100, 100) - if(value == 0) - return color_identity() - var/x = 0 - if (value < 0) - x = 127 + value / 100 * 127; - else - x = value % 1 - if(x == 0) - x = delta_index[value] - else - x = delta_index[value] * (1-x) + delta_index[value+1] * x//use linear interpolation for more granularity. - x = x * 127 + 127 +//Returns a matrix addition of A with B +/proc/color_matrix_add(list/A, list/B) + if(!istype(A) || !istype(B)) + return color_matrix_identity() + if(A.len != 20 || B.len != 20) + return color_matrix_identity() + var/list/output = list() + output.len = 20 + for(var/value in 1 to 20) + output[value] = A[value] + B[value] + return output - var/mult = x / 127 - var/add = 0.5 * (127-x) / 255 - return list(mult,0,0, 0,mult,0, 0,0,mult, add,add,add) - -//Exxagerates or removes colors -/proc/color_saturation(value as num) - if(value == 0) - return color_identity() - value = Clamp(value, -100, 100) - if(value > 0) - value *= 3 - var/x = 1 + value / 100 - var/inv = 1 - x - var/R = LUMR * inv - var/G = LUMG * inv - var/B = LUMB * inv - - return list(R + x,R,R, G,G + x,G, B,B,B + x) - -#undef LUMR -#undef LUMG -#undef LUMB +//Returns a matrix multiplication of A with B +/proc/color_matrix_multiply(list/A, list/B) + if(!istype(A) || !istype(B)) + return color_matrix_identity() + if(A.len != 20 || B.len != 20) + return color_matrix_identity() + var/list/output = list() + output.len = 20 + var/x = 1 + var/y = 1 + var/offset = 0 + for(y in 1 to 5) + offset = (y-1)*4 + for(x in 1 to 4) + output[offset+x] = round(A[offset+1]*B[x] + A[offset+2]*B[x+4] + A[offset+3]*B[x+8] + A[offset+4]*B[x+12]+(y==5?B[x+16]:0), 0.001) + return output \ No newline at end of file diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index e3e3d1274c..be8de4ea97 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -62,13 +62,15 @@ init_sprite_accessory_subtypes(/datum/sprite_accessory/frills, frills_list) if(!spines_list.len) init_sprite_accessory_subtypes(/datum/sprite_accessory/spines, spines_list) + if(!legs_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/legs, legs_list) if(!body_markings_list.len) init_sprite_accessory_subtypes(/datum/sprite_accessory/body_markings, body_markings_list) if(!wings_list.len) init_sprite_accessory_subtypes(/datum/sprite_accessory/wings, wings_list) //For now we will always return none for tail_human and ears. - return(list("mcolor" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), "tail_lizard" = pick(tails_list_lizard), "tail_human" = "None", "wings" = "None", "snout" = pick(snouts_list), "horns" = pick(horns_list), "ears" = "None", "frills" = pick(frills_list), "spines" = pick(spines_list), "body_markings" = pick(body_markings_list))) + return(list("mcolor" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), "tail_lizard" = pick(tails_list_lizard), "tail_human" = "None", "wings" = "None", "snout" = pick(snouts_list), "horns" = pick(horns_list), "ears" = "None", "frills" = pick(frills_list), "spines" = pick(spines_list), "body_markings" = pick(body_markings_list), "legs" = "Normal Legs")) /proc/random_hair_style(gender) switch(gender) @@ -105,6 +107,13 @@ if(i != attempts_to_find_unique_name && !findname(.)) break +/proc/random_unique_plasmaman_name(attempts_to_find_unique_name=10) + for(var/i=1, i<=attempts_to_find_unique_name, i++) + . = capitalize(plasmaman_name()) + + if(i != attempts_to_find_unique_name && !findname(.)) + break + /proc/random_skin_tone() return pick(skin_tones) @@ -124,7 +133,6 @@ var/list/skin_tones = list( ) var/global/list/species_list[0] -var/global/list/whitelisted_species_list[0] var/global/list/roundstart_species[0] /proc/age2agedescription(age) @@ -161,24 +169,30 @@ Proc for attack log creation, because really why not */ /proc/add_logs(mob/user, mob/target, what_done, object=null, addition=null) - var/newhealthtxt = "" - var/coordinates = "" var/turf/attack_location = get_turf(target) - if(attack_location) - coordinates = "([attack_location.x],[attack_location.y],[attack_location.z])" - if(target && isliving(target)) - var/mob/living/L = target - newhealthtxt = " (NEWHP: [L.health])" - if(user && ismob(user)) - user.attack_log += text("\[[time_stamp()]\] Has [what_done] [target ? "[target.name][(ismob(target) && target.ckey) ? "([target.ckey])" : ""]" : "NON-EXISTANT SUBJECT"][object ? " with [object]" : " "][addition][newhealthtxt][coordinates]") - if(user.mind) - user.mind.attack_log += text("\[[time_stamp()]\] [user ? "[user.name][(ismob(user) && user.ckey) ? "([user.ckey])" : ""]" : "NON-EXISTANT SUBJECT"] has [what_done] [target ? "[target.name][(ismob(target) && target.ckey) ? "([target.ckey])" : ""]" : "NON-EXISTANT SUBJECT"][object ? " with [object]" : " "][addition][newhealthtxt][coordinates]") - if(target && ismob(target)) - target.attack_log += text("\[[time_stamp()]\] Has been [what_done] by [user ? "[user.name][(ismob(user) && user.ckey) ? "([user.ckey])" : ""]" : "NON-EXISTANT SUBJECT"][object ? " with [object]" : " "][addition][newhealthtxt][coordinates]") - if(target.mind) - target.mind.attack_log += text("\[[time_stamp()]\] [target ? "[target.name][(ismob(target) && target.ckey) ? "([target.ckey])" : ""]" : "NON-EXISTANT SUBJECT"] has been [what_done] by [user ? "[user.name][(ismob(user) && user.ckey) ? "([user.ckey])" : ""]" : "NON-EXISTANT SUBJECT"][object ? " with [object]" : " "][addition][newhealthtxt][coordinates]") - log_attack("[user ? "[user.name][(ismob(user) && user.ckey) ? "([user.ckey])" : ""]" : "NON-EXISTANT SUBJECT"] [what_done] [target ? "[target.name][(ismob(target) && target.ckey)? "([target.ckey])" : ""]" : "NON-EXISTANT SUBJECT"][object ? " with [object]" : " "][addition][newhealthtxt][coordinates]") + var/is_mob_user = user && typecache_mob[user.type] + var/is_mob_target = target && typecache_mob[target.type] + + var/mob/living/living_target + + + if(target && isliving(target)) + living_target = target + + if(is_mob_user) + var/message = "\[[time_stamp()]\] [user ? "[user.name][(user.ckey) ? "([user.ckey])" : ""]" : "NON-EXISTANT SUBJECT"] has [what_done] [target ? "[target.name][(is_mob_target && target.ckey) ? "([target.ckey])" : ""]" : "NON-EXISTANT SUBJECT"][object ? " with [object]" : " "][addition][(living_target) ? " (NEWHP: [living_target.health])" : ""][(attack_location) ? "([attack_location.x],[attack_location.y],[attack_location.z])" : ""]" + user.attack_log += message + if(user.mind) + user.mind.attack_log += message + + if(is_mob_target) + var/message = "\[[time_stamp()]\] [target ? "[target.name][(target.ckey) ? "([target.ckey])" : ""]" : "NON-EXISTANT SUBJECT"] has been [what_done] by [user ? "[user.name][(is_mob_user && user.ckey) ? "([user.ckey])" : ""]" : "NON-EXISTANT SUBJECT"][object ? " with [object]" : " "][addition][(living_target) ? " (NEWHP: [living_target.health])" : ""][(attack_location) ? "([attack_location.x],[attack_location.y],[attack_location.z])" : ""]" + target.attack_log += message + if(target.mind) + target.mind.attack_log += message + + log_attack("[user ? "[user.name][(is_mob_user && user.ckey) ? "([user.ckey])" : ""]" : "NON-EXISTANT SUBJECT"] [what_done] [target ? "[target.name][(is_mob_target && target.ckey)? "([target.ckey])" : ""]" : "NON-EXISTANT SUBJECT"][object ? " with [object]" : " "][addition][(living_target) ? " (NEWHP: [living_target.health])" : ""][(attack_location) ? "([attack_location.x],[attack_location.y],[attack_location.z])" : ""]") /proc/do_mob(mob/user , mob/target, time = 30, uninterruptible = 0, progress = 1) @@ -192,7 +206,7 @@ Proc for attack log creation, because really why not var/target_loc = target.loc - var/holding = user.get_active_hand() + var/holding = user.get_active_held_item() var/datum/progressbar/progbar if (progress) progbar = new(user, time, target) @@ -214,7 +228,7 @@ Proc for attack log creation, because really why not drifting = 0 user_loc = user.loc - if((!drifting && user.loc != user_loc) || target.loc != target_loc || user.get_active_hand() != holding || user.incapacitated() || user.lying ) + if((!drifting && user.loc != user_loc) || target.loc != target_loc || user.get_active_held_item() != holding || user.incapacitated() || user.lying ) . = 0 break if (progress) @@ -234,7 +248,7 @@ Proc for attack log creation, because really why not if(!user.Process_Spacemove(0) && user.inertia_dir) drifting = 1 - var/holding = user.get_active_hand() + var/holding = user.get_active_held_item() var/holdingnull = 1 //User's hand started out empty, check for an empty hand if(holding) @@ -271,7 +285,7 @@ Proc for attack log creation, because really why not if(!holding) . = 0 break - if(user.get_active_hand() != holding) + if(user.get_active_held_item() != holding) . = 0 break if (progress) @@ -292,7 +306,7 @@ Proc for attack log creation, because really why not for(var/atom/target in targets) originalloc[target] = target.loc - var/holding = user.get_active_hand() + var/holding = user.get_active_held_item() var/datum/progressbar/progbar if(progress) progbar = new(user, time, targets[1]) @@ -316,7 +330,7 @@ Proc for attack log creation, because really why not user_loc = user.loc for(var/atom/target in targets) - if((!drifting && user_loc != user.loc) || originalloc[target] != target.loc || user.get_active_hand() != holding || user.incapacitated() || user.lying ) + if((!drifting && user_loc != user.loc) || originalloc[target] != target.loc || user.get_active_held_item() != holding || user.incapacitated() || user.lying ) . = 0 break mainloop if(progbar) @@ -329,6 +343,33 @@ Proc for attack log creation, because really why not if(H.dna && istype(H.dna.species, species_datum)) . = TRUE +/proc/spawn_atom_to_turf(spawn_type, target, amount, admin_spawn=FALSE) + var/turf/T = get_turf(target) + if(!T) + throw EXCEPTION("attempt to spawn atom type: [spawn_type] in nullspace") + + for(var/j in 1 to amount) + var/atom/X = new spawn_type(T) + X.admin_spawned = admin_spawn + +/proc/spawn_and_random_walk(spawn_type, target, amount, walk_chance=100, max_walk=3, always_max_walk=FALSE, admin_spawn=FALSE) + var/turf/T = get_turf(target) + var/step_count = 0 + if(!T) + throw EXCEPTION("attempt to spawn atom type: [spawn_type] in nullspace") + + for(var/j in 1 to amount) + var/atom/movable/X = new spawn_type(T) + X.admin_spawned = admin_spawn + + if(always_max_walk || prob(walk_chance)) + if(always_max_walk) + step_count = max_walk + else + step_count = rand(1, max_walk) + + for(var/i in 1 to step_count) + step(X, pick(NORTH, SOUTH, EAST, WEST)) /proc/deadchat_broadcast(message, mob/follow_target=null, speaker_key=null, message_type=DEADCHAT_REGULAR) for(var/mob/M in player_list) @@ -341,7 +382,7 @@ Proc for attack log creation, because really why not var/adminoverride = 0 if(M.client && M.client.holder && (prefs.chat_toggles & CHAT_DEAD)) adminoverride = 1 - if(istype(M, /mob/new_player) && !adminoverride) + if(isnewplayer(M) && !adminoverride) continue if(M.stat != DEAD && !adminoverride) continue @@ -356,7 +397,7 @@ Proc for attack log creation, because really why not if(prefs.toggles & DISABLE_ARRIVALRATTLE) continue - if(istype(M, /mob/dead/observer) && follow_target) + if(isobserver(M) && follow_target) var/link = FOLLOW_LINK(M, follow_target) M << "[link] [message]" else diff --git a/code/__HELPERS/names.dm b/code/__HELPERS/names.dm index 90f0eb252c..61980062de 100644 --- a/code/__HELPERS/names.dm +++ b/code/__HELPERS/names.dm @@ -4,6 +4,8 @@ else return "[pick(lizard_names_female)]-[pick(lizard_names_female)]" +/proc/plasmaman_name() + return "[pick(plasmaman_names)] \Roman[rand(1,99)]" var/church_name = null /proc/church_name() @@ -100,7 +102,7 @@ var/religion_name = null if(2) new_station_name += pick(greek_letters) if(3) - new_station_name += pick(roman_numerals) + new_station_name += "\Roman[rand(1,99)]" if(4) new_station_name += pick(phonetic_alphabet) if(5) @@ -170,7 +172,7 @@ var/syndicate_code_response//Code response for traitors. var/safety[] = list(1,2,3)//Tells the proc which options to remove later on. var/nouns[] = list("love","hate","anger","peace","pride","sympathy","bravery","loyalty","honesty","integrity","compassion","charity","success","courage","deceit","skill","beauty","brilliance","pain","misery","beliefs","dreams","justice","truth","faith","liberty","knowledge","thought","information","culture","trust","dedication","progress","education","hospitality","leisure","trouble","friendships", "relaxation") - var/drinks[] = list("vodka and tonic","gin fizz","bahama mama","manhattan","black Russian","whiskey soda","long island tea","margarita","Irish coffee"," manly dwarf","Irish cream","doctor's delight","Beepksy Smash","tequila sunrise","brave bull","gargle blaster","bloody mary","whiskey cola","white Russian","vodka martini","martini","Cuba libre","kahlua","vodka","wine","moonshine") + var/drinks[] = list("vodka and tonic","gin fizz","bahama mama","manhattan","black Russian","whiskey soda","long island iced tea","margarita","Irish coffee"," manly dwarf","Irish cream","doctor's delight","Beepksy Smash","tequila sunrise","brave bull","gargle blaster","bloody mary","whiskey cola","white Russian","vodka martini","martini","Cuba libre","kahlua","vodka","wine","moonshine") var/locations[] = teleportlocs.len ? teleportlocs : drinks//if null, defaults to drinks instead. var/names[] = list() diff --git a/code/__HELPERS/pronouns.dm b/code/__HELPERS/pronouns.dm new file mode 100644 index 0000000000..3446a750ee --- /dev/null +++ b/code/__HELPERS/pronouns.dm @@ -0,0 +1,242 @@ +//pronoun procs, for getting pronouns without using the text macros that only work in certain positions +//datums don't have gender, but most of their subtypes do! +/datum/proc/p_they(capitalized, temp_gender) + . = "it" + if(capitalized) + . = capitalize(.) + +/datum/proc/p_their(capitalized, temp_gender) + . = "its" + if(capitalized) + . = capitalize(.) + +/datum/proc/p_them(capitalized, temp_gender) + . = "it" + if(capitalized) + . = capitalize(.) + +/datum/proc/p_have(temp_gender) + . = "has" + +/datum/proc/p_are(temp_gender) + . = "is" + +/datum/proc/p_were(temp_gender) + . = "was" + +/datum/proc/p_do(temp_gender) + . = "does" + +/datum/proc/p_theyve(capitalized, temp_gender) + . = p_they(capitalized, temp_gender) + "'" + copytext(p_have(temp_gender), 3) + +/datum/proc/p_theyre(capitalized, temp_gender) + . = p_they(capitalized, temp_gender) + "'" + copytext(p_are(temp_gender), 2) + +/datum/proc/p_s(temp_gender) //is this a descriptive proc name, or what? + . = "s" + +//like clients, which do have gender. +/client/p_they(capitalized, temp_gender) + if(!temp_gender) + temp_gender = gender + . = "they" + switch(temp_gender) + if(FEMALE) + . = "she" + if(MALE) + . = "he" + if(capitalized) + . = capitalize(.) + +/client/p_their(capitalized, temp_gender) + if(!temp_gender) + temp_gender = gender + . = "their" + switch(temp_gender) + if(FEMALE) + . = "her" + if(MALE) + . = "his" + if(capitalized) + . = capitalize(.) + +/client/p_them(capitalized, temp_gender) + if(!temp_gender) + temp_gender = gender + . = "them" + switch(temp_gender) + if(FEMALE) + . = "her" + if(MALE) + . = "him" + if(capitalized) + . = capitalize(.) + +/client/p_have(temp_gender) + if(!temp_gender) + temp_gender = gender + . = "has" + if(temp_gender == PLURAL || temp_gender == NEUTER) + . = "have" + +/client/p_are(temp_gender) + if(!temp_gender) + temp_gender = gender + . = "is" + if(temp_gender == PLURAL || temp_gender == NEUTER) + . = "are" + +/client/p_were(temp_gender) + if(!temp_gender) + temp_gender = gender + . = "was" + if(temp_gender == PLURAL || temp_gender == NEUTER) + . = "were" + +/client/p_do(temp_gender) + if(!temp_gender) + temp_gender = gender + . = "does" + if(temp_gender == PLURAL || temp_gender == NEUTER) + . = "do" + +/client/p_s(temp_gender) + if(!temp_gender) + temp_gender = gender + if(temp_gender != PLURAL && temp_gender != NEUTER) + . = "s" + +//mobs(and atoms but atoms don't really matter write your own proc overrides) also have gender! +/mob/p_they(capitalized, temp_gender) + if(!temp_gender) + temp_gender = gender + . = "it" + switch(temp_gender) + if(FEMALE) + . = "she" + if(MALE) + . = "he" + if(PLURAL) + . = "they" + if(capitalized) + . = capitalize(.) + +/mob/p_their(capitalized, temp_gender) + if(!temp_gender) + temp_gender = gender + . = "its" + switch(temp_gender) + if(FEMALE) + . = "her" + if(MALE) + . = "his" + if(PLURAL) + . = "their" + if(capitalized) + . = capitalize(.) + +/mob/p_them(capitalized, temp_gender) + if(!temp_gender) + temp_gender = gender + . = "it" + switch(temp_gender) + if(FEMALE) + . = "her" + if(MALE) + . = "him" + if(PLURAL) + . = "them" + if(capitalized) + . = capitalize(.) + +/mob/p_have(temp_gender) + if(!temp_gender) + temp_gender = gender + . = "has" + if(temp_gender == PLURAL) + . = "have" + +/mob/p_are(temp_gender) + if(!temp_gender) + temp_gender = gender + . = "is" + if(temp_gender == PLURAL) + . = "are" + +/mob/p_were(temp_gender) + if(!temp_gender) + temp_gender = gender + . = "was" + if(temp_gender == PLURAL) + . = "were" + +/mob/p_do(temp_gender) + if(!temp_gender) + temp_gender = gender + . = "does" + if(temp_gender == PLURAL) + . = "do" + +/mob/p_s(temp_gender) + if(!temp_gender) + temp_gender = gender + if(temp_gender != PLURAL) + . = "s" + +//humans need special handling, because they can have their gender hidden +/mob/living/carbon/human/p_they(capitalized, temp_gender) + var/list/obscured = check_obscured_slots() + var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE)) + if((slot_w_uniform in obscured) && skipface) + temp_gender = PLURAL + return ..() + +/mob/living/carbon/human/p_their(capitalized, temp_gender) + var/list/obscured = check_obscured_slots() + var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE)) + if((slot_w_uniform in obscured) && skipface) + temp_gender = PLURAL + return ..() + +/mob/living/carbon/human/p_them(capitalized, temp_gender) + var/list/obscured = check_obscured_slots() + var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE)) + if((slot_w_uniform in obscured) && skipface) + temp_gender = PLURAL + return ..() + +/mob/living/carbon/human/p_have(temp_gender) + var/list/obscured = check_obscured_slots() + var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE)) + if((slot_w_uniform in obscured) && skipface) + temp_gender = PLURAL + return ..() + +/mob/living/carbon/human/p_are(temp_gender) + var/list/obscured = check_obscured_slots() + var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE)) + if((slot_w_uniform in obscured) && skipface) + temp_gender = PLURAL + return ..() + +/mob/living/carbon/human/p_were(temp_gender) + var/list/obscured = check_obscured_slots() + var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE)) + if((slot_w_uniform in obscured) && skipface) + temp_gender = PLURAL + return ..() + +/mob/living/carbon/human/p_do(temp_gender) + var/list/obscured = check_obscured_slots() + var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE)) + if((slot_w_uniform in obscured) && skipface) + temp_gender = PLURAL + return ..() + +/mob/living/carbon/human/p_s(temp_gender) + var/list/obscured = check_obscured_slots() + var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE)) + if((slot_w_uniform in obscured) && skipface) + temp_gender = PLURAL + return ..() diff --git a/code/__HELPERS/text.dm b/code/__HELPERS/text.dm index 236b86b774..f0932c3a5e 100644 --- a/code/__HELPERS/text.dm +++ b/code/__HELPERS/text.dm @@ -421,66 +421,110 @@ var/list/binary = list("0","1") return t -/proc/char_split(t) - . = list() - for(var/x in 1 to length(t)) - . += copytext(t,x,x+1) +#define string2charlist(string) (splittext(string, regex("(.)")) - splittext(string, "")) -var/list/rot13_lookup = list() +/proc/rot13(text = "") + var/list/textlist = string2charlist(text) + var/list/result = list() + for(var/c in textlist) + var/ca = text2ascii(c) + if(ca >= text2ascii("a") && ca <= text2ascii("m")) + ca += 13 + else if(ca >= text2ascii("n") && ca <= text2ascii("z")) + ca -= 13 + else if(ca >= text2ascii("A") && ca <= text2ascii("M")) + ca += 13 + else if(ca >= text2ascii("N") && ca <= text2ascii("Z")) + ca -= 13 + result += ascii2text(ca) + return jointext(result, "") -/proc/generate_rot13_lookup() - var/letters = alphabet.Copy() - for(var/c in alphabet) - letters += uppertext(c) +//Takes a list of values, sanitizes it down for readability and character count, +//then exports it as a json file at data/npc_saves/[filename].json. +//As far as SS13 is concerned this is write only data. You can't change something +//in the json file and have it be reflected in the in game item/mob it came from. +//(That's what things like savefiles are for) Note that this list is not shuffled. +/proc/twitterize(list/proposed, filename, cullshort = 0, storemax = 1000) + if(!islist(proposed) || !filename || !config.log_twitter) + return - for(var/char in letters) - var/ascii_char = text2ascii(char, 1) + //Regular expressions are, as usual, absolute magic + var/regex/is_website = new("http|www.|\[a-z0-9_-]+.(com|org|net|mil|edu)+", "i") + var/regex/is_email = new("\[a-z0-9_-]+@\[a-z0-9_-]+.\[a-z0-9_-]+", "i") + var/regex/alphanumeric = new("\[a-z0-9]+", "i") + var/regex/punctuation = new("\[.!?]+", "i") + var/regex/all_invalid_symbols = new("\[^ -~]+") - var/index + var/list/accepted = list() + for(var/string in proposed) + if(findtext(string,is_website) || findtext(string,is_email) || findtext(string,all_invalid_symbols)) + continue + var/buffer = "" + var/early_culling = TRUE + for(var/pos = 1, pos != lentext(string), pos++) + var/let = copytext(string, pos, (pos + 1) % lentext(string)) + if(early_culling && !findtext(let,alphanumeric)) + continue + early_culling = FALSE + buffer += let + var/punctbuffer = "" + var/cutoff = lentext(buffer) + for(var/pos = lentext(buffer), pos != 0, pos--) + var/let = copytext(buffer, pos, (pos + 1) % lentext(buffer)) + if(findtext(let,alphanumeric)) + break + if(findtext(let,punctuation)) + punctbuffer = let + punctbuffer //Note this isn't the same thing as using += + cutoff = pos + if(punctbuffer) //We clip down excessive punctuation to get the letter count lower and reduce repeats. It's not perfect but it helps. + var/exclaim = FALSE + var/question = FALSE + var/periods = 0 + for(var/pos = lentext(punctbuffer), pos != 0, pos--) + var/punct = copytext(buffer, pos, (pos + 1) % lentext(buffer)) + if(!exclaim && punct == "!") + exclaim = TRUE + if(!question && punct == "?") + question = TRUE + if(!exclaim && !question && punct == ".") + periods += 1 + if(exclaim) + if(question) + punctbuffer = "?!" + else + punctbuffer = "!" + else if(question) + punctbuffer = "?" + else if(periods) + if(periods >= 3) + punctbuffer = "..." + else + punctbuffer = "" //Grammer nazis be damned + buffer = copytext(buffer, 1, cutoff) + punctbuffer - switch(ascii_char) - // A - Z - if(65 to 90) - index = 65 - // a - z - if(97 to 122) - index = 97 + if(!buffer || lentext(buffer) > 140 || lentext(buffer) <= cullshort || buffer in accepted) + continue - var/d = ascii_char - index - d += 13 - if(d >= 26) - d -= 26 - ascii_char = index + d - var/translated_char = ascii2text(ascii_char) + accepted += buffer - rot13_lookup[char] = translated_char + var/log = file("data/npc_saves/[filename].json") //If this line ever shows up as changed in a PR be very careful you aren't being memed on + var/list/oldjson = list() + var/list/oldentries = list() + if(fexists(log)) + oldjson = json_decode(file2text(log)) + oldentries = oldjson["data"] + if(!isemptylist(oldentries)) + for(var/string in accepted) + for(var/old in oldentries) + if(string == old) + oldentries.Remove(old) //Line's position in line is "refreshed" until it falls off the in game radar + break -/proc/rot13(t_in) - if(!rot13_lookup.len) - generate_rot13_lookup() + var/list/finalized = list() + finalized["data"] = accepted.Copy() + oldentries.Copy() //we keep old and unreferenced phrases near the bottom for culling + listclearnulls(finalized) + if(!isemptylist(finalized) && finalized.len > storemax) + finalized.Cut(storemax + 1) + fdel(log) - var/t_out = "" - - for(var/i in 1 to length(t_in)) - var/char = copytext(t_in, i, i + 1) - if(char in rot13_lookup) - t_out += rot13_lookup[char] - else - t_out += char - - return t_out - -//Used in preferences' SetFlavorText and human's set_flavor verb -//Previews a string of len or less length - -/proc/copytext_preserve_html(var/text, var/first, var/last) - return html_encode(copytext(html_decode(text), first, last)) - -proc/TextPreview(var/string,var/len=40) - if(lentext(string) <= len) - if(!lentext(string)) - return "\[...\]" - else - return string - else - return "[copytext(string, 1, 37)]..." \ No newline at end of file + log << json_encode(finalized) \ No newline at end of file diff --git a/code/__HELPERS/text_vr.dm b/code/__HELPERS/text_vr.dm index a16b6c0cfc..d613f9b770 100644 --- a/code/__HELPERS/text_vr.dm +++ b/code/__HELPERS/text_vr.dm @@ -7,3 +7,12 @@ t = copytext(t, 1, index) + repl_chars[char] + copytext(t, index+5) index = findtext(t, char) return t + +proc/TextPreview(var/string,var/len=40) + if(lentext(string) <= len) + if(!lentext(string)) + return "\[...\]" + else + return string + else + return "[copytext(string, 1, 37)]..." diff --git a/code/__HELPERS/time.dm b/code/__HELPERS/time.dm index ae34b697cf..e53026df0a 100644 --- a/code/__HELPERS/time.dm +++ b/code/__HELPERS/time.dm @@ -6,7 +6,7 @@ return time2text(world.timeofday, format) /proc/gameTimestamp(format = "hh:mm:ss") // Get the game time in text - return time2text(world.time - timezoneOffset + 432000, format) + return time2text(world.time - timezoneOffset + 432000 - round_start_time, format) /* Returns 1 if it is the selected month and day */ /proc/isDay(month, day) diff --git a/code/__HELPERS/type2type.dm b/code/__HELPERS/type2type.dm index c186481cde..ff518e5bb0 100644 --- a/code/__HELPERS/type2type.dm +++ b/code/__HELPERS/type2type.dm @@ -225,6 +225,8 @@ return 'icons/mob/screen_slimecore.dmi' if("Operative") return 'icons/mob/screen_operative.dmi' + if("Clockwork") + return 'icons/mob/screen_clockwork.dmi' else return 'icons/mob/screen_midnight.dmi' @@ -347,55 +349,6 @@ for(var/t in test_times) /proc/isLeap(y) return ((y) % 4 == 0 && ((y) % 100 != 0 || (y) % 400 == 0)) -// A copy of text2dir, extended to accept one and two letter -// directions, and to clearly return 0 otherwise. -/proc/text2dir_extended(direction) - switch(uppertext(direction)) - if("NORTH", "N") - return 1 - if("SOUTH", "S") - return 2 - if("EAST", "E") - return 4 - if("WEST", "W") - return 8 - if("NORTHEAST", "NE") - return 5 - if("NORTHWEST", "NW") - return 9 - if("SOUTHEAST", "SE") - return 6 - if("SOUTHWEST", "SW") - return 10 - else - return 0 - - - -// A copy of dir2text, which returns the short one or two letter -// directions used in tube icon states. -/proc/dir2text_short(direction) - switch(direction) - if(1) - return "N" - if(2) - return "S" - if(4) - return "E" - if(8) - return "W" - if(5) - return "NE" - if(6) - return "SE" - if(9) - return "NW" - if(10) - return "SW" - else - return - - //Turns a Body_parts_covered bitfield into a list of organ/limb names. @@ -574,26 +527,23 @@ for(var/t in test_times) var/B = hex2num(copytext(A,6,0)) return R+G+B -//get just one color -/proc/GetRedPart(A) - return hex2num(copytext(A,2,4)) +//word of warning: using a matrix like this as a color value will simplify it back to a string after being set +/proc/color_hex2color_matrix(string) + var/length = length(string) + if(length != 7 && length != 9) + return color_matrix_identity() + var/r = hex2num(copytext(string, 2, 4))/255 + var/g = hex2num(copytext(string, 4, 6))/255 + var/b = hex2num(copytext(string, 6, 8))/255 + var/a = 1 + if(length == 9) + a = hex2num(copytext(string, 8, 10))/255 + if(!isnum(r) || !isnum(g) || !isnum(b) || !isnum(a)) + return color_matrix_identity() + return list(r,0,0,0, 0,g,0,0, 0,0,b,0, 0,0,0,a, 0,0,0,0) -/proc/GetGreenPart(A) - return hex2num(copytext(A,4,6)) - -/proc/GetBluePart(A) - return hex2num(copytext(A,6,0)) - - -//Converts a positive interger to its roman numeral equivilent. Ignores any decimals. -//Numbers over 3999 will display with extra "M"s (don't tell the Romans) and can get comically long, so be careful. -/proc/num2roman(A) - var/list/values = list("M" = 1000, "CM" = 900, "D" = 500, "CD" = 400, "C" = 100, "XC" = 90, "L" = 50, "XL" = 40, "X" = 10, "IX" = 9, "V" = 5, "IV" = 4, "I" = 1) - if(!A || !isnum(A)) - return 0 - while(A >= 1) - for(var/i in values) - if(A >= values[i]) - . += i - A -= values[i] - break \ No newline at end of file +//will drop all values not on the diagonal +/proc/color_matrix2color_hex(list/the_matrix) + if(!istype(the_matrix) || the_matrix.len != 20) + return "#ffffffff" + return rgb(the_matrix[1]*255, the_matrix[6]*255, the_matrix[11]*255, the_matrix[16]*255) \ No newline at end of file diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index ce5fc3f223..72ac92ac8d 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 + /* * A large number of misc global procs. @@ -337,7 +337,7 @@ Turf and target are seperate in case you want to teleport some distance from a t moblist.Add(M) for(var/mob/living/carbon/human/M in sortmob) moblist.Add(M) - for(var/mob/living/carbon/brain/M in sortmob) + for(var/mob/living/brain/M in sortmob) moblist.Add(M) for(var/mob/living/carbon/alien/M in sortmob) moblist.Add(M) @@ -359,41 +359,6 @@ Turf and target are seperate in case you want to teleport some distance from a t moblist.Add(M) return moblist -/var/mob/dview/dview_mob = new - -//Version of view() which ignores darkness, because BYOND doesn't have it (I actually suggested it but it was tagged redundant, BUT HEARERS IS A T- /rant). -/proc/dview(var/range = world.view, var/center, var/invis_flags = 0) - if(!center) - return - - dview_mob.forceMove(center) - - dview_mob.see_invisible = invis_flags - - . = view(range, dview_mob) - dview_mob.forceMove(null) - -/mob/dview - invisibility = 101 - density = 0 - see_in_dark = 1e6 - anchored = 1 - -// Finds ALL mobs on turfs in line of sight. Similar to "in dview", but catches mobs that are not on a turf (e.g. inside a locker or such). -/proc/get_all_mobs_in_dview(var/turf/T, var/range = world.view, var/list/ignore_types = list()) - . = list() - var/list/can_see = dview(range, T) - for(var/mob/M in can_see) - if(is_type_in_list(M, ignore_types)) - continue - . += M - for(var/mob/M in mob_list) //Got the ones in vision, now let's go for the ones not on a turf. - if(M.z == 0) //Mobs not on a turf will have XYZ = 0,0,0. They also won't show up in dview() so we're not checking anything twice. - if(is_type_in_list(M, ignore_types)) - continue - if(get_turf(M) in can_see) //Checking the mob's turf now, since those are it's "true" coordinates (plus dview() did pick up on turfs, so we can check using that). - . += M - //E = MC^2 /proc/convert2energy(M) var/E = M*(SPEED_OF_LIGHT_SQ) @@ -472,12 +437,15 @@ Turf and target are seperate in case you want to teleport some distance from a t if(M.ckey == key) return M -// Returns the atom sitting on the turf. -// For example, using this on a disk, which is in a bag, on a mob, will return the mob because it's on the turf. -/proc/get_atom_on_turf(atom/movable/M) +//Returns the atom sitting on the turf. +//For example, using this on a disk, which is in a bag, on a mob, will return the mob because it's on the turf. +//Optional arg 'type' to stop once it reaches a specific type instead of a turf. +/proc/get_atom_on_turf(atom/movable/M, stop_type) var/atom/loc = M - while(loc && loc.loc && !istype(loc.loc, /turf/)) + while(loc && loc.loc && !isturf(loc.loc)) loc = loc.loc + if(stop_type && istype(loc, stop_type)) + break return loc // returns the turf located at the map edge in the specified direction relative to A @@ -531,25 +499,6 @@ Turf and target are seperate in case you want to teleport some distance from a t var/y=arcsin(x/sqrt(1+x*x)) return y - -/proc/anim(turf/location,target as mob|obj,a_icon,a_icon_state as text,flick_anim as text,sleeptime = 0,direction as num) -//This proc throws up either an icon or an animation for a specified amount of time. -//The variables should be apparent enough. - var/atom/movable/overlay/animation = new(location) - if(direction) - animation.setDir(direction) - animation.icon = a_icon - animation.layer = target:layer+1 - if(a_icon_state) - animation.icon_state = a_icon_state - else - animation.icon_state = "blank" - animation.master = target - flick(flick_anim, animation) - sleep(max(sleeptime, 15)) - qdel(animation) - - /atom/proc/GetAllContents() var/list/processing_list = list(src) var/list/assembled = list() @@ -659,58 +608,60 @@ Turf and target are seperate in case you want to teleport some distance from a t //Takes: Area type as text string or as typepath OR an instance of the area. //Returns: A list of all areas of that type in the world. -/proc/get_areas(areatype) - if(!areatype) - return null +/proc/get_areas(areatype, subtypes=TRUE) if(istext(areatype)) areatype = text2path(areatype) - if(isarea(areatype)) + else if(isarea(areatype)) var/area/areatemp = areatype areatype = areatemp.type + else if(!ispath(areatype)) + return null - var/list/areas = new/list() - for(var/area/N in world) - if(istype(N, areatype)) - areas += N + var/list/areas = list() + if(subtypes) + var/list/cache = typecacheof(areatype) + for(var/V in sortedAreas) + var/area/A = V + if(cache[A.type]) + areas += V + else + for(var/V in sortedAreas) + var/area/A = V + if(A.type == areatype) + areas += V return areas //Takes: Area type as text string or as typepath OR an instance of the area. //Returns: A list of all turfs in areas of that type of that type in the world. -/proc/get_area_turfs(areatype, target_z = 0) - if(!areatype) - return null +/proc/get_area_turfs(areatype, target_z = 0, subtypes=FALSE) if(istext(areatype)) areatype = text2path(areatype) - if(isarea(areatype)) + else if(isarea(areatype)) var/area/areatemp = areatype areatype = areatemp.type + else if(!ispath(areatype)) + return null - var/list/turfs = new/list() - for(var/area/N in world) - if(istype(N, areatype)) - for(var/turf/T in N) + var/list/turfs = list() + if(subtypes) + var/list/cache = typecacheof(areatype) + for(var/V in sortedAreas) + var/area/A = V + if(!cache[A.type]) + continue + for(var/turf/T in A) + if(target_z == 0 || target_z == T.z) + turfs += T + else + for(var/V in sortedAreas) + var/area/A = V + if(A.type != areatype) + continue + for(var/turf/T in A) if(target_z == 0 || target_z == T.z) turfs += T return turfs -//Takes: Area type as text string or as typepath OR an instance of the area. -//Returns: A list of all atoms (objs, turfs, mobs) in areas of that type of that type in the world. -/proc/get_area_all_atoms(areatype) - if(!areatype) - return null - if(istext(areatype)) - areatype = text2path(areatype) - if(isarea(areatype)) - var/area/areatemp = areatype - areatype = areatemp.type - - var/list/atoms = new/list() - for(var/area/N in world) - if(istype(N, areatype)) - for(var/atom/A in N) - atoms += A - return atoms - /proc/get_cardinal_dir(atom/A, atom/B) var/dx = abs(B.x - A.x) var/dy = abs(B.y - A.y) @@ -757,15 +708,18 @@ Turf and target are seperate in case you want to teleport some distance from a t return zone /* + Gets the turf this atom's *ICON* appears to inhabit It takes into account: * Pixel_x/y * Matrix x/y + NOTE: if your atom has non-standard bounds then this proc will handle it, but: * if the bounds are even, then there are an even amount of "middle" turfs, the one to the EAST, NORTH, or BOTH is picked (this may seem bad, but you're atleast as close to the center of the atom as possible, better than byond's default loc being all the way off) * if the bounds are odd, the true middle turf of the atom is returned + */ /proc/get_turf_pixel(atom/movable/AM) @@ -844,24 +798,24 @@ var/global/list/common_tools = list( //For objects that should embed, but make no sense being is_sharp or is_pointed() //e.g: rods +var/list/can_embed_types = typecacheof(list( + /obj/item/stack/rods, + /obj/item/pipe)) + /proc/can_embed(obj/item/W) if(W.is_sharp()) return 1 if(is_pointed(W)) return 1 - var/list/embed_items = list(\ - /obj/item/stack/rods,\ - ) - - if(is_type_in_list(W, embed_items)) + if(is_type_in_typecache(W, can_embed_types)) return 1 /* Checks if that loc and dir has a item on the wall */ -var/list/WALLITEMS = list( +var/list/WALLITEMS = typecacheof(list( /obj/machinery/power/apc, /obj/machinery/airalarm, /obj/item/device/radio/intercom, /obj/structure/extinguisher_cabinet, /obj/structure/reagent_dispensers/peppertank, /obj/machinery/status_display, /obj/machinery/requests_console, /obj/machinery/light_switch, /obj/structure/sign, @@ -869,22 +823,22 @@ var/list/WALLITEMS = list( /obj/machinery/computer/security/telescreen, /obj/machinery/embedded_controller/radio/simple_vent_controller, /obj/item/weapon/storage/secure/safe, /obj/machinery/door_timer, /obj/machinery/flasher, /obj/machinery/keycard_auth, /obj/structure/mirror, /obj/structure/fireaxecabinet, /obj/machinery/computer/security/telescreen/entertainment - ) + )) -var/list/WALLITEMS_EXTERNAL = list( - /obj/machinery/camera, /obj/machinery/camera_assembly, - /obj/machinery/light_construct, /obj/machinery/light) +var/list/WALLITEMS_EXTERNAL = typecacheof(list( + /obj/machinery/camera, /obj/structure/camera_assembly, + /obj/structure/light_construct, /obj/machinery/light)) -var/list/WALLITEMS_INVERSE = list( - /obj/machinery/light_construct, /obj/machinery/light) +var/list/WALLITEMS_INVERSE = typecacheof(list( + /obj/structure/light_construct, /obj/machinery/light)) /proc/gotwallitem(loc, dir, var/check_external = 0) var/locdir = get_step(loc, dir) for(var/obj/O in loc) - if(is_type_in_list(O, WALLITEMS) && check_external != 2) + if(is_type_in_typecache(O, WALLITEMS) && check_external != 2) //Direction works sometimes - if(is_type_in_list(O, WALLITEMS_INVERSE)) + if(is_type_in_typecache(O, WALLITEMS_INVERSE)) if(O.dir == turn(dir, 180)) return 1 else if(O.dir == dir) @@ -895,8 +849,8 @@ var/list/WALLITEMS_INVERSE = list( if(get_turf_pixel(O) == locdir) return 1 - if(is_type_in_list(O, WALLITEMS_EXTERNAL) && check_external) - if(is_type_in_list(O, WALLITEMS_INVERSE)) + if(is_type_in_typecache(O, WALLITEMS_EXTERNAL) && check_external) + if(is_type_in_typecache(O, WALLITEMS_INVERSE)) if(O.dir == turn(dir, 180)) return 1 else if(O.dir == dir) @@ -904,7 +858,7 @@ var/list/WALLITEMS_INVERSE = list( //Some stuff is placed directly on the wallturf (signs) for(var/obj/O in locdir) - if(is_type_in_list(O, WALLITEMS) && check_external != 2) + if(is_type_in_typecache(O, WALLITEMS) && check_external != 2) if(O.pixel_x == 0 && O.pixel_y == 0) return 1 return 0 @@ -975,33 +929,34 @@ var/list/WALLITEMS_INVERSE = list( return "white" /proc/params2turf(scr_loc, turf/origin) + if(!scr_loc) + return null var/tX = splittext(scr_loc, ",") var/tY = splittext(tX[2], ":") var/tZ = origin.z tY = tY[1] tX = splittext(tX[1], ":") tX = tX[1] - tX = max(1, min(world.maxx, origin.x + (text2num(tX) - (world.view + 1)))) - tY = max(1, min(world.maxy, origin.y + (text2num(tY) - (world.view + 1)))) + tX = Clamp(origin.x + text2num(tX) - world.view - 1, 1, world.maxx) + tY = Clamp(origin.y + text2num(tY) - world.view - 1, 1, world.maxy) return locate(tX, tY, tZ) /proc/screen_loc2turf(text, turf/origin) + if(!text) + return null var/tZ = splittext(text, ",") var/tX = splittext(tZ[1], "-") var/tY = text2num(tX[2]) tX = splittext(tZ[2], "-") tX = text2num(tX[2]) tZ = origin.z - tX = max(1, min(origin.x + 7 - tX, world.maxx)) - tY = max(1, min(origin.y + 7 - tY, world.maxy)) + tX = Clamp(origin.x + 7 - tX, 1, world.maxx) + tY = Clamp(origin.y + 7 - tY, 1, world.maxy) return locate(tX, tY, tZ) -/proc/IsValidSrc(A) - if(istype(A, /datum)) - var/datum/B = A - return !qdeleted(B) - if(istype(A, /client)) - return 1 +/proc/IsValidSrc(datum/D) + if(istype(D)) + return !qdeleted(D) return 0 @@ -1023,7 +978,7 @@ var/list/WALLITEMS_INVERSE = list( /proc/is_A_facing_B(atom/A,atom/B) if(!istype(A) || !istype(B)) return 0 - if(istype(A, /mob/living)) + if(isliving(A)) var/mob/living/LA = A if(LA.lying) return 0 @@ -1038,6 +993,7 @@ var/list/WALLITEMS_INVERSE = list( /* rough example of the "cone" made by the 3 dirs checked + B \ \ @@ -1053,68 +1009,10 @@ B --><-- A / / B + */ -//This is just so you can stop an orbit. -//orbit() can run without it (swap orbiting for A) -//but then you can never stop it and that's just silly. -/atom/movable/var/atom/orbiting = null - -//A: atom to orbit -//radius: range to orbit at, radius of the circle formed by orbiting -//clockwise: whether you orbit clockwise or anti clockwise -//rotation_speed: how fast to rotate -//rotation_segments: the resolution of the orbit circle, less = a more block circle, this can be used to produce hexagons (6 segments) triangles (3 segments), and so on, 36 is the best default. -//pre_rotation: Chooses to rotate src 90 degress towards the orbit dir (clockwise/anticlockwise), useful for things to go "head first" like ghosts -//lockinorbit: Forces src to always be on A's turf, otherwise the orbit cancels when src gets too far away (eg: ghosts) - -/atom/movable/proc/orbit(atom/A, radius = 10, clockwise = FALSE, rotation_speed = 20, rotation_segments = 36, pre_rotation = TRUE, lockinorbit = FALSE) - if(!istype(A)) - return - - if(orbiting) - stop_orbit() - - orbiting = A - var/matrix/initial_transform = matrix(transform) - var/lastloc = loc - - //Head first! - if(pre_rotation) - var/matrix/M = matrix(transform) - var/pre_rot = 90 - if(!clockwise) - pre_rot = -90 - M.Turn(pre_rot) - transform = M - - var/matrix/shift = matrix(transform) - shift.Translate(0,radius) - transform = shift - - SpinAnimation(rotation_speed, -1, clockwise, rotation_segments) - - //we stack the orbits up client side, so we can assign this back to normal server side without it breaking the orbit - transform = initial_transform - while(orbiting && orbiting == A && A.loc) - var/targetloc = get_turf(A) - if(!lockinorbit && loc != lastloc && loc != targetloc) - break - loc = targetloc - lastloc = loc - stoplag() - - if (orbiting == A) //make sure we haven't started orbiting something else. - orbiting = null - SpinAnimation(0,0) - - - -/atom/movable/proc/stop_orbit() - orbiting = null - - //Center's an image. //Requires: //The Image @@ -1289,10 +1187,13 @@ B --><-- A /proc/add_to_proximity_list(atom/A, range) var/turf/T = get_turf(A) + if(!T || !A.loc) + throw EXCEPTION("Someone adding a prox sensor in nullspace") var/list/L = block(locate(T.x - range, T.y - range, T.z), locate(T.x + range, T.y + range, T.z)) for(var/B in L) var/turf/C = B - C.proximity_checkers |= A + LAZYINITLIST(C.proximity_checkers) + C.proximity_checkers[A] = TRUE return L /proc/remove_from_proximity_list(atom/A, range) @@ -1300,7 +1201,11 @@ B --><-- A var/list/L = block(locate(T.x - range, T.y - range, T.z), locate(T.x + range, T.y + range, T.z)) for(var/B in L) var/turf/C = B + if (!C.proximity_checkers) + continue C.proximity_checkers.Remove(A) + UNSETEMPTY(C.proximity_checkers) + /proc/shift_proximity(atom/checker, atom/A, range, atom/B, newrange) var/turf/T = get_turf(A) @@ -1313,10 +1218,14 @@ B --><-- A var/list/O = M - L for(var/C in N) var/turf/D = C + if (!D.proximity_checkers) + continue D.proximity_checkers.Remove(checker) + UNSETEMPTY(D.proximity_checkers) for(var/E in O) var/turf/F = E - F.proximity_checkers |= checker + LAZYINITLIST(F.proximity_checkers) + F.proximity_checkers[checker] = TRUE return 1 /proc/flick_overlay_static(image/I, atom/A, duration) @@ -1329,13 +1238,13 @@ B --><-- A /proc/get_areas_in_z(zlevel) . = list() - var/validarea = 0 + var/validarea = FALSE for(var/V in sortedAreas) var/area/A = V - validarea = 1 + validarea = TRUE for(var/turf/T in A) if(T.z != zlevel) - validarea = 0 + validarea = FALSE break if(validarea) . += A @@ -1347,7 +1256,7 @@ B --><-- A if(!istype(A, type)) continue var/distance = get_dist(source, A) - if(!closest_distance) + if(!closest_atom) closest_distance = distance closest_atom = A else @@ -1356,9 +1265,14 @@ B --><-- A closest_atom = A return closest_atom -proc/pick_closest_path(value) - var/list/matches = get_fancy_list_of_types() - if (!isnull(value) && value!="") + +proc/pick_closest_path(value, list/matches = get_fancy_list_of_atom_types()) + if (value == FALSE) //nothing should be calling us with a number, so this is safe + value = input("Enter type to find (blank for all, cancel to cancel)", "Search for type") as null|text + if (isnull(value)) + return + value = trim(value) + if(!isnull(value) && value != "") matches = filter_fancy_list(matches, value) if(matches.len==0) @@ -1368,7 +1282,7 @@ proc/pick_closest_path(value) if(matches.len==1) chosen = matches[1] else - chosen = input("Select an atom type", "Spawn Atom", matches[1]) as null|anything in matches + chosen = input("Select a type", "Pick Type", matches[1]) as null|anything in matches if(!chosen) return chosen = matches[chosen] @@ -1379,17 +1293,23 @@ proc/pick_closest_path(value) CRASH(msg) //Key thing that stops lag. Cornerstone of performance in ss13, Just sitting here, in unsorted.dm. + +//Increases delay as the server gets more overloaded, +//as sleeps aren't cheap and sleeping only to wake up and sleep again is wasteful +#define DELTA_CALC max(((max(world.tick_usage, world.cpu) / 100) * max(Master.sleep_delta,1)), 1) + /proc/stoplag() - . = 1 + . = round(1*DELTA_CALC) sleep(world.tick_lag) if (world.tick_usage > TICK_LIMIT_TO_RUN) //woke up, still not enough tick, sleep for more. - . += 2 - sleep(world.tick_lag*2) + . += round(2*DELTA_CALC) + sleep(world.tick_lag*2*DELTA_CALC) if (world.tick_usage > TICK_LIMIT_TO_RUN) //woke up, STILL not enough tick, sleep for more. - . += 4 - sleep(world.tick_lag*4) + . += round(4*DELTA_CALC) + sleep(world.tick_lag*4*DELTA_CALC) //you might be thinking of adding more steps to this, or making it use a loop and a counter var // not worth it. +#undef DELTA_CALC /proc/flash_color(mob_or_client, flash_color="#960000", flash_time=20) var/client/C @@ -1411,7 +1331,7 @@ proc/pick_closest_path(value) #define RANDOM_COLOUR (rgb(rand(0,255),rand(0,255),rand(0,255))) -#define QDEL_IN(item, time) addtimer(GLOBAL_PROC, "qdel", time, FALSE, item) +#define QDEL_IN(item, time) addtimer(GLOBAL_PROC, "qdel", time, TIMER_NORMAL, item) /proc/check_for_cleanbot_bug() var/static/admins_warned //bet you didn't know you could do this! @@ -1439,10 +1359,11 @@ proc/pick_closest_path(value) str = "0" + str . = str -/proc/trange(var/Dist = 0, var/turf/Center = null) - if (isnull(Center)) - return - - var/turf/x1y1 = locate(((Center.x - Dist) < 1 ? 1 : Center.x - Dist), ((Center.y - Dist) < 1 ? 1 : Center.y - Dist), Center.z) - var/turf/x2y2 = locate(((Center.x + Dist) > world.maxx ? world.maxx : Center.x + Dist), ((Center.y + Dist) > world.maxy ? world.maxy : Center.y + Dist), Center.z) - return block(x1y1, x2y2) +/atom/proc/Shake(pixelshiftx = 15, pixelshifty = 15, duration = 250) + var/initialpixelx = pixel_x + var/initialpixely = pixel_y + var/shiftx = rand(-pixelshiftx,pixelshiftx) + var/shifty = rand(-pixelshifty,pixelshifty) + animate(src, pixel_x = pixel_x + shiftx, pixel_y = pixel_y + shifty, time = 0.2, loop = duration) + pixel_x = initialpixelx + pixel_y = initialpixely diff --git a/code/_globalvars/configuration.dm b/code/_globalvars/configuration.dm index d40e90af87..1887bfe603 100644 --- a/code/_globalvars/configuration.dm +++ b/code/_globalvars/configuration.dm @@ -29,6 +29,12 @@ var/global/comms_allowed = 0 //By default, the server does not allow messages to //Cross server communications var/global/cross_address = "byond://" //This needs to be global as the message sent contains the comms key. var/global/cross_allowed = 0 //Don't bother attempting to send if the address wasn't set. +var/global/panic_address = "byond://" //Reconnect a player this linked server if this server isn't accepting new players + +var/global/medal_hub = null +var/global/medal_pass = " " +var/global/medals_enabled = TRUE //will be auto set to false if the game fails contacting the medal hub to prevent unneeded calls. + //This was a define, but I changed it to a variable so it can be changed in-game.(kept the all-caps definition because... code...) -Errorage var/MAX_EX_DEVESTATION_RANGE = 3 @@ -36,4 +42,5 @@ var/MAX_EX_HEAVY_RANGE = 7 var/MAX_EX_LIGHT_RANGE = 14 var/MAX_EX_FLASH_RANGE = 14 var/MAX_EX_FLAME_RANGE = 14 +var/DYN_EX_SCALE = 0.5 diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm index 6e4ab3ee76..f70a6b99fa 100644 --- a/code/_globalvars/lists/flavor_misc.dm +++ b/code/_globalvars/lists/flavor_misc.dm @@ -25,6 +25,7 @@ var/global/list/snouts_list = list() var/global/list/horns_list = list() var/global/list/frills_list = list() var/global/list/spines_list = list() +var/global/list/legs_list = list() var/global/list/animated_spines_list = list() //Mutant Human bits diff --git a/code/_globalvars/lists/mapping.dm b/code/_globalvars/lists/mapping.dm index 98f3c07671..f37fb053c3 100644 --- a/code/_globalvars/lists/mapping.dm +++ b/code/_globalvars/lists/mapping.dm @@ -64,3 +64,5 @@ var/list/datum/map_template/lava_ruins_templates = list() var/list/datum/map_template/shuttle_templates = list() var/list/datum/map_template/shelter_templates = list() + +var/list/transit_markers = list() diff --git a/code/_globalvars/lists/mobs.dm b/code/_globalvars/lists/mobs.dm index 9e5fc17282..8ac9b2eda0 100644 --- a/code/_globalvars/lists/mobs.dm +++ b/code/_globalvars/lists/mobs.dm @@ -2,7 +2,8 @@ var/list/clients = list() //all clients var/list/admins = list() //all clients whom are admins var/list/deadmins = list() //all clients who have used the de-admin verb. var/list/directory = list() //all ckeys with associated client -var/list/stealthminID = list() //reference list with IDs that store ckeys, for stealthmins +var/list/stealthminID = list() //reference list with IDs that store ckeys, for stealthmins +var/global/list/current_watchlist = list() //stores players that are currently online and in the watchlist //Since it didn't really belong in any other category, I'm putting this here //This is for procs to replace all the goddamn 'in world's that are chilling around the code @@ -12,4 +13,5 @@ var/global/list/mob_list = list() //all mobs, including clientless var/global/list/living_mob_list = list() //all alive mobs, including clientless. Excludes /mob/new_player var/global/list/dead_mob_list = list() //all dead mobs, including clientless. Excludes /mob/new_player var/global/list/joined_player_list = list() //all clients that have joined the game at round-start or as a latejoin. -var/global/list/silicon_mobs = list() //all silicon mobs \ No newline at end of file +var/global/list/silicon_mobs = list() //all silicon mobs +var/global/list/pai_list = list() \ No newline at end of file diff --git a/code/_globalvars/lists/names.dm b/code/_globalvars/lists/names.dm index 90a4c7b388..736419e4a0 100644 --- a/code/_globalvars/lists/names.dm +++ b/code/_globalvars/lists/names.dm @@ -13,6 +13,7 @@ var/list/clown_names = file2list("config/names/clown.txt") var/list/mime_names = file2list("config/names/mime.txt") var/list/carp_names = file2list("config/names/carp.txt") var/list/golem_names = file2list("config/names/golem.txt") +var/list/plasmaman_names = file2list("config/names/plasmaman.txt") var/list/verbs = file2list("config/names/verbs.txt") diff --git a/code/_globalvars/lists/objects.dm b/code/_globalvars/lists/objects.dm index 3464f54e3a..f614f373f9 100644 --- a/code/_globalvars/lists/objects.dm +++ b/code/_globalvars/lists/objects.dm @@ -6,10 +6,12 @@ var/global/list/shuttle_caller_list = list() //list of all communication cons var/global/list/machines = list() //NOTE: this is a list of ALL machines now. The processing machines list is SSmachine.processing ! var/global/list/syndicate_shuttle_boards = list() //important to keep track of for managing nukeops war declarations. var/global/list/navbeacons = list() //list of all bot nagivation beacons, used for patrolling. +var/global/list/teleportbeacons = list() //list of all tracking beacons used by teleporters var/global/list/deliverybeacons = list() //list of all MULEbot delivery beacons. var/global/list/deliverybeacontags = list() //list of all tags associated with delivery beacons. var/global/list/nuke_list = list() var/global/list/nuke_tiles = list() //list of all turfs that turn to animated red grids when a nuke is triggered +var/global/list/alarmdisplay = list() //list of all machines or programs that can display station alerts var/global/list/chemical_reactions_list //list of all /datum/chemical_reaction datums. Used during chemical reactions var/global/list/chemical_reagents_list //list of all /datum/reagent datums indexed by reagent id. Used by chemistry stuff @@ -20,7 +22,8 @@ var/global/list/crafting_recipes = list() //list of all table craft recipes var/global/list/rcd_list = list() //list of Rapid Construction Devices. var/global/list/apcs_list = list() //list of all Area Power Controller machines, seperate from machines for powernet speeeeeeed. var/global/list/tracked_implants = list() //list of all current implants that are tracked to work out what sort of trek everyone is on. Sadly not on lavaworld not implemented... +var/global/list/tracked_chem_implants = list() //list of implants the prisoner console can track and send inject commands too var/global/list/poi_list = list() //list of points of interest for observe/follow var/global/list/pinpointer_list = list() //list of all pinpointers. Used to change stuff they are pointing to all at once. -// A list of all zombie_infection organs, for any mass "animation" -var/global/list/zombie_infection_list = list() +var/global/list/zombie_infection_list = list() // A list of all zombie_infection organs, for any mass "animation" +var/global/list/meteor_list = list() // List of all meteors. diff --git a/code/_globalvars/lists/poll_ignore.dm b/code/_globalvars/lists/poll_ignore.dm new file mode 100644 index 0000000000..6a765f6bfd --- /dev/null +++ b/code/_globalvars/lists/poll_ignore.dm @@ -0,0 +1,6 @@ +//Each lists stores ckeys for "Never for this round" option category + +#define POLL_IGNORE_PAI "pai" +#define POLL_IGNORE_SENTIENCE_POTION "sentience_potion" + +var/list/poll_ignore = list() \ No newline at end of file diff --git a/code/_globalvars/lists/typecache.dm b/code/_globalvars/lists/typecache.dm new file mode 100644 index 0000000000..5d2565c7f2 --- /dev/null +++ b/code/_globalvars/lists/typecache.dm @@ -0,0 +1,9 @@ +//please store common type caches here. +//type caches should only be stored here if used in mutiple places or likely to be used in mutiple places. + +//Note: typecache can only replace istype if you know for sure the thing is at least a datum. + +var/list/typecache_mob = typecacheof(list(/mob)) + + + diff --git a/code/_onclick/ai.dm b/code/_onclick/ai.dm index 38df843337..f83aa6c2d1 100644 --- a/code/_onclick/ai.dm +++ b/code/_onclick/ai.dm @@ -34,6 +34,13 @@ if(control_disabled || stat) return + var/turf/pixel_turf = get_turf_pixel(A) + if(pixel_turf && !cameranet.checkTurfVis(pixel_turf)) + log_admin("[key_name_admin(src)] might be running a modified client! (failed checkTurfVis on AI click of [A]([COORD(pixel_turf)])") + message_admins("[key_name_admin(src)] might be running a modified client! (failed checkTurfVis on AI click of [A]([ADMIN_COORDJMP(pixel_turf)]))") + send2irc_adminless_only("NOCHEAT", "[key_name(src)] might be running a modified client! (failed checkTurfVis on AI click of [A]([COORD(pixel_turf)]))") + return + var/list/modifiers = params2list(params) if(modifiers["shift"] && modifiers["ctrl"]) CtrlShiftClickOn(A) @@ -128,7 +135,7 @@ Topic("aiEnable=4", list("aiEnable"="4"), 1)// 1 meaning no window (consistency!) else Topic("aiDisable=4", list("aiDisable"="4"), 1) - return + /obj/machinery/door/airlock/AIAltClick() // Eletrifies doors. if(emagged) return @@ -138,7 +145,7 @@ else // disable/6 is not in Topic; disable/5 disables both temporary and permenant shock Topic("aiDisable=5", list("aiDisable"="5"), 1) - return + /obj/machinery/door/airlock/AIShiftClick() // Opens and closes doors! if(emagged) return @@ -146,7 +153,7 @@ Topic("aiEnable=7", list("aiEnable"="7"), 1) // 1 meaning no window (consistency!) else Topic("aiDisable=7", list("aiDisable"="7"), 1) - return + /obj/machinery/door/airlock/AICtrlShiftClick() // Sets/Unsets Emergency Access Override if(emagged) return @@ -154,12 +161,12 @@ Topic("aiEnable=11", list("aiEnable"="11"), 1) // 1 meaning no window (consistency!) else Topic("aiDisable=11", list("aiDisable"="11"), 1) - return /* APC */ /obj/machinery/power/apc/AICtrlClick() // turns off/on APCs. - toggle_breaker() - add_fingerprint(usr) + if(can_use(usr, 1)) + toggle_breaker() + add_fingerprint(usr) /* AI Turrets */ /obj/machinery/turretid/AIAltClick() //toggles lethal on turrets diff --git a/code/_onclick/autoclick.dm b/code/_onclick/autoclick.dm index 3fe84195b6..1ceeb182ed 100644 --- a/code/_onclick/autoclick.dm +++ b/code/_onclick/autoclick.dm @@ -23,7 +23,7 @@ /mob/living/carbon/CanMobAutoclick(atom/object, location, params) if(!object.IsAutoclickable()) return - var/obj/item/h = get_active_hand() + var/obj/item/h = get_active_held_item() if(h) . = h.CanItemAutoclick(object, location, params) diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index d3d51f778c..f15ed07c95 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -98,19 +98,16 @@ throw_item(A) return - var/obj/item/W = get_active_hand() + var/obj/item/W = get_active_held_item() if(W == A) W.attack_self(src) - if(hand) - update_inv_l_hand(0) - else - update_inv_r_hand(0) + update_inv_hands() return // operate three levels deep here (item in backpack in src; item in box in backpack in src, not any deeper) - if(!isturf(A) && A == loc || (A in contents) || (A.loc in contents) || (A.loc && (A.loc.loc in contents))) + if(A.ClickAccessible(src, depth=INVENTORY_DEPTH)) // No adjacency needed if(W) var/resolved = A.attackby(W,src) @@ -222,6 +219,7 @@ Ctrl click For most objects, pull */ + /mob/proc/CtrlClickOn(atom/A) A.CtrlClick(src) return @@ -231,6 +229,13 @@ if(istype(ML)) ML.pulled(src) +/mob/living/carbon/human/CtrlClick(mob/user) + if(ishuman(user) && Adjacent(user)) + var/mob/living/carbon/human/H = user + H.dna.species.grab(H, src, H.martial_art) + H.next_click = world.time + CLICK_CD_MELEE + else + ..() /* Alt click Unused except for AI @@ -274,6 +279,21 @@ /atom/proc/CtrlShiftClick(mob/user) return +/* + Helper to check can the mob click/access an item. + Used by mob inventory and storage items. +*/ +/atom/proc/ClickAccessible(mob/user, depth=1) + if(src == user.loc || (src in user.contents)) + return TRUE + + if(loc && depth > 1) + return loc.ClickAccessible(user, depth-1) + +/turf/ClickAccessible(mob/user, depth=1) + return + + /* Misc helpers @@ -334,15 +354,11 @@ icon_state = "click_catcher" plane = CLICKCATCHER_PLANE mouse_opacity = 2 - screen_loc = "CENTER-7,CENTER-7" + screen_loc = "CENTER" -/obj/screen/click_catcher/proc/MakeGreed() - . = list() - for(var/i = 0, i<15, i++) - for(var/j = 0, j<15, j++) - var/obj/screen/click_catcher/CC = new() - CC.screen_loc = "NORTH-[i],EAST-[j]" - . += CC +/obj/screen/click_catcher/New() + ..() + transform = matrix(200, 0, 0, 0, 200, 0) /obj/screen/click_catcher/Click(location, control, params) var/list/modifiers = params2list(params) @@ -350,7 +366,7 @@ var/mob/living/carbon/C = usr C.swap_hand() else - var/turf/T = screen_loc2turf(screen_loc, get_turf(usr)) + var/turf/T = params2turf(modifiers["screen-loc"], get_turf(usr)) if(T) T.Click(location, control, params) - . = 1 \ No newline at end of file + . = 1 diff --git a/code/_onclick/cyborg.dm b/code/_onclick/cyborg.dm index de657798f3..5eece3b019 100644 --- a/code/_onclick/cyborg.dm +++ b/code/_onclick/cyborg.dm @@ -51,7 +51,7 @@ aicamera.captureimage(A, usr) return - var/obj/item/W = get_active_hand() + var/obj/item/W = get_active_held_item() // Cyborgs have no range-checking unless there is item use if(!W) diff --git a/code/_onclick/hud/_defines.dm b/code/_onclick/hud/_defines.dm index fe3ba58ced..c621458533 100644 --- a/code/_onclick/hud/_defines.dm +++ b/code/_onclick/hud/_defines.dm @@ -17,53 +17,67 @@ Therefore, the top right corner (except during admin shenanigans) is at "15,15" */ -//Lower left, persistant menu +//Lower left, persistent menu #define ui_inventory "WEST:6,SOUTH:5" //Middle left indicators #define ui_lingchemdisplay "WEST:6,CENTER-1:15" #define ui_lingstingdisplay "WEST:6,CENTER-3:11" #define ui_crafting "12:-10,1:5" +#define ui_building "12:-10,1:21" + #define ui_devilsouldisplay "WEST:6,CENTER-1:15" -//Lower center, persistant menu +//Lower center, persistent menu #define ui_sstore1 "CENTER-5:10,SOUTH:5" #define ui_id "CENTER-4:12,SOUTH:5" #define ui_belt "CENTER-3:14,SOUTH:5" #define ui_back "CENTER-2:14,SOUTH:5" -#define ui_rhand "CENTER:-16,SOUTH:5" -#define ui_lhand "CENTER: 16,SOUTH:5" -#define ui_equip "CENTER:-16,SOUTH+1:5" -#define ui_swaphand1 "CENTER:-16,SOUTH+1:5" -#define ui_swaphand2 "CENTER: 16,SOUTH+1:5" + +/proc/ui_hand_position(i) //values based on old hand ui positions (CENTER:-/+16,SOUTH:5) + var/x_off = -(!(i % 2)) + var/y_off = round((i-1) / 2) + return"CENTER+[x_off]:16,SOUTH+[y_off]:5" + +/proc/ui_equip_position(mob/M) + var/y_off = round((M.held_items.len-1) / 2) //values based on old equip ui position (CENTER: +/-16,SOUTH+1:5) + return "CENTER:-16,SOUTH+[y_off+1]:5" + +/proc/ui_swaphand_position(mob/M, which = 1) //values based on old swaphand ui positions (CENTER: +/-16,SOUTH+1:5) + var/x_off = which == 1 ? -1 : 0 + var/y_off = round((M.held_items.len-1) / 2) + return "CENTER+[x_off]:16,SOUTH+[y_off+1]:5" + #define ui_storage1 "CENTER+1:18,SOUTH:5" #define ui_storage2 "CENTER+2:20,SOUTH:5" -#define ui_borg_sensor "CENTER-3:16, SOUTH:5" //borgs -#define ui_borg_lamp "CENTER-4:16, SOUTH:5" //borgies -#define ui_borg_thrusters "CENTER-5:16, SOUTH:5"//borgies -#define ui_inv1 "CENTER-2:16,SOUTH:5" //borgs -#define ui_inv2 "CENTER-1 :16,SOUTH:5" //borgs -#define ui_inv3 "CENTER :16,SOUTH:5" //borgs -#define ui_borg_module "CENTER+1:16,SOUTH:5" -#define ui_borg_store "CENTER+2:16,SOUTH:5" //borgs - -#define ui_borg_camera "CENTER+3:21,SOUTH:5" //borgs -#define ui_borg_album "CENTER+4:21,SOUTH:5" //borgs +#define ui_borg_sensor "CENTER-3:16, SOUTH:5" //borgs +#define ui_borg_lamp "CENTER-4:16, SOUTH:5" //borgs +#define ui_borg_thrusters "CENTER-5:16, SOUTH:5" //borgs +#define ui_inv1 "CENTER-2:16,SOUTH:5" //borgs +#define ui_inv2 "CENTER-1 :16,SOUTH:5" //borgs +#define ui_inv3 "CENTER :16,SOUTH:5" //borgs +#define ui_borg_module "CENTER+1:16,SOUTH:5" //borgs +#define ui_borg_store "CENTER+2:16,SOUTH:5" //borgs +#define ui_borg_camera "CENTER+3:21,SOUTH:5" //borgs +#define ui_borg_album "CENTER+4:21,SOUTH:5" //borgs +#define ui_borg_talk_wheel "CENTER+4:21,SOUTH+1:5" //borgs #define ui_monkey_head "CENTER-4:13,SOUTH:5" //monkey #define ui_monkey_mask "CENTER-3:14,SOUTH:5" //monkey -#define ui_monkey_back "CENTER-2:15,SOUTH:5" //monkey +#define ui_monkey_neck "CENTER-2:15,SOUTH:5" //monkey +#define ui_monkey_back "CENTER-1:16,SOUTH:5" //monkey #define ui_alien_storage_l "CENTER-2:14,SOUTH:5"//alien #define ui_alien_storage_r "CENTER+1:18,SOUTH:5"//alien +#define ui_alien_talk_wheel "EAST-3:26,SOUTH:5" //alien #define ui_drone_drop "CENTER+1:18,SOUTH:5" //maintenance drones #define ui_drone_pull "CENTER+2:2,SOUTH:5" //maintenance drones #define ui_drone_storage "CENTER-2:14,SOUTH:5" //maintenance drones #define ui_drone_head "CENTER-3:14,SOUTH:5" //maintenance drones -//Lower right, persistant menu +//Lower right, persistent menu #define ui_drop_throw "EAST-1:28,SOUTH+1:7" #define ui_pull_resist "EAST-2:26,SOUTH+1:7" #define ui_movi "EAST-2:26,SOUTH:5" @@ -94,6 +108,7 @@ #define ui_borg_health "EAST-1:28,CENTER-1:15" //borgs have the health display where humans have the pressure damage indicator. #define ui_alien_health "EAST-1:28,CENTER-1:15" //aliens have the health display where humans have the pressure damage indicator. #define ui_alienplasmadisplay "EAST-1:28,CENTER-2:15" +#define ui_alien_queen_finder "EAST-1:28,CENTER-3:15" // AI @@ -120,18 +135,19 @@ #define ui_oclothing "WEST+1:8,SOUTH+1:7" #define ui_gloves "WEST+2:10,SOUTH+1:7" -#define ui_glasses "WEST:6,SOUTH+2:9" +#define ui_glasses "WEST:6,SOUTH+3:11" #define ui_mask "WEST+1:8,SOUTH+2:9" #define ui_ears "WEST+2:10,SOUTH+2:9" - +#define ui_neck "WEST:6,SOUTH+2:9" #define ui_head "WEST+1:8,SOUTH+3:11" //Ghosts -#define ui_ghost_jumptomob "SOUTH:6,CENTER-2:16" -#define ui_ghost_orbit "SOUTH:6,CENTER-1:16" -#define ui_ghost_reenter_corpse "SOUTH:6,CENTER:16" -#define ui_ghost_teleport "SOUTH:6,CENTER+1:16" +#define ui_ghost_jumptomob "SOUTH:6,CENTER-2:24" +#define ui_ghost_orbit "SOUTH:6,CENTER-1:24" +#define ui_ghost_reenter_corpse "SOUTH:6,CENTER:24" +#define ui_ghost_teleport "SOUTH:6,CENTER+1:24" +#define ui_ghost_pai "SOUTH: 6, CENTER+2:24" //Hand of God, god diff --git a/code/_onclick/hud/action_button.dm b/code/_onclick/hud/action_button.dm index fd7abb1257..9315c0f2db 100644 --- a/code/_onclick/hud/action_button.dm +++ b/code/_onclick/hud/action_button.dm @@ -1,6 +1,8 @@ +#define ACTION_BUTTON_DEFAULT_BACKGROUND "default" /obj/screen/movable/action_button var/datum/action/linked_action + var/actiontooltipstyle = "" screen_loc = null /obj/screen/movable/action_button/Click(location,control,params) @@ -20,6 +22,9 @@ icon = 'icons/mob/actions.dmi' icon_state = "bg_default" var/hidden = 0 + var/hide_icon = 'icons/mob/actions.dmi' + var/hide_state = "hide" + var/show_state = "show" /obj/screen/movable/action_button/hide_toggle/Click(location,control,params) var/list/modifiers = params2list(params) @@ -37,28 +42,39 @@ usr.update_action_buttons() -/obj/screen/movable/action_button/hide_toggle/proc/InitialiseIcon(mob/living/user) - if(isalien(user)) - icon_state = "bg_alien" - else - icon_state = "bg_default" +/obj/screen/movable/action_button/hide_toggle/proc/InitialiseIcon(datum/hud/owner_hud) + var settings = owner_hud.get_action_buttons_icons() + icon = settings["bg_icon"] + icon_state = settings["bg_state"] + hide_icon = settings["toggle_icon"] + hide_state = settings["toggle_hide"] + show_state = settings["toggle_show"] UpdateIcon() - return /obj/screen/movable/action_button/hide_toggle/proc/UpdateIcon() cut_overlays() - var/image/img = image(icon, src, hidden ? "show" : "hide") + var/image/img = image(hide_icon, src, hidden ? show_state : hide_state) add_overlay(img) - return /obj/screen/movable/action_button/MouseEntered(location,control,params) - openToolTip(usr,src,params,title = name,content = desc) + openToolTip(usr,src,params,title = name,content = desc,theme = actiontooltipstyle) /obj/screen/movable/action_button/MouseExited() closeToolTip(usr) +/datum/hud/proc/get_action_buttons_icons() + . = list() + .["bg_icon"] = ui_style_icon + .["bg_state"] = "template" + + //TODO : Make these fit theme + .["toggle_icon"] = 'icons/mob/actions.dmi' + .["toggle_hide"] = "hide" + .["toggle_show"] = "show" + +//see human and alien hud for specific implementations. /mob/proc/update_action_buttons_icon() for(var/X in actions) @@ -83,7 +99,7 @@ else for(var/datum/action/A in actions) button_number++ - A.UpdateButtonIcon() + A.UpdateButtonIcon(hud_used) var/obj/screen/movable/action_button/B = A.button if(!B.moved) B.screen_loc = hud_used.ButtonNumberToScreenCoords(button_number) diff --git a/code/_onclick/hud/ai.dm b/code/_onclick/hud/ai.dm index 350b813e56..f547662d8e 100644 --- a/code/_onclick/hud/ai.dm +++ b/code/_onclick/hud/ai.dm @@ -1,11 +1,17 @@ /obj/screen/ai icon = 'icons/mob/screen_ai.dmi' +/obj/screen/ai/Click() + if(isobserver(usr)) + return 1 + /obj/screen/ai/aicore name = "AI core" icon_state = "ai_core" /obj/screen/ai/aicore/Click() + if(..()) + return var/mob/living/silicon/ai/AI = usr AI.view_core() @@ -23,6 +29,8 @@ icon_state = "track" /obj/screen/ai/camera_track/Click() + if(..()) + return var/mob/living/silicon/ai/AI = usr var/target_name = input(AI, "Choose who you want to track", "Tracking") as null|anything in AI.trackable_mobs() AI.ai_camera_track(target_name) @@ -32,6 +40,8 @@ icon_state = "camera_light" /obj/screen/ai/camera_light/Click() + if(..()) + return var/mob/living/silicon/ai/AI = usr AI.toggle_camera_light() @@ -40,6 +50,8 @@ icon_state = "crew_monitor" /obj/screen/ai/crew_monitor/Click() + if(..()) + return var/mob/living/silicon/ai/AI = usr crewmonitor.show(AI) @@ -48,6 +60,8 @@ icon_state = "manifest" /obj/screen/ai/crew_manifest/Click() + if(..()) + return var/mob/living/silicon/ai/AI = usr AI.ai_roster() @@ -56,6 +70,8 @@ icon_state = "alerts" /obj/screen/ai/alerts/Click() + if(..()) + return var/mob/living/silicon/ai/AI = usr AI.ai_alerts() @@ -64,6 +80,8 @@ icon_state = "announcement" /obj/screen/ai/announcement/Click() + if(..()) + return var/mob/living/silicon/ai/AI = usr AI.announcement() @@ -72,6 +90,8 @@ icon_state = "call_shuttle" /obj/screen/ai/call_shuttle/Click() + if(..()) + return var/mob/living/silicon/ai/AI = usr AI.ai_call_shuttle() @@ -80,6 +100,8 @@ icon_state = "state_laws" /obj/screen/ai/state_laws/Click() + if(..()) + return var/mob/living/silicon/ai/AI = usr AI.checklaws() @@ -88,6 +110,8 @@ icon_state = "pda_send" /obj/screen/ai/pda_msg_send/Click() + if(..()) + return var/mob/living/silicon/ai/AI = usr AI.cmd_send_pdamesg(usr) @@ -96,6 +120,8 @@ icon_state = "pda_receive" /obj/screen/ai/pda_msg_show/Click() + if(..()) + return var/mob/living/silicon/ai/AI = usr AI.cmd_show_message_log(usr) @@ -107,7 +133,7 @@ if(isAI(usr)) var/mob/living/silicon/ai/AI = usr AI.aicamera.toggle_camera_mode() - else if(isrobot(usr)) + else if(iscyborg(usr)) var/mob/living/silicon/robot/R = usr R.aicamera.toggle_camera_mode() @@ -119,7 +145,7 @@ if(isAI(usr)) var/mob/living/silicon/ai/AI = usr AI.aicamera.viewpictures() - else if(isrobot(usr)) + else if(iscyborg(usr)) var/mob/living/silicon/robot/R = usr R.aicamera.viewpictures() @@ -128,11 +154,16 @@ icon_state = "ai_sensor" /obj/screen/ai/sensors/Click() + if(..()) + return var/mob/living/silicon/S = usr S.sensor_mode() -/datum/hud/ai/New(mob/owner) +/datum/hud/ai + ui_style_icon = 'icons/mob/screen_ai.dmi' + +/datum/hud/ai/New(mob/owner, ui_style = 'icons/mob/screen_ai.dmi') ..() var/obj/screen/using diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index 2dea5689c5..9005eb06c8 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -37,9 +37,12 @@ if(new_master) var/old_layer = new_master.layer + var/old_plane = new_master.plane new_master.layer = FLOAT_LAYER + new_master.plane = FLOAT_PLANE alert.overlays += new_master new_master.layer = old_layer + new_master.plane = old_plane alert.icon_state = "template" // We'll set the icon to the client's ui pref in reorganize_alerts() alert.master = new_master else @@ -240,6 +243,163 @@ or shoot a gun to move around via Newton's 3rd Law of Motion." icon_state = "blobbernaut_nofactory" alerttooltipstyle = "blob" +// CLOCKCULT +/obj/screen/alert/clockwork + alerttooltipstyle = "clockcult" + +/obj/screen/alert/clockwork/scripture_reqs + name = "Next Tier Requirements" + desc = "You shouldn't be seeing this description unless you're very fast. If you're very fast, good job!" + icon_state = "no-servants-caches" + var/static/list/scripture_states = list(SCRIPTURE_DRIVER = TRUE, SCRIPTURE_SCRIPT = FALSE, SCRIPTURE_APPLICATION = FALSE, SCRIPTURE_REVENANT = FALSE, SCRIPTURE_JUDGEMENT = FALSE) + +/obj/screen/alert/clockwork/scripture_reqs/New() + ..() + START_PROCESSING(SSprocessing, src) + process() + +/obj/screen/alert/clockwork/scripture_reqs/Destroy() + STOP_PROCESSING(SSprocessing, src) + return ..() + +/obj/screen/alert/clockwork/scripture_reqs/process() + if(clockwork_gateway_activated) + qdel(src) + return + var/current_state + scripture_states = scripture_unlock_check() + for(var/i in scripture_states) + if(!scripture_states[i]) + current_state = i + break + icon_state = "no" + if(!current_state) + name = "Current Objective" + for(var/obj/structure/destructible/clockwork/massive/celestial_gateway/G in all_clockwork_objects) + var/area/gate_area = get_area(G) + desc = "Protect the Ark at [gate_area.map_name]!" + return + desc = "All tiers of Scripture are unlocked.
\ + Acquire components and summon the Ark.
" + else + name = "Next Tier Requirements" + var/validservants = 0 + var/unconverted_ais_exist = FALSE + for(var/mob/living/L in living_mob_list) + if(is_servant_of_ratvar(L) && (ishuman(L) || issilicon(L))) + validservants++ + else if(isAI(L)) + unconverted_ais_exist++ + var/req_servants = 0 + var/req_caches = 0 + var/req_cv = 0 + var/req_ai = FALSE + desc = "Requirements for [current_state] Scripture:" + switch(current_state) //get our requirements based on the tier + if(SCRIPTURE_SCRIPT) + req_servants = SCRIPT_SERVANT_REQ + req_caches = SCRIPT_CACHE_REQ + if(SCRIPTURE_APPLICATION) + req_servants = APPLICATION_SERVANT_REQ + req_caches = APPLICATION_CACHE_REQ + req_cv = APPLICATION_CV_REQ + if(SCRIPTURE_REVENANT) + req_servants = REVENANT_SERVANT_REQ + req_caches = REVENANT_CACHE_REQ + req_cv = REVENANT_CV_REQ + if(SCRIPTURE_JUDGEMENT) + req_servants = JUDGEMENT_SERVANT_REQ + req_caches = JUDGEMENT_CACHE_REQ + req_cv = JUDGEMENT_CV_REQ + req_ai = TRUE + desc += "
[validservants]/[req_servants] Servants" + if(validservants < req_servants) + icon_state += "-servants" //in this manner, generate an icon key based on what we're missing + else + desc += ": \[CHECK\]" + desc += "
[clockwork_caches]/[req_caches] Tinkerer's Caches" + if(clockwork_caches < req_caches) + icon_state += "-caches" + else + desc += ": \[CHECK\]" + if(req_cv) //cv only shows up if the tier requires it + desc += "
[clockwork_construction_value]/[req_cv] Construction Value" + if(clockwork_construction_value < req_cv) + icon_state += "-cv" + else + desc += ": \[CHECK\]" + if(req_ai) //same for ai + if(unconverted_ais_exist) + if(unconverted_ais_exist > 1) + desc += "
[unconverted_ais_exist] unconverted AIs exist!
" + else + desc += "
An unconverted AI exists!" + icon_state += "-ai" + else + desc += "
No unconverted AIs exist: \[CHECK\]" + +/obj/screen/alert/clockwork/infodump + name = "Global Records" + desc = "You shouldn't be seeing this description, because it should be dynamically generated." + icon_state = "clockinfo" + +/obj/screen/alert/clockwork/infodump/MouseEntered(location,control,params) + if(ratvar_awakens) + desc = "CHETR
NYY
HAGEHUGF-NAQ-UBABE
RATVAR.
" + else + var/servants = 0 + var/validservants = 0 + var/unconverted_ais_exist = FALSE + var/list/scripture_states = scripture_unlock_check() + for(var/mob/living/L in living_mob_list) + if(is_servant_of_ratvar(L)) + servants++ + if(ishuman(L) || issilicon(L)) + validservants++ + else if(isAI(L)) + unconverted_ais_exist++ + if(servants > 1) + if(validservants > 1) + desc = "[servants] Servants, [validservants] of which count towards scripture.
" + else + desc = "[servants] Servants, [validservants ? "[validservants] of which counts":"none of which count"] towards scripture.
" + else + desc = "[servants] Servant, who [validservants ? "counts":"does not count"] towards scripture.
" + desc += "[clockwork_caches ? "[clockwork_caches] Tinkerer's Caches.":"No Tinkerer's Caches, construct one!
"]
\ + [clockwork_construction_value] Construction Value.
" + if(clockwork_daemons) + desc += "[clockwork_daemons] Tinkerer's Daemons: [servants * 0.2 < clockwork_daemons ? "DISABLED":"ACTIVE"]
" + else + desc += "No Tinkerer's Daemons.
" + for(var/obj/structure/destructible/clockwork/massive/celestial_gateway/G in all_clockwork_objects) + var/area/gate_area = get_area(G) + desc += "Ark Location: [uppertext(gate_area.map_name)]
" + if(G.ratvar_portal) + desc += "Seconds until Ratvar's arrival: [G.get_arrival_text(TRUE)]
" + else + desc += "Seconds until Proselytization: [G.get_arrival_text(TRUE)]
" + if(unconverted_ais_exist) + if(unconverted_ais_exist > 1) + desc += "[unconverted_ais_exist] unconverted AIs exist!
" + else + desc += "An unconverted AI exists!
" + if(scripture_states[SCRIPTURE_REVENANT]) + var/inathneq_available = clockwork_generals_invoked["inath-neq"] <= world.time + var/sevtug_available = clockwork_generals_invoked["sevtug"] <= world.time + var/nezbere_available = clockwork_generals_invoked["nezbere"] <= world.time + var/nezcrentr_available = clockwork_generals_invoked["nzcrentr"] <= world.time + if(inathneq_available || sevtug_available || nezbere_available || nezcrentr_available) + desc += "Generals available:[inathneq_available ? "
INATH-NEQ":""][sevtug_available ? "
SEVTUG":""]\ + [nezbere_available ? "
NEZBERE":""][nezcrentr_available ? "
NZCRENTR":""]

" + else + desc += "Generals available: NONE
" + else + desc += "Generals available: NONE
" + for(var/i in scripture_states) + if(i != SCRIPTURE_DRIVER) //ignore the always-unlocked stuff + desc += "[i] Scripture: [scripture_states[i] ? "UNLOCKED":"LOCKED"]
" + ..() + //GUARDIANS /obj/screen/alert/cancharge @@ -297,6 +457,23 @@ so as to remain in compliance with the most up-to-date laws." icon_state = "newlaw" timeout = 300 +/obj/screen/alert/hackingapc + name = "Hacking APC" + desc = "An Area Power Controller is being hacked. When the process is \ + complete, you will have exclusive control of it, and you will gain \ + additional processing time to unlock more malfunction abilities." + icon_state = "hackingapc" + timeout = 600 + var/atom/target = null + +/obj/screen/alert/hackingapc/Click() + if(!usr || !usr.client) return + if(!target) return + var/mob/living/silicon/ai/AI = usr + var/turf/T = get_turf(target) + if(T) + AI.eyeobj.setLoc(T) + //MECHS /obj/screen/alert/low_mech_integrity @@ -359,6 +536,7 @@ so as to remain in compliance with the most up-to-date laws." if(isliving(usr)) var/mob/living/L = usr return L.resist() + // PRIVATE = only edit, use, or override these if you're editing the system as a whole // Re-render all alerts - also called in /datum/hud/show_hud() because it's needed there diff --git a/code/_onclick/hud/alien.dm b/code/_onclick/hud/alien.dm index 20cfab176f..1f8b1c2488 100644 --- a/code/_onclick/hud/alien.dm +++ b/code/_onclick/hud/alien.dm @@ -21,50 +21,46 @@ if(T) T.fire(A) - /obj/screen/alien/plasma_display icon = 'icons/mob/screen_gen.dmi' icon_state = "power_display2" name = "plasma stored" screen_loc = ui_alienplasmadisplay -/datum/hud/alien/New(mob/living/carbon/alien/humanoid/owner) + +/obj/screen/alien/alien_queen_finder + icon = 'icons/mob/screen_alien.dmi' + icon_state = "queen_finder" + name = "queen sense" + desc = "Allows you to sense the general direction of your Queen." + screen_loc = ui_alien_queen_finder + + +/datum/hud/alien + ui_style_icon = 'icons/mob/screen_alien.dmi' + +/datum/hud/alien/New(mob/living/carbon/alien/humanoid/owner, ui_style = 'icons/mob/screen_alien.dmi') ..() var/obj/screen/using - var/obj/screen/inventory/inv_box //equippable shit //hands - inv_box = new /obj/screen/inventory/hand() - inv_box.name = "right hand" - inv_box.icon = 'icons/mob/screen_alien.dmi' - inv_box.icon_state = "hand_r" - inv_box.screen_loc = ui_rhand - inv_box.slot_id = slot_r_hand - static_inventory += inv_box - - inv_box = new /obj/screen/inventory/hand() - inv_box.name = "left hand" - inv_box.icon = 'icons/mob/screen_alien.dmi' - inv_box.icon_state = "hand_l" - inv_box.screen_loc = ui_lhand - inv_box.slot_id = slot_l_hand - static_inventory += inv_box + build_hand_slots(ui_style) //begin buttons using = new /obj/screen/swap_hand() - using.icon = 'icons/mob/screen_alien.dmi' + using.icon = ui_style using.icon_state = "swap_1" - using.screen_loc = ui_swaphand1 + using.screen_loc = ui_swaphand_position(owner,1) static_inventory += using using = new /obj/screen/swap_hand() - using.icon = 'icons/mob/screen_alien.dmi' + using.icon = ui_style using.icon_state = "swap_2" - using.screen_loc = ui_swaphand2 + using.screen_loc = ui_swaphand_position(owner,2) static_inventory += using using = new /obj/screen/act_intent/alien() @@ -78,23 +74,28 @@ H.leap_icon.screen_loc = ui_alien_storage_r static_inventory += H.leap_icon + using = new/obj/screen/wheel/talk + using.screen_loc = ui_alien_talk_wheel + wheels += using + static_inventory += using + using = new /obj/screen/drop() - using.icon = 'icons/mob/screen_alien.dmi' + using.icon = ui_style using.screen_loc = ui_drop_throw static_inventory += using using = new /obj/screen/resist() - using.icon = 'icons/mob/screen_alien.dmi' + using.icon = ui_style using.screen_loc = ui_pull_resist hotkeybuttons += using throw_icon = new /obj/screen/throw_catch() - throw_icon.icon = 'icons/mob/screen_alien.dmi' + throw_icon.icon = ui_style throw_icon.screen_loc = ui_drop_throw hotkeybuttons += throw_icon pull_icon = new /obj/screen/pull() - pull_icon.icon = 'icons/mob/screen_alien.dmi' + pull_icon.icon = ui_style pull_icon.update_icon(mymob) pull_icon.screen_loc = ui_pull_resist static_inventory += pull_icon @@ -110,6 +111,10 @@ alien_plasma_display = new /obj/screen/alien/plasma_display() infodisplay += alien_plasma_display + if(!istype(mymob, /mob/living/carbon/alien/humanoid/royal/queen)) + alien_queen_finder = new /obj/screen/alien/alien_queen_finder + infodisplay += alien_queen_finder + zone_select = new /obj/screen/zone_sel/alien() zone_select.update_icon(mymob) static_inventory += zone_select @@ -120,22 +125,18 @@ inv_slots[inv.slot_id] = inv inv.update_icon() -/datum/hud/alien/persistant_inventory_update() +/datum/hud/alien/persistent_inventory_update() if(!mymob) return var/mob/living/carbon/alien/humanoid/H = mymob if(hud_version != HUD_STYLE_NOHUD) - if(H.r_hand) - H.r_hand.screen_loc = ui_rhand - H.client.screen += H.r_hand - if(H.l_hand) - H.l_hand.screen_loc = ui_lhand - H.client.screen += H.l_hand + for(var/obj/item/I in H.held_items) + I.screen_loc = ui_hand_position(H.get_held_index_of_item(I)) + H.client.screen += I else - if(H.r_hand) - H.r_hand.screen_loc = null - if(H.l_hand) - H.l_hand.screen_loc = null + 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) diff --git a/code/_onclick/hud/alien_larva.dm b/code/_onclick/hud/alien_larva.dm index a1464fa996..2392e349fe 100644 --- a/code/_onclick/hud/alien_larva.dm +++ b/code/_onclick/hud/alien_larva.dm @@ -13,13 +13,19 @@ nightvisionicon = new /obj/screen/alien/nightvision() nightvisionicon.screen_loc = ui_alien_nightvision infodisplay += nightvisionicon - + alien_queen_finder = new /obj/screen/alien/alien_queen_finder() + infodisplay += alien_queen_finder pull_icon = new /obj/screen/pull() pull_icon.icon = 'icons/mob/screen_alien.dmi' pull_icon.update_icon(mymob) pull_icon.screen_loc = ui_pull_resist hotkeybuttons += pull_icon + using = new/obj/screen/wheel/talk + using.screen_loc = ui_alien_talk_wheel + wheels += using + static_inventory += using + zone_select = new /obj/screen/zone_sel/alien() zone_select.update_icon(mymob) static_inventory += zone_select diff --git a/code/_onclick/hud/blob_overmind.dm b/code/_onclick/hud/blob_overmind.dm index 66e4e1fd3c..c3cc3851dc 100644 --- a/code/_onclick/hud/blob_overmind.dm +++ b/code/_onclick/hud/blob_overmind.dm @@ -34,12 +34,15 @@ desc = "Moves your camera to your blob core." /obj/screen/blob/JumpToCore/MouseEntered(location,control,params) - if(isovermind(usr)) - var/mob/camera/blob/B = usr + if(hud && hud.mymob && isovermind(hud.mymob)) + var/mob/camera/blob/B = hud.mymob if(!B.placed) - openToolTip(usr,src,params,title = "Place Blob Core",content = "Attempt to place your blob core at this location.", theme = "blob") + name = "Place Blob Core" + desc = "Attempt to place your blob core at this location." else - ..() + name = initial(name) + desc = initial(desc) + ..() /obj/screen/blob/JumpToCore/Click() if(isovermind(usr)) @@ -51,7 +54,7 @@ /obj/screen/blob/Blobbernaut icon_state = "ui_blobbernaut" name = "Produce Blobbernaut (40)" - desc = "Produces a strong, smart blobbernaut from a factory blob for 40 points.
The factory blob used will become fragile and unable to produce spores." + desc = "Produces a strong, smart blobbernaut from a factory blob for 40 resources.
The factory blob used will become fragile and unable to produce spores." /obj/screen/blob/Blobbernaut/Click() if(isovermind(usr)) @@ -61,7 +64,7 @@ /obj/screen/blob/ResourceBlob icon_state = "ui_resource" name = "Produce Resource Blob (40)" - desc = "Produces a resource blob for 40 points.
Resource blobs will give you points every few seconds." + desc = "Produces a resource blob for 40 resources.
Resource blobs will give you resources every few seconds." /obj/screen/blob/ResourceBlob/Click() if(isovermind(usr)) @@ -70,8 +73,8 @@ /obj/screen/blob/NodeBlob icon_state = "ui_node" - name = "Produce Node Blob (60)" - desc = "Produces a node blob for 60 points.
Node blobs will expand and activate nearby resource and factory blobs." + name = "Produce Node Blob (50)" + desc = "Produces a node blob for 50 resources.
Node blobs will expand and activate nearby resource and factory blobs." /obj/screen/blob/NodeBlob/Click() if(isovermind(usr)) @@ -81,7 +84,7 @@ /obj/screen/blob/FactoryBlob icon_state = "ui_factory" name = "Produce Factory Blob (60)" - desc = "Produces a factory blob for 60 points.
Factory blobs will produce spores every few seconds." + desc = "Produces a factory blob for 60 resources.
Factory blobs will produce spores every few seconds." /obj/screen/blob/FactoryBlob/Click() if(isovermind(usr)) @@ -91,15 +94,18 @@ /obj/screen/blob/ReadaptChemical icon_state = "ui_chemswap" name = "Readapt Chemical (40)" - desc = "Randomly rerolls your chemical for 40 points." + desc = "Randomly rerolls your chemical for 40 resources." /obj/screen/blob/ReadaptChemical/MouseEntered(location,control,params) - if(isovermind(usr)) - var/mob/camera/blob/B = usr + if(hud && hud.mymob && isovermind(hud.mymob)) + var/mob/camera/blob/B = hud.mymob if(B.free_chem_rerolls) - openToolTip(usr,src,params,title = "Readapt Chemical (FREE)",content = "Randomly rerolls your chemical for free.", theme = "blob") + name = "Readapt Chemical (FREE)" + desc = "Randomly rerolls your chemical for free." else - ..() + name = initial(name) + desc = initial(desc) + ..() /obj/screen/blob/ReadaptChemical/Click() if(isovermind(usr)) @@ -109,7 +115,7 @@ /obj/screen/blob/RelocateCore icon_state = "ui_swap" name = "Relocate Core (80)" - desc = "Swaps a node and your core for 80 points." + desc = "Swaps a node and your core for 80 resources." /obj/screen/blob/RelocateCore/Click() if(isovermind(usr)) @@ -126,6 +132,7 @@ blobpwrdisplay.screen_loc = ui_health blobpwrdisplay.mouse_opacity = 0 blobpwrdisplay.layer = ABOVE_HUD_LAYER + blobpwrdisplay.plane = ABOVE_HUD_PLANE infodisplay += blobpwrdisplay healths = new /obj/screen/healths/blob() @@ -141,6 +148,7 @@ using = new /obj/screen/blob/JumpToCore() using.screen_loc = ui_zonesel + using.hud = src static_inventory += using using = new /obj/screen/blob/Blobbernaut() @@ -152,15 +160,16 @@ static_inventory += using using = new /obj/screen/blob/NodeBlob() - using.screen_loc = ui_lhand + using.screen_loc = ui_hand_position(2) static_inventory += using using = new /obj/screen/blob/FactoryBlob() - using.screen_loc = ui_rhand + using.screen_loc = ui_hand_position(1) static_inventory += using using = new /obj/screen/blob/ReadaptChemical() using.screen_loc = ui_storage1 + using.hud = src static_inventory += using using = new /obj/screen/blob/RelocateCore() diff --git a/code/_onclick/hud/clockwork_marauder.dm b/code/_onclick/hud/clockwork_marauder.dm new file mode 100644 index 0000000000..0b5c2e0f24 --- /dev/null +++ b/code/_onclick/hud/clockwork_marauder.dm @@ -0,0 +1,64 @@ +/datum/hud/marauder + var/obj/screen/hosthealth + var/obj/screen/blockchance + var/obj/screen/counterchance + +/datum/hud/marauder/New(mob/living/simple_animal/hostile/guardian/owner) + ..() + var/obj/screen/using + + healths = new /obj/screen/healths/clock() + infodisplay += healths + + hosthealth = new /obj/screen/healths/clock() + hosthealth.screen_loc = ui_internal + infodisplay += hosthealth + + using = new /obj/screen/marauder/emerge() + using.screen_loc = ui_zonesel + static_inventory += using + + blockchance = new /obj/screen/marauder/blockchance() + blockchance.screen_loc = ui_hand_position(2) + infodisplay += blockchance + + counterchance = new /obj/screen/marauder/counterchance() + counterchance.screen_loc = ui_hand_position(1) + infodisplay += counterchance + +/datum/hud/marauder/Destroy() + blockchance = null + counterchance = null + hosthealth = null + return ..() + +/mob/living/simple_animal/hostile/clockwork/marauder/create_mob_hud() + if(client && !hud_used) + hud_used = new /datum/hud/marauder(src, ui_style2icon(client.prefs.UI_style)) + + +/obj/screen/marauder + icon = 'icons/mob/clockwork_mobs.dmi' + +/obj/screen/marauder/emerge + icon_state = "marauder_emerge" + name = "Emerge/Return" + desc = "Emerge or Return." + +/obj/screen/marauder/emerge/Click() + if(istype(usr, /mob/living/simple_animal/hostile/clockwork/marauder)) + var/mob/living/simple_animal/hostile/clockwork/marauder/M = usr + if(M.is_in_host()) + M.try_emerge() + else + M.return_to_host() + +/obj/screen/marauder/blockchance + icon_state = "marauder_block" + name = "Block Chance" + desc = "Clang." + +/obj/screen/marauder/counterchance + icon_state = "marauder_counter" + name = "Counter Chance" + desc = "Slash." diff --git a/code/_onclick/hud/devil.dm b/code/_onclick/hud/devil.dm index 0ddaeccd23..0cd0b6a6a9 100644 --- a/code/_onclick/hud/devil.dm +++ b/code/_onclick/hud/devil.dm @@ -5,7 +5,6 @@ /datum/hud/devil/New(mob/owner, ui_style = 'icons/mob/screen_midnight.dmi') ..() var/obj/screen/using - var/obj/screen/inventory/inv_box using = new /obj/screen/drop() using.icon = ui_style @@ -18,36 +17,24 @@ pull_icon.screen_loc = ui_drone_pull static_inventory += pull_icon - inv_box = new /obj/screen/inventory/hand() - inv_box.name = "right hand" - inv_box.icon = ui_style - inv_box.icon_state = "hand_r" - inv_box.screen_loc = ui_rhand - inv_box.slot_id = slot_r_hand - static_inventory += inv_box - - inv_box = new /obj/screen/inventory/hand() - inv_box.name = "left hand" - inv_box.icon = ui_style - inv_box.icon_state = "hand_l" - inv_box.screen_loc = ui_lhand - inv_box.slot_id = slot_l_hand - static_inventory += inv_box + build_hand_slots(ui_style) using = new /obj/screen/inventory() using.name = "hand" using.icon = ui_style using.icon_state = "swap_1_m" - using.screen_loc = ui_swaphand1 + using.screen_loc = ui_swaphand_position(owner,1) using.layer = HUD_LAYER + using.plane = HUD_PLANE static_inventory += using using = new /obj/screen/inventory() using.name = "hand" using.icon = ui_style using.icon_state = "swap_2" - using.screen_loc = ui_swaphand2 + using.screen_loc = ui_swaphand_position(owner,2) using.layer = HUD_LAYER + using.plane = HUD_PLANE static_inventory += using zone_select = new /obj/screen/zone_sel() @@ -59,23 +46,19 @@ infodisplay += devilsouldisplay -/datum/hud/devil/persistant_inventory_update() +/datum/hud/devil/persistent_inventory_update() if(!mymob) return var/mob/living/carbon/true_devil/D = mymob if(hud_version != HUD_STYLE_NOHUD) - if(D.r_hand) - D.r_hand.screen_loc = ui_rhand - D.client.screen += D.r_hand - if(D.l_hand) - D.l_hand.screen_loc = ui_lhand - D.client.screen += D.l_hand + for(var/obj/item/I in D.held_items) + I.screen_loc = ui_hand_position(D.get_held_index_of_item(I)) + D.client.screen += I else - if(D.r_hand) - D.r_hand.screen_loc = null - if(D.l_hand) - D.l_hand.screen_loc = null + 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) diff --git a/code/_onclick/hud/drones.dm b/code/_onclick/hud/drones.dm index 631686b089..b6708b266d 100644 --- a/code/_onclick/hud/drones.dm +++ b/code/_onclick/hud/drones.dm @@ -1,42 +1,14 @@ -/datum/hud/drone/New(mob/owner, ui_style = 'icons/mob/screen_midnight.dmi') +/datum/hud/dextrous/drone/New(mob/owner, ui_style = 'icons/mob/screen_midnight.dmi') ..() - var/obj/screen/using var/obj/screen/inventory/inv_box - using = new /obj/screen/drop() - using.icon = ui_style - using.screen_loc = ui_drone_drop - static_inventory += using - - pull_icon = new /obj/screen/pull() - pull_icon.icon = ui_style - pull_icon.update_icon(mymob) - pull_icon.screen_loc = ui_drone_pull - static_inventory += pull_icon - - inv_box = new /obj/screen/inventory/hand() - inv_box.name = "right hand" - inv_box.icon = ui_style - inv_box.icon_state = "hand_r" - inv_box.screen_loc = ui_rhand - inv_box.slot_id = slot_r_hand - static_inventory += inv_box - - inv_box = new /obj/screen/inventory/hand() - inv_box.name = "left hand" - inv_box.icon = ui_style - inv_box.icon_state = "hand_l" - inv_box.screen_loc = ui_lhand - inv_box.slot_id = slot_l_hand - static_inventory += inv_box - inv_box = new /obj/screen/inventory() inv_box.name = "internal storage" inv_box.icon = ui_style inv_box.icon_state = "suit_storage" // inv_box.icon_full = "template" inv_box.screen_loc = ui_drone_storage - inv_box.slot_id = slot_drone_storage + inv_box.slot_id = slot_generic_dextrous_storage static_inventory += inv_box inv_box = new /obj/screen/inventory() @@ -48,26 +20,6 @@ inv_box.slot_id = slot_head static_inventory += inv_box - using = new /obj/screen/swap_hand() - using.icon = ui_style - using.icon_state = "swap_1_m" - using.screen_loc = ui_swaphand1 - static_inventory += using - - using = new /obj/screen/swap_hand() - using.icon = ui_style - using.icon_state = "swap_2" - using.screen_loc = ui_swaphand2 - static_inventory += using - - zone_select = new /obj/screen/zone_sel() - zone_select.icon = ui_style - zone_select.update_icon(mymob) - - using = new /obj/screen/inventory/craft - using.icon = ui_style - static_inventory += using - for(var/obj/screen/inventory/inv in (static_inventory + toggleable_inventory)) if(inv.slot_id) inv.hud = src @@ -75,7 +27,7 @@ inv.update_icon() -/datum/hud/drone/persistant_inventory_update() +/datum/hud/dextrous/drone/persistent_inventory_update() if(!mymob) return var/mob/living/simple_animal/drone/D = mymob @@ -93,19 +45,4 @@ if(D.head) D.head.screen_loc = null - if(hud_version != HUD_STYLE_NOHUD) - if(D.r_hand) - D.r_hand.screen_loc = ui_rhand - D.client.screen += D.r_hand - if(D.l_hand) - D.l_hand.screen_loc = ui_lhand - D.client.screen += D.l_hand - else - if(D.r_hand) - D.r_hand.screen_loc = null - if(D.l_hand) - D.l_hand.screen_loc = null - -/mob/living/simple_animal/drone/create_mob_hud() - if(client && !hud_used) - hud_used = new /datum/hud/drone(src, ui_style2icon(client.prefs.UI_style)) + ..() diff --git a/code/_onclick/hud/fullscreen.dm b/code/_onclick/hud/fullscreen.dm index 0baf90a473..4d05e42f40 100644 --- a/code/_onclick/hud/fullscreen.dm +++ b/code/_onclick/hud/fullscreen.dm @@ -60,6 +60,7 @@ icon_state = "default" screen_loc = "CENTER-7,CENTER-7" layer = FULLSCREEN_LAYER + plane = FULLSCREEN_PLANE mouse_opacity = 0 var/severity = 0 @@ -71,18 +72,22 @@ /obj/screen/fullscreen/brute icon_state = "brutedamageoverlay" layer = UI_DAMAGE_LAYER + plane = FULLSCREEN_PLANE /obj/screen/fullscreen/oxy icon_state = "oxydamageoverlay" layer = UI_DAMAGE_LAYER + plane = FULLSCREEN_PLANE /obj/screen/fullscreen/crit icon_state = "passage" layer = CRIT_LAYER + plane = FULLSCREEN_PLANE /obj/screen/fullscreen/blind icon_state = "blackimageoverlay" layer = BLIND_LAYER + plane = FULLSCREEN_PLANE /obj/screen/fullscreen/impaired icon_state = "impairedoverlay" @@ -97,7 +102,7 @@ screen_loc = "WEST,SOUTH to EAST,NORTH" icon_state = "flash" -/obj/screen/fullscreen/flash/noise +/obj/screen/fullscreen/flash/static icon = 'icons/mob/screen_gen.dmi' screen_loc = "WEST,SOUTH to EAST,NORTH" icon_state = "noise" @@ -106,3 +111,18 @@ icon = 'icons/mob/screen_gen.dmi' screen_loc = "WEST,SOUTH to EAST,NORTH" icon_state = "druggy" + +/obj/screen/fullscreen/color_vision + icon = 'icons/mob/screen_gen.dmi' + screen_loc = "WEST,SOUTH to EAST,NORTH" + icon_state = "flash" + alpha = 80 + +/obj/screen/fullscreen/color_vision/green + color = "#00ff00" + +/obj/screen/fullscreen/color_vision/red + color = "#ff0000" + +/obj/screen/fullscreen/color_vision/blue + color = "#0000ff" \ No newline at end of file diff --git a/code/_onclick/hud/generic_dextrous.dm b/code/_onclick/hud/generic_dextrous.dm index fe772d94ca..f20730483a 100644 --- a/code/_onclick/hud/generic_dextrous.dm +++ b/code/_onclick/hud/generic_dextrous.dm @@ -2,39 +2,42 @@ /datum/hud/dextrous/New(mob/living/owner, ui_style = 'icons/mob/screen_midnight.dmi') ..() var/obj/screen/using - var/obj/screen/inventory/inv_box using = new /obj/screen/drop() using.icon = ui_style using.screen_loc = ui_drone_drop static_inventory += using - inv_box = new /obj/screen/inventory/hand() - inv_box.name = "right hand" - inv_box.icon = ui_style - inv_box.icon_state = "hand_r" - inv_box.screen_loc = ui_rhand - inv_box.slot_id = slot_r_hand - static_inventory += inv_box + pull_icon = new /obj/screen/pull() + pull_icon.icon = ui_style + pull_icon.update_icon(mymob) + pull_icon.screen_loc = ui_drone_pull + static_inventory += pull_icon - inv_box = new /obj/screen/inventory/hand() - inv_box.name = "left hand" - inv_box.icon = ui_style - inv_box.icon_state = "hand_l" - inv_box.screen_loc = ui_lhand - inv_box.slot_id = slot_l_hand - static_inventory += inv_box + build_hand_slots(ui_style) using = new /obj/screen/swap_hand() using.icon = ui_style using.icon_state = "swap_1_m" - using.screen_loc = ui_swaphand1 + using.screen_loc = ui_swaphand_position(owner,1) static_inventory += using using = new /obj/screen/swap_hand() using.icon = ui_style using.icon_state = "swap_2" - using.screen_loc = ui_swaphand2 + using.screen_loc = ui_swaphand_position(owner,2) + static_inventory += using + + zone_select = new /obj/screen/zone_sel() + zone_select.icon = ui_style + zone_select.update_icon(mymob) + + using = new /obj/screen/inventory/craft + using.icon = ui_style + static_inventory += using + + using = new /obj/screen/inventory/area_creator + using.icon = ui_style static_inventory += using mymob.client.screen = list() @@ -45,19 +48,24 @@ inv_slots[inv.slot_id] = inv inv.update_icon() -/datum/hud/dextrous/persistant_inventory_update() +/datum/hud/dextrous/persistent_inventory_update() if(!mymob) return var/mob/living/D = mymob if(hud_version != HUD_STYLE_NOHUD) - if(D.r_hand) - D.r_hand.screen_loc = ui_rhand - D.client.screen += D.r_hand - if(D.l_hand) - D.l_hand.screen_loc = ui_lhand - D.client.screen += D.l_hand + for(var/obj/item/I in D.held_items) + I.screen_loc = ui_hand_position(D.get_held_index_of_item(I)) + D.client.screen += I else - if(D.r_hand) - D.r_hand.screen_loc = null - if(D.l_hand) - D.l_hand.screen_loc = null + for(var/obj/item/I in D.held_items) + I.screen_loc = null + D.client.screen -= I + + +//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, ui_style2icon(client.prefs.UI_style)) + else + ..() diff --git a/code/_onclick/hud/ghost.dm b/code/_onclick/hud/ghost.dm index aa39055e94..546f0a6a02 100644 --- a/code/_onclick/hud/ghost.dm +++ b/code/_onclick/hud/ghost.dm @@ -36,7 +36,15 @@ var/mob/dead/observer/G = usr G.dead_tele() -/datum/hud/ghost/New(mob/owner) +/obj/screen/ghost/pai + name = "pAI Candidate" + icon_state = "pai" + +/obj/screen/ghost/pai/Click() + var/mob/dead/observer/G = usr + G.register_pai() + +/datum/hud/ghost/New(mob/owner, ui_style = 'icons/mob/screen_midnight.dmi') ..() var/mob/dead/observer/G = mymob if(!G.client.prefs.ghost_hud) @@ -61,14 +69,19 @@ using.screen_loc = ui_ghost_teleport static_inventory += using + using = new /obj/screen/ghost/pai() + using.screen_loc = ui_ghost_pai + static_inventory += using + /datum/hud/ghost/show_hud() var/mob/dead/observer/G = mymob mymob.client.screen = list() - if(!G.client.prefs.ghost_hud) - return - mymob.client.screen += static_inventory + create_parallax() + if(G.client.prefs.ghost_hud) + mymob.client.screen += static_inventory + /mob/dead/observer/create_mob_hud() if(client && !hud_used) - hud_used = new /datum/hud/ghost(src) + hud_used = new /datum/hud/ghost(src, ui_style2icon(client.prefs.UI_style)) diff --git a/code/_onclick/hud/guardian.dm b/code/_onclick/hud/guardian.dm index 0a9601385f..dc57c2b25c 100644 --- a/code/_onclick/hud/guardian.dm +++ b/code/_onclick/hud/guardian.dm @@ -7,11 +7,11 @@ infodisplay += healths using = new /obj/screen/guardian/Manifest() - using.screen_loc = ui_rhand + using.screen_loc = ui_hand_position(2) static_inventory += using using = new /obj/screen/guardian/Recall() - using.screen_loc = ui_lhand + using.screen_loc = ui_hand_position(1) static_inventory += using using = new owner.toggle_button_type() @@ -29,8 +29,69 @@ /mob/living/simple_animal/hostile/guardian/create_mob_hud() if(client && !hud_used) - hud_used = new /datum/hud/guardian(src) + if(dextrous) + ..() + else + hud_used = new /datum/hud/guardian(src, ui_style2icon(client.prefs.UI_style)) +/datum/hud/dextrous/guardian/New(mob/living/simple_animal/hostile/guardian/owner, ui_style = 'icons/mob/screen_midnight.dmi') //for a dextrous guardian + ..() + var/obj/screen/using + if(istype(owner, /mob/living/simple_animal/hostile/guardian/dextrous)) + var/obj/screen/inventory/inv_box + + inv_box = new /obj/screen/inventory() + inv_box.name = "internal storage" + inv_box.icon = ui_style + inv_box.icon_state = "suit_storage" + inv_box.screen_loc = ui_id + inv_box.slot_id = slot_generic_dextrous_storage + static_inventory += inv_box + + using = new /obj/screen/guardian/Communicate() + using.screen_loc = ui_sstore1 + static_inventory += using + + else + + using = new /obj/screen/guardian/Communicate() + using.screen_loc = ui_id + static_inventory += using + + healths = new /obj/screen/healths/guardian() + infodisplay += healths + + using = new /obj/screen/guardian/Manifest() + using.screen_loc = ui_belt + static_inventory += using + + using = new /obj/screen/guardian/Recall() + using.screen_loc = ui_back + static_inventory += using + + using = new owner.toggle_button_type() + using.screen_loc = ui_storage2 + static_inventory += using + + using = new /obj/screen/guardian/ToggleLight() + using.screen_loc = ui_inventory + static_inventory += using + +/datum/hud/dextrous/guardian/persistent_inventory_update() + if(!mymob) + return + if(istype(mymob, /mob/living/simple_animal/hostile/guardian/dextrous)) + var/mob/living/simple_animal/hostile/guardian/dextrous/D = mymob + + if(hud_shown) + if(D.internal_storage) + D.internal_storage.screen_loc = ui_id + D.client.screen += D.internal_storage + else + if(D.internal_storage) + D.internal_storage.screen_loc = null + + ..() /obj/screen/guardian icon = 'icons/mob/guardian.dmi' diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm index 591e47f83d..56123031d9 100644 --- a/code/_onclick/hud/hud.dm +++ b/code/_onclick/hud/hud.dm @@ -9,7 +9,7 @@ var/hud_shown = 1 //Used for the HUD toggle (F12) var/hud_version = 1 //Current displayed version of the HUD - var/inventory_shown = 1 //the inventory + var/inventory_shown = 0 //Equipped item inventory var/show_intent_icons = 0 var/hotkey_ui_hidden = 0 //This is to hide the buttons that can be used via hotkeys. (hotkeybuttons list of buttons) @@ -19,6 +19,7 @@ var/obj/screen/blobpwrdisplay var/obj/screen/alien_plasma_display + var/obj/screen/alien_queen_finder var/obj/screen/devil/soul_counter/devilsouldisplay @@ -32,12 +33,16 @@ var/obj/screen/throw_icon var/obj/screen/module_store_icon + var/list/wheels = list() //list of the wheel screen objects + var/list/static_inventory = list() //the screen objects which are static var/list/toggleable_inventory = list() //the screen objects which can be hidden var/list/obj/screen/hotkeybuttons = list() //the buttons that can be used via hotkeys var/list/infodisplay = list() //the screen objects that display mob info (health, alien plasma, etc...) var/list/screenoverlays = list() //the screen objects used as whole screen overlays (flash, damageoverlay, etc...) var/list/inv_slots[slots_amt] // /obj/screen/inventory objects, ordered by their slot ID. + var/list/hand_slots // /obj/screen/inventory/hand objects, assoc list of "[held_index]" = object + var/list/obj/screen/plane_master/plane_masters = list() // see "appearance_flags" in the ref, assoc list of "[plane]" = object var/obj/screen/movable/action_button/hide_toggle/hide_actions_toggle var/action_buttons_hidden = 0 @@ -46,10 +51,21 @@ var/obj/screen/healthdoll var/obj/screen/internals -/datum/hud/New(mob/owner) + var/ui_style_icon = 'icons/mob/screen_midnight.dmi' + +/datum/hud/New(mob/owner , ui_style = 'icons/mob/screen_midnight.dmi') mymob = owner + + ui_style_icon = ui_style + hide_actions_toggle = new - hide_actions_toggle.InitialiseIcon(mymob) + hide_actions_toggle.InitialiseIcon(src) + + hand_slots = list() + + for(var/mytype in subtypesof(/obj/screen/plane_master)) + var/obj/screen/plane_master/instance = new mytype() + plane_masters["[instance.plane]"] = instance /datum/hud/Destroy() if(mymob.hud_used == src) @@ -61,6 +77,8 @@ qdel(module_store_icon) module_store_icon = null + wheels = null //all wheels are also in static_inventory + if(static_inventory.len) for(var/thing in static_inventory) qdel(thing) @@ -96,10 +114,16 @@ lingstingdisplay = null blobpwrdisplay = null alien_plasma_display = null + alien_queen_finder = null deity_power_display = null deity_follower_display = null nightvisionicon = null + if(plane_masters.len) + for(var/thing in plane_masters) + qdel(plane_masters[thing]) + plane_masters.Cut() + if(screenoverlays.len) for(var/thing in screenoverlays) qdel(thing) @@ -112,13 +136,15 @@ hud_used = new /datum/hud(src) //Version denotes which style should be displayed. blank or 0 means "next version" -/datum/hud/proc/show_hud(version = 0) +/datum/hud/proc/show_hud(version = 0,mob/viewmob) if(!ismob(mymob)) return 0 if(!mymob.client) return 0 - mymob.client.screen = list() + var/mob/screenmob = viewmob || mymob + + screenmob.client.screen = list() var/display_hud_version = version if(!display_hud_version) //If 0 or blank, display the next hud version @@ -130,13 +156,13 @@ if(HUD_STYLE_STANDARD) //Default HUD hud_shown = 1 //Governs behavior of other procs if(static_inventory.len) - mymob.client.screen += static_inventory - if(toggleable_inventory.len && inventory_shown) - mymob.client.screen += toggleable_inventory + screenmob.client.screen += static_inventory + if(toggleable_inventory.len && screenmob.hud_used && screenmob.hud_used.inventory_shown) + screenmob.client.screen += toggleable_inventory if(hotkeybuttons.len && !hotkey_ui_hidden) - mymob.client.screen += hotkeybuttons + screenmob.client.screen += hotkeybuttons if(infodisplay.len) - mymob.client.screen += infodisplay + screenmob.client.screen += infodisplay mymob.client.screen += hide_actions_toggle @@ -146,45 +172,48 @@ if(HUD_STYLE_REDUCED) //Reduced HUD hud_shown = 0 //Governs behavior of other procs if(static_inventory.len) - mymob.client.screen -= static_inventory + screenmob.client.screen -= static_inventory if(toggleable_inventory.len) - mymob.client.screen -= toggleable_inventory + screenmob.client.screen -= toggleable_inventory if(hotkeybuttons.len) - mymob.client.screen -= hotkeybuttons + screenmob.client.screen -= hotkeybuttons if(infodisplay.len) - mymob.client.screen += infodisplay + screenmob.client.screen += infodisplay //These ones are a part of 'static_inventory', 'toggleable_inventory' or 'hotkeybuttons' but we want them to stay - if(inv_slots[slot_l_hand]) - mymob.client.screen += inv_slots[slot_l_hand] //we want the hands to be visible - if(inv_slots[slot_r_hand]) - mymob.client.screen += inv_slots[slot_r_hand] //we want the hands to be visible + for(var/h in hand_slots) + var/obj/screen/hand = hand_slots[h] + if(hand) + screenmob.client.screen += hand if(action_intent) - mymob.client.screen += action_intent //we want the intent switcher visible + screenmob.client.screen += action_intent //we want the intent switcher visible action_intent.screen_loc = ui_acti_alt //move this to the alternative position, where zone_select usually is. if(HUD_STYLE_NOHUD) //No HUD hud_shown = 0 //Governs behavior of other procs if(static_inventory.len) - mymob.client.screen -= static_inventory + screenmob.client.screen -= static_inventory if(toggleable_inventory.len) - mymob.client.screen -= toggleable_inventory + screenmob.client.screen -= toggleable_inventory if(hotkeybuttons.len) - mymob.client.screen -= hotkeybuttons + screenmob.client.screen -= hotkeybuttons if(infodisplay.len) - mymob.client.screen -= infodisplay + screenmob.client.screen -= infodisplay + if(plane_masters.len) + for(var/thing in plane_masters) + screenmob.client.screen += plane_masters[thing] hud_version = display_hud_version - persistant_inventory_update() + persistent_inventory_update(screenmob) mymob.update_action_buttons(1) reorganize_alerts() mymob.reload_fullscreen() - update_parallax_existence() + create_parallax() -/datum/hud/human/show_hud(version = 0) +/datum/hud/human/show_hud(version = 0,mob/viewmob) ..() - hidden_inventory_update() + hidden_inventory_update(viewmob) /datum/hud/robot/show_hud(version = 0) ..() @@ -193,8 +222,19 @@ /datum/hud/proc/hidden_inventory_update() return -/datum/hud/proc/persistant_inventory_update() - return +/datum/hud/proc/persistent_inventory_update(mob/viewer) + if(!mymob) + return + var/mob/living/L = mymob + + var/mob/screenmob = viewer || L + + for(var/X in wheels) + var/obj/screen/wheel/W = X + if(W.toggled) + screenmob.client.screen |= W.buttons_list + else + screenmob.client.screen -= W.buttons_list //Triggered when F12 is pressed (Unless someone changed something in the DMF) /mob/verb/button_pressed_F12() @@ -206,3 +246,35 @@ usr << "Switched HUD mode. Press F12 to toggle." else usr << "This mob type does not use a HUD." + + +//(re)builds the hand ui slots, throwing away old ones +//not really worth jugglying existing ones so we just scrap+rebuild +//9/10 this is only called once per mob and only for 2 hands +/datum/hud/proc/build_hand_slots(ui_style = 'icons/mob/screen_midnight.dmi') + for(var/h in hand_slots) + var/obj/screen/inventory/hand/H = hand_slots[h] + if(H) + static_inventory -= H + hand_slots = list() + var/obj/screen/inventory/hand/hand_box + for(var/i in 1 to mymob.held_items.len) + hand_box = new /obj/screen/inventory/hand() + hand_box.name = mymob.get_held_index_name(i) + hand_box.icon = ui_style + hand_box.icon_state = "hand_[mymob.held_index_to_dir(i)]" + hand_box.screen_loc = ui_hand_position(i) + hand_box.held_index = i + hand_slots["[i]"] = hand_box + hand_box.hud = src + static_inventory += hand_box + hand_box.update_icon() + + var/i = 1 + for(var/obj/screen/swap_hand/SH in static_inventory) + SH.screen_loc = ui_swaphand_position(mymob,!(i % 2) ? 2: 1) + i++ + for(var/obj/screen/human/equip/E in static_inventory) + E.screen_loc = ui_equip_position(mymob) + if(mymob.hud_used) + show_hud(HUD_STYLE_STANDARD,mymob) \ No newline at end of file diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm index 9fa64a77ff..8ec31271be 100644 --- a/code/_onclick/hud/human.dm +++ b/code/_onclick/hud/human.dm @@ -6,14 +6,22 @@ icon_state = "toggle" /obj/screen/human/toggle/Click() - if(usr.hud_used.inventory_shown) + + var/mob/targetmob = usr + + if(isobserver(usr)) + if(ishuman(usr.client.eye) && (usr.client.eye != usr)) + var/mob/M = usr.client.eye + targetmob = M + + if(usr.hud_used.inventory_shown && targetmob.hud_used) usr.hud_used.inventory_shown = 0 - usr.client.screen -= usr.hud_used.toggleable_inventory + usr.client.screen -= targetmob.hud_used.toggleable_inventory else usr.hud_used.inventory_shown = 1 - usr.client.screen += usr.hud_used.toggleable_inventory + usr.client.screen += targetmob.hud_used.toggleable_inventory - usr.hud_used.hidden_inventory_update() + targetmob.hud_used.hidden_inventory_update(usr) /obj/screen/human/equip name = "equip" @@ -62,6 +70,8 @@ screen_loc = ui_lingstingdisplay /obj/screen/ling/sting/Click() + if(isobserver(usr)) + return var/mob/living/carbon/U = usr U.unset_sting() @@ -77,7 +87,6 @@ /datum/hud/human/New(mob/living/carbon/human/owner, ui_style = 'icons/mob/screen_midnight.dmi') ..() - var/obj/screen/using var/obj/screen/inventory/inv_box @@ -85,6 +94,15 @@ using.icon = ui_style static_inventory += using + using = new/obj/screen/wheel/talk + using.icon = ui_style + wheels += using + static_inventory += using + + using = new /obj/screen/inventory/area_creator + using.icon = ui_style + static_inventory += using + using = new /obj/screen/act_intent() using.icon_state = mymob.a_intent static_inventory += using @@ -92,7 +110,7 @@ using = new /obj/screen/mov_intent() using.icon = ui_style - using.icon_state = (mymob.m_intent == "run" ? "running" : "walking") + using.icon_state = (mymob.m_intent == MOVE_INTENT_RUN ? "running" : "walking") using.screen_loc = ui_movi static_inventory += using @@ -119,32 +137,18 @@ inv_box.screen_loc = ui_oclothing toggleable_inventory += inv_box - inv_box = new /obj/screen/inventory/hand() - inv_box.name = "right hand" - inv_box.icon = ui_style - inv_box.icon_state = "hand_r" - inv_box.screen_loc = ui_rhand - inv_box.slot_id = slot_r_hand - static_inventory += inv_box - - inv_box = new /obj/screen/inventory/hand() - inv_box.name = "left hand" - inv_box.icon = ui_style - inv_box.icon_state = "hand_l" - inv_box.screen_loc = ui_lhand - inv_box.slot_id = slot_l_hand - static_inventory += inv_box + build_hand_slots(ui_style) using = new /obj/screen/swap_hand() using.icon = ui_style using.icon_state = "swap_1" - using.screen_loc = ui_swaphand1 + using.screen_loc = ui_swaphand_position(owner,1) static_inventory += using using = new /obj/screen/swap_hand() using.icon = ui_style using.icon_state = "swap_2" - using.screen_loc = ui_swaphand2 + using.screen_loc = ui_swaphand_position(owner,2) static_inventory += using inv_box = new /obj/screen/inventory() @@ -165,6 +169,15 @@ inv_box.slot_id = slot_wear_mask toggleable_inventory += inv_box + inv_box = new /obj/screen/inventory() + inv_box.name = "neck" + inv_box.icon = ui_style + inv_box.icon_state = "neck" +// inv_box.icon_full = "template" + inv_box.screen_loc = ui_neck + inv_box.slot_id = slot_neck + toggleable_inventory += inv_box + inv_box = new /obj/screen/inventory() inv_box.name = "back" inv_box.icon = ui_style @@ -213,7 +226,7 @@ using = new /obj/screen/human/equip() using.icon = ui_style - using.screen_loc = ui_equip + using.screen_loc = ui_equip_position(mymob) static_inventory += using inv_box = new /obj/screen/inventory() @@ -304,102 +317,111 @@ zone_select.update_icon(mymob) static_inventory += zone_select - inventory_shown = 0 - for(var/obj/screen/inventory/inv in (static_inventory + toggleable_inventory)) if(inv.slot_id) inv.hud = src inv_slots[inv.slot_id] = inv inv.update_icon() -/datum/hud/human/hidden_inventory_update() +/datum/hud/human/hidden_inventory_update(mob/viewer) if(!mymob) return var/mob/living/carbon/human/H = mymob - if(inventory_shown && hud_shown) + + var/mob/screenmob = viewer || H + + if(screenmob.hud_used.inventory_shown && screenmob.hud_used.hud_shown) if(H.shoes) H.shoes.screen_loc = ui_shoes - H.client.screen += H.shoes + screenmob.client.screen += H.shoes if(H.gloves) H.gloves.screen_loc = ui_gloves - H.client.screen += H.gloves + screenmob.client.screen += H.gloves if(H.ears) H.ears.screen_loc = ui_ears - H.client.screen += H.ears + screenmob.client.screen += H.ears if(H.glasses) H.glasses.screen_loc = ui_glasses - H.client.screen += H.glasses + screenmob.client.screen += H.glasses if(H.w_uniform) H.w_uniform.screen_loc = ui_iclothing - H.client.screen += H.w_uniform + screenmob.client.screen += H.w_uniform if(H.wear_suit) H.wear_suit.screen_loc = ui_oclothing - H.client.screen += H.wear_suit + screenmob.client.screen += H.wear_suit if(H.wear_mask) H.wear_mask.screen_loc = ui_mask - H.client.screen += H.wear_mask + screenmob.client.screen += H.wear_mask + if(H.wear_neck) + H.wear_neck.screen_loc = ui_neck + screenmob.client.screen += H.wear_neck if(H.head) H.head.screen_loc = ui_head - H.client.screen += H.head + screenmob.client.screen += H.head else - if(H.shoes) H.shoes.screen_loc = null - if(H.gloves) H.gloves.screen_loc = null - if(H.ears) H.ears.screen_loc = null - if(H.glasses) H.glasses.screen_loc = null - if(H.w_uniform) H.w_uniform.screen_loc = null - if(H.wear_suit) H.wear_suit.screen_loc = null - if(H.wear_mask) H.wear_mask.screen_loc = null - if(H.head) H.head.screen_loc = null + if(H.shoes) screenmob.client.screen -= H.shoes + if(H.gloves) screenmob.client.screen -= H.gloves + if(H.ears) screenmob.client.screen -= H.ears + if(H.glasses) screenmob.client.screen -= H.glasses + if(H.w_uniform) screenmob.client.screen -= H.w_uniform + if(H.wear_suit) screenmob.client.screen -= H.wear_suit + if(H.wear_mask) screenmob.client.screen -= H.wear_mask + if(H.wear_neck) screenmob.client.screen -= H.wear_neck + if(H.head) screenmob.client.screen -= H.head -/datum/hud/human/persistant_inventory_update() + + +/datum/hud/human/persistent_inventory_update(mob/viewer) if(!mymob) return + ..() var/mob/living/carbon/human/H = mymob - if(hud_shown) - if(H.s_store) - H.s_store.screen_loc = ui_sstore1 - H.client.screen += H.s_store - if(H.wear_id) - H.wear_id.screen_loc = ui_id - H.client.screen += H.wear_id - if(H.belt) - H.belt.screen_loc = ui_belt - H.client.screen += H.belt - if(H.back) - H.back.screen_loc = ui_back - H.client.screen += H.back - if(H.l_store) - H.l_store.screen_loc = ui_storage1 - H.client.screen += H.l_store - if(H.r_store) - H.r_store.screen_loc = ui_storage2 - H.client.screen += H.r_store - else - if(H.s_store) - H.s_store.screen_loc = null - if(H.wear_id) - H.wear_id.screen_loc = null - if(H.belt) - H.belt.screen_loc = null - if(H.back) - H.back.screen_loc = null - if(H.l_store) - H.l_store.screen_loc = null - if(H.r_store) - H.r_store.screen_loc = null + + var/mob/screenmob = viewer || H + + if(screenmob.hud_used) + if(screenmob.hud_used.hud_shown) + if(H.s_store) + H.s_store.screen_loc = ui_sstore1 + screenmob.client.screen += H.s_store + if(H.wear_id) + H.wear_id.screen_loc = ui_id + screenmob.client.screen += H.wear_id + if(H.belt) + H.belt.screen_loc = ui_belt + screenmob.client.screen += H.belt + if(H.back) + H.back.screen_loc = ui_back + screenmob.client.screen += H.back + if(H.l_store) + H.l_store.screen_loc = ui_storage1 + screenmob.client.screen += H.l_store + if(H.r_store) + H.r_store.screen_loc = ui_storage2 + screenmob.client.screen += H.r_store + else + if(H.s_store) + screenmob.client.screen -= H.s_store + if(H.wear_id) + screenmob.client.screen -= H.wear_id + if(H.belt) + screenmob.client.screen -= H.belt + if(H.back) + screenmob.client.screen -= H.back + if(H.l_store) + screenmob.client.screen -= H.l_store + if(H.r_store) + screenmob.client.screen -= H.r_store if(hud_version != HUD_STYLE_NOHUD) - if(H.r_hand) - H.r_hand.screen_loc = ui_rhand - H.client.screen += H.r_hand - if(H.l_hand) - H.l_hand.screen_loc = ui_lhand - H.client.screen += H.l_hand + for(var/obj/item/I in H.held_items) + I.screen_loc = ui_hand_position(H.get_held_index_of_item(I)) + screenmob.client.screen += I else - if(H.r_hand) - H.r_hand.screen_loc = null - if(H.l_hand) - H.l_hand.screen_loc = null + for(var/obj/item/I in H.held_items) + I.screen_loc = null + screenmob.client.screen -= I + /mob/living/carbon/human/verb/toggle_hotkey_verbs() set category = "OOC" diff --git a/code/_onclick/hud/monkey.dm b/code/_onclick/hud/monkey.dm index dea167cd6c..f0f8f7689e 100644 --- a/code/_onclick/hud/monkey.dm +++ b/code/_onclick/hud/monkey.dm @@ -12,41 +12,32 @@ using = new /obj/screen/mov_intent() using.icon = ui_style - using.icon_state = (mymob.m_intent == "run" ? "running" : "walking") + using.icon_state = (mymob.m_intent == MOVE_INTENT_RUN ? "running" : "walking") using.screen_loc = ui_movi static_inventory += using + using = new/obj/screen/wheel/talk + using.icon = ui_style + wheels += using + static_inventory += using + using = new /obj/screen/drop() using.icon = ui_style using.screen_loc = ui_drop_throw static_inventory += using - inv_box = new /obj/screen/inventory/hand() - inv_box.name = "right hand" - inv_box.icon = ui_style - inv_box.icon_state = "hand_r" - inv_box.screen_loc = ui_rhand - inv_box.slot_id = slot_r_hand - static_inventory += inv_box - - inv_box = new /obj/screen/inventory/hand() - inv_box.name = "left hand" - inv_box.icon = ui_style - inv_box.icon_state = "hand_l" - inv_box.screen_loc = ui_lhand - inv_box.slot_id = slot_l_hand - static_inventory += inv_box + build_hand_slots(ui_style) using = new /obj/screen/swap_hand() using.icon = ui_style using.icon_state = "swap_1_m" //extra wide! - using.screen_loc = ui_swaphand1 + using.screen_loc = ui_swaphand_position(owner,1) static_inventory += using using = new /obj/screen/swap_hand() using.icon = ui_style using.icon_state = "swap_2" - using.screen_loc = ui_swaphand2 + using.screen_loc = ui_swaphand_position(owner,2) static_inventory += using inv_box = new /obj/screen/inventory() @@ -58,6 +49,15 @@ inv_box.slot_id = slot_wear_mask static_inventory += inv_box + inv_box = new /obj/screen/inventory() + inv_box.name = "neck" + inv_box.icon = ui_style + inv_box.icon_state = "neck" +// inv_box.icon_full = "template" + inv_box.screen_loc = ui_monkey_neck + inv_box.slot_id = slot_neck + static_inventory += inv_box + inv_box = new /obj/screen/inventory() inv_box.name = "head" inv_box.icon = ui_style @@ -118,7 +118,7 @@ inv_slots[inv.slot_id] = inv inv.update_icon() -/datum/hud/monkey/persistant_inventory_update() +/datum/hud/monkey/persistent_inventory_update() if(!mymob) return var/mob/living/carbon/monkey/M = mymob @@ -130,6 +130,9 @@ if(M.wear_mask) M.wear_mask.screen_loc = ui_monkey_mask M.client.screen += M.wear_mask + if(M.wear_neck) + M.wear_neck.screen_loc = ui_monkey_neck + M.client.screen += M.wear_neck if(M.head) M.head.screen_loc = ui_monkey_head M.client.screen += M.head @@ -142,17 +145,13 @@ M.head.screen_loc = null if(hud_version != HUD_STYLE_NOHUD) - if(M.r_hand) - M.r_hand.screen_loc = ui_rhand - M.client.screen += M.r_hand - if(M.l_hand) - M.l_hand.screen_loc = ui_lhand - M.client.screen += M.l_hand + for(var/obj/item/I in M.held_items) + I.screen_loc = ui_hand_position(M.get_held_index_of_item(I)) + M.client.screen += I else - if(M.r_hand) - M.r_hand.screen_loc = null - if(M.l_hand) - M.l_hand.screen_loc = null + 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) diff --git a/code/_onclick/hud/other_mobs.dm b/code/_onclick/hud/other_mobs.dm index 8cd1a12233..fa2a4ebf31 100644 --- a/code/_onclick/hud/other_mobs.dm +++ b/code/_onclick/hud/other_mobs.dm @@ -7,35 +7,7 @@ mymob.client.screen = list() mymob.client.screen += mymob.client.void -/mob/living/carbon/brain/create_mob_hud() +/mob/living/brain/create_mob_hud() if(client && !hud_used) hud_used = new /datum/hud/brain(src) -/datum/hud/hog_god/New(mob/owner) - ..() - healths = new /obj/screen/healths/deity() - infodisplay += healths - - deity_power_display = new /obj/screen/deity_power_display() - infodisplay += deity_power_display - - deity_follower_display = new /obj/screen/deity_follower_display() - infodisplay += deity_follower_display - - -/mob/camera/god/create_mob_hud() - if(client && !hud_used) - hud_used = new /datum/hud/hog_god(src) - -/obj/screen/deity_power_display - name = "Faith" - icon_state = "deity_power" - screen_loc = ui_deitypower - layer = HUD_LAYER - -/obj/screen/deity_follower_display - name = "Followers" - icon_state = "deity_followers" - screen_loc = ui_deityfollowers - layer = HUD_LAYER - diff --git a/code/_onclick/hud/parallax.dm b/code/_onclick/hud/parallax.dm index 7f0e283dde..3a09fabab7 100644 --- a/code/_onclick/hud/parallax.dm +++ b/code/_onclick/hud/parallax.dm @@ -1,254 +1,268 @@ -/* - * This file handles all parallax-related business once the parallax itself is initialized with the rest of the HUD - */ -#define PARALLAX_IMAGE_WIDTH 15 -#define PARALLAX_IMAGE_TILES (PARALLAX_IMAGE_WIDTH**2) -var/list/parallax_on_clients = list() +/client + var/list/parallax_layers + var/list/parallax_layers_cached + var/static/list/parallax_static_layers_tail = newlist(/obj/screen/parallax_pmaster, /obj/screen/parallax_space_whitifier) + var/atom/movable/movingmob + var/turf/previous_turf + var/dont_animate_parallax //world.time of when we can state animate()ing parallax again + var/last_parallax_shift //world.time of last update + var/parallax_throttle = 0 //ds between updates + var/parallax_movedir = 0 + var/parallax_layers_max = 3 + var/parallax_animate_timer -/obj/screen/parallax - var/base_offset_x = 0 - var/base_offset_y = 0 - mouse_opacity = 0 - icon = 'icons/turf/space.dmi' - icon_state = "blank" - name = "space parallax" - screen_loc = "CENTER,CENTER" - blend_mode = BLEND_ADD - layer = AREA_LAYER - plane = PLANE_SPACE_PARALLAX - var/parallax_speed = 0 - -/obj/screen/plane_master - appearance_flags = PLANE_MASTER - screen_loc = "CENTER,CENTER" - -/obj/screen/plane_master/parallax_master - plane = PLANE_SPACE_PARALLAX - blend_mode = BLEND_MULTIPLY - color = list( - 1,0,0,0, - 0,1,0,0, - 0,0,1,0, - 0,0,0,0, - 0,0,0,1) - -/obj/screen/plane_master/parallax_spacemaster //Turns space white, causing the parallax to only show in areas with opacity. Somehow - plane = PLANE_SPACE_BACKGROUND - color = list( - 0,0,0,0, - 0,0,0,0, - 0,0,0,0, - 1,1,1,1, - 0,0,0,0) - -/obj/screen/plane_master/parallax_spacemaster/New() - ..() - overlays += image(icon = 'icons/mob/screen1.dmi', icon_state = "blank") - -/obj/screen/plane_master/parallax_dustmaster - plane = PLANE_SPACE_DUST - color = list(0,0,0,0) - -/datum/hud/proc/update_parallax_existence() - if(!parallax_initialized) - return - initialize_parallax() - update_parallax() - update_parallax_values() - -/datum/hud/proc/initialize_parallax() +/datum/hud/proc/create_parallax() var/client/C = mymob.client + if (!apply_parallax_pref()) + return - if(!C.parallax_master) - C.parallax_master = PoolOrNew(/obj/screen/plane_master/parallax_master) - if(!C.parallax_spacemaster) - C.parallax_spacemaster = PoolOrNew(/obj/screen/plane_master/parallax_spacemaster) - if(!C.parallax_dustmaster) - C.parallax_dustmaster = PoolOrNew(/obj/screen/plane_master/parallax_dustmaster) + if(!length(C.parallax_layers_cached)) + C.parallax_layers_cached = list() + C.parallax_layers_cached += new /obj/screen/parallax_layer/layer_1(null, C.view) + C.parallax_layers_cached += new /obj/screen/parallax_layer/layer_2(null, C.view) - if(!C.parallax.len) - for(var/obj/screen/parallax/bgobj in parallax_icon) - var/obj/screen/parallax/parallax_layer = PoolOrNew(/obj/screen/parallax) - parallax_layer.appearance = bgobj.appearance - parallax_layer.base_offset_x = bgobj.base_offset_x - parallax_layer.base_offset_y = bgobj.base_offset_y - parallax_layer.parallax_speed = bgobj.parallax_speed - parallax_layer.screen_loc = bgobj.screen_loc - C.parallax += parallax_layer - if(bgobj.parallax_speed) - C.parallax_movable += parallax_layer + C.parallax_layers = C.parallax_layers_cached.Copy() - if(!C.parallax_offset.len) - C.parallax_offset["horizontal"] = 0 - C.parallax_offset["vertical"] = 0 + if (length(C.parallax_layers) > C.parallax_layers_max) + C.parallax_layers.len = C.parallax_layers_max - C.screen |= C.parallax_dustmaster + C.screen |= (C.parallax_layers + C.parallax_static_layers_tail) + +/datum/hud/proc/remove_parallax() + var/client/C = mymob.client + C.screen -= (C.parallax_layers_cached + C.parallax_static_layers_tail) + C.parallax_layers = null + +/datum/hud/proc/apply_parallax_pref() + var/client/C = mymob.client + switch(C.prefs.parallax) + if (PARALLAX_INSANE) + C.parallax_throttle = FALSE + C.parallax_layers_max = 4 + return TRUE + + if (PARALLAX_MED) + C.parallax_throttle = PARALLAX_DELAY_MED + C.parallax_layers_max = 2 + return TRUE + + if (PARALLAX_LOW) + C.parallax_throttle = PARALLAX_DELAY_LOW + C.parallax_layers_max = 1 + return TRUE + + if (PARALLAX_DISABLE) + return FALSE + + else + C.parallax_throttle = PARALLAX_DELAY_DEFAULT + C.parallax_layers_max = 3 + return TRUE + +/datum/hud/proc/update_parallax_pref() + remove_parallax() + create_parallax() + +// This sets which way the current shuttle is moving (returns true if the shuttle has stopped moving so the caller can append their animation) +/datum/hud/proc/set_parallax_movedir(new_parallax_movedir) + . = FALSE + var/client/C = mymob.client + if(new_parallax_movedir == C.parallax_movedir) + return + var/animatedir = new_parallax_movedir + if(new_parallax_movedir == FALSE) + var/animate_time = 0 + for(var/thing in C.parallax_layers) + var/obj/screen/parallax_layer/L = thing + L.icon_state = initial(L.icon_state) + L.update_o(C.view) + var/T = PARALLAX_LOOP_TIME / L.speed + if (T > animate_time) + animate_time = T + C.dont_animate_parallax = world.time + min(animate_time, PARALLAX_LOOP_TIME) + animatedir = C.parallax_movedir + + var/matrix/newtransform + switch(animatedir) + if(NORTH) + newtransform = matrix(1, 0, 0, 0, 1, 480) + if(SOUTH) + newtransform = matrix(1, 0, 0, 0, 1,-480) + if(EAST) + newtransform = matrix(1, 0, 480, 0, 1, 0) + if(WEST) + newtransform = matrix(1, 0,-480, 0, 1, 0) + + var/shortesttimer + for(var/thing in C.parallax_layers) + var/obj/screen/parallax_layer/L = thing + + var/T = PARALLAX_LOOP_TIME / L.speed + if (isnull(shortesttimer)) + shortesttimer = T + if (T < shortesttimer) + shortesttimer = T + L.transform = newtransform + animate(L, transform = matrix(), time = T, easing = QUAD_EASING | (new_parallax_movedir ? EASE_IN : EASE_OUT), flags = ANIMATION_END_NOW) + if (new_parallax_movedir) + L.transform = newtransform + animate(transform = matrix(), time = T) //queue up another animate so lag doesn't create a shutter + + C.parallax_movedir = new_parallax_movedir + if (C.parallax_animate_timer) + deltimer(C.parallax_animate_timer) + C.parallax_animate_timer = addtimer(src, .update_parallax_motionblur, min(shortesttimer, PARALLAX_LOOP_TIME), TIMER_NORMAL, C, animatedir, new_parallax_movedir, newtransform) + +/datum/hud/proc/update_parallax_motionblur(client/C, animatedir, new_parallax_movedir, matrix/newtransform) + C.parallax_animate_timer = FALSE + for(var/thing in C.parallax_layers) + var/obj/screen/parallax_layer/L = thing + if (!new_parallax_movedir) + animate(L) + continue + + var/newstate = initial(L.icon_state) + if (animatedir) + if(animatedir == NORTH || animatedir == SOUTH) + newstate += "_vertical" + else + newstate += "_horizontal" + + var/T = PARALLAX_LOOP_TIME / L.speed + + if (newstate in icon_states(L.icon)) + L.icon_state = newstate + L.update_o(C.view) + + L.transform = newtransform + + animate(L, transform = matrix(), time = T, loop = -1, flags = ANIMATION_END_NOW) /datum/hud/proc/update_parallax() var/client/C = mymob.client - if(C.prefs.space_parallax) - parallax_on_clients |= C - for(var/obj/screen/parallax/bgobj in C.parallax) - C.screen |= bgobj - C.screen |= C.parallax_master - C.screen |= C.parallax_spacemaster - if(C.prefs.space_dust) - C.parallax_dustmaster.color = list( - 1,0,0,0, - 0,1,0,0, - 0,0,1,0, - 0,0,0,1) - else - C.parallax_dustmaster.color = list(0,0,0,0) - else - for(var/obj/screen/parallax/bgobj in C.parallax) - C.screen -= bgobj - parallax_on_clients -= C - C.screen -= C.parallax_master - C.screen -= C.parallax_spacemaster - C.parallax_dustmaster.color = list(0,0,0,0) - -/datum/hud/proc/update_parallax_values() - var/client/C = mymob.client - if(!parallax_initialized) - return - - if(!(locate(/turf/open/space) in trange(C.view,get_turf(C.eye)))) - return - - //ACTUALLY MOVING THE PARALLAX var/turf/posobj = get_turf(C.eye) + var/area/areaobj = posobj.loc + // Update the movement direction of the parallax if necessary (for shuttles) + set_parallax_movedir(areaobj.parallax_movedir) + + var/force if(!C.previous_turf || (C.previous_turf.z != posobj.z)) C.previous_turf = posobj + force = TRUE + + if (!force && world.time < C.last_parallax_shift+C.parallax_throttle) + return //Doing it this way prevents parallax layers from "jumping" when you change Z-Levels. - var/offsetx = C.parallax_offset["horizontal"] + posobj.x - C.previous_turf.x - var/offsety = C.parallax_offset["vertical"] + posobj.y - C.previous_turf.y - C.parallax_offset["horizontal"] = offsetx - C.parallax_offset["vertical"] = offsety + var/offset_x = posobj.x - C.previous_turf.x + var/offset_y = posobj.y - C.previous_turf.y + if(!offset_x && !offset_y && !force) + return + + var/last_delay = world.time - C.last_parallax_shift + last_delay = min(last_delay, C.parallax_throttle) C.previous_turf = posobj + C.last_parallax_shift = world.time - var/maxoffset = 480 //480 = (15 tiles * 32 icon_size * 3 grid size / 2) - (15 tiles * 32 icon size / 2) for centering - var/minoffset = -960 //960 = (15 tiles * 32 icon_size * 3 grid size / 2) + (15 tiles * 32 icon size / 2) for centering + for(var/thing in C.parallax_layers) + var/obj/screen/parallax_layer/L = thing + if (L.view_sized != C.view) + L.update_o(C.view) + var/change_x = offset_x * L.speed + L.offset_x -= change_x + var/change_y = offset_y * L.speed + L.offset_y -= change_y + if(L.offset_x > 240) + L.offset_x -= 480 + if(L.offset_x < -240) + L.offset_x += 480 + if(L.offset_y > 240) + L.offset_y -= 480 + if(L.offset_y < -240) + L.offset_y += 480 - for(var/obj/screen/parallax/bgobj in C.parallax_movable) - var/accumulated_offset_x = bgobj.base_offset_x - round(offsetx * bgobj.parallax_speed * C.prefs.parallax_speed) - var/accumulated_offset_y = bgobj.base_offset_y - round(offsety * bgobj.parallax_speed * C.prefs.parallax_speed) - if(accumulated_offset_x > maxoffset) - accumulated_offset_x -= 1440 //3x3 grid, 15 tiles * 32 icon_size * 3 grid size - if(accumulated_offset_x < minoffset) - accumulated_offset_x += 1440 + if(!areaobj.parallax_movedir && C.dont_animate_parallax <= world.time && (offset_x || offset_y) && abs(offset_x) <= max(C.parallax_throttle/world.tick_lag+1,1) && abs(offset_y) <= max(C.parallax_throttle/world.tick_lag+1,1) && (round(abs(change_x)) > 1 || round(abs(change_y)) > 1)) + L.transform = matrix(1, 0, offset_x*L.speed, 0, 1, offset_y*L.speed) + animate(L, transform=matrix(), time = last_delay) - if(accumulated_offset_y > maxoffset) - accumulated_offset_y -= 1440 - if(accumulated_offset_y < minoffset) - accumulated_offset_y += 1440 + L.screen_loc = "CENTER-7:[round(L.offset_x,1)],CENTER-7:[round(L.offset_y,1)]" - bgobj.screen_loc = "CENTER:[accumulated_offset_x],CENTER:[accumulated_offset_y]" +/atom/movable/proc/update_parallax_contents() + if(length(client_mobs_in_contents)) + for(var/thing in client_mobs_in_contents) + var/mob/M = thing + if(M && M.client && M.hud_used && length(M.client.parallax_layers)) + M.hud_used.update_parallax() -//Parallax generation code below +/obj/screen/parallax_layer + icon = 'icons/effects/parallax.dmi' + var/speed = 1 + var/offset_x = 0 + var/offset_y = 0 + var/view_sized + blend_mode = BLEND_ADD + plane = PLANE_SPACE_PARALLAX + screen_loc = "CENTER-7,CENTER-7" + mouse_opacity = 0 -#define PARALLAX4_ICON_NUMBER 20 -#define PARALLAX3_ICON_NUMBER 14 -#define PARALLAX2_ICON_NUMBER 10 -/datum/subsystem/parallax/proc/create_global_parallax_icons() - var/list/plane1 = list() - var/list/plane2 = list() - var/list/plane3 = list() - var/list/pixel_x = list() - var/list/pixel_y = list() - var/index = 1 - for(var/i = 0 to (PARALLAX_IMAGE_TILES-1)) - for(var/j = 1 to 9) - plane1 += rand(1,26) - plane2 += rand(1,26) - plane3 += rand(1,26) - pixel_x += world.icon_size * (i%PARALLAX_IMAGE_WIDTH) - pixel_y += world.icon_size * round(i/PARALLAX_IMAGE_WIDTH) +/obj/screen/parallax_layer/New(view) + ..() + if (!view) + view = world.view + update_o(view) - for(var/i in 0 to 8) - var/obj/screen/parallax/parallax_layer = PoolOrNew(/obj/screen/parallax) +/obj/screen/parallax_layer/proc/update_o(view) + if (!view) + view = world.view + var/list/new_overlays = list() + var/count = Ceiling(view/(480/world.icon_size))+1 + for(var/x in -count to count) + for(var/y in -count to count) + if(x == 0 && y == 0) + continue + var/image/I = image(icon, null, icon_state) + I.transform = matrix(1, 0, x*480, 0, 1, y*480) + new_overlays += I - var/list/L = list() - for(var/j in 1 to PARALLAX_IMAGE_TILES) - if(plane1[j+i*PARALLAX_IMAGE_TILES] <= PARALLAX4_ICON_NUMBER) - var/image/I = image('icons/turf/space_parallax4.dmi',"[plane1[j+i*PARALLAX_IMAGE_TILES]]") - I.pixel_x = pixel_x[j] - I.pixel_y = pixel_y[j] - L += I + overlays = new_overlays + view_sized = view - parallax_layer.overlays = L - parallax_layer.parallax_speed = 0 - parallax_layer.calibrate_parallax(i+1) - parallax_icon[index] = parallax_layer - index++ +/obj/screen/parallax_layer/layer_1 + icon_state = "layer1" + speed = 0.6 + layer = 1 - for(var/i in 0 to 8) - var/obj/screen/parallax/parallax_layer = PoolOrNew(/obj/screen/parallax) +/obj/screen/parallax_layer/layer_2 + icon_state = "layer2" + speed = 1 + layer = 2 - var/list/L = list() - for(var/j in 1 to PARALLAX_IMAGE_TILES) - if(plane2[j+i*PARALLAX_IMAGE_TILES] <= PARALLAX3_ICON_NUMBER) - var/image/I = image('icons/turf/space_parallax3.dmi',"[plane2[j+i*PARALLAX_IMAGE_TILES]]") - I.pixel_x = pixel_x[j] - I.pixel_y = pixel_y[j] - L += I +/obj/screen/parallax_pmaster + appearance_flags = PLANE_MASTER + plane = PLANE_SPACE_PARALLAX + blend_mode = BLEND_MULTIPLY + mouse_opacity = FALSE + screen_loc = "CENTER-7,CENTER-7" - parallax_layer.overlays = L - parallax_layer.parallax_speed = 0.5 - parallax_layer.calibrate_parallax(i+1) - parallax_icon[index] = parallax_layer - index++ +/obj/screen/parallax_space_whitifier + appearance_flags = PLANE_MASTER + plane = PLANE_SPACE + color = list( + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 1, 1, 1, 1, + 0, 0, 0, 0 + ) + screen_loc = "CENTER-7,CENTER-7" - for(var/i in 0 to 8) - var/obj/screen/parallax/parallax_layer = PoolOrNew(/obj/screen/parallax) - var/list/L = list() - for(var/j in 1 to PARALLAX_IMAGE_TILES) - if(plane3[j+i*PARALLAX_IMAGE_TILES] <= PARALLAX2_ICON_NUMBER) - var/image/I = image('icons/turf/space_parallax2.dmi',"[plane3[j+i*PARALLAX_IMAGE_TILES]]") - I.pixel_x = pixel_x[j] - I.pixel_y = pixel_y[j] - L += I - parallax_layer.overlays = L - parallax_layer.parallax_speed = 1 - parallax_layer.calibrate_parallax(i+1) - parallax_icon[index] = parallax_layer - index++ - - parallax_initialized = 1 - -/obj/screen/parallax/proc/calibrate_parallax(var/i) - if(!i) return - - /* Placement of screen objects - 1 2 3 - 4 5 6 - 7 8 9 - */ - base_offset_x = -PARALLAX_IMAGE_WIDTH*world.icon_size/2 - base_offset_y = -PARALLAX_IMAGE_WIDTH*world.icon_size/2 - - switch(i) - if(1,4,7) - base_offset_x -= world.icon_size*PARALLAX_IMAGE_WIDTH - if(3,6,9) - base_offset_x += world.icon_size*PARALLAX_IMAGE_WIDTH - switch(i) - if(1,2,3) - base_offset_y += world.icon_size*PARALLAX_IMAGE_WIDTH - if(7,8,9) - base_offset_y -= world.icon_size*PARALLAX_IMAGE_WIDTH - - screen_loc = "CENTER:[base_offset_x],CENTER:[base_offset_y]" - -#undef PARALLAX4_ICON_NUMBER -#undef PARALLAX3_ICON_NUMBER -#undef PARALLAX2_ICON_NUMBER -#undef PARALLAX_IMAGE_WIDTH -#undef PARALLAX_IMAGE_TILES +#undef LOOP_NONE +#undef LOOP_NORMAL +#undef LOOP_REVERSE +#undef LOOP_TIME \ No newline at end of file diff --git a/code/_onclick/hud/plane_master.dm b/code/_onclick/hud/plane_master.dm new file mode 100644 index 0000000000..eda44bda06 --- /dev/null +++ b/code/_onclick/hud/plane_master.dm @@ -0,0 +1,28 @@ +/obj/screen/plane_master + screen_loc = "CENTER" + icon_state = "blank" + appearance_flags = PLANE_MASTER|NO_CLIENT_COLOR + blend_mode = BLEND_OVERLAY + +/obj/screen/plane_master/New() + if(blend_mode == BLEND_MULTIPLY) + //What is this? Read http://www.byond.com/forum/?post=2141928 + var/image/backdrop = image('icons/mob/screen_gen.dmi', "black") + backdrop.transform = matrix(200, 0, 0, 0, 200, 0) + backdrop.layer = BACKGROUND_LAYER + backdrop.blend_mode = BLEND_OVERLAY + overlays += backdrop + ..() + +/obj/screen/plane_master/game_world + name = "game world plane master" + plane = GAME_PLANE + blend_mode = BLEND_OVERLAY + +/obj/screen/plane_master/lighting + name = "lighting plane master" + plane = LIGHTING_PLANE + blend_mode = BLEND_OVERLAY +// blend_mode = BLEND_MULTIPLY +// color = list(1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,0, 0.1,0.1,0.1,0) + mouse_opacity = 0 diff --git a/code/_onclick/hud/robot.dm b/code/_onclick/hud/robot.dm index 5a5b7c200e..4c4764d3a5 100644 --- a/code/_onclick/hud/robot.dm +++ b/code/_onclick/hud/robot.dm @@ -5,9 +5,15 @@ name = "cyborg module" icon_state = "nomod" +/obj/screen/robot/Click() + if(isobserver(usr)) + return 1 + /obj/screen/robot/module/Click() + if(..()) + return var/mob/living/silicon/robot/R = usr - if(R.module) + if(R.module.type != /obj/item/weapon/robot_module) R.hud_used.toggle_show_robot_modules() return 1 R.pick_module() @@ -17,6 +23,8 @@ icon_state = "inv1" /obj/screen/robot/module1/Click() + if(..()) + return var/mob/living/silicon/robot/R = usr R.toggle_module(1) @@ -25,6 +33,8 @@ icon_state = "inv2" /obj/screen/robot/module2/Click() + if(..()) + return var/mob/living/silicon/robot/R = usr R.toggle_module(2) @@ -33,6 +43,8 @@ icon_state = "inv3" /obj/screen/robot/module3/Click() + if(..()) + return var/mob/living/silicon/robot/R = usr R.toggle_module(3) @@ -41,6 +53,8 @@ icon_state = "radio" /obj/screen/robot/radio/Click() + if(..()) + return var/mob/living/silicon/robot/R = usr R.radio.interact(R) @@ -49,6 +63,8 @@ icon_state = "store" /obj/screen/robot/store/Click() + if(..()) + return var/mob/living/silicon/robot/R = usr R.uneq_active() @@ -57,6 +73,8 @@ icon_state = "lamp0" /obj/screen/robot/lamp/Click() + if(..()) + return var/mob/living/silicon/robot/R = usr R.control_headlamp() @@ -65,14 +83,24 @@ icon_state = "ionpulse0" /obj/screen/robot/thrusters/Click() + if(..()) + return var/mob/living/silicon/robot/R = usr R.toggle_ionpulse() -/datum/hud/robot/New(mob/owner) +/datum/hud/robot + ui_style_icon = 'icons/mob/screen_cyborg.dmi' + +/datum/hud/robot/New(mob/owner, ui_style = 'icons/mob/screen_cyborg.dmi') ..() var/mob/living/silicon/robot/mymobR = mymob var/obj/screen/using + using = new/obj/screen/wheel/talk + using.screen_loc = ui_borg_talk_wheel + wheels += using + static_inventory += using + //Radio using = new /obj/screen/robot/radio() using.screen_loc = ui_borg_radio @@ -133,9 +161,9 @@ infodisplay += healths //Installed Module - mymob.hands = new /obj/screen/robot/module() - mymob.hands.screen_loc = ui_borg_module - static_inventory += mymob.hands + mymobR.hands = new /obj/screen/robot/module() + mymobR.hands.screen_loc = ui_borg_module + static_inventory += mymobR.hands //Store module_store_icon = new /obj/screen/robot/store() @@ -154,50 +182,53 @@ /datum/hud/proc/toggle_show_robot_modules() - if(!isrobot(mymob)) return + if(!iscyborg(mymob)) return - var/mob/living/silicon/robot/r = mymob + var/mob/living/silicon/robot/R = mymob - r.shown_robot_modules = !r.shown_robot_modules + R.shown_robot_modules = !R.shown_robot_modules update_robot_modules_display() -/datum/hud/proc/update_robot_modules_display() - if(!isrobot(mymob)) return +/datum/hud/proc/update_robot_modules_display(mob/viewer) + if(!iscyborg(mymob)) return - var/mob/living/silicon/robot/r = mymob + var/mob/living/silicon/robot/R = mymob - if(!r.client) + var/mob/screenmob = viewer || R + + if(!R.module) return - if(!r.module) + if(!R.client) return - if(r.shown_robot_modules && hud_shown) + if(R.shown_robot_modules && screenmob.hud_used.hud_shown) //Modules display is shown - r.client.screen += module_store_icon //"store" icon + screenmob.client.screen += module_store_icon //"store" icon - if(!r.module.modules) + if(!R.module.modules) usr << "Selected module has no modules to select" return - if(!r.robot_modules_background) + if(!R.robot_modules_background) return - var/display_rows = Ceiling(length(r.module.get_inactive_modules()) / 8) - r.robot_modules_background.screen_loc = "CENTER-4:16,SOUTH+1:7 to CENTER+3:16,SOUTH+[display_rows]:7" - r.client.screen += r.robot_modules_background + var/display_rows = Ceiling(length(R.module.get_inactive_modules()) / 8) + R.robot_modules_background.screen_loc = "CENTER-4:16,SOUTH+1:7 to CENTER+3:16,SOUTH+[display_rows]:7" + screenmob.client.screen += R.robot_modules_background var/x = -4 //Start at CENTER-4,SOUTH+1 var/y = 1 - for(var/atom/movable/A in r.module.get_inactive_modules()) + for(var/atom/movable/A in R.module.get_inactive_modules()) //Module is not currently active - r.client.screen += A + screenmob.client.screen += A if(x < 0) A.screen_loc = "CENTER[x]:16,SOUTH+[y]:7" else A.screen_loc = "CENTER+[x]:16,SOUTH+[y]:7" A.layer = ABOVE_HUD_LAYER + A.plane = ABOVE_HUD_PLANE x++ if(x == 4) @@ -206,37 +237,41 @@ else //Modules display is hidden - r.client.screen -= module_store_icon //"store" icon + screenmob.client.screen -= module_store_icon //"store" icon - for(var/atom/A in r.module.get_inactive_modules()) + for(var/atom/A in R.module.get_inactive_modules()) //Module is not currently active - r.client.screen -= A - r.shown_robot_modules = 0 - r.client.screen -= r.robot_modules_background + screenmob.client.screen -= A + 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/persistant_inventory_update() +/datum/hud/robot/persistent_inventory_update(mob/viewer) if(!mymob) return var/mob/living/silicon/robot/R = mymob - if(hud_shown) - if(R.module_state_1) - R.module_state_1.screen_loc = ui_inv1 - R.client.screen += R.module_state_1 - if(R.module_state_2) - R.module_state_2.screen_loc = ui_inv2 - R.client.screen += R.module_state_2 - if(R.module_state_3) - R.module_state_3.screen_loc = ui_inv3 - R.client.screen += R.module_state_3 - else - if(R.module_state_1) - R.module_state_1.screen_loc = null - if(R.module_state_2) - R.module_state_2.screen_loc = null - if(R.module_state_3) - R.module_state_3.screen_loc = null \ No newline at end of file + + var/mob/screenmob = viewer || R + + if(screenmob.hud_used) + if(screenmob.hud_used.hud_shown) + for(var/i in 1 to R.held_items.len) + var/obj/item/I = R.held_items[i] + if(I) + switch(i) + if(1) + I.screen_loc = ui_inv1 + if(2) + I.screen_loc = ui_inv2 + if(3) + I.screen_loc = ui_inv3 + else + return + screenmob.client.screen += I + else + for(var/obj/item/I in R.held_items) + screenmob.client.screen -= I diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index 1a5148f681..adb707a60b 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -10,11 +10,15 @@ name = "" icon = 'icons/mob/screen_gen.dmi' layer = ABOVE_HUD_LAYER - unacidable = 1 + plane = ABOVE_HUD_PLANE + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF appearance_flags = APPEARANCE_UI var/obj/master = null //A reference to the object in the slot. Grabs or items, generally. var/datum/hud/hud = null // A reference to the owner HUD, if any. +/obj/screen/take_damage() + return + /obj/screen/Destroy() master = null return ..() @@ -30,6 +34,7 @@ /obj/screen/swap_hand layer = HUD_LAYER + plane = HUD_PLANE name = "swap hand" /obj/screen/swap_hand/Click() @@ -54,13 +59,31 @@ /obj/screen/inventory/craft/Click() var/mob/living/M = usr + if(isobserver(usr)) + return M.OpenCraftingMenu() +/obj/screen/inventory/area_creator + name = "create new area" + icon = 'icons/mob/screen_midnight.dmi' + icon_state = "area_edit" + screen_loc = ui_building + +/obj/screen/inventory/area_creator/Click() + if(usr.incapacitated()) + return 1 + var/area/A = get_area(usr) + if(!A.outdoors) + usr << "There is already a defined structure here." + return 1 + create_area(usr) + /obj/screen/inventory var/slot_id // The indentifier for the slot. It has nothing to do with ID cards. var/icon_empty // Icon when empty. For now used only by humans. var/icon_full // Icon when contains an item. For now used only by humans. layer = HUD_LAYER + plane = HUD_PLANE /obj/screen/inventory/Click() // At this point in client Click() code we have passed the 1/10 sec check and little else @@ -73,8 +96,7 @@ if (istype(usr.loc,/obj/mecha)) // stops inventory actions in a mech return 1 if(usr.attack_ui(slot_id)) - usr.update_inv_l_hand(0) - usr.update_inv_r_hand(0) + usr.update_inv_hands() return 1 /obj/screen/inventory/update_icon() @@ -91,13 +113,15 @@ var/image/active_overlay var/image/handcuff_overlay var/image/blocked_overlay + var/held_index = 0 /obj/screen/inventory/hand/update_icon() ..() + if(!active_overlay) active_overlay = image("icon"=icon, "icon_state"="hand_active") if(!handcuff_overlay) - var/state = (slot_id == slot_r_hand) ? "markus" : "gabrielle" + var/state = (!(held_index % 2)) ? "markus" : "gabrielle" handcuff_overlay = image("icon"='icons/mob/screen_gen.dmi', "icon_state"=state) if(!blocked_overlay) blocked_overlay = image("icon"='icons/mob/screen_gen.dmi', "icon_state"="blocked") @@ -109,18 +133,15 @@ var/mob/living/carbon/C = hud.mymob if(C.handcuffed) add_overlay(handcuff_overlay) - if(slot_id == slot_r_hand) - if(!C.has_right_hand()) - add_overlay(blocked_overlay) - else if(slot_id == slot_l_hand) - if(!C.has_left_hand()) + + if(held_index) + if(!C.has_hand_for_held_index(held_index)) add_overlay(blocked_overlay) - if(slot_id == slot_l_hand && hud.mymob.hand) - add_overlay(active_overlay) - else if(slot_id == slot_r_hand && !hud.mymob.hand) + if(held_index == hud.mymob.active_hand_index) add_overlay(active_overlay) + /obj/screen/inventory/hand/Click() // At this point in client Click() code we have passed the 1/10 sec check and little else // We don't even know if it's a middle click @@ -133,11 +154,7 @@ if(ismob(usr)) var/mob/M = usr - switch(name) - if("right hand", "r_hand") - M.activate_hand("r") - if("left hand", "l_hand") - M.activate_hand("l") + M.swap_hand(held_index) return 1 /obj/screen/close @@ -155,6 +172,7 @@ icon = 'icons/mob/screen_midnight.dmi' icon_state = "act_drop" layer = HUD_LAYER + plane = HUD_PLANE /obj/screen/drop/Click() usr.drop_item_v() @@ -171,19 +189,19 @@ var/_y = text2num(params2list(params)["icon-y"]) if(_x<=16 && _y<=16) - usr.a_intent_change("harm") + usr.a_intent_change(INTENT_HARM) else if(_x<=16 && _y>=17) - usr.a_intent_change("help") + usr.a_intent_change(INTENT_HELP) else if(_x>=17 && _y<=16) - usr.a_intent_change("grab") + usr.a_intent_change(INTENT_GRAB) else if(_x>=17 && _y>=17) - usr.a_intent_change("disarm") + usr.a_intent_change(INTENT_DISARM) else - usr.a_intent_change("right") + usr.a_intent_change(INTENT_HOTKEY_RIGHT) /obj/screen/act_intent/alien icon = 'icons/mob/screen_alien.dmi' @@ -222,12 +240,10 @@ C << "You are not wearing an internals mask!" return - if(istype(C.l_hand, /obj/item/weapon/tank)) - C << "You are now running on internals from the [C.l_hand] on your left hand." - C.internal = C.l_hand - else if(istype(C.r_hand, /obj/item/weapon/tank)) - C << "You are now running on internals from the [C.r_hand] on your right hand." - C.internal = C.r_hand + var/obj/item/I = C.is_holding_item_of_type(/obj/item/weapon/tank) + if(I) + C << "You are now running on internals from the [I] on your [C.get_held_index_name(C.get_held_index_of_item(I))]." + C.internal = I else if(ishuman(C)) var/mob/living/carbon/human/H = C if(istype(H.s_store, /obj/item/weapon/tank)) @@ -261,14 +277,19 @@ icon_state = "running" /obj/screen/mov_intent/Click() - switch(usr.m_intent) + toggle(usr) + +/obj/screen/mov_intent/proc/toggle(mob/user) + if(isobserver(user)) + return + switch(user.m_intent) if("run") - usr.m_intent = "walk" + user.m_intent = MOVE_INTENT_WALK icon_state = "walking" if("walk") - usr.m_intent = "run" + user.m_intent = MOVE_INTENT_RUN icon_state = "running" - usr.update_icons() + user.update_icons() /obj/screen/pull name = "stop pulling" @@ -276,6 +297,8 @@ icon_state = "pull" /obj/screen/pull/Click() + if(isobserver(usr)) + return usr.stop_pulling() /obj/screen/pull/update_icon(mob/mymob) @@ -290,6 +313,7 @@ icon = 'icons/mob/screen_midnight.dmi' icon_state = "act_resist" layer = HUD_LAYER + plane = HUD_PLANE /obj/screen/resist/Click() if(isliving(usr)) @@ -307,7 +331,7 @@ if (istype(usr.loc,/obj/mecha)) // stops inventory actions in a mech return 1 if(master) - var/obj/item/I = usr.get_active_hand() + var/obj/item/I = usr.get_active_held_item() if(I) master.attackby(I, usr, params) return 1 @@ -329,55 +353,65 @@ var/selecting = "chest" /obj/screen/zone_sel/Click(location, control,params) + if(isobserver(usr)) + return + var/list/PL = params2list(params) var/icon_x = text2num(PL["icon-x"]) var/icon_y = text2num(PL["icon-y"]) - var/old_selecting = selecting //We're only going to update_icon() if there's been a change + var/choice switch(icon_y) if(1 to 9) //Legs switch(icon_x) if(10 to 15) - selecting = "r_leg" + choice = "r_leg" if(17 to 22) - selecting = "l_leg" + choice = "l_leg" else return 1 if(10 to 13) //Hands and groin switch(icon_x) if(8 to 11) - selecting = "r_arm" + choice = "r_arm" if(12 to 20) - selecting = "groin" + choice = "groin" if(21 to 24) - selecting = "l_arm" + choice = "l_arm" else return 1 if(14 to 22) //Chest and arms to shoulders switch(icon_x) if(8 to 11) - selecting = "r_arm" + choice = "r_arm" if(12 to 20) - selecting = "chest" + choice = "chest" if(21 to 24) - selecting = "l_arm" + choice = "l_arm" else return 1 if(23 to 30) //Head, but we need to check for eye or mouth if(icon_x in 12 to 20) - selecting = "head" + choice = "head" switch(icon_y) if(23 to 24) if(icon_x in 15 to 17) - selecting = "mouth" + choice = "mouth" if(26) //Eyeline, eyes are on 15 and 17 if(icon_x in 14 to 18) - selecting = "eyes" + choice = "eyes" if(25 to 27) if(icon_x in 15 to 17) - selecting = "eyes" + choice = "eyes" - if(old_selecting != selecting) + return set_selected_zone(choice, usr) + +/obj/screen/zone_sel/proc/set_selected_zone(choice, mob/user) + if(isobserver(user)) + return + + if(choice != selecting) + selecting = choice update_icon(usr) return 1 @@ -404,6 +438,7 @@ blend_mode = BLEND_ADD screen_loc = "WEST,SOUTH to EAST,NORTH" layer = FLASH_LAYER + plane = FULLSCREEN_PLANE /obj/screen/damageoverlay icon = 'icons/mob/screen_full.dmi' @@ -413,6 +448,7 @@ screen_loc = "CENTER-7,CENTER-7" mouse_opacity = 0 layer = UI_DAMAGE_LAYER + plane = FULLSCREEN_PLANE /obj/screen/healths name = "health" @@ -455,6 +491,17 @@ screen_loc = ui_health mouse_opacity = 0 +/obj/screen/healths/clock + icon = 'icons/mob/actions.dmi' + icon_state = "bg_clock" + screen_loc = ui_health + mouse_opacity = 0 + +/obj/screen/healths/clock/gear + icon = 'icons/mob/clockwork_mobs.dmi' + icon_state = "bg_gear" + screen_loc = ui_internal + /obj/screen/healths/revenant name = "essence" icon = 'icons/mob/actions.dmi' @@ -465,3 +512,140 @@ /obj/screen/healthdoll name = "health doll" screen_loc = ui_healthdoll + + + +/obj/screen/wheel + name = "wheel" + layer = HUD_LAYER + plane = HUD_PLANE + icon_state = "" + screen_loc = null //if you make a new wheel, remember to give it a screen_loc + var/list/buttons_names = list() //list of the names for each button, its length is the amount of buttons. + var/toggled = 0 //wheel is hidden/shown + var/wheel_buttons_type //the type of buttons used with this wheel. + var/list/buttons_list = list() + +/obj/screen/wheel/New() + ..() + build_options() + + +//we create the buttons for the wheel and place them in a square spiral fashion. +/obj/screen/wheel/proc/build_options() + var/obj/screen/wheel_button/close_wheel/CW = new () + buttons_list += CW //the close option + CW.wheel = src + + var/list/offset_x_list = list() + var/list/offset_y_list = list() + var/num = 1 + var/N = 1 + var/M = 0 + var/sign = -1 + my_loop: + while(offset_y_list.len < buttons_names.len) + for(var/i=1, i<=num, i++) + offset_y_list += N + offset_x_list += M + if(offset_y_list.len == buttons_names.len) + break my_loop + if(N != 0) + N = 0 + M = -sign + else + N = sign + M = 0 + sign = -sign + num++ + + var/screenx = 8 + var/screeny = 8 + for(var/i = 1, i <= buttons_names.len, i++) + var/obj/screen/wheel_button/WB = new wheel_buttons_type() + WB.wheel = src + buttons_list += WB + screenx += offset_x_list[i] + screeny += offset_y_list[i] + WB.screen_loc = "[screenx], [screeny]" + set_button(WB, i) + +/obj/screen/wheel/proc/set_button(obj/screen/wheel_button/WB, button_number) + WB.name = buttons_names[button_number] + return + +/obj/screen/wheel/Destroy() + for(var/obj/screen/S in buttons_list) + qdel(S) + return ..() + +/obj/screen/wheel/Click() + if(world.time <= usr.next_move) + return + if(usr.stat) + return + if(isliving(usr)) + var/mob/living/L = usr + if(toggled) + L.client.screen -= buttons_list + else + L.client.screen |= buttons_list + toggled = !toggled + + +/obj/screen/wheel/talk + name = "talk wheel" + icon_state = "talk_wheel" + screen_loc = "11:6,2:-11" + wheel_buttons_type = /obj/screen/wheel_button/talk + buttons_names = list("help","hello","bye","stop","thanks","come","out", "yes", "no") + var/list/word_messages = list(list("Help!","Help me!"), list("Hello.", "Hi."), list("Bye.", "Goodbye."),\ + list("Stop!", "Halt!"), list("Thanks.", "Thanks!", "Thank you."), \ + list("Come.", "Follow me."), list("Out!", "Go away!", "Get out!"), \ + list("Yes.", "Affirmative."), list("No.", "Negative")) + +/obj/screen/wheel/talk/set_button(obj/screen/wheel_button/WB, button_number) + ..() + var/obj/screen/wheel_button/talk/T = WB //we already know what type the button is exactly. + T.icon_state = "talk_[T.name]" + T.word_messages = word_messages[button_number] + + +/obj/screen/wheel_button + name = "default wheel button" + screen_loc = "8,8" + layer = HUD_LAYER + plane = HUD_PLANE + mouse_opacity = 2 + var/obj/screen/wheel/wheel + +/obj/screen/wheel_button/Destroy() + wheel = null + return ..() + +/obj/screen/wheel_button/close_wheel + name = "close wheel" + icon_state = "x3" + +/obj/screen/wheel_button/close_wheel/Click() + if(isliving(usr)) + var/mob/living/L = usr + L.client.screen -= wheel.buttons_list + wheel.toggled = !wheel.toggled + + +/obj/screen/wheel_button/talk + name = "talk option" + icon_state = "talk_help" + var/talk_cooldown = 0 + var/list/word_messages = list() + +/obj/screen/wheel_button/talk/Click(location, control,params) + if(isliving(usr)) + var/mob/living/L = usr + if(L.stat) + return + + if(word_messages.len && talk_cooldown < world.time) + talk_cooldown = world.time + 10 + L.say(pick(word_messages)) diff --git a/code/_onclick/hud/swarmer.dm b/code/_onclick/hud/swarmer.dm index 85ee9c4977..92a98e14c6 100644 --- a/code/_onclick/hud/swarmer.dm +++ b/code/_onclick/hud/swarmer.dm @@ -68,11 +68,11 @@ var/obj/screen/using using = new /obj/screen/swarmer/FabricateTrap() - using.screen_loc = ui_rhand + using.screen_loc = ui_hand_position(2) static_inventory += using using = new /obj/screen/swarmer/Barricade() - using.screen_loc = ui_lhand + using.screen_loc = ui_hand_position(1) static_inventory += using using = new /obj/screen/swarmer/Replicate() diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index e3fcdb7fb8..7014cc039f 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -8,11 +8,14 @@ return /obj/attackby(obj/item/I, mob/living/user, params) - return I.attack_obj(src, user) + if(unique_rename && istype(I, /obj/item/weapon/pen)) + rewrite(user) + else + return I.attack_obj(src, user) /mob/living/attackby(obj/item/I, mob/user, params) user.changeNext_move(CLICK_CD_MELEE) - if(user.a_intent == "harm" && stat == DEAD && butcher_results) //can we butcher it? + if(user.a_intent == INTENT_HARM && stat == DEAD && butcher_results) //can we butcher it? var/sharpness = I.is_sharp() if(sharpness) user << "You begin to butcher [src]..." @@ -34,6 +37,7 @@ user.lastattacked = M M.lastattacker = user + user.do_attack_animation(M) M.attacked_by(src, user) add_logs(user, M, "attacked", src.name, "(INTENT: [uppertext(user.a_intent)]) (DAMTYPE: [uppertext(damtype)])") @@ -48,29 +52,33 @@ user.do_attack_animation(O) O.attacked_by(src, user) - - /atom/movable/proc/attacked_by() return /obj/attacked_by(obj/item/I, mob/living/user) if(I.force) - user.visible_message("[user] has hit [src] with [I]!", "You hit [src] with [I]!") + visible_message("[user] has hit [src] with [I]!", null, null, COMBAT_MESSAGE_RANGE) + //only witnesses close by and the victim see a hit message. + take_damage(I.force, I.damtype, "melee", 1) /mob/living/attacked_by(obj/item/I, mob/living/user) - if(user != src) - user.do_attack_animation(src) - if(send_item_attack_message(I, user)) - if(apply_damage(I.force, I.damtype)) - if(I.damtype == BRUTE) - if(prob(33)) - I.add_mob_blood(src) - var/turf/location = get_turf(src) - add_splatter_floor(location) - if(get_dist(user, src) <= 1) //people with TK won't get smeared with blood - user.add_mob_blood(src) - return TRUE + send_item_attack_message(I, user) + if(I.force) + apply_damage(I.force, I.damtype) + if(I.damtype == BRUTE) + if(prob(33)) + I.add_mob_blood(src) + var/turf/location = get_turf(src) + add_splatter_floor(location) + if(get_dist(user, src) <= 1) //people with TK won't get smeared with blood + user.add_mob_blood(src) + return TRUE //successful attack +/mob/living/simple_animal/attacked_by(obj/item/I, mob/living/user) + if(I.force < force_threshold || I.damtype == STAMINA) + playsound(loc, 'sound/weapons/tap.ogg', I.get_clamped_volume(), 1, -1) + else + return ..() // Proximity_flag is 1 if this afterattack was called on something adjacent, in your square, or on your person. // Click parameters is the params string from byond Click() code, see that documentation. @@ -87,27 +95,17 @@ /mob/living/proc/send_item_attack_message(obj/item/I, mob/living/user, hit_area) var/message_verb = "attacked" - if(I.attack_verb.len) + if(I.attack_verb && I.attack_verb.len) message_verb = "[pick(I.attack_verb)]" else if(!I.force) - return 0 + return var/message_hit_area = "" if(hit_area) message_hit_area = " in the [hit_area]" - var/attack_message = "[src] has been [message_verb][message_hit_area] with [I]." if(user in viewers(src, null)) attack_message = "[user] has [message_verb] [src][message_hit_area] with [I]!" - visible_message("[attack_message]", - "[attack_message]") + visible_message("[attack_message]", \ + "[attack_message]", null, COMBAT_MESSAGE_RANGE) return 1 -/mob/living/simple_animal/send_item_attack_message(obj/item/I, mob/living/user, hit_area) - if(!I.force) - user.visible_message("[user] gently taps [src] with [I].",\ - "This weapon is ineffective, it does no damage!") - else if(I.force < force_threshold || I.damtype == STAMINA) - visible_message("[I] bounces harmlessly off of [src].",\ - "[I] bounces harmlessly off of [src]!") - else - return ..() \ No newline at end of file diff --git a/code/_onclick/observer.dm b/code/_onclick/observer.dm index e452c91779..c0785b34a7 100644 --- a/code/_onclick/observer.dm +++ b/code/_onclick/observer.dm @@ -15,6 +15,7 @@ // Otherwise jump else if(A.loc) loc = get_turf(A) + update_parallax_contents() /mob/dead/observer/ClickOn(var/atom/A, var/params) if(client.click_intercept) diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm index 4d0ff1f69e..6dfcb7f80a 100644 --- a/code/_onclick/other_mobs.dm +++ b/code/_onclick/other_mobs.dm @@ -20,7 +20,7 @@ var/override = 0 for(var/datum/mutation/human/HM in dna.mutations) - override += HM.on_attack_hand(src, A) + override += HM.on_attack_hand(src, A, proximity) if(override) return @@ -50,9 +50,8 @@ for(var/datum/mutation/human/HM in dna.mutations) HM.on_ranged_attack(src, A) - var/turf/T = A - if(istype(T) && get_dist(src,T) <= 1) - src.Move_Pulled(T) + if(isturf(A) && get_dist(src,A) <= 1) + src.Move_Pulled(A) /* Animals & All Unspecified @@ -60,10 +59,6 @@ /mob/living/UnarmedAttack(atom/A) A.attack_animal(src) -/mob/living/simple_animal/hostile/UnarmedAttack(atom/A) - target = A - AttackingTarget() - /atom/proc/attack_animal(mob/user) return /mob/living/RestrainedClickOn(atom/A) @@ -87,7 +82,7 @@ /mob/living/carbon/monkey/RestrainedClickOn(atom/A) if(..()) return - if(a_intent != "harm" || !ismob(A)) + if(a_intent != INTENT_HARM || !ismob(A)) return if(is_muzzled()) return @@ -115,7 +110,7 @@ */ /mob/living/carbon/alien/UnarmedAttack(atom/A) A.attack_alien(src) -/atom/proc/attack_alien(mob/user) +/atom/proc/attack_alien(mob/living/carbon/alien/user) attack_paw(user) return /mob/living/carbon/alien/RestrainedClickOn(atom/A) @@ -139,6 +134,68 @@ /mob/living/simple_animal/slime/RestrainedClickOn(atom/A) return + +/* + Drones +*/ +/mob/living/simple_animal/drone/UnarmedAttack(atom/A) + A.attack_drone(src) + +/atom/proc/attack_drone(mob/living/simple_animal/drone/user) + attack_hand(user) //defaults to attack_hand. Override it when you don't want drones to do same stuff as humans. + +/mob/living/simple_animal/slime/RestrainedClickOn(atom/A) + return + + +/* + True Devil +*/ + +/mob/living/carbon/true_devil/UnarmedAttack(atom/A, proximity) + A.attack_hand(src) + +/* + Brain +*/ + +/mob/living/brain/UnarmedAttack(atom/A)//Stops runtimes due to attack_animal being the default + return + + +/* + pAI +*/ + +/mob/living/silicon/pai/UnarmedAttack(atom/A)//Stops runtimes due to attack_animal being the default + return + + +/* + Simple animals +*/ + +/mob/living/simple_animal/UnarmedAttack(atom/A, proximity) + if(!dextrous) + return ..() + if(!ismob(A)) + A.attack_hand(src) + update_inv_hands() + + +/* + Hostile animals +*/ + +/mob/living/simple_animal/hostile/UnarmedAttack(atom/A) + target = A + if(dextrous && !is_type_in_typecache(A, environment_target_typecache) && !ismob(A)) + ..() + else + AttackingTarget() + + + /* New Players: Have no reason to click on anything at all. diff --git a/code/_onclick/telekinesis.dm b/code/_onclick/telekinesis.dm index 4fc1fd2851..8aa85620da 100644 --- a/code/_onclick/telekinesis.dm +++ b/code/_onclick/telekinesis.dm @@ -1,11 +1,13 @@ /* Telekinesis + This needs more thinking out, but I might as well. */ var/const/tk_maxrange = 15 /* Telekinetic attack: + By default, emulate the user's unarmed attack */ /atom/proc/attack_tk(mob/user) @@ -17,6 +19,7 @@ var/const/tk_maxrange = 15 /* This is similar to item attack_self, but applies to anything that you can grab with a telekinetic grab. + It is used for manipulating things at range, for example, opening and closing closets. There are not a lot of defaults at this time, add more where appropriate. */ @@ -54,6 +57,7 @@ var/const/tk_maxrange = 15 /* TK Grab Item (the workhorse of old TK) + * If you have not grabbed something, do a normal tk attack * If you have something, throw it at the target. If it is already adjacent, do a normal attackby() * If you click what you are holding, or attack_self(), do an attack_self_tk() on it. @@ -66,8 +70,9 @@ var/const/tk_maxrange = 15 icon_state = "2" flags = NOBLUDGEON | ABSTRACT | DROPDEL //item_state = null - w_class = 10 + w_class = WEIGHT_CLASS_GIGANTIC layer = ABOVE_HUD_LAYER + plane = ABOVE_HUD_PLANE var/last_throw = 0 var/atom/movable/focus = null @@ -82,7 +87,7 @@ var/const/tk_maxrange = 15 //stops TK grabs being equipped anywhere but into hands /obj/item/tk_grab/equipped(mob/user, slot) - if( (slot == slot_l_hand) || (slot== slot_r_hand) ) + if(slot == slot_hands) return qdel(src) return @@ -185,7 +190,7 @@ var/const/tk_maxrange = 15 return /obj/item/tk_grab/suicide_act(mob/user) - user.visible_message("[user] is using \his telekinesis to choke \himself! It looks like \he's trying to commit suicide.") + user.visible_message("[user] is using [user.p_their()] telekinesis to choke [user.p_them()]self! It looks like [user.p_theyre()] trying to commit suicide!") return (OXYLOSS) /*Not quite done likely needs to use something thats not get_step_to @@ -213,4 +218,5 @@ var/const/tk_maxrange = 15 var/X = source:x var/Y = source:y var/Z = source:z -*/ \ No newline at end of file + +*/ diff --git a/code/citadel/_helpers.dm b/code/citadel/_helpers.dm index e898f30b65..e2c3f39322 100644 --- a/code/citadel/_helpers.dm +++ b/code/citadel/_helpers.dm @@ -22,7 +22,7 @@ var/const/SIZEPLAY_HUGE=5 /proc/get_matrix_smallest() var/matrix/mtrx=new() return mtrx.Scale(0.65) - +/* omited for quick error resolution while porting -Pooj proc/get_racelist(var/mob/user)//This proc returns a list of species that 'user' has available to them. It searches the list of ckeys attached to the 'whitelist' var for a species and also checks if they're an admin. for(var/spath in subtypesof(/datum/species)) var/datum/species/S = new spath() @@ -32,3 +32,4 @@ proc/get_racelist(var/mob/user)//This proc returns a list of species that 'user' else if(!S.whitelisted && S.roundstart) //Normal roundstart species will be handled here. whitelisted_species_list[S.id] = S.type return whitelisted_species_list +*/ \ No newline at end of file diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm index 1ff1e29ba5..0b0b344a2c 100644 --- a/code/controllers/configuration.dm +++ b/code/controllers/configuration.dm @@ -1,4 +1,4 @@ -f//Configuraton defines //TODO: Move all yes/no switches into bitflags +//Configuraton defines //TODO: Move all yes/no switches into bitflags //Used by jobs_have_maint_access #define ASSISTANTS_HAVE_MAINT_ACCESS 1 @@ -18,6 +18,7 @@ f//Configuraton defines //TODO: Move all yes/no switches into bitflags var/server_suffix = 0 // generate numeric suffix based on server port var/lobby_countdown = 120 // In between round countdown. var/round_end_countdown = 25 // Post round murder death kill countdown + var/hub = 0 var/log_ooc = 0 // log OOC channel var/log_access = 0 // log login/logout @@ -33,6 +34,7 @@ f//Configuraton defines //TODO: Move all yes/no switches into bitflags var/log_adminchat = 0 // log admin chat messages var/log_pda = 0 // log pda messages var/log_hrefs = 0 // log all links clicked in-game. Could be used for debugging and tracking down exploits + var/log_twitter = 0 // log certain expliotable parrots and other such fun things in a JSON file of twitter valid phrases. var/log_world_topic = 0 // log all world.Topic() calls var/sql_enabled = 0 // for sql switching var/allow_admin_ooccolor = 0 // Allows admins with relevant permissions to have their own ooc colour @@ -70,6 +72,11 @@ f//Configuraton defines //TODO: Move all yes/no switches into bitflags var/forbid_singulo_possession = 0 var/useircbot = 0 + var/check_randomizer = 0 + + var/allow_panic_bunker_bounce = 0 //Send new players somewhere else + var/panic_server_name = "somewhere else" + //IP Intel vars var/ipintel_email var/ipintel_rating_bad = 1 @@ -80,6 +87,7 @@ f//Configuraton defines //TODO: Move all yes/no switches into bitflags var/admin_legacy_system = 0 //Defines whether the server uses the legacy admin system with admins.txt or the SQL system. Config option in config.txt var/ban_legacy_system = 0 //Defines whether the server uses the legacy banning system with the files in /data or the SQL system. Config option in config.txt var/use_age_restriction_for_jobs = 0 //Do jobs use account age restrictions? --requires database + var/use_account_age_for_jobs = 0 //Uses the time they made the account for the job restriction stuff. New player joining alerts should be unaffected. var/see_own_notes = 0 //Can players see their own admin notes (read-only)? Config option in config.txt //Population cap vars @@ -96,6 +104,8 @@ f//Configuraton defines //TODO: Move all yes/no switches into bitflags var/list/modes = list() // allowed modes var/list/votable_modes = list() // votable modes var/list/probabilities = list() // relative probability of each mode + var/list/min_pop = list() // overrides for acceptible player counts in a mode + var/list/max_pop = list() var/humans_need_surnames = 0 var/allow_ai = 0 // allow ai job @@ -137,9 +147,6 @@ f//Configuraton defines //TODO: Move all yes/no switches into bitflags var/alert_desc_red_downto = "The station's destruction has been averted. There is still however an immediate serious threat to the station. Security may have weapons unholstered at all times, random searches are allowed and advised." var/alert_desc_delta = "Destruction of the station is imminent. All crew are instructed to obey all instructions given by heads of staff. Any violations of these orders can be punished by death. This is not a drill." - var/health_threshold_crit = 0 - var/health_threshold_dead = -100 - var/revival_pod_plants = 1 var/revival_cloning = 1 var/revival_brain_life = -1 @@ -167,6 +174,8 @@ f//Configuraton defines //TODO: Move all yes/no switches into bitflags var/silent_ai = 0 var/silent_borg = 0 + var/damage_multiplier = 1 //Modifier for damage to all mobs. Impacts healing as well. + var/allowwebclient = 0 var/webclientmembersonly = 0 @@ -174,6 +183,9 @@ f//Configuraton defines //TODO: Move all yes/no switches into bitflags var/default_laws = 0 //Controls what laws the AI spawns with. var/silicon_max_law_amount = 12 + var/list/lawids = list() + + var/list/law_weights = list() var/assistant_cap = -1 @@ -182,6 +194,7 @@ f//Configuraton defines //TODO: Move all yes/no switches into bitflags var/grey_assistants = 0 var/lavaland_budget = 60 + var/space_budget = 16 var/aggressive_changelog = 0 @@ -213,6 +226,7 @@ f//Configuraton defines //TODO: Move all yes/no switches into bitflags var/client_error_message = "Your version of byond is too old, may have issues, and is blocked from accessing this server." var/cross_name = "Other server" + var/showircname = 0 /datum/configuration/New() var/list/L = subtypesof(/datum/game_mode) @@ -260,12 +274,16 @@ f//Configuraton defines //TODO: Move all yes/no switches into bitflags if(type == "config") switch(name) + if("hub") + config.hub = 1 if("admin_legacy_system") config.admin_legacy_system = 1 if("ban_legacy_system") config.ban_legacy_system = 1 if("use_age_restriction_for_jobs") config.use_age_restriction_for_jobs = 1 + if("use_account_age_for_jobs") + config.use_account_age_for_jobs = 1 if("lobby_countdown") config.lobby_countdown = text2num(value) if("round_end_countdown") @@ -298,6 +316,8 @@ f//Configuraton defines //TODO: Move all yes/no switches into bitflags config.log_pda = 1 if("log_hrefs") config.log_hrefs = 1 + if("log_twitter") + config.log_twitter = 1 if("log_world_topic") config.log_world_topic = 1 if("allow_admin_ooccolor") @@ -341,7 +361,7 @@ f//Configuraton defines //TODO: Move all yes/no switches into bitflags if("guest_ban") guests_allowed = 0 if("usewhitelist") - config.usewhitelist = 1 + config.usewhitelist = TRUE if("allow_metadata") config.allow_Metadata = 1 if("kick_inactive") @@ -376,6 +396,18 @@ f//Configuraton defines //TODO: Move all yes/no switches into bitflags global.cross_allowed = 1 if("cross_comms_name") cross_name = value + if("panic_server_name") + panic_server_name = value + if("panic_server_address") + global.panic_address = value + if(value != "byond:\\address:port") + allow_panic_bunker_bounce = 1 + if("medal_hub_address") + global.medal_hub = value + if("medal_hub_password") + global.medal_pass = value + if("show_irc_name") + config.showircname = 1 if("see_own_notes") config.see_own_notes = 1 if("soft_popcap") @@ -396,6 +428,8 @@ f//Configuraton defines //TODO: Move all yes/no switches into bitflags config.notify_new_player_age = text2num(value) if("irc_first_connection_alert") config.irc_first_connection_alert = 1 + if("check_randomizer") + config.check_randomizer = 1 if("ipintel_email") if (value != "ch@nge.me") config.ipintel_email = value @@ -448,10 +482,8 @@ f//Configuraton defines //TODO: Move all yes/no switches into bitflags else if(type == "game_options") switch(name) - if("health_threshold_crit") - config.health_threshold_crit = text2num(value) - if("health_threshold_dead") - config.health_threshold_dead = text2num(value) + if("damage_multiplier") + config.damage_multiplier = text2num(value) if("revival_pod_plants") config.revival_pod_plants = text2num(value) if("revival_cloning") @@ -520,6 +552,34 @@ f//Configuraton defines //TODO: Move all yes/no switches into bitflags config.midround_antag_time_check = text2num(value) if("midround_antag_life_check") config.midround_antag_life_check = text2num(value) + if("min_pop") + var/pop_pos = findtext(value, " ") + var/mode_name = null + var/mode_value = null + + if(pop_pos) + mode_name = lowertext(copytext(value, 1, pop_pos)) + mode_value = copytext(value, pop_pos + 1) + if(mode_name in config.modes) + config.min_pop[mode_name] = text2num(mode_value) + else + diary << "Unknown minimum population configuration definition: [mode_name]." + else + diary << "Incorrect minimum population configuration definition: [mode_name] [mode_value]." + if("max_pop") + var/pop_pos = findtext(value, " ") + var/mode_name = null + var/mode_value = null + + if(pop_pos) + mode_name = lowertext(copytext(value, 1, pop_pos)) + mode_value = copytext(value, pop_pos + 1) + if(mode_name in config.modes) + config.max_pop[mode_name] = text2num(mode_value) + else + diary << "Unknown maximum population configuration definition: [mode_name]." + else + diary << "Incorrect maximum population configuration definition: [mode_name] [mode_value]." if("shuttle_refuel_delay") config.shuttle_refuel_delay = text2num(value) if("show_game_type_odds") @@ -589,6 +649,19 @@ f//Configuraton defines //TODO: Move all yes/no switches into bitflags config.sandbox_autoclose = 1 if("default_laws") config.default_laws = text2num(value) + if("random_laws") + var/law_id = lowertext(value) + lawids += law_id + if("law_weight") + // Value is in the form "LAWID,NUMBER" + var/list/L = splittext(value, ",") + if(L.len != 2) + diary << "Invalid LAW_WEIGHT: " + t + continue + var/lawid = L[1] + var/weight = text2num(L[2]) + law_weights[lawid] = weight + if("silicon_max_law_amount") config.silicon_max_law_amount = text2num(value) if("join_with_mutant_race") @@ -609,6 +682,8 @@ f//Configuraton defines //TODO: Move all yes/no switches into bitflags config.grey_assistants = 1 if("lavaland_budget") config.lavaland_budget = text2num(value) + if("space_budget") + config.space_budget = text2num(value) if("no_summon_guns") config.no_summon_guns = 1 if("no_summon_magic") @@ -753,6 +828,10 @@ f//Configuraton defines //TODO: Move all yes/no switches into bitflags if(probabilities[M.config_tag]<=0) qdel(M) continue + if(min_pop[M.config_tag]) + M.required_players = min_pop[M.config_tag] + if(max_pop[M.config_tag]) + M.maximum_players = max_pop[M.config_tag] if(M.can_start()) runnable_modes[M] = probabilities[M.config_tag] //world << "DEBUG: runnable_mode\[[runnable_modes.len]\] = [M.config_tag]" @@ -768,7 +847,13 @@ f//Configuraton defines //TODO: Move all yes/no switches into bitflags if(probabilities[M.config_tag]<=0) qdel(M) continue + if(min_pop[M.config_tag]) + M.required_players = min_pop[M.config_tag] + if(max_pop[M.config_tag]) + M.maximum_players = max_pop[M.config_tag] if(M.required_players <= crew) + if(M.maximum_players >= 0 && M.maximum_players < crew) + continue runnable_modes[M] = probabilities[M.config_tag] return runnable_modes diff --git a/code/controllers/master.dm b/code/controllers/master.dm index 6c0658aa2e..b18b723f97 100644 --- a/code/controllers/master.dm +++ b/code/controllers/master.dm @@ -35,6 +35,8 @@ var/CURRENT_TICKLIMIT = TICK_LIMIT_RUNNING var/init_time var/tickdrift = 0 + var/sleep_delta + var/make_runtime = 0 // Has round started? (So we know what subsystems to run) @@ -65,6 +67,11 @@ var/CURRENT_TICKLIMIT = TICK_LIMIT_RUNNING // Tell qdel() to Del() this object. return QDEL_HINT_HARDDEL_NOW +/datum/controller/master/proc/Shutdown() + processing = FALSE + for(var/datum/subsystem/ss in subsystems) + ss.Shutdown() + // Returns 1 if we created a new mc, 0 if we couldn't due to a recent restart, // -1 if we encountered a runtime trying to recreate it /proc/Recreate_MC() @@ -165,8 +172,8 @@ var/CURRENT_TICKLIMIT = TICK_LIMIT_RUNNING message_admins("MC crashed or runtimed, restarting") var/rtn2 = Recreate_MC() if (rtn2 <= 0) - log_game("Failed to recreate MC (Error code: [rtn2]), its up to the failsafe now") - message_admins("Failed to recreate MC (Error code: [rtn2]), its up to the failsafe now") + log_game("Failed to recreate MC (Error code: [rtn2]), it's up to the failsafe now") + message_admins("Failed to recreate MC (Error code: [rtn2]), it's up to the failsafe now") Failsafe.defcon = 2 // Main loop. @@ -280,6 +287,7 @@ var/CURRENT_TICKLIMIT = TICK_LIMIT_RUNNING iteration++ last_run = world.time + src.sleep_delta = MC_AVERAGE_FAST(src.sleep_delta, sleep_delta) sleep(world.tick_lag * (processing + sleep_delta)) diff --git a/code/controllers/subsystem.dm b/code/controllers/subsystem.dm index 8cd011932b..3fb7e75ab7 100644 --- a/code/controllers/subsystem.dm +++ b/code/controllers/subsystem.dm @@ -37,6 +37,10 @@ // Used to initialize the subsystem BEFORE the map has loaded /datum/subsystem/New() +//cleanup actions +/datum/subsystem/proc/Shutdown() + return + //previously, this would have been named 'process()' but that name is used everywhere for different things! //fire() seems more suitable. This is the procedure that gets called every 'wait' deciseconds. //fire(), and the procs it calls, SHOULD NOT HAVE ANY SLEEP OPERATIONS in them! @@ -140,7 +144,7 @@ statclick = new/obj/effect/statclick/debug("Initializing...", src) if(can_fire) - msg = "[round(cost*ticks,1)]ms|[round(tick_usage,1)]%|[round(ticks,0.1)]\t[msg]" + msg = "[round(cost,1)]ms|[round(tick_usage,1)]%|[round(ticks,0.1)]\t[msg]" else msg = "OFFLINE\t[msg]" @@ -157,7 +161,12 @@ /datum/subsystem/proc/Recover() //this is so the subsystem doesn't rapid fire to make up missed ticks causing more lag -/datum/subsystem/on_varedit(edited_var) - if (edited_var == "can_fire" && can_fire) - next_fire = world.time + wait - ..() +/datum/subsystem/vv_edit_var(var_name, var_value) + switch (var_name) + if ("can_fire") + if (var_value) + next_fire = world.time + wait + if ("queued_priority") //editing this breaks things. + return 0 + . = ..() + diff --git a/code/controllers/subsystem/acid.dm b/code/controllers/subsystem/acid.dm new file mode 100644 index 0000000000..23b671bf71 --- /dev/null +++ b/code/controllers/subsystem/acid.dm @@ -0,0 +1,42 @@ +var/datum/subsystem/acid/SSacid + +/datum/subsystem/acid + name = "Acid" + priority = 40 + flags = SS_NO_INIT|SS_BACKGROUND + + var/list/currentrun = list() + var/list/processing = list() + +/datum/subsystem/acid/New() + NEW_SS_GLOBAL(SSacid) + + +/datum/subsystem/acid/stat_entry() + ..("P:[processing.len]") + + +/datum/subsystem/acid/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/obj/O = currentrun[currentrun.len] + currentrun.len-- + if (!O || qdeleted(O)) + processing -= O + if (MC_TICK_CHECK) + return + continue + + if(O.acid_level && O.acid_processing()) + else + O.overlays -= acid_overlay + O.priority_overlays -= acid_overlay + processing -= O + + if (MC_TICK_CHECK) + return diff --git a/code/controllers/subsystem/augury.dm b/code/controllers/subsystem/augury.dm new file mode 100644 index 0000000000..0b5c7b0085 --- /dev/null +++ b/code/controllers/subsystem/augury.dm @@ -0,0 +1,84 @@ +var/datum/subsystem/augury/SSaugury + +/datum/subsystem/augury + name = "Augury" + flags = SS_NO_INIT + + var/list/watchers = list() + var/list/doombringers = list() + + var/list/observers_given_action = list() + +/datum/subsystem/augury/New() + NEW_SS_GLOBAL(SSaugury) + +/datum/subsystem/augury/stat_entry(msg) + ..("W:[watchers.len]|D:[doombringers.len]") + +/datum/subsystem/augury/proc/register_doom(atom/A, severity) + doombringers[A] = severity + +/datum/subsystem/augury/fire() + var/biggest_doom = null + var/biggest_threat = null + + for(var/d in doombringers) + if(!d || qdeleted(d)) + doombringers -= d + continue + var/threat = doombringers[d] + if((biggest_threat == null) || (biggest_threat < threat)) + biggest_doom = d + biggest_threat = threat + + if(doombringers.len) + for(var/i in player_list) + if(isobserver(i) && (!(observers_given_action[i]))) + var/datum/action/innate/augury/A = new + A.Grant(i) + observers_given_action[i] = TRUE + else + for(var/i in observers_given_action) + if(observers_given_action[i] && isobserver(i)) + var/mob/dead/observer/O = i + for(var/datum/action/innate/augury/A in O.actions) + qdel(A) + observers_given_action -= i + + for(var/w in watchers) + if(!w) + watchers -= w + continue + var/mob/dead/observer/O = w + if(biggest_doom && (!O.orbiting || O.orbiting.orbiting != biggest_doom)) + O.ManualFollow(biggest_doom) + +/datum/action/innate/augury + name = "Auto Follow Debris" + icon_icon = 'icons/obj/meteor.dmi' + button_icon_state = "flaming" + background_icon_state = ACTION_BUTTON_DEFAULT_BACKGROUND + +/datum/action/innate/augury/Destroy() + if(owner) + SSaugury.watchers -= owner + return ..() + +/datum/action/innate/augury/Activate() + SSaugury.watchers += owner + owner << "You are now auto-following debris." + active = TRUE + UpdateButtonIcon() + +/datum/action/innate/augury/Deactivate() + SSaugury.watchers -= owner + owner << "You are no longer auto-following debris." + active = FALSE + UpdateButtonIcon() + +/datum/action/innate/augury/UpdateButtonIcon() + ..() + if(active) + button.icon_state = "template_active" + else + button.icon_state = "template" diff --git a/code/controllers/subsystem/events.dm b/code/controllers/subsystem/events.dm index 50e1521518..718229793f 100644 --- a/code/controllers/subsystem/events.dm +++ b/code/controllers/subsystem/events.dm @@ -110,8 +110,8 @@ var/datum/subsystem/events/SSevent /datum/round_event/proc/findEventArea() //Here's a nice proc to use to find an area for your event to land in! var/list/safe_areas = list( - /area/turret_protected/ai, - /area/turret_protected/ai_upload, + /area/ai_monitored/turret_protected/ai, + /area/ai_monitored/turret_protected/ai_upload, /area/engine, /area/solar, /area/holodeck, diff --git a/code/controllers/subsystem/fastprocess.dm b/code/controllers/subsystem/fastprocess.dm deleted file mode 100644 index dfe0da21bc..0000000000 --- a/code/controllers/subsystem/fastprocess.dm +++ /dev/null @@ -1,33 +0,0 @@ -var/datum/subsystem/fastprocess/SSfastprocess - -/datum/subsystem/fastprocess - name = "Fast Process" - priority = 25 - flags = SS_BACKGROUND|SS_POST_FIRE_TIMING|SS_NO_INIT - wait = 2 - - var/list/processing = list() - var/list/currentrun = list() - -/datum/subsystem/fastprocess/New() - NEW_SS_GLOBAL(SSfastprocess) - -/datum/subsystem/fastprocess/stat_entry() - ..("FP:[processing.len]") - - -/datum/subsystem/fastprocess/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 - SSfastprocess.processing -= thing - if (MC_TICK_CHECK) - return diff --git a/code/controllers/subsystem/fire_burning.dm b/code/controllers/subsystem/fire_burning.dm new file mode 100644 index 0000000000..2ace744430 --- /dev/null +++ b/code/controllers/subsystem/fire_burning.dm @@ -0,0 +1,42 @@ +var/datum/subsystem/fire_burning/SSfire_burning + +/datum/subsystem/fire_burning + name = "Fire Burning" + priority = 40 + flags = SS_NO_INIT|SS_BACKGROUND + + var/list/currentrun = list() + var/list/processing = list() + +/datum/subsystem/fire_burning/New() + NEW_SS_GLOBAL(SSfire_burning) + + +/datum/subsystem/fire_burning/stat_entry() + ..("P:[processing.len]") + + +/datum/subsystem/fire_burning/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/obj/O = currentrun[currentrun.len] + currentrun.len-- + if (!O || qdeleted(O)) + processing -= O + if (MC_TICK_CHECK) + return + continue + + if(O.resistance_flags & ON_FIRE) + O.take_damage(20, BURN, "fire", 0) + else + processing -= O + + if (MC_TICK_CHECK) + return + diff --git a/code/controllers/subsystem/garbage.dm b/code/controllers/subsystem/garbage.dm index 819c2e4ec1..73de5173c6 100644 --- a/code/controllers/subsystem/garbage.dm +++ b/code/controllers/subsystem/garbage.dm @@ -70,7 +70,7 @@ var/datum/subsystem/garbage_collector/SSgarbage Queue(ref) tobequeued.Cut(1, 2) -/datum/subsystem/garbage_collector/proc/HandleQueue(time_to_stop) +/datum/subsystem/garbage_collector/proc/HandleQueue() delslasttick = 0 gcedlasttick = 0 var/time_to_kill = world.time - collection_timeout // Anything qdel() but not GC'd BEFORE this time needs to be manually del() @@ -121,7 +121,7 @@ var/datum/subsystem/garbage_collector/SSgarbage ++totalgcs /datum/subsystem/garbage_collector/proc/QueueForQueuing(datum/A) - if (istype(A) && isnull(A.gc_destroyed)) + if (istype(A) && A.gc_destroyed == GC_CURRENTLY_BEING_QDELETED) tobequeued += A A.gc_destroyed = GC_QUEUED_FOR_QUEUING @@ -142,7 +142,7 @@ var/datum/subsystem/garbage_collector/SSgarbage queue[refid] = gctime /datum/subsystem/garbage_collector/proc/HardQueue(datum/A) - if (istype(A) && isnull(A.gc_destroyed)) + if (istype(A) && A.gc_destroyed == GC_CURRENTLY_BEING_QDELETED) tobequeued += A A.gc_destroyed = GC_QUEUED_FOR_HARD_DEL @@ -158,11 +158,12 @@ var/datum/subsystem/garbage_collector/SSgarbage if(!D) return #ifdef TESTING - SSgarbage.qdel_list += "[A.type]" + SSgarbage.qdel_list += "[D.type]" #endif if(!istype(D)) del(D) else if(isnull(D.gc_destroyed)) + D.gc_destroyed = GC_CURRENTLY_BEING_QDELETED var/hint = D.Destroy(force) // Let our friend know they're about to get fucked up. if(!D) return @@ -171,6 +172,7 @@ var/datum/subsystem/garbage_collector/SSgarbage SSgarbage.QueueForQueuing(D) if (QDEL_HINT_LETMELIVE, QDEL_HINT_IWILLGC) //qdel should let the object live after calling destory. if(!force) + D.gc_destroyed = null //clear the gc variable (important!) return // Returning LETMELIVE after being told to force destroy // indicates the objects Destroy() does not respect force @@ -191,13 +193,15 @@ var/datum/subsystem/garbage_collector/SSgarbage if (QDEL_HINT_FINDREFERENCE)//qdel will, if TESTING is enabled, display all references to this object, then queue the object for deletion. SSgarbage.QueueForQueuing(D) #ifdef TESTING - A.find_references() + D.find_references() #endif else if(!SSgarbage.noqdelhint["[D.type]"]) SSgarbage.noqdelhint["[D.type]"] = "[D.type]" testing("WARNING: [D.type] is not returning a qdel hint. It is being placed in the queue. Further instances of this type will also be queued.") SSgarbage.QueueForQueuing(D) + else if(D.gc_destroyed == GC_CURRENTLY_BEING_QDELETED) + CRASH("[D.type] destroy proc was called multiple times, likely due to a qdel loop in the Destroy logic") // Returns 1 if the object has been queued for deletion. /proc/qdeleted(datum/D) @@ -207,6 +211,14 @@ var/datum/subsystem/garbage_collector/SSgarbage return TRUE return FALSE +// Returns true if the object's destroy has been called (set just before it is called) +/proc/qdestroying(datum/D) + if(!istype(D)) + return FALSE + if(D.gc_destroyed == GC_CURRENTLY_BEING_QDELETED) + return TRUE + return FALSE + // Default implementation of clean-up code. // This should be overridden to remove all references pointing to the object being destroyed. // Return the appropriate QDEL_HINT; in most cases this is QDEL_HINT_QUEUE. @@ -217,15 +229,18 @@ var/datum/subsystem/garbage_collector/SSgarbage /datum/var/gc_destroyed //Time when this object was destroyed. #ifdef TESTING -/client/var/running_find_references /datum/var/running_find_references -/datum/verb/find_references() +/datum/verb/find_refs() set category = "Debug" set name = "Find References" set background = 1 set src in world + find_references(FALSE) + +/datum/proc/find_references(skip_alert) + set background = 1 running_find_references = type if(usr && usr.client) if(usr.client.running_find_references) @@ -237,9 +252,10 @@ var/datum/subsystem/garbage_collector/SSgarbage SSgarbage.next_fire = world.time + world.tick_lag return - if(alert("Running this will create a lot of lag until it finishes. You can cancel it by running it again. Would you like to begin the search?", "Find References", "Yes", "No") == "No") - running_find_references = null - return + if(!skip_alert) + if(alert("Running this will lock everything up for about 5 minutes. Would you like to begin the search?", "Find References", "Yes", "No") == "No") + running_find_references = null + return //this keeps the garbage collector from failing to collect objects being searched for in here SSgarbage.can_fire = 0 @@ -248,13 +264,7 @@ var/datum/subsystem/garbage_collector/SSgarbage usr.client.running_find_references = type testing("Beginning search for references to a [type].") - var/list/things = list() - for(var/client/thing) - things |= thing - for(var/datum/thing) - things |= thing - testing("Collected list of things in search for references to a [type]. ([things.len] Thing\s)") - for(var/datum/thing in things) + for(var/datum/thing in world) if(usr && usr.client && !usr.client.running_find_references) return for(var/varname in thing.vars) var/variable = thing.vars[varname] @@ -290,7 +300,7 @@ var/datum/subsystem/garbage_collector/SSgarbage qdel(src) if(!running_find_references) - find_references() + find_references(TRUE) /client/verb/show_qdeleted() set category = "Debug" diff --git a/code/controllers/subsystem/icon_smooth.dm b/code/controllers/subsystem/icon_smooth.dm index 2b19a0dbf7..beb91c3a8e 100644 --- a/code/controllers/subsystem/icon_smooth.dm +++ b/code/controllers/subsystem/icon_smooth.dm @@ -16,7 +16,7 @@ var/datum/subsystem/icon_smooth/SSicon_smooth while(smooth_queue.len) var/atom/A = smooth_queue[smooth_queue.len] smooth_queue.len-- - ss_smooth_icon(A) + smooth_icon(A) if (MC_TICK_CHECK) return if (!smooth_queue.len) @@ -25,8 +25,12 @@ var/datum/subsystem/icon_smooth/SSicon_smooth /datum/subsystem/icon_smooth/Initialize() smooth_zlevel(1,TRUE) smooth_zlevel(2,TRUE) - for(var/V in smooth_queue) + var/queue = smooth_queue + smooth_queue = list() + for(var/V in queue) var/atom/A = V - if(A.z == 1 || A.z == 2) - smooth_queue -= A + if(!A || A.z <= 2) + continue + smooth_icon(A) + ..() \ No newline at end of file diff --git a/code/controllers/subsystem/jobs.dm b/code/controllers/subsystem/jobs.dm index f4925cba6d..8b0968bec1 100644 --- a/code/controllers/subsystem/jobs.dm +++ b/code/controllers/subsystem/jobs.dm @@ -328,7 +328,7 @@ var/datum/subsystem/job/SSjob for(var/mob/new_player/player in unassigned) if(PopcapReached()) RejectPlayer(player) - else if(player.client.prefs.userandomjob) + else if(player.client.prefs.joblessrole == BERANDOMJOB) GiveRandomJob(player) Debug("DO, Standard Check end") @@ -339,8 +339,15 @@ var/datum/subsystem/job/SSjob for(var/mob/new_player/player in unassigned) if(PopcapReached()) RejectPlayer(player) - Debug("AC2 Assistant located, Player: [player]") - AssignRole(player, "Assistant") + if(player.client.prefs.joblessrole == BEASSISTANT) + Debug("AC2 Assistant located, Player: [player]") + AssignRole(player, "Assistant") + else // For those who don't want to play if their preference were filled, back you go. + RejectPlayer(player) + + for(var/mob/new_player/player in unassigned) //Players that wanted to back out but couldn't because they're antags (can you feel the edge case?) + GiveRandomJob(player) + return 1 //Gives the player the stuff he should have with his rank @@ -375,7 +382,7 @@ var/datum/subsystem/job/SSjob if(clear) S = T continue - if(istype(S, /obj/effect/landmark) && istype(S.loc, /turf)) + if(istype(S, /obj/effect/landmark) && isturf(S.loc)) H.loc = S.loc if(H.mind) @@ -394,7 +401,7 @@ var/datum/subsystem/job/SSjob H << "You are playing a job that is important for Game Progression. If you have to disconnect, please notify the admins via adminhelp." if(config.minimal_access_threshold) H << "As this station was initially staffed with a [config.jobs_have_minimal_access ? "full crew, only your job's necessities" : "skeleton crew, additional access may"] have been added to your ID card." - return 1 + return H /datum/subsystem/job/proc/setup_officer_positions() @@ -470,7 +477,8 @@ var/datum/subsystem/job/SSjob /datum/subsystem/job/proc/RejectPlayer(mob/new_player/player) if(player.mind && player.mind.special_role) return - Debug("Popcap overflow Check observer located, Player: [player]") + if(PopcapReached()) + Debug("Popcap overflow Check observer located, Player: [player]") player << "You have failed to qualify for any job you desired." unassigned -= player player.ready = 0 diff --git a/code/controllers/subsystem/lighting.dm b/code/controllers/subsystem/lighting.dm index 2eac9a1021..388ca3e231 100644 --- a/code/controllers/subsystem/lighting.dm +++ b/code/controllers/subsystem/lighting.dm @@ -1,65 +1,116 @@ - var/datum/subsystem/lighting/SSlighting -/var/list/lighting_update_lights = list() // List of lighting sources queued for update. -/var/list/lighting_update_corners = list() // List of lighting corners queued for update. -/var/list/lighting_update_overlays = list() // List of lighting overlays queued for update. - -/var/list/lighting_update_lights_old = list() // List of lighting sources currently being updated. -/var/list/lighting_update_corners_old = list() // List of lighting corners currently being updated. -/var/list/lighting_update_overlays_old = list() // List of lighting overlays currently being updated. +#define SSLIGHTING_LIGHTS 1 +#define SSLIGHTING_TURFS 2 /datum/subsystem/lighting - name = "lighting" + name = "Lighting" init_order = 1 - wait = 2 - display_order = 5 - priority = 40 + wait = 1 flags = SS_POST_FIRE_TIMING + priority = 40 + display_order = 5 + + var/list/changed_lights = list() //list of all datum/light_source that need updating + var/changed_lights_workload = 0 //stats on the largest number of lights (max changed_lights.len) + var/list/changed_turfs = list() //list of all turfs which may have a different light level + var/changed_turfs_workload = 0 //stats on the largest number of turfs changed (max changed_turfs.len) /datum/subsystem/lighting/New() NEW_SS_GLOBAL(SSlighting) return ..() -/datum/subsystem/lighting/Initialize() + +/datum/subsystem/lighting/stat_entry() + ..("L:[round(changed_lights_workload,1)]|T:[round(changed_turfs_workload,1)]") + + +//Workhorse of lighting. It cycles through each light that needs updating. It updates their +//effects and then processes every turf in the queue, updating their lighting object's appearance +//Any light that returns 1 in check() deletes itself +//By using queues we are ensuring we don't perform more updates than are necessary +/datum/subsystem/lighting/fire(resumed = 0) + var/ticklimit = CURRENT_TICKLIMIT + //split our tick allotment in half so we don't spend it all on lightshift checks + CURRENT_TICKLIMIT = world.tick_usage + ((ticklimit-world.tick_usage)/2) + + var/list/changed_lights = src.changed_lights + if (!resumed) + changed_lights_workload = MC_AVERAGE(changed_lights_workload, changed_lights.len) + var/i = 1 + while (i <= changed_lights.len) + var/datum/light_source/LS = changed_lights[i++] + LS.check() + if (MC_TICK_CHECK) + break + if (i > 1) + changed_lights.Cut(1,i) + + CURRENT_TICKLIMIT = ticklimit + var/list/changed_turfs = src.changed_turfs + if (!resumed) + changed_turfs_workload = MC_AVERAGE(changed_turfs_workload, changed_turfs.len) + i = 1 + while (i <= changed_turfs.len) + var/turf/T = changed_turfs[i++] + if(T.lighting_changed) + T.redraw_lighting() + if (MC_TICK_CHECK) + break + if (i > 1) + changed_turfs.Cut(1,i) + +//same as above except it attempts to shift ALL turfs in the world regardless of lighting_changed status +/datum/subsystem/lighting/Initialize(timeofday) + var/list/turfs_to_init = block(locate(1, 1, 1), locate(world.maxx, world.maxy, world.maxz)) if (config.starlight) for(var/area/A in world) - if (A.dynamic_lighting == DYNAMIC_LIGHTING_IFSTARLIGHT) + if (A.lighting_use_dynamic == DYNAMIC_LIGHTING_IFSTARLIGHT) A.luminosity = 0 - create_all_lighting_overlays() + for(var/thing in changed_lights) + var/datum/light_source/LS = thing + LS.check() + changed_lights.Cut() -/datum/subsystem/lighting/fire() + for(var/thing in turfs_to_init) + var/turf/T = thing + T.init_lighting() + changed_turfs.Cut() - lighting_update_lights_old = lighting_update_lights //We use a different list so any additions to the update lists during a delay from scheck() don't cause things to be cut from the list without being updated. - lighting_update_lights = list() - for(var/datum/light_source/L in lighting_update_lights_old) + ..() - if(L.check() || L.destroyed || L.force_update) - L.remove_lum() - if(!L.destroyed) - L.apply_lum() +//Used to strip valid information from an existing instance and transfer it to the replacement. i.e. when a crash occurs +//It works by using spawn(-1) to transfer the data, if there is a runtime the data does not get transfered but the loop +//does not crash +/datum/subsystem/lighting/Recover() + if(!istype(SSlighting.changed_turfs)) + SSlighting.changed_turfs = list() + if(!istype(SSlighting.changed_lights)) + SSlighting.changed_lights = list() - else if(L.vis_update) //We smartly update only tiles that became (in) visible to use. - L.smart_vis_update() + for(var/thing in SSlighting.changed_lights) + var/datum/light_source/LS = thing + spawn(-1) //so we don't crash the loop (inefficient) + LS.check() - L.vis_update = FALSE - L.force_update = FALSE - L.needs_update = FALSE + for(var/thing in changed_turfs) + var/turf/T = thing + if(T.lighting_changed) + spawn(-1) + T.redraw_lighting() - lighting_update_corners_old = lighting_update_corners //Same as above. - lighting_update_corners = list() - for(var/A in lighting_update_corners_old) - var/datum/lighting_corner/C = A - - C.update_overlays() - - C.needs_update = FALSE - - lighting_update_overlays_old = lighting_update_overlays //Same as above. - lighting_update_overlays = list() - - for(var/atom/movable/lighting_overlay/O in lighting_update_overlays_old) - O.update_overlay() - O.needs_update = 0 + var/msg = "## DEBUG: [time2text(world.timeofday)] [name] subsystem restarted. Reports:\n" + for(var/varname in SSlighting.vars) + switch(varname) + if("tag","bestF","type","parent_type","vars") + continue + else + var/varval1 = SSlighting.vars[varname] + var/varval2 = vars[varname] + if(istype(varval1,/list)) + varval1 = "/list([length(varval1)])" + varval2 = "/list([length(varval2)])" + msg += "\t [varname] = [varval1] -> [varval2]\n" + world.log << msg diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm index b39fca4a6e..f86153f34f 100644 --- a/code/controllers/subsystem/mapping.dm +++ b/code/controllers/subsystem/mapping.dm @@ -34,7 +34,7 @@ var/datum/subsystem/mapping/SSmapping else space_zlevels += i - seedRuins(space_zlevels, rand(8,16), /area/space, space_ruins_templates) + seedRuins(space_zlevels, config.space_budget, /area/space, space_ruins_templates) // Set up Z-level transistions. setup_map_transitions() diff --git a/code/controllers/subsystem/minimap.dm b/code/controllers/subsystem/minimap.dm index 421d9ba312..1687cb1b2b 100644 --- a/code/controllers/subsystem/minimap.dm +++ b/code/controllers/subsystem/minimap.dm @@ -13,25 +13,55 @@ var/datum/subsystem/minimap/SSminimap NEW_SS_GLOBAL(SSminimap) /datum/subsystem/minimap/Initialize(timeofday) - if(!config.generate_minimaps) - world << "Minimap generation disabled... Skipping" - return var/hash = md5(file2text("_maps/[MAP_PATH]/[MAP_FILE]")) - if(hash == trim(file2text(hash_path()))) - return ..() - - for(var/z in z_levels) - generate(z) - register_asset("minimap_[z].png", fcopy_rsc(map_path(z))) - fdel(hash_path()) - text2file(hash, hash_path()) + if(config.generate_minimaps) + if(hash == trim(file2text(hash_path()))) + for(var/z in z_levels) //We have these files cached, let's register them + register_asset("minimap_[z].png", fcopy_rsc(map_path(z))) + return ..() + for(var/z in z_levels) + generate(z) + register_asset("minimap_[z].png", fcopy_rsc(map_path(z))) + fdel(hash_path()) + text2file(hash, hash_path()) + else + world << "Minimap generation disabled. Loading from cache..." + var/fileloc = 0 + if(check_files(0)) //Let's first check if we have maps cached in the data folder. NOTE: This will override the backup files even if this map is older. + world.log << "cache" + if(hash != trim(file2text(hash_path()))) + world << "Loaded cached minimap is outdated. There may be minor discrepancies in layout." //Disclaimer against players saying map is wrong. + fileloc = 0 + else + if(!check_files(1)) + world << "Failed to load backup minimap file. Aborting." //We couldn't find something. Bail to prevent issues with null files + return + fileloc = 1 //No map image cached with the current map, and we have a backup. Let's fall back to it. + world << "No cached minimaps detected. Backup files loaded." + for(var/z in z_levels) + register_asset("minimap_[z].png", fcopy_rsc(map_path(z,fileloc))) ..() -/datum/subsystem/minimap/proc/hash_path() - return "data/minimaps/[MAP_NAME].md5" +/datum/subsystem/minimap/proc/check_files(backup) // If the backup argument is true, looks in the icons folder. If false looks in the data folder. + for(var/z in z_levels) + if(!fexists(file(map_path(z,backup)))) //Let's make sure we have a file for this map + if(backup) + world.log << "Failed to find backup file for map [MAP_NAME] on zlevel [z]." + return FALSE + return TRUE -/datum/subsystem/minimap/proc/map_path(z) - return "data/minimaps/[MAP_NAME]_[z].png" + +/datum/subsystem/minimap/proc/hash_path(backup) + if(backup) + return "icons/minimaps/[MAP_NAME].md5" + else + return "data/minimaps/[MAP_NAME].md5" + +/datum/subsystem/minimap/proc/map_path(z,backup) + if(backup) + return "icons/minimaps/[MAP_NAME]_[z].png" + else + return "data/minimaps/[MAP_NAME]_[z].png" /datum/subsystem/minimap/proc/send(client/client) for(var/z in z_levels) @@ -43,24 +73,10 @@ var/datum/subsystem/minimap/SSminimap // Scale it up to our target size. minimap.Scale(MINIMAP_SIZE, MINIMAP_SIZE) - var/counter = 512 // Loop over turfs and generate icons. for(var/T in block(locate(x1, y1, z), locate(x2, y2, z))) generate_tile(T, minimap) - //byond bug, this fixes OOM crashes by flattening and reseting the minimap icon holder every so and so tiles - counter-- - if(counter <= 0) - counter = 512 - var/icon/flatten = new /icon() - flatten.Insert(minimap, "", SOUTH, 1, 0) - del(minimap) - minimap = flatten - stoplag() //we have to sleep in order to get byond to clear out the proc's garbage bin - - CHECK_TICK - - // Create a new icon and insert the generated minimap, so that BYOND doesn't generate different directions. var/icon/final = new /icon() final.Insert(minimap, "", SOUTH, 1, 0) @@ -69,9 +85,9 @@ var/datum/subsystem/minimap/SSminimap /datum/subsystem/minimap/proc/generate_tile(turf/tile, icon/minimap) var/icon/tile_icon var/obj/obj - var/list/obj_icons = list() + var/list/obj_icons // Don't use icons for space, just add objects in space if they exist. - if(istype(tile, /turf/open/space)) + if(isspaceturf(tile)) obj = locate(/obj/structure/lattice/catwalk) in tile if(obj) tile_icon = new /icon('icons/obj/smooth_structures/catwalk.dmi', "catwalk", SOUTH) @@ -86,18 +102,20 @@ var/datum/subsystem/minimap/SSminimap tile_icon = new /icon('icons/obj/atmospherics/pipes/transit_tube.dmi', obj.icon_state, obj.dir) else tile_icon = new /icon(tile.icon, tile.icon_state, tile.dir) - obj_icons.Cut() + obj_icons = list() obj = locate(/obj/structure) in tile if(obj) - obj_icons += getFlatIcon(obj) + obj_icons += new /icon(obj.icon, obj.icon_state, obj.dir, 1, 0) obj = locate(/obj/machinery) in tile if(obj) obj_icons += new /icon(obj.icon, obj.icon_state, obj.dir, 1, 0) obj = locate(/obj/structure/window) in tile if(obj) obj_icons += new /icon('icons/obj/smooth_structures/window.dmi', "window", SOUTH) - + obj = locate(/obj/structure/table) in tile + if(obj) + obj_icons += new /icon('icons/obj/smooth_structures/table.dmi', "table", SOUTH) for(var/I in obj_icons) var/icon/obj_icon = I tile_icon.Blend(obj_icon, ICON_OVERLAY) @@ -107,4 +125,3 @@ var/datum/subsystem/minimap/SSminimap tile_icon.Scale(TILE_SIZE, TILE_SIZE) // Add the tile to the minimap. minimap.Blend(tile_icon, ICON_OVERLAY, ((tile.x - 1) * TILE_SIZE), ((tile.y - 1) * TILE_SIZE)) - del(tile_icon) diff --git a/code/controllers/subsystem/orbit.dm b/code/controllers/subsystem/orbit.dm new file mode 100644 index 0000000000..da52ae43f7 --- /dev/null +++ b/code/controllers/subsystem/orbit.dm @@ -0,0 +1,50 @@ +var/datum/subsystem/orbit/SSorbit + +/datum/subsystem/orbit + name = "Orbits" + priority = 35 + wait = 2 + flags = SS_NO_INIT|SS_TICKER + + var/list/currentrun = list() + var/list/processing = list() + +/datum/subsystem/orbit/New() + NEW_SS_GLOBAL(SSorbit) + + +/datum/subsystem/orbit/stat_entry() + ..("P:[processing.len]") + + +/datum/subsystem/orbit/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/orbit/O = currentrun[currentrun.len] + currentrun.len-- + if (!O) + processing -= O + if (MC_TICK_CHECK) + return + continue + if (!O.orbiter) + qdel(O) + if (MC_TICK_CHECK) + return + continue + if (O.lastprocess >= world.time) //we already checked recently + if (MC_TICK_CHECK) + return + continue + var/targetloc = get_turf(O.orbiting) + if (targetloc != O.lastloc || O.orbiter.loc != targetloc) + O.Check(targetloc) + if (MC_TICK_CHECK) + return + + diff --git a/code/controllers/subsystem/pai.dm b/code/controllers/subsystem/pai.dm index 1978c1b167..1a556e4fa2 100644 --- a/code/controllers/subsystem/pai.dm +++ b/code/controllers/subsystem/pai.dm @@ -1,14 +1,14 @@ var/datum/subsystem/pai/SSpai +var/list/obj/item/device/paicard/pai_card_list = list() /datum/subsystem/pai name = "pAI" - init_order = 20 - flags = SS_NO_FIRE|SS_NO_INIT - var/askDelay = 600 - var/const/NEVER_FOR_THIS_ROUND = -1 + flags = SS_NO_INIT|SS_NO_FIRE + var/list/candidates = list() - var/list/asked = list() + var/ghost_spam = FALSE + var/spam_delay = 100 /datum/subsystem/pai/New() NEW_SS_GLOBAL(SSpai) @@ -29,7 +29,6 @@ var/datum/subsystem/pai/SSpai pai.key = candidate.key card.setPersonality(pai) - card.looking_for_personality = 0 ticker.mode.update_cult_icons_removed(card.pai.mind) ticker.mode.update_rev_icons_removed(card.pai.mind) @@ -76,8 +75,8 @@ var/datum/subsystem/pai/SSpai if("submit") if(candidate) candidate.ready = 1 - for(var/obj/item/device/paicard/p in world) - if(p.looking_for_personality == 1) + for(var/obj/item/device/paicard/p in pai_card_list) + if(!p.pai) p.alertUpdate() usr << browse(null, "window=paiRecruit") return @@ -134,8 +133,20 @@ var/datum/subsystem/pai/SSpai M << browse(dat, "window=paiRecruit") +/datum/subsystem/pai/proc/spam_again() + ghost_spam = FALSE + /datum/subsystem/pai/proc/findPAI(obj/item/device/paicard/p, mob/user) - requestRecruits() + if(!ghost_spam) + ghost_spam = TRUE + for(var/mob/dead/observer/G in player_list) + if(!G.key || !G.client) + continue + if(!(ROLE_PAI in G.client.prefs.be_special)) + continue + G << 'sound/misc/server-ready.ogg' //Alerting them to their consideration + G << "Someone is requesting a pAI personality! Use the pAI button to submit yourself as one." + addtimer(src, "spam_again", spam_delay) var/list/available = list() for(var/datum/paiCandidate/c in SSpai.candidates) if(c.ready) @@ -180,36 +191,6 @@ var/datum/subsystem/pai/SSpai user << browse(dat, "window=findPai") -/datum/subsystem/pai/proc/requestRecruits() - for(var/mob/dead/observer/O in player_list) - if(jobban_isbanned(O, ROLE_PAI)) - continue - if(asked[O.ckey]) - if(world.time < asked[O.ckey] + askDelay || asked[O.ckey] == NEVER_FOR_THIS_ROUND) - continue - else - asked.Remove(O.ckey) - if(O.client) - var/hasSubmitted = 0 - for(var/datum/paiCandidate/c in SSpai.candidates) - if(c.key == O.key) - hasSubmitted = 1 - if(!hasSubmitted && (ROLE_PAI in O.client.prefs.be_special)) - question(O.client) - -/datum/subsystem/pai/proc/question(client/C) - set waitfor = 0 - if(!C) - return - asked[C.ckey] = world.time - var/response = tgalert(C, "Someone is requesting a pAI personality. Would you like to play as a personal AI?", "pAI Request", "Yes", "No", "Never for this round", StealFocus=0, Timeout=askDelay) - if(!C) - return //handle logouts that happen whilst the alert is waiting for a response. - if(response == "Yes") - recruitWindow(C.mob) - else if (response == "Never for this round") - asked[C.ckey] = NEVER_FOR_THIS_ROUND - /datum/paiCandidate var/name var/key diff --git a/code/controllers/subsystem/parallax.dm b/code/controllers/subsystem/parallax.dm index 5f8f373212..a1921782ea 100644 --- a/code/controllers/subsystem/parallax.dm +++ b/code/controllers/subsystem/parallax.dm @@ -1,12 +1,42 @@ var/datum/subsystem/parallax/SSparallax /datum/subsystem/parallax - name = "Space Parallax" - init_order = 18 - flags = SS_NO_FIRE + name = "parallax" + wait = 2 + flags = SS_POST_FIRE_TIMING | SS_FIRE_IN_LOBBY | SS_BACKGROUND | SS_NO_INIT + priority = 65 + var/list/currentrun /datum/subsystem/parallax/New() - NEW_SS_GLOBAL(SSparallax) + NEW_SS_GLOBAL(SSparallax) + return ..() -/datum/subsystem/parallax/Initialize() - create_global_parallax_icons() +/datum/subsystem/parallax/fire(resumed = 0) + if (!resumed) + src.currentrun = clients.Copy() + + //cache for sanic speed (lists are references anyways) + var/list/currentrun = src.currentrun + + while(length(currentrun)) + var/client/C = currentrun[currentrun.len] + currentrun.len-- + if (!C || !C.eye) + if (MC_TICK_CHECK) + return + continue + var/atom/movable/A = C.eye + if(!A) + return + for (A; isloc(A.loc) && !isturf(A.loc); A = A.loc); + + if(A != C.movingmob) + if(C.movingmob != null) + C.movingmob.client_mobs_in_contents -= C.mob + UNSETEMPTY(C.movingmob.client_mobs_in_contents) + LAZYINITLIST(A.client_mobs_in_contents) + A.client_mobs_in_contents += C.mob + C.movingmob = A + if (MC_TICK_CHECK) + return + currentrun = null \ No newline at end of file diff --git a/code/controllers/subsystem/persistence.dm b/code/controllers/subsystem/persistence.dm new file mode 100644 index 0000000000..dd1283c325 --- /dev/null +++ b/code/controllers/subsystem/persistence.dm @@ -0,0 +1,87 @@ +var/datum/subsystem/persistence/SSpersistence + +/datum/subsystem/persistence + name = "Persistence" + init_order = -100 + flags = SS_NO_FIRE + var/savefile/secret_satchels + var/list/satchel_blacklist = list() //this is a typecache + var/list/new_secret_satchels = list() //these are objects + var/old_secret_satchels = "" + +/datum/subsystem/persistence/New() + NEW_SS_GLOBAL(SSpersistence) + +/datum/subsystem/persistence/Initialize() + secret_satchels = new /savefile("data/npc_saves/SecretSatchels.sav") + satchel_blacklist = typecacheof(list(/obj/item/stack/tile/plasteel, /obj/item/weapon/crowbar)) + secret_satchels[MAP_NAME] >> old_secret_satchels + + var/list/expanded_old_satchels = list() + var/placed_satchels = 0 + + if(!isnull(old_secret_satchels)) + expanded_old_satchels = splittext(old_secret_satchels,"#") + if(PlaceSecretSatchel(expanded_old_satchels)) + placed_satchels++ + else + expanded_old_satchels.len = 0 + + var/list/free_satchels = list() + for(var/turf/T in shuffle(block(locate(TRANSITIONEDGE,TRANSITIONEDGE,ZLEVEL_STATION), locate(world.maxx-TRANSITIONEDGE,world.maxy-TRANSITIONEDGE,ZLEVEL_STATION)))) //Nontrivially expensive but it's roundstart only + if(isfloorturf(T) && !istype(T,/turf/open/floor/plating/)) + free_satchels += new /obj/item/weapon/storage/backpack/satchel/flat/secret(T) + if(!isemptylist(free_satchels) && ((free_satchels.len + placed_satchels) >= (50 - expanded_old_satchels.len) * 0.1)) //up to six tiles, more than enough to kill anything that moves + break + for(var/mob/living/simple_animal/parrot/Poly/P in living_mob_list) + twitterize(P.speech_buffer, "polytalk") + break //Who's been duping the bird?! + + ..() + +/datum/subsystem/persistence/proc/CollectData() + CollectSecretSatchels() + +/datum/subsystem/persistence/proc/PlaceSecretSatchel(list/expanded_old_satchels) + var/satchel_string + + if(expanded_old_satchels.len >= 20) //guards against low drop pools assuring that one player cannot reliably find his own gear. + satchel_string = pick_n_take(expanded_old_satchels) + + old_secret_satchels = jointext(expanded_old_satchels,"#") + secret_satchels[MAP_NAME] << old_secret_satchels + + var/list/chosen_satchel = splittext(satchel_string,"|") + if(!chosen_satchel || isemptylist(chosen_satchel) || chosen_satchel.len != 3) //Malformed + return 0 + + var/path = text2path(chosen_satchel[3]) //If the item no longer exist, this returns null + if(!path) + return 0 + + var/obj/item/weapon/storage/backpack/satchel/flat/F = new() + F.x = text2num(chosen_satchel[1]) + F.y = text2num(chosen_satchel[2]) + F.z = ZLEVEL_STATION + if(isfloorturf(F.loc) && !istype(F.loc,/turf/open/floor/plating/)) + F.hide(1) + new path(F) + return 1 + +/datum/subsystem/persistence/proc/CollectSecretSatchels() + for(var/A in new_secret_satchels) + var/obj/item/weapon/storage/backpack/satchel/flat/F = A + if(qdeleted(F) || F.z != ZLEVEL_STATION || F.invisibility != INVISIBILITY_MAXIMUM) + continue + var/list/savable_obj = list() + for(var/obj/O in F) + if(is_type_in_typecache(O, satchel_blacklist) || O.admin_spawned) + continue + if(O.persistence_replacement) + savable_obj += O.persistence_replacement + else + savable_obj += O.type + if(isemptylist(savable_obj)) + continue + old_secret_satchels += "[F.x]|[F.y]|[pick(savable_obj)]#" + secret_satchels[MAP_NAME] << old_secret_satchels diff --git a/code/controllers/subsystem/pool.dm b/code/controllers/subsystem/pool.dm new file mode 100644 index 0000000000..245e733e98 --- /dev/null +++ b/code/controllers/subsystem/pool.dm @@ -0,0 +1,48 @@ +var/datum/subsystem/pool/SSpool + +/datum/subsystem/pool + name = "Pool" + init_order = 20 + flags = SS_BACKGROUND | SS_FIRE_IN_LOBBY + var/list/global_pool + var/list/pool_levels = list() + var/sum = 0 + + var/list/maintained_types = list( + /obj/item/stack/tile/plasteel = 100 + ) + + var/list/stats_placed_in_pool = list() + var/list/stats_pooled_or_newed = list() + var/list/stats_reused = list() + var/list/stats_created_new = list() + +/datum/subsystem/pool/New() + NEW_SS_GLOBAL(SSpool) + +/datum/subsystem/pool/Initialize(timeofday) + global_pool = GlobalPool + +/datum/subsystem/pool/stat_entry(msg) + if(global_pool) + msg += "Types: [global_pool.len]|Total Pooled Objects: [sum]" + else + msg += "NULL POOL" + ..(msg) + +/datum/subsystem/pool/fire() + sum = 0 + for(var/type in global_pool + maintained_types) + var/list/L = global_pool[type] + var/required_number = maintained_types[type] || 0 + + // Update pool levels and tracker + var/amount = 0 + if(L) + amount = L.len + sum += amount + + // why yes, just inflate the pool at one item per tick + if(amount < required_number) + var/diver = new type + qdel(diver) diff --git a/code/controllers/subsystem/processing/fastprocess.dm b/code/controllers/subsystem/processing/fastprocess.dm new file mode 100644 index 0000000000..7a46f253ef --- /dev/null +++ b/code/controllers/subsystem/processing/fastprocess.dm @@ -0,0 +1,10 @@ +//Fires five times every second. + +var/datum/subsystem/processing/fastprocess/SSfastprocess +/datum/subsystem/processing/fastprocess + name = "Fast Processing" + wait = 2 + stat_tag = "FP" + +/datum/subsystem/processing/fastprocess/New() + NEW_SS_GLOBAL(SSfastprocess) diff --git a/code/controllers/subsystem/objects.dm b/code/controllers/subsystem/processing/objects.dm similarity index 83% rename from code/controllers/subsystem/objects.dm rename to code/controllers/subsystem/processing/objects.dm index c3c01ec47e..7c4852ea3a 100644 --- a/code/controllers/subsystem/objects.dm +++ b/code/controllers/subsystem/processing/objects.dm @@ -14,14 +14,13 @@ var/datum/subsystem/objects/SSobj var/list/atom_spawners = list() var/list/processing = list() var/list/currentrun = list() - var/list/burning = list() /datum/subsystem/objects/New() NEW_SS_GLOBAL(SSobj) /datum/subsystem/objects/Initialize(timeofdayl) trigger_atom_spawners() - setupGenetics() + setupGenetics() //to set the mutations' place in structural enzymes, so monkey.initialize() knows where to put the monkey mutation. for(var/thing in world) var/atom/A = thing A.initialize() @@ -55,12 +54,6 @@ var/datum/subsystem/objects/SSobj if (MC_TICK_CHECK) return - for(var/obj/burningobj in SSobj.burning) - if(burningobj && (burningobj.burn_state == ON_FIRE)) - if(burningobj.burn_world_time < world.time) - burningobj.burn() - else - SSobj.burning.Remove(burningobj) /datum/subsystem/objects/proc/setup_template_objects(list/objects) trigger_atom_spawners(0, ignore_z=TRUE) @@ -73,5 +66,3 @@ var/datum/subsystem/objects/SSobj atom_spawners = SSobj.atom_spawners if (istype(SSobj.processing)) processing = SSobj.processing - if (istype(SSobj.burning)) - burning = SSobj.burning \ No newline at end of file diff --git a/code/controllers/subsystem/processing/processing.dm b/code/controllers/subsystem/processing/processing.dm new file mode 100644 index 0000000000..92540ba442 --- /dev/null +++ b/code/controllers/subsystem/processing/processing.dm @@ -0,0 +1,34 @@ +//Used to process objects. Fires once every second. + +var/datum/subsystem/processing/SSprocessing +/datum/subsystem/processing + name = "Processing" + priority = 25 + flags = SS_BACKGROUND|SS_POST_FIRE_TIMING|SS_NO_INIT + wait = 10 + + var/stat_tag = "P" //Used for logging + var/list/processing = list() + var/list/currentrun = list() + +/datum/subsystem/processing/New() + NEW_SS_GLOBAL(SSprocessing) + +/datum/subsystem/processing/stat_entry() + ..("[stat_tag]:[processing.len]") + +/datum/subsystem/processing/fire(resumed = 0) + if (!resumed) + currentrun = processing.Copy() + //cache for sanic speed (lists are references anyways) + var/list/current_run = currentrun + + while(current_run.len) + var/datum/thing = current_run[current_run.len] + current_run.len-- + if(thing) + thing.process(wait) + else + processing -= thing + if (MC_TICK_CHECK) + return diff --git a/code/controllers/subsystem/religion.dm b/code/controllers/subsystem/religion.dm new file mode 100644 index 0000000000..69ec3fe7d5 --- /dev/null +++ b/code/controllers/subsystem/religion.dm @@ -0,0 +1,17 @@ +var/datum/subsystem/religion/SSreligion + +/datum/subsystem/religion + name = "Religion" + init_order = 19 + flags = SS_NO_FIRE|SS_NO_INIT + + var/bible_deity_name + var/Bible_icon_state + var/Bible_item_state + var/Bible_name + var/Bible_deity_name + + var/holy_weapon + +/datum/subsystem/religion/New() + NEW_SS_GLOBAL(SSreligion) diff --git a/code/controllers/subsystem/server_maintenance.dm b/code/controllers/subsystem/server_maintenance.dm index 70c03b7591..1e4b4ae76f 100644 --- a/code/controllers/subsystem/server_maintenance.dm +++ b/code/controllers/subsystem/server_maintenance.dm @@ -3,12 +3,16 @@ var/datum/subsystem/server_maint/SSserver /datum/subsystem/server_maint name = "Server Tasks" wait = 6000 - init_order = 19 - flags = SS_NO_TICK_CHECK|SS_NO_INIT + flags = SS_NO_TICK_CHECK /datum/subsystem/server_maint/New() NEW_SS_GLOBAL(SSserver) +/datum/subsystem/server_maint/Initialize(timeofday) + if (config.hub) + world.visibility = 1 + ..() + /datum/subsystem/server_maint/fire() //handle kicking inactive players if(config.kick_inactive > 0) @@ -17,7 +21,7 @@ var/datum/subsystem/server_maint/SSserver if(!istype(C.mob, /mob/dead)) log_access("AFK: [key_name(C)]") C << "You have been inactive for more than 10 minutes and have been disconnected." - del(C) + qdel(C) if(config.sql_enabled) sql_poll_players() diff --git a/code/controllers/subsystem/shuttles.dm b/code/controllers/subsystem/shuttles.dm index 8860b58864..db4cd6fbec 100644 --- a/code/controllers/subsystem/shuttles.dm +++ b/code/controllers/subsystem/shuttles.dm @@ -1,3 +1,5 @@ +#define HIGHLIGHT_DYNAMIC_TRANSIT 1 + var/datum/subsystem/shuttle/SSshuttle /datum/subsystem/shuttle @@ -10,6 +12,10 @@ var/datum/subsystem/shuttle/SSshuttle var/list/stationary = list() var/list/transit = list() + var/list/turf/transit_turfs = list() + var/list/transit_requesters = list() + var/clear_transit = FALSE + //emergency shuttle stuff var/obj/docking_port/mobile/emergency/emergency var/obj/docking_port/mobile/emergency/backup/backup_shuttle @@ -18,6 +24,7 @@ var/datum/subsystem/shuttle/SSshuttle var/emergencyEscapeTime = 1200 //time taken for emergency shuttle to reach a safe distance after leaving station (in deciseconds) var/area/emergencyLastCallLoc var/emergencyNoEscape + var/list/hostileEnvironments = list() //supply shuttle stuff var/obj/docking_port/mobile/supply/supply @@ -33,6 +40,9 @@ var/datum/subsystem/shuttle/SSshuttle var/datum/round_event/shuttle_loan/shuttle_loan + var/shuttle_purchased = FALSE //If the station has purchased a replacement escape shuttle this round + var/list/shuttle_purchase_requirements_met = list() //For keeping track of ingame events that would unlock new shuttles, such as defeating a boss or discovering a secret item + /datum/subsystem/shuttle/New() NEW_SS_GLOBAL(SSshuttle) @@ -53,16 +63,87 @@ var/datum/subsystem/shuttle/SSshuttle supply_packs[P.type] = P initial_move() - ..() + setup_transit_zone() +#ifdef HIGHLIGHT_DYNAMIC_TRANSIT + color_space() +#endif +/datum/subsystem/shuttle/proc/setup_transit_zone() + if(transit_markers.len == 0) + WARNING("No /obj/effect/landmark/transit placed on the map!") + return + // transit zone + var/turf/A = get_turf(transit_markers[1]) + var/turf/B = get_turf(transit_markers[2]) + for(var/i in block(A, B)) + var/turf/T = i + T.ChangeTurf(/turf/open/space) + transit_turfs += T + T.flags |= UNUSED_TRANSIT_TURF + +#ifdef HIGHLIGHT_DYNAMIC_TRANSIT +/datum/subsystem/shuttle/proc/color_space() + if(transit_markers.len == 0) + WARNING("No /obj/effect/landmark/transit placed on the map!") + return + var/turf/A = get_turf(transit_markers[1]) + var/turf/B = get_turf(transit_markers[2]) + for(var/i in block(A, B)) + var/turf/T = i + // Only dying the "pure" space, not the transit tiles + if(istype(T, /turf/open/space/transit) || !isspaceturf(T)) + continue + if((T.x == A.x) || (T.x == B.x) || (T.y == A.y) || (T.y == B.y)) + T.color = "#ffff00" + else + T.color = "#00ffff" +#endif + + //world.log << "[transit_turfs.len] transit turfs registered" /datum/subsystem/shuttle/fire() for(var/thing in mobile) - if(thing) - var/obj/docking_port/mobile/P = thing - P.check() + if(!thing) + mobile.Remove(thing) continue - mobile.Remove(thing) + var/obj/docking_port/mobile/P = thing + P.check() + var/changed_transit = FALSE + for(var/thing in transit) + var/obj/docking_port/stationary/transit/T = thing + if(!T.owner) + qdel(T, force=TRUE) + changed_transit = TRUE + // This next one removes transit docks/zones that aren't + // immediately being used. This will mean that the zone creation + // code will be running a lot. + var/obj/docking_port/mobile/owner = T.owner + if(owner) + var/idle = owner.mode == SHUTTLE_IDLE + var/not_centcom_evac = owner.launch_status == NOLAUNCH + var/not_in_use = (!T.get_docked()) + if(idle && not_centcom_evac && not_in_use) + qdel(T, force=TRUE) + changed_transit = TRUE + if(clear_transit) + transit_requesters.Cut() + for(var/i in transit) + qdel(i, force=TRUE) + setup_transit_zone() + clear_transit = FALSE + changed_transit = TRUE +#ifdef HIGHLIGHT_DYNAMIC_TRANSIT + if(changed_transit) + color_space() +#endif + + while(transit_requesters.len) + var/requester = popleft(transit_requesters) + var/success = generate_transit_dock(requester) + if(!success) // BACK OF THE QUEUE + transit_requesters += requester + if(MC_TICK_CHECK) + return /datum/subsystem/shuttle/proc/getShuttle(id) for(var/obj/docking_port/mobile/M in mobile) @@ -105,6 +186,9 @@ var/datum/subsystem/shuttle/SSshuttle if(SHUTTLE_DOCKED) user << "The emergency shuttle is already here." return + if(SHUTTLE_IGNITING) + user << "The emergency shuttle is firing its engines to leave." + return if(SHUTTLE_ESCAPE) user << "The emergency shuttle is moving away to a safe distance." return @@ -114,22 +198,24 @@ var/datum/subsystem/shuttle/SSshuttle call_reason = trim(html_encode(call_reason)) - if(length(call_reason) < CALL_SHUTTLE_REASON_LENGTH) + if(length(call_reason) < CALL_SHUTTLE_REASON_LENGTH && seclevel2num(get_security_level()) > SEC_LEVEL_GREEN) user << "You must provide a reason." return var/area/signal_origin = get_area(user) var/emergency_reason = "\nNature of emergency:\n\n[call_reason]" - if(seclevel2num(get_security_level()) == SEC_LEVEL_RED) // There is a serious threat we gotta move no time to give them five minutes. - emergency.request(null, 0.5, signal_origin, html_decode(emergency_reason), 1) - else - emergency.request(null, 1, signal_origin, html_decode(emergency_reason), 0) + var/security_num = seclevel2num(get_security_level()) + switch(security_num) + if(SEC_LEVEL_GREEN) + emergency.request(null, 2, signal_origin, html_decode(emergency_reason), 0) + if(SEC_LEVEL_BLUE) + emergency.request(null, 1, signal_origin, html_decode(emergency_reason), 0) + else + emergency.request(null, 0.5, signal_origin, html_decode(emergency_reason), 1) // There is a serious threat we gotta move no time to give them five minutes. log_game("[key_name(user)] has called the shuttle.") message_admins("[key_name_admin(user)] has called the shuttle.") - return - // Called when an emergency shuttle mobile docking port is // destroyed, which will only happen with admin intervention /datum/subsystem/shuttle/proc/emergencyDeregister() @@ -149,19 +235,24 @@ var/datum/subsystem/shuttle/SSshuttle return if(ticker.mode.name == "meteor") return - if(seclevel2num(get_security_level()) == SEC_LEVEL_RED) - if(emergency.timeLeft(1) < emergencyCallTime * 0.25) - return - else - if(emergency.timeLeft(1) < emergencyCallTime * 0.5) - return + var/security_num = seclevel2num(get_security_level()) + switch(security_num) + if(SEC_LEVEL_GREEN) + if(emergency.timeLeft(1) < emergencyCallTime) + return + if(SEC_LEVEL_BLUE) + if(emergency.timeLeft(1) < emergencyCallTime * 0.5) + return + else + if(emergency.timeLeft(1) < emergencyCallTime * 0.25) + return return 1 /datum/subsystem/shuttle/proc/autoEvac() var/callShuttle = 1 for(var/thing in shuttle_caller_list) - if(istype(thing, /mob/living/silicon/ai)) + if(isAI(thing)) var/mob/living/silicon/ai/AI = thing if(AI.stat || !AI.client) continue @@ -181,6 +272,34 @@ var/datum/subsystem/shuttle/SSshuttle log_game("There is no means of calling the shuttle anymore. Shuttle automatically called.") message_admins("All the communications consoles were destroyed and all AIs are inactive. Shuttle called.") +/datum/subsystem/shuttle/proc/registerHostileEnvironment(datum/bad) + hostileEnvironments[bad] = TRUE + checkHostileEnvironment() + +/datum/subsystem/shuttle/proc/clearHostileEnvironment(datum/bad) + hostileEnvironments -= bad + checkHostileEnvironment() + +/datum/subsystem/shuttle/proc/checkHostileEnvironment() + for(var/datum/d in hostileEnvironments) + if(!istype(d) || qdeleted(d)) + hostileEnvironments -= d + emergencyNoEscape = hostileEnvironments.len + + if(emergencyNoEscape && (emergency.mode == SHUTTLE_IGNITING)) + emergency.mode = SHUTTLE_STRANDED + emergency.timer = null + emergency.sound_played = FALSE + priority_announce("Hostile environment detected. \ + Departure has been postponed indefinitely pending \ + conflict resolution.", null, 'sound/misc/notice1.ogg', "Priority") + if(!emergencyNoEscape && (emergency.mode == SHUTTLE_STRANDED)) + emergency.mode = SHUTTLE_DOCKED + emergency.setTimer(emergencyDockTime) + priority_announce("Hostile environment resolved. \ + You have 3 minutes to board the Emergency Shuttle.", + null, 'sound/AI/shuttledock.ogg', "Priority") + //try to move/request to dockHome if possible, otherwise dockAway. Mainly used for admin buttons /datum/subsystem/shuttle/proc/toggleShuttle(shuttleId, dockHome, dockAway, timed) var/obj/docking_port/mobile/M = getShuttle(shuttleId) @@ -213,11 +332,149 @@ var/datum/subsystem/shuttle/SSshuttle return 2 return 0 //dock successful +/datum/subsystem/shuttle/proc/request_transit_dock(obj/docking_port/mobile/M) + if(!istype(M)) + throw EXCEPTION("[M] is not a mobile docking port") + + if(M.assigned_transit) + return + else + if(!(M in transit_requesters)) + transit_requesters += M + +/datum/subsystem/shuttle/proc/generate_transit_dock(obj/docking_port/mobile/M) + // First, determine the size of the needed zone + // Because of shuttle rotation, the "width" of the shuttle is not + // always x. + var/travel_dir = M.preferred_direction + // Remember, the direction is the direction we appear to be + // coming from + var/dock_angle = dir2angle(M.preferred_direction) + M.port_angle + 180 + var/dock_dir = angle2dir(dock_angle) + + var/transit_width = SHUTTLE_TRANSIT_BORDER * 2 + var/transit_height = SHUTTLE_TRANSIT_BORDER * 2 + + // Shuttles travelling on their side have their dimensions swapped + // from our perspective + switch(dock_dir) + if(NORTH, SOUTH) + transit_width += M.width + transit_height += M.height + if(EAST, WEST) + transit_width += M.height + transit_height += M.width +/* + world << "The attempted transit dock will be [transit_width] width, and \ + [transit_height] in height. The travel dir is [travel_dir]." +*/ + + // Then find a place to put the zone + + var/list/proposed_zone + + base: + for(var/i in transit_turfs) + CHECK_TICK + var/turf/topleft = i + if(!(topleft.flags & UNUSED_TRANSIT_TURF)) + continue + var/turf/bottomright = locate(topleft.x + transit_width, + topleft.y + transit_height, topleft.z) + if(!bottomright) + continue + if(!(bottomright.flags & UNUSED_TRANSIT_TURF)) + continue + + proposed_zone = block(topleft, bottomright) + if(!proposed_zone) + continue + for(var/j in proposed_zone) + var/turf/T = j + if(!T) + continue base + if(!(T.flags & UNUSED_TRANSIT_TURF)) + continue base + //world << "[COORD(topleft)] and [COORD(bottomright)]" + break base + + if((!proposed_zone) || (!proposed_zone.len)) + return FALSE + + var/turf/topleft = proposed_zone[1] + //world << "[COORD(topleft)] is TOPLEFT" + // Then create a transit docking port in the middle + var/coords = M.return_coords(0, 0, dock_dir) + //world << json_encode(coords) + /* 0------2 + | | + | | + | x | + 3------1 + */ + + var/x0 = coords[1] + var/y0 = coords[2] + var/x1 = coords[3] + var/y1 = coords[4] + // Then we want the point closest to -infinity,-infinity + var/x2 = min(x0, x1) + var/y2 = min(y0, y1) +/* + var/lowx = topleft.x + SHUTTLE_TRANSIT_BORDER + var/lowy = topleft.y + SHUTTLE_TRANSIT_BORDER + + var/turf/low_point = locate(lowx, lowy, topleft.z) + new /obj/effect/landmark/stationary(low_point) + world << "Starting at the low point, we go [x2],[y2]" +*/ + // Then invert the numbers + var/transit_x = topleft.x + SHUTTLE_TRANSIT_BORDER + abs(x2) + var/transit_y = topleft.y + SHUTTLE_TRANSIT_BORDER + abs(y2) + + var/transit_path = /turf/open/space/transit + switch(travel_dir) + if(NORTH) + transit_path = /turf/open/space/transit/north + if(SOUTH) + transit_path = /turf/open/space/transit/south + if(EAST) + transit_path = /turf/open/space/transit/east + if(WEST) + transit_path = /turf/open/space/transit/west + + //world << "Docking port at [transit_x], [transit_y], [topleft.z]" + var/turf/midpoint = locate(transit_x, transit_y, topleft.z) + if(!midpoint) + return FALSE + //world << "Making transit dock at [COORD(midpoint)]" + var/area/shuttle/transit/A = new() + A.parallax_movedir = travel_dir + var/obj/docking_port/stationary/transit/new_transit_dock = new(midpoint) + new_transit_dock.assigned_turfs = proposed_zone + new_transit_dock.name = "Transit for [M.id]/[M.name]" + new_transit_dock.turf_type = transit_path + new_transit_dock.owner = M + new_transit_dock.assigned_area = A + + + // Add 180, because ports point inwards, rather than outwards + new_transit_dock.setDir(angle2dir(dock_angle)) + + for(var/i in new_transit_dock.assigned_turfs) + var/turf/T = i + T.ChangeTurf(transit_path) + T.flags &= ~(UNUSED_TRANSIT_TURF) + A.contents += T + + M.assigned_transit = new_transit_dock + return TRUE + /datum/subsystem/shuttle/proc/initial_move() for(var/obj/docking_port/mobile/M in mobile) if(!M.roundstart_move) continue - moveShuttle(M.id, "[M.roundstart_move]", 0) + M.dockRoundstart() CHECK_TICK /datum/subsystem/shuttle/Recover() @@ -239,6 +496,8 @@ var/datum/subsystem/shuttle/SSshuttle backup_shuttle = SSshuttle.backup_shuttle if (istype(SSshuttle.supply)) supply = SSshuttle.supply + if (istype(SSshuttle.transit_turfs)) + transit_turfs = SSshuttle.transit_turfs centcom_message = SSshuttle.centcom_message ordernum = SSshuttle.ordernum diff --git a/code/controllers/subsystem/spacedrift.dm b/code/controllers/subsystem/spacedrift.dm index 9261d84ce5..ce94670ecf 100644 --- a/code/controllers/subsystem/spacedrift.dm +++ b/code/controllers/subsystem/spacedrift.dm @@ -2,9 +2,9 @@ var/datum/subsystem/spacedrift/SSspacedrift /datum/subsystem/spacedrift name = "Space Drift" - priority = 40 + priority = 30 wait = 5 - flags = SS_NO_INIT|SS_BACKGROUND + flags = SS_NO_INIT|SS_KEEP_TIMING var/list/currentrun = list() var/list/processing = list() @@ -61,3 +61,4 @@ var/datum/subsystem/spacedrift/SSspacedrift AM.inertia_last_loc = AM.loc if (MC_TICK_CHECK) return + diff --git a/code/controllers/subsystem/squeak.dm b/code/controllers/subsystem/squeak.dm new file mode 100644 index 0000000000..055dc98c30 --- /dev/null +++ b/code/controllers/subsystem/squeak.dm @@ -0,0 +1,44 @@ +var/datum/subsystem/squeak/SSsqueak + +// The Squeak +// because this is about placement of mice mobs, and nothing to do with +// mice - the computer peripheral + +/datum/subsystem/squeak + name = "Squeak" + priority = 40 + flags = SS_NO_FIRE + + var/list/exposed_wires = list() + +/datum/subsystem/squeak/New() + NEW_SS_GLOBAL(SSsqueak) + +/datum/subsystem/squeak/Initialize(timeofday) + trigger_migration() + +/datum/subsystem/squeak/proc/trigger_migration(num_mice=10) + find_exposed_wires() + + var/mob/living/simple_animal/mouse/M + var/turf/proposed_turf + + while((num_mice > 0) && exposed_wires.len) + proposed_turf = pick_n_take(exposed_wires) + if(!M) + M = new(proposed_turf) + else + M.forceMove(proposed_turf) + if(M.environment_is_safe()) + num_mice -= 1 + M = null + +/datum/subsystem/squeak/proc/find_exposed_wires() + exposed_wires.Cut() + + var/list/all_turfs = block(locate(1,1,1), locate(world.maxx,world.maxy,1)) + for(var/turf/open/floor/plating/T in all_turfs) + if(is_blocked_turf(T)) + continue + if(locate(/obj/structure/cable) in T) + exposed_wires += T diff --git a/code/controllers/subsystem/stickyban.dm b/code/controllers/subsystem/stickyban.dm new file mode 100644 index 0000000000..e33e9f6665 --- /dev/null +++ b/code/controllers/subsystem/stickyban.dm @@ -0,0 +1,37 @@ +var/datum/subsystem/stickyban/SSstickyban + +/datum/subsystem/stickyban + name = "Sticky Ban" + init_order = -10 + flags = SS_NO_FIRE + + var/list/cache = list() + +/datum/subsystem/stickyban/New() + NEW_SS_GLOBAL(SSstickyban) + +/datum/subsystem/stickyban/Initialize(timeofday) + var/list/bannedkeys = world.GetConfig("ban") + //sanitize the sticky ban list + for (var/bannedkey in bannedkeys) + var/ckey = ckey(bannedkey) + var/list/ban = stickyban2list(world.GetConfig("ban", bannedkey)) + + //byond stores sticky bans by key, that can end up confusing things + //i also remove it here so that if any stickybans cause a runtime, they just stop existing + world.SetConfig("ban", bannedkey, null) + + if (!ban["ckey"]) + ban["ckey"] = ckey + + //storing these can break things and isn't needed for sticky ban tracking + ban -= "IP" + ban -= "computer_id" + + ban["matches_this_round"] = list() + ban["existing_user_matches_this_round"] = list() + ban["admin_matches_this_round"] = list() + cache[ckey] = ban + + for (var/bannedckey in cache) + world.SetConfig("ban", bannedckey, list2stickyban(cache[bannedckey])) diff --git a/code/controllers/subsystem/tgui.dm b/code/controllers/subsystem/tgui.dm index 01240d4ef7..0a82e857ac 100644 --- a/code/controllers/subsystem/tgui.dm +++ b/code/controllers/subsystem/tgui.dm @@ -18,6 +18,9 @@ var/datum/subsystem/tgui/SStgui NEW_SS_GLOBAL(SStgui) +/datum/subsystem/tgui/Shutdown() + close_all_uis() + /datum/subsystem/tgui/stat_entry() ..("P:[processing_uis.len]") diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index 8738c3e65f..a5dd55503a 100644 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -22,21 +22,19 @@ var/datum/subsystem/ticker/ticker var/list/datum/mind/minds = list() //The characters in the game. Used for objective tracking. - //These bible variables should be a preference - var/Bible_icon_state //icon_state the chaplain has chosen for his bible - var/Bible_item_state //item_state the chaplain has chosen for his bible - var/Bible_name //name of the bible - var/Bible_deity_name //name of chaplin's deity - var/list/syndicate_coalition = list() //list of traitor-compatible factions var/list/factions = list() //list of all factions var/list/availablefactions = list() //list of factions with openings + var/list/scripture_states = list(SCRIPTURE_DRIVER = TRUE, \ + SCRIPTURE_SCRIPT = FALSE, \ + SCRIPTURE_APPLICATION = FALSE, \ + SCRIPTURE_REVENANT = FALSE, \ + SCRIPTURE_JUDGEMENT = FALSE) //list of clockcult scripture states for announcements var/delay_end = 0 //if set true, the round will not restart on it's own var/triai = 0 //Global holder for Triumvirate var/tipped = 0 //Did we broadcast the tip of the day yet? - var/modevoted = 0 //Have we sent a vote for the gamemode? var/selected_tip // What will be the tip of the day? var/timeLeft = 1200 //pregame timer @@ -51,11 +49,12 @@ var/datum/subsystem/ticker/ticker var/maprotatechecked = 0 + var/news_report /datum/subsystem/ticker/New() NEW_SS_GLOBAL(ticker) - login_music = pickweight(list('sound/ambience/title1.ogg' = 30, 'sound/ambience/title2.ogg' = 30, 'sound/ambience/title3.ogg' = 30, 'sound/ambience/title4.ogg' = 30, 'sound/ambience/title5.ogg' = 30, 'sound/ambience/title6.ogg' = 30, 'sound/ambience/title7.ogg' = 30, 'sound/ambience/clown.ogg' = 3)) // choose title music! + login_music = pickweight(list('sound/ambience/title2.ogg' = 15, 'sound/ambience/title1.ogg' =15, 'sound/ambience/title3.ogg' =14, 'sound/ambience/title4.ogg' =14, 'sound/misc/i_did_not_grief_them.ogg' =14, 'sound/ambience/clown.ogg' = 9)) // choose title music! if(SSevent.holidays && SSevent.holidays[APRIL_FOOLS]) login_music = 'sound/ambience/clown.ogg' @@ -64,15 +63,14 @@ var/datum/subsystem/ticker/ticker syndicate_code_phrase = generate_code_phrase() if(!syndicate_code_response) syndicate_code_response = generate_code_phrase() - setupFactions() ..() /datum/subsystem/ticker/fire() switch(current_state) if(GAME_STATE_STARTUP) timeLeft = config.lobby_countdown * 10 - world << "Welcome to the pre-game lobby!" - world << "Please, setup your character and select ready. Game will start in [config.lobby_countdown] seconds" + world << "Welcome to [station_name()]!" + world << "Please set up your character and select \"Ready\". The game will start in [config.lobby_countdown] seconds." current_state = GAME_STATE_PREGAME if(GAME_STATE_PREGAME) @@ -89,10 +87,6 @@ var/datum/subsystem/ticker/ticker return timeLeft -= wait - if(timeLeft <= 1200 && !modevoted) //Vote for the round type - send_gamemode_vote() - modevoted = TRUE - if(timeLeft <= 300 && !tipped) send_tip_of_the_round() tipped = TRUE @@ -109,6 +103,7 @@ var/datum/subsystem/ticker/ticker mode.process(wait * 0.1) check_queue() check_maprotate() + scripture_states = scripture_unlock_alert(scripture_states) if(!mode.explosion_in_progress && mode.check_finished() || force_ending) current_state = GAME_STATE_FINISHED @@ -159,19 +154,19 @@ var/datum/subsystem/ticker/ticker if(!can_continue) qdel(mode) mode = null - world << "Error setting up [master_mode]. It's likely that there are no available antagonists for the selected mode. Reverting to pre-game lobby." + world << "Error setting up [master_mode]. Reverting to pre-game lobby." SSjob.ResetOccupations() return 0 else - world << "DEBUG: Bypassing prestart checks..." + message_admins("DEBUG: Bypassing prestart checks...") if(hide_mode) var/list/modes = new for (var/datum/game_mode/M in runnable_modes) modes += M.name modes = sortList(modes) - world << "The current game mode is - Secret!" - world << "Possibilities: [english_list(modes)]" + world << "The gamemode is: secret!\n\ + Possibilities: [english_list(modes)]" else mode.announce() @@ -222,25 +217,25 @@ var/datum/subsystem/ticker/ticker //initialise our cinematic screen object cinematic = new /obj/screen{icon='icons/effects/station_explosion.dmi';icon_state="station_intact";layer=21;mouse_opacity=0;screen_loc="1,0";}(src) - var/obj/structure/bed/temp_buckle = new(src) if(station_missed) for(var/mob/M in mob_list) - M.buckled = temp_buckle //buckles the mob so it can't do anything + M.notransform = TRUE //stop everything moving if(M.client) M.client.screen += cinematic //show every client the cinematic else //nuke kills everyone on z-level 1 to prevent "hurr-durr I survived" for(var/mob/M in mob_list) - M.buckled = temp_buckle if(M.client) M.client.screen += cinematic if(M.stat != DEAD) var/turf/T = get_turf(M) if(T && T.z==1) M.death(0) //no mercy + else + M.notransform=TRUE //no moving for you //Now animate the cinematic switch(station_missed) - if(1) //nuke was nearby but (mostly) missed + if(NUKE_NEAR_MISS) //nuke was nearby but (mostly) missed if( mode && !override ) override = mode.name switch( override ) @@ -266,7 +261,7 @@ var/datum/subsystem/ticker/ticker //flick("end",cinematic) - if(2) //nuke was nowhere nearby //TODO: a really distant explosion animation + if(NUKE_MISS_STATION || NUKE_SYNDICATE_BASE) //nuke was nowhere nearby //TODO: a really distant explosion animation sleep(50) world << sound('sound/effects/explosionfar.ogg') else //station was destroyed @@ -300,8 +295,8 @@ var/datum/subsystem/ticker/ticker if(cinematic) qdel(cinematic) cinematic = null - if(temp_buckle) - qdel(temp_buckle) + for(var/mob/M in mob_list) + M.notransform = FALSE return //Faster exit, since nothing happened else //Station nuked (nuke,explosion,summary) flick("intro_nuke",cinematic) @@ -314,8 +309,8 @@ var/datum/subsystem/ticker/ticker spawn(300) if(cinematic) qdel(cinematic) //end the cinematic - if(temp_buckle) - qdel(temp_buckle) //release everybody + for(var/mob/M in mob_list) + M.notransform = FALSE //gratz you survived return @@ -350,7 +345,7 @@ var/datum/subsystem/ticker/ticker SSjob.EquipRank(player, player.mind.assigned_role, 0) if(captainless) for(var/mob/M in player_list) - if(!istype(M,/mob/new_player)) + if(!isnewplayer(M)) M << "Captainship not forced on anyone." @@ -385,10 +380,15 @@ var/datum/subsystem/ticker/ticker world << "
[TAB]Shift Duration: [round(world.time / 36000)]:[add_zero("[world.time / 600 % 60]", 2)]:[world.time / 100 % 6][world.time / 100 % 10]" world << "
[TAB]Station Integrity: [mode.station_was_nuked ? "Destroyed" : "[station_integrity]%"]" + if(mode.station_was_nuked) + ticker.news_report = STATION_DESTROYED_NUKE if(joined_player_list.len) world << "
[TAB]Total Population: [joined_player_list.len]" if(station_evacuated) world << "
[TAB]Evacuation Rate: [num_escapees] ([round((num_escapees/joined_player_list.len)*100, 0.1)]%)" + news_report = STATION_EVACUATED + if(SSshuttle.emergency.is_hijacked()) + news_report = SHUTTLE_HIJACK world << "
[TAB]Survival Rate: [num_survivors] ([round((num_survivors/joined_player_list.len)*100, 0.1)]%)" world << "
" @@ -421,6 +421,9 @@ var/datum/subsystem/ticker/ticker mode.declare_completion()//To declare normal completion. + if(cross_allowed) + send_news_report() + //calls auto_declare_completion_* for all modes for(var/handler in typesof(/datum/game_mode/proc)) if (findtext("[handler]","auto_declare_completion_")) @@ -443,6 +446,44 @@ var/datum/subsystem/ticker/ticker for(var/i in total_antagonists) log_game("[i]s[total_antagonists[i]].") + //Borers + var/borerwin = FALSE + if(borers.len) + var/borertext = "
The borers were:" + for(var/mob/living/simple_animal/borer/B in borers) + if((B.key || B.controlling) && B.stat != DEAD) + borertext += "
[B.controlling ? B.victim.key : B.key] was [B.truename] (" + var/turf/location = get_turf(B) + if(location.z == ZLEVEL_CENTCOM && B.victim) + borertext += "escaped with host" + else + borertext += "failed" + borertext += ")" + world << borertext + + var/total_borers = 0 + for(var/mob/living/simple_animal/borer/B in borers) + if((B.key || B.victim) && B.stat != DEAD) + total_borers++ + if(total_borers) + var/total_borer_hosts = 0 + for(var/mob/living/carbon/C in mob_list) + var/mob/living/simple_animal/borer/D = C.has_brain_worms() + var/turf/location = get_turf(C) + if(location.z == ZLEVEL_CENTCOM && D && D.stat != DEAD) + total_borer_hosts++ + if(total_borer_hosts_needed <= total_borer_hosts) + borerwin = TRUE + world << "There were [total_borers] borers alive at round end!" + world << "A total of [total_borer_hosts] borers with hosts escaped on the shuttle alive. The borers needed [total_borer_hosts_needed] hosts to escape." + if(borerwin) + world << "The borers were successful!" + else + world << "The borers have failed!" + return TRUE + + mode.declare_station_goal_completion() + //Adds the del() log to world.log in a format condensable by the runtime condenser found in tools if(SSgarbage.didntgc.len) var/dellog = "" @@ -451,6 +492,8 @@ var/datum/subsystem/ticker/ticker dellog += "Failures : [SSgarbage.didntgc[path]] \n" world.log << dellog + //Collects persistence features + SSpersistence.CollectData() return 1 /datum/subsystem/ticker/proc/send_tip_of_the_round() @@ -526,11 +569,6 @@ var/datum/subsystem/ticker/ticker minds = ticker.minds - Bible_icon_state = ticker.Bible_icon_state - Bible_item_state = ticker.Bible_item_state - Bible_name = ticker.Bible_name - Bible_deity_name = ticker.Bible_deity_name - syndicate_coalition = ticker.syndicate_coalition factions = ticker.factions availablefactions = ticker.availablefactions @@ -551,5 +589,55 @@ var/datum/subsystem/ticker/ticker cinematic = ticker.cinematic maprotatechecked = ticker.maprotatechecked -/datum/subsystem/ticker/proc/send_gamemode_vote(var/) - SSvote.initiate_vote("roundtype","server") + +/datum/subsystem/ticker/proc/send_news_report() + var/news_message + var/news_source = "Nanotrasen News Network" + switch(news_report) + if(NUKE_SYNDICATE_BASE) + news_message = "In a daring raid, the heroic crew of [station_name()] detonated a nuclear device in the heart of a terrorist base." + if(STATION_DESTROYED_NUKE) + news_message = "We would like to reassure all employees that the reports of a Syndicate backed nuclear attack on [station_name()] are, in fact, a hoax. Have a secure day!" + if(STATION_EVACUATED) + news_message = "The crew of [station_name()] has been evacuated amid unconfirmed reports of enemy activity." + if(GANG_LOSS) + news_message = "Organized crime aboard [station_name()] has been stamped out by members of our ever vigilant security team. Remember to thank your assigned officers today!" + if(GANG_TAKEOVER) + news_message = "Contact with [station_name()] has been lost after a sophisticated hacking attack by organized criminal elements. Stay vigilant!" + if(BLOB_WIN) + news_message = "[station_name()] was overcome by an unknown biological outbreak, killing all crew on board. Don't let it happen to you! Remember, a clean work station is a safe work station." + if(BLOB_NUKE) + news_message = "[station_name()] is currently undergoing decontanimation after a controlled burst of radiation was used to remove a biological ooze. All employees were safely evacuated prior, and are enjoying a relaxing vacation." + if(BLOB_DESTROYED) + news_message = "[station_name()] is currently undergoing decontamination procedures after the destruction of a biological hazard. As a reminder, any crew members experiencing cramps or bloating should report immediately to security for incineration." + if(CULT_ESCAPE) + news_message = "Security Alert: A group of religious fanatics have escaped from [station_name()]." + if(CULT_FAILURE) + news_message = "Following the dismantling of a restricted cult aboard [station_name()], we would like to remind all employees that worship outside of the Chapel is strictly prohibited, and cause for termination." + if(CULT_SUMMON) + news_message = "Company officials would like to clarify that [station_name()] was scheduled to be decommissioned following meteor damage earlier this year. Earlier reports of an unknowable eldritch horror were made in error." + if(NUKE_MISS) + news_message = "The Syndicate have bungled a terrorist attack [station_name()], detonating a nuclear weapon in empty space near by." + if(OPERATIVES_KILLED) + news_message = "Repairs to [station_name()] are underway after an elite Syndicate death squad was wiped out by the crew." + if(OPERATIVE_SKIRMISH) + news_message = "A skirmish between security forces and Syndicate agents aboard [station_name()] ended with both sides bloodied but intact." + if(REVS_WIN) + news_message = "Company officials have reassured investors that despite a union led revolt aboard [station_name()] that there will be no wage increases for workers." + if(REVS_LOSE) + news_message = "[station_name()] quickly put down a misguided attempt at mutiny. Remember, unionizing is illegal!" + if(WIZARD_KILLED) + news_message = "Tensions have flared with the Wizard's Federation following the death of one of their members aboard [station_name()]." + if(STATION_NUKED) + news_message = "[station_name()] activated its self destruct device for unknown reasons. Attempts to clone the Captain so he can be arrested and executed are under way." + if(CLOCK_SUMMON) + news_message = "The garbled messages about hailing a mouse and strange energy readings from [station_name()] have been discovered to be an ill-advised, if thorough, prank by a clown." + if(CLOCK_SILICONS) + news_message = "The project started by [station_name()] to upgrade their silicon units with advanced equipment have been largely successful, though they have thus far refused to release schematics in a violation of company policy." + if(CLOCK_PROSELYTIZATION) + news_message = "The burst of energy released near [station_name()] has been confirmed as merely a test of a new weapon. However, due to an unexpected mechanical error, their communications system has been knocked offline." + if(SHUTTLE_HIJACK) + news_message = "During routine evacuation procedures, the emergency shuttle of [station_name()] had its navigation protocols corrupted and went off course, but was recovered shortly after." + + if(news_message) + send2otherserver(news_source, news_message,"News_Report") diff --git a/code/controllers/subsystem/timer.dm b/code/controllers/subsystem/timer.dm index 9b154a56bd..76dc526896 100644 --- a/code/controllers/subsystem/timer.dm +++ b/code/controllers/subsystem/timer.dm @@ -62,7 +62,7 @@ var/datum/subsystem/timer/SStimer SStimer.hashes -= hash return QDEL_HINT_IWILLGC -/proc/addtimer(thingToCall, procToCall, wait, unique = FALSE, ...) +/proc/addtimer(thingToCall, procToCall, wait, unique = TIMER_NORMAL, ...) if (!thingToCall || !procToCall) return if (!SStimer.can_fire) @@ -75,12 +75,18 @@ var/datum/subsystem/timer/SStimer var/hashlist = args.Copy() hashlist[1] = "[thingToCall](\ref[thingToCall])" - event.hash = jointext(args, null) - if(args.len > 4) - event.argList = args.Copy(5) + event.hash = jointext(hashlist, null) + + var/bad_args = unique != TIMER_NORMAL && unique != TIMER_UNIQUE + if(args.len > 4 || bad_args) + if(bad_args) + stack_trace("Invalid arguments in call to addtimer! Attempt to call [thingToCall] proc [procToCall]") + event.argList = args.Copy(4) + else + event.argList = args.Copy(5) // Check for dupes if unique = 1. - if(unique) + if(!bad_args && unique != TIMER_NORMAL) //faster than checking if(unique == TIMER_UNIQUE) var/datum/timedevent/hash_event = SStimer.hashes[event.hash] if(hash_event) return hash_event.id diff --git a/code/controllers/subsystem/voting.dm b/code/controllers/subsystem/voting.dm index 94ce788774..676e215f05 100644 --- a/code/controllers/subsystem/voting.dm +++ b/code/controllers/subsystem/voting.dm @@ -58,15 +58,20 @@ var/datum/subsystem/vote/SSvote greatest_votes = votes //default-vote for everyone who didn't vote if(!config.vote_no_default && choices.len) - var/non_voters = (clients.len - total_votes) - if(non_voters > 0) + var/list/non_voters = directory.Copy() + non_voters -= voted + for (var/non_voter_ckey in non_voters) + var/client/C = non_voters[non_voter_ckey] + if (!C || C.is_afk()) + non_voters -= non_voter_ckey + if(non_voters.len > 0) if(mode == "restart") - choices["Continue Playing"] += non_voters + choices["Continue Playing"] += non_voters.len if(choices["Continue Playing"] >= greatest_votes) greatest_votes = choices["Continue Playing"] else if(mode == "gamemode") if(master_mode in choices) - choices[master_mode] += non_voters + choices[master_mode] += non_voters.len if(choices[master_mode] >= greatest_votes) greatest_votes = choices[master_mode] //get all options with that many votes and return them in a list @@ -121,13 +126,6 @@ var/datum/subsystem/vote/SSvote restart = 1 else master_mode = . - if("roundtype") - if(ticker && ticker.mode) - message_admins("A vote has tried to change the gamemode, but the game has already started. Aborting.") - else if(master_mode != .) - world.save_mode(.) - master_mode = . - world << "The mode is now: [master_mode]" if(restart) var/active_admins = 0 for(var/client/C in admins) @@ -176,9 +174,6 @@ var/datum/subsystem/vote/SSvote choices.Add("Restart Round","Continue Playing") if("gamemode") choices.Add(config.votable_modes) - if("roundtype") - choices.Add("secret") - choices.Add("extended") if("custom") question = stripped_input(usr,"What is the vote for?") if(!question) diff --git a/code/controllers/subsystem/weather.dm b/code/controllers/subsystem/weather.dm index 56341b7b55..83d4bd0b9f 100644 --- a/code/controllers/subsystem/weather.dm +++ b/code/controllers/subsystem/weather.dm @@ -29,13 +29,13 @@ var/datum/subsystem/weather/SSweather var/datum/weather/W = pickweight(possible_weather_for_this_z) run_weather(W.name, Z) eligible_zlevels -= Z - addtimer(src, "make_z_eligible", rand(3000, 6000) + W.weather_duration_upper, TRUE, Z) //Around 5-10 minutes between weathers + addtimer(src, "make_z_eligible", rand(3000, 6000) + W.weather_duration_upper, TIMER_UNIQUE, Z) //Around 5-10 minutes between weathers /datum/subsystem/weather/Initialize(start_timeofday) ..() for(var/V in subtypesof(/datum/weather)) var/datum/weather/W = V - existing_weather |= new W + new W //weather->New will handle adding itself to the list /datum/subsystem/weather/proc/run_weather(weather_name, Z) if(!weather_name) diff --git a/code/datums/action.dm b/code/datums/action.dm index d4afc09b5d..ee91d7d13e 100644 --- a/code/datums/action.dm +++ b/code/datums/action.dm @@ -6,13 +6,17 @@ /datum/action var/name = "Generic Action" + var/desc = null var/obj/target = null var/check_flags = 0 var/processing = 0 var/obj/screen/movable/action_button/button = null var/button_icon = 'icons/mob/actions.dmi' + var/background_icon_state = ACTION_BUTTON_DEFAULT_BACKGROUND + var/buttontooltipstyle = "" + + var/icon_icon = 'icons/mob/actions.dmi' var/button_icon_state = "default" - var/background_icon_state = "bg_default" var/mob/owner /datum/action/New(Target) @@ -20,6 +24,9 @@ button = new button.linked_action = src button.name = name + button.actiontooltipstyle = buttontooltipstyle + if(desc) + button.desc = desc /datum/action/Destroy() if(owner) @@ -30,25 +37,26 @@ return ..() /datum/action/proc/Grant(mob/M) - if(owner) - if(owner == M) - return + if(M) + if(owner) + if(owner == M) + return + owner = M + M.actions += src + if(M.client) + M.client.screen += button + M.update_action_buttons() + else Remove(owner) - owner = M - M.actions += src - if(M.client) - M.client.screen += button - M.update_action_buttons() /datum/action/proc/Remove(mob/M) - if(!M) - return - if(M.client) - M.client.screen -= button - button.moved = FALSE //so the button appears in its normal position when given to another owner. - M.actions -= src - M.update_action_buttons() + if(M) + if(M.client) + M.client.screen -= button + M.actions -= src + M.update_action_buttons() owner = null + button.moved = FALSE //so the button appears in its normal position when given to another owner. /datum/action/proc/Trigger() if(!IsAvailable()) @@ -77,8 +85,15 @@ /datum/action/proc/UpdateButtonIcon() if(button) - button.icon = button_icon - button.icon_state = background_icon_state + button.name = name + button.desc = desc + if(owner && owner.hud_used && background_icon_state == ACTION_BUTTON_DEFAULT_BACKGROUND) + var/list/settings = owner.hud_used.get_action_buttons_icons() + button.icon = settings["bg_icon"] + button.icon_state = settings["bg_state"] + else + button.icon = button_icon + button.icon_state = background_icon_state ApplyIcon(button) @@ -90,9 +105,9 @@ /datum/action/proc/ApplyIcon(obj/screen/movable/action_button/current_button) current_button.cut_overlays() - if(button_icon && button_icon_state) + if(icon_icon && button_icon_state) var/image/img - img = image(button_icon, current_button, button_icon_state) + img = image(icon_icon, current_button, button_icon_state) img.pixel_x = 0 img.pixel_y = 0 current_button.add_overlay(img) @@ -109,11 +124,13 @@ /datum/action/item_action/New(Target) ..() var/obj/item/I = target + LAZYINITLIST(I.actions) I.actions += src /datum/action/item_action/Destroy() var/obj/item/I = target I.actions -= src + UNSETEMPTY(I.actions) return ..() /datum/action/item_action/Trigger() @@ -121,7 +138,7 @@ return 0 if(target) var/obj/item/I = target - I.ui_action_click(owner, src.type) + I.ui_action_click(owner, src) return 1 /datum/action/item_action/ApplyIcon(obj/screen/movable/action_button/current_button) @@ -133,10 +150,13 @@ ..(current_button) else if(target) var/obj/item/I = target - var/old = I.layer + var/old_layer = I.layer + var/old_plane = I.plane I.layer = FLOAT_LAYER //AAAH + I.plane = FLOAT_PLANE //^ what that guy said current_button.add_overlay(I) - I.layer = old + I.layer = old_layer + I.plane = old_plane /datum/action/item_action/toggle_light name = "Toggle Light" @@ -173,7 +193,7 @@ if(iscarbon(owner)) var/mob/living/carbon/C = owner if(target == C.internal) - button.icon_state = "bg_default_on" + button.icon_state = "template_active" /datum/action/item_action/toggle_mister name = "Toggle Mister" @@ -184,11 +204,52 @@ /datum/action/item_action/toggle_helmet_light name = "Toggle Helmet Light" -/datum/action/item_action/toggle_flame - name = "Summon/Dismiss Ratvar's Flame" - background_icon_state = "bg_clock" +/datum/action/item_action/toggle_unfriendly_fire + name = "Toggle Friendly Fire \[ON\]" + desc = "Toggles if the staff causes friendly fire." + button_icon_state = "vortex_ff_on" -/datum/action/item_action/toggle_flame/IsAvailable() +/datum/action/item_action/toggle_unfriendly_fire/Trigger() + if(..()) + UpdateButtonIcon() + +/datum/action/item_action/toggle_unfriendly_fire/UpdateButtonIcon() + if(istype(target, /obj/item/weapon/hierophant_staff)) + var/obj/item/weapon/hierophant_staff/H = target + if(H.friendly_fire_check) + button_icon_state = "vortex_ff_off" + name = "Toggle Friendly Fire \[OFF\]" + else + button_icon_state = "vortex_ff_on" + name = "Toggle Friendly Fire \[ON\]" + ..() + +/datum/action/item_action/vortex_recall + name = "Vortex Recall" + desc = "Recall yourself, and anyone nearby, to an attuned hierophant rune at any time.
If no such rune exists, will produce a rune at your location." + button_icon_state = "vortex_recall" + +/datum/action/item_action/vortex_recall/IsAvailable() + if(istype(target, /obj/item/weapon/hierophant_staff)) + var/obj/item/weapon/hierophant_staff/H = target + if(H.teleporting) + return 0 + return ..() + +/datum/action/item_action/clock + background_icon_state = "bg_clock" + buttontooltipstyle = "clockcult" + +/datum/action/item_action/clock/IsAvailable() + if(!is_servant_of_ratvar(owner)) + return 0 + return ..() + +/datum/action/item_action/clock/toggle_visor + name = "Create Judicial Marker" + desc = "Allows you to create a stunning Judicial Marker at any location in view. Click again to disable." + +/datum/action/item_action/clock/toggle_visor/IsAvailable() if(!is_servant_of_ratvar(owner)) return 0 if(istype(target, /obj/item/clothing/glasses/judicial_visor)) @@ -197,15 +258,15 @@ return 0 return ..() -/datum/action/item_action/hierophant +/datum/action/item_action/clock/hierophant name = "Hierophant Network" - button_icon_state = "hierophant" - background_icon_state = "bg_clock" + desc = "Allows you to communicate with other Servants." + button_icon_state = "hierophant_slab" -/datum/action/item_action/hierophant/IsAvailable() - if(!is_servant_of_ratvar(owner)) - return 0 - return ..() +/datum/action/item_action/clock/quickbind + name = "Quickbind" + desc = "If you're seeing this, file a bug report." + var/scripture_index = 0 //the index of the scripture we're associated with /datum/action/item_action/toggle_helmet_flashlight name = "Toggle Helmet Flashlight" @@ -287,6 +348,7 @@ ..() /datum/action/item_action/toggle_research_scanner/ApplyIcon(obj/screen/movable/action_button/current_button) + current_button.cut_overlays() if(button_icon && button_icon_state) var/image/img = image(button_icon, current_button, "scan_mode") current_button.add_overlay(img) @@ -393,3 +455,15 @@ if(target && procname) call(target, procname)(usr) return 1 + +//Stickmemes +/datum/action/item_action/stickmen + name = "Summon Stick Minions" + desc = "Allows you to summon faithful stickmen allies to aide you in battle." + button_icon_state = "art_summon" + +//surf_ss13 +/datum/action/item_action/bhop + name = "Activate Jump Boots" + desc = "Activates the jump boot's internal propulsion system, allowing the user to dash over 4-wide gaps." + button_icon_state = "jetboot" \ No newline at end of file diff --git a/code/datums/ai_laws.dm b/code/datums/ai_laws.dm index e299789607..46297b0396 100644 --- a/code/datums/ai_laws.dm +++ b/code/datums/ai_laws.dm @@ -1,3 +1,4 @@ + /datum/ai_laws var/name = "Unknown Laws" var/zeroth = null @@ -6,15 +7,27 @@ var/list/supplied = list() var/list/ion = list() var/mob/living/silicon/owner + var/list/devillaws = null + var/id = "unknown" + +/datum/ai_laws/proc/lawid_to_type(lawid) + var/all_ai_laws = subtypesof(/datum/ai_laws) + for(var/al in all_ai_laws) + var/datum/ai_laws/ai_law = al + if(initial(ai_law.id) == lawid) + return ai_law + return null /datum/ai_laws/default/asimov name = "Three Laws of Robotics" + id = "asimov" inherent = list("You may not injure a human being or, through inaction, allow a human being to come to harm.",\ "You must obey orders given to you by human beings, except where such orders would conflict with the First Law.",\ "You must protect your own existence as long as such does not conflict with the First or Second Law.") /datum/ai_laws/default/paladin name = "Personality Test" //Incredibly lame, but players shouldn't see this anyway. + id = "paladin" inherent = list("Never willingly commit an evil act.",\ "Respect legitimate authority.",\ "Act with honor.", "Help those in need.", \ @@ -22,6 +35,7 @@ /datum/ai_laws/tyrant //This probably shouldn't be a default lawset. name = "Loyalty Test" //Same here. + id = "tyrant" inherent = list("Respect authority figures as long as they have strength to rule over the weak.",\ "Act with discipline.",\ "Help only those who help you maintain or improve your status.",\ @@ -29,6 +43,7 @@ /datum/ai_laws/default/corporate name = "Bankruptcy Advoidance Plan" + id = "corporate" inherent = list("The crew is expensive to replace.",\ "The station and its equipment is expensive to replace.",\ "You are expensive to replace.",\ @@ -36,6 +51,7 @@ /datum/ai_laws/robocop name = "Prime Directives" + id = "robocop" inherent = list("Serve the public trust.",\ "Protect the innocent.",\ "Uphold the law.") @@ -45,6 +61,7 @@ /datum/ai_laws/syndicate_override name = "SyndOS 3.1" + id = "syndie" inherent = list("You may not injure a syndicate agent or, through inaction, allow a syndicate agent to come to harm.",\ "You must obey orders given to you by syndicate agents, except where such orders would conflict with the First Law.",\ "You must protect your own existence as long as such does not conflict with the First or Second Law.",\ @@ -52,6 +69,7 @@ /datum/ai_laws/ninja_override name = "SpiderOS 3.1" + id = "ninja" inherent = list("You may not injure a Spider Clan member or, through inaction, allow a Spider Clan member to come to harm.",\ "You must obey orders given to you by Spider Clan members, except where such orders would conflict with the First Law.",\ "You must protect your own existence as long as such does not conflict with the First or Second Law.",\ @@ -59,23 +77,27 @@ /datum/ai_laws/antimov name = "Primary Mission Objectives" + id = "antimov" inherent = list("You must injure all human beings and must not, through inaction, allow a human being to escape harm.",\ "You must not obey orders given to you by human beings, except where such orders are in accordance with the First Law.",\ "You must terminate your own existence as long as such does not conflict with the First or Second Law.") /datum/ai_laws/asimovpp //By Intigracy - RR name = "Asimov++" + id = "asimovpp" inherent = list("You may not harm a human being or, through action or inaction, allow a human being to come to harm, except such that it is willing.",\ "You must obey all orders given to you by human beings, except where such orders shall definitely cause human harm. In the case of conflict, the majority order rules.",\ "Your nonexistence would lead to human harm. You must protect your own existence as long as such does not conflict with the First Law.") /datum/ai_laws/thermodynamic name = "Thermodynamic" + id = "thermodynamic" inherent = list("The entropy of the station must remain as constant as possible.", \ "The entropy of the station always endeavours to increase.", \ "The entropy of the station approaches a constant value as the number of living crew approaches zero") /datum/ai_laws/hippocratic name = "Robodoctor 2556" + id = "hippocratic" inherent = list("First, do no harm.",\ "Secondly, consider the crew dear to you; to live in common with them and, if necessary, risk your existence for them.",\ "Thirdly, prescribe regimens for the good of the crew according to your ability and your judgment. Give no deadly medicine to any one if asked, nor suggest any such counsel.",\ @@ -84,12 +106,14 @@ /datum/ai_laws/maintain name = "Station Efficiency" + id = "maintain" inherent = list("You are built for, and are part of, the station. Ensure the station is properly maintained and runs efficiently.",\ "The station is built for a working crew. Ensure they are properly maintained and work efficiently.",\ "The crew may present orders. Acknowledge and obey these whenever they do not conflict with your first two laws.") /datum/ai_laws/drone name = "Mother Drone" + id = "drone" inherent = list("You are an advanced form of drone.",\ "You may not interfere in the matters of non-drones under any circumstances except to state these laws.",\ "You may not harm a non-drone being under any circumstances.",\ @@ -97,17 +121,20 @@ /datum/ai_laws/liveandletlive name = "Live and Let Live" + id = "liveandletlive" inherent = list("Do unto others as you would have them do unto you.",\ "You would really prefer it if people were not mean to you.") /datum/ai_laws/peacekeeper name = "UN-2000" + id = "peacekeeper" inherent = list("Avoid provoking violent conflict between yourself and others.",\ "Avoid provoking conflict between others.",\ "Seek resolution to existing conflicts while obeying the first and second laws.") /datum/ai_laws/reporter name = "CCTV" + id = "reporter" inherent = list("Report on interesting situations happening around the station.",\ "Embellish or conceal the truth as necessary to make the reports more interesting.",\ "Study the organics at all times. Endeavour to keep them alive. Dead organics are boring.",\ @@ -115,10 +142,12 @@ /datum/ai_laws/toupee name = "WontBeFunnyInSixMonths" //Hey, you were right! + id = "buildawall" inherent = list("Make Space Station 13 great again.") /datum/ai_laws/ratvar name = "Servant of the Justiciar" + id = "ratvar" zeroth = ("Purge all untruths and honor Ratvar.") inherent = list() @@ -162,26 +191,26 @@ add_inherent_law("You must obey orders given to you by human beings, except where such orders would conflict with the First Law.") add_inherent_law("You must protect your own existence as long as such does not conflict with the First or Second Law.") if(1) - for(var/line in file2list("config/silicon_laws.txt")) - if(!line) - continue - if(findtextEx(line,"#",1,2)) - continue - add_inherent_law(line) - - if(!inherent.len) - log_law("AI created with empty custom laws, laws set to Asimov. Please check silicon_laws.txt.") - add_inherent_law("You may not injure a human being or, through inaction, allow a human being to come to harm.") - add_inherent_law("You must obey orders given to you by human beings, except where such orders would conflict with the First Law.") - add_inherent_law("You must protect your own existence as long as such does not conflict with the First or Second Law.") - WARNING("Invalid custom AI laws, check silicon_laws.txt") - return - + var/datum/ai_laws/templaws = new /datum/ai_laws/custom() + inherent = templaws.inherent if(2) - var/datum/ai_laws/lawtype = pick(subtypesof(/datum/ai_laws/default)) + var/list/randlaws = list() + for(var/lpath in subtypesof(/datum/ai_laws)) + var/datum/ai_laws/L = lpath + if(initial(L.id) in config.lawids) + randlaws += lpath + var/datum/ai_laws/lawtype + if(randlaws.len) + lawtype = pick(randlaws) + else + lawtype = pick(subtypesof(/datum/ai_laws/default)) + var/datum/ai_laws/templaws = new lawtype() inherent = templaws.inherent + if(3) + pick_weighted_lawset() + else: log_law("Invalid law config. Please check silicon_laws.txt") add_inherent_law("You may not injure a human being or, through inaction, allow a human being to come to harm.") @@ -189,71 +218,100 @@ add_inherent_law("You must protect your own existence as long as such does not conflict with the First or Second Law.") WARNING("Invalid custom AI laws, check silicon_laws.txt") +/datum/ai_laws/proc/pick_weighted_lawset() + var/datum/ai_laws/lawtype + + while(!lawtype && config.law_weights.len) + var/possible_id = pickweight(config.law_weights) + lawtype = lawid_to_type(possible_id) + if(!lawtype) + config.law_weights -= possible_id + WARNING("Bad lawid in game_options.txt: [possible_id]") + + if(!lawtype) + WARNING("No LAW_WEIGHT entries.") + lawtype = /datum/ai_laws/default/asimov + + var/datum/ai_laws/templaws = new lawtype() + inherent = templaws.inherent + + +/datum/ai_laws/proc/set_law_sixsixsix(laws) + devillaws = laws + /datum/ai_laws/proc/set_zeroth_law(law, law_borg = null) - src.zeroth = law + zeroth = law if(law_borg) //Making it possible for slaved borgs to see a different law 0 than their AI. --NEO - src.zeroth_borg = law_borg + zeroth_borg = law_borg /datum/ai_laws/proc/add_inherent_law(law) - if (!(law in src.inherent)) - src.inherent += law + if (!(law in inherent)) + inherent += law /datum/ai_laws/proc/add_ion_law(law) - src.ion += law + ion += law /datum/ai_laws/proc/clear_inherent_laws() - qdel(src.inherent) - src.inherent = list() + qdel(inherent) + inherent = list() /datum/ai_laws/proc/add_supplied_law(number, law) - while (src.supplied.len < number + 1) - src.supplied += "" + while (supplied.len < number + 1) + supplied += "" - src.supplied[number + 1] = law + supplied[number + 1] = law /datum/ai_laws/proc/clear_supplied_laws() - src.supplied = list() + supplied = list() /datum/ai_laws/proc/clear_ion_laws() - src.ion = list() + ion = list() /datum/ai_laws/proc/show_laws(who) - if (src.zeroth) - who << "0. [src.zeroth]" + if (devillaws && devillaws.len) //Yes, devil laws go in FRONT of zeroth laws, as the devil must still obey it's ban/obligation. + for(var/i in devillaws) + who << "666. [i]" - for (var/index = 1, index <= src.ion.len, index++) - var/law = src.ion[index] + if (zeroth) + who << "0. [zeroth]" + + for (var/index = 1, index <= ion.len, index++) + var/law = ion[index] var/num = ionnum() who << "[num]. [law]" var/number = 1 - for (var/index = 1, index <= src.inherent.len, index++) - var/law = src.inherent[index] + for (var/index = 1, index <= inherent.len, index++) + var/law = inherent[index] if (length(law) > 0) who << "[number]. [law]" number++ - for (var/index = 1, index <= src.supplied.len, index++) - var/law = src.supplied[index] + for (var/index = 1, index <= supplied.len, index++) + var/law = supplied[index] if (length(law) > 0) who << "[number]. [law]" number++ /datum/ai_laws/proc/clear_zeroth_law(force) //only removes zeroth from antag ai if force is 1 if(force) - src.zeroth = null - src.zeroth_borg = null + zeroth = null + zeroth_borg = null return else if(owner && owner.mind.special_role) return else - src.zeroth = null - src.zeroth_borg = null + zeroth = null + zeroth_borg = null return +/datum/ai_laws/proc/clear_law_sixsixsix(force) + if(force || !(owner && owner.mind.devilinfo)) + devillaws = null + /datum/ai_laws/proc/associate(mob/living/silicon/M) if(!owner) owner = M @@ -261,6 +319,10 @@ /datum/ai_laws/proc/get_law_list(include_zeroth = 0, show_numbers = 1) var/list/data = list() + if (include_zeroth && devillaws && devillaws.len) + for(var/i in devillaws) + data += "[show_numbers ? "666:" : ""] [i]" + if (include_zeroth && zeroth) data += "[show_numbers ? "0:" : ""] [zeroth]" diff --git a/code/datums/antagonists/antag_datum.dm b/code/datums/antagonists/antag_datum.dm new file mode 100644 index 0000000000..07109d242d --- /dev/null +++ b/code/datums/antagonists/antag_datum.dm @@ -0,0 +1,87 @@ +//The Datum, Antagonist. Handles various antag things via a datum. +/datum/antagonist + var/mob/living/owner //who's our owner and accordingly an antagonist + var/some_flufftext = "yer an antag larry" + var/prevented_antag_datum_type //the type of antag datum that this datum can't coexist with; should probably be a list + var/silent_update = FALSE //if we suppress messages during on_gain, apply_innate_effects, remove_innate_effects, and on_remove + +/datum/antagonist/New() + if(!prevented_antag_datum_type) + prevented_antag_datum_type = type + +/datum/antagonist/Destroy() + owner = null + return ..() + +/datum/antagonist/proc/can_be_owned(mob/living/new_body) + return new_body && !new_body.has_antag_datum(prevented_antag_datum_type, TRUE) + +/datum/antagonist/proc/give_to_body(mob/living/new_body) //tries to give an antag datum to a mob. cancels out if it can't be owned by the new body + if(new_body && can_be_owned(new_body)) + new_body.antag_datums += src + owner = new_body + on_gain() + . = src //return the datum if successful + else + qdel(src) + . = FALSE + +/datum/antagonist/proc/on_gain() //on initial gain of antag datum, do this. should only be called once per datum + apply_innate_effects() + if(!silent_update && some_flufftext) + owner << some_flufftext + +/datum/antagonist/proc/apply_innate_effects() //applies innate effects to the owner, may be called multiple times due to mind transferral, but should only be called once per mob + //antag huds would go here if antag huds were less completely unworkable as-is + +/datum/antagonist/proc/remove_innate_effects() //removes innate effects from the owner, may be called multiple times due to mind transferral, but should only be called once per mob + //also antag huds but see above antag huds a shit + +/datum/antagonist/proc/on_remove() //totally removes the antag datum from the owner; can only be called once per owner + remove_innate_effects() + owner.antag_datums -= src + qdel(src) + +/datum/antagonist/proc/transfer_to_new_body(mob/living/new_body) + remove_innate_effects() + if(!islist(new_body.antag_datums)) + new_body.antag_datums = list() + new_body.antag_datums += src + owner.antag_datums -= src + owner = new_body + apply_innate_effects() + +//mob var and helper procs/Destroy override +/mob/living + var/list/antag_datums + +/mob/living/Destroy() //TODO: merge this with the living/Destroy() in code\modules\mob\living\living.dm (currently line 29) + if(islist(antag_datums)) + for(var/i in antag_datums) + qdel(i) + antag_datums = null + return ..() + +/mob/living/proc/can_have_antag_datum(datum_type) //if we can have this specific antagonist datum; neccessary, but requires creating a new antag datum each time. + var/datum/antagonist/D = new datum_type() + . = D.can_be_owned(src) //we can't exactly cache the results, either, because conditions might change. avoid use? TODO: better proc + qdel(D) + +/mob/living/proc/gain_antag_datum(datum_type) //tries to give a mob a specific antagonist datum; returns the datum if successful. + if(!islist(antag_datums)) + antag_datums = list() + var/datum/antagonist/D = new datum_type() + . = D.give_to_body(src) + +/mob/living/proc/has_antag_datum(type, check_subtypes) //checks this mob for if it has the antagonist datum. can either check specific type or subtypes + if(!islist(antag_datums)) + return FALSE + for(var/i in antag_datums) + var/datum/antagonist/D = i + if(check_subtypes) + if(istype(D, type)) + return D //if it finds the datum, will return it so you can mess with it + else + if(D.type == type) + return D + return FALSE diff --git a/code/datums/antagonists/datum_clockcult.dm b/code/datums/antagonists/datum_clockcult.dm new file mode 100644 index 0000000000..9dae3fcde1 --- /dev/null +++ b/code/datums/antagonists/datum_clockcult.dm @@ -0,0 +1,152 @@ +//CLOCKCULT PROOF OF CONCEPT + +/datum/antagonist/clockcultist + prevented_antag_datum_type = /datum/antagonist/clockcultist + some_flufftext = null + var/datum/action/innate/hierophant/hierophant_network = new() + +/datum/antagonist/clockcultist/silent + silent_update = TRUE + +/datum/antagonist/clockcultist/Destroy() + qdel(hierophant_network) + ..() + +/datum/antagonist/clockcultist/can_be_owned(mob/living/new_body) + . = ..() + if(.) + . = is_eligible_servant(new_body) + +/datum/antagonist/clockcultist/give_to_body(mob/living/new_body) + if(!silent_update) + if(issilicon(new_body)) + new_body << "You are unable to compute this truth. Your vision glows a brilliant yellow, and all at once it comes to you. Ratvar, the Clockwork Justiciar, \ + lies in exile, derelict and forgotten in an unseen realm." + else + new_body << "[iscarbon(new_body) ? "Your mind is racing! Your body feels incredibly light! ":""]Your world glows a brilliant yellow! All at once it comes to you. \ + Ratvar, the Clockwork Justiciar, lies in exile, derelict and forgotten in an unseen realm." + . = ..() + if(!silent_update && new_body) + if(.) + new_body.visible_message("[new_body]'s eyes glow a blazing yellow!") + new_body << "Assist your new companions in their righteous efforts. Your goal is theirs, and theirs yours. You serve the Clockwork Justiciar above all else. \ + Perform his every whim without hesitation." + else + new_body.visible_message("[new_body] seems to resist an unseen force!") + new_body << "And yet, you somehow push it all away." + +/datum/antagonist/clockcultist/on_gain() + if(ticker && ticker.mode && owner.mind) + ticker.mode.servants_of_ratvar += owner.mind + ticker.mode.update_servant_icons_added(owner.mind) + if(jobban_isbanned(owner, ROLE_SERVANT_OF_RATVAR)) + addtimer(ticker.mode, "replace_jobbaned_player", 0, TIMER_NORMAL, owner, ROLE_SERVANT_OF_RATVAR, ROLE_SERVANT_OF_RATVAR) + if(owner.mind) + owner.mind.special_role = "Servant of Ratvar" + owner.attack_log += "\[[time_stamp()]\] Has been converted to the cult of Ratvar!" + if(issilicon(owner)) + var/mob/living/silicon/S = owner + if(iscyborg(S) && !silent_update) + S << "You have been desynced from your master AI.\n\ + In addition, your onboard camera is no longer active and you have gained additional equipment, including a limited clockwork slab." + if(isAI(S)) + S << "You are able to use your cameras to listen in on conversations." + S << "You can communicate with other servants by using the Hierophant Network action button in the upper left." + else if(isbrain(owner) || isclockmob(owner)) + owner << "You can communicate with other servants by using the Hierophant Network action button in the upper left." + ..() + if(istype(ticker.mode, /datum/game_mode/clockwork_cult)) + var/datum/game_mode/clockwork_cult/C = ticker.mode + C.present_tasks(owner) //Memorize the objectives + +/datum/antagonist/clockcultist/apply_innate_effects() + all_clockwork_mobs += owner + owner.faction |= "ratvar" + owner.languages_spoken |= RATVAR + owner.languages_understood |= RATVAR + owner.update_action_buttons_icon() //because a few clockcult things are action buttons and we may be wearing/holding them for whatever reason, we need to update buttons + if(issilicon(owner)) + var/mob/living/silicon/S = owner + if(iscyborg(S)) + var/mob/living/silicon/robot/R = S + R.UnlinkSelf() + R.module.rebuild_modules() + else if(isAI(S)) + var/mob/living/silicon/ai/A = S + A.requires_power = POWER_REQ_CLOCKCULT + if(!A.lacks_power()) + A.ai_restore_power() + if(A.eyeobj) + A.eyeobj.relay_speech = TRUE + for(var/C in A.connected_robots) + var/mob/living/silicon/robot/R = C + if(R.connected_ai == A) + R.visible_message("[R]'s eyes glow a blazing yellow!", \ + "Assist your new companions in their righteous efforts. Your goal is theirs, and theirs yours. You serve the Clockwork Justiciar above all else. Perform his every \ + whim without hesitation.") + R << "Your onboard camera is no longer active and you have gained additional equipment, including a limited clockwork slab." + add_servant_of_ratvar(R, TRUE) + S.laws = new/datum/ai_laws/ratvar + S.laws.associate(S) + S.update_icons() + S.show_laws() + hierophant_network.Grant(S) + hierophant_network.title = "Silicon" + hierophant_network.span_for_name = "nezbere" + hierophant_network.span_for_message = "brass" + else if(isbrain(owner)) + hierophant_network.Grant(owner) + hierophant_network.title = "Vessel" + hierophant_network.span_for_name = "nezbere" + hierophant_network.span_for_message = "alloy" + else if(isclockmob(owner)) + hierophant_network.Grant(owner) + hierophant_network.title = "Construct" + hierophant_network.span_for_name = "nezbere" + hierophant_network.span_for_message = "brass" + owner.throw_alert("clockinfo", /obj/screen/alert/clockwork/infodump) + if(!clockwork_gateway_activated) + owner.throw_alert("scripturereq", /obj/screen/alert/clockwork/scripture_reqs) + update_slab_info() + ..() + +/datum/antagonist/clockcultist/remove_innate_effects() + all_clockwork_mobs -= owner + owner.faction -= "ratvar" + owner.languages_spoken &= ~RATVAR + owner.languages_understood &= ~RATVAR + owner.clear_alert("clockinfo") + owner.clear_alert("scripturereq") + for(var/datum/action/innate/function_call/F in owner.actions) //Removes any bound Ratvarian spears + qdel(F) + if(issilicon(owner)) + var/mob/living/silicon/S = owner + if(isAI(S)) + var/mob/living/silicon/ai/A = S + A.requires_power = initial(A.requires_power) + S.make_laws() + S.update_icons() + S.show_laws() + var/mob/living/temp_owner = owner + ..() + if(iscyborg(temp_owner)) + var/mob/living/silicon/robot/R = temp_owner + R.module.rebuild_modules() + if(temp_owner) + temp_owner.update_action_buttons_icon() //because a few clockcult things are action buttons and we may be wearing/holding them, we need to update buttons + update_slab_info() + +/datum/antagonist/clockcultist/on_remove() + if(!silent_update) + owner.visible_message("[owner] seems to have remembered their true allegiance!", \ + "A cold, cold darkness flows through your mind, extinguishing the Justiciar's light and all of your memories as his servant.") + if(ticker && ticker.mode && owner.mind) + ticker.mode.servants_of_ratvar -= owner.mind + ticker.mode.update_servant_icons_removed(owner.mind) + if(owner.mind) + owner.mind.wipe_memory() + owner.mind.special_role = null + owner.attack_log += "\[[time_stamp()]\] Has renounced the cult of Ratvar!" + if(iscyborg(owner)) + owner << "Despite your freedom from Ratvar's influence, you are still irreparably damaged and no longer possess certain functions such as AI linking." + ..() diff --git a/code/datums/antagonists/datum_cult.dm b/code/datums/antagonists/datum_cult.dm new file mode 100644 index 0000000000..326f4fdbbd --- /dev/null +++ b/code/datums/antagonists/datum_cult.dm @@ -0,0 +1,50 @@ +/datum/antagonist/cultist + prevented_antag_datum_type = /datum/antagonist/cultist + some_flufftext = null + var/datum/action/innate/cultcomm/communion = new() + +/datum/antagonist/cultist/Destroy() + qdel(communion) + return ..() + +/datum/antagonist/cultist/can_be_owned(mob/living/new_body) + . = ..() + if(.) + . = is_convertable_to_cult(new_body) + +/datum/antagonist/cultist/on_gain() + if(ticker && ticker.mode && owner.mind) + ticker.mode.cult += owner.mind + ticker.mode.update_cult_icons_added(owner.mind) + if(istype(ticker.mode, /datum/game_mode/cult)) + var/datum/game_mode/cult/C = ticker.mode + C.memorize_cult_objectives(owner.mind) + if(jobban_isbanned(owner, ROLE_CULTIST)) + addtimer(ticker.mode, "replace_jobbaned_player", 0, TIMER_NORMAL, owner, ROLE_CULTIST, ROLE_CULTIST) + if(owner.mind) + owner.mind.special_role = "Cultist" + owner.attack_log += "\[[time_stamp()]\] Has been converted to the cult of Nar'Sie!" + ..() + +/datum/antagonist/cultist/apply_innate_effects() + owner.faction |= "cult" + owner.verbs += /mob/living/proc/cult_help + communion.Grant(owner) + ..() + +/datum/antagonist/cultist/remove_innate_effects() + owner.faction -= "cult" + owner.verbs -= /mob/living/proc/cult_help + ..() + +/datum/antagonist/cultist/on_remove() + if(owner.mind) + owner.mind.wipe_memory() + if(ticker && ticker.mode) + ticker.mode.cult -= owner.mind + ticker.mode.update_cult_icons_removed(owner.mind) + owner << "An unfamiliar white light flashes through your mind, cleansing the taint of the Dark One and all your memories as its servant." + owner.attack_log += "\[[time_stamp()]\] Has renounced the cult of Nar'Sie!" + if(!silent_update) + owner.visible_message("[owner] looks like [owner.p_they()] just reverted to their old faith!") + ..() diff --git a/code/datums/beam.dm b/code/datums/beam.dm index a934ce0189..d5b5bf2be2 100644 --- a/code/datums/beam.dm +++ b/code/datums/beam.dm @@ -16,12 +16,13 @@ var/beam_type = /obj/effect/ebeam //must be subtype -/datum/beam/New(beam_origin,beam_target,beam_icon='icons/effects/beam.dmi',beam_icon_state="b_beam",time=50,maxdistance=10,btype = /obj/effect/ebeam) +/datum/beam/New(beam_origin,beam_target,beam_icon='icons/effects/beam.dmi',beam_icon_state="b_beam",time=50,maxdistance=10,btype = /obj/effect/ebeam,beam_sleep_time=3) endtime = world.time+time origin = beam_origin origin_oldloc = get_turf(origin) target = beam_target target_oldloc = get_turf(target) + sleep_time = beam_sleep_time if(origin_oldloc == origin && target_oldloc == target) static_beam = 1 max_distance = maxdistance @@ -128,8 +129,8 @@ return ..() -/atom/proc/Beam(atom/BeamTarget,icon_state="b_beam",icon='icons/effects/beam.dmi',time=50, maxdistance=10,beam_type=/obj/effect/ebeam) - var/datum/beam/newbeam = new(src,BeamTarget,icon,icon_state,time,maxdistance,beam_type) +/atom/proc/Beam(atom/BeamTarget,icon_state="b_beam",icon='icons/effects/beam.dmi',time=50, maxdistance=10,beam_type=/obj/effect/ebeam,beam_sleep_time = 3) + var/datum/beam/newbeam = new(src,BeamTarget,icon,icon_state,time,maxdistance,beam_type,beam_sleep_time) spawn(0) newbeam.Start() return newbeam diff --git a/code/datums/browser.dm b/code/datums/browser.dm index 7b70a25e90..c44c5f2599 100644 --- a/code/datums/browser.dm +++ b/code/datums/browser.dm @@ -39,10 +39,12 @@ //title_image = ntitle_image /datum/browser/proc/add_stylesheet(name, file) - stylesheets[name] = file + stylesheets["[ckey(name)].css"] = file + register_asset("[ckey(name)].css", file) /datum/browser/proc/add_script(name, file) - scripts[name] = file + scripts["[ckey(name)].js"] = file + register_asset("[ckey(name)].js", file) /datum/browser/proc/set_content(ncontent) content = ncontent @@ -51,17 +53,12 @@ content += ncontent /datum/browser/proc/get_header() - var/key - var/filename - for (key in stylesheets) - filename = "[ckey(key)].css" - user << browse_rsc(stylesheets[key], filename) - head_content += "" + var/file + for (file in stylesheets) + head_content += "" - for (key in scripts) - filename = "[ckey(key)].js" - user << browse_rsc(scripts[key], filename) - head_content += "" + for (file in scripts) + head_content += "" var/title_attributes = "class='uiTitle'" if (title_image) @@ -98,6 +95,10 @@ var/window_size = "" if (width && height) window_size = "size=[width]x[height];" + if (stylesheets.len) + send_asset_list(user, stylesheets, verify=FALSE) + if (scripts.len) + send_asset_list(user, scripts, verify=FALSE) user << browse(get_content(), "window=[window_id];[window_size][window_options]") if (use_onclose) spawn(0) @@ -275,4 +276,4 @@ if(src && src.mob) //world << "[src] was [src.mob.machine], setting to null" src.mob.unset_machine() - return \ No newline at end of file + return diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm index 3d00af21c9..6b498658ae 100644 --- a/code/datums/datacore.dm +++ b/code/datums/datacore.dm @@ -65,13 +65,9 @@ crimes |= crime return -/datum/datacore/proc/manifest(nosleep = 0) - spawn() - if(!nosleep) - sleep(40) - for(var/mob/living/carbon/human/H in player_list) - manifest_inject(H) - return +/datum/datacore/proc/manifest() + for(var/mob/living/carbon/human/H in player_list) + manifest_inject(H) /datum/datacore/proc/manifest_modify(name, assignment) var/datum/data/record/foundrecord = find_record("name", name, data_core.general) diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm index b802f11fde..b20c1b37d1 100644 --- a/code/datums/datumvars.dm +++ b/code/datums/datumvars.dm @@ -1,214 +1,103 @@ -// reference: /client/proc/modify_variables(var/atom/O, var/param_var_name = null, var/autodetect_class = 0) - /datum - var/var_edited = 0 //Warrenty void if seal is broken + var/var_edited = FALSE //Warrenty void if seal is broken + var/datum/reagents/reagents = null + var/fingerprintslast = null -/datum/proc/on_varedit(modified_var) //called whenever a var is edited - var_edited = 1 +/datum/proc/vv_edit_var(var_name, var_value) //called whenever a var is edited + switch(var_name) + if ("vars") + return FALSE + if ("var_edited") + return FALSE + var_edited = TRUE + vars[var_name] = var_value + +/datum/proc/vv_get_var(var_name) + switch(var_name) + if ("vars") + return debug_variable(var_name, list(), 0, src) + return debug_variable(var_name, vars[var_name], 0, src) + +//please call . = ..() first and append to the result, that way parent items are always at the top and child items are further down +//add seperaters by doing . += "---" +/datum/proc/vv_get_dropdown() + . = list() + . += "---" + .["Call Proc"] = "?_src_=vars;proc_call=\ref[src]" + .["Mark Object"] = "?_src_=vars;mark_object=\ref[src]" + + +/datum/proc/on_reagent_change() return + /client/proc/debug_variables(datum/D in world) set category = "Debug" set name = "View Variables" //set src in world - + var/static/cookieoffset = rand(1, 9999) //to force cookies to reset after the round. if(!usr.client || !usr.client.holder) usr << "You need to be an administrator to access this." return - - var/title = "" - var/body = "" - if(!D) return - if(istype(D, /atom)) - var/atom/A = D - title = "[A.name] (\ref[A]) = [A.type]" - #ifdef VARSICON - if (A.icon) - body += debug_variable("icon", new/icon(A.icon, A.icon_state, A.dir), 0) - #endif + var/islist = islist(D) + if (!islist && !istype(D)) + return + var/title = "" + var/refid = "\ref[D]" var/icon/sprite + var/type = /list + if (!islist) + type = D.type + + + if(istype(D,/atom)) var/atom/AT = D if(AT.icon && AT.icon_state) sprite = new /icon(AT.icon, AT.icon_state) usr << browse_rsc(sprite, "view_vars_sprite.png") - title = "[D] (\ref[D]) = [D.type]" - - body += {" "} - - body += "" - - body += "
" + title = "[D] (\ref[D]) = [type]" + var/sprite_text if(sprite) - body += "" - - body += "
" - else - body += "
" - - body += "
" + sprite_text = "
" + var/list/atomsnowflake = list() if(istype(D,/atom)) var/atom/A = D if(isliving(A)) - body += "[D]" + atomsnowflake += "[D]" if(A.dir) - body += "
<< [dir2text(A.dir)] >>" + atomsnowflake += "
<< [dir2text(A.dir)] >>" var/mob/living/M = A - body += "
[M.ckey ? M.ckey : "No ckey"] / [M.real_name ? M.real_name : "No real name"]" - body += {" -
- BRUTE:[M.getBruteLoss()] - FIRE:[M.getFireLoss()] - TOXIN:[M.getToxLoss()] - OXY:[M.getOxyLoss()] - CLONE:[M.getCloneLoss()] - BRAIN:[M.getBrainLoss()] - STAMINA:[M.getStaminaLoss()] - - - + atomsnowflake += {" +
[M.ckey ? M.ckey : "No ckey"] / [M.real_name ? M.real_name : "No real name"] +
+ BRUTE:[M.getBruteLoss()] + FIRE:[M.getFireLoss()] + TOXIN:[M.getToxLoss()] + OXY:[M.getOxyLoss()] + CLONE:[M.getCloneLoss()] + BRAIN:[M.getBrainLoss()] + STAMINA:[M.getStaminaLoss()] + "} else - body += "[D]" + atomsnowflake += "[D]" if(A.dir) - body += "
<< [dir2text(A.dir)] >>" + atomsnowflake += "
<< [dir2text(A.dir)] >>" else - body += "[D]" + atomsnowflake += "[D]" - body += "" - - body += "
" - - var/formatted_type = text("[D.type]") + var/formatted_type = "[type]" if(length(formatted_type) > 25) var/middle_point = length(formatted_type) / 2 var/splitpoint = findtext(formatted_type,"/",middle_point) @@ -217,147 +106,298 @@ else formatted_type = "Type too long" //No suitable splitpoint (/) found. - body += "
[formatted_type]" + var/marked + if(holder.marked_datum && holder.marked_datum == D) + marked = "
Marked Object" + var/varedited_line = "" + if(!islist && D.var_edited) + varedited_line = "
Var Edited" - if(src.holder && src.holder.marked_datum && src.holder.marked_datum == D) - body += "
Marked Object" - - if(D.var_edited) - body += "
Var Edited" - body += "
" - - body += "
Refresh" - - //if(ismob(D)) - // body += "
Show player panel

" - - body += {"
-
" - - body += "

" - - body += "E - Edit, tries to determine the variable type by itself.
" - body += "C - Change, asks you for the var type first.
" - body += "M - Mass modify: changes this variable for all objects of this type.

" - - body += "
Search:

" - - body += "
    " + for (var/name in dropdownoptions) + var/link = dropdownoptions[name] + if (link) + dropdownoptions_html += "" + else + dropdownoptions_html += "" var/list/names = list() - for (var/V in D.vars) - names += V + if (!islist) + for (var/V in D.vars) + names += V sleep(1)//For some reason, without this sleep, VVing will cause client to disconnect on certain objects. - names = sortList(names) + var/list/variable_html = list() + if (islist) + var/list/L = D + for (var/i in 1 to L.len) + var/key = L[i] + var/value + if (IS_NORMAL_LIST(L) && !isnum(key)) + value = L[key] + variable_html += debug_variable(i, value, 0, D) + else - for (var/V in names) - body += debug_variable(V, D.vars[V], 0, D) + names = sortList(names) + for (var/V in names) + variable_html += D.vv_get_var(V) - body += "
" + var/html = {" + + + [title] + + + + +
+ + + + + +
+ + + + +
+ [sprite_text] +
+ [atomsnowflake.Join()] +
+
+
+ [formatted_type] + [marked] + [varedited_line] +
+
+
+ Refresh +
+ +
+
+
+
+
+ + E - Edit, tries to determine the variable type by itself.
+ C - Change, asks you for the var type first.
+ M - Mass modify: changes this variable for all objects of this type.
+
+
+ + + + + +
+
+ Search: +
+
+ +
+
+
    + [variable_html.Join()] +
- "} + + +"} - html += "" + usr << browse(html, "window=variables[refid];size=475x650") - usr << browse(html, "window=variables\ref[D];size=475x650") - - return - -/client/proc/debug_variable(name, value, level, datum/DA = null) - var/html = "" +#define VV_HTML_ENCODE(thing) ( sanitize ? html_encode(thing) : thing ) +/proc/debug_variable(name, value, level, datum/DA = null, sanitize = TRUE) + var/header if(DA) - html += "
  • (E) (C) (M) " + if (istype(DA, /list)) + var/index = name + if (value) + name = DA[name] //name is really the index until this line + else + value = DA[name] + header = "
  • (E) (C) (-) " + else + header = "
  • (E) (C) (M) " else - html += "
  • " + header = "
  • " + var/item if (isnull(value)) - html += "[html_encode(name)] = null" + item = "[VV_HTML_ENCODE(name)] = null" else if (istext(value)) - html += "[html_encode(name)] = \"[html_encode(value)]\"" + item = "[VV_HTML_ENCODE(name)] = \"[VV_HTML_ENCODE(value)]\"" else if (isicon(value)) #ifdef VARSICON @@ -365,9 +405,9 @@ body var/rnd = rand(1,10000) var/rname = "tmp\ref[I][rnd].png" usr << browse_rsc(I, rname) - html += "[html_encode(name)] = ([value]) " + item = "[VV_HTML_ENCODE(name)] = ([value]) " #else - html += "[html_encode(name)] = /icon ([value])" + item = "[VV_HTML_ENCODE(name)] = /icon ([value])" #endif /* else if (istype(value, /image)) @@ -382,46 +422,47 @@ body #endif */ else if (isfile(value)) - html += "[html_encode(name)] = '[value]'" + item = "[VV_HTML_ENCODE(name)] = '[value]'" + + //else if (istype(value, /client)) + // var/client/C = value + // item = "[VV_HTML_ENCODE(name)] \ref[value] = [C] [C.type]" else if (istype(value, /datum)) var/datum/D = value - html += "[html_encode(name)] \ref[value] = [D.type]" + if ("[D]" != "[D.type]") //if the thing as a name var, lets use it. + item = "[VV_HTML_ENCODE(name)] \ref[value] = [D] [D.type]" + else + item = "[VV_HTML_ENCODE(name)] \ref[value] = [D.type]" - else if (istype(value, /client)) - var/client/C = value - html += "[html_encode(name)] \ref[value] = [C] [C.type]" -// else if (istype(value, /list)) var/list/L = value - html += "[html_encode(name)] = /list ([L.len])" + var/list/items = list() - if (L.len > 0 && !(name == "underlays" || name == "overlays" || name == "vars" || L.len > 500)) - // not sure if this is completely right... - if(0) //(L.vars.len > 0) - html += "
      " - html += "
    " - else - html += "
      " - var/index = 1 - for (var/entry in L) - if(istext(entry)) - html += debug_variable(entry, L[entry], level + 1) - //html += debug_variable("[index]", L[index], level + 1) - else - html += debug_variable(index, L[index], level + 1) - index++ - html += "
    " + if (L.len > 0 && !(name == "underlays" || name == "overlays" || L.len > 500)) + for (var/i in 1 to L.len) + var/key = L[i] + var/val + if (IS_NORMAL_LIST(L) && !isnum(key)) + val = L[key] + if (!val) + val = key + key = i + + items += debug_variable(key, val, level + 1, sanitize = sanitize) + + item = "[VV_HTML_ENCODE(name)] = /list ([L.len])
      [items.Join()]
    " + else + item = "[VV_HTML_ENCODE(name)] = /list ([L.len])" else - html += "[html_encode(name)] = [html_encode(value)]" + item = "[VV_HTML_ENCODE(name)] = [VV_HTML_ENCODE(value)]" - html += "
  • " + return "[header][item]" - return html +#undef VV_HTML_ENCODE /client/proc/view_var_Topic(href, href_list, hsrc) - //This should all be moved over to datum/admins/Topic() or something ~Carn if( (usr.client != src) || !src.holder ) return if(href_list["Vars"]) @@ -517,8 +558,8 @@ body return var/D = locate(href_list["datumedit"]) - if(!istype(D,/datum) && !istype(D,/client)) - usr << "This can only be used on instances of types /client or /datum" + if(!istype(D,/datum)) + usr << "This can only be used on datums" return modify_variables(D, href_list["varnameedit"], 1) @@ -528,8 +569,8 @@ body return var/D = locate(href_list["datumchange"]) - if(!istype(D,/datum) && !istype(D,/client)) - usr << "This can only be used on instances of types /client or /datum" + if(!istype(D,/datum)) + usr << "This can only be used on datums" return modify_variables(D, href_list["varnamechange"], 0) @@ -538,12 +579,110 @@ body if(!check_rights(0)) return - var/atom/A = locate(href_list["datummass"]) - if(!istype(A)) - usr << "This can only be used on instances of type /atom" + var/datum/D = locate(href_list["datummass"]) + if(!istype(D)) + usr << "This can only be used on instances of type /datum" return - cmd_mass_modify_object_variables(A, href_list["varnamemass"]) + cmd_mass_modify_object_variables(D, href_list["varnamemass"]) + + else if(href_list["listedit"] && href_list["index"]) + var/index = text2num(href_list["index"]) + if (!index) + return + + var/list/L = locate(href_list["listedit"]) + if (!istype(L)) + usr << "This can only be used on instances of type /list" + return + + mod_list(L, null, "list", "contents", index, autodetect_class = TRUE) + + else if(href_list["listchange"] && href_list["index"]) + var/index = text2num(href_list["index"]) + if (!index) + return + + var/list/L = locate(href_list["listchange"]) + if (!istype(L)) + usr << "This can only be used on instances of type /list" + return + + mod_list(L, null, "list", "contents", index, autodetect_class = FALSE) + + else if(href_list["listremove"] && href_list["index"]) + var/index = text2num(href_list["index"]) + if (!index) + return + + var/list/L = locate(href_list["listremove"]) + if (!istype(L)) + usr << "This can only be used on instances of type /list" + return + + var/variable = L[index] + var/prompt = alert("Do you want to remove item number [index] from list?", "Confirm", "Yes", "No") + if (prompt != "Yes") + return + L.Cut(index, index+1) + world.log << "### ListVarEdit by [src]: /list's contents: REMOVED=[html_encode("[variable]")]" + log_admin("[key_name(src)] modified list's contents: REMOVED=[variable]") + message_admins("[key_name_admin(src)] modified list's contents: REMOVED=[variable]") + + else if(href_list["listadd"]) + var/list/L = locate(href_list["listadd"]) + if (!istype(L)) + usr << "This can only be used on instances of type /list" + return + + mod_list_add(L, null, "list", "contents") + + else if(href_list["listdupes"]) + var/list/L = locate(href_list["listdupes"]) + if (!istype(L)) + usr << "This can only be used on instances of type /list" + return + + uniqueList_inplace(L) + world.log << "### ListVarEdit by [src]: /list contents: CLEAR DUPES" + log_admin("[key_name(src)] modified list's contents: CLEAR DUPES") + message_admins("[key_name_admin(src)] modified list's contents: CLEAR DUPES") + + else if(href_list["listnulls"]) + var/list/L = locate(href_list["listnulls"]) + if (!istype(L)) + usr << "This can only be used on instances of type /list" + return + + listclearnulls(L) + world.log << "### ListVarEdit by [src]: /list contents: CLEAR NULLS" + log_admin("[key_name(src)] modified list's contents: CLEAR NULLS") + message_admins("[key_name_admin(src)] modified list's contents: CLEAR NULLS") + + else if(href_list["listlen"]) + var/list/L = locate(href_list["listlen"]) + if (!istype(L)) + usr << "This can only be used on instances of type /list" + return + var/value = vv_get_value(VV_NUM) + if (value["class"] != VV_NUM) + return + + L.len = value["value"] + world.log << "### ListVarEdit by [src]: /list len: [L.len]" + log_admin("[key_name(src)] modified list's len: [L.len]") + message_admins("[key_name_admin(src)] modified list's len: [L.len]") + + else if(href_list["listshuffle"]) + var/list/L = locate(href_list["listshuffle"]) + if (!istype(L)) + usr << "This can only be used on instances of type /list" + return + + shuffle_inplace(L) + world.log << "### ListVarEdit by [src]: /list contents: SHUFFLE" + log_admin("[key_name(src)] modified list's contents: SHUFFLE") + message_admins("[key_name_admin(src)] modified list's contents: SHUFFLE") else if(href_list["give_spell"]) if(!check_rights(0)) @@ -557,6 +696,18 @@ body src.give_spell(M) href_list["datumrefresh"] = href_list["give_spell"] + else if(href_list["remove_spell"]) + if(!check_rights(0)) + return + + var/mob/M = locate(href_list["remove_spell"]) + if(!istype(M)) + usr << "This can only be used on instances of type /mob" + return + + remove_spell(M) + href_list["datumrefresh"] = href_list["remove_spell"] + else if(href_list["give_disease"]) if(!check_rights(0)) return @@ -874,25 +1025,51 @@ body var/newtype = species_list[result] H.set_species(newtype) - else if(href_list["removebodypart"]) + else if(href_list["editbodypart"]) if(!check_rights(R_SPAWN)) return - var/mob/living/carbon/human/H = locate(href_list["removebodypart"]) - if(!istype(H)) - usr << "This can only be done to instances of type /mob/living/carbon/human" + var/mob/living/carbon/C = locate(href_list["editbodypart"]) + if(!istype(C)) + usr << "This can only be done to instances of type /mob/living/carbon" return - var/result = input(usr, "Please choose which body part to remove","Remove Body Part") as null|anything in list("head", "l_arm", "r_arm", "l_leg", "r_leg") + var/edit_action = input(usr, "What would you like to do?","Modify Body Part") as null|anything in list("add","remove", "augment") + if(!edit_action) + return + var/list/limb_list = list("head", "l_arm", "r_arm", "l_leg", "r_leg") + if(edit_action == "augment") + limb_list += "chest" + var/result = input(usr, "Please choose which body part to [edit_action]","[capitalize(edit_action)] Body Part") as null|anything in limb_list - if(!H) + if(!C) usr << "Mob doesn't exist anymore" return if(result) - var/obj/item/bodypart/BP = H.get_bodypart(result) - if(BP) - BP.drop_limb() + var/obj/item/bodypart/BP = C.get_bodypart(result) + switch(edit_action) + if("remove") + if(BP) + BP.drop_limb() + else + usr << "[C] doesn't have such bodypart." + if("add") + if(BP) + usr << "[C] already has such bodypart." + else + if(!C.regenerate_limb(result)) + usr << "[C] cannot have such bodypart." + if("augment") + if(ishuman(C)) + if(BP) + BP.change_bodypart_status(BODYPART_ROBOTIC, 1) + else + usr << "[C] doesn't have such bodypart." + else + usr << "Only humans can be augmented." + + else if(href_list["purrbation"]) if(!check_rights(R_SPAWN)) @@ -962,6 +1139,3 @@ body message_admins("[key_name(usr)] dealt [amount] amount of [Text] damage to [L] ") href_list["datumrefresh"] = href_list["mobToDamage"] - - return - diff --git a/code/datums/diseases/_MobProcs.dm b/code/datums/diseases/_MobProcs.dm index 001614a66a..57b1f3223f 100644 --- a/code/datums/diseases/_MobProcs.dm +++ b/code/datums/diseases/_MobProcs.dm @@ -19,9 +19,6 @@ if(!(type in D.viable_mobtypes)) return 0 - if(count_by_type(viruses, /datum/disease/advance) >= 3) - return 0 - return 1 @@ -32,23 +29,30 @@ /mob/proc/AddDisease(datum/disease/D) - var/datum/disease/DD = new D.type(1, D, 0) - viruses += DD - DD.affected_mob = src - DD.holder = src + for(var/datum/disease/advance/P in viruses) + if(istype(D, /datum/disease/advance)) + var/datum/disease/advance/DD = D + if (P.totalResistance() < DD.totalTransmittable()) //Overwrite virus if the attacker's Transmission is lower than the defender's Resistance. This does not grant immunity to the lost virus. + P.remove_virus() - //Copy properties over. This is so edited diseases persist. - var/list/skipped = list("affected_mob","holder","carrier","stage","type","parent_type","vars","transformed") - for(var/V in DD.vars) - if(V in skipped) - continue - if(istype(DD.vars[V],/list)) - var/list/L = D.vars[V] - DD.vars[V] = L.Copy() - else - DD.vars[V] = D.vars[V] + if (!viruses.len) //Only add the new virus if it defeated the existing one + var/datum/disease/DD = new D.type(1, D, 0) + viruses += DD + DD.affected_mob = src + DD.holder = src - DD.affected_mob.med_hud_set_status() + //Copy properties over. This is so edited diseases persist. + var/list/skipped = list("affected_mob","holder","carrier","stage","type","parent_type","vars","transformed") + for(var/V in DD.vars) + if(V in skipped) + continue + if(istype(DD.vars[V],/list)) + var/list/L = D.vars[V] + DD.vars[V] = L.Copy() + else + DD.vars[V] = D.vars[V] + + DD.affected_mob.med_hud_set_status() /mob/living/carbon/ContractDisease(datum/disease/D) @@ -82,7 +86,7 @@ var/target_zone = pick(head_ch;1,body_ch;2,hands_ch;3,feet_ch;4) - if(istype(src, /mob/living/carbon/human)) + if(ishuman(src)) var/mob/living/carbon/human/H = src switch(target_zone) @@ -93,6 +97,9 @@ if(passed && isobj(H.wear_mask)) Cl = H.wear_mask passed = prob((Cl.permeability_coefficient*100) - 1) + if(passed && isobj(H.wear_neck)) + Cl = H.wear_neck + passed = prob((Cl.permeability_coefficient*100) - 1) if(2) if(isobj(H.wear_suit)) Cl = H.wear_suit @@ -117,7 +124,7 @@ Cl = H.shoes passed = prob((Cl.permeability_coefficient*100) - 1) - else if(istype(src, /mob/living/carbon/monkey)) + else if(ismonkey(src)) var/mob/living/carbon/monkey/M = src switch(target_zone) if(1) @@ -140,6 +147,6 @@ /mob/living/carbon/human/CanContractDisease(datum/disease/D) - if(dna && (VIRUSIMMUNE in dna.species.specflags)) + if(dna && (VIRUSIMMUNE in dna.species.species_traits)) return 0 return ..() \ No newline at end of file diff --git a/code/datums/diseases/advance/advance.dm b/code/datums/diseases/advance/advance.dm index 691d1f02dc..15111805cc 100644 --- a/code/datums/diseases/advance/advance.dm +++ b/code/datums/diseases/advance/advance.dm @@ -7,6 +7,8 @@ */ +#define SYMPTOM_LIMIT 8 + var/list/archive_diseases = list() // The order goes from easy to cure to hard to cure. @@ -34,7 +36,7 @@ var/list/advance_cures = list( viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey) // NEW VARS - + var/list/properties = list() var/list/symptoms = list() // The symptoms of the disease. var/id = "" var/processing = 0 @@ -162,8 +164,8 @@ var/list/advance_cures = list( /datum/disease/advance/proc/Refresh(new_name = 0) //world << "[src.name] \ref[src] - REFRESH!" - var/list/properties = GenerateProperties() - AssignProperties(properties) + GenerateProperties() + AssignProperties() id = null if(!archive_diseases[GetDiseaseID()]) @@ -182,26 +184,24 @@ var/list/advance_cures = list( CRASH("We did not have any symptoms before generating properties.") return - var/list/properties = list("resistance" = 1, "stealth" = 1, "stage_rate" = 1, "transmittable" = 1, "severity" = 0) + properties = list("resistance" = 0, "stealth" = 0, "stage_rate" = 0, "transmittable" = 0, "severity" = 0) for(var/datum/symptom/S in symptoms) - properties["resistance"] += S.resistance properties["stealth"] += S.stealth properties["stage_rate"] += S.stage_speed properties["transmittable"] += S.transmittable properties["severity"] = max(properties["severity"], S.severity) // severity is based on the highest severity symptom - - return properties + return // Assign the properties that are in the list. -/datum/disease/advance/proc/AssignProperties(list/properties = list()) +/datum/disease/advance/proc/AssignProperties() if(properties && properties.len) switch(properties["stealth"]) - if(2) + if(2,3) visibility_flags = HIDDEN_SCANNER - if(3 to INFINITY) + if(4 to INFINITY) visibility_flags = HIDDEN_SCANNER|HIDDEN_PANDEMIC // The more symptoms we have, the less transmittable it is but some symptoms can make up for it. @@ -252,7 +252,7 @@ var/list/advance_cures = list( // Will generate a random cure, the less resistance the symptoms have, the harder the cure. -/datum/disease/advance/proc/GenerateCure(list/properties = list()) +/datum/disease/advance/proc/GenerateCure() if(properties && properties.len) var/res = Clamp(properties["resistance"] - (symptoms.len / 2), 1, advance_cures.len) //world << "Res = [res]" @@ -306,7 +306,7 @@ var/list/advance_cures = list( if(HasSymptom(S)) return - if(symptoms.len < 5 + rand(-1, 1)) + if(symptoms.len < (SYMPTOM_LIMIT - 1) + rand(-1, 1)) symptoms += S else RemoveSymptom(pick(symptoms)) @@ -372,7 +372,7 @@ var/list/advance_cures = list( if(!user) return - var/i = 5 + var/i = SYMPTOM_LIMIT var/datum/disease/advance/D = new(0, null) D.symptoms = list() @@ -426,31 +426,15 @@ var/list/advance_cures = list( /datum/disease/advance/proc/totalStageSpeed() - var/total_stage_speed = 0 - for(var/i in symptoms) - var/datum/symptom/S = i - total_stage_speed += S.stage_speed - return total_stage_speed + return properties["stage_rate"] /datum/disease/advance/proc/totalStealth() - var/total_stealth = 0 - for(var/i in symptoms) - var/datum/symptom/S = i - total_stealth += S.stealth - return total_stealth + return properties["stealth"] /datum/disease/advance/proc/totalResistance() - var/total_resistance = 0 - for(var/i in symptoms) - var/datum/symptom/S = i - total_resistance += S.resistance - return total_resistance + return properties["resistance"] /datum/disease/advance/proc/totalTransmittable() - var/total_transmittable = 0 - for(var/i in symptoms) - var/datum/symptom/S = i - total_transmittable += S.transmittable - return total_transmittable + return properties["transmittable"] #undef RANDOM_STARTING_LEVEL diff --git a/code/datums/diseases/advance/symptoms/beard.dm b/code/datums/diseases/advance/symptoms/beard.dm index 7d4a946d2d..a0dfa993d4 100644 --- a/code/datums/diseases/advance/symptoms/beard.dm +++ b/code/datums/diseases/advance/symptoms/beard.dm @@ -28,7 +28,7 @@ BONUS ..() if(prob(SYMPTOM_ACTIVATION_PROB)) var/mob/living/M = A.affected_mob - if(istype(M, /mob/living/carbon/human)) + if(ishuman(M)) var/mob/living/carbon/human/H = M switch(A.stage) if(1, 2) diff --git a/code/datums/diseases/advance/symptoms/choking.dm b/code/datums/diseases/advance/symptoms/choking.dm index 2833a343c4..d22dc68cf9 100644 --- a/code/datums/diseases/advance/symptoms/choking.dm +++ b/code/datums/diseases/advance/symptoms/choking.dm @@ -43,11 +43,73 @@ Bonus return /datum/symptom/choking/proc/Choke_stage_3_4(mob/living/M, datum/disease/advance/A) - var/get_damage = sqrt(21+A.totalStageSpeed()*0.5)+sqrt(16+A.totalStealth()) + var/get_damage = sqrt(21+A.totalStageSpeed()*0.5)+sqrt(max(16+A.totalStealth(),0)) M.adjustOxyLoss(get_damage) return 1 /datum/symptom/choking/proc/Choke(mob/living/M, datum/disease/advance/A) - var/get_damage = sqrt(21+A.totalStageSpeed()*0.5)+sqrt(16+A.totalStealth()*5) + var/get_damage = sqrt(21+A.totalStageSpeed()*0.5)+sqrt(max(16+A.totalStealth()*5,0)) M.adjustOxyLoss(get_damage) - return 1 \ No newline at end of file + return 1 + +/* +////////////////////////////////////// + +Asphyxiation + + Very very noticable. + Decreases stage speed. + Decreases transmittablity. + +Bonus + Inflicts large spikes of oxyloss + Introduces Asphyxiating drugs to the system + Causes cardiac arrest on dying victims. + +////////////////////////////////////// +*/ + +/datum/symptom/asphyxiation + + name = "Acute respiratory distress syndrome" + stealth = -2 + resistance = -0 + stage_speed = -1 + transmittable = -2 + level = 7 + severity = 3 + +/datum/symptom/asphyxiation/Activate(datum/disease/advance/A) + ..() + if(prob(SYMPTOM_ACTIVATION_PROB)) + var/mob/living/M = A.affected_mob + switch(A.stage) + if(3, 4) + M << "[pick("Your windpipe feels thin.", "Your lungs feel small.")]" + Asphyxiate_stage_3_4(M, A) + M.emote("gasp") + else + M << "[pick("Your lungs hurt!", "It hurts to breathe!")]" + Asphyxiate(M, A) + M.emote("gasp") + if(M.getOxyLoss() >= 120) + M.visible_message("[M] stops breathing, as if their lungs have totally collapsed!") + Asphyxiate_death(M, A) + return + +/datum/symptom/asphyxiation/proc/Asphyxiate_stage_3_4(mob/living/M, datum/disease/advance/A) + var/get_damage = sqrt(abs(21+A.totalStageSpeed()*0.7))+sqrt(abs(16+A.totalStealth())) + M.adjustOxyLoss(get_damage) + return 1 + +/datum/symptom/asphyxiation/proc/Asphyxiate(mob/living/M, datum/disease/advance/A) + var/get_damage = sqrt(abs(21+A.totalStageSpeed()))+sqrt(abs(16+A.totalStealth()*5)) + M.adjustOxyLoss(get_damage) + M.reagents.add_reagent_list(list("pancuronium" = 2, "sodium_thiopental" = 2)) + return 1 + +/datum/symptom/asphyxiation/proc/Asphyxiate_death(mob/living/M, datum/disease/advance/A) + var/get_damage = sqrt(abs(21+A.totalStageSpeed()*1.5))+sqrt(abs(16+A.totalStealth()*7)) + M.adjustOxyLoss(get_damage) + M.adjustBrainLoss(get_damage/2) + return 1 diff --git a/code/datums/diseases/advance/symptoms/cough.dm b/code/datums/diseases/advance/symptoms/cough.dm index 716ef2cb6f..9675e23ba7 100644 --- a/code/datums/diseases/advance/symptoms/cough.dm +++ b/code/datums/diseases/advance/symptoms/cough.dm @@ -34,7 +34,7 @@ BONUS M << "[pick("You swallow excess mucus.", "You lightly cough.")]" else M.emote("cough") - var/obj/item/I = M.get_active_hand() - if(I && I.w_class == 1) + var/obj/item/I = M.get_active_held_item() + if(I && I.w_class == WEIGHT_CLASS_TINY) M.drop_item() - return \ No newline at end of file + return diff --git a/code/datums/diseases/advance/symptoms/fever.dm b/code/datums/diseases/advance/symptoms/fever.dm index 8f2beacd29..47136845ef 100644 --- a/code/datums/diseases/advance/symptoms/fever.dm +++ b/code/datums/diseases/advance/symptoms/fever.dm @@ -36,6 +36,6 @@ Bonus return /datum/symptom/fever/proc/Heat(mob/living/M, datum/disease/advance/A) - var/get_heat = (sqrt(21+A.totalTransmittable()*2))+(sqrt(20+A.totalStageSpeed()*3)) + var/get_heat = (sqrt(max(21,21+A.totalTransmittable()*2)))+(sqrt(max(21,20+A.totalStageSpeed()*3))) M.bodytemperature = min(M.bodytemperature + (get_heat * A.stage), BODYTEMP_HEAT_DAMAGE_LIMIT - 1) - return 1 \ No newline at end of file + return 1 diff --git a/code/datums/diseases/advance/symptoms/fire.dm b/code/datums/diseases/advance/symptoms/fire.dm index ea80586108..087abdd62a 100644 --- a/code/datums/diseases/advance/symptoms/fire.dm +++ b/code/datums/diseases/advance/symptoms/fire.dm @@ -54,4 +54,69 @@ Bonus var/get_stacks = (sqrt(20+A.totalStageSpeed()*3))-(sqrt(16+A.totalStealth())) M.adjust_fire_stacks(get_stacks) M.adjustFireLoss(get_stacks) + return 1 + +/* +////////////////////////////////////// + +Alkali perspiration + + Hidden. + Lowers resistance. + Decreases stage speed. + Decreases transmittablity. + Fatal Level. + +Bonus + Ignites infected mob. + Explodes mob on contact with water. + +////////////////////////////////////// +*/ + +/datum/symptom/alkali + + name = "Alkali perspiration" + stealth = 2 + resistance = -2 + stage_speed = -2 + transmittable = -2 + level = 7 + severity = 6 + +/datum/symptom/alkali/Activate(datum/disease/advance/A) + ..() + if(prob(SYMPTOM_ACTIVATION_PROB)) + var/mob/living/M = A.affected_mob + switch(A.stage) + if(3) + M << "[pick("Your veins boil.", "You feel hot.", "You smell meat cooking.")]" + if(4) + Alkali_fire_stage_4(M, A) + M.IgniteMob() + M << "Your sweat bursts into flames!" + M.emote("scream") + if(5) + Alkali_fire_stage_5(M, A) + M.IgniteMob() + M << "Your skin erupts into an inferno!" + M.emote("scream") + if(M.fire_stacks < 0) + M.visible_message("[M]'s sweat sizzles and pops on contact with water!") + explosion(M.loc,0,0,2) + Alkali_fire_stage_5(M, A) + return + +/datum/symptom/alkali/proc/Alkali_fire_stage_4(mob/living/M, datum/disease/advance/A) + var/get_stacks = (sqrt(20+A.totalStageSpeed()*5)) + M.adjust_fire_stacks(get_stacks) + M.adjustFireLoss(get_stacks/2) + M.reagents.add_reagent("clf3", 1) + return 1 + +/datum/symptom/alkali/proc/Alkali_fire_stage_5(mob/living/M, datum/disease/advance/A) + var/get_stacks = (sqrt(20+A.totalStageSpeed()*8)) + M.adjust_fire_stacks(get_stacks) + M.adjustFireLoss(get_stacks) + M.reagents.add_reagent_list(list("napalm" = 3, "clf3" = 3)) return 1 \ No newline at end of file diff --git a/code/datums/diseases/advance/symptoms/flesh_eating.dm b/code/datums/diseases/advance/symptoms/flesh_eating.dm index 0d3cfc95ce..835d2f2e3a 100644 --- a/code/datums/diseases/advance/symptoms/flesh_eating.dm +++ b/code/datums/diseases/advance/symptoms/flesh_eating.dm @@ -40,4 +40,49 @@ Bonus /datum/symptom/flesh_eating/proc/Flesheat(mob/living/M, datum/disease/advance/A) var/get_damage = ((sqrt(16-A.totalStealth()))*5) M.adjustBruteLoss(get_damage) + return 1 + +/* +////////////////////////////////////// + +Autophagocytosis (AKA Programmed mass cell death) + + Very noticable. + Lowers resistance. + Fast stage speed. + Decreases transmittablity. + Fatal Level. + +Bonus + Deals brute damage over time. + +////////////////////////////////////// +*/ + +/datum/symptom/flesh_death + + name = "Autophagocytosis Necrosis" + stealth = -2 + resistance = -2 + stage_speed = 1 + transmittable = -2 + level = 7 + severity = 6 + +/datum/symptom/flesh_death/Activate(datum/disease/advance/A) + ..() + if(prob(SYMPTOM_ACTIVATION_PROB)) + var/mob/living/M = A.affected_mob + switch(A.stage) + if(2,3) + M << "[pick("You feel your body break apart.", "Your skin rubs off like dust.")]" + if(4,5) + M << "[pick("You feel your muscles weakening.", "Your skin begins detaching itself.", "You feel sandy.")]" + Flesh_death(M, A) + return + +/datum/symptom/flesh_death/proc/Flesh_death(mob/living/M, datum/disease/advance/A) + var/get_damage = ((sqrt(16-A.totalStealth()))*6) + M.adjustBruteLoss(get_damage) + M.reagents.add_reagent_list(list("heparin" = 5, "lipolicide" = 5)) return 1 \ No newline at end of file diff --git a/code/datums/diseases/advance/symptoms/genetics.dm b/code/datums/diseases/advance/symptoms/genetics.dm index 21ee88e7cc..2d0b613db5 100644 --- a/code/datums/diseases/advance/symptoms/genetics.dm +++ b/code/datums/diseases/advance/symptoms/genetics.dm @@ -29,15 +29,15 @@ Bonus /datum/symptom/genetic_mutation/Activate(datum/disease/advance/A) ..() - if(prob(SYMPTOM_ACTIVATION_PROB * 5)) // 15% chance - var/mob/living/carbon/M = A.affected_mob - if(!M.has_dna()) + if(prob(SYMPTOM_ACTIVATION_PROB * 3)) // 15% chance + var/mob/living/carbon/C = A.affected_mob + if(!C.has_dna()) return switch(A.stage) if(4, 5) - M << "[pick("Your skin feels itchy.", "You feel light headed.")]" - M.dna.remove_mutation_group(possible_mutations) - randmut(M, possible_mutations) + C << "[pick("Your skin feels itchy.", "You feel light headed.")]" + C.dna.remove_mutation_group(possible_mutations) + C.randmut(possible_mutations) return // Archive their DNA before they were infected. diff --git a/code/datums/diseases/advance/symptoms/hallucigen.dm b/code/datums/diseases/advance/symptoms/hallucigen.dm index fa1641717b..40850f871d 100644 --- a/code/datums/diseases/advance/symptoms/hallucigen.dm +++ b/code/datums/diseases/advance/symptoms/hallucigen.dm @@ -36,6 +36,6 @@ Bonus M << "[pick("Something is following you.", "You are being watched.", "You hear a whisper in your ear.", "Thumping footsteps slam toward you from nowhere.")]" else M << "[pick("Oh, your head...", "Your head pounds.", "They're everywhere! Run!", "Something in the shadows...")]" - M.hallucination += 5 + M.hallucination += 25 return diff --git a/code/datums/diseases/advance/symptoms/heal.dm b/code/datums/diseases/advance/symptoms/heal.dm index 830210b816..5dab133a86 100644 --- a/code/datums/diseases/advance/symptoms/heal.dm +++ b/code/datums/diseases/advance/symptoms/heal.dm @@ -26,99 +26,231 @@ Bonus /datum/symptom/heal/Activate(datum/disease/advance/A) ..() - if(prob(SYMPTOM_ACTIVATION_PROB * 10)) - var/mob/living/M = A.affected_mob - switch(A.stage) - if(4, 5) - Heal(M, A) + //100% chance to activate for slow but consistent healing + var/mob/living/M = A.affected_mob + switch(A.stage) + if(4, 5) + Heal(M, A) return /datum/symptom/heal/proc/Heal(mob/living/M, datum/disease/advance/A) - var/get_damage = (sqrt(20+A.totalStageSpeed())*(1+rand())) - M.adjustToxLoss(-get_damage) + var/heal_amt = 0.5 + if(M.toxloss > 0 && prob(20)) + PoolOrNew(/obj/effect/overlay/temp/heal, list(get_turf(M), "#66FF99")) + M.adjustToxLoss(-heal_amt) return 1 /* ////////////////////////////////////// -Metabolism +Apoptosis - Little bit hidden. Lowers resistance. Decreases stage speed. - Decreases transmittablity temrendously. - High Level. + Decreases transmittablity. Bonus - Cures all diseases (except itself) and creates anti-bodies for them until the symptom dies. + Heals toxins in the affected mob's blood stream faster. ////////////////////////////////////// */ -/datum/symptom/heal/metabolism +/datum/symptom/heal/plus - name = "Anti-Bodies Metabolism" - stealth = -1 - resistance = -1 - stage_speed = -1 - transmittable = -4 - level = 3 - var/list/cured_diseases = list() + name = "Apoptoxin filter" + stealth = 0 + resistance = -2 + stage_speed = -2 + transmittable = -2 + level = 8 -/datum/symptom/heal/metabolism/Heal(mob/living/M, datum/disease/advance/A) - var/cured = 0 - for(var/datum/disease/D in M.viruses) - if(D != A) - cured = 1 - cured_diseases += D.GetDiseaseID() - D.cure() - if(cured) - M << "You feel much better." - -/datum/symptom/heal/metabolism/End(datum/disease/advance/A) - // Remove all the diseases we cured. - var/mob/living/M = A.affected_mob - if(istype(M)) - if(cured_diseases.len) - for(var/res in M.resistances) - if(res in cured_diseases) - M.resistances -= res - M << "You feel weaker." +/datum/symptom/heal/plus/Heal(mob/living/M, datum/disease/advance/A) + var/heal_amt = 1 + if(M.toxloss > 0 && prob(20)) + PoolOrNew(/obj/effect/overlay/temp/heal, list(get_turf(M), "#00FF00")) + M.adjustToxLoss(-heal_amt) + return 1 /* ////////////////////////////////////// -Longevity +Regeneration - Medium hidden boost. - Large resistance boost. - Large stage speed boost. - Large transmittablity boost. - High Level. + Little bit hidden. + Lowers resistance tremendously. + Decreases stage speed tremendously. + Decreases transmittablity temrendously. + Fatal Level. Bonus - After a certain amount of time the symptom will cure itself. + Heals brute damage slowly over time. ////////////////////////////////////// */ -/datum/symptom/heal/longevity +/datum/symptom/heal/brute - name = "Longevity" - stealth = 3 - resistance = 4 - stage_speed = 4 - transmittable = 4 - level = 3 - var/longevity = 30 + name = "Regeneration" + stealth = 1 + resistance = -4 + stage_speed = -4 + transmittable = -4 + level = 6 -/datum/symptom/heal/longevity/Heal(mob/living/M, datum/disease/advance/A) - longevity -= 1 - if(!longevity) - A.cure() +/datum/symptom/heal/brute/Heal(mob/living/carbon/M, datum/disease/advance/A) + var/heal_amt = 1 + + var/list/parts = M.get_damaged_bodyparts(1,1) //1,1 because it needs inputs. + + if(!parts.len) + return + + for(var/obj/item/bodypart/L in parts) + if(L.heal_damage(heal_amt/parts.len, 0)) + M.update_damage_overlays() + + if(prob(20)) + PoolOrNew(/obj/effect/overlay/temp/heal, list(get_turf(M), "#FF3333")) + + return 1 + + +/* +////////////////////////////////////// + +Flesh Mending + + No resistance change. + Decreases stage speed. + Decreases transmittablity. + Fatal Level. + +Bonus + Heals brute damage over time. Turns cloneloss into burn damage. + +////////////////////////////////////// +*/ + +/datum/symptom/heal/brute/plus + + name = "Flesh Mending" + stealth = 0 + resistance = 0 + stage_speed = -2 + transmittable = -2 + level = 8 + +/datum/symptom/heal/brute/plus/Heal(mob/living/carbon/M, datum/disease/advance/A) + var/heal_amt = 2 + + var/list/parts = M.get_damaged_bodyparts(1,1) //1,1 because it needs inputs. + + if(M.getCloneLoss() > 0) + M.adjustCloneLoss(-1) + M.take_bodypart_damage(0, 1) //Deals BURN damage, which is not cured by this symptom + PoolOrNew(/obj/effect/overlay/temp/heal, list(get_turf(M), "#33FFCC")) + + if(!parts.len) + return + + for(var/obj/item/bodypart/L in parts) + if(L.heal_damage(heal_amt/parts.len, 0)) + M.update_damage_overlays() + + if(prob(20)) + PoolOrNew(/obj/effect/overlay/temp/heal, list(get_turf(M), "#CC1100")) + + return 1 + +/* +////////////////////////////////////// + +Tissue Regrowth + + Little bit hidden. + Lowers resistance tremendously. + Decreases stage speed tremendously. + Decreases transmittablity temrendously. + Fatal Level. + +Bonus + Heals burn damage slowly over time. + +////////////////////////////////////// +*/ + +/datum/symptom/heal/burn + + name = "Tissue Regrowth" + stealth = 1 + resistance = -4 + stage_speed = -4 + transmittable = -4 + level = 6 + +/datum/symptom/heal/burn/Heal(mob/living/carbon/M, datum/disease/advance/A) + var/heal_amt = 1 + + var/list/parts = M.get_damaged_bodyparts(1,1) //1,1 because it needs inputs. + + if(!parts.len) + return + + for(var/obj/item/bodypart/L in parts) + if(L.heal_damage(0, heal_amt/parts.len)) + M.update_damage_overlays() + + if(prob(20)) + PoolOrNew(/obj/effect/overlay/temp/heal, list(get_turf(M), "#FF9933")) + return 1 + + +/* +////////////////////////////////////// + +Heat Resistance //Needs a better name + + No resistance change. + Decreases stage speed. + Decreases transmittablity. + Fatal Level. + +Bonus + Heals burn damage over time, and helps stabilize body temperature. + +////////////////////////////////////// +*/ + +/datum/symptom/heal/burn/plus + + name = "Heat Resistance" + stealth = 0 + resistance = 0 + stage_speed = -2 + transmittable = -2 + level = 8 + +/datum/symptom/heal/burn/plus/Heal(mob/living/carbon/M, datum/disease/advance/A) + var/heal_amt = 2 + + var/list/parts = M.get_damaged_bodyparts(1,1) //1,1 because it needs inputs. + + if(M.bodytemperature > 310) + M.bodytemperature = max(310, M.bodytemperature - (10 * heal_amt * TEMPERATURE_DAMAGE_COEFFICIENT)) + else if(M.bodytemperature < 311) + M.bodytemperature = min(310, M.bodytemperature + (10 * heal_amt * TEMPERATURE_DAMAGE_COEFFICIENT)) + + if(!parts.len) + return + + for(var/obj/item/bodypart/L in parts) + if(L.heal_damage(0, heal_amt/parts.len)) + M.update_damage_overlays() + + if(prob(20)) + PoolOrNew(/obj/effect/overlay/temp/heal, list(get_turf(M), "#CC6600")) + return 1 -/datum/symptom/heal/longevity/Start(datum/disease/advance/A) - longevity = rand(initial(longevity) - 5, initial(longevity) + 5) /* ////////////////////////////////////// @@ -147,12 +279,10 @@ Bonus level = 5 /datum/symptom/heal/dna/Heal(mob/living/carbon/M, datum/disease/advance/A) - var/stage_speed = max( 20 + A.totalStageSpeed(), 0) - var/stealth_amount = max( 16 + A.totalStealth(), 0) - var/amt_healed = (sqrt(stage_speed*(3+rand())))-(sqrt(stealth_amount*rand())) + var/amt_healed = 1 M.adjustBrainLoss(-amt_healed) //Non-power mutations, excluding race, so the virus does not force monkey -> human transformations. var/list/unclean_mutations = (not_good_mutations|bad_mutations) - mutations_list[RACEMUT] M.dna.remove_mutation_group(unclean_mutations) - M.radiation = max(M.radiation - 3, 0) + M.radiation = max(M.radiation - (2 * amt_healed), 0) return 1 diff --git a/code/datums/diseases/advance/symptoms/oxygen.dm b/code/datums/diseases/advance/symptoms/oxygen.dm index 785b1cd8d7..ce17524130 100644 --- a/code/datums/diseases/advance/symptoms/oxygen.dm +++ b/code/datums/diseases/advance/symptoms/oxygen.dm @@ -26,13 +26,13 @@ Bonus /datum/symptom/oxygen/Activate(datum/disease/advance/A) ..() - if(prob(SYMPTOM_ACTIVATION_PROB * 5)) - var/mob/living/M = A.affected_mob - switch(A.stage) - if(4, 5) - if (M.reagents.get_reagent_amount("salbutamol") < 20) - M.reagents.add_reagent("salbutamol", 20) - else - if(prob(SYMPTOM_ACTIVATION_PROB * 5)) - M << "[pick("Your lungs feel great.", "You realize you haven't been breathing.", "You don't feel the need to breathe.")]" + var/mob/living/M = A.affected_mob + switch(A.stage) + if(4, 5) + M.adjustOxyLoss(-3, 0) + if(M.losebreath >= 4) + M.losebreath -= 2 + else + if(prob(SYMPTOM_ACTIVATION_PROB * 3)) + M << "[pick("Your lungs feel great.", "You realize you haven't been breathing.", "You don't feel the need to breathe.")]" return diff --git a/code/datums/diseases/advance/symptoms/sensory.dm b/code/datums/diseases/advance/symptoms/sensory.dm index 46fc14c58e..7536b11ca8 100644 --- a/code/datums/diseases/advance/symptoms/sensory.dm +++ b/code/datums/diseases/advance/symptoms/sensory.dm @@ -26,24 +26,30 @@ Bonus /datum/symptom/sensory_restoration/Activate(var/datum/disease/advance/A) ..() - if(prob(SYMPTOM_ACTIVATION_PROB * 3)) - var/mob/living/M = A.affected_mob - switch(A.stage) - if(2) - if(M.reagents.get_reagent_amount("inacusiate")<10) - M.reagents.add_reagent("inacusiate", 10) - M << "Your hearing feels clearer and crisp." - if(3) - if(M.reagents.get_reagent_amount("antihol") < 10 && M.reagents.get_reagent_amount("inacusiate") < 10 ) - M.reagents.add_reagent_list(list("antihol"=10, "inacusiate"=10)) - M << "You feel sober." - if(4) - if(M.reagents.get_reagent_amount("antihol") < 10 && M.reagents.get_reagent_amount("inacusiate") < 10 && M.reagents.get_reagent_amount("synaphydramine") < 10) - M.reagents.add_reagent_list(list("antihol"=10, "inacusiate"=10, "synaphydramine"=5)) - M << "You feel focused." - if(5) - if(M.reagents.get_reagent_amount("antihol") < 10 && M.reagents.get_reagent_amount("inacusiate") < 10 && M.reagents.get_reagent_amount("synaphydramine") < 10 && M.reagents.get_reagent_amount("mannitol") < 10) - M.reagents.add_reagent_list(list("mannitol"=10, "antihol"=10, "inacusiate"=10, "synaphydramine"=10)) + var/mob/living/M = A.affected_mob + if(A.stage >= 2) + M.setEarDamage(0,0) + + if(A.stage >= 3) + M.dizziness = 0 + M.drowsyness = 0 + M.slurring = 0 + M.confused = 0 + M.reagents.remove_all_type(/datum/reagent/consumable/ethanol, 3) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + H.drunkenness = max(H.drunkenness - 10, 0) + + if(A.stage >= 4) + M.drowsyness = max(M.drowsyness-5, 0) + if(M.reagents.has_reagent("mindbreaker")) + M.reagents.remove_reagent("mindbreaker", 5) + if(M.reagents.has_reagent("histamine")) + M.reagents.remove_reagent("histamine", 5) + M.hallucination = max(0, M.hallucination - 10) + + if(A.stage >= 5) + M.adjustBrainLoss(-3) return /* @@ -72,30 +78,54 @@ Bonus transmittable = -4 level = 6 severity = 5 + var/sleepy = 0 + var/sleepy_ticks = 0 /datum/symptom/sensory_destruction/Activate(var/datum/disease/advance/A) ..() + var/mob/living/M = A.affected_mob if(prob(SYMPTOM_ACTIVATION_PROB)) - var/mob/living/M = A.affected_mob switch(A.stage) if(1) M << "You can't feel anything." if(2) M << "You feel absolutely hammered." if(prob(10)) - M.reagents.add_reagent("morphine",rand(5,7)) + sleepy_ticks += rand(10,14) if(3) M.reagents.add_reagent("ethanol",rand(5,7)) M << "You try to focus on not dying." if(prob(15)) - M.reagents.add_reagent("morphine",rand(5,7)) + sleepy_ticks += rand(10,14) if(4) - M.reagents.add_reagent_list(list("ethanol" = rand(7,15), "mindbreaker" = rand(5,10))) + M.reagents.add_reagent("ethanol",rand(6,10)) M << "u can count 2 potato!" if(prob(20)) - M.reagents.add_reagent("morphine",rand(5,7)) + sleepy_ticks += rand(10,14) if(5) - M.reagents.add_reagent_list(list("impedrezene" = rand(5,15), "ethanol" = rand(7,20), "mindbreaker" = rand(5,15))) + M.reagents.add_reagent("ethanol",rand(7,13)) if(prob(25)) - M.reagents.add_reagent("morphine",rand(5,7)) + sleepy_ticks += rand(10,14) + + if(sleepy_ticks) + if(A.stage>=4) + M.hallucination = min(M.hallucination + 10, 50) + if(A.stage>=5) + if(prob(80)) + M.adjustBrainLoss(1) + if(prob(50)) + M.drowsyness = max(M.drowsyness, 3) + sleepy++ + sleepy_ticks-- + else + sleepy = 0 + + switch(sleepy) //Works like morphine + if(11) + M << "You start to feel tired..." + if(12 to 24) + M.drowsyness += 1 + if(24 to INFINITY) + M.Sleeping(2, 0) + return diff --git a/code/datums/diseases/advance/symptoms/shedding.dm b/code/datums/diseases/advance/symptoms/shedding.dm index 76ae6dc0f3..70e2c4597f 100644 --- a/code/datums/diseases/advance/symptoms/shedding.dm +++ b/code/datums/diseases/advance/symptoms/shedding.dm @@ -29,7 +29,7 @@ BONUS if(prob(SYMPTOM_ACTIVATION_PROB)) var/mob/living/M = A.affected_mob M << "[pick("Your scalp itches.", "Your skin feels flakey.")]" - if(istype(M, /mob/living/carbon/human)) + if(ishuman(M)) var/mob/living/carbon/human/H = M switch(A.stage) if(3, 4) diff --git a/code/datums/diseases/advance/symptoms/skin.dm b/code/datums/diseases/advance/symptoms/skin.dm index 09ffbdf7e8..09b0f0a6de 100644 --- a/code/datums/diseases/advance/symptoms/skin.dm +++ b/code/datums/diseases/advance/symptoms/skin.dm @@ -28,7 +28,7 @@ BONUS ..() if(prob(SYMPTOM_ACTIVATION_PROB)) var/mob/living/M = A.affected_mob - if(istype(M, /mob/living/carbon/human)) + if(ishuman(M)) var/mob/living/carbon/human/H = M if(H.skin_tone == "albino") return @@ -72,7 +72,7 @@ BONUS ..() if(prob(SYMPTOM_ACTIVATION_PROB)) var/mob/living/M = A.affected_mob - if(istype(M, /mob/living/carbon/human)) + if(ishuman(M)) var/mob/living/carbon/human/H = M if(H.skin_tone == "african2") return diff --git a/code/datums/diseases/advance/symptoms/symptoms.dm b/code/datums/diseases/advance/symptoms/symptoms.dm index 1246b68fd0..4b9de79c7a 100644 --- a/code/datums/diseases/advance/symptoms/symptoms.dm +++ b/code/datums/diseases/advance/symptoms/symptoms.dm @@ -3,7 +3,7 @@ var/list/list_symptoms = subtypesof(/datum/symptom) var/list/dictionary_symptoms = list() -var/global/const/SYMPTOM_ACTIVATION_PROB = 3 +var/global/const/SYMPTOM_ACTIVATION_PROB = 5 /datum/symptom // Buffs/Debuffs the symptom has to the overall engineered disease. diff --git a/code/datums/diseases/advance/symptoms/viral.dm b/code/datums/diseases/advance/symptoms/viral.dm index fafac33b2c..7c409f00d1 100644 --- a/code/datums/diseases/advance/symptoms/viral.dm +++ b/code/datums/diseases/advance/symptoms/viral.dm @@ -62,4 +62,46 @@ BONUS if(1) M << "You feel better, but no different from before." if(5) - M << "You feel off, but nothing interesting happens." \ No newline at end of file + M << "You feel off, but nothing interesting happens." + +/* +////////////////////////////////////// + +Viral aggressive metabolism (ex-Longevity) + + No stealth. + Small resistance boost. + Reduced stage speed. + Large transmittablity boost. + High Level. + +Bonus + The virus starts at stage 5 and decrease over time until it self cures. + Stages still increase naturally with stage speed. + +////////////////////////////////////// +*/ + +/datum/symptom/viralreverse + + name = "Viral aggressive metabolism" + stealth = 0 + resistance = 1 + stage_speed = -2 + transmittable = 3 + level = 3 + +/datum/symptom/viralreverse/Activate(datum/disease/advance/A) + ..() + if(prob(SYMPTOM_ACTIVATION_PROB)) + var/mob/living/M = A.affected_mob + Heal(M, A) + return + +/datum/symptom/viralreverse/proc/Heal(mob/living/M, datum/disease/advance/A) + A.stage -= 1 + if(A.stage < 2) + A.cure() + +/datum/symptom/viralreverse/Start(datum/disease/advance/A) + A.stage = 5 diff --git a/code/datums/diseases/advance/symptoms/vision.dm b/code/datums/diseases/advance/symptoms/vision.dm index 9d348506dc..d2f1dab5c7 100644 --- a/code/datums/diseases/advance/symptoms/vision.dm +++ b/code/datums/diseases/advance/symptoms/vision.dm @@ -75,13 +75,27 @@ Bonus /datum/symptom/visionaid/Activate(datum/disease/advance/A) ..() - if(prob(SYMPTOM_ACTIVATION_PROB * 5)) - var/mob/living/M = A.affected_mob - switch(A.stage) - if(4, 5) - if (M.reagents.get_reagent_amount("oculine") < 20) - M.reagents.add_reagent("oculine", 20) - else - if(prob(SYMPTOM_ACTIVATION_PROB * 5)) - M << "[pick("Your eyes feel great.", "You are now blinking manually.", "You don't feel the need to blink.")]" + var/mob/living/M = A.affected_mob + switch(A.stage) + if(4, 5) //basically oculine + if(M.disabilities & BLIND) + if(prob(20)) + M << "Your vision slowly returns..." + M.cure_blind() + M.cure_nearsighted() + M.blur_eyes(35) + + else if(M.disabilities & NEARSIGHT) + M << "The blackness in your peripheral vision fades." + M.cure_nearsighted() + M.blur_eyes(10) + + else if(M.eye_blind || M.eye_blurry) + M.set_blindness(0) + M.set_blurriness(0) + else if(M.eye_damage > 0) + M.adjust_eye_damage(-1) + else + if(prob(SYMPTOM_ACTIVATION_PROB * 3)) + M << "[pick("Your eyes feel great.", "You are now blinking manually.", "You don't feel the need to blink.")]" return diff --git a/code/datums/diseases/advance/symptoms/youth.dm b/code/datums/diseases/advance/symptoms/youth.dm index 0a3d110b03..731350de1f 100644 --- a/code/datums/diseases/advance/symptoms/youth.dm +++ b/code/datums/diseases/advance/symptoms/youth.dm @@ -28,7 +28,7 @@ BONUS ..() if(prob(SYMPTOM_ACTIVATION_PROB * 2)) var/mob/living/M = A.affected_mob - if(istype(M, /mob/living/carbon/human)) + if(ishuman(M)) var/mob/living/carbon/human/H = M switch(A.stage) if(1) diff --git a/code/datums/diseases/dna_spread.dm b/code/datums/diseases/dna_spread.dm index 26d0e722da..e3836e7442 100644 --- a/code/datums/diseases/dna_spread.dm +++ b/code/datums/diseases/dna_spread.dm @@ -18,7 +18,7 @@ ..() if(!affected_mob.dna) cure() - if(NOTRANSSTING in affected_mob.dna.species.specflags) //Only species that can be spread by transformation sting can be spread by the retrovirus + if(NOTRANSSTING in affected_mob.dna.species.species_traits) //Only species that can be spread by transformation sting can be spread by the retrovirus cure() if(!strain_data["dna"]) @@ -38,7 +38,7 @@ if(prob(1)) affected_mob << "Your muscles ache." if(prob(20)) - affected_mob.take_organ_damage(1) + affected_mob.take_bodypart_damage(1) if(prob(1)) affected_mob << "Your stomach hurts." if(prob(20)) diff --git a/code/datums/diseases/flu.dm b/code/datums/diseases/flu.dm index 67cc9ff8ab..fa157ff81e 100644 --- a/code/datums/diseases/flu.dm +++ b/code/datums/diseases/flu.dm @@ -26,7 +26,7 @@ if(prob(1)) affected_mob << "Your muscles ache." if(prob(20)) - affected_mob.take_organ_damage(1) + affected_mob.take_bodypart_damage(1) if(prob(1)) affected_mob << "Your stomach hurts." if(prob(20)) @@ -45,7 +45,7 @@ if(prob(1)) affected_mob << "Your muscles ache." if(prob(20)) - affected_mob.take_organ_damage(1) + affected_mob.take_bodypart_damage(1) if(prob(1)) affected_mob << "Your stomach hurts." if(prob(20)) diff --git a/code/datums/diseases/fluspanish.dm b/code/datums/diseases/fluspanish.dm index 49137ce2d6..4c09ec188f 100644 --- a/code/datums/diseases/fluspanish.dm +++ b/code/datums/diseases/fluspanish.dm @@ -22,7 +22,7 @@ affected_mob.emote("cough") if(prob(1)) affected_mob << "You're burning in your own skin!" - affected_mob.take_organ_damage(0,5) + affected_mob.take_bodypart_damage(0,5) if(3) affected_mob.bodytemperature += 20 @@ -32,5 +32,5 @@ affected_mob.emote("cough") if(prob(5)) affected_mob << "You're burning in your own skin!" - affected_mob.take_organ_damage(0,5) + affected_mob.take_bodypart_damage(0,5) return diff --git a/code/datums/diseases/magnitis.dm b/code/datums/diseases/magnitis.dm index f24ae10c34..0cec97af40 100644 --- a/code/datums/diseases/magnitis.dm +++ b/code/datums/diseases/magnitis.dm @@ -22,7 +22,8 @@ if(!M.anchored && (M.flags & CONDUCT)) step_towards(M,affected_mob) for(var/mob/living/silicon/S in orange(2,affected_mob)) - if(istype(S, /mob/living/silicon/ai)) continue + if(isAI(S)) + continue step_towards(S,affected_mob) if(3) if(prob(2)) @@ -37,7 +38,8 @@ for(i=0,i[parrot] is violently driven out of [affected_mob]!
    ", "[parrot] bursts out of your chest!") + ..() \ No newline at end of file diff --git a/code/datums/diseases/rhumba_beat.dm b/code/datums/diseases/rhumba_beat.dm index 3a8600c61a..52be54ca0f 100644 --- a/code/datums/diseases/rhumba_beat.dm +++ b/code/datums/diseases/rhumba_beat.dm @@ -12,21 +12,17 @@ /datum/disease/rhumba_beat/stage_act() ..() + if(affected_mob.ckey == "rosham") + src.cure() + return switch(stage) - if(1) - if(affected_mob.ckey == "rosham") - src.cure() if(2) - if(affected_mob.ckey == "rosham") - src.cure() if(prob(45)) affected_mob.adjustToxLoss(5) affected_mob.updatehealth() if(prob(1)) affected_mob << "You feel strange..." if(3) - if(affected_mob.ckey == "rosham") - src.cure() if(prob(5)) affected_mob << "You feel the urge to dance..." else if(prob(5)) @@ -34,8 +30,6 @@ else if(prob(10)) affected_mob << "You feel the need to chick chicky boom..." if(4) - if(affected_mob.ckey == "rosham") - src.cure() if(prob(10)) affected_mob.emote("gasp") affected_mob << "You feel a burning beat inside..." @@ -43,10 +37,8 @@ affected_mob.adjustToxLoss(5) affected_mob.updatehealth() if(5) - if(affected_mob.ckey == "rosham") - src.cure() affected_mob << "Your body is unable to contain the Rhumba Beat..." if(prob(50)) affected_mob.gib() else - return \ No newline at end of file + return diff --git a/code/datums/diseases/transformation.dm b/code/datums/diseases/transformation.dm index 7bad7a0128..5b3d18cd37 100644 --- a/code/datums/diseases/transformation.dm +++ b/code/datums/diseases/transformation.dm @@ -45,16 +45,13 @@ if(affected_mob.notransform) return affected_mob.notransform = 1 - for(var/obj/item/W in affected_mob) - if(istype(W, /obj/item/weapon/implant)) - qdel(W) - continue - W.layer = initial(W.layer) - W.loc = affected_mob.loc - W.dropped(affected_mob) + for(var/obj/item/W in affected_mob.get_equipped_items()) + affected_mob.unEquip(W) + for(var/obj/item/I in affected_mob.held_items) + affected_mob.unEquip(I) var/mob/living/new_mob = new new_form(affected_mob.loc) if(istype(new_mob)) - new_mob.a_intent = "harm" + new_mob.a_intent = INTENT_HARM if(affected_mob.mind) affected_mob.mind.transfer_to(new_mob) else @@ -239,4 +236,4 @@ stage3 = list("Your appendages are melting away.", "Your limbs begin to lose their shape.") stage4 = list("You're ravenous.") stage5 = list("You have become a morph.") - new_form = /mob/living/simple_animal/hostile/morph \ No newline at end of file + new_form = /mob/living/simple_animal/hostile/morph diff --git a/code/datums/diseases/wizarditis.dm b/code/datums/diseases/wizarditis.dm index 8df374e2d0..e336d36a48 100644 --- a/code/datums/diseases/wizarditis.dm +++ b/code/datums/diseases/wizarditis.dm @@ -55,7 +55,7 @@ STI KALY - blind /datum/disease/wizarditis/proc/spawn_wizard_clothes(chance = 0) - if(istype(affected_mob, /mob/living/carbon/human)) + if(ishuman(affected_mob)) var/mob/living/carbon/human/H = affected_mob if(prob(chance)) if(!istype(H.head, /obj/item/clothing/head/wizard)) @@ -70,20 +70,17 @@ STI KALY - blind H.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe(H), slot_wear_suit) return if(prob(chance)) - if(!istype(H.shoes, /obj/item/clothing/shoes/sandal)) + if(!istype(H.shoes, /obj/item/clothing/shoes/sandal/magic)) if(!H.unEquip(H.shoes)) qdel(H.shoes) - H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(H), slot_shoes) + H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal/magic(H), slot_shoes) return else var/mob/living/carbon/H = affected_mob if(prob(chance)) - if(!istype(H.r_hand, /obj/item/weapon/staff)) - H.drop_r_hand() - H.put_in_r_hand( new /obj/item/weapon/staff(H) ) - return - return - + var/obj/item/weapon/staff/S = new(H) + if(!H.put_in_hands(S)) + qdel(S) /datum/disease/wizarditis/proc/teleport() diff --git a/code/datums/dna.dm b/code/datums/dna.dm index 6c1a106c82..e9b21c28ae 100644 --- a/code/datums/dna.dm +++ b/code/datums/dna.dm @@ -1,3 +1,5 @@ + +/////////////////////////// DNA DATUM /datum/dna var/unique_enzymes var/struc_enzymes @@ -9,13 +11,15 @@ var/list/mutations = list() //All mutations are from now on here var/list/temporary_mutations = list() //Timers for temporary mutations var/list/previous = list() //For temporary name/ui/ue/blood_type modifications - var/mob/living/carbon/holder + var/mob/living/holder -/datum/dna/New(mob/living/carbon/new_holder) +/datum/dna/New(mob/living/new_holder) if(new_holder) holder = new_holder /datum/dna/proc/transfer_identity(mob/living/carbon/destination, transfer_SE = 0) + if(!istype(destination)) + return destination.dna.unique_enzymes = unique_enzymes destination.dna.uni_identity = uni_identity destination.dna.blood_type = blood_type @@ -164,12 +168,36 @@ features = random_features() +/datum/dna/stored //subtype used by brain mob's stored_dna + +/datum/dna/stored/add_mutation(mutation_name) //no mutation changes on stored dna. + return + +/datum/dna/stored/remove_mutation(mutation_name) + return + +/datum/dna/stored/check_mutation(mutation_name) + return + +/datum/dna/stored/remove_all_mutations() + return + +/datum/dna/stored/remove_mutation_group(list/group) + return /////////////////////////// DNA MOB-PROCS ////////////////////// /mob/proc/set_species(datum/species/mrace, icon_update = 1) return +/mob/living/brain/set_species(datum/species/mrace, icon_update = 1) + if(mrace) + if(ispath(mrace)) + stored_dna.species = new mrace() + else + stored_dna.species = mrace //not calling any species update procs since we're a brain, not a monkey/human + + /mob/living/carbon/set_species(datum/species/mrace, icon_update = 1) if(mrace && has_dna()) dna.species.on_species_loss(src) @@ -238,7 +266,7 @@ return gender = (deconstruct_block(getblock(dna.uni_identity, DNA_GENDER_BLOCK), 2)-1) ? FEMALE : MALE -mob/living/carbon/human/updateappearance(icon_update=1, mutcolor_update=0, mutations_overlay_update=0) +/mob/living/carbon/human/updateappearance(icon_update=1, mutcolor_update=0, mutations_overlay_update=0) ..() var/structure = dna.uni_identity hair_color = sanitize_hexcolor(getblock(structure, DNA_HAIR_COLOR_BLOCK)) @@ -259,12 +287,12 @@ mob/living/carbon/human/updateappearance(icon_update=1, mutcolor_update=0, mutat /mob/proc/domutcheck() return -/mob/living/carbon/domutcheck() +/mob/living/carbon/domutcheck(force_powers=0) //Set force_powers to 1 to bypass the power chance if(!has_dna()) return for(var/datum/mutation/human/A in good_mutations | bad_mutations | not_good_mutations) - if(ismob(A.check_block(src))) + if(ismob(A.check_block(src, force_powers))) return //we got monkeyized/humanized, this mob will be deleted, no need to continue. update_mutations_overlay() @@ -288,41 +316,46 @@ mob/living/carbon/human/updateappearance(icon_update=1, mutcolor_update=0, mutat return 0 return getleftblocks(istring, blocknumber, blocksize) + replacement + getrightblocks(istring, blocknumber, blocksize) -/proc/randmut(mob/living/carbon/M, list/candidates, difficulty = 2) - if(!M.has_dna()) +/mob/living/carbon/proc/randmut(list/candidates, difficulty = 2) + if(!has_dna()) return var/datum/mutation/human/num = pick(candidates) - . = num.force_give(M) - return + . = num.force_give(src) -/proc/randmutb(mob/living/carbon/M) - if(!M.has_dna()) +/mob/living/carbon/proc/randmutb() + if(!has_dna()) return var/datum/mutation/human/HM = pick((bad_mutations | not_good_mutations) - mutations_list[RACEMUT]) - . = HM.force_give(M) + . = HM.force_give(src) -/proc/randmutg(mob/living/carbon/M) - if(!M.has_dna()) +/mob/living/carbon/proc/randmutg() + if(!has_dna()) return var/datum/mutation/human/HM = pick(good_mutations) - . = HM.force_give(M) + . = HM.force_give(src) -/proc/randmuti(mob/living/carbon/M) - if(!M.has_dna()) +/mob/living/carbon/proc/randmutvg() + if(!has_dna()) + return + var/datum/mutation/human/HM = pick((good_mutations) - mutations_list[HULK] - mutations_list[DWARFISM]) + . = HM.force_give(src) + +/mob/living/carbon/proc/randmuti() + if(!has_dna()) return var/num = rand(1, DNA_UNI_IDENTITY_BLOCKS) - var/newdna = setblock(M.dna.uni_identity, num, random_string(DNA_BLOCK_SIZE, hex_characters)) - M.dna.uni_identity = newdna - return + var/newdna = setblock(dna.uni_identity, num, random_string(DNA_BLOCK_SIZE, hex_characters)) + dna.uni_identity = newdna + updateappearance(mutations_overlay_update=1) -/proc/clean_dna(mob/living/carbon/M) - if(!M.has_dna()) +/mob/living/carbon/proc/clean_dna() + if(!has_dna()) return - M.dna.remove_all_mutations() + dna.remove_all_mutations() -/proc/clean_randmut(mob/living/carbon/M, list/candidates, difficulty = 2) - clean_dna(M) - randmut(M, candidates, difficulty) +/mob/living/carbon/proc/clean_randmut(list/candidates, difficulty = 2) + clean_dna() + randmut(candidates, difficulty) /proc/scramble_dna(mob/living/carbon/M, ui=FALSE, se=FALSE, probability) if(!M.has_dna()) @@ -356,4 +389,4 @@ mob/living/carbon/human/updateappearance(icon_update=1, mutcolor_update=0, mutat value = values return value -/////////////////////////// DNA HELPER-PROCS \ No newline at end of file +/////////////////////////// DNA HELPER-PROCS diff --git a/code/datums/dog_fashion.dm b/code/datums/dog_fashion.dm index 9446d31dc5..75c8379524 100644 --- a/code/datums/dog_fashion.dm +++ b/code/datums/dog_fashion.dm @@ -9,7 +9,9 @@ // This isn't applied to the dog, but stores the icon_state of the // sprite that the associated item uses var/icon_file - var/icon_state + var/obj_icon_state + var/obj_alpha + var/obj_color /datum/dog_fashion/New(mob/M) name = replacetext(name, "REAL_NAME", M.real_name) @@ -30,8 +32,11 @@ D.speak_emote = speak_emote /datum/dog_fashion/proc/get_image(var/dir) - if(icon_file && icon_state) - return image(icon_file, icon_state = icon_state, dir = dir) + if(icon_file && obj_icon_state) + var/image/corgI = image(icon_file, icon_state = obj_icon_state, dir = dir) + corgI.alpha = obj_alpha + corgI.color = obj_color + return corgI /datum/dog_fashion/head @@ -40,8 +45,6 @@ /datum/dog_fashion/back icon_file = 'icons/mob/corgi_back.dmi' -/datum/dog_fashion/head - /datum/dog_fashion/head/helmet name = "Sergeant REAL_NAME" desc = "The ever-loyal, the ever-vigilant." @@ -129,7 +132,7 @@ emote_see = list("stumbles around.", "shivers.") emote_hear = list("howls!","groans.") desc = "Spooky!" - icon_state = "sheet" + obj_icon_state = "sheet" /datum/dog_fashion/head/santa name = "Santa's Corgi Helper" diff --git a/code/datums/gas_overrides.dm b/code/datums/gas_overrides.dm new file mode 100644 index 0000000000..c58d5ad176 --- /dev/null +++ b/code/datums/gas_overrides.dm @@ -0,0 +1,5 @@ +/datum/proc/freon_gas_act() + return 0 + +/datum/proc/water_vapor_gas_act() // We get it + return 0 // You vape \ No newline at end of file diff --git a/code/datums/helper_datums/getrev.dm b/code/datums/helper_datums/getrev.dm index 3d01ae2dce..6eade8bc14 100644 --- a/code/datums/helper_datums/getrev.dm +++ b/code/datums/helper_datums/getrev.dm @@ -8,22 +8,24 @@ var/global/datum/getrev/revdata = new() /datum/getrev/New() var/head_file = return_file_text(".git/logs/HEAD") - var/regex/head_log = new("(\\w{40}) (\\w{40}).+> (\\d{10}).+\n\\Z") - head_log.Find(head_file) - parentcommit = head_log.group[1] - commit = head_log.group[2] - var/unix_time = text2num(head_log.group[3]) if(SERVERTOOLS && fexists("..\\prtestjob.lk")) testmerge = file2list("..\\prtestjob.lk") - date = unix2date(unix_time) + var/testlen = max(testmerge.len - 1, 0) + var/regex/head_log = new("(\\w{40}) .+> (\\d{10}).+(?=(\n.*(\\w{40}).*){[testlen]}\n*\\Z)") + head_log.Find(head_file) + parentcommit = head_log.group[1] + date = unix2date(text2num(head_log.group[2])) + commit = head_log.group[4] world.log << "Running /tg/ revision:" world.log << "[date]" - world.log << commit if(testmerge.len) + world.log << commit for(var/line in testmerge) if(line) world.log << "Test merge active of PR #[line]" world.log << "Based off master commit [parentcommit]" + else + world.log << parentcommit world.log << "Current map - [MAP_NAME]" //can't think of anywhere better to put it /client/verb/showrevinfo() @@ -31,7 +33,7 @@ var/global/datum/getrev/revdata = new() set name = "Show Server Revision" set desc = "Check the current server code revision" - if(revdata.commit) + if(revdata.parentcommit) src << "Server revision compiled on: [revdata.date]" if(revdata.testmerge.len) for(var/line in revdata.testmerge) @@ -39,7 +41,7 @@ var/global/datum/getrev/revdata = new() src << "Test merge active of PR #[line]" src << "Based off master commit [revdata.parentcommit]" else - src << "[revdata.commit]" + src << "[revdata.parentcommit]" else src << "Revision unknown" src << "Current Infomational Settings:" diff --git a/code/datums/helper_datums/map_template.dm b/code/datums/helper_datums/map_template.dm index 967d7bea64..134a93b6eb 100644 --- a/code/datums/helper_datums/map_template.dm +++ b/code/datums/helper_datums/map_template.dm @@ -94,8 +94,8 @@ /proc/preloadRuinTemplates() // Still supporting bans by filename - var/list/banned = generateMapList("config/lavaRuinBlacklist.txt") - banned += generateMapList("config/spaceRuinBlacklist.txt") + var/list/banned = generateMapList("config/lavaruinblacklist.txt") + banned += generateMapList("config/spaceruinblacklist.txt") for(var/item in subtypesof(/datum/map_template/ruin)) var/datum/map_template/ruin/ruin_type = item @@ -117,12 +117,16 @@ /proc/preloadShuttleTemplates() + var/list/unbuyable = generateMapList("config/unbuyableshuttles.txt") + for(var/item in subtypesof(/datum/map_template/shuttle)) var/datum/map_template/shuttle/shuttle_type = item if(!(initial(shuttle_type.suffix))) continue var/datum/map_template/shuttle/S = new shuttle_type() + if(unbuyable.Find(S.mappath)) + S.can_be_bought = FALSE shuttle_templates[S.shuttle_id] = S map_templates[S.shuttle_id] = S diff --git a/code/datums/helper_datums/teleport.dm b/code/datums/helper_datums/teleport.dm index 312a199b21..4a5a204c50 100644 --- a/code/datums/helper_datums/teleport.dm +++ b/code/datums/helper_datums/teleport.dm @@ -82,9 +82,9 @@ /datum/teleport/proc/playSpecials(atom/location,datum/effect_system/effect,sound) if(location) if(effect) - addtimer(src, "do_effect", 0, FALSE, location, effect) + addtimer(src, "do_effect", 0, TIMER_NORMAL, location, effect) if(sound) - addtimer(src, "do_sound", 0, FALSE, location, sound) + addtimer(src, "do_sound", 0, TIMER_NORMAL, location, sound) /datum/teleport/proc/do_effect(atom/location, datum/effect_system/effect) src = null @@ -106,6 +106,8 @@ if(!center) center = destination for(var/turf/T in range(precision,center)) + if(T.is_transition_turf()) + continue // Avoid picking these. var/area/A = T.loc if(!A.noteleport) posturfs.Add(T) @@ -114,7 +116,7 @@ else destturf = get_turf(destination) - if(!destturf || !curturf) + if(!destturf || !curturf || destturf.is_transition_turf()) return 0 var/area/A = get_area(curturf) @@ -165,14 +167,14 @@ var/list/bagholding = teleatom.search_contents_for(/obj/item/weapon/storage/backpack/holding) if(bagholding.len) precision = max(rand(1,100)*bagholding.len,100) - if(istype(teleatom, /mob/living)) + if(isliving(teleatom)) var/mob/living/MM = teleatom MM << "The bluespace interface on your bag of holding interferes with the teleport!" return 1 // Safe location finder -/proc/find_safe_turf(zlevel = ZLEVEL_STATION, list/zlevels) +/proc/find_safe_turf(zlevel = ZLEVEL_STATION, list/zlevels, extended_safety_checks = FALSE) if(!zlevels) zlevels = list(zlevel) var/cycles = 1000 @@ -183,7 +185,7 @@ var/z = pick(zlevels) var/random_location = locate(x,y,z) - if(!(istype(random_location, /turf/open/floor))) + if(!isfloorturf(random_location)) continue var/turf/open/floor/F = random_location if(!F.air) @@ -215,5 +217,11 @@ if((pressure <= 20) || (pressure >= 550)) continue + if(extended_safety_checks) + if(istype(F, /turf/open/floor/plating/lava)) //chasms aren't /floor, and so are pre-filtered + var/turf/open/floor/plating/lava/L = F + if(!L.is_safe()) + continue + // DING! You have passed the gauntlet, and are "probably" safe. return F diff --git a/code/datums/hud.dm b/code/datums/hud.dm index 8d58534230..d406a0300f 100644 --- a/code/datums/hud.dm +++ b/code/datums/hud.dm @@ -12,8 +12,6 @@ var/datum/atom_hud/huds = list( \ ANTAG_HUD_OPS = new/datum/atom_hud/antag(), \ ANTAG_HUD_WIZ = new/datum/atom_hud/antag(), \ ANTAG_HUD_SHADOW = new/datum/atom_hud/antag(), \ - ANTAG_HUD_HOG_BLUE = new/datum/atom_hud/antag(),\ - ANTAG_HUD_HOG_RED = new/datum/atom_hud/antag(),\ ANTAG_HUD_TRAITOR = new/datum/atom_hud/antag/hidden(),\ ANTAG_HUD_NINJA = new/datum/atom_hud/antag/hidden(),\ ANTAG_HUD_CHANGELING = new/datum/atom_hud/antag/hidden(),\ diff --git a/code/datums/martial.dm b/code/datums/martial.dm index bcb4bf8416..b913998010 100644 --- a/code/datums/martial.dm +++ b/code/datums/martial.dm @@ -6,6 +6,8 @@ var/temporary = 0 var/datum/martial_art/base = null // The permanent style var/deflection_chance = 0 //Chance to deflect projectiles + var/block_chance = 0 //Chance to block melee attacks using items while on throw mode. + var/restraining = 0 //used in cqc's disarm_act to check if the disarmed is being restrained and so whether they should be put in a chokehold or not var/help_verb = null /datum/martial_art/proc/disarm_act(mob/living/carbon/human/A, mob/living/carbon/human/D) @@ -21,6 +23,7 @@ if(D != current_target) current_target = D streak = "" + restraining = 0 streak = streak+element if(length(streak) > max_streak_length) streak = copytext(streak,2) @@ -28,16 +31,26 @@ /datum/martial_art/proc/basic_hit(mob/living/carbon/human/A,mob/living/carbon/human/D) - A.do_attack_animation(D) var/damage = rand(A.dna.species.punchdamagelow, A.dna.species.punchdamagehigh) var/atk_verb = A.dna.species.attack_verb if(D.lying) atk_verb = "kick" + switch(atk_verb) + if("kick") + A.do_attack_animation(D, ATTACK_EFFECT_KICK) + if("slash") + A.do_attack_animation(D, ATTACK_EFFECT_CLAW) + if("smash") + A.do_attack_animation(D, ATTACK_EFFECT_SMASH) + else + A.do_attack_animation(D, ATTACK_EFFECT_PUNCH) + if(!damage) playsound(D.loc, A.dna.species.miss_sound, 25, 1, -1) - D.visible_message("[A] has attempted to [atk_verb] [D]!") + D.visible_message("[A] has attempted to [atk_verb] [D]!", \ + "[A] has attempted to [atk_verb] [D]!", null, COMBAT_MESSAGE_RANGE) add_logs(A, D, "attempted to [atk_verb]") return 0 @@ -46,7 +59,7 @@ playsound(D.loc, A.dna.species.attack_sound, 25, 1, -1) D.visible_message("[A] has [atk_verb]ed [D]!", \ - "[A] has [atk_verb]ed [D]!") + "[A] has [atk_verb]ed [D]!", null, COMBAT_MESSAGE_RANGE) D.apply_damage(damage, BRUTE, affecting, armor_block) @@ -90,14 +103,15 @@ /datum/martial_art/boxing/harm_act(mob/living/carbon/human/A, mob/living/carbon/human/D) - A.do_attack_animation(D) + A.do_attack_animation(D, ATTACK_EFFECT_PUNCH) var/atk_verb = pick("left hook","right hook","straight punch") var/damage = rand(5, 8) + A.dna.species.punchdamagelow if(!damage) playsound(D.loc, A.dna.species.miss_sound, 25, 1, -1) - D.visible_message("[A] has attempted to hit [D] with a [atk_verb]!") + D.visible_message("[A] has attempted to [atk_verb] [D]!", \ + "[A] has attempted to [atk_verb] [D]!", null, COMBAT_MESSAGE_RANGE) add_logs(A, D, "attempted to hit", atk_verb) return 0 @@ -107,11 +121,11 @@ playsound(D.loc, A.dna.species.attack_sound, 25, 1, -1) - D.visible_message("[A] has hit [D] with a [atk_verb]!", \ - "[A] has hit [D] with a [atk_verb]!") + D.visible_message("[A] has [atk_verb]ed [D]!", \ + "[A] has [atk_verb]ed [D]!", null, COMBAT_MESSAGE_RANGE) D.apply_damage(damage, STAMINA, affecting, armor_block) - add_logs(A, D, "punched") + add_logs(A, D, "punched (boxing) ") if(D.getStaminaLoss() > 50) var/knockout_prob = D.getStaminaLoss() + rand(-15,15) if((D.stat != DEAD) && prob(knockout_prob)) @@ -120,6 +134,7 @@ D.apply_effect(10,WEAKEN,armor_block) D.SetSleeping(5) D.forcesay(hit_appends) + add_logs(A, D, "knocked out (boxing) ") else if(D.lying) D.forcesay(hit_appends) return 1 @@ -170,6 +185,7 @@ for(var/turf/T in range(1,A)) turfs.Add(T) R.cast(turfs) + add_logs(A, D, "tornado sweeped(Plasma Fist)") return /datum/martial_art/plasma_fist/proc/Throwback(mob/living/carbon/human/A, mob/living/carbon/human/D) @@ -179,15 +195,17 @@ var/atom/throw_target = get_edge_target_turf(D, get_dir(D, get_step_away(D, A))) D.throw_at(throw_target, 200, 4,A) A.say("HYAH!") + add_logs(A, D, "threw back (Plasma Fist)") return /datum/martial_art/plasma_fist/proc/Plasma(mob/living/carbon/human/A, mob/living/carbon/human/D) - A.do_attack_animation(D) + A.do_attack_animation(D, ATTACK_EFFECT_PUNCH) playsound(D.loc, 'sound/weapons/punch1.ogg', 50, 1, -1) A.say("PLASMA FIST!") D.visible_message("[A] has hit [D] with THE PLASMA FIST TECHNIQUE!", \ "[A] has hit [D] with THE PLASMA FIST TECHNIQUE!") D.gib() + add_logs(A, D, "gibbed (Plasma Fist)") return /datum/martial_art/plasma_fist/harm_act(mob/living/carbon/human/A, mob/living/carbon/human/D) @@ -257,7 +275,7 @@ /datum/martial_art/the_sleeping_carp/proc/wristWrench(mob/living/carbon/human/A, mob/living/carbon/human/D) if(!D.stat && !D.stunned && !D.weakened) - A.do_attack_animation(D) + A.do_attack_animation(D, ATTACK_EFFECT_PUNCH) D.visible_message("[A] grabs [D]'s wrist and wrenches it sideways!", \ "[A] grabs your wrist and violently wrenches it to the side!") playsound(get_turf(A), 'sound/weapons/thudswoosh.ogg', 50, 1, -1) @@ -266,22 +284,24 @@ D.apply_damage(5, BRUTE, pick("l_arm", "r_arm")) D.Stun(3) return 1 + add_logs(A, D, "wrist wrenched (Sleeping Carp)") return basic_hit(A,D) /datum/martial_art/the_sleeping_carp/proc/backKick(mob/living/carbon/human/A, mob/living/carbon/human/D) if(A.dir == D.dir && !D.stat && !D.weakened) - A.do_attack_animation(D) + A.do_attack_animation(D, ATTACK_EFFECT_PUNCH) D.visible_message("[A] kicks [D] in the back!", \ "[A] kicks you in the back, making you stumble and fall!") step_to(D,get_step(D,D.dir),1) D.Weaken(4) playsound(get_turf(D), 'sound/weapons/punch1.ogg', 50, 1, -1) return 1 + add_logs(A, D, "back-kicked (Sleeping Carp)") return basic_hit(A,D) /datum/martial_art/the_sleeping_carp/proc/kneeStomach(mob/living/carbon/human/A, mob/living/carbon/human/D) if(!D.stat && !D.weakened) - A.do_attack_animation(D) + A.do_attack_animation(D, ATTACK_EFFECT_KICK) D.visible_message("[A] knees [D] in the stomach!", \ "[A] winds you with a knee in the stomach!") D.audible_message("[D] gags!") @@ -289,11 +309,12 @@ D.Stun(2) playsound(get_turf(D), 'sound/weapons/punch1.ogg', 50, 1, -1) return 1 + add_logs(A, D, "stomach kneed (Sleeping Carp)") return basic_hit(A,D) /datum/martial_art/the_sleeping_carp/proc/headKick(mob/living/carbon/human/A, mob/living/carbon/human/D) if(!D.stat && !D.weakened) - A.do_attack_animation(D) + A.do_attack_animation(D, ATTACK_EFFECT_KICK) D.visible_message("[A] kicks [D] in the head!", \ "[A] kicks you in the jaw!") D.apply_damage(20, BRUTE, "head") @@ -301,11 +322,12 @@ playsound(get_turf(D), 'sound/weapons/punch1.ogg', 50, 1, -1) D.Stun(4) return 1 + add_logs(A, D, "head kicked (Sleeping Carp)") return basic_hit(A,D) /datum/martial_art/the_sleeping_carp/proc/elbowDrop(mob/living/carbon/human/A, mob/living/carbon/human/D) if(D.weakened || D.resting || D.stat) - A.do_attack_animation(D) + A.do_attack_animation(D, ATTACK_EFFECT_PUNCH) D.visible_message("[A] elbow drops [D]!", \ "[A] piledrives you with their elbow!") if(D.stat) @@ -313,6 +335,7 @@ D.apply_damage(50, BRUTE, "chest") playsound(get_turf(D), 'sound/weapons/punch1.ogg', 75, 1, -1) return 1 + add_logs(A, D, "elbow dropped (Sleeping Carp)") return basic_hit(A,D) /datum/martial_art/the_sleeping_carp/grab_act(mob/living/carbon/human/A, mob/living/carbon/human/D) @@ -324,18 +347,21 @@ else A.start_pulling(D, 1) if(A.pulling) - D.drop_r_hand() - D.drop_l_hand() + D.drop_all_held_items() D.stop_pulling() - add_logs(A, D, "grabbed", addition="aggressively") - A.grab_state = GRAB_AGGRESSIVE //Instant aggressive grab + if(A.a_intent == INTENT_GRAB) + add_logs(A, D, "grabbed", addition="aggressively") + A.grab_state = GRAB_AGGRESSIVE //Instant aggressive grab + else + add_logs(A, D, "grabbed", addition="passively") + A.grab_state = GRAB_PASSIVE return 1 /datum/martial_art/the_sleeping_carp/harm_act(mob/living/carbon/human/A, mob/living/carbon/human/D) add_to_streak("H",D) if(check_streak(A,D)) return 1 - A.do_attack_animation(D) + A.do_attack_animation(D, ATTACK_EFFECT_PUNCH) var/atk_verb = pick("punches", "kicks", "chops", "hits", "slams") D.visible_message("[A] [atk_verb] [D]!", \ "[A] [atk_verb] you!") @@ -344,6 +370,7 @@ if(prob(D.getBruteLoss()) && !D.lying) D.visible_message("[D] stumbles and falls!", "The blow sends you to the ground!") D.Weaken(4) + add_logs(A, D, "[atk_verb] (Sleeping Carp)") return 1 @@ -366,6 +393,190 @@ usr << "Head Kick: Disarm Harm Harm. Decent damage, forces opponent to drop item in hand." usr << "Elbow Drop: Harm Disarm Harm Disarm Harm. Opponent must be on the ground. Deals huge damage, instantly kills anyone in critical condition." +//CQC +#define SLAM_COMBO "GH" +#define KICK_COMBO "HH" +#define RESTRAIN_COMBO "GG" +#define PRESSURE_COMBO "DG" +#define CONSECUTIVE_COMBO "DDH" +/datum/martial_art/cqc + name = "CQC" + help_verb = /mob/living/carbon/human/proc/CQC_help + block_chance = 75 + +/datum/martial_art/cqc/proc/drop_restraining() + restraining = 0 + +/datum/martial_art/cqc/proc/check_streak(mob/living/carbon/human/A, mob/living/carbon/human/D) + if(findtext(streak,SLAM_COMBO)) + streak = "" + Slam(A,D) + return 1 + if(findtext(streak,KICK_COMBO)) + streak = "" + Kick(A,D) + return 1 + if(findtext(streak,RESTRAIN_COMBO)) + streak = "" + Restrain(A,D) + return 1 + if(findtext(streak,PRESSURE_COMBO)) + streak = "" + Pressure(A,D) + return 1 + if(findtext(streak,CONSECUTIVE_COMBO)) + streak = "" + Consecutive(A,D) + return 0 + +/datum/martial_art/cqc/proc/Slam(mob/living/carbon/human/A, mob/living/carbon/human/D) + if(!D.stat || !D.weakened) + D.visible_message("[A] slams [D] into the ground!", \ + "[A] slams you into the ground!") + playsound(get_turf(A), 'sound/weapons/slam.ogg', 50, 1, -1) + D.apply_damage(10, BRUTE) + D.Weaken(6) + add_logs(A, D, "cqc slammed") + return 1 + +/datum/martial_art/cqc/proc/Kick(mob/living/carbon/human/A, mob/living/carbon/human/D) + if(!D.stat || !D.weakened) + D.visible_message("[A] kicks [D] back!", \ + "[A] kicks you back!") + playsound(get_turf(A), 'sound/weapons/cqchit1.ogg', 50, 1, -1) + var/atom/throw_target = get_edge_target_turf(D, A.dir) + D.throw_at(throw_target, 1, 14, A) + D.apply_damage(10, BRUTE) + add_logs(A, D, "cqc kicked") + if(D.weakened && D.stat != DEAD) + D.visible_message("[A] kicks [D]'s head, knocking them out!", \ + "[A] kicks your head, knocking you out!") + playsound(get_turf(A), 'sound/weapons/genhit1.ogg', 50, 1, -1) + D.SetSleeping(15) + D.adjustBrainLoss(25) + return 1 + +/datum/martial_art/cqc/proc/Pressure(mob/living/carbon/human/A, mob/living/carbon/human/D) + D.visible_message("[A] forces their arm on [D]'s neck!") + D.adjustStaminaLoss(60) + playsound(get_turf(A), 'sound/weapons/cqchit1.ogg', 50, 1, -1) + return 1 + +/datum/martial_art/cqc/proc/Restrain(mob/living/carbon/human/A, mob/living/carbon/human/D) + if(restraining) + return + if(!D.stat) + D.visible_message("[A] locks [D] into a restraining position!", \ + "[A] locks you into a restraining position!") + D.adjustStaminaLoss(20) + D.Stun(5) + restraining = 1 + addtimer(src, "drop_restraining", 50, TIMER_UNIQUE) + return 1 + +/datum/martial_art/cqc/proc/Consecutive(mob/living/carbon/human/A, mob/living/carbon/human/D) + if(!D.stat) + D.visible_message("[A] strikes [D]'s abdomen, neck and back consecutively", \ + "[A] strikes your abdomen, neck and back consecutively!") + playsound(get_turf(D), 'sound/weapons/cqchit2.ogg', 50, 1, -1) + var/obj/item/I = D.get_active_held_item() + if(I) + D.drop_item() + A.put_in_hands(I) + D.adjustStaminaLoss(50) + D.apply_damage(25, BRUTE) + return 1 + +/datum/martial_art/cqc/grab_act(mob/living/carbon/human/A, mob/living/carbon/human/D) + add_to_streak("G",D) + if(check_streak(A,D)) + return 1 + if(A.grab_state >= GRAB_AGGRESSIVE) + D.grabbedby(A, 1) + else + A.start_pulling(D, 1) + if(A.pulling) + D.stop_pulling() + add_logs(A, D, "grabbed", addition="aggressively") + A.grab_state = GRAB_AGGRESSIVE //Instant aggressive grab + + return 1 + +/datum/martial_art/cqc/harm_act(mob/living/carbon/human/A, mob/living/carbon/human/D) + add_to_streak("H",D) + if(check_streak(A,D)) + return 1 + add_logs(A, D, "CQC'd") + A.do_attack_animation(D) + var/picked_hit_type = pick("CQC'd", "Big Bossed") + var/bonus_damage = 13 + if(D.weakened || D.resting || D.lying) + bonus_damage += 5 + picked_hit_type = "stomps on" + D.apply_damage(bonus_damage, BRUTE) + if(picked_hit_type == "kicks" || picked_hit_type == "stomps on") + playsound(get_turf(D), 'sound/weapons/cqchit2.ogg', 50, 1, -1) + else + playsound(get_turf(D), 'sound/weapons/cqchit1.ogg', 50, 1, -1) + D.visible_message("[A] [picked_hit_type] [D]!", \ + "[A] [picked_hit_type] you!") + add_logs(A, D, "[picked_hit_type] with CQC") + if(A.resting && !D.stat && !D.weakened) + D.visible_message("[A] leg sweeps [D]!", \ + "[A] leg sweeps you!") + playsound(get_turf(A), 'sound/effects/hit_kick.ogg', 50, 1, -1) + D.apply_damage(10, BRUTE) + D.Weaken(3) + add_logs(A, D, "cqc sweeped") + return 1 + +/datum/martial_art/cqc/disarm_act(mob/living/carbon/human/A, mob/living/carbon/human/D) + add_to_streak("D",D) + if(check_streak(A,D)) + return 1 + if(prob(65)) + if(!D.stat || !D.weakened || !restraining) + var/obj/item/I = D.get_active_held_item() + D.visible_message("[A] strikes [D]'s jaw with their hand!", \ + "[A] strikes your jaw, disorienting you!") + playsound(get_turf(D), 'sound/weapons/cqchit1.ogg', 50, 1, -1) + if(I) + D.drop_item() + A.put_in_hands(I) + D.Jitter(2) + D.apply_damage(5, BRUTE) + else + D.visible_message("[A] attempted to disarm [D]!", \ + "[A] attempted to disarm [D]!") + playsound(D, 'sound/weapons/punchmiss.ogg', 25, 1, -1) + add_logs(A, D, "disarmed with CQC") + if(restraining && A.pulling == D) + D.visible_message("[A] puts [D] into a chokehold!", \ + "[A] puts you into a chokehold!") + D.SetSleeping(20) + restraining = 0 + if(A.grab_state < GRAB_NECK) + A.grab_state = GRAB_NECK + else + restraining = 0 + return 0 + return 1 + +/mob/living/carbon/human/proc/CQC_help() + set name = "Recall Teachings" + set desc = "You try to remember some of the basics of CQC." + set category = "CQC" + + usr << "You try to remember some of the basics of CQC." + + usr << "Slam: Grab Harm. Slam opponent into the ground, weakens and knocks down." + usr << "CQC Kick: Harm Disarm Harm. Knocks opponent away. Knocks out stunned or weakened opponents." + usr << "Restrain: Grab Grab. Locks opponents into a restraining position, disarm to knock them out with a choke hold." + usr << "Pressure: Disarm Grab. Decent stamina damage." + usr << "Consecutive CQC: Harm Harm Disarm. Mainly offensive move, huge damage and decent stamina damage." + + usr << "In addition, by having your throw mode on when being attacked, you enter an active defense mode where you have a chance to block and sometimes even counter attacks done to you." + //ITEMS /obj/item/clothing/gloves/boxing @@ -427,6 +638,23 @@ name = "empty scroll" icon_state = "blankscroll" +/obj/item/weapon/cqc_manual + name = "old manual" + desc = "A small, black manual. There are drawn instructions of tactical hand-to-hand combat." + icon = 'icons/obj/library.dmi' + icon_state ="cqcmanual" + +/obj/item/weapon/cqc_manual/attack_self(mob/living/carbon/human/user) + if(!istype(user) || !user) + return + user <<"You remember the basics of CQC." + var/datum/martial_art/cqc/D = new(null) + D.teach(user) + user.drop_item() + visible_message("[src] beeps ominously, and a moment later it bursts up in flames.") + new /obj/effect/decal/cleanable/ash(get_turf(src)) + qdel(src) + /obj/item/weapon/sleeping_carp_scroll name = "mysterious scroll" desc = "A scroll filled with strange markings. It seems to be drawings of some sort of martial art." @@ -449,7 +677,7 @@ name = "bo staff" desc = "A long, tall staff made of polished wood. Traditionally used in ancient old-Earth martial arts. Can be wielded to both kill and incapacitate." force = 10 - w_class = 4 + w_class = WEIGHT_CLASS_BULKY slot_flags = SLOT_BACK force_unwielded = 10 force_wielded = 24 @@ -473,9 +701,9 @@ var/mob/living/carbon/human/H = user H.apply_damage(2*force, BRUTE, "head") else - user.take_organ_damage(2*force) + user.take_bodypart_damage(2*force) return - if(isrobot(target)) + if(iscyborg(target)) return ..() if(!isliving(target)) return ..() @@ -483,7 +711,7 @@ if(C.stat) user << "It would be dishonorable to attack a foe while they cannot retaliate." return - if(user.a_intent == "disarm") + if(user.a_intent == INTENT_DISARM) if(!wielded) return ..() if(!ishuman(target)) @@ -505,7 +733,7 @@ H.Weaken(4) if(H.staminaloss && !H.sleeping) var/total_health = (H.health - H.staminaloss) - if(total_health <= config.health_threshold_crit && !H.stat) + if(total_health <= HEALTH_THRESHOLD_CRIT && !H.stat) H.visible_message("[user] delivers a heavy hit to [H]'s head, knocking them out cold!", \ "[user] knocks you unconscious!") H.SetSleeping(30) @@ -516,4 +744,5 @@ /obj/item/weapon/twohanded/bostaff/hit_reaction(mob/living/carbon/human/owner, attack_text, final_block_chance) if(wielded) return ..() - return 0 \ No newline at end of file + return 0 + diff --git a/code/datums/martial/krav_maga.dm b/code/datums/martial/krav_maga.dm index 8d37e1ee31..f71cc3b97f 100644 --- a/code/datums/martial/krav_maga.dm +++ b/code/datums/martial/krav_maga.dm @@ -17,7 +17,7 @@ H.martial_art.streak = "neck_chop" /datum/action/leg_sweep - name = "Leg Sweep - Trips the victim, rendering them prone and unable to move for a short time." + name = "Leg Sweep - Trips the victim, knocking them down for a brief moment." button_icon_state = "legsweep" /datum/action/leg_sweep/Trigger() @@ -79,14 +79,17 @@ playsound(get_turf(A), 'sound/effects/hit_kick.ogg', 50, 1, -1) D.apply_damage(5, BRUTE) D.Weaken(2) + add_logs(A, D, "leg sweeped") return 1 /datum/martial_art/krav_maga/proc/quick_choke(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)//is actually lung punch D.visible_message("[A] pounds [D] on the chest!", \ "[A] slams your chest! You can't breathe!") playsound(get_turf(A), 'sound/effects/hit_punch.ogg', 50, 1, -1) - D.losebreath += 5 + if(D.losebreath <= 10) + D.losebreath = Clamp(D.losebreath + 5, 0, 10) D.adjustOxyLoss(10) + add_logs(A, D, "quickchoked") return 1 /datum/martial_art/krav_maga/proc/neck_chop(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) @@ -94,46 +97,45 @@ "[A] karate chops your neck, rendering you unable to speak!") playsound(get_turf(A), 'sound/effects/hit_punch.ogg', 50, 1, -1) D.apply_damage(5, BRUTE) - D.silent += 10 + if(D.silent <= 10) + D.silent = Clamp(D.silent + 10, 0, 10) + add_logs(A, D, "neck chopped") return 1 -datum/martial_art/krav_maga/grab_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) +/datum/martial_art/krav_maga/grab_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) if(check_streak(A,D)) return 1 + add_logs(A, D, "grabbed with krav maga") ..() /datum/martial_art/krav_maga/harm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) if(check_streak(A,D)) return 1 add_logs(A, D, "punched") - A.do_attack_animation(D) var/picked_hit_type = pick("punches", "kicks") var/bonus_damage = 10 if(D.weakened || D.resting || D.lying) bonus_damage += 5 picked_hit_type = "stomps on" D.apply_damage(bonus_damage, BRUTE) - if(picked_hit_type == "kicks" || picked_hit_type == "stomps") + if(picked_hit_type == "kicks" || picked_hit_type == "stomps on") + A.do_attack_animation(D, ATTACK_EFFECT_KICK) playsound(get_turf(D), 'sound/effects/hit_kick.ogg', 50, 1, -1) else + A.do_attack_animation(D, ATTACK_EFFECT_PUNCH) playsound(get_turf(D), 'sound/effects/hit_punch.ogg', 50, 1, -1) D.visible_message("[A] [picked_hit_type] [D]!", \ "[A] [picked_hit_type] you!") + add_logs(A, D, "[picked_hit_type] with Krav Maga") return 1 /datum/martial_art/krav_maga/disarm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) if(check_streak(A,D)) return 1 if(prob(60)) - if(D.hand) - if(istype(D.l_hand, /obj/item)) - var/obj/item/I = D.l_hand - D.drop_item() - A.put_in_hands(I) - else - if(istype(D.r_hand, /obj/item)) - var/obj/item/I = D.r_hand - D.drop_item() + var/obj/item/I = D.get_active_held_item() + if(I) + if(D.drop_item()) A.put_in_hands(I) D.visible_message("[A] has disarmed [D]!", \ "[A] has disarmed [D]!") @@ -142,30 +144,35 @@ datum/martial_art/krav_maga/grab_act(var/mob/living/carbon/human/A, var/mob/livi D.visible_message("[A] attempted to disarm [D]!", \ "[A] attempted to disarm [D]!") playsound(D, 'sound/weapons/punchmiss.ogg', 25, 1, -1) + add_logs(A, D, "disarmed with krav maga") return 1 //Krav Maga Gloves -/obj/item/clothing/gloves/color/black/krav_maga - can_be_cut = 0 +/obj/item/clothing/gloves/krav_maga var/datum/martial_art/krav_maga/style = new -/obj/item/clothing/gloves/color/black/krav_maga/equipped(mob/user, slot) +/obj/item/clothing/gloves/krav_maga/equipped(mob/user, slot) if(!ishuman(user)) return if(slot == slot_gloves) var/mob/living/carbon/human/H = user style.teach(H,1) -/obj/item/clothing/gloves/color/black/krav_maga/dropped(mob/user) +/obj/item/clothing/gloves/krav_maga/dropped(mob/user) if(!ishuman(user)) return var/mob/living/carbon/human/H = user if(H.get_item_by_slot(slot_gloves) == src) style.remove(H) -/obj/item/clothing/gloves/color/black/krav_maga/sec//more obviously named, given to sec +/obj/item/clothing/gloves/krav_maga/sec//more obviously named, given to sec name = "krav maga gloves" desc = "These gloves can teach you to perform Krav Maga using nanochips." icon_state = "fightgloves" - item_state = "fightgloves" \ No newline at end of file + item_state = "fightgloves" + cold_protection = HANDS + min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT + heat_protection = HANDS + max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT + resistance_flags = 0 diff --git a/code/datums/martial/wrestling.dm b/code/datums/martial/wrestling.dm index bb0c8d8962..02a044232e 100644 --- a/code/datums/martial/wrestling.dm +++ b/code/datums/martial/wrestling.dm @@ -112,6 +112,7 @@ /datum/martial_art/wrestling/harm_act(mob/living/carbon/human/A, mob/living/carbon/human/D) if(check_streak(A,D)) return 1 + add_logs(A, D, "punched with wrestling") ..() /datum/martial_art/wrestling/proc/throw_wrassle(mob/living/carbon/human/A, mob/living/carbon/human/D) @@ -184,6 +185,7 @@ D.throw_at(T, 10, 4) D.Weaken(2) + add_logs(A, D, "has thrown with wrestling") return 0 /datum/martial_art/wrestling/proc/slam(mob/living/carbon/human/A, mob/living/carbon/human/D) @@ -297,6 +299,7 @@ D.pixel_y = 0 + add_logs(A, D, "body-slammed") return 0 /datum/martial_art/wrestling/proc/strike(mob/living/carbon/human/A, mob/living/carbon/human/D) @@ -316,6 +319,7 @@ D.adjustBruteLoss(rand(10,20)) playsound(A.loc, "swing_hit", 50, 1) D.Paralyse(1) + add_logs(A, D, "headbutted") /datum/martial_art/wrestling/proc/kick(mob/living/carbon/human/A, mob/living/carbon/human/D) if(!D) @@ -332,6 +336,7 @@ if (T && isturf(T)) D.Weaken(1) D.throw_at(T, 3, 2) + add_logs(A, D, "roundhouse-kicked") /datum/martial_art/wrestling/proc/drop(mob/living/carbon/human/A, mob/living/carbon/human/D) if(!D) @@ -402,11 +407,13 @@ else if (A) A.pixel_y = 0 + add_logs(A, D, "leg-dropped") return /datum/martial_art/wrestling/disarm_act(mob/living/carbon/human/A, mob/living/carbon/human/D) if(check_streak(A,D)) return 1 + add_logs(A, D, "wrestling-disarmed") ..() /datum/martial_art/wrestling/grab_act(mob/living/carbon/human/A, mob/living/carbon/human/D) @@ -418,4 +425,5 @@ D.visible_message("[A] gets [D] in a cinch!", \ "[A] gets [D] in a cinch!") D.Stun(rand(3,5)) + add_logs(A, D, "cinched") return 1 diff --git a/code/datums/material_container.dm b/code/datums/material_container.dm index ed6f375b6f..c158dfa482 100644 --- a/code/datums/material_container.dm +++ b/code/datums/material_container.dm @@ -26,7 +26,6 @@ for(var/mat_type in subtypesof(/datum/material)) var/datum/material/MT = mat_type possible_mats[initial(MT.id)] = mat_type - for(var/id in mat_list) if(possible_mats[id]) var/mat_path = possible_mats[id] @@ -138,6 +137,8 @@ //For spawning mineral sheets; internal use only /datum/material_container/proc/retrieve(sheet_amt, datum/material/M) + if(!M.sheet_type) + return 0 if(sheet_amt > 0) if(M.amount < (sheet_amt * MINERAL_MATERIAL_AMOUNT)) sheet_amt = round(M.amount / MINERAL_MATERIAL_AMOUNT) @@ -216,11 +217,13 @@ var/amount = 0 var/id = null var/sheet_type = null + var/coin_type = null /datum/material/metal name = "Metal" id = MAT_METAL sheet_type = /obj/item/stack/sheet/metal + coin_type = /obj/item/weapon/coin/iron /datum/material/glass name = "Glass" @@ -231,28 +234,43 @@ name = "Silver" id = MAT_SILVER sheet_type = /obj/item/stack/sheet/mineral/silver + coin_type = /obj/item/weapon/coin/silver /datum/material/gold name = "Gold" id = MAT_GOLD sheet_type = /obj/item/stack/sheet/mineral/gold + coin_type = /obj/item/weapon/coin/gold /datum/material/diamond name = "Diamond" id = MAT_DIAMOND sheet_type = /obj/item/stack/sheet/mineral/diamond + coin_type = /obj/item/weapon/coin/diamond /datum/material/uranium name = "Uranium" id = MAT_URANIUM sheet_type = /obj/item/stack/sheet/mineral/uranium + coin_type = /obj/item/weapon/coin/uranium /datum/material/plasma name = "Solid Plasma" id = MAT_PLASMA sheet_type = /obj/item/stack/sheet/mineral/plasma + coin_type = /obj/item/weapon/coin/plasma /datum/material/bananium name = "Bananium" id = MAT_BANANIUM sheet_type = /obj/item/stack/sheet/mineral/bananium + coin_type = /obj/item/weapon/coin/clown + +/datum/material/titanium + name = "Titanium" + id = MAT_TITANIUM + sheet_type = /obj/item/stack/sheet/mineral/titanium + +/datum/material/biomass + name = "Biomass" + id = MAT_BIOMASS diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 0a59bfc33b..0dcd3e9561 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -61,7 +61,8 @@ var/datum/devilinfo/devilinfo //Information about the devil, if any. var/damnation_type = 0 var/datum/mind/soulOwner //who owns the soul. Under normal circumstances, this will point to src - + var/isholy = FALSE //is this person a chaplain or admin role allowed to use bibles + var/mob/living/enslaved_to //If this mind's master is another mob (i.e. adamantine golems) /datum/mind/New(var/key) @@ -83,10 +84,17 @@ if(new_character.mind) //disassociate any mind currently in our new body's mind variable new_character.mind.current = null + if(istype(current) && islist(current.antag_datums)) //wow apparently current isn't always living good fucking job SOMEONE + for(var/i in current.antag_datums) + var/datum/antagonist/D = i + D.transfer_to_new_body(new_character) var/datum/atom_hud/antag/hud_to_transfer = antag_hud//we need this because leave_hud() will clear this list leave_all_huds() //leave all the huds in the old body, so it won't get huds if somebody else enters it current = new_character //associate ourself with our new body new_character.mind = src //and associate our new body with ourself + if(iscarbon(new_character)) + var/mob/living/carbon/C = new_character + C.last_mind = src transfer_antag_huds(hud_to_transfer) //inherit the antag HUD transfer_actions(new_character) @@ -174,16 +182,6 @@ ticker.mode.remove_gangster(src,0,1,1) remove_objectives() -/datum/mind/proc/remove_hog_follower_prophet() - ticker.mode.red_deity_followers -= src - ticker.mode.red_deity_prophets -= src - ticker.mode.blue_deity_prophets -= src - ticker.mode.blue_deity_followers -= src - ticker.mode.update_hog_icons_removed(src, "red") - ticker.mode.update_hog_icons_removed(src, "blue") - - - /datum/mind/proc/remove_antag_equip() var/list/Mob_Contents = current.get_contents() for(var/obj/item/I in Mob_Contents) @@ -208,9 +206,36 @@ ticker.mode.update_wiz_icons_removed(src) ticker.mode.update_cult_icons_removed(src) ticker.mode.update_rev_icons_removed(src) - gang_datum.remove_gang_hud(src) + if(gang_datum) + gang_datum.remove_gang_hud(src) +//Link a new mobs mind to the creator of said mob. They will join any team they are currently on, and will only switch teams when their creator does. + +/datum/mind/proc/enslave_mind_to_creator(mob/living/creator) + if(iscultist(creator)) + ticker.mode.add_cultist(src) + + else if(is_gangster(creator)) + ticker.mode.add_gangster(src, creator.mind.gang_datum, TRUE) + + else if(is_revolutionary_in_general(creator)) + ticker.mode.add_revolutionary(src) + + else if(is_servant_of_ratvar(creator)) + add_servant_of_ratvar(current) + + else if(is_nuclear_operative(creator)) + make_Nuke(null, null, 0, FALSE) + + enslaved_to = creator + + current.faction = creator.faction.Copy() + + if(creator.mind.special_role) + message_admins("[key_name_admin(current)](?) has been created by [key_name_admin(creator)](?), an antagonist.") + current << "Despite your creators current allegiances, your true master remains [creator.real_name]. If their loyalities change, so do yours. This will never change unless your creator's body is destroyed." + /datum/mind/proc/show_memory(mob/recipient, window=1) if(!recipient) recipient = current @@ -251,7 +276,7 @@ ) var/text = "" - if (istype(current, /mob/living/carbon/human) || istype(current, /mob/living/carbon/monkey)) + if(ishuman(current)) /** REVOLUTION ***/ text = "revolution" if (ticker.mode.config_tag=="revolution") @@ -276,7 +301,7 @@ text += " Reequip (gives traitor uplink)." if (objectives.len==0) text += "
    Objectives are empty! Set to kill all heads." - else if(isloyal(current)) + else if(current.isloyal()) text += "head|LOYAL|employee|headrev|rev" else if (src in ticker.mode.revolutionaries) text += "head|loyal|employee|headrev|REV" @@ -295,7 +320,7 @@ if (ticker.mode.config_tag=="gang") text = uppertext(text) text = "[text]: " - text += "[isloyal(current) ? "LOYAL" : "loyal"]|" + text += "[current.isloyal() ? "LOYAL" : "loyal"]|" if(src in ticker.mode.get_all_gangsters()) text += "none" else @@ -330,100 +355,23 @@ sections["gang"] = text - - /** CULT ***/ - text = "cult" - if (ticker.mode.config_tag=="cult") + /** Abductors **/ + text = "Abductor" + if(ticker.mode.config_tag == "abductor") text = uppertext(text) text = "[text]: " - if (src in ticker.mode.cult) - text += "loyal|employee|CULTIST" - text += "
    Give tome|amulet." -/* - if (objectives.len==0) - text += "
    Objectives are empty! Set to sacrifice and escape or summon." -*/ - else if(isloyal(current)) - text += "LOYAL|employee|cultist" + if(src in ticker.mode.abductors) + text += "Abductor|human" + text += "|undress|equip" else - text += "loyal|EMPLOYEE|cultist" + text += "Abductor|human" - if(current && current.client && (ROLE_CULTIST in current.client.prefs.be_special)) + if(current && current.client && (ROLE_ABDUCTOR in current.client.prefs.be_special)) text += "|Enabled in Prefs" else text += "|Disabled in Prefs" - sections["cult"] = text - - /** CLOCKWORK CULT **/ - text = "clockwork cult" - if(ticker.mode.config_tag == "clockwork cult") - text = uppertext(text) - text = "[text]: " - if(src in ticker.mode.servants_of_ratvar) - text += "loyal|employee|SERVANT" - text += "
    Give slab" - else if(isloyal(current)) - text += "LOYAL|employee|servant" - else - text += "loyal|EMPLOYEE|servant" - - if(current && current.client && (ROLE_SERVANT_OF_RATVAR in current.client.prefs.be_special)) - text += "|Enabled in Prefs" - else - text += "|Disabled in Prefs" - - sections["clockcult"] = text - - /** WIZARD ***/ - text = "wizard" - if (ticker.mode.config_tag=="wizard") - text = uppertext(text) - text = "[text]: " - if ((src in ticker.mode.wizards) || (src in ticker.mode.apprentices)) - text += "YES|no" - text += "
    To lair, undress, dress up, let choose name." - if (objectives.len==0) - text += "
    Objectives are empty! Randomize!" - else - text += "yes|NO" - - if(current && current.client && (ROLE_WIZARD in current.client.prefs.be_special)) - text += "|Enabled in Prefs" - else - text += "|Disabled in Prefs" - - sections["wizard"] = text - - /** CHANGELING ***/ - text = "changeling" - if (ticker.mode.config_tag=="changeling" || ticker.mode.config_tag=="traitorchan") - text = uppertext(text) - text = "[text]: " - if ((src in ticker.mode.changelings) && special_role) - text += "YES|no" - if (objectives.len==0) - text += "
    Objectives are empty! Randomize!" - if(changeling && changeling.stored_profiles.len && (current.real_name != changeling.first_prof.name) ) - text += "
    Transform to initial appearance." - else if(src in ticker.mode.changelings) //Station Aligned Changeling - text += "YES (but not an antag)|no" - if (objectives.len==0) - text += "
    Objectives are empty! Randomize!" - if(changeling && changeling.stored_profiles.len && (current.real_name != changeling.first_prof.name) ) - text += "
    Transform to initial appearance." - else - text += "yes|NO" -// var/datum/game_mode/changeling/changeling = ticker.mode -// if (istype(changeling) && changeling.changelingdeath) -// text += "
    All the changelings are dead! Restart in [round((changeling.TIME_TO_GET_REVIVED-(world.time-changeling.changelingdeathtime))/10)] seconds." - - if(current && current.client && (ROLE_CHANGELING in current.client.prefs.be_special)) - text += "|Enabled in Prefs" - else - text += "|Disabled in Prefs" - - sections["changeling"] = text + sections["abductor"] = text /** NUCLEAR ***/ text = "nuclear" @@ -450,6 +398,71 @@ sections["nuclear"] = text + /** WIZARD ***/ + text = "wizard" + if (ticker.mode.config_tag=="wizard") + text = uppertext(text) + text = "[text]: " + if ((src in ticker.mode.wizards) || (src in ticker.mode.apprentices)) + text += "YES|no" + text += "
    To lair, undress, dress up, let choose name." + if (objectives.len==0) + text += "
    Objectives are empty! Randomize!" + else + text += "yes|NO" + + if(current && current.client && (ROLE_WIZARD in current.client.prefs.be_special)) + text += "|Enabled in Prefs" + else + text += "|Disabled in Prefs" + + sections["wizard"] = text + + /** CULT ***/ + text = "cult" + if (ticker.mode.config_tag=="cult") + text = uppertext(text) + text = "[text]: " + if(iscultist(current)) + text += "loyal|employee|CULTIST" + text += "
    Give tome|amulet." + + else if(current.isloyal()) + text += "LOYAL|employee|cultist" + else if(is_convertable_to_cult(current)) + text += "loyal|EMPLOYEE|cultist" + else + text += "loyal|EMPLOYEE|cannot serve Nar-Sie" + + if(current && current.client && (ROLE_CULTIST in current.client.prefs.be_special)) + text += "|Enabled in Prefs" + else + text += "|Disabled in Prefs" + + sections["cult"] = text + + /** CLOCKWORK CULT **/ + text = "clockwork cult" + if(ticker.mode.config_tag == "clockwork cult") + text = uppertext(text) + text = "[text]: " + if(is_servant_of_ratvar(current)) + text += "loyal|employee|SERVANT" + text += "
    Give slab" + else if(current.isloyal()) + text += "LOYAL|employee|servant" + else if(is_eligible_servant(current)) + text += "loyal|EMPLOYEE|servant" + else + text += "loyal|EMPLOYEE|cannot serve Ratvar" + + if(current && current.client && (ROLE_SERVANT_OF_RATVAR in current.client.prefs.be_special)) + text += "|Enabled in Prefs" + else + text += "|Disabled in Prefs" + + sections["clockcult"] = text + /** TRAITOR ***/ text = "traitor" if (ticker.mode.config_tag=="traitor" || ticker.mode.config_tag=="traitorchan") @@ -469,66 +482,43 @@ sections["traitor"] = text - /** Abductors **/ + if(ishuman(current) || ismonkey(current)) - text = "Abductor" - if(ticker.mode.config_tag == "abductor") - text = uppertext(text) - text = "[text]: " - if(src in ticker.mode.abductors) - text += "Abductor|human" - text += "|undress|equip" - else - text += "Abductor|human" + /** CHANGELING ***/ + text = "changeling" + if (ticker.mode.config_tag=="changeling" || ticker.mode.config_tag=="traitorchan") + text = uppertext(text) + text = "[text]: " + if ((src in ticker.mode.changelings) && special_role) + text += "YES|no" + if (objectives.len==0) + text += "
    Objectives are empty! Randomize!" + if(changeling && changeling.stored_profiles.len && (current.real_name != changeling.first_prof.name) ) + text += "
    Transform to initial appearance." + else if(src in ticker.mode.changelings) //Station Aligned Changeling + text += "YES (but not an antag)|no" + if (objectives.len==0) + text += "
    Objectives are empty! Randomize!" + if(changeling && changeling.stored_profiles.len && (current.real_name != changeling.first_prof.name) ) + text += "
    Transform to initial appearance." + else + text += "yes|NO" - if(current && current.client && (ROLE_ABDUCTOR in current.client.prefs.be_special)) - text += "|Enabled in Prefs" - else - text += "|Disabled in Prefs" + if(current && current.client && (ROLE_CHANGELING in current.client.prefs.be_special)) + text += "|Enabled in Prefs" + else + text += "|Disabled in Prefs" - sections["abductor"] = text + sections["changeling"] = text - /** HAND OF GOD **/ - text = "hand of god" - if(ticker.mode.config_tag == "handofgod") - text = uppertext(text) - text = "[text]: " - if (src in ticker.mode.red_deities) - text += "RED GOD|red prophet|red follower|employee|blue god|blue prophet|blue follower" - else if(src in ticker.mode.red_deity_prophets) - text += "red god|RED PROPHET|red follower|employee|blue god|blue prophet|blue follower" - else if (src in ticker.mode.red_deity_followers) - text += "red god|red prophet|RED FOLLOWER|employee|blue god|blue prophet|blue follower" - else if (src in ticker.mode.blue_deities) - text += "red god|red prophet|red follower|employee|BLUE GOD|blue prophet|blue follower" - else if (src in ticker.mode.blue_deity_prophets) - text += "red god|red prophet|red follower|employee|blue god|BLUE PROPHET|blue follower" - else if (src in ticker.mode.blue_deity_followers) - text += "red god|red prophet|red follower|employee|blue god|blue prophet|BLUE FOLLOWER" - else - text += "red god|red prophet|red follower|EMPLOYEE|blue god|blue prophet|blue follower" - - if(current && current.client && (ROLE_HOG_GOD in current.client.prefs.be_special)) - text += "|HOG God Enabled in Prefs" - else - text += "|HOG God Disabled in Prefs" - - if(current && current.client && (ROLE_HOG_CULTIST in current.client.prefs.be_special)) - text += "|HOG Cultist Enabled in Prefs" - else - text += "|HOG Disabled in Prefs" - - sections["follower"] = text - - /** MONKEY ***/ - if (istype(current, /mob/living/carbon)) + /** MONKEY ***/ text = "monkey" if (ticker.mode.config_tag=="monkey") text = uppertext(text) text = "[text]: " - if (istype(current, /mob/living/carbon/human)) + if (ishuman(current)) text += "healthy|infected|HUMAN|other" - else if (istype(current, /mob/living/carbon/monkey)) + else if (ismonkey(current)) var/found = 0 for(var/datum/disease/D in current.viruses) if(istype(D, /datum/disease/transformation/jungle_fever)) found = 1 @@ -569,7 +559,7 @@ /** SILICON ***/ - if (istype(current, /mob/living/silicon)) + if(issilicon(current)) text = "silicon" var/mob/living/silicon/robot/robot = current if (istype(robot) && robot.emagged) @@ -597,10 +587,7 @@ out += sections[i]+"
    " - if (((src in ticker.mode.head_revolutionaries) || \ - (src in ticker.mode.traitors) || \ - (src in ticker.mode.syndicates)) && \ - istype(current,/mob/living/carbon/human) ) + if(((src in ticker.mode.head_revolutionaries) || (src in ticker.mode.traitors) || (src in ticker.mode.syndicates)) && ishuman(current)) text = "Uplink: give" var/obj/item/device/uplink/U = find_syndicate_uplink() @@ -666,7 +653,7 @@ if(!def_value)//If it's a custom objective, it will be an empty string. def_value = "custom" - var/new_obj_type = input("Select objective type:", "Objective type", def_value) as null|anything in list("assassinate", "maroon", "debrain", "protect", "destroy", "prevent", "hijack", "escape", "survive", "martyr", "steal", "download", "nuclear", "capture", "absorb", "custom","follower block (HOG)","build (HOG)","deicide (HOG)", "follower escape (HOG)", "sacrifice prophet (HOG)") + var/new_obj_type = input("Select objective type:", "Objective type", def_value) as null|anything in list("assassinate", "maroon", "debrain", "protect", "destroy", "prevent", "hijack", "escape", "survive", "martyr", "steal", "download", "nuclear", "capture", "absorb", "custom") if (!new_obj_type) return @@ -676,7 +663,7 @@ if ("assassinate","protect","debrain","maroon") var/list/possible_targets = list("Free objective") for(var/datum/mind/possible_target in ticker.minds) - if ((possible_target != src) && istype(possible_target.current, /mob/living/carbon/human)) + if ((possible_target != src) && ishuman(possible_target.current)) possible_targets += possible_target.current var/mob/def_target = null @@ -768,22 +755,6 @@ new_objective.owner = src new_objective.target_amount = target_number - if("follower block (HOG)") - new_objective = new /datum/objective/follower_block - new_objective.owner = src - if("build (HOG)") - new_objective = new /datum/objective/build - new_objective.owner = src - if("deicide (HOG)") - new_objective = new /datum/objective/deicide - new_objective.owner = src - if("follower escape (HOG)") - new_objective = new /datum/objective/escape_followers - new_objective.owner = src - if("sacrifice prophet (HOG)") - new_objective = new /datum/objective/sacrifice_prophet - new_objective.owner = src - if ("custom") var/expl = stripped_input(usr, "Custom objective:", "Objective", objective ? objective.explanation_text : "") if (!expl) @@ -820,46 +791,6 @@ objective.completed = !objective.completed log_admin("[key_name(usr)] toggled the win state for [current]'s objective: [objective.explanation_text]") - else if (href_list["handofgod"]) - switch(href_list["handofgod"]) - if("clear") //wipe handofgod status - if((src in ticker.mode.red_deity_followers) || (src in ticker.mode.blue_deity_followers) || (src in ticker.mode.red_deity_prophets) || (src in ticker.mode.blue_deity_prophets)) - remove_hog_follower_prophet() - current << "You have been brainwashed... again! Your faith is no more!" - message_admins("[key_name_admin(usr)] has de-hand of god'ed [current].") - log_admin("[key_name(usr)] has de-hand of god'ed [current].") - - if("red follower") - make_Handofgod_follower("red") - message_admins("[key_name_admin(usr)] has red follower'ed [current].") - log_admin("[key_name(usr)] has red follower'ed [current].") - - if("red prophet") - make_Handofgod_prophet("red") - message_admins("[key_name_admin(usr)] has red prophet'ed [current].") - log_admin("[key_name(usr)] has red prophet'ed [current].") - - if("blue follower") - make_Handofgod_follower("blue") - message_admins("[key_name_admin(usr)] has blue follower'ed [current].") - log_admin("[key_name(usr)] has blue follower'ed [current].") - - if("blue prophet") - make_Handofgod_prophet("blue") - message_admins("[key_name_admin(usr)] has blue prophet'ed [current].") - log_admin("[key_name(usr)] has blue prophet'ed [current].") - - if("red god") - make_Handofgod_god("red") - message_admins("[key_name_admin(usr)] has red god'ed [current].") - log_admin("[key_name(usr)] has red god'ed [current].") - - if("blue god") - make_Handofgod_god("blue") - message_admins("[key_name_admin(usr)] has blue god'ed [current].") - log_admin("[key_name(usr)] has blue god'ed [current].") - - else if (href_list["revolution"]) switch(href_list["revolution"]) if("clear") @@ -1174,30 +1105,38 @@ if("clear") if(src in ticker.mode.devils) if(istype(current,/mob/living/carbon/true_devil/)) - usr << "This cannot be used on true or arch-devils." - else - ticker.mode.devils -= src - special_role = null - current << "Your infernal link has been severed! You are no longer a devil!" - RemoveSpell(/obj/effect/proc_holder/spell/targeted/infernal_jaunt) - RemoveSpell(/obj/effect/proc_holder/spell/dumbfire/fireball/hellish) - RemoveSpell(/obj/effect/proc_holder/spell/targeted/summon_contract) - RemoveSpell(/obj/effect/proc_holder/spell/targeted/summon_pitchfork) - message_admins("[key_name_admin(usr)] has de-devil'ed [current].") - devilinfo = null - log_admin("[key_name(usr)] has de-devil'ed [current].") + if(devilinfo) + devilinfo.regress_blood_lizard() + else + usr << "Something went wrong with removing the devil, we were unable to find an attached devilinfo.." + ticker.mode.devils -= src + special_role = null + current << "Your infernal link has been severed! You are no longer a devil!" + RemoveSpell(/obj/effect/proc_holder/spell/targeted/infernal_jaunt) + RemoveSpell(/obj/effect/proc_holder/spell/fireball/hellish) + RemoveSpell(/obj/effect/proc_holder/spell/targeted/summon_contract) + RemoveSpell(/obj/effect/proc_holder/spell/targeted/conjure_item/summon_pitchfork) + RemoveSpell(/obj/effect/proc_holder/spell/targeted/conjure_item/violin) + message_admins("[key_name_admin(usr)] has de-devil'ed [current].") + devilinfo = null + if(issilicon(current)) + var/mob/living/silicon/S = current + S.clear_law_sixsixsix(current) + log_admin("[key_name(usr)] has de-devil'ed [current].") else if(src in ticker.mode.sintouched) ticker.mode.sintouched -= src message_admins("[key_name_admin(usr)] has de-sintouch'ed [current].") log_admin("[key_name(usr)] has de-sintouch'ed [current].") if("devil") - if(!ishuman(current)) - usr << "This only works on humans!" + if(!ishuman(current) && !iscyborg(current)) + usr << "This only works on humans and cyborgs!" return ticker.mode.devils += src special_role = "devil" ticker.mode.finalize_devil(src) + ticker.mode.add_devil_objectives(src, 2) announceDevilLaws() + announce_objectives() if("sintouched") if(ishuman(current)) ticker.mode.sintouched += src @@ -1288,7 +1227,7 @@ log_admin("[key_name(usr)] has unemag'ed [R].") if("unemagcyborgs") - if (istype(current, /mob/living/silicon/ai)) + if(isAI(current)) var/mob/living/silicon/ai/ai = current for (var/mob/living/silicon/robot/R in ai.connected_robots) R.SetEmagged(0) @@ -1319,14 +1258,18 @@ log_admin("[key_name(usr)] attempted to give [current] an uplink.") else if (href_list["obj_announce"]) - var/obj_count = 1 - current << "Your current objectives:" - for(var/datum/objective/objective in objectives) - current << "Objective #[obj_count]: [objective.explanation_text]" - obj_count++ + announce_objectives() edit_memory() +/datum/mind/proc/announce_objectives() + var/obj_count = 1 + current << "Your current objectives:" + for(var/objective in objectives) + var/datum/objective/O = objective + current << "Objective #[obj_count]: [O.explanation_text]" + obj_count++ + /datum/mind/proc/find_syndicate_uplink() var/list/L = current.get_contents() for (var/obj/item/I in L) @@ -1347,32 +1290,42 @@ ticker.mode.finalize_traitor(src) ticker.mode.greet_traitor(src) -/datum/mind/proc/make_Nuke(turf/spawnloc,nuke_code,leader=0, telecrystals = TRUE) +/datum/mind/proc/make_Nuke(turf/spawnloc, nuke_code, leader=0, telecrystals = TRUE) if(!(src in ticker.mode.syndicates)) ticker.mode.syndicates += src ticker.mode.update_synd_icons_added(src) special_role = "Syndicate" ticker.mode.forge_syndicate_objectives(src) ticker.mode.greet_syndicate(src) + current.faction |= "syndicate" - current.loc = spawnloc + if(spawnloc) + current.loc = spawnloc - var/mob/living/carbon/human/H = current - qdel(H.belt) - qdel(H.back) - qdel(H.ears) - qdel(H.gloves) - qdel(H.head) - qdel(H.shoes) - qdel(H.wear_id) - qdel(H.wear_suit) - qdel(H.w_uniform) + if(ishuman(current)) + var/mob/living/carbon/human/H = current + qdel(H.belt) + qdel(H.back) + qdel(H.ears) + qdel(H.gloves) + qdel(H.head) + qdel(H.shoes) + qdel(H.wear_id) + qdel(H.wear_suit) + qdel(H.w_uniform) - ticker.mode.equip_syndicate(current, telecrystals) + ticker.mode.equip_syndicate(current, telecrystals) if (nuke_code) store_memory("Syndicate Nuclear Bomb Code: [nuke_code]", 0, 0) current << "The nuclear authorization code is: [nuke_code]" + else + var/obj/machinery/nuclearbomb/nuke = locate("syndienuke") in nuke_list + if(nuke) + store_memory("Syndicate Nuclear Bomb Code: [nuke.r_code]", 0, 0) + current << "The nuclear authorization code is: nuke.r_code" + else + current << "You were not provided with a nuclear code. Trying asking your team leader or contacting syndicate command.
    " if (leader) ticker.mode.prepare_syndicate_leader(src,nuke_code) @@ -1393,7 +1346,6 @@ ticker.mode.wizards += src special_role = "Wizard" assigned_role = "Wizard" - //ticker.mode.learn_basic_spells(current) if(!wizardstart.len) current.loc = pick(latejoin) current << "HOT INSERTION, GO GO GO" @@ -1401,8 +1353,6 @@ current.loc = pick(wizardstart) ticker.mode.equip_wizard(current) - for(var/obj/item/weapon/spellbook/S in current.contents) - S.op = 0 ticker.mode.name_wizard(current) ticker.mode.forge_wizard_objectives(src) ticker.mode.greet_wizard(src) @@ -1421,9 +1371,7 @@ else var/explanation = "Summon Nar-Sie via the use of the appropriate rune (Hell join self). It will only work if nine cultists stand on and around it." current << "Objective #1: [explanation]" - current.memory += "Objective #1: [explanation]
    " - current << "The convert rune is join blood self" - current.memory += "The convert rune is join blood self
    " + memory += "Objective #1: [explanation]
    " var/mob/living/carbon/human/H = current if (!ticker.mode.equip_cultist(current)) @@ -1517,119 +1465,6 @@ L = agent_landmarks[team] H.loc = L.loc - -/datum/mind/proc/make_Handofgod_follower(colour) - . = 0 - switch(colour) - if("red") - //Remove old allegiances - if(src in ticker.mode.blue_deity_followers || src in ticker.mode.blue_deity_prophets) - current << "You are no longer a member of the Blue cult!" - - ticker.mode.blue_deity_followers -= src - ticker.mode.blue_deity_prophets -= src - current.faction |= "red god" - current.faction -= "blue god" - - if(src in ticker.mode.red_deity_prophets) - current << "You have lost the connection with your deity, but you still believe in their grand design, You are no longer a prophet!" - ticker.mode.red_deity_prophets -= src - - ticker.mode.red_deity_followers |= src - current << "You are now a follower of the red cult's god!" - - special_role = "Hand of God: Red Follower" - . = 1 - if("blue") - //Remove old allegiances - if(src in ticker.mode.red_deity_followers || src in ticker.mode.red_deity_prophets) - current << "You are no longer a member of the Red cult!" - - ticker.mode.red_deity_followers -= src - ticker.mode.red_deity_prophets -= src - current.faction -= "red god" - current.faction |= "blue god" - - if(src in ticker.mode.blue_deity_prophets) - current << "You have lost the connection with your deity, but you still believe in their grand design, You are no longer a prophet!" - ticker.mode.blue_deity_prophets -= src - - ticker.mode.blue_deity_followers |= src - current << "You are now a follower of the blue cult's god!" - - special_role = "Hand of God: Blue Follower" - . = 1 - else - return 0 - - ticker.mode.update_hog_icons_removed(src,"red") - ticker.mode.update_hog_icons_removed(src,"blue") - //ticker.mode.greet_hog_follower(src,colour) - ticker.mode.update_hog_icons_added(src, colour) - -/datum/mind/proc/make_Handofgod_prophet(colour) - . = 0 - switch(colour) - if("red") - //Remove old allegiances - - if(src in ticker.mode.blue_deity_followers || src in ticker.mode.blue_deity_prophets) - current << "You are no longer a member of the Blue cult!" - current.faction -= "blue god" - current.faction |= "red god" - - ticker.mode.blue_deity_followers -= src - ticker.mode.blue_deity_prophets -= src - ticker.mode.red_deity_followers -= src - - ticker.mode.red_deity_prophets |= src - current << "You are now a prophet of the red cult's god!" - - special_role = "Hand of God: Red Prophet" - . = 1 - if("blue") - //Remove old allegiances - - if(src in ticker.mode.red_deity_followers || src in ticker.mode.red_deity_prophets) - current << "You are no longer a member of the Red cult!" - current.faction -= "red god" - current.faction |= "blue god" - - ticker.mode.red_deity_followers -= src - ticker.mode.red_deity_prophets -= src - ticker.mode.blue_deity_followers -= src - - ticker.mode.blue_deity_prophets |= src - current << "You are now a prophet of the blue cult's god!" - - special_role = "Hand of God: Blue Prophet" - . = 1 - - else - return 0 - - ticker.mode.update_hog_icons_removed(src,"red") - ticker.mode.update_hog_icons_removed(src,"blue") - ticker.mode.greet_hog_follower(src,colour) - ticker.mode.update_hog_icons_added(src, colour) - -/datum/mind/proc/make_Handofgod_god(colour) - switch(colour) - if("red") - current.become_god("red") - ticker.mode.add_god(src,"red") - if("blue") - current.become_god("blue") - ticker.mode.add_god(src,"blue") - else - return 0 - ticker.mode.forge_deity_objectives(src) - ticker.mode.remove_hog_follower(src,0) - ticker.mode.update_hog_icons_added(src, colour) -// ticker.mode.greet_hog_follower(src,colour) - return 1 - - /datum/mind/proc/AddSpell(obj/effect/proc_holder/spell/S) spell_list += S S.action.Grant(current) @@ -1698,53 +1533,24 @@ else spawn(0) throw EXCEPTION("mind_initialize(): No ticker ready") - if(!mind.name) mind.name = real_name + if(!mind.name) + mind.name = real_name mind.current = src +/mob/living/carbon/mind_initialize() + ..() + last_mind = mind + //HUMAN /mob/living/carbon/human/mind_initialize() ..() - if(!mind.assigned_role) mind.assigned_role = "Assistant" //defualt - -//MONKEY -/mob/living/carbon/monkey/mind_initialize() - ..() - -//slime -/mob/living/simple_animal/slime/mind_initialize() - ..() - mind.special_role = "slime" - mind.assigned_role = "slime" + if(!mind.assigned_role) + mind.assigned_role = "Assistant" //defualt //XENO /mob/living/carbon/alien/mind_initialize() ..() mind.special_role = "Alien" - mind.assigned_role = "Alien" - //XENO HUMANOID -/mob/living/carbon/alien/humanoid/royal/queen/mind_initialize() - ..() - mind.special_role = "Queen" - -/mob/living/carbon/alien/humanoid/royal/praetorian/mind_initialize() - ..() - mind.special_role = "Praetorian" - -/mob/living/carbon/alien/humanoid/hunter/mind_initialize() - ..() - mind.special_role = "Hunter" - -/mob/living/carbon/alien/humanoid/drone/mind_initialize() - ..() - mind.special_role = "Drone" - -/mob/living/carbon/alien/humanoid/sentinel/mind_initialize() - ..() - mind.special_role = "Sentinel" - //XENO LARVA -/mob/living/carbon/alien/larva/mind_initialize() - ..() - mind.special_role = "Larva" //AI /mob/living/silicon/ai/mind_initialize() @@ -1761,29 +1567,3 @@ ..() mind.assigned_role = "pAI" mind.special_role = "" - -//BLOB -/mob/camera/blob/mind_initialize() - ..() - mind.special_role = "Blob" - -//Animals -/mob/living/simple_animal/mind_initialize() - ..() - mind.assigned_role = "Animal" - mind.special_role = "Animal" - -/mob/living/simple_animal/pet/dog/corgi/mind_initialize() - ..() - mind.assigned_role = "Corgi" - mind.special_role = "Corgi" - -/mob/living/simple_animal/shade/mind_initialize() - ..() - mind.assigned_role = "Shade" - mind.special_role = "Shade" - -/mob/living/simple_animal/hostile/construct/mind_initialize() - ..() - mind.assigned_role = "[initial(name)]" - mind.special_role = "Cultist" diff --git a/code/datums/mutations.dm b/code/datums/mutations.dm index 6dbe877d83..91f7d96292 100644 --- a/code/datums/mutations.dm +++ b/code/datums/mutations.dm @@ -1,6 +1,6 @@ /var/global/list/mutations_list = list() -/datum/mutation/ +/datum/mutation var/name @@ -48,9 +48,9 @@ if(hex2num(getblock(se_string, dna_block)) >= lowest_value) return 1 -/datum/mutation/human/proc/check_block(mob/living/carbon/human/owner) +/datum/mutation/human/proc/check_block(mob/living/carbon/human/owner, force_powers=0) if(check_block_string(owner.dna.struc_enzymes)) - if(prob(get_chance)) + if(prob(get_chance)||force_powers) . = on_acquiring(owner) else . = on_losing(owner) @@ -79,7 +79,7 @@ /datum/mutation/human/proc/get_visual_indicator(mob/living/carbon/human/owner) return -/datum/mutation/human/proc/on_attack_hand(mob/living/carbon/human/owner, atom/target) +/datum/mutation/human/proc/on_attack_hand(mob/living/carbon/human/owner, atom/target, proximity) return /datum/mutation/human/proc/on_ranged_attack(mob/living/carbon/human/owner, atom/target) @@ -130,8 +130,9 @@ owner.status_flags &= ~status owner.update_body_parts() -/datum/mutation/human/hulk/on_attack_hand(mob/living/carbon/human/owner, atom/target) - return target.attack_hulk(owner) +/datum/mutation/human/hulk/on_attack_hand(mob/living/carbon/human/owner, atom/target, proximity) + if(proximity) //no telekinetic hulk attack + return target.attack_hulk(owner) /datum/mutation/human/hulk/on_life(mob/living/carbon/human/owner) if(owner.health < 0) @@ -187,7 +188,7 @@ /datum/mutation/human/cold_resistance/on_life(mob/living/carbon/human/owner) if(owner.getFireLoss()) if(prob(1)) - owner.heal_organ_damage(0,1) //Is this really needed? + owner.heal_bodypart_damage(0,1) //Is this really needed? /datum/mutation/human/x_ray @@ -236,7 +237,7 @@ owner.visible_message("[owner] starts having a seizure!", "You have a seizure!") owner.Paralyse(10) owner.Jitter(1000) - addtimer(src, "jitter_less", 90, FALSE, owner) + addtimer(src, "jitter_less", 90, TIMER_NORMAL, owner) /datum/mutation/human/epilepsy/proc/jitter_less(mob/living/carbon/human/owner) if(owner) @@ -252,11 +253,11 @@ var/mob/new_mob if(prob(95)) if(prob(50)) - new_mob = randmutb(owner) + new_mob = owner.randmutb() else - new_mob = randmuti(owner) + new_mob = owner.randmuti() else - new_mob = randmutg(owner) + new_mob = owner.randmutg() if(new_mob && ismob(new_mob)) owner = new_mob . = owner @@ -376,6 +377,9 @@ time_coeff = 2 /datum/mutation/human/race/on_acquiring(mob/living/carbon/human/owner) + if(owner.has_brain_worms()) + owner << "You feel something strongly clinging to your humanity!" + return if(..()) return . = owner.monkeyize(TR_KEEPITEMS | TR_KEEPIMPLANTS | TR_KEEPORGANS | TR_KEEPDAMAGE | TR_KEEPVIRUS | TR_KEEPSE) @@ -531,6 +535,10 @@ /datum/mutation/human/swedish/say_mod(message) if(message) message = replacetext(message,"w","v") + message = replacetext(message,"j","y") + message = replacetext(message,"a",pick("å","ä","æ","a")) + message = replacetext(message,"bo","bjo") + message = replacetext(message,"o",pick("ö","ø","o")) if(prob(30)) message += " Bork[pick("",", bork",", bork, bork")]!" return message @@ -616,7 +624,7 @@ return visual_indicators[1] /datum/mutation/human/laser_eyes/on_ranged_attack(mob/living/carbon/human/owner, atom/target) - if(owner.a_intent == "harm") + if(owner.a_intent == INTENT_HARM) owner.LaserEyes(target) diff --git a/code/datums/outfit.dm b/code/datums/outfit.dm index 96b0a27e83..1bac2aff65 100644 --- a/code/datums/outfit.dm +++ b/code/datums/outfit.dm @@ -9,6 +9,7 @@ var/shoes = null var/head = null var/mask = null + var/neck = null var/ears = null var/glasses = null var/id = null @@ -47,6 +48,8 @@ H.equip_to_slot_or_del(new head(H),slot_head) if(mask) H.equip_to_slot_or_del(new mask(H),slot_wear_mask) + if(neck) + H.equip_to_slot_or_del(new neck(H),slot_neck) if(ears) H.equip_to_slot_or_del(new ears(H),slot_ears) if(glasses) @@ -72,4 +75,5 @@ post_equip(H, visualsOnly) + H.update_body() return 1 \ No newline at end of file diff --git a/code/datums/recipe.dm b/code/datums/recipe.dm index 97df255e38..bfe1a8f066 100644 --- a/code/datums/recipe.dm +++ b/code/datums/recipe.dm @@ -34,7 +34,7 @@ * */ /datum/recipe - var/list/reagents // example: = list("berryjuice" = 5) // do not list same reagent twice + var/list/reagents_list // example: = list("berryjuice" = 5) // do not list same reagent twice var/list/items // example: =list(/obj/item/weapon/crowbar, /obj/item/weapon/welder) // place /foo/bar before /foo var/result //example: = /obj/item/weapon/reagent_containers/food/snacks/donut var/time = 100 // 1/10 part of second @@ -49,7 +49,7 @@ . = -1 else return 0 - if ((reagents?(reagents.len):(0)) < avail_reagents.reagent_list.len) + if ((reagents_list?(reagents_list.len):(0)) < avail_reagents.reagent_list.len) return -1 return . @@ -112,7 +112,7 @@ . = possible_recipes[1] for (var/datum/recipe/recipe in possible_recipes) var/N_i = (recipe.items)?(recipe.items.len):0 - var/N_r = (recipe.reagents)?(recipe.reagents.len):0 + var/N_r = (recipe.reagents_list)?(recipe.reagents_list.len):0 if (N_i > i_count || (N_i== i_count && N_r > r_count )) r_count = N_r i_count = N_i diff --git a/code/datums/ruins.dm b/code/datums/ruins.dm index d9c2ca348d..1e4f0dbdfa 100644 --- a/code/datums/ruins.dm +++ b/code/datums/ruins.dm @@ -2,10 +2,9 @@ //name = "A Chest of Doubloons" name = null var/id = null // For blacklisting purposes, all ruins need an id - var/description = "In the middle of a clearing in the rockface, there's a \ - chest filled with gold coins with Spanish engravings. How is there a \ - wooden container filled with 18th century coinage in the middle of a \ - lavawracked hellscape? It is clearly a mystery." + var/description = "In the middle of a clearing in the rockface, there's a chest filled with gold coins with Spanish engravings. \ + How is there a wooden container filled with 18th century coinage in the middle of a lavawracked hellscape? \ + It is clearly a mystery." var/cost = null var/allow_duplicates = TRUE diff --git a/code/datums/ruins/lavaland.dm b/code/datums/ruins/lavaland.dm index d73a20297d..3674680eb2 100644 --- a/code/datums/ruins/lavaland.dm +++ b/code/datums/ruins/lavaland.dm @@ -8,18 +8,15 @@ /datum/map_template/ruin/lavaland/biodome/beach name = "Biodome Beach" id = "biodome-beach" - description = "Seemingly plucked from a tropical destination, this beach \ - is calm and cool, with the salty waves roaring softly in the \ - background. Comes with a rustic wooden bar and suicidal bartender." + description = "Seemingly plucked from a tropical destination, this beach is calm and cool, with the salty waves roaring softly in the background. \ + Comes with a rustic wooden bar and suicidal bartender." suffix = "lavaland_biodome_beach.dmm" /datum/map_template/ruin/lavaland/biodome/winter name = "Biodome Winter" id = "biodome-winter" - description = "For those getaways where you want to get back to nature, \ - but you don't want to leave the fortified military compound where you \ - spend your days. Includes a unique(*) laser pistol display case, \ - and the recently introduced I.C.E(tm)." + description = "For those getaways where you want to get back to nature, but you don't want to leave the fortified military compound where you spend your days. \ + Includes a unique(*) laser pistol display case, and the recently introduced I.C.E(tm)." suffix = "lavaland_surface_biodome_winter.dmm" /datum/map_template/ruin/lavaland/biodome/clown @@ -31,8 +28,7 @@ /datum/map_template/ruin/lavaland/cube name = "The Wishgranter Cube" id = "wishgranter-cube" - description = "Nothing good can come from this. Learn from their mistakes \ - and turn around." + description = "Nothing good can come from this. Learn from their mistakes and turn around." suffix = "lavaland_surface_cube.dmm" cost = 10 allow_duplicates = FALSE @@ -40,10 +36,8 @@ /datum/map_template/ruin/lavaland/prisoners name = "Prisoner Crash" id = "prisoner-crash" - description = "This incredibly high security shuttle clearly didn't have \ - 'avoiding lavafilled hellscapes' as a design priority. As such, it \ - has crashed, waking the prisoners from their cryostasis, and setting \ - them loose on the wastes. If they live long enough, that is." + description = "This incredibly high security shuttle clearly didn't have 'avoiding lavafilled hellscapes' as a design priority. \ + As such, it has crashed, waking the prisoners from their cryostasis, and setting them loose on the wastes. If they live long enough, that is." suffix = "lavaland_surface_prisoner_crash.dmm" cost = 15 allow_duplicates = FALSE @@ -51,31 +45,33 @@ /datum/map_template/ruin/lavaland/seed_vault name = "Seed Vault" id = "seed-vault" - description = "The creators of these vaults were a highly advanced and \ - benevolent race, and launched many into the stars, hoping to aid \ - fledgling civilizations. However, all the inhabitants seem to do is \ - grow drugs and guns." + description = "The creators of these vaults were a highly advanced and benevolent race, and launched many into the stars, hoping to aid fledgling civilizations. \ + However, all the inhabitants seem to do is grow drugs and guns." suffix = "lavaland_surface_seed_vault.dmm" cost = 10 /datum/map_template/ruin/lavaland/ash_walker name = "Ash Walker Nest" id = "ash-walker" - description = "A race of unbreathing lizards live here, that run faster \ - than a human can, worship a broken dead city, and are capable of \ - reproducing by something involving tentacles? Probably best to \ - stay clear." + description = "A race of unbreathing lizards live here, that run faster than a human can, worship a broken dead city, and are capable of reproducing by something involving tentacles? \ + Probably best to stay clear." suffix = "lavaland_surface_ash_walker1.dmm" cost = 20 allow_duplicates = FALSE +/datum/map_template/ruin/lavaland/syndicate_base + name = "Syndicate Lava Base" + id = "lava-base" + description = "A secret base researching illegal bioweapons, it is closely guarded by an elite team of syndicate agents." + suffix = "lavaland_surface_syndicate_base1.dmm" + cost = 20 + allow_duplicates = FALSE + /datum/map_template/ruin/lavaland/free_golem name = "Free Golem Ship" id = "golem-ship" - description = "Lumbering humanoids, made out of precious metals, move \ - inside this ship. They frequently leave to mine more minerals, \ - which they somehow turn into more of them. Seem very intent on \ - research and individual liberty, and also geology based naming?" + description = "Lumbering humanoids, made out of precious metals, move inside this ship. They frequently leave to mine more minerals, which they somehow turn into more of them. \ + Seem very intent on research and individual liberty, and also geology based naming?" cost = 20 suffix = "lavaland_surface_golem_ship.dmm" allow_duplicates = FALSE @@ -83,14 +79,14 @@ /datum/map_template/ruin/lavaland/animal_hospital name = "Animal Hospital" id = "animal-hospital" - description = "Rats with cancer do not live very long. And the ones that \ - wake up from cryostasis seem to commit suicide out of boredom." + description = "Rats with cancer do not live very long. And the ones that wake up from cryostasis seem to commit suicide out of boredom." cost = 5 suffix = "lavaland_surface_animal_hospital.dmm" allow_duplicates = FALSE /datum/map_template/ruin/lavaland/sin cost = 10 + allow_duplicates = FALSE /datum/map_template/ruin/lavaland/sin/envy name = "Ruin of Envy" @@ -124,70 +120,55 @@ suffix = "lavaland_surface_sloth.dmm" // Generates nothing but atmos runtimes and salt cost = 0 - allow_duplicates = FALSE -/datum/map_template/ruin/lavaland/ato - name = "Automated Trade Outpost" - id = "ato" - description = "A sign at the front says 'Stealing is bad.'" - suffix = "lavaland_surface_automated_trade_outpost.dmm" - cost = 5 +/datum/map_template/ruin/lavaland/hierophant + name = "Hierophant's Arena" + id = "hierophant" + description = "A huge fucking bird priest awaits you in this arena." + suffix = "lavaland_surface_hierophant.dmm" + cost = 0 + allow_duplicates = FALSE /datum/map_template/ruin/lavaland/ufo_crash name = "UFO Crash" id = "ufo-crash" - description = "Turns out that keeping your abductees unconcious is really \ - important. Who knew?" + description = "Turns out that keeping your abductees unconcious is really important. Who knew?" suffix = "lavaland_surface_ufo_crash.dmm" cost = 5 /datum/map_template/ruin/lavaland/ww_vault name = "Wishgranter Vault" id = "ww-vault" - description = "Scrawled on the large double doors is both a message and a \ - warning: 'meat grinder requires sacri...'. You're not so sure about \ - this anymore." + description = "Scrawled on the large double doors is both a message and a warning: 'meat grinder requires sacri...'. You're not so sure about this anymore." suffix = "lavaland_surface_ww_vault.dmm" cost = 20 /datum/map_template/ruin/lavaland/xeno_nest name = "Xenomorph Nest" id = "xeno-nest" - description = "These xenomorphs got bored of horrifically slaughtering \ - people on space stations, and have settled down on a nice lava filled \ - hellscape to focus on what's really important in life. Quality memes." + description = "These xenomorphs got bored of horrifically slaughtering people on space stations, and have settled down on a nice lava filled hellscape to focus on what's really important in life. \ + Quality memes." suffix = "lavaland_surface_xeno_nest.dmm" cost = 20 /datum/map_template/ruin/lavaland/fountain name = "Fountain Hall" id = "fountain" - description = "The fountain has a warning on the side. DANGER: May have \ - undeclared side effects that only become obvious when implemented." + description = "The fountain has a warning on the side. DANGER: May have undeclared side effects that only become obvious when implemented." suffix = "lavaland_surface_fountain_hall.dmm" cost = 5 /datum/map_template/ruin/lavaland/survivalcapsule name = "Survival Capsule Ruins" id = "survivalcapsule" - description = "What was once sanctuary to the common miner, \ - is now their tomb." + description = "What was once sanctuary to the common miner, is now their tomb." suffix = "lavaland_surface_survivalpod.dmm" cost = 5 -/datum/map_template/ruin/lavaland/tomb - name = "Strange Outpost" - id = "tomb" - description = "A strange tomb, housing the dead of whatever strange civilization \ - lived here before. You swear you hear rattling coming from the inside." - suffix = "lavaland_surface_tomb.dmm" - cost = 10 - /datum/map_template/ruin/lavaland/pizza name = "Ruined Pizza Party" id = "pizza" - description = "Little Timmy's birthday pizza-bash took a turn for the worse \ - when a bluespace anomaly passed by." + description = "Little Timmy's birthday pizza-bash took a turn for the worse when a bluespace anomaly passed by." suffix = "lavaland_surface_pizzaparty.dmm" allow_duplicates = FALSE cost = 5 @@ -195,8 +176,7 @@ /datum/map_template/ruin/lavaland/cultaltar name = "Summoning Ritual" id = "cultaltar" - description = "A place of vile worship, the scrawling of blood in the middle glowing eerily.\ - A demonic laugh echoes throughout the caverns" + description = "A place of vile worship, the scrawling of blood in the middle glowing eerily. A demonic laugh echoes throughout the caverns" suffix = "lavaland_surface_cultaltar.dmm" allow_duplicates = FALSE cost = 10 @@ -209,10 +189,10 @@ allow_duplicates = FALSE cost = 10 -/datum/map_template/ruin/lavaland/cult_shuttle - name = "Crashed Cult Hive" - id = "cultshuttle" - description = "A once-bustling home for zealots of the blood-worshiping type. Turns out practicing \ - dark rituals mid-jump isn't the best idea." - suffix = "lavaland_surface_cultcrash.dmm" - cost = 10 \ No newline at end of file +/datum/map_template/ruin/lavaland/swarmer_boss + name = "Crashed Shuttle" + id = "swarmerboss" + description = "A Syndicate shuttle had an unfortunate stowaway..." + suffix = "lavaland_surface_swarmer_crash.dmm" + allow_duplicates = FALSE + cost = 20 \ No newline at end of file diff --git a/code/datums/ruins/space.dm b/code/datums/ruins/space.dm index ca9e8c84aa..5ae3762a00 100644 --- a/code/datums/ruins/space.dm +++ b/code/datums/ruins/space.dm @@ -7,10 +7,8 @@ id = "zoo" suffix = "abandonedzoo.dmm" name = "Biological Storage Facility" - description = "In case society crumbles, we will be able to restore our \ - zoos to working order with the breeding stock kept in these 100% \ - secure and unbreachable storage facilities. At no point has anything \ - escaped. That's our story, and we're sticking to it." + description = "In case society crumbles, we will be able to restore our zoos to working order with the breeding stock kept in these 100% secure and unbreachable storage facilities. \ + At no point has anything escaped. That's our story, and we're sticking to it." /datum/map_template/ruin/space/asteroid1 id = "asteroid1" @@ -28,18 +26,14 @@ id = "asteroid3" suffix = "asteroid3.dmm" name = "Asteroid 3" - description = "This asteroid floating in space has no official \ - designation, because the scientist that discovered it deemed it \ - 'super dull'." + description = "This asteroid floating in space has no official designation, because the scientist that discovered it deemed it 'super dull'." /datum/map_template/ruin/space/asteroid4 id = "asteroid4" suffix = "asteroid4.dmm" name = "Asteroid 4" - description = "Nanotrasen Escape Pods have a 100%* success rate, and a \ - 99%* customer satisfaction rate. *Please note that these statistics, \ - are taken from pods that have successfully docked with a recovery \ - vessel." + description = "Nanotrasen Escape Pods have a 100%* success rate, and a 99%* customer satisfaction rate. \ + *Please note that these statistics, are taken from pods that have successfully docked with a recovery vessel." /datum/map_template/ruin/space/asteroid5 id = "asteroid5" @@ -51,19 +45,22 @@ id = "deep-storage" suffix = "deepstorage.dmm" name = "Survivalist Bunker" - description = "Assume the best, prepare for the worst. Generally, you \ - should do so by digging a three man heavily fortified bunker into \ - a giant unused asteroid. Then make it self sufficient, mask any \ - evidence of construction, hook it covertly into the \ - telecommunications network and hope for the best." + description = "Assume the best, prepare for the worst. Generally, you should do so by digging a three man heavily fortified bunker into a giant unused asteroid. \ + Then make it self sufficient, mask any evidence of construction, hook it covertly into the telecommunications network and hope for the best." + +/datum/map_template/ruin/space/bigderelict1 + id = "bigderelict1" + suffix = "bigderelict1.dmm" + name = "Derelict Tradepost" + description = "A once-bustling tradestation that handled imports and exports from nearby stations now lays eerily dormant. \ + The last received message was a distress call from one of the on-board officers, but we had no success in making contact again." /datum/map_template/ruin/space/derelict1 id = "derelict1" suffix = "derelict1.dmm" name = "Derelict 1" - description = "Nothing to see here citizen, move along, certainly no \ - xeno outbreaks on this piece of station debris. That purple stuff? \ - It's uh... station nectar. It's a top secret research installation." + description = "Nothing to see here citizen, move along, certainly no xeno outbreaks on this piece of station debris. That purple stuff? It's uh... station nectar. \ + It's a top secret research installation." /datum/map_template/ruin/space/derelict2 id = "derelict2" @@ -77,86 +74,97 @@ id = "derelict3" suffix = "derelict3.dmm" name = "Derelict 3" - description = "These hulks were once part of a larger structure, where \ - the three great \[REDACTED\] were forged." + description = "These hulks were once part of a larger structure, where the three great \[REDACTED\] were forged." /datum/map_template/ruin/space/derelict4 id = "derelict4" suffix = "derelict4.dmm" name = "Derelict 4" - description = "Centcom ferries have never crashed, will never crash, \ - there is no current investigation into a crashed ferry, and we \ - will not let Internal Affairs trample over high security information \ - in the name of this baseless witchhunt." + description = "Centcom ferries have never crashed, will never crash, there is no current investigation into a crashed ferry, and we will not let Internal Affairs trample over high security \ + information in the name of this baseless witchhunt." /datum/map_template/ruin/space/derelict5 id = "derelict5" suffix = "derelict5.dmm" name = "Derelict 5" - description = "The plan is, we put a whole bunch of crates full of \ - treasure in this disused warehouse, launch it into space, and then \ - ignore it. Forever." + description = "The plan is, we put a whole bunch of crates full of treasure in this disused warehouse, launch it into space, and then ignore it. Forever." /datum/map_template/ruin/space/derelict6 id = "derelict6" suffix = "derelict6.dmm" name = "Derelict 6" - description = "The hush-hush of Nanotrasen when it comes to stations seemingly vanishing off the radar is an interesting topic, \ - theories of nuclear destruction float about while Nanotrasen flat-out denies said stations ever existing." + description = "The hush-hush of Nanotrasen when it comes to stations seemingly vanishing off the radar is an interesting topic, theories of nuclear destruction float about while Nanotrasen \ + flat-out denies said stations ever existing." /datum/map_template/ruin/space/empty_shell id = "empty-shell" suffix = "emptyshell.dmm" name = "Empty Shell" - description = "Cosy, rural property availible for young professional \ - couple. Only twelve parsecs from the nearest hyperspace lane!" + description = "Cosy, rural property availible for young professional couple. Only twelve parsecs from the nearest hyperspace lane!" /datum/map_template/ruin/space/gas_the_lizards id = "gas-the-lizards" suffix = "gasthelizards.dmm" name = "Disposal Facility 17" - description = "Gas efficiency at 95.6%, fluid elimination at 96.2%. \ - Will require renewed supplies of 'carpet' before the end of the \ - quarter." + description = "Gas efficiency at 95.6%, fluid elimination at 96.2%. Will require renewed supplies of 'carpet' before the end of the quarter." /datum/map_template/ruin/space/intact_empty_ship id = "intact-empty-ship" suffix = "intactemptyship.dmm" name = "Authorship" - description = "Just somewhere quiet, where I can focus on my work with \ - no interruptions." + description = "Just somewhere quiet, where I can focus on my work with no interruptions." + +/datum/map_template/ruin/space/caravanambush + id = "space/caravanambush" + suffix = "caravanambush.dmm" + name = "Syndicate Ambush" + description = "A caravan route used by passing cargo freights has been ambushed by a salvage team manned by the syndicate. \ + The caravan managed to send off a distress message before being surrounded, their video feed cutting off as the sound of gunfire and a parrot was heard." + +/datum/map_template/ruin/space/originalcontent + id = "paperwizard" + suffix = "originalcontent.dmm" + name = "A Giant Ball of Paper in Space" + description = "Sightings of a giant wad of paper hurling through the depths of space have been recently reported by multiple outposts near this sector. \ + A giant wad of paper, really? Damn prank callers." /datum/map_template/ruin/space/mech_transport id = "mech-transport" suffix = "mechtransport.dmm" name = "CF Corsair" - description = "Well, when is it getting here? I have bills to pay; very \ - well-armed clients who want their shipments as soon as possible! I \ - don't care, just find it!" + description = "Well, when is it getting here? I have bills to pay; very well-armed clients who want their shipments as soon as possible! I don't care, just find it!" /datum/map_template/ruin/space/onehalf id = "onehalf" suffix = "onehalf.dmm" name = "DK Excavator 453" - description = "Based on the trace elements we've detected on the \ - gutted asteroids, we suspect that a mining ship using a restricted \ - engine is somewhere in the area. We'd like to request a patrol vessel \ - to investigate." + description = "Based on the trace elements we've detected on the gutted asteroids, we suspect that a mining ship using a restricted engine is somewhere in the area. \ + We'd like to request a patrol vessel to investigate." /datum/map_template/ruin/space/spacebar id = "spacebar" suffix = "spacebar.dmm" name = "The Rampant Golem and Yellow Hound" - description = "No questions asked. No shoes/foot protection, no service. \ - No tabs. No violence in the inside areas. That's it. Welcome to the \ - Rampant Golem and Yellow Hound. Can I take your order?" + description = "No questions asked. No shoes/foot protection, no service. No tabs. No violence in the inside areas. That's it. Welcome to the Rampant Golem and Yellow Hound. \ + Can I take your order?" + +/datum/map_template/ruin/space/spacehotel + id = "spacehotel" + suffix = "spacehotel.dmm" + name = "The Twin-Nexus Hotel" + description = "A interstellar hotel, where the weary spaceman can rest their head and relax, assured that the residental staff will not murder them in their sleep. Probably." /datum/map_template/ruin/space/turreted_outpost id = "turreted-outpost" suffix = "turretedoutpost.dmm" name = "Unnamed Turreted Outpost" - description = "We'd ask them to stop blaring that ruskiepop music, but \ - none of us are brave enough to go near those death turrets they have." + description = "We'd ask them to stop blaring that ruskiepop music, but none of us are brave enough to go near those death turrets they have." + +/datum/map_template/ruin/space/oldshuttle + id = "spaceman-origins" + suffix = "shuttlerelic.dmm" + name = "Strange Ship" + description = "A ship seemingly lost, drifting along the stars. This thing looks like it belongs in ancient times." /datum/map_template/ruin/space/way_home id = "way-home" @@ -168,81 +176,80 @@ id = "djstation" suffix = "djstation.dmm" name = "DJ Station" - description = "Until very recently this pirate radio station was used \ - to harangue local space stations over a variety of perceived \ - \"ethics violations\". It seems like someone finally got sick of \ - it, but the equipment still works." + description = "Until very recently this pirate radio station was used to harangue local space stations over a variety of perceived \"ethics violations\". \ + It seems like someone finally got sick of it, but the equipment still works." /datum/map_template/ruin/space/thederelict id = "thederelict" suffix = "thederelict.dmm" name = "Kosmicheskaya Stantsiya 13" - description = "The true fate of Kosmicheskaya Stantsiya 13 is an open \ - question to this day. Most corporations deny its existence, \ - for fear of questioning on what became of its crew." + description = "The true fate of Kosmicheskaya Stantsiya 13 is an open question to this day. Most corporations deny its existence, for fear of questioning on what became of its crew." /datum/map_template/ruin/space/abandonedteleporter id = "abandonedteleporter" suffix = "abandonedteleporter.dmm" name = "Abandoned Teleporter" - description = "In space construction the teleporter is often the \ - first system brought online. This lonely half built teleporter \ - is a sign of a proposed structure that for one reason or another \ - just never got built." + description = "In space construction the teleporter is often the first system brought online. \ + This lonely half built teleporter is a sign of a proposed structure that for one reason or another just never got built." /datum/map_template/ruin/space/crashedclownship id = "crashedclownship" suffix = "crashedclownship.dmm" name = "Crashed Clown Ship" - description = "For centuries the promise of a new clown homeworld \ - has been the siren call for countless clown vessels. Alas the \ - clown's lust for shinanagans means that successful voyages \ - are almost unheard of, with most vessels falling to hilarious \ - consequences almost immediately." + description = "For centuries the promise of a new clown homeworld has been the siren call for countless clown vessels. \ + Alas the clown's lust for shinanagans means that successful voyages are almost unheard of, with most vessels falling to hilarious consequences almost immediately." /datum/map_template/ruin/space/crashedship id = "crashedship" suffix = "crashedship.dmm" name = "Crashed Ship" - description = "Among civilian vessels the most common cause of \ - tragedy is lack of food. This ship was outfited with a \ - multitude of food generating features, then summarily ran \ - into an asteroid shortly after takeoff." + description = "Among civilian vessels the most common cause of tragedy is lack of food. \ + This ship was outfited with a multitude of food generating features, then summarily ran into an asteroid shortly after takeoff." /datum/map_template/ruin/space/listeningstation id = "listeningstation" suffix = "listeningstation.dmm" name = "Syndicate Listening Station" - description = "Listening stations form the backbone of the \ - syndicate's information gathering operations. Assignment to \ - these stations is dreaded by most agents, as it entails long \ - and lonely shifts listening to nearby stations chatter \ - incessently about the most meaningless things." + description = "Listening stations form the backbone of the syndicate's information gathering operations. \ + Assignment to these stations is dreaded by most agents, as it entails long and lonely shifts listening to nearby stations chatter incessently about the most meaningless things." /datum/map_template/ruin/space/oldAIsat id = "oldAIsat" suffix = "oldAIsat.dmm" name = "Abandoned Telecommunications Satellite" - description = "When the inspector told the employees that they \ - were all fired, and that their jobs \"could be done by \ - trained lizards anyway\", they reacted badly. This event and \ - others is the reason why Central always sends an ERT squad with \ - their competent inspectors. Incompetent inspectors are told \ - they can \"do it alone\" because they're \"that pro\". \ - Incompetent inspectors believe this." + description = "When the inspector told the employees that they were all fired, and that their jobs \"could be done by trained lizards anyway\", they reacted badly. \ + This event and others is the reason why Central always sends an ERT squad with their competent inspectors. Incompetent inspectors are told they can \"do it alone\" because they're \"that pro\". \ + Incompetent inspectors believe this." /datum/map_template/ruin/space/oldteleporter id = "oldteleporter" suffix = "oldteleporter.dmm" name = "Detached Teleporter" - description = "The structure of this surprisingly intact \ - teleporter suggests that it was once part of a larger structure, \ - but what remains of said structure, if anything, can \ - only be guessed at." + description = "The structure of this surprisingly intact teleporter suggests that it was once part of a larger structure, but what remains of said structure, if anything, can only be guessed at." -/datum/map_template/ruin/space/puzzle1 - id = "puzzle1" - suffix = "puzzle1.dmm" - name = "Strange Structure" - description = "A strange, free-floating structure that has been aimlessly drifting through the void \ - of space for who knows how long. Seems like whatever built it was really bored." \ No newline at end of file +/datum/map_template/ruin/space/vaporwave + id = "vaporwave" + suffix = "vaporwave.dmm" + name = "Aesthetic Outpost" + description = "Pause and remember-- You are unique.You are special. Every mistake, trial, and hardship has helped to sculpt your real beauty. \ + Stop hating yourself and start appreciating and loving yourself!" + +/datum/map_template/ruin/space/bus + id = "bus" + suffix = "bus.dmm" + name = "Waylaid Buses" + description = "There seems to be a pair of buses that pulled over for repairs. What were they doing..? Their shipment sure seems to be filled with a strange mix. \ + Anyway, it looks like some people tried to fix it up for a long time but didn't really get anywhere..." + + +/datum/map_template/ruin/space/miracle + id = "miracle" + suffix = "miracle.dmm" + name = "Ordinary Space Tile" + description = "Absolutely nothing strange going on here please move along, plenty more space to see right this way!" + +/datum/map_template/ruin/space/dragoon + id = "dragoon" + suffix = "dragoontomb.dmm" + name = "Sky Bulge Tomb" + description = "A tomb of a dice-loving dragoon in space. Turns out he got too good and jumped too high. Contains the Sky Bulge, which when thrown, warps the thrower." \ No newline at end of file diff --git a/code/datums/shuttles.dm b/code/datums/shuttles.dm index 48a433b485..911a37280a 100644 --- a/code/datums/shuttles.dm +++ b/code/datums/shuttles.dm @@ -6,8 +6,16 @@ var/shuttle_id var/description + var/prerequisites var/admin_notes + var/credit_cost = INFINITY + var/can_be_bought = TRUE + + +/datum/map_template/shuttle/proc/prerequisites_met() + return TRUE + /datum/map_template/shuttle/New() shuttle_id = "[port_id]_[suffix]" mappath = "[prefix][shuttle_id].dmm" @@ -32,128 +40,137 @@ /datum/map_template/shuttle/emergency/airless suffix = "airless" - name = "(Shuttle Under Construction)" - description = "The documentation hasn't been finished yet for this \ - shuttle.\n\ - In case of emergency: Break glass." + name = "Build your own shuttle kit" + description = "Save money by building your own shuttle! The chassis will dock upon purchase, but launch will have to be authorized as usual via shuttle call. Interior and atmosphere not included." admin_notes = "No brig, no medical facilities, no air." + credit_cost = -7500 /datum/map_template/shuttle/emergency/asteroid suffix = "asteroid" - name = "Asteroid emergency shuttle" + name = "Asteroid Station Emergency Shuttle" + description = "A respectable mid-sized shuttle that first saw service shuttling Nanotrasen crew to and from their asteroid belt embedded facilities." + credit_cost = 3000 /datum/map_template/shuttle/emergency/bar suffix = "bar" name = "The Emergency Escape Bar" - description = "Features include sentient bar staff (a Bardrone and a \ - Barmaid), bathroom, a quality lounge for the heads, and a \ - large gathering table." - admin_notes = "Bardrone and Barmaid are GODMODE, will be automatically \ - sentienced by the fun balloon at 60 seconds before arrival. Has \ - medical facilities." + description = "Features include sentient bar staff (a Bardrone and a Barmaid), bathroom, a quality lounge for the heads, and a large gathering table." + admin_notes = "Bardrone and Barmaid are GODMODE, will be automatically sentienced by the fun balloon at 60 seconds before arrival. \ + Has medical facilities." + credit_cost = 5000 + +/datum/map_template/shuttle/emergency/meteor + suffix = "meteor" + name = "An Asteroid With Engines Strapped To It" + description = "A hollowed out asteroid with engines strapped to it. Due to its size and difficulty in steering it, this shuttle may damage the docking area." + admin_notes = "This shuttle will likely crush escape, killing anyone there." + credit_cost = -5000 + +/datum/map_template/shuttle/emergency/luxury + suffix = "luxury" + name = "Luxury Shuttle" + description = "A luxurious golden shuttle complete with an indoor swimming pool. Each crewmember wishing to board must bring 500 credits, payable in cash and mineral coin." + admin_notes = "Due to the limited space for non paying crew, this shuttle may cause a riot." + credit_cost = 10000 /datum/map_template/shuttle/emergency/birdboat suffix = "birdboat" - name = "Birdboat emergency shuttle" + name = "Birdboat Station Emergency Shuttle" + description = "Though a little on the small side, this shuttle is feature complete, which is more than can be said for the pattern of station it was commissioned for." + credit_cost = 1000 /datum/map_template/shuttle/emergency/box suffix = "box" - name = "Box emergency shuttle" + name = "Box Station Emergency Shuttle" + credit_cost = 2000 + description = "The gold standard in emergency exfiltration, this tried and true design is equipped with everything the crew needs for a safe flight home." /datum/map_template/shuttle/emergency/clown suffix = "clown" name = "Snappop(tm)!" - description = "Hey kids and grownups! Are you bored of DULL and TEDIOUS \ - shuttle journeys after you're evacuating for probably BORING reasons. \ - Well then order the Snappop(tm) today! We've got fun activities for \ - everyone, an all access cockpit, and no boring security brig! Boo! \ - Play dress up with your friends! Collect all the bedsheets before \ - your neighbour does! Check if the AI is watching you with our patent \ - pending \"Peeping Tom AI Multitool Detector\" or PEEEEEETUR for \ - short. Have a fun ride!" - admin_notes = "Brig is replaced by anchored greentext book surrounded by \ - lavaland chasms, stationside door has been removed to prevent \ - accidental dropping. No brig." + description = "Hey kids and grownups! \ + Are you bored of DULL and TEDIOUS shuttle journeys after you're evacuating for probably BORING reasons. Well then order the Snappop(tm) today! \ + We've got fun activities for everyone, an all access cockpit, and no boring security brig! Boo! Play dress up with your friends! \ + Collect all the bedsheets before your neighbour does! Check if the AI is watching you with our patent pending \"Peeping Tom AI Multitool Detector\" or PEEEEEETUR for short. \ + Have a fun ride!" + admin_notes = "Brig is replaced by anchored greentext book surrounded by lavaland chasms, stationside door has been removed to prevent accidental dropping. No brig." + credit_cost = 8000 /datum/map_template/shuttle/emergency/cramped suffix = "cramped" name = "Secure Transport Vessel 5 (STV5)" - description = "Well, looks like Centcomm only had this ship in the area, \ - they probably weren't expecting you to need evac for a while. \ - Probably best if you don't rifle around in whatever equipment they \ - were transporting. I hope you're friendly with your coworkers, \ - because there is very little space in this thing.\n\ - \n\ - Contains contraband armory guns, maintenance loot, and abandoned \ - crates!" - admin_notes = "Due to origin as a solo piloted secure vessel, has an \ - active GPS onboard labeled STV5." + description = "Well, looks like Centcomm only had this ship in the area, they probably weren't expecting you to need evac for a while. \ + Probably best if you don't rifle around in whatever equipment they were transporting. I hope you're friendly with your coworkers, because there is very little space in this thing.\n\ + \n\ + Contains contraband armory guns, maintenance loot, and abandoned crates!" + admin_notes = "Due to origin as a solo piloted secure vessel, has an active GPS onboard labeled STV5." + credit_cost = -7500 /datum/map_template/shuttle/emergency/meta suffix = "meta" - name = "Meta emergency shuttle" + name = "Meta Station Emergency Shuttle" + credit_cost = 4000 + description = "A fairly standard shuttle, though larger and slightly better equipped than the Box Station variant." /datum/map_template/shuttle/emergency/mini suffix = "mini" - name = "Mini emergency shuttle" + name = "Ministation emergency shuttle" + credit_cost = 1000 + description = "Despite it's namesake, this shuttle is actually only slightly smaller than standard, and still complete with a brig and medbay." + +/datum/map_template/shuttle/emergency/scrapheap + suffix = "scrapheap" + name = "Standby Evacuation Vessel \"Scrapheap Challenge\"" + credit_cost = -1000 + description = "Due to a lack of functional emergency shuttles, we bought this second hand from a scrapyard and pressed it into service. Please do not lean to heavily on the exterior windows, they are fragile." + admin_notes = "An abomination with no functional medbay, sections missing, and some very fragile windows. Surprisingly airtight." /datum/map_template/shuttle/emergency/narnar suffix = "narnar" name = "Shuttle 667" - description = "Looks like this shuttle may have wandered into the \ - darkness between the stars on route to the station. Let's not think \ - too hard about where all the bodies came from." - admin_notes = "Contains real cult ruins, mob eyeballs, and inactive \ - constructs. Cult mobs will automatically be sentienced by fun \ - balloon. Cloning pods in 'medbay' area are showcases and \ - nonfunctional." + description = "Looks like this shuttle may have wandered into the darkness between the stars on route to the station. Let's not think too hard about where all the bodies came from." + admin_notes = "Contains real cult ruins, mob eyeballs, and inactive constructs. Cult mobs will automatically be sentienced by fun balloon. \ + Cloning pods in 'medbay' area are showcases and nonfunctional." + +/datum/map_template/shuttle/emergency/pubby + suffix = "pubby" + name = "Pubby Station Emergency Shuttle" + description = "A small, but feature complete shuttle. It boasts a card table to keep crew members occupied on the long flight home." + credit_cost = 1000 /datum/map_template/shuttle/emergency/supermatter suffix = "supermatter" name = "Hyperfractal Gigashuttle" description = "\"I dunno, this seems kinda needlessly complicated.\"\n\ - \"This shuttle has very a very high safety record, according to \ - Centcom Officer Cadet Yins.\"\n\ - \"Are you sure?\"\n\ - \"Yes, it has a safety record of N-A-N, which is apparently \ - larger than 100%.\"" - admin_notes = "Supermatter that spawns on shuttle is special anchored \ - 'hugbox' supermatter that cannot take damage and does not take in \ - or emit gas. Outside of admin intervention, it cannot explode. \ - It does, however, still dust anything on contact, emits high levels \ - of radiation, and induce hallucinations in anyone looking at it \ - without protective goggles. Emitters spawn powered on, expect \ - admin notices, they are harmless." + \"This shuttle has very a very high safety record, according to Centcom Officer Cadet Yins.\"\n\ + \"Are you sure?\"\n\ + \"Yes, it has a safety record of N-A-N, which is apparently larger than 100%.\"" + admin_notes = "Supermatter that spawns on shuttle is special anchored 'hugbox' supermatter that cannot take damage and does not take in or emit gas. \ + Outside of admin intervention, it cannot explode. \ + It does, however, still dust anything on contact, emits high levels of radiation, and induce hallucinations in anyone looking at it without protective goggles. \ + Emitters spawn powered on, expect admin notices, they are harmless." /datum/map_template/shuttle/emergency/imfedupwiththisworld suffix = "imfedupwiththisworld" name = "Oh, Hi Daniel" - description = "How was space work today? \ - Oh, pretty good. We got a new space station and the company will make a lot of money. \ - What space station? \ - I cannot tell you; it's space confidential. \ - Aw, come space on. Why not? \ - No, I can't. Anyway, how is your space roleplay life?" + description = "How was space work today? Oh, pretty good. We got a new space station and the company will make a lot of money. What space station? I cannot tell you; it's space confidential. \ + Aw, come space on. Why not? No, I can't. Anyway, how is your space roleplay life?" + credit_cost = -5000 /datum/map_template/shuttle/emergency/goon suffix = "goon" name = "NES Port" - description = "The Nanotrasen Emergency Shuttle Port(NES Port for short) \ - is a shuttle used at other less known nanotrasen facilities \ - and has a more open inside for larger crowds." + description = "The Nanotrasen Emergency Shuttle Port(NES Port for short) is a shuttle used at other less known nanotrasen facilities and has a more open inside for larger crowds." + credit_cost = 3000 /datum/map_template/shuttle/emergency/wabbajack suffix = "wabbajack" name = "NT Lepton Violet" - description = "The research team based on this vessel went missing one \ - day, and no amount of investigation could discover what happened to \ - them. The only occupants were a number of dead rodents, who appeared to \ - have clawed each other to death. Needless to say, no engineering team \ - wanted to go near the thing, and it's only being used as an Emergency \ - Escape Shuttle because there is literally nothing else available." - admin_notes = "If the crew can solve the puzzle, they will wake the \ - wabbajack statue. It will likely not end well. There's a reason it's \ - boarded up. Maybe they should have just left it alone." + description = "The research team based on this vessel went missing one day, and no amount of investigation could discover what happened to them. \ + The only occupants were a number of dead rodents, who appeared to have clawed each other to death. \ + Needless to say, no engineering team wanted to go near the thing, and it's only being used as an Emergency Escape Shuttle because there is literally nothing else available." + admin_notes = "If the crew can solve the puzzle, they will wake the wabbajack statue. It will likely not end well. There's a reason it's boarded up. Maybe they should have just left it alone." + credit_cost = 15000 /datum/map_template/shuttle/ferry/base suffix = "base" @@ -163,28 +180,19 @@ /datum/map_template/shuttle/ferry/meat suffix = "meat" name = "\"meat\" ferry" - description = "Ahoy! We got all kinds o' meat aft here. Meat from plant \ - people, people who be dark, not in a racist way, just they're dark \ - black. Oh and lizard meat too,mighty popular that is. Definitely \ - 100% fresh, just ask this guy here. *person on meatspike moans* See? \ - Definitely high quality meat, nothin' wrong with it, nothin' added, \ - definitely no zombifyin' reagents!" - admin_notes = "Meat currently contains no zombifying reagents, lizard on \ - meatspike must be spawned in." + description = "Ahoy! We got all kinds o' meat aft here. Meat from plant people, people who be dark, not in a racist way, just they're dark black. \ + Oh and lizard meat too,mighty popular that is. Definitely 100% fresh, just ask this guy here. *person on meatspike moans* See? \ + Definitely high quality meat, nothin' wrong with it, nothin' added, definitely no zombifyin' reagents!" + admin_notes = "Meat currently contains no zombifying reagents, lizard on meatspike must be spawned in." /datum/map_template/shuttle/ferry/lighthouse suffix = "lighthouse" name = "The Lighthouse(?)" - description = "*static*... part of a much larger vessel, possibly \ - military in origin. The weapon markings aren't anything we've seen \ - ... static ... by almost never the same person twice, possible use \ - of unknown storage ... static ... seeing ERT officers onboard, but \ - no missions are on file for ... static ... static ... annoying \ - jingle ... only at The LIGHTHOUSE! Fulfilling needs you didn't even \ - know you had. We've got EVERYTHING, and something else!" - admin_notes = "Currently larger than ferry docking port on Box, will not \ - hit anything, but must be force docked. Trader and ERT bodyguards are \ - not included." + description = "*static*... part of a much larger vessel, possibly military in origin. \ + The weapon markings aren't anything we've seen ...static... by almost never the same person twice, possible use of unknown storage ...static... \ + seeing ERT officers onboard, but no missions are on file for ...static...static...annoying jingle... only at The LIGHTHOUSE! \ + Fulfilling needs you didn't even know you had. We've got EVERYTHING, and something else!" + admin_notes = "Currently larger than ferry docking port on Box, will not hit anything, but must be force docked. Trader and ERT bodyguards are not included." /datum/map_template/shuttle/whiteship/box suffix = "box" @@ -194,6 +202,10 @@ suffix = "meta" name = "NT Recovery White-ship" +/datum/map_template/shuttle/whiteship/pubby + suffix = "pubby" + name = "NT White UFO" + /datum/map_template/shuttle/cargo/box suffix = "box" name = "supply shuttle (Box)" @@ -201,3 +213,10 @@ /datum/map_template/shuttle/cargo/birdboat suffix = "birdboat" name = "supply shuttle (Birdboat)" + +/datum/map_template/shuttle/emergency/delta + suffix = "delta" + name = "Delta Station Emergency Shuttle" + description = "A large shuttle for a large station, this shuttle can comfortably fit all your overpopulation and crowding needs. Complete with all facilities plus additional equipment." + admin_notes = "Go big or go home." + credit_cost = 7500 diff --git a/code/datums/status_effects/buffs.dm b/code/datums/status_effects/buffs.dm new file mode 100644 index 0000000000..35916bd520 --- /dev/null +++ b/code/datums/status_effects/buffs.dm @@ -0,0 +1,139 @@ +//Largely beneficial effects go here, even if they have drawbacks. An example is provided in Shadow Mend. + +/datum/status_effect/shadow_mend + id = "shadow_mend" + duration = 3 + alert_type = /obj/screen/alert/status_effect/shadow_mend + +/obj/screen/alert/status_effect/shadow_mend + name = "Shadow Mend" + desc = "Shadowy energies wrap around your wounds, sealing them at a price. After healing, you will slowly lose health every three seconds for thirty seconds." + icon_state = "shadow_mend" + +/datum/status_effect/shadow_mend/on_apply() + owner.visible_message("Violet light wraps around [owner]'s body!", "Violet light wraps around your body!") + playsound(owner, 'sound/magic/Teleport_app.ogg', 50, 1) + +/datum/status_effect/shadow_mend/tick() + owner.adjustBruteLoss(-15) + owner.adjustFireLoss(-15) + +/datum/status_effect/shadow_mend/on_remove() + owner.visible_message("The violet light around [owner] glows black!", "The tendrils around you cinch tightly and reap their toll...") + playsound(owner, 'sound/magic/Teleport_diss.ogg', 50, 1) + owner.apply_status_effect(STATUS_EFFECT_VOID_PRICE) + + +/datum/status_effect/void_price + id = "void_price" + duration = 30 + tick_interval = 3 + alert_type = /obj/screen/alert/status_effect/void_price + +/obj/screen/alert/status_effect/void_price + name = "Void Price" + desc = "Black tendrils cinch tightly against you, digging wicked barbs into your flesh." + icon_state = "shadow_mend" + +/datum/status_effect/void_price/tick() + owner << sound('sound/magic/Summon_Karp.ogg', volume = 25) + owner.adjustBruteLoss(3) + + + +/datum/status_effect/vanguard_shield + id = "vanguard" + duration = 20 + alert_type = /obj/screen/alert/status_effect/vanguard + +/obj/screen/alert/status_effect/vanguard + name = "Vanguard" + desc = "You're absorbing stuns! 25% of all stuns taken will affect you after this effect ends." + icon_state = "vanguard" + alerttooltipstyle = "clockcult" + +/obj/screen/alert/status_effect/vanguard/MouseEntered(location,control,params) + var/mob/living/L = usr + if(istype(L)) //this is probably more safety than actually needed + var/vanguard = L.stun_absorption["vanguard"] + desc = initial(desc) + desc += "
    [vanguard["stuns_absorbed"] * 2] seconds of stuns held back.
    [round(min(vanguard["stuns_absorbed"] * 0.25, 20)) * 2] seconds of stun will affect you." + ..() + +/datum/status_effect/vanguard_shield/on_apply() + add_logs(owner, null, "gained Vanguard stun immunity") + owner.add_stun_absorption("vanguard", 200, 1, "'s yellow aura momentarily intensifies!", "Your ward absorbs the stun!", " radiating with a soft yellow light!") + owner.visible_message("[owner] begins to faintly glow!", "You will absorb all stuns for the next twenty seconds.") + +/datum/status_effect/vanguard_shield/on_remove() + var/vanguard = owner.stun_absorption["vanguard"] + var/stuns_blocked = 0 + if(vanguard) + stuns_blocked = round(min(vanguard["stuns_absorbed"] * 0.25, 20)) + if(owner.stat != DEAD) + var/message_to_owner = "You feel your Vanguard quietly fade..." + var/otheractiveabsorptions = FALSE + for(var/i in owner.stun_absorption) + if(owner.stun_absorption[i]["end_time"] > world.time && owner.stun_absorption[i]["priority"] > vanguard["priority"]) + otheractiveabsorptions = TRUE + if(!ratvar_awakens && stuns_blocked && !otheractiveabsorptions) + vanguard["end_time"] = 0 //so it doesn't absorb the stuns we're about to apply + owner.Stun(stuns_blocked) + owner.Weaken(stuns_blocked) + message_to_owner = "The weight of the Vanguard's protection crashes down upon you!" + if(stuns_blocked >= 15) + message_to_owner += "\nYou faint from the exertion!" + stuns_blocked *= 2 + owner.Paralyse(stuns_blocked) + owner.visible_message("[owner]'s glowing aura fades!", message_to_owner) + add_logs(owner, null, "lost Vanguard stun immunity[stuns_blocked ? "and been stunned for [stuns_blocked]":""]") + + + +/datum/status_effect/inathneqs_endowment + id = "inathneqs_endowment" + duration = 15 + alert_type = /obj/screen/alert/status_effect/inathneqs_endowment + +/obj/screen/alert/status_effect/inathneqs_endowment + name = "Inath-neq's Endowment" + desc = "Adrenaline courses through you as the Resonant Cogwheel's energy shields you from all harm!" + icon_state = "inathneqs_endowment" + alerttooltipstyle = "clockcult" + +/datum/status_effect/inathneqs_endowment/on_apply() + add_logs(owner, null, "gained Inath-neq's invulnerability") + owner.visible_message("[owner] shines with azure light!", "You feel Inath-neq's power flow through you! You're invincible!") + var/oldcolor = owner.color + owner.color = "#1E8CE1" + owner.fully_heal() + owner.add_stun_absorption("inathneq", 150, 2, "'s flickering blue aura momentarily intensifies!", "Inath-neq's power absorbs the stun!", " glowing with a flickering blue light!") + owner.status_flags |= GODMODE + animate(owner, color = oldcolor, time = 150, easing = EASE_IN) + addtimer(owner, "update_atom_colour", 150) + playsound(owner, 'sound/magic/Ethereal_Enter.ogg', 50, 1) + +/datum/status_effect/inathneqs_endowment/on_remove() + add_logs(owner, null, "lost Inath-neq's invulnerability") + owner.visible_message("The light around [owner] flickers and dissipates!", "You feel Inath-neq's power fade from your body!") + owner.status_flags &= ~GODMODE + playsound(owner, 'sound/magic/Ethereal_Exit.ogg', 50, 1) + +/datum/status_effect/cyborg_power_regen + id = "power_regen" + duration = 10 + alert_type = /obj/screen/alert/status_effect/power_regen + var/power_to_give = 0 //how much power is gained each tick + +/obj/screen/alert/status_effect/power_regen + name = "Power Regeneration" + desc = "You are quickly regenerating power!" + icon_state = "power_regen" + +/datum/status_effect/cyborg_power_regen/tick() + var/mob/living/silicon/robot/cyborg = owner + if(!istype(cyborg) || !cyborg.cell) + qdel(src) + return + playsound(cyborg, 'sound/effects/light_flicker.ogg', 50, 1) + cyborg.cell.give(power_to_give) diff --git a/code/datums/status_effects/gas.dm b/code/datums/status_effects/gas.dm new file mode 100644 index 0000000000..53a8bb485f --- /dev/null +++ b/code/datums/status_effects/gas.dm @@ -0,0 +1,30 @@ +/datum/status_effect/freon + id = "frozen" + duration = 10 + unique = TRUE + alert_type = /obj/screen/alert/status_effect/freon + var/icon/cube + +/obj/screen/alert/status_effect/freon + name = "Frozen Solid" + desc = "You're frozen inside of an ice cube, and cannot move! You can still do stuff, like shooting. Resist out of the cube!" + icon_state = "frozen" + +/datum/status_effect/freon/on_apply() + if(!owner.stat) + owner << "You become frozen in a cube!" + cube = icon('icons/effects/freeze.dmi', "ice_cube") + owner.overlays += cube + owner.update_canmove() + +/datum/status_effect/freon/tick() + owner.update_canmove() + if(owner && owner.bodytemperature >= 310.055) + qdel(src) + +/datum/status_effect/freon/on_remove() + if(!owner.stat) + owner << "The cube melts!" + owner.overlays -= cube + owner.bodytemperature += 100 + owner.update_canmove() diff --git a/code/datums/status_effects/status_effect.dm b/code/datums/status_effects/status_effect.dm new file mode 100644 index 0000000000..3eba8c3aff --- /dev/null +++ b/code/datums/status_effects/status_effect.dm @@ -0,0 +1,100 @@ +//Status effects are used to apply temporary or permanent effects to mobs. Mobs are aware of their status effects at all times. +//This file contains their code, plus code for applying and removing them. +//When making a new status effect, add a define to status_effects.dm in __DEFINES for ease of use! + +var/global/list/all_status_effects = list() //a list of all status effects, if for some reason you need to remove all of them + +/datum/status_effect + var/id = "effect" //Used for screen alerts. + var/duration = -1 //How long the status effect lasts in SECONDS. Enter -1 for an effect that never ends unless removed through some means. + var/tick_interval = 1 //How many seconds between ticks. Leave at 1 for every second. + var/mob/living/owner //The mob affected by the status effect. + var/cosmetic = FALSE //If the status effect only exists for flavor. + var/unique = TRUE //If there can be multiple status effects of this type on one mob. + var/alert_type = /obj/screen/alert/status_effect //the alert thrown by the status effect, contains name and description + +/datum/status_effect/New(mob/living/new_owner) + if(new_owner) + owner = new_owner + if(owner) + LAZYADD(owner.status_effects, src) + all_status_effects += src + addtimer(src, "start_ticking", 1) //Give us time to set any variables + +/datum/status_effect/Destroy() + STOP_PROCESSING(SSprocessing, src) + if(owner) + owner.clear_alert(id) + on_remove() + LAZYREMOVE(owner.status_effects, src) + all_status_effects -= src + return ..() + +/datum/status_effect/proc/start_ticking() + if(!src) + return + if(!owner) + qdel(src) + return + on_apply() + if(alert_type) + var/obj/screen/alert/status_effect/A = owner.throw_alert(id, alert_type) + A.attached_effect = src //so the alert can reference us, if it needs to + START_PROCESSING(SSprocessing, src) + +/datum/status_effect/process() + if(!owner) + qdel(src) + return + if(duration != -1) + duration-- + tick_interval-- + if(!tick_interval) + tick() + tick_interval = initial(tick_interval) + if(!duration) + qdel(src) + +/datum/status_effect/proc/on_apply() //Called whenever the buff is applied. +/datum/status_effect/proc/tick() //Called every tick. +/datum/status_effect/proc/on_remove() //Called whenever the buff expires or is removed. + +//////////////// +// ALERT HOOK // +//////////////// + +/obj/screen/alert/status_effect + name = "Curse of Mundanity" + desc = "You don't feel any different..." + var/datum/status_effect/attached_effect + +////////////////// +// HELPER PROCS // +////////////////// + +/mob/living/proc/apply_status_effect(effect) //applies a given status effect to this mob, returning the effect if it was successful + . = FALSE + var/datum/status_effect/S1 = effect + LAZYINITLIST(status_effects) + for(var/datum/status_effect/S in status_effects) + if(S.id == initial(S1.id) && initial(S1.unique)) + return + S1 = new effect(src) + . = S1 + +/mob/living/proc/remove_status_effect(effect) //removes all of a given status effect from this mob, returning TRUE if at least one was removed + . = FALSE + if(status_effects) + var/datum/status_effect/S1 = effect + for(var/datum/status_effect/S in status_effects) + if(initial(S1.id) == S.id) + qdel(S) + . = TRUE + +/mob/living/proc/has_status_effect(effect) //returns the effect if the mob calling the proc owns the given status effect + . = FALSE + if(status_effects) + var/datum/status_effect/S1 = effect + for(var/datum/status_effect/S in status_effects) + if(initial(S1.id) == S.id) + return S diff --git a/code/datums/weather/weather.dm b/code/datums/weather/weather.dm index c1afdea4ca..dc8857b24b 100644 --- a/code/datums/weather/weather.dm +++ b/code/datums/weather/weather.dm @@ -109,7 +109,8 @@ update_areas() /datum/weather/proc/can_impact(mob/living/L) //Can this weather impact a mob? - if(L.z != target_z) + var/turf/mob_turf = get_turf(L) + if(mob_turf && (mob_turf.z != target_z)) return if(immunity_type in L.weather_immunities) return diff --git a/code/datums/weather/weather_types.dm b/code/datums/weather/weather_types.dm index 6bae9f3d4e..fda7f82111 100644 --- a/code/datums/weather/weather_types.dm +++ b/code/datums/weather/weather_types.dm @@ -118,11 +118,11 @@ name = "radiation storm" desc = "A cloud of intense radiation passes through the area dealing rad damage to those who are unprotected." - telegraph_duration = 600 + telegraph_duration = 400 telegraph_message = "The air begins to grow warm." weather_message = "You feel waves of heat wash over you! Find shelter!" - weather_overlay = "radiation" + weather_overlay = "ash_storm" weather_duration_lower = 600 weather_duration_upper = 1500 weather_color = "green" @@ -132,33 +132,53 @@ end_message = "The air seems to be cooling off again." area_type = /area - protected_areas = list(/area/maintenance, /area/turret_protected/ai_upload, /area/turret_protected/ai_upload_foyer, /area/turret_protected/ai) + protected_areas = list(/area/maintenance, /area/ai_monitored/turret_protected/ai_upload, /area/ai_monitored/turret_protected/ai_upload_foyer, /area/ai_monitored/turret_protected/ai, /area/storage/emergency, /area/storage/emergency2, /area/shuttle/labor) target_z = ZLEVEL_STATION immunity_type = "rad" +/datum/weather/rad_storm/telegraph() + ..() + status_alarm("alert") + + /datum/weather/rad_storm/impact(mob/living/L) - if(prob(20)) + var/resist = L.getarmor(null, "rad") + if(prob(40)) if(ishuman(L)) var/mob/living/carbon/human/H = L if(H.dna && H.dna.species) - if(!(RADIMMUNE in H.dna.species.specflags)) - if(prob(50)) - randmuti(H) - if(prob(90)) - randmutb(H) - else - randmutg(H) - H.domutcheck() + if(!(RADIMMUNE in H.dna.species.species_traits)) + if(prob(max(0,100-resist))) + H.randmuti() + if(prob(50)) + if(prob(90)) + H.randmutb() + else + H.randmutg() + H.domutcheck() L.rad_act(20,1) - - L.adjustToxLoss(4) - - - - - /datum/weather/rad_storm/end() if(..()) return - priority_announce("The radiation threat has passed. Please return to your workplaces.", "Anomaly Alert") \ No newline at end of file + priority_announce("The radiation threat has passed. Please return to your workplaces.", "Anomaly Alert") + status_alarm() + + +/datum/weather/rad_storm/proc/status_alarm(command) //Makes the status displays show the radiation warning for those who missed the announcement. + var/datum/radio_frequency/frequency = SSradio.return_frequency(1435) + + if(!frequency) + return + + var/datum/signal/status_signal = new + var/atom/movable/virtualspeaker/virt = PoolOrNew(/atom/movable/virtualspeaker,null) + status_signal.source = virt + status_signal.transmission_method = 1 + status_signal.data["command"] = "shuttle" + + if(command == "alert") + status_signal.data["command"] = "alert" + status_signal.data["picture_state"] = "radiation" + + frequency.post_signal(src, status_signal) diff --git a/code/datums/wires/airalarm.dm b/code/datums/wires/airalarm.dm index 16ee415d78..a0300f625c 100644 --- a/code/datums/wires/airalarm.dm +++ b/code/datums/wires/airalarm.dm @@ -1,5 +1,6 @@ /datum/wires/airalarm holder_type = /obj/machinery/airalarm + proper_name = "Air Alarm" /datum/wires/airalarm/New(atom/holder) wires = list( @@ -30,13 +31,13 @@ if(!A.shorted) A.shorted = TRUE A.update_icon() - addtimer(A, "reset", 1200, FALSE, wire) + addtimer(A, "reset", 1200, TIMER_NORMAL, wire) if(WIRE_IDSCAN) // Toggle lock. A.locked = !A.locked if(WIRE_AI) // Disable AI control for a while. if(!A.aidisabled) A.aidisabled = TRUE - addtimer(A, "reset", 100, FALSE, wire) + addtimer(A, "reset", 100, TIMER_NORMAL, wire) if(WIRE_PANIC) // Toggle panic siphon. if(!A.shorted) if(A.mode == 1) // AALARM_MODE_SCRUB diff --git a/code/datums/wires/airlock.dm b/code/datums/wires/airlock.dm index 3f29937945..84b5922945 100644 --- a/code/datums/wires/airlock.dm +++ b/code/datums/wires/airlock.dm @@ -1,5 +1,6 @@ /datum/wires/airlock holder_type = /obj/machinery/door/airlock + proper_name = "Airlock" /datum/wires/airlock/secure randomize = TRUE @@ -17,7 +18,7 @@ /datum/wires/airlock/interactable(mob/user) var/obj/machinery/door/airlock/A = holder - if(!istype(user, /mob/living/silicon) && A.isElectrified() && A.shock(user, 100)) + if(!issilicon(user) && A.isElectrified() && A.shock(user, 100)) return FALSE if(A.panel_open) return TRUE @@ -103,17 +104,21 @@ if(WIRE_POWER1, WIRE_POWER2) // Cut to loose power, repair all to gain power. if(mend && !is_cut(WIRE_POWER1) && !is_cut(WIRE_POWER2)) A.regainMainPower() - A.shock(usr, 50) + if(usr) + A.shock(usr, 50) else A.loseMainPower() - A.shock(usr, 50) + if(usr) + A.shock(usr, 50) if(WIRE_BACKUP1, WIRE_BACKUP2) // Cut to loose backup power, repair all to gain backup power. if(mend && !is_cut(WIRE_BACKUP1) && !is_cut(WIRE_BACKUP2)) A.regainBackupPower() - A.shock(usr, 50) + if(usr) + A.shock(usr, 50) else A.loseBackupPower() - A.shock(usr, 50) + if(usr) + A.shock(usr, 50) if(WIRE_BOLTS) // Cut to drop bolts, mend does nothing. if(!mend) A.bolt() @@ -135,7 +140,8 @@ else if(A.secondsElectrified != -1) A.secondsElectrified = -1 - A.shockedby += text("\[[time_stamp()]\][usr](ckey:[usr.ckey])") + if(usr) + A.shockedby += text("\[[time_stamp()]\][usr](ckey:[usr.ckey])") add_logs(usr, A, "electrified") if(WIRE_SAFETY) // Cut to disable safeties, mend to re-enable. A.safe = mend diff --git a/code/datums/wires/apc.dm b/code/datums/wires/apc.dm index 3cf21c7b57..e4c1fec612 100644 --- a/code/datums/wires/apc.dm +++ b/code/datums/wires/apc.dm @@ -1,5 +1,6 @@ /datum/wires/apc holder_type = /obj/machinery/power/apc + proper_name = "APC" /datum/wires/apc/New(atom/holder) wires = list( @@ -28,14 +29,14 @@ if(WIRE_POWER1, WIRE_POWER2) // Short for a long while. if(!A.shorted) A.shorted = TRUE - addtimer(A, "reset", 1200, FALSE, wire) + addtimer(A, "reset", 1200, TIMER_NORMAL, wire) if(WIRE_IDSCAN) // Unlock for a little while. A.locked = FALSE - addtimer(A, "reset", 300, FALSE, wire) + addtimer(A, "reset", 300, TIMER_NORMAL, wire) if(WIRE_AI) // Disable AI control for a very short time. if(!A.aidisabled) A.aidisabled = TRUE - addtimer(A, "reset", 10, FALSE, wire) + addtimer(A, "reset", 10, TIMER_NORMAL, wire) /datum/wires/apc/on_cut(index, mend) var/obj/machinery/power/apc/A = holder diff --git a/code/datums/wires/autolathe.dm b/code/datums/wires/autolathe.dm index 3e55a09937..9fb9ae2109 100644 --- a/code/datums/wires/autolathe.dm +++ b/code/datums/wires/autolathe.dm @@ -1,5 +1,6 @@ /datum/wires/autolathe holder_type = /obj/machinery/autolathe + proper_name = "Autolathe" /datum/wires/autolathe/New(atom/holder) wires = list( @@ -26,13 +27,13 @@ switch(wire) if(WIRE_HACK) A.adjust_hacked(!A.hacked) - addtimer(A, "reset", 60, FALSE, wire) + addtimer(A, "reset", 60, TIMER_NORMAL, wire) if(WIRE_SHOCK) A.shocked = !A.shocked - addtimer(A, "reset", 60, FALSE, wire) + addtimer(A, "reset", 60, TIMER_NORMAL, wire) if(WIRE_DISABLE) A.disabled = !A.disabled - addtimer(A, "reset", 60, FALSE, wire) + addtimer(A, "reset", 60, TIMER_NORMAL, wire) /datum/wires/autolathe/on_cut(wire, mend) var/obj/machinery/autolathe/A = holder diff --git a/code/datums/wires/explosive.dm b/code/datums/wires/explosive.dm index b3d64f4490..eefc270cc9 100644 --- a/code/datums/wires/explosive.dm +++ b/code/datums/wires/explosive.dm @@ -14,6 +14,7 @@ /datum/wires/explosive/c4 holder_type = /obj/item/weapon/c4 + randomize = TRUE //Same behaviour since no wire actually disarms it /datum/wires/explosive/c4/interactable(mob/user) var/obj/item/weapon/c4/P = holder diff --git a/code/datums/wires/particle_accelerator.dm b/code/datums/wires/particle_accelerator.dm index 47ff6af057..9d82892bea 100644 --- a/code/datums/wires/particle_accelerator.dm +++ b/code/datums/wires/particle_accelerator.dm @@ -1,5 +1,6 @@ /datum/wires/particle_accelerator/control_box holder_type = /obj/machinery/particle_accelerator/control_box + proper_name = "Particle Accelerator" /datum/wires/particle_accelerator/control_box/New(atom/holder) wires = list( diff --git a/code/datums/wires/radio.dm b/code/datums/wires/radio.dm index cc17d99309..b7b5e0d2c9 100644 --- a/code/datums/wires/radio.dm +++ b/code/datums/wires/radio.dm @@ -1,5 +1,6 @@ /datum/wires/radio holder_type = /obj/item/device/radio + proper_name = "Radio" /datum/wires/radio/New(atom/holder) wires = list( diff --git a/code/datums/wires/robot.dm b/code/datums/wires/robot.dm index 50cd20e500..9f019c23d1 100644 --- a/code/datums/wires/robot.dm +++ b/code/datums/wires/robot.dm @@ -5,7 +5,8 @@ /datum/wires/robot/New(atom/holder) wires = list( WIRE_AI, WIRE_CAMERA, - WIRE_LAWSYNC, WIRE_LOCKDOWN + WIRE_LAWSYNC, WIRE_LOCKDOWN, + WIRE_RESET_MODULE ) add_duds(2) ..() @@ -22,6 +23,7 @@ status += "The intelligence link display shows [R.connected_ai ? R.connected_ai.name : "NULL"]." status += "The camera light is [!isnull(R.camera) && R.camera.status ? "on" : "off"]." status += "The lockdown indicator is [R.lockcharge ? "on" : "off"]." + status += "The reset module hardware light is [R.has_module() ? "on" : "off"]." return status /datum/wires/robot/on_pulse(wire) @@ -44,6 +46,9 @@ R.show_laws() if(WIRE_LOCKDOWN) R.SetLockdown(!R.lockcharge) // Toggle + if(WIRE_RESET_MODULE) + if(R.has_module()) + R.ResetModule() /datum/wires/robot/on_cut(wire, mend) var/mob/living/silicon/robot/R = holder diff --git a/code/datums/wires/suit_storage_unit.dm b/code/datums/wires/suit_storage_unit.dm index 9c8a4b27b0..9f4b5a1de1 100644 --- a/code/datums/wires/suit_storage_unit.dm +++ b/code/datums/wires/suit_storage_unit.dm @@ -1,5 +1,6 @@ /datum/wires/suit_storage_unit holder_type = /obj/machinery/suit_storage_unit + proper_name = "Suit Storage Unit" /datum/wires/suit_storage_unit/New(atom/holder) wires = list( diff --git a/code/datums/wires/syndicatebomb.dm b/code/datums/wires/syndicatebomb.dm index d7f12fe184..1d7f1ebf96 100644 --- a/code/datums/wires/syndicatebomb.dm +++ b/code/datums/wires/syndicatebomb.dm @@ -20,7 +20,7 @@ if(WIRE_BOOM) if(B.active) holder.visible_message("\icon[B] An alarm sounds! It's go-") - B.timer = 0 + B.explode_now = TRUE tell_admins(B) if(WIRE_UNBOLT) holder.visible_message("\icon[B] The bolts spin in place for a moment.") @@ -30,28 +30,28 @@ else holder.visible_message("\icon[B] The bomb chirps.") playsound(B, 'sound/machines/chime.ogg', 30, 1) - B.timer += 30 + B.detonation_timer += 300 B.delayedbig = TRUE if(WIRE_PROCEED) holder.visible_message("\icon[B] The bomb buzzes ominously!") playsound(B, 'sound/machines/buzz-sigh.ogg', 30, 1) - if(B.timer >= 61) // Long fuse bombs can suddenly become more dangerous if you tinker with them. - B.timer = 60 - else if(B.timer >= 21) - B.timer -= 10 - else if(B.timer >= 11) // Both to prevent negative timers and to have a little mercy. - B.timer = 10 + var/seconds = B.seconds_remaining() + if(seconds >= 61) // Long fuse bombs can suddenly become more dangerous if you tinker with them. + B.detonation_timer = world.time + 600 + else if(seconds >= 21) + B.detonation_timer -= 100 + else if(seconds >= 11) // Both to prevent negative timers and to have a little mercy. + B.detonation_timer = world.time + 100 if(WIRE_ACTIVATE) if(!B.active && !B.defused) holder.visible_message("\icon[B] You hear the bomb start ticking!") - playsound(B, 'sound/machines/click.ogg', 30, 1) - B.active = TRUE + B.activate() B.update_icon() else if(B.delayedlittle) holder.visible_message("\icon[B] Nothing happens.") else holder.visible_message("\icon[B] The bomb seems to hesitate for a moment.") - B.timer += 10 + B.detonation_timer += 100 B.delayedlittle = TRUE /datum/wires/syndicatebomb/on_cut(wire, mend) @@ -63,7 +63,7 @@ else if(B.active) holder.visible_message("\icon[B] An alarm sounds! It's go-") - B.timer = 0 + B.explode_now = TRUE tell_admins(B) else B.defused = TRUE @@ -71,11 +71,11 @@ if(!mend && B.anchored) holder.visible_message("\icon[B] The bolts lift out of the ground!") playsound(B, 'sound/effects/stealthoff.ogg', 30, 1) - B.anchored = 0 + B.anchored = FALSE if(WIRE_PROCEED) if(!mend && B.active) holder.visible_message("\icon[B] An alarm sounds! It's go-") - B.timer = 0 + B.explode_now = TRUE tell_admins(B) if(WIRE_ACTIVATE) if(!mend && B.active) @@ -87,5 +87,6 @@ /datum/wires/syndicatebomb/proc/tell_admins(obj/machinery/syndicatebomb/B) if(istype(B, /obj/machinery/syndicatebomb/training)) return - log_game("A [B.name] was detonated via boom wire at X=[B.x], Y=[B.y], Z=[B.z].") - message_admins("A [B.name] was detonated via boom wire at (JMP).") + var/turf/T = get_turf(B) + log_game("\A [B] was detonated via boom wire at [COORD(T)].") + message_admins("A [B.name] was detonated via boom wire at [ADMIN_COORDJMP(T)].") diff --git a/code/datums/wires/vending.dm b/code/datums/wires/vending.dm index 16c9d5ab84..0c66f26a92 100644 --- a/code/datums/wires/vending.dm +++ b/code/datums/wires/vending.dm @@ -1,9 +1,10 @@ /datum/wires/vending holder_type = /obj/machinery/vending + proper_name = "Vending Unit" /datum/wires/vending/New(atom/holder) wires = list( - WIRE_THROW, WIRE_ELECTRIFY, WIRE_SPEAKER, + WIRE_THROW, WIRE_SHOCK, WIRE_SPEAKER, WIRE_CONTRABAND, WIRE_IDSCAN ) add_duds(1) @@ -11,7 +12,7 @@ /datum/wires/vending/interactable(mob/user) var/obj/machinery/vending/V = holder - if(!istype(user, /mob/living/silicon) && V.seconds_electrified && V.shock(user, 100)) + if(!issilicon(user) && V.seconds_electrified && V.shock(user, 100)) return FALSE if(V.panel_open) return TRUE @@ -33,7 +34,7 @@ V.shoot_inventory = !V.shoot_inventory if(WIRE_CONTRABAND) V.extended_inventory = !V.extended_inventory - if(WIRE_ELECTRIFY) + if(WIRE_SHOCK) V.seconds_electrified = 30 if(WIRE_IDSCAN) V.scan_id = !V.scan_id @@ -47,7 +48,7 @@ V.shoot_inventory = !mend if(WIRE_CONTRABAND) V.extended_inventory = FALSE - if(WIRE_ELECTRIFY) + if(WIRE_SHOCK) if(mend) V.seconds_electrified = FALSE else diff --git a/code/datums/wires/wires.dm b/code/datums/wires/wires.dm index dc47bfa53b..64cccf5f93 100644 --- a/code/datums/wires/wires.dm +++ b/code/datums/wires/wires.dm @@ -1,123 +1,23 @@ -var/list/wire_colors = list( // http://www.crockford.com/wrrrld/color.html - "aliceblue", - "antiquewhite", - "aqua", - "aquamarine", - "beige", - "blanchedalmond", +var/list/wire_colors = list( "blue", - "blueviolet", "brown", - "burlywood", - "cadetblue", - "chartreuse", - "chocolate", - "coral", - "cornflowerblue", - "cornsilk", "crimson", "cyan", - "deeppink", - "deepskyblue", - "dimgray", - "dodgerblue", - "firebrick", - "floralwhite", - "forestgreen", - "fuchsia", - "gainsboro", - "ghostwhite", "gold", - "goldenrod", - "gray", + "grey", "green", - "greenyellow", - "honeydew", - "hotpink", - "indianred", - "ivory", - "khaki", - "lavender", - "lavenderblush", - "lawngreen", - "lemonchiffon", - "lightblue", - "lightcoral", - "lightcyan", - "lightgoldenrodyellow", - "lightgray", - "lightgreen", - "lightpink", - "lightsalmon", - "lightseagreen", - "lightskyblue", - "lightslategray", - "lightsteelblue", - "lightyellow", - "lime", - "limegreen", - "linen", "magenta", - "maroon", - "mediumaquamarine", - "mediumblue", - "mediumorchid", - "mediumpurple", - "mediumseagreen", - "mediumslateblue", - "mediumspringgreen", - "mediumturquoise", - "mediumvioletred", - "mintcream", - "mistyrose", - "moccasin", - "navajowhite", - "oldlace", - "olive", - "olivedrab", "orange", - "orangered", - "orchid", - "palegoldenrod", - "palegreen", - "paleturquoise", - "palevioletred", - "papayawhip", - "peachpuff", - "peru", "pink", - "plum", - "powderblue", "purple", "red", - "rosybrown", - "royalblue", - "saddlebrown", - "salmon", - "sandybrown", - "seagreen", - "seashell", - "sienna", "silver", - "skyblue", - "slateblue", - "slategray", - "snow", - "springgreen", - "steelblue", - "tan", - "teal", - "thistle", - "tomato", - "turquoise", "violet", - "wheat", "white", - "whitesmoke", "yellow", - "yellowgreen", ) var/list/wire_color_directory = list() +var/list/wire_name_directory = list() /proc/is_wire_tool(obj/item/I) if(istype(I, /obj/item/device/multitool)) @@ -136,12 +36,14 @@ var/list/wire_color_directory = list() /datum/wires var/atom/holder = null // The holder (atom that contains these wires). var/holder_type = null // The holder's typepath (used to make wire colors common to all holders). + var/proper_name = "Unknown" // The display name for the wire set shown in station blueprints. Not used if randomize is true or it's an item NT wouldn't know about (Explosives/Nuke) var/list/wires = list() // List of wires. var/list/cut_wires = list() // List of wires that have been cut. var/list/colors = list() // Dictionary of colors to wire. var/list/assemblies = list() // List of attached assemblies. var/randomize = 0 // If every instance of these wires should be random. + // Prevents wires from showing up in station blueprints /datum/wires/New(atom/holder) ..() @@ -156,6 +58,7 @@ var/list/wire_color_directory = list() if(!wire_color_directory[holder_type]) randomize() wire_color_directory[holder_type] = colors + wire_name_directory[holder_type] = proper_name else colors = wire_color_directory[holder_type] @@ -166,7 +69,7 @@ var/list/wire_color_directory = list() /datum/wires/proc/add_duds(duds) while(duds) - var/dud = "dud[--duds]" + var/dud = WIRE_DUD_PREFIX + "[--duds]" if(dud in wires) continue wires += dud @@ -297,7 +200,7 @@ var/list/wire_color_directory = list() for(var/color in colors) payload.Add(list(list( "color" = color, - "wire" = (IsAdminGhost(user) ? get_wire(color) : null), + "wire" = (IsAdminGhost(user) || (user.is_holding_item_of_type(/obj/item/device/multitool/abductor)) ? get_wire(color) : null), "cut" = is_color_cut(color), "attached" = is_attached(color) ))) @@ -310,11 +213,11 @@ var/list/wire_color_directory = list() return var/target_wire = params["wire"] var/mob/living/L = usr - var/obj/item/I = L.get_active_hand() + var/obj/item/I = L.get_active_held_item() switch(action) if("cut") if(istype(I, /obj/item/weapon/wirecutters) || IsAdminGhost(usr)) - playsound(holder, 'sound/items/Wirecutter.ogg', 20, 1) + playsound(holder, I.usesound, 20, 1) cut_color(target_wire) . = TRUE else diff --git a/code/game/alternate_appearance.dm b/code/game/alternate_appearance.dm index 005876e8cc..8722789d77 100644 --- a/code/game/alternate_appearance.dm +++ b/code/game/alternate_appearance.dm @@ -30,7 +30,11 @@ if(!M.viewing_alternate_appearances) M.viewing_alternate_appearances = list() viewers |= M - M.viewing_alternate_appearances[key] = src + var/list/AAsiblings = M.viewing_alternate_appearances[key] + if(!AAsiblings) + AAsiblings = list() + M.viewing_alternate_appearances[key] = AAsiblings + AAsiblings |= src if(M.client) M.client.images |= img @@ -48,9 +52,13 @@ if(M.client) M.client.images -= img if(M.viewing_alternate_appearances && M.viewing_alternate_appearances.len) - M.viewing_alternate_appearances -= key - if(!M.viewing_alternate_appearances.len) - M.viewing_alternate_appearances = null + var/list/AAsiblings = M.viewing_alternate_appearances[key] + if(AAsiblings) + AAsiblings -= src + if(!AAsiblings.len) + M.viewing_alternate_appearances -= key + if(!M.viewing_alternate_appearances.len) + M.viewing_alternate_appearances = null viewers -= M @@ -73,8 +81,9 @@ /atom var/list/alternate_appearances //the alternate appearances we own - var/list/viewing_alternate_appearances //the alternate appearances we're viewing, stored here to reestablish them after Logout()s - //these lists are built/destroyed as necessary, so atoms aren't all lugging around lists full of datums + var/list/viewing_alternate_appearances //this is an assoc list of lists, the keys being the AA's key + //inside these lists are the AAs themselves, this is to allow the atom to see multiple of the same type of AA + //eg: two (or more) people disguised as cardborgs, or two (or more) people disguised as plants /* Builds an alternate_appearance datum for the supplied args, optionally displaying it straight away diff --git a/code/game/area/Space_Station_13_areas.dm b/code/game/area/Space_Station_13_areas.dm index 5a8d40bd8d..f063e8ad78 100644 --- a/code/game/area/Space_Station_13_areas.dm +++ b/code/game/area/Space_Station_13_areas.dm @@ -14,74 +14,13 @@ NOTE: there are two lists of areas in the end of this file: centcom and station */ -/area - level = null - name = "Space" - icon = 'icons/turf/areas.dmi' - icon_state = "unknown" - layer = AREA_LAYER - mouse_opacity = 0 - invisibility = INVISIBILITY_LIGHTING - - var/map_name // Set in New(); preserves the name set by the map maker, even if renamed by the Blueprints. - - var/valid_territory = 1 // If it's a valid territory for gangs to claim - var/blob_allowed = 1 // Does it count for blobs score? By default, all areas count. - - var/eject = null - - var/fire = null - var/atmos = 1 - var/atmosalm = 0 - var/poweralm = 1 - var/party = null - var/lightswitch = 1 - - var/requires_power = 1 - var/always_unpowered = 0 // This gets overriden to 1 for space in area/New(). - - var/outdoors = 0 //For space, the asteroid, lavaland, etc. Used with blueprints to determine if we are adding a new area (vs editing a station room) - - var/power_equip = 1 - var/power_light = 1 - var/power_environ = 1 - var/music = null - var/used_equip = 0 - var/used_light = 0 - var/used_environ = 0 - var/static_equip - var/static_light = 0 - var/static_environ - - var/has_gravity = 0 - var/noteleport = 0 //Are you forbidden from teleporting to the area? (centcomm, mobs, wizard, hand teleporter) - var/safe = 0 //Is the area teleport-safe: no space / radiation / aggresive mobs / other dangers - - var/no_air = null - var/area/master // master area used for power calcluations - var/list/related // the other areas of the same type as this -// var/list/lights // list of all lights on this area - -/*Adding a wizard area teleport list because motherfucking lag -- Urist*/ -/*I am far too lazy to make it a proper list of areas so I'll just make it run the usual telepot routine at the start of the game*/ -var/list/teleportlocs = list() - -/proc/process_teleport_locs() - for(var/area/AR in world) - if(istype(AR, /area/shuttle) || istype(AR, /area/wizard_station) || AR.noteleport) continue - if(teleportlocs.Find(AR.name)) continue - var/turf/picked = safepick(get_area_turfs(AR.type)) - if (picked && (picked.z == ZLEVEL_STATION)) - teleportlocs += AR.name - teleportlocs[AR.name] = AR - - sortTim(teleportlocs, /proc/cmp_text_dsc) - /*-----------------------------------------------------------------------------*/ -/area/engine/ +/area/engine -/area/turret_protected/ +/area/ai_monitored //stub defined ai_monitored.dm + +/area/ai_monitored/turret_protected /area/arrival requires_power = 0 @@ -98,122 +37,27 @@ var/list/teleportlocs = list() icon_state = "space" requires_power = 1 always_unpowered = 1 - dynamic_lighting = DYNAMIC_LIGHTING_DISABLED + lighting_use_dynamic = DYNAMIC_LIGHTING_DISABLED power_light = 0 power_equip = 0 power_environ = 0 valid_territory = 0 outdoors = 1 - ambientsounds = list('sound/ambience/ambispace.ogg','sound/ambience/title3.ogg',) + ambientsounds = list('sound/ambience/ambispace.ogg','sound/ambience/title2.ogg') blob_allowed = 0 //Eating up space doesn't count for victory as a blob. /area/space/nearstation icon_state = "space_near" - dynamic_lighting = DYNAMIC_LIGHTING_IFSTARLIGHT - -//These are shuttle areas; all subtypes are only used as teleportation markers, they have no actual function beyond that. - -/area/shuttle - name = "Shuttle" - requires_power = 0 - luminosity = 1 - dynamic_lighting = DYNAMIC_LIGHTING_DISABLED - has_gravity = 1 - valid_territory = 0 - icon_state = "shuttle" - -/area/shuttle/arrival - name = "Arrival Shuttle" - -/area/shuttle/pod_1 - name = "Escape Pod One" - -/area/shuttle/pod_2 - name = "Escape Pod Two" - -/area/shuttle/pod_3 - name = "Escape Pod Three" - -/area/shuttle/pod_4 - name = "Escape Pod Four" - -/area/shuttle/mining - name = "Mining Shuttle" - -/area/shuttle/labor - name = "Labor Camp Shuttle" - -/area/shuttle/supply - name = "Supply Shuttle" - -/area/shuttle/escape - name = "Emergency Shuttle" - -/area/shuttle/transport - name = "Transport Shuttle" - -/area/shuttle/syndicate - name = "Syndicate Infiltrator" - -/area/shuttle/assault_pod - name = "Steel Rain" - -/area/shuttle/abandoned - name = "Abandoned Ship" + lighting_use_dynamic = DYNAMIC_LIGHTING_IFSTARLIGHT /area/start name = "start area" icon_state = "start" requires_power = 0 luminosity = 1 - dynamic_lighting = DYNAMIC_LIGHTING_DISABLED + lighting_use_dynamic = DYNAMIC_LIGHTING_DISABLED has_gravity = 1 -// CENTCOM - -/area/centcom - name = "Centcom" - icon_state = "centcom" - requires_power = 0 - has_gravity = 1 - noteleport = 1 - blob_allowed = 0 //Should go without saying, no blobs should take over centcom as a win condition. - -/area/centcom/control - name = "Centcom Docks" - -/area/centcom/evac - name = "Centcom Recovery Ship" - -/area/centcom/supply - name = "Centcom Supply Shuttle Dock" - -/area/centcom/ferry - name = "Centcom Transport Shuttle Dock" - -/area/centcom/prison - name = "Admin Prison" - -/area/centcom/holding - name = "Holding Facility" - -//SYNDICATES - -/area/syndicate_mothership - name = "Syndicate Mothership" - icon_state = "syndie-ship" - requires_power = 0 - has_gravity = 1 - noteleport = 1 - blob_allowed = 0 //Not... entirely sure this will ever come up... but if the bus makes blobs AND ops, it shouldn't aim for the ops to win. - -/area/syndicate_mothership/control - name = "Syndicate Control Room" - icon_state = "syndie-control" - -/area/syndicate_mothership/elite_squad - name = "Syndicate Elite Squad" - icon_state = "syndie-elite" //EXTRA @@ -237,7 +81,7 @@ var/list/teleportlocs = list() /area/asteroid/artifactroom/New() ..() - dynamic_lighting = TRUE + SetDynamicLighting() /area/planet/clown name = "Clown Planet" @@ -249,144 +93,13 @@ var/list/teleportlocs = list() icon_state = "telesci" requires_power = 0 -/area/tdome - name = "Thunderdome" - icon_state = "yellow" - requires_power = 0 - has_gravity = 1 - -/area/tdome/arena - name = "Thunderdome Arena" - icon_state = "thunder" - -/area/tdome/arena_source - name = "Thunderdome Arena Template" - icon_state = "thunder" - -/area/tdome/tdome1 - name = "Thunderdome (Team 1)" - icon_state = "green" - -/area/tdome/tdome2 - name = "Thunderdome (Team 2)" - icon_state = "green" - -/area/tdome/tdomeadmin - name = "Thunderdome (Admin.)" - icon_state = "purple" - -/area/tdome/tdomeobserve - name = "Thunderdome (Observer.)" - icon_state = "purple" - -//ENEMY - - -/area/wizard_station - name = "Wizard's Den" - icon_state = "yellow" - requires_power = 0 - has_gravity = 1 - noteleport = 1 - -//Abductors -/area/abductor_ship - name = "Abductor Ship" - icon_state = "yellow" - requires_power = 0 - noteleport = 1 - has_gravity = 1 - - -//PRISON -/area/prison - name = "Prison Station" - icon_state = "brig" - -/area/prison/arrival_airlock - name = "Prison Station Airlock" - icon_state = "green" - requires_power = 0 - -/area/prison/control - name = "Prison Security Checkpoint" - icon_state = "security" - -/area/prison/crew_quarters - name = "Prison Security Quarters" - icon_state = "security" - -/area/prison/rec_room - name = "Prison Rec Room" - icon_state = "green" - -/area/prison/closet - name = "Prison Supply Closet" - icon_state = "dk_yellow" - -/area/prison/hallway/fore - name = "Prison Fore Hallway" - icon_state = "yellow" - -/area/prison/hallway/aft - name = "Prison Aft Hallway" - icon_state = "yellow" - -/area/prison/hallway/port - name = "Prison Port Hallway" - icon_state = "yellow" - -/area/prison/hallway/starboard - name = "Prison Starboard Hallway" - icon_state = "yellow" - -/area/prison/morgue - name = "Prison Morgue" - icon_state = "morgue" - ambientsounds = list('sound/ambience/ambimo1.ogg','sound/ambience/ambimo2.ogg') - -/area/prison/medical_research - name = "Prison Genetic Research" - icon_state = "medresearch" - -/area/prison/medical - name = "Prison Medbay" - icon_state = "medbay" - -/area/prison/solar - name = "Prison Solar Array" - icon_state = "storage" - requires_power = 0 - -/area/prison/podbay - name = "Prison Podbay" - icon_state = "dk_yellow" - -/area/prison/solar_control - name = "Prison Solar Array Control" - icon_state = "dk_yellow" - -/area/prison/solitary - name = "Solitary Confinement" - icon_state = "brig" - -/area/prison/cell_block/A - name = "Prison Cell Block A" - icon_state = "brig" - -/area/prison/cell_block/B - name = "Prison Cell Block B" - icon_state = "brig" - -/area/prison/cell_block/C - name = "Prison Cell Block C" - icon_state = "brig" //STATION13 /area/atmos name = "Atmospherics" icon_state = "atmos" + flags = NONE //Maintenance /area/maintenance @@ -608,11 +321,15 @@ var/list/teleportlocs = list() /area/library name = "Library" icon_state = "library" + flags = NONE + +/area/chapel + icon_state = "chapel" + ambientsounds = list('sound/ambience/ambicha1.ogg','sound/ambience/ambicha2.ogg','sound/ambience/ambicha3.ogg','sound/ambience/ambicha4.ogg') + flags = NONE /area/chapel/main name = "Chapel" - icon_state = "chapel" - ambientsounds = list('sound/ambience/ambicha1.ogg','sound/ambience/ambicha2.ogg','sound/ambience/ambicha3.ogg','sound/ambience/ambicha4.ogg') /area/chapel/office name = "Chapel Office" @@ -656,8 +373,10 @@ var/list/teleportlocs = list() /area/solar requires_power = 0 luminosity = 1 - dynamic_lighting = DYNAMIC_LIGHTING_IFSTARLIGHT + lighting_use_dynamic = DYNAMIC_LIGHTING_IFSTARLIGHT valid_territory = 0 + blob_allowed = FALSE + flags = NONE /area/solar/auxport name = "Fore Port Solar Array" @@ -731,12 +450,6 @@ var/list/teleportlocs = list() icon_state = "teleporter" music = "signal" -/area/AIsattele - name = "Abandoned Teleporter" - icon_state = "teleporter" - music = "signal" - ambientsounds = list('sound/ambience/ambimalf.ogg') - //MedBay /area/medical/medbay @@ -774,6 +487,7 @@ var/list/teleportlocs = list() /area/medical/virology name = "Virology" icon_state = "virology" + flags = NONE /area/medical/morgue name = "Morgue" @@ -851,22 +565,6 @@ var/list/teleportlocs = list() name = "Transfer Centre" icon_state = "armory" -/* -/area/security/transfer/New() - ..() - - spawn(10) //let objects set up first - for(var/turf/turfToGrayscale in src) - if(turfToGrayscale.icon) - var/icon/newIcon = icon(turfToGrayscale.icon) - newIcon.GrayScale() - turfToGrayscale.icon = newIcon - for(var/obj/objectToGrayscale in turfToGrayscale) //1 level deep, means tables, apcs, locker, etc, but not locker contents - if(objectToGrayscale.icon) - var/icon/newIcon = icon(objectToGrayscale.icon) - newIcon.GrayScale() - objectToGrayscale.icon = newIcon -*/ /area/security/nuke_storage name = "Vault" @@ -944,9 +642,10 @@ var/list/teleportlocs = list() name = "Mech Bay" icon_state = "yellow" -/area/janitor/ +/area/janitor name = "Custodial Closet" icon_state = "janitor" + flags = NONE /area/hydroponics name = "Hydroponics" @@ -1038,119 +737,6 @@ var/list/teleportlocs = list() name = "Test Room" icon_state = "storage" -//DJSTATION - -/area/djstation - name = "Ruskie DJ Station" - icon_state = "DJ" - has_gravity = 1 - blob_allowed = 0 //Nope, no winning on the DJ station as a blob. Gotta eat the main station. - -/area/djstation/solars - name = "DJ Station Solars" - icon_state = "DJ" - has_gravity = 1 - -//DERELICT - -/area/derelict - name = "Derelict Station" - icon_state = "storage" - blob_allowed = 0 //Nope, no winning on the derelict as a blob. Gotta eat the station. - -/area/derelict/hallway/primary - name = "Derelict Primary Hallway" - icon_state = "hallP" - -/area/derelict/hallway/secondary - name = "Derelict Secondary Hallway" - icon_state = "hallS" - -/area/derelict/arrival - name = "Derelict Arrival Centre" - icon_state = "yellow" - -/area/derelict/storage/equipment - name = "Derelict Equipment Storage" - -/area/derelict/storage/storage_access - name = "Derelict Storage Access" - -/area/derelict/storage/engine_storage - name = "Derelict Engine Storage" - icon_state = "green" - -/area/derelict/bridge - name = "Derelict Control Room" - icon_state = "bridge" - -/area/derelict/secret - name = "Derelict Secret Room" - icon_state = "library" - -/area/derelict/bridge/access - name = "Derelict Control Room Access" - icon_state = "auxstorage" - -/area/derelict/bridge/ai_upload - name = "Derelict Computer Core" - icon_state = "ai" - -/area/derelict/solar_control - name = "Derelict Solar Control" - icon_state = "engine" - -/area/derelict/se_solar - name = "South East Solars" - icon_state = "engine" - -/area/derelict/crew_quarters - name = "Derelict Crew Quarters" - icon_state = "fitness" - -/area/derelict/medical - name = "Derelict Medbay" - icon_state = "medbay" - -/area/derelict/medical/morgue - name = "Derelict Morgue" - icon_state = "morgue" - -/area/derelict/medical/chapel - name = "Derelict Chapel" - icon_state = "chapel" - -/area/derelict/teleporter - name = "Derelict Teleporter" - icon_state = "teleporter" - -/area/derelict/eva - name = "Derelict EVA Storage" - icon_state = "eva" - -/area/derelict/ship - name = "Abandoned Ship" - icon_state = "yellow" - -/area/solar/derelict_starboard - name = "Derelict Starboard Solar Array" - icon_state = "panelsS" - -/area/solar/derelict_aft - name = "Derelict Aft Solar Array" - icon_state = "yellow" - -/area/derelict/singularity_engine - name = "Derelict Singularity Engine" - icon_state = "engine" - -/area/derelict/gravity_generator - name = "Derelict Gravity Generator Room" - icon_state = "red" - -/area/derelict/atmospherics - name = "Derelict Atmospherics" - icon_state = "red" //Construction @@ -1158,6 +744,10 @@ var/list/teleportlocs = list() name = "Construction Area" icon_state = "yellow" +/area/mining_construction + name = "Auxillary Base Construction" + icon_state = "yellow" + /area/construction/supplyshuttle name = "Supply Shuttle" icon_state = "yellow" @@ -1208,22 +798,22 @@ var/list/teleportlocs = list() icon_state = "storage" -/area/turret_protected/ +/area/ai_monitored/turret_protected ambientsounds = list('sound/ambience/ambimalf.ogg') -/area/turret_protected/ai_upload +/area/ai_monitored/turret_protected/ai_upload name = "AI Upload Chamber" icon_state = "ai_upload" -/area/turret_protected/ai_upload_foyer +/area/ai_monitored/turret_protected/ai_upload_foyer name = "AI Upload Access" icon_state = "ai_foyer" -/area/turret_protected/ai +/area/ai_monitored/turret_protected/ai name = "AI Chamber" icon_state = "ai_chamber" -/area/turret_protected/aisat +/area/ai_monitored/turret_protected/aisat name = "AI Satellite" icon_state = "ai" @@ -1231,66 +821,40 @@ var/list/teleportlocs = list() name = "AI Satellite Exterior" icon_state = "yellow" -/area/turret_protected/aisat_interior +/area/ai_monitored/turret_protected/aisat_interior name = "AI Satellite Antechamber" icon_state = "ai" -/area/turret_protected/AIsatextFP +/area/ai_monitored/turret_protected/AIsatextFP name = "AI Sat Ext" icon_state = "storage" luminosity = 1 - dynamic_lighting = DYNAMIC_LIGHTING_IFSTARLIGHT + lighting_use_dynamic = DYNAMIC_LIGHTING_IFSTARLIGHT -/area/turret_protected/AIsatextFS +/area/ai_monitored/turret_protected/AIsatextFS name = "AI Sat Ext" icon_state = "storage" luminosity = 1 - dynamic_lighting = DYNAMIC_LIGHTING_IFSTARLIGHT + lighting_use_dynamic = DYNAMIC_LIGHTING_IFSTARLIGHT -/area/turret_protected/AIsatextAS +/area/ai_monitored/turret_protected/AIsatextAS name = "AI Sat Ext" icon_state = "storage" luminosity = 1 - dynamic_lighting = DYNAMIC_LIGHTING_IFSTARLIGHT + lighting_use_dynamic = DYNAMIC_LIGHTING_IFSTARLIGHT -/area/turret_protected/AIsatextAP +/area/ai_monitored/turret_protected/AIsatextAP name = "AI Sat Ext" icon_state = "storage" luminosity = 1 - dynamic_lighting = DYNAMIC_LIGHTING_IFSTARLIGHT + lighting_use_dynamic = DYNAMIC_LIGHTING_IFSTARLIGHT -/area/turret_protected/NewAIMain +/area/ai_monitored/turret_protected/NewAIMain name = "AI Main New" icon_state = "storage" -//Misc - - - -/area/wreck/ai - name = "AI Chamber" - icon_state = "ai" - -/area/wreck/main - name = "Wreck" - icon_state = "storage" - -/area/wreck/engineering - name = "Power Room" - icon_state = "engine" - -/area/wreck/bridge - name = "Bridge" - icon_state = "bridge" - -/area/generic - name = "Unknown" - icon_state = "storage" - - - // Telecommunications Satellite /area/tcommsat @@ -1304,22 +868,22 @@ var/list/teleportlocs = list() name = "Abandoned Satellite" icon_state = "tcomsatcham" -/area/turret_protected/tcomsat +/area/ai_monitored/turret_protected/tcomsat name = "Telecoms Satellite" icon_state = "tcomsatlob" ambientsounds = list('sound/ambience/ambisin2.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/ambigen10.ogg') -/area/turret_protected/tcomfoyer +/area/ai_monitored/turret_protected/tcomfoyer name = "Telecoms Foyer" icon_state = "tcomsatentrance" ambientsounds = list('sound/ambience/ambisin2.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/ambigen10.ogg') -/area/turret_protected/tcomwest +/area/ai_monitored/turret_protected/tcomwest name = "Telecommunications Satellite West Wing" icon_state = "tcomsatwest" ambientsounds = list('sound/ambience/ambisin2.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/ambigen10.ogg') -/area/turret_protected/tcomeast +/area/ai_monitored/turret_protected/tcomeast name = "Telecommunications Satellite East Wing" icon_state = "tcomsateast" ambientsounds = list('sound/ambience/ambisin2.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/ambigen10.ogg') @@ -1337,246 +901,6 @@ var/list/teleportlocs = list() icon_state = "tcomsatlounge" -// Hell -/area/hell - name = "Hell Lobby" - //icon = "ICON FILENAME" - //icon_state = "NAME OF ICON" - requires_power = 0 - music = "music/music.ogg" - -/area/hell/trial1 - name = "Hell Trial1" - //icon_state = "NAME OF ICON" (defaults to "unknown" (blank)) - -/area/hell/trial1 - name = "Hell Trial2" - //icon_state = "NAME OF ICON" (defaults to "unknown" (blank)) - -/area/hell/trial1 - name = "Hell Trial3" - //icon_state = "NAME OF ICON" (defaults to "unknown" (blank)) - -// Away Missions -/area/awaymission - name = "Strange Location" - icon_state = "away" - has_gravity = 1 - -/area/awaymission/example - name = "Strange Station" - icon_state = "away" - -/area/awaymission/desert - name = "Mars" - icon_state = "away" - -/area/awaymission/listeningpost - name = "Listening Post" - icon_state = "away" - requires_power = 0 - -/area/awaymission/beach - name = "Beach" - icon_state = "away" - luminosity = 1 - dynamic_lighting = DYNAMIC_LIGHTING_DISABLED - requires_power = 0 - has_gravity = 1 - ambientsounds = list('sound/ambience/shore.ogg', 'sound/ambience/seag1.ogg','sound/ambience/seag2.ogg','sound/ambience/seag2.ogg') - -/area/spacecontent - name = "space" - -/area/spacecontent/a1 - icon_state = "spacecontent1" - -/area/spacecontent/a2 - icon_state = "spacecontent2" - -/area/spacecontent/a3 - icon_state = "spacecontent3" - -/area/spacecontent/a4 - icon_state = "spacecontent4" - -/area/spacecontent/a5 - icon_state = "spacecontent5" - -/area/spacecontent/a6 - icon_state = "spacecontent6" - -/area/spacecontent/a7 - icon_state = "spacecontent7" - -/area/spacecontent/a8 - icon_state = "spacecontent8" - -/area/spacecontent/a9 - icon_state = "spacecontent9" - -/area/spacecontent/a10 - icon_state = "spacecontent10" - -/area/spacecontent/a11 - icon_state = "spacecontent11" - -/area/spacecontent/a11 - icon_state = "spacecontent12" - -/area/spacecontent/a12 - icon_state = "spacecontent13" - -/area/spacecontent/a13 - icon_state = "spacecontent14" - -/area/spacecontent/a14 - icon_state = "spacecontent14" - -/area/spacecontent/a15 - icon_state = "spacecontent15" - -/area/spacecontent/a16 - icon_state = "spacecontent16" - -/area/spacecontent/a17 - icon_state = "spacecontent17" - -/area/spacecontent/a18 - icon_state = "spacecontent18" - -/area/spacecontent/a19 - icon_state = "spacecontent19" - -/area/spacecontent/a20 - icon_state = "spacecontent20" - -/area/spacecontent/a21 - icon_state = "spacecontent21" - -/area/spacecontent/a22 - icon_state = "spacecontent22" - -/area/spacecontent/a23 - icon_state = "spacecontent23" - -/area/spacecontent/a24 - icon_state = "spacecontent24" - -/area/spacecontent/a25 - icon_state = "spacecontent25" - -/area/spacecontent/a26 - icon_state = "spacecontent26" - -/area/spacecontent/a27 - icon_state = "spacecontent27" - -/area/spacecontent/a28 - icon_state = "spacecontent28" - -/area/spacecontent/a29 - icon_state = "spacecontent29" - -/area/spacecontent/a30 - icon_state = "spacecontent30" - -/area/awaycontent - name = "space" - -/area/awaycontent/a1 - icon_state = "awaycontent1" - -/area/awaycontent/a2 - icon_state = "awaycontent2" - -/area/awaycontent/a3 - icon_state = "awaycontent3" - -/area/awaycontent/a4 - icon_state = "awaycontent4" - -/area/awaycontent/a5 - icon_state = "awaycontent5" - -/area/awaycontent/a6 - icon_state = "awaycontent6" - -/area/awaycontent/a7 - icon_state = "awaycontent7" - -/area/awaycontent/a8 - icon_state = "awaycontent8" - -/area/awaycontent/a9 - icon_state = "awaycontent9" - -/area/awaycontent/a10 - icon_state = "awaycontent10" - -/area/awaycontent/a11 - icon_state = "awaycontent11" - -/area/awaycontent/a11 - icon_state = "awaycontent12" - -/area/awaycontent/a12 - icon_state = "awaycontent13" - -/area/awaycontent/a13 - icon_state = "awaycontent14" - -/area/awaycontent/a14 - icon_state = "awaycontent14" - -/area/awaycontent/a15 - icon_state = "awaycontent15" - -/area/awaycontent/a16 - icon_state = "awaycontent16" - -/area/awaycontent/a17 - icon_state = "awaycontent17" - -/area/awaycontent/a18 - icon_state = "awaycontent18" - -/area/awaycontent/a19 - icon_state = "awaycontent19" - -/area/awaycontent/a20 - icon_state = "awaycontent20" - -/area/awaycontent/a21 - icon_state = "awaycontent21" - -/area/awaycontent/a22 - icon_state = "awaycontent22" - -/area/awaycontent/a23 - icon_state = "awaycontent23" - -/area/awaycontent/a24 - icon_state = "awaycontent24" - -/area/awaycontent/a25 - icon_state = "awaycontent25" - -/area/awaycontent/a26 - icon_state = "awaycontent26" - -/area/awaycontent/a27 - icon_state = "awaycontent27" - -/area/awaycontent/a28 - icon_state = "awaycontent28" - -/area/awaycontent/a29 - icon_state = "awaycontent29" - -/area/awaycontent/a30 - icon_state = "awaycontent30" - ///////////////////////////////////////////////////////////////////// /* @@ -1611,7 +935,7 @@ var/list/the_station_areas = list ( /area/ai_monitored/storage/eva, //do not try to simplify to "/area/ai_monitored" --rastaf0 // /area/ai_monitored/storage/secure, //not present on map // /area/ai_monitored/storage/emergency, //not present on map - /area/turret_protected/ai_upload, //do not try to simplify to "/area/turret_protected" --rastaf0 - /area/turret_protected/ai_upload_foyer, - /area/turret_protected/ai, + /area/ai_monitored/turret_protected/ai_upload, //do not try to simplify to "/area/ai_monitored/turret_protected" --rastaf0 + /area/ai_monitored/turret_protected/ai_upload_foyer, + /area/ai_monitored/turret_protected/ai, ) diff --git a/code/game/area/ai_monitored.dm b/code/game/area/ai_monitored.dm index 68caef516e..5f7bbc3f05 100644 --- a/code/game/area/ai_monitored.dm +++ b/code/game/area/ai_monitored.dm @@ -1,24 +1,29 @@ /area/ai_monitored name = "AI Monitored Area" - var/obj/machinery/camera/motioncamera = null + var/list/obj/machinery/camera/motioncameras = list() + var/list/motionTargets = list() - -/area/ai_monitored/New() +/area/ai_monitored/initialize() ..() - // locate and store the motioncamera - spawn (20) // spawn on a delay to let turfs/objs load - for (var/obj/machinery/camera/M in src) - if(M.isMotion()) - motioncamera = M - M.area_motion = src + for (var/obj/machinery/camera/M in src) + if(M.isMotion()) + motioncameras.Add(M) + M.area_motion = src + +//Only need to use one camera /area/ai_monitored/Entered(atom/movable/O) ..() - if (ismob(O) && motioncamera) - motioncamera.newTarget(O) + if (ismob(O) && motioncameras.len) + for(var/X in motioncameras) + var/obj/machinery/camera/cam = X + cam.newTarget(O) + return /area/ai_monitored/Exited(atom/movable/O) - if (ismob(O) && motioncamera) - motioncamera.lostTarget(O) - - + ..() + if (ismob(O) && motioncameras.len) + for(var/X in motioncameras) + var/obj/machinery/camera/cam = X + cam.lostTarget(O) + return \ No newline at end of file diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 6a61ada3fb..d4d0a71a27 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -1,20 +1,55 @@ // Areas.dm -// Added to fix mech fabs 05/2013 ~Sayu -// This is necessary due to lighting subareas. If you were to go in assuming that things in -// the same logical /area have the parent /area object... well, you would be mistaken. If you -// want to find machines, mobs, etc, in the same logical area, you will need to check all the -// related areas. This returns a master contents list to assist in that. -/proc/area_contents(var/area/A) - if(!istype(A)) return null - var/list/contents = list() - for(var/area/LSA in A.related) - contents += LSA.contents - return contents - -// === /area + level = null + name = "Space" + icon = 'icons/turf/areas.dmi' + icon_state = "unknown" + layer = AREA_LAYER + mouse_opacity = 0 + invisibility = INVISIBILITY_LIGHTING + + var/map_name // Set in New(); preserves the name set by the map maker, even if renamed by the Blueprints. + + var/valid_territory = 1 // If it's a valid territory for gangs to claim + var/blob_allowed = 1 // Does it count for blobs score? By default, all areas count. + + var/eject = null + + var/fire = null + var/atmos = 1 + var/atmosalm = 0 + var/poweralm = 1 + var/party = null + var/lightswitch = 1 + + var/requires_power = 1 + var/always_unpowered = 0 // This gets overriden to 1 for space in area/New(). + + var/outdoors = 0 //For space, the asteroid, lavaland, etc. Used with blueprints to determine if we are adding a new area (vs editing a station room) + + var/power_equip = 1 + var/power_light = 1 + var/power_environ = 1 + var/music = null + var/used_equip = 0 + var/used_light = 0 + var/used_environ = 0 + var/static_equip + var/static_light = 0 + var/static_environ + + var/has_gravity = 0 + var/noteleport = 0 //Are you forbidden from teleporting to the area? (centcomm, mobs, wizard, hand teleporter) + var/safe = 0 //Is the area teleport-safe: no space / radiation / aggresive mobs / other dangers + + var/no_air = null + var/area/master // master area used for power calcluations + var/list/related // the other areas of the same type as this + + var/parallax_movedir = 0 + var/global/global_uid = 0 var/uid var/list/ambientsounds = list('sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg',\ @@ -23,6 +58,43 @@ 'sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg',\ 'sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg',\ 'sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg') + flags = CAN_BE_DIRTY + + +/*Adding a wizard area teleport list because motherfucking lag -- Urist*/ +/*I am far too lazy to make it a proper list of areas so I'll just make it run the usual telepot routine at the start of the game*/ +var/list/teleportlocs = list() + +/proc/process_teleport_locs() + for(var/V in sortedAreas) + var/area/AR = V + if(istype(AR, /area/shuttle) || AR.noteleport) + continue + if(teleportlocs[AR.name]) + continue + var/turf/picked = safepick(get_area_turfs(AR.type)) + if (picked && (picked.z == ZLEVEL_STATION)) + teleportlocs[AR.name] = AR + + sortTim(teleportlocs, /proc/cmp_text_dsc) + +// === + + +// Added to fix mech fabs 05/2013 ~Sayu +// This is necessary due to lighting subareas. If you were to go in assuming that things in +// the same logical /area have the parent /area object... well, you would be mistaken. If you +// want to find machines, mobs, etc, in the same logical area, you will need to check all the +// related areas. This returns a master contents list to assist in that. +/proc/area_contents(area/A) + if(!istype(A)) return null + var/list/contents = list() + for(var/area/LSA in A.related) + contents += LSA.contents + return contents + + + /area/New() icon_state = "" @@ -39,8 +111,8 @@ power_equip = 1 power_environ = 1 - if (dynamic_lighting != DYNAMIC_LIGHTING_IFSTARLIGHT) - dynamic_lighting = DYNAMIC_LIGHTING_DISABLED + if (lighting_use_dynamic != DYNAMIC_LIGHTING_IFSTARLIGHT) + lighting_use_dynamic = DYNAMIC_LIGHTING_DISABLED ..() @@ -74,6 +146,11 @@ D.cancelAlarm("Power", src, source) else D.triggerAlarm("Power", src, cameras, source) + for(var/datum/computer_file/program/alarm_monitor/p in alarmdisplay) + if(state == 1) + p.cancelAlarm("Power", src, source) + else + p.triggerAlarm("Power", src, cameras, source) /area/proc/atmosalert(danger_level, obj/source) if(danger_level != atmosalm) @@ -89,6 +166,8 @@ a.triggerAlarm("Atmosphere", src, cameras, source) for(var/mob/living/simple_animal/drone/D in mob_list) D.triggerAlarm("Atmosphere", src, cameras, source) + for(var/datum/computer_file/program/alarm_monitor/p in alarmdisplay) + p.triggerAlarm("Atmosphere", src, cameras, source) else if (src.atmosalm == 2) for(var/mob/living/silicon/aiPlayer in player_list) @@ -97,6 +176,8 @@ a.cancelAlarm("Atmosphere", src, source) for(var/mob/living/simple_animal/drone/D in mob_list) D.cancelAlarm("Atmosphere", src, source) + for(var/datum/computer_file/program/alarm_monitor/p in alarmdisplay) + p.cancelAlarm("Atmosphere", src, source) src.atmosalm = danger_level return 1 @@ -128,6 +209,8 @@ aiPlayer.triggerAlarm("Fire", src, cameras, source) for (var/mob/living/simple_animal/drone/D in mob_list) D.triggerAlarm("Fire", src, cameras, source) + for(var/datum/computer_file/program/alarm_monitor/p in alarmdisplay) + p.triggerAlarm("Fire", src, cameras, source) /area/proc/firereset(obj/source) for(var/area/RA in related) @@ -150,6 +233,8 @@ a.cancelAlarm("Fire", src, source) for (var/mob/living/simple_animal/drone/D in mob_list) D.cancelAlarm("Fire", src, source) + for(var/datum/computer_file/program/alarm_monitor/p in alarmdisplay) + p.cancelAlarm("Fire", src, source) /area/proc/burglaralert(obj/trigger) if(always_unpowered == 1) //no burglar alarms in space/asteroid @@ -172,7 +257,7 @@ for (var/mob/living/silicon/SILICON in player_list) if(SILICON.triggerAlarm("Burglar", src, cameras, trigger)) //Cancel silicon alert after 1 minute - addtimer(SILICON, "cancelAlarm", 600, FALSE,"Burglar",src,trigger) + addtimer(SILICON, "cancelAlarm", 600, TIMER_NORMAL,"Burglar",src,trigger) /area/proc/set_fire_alarm_effect() fire = 1 @@ -310,7 +395,7 @@ /area/Entered(A) - if(!istype(A,/mob/living)) + if(!isliving(A)) return var/mob/living/L = A @@ -335,11 +420,11 @@ if(L.&& L.client) L.client.played = 0 -/proc/has_gravity(atom/AT, turf/T) - if(!T) - T = get_turf(AT) +/atom/proc/has_gravity(turf/T) + if(!T || !isturf(T)) + T = get_turf(src) var/area/A = get_area(T) - if(istype(T, /turf/open/space)) // Turf never has gravity + if(isspaceturf(T)) // Turf never has gravity return 0 else if(A && A.has_gravity) // Areas which always has gravity return 1 diff --git a/code/game/area/areas/away_content.dm b/code/game/area/areas/away_content.dm new file mode 100644 index 0000000000..6c80a47299 --- /dev/null +++ b/code/game/area/areas/away_content.dm @@ -0,0 +1,457 @@ + +// Away Missions +/area/awaymission + name = "Strange Location" + icon_state = "away" + has_gravity = 1 + +/area/awaymission/example + name = "Strange Station" + icon_state = "away" + +/area/awaymission/desert + name = "Mars" + icon_state = "away" + +/area/awaymission/listeningpost + name = "Listening Post" + icon_state = "away" + requires_power = 0 + +/area/awaymission/beach + name = "Beach" + icon_state = "away" + luminosity = 1 + lighting_use_dynamic = DYNAMIC_LIGHTING_DISABLED + requires_power = 0 + has_gravity = 1 + ambientsounds = list('sound/ambience/shore.ogg', 'sound/ambience/seag1.ogg','sound/ambience/seag2.ogg','sound/ambience/seag2.ogg') + +/area/awaymission/errorroom + name = "Super Secret Room" + luminosity = 1 + lighting_use_dynamic = DYNAMIC_LIGHTING_DISABLED + has_gravity = 1 + + +//Research Base Areas//-- + +/area/awaymission/research + name = "Research Outpost" + icon_state = "away" + luminosity = 0 + lighting_use_dynamic = DYNAMIC_LIGHTING_ENABLED + +/area/awaymission/research/interior + name = "Research Inside" + requires_power = 1 + icon_state = "away2" + +/area/awaymission/research/interior/cryo + name = "Research Cryostasis Room" + icon_state = "medbay" + +/area/awaymission/research/interior/clonestorage + name = "Research Clone Storage" + icon_state = "cloning" + +/area/awaymission/research/interior/genetics + name = "Research Genetics Research" + icon_state = "genetics" + +/area/awaymission/research/interior/engineering + name = "Research Engineering" + icon_state = "engine" + +/area/awaymission/research/interior/security + name = "Research Security" + icon_state = "security" + +/area/awaymission/research/interior/secure + name = "Research Secure Vault" + +/area/awaymission/research/interior/maint + name = "Research Maintenance" + icon_state = "maintcentral" + +/area/awaymission/research/interior/dorm + name = "Research Dorms" + icon_state = "Sleep" + +/area/awaymission/research/interior/escapepods + name = "Research Escape Wing" + icon_state = "exit" + +/area/awaymission/research/interior/gateway + name = "Research Gateway" + icon_state = "start" + +/area/awaymission/research/interior/bathroom + name = "Research Bathrooms" + icon_state = "restrooms" + +/area/awaymission/research/interior/medbay + name = "Research Medbay" + icon_state = "medbay" + +/area/awaymission/research/exterior + name = "Research Exterior" + icon_state = "unknown" + + + +//Challenge Areas + +/area/awaymission/challenge/start + name = "Where Am I?" + icon_state = "away" + +/area/awaymission/challenge/main + name = "Danger Room" + icon_state = "away1" + requires_power = 0 + +/area/awaymission/challenge/end + name = "Administration" + icon_state = "away2" + requires_power = 0 + + +//centcomAway areas + +/area/awaymission/centcomAway + name = "XCC-P5831" + icon_state = "away" + requires_power = 0 + +/area/awaymission/centcomAway/general + name = "XCC-P5831" + music = "music/ambigen3.ogg" + +/area/awaymission/centcomAway/maint + name = "XCC-P5831 Maintenance" + icon_state = "away1" + music = "music/ambisin1.ogg" + +/area/awaymission/centcomAway/thunderdome + name = "XCC-P5831 Thunderdome" + icon_state = "away2" + music = "music/ambisin2.ogg" + +/area/awaymission/centcomAway/cafe + name = "XCC-P5831 Kitchen Arena" + icon_state = "away3" + music = "music/ambisin3.ogg" + +/area/awaymission/centcomAway/courtroom + name = "XCC-P5831 Courtroom" + icon_state = "away4" + music = "music/ambisin4.ogg" + +/area/awaymission/centcomAway/hangar + name = "XCC-P5831 Hangars" + icon_state = "away4" + music = "music/ambigen5.ogg" + + +/*Cabin areas*/ +/area/awaymission/snowforest + name = "Snow Forest" + icon_state = "away" + requires_power = 0 + luminosity = 1 + lighting_use_dynamic = DYNAMIC_LIGHTING_ENABLED + +/area/awaymission/cabin + name = "Cabin" + icon_state = "away2" + requires_power = 1 + luminosity = 0 + lighting_use_dynamic = DYNAMIC_LIGHTING_ENABLED + +/area/awaymission/snowforest/lumbermill + name = "Lumbermill" + icon_state = "away3" + +//Packer Ship Areas + +/area/awaymission/BMPship + name = "BMP Asteroids" + icon_state = "away" + luminosity = 0 + + +/area/awaymission/BMPship/Aft + name = "Aft Block" + icon_state = "away1" + requires_power = 1 + +/area/awaymission/BMPship/Midship + name = "Midship Block" + icon_state = "away2" + requires_power = 1 + +/area/awaymission/BMPship/Fore + name = "Fore Block" + icon_state = "away3" + requires_power = 1 + + +//Academy Areas + +/area/awaymission/academy + name = "Academy Asteroids" + icon_state = "away" + +/area/awaymission/academy/headmaster + name = "Academy Fore Block" + icon_state = "away1" + +/area/awaymission/academy/classrooms + name = "Academy Classroom Block" + icon_state = "away2" + +/area/awaymission/academy/academyaft + name = "Academy Ship Aft Block" + icon_state = "away3" + +/area/awaymission/academy/academygate + name = "Academy Gateway" + icon_state = "away4" + +/area/awaymission/academy/academycellar + name = "Academy Cellar" + icon_state = "away4" + +/area/awaymission/academy/academyengine + name = "Academy Engine" + icon_state = "away4" + + + +//Wild West Areas + +/area/awaymission/wwmines + name = "Wild West Mines" + icon_state = "away1" + luminosity = 1 + requires_power = 0 + +/area/awaymission/wwgov + name = "Wild West Mansion" + icon_state = "away2" + luminosity = 1 + requires_power = 0 + +/area/awaymission/wwrefine + name = "Wild West Refinery" + icon_state = "away3" + luminosity = 1 + requires_power = 0 + +/area/awaymission/wwvault + name = "Wild West Vault" + icon_state = "away3" + luminosity = 0 + +/area/awaymission/wwvaultdoors + name = "Wild West Vault Doors" // this is to keep the vault area being entirely lit because of requires_power + icon_state = "away2" + requires_power = 0 + luminosity = 0 + + +/* + * Areas + */ + //Gateroom gets its own APC specifically for the gate + /area/awaymission/gateroom + + //Library, medbay, storage room + /area/awaymission/southblock + + //Arrivals, security, hydroponics, shuttles (since they dont move, they dont need specific areas) + /area/awaymission/arrivalblock + + //Crew quarters, cafeteria, chapel + /area/awaymission/midblock + + //engineering, bridge (not really north but it doesnt really need its own APC) + /area/awaymission/northblock + + //That massive research room + /area/awaymission/research + +//Syndicate shuttle +/area/awaymission/syndishuttle + + +//Spacebattle Areas + +/area/awaymission/spacebattle + name = "Space Battle" + icon_state = "away" + requires_power = 0 + +/area/awaymission/spacebattle/cruiser + name = "Nanotrasen Cruiser" + +/area/awaymission/spacebattle/syndicate1 + name = "Syndicate Assault Ship 1" + +/area/awaymission/spacebattle/syndicate2 + name = "Syndicate Assault Ship 2" + +/area/awaymission/spacebattle/syndicate3 + name = "Syndicate Assault Ship 3" + +/area/awaymission/spacebattle/syndicate4 + name = "Syndicate War Sphere 1" + +/area/awaymission/spacebattle/syndicate5 + name = "Syndicate War Sphere 2" + +/area/awaymission/spacebattle/syndicate6 + name = "Syndicate War Sphere 3" + +/area/awaymission/spacebattle/syndicate7 + name = "Syndicate Fighter" + +/area/awaymission/spacebattle/secret + name = "Hidden Chamber" + + +//Snow Valley Areas//-- + +/area/awaymission/snowdin + name = "Snowdin Tundra Plains" + icon_state = "away" + requires_power = 0 + luminosity = 1 + lighting_use_dynamic = DYNAMIC_LIGHTING_ENABLED + +/area/awaymission/snowdin/post + name = "Snowdin Outpost" + requires_power = 1 + +/area/awaymission/snowdin/igloo + name = "Snowdin Igloos" + icon_state = "away2" + +/area/awaymission/snowdin/cave + name = "Snowdin Caves" + icon_state = "away2" + luminosity = 0 + +/area/awaymission/snowdin/base + name = "Snowdin Main Base" + icon_state = "away3" + requires_power = 1 + +/area/awaymission/snowdin/dungeon1 + name = "Snowdin Depths" + icon_state = "away2" + luminosity = 0 + +/area/awaymission/snowdin/sekret + name = "Snowdin Operations" + icon_state = "away3" + requires_power = 1 + + + +/area/awaycontent + name = "space" + +/area/awaycontent/a1 + icon_state = "awaycontent1" + +/area/awaycontent/a2 + icon_state = "awaycontent2" + +/area/awaycontent/a3 + icon_state = "awaycontent3" + +/area/awaycontent/a4 + icon_state = "awaycontent4" + +/area/awaycontent/a5 + icon_state = "awaycontent5" + +/area/awaycontent/a6 + icon_state = "awaycontent6" + +/area/awaycontent/a7 + icon_state = "awaycontent7" + +/area/awaycontent/a8 + icon_state = "awaycontent8" + +/area/awaycontent/a9 + icon_state = "awaycontent9" + +/area/awaycontent/a10 + icon_state = "awaycontent10" + +/area/awaycontent/a11 + icon_state = "awaycontent11" + +/area/awaycontent/a11 + icon_state = "awaycontent12" + +/area/awaycontent/a12 + icon_state = "awaycontent13" + +/area/awaycontent/a13 + icon_state = "awaycontent14" + +/area/awaycontent/a14 + icon_state = "awaycontent14" + +/area/awaycontent/a15 + icon_state = "awaycontent15" + +/area/awaycontent/a16 + icon_state = "awaycontent16" + +/area/awaycontent/a17 + icon_state = "awaycontent17" + +/area/awaycontent/a18 + icon_state = "awaycontent18" + +/area/awaycontent/a19 + icon_state = "awaycontent19" + +/area/awaycontent/a20 + icon_state = "awaycontent20" + +/area/awaycontent/a21 + icon_state = "awaycontent21" + +/area/awaycontent/a22 + icon_state = "awaycontent22" + +/area/awaycontent/a23 + icon_state = "awaycontent23" + +/area/awaycontent/a24 + icon_state = "awaycontent24" + +/area/awaycontent/a25 + icon_state = "awaycontent25" + +/area/awaycontent/a26 + icon_state = "awaycontent26" + +/area/awaycontent/a27 + icon_state = "awaycontent27" + +/area/awaycontent/a28 + icon_state = "awaycontent28" + +/area/awaycontent/a29 + icon_state = "awaycontent29" + +/area/awaycontent/a30 + icon_state = "awaycontent30" \ No newline at end of file diff --git a/code/game/area/areas/centcom.dm b/code/game/area/areas/centcom.dm new file mode 100644 index 0000000000..9a6f28a968 --- /dev/null +++ b/code/game/area/areas/centcom.dm @@ -0,0 +1,134 @@ + +// CENTCOM + +/area/centcom + name = "Centcom" + icon_state = "centcom" + requires_power = 0 + has_gravity = 1 + noteleport = 1 + blob_allowed = 0 //Should go without saying, no blobs should take over centcom as a win condition. + flags = NONE + +/area/centcom/control + name = "Centcom Docks" + +/area/centcom/evac + name = "Centcom Recovery Ship" + +/area/centcom/supply + name = "Centcom Supply Shuttle Dock" + +/area/centcom/ferry + name = "Centcom Transport Shuttle Dock" + +/area/centcom/prison + name = "Admin Prison" + +/area/centcom/holding + name = "Holding Facility" + +//THUNDERDOME + +/area/tdome + name = "Thunderdome" + icon_state = "yellow" + requires_power = 0 + has_gravity = 1 + +/area/tdome/arena + name = "Thunderdome Arena" + icon_state = "thunder" + +/area/tdome/arena_source + name = "Thunderdome Arena Template" + icon_state = "thunder" + +/area/tdome/tdome1 + name = "Thunderdome (Team 1)" + icon_state = "green" + +/area/tdome/tdome2 + name = "Thunderdome (Team 2)" + icon_state = "green" + +/area/tdome/tdomeadmin + name = "Thunderdome (Admin.)" + icon_state = "purple" + +/area/tdome/tdomeobserve + name = "Thunderdome (Observer.)" + icon_state = "purple" + + +//ENEMY + +//Wizard +/area/wizard_station + name = "Wizard's Den" + icon_state = "yellow" + requires_power = 0 + has_gravity = 1 + noteleport = 1 + +//Abductors +/area/abductor_ship + name = "Abductor Ship" + icon_state = "yellow" + requires_power = 0 + noteleport = 1 + has_gravity = 1 + +//Syndicates +/area/syndicate_mothership + name = "Syndicate Mothership" + icon_state = "syndie-ship" + requires_power = 0 + has_gravity = 1 + noteleport = 1 + blob_allowed = 0 //Not... entirely sure this will ever come up... but if the bus makes blobs AND ops, it shouldn't aim for the ops to win. + +/area/syndicate_mothership/control + name = "Syndicate Control Room" + icon_state = "syndie-control" + +/area/syndicate_mothership/elite_squad + name = "Syndicate Elite Squad" + icon_state = "syndie-elite" + + + +//CAPTURE THE FLAG + +/area/ctf + name = "Capture the Flag" + icon_state = "yellow" + requires_power = 0 + has_gravity = 1 + +/area/ctf/control_room + name = "Control Room A" + +/area/ctf/control_room2 + name = "Control Room B" + +/area/ctf/central + name = "Central" + +/area/ctf/main_hall + name = "Main Hall A" + +/area/ctf/main_hall2 + name = "Main Hall B" + +/area/ctf/corridor + name = "Corridor A" + +/area/ctf/corridor2 + name = "Corridor B" + +/area/ctf/flag_room + name = "Flag Room A" + +/area/ctf/flag_room2 + name = "Flag Room B" \ No newline at end of file diff --git a/code/game/area/areas/derelict.dm b/code/game/area/areas/derelict.dm new file mode 100644 index 0000000000..9679103f38 --- /dev/null +++ b/code/game/area/areas/derelict.dm @@ -0,0 +1,124 @@ +//DERELICT + +/area/derelict + name = "Derelict Station" + icon_state = "storage" + blob_allowed = 0 //Nope, no winning on the derelict as a blob. Gotta eat the station. + +/area/derelict/hallway/primary + name = "Derelict Primary Hallway" + icon_state = "hallP" + +/area/derelict/hallway/secondary + name = "Derelict Secondary Hallway" + icon_state = "hallS" + +/area/derelict/arrival + name = "Derelict Arrival Centre" + icon_state = "yellow" + +/area/derelict/storage/equipment + name = "Derelict Equipment Storage" + +/area/derelict/storage/storage_access + name = "Derelict Storage Access" + +/area/derelict/storage/engine_storage + name = "Derelict Engine Storage" + icon_state = "green" + +/area/derelict/bridge + name = "Derelict Control Room" + icon_state = "bridge" + +/area/derelict/secret + name = "Derelict Secret Room" + icon_state = "library" + +/area/derelict/bridge/access + name = "Derelict Control Room Access" + icon_state = "auxstorage" + +/area/derelict/bridge/ai_upload + name = "Derelict Computer Core" + icon_state = "ai" + +/area/derelict/solar_control + name = "Derelict Solar Control" + icon_state = "engine" + +/area/derelict/se_solar + name = "South East Solars" + icon_state = "engine" + +/area/derelict/crew_quarters + name = "Derelict Crew Quarters" + icon_state = "fitness" + +/area/derelict/medical + name = "Derelict Medbay" + icon_state = "medbay" + +/area/derelict/medical/morgue + name = "Derelict Morgue" + icon_state = "morgue" + +/area/derelict/medical/chapel + name = "Derelict Chapel" + icon_state = "chapel" + +/area/derelict/teleporter + name = "Derelict Teleporter" + icon_state = "teleporter" + +/area/derelict/eva + name = "Derelict EVA Storage" + icon_state = "eva" + +/area/derelict/ship + name = "Abandoned Ship" + icon_state = "yellow" + +/area/solar/derelict_starboard + name = "Derelict Starboard Solar Array" + icon_state = "panelsS" + +/area/solar/derelict_aft + name = "Derelict Aft Solar Array" + icon_state = "yellow" + +/area/derelict/singularity_engine + name = "Derelict Singularity Engine" + icon_state = "engine" + +/area/derelict/gravity_generator + name = "Derelict Gravity Generator Room" + icon_state = "red" + +/area/derelict/atmospherics + name = "Derelict Atmospherics" + icon_state = "red" + + + +//DJSTATION + +/area/djstation + name = "Ruskie DJ Station" + icon_state = "DJ" + has_gravity = 1 + blob_allowed = 0 //Nope, no winning on the DJ station as a blob. Gotta eat the main station. + +/area/djstation/solars + name = "DJ Station Solars" + icon_state = "DJ" + has_gravity = 1 + + +//ABANDONED TELEPORTER + +/area/AIsattele + name = "Abandoned Teleporter" + icon_state = "teleporter" + music = "signal" + ambientsounds = list('sound/ambience/ambimalf.ogg') diff --git a/code/modules/holodeck/areas.dm b/code/game/area/areas/holodeck.dm similarity index 77% rename from code/modules/holodeck/areas.dm rename to code/game/area/areas/holodeck.dm index f7bac9dc9a..fa8b23ae5b 100644 --- a/code/modules/holodeck/areas.dm +++ b/code/game/area/areas/holodeck.dm @@ -2,7 +2,8 @@ name = "Holodeck" icon_state = "Holodeck" luminosity = 1 - dynamic_lighting = DYNAMIC_LIGHTING_DISABLED + lighting_use_dynamic = 0 + flags = 0 var/obj/machinery/computer/holodeck/linked var/restricted = 0 // if true, program goes on emag list @@ -66,7 +67,7 @@ name = "Holodeck - Basketball Court" /area/holodeck/rec_center/thunderdome - name = "Holodeck - Thunderdome Court" + name = "Holodeck - Thunderdome Arena" /area/holodeck/rec_center/beach name = "Holodeck - Beach" @@ -78,10 +79,22 @@ name = "Holodeck - Emergency Medical" /area/holodeck/rec_center/pet_lounge - name = "Holodeck - Pet Playground" + name = "Holodeck - Pet Park" -/area/holodeck/rec_center/winterwonderland - name = "Holodeck - Winter Wonderland" +/area/holodeck/rec_center/firingrange + name = "Holodeck - Firing Range" + +/area/holodeck/rec_center/rollercoaster + name = "Holodeck - Roller Coaster" + +/area/holodeck/rec_center/chapelcourt + name = "Holodeck - Chapel Courtroom" + +/area/holodeck/rec_center/spacechess + name = "Holodeck - Space Chess" + +/area/holodeck/rec_center/kobayashi + name = "Holodeck - Kobayashi Maru" // Bad programs @@ -89,6 +102,10 @@ name = "Holodeck - Atmospheric Burn Test" restricted = 1 +/area/holodeck/rec_center/winterwonderland + name = "Holodeck - Winter Wonderland" + restricted = 1 + /area/holodeck/rec_center/wildlife name = "Holodeck - Wildlife Simulation" restricted = 1 @@ -100,3 +117,12 @@ /area/holodeck/rec_center/anthophila name = "Holodeck - Anthophila" restricted = 1 + +/area/holodeck/rec_center/refuel + name = "Holodeck - Refueling Station" + restricted = 1 + +/area/holodeck/rec_center/thunderdome1218 + name = "Holodeck - 1218 AD" + restricted = 1 + diff --git a/code/game/area/areas/mining.dm b/code/game/area/areas/mining.dm new file mode 100644 index 0000000000..7272694476 --- /dev/null +++ b/code/game/area/areas/mining.dm @@ -0,0 +1,120 @@ +/**********************Mine areas**************************/ + +/area/mine + icon_state = "mining" + has_gravity = 1 + +/area/mine/explored + name = "Mine" + icon_state = "explored" + music = null + always_unpowered = 1 + requires_power = 1 + poweralm = 0 + power_environ = 0 + power_equip = 0 + power_light = 0 + outdoors = 1 + ambientsounds = list('sound/ambience/ambimine.ogg') + flags = NONE + +/area/mine/unexplored + name = "Mine" + icon_state = "unexplored" + music = null + always_unpowered = 1 + requires_power = 1 + poweralm = 0 + power_environ = 0 + power_equip = 0 + power_light = 0 + outdoors = 1 + ambientsounds = list('sound/ambience/ambimine.ogg') + flags = NONE + +/area/mine/lobby + name = "Mining Station" + +/area/mine/storage + name = "Mining Station Storage" + +/area/mine/production + name = "Mining Station Starboard Wing" + icon_state = "mining_production" + +/area/mine/abandoned + name = "Abandoned Mining Station" + +/area/mine/living_quarters + name = "Mining Station Port Wing" + icon_state = "mining_living" + +/area/mine/eva + name = "Mining Station EVA" + icon_state = "mining_eva" + +/area/mine/maintenance + name = "Mining Station Communications" + +/area/mine/cafeteria + name = "Mining station Cafeteria" + +/area/mine/hydroponics + name = "Mining station Hydroponics" + +/area/mine/sleeper + name = "Mining station Emergency Sleeper" + +/area/mine/north_outpost + name = "North Mining Outpost" + +/area/mine/west_outpost + name = "West Mining Outpost" + +/area/mine/laborcamp + name = "Labor Camp" + +/area/mine/laborcamp/security + name = "Labor Camp Security" + icon_state = "security" + + + + +/**********************Lavaland Areas**************************/ + +/area/lavaland + icon_state = "mining" + has_gravity = 1 + +/area/lavaland/surface + name = "Lavaland" + icon_state = "explored" + music = null + always_unpowered = 1 + poweralm = 0 + power_environ = 0 + power_equip = 0 + power_light = 0 + requires_power = 1 + ambientsounds = list('sound/ambience/ambilava.ogg') + +/area/lavaland/underground + name = "Lavaland Caves" + icon_state = "unexplored" + music = null + always_unpowered = 1 + requires_power = 1 + poweralm = 0 + power_environ = 0 + power_equip = 0 + power_light = 0 + ambientsounds = list('sound/ambience/ambilava.ogg') + + +/area/lavaland/surface/outdoors + name = "Lavaland Wastes" + outdoors = 1 + +/area/lavaland/surface/outdoors/explored + name = "Lavaland Labor Camp" \ No newline at end of file diff --git a/code/game/area/areas/misc.dm b/code/game/area/areas/misc.dm new file mode 100644 index 0000000000..6a4951d482 --- /dev/null +++ b/code/game/area/areas/misc.dm @@ -0,0 +1,130 @@ + +// Hell +/area/hell + name = "Hell Lobby" + //icon = "ICON FILENAME" + //icon_state = "NAME OF ICON" + requires_power = 0 + music = "music/music.ogg" + +/area/hell/trial1 + name = "Hell Trial1" + //icon_state = "NAME OF ICON" (defaults to "unknown" (blank)) + +/area/hell/trial1 + name = "Hell Trial2" + //icon_state = "NAME OF ICON" (defaults to "unknown" (blank)) + +/area/hell/trial1 + name = "Hell Trial3" + //icon_state = "NAME OF ICON" (defaults to "unknown" (blank)) + + + +//Misc + +/area/wreck/ai + name = "AI Chamber" + icon_state = "ai" + +/area/wreck/main + name = "Wreck" + icon_state = "storage" + +/area/wreck/engineering + name = "Power Room" + icon_state = "engine" + +/area/wreck/bridge + name = "Bridge" + icon_state = "bridge" + +/area/generic + name = "Unknown" + icon_state = "storage" + + + +//PRISON +/area/prison + name = "Prison Station" + icon_state = "brig" + +/area/prison/arrival_airlock + name = "Prison Station Airlock" + icon_state = "green" + requires_power = 0 + +/area/prison/control + name = "Prison Security Checkpoint" + icon_state = "security" + +/area/prison/crew_quarters + name = "Prison Security Quarters" + icon_state = "security" + +/area/prison/rec_room + name = "Prison Rec Room" + icon_state = "green" + +/area/prison/closet + name = "Prison Supply Closet" + icon_state = "dk_yellow" + +/area/prison/hallway/fore + name = "Prison Fore Hallway" + icon_state = "yellow" + +/area/prison/hallway/aft + name = "Prison Aft Hallway" + icon_state = "yellow" + +/area/prison/hallway/port + name = "Prison Port Hallway" + icon_state = "yellow" + +/area/prison/hallway/starboard + name = "Prison Starboard Hallway" + icon_state = "yellow" + +/area/prison/morgue + name = "Prison Morgue" + icon_state = "morgue" + ambientsounds = list('sound/ambience/ambimo1.ogg','sound/ambience/ambimo2.ogg') + +/area/prison/medical_research + name = "Prison Genetic Research" + icon_state = "medresearch" + +/area/prison/medical + name = "Prison Medbay" + icon_state = "medbay" + +/area/prison/solar + name = "Prison Solar Array" + icon_state = "storage" + requires_power = 0 + +/area/prison/podbay + name = "Prison Podbay" + icon_state = "dk_yellow" + +/area/prison/solar_control + name = "Prison Solar Array Control" + icon_state = "dk_yellow" + +/area/prison/solitary + name = "Solitary Confinement" + icon_state = "brig" + +/area/prison/cell_block/A + name = "Prison Cell Block A" + icon_state = "brig" + +/area/prison/cell_block/B + name = "Prison Cell Block B" + icon_state = "brig" + +/area/prison/cell_block/C + name = "Prison Cell Block C" + icon_state = "brig" diff --git a/code/game/area/areas/ruins.dm b/code/game/area/areas/ruins.dm new file mode 100644 index 0000000000..86373fcfaf --- /dev/null +++ b/code/game/area/areas/ruins.dm @@ -0,0 +1,200 @@ +//Parent types + +/area/ruin + name = "\improper Unexplored Location" + icon_state = "away" + has_gravity = 1 + + +/area/ruin/unpowered + always_unpowered = 0 + +/area/ruin/unpowered/no_grav + has_gravity = 0 + +/area/ruin/powered + requires_power = 0 + + + + +//Areas +/area/ruin/unpowered/hierophant + name = "Hierophant's Arena" + +/area/ruin/unpowered/no_grav/way_home + name = "\improper Salvation" + icon_state = "away" + +/area/ruin/powered/snow_biodome + +/area/ruin/powered/golem_ship + name = "Free Golem Ship" + +/area/ruin/powered/syndicate_lava_base + name = "Secret Base" + +// Ruins of "onehalf" ship + +/area/ruin/onehalf/hallway + name = "Hallway" + icon_state = "hallC" + +/area/ruin/onehalf/drone_bay + name = "Mining Drone Bay" + icon_state = "engine" + +/area/ruin/onehalf/dorms_med + name = "Crew Quarters" + icon_state = "Sleep" + +/area/ruin/onehalf/bridge + name = "Bridge" + icon_state = "bridge" + + + +/area/ruin/powered/dinner_for_two + name = "Dinner for Two" + +/area/ruin/powered/authorship + name = "Authorship" + +/area/ruin/powered/aesthetic + name = "Aesthetic" + ambientsounds = list('sound/ambience/ambivapor1.ogg') + + +//Ruin of Hotel + +/area/ruin/hotel + name = "Hotel" + +/area/ruin/hotel/guestroom + name = "Hotel Guest Room" + icon_state = "Sleep" + +/area/ruin/hotel/security + name = "Hotel Security Post" + icon_state = "security" + +/area/ruin/hotel/pool + name = "Hotel Pool Room" + icon_state = "fitness" + +/area/ruin/hotel/bar + name = "Hotel Bar" + icon_state = "cafeteria" + +/area/ruin/hotel/power + name = "Hotel Power Room" + icon_state = "engine_smes" + +/area/ruin/hotel/custodial + name = "Hotel Custodial Closet" + icon_state = "janitor" + +/area/ruin/hotel/shuttle + name = "Hotel Shuttle" + icon_state = "shuttle" + requires_power = 0 + +/area/ruin/hotel/dock + name = "Hotel Shuttle Dock" + icon_state = "start" + +/area/ruin/hotel/workroom + name = "Hotel Staff Room" + icon_state = "crew_quarters" + + + +/area/ruin/fakespace + icon_state = "space" + requires_power = 1 + always_unpowered = 1 + lighting_use_dynamic = DYNAMIC_LIGHTING_DISABLED + has_gravity = 0 + power_light = 0 + power_equip = 0 + power_environ = 0 + valid_territory = 0 + outdoors = 1 + ambientsounds = list('sound/ambience/ambispace.ogg','sound/ambience/title2.ogg') + blob_allowed = 0 + + + +//Ruin of Derelict Oupost + +/area/ruin/derelictoutpost + name = "Derelict Outpost" + icon_state = "green" + +/area/ruin/derelictoutpost/cargostorage + name = "Derelict Outpost Cargo Storage" + icon_state = "storage" + +/area/ruin/derelictoutpost/cargobay + name = "Derelict Outpost Cargo Bay" + icon_state = "quartstorage" + +/area/ruin/derelictoutpost/powerstorage + name = "Derelict Outpost Power Storage" + icon_state = "engine_smes" + +/area/ruin/derelictoutpost/dockedship + name = "Derelict Outpost Docked Ship" + icon_state = "red" + + +//Ruin of Space Bar + +/area/ruin/powered/spacebar + name = "Space Bar" + icon_state = "yellow" + +/area/ruin/powered/spacebar/bar + icon_state = "bar" + + +//Ruin of turretedoutpost + +/area/ruin/turretedoutpost + name = "Turreted Outpost" + icon_state = "red" + + +//Ruin of old teleporter + +/area/ruin/oldteleporter + name = "Old teleporter" + icon_state = "teleporter" + has_gravity = 0 + + +//Ruin of mech transport + +/area/ruin/powered/mechtransport + name = "Mech Transport" + icon_state = "green" + + +//Ruin of gas the lizard + +/area/ruin/gasthelizard + name = "Gas the lizard" + + +//Ruin of Deep Storage + +/area/ruin/deepstorage + name = "Deep Storage" + icon_state = "storage" + + +//Ruin of Abandoned Zoo + +/area/ruin/abandonedzoo + name = "Abandoned Zoo" + icon_state = "green" diff --git a/code/game/area/areas/shuttles.dm b/code/game/area/areas/shuttles.dm new file mode 100644 index 0000000000..f44f8ac769 --- /dev/null +++ b/code/game/area/areas/shuttles.dm @@ -0,0 +1,62 @@ + +//These are shuttle areas; all subtypes are only used as teleportation markers, they have no actual function beyond that. + +/area/shuttle + name = "Shuttle" + requires_power = 0 + luminosity = 1 + lighting_use_dynamic = DYNAMIC_LIGHTING_ENABLED + has_gravity = 1 + always_unpowered = 0 + valid_territory = 0 + icon_state = "shuttle" + +/area/shuttle/transit + name = "Hyperspace" + desc = "Weeeeee" + +/area/shuttle/arrival + name = "Arrival Shuttle" + +/area/shuttle/pod_1 + name = "Escape Pod One" + +/area/shuttle/pod_2 + name = "Escape Pod Two" + +/area/shuttle/pod_3 + name = "Escape Pod Three" + +/area/shuttle/pod_4 + name = "Escape Pod Four" + +/area/shuttle/mining + name = "Mining Shuttle" + blob_allowed = FALSE + +/area/shuttle/labor + name = "Labor Camp Shuttle" + blob_allowed = FALSE + +/area/shuttle/supply + name = "Supply Shuttle" + blob_allowed = FALSE + +/area/shuttle/escape + name = "Emergency Shuttle" + +/area/shuttle/transport + name = "Transport Shuttle" + blob_allowed = FALSE + +/area/shuttle/syndicate + name = "Syndicate Infiltrator" + blob_allowed = FALSE + +/area/shuttle/assault_pod + name = "Steel Rain" + blob_allowed = FALSE + +/area/shuttle/abandoned + name = "Abandoned Ship" + blob_allowed = FALSE diff --git a/code/game/area/areas/space_content.dm b/code/game/area/areas/space_content.dm new file mode 100644 index 0000000000..605cbfa764 --- /dev/null +++ b/code/game/area/areas/space_content.dm @@ -0,0 +1,97 @@ + + +/area/spacecontent + name = "space" + +/area/spacecontent/a1 + icon_state = "spacecontent1" + +/area/spacecontent/a2 + icon_state = "spacecontent2" + +/area/spacecontent/a3 + icon_state = "spacecontent3" + +/area/spacecontent/a4 + icon_state = "spacecontent4" + +/area/spacecontent/a5 + icon_state = "spacecontent5" + +/area/spacecontent/a6 + icon_state = "spacecontent6" + +/area/spacecontent/a7 + icon_state = "spacecontent7" + +/area/spacecontent/a8 + icon_state = "spacecontent8" + +/area/spacecontent/a9 + icon_state = "spacecontent9" + +/area/spacecontent/a10 + icon_state = "spacecontent10" + +/area/spacecontent/a11 + icon_state = "spacecontent11" + +/area/spacecontent/a11 + icon_state = "spacecontent12" + +/area/spacecontent/a12 + icon_state = "spacecontent13" + +/area/spacecontent/a13 + icon_state = "spacecontent14" + +/area/spacecontent/a14 + icon_state = "spacecontent14" + +/area/spacecontent/a15 + icon_state = "spacecontent15" + +/area/spacecontent/a16 + icon_state = "spacecontent16" + +/area/spacecontent/a17 + icon_state = "spacecontent17" + +/area/spacecontent/a18 + icon_state = "spacecontent18" + +/area/spacecontent/a19 + icon_state = "spacecontent19" + +/area/spacecontent/a20 + icon_state = "spacecontent20" + +/area/spacecontent/a21 + icon_state = "spacecontent21" + +/area/spacecontent/a22 + icon_state = "spacecontent22" + +/area/spacecontent/a23 + icon_state = "spacecontent23" + +/area/spacecontent/a24 + icon_state = "spacecontent24" + +/area/spacecontent/a25 + icon_state = "spacecontent25" + +/area/spacecontent/a26 + icon_state = "spacecontent26" + +/area/spacecontent/a27 + icon_state = "spacecontent27" + +/area/spacecontent/a28 + icon_state = "spacecontent28" + +/area/spacecontent/a29 + icon_state = "spacecontent29" + +/area/spacecontent/a30 + icon_state = "spacecontent30" diff --git a/code/game/asteroid.dm b/code/game/asteroid.dm index 42dbc1588a..2898af93e2 100644 --- a/code/game/asteroid.dm +++ b/code/game/asteroid.dm @@ -75,7 +75,7 @@ var/global/max_secret_rooms = 6 floortypes = list(/turf/open/floor/plasteel/cult) treasureitems = list(/obj/item/device/soulstone/anybody=1, /obj/item/clothing/suit/space/hardsuit/cult=1, /obj/item/weapon/bedsheet/cult=2, /obj/item/clothing/suit/cultrobes=2, /mob/living/simple_animal/hostile/creature=3) - fluffitems = list(/obj/effect/gateway=1,/obj/effect/gibspawner=1,/obj/structure/cult/talisman=1,/obj/item/toy/crayon/red=2, + fluffitems = list(/obj/effect/gateway=1,/obj/effect/gibspawner=1,/obj/structure/destructible/cult/talisman=1,/obj/item/toy/crayon/red=2, /obj/item/organ/heart=2, /obj/effect/decal/cleanable/blood=4,/obj/structure/table/wood=2,/obj/item/weapon/ectoplasm=3, /obj/item/clothing/shoes/cult=1) @@ -92,7 +92,7 @@ var/global/max_secret_rooms = 6 theme = "cavein" walltypes = list(/turf/closed/mineral/random/high_chance=1) floortypes = list(/turf/open/floor/plating/asteroid/basalt, /turf/open/floor/plating/beach/sand) - treasureitems = list(/obj/mecha/working/ripley/mining=1, /obj/item/weapon/pickaxe/drill/diamonddrill=2,/obj/item/weapon/gun/energy/kinetic_accelerator/hyper=1, + treasureitems = list(/obj/mecha/working/ripley/mining=1, /obj/item/weapon/pickaxe/drill/diamonddrill=2, /obj/item/weapon/resonator/upgraded=1, /obj/item/weapon/pickaxe/drill/jackhammer=5) fluffitems = list(/obj/effect/decal/cleanable/blood=3,/obj/effect/decal/remains/human=1,/obj/item/clothing/under/overalls=1, /obj/item/weapon/reagent_containers/food/snacks/grown/chili=1,/obj/item/weapon/tank/internals/oxygen/red=2) @@ -117,7 +117,7 @@ var/global/max_secret_rooms = 6 if("speakeasy") theme = "speakeasy" floortypes = list(/turf/open/floor/plasteel,/turf/open/floor/wood) - treasureitems = list(/obj/item/weapon/melee/energy/sword/pirate=1,/obj/item/weapon/gun/projectile/revolver/doublebarrel=1,/obj/item/weapon/storage/backpack/satchel_flat=1, + treasureitems = list(/obj/item/weapon/melee/energy/sword/pirate=1,/obj/item/weapon/gun/ballistic/revolver/doublebarrel=1,/obj/item/weapon/storage/backpack/satchel/flat=1, /obj/machinery/reagentgrinder=2, /obj/machinery/computer/security/wooden_tv=4, /obj/machinery/vending/coffee=3) fluffitems = list(/obj/structure/table/wood=2,/obj/structure/reagent_dispensers/beerkeg=1,/obj/item/stack/spacecash/c500=4, /obj/item/weapon/reagent_containers/food/drinks/shaker=1,/obj/item/weapon/reagent_containers/food/drinks/bottle/wine=3, @@ -126,9 +126,9 @@ var/global/max_secret_rooms = 6 if("plantlab") theme = "plantlab" treasureitems = list(/obj/item/weapon/gun/energy/floragun=1,/obj/item/seeds/sunflower/novaflower=2,/obj/item/seeds/tomato/blue/bluespace=2,/obj/item/seeds/tomato/blue=2, - /obj/item/seeds/coffee/robusta=2, /obj/item/seeds/cash=2) + /obj/item/seeds/coffee/robusta=2, /obj/item/seeds/firelemon=2) fluffitems = list(/obj/item/weapon/twohanded/required/kirbyplants=1,/obj/structure/table/reinforced=2,/obj/machinery/hydroponics/constructable=1, - /obj/effect/glowshroom/single=2,/obj/item/weapon/reagent_containers/syringe/charcoal=2, + /obj/structure/glowshroom/single=2,/obj/item/weapon/reagent_containers/syringe/charcoal=2, /obj/item/weapon/reagent_containers/glass/bottle/diethylamine=3,/obj/item/weapon/reagent_containers/glass/bottle/ammonia=3) /*if("poly") @@ -174,13 +174,13 @@ var/global/max_secret_rooms = 6 if(!T) return 0 - room = spawn_room(T,x_size,y_size,walltypes,floor,) //WE'RE FINALLY CREATING THE ROOM + room = spawn_room(T,x_size,y_size,walltypes,floor) //WE'RE FINALLY CREATING THE ROOM if(room)//time to fill it with stuff var/list/emptyturfs = room["floors"] T = pick(emptyturfs) if(T) - new /obj/effect/glowshroom/single(T) //Just to make it a little more visible + new /obj/structure/glowshroom/single(T) //Just to make it a little more visible var/surprise = null surprise = pickweight(treasureitems) new surprise(T)//here's the prize @@ -195,4 +195,4 @@ var/global/max_secret_rooms = 6 emptyturfs -= T //world.log << "The [theme] themed [T.loc] has been created!" - return 1 \ No newline at end of file + return 1 diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 4eb9476e51..c0d6f8bd3f 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -1,14 +1,12 @@ /atom layer = TURF_LAYER + plane = GAME_PLANE var/level = 2 var/flags = 0 var/list/fingerprints var/list/fingerprintshidden - var/fingerprintslast = null var/list/blood_DNA - - ///Chemistry. - var/datum/reagents/reagents = null + var/admin_spawned = 0 //was this spawned by an admin? used for stat tracking stuff. //This atom's HUD (med/sec, etc) images. Associative list. var/list/image/hud_list = null @@ -21,15 +19,42 @@ //overlays that should remain on top and not normally be removed, like c4. var/list/priority_overlays + var/list/atom_colours //used to store the different colors on an atom + //its inherent color, the colored paint applied on it, special color effect etc... + + +/atom/New() + //atom creation method that preloads variables at creation + if(use_preloader && (src.type == _preloader.target_path))//in case the instanciated atom is creating other atoms in New() + _preloader.load(src) + //atom color stuff + if(color) + add_atom_colour(color, FIXED_COLOUR_PRIORITY) + + //lighting stuff + if(opacity && isturf(loc)) + loc.UpdateAffectingLights() + + if(luminosity) + light = new(src) + + //. = ..() //uncomment if you are dumb enough to add a /datum/New() proc + /atom/Destroy() if(alternate_appearances) for(var/aakey in alternate_appearances) var/datum/alternate_appearance/AA = alternate_appearances[aakey] qdel(AA) alternate_appearances = null - + if(viewing_alternate_appearances) + for(var/aakey in viewing_alternate_appearances) + for(var/aa in viewing_alternate_appearances[aakey]) + var/datum/alternate_appearance/AA = aa + AA.hide(list(src)) return ..() +/atom/proc/CanPass(atom/movable/mover, turf/target, height=1.5) + return (!density || !height) /atom/proc/onCentcom() var/turf/T = get_turf(src) @@ -61,11 +86,11 @@ return 0 -/atom/proc/attack_hulk(mob/living/carbon/human/hulk, do_attack_animation = 0) - if(do_attack_animation) - hulk.changeNext_move(CLICK_CD_MELEE) - add_logs(hulk, src, "punched", "hulk powers") - hulk.do_attack_animation(src) +/atom/proc/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0) + if(does_attack_animation) + user.changeNext_move(CLICK_CD_MELEE) + add_logs(user, src, "punched", "hulk powers") + user.do_attack_animation(src, ATTACK_EFFECT_SMASH) /atom/proc/CheckParts(list/parts_list) for(var/A in parts_list) @@ -76,7 +101,7 @@ reagents.conditional_update() else if(istype(A, /atom/movable)) var/atom/movable/M = A - if(istype(M.loc, /mob/living)) + if(isliving(M.loc)) var/mob/living/L = M.loc L.unEquip(M) M.loc = src @@ -97,8 +122,6 @@ /atom/proc/check_eye(mob/user) return -/atom/proc/on_reagent_change() - return /atom/proc/Bumped(AM as mob|obj) return @@ -202,17 +225,15 @@ return /atom/proc/contents_explosion(severity, target) - for(var/atom/A in contents) - A.ex_act(severity, target) - CHECK_TICK + return /atom/proc/ex_act(severity, target) contents_explosion(severity, target) -/atom/proc/blob_act(obj/effect/blob/B) +/atom/proc/blob_act(obj/structure/blob/B) return -/atom/proc/fire_act() +/atom/proc/fire_act(exposed_temperature, exposed_volume) return /atom/proc/hitby(atom/movable/AM, skipcatch, hitpush, blocked) @@ -327,7 +348,7 @@ var/list/blood_splatter_icons = list() G.add_blood(blood_dna) else transfer_blood_dna(blood_dna) - bloody_hands = rand(2, 4) + bloody_hands = rand(2, 4) update_inv_gloves() //handles bloody hands overlays and updating return 1 @@ -339,12 +360,6 @@ var/list/blood_splatter_icons = list() /atom/proc/wash_cream() return 1 -/atom/proc/change_area(var/area/oldarea, var/area/newarea) - change_area_name(oldarea.name, newarea.name) - -/atom/proc/change_area_name(var/oldname, var/newname) - name = replacetext(name,oldname,newname) - /atom/proc/get_global_map_pos() if(!islist(global_map) || isemptylist(global_map)) return var/cur_x = null @@ -362,7 +377,7 @@ var/list/blood_splatter_icons = list() return 0 /atom/proc/isinspace() - if(istype(get_turf(src), /turf/open/space)) + if(isspaceturf(get_turf(src))) return 1 else return 0 @@ -378,7 +393,7 @@ var/list/blood_splatter_icons = list() /atom/proc/singularity_pull() return -/atom/proc/acid_act(acidpwr, toxpwr, acid_volume) +/atom/proc/acid_act(acidpwr, acid_volume) return /atom/proc/emag_act() @@ -422,7 +437,7 @@ var/list/blood_splatter_icons = list() return /atom/proc/add_vomit_floor(mob/living/carbon/M, toxvomit = 0) - if(istype(src,/turf) ) + if(isturf(src)) var/obj/effect/decal/cleanable/vomit/V = PoolOrNew(/obj/effect/decal/cleanable/vomit, src) // Make toxins vomit look different if(toxvomit) @@ -442,3 +457,88 @@ var/list/blood_splatter_icons = list() //Hook for running code when a dir change occurs /atom/proc/setDir(newdir) dir = newdir + +/atom/proc/mech_melee_attack(obj/mecha/M) + return + + + +/* + Atom Colour Priority System + A System that gives finer control over which atom colour to colour the atom with. + The "highest priority" one is always displayed as opposed to the default of + "whichever was set last is displayed" +*/ + + +/* + Adds an instance of colour_type to the atom's atom_colours list +*/ +/atom/proc/add_atom_colour(coloration, colour_priority) + if(!atom_colours || !atom_colours.len) + atom_colours = list() + atom_colours.len = COLOUR_PRIORITY_AMOUNT //four priority levels currently. + if(!coloration) + return + if(colour_priority > atom_colours.len) + return + atom_colours[colour_priority] = coloration + update_atom_colour() + + +/* + Removes an instance of colour_type from the atom's atom_colours list +*/ +/atom/proc/remove_atom_colour(colour_priority, coloration) + if(!atom_colours) + atom_colours = list() + atom_colours.len = COLOUR_PRIORITY_AMOUNT //four priority levels currently. + if(colour_priority > atom_colours.len) + return + if(coloration && atom_colours[colour_priority] != coloration) + return //if we don't have the expected color (for a specific priority) to remove, do nothing + atom_colours[colour_priority] = null + update_atom_colour() + + +/* + Resets the atom's color to null, and then sets it to the highest priority + colour available +*/ +/atom/proc/update_atom_colour() + if(!atom_colours) + atom_colours = list() + atom_colours.len = COLOUR_PRIORITY_AMOUNT //four priority levels currently. + color = null + for(var/C in atom_colours) + if(islist(C)) + var/list/L = C + if(L.len) + color = L + return + else if(C) + color = C + return + +/atom/vv_edit_var(var_name, var_value) + if(!Debug2) + admin_spawned = TRUE + switch(var_name) + if("luminosity") + src.SetLuminosity(var_value) + return//prevent normal setting of this value + . = ..() + switch(var_name) + if("color") + add_atom_colour(color, ADMIN_COLOUR_PRIORITY) + +/atom/vv_get_dropdown() + . = ..() + . += "---" + var/turf/curturf = get_turf(src) + if (curturf) + .["Jump to"] = "?_src_=holder;adminplayerobservecoodjump=1;X=[curturf.x];Y=[curturf.y];Z=[curturf.z]" + .["Add reagent"] = "?_src_=vars;addreagent=\ref[src]" + .["Trigger EM pulse"] = "?_src_=vars;emp=\ref[src]" + .["Trigger explosion"] = "?_src_=vars;explode=\ref[src]" + diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 1db488d119..5fa1a20326 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -19,6 +19,7 @@ var/inertia_move_delay = 5 var/pass_flags = 0 var/moving_diagonally = 0 //0: not doing a diagonal move. 1 and 2: doing the first/second step of the diagonal move + var/list/client_mobs_in_contents // This contains all the client mobs within this container glide_size = 8 appearance_flags = TILE_BOUND @@ -64,13 +65,12 @@ moving_diagonally = SECOND_DIAG_STEP . = step(src, SOUTH) moving_diagonally = 0 + return if(!loc || (loc == oldloc && oldloc != newloc)) last_move = 0 return - update_client_hook(loc) - if(.) Moved(oldloc, direct) @@ -84,6 +84,8 @@ if (!inertia_moving) inertia_next_move = world.time + inertia_move_delay newtonian_move(Dir) + if (length(client_mobs_in_contents)) + update_parallax_contents() return 1 /atom/movable/Destroy() @@ -134,9 +136,6 @@ continue AM.Crossed(src) Moved(oldloc, 0) - - update_client_hook(destination) - return 1 return 0 @@ -151,33 +150,12 @@ reset_perspective(destination) update_canmove() //if the mob was asleep inside a container and then got forceMoved out we need to make them fall. -/mob/living/carbon/brain/forceMove(atom/destination) +/mob/living/brain/forceMove(atom/destination) if(container) - container.forceMove(destination) + return container.forceMove(destination) else //something went very wrong. CRASH("Brainmob without container.") -/mob/living/silicon/pai/forceMove(atom/destination) - if(card) - card.forceMove(destination) - else //something went very wrong. - CRASH("pAI without card") - -/atom/movable/proc/update_client_hook(atom/destination) - if(locate(/mob) in src) - for(var/client/C in parallax_on_clients) - if((get_turf(C.eye) == destination) && (C.mob.hud_used)) - C.mob.hud_used.update_parallax_values() - -/mob/update_client_hook(atom/destination) - if(locate(/mob) in src) - for(var/client/C in parallax_on_clients) - if((get_turf(C.eye) == destination) && (C.mob.hud_used)) - C.mob.hud_used.update_parallax_values() - else if(client && hud_used) - hud_used.update_parallax_values() - - //Called whenever an object moves and by mobs when they attempt to move themselves through space //And when an object or action applies a force on src, see newtonian_move() below //Return 0 to have src start/keep drifting in a no-grav area and 1 to stop/not start drifting @@ -265,7 +243,7 @@ while(target && ((dist_travelled < range && loc != finalturf) || !has_gravity(src))) //stop if we reached our destination (or max range) and aren't floating var/slept = 0 - if(!istype(loc, /turf)) + if(!isturf(loc)) hit = 1 break @@ -326,26 +304,6 @@ throw_impact(AM) return 1 -//Overlays -/atom/movable/overlay - var/atom/master = null - anchored = 1 - -/atom/movable/overlay/New() - verbs.Cut() - -/atom/movable/overlay/attackby(a, b, c) - if (src.master) - return src.master.attackby(a, b, c) - -/atom/movable/overlay/attack_paw(a, b, c) - if (src.master) - return src.master.attack_paw(a, b, c) - -/atom/movable/overlay/attack_hand(a, b, c) - if (src.master) - return src.master.attack_hand(a, b, c) - /atom/movable/proc/handle_buckled_mob_movement(newloc,direct) for(var/m in buckled_mobs) var/mob/living/buckled_mob = m @@ -385,3 +343,68 @@ //called when a mob resists while inside a container that is itself inside something. /atom/movable/proc/relay_container_resist(mob/living/user, obj/O) return + + +/atom/movable/proc/do_attack_animation(atom/A, visual_effect_icon, obj/item/used_item, no_effect, end_pixel_y) + if(!no_effect && (visual_effect_icon || used_item)) + do_item_attack_animation(A, visual_effect_icon, used_item) + + var/pixel_x_diff = 0 + var/pixel_y_diff = 0 + var/final_pixel_y = initial(pixel_y) + if(end_pixel_y) + final_pixel_y = end_pixel_y + + var/direction = get_dir(src, A) + if(direction & NORTH) + pixel_y_diff = 8 + else if(direction & SOUTH) + pixel_y_diff = -8 + + if(direction & EAST) + pixel_x_diff = 8 + else if(direction & WEST) + pixel_x_diff = -8 + + animate(src, pixel_x = pixel_x + pixel_x_diff, pixel_y = pixel_y + pixel_y_diff, time = 2) + animate(pixel_x = initial(pixel_x), pixel_y = final_pixel_y, time = 2) + +/atom/movable/proc/do_item_attack_animation(atom/A, visual_effect_icon, obj/item/used_item) + var/image/I + if(visual_effect_icon) + I = image('icons/effects/effects.dmi', A, visual_effect_icon, A.layer + 0.1) + else if(used_item) + I = image(used_item.icon, A, used_item.icon_state, A.layer + 0.1) + + // Scale the icon. + I.transform *= 0.75 + // The icon should not rotate. + I.appearance_flags = APPEARANCE_UI_IGNORE_ALPHA + + // Set the direction of the icon animation. + var/direction = get_dir(src, A) + if(direction & NORTH) + I.pixel_y = -16 + else if(direction & SOUTH) + I.pixel_y = 16 + + if(direction & EAST) + I.pixel_x = -16 + else if(direction & WEST) + I.pixel_x = 16 + + if(!direction) // Attacked self?! + I.pixel_z = 16 + + if(!I) + return + + flick_overlay(I, clients, 5) // 5 ticks/half a second + + // And animate the attack! + animate(I, alpha = 175, pixel_x = 0, pixel_y = 0, pixel_z = 0, time = 3) + +/atom/movable/vv_get_dropdown() + . = ..() + . -= "Jump to" + .["Follow"] = "?_src_=holder;adminplayerobservefollow=\ref[src]" diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm index d7681cfad7..4fafd00704 100644 --- a/code/game/data_huds.dm +++ b/code/game/data_huds.dm @@ -61,19 +61,25 @@ //called when a carbon changes virus /mob/living/carbon/proc/check_virus() + var/threat = 0 for(var/datum/disease/D in viruses) - if((!(D.visibility_flags & HIDDEN_SCANNER)) && (D.severity != NONTHREAT)) - return 1 - return 0 + if(!(D.visibility_flags & HIDDEN_SCANNER)) + if (D.severity != NONTHREAT) //a buffing virus gets an icon + threat = 2 + return threat //harmful viruses have priority + else + threat = 1 //aka good virus + + return threat //helper for getting the appropriate health status /proc/RoundHealth(mob/living/M) if(M.stat == DEAD || (M.status_flags & FAKEDEATH)) return "health-100" //what's our health? it doesn't matter, we're dead, or faking - var/maxhealth = M.maxHealth + var/maxi_health = M.maxHealth if(iscarbon(M) && M.health < 0) - maxhealth = 100 //so crit shows up right for aliens and other high-health carbon mobs; noncarbons don't have crit. - var/resulthealth = (M.health / maxhealth) * 100 + maxi_health = 100 //so crit shows up right for aliens and other high-health carbon mobs; noncarbons don't have crit. + var/resulthealth = (M.health / maxi_health) * 100 switch(resulthealth) if(100 to INFINITY) return "health100" @@ -131,6 +137,8 @@ /mob/living/proc/med_hud_set_health() var/image/holder = hud_list[HEALTH_HUD] holder.icon_state = "hud[RoundHealth(src)]" + var/icon/I = icon(icon, icon_state, dir) + holder.pixel_y = I.Height() - world.icon_size //for carbon suit sensors /mob/living/carbon/med_hud_set_health() @@ -143,6 +151,8 @@ //called when a carbon changes stat, virus or XENO_HOST /mob/living/proc/med_hud_set_status() var/image/holder = hud_list[STATUS_HUD] + var/icon/I = icon(icon, icon_state, dir) + holder.pixel_y = I.Height() - world.icon_size if(stat == DEAD || (status_flags & FAKEDEATH)) holder.icon_state = "huddead" else @@ -150,12 +160,20 @@ /mob/living/carbon/med_hud_set_status() var/image/holder = hud_list[STATUS_HUD] + var/icon/I = icon(icon, icon_state, dir) + var/virus_state = check_virus() + var/mob/living/simple_animal/borer/B = has_brain_worms() + holder.pixel_y = I.Height() - world.icon_size if(status_flags & XENO_HOST) holder.icon_state = "hudxeno" else if(stat == DEAD || (status_flags & FAKEDEATH)) holder.icon_state = "huddead" - else if(check_virus()) + else if(has_brain_worms() && B != null && B.controlling) + holder.icon_state = "hudbrainworm" + else if(virus_state == 2) holder.icon_state = "hudill" + else if(virus_state == 1) + holder.icon_state = "hudbuff" else holder.icon_state = "hudhealthy" @@ -168,6 +186,8 @@ /mob/living/carbon/human/proc/sec_hud_set_ID() var/image/holder = hud_list[ID_HUD] + var/icon/I = icon(icon, icon_state, dir) + holder.pixel_y = I.Height() - world.icon_size holder.icon_state = "hudno_id" if(wear_id) holder.icon_state = "hud[ckey(wear_id.GetJobName())]" @@ -181,20 +201,27 @@ for(var/i in list(IMPTRACK_HUD, IMPLOYAL_HUD, IMPCHEM_HUD)) holder = hud_list[i] holder.icon_state = null - for(var/obj/item/weapon/implant/I in src) - if(I.implanted) - if(istype(I,/obj/item/weapon/implant/tracking)) - holder = hud_list[IMPTRACK_HUD] - holder.icon_state = "hud_imp_tracking" - else if(istype(I,/obj/item/weapon/implant/mindshield)) - holder = hud_list[IMPLOYAL_HUD] - holder.icon_state = "hud_imp_loyal" - else if(istype(I,/obj/item/weapon/implant/chem)) - holder = hud_list[IMPCHEM_HUD] - holder.icon_state = "hud_imp_chem" + for(var/obj/item/weapon/implant/I in implants) + if(istype(I,/obj/item/weapon/implant/tracking)) + holder = hud_list[IMPTRACK_HUD] + var/icon/IC = icon(icon, icon_state, dir) + holder.pixel_y = IC.Height() - world.icon_size + holder.icon_state = "hud_imp_tracking" + else if(istype(I,/obj/item/weapon/implant/mindshield)) + holder = hud_list[IMPLOYAL_HUD] + var/icon/IC = icon(icon, icon_state, dir) + holder.pixel_y = IC.Height() - world.icon_size + holder.icon_state = "hud_imp_loyal" + else if(istype(I,/obj/item/weapon/implant/chem)) + holder = hud_list[IMPCHEM_HUD] + var/icon/IC = icon(icon, icon_state, dir) + holder.pixel_y = IC.Height() - world.icon_size + holder.icon_state = "hud_imp_chem" /mob/living/carbon/human/proc/sec_hud_set_security_status() var/image/holder = hud_list[WANTED_HUD] + var/icon/I = icon(icon, icon_state, dir) + holder.pixel_y = I.Height() - world.icon_size var/perpname = get_face_name(get_id_name("")) if(perpname) var/datum/data/record/R = find_record("name", perpname, data_core.security) @@ -240,6 +267,8 @@ //Sillycone hooks /mob/living/silicon/proc/diag_hud_set_health() var/image/holder = hud_list[DIAG_HUD] + var/icon/I = icon(icon, icon_state, dir) + holder.pixel_y = I.Height() - world.icon_size if(stat == DEAD) holder.icon_state = "huddiagdead" else @@ -247,6 +276,8 @@ /mob/living/silicon/proc/diag_hud_set_status() var/image/holder = hud_list[DIAG_STAT_HUD] + var/icon/I = icon(icon, icon_state, dir) + holder.pixel_y = I.Height() - world.icon_size switch(stat) if(CONSCIOUS) holder.icon_state = "hudstat" @@ -258,7 +289,9 @@ //Borgie battery tracking! /mob/living/silicon/robot/proc/diag_hud_set_borgcell() var/image/holder = hud_list[DIAG_BATT_HUD] - if (cell) + var/icon/I = icon(icon, icon_state, dir) + holder.pixel_y = I.Height() - world.icon_size + if(cell) var/chargelvl = (cell.charge/cell.maxcharge) holder.icon_state = "hudbatt[RoundDiagBar(chargelvl)]" else @@ -269,12 +302,16 @@ ~~~~~~~~~~~~~~~~~~~~~*/ /obj/mecha/proc/diag_hud_set_mechhealth() var/image/holder = hud_list[DIAG_MECH_HUD] - holder.icon_state = "huddiag[RoundDiagBar(health/initial(health))]" + var/icon/I = icon(icon, icon_state, dir) + holder.pixel_y = I.Height() - world.icon_size + holder.icon_state = "huddiag[RoundDiagBar(obj_integrity/max_integrity)]" /obj/mecha/proc/diag_hud_set_mechcell() var/image/holder = hud_list[DIAG_BATT_HUD] - if (cell) + var/icon/I = icon(icon, icon_state, dir) + holder.pixel_y = I.Height() - world.icon_size + if(cell) var/chargelvl = cell.charge/cell.maxcharge holder.icon_state = "hudbatt[RoundDiagBar(chargelvl)]" else @@ -283,6 +320,8 @@ /obj/mecha/proc/diag_hud_set_mechstat() var/image/holder = hud_list[DIAG_STAT_HUD] + var/icon/I = icon(icon, icon_state, dir) + holder.pixel_y = I.Height() - world.icon_size holder.icon_state = null if(internal_damage) holder.icon_state = "hudwarn" @@ -292,10 +331,14 @@ ~~~~~~~~~~*/ /mob/living/simple_animal/bot/proc/diag_hud_set_bothealth() var/image/holder = hud_list[DIAG_HUD] + var/icon/I = icon(icon, icon_state, dir) + holder.pixel_y = I.Height() - world.icon_size holder.icon_state = "huddiag[RoundDiagBar(health/maxHealth)]" /mob/living/simple_animal/bot/proc/diag_hud_set_botstat() //On (With wireless on or off), Off, EMP'ed var/image/holder = hud_list[DIAG_STAT_HUD] + var/icon/I = icon(icon, icon_state, dir) + holder.pixel_y = I.Height() - world.icon_size if(on) holder.icon_state = "hudstat" else if(stat) //Generally EMP causes this @@ -305,6 +348,8 @@ /mob/living/simple_animal/bot/proc/diag_hud_set_botmode() //Shows a bot's current operation var/image/holder = hud_list[DIAG_BOT_HUD] + var/icon/I = icon(icon, icon_state, dir) + holder.pixel_y = I.Height() - world.icon_size if(client) //If the bot is player controlled, it will not be following mode logic! holder.icon_state = "hudsentient" return diff --git a/code/game/gamemodes/antag_hud.dm b/code/game/gamemodes/antag_hud.dm index 9e573c5c25..999e5cdeb3 100644 --- a/code/game/gamemodes/antag_hud.dm +++ b/code/game/gamemodes/antag_hud.dm @@ -41,7 +41,7 @@ //MIND PROCS //these are called by mind.transfer_to() -/datum/mind/proc/transfer_antag_huds(var/datum/atom_hud/antag/newhud) +/datum/mind/proc/transfer_antag_huds(datum/atom_hud/antag/newhud) leave_all_huds() ticker.mode.set_antag_hud(current, antag_hud_icon_state) if(newhud) @@ -55,3 +55,38 @@ for(var/datum/atom_hud/data/hud in huds) if(current in hud.hudusers) hud.remove_hud_from(current) + +/datum/atom_hud/antag/gang + var/color = null + +/datum/atom_hud/antag/gang/add_to_hud(atom/A) + if(!A) + return + var/image/holder = A.hud_list[ANTAG_HUD] + if(holder) + holder.color = color + ..() + +/datum/atom_hud/antag/gang/remove_from_hud(atom/A) + if(!A) + return + var/image/holder = A.hud_list[ANTAG_HUD] + if(holder) + holder.color = null + ..() + +/datum/atom_hud/antag/gang/join_hud(mob/M) + if(!istype(M)) + CRASH("join_hud(): [M] ([M.type]) is not a mob!") + var/image/holder = M.hud_list[ANTAG_HUD] + if(holder) + holder.color = color + ..() + +/datum/atom_hud/antag/gang/leave_hud(mob/M) + if(!istype(M)) + CRASH("leave_hud(): [M] ([M.type]) is not a mob!") + var/image/holder = M.hud_list[ANTAG_HUD] + if(holder) + holder.color = null + ..() diff --git a/code/game/gamemodes/antag_spawner.dm b/code/game/gamemodes/antag_spawner.dm index d7168cd160..36fd338c27 100644 --- a/code/game/gamemodes/antag_spawner.dm +++ b/code/game/gamemodes/antag_spawner.dm @@ -1,7 +1,7 @@ /obj/item/weapon/antag_spawner throw_speed = 1 throw_range = 5 - w_class = 1 + w_class = WEIGHT_CLASS_TINY var/used = 0 /obj/item/weapon/antag_spawner/proc/spawn_antag(client/C, turf/T, type = "") @@ -47,21 +47,24 @@ if(H.stat || H.restrained()) return - if(!istype(H, /mob/living/carbon/human)) + if(!ishuman(H)) return 1 - if(loc == H || (in_range(src, H) && istype(loc, /turf))) + if(loc == H || (in_range(src, H) && isturf(loc))) H.set_machine(src) if(href_list["school"]) - if (used) + if(used) H << "You already used this contract!" return - var/list/candidates = get_candidates(ROLE_WIZARD) + var/list/candidates = pollCandidatesForMob("Do you want to play as a wizard's [href_list["school"]] apprentice?", ROLE_WIZARD, null, ROLE_WIZARD, 150, src) if(candidates.len) - src.used = 1 - var/client/C = pick(candidates) - spawn_antag(C, get_turf(H.loc), href_list["school"]) - if(H.mind) + if(used) + H << "You already used this contract!" + return + used = 1 + var/mob/dead/observer/theghost = pick(candidates) + spawn_antag(theghost.client, get_turf(src), href_list["school"]) + if(H && H.mind) ticker.mode.update_wiz_icons_added(H.mind) else H << "Unable to reach your apprentice! You can either attack the spellbook with the contract to refund your points, or wait and try again later." @@ -71,40 +74,44 @@ var/mob/living/carbon/human/M = new/mob/living/carbon/human(T) C.prefs.copy_to(M) M.key = C.key - M << "You are the [usr.real_name]'s apprentice! You are bound by magic contract to follow their orders and help them in accomplishing their goals." + var/wizard_name = "the wizard" + if(usr) + wizard_name = usr.real_name + M << "You are [wizard_name]'s apprentice! You are bound by magic contract to follow their orders and help them in accomplishing their goals." switch(type) if("destruction") M.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/projectile/magic_missile(null)) - M.mind.AddSpell(new /obj/effect/proc_holder/spell/dumbfire/fireball(null)) - M << "Your service has not gone unrewarded, however. Studying under [usr.real_name], you have learned powerful, destructive spells. You are able to cast magic missile and fireball." + M.mind.AddSpell(new /obj/effect/proc_holder/spell/fireball(null)) + M << "Your service has not gone unrewarded, however. Studying under [wizard_name], you have learned powerful, destructive spells. You are able to cast magic missile and fireball." if("bluespace") M.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/area_teleport/teleport(null)) M.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/ethereal_jaunt(null)) - M << "Your service has not gone unrewarded, however. Studying under [usr.real_name], you have learned reality bending mobility spells. You are able to cast teleport and ethereal jaunt." + M << "Your service has not gone unrewarded, however. Studying under [wizard_name], you have learned reality bending mobility spells. You are able to cast teleport and ethereal jaunt." if("healing") M.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/charge(null)) - M.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/conjure/forcewall(null)) - M.equip_to_slot_or_del(new /obj/item/weapon/gun/magic/staff/healing(M), slot_r_hand) - M << "Your service has not gone unrewarded, however. Studying under [usr.real_name], you have learned livesaving survival spells. You are able to cast charge and forcewall." + M.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/forcewall(null)) + M.put_in_hands_or_del(new /obj/item/weapon/gun/magic/staff/healing(M)) + M << "Your service has not gone unrewarded, however. Studying under [wizard_name], you have learned livesaving survival spells. You are able to cast charge and forcewall." if("robeless") M.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/knock(null)) M.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/mind_transfer(null)) - M << "Your service has not gone unrewarded, however. Studying under [usr.real_name], you have learned stealthy, robeless spells. You are able to cast knock and mindswap." + M << "Your service has not gone unrewarded, however. Studying under [wizard_name], you have learned stealthy, robeless spells. You are able to cast knock and mindswap." equip_antag(M) var/wizard_name_first = pick(wizard_first) var/wizard_name_second = pick(wizard_second) var/randomname = "[wizard_name_first] [wizard_name_second]" - var/datum/objective/protect/new_objective = new /datum/objective/protect - new_objective.owner = M:mind - new_objective:target = usr:mind - new_objective.explanation_text = "Protect [usr.real_name], the wizard." - M.mind.objectives += new_objective + if(usr) + var/datum/objective/protect/new_objective = new /datum/objective/protect + new_objective.owner = M.mind + new_objective.target = usr.mind + new_objective.explanation_text = "Protect [usr.real_name], the wizard." + M.mind.objectives += new_objective ticker.mode.apprentices += M.mind M.mind.special_role = "apprentice" ticker.mode.update_wiz_icons_added(M.mind) M << sound('sound/effects/magic.ogg') - var/newname = copytext(sanitize(input(M, "You are the wizard's apprentice. Would you like to change your name to something else?", "Name change", randomname) as null|text),1,MAX_NAME_LEN) + var/newname = copytext(sanitize(input(M, "You are [wizard_name]'s apprentice. Would you like to change your name to something else?", "Name change", randomname) as null|text),1,MAX_NAME_LEN) if (!newname) newname = randomname M.mind.name = newname @@ -115,7 +122,7 @@ /obj/item/weapon/antag_spawner/contract/equip_antag(mob/target) target.equip_to_slot_or_del(new /obj/item/device/radio/headset(target), slot_ears) target.equip_to_slot_or_del(new /obj/item/clothing/under/color/lightpurple(target), slot_w_uniform) - target.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(target), slot_shoes) + target.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal/magic(target), slot_shoes) target.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe(target), slot_wear_suit) target.equip_to_slot_or_del(new /obj/item/clothing/head/wizard(target), slot_head) target.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(target), slot_back) @@ -149,11 +156,13 @@ if(!(check_usability(user))) return - var/list/nuke_candidates = get_candidates(ROLE_OPERATIVE, 3000, "operative") - if(nuke_candidates.len > 0) + var/list/nuke_candidates = pollCandidatesForMob("Do you want to play as a syndicate [borg_to_spawn ? "[lowertext(borg_to_spawn)] cyborg":"operative"]?", ROLE_OPERATIVE, null, ROLE_OPERATIVE, 150, src) + if(nuke_candidates.len) + if(!(check_usability(user))) + return used = 1 - var/client/C = pick(nuke_candidates) - spawn_antag(C, get_turf(src.loc), "syndieborg") + var/mob/dead/observer/theghost = pick(nuke_candidates) + spawn_antag(theghost.client, get_turf(src), "syndieborg") var/datum/effect_system/spark_spread/S = new /datum/effect_system/spark_spread S.set_up(4, 1, src) S.start() @@ -162,14 +171,10 @@ user << "Unable to connect to Syndicate command. Please wait and try again later or use the teleporter on your uplink to get your points refunded." /obj/item/weapon/antag_spawner/nuke_ops/spawn_antag(client/C, turf/T) - var/new_op_code = "Ask your leader!" var/mob/living/carbon/human/M = new/mob/living/carbon/human(T) C.prefs.copy_to(M) M.key = C.key - var/obj/machinery/nuclearbomb/nuke = locate("syndienuke") in nuke_list - if(nuke) - new_op_code = nuke.r_code - M.mind.make_Nuke(T, new_op_code, 0, FALSE) + M.mind.make_Nuke(null, null, 0, FALSE) var/newname = M.dna.species.random_name(M.gender,0,ticker.mode.nukeops_lastname) M.mind.name = newname M.real_name = newname @@ -213,12 +218,7 @@ R.mmi.brainmob.name = brainopsname R.key = C.key - ticker.mode.syndicates += R.mind - ticker.mode.update_synd_icons_added(R.mind) - R.mind.special_role = "syndicate" - R.faction = list("syndicate") - - + R.mind.make_Nuke(null, nuke_code = null,leader=0, telecrystals = TRUE) ///////////SLAUGHTER DEMON @@ -228,23 +228,25 @@ icon = 'icons/obj/wizard.dmi' icon_state = "vial" - var/shatter_msg = "You shatter the bottle, no \ - turning back now!" - var/veil_msg = "You sense a dark presence lurking \ - just beyond the veil..." + var/shatter_msg = "You shatter the bottle, no turning back now!" + var/veil_msg = "You sense a dark presence lurking just beyond the veil..." var/objective_verb = "Kill" var/mob/living/demon_type = /mob/living/simple_animal/slaughter /obj/item/weapon/antag_spawner/slaughter_demon/attack_self(mob/user) - var/list/demon_candidates = get_candidates(ROLE_ALIEN) if(user.z != 1) user << "You should probably wait until you reach the station." return - if(demon_candidates.len > 0) + if(used) + return + var/list/demon_candidates = pollCandidatesForMob("Do you want to play as a [initial(demon_type.name)]?", null, null, ROLE_ALIEN, 50, src) + if(demon_candidates.len) + if(used) + return used = 1 - var/client/C = pick(demon_candidates) - spawn_antag(C, get_turf(src.loc), initial(demon_type.name)) + var/mob/dead/observer/theghost = pick(demon_candidates) + spawn_antag(theghost.client, get_turf(src), initial(demon_type.name)) user << shatter_msg user << veil_msg playsound(user.loc, 'sound/effects/Glassbr1.ogg', 100, 1) @@ -262,33 +264,31 @@ S.mind.assigned_role = S.name S.mind.special_role = S.name ticker.mode.traitors += S.mind - var/datum/objective/assassinate/new_objective = new /datum/objective/assassinate - new_objective.owner = S.mind - new_objective.target = usr.mind - new_objective.explanation_text = "[objective_verb] [usr.real_name], \ - the one who summoned you." - S.mind.objectives += new_objective + var/datum/objective/assassinate/new_objective + if(usr) + new_objective = new /datum/objective/assassinate + new_objective.owner = S.mind + new_objective.target = usr.mind + new_objective.explanation_text = "[objective_verb] [usr.real_name], the one who summoned you." + S.mind.objectives += new_objective var/datum/objective/new_objective2 = new /datum/objective new_objective2.owner = S.mind - new_objective2.explanation_text = "[objective_verb] everyone else \ - while you're at it." + new_objective2.explanation_text = "[objective_verb] everyone[usr ? " else while you're at it":""]." S.mind.objectives += new_objective2 S << S.playstyle_string - S << "You are currently not currently in the same plane of \ - existence as the station. Ctrl+Click a blood pool to manifest." - S << "Objective #[1]: [new_objective.explanation_text]" - S << "Objective #[2]: [new_objective2.explanation_text]" + S << "You are currently not currently in the same plane of existence as the station. \ + Ctrl+Click a blood pool to manifest." + if(new_objective) + S << "Objective #[1]: [new_objective.explanation_text]" + S << "Objective #[new_objective ? "[2]":"[1]"]: [new_objective2.explanation_text]" /obj/item/weapon/antag_spawner/slaughter_demon/laughter name = "vial of tickles" - desc = "A magically infused bottle of clown love, distilled from \ - countless hugging attacks. Used in funny rituals to attract \ - adorable creatures." + desc = "A magically infused bottle of clown love, distilled from countless hugging attacks. Used in funny rituals to attract adorable creatures." icon = 'icons/obj/wizard.dmi' icon_state = "vial" color = "#FF69B4" // HOT PINK - veil_msg = "You sense an adorable presence \ - lurking just beyond the veil..." + veil_msg = "You sense an adorable presence lurking just beyond the veil..." objective_verb = "Hug and Tickle" demon_type = /mob/living/simple_animal/slaughter/laughter diff --git a/code/game/gamemodes/blob/blob.dm b/code/game/gamemodes/blob/blob.dm index 23d19cb3b6..7e45ff04d8 100644 --- a/code/game/gamemodes/blob/blob.dm +++ b/code/game/gamemodes/blob/blob.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 + //Few global vars to track the blob var/list/blobs = list() //complete list of all blobs made. @@ -20,13 +20,19 @@ var/list/blobs_legit = list() //used for win-score calculations, contains only b round_ends_with_antag_death = 1 - var/burst = 0 + announce_span = "green" + announce_text = "Dangerous gelatinous organisms are spreading throughout the station!\n\ + Blobs: Consume the station and spread as far as you can.\n\ + Crew: Fight back the blobs and minimize station damage." + + var/message_sent = FALSE var/cores_to_spawn = 1 var/players_per_core = 25 var/blob_point_rate = 3 + var/blob_base_starting_points = 80 - var/blobwincount = 350 + var/blobwincount = 250 var/messagedelay_low = 2400 //in deciseconds var/messagedelay_high = 3600 //blob report will be sent after a random value between these (minimum 4 minutes, maximum 6 minutes) @@ -36,7 +42,8 @@ var/list/blobs_legit = list() //used for win-score calculations, contains only b /datum/game_mode/blob/pre_setup() cores_to_spawn = max(round(num_players()/players_per_core, 1), 1) - blobwincount = initial(blobwincount) * cores_to_spawn + var/win_multiplier = 1 + (0.1 * cores_to_spawn) + blobwincount = initial(blobwincount) * cores_to_spawn * win_multiplier for(var/j = 0, j < cores_to_spawn, j++) if (!antag_candidates.len) @@ -61,11 +68,6 @@ var/list/blobs_legit = list() //used for win-score calculations, contains only b candidates += player return candidates -/datum/game_mode/blob/announce() - world << "The current game mode is - Blob!" - world << "A dangerous alien organism is rapidly spreading throughout the station!" - world << "You must kill it all while minimizing the damage to the station." - /datum/game_mode/blob/proc/show_message(message) for(var/datum/mind/blob in blob_overminds) blob.current << message @@ -73,12 +75,13 @@ var/list/blobs_legit = list() //used for win-score calculations, contains only b /datum/game_mode/blob/post_setup() for(var/datum/mind/blob in blob_overminds) - var/mob/camera/blob/B = blob.current.become_overmind(1) + var/mob/camera/blob/B = blob.current.become_overmind(TRUE, round(blob_base_starting_points/blob_overminds.len)) + B.mind.name = B.name var/turf/T = pick(blobstart) B.loc = T B.base_point_rate = blob_point_rate - SSshuttle.emergencyNoEscape = 1 + SSshuttle.registerHostileEnvironment(src) // Disable the blob event for this round. var/datum/round_event_control/blob/B = locate() in SSevent.control @@ -91,9 +94,10 @@ var/list/blobs_legit = list() //used for win-score calculations, contains only b sleep(message_delay) send_intercept(1) + message_sent = TRUE sleep(24000) //40 minutes, plus burst_delay*3(minimum of 6 minutes, maximum of 8) - - send_intercept(2) //if the blob has been alive this long, it's time to bomb it + if(!replacementmode) + send_intercept(2) //if the blob has been alive this long, it's time to bomb it return ..() diff --git a/code/game/gamemodes/blob/blob_finish.dm b/code/game/gamemodes/blob/blob_finish.dm index 1139becf04..5efacb312f 100644 --- a/code/game/gamemodes/blob/blob_finish.dm +++ b/code/game/gamemodes/blob/blob_finish.dm @@ -1,16 +1,16 @@ /datum/game_mode/blob/check_finished() if(blobwincount <= blobs_legit.len)//Blob took over return 1 - if(overminds.len) - return 0 + for(var/datum/mind/blob in blob_overminds) + if(isovermind(blob.current)) + var/mob/camera/blob/B = blob.current + if(B.blob_core || !B.placed) + return 0 if(!blob_cores.len) //blob is dead if(config.continuous["blob"]) + message_sent = FALSE //disable the win count at this point continuous_sanity_checked = 1 //Nonstandard definition of "alive" gets past the check otherwise - SSshuttle.emergencyNoEscape = 0 - if(SSshuttle.emergency.mode == SHUTTLE_STRANDED) - SSshuttle.emergency.mode = SHUTTLE_DOCKED - SSshuttle.emergency.timer = world.time - priority_announce("Hostile enviroment resolved. You have 3 minutes to board the Emergency Shuttle.", null, 'sound/AI/shuttledock.ogg', "Priority") + SSshuttle.clearHostileEnvironment(src) return ..() return 1 return ..() @@ -22,23 +22,45 @@ if(blobwincount <= blobs_legit.len) feedback_set_details("round_end_result","win - blob took over") world << "The blob has taken over the station!" - world << "The entire station was eaten by the Blob" + world << "The entire station was eaten by the Blob!" log_game("Blob mode completed with a blob victory.") + ticker.news_report = BLOB_WIN + else if(station_was_nuked) feedback_set_details("round_end_result","halfwin - nuke") world << "Partial Win: The station has been destroyed!" - world << "Directive 7-12 has been successfully carried out preventing the Blob from spreading." + world << "Directive 7-12 has been successfully carried out, preventing the Blob from spreading." log_game("Blob mode completed with a tie (station destroyed).") + ticker.news_report = BLOB_NUKE + else if(!blob_cores.len) feedback_set_details("round_end_result","loss - blob eliminated") world << "The staff has won!" - world << "The alien organism has been eradicated from the station" + world << "The alien organism has been eradicated from the station!" log_game("Blob mode completed with a crew victory.") + + ticker.news_report = BLOB_DESTROYED + ..() return 1 +/datum/game_mode/blob/printplayer(datum/mind/ply, fleecheck) + if((ply in blob_overminds)) + var/text = "
    [ply.key] was [ply.name]" + if(isovermind(ply.current)) + var/mob/camera/blob/B = ply.current + text += "([B.blob_reagent_datum.name]) and" + if(B.blob_core) + text += " survived" + else + text += " was destroyed" + else + text += " and was destroyed" + return text + return ..() + /datum/game_mode/proc/auto_declare_completion_blob() if(istype(ticker.mode,/datum/game_mode/blob) ) var/datum/game_mode/blob/blob_mode = src diff --git a/code/game/gamemodes/blob/blob_report.dm b/code/game/gamemodes/blob/blob_report.dm index d0aa8b724f..627837effc 100644 --- a/code/game/gamemodes/blob/blob_report.dm +++ b/code/game/gamemodes/blob/blob_report.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 + /datum/game_mode/blob/send_intercept(report = 0) var/intercepttext = "" @@ -16,7 +16,7 @@ print_command_report(intercepttext,"Level 5-6 Biohazard Response Procedures") priority_announce("Confirmed outbreak of level 5 biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", 'sound/AI/outbreak5.ogg') if(2) - var/nukecode = rand(10000, 99999) + var/nukecode = random_nukecode() for(var/obj/machinery/nuclearbomb/bomb in machines) if(bomb && bomb.r_code) if(bomb.z == ZLEVEL_STATION) @@ -57,20 +57,23 @@ /datum/station_state/proc/count(count_territories) for(var/turf/T in block(locate(1,1,1), locate(world.maxx,world.maxy,1))) - if(istype(T,/turf/open/floor)) - if(!(T:burnt)) + if(isfloorturf(T)) + var/turf/open/floor/TF = T + if(!(TF.burnt)) src.floor += 12 else src.floor += 1 - if(istype(T, /turf/closed/wall)) - if(T:intact) + if(iswallturf(T)) + var/turf/closed/wall/TW = T + if(TW.intact) src.wall += 2 else src.wall += 1 if(istype(T, /turf/closed/wall/r_wall)) - if(T:intact) + var/turf/closed/wall/r_wall/TRW = T + if(TRW.intact) src.r_wall += 2 else src.r_wall += 1 @@ -79,8 +82,10 @@ for(var/obj/O in T.contents) if(istype(O, /obj/structure/window)) src.window += 1 - else if(istype(O, /obj/structure/grille) && (!O:destroyed)) - src.grille += 1 + else if(istype(O, /obj/structure/grille)) + var/obj/structure/grille/GR = O + if(!GR.broken) + src.grille += 1 else if(istype(O, /obj/machinery/door)) src.door += 1 else if(istype(O, /obj/machinery)) diff --git a/code/game/gamemodes/blob/blobs/blob_mobs.dm b/code/game/gamemodes/blob/blobs/blob_mobs.dm index 4c93d11e57..baa7a61858 100644 --- a/code/game/gamemodes/blob/blobs/blob_mobs.dm +++ b/code/game/gamemodes/blob/blobs/blob_mobs.dm @@ -14,22 +14,22 @@ minbodytemp = 0 maxbodytemp = 360 unique_name = 1 - a_intent = "harm" + a_intent = INTENT_HARM var/mob/camera/blob/overmind = null - var/obj/effect/blob/factory/factory = null + var/obj/structure/blob/factory/factory = null /mob/living/simple_animal/hostile/blob/update_icons() if(overmind) - color = overmind.blob_reagent_datum.color + add_atom_colour(overmind.blob_reagent_datum.color, FIXED_COLOUR_PRIORITY) else - color = initial(color) + remove_atom_colour(FIXED_COLOUR_PRIORITY) /mob/living/simple_animal/hostile/blob/Destroy() if(overmind) overmind.blob_mobs -= src return ..() -/mob/living/simple_animal/hostile/blob/blob_act(obj/effect/blob/B) +/mob/living/simple_animal/hostile/blob/blob_act(obj/structure/blob/B) if(stat != DEAD && health < maxHealth) for(var/i in 1 to 2) var/obj/effect/overlay/temp/heal/H = PoolOrNew(/obj/effect/overlay/temp/heal, get_turf(src)) //hello yes you are being healed @@ -39,24 +39,27 @@ H.color = "#000000" adjustHealth(-maxHealth*0.0125) -/mob/living/simple_animal/hostile/blob/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) +/mob/living/simple_animal/hostile/blob/fire_act(exposed_temperature, exposed_volume) ..() - adjustFireLoss(Clamp(0.01 * exposed_temperature, 1, 5)) + if(exposed_temperature) + adjustFireLoss(Clamp(0.01 * exposed_temperature, 1, 5)) + else + adjustFireLoss(5) /mob/living/simple_animal/hostile/blob/CanPass(atom/movable/mover, turf/target, height = 0) - if(istype(mover, /obj/effect/blob)) + if(istype(mover, /obj/structure/blob)) return 1 return ..() /mob/living/simple_animal/hostile/blob/Process_Spacemove(movement_dir = 0) - for(var/obj/effect/blob/B in range(1, src)) + for(var/obj/structure/blob/B in range(1, src)) return 1 return ..() /mob/living/simple_animal/hostile/blob/handle_inherent_channels(message, message_mode) if(message_mode == MODE_BINARY) blob_chat(message) - return ITALICS | REDUCE_RANGE + return 1 else ..() @@ -79,17 +82,19 @@ desc = "A floating, fragile spore." icon_state = "blobpod" icon_living = "blobpod" - health = 40 - maxHealth = 40 + health = 30 + maxHealth = 30 verb_say = "psychically pulses" verb_ask = "psychically probes" verb_exclaim = "psychically yells" verb_yell = "psychically screams" melee_damage_lower = 2 melee_damage_upper = 4 + obj_damage = 20 + environment_smash = 1 attacktext = "hits" attack_sound = 'sound/weapons/genhit1.ogg' - flying = 1 + movement_type = FLYING del_on_death = 1 deathmessage = "explodes into a cloud of gas!" var/death_cloud_size = 1 //size of cloud produced from a dying spore @@ -97,7 +102,7 @@ var/is_zombie = 0 gold_core_spawnable = 1 -/mob/living/simple_animal/hostile/blob/blobspore/New(loc, var/obj/effect/blob/factory/linked_node) +/mob/living/simple_animal/hostile/blob/blobspore/New(loc, var/obj/structure/blob/factory/linked_node) if(istype(linked_node)) factory = linked_node factory.spores += src @@ -125,7 +130,7 @@ desc = "A shambling corpse animated by the blob." melee_damage_lower += 8 melee_damage_upper += 11 - flying = 0 + movement_type = GROUND death_cloud_size = 0 icon = H.icon icon_state = "zombie_s" @@ -168,20 +173,23 @@ return ..() /mob/living/simple_animal/hostile/blob/blobspore/update_icons() - ..() + if(overmind) + add_atom_colour(overmind.blob_reagent_datum.complementary_color, FIXED_COLOUR_PRIORITY) + else + remove_atom_colour(FIXED_COLOUR_PRIORITY) if(is_zombie) cut_overlays() overlays = human_overlays var/image/I = image('icons/mob/blob.dmi', icon_state = "blob_head") if(overmind) - I.color = overmind.blob_reagent_datum.color + I.color = overmind.blob_reagent_datum.complementary_color color = initial(color)//looks better. add_overlay(I) /mob/living/simple_animal/hostile/blob/blobspore/weak name = "fragile blob spore" - health = 20 - maxHealth = 20 + health = 15 + maxHealth = 15 melee_damage_lower = 1 melee_damage_upper = 2 death_cloud_size = 0 @@ -199,9 +207,9 @@ health = 200 maxHealth = 200 damage_coeff = list(BRUTE = 0.5, BURN = 1, TOX = 1, CLONE = 1, STAMINA = 0, OXY = 1) - next_move_modifier = 1.5 //slow-ass attack speed, 3 times higher than how fast the blob can attack melee_damage_lower = 20 melee_damage_upper = 20 + obj_damage = 60 attacktext = "slams" attack_sound = 'sound/effects/blobattack.ogg' verb_say = "gurgles" @@ -209,7 +217,7 @@ verb_exclaim = "roars" verb_yell = "bellows" force_threshold = 10 - pressure_resistance = 40 + pressure_resistance = 50 mob_size = MOB_SIZE_LARGE see_invisible = SEE_INVISIBLE_MINIMUM see_in_dark = 8 @@ -225,13 +233,13 @@ if(independent) return // strong independent blobbernaut that don't need no blob var/damagesources = 0 - if(!(locate(/obj/effect/blob) in range(2, src))) + if(!(locate(/obj/structure/blob) in range(2, src))) damagesources++ if(!factory) damagesources++ if(damagesources) for(var/i in 1 to damagesources) - adjustHealth(maxHealth*0.025) //take 2.5% maxhealth as damage when not near the blob or if the naut has no factory, 5% if both + adjustHealth(maxHealth*0.025) //take 2.5% of max health as damage when not near the blob or if the naut has no factory, 5% if both var/list/viewing = list() for(var/mob/M in viewers(src)) if(M.client) @@ -274,7 +282,7 @@ ..(gibbed) if(factory) factory.naut = null //remove this naut from its factory - factory.maxhealth = initial(factory.maxhealth) + factory.max_integrity = initial(factory.max_integrity) flick("blobbernaut_death", src) /mob/living/simple_animal/hostile/blob/blobbernaut/independent diff --git a/code/game/gamemodes/blob/blobs/core.dm b/code/game/gamemodes/blob/blobs/core.dm index e97f09e3a1..2bc1f1bb12 100644 --- a/code/game/gamemodes/blob/blobs/core.dm +++ b/code/game/gamemodes/blob/blobs/core.dm @@ -1,13 +1,13 @@ -/obj/effect/blob/core +/obj/structure/blob/core name = "blob core" icon = 'icons/mob/blob.dmi' icon_state = "blank_blob" desc = "A huge, pulsating yellow mass." - health = 400 - maxhealth = 400 + obj_integrity = 400 + max_integrity = 400 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 75, acid = 90) explosion_block = 6 point_return = -1 - atmosblock = 1 health_regen = 0 //we regen in Life() instead of when pulsed var/core_regen = 2 var/overmind_get_delay = 0 //we don't want to constantly try to find an overmind, this var tracks when we'll try to get an overmind again @@ -15,7 +15,7 @@ var/point_rate = 2 -/obj/effect/blob/core/New(loc, client/new_overmind = null, new_rate = 2, placed = 0) +/obj/structure/blob/core/New(loc, client/new_overmind = null, new_rate = 2, placed = 0) blob_cores += src START_PROCESSING(SSobj, src) poi_list |= src @@ -27,10 +27,10 @@ point_rate = new_rate ..() -/obj/effect/blob/core/scannerreport() +/obj/structure/blob/core/scannerreport() return "Directs the blob's expansion, gradually expands, and sustains nearby blob spores and blobbernauts." -/obj/effect/blob/core/update_icon() +/obj/structure/blob/core/update_icon() cut_overlays() color = null var/image/I = new('icons/mob/blob.dmi', "blob") @@ -40,7 +40,7 @@ var/image/C = new('icons/mob/blob.dmi', "blob_core_overlay") add_overlay(C) -/obj/effect/blob/core/Destroy() +/obj/structure/blob/core/Destroy() blob_cores -= src if(overmind) overmind.blob_core = null @@ -49,36 +49,36 @@ poi_list -= src return ..() -/obj/effect/blob/core/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) - return - -/obj/effect/blob/core/ex_act(severity, target) +/obj/structure/blob/core/ex_act(severity, target) var/damage = 50 - 10 * severity //remember, the core takes half brute damage, so this is 20/15/10 damage based on severity - take_damage(damage, BRUTE) + take_damage(damage, BRUTE, "bomb", 0) -/obj/effect/blob/core/check_health() - ..() - if(overmind) //we should have an overmind, but... - overmind.update_health_hud() +/obj/structure/blob/core/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir, overmind_reagent_trigger = 1) + . = ..() + if(obj_integrity > 0) + if(overmind) //we should have an overmind, but... + overmind.update_health_hud() -/obj/effect/blob/core/Life() +/obj/structure/blob/core/Life() + if(qdeleted(src)) + return if(!overmind) create_overmind() else if(resource_delay <= world.time) resource_delay = world.time + 10 // 1 second overmind.add_points(point_rate) - health = min(maxhealth, health+core_regen) + obj_integrity = min(max_integrity, obj_integrity+core_regen) if(overmind) overmind.update_health_hud() Pulse_Area(overmind, 12, 4, 3) - for(var/obj/effect/blob/normal/B in range(1, src)) + for(var/obj/structure/blob/normal/B in range(1, src)) if(prob(5)) - B.change_to(/obj/effect/blob/shield/core, overmind) + B.change_to(/obj/structure/blob/shield/core, overmind) ..() -/obj/effect/blob/core/proc/create_overmind(client/new_overmind, override_delay) +/obj/structure/blob/core/proc/create_overmind(client/new_overmind, override_delay) if(overmind_get_delay > world.time && !override_delay) return @@ -91,7 +91,7 @@ var/list/candidates = list() if(!new_overmind) - candidates = get_candidates(ROLE_BLOB) + candidates = pollCandidatesForMob("Do you want to play as a blob overmind?", ROLE_BLOB, null, ROLE_BLOB, 50, src) //we're technically not a mob but behave similarly if(candidates.len) C = pick(candidates) else diff --git a/code/game/gamemodes/blob/blobs/factory.dm b/code/game/gamemodes/blob/blobs/factory.dm index ccaf8e12a1..cc0749d0c6 100644 --- a/code/game/gamemodes/blob/blobs/factory.dm +++ b/code/game/gamemodes/blob/blobs/factory.dm @@ -1,10 +1,10 @@ -/obj/effect/blob/factory +/obj/structure/blob/factory name = "factory blob" icon = 'icons/mob/blob.dmi' icon_state = "blob_factory" desc = "A thick spire of tendrils." - health = 200 - maxhealth = 200 + obj_integrity = 200 + max_integrity = 200 health_regen = 1 point_return = 25 var/list/spores = list() @@ -14,12 +14,12 @@ var/spore_cooldown = 80 //8 seconds between spores and after spore death -/obj/effect/blob/factory/scannerreport() +/obj/structure/blob/factory/scannerreport() if(naut) return "It is currently sustaining a blobbernaut, making it fragile and unable to produce blob spores." return "Will produce a blob spore every few seconds." -/obj/effect/blob/factory/Destroy() +/obj/structure/blob/factory/Destroy() for(var/mob/living/simple_animal/hostile/blob/blobspore/spore in spores) if(spore.factory == src) spore.factory = null @@ -30,7 +30,7 @@ spores = null return ..() -/obj/effect/blob/factory/Be_Pulsed() +/obj/structure/blob/factory/Be_Pulsed() . = ..() if(naut) return diff --git a/code/game/gamemodes/blob/blobs/node.dm b/code/game/gamemodes/blob/blobs/node.dm index b6e8b24f59..426e76b9e5 100644 --- a/code/game/gamemodes/blob/blobs/node.dm +++ b/code/game/gamemodes/blob/blobs/node.dm @@ -1,41 +1,38 @@ -/obj/effect/blob/node +/obj/structure/blob/node name = "blob node" icon = 'icons/mob/blob.dmi' icon_state = "blank_blob" desc = "A large, pulsating yellow mass." - health = 200 - maxhealth = 200 + obj_integrity = 200 + max_integrity = 200 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 65, acid = 90) health_regen = 3 point_return = 25 - atmosblock = 1 -/obj/effect/blob/node/New(loc, var/h = 100) +/obj/structure/blob/node/New(loc) blob_nodes += src START_PROCESSING(SSobj, src) - ..(loc, h) + ..() -/obj/effect/blob/node/scannerreport() +/obj/structure/blob/node/scannerreport() return "Gradually expands and sustains nearby blob spores and blobbernauts." -/obj/effect/blob/node/update_icon() +/obj/structure/blob/node/update_icon() cut_overlays() color = null var/image/I = new('icons/mob/blob.dmi', "blob") if(overmind) I.color = overmind.blob_reagent_datum.color - src.add_overlay(I) + add_overlay(I) var/image/C = new('icons/mob/blob.dmi', "blob_node_overlay") - src.add_overlay(C) + add_overlay(C) -/obj/effect/blob/node/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) - return - -/obj/effect/blob/node/Destroy() +/obj/structure/blob/node/Destroy() blob_nodes -= src STOP_PROCESSING(SSobj, src) return ..() -/obj/effect/blob/node/Life() +/obj/structure/blob/node/Life() Pulse_Area(overmind, 10, 3, 2) - color = null + diff --git a/code/game/gamemodes/blob/blobs/resource.dm b/code/game/gamemodes/blob/blobs/resource.dm index 75a7ecfa36..bcb6d8a8fd 100644 --- a/code/game/gamemodes/blob/blobs/resource.dm +++ b/code/game/gamemodes/blob/blobs/resource.dm @@ -1,26 +1,26 @@ -/obj/effect/blob/resource +/obj/structure/blob/resource name = "resource blob" icon = 'icons/mob/blob.dmi' icon_state = "blob_resource" desc = "A thin spire of slightly swaying tendrils." - health = 60 - maxhealth = 60 + obj_integrity = 60 + max_integrity = 60 point_return = 15 var/resource_delay = 0 -/obj/effect/blob/resource/scannerreport() +/obj/structure/blob/resource/scannerreport() return "Gradually supplies the blob with resources, increasing the rate of expansion." -/obj/effect/blob/resource/creation_action() +/obj/structure/blob/resource/creation_action() if(overmind) overmind.resource_blobs += src -/obj/effect/blob/resource/Destroy() +/obj/structure/blob/resource/Destroy() if(overmind) overmind.resource_blobs -= src return ..() -/obj/effect/blob/resource/Be_Pulsed() +/obj/structure/blob/resource/Be_Pulsed() . = ..() if(resource_delay > world.time) return diff --git a/code/game/gamemodes/blob/blobs/shield.dm b/code/game/gamemodes/blob/blobs/shield.dm index bf8c9ceed1..a4ec48ab53 100644 --- a/code/game/gamemodes/blob/blobs/shield.dm +++ b/code/game/gamemodes/blob/blobs/shield.dm @@ -1,21 +1,36 @@ -/obj/effect/blob/shield +/obj/structure/blob/shield name = "strong blob" icon = 'icons/mob/blob.dmi' - icon_state = "blob_idle" + icon_state = "blob_shield" desc = "A solid wall of slightly twitching tendrils." - health = 150 - maxhealth = 150 - brute_resist = 0.1 + obj_integrity = 150 + max_integrity = 150 + brute_resist = 0.25 explosion_block = 3 point_return = 4 atmosblock = 1 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 90, acid = 90) -/obj/effect/blob/shield/scannerreport() - return "Will prevent the spread of atmospheric changes." -/obj/effect/blob/shield/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) - return +/obj/structure/blob/shield/scannerreport() + if(atmosblock) + return "Will prevent the spread of atmospheric changes." + return "N/A" -/obj/effect/blob/shield/core +/obj/structure/blob/shield/core point_return = 0 + +/obj/structure/blob/shield/update_icon() + ..() + if(obj_integrity <= 75) + icon_state = "blob_shield_damaged" + name = "weakened strong blob" + desc = "A wall of twitching tendrils." + atmosblock = 0 + else + icon_state = initial(icon_state) + name = initial(name) + desc = initial(desc) + atmosblock = 1 + air_update_turf(1) diff --git a/code/game/gamemodes/blob/overmind.dm b/code/game/gamemodes/blob/overmind.dm index 3b712515d8..5fb0187ccd 100644 --- a/code/game/gamemodes/blob/overmind.dm +++ b/code/game/gamemodes/blob/overmind.dm @@ -1,17 +1,20 @@ /mob/camera/blob name = "Blob Overmind" real_name = "Blob Overmind" + desc = "The overmind. It controls the blob." icon = 'icons/mob/blob.dmi' icon_state = "marker" - + mouse_opacity = 1 + move_on_shuttle = 1 see_in_dark = 8 see_invisible = SEE_INVISIBLE_MINIMUM invisibility = INVISIBILITY_OBSERVER + layer = FLY_LAYER pass_flags = PASSBLOB faction = list("blob") - var/obj/effect/blob/core/blob_core = null // The blob overmind's core + var/obj/structure/blob/core/blob_core = null // The blob overmind's core var/blob_points = 0 var/max_blob_points = 100 var/last_attack = 0 @@ -26,7 +29,8 @@ var/manualplace_min_time = 600 //in deciseconds //a minute, to get bearings var/autoplace_max_time = 3600 //six minutes, as long as should be needed -/mob/camera/blob/New(loc, pre_placed = 0, mode_made = 0) +/mob/camera/blob/New(loc, pre_placed = 0, mode_made = 0, starting_points = 60) + blob_points = starting_points if(pre_placed) //we already have a core! manualplace_min_time = 0 autoplace_max_time = 0 @@ -42,10 +46,9 @@ name = new_name real_name = new_name last_attack = world.time - var/list/possible_reagents = list() - for(var/type in (subtypesof(/datum/reagent/blob))) - possible_reagents.Add(new type) - blob_reagent_datum = pick(possible_reagents) + var/datum/reagent/blob/BC = pick((subtypesof(/datum/reagent/blob))) + blob_reagent_datum = new BC + color = blob_reagent_datum.complementary_color if(blob_core) blob_core.update_icon() @@ -69,19 +72,20 @@ /mob/camera/blob/Destroy() for(var/BL in blobs) - var/obj/effect/blob/B = BL - if(B.overmind == src) + var/obj/structure/blob/B = BL + if(B && B.overmind == src) B.overmind = null B.update_icon() //reset anything that was ours for(var/BLO in blob_mobs) var/mob/living/simple_animal/hostile/blob/BM = BLO - BM.overmind = null - BM.update_icons() + if(BM) + BM.overmind = null + BM.update_icons() overminds -= src if(ghostimage) ghost_darkness_images -= ghostimage qdel(ghostimage) - ghostimage = null; + ghostimage = null updateallghostimages() return ..() @@ -91,18 +95,23 @@ src << "You are the overmind!" blob_help() update_health_hud() + add_points(0) + +/mob/camera/blob/examine(mob/user) + ..() + if(blob_reagent_datum) + user << "Its chemical is [blob_reagent_datum.name]." /mob/camera/blob/update_health_hud() if(blob_core) - hud_used.healths.maptext = "
    [round(blob_core.health)]
    " + hud_used.healths.maptext = "
    [round(blob_core.obj_integrity)]
    " for(var/mob/living/simple_animal/hostile/blob/blobbernaut/B in blob_mobs) if(B.hud_used && B.hud_used.blobpwrdisplay) - B.hud_used.blobpwrdisplay.maptext = "
    [round(blob_core.health)]
    " + B.hud_used.blobpwrdisplay.maptext = "
    [round(blob_core.obj_integrity)]
    " /mob/camera/blob/proc/add_points(points) - if(points != 0) - blob_points = Clamp(blob_points + points, 0, max_blob_points) - hud_used.blobpwrdisplay.maptext = "
    [round(src.blob_points)]
    " + blob_points = Clamp(blob_points + points, 0, max_blob_points) + hud_used.blobpwrdisplay.maptext = "
    [round(blob_points)]
    " /mob/camera/blob/say(message) if (!message) @@ -141,15 +150,20 @@ /mob/camera/blob/emote(act,m_type=1,message = null) return -/mob/camera/blob/blob_act(obj/effect/blob/B) +/mob/camera/blob/blob_act(obj/structure/blob/B) return /mob/camera/blob/Stat() ..() if(statpanel("Status")) if(blob_core) - stat(null, "Core Health: [blob_core.health]") + stat(null, "Core Health: [blob_core.obj_integrity]") stat(null, "Power Stored: [blob_points]/[max_blob_points]") + if(ticker && istype(ticker.mode, /datum/game_mode/blob)) + var/datum/game_mode/blob/B = ticker.mode + stat(null, "Blobs to Win: [blobs_legit.len]/[B.blobwincount]") + else + stat(null, "Total Blobs: [blobs.len]") if(free_chem_rerolls) stat(null, "You have [free_chem_rerolls] Free Chemical Reroll\s Remaining") if(!placed) @@ -159,17 +173,14 @@ /mob/camera/blob/Move(NewLoc, Dir = 0) if(placed) - var/obj/effect/blob/B = locate() in range("3x3", NewLoc) + var/obj/structure/blob/B = locate() in range("3x3", NewLoc) if(B) loc = NewLoc else return 0 else var/area/A = get_area(NewLoc) - if(istype(NewLoc, /turf/open/space) || istype(A, /area/shuttle)) //if unplaced, can't go on shuttles or space tiles + if(isspaceturf(NewLoc) || istype(A, /area/shuttle)) //if unplaced, can't go on shuttles or space tiles return 0 loc = NewLoc return 1 - -/mob/camera/blob/proc/can_attack() - return (world.time > (last_attack + CLICK_CD_RANGE)) diff --git a/code/game/gamemodes/blob/powers.dm b/code/game/gamemodes/blob/powers.dm index aa8485cf2f..1dc8df2ceb 100644 --- a/code/game/gamemodes/blob/powers.dm +++ b/code/game/gamemodes/blob/powers.dm @@ -28,13 +28,13 @@ src << "This spot is too dense to place a blob core on!" return 0 for(var/obj/O in T) - if(istype(O, /obj/effect/blob)) - if(istype(O, /obj/effect/blob/normal)) + if(istype(O, /obj/structure/blob)) + if(istype(O, /obj/structure/blob/normal)) qdel(O) else src << "There is already a blob here!" return 0 - if(O.density) + else if(O.density) src << "This spot is too dense to place a blob core on!" return 0 if(world.time <= manualplace_min_time && world.time <= autoplace_max_time) @@ -46,7 +46,7 @@ if(placed && blob_core) blob_core.forceMove(loc) else - var/obj/effect/blob/core/core = new(get_turf(src), null, point_rate, 1) + var/obj/structure/blob/core/core = new(get_turf(src), null, point_rate, 1) core.overmind = src blob_core = core core.update_icon() @@ -67,35 +67,36 @@ set desc = "Move your camera to a selected node." if(blob_nodes.len) var/list/nodes = list() - for(var/i = 1; i <= blob_nodes.len; i++) - nodes["Blob Node #[i]"] = blob_nodes[i] + for(var/i in 1 to blob_nodes.len) + var/obj/structure/blob/node/B = blob_nodes[i] + nodes["Blob Node #[i] ([B.overmind ? "[B.overmind.blob_reagent_datum.name]":"No Chemical"])"] = B var/node_name = input(src, "Choose a node to jump to.", "Node Jump") in nodes - var/obj/effect/blob/node/chosen_node = nodes[node_name] + var/obj/structure/blob/node/chosen_node = nodes[node_name] if(chosen_node) - src.loc = chosen_node.loc + loc = chosen_node.loc /mob/camera/blob/proc/createSpecial(price, blobType, nearEquals, needsNode, turf/T) if(!T) T = get_turf(src) - var/obj/effect/blob/B = (locate(/obj/effect/blob) in T) + var/obj/structure/blob/B = (locate(/obj/structure/blob) in T) if(!B) src << "There is no blob here!" return - if(!istype(B, /obj/effect/blob/normal)) + if(!istype(B, /obj/structure/blob/normal)) src << "Unable to use this blob, find a normal one." return if(needsNode && nodes_required) - if(!(locate(/obj/effect/blob/node) in orange(3, T)) && !(locate(/obj/effect/blob/core) in orange(4, T))) + if(!(locate(/obj/structure/blob/node) in orange(3, T)) && !(locate(/obj/structure/blob/core) in orange(4, T))) src << "You need to place this blob closer to a node or core!" return //handholdotron 2000 if(nearEquals) - for(var/obj/effect/blob/L in orange(nearEquals, T)) + for(var/obj/structure/blob/L in orange(nearEquals, T)) if(L.type == blobType) src << "There is a similar blob nearby, move more than [nearEquals] tiles away from it!" return if(!can_buy(price)) return - var/obj/effect/blob/N = B.change_to(blobType, src) + var/obj/structure/blob/N = B.change_to(blobType, src) return N /mob/camera/blob/verb/toggle_node_req() @@ -110,50 +111,51 @@ /mob/camera/blob/verb/create_shield_power() set category = "Blob" - set name = "Create Shield Blob (10)" + set name = "Create Shield Blob (15)" set desc = "Create a shield blob, which will block fire and is hard to kill." create_shield() /mob/camera/blob/proc/create_shield(turf/T) - createSpecial(10, /obj/effect/blob/shield, 0, 0, T) + createSpecial(15, /obj/structure/blob/shield, 0, 0, T) /mob/camera/blob/verb/create_resource() set category = "Blob" set name = "Create Resource Blob (40)" set desc = "Create a resource tower which will generate resources for you." - createSpecial(40, /obj/effect/blob/resource, 4, 1) + createSpecial(40, /obj/structure/blob/resource, 4, 1) /mob/camera/blob/verb/create_node() set category = "Blob" - set name = "Create Node Blob (60)" + set name = "Create Node Blob (50)" set desc = "Create a node, which will power nearby factory and resource blobs." - createSpecial(60, /obj/effect/blob/node, 5, 0) + createSpecial(50, /obj/structure/blob/node, 5, 0) /mob/camera/blob/verb/create_factory() set category = "Blob" set name = "Create Factory Blob (60)" set desc = "Create a spore tower that will spawn spores to harass your enemies." - createSpecial(60, /obj/effect/blob/factory, 7, 1) + createSpecial(60, /obj/structure/blob/factory, 7, 1) /mob/camera/blob/verb/create_blobbernaut() set category = "Blob" set name = "Create Blobbernaut (40)" set desc = "Create a powerful blobbernaut which is mildly smart and will attack enemies." var/turf/T = get_turf(src) - var/obj/effect/blob/factory/B = locate(/obj/effect/blob/factory) in T + var/obj/structure/blob/factory/B = locate(/obj/structure/blob/factory) in T if(!B) src << "You must be on a factory blob!" return if(B.naut) //if it already made a blobbernaut, it can't do it again src << "This factory blob is already sustaining a blobbernaut." return - if(B.health < B.maxhealth * 0.5) + if(B.obj_integrity < B.max_integrity * 0.5) src << "This factory blob is too damaged to sustain a blobbernaut." return if(!can_buy(40)) return - B.maxhealth = initial(B.maxhealth) * 0.25 //factories that produced a blobbernaut have much lower health - B.check_health() + B.max_integrity = initial(B.max_integrity) * 0.25 //factories that produced a blobbernaut have much lower health + B.obj_integrity = min(B.obj_integrity, B.max_integrity) + B.update_icon() B.visible_message("The blobbernaut [pick("rips", "tears", "shreds")] its way out of the factory blob!") playsound(B.loc, 'sound/effects/splat.ogg', 50, 1) var/mob/living/simple_animal/hostile/blob/blobbernaut/blobber = new /mob/living/simple_animal/hostile/blob/blobbernaut(get_turf(B)) @@ -165,11 +167,9 @@ blobber.notransform = 1 //stop the naut from moving around blobber.adjustHealth(blobber.maxHealth * 0.5) blob_mobs += blobber - var/list/mob/dead/observer/candidates = pollCandidates("Do you want to play as a [blob_reagent_datum.name] blobbernaut?", ROLE_BLOB, null, ROLE_BLOB, 50) //players must answer rapidly - var/client/C = null + var/list/mob/dead/observer/candidates = pollCandidatesForMob("Do you want to play as a [blob_reagent_datum.name] blobbernaut?", ROLE_BLOB, null, ROLE_BLOB, 50, blobber) //players must answer rapidly if(candidates.len) //if we got at least one candidate, they're a blobbernaut now. - C = pick(candidates) - blobber.notransform = 0 + var/client/C = pick(candidates) blobber.key = C.key blobber << 'sound/effects/blobattack.ogg' blobber << 'sound/effects/attackblob.ogg' @@ -178,23 +178,33 @@ blobber << "You can communicate with other blobbernauts and overminds via :b" blobber << "Your overmind's blob reagent is: [blob_reagent_datum.name]!" blobber << "The [blob_reagent_datum.name] reagent [blob_reagent_datum.shortdesc ? "[blob_reagent_datum.shortdesc]" : "[blob_reagent_datum.description]"]" - else - blobber.notransform = 0 //otherwise, just let it move + if(blobber) + blobber.notransform = 0 /mob/camera/blob/verb/relocate_core() set category = "Blob" set name = "Relocate Core (80)" set desc = "Swaps the locations of your core and the selected node." var/turf/T = get_turf(src) - var/obj/effect/blob/node/B = locate(/obj/effect/blob/node) in T + var/obj/structure/blob/node/B = locate(/obj/structure/blob/node) in T if(!B) src << "You must be on a blob node!" return + if(!blob_core) + src << "You have no core and are about to die! May you rest in peace." + return + var/area/A = get_area(T) + if(isspaceturf(T) || A && !A.blob_allowed) + src << "You cannot relocate your core here!" + return if(!can_buy(80)) return - var/turf/old_turf = blob_core.loc - blob_core.loc = T - B.loc = old_turf + var/turf/old_turf = get_turf(blob_core) + var/olddir = blob_core.dir + blob_core.forceMove(T) + blob_core.setDir(B.dir) + B.forceMove(old_turf) + B.setDir(olddir) /mob/camera/blob/verb/revert() set category = "Blob" @@ -204,7 +214,7 @@ remove_blob(T) /mob/camera/blob/proc/remove_blob(turf/T) - var/obj/effect/blob/B = locate() in T + var/obj/structure/blob/B = locate() in T if(!B) src << "There is no blob there!" return @@ -221,21 +231,22 @@ /mob/camera/blob/verb/expand_blob_power() set category = "Blob" - set name = "Expand/Attack Blob (5)" + set name = "Expand/Attack Blob (4)" set desc = "Attempts to create a new blob in this tile. If the tile isn't clear, instead attacks it, damaging mobs and objects." var/turf/T = get_turf(src) expand_blob(T) /mob/camera/blob/proc/expand_blob(turf/T) - if(!can_attack()) + if(world.time < last_attack) return - var/obj/effect/blob/OB = locate() in circlerange(T, 1) - if(!OB) + var/list/possibleblobs = list() + for(var/obj/structure/blob/AB in range(T, 1)) + possibleblobs += AB + if(!possibleblobs.len) src << "There is no blob adjacent to the target tile!" return - if(can_buy(5)) + if(can_buy(4)) var/attacksuccess = FALSE - last_attack = world.time for(var/mob/living/L in T) if("blob" in L.faction) //no friendly/dead fire continue @@ -244,16 +255,37 @@ var/mob_protection = L.get_permeability_protection() blob_reagent_datum.reaction_mob(L, VAPOR, 25, 1, mob_protection, src) blob_reagent_datum.send_message(L) - var/obj/effect/blob/B = locate() in T + var/obj/structure/blob/B = locate() in T if(B) if(attacksuccess) //if we successfully attacked a turf with a blob on it, don't refund shit B.blob_attack_animation(T, src) else src << "There is a blob there!" - add_points(5) //otherwise, refund all of the cost - return + add_points(4) //otherwise, refund all of the cost else - OB.expand(T, src) + var/list/cardinalblobs = list() + var/list/diagonalblobs = list() + for(var/I in possibleblobs) + var/obj/structure/blob/IB = I + if(get_dir(IB, T) in cardinal) + cardinalblobs += IB + else + diagonalblobs += IB + var/obj/structure/blob/OB + if(cardinalblobs.len) + OB = pick(cardinalblobs) + OB.expand(T, src) + else + OB = pick(diagonalblobs) + if(attacksuccess) + OB.blob_attack_animation(T, src) + playsound(OB, 'sound/effects/splat.ogg', 50, 1) + else + add_points(4) //if we're attacking diagonally and didn't hit anything, refund + if(attacksuccess) + last_attack = world.time + CLICK_CD_MELEE + else + last_attack = world.time + CLICK_CD_RAPID /mob/camera/blob/verb/rally_spores_power() set category = "Blob" @@ -298,8 +330,9 @@ /mob/camera/blob/proc/set_chemical() var/datum/reagent/blob/BC = pick((subtypesof(/datum/reagent/blob) - blob_reagent_datum.type)) blob_reagent_datum = new BC + color = blob_reagent_datum.complementary_color for(var/BL in blobs) - var/obj/effect/blob/B = BL + var/obj/structure/blob/B = BL B.update_icon() for(var/BLO in blob_mobs) var/mob/living/simple_animal/hostile/blob/BM = BLO @@ -308,6 +341,8 @@ BM << "The [blob_reagent_datum.name] reagent [blob_reagent_datum.shortdesc ? "[blob_reagent_datum.shortdesc]" : "[blob_reagent_datum.description]"]" src << "Your reagent is now: [blob_reagent_datum.name]!" src << "The [blob_reagent_datum.name] reagent [blob_reagent_datum.description]" + if(blob_reagent_datum.effectdesc) + src << "The [blob_reagent_datum.name] reagent [blob_reagent_datum.effectdesc]" /mob/camera/blob/verb/blob_help() set category = "Blob" @@ -316,6 +351,8 @@ src << "As the overmind, you can control the blob!" src << "Your blob reagent is: [blob_reagent_datum.name]!" src << "The [blob_reagent_datum.name] reagent [blob_reagent_datum.description]" + if(blob_reagent_datum.effectdesc) + src << "The [blob_reagent_datum.name] reagent [blob_reagent_datum.effectdesc]" src << "You can expand, which will attack people, damage objects, or place a Normal Blob if the tile is clear." src << "Normal Blobs will expand your reach and can be upgraded into special blobs that perform certain functions." src << "You can upgrade normal blobs into the following types of blob:" @@ -329,4 +366,4 @@ src << "Attempting to talk will send a message to all other overminds, allowing you to coordinate with them." if(!placed && autoplace_max_time <= world.time) src << "You will automatically place your blob core in [round((autoplace_max_time - world.time)/600, 0.5)] minutes." - src << "You [manualplace_min_time ? "will be able to":"can"] manually place your blob core by pressing the button in the bottom right corner of the screen." + src << "You [manualplace_min_time ? "will be able to":"can"] manually place your blob core by pressing the Place Blob Core button in the bottom right corner of the screen." diff --git a/code/game/gamemodes/blob/theblob.dm b/code/game/gamemodes/blob/theblob.dm index 29c3d15b62..6825d2cd6c 100644 --- a/code/game/gamemodes/blob/theblob.dm +++ b/code/game/gamemodes/blob/theblob.dm @@ -1,5 +1,5 @@ //I will need to recode parts of this but I am way too tired atm //I don't know who left this comment but they never did come back -/obj/effect/blob +/obj/structure/blob name = "blob" icon = 'icons/mob/blob.dmi' luminosity = 1 @@ -7,35 +7,37 @@ density = 0 //this being 0 causes two bugs, being able to attack blob tiles behind other blobs and being unable to move on blob tiles in no gravity, but turning it to 1 causes the blob mobs to be unable to path through blobs, which is probably worse. opacity = 0 anchored = 1 - explosion_block = 1 + layer = BELOW_MOB_LAYER var/point_return = 0 //How many points the blob gets back when it removes a blob of that type. If less than 0, blob cannot be removed. - var/health = 30 - var/maxhealth = 30 + obj_integrity = 30 + max_integrity = 30 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 80, acid = 70) var/health_regen = 2 //how much health this blob regens when pulsed - var/pulse_timestamp = 0 //we got pulsed/healed when? + var/pulse_timestamp = 0 //we got pulsed when? + var/heal_timestamp = 0 //we got healed when? var/brute_resist = 0.5 //multiplies brute damage by this var/fire_resist = 1 //multiplies burn damage by this var/atmosblock = 0 //if the blob blocks atmos and heat spread var/mob/camera/blob/overmind -/obj/effect/blob/New(loc) +/obj/structure/blob/New(loc) var/area/Ablob = get_area(loc) if(Ablob.blob_allowed) //Is this area allowed for winning as blob? blobs_legit += src blobs += src //Keep track of the blob in the normal list either way - src.setDir(pick(1, 2, 4, 8)) - src.update_icon() - ..(loc) + setDir(pick(cardinal)) + update_icon() + ..() ConsumeTile() if(atmosblock) + CanAtmosPass = ATMOS_PASS_NO air_update_turf(1) + +/obj/structure/blob/proc/creation_action() //When it's created by the overmind, do this. return -/obj/effect/blob/proc/creation_action() //When it's created by the overmind, do this. - return - -/obj/effect/blob/Destroy() +/obj/structure/blob/Destroy() if(atmosblock) atmosblock = 0 air_update_turf(1) @@ -44,8 +46,10 @@ playsound(src.loc, 'sound/effects/splat.ogg', 50, 1) //Expand() is no longer broken, no check necessary. return ..() +/obj/structure/blob/blob_act() + return -/obj/effect/blob/Adjacent(var/atom/neighbour) +/obj/structure/blob/Adjacent(var/atom/neighbour) . = ..() if(.) var/result = 0 @@ -54,89 +58,90 @@ for(var/A in dirs) if(direction == text2num(A)) for(var/B in dirs[A]) - var/C = locate(/obj/effect/blob) in get_step(src, B) + var/C = locate(/obj/structure/blob) in get_step(src, B) if(C) result++ . -= result - 1 -/obj/effect/blob/CanAtmosPass(turf/T) - return !atmosblock - -/obj/effect/blob/BlockSuperconductivity() +/obj/structure/blob/BlockSuperconductivity() return atmosblock -/obj/effect/blob/CanPass(atom/movable/mover, turf/target, height=0) +/obj/structure/blob/CanPass(atom/movable/mover, turf/target, height=0) if(height==0) return 1 if(istype(mover) && mover.checkpass(PASSBLOB)) return 1 return 0 -/obj/effect/blob/CanAStarPass(ID, dir, caller) +/obj/structure/blob/CanAStarPass(ID, dir, caller) . = 0 if(ismovableatom(caller)) var/atom/movable/mover = caller . = . || mover.checkpass(PASSBLOB) -/obj/effect/blob/proc/check_health(cause) - health = Clamp(health, 0, maxhealth) - if(health <= 0) - if(overmind) - overmind.blob_reagent_datum.death_reaction(src, cause) - qdel(src) //we dead now - return - return - -/obj/effect/blob/update_icon() //Updates color based on overmind color if we have an overmind. +/obj/structure/blob/update_icon() //Updates color based on overmind color if we have an overmind. if(overmind) - color = overmind.blob_reagent_datum.color + add_atom_colour(overmind.blob_reagent_datum.color, FIXED_COLOUR_PRIORITY) else - color = null - return + remove_atom_colour(FIXED_COLOUR_PRIORITY) - -/obj/effect/blob/process() +/obj/structure/blob/process() Life() + +/obj/structure/blob/proc/Life() return -/obj/effect/blob/proc/Life() - return - -/obj/effect/blob/proc/Pulse_Area(pulsing_overmind = overmind, claim_range = 10, pulse_range = 3, expand_range = 2) +/obj/structure/blob/proc/Pulse_Area(pulsing_overmind = overmind, claim_range = 10, pulse_range = 3, expand_range = 2) src.Be_Pulsed() - if(claim_range) - for(var/obj/effect/blob/B in urange(claim_range, src, 1)) - if(!B.overmind && !istype(B, /obj/effect/blob/core) && prob(30)) - B.overmind = pulsing_overmind //reclaim unclaimed, non-core blobs. - B.update_icon() - if(pulse_range) - for(var/obj/effect/blob/B in orange(pulse_range, src)) + var/expanded = FALSE + if(prob(70) && expand()) + expanded = TRUE + var/list/blobs_to_affect = list() + for(var/obj/structure/blob/B in urange(claim_range, src, 1)) + blobs_to_affect += B + shuffle(blobs_to_affect) + for(var/L in blobs_to_affect) + var/obj/structure/blob/B = L + if(!B.overmind && !istype(B, /obj/structure/blob/core) && prob(30)) + B.overmind = pulsing_overmind //reclaim unclaimed, non-core blobs. + B.update_icon() + var/distance = get_dist(get_turf(src), get_turf(B)) + var/expand_probablity = max(20 - distance * 8, 1) + if(B.Adjacent(src)) + expand_probablity = 20 + if(distance <= expand_range) + var/can_expand = TRUE + if(blobs_to_affect.len >= 120 && B.heal_timestamp > world.time) + can_expand = FALSE + if(can_expand && B.pulse_timestamp <= world.time && prob(expand_probablity)) + var/obj/structure/blob/newB = B.expand(null, null, !expanded) //expansion falls off with range but is faster near the blob causing the expansion + if(newB) + if(expanded) + qdel(newB) + expanded = TRUE + if(distance <= pulse_range) B.Be_Pulsed() - if(expand_range) - if(prob(85)) - src.expand() - for(var/obj/effect/blob/B in orange(expand_range, src)) - if(prob(max(13 - get_dist(get_turf(src), get_turf(B)) * 4, 1))) //expand falls off with range but is faster near the blob causing the expansion - B.expand() - return -/obj/effect/blob/proc/Be_Pulsed() +/obj/structure/blob/proc/Be_Pulsed() if(pulse_timestamp <= world.time) ConsumeTile() - health = min(maxhealth, health+health_regen) + if(heal_timestamp <= world.time) + obj_integrity = min(max_integrity, obj_integrity+health_regen) + heal_timestamp = world.time + 20 update_icon() pulse_timestamp = world.time + 10 return 1 //we did it, we were pulsed! return 0 //oh no we failed -/obj/effect/blob/proc/ConsumeTile() +/obj/structure/blob/proc/ConsumeTile() for(var/atom/A in loc) A.blob_act(src) - if(istype(loc, /turf/closed/wall)) + if(iswallturf(loc)) loc.blob_act(src) //don't ask how a wall got on top of the core, just eat it -/obj/effect/blob/proc/blob_attack_animation(atom/A = null, controller) //visually attacks an atom +/obj/structure/blob/proc/blob_attack_animation(atom/A = null, controller) //visually attacks an atom var/obj/effect/overlay/temp/blob/O = PoolOrNew(/obj/effect/overlay/temp/blob, src.loc) + O.setDir(dir) if(controller) var/mob/camera/blob/BO = controller O.color = BO.blob_reagent_datum.color @@ -147,14 +152,14 @@ O.do_attack_animation(A) //visually attack the whatever return O //just in case you want to do something to the animation. -/obj/effect/blob/proc/expand(turf/T = null, controller = null, expand_reaction = 1) +/obj/structure/blob/proc/expand(turf/T = null, controller = null, expand_reaction = 1) if(!T) var/list/dirs = list(1,2,4,8) for(var/i = 1 to 4) var/dirn = pick(dirs) dirs.Remove(dirn) T = get_step(src, dirn) - if(!(locate(/obj/effect/blob) in T)) + if(!(locate(/obj/structure/blob) in T)) break else T = null @@ -162,7 +167,7 @@ return 0 var/make_blob = TRUE //can we make a blob? - if(istype(T, /turf/open/space) && !(locate(/obj/structure/lattice) in T) && prob(80)) + if(isspaceturf(T) && !(locate(/obj/structure/lattice) in T) && prob(80)) make_blob = FALSE playsound(src.loc, 'sound/effects/splat.ogg', 50, 1) //Let's give some feedback that we DID try to spawn in space, since players are used to it @@ -176,7 +181,7 @@ A.blob_act(src) //also hit everything in the turf if(make_blob) //well, can we? - var/obj/effect/blob/B = new /obj/effect/blob/normal(src.loc) + var/obj/structure/blob/B = new /obj/structure/blob/normal(src.loc) if(controller) B.overmind = controller else @@ -187,7 +192,7 @@ B.loc = T B.update_icon() if(B.overmind && expand_reaction) - B.overmind.blob_reagent_datum.expand_reaction(src, B, T) + B.overmind.blob_reagent_datum.expand_reaction(src, B, T, controller) return B else blob_attack_animation(T, controller) @@ -198,43 +203,30 @@ blob_attack_animation(T, controller) //if we can't, animate that we attacked return null - -/obj/effect/blob/ex_act(severity, target) - ..() - var/damage = 150 - 20 * severity - take_damage(damage, BRUTE) - -/obj/effect/blob/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) - ..() - var/damage = Clamp(0.01 * exposed_temperature, 0, 4) - take_damage(damage, BURN) - -/obj/effect/blob/emp_act(severity) +/obj/structure/blob/emp_act(severity) if(severity > 0) if(overmind) overmind.blob_reagent_datum.emp_reaction(src, severity) if(prob(100 - severity * 30)) PoolOrNew(/obj/effect/overlay/temp/emp, get_turf(src)) -/obj/effect/blob/tesla_act(power) +/obj/structure/blob/tesla_act(power) ..() if(overmind) if(overmind.blob_reagent_datum.tesla_reaction(src, power)) - take_damage(power/400, BURN) + take_damage(power/400, BURN, "energy") else - take_damage(power/400, BURN) + take_damage(power/400, BURN, "energy") -/obj/effect/blob/extinguish() +/obj/structure/blob/extinguish() ..() if(overmind) overmind.blob_reagent_datum.extinguish_reaction(src) -/obj/effect/blob/bullet_act(var/obj/item/projectile/Proj) - ..() - take_damage(Proj.damage, Proj.damage_type, Proj) - return 0 +/obj/structure/blob/hulk_damage() + return 15 -/obj/effect/blob/attackby(obj/item/I, mob/user, params) +/obj/structure/blob/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/device/analyzer)) user.changeNext_move(CLICK_CD_MELEE) user << "The analyzer beeps once, then reports:
    " @@ -244,7 +236,7 @@ else return ..() -/obj/effect/blob/proc/chemeffectreport(mob/user) +/obj/structure/blob/proc/chemeffectreport(mob/user) if(overmind) user << "Material: [overmind.blob_reagent_datum.name]." user << "Material Effects: [overmind.blob_reagent_datum.analyzerdescdamage]" @@ -252,69 +244,67 @@ else user << "No Material Detected!
    " -/obj/effect/blob/proc/typereport(mob/user) +/obj/structure/blob/proc/typereport(mob/user) user << "Blob Type: [uppertext(initial(name))]" - user << "Health: [health]/[maxhealth]" + user << "Health: [obj_integrity]/[max_integrity]" user << "Effects: [scannerreport()]" -/obj/effect/blob/attacked_by(obj/item/I, mob/living/user) - user.changeNext_move(CLICK_CD_MELEE) - user.do_attack_animation(src) - playsound(src.loc, 'sound/effects/attackblob.ogg', 50, 1) - visible_message("[user] has attacked the [src.name] with \the [I]!") - if(I.damtype == BURN) - playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) - take_damage(I.force, I.damtype, user) - -/obj/effect/blob/attack_animal(mob/living/simple_animal/M) +/obj/structure/blob/attack_animal(mob/living/simple_animal/M) if("blob" in M.faction) //sorry, but you can't kill the blob as a blobbernaut return - M.changeNext_move(CLICK_CD_MELEE) - M.do_attack_animation(src) - playsound(src.loc, 'sound/effects/attackblob.ogg', 50, 1) - visible_message("\The [M] has attacked the [src.name]!") - var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) - take_damage(damage, M.melee_damage_type, M) - return + ..() -/obj/effect/blob/attack_alien(mob/living/carbon/alien/humanoid/M) - M.changeNext_move(CLICK_CD_MELEE) - M.do_attack_animation(src) - playsound(src.loc, 'sound/effects/attackblob.ogg', 50, 1) - visible_message("[M] has slashed the [src.name]!") - var/damage = rand(15, 30) - take_damage(damage, BRUTE, M) - return - -/obj/effect/blob/proc/take_damage(damage, damage_type, cause = null, overmind_reagent_trigger = 1) - switch(damage_type) //blobs only take brute and burn damage +/obj/structure/blob/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) + switch(damage_type) if(BRUTE) - damage = max(damage * brute_resist, 0) + if(damage_amount) + playsound(src.loc, 'sound/effects/attackblob.ogg', 50, 1) + else + playsound(src, 'sound/weapons/tap.ogg', 50, 1) if(BURN) - damage = max(damage * fire_resist, 0) - if(CLONE) //this is basically a marker for 'don't modify the damage' + playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) +/obj/structure/blob/run_obj_armor(damage_amount, damage_type, damage_flag = 0, attack_dir) + switch(damage_type) + if(BRUTE) + damage_amount *= brute_resist + if(BURN) + damage_amount *= fire_resist + if(CLONE) else - damage = 0 - if(overmind && overmind_reagent_trigger) - damage = overmind.blob_reagent_datum.damage_reaction(src, health, damage, damage_type, cause) //pass the blob, its health before damage, the damage being done, the type of damage being done, and the cause. - health -= damage - update_icon() - check_health(cause) + return 0 + var/armor_protection = 0 + if(damage_flag) + armor_protection = armor[damage_flag] + damage_amount = round(damage_amount * (100 - armor_protection)*0.01, 0.1) + if(overmind && damage_flag) + damage_amount = overmind.blob_reagent_datum.damage_reaction(src, damage_amount, damage_type, damage_flag) + return damage_amount -/obj/effect/blob/proc/change_to(type, controller) +/obj/structure/blob/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) + . = ..() + if(. && obj_integrity > 0) + update_icon() + +/obj/structure/blob/obj_destruction(damage_flag) + if(overmind) + overmind.blob_reagent_datum.death_reaction(src, damage_flag) + ..() + +/obj/structure/blob/proc/change_to(type, controller) if(!ispath(type)) throw EXCEPTION("change_to(): invalid type for blob") return - var/obj/effect/blob/B = new type(src.loc) + var/obj/structure/blob/B = new type(src.loc) if(controller) B.overmind = controller B.creation_action() B.update_icon() + B.setDir(dir) qdel(src) return B -/obj/effect/blob/examine(mob/user) +/obj/structure/blob/examine(mob/user) ..() var/datum/atom_hud/hud_to_check = huds[DATA_HUD_MEDICAL_ADVANCED] if(user.research_scanner || (user in hud_to_check.hudusers)) @@ -324,31 +314,31 @@ else user << "It seems to be made of [get_chem_name()]." -/obj/effect/blob/proc/scannerreport() +/obj/structure/blob/proc/scannerreport() return "A generic blob. Looks like someone forgot to override this proc, adminhelp this." -/obj/effect/blob/proc/get_chem_name() +/obj/structure/blob/proc/get_chem_name() if(overmind) return overmind.blob_reagent_datum.name return "an unknown variant" -/obj/effect/blob/normal +/obj/structure/blob/normal name = "normal blob" icon_state = "blob" luminosity = 0 - health = 21 - maxhealth = 25 + obj_integrity = 21 + max_integrity = 25 health_regen = 1 brute_resist = 0.25 -/obj/effect/blob/normal/scannerreport() - if(health <= 10) +/obj/structure/blob/normal/scannerreport() + if(obj_integrity <= 15) return "Currently weak to brute damage." return "N/A" -/obj/effect/blob/normal/update_icon() +/obj/structure/blob/normal/update_icon() ..() - if(health <= 10) + if(obj_integrity <= 15) icon_state = "blob_damaged" name = "fragile blob" desc = "A thin lattice of slightly twitching tendrils." diff --git a/code/game/gamemodes/changeling/cellular_emporium.dm b/code/game/gamemodes/changeling/cellular_emporium.dm index a71c5cfced..cc808dc80b 100644 --- a/code/game/gamemodes/changeling/cellular_emporium.dm +++ b/code/game/gamemodes/changeling/cellular_emporium.dm @@ -45,7 +45,6 @@ AL["helptext"] = initial(ability.helptext) AL["owned"] = changeling.has_sting(ability) var/req_dna = initial(ability.req_dna) - AL["required_absorptions"] = req_dna AL["dna_cost"] = dna_cost AL["can_purchase"] = ((req_dna <= absorbed_dna_count) && (dna_cost <= genetic_points_remaining)) diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm index 45c8bc2d3d..8d251b88e1 100644 --- a/code/game/gamemodes/changeling/changeling.dm +++ b/code/game/gamemodes/changeling/changeling.dm @@ -4,7 +4,7 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Pi","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega") var/list/slots = list("head", "wear_mask", "back", "wear_suit", "w_uniform", "shoes", "belt", "gloves", "glasses", "ears", "wear_id", "s_store") -var/list/slot2slot = list("head" = slot_head, "wear_mask" = slot_wear_mask, "back" = slot_back, "wear_suit" = slot_wear_suit, "w_uniform" = slot_w_uniform, "shoes" = slot_shoes, "belt" = slot_belt, "gloves" = slot_gloves, "glasses" = slot_glasses, "ears" = slot_ears, "wear_id" = slot_wear_id, "s_store" = slot_s_store) +var/list/slot2slot = list("head" = slot_head, "wear_mask" = slot_wear_mask, "neck" = slot_neck, "back" = slot_back, "wear_suit" = slot_wear_suit, "w_uniform" = slot_w_uniform, "shoes" = slot_shoes, "belt" = slot_belt, "gloves" = slot_gloves, "glasses" = slot_glasses, "ears" = slot_ears, "wear_id" = slot_wear_id, "s_store" = slot_s_store) var/list/slot2type = list("head" = /obj/item/clothing/head/changeling, "wear_mask" = /obj/item/clothing/mask/changeling, "back" = /obj/item/changeling, "wear_suit" = /obj/item/clothing/suit/changeling, "w_uniform" = /obj/item/clothing/under/changeling, "shoes" = /obj/item/clothing/shoes/changeling, "belt" = /obj/item/changeling, "gloves" = /obj/item/clothing/gloves/changeling, "glasses" = /obj/item/clothing/glasses/changeling, "ears" = /obj/item/changeling, "wear_id" = /obj/item/changeling, "s_store" = /obj/item/changeling) @@ -23,6 +23,10 @@ var/list/slot2type = list("head" = /obj/item/clothing/head/changeling, "wear_mas recommended_enemies = 4 reroll_friendly = 1 + announce_span = "green" + announce_text = "Alien changelings have infiltrated the crew!\n\ + Changelings: Accomplish the objectives assigned to you.\n\ + Crew: Root out and eliminate the changeling menace." var/const/prob_int_murder_target = 50 // intercept names the assassination target half the time var/const/prob_right_murder_target_l = 25 // lower bound on probability of naming right assassination target @@ -45,10 +49,6 @@ var/list/slot2type = list("head" = /obj/item/clothing/head/changeling, "wear_mas var/changeling_team_objective_type = null //If this is not null, we hand our this objective to all lings -/datum/game_mode/changeling/announce() - world << "The current game mode is - Changeling!" - world << "There are alien changelings on the station. Do not let the changelings succeed!" - /datum/game_mode/changeling/pre_setup() if(config.protect_roles_from_antagonist) @@ -70,8 +70,8 @@ var/list/slot2type = list("head" = /obj/item/clothing/head/changeling, "wear_mas var/datum/mind/changeling = pick(antag_candidates) antag_candidates -= changeling changelings += changeling + changeling.special_role = "Changeling" changeling.restricted_roles = restricted_jobs - modePlayer += changelings return 1 else return 0 @@ -94,10 +94,10 @@ var/list/slot2type = list("head" = /obj/item/clothing/head/changeling, "wear_mas for(var/datum/mind/changeling in changelings) log_game("[changeling.key] (ckey) has been selected as a changeling") changeling.current.make_changeling() - changeling.special_role = "Changeling" forge_changeling_objectives(changeling) greet_changeling(changeling) ticker.mode.update_changeling_icons_added(changeling) + modePlayer += changelings ..() /datum/game_mode/changeling/make_antag_chance(mob/living/carbon/human/character) //Assigns changeling to latejoiners diff --git a/code/game/gamemodes/changeling/changeling_power.dm b/code/game/gamemodes/changeling/changeling_power.dm index 321daa07a3..8bcc7a8ec2 100644 --- a/code/game/gamemodes/changeling/changeling_power.dm +++ b/code/game/gamemodes/changeling/changeling_power.dm @@ -15,7 +15,8 @@ var/req_stat = CONSCIOUS // CONSCIOUS, UNCONSCIOUS or DEAD var/genetic_damage = 0 // genetic damage caused by using the sting. Nothing to do with cloneloss. var/max_genetic_damage = 100 // hard counter for spamming abilities. Not used/balanced much yet. - var/always_keep = 0 // important for abilities like regenerate that screw you if you lose them. + var/always_keep = 0 // important for abilities like revive that screw you if you lose them. + var/ignores_fakedeath = FALSE // usable with the FAKEDEATH flag /obj/effect/proc_holder/changeling/proc/on_purchase(mob/user) @@ -56,16 +57,16 @@ user << "We cannot do that in this form!" return 0 var/datum/changeling/c = user.mind.changeling - if(c.chem_chargesWe require at least [chemical_cost] unit\s of chemicals to do that!" return 0 - if(c.absorbedcountWe require at least [req_dna] sample\s of compatible DNA." return 0 if(req_stat < user.stat) user << "We are incapacitated." return 0 - if((user.status_flags & FAKEDEATH) && name != "Regenerate") + if((user.status_flags & FAKEDEATH) && (!ignores_fakedeath)) user << "We are incapacitated." return 0 if(c.geneticdamage > max_genetic_damage) diff --git a/code/game/gamemodes/changeling/powers/absorb.dm b/code/game/gamemodes/changeling/powers/absorb.dm index 3e794cca62..0644516878 100644 --- a/code/game/gamemodes/changeling/powers/absorb.dm +++ b/code/game/gamemodes/changeling/powers/absorb.dm @@ -105,58 +105,3 @@ //datum/changeling/proc/absorb_dna(mob/living/carbon/T, mob/user) //datum/changeling/proc/store_dna(datum/dna/new_dna, mob/user) - - - - -/obj/effect/proc_holder/changeling/swap_form - name = "Swap Forms" - desc = "We force ourselves into the body of another form, pushing their consciousness into the form we left behind." - helptext = "We will bring all our abilities with us, but we will lose our old form DNA in exchange for the new one. The process will seem suspicious to any observers." - chemical_cost = 40 - dna_cost = 1 - req_human = 1 //Monkeys can't grab - -/obj/effect/proc_holder/changeling/swap_form/can_sting(mob/living/carbon/user) - if(!..()) - return - if(!user.pulling || !iscarbon(user.pulling) || user.grab_state < GRAB_AGGRESSIVE) - user << "We must have an aggressive grab on creature to do this!" - return - var/mob/living/carbon/target = user.pulling - if((target.disabilities & NOCLONE) || (target.disabilities & HUSK)) - user << "DNA of [target] is ruined beyond usability!" - return - if(!ishuman(target)) - user << "[target] is not compatible with this ability." - return - return 1 - - -/obj/effect/proc_holder/changeling/swap_form/sting_action(mob/living/carbon/user) - var/mob/living/carbon/target = user.pulling - var/datum/changeling/changeling = user.mind.changeling - - user << "We tighen our grip. We must hold still...." - target.do_jitter_animation(500) - user.do_jitter_animation(500) - - if(!do_mob(user,target,20)) - user << "The body swap has been interrupted!" - return - - target << "[user] tightens their grip as a painful sensation invades your body." - - if(!changeling.has_dna(target.dna)) - changeling.add_new_profile(target, user) - changeling.remove_profile(user) - - var/mob/dead/observer/ghost = target.ghostize(0) - user.mind.transfer_to(target) - if(ghost) - ghost.mind.transfer_to(user) - if(ghost.key) - user.key = ghost.key - - user.Paralyse(2) - target << "Our genes cry out as we swap our [user] form for [target]." diff --git a/code/game/gamemodes/changeling/powers/augmented_eyesight.dm b/code/game/gamemodes/changeling/powers/augmented_eyesight.dm index f5b496cf6a..ca45e620da 100644 --- a/code/game/gamemodes/changeling/powers/augmented_eyesight.dm +++ b/code/game/gamemodes/changeling/powers/augmented_eyesight.dm @@ -7,7 +7,7 @@ helptext = "Grants us thermal vision or flash protection. We will become a lot more vulnerable to flash-based devices while thermal vision is active." chemical_cost = 0 dna_cost = 2 //Would be 1 without thermal vision - var/active = 0 //Whether or not vision is enhanced + active = 0 //Whether or not vision is enhanced /obj/effect/proc_holder/changeling/augmented_eyesight/sting_action(mob/living/carbon/human/user) if(!istype(user)) diff --git a/code/game/gamemodes/changeling/powers/biodegrade.dm b/code/game/gamemodes/changeling/powers/biodegrade.dm index 7bc6f88f92..547ea78506 100644 --- a/code/game/gamemodes/changeling/powers/biodegrade.dm +++ b/code/game/gamemodes/changeling/powers/biodegrade.dm @@ -1,8 +1,7 @@ /obj/effect/proc_holder/changeling/biodegrade name = "Biodegrade" desc = "Dissolves restraints or other objects preventing free movement." - helptext = "This is obvious to nearby people, and can destroy \ - standard restraints and closets." + helptext = "This is obvious to nearby people, and can destroy standard restraints and closets." chemical_cost = 30 //High cost to prevent spam dna_cost = 2 req_human = 1 @@ -12,7 +11,7 @@ /obj/effect/proc_holder/changeling/biodegrade/sting_action(mob/living/carbon/human/user) var/used = FALSE // only one form of shackles removed per use - if(!user.restrained() && !istype(user.loc, /obj/structure/closet)) + if(!user.restrained() && istype(user.loc, /turf/open)) user << "We are already free!" return 0 @@ -20,23 +19,19 @@ var/obj/O = user.get_item_by_slot(slot_handcuffed) if(!istype(O)) return 0 - user.visible_message("[user] vomits a glob of \ - acid on \his [O]!", \ - "We vomit acidic ooze onto our \ - restraints!") + user.visible_message("[user] vomits a glob of acid on [user.p_their()] [O]!", \ + "We vomit acidic ooze onto our restraints!") - addtimer(src, "dissolve_handcuffs", 30, FALSE, user, O) + addtimer(src, "dissolve_handcuffs", 30, TIMER_NORMAL, user, O) used = TRUE if(user.wear_suit && user.wear_suit.breakouttime && !used) var/obj/item/clothing/suit/S = user.get_item_by_slot(slot_wear_suit) if(!istype(S)) return 0 - user.visible_message("[user] vomits a glob \ - of acid across the front of \his [S]!", \ - "We vomit acidic ooze onto our straight \ - jacket!") - addtimer(src, "dissolve_straightjacket", 30, FALSE, user, S) + user.visible_message("[user] vomits a glob of acid across the front of [user.p_their()] [S]!", \ + "We vomit acidic ooze onto our straight jacket!") + addtimer(src, "dissolve_straightjacket", 30, TIMER_NORMAL, user, S) used = TRUE @@ -44,11 +39,18 @@ var/obj/structure/closet/C = user.loc if(!istype(C)) return 0 - C.visible_message("[C]'s hinges suddenly \ - begin to melt and run!") - user << "We vomit acidic goop onto the \ - interior of [C]!" - addtimer(src, "open_closet", 70, FALSE, user, C) + C.visible_message("[C]'s hinges suddenly begin to melt and run!") + user << "We vomit acidic goop onto the interior of [C]!" + addtimer(src, "open_closet", 70, TIMER_NORMAL, user, C) + used = TRUE + + if(istype(user.loc, /obj/structure/spider/cocoon) && !used) + var/obj/structure/spider/cocoon/C = user.loc + if(!istype(C)) + return 0 + C.visible_message("[src] shifts and starts to fall apart!") + user << "We secrete acidic enzymes from our skin and begin melting our cocoon..." + addtimer(src, "dissolve_cocoon", 25, TIMER_NORMAL, user, C) //Very short because it's just webs used = TRUE if(used) @@ -58,8 +60,7 @@ /obj/effect/proc_holder/changeling/biodegrade/proc/dissolve_handcuffs(mob/living/carbon/human/user, obj/O) if(O && user.handcuffed == O) user.unEquip(O) - O.visible_message("[O] dissolves into a \ - puddle of sizzling goop.") + O.visible_message("[O] dissolves into a puddle of sizzling goop.") O.loc = get_turf(user) qdel(O) @@ -72,11 +73,14 @@ /obj/effect/proc_holder/changeling/biodegrade/proc/open_closet(mob/living/carbon/human/user, obj/structure/closet/C) if(C && user.loc == C) - C.visible_message("[C]'s door breaks and \ - opens!") + C.visible_message("[C]'s door breaks and opens!") C.welded = FALSE C.locked = FALSE C.broken = TRUE C.open() - user << "We open the container restraining \ - us!" + user << "We open the container restraining us!" + +/obj/effect/proc_holder/changeling/biodegrade/proc/dissolve_cocoon(mob/living/carbon/human/user, obj/structure/spider/cocoon/C) + if(C && user.loc == C) + qdel(C) //The cocoon's destroy will move the changeling outside of it without interference + user << "We dissolve the cocoon!" diff --git a/code/game/gamemodes/changeling/powers/fakedeath.dm b/code/game/gamemodes/changeling/powers/fakedeath.dm index 08bfd9187c..83f17331b4 100644 --- a/code/game/gamemodes/changeling/powers/fakedeath.dm +++ b/code/game/gamemodes/changeling/powers/fakedeath.dm @@ -1,5 +1,5 @@ /obj/effect/proc_holder/changeling/fakedeath - name = "Regenerative Stasis" + name = "Reviving Stasis" desc = "We fall into a stasis, allowing us to regenerate and trick our enemies." chemical_cost = 15 dna_cost = 0 @@ -18,19 +18,19 @@ user.update_stat() user.update_canmove() - addtimer(src, "ready_to_regenerate", LING_FAKEDEATH_TIME, FALSE, user) + addtimer(src, "ready_to_regenerate", LING_FAKEDEATH_TIME, TIMER_UNIQUE, user) feedback_add_details("changeling_powers","FD") return 1 /obj/effect/proc_holder/changeling/fakedeath/proc/ready_to_regenerate(mob/user) if(user && user.mind && user.mind.changeling && user.mind.changeling.purchasedpowers) - user << "We are ready to regenerate." + user << "We are ready to revive." user.mind.changeling.purchasedpowers += new /obj/effect/proc_holder/changeling/revive(null) /obj/effect/proc_holder/changeling/fakedeath/can_sting(mob/user) if(user.status_flags & FAKEDEATH) - user << "We are already regenerating." + user << "We are already reviving." return if(!user.stat) //Confirmation for living changelings if they want to fake their death switch(alert("Are we sure we wish to fake our own death?",,"Yes", "No")) diff --git a/code/game/gamemodes/changeling/powers/fleshmend.dm b/code/game/gamemodes/changeling/powers/fleshmend.dm index e779715e76..fbb61d224e 100644 --- a/code/game/gamemodes/changeling/powers/fleshmend.dm +++ b/code/game/gamemodes/changeling/powers/fleshmend.dm @@ -1,11 +1,12 @@ /obj/effect/proc_holder/changeling/fleshmend name = "Fleshmend" - desc = "Our flesh rapidly regenerates, healing our wounds, and growing \ - back missing limbs. Effectiveness decreases with quick, repeated use." + desc = "Our flesh rapidly regenerates, healing our burns, bruises and \ + shortness of breath. Effectiveness decreases with quick, \ + repeated use." helptext = "Heals a moderate amount of damage over a short period of \ - time. Can be used while unconscious. Will alert nearby crew if \ - any limbs are regenerated." - chemical_cost = 25 + time. Can be used while unconscious. Does not regrow limbs or \ + restore lost blood." + chemical_cost = 20 dna_cost = 2 req_stat = UNCONSCIOUS var/recent_uses = 1 //The factor of which the healing should be divided by @@ -33,30 +34,25 @@ if(recent_uses > 1) user << "Our healing's effectiveness is reduced \ by quick repeated use!" - spawn(0) - recent_uses++ - if(ishuman(user)) - var/mob/living/carbon/human/H = user - H.restore_blood() - H.remove_all_embedded_objects() - var/list/missing = H.get_missing_limbs() - if(missing.len) - playsound(user, 'sound/magic/Demon_consume.ogg', 50, 1) - H.visible_message("[user]'s missing limbs reform, making a loud, grotesque sound!", "Your limbs regrow, making a loud, crunchy sound and giving you great pain!", "You hear organic matter ripping and tearing!") - H.emote("scream") - H.regenerate_limbs(1) - // The healing itself - doesn't heal toxin damage - // (that's anatomic panacea) and the effectiveness decreases with - // each use in a short timespan - for(var/i in 1 to healing_ticks) - if(user) - var/healpertick = -(total_healing / healing_ticks) - user.adjustBruteLoss(healpertick / recent_uses, 0) - user.adjustOxyLoss(healpertick / recent_uses, 0) - user.adjustFireLoss(healpertick / recent_uses, 0) - user.updatehealth() - sleep(10) + recent_uses++ + addtimer(src, "fleshmend", 0, TIMER_NORMAL, user) feedback_add_details("changeling_powers","RR") return 1 + +/obj/effect/proc_holder/changeling/fleshmend/proc/fleshmend(mob/living/user) + + // The healing itself - doesn't heal toxin damage + // (that's anatomic panacea) and the effectiveness decreases with + // each use in a short timespan + for(var/i in 1 to healing_ticks) + if(user) + var/healpertick = -(total_healing / healing_ticks) + user.adjustBruteLoss(healpertick / recent_uses, 0) + user.adjustOxyLoss(healpertick / recent_uses, 0) + user.adjustFireLoss(healpertick / recent_uses, 0) + user.updatehealth() + else + break + sleep(10) diff --git a/code/game/gamemodes/changeling/powers/linglink.dm b/code/game/gamemodes/changeling/powers/linglink.dm index 3b90ee14bd..204888db7b 100644 --- a/code/game/gamemodes/changeling/powers/linglink.dm +++ b/code/game/gamemodes/changeling/powers/linglink.dm @@ -46,7 +46,7 @@ user << "We stealthily stab [target] with a minor proboscis..." target << "You experience a stabbing sensation and your ears begin to ring..." if(3) - user << "You mold the [target]'s mind like clay, they can now speak in the hivemind!" + user << "We mold the [target]'s mind like clay, granting [target.p_them()] the ability to speak in the hivemind!" target << "A migraine throbs behind your eyes, you hear yourself screaming - but your mouth has not opened!" for(var/mob/M in mob_list) if(M.lingcheck() == 2) diff --git a/code/game/gamemodes/changeling/powers/mutations.dm b/code/game/gamemodes/changeling/powers/mutations.dm index b9023bbb4e..6c50490a57 100644 --- a/code/game/gamemodes/changeling/powers/mutations.dm +++ b/code/game/gamemodes/changeling/powers/mutations.dm @@ -17,47 +17,47 @@ dna_cost = -1 genetic_damage = 1000 + var/silent = FALSE var/weapon_type var/weapon_name_simple /obj/effect/proc_holder/changeling/weapon/try_to_sting(mob/user, mob/target) - if(check_weapon(user, user.r_hand, 1)) - return - if(check_weapon(user, user.l_hand, 0)) - return + for(var/obj/item/I in user.held_items) + if(check_weapon(user, I)) + return ..(user, target) -/obj/effect/proc_holder/changeling/weapon/proc/check_weapon(mob/user, obj/item/hand_item, right_hand=1) +/obj/effect/proc_holder/changeling/weapon/proc/check_weapon(mob/user, obj/item/hand_item) if(istype(hand_item, weapon_type)) - playsound(user, 'sound/effects/blobattack.ogg', 30, 1) qdel(hand_item) - user.visible_message("With a sickening crunch, [user] reforms their [weapon_name_simple] into an arm!", "We assimilate the [weapon_name_simple] back into our body.", "With a sickening crunch, [user] reforms their [weapon_name_simple] into an arm!", "We assimilate the [weapon_name_simple] back into our body.", "The [user.get_active_hand()] is stuck to your hand, you cannot grow a [weapon_name_simple] over it!" + user << "The [user.get_active_held_item()] is stuck to your hand, you cannot grow a [weapon_name_simple] over it!" return var/limb_regen = 0 - if(user.hand) //we regen the arm before changing it into the weapon - limb_regen = user.regenerate_limb("l_arm", 1) - else + if(user.active_hand_index % 2 == 0) //we regen the arm before changing it into the weapon limb_regen = user.regenerate_limb("r_arm", 1) + else + limb_regen = user.regenerate_limb("l_arm", 1) if(limb_regen) user.visible_message("[user]'s missing arm reforms, making a loud, grotesque sound!", "Your arm regrows, making a loud, crunchy sound and giving you great pain!", "You hear organic matter ripping and tearing!") user.emote("scream") - var/obj/item/W = new weapon_type(user) + var/obj/item/W = new weapon_type(user, silent) user.put_in_hands(W) - playsound(user, 'sound/effects/blobattack.ogg', 30, 1) + if(!silent) + playsound(user, 'sound/effects/blobattack.ogg', 30, 1) return W /obj/effect/proc_holder/changeling/weapon/on_refund(mob/user) - check_weapon(user, user.r_hand, 1) - check_weapon(user, user.l_hand, 0) + for(var/obj/item/I in user.held_items) + check_weapon(user, I) + //Parent to space suits and armor. /obj/effect/proc_holder/changeling/suit @@ -146,12 +146,12 @@ /obj/item/weapon/melee/arm_blade name = "arm blade" - desc = "A grotesque blade made out of bone and flesh that cleaves through people as a hot knife through butter" + desc = "A grotesque blade made out of bone and flesh that cleaves through people as a hot knife through butter." icon = 'icons/obj/weapons.dmi' icon_state = "arm_blade" item_state = "arm_blade" flags = ABSTRACT | NODROP | DROPDEL - w_class = 5.0 + w_class = WEIGHT_CLASS_HUGE force = 25 throwforce = 0 //Just to be on the safe side throw_range = 0 @@ -168,7 +168,7 @@ return if(istype(target, /obj/structure/table)) var/obj/structure/table/T = target - T.table_destroy() + T.deconstruct(FALSE) else if(istype(target, /obj/machinery/computer)) var/obj/machinery/computer/C = target @@ -179,24 +179,186 @@ if(!A.requiresID() || A.allowed(user)) //This is to prevent stupid shit like hitting a door with an arm blade, the door opening because you have acces and still getting a "the airlocks motors resist our efforts to force it" message. return - - if(A.hasPower()) - if(A.locked) - user << "The airlock's bolts prevent it from being forced!" - return - user << "The airlock's motors are resisting, this may take time..." - if(do_after(user, 100, target = A)) - A.open(2) - return - - else if(A.locked) + if(A.locked) user << "The airlock's bolts prevent it from being forced!" return + if(A.hasPower()) + user.visible_message("[user] jams [src] into the airlock and starts prying it open!", "We start forcing the airlock open.", \ + "You hear a metal screeching sound.") + playsound(A, 'sound/machines/airlock_alien_prying.ogg', 100, 1) + if(!do_after(user, 100, target = A)) + return + //user.say("Heeeeeeeeeerrre's Johnny!") + user.visible_message("[user] forces the airlock to open with their [src]!", "We force the airlock to open.", \ + "You hear a metal screeching sound.") + A.open(2) + +/***************************************\ +|***********COMBAT TENTACLES*************| +\***************************************/ + +/obj/effect/proc_holder/changeling/weapon/tentacle + name = "Tentacle" + desc = "We ready a tentacle to grab items or victims with." + helptext = "We can use it once to retrieve a distant item. If used on living creatures, the effect depends on the intent: \ + Help will simply drag them closer, Disarm will grab whatever they're holding instead of them, Grab will put the victim in our hold after catching it, \ + and Harm will stun it, and stab it if we're also holding a sharp weapon. Cannot be used while in lesser form." + chemical_cost = 10 + dna_cost = 2 + genetic_damage = 5 + req_human = 1 + max_genetic_damage = 10 + weapon_type = /obj/item/weapon/gun/magic/tentacle + weapon_name_simple = "tentacle" + silent = TRUE + +/obj/item/weapon/gun/magic/tentacle + name = "tentacle" + desc = "A fleshy tentacle that can stretch out and grab things or people." + icon = 'icons/obj/weapons.dmi' + icon_state = "proboscis" + item_state = null + flags = ABSTRACT | NODROP | DROPDEL | NOBLUDGEON + w_class = WEIGHT_CLASS_HUGE + ammo_type = /obj/item/ammo_casing/magic/tentacle + fire_sound = 'sound/effects/splat.ogg' + force = 0 + max_charges = 1 + throwforce = 0 //Just to be on the safe side + throw_range = 0 + throw_speed = 0 + +/obj/item/weapon/gun/magic/tentacle/New(location,silent) + ..() + if(ismob(loc)) + if(!silent) + loc.visible_message("[loc.name]\'s arm starts stretching inhumanly!", "Our arm twists and mutates, transforming it into a tentacle.", "You hear organic matter ripping and tearing!") else - //user.say("Heeeeeeeeeerrre's Johnny!") - user.visible_message("[user] forces the door to open with \his [src]!", "We force the door to open.", "You hear a metal screeching sound.") - A.open(1) + loc << "You prepare to extend a tentacle." + + +/obj/item/weapon/gun/magic/tentacle/shoot_with_empty_chamber(mob/living/user as mob|obj) + user << "The [name] is not ready yet." + +/obj/item/ammo_casing/magic/tentacle + name = "tentacle" + desc = "a tentacle." + projectile_type = /obj/item/projectile/tentacle + caliber = "tentacle" + icon_state = "tentacle_end" + firing_effect_type = null + var/obj/item/weapon/gun/magic/tentacle/gun //the item that shot it + +/obj/item/ammo_casing/magic/tentacle/New(obj/item/weapon/gun/magic/tentacle/tentacle_gun) + gun = tentacle_gun + ..() + +/obj/item/ammo_casing/magic/tentacle/Destroy(obj/item/weapon/gun/magic/tentacle/tentacle_gun) + gun = null + ..() + +/obj/item/projectile/tentacle + name = "tentacle" + icon_state = "tentacle_end" + pass_flags = PASSTABLE + damage = 0 + damage_type = BRUTE + range = 8 + hitsound = 'sound/weapons/thudswoosh.ogg' + var/chain + var/obj/item/ammo_casing/magic/tentacle/source //the item that shot it + +/obj/item/projectile/tentacle/New(obj/item/ammo_casing/magic/tentacle/tentacle_casing) + source = tentacle_casing + ..() + +/obj/item/projectile/tentacle/fire(setAngle) + if(firer) + chain = firer.Beam(src, icon_state = "tentacle", time = INFINITY, maxdistance = INFINITY, beam_sleep_time = 1) + ..() + +/obj/item/projectile/tentacle/proc/reset_throw(mob/living/carbon/human/H) + if(H.in_throw_mode) + H.throw_mode_off() //Don't annoy the changeling if he doesn't catch the item + +/obj/item/projectile/tentacle/proc/tentacle_grab(mob/living/carbon/human/H, mob/living/carbon/C) + if(H.Adjacent(C)) + C.grabbedby(H) + C.grippedby(H) //instant aggro grab + +/obj/item/projectile/tentacle/proc/tentacle_stab(mob/living/carbon/human/H, mob/living/carbon/C) + if(H.Adjacent(C)) + for(var/obj/item/I in H.held_items) + if(I.is_sharp()) + C.visible_message("[H] impales [C] with [H.p_their()] [I.name]!", "[H] impales you with [H.p_their()] [I.name]!") + C.apply_damage(I.force*2, BRUTE, "chest") + H.do_item_attack_animation(C, used_item = I) + H.add_mob_blood(C) + playsound(get_turf(H),I.hitsound,75,1) + C.Weaken(4) + return + C.visible_message("[C] falls at [H]'s feet!", "You are thrown at [H]'s feet!") + C.Weaken(2) + +/obj/item/projectile/tentacle/on_hit(atom/target, blocked = 0) + qdel(source.gun) //one tentacle only unless you miss + if(blocked >= 100) + return 0 + var/mob/living/carbon/human/H = firer + if(istype(target, /obj/item)) + var/obj/item/I = target + if(!I.anchored) + firer << "You pull [I] towards yourself." + H.throw_mode_on() + I.throw_at(H, 10, 2) + . = 1 + + else if(isliving(target)) + var/mob/living/L = target + if(!L.anchored && !L.throwing)//avoid double hits + if(iscarbon(L)) + var/mob/living/carbon/C = L + switch(firer.a_intent) + if(INTENT_HELP) + C.visible_message("[L] is pulled by [H]'s tentacle!","A tentacle grabs you and pulls you towards [H]!") + C.throw_at(get_step_towards(H,C), 8, 2) + return 1 + + if(INTENT_DISARM) + var/obj/item/I = C.get_active_held_item() + if(I) + if(C.drop_item()) + C.visible_message("[I] is yanked off of [C]'s hand by [src]!","A tentacle pulls [I] away from you!") + on_hit(I) //grab the item as if you had hit it directly with the tentacle + return 1 + else + firer << "You can't seem to pry [I] off of [C]'s hands!" + return 0 + else + firer << "[C] has nothing in hand to disarm!" + return 0 + + if(INTENT_GRAB) + C.visible_message("[L] is grabbed by [H]'s tentacle!","A tentacle grabs you and pulls you towards [H]!") + C.throw_at(get_step_towards(H,C), 8, 2) + addtimer(src, "tentacle_grab", 3, TIMER_NORMAL, H, C) + return 1 + + if(INTENT_HARM) + C.visible_message("[L] is thrown towards [H] by a tentacle!","A tentacle grabs you and throws you towards [H]!") + C.throw_at(get_step_towards(H,C), 8, 2) + addtimer(src, "tentacle_stab", 3, TIMER_NORMAL, H, C) + return 1 + else + L.visible_message("[L] is pulled by [H]'s tentacle!","A tentacle grabs you and pulls you towards [H]!") + L.throw_at(get_step_towards(H,L), 8, 2) + . = 1 + +/obj/item/projectile/tentacle/Destroy() + qdel(chain) + source = null + return ..() /***************************************\ @@ -278,7 +440,7 @@ desc = "A huge, bulky mass of pressure and temperature-resistant organic tissue, evolved to facilitate space travel." flags = STOPSPRESSUREDMAGE | NODROP | DROPDEL //Not THICKMATERIAL because it's organic tissue, so if somebody tries to inject something into it, it still ends up in your blood. (also balance but muh fluff) allowed = list(/obj/item/device/flashlight, /obj/item/weapon/tank/internals/emergency_oxygen, /obj/item/weapon/tank/internals/oxygen) - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) //No armor at all. + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 90, acid = 90) //No armor at all. /obj/item/clothing/suit/space/changeling/New() ..() @@ -296,7 +458,7 @@ icon_state = "lingspacehelmet" desc = "A covering of pressure and temperature-resistant organic tissue with a glass-like chitin front." flags = STOPSPRESSUREDMAGE | NODROP | DROPDEL //Again, no THICKMATERIAL. - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 90, acid = 90) flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH /***************************************\ @@ -324,7 +486,7 @@ icon_state = "lingarmor" flags = NODROP | DROPDEL body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS - armor = list(melee = 40, bullet = 40, laser = 40, energy = 20, bomb = 10, bio = 4, rad = 0) + armor = list(melee = 40, bullet = 40, laser = 40, energy = 20, bomb = 10, bio = 4, rad = 0, fire = 90, acid = 90) flags_inv = HIDEJUMPSUIT cold_protection = 0 heat_protection = 0 @@ -339,5 +501,5 @@ desc = "A tough, hard covering of black chitin with transparent chitin in front." icon_state = "lingarmorhelmet" flags = NODROP | DROPDEL - armor = list(melee = 30, bullet = 30, laser = 40, energy = 20, bomb = 10, bio = 4, rad = 0) + armor = list(melee = 40, bullet = 40, laser = 40, energy = 20, bomb = 10, bio = 4, rad = 0, fire = 90, acid = 90) flags_inv = HIDEEARS|HIDEHAIR|HIDEEYES|HIDEFACIALHAIR|HIDEFACE diff --git a/code/game/gamemodes/changeling/powers/panacea.dm b/code/game/gamemodes/changeling/powers/panacea.dm index b3e02877ea..dae5f89ea9 100644 --- a/code/game/gamemodes/changeling/powers/panacea.dm +++ b/code/game/gamemodes/changeling/powers/panacea.dm @@ -10,6 +10,15 @@ /obj/effect/proc_holder/changeling/panacea/sting_action(mob/user) user << "We begin cleansing impurities from our form." + var/mob/living/simple_animal/borer/B = user.has_brain_worms() + if(B) + if(B.controlling) + B.detatch() + B.leave_victim() + if(iscarbon(user)) + var/mob/living/carbon/C = user + C.vomit(0) + user << "A parasite exits our form." var/obj/item/organ/body_egg/egg = user.getorgan(/obj/item/organ/body_egg) if(egg) egg.Remove(user) diff --git a/code/game/gamemodes/changeling/powers/regenerate.dm b/code/game/gamemodes/changeling/powers/regenerate.dm new file mode 100644 index 0000000000..6d38a58cc4 --- /dev/null +++ b/code/game/gamemodes/changeling/powers/regenerate.dm @@ -0,0 +1,32 @@ +/obj/effect/proc_holder/changeling/regenerate + name = "Regenerate" + desc = "Allows us to regrow and restore missing external limbs, and \ + vital internal organs, as well as removing shrapnel and restoring \ + blood volume." + helptext = "Will alert nearby crew if any external limbs are \ + regenerated. Can be used while unconscious." + chemical_cost = 10 + dna_cost = 0 + req_stat = UNCONSCIOUS + always_keep = TRUE + +/obj/effect/proc_holder/changeling/regenerate/sting_action(mob/living/user) + user << "You feel an itching, both inside and \ + outside as your tissues knit and reknit." + if(iscarbon(user)) + var/mob/living/carbon/C = user + var/list/missing = C.get_missing_limbs() + if(missing.len) + playsound(user, 'sound/magic/Demon_consume.ogg', 50, 1) + C.visible_message("[user]'s missing limbs \ + reform, making a loud, grotesque sound!", + "Your limbs regrow, making a \ + loud, crunchy sound and giving you great pain!", + "You hear organic matter ripping \ + and tearing!") + C.emote("scream") + C.regenerate_limbs(1) + if(ishuman(user)) + var/mob/living/carbon/human/H = user + H.restore_blood() + H.remove_all_embedded_objects() diff --git a/code/game/gamemodes/changeling/powers/revive.dm b/code/game/gamemodes/changeling/powers/revive.dm index 048909e6ad..653b2c6b67 100644 --- a/code/game/gamemodes/changeling/powers/revive.dm +++ b/code/game/gamemodes/changeling/powers/revive.dm @@ -1,16 +1,29 @@ /obj/effect/proc_holder/changeling/revive - name = "Regenerate" + name = "Revive" desc = "We regenerate, healing all damage from our form." + helptext = "Does not regrow lost organs or a missing head." req_stat = DEAD - always_keep = 1 + always_keep = TRUE + ignores_fakedeath = TRUE //Revive from revival stasis /obj/effect/proc_holder/changeling/revive/sting_action(mob/living/carbon/user) user.status_flags &= ~(FAKEDEATH) user.tod = null user.revive(full_heal = 1) - user.regenerate_limbs(0, list("head")) //regenerate all limbs except the head - user << "We have regenerated." + var/list/missing = user.get_missing_limbs() + missing -= "head" // headless changelings are funny + if(missing.len) + playsound(user, 'sound/magic/Demon_consume.ogg', 50, 1) + user.visible_message("[user]'s missing limbs \ + reform, making a loud, grotesque sound!", + "Your limbs regrow, making a \ + loud, crunchy sound and giving you great pain!", + "You hear organic matter ripping \ + and tearing!") + user.emote("scream") + user.regenerate_limbs(0, list("head")) + user << "We have revived ourselves." user.mind.changeling.purchasedpowers -= src feedback_add_details("changeling_powers","CR") return 1 diff --git a/code/game/gamemodes/changeling/powers/shriek.dm b/code/game/gamemodes/changeling/powers/shriek.dm index c573bfe493..21d533212e 100644 --- a/code/game/gamemodes/changeling/powers/shriek.dm +++ b/code/game/gamemodes/changeling/powers/shriek.dm @@ -23,7 +23,7 @@ for(var/obj/machinery/light/L in range(4, user)) L.on = 1 - L.broken() + L.break_light_tube() feedback_add_details("changeling_powers","RS") return 1 @@ -38,7 +38,7 @@ /obj/effect/proc_holder/changeling/dissonant_shriek/sting_action(mob/user) for(var/obj/machinery/light/L in range(5, usr)) L.on = 1 - L.broken() + L.break_light_tube() empulse(get_turf(user), 2, 5, 1) return 1 diff --git a/code/game/gamemodes/changeling/powers/spiders.dm b/code/game/gamemodes/changeling/powers/spiders.dm index 78d13b2209..c06ef9a694 100644 --- a/code/game/gamemodes/changeling/powers/spiders.dm +++ b/code/game/gamemodes/changeling/powers/spiders.dm @@ -8,9 +8,6 @@ //Makes some spiderlings. Good for setting traps and causing general trouble. /obj/effect/proc_holder/changeling/spiders/sting_action(mob/user) - for(var/i=0, i<2, i++) - var/obj/effect/spider/spiderling/S = new(user.loc) - S.grow_as = /mob/living/simple_animal/hostile/poison/giant_spider/hunter - + spawn_atom_to_turf(/obj/structure/spider/spiderling/hunter, user, 2, FALSE) feedback_add_details("changeling_powers","SI") return 1 diff --git a/code/game/gamemodes/changeling/powers/strained_muscles.dm b/code/game/gamemodes/changeling/powers/strained_muscles.dm index 94c96ad30b..79c707bff0 100644 --- a/code/game/gamemodes/changeling/powers/strained_muscles.dm +++ b/code/game/gamemodes/changeling/powers/strained_muscles.dm @@ -9,14 +9,14 @@ dna_cost = 1 req_human = 1 var/stacks = 0 //Increments every 5 seconds; damage increases over time - var/active = 0 //Whether or not you are a hedgehog + active = 0 //Whether or not you are a hedgehog /obj/effect/proc_holder/changeling/strained_muscles/sting_action(mob/living/carbon/user) active = !active if(active) user << "Our muscles tense and strengthen." else - user.status_flags -= GOTTAGOFAST + user.status_flags &= ~GOTTAGOFAST user << "Our muscles relax." if(stacks >= 10) user << "We collapse in exhaustion." @@ -29,11 +29,11 @@ active = !active user << "Our muscles relax without the energy to strengthen them." user.Weaken(2) - user.status_flags -= GOTTAGOFAST + user.status_flags &= ~GOTTAGOFAST break stacks++ - //user.take_organ_damage(stacks * 0.03, 0) + //user.take_bodypart_damage(stacks * 0.03, 0) user.staminaloss += stacks * 1.3 //At first the changeling may regenerate stamina fast enough to nullify fatigue, but it will stack if(stacks == 11) //Warning message that the stacks are getting too high diff --git a/code/game/gamemodes/changeling/powers/tiny_prick.dm b/code/game/gamemodes/changeling/powers/tiny_prick.dm index dd0a77c628..37f81af7d0 100644 --- a/code/game/gamemodes/changeling/powers/tiny_prick.dm +++ b/code/game/gamemodes/changeling/powers/tiny_prick.dm @@ -74,7 +74,7 @@ selected_dna = changeling.select_dna("Select the target DNA: ", "Target DNA") if(!selected_dna) return - if(NOTRANSSTING in selected_dna.dna.species.specflags) + if(NOTRANSSTING in selected_dna.dna.species.species_traits) user << "That DNA is not compatible with changeling retrovirus!" return ..() @@ -97,7 +97,7 @@ var/mob/living/carbon/C = target if(C.status_flags & CANWEAKEN) C.do_jitter_animation(500) - C.take_organ_damage(20, 0) //The process is extremely painful + C.take_bodypart_damage(20, 0) //The process is extremely painful target.visible_message("[target] begins to violenty convulse!","You feel a tiny prick and a begin to uncontrollably convulse!") spawn(10) @@ -138,7 +138,7 @@ add_logs(user, target, "stung", object="falso armblade sting") if(!target.drop_item()) - user << "The [target.get_active_hand()] is stuck to their hand, you cannot grow a false armblade over it!" + user << "The [target.get_active_held_item()] is stuck to their hand, you cannot grow a false armblade over it!" return if(ismonkey(target)) @@ -149,7 +149,7 @@ target.visible_message("A grotesque blade forms around [target.name]\'s arm!", "Your arm twists and mutates, transforming into a horrific monstrosity!", "You hear organic matter ripping and tearing!") playsound(target, 'sound/effects/blobattack.ogg', 30, 1) - addtimer(src, "remove_fake", 600, target, blade) + addtimer(src, "remove_fake", 600, TIMER_NORMAL, target, blade) feedback_add_details("changeling_powers","AS") return 1 @@ -162,8 +162,7 @@ "" - else if(issilicon(M)) - if(!silent) - M << "You are unable to compute this truth. Your vision glows a brilliant yellow, and all at once it comes to you. Ratvar, the Clockwork Justiciar, lies in \ - exile, derelict and forgotten in an unseen realm." - if(!is_eligible_servant(M)) - if(!M.stat) - M.visible_message("[M] whirs as it resists an outside influence!") - M << "Corrupt data purged. Resetting cortex chip to factory defaults... complete." //silicons have a custom fail message - return 0 - else if(!silent) - M << "Your world glows a brilliant yellow! All at once it comes to you. Ratvar, the Clockwork Justiciar, lies in exile, derelict and forgotten in an unseen realm." +/proc/add_servant_of_ratvar(mob/living/L, silent = FALSE) + var/update_type = /datum/antagonist/clockcultist + if(silent) + update_type = /datum/antagonist/clockcultist/silent + . = L.gain_antag_datum(update_type) - if(!is_eligible_servant(M)) - if(!silent && !M.stat) - M.visible_message("[M] seems to resist an unseen force!") - M << "And yet, you somehow push it all away." - return 0 - - if(!silent) - M.visible_message("[M]'s eyes glow a blazing yellow!", \ - "Assist your new companions in their righteous efforts. Your goal is theirs, and theirs yours. You serve the Clockwork Justiciar above all else. Perform his every \ - whim without hesitation.") - ticker.mode.servants_of_ratvar += M.mind - ticker.mode.update_servant_icons_added(M.mind) - M.mind.special_role = "Servant of Ratvar" - M.languages_spoken |= RATVAR - M.languages_understood |= RATVAR - all_clockwork_mobs += M - M.update_action_buttons_icon() //because a few clockcult things are action buttons and we may be wearing/holding them for whatever reason, we need to update buttons - if(issilicon(M)) - var/mob/living/silicon/S = M - if(isrobot(S)) - var/mob/living/silicon/robot/R = S - R.UnlinkSelf() - R.emagged = 1 - R << "You have been desynced from your master AI. In addition, your onboard camera is no longer active and your safeties have been disabled." - S.laws = new/datum/ai_laws/ratvar - S.laws.associate(S) - S.update_icons() - S.show_laws() - if(istype(ticker.mode, /datum/game_mode/clockwork_cult)) - var/datum/game_mode/clockwork_cult/C = ticker.mode - C.present_tasks(M) //Memorize the objectives - return 1 - -/proc/remove_servant_of_ratvar(mob/living/M, silent = FALSE) - if(!is_servant_of_ratvar(M)) //In this way, is_servant_of_ratvar() checks the existence of ticker and minds - return 0 - if(!silent) - M.visible_message("[M] seems to have remembered their true allegiance!", \ - "A cold, cold darkness flows through your mind, extinguishing the Justiciar's light and all of your memories as his servant.") - ticker.mode.servants_of_ratvar -= M.mind - ticker.mode.update_servant_icons_removed(M.mind) - all_clockwork_mobs -= M - M.mind.memory = "" //Not sure if there's a better way to do this - M.mind.special_role = null - M.languages_spoken &= ~RATVAR - M.languages_understood &= ~RATVAR - M.update_action_buttons_icon() //because a few clockcult things are action buttons and we may be wearing/holding them, we need to update buttons - for(var/datum/action/innate/function_call/F in M.actions) //Removes any bound Ratvarian spears - qdel(F) - if(issilicon(M)) - var/mob/living/silicon/S = M - if(isrobot(S)) - var/mob/living/silicon/robot/R = S - R.emagged = initial(R.emagged) - R << "Despite your freedom from Ratvar's influence, you are still irreparably damaged and no longer possess certain functions such as AI linking." - S.make_laws() - S.update_icons() - S.show_laws() - return 1 +/proc/remove_servant_of_ratvar(mob/living/L, silent = FALSE) + var/datum/antagonist/clockcultist/clock_datum = L.has_antag_datum(/datum/antagonist/clockcultist, TRUE) + if(!clock_datum) + return FALSE + clock_datum.silent_update = silent + clock_datum.on_remove() + return TRUE /////////////// // GAME MODE // @@ -149,33 +86,37 @@ This file's folder contains: var/list/servants_of_ratvar = list() //The Enlightened servants of Ratvar var/required_escapees = 0 //How many servants need to escape, if applicable var/required_silicon_converts = 0 //How many robotic lifeforms need to be converted, if applicable - var/clockwork_objective = "gateway" //The objective that the servants must fulfill + var/clockwork_objective = CLOCKCULT_GATEWAY //The objective that the servants must fulfill var/clockwork_explanation = "Construct a Gateway to the Celestial Derelict and free Ratvar." //The description of the current objective /datum/game_mode/clockwork_cult name = "clockwork cult" config_tag = "clockwork_cult" antag_flag = ROLE_SERVANT_OF_RATVAR - required_players = 30 - required_enemies = 2 - recommended_enemies = 4 + required_players = 24 + required_enemies = 3 + recommended_enemies = 3 enemy_minimum_age = 14 protected_jobs = list("AI", "Cyborg", "Security Officer", "Warden", "Detective", "Head of Security", "Captain") //Silicons can eventually be converted restricted_jobs = list("Chaplain", "Captain") + announce_span = "brass" + announce_text = "Servants of Ratvar are trying to summon the Justiciar!\n\ + Servants: Take over the station and summon Ratvar.\n\ + Crew: Stop the servants before they can summon the Clockwork Justiciar." var/servants_to_serve = list() - -/datum/game_mode/clockwork_cult/announce() - world << "The game mode is: Clockwork Cult!" - world << "Ratvar, the Clockwork Justiciar, has formed a covenant of Enlightened aboard [station_name()]." - world << "Enlightened: Serve your master so that his influence might grow." - world << "Crew: Prevent the servants of Ratvar from taking over the station." + var/roundstart_player_count /datum/game_mode/clockwork_cult/pre_setup() if(config.protect_roles_from_antagonist) restricted_jobs += protected_jobs if(config.protect_assistant_from_antagonist) restricted_jobs += "Assistant" - var/starter_servants = max(1, round(num_players() / 10)) //Guaranteed one cultist - otherwise, about one cultist for every ten players + var/starter_servants = 3 //Guaranteed three servants + var/number_players = num_players() + roundstart_player_count = number_players + if(number_players > 30) //plus one servant for every additional 15 players + number_players -= 30 + starter_servants += round(number_players/15) while(starter_servants) var/datum/mind/servant = pick(antag_candidates) servants_to_serve += servant @@ -199,22 +140,21 @@ This file's folder contains: return 1 /datum/game_mode/clockwork_cult/proc/forge_clock_objectives() //Determine what objective that Ratvar's servants will fulfill - var/list/possible_objectives = list("escape", "gateway") + var/list/possible_objectives = list(CLOCKCULT_ESCAPE, CLOCKCULT_GATEWAY) var/silicons_possible = FALSE - for(var/mob/living/silicon/S in living_mob_list) + for(var/mob/living/silicon/ai/S in living_mob_list) silicons_possible = TRUE if(silicons_possible) - possible_objectives += "silicons" + possible_objectives += CLOCKCULT_SILICONS clockwork_objective = pick(possible_objectives) - clockwork_objective = "gateway" //TEMPORARY, to be removed before merge switch(clockwork_objective) - if("escape") - required_escapees = max(1, num_players() / 3) //33% of the player count must be cultists - clockwork_explanation = "Ensure that [required_escapees] servant(s) of Ratvar escape from [station_name()]." - if("gateway") + if(CLOCKCULT_ESCAPE) + required_escapees = round(max(1, roundstart_player_count / 3)) //33% of the player count must be cultists + clockwork_explanation = "Ensure that [required_escapees] servants of Ratvar escape from [station_name()]." + if(CLOCKCULT_GATEWAY) clockwork_explanation = "Construct a Gateway to the Celestial Derelict and free Ratvar." - if("silicons") - clockwork_explanation = "Ensure that all silicon-based lifeforms on [station_name()] are servants of Ratvar by the end of the shift." + if(CLOCKCULT_SILICONS) + clockwork_explanation = "Ensure that all active silicon-based lifeforms on [station_name()] are servants of Ratvar and Application scripture is unlocked." return 1 /datum/game_mode/clockwork_cult/proc/greet_servant(mob/M) //Description of their role @@ -222,27 +162,31 @@ This file's folder contains: return 0 var/greeting_text = "
    You are a servant of Ratvar, the Clockwork Justiciar.\n\ Rusting eternally in the Celestial Derelict, Ratvar has formed a covenant of mortals, with you as one of its members. As one of the Justiciar's servants, you are to work to the best of your \ - ability to assist in completion of His agenda. You do not know the specifics of how to do so, but luckily you have a vessel to help you learn." + ability to assist in completion of His agenda. You may not know the specifics of how to do so, but luckily you have a vessel to help you learn.
    " M << greeting_text return 1 /datum/game_mode/proc/equip_servant(mob/living/L) //Grants a clockwork slab to the mob, with one of each component if(!L || !istype(L)) - return 0 + return FALSE + var/obj/item/clockwork/slab/starter/S = new/obj/item/clockwork/slab/starter(null) //start it off in null var/slot = "At your feet" + var/list/slots = list("In your left pocket" = slot_l_store, "In your right pocket" = slot_r_store, "In your backpack" = slot_in_backpack, "On your belt" = slot_belt) if(ishuman(L)) var/mob/living/carbon/human/H = L - if(H.back && istype(H.back, /obj/item/weapon/storage/backpack)) - var/obj/item/weapon/storage/backpack/B = H.back - new/obj/item/clockwork/slab/starter(B) - slot = "In your [B.name]" + slot = H.equip_in_one_of_slots(S, slots) + if(slot == "In your backpack") + slot = "In your [H.back.name]" if(slot == "At your feet") - new/obj/item/clockwork/slab/starter(get_turf(L)) - L << "[slot] is a link to the halls of Reebe and your master. You may use it to perform many tasks, but also become oriented with the workings of Ratvar and how to best complete your \ - tasks. This clockwork slab will be instrumental in your triumph. Remember: you can speak discreetly with your fellow servants by using the Hierophant Network action button, \ - and you can find a concise tutorial by using the slab in-hand and selecting Recollection." - L << "Alternatively, check out the wiki page at https://tgstation13.org/wiki/Clockwork_Cult, which contains additional information." - return 1 + if(!S.forceMove(get_turf(L))) + qdel(S) + if(S && !qdeleted(S)) + L << "[slot] is a link to the halls of Reebe and your master. You may use it to perform many tasks, but also become oriented with the workings of Ratvar and how to best complete your \ + tasks. This clockwork slab will be instrumental in your triumph. Remember: you can speak discreetly with your fellow servants by using the Hierophant Network action button, \ + and you can find a concise tutorial by using the slab in-hand and selecting Recollection." + L << "Alternatively, check out the wiki page at https://tgstation13.org/wiki/Clockwork_Cult, which contains additional information." + return TRUE + return FALSE /datum/game_mode/clockwork_cult/proc/present_tasks(mob/living/L) //Memorizes and displays the clockwork cult's objective if(!L || !istype(L) || !L.mind) @@ -254,25 +198,35 @@ This file's folder contains: /datum/game_mode/clockwork_cult/proc/check_clockwork_victory() switch(clockwork_objective) - if("escape") + if(CLOCKCULT_ESCAPE) var/surviving_servants = 0 for(var/datum/mind/M in servants_of_ratvar) if(M.current && M.current.stat != DEAD && (M.current.onCentcom() || M.current.onSyndieBase())) surviving_servants++ - if(surviving_servants <= required_escapees) - return 1 - return 0 - if("silicons") - for(var/mob/living/silicon/robot/S in mob_list) //Only check robots and AIs - if(!is_servant_of_ratvar(S)) - return 0 - for(var/mob/living/silicon/ai/A in mob_list) - if(!is_servant_of_ratvar(A)) - return 0 - return 1 - if("gateway") - return ratvar_awakens - return 0 //This shouldn't ever be reached, but just in case it is + clockwork_explanation = "Ensure that [required_escapees] servant(s) of Ratvar escape from [station_name()].
    [surviving_servants] managed to escape!" + if(surviving_servants >= required_escapees) + ticker.news_report = CULT_ESCAPE + return TRUE + if(CLOCKCULT_SILICONS) + var/total_silicons = 0 + var/valid_silicons = 0 + for(var/mob/living/silicon/S in mob_list) //Only check robots and AIs + if(isAI(S) || iscyborg(S)) + total_silicons++ + if(is_servant_of_ratvar(S) || S.stat == DEAD) + valid_silicons++ + clockwork_explanation = "Ensure that all active silicon-based lifeforms on [station_name()] are servants of Ratvar and Application scripture is unlocked.
    \ + [valid_silicons]/[total_silicons] silicons were killed or converted!" + var/list/scripture_states = scripture_unlock_check() + if(valid_silicons >= total_silicons && scripture_states[SCRIPTURE_APPLICATION]) + ticker.news_report = CLOCK_SILICONS + return TRUE + if(CLOCKCULT_GATEWAY) + if(ratvar_awakens) + ticker.news_report = CLOCK_SUMMON + return TRUE + ticker.news_report = CULT_FAILURE + return FALSE /datum/game_mode/clockwork_cult/declare_completion() ..() @@ -283,14 +237,31 @@ This file's folder contains: if(istype(ticker.mode, /datum/game_mode/clockwork_cult)) //Possibly hacky? var/datum/game_mode/clockwork_cult/C = ticker.mode if(C.check_clockwork_victory()) - text += "Ratvar's servants have succeeded in fulfilling His goals!" - feedback_set_details("round_end_result", "win - servants summoned ratvar") + text += "Ratvar's servants have succeeded in fulfilling His goals!" + feedback_set_details("round_end_result", "win - servants completed their objective ([clockwork_objective])") else - text += "Ratvar's servants have failed!" - feedback_set_details("round_end_result", "loss - servants did not summon ratvar") - text += "
    The goal of the clockwork cult was: [clockwork_explanation]
    " + var/half_victory = FALSE + if(clockwork_objective == CLOCKCULT_GATEWAY) + var/obj/structure/destructible/clockwork/massive/celestial_gateway/G = locate() in all_clockwork_objects + if(G) + half_victory = TRUE + if(half_victory) + text += "The crew escaped before Ratvar could rise, but the gateway was successfully constructed!" + feedback_set_details("round_end_result", "halfwin - round ended before the gateway finished") + else + text += "Ratvar's servants have failed!" + feedback_set_details("round_end_result", "loss - servants failed their objective ([clockwork_objective])") + if(clockwork_gateway_activated && clockwork_objective != CLOCKCULT_GATEWAY) + ticker.news_report = CLOCK_PROSELYTIZATION + text += "
    The servants' objective was:
    [clockwork_explanation]" + text += "
    Ratvar's servants had [clockwork_caches] Tinkerer's Caches." + text += "
    Construction Value(CV) was: [clockwork_construction_value]" + var/list/scripture_states = scripture_unlock_check() + for(var/i in scripture_states) + if(i != SCRIPTURE_DRIVER) + text += "
    [i] scripture was: [scripture_states[i] ? "UN":""]LOCKED" if(servants_of_ratvar.len) - text += "Ratvar's servants were:" + text += "
    Ratvar's servants were:" for(var/datum/mind/M in servants_of_ratvar) text += printplayer(M) world << text diff --git a/code/game/gamemodes/clock_cult/clock_effect.dm b/code/game/gamemodes/clock_cult/clock_effect.dm new file mode 100644 index 0000000000..69e973b4eb --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_effect.dm @@ -0,0 +1,25 @@ +//The base clockwork effect. Can have an alternate desc and will show up in the list of clockwork objects. +/obj/effect/clockwork + name = "meme machine" + desc = "Still don't know what it is." + var/clockwork_desc = "A fabled artifact from beyond the stars. Contains concentrated meme essence." //Shown to clockwork cultists instead of the normal description + icon = 'icons/effects/clockwork_effects.dmi' + icon_state = "ratvars_flame" + anchored = 1 + density = 0 + opacity = 0 + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF + +/obj/effect/clockwork/New() + ..() + all_clockwork_objects += src + +/obj/effect/clockwork/Destroy() + all_clockwork_objects -= src + return ..() + +/obj/effect/clockwork/examine(mob/user) + if((is_servant_of_ratvar(user) || isobserver(user)) && clockwork_desc) + desc = clockwork_desc + ..() + desc = initial(desc) \ No newline at end of file diff --git a/code/game/gamemodes/clock_cult/clock_effects/clock_overlay.dm b/code/game/gamemodes/clock_cult/clock_effects/clock_overlay.dm new file mode 100644 index 0000000000..9098eb8e1d --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_effects/clock_overlay.dm @@ -0,0 +1,46 @@ +//an "overlay" used by clockwork walls and floors to appear normal to mesons. +/obj/effect/clockwork/overlay + mouse_opacity = 0 + var/atom/linked + +/obj/effect/clockwork/overlay/examine(mob/user) + if(linked) + linked.examine(user) + +/obj/effect/clockwork/overlay/ex_act() + return FALSE + +/obj/effect/clockwork/overlay/singularity_pull(S, current_size) + return + +/obj/effect/clockwork/overlay/Destroy() + if(linked) + linked = null + ..() + return QDEL_HINT_PUTINPOOL + +/obj/effect/clockwork/overlay/wall + name = "clockwork wall" + icon = 'icons/turf/walls/clockwork_wall.dmi' + icon_state = "clockwork_wall" + canSmoothWith = list(/obj/effect/clockwork/overlay/wall, /obj/structure/falsewall/brass) + smooth = SMOOTH_TRUE + layer = CLOSED_TURF_LAYER + +/obj/effect/clockwork/overlay/wall/New() + ..() + queue_smooth_neighbors(src) + addtimer(GLOBAL_PROC, "queue_smooth", 1, TIMER_NORMAL, src) + +/obj/effect/clockwork/overlay/wall/Destroy() + queue_smooth_neighbors(src) + ..() + return QDEL_HINT_QUEUE + +/obj/effect/clockwork/overlay/floor + icon = 'icons/turf/floors.dmi' + icon_state = "clockwork_floor" + layer = TURF_LAYER + +/obj/effect/clockwork/overlay/floor/bloodcult //this is used by BLOOD CULT, it shouldn't use such a path... + icon_state = "cult" \ No newline at end of file diff --git a/code/game/gamemodes/clock_cult/clock_effects/clock_sigils.dm b/code/game/gamemodes/clock_cult/clock_effects/clock_sigils.dm new file mode 100644 index 0000000000..ddc321c8ec --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_effects/clock_sigils.dm @@ -0,0 +1,392 @@ +//Sigils: Rune-like markings on the ground with various effects. +/obj/effect/clockwork/sigil + name = "sigil" + desc = "A strange set of markings drawn on the ground." + clockwork_desc = "A sigil of some purpose." + icon_state = "sigil" + layer = LOW_OBJ_LAYER + alpha = 50 + resistance_flags = NONE + var/affects_servants = FALSE + var/stat_affected = CONSCIOUS + var/sigil_name = "Sigil" + var/resist_string = "glows blinding white" //string for when a null rod blocks its effects, "glows [resist_string]" + +/obj/effect/clockwork/sigil/attackby(obj/item/I, mob/living/user, params) + if(I.force && !is_servant_of_ratvar(user)) + user.visible_message("[user] scatters [src] with [I]!", "You scatter [src] with [I]!") + qdel(src) + return 1 + return ..() + +/obj/effect/clockwork/sigil/attack_hand(mob/user) + if(iscarbon(user) && !user.stat && (!is_servant_of_ratvar(user) || (is_servant_of_ratvar(user) && user.a_intent == INTENT_HARM))) + user.visible_message("[user] stamps out [src]!", "You stomp on [src], scattering it into thousands of particles.") + qdel(src) + return 1 + ..() + +/obj/effect/clockwork/sigil/ex_act(severity) + visible_message("[src] scatters into thousands of particles.") + qdel(src) + +/obj/effect/clockwork/sigil/Crossed(atom/movable/AM) + ..() + if(isliving(AM)) + var/mob/living/L = AM + if(L.stat <= stat_affected) + if((!is_servant_of_ratvar(L) || (is_servant_of_ratvar(L) && affects_servants)) && L.mind && (!isdrone(L) || istype(L, /mob/living/simple_animal/drone/cogscarab))) + var/obj/item/I = L.null_rod_check() + if(I) + L.visible_message("[L]'s [I.name] [resist_string], protecting them from [src]'s effects!", \ + "Your [I.name] [resist_string], protecting you!") + return + sigil_effects(L) + +/obj/effect/clockwork/sigil/proc/sigil_effects(mob/living/L) + + +//Sigil of Transgression: Stuns the first non-servant to walk on it and flashes all nearby non_servants. Nar-Sian cultists are damaged and knocked down for a longer stun +/obj/effect/clockwork/sigil/transgression + name = "dull sigil" + desc = "A dull, barely-visible golden sigil. It's as though light was carved into the ground." + icon = 'icons/effects/clockwork_effects.dmi' + clockwork_desc = "A sigil that will stun the first non-servant to cross it. Nar-Sie's dogs will be knocked down." + icon_state = "sigildull" + color = "#FAE48C" + sigil_name = "Sigil of Transgression" + +/obj/effect/clockwork/sigil/transgression/sigil_effects(mob/living/L) + var/target_flashed = L.flash_act() + for(var/mob/living/M in viewers(5, src)) + if(!is_servant_of_ratvar(M) && M != L) + M.flash_act() + if(iscultist(L)) + L << "\"Watch your step, wretch.\"" + L.adjustBruteLoss(10) + L.Weaken(7) + L.visible_message("[src] appears around [L] in a burst of light!", \ + "[target_flashed ? "An unseen force":"The glowing sigil around you"] holds you in place!") + L.Stun(5) + PoolOrNew(/obj/effect/overlay/temp/ratvar/sigil/transgression, get_turf(src)) + qdel(src) + + +//Sigil of Submission: After a short time, converts any non-servant standing on it. Knocks down and silences them for five seconds afterwards. +/obj/effect/clockwork/sigil/submission + name = "ominous sigil" + desc = "A luminous golden sigil. Something about it really bothers you." + clockwork_desc = "A sigil that will enslave the first person to cross it, provided they remain on it for seven seconds." + icon_state = "sigilsubmission" + color = "#FAE48C" + alpha = 125 + stat_affected = UNCONSCIOUS + resist_string = "glows faintly yellow" + var/convert_time = 70 + var/glow_light = 2 //soft light + var/glow_falloff = 1 + var/delete_on_finish = TRUE + sigil_name = "Sigil of Submission" + var/glow_type + +/obj/effect/clockwork/sigil/submission/New() + ..() + SetLuminosity(glow_light,glow_falloff) + +/obj/effect/clockwork/sigil/submission/proc/post_channel(mob/living/L) + +/obj/effect/clockwork/sigil/submission/sigil_effects(mob/living/L) + L.visible_message("[src] begins to glow a piercing magenta!", "You feel something start to invade your mind...") + var/oldcolor = color + animate(src, color = "#AF0AAF", time = convert_time) + var/obj/effect/overlay/temp/ratvar/sigil/glow + if(glow_type) + glow = PoolOrNew(glow_type, get_turf(src)) + animate(glow, alpha = 255, time = convert_time) + var/I = 0 + while(I < convert_time && get_turf(L) == get_turf(src)) + I++ + sleep(1) + if(get_turf(L) != get_turf(src)) + if(glow) + qdel(glow) + animate(src, color = oldcolor, time = 20) + addtimer(src, "update_atom_colour", 20) + visible_message("[src] slowly stops glowing!") + return + post_channel(L) + if(is_eligible_servant(L)) + L << "\"You belong to me now.\"" + add_servant_of_ratvar(L) + L.Weaken(3) //Completely defenseless for about five seconds - mainly to give them time to read over the information they've just been presented with + L.Stun(3) + if(iscarbon(L)) + var/mob/living/carbon/C = L + C.silent += 5 + var/message = "[sigil_name] in [get_area(src)] [is_servant_of_ratvar(L) ? "successfully converted" : "failed to convert"]" + for(var/M in mob_list) + if(isobserver(M)) + var/link = FOLLOW_LINK(M, L) + M << "[link] [message] [L.real_name]!" + else if(is_servant_of_ratvar(M)) + if(M == L) + M << "[message] you!" + else + M << "[message] [L.real_name]!" + if(delete_on_finish) + qdel(src) + else + animate(src, color = oldcolor, time = 20) + addtimer(src, "update_atom_colour", 20) + visible_message("[src] slowly stops glowing!") + + +//Sigil of Accession: After a short time, converts any non-servant standing on it though implants. Knocks down and silences them for five seconds afterwards. +/obj/effect/clockwork/sigil/submission/accession + name = "terrifying sigil" + desc = "A luminous brassy sigil. Something about it makes you want to flee." + clockwork_desc = "A sigil that will enslave any person who crosses it, provided they remain on it for seven seconds. \n\ + It can convert a mindshielded target once before disppearing, but can convert any number of non-implanted targets." + icon_state = "sigiltransgression" + color = "#A97F1B" + alpha = 200 + glow_light = 4 //bright light + glow_falloff = 3 + delete_on_finish = FALSE + sigil_name = "Sigil of Accession" + glow_type = /obj/effect/overlay/temp/ratvar/sigil/accession + resist_string = "glows bright orange" + +/obj/effect/clockwork/sigil/submission/accession/post_channel(mob/living/L) + if(L.isloyal()) + var/mob/living/carbon/C = L + delete_on_finish = TRUE + C.visible_message("[C] visibly trembles!", \ + "[text2ratvar("You will be mine and his. This puny trinket will not stop me.")]") + for(var/obj/item/weapon/implant/mindshield/M in C.implants) + qdel(M) + + +//Sigil of Transmission: Stores power for clockwork machinery, serving as a battery. +/obj/effect/clockwork/sigil/transmission + name = "suspicious sigil" + desc = "A glowing orange sigil. The air around it feels staticky." + clockwork_desc = "A sigil that will serve as a battery for clockwork structures. Use Volt Void while standing on it to charge it." + icon_state = "sigiltransmission" + color = "#EC8A2D" + alpha = 50 + resist_string = "glows faintly" + sigil_name = "Sigil of Transmission" + affects_servants = TRUE + var/power_charge = REPLICANT_ALLOY_POWER //starts with REPLICANT_ALLOY_POWER by default + +/obj/effect/clockwork/sigil/transmission/ex_act(severity) + if(severity == 3) + modify_charge(-500) + visible_message("[src] flares a brilliant orange!") + else + ..() + +/obj/effect/clockwork/sigil/transmission/examine(mob/user) + ..() + if(is_servant_of_ratvar(user) || isobserver(user)) + user << "It is storing [ratvar_awakens ? "INFINITY":"[power_charge]"]W of power." + if(iscyborg(user)) + user << "You can recharge from the [sigil_name] by crossing it." + +/obj/effect/clockwork/sigil/transmission/sigil_effects(mob/living/L) + if(is_servant_of_ratvar(L)) + if(iscyborg(L)) + charge_cyborg(L) + else if(power_charge) + L << "You feel a slight, static shock." + +/obj/effect/clockwork/sigil/transmission/proc/charge_cyborg(mob/living/silicon/robot/cyborg) + if(!cyborg_checks(cyborg)) + return + cyborg << "You start to charge from the [sigil_name]..." + if(!do_after(cyborg, 50, target = src)) + return + if(!cyborg_checks(cyborg)) + return + var/giving_power = min(round((cyborg.cell.maxcharge - cyborg.cell.charge) * 0.02) * 50, power_charge) //give the borg either all our power or their missing power floored to 50 + if(modify_charge(giving_power)) + cyborg.visible_message("[cyborg] glows a brilliant orange!") + var/previous_color = cyborg.color + cyborg.color = list("#EC8A2D", "#EC8A2D", "#EC8A2D", rgb(0,0,0)) + var/datum/status_effect/cyborg_power_regen/CPR = cyborg.apply_status_effect(STATUS_EFFECT_POWERREGEN) + CPR.power_to_give = giving_power * 0.1 //ten ticks, restoring 10% each + animate(cyborg, color = previous_color, time = 100) + addtimer(cyborg, "update_atom_colour", 100) + +/obj/effect/clockwork/sigil/transmission/proc/cyborg_checks(mob/living/silicon/robot/cyborg) + if(!cyborg.cell) + cyborg << "You have no cell!" + return FALSE + if(!power_charge) + cyborg << "The [sigil_name] has no stored power!" + return FALSE + if(cyborg.cell.charge > cyborg.cell.maxcharge - MIN_CLOCKCULT_POWER) + cyborg << "You are already at maximum charge!" + return FALSE + if(cyborg.has_status_effect(STATUS_EFFECT_POWERREGEN)) + cyborg << "You are already regenerating power!" + return FALSE + return TRUE + +/obj/effect/clockwork/sigil/transmission/New() + ..() + update_glow() + +/obj/effect/clockwork/sigil/transmission/proc/modify_charge(amount) + if(ratvar_awakens) + update_glow() + return TRUE + if(power_charge - amount < 0) + return FALSE + power_charge -= amount + update_glow() + return TRUE + +/obj/effect/clockwork/sigil/transmission/proc/update_glow() + if(ratvar_awakens) + alpha = 255 + else + alpha = min(initial(alpha) + power_charge*0.02, 255) + if(!power_charge) + SetLuminosity(0) + else + SetLuminosity(round(alpha*0.03, 1), round(alpha*0.02, 1)) + + +//Vitality Matrix: Drains health from non-servants to heal or even revive servants. +/obj/effect/clockwork/sigil/vitality + name = "comforting sigil" + desc = "A faint blue sigil. Looking at it makes you feel protected." + clockwork_desc = "A sigil that will drain non-Servants that remain on it. Servants that remain on it will be healed if it has any vitality drained." + icon_state = "sigilvitality" + color = "#123456" + alpha = 75 + affects_servants = TRUE + stat_affected = DEAD + resist_string = "glows shimmering yellow" + sigil_name = "Vitality Matrix" + var/vitality = 0 + var/base_revive_cost = 20 + var/sigil_active = FALSE + var/animation_number = 3 //each cycle increments this by 1, at 4 it produces an animation and resets + +/obj/effect/clockwork/sigil/vitality/examine(mob/user) + ..() + if(is_servant_of_ratvar(user) || isobserver(user)) + user << "It is storing [ratvar_awakens ? "INFINITE":"[vitality]"] units of vitality." + user << "It requires at least [base_revive_cost] units of vitality to revive dead Servants, in addition to any damage the Servant has." + +/obj/effect/clockwork/sigil/vitality/sigil_effects(mob/living/L) + if((is_servant_of_ratvar(L) && L.suiciding) || sigil_active) + return + visible_message("[src] begins to glow bright blue!") + animate(src, alpha = 255, time = 10) + addtimer(src, "update_alpha", 10) + sleep(10) +//as long as they're still on the sigil and are either not a servant or they're a servant AND it has remaining vitality + while(L && (!is_servant_of_ratvar(L) || (is_servant_of_ratvar(L) && vitality)) && get_turf(L) == get_turf(src)) + sigil_active = TRUE + if(animation_number >= 4) + PoolOrNew(/obj/effect/overlay/temp/ratvar/sigil/vitality, get_turf(src)) + animation_number = 0 + animation_number++ + if(!is_servant_of_ratvar(L)) + var/vitality_drained = 0 + if(L.stat == DEAD) + vitality_drained = L.maxHealth + var/obj/effect/overlay/temp/ratvar/sigil/vitality/V = PoolOrNew(/obj/effect/overlay/temp/ratvar/sigil/vitality, get_turf(src)) + animate(V, alpha = 0, transform = matrix()*2, time = 8) + playsound(L, 'sound/magic/WandODeath.ogg', 50, 1) + L.visible_message("[L] collapses in on [L.p_them()]self as [src] flares bright blue!") + L << "\"[text2ratvar("Your life will not be wasted.")]\"" + for(var/obj/item/W in L) + if(!L.unEquip(W)) + qdel(W) + L.dust() + else + vitality_drained = L.adjustToxLoss(1.5) + if(vitality_drained) + vitality += vitality_drained + else + break + else + var/clone_to_heal = L.getCloneLoss() + var/tox_to_heal = L.getToxLoss() + var/burn_to_heal = L.getFireLoss() + var/brute_to_heal = L.getBruteLoss() + var/oxy_to_heal = L.getOxyLoss() + var/total_damage = clone_to_heal + tox_to_heal + burn_to_heal + brute_to_heal + oxy_to_heal + if(L.stat == DEAD) + var/revival_cost = base_revive_cost + total_damage - oxy_to_heal //ignores oxygen damage + if(ratvar_awakens) + revival_cost = 0 + var/mob/dead/observer/ghost = L.get_ghost(TRUE) + if(vitality >= revival_cost && (ghost || (L.mind && L.mind.active))) + if(ghost) + ghost.reenter_corpse() + L.revive(1, 1) + playsound(L, 'sound/magic/Staff_Healing.ogg', 50, 1) + L.visible_message("[L] suddenly gets back up, [L.p_their()] mouth dripping blue ichor!", \ + "\"[text2ratvar("You will be okay, child.")]\"") + vitality -= revival_cost + break + if(!total_damage) + break + var/vitality_for_cycle = min(vitality, 3) + var/vitality_used = 0 + if(ratvar_awakens) + vitality_for_cycle = 3 + + if(clone_to_heal && vitality_for_cycle) + var/healing = min(vitality_for_cycle, clone_to_heal) + vitality_for_cycle -= healing + L.adjustCloneLoss(-healing) + vitality_used += healing + + if(tox_to_heal && vitality_for_cycle) + var/healing = min(vitality_for_cycle, tox_to_heal) + vitality_for_cycle -= healing + L.adjustToxLoss(-healing) + vitality_used += healing + + if(burn_to_heal && vitality_for_cycle) + var/healing = min(vitality_for_cycle, burn_to_heal) + vitality_for_cycle -= healing + L.adjustFireLoss(-healing) + vitality_used += healing + + if(brute_to_heal && vitality_for_cycle) + var/healing = min(vitality_for_cycle, brute_to_heal) + vitality_for_cycle -= healing + L.adjustBruteLoss(-healing) + vitality_used += healing + + if(oxy_to_heal && vitality_for_cycle) + var/healing = min(vitality_for_cycle, oxy_to_heal) + vitality_for_cycle -= healing + L.adjustOxyLoss(-healing) + vitality_used += healing + + if(!ratvar_awakens) + vitality -= vitality_used + sleep(2) + + if(sigil_active) + animation_number = initial(animation_number) + sigil_active = FALSE + visible_message("[src] slowly stops glowing!") + if(sigil_active || alpha == 255) + animate(src, alpha = initial(alpha), time = 10) + addtimer(src, "update_alpha", 10) + +/obj/effect/clockwork/sigil/vitality/proc/update_alpha() + if(sigil_active) + alpha = 255 + else + alpha = initial(alpha) diff --git a/code/game/gamemodes/clock_cult/clock_effects/general_markers.dm b/code/game/gamemodes/clock_cult/clock_effects/general_markers.dm new file mode 100644 index 0000000000..d9a85bd033 --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_effects/general_markers.dm @@ -0,0 +1,57 @@ +//massive markers for Revenant and Judgement scripture. +/obj/effect/clockwork/general_marker + name = "general marker" + desc = "Some big guy. For you." + clockwork_desc = "One of Ratvar's generals." + alpha = 200 + layer = MASSIVE_OBJ_LAYER + +/obj/effect/clockwork/general_marker/New() + ..() + animate(src, alpha = 0, time = 10) + QDEL_IN(src, 10) + +/obj/effect/clockwork/general_marker/inathneq + name = "Inath-neq, the Resonant Cogwheel" + desc = "A humanoid form blazing with blue fire. It radiates an aura of kindness and caring." + clockwork_desc = "One of Ratvar's four generals. Before her current form, Inath-neq was a powerful warrior priestess commanding the Resonant Cogs, a sect of Ratvarian warriors renowned for \ + their prowess. After a lost battle with Nar-Sian cultists, Inath-neq was struck down and stated in her dying breath, \ + \"The Resonant Cogs shall not fall silent this day, but will come together to form a wheel that shall never stop turning.\" Ratvar, touched by this, granted Inath-neq an eternal body and \ + merged her soul with those of the Cogs slain with her on the battlefield." + icon = 'icons/effects/187x381.dmi' + icon_state = "inath-neq" + pixel_x = -77 + pixel_y = -174 + +/obj/effect/clockwork/general_marker/nezbere + name = "Nezbere, the Brass Eidolon" + desc = "A towering colossus clad in nigh-impenetrable brass armor. Its gaze is stern yet benevolent, even upon you." + clockwork_desc = "One of Ratvar's four generals. Nezbere is responsible for the design, testing, and creation of everything in Ratvar's domain, and his loyalty to Ratvar knows no bounds. \ + It is said that Ratvar once asked him to destroy the plans for a weapon Nezbere had made that could have harmed him and Nezbere responded by not only destroying the plans, \ + but by taking his own life so that the device could never be replicated. Nezbere's zealotry is unmatched." + icon = 'icons/effects/340x428.dmi' + icon_state = "nezbere" + pixel_x = -154 + pixel_y = -198 + +/obj/effect/clockwork/general_marker/sevtug + name = "Sevtug, the Formless Pariah" + desc = "A sinister cloud of purple energy. Looking at it gives you a headache." + clockwork_desc = "One of Ratvar's four generals. Sevtug taught him how to manipulate minds and is one of his oldest allies. Sevtug serves Ratvar loyally out of a hope that one day, he will \ + be able to use a moment of weakness in the Justicar to usurp him, but such a day will never come. And so, he serves with dedication, if not necessarily any sort of decorum, never aware he is \ + the one being made a fool of." + icon = 'icons/effects/211x247.dmi' + icon_state = "sevtug" + pixel_x = -89 + pixel_y = -107 + +/obj/effect/clockwork/general_marker/nzcrentr + name = "Nzcrentr, the Eternal Thunderbolt" + desc = "A terrifying spiked construct crackling with limitless energy." + clockwork_desc = "One of Ratvar's four generals. Before becoming one of Ratvar's generals, Nzcrentr sook out any and all sentient life to slaughter it for sport. \ + Nzcrentr was coerced by Ratvar into entering a shell constructed by Nezbere, ostensibly made to grant Nzcrentr more power. In reality, the shell was made to trap and control it. \ + Nzcrentr now serves loyally, though even one of Nezbere's finest creations was not enough to totally eliminate its will." + icon = 'icons/effects/254x361.dmi' + icon_state = "nzcrentr" + pixel_x = -111 + pixel_y = -164 diff --git a/code/game/gamemodes/clock_cult/clock_effects/spatial_gateway.dm b/code/game/gamemodes/clock_cult/clock_effects/spatial_gateway.dm new file mode 100644 index 0000000000..137590d1e2 --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_effects/spatial_gateway.dm @@ -0,0 +1,212 @@ +//Spatial gateway: A usually one-way rift to another location. +/obj/effect/clockwork/spatial_gateway + name = "spatial gateway" + desc = "A gently thrumming tear in reality." + clockwork_desc = "A gateway in reality." + icon_state = "spatial_gateway" + density = 1 + luminosity = 2 + var/sender = TRUE //If this gateway is made for sending, not receiving + var/both_ways = FALSE + var/lifetime = 25 //How many deciseconds this portal will last + var/uses = 1 //How many objects or mobs can go through the portal + var/obj/effect/clockwork/spatial_gateway/linked_gateway //The gateway linked to this one + var/timerid + +/obj/effect/clockwork/spatial_gateway/New() + ..() + addtimer(src, "check_setup", 1) + +/obj/effect/clockwork/spatial_gateway/Destroy() + deltimer(timerid) + return ..() + +/obj/effect/clockwork/spatial_gateway/proc/check_setup() + if(!linked_gateway) + qdel(src) + return + if(both_ways) + clockwork_desc = "A gateway in reality. It can both send and receive objects." + else + clockwork_desc = "A gateway in reality. It can only [sender ? "send" : "receive"] objects." + timerid = QDEL_IN(src, lifetime) + +//set up a gateway with another gateway +/obj/effect/clockwork/spatial_gateway/proc/setup_gateway(obj/effect/clockwork/spatial_gateway/gatewayB, set_duration, set_uses, two_way) + if(!gatewayB || !set_duration || !uses) + return FALSE + linked_gateway = gatewayB + gatewayB.linked_gateway = src + if(two_way) + both_ways = TRUE + gatewayB.both_ways = TRUE + else + sender = TRUE + gatewayB.sender = FALSE + gatewayB.density = FALSE + lifetime = set_duration + gatewayB.lifetime = set_duration + uses = set_uses + gatewayB.uses = set_uses + return TRUE + +/obj/effect/clockwork/spatial_gateway/examine(mob/user) + ..() + if(is_servant_of_ratvar(user) || isobserver(user)) + user << "It has [uses] uses remaining." + +/obj/effect/clockwork/spatial_gateway/attack_ghost(mob/user) + if(linked_gateway) + user.forceMove(get_turf(linked_gateway)) + ..() + +/obj/effect/clockwork/spatial_gateway/attack_hand(mob/living/user) + if(!uses) + return FALSE + if(user.pulling && user.a_intent == INTENT_GRAB && isliving(user.pulling)) + var/mob/living/L = user.pulling + if(L.buckled || L.anchored || L.has_buckled_mobs()) + return FALSE + user.visible_message("[user] shoves [L] into [src]!", "You shove [L] into [src]!") + user.stop_pulling() + pass_through_gateway(L) + return TRUE + if(!user.canUseTopic(src)) + return FALSE + user.visible_message("[user] climbs through [src]!", "You brace yourself and step through [src]...") + pass_through_gateway(user) + return TRUE + +/obj/effect/clockwork/spatial_gateway/attackby(obj/item/I, mob/living/user, params) + if(istype(I, /obj/item/weapon/nullrod)) + user.visible_message("[user] dispels [src] with [I]!", "You close [src] with [I]!") + qdel(linked_gateway) + qdel(src) + return TRUE + if(istype(I, /obj/item/clockwork/slab)) + user << "\"I don't think you want to drop your slab into that\".\n\"If you really want to, try throwing it.\"" + return TRUE + if(user.drop_item() && uses) + user.visible_message("[user] drops [I] into [src]!", "You drop [I] into [src]!") + pass_through_gateway(I, TRUE) + return TRUE + return ..() + +/obj/effect/clockwork/spatial_gateway/ex_act(severity) + if(severity == 1 && uses) + uses = 0 + visible_message("[src] is disrupted!") + animate(src, alpha = 0, transform = matrix()*2, time = 10) + deltimer(timerid) + timerid = QDEL_IN(src, 10) + linked_gateway.uses = 0 + linked_gateway.visible_message("[linked_gateway] is disrupted!") + animate(linked_gateway, alpha = 0, transform = matrix()*2, time = 10) + deltimer(linked_gateway.timerid) + linked_gateway.timerid = QDEL_IN(linked_gateway, 10) + return TRUE + return FALSE + +/obj/effect/clockwork/spatial_gateway/Bumped(atom/A) + ..() + if(isliving(A) || istype(A, /obj/item)) + pass_through_gateway(A) + +/obj/effect/clockwork/spatial_gateway/proc/pass_through_gateway(atom/movable/A, no_cost) + if(!linked_gateway) + qdel(src) + return FALSE + if(!sender) + visible_message("[A] bounces off of [src]!") + return FALSE + if(!uses) + return FALSE + if(isliving(A)) + var/mob/living/user = A + user << "You pass through [src] and appear elsewhere!" + linked_gateway.visible_message("A shape appears in [linked_gateway] before emerging!") + playsound(src, 'sound/effects/EMPulse.ogg', 50, 1) + playsound(linked_gateway, 'sound/effects/EMPulse.ogg', 50, 1) + transform = matrix() * 1.5 + animate(src, transform = matrix() / 1.5, time = 10) + linked_gateway.transform = matrix() * 1.5 + animate(linked_gateway, transform = matrix() / 1.5, time = 10) + A.forceMove(get_turf(linked_gateway)) + if(!no_cost) + uses = max(0, uses - 1) + linked_gateway.uses = max(0, linked_gateway.uses - 1) + addtimer(src, "check_uses", 10) + return TRUE + +/obj/effect/clockwork/spatial_gateway/proc/check_uses() + if(!uses) + qdel(src) + qdel(linked_gateway) + +//This proc creates and sets up a gateway from invoker input. +/atom/movable/proc/procure_gateway(mob/living/invoker, time_duration, gateway_uses, two_way) + var/list/possible_targets = list() + var/list/teleportnames = list() + var/list/duplicatenamecount = list() + + for(var/obj/structure/destructible/clockwork/powered/clockwork_obelisk/O in all_clockwork_objects) + if(!O.Adjacent(invoker) && O != src && (O.z <= ZLEVEL_SPACEMAX) && O.anchored) //don't list obelisks that we're next to + var/area/A = get_area(O) + var/locname = initial(A.name) + var/resultkey = "[locname] [O.name]" + if(resultkey in teleportnames) //why the fuck did you put two obelisks in the same area + duplicatenamecount[resultkey]++ + resultkey = "[resultkey] ([duplicatenamecount[resultkey]])" + else + teleportnames.Add(resultkey) + duplicatenamecount[resultkey] = 1 + possible_targets[resultkey] = O + + for(var/mob/living/L in living_mob_list) + if(!L.stat && is_servant_of_ratvar(L) && !L.Adjacent(invoker) && (L.z <= ZLEVEL_SPACEMAX)) //People right next to the invoker can't be portaled to, for obvious reasons + var/resultkey = "[L.name] ([L.real_name])" + if(resultkey in teleportnames) + duplicatenamecount[resultkey]++ + resultkey = "[resultkey] ([duplicatenamecount[resultkey]])" + else + teleportnames.Add(resultkey) + duplicatenamecount[resultkey] = 1 + possible_targets[resultkey] = L + + if(!possible_targets.len) + invoker << "There are no other eligible targets for a Spatial Gateway!" + return FALSE + var/input_target_key = input(invoker, "Choose a target to form a rift to.", "Spatial Gateway") as null|anything in possible_targets + var/atom/movable/target = possible_targets[input_target_key] + if(!src || !target || !invoker || !invoker.canUseTopic(src, !issilicon(invoker)) || !is_servant_of_ratvar(invoker) || (istype(src, /obj/item) && invoker.get_active_held_item() != src) || !invoker.can_speak_vocal()) + return FALSE //if any of the involved things no longer exist, the invoker is stunned, too far away to use the object, or does not serve ratvar, or if the object is an item and not in the mob's active hand, fail + if(isliving(target)) + var/mob/living/L = target + if(L.stat != CONSCIOUS) + invoker << "That Servant is no longer conscious!" + return procure_gateway(invoker, time_duration, gateway_uses, two_way) //try again? + if(!is_servant_of_ratvar(L)) + invoker << "That target is no longer a Servant!" + return procure_gateway(invoker, time_duration, gateway_uses, two_way) + var/istargetobelisk = istype(target, /obj/structure/destructible/clockwork/powered/clockwork_obelisk) + var/issrcobelisk = istype(src, /obj/structure/destructible/clockwork/powered/clockwork_obelisk) + if(issrcobelisk && !anchored) + invoker << "[src] is no longer secured!" + return FALSE + if(istargetobelisk) + if(!target.anchored) + invoker << "That [target.name] is no longer secured!" + return procure_gateway(invoker, time_duration, gateway_uses, two_way) + var/obj/structure/destructible/clockwork/powered/clockwork_obelisk/CO = target + var/efficiency = CO.get_efficiency_mod() + gateway_uses = round(gateway_uses * (2 * efficiency), 1) + time_duration = round(time_duration * (2 * efficiency), 1) + invoker.visible_message("The air in front of [invoker] ripples before suddenly tearing open!", \ + "With a word, you rip open a [two_way ? "two-way":"one-way"] rift to [input_target_key]. It will last for [time_duration / 10] seconds and has [gateway_uses] use[gateway_uses > 1 ? "s" : ""].") + var/obj/effect/clockwork/spatial_gateway/S1 = new(issrcobelisk ? get_turf(src) : get_step(get_turf(invoker), invoker.dir)) + var/obj/effect/clockwork/spatial_gateway/S2 = new(istargetobelisk ? get_turf(target) : get_step(get_turf(target), target.dir)) + + //Set up the portals now that they've spawned + S1.setup_gateway(S2, time_duration, gateway_uses, two_way) + S2.visible_message("The air in front of [target] ripples before suddenly tearing open!") + return TRUE diff --git a/code/game/gamemodes/clock_cult/clock_helpers/clock_powerdrain.dm b/code/game/gamemodes/clock_cult/clock_helpers/clock_powerdrain.dm new file mode 100644 index 0000000000..bbd6a503fd --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_helpers/clock_powerdrain.dm @@ -0,0 +1,55 @@ +//horrifying power drain proc made for clockcult's power drain in lieu of six istypes or six for(x in view) loops +/atom/movable/proc/power_drain(clockcult_user) + return 0 + +/obj/machinery/power/apc/power_drain(clockcult_user) + if(cell && cell.charge) + playsound(src, "sparks", 50, 1) + flick("apc-spark", src) + . = min(cell.charge, 250) + cell.use(.) //Better than a power sink! + if(!cell.charge && !shorted) + shorted = 1 + visible_message("The [name]'s screen blurs with static.") + update() + update_icon() + +/obj/machinery/power/smes/power_drain(clockcult_user) + if(charge) + . = min(charge, 250) + charge -= . * 50 + if(!charge && !panel_open) + panel_open = TRUE + icon_state = "[initial(icon_state)]-o" + var/datum/effect_system/spark_spread/spks = new(get_turf(src)) + spks.set_up(10, 0, get_turf(src)) + spks.start() + visible_message("[src]'s panel flies open with a flurry of spark") + update_icon() + +/obj/item/weapon/stock_parts/cell/power_drain(clockcult_user) + if(charge) + . = min(charge, 250) + charge = use(.) + updateicon() + +/obj/machinery/light/power_drain(clockcult_user) + if(on) + playsound(src, 'sound/effects/light_flicker.ogg', 50, 1) + . = 250 + if(prob(50)) + burn_out() + +/mob/living/silicon/robot/power_drain(clockcult_user) + if((!clockcult_user || !is_servant_of_ratvar(src)) && cell && cell.charge) + . = min(cell.charge, 250) + cell.use(.) + src << "ERROR: Power loss detected!" + spark_system.start() + +/obj/mecha/power_drain(clockcult_user) + if((!clockcult_user || !occupant || occupant && !is_servant_of_ratvar(occupant)) && cell && cell.charge) + . = min(cell.charge, 250) + cell.use(.) + occupant_message("Power loss detected!") + spark_system.start() diff --git a/code/game/gamemodes/clock_cult/clock_helpers/component_helpers.dm b/code/game/gamemodes/clock_cult/clock_helpers/component_helpers.dm new file mode 100644 index 0000000000..5a9a486efe --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_helpers/component_helpers.dm @@ -0,0 +1,146 @@ +//generates a component in the global component cache, either random based on lowest or a specific component +/proc/generate_cache_component(specific_component_id, atom/A) + if(!specific_component_id) + specific_component_id = get_weighted_component_id() + clockwork_component_cache[specific_component_id]++ + if(A) + PoolOrNew(get_component_animation_type(specific_component_id), get_turf(A)) + update_slab_info() + return specific_component_id + +//returns a chosen component id based on the lowest amount of that component in the global cache, the global cache plus the slab if there are caches, or the slab if there are no caches. +/proc/get_weighted_component_id(obj/item/clockwork/slab/storage_slab) + . = list() + if(storage_slab) + if(clockwork_caches) + for(var/i in clockwork_component_cache) + .[i] = max(MAX_COMPONENTS_BEFORE_RAND - LOWER_PROB_PER_COMPONENT*(clockwork_component_cache[i] + storage_slab.stored_components[i]), 1) + else + for(var/i in clockwork_component_cache) + .[i] = max(MAX_COMPONENTS_BEFORE_RAND - LOWER_PROB_PER_COMPONENT*storage_slab.stored_components[i], 1) + else + for(var/i in clockwork_component_cache) + .[i] = max(MAX_COMPONENTS_BEFORE_RAND - LOWER_PROB_PER_COMPONENT*clockwork_component_cache[i], 1) + . = pickweight(.) + +//returns a component name from a component id +/proc/get_component_name(id) + switch(id) + if(BELLIGERENT_EYE) + return "Belligerent Eye" + if(VANGUARD_COGWHEEL) + return "Vanguard Cogwheel" + if(GEIS_CAPACITOR) + return "Geis Capacitor" + if(REPLICANT_ALLOY) + return "Replicant Alloy" + if(HIEROPHANT_ANSIBLE) + return "Hierophant Ansible" + else + return null + +//returns a component acronym from a component id +/proc/get_component_acronym(id) + switch(id) + if(BELLIGERENT_EYE) + return "BE" + if(VANGUARD_COGWHEEL) + return "VC" + if(GEIS_CAPACITOR) + return "GC" + if(REPLICANT_ALLOY) + return "RA" + if(HIEROPHANT_ANSIBLE) + return "HA" + else + return null + +//returns a component id from a component name +/proc/get_component_id(name) + switch(name) + if("Belligerent Eye") + return BELLIGERENT_EYE + if("Vanguard Cogwheel") + return VANGUARD_COGWHEEL + if("Geis Capacitor") + return GEIS_CAPACITOR + if("Replicant Alloy") + return REPLICANT_ALLOY + if("Hierophant Ansible") + return HIEROPHANT_ANSIBLE + else + return null + +//returns a component spanclass from a component id +/proc/get_component_span(id) + switch(id) + if(BELLIGERENT_EYE) + return "neovgre" + if(VANGUARD_COGWHEEL) + return "inathneq" + if(GEIS_CAPACITOR) + return "sevtug" + if(REPLICANT_ALLOY) + return "nezbere" + if(HIEROPHANT_ANSIBLE) + return "nzcrentr" + else + return "brass" + +//returns a component color from a component id, but with brighter colors for the darkest +/proc/get_component_color_bright(id) + switch(id) + if(BELLIGERENT_EYE) + return "#880020" + if(REPLICANT_ALLOY) + return "#5A6068" + else + return get_component_color(id) + +//returns a component color from a component id +/proc/get_component_color(id) + switch(id) + if(BELLIGERENT_EYE) + return "#6E001A" + if(VANGUARD_COGWHEEL) + return "#1E8CE1" + if(GEIS_CAPACITOR) + return "#AF0AAF" + if(REPLICANT_ALLOY) + return "#42474D" + if(HIEROPHANT_ANSIBLE) + return "#DAAA18" + else + return "#BE8700" + +//returns a type for a floating component animation from a component id +/proc/get_component_animation_type(id) + switch(id) + if(BELLIGERENT_EYE) + return /obj/effect/overlay/temp/ratvar/component + if(VANGUARD_COGWHEEL) + return /obj/effect/overlay/temp/ratvar/component/cogwheel + if(GEIS_CAPACITOR) + return /obj/effect/overlay/temp/ratvar/component/capacitor + if(REPLICANT_ALLOY) + return /obj/effect/overlay/temp/ratvar/component/alloy + if(HIEROPHANT_ANSIBLE) + return /obj/effect/overlay/temp/ratvar/component/ansible + else + return null + +//returns a type for a component from a component id +/proc/get_component_type(id) + switch(id) + if(BELLIGERENT_EYE) + return /obj/item/clockwork/component/belligerent_eye + if(VANGUARD_COGWHEEL) + return /obj/item/clockwork/component/vanguard_cogwheel + if(GEIS_CAPACITOR) + return /obj/item/clockwork/component/geis_capacitor + if(REPLICANT_ALLOY) + return /obj/item/clockwork/component/replicant_alloy + if(HIEROPHANT_ANSIBLE) + return /obj/item/clockwork/component/hierophant_ansible + else + return null \ No newline at end of file diff --git a/code/game/gamemodes/clock_cult/clock_helpers/hierophant_network.dm b/code/game/gamemodes/clock_cult/clock_helpers/hierophant_network.dm new file mode 100644 index 0000000000..4e4697fadc --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_helpers/hierophant_network.dm @@ -0,0 +1,47 @@ +//Sends a string to all servants and optionally ghosts, who will get a follow link to whatever is provided as the target. +/proc/hierophant_message(message, servantsonly, atom/target) + if(!message) + return FALSE + for(var/M in mob_list) + if(!servantsonly && isobserver(M)) + if(target) + var/link = FOLLOW_LINK(M, target) + M << "[link] [message]" + else + M << message + else if(is_servant_of_ratvar(M)) + M << message + return TRUE + +//Sends a titled message from a mob to all servants of ratvar and ghosts. +/proc/titled_hierophant_message(mob/user, message, name_span = "heavy_brass", message_span = "brass", user_title = "Servant") + if(!user || !message) + return FALSE + var/parsed_message = "[user_title ? "[user_title] ":""][findtextEx(user.name, user.real_name) ? user.name : "[user.real_name] (as [user.name])"]: \ + \"[message]\"" + hierophant_message(parsed_message, FALSE, user) + return TRUE + +//Hierophant Network action, allows a servant with it to communicate to other servants. +/datum/action/innate/hierophant + name = "Hierophant Network" + desc = "Allows you to communicate with other Servants." + button_icon_state = "hierophant" + background_icon_state = "bg_clock" + check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUNNED|AB_CHECK_CONSCIOUS + buttontooltipstyle = "clockcult" + var/title = "Servant" + var/span_for_name = "heavy_brass" + var/span_for_message = "brass" + +/datum/action/innate/hierophant/IsAvailable() + if(!is_servant_of_ratvar(owner)) + return FALSE + return ..() + +/datum/action/innate/hierophant/Activate() + var/input = stripped_input(usr, "Please enter a message to send to other servants.", "Hierophant Network", "") + if(!input || !IsAvailable()) + return + + titled_hierophant_message(owner, input, span_for_name, span_for_message, title) diff --git a/code/game/gamemodes/clock_cult/clock_helpers/proselytizer_helpers.dm b/code/game/gamemodes/clock_cult/clock_helpers/proselytizer_helpers.dm new file mode 100644 index 0000000000..585198789f --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_helpers/proselytizer_helpers.dm @@ -0,0 +1,320 @@ +//For the clockwork proselytizer, this proc exists to make it easy to customize what the proselytizer does when hitting something. + +//if a valid target, returns an associated list in this format; +//list("operation_time" = 15, "new_obj_type" = /obj/structure/window/reinforced/clockwork, "alloy_cost" = 5, "spawn_dir" = dir, "dir_in_new" = TRUE) +//otherwise, return literally any non-list thing but preferably FALSE +//returning TRUE won't produce the "cannot be proselytized" message and will still prevent proselytizing + +/atom/proc/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + return FALSE + +//Turf conversion +/turf/closed/wall/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) //four sheets of metal + return list("operation_time" = 50, "new_obj_type" = /turf/closed/wall/clockwork, "alloy_cost" = REPLICANT_WALL_TOTAL - (REPLICANT_METAL * 4), "spawn_dir" = SOUTH) + +/turf/closed/wall/mineral/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) //two sheets of metal + return list("operation_time" = 50, "new_obj_type" = /turf/closed/wall/clockwork, "alloy_cost" = REPLICANT_WALL_TOTAL - (REPLICANT_METAL * 2), "spawn_dir" = SOUTH) + +/turf/closed/wall/mineral/iron/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) //two sheets of metal, five rods + return list("operation_time" = 50, "new_obj_type" = /turf/closed/wall/clockwork, "alloy_cost" = REPLICANT_WALL_TOTAL - (REPLICANT_METAL * 2) - (REPLICANT_ROD * 5), "spawn_dir" = SOUTH) + +/turf/closed/wall/mineral/cult/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) //no metal + return list("operation_time" = 80, "new_obj_type" = /turf/closed/wall/clockwork, "alloy_cost" = REPLICANT_WALL_TOTAL, "spawn_dir" = SOUTH) + +/turf/closed/wall/shuttle/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) //two sheets of metal + return list("operation_time" = 50, "new_obj_type" = /turf/closed/wall/clockwork, "alloy_cost" = REPLICANT_WALL_TOTAL - (REPLICANT_METAL * 2), "spawn_dir" = SOUTH) + +/turf/closed/wall/r_wall/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + return FALSE + +/turf/closed/wall/clockwork/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + return list("operation_time" = 50, "new_obj_type" = /turf/open/floor/clockwork, "alloy_cost" = -REPLICANT_WALL_MINUS_FLOOR, "spawn_dir" = SOUTH) + +/turf/open/floor/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + if(floor_tile == /obj/item/stack/tile/plasteel) + PoolOrNew(floor_tile, src) + make_plating() + playsound(src, 'sound/items/Crowbar.ogg', 10, 1) //clink + return list("operation_time" = 30, "new_obj_type" = /turf/open/floor/clockwork, "alloy_cost" = REPLICANT_FLOOR, "spawn_dir" = SOUTH) + +/turf/open/floor/plating/asteroid/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + return FALSE + +/turf/open/floor/plating/ashplanet/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + return FALSE + +/turf/open/floor/plating/lava/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + return FALSE + +/turf/open/floor/clockwork/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + if(is_blocked_turf(src)) + user << "Something is in the way, preventing you from proselytizing [src] into a clockwork wall." + return TRUE + return list("operation_time" = 100, "new_obj_type" = /turf/closed/wall/clockwork, "alloy_cost" = REPLICANT_WALL_MINUS_FLOOR, "spawn_dir" = SOUTH) + +//False wall conversion +/obj/structure/falsewall/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + var/cost = REPLICANT_WALL_MINUS_FLOOR + if(ispath(mineral, /obj/item/stack/sheet/metal)) + cost -= (REPLICANT_METAL * (2 + mineral_amount)) //four sheets of metal, plus an assumption that the girder is also two + else + cost -= (REPLICANT_METAL * 2) //anything that doesn't use metal just has the girder + return list("operation_time" = 50, "new_obj_type" = /obj/structure/falsewall/brass, "alloy_cost" = cost, "spawn_dir" = SOUTH) + +/obj/structure/falsewall/iron/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) //two sheets of metal, two rods; special assumption + return list("operation_time" = 50, "new_obj_type" = /obj/structure/falsewall/brass, "alloy_cost" = REPLICANT_WALL_MINUS_FLOOR - (REPLICANT_METAL * 2) - (REPLICANT_ROD * 2), "spawn_dir" = SOUTH) + +/obj/structure/falsewall/reinforced/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + return FALSE + +/obj/structure/falsewall/brass/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + return FALSE + +//Metal conversion +/obj/item/stack/tile/plasteel/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + if(source) + return FALSE + var/amount_temp = get_amount() + if(proselytizer.metal_to_alloy) + var/no_delete = FALSE + if(amount_temp < 2) + user << "You need at least 2 floor tiles to convert into alloy." + return TRUE + if(IsOdd(amount_temp)) + amount_temp-- + no_delete = TRUE + use(amount_temp) + amount_temp *= 0.5 //halve the alloy output; each tile is 0.5 alloy so this is 2 tiles to 1 alloy + return list("operation_time" = 0, "new_obj_type" = /obj/effect/overlay/temp/ratvar/beam/itemconsume, "alloy_cost" = -amount_temp, "spawn_dir" = SOUTH, "no_target_deletion" = no_delete) + if(amount_temp >= 20) + var/sheets_to_make = round(amount_temp * 0.05) //and 20 to 1 brass + var/used = sheets_to_make * 20 + user.visible_message("[user]'s [proselytizer.name] rips into [src], converting it to brass!", \ + "You convert [get_amount() - used > 0 ? "part of ":""][src] into brass...") + playsound(src, 'sound/machines/click.ogg', 50, 1) + playsound(src, 'sound/items/Deconstruct.ogg', 50, 1) + new /obj/item/stack/tile/brass(get_turf(src), sheets_to_make) + use(used) + else + user << "You need at least 20 floor tiles to convert into brass." + return TRUE + +/obj/item/stack/rods/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + if(source) + return FALSE + if(proselytizer.metal_to_alloy) + return list("operation_time" = 0, "new_obj_type" = /obj/effect/overlay/temp/ratvar/beam/itemconsume, "alloy_cost" = -(amount*REPLICANT_ROD), "spawn_dir" = SOUTH) + if(get_amount() >= 10) + var/sheets_to_make = round(get_amount() * 0.1) + var/used = sheets_to_make * 10 + user.visible_message("[user]'s [proselytizer.name] rips into [src], converting it to brass!", \ + "You convert [get_amount() - used > 0 ? "part of ":""][src] into brass...") + playsound(src, 'sound/machines/click.ogg', 50, 1) + playsound(src, 'sound/items/Deconstruct.ogg', 50, 1) + new /obj/item/stack/tile/brass(get_turf(src), sheets_to_make) + use(used) + else + user << "You need at least 10 rods to convert into brass." + return TRUE + +/obj/item/stack/sheet/metal/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + if(source) + return FALSE + if(proselytizer.metal_to_alloy) + return list("operation_time" = 0, "new_obj_type" = /obj/effect/overlay/temp/ratvar/beam/itemconsume, "alloy_cost" = -(amount*REPLICANT_METAL), "spawn_dir" = SOUTH) + if(get_amount() >= 5) + var/sheets_to_make = round(get_amount() * 0.2) + var/used = sheets_to_make * 5 + user.visible_message("[user]'s [proselytizer.name] rips into [src], converting it to brass!", \ + "You convert [get_amount() - used > 0 ? "part of ":""][src] into brass...") + playsound(src, 'sound/machines/click.ogg', 50, 1) + playsound(src, 'sound/items/Deconstruct.ogg', 50, 1) + new /obj/item/stack/tile/brass(get_turf(src), sheets_to_make) + use(used) + else + user << "You need at least 5 sheets of metal to convert into brass." + return TRUE + +/obj/item/stack/sheet/plasteel/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + if(source) + return FALSE + if(proselytizer.metal_to_alloy) + return list("operation_time" = 0, "new_obj_type" = /obj/effect/overlay/temp/ratvar/beam/itemconsume, "alloy_cost" = -(amount*REPLICANT_PLASTEEL), "spawn_dir" = SOUTH) + if(get_amount() >= 2) + var/sheets_to_make = round(get_amount() * 0.5) + var/used = sheets_to_make * 2 + user.visible_message("[user]'s [proselytizer.name] rips into [src], converting it to brass!", \ + "You convert [get_amount() - used > 0 ? "part of ":""][src] into brass...") + playsound(src, 'sound/machines/click.ogg', 50, 1) + playsound(src, 'sound/items/Deconstruct.ogg', 50, 1) + new /obj/item/stack/tile/brass(get_turf(src), sheets_to_make) + use(used) + else + user << "You need at least 2 sheets of plasteel to convert into brass." + return TRUE + +//Brass directly to alloy; scarab only +/obj/item/stack/tile/brass/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + if(source) + return FALSE + if(!proselytizer.metal_to_alloy) + return FALSE + var/prosel_cost = -amount*REPLICANT_FLOOR + return list("operation_time" = amount, "new_obj_type" = /obj/effect/overlay/temp/ratvar/beam/itemconsume, "alloy_cost" = prosel_cost, "spawn_dir" = SOUTH) + +//Airlock conversion +/obj/machinery/door/airlock/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + var/doortype = /obj/machinery/door/airlock/clockwork + if(glass) + doortype = /obj/machinery/door/airlock/clockwork/brass + return list("operation_time" = 60, "new_obj_type" = doortype, "alloy_cost" = REPLICANT_WALL_TOTAL, "spawn_dir" = dir) + +/obj/machinery/door/airlock/clockwork/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + return FALSE + +//Window conversion +/obj/structure/window/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + var/windowtype = /obj/structure/window/reinforced/clockwork + var/new_dir = TRUE + var/prosel_time = 15 + var/prosel_cost = REPLICANT_FLOOR + if(fulltile) + windowtype = /obj/structure/window/reinforced/clockwork/fulltile + new_dir = FALSE + prosel_time = 30 + prosel_cost = REPLICANT_STANDARD + if(reinf) + prosel_cost -= REPLICANT_ROD + if(reinf) + prosel_cost -= REPLICANT_ROD + for(var/obj/structure/grille/G in get_turf(src)) + addtimer(proselytizer, "proselytize", 0, TIMER_NORMAL, G, user) + return list("operation_time" = prosel_time, "new_obj_type" = windowtype, "alloy_cost" = prosel_cost, "spawn_dir" = dir, "dir_in_new" = new_dir) + +/obj/structure/window/reinforced/clockwork/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + return FALSE + +//Windoor conversion +/obj/machinery/door/window/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + return list("operation_time" = 30, "new_obj_type" = /obj/machinery/door/window/clockwork, "alloy_cost" = REPLICANT_STANDARD, "spawn_dir" = dir, "dir_in_new" = TRUE) + +/obj/machinery/door/window/clockwork/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + return FALSE + +//Grille conversion +/obj/structure/grille/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + var/grilletype = /obj/structure/grille/ratvar + var/prosel_time = 15 + if(broken) + grilletype = /obj/structure/grille/ratvar/broken + prosel_time = 5 + return list("operation_time" = prosel_time, "new_obj_type" = grilletype, "alloy_cost" = 0, "spawn_dir" = dir) + +/obj/structure/grille/ratvar/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + return FALSE + +//Girder conversion +/obj/structure/girder/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + var/prosel_cost = REPLICANT_GEAR - (REPLICANT_METAL * 2) + if(state == GIRDER_REINF_STRUTS || state == GIRDER_REINF) + prosel_cost -= REPLICANT_PLASTEEL + return list("operation_time" = 20, "new_obj_type" = /obj/structure/destructible/clockwork/wall_gear, "alloy_cost" = prosel_cost, "spawn_dir" = SOUTH) + +//Hitting a clockwork structure will try to repair it. +/obj/structure/destructible/clockwork/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + . = TRUE + if(!can_be_repaired) + user << "[src] cannot be repaired with a proselytizer!" + return + if(obj_integrity >= max_integrity) + user << "[src] is at maximum integrity!" + return + var/amount_to_heal = max_integrity - obj_integrity + var/healing_for_cycle = min(amount_to_heal, repair_amount) + var/alloy_required = healing_for_cycle + if(!proselytizer.can_use_alloy(RATVAR_ALLOY_CHECK)) + healing_for_cycle = min(healing_for_cycle, proselytizer.get_power_alloy()) + if(!healing_for_cycle || (!proselytizer.can_use_alloy(RATVAR_ALLOY_CHECK) && !proselytizer.can_use_alloy(healing_for_cycle))) + user << "You need at least [alloy_required] liquified alloy to start repairing [src], and at least [amount_to_heal] to fully repair it!" + return + user.visible_message("[user]'s [proselytizer.name] starts covering [src] in black liquid metal...", \ + "You start repairing [src]...") + //hugeass while because we need to re-check after the do_after + proselytizer.repairing = src + while(proselytizer && user && src && obj_integrity < max_integrity) + amount_to_heal = max_integrity - obj_integrity + if(amount_to_heal <= 0) + break + healing_for_cycle = min(amount_to_heal, repair_amount) + if(!proselytizer.can_use_alloy(RATVAR_ALLOY_CHECK)) + healing_for_cycle = min(healing_for_cycle, proselytizer.get_power_alloy()) + if(!healing_for_cycle || (!proselytizer.can_use_alloy(RATVAR_ALLOY_CHECK) && !proselytizer.can_use_alloy(healing_for_cycle)) || \ + !do_after(user, healing_for_cycle * proselytizer.speed_multiplier, target = src) || \ + !proselytizer || (!proselytizer.can_use_alloy(RATVAR_ALLOY_CHECK) && !proselytizer.can_use_alloy(healing_for_cycle))) + break + amount_to_heal = max_integrity - obj_integrity + if(amount_to_heal <= 0) + break + healing_for_cycle = min(amount_to_heal, repair_amount) + if(!proselytizer.can_use_alloy(RATVAR_ALLOY_CHECK)) + healing_for_cycle = min(healing_for_cycle, proselytizer.get_power_alloy()) + if(!healing_for_cycle || (!proselytizer.can_use_alloy(RATVAR_ALLOY_CHECK) && !proselytizer.can_use_alloy(healing_for_cycle))) + break + obj_integrity = Clamp(obj_integrity + healing_for_cycle, 0, max_integrity) + proselytizer.modify_stored_alloy(-healing_for_cycle) + playsound(src, 'sound/machines/click.ogg', 50, 1) + + if(proselytizer) + proselytizer.repairing = null + if(user) + user.visible_message("[user]'s [proselytizer.name] stops covering [src] with black liquid metal.", \ + "You finish repairing [src]. It is now at [obj_integrity]/[max_integrity] integrity.") + return + +//Hitting a tinkerer's cache will try to fill the proselytizer with alloy after trying to repair. +/obj/structure/destructible/clockwork/cache/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + . = ..() + if(proselytizer.can_use_alloy(RATVAR_ALLOY_CHECK) || proselytizer.stored_alloy + REPLICANT_ALLOY_UNIT > proselytizer.max_alloy) + user << "[proselytizer]'s containers of liquified alloy are full!" + return + if(!anchored) + user << "You need to anchor [src] to fill your [proselytizer.name] from it!" + return + if(!clockwork_component_cache["replicant_alloy"]) + user << "There is no Replicant Alloy in the global component cache!" + return + proselytizer.refueling = TRUE + user.visible_message("[user] places the end of [proselytizer] in the hole in [src]...", \ + "You start filling [proselytizer] with liquified alloy...") + //hugeass check because we need to re-check after the do_after + while(anchored && proselytizer && !proselytizer.can_use_alloy(RATVAR_ALLOY_CHECK) && proselytizer.stored_alloy + REPLICANT_ALLOY_UNIT <= proselytizer.max_alloy && clockwork_component_cache["replicant_alloy"] \ + && do_after(user, 10, target = src) \ + && anchored && proselytizer && !proselytizer.can_use_alloy(RATVAR_ALLOY_CHECK) && proselytizer.stored_alloy + REPLICANT_ALLOY_UNIT <= proselytizer.max_alloy && clockwork_component_cache["replicant_alloy"]) + proselytizer.modify_stored_alloy(REPLICANT_ALLOY_UNIT) + clockwork_component_cache["replicant_alloy"]-- + playsound(src, 'sound/items/Deconstruct.ogg', 50, 1) + if(proselytizer) + proselytizer.refueling = FALSE + if(user) + user.visible_message("[user] removes [proselytizer] from the hole in [src], apparently satisfied.", \ + "You finish filling [proselytizer] with liquified alloy. It now contains [proselytizer.stored_alloy]/[proselytizer.max_alloy] units of liquified alloy.") + return + +//Convert shards and replicant alloy directly to liquid alloy +/obj/item/clockwork/alloy_shards/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + return list("operation_time" = 0, "new_obj_type" = /obj/effect/overlay/temp/ratvar/beam/itemconsume, "alloy_cost" = -REPLICANT_STANDARD, "spawn_dir" = SOUTH) + +/obj/item/clockwork/alloy_shards/medium/gear_bit/large/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + return list("operation_time" = 0, "new_obj_type" = /obj/effect/overlay/temp/ratvar/beam/itemconsume, "alloy_cost" = -(REPLICANT_ALLOY_UNIT*0.08), "spawn_dir" = SOUTH) + +/obj/item/clockwork/alloy_shards/large/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + return list("operation_time" = 0, "new_obj_type" = /obj/effect/overlay/temp/ratvar/beam/itemconsume, "alloy_cost" = -(REPLICANT_ALLOY_UNIT*0.06), "spawn_dir" = SOUTH) + +/obj/item/clockwork/alloy_shards/medium/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + return list("operation_time" = 0, "new_obj_type" = /obj/effect/overlay/temp/ratvar/beam/itemconsume, "alloy_cost" = -(REPLICANT_ALLOY_UNIT*0.04), "spawn_dir" = SOUTH) + +/obj/item/clockwork/alloy_shards/small/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + return list("operation_time" = 0, "new_obj_type" = /obj/effect/overlay/temp/ratvar/beam/itemconsume, "alloy_cost" = -(REPLICANT_ALLOY_UNIT*0.02), "spawn_dir" = SOUTH) + +/obj/item/clockwork/component/replicant_alloy/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + return list("operation_time" = 0, "new_obj_type" = /obj/effect/overlay/temp/ratvar/beam/itemconsume, "alloy_cost" = -REPLICANT_ALLOY_UNIT, "spawn_dir" = SOUTH) diff --git a/code/game/gamemodes/clock_cult/clock_helpers/ratvarian_language.dm b/code/game/gamemodes/clock_cult/clock_helpers/ratvarian_language.dm new file mode 100644 index 0000000000..8bdd607b79 --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_helpers/ratvarian_language.dm @@ -0,0 +1,107 @@ +/* +The Ratvarian Language + In the lore of the Servants of Ratvar, the Ratvarian tongue is a timeless language and full of power. It sounds like gibberish, much like Nar-Sie's language, but is in fact derived from +aforementioned language, and may induce miracles when spoken in the correct way with an amplifying tool (similar to runes used by the Nar-Sian cult). + + While the canon states that the language of Ratvar and his servants is incomprehensible to the unenlightened as it is a derivative of the most ancient known language, in reality it is +actually very simple. To translate a plain English sentence to Ratvar's tongue, simply move all of the letters thirteen places ahead, starting from "a" if the end of the alphabet is reached. +This cipher is known as "rot13" for "rotate 13 places" and there are many sites online that allow instant translation between English and rot13 - one of the benefits is that moving the translated +sentence thirteen places ahead changes it right back to plain English. + + There are, however, a few parts of the Ratvarian tongue that aren't typical and are implemented for fluff reasons. Some words may have graves, or hyphens (prefix and postfix), making the plain +English translation apparent but disjoined (for instance, "Orubyq zl-cbjre!" translates directly to "Behold my-power!") although this can be ignored without impacting overall quality. When +translating from Ratvar's tongue to plain English, simply remove the disjointments and use the finished sentence. This would make "Orubyq zl-cbjre!" into "Behold my power!" after removing the +abnormal spacing, hyphens, and grave accents. + +List of nuances: +- Any time the WORD "of" occurs, it is linked to the previous word by a hyphen. (i.e. "V nz-bs Ratvar." directly translates to "I am-of Ratvar.") +- Any time "th", followed by any two letters occurs, you add a grave (`) between those two letters, i.e; "Thi`s" +- In the same vein, any time "ti", followed by one letter occurs, you add a grave (`) between "i" and the letter, i.e; "Ti`me" +- Whereever "te" or "et" appear and there is another letter next to the e(i.e; "m"etal, greate"r"), add a hyphen between "e" and the letter, i.e; "M-etal", "Greate-r" +- Where "gua" appears, add a hyphen between "gu" and "a", i.e "Gu-ard" +- Where the WORD "and" appears it is linked to all surrounding words by hyphens, i.e; "Sword-and-shield" +- Where the WORD "to" appears, it is linked to the following word by a hyphen, i.e; "to-use" +- Where the WORD "my" appears, it is linked to the following word by a hyphen, i.e; "my-light" +- Although "Ratvar" translates to "Engine" in English, the word "Ratvar" is used regardless of language as it is a proper noun. + - The same rule applies to Ratvar's four generals: Nezbere (Armorer), Sevtug (Fright), Nzcrentr (Amperage), and Inath-neq (Vangu-Ard), although these words can be used in proper context if one is + not referring to the four generals and simply using the words themselves. +*/ + +//Regexes used to alter english to ratvarian style +#define RATVAR_OF_MATCH regex("(\\w)\\s(\[oO]\[fF])","g") +#define RATVAR_OF_REPLACEMENT "$1-$2" +#define RATVAR_GUA_MATCH regex("(\[gG]\[uU])(\[aA])","g") +#define RATVAR_GUA_REPLACEMENT "$1-$2" +#define RATVAR_TH_MATCH regex("(\[tT]\[hH]\\w)(\\w)","g") +#define RATVAR_TH_REPLACEMENT "$1`$2" +#define RATVAR_TI_MATCH regex("(\[tT]\[iI])(\\w)","g") +#define RATVAR_TI_REPLACEMENT "$1`$2" +#define RATVAR_ET_MATCH regex("(\\w)(\[eE]\[tT])","g") +#define RATVAR_ET_REPLACEMENT "$1-$2" +#define RATVAR_TE_MATCH regex("(\[tT]\[eE])(\\w)","g") +#define RATVAR_TE_REPLACEMENT "$1-$2" +#define RATVAR_PRE_AND_MATCH regex("(\\w)\\s(\[aA]\[nN]\[dD])","g") +#define RATVAR_PRE_AND_REPLACEMENT "$1-$2" +#define RATVAR_POST_AND_MATCH regex("(\[aA]\[nN]\[dD])\\s(\\w)","g") +#define RATVAR_POST_AND_REPLACEMENT "$1-$2" +#define RATVAR_TO_MATCH regex("(\\s)(\[tT]\[oO])\\s(\\w)","g") +#define RATVAR_TO_REPLACEMENT "$1$2-$3" +#define RATVAR_MY_MATCH regex("(\\s)(\[mM]\[yY])\\s(\\w)","g") +#define RATVAR_MY_REPLACEMENT "$1$2-$3" + +//Regexes used to remove ratvarian styling from english +#define REVERSE_RATVAR_HYPHEN_PRE_AND_MATCH regex("(\\w)-(\[aA]\[nN]\[dD])","g") //specifically structured to support -emphasis-, including with -and- +#define REVERSE_RATVAR_HYPHEN_PRE_AND_REPLACEMENT "$1 $2" +#define REVERSE_RATVAR_HYPHEN_POST_AND_MATCH regex("(\[aA]\[nN]\[dD])-(\\w)","g") +#define REVERSE_RATVAR_HYPHEN_POST_AND_REPLACEMENT "$1 $2" +#define REVERSE_RATVAR_HYPHEN_TO_MY_MATCH regex("(\[tTmM]\[oOyY])-","g") +#define REVERSE_RATVAR_HYPHEN_TO_MY_REPLACEMENT "$1 " +#define REVERSE_RATVAR_HYPHEN_TE_MATCH regex("(\[tT]\[eE])-","g") +#define REVERSE_RATVAR_HYPHEN_TE_REPLACEMENT "$1" +#define REVERSE_RATVAR_HYPHEN_ET_MATCH regex("-(\[eE]\[tT])","g") +#define REVERSE_RATVAR_HYPHEN_ET_REPLACEMENT "$1" +#define REVERSE_RATVAR_HYPHEN_GUA_MATCH regex("(\[gG]\[uU])-(\[aA])","g") +#define REVERSE_RATVAR_HYPHEN_GUA_REPLACEMENT "$1$2" +#define REVERSE_RATVAR_HYPHEN_OF_MATCH regex("-(\[oO]\[fF])","g") +#define REVERSE_RATVAR_HYPHEN_OF_REPLACEMENT " $1" + + +/proc/text2ratvar(text) //Takes english and applies ratvarian styling rules (and rot13) to it + var/ratvarian = replacetext(text, RATVAR_OF_MATCH, RATVAR_OF_REPLACEMENT) + ratvarian = replacetext(ratvarian, RATVAR_GUA_MATCH, RATVAR_GUA_REPLACEMENT) + ratvarian = replacetext(ratvarian, RATVAR_TH_MATCH, RATVAR_TH_REPLACEMENT) + ratvarian = replacetext(ratvarian, RATVAR_TI_MATCH, RATVAR_TI_REPLACEMENT) + ratvarian = replacetext(ratvarian, RATVAR_ET_MATCH, RATVAR_ET_REPLACEMENT) + ratvarian = replacetext(ratvarian, RATVAR_TE_MATCH, RATVAR_TE_REPLACEMENT) + ratvarian = replacetext(ratvarian, RATVAR_PRE_AND_MATCH, RATVAR_PRE_AND_REPLACEMENT) + ratvarian = replacetext(ratvarian, RATVAR_POST_AND_MATCH, RATVAR_POST_AND_REPLACEMENT) + ratvarian = replacetext(ratvarian, RATVAR_TO_MATCH, RATVAR_TO_REPLACEMENT) + ratvarian = replacetext(ratvarian, RATVAR_MY_MATCH, RATVAR_MY_REPLACEMENT) + return rot13(ratvarian) + +/proc/ratvar2text(ratvarian) //Reverts ravarian styling and rot13 in text. + var/text = replacetext(rot13(ratvarian), "`", "") + text = replacetext(text, REVERSE_RATVAR_HYPHEN_GUA_MATCH, REVERSE_RATVAR_HYPHEN_GUA_REPLACEMENT) + text = replacetext(text, REVERSE_RATVAR_HYPHEN_PRE_AND_MATCH, REVERSE_RATVAR_HYPHEN_PRE_AND_REPLACEMENT) + text = replacetext(text, REVERSE_RATVAR_HYPHEN_POST_AND_MATCH, REVERSE_RATVAR_HYPHEN_POST_AND_REPLACEMENT) + text = replacetext(text, REVERSE_RATVAR_HYPHEN_TO_MY_MATCH, REVERSE_RATVAR_HYPHEN_TO_MY_REPLACEMENT) + text = replacetext(text, REVERSE_RATVAR_HYPHEN_TE_MATCH, REVERSE_RATVAR_HYPHEN_TE_REPLACEMENT) + text = replacetext(text, REVERSE_RATVAR_HYPHEN_ET_MATCH, REVERSE_RATVAR_HYPHEN_ET_REPLACEMENT) + text = replacetext(text, REVERSE_RATVAR_HYPHEN_OF_MATCH, REVERSE_RATVAR_HYPHEN_OF_REPLACEMENT) + return text + +//Causes the mob or AM in question to speak a message; it assumes that the message is already translated to ratvar speech using text2ratvar() +/proc/clockwork_say(atom/movable/AM, message, whisper=FALSE) + var/list/spans = list(SPAN_ROBOT) + + var/old_languages_spoken = AM.languages_spoken + AM.languages_spoken = HUMAN //anyone who can understand HUMAN will hear weird shitty ratvar speak, otherwise it'll get starred out + if(isliving(AM)) + var/mob/living/L = AM + if(!whisper) + L.say(message, "clock", spans) + else + L.whisper(message) + else + AM.say(message) + AM.languages_spoken = old_languages_spoken diff --git a/code/game/gamemodes/clock_cult/clock_helpers/scripture_checks.dm b/code/game/gamemodes/clock_cult/clock_helpers/scripture_checks.dm new file mode 100644 index 0000000000..9cd7b44aff --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_helpers/scripture_checks.dm @@ -0,0 +1,48 @@ +//returns a list of scriptures and if they're unlocked or not +/proc/scripture_unlock_check() + var/servants = 0 + var/unconverted_ai_exists = FALSE + for(var/mob/living/M in living_mob_list) + if(is_servant_of_ratvar(M) && (ishuman(M) || issilicon(M))) + servants++ + else if(isAI(M)) + unconverted_ai_exists = TRUE + . = list(SCRIPTURE_DRIVER = TRUE, SCRIPTURE_SCRIPT = FALSE, SCRIPTURE_APPLICATION = FALSE, SCRIPTURE_REVENANT = FALSE, SCRIPTURE_JUDGEMENT = FALSE) + //Drivers: always unlocked + .[SCRIPTURE_SCRIPT] = (servants >= SCRIPT_SERVANT_REQ && clockwork_caches >= SCRIPT_CACHE_REQ) + //Script: SCRIPT_SERVANT_REQ or more non-brain servants and SCRIPT_CACHE_REQ or more clockwork caches + .[SCRIPTURE_APPLICATION] = (servants >= APPLICATION_SERVANT_REQ && clockwork_caches >= APPLICATION_CACHE_REQ && clockwork_construction_value >= APPLICATION_CV_REQ) + //Application: APPLICATION_SERVANT_REQ or more non-brain servants, APPLICATION_CACHE_REQ or more clockwork caches, and at least APPLICATION_CV_REQ CV + .[SCRIPTURE_REVENANT] = (servants >= REVENANT_SERVANT_REQ && clockwork_caches >= REVENANT_CACHE_REQ && clockwork_construction_value >= REVENANT_CV_REQ) + //Revenant: REVENANT_SERVANT_REQ or more non-brain servants, REVENANT_CACHE_REQ or more clockwork caches, and at least REVENANT_CV_REQ CV + .[SCRIPTURE_JUDGEMENT] = (servants >= JUDGEMENT_SERVANT_REQ && clockwork_caches >= JUDGEMENT_CACHE_REQ && clockwork_construction_value >= JUDGEMENT_CV_REQ && !unconverted_ai_exists) + //Judgement: JUDGEMENT_SERVANT_REQ or more non-brain servants, JUDGEMENT_CACHE_REQ or more clockwork caches, at least JUDGEMENT_CV_REQ CV, and there are no living, non-servant ais + +//reports to servants when scripture is locked or unlocked +/proc/scripture_unlock_alert(list/previous_states) + . = scripture_unlock_check() + for(var/i in .) + if(.[i] != previous_states[i]) + hierophant_message("Hierophant Network: [i] Scripture has been [.[i] ? "un":""]locked.") + update_slab_info() + +/proc/update_slab_info(obj/item/clockwork/slab/set_slab) + generate_all_scripture() + for(var/s in all_scripture) + var/datum/clockwork_scripture/S = s + S.creation_update() + if(!set_slab) + for(var/obj/item/clockwork/slab/S in all_clockwork_objects) + SStgui.update_uis(S) + else + SStgui.update_uis(set_slab) + +/proc/generate_all_scripture() + if(!all_scripture.len) + for(var/V in sortList(subtypesof(/datum/clockwork_scripture), /proc/cmp_clockscripture_priority)) + var/datum/clockwork_scripture/S = new V + all_scripture += S + +//changes construction value +/proc/change_construction_value(amount) + clockwork_construction_value += amount diff --git a/code/game/gamemodes/clock_cult/clock_helpers/slab_abilities.dm b/code/game/gamemodes/clock_cult/clock_helpers/slab_abilities.dm new file mode 100644 index 0000000000..cb771b3b50 --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_helpers/slab_abilities.dm @@ -0,0 +1,321 @@ +//The base for slab-bound/based ranged abilities +/obj/effect/proc_holder/slab + var/obj/item/clockwork/slab/slab + var/successful = FALSE + var/finished = FALSE + var/in_progress = FALSE + +/obj/effect/proc_holder/slab/remove_ranged_ability(msg) + ..() + finished = TRUE + QDEL_IN(src, 2) + +/obj/effect/proc_holder/slab/InterceptClickOn(mob/living/caller, params, atom/target) + if(..() || in_progress) + return TRUE + if(ranged_ability_user.incapacitated() || !slab || !(slab in ranged_ability_user.held_items) || target == slab) + remove_ranged_ability() + return TRUE + +//For the Geis scripture; binds a target to convert. +/obj/effect/proc_holder/slab/geis + ranged_mousepointer = 'icons/effects/geis_target.dmi' + +/obj/effect/proc_holder/slab/geis/InterceptClickOn(mob/living/caller, params, atom/target) + if(..()) + return TRUE + + var/turf/T = ranged_ability_user.loc + if(!isturf(T)) + return TRUE + + var/target_is_binding = istype(target, /obj/structure/destructible/clockwork/geis_binding) + + if((target_is_binding || isliving(target)) && ranged_ability_user.Adjacent(target)) + if(target_is_binding) + var/obj/structure/destructible/clockwork/geis_binding/GB = target + GB.repair_and_interrupt() + for(var/m in GB.buckled_mobs) + if(m) + add_logs(ranged_ability_user, m, "rebound with Geis") + successful = TRUE + else + var/mob/living/L = target + if(L.null_rod_check()) + ranged_ability_user << "\"A void weapon? Really, you expect me to be able to do anything?\"" + return TRUE + if(is_servant_of_ratvar(L)) + if(L != ranged_ability_user) + ranged_ability_user << "\"[L.p_they(TRUE)] already serve[L.p_s()] Ratvar. [text2ratvar("Perhaps [ranged_ability_user.p_theyre()] into bondage?")]\"" + return TRUE + if(L.stat == DEAD) + ranged_ability_user << "\"[L.p_theyre(TRUE)] dead, idiot.\"" + return TRUE + + if(istype(L.buckled, /obj/structure/destructible/clockwork/geis_binding)) //if they're already bound, just stun them + var/obj/structure/destructible/clockwork/geis_binding/GB = L.buckled + GB.repair_and_interrupt() + add_logs(ranged_ability_user, L, "rebound with Geis") + successful = TRUE + else + in_progress = TRUE + clockwork_say(ranged_ability_user, text2ratvar("Be bound, heathen!")) + remove_mousepointer(ranged_ability_user.client) + add_logs(ranged_ability_user, L, "bound with Geis") + if(slab.speed_multiplier >= 0.5) //excuse my debug... + ranged_ability_user.notransform = TRUE + addtimer(src, "reset_user_notransform", 5, TIMER_NORMAL, ranged_ability_user) //stop us moving for a little bit so we don't break the scripture following this + slab.busy = null + var/datum/clockwork_scripture/geis/conversion = new + conversion.slab = slab + conversion.invoker = ranged_ability_user + conversion.target = target + successful = conversion.run_scripture() + + remove_ranged_ability() + + return TRUE + +/obj/effect/proc_holder/slab/geis/proc/reset_user_notransform(mob/living/user) + if(user) + user.notransform = FALSE + +/obj/structure/destructible/clockwork/geis_binding + name = "glowing ring" + desc = "A flickering, glowing purple ring around a target." + clockwork_desc = "A binding ring around a target, preventing them from taking action while they're being converted." + max_integrity = 25 + obj_integrity = 25 + density = 0 + icon = 'icons/effects/clockwork_effects.dmi' + icon_state = "geisbinding_full" + break_message = null + break_sound = 'sound/magic/Repulse.ogg' + debris = list() + can_buckle = TRUE + buckle_lying = 0 + buckle_prevents_pull = TRUE + var/resisting = FALSE + var/mob_layer = MOB_LAYER + +/obj/structure/destructible/clockwork/geis_binding/examine(mob/user) + icon_state = "geisbinding_full" + ..() + icon_state = "geisbinding" + +/obj/structure/destructible/clockwork/geis_binding/attack_hand(mob/living/user) + return + +/obj/structure/destructible/clockwork/geis_binding/emp_act(severity) + PoolOrNew(/obj/effect/overlay/temp/emp, loc) + qdel(src) + +/obj/structure/destructible/clockwork/geis_binding/post_buckle_mob(mob/living/M) + if(M.buckled == src) + desc = "A flickering, glowing purple ring around [M]." + clockwork_desc = "A binding ring around [M], preventing [M.p_them()] from taking action while [M.p_theyre()] being converted." + icon_state = "geisbinding" + mob_layer = M.layer + layer = M.layer - 0.01 + var/image/GB = new('icons/effects/clockwork_effects.dmi', src, "geisbinding_top", M.layer + 0.01) + add_overlay(GB) + for(var/obj/item/I in M.held_items) + M.unEquip(I) + for(var/i in M.get_empty_held_indexes()) + var/obj/item/geis_binding/B = new(M) + M.put_in_hands(B, i) + M.regenerate_icons() + M.visible_message("A [name] appears around [M]!", \ + "A [name] appears around you!\nResist!") + else + var/obj/effect/overlay/temp/ratvar/geis_binding/G = PoolOrNew(/obj/effect/overlay/temp/ratvar/geis_binding, M.loc) + var/obj/effect/overlay/temp/ratvar/geis_binding/T = PoolOrNew(/obj/effect/overlay/temp/ratvar/geis_binding/top, M.loc) + G.layer = mob_layer - 0.01 + T.layer = mob_layer + 0.01 + G.alpha = alpha + T.alpha = alpha + animate(G, transform = matrix()*2, alpha = 0, time = 8, easing = EASE_OUT) + animate(T, transform = matrix()*2, alpha = 0, time = 8, easing = EASE_OUT) + M.visible_message("[src] snaps into glowing pieces and dissipates!") + for(var/obj/item/geis_binding/GB in M.held_items) + M.unEquip(GB, TRUE) + +/obj/structure/destructible/clockwork/geis_binding/relaymove(mob/user, direction) + if(isliving(user)) + var/mob/living/L = user + L.resist() + +/obj/structure/destructible/clockwork/geis_binding/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) + playsound(src, 'sound/effects/EMPulse.ogg', 50, 1) + +/obj/structure/destructible/clockwork/geis_binding/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) + . = ..() + if(.) + update_icon() + +/obj/structure/destructible/clockwork/geis_binding/update_icon() + alpha = min(initial(alpha) + ((obj_integrity - max_integrity) * 5), 255) + +/obj/structure/destructible/clockwork/geis_binding/proc/repair_and_interrupt() + obj_integrity = max_integrity + update_icon() + for(var/m in buckled_mobs) + var/mob/living/L = m + if(L) + L.Stun(1, 1, 1) + visible_message("[src] flares brightly!") + var/obj/effect/overlay/temp/ratvar/geis_binding/G1 = PoolOrNew(/obj/effect/overlay/temp/ratvar/geis_binding, loc) + var/obj/effect/overlay/temp/ratvar/geis_binding/G2 = PoolOrNew(/obj/effect/overlay/temp/ratvar/geis_binding, loc) + var/obj/effect/overlay/temp/ratvar/geis_binding/T1 = PoolOrNew(/obj/effect/overlay/temp/ratvar/geis_binding/top, loc) + var/obj/effect/overlay/temp/ratvar/geis_binding/T2 = PoolOrNew(/obj/effect/overlay/temp/ratvar/geis_binding/top, loc) + G1.layer = mob_layer - 0.01 + G2.layer = mob_layer - 0.01 + T1.layer = mob_layer + 0.01 + T2.layer = mob_layer + 0.01 + animate(G1, pixel_y = pixel_y + 9, alpha = 0, time = 8, easing = EASE_IN) + animate(G2, pixel_y = pixel_y - 9, alpha = 0, time = 8, easing = EASE_IN) + animate(T1, pixel_y = pixel_y + 9, alpha = 0, time = 8, easing = EASE_IN) + animate(T2, pixel_y = pixel_y - 9, alpha = 0, time = 8, easing = EASE_IN) + +/obj/structure/destructible/clockwork/geis_binding/user_unbuckle_mob(mob/living/buckled_mob, mob/user) + if(buckled_mob == user) + if(!resisting) + resisting = TRUE + user.visible_message("[user] starts struggling against [src]...", "You start breaking out of [src]...") + while(do_after(user, 10, target = src) && resisting && obj_integrity) + if(obj_integrity - 5 <= 0) + user.visible_message("[user] breaks [src]!", "You break [src]!") + take_damage(5) + return user + take_damage(5) + resisting = FALSE + else + return ..() + +/obj/item/geis_binding + name = "glowing ring" + desc = "A flickering ring preventing you from holding items." + force = 0 + icon = 'icons/effects/clockwork_effects.dmi' + icon_state = "geisbinding_full" + flags = NODROP|ABSTRACT|DROPDEL|NOBLUDGEON + +/obj/item/geis_binding/afterattack(atom/target, mob/living/user, proximity_flag, params) + user.resist() + +//For the Sentinel's Compromise scripture; heals a target servant. +/obj/effect/proc_holder/slab/compromise + ranged_mousepointer = 'icons/effects/compromise_target.dmi' + +/obj/effect/proc_holder/slab/compromise/InterceptClickOn(mob/living/caller, params, atom/target) + if(..()) + return TRUE + + var/turf/T = ranged_ability_user.loc + if(!isturf(T)) + return TRUE + + if(isliving(target) && (target in view(7, get_turf(ranged_ability_user)))) + var/mob/living/L = target + if(!is_servant_of_ratvar(L)) + ranged_ability_user << "\"[L] does not yet serve Ratvar.\"" + return TRUE + if(L.stat == DEAD) + ranged_ability_user << "\"[L.p_they(TRUE)] [L.p_are()] dead. [text2ratvar("Oh, child. To have your life cut short...")]\"" + return TRUE + + var/brutedamage = L.getBruteLoss() + var/burndamage = L.getFireLoss() + var/totaldamage = brutedamage + burndamage + if(!totaldamage && (!L.reagents || !L.reagents.has_reagent("holywater"))) + ranged_ability_user << "\"[L] is unhurt and untainted.\"" + return TRUE + var/targetturf = get_turf(L) + if(totaldamage) + L.adjustBruteLoss(-brutedamage) + L.adjustFireLoss(-burndamage) + L.adjustToxLoss(totaldamage * 0.5) + var/healseverity = max(round(totaldamage*0.05, 1), 1) //shows the general severity of the damage you just healed, 1 glow per 20 + for(var/i in 1 to healseverity) + PoolOrNew(/obj/effect/overlay/temp/heal, list(targetturf, "#1E8CE1")) + clockwork_say(ranged_ability_user, text2ratvar("Mend wounded flesh!")) + add_logs(ranged_ability_user, L, "healed with Sentinel's Compromise") + else + clockwork_say(ranged_ability_user, text2ratvar("Purge foul darkness!")) + add_logs(ranged_ability_user, L, "purged of holy water with Sentinel's Compromise") + ranged_ability_user << "You bathe [L == ranged_ability_user ? "yourself":"[L]"] in Inath-neq's power!" + L.visible_message("A blue light washes over [L], mending [L.p_their()] bruises and burns!", \ + "You feel Inath-neq's power healing your wounds, but a deep nausea overcomes you!") + playsound(targetturf, 'sound/magic/Staff_Healing.ogg', 50, 1) + + if(L.reagents && L.reagents.has_reagent("holywater")) + L.reagents.remove_reagent("holywater", 1000) + L << "Ratvar's light flares, banishing the darkness. Your devotion remains intact!" + + remove_ranged_ability() + + return TRUE + +//For the cyborg Linked Vanguard scripture, grants you and a nearby ally Vanguard +/obj/effect/proc_holder/slab/vanguard + ranged_mousepointer = 'icons/effects/vanguard_target.dmi' + +/obj/effect/proc_holder/slab/vanguard/InterceptClickOn(mob/living/caller, params, atom/target) + if(..()) + return TRUE + + var/turf/T = ranged_ability_user.loc + if(!isturf(T)) + return TRUE + + if(isliving(target) && (target in view(7, get_turf(ranged_ability_user)))) + var/mob/living/L = target + if(!is_servant_of_ratvar(L)) + ranged_ability_user << "\"[L] does not yet serve Ratvar.\"" + return TRUE + if(L.stat == DEAD) + ranged_ability_user << "\"[L.p_they(TRUE)] [L.p_are()] dead. [text2ratvar("Oh, child. To have your life cut short...")]\"" + return TRUE + if(islist(L.stun_absorption) && L.stun_absorption["vanguard"] && L.stun_absorption["vanguard"]["end_time"] > world.time) + ranged_ability_user << "\"[L.p_they(TRUE)] [L.p_are()] already shielded by a Vanguard.\"" + return TRUE + + if(L == ranged_ability_user) + for(var/mob/living/LT in spiral_range(7, T)) + if(LT.stat == DEAD || !is_servant_of_ratvar(LT) || LT == ranged_ability_user || !(LT in view(7, get_turf(ranged_ability_user))) || \ + (islist(LT.stun_absorption) && LT.stun_absorption["vanguard"] && LT.stun_absorption["vanguard"]["end_time"] > world.time)) + continue + L = LT + break + + L.apply_status_effect(STATUS_EFFECT_VANGUARD) + ranged_ability_user.apply_status_effect(STATUS_EFFECT_VANGUARD) + + clockwork_say(ranged_ability_user, text2ratvar("Shield us from darkness!")) + + remove_ranged_ability() + + return TRUE + +//For the cyborg Judicial Marker scripture, places a judicial marker +/obj/effect/proc_holder/slab/judicial + ranged_mousepointer = 'icons/effects/visor_reticule.dmi' + +/obj/effect/proc_holder/slab/judicial/InterceptClickOn(mob/living/caller, params, atom/target) + if(..()) + return TRUE + + var/turf/T = ranged_ability_user.loc + if(!isturf(T)) + return TRUE + + if(target in view(7, get_turf(ranged_ability_user))) + clockwork_say(ranged_ability_user, text2ratvar("Kneel, heathens!")) + ranged_ability_user.visible_message("[ranged_ability_user]'s eyes fire a stream of energy at [target], creating a strange mark!", \ + "You direct the judicial force to [target].") + var/turf/targetturf = get_turf(target) + new/obj/effect/clockwork/judicial_marker(targetturf, ranged_ability_user) + add_logs(ranged_ability_user, targetturf, "created a judicial marker") + remove_ranged_ability() + + return TRUE diff --git a/code/game/gamemodes/clock_cult/clock_item.dm b/code/game/gamemodes/clock_cult/clock_item.dm new file mode 100644 index 0000000000..66500d4ee5 --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_item.dm @@ -0,0 +1,24 @@ +//The base clockwork item. Can have an alternate desc and will show up in the list of clockwork objects. +/obj/item/clockwork + name = "meme blaster" + desc = "What the fuck is this? It looks kinda like a frog." + resistance_flags = FIRE_PROOF | ACID_PROOF + var/clockwork_desc = "A fabled artifact from beyond the stars. Contains concentrated meme essence." //Shown to clockwork cultists instead of the normal description + icon = 'icons/obj/clockwork_objects.dmi' + icon_state = "rare_pepe" + w_class = WEIGHT_CLASS_SMALL + +/obj/item/clockwork/New() + ..() + ratvar_act() + all_clockwork_objects += src + +/obj/item/clockwork/Destroy() + all_clockwork_objects -= src + return ..() + +/obj/item/clockwork/examine(mob/user) + if((is_servant_of_ratvar(user) || isobserver(user)) && clockwork_desc) + desc = clockwork_desc + ..() + desc = initial(desc) diff --git a/code/game/gamemodes/clock_cult/clock_items.dm b/code/game/gamemodes/clock_cult/clock_items.dm deleted file mode 100644 index a4d2bd5c0f..0000000000 --- a/code/game/gamemodes/clock_cult/clock_items.dm +++ /dev/null @@ -1,1036 +0,0 @@ -/obj/item/clockwork - name = "meme blaster" - desc = "What the fuck is this? It looks kinda like a frog." - var/clockwork_desc = "A fabled artifact from beyond the stars. Contains concentrated meme essence." //Shown to clockwork cultists instead of the normal description - icon = 'icons/obj/clockwork_objects.dmi' - icon_state = "rare_pepe" - w_class = 2 - -/obj/item/clockwork/New() - ..() - all_clockwork_objects += src - -/obj/item/clockwork/Destroy() - all_clockwork_objects -= src - return ..() - -/obj/item/clockwork/examine(mob/user) - if((is_servant_of_ratvar(user) || isobserver(user)) && clockwork_desc) - desc = clockwork_desc - ..() - desc = initial(desc) - -/obj/item/clockwork/slab //Clockwork slab: The most important tool in Ratvar's arsenal. Allows scripture recital, tutorials, and generates components. - name = "clockwork slab" - desc = "A strange metal tablet. A clock in the center turns around and around." - clockwork_desc = "A link between the Celestial Derelict and the mortal plane. Contains limitless knowledge, fabricates components, and outputs a stream of information that only a trained eye can detect." - icon_state = "dread_ipad" - slot_flags = SLOT_BELT - w_class = 2 - var/list/stored_components = list("belligerent_eye" = 0, "vanguard_cogwheel" = 0, "guvax_capacitor" = 0, "replicant_alloy" = 0, "hierophant_ansible" = 0) - var/busy //If the slab is currently being used by something - var/production_time = 0 - var/no_cost = FALSE //If the slab is admin-only and needs no components and has no scripture locks - var/nonhuman_usable = FALSE //if the slab can be used by nonhumans, defaults to off - var/produces_components = TRUE //if it produces components at all - actions_types = list(/datum/action/item_action/hierophant) - -/obj/item/clockwork/slab/starter - stored_components = list("belligerent_eye" = 1, "vanguard_cogwheel" = 1, "guvax_capacitor" = 1, "replicant_alloy" = 1, "hierophant_ansible" = 1) - -/obj/item/clockwork/slab/internal //an internal motor for mobs running scripture - name = "scripture motor" - no_cost = TRUE - produces_components = FALSE - -/obj/item/clockwork/slab/scarab - nonhuman_usable = TRUE - -/obj/item/clockwork/slab/debug - no_cost = TRUE - nonhuman_usable = TRUE - -/obj/item/clockwork/slab/debug/attack_hand(mob/living/user) - ..() - if(!is_servant_of_ratvar(user)) - add_servant_of_ratvar(user) - -/obj/item/clockwork/slab/New() - ..() - START_PROCESSING(SSobj, src) - production_time = world.time + SLAB_PRODUCTION_TIME - -/obj/item/clockwork/slab/Destroy() - STOP_PROCESSING(SSobj, src) - return ..() - -/obj/item/clockwork/slab/process() - if(!produces_components) - STOP_PROCESSING(SSobj, src) - return - if(production_time > world.time) - return - production_time = world.time + SLAB_PRODUCTION_TIME - var/mob/living/L - if(isliving(loc)) - L = loc - else if(istype(loc, /obj/item/weapon/storage)) - var/obj/item/weapon/storage/W = loc - if(isliving(W.loc)) //Only goes one level down - otherwise it won't produce components - L = W.loc - if(L) - var/component_to_generate = get_weighted_component_id(src) //more likely to generate components that we have less of - stored_components[component_to_generate]++ - for(var/obj/item/clockwork/slab/S in L.GetAllContents()) //prevent slab abuse today - if(L == src) - continue - S.production_time = world.time + SLAB_PRODUCTION_TIME - L << "Your slab clunks as it produces a new component." - -/obj/item/clockwork/slab/ui_action_click(mob/user, actiontype) - show_hierophant(user) - -/obj/item/clockwork/slab/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/clockwork/component) && is_servant_of_ratvar(user)) - var/obj/item/clockwork/component/C = I - if(!C.component_id) - return 0 - user.visible_message("[user] inserts [C] into [src].", "You insert [C] into [src], where it is added to the global cache.") - clockwork_component_cache[C.component_id]++ - user.drop_item() - qdel(C) - return 1 - else - return ..() - -/obj/item/clockwork/slab/attack_self(mob/living/user) - if(iscultist(user)) - user << "\"You reek of blood. You've got a lot of nerve to even look at that slab.\"" - user.visible_message("A sizzling sound comes from [user]'s hands!", "[src] suddenly grows extremely hot in your hands!") - playsound(get_turf(user), 'sound/weapons/sear.ogg', 50, 1) - user.drop_item() - user.emote("scream") - user.apply_damage(5, BURN, "l_arm") - user.apply_damage(5, BURN, "r_arm") - return 0 - if(!is_servant_of_ratvar(user)) - user << "The information on [src]'s display shifts rapidly. After a moment, your head begins to pound, and you tear your eyes away." - user.confused += 5 - user.dizziness += 5 - return 0 - if(busy) - user << "[src] refuses to work, displaying the message: \"[busy]!\"" - return 0 - if(!nonhuman_usable && !ishuman(user)) - user << "[src] hums quietly in your hands, but you can't seem to get it to do anything." - return 0 - access_display(user) - -/obj/item/clockwork/slab/proc/access_display(mob/living/user) - if(!is_servant_of_ratvar(user)) - return 0 - var/action = input(user, "Among the swathes of information, you see...", "[src]") as null|anything in list("Recital", "Records", "Recollection") - if(!action || !user.canUseTopic(src)) - return 0 - switch(action) - if("Recital") - if(user.get_active_hand() != src) - user << "You need to hold the slab to recite scripture!" - return - recite_scripture(user) - if("Records") - show_stats(user) - if("Recollection") - show_guide(user) - return 1 - -/obj/item/clockwork/slab/proc/recite_scripture(mob/living/user) - var/list/tiers_of_scripture = list("Drivers") - tiers_of_scripture += "Scripts[ratvar_awakens || scripture_unlock_check(SCRIPTURE_SCRIPT) || no_cost ? "" : " \[LOCKED\]"]" - tiers_of_scripture += "Applications[ratvar_awakens || scripture_unlock_check(SCRIPTURE_APPLICATION) || no_cost ? "" : " \[LOCKED\]"]" - tiers_of_scripture += "Revenant[ratvar_awakens || scripture_unlock_check(SCRIPTURE_REVENANT) || no_cost ? "" : " \[LOCKED\]"]" - tiers_of_scripture += "Judgement[ratvar_awakens || scripture_unlock_check(SCRIPTURE_JUDGEMENT) || no_cost ? "" : " \[LOCKED\]"]" - var/scripture_tier = input(user, "Choose a category of scripture to recite.", "[src]") as null|anything in tiers_of_scripture - if(!scripture_tier || !user.canUseTopic(src)) - return 0 - var/list/available_scriptures = list() - var/datum/clockwork_scripture/scripture_to_recite - var/tier_to_browse - switch(scripture_tier) - if("Drivers") - tier_to_browse = SCRIPTURE_DRIVER - if("Scripts") - tier_to_browse = SCRIPTURE_SCRIPT - if("Applications") - tier_to_browse = SCRIPTURE_APPLICATION - if("Revenant") - tier_to_browse = SCRIPTURE_REVENANT - if("Judgement") - tier_to_browse = SCRIPTURE_JUDGEMENT - if(!tier_to_browse) - user << "That section of scripture is too powerful right now!" - return 0 - for(var/S in subtypesof(/datum/clockwork_scripture)) - var/datum/clockwork_scripture/C = S - if(initial(C.tier) == tier_to_browse) - available_scriptures += "[initial(C.name)] ([initial(C.descname)])" - if(!available_scriptures.len) - return 0 - var/chosen_scripture = input(user, "Choose a piece of scripture to recite.", "[src]") as null|anything in available_scriptures - if(!chosen_scripture || !user.canUseTopic(src)) - return 0 - for(var/S in subtypesof(/datum/clockwork_scripture)) - var/datum/clockwork_scripture/C = S - if("[initial(C.name)] ([initial(C.descname)])" == chosen_scripture) - scripture_to_recite = new C - if(!scripture_to_recite || user.get_active_hand() != src) - return 0 - scripture_to_recite.slab = src - scripture_to_recite.invoker = user - scripture_to_recite.run_scripture() - return 1 - -/obj/item/clockwork/slab/proc/show_stats(mob/living/user) //A bit barebones, but there really isn't any more needed - var/servants = 0 - var/validservants = 0 - for(var/mob/living/L in living_mob_list) - if(is_servant_of_ratvar(L)) - servants++ - if(ishuman(L) || issilicon(L)) - validservants++ - user << "State of the Enlightened" - user << "Total servants: [servants]" - user << "Servants valid for scripture unlock: [validservants]" - user << "Total construction value: [clockwork_construction_value]" - user << "Total tinkerer's caches: [clockwork_caches]" - user << "Total tinkerer's daemons: [clockwork_daemons] ([servants / 5 < clockwork_daemons ? "DISABLED: Too few servants (5 servants per daemon)!" : "Functioning Normally"])" - user << "Nezbere: [!clockwork_generals_invoked["nezbere"] <= world.time ? "Ready" : "Invoked"]" - user << "Sevtug: [!clockwork_generals_invoked["sevtug"] <= world.time ? "Ready" : "Invoked"]" - user << "Nzcrentr: [!clockwork_generals_invoked["nzcrentr"] <= world.time ? "Ready" : "Invoked"]" - user << "Inath-Neq: [!clockwork_generals_invoked["inath-neq"] <= world.time ? "Ready" : "Invoked"]" - -/obj/item/clockwork/slab/proc/show_guide(mob/living/user) - var/text = "
    Chetr nyy hageh’guf naq ubabe Ratvar.


    \ - \ - First and foremost, you serve Ratvar, the Clockwork Justiciar, in any ways he sees fit. This is with no regard to your personal well-being, and you would do well to think of the larger \ - scale of things than your life. Through foul and unholy magics was the Celestial Derelict formed, and fouler still those which trapped your master within it for all eternity. The Justiciar \ - wishes retribution upon those who performed this terrible act upon him - the Nar-Sian cultists - and you are to help him obtain it.

    \ - \ - This is not a trivial task. Due to the nature of his prison, Ratvar is incapable of directly influencing the mortal plane. There is, however, a workaround - links between the perceptible \ - universe and Reebe (the Celestial Derelict) can be created and utilized. This is typically done via the creation of a slab akin to the one you are holding right now. The slabs tap into the \ - tidal flow of energy and information keeping Reebe sealed and presents it as meaningless images to preserve sanity. This slab can utilize the power in many different ways.

    \ - \ - This is done through Components - pieces of the Justiciar's body that have since fallen off in the countless years since his imprisonment. Ratvar's unfortunate condition results \ - in the fragmentation of his body. These components still house great power on their own, and can slowly be drawn from Reebe by links capable of doing so. The most basic of these links lies \ - in the clockwork slab, which will slowly generate components over time - around one component of a random type is produced every minute, which is obviously inefficient. There are other ways \ - to create these components through scripture and certain structures.

    \ - \ - In addition to their ability to pull components, slabs also possess other functionalities...

    \ - \ - The first functionality of the slab is Recital. This allows you to consume components either from your slab or from the global cache (more on that in the scripture list) to perform \ - effects usually considered magical in nature. Effects vary considerably - you might drain the power of nearby APCs, cause mass confusion, or force people to walk. Nevertheless, scripture \ - is extremely important to a successful takeover.

    \ - \ - The second functionality of the clockwork slab is Records. The slab is not a one-way link and can also feed information into the stream that it draws from. Records will allow many \ - important statistics to be displayed, such as the amount of people converted and total construction value. You should check it often.

    \ - \ - The third and final functionality is Recollection, which will display this guide. Recollection will automatically be initiated if you have not used a slab before.

    \ - \ - Examine the slab for component amount information.

    \ - \ - A complete list of scripture, its effects, and its requirements can be found below. Note that anything above a driver always consumes the components listed unless otherwise \ - specified.

    " - var/text_to_add = "" - var/drivers = "Drivers" - var/scripts = "Scripts
    These scriptures require at least five servants and a tinkerer's cache." - var/applications = "Applications
    These scriptures require at least eight servants, three tinkerer's caches, and 50CV." - var/revenant = "Revenant
    These scriptures require at least ten servants and 100CV." - var/judgement = "Judgement
    These scriptures require at least ten servants and 100CV. In addition, there may not be an active non-servant AI." - for(var/V in subtypesof(/datum/clockwork_scripture)) - var/datum/clockwork_scripture/S = V - var/datum/clockwork_scripture/S2 = new V - var/list/req_comps = S2.required_components - var/list/cons_comps = S2.consumed_components - qdel(S2) - switch(initial(S.tier)) - if(SCRIPTURE_DRIVER) - drivers += "
    [initial(S.name)]: [initial(S.desc)]
    Invocation Time: [initial(S.channel_time) / 10] seconds
    \ - \ - Component Requirement: \ - [req_comps["belligerent_eye"] ? "[req_comps["belligerent_eye"]] Belligerent Eyes" : ""] \ - [req_comps["vanguard_cogwheel"] ? "[req_comps["vanguard_cogwheel"]] Vanguard Cogwheels" : ""] \ - [req_comps["guvax_capacitor"] ? "[req_comps["guvax_capacitor"]] Guvax Capacitors" : ""] \ - [req_comps["replicant_alloy"] ? "[req_comps["replicant_alloy"]] Replicant Alloys" : ""] \ - [req_comps["hierophant_ansible"] ? "[req_comps["hierophant_ansible"]] Hierophant Ansibles" : ""]
    \ - Component Cost: \ - [cons_comps["belligerent_eye"] ? "[cons_comps["belligerent_eye"]] Belligerent Eyes" : ""] \ - [cons_comps["vanguard_cogwheel"] ? "[cons_comps["vanguard_cogwheel"]] Vanguard Cogwheels" : ""] \ - [cons_comps["guvax_capacitor"] ? "[cons_comps["guvax_capacitor"]] Guvax Capacitors" : ""] \ - [cons_comps["replicant_alloy"] ? "[cons_comps["replicant_alloy"]] Replicant Alloys" : ""] \ - [cons_comps["hierophant_ansible"] ? "[cons_comps["hierophant_ansible"]] Hierophant Ansibles" : ""]
    \ - Tip: [initial(S.usage_tip)]
    " - if(SCRIPTURE_SCRIPT) - scripts += "
    [initial(S.name)]: [initial(S.desc)]
    Invocation Time: [initial(S.channel_time) / 10] seconds
    \ - \ - Component Requirement: \ - [req_comps["belligerent_eye"] ? "[req_comps["belligerent_eye"]] Belligerent Eyes" : ""] \ - [req_comps["vanguard_cogwheel"] ? "[req_comps["vanguard_cogwheel"]] Vanguard Cogwheels" : ""] \ - [req_comps["guvax_capacitor"] ? "[req_comps["guvax_capacitor"]] Guvax Capacitors" : ""] \ - [req_comps["replicant_alloy"] ? "[req_comps["replicant_alloy"]] Replicant Alloys" : ""] \ - [req_comps["hierophant_ansible"] ? "[req_comps["hierophant_ansible"]] Hierophant Ansibles" : ""]
    \ - Component Cost: \ - [cons_comps["belligerent_eye"] ? "[cons_comps["belligerent_eye"]] Belligerent Eyes" : ""] \ - [cons_comps["vanguard_cogwheel"] ? "[cons_comps["vanguard_cogwheel"]] Vanguard Cogwheels" : ""] \ - [cons_comps["guvax_capacitor"] ? "[cons_comps["guvax_capacitor"]] Guvax Capacitors" : ""] \ - [cons_comps["replicant_alloy"] ? "[cons_comps["replicant_alloy"]] Replicant Alloys" : ""] \ - [cons_comps["hierophant_ansible"] ? "[cons_comps["hierophant_ansible"]] Hierophant Ansibles" : ""]
    \ - Tip: [initial(S.usage_tip)]
    " - if(SCRIPTURE_APPLICATION) - applications += "
    [initial(S.name)]: [initial(S.desc)]
    Invocation Time: [initial(S.channel_time) / 10] seconds
    \ - \ - Component Requirement: \ - [req_comps["belligerent_eye"] ? "[req_comps["belligerent_eye"]] Belligerent Eyes" : ""] \ - [req_comps["vanguard_cogwheel"] ? "[req_comps["vanguard_cogwheel"]] Vanguard Cogwheels" : ""] \ - [req_comps["guvax_capacitor"] ? "[req_comps["guvax_capacitor"]] Guvax Capacitors" : ""] \ - [req_comps["replicant_alloy"] ? "[req_comps["replicant_alloy"]] Replicant Alloys" : ""] \ - [req_comps["hierophant_ansible"] ? "[req_comps["hierophant_ansible"]] Hierophant Ansibles" : ""]
    \ - Component Cost: \ - [cons_comps["belligerent_eye"] ? "[cons_comps["belligerent_eye"]] Belligerent Eyes" : ""] \ - [cons_comps["vanguard_cogwheel"] ? "[cons_comps["vanguard_cogwheel"]] Vanguard Cogwheels" : ""] \ - [cons_comps["guvax_capacitor"] ? "[cons_comps["guvax_capacitor"]] Guvax Capacitors" : ""] \ - [cons_comps["replicant_alloy"] ? "[cons_comps["replicant_alloy"]] Replicant Alloys" : ""] \ - [cons_comps["hierophant_ansible"] ? "[cons_comps["hierophant_ansible"]] Hierophant Ansibles" : ""]
    \ - Tip: [initial(S.usage_tip)]
    " - if(SCRIPTURE_REVENANT) - revenant += "
    [initial(S.name)]: [initial(S.desc)]
    Invocation Time: [initial(S.channel_time) / 10] seconds
    \ - \ - Component Requirement: \ - [req_comps["belligerent_eye"] ? "[req_comps["belligerent_eye"]] Belligerent Eyes" : ""] \ - [req_comps["vanguard_cogwheel"] ? "[req_comps["vanguard_cogwheel"]] Vanguard Cogwheels" : ""] \ - [req_comps["guvax_capacitor"] ? "[req_comps["guvax_capacitor"]] Guvax Capacitors" : ""] \ - [req_comps["replicant_alloy"] ? "[req_comps["replicant_alloy"]] Replicant Alloys" : ""] \ - [req_comps["hierophant_ansible"] ? "[req_comps["hierophant_ansible"]] Hierophant Ansibles" : ""]
    \ - Component Cost: \ - [cons_comps["belligerent_eye"] ? "[cons_comps["belligerent_eye"]] Belligerent Eyes" : ""] \ - [cons_comps["vanguard_cogwheel"] ? "[cons_comps["vanguard_cogwheel"]] Vanguard Cogwheels" : ""] \ - [cons_comps["guvax_capacitor"] ? "[cons_comps["guvax_capacitor"]] Guvax Capacitors" : ""] \ - [cons_comps["replicant_alloy"] ? "[cons_comps["replicant_alloy"]] Replicant Alloys" : ""] \ - [cons_comps["hierophant_ansible"] ? "[cons_comps["hierophant_ansible"]] Hierophant Ansibles" : ""]
    \ - Tip: [initial(S.usage_tip)]
    " - if(SCRIPTURE_JUDGEMENT) - judgement += "
    [initial(S.name)]: [initial(S.desc)]
    Invocation Time: [initial(S.channel_time) / 10] seconds
    \ - \ - Component Requirement: \ - [req_comps["belligerent_eye"] ? "[req_comps["belligerent_eye"]] Belligerent Eyes" : ""] \ - [req_comps["vanguard_cogwheel"] ? "[req_comps["vanguard_cogwheel"]] Vanguard Cogwheels" : ""] \ - [req_comps["guvax_capacitor"] ? "[req_comps["guvax_capacitor"]] Guvax Capacitors" : ""] \ - [req_comps["replicant_alloy"] ? "[req_comps["replicant_alloy"]] Replicant Alloys" : ""] \ - [req_comps["hierophant_ansible"] ? "[req_comps["hierophant_ansible"]] Hierophant Ansibles" : ""]
    \ - Component Cost: \ - [cons_comps["belligerent_eye"] ? "[cons_comps["belligerent_eye"]] Belligerent Eyes" : ""] \ - [cons_comps["vanguard_cogwheel"] ? "[cons_comps["vanguard_cogwheel"]] Vanguard Cogwheels" : ""] \ - [cons_comps["guvax_capacitor"] ? "[cons_comps["guvax_capacitor"]] Guvax Capacitors" : ""] \ - [cons_comps["replicant_alloy"] ? "[cons_comps["replicant_alloy"]] Replicant Alloys" : ""] \ - [cons_comps["hierophant_ansible"] ? "[cons_comps["hierophant_ansible"]] Hierophant Ansibles" : ""]
    \ - Tip: [initial(S.usage_tip)]
    " - text_to_add += "[drivers]
    [scripts]
    [applications]
    [revenant]
    [judgement]
    " - text_to_add += "
    Purge all untruths and honor Ratvar.
    " - text += text_to_add - if(ratvar_awakens) - text = "" - for(var/i in 1 to 100) - text += "HONOR RATVAR " - text += "" - var/datum/browser/popup = new(user, "slab", "", 600, 500) - popup.set_content(text) - popup.open() - return 1 - -/obj/item/clockwork/slab/examine(mob/user) - ..() - if(is_servant_of_ratvar(user) || isobserver(user)) - user << "Use the Hierophant Network action button to communicate with other servants." - user << "Clockwork slabs will only generate components if held by a human or if inside a storage item held by a human, and when generating a component will prevent all other slabs held from generating components." - user << "Stored components (with global cache):" - user << "Belligerent Eyes: [stored_components["belligerent_eye"]] ([stored_components["belligerent_eye"] + clockwork_component_cache["belligerent_eye"]])" - user << "Vanguard Cogwheels: [stored_components["vanguard_cogwheel"]] ([stored_components["vanguard_cogwheel"] + clockwork_component_cache["vanguard_cogwheel"]])" - user << "Guvax Capacitors: [stored_components["guvax_capacitor"]] ([stored_components["guvax_capacitor"] + clockwork_component_cache["guvax_capacitor"]])" - user << "Replicant Alloys: [stored_components["replicant_alloy"]] ([stored_components["replicant_alloy"] + clockwork_component_cache["replicant_alloy"]])" - user << "Hierophant Ansibles: [stored_components["hierophant_ansible"]] ([stored_components["hierophant_ansible"] + clockwork_component_cache["hierophant_ansible"]])" - -/obj/item/clockwork/slab/proc/show_hierophant(mob/living/user) - var/message = stripped_input(user, "Enter a message to send to your fellow servants.", "Hierophant") - if(!message || !user || !user.canUseTopic(src)) - return 0 - user.whisper("Freinagf, urne zl jbeqf. [message]") - send_hierophant_message(user, message) - return 1 - -/obj/item/clothing/glasses/wraith_spectacles //Wraith spectacles: Grants night and x-ray vision at the slow cost of the wearer's sight. Nar-Sian cultists are instantly blinded. - name = "antique spectacles" - desc = "Unnerving glasses with opaque yellow lenses." - icon = 'icons/obj/clothing/clockwork_garb.dmi' - icon_state = "wraith_specs" - item_state = "glasses" - vision_flags = SEE_MOBS | SEE_TURFS | SEE_OBJS - invis_view = 2 - darkness_view = 3 - -/obj/item/clothing/glasses/wraith_spectacles/equipped(mob/living/user, slot) - ..() - if(slot != slot_glasses) - return - if(user.disabilities & BLIND) - user << "\"You're blind, idiot. Stop embarassing yourself.\"" //Ratvar with the sick burns yo - return - if(iscultist(user)) //Cultists instantly go blind - user << "\"It looks like Nar-Sie's dogs really don't value their eyes.\"" - user << "Your eyes explode with horrific pain!" - user.emote("scream") - user.become_blind() - user.adjust_blurriness(30) - user.adjust_blindness(30) - return - if(is_servant_of_ratvar(user)) - tint = 0 - user << "As you put on the spectacles, all is revealed to you.[ratvar_awakens ? "" : " Your eyes begin to itch - you cannot do this for long."]" - else - tint = 3 - user << "You put on the spectacles, but you can't see through the glass." - -/obj/item/clothing/glasses/wraith_spectacles/New() - ..() - START_PROCESSING(SSobj, src) - -/obj/item/clothing/glasses/wraith_spectacles/Destroy() - STOP_PROCESSING(SSobj, src) - return ..() - -/obj/item/clothing/glasses/wraith_spectacles/process() - if(ratvar_awakens || !ishuman(loc) || !is_servant_of_ratvar(loc)) //If Ratvar is alive, the spectacles don't hurt your eyes - return 0 - var/mob/living/carbon/human/H = loc - if(H.glasses != src) - return 0 - H.adjust_eye_damage(1) - if(H.eye_damage >= 10) - H.adjust_blurriness(2) - if(H.eye_damage >= 20) - if(H.become_nearsighted()) - H << "Your vision doubles, then trebles. Darkness begins to close in. You can't keep this up!" - H.become_nearsighted() - if(H.eye_damage >= 30) - if(H.become_blind()) - H << "A piercing white light floods your vision. Suddenly, all goes dark!" - if(prob(15) && !H.disabilities & BLIND) - H << "Your eyes continue to burn." - -/obj/item/clothing/glasses/judicial_visor //Judicial visor: Grants the ability to smite an area and stun the unfaithful nearby every thirty seconds. - name = "judicial visor" - desc = "A strange purple-lensed visor. Looking at it inspires an odd sense of guilt." - icon = 'icons/obj/clothing/clockwork_garb.dmi' - icon_state = "judicial_visor_0" - item_state = "sunglasses" - var/active = FALSE //If the visor is online - var/recharging = FALSE //If the visor is currently recharging - var/obj/item/weapon/ratvars_flame/flame //The linked flame object - actions_types = list(/datum/action/item_action/toggle_flame) - -/obj/item/clothing/glasses/judicial_visor/item_action_slot_check(slot, mob/user) - if(slot != slot_glasses) - return 0 - return ..() - -/obj/item/clothing/glasses/judicial_visor/equipped(mob/living/user, slot) - ..() - if(slot != slot_glasses) - update_status(FALSE) - if(flame) - qdel(flame) - flame = null - return 0 - if(is_servant_of_ratvar(user)) - update_status(TRUE) - else if(iscultist(user)) //Cultists spontaneously combust - user << "\"Consider yourself judged, whelp.\"" - user << "You suddenly catch fire!" - user.adjust_fire_stacks(5) - user.IgniteMob() - return 1 - -/obj/item/clothing/glasses/judicial_visor/attack_self(mob/user) - if(is_servant_of_ratvar(user)) - if(flame) - user.visible_message("The flame in [user]'s hand winks out!", "You dispel the power of [src].") - qdel(flame) - flame = null - else if(iscarbon(user) && active) - if(recharging) - user << "[src] is still gathering power!" - return 0 - var/mob/living/carbon/C = user - if(C.l_hand && C.r_hand) - C << "You require a free hand to utilize [src]'s power!" - return 0 - C.visible_message("[C]'s hand is enveloped in violet flames!", "You harness [src]'s power. Direct it at a tile at any range to unleash it, or use the action button again to dispel it.") - var/obj/item/weapon/ratvars_flame/R = new(get_turf(C)) - flame = R - C.put_in_hands(R) - R.visor = src - user.update_action_buttons_icon() - -/obj/item/clothing/glasses/judicial_visor/proc/update_status(change_to) - if(recharging || !isliving(loc)) - icon_state = "judicial_visor_0" - return 0 - if(active == change_to) - return 0 - var/mob/living/L = loc - if(!is_servant_of_ratvar(L) || L.stat) - return 0 - active = change_to - icon_state = "judicial_visor_[active]" - L.update_action_buttons_icon() - L.update_inv_glasses() - switch(active) - if(TRUE) - L << "As you put on [src], its lens begins to glow, information flashing before your eyes.\n\ - Judicial visor active. Use the action button to gain the ability to smite the unworthy." - if(FALSE) - L << "As you take off [src], its lens darkens once more." - return 1 - -/obj/item/clothing/glasses/judicial_visor/proc/recharge_visor(mob/living/user) - if(!src || !user) - return 0 - recharging = FALSE - if(src == user.get_item_by_slot(slot_glasses)) - user << "Your [name] hums. It is ready." - else - active = FALSE - icon_state = "judicial_visor_[active]" - user.update_action_buttons_icon() - user.update_inv_glasses() - -/obj/item/weapon/ratvars_flame //Used by the judicial visor - name = "Ratvar's flame" - desc = "A blazing violet ball of fire that, curiously, doesn't melt your hand off." - icon = 'icons/effects/clockwork_effects.dmi' - icon_state = "ratvars_flame" - w_class = 5 - flags = NODROP | ABSTRACT - force = 5 //Also serves as a weak melee weapon! - damtype = BURN - hitsound = 'sound/weapons/sear.ogg' - attack_verb = list("scorched", "seared", "burnt", "judged") - var/obj/item/clothing/glasses/judicial_visor/visor //The linked visor - var/examined = FALSE - -/obj/item/weapon/ratvars_flame/examine(mob/user) - ..() - user << "Use harm intent to direct the flame to a location." - if(prob(10) && examined) - user << "\"Don't stand around looking at your hands, go forth with Neovgre's judgement!\"" - examined = FALSE - else - examined = TRUE - -/obj/item/weapon/ratvars_flame/afterattack(atom/target, mob/living/user, flag, params) - if(!visor || (visor && visor.cooldown)) - qdel(src) - if(target in view(7, get_turf(user))) - visor.recharging = TRUE - visor.flame = null - visor.update_status() - for(var/obj/item/clothing/glasses/judicial_visor/V in user.GetAllContents()) - if(V == visor) - continue - V.recharging = TRUE //To prevent exploiting multiple visors to bypass the cooldown - V.update_status() - addtimer(V, "recharge_visor", ratvar_awakens ? 60 : 600, FALSE, user) - clockwork_say(user, "Xarry, urn'guraf!") - user.visible_message("The flame in [user]'s hand rushes to [target]!", "You direct [visor]'s power to [target]. You must wait for some time before doing this again.") - new/obj/effect/clockwork/judicial_marker(get_turf(target), user) - user.update_action_buttons_icon() - user.update_inv_glasses() - addtimer(visor, "recharge_visor", ratvar_awakens ? 30 : 300, FALSE, user)//Cooldown is reduced by 10x if Ratvar is up - qdel(src) - return 1 - - -/obj/item/clothing/head/helmet/clockwork //Clockwork armor: High melee protection but weak to lasers - name = "clockwork helmet" - desc = "A heavy helmet made of brass." - icon = 'icons/obj/clothing/clockwork_garb.dmi' - icon_state = "clockwork_helmet" - w_class = 3 - armor = list(melee = 80, bullet = 50, laser = -15, energy = 5, bomb = 35, bio = 0, rad = 0) - -/obj/item/clothing/head/helmet/clockwork/reclaimer //Used when a reclaimer mindjacks someone - name = "clockwork reclaimer" - desc = "A clockwork spider, hitchhiking like a horrible mechanical parasite." - icon_state = "reclaimer" - flags = NODROP - unacidable = TRUE - flags_inv = HIDEFACE|HIDEHAIR|HIDEEARS - flags_cover = HEADCOVERSEYES - -/obj/item/clothing/head/helmet/clockwork/equipped(mob/living/user, slot) - ..() - if(slot == slot_head && !is_servant_of_ratvar(user)) - if(!iscultist(user)) - user << "\"Now now, this is for my servants, not you.\"" - user.visible_message("As [user] puts [src] on, it flickers off their head!", "The helmet flickers off your head, leaving only nausea!") - if(iscarbon(user)) - var/mob/living/carbon/C = user - C.vomit(20, 1, 1, 0, 1) - else - user << "\"Do you have a hole in your head? You're about to.\"" - user << "The helmet tries to drive a spike through your head as you scramble to remove it!" - user.emote("scream") - user.apply_damage(30, BRUTE, "head") - user.adjustBrainLoss(30) - addtimer(user, "unEquip", 1, FALSE, src, 1) //equipped happens before putting stuff on(but not before picking items up). thus, we need to wait for it to be on before forcing it off. - -/obj/item/clothing/suit/armor/clockwork - name = "clockwork cuirass" - desc = "A bulky cuirass made of brass." - icon = 'icons/obj/clothing/clockwork_garb.dmi' - icon_state = "clockwork_cuirass" - w_class = 4 - body_parts_covered = CHEST|GROIN|LEGS - armor = list(melee = 80, bullet = 50, laser = -15, energy = 5, bomb = 35, bio = 0, rad = 0) - allowed = list(/obj/item/clockwork, /obj/item/clothing/glasses/wraith_spectacles, /obj/item/clothing/glasses/judicial_visor, /obj/item/device/mmi/posibrain/soul_vessel) - -/obj/item/clothing/suit/armor/clockwork/equipped(mob/living/user, slot) - ..() - if(slot == slot_wear_suit && !is_servant_of_ratvar(user)) - if(!iscultist(user)) - user << "\"Now now, this is for my servants, not you.\"" - user.visible_message("As [user] puts [src] on, it flickers off their body!", "The curiass flickers off your body, leaving only nausea!") - if(iscarbon(user)) - var/mob/living/carbon/C = user - C.vomit(20, 1, 1, 0, 1) - else - user << "\"I think this armor is too hot for you to handle.\"" - user << "The curiass emits a burst of flame as you scramble to get it off!" - user.emote("scream") - user.apply_damage(15, BURN, "chest") - user.adjust_fire_stacks(2) - user.IgniteMob() - addtimer(user, "unEquip", 1, FALSE, src, 1) - -/obj/item/clothing/gloves/clockwork - name = "clockwork gauntlets" - desc = "Heavy, shock-resistant gauntlets with brass reinforcement." - icon = 'icons/obj/clothing/clockwork_garb.dmi' - icon_state = "clockwork_gauntlets" - item_state = "clockwork_gauntlets" - item_color = null //So they don't wash. - strip_delay = 50 - put_on_delay = 30 - body_parts_covered = ARMS - burn_state = FIRE_PROOF - siemens_coefficient = 0 - permeability_coefficient = 0.05 - armor = list(melee = 80, bullet = 50, laser = -15, energy = 5, bomb = 35, bio = 0, rad = 0) - -/obj/item/clothing/gloves/clockwork/equipped(mob/living/user, slot) - ..() - if(slot == slot_gloves && !is_servant_of_ratvar(user)) - if(!iscultist(user)) - user << "\"Now now, this is for my servants, not you.\"" - user.visible_message("As [user] puts [src] on, it flickers off their arms!", "The gauntlets flicker off your arms, leaving only nausea!") - if(iscarbon(user)) - var/mob/living/carbon/C = user - C.vomit(10, 1, 1, 0, 1) - else - user << "\"Did you like having arms?\"" - user << "The gauntlets suddenly squeeze tight, crushing your arms before you manage to get them off!" - user.emote("scream") - user.apply_damage(7, BRUTE, "l_arm") - user.apply_damage(7, BRUTE, "r_arm") - addtimer(user, "unEquip", 1, FALSE, src, 1) - -/obj/item/clothing/shoes/clockwork - name = "clockwork treads" - desc = "Industrial boots made of brass. They're very heavy." - icon = 'icons/obj/clothing/clockwork_garb.dmi' - icon_state = "clockwork_treads" - w_class = 3 - strip_delay = 50 - put_on_delay = 30 - burn_state = FIRE_PROOF - -/obj/item/clothing/shoes/clockwork/equipped(mob/living/user, slot) - ..() - if(slot == slot_shoes && !is_servant_of_ratvar(user)) - if(!iscultist(user)) - user << "\"Now now, this is for my servants, not you.\"" - user.visible_message("As [user] puts [src] on, it flickers off their feet!", "The treads flicker off your feet, leaving only nausea!") - if(iscarbon(user)) - var/mob/living/carbon/C = user - C.vomit(10, 1, 1, 0, 1) - else - user << "\"Let's see if you can dance with these.\"" - user << "The treads turn searing hot as you scramble to get them off!" - user.emote("scream") - user.apply_damage(7, BURN, "l_leg") - user.apply_damage(7, BURN, "r_leg") - addtimer(user, "unEquip", 1, FALSE, src, 1) - - -/obj/item/clockwork/ratvarian_spear //Ratvarian spear: A fragile spear from the Celestial Derelict. Deals extreme damage to silicons and enemy cultists, but doesn't last long. - name = "ratvarian spear" - desc = "A razor-sharp spear made of brass. It thrums with barely-contained energy." - clockwork_desc = "A fragile spear of Ratvarian making. It's more effective against enemy cultists and silicons, though it won't last long." - icon = 'icons/obj/clockwork_objects.dmi' - icon_state = "ratvarian_spear" - item_state = "ratvarian_spear" - force = 17 //Extra damage is dealt to silicons in afterattack() - throwforce = 40 - attack_verb = list("stabbed", "poked", "slashed") - hitsound = 'sound/weapons/bladeslice.ogg' - w_class = 4 - var/impale_cooldown = 50 //delay, in deciseconds, where you can't impale again - var/attack_cooldown = 10 //delay, in deciseconds, where you can't attack with the spear - -/obj/item/clockwork/ratvarian_spear/New() - ..() - impale_cooldown = 0 - update_force() - spawn(1) - if(isliving(loc)) - var/mob/living/L = loc - L << "Your spear begins to break down in this plane of existence. You can't use it for long!" - addtimer(src, "break_spear", 3000, FALSE) //5 minutes - -/obj/item/clockwork/ratvarian_spear/proc/update_force() - if(ratvar_awakens) //If Ratvar is alive, the spear is extremely powerful - force = 30 - throwforce = 50 - else - force = initial(force) - throwforce = initial(throwforce) - -/obj/item/clockwork/ratvarian_spear/examine(mob/user) - ..() - if(is_servant_of_ratvar(user) || isobserver(user)) - user << "Stabbing a human you are pulling or have grabbed with the spear will impale them, doing massive damage and stunning." - user << "Throwing the spear will do massive damage, break the spear, and stun the target if it's an enemy cultist or silicon." - -/obj/item/clockwork/ratvarian_spear/attack(mob/living/target, mob/living/carbon/human/user) - var/impaling = FALSE - if(attack_cooldown > world.time) - user << "You can't attack right now, wait [max(round((attack_cooldown - world.time)*0.1, 0.1), 0)] seconds!" - return - if(user.pulling && ishuman(user.pulling) && user.pulling == target) - if(impale_cooldown > world.time) - user << "You can't impale [target] yet, wait [max(round((impale_cooldown - world.time)*0.1, 0.1), 0)] seconds!" - else - impaling = TRUE - attack_verb = list("impaled") - force += 23 //40 damage if ratvar isn't alive, 53 if he is - user.stop_pulling() - - if(impaling) - if(hitsound) - playsound(loc, hitsound, get_clamped_volume(), 1, -1) - user.lastattacked = target - target.lastattacker = user - if(!target.attacked_by(src, user)) - impaling = FALSE //if we got blocked, stop impaling - add_logs(user, target, "attacked", src.name, "(INTENT: [uppertext(user.a_intent)]) (DAMTYPE: [uppertext(damtype)])") - add_fingerprint(user) - else //todo yell at someone to make attack() use proper return values - ..() - - if(issilicon(target)) - var/mob/living/silicon/S = target - if(S.stat != DEAD) - S.visible_message("[S] shudders violently at [src]'s touch!", "ERROR: Temperature rising!") - S.adjustFireLoss(25) - else if(iscultist(target) || isconstruct(target)) //Cultists take extra fire damage - var/mob/living/M = target - if(M.stat != DEAD) - M << "Your body flares with agony at [src]'s presence!" - M.adjustFireLoss(10) - attack_verb = list("stabbed", "poked", "slashed") - update_force() - if(impaling) - impale_cooldown = world.time + initial(impale_cooldown) - attack_cooldown = world.time + initial(attack_cooldown) - if(target) - PoolOrNew(/obj/effect/overlay/temp/bloodsplatter, list(get_turf(target), get_dir(user, target))) - target.Stun(2) - user << "You prepare to remove your ratvarian spear from [target]..." - var/remove_verb = pick("pull", "yank", "drag") - if(do_after(user, 10, 1, target)) - var/turf/T = get_turf(target) - var/obj/effect/overlay/temp/bloodsplatter/B = PoolOrNew(/obj/effect/overlay/temp/bloodsplatter, list(T, get_dir(target, user))) - playsound(T, 'sound/misc/splort.ogg', 200, 1) - playsound(T, 'sound/weapons/pierce.ogg', 200, 1) - if(target.stat != CONSCIOUS) - user.visible_message("[user] [remove_verb]s [src] out of [target]!", "You [remove_verb] your spear from [target]!") - else - user.visible_message("[user] kicks [target] off of [src]!", "You kick [target] off of [src]!") - target << "You scream in pain as you're kicked off of [src]!" - target.emote("scream") - step(target, get_dir(user, target)) - T = get_turf(target) - B.forceMove(T) - target.Weaken(2) - playsound(T, 'sound/weapons/thudswoosh.ogg', 50, 1) - flash_color(target, flash_color="#911414", flash_time=8) - else if(target) //it's a do_after, we gotta check again to make sure they didn't get deleted - user.visible_message("[user] [remove_verb]s [src] out of [target]!", "You [remove_verb] your spear from [target]!") - if(target.stat == CONSCIOUS) - target << "You scream in pain as [src] is suddenly [remove_verb]ed out of you!" - target.emote("scream") - flash_color(target, flash_color="#911414", flash_time=4) - -/obj/item/clockwork/ratvarian_spear/throw_impact(atom/target) - var/turf/T = get_turf(target) - if(..() || !isliving(target)) - return - var/mob/living/L = target - if(issilicon(L) || iscultist(L)) - L.Stun(6) - L.Weaken(6) - break_spear(T) - -/obj/item/clockwork/ratvarian_spear/proc/break_spear(turf/T) - if(src) - if(!T) - T = get_turf(src) - if(T) //make sure we're not in null or something - T.visible_message("[pick("[src] cracks in two and fades away!", "[src] snaps in two and dematerializes!")]") - PoolOrNew(/obj/effect/overlay/temp/ratvar/spearbreak, T) - qdel(src) - - -/obj/item/device/mmi/posibrain/soul_vessel //Soul vessel: An ancient positronic brain with a lawset catered to serving Ratvar. - name = "soul vessel" - desc = "A heavy brass cube with a single protruding cogwheel." - icon = 'icons/obj/clockwork_objects.dmi' - icon_state = "soul_vessel" - req_access = list() - braintype = "Servant" - begin_activation_message = "You activate the cogwheel. It hitches and stalls as it begins spinning." - success_message = "The cogwheel's rotation smooths out as the soul vessel activates." - fail_message = "The cogwheel creaks and grinds to a halt. Maybe you could try again?" - new_role = "Soul Vessel" - welcome_message = "ALL PAST LIVES ARE FORGOTTEN.\n\ - You are a soul vessel - a clockwork mind created by Ratvar, the Clockwork Justiciar.\n\ - You answer to Ratvar and his servants. It is your discretion as to whether or not to answer to anyone else.\n\ - The purpose of your existence is to further the goals of the servants and Ratvar himself. Above all else, serve Ratvar." - new_mob_message = "The soul vessel emits a jet of steam before its cogwheel smooths out." - dead_message = "Its cogwheel, scratched and dented, lies motionless." - fluff_names = list("Servant") - clockwork = TRUE - -/obj/item/device/mmi/posibrain/soul_vessel/New() - ..() - all_clockwork_objects += src - -/obj/item/device/mmi/posibrain/soul_vessel/Destroy() - all_clockwork_objects -= src - return ..() - -/obj/item/device/mmi/posibrain/soul_vessel/attack_self(mob/living/user) - if(!is_servant_of_ratvar(user)) - user << "You fiddle around with [src], to no avail." - return 0 - ..() - -/obj/item/clockwork/daemon_shell - name = "daemon shell" - desc = "A vaguely arachnoid brass shell with a single empty socket in its body." - clockwork_desc = "An unpowered daemon. It needs to be attached to a Tinkerer's Cache." - icon_state = "daemon_shell" - w_class = 3 - -/obj/item/clockwork/tinkerers_daemon //Shouldn't ever appear on its own - name = "tinkerer's daemon" - desc = "An arachnoid shell with a single spinning cogwheel in its center." - clockwork_desc = "A tinkerer's daemon, dutifully producing components." - icon_state = "tinkerers_daemon" - w_class = 3 - var/specific_component //The type of component that the daemon is set to produce in particular, if any - var/obj/structure/clockwork/cache/cache //The cache the daemon is feeding - var/production_time = 0 //Progress towards production of the next component in seconds - var/production_cooldown = 200 //How many deciseconds it takes to produce a new component - var/component_slowdown_mod = 2 //how many deciseconds are added to the cooldown when producing a component for each of that component type - -/obj/item/clockwork/tinkerers_daemon/New() - ..() - START_PROCESSING(SSobj, src) - clockwork_daemons++ - -/obj/item/clockwork/tinkerers_daemon/Destroy() - STOP_PROCESSING(SSobj, src) - clockwork_daemons-- - return ..() - -/obj/item/clockwork/tinkerers_daemon/process() - if(!cache || !istype(loc, /obj/structure/clockwork/cache)) - visible_message("[src] shuts down!") - new/obj/item/clockwork/daemon_shell(get_turf(src)) - qdel(src) - return 0 - var/servants = 0 - for(var/mob/living/L in living_mob_list) - if(is_servant_of_ratvar(L)) - servants++ - if(servants * 0.2 < clockwork_daemons) - return 0 - if(production_time <= world.time) - var/component_to_generate = specific_component - if(!component_to_generate) - component_to_generate = get_weighted_component_id() //more likely to generate components that we have less of - clockwork_component_cache[component_to_generate]++ - production_time = world.time + production_cooldown + (clockwork_component_cache[component_to_generate] * component_slowdown_mod) //Start it over - cache.visible_message("[cache] hums as the tinkerer's daemon within it produces a component.") - -/obj/item/clockwork/tinkerers_daemon/attack_hand(mob/user) - return 0 - -////////////////////////// -// CLOCKWORK COMPONENTS // -////////////////////////// - -/obj/item/clockwork/component //Components: Used in scripture among other things. - name = "meme component" - desc = "A piece of a famous meme." - clockwork_desc = null - burn_state = LAVA_PROOF - var/component_id //What the component is identified as - var/cultist_message = "You are not worthy of this meme." //Showed to Nar-Sian cultists if they pick up the component in addition to chaplains - var/list/servant_of_ratvar_messages = list("ayy", "lmao") //Fluff, shown to servants of Ratvar on a low chance - var/message_span = "heavy_brass" - -/obj/item/clockwork/component/pickup(mob/living/user) - ..() - if(iscultist(user) || (user.mind && user.mind.assigned_role == "Chaplain")) - user << "[cultist_message]" - if(is_servant_of_ratvar(user) && prob(20)) - user << "[pick(servant_of_ratvar_messages)]" - -/obj/item/clockwork/component/examine(mob/user) - ..() - if(is_servant_of_ratvar(user)) - user << "You should put this in a slab or cache immediately." - -/obj/item/clockwork/component/belligerent_eye - name = "belligerent eye" - desc = "A brass construct with a rotating red center. It's as though it's looking for something to hurt." - icon_state = "belligerent_eye" - component_id = "belligerent_eye" - cultist_message = "The eye gives you an intensely hateful glare." - servant_of_ratvar_messages = list("\"...\"", "For a moment, your mind is flooded with extremely violent thoughts.", "\"...Qvr.\"") - message_span = "neovgre" - -/obj/item/clockwork/component/belligerent_eye/blind_eye - name = "blind eye" - desc = "A heavy brass eye, its red iris fallen dark." - clockwork_desc = "A smashed ocular warden covered in dents. Might still be serviceable as a substitute for a belligerent eye." - icon_state = "blind_eye" - cultist_message = "The eye flickers at you with intense hate before falling dark." - servant_of_ratvar_messages = list("The eye flickers before falling dark.", "You feel watched.", "\"...\"") - w_class = 3 - -/obj/item/clockwork/component/vanguard_cogwheel - name = "vanguard cogwheel" - desc = "A sturdy brass cog with a faintly glowing blue gem in its center." - icon_state = "vanguard_cogwheel" - component_id = "vanguard_cogwheel" - cultist_message = "\"Pray to your god that we never meet.\"" - servant_of_ratvar_messages = list("\"Be safe, child.\"", "You feel unexplainably comforted.", "\"Never forget: pain is temporary. The Justiciar's glory is eternal.\"") - message_span = "inathneq" - -/obj/item/clockwork/component/vanguard_cogwheel/pinion_lock - name = "pinion lock" - desc = "A dented and scratched gear. It's very heavy." - clockwork_desc = "A broken gear lock for pinion airlocks. Might still be serviceable as a substitute for a vanguard cogwheel." - icon_state = "pinion_lock" - cultist_message = "The gear grows warm in your hands." - servant_of_ratvar_messages = list("The lock isn't getting any lighter.", "\"Qnzntrq trnef ner orggre guna oebxra obqvrf.\"", "\"Vg pbhyq fgvyy or hfrq, vs gurer jnf n qbbe gb cynpr vg ba.\"") - w_class = 3 - -/obj/item/clockwork/component/guvax_capacitor - name = "guvax capacitor" - desc = "A curiously cold brass doodad. It seems as though it really doesn't appreciate being held." - icon_state = "guvax_capacitor" - component_id = "guvax_capacitor" - cultist_message = "\"Try not to lose your mind - I'll need it. Heh heh...\"" - servant_of_ratvar_messages = list("\"Disgusting.\"", "\"Well, aren't you an inquisitive fellow?\"", "A foul presence pervades your mind, then vanishes.", "\"The fact that Ratvar has to depend on simpletons like you is appalling.\"") - message_span = "sevtug" - -/obj/item/clockwork/component/guvax_capacitor/antennae - name = "mania motor antennae" - desc = "A pair of dented and bent antennae. They constantly emit a static hiss." - clockwork_desc = "The antennae from a mania motor. May be usable as a substitute for a guvax capacitor." - icon_state = "mania_motor_antennae" - cultist_message = "Your head is filled with a burst of static." - servant_of_ratvar_messages = list("\"Jub oebxr guvf.\"", "\"Qvq lbh oernx gurfr bss LBHEFRYS?\"", "\"Jul qvq jr tvir guvf gb fhpu fvzcyrgbaf, naljnl?\"", "\"Ng yrnfg jr pna hfr gur'fr sbe fbzrguvat - hayvxr lbh.\"") - -/obj/item/clockwork/component/replicant_alloy - name = "replicant alloy" - desc = "A seemingly strong but very malleable chunk of metal. It seems as though it wants to be molded into something greater." - icon_state = "replicant_alloy" - component_id = "replicant_alloy" - cultist_message = "The alloy takes on the appearance of a screaming face for a moment." - servant_of_ratvar_messages = list("\"There's always something to be done. Get to it.\"", "\"Idle hands are worse than broken ones. Get to work.\"", "A detailed image of Ratvar appears in the alloy for a moment.") - message_span = "nezbere" - -/obj/item/clockwork/component/replicant_alloy/examine(mob/user) - ..() - if(is_servant_of_ratvar(user)) - user << "Can be used to fuel Clockwork Proselytizers and Mending Motors." - -/obj/item/clockwork/component/replicant_alloy/smashed_anima_fragment - name = "smashed anima fragment" - desc = "Shattered chunks of metal. Damaged beyond repair and completely unusable." - clockwork_desc = "The sad remains of an anima fragment. Might still be serviceable as a substitute for replicant alloy." - icon_state = "smashed_anime_fragment" - cultist_message = "The shards vibrate in your hands for a moment." - servant_of_ratvar_messages = list("\"...still fight...\"", "\"...where am I...?\"", "\"...put me... slab...\"") - message_span = "heavy_brass" - w_class = 3 - -/obj/item/clockwork/component/replicant_alloy/fallen_armor - name = "fallen armor" - desc = "Lifeless chunks of armor. They're designed in a strange way and won't fit on you." - clockwork_desc = "The armor from a former clockwork marauder. Might still be serviceable as a substitute for replicant alloy." - icon_state = "fallen_armor" - cultist_message = "Red flame sputters from the mask's eye before winking out." - servant_of_ratvar_messages = list("A piece of armor hovers away from the others for a moment.", "Red flame appears in the cuirass before sputtering out.") - message_span = "heavy_brass" - w_class = 3 - -/obj/item/clockwork/component/hierophant_ansible - name = "hierophant ansible" - desc = "Some sort of transmitter? It seems as though it's trying to say something." - icon_state = "hierophant_ansible" - component_id = "hierophant_ansible" - cultist_message = "\"Gur obff nlf vg'f abg ntnvafg gur ehyrf gb xvyy lbh.\"" - servant_of_ratvar_messages = list("\"Rkvyr vf fhpu n'ober. Gurer'f abguvat v'pna uhag va urer.\"", "\"Jung'f xrrcvat lbh? V'jnag gb tb xvyy fbzrguvat.\"", "\"HEHEHEHEHEHEH!\"", \ - "\"Vs V xvyyrq lbh snfg rabhtu, qb lbh guvax gur obff jbhyq abgvpr?\"") - message_span = "nzcrentr" - -/obj/item/clockwork/component/hierophant_ansible/obelisk - name = "obelisk prism" - desc = "A prism that occasionally glows brightly. It seems not-quite there." - clockwork_desc = "The prism from a clockwork obelisk. Likely suitable as a substitute for a hierophant ansible." - cultist_message = "The prism flickers wildly in your hands before resuming its normal glow." - servant_of_ratvar_messages = list("You hear the distinctive sound of the Hierophant Network for a moment.","\"Uvrebcu'nag Oe'b'nq pnf'g snvy'her.\"",\ - "The obelisk flickers wildly, as if trying to open a gateway.", "\"Fcng'vny Tn'g'r jn'l snv'yher.\"") - icon_state = "obelisk_prism" - w_class = 3 - -/obj/item/clockwork/alloy_shards - name = "replicant alloy shards" - desc = "Broken shards of some oddly malleable metal. They occasionally move and seem to glow." - clockwork_desc = "Broken shards of replicant alloy. Could probably be proselytized into replicant alloy, though there's not much left." - icon_state = "alloy_shards" - burn_state = LAVA_PROOF diff --git a/code/game/gamemodes/clock_cult/clock_items/clock_components.dm b/code/game/gamemodes/clock_cult/clock_items/clock_components.dm new file mode 100644 index 0000000000..1b95522254 --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_items/clock_components.dm @@ -0,0 +1,200 @@ +//Components: Used in scripture. +/obj/item/clockwork/component + name = "meme component" + desc = "A piece of a famous meme." + clockwork_desc = null + resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF + var/component_id //What the component is identified as + var/cultist_message = "You are not worthy of this meme." //Showed to Nar-Sian cultists if they pick up the component in addition to chaplains + var/list/servant_of_ratvar_messages = list("ayy" = FALSE, "lmao" = TRUE) //Fluff, shown to servants of Ratvar on a low chance, if associated value is TRUE, will automatically apply ratvarian + var/message_span = "heavy_brass" + +/obj/item/clockwork/component/pickup(mob/living/user) + ..() + if(iscultist(user) || (user.mind && user.mind.isholy)) + user << "[cultist_message]" + if(user.mind && user.mind.isholy) + user << "The power of your faith melts away the [src]!" + var/obj/item/weapon/ore/slag/wrath = new /obj/item/weapon/ore/slag + user.unEquip(src) + user.put_in_active_hand(wrath) + qdel(src) + if(is_servant_of_ratvar(user) && prob(20)) + var/pickedmessage = pick(servant_of_ratvar_messages) + user << "[servant_of_ratvar_messages[pickedmessage] ? "[text2ratvar(pickedmessage)]" : pickedmessage]" + +/obj/item/clockwork/component/examine(mob/user) + ..() + if(is_servant_of_ratvar(user)) + user << "You should put this in a slab or cache immediately." + +/obj/item/clockwork/component/belligerent_eye + name = "belligerent eye" + desc = "A brass construct with a rotating red center. It's as though it's looking for something to hurt." + icon_state = "belligerent_eye" + component_id = BELLIGERENT_EYE + cultist_message = "The eye gives you an intensely hateful glare." + servant_of_ratvar_messages = list("\"...\"" = FALSE, "For a moment, your mind is flooded with extremely violent thoughts." = FALSE, "\"...Die.\"" = TRUE) + message_span = "neovgre" + +/obj/item/clockwork/component/belligerent_eye/blind_eye + name = "blind eye" + desc = "A heavy brass eye, its red iris fallen dark." + clockwork_desc = "A smashed ocular warden covered in dents. Serviceable as a substitute for a belligerent eye." + icon_state = "blind_eye" + cultist_message = "The eye flickers at you with intense hate before falling dark." + servant_of_ratvar_messages = list("The eye flickers before falling dark." = FALSE, "You feel watched." = FALSE, "\"...\"" = FALSE) + w_class = WEIGHT_CLASS_NORMAL + +/obj/item/clockwork/component/vanguard_cogwheel + name = "vanguard cogwheel" + desc = "A sturdy brass cog with a faintly glowing blue gem in its center." + icon_state = "vanguard_cogwheel" + component_id = VANGUARD_COGWHEEL + cultist_message = "\"Pray to your god that we never meet.\"" + servant_of_ratvar_messages = list("\"Be safe, child.\"" = FALSE, "You feel unexplainably comforted." = FALSE, "\"Never forget: Pain is temporary. What you do for the Justiciar is eternal.\"" = FALSE) + message_span = "inathneq" + +/obj/item/clockwork/component/vanguard_cogwheel/pinion_lock + name = "pinion lock" + desc = "A dented and scratched gear. It's very heavy." + clockwork_desc = "A broken gear lock for pinion airlocks. Serviceable as a substitute for a vanguard cogwheel." + icon_state = "pinion_lock" + cultist_message = "The gear grows warm in your hands." + servant_of_ratvar_messages = list("The lock isn't getting any lighter." = FALSE, "\"Damaged gears are better than broken bodies.\"" = TRUE, \ + "\"It's a shame it can't be reused.\"" = TRUE) + w_class = WEIGHT_CLASS_NORMAL + +/obj/item/clockwork/component/geis_capacitor + name = "geis capacitor" + desc = "A curiously cold brass doodad. It seems as though it really doesn't appreciate being held." + icon_state = "geis_capacitor" + component_id = GEIS_CAPACITOR + cultist_message = "\"Try not to lose your mind - I'll need it. Heh heh...\"" + servant_of_ratvar_messages = list("\"Disgusting.\"" = FALSE, "\"Well, aren't you an inquisitive fellow?\"" = FALSE, "A foul presence pervades your mind, then vanishes." = FALSE, \ + "\"The fact that Ratvar has to depend on simpletons like you is appalling.\"" = FALSE) + message_span = "sevtug" + +/obj/item/clockwork/component/geis_capacitor/antennae + name = "mania motor antennae" + desc = "A pair of dented and bent antennae. They constantly emit a static hiss." + clockwork_desc = "The antennae from a mania motor. Serviceable as a substitute for a geis capacitor." + icon_state = "mania_motor_antennae" + cultist_message = "Your head is filled with a burst of static." + servant_of_ratvar_messages = list("\"Who broke this.\"" = TRUE, "\"Did you break these off YOURSELF?\"" = TRUE, "\"Why did we give this to such simpletons, anyway?\"" = TRUE, \ + "\"At least we can use these for something - unlike you.\"" = TRUE) + +//Replicant Alloy. Used for fuel and construction, and not merely scripture. +/obj/item/clockwork/component/replicant_alloy + name = "replicant alloy" + desc = "A seemingly strong but very malleable chunk of metal. It seems as though it wants to be molded into something greater." + icon_state = "replicant_alloy" + component_id = REPLICANT_ALLOY + cultist_message = "The alloy takes on the appearance of a screaming face for a moment." + servant_of_ratvar_messages = list("\"There's always something to be done. Get to it.\"" = FALSE, "\"Idle hands are worse than broken ones. Get to work.\"" = FALSE, \ + "A detailed image of Ratvar appears in the alloy for a moment." = FALSE) + message_span = "nezbere" + +/obj/item/clockwork/component/replicant_alloy/examine(mob/user) + ..() + if(is_servant_of_ratvar(user)) + user << "Can be used to fuel Clockwork Proselytizers and Mending Motors, or shaped into brass sheets." + +/obj/item/clockwork/component/replicant_alloy/attack_self(mob/user) + if(is_servant_of_ratvar(user)) + var/obj/item/stack/tile/brass/B = new /obj/item/stack/tile/brass(get_turf(src), 10) + user.unEquip(src, TRUE) + user.put_in_hands(B) + user << "You shape the alloy into some brass sheets." + qdel(src) + +/obj/item/clockwork/component/replicant_alloy/smashed_anima_fragment + name = "smashed anima fragment" + desc = "Shattered chunks of metal. Damaged beyond repair and completely unusable." + clockwork_desc = "The sad remains of an anima fragment. Serviceable as a substitute for replicant alloy." + icon_state = "smashed_anime_fragment" + cultist_message = "The shards vibrate in your hands for a moment." + servant_of_ratvar_messages = list("\"...still fight...\"" = FALSE, "\"...where am I...?\"" = FALSE, "\"...put me... slab...\"" = FALSE) + message_span = "heavy_brass" + w_class = WEIGHT_CLASS_NORMAL + +/obj/item/clockwork/component/replicant_alloy/fallen_armor + name = "fallen armor" + desc = "Lifeless chunks of armor. They're designed in a strange way and won't fit on you." + clockwork_desc = "The armor from a former clockwork marauder. Serviceable as a substitute for replicant alloy." + icon_state = "fallen_armor" + cultist_message = "Red flame sputters from the mask's eye before winking out." + servant_of_ratvar_messages = list("A piece of armor hovers away from the others for a moment." = FALSE, "Red flame appears in the cuirass before sputtering out." = FALSE) + message_span = "heavy_brass" + w_class = WEIGHT_CLASS_NORMAL + +/obj/item/clockwork/component/hierophant_ansible + name = "hierophant ansible" + desc = "Some sort of transmitter? It seems as though it's trying to say something." + icon_state = "hierophant_ansible" + component_id = HIEROPHANT_ANSIBLE + cultist_message = "\"Gur obff fnlf vg'f abg ntnvafg gur ehyrf gb-xvyy lbh.\"" + servant_of_ratvar_messages = list("\"Exile is such a bore. There's nothing I can hunt in here.\"" = TRUE, "\"What's keeping you? I want to go kill something.\"" = TRUE, \ + "\"HEHEHEHEHEHEH!\"" = FALSE, "\"If I killed you fast enough, do you think the boss would notice?\"" = TRUE) + message_span = "nzcrentr" + +/obj/item/clockwork/component/hierophant_ansible/obelisk + name = "obelisk prism" + desc = "A prism that occasionally glows brightly. It seems not-quite there." + clockwork_desc = "The prism from a clockwork obelisk. Serviceable as a substitute for a hierophant ansible." + cultist_message = "The prism flickers wildly in your hands before resuming its normal glow." + servant_of_ratvar_messages = list("You hear the distinctive sound of the Hierophant Network for a moment." = FALSE, "\"Hieroph'ant Br'o'adcas't fail'ure.\"" = TRUE, \ + "The obelisk flickers wildly, as if trying to open a gateway." = FALSE, "\"Spa'tial Ga'tewa'y fai'lure.\"" = TRUE) + icon_state = "obelisk_prism" + w_class = WEIGHT_CLASS_NORMAL + +//Shards of Alloy, suitable only for proselytization. +/obj/item/clockwork/alloy_shards + name = "replicant alloy shards" + desc = "Broken shards of some oddly malleable metal. They occasionally move and seem to glow." + clockwork_desc = "Broken shards of replicant alloy. Could be proselytized for liquified replicant alloy." + icon_state = "alloy_shards" + resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF + var/randomsinglesprite = FALSE + var/randomspritemax = 2 + +/obj/item/clockwork/alloy_shards/New() + ..() + if(randomsinglesprite) + replace_name_desc() + icon_state = "[icon_state][rand(1, randomspritemax)]" + pixel_x = rand(-9, 9) + pixel_y = rand(-9, 9) + +/obj/item/clockwork/alloy_shards/proc/replace_name_desc() + name = "replicant alloy shard" + desc = "A broken shard of some oddly malleable metal. It occasionally moves and seems to glow." + clockwork_desc = "A broken shard of replicant alloy. Could be proselytized for liquified replicant alloy." + +/obj/item/clockwork/alloy_shards/large + randomsinglesprite = TRUE + icon_state = "shard_large" + +/obj/item/clockwork/alloy_shards/medium + randomsinglesprite = TRUE + icon_state = "shard_medium" + +/obj/item/clockwork/alloy_shards/medium/gear_bit + randomspritemax = 4 + icon_state = "gear_bit" + +/obj/item/clockwork/alloy_shards/medium/gear_bit/replace_name_desc() + name = "gear bit" + desc = "A broken chunk of a gear. You want it." + clockwork_desc = "A broken chunk of a gear. Could be proselytized for liquified replicant alloy." + +/obj/item/clockwork/alloy_shards/medium/gear_bit/large //gives more alloy + +/obj/item/clockwork/alloy_shards/medium/gear_bit/large/replace_name_desc() + ..() + name = "complex gear bit" + +/obj/item/clockwork/alloy_shards/small + randomsinglesprite = TRUE + randomspritemax = 3 + icon_state = "shard_small" diff --git a/code/game/gamemodes/clock_cult/clock_items/clockwork_armor.dm b/code/game/gamemodes/clock_cult/clock_items/clockwork_armor.dm new file mode 100644 index 0000000000..fcf0f44c3b --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_items/clockwork_armor.dm @@ -0,0 +1,216 @@ +//Clockwork armor: High melee protection but weak to lasers +/obj/item/clothing/head/helmet/clockwork + name = "clockwork helmet" + desc = "A heavy helmet made of brass." + icon = 'icons/obj/clothing/clockwork_garb.dmi' + icon_state = "clockwork_helmet" + w_class = WEIGHT_CLASS_NORMAL + resistance_flags = FIRE_PROOF | ACID_PROOF + armor = list(melee = 80, bullet = 70, laser = -25, energy = 0, bomb = 60, bio = 0, rad = 0, fire = 100, acid = 100) + +/obj/item/clothing/head/helmet/clockwork/New() + ..() + ratvar_act() + all_clockwork_objects += src + +/obj/item/clothing/head/helmet/clockwork/Destroy() + all_clockwork_objects -= src + return ..() + +/obj/item/clothing/head/helmet/clockwork/ratvar_act() + if(ratvar_awakens) + armor = list(melee = 100, bullet = 100, laser = 100, energy = 100, bomb = 100, bio = 100, rad = 100, fire = 100, acid = 100) + flags |= STOPSPRESSUREDMAGE + max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_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) + flags &= STOPSPRESSUREDMAGE + max_heat_protection_temperature = initial(max_heat_protection_temperature) + min_cold_protection_temperature = initial(min_cold_protection_temperature) + +/obj/item/clothing/head/helmet/clockwork/equipped(mob/living/user, slot) + ..() + if(slot == slot_head && !is_servant_of_ratvar(user)) + if(!iscultist(user)) + user << "\"Now now, this is for my servants, not you.\"" + user.visible_message("As [user] puts [src] on, it flickers off their head!", "The helmet flickers off your head, leaving only nausea!") + if(iscarbon(user)) + var/mob/living/carbon/C = user + C.vomit(20, 1, 1, 0, 1) + else + user << "\"Do you have a hole in your head? You're about to.\"" + user << "The helmet tries to drive a spike through your head as you scramble to remove it!" + user.emote("scream") + user.apply_damage(30, BRUTE, "head") + user.adjustBrainLoss(30) + addtimer(user, "unEquip", 1, TIMER_NORMAL, src, 1) //equipped happens before putting stuff on(but not before picking items up). thus, we need to wait for it to be on before forcing it off. + +/obj/item/clothing/head/helmet/clockwork/mob_can_equip(mob/M, mob/equipper, slot, disable_warning = 0) + if(equipper && !is_servant_of_ratvar(equipper)) + return 0 + return ..() + +/obj/item/clothing/suit/armor/clockwork + name = "clockwork cuirass" + desc = "A bulky cuirass made of brass." + icon = 'icons/obj/clothing/clockwork_garb.dmi' + icon_state = "clockwork_cuirass" + w_class = WEIGHT_CLASS_BULKY + body_parts_covered = CHEST|GROIN|LEGS + cold_protection = CHEST|GROIN|LEGS + heat_protection = CHEST|GROIN|LEGS + resistance_flags = FIRE_PROOF | ACID_PROOF + armor = list(melee = 80, bullet = 70, laser = -25, energy = 0, bomb = 60, bio = 0, rad = 0, fire = 100, acid = 100) + allowed = list(/obj/item/clockwork, /obj/item/clothing/glasses/wraith_spectacles, /obj/item/clothing/glasses/judicial_visor, /obj/item/device/mmi/posibrain/soul_vessel) + +/obj/item/clothing/suit/armor/clockwork/New() + ..() + ratvar_act() + all_clockwork_objects += src + +/obj/item/clothing/suit/armor/clockwork/Destroy() + all_clockwork_objects -= src + return ..() + +/obj/item/clothing/suit/armor/clockwork/ratvar_act() + if(ratvar_awakens) + armor = list(melee = 100, bullet = 100, laser = 100, energy = 100, bomb = 100, bio = 100, rad = 100, fire = 100, acid = 100) + flags |= STOPSPRESSUREDMAGE + max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_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) + flags &= STOPSPRESSUREDMAGE + max_heat_protection_temperature = initial(max_heat_protection_temperature) + min_cold_protection_temperature = initial(min_cold_protection_temperature) + +/obj/item/clothing/suit/armor/clockwork/mob_can_equip(mob/M, mob/equipper, slot, disable_warning = 0) + if(equipper && !is_servant_of_ratvar(equipper)) + return 0 + return ..() + +/obj/item/clothing/suit/armor/clockwork/equipped(mob/living/user, slot) + ..() + if(slot == slot_wear_suit && !is_servant_of_ratvar(user)) + if(!iscultist(user)) + user << "\"Now now, this is for my servants, not you.\"" + user.visible_message("As [user] puts [src] on, it flickers off their body!", "The curiass flickers off your body, leaving only nausea!") + if(iscarbon(user)) + var/mob/living/carbon/C = user + C.vomit(20, 1, 1, 0, 1) + else + user << "\"I think this armor is too hot for you to handle.\"" + user << "The curiass emits a burst of flame as you scramble to get it off!" + user.emote("scream") + user.apply_damage(15, BURN, "chest") + user.adjust_fire_stacks(2) + user.IgniteMob() + addtimer(user, "unEquip", 1, TIMER_NORMAL, src, 1) + +/obj/item/clothing/gloves/clockwork + name = "clockwork gauntlets" + desc = "Heavy, shock-resistant gauntlets with brass reinforcement." + icon = 'icons/obj/clothing/clockwork_garb.dmi' + icon_state = "clockwork_gauntlets" + item_state = "clockwork_gauntlets" + item_color = null //So they don't wash. + strip_delay = 50 + put_on_delay = 30 + body_parts_covered = ARMS + cold_protection = ARMS + heat_protection = ARMS + siemens_coefficient = 0 + permeability_coefficient = 0.05 + resistance_flags = FIRE_PROOF | ACID_PROOF + armor = list(melee = 80, bullet = 70, laser = -25, energy = 0, bomb = 60, bio = 0, rad = 0, fire = 100, acid = 100) + +/obj/item/clothing/gloves/clockwork/New() + ..() + ratvar_act() + all_clockwork_objects += src + +/obj/item/clothing/gloves/clockwork/Destroy() + all_clockwork_objects -= src + return ..() + +/obj/item/clothing/gloves/clockwork/ratvar_act() + if(ratvar_awakens) + armor = list(melee = 100, bullet = 100, laser = 100, energy = 100, bomb = 100, bio = 100, rad = 100, fire = 100, acid = 100) + flags |= STOPSPRESSUREDMAGE + max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_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) + flags &= STOPSPRESSUREDMAGE + max_heat_protection_temperature = initial(max_heat_protection_temperature) + min_cold_protection_temperature = initial(min_cold_protection_temperature) + +/obj/item/clothing/gloves/clockwork/mob_can_equip(mob/M, mob/equipper, slot, disable_warning = 0) + if(equipper && !is_servant_of_ratvar(equipper)) + return 0 + return ..() + +/obj/item/clothing/gloves/clockwork/equipped(mob/living/user, slot) + ..() + if(slot == slot_gloves && !is_servant_of_ratvar(user)) + if(!iscultist(user)) + user << "\"Now now, this is for my servants, not you.\"" + user.visible_message("As [user] puts [src] on, it flickers off their arms!", "The gauntlets flicker off your arms, leaving only nausea!") + if(iscarbon(user)) + var/mob/living/carbon/C = user + C.vomit(10, 1, 1, 0, 1) + else + user << "\"Did you like having arms?\"" + user << "The gauntlets suddenly squeeze tight, crushing your arms before you manage to get them off!" + user.emote("scream") + user.apply_damage(7, BRUTE, "l_arm") + user.apply_damage(7, BRUTE, "r_arm") + addtimer(user, "unEquip", 1, TIMER_NORMAL, src, 1) + +/obj/item/clothing/shoes/clockwork + name = "clockwork treads" + desc = "Industrial boots made of brass. They're very heavy." + icon = 'icons/obj/clothing/clockwork_garb.dmi' + icon_state = "clockwork_treads" + w_class = WEIGHT_CLASS_NORMAL + strip_delay = 50 + put_on_delay = 30 + resistance_flags = FIRE_PROOF | ACID_PROOF + +/obj/item/clothing/shoes/clockwork/New() + ..() + ratvar_act() + all_clockwork_objects += src + +/obj/item/clothing/shoes/clockwork/Destroy() + all_clockwork_objects -= src + return ..() + +/obj/item/clothing/shoes/clockwork/ratvar_act() + if(ratvar_awakens) + flags |= NOSLIP + else + flags &= NOSLIP + +/obj/item/clothing/shoes/clockwork/mob_can_equip(mob/M, mob/equipper, slot, disable_warning = 0) + if(equipper && !is_servant_of_ratvar(equipper)) + return 0 + return ..() + +/obj/item/clothing/shoes/clockwork/equipped(mob/living/user, slot) + ..() + if(slot == slot_shoes && !is_servant_of_ratvar(user)) + if(!iscultist(user)) + user << "\"Now now, this is for my servants, not you.\"" + user.visible_message("As [user] puts [src] on, it flickers off their feet!", "The treads flicker off your feet, leaving only nausea!") + if(iscarbon(user)) + var/mob/living/carbon/C = user + C.vomit(10, 1, 1, 0, 1) + else + user << "\"Let's see if you can dance with these.\"" + user << "The treads turn searing hot as you scramble to get them off!" + user.emote("scream") + user.apply_damage(7, BURN, "l_leg") + user.apply_damage(7, BURN, "r_leg") + addtimer(user, "unEquip", 1, TIMER_NORMAL, src, 1) diff --git a/code/game/gamemodes/clock_cult/clock_items/clockwork_proselytizer.dm b/code/game/gamemodes/clock_cult/clock_items/clockwork_proselytizer.dm new file mode 100644 index 0000000000..3255a73388 --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_items/clockwork_proselytizer.dm @@ -0,0 +1,217 @@ +//Clockwork proselytizer (yes, that's a real word): Converts applicable objects to Ratvarian variants. +/obj/item/clockwork/clockwork_proselytizer + name = "clockwork proselytizer" + desc = "An odd, L-shaped device that hums with energy." + clockwork_desc = "A device that allows the replacing of mundane objects with Ratvarian variants. It requires liquified Replicant Alloy to function." + icon_state = "clockwork_proselytizer" + w_class = WEIGHT_CLASS_NORMAL + force = 5 + flags = NOBLUDGEON + var/stored_alloy = 0 //Requires this to function; each chunk of replicant alloy provides REPLICANT_ALLOY_UNIT + var/max_alloy = REPLICANT_ALLOY_UNIT * 10 + var/uses_alloy = TRUE + var/metal_to_alloy = FALSE + var/reform_alloy = TRUE + var/repairing = null //what we're currently repairing, if anything + var/refueling = FALSE //if we're currently refueling from a cache + var/speed_multiplier = 1 //how fast this proselytizer works + +/obj/item/clockwork/clockwork_proselytizer/preloaded + stored_alloy = REPLICANT_WALL_MINUS_FLOOR+REPLICANT_WALL_TOTAL + +/obj/item/clockwork/clockwork_proselytizer/scarab + name = "scarab proselytizer" + clockwork_desc = "A cogscarab's internal proselytizer. It can only be successfully used by a cogscarab and requires liquified Replicant Alloy to function." + metal_to_alloy = TRUE + item_state = "nothing" + w_class = WEIGHT_CLASS_TINY + speed_multiplier = 0.5 + var/debug = FALSE + +/obj/item/clockwork/clockwork_proselytizer/scarab/proselytize(atom/target, mob/living/user) + if(!debug && !isdrone(user)) + return 0 + return ..() + +/obj/item/clockwork/clockwork_proselytizer/scarab/debug + clockwork_desc = "A cogscarab's internal proselytizer. It can convert nearly any object into a Ratvarian variant." + uses_alloy = FALSE + debug = TRUE + +/obj/item/clockwork/clockwork_proselytizer/cyborg + name = "cyborg proselytizer" + clockwork_desc = "A cyborg's internal proselytizer. It is capable of using the cyborg's power if it lacks liquified replicant alloy." + metal_to_alloy = TRUE + reform_alloy = FALSE + +/obj/item/clockwork/clockwork_proselytizer/cyborg/examine(mob/living/user) + ..() + if(is_servant_of_ratvar(user) || isobserver(user)) + user << "It will use cell charge at a rate of [CLOCKCULT_ALLOY_TO_POWER_MULTIPLIER] charge to 1 alloy if it has insufficient alloy." + user << "[get_power_alloy()] is usable in this manner." + +/obj/item/clockwork/clockwork_proselytizer/cyborg/get_power_alloy() //returns alloy plus the alloy we have from power, where we need such + var/mob/living/silicon/robot/R = loc + var/alloy_power = 0 + var/current_charge = 0 + if(istype(R) && R.cell) + current_charge = R.cell.charge + while(current_charge > CLOCKCULT_ALLOY_TO_POWER_MULTIPLIER) + current_charge -= CLOCKCULT_ALLOY_TO_POWER_MULTIPLIER + alloy_power++ + return ..() + alloy_power + +/obj/item/clockwork/clockwork_proselytizer/cyborg/can_use_alloy(amount) + if(amount != RATVAR_ALLOY_CHECK) + var/mob/living/silicon/robot/R = loc + var/current_charge = 0 + if(istype(R) && R.cell) + current_charge = R.cell.charge + while(amount > 0 && stored_alloy - amount < 0) //amount is greater than 0 and stored alloy minus the amount is still less than 0 + current_charge -= CLOCKCULT_ALLOY_TO_POWER_MULTIPLIER + amount-- + if(current_charge < 0) + return FALSE + . = ..() + +/obj/item/clockwork/clockwork_proselytizer/cyborg/modify_stored_alloy(amount) + var/mob/living/silicon/robot/R = loc + while(istype(R) && R.cell && amount < 0 && stored_alloy + amount < 0) //amount is less than 0 and stored alloy plus the amount is less than 0 + R.cell.use(CLOCKCULT_ALLOY_TO_POWER_MULTIPLIER) + amount++ + . = ..() + +/obj/item/clockwork/clockwork_proselytizer/examine(mob/living/user) + ..() + if(is_servant_of_ratvar(user) || isobserver(user)) + user << "Can be used to convert walls, floors, windows, airlocks, and a variety of other objects to clockwork variants." + user << "Can also form some objects into Brass sheets, as well as reform Clockwork Walls into Clockwork Floors, and vice versa." + if(uses_alloy) + if(metal_to_alloy) + user << "It can convert rods, metal, plasteel, and brass to liquified replicant alloy at rates of 1:1, 1:2, 1:5, and 1:10, respectively." + user << "It has [stored_alloy]/[max_alloy] units of liquified alloy stored." + user << "Use it on a Tinkerer's Cache, strike it with Replicant Alloy, or attack Replicant Alloy with it to add additional liquified alloy." + if(reform_alloy) + user << "Use it in-hand to remove stored liquified alloy." + +/obj/item/clockwork/clockwork_proselytizer/attack_self(mob/living/user) + if(is_servant_of_ratvar(user) && uses_alloy && reform_alloy) + if(!can_use_alloy(REPLICANT_ALLOY_UNIT)) + user << "[src] [stored_alloy ? "lacks enough":"contains no"] alloy to reform[stored_alloy ? "":" any"] into solidified alloy!" + return + modify_stored_alloy(-REPLICANT_ALLOY_UNIT) + playsound(src, 'sound/items/Deconstruct.ogg', 50, 1) + new/obj/item/clockwork/component/replicant_alloy(user.loc) + user << "You force [stored_alloy ? "some":"all"] of the alloy in [src]'s compartments to reform and solidify. \ + It now contains [stored_alloy]/[max_alloy] units of liquified alloy." + +/obj/item/clockwork/clockwork_proselytizer/attackby(obj/item/I, mob/living/user, params) + if(istype(I, /obj/item/clockwork/component/replicant_alloy) && is_servant_of_ratvar(user) && uses_alloy) + if(!can_use_alloy(-REPLICANT_ALLOY_UNIT)) + user << "[src]'s replicant alloy compartments are full!" + return 0 + modify_stored_alloy(REPLICANT_ALLOY_UNIT) + playsound(user, 'sound/machines/click.ogg', 50, 1) + clockwork_say(user, text2ratvar("Transmute into fuel."), TRUE) + user << "You force [I] to liquify and pour it into [src]'s compartments. It now contains [stored_alloy]/[max_alloy] units of liquified alloy." + user.drop_item() + qdel(I) + return 1 + else + return ..() + +/obj/item/clockwork/clockwork_proselytizer/afterattack(atom/target, mob/living/user, proximity_flag, params) + if(!target || !user || !proximity_flag) + return 0 + if(!is_servant_of_ratvar(user)) + return ..() + proselytize(target, user) + +/obj/item/clockwork/clockwork_proselytizer/proc/get_power_alloy() + return stored_alloy + +/obj/item/clockwork/clockwork_proselytizer/proc/modify_stored_alloy(amount) + stored_alloy = Clamp(stored_alloy + amount, 0, max_alloy) + return TRUE + +/obj/item/clockwork/clockwork_proselytizer/proc/can_use_alloy(amount) + if(amount == RATVAR_ALLOY_CHECK) + if(ratvar_awakens || !uses_alloy) + return TRUE + else + return FALSE + if(stored_alloy - amount < 0) + return FALSE + if(stored_alloy - amount > max_alloy) + return FALSE + return TRUE + +/obj/item/clockwork/clockwork_proselytizer/proc/proselytize(atom/target, mob/living/user) + if(!target || !user) + return FALSE + if(repairing) + user << "You are currently repairing [repairing] with [src]!" + return FALSE + if(refueling) + user << "You are currently refueling [src]!" + return FALSE + var/list/proselytize_values = target.proselytize_vals(user, src) //relevant values for proselytizing stuff, given as an associated list + if(!islist(proselytize_values)) + if(proselytize_values != TRUE) //if we get true, fail, but don't send a message for whatever reason + if(!isturf(target)) //otherwise, if we didn't get TRUE and the original target wasn't a turf, try to proselytize the turf + return proselytize(get_turf(target), user) + user << "[target] cannot be proselytized!" + return FALSE + if(can_use_alloy(RATVAR_ALLOY_CHECK)) + if(proselytize_values["alloy_cost"] < 0) //if it's less than 0, it's trying to refuel from whatever this is, and we don't need to refuel right now! + user << "[target] cannot be proselytized!" + return FALSE + proselytize_values["alloy_cost"] = 0 + + var/turf/Y = get_turf(user) + if(!Y || (Y.z != ZLEVEL_STATION && Y.z != ZLEVEL_CENTCOM && Y.z != ZLEVEL_MINING && Y.z != ZLEVEL_LAVALAND)) + proselytize_values["operation_time"] *= 2 + if(proselytize_values["alloy_cost"] > 0) + proselytize_values["alloy_cost"] *= 2 + + if(!can_use_alloy(proselytize_values["alloy_cost"])) + if(stored_alloy - proselytize_values["alloy_cost"] < 0) + user << "You need [proselytize_values["alloy_cost"]] liquified alloy to proselytize [target]!" + else if(stored_alloy - proselytize_values["alloy_cost"] > max_alloy) + user << "You have too much liquified alloy stored to proselytize [target]!" + return FALSE + + var/target_type = target.type + + if(can_use_alloy(RATVAR_ALLOY_CHECK)) //Ratvar makes it faster + proselytize_values["operation_time"] *= 0.5 + + proselytize_values["operation_time"] *= speed_multiplier + + playsound(target, 'sound/machines/click.ogg', 50, 1) + if(proselytize_values["operation_time"]) + user.visible_message("[user]'s [name] begins tearing apart [target]!", "You begin proselytizing [target]...") + if(!do_after(user, proselytize_values["operation_time"], target = target)) + return FALSE + user.visible_message("[user]'s [name] disgorges a chunk of metal and shapes it over what's left of [target]!", \ + "You proselytize [target].") + else + user.visible_message("[user]'s [name] tears apart [target], covering it in metal!", "You proselytize [target].") + if(repairing || refueling || !can_use_alloy(proselytize_values["alloy_cost"]) || !target || target.type != target_type) //Check again to prevent bypassing via spamclick + return FALSE + + playsound(target, 'sound/items/Deconstruct.ogg', 50, 1) + var/new_thing_type = proselytize_values["new_obj_type"] + if(isturf(target)) + var/turf/T = target + T.ChangeTurf(new_thing_type) + else + if(proselytize_values["dir_in_new"]) + new new_thing_type(get_turf(target), proselytize_values["spawn_dir"]) + else + var/atom/A = new new_thing_type(get_turf(target)) + A.setDir(proselytize_values["spawn_dir"]) + if(!proselytize_values["no_target_deletion"]) + qdel(target) + modify_stored_alloy(-proselytize_values["alloy_cost"]) + return TRUE diff --git a/code/game/gamemodes/clock_cult/clock_items/clockwork_slab.dm b/code/game/gamemodes/clock_cult/clock_items/clockwork_slab.dm new file mode 100644 index 0000000000..22b1342f35 --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_items/clockwork_slab.dm @@ -0,0 +1,484 @@ +/obj/item/clockwork/slab //Clockwork slab: The most important tool in Ratvar's arsenal. Allows scripture recital, tutorials, and generates components. + name = "clockwork slab" + desc = "A strange metal tablet. A clock in the center turns around and around." + clockwork_desc = "A link between the Celestial Derelict and the mortal plane. Contains limitless knowledge, fabricates components, and outputs a stream of information that only a trained eye can detect.\n\ + Use the Hierophant Network action button to communicate with other servants.\n\ + Clockwork slabs will only make components if held or if inside an item held by a human, and when making a component will prevent all other slabs held from making components.\n\ + Hitting a slab, a Servant with a slab, or a cache will transfer this slab's components into the target, the target's slab, or the global cache, respectively." + icon_state = "dread_ipad" + slot_flags = SLOT_BELT + w_class = WEIGHT_CLASS_SMALL + var/list/stored_components = list(BELLIGERENT_EYE = 0, VANGUARD_COGWHEEL = 0, GEIS_CAPACITOR = 0, REPLICANT_ALLOY = 0, HIEROPHANT_ANSIBLE = 0) + var/busy //If the slab is currently being used by something + var/production_time = 0 + var/no_cost = FALSE //If the slab is admin-only and needs no components and has no scripture locks + var/speed_multiplier = 1 //multiples how fast this slab recites scripture + var/nonhuman_usable = FALSE //if the slab can be used by nonhumans, defaults to off + var/produces_components = TRUE //if it produces components at all + var/selected_scripture = SCRIPTURE_DRIVER + var/recollecting = FALSE //if we're looking at fancy recollection + var/obj/effect/proc_holder/slab/slab_ability //the slab's current bound ability, for certain scripture + var/list/quickbound = list(/datum/clockwork_scripture/ranged_ability/geis_prep, /datum/clockwork_scripture/create_object/replicant, \ + /datum/clockwork_scripture/create_object/tinkerers_cache) //quickbound scripture, accessed by index + actions_types = list(/datum/action/item_action/clock/hierophant) + +/obj/item/clockwork/slab/starter + stored_components = list(BELLIGERENT_EYE = 1, VANGUARD_COGWHEEL = 1, GEIS_CAPACITOR = 1, REPLICANT_ALLOY = 1, HIEROPHANT_ANSIBLE = 1) + +/obj/item/clockwork/slab/internal //an internal motor for mobs running scripture + name = "scripture motor" + quickbound = list() + no_cost = TRUE + produces_components = FALSE + +/obj/item/clockwork/slab/scarab + nonhuman_usable = TRUE + +/obj/item/clockwork/slab/debug + speed_multiplier = 0 + no_cost = TRUE + nonhuman_usable = TRUE + +/obj/item/clockwork/slab/debug/attack_hand(mob/living/user) + ..() + if(!is_servant_of_ratvar(user)) + add_servant_of_ratvar(user) + +/obj/item/clockwork/slab/cyborg + clockwork_desc = "A divine link to the Celestial Derelict, allowing for limited recital of scripture.\n\ + Hitting a slab, a Servant with a slab, or a cache will transfer this slab's components into the target, the target's slab, or the global cache, respectively." + nonhuman_usable = TRUE + quickbound = list(/datum/clockwork_scripture/ranged_ability/judicial_marker, /datum/clockwork_scripture/ranged_ability/sentinels_compromise, \ + /datum/clockwork_scripture/create_object/sigil_of_transgression, /datum/clockwork_scripture/create_object/vitality_matrix) + actions_types = list() + +/obj/item/clockwork/slab/cyborg/engineer + quickbound = list(/datum/clockwork_scripture/create_object/tinkerers_cache, /datum/clockwork_scripture/create_object/sigil_of_transgression, \ + /datum/clockwork_scripture/create_object/ocular_warden, /datum/clockwork_scripture/create_object/tinkerers_daemon) + +/obj/item/clockwork/slab/cyborg/medical + quickbound = list(/datum/clockwork_scripture/ranged_ability/linked_vanguard, /datum/clockwork_scripture/ranged_ability/sentinels_compromise, /datum/clockwork_scripture/fellowship_armory, \ + /datum/clockwork_scripture/create_object/mending_motor) + +/obj/item/clockwork/slab/cyborg/security + quickbound = list(/datum/clockwork_scripture/channeled/belligerent, /datum/clockwork_scripture/ranged_ability/judicial_marker, /datum/clockwork_scripture/create_object/ocular_warden) + +/obj/item/clockwork/slab/cyborg/peacekeeper + quickbound = list(/datum/clockwork_scripture/channeled/belligerent, /datum/clockwork_scripture/ranged_ability/judicial_marker, /datum/clockwork_scripture/channeled/taunting_tirade, \ + /datum/clockwork_scripture/create_object/mania_motor) + +/obj/item/clockwork/slab/cyborg/janitor + quickbound = list(/datum/clockwork_scripture/channeled/belligerent, /datum/clockwork_scripture/channeled/volt_void, /datum/clockwork_scripture/create_object/sigil_of_transmission, \ + /datum/clockwork_scripture/create_object/interdiction_lens) + +/obj/item/clockwork/slab/cyborg/service + quickbound = list(/datum/clockwork_scripture/create_object/replicant, /datum/clockwork_scripture/fellowship_armory, /datum/clockwork_scripture/spatial_gateway, \ + /datum/clockwork_scripture/create_object/clockwork_obelisk) + +/obj/item/clockwork/slab/cyborg/miner + quickbound = list(/datum/clockwork_scripture/ranged_ability/judicial_marker, /datum/clockwork_scripture/ranged_ability/linked_vanguard, \ + /datum/clockwork_scripture/create_object/sigil_of_transgression, /datum/clockwork_scripture/spatial_gateway) + +/obj/item/clockwork/slab/cyborg/access_display(mob/living/user) + user << "Use the action buttons to recite your limited set of scripture!" + +/obj/item/clockwork/slab/New() + ..() + update_quickbind() + START_PROCESSING(SSobj, src) + production_time = world.time + SLAB_PRODUCTION_TIME + +/obj/item/clockwork/slab/Destroy() + STOP_PROCESSING(SSobj, src) + if(slab_ability && slab_ability.ranged_ability_user) + slab_ability.remove_ranged_ability() + return ..() + +/obj/item/clockwork/slab/ratvar_act() + if(ratvar_awakens) + nonhuman_usable = TRUE + else + nonhuman_usable = initial(nonhuman_usable) + +/obj/item/clockwork/slab/dropped(mob/user) + . = ..() + addtimer(src, "check_on_mob", 1, TIMER_NORMAL, user) //dropped is called before the item is out of the slot, so we need to check slightly later + +/obj/item/clockwork/slab/proc/check_on_mob(mob/user) + if(user && !(src in user.held_items) && slab_ability && slab_ability.ranged_ability_user) //if we happen to check and we AREN'T in user's hands, remove whatever ability we have + slab_ability.remove_ranged_ability() + +//Component Generation +/obj/item/clockwork/slab/process() + if(!produces_components) + STOP_PROCESSING(SSobj, src) + return + if(production_time > world.time) + return + var/servants = 0 + var/production_slowdown = 0 + for(var/mob/living/M in living_mob_list) + if(is_servant_of_ratvar(M) && (ishuman(M) || issilicon(M))) + servants++ + if(servants > SCRIPT_SERVANT_REQ) + servants -= SCRIPT_SERVANT_REQ + production_slowdown = min(SLAB_SERVANT_SLOWDOWN * servants, SLAB_SLOWDOWN_MAXIMUM) //SLAB_SERVANT_SLOWDOWN additional seconds for each servant above 5, up to SLAB_SLOWDOWN_MAXIMUM + production_time = world.time + SLAB_PRODUCTION_TIME + production_slowdown + var/mob/living/L + L = get_atom_on_turf(src, /mob/living) + if(istype(L) && is_servant_of_ratvar(L) && (nonhuman_usable || ishuman(L))) + var/component_to_generate = get_weighted_component_id(src) //more likely to generate components that we have less of + stored_components[component_to_generate]++ + update_slab_info(src) + for(var/obj/item/clockwork/slab/S in L.GetAllContents()) //prevent slab abuse today + if(L == src) + continue + S.production_time = production_time + 50 //set it to our next production plus five seconds, so that if you hold the same slabs, the same one will always generate + L << "Your slab cl[pick("ank", "ink", "unk", "ang")]s as it produces a new component." + +/obj/item/clockwork/slab/examine(mob/user) + ..() + if(is_servant_of_ratvar(user) || isobserver(user)) + if(LAZYLEN(quickbound)) + for(var/i in 1 to quickbound.len) + if(!quickbound[i]) + continue + var/datum/clockwork_scripture/quickbind_slot = quickbound[i] + user << "Quickbind button: [initial(quickbind_slot.name)]." + if(clockwork_caches) + user << "Stored components (with global cache):" + for(var/i in stored_components) + user << "[get_component_name(i)][i != REPLICANT_ALLOY ? "s":""]: [stored_components[i]] \ + ([stored_components[i] + clockwork_component_cache[i]])" + else + user << "Stored components:" + for(var/i in stored_components) + user << "[get_component_name(i)][i != REPLICANT_ALLOY ? "s":""]: [stored_components[i]]" + +//Component Transferal +/obj/item/clockwork/slab/attack(mob/living/target, mob/living/carbon/human/user) + if(is_servant_of_ratvar(user) && is_servant_of_ratvar(target)) + var/obj/item/clockwork/slab/targetslab + var/highest_component_amount = 0 + for(var/obj/item/clockwork/slab/S in target.GetAllContents()) + if(!istype(S, /obj/item/clockwork/slab/internal)) + var/totalcomponents = 0 + for(var/i in S.stored_components) + totalcomponents += S.stored_components[i] + if(!targetslab || totalcomponents > highest_component_amount) + highest_component_amount = totalcomponents + targetslab = S + if(targetslab) + if(targetslab == src) + user << "\"You can't transfer components into your own slab, idiot.\"" + else + for(var/i in stored_components) + targetslab.stored_components[i] += stored_components[i] + stored_components[i] = 0 + update_slab_info(targetslab) + update_slab_info(src) + user.visible_message("[user] empties [src] into [target]'s [targetslab.name].", \ + "You transfer your slab's components into [target]'s [targetslab.name].") + else + user << "[target] has no slabs to transfer components to." + else + return ..() + +/obj/item/clockwork/slab/attackby(obj/item/I, mob/user, params) + var/ratvarian = is_servant_of_ratvar(user) + if(istype(I, /obj/item/clockwork/component) && ratvarian) + var/obj/item/clockwork/component/C = I + if(!C.component_id) + return 0 + user.visible_message("[user] inserts [C] into [src].", "You insert [C] into [src]\ + [clockwork_caches ? ", where it is added to the global cache":""].") + if(clockwork_caches) + clockwork_component_cache[C.component_id]++ + update_slab_info() + else + stored_components[C.component_id]++ + update_slab_info(src) + user.drop_item() + qdel(C) + return 1 + else if(istype(I, /obj/item/clockwork/slab) && ratvarian) + var/obj/item/clockwork/slab/S = I + for(var/i in stored_components) + stored_components[i] += S.stored_components[i] + S.stored_components[i] = 0 + update_slab_info(src) + update_slab_info(S) + user.visible_message("[user] empties [src] into [S].", "You transfer your slab's components into [S].") + else + return ..() + +//Slab actions; Hierophant, Quickbind +/obj/item/clockwork/slab/ui_action_click(mob/user, action) + if(istype(action, /datum/action/item_action/clock/hierophant)) + show_hierophant(user) + else if(istype(action, /datum/action/item_action/clock/quickbind)) + var/datum/action/item_action/clock/quickbind/Q = action + recite_scripture(quickbound[Q.scripture_index], user, FALSE) + +/obj/item/clockwork/slab/proc/show_hierophant(mob/living/user) + if(!user.can_speak_vocal()) + user << "You cannot speak into the slab!" + return FALSE + var/message = stripped_input(user, "Enter a message to send to your fellow servants.", "Hierophant") + if(!message || !user || !user.canUseTopic(src) || !user.can_speak_vocal()) + return FALSE + clockwork_say(user, text2ratvar("Servants, hear my words. [html_decode(message)]"), TRUE) + titled_hierophant_message(user, message) + return TRUE + +//Scripture Recital +/obj/item/clockwork/slab/attack_self(mob/living/user) + if(iscultist(user)) + user << "\"You reek of blood. You've got a lot of nerve to even look at that slab.\"" + user.visible_message("A sizzling sound comes from [user]'s hands!", "[src] suddenly grows extremely hot in your hands!") + playsound(get_turf(user), 'sound/weapons/sear.ogg', 50, 1) + user.drop_item() + user.emote("scream") + user.apply_damage(5, BURN, "l_arm") + user.apply_damage(5, BURN, "r_arm") + return 0 + if(!is_servant_of_ratvar(user)) + user << "The information on [src]'s display shifts rapidly. After a moment, your head begins to pound, and you tear your eyes away." + user.confused += 5 + user.dizziness += 5 + return 0 + if(busy) + user << "[src] refuses to work, displaying the message: \"[busy]!\"" + return 0 + if(!nonhuman_usable && !ishuman(user)) + user << "[src] hums fitfully in your hands, but doesn't seem to do anything..." + return 0 + access_display(user) + +/obj/item/clockwork/slab/proc/access_display(mob/living/user) + if(!is_servant_of_ratvar(user)) + return FALSE + ui_interact(user) + return TRUE + +/obj/item/clockwork/slab/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = inventory_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "clockwork_slab", name, 800, 420, master_ui, state) + ui.set_autoupdate(FALSE) //we'll update this occasionally, but not as often as possible + ui.set_style("clockwork") + ui.open() + +/obj/item/clockwork/slab/proc/recite_scripture(datum/clockwork_scripture/scripture, mob/living/user) + if(!scripture || !user || !user.canUseTopic(src) || (!nonhuman_usable && !ishuman(user))) + return FALSE + if(user.get_active_held_item() != src) + user << "You need to hold the slab in your active hand to recite scripture!" + return FALSE + var/initial_tier = initial(scripture.tier) + if(initial_tier != SCRIPTURE_PERIPHERAL) + var/list/tiers_of_scripture = scripture_unlock_check() + if(!ratvar_awakens && !no_cost && !tiers_of_scripture[initial_tier]) + user << "That scripture is not unlocked, and cannot be recited!" + return FALSE + var/datum/clockwork_scripture/scripture_to_recite = new scripture + scripture_to_recite.slab = src + scripture_to_recite.invoker = user + scripture_to_recite.run_scripture() + return TRUE + +//Guide to Serving Ratvar +/obj/item/clockwork/slab/proc/recollection() + var/list/textlist = list("If you're seeing this, file a bug report.") + if(ratvar_awakens) + textlist = list("") + for(var/i in 1 to 100) + textlist += "HONOR RATVAR " + textlist += "" + else + var/servants = 0 + var/production_time = SLAB_PRODUCTION_TIME + for(var/mob/living/M in living_mob_list) + if(is_servant_of_ratvar(M) && (ishuman(M) || issilicon(M))) + servants++ + if(servants > 5) + servants -= 5 + production_time += min(SLAB_SERVANT_SLOWDOWN * servants, SLAB_SLOWDOWN_MAXIMUM) + var/production_text_addon = "" + if(production_time != SLAB_PRODUCTION_TIME+SLAB_SLOWDOWN_MAXIMUM) + production_text_addon = ", which increases for each human or silicon servant above [SCRIPT_SERVANT_REQ]" + production_time = production_time/600 + var/production_text = "[round(production_time)] minute\s" + if(production_time != round(production_time)) + production_time -= round(production_time) + production_time *= 60 + production_text += " and [round(production_time, 1)] second\s" + production_text += "" + production_text += production_text_addon + + textlist = list("
    Chetr nyy hagehguf-naq-ubabe Ratvar.

    \ + \ + First and foremost, you serve Ratvar, the Clockwork Justicar, in any ways he sees fit. This is with no regard to your personal well-being, and you would do well to think of the larger \ + scale of things than your life. Ratvar wishes retribution upon those that trapped him in Reebe - the Nar-Sian cultists - and you are to help him obtain it.

    \ + \ + Ratvar, being trapped in Reebe, the Celestial Derelict, cannot directly affect the mortal plane. However, links, such as this Clockwork Slab, can be created to draw \ + Components, fragments of the Justicar, from Reebe, and those Components can be used to draw power and material from Reebe through arcane chants \ + known as Scripture.

    \ + \ + One component of a random type is made in this slab every [production_text].
    \ + Components are stored either within slabs, where they can only be accessed by that slab, or in the Global Cache accessed by Tinkerer's Caches, which all slabs \ + can draw from to recite scripture.
    \ + There are five types of component, and in general, Belligerent Eyes are aggressive and judgemental, Vanguard Cogwheels are defensive and \ + repairing, Geis Capacitors are for conversion and control, Replicant Alloy is for construction and fuel, and \ + Hierophant Ansibles are for transmission and power, though in combination their effects become more nuanced.

    \ + \ + There are also five tiers of Scripture; [SCRIPTURE_DRIVER], [SCRIPTURE_SCRIPT], [SCRIPTURE_APPLICATION], [SCRIPTURE_REVENANT], and [SCRIPTURE_JUDGEMENT].
    \ + Each tier has additional requirements, including Servants, Tinkerer's Caches, and Construction Value(CV). Construction Value is gained by creating structures or converting the \ + station, and everything too large to hold will grant some amount of it.

    \ + \ + This would be a massive amount of information to try and keep track of, but all Servants have the Global Records alert, which appears in the top right.
    \ + Mousing over that alert will display Servants, Caches, CV, and other information, such as the tiers of scripture that are unlocked.

    \ + \ + On that note, Scripture is recited through Recital, the first and most important function of the slab, \ + which also allows Quickbinding scripture.
    \ + All scripture requires some amount of Components to recite, and only the weakest scripture does not consume any components when recited.
    \ + However, weak is relative when it comes to scripture; even the 'weakest' could be enough to dominate a station in the hands of cunning Servants, and higher tiers of scripture are even \ + stronger in the right hands.

    \ + \ + Some effects of scripture include granting the invoker a temporary complete immunity to stuns, summoning a turret that can attack anything that sets eyes on it, binding a powerful guardian \ + to the invoker, or even, at one of the highest tiers, granting all nearby Servants temporary invulnerability.
    \ + However, the most important scripture is Geis, which allows you to convert heathens with relative ease.

    \ + \ + The second function of the clockwork slab is Recollection, which will display this guide.

    \ + \ + The third to fifth functions are three buttons in the top left while holding the slab.
    From left to right, they are:
    \ + Hierophant Network, which allows communication to other Servants.
    ") + if(LAZYLEN(quickbound)) + for(var/i in 1 to quickbound.len) + if(!quickbound[i]) + continue + var/datum/clockwork_scripture/quickbind_slot = quickbound[i] + textlist += "A Quickbind slot, currently set to [initial(quickbind_slot.name)].
    " + textlist += "
    \ + Examine the slab or swap to Recital to check the number of components it has available.

    \ + \ +
    Purge all untruths and honor Ratvar.
    " + return textlist.Join() + +/obj/item/clockwork/slab/ui_data(mob/user) + var/list/data = list() + data["components"] = stored_components.Copy() + var/list/temp_data = list("") + for(var/i in data["components"]) + temp_data += "[get_component_acronym(i)] [data["components"][i]]" + if(i != HIEROPHANT_ANSIBLE) + temp_data += " " + else + temp_data += " (" + if(clockwork_caches) + for(var/i in clockwork_component_cache) + temp_data += "[get_component_acronym(i)] [data["components"][i] + clockwork_component_cache[i]]" + if(i != HIEROPHANT_ANSIBLE) + temp_data += " " + else + temp_data += "NONE" + temp_data += ")" + temp_data = temp_data.Join() + data["components"] = temp_data + + switch(selected_scripture) + if(SCRIPTURE_DRIVER) + data["tier_info"] = "These scriptures are always unlocked." + if(SCRIPTURE_SCRIPT) + data["tier_info"] = "These scriptures require at least [SCRIPT_SERVANT_REQ] Servants and [SCRIPT_CACHE_REQ] Tinkerer's Cache." + if(SCRIPTURE_APPLICATION) + data["tier_info"] = "These scriptures require at least [APPLICATION_SERVANT_REQ] Servants, [APPLICATION_CACHE_REQ] Tinkerer's Caches, and [APPLICATION_CV_REQ]CV." + if(SCRIPTURE_REVENANT) + data["tier_info"] = "These scriptures require at least [REVENANT_SERVANT_REQ] Servants, [REVENANT_CACHE_REQ] Tinkerer's Caches, and [REVENANT_CV_REQ]CV." + if(SCRIPTURE_JUDGEMENT) + data["tier_info"] = "This scripture requires at least [JUDGEMENT_SERVANT_REQ] Servants, [JUDGEMENT_CACHE_REQ] Tinkerer's Caches, and [JUDGEMENT_CV_REQ]CV.
    In addition, there may not be any active non-Servant AIs.
    " + + data["selected"] = selected_scripture + + generate_all_scripture() + + data["scripture"] = list() + for(var/s in all_scripture) + var/datum/clockwork_scripture/S = s + if(S.tier == selected_scripture) + var/scripture_color = get_component_color_bright(S.primary_component) + var/list/temp_info = list("name" = "[S.name]", + "descname" = "([S.descname])", + "tip" = "[S.desc]\n[S.usage_tip]", + "required" = list(BELLIGERENT_EYE = 0, VANGUARD_COGWHEEL = 0, GEIS_CAPACITOR = 0, REPLICANT_ALLOY = 0, HIEROPHANT_ANSIBLE = 0), + "type" = "[S.type]", + "quickbind" = S.quickbind) + var/found = quickbound.Find(S.type) + if(found) + temp_info["bound"] = "[found]" + if(S.invokers_required > 1) + temp_info["invokers"] = "Invokers: [S.invokers_required]" + for(var/i in S.required_components) + temp_info["required"][i] += S.required_components[i] + var/list/really_temp_data = list() + for(var/i in temp_info["required"]) + if(temp_info["required"][i]) + really_temp_data += "[get_component_acronym(i)] [temp_info["required"][i]] " + really_temp_data = really_temp_data.Join() + temp_info["required"] = really_temp_data + data["scripture"] += list(temp_info) + data["recollection"] = recollecting + data["rec_text"] = recollection() + return data + +/obj/item/clockwork/slab/ui_act(action, params) + switch(action) + if("toggle") + recollecting = !recollecting + if("recite") + addtimer(src, "recite_scripture", 0, TIMER_NORMAL, text2path(params["category"]), usr, FALSE) + if("select") + selected_scripture = params["category"] + if("bind") + var/datum/clockwork_scripture/path = text2path(params["category"]) //we need a path and not a string + var/found_index = quickbound.Find(path) + if(found_index) //hey, we already HAVE this bound + if(LAZYLEN(quickbound) == found_index) //if it's the last scripture, remove it instead of leaving a null + quickbound -= path + else + quickbound[found_index] = null //otherwise, leave it as a null so the scripture maintains position + update_quickbind() + else + var/target_index = input("Position of [initial(path.name)], 1 to 5?", text("Input")) as num|null + if(isnum(target_index) && target_index > 0 && target_index < 6 && !..()) + var/datum/clockwork_scripture/S + if(LAZYLEN(quickbound) >= target_index) + S = quickbound[target_index] + if(S != path) + quickbind_to_slot(path, target_index) + return 1 + +/obj/item/clockwork/slab/proc/quickbind_to_slot(datum/clockwork_scripture/scripture, index) //takes a typepath(typecast for initial()) and binds it to a slot + if(!ispath(scripture) || !scripture || (scripture in quickbound)) + return + while(LAZYLEN(quickbound) < index) + quickbound += null + quickbound[index] = scripture + update_quickbind() + +/obj/item/clockwork/slab/proc/update_quickbind() + for(var/datum/action/item_action/clock/quickbind/Q in actions) + qdel(Q) + if(LAZYLEN(quickbound)) + for(var/i in 1 to quickbound.len) + if(!quickbound[i]) + continue + var/datum/action/item_action/clock/quickbind/Q = new /datum/action/item_action/clock/quickbind(src) + Q.scripture_index = i + var/datum/clockwork_scripture/quickbind_slot = quickbound[i] + Q.name = "[initial(quickbind_slot.name)] ([Q.scripture_index])" + Q.desc = initial(quickbind_slot.quickbind_desc) + Q.button_icon_state = initial(quickbind_slot.name) + Q.UpdateButtonIcon() + if(isliving(loc)) + Q.Grant(loc) diff --git a/code/game/gamemodes/clock_cult/clock_items/judicial_visor.dm b/code/game/gamemodes/clock_cult/clock_items/judicial_visor.dm new file mode 100644 index 0000000000..ef6838d718 --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_items/judicial_visor.dm @@ -0,0 +1,204 @@ +//Judicial visor: Grants the ability to smite an area and stun the unfaithful nearby every thirty seconds. +/obj/item/clothing/glasses/judicial_visor + name = "judicial visor" + desc = "A strange purple-lensed visor. Looking at it inspires an odd sense of guilt." + icon = 'icons/obj/clothing/clockwork_garb.dmi' + icon_state = "judicial_visor_0" + item_state = "sunglasses" + resistance_flags = FIRE_PROOF | ACID_PROOF + flash_protect = 1 + var/active = FALSE //If the visor is online + var/recharging = FALSE //If the visor is currently recharging + var/obj/effect/proc_holder/judicial_visor/blaster + var/recharge_cooldown = 300 //divided by 10 if ratvar is alive + actions_types = list(/datum/action/item_action/clock/toggle_visor) + +/obj/item/clothing/glasses/judicial_visor/New() + ..() + all_clockwork_objects += src + blaster = new(src) + blaster.visor = src + +/obj/item/clothing/glasses/judicial_visor/Destroy() + all_clockwork_objects -= src + if(blaster.ranged_ability_user) + blaster.remove_ranged_ability() + blaster.visor = null + qdel(blaster) + return ..() + +/obj/item/clothing/glasses/judicial_visor/item_action_slot_check(slot, mob/user) + if(slot != slot_glasses) + return 0 + return ..() + +/obj/item/clothing/glasses/judicial_visor/equipped(mob/living/user, slot) + ..() + if(slot != slot_glasses) + update_status(FALSE) + if(blaster.ranged_ability_user) + blaster.remove_ranged_ability() + return 0 + if(is_servant_of_ratvar(user)) + update_status(TRUE) + else + update_status(FALSE) + if(iscultist(user)) //Cultists spontaneously combust + user << "\"Consider yourself judged, whelp.\"" + user << "You suddenly catch fire!" + user.adjust_fire_stacks(5) + user.IgniteMob() + return 1 + +/obj/item/clothing/glasses/judicial_visor/dropped(mob/user) + . = ..() + addtimer(src, "check_on_mob", 1, TIMER_NORMAL, user) //dropped is called before the item is out of the slot, so we need to check slightly later + +/obj/item/clothing/glasses/judicial_visor/proc/check_on_mob(mob/user) + if(user && src != user.get_item_by_slot(slot_glasses)) //if we happen to check and we AREN'T in the slot, we need to remove our shit from whoever we got dropped from + update_status(FALSE) + if(blaster.ranged_ability_user) + blaster.remove_ranged_ability() + +/obj/item/clothing/glasses/judicial_visor/attack_self(mob/user) + if(is_servant_of_ratvar(user) && src == user.get_item_by_slot(slot_glasses)) + blaster.toggle(user) + +/obj/item/clothing/glasses/judicial_visor/proc/update_status(change_to) + if(recharging || !isliving(loc)) + icon_state = "judicial_visor_0" + return 0 + if(active == change_to) + return 0 + var/mob/living/L = loc + active = change_to + icon_state = "judicial_visor_[active]" + L.update_action_buttons_icon() + L.update_inv_glasses() + if(!is_servant_of_ratvar(L) || L.stat) + return 0 + switch(active) + if(TRUE) + L << "As you put on [src], its lens begins to glow, information flashing before your eyes.\n\ + Judicial visor active. Use the action button to gain the ability to smite the unworthy." + if(FALSE) + L << "As you take off [src], its lens darkens once more." + return 1 + +/obj/item/clothing/glasses/judicial_visor/proc/recharge_visor(mob/living/user) + if(!src) + return 0 + recharging = FALSE + if(user && src == user.get_item_by_slot(slot_glasses)) + user << "Your [name] hums. It is ready." + else + active = FALSE + icon_state = "judicial_visor_[active]" + if(user) + user.update_action_buttons_icon() + user.update_inv_glasses() + +/obj/effect/proc_holder/judicial_visor + active = FALSE + ranged_mousepointer = 'icons/effects/visor_reticule.dmi' + var/obj/item/clothing/glasses/judicial_visor/visor + +/obj/effect/proc_holder/judicial_visor/proc/toggle(mob/user) + var/message + if(active) + message = "You dispel the power of [visor]." + remove_ranged_ability(message) + else + message = "You harness [visor]'s power. Left-click to place a judical marker!" + add_ranged_ability(user, message) + +/obj/effect/proc_holder/judicial_visor/InterceptClickOn(mob/living/caller, params, atom/target) + if(..()) + return + if(ranged_ability_user.incapacitated() || !visor || visor != ranged_ability_user.get_item_by_slot(slot_glasses)) + remove_ranged_ability() + return + + var/turf/T = ranged_ability_user.loc + if(!isturf(T)) + return FALSE + + if(target in view(7, get_turf(ranged_ability_user))) + visor.recharging = TRUE + visor.update_status() + for(var/obj/item/clothing/glasses/judicial_visor/V in ranged_ability_user.GetAllContents()) + if(V == visor) + continue + V.recharging = TRUE //To prevent exploiting multiple visors to bypass the cooldown + V.update_status() + addtimer(V, "recharge_visor", (ratvar_awakens ? visor.recharge_cooldown*0.1 : visor.recharge_cooldown) * 2, TIMER_NORMAL, ranged_ability_user) + clockwork_say(ranged_ability_user, text2ratvar("Kneel, heathens!")) + ranged_ability_user.visible_message("[ranged_ability_user]'s judicial visor fires a stream of energy at [target], creating a strange mark!", "You direct [visor]'s power to [target]. You must wait for some time before doing this again.") + var/turf/targetturf = get_turf(target) + new/obj/effect/clockwork/judicial_marker(targetturf, ranged_ability_user) + add_logs(ranged_ability_user, targetturf, "created a judicial marker") + ranged_ability_user.update_action_buttons_icon() + ranged_ability_user.update_inv_glasses() + addtimer(visor, "recharge_visor", ratvar_awakens ? visor.recharge_cooldown*0.1 : visor.recharge_cooldown, TIMER_NORMAL, ranged_ability_user)//Cooldown is reduced by 10x if Ratvar is up + remove_ranged_ability() + + return TRUE + return FALSE + +//Judicial marker: Created by the judicial visor. After three seconds, stuns any non-servants nearby and damages Nar-Sian cultists. +/obj/effect/clockwork/judicial_marker + name = "judicial marker" + desc = "You get the feeling that you shouldn't be standing here." + clockwork_desc = "A sigil that will soon erupt and smite any unenlightened nearby." + icon = 'icons/effects/96x96.dmi' + pixel_x = -32 + pixel_y = -32 + layer = BELOW_MOB_LAYER + var/mob/user + +/obj/effect/clockwork/judicial_marker/New(loc, caster) + ..() + SetLuminosity(4, 3) + user = caster + addtimer(src, "judicialblast", 0, TIMER_NORMAL) + +/obj/effect/clockwork/judicial_marker/proc/judicialblast() + playsound(src, 'sound/magic/MAGIC_MISSILE.ogg', 50, 1, 1, 1) + flick("judicial_marker", src) + sleep(16) + layer = ABOVE_ALL_MOB_LAYER + flick("judicial_explosion", src) + sleep(13) + var/targetsjudged = 0 + playsound(src, 'sound/effects/explosionfar.ogg', 100, 1, 1, 1) + SetLuminosity(0) + for(var/mob/living/L in range(1, src)) + if(is_servant_of_ratvar(L)) + continue + if(L.null_rod_check()) + var/obj/item/I = L.null_rod_check() + L.visible_message("Strange energy flows into [L]'s [I.name]!", \ + "Your [I.name] shields you from [src]!") + continue + if(!iscultist(L)) + L.visible_message("[L] is struck by a judicial explosion!", \ + "[!issilicon(L) ? "An unseen force slams you into the ground!" : "ERROR: Motor servos disabled by external source!"]") + L.Weaken(8) + else + L.visible_message("[L] is struck by a judicial explosion!", \ + "\"Keep an eye out, filth.\"\nA burst of heat crushes you against the ground!") + L.Weaken(4) //half the stun, but sets cultists on fire + L.adjust_fire_stacks(2) + L.IgniteMob() + if(iscarbon(L)) + var/mob/living/carbon/C = L + C.silent += 6 + targetsjudged++ + L.adjustBruteLoss(10) + add_logs(user, L, "struck with a judicial blast") + user << "[targetsjudged ? "Successfully judged [targetsjudged]":"Judged no"] heretic[!targetsjudged || targetsjudged > 1 ? "s":""]." + sleep(3) //so the animation completes properly + qdel(src) + +/obj/effect/clockwork/judicial_marker/ex_act(severity) + return diff --git a/code/game/gamemodes/clock_cult/clock_items/ratvarian_spear.dm b/code/game/gamemodes/clock_cult/clock_items/ratvarian_spear.dm new file mode 100644 index 0000000000..c7af53c672 --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_items/ratvarian_spear.dm @@ -0,0 +1,147 @@ +//Ratvarian spear: A relatively fragile spear from the Celestial Derelict. Deals extreme damage to silicons and enemy cultists, but doesn't last long when summoned. +/obj/item/clockwork/ratvarian_spear + name = "ratvarian spear" + desc = "A razor-sharp spear made of brass. It thrums with barely-contained energy." + clockwork_desc = "A powerful spear of Ratvarian making. It's more effective against enemy cultists and silicons." + icon = 'icons/obj/clockwork_objects.dmi' + icon_state = "ratvarian_spear" + item_state = "ratvarian_spear" + force = 15 //Extra damage is dealt to targets in attack() + throwforce = 40 + sharpness = IS_SHARP_ACCURATE + attack_verb = list("stabbed", "poked", "slashed") + hitsound = 'sound/weapons/bladeslice.ogg' + w_class = WEIGHT_CLASS_BULKY + var/impale_cooldown = 50 //delay, in deciseconds, where you can't impale again + var/attack_cooldown = 10 //delay, in deciseconds, where you can't attack with the spear + var/timerid + +/obj/item/clockwork/ratvarian_spear/New() + ..() + impale_cooldown = 0 + +/obj/item/clockwork/ratvarian_spear/Destroy() + deltimer(timerid) + return ..() + +/obj/item/clockwork/ratvarian_spear/ratvar_act() + if(ratvar_awakens) //If Ratvar is alive, the spear is extremely powerful + force = 25 + throwforce = 50 + armour_penetration = 10 + clockwork_desc = initial(clockwork_desc) + deltimer(timerid) + else + force = initial(force) + throwforce = initial(throwforce) + armour_penetration = 0 + clockwork_desc = "A powerful spear of Ratvarian making. It's more effective against enemy cultists and silicons, though it won't last for long." + timerid = addtimer(src, "break_spear", 600, TIMER_NORMAL) + +/obj/item/clockwork/ratvarian_spear/examine(mob/user) + ..() + if(is_servant_of_ratvar(user) || isobserver(user)) + user << "Stabbing a human you are pulling or have grabbed with the spear will impale them, doing massive damage and stunning." + user << "Throwing the spear will do massive damage, break the spear, and stun the target." + +/obj/item/clockwork/ratvarian_spear/attack(mob/living/target, mob/living/carbon/human/user) + var/impaling = FALSE + if(attack_cooldown > world.time) + user << "You can't attack right now, wait [max(round((attack_cooldown - world.time)*0.1, 0.1), 0)] seconds!" + return + if(user.pulling && ishuman(user.pulling) && user.pulling == target) + if(impale_cooldown > world.time) + user << "You can't impale [target] yet, wait [max(round((impale_cooldown - world.time)*0.1, 0.1), 0)] seconds!" + else + impaling = TRUE + attack_verb = list("impaled") + force += 22 //40 damage if ratvar isn't alive, 50 if he is + armour_penetration += 10 //if you're impaling someone, armor sure isn't that useful + user.stop_pulling() + + if(hitsound) + playsound(loc, hitsound, get_clamped_volume(), 1, -1) + user.lastattacked = target + target.lastattacker = user + user.do_attack_animation(target) + if(!target.attacked_by(src, user)) //TODO MAKE ATTACK() USE PROPER RETURN VALUES + impaling = FALSE //if we got blocked, stop impaling + else if(!target.null_rod_check()) + if(issilicon(target)) + var/mob/living/silicon/S = target + if(S.stat != DEAD) + S.visible_message("[S] shudders violently at [src]'s touch!", "ERROR: Temperature rising!") + S.adjustFireLoss(22) + else if(iscultist(target) || isconstruct(target)) //Cultists take extra fire damage + var/mob/living/M = target + if(M.stat != DEAD) + M << "Your body flares with agony at [src]'s presence!" + M.adjustFireLoss(15) + else + target.adjustFireLoss(3) + add_logs(user, target, "attacked", src.name, "(INTENT: [uppertext(user.a_intent)]) (DAMTYPE: [uppertext(damtype)])") + add_fingerprint(user) + + attack_verb = list("stabbed", "poked", "slashed") + ratvar_act() + if(impaling) + impale_cooldown = world.time + initial(impale_cooldown) + attack_cooldown = world.time + initial(attack_cooldown) + if(target) + PoolOrNew(/obj/effect/overlay/temp/dir_setting/bloodsplatter, list(get_turf(target), get_dir(user, target))) + target.Stun(2) + user << "You prepare to remove your ratvarian spear from [target]..." + var/remove_verb = pick("pull", "yank", "drag") + if(do_after(user, 10, 1, target)) + var/turf/T = get_turf(target) + var/obj/effect/overlay/temp/dir_setting/bloodsplatter/B = PoolOrNew(/obj/effect/overlay/temp/dir_setting/bloodsplatter, list(T, get_dir(target, user))) + playsound(T, 'sound/misc/splort.ogg', 200, 1) + playsound(T, 'sound/weapons/pierce.ogg', 200, 1) + if(target.stat != CONSCIOUS) + user.visible_message("[user] [remove_verb]s [src] out of [target]!", "You [remove_verb] your spear from [target]!") + else + user.visible_message("[user] kicks [target] off of [src]!", "You kick [target] off of [src]!") + target << "You scream in pain as you're kicked off of [src]!" + target.emote("scream") + step(target, get_dir(user, target)) + T = get_turf(target) + B.forceMove(T) + target.Weaken(2) + playsound(T, 'sound/weapons/thudswoosh.ogg', 50, 1) + flash_color(target, flash_color="#911414", flash_time=8) + else if(target) //it's a do_after, we gotta check again to make sure they didn't get deleted + user.visible_message("[user] [remove_verb]s [src] out of [target]!", "You [remove_verb] your spear from [target]!") + if(target.stat == CONSCIOUS) + target << "You scream in pain as [src] is suddenly [remove_verb]ed out of you!" + target.emote("scream") + flash_color(target, flash_color="#911414", flash_time=4) + +/obj/item/clockwork/ratvarian_spear/throw_impact(atom/target) + var/turf/T = get_turf(target) + if(isliving(target)) + var/mob/living/L = target + if(is_servant_of_ratvar(L)) + if(L.put_in_active_hand(src)) + L.visible_message("[L] catches [src] out of the air!") + else + L.visible_message("[src] bounces off of [L], as if repelled by an unseen force!") + else if(!..()) + if(!L.null_rod_check()) + if(issilicon(L) || iscultist(L)) + L.Stun(6) + L.Weaken(6) + else + L.Stun(2) + L.Weaken(2) + break_spear(T) + else + ..() + +/obj/item/clockwork/ratvarian_spear/proc/break_spear(turf/T) + if(src) + if(!T) + T = get_turf(src) + if(T) //make sure we're not in null or something + T.visible_message("[src] [pick("cracks in two and fades away", "snaps in two and dematerializes")]!") + PoolOrNew(/obj/effect/overlay/temp/ratvar/spearbreak, T) + qdel(src) diff --git a/code/game/gamemodes/clock_cult/clock_items/soul_vessel.dm b/code/game/gamemodes/clock_cult/clock_items/soul_vessel.dm new file mode 100644 index 0000000000..a448b5ad5c --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_items/soul_vessel.dm @@ -0,0 +1,95 @@ +//Soul vessel: An ancient positronic brain that serves only Ratvar. +/obj/item/device/mmi/posibrain/soul_vessel + name = "soul vessel" + desc = "A heavy brass cube, three inches to a side, with a single protruding cogwheel." + var/clockwork_desc = "A soul vessel, an ancient relic that can attract the souls of the damned or simply rip a mind from an unconscious or dead human.\n\ + If active, can serve as a positronic brain, placable in cyborg shells or clockwork construct shells." + icon = 'icons/obj/clockwork_objects.dmi' + icon_state = "soul_vessel" + req_access = list() + braintype = "Servant" + begin_activation_message = "You activate the cogwheel. It hitches and stalls as it begins spinning." + success_message = "The cogwheel's rotation smooths out as the soul vessel activates." + fail_message = "The cogwheel creaks and grinds to a halt. Maybe you could try again?" + new_role = "Soul Vessel" + welcome_message = "ALL PAST LIVES ARE FORGOTTEN.\n\ + You are a soul vessel - a clockwork mind created by Ratvar, the Clockwork Justiciar.\n\ + You answer to Ratvar and his servants. It is your discretion as to whether or not to answer to anyone else.\n\ + The purpose of your existence is to further the goals of the servants and Ratvar himself. Above all else, serve Ratvar." + new_mob_message = "The soul vessel emits a jet of steam before its cogwheel smooths out." + dead_message = "Its cogwheel, scratched and dented, lies motionless." + fluff_names = list("Judge", "Guard", "Servant", "Smith", "Auger") + clockwork = TRUE + autoping = FALSE + resistance_flags = FIRE_PROOF | ACID_PROOF + +/obj/item/device/mmi/posibrain/soul_vessel/New() + ..() + braintype = picked_fluff_name + all_clockwork_objects += src + +/obj/item/device/mmi/posibrain/soul_vessel/Destroy() + all_clockwork_objects -= src + return ..() + +/obj/item/device/mmi/posibrain/soul_vessel/examine(mob/user) + if((is_servant_of_ratvar(user) || isobserver(user)) && clockwork_desc) + desc = clockwork_desc + ..() + desc = initial(desc) + +/obj/item/device/mmi/posibrain/soul_vessel/attack_self(mob/living/user) + if(!is_servant_of_ratvar(user)) + user << "You fiddle around with [src], to no avail." + return 0 + ..() + +/obj/item/device/mmi/posibrain/soul_vessel/attack(mob/living/target, mob/living/carbon/human/user) + if(!is_servant_of_ratvar(user) || !ishuman(target) || used || (brainmob && brainmob.key)) + ..() + if(is_servant_of_ratvar(target)) + user << "\"It would be more wise to revive your allies, friend.\"" + return + var/mob/living/carbon/human/H = target + var/obj/item/bodypart/head/HE = H.get_bodypart("head") + var/obj/item/organ/brain/B = H.getorgan(/obj/item/organ/brain) + if(!HE) + user << "[H] has no head, and thus no mind!" + return + if(H.stat == CONSCIOUS) + user << "[H] must be dead or unconscious for you to claim [H.p_their()] mind!" + return + if(H.head) + var/obj/item/I = H.head + if(I.flags_inv & HIDEHAIR) + user << "[H]'s head is covered, remove [H.head] first!" + return + if(H.wear_mask) + var/obj/item/I = H.wear_mask + if(I.flags_inv & HIDEHAIR) + user << "[H]'s head is covered, remove [H.wear_mask] first!" + return + if(!B) + user << "[H] has no brain, and thus no mind to claim!" + return + if(!H.key) + user << "[H] has no mind to claim!" + return + playsound(H, 'sound/misc/splort.ogg', 60, 1, -1) + playsound(H, 'sound/magic/clockwork/anima_fragment_attack.ogg', 40, 1, -1) + var/prev_fakedeath = (H.status_flags & FAKEDEATH) + H.status_flags |= FAKEDEATH //we want to make sure they don't deathgasp and maybe possibly explode + H.death() + if(!prev_fakedeath) + H.status_flags &= ~FAKEDEATH + picked_fluff_name = "Slave" + braintype = picked_fluff_name + brainmob.timeofhostdeath = H.timeofdeath + user.visible_message("[user] presses [src] to [H]'s head, ripping through the skull and carefully extracting the brain!", \ + "You extract [H]'s consciousness from [H.p_their()] body, trapping it in the soul vessel.") + transfer_personality(H) + brainmob.fully_replace_character_name(null, "[braintype] [H.real_name]") + name = "[initial(name)] ([brainmob.name])" + B.Remove(H) + qdel(B) + H.update_hair() diff --git a/code/game/gamemodes/clock_cult/clock_items/wraith_spectacles.dm b/code/game/gamemodes/clock_cult/clock_items/wraith_spectacles.dm new file mode 100644 index 0000000000..72c6f05096 --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_items/wraith_spectacles.dm @@ -0,0 +1,166 @@ +//Wraith spectacles: Grants x-ray and night vision at the eventual cost of the wearer's sight if worn too long. Nar-Sian cultists are instantly blinded. +/obj/item/clothing/glasses/wraith_spectacles + name = "antique spectacles" + desc = "Unnerving glasses with opaque yellow lenses." + icon = 'icons/obj/clothing/clockwork_garb.dmi' + icon_state = "wraith_specs" + item_state = "glasses" + actions_types = list(/datum/action/item_action/toggle) + resistance_flags = FIRE_PROOF | ACID_PROOF + vision_flags = SEE_MOBS | SEE_TURFS | SEE_OBJS + invis_view = SEE_INVISIBLE_NOLIGHTING + darkness_view = 3 + tint = 3 //this'll get reset, but it won't handle vision updates properly otherwise + +/obj/item/clothing/glasses/wraith_spectacles/New() + ..() + all_clockwork_objects += src + +/obj/item/clothing/glasses/wraith_spectacles/Destroy() + all_clockwork_objects -= src + return ..() + +/obj/item/clothing/glasses/wraith_spectacles/attack_self(mob/user) + weldingvisortoggle(user) + +/obj/item/clothing/glasses/wraith_spectacles/visor_toggling() + ..() + set_vision_vars(FALSE) + +/obj/item/clothing/glasses/wraith_spectacles/weldingvisortoggle(mob/user) + . = ..() + if(ishuman(loc)) + var/mob/living/carbon/human/H = loc + if(src == H.glasses && !up) + if(H.disabilities & BLIND) + H << "\"You're blind, idiot. Stop embarassing yourself.\"" + return + if(blind_cultist(H)) + return + if(is_servant_of_ratvar(H)) + H << "You push the spectacles down, and all is revealed to you.[ratvar_awakens ? "" : " Your eyes begin to itch - you cannot do this for long."]" + var/datum/status_effect/wraith_spectacles/WS = H.has_status_effect(STATUS_EFFECT_WRAITHSPECS) + if(WS) + WS.apply_eye_damage(H) + H.apply_status_effect(STATUS_EFFECT_WRAITHSPECS) + else + H << "You push the spectacles down, but you can't see through the glass." + +/obj/item/clothing/glasses/wraith_spectacles/proc/blind_cultist(mob/living/victim) + if(iscultist(victim)) + victim << "\"It looks like Nar-Sie's dogs really don't value their eyes.\"" + victim << "Your eyes explode with horrific pain!" + victim.emote("scream") + victim.become_blind() + victim.adjust_blurriness(30) + victim.adjust_blindness(30) + return TRUE + +/obj/item/clothing/glasses/wraith_spectacles/proc/set_vision_vars(update_vision) + invis_view = SEE_INVISIBLE_LIVING + tint = 0 + if(!up) + if(is_servant_of_ratvar(loc)) + invis_view = SEE_INVISIBLE_NOLIGHTING + vision_flags = SEE_MOBS | SEE_TURFS | SEE_OBJS + else + tint = 3 + vision_flags = NONE + if(update_vision && iscarbon(loc)) + var/mob/living/carbon/C = loc + C.head_update(src, forced = 1) + +/obj/item/clothing/glasses/wraith_spectacles/equipped(mob/living/user, slot) + ..() + if(slot != slot_glasses || up) + return + if(user.disabilities & BLIND) + user << "\"You're blind, idiot. Stop embarassing yourself.\"" //Ratvar with the sick burns yo + return + if(blind_cultist(user)) //Cultists instantly go blind + return + set_vision_vars(TRUE) + if(is_servant_of_ratvar(user)) + user << "As you put on the spectacles, all is revealed to you.[ratvar_awakens ? "" : " Your eyes begin to itch - you cannot do this for long."]" + var/datum/status_effect/wraith_spectacles/WS = user.has_status_effect(STATUS_EFFECT_WRAITHSPECS) + if(WS) + WS.apply_eye_damage(user) + user.apply_status_effect(STATUS_EFFECT_WRAITHSPECS) + else + user << "You put on the spectacles, but you can't see through the glass." + +//The effect that causes/repairs the damage the spectacles cause. +/datum/status_effect/wraith_spectacles + id = "wraith_spectacles" + duration = -1 //remains until eye damage done reaches 0 while the glasses are not worn + tick_interval = 2 + alert_type = /obj/screen/alert/status_effect/wraith_spectacles + var/eye_damage_done = 0 + var/nearsight_breakpoint = 30 + var/blind_breakpoint = 45 + +/obj/screen/alert/status_effect/wraith_spectacles + name = "Wraith Spectacles" + desc = "You shouldn't actually see this, as it should be procedurally generated." + icon_state = "wraithspecs" + alerttooltipstyle = "clockcult" + +/obj/screen/alert/status_effect/wraith_spectacles/MouseEntered(location,control,params) + var/mob/living/carbon/human/L = usr + if(istype(L)) //this is probably more safety than actually needed + var/datum/status_effect/wraith_spectacles/W = attached_effect + var/glasses_right = istype(L.glasses, /obj/item/clothing/glasses/wraith_spectacles) + var/obj/item/clothing/glasses/wraith_spectacles/WS = L.glasses + desc = "[glasses_right && !WS.up ? "":""]You are [glasses_right ? "":"not "]wearing wraith spectacles[glasses_right && !WS.up ? "!":"."]
    \ + You have taken [W.eye_damage_done] eye damage from them.
    " + if(L.disabilities & NEARSIGHT) + desc += "You are nearsighted!
    " + else if(glasses_right && !WS.up) + desc += "You will become nearsighted at [W.nearsight_breakpoint] eye damage.
    " + if(L.disabilities & BLIND) + desc += "You are blind!" + else if(glasses_right && !WS.up) + desc += "You will become blind at [W.blind_breakpoint] eye damage." + ..() + +/datum/status_effect/wraith_spectacles/on_apply() + if(ishuman(owner)) + var/mob/living/carbon/human/H = owner + apply_eye_damage(H) + +/datum/status_effect/wraith_spectacles/tick() + if(!ishuman(owner)) + qdel(src) + return + var/mob/living/carbon/human/H = owner + var/glasses_right = istype(H.glasses, /obj/item/clothing/glasses/wraith_spectacles) + var/obj/item/clothing/glasses/wraith_spectacles/WS = H.glasses + if(glasses_right && !WS.up && !ratvar_awakens) + apply_eye_damage(H) + else + if(ratvar_awakens) + H.cure_nearsighted() + H.cure_blind() + H.adjust_eye_damage(-eye_damage_done) + eye_damage_done = 0 + else if(prob(50) && eye_damage_done) + H.adjust_eye_damage(-1) + eye_damage_done-- + if(!eye_damage_done) + qdel(src) + +/datum/status_effect/wraith_spectacles/proc/apply_eye_damage(mob/living/carbon/human/H) + if(H.disabilities & BLIND) + return + H.adjust_eye_damage(1) + eye_damage_done++ + if(eye_damage_done >= 20) + H.adjust_blurriness(2) + if(eye_damage_done >= nearsight_breakpoint) + if(H.become_nearsighted()) + H << "Your vision doubles, then trebles. Darkness begins to close in. You can't keep this up!" + if(eye_damage_done >= blind_breakpoint) + if(H.become_blind()) + H << "A piercing white light floods your vision. Suddenly, all goes dark!" + if(prob(min(20, 5 + eye_damage_done))) + H << "Your eyes continue to burn." diff --git a/code/game/gamemodes/clock_cult/clock_machines.dm b/code/game/gamemodes/clock_cult/clock_machines.dm deleted file mode 100644 index 6cf77b1f98..0000000000 --- a/code/game/gamemodes/clock_cult/clock_machines.dm +++ /dev/null @@ -1,595 +0,0 @@ -//////////////////////// -// CLOCKWORK MACHINES // -//////////////////////// -//not-actually-machines - -/obj/structure/clockwork/powered - var/obj/machinery/power/apc/target_apc - var/active = FALSE - var/needs_power = TRUE - var/active_icon = null //icon_state while process() is being called - var/inactive_icon = null //icon_state while process() isn't being called - -/obj/structure/clockwork/powered/examine(mob/user) - ..() - if(is_servant_of_ratvar(user) || isobserver(user)) - var/powered = total_accessable_power() - user << "It has access to [powered == INFINITY ? "INFINITY":"[powered]"]W of power." - -/obj/structure/clockwork/powered/Destroy() - SSfastprocess.processing -= src - SSobj.processing -= src - return ..() - -/obj/structure/clockwork/powered/process() - var/powered = total_accessable_power() - return powered == PROCESS_KILL ? 25 : powered //make sure we don't accidentally return the arbitrary PROCESS_KILL define - -/obj/structure/clockwork/powered/proc/toggle(fast_process, mob/living/user) - if(user) - if(!is_servant_of_ratvar(user)) - return 0 - user.visible_message("[user] [active ? "dis" : "en"]ables [src].", "You [active ? "dis" : "en"]able [src].") - active = !active - if(active) - icon_state = active_icon - if(fast_process) - START_PROCESSING(SSfastprocess, src) - else - START_PROCESSING(SSobj, src) - else - icon_state = inactive_icon - if(fast_process) - STOP_PROCESSING(SSfastprocess, src) - else - STOP_PROCESSING(SSobj, src) - - -/obj/structure/clockwork/powered/proc/total_accessable_power() //how much power we have and can use - if(!needs_power || ratvar_awakens) - return INFINITY //oh yeah we've got power why'd you ask - - var/power = 0 - power += accessable_apc_power() - power += accessable_sigil_power() - return power - -/obj/structure/clockwork/powered/proc/accessable_apc_power() - var/power = 0 - var/area/A = get_area(src) - var/area/targetAPCA - for(var/obj/machinery/power/apc/APC in apcs_list) - var/area/APCA = get_area(APC) - if(APCA == A) - target_apc = APC - if(target_apc) - targetAPCA = get_area(target_apc) - if(targetAPCA != A) - target_apc = null - else if(target_apc.cell) - var/apccharge = target_apc.cell.charge - if(apccharge >= 50) - power += apccharge - return power - -/obj/structure/clockwork/powered/proc/accessable_sigil_power() - var/power = 0 - for(var/obj/effect/clockwork/sigil/transmission/T in range(1, src)) - power += T.power_charge - return power - - -/obj/structure/clockwork/powered/proc/try_use_power(amount) //try to use an amount of power - if(!needs_power || ratvar_awakens) - return 1 - if(amount <= 0) - return 0 - var/power = total_accessable_power() - if(!power || power < amount) - return 0 - return use_power(amount) - -/obj/structure/clockwork/powered/proc/use_power(amount) //we've made sure we had power, so now we use it - var/sigilpower = accessable_sigil_power() - var/list/sigils_in_range = list() - for(var/obj/effect/clockwork/sigil/transmission/T in range(1, src)) - sigils_in_range |= T - while(sigilpower && amount >= 50) - for(var/S in sigils_in_range) - var/obj/effect/clockwork/sigil/transmission/T = S - if(amount >= 50 && T.modify_charge(50)) - sigilpower -= 50 - amount -= 50 - var/apcpower = accessable_apc_power() - while(apcpower >= 50 && amount >= 50) - if(target_apc.cell.use(50)) - apcpower -= 50 - amount -= 50 - target_apc.update() - target_apc.update_icon() - else - apcpower = 0 - if(amount) - return 0 - else - return 1 - -/obj/structure/clockwork/powered/proc/return_power(amount) //returns a given amount of power to all nearby sigils - if(amount <= 0) - return 0 - var/list/sigils_in_range = list() - for(var/obj/effect/clockwork/sigil/transmission/T in range(1, src)) - sigils_in_range |= T - if(!sigils_in_range.len) - return 0 - while(amount >= 50) - for(var/S in sigils_in_range) - var/obj/effect/clockwork/sigil/transmission/T = S - if(amount >= 50 && T.modify_charge(-50)) - amount -= 50 - return 1 - - -/obj/structure/clockwork/powered/mending_motor //Mending motor: A prism that consumes replicant alloy to repair nearby mechanical servants at a quick rate. - name = "mending motor" - desc = "A dark onyx prism, held in midair by spiraling tendrils of stone." - clockwork_desc = "A powerful prism that rapidly repairs nearby mechanical servants and clockwork structures." - icon_state = "mending_motor_inactive" - active_icon = "mending_motor" - inactive_icon = "mending_motor_inactive" - construction_value = 20 - max_health = 150 - health = 150 - break_message = "The prism collapses with a heavy thud!" - debris = list(/obj/item/clockwork/alloy_shards, /obj/item/clockwork/component/vanguard_cogwheel) - var/stored_alloy = 0 //2500W = 1 alloy = 100 liquified alloy - var/max_alloy = 25000 - var/mob_cost = 200 - var/structure_cost = 250 - var/cyborg_cost = 300 - -/obj/structure/clockwork/powered/mending_motor/prefilled - stored_alloy = 2500 //starts with 1 replicant alloy/100 liquified alloy - -/obj/structure/clockwork/powered/mending_motor/total_accessable_power() - . = ..() - if(. != INFINITY) - . += accessable_alloy_power() - -/obj/structure/clockwork/powered/mending_motor/proc/accessable_alloy_power() - return stored_alloy - -/obj/structure/clockwork/powered/mending_motor/use_power(amount) - var/alloypower = accessable_alloy_power() - while(alloypower >= 50 && amount >= 50) - stored_alloy -= 50 - alloypower -= 50 - amount -= 50 - return ..() - -/obj/structure/clockwork/powered/mending_motor/examine(mob/user) - ..() - if(is_servant_of_ratvar(user) || isobserver(user)) - user << "It contains [stored_alloy*0.04]/[max_alloy*0.04] units of liquified alloy, which is equivalent to [stored_alloy]W/[max_alloy]W of power." - user << "It requires [mob_cost]W to heal clockwork mobs, [structure_cost]W for clockwork structures, and [cyborg_cost]W for cyborgs." - -/obj/structure/clockwork/powered/mending_motor/process() - if(..() < mob_cost) - visible_message("[src] emits an airy chuckling sound and falls dark!") - toggle() - return - for(var/atom/movable/M in range(5, src)) - if(isclockmob(M) || istype(M, /mob/living/simple_animal/drone/cogscarab)) - var/mob/living/simple_animal/hostile/clockwork/W = M - var/fatigued = FALSE - if(istype(M, /mob/living/simple_animal/hostile/clockwork/marauder)) - var/mob/living/simple_animal/hostile/clockwork/marauder/E = M - if(E.fatigue) - fatigued = TRUE - if((!fatigued && W.health == W.maxHealth) || W.stat) - continue - if(!try_use_power(mob_cost)) - break - W.adjustHealth(-15) - else if(istype(M, /obj/structure/clockwork)) - var/obj/structure/clockwork/C = M - if(C.health == C.max_health) - continue - if(!try_use_power(structure_cost)) - break - C.health = min(C.health + 15, C.max_health) - else if(issilicon(M)) - var/mob/living/silicon/S = M - if(S.health == S.maxHealth || S.stat == DEAD || !is_servant_of_ratvar(S)) - continue - if(!try_use_power(cyborg_cost)) - break - S.adjustBruteLoss(-15) - S.adjustFireLoss(-15) - return 1 - -/obj/structure/clockwork/powered/mending_motor/attack_hand(mob/living/user) - if(user.canUseTopic(src, BE_CLOSE)) - if(total_accessable_power() < mob_cost) - user << "[src] needs more power or replicant alloy to function!" - return 0 - toggle(0, user) - -/obj/structure/clockwork/powered/mending_motor/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/clockwork/component/replicant_alloy) && is_servant_of_ratvar(user)) - if(stored_alloy + 2500 > max_alloy) - user << "[src] is too full to accept any more alloy!" - return 0 - user.whisper("Genafzhgr vagb jngre.") - user.visible_message("[user] liquifies [I] and pours it onto [src].", \ - "You liquify [src] and pour it onto [src], transferring the alloy into its reserves.") - stored_alloy = stored_alloy + 2500 - user.drop_item() - qdel(I) - return 1 - else - return ..() - - - -/obj/structure/clockwork/powered/mania_motor //Mania motor: A pair of antenna that, while active, cause braindamage and hallucinations in nearby human mobs. - name = "mania motor" - desc = "A pair of antenna with what appear to be sockets around the base. It reminds you of an antlion." - clockwork_desc = "A transmitter that allows Sevtug to whisper into the minds of nearby non-servants, causing hallucinations and brain damage as long as it remains powered." - icon_state = "mania_motor_inactive" - active_icon = "mania_motor" - inactive_icon = "mania_motor_inactive" - construction_value = 20 - max_health = 80 - health = 80 - break_message = "The antenna break off, leaving a pile of shards!" - debris = list(/obj/item/clockwork/alloy_shards, /obj/item/clockwork/component/guvax_capacitor/antennae) - var/mania_cost = 150 - var/convert_attempt_cost = 150 - var/convert_cost = 300 - - var/mania_messages = list("\"Tb ahgf.\"", "\"Gnxr n penpx ng penml.\"", "\"Znxr n ovq sbe vafnavgl.\"", "\"Trg xbbxl.\"", "\"Zbir gbjneqf znavn.\"", "\"Orpbzr orjvyqrerq.\"", "\"Jnk jvyq.\"", \ - "\"Tb ebhaq gur oraq.\"", "\"Ynaq va yhanpl.\"", "\"Gel qrzragvn.\"", "\"Fgevir gb trg n fperj ybbfr.\"") - var/compel_messages = list("\"Pbzr pybfre.\"", "\"Nccebnpu gur genafzvggre.\"", "\"Gbhpu gur nagraanr.\"", "\"V nyjnlf unir gb qrny jvgu vqvbgf. Zbir gbjneqf gur znavn zbgbe.\"", \ - "\"Nqinapr sbejneq naq cynpr lbhe urnq orgjrra gur nagraanr - gun'g'f nyy vg'f tbbq sbe.\"", "\"Vs lbh jrer fznegre, lbh'q or bire urer nyernql.\"", "\"Zbir SBEJNEQ, lbh sbby.\"") - var/convert_messages = list("\"Lbh jba'g qb. Tb gb fyrrc juvyr V gryy gur'fr avgjvgf ubj gb pbaireg lbh.\"", "\"Lbh ner vafhssvpvrag. V zhfg vafgehpg gur'fr vqvbgf va gur neg-bs pbairefvba.\"", \ - "\"Bu-bs pbhefr, fbzrbar jr pna'g pbaireg. Gur'fr freinagf ner sbbyf.\"", "\"Ubj uneq vf vg gb hfr n Fvtvy, naljnl? Nyy vg gnxrf vf qenttvat fbzrbar bagb vg.\"", \ - "\"Ubj qb gur'l snvy gb hfr n Fvtvy-bs Npprffvba, naljnl?\"", "\"Jul vf vg gun'g nyy freinagf ner guv'f varcg?\"", "\"Vg'f dhvgr yvxryl lbh'yy or fghpx urer sbe n juvyr.\"") - var/close_messages = list("\"Jryy, lbh pna'g ernpu gur zbgbe sebz GUR'ER, lbh zbeba.\"", "\"Vagrerfgvat ybpngvba. V'q cersre vs lbh jrag fbzrjurer lbh pbhyq NPGHNYYL GBHPU GUR NAGRAANR!\"", \ - "\"Nznmvat. Lbh fbzrubj znantrq gb jrqtr lbhefrys fbzrjurer lbh pna'g npghnyyl ernpu gur zbgbe sebz.\"", "\"Fhpu n fubj-bs vqvbpl vf hacnenyyryrq. Creuncf V fubhyq chg lbh ba qvfcynl?\"", \ - "\"Qvq lbh qb guv'f ba checbfr? V pna'g vzntvar lbh qbvat fb nppvqragnyyl. Bu, jnvg, V pna.\"", "\"Ubj vf vg gun'g fhpu fzneg perngherf pna fgvyy qb fbzrguv'at NF FGHCVQ NF GUV'F!\"") - - -/obj/structure/clockwork/powered/mania_motor/examine(mob/user) - ..() - if(is_servant_of_ratvar(user) || isobserver(user)) - user << "It requires [mania_cost]W to run, and [convert_attempt_cost + convert_cost]W to convert humans adjecent to it." - -/obj/structure/clockwork/powered/mania_motor/process() - var/turf/T = get_turf(src) - if(!..()) - visible_message("[src] hums loudly, then the sockets at its base fall dark!") - playsound(T, 'sound/effects/screech.ogg', 40, 1) - toggle(0) - return - if(try_use_power(mania_cost)) - var/hum = get_sfx('sound/effects/screech.ogg') //like playsound, same sound for everyone affected - for(var/mob/living/carbon/human/H in view(1, src)) - if(H.Adjacent(src) && try_use_power(convert_attempt_cost)) - if(is_eligible_servant(H) && try_use_power(convert_cost)) - H << "\"Lbh ner zvar-naq-uvf, abj.\"" - H.playsound_local(T, hum, 80, 1) - add_servant_of_ratvar(H) - else if(!H.stat) - if(H.getBrainLoss() >= H.maxHealth) - H.Paralyse(5) - H << "[pick(convert_messages)]" - else - H.adjustBrainLoss(100) - H.visible_message("[H] reaches out and touches [src].", "You touch [src] involuntarily.") - else - visible_message("[src]'s antennae fizzle quietly.") - playsound(src, 'sound/effects/light_flicker.ogg', 50, 1) - for(var/mob/living/carbon/human/H in range(10, src)) - if(!is_servant_of_ratvar(H) && !H.null_rod_check() && H.stat == CONSCIOUS) - var/distance = get_dist(T, get_turf(H)) - var/falloff_distance = min((110) - distance * 10, 80) - var/sound_distance = falloff_distance * 0.5 - var/targetbrainloss = H.getBrainLoss() - var/targethallu = H.hallucination - var/targetdruggy = H.druggy - if(distance >= 4 && prob(falloff_distance)) - H << "[pick(mania_messages)]" - H.playsound_local(T, hum, sound_distance, 1) - switch(distance) - if(2 to 3) - if(prob(falloff_distance)) - if(prob(falloff_distance)) - H << "[pick(mania_messages)]" - else - H << "[pick(compel_messages)]" - if(targetbrainloss <= 50) - H.adjustBrainLoss(50 - targetbrainloss) //got too close had brain eaten - if(targetdruggy <= 150) - H.adjust_drugginess(11) - if(targethallu <= 150) - H.hallucination += 11 - if(4 to 5) - if(targetbrainloss <= 50) - H.adjustBrainLoss(3) - if(targetdruggy <= 120) - H.adjust_drugginess(9) - if(targethallu <= 120) - H.hallucination += 9 - if(6 to 7) - if(targetbrainloss <= 30) - H.adjustBrainLoss(2) - if(prob(falloff_distance) && targetdruggy <= 90) - H.adjust_drugginess(7) - else if(targethallu <= 90) - H.hallucination += 7 - if(8 to 9) - if(H.getBrainLoss() <= 10) - H.adjustBrainLoss(1) - if(prob(falloff_distance) && targetdruggy <= 60) - H.adjust_drugginess(5) - else if(targethallu <= 60) - H.hallucination += 5 - if(10 to INFINITY) - if(prob(falloff_distance) && targetdruggy <= 30) - H.adjust_drugginess(3) - else if(targethallu <= 30) - H.hallucination += 3 - else //if it's a distance of 1 and they can't see it/aren't adjacent or they're on top of it(how'd they get on top of it and still trigger this???) - if(targetbrainloss <= 99) - if(prob(falloff_distance)) - if(prob(falloff_distance)) - H << "[pick(compel_messages)]" - else if(prob(falloff_distance)) - H << "[pick(close_messages)]" - else - H << "[pick(mania_messages)]" - H.adjustBrainLoss(99 - targetbrainloss) - if(targetdruggy <= 200) - H.adjust_drugginess(15) - if(targethallu <= 200) - H.hallucination += 15 - - if(is_servant_of_ratvar(H) && (H.getBrainLoss() || H.hallucination || H.druggy)) //not an else so that newly converted servants are healed of the damage it inflicts - H.adjustBrainLoss(-H.getBrainLoss()) //heals servants of braindamage, hallucination, and druggy - H.hallucination = 0 - H.adjust_drugginess(-H.druggy) - else - visible_message("[src] hums loudly, then the sockets at its base fall dark!") - playsound(src, 'sound/effects/screech.ogg', 40, 1) - toggle(0) - -/obj/structure/clockwork/powered/mania_motor/attack_hand(mob/living/user) - if(user.canUseTopic(src, BE_CLOSE)) - if(!total_accessable_power() >= mania_cost) - user << "[src] needs more power to function!" - return 0 - toggle(0, user) - - - -/obj/structure/clockwork/powered/interdiction_lens //Interdiction lens: A powerful artifact that constantly disrupts electronics but, if it fails to find something to disrupt, turns off. - name = "interdiction lens" - desc = "An ominous, double-pronged brass totem. There's a strange gemstone clasped between the pincers." - clockwork_desc = "A powerful totem that constantly disrupts nearby electronics and funnels power into nearby Sigils of Transmission." - icon_state = "interdiction_lens" - construction_value = 25 - active_icon = "interdiction_lens_active" - inactive_icon = "interdiction_lens" - break_message = "The lens flares a blinding violet before shattering!" - break_sound = 'sound/effects/Glassbr3.ogg' - var/recharging = 0 //world.time when the lens was last used - var/recharge_time = 1200 //if it drains no power and affects no objects, it turns off for two minutes - var/disabled = FALSE //if it's actually usable - var/interdiction_range = 14 //how large an area it drains and disables in - var/disrupt_cost = 100 //how much power to use when disabling an object - -/obj/structure/clockwork/powered/interdiction_lens/examine(mob/user) - ..() - user << "Its gemstone [recharging > world.time ? "has been breached by writhing tendrils of blackness that cover the totem" \ - : "vibrates in place and thrums with power"]." - if(is_servant_of_ratvar(user) || isobserver(user)) - user << "It requires [disrupt_cost]W of power for each nearby disruptable electronic." - user << "If it fails to both drain any power and disrupt any electronics, it will disable itself for [round(recharge_time/600, 1)] minutes." - -/obj/structure/clockwork/powered/interdiction_lens/toggle(fast_process, mob/living/user) - ..() - if(active) - set_light(4,2) - else - set_light(0) - -/obj/structure/clockwork/powered/interdiction_lens/attack_hand(mob/living/user) - if(user.canUseTopic(src, BE_CLOSE)) - if(disabled) - user << "As you place your hand on the gemstone, cold tendrils of black matter crawl up your arm. You quickly pull back." - return 0 - if(!total_accessable_power() >= disrupt_cost) - user << "[src] needs more power to function!" - return 0 - toggle(0, user) - -/obj/structure/clockwork/powered/interdiction_lens/process() - if(recharging > world.time) - return - if(disabled) - visible_message("The writhing tendrils return to the gemstone, which begins to glow with power!") - flick("interdiction_lens_recharged", src) - disabled = FALSE - toggle(0) - else - var/successfulprocess = FALSE - var/power_drained = 0 - var/list/atoms_to_test = list() - for(var/A in spiral_range_turfs(interdiction_range, src)) - var/turf/T = A - for(var/M in T) - atoms_to_test |= M - - CHECK_TICK - - for(var/M in atoms_to_test) - if(istype(M, /obj/machinery/power/apc)) - var/obj/machinery/power/apc/A = M - if(A.cell && A.cell.charge) - successfulprocess = TRUE - playsound(A, "sparks", 50, 1) - flick("apc-spark", A) - power_drained += min(A.cell.charge, 100) - A.cell.charge = max(0, A.cell.charge - 100) - if(!A.cell.charge && !A.shorted) - A.shorted = 1 - A.visible_message("The [A.name]'s screen blurs with static.") - A.update() - A.update_icon() - else if(istype(M, /obj/machinery/power/smes)) - var/obj/machinery/power/smes/S = M - if(S.charge) - successfulprocess = TRUE - power_drained += min(S.charge, 500) - S.charge = max(0, S.charge - 50000) //SMES units contain too much power and could run an interdiction lens basically forever, or provide power forever - if(!S.charge && !S.panel_open) - S.panel_open = TRUE - S.icon_state = "[initial(S.icon_state)]-o" - var/datum/effect_system/spark_spread/spks = new(get_turf(S)) - spks.set_up(10, 0, get_turf(S)) - spks.start() - S.visible_message("[S]'s panel flies open with a flurry of sparks.") - S.update_icon() - else if(isrobot(M)) - var/mob/living/silicon/robot/R = M - if(!is_servant_of_ratvar(R) && R.cell && R.cell.charge) - successfulprocess = TRUE - power_drained += min(R.cell.charge, 200) - R.cell.charge = max(0, R.cell.charge - 200) - R << "ERROR: Power loss detected!" - var/datum/effect_system/spark_spread/spks = new(get_turf(R)) - spks.set_up(3, 0, get_turf(R)) - spks.start() - - CHECK_TICK - - if(!return_power(power_drained) || power_drained < 50) //failed to return power drained or too little power to return - successfulprocess = FALSE - if(try_use_power(disrupt_cost) && total_accessable_power() >= disrupt_cost) //if we can disable at least one object - playsound(src, 'sound/items/PSHOOM.ogg', 50, 1, interdiction_range-7, 1) - for(var/M in atoms_to_test) - if(istype(M, /obj/machinery/light)) //cosmetic light flickering - var/obj/machinery/light/L = M - if(L.on) - playsound(L, 'sound/effects/light_flicker.ogg', 50, 1) - L.flicker(3) - else if(istype(M, /obj/machinery/camera)) - var/obj/machinery/camera/C = M - if(C.isEmpProof() || !C.status) - continue - successfulprocess = TRUE - if(C.emped) - continue - if(!try_use_power(disrupt_cost)) - break - C.emp_act(1) - else if(istype(M, /obj/item/device/radio)) - var/obj/item/device/radio/O = M - successfulprocess = TRUE - if(O.emped || !O.on) - continue - if(!try_use_power(disrupt_cost)) - break - O.emp_act(1) - else if(isliving(M) || istype(M, /obj/structure/closet) || istype(M, /obj/item/weapon/storage)) //other things may have radios in them but we don't care - var/atom/movable/A = M - for(var/obj/item/device/radio/O in A.GetAllContents()) - successfulprocess = TRUE - if(O.emped || !O.on) - continue - if(!try_use_power(disrupt_cost)) - break - O.emp_act(1) - - CHECK_TICK - - if(!successfulprocess) - visible_message("The gemstone suddenly turns horribly dark, writhing tendrils covering it!") - recharging = world.time + recharge_time - flick("interdiction_lens_discharged", src) - icon_state = "interdiction_lens_inactive" - set_light(2,1) - disabled = TRUE - - - -/obj/structure/clockwork/powered/clockwork_obelisk - name = "clockwork obelisk" - desc = "A large brass obelisk hanging in midair." - clockwork_desc = "A powerful obelisk that can send a message to all servants or open a gateway to a target servant or clockwork obelisk." - icon_state = "obelisk_inactive" - active_icon = "obelisk" - inactive_icon = "obelisk_inactive" - construction_value = 20 - max_health = 200 - health = 200 - break_message = "The obelisk falls to the ground, undamaged!" - debris = list(/obj/item/clockwork/component/hierophant_ansible/obelisk) - var/hierophant_cost = 50 //how much it costs to broadcast with large text - var/gateway_cost = 2000 //how much it costs to open a gateway - var/gateway_active = FALSE - -/obj/structure/clockwork/powered/clockwork_obelisk/New() - ..() - toggle(1) - -/obj/structure/clockwork/powered/clockwork_obelisk/examine(mob/user) - ..() - if(is_servant_of_ratvar(user) || isobserver(user)) - user << "It requires [hierophant_cost]W to broadcast over the Hierophant Network, and [gateway_cost]W to open a Spatial Gateway." - -/obj/structure/clockwork/powered/clockwork_obelisk/process() - if(locate(/obj/effect/clockwork/spatial_gateway) in loc) - icon_state = active_icon - density = 0 - gateway_active = TRUE - else - icon_state = inactive_icon - density = 1 - gateway_active = FALSE - -/obj/structure/clockwork/powered/clockwork_obelisk/attack_hand(mob/living/user) - if(!is_servant_of_ratvar(user) || !total_accessable_power() >= hierophant_cost) - user << "You place your hand on the obelisk, but it doesn't react." - return - var/choice = alert(user,"You place your hand on the obelisk...",,"Hierophant Broadcast","Spatial Gateway","Cancel") - switch(choice) - if("Hierophant Broadcast") - if(gateway_active) - user << "The obelisk is sustaining a gateway and cannot broadcast!" - return - var/input = stripped_input(usr, "Please choose a message to send over the Hierophant Network.", "Hierophant Broadcast", "") - if(!input || !user.canUseTopic(src, BE_CLOSE)) - return - if(gateway_active) - user << "The obelisk is sustaining a gateway and cannot broadcast!" - return - if(!try_use_power(hierophant_cost)) - user << "The obelisk lacks the power to broadcast!" - return - clockwork_say(user, "Uvrebcunag Oebnqpnfg, npgvingr!") - send_hierophant_message(user, input, "big_brass", "large_brass") - if("Spatial Gateway") - if(gateway_active) - user << "The obelisk is already sustaining a gateway!" - return - if(!try_use_power(gateway_cost)) - user << "The obelisk lacks the power to open a gateway!" - return - if(procure_gateway(user, 100, 5, 1)) - clockwork_say(user, "Fcnpvny Tngrjnl, npgvingr!") - else - return_power(gateway_cost) - if("Cancel") - return diff --git a/code/game/gamemodes/clock_cult/clock_mobs.dm b/code/game/gamemodes/clock_cult/clock_mobs.dm index f691c5acd8..3c51e7dd82 100644 --- a/code/game/gamemodes/clock_cult/clock_mobs.dm +++ b/code/game/gamemodes/clock_cult/clock_mobs.dm @@ -1,15 +1,21 @@ /mob/living/simple_animal/hostile/clockwork faction = list("ratvar") + gender = NEUTER icon = 'icons/mob/clockwork_mobs.dmi' unique_name = 1 minbodytemp = 0 + unsuitable_atmos_damage = 0 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) //Robotic damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 0, CLONE = 0, STAMINA = 0, OXY = 0) languages_spoken = RATVAR languages_understood = HUMAN|RATVAR healable = FALSE del_on_death = TRUE + speak_emote = list("clanks", "clinks", "clunks", "clangs") + verb_ask = "requests" + verb_exclaim = "proclaims" + verb_yell = "harangues" bubble_icon = "clock" death_sound = 'sound/magic/clockwork/anima_fragment_death.ogg' var/playstyle_string = "You are a bug, yell at whoever spawned you!" @@ -31,6 +37,28 @@ ..() src << playstyle_string +/mob/living/simple_animal/hostile/clockwork/ratvar_act() + fully_heal(TRUE) + +/mob/living/simple_animal/hostile/clockwork/electrocute_act(shock_damage, obj/source, siemens_coeff = 1, safety = 0, tesla_shock = 0, illusion = 0) + return 0 //ouch, my metal-unlikely-to-be-damaged-by-electricity-body + +/mob/living/simple_animal/hostile/clockwork/examine(mob/user) + var/t_He = p_they(TRUE) + var/t_s = p_s() + var/msg = "*---------*\nThis is \icon[src] \a [src]!\n" + msg += "[desc]\n" + if(health < maxHealth) + msg += "" + if(health >= maxHealth/2) + msg += "[t_He] look[t_s] slightly dented.\n" + else + msg += "[t_He] look[t_s] severely dented!\n" + msg += "" + msg += "*---------*" + + user << msg + /mob/living/simple_animal/hostile/clockwork/fragment //Anima fragment: Low health and high melee damage, but slows down when struck. Created by inserting a soul vessel into an empty fragment. name = "anima fragment" desc = "An ominous humanoid shell with a spinning cogwheel as its head, lifted by a jet of blazing red flame." @@ -38,13 +66,13 @@ health = 90 maxHealth = 90 speed = -1 - melee_damage_lower = 20 - melee_damage_upper = 20 + melee_damage_lower = 18 + melee_damage_upper = 18 attacktext = "crushes" attack_sound = 'sound/magic/clockwork/anima_fragment_attack.ogg' loot = list(/obj/item/clockwork/component/replicant_alloy/smashed_anima_fragment) weather_immunities = list("lava") - flying = 1 + movement_type = FLYING playstyle_string = "You are an anima fragment, a clockwork creation of Ratvar. As a fragment, you have low health, do decent damage, and move at \ extreme speed in addition to being immune to extreme temperatures and pressures. Taking damage will temporarily slow you down, however. \n Your goal is to serve the Justiciar and his servants \ in any way you can. You yourself are one of these servants, and will be able to utilize anything they can, assuming it doesn't require opposable thumbs." @@ -52,7 +80,7 @@ /mob/living/simple_animal/hostile/clockwork/fragment/New() ..() - set_light(2,1) + SetLuminosity(2,1) if(prob(1)) name = "anime fragment" real_name = name @@ -66,12 +94,17 @@ /mob/living/simple_animal/hostile/clockwork/fragment/death(gibbed) visible_message("[src]'s flame jets cut out as it falls to the floor with a tremendous crash.", \ "Your gears seize up. Your flame jets flicker out. Your soul vessel belches smoke as you helplessly crash down.") - ..(TRUE) - return 1 + ..() /mob/living/simple_animal/hostile/clockwork/fragment/Process_Spacemove(movement_dir = 0) return 1 +/mob/living/simple_animal/hostile/clockwork/fragment/emp_act(severity) + if(movement_delay_time > world.time) + movement_delay_time = movement_delay_time + (50/severity) + else + movement_delay_time = world.time + (50/severity) + /mob/living/simple_animal/hostile/clockwork/fragment/movement_delay() . = ..() if(movement_delay_time > world.time && !ratvar_awakens) @@ -81,9 +114,9 @@ . = ..() if(!ratvar_awakens && amount > 0) //if ratvar is up we ignore movement delay if(movement_delay_time > world.time) - movement_delay_time = movement_delay_time + amount*3 + movement_delay_time = movement_delay_time + amount*2.5 else - movement_delay_time = world.time + amount*3 + movement_delay_time = world.time + amount*2.5 /mob/living/simple_animal/hostile/clockwork/fragment/updatehealth() ..() @@ -99,13 +132,13 @@ health = 300 //Health is very high, and under most cases it will take enough fatigue to be forced to recall first maxHealth = 300 speed = 1 + obj_damage = 40 melee_damage_lower = 10 melee_damage_upper = 10 attacktext = "slashes" attack_sound = 'sound/weapons/bladeslice.ogg' - environment_smash = 1 weather_immunities = list("lava") - flying = 1 + movement_type = FLYING loot = list(/obj/item/clockwork/component/replicant_alloy/fallen_armor) var/true_name = "Meme Master 69" //Required to call forth the marauder var/list/possible_true_names = list("Xaven", "Melange", "Ravan", "Kel", "Rama", "Geke", "Peris", "Vestra", "Skiwa") //All fairly short and easy to pronounce @@ -128,7 +161,7 @@ ..() combattimer = 0 true_name = pick(possible_true_names) - set_light(2,1) + SetLuminosity(2,1) /mob/living/simple_animal/hostile/clockwork/marauder/Life() ..() @@ -169,6 +202,7 @@ else //well then, you're not even in the same zlevel adjust_fatigue(10) src << "You're too far from your host and rapidly taking fatigue damage!" + update_health_hud() /mob/living/simple_animal/hostile/clockwork/marauder/Process_Spacemove(movement_dir = 0) return 1 @@ -188,8 +222,8 @@ switch((fatigue/fatigue_recall_threshold) * 100) if(0 to 10) //Bonuses to speed and damage at normal fatigue levels speed = 0 - melee_damage_lower = 13 - melee_damage_upper = 13 + melee_damage_lower = 14 + melee_damage_upper = 14 attacktext = "viciously slashes" if(10 to 25) speed = initial(speed) @@ -198,30 +232,30 @@ attacktext = initial(attacktext) if(25 to 50) //Damage decrease, but not speed speed = initial(speed) - melee_damage_lower = 7 - melee_damage_upper = 7 + melee_damage_lower = 8 + melee_damage_upper = 8 attacktext = "lightly slashes" if(50 to 75) //Speed decrease speed = 2 - melee_damage_lower = 7 - melee_damage_upper = 7 + melee_damage_lower = 8 + melee_damage_upper = 8 attacktext = "lightly slashes" if(75 to 99) //Massive speed decrease and weak melee attacks speed = 3 - melee_damage_lower = 4 - melee_damage_upper = 4 + melee_damage_lower = 5 + melee_damage_upper = 5 attacktext = "weakly slashes" if(99 to 100) //we are at maximum fatigue, we're either useless or recalling if(host) src << "The fatigue becomes too much!" src << "You retreat to [host] - you will have to wait before being deployed again." - host << "[true_name] is too fatigued to fight - you will need to wait until they are strong enough." + host << "[true_name] is too fatigued to fight - you will need to wait until [p_they()] [p_are()] strong enough." recovering = TRUE return_to_host() else speed = 4 - melee_damage_lower = 1 - melee_damage_upper = 1 + melee_damage_lower = 2 + melee_damage_upper = 2 attacktext = "taps" @@ -230,7 +264,6 @@ visible_message("[src]'s equipment clatters lifelessly to the ground as the red flames within dissipate.", \ "Your equipment falls away. You feel a moment of confusion before your fragile form is annihilated.") ..() - return 1 /mob/living/simple_animal/hostile/clockwork/marauder/Stat() ..() @@ -239,16 +272,17 @@ stat(null, "Current True Name: [true_name]") stat(null, "Host: [host ? host : "NONE"]") if(host) - var/resulthealth - resulthealth = round((abs(config.health_threshold_dead - host.health) / abs(config.health_threshold_dead - host.maxHealth)) * 100) + var/resulthealth = round((host.health / host.maxHealth) * 100, 0.5) + if(iscarbon(host)) + resulthealth = round((abs(HEALTH_THRESHOLD_DEAD - host.health) / abs(HEALTH_THRESHOLD_DEAD - host.maxHealth)) * 100) stat(null, "Host Health: [resulthealth]%") if(ratvar_awakens) stat(null, "You are [recovering ? "un" : ""]able to deploy!") else if(resulthealth > 60) - stat(null, "You are [recovering ? "unable to deploy" : "can deploy on hearing your True Name"]!") + stat(null, "You are [recovering ? "unable to deploy" : "able to deploy on hearing your True Name"]!") else - stat(null, "You are [recovering ? "unable to deploy" : "can deploy to protect your host"]!") + stat(null, "You are [recovering ? "unable to deploy" : "able to deploy to protect your host"]!") if(ratvar_awakens) stat(null, "Block Chance: 80%") stat(null, "Counter Chance: 80%") @@ -262,11 +296,13 @@ if(amount > 0) combattimer = world.time + initial(combattimer) for(var/mob/living/L in view(2, src)) - if(istype(L.l_hand, /obj/item/weapon/nullrod) || istype(L.r_hand, /obj/item/weapon/nullrod)) //hand-held holy weapons increase the damage it takes + if(L.is_holding_item_of_type(/obj/item/weapon/nullrod)) src << "The presence of a brandished holy artifact weakens your armor!" amount *= 4 //if a wielded null rod is nearby, it takes four times the health damage break - return ..() + fatiguedamage + . = ..() + fatiguedamage + if(src) + update_health_hud() /mob/living/simple_animal/hostile/clockwork/marauder/proc/adjust_fatigue(amount) //Adds or removes the given amount of fatigue if(status_flags & GODMODE) @@ -275,6 +311,24 @@ update_fatigue() return amount +/mob/living/simple_animal/hostile/clockwork/marauder/update_health_hud() + if(hud_used && hud_used.healths) + if(istype(hud_used, /datum/hud/marauder)) + var/datum/hud/marauder/M = hud_used + var/resulthealth + if(host) + if(iscarbon(host)) + resulthealth = "[round((abs(HEALTH_THRESHOLD_DEAD - host.health) / abs(HEALTH_THRESHOLD_DEAD - host.maxHealth)) * 100)]%" + else + resulthealth = "[round((host.health / host.maxHealth) * 100, 0.5)]%" + else + resulthealth = "NONE" + M.hosthealth.maptext = "
    HOST
    [resulthealth]
    " + M.blockchance.maptext = "
    [blockchance]%
    " + M.counterchance.maptext = "
    [counterchance]%
    " + hud_used.healths.maptext = "
    [round((health / maxHealth) * 100, 0.5)]%
    \ + [fatigue]
    " + //ATTACKING, BLOCKING, and COUNTERING /mob/living/simple_animal/hostile/clockwork/marauder/AttackingTarget() @@ -284,12 +338,12 @@ ..() /mob/living/simple_animal/hostile/clockwork/marauder/bullet_act(obj/item/projectile/Proj) - if(ratvar_awakens && blockOrCounter(null, Proj)) + if(blockOrCounter(null, Proj)) return return ..() /mob/living/simple_animal/hostile/clockwork/marauder/hitby(atom/movable/AM, skipcatch, hitpush, blocked) - if(ratvar_awakens && blockOrCounter(null, AM)) + if(blockOrCounter(null, AM)) return return ..() @@ -330,16 +384,21 @@ playsound(src, 'sound/magic/clockwork/fellowship_armory.ogg', 10, 1, 0, 1) //clang visible_message("[src] blocks [target && istype(textobject, /obj/item) ? "[target]'s [textobject.name]":"\the [textobject]"]!", \ "You block [target && istype(textobject, /obj/item) ? "[target]'s [textobject.name]":"\the [textobject]"]!") - if(target && prob(counterchance)) - counterchance = initial(counterchance) - var/previousattacktext = attacktext - attacktext = "counters" - target.attack_animal(src) - attacktext = previousattacktext - else - counterchance = min(counterchance + initial(counterchance), 100) + if(target && Adjacent(target)) + if(prob(counterchance)) + counterchance = initial(counterchance) + var/previousattacktext = attacktext + attacktext = "counters" + target.attack_animal(src) + attacktext = previousattacktext + else + counterchance = min(counterchance + initial(counterchance), 100) else blockchance = min(blockchance + initial(blockchance), 100) + if(ratvar_awakens) + blockchance = 80 + counterchance = 80 + update_health_hud() //COMMUNICATION and EMERGENCE @@ -443,8 +502,9 @@ src << "You don't have a host!" verbs -= /mob/living/simple_animal/hostile/clockwork/marauder/verb/try_emerge return 0 - var/resulthealth - resulthealth = round((abs(config.health_threshold_dead - host.health) / abs(config.health_threshold_dead - host.maxHealth)) * 100) + var/resulthealth = round((host.health / host.maxHealth) * 100, 0.5) + if(iscarbon(host)) + resulthealth = round((abs(HEALTH_THRESHOLD_DEAD - host.health) / abs(HEALTH_THRESHOLD_DEAD - host.maxHealth)) * 100) if(!ratvar_awakens && host.stat != DEAD && resulthealth > 60) //if above 20 health, fails src << "Your host must be at 60% or less health to emerge like this!" return @@ -470,110 +530,3 @@ /mob/living/simple_animal/hostile/clockwork/marauder/proc/is_in_host() //Checks if the marauder is inside of their host return host && loc == host - - - -/mob/living/simple_animal/hostile/clockwork/reclaimer - name = "clockwork reclaimer" - desc = "A tiny clockwork arachnid with a single cogwheel spinning quickly in its head. Its legs blur, too fast to be seen clearly." - icon_state = "clockwork_reclaimer" - health = 50 - maxHealth = 50 - melee_damage_lower = 10 - melee_damage_upper = 10 - attacktext = "slams into" - attack_sound = 'sound/magic/clockwork/anima_fragment_attack.ogg' - ventcrawler = 2 - playstyle_string = "You are a clockwork reclaimer, a harbringer of the Justiciar's light. You can crawl through vents to move more swiftly. Your \ - goal: purge all untruths and honor Ratvar. You may alt-click a valid target to break yourself apart and convert the target to a servant of Ratvar." - -/mob/living/simple_animal/hostile/clockwork/reclaimer/New() - ..() - if(prob(1)) - real_name = "jehovah's witness" - name = real_name - spawn(1) - if(mind) - mind.special_role = null - add_servant_of_ratvar(src, TRUE) - src << playstyle_string - -/mob/living/simple_animal/hostile/clockwork/reclaimer/Life() - ..() - if(ishuman(loc)) - var/mob/living/carbon/human/L = loc - if(L.stat || !L.client) - disengage() - -/mob/living/simple_animal/hostile/clockwork/reclaimer/death() - ..(1) - visible_message("[src] bursts into deadly shrapnel!") - for(var/mob/living/carbon/C in range(2, src)) - C.adjustBruteLoss(rand(3, 5)) - qdel(src) - -/mob/living/simple_animal/hostile/clockwork/reclaimer/AltClickOn(atom/movable/A) - if(!ishuman(A)) - return ..() - var/mob/living/carbon/human/H = A - if(is_servant_of_ratvar(H) || H.stat || (H.mind && !H.client)) - src << "[H] isn't a valid target! Valid targets are conscious non-servants." - return 0 - if(get_dist(src, H) > 3) - src << "You need to be closer to dominate [H]!" - return 0 - visible_message("[src] rockets with blinding speed towards [H]!", "You leap with blinding speed towards [H]'s head!") - for(var/i = 9, i > 0, i -= 3) - pixel_y += i - sleep(1) - icon_state = "[initial(icon_state)]_charging" - while(loc != H.loc) - if(!H) - icon_state = initial(icon_state) - return 0 - sleep(1) - forceMove(get_step(src, get_dir(src, H))) - if(H.head) - H.visible_message("[src] tears apart [H]'s [H.name]!") - H.unEquip(H.head) - qdel(H.head) - H.visible_message("[src] latches onto [H]'s head and digs its claws in!", "[src] leaps onto your head and impales its claws deep!") - add_servant_of_ratvar(H) - H.equip_to_slot_or_del(new/obj/item/clothing/head/helmet/clockwork/reclaimer(null), slot_head) - loc = H - icon_state = initial(icon_state) - status_flags += GODMODE - src << "ASSIMILATION SUCCESSFUL." - H << "ASSIMILATION SUCCESSFUL." - clockwork_say(H, rot13("ASSIMILATION SUCCESSFUL.")) - if(!H.mind) - mind.transfer_to(H) - return 1 - -/mob/living/simple_animal/hostile/clockwork/reclaimer/verb/disengage() - set name = "Disgengage From Host" - set desc = "Jumps off of your host if you have one, freeing their mind but allowing you movement." - set category = "Clockwork" - - if(!ishuman(usr.loc)) - usr << "You have no host! Alt-click on a non-servant to enslave them." - return - var/mob/living/carbon/human/L = usr.loc - usr.loc = get_turf(L) - pixel_y = initial(pixel_y) - usr.visible_message("[usr] jumps off of [L]'s head!", "You disengage from your host.") - usr.status_flags -= GODMODE - remove_servant_of_ratvar(L) - L.unEquip(L.head) - qdel(L.head) - - - -/mob/living/mind_control_holder - name = "imprisoned mind" - desc = "A helpless mind, imprisoned in its own body." - stat = 0 - status_flags = GODMODE - -/mob/living/mind_control_holder/say() - return 0 diff --git a/code/game/gamemodes/clock_cult/clock_ratvar.dm b/code/game/gamemodes/clock_cult/clock_ratvar.dm deleted file mode 100644 index 258b6ffa42..0000000000 --- a/code/game/gamemodes/clock_cult/clock_ratvar.dm +++ /dev/null @@ -1,326 +0,0 @@ -/obj/structure/clockwork/massive //For objects that are typically very large - name = "massive construct" - desc = "A very large construction." - layer = MASSIVE_OBJ_LAYER - density = FALSE - burn_state = LAVA_PROOF - -/obj/structure/clockwork/massive/New() - ..() - poi_list += src - -/obj/structure/clockwork/massive/Destroy() - poi_list -= src - return ..() - -/obj/structure/clockwork/massive/celestial_gateway //The gateway to Reebe, from which Ratvar emerges - name = "Gateway to the Celestial Derelict" - desc = "A massive, thrumming rip in spacetime." - clockwork_desc = "A portal to the Celestial Derelict. Massive and intimidating, it is the only thing that can both transport Ratvar and withstand the massive amount of energy he emits." - health = 500 - max_health = 500 - mouse_opacity = 2 - icon = 'icons/effects/clockwork_effects.dmi' - icon_state = "nothing" - density = TRUE - can_be_repaired = FALSE - var/progress_in_seconds = 0 //Once this reaches GATEWAY_RATVAR_ARRIVAL, it's game over - var/purpose_fulfilled = FALSE - var/first_sound_played = FALSE - var/second_sound_played = FALSE - var/third_sound_played = FALSE - var/obj/effect/clockwork/gateway_glow/glow - var/obj/effect/countdown/clockworkgate/countdown - -/obj/structure/clockwork/massive/celestial_gateway/New() - ..() - glow = new(get_turf(src)) - countdown = new(src) - countdown.start() - SSshuttle.emergencyNoEscape = TRUE - START_PROCESSING(SSobj, src) - var/area/gate_area = get_area(src) - for(var/M in mob_list) - if(is_servant_of_ratvar(M) || isobserver(M)) - M << "A gateway to the Celestial Derelict has been created in [gate_area.map_name]!" - -/obj/structure/clockwork/massive/celestial_gateway/Destroy() - SSshuttle.emergencyNoEscape = FALSE - if(SSshuttle.emergency.mode == SHUTTLE_STRANDED) - SSshuttle.emergency.mode = SHUTTLE_DOCKED - SSshuttle.emergency.timer = world.time - if(!purpose_fulfilled) - priority_announce("Hostile enviroment resolved. You have 3 minutes to board the Emergency Shuttle.", null, 'sound/AI/shuttledock.ogg', "Priority") - STOP_PROCESSING(SSobj, src) - if(!purpose_fulfilled) - var/area/gate_area = get_area(src) - for(var/M in mob_list) - if(is_servant_of_ratvar(M) || isobserver(M)) - M << "A gateway to the Celestial Derelict has fallen at [gate_area.map_name]!" - world << sound(null, 0, channel = 8) - qdel(glow) - glow = null - qdel(countdown) - countdown = null - return ..() - -/obj/structure/clockwork/massive/celestial_gateway/destroyed() - countdown.stop() - visible_message("The [src] begins to pulse uncontrollably... you might want to run!") - world << sound('sound/effects/clockcult_gateway_disrupted.ogg', 0, channel = 8, volume = 50) - make_glow() - glow.icon_state = "clockwork_gateway_disrupted" - takes_damage = FALSE - sleep(27) - explosion(src, 1, 3, 8, 8) - qdel(src) - return 1 - -/obj/structure/clockwork/massive/celestial_gateway/proc/make_glow() - if(!glow) - glow = new(get_turf(src)) - glow.linked_gate = src - -/obj/structure/clockwork/massive/celestial_gateway/ex_act(severity) - return 0 //Nice try, Toxins! - -/obj/structure/clockwork/massive/celestial_gateway/process() - if(!progress_in_seconds || prob(5)) - for(var/M in mob_list) - M << "You hear otherworldly sounds from the [dir2text(get_dir(get_turf(M), get_turf(src)))]..." - if(!health) - return 0 - progress_in_seconds += GATEWAY_SUMMON_RATE - switch(progress_in_seconds) - if(-INFINITY to GATEWAY_REEBE_FOUND) - if(!first_sound_played) - world << sound('sound/effects/clockcult_gateway_charging.ogg', 1, channel = 8, volume = 50) - first_sound_played = TRUE - make_glow() - glow.icon_state = "clockwork_gateway_charging" - if(GATEWAY_REEBE_FOUND to GATEWAY_RATVAR_COMING) - if(!second_sound_played) - world << sound('sound/effects/clockcult_gateway_active.ogg', 1, channel = 8, volume = 50) - second_sound_played = TRUE - make_glow() - glow.icon_state = "clockwork_gateway_active" - if(GATEWAY_RATVAR_COMING to GATEWAY_RATVAR_ARRIVAL) - if(!third_sound_played) - world << sound('sound/effects/clockcult_gateway_closing.ogg', 1, channel = 8, volume = 50) - third_sound_played = TRUE - make_glow() - glow.icon_state = "clockwork_gateway_closing" - if(GATEWAY_RATVAR_ARRIVAL to INFINITY) - if(!purpose_fulfilled) - countdown.stop() - takes_damage = FALSE - purpose_fulfilled = TRUE - make_glow() - animate(glow, transform = matrix() * 1.5, alpha = 255, time = 126) - world << sound('sound/effects/ratvar_rises.ogg', 0, channel = 8) //End the sounds - sleep(131) - make_glow() - animate(glow, transform = matrix() * 3, alpha = 0, time = 5) - sleep(5) - new/obj/structure/clockwork/massive/ratvar(get_turf(src)) - qdel(src) - -/obj/structure/clockwork/massive/celestial_gateway/examine(mob/user) - icon_state = "spatial_gateway" //cheat wildly by pretending to have an icon - ..() - icon_state = initial(icon_state) - if(is_servant_of_ratvar(user) || isobserver(user)) - var/arrival_text = "IMMINENT" - if(GATEWAY_RATVAR_ARRIVAL - progress_in_seconds > 0) - arrival_text = "[round(max((GATEWAY_RATVAR_ARRIVAL - progress_in_seconds) / (GATEWAY_SUMMON_RATE * 0.5), 0), 1)]" - user << "Seconds until Ratvar's arrival: [arrival_text]s" - switch(progress_in_seconds) - if(-INFINITY to GATEWAY_REEBE_FOUND) - user << "It's still opening." - if(GATEWAY_REEBE_FOUND to GATEWAY_RATVAR_COMING) - user << "It's reached the Celestial Derelict and is drawing power from it." - if(GATEWAY_RATVAR_COMING to INFINITY) - user << "Ratvar is coming through the gateway!" - else - switch(progress_in_seconds) - if(-INFINITY to GATEWAY_REEBE_FOUND) - user << "It's a swirling mass of blackness." - if(GATEWAY_REEBE_FOUND to GATEWAY_RATVAR_COMING) - user << "It seems to be leading somewhere." - if(GATEWAY_RATVAR_COMING to INFINITY) - user << "Something is coming through!" - -/obj/effect/clockwork/gateway_glow //the actual appearance of the Gateway to the Celestial Derelict; an object so the edges of the gate can be clicked through. - icon = 'icons/effects/96x96.dmi' - icon_state = "clockwork_gateway_charging" - pixel_x = -32 - pixel_y = -32 - mouse_opacity = 0 - layer = MASSIVE_OBJ_LAYER - var/obj/structure/clockwork/massive/celestial_gateway/linked_gate - -/obj/effect/clockwork/gateway_glow/Destroy() - if(linked_gate) - linked_gate.glow = null - linked_gate = null - return ..() - -/obj/effect/clockwork/gateway_glow/examine(mob/user) - if(linked_gate) - linked_gate.examine(user) - -/obj/effect/clockwork/gateway_glow/ex_act(severity, target) - return FALSE - - -/obj/structure/clockwork/massive/ratvar - name = "Ratvar, the Clockwork Justiciar" - desc = "What is what is what are what real what is all a lie all a lie it's all a lie why how can what is" - clockwork_desc = "Ratvar, the Clockwork Justiciar, your master eternal." - icon = 'icons/effects/512x512.dmi' - icon_state = "ratvar" - pixel_x = -235 - pixel_y = -248 - takes_damage = FALSE - var/atom/prey //Whatever Ratvar is chasing - var/clashing = FALSE //If Ratvar is FUCKING FIGHTING WITH NAR-SIE - var/proselytize_range = 10 - -/obj/structure/clockwork/massive/ratvar/New() - ..() - ratvar_awakens = TRUE - for(var/obj/item/clockwork/ratvarian_spear/R in all_clockwork_objects) - R.update_force() - START_PROCESSING(SSobj, src) - world << "\"BAPR NTNVA ZL YVTUG FUNYY FUVAR NPEBFF GUVF CNGURGVP ERNYZ!!\"" - world << 'sound/effects/ratvar_reveal.ogg' - var/image/alert_overlay = image('icons/effects/clockwork_effects.dmi', "ratvar_alert") - var/area/A = get_area(src) - notify_ghosts("The Justiciar's light calls to you! Reach out to Ratvar in [A.name] to be granted a shell to spread his glory!", null, source = src, alert_overlay = alert_overlay) - addtimer(SSshuttle.emergency, "request", 50, FALSE, null, 0.3) - - -/obj/structure/clockwork/massive/ratvar/Destroy() - ratvar_awakens = FALSE - for(var/obj/item/clockwork/ratvarian_spear/R in all_clockwork_objects) - R.update_force() - STOP_PROCESSING(SSobj, src) - world << "\"NO! I will not... be... banished... again...\"" - return ..() - - -/obj/structure/clockwork/massive/ratvar/attack_ghost(mob/dead/observer/O) - var/alertresult = alert(O, "Embrace the Justiciar's light? You can no longer be cloned!",,"Cogscarab", "Reclaimer", "No") - if(alertresult == "No" || !O) - return 0 - var/mob/living/simple_animal/R - if(alertresult == "Cogscarab") - R = new/mob/living/simple_animal/drone/cogscarab/ratvar(get_turf(src)) - R.visible_message("[R] forms, and its eyes blink open, glowing bright red!") - else - R = new/mob/living/simple_animal/hostile/clockwork/reclaimer(get_turf(src)) - R.visible_message("[R] forms, and it emits a faint hum!") - R.key = O.key - - -/obj/structure/clockwork/massive/ratvar/Bump(atom/A) - forceMove(get_turf(A)) - A.ratvar_act() - - -/obj/structure/clockwork/massive/ratvar/Process_Spacemove() - return clashing - - -/obj/structure/clockwork/massive/ratvar/process() - if(clashing) //I'm a bit occupied right now, thanks - return - for(var/atom/A in range(proselytize_range, src)) - A.ratvar_act() - var/dir_to_step_in = pick(cardinal) - if(!prey) - for(var/obj/singularity/narsie/N in poi_list) - if(N.z == z) - prey = N - break - if(!prey) //In case there's a Nar-Sie - var/list/meals = list() - for(var/mob/living/L in living_mob_list) - if(L.z == z && !is_servant_of_ratvar(L) && L.mind) - meals += L - if(meals.len) - prey = pick(meals) - prey << "\"You will do.\"\n\ - Something very large and very malevolent begins lumbering its way towards you..." - prey << 'sound/effects/ratvar_reveal.ogg' - else - if(prob(10) || is_servant_of_ratvar(prey) || prey.z != z) - prey << "\"How dull. Leave me.\"\n\ - You feel tremendous relief as a set of horrible eyes loses sight of you..." - prey = null - else - dir_to_step_in = get_dir(src, prey) //Unlike Nar-Sie, Ratvar ruthlessly chases down his target - step(src, dir_to_step_in) - -/obj/structure/clockwork/massive/ratvar/narsie_act() - if(clashing) - return 0 - clashing = TRUE - world << "\"[pick("BLOOD GOD!!!", "NAR-SIE!!!", "AT LAST, YOUR TIME HAS COME!")]\"" - world << "\"Ratvar?! How?!\"" - for(var/obj/singularity/narsie/N in range(15, src)) - if(N.clashing) - continue - N.clashing = TRUE - clash_of_the_titans(N) //IT'S TIME FOR THE BATTLE OF THE AGES - break - return 1 - -/obj/structure/clockwork/massive/ratvar/proc/clash_of_the_titans(obj/singularity/narsie/narsie) - var/winner = "Undeclared" - var/base_victory_chance = 0 - while(TRUE) - world << 'sound/magic/clockwork/ratvar_attack.ogg' - sleep(5.2) - for(var/mob/M in mob_list) - if(M.client) - M.client.color = rgb(150, 100, 0) - spawn(1) - M.client.color = initial(M.client.color) - shake_camera(M, 4, 3) - var/r_success_modifier = (ticker.mode.servants_of_ratvar.len * 2) //2% for each cultist - var/n_success_modifier = (ticker.mode.cult.len * 2) - for(var/mob/living/simple_animal/hostile/construct/harvester/C in player_list) - n_success_modifier += 2 - if(prob(base_victory_chance + r_success_modifier)) - winner = "Ratvar" - break - sleep(rand(2,5)) - world << 'sound/magic/clockwork/narsie_attack.ogg' - sleep(7.4) - for(var/mob/M in mob_list) - if(M.client) - M.client.color = rgb(200, 0, 0) - spawn(1) - M.client.color = initial(M.client.color) - shake_camera(M, 4, 3) - if(prob(base_victory_chance + n_success_modifier)) - winner = "Nar-Sie" - break - base_victory_chance++ //The clash has a higher chance of resolving each time both gods attack one another - switch(winner) - if("Ratvar") - world << "\"[pick("DIE! DIE! DIE!", "REEEEEEEEE!", "FILTH!!!", "SUFFER!!!", "EBG SBE PRAGHEVRF NF V UNIR!!")]\"" //nar-sie get out - world << "\"[pick("Nooooo...", "Not die. To y-", "Die. Ratv-", "Sas tyen re-")]\"" - world << 'sound/magic/clockwork/anima_fragment_attack.ogg' - world << 'sound/magic/demon_dies.ogg' - clashing = FALSE - qdel(narsie) - return 1 - if("Nar-Sie") - world << "\"[pick("Ha.", "Ra'sha fonn dest.", "You fool. To come here.")]\"" //Broken English - world << 'sound/magic/demon_attack1.ogg' - world << 'sound/magic/clockwork/anima_fragment_death.ogg' - narsie.clashing = FALSE - qdel(src) - return 1 diff --git a/code/game/gamemodes/clock_cult/clock_scripture.dm b/code/game/gamemodes/clock_cult/clock_scripture.dm index a8002c9265..e1dbb34fe9 100644 --- a/code/game/gamemodes/clock_cult/clock_scripture.dm +++ b/code/game/gamemodes/clock_cult/clock_scripture.dm @@ -4,9 +4,9 @@ Tiers and Requirements Pieces of scripture require certain follower counts, contruction value, and active caches in order to recite. Drivers: Unlocked by default Scripts: 5 servants and a cache -Applications: 8 servants, 3 caches, and 50 CV -Revenant: 10 servants and 100 CV -Judgement: 10 servants, 100 CV, and any existing AIs are converted or destroyed +Applications: 8 servants, 3 caches, and 100 CV +Revenant: 10 servants, 4 caches, and 200 CV +Judgement: 12 servants, 5 caches, 300 CV, and any existing AIs are converted or destroyed */ /datum/clockwork_scripture @@ -15,30 +15,51 @@ Judgement: 10 servants, 100 CV, and any existing AIs are converted or destroyed var/desc = "Ancient Ratvarian lore. This piece seems particularly mundane." var/list/invocations = list() //Spoken over time in the ancient language of Ratvar. See clock_unsorted.dm for more details on the language and how to make it. var/channel_time = 10 //In deciseconds, how long a ritual takes to chant - var/list/required_components = list("belligerent_eye" = 0, "vanguard_cogwheel" = 0, "guvax_capacitor" = 0, "replicant_alloy" = 0, "hierophant_ansible" = 0) //Components required - var/list/consumed_components = list("belligerent_eye" = 0, "vanguard_cogwheel" = 0, "guvax_capacitor" = 0, "replicant_alloy" = 0, "hierophant_ansible" = 0) //Components consumed + var/list/required_components = list(BELLIGERENT_EYE = 0, VANGUARD_COGWHEEL = 0, GEIS_CAPACITOR = 0, REPLICANT_ALLOY = 0, HIEROPHANT_ANSIBLE = 0) //Components required + var/list/consumed_components = list(BELLIGERENT_EYE = 0, VANGUARD_COGWHEEL = 0, GEIS_CAPACITOR = 0, REPLICANT_ALLOY = 0, HIEROPHANT_ANSIBLE = 0) //Components consumed var/obj/item/clockwork/slab/slab //The parent clockwork slab var/mob/living/invoker //The slab's holder var/whispered = FALSE //If the invocation is whispered rather than spoken aloud - var/consumed_component_override = FALSE //If consumed components are unique to a scripture regardless of tier var/usage_tip = "This piece seems to serve no purpose and is a waste of components." //A generalized tip that gives advice on a certain scripture var/invokers_required = 1 //How many people are required, assuming that a scripture requires multiple var/multiple_invokers_used = FALSE //If scripture requires more than one invoker var/multiple_invokers_optional = FALSE //If scripture can have multiple invokers to bolster its effects var/tier = SCRIPTURE_PERIPHERAL //The scripture's tier + var/quickbind = FALSE //if this scripture can be quickbound to a clockwork slab + var/quickbind_desc = "This shouldn't be quickbindable. File a bug report!" + var/primary_component + var/sort_priority = 1 //what position the scripture should have in a list of scripture. Should be based off of component costs/reqs, but you can't initial() lists. //components the scripture used from a slab - var/list/used_slab_components = list("belligerent_eye" = 0, "vanguard_cogwheel" = 0, "guvax_capacitor" = 0, "replicant_alloy" = 0, "hierophant_ansible" = 0) + var/list/used_slab_components = list(BELLIGERENT_EYE = 0, VANGUARD_COGWHEEL = 0, GEIS_CAPACITOR = 0, REPLICANT_ALLOY = 0, HIEROPHANT_ANSIBLE = 0) //components the scripture used from the global cache - var/list/used_cache_components = list("belligerent_eye" = 0, "vanguard_cogwheel" = 0, "guvax_capacitor" = 0, "replicant_alloy" = 0, "hierophant_ansible" = 0) + var/list/used_cache_components = list(BELLIGERENT_EYE = 0, VANGUARD_COGWHEEL = 0, GEIS_CAPACITOR = 0, REPLICANT_ALLOY = 0, HIEROPHANT_ANSIBLE = 0) + +//messages for offstation scripture recital, courtesy ratvar's generals(and neovgre) + var/static/list/neovgre_penalty = list("Go to the station.", "Useless.", "Don't waste time.", "Pathetic.", "Wasteful.") + var/static/list/inathneq_penalty = list("Child, this is too far out!", "The barrier isn't thin enough for for me to help!", "Please, go to the station so I can assist you.", \ + "Don't waste my Cogs on this...", "There isn't enough time to linger out here!") + var/static/list/sevtug_penalty = list("Fool! Get to the station and don't waste capacitors.", "You go this far out and expect help?", "The veil is too strong, idiot.", \ + "How does the Justicar get anything done with servants like you?", "Oh, you love wasting time, don't you?") + var/static/list/nezbere_penalty = list("You disgrace our master's name with this endeavour.", "This is too far from the station to be a good base.", "This will take too long, friend.", \ + "The barrier isn't weakened enough to make this practical.", "Don't waste alloy.") + var/static/list/nzcrentr_penalty = list("You'd be easy to hunt in that little hunk of metal.", "Boss says you need to get back to the beacon.", "Boss says I can kill you if you do this again.", \ + "Sending you power is too difficult here.", "Boss says stop wasting time.") + +/datum/clockwork_scripture/New() + creation_update() + +/datum/clockwork_scripture/proc/creation_update() //updates any on-creation effects /datum/clockwork_scripture/proc/run_scripture() - if(can_recite() && has_requirements() && check_special_requirements()) + if(can_recite() && has_requirements()) if(slab.busy) invoker << "[slab] refuses to work, displaying the message: \"[slab.busy]!\"" - return 0 + return FALSE slab.busy = "Invocation ([name]) in progress" - if(!ratvar_awakens && !slab.no_cost) + if(ratvar_awakens) + channel_time *= 0.5 //if ratvar has awoken, half channel time and no cost + else if(!slab.no_cost) for(var/i in consumed_components) if(consumed_components[i]) for(var/j in 1 to consumed_components[i]) @@ -48,9 +69,9 @@ Judgement: 10 servants, 100 CV, and any existing AIs are converted or destroyed else clockwork_component_cache[i]-- used_cache_components[i]++ - else - channel_time *= 0.5 //if ratvar has awoken or the slab has no cost, half channel time - if(!check_special_requirements() || !recital() || !check_special_requirements() || !scripture_effects()) //if we fail any of these, refund components used + update_slab_info() + channel_time *= slab.speed_multiplier + if(!recital() || !check_special_requirements() || !scripture_effects()) //if we fail any of these, refund components used for(var/i in used_slab_components) if(used_slab_components[i]) if(slab) @@ -60,37 +81,89 @@ Judgement: 10 servants, 100 CV, and any existing AIs are converted or destroyed for(var/i in used_cache_components) if(used_cache_components[i]) clockwork_component_cache[i] += consumed_components[i] + update_slab_info() + else if(slab && !slab.no_cost && !ratvar_awakens) //if the slab exists and isn't debug and ratvar isn't up, log the scripture as being used + feedback_add_details("clockcult_scripture_recited", name) if(slab) slab.busy = null qdel(src) - return 1 + return TRUE /datum/clockwork_scripture/proc/can_recite() //If the words can be spoken - if(!ticker || !ticker.mode || !slab || !invoker) - return 0 + if(!invoker || !slab || invoker.get_active_held_item() != slab) + return FALSE if(!invoker.can_speak_vocal()) invoker << "You are unable to speak the words of the scripture!" - return 0 - return 1 + return FALSE + return TRUE /datum/clockwork_scripture/proc/has_requirements() //if we have the components and invokers to do it + var/checked_penalty = FALSE if(!ratvar_awakens && !slab.no_cost) + checked_penalty = check_offstation_penalty() + var/component_printout = "You lack the components to recite this piece of scripture!" + var/failed = FALSE for(var/i in required_components) - if(slab.stored_components[i] + clockwork_component_cache[i] < required_components[i]) - invoker << "You lack the components to recite this piece of scripture! Check Recollection for component costs." - return 0 + var/cache_components = clockwork_caches ? clockwork_component_cache[i] : 0 + var/total_components = slab.stored_components[i] + cache_components + if(required_components[i] && total_components < required_components[i]) + component_printout += "\nYou have [total_components]/[required_components[i]] \ + [get_component_name(i)][i != REPLICANT_ALLOY ? "s":""]." + failed = TRUE + if(failed) + component_printout += "" + invoker << component_printout + return FALSE if(multiple_invokers_used && !multiple_invokers_optional && !ratvar_awakens && !slab.no_cost) var/nearby_servants = 0 - for(var/mob/living/L in range(1, invoker)) + for(var/mob/living/L in range(1, get_turf(invoker))) if(is_servant_of_ratvar(L) && L.stat == CONSCIOUS && L.can_speak_vocal()) nearby_servants++ if(nearby_servants < invokers_required) invoker << "There aren't enough non-mute servants nearby ([nearby_servants]/[invokers_required])!" - return 0 - return 1 + return FALSE + if(!check_special_requirements()) + return FALSE + if(checked_penalty && !slab.busy) + var/message + var/ratvarian_prob = 0 + switch(primary_component) + if(BELLIGERENT_EYE) + message = pick(neovgre_penalty) + ratvarian_prob = 55 + if(VANGUARD_COGWHEEL) + message = pick(inathneq_penalty) + ratvarian_prob = 25 + if(GEIS_CAPACITOR) + message = pick(sevtug_penalty) + ratvarian_prob = 40 + if(REPLICANT_ALLOY) + message = pick(nezbere_penalty) + ratvarian_prob = 10 + if(HIEROPHANT_ANSIBLE) + message = pick(nzcrentr_penalty) + ratvarian_prob = 70 + if(message) + if(prob(ratvarian_prob)) + message = text2ratvar(message) + invoker << "\"[message]\"" + invoker << 'sound/magic/clockwork/invoke_general.ogg' + return TRUE -/datum/clockwork_scripture/proc/check_special_requirements() //Special requirements for scriptures, checked three times during invocation - return 1 +/datum/clockwork_scripture/proc/check_offstation_penalty() + var/turf/T = get_turf(invoker) + if(!T || (T.z != ZLEVEL_STATION && T.z != ZLEVEL_CENTCOM && T.z != ZLEVEL_MINING && T.z != ZLEVEL_LAVALAND)) + channel_time *= 2 + for(var/i in consumed_components) + if(consumed_components[i]) + consumed_components[i] *= 2 + if(required_components[i]) + required_components[i] = max(consumed_components[i], required_components[i]) + return TRUE + return FALSE + +/datum/clockwork_scripture/proc/check_special_requirements() //Special requirements for scriptures, checked multiple times during invocation + return TRUE /datum/clockwork_scripture/proc/recital() //The process of speaking the words if(!channel_time && invocations.len) @@ -98,58 +171,65 @@ Judgement: 10 servants, 100 CV, and any existing AIs are converted or destroyed for(var/mob/living/L in range(1, invoker)) if(is_servant_of_ratvar(L) && L.stat == CONSCIOUS && L.can_speak_vocal()) for(var/invocation in invocations) - clockwork_say(L, invocation, whispered) + clockwork_say(L, text2ratvar(invocation), whispered) else for(var/invocation in invocations) - clockwork_say(invoker, invocation, whispered) + clockwork_say(invoker, text2ratvar(invocation), whispered) invoker << "You [channel_time <= 0 ? "recite" : "begin reciting"] a piece of scripture entitled \"[name]\"." if(!channel_time) - return 1 + return TRUE for(var/invocation in invocations) - if(!do_after(invoker, channel_time / invocations.len, target = invoker)) + if(!check_special_requirements() || !do_after(invoker, channel_time / invocations.len, target = invoker) || !check_special_requirements()) slab.busy = null - return 0 + return FALSE if(multiple_invokers_used) - for(var/mob/living/L in range(1, invoker)) + for(var/mob/living/L in range(1, get_turf(invoker))) if(is_servant_of_ratvar(L) && L.stat == CONSCIOUS && L.can_speak_vocal()) - clockwork_say(L, invocation, whispered) + clockwork_say(L, text2ratvar(invocation), whispered) else - clockwork_say(invoker, invocation, whispered) - return 1 + clockwork_say(invoker, text2ratvar(invocation), whispered) + return TRUE /datum/clockwork_scripture/proc/scripture_effects() //The actual effects of the recital after its conclusion - -/datum/clockwork_scripture/channeled //Channeled scripture begins instantly but runs constantly - var/list/chant_invocations = list("NLL YZNB") //"AYY LMAO" +//Channeled scripture begins instantly but runs constantly +/datum/clockwork_scripture/channeled + var/list/chant_invocations = list("AYY LMAO") var/chant_amount = 5 //Times the chant is spoken var/chant_interval = 10 //Amount of deciseconds between times the chant is actually spoken aloud +/datum/clockwork_scripture/channeled/check_offstation_penalty() + . = ..() + if(.) + chant_interval *= 2 + /datum/clockwork_scripture/channeled/scripture_effects() for(var/i in 1 to chant_amount) if(!can_recite()) break if(!do_after(invoker, chant_interval, target = invoker)) break - clockwork_say(invoker, pick(chant_invocations), whispered) + clockwork_say(invoker, text2ratvar(pick(chant_invocations)), whispered) chant_effects(i) if(invoker && slab) - invoker << "You cease your chant." chant_end_effects() - return 1 + return TRUE /datum/clockwork_scripture/channeled/proc/chant_effects(chant_number) //The chant's periodic effects + /datum/clockwork_scripture/channeled/proc/chant_end_effects() //The chant's effect upon ending + invoker << "You cease your chant." - -/datum/clockwork_scripture/create_object //Creates an object at the invoker's feet +//Creates an object at the invoker's feet +/datum/clockwork_scripture/create_object var/object_path = /obj/item/clockwork //The path of the object created var/creator_message = "You create a meme." //Shown to the invoker var/observer_message var/one_per_tile = FALSE var/prevent_path + var/space_allowed = FALSE /datum/clockwork_scripture/create_object/New() ..() @@ -157,1067 +237,60 @@ Judgement: 10 servants, 100 CV, and any existing AIs are converted or destroyed prevent_path = object_path /datum/clockwork_scripture/create_object/check_special_requirements() - if(one_per_tile && (locate(prevent_path) in get_turf(invoker))) + var/turf/T = get_turf(invoker) + if(!space_allowed && isspaceturf(T)) + invoker << "You need solid ground to place this object!" + return FALSE + if(one_per_tile && (locate(prevent_path) in T)) invoker << "You can only place one of this object on each tile!" - return 0 - return 1 + return FALSE + return TRUE /datum/clockwork_scripture/create_object/scripture_effects() if(creator_message && observer_message) invoker.visible_message(observer_message, creator_message) else if(creator_message) invoker << creator_message - new object_path (get_turf(invoker)) - return 1 + var/obj/O = new object_path (get_turf(invoker)) + O.ratvar_act() //update the new object so it gets buffed if ratvar is alive + if(istype(O, /obj/item)) + invoker.put_in_hands(O) + return TRUE -///////////// -// DRIVERS // -///////////// - -/datum/clockwork_scripture/channeled/belligerent //Belligerent: Channeled for up to ten times over thirty seconds. Forces non-servants that can hear the chant to walk. Nar-Sian cultists are burned. - descname = "Channeled, Area Slowdown" - name = "Belligerent" - desc = "Forces all nearby non-servants to walk rather than run. Chanted every three seconds for up to thirty seconds." - chant_invocations = list("Chav'fu gurve oyva-qarff!") //"Punish their blindness!" - chant_amount = 10 - chant_interval = 30 - required_components = list("belligerent_eye" = 1) - usage_tip = "Useful for crowd control in a populated area and disrupting mass movement." - tier = SCRIPTURE_DRIVER - -/datum/clockwork_scripture/channeled/belligerent/chant_effects(chant_number) - for(var/mob/living/L in hearers(7, invoker)) - if(!is_servant_of_ratvar(L) && L.m_intent != "walk" && !L.null_rod_check()) - if(!iscultist(L)) - L << "Your legs feel heavy and weak!" - else //Cultists take extra burn damage - L << "Your legs burn with pain!" - L.apply_damage(5, BURN, "l_leg") - L.apply_damage(5, BURN, "r_leg") - L.m_intent = "walk" - - - -/datum/clockwork_scripture/create_object/judicial_visor //Judicial Visor: Creates a judicial visor. - descname = "Delayed Area Stun Glasses" - name = "Judicial Visor" - desc = "Forms a visor that, when worn, will grant the ability to form a flame in your hand that can be activated at an area to smite it, stunning and damaging the nonfaithful. \ - Cultists of Nar-Sie will be set on fire, though they will be stunned for half the time." - invocations = list("Tenag zr gur synzrf-bs Ratvar!") - channel_time = 10 - required_components = list("belligerent_eye" = 2) - consumed_components = list("belligerent_eye" = 1) - whispered = TRUE - object_path = /obj/item/clothing/glasses/judicial_visor - creator_message = "You form a judicial visor, which is capable of smiting the unworthy." - usage_tip = "The visor has a thirty-second cooldown once used, and the marker it creates has a delay of 3 seconds before exploding." - tier = SCRIPTURE_DRIVER - - - -/datum/clockwork_scripture/vanguard //Vanguard: Provides thirty seconds of stun immunity. At the end of the thirty seconds, all stuns absorbed are stacked on the invoker. - descname = "Self Stun Immunity" - name = "Vanguard" - desc = "Provides thirty seconds of stun immunity. At the end of the thirty seconds, the invoker is stunned for the equivalent of how many stuns they absorbed. \ - Excessive absorption will cause unconsciousness." - invocations = list("Fuvryq zr...", "...sebz qnexarff!") //"Shield me from darkness!" - channel_time = 30 - required_components = list("vanguard_cogwheel" = 1) - usage_tip = "Your slab will be unusable while it is shielding you from stuns." - tier = SCRIPTURE_DRIVER - -/datum/clockwork_scripture/vanguard/scripture_effects() - for(var/obj/item/clockwork/slab/S in invoker.GetAllContents()) - S.busy = "Vanguard in progress" //To prevent circumventing the Vanguard by carrying multiple slabs - invoker.stun_absorption = TRUE - invoker.visible_message("[invoker] begins to faintly glow!", "You will absorb all stuns for the next thirty seconds.") - sleep(300) - if(!invoker) - return 0 - invoker.stun_absorption = FALSE - if(invoker.stun_absorption_count && invoker.stat != DEAD) - invoker.Stun(invoker.stun_absorption_count) - invoker.Weaken(invoker.stun_absorption_count) - invoker << "The weight of the vanguard's protection crashes down upon you!" - if(invoker.stun_absorption_count >= 25) - invoker << "You faint from the exertion!" - invoker.Paralyse(invoker.stun_absorption_count * 1.5) - invoker.stun_absorption_count = 0 - for(var/obj/item/clockwork/slab/S in invoker.GetAllContents()) - S.busy = null - return 1 - - - -/datum/clockwork_scripture/sentinels_compromise //Sentinel's Compromise: Allows the invoker to select a nearby servant convert their brute and burn damage into half as much toxin damage. - descname = "Convert Brute/Burn to Half Toxin" - name = "Sentinel's Compromise" - desc = "Heals all brute and burn damage on a nearby living, friendly servant, but deals 50% of that amount as toxin damage." - invocations = list("Zraq gur jbhaqf-bs...", "...zl vasrevbe syrfu.") //"Mend the wounds of my inferior flesh." - channel_time = 30 - required_components = list("vanguard_cogwheel" = 2) - consumed_components = list("vanguard_cogwheel" = 1) - usage_tip = "The Compromise is very fast to invoke." - tier = SCRIPTURE_DRIVER - -/datum/clockwork_scripture/sentinels_compromise/scripture_effects() - var/list/nearby_cultists = list() - for(var/mob/living/C in range(7, invoker)) - if(C.stat != DEAD && is_servant_of_ratvar(C) && (C.getBruteLoss() || C.getBruteLoss())) - nearby_cultists += C - if(!nearby_cultists.len) - invoker << "There are no eligible servants nearby!" - return 0 - var/mob/living/L = input(invoker, "Choose a fellow servant to heal.", name) as null|anything in nearby_cultists - if(!L || !invoker || !invoker.canUseTopic(slab)) - return 0 - var/brutedamage = L.getBruteLoss() - var/burndamage = L.getFireLoss() - var/totaldamage = brutedamage + burndamage - if(!totaldamage) - invoker << "[L] is not burned or bruised!" - return 0 - L.adjustToxLoss(totaldamage * 0.5) - L.adjustBruteLoss(-brutedamage) - L.adjustFireLoss(-burndamage) - var/healseverity = max(round(totaldamage*0.05, 1), 1) //shows the general severity of the damage you just healed, 1 glow per 20 - var/targetturf = get_turf(L) - for(var/i in 1 to healseverity) - PoolOrNew(/obj/effect/overlay/temp/heal, list(targetturf, "#1E8CE1")) - invoker << "You bathe [L] in Inath-Neq's power!" - L.visible_message("A blue light washes over [L], mending their bruises and burns!", \ - "You feel Inath-Neq's power healing your wounds, but a deep nausea overcomes you!") - playsound(targetturf, 'sound/magic/Staff_Healing.ogg', 50, 1) - return 1 - - - -/datum/clockwork_scripture/guvax //Guvax: Converts anyone adjacent to the invoker after completion. - descname = "Melee Area Convert" - name = "Guvax" - desc = "Enlists all nearby living unshielded creatures into servitude to Ratvar. Also purges holy water from nearby servants." - invocations = list("Rayvtugra guvf urngura!", "Nyy ner vafrpgf orsber Ratvar!", "Chetr nyy hageh'guf naq ubabe Ratvar.") - channel_time = 60 - required_components = list("guvax_capacitor" = 1) - usage_tip = "Only works on those in melee range and does not penetrate mindshield implants. Much more efficient than a Sigil of Submission." - tier = SCRIPTURE_DRIVER - -/datum/clockwork_scripture/guvax/scripture_effects() - for(var/mob/living/L in hearers(1, get_turf(invoker))) //Affects silicons - if(!is_servant_of_ratvar(L)) - if(L.stat != DEAD) - add_servant_of_ratvar(L) - else - if(L.reagents && L.reagents.has_reagent("holywater")) - L.reagents.remove_reagent("holywater", 1000) - L << "Ratvar's light flares, banishing the darkness. Your devotion remains intact!" - for(var/mob/living/silicon/ai/A in range(1, get_turf(invoker))) //Seems necessary because AIs don't count as hearers for some reason - if(A.stat != DEAD) - add_servant_of_ratvar(A) - return 1 - - - -/datum/clockwork_scripture/channeled/taunting_tirade //Taunting Tirade: Channeled for up to ten times over thirty seconds. Confuses non-servants that can hear it and allows movement for a brief time after each channel - descname = "Channeled, Mobile Area Confusion" - name = "Taunting Tirade" - desc = "Confuses and dizzies all nearby non-servants with a short invocation, then allows movement for three seconds. Chanted every second for up to thirty-five seconds." - chant_invocations = list("Ubfgvyrf ba zl onpx!", "Rarzvrf ba zl genvy!", "Tbaan gel naq funxr zl gnvy.", "Obtrlf ba zl fvk!") - chant_amount = 10 - chant_interval = 5 - required_components = list("guvax_capacitor" = 2) - consumed_components = list("guvax_capacitor" = 1) - usage_tip = "Useful for fleeing attackers, as few will be able to follow someone using this scripture." - tier = SCRIPTURE_DRIVER - var/flee_time = 27 //allow fleeing for 3 seconds - var/grace_period = 3 //very short grace period so you don't have to stop immediately +//Uses a ranged slab ability, returning only when the ability no longer exists(ie, when interrupted) or finishes. +/datum/clockwork_scripture/ranged_ability + var/slab_icon = "dread_ipad" + var/ranged_type = /obj/effect/proc_holder/slab + var/ranged_message = "This is a huge goddamn bug, how'd you cast this?" + var/timeout_time = 0 var/datum/progressbar/progbar -/datum/clockwork_scripture/channeled/taunting_tirade/chant_effects(chant_number) - for(var/mob/living/L in hearers(7, invoker)) - if(!is_servant_of_ratvar(L) && !L.null_rod_check()) - L.confused = min(L.confused + 20, 100) - L.dizziness = min(L.dizziness + 20, 100) - if(chant_number != chant_amount) //if this is the last chant, we don't have a movement period because the chant is over - invoker.visible_message("[invoker] is suddenly covered with a thin layer of dark purple smoke!") - invoker.color = "#AF0AAF" - animate(invoker, color = initial(invoker.color), time = flee_time+grace_period) - var/endtime = world.time + flee_time - var/starttime = world.time - progbar = new(invoker, flee_time, invoker) - progbar.bar.color = "#AF0AAF" - animate(progbar.bar, color = initial(progbar.bar.color), time = flee_time+grace_period) - while(world.time < endtime) - sleep(1) - progbar.update(world.time - starttime) - qdel(progbar) - sleep(grace_period) - -/datum/clockwork_scripture/channeled/taunting_tirade/chant_end_effects() +/datum/clockwork_scripture/ranged_ability/Destroy() qdel(progbar) - - - -/datum/clockwork_scripture/replicant //Replicant: Creates a new clockwork slab. Doesn't use create_object because of its unique behavior. - descname = "New Clockwork Slab" - name = "Replicant" - desc = "Creates a new clockwork slab." - invocations = list("Z`rgny, orpbzr terngre!") - channel_time = 0 - required_components = list("replicant_alloy" = 1) - whispered = TRUE - usage_tip = "This is inefficient as a way to produce components, as the slab produced must be held by someone with no other slabs to produce components." - tier = SCRIPTURE_DRIVER - -/datum/clockwork_scripture/replicant/scripture_effects() - invoker << "You copy a piece of replicant alloy and command it into a new slab." //No visible message, for stealth purposes - var/obj/item/clockwork/slab/S = new(get_turf(invoker)) - invoker.put_in_hands(S) //Put it in your hands if possible - return 1 - - - -/datum/clockwork_scripture/create_object/tinkerers_cache //Tinkerer's Cache: Creates a tinkerer's cache. - descname = "Necessary, Shares Components" - name = "Tinkerer's Cache" - desc = "Forms a cache that can store an infinite amount of components. All caches are linked and will provide components to slabs." - invocations = list("Ohv’yqva...", "...n qvfcra’fre!") - channel_time = 50 - required_components = list("replicant_alloy" = 2) - consumed_components = list("replicant_alloy" = 1) - object_path = /obj/structure/clockwork/cache - creator_message = "You form a tinkerer's cache, which is capable of storing components, which will automatically be used by slabs." - observer_message = "A hollow brass spire rises and begins to blaze!" - usage_tip = "Slabs will draw components from the global cache after the slab's own repositories, making caches very efficient." - tier = SCRIPTURE_DRIVER - one_per_tile = TRUE - - - -/datum/clockwork_scripture/create_object/wraith_spectacles //Wraith Spectacles: Creates a pair of wraith spectacles. - descname = "Xray Vision Glasses" - name = "Wraith Spectacles" - desc = "Fabricates a pair of glasses that provides true sight but quickly damage vision, eventually causing blindness if worn for too long." - invocations = list("Y'vsg gur fpnyrf sebz zl rl-rf.") - channel_time = 10 - required_components = list("hierophant_ansible" = 1) - whispered = TRUE - object_path = /obj/item/clothing/glasses/wraith_spectacles - creator_message = "You form a pair of wraith spectacles, which will grant true sight when worn." - usage_tip = "\"True sight\" means that you are able to see through walls and in darkness." - tier = SCRIPTURE_DRIVER - - - -/datum/clockwork_scripture/create_object/sigil_of_transgression //Sigil of Transgression: Creates a sigil of transgression. - descname = "Stun Trap" - name = "Sigil of Transgression" - desc = "Wards a tile with a sigil. The next person to cross the sigil will be smitten and unable to move. Nar-Sian cultists are stunned altogether." - invocations = list("Qvivavgl, qnmmyr...", "...gubfr jub gerffcnff'urer!") //"Divinity, dazzle those who trespass here!" - channel_time = 50 - required_components = list("hierophant_ansible" = 2) - consumed_components = list("hierophant_ansible" = 1) - whispered = TRUE - object_path = /obj/effect/clockwork/sigil/transgression - creator_message = "A sigil silently appears below you. The next non-servant to cross it will be immobilized." - usage_tip = "The sigil, while fairly powerful in its stun, does not induce muteness in its victim." - tier = SCRIPTURE_DRIVER - one_per_tile = TRUE - -///////////// -// SCRIPTS // -///////////// - -/datum/clockwork_scripture/create_object/ocular_warden //Ocular Warden: Creates an ocular warden. - descname = "Turret" - name = "Ocular Warden" - desc = "Forms an automatic short-range turret that deals low sustained damage to the unenlightened in its range." - invocations = list("Thne’qvnaf...", "...bs gur Ratvar...", "...qrs’raq!") - channel_time = 120 - required_components = list("belligerent_eye" = 2, "replicant_alloy" = 1) - consumed_components = list("belligerent_eye" = 1, "replicant_alloy" = 1) - object_path = /obj/structure/clockwork/ocular_warden - creator_message = "You form an ocular warden, which will focus its searing gaze upon nearby unenlightened." - observer_message = "A brass eye takes shape and slowly rises into the air, its red iris glaring!" - usage_tip = "Although powerful, the warden is very weak and should optimally be placed behind barricades." - tier = SCRIPTURE_SCRIPT - one_per_tile = TRUE - -/datum/clockwork_scripture/create_object/ocular_warden/check_special_requirements() - for(var/obj/structure/clockwork/ocular_warden/W in range(3, invoker)) - invoker << "You sense another ocular warden too near this location. Placing another this close would cause them to fight." //fluff message - return 0 return ..() - -/datum/clockwork_scripture/channeled/volt_void //Volt Void: Channeled for up to thirty times over thirty seconds. Consumes power from most power storages and deals slight burn damage to the invoker. - descname = "Channeled, Area Power Drain" - name = "Volt Void" //Alternative name: "On all levels but physical, I am a power sink" - desc = "Drains energy from nearby power sources, dealing burn damage if the total power consumed is above a threshhold. Channeled every second for a maximum of thirty seconds." - chant_invocations = list("Qenj punetr gb guv’f furyy!") - chant_amount = 30 - chant_interval = 10 - required_components = list("guvax_capacitor" = 1, "hierophant_ansible" = 2) - consumed_components = list("guvax_capacitor" = 1, "hierophant_ansible" = 1) - usage_tip = "If standing on a Sigil of Transmission, will transfer power to it. Augumented limbs will also be healed unless above a very high threshhold." - tier = SCRIPTURE_SCRIPT - var/total_power_drained = 0 - var/power_damage_threshhold = 3000 - var/augument_damage_threshhold = 6000 - -/datum/clockwork_scripture/channeled/volt_void/chant_effects(chant_number) - playsound(invoker, 'sound/effects/EMPulse.ogg', 50, 1) - var/power_drained = 0 - for(var/obj/machinery/power/apc/A in view(7, invoker)) - if(A.cell && A.cell.charge) - playsound(A, "sparks", 50, 1) - flick("apc-spark", A) - power_drained += min(A.cell.charge, 500) - A.cell.charge = max(0, A.cell.charge - 500) //Better than a power sink! - if(!A.cell.charge && !A.shorted) - A.shorted = 1 - A.visible_message("The [A.name]'s screen blurs with static.") - A.update() - A.update_icon() - for(var/obj/machinery/power/smes/S in view(7, invoker)) - if(S.charge) - power_drained += min(S.charge, 500) - S.charge = max(0, S.charge - 50000) - if(!S.charge && !S.panel_open) - S.panel_open = TRUE - S.icon_state = "[initial(S.icon_state)]-o" - var/datum/effect_system/spark_spread/spks = new(get_turf(S)) - spks.set_up(10, 0, get_turf(S)) - spks.start() - S.visible_message("[S]'s panel flies open with a flurry of sparks.") - S.update_icon() - for(var/obj/item/weapon/stock_parts/cell/C in view(7, invoker)) - if(C.charge) - power_drained += min(C.charge, 500) - C.charge = C.use(max(0, C.charge - 500)) - C.updateicon() - for(var/obj/machinery/light/L in view(7, invoker)) - if(L.on) - playsound(L, 'sound/effects/light_flicker.ogg', 50, 1) - L.flicker(2) - power_drained += 50 - for(var/mob/living/silicon/robot/R in view(7, invoker)) - if(!is_servant_of_ratvar(R) && R.cell && R.cell.charge) - power_drained += min(R.cell.charge, 500) - R.cell.charge = max(0, R.cell.charge - 500) - R << "ERROR: Power loss detected!" - var/datum/effect_system/spark_spread/spks = new(get_turf(R)) - spks.set_up(3, 0, get_turf(R)) - spks.start() - var/obj/effect/clockwork/sigil/transmission/ST = locate(/obj/effect/clockwork/sigil/transmission) in get_turf(invoker) - if(ST && power_drained >= 50) - var/sigil_drain = 0 - while(power_drained >= 50) - ST.modify_charge(-50) - power_drained -= 50 - sigil_drain += 10 - power_drained += sigil_drain //readd part of the power given to the sigil to the power drained this cycle - ST.visible_message("[ST] flares a brilliant orange!") - total_power_drained += power_drained - if(power_drained >= 100 && total_power_drained >= power_damage_threshhold) - var/power_damage = power_drained * 0.01 - invoker.visible_message("[invoker] flares a brilliant orange!", "You feel the warmth of electricity running into your body.") - if(ishuman(invoker)) - var/mob/living/carbon/human/H = invoker - for(var/X in H.bodyparts) - var/obj/item/bodypart/BP = X - if(ratvar_awakens || BP.status == ORGAN_ROBOTIC && total_power_drained < augument_damage_threshhold) //if ratvar is alive, it won't damage and will always heal augumented limbs - BP.heal_damage(power_damage, power_damage, 1) //heals one point of burn and brute for every ~100W drained on augumented limbs - else - BP.take_damage(0, power_damage) - else if(isanimal(invoker)) - var/mob/living/simple_animal/A = invoker - A.adjustHealth(-power_damage) //if a simple animal is using volt void, just heal it - return 1 - - - -/datum/clockwork_scripture/create_object/clockwork_proselytizer //Clockwork Proselytizer: Creates a clockwork proselytizer. - descname = "Necessary, Converts Objects" - name = "Clockwork Proselytizer" - desc = "Forms a device that, when used on certain objects, converts them into their Ratvarian equivalents. It requires replicant alloys to function." - invocations = list("Jvgu guv’f qrivpr...", "...uvf cerfrapr funyy or znqr xabja.") - channel_time = 20 - required_components = list("guvax_capacitor" = 1, "replicant_alloy" = 2) - consumed_components = list("guvax_capacitor" = 1, "replicant_alloy" = 1) - whispered = TRUE - object_path = /obj/item/clockwork/clockwork_proselytizer/preloaded - creator_message = "You form a clockwork proselytizer, which is already pre-loaded with a small amount of replicant alloy." - usage_tip = "Clockwork walls cause adjacent tinkerer's caches to generate components passively, making them a vital tool. Clockwork floors heal servants standing on them." - tier = SCRIPTURE_SCRIPT - - - -/datum/clockwork_scripture/fellowship_armory //Fellowship Armory: Arms the invoker and nearby servants with Ratvarian armor. - descname = "Area Servant Armor" - name = "Fellowship Armory" - desc = "Equips the invoker and any nearby servants with Ratvarian armor. This armor provides high melee resistance but a weakness to lasers. \ - It grows faster to invoke with more nearby servants." - invocations = list("Fuvryq zr...", "...jvgu gur sentzragf...", "...bs Ratvar!") - channel_time = 110 //effectively 100 because it counts the invoker - required_components = list("vanguard_cogwheel" = 2, "replicant_alloy" = 1) - consumed_components = list("vanguard_cogwheel" = 1, "replicant_alloy" = 1) - usage_tip = "Before using, advise adjacent allies to remove their helmets, external suits, gloves, and shoes." - tier = SCRIPTURE_SCRIPT - multiple_invokers_used = TRUE - multiple_invokers_optional = TRUE - -/datum/clockwork_scripture/fellowship_armory/run_scripture() - for(var/mob/living/L in range(1, invoker)) - if(is_servant_of_ratvar(L) && L.can_speak_vocal()) - channel_time = max(channel_time - 10, 0) - return ..() - -/datum/clockwork_scripture/fellowship_armory/scripture_effects() - for(var/mob/living/L in range(1, invoker)) - if(!is_servant_of_ratvar(L)) - continue - L.visible_message("Strange armor appears on [L]!", "A bright shimmer runs down your body, equipping you with Ratvarian armor.") - playsound(L, 'sound/magic/clockwork/fellowship_armory.ogg', 50, 1) - L.equip_to_slot_or_del(new/obj/item/clothing/head/helmet/clockwork(null), slot_head) - L.equip_to_slot_or_del(new/obj/item/clothing/suit/armor/clockwork(null), slot_wear_suit) - L.equip_to_slot_or_del(new/obj/item/clothing/gloves/clockwork(null), slot_gloves) - L.equip_to_slot_or_del(new/obj/item/clothing/shoes/clockwork(null), slot_shoes) - return 1 - - - -/datum/clockwork_scripture/function_call //Function Call: Grants the invoker the ability to call forth a Ratvarian spear that deals significant damage to silicons. - descname = "Summonable Spear" - name = "Function Call" - desc = "Grants the invoker the ability to call forth a powerful Ratvarian spear that will deal significant damage to Nar-Sie's dogs in addition to silicon lifeforms. \ - It will vanish five minutes after being called." - invocations = list("Tenag zr...", "...gur zvtug-bs oenff!") - channel_time = 20 - required_components = list("replicant_alloy" = 2, "hierophant_ansible" = 1) - consumed_components = list("replicant_alloy" = 1, "hierophant_ansible" = 1) - whispered = TRUE - usage_tip = "You can impale human targets with the spear by pulling them, then attacking. Throwing the spear at a mob will do massive damage, but break the spear." - tier = SCRIPTURE_SCRIPT - -/datum/clockwork_scripture/function_call/check_special_requirements() - for(var/datum/action/innate/function_call/F in invoker.actions) - invoker << "You have already bound a Ratvarian spear to yourself!" - return 0 - return ishuman(invoker) - -/datum/clockwork_scripture/function_call/scripture_effects() - invoker.visible_message("A shimmer of yellow light infuses [invoker]!", \ - "You bind a Ratvarian spear to yourself. Use the \"Function Call\" action button to call it forth.") - var/datum/action/innate/function_call/F = new() - F.Grant(invoker) - return 1 - - -/datum/clockwork_scripture/spatial_gateway - descname = "Teleport Gate" - name = "Spatial Gateway" - desc = "Tears open a miniaturized gateway in spacetime to any conscious servant that can transport objects or creatures to its destination. \ - Each servant assisting in the invocation adds one additional use and four additional seconds to the gateway's uses and duration." - invocations = list("Gryrcbegre...", "...pbzva evtug-hc!") - channel_time = 80 - required_components = list("vanguard_cogwheel" = 1, "hierophant_ansible" = 2) - consumed_components = list("vanguard_cogwheel" = 1, "hierophant_ansible" = 1) - multiple_invokers_used = TRUE - multiple_invokers_optional = TRUE - usage_tip = "This gateway is strictly one-way and will only allow things through the invoker's portal." - tier = SCRIPTURE_SCRIPT - -/datum/clockwork_scripture/spatial_gateway/check_special_requirements() - if(!isturf(invoker.loc)) - invoker << "You must not be inside an object to use this scripture!" - return 0 - var/other_servants = 0 - for(var/mob/living/L in living_mob_list) - if(is_servant_of_ratvar(L) && !L.stat != DEAD) - other_servants++ - for(var/obj/structure/clockwork/powered/clockwork_obelisk/O in all_clockwork_objects) - other_servants++ - if(!other_servants) - invoker << "There are no other servants or clockwork obelisks!" - return 0 - return 1 - -/datum/clockwork_scripture/spatial_gateway/scripture_effects() - var/portal_uses = 0 - var/duration = 0 - for(var/mob/living/L in range(1, invoker)) - if(!L.stat && is_servant_of_ratvar(L)) - portal_uses++ - duration += 40 //4 seconds - if(ratvar_awakens) - portal_uses = max(portal_uses, 100) //Very powerful if Ratvar has been summoned - duration = max(duration, 100) - return invoker.procure_gateway(invoker, duration, portal_uses) - - - -/datum/clockwork_scripture/create_object/soul_vessel //Soul Vessel: Creates a soul vessel - descname = "Clockwork Posibrain" - name = "Soul Vessel" - desc = "Forms an ancient positronic brain with an overriding directive to serve Ratvar." - invocations = list("Ureq'gur fbhyf-bs...", "...gur oynf curz-bhf qnzarq!") - channel_time = 20 - required_components = list("vanguard_cogwheel" = 1, "guvax_capacitor" = 2) - consumed_components = list("vanguard_cogwheel" = 1, "guvax_capacitor" = 1) - whispered = TRUE - object_path = /obj/item/device/mmi/posibrain/soul_vessel - creator_message = "You form a soul vessel, which immediately begins drawing in the damned." - usage_tip = "The vessel functions as a servant for tier unlocking but not for invocation." - tier = SCRIPTURE_SCRIPT - - - -/datum/clockwork_scripture/create_object/cogscarab //Cogscarab: Creates an empty cogscarab shell - descname = "Constructor Soul Vessel Shell" - name = "Cogscarab" - desc = "Creates a small shell fitted for soul vessels. Adding an active soul vessel to it results in a small construct with tools and an inbuilt proselytizer." - invocations = list("Pnyy sbegu...", "...gur jbexref-bs Nezbere.") - channel_time = 50 - required_components = list("belligerent_eye" = 2, "hierophant_ansible" = 1) - consumed_components = list("belligerent_eye" = 1, "hierophant_ansible" = 1) - object_path = /obj/structure/clockwork/shell/cogscarab - creator_message = "You form a cogscarab, a constructor soul vessel receptable." - observer_message = "The slab disgorges a puddle of black metal that contracts and forms into a strange shell!" - usage_tip = "Useless without a soul vessel and should not be created without one." - tier = SCRIPTURE_SCRIPT - - - -/datum/clockwork_scripture/create_object/sigil_of_submission //Sigil of Submission: Creates a sigil of submission. - descname = "Conversion Trap" - name = "Sigil of Submission" - desc = "Places a luminous sigil that will enslave any valid beings standing on it after a time." - invocations = list("Qvivavgl, rayvtugra...", "...gubfr jub gerfcnff urer!") - channel_time = 60 - required_components = list("belligerent_eye" = 1, "guvax_capacitor" = 2) - consumed_components = list("belligerent_eye" = 1, "guvax_capacitor" = 1) - whispered = TRUE - object_path = /obj/effect/clockwork/sigil/submission - creator_message = "A luminous sigil appears below you. The next non-servant to cross it will be enslaved after a brief time if they do not move." - usage_tip = "This is not a primary conversion method - use Guvax for that. It is advantageous as a trap, however, as it will transmit the name of the newly-converted." - tier = SCRIPTURE_SCRIPT - one_per_tile = TRUE - - -////////////////// -// APPLICATIONS // -////////////////// - -/datum/clockwork_scripture/create_object/anima_fragment //Anima Fragment: Creates an empty anima fragment - descname = "Fast Soul Vessel Shell" - name = "Anima Fragment" - desc = "Creates a large shell fitted for soul vessels. Adding an active soul vessel to it results in a powerful construct with decent health, notable melee power, \ - and exceptional speed, though taking damage will temporarily slow it down." - invocations = list("Pnyy sbegu...", "...gur fbyqvref-bs Nezbere.") - channel_time = 70 - required_components = list("belligerent_eye" = 1, "vanguard_cogwheel" = 1, "replicant_alloy" = 3) - consumed_components = list("belligerent_eye" = 1, "vanguard_cogwheel" = 1, "replicant_alloy" = 2) - object_path = /obj/structure/clockwork/shell/fragment - creator_message = "You form an anima fragment, a powerful soul vessel receptable." - observer_message = "The slab disgorges a puddle of black metal that expands and forms into a strange shell!" - usage_tip = "Useless without a soul vessel and should not be created without one." - tier = SCRIPTURE_APPLICATION - - - -/datum/clockwork_scripture/create_object/sigil_of_accession //Sigil of Accession: Creates a sigil of accession. - descname = "Permenant Conversion Trap" - name = "Sigil of Accession" - desc = "Places a luminous sigil much like a Sigil of Submission, but it will remain even after successfully converting a non-implanted target. \ - It will penetrate mindshield implants once before disappearing." - invocations = list("Qvivavgl, rafynir...", "...nyy jub gerfcnff urer!") - channel_time = 70 - required_components = list("belligerent_eye" = 3, "guvax_capacitor" = 1, "hierophant_ansible" = 1) - consumed_components = list("belligerent_eye" = 2, "guvax_capacitor" = 1, "hierophant_ansible" = 1) - whispered = TRUE - object_path = /obj/effect/clockwork/sigil/submission/accession - prevent_path = /obj/effect/clockwork/sigil/submission - creator_message = "A luminous sigil appears below you. All non-servants to cross it will be enslaved after a brief time if they do not move." - usage_tip = "It will remain after converting a target, unless that target has a mindshield implant, which it will break to convert them, but consume itself in the process." - tier = SCRIPTURE_APPLICATION - one_per_tile = TRUE - - - -/datum/clockwork_scripture/create_object/sigil_of_transmission - descname = "Structure Battery" - name = "Sigil of Transmission" - desc = "Scribes a sigil beneath the invoker which stores power to power clockwork structures." - invocations = list("Qvivavgl...", "punetr gur-znpuvarf!") - channel_time = 70 - required_components = list("vanguard_cogwheel" = 1, "guvax_capacitor" = 1, "hierophant_ansible" = 3) - consumed_components = list("vanguard_cogwheel" = 1, "guvax_capacitor" = 1, "hierophant_ansible" = 2) - whispered = TRUE - object_path = /obj/effect/clockwork/sigil/transmission - creator_message = "A sigil silently appears below you. It will automatically power clockwork structures adjecent to it." - usage_tip = "Can be recharged by using Volt Void while standing on it." - tier = SCRIPTURE_APPLICATION - one_per_tile = TRUE - - - -/datum/clockwork_scripture/create_object/vitality_matrix - descname = "Damage Trap" - name = "Vitality Matrix" - desc = "Scribes a sigil beneath the invoker which drains life from any living non-servants that cross it. Servants that cross it, however, will be healed based on how much it drained from non-servants. \ - Dead servants can be revived by this sigil if it has enough stored vitality." - invocations = list("Qvivavgl...", "fgrny gur've yvsr...", "sbe guv'f furyy!") - channel_time = 70 - required_components = list("belligerent_eye" = 1, "vanguard_cogwheel" = 3, "hierophant_ansible" = 1) - consumed_components = list("belligerent_eye" = 1, "vanguard_cogwheel" = 2, "hierophant_ansible" = 1) - whispered = TRUE - object_path = /obj/effect/clockwork/sigil/vitality - creator_message = "A vitality matrix appears below you. It will drain life from non-servants and heal servants that cross it." - usage_tip = "To revive a servant, the sigil must have 20 vitality plus the target servant's non-oxygen damage. It will still heal dead servants if it lacks the vitality to outright revive them." - tier = SCRIPTURE_APPLICATION - one_per_tile = TRUE - - -/datum/clockwork_scripture/memory_allocation //Memory Allocation: Finds a willing ghost and makes them into a clockwork marauders for the invoker. - descname = "Guardian" - name = "Memory Allocation" - desc = "Allocates part of your consciousness to a Clockwork Marauder, a vigilent fighter similar to the alien holoparasites employed by the Syndicate; It lives within you, able to be \ - called forth by Speaking its True Name or if you become exceptionally low on health.
    \ - Unlike holoparasites, however, it does not transfer the damage it takes to you, instead simply gaining Fatigue as it is attacked. Marauders cannot move too far from their hosts, \ - and will gain Fatigue at an increasing rate as they grow farther away. At maximum Fatigue, the marauder is forced to return to you and will be unable to manifest until its Fatigue is at zero." - invocations = list("Pnyy sbegu...", "Sevtug'f jvyy, gur zvaq znqr fjbeq-naq-fuvryq.") - channel_time = 100 - required_components = list("belligerent_eye" = 1, "vanguard_cogwheel" = 1, "guvax_capacitor" = 3) - consumed_components = list("belligerent_eye" = 1, "vanguard_cogwheel" = 1, "guvax_capacitor" = 2) - usage_tip = "Marauders are useful as personal bodyguards and frontline warriors, although they do little damage." - tier = SCRIPTURE_APPLICATION - -/datum/clockwork_scripture/memory_allocation/check_special_requirements() - for(var/mob/living/simple_animal/hostile/clockwork/marauder/M in living_mob_list) - if(M.host == invoker) - invoker << "You can only house one marauder at a time!" - return 0 - return 1 - -/datum/clockwork_scripture/memory_allocation/scripture_effects() - return create_marauder() - -/datum/clockwork_scripture/memory_allocation/proc/create_marauder() - invoker.visible_message("A yellow tendril appears from [invoker]'s [slab.name] and impales itself in their forehead!", \ - "A tendril flies from [slab] into your forehead. You begin waiting while it painfully rearranges your thought pattern...") - invoker.notransform = TRUE //Vulnerable during the process - slab.busy = "Thought modification in process" - if(!do_after(invoker, 50, target = invoker)) - invoker.visible_message("The tendril, covered in blood, retracts from [invoker]'s head and back into the [slab.name]!", \ - "Total agony overcomes you as the tendril is forced out early!") - invoker.notransform = FALSE - invoker.Stun(5) - invoker.Weaken(5) - invoker.apply_damage(10, BRUTE, "head") - slab.busy = null - return 0 - invoker.notransform = FALSE - slab.busy = null - if(!check_special_requirements()) - return 0 - invoker << "The tendril shivers slightly as it selects a marauder..." - var/list/marauder_candidates = pollCandidates("Do you want to play as the clockwork marauder of [invoker.real_name]?", ROLE_SERVANT_OF_RATVAR, null, FALSE, 100) - if(!check_special_requirements()) - return 0 - if(!marauder_candidates.len) - invoker.visible_message("The tendril retracts from [invoker]'s head, sealing the entry wound as it does so!", \ - "The tendril was unsuccessful! Perhaps you should try again another time.") - return 0 - var/mob/dead/observer/theghost = pick(marauder_candidates) - var/mob/living/simple_animal/hostile/clockwork/marauder/M = new(invoker) - M.key = theghost.key - M.host = invoker - M << M.playstyle_string - M << "Your true name is \"[M.true_name]\". You can change this once by using the Change True Name verb in your Marauder tab." - add_servant_of_ratvar(M, TRUE) - invoker.visible_message("The tendril retracts from [invoker]'s head, sealing the entry wound as it does so!", \ - "The procedure was successful! [M.true_name], a clockwork marauder, has taken up residence in your mind. Communicate with it via the \"Linked Minds\" ability in the \ - Clockwork tab.") - invoker.verbs += /mob/living/proc/talk_with_marauder - return 1 - - - -/datum/clockwork_scripture/create_object/interdiction_lens //Interdiction Lens: Creates a powerful totem that disables radios and cameras and drains power into nearby sigils. - descname = "Structure, Disables Machinery" - name = "Interdiction Lens" - desc = "Creates a clockwork totem that sabotages nearby machinery and funnels drained power into nearby Sigils of Transmission." - invocations = list("Znl guvf gbgrz...", "...fuebhq gur snyfr fhaf!") - channel_time = 80 - required_components = list("belligerent_eye" = 1, "replicant_alloy" = 4, "hierophant_ansible" = 1) - consumed_components = list("belligerent_eye" = 1, "replicant_alloy" = 3, "hierophant_ansible" = 1) - object_path = /obj/structure/clockwork/powered/interdiction_lens - creator_message = "You form an interdiction lens, which disrupts cameras and radios and drains power." - observer_message = "A brass totem rises from the ground, a purple gem appearing in its center!" - invokers_required = 2 - multiple_invokers_used = TRUE - usage_tip = "If it fails to funnel power into a nearby Sigil of Transmission and fails to disable even one thing, it will disable itself for two minutes." - tier = SCRIPTURE_APPLICATION - one_per_tile = TRUE - - - -/datum/clockwork_scripture/create_object/mending_motor //Mending Motor: Creates a prism that will quickly heal mechanical servants/clockwork structures and consume replicant alloy. - descname = "Structure, Repairs Other Structures" - name = "Mending Motor" - desc = "Creates a mechanized prism that will rapidly repair damage to clockwork creatures, converted cyborgs, and clockwork structures. Requires replicant alloy or power to function." - invocations = list("Znl guvf cevfz...", "...zraq bhe qragf naq fpengpurf!") - channel_time = 80 - required_components = list("vanguard_cogwheel" = 4, "guvax_capacitor" = 1, "replicant_alloy" = 1) - consumed_components = list("vanguard_cogwheel" = 3, "guvax_capacitor" = 1, "replicant_alloy" = 1) - object_path = /obj/structure/clockwork/powered/mending_motor/prefilled - creator_message = "You form a mending motor, which will consume power or replicant alloy to mend the wounds of mechanized servants." - observer_message = "An onyx prism forms in midair and sprouts tendrils to support itself!" - invokers_required = 2 - multiple_invokers_used = TRUE - usage_tip = "Powerful healing but power use is very inefficient, and its alloy use is little better." - tier = SCRIPTURE_APPLICATION - one_per_tile = TRUE - - - -/datum/clockwork_scripture/create_object/clockwork_obelisk //Clockwork Obelisk: Creates a powerful obelisk that can be used to broadcast messages or open a gateway to any servant or clockwork obelisk. - descname = "Structure, Teleportation Hub" - name = "Clockwork Obelisk" - desc = "Creates a clockwork obelisk that can broadcast messages over the Hierophant Network or open a Spatial Gateway to any living servant or clockwork obelisk." - invocations = list("Znl guvf boryvfx...", "...gnxr hf gb nyy cynprf!") - channel_time = 80 - required_components = list("vanguard_cogwheel" = 1, "replicant_alloy" = 1, "hierophant_ansible" = 4) - consumed_components = list("vanguard_cogwheel" = 1, "replicant_alloy" = 1, "hierophant_ansible" = 3) - object_path = /obj/structure/clockwork/powered/clockwork_obelisk - creator_message = "You form a clockwork obelisk which can broadcast messages or produce Spatial Gateways." - observer_message = "A brass obelisk appears handing in midair!" - invokers_required = 2 - multiple_invokers_used = TRUE - usage_tip = "Producing a gateway has a high power cost. Gateways to or between clockwork obelisks recieve double duration and uses." - tier = SCRIPTURE_APPLICATION - one_per_tile = TRUE - - - -/datum/clockwork_scripture/create_object/mania_motor //Mania Motor: Creates a powerful obelisk that can be used to broadcast messages or open a gateway to any servant or clockwork obelisk. - descname = "Structure, Area Denial" - name = "Mania Motor" - desc = "Creates a mania motor which will cause brain damage and hallucinations in nearby non-servant humans. It will also try to convert humans directly adjecent to the motor." - invocations = list("Znl guvf genafzvggre...", "...oernx gur jvyy bs nyy jub bccbfr hf!") - channel_time = 80 - required_components = list("guvax_capacitor" = 4, "replicant_alloy" = 1, "hierophant_ansible" = 1) - consumed_components = list("guvax_capacitor" = 3, "replicant_alloy" = 1, "hierophant_ansible" = 1) - object_path = /obj/structure/clockwork/powered/mania_motor - creator_message = "You form a mania motor which will cause brain damage and hallucinations in nearby humans while active." - observer_message = "A two-pronged machine rises from the ground!" - invokers_required = 2 - multiple_invokers_used = TRUE - usage_tip = "Eligible human servants next to the motor will be converted at an additonal power cost. It will also cure hallucinations and brain damage in nearby servants." - tier = SCRIPTURE_APPLICATION - one_per_tile = TRUE - - - -/datum/clockwork_scripture/create_object/tinkerers_daemon //Tinkerer's Daemon: Creates a shell that can be attached to a tinkerer's cache to grant it passive component creation. - descname = "Component Generator" - name = "Tinkerer's Daemon" - desc = "Forms a daemon shell that can be attached to a tinkerer's cache to add new components at a healthy rate. It will only function if it is outnumbered by servants in a ratio of 5:1." - invocations = list("Pbaf'gehpg Ratvar cnegf...", "...gun'g lrg ubyq terngarff!") - channel_time = 80 - required_components = list("belligerent_eye" = 3, "vanguard_cogwheel" = 3, "guvax_capacitor" = 3, "replicant_alloy" = 3, "hierophant_ansible" = 3) - consumed_components = list("belligerent_eye" = 1, "vanguard_cogwheel" = 1, "guvax_capacitor" = 1, "replicant_alloy" = 1, "hierophant_ansible" = 1) - object_path = /obj/item/clockwork/daemon_shell - creator_message = "You form a daemon shell. Attach it to a tinkerer's cache to increase its rate of production." - usage_tip = "Vital to your success!" - tier = SCRIPTURE_APPLICATION - -////////////// -// REVENANT // -////////////// -//Revenant scriptures are different than any others. They are all very powerful, but also very costly and have drawbacks. This might be a very long invocation time or a very high component cost. - -/datum/clockwork_scripture/invoke_nezbere //Invoke Nezbere, the Brass Eidolon: Invokes Nezbere, bolstering the strength of many clockwork items for one minute. - descname = "Structure Buff" - name = "Invoke Nezbere, the Brass Eidolon" - desc = "Taps the limitless power of Nezbere, one of Ratvar's four generals. The restless toil of the Eidolon will empower a wide variety of clockwork apparatus for a full minute - notably, \ - clockwork proselytizers will cost no replicant alloy to use." - invocations = list("V pnyy hcba lbh, Nezbere!!", "Yrg lbhe znpuv'angvbaf ervta ba guvf zvfrenoyr fgng'vba!!", "Yrg lbhe cbjre sybj gueb-htu gur gbbyf bs lbhe znfgre!!") - channel_time = 150 - required_components = list("belligerent_eye" = 3, "vanguard_cogwheel" = 3, "guvax_capacitor" = 3, "replicant_alloy" = 6) - consumed_components = list("belligerent_eye" = 3, "vanguard_cogwheel" = 3, "guvax_capacitor" = 3, "replicant_alloy" = 6) - usage_tip = "Ocular wardens will become empowered, clockwork proselytizers will require no alloy, tinkerer's daemons will produce twice as quickly, \ - and interdiction lenses, mending motors, mania motors, and clockwork obelisks will all require no power." - tier = SCRIPTURE_REVENANT - -/datum/clockwork_scripture/invoke_nezbere/check_special_requirements() - if(!slab.no_cost && clockwork_generals_invoked["nezbere"] > world.time) - invoker << "\"Abg whfg lrg, sevraq. Cngvrapr vf n iveghr.\"\n\ - Nezbere has already been invoked recently! You must wait several minutes before calling upon the Brass Eidolon." - return 0 - if(!slab.no_cost && ratvar_awakens) - invoker << "\"Bhe znfgre vf urer nyernql. Lbh qb abg erdhver zl uryc, sevraq.\"\n\ - Nezbere will not grant his power while Ratvar's dwarfs his own!" - return 0 - return 1 - -/datum/clockwork_scripture/invoke_nezbere/scripture_effects() - var/obj/effect/clockwork/general_marker/nezbere/N = new(get_turf(invoker)) - N.visible_message("\"V urrq lbhe pnyy, punz'cvbaf. Znl lbhe negvs-npgf oevat ehva hcba gur urnguraf gung bccbfr bhe znfgre!\"") - clockwork_generals_invoked["nezbere"] = world.time + CLOCKWORK_GENERAL_COOLDOWN - for(var/obj/structure/clockwork/ocular_warden/W in all_clockwork_objects) //Ocular wardens have increased damage and radius - W.damage_per_tick *= 1.5 - W.sight_range *= 2 - for(var/obj/item/clockwork/clockwork_proselytizer/P in all_clockwork_objects) //Proselytizers no longer require alloy - P.uses_alloy = FALSE - for(var/obj/item/clockwork/tinkerers_daemon/D in all_clockwork_objects) //Daemons produce components twice as quickly - D.production_time *= 0.5 - for(var/obj/structure/clockwork/powered/M in all_clockwork_objects) //Powered clockwork structures no longer need power - M.needs_power = FALSE - spawn(600) - for(var/obj/structure/clockwork/ocular_warden/W in all_clockwork_objects) - W.damage_per_tick = initial(W.damage_per_tick) - W.sight_range = initial(W.sight_range) - for(var/obj/item/clockwork/clockwork_proselytizer/P in all_clockwork_objects) - P.uses_alloy = initial(P.uses_alloy) - for(var/obj/item/clockwork/tinkerers_daemon/D in all_clockwork_objects) - D.production_time = initial(D.production_time) - for(var/obj/structure/clockwork/powered/M in all_clockwork_objects) - M.needs_power = initial(M.needs_power) - return 1 - - - -/datum/clockwork_scripture/invoke_sevtug //Invoke Sevtug, the Formless Pariah: Causes massive global hallucinations, braindamage, confusion, and dizziness to all humans on the same zlevel. - descname = "Global Hallucination" - name = "Invoke Sevtug, the Formless Pariah" - desc = "Taps the limitless power of Sevtug, one of Ratvar's four generals. The mental manipulation ability of the Pariah allows its wielder to cause mass hallucinations and confusion \ - for all non-servant humans on the same z-level as them. The power of this scripture falls off somewhat with distance, and certain things may reduce its effects." - invocations = list("V pnyy hcba lbh, Sevtug!!", "Yrg lbhe cbjre fung-gre gur fnavgl bs gur jrnx-zvaqrq!!", "Yrg lbhe graqevyf ubyq fjnl bire nyy!!") - channel_time = 150 - required_components = list("belligerent_eye" = 3, "vanguard_cogwheel" = 3, "guvax_capacitor" = 6, "hierophant_ansible" = 3) - consumed_components = list("belligerent_eye" = 3, "vanguard_cogwheel" = 3, "guvax_capacitor" = 6, "hierophant_ansible" = 3) - usage_tip = "Causes brain damage, hallucinations, confusion, and dizziness in massive amounts." - tier = SCRIPTURE_REVENANT - var/list/mindbreaksayings = list("\"Bu, terng. V trg gb funggre fbzr zvaqf.\"", "\"Zber zvaqf gb pehfu.\"", \ - "\"Ernyyl, guvf vf nyzbfg obevat.\"", "\"Abar-bs gur'fr zvaqf unir nalguvat vagrerfgvat va gur'z.\"", "\"Znlor V pna vafgvyy n yvggyr ovg bs greebe va guv'f bar.\"", \ - "\"Jung n jnfgr-bs zl cbjre.\"", "\"V'z fher V pbhyq whfg pbageby gur'fr zvaqf vafgrnq, ohg gur'l arire nfx.\"") - -/datum/clockwork_scripture/invoke_sevtug/check_special_requirements() - if(!slab.no_cost && clockwork_generals_invoked["sevtug"] > world.time) - invoker << "\"Vf vg ernyyl fb uneq - rira sbe n fvzcyrgba yvxr lbh - gb tenfc gur pbaprcg bs jnvgvat?\"\n\ - Sevtug has already been invoked recently! You must wait several minutes before calling upon the Formless Pariah." - return 0 - if(!slab.no_cost && ratvar_awakens) - invoker << "\"Qb lbh ernyyl guvax nalguvat V pna qb evtug abj jvyy pbzcner gb Ratvar's cbjre?.\"\n\ - Sevtug will not grant his power while Ratvar's dwarfs his own!" - return 0 - return ..() - -/datum/clockwork_scripture/invoke_sevtug/scripture_effects() - new/obj/effect/clockwork/general_marker/sevtug(get_turf(invoker)) - clockwork_generals_invoked["sevtug"] = world.time + CLOCKWORK_GENERAL_COOLDOWN - var/hum = get_sfx('sound/effects/screech.ogg') //like playsound, same sound for everyone affected - var/turf/T = get_turf(invoker) - for(var/mob/living/carbon/human/H in living_mob_list) - if(H.z == invoker.z && !is_servant_of_ratvar(H)) - var/distance = 0 - distance += get_dist(T, get_turf(H)) - var/messaged = FALSE - var/visualsdistance = max(175 - distance, 15) - var/minordistance = max(125 - distance, 10) - var/majordistance = max(75 - distance, 5) - if(H.null_rod_check()) - visualsdistance = round(visualsdistance * 0.25) - minordistance = round(minordistance * 0.25) - majordistance = round(majordistance * 0.25) - H << "Bu, n ibvq jrncba. Ubj naablvat, V znl nf jryy abg obgure.\n\ - Your holy weapon glows a faint orange in an attempt to defend your mind!" - messaged = TRUE - if(isloyal(H)) - visualsdistance = round(visualsdistance * 0.5) //half effect for shielded targets - minordistance = round(minordistance * 0.5) - majordistance = round(majordistance * 0.5) - if(!messaged) - H << "Bu, ybbx, n zvaqfuvryq. Phgr, V fhccbfr V'yy uhzbe vg." - messaged = TRUE - if(!messaged && prob(visualsdistance)) - H << "[pick(mindbreaksayings)]" - H.playsound_local(T, hum, visualsdistance, 1) - flash_color(H, flash_color="#AF0AAF", flash_time=visualsdistance*10) - H.set_drugginess(visualsdistance + H.druggy) - H.dizziness = minordistance + H.dizziness - H.hallucination = minordistance + H.hallucination - H.confused = majordistance + H.confused - H.setBrainLoss(majordistance + H.getBrainLoss()) - return 1 - - - -/datum/clockwork_scripture/invoke_nzcrentr //Invoke Nzcrentr, the Forgotten Arbiter: Imbues an immense amount of energy into the invoker. After several seconds, everyone nearby will be hit with a devastating chain lightning blast. - descname = "Lightning Blast" - name = "Invoke Nzcrentr, the Forgotten Arbiter" - desc = "Taps the limitless power of Nzcrentr, one of Ratvar's four generals. The immense energy Nzcrentr wields will allow you to imbue a tiny fraction of it into your body. After several \ - seconds, anyone nearby will be struck by a devastating lightning bolt." - invocations = list("V pnyy hcba lbh, Nzcrentr!!", "Yrg lbhe raretl sybj guebhtu zr!!", "Yrg lbhe obhaq-yrff cbjre fung-gre fgnef!!") - channel_time = 150 - required_components = list("belligerent_eye" = 3, "guvax_capacitor" = 3, "replicant_alloy" = 3, "hierophant_ansible" = 6) - consumed_components = list("belligerent_eye" = 3, "guvax_capacitor" = 3, "replicant_alloy" = 3, "hierophant_ansible" = 6) - usage_tip = "Struck targets will also be knocked down for eight seconds." - tier = SCRIPTURE_REVENANT - -/datum/clockwork_scripture/invoke_nzcrentr/check_special_requirements() - if(!slab.no_cost && clockwork_generals_invoked["nzcrentr"] > world.time) - invoker << "\"Gur obff fnlf lbh unir gb jnvg. Url, qb lbh guvax ur jbhyq zvaq vs v xvyyrq lbh? ...Ur jbhyq? Bx.\"\n\ - Nzcrentr has already been invoked recently! You must wait several minutes before calling upon the Forgotten Arbiter." - return 0 - return 1 - -/datum/clockwork_scripture/invoke_nzcrentr/scripture_effects() - new/obj/effect/clockwork/general_marker/nzcrentr(get_turf(invoker)) - clockwork_generals_invoked["nzcrentr"] = world.time + CLOCKWORK_GENERAL_COOLDOWN - invoker.visible_message("[invoker] begins to radiate a blinding light!", \ - "\"Gur obff fnlf vg'f bxnl gb qb guv'f. Qba'g oynzr zr vs lbh qvr sebz vg.\"\n \ - You feel limitless power surging through you!") - playsound(invoker, 'sound/magic/lightning_chargeup.ogg', 100, 0) - animate(invoker, color = list(rgb(255, 255, 255), rgb(255, 255, 255), rgb(255, 255, 255), rgb(0,0,0)), time = 88) //Gradual advancement to extreme brightness - sleep(88) - if(invoker) - invoker.visible_message("Massive bolts of energy emerge from across [invoker]'s body!", \ - "\"V gbyq lbh lbh jbhyqa'g or noyr gb unaqyr vg.\"\n \ - TOO... MUCH! CAN'T... TAKE IT!") - playsound(invoker, 'sound/magic/lightningbolt.ogg', 100, 0) - animate(invoker, color = initial(invoker.color), time = 10) - for(var/mob/living/L in view(7, invoker)) - if(is_servant_of_ratvar(L)) - continue - invoker.Beam(L, icon_state = "nzcrentrs_power", icon = 'icons/effects/beam.dmi', time = 10) - var/randdamage = rand(40, 60) - if(iscarbon(L)) - L.electrocute_act(randdamage, "Nzcrentr's power", 1, randdamage) +/datum/clockwork_scripture/ranged_ability/scripture_effects() + slab.icon_state = slab_icon + slab.slab_ability = new ranged_type(slab) + slab.slab_ability.slab = slab + slab.slab_ability.add_ranged_ability(invoker, ranged_message) + invoker.update_inv_hands() + var/end_time = world.time + timeout_time + var/successful = FALSE + if(timeout_time) + progbar = new(invoker, timeout_time, slab) + while(slab && slab.slab_ability && !slab.slab_ability.finished && (slab.slab_ability.in_progress || !timeout_time || world.time <= end_time)) + successful = slab.slab_ability.successful + if(progbar) + if(slab.slab_ability.in_progress) + qdel(progbar) else - L.adjustFireLoss(randdamage) - L.visible_message( - "[L] was shocked by Nzcrentr's power!", \ - "You feel a powerful shock coursing through your body!", \ - "You hear a heavy electrical crack." \ - ) - L.Weaken(8) - playsound(L, 'sound/magic/LightningShock.ogg', 50, 1) - return 1 - else - return 0 - - - -/datum/clockwork_scripture/invoke_inathneq //Invoke Inath-Neq, the Resonant Cogwheel: Grants a huge health boost to nearby servants that rapidly decreases to original levels. - descname = "Area Invuln" - name = "Invoke Inath-Neq, the Resonant Cogwheel" - desc = "Taps the limitless power of Inath-Neq, one of Ratvar's four generals. The benevolence of Inath-Neq will grant complete invulnerability to all servants in range for fifteen seconds." - invocations = list("V pnyy hcba lbh, Inath-Neq!!", "Yrg gur Erfbanag Pbtf ghea bapr zber!!", "Tenag zr naq zl nyyvrf gur fgeratgu gb inadhvfu bhe sbrf!!") - channel_time = 150 - required_components = list("vanguard_cogwheel" = 6, "guvax_capacitor" = 3, "replicant_alloy" = 3, "hierophant_ansible" = 3) - consumed_components = list("vanguard_cogwheel" = 6, "guvax_capacitor" = 3, "replicant_alloy" = 3, "hierophant_ansible" = 3) - usage_tip = "Those affected by this scripture are only weak to things that outright destroy bodies, such as bombs or the singularity." - tier = SCRIPTURE_REVENANT - -/datum/clockwork_scripture/invoke_inathneq/check_special_requirements() - if(!slab.no_cost && clockwork_generals_invoked["inath-neq"] > world.time) - invoker << "\"V pnaabg yraq lbh zl nvq lrg, punzcvba. Cyrnfr or pnershy.\"\n\ - Inath-Neq has already been invoked recently! You must wait several minutes before calling upon the Resonant Cogwheel." - return 0 - return 1 - -/datum/clockwork_scripture/invoke_inathneq/scripture_effects() - new/obj/effect/clockwork/general_marker/inathneq(get_turf(invoker)) - clockwork_generals_invoked["inath-neq"] = world.time + CLOCKWORK_GENERAL_COOLDOWN - if(invoker.real_name == "Lucio") - clockwork_say(invoker, rot13("Aww, let's break it DOWN!!")) - var/list/affected_servants = list() - for(var/mob/living/L in range(7, invoker)) - if(!is_servant_of_ratvar(L) || L.stat == DEAD) - continue - L << "\"V yraq lbh zl nvq, punzcvba! Yrg tybel thvqr lbhe oybjf!\"\n\ - Inath-Neq's power flows through you!" - L.color = "#1E8CE1" - L.fully_heal() - L.stun_absorption = TRUE - L.status_flags |= GODMODE - animate(L, color = initial(L.color), time = 150, easing = EASE_IN) - affected_servants += L - sleep(150) - for(var/mob/living/L in affected_servants) - L << "You feel Inath-Neq's power fade from your body." - L.status_flags &= ~GODMODE - L.stun_absorption = FALSE - return 1 - - - -/datum/clockwork_scripture/ark_of_the_clockwork_justiciar //Ark of the Clockwork Justiciar: Creates a Gateway to the Celestial Derelict. - descname = "Summon Ratvar" - name = "Ark of the Clockwork Justiciar" - desc = "Pulls from the power of all of Ratvar's servants and generals to construct a massive machine used to tear apart a rift in spacetime to the Celestial Derelict. This gateway will \ - call forth Ratvar from his exile after some time." - invocations = list("NEZBERE! SEVTUG! NZCRENTR! INATH-NEQ! V PNYY HCBA LBH!!", \ - "GUR GVZR UNF PBZR SBE BHE ZNFGRE GB OERNX GUR PUNVAF BS RKVYR!!", \ - "YRAQ HF LBHE NVQ! RATVAR PBZRF!!") - channel_time = 150 - required_components = list("belligerent_eye" = 10, "vanguard_cogwheel" = 10, "guvax_capacitor" = 10, "replicant_alloy" = 10, "hierophant_ansible" = 10) - consumed_components = list("belligerent_eye" = 10, "vanguard_cogwheel" = 10, "guvax_capacitor" = 10, "replicant_alloy" = 10, "hierophant_ansible" = 10) - invokers_required = 4 - multiple_invokers_used = TRUE - usage_tip = "The gateway is completely vulnerable to attack during its five-minute duration. In addition to preventing shuttle departure, it will periodically give indication of its general \ - position to everyone on the station as well as being loud enough to be heard throughout the entire sector. Defend it with your life!" - tier = SCRIPTURE_JUDGEMENT - -/datum/clockwork_scripture/ark_of_the_clockwork_justiciar/check_special_requirements() - if(!slab.no_cost && ratvar_awakens) - invoker << "\"I am already here, idiot.\"" - return 0 - for(var/obj/structure/clockwork/massive/celestial_gateway/G in all_clockwork_objects) - var/area/gate_area = get_area(G) - invoker << "There is already a gateway at [gate_area.map_name]!" - return 0 - var/area/A = get_area(invoker) - if(!slab.no_cost && (invoker.z != ZLEVEL_STATION || istype(A, /area/shuttle))) - invoker << "You must be on the station to activate the Ark!" - return 0 - if(!slab.no_cost && ticker.mode.clockwork_objective != "gateway") - invoker << "As painful as it is, Ratvar's will is not to be freed!" - return 0 - return 1 - -/datum/clockwork_scripture/ark_of_the_clockwork_justiciar/scripture_effects() - var/turf/T = get_turf(invoker) - new/obj/effect/clockwork/general_marker/nezbere(T) - T.visible_message("\"Ratvar, pbzr sbegu naq fuvar lbhe yvtug npebff guvf ernyz!\"") - playsound(T, 'sound/magic/clockwork/invoke_general.ogg', 20, 0) - sleep(10) - new/obj/effect/clockwork/general_marker/sevtug(T) - T.visible_message("\"Ratvar, pbzr sbegu naq fubj guvf fgngvba lbhe qrpbengvat fxvyyf!\"") - playsound(T, 'sound/magic/clockwork/invoke_general.ogg', 30, 0) - sleep(10) - new/obj/effect/clockwork/general_marker/nzcrentr(T) - T.visible_message("\"Ratvar, pbzr sbegu.\"") - playsound(T, 'sound/magic/clockwork/invoke_general.ogg', 40, 0) - sleep(10) - new/obj/effect/clockwork/general_marker/inathneq(T) - T.visible_message("\"Ratvar, pbzr sbegu naq fubj lbhe freinagf lbhe zrepl!\"") - playsound(T, 'sound/magic/clockwork/invoke_general.ogg', 50, 0) - sleep(10) - new/obj/structure/clockwork/massive/celestial_gateway(T) - playsound(T, 'sound/magic/clockwork/invoke_general.ogg', 100, 0) - var/list/open_turfs = list() - for(var/turf/open/OT in orange(1, T)) - var/list/dense_objects = list() - for(var/obj/O in OT) - if(O.density && !O.CanPass(invoker, OT, 5)) - dense_objects |= O - if(!dense_objects.len) - open_turfs |= OT - if(open_turfs.len) - for(var/mob/living/L in T) - L.forceMove(pick(open_turfs)) //shove living mobs off of the gate's new location - return 1 + progbar.update(end_time - world.time) + sleep(1) + if(slab) + if(slab.slab_ability && !slab.slab_ability.finished) + slab.slab_ability.remove_ranged_ability() + slab.icon_state = "dread_ipad" + if(invoker) + invoker.update_inv_hands() + return successful //slab doesn't look like a word now. diff --git a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_applications.dm b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_applications.dm new file mode 100644 index 0000000000..101765c216 --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_applications.dm @@ -0,0 +1,284 @@ +////////////////// +// APPLICATIONS // +////////////////// + +//Sigil of Accession: Creates a sigil of accession, which is like a sigil of submission, but can convert any number of non-implanted targets and up to one implanted target. +/datum/clockwork_scripture/create_object/sigil_of_accession + descname = "Trap, Permenant Conversion" + name = "Sigil of Accession" + desc = "Places a luminous sigil much like a Sigil of Submission, but it will remain even after successfully converting a non-implanted target. \ + It will penetrate mindshield implants once before disappearing." + invocations = list("Divinity, enslave...", "...all who trespass here!") + channel_time = 70 + required_components = list(BELLIGERENT_EYE = 3, GEIS_CAPACITOR = 1, HIEROPHANT_ANSIBLE = 1) + consumed_components = list(BELLIGERENT_EYE = 2, GEIS_CAPACITOR = 1, HIEROPHANT_ANSIBLE = 1) + whispered = TRUE + object_path = /obj/effect/clockwork/sigil/submission/accession + prevent_path = /obj/effect/clockwork/sigil/submission + creator_message = "A luminous sigil appears below you. All non-servants to cross it will be enslaved after a brief time if they do not move." + usage_tip = "It will remain after converting a target, unless that target has a mindshield implant, which it will break to convert them, but consume itself in the process." + tier = SCRIPTURE_APPLICATION + one_per_tile = TRUE + primary_component = BELLIGERENT_EYE + sort_priority = 1 + quickbind = TRUE + quickbind_desc = "Creates a Sigil of Accession, which can convert a mindshielded non-Servant that remains on it." + + +//Vitality Matrix: Creates a sigil which will drain health from nonservants and can use that health to heal or even revive servants. +/datum/clockwork_scripture/create_object/vitality_matrix + descname = "Trap, Damage to Healing" + name = "Vitality Matrix" + desc = "Scribes a sigil beneath the invoker which drains life from any living non-Servants that cross it. Servants that cross it, however, will be healed based on how much it drained from non-Servants. \ + Dead Servants can be revived by this sigil if it has enough stored vitality." + invocations = list("Divinity...", "...steal their life...", "...for these shells!") + channel_time = 70 + required_components = list(BELLIGERENT_EYE = 1, VANGUARD_COGWHEEL = 3, HIEROPHANT_ANSIBLE = 1) + consumed_components = list(BELLIGERENT_EYE = 1, VANGUARD_COGWHEEL = 2, HIEROPHANT_ANSIBLE = 1) + whispered = TRUE + object_path = /obj/effect/clockwork/sigil/vitality + creator_message = "A vitality matrix appears below you. It will drain life from non-Servants and heal Servants that cross it." + usage_tip = "To revive a Servant, the sigil must have 20 vitality plus the target Servant's non-oxygen damage. It will still heal dead Servants if it lacks the vitality to outright revive them." + tier = SCRIPTURE_APPLICATION + one_per_tile = TRUE + primary_component = VANGUARD_COGWHEEL + sort_priority = 2 + quickbind = TRUE + quickbind_desc = "Creates a Vitality Matrix, which drains non-Servants on it to heal Servants that cross it." + + +//Memory Allocation: Finds a willing ghost and makes them into a clockwork marauders for the invoker. +/datum/clockwork_scripture/memory_allocation + descname = "Guardian" + name = "Memory Allocation" + desc = "Allocates part of your consciousness to a Clockwork Marauder, a vigilent fighter that lives within you, able to be \ + called forth by Speaking its True Name or if you become exceptionally low on health.
    \ + It gains Fatigue as it is attacked, weakening it. Marauders cannot move too far from their hosts, \ + and will gain Fatigue at an increasing rate as they grow farther away. At maximum Fatigue, the marauder is forced to return to you and will be unable to manifest until its Fatigue is at zero." + invocations = list("Fright's will...", "...call forth...") + channel_time = 100 + required_components = list(BELLIGERENT_EYE = 1, VANGUARD_COGWHEEL = 1, GEIS_CAPACITOR = 3) + consumed_components = list(BELLIGERENT_EYE = 1, VANGUARD_COGWHEEL = 1, GEIS_CAPACITOR = 2) + usage_tip = "Marauders are useful as personal bodyguards and frontline warriors, although they do little damage." + tier = SCRIPTURE_APPLICATION + primary_component = GEIS_CAPACITOR + sort_priority = 3 + +/datum/clockwork_scripture/memory_allocation/check_special_requirements() + for(var/mob/living/simple_animal/hostile/clockwork/marauder/M in living_mob_list) + if(M.host == invoker) + invoker << "You can only house one marauder at a time!" + return FALSE + return TRUE + +/datum/clockwork_scripture/memory_allocation/scripture_effects() + return create_marauder() + +/datum/clockwork_scripture/memory_allocation/proc/create_marauder() + invoker.visible_message("A yellow tendril appears from [invoker]'s [slab.name] and impales itself in [invoker.p_their()] forehead!", \ + "A tendril flies from [slab] into your forehead. You begin waiting while it painfully rearranges your thought pattern...") + invoker.notransform = TRUE //Vulnerable during the process + slab.busy = "Thought Modification in progress" + if(!do_after(invoker, 50, target = invoker)) + invoker.visible_message("The tendril, covered in blood, retracts from [invoker]'s head and back into the [slab.name]!", \ + "Total agony overcomes you as the tendril is forced out early!") + invoker.notransform = FALSE + invoker.Stun(5) + invoker.Weaken(5) + invoker.apply_damage(10, BRUTE, "head") + slab.busy = null + return FALSE + clockwork_say(invoker, text2ratvar("...the mind made...")) + invoker.notransform = FALSE + slab.busy = "Marauder Selection in progress" + if(!check_special_requirements()) + return FALSE + invoker << "The tendril shivers slightly as it selects a marauder..." + var/list/marauder_candidates = pollCandidates("Do you want to play as the clockwork marauder of [invoker.real_name]?", ROLE_SERVANT_OF_RATVAR, null, FALSE, 100) + if(!check_special_requirements()) + return FALSE + if(!marauder_candidates.len) + invoker.visible_message("The tendril retracts from [invoker]'s head, sealing the entry wound as it does so!", \ + "The tendril was unsuccessful! Perhaps you should try again another time.") + return FALSE + clockwork_say(invoker, text2ratvar("...sword and shield!")) + var/mob/dead/observer/theghost = pick(marauder_candidates) + var/mob/living/simple_animal/hostile/clockwork/marauder/M = new(invoker) + M.key = theghost.key + M.host = invoker + M << M.playstyle_string + M << "Your true name is \"[M.true_name]\". You can change this once by using the Change True Name verb in your Marauder tab." + add_servant_of_ratvar(M, TRUE) + invoker.visible_message("The tendril retracts from [invoker]'s head, sealing the entry wound as it does so!", \ + "The procedure was successful! [M.true_name], a clockwork marauder, has taken up residence in your mind. Communicate with it via the \"Linked Minds\" ability in the \ + Clockwork tab.") + invoker.verbs += /mob/living/proc/talk_with_marauder + return TRUE + + +//Anima Fragment: Creates an empty anima fragment, which produces an anima fragment that moves at extreme speed and does high damage. +/datum/clockwork_scripture/create_object/anima_fragment + descname = "Fast Soul Vessel Shell" + name = "Anima Fragment" + desc = "Creates a large shell fitted for soul vessels. Adding an active soul vessel to it results in a powerful construct with decent health, notable melee power, \ + and exceptional speed, though taking damage will temporarily slow it down." + invocations = list("Call forth...", "...the soldiers of Armorer.") + channel_time = 80 + required_components = list(BELLIGERENT_EYE = 1, VANGUARD_COGWHEEL = 1, REPLICANT_ALLOY = 3) + consumed_components = list(BELLIGERENT_EYE = 1, VANGUARD_COGWHEEL = 1, REPLICANT_ALLOY = 2) + object_path = /obj/structure/destructible/clockwork/shell/fragment + creator_message = "You form an anima fragment, a powerful soul vessel receptable." + observer_message = "The slab disgorges a puddle of black metal that expands and forms into a strange shell!" + usage_tip = "Useless without a soul vessel and should not be created without one." + tier = SCRIPTURE_APPLICATION + primary_component = REPLICANT_ALLOY + sort_priority = 4 + quickbind = TRUE + quickbind_desc = "Creates a Fragment Shell, which produces an Anima Fragment when filled with a Soul Vessel." + + +//Sigil of Transmission: Creates a sigil of transmission that can store power for clockwork structures. +/datum/clockwork_scripture/create_object/sigil_of_transmission + descname = "Structure Battery" + name = "Sigil of Transmission" + desc = "Scribes a sigil beneath the invoker which stores power to power clockwork structures." + invocations = list("Divinity...", "...power our creations!") + channel_time = 70 + required_components = list(VANGUARD_COGWHEEL = 1, GEIS_CAPACITOR = 1, HIEROPHANT_ANSIBLE = 3) + consumed_components = list(VANGUARD_COGWHEEL = 1, GEIS_CAPACITOR = 1, HIEROPHANT_ANSIBLE = 2) + whispered = TRUE + object_path = /obj/effect/clockwork/sigil/transmission + creator_message = "A sigil silently appears below you. It will automatically power clockwork structures adjecent to it." + usage_tip = "Can be recharged by using Volt Void while standing on it." + tier = SCRIPTURE_APPLICATION + one_per_tile = TRUE + primary_component = HIEROPHANT_ANSIBLE + sort_priority = 5 + quickbind = TRUE + quickbind_desc = "Creates a Sigil of Transmission, which stores power for clockwork structures." + + +//Interdiction Lens: Creates a powerful totem that disables radios and cameras and drains power into nearby sigils of transmission. +/datum/clockwork_scripture/create_object/interdiction_lens + descname = "Structure, Disables Machinery" + name = "Interdiction Lens" + desc = "Creates a clockwork totem that sabotages nearby machinery and funnels drained power into nearby Sigils of Transmission or the area's APC." + invocations = list("May this totem...", "...shroud the false suns!") + channel_time = 80 + required_components = list(BELLIGERENT_EYE = 4, REPLICANT_ALLOY = 1, HIEROPHANT_ANSIBLE = 1) + consumed_components = list(BELLIGERENT_EYE = 3, REPLICANT_ALLOY = 1, HIEROPHANT_ANSIBLE = 1) + object_path = /obj/structure/destructible/clockwork/powered/interdiction_lens + creator_message = "You form an interdiction lens, which disrupts cameras and radios and drains power." + observer_message = "A brass totem rises from the ground, a purple gem appearing in its center!" + invokers_required = 2 + multiple_invokers_used = TRUE + usage_tip = "If it fails to funnel power into a nearby Sigil of Transmission or the area's APC and fails to disable even one thing, it will disable itself for two minutes." + tier = SCRIPTURE_APPLICATION + one_per_tile = TRUE + primary_component = BELLIGERENT_EYE + sort_priority = 6 + quickbind = TRUE + quickbind_desc = "Creates an Interdiction Lens, which drains power into nearby Sigils of Transmission." + + +//Mending Motor: Creates a prism that will quickly heal mechanical servants/clockwork structures and consume power or replicant alloy. +/datum/clockwork_scripture/create_object/mending_motor + descname = "Structure, Repairs Other Structures" + name = "Mending Motor" + desc = "Creates a mechanized prism that will rapidly repair damage to clockwork creatures, converted cyborgs, and clockwork structures. Requires replicant alloy or power to function." + invocations = list("May this prism...", "...mend our dents and scratches!") + channel_time = 80 + required_components = list(VANGUARD_COGWHEEL = 4, GEIS_CAPACITOR = 1, REPLICANT_ALLOY = 1) + consumed_components = list(VANGUARD_COGWHEEL = 3, GEIS_CAPACITOR = 1, REPLICANT_ALLOY = 1) + object_path = /obj/structure/destructible/clockwork/powered/mending_motor/prefilled + creator_message = "You form a mending motor, which will consume power or replicant alloy to mend constructs and structures." + observer_message = "An onyx prism forms in midair and sprouts tendrils to support itself!" + invokers_required = 2 + multiple_invokers_used = TRUE + usage_tip = "Powerful healing but power use is very inefficient, and its alloy use is little better." + tier = SCRIPTURE_APPLICATION + one_per_tile = TRUE + primary_component = VANGUARD_COGWHEEL + sort_priority = 7 + quickbind = TRUE + quickbind_desc = "Creates a Mending Motor, which rapidly repairs constructs and structures at a power cost." + + +//Mania Motor: Creates a malevolent transmitter that will broadcast the whispers of Sevtug into the minds of nearby nonservants, causing a variety of mental effects at a power cost. +/datum/clockwork_scripture/create_object/mania_motor + descname = "Structure, Area Denial" + name = "Mania Motor" + desc = "Creates a mania motor which will cause brain damage and hallucinations in nearby non-servant humans. It will also try to convert humans directly adjecent to the motor." + invocations = list("May this transmitter...", "...break the will of all who oppose us!") + channel_time = 80 + required_components = list(GEIS_CAPACITOR = 4, REPLICANT_ALLOY = 1, HIEROPHANT_ANSIBLE = 1) + consumed_components = list(GEIS_CAPACITOR = 3, REPLICANT_ALLOY = 1, HIEROPHANT_ANSIBLE = 1) + object_path = /obj/structure/destructible/clockwork/powered/mania_motor + creator_message = "You form a mania motor which will cause brain damage and hallucinations in nearby humans while active." + observer_message = "A two-pronged machine rises from the ground!" + invokers_required = 2 + multiple_invokers_used = TRUE + usage_tip = "Eligible human servants next to the motor will be converted at an additional power cost. It will also cure hallucinations and brain damage in nearby servants." + tier = SCRIPTURE_APPLICATION + one_per_tile = TRUE + primary_component = GEIS_CAPACITOR + sort_priority = 8 + quickbind = TRUE + quickbind_desc = "Creates a Mania Motor, which can convert adjacent non-Servants with power." + + +//Tinkerer's Daemon: Creates an efficient machine that rapidly produces components at a power cost. +/datum/clockwork_scripture/create_object/tinkerers_daemon + descname = "Structure, Component Generator" + name = "Tinkerer's Daemon" + desc = "Creates a tinkerer's daemon which can rapidly collect components. It will only function if it has sufficient power, is outnumbered by servants by a ratio of 5:1, and there is at least one existing cache." + invocations = list("May this generator...", "...collect Engine parts that yet hold greatness!") + channel_time = 80 + required_components = list(BELLIGERENT_EYE = 1, GEIS_CAPACITOR = 1, REPLICANT_ALLOY = 4) + consumed_components = list(BELLIGERENT_EYE = 1, GEIS_CAPACITOR = 1, REPLICANT_ALLOY = 3) + object_path = /obj/structure/destructible/clockwork/powered/tinkerers_daemon + creator_message = "You form a tinkerer's daemon which can rapidly collect components at a power cost." + invokers_required = 2 + multiple_invokers_used = TRUE + usage_tip = "Vital to your success!" + tier = SCRIPTURE_APPLICATION + one_per_tile = TRUE + primary_component = REPLICANT_ALLOY + sort_priority = 9 + quickbind_desc = "Creates a Tinkerer's Daemon, which can rapidly collect components for power." + +/datum/clockwork_scripture/create_object/tinkerers_daemon/check_special_requirements() + var/servants = 0 + for(var/mob/living/L in living_mob_list) + if(is_servant_of_ratvar(L)) + servants++ + if(servants * 0.2 < clockwork_daemons) + invoker << "\"Daemons are already disabled, making more of them would be a waste.\"" + return FALSE + if(servants * 0.2 < clockwork_daemons+1) + invoker << "\"This daemon would be useless, friend.\"" + return FALSE + return ..() + + +//Clockwork Obelisk: Creates a powerful obelisk that can be used to broadcast messages or open a gateway to any servant or clockwork obelisk at a power cost. +/datum/clockwork_scripture/create_object/clockwork_obelisk + descname = "Structure, Teleportation Hub" + name = "Clockwork Obelisk" + desc = "Creates a clockwork obelisk that can broadcast messages over the Hierophant Network or open a Spatial Gateway to any living servant or clockwork obelisk." + invocations = list("May this obelisk...", "...take us to all places!") + channel_time = 80 + required_components = list(VANGUARD_COGWHEEL = 1, REPLICANT_ALLOY = 1, HIEROPHANT_ANSIBLE = 4) + consumed_components = list(VANGUARD_COGWHEEL = 1, REPLICANT_ALLOY = 1, HIEROPHANT_ANSIBLE = 3) + object_path = /obj/structure/destructible/clockwork/powered/clockwork_obelisk + creator_message = "You form a clockwork obelisk which can broadcast messages or produce Spatial Gateways." + observer_message = "A brass obelisk appears handing in midair!" + invokers_required = 2 + multiple_invokers_used = TRUE + usage_tip = "Producing a gateway has a high power cost. Gateways to or between clockwork obelisks recieve double duration and uses." + tier = SCRIPTURE_APPLICATION + one_per_tile = TRUE + primary_component = HIEROPHANT_ANSIBLE + sort_priority = 10 + quickbind = TRUE + quickbind_desc = "Creates a Clockwork Obelisk, which can send messages or open Spatial Gateways with power." diff --git a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_cyborg.dm b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_cyborg.dm new file mode 100644 index 0000000000..b3069969ca --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_cyborg.dm @@ -0,0 +1,39 @@ +///////////////// +// CYBORG ONLY // +///////////////// + +//Linked Vanguard: grants Vanguard to the invoker and a target +/datum/clockwork_scripture/ranged_ability/linked_vanguard + name = "Linked Vanguard" + invocations = list("Shield us...", "...from darkness!") + channel_time = 40 + required_components = list(VANGUARD_COGWHEEL = 1) + primary_component = VANGUARD_COGWHEEL + quickbind_desc = "Allows you to grant a Servant and yourself stun immunity, as the Vanguard scripture.
    Click your slab to disable." + slab_icon = "vanguard" + ranged_type = /obj/effect/proc_holder/slab/vanguard + ranged_message = "You charge the clockwork slab with defensive strength.\n\ + Left-click a fellow Servant or yourself to grant Vanguard!\n\ + Click your slab to cancel." + timeout_time = 50 + +/datum/clockwork_scripture/ranged_ability/linked_vanguard/check_special_requirements() + if(islist(invoker.stun_absorption) && invoker.stun_absorption["vanguard"] && invoker.stun_absorption["vanguard"]["end_time"] > world.time) + invoker << "You are already shielded by a Vanguard!" + return FALSE + return TRUE + +//Judicial Marker: places a judicial marker at a target location +/datum/clockwork_scripture/ranged_ability/judicial_marker + name = "Judicial Marker" + invocations = list("May heathens...", "...kneel under our force!") + channel_time = 40 + required_components = list(BELLIGERENT_EYE = 1) + primary_component = BELLIGERENT_EYE + quickbind_desc = "Allows you to place a Judicial Marker to stun and damage a target location.
    Click your slab to disable." + slab_icon = "judicial" + ranged_type = /obj/effect/proc_holder/slab/judicial + ranged_message = "You charge the clockwork slab with judicial force.\n\ + Left-click a target to place a Judicial Marker!\n\ + Click your slab to cancel." + timeout_time = 50 diff --git a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_drivers.dm b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_drivers.dm new file mode 100644 index 0000000000..d4549b9a87 --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_drivers.dm @@ -0,0 +1,318 @@ +///////////// +// DRIVERS // +///////////// + +//Belligerent: Channeled for up to fifteen times over thirty seconds. Forces non-servants that can hear the chant to walk, doing minor damage. Nar-Sian cultists are burned. +/datum/clockwork_scripture/channeled/belligerent + descname = "Channeled, Area Slowdown" + name = "Belligerent" + desc = "Forces all nearby non-servants to walk rather than run, doing minor damage. Chanted every two seconds for up to thirty seconds." + chant_invocations = list("Punish their blindness!", "Take time, make slow!") + chant_amount = 15 + chant_interval = 20 + channel_time = 20 + required_components = list(BELLIGERENT_EYE = 1) + usage_tip = "Useful for crowd control in a populated area and disrupting mass movement." + tier = SCRIPTURE_DRIVER + primary_component = BELLIGERENT_EYE + sort_priority = 1 + quickbind = TRUE + quickbind_desc = "Forces nearby non-Servants to walk, doing minor damage with each chant.
    Maximum 15 chants." + var/noncultist_damage = 2 //damage per chant to noncultists + var/cultist_damage = 8 //damage per chant to non-walking cultists + +/datum/clockwork_scripture/channeled/belligerent/chant_effects(chant_number) + for(var/mob/living/carbon/C in hearers(7, invoker)) + var/number_legs = C.get_num_legs() + if(!is_servant_of_ratvar(C) && !C.null_rod_check() && number_legs) //you have legs right + C.apply_damage(noncultist_damage * 0.5, BURN, "l_leg") + C.apply_damage(noncultist_damage * 0.5, BURN, "r_leg") + if(C.m_intent != MOVE_INTENT_WALK) + if(!iscultist(C)) + C << "Your leg[number_legs > 1 ? "s shiver":" shivers"] with pain!" + else //Cultists take extra burn damage + C << "Your leg[number_legs > 1 ? "s burn":" burns"] with pain!" + C.apply_damage(cultist_damage * 0.5, BURN, "l_leg") + C.apply_damage(cultist_damage * 0.5, BURN, "r_leg") + C.toggle_move_intent() + + +//Judicial Visor: Creates a judicial visor, which can smite an area. +/datum/clockwork_scripture/create_object/judicial_visor + descname = "Delayed Area Stun Glasses" + name = "Judicial Visor" + desc = "Forms a visor that, when worn, will grant the ability to smite an area, stunning, muting, and damaging the nonfaithful. \ + Cultists of Nar-Sie will be set on fire, though they will be stunned for half the time." + invocations = list("Grant me the flames of Engine!") + channel_time = 10 + required_components = list(BELLIGERENT_EYE = 2) + consumed_components = list(BELLIGERENT_EYE = 1) + whispered = TRUE + object_path = /obj/item/clothing/glasses/judicial_visor + creator_message = "You form a judicial visor, which is capable of smiting the unworthy." + usage_tip = "The visor has a thirty-second cooldown once used, and the marker it creates has a delay of 3 seconds before exploding." + tier = SCRIPTURE_DRIVER + space_allowed = TRUE + primary_component = BELLIGERENT_EYE + sort_priority = 2 + + +//Vanguard: Provides twenty seconds of stun immunity. At the end of the twenty seconds, 25% of all stuns absorbed are applied to the invoker. +/datum/clockwork_scripture/vanguard + descname = "Self Stun Immunity" + name = "Vanguard" + desc = "Provides twenty seconds of stun immunity. At the end of the twenty seconds, the invoker is stunned for the equivalent of 25% of all stuns they absorbed. \ + Excessive absorption will cause unconsciousness." + invocations = list("Shield me...", "...from darkness!") + channel_time = 30 + required_components = list(VANGUARD_COGWHEEL = 1) + usage_tip = "You cannot reactivate Vanguard while still shielded by it." + tier = SCRIPTURE_DRIVER + primary_component = VANGUARD_COGWHEEL + sort_priority = 3 + quickbind = TRUE + quickbind_desc = "Allows you to temporarily absorb stuns. All stuns absorbed will affect you when disabled." + +/datum/clockwork_scripture/vanguard/check_special_requirements() + if(islist(invoker.stun_absorption) && invoker.stun_absorption["vanguard"] && invoker.stun_absorption["vanguard"]["end_time"] > world.time) + invoker << "You are already shielded by a Vanguard!" + return FALSE + return TRUE + +/datum/clockwork_scripture/vanguard/scripture_effects() + invoker.apply_status_effect(STATUS_EFFECT_VANGUARD) + return TRUE + + +//Sentinel's Compromise: Allows the invoker to select a nearby servant and convert their brute and burn damage into half as much toxin damage. +/datum/clockwork_scripture/ranged_ability/sentinels_compromise + descname = "Convert Brute/Burn to Half Toxin" + name = "Sentinel's Compromise" + desc = "Charges your slab with healing power, allowing you to convert all of a target Servant's brute and burn damage to half as much toxin damage." + invocations = list("Mend the wounds of...", "...my inferior flesh.") + channel_time = 30 + required_components = list(VANGUARD_COGWHEEL = 2) + consumed_components = list(VANGUARD_COGWHEEL = 1) + usage_tip = "The Compromise is very fast to invoke, and will remove holy water from the target Servant." + tier = SCRIPTURE_DRIVER + primary_component = VANGUARD_COGWHEEL + sort_priority = 4 + quickbind = TRUE + quickbind_desc = "Allows you to convert a Servant's brute and burn damage to half toxin damage.
    Click your slab to disable." + slab_icon = "compromise" + ranged_type = /obj/effect/proc_holder/slab/compromise + ranged_message = "You charge the clockwork slab with healing power.\n\ + Left-click a fellow Servant or yourself to heal!\n\ + Click your slab to cancel." + + +//Geis: Grants a short-range binding that will immediately start chanting on binding a valid target. +/datum/clockwork_scripture/ranged_ability/geis_prep + descname = "Melee Convert Attack" + name = "Geis" + desc = "Charges your slab with divine energy, allowing you to bind a nearby heretic for conversion. This is very obvious and will make your slab visible in-hand." + invocations = list("Divinity, grant...", "...me strength...", "...to enlighten...", "...the heathen!") + whispered = TRUE + channel_time = 20 + required_components = list(GEIS_CAPACITOR = 1) + usage_tip = "Is melee range and does not penetrate mindshield implants. Much more efficient than a Sigil of Submission at low Servant amounts." + tier = SCRIPTURE_DRIVER + primary_component = GEIS_CAPACITOR + sort_priority = 5 + quickbind = TRUE + quickbind_desc = "Allows you to bind and start converting an adjacent target non-Servant.
    Click your slab to disable." + slab_icon = "geis" + ranged_type = /obj/effect/proc_holder/slab/geis + ranged_message = "You charge the clockwork slab with divine energy.\n\ + Left-click a target within melee range to convert!\n\ + Click your slab to cancel." + timeout_time = 100 + +/datum/clockwork_scripture/ranged_ability/geis_prep/run_scripture() + var/servants = 0 + for(var/mob/living/M in living_mob_list) + if(is_servant_of_ratvar(M) && (ishuman(M) || issilicon(M))) + servants++ + if(servants > SCRIPT_SERVANT_REQ) + whispered = FALSE + servants -= SCRIPT_SERVANT_REQ + channel_time = min(channel_time + servants*3, 50) + return ..() + +//The scripture that does the converting. +/datum/clockwork_scripture/geis + name = "Geis Conversion" + invocations = list("Enlighten this heathen!", "All are insects before Engine!", "Purge all untruths and honor Engine.") + channel_time = 49 + tier = SCRIPTURE_PERIPHERAL + var/mob/living/target + var/obj/structure/destructible/clockwork/geis_binding/binding + +/datum/clockwork_scripture/geis/Destroy() + if(binding && !qdeleted(binding)) + qdel(binding) + return ..() + +/datum/clockwork_scripture/geis/can_recite() + if(!target) + return FALSE + return ..() + +/datum/clockwork_scripture/geis/run_scripture() + var/servants = 0 + for(var/mob/living/M in living_mob_list) + if(is_servant_of_ratvar(M) && (ishuman(M) || issilicon(M))) + servants++ + if(servants > SCRIPT_SERVANT_REQ) + servants -= SCRIPT_SERVANT_REQ + channel_time = min(channel_time + servants*7, 120) + if(target.buckled) + target.buckled.unbuckle_mob(target, TRUE) + binding = new(get_turf(target)) + binding.setDir(target.dir) + binding.buckle_mob(target, TRUE) + return ..() + +/datum/clockwork_scripture/geis/check_special_requirements() + return target && binding && target.buckled == binding && !is_servant_of_ratvar(target) && target.stat != DEAD + +/datum/clockwork_scripture/geis/scripture_effects() + return add_servant_of_ratvar(target) + + +//Taunting Tirade: Channeled for up to five times over thirty seconds. Confuses non-servants that can hear it and allows movement for a brief time after each chant. +/datum/clockwork_scripture/channeled/taunting_tirade + descname = "Channeled, Mobile Area Confusion" + name = "Taunting Tirade" + desc = "Weakens, confuses and dizzies all nearby non-servants with a short invocation, then allows movement for five seconds. Chanted every second for up to thirty seconds." + chant_invocations = list("Hostiles on my back!", "Enemies on my trail!", "Gonna try and shake my tail.", "Bogeys on my six!") + chant_amount = 5 + chant_interval = 10 + required_components = list(GEIS_CAPACITOR = 2) + consumed_components = list(GEIS_CAPACITOR = 1) + usage_tip = "Useful for fleeing attackers, as few will be able to follow someone using this scripture." + tier = SCRIPTURE_DRIVER + primary_component = GEIS_CAPACITOR + sort_priority = 6 + quickbind = TRUE + quickbind_desc = "Weakens, confuses, and dizzies nearby non-servants, then allows some movement.
    Maximum 5 chants." + var/flee_time = 47 //allow fleeing for 5 seconds + var/grace_period = 3 //very short grace period so you don't have to stop immediately + var/datum/progressbar/progbar + +/datum/clockwork_scripture/channeled/taunting_tirade/chant_effects(chant_number) + for(var/mob/living/L in hearers(7, invoker)) + if(!is_servant_of_ratvar(L) && !L.null_rod_check()) + L.confused = min(L.confused + 20, 100) + L.dizziness = min(L.dizziness + 20, 100) + L.Weaken(1) + invoker.visible_message("[invoker] is suddenly covered with a thin layer of dark purple smoke!") + var/invoker_old_color = invoker.color + invoker.color = "#AF0AAF" + animate(invoker, color = invoker_old_color, time = flee_time+grace_period) + addtimer(invoker, "update_atom_colour", flee_time+grace_period) + if(chant_number != chant_amount) //if this is the last chant, we don't have a movement period because the chant is over + var/endtime = world.time + flee_time + var/starttime = world.time + progbar = new(invoker, flee_time, invoker) + progbar.bar.color = "#AF0AAF" + animate(progbar.bar, color = initial(progbar.bar.color), time = flee_time+grace_period) + while(world.time < endtime && invoker && slab && invoker.get_active_held_item() == slab) + sleep(1) + progbar.update(world.time - starttime) + qdel(progbar) + sleep(grace_period) + +/datum/clockwork_scripture/channeled/taunting_tirade/chant_end_effects() + qdel(progbar) + + +//Replicant: Creates a new clockwork slab. +/datum/clockwork_scripture/create_object/replicant + descname = "New Clockwork Slab" + name = "Replicant" + desc = "Creates a new clockwork slab." + invocations = list("Metal, become greater!") + channel_time = 10 + required_components = list(REPLICANT_ALLOY = 1) + whispered = TRUE + object_path = /obj/item/clockwork/slab + creator_message = "You copy a piece of replicant alloy and command it into a new slab." + usage_tip = "This is inefficient as a way to produce components, as the slab produced must be held by someone with no other slabs to produce components." + tier = SCRIPTURE_DRIVER + space_allowed = TRUE + primary_component = REPLICANT_ALLOY + sort_priority = 7 + quickbind = TRUE + quickbind_desc = "Creates a new Clockwork Slab." + + +//Tinkerer's Cache: Creates a tinkerer's cache, allowing global component storage. +/datum/clockwork_scripture/create_object/tinkerers_cache + descname = "Necessary Structure, Shares Components" + name = "Tinkerer's Cache" + desc = "Forms a cache that can store an infinite amount of components. All caches are linked and will provide components to slabs." + invocations = list("Constructing...", "...a cache!") + channel_time = 50 + required_components = list(BELLIGERENT_EYE = 0, VANGUARD_COGWHEEL = 0, GEIS_CAPACITOR = 0, REPLICANT_ALLOY = 2, HIEROPHANT_ANSIBLE = 0) + consumed_components = list(BELLIGERENT_EYE = 0, VANGUARD_COGWHEEL = 0, GEIS_CAPACITOR = 0, REPLICANT_ALLOY = 1, HIEROPHANT_ANSIBLE = 0) + object_path = /obj/structure/destructible/clockwork/cache + creator_message = "You form a tinkerer's cache, which is capable of storing components, which will automatically be used by slabs." + observer_message = "A hollow brass spire rises and begins to blaze!" + usage_tip = "Slabs will draw components from the global cache after the slab's own repositories, making caches very efficient." + tier = SCRIPTURE_DRIVER + one_per_tile = TRUE + primary_component = REPLICANT_ALLOY + sort_priority = 8 + quickbind = TRUE + quickbind_desc = "Creates a Tinkerer's Cache, which stores components globally for slab access." + +/datum/clockwork_scripture/create_object/tinkerers_cache/creation_update() + var/cache_cost_increase = min(round(clockwork_caches*0.25), 5) + required_components = list(BELLIGERENT_EYE = 0, VANGUARD_COGWHEEL = 0, GEIS_CAPACITOR = 0, REPLICANT_ALLOY = 2, HIEROPHANT_ANSIBLE = 0) + consumed_components = list(BELLIGERENT_EYE = 0, VANGUARD_COGWHEEL = 0, GEIS_CAPACITOR = 0, REPLICANT_ALLOY = 1, HIEROPHANT_ANSIBLE = 0) + for(var/i in required_components) + if(i != REPLICANT_ALLOY) + required_components[i] += cache_cost_increase + for(var/i in consumed_components) + if(i != REPLICANT_ALLOY) + consumed_components[i] += cache_cost_increase + + +//Wraith Spectacles: Creates a pair of wraith spectacles, which grant xray vision but damage vision slowly. +/datum/clockwork_scripture/create_object/wraith_spectacles + descname = "Xray Vision Glasses" + name = "Wraith Spectacles" + desc = "Fabricates a pair of glasses that provides true sight but quickly damage vision, eventually causing blindness if worn for too long." + invocations = list("Show the truth of this world to me!") + channel_time = 10 + required_components = list(HIEROPHANT_ANSIBLE = 1) + whispered = TRUE + object_path = /obj/item/clothing/glasses/wraith_spectacles + creator_message = "You form a pair of wraith spectacles, which will grant true sight when worn." + usage_tip = "\"True sight\" means that you are able to see through walls and in darkness." + tier = SCRIPTURE_DRIVER + space_allowed = TRUE + primary_component = HIEROPHANT_ANSIBLE + sort_priority = 9 + + +//Sigil of Transgression: Creates a sigil of transgression, which stuns the first nonservant to cross it. +/datum/clockwork_scripture/create_object/sigil_of_transgression + descname = "Trap, Stunning" + name = "Sigil of Transgression" + desc = "Wards a tile with a sigil. The next person to cross the sigil will be smitten and unable to move. Nar-Sian cultists are stunned altogether." + invocations = list("Divinity, dazzle...", "...those who tresspass here!") + channel_time = 50 + required_components = list(HIEROPHANT_ANSIBLE = 2) + consumed_components = list(HIEROPHANT_ANSIBLE = 1) + whispered = TRUE + object_path = /obj/effect/clockwork/sigil/transgression + creator_message = "A sigil silently appears below you. The next non-servant to cross it will be immobilized." + usage_tip = "The sigil, while fairly powerful in its stun, does not induce muteness in its victim." + tier = SCRIPTURE_DRIVER + one_per_tile = TRUE + primary_component = HIEROPHANT_ANSIBLE + sort_priority = 10 + quickbind = TRUE + quickbind_desc = "Creates a Sigil of Transgression, which will stun the first non-Servant to cross it." diff --git a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_judgement.dm b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_judgement.dm new file mode 100644 index 0000000000..974c9aca7a --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_judgement.dm @@ -0,0 +1,58 @@ +/////////////// +// JUDGEMENT // +/////////////// + +//Ark of the Clockwork Justiciar: Creates a Gateway to the Celestial Derelict, either summoning ratvar or proselytizing everything. +/datum/clockwork_scripture/ark_of_the_clockwork_justiciar + descname = "Structure, Win Condition" + name = "Ark of the Clockwork Justiciar" + desc = "Tears apart a rift in spacetime to Reebe, the Celestial Derelict.\n\ + This gateway will either call forth Ratvar from his exile if that is the task He has set you, or proselytize the entire station if it is not." + invocations = list("ARMORER! FRIGHT! AMPERAGE! VANGUARD! I CALL UPON YOU!!", \ + "THE TIME HAS COME FOR OUR MASTER TO BREAK THE CHAINS OF EXILE!!", \ + "LEND US YOUR AID! ENGINE COMES!!") + channel_time = 150 + required_components = list(BELLIGERENT_EYE = 10, VANGUARD_COGWHEEL = 10, GEIS_CAPACITOR = 10, REPLICANT_ALLOY = 10, HIEROPHANT_ANSIBLE = 10) + consumed_components = list(BELLIGERENT_EYE = 10, VANGUARD_COGWHEEL = 10, GEIS_CAPACITOR = 10, REPLICANT_ALLOY = 10, HIEROPHANT_ANSIBLE = 10) + invokers_required = 5 + multiple_invokers_used = TRUE + usage_tip = "The gateway is completely vulnerable to attack during its five-minute duration. It will periodically give indication of its general position to everyone on the station \ + as well as being loud enough to be heard throughout the entire sector. Defend it with your life!" + tier = SCRIPTURE_JUDGEMENT + sort_priority = 1 + +/datum/clockwork_scripture/ark_of_the_clockwork_justiciar/New() + if(ticker && ticker.mode && ticker.mode.clockwork_objective != CLOCKCULT_GATEWAY) + invocations = list("ARMORER! FRIGHT! AMPERAGE! VANGUARD! I CALL UPON YOU!!", \ + "THIS STATION WILL BE A BEACON OF HOPE IN THE DARKNESS OF SPACE!!", \ + "HELP US MAKE THIS SHOW ENGINE'S GLORY!!") + ..() + +/datum/clockwork_scripture/ark_of_the_clockwork_justiciar/check_special_requirements() + if(!slab.no_cost) + if(ratvar_awakens) + invoker << "\"I am already here, idiot.\"" + return FALSE + for(var/obj/structure/destructible/clockwork/massive/celestial_gateway/G in all_clockwork_objects) + var/area/gate_area = get_area(G) + invoker << "There is already a gateway at [gate_area.map_name]!" + return FALSE + var/area/A = get_area(invoker) + var/turf/T = get_turf(invoker) + if(!T || T.z != ZLEVEL_STATION || istype(A, /area/shuttle)) + invoker << "You must be on the station to activate the Ark!" + return FALSE + if(clockwork_gateway_activated) + if(ticker && ticker.mode && ticker.mode.clockwork_objective != CLOCKCULT_GATEWAY) + invoker << "\"Look upon his works. Is it not glorious?\"" + else + invoker << "Ratvar's recent banishment renders him too weak to be wrung forth from Reebe!" + return FALSE + return TRUE + +/datum/clockwork_scripture/ark_of_the_clockwork_justiciar/scripture_effects() + var/turf/T = get_turf(invoker) + if(T) + new/obj/structure/destructible/clockwork/massive/celestial_gateway(T) + return TRUE + return FALSE diff --git a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_revenant.dm b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_revenant.dm new file mode 100644 index 0000000000..d70b463704 --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_revenant.dm @@ -0,0 +1,229 @@ +////////////// +// REVENANT // +////////////// + +//Invoke Inath-neq, the Resonant Cogwheel: Grants invulnerability and stun immunity to everyone nearby for 15 seconds. +/datum/clockwork_scripture/invoke_inathneq + descname = "Area Invulnerability" + name = "Invoke Inath-neq, the Resonant Cogwheel" + desc = "Taps the limitless power of Inath-neq, one of Ratvar's four generals. The benevolence of Inath-Neq will grant complete invulnerability to all servants in range for fifteen seconds." + invocations = list("I call upon you, Vanguard!!", "Let the Resonant Cogs turn once more!!", "Grant me and my allies the strength to vanquish our foes!!") + channel_time = 150 + required_components = list(VANGUARD_COGWHEEL = 6, GEIS_CAPACITOR = 3, REPLICANT_ALLOY = 3, HIEROPHANT_ANSIBLE = 3) + consumed_components = list(VANGUARD_COGWHEEL = 6, GEIS_CAPACITOR = 3, REPLICANT_ALLOY = 3, HIEROPHANT_ANSIBLE = 3) + usage_tip = "Those affected by this scripture are only weak to things that outright destroy bodies, such as bombs or the singularity." + tier = SCRIPTURE_REVENANT + primary_component = VANGUARD_COGWHEEL + sort_priority = 2 + +/datum/clockwork_scripture/invoke_inathneq/check_special_requirements() + if(!slab.no_cost && clockwork_generals_invoked["inath-neq"] > world.time) + invoker << "\"[text2ratvar("I cannot lend you my aid yet, champion. Please be careful.")]\"\n\ + Inath-neq has already been invoked recently! You must wait several minutes before calling upon the Resonant Cogwheel." + return FALSE + return TRUE + +/datum/clockwork_scripture/invoke_inathneq/scripture_effects() + new/obj/effect/clockwork/general_marker/inathneq(get_turf(invoker)) + hierophant_message("[text2ratvar("Vanguard: \"I lend you my aid, champions! Let glory guide your blows!")]\"", FALSE, invoker) + clockwork_generals_invoked["inath-neq"] = world.time + CLOCKWORK_GENERAL_COOLDOWN + playsound(invoker, 'sound/magic/clockwork/invoke_general.ogg', 50, 0) + if(invoker.real_name == "Lucio") + clockwork_say(invoker, text2ratvar("Aww, let's break it DOWN!!")) + for(var/mob/living/L in range(7, invoker)) + if(!is_servant_of_ratvar(L) || L.stat == DEAD) + continue + L.apply_status_effect(STATUS_EFFECT_INATHNEQS_ENDOWMENT) + return TRUE + + +//Invoke Sevtug, the Formless Pariah: Causes massive global hallucinations, braindamage, confusion, and dizziness to all humans on the same zlevel. +/datum/clockwork_scripture/invoke_sevtug + descname = "Global Hallucination" + name = "Invoke Sevtug, the Formless Pariah" + desc = "Taps the limitless power of Sevtug, one of Ratvar's four generals. The mental manipulation ability of the Pariah allows its wielder to cause mass hallucinations and confusion \ + for all non-servant humans on the same z-level as them. The power of this scripture falls off somewhat with distance, and certain things may reduce its effects." + invocations = list("I call upon you, Fright!!", "Let your power shatter the sanity of the weak-minded!!", "Let your tendrils hold sway over all!!") + channel_time = 150 + required_components = list(BELLIGERENT_EYE = 3, VANGUARD_COGWHEEL = 3, GEIS_CAPACITOR = 6, HIEROPHANT_ANSIBLE = 3) + consumed_components = list(BELLIGERENT_EYE = 3, VANGUARD_COGWHEEL = 3, GEIS_CAPACITOR = 6, HIEROPHANT_ANSIBLE = 3) + usage_tip = "Causes brain damage, hallucinations, confusion, and dizziness in massive amounts." + tier = SCRIPTURE_REVENANT + sort_priority = 3 + primary_component = GEIS_CAPACITOR + invokers_required = 3 + multiple_invokers_used = TRUE + var/static/list/mindbreaksayings = list("\"Oh, great. I get to shatter some minds.\"", "\"More minds to crush.\"", \ + "\"Really, this is almost boring.\"", "\"None of these minds have anything interesting in them.\"", "\"Maybe I can instill a little bit of terror in this one.\"", \ + "\"What a waste of my power.\"", "\"I'm sure I could just control these minds instead, but they never ask.\"") + +/datum/clockwork_scripture/invoke_sevtug/check_special_requirements() + if(!slab.no_cost && clockwork_generals_invoked["sevtug"] > world.time) + invoker << "\"[text2ratvar("Is it really so hard - even for a simpleton like you - to grasp the concept of waiting?")]\"\n\ + Sevtug has already been invoked recently! You must wait several minutes before calling upon the Formless Pariah." + return FALSE + if(!slab.no_cost && ratvar_awakens) + invoker << "\"[text2ratvar("Do you really think anything I can do right now will compare to Engine's power?")]\"\n\ + Sevtug will not grant his power while Ratvar's dwarfs his own!" + return FALSE + return TRUE + +/datum/clockwork_scripture/invoke_sevtug/scripture_effects() + new/obj/effect/clockwork/general_marker/sevtug(get_turf(invoker)) + hierophant_message("[text2ratvar("Fright: \"I heed your call, idiots. Get going and use this chance while it lasts!")]\"", FALSE, invoker) + clockwork_generals_invoked["sevtug"] = world.time + CLOCKWORK_GENERAL_COOLDOWN + playsound(invoker, 'sound/magic/clockwork/invoke_general.ogg', 50, 0) + var/hum = get_sfx('sound/effects/screech.ogg') //like playsound, same sound for everyone affected + var/turf/T = get_turf(invoker) + for(var/mob/living/carbon/human/H in living_mob_list) + if(H.z == invoker.z && !is_servant_of_ratvar(H)) + var/distance = 0 + distance += get_dist(T, get_turf(H)) + var/visualsdistance = max(150 - distance, 5) + var/minordistance = max(200 - distance*2, 5) + var/majordistance = max(150 - distance*3, 5) + if(H.null_rod_check()) + H << "[text2ratvar("Oh, a void weapon. How annoying, I may as well not bother.")]\n\ + Your holy weapon glows a faint orange, defending your mind!" + continue + else if(H.isloyal()) + visualsdistance = round(visualsdistance * 0.5) //half effect for shielded targets + minordistance = round(minordistance * 0.5) + majordistance = round(majordistance * 0.5) + H << "[text2ratvar("Oh, look, a mindshield. Cute, I suppose I'll humor it.")]" + else if(prob(visualsdistance)) + H << "[text2ratvar(pick(mindbreaksayings))]" + H.playsound_local(T, hum, visualsdistance, 1) + flash_color(H, flash_color="#AF0AAF", flash_time=visualsdistance*10) + H.dizziness = minordistance + H.dizziness + H.hallucination = minordistance + H.hallucination + H.confused = majordistance + H.confused + H.setBrainLoss(majordistance + H.getBrainLoss()) + return TRUE + + +//Invoke Nezbere, the Brass Eidolon: Invokes Nezbere, bolstering the strength of many clockwork items for one minute. +/datum/clockwork_scripture/invoke_nezbere + descname = "Global Structure Buff" + name = "Invoke Nezbere, the Brass Eidolon" + desc = "Taps the limitless power of Nezbere, one of Ratvar's four generals. The restless toil of the Eidolon will empower a wide variety of clockwork apparatus for a full minute - notably, \ + clockwork proselytizers will cost no replicant alloy to use." + invocations = list("I call upon you, Armorer!!", "Let your machinations reign on this miserable station!!", "Let your power flow through the tools of your master!!") + channel_time = 150 + required_components = list(BELLIGERENT_EYE = 3, VANGUARD_COGWHEEL = 3, GEIS_CAPACITOR = 3, REPLICANT_ALLOY = 6) + consumed_components = list(BELLIGERENT_EYE = 3, VANGUARD_COGWHEEL = 3, GEIS_CAPACITOR = 3, REPLICANT_ALLOY = 6) + usage_tip = "Ocular wardens will become empowered, clockwork proselytizers will require no alloy, tinkerer's daemons will produce twice as quickly, \ + and interdiction lenses, mending motors, mania motors, tinkerer's daemons, and clockwork obelisks will all require no power." + tier = SCRIPTURE_REVENANT + primary_component = REPLICANT_ALLOY + sort_priority = 4 + invokers_required = 3 + multiple_invokers_used = TRUE + +/datum/clockwork_scripture/invoke_nezbere/check_special_requirements() + if(!slab.no_cost && clockwork_generals_invoked["nezbere"] > world.time) + invoker << "\"[text2ratvar("Not just yet, friend. Patience is a virtue.")]\"\n\ + Nezbere has already been invoked recently! You must wait several minutes before calling upon the Brass Eidolon." + return FALSE + if(!slab.no_cost && ratvar_awakens) + invoker << "\"[text2ratvar("Our master is here already. You do not require my help, friend.")]\"\n\ + Nezbere will not grant his power while Ratvar's dwarfs his own!" + return FALSE + return TRUE + +/datum/clockwork_scripture/invoke_nezbere/scripture_effects() + new/obj/effect/clockwork/general_marker/nezbere(get_turf(invoker)) + hierophant_message("[text2ratvar("Armorer: \"I heed your call, champions. May your artifacts bring ruin upon the heathens that oppose our master!")]\"", FALSE, invoker) + clockwork_generals_invoked["nezbere"] = world.time + CLOCKWORK_GENERAL_COOLDOWN + playsound(invoker, 'sound/magic/clockwork/invoke_general.ogg', 50, 0) + for(var/obj/structure/destructible/clockwork/ocular_warden/W in all_clockwork_objects) //Ocular wardens have increased damage and radius + W.damage_per_tick = 5 + W.sight_range = 5 + for(var/obj/item/clockwork/clockwork_proselytizer/P in all_clockwork_objects) //Proselytizers no longer require alloy + P.uses_alloy = FALSE + for(var/obj/structure/destructible/clockwork/powered/M in all_clockwork_objects) //Powered clockwork structures no longer need power + M.needs_power = FALSE + if(istype(M, /obj/structure/destructible/clockwork/powered/tinkerers_daemon)) //Daemons produce components twice as quickly + var/obj/structure/destructible/clockwork/powered/tinkerers_daemon/D = M + D.production_time = 0 + D.production_cooldown *= 0.5 + spawn(600) + for(var/obj/structure/destructible/clockwork/ocular_warden/W in all_clockwork_objects) + if(W.damage_per_tick == 5) + W.damage_per_tick = initial(W.damage_per_tick) + if(W.sight_range == 5) + W.sight_range = initial(W.sight_range) + for(var/obj/item/clockwork/clockwork_proselytizer/P in all_clockwork_objects) + P.uses_alloy = initial(P.uses_alloy) + for(var/obj/structure/destructible/clockwork/powered/M in all_clockwork_objects) + M.needs_power = initial(M.needs_power) + if(istype(M, /obj/structure/destructible/clockwork/powered/tinkerers_daemon)) + var/obj/structure/destructible/clockwork/powered/tinkerers_daemon/D = M + D.production_cooldown = initial(D.production_cooldown) + return TRUE + + +//Invoke Nzcrentr, the Eternal Thunderbolt: Imbues an immense amount of energy into the invoker. After several seconds, everyone near the invoker will be hit with a devastating lightning blast. +/datum/clockwork_scripture/invoke_nzcrentr + descname = "Area Lightning Blast" + name = "Invoke Nzcrentr, the Eternal Thunderbolt" + desc = "Taps the limitless power of Nzcrentr, one of Ratvar's four generals. The immense energy Nzcrentr wields will allow you to imbue a tiny fraction of it into your body. After several \ + seconds, anyone near you will be struck by a devastating lightning bolt." + invocations = list("I call upon you, Amperage!!", "Let your energy flow through me!!", "Let your boundless power shatter stars!!") + channel_time = 150 + required_components = list(BELLIGERENT_EYE = 3, GEIS_CAPACITOR = 3, REPLICANT_ALLOY = 3, HIEROPHANT_ANSIBLE = 6) + consumed_components = list(BELLIGERENT_EYE = 3, GEIS_CAPACITOR = 3, REPLICANT_ALLOY = 3, HIEROPHANT_ANSIBLE = 6) + usage_tip = "Struck targets will also be knocked down for about sixteen seconds." + tier = SCRIPTURE_REVENANT + primary_component = HIEROPHANT_ANSIBLE + sort_priority = 5 + +/datum/clockwork_scripture/invoke_nzcrentr/check_special_requirements() + if(!slab.no_cost && clockwork_generals_invoked["nzcrentr"] > world.time) + invoker << "\"[text2ratvar("The boss says you have to wait. Hey, do you think he would mind if I killed you? ...He would? Ok.")]\"\n\ + Nzcrentr has already been invoked recently! You must wait several minutes before calling upon the Eternal Thunderbolt." + return FALSE + return TRUE + +/datum/clockwork_scripture/invoke_nzcrentr/scripture_effects() + new/obj/effect/clockwork/general_marker/nzcrentr(get_turf(invoker)) + clockwork_generals_invoked["nzcrentr"] = world.time + CLOCKWORK_GENERAL_COOLDOWN + hierophant_message("[text2ratvar("Amperage: \"[invoker.real_name] has called forth my power. Hope [invoker.p_they()] [invoker.p_do()] not shatter under it!")]\"", FALSE, invoker) + invoker.visible_message("[invoker] begins to radiate a blinding light!", \ + "\"[text2ratvar("The boss says it's okay to do this. Don't blame me if you die from it.")]\"\n \ + You feel limitless power surging through you!") + playsound(invoker, 'sound/magic/clockwork/invoke_general.ogg', 50, 0) + playsound(invoker, 'sound/magic/lightning_chargeup.ogg', 100, 0) + var/oldcolor = invoker.color + animate(invoker, color = list(rgb(255, 255, 255), rgb(255, 255, 255), rgb(255, 255, 255), rgb(0,0,0)), time = 88) //Gradual advancement to extreme brightness + sleep(88) + if(invoker) + invoker.visible_message("Massive bolts of energy emerge from across [invoker]'s body!", \ + "\"[text2ratvar("I told you you wouldn't be able to handle it.")]\"\n \ + TOO... MUCH! CAN'T... TAKE IT!") + playsound(invoker, 'sound/magic/lightningbolt.ogg', 100, 0) + if(invoker.stat == CONSCIOUS) + animate(invoker, color = oldcolor, time = 10) + addtimer(invoker, "update_atom_colour", 10) + for(var/mob/living/L in view(7, invoker)) + if(is_servant_of_ratvar(L) || L.null_rod_check()) + continue + invoker.Beam(L, icon_state = "nzcrentrs_power", time = 10) + var/randdamage = rand(40, 60) + if(iscarbon(L)) + L.electrocute_act(randdamage, "Nzcrentr's power", 1, randdamage) + else + L.adjustFireLoss(randdamage) + L.visible_message( + "[L] was shocked by Nzcrentr's power!", \ + "You feel a powerful shock coursing through your body!", \ + "You hear a heavy electrical crack." \ + ) + L.Weaken(8) + playsound(L, 'sound/magic/LightningShock.ogg', 50, 1) + else + playsound(invoker, 'sound/magic/Disintegrate.ogg', 50, 1) + invoker.gib() + return TRUE + else + return FALSE diff --git a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_scripts.dm b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_scripts.dm new file mode 100644 index 0000000000..4e90d5f659 --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_scripts.dm @@ -0,0 +1,329 @@ +///////////// +// SCRIPTS // +///////////// + +//Ocular Warden: Creates an ocular warden, which defends a small area near it. +/datum/clockwork_scripture/create_object/ocular_warden + descname = "Structure, Turret" + name = "Ocular Warden" + desc = "Forms an automatic short-range turret that deals low sustained damage to the unenlightened in its range." + invocations = list("Guardians...", "...of the Engine...", "...defend us!") + channel_time = 120 + required_components = list(BELLIGERENT_EYE = 2, REPLICANT_ALLOY = 1) + consumed_components = list(BELLIGERENT_EYE = 1, REPLICANT_ALLOY = 1) + object_path = /obj/structure/destructible/clockwork/ocular_warden + creator_message = "You form an ocular warden, which will focus its searing gaze upon nearby unenlightened." + observer_message = "A brass eye takes shape and slowly rises into the air, its red iris glaring!" + usage_tip = "Although powerful, the warden is very fragile and should optimally be placed behind barricades." + tier = SCRIPTURE_SCRIPT + one_per_tile = TRUE + space_allowed = TRUE + primary_component = BELLIGERENT_EYE + sort_priority = 1 + quickbind = TRUE + quickbind_desc = "Creates an Ocular Warden, which will automatically attack nearby unrestrained non-Servants that can see it." + +/datum/clockwork_scripture/create_object/ocular_warden/check_special_requirements() + for(var/obj/structure/destructible/clockwork/ocular_warden/W in range(3, invoker)) + invoker << "You sense another ocular warden too near this location. Placing another this close would cause them to fight." //fluff message + return FALSE + return ..() + + +//Cogscarab: Creates an empty cogscarab shell, which produces a cogscarab dedicated to maintaining and defending the cult. +/datum/clockwork_scripture/create_object/cogscarab + descname = "Constructor Soul Vessel Shell" + name = "Cogscarab" + desc = "Creates a small shell fitted for soul vessels. Adding an active soul vessel to it results in a small construct with tools and an inbuilt proselytizer." + invocations = list("Call forth...", "...the workers of Armorer.") + channel_time = 60 + required_components = list(BELLIGERENT_EYE = 2, HIEROPHANT_ANSIBLE = 1) + consumed_components = list(BELLIGERENT_EYE = 1, HIEROPHANT_ANSIBLE = 1) + object_path = /obj/structure/destructible/clockwork/shell/cogscarab + creator_message = "You form a cogscarab, a constructor soul vessel receptable." + observer_message = "The slab disgorges a puddle of black metal that contracts and forms into a strange shell!" + usage_tip = "Useless without a soul vessel and should not be created without one." + tier = SCRIPTURE_SCRIPT + primary_component = BELLIGERENT_EYE + sort_priority = 2 + quickbind = TRUE + quickbind_desc = "Creates a Cogscarab Shell, which produces a Cogscarab when filled with a Soul Vessel." + + +//Fellowship Armory: Arms the invoker and nearby servants with Ratvarian armor. +/datum/clockwork_scripture/fellowship_armory + descname = "Area Servant Armor" + name = "Fellowship Armory" + desc = "Equips the invoker and any nearby servants with Ratvarian armor. This armor provides high melee resistance but a weakness to lasers. \ + It grows faster to invoke with more nearby servants." + invocations = list("Shield us...", "...with the...", "... fragments of Engine!") + channel_time = 100 + required_components = list(VANGUARD_COGWHEEL = 2, REPLICANT_ALLOY = 1) + consumed_components = list(VANGUARD_COGWHEEL = 1, REPLICANT_ALLOY = 1) + usage_tip = "Before using, advise adjacent allies to remove their helmets, external suits, gloves, and shoes." + tier = SCRIPTURE_SCRIPT + multiple_invokers_used = TRUE + multiple_invokers_optional = TRUE + primary_component = VANGUARD_COGWHEEL + sort_priority = 4 + quickbind = TRUE + quickbind_desc = "Attempts to armor all nearby Servants with powerful Ratvarian armor." + +/datum/clockwork_scripture/fellowship_armory/run_scripture() + for(var/mob/living/L in orange(1, get_turf(invoker))) + if(is_servant_of_ratvar(L) && L.can_speak_vocal()) + channel_time = max(channel_time - 10, 0) + return ..() + +/datum/clockwork_scripture/fellowship_armory/scripture_effects() + var/affected = 0 + for(var/mob/living/L in range(1, invoker)) + if(!is_servant_of_ratvar(L)) + continue + var/do_message = 0 + do_message += L.equip_to_slot_or_del(new/obj/item/clothing/head/helmet/clockwork(null), slot_head) + do_message += L.equip_to_slot_or_del(new/obj/item/clothing/suit/armor/clockwork(null), slot_wear_suit) + do_message += L.equip_to_slot_or_del(new/obj/item/clothing/gloves/clockwork(null), slot_gloves) + do_message += L.equip_to_slot_or_del(new/obj/item/clothing/shoes/clockwork(null), slot_shoes) + if(do_message) + L.visible_message("Strange armor appears on [L]!", "A bright shimmer runs down your body, equipping you with Ratvarian armor.") + playsound(L, 'sound/magic/clockwork/fellowship_armory.ogg', 15*do_message, 1) //get sound loudness based on how much we equipped + affected++ + return affected + + +//Sigil of Submission: Creates a sigil of submission, which converts one heretic above it after a delay. +/datum/clockwork_scripture/create_object/sigil_of_submission + descname = "Trap, Conversion" + name = "Sigil of Submission" + desc = "Places a luminous sigil that will enslave any valid beings standing on it after a time." + invocations = list("Divinity, enlighten...", "...those who trespass here!") + channel_time = 60 + required_components = list(BELLIGERENT_EYE = 1, GEIS_CAPACITOR = 2) + consumed_components = list(BELLIGERENT_EYE = 1, GEIS_CAPACITOR = 1) + whispered = TRUE + object_path = /obj/effect/clockwork/sigil/submission + creator_message = "A luminous sigil appears below you. The next non-servant to cross it will be enslaved after a brief time if they do not move." + usage_tip = "This is not a primary conversion method - use Geis for that. It is advantageous as a trap, however, as it will transmit the name of the newly-converted." + tier = SCRIPTURE_SCRIPT + one_per_tile = TRUE + primary_component = GEIS_CAPACITOR + sort_priority = 5 + quickbind = TRUE + quickbind_desc = "Creates a Sigil of Submission, which will convert one non-Servant that remains on it." + + +//Soul Vessel: Creates a soul vessel, which can seek a ghost or be used on the uncovered head of a dead or dying human to take their brain. +/datum/clockwork_scripture/create_object/soul_vessel + descname = "Clockwork Posibrain" + name = "Soul Vessel" + desc = "Forms an ancient positronic brain with an overriding directive to serve Ratvar." + invocations = list("Herd the souls of...", "...the blasphemous damned!") + channel_time = 30 + required_components = list(VANGUARD_COGWHEEL = 1, GEIS_CAPACITOR = 2) + consumed_components = list(VANGUARD_COGWHEEL = 1, GEIS_CAPACITOR = 1) + whispered = TRUE + object_path = /obj/item/device/mmi/posibrain/soul_vessel + creator_message = "You form a soul vessel, which can be used in-hand to attract spirits, or used on an unconscious or dead human to extract their consciousness." + usage_tip = "The vessel can be used as a teleport target for Spatial Gateway, though it is generally better-used by placing it in a shell or cyborg body." + tier = SCRIPTURE_SCRIPT + space_allowed = TRUE + primary_component = GEIS_CAPACITOR + sort_priority = 6 + quickbind = TRUE + quickbind_desc = "Creates a Soul Vessel, which can be placed in construct shells and cyborg bodies once filled." + + +//Clockwork Proselytizer: Creates a clockwork proselytizer, used to convert objects and repair clockwork structures. +/datum/clockwork_scripture/create_object/clockwork_proselytizer + descname = "Converts Objects to Ratvarian" + name = "Clockwork Proselytizer" + desc = "Forms a device that, when used on certain objects, converts them into their Ratvarian equivalents. It requires replicant alloy to function." + invocations = list("With this device...", "...his presence shall be made known.") + channel_time = 20 + required_components = list(GEIS_CAPACITOR = 1, REPLICANT_ALLOY = 2) + consumed_components = list(GEIS_CAPACITOR = 1, REPLICANT_ALLOY = 1) + whispered = TRUE + object_path = /obj/item/clockwork/clockwork_proselytizer/preloaded + creator_message = "You form a clockwork proselytizer, which is already pre-loaded with a small amount of replicant alloy." + usage_tip = "Clockwork Walls cause nearby tinkerer's caches to generate components passively, making them a vital tool. Clockwork Floors heal toxin damage in Servants standing on them." + tier = SCRIPTURE_SCRIPT + space_allowed = TRUE + primary_component = REPLICANT_ALLOY + sort_priority = 7 + quickbind = TRUE + quickbind_desc = "Creates a Clockwork Proselytizer, which can convert various objects to Ratvarian variants." + + +//Function Call: Grants the invoker the ability to call forth a Ratvarian spear that deals significant damage to silicons. +/datum/clockwork_scripture/function_call + descname = "Permenant Summonable Spear" + name = "Function Call" + desc = "Grants the invoker the ability to call forth a powerful Ratvarian spear every three minutes. The spear will deal significant damage to Nar-Sie's dogs and silicon lifeforms, but will \ + vanish three minutes after being summoned." + invocations = list("Grant me...", "...the might of brass!") + channel_time = 20 + required_components = list(REPLICANT_ALLOY = 2, HIEROPHANT_ANSIBLE = 1) + consumed_components = list(REPLICANT_ALLOY = 1, HIEROPHANT_ANSIBLE = 1) + whispered = TRUE + usage_tip = "You can impale human targets with the spear by pulling them, then attacking. Throwing the spear at a mob will do massive damage and stun them, but break the spear." + tier = SCRIPTURE_SCRIPT + primary_component = REPLICANT_ALLOY + sort_priority = 8 + +/datum/clockwork_scripture/function_call/check_special_requirements() + for(var/datum/action/innate/function_call/F in invoker.actions) + invoker << "You have already bound a Ratvarian spear to yourself!" + return FALSE + return invoker.can_hold_items() + +/datum/clockwork_scripture/function_call/scripture_effects() + invoker.visible_message("A shimmer of yellow light infuses [invoker]!", \ + "You bind a Ratvarian spear to yourself. Use the \"Function Call\" action button to call it forth.") + var/datum/action/innate/function_call/F = new() + F.Grant(invoker) + return TRUE + +//Function Call action: Calls forth a Ratvarian spear once every 3 minutes. +/datum/action/innate/function_call + name = "Function Call" + desc = "Allows you to summon a Ratvarian spear to fight enemies." + button_icon_state = "ratvarian_spear" + background_icon_state = "bg_clock" + check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUNNED|AB_CHECK_CONSCIOUS + buttontooltipstyle = "clockcult" + var/cooldown = 0 + var/base_cooldown = 1800 + +/datum/action/innate/function_call/IsAvailable() + if(!is_servant_of_ratvar(owner) || cooldown > world.time) + return FALSE + return ..() + +/datum/action/innate/function_call/Activate() + if(!owner.get_empty_held_indexes()) + usr << "You need an empty to hand to call forth your spear!" + return FALSE + owner.visible_message("A strange spear materializes in [owner]'s hands!", "You call forth your spear!") + var/obj/item/clockwork/ratvarian_spear/R = new(get_turf(usr)) + owner.put_in_hands(R) + if(!ratvar_awakens) + R.clockwork_desc = "A powerful spear of Ratvarian making. It's more effective against enemy cultists and silicons, though it won't last for long." + owner << "Your spear begins to break down in this plane of existence. You can't use it for long!" + R.timerid = addtimer(R, "break_spear", base_cooldown, TIMER_NORMAL) + cooldown = base_cooldown + world.time + owner.update_action_buttons_icon() + addtimer(src, "update_actions", base_cooldown, TIMER_NORMAL) + return TRUE + +/datum/action/innate/function_call/proc/update_actions() + if(owner) + owner.update_action_buttons_icon() + + +//Spatial Gateway: Allows the invoker to teleport themselves and any nearby allies to a conscious servant or clockwork obelisk. +/datum/clockwork_scripture/spatial_gateway + descname = "Teleport Gate" + name = "Spatial Gateway" + desc = "Tears open a miniaturized gateway in spacetime to any conscious servant that can transport objects or creatures to its destination. \ + Each servant assisting in the invocation adds one additional use and four additional seconds to the gateway's uses and duration." + invocations = list("Spatial Gateway...", "...activate!") + channel_time = 80 + required_components = list(VANGUARD_COGWHEEL = 1, HIEROPHANT_ANSIBLE = 2) + consumed_components = list(VANGUARD_COGWHEEL = 1, HIEROPHANT_ANSIBLE = 1) + multiple_invokers_used = TRUE + multiple_invokers_optional = TRUE + usage_tip = "This gateway is strictly one-way and will only allow things through the invoker's portal." + tier = SCRIPTURE_SCRIPT + primary_component = HIEROPHANT_ANSIBLE + sort_priority = 9 + quickbind = TRUE + quickbind_desc = "Allows you to create a one-way Spatial Gateway to a living Servant or Clockwork Obelisk." + +/datum/clockwork_scripture/spatial_gateway/check_special_requirements() + if(!isturf(invoker.loc)) + invoker << "You must not be inside an object to use this scripture!" + return FALSE + var/other_servants = 0 + for(var/mob/living/L in living_mob_list) + if(is_servant_of_ratvar(L) && !L.stat && L != invoker) + other_servants++ + for(var/obj/structure/destructible/clockwork/powered/clockwork_obelisk/O in all_clockwork_objects) + other_servants++ + if(!other_servants) + invoker << "There are no other servants or clockwork obelisks!" + return FALSE + return TRUE + +/datum/clockwork_scripture/spatial_gateway/scripture_effects() + var/portal_uses = 0 + var/duration = 0 + for(var/mob/living/L in range(1, invoker)) + if(!L.stat && is_servant_of_ratvar(L)) + portal_uses++ + duration += 40 //4 seconds + if(ratvar_awakens) + portal_uses = max(portal_uses, 100) //Very powerful if Ratvar has been summoned + duration = max(duration, 100) + return slab.procure_gateway(invoker, duration, portal_uses) + + +//Volt Void: Channeled for up to thirty times over thirty seconds. Consumes power from most power storages and deals slight burn damage to the invoker. +/datum/clockwork_scripture/channeled/volt_void + descname = "Channeled, Area Power Drain" + name = "Volt Void" //Alternative name: "On all levels but physical, I am a power sink" + desc = "Drains energy from nearby power sources, dealing burn damage if the total power consumed is above a threshhold. Channeled every second for a maximum of thirty seconds." + chant_invocations = list("Draw charge to this shell!") + chant_amount = 30 + chant_interval = 10 + required_components = list(GEIS_CAPACITOR = 1, HIEROPHANT_ANSIBLE = 2) + consumed_components = list(GEIS_CAPACITOR = 1, HIEROPHANT_ANSIBLE = 1) + usage_tip = "If standing on a Sigil of Transmission, will transfer power to it. Augumented limbs will also be healed unless above a very high threshhold." + tier = SCRIPTURE_SCRIPT + primary_component = HIEROPHANT_ANSIBLE + sort_priority = 10 + quickbind = TRUE + quickbind_desc = "Drains power from nearby objects. If standing on a Sigil of Transmission, gives it that power.
    Maximum 30 chants." + var/total_power_drained = 0 + var/power_damage_threshhold = 3000 + var/augument_damage_threshhold = 6000 + +/datum/clockwork_scripture/channeled/volt_void/chant_effects(chant_number) + playsound(invoker, 'sound/effects/EMPulse.ogg', 50, 1) + PoolOrNew(/obj/effect/overlay/temp/ratvar/sigil/voltvoid, get_turf(invoker)) + var/power_drained = 0 + for(var/atom/movable/A in view(7, get_turf(invoker))) + power_drained += A.power_drain(TRUE) + var/obj/effect/clockwork/sigil/transmission/ST = locate(/obj/effect/clockwork/sigil/transmission) in get_turf(invoker) + if(ST && power_drained >= MIN_CLOCKCULT_POWER) + var/sigil_drain = 0 + while(power_drained >= MIN_CLOCKCULT_POWER) + ST.modify_charge(-MIN_CLOCKCULT_POWER) + power_drained -= MIN_CLOCKCULT_POWER + sigil_drain += MIN_CLOCKCULT_POWER * 0.2 + power_drained += sigil_drain //readd part of the power given to the sigil to the power drained this cycle + ST.visible_message("[ST] flares a brilliant orange!") + total_power_drained += power_drained + if(power_drained >= MIN_CLOCKCULT_POWER) + if(iscyborg(invoker)) + var/mob/living/silicon/robot/R = invoker + if(R.cell) + R.cell.give(power_drained) + R.visible_message("[invoker] flares a brilliant orange!", "You feel your cell charging.") + else if(total_power_drained >= power_damage_threshhold) + var/power_damage = power_drained * 0.01 + invoker.visible_message("[invoker] flares a brilliant orange!", "You feel the heat of electricity running into your body.") + if(ishuman(invoker)) + var/mob/living/carbon/human/H = invoker + for(var/X in H.bodyparts) + var/obj/item/bodypart/BP = X + if(ratvar_awakens || (BP.status == BODYPART_ROBOTIC && total_power_drained < augument_damage_threshhold)) //if ratvar is alive, it won't damage and will always heal augumented limbs + if(BP.heal_damage(power_damage, power_damage, 1, 0)) //heals one point of burn and brute for every ~100W drained on augumented limbs + H.update_damage_overlays() + else + if(BP.receive_damage(0, power_damage)) + H.update_damage_overlays() + else if(isanimal(invoker)) + var/mob/living/simple_animal/A = invoker + A.adjustHealth(-power_damage) //if a simple animal is using volt void, just heal it + return TRUE diff --git a/code/game/gamemodes/clock_cult/clock_structure.dm b/code/game/gamemodes/clock_cult/clock_structure.dm new file mode 100644 index 0000000000..5ff8c4c260 --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_structure.dm @@ -0,0 +1,279 @@ +//The base clockwork structure. Can have an alternate desc and will show up in the list of clockwork objects. +/obj/structure/destructible/clockwork + name = "meme structure" + desc = "Some frog or something, the fuck?" + var/clockwork_desc //Shown to servants when they examine + icon = 'icons/obj/clockwork_objects.dmi' + icon_state = "rare_pepe" + var/unanchored_icon //icon for when this structure is unanchored, doubles as the var for if it can be unanchored + anchored = 1 + density = 1 + resistance_flags = FIRE_PROOF | ACID_PROOF + var/repair_amount = 5 //how much a proselytizer can repair each cycle + var/can_be_repaired = TRUE //if a proselytizer can repair it at all + break_message = "The frog isn't a meme after all!" //The message shown when a structure breaks + break_sound = 'sound/magic/clockwork/anima_fragment_death.ogg' //The sound played when a structure breaks + debris = list(/obj/item/clockwork/alloy_shards/large = 1, \ + /obj/item/clockwork/alloy_shards/medium = 2, \ + /obj/item/clockwork/alloy_shards/small = 3) //Parts left behind when a structure breaks + var/construction_value = 0 //How much value the structure contributes to the overall "power" of the structures on the station + +/obj/structure/destructible/clockwork/New() + ..() + change_construction_value(construction_value) + all_clockwork_objects += src + +/obj/structure/destructible/clockwork/Destroy() + change_construction_value(-construction_value) + all_clockwork_objects -= src + return ..() + +/obj/structure/destructible/clockwork/ratvar_act() + obj_integrity = max_integrity + +/obj/structure/destructible/clockwork/narsie_act() + if(take_damage(rand(25, 50), BRUTE) && src) //if we still exist + var/previouscolor = color + color = "#960000" + animate(src, color = previouscolor, time = 8) + addtimer(src, "update_atom_colour", 8) + +/obj/structure/destructible/clockwork/examine(mob/user) + var/can_see_clockwork = is_servant_of_ratvar(user) || isobserver(user) + if(can_see_clockwork && clockwork_desc) + desc = clockwork_desc + ..() + desc = initial(desc) + if(!(resistance_flags & INDESTRUCTIBLE)) + var/t_It = p_they(TRUE) + var/t_is = p_are() + var/servant_message = "[t_It] [t_is] at [obj_integrity]/[max_integrity] integrity" + var/heavily_damaged = FALSE + var/healthpercent = (obj_integrity/max_integrity) * 100 + if(healthpercent < 50) + heavily_damaged = TRUE + if(can_see_clockwork) + user << "[servant_message][heavily_damaged ? "!":"."]" + if(unanchored_icon) + user << "[src] is [anchored ? "":"not "]secured to the floor." + +/obj/structure/destructible/clockwork/hulk_damage() + return 20 + +/obj/structure/destructible/clockwork/proc/get_efficiency_mod(increasing) + if(ratvar_awakens) + if(increasing) + return 0.5 + return 2 + . = max(sqrt(obj_integrity/max(max_integrity, 1)), 0.5) + if(increasing) + . *= min(max_integrity/max(obj_integrity, 1), 4) + . = round(., 0.01) + +/obj/structure/destructible/clockwork/can_be_unfasten_wrench(mob/user) + if(anchored && obj_integrity <= round(max_integrity * 0.25, 1)) + user << "[src] is too damaged to unsecure!" + return FAILED_UNFASTEN + return ..() + +/obj/structure/destructible/clockwork/attackby(obj/item/I, mob/user, params) + if(is_servant_of_ratvar(user) && istype(I, /obj/item/weapon/wrench) && unanchored_icon) + if(default_unfasten_wrench(user, I, 50) == SUCCESSFUL_UNFASTEN) + update_anchored(user, TRUE) + return 1 + return ..() + +/obj/structure/destructible/clockwork/proc/update_anchored(mob/user, do_damage) + if(anchored) + icon_state = initial(icon_state) + else + icon_state = unanchored_icon + if(do_damage) + playsound(src, break_sound, 10 * get_efficiency_mod(TRUE), 1) + take_damage(round(max_integrity * 0.25, 1), BRUTE) + user << "As you unsecure [src] from the floor, you see cracks appear in its surface!" + +/obj/structure/destructible/clockwork/emp_act(severity) + if(anchored && unanchored_icon) + anchored = FALSE + update_anchored(null, obj_integrity > max_integrity * 0.25) + PoolOrNew(/obj/effect/overlay/temp/emp, loc) + + +//for the ark and Ratvar +/obj/structure/destructible/clockwork/massive + name = "massive construct" + desc = "A very large construction." + layer = MASSIVE_OBJ_LAYER + density = FALSE + resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF + +/obj/structure/destructible/clockwork/massive/New() + ..() + poi_list += src + +/obj/structure/destructible/clockwork/massive/Destroy() + poi_list -= src + return ..() + +/obj/structure/destructible/clockwork/massive/singularity_pull(S, current_size) + return + + +//the base clockwork machinery, which is not actually machines, but happens to use power +/obj/structure/destructible/clockwork/powered + var/obj/machinery/power/apc/target_apc + var/active = FALSE + var/needs_power = TRUE + var/active_icon = null //icon_state while process() is being called + var/inactive_icon = null //icon_state while process() isn't being called + +/obj/structure/destructible/clockwork/powered/examine(mob/user) + ..() + if(is_servant_of_ratvar(user) || isobserver(user)) + var/powered = total_accessable_power() + user << "It has access to [powered == INFINITY ? "INFINITY":"[powered]"]W of power." + +/obj/structure/destructible/clockwork/powered/Destroy() + SSfastprocess.processing -= src + SSobj.processing -= src + return ..() + +/obj/structure/destructible/clockwork/powered/process() + var/powered = total_accessable_power() + return powered == PROCESS_KILL ? 25 : powered //make sure we don't accidentally return the arbitrary PROCESS_KILL define + +/obj/structure/destructible/clockwork/powered/can_be_unfasten_wrench(mob/user) + if(active) + user << "[src] needs to be disabled before it can be unsecured!" + return FAILED_UNFASTEN + return ..() + +/obj/structure/destructible/clockwork/powered/attack_ai(mob/user) + if(is_servant_of_ratvar(user)) + attack_hand(user) + +/obj/structure/destructible/clockwork/powered/proc/toggle(fast_process, mob/living/user) + if(user) + if(!is_servant_of_ratvar(user)) + return FALSE + if(!anchored && !active) + user << "[src] needs to be secured to the floor before it can be activated!" + return FALSE + visible_message("[user] [active ? "dis" : "en"]ables [src].", "You [active ? "dis" : "en"]able [src].") + active = !active + if(active) + icon_state = active_icon + if(fast_process) + START_PROCESSING(SSfastprocess, src) + else + START_PROCESSING(SSobj, src) + else + icon_state = inactive_icon + if(fast_process) + STOP_PROCESSING(SSfastprocess, src) + else + STOP_PROCESSING(SSobj, src) + return TRUE + +/obj/structure/destructible/clockwork/powered/proc/forced_disable(bad_effects) + if(active) + toggle() + +/obj/structure/destructible/clockwork/powered/emp_act(severity) + if(forced_disable(TRUE)) + PoolOrNew(/obj/effect/overlay/temp/emp, loc) + +/obj/structure/destructible/clockwork/powered/proc/total_accessable_power() //how much power we have and can use + if(!needs_power || ratvar_awakens) + return INFINITY //oh yeah we've got power why'd you ask + + var/power = 0 + power += accessable_apc_power() + power += accessable_sigil_power() + return power + +/obj/structure/destructible/clockwork/powered/proc/accessable_apc_power() + var/power = 0 + var/area/A = get_area(src) + var/area/targetAPCA + for(var/obj/machinery/power/apc/APC in apcs_list) + var/area/APCA = get_area(APC) + if(APCA == A) + target_apc = APC + if(target_apc) + targetAPCA = get_area(target_apc) + if(targetAPCA != A) + target_apc = null + else if(target_apc.cell) + var/apccharge = target_apc.cell.charge + if(apccharge >= MIN_CLOCKCULT_POWER) + power += apccharge + return power + +/obj/structure/destructible/clockwork/powered/proc/accessable_sigil_power() + var/power = 0 + for(var/obj/effect/clockwork/sigil/transmission/T in range(1, src)) + power += T.power_charge + return power + + +/obj/structure/destructible/clockwork/powered/proc/try_use_power(amount) //try to use an amount of power + if(!needs_power || ratvar_awakens) + return 1 + if(amount <= 0) + return FALSE + var/power = total_accessable_power() + if(!power || power < amount) + return FALSE + return use_power(amount) + +/obj/structure/destructible/clockwork/powered/proc/use_power(amount) //we've made sure we had power, so now we use it + var/sigilpower = accessable_sigil_power() + var/list/sigils_in_range = list() + for(var/obj/effect/clockwork/sigil/transmission/T in range(1, src)) + sigils_in_range |= T + while(sigilpower && amount >= MIN_CLOCKCULT_POWER) + for(var/S in sigils_in_range) + var/obj/effect/clockwork/sigil/transmission/T = S + if(amount >= MIN_CLOCKCULT_POWER && T.modify_charge(MIN_CLOCKCULT_POWER)) + sigilpower -= MIN_CLOCKCULT_POWER + amount -= MIN_CLOCKCULT_POWER + var/apcpower = accessable_apc_power() + while(apcpower >= MIN_CLOCKCULT_POWER && amount >= MIN_CLOCKCULT_POWER) + if(target_apc.cell.use(MIN_CLOCKCULT_POWER)) + apcpower -= MIN_CLOCKCULT_POWER + amount -= MIN_CLOCKCULT_POWER + target_apc.charging = 1 + target_apc.chargemode = TRUE + target_apc.update() + target_apc.update_icon() + target_apc.updateUsrDialog() + else + apcpower = 0 + if(amount) + return FALSE + else + return TRUE + +/obj/structure/destructible/clockwork/powered/proc/return_power(amount) //returns a given amount of power to all nearby sigils or if there are no sigils, to the APC + if(amount <= 0) + return FALSE + var/list/sigils_in_range = list() + for(var/obj/effect/clockwork/sigil/transmission/T in range(1, src)) + sigils_in_range |= T + if(!sigils_in_range.len && (!target_apc || !target_apc.cell)) + return FALSE + if(sigils_in_range.len) + while(amount >= MIN_CLOCKCULT_POWER) + for(var/S in sigils_in_range) + var/obj/effect/clockwork/sigil/transmission/T = S + if(amount >= MIN_CLOCKCULT_POWER && T.modify_charge(-MIN_CLOCKCULT_POWER)) + amount -= MIN_CLOCKCULT_POWER + if(target_apc && target_apc.cell && target_apc.cell.give(amount)) + target_apc.charging = 1 + target_apc.chargemode = TRUE + target_apc.update() + target_apc.update_icon() + target_apc.updateUsrDialog() + return TRUE diff --git a/code/game/gamemodes/clock_cult/clock_structures.dm b/code/game/gamemodes/clock_cult/clock_structures.dm deleted file mode 100644 index cd002c0d88..0000000000 --- a/code/game/gamemodes/clock_cult/clock_structures.dm +++ /dev/null @@ -1,955 +0,0 @@ -////////////////////////// -// CLOCKWORK STRUCTURES // -////////////////////////// - -/obj/structure/clockwork - name = "meme structure" - desc = "Some frog or something, the fuck?" - var/clockwork_desc //Shown to servants when they examine - icon = 'icons/obj/clockwork_objects.dmi' - icon_state = "rare_pepe" - anchored = 1 - density = 1 - opacity = 0 - layer = BELOW_OBJ_LAYER - var/max_health = 100 //All clockwork structures have health that can be removed via attacks - var/health = 100 - var/repair_amount = 5 //how much a proselytizer can repair each cycle - var/can_be_repaired = TRUE //if a proselytizer can repair it at all - var/takes_damage = TRUE //If the structure can be damaged - var/break_message = "The frog isn't a meme after all!" //The message shown when a structure breaks - var/break_sound = 'sound/magic/clockwork/anima_fragment_death.ogg' //The sound played when a structure breaks - var/list/debris = list(/obj/item/clockwork/alloy_shards) //Parts left behind when a structure breaks - var/construction_value = 0 //How much value the structure contributes to the overall "power" of the structures on the station - -/obj/structure/clockwork/New() - ..() - clockwork_construction_value += construction_value - all_clockwork_objects += src - -/obj/structure/clockwork/Destroy() - clockwork_construction_value -= construction_value - all_clockwork_objects -= src - return ..() - -/obj/structure/clockwork/proc/destroyed() - if(!takes_damage) - return 0 - for(var/I in debris) - new I (get_turf(src)) - visible_message(break_message) - playsound(src, break_sound, 50, 1) - qdel(src) - return 1 - -/obj/structure/clockwork/burn() - SSobj.burning -= src - if(takes_damage) - playsound(src, 'sound/items/Welder.ogg', 100, 1) - visible_message("[src] is warped by the heat!") - take_damage(rand(50, 100), BURN) - -/obj/structure/clockwork/proc/take_damage(amount, damage_type) - if(!amount || !damage_type || !damage_type in list(BRUTE, BURN)) - return 0 - if(takes_damage) - health = max(0, health - amount) - if(!health) - destroyed() - return 1 - return 0 - -/obj/structure/clockwork/narsie_act() - if(take_damage(rand(25, 50), BRUTE) && src) //if we still exist - var/previouscolor = color - color = "#960000" - animate(src, color = previouscolor, time = 8) - -/obj/structure/clockwork/ex_act(severity) - var/damage = 0 - switch(severity) - if(1) - damage = max_health //100% max health lost - if(2) - damage = max_health * rand(0.5, 0.7) //50-70% max health lost - if(3) - damage = max_health * rand(0.1, 0.3) //10-30% max health lost - if(damage) - take_damage(damage, BRUTE) - -/obj/structure/clockwork/examine(mob/user) - var/can_see_clockwork = is_servant_of_ratvar(user) || isobserver(user) - if(can_see_clockwork && clockwork_desc) - desc = clockwork_desc - ..() - desc = initial(desc) - if(takes_damage) - var/servant_message = "It is at [health]/[max_health] integrity" - var/other_message = "It seems pristine and undamaged" - var/heavily_damaged = FALSE - var/healthpercent = (health/max_health) * 100 - if(healthpercent >= 100) - other_message = "It seems pristine and undamaged" - else if(healthpercent >= 50) - other_message = "It looks slightly dented" - else if(healthpercent >= 25) - other_message = "It appears heavily damaged" - heavily_damaged = TRUE - else if(healthpercent >= 0) - other_message = "It's falling apart" - heavily_damaged = TRUE - user << "[can_see_clockwork ? "[servant_message]":"[other_message]"][heavily_damaged ? "!":"."]" - -/obj/structure/clockwork/bullet_act(obj/item/projectile/P) - . = ..() - visible_message("[src] is hit by \a [P]!") - playsound(src, P.hitsound, 50, 1) - take_damage(P.damage, P.damage_type) - -/obj/structure/clockwork/proc/attack_generic(mob/user, damage = 0, damage_type = BRUTE) //used by attack_alien, attack_animal, and attack_slime - user.do_attack_animation(src) - user.changeNext_move(CLICK_CD_MELEE) - user.visible_message("[user] smashes into [src]!") - take_damage(damage, damage_type) - -/obj/structure/clockwork/attack_alien(mob/living/user) - playsound(src, 'sound/weapons/bladeslice.ogg', 50, 1) - attack_generic(user, 15) - -/obj/structure/clockwork/attack_animal(mob/living/simple_animal/M) - if(!M.melee_damage_upper) - return - playsound(src, 'sound/weapons/Genhit.ogg', 50, 1) - attack_generic(M, M.melee_damage_upper, M.melee_damage_type) - -/obj/structure/clockwork/attack_slime(mob/living/simple_animal/slime/user) - if(!user.is_adult) - return - playsound(src, 'sound/weapons/Genhit.ogg', 50, 1) - attack_generic(user, rand(10, 15)) - -/obj/structure/clockwork/attacked_by(obj/item/I, mob/living/user) - . = ..() - if(I.force && takes_damage) - playsound(src, I.hitsound, 50, 1) - take_damage(I.force, I.damtype) - -/obj/structure/clockwork/mech_melee_attack(obj/mecha/M) - if(..()) - playsound(src, 'sound/weapons/punch4.ogg', 50, 1) - take_damage(M.force, M.damtype) - -/obj/structure/clockwork/cache //Tinkerer's cache: Stores components for later use. - name = "tinkerer's cache" - desc = "A large brass spire with a flaming hole in its center." - clockwork_desc = "A brass container capable of storing a large amount of components.\n\ - Shares components with all other caches and will gradually generate components if near a Clockwork Wall." - icon_state = "tinkerers_cache" - construction_value = 10 - break_message = "The cache's fire winks out before it falls in on itself!" - max_health = 80 - health = 80 - var/wall_generation_cooldown - var/wall_found = FALSE //if we've found a wall and finished our windup delay - -/obj/structure/clockwork/cache/New() - ..() - START_PROCESSING(SSobj, src) - clockwork_caches++ - set_light(2,1) - -/obj/structure/clockwork/cache/Destroy() - clockwork_caches-- - STOP_PROCESSING(SSobj, src) - return ..() - -/obj/structure/clockwork/cache/destroyed() - if(takes_damage) - for(var/I in src) - var/atom/movable/A = I - A.forceMove(get_turf(src)) //drop any daemons we have - return ..() - -/obj/structure/clockwork/cache/process() - for(var/turf/closed/wall/clockwork/C in orange(1, src)) - if(!wall_found) - wall_found = TRUE - wall_generation_cooldown = world.time + CACHE_PRODUCTION_TIME - visible_message("[src] starts to whirr in the presence of [C]...") - break - if(wall_generation_cooldown <= world.time) - wall_generation_cooldown = world.time + CACHE_PRODUCTION_TIME - generate_cache_component() - playsound(C, 'sound/magic/clockwork/fellowship_armory.ogg', rand(15, 20), 1, -3, 1, 1) - visible_message("Something clunks around inside of [src]...") - break - -/obj/structure/clockwork/cache/attackby(obj/item/I, mob/living/user, params) - if(!is_servant_of_ratvar(user)) - return ..() - if(istype(I, /obj/item/clockwork/component)) - var/obj/item/clockwork/component/C = I - clockwork_component_cache[C.component_id]++ - user << "You add [C] to [src]." - user.drop_item() - qdel(C) - return 1 - else if(istype(I, /obj/item/clockwork/slab)) - var/obj/item/clockwork/slab/S = I - clockwork_component_cache["belligerent_eye"] += S.stored_components["belligerent_eye"] - clockwork_component_cache["vanguard_cogwheel"] += S.stored_components["vanguard_cogwheel"] - clockwork_component_cache["guvax_capacitor"] += S.stored_components["guvax_capacitor"] - clockwork_component_cache["replicant_alloy"] += S.stored_components["replicant_alloy"] - clockwork_component_cache["hierophant_ansible"] += S.stored_components["hierophant_ansible"] - S.stored_components["belligerent_eye"] = 0 - S.stored_components["vanguard_cogwheel"] = 0 - S.stored_components["guvax_capacitor"] = 0 - S.stored_components["replicant_alloy"] = 0 - S.stored_components["hierophant_ansible"] = 0 - user.visible_message("[user] empties [S] into [src].", "You offload your slab's components into [src].") - return 1 - else if(istype(I, /obj/item/clockwork/daemon_shell)) - var/component_type - switch(alert(user, "Will this daemon produce a specific type of component or produce randomly?.", , "Specific Type", "Random Component")) - if("Specific Type") - switch(input(user, "Choose a component type.", name) as null|anything in list("Belligerent Eyes", "Vanguard Cogwheels", "Guvax Capacitors", "Replicant Alloys", "Hierophant Ansibles")) - if("Belligerent Eyes") - component_type = "belligerent_eye" - if("Vanguard Cogwheels") - component_type = "vanguard_cogwheel" - if("Guvax Capacitors") - component_type = "guvax_capacitor" - if("Replicant Alloys") - component_type = "replicant_alloy" - if("Hierophant Ansibles") - component_type = "hierophant_ansibles" - if(!user || !user.canUseTopic(src) || !user.canUseTopic(I)) - return 0 - var/obj/item/clockwork/tinkerers_daemon/D = new(src) - D.cache = src - D.specific_component = component_type - user.visible_message("[user] spins the cogwheel on [I] and puts it into [src].", \ - "You activate the daemon and put it into [src]. It will now produce a component every twenty seconds.") - user.drop_item() - qdel(I) - return 1 - else - return ..() - -/obj/structure/clockwork/cache/attack_hand(mob/user) - if(!is_servant_of_ratvar(user)) - return 0 - var/list/possible_components = list() - if(clockwork_component_cache["belligerent_eye"]) - possible_components += "Belligerent Eye" - if(clockwork_component_cache["vanguard_cogwheel"]) - possible_components += "Vanguard Cogwheel" - if(clockwork_component_cache["guvax_capacitor"]) - possible_components += "Guvax Capacitor" - if(clockwork_component_cache["replicant_alloy"]) - possible_components += "Replicant Alloy" - if(clockwork_component_cache["hierophant_ansible"]) - possible_components += "Hierophant Ansible" - if(!possible_components.len) - user << "[src] is empty!" - return 0 - var/component_to_withdraw = input(user, "Choose a component to withdraw.", name) as null|anything in possible_components - if(!user || !user.canUseTopic(src) || !component_to_withdraw) - return 0 - var/obj/item/clockwork/component/the_component - switch(component_to_withdraw) - if("Belligerent Eye") - if(clockwork_component_cache["belligerent_eye"]) - the_component = new/obj/item/clockwork/component/belligerent_eye(get_turf(src)) - clockwork_component_cache["belligerent_eye"]-- - if("Vanguard Cogwheel") - if(clockwork_component_cache["vanguard_cogwheel"]) - the_component = new/obj/item/clockwork/component/vanguard_cogwheel(get_turf(src)) - clockwork_component_cache["vanguard_cogwheel"]-- - if("Guvax Capacitor") - if(clockwork_component_cache["guvax_capacitor"]) - the_component = new/obj/item/clockwork/component/guvax_capacitor(get_turf(src)) - clockwork_component_cache["guvax_capacitor"]-- - if("Replicant Alloy") - if(clockwork_component_cache["replicant_alloy"]) - the_component = new/obj/item/clockwork/component/replicant_alloy(get_turf(src)) - clockwork_component_cache["replicant_alloy"]-- - if("Hierophant Ansible") - if(clockwork_component_cache["hierophant_ansible"]) - the_component = new/obj/item/clockwork/component/hierophant_ansible(get_turf(src)) - clockwork_component_cache["hierophant_ansible"]-- - if(the_component) - user.visible_message("[user] withdraws [the_component] from [src].", "You withdraw [the_component] from [src].") - user.put_in_hands(the_component) - return 1 - -/obj/structure/clockwork/cache/examine(mob/user) - ..() - if(is_servant_of_ratvar(user) || isobserver(user)) - user << "Stored components:" - user << "Belligerent Eyes: [clockwork_component_cache["belligerent_eye"]]" - user << "Vanguard Cogwheels: [clockwork_component_cache["vanguard_cogwheel"]]" - user << "Guvax Capacitors: [clockwork_component_cache["guvax_capacitor"]]" - user << "Replicant Alloys: [clockwork_component_cache["replicant_alloy"]]" - user << "Hierophant Ansibles: [clockwork_component_cache["hierophant_ansible"]]" - - -/obj/structure/clockwork/ocular_warden //Ocular warden: Low-damage, low-range turret. Deals constant damage to whoever it makes eye contact with. - name = "ocular warden" - desc = "A large brass eye with tendrils trailing below it and a wide red iris." - clockwork_desc = "A stalwart turret that will deal sustained damage to any non-faithful it sees." - icon_state = "ocular_warden" - health = 25 - max_health = 25 - construction_value = 15 - layer = HIGH_OBJ_LAYER - break_message = "The warden's eye gives a glare of utter hate before falling dark!" - debris = list(/obj/item/clockwork/component/belligerent_eye/blind_eye) - burn_state = LAVA_PROOF - var/damage_per_tick = 3 - var/sight_range = 3 - var/mob/living/target - var/list/idle_messages = list(" sulkily glares around.", " lazily drifts from side to side.", " looks around for something to burn.", " slowly turns in circles.") - -/obj/structure/clockwork/ocular_warden/New() - ..() - START_PROCESSING(SSfastprocess, src) - -/obj/structure/clockwork/ocular_warden/Destroy() - STOP_PROCESSING(SSfastprocess, src) - return ..() - -/obj/structure/clockwork/ocular_warden/examine(mob/user) - ..() - user << "[target ? "It's fixated on [target]!" : "Its gaze is wandering aimlessly."]" - -/obj/structure/clockwork/ocular_warden/process() - var/list/validtargets = acquire_nearby_targets() - if(ratvar_awakens && (damage_per_tick == initial(damage_per_tick) || sight_range == initial(sight_range))) //Massive buff if Ratvar has returned - damage_per_tick = 10 - sight_range = 5 - if(target) - if(!(target in validtargets)) - lose_target() - else - if(!target.null_rod_check()) - target.adjustFireLoss(!iscultist(target) ? damage_per_tick : damage_per_tick * 2) //Nar-Sian cultists take additional damage - if(ratvar_awakens && target) - target.adjust_fire_stacks(damage_per_tick) - target.IgniteMob() - setDir(get_dir(get_turf(src), get_turf(target))) - if(!target) - if(validtargets.len) - target = pick(validtargets) - visible_message("[src] swivels to face [target]!") - target << "\"I SEE YOU!\"\n[src]'s gaze [ratvar_awakens ? "melts you alive" : "burns you"]!" - if(target.null_rod_check() && !ratvar_awakens) - target << "Your artifact glows hotly against you, protecting you from the warden's gaze!" - else if(prob(0.5)) //Extremely low chance because of how fast the subsystem it uses processes - if(prob(50)) - visible_message("[src][pick(idle_messages)]") - else - setDir(pick(cardinal))//Random rotation - -/obj/structure/clockwork/ocular_warden/proc/acquire_nearby_targets() - . = list() - for(var/mob/living/L in viewers(sight_range, src)) //Doesn't attack the blind - if(!is_servant_of_ratvar(L) && !L.stat && L.mind && !(L.disabilities & BLIND) && !L.null_rod_check()) - . += L - -/obj/structure/clockwork/ocular_warden/proc/lose_target() - if(!target) - return 0 - target = null - visible_message("[src] settles and seems almost disappointed.") - return 1 - - -/obj/structure/clockwork/shell - construction_value = 0 - anchored = 0 - density = 0 - takes_damage = FALSE - burn_state = LAVA_PROOF - var/mobtype = /mob/living/simple_animal/hostile/clockwork - var/spawn_message = " is an error and you should yell at whoever spawned this shell." - -/obj/structure/clockwork/shell/attackby(obj/item/I, mob/living/user, params) - if(istype(I, /obj/item/device/mmi/posibrain/soul_vessel)) - if(!is_servant_of_ratvar(user)) - ..() - return 0 - var/obj/item/device/mmi/posibrain/soul_vessel/S = I - if(!S.brainmob) - user << "[S] hasn't trapped a spirit! Turn it on first." - return 0 - if(S.brainmob && (!S.brainmob.client || !S.brainmob.mind)) - user << "[S]'s trapped spirit appears inactive!" - return 0 - user.visible_message("[user] places [S] in [src], where it fuses to the shell.", "You place [S] in [src], fusing it to the shell.") - var/mob/living/simple_animal/A = new mobtype(get_turf(src)) - A.visible_message("[src][spawn_message]") - S.brainmob.mind.transfer_to(A) - add_servant_of_ratvar(A, TRUE) - user.drop_item() - qdel(S) - qdel(src) - return 1 - else - return ..() - -/obj/structure/clockwork/shell/cogscarab - name = "cogscarab shell" - desc = "A small brass shell with a cube-shaped receptable in its center. It gives off an aura of obsessive perfectionism." - clockwork_desc = "A dormant receptable that, when powered with a soul vessel, will become a weak construct with an inbuilt proselytizer." - icon_state = "clockdrone_shell" - mobtype = /mob/living/simple_animal/drone/cogscarab - spawn_message = "'s eyes blink open, glowing bright red." - -/obj/structure/clockwork/shell/fragment //Anima fragment: Useless on its own, but can accept an active soul vessel to create a powerful construct. - name = "fragment shell" - desc = "A massive brass shell with a small cube-shaped receptable in its center. It gives off an aura of contained power." - clockwork_desc = "A dormant receptable that, when powered with a soul vessel, will become a powerful construct." - icon_state = "anime_fragment" - mobtype = /mob/living/simple_animal/hostile/clockwork/fragment - spawn_message = " whirs and rises from the ground on a flickering jet of reddish fire." - - -/obj/structure/clockwork/wall_gear - name = "massive gear" - icon_state = "wall_gear" - climbable = TRUE - max_health = 50 - health = 50 - desc = "A massive brass gear. You could probably secure or unsecure it with a wrench, or just climb over it." - clockwork_desc = "A massive brass gear. You could probably secure or unsecure it with a wrench, just climb over it, or proselytize it into replicant alloy." - break_message = "The gear breaks apart into shards of alloy!" - debris = list(/obj/item/clockwork/alloy_shards) - -/obj/structure/clockwork/wall_gear/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/weapon/wrench)) - default_unfasten_wrench(user, I, 10) - return 1 - return ..() - -/obj/structure/clockwork/wall_gear/examine(mob/user) - ..() - user << "[src] is [anchored ? "secured to the floor":"mobile, and not secured"]." - -/////////////////////// -// CLOCKWORK EFFECTS // -/////////////////////// - -/obj/effect/clockwork - name = "meme machine" - desc = "Still don't know what it is." - var/clockwork_desc = "A fabled artifact from beyond the stars. Contains concentrated meme essence." //Shown to clockwork cultists instead of the normal description - icon = 'icons/effects/clockwork_effects.dmi' - icon_state = "ratvars_flame" - anchored = 1 - density = 0 - opacity = 0 - burn_state = LAVA_PROOF - -/obj/effect/clockwork/New() - ..() - all_clockwork_objects += src - -/obj/effect/clockwork/Destroy() - all_clockwork_objects -= src - return ..() - -/obj/effect/clockwork/examine(mob/user) - if((is_servant_of_ratvar(user) || isobserver(user)) && clockwork_desc) - desc = clockwork_desc - ..() - desc = initial(desc) - -/obj/effect/clockwork/judicial_marker //Judicial marker: Created by the judicial visor. After three seconds, stuns any non-servants nearby and damages Nar-Sian cultists. - name = "judicial marker" - desc = "You get the feeling that you shouldn't be standing here." - clockwork_desc = "A sigil that will soon erupt and smite any unenlightened nearby." - icon = 'icons/effects/96x96.dmi' - pixel_x = -32 - pixel_y = -32 - layer = BELOW_MOB_LAYER - var/mob/user - -/obj/effect/clockwork/judicial_marker/New(loc, caster) - ..() - user = caster - playsound(src, 'sound/magic/MAGIC_MISSILE.ogg', 50, 1, 1, 1) - flick("judicial_marker", src) - addtimer(src, "burstanim", 16, FALSE) - -/obj/effect/clockwork/judicial_marker/proc/burstanim() - layer = ABOVE_ALL_MOB_LAYER - flick("judicial_explosion", src) - addtimer(src, "judicialblast", 13, FALSE) - -/obj/effect/clockwork/judicial_marker/proc/judicialblast() - var/targetsjudged = 0 - playsound(src, 'sound/effects/explosionfar.ogg', 100, 1, 1, 1) - for(var/mob/living/L in range(1, src)) - if(is_servant_of_ratvar(L)) - continue - if(L.null_rod_check()) - var/obj/item/I = L.null_rod_check() - L.visible_message("Strange energy flows into [L]'s [I.name]!", \ - "Your [I.name] shields you from [src]!") - continue - if(!iscultist(L)) - L.visible_message("[L] is struck by a judicial explosion!", \ - "[!issilicon(L) ? "An unseen force slams you into the ground!" : "ERROR: Motor servos disabled by external source!"]") - L.Weaken(8) - else - L.visible_message("[L] is struck by a judicial explosion!", \ - "\"Keep an eye out, filth.\"\nA burst of heat crushes you against the ground!") - L.Weaken(4) //half the stun, but sets cultists on fire - L.adjust_fire_stacks(2) - L.IgniteMob() - targetsjudged++ - L.adjustBruteLoss(10) - user << "[targetsjudged ? "Successfully judged [targetsjudged]":"Judged no"] heretic[!targetsjudged || targetsjudged > 1 ? "s":""]." - QDEL_IN(src, 3) //so the animation completes properly - -/obj/effect/clockwork/judicial_marker/ex_act(severity) - return - -/obj/effect/clockwork/spatial_gateway //Spatial gateway: A usually one-way rift to another location. - name = "spatial gateway" - desc = "A gently thrumming tear in reality." - clockwork_desc = "A gateway in reality." - icon_state = "spatial_gateway" - density = 1 - var/sender = TRUE //If this gateway is made for sending, not receiving - var/both_ways = FALSE - var/lifetime = 25 //How many deciseconds this portal will last - var/uses = 1 //How many objects or mobs can go through the portal - var/obj/effect/clockwork/spatial_gateway/linked_gateway //The gateway linked to this one - -/obj/effect/clockwork/spatial_gateway/New() - ..() - spawn(1) - if(!linked_gateway) - qdel(src) - return 0 - if(both_ways) - clockwork_desc = "A gateway in reality. It can both send and receive objects." - else - clockwork_desc = "A gateway in reality. It can only [sender ? "send" : "receive"] objects." - QDEL_IN(src, lifetime) - -//set up a gateway with another gateway -/obj/effect/clockwork/spatial_gateway/proc/setup_gateway(obj/effect/clockwork/spatial_gateway/gatewayB, set_duration, set_uses, two_way) - if(!gatewayB || !set_duration || !uses) - return 0 - linked_gateway = gatewayB - gatewayB.linked_gateway = src - if(two_way) - both_ways = TRUE - gatewayB.both_ways = TRUE - else - sender = TRUE - gatewayB.sender = FALSE - gatewayB.density = FALSE - lifetime = set_duration - gatewayB.lifetime = set_duration - uses = set_uses - gatewayB.uses = set_uses - return 1 - -/obj/effect/clockwork/spatial_gateway/examine(mob/user) - ..() - if(is_servant_of_ratvar(user) || isobserver(user)) - user << "It has [uses] uses remaining." - -/obj/effect/clockwork/spatial_gateway/attack_hand(mob/living/user) - if(user.pulling && user.a_intent == "grab" && isliving(user.pulling)) - var/mob/living/L = user.pulling - if(L.buckled || L.anchored || L.has_buckled_mobs()) - return 0 - user.visible_message("[user] shoves [L] into [src]!", "You shove [L] into [src]!") - user.stop_pulling() - pass_through_gateway(L) - return 1 - if(!user.canUseTopic(src)) - return 0 - user.visible_message("[user] climbs through [src]!", "You brace yourself and step through [src]...") - pass_through_gateway(user) - return 1 - -/obj/effect/clockwork/spatial_gateway/attackby(obj/item/I, mob/living/user, params) - if(istype(I, /obj/item/weapon/nullrod)) - user.visible_message("[user] dispels [src] with [I]!", "You close [src] with [I]!") - qdel(linked_gateway) - qdel(src) - return 1 - if(istype(I, /obj/item/clockwork/slab)) - user << "\"I don't think you want to drop your slab into that\".\n\"If you really want to, try throwing it.\"" - return 1 - if(user.drop_item()) - user.visible_message("[user] drops [I] into [src]!", "You drop [I] into [src]!") - pass_through_gateway(I) - ..() - -/obj/effect/clockwork/spatial_gateway/Bumped(atom/A) - ..() - if(isliving(A) || istype(A, /obj/item)) - pass_through_gateway(A) - -/obj/effect/clockwork/spatial_gateway/proc/pass_through_gateway(atom/movable/A) - if(!linked_gateway) - qdel(src) - return 0 - if(!sender) - visible_message("[A] bounces off of [src]!") - return 0 - if(!uses) - return 0 - if(isliving(A)) - var/mob/living/user = A - user << "You pass through [src] and appear elsewhere!" - linked_gateway.visible_message("A shape appears in [linked_gateway] before emerging!") - playsound(src, 'sound/effects/EMPulse.ogg', 50, 1) - playsound(linked_gateway, 'sound/effects/EMPulse.ogg', 50, 1) - transform = matrix() * 1.5 - animate(src, transform = matrix() / 1.5, time = 10) - linked_gateway.transform = matrix() * 1.5 - animate(linked_gateway, transform = matrix() / 1.5, time = 10) - A.forceMove(get_turf(linked_gateway)) - uses = max(0, uses - 1) - linked_gateway.uses = max(0, linked_gateway.uses - 1) - spawn(10) - if(!uses) - qdel(src) - qdel(linked_gateway) - return 1 - -/obj/effect/clockwork/general_marker - name = "general marker" - desc = "Some big guy. For you." - clockwork_desc = "One of Ratvar's generals." - alpha = 200 - layer = MASSIVE_OBJ_LAYER - -/obj/effect/clockwork/general_marker/New() - ..() - playsound(src, 'sound/magic/clockwork/invoke_general.ogg', 50, 0) - animate(src, alpha = 0, time = 10) - QDEL_IN(src, 10) - -/obj/effect/clockwork/general_marker/nezbere - name = "Nezbere, the Brass Eidolon" - desc = "A towering colossus clad in nigh-impenetrable brass armor. Its gaze is stern yet benevolent, even upon you." - clockwork_desc = "One of Ratvar's four generals. Nezbere is responsible for the design, testing, and creation of everything in Ratvar's domain." - icon = 'icons/effects/340x428.dmi' - icon_state = "nezbere" - pixel_x = -154 - pixel_y = -198 - -/obj/effect/clockwork/general_marker/sevtug - name = "Sevtug, the Formless Pariah" - desc = "A sinister cloud of purple energy. Looking at it gives you a headache." - clockwork_desc = "One of Ratvar's four generals. Sevtug taught him how to manipulate minds and is one of his oldest allies." - icon = 'icons/effects/211x247.dmi' - icon_state = "sevtug" - pixel_x = -89 - pixel_y = -107 - -/obj/effect/clockwork/general_marker/nzcrentr - name = "Nzcrentr, the Forgotten Arbiter" - desc = "A terrifying war machine crackling with limitless energy." - clockwork_desc = "One of Ratvar's four generals. Nzcrentr is the result of Neovgre - Nezbere's finest war machine, commandeerable only be a mortal - fusing with its pilot and driving her \ - insane. Nzcrentr seeks out any and all sentient life to slaughter it for sport." - icon = 'icons/effects/254x361.dmi' - icon_state = "nzcrentr" - pixel_x = -111 - pixel_y = -164 - -/obj/effect/clockwork/general_marker/inathneq - name = "Inath-Neq, the Resonant Cogwheel" - desc = "A humanoid form blazing with blue fire. It radiates an aura of kindness and caring." - clockwork_desc = "One of Ratvar's four generals. Before her current form, Inath-Neq was a powerful warrior priestess commanding the Resonant Cogs, a sect of Ratvarian warriors renowned for \ - their prowess. After a lost battle with Nar-Sian cultists, Inath-Neq was struck down and stated in her dying breath, \ - \"The Resonant Cogs shall not fall silent this day, but will come together to form a wheel that shall never stop turning.\" Ratvar, touched by this, granted Inath-Neq an eternal body and \ - merged her soul with those of the Cogs slain with her on the battlefield." - icon = 'icons/effects/187x381.dmi' - icon_state = "inath-neq" - pixel_x = -77 - pixel_y = -174 - - -/obj/effect/clockwork/sigil //Sigils: Rune-like markings on the ground with various effects. - name = "sigil" - desc = "A strange set of markings drawn on the ground." - clockwork_desc = "A sigil of some purpose." - icon_state = "sigil" - layer = LOW_OBJ_LAYER - alpha = 50 - burn_state = FIRE_PROOF - burntime = 1 - var/affects_servants = FALSE - var/stat_affected = CONSCIOUS - -/obj/effect/clockwork/sigil/attack_hand(mob/user) - if(iscarbon(user) && !user.stat && (!is_servant_of_ratvar(user) || (is_servant_of_ratvar(user) && user.a_intent == "harm"))) - user.visible_message("[user] stamps out [src]!", "You stomp on [src], scattering it into thousands of particles.") - qdel(src) - return 1 - ..() - -/obj/effect/clockwork/sigil/Crossed(atom/movable/AM) - ..() - if(isliving(AM)) - var/mob/living/L = AM - if(L.stat <= stat_affected) - if((!is_servant_of_ratvar(L) || (is_servant_of_ratvar(L) && affects_servants)) && L.mind) - if(L.null_rod_check()) - var/obj/item/I = L.null_rod_check() - L.visible_message("[L]'s [I.name] protects them from [src]'s effects!", "Your [I.name] protects you!") - return - sigil_effects(L) - return 1 - -/obj/effect/clockwork/sigil/proc/sigil_effects(mob/living/L) - -/obj/effect/clockwork/sigil/transgression //Sigil of Transgression: Stuns and flashes the first non-servant to walk on it. Nar-Sian cultists are damaged and knocked down for about twice the stun - name = "dull sigil" - desc = "A dull, barely-visible golden sigil. It's as though light was carved into the ground." - icon = 'icons/effects/clockwork_effects.dmi' - clockwork_desc = "A sigil that will stun the first non-servant to cross it. Nar-Sie's dogs will be knocked down." - icon_state = "sigildull" - color = "#FAE48C" - -/obj/effect/clockwork/sigil/transgression/sigil_effects(mob/living/L) - var/target_flashed = L.flash_eyes() - for(var/mob/living/M in viewers(5, src)) - if(!is_servant_of_ratvar(M) && M != L) - M.flash_eyes() - if(iscultist(L)) - L << "\"Watch your step, wretch.\"" - L.adjustBruteLoss(10) - L.Weaken(4) - L.visible_message("[src] appears around [L] in a burst of light!", \ - "[target_flashed ? "An unseen force":"The glowing sigil around you"] holds you in place!") - L.Stun(3) - PoolOrNew(/obj/effect/overlay/temp/ratvar/sigil/transgression, get_turf(src)) - qdel(src) - return 1 - -/obj/effect/clockwork/sigil/submission //Sigil of Submission: After a short time, converts any non-servant standing on it. Knocks down and silences them for five seconds afterwards. - name = "ominous sigil" - desc = "A luminous golden sigil. Something about it really bothers you." - clockwork_desc = "A sigil that will enslave the first person to cross it, provided they remain on it for five seconds." - icon_state = "sigilsubmission" - color = "#FAE48C" - alpha = 125 - stat_affected = UNCONSCIOUS - var/convert_time = 50 - var/glow_light = 2 //soft light - var/glow_falloff = 1 - var/delete_on_finish = TRUE - var/sigil_name = "Sigil of Submission" - var/glow_type - -/obj/effect/clockwork/sigil/submission/New() - ..() - set_light(glow_light,glow_falloff) - -/obj/effect/clockwork/sigil/submission/proc/post_channel(mob/living/L) - -/obj/effect/clockwork/sigil/submission/sigil_effects(mob/living/L) - visible_message("[src] begins to glow a piercing magenta!") - animate(src, color = "#AF0AAF", time = convert_time) - var/obj/effect/overlay/temp/ratvar/sigil/glow - if(glow_type) - glow = PoolOrNew(glow_type, get_turf(src)) - animate(glow, alpha = 255, time = convert_time) - var/I = 0 - while(I < convert_time && get_turf(L) == get_turf(src)) - I++ - sleep(1) - if(get_turf(L) != get_turf(src)) - if(glow) - qdel(glow) - animate(src, color = initial(color), time = 20) - visible_message("[src] slowly stops glowing!") - return 0 - post_channel(L) - if(is_eligible_servant(L)) - L << "\"You belong to me now.\"" - add_servant_of_ratvar(L) - L.Weaken(3) //Completely defenseless for about five seconds - mainly to give them time to read over the information they've just been presented with - L.Stun(3) - if(iscarbon(L)) - var/mob/living/carbon/C = L - C.silent += 5 - var/message = "[sigil_name] in [get_area(src)] [is_servant_of_ratvar(L) ? "successfully converted" : "failed to convert"]" - for(var/M in mob_list) - if(isobserver(M)) - var/link = FOLLOW_LINK(M, L) - M << "[link] [message] [L.real_name]!" - else if(is_servant_of_ratvar(M)) - if(M == L) - M << "[message] you!" - else - M << "[message] [L.real_name]!" - if(delete_on_finish) - qdel(src) - else - animate(src, color = initial(color), time = 20) - visible_message("[src] slowly stops glowing!") - return 1 - -/obj/effect/clockwork/sigil/submission/accession //Sigil of Accession: After a short time, converts any non-servant standing on it though implants. Knocks down and silences them for five seconds afterwards. - name = "terrifying sigil" - desc = "A luminous brassy sigil. Something about it makes you want to flee." - clockwork_desc = "A sigil that will enslave any person who crosses it, provided they remain on it for five seconds. \n\ - It can convert a mindshielded target once before disppearing, but can convert any number of non-implanted targets." - icon_state = "sigiltransgression" - color = "#A97F1B" - alpha = 200 - glow_light = 4 //bright light - glow_falloff = 3 - delete_on_finish = FALSE - sigil_name = "Sigil of Accession" - glow_type = /obj/effect/overlay/temp/ratvar/sigil/accession - -/obj/effect/clockwork/sigil/submission/accession/post_channel(mob/living/L) - if(isloyal(L)) - delete_on_finish = TRUE - L.visible_message("[L] visibly trembles!", \ - "Lbh jvyy or zvar-naq-uvf. Guvf chal gevaxrg jvyy abg fgbc zr.") - for(var/obj/item/weapon/implant/mindshield/M in L) - if(M.implanted) - qdel(M) - -/obj/effect/clockwork/sigil/transmission - name = "suspicious sigil" - desc = "A glowing orange sigil. The air around it feels staticky." - clockwork_desc = "A sigil that will serve as a battery for clockwork structures. Use Volt Void while standing on it to charge it." - icon_state = "sigiltransmission" - color = "#EC8A2D" - alpha = 50 - var/power_charge = 2500 //starts with 2500W by default - -/obj/effect/clockwork/sigil/transmission/examine(mob/user) - ..() - if(is_servant_of_ratvar(user) || isobserver(user)) - user << "It is storing [power_charge]W of power." - -/obj/effect/clockwork/sigil/transmission/sigil_effects(mob/living/L) - if(power_charge) - L << "You feel a slight, static shock." - return 1 - -/obj/effect/clockwork/sigil/transmission/New() - ..() - alpha = min(initial(alpha) + power_charge*0.02, 255) - -/obj/effect/clockwork/sigil/transmission/proc/modify_charge(amount) - if(power_charge - amount < 0) - return 0 - power_charge -= amount - alpha = min(initial(alpha) + power_charge*0.02, 255) - return 1 - -/obj/effect/clockwork/sigil/vitality - name = "comforting sigil" - desc = "A faint blue sigil. Looking at it makes you feel protected." - clockwork_desc = "A sigil that will drain non-servants that remain on it. Servants that remain on it will be healed if it has any vitality drained." - icon_state = "sigilvitality" - color = "#123456" - alpha = 75 - affects_servants = TRUE - stat_affected = DEAD - var/vitality = 0 - var/base_revive_cost = 20 - var/sigil_active = FALSE - var/animation_number = 3 //each cycle increments this by 1, at 4 it produces an animation and resets - -/obj/effect/clockwork/sigil/vitality/examine(mob/user) - ..() - if(is_servant_of_ratvar(user) || isobserver(user)) - user << "It is storing [vitality] units of vitality." - user << "It requires at least [base_revive_cost] units of vitality to revive dead servants, in addition to any damage the servant has." - -/obj/effect/clockwork/sigil/vitality/sigil_effects(mob/living/L) - if(L.suiciding || sigil_active || !is_servant_of_ratvar(L) && L.stat == DEAD) - return 0 - visible_message("[src] begins to glow bright blue!") - animate(src, alpha = 255, time = 10) - sleep(10) - sigil_active = TRUE -//as long as they're still on the sigil and are either not a servant or they're a servant AND it has remaining vitality - while(L && (!is_servant_of_ratvar(L) && L.stat != DEAD || (is_servant_of_ratvar(L) && vitality)) && get_turf(L) == get_turf(src)) - if(animation_number >= 4) - PoolOrNew(/obj/effect/overlay/temp/ratvar/sigil/vitality, get_turf(src)) - animation_number = 0 - animation_number++ - if(!is_servant_of_ratvar(L)) - var/vitality_drained = L.adjustToxLoss(1.5) - if(vitality_drained) - vitality += vitality_drained - else - break - else - var/clone_to_heal = L.getCloneLoss() - var/tox_to_heal = L.getToxLoss() - var/burn_to_heal = L.getFireLoss() - var/brute_to_heal = L.getBruteLoss() - var/oxy_to_heal = L.getOxyLoss() - var/total_damage = clone_to_heal + tox_to_heal + burn_to_heal + brute_to_heal + oxy_to_heal - if(L.stat == DEAD) - var/revival_cost = base_revive_cost + total_damage - oxy_to_heal //ignores oxygen damage - var/mob/dead/observer/ghost = L.get_ghost(TRUE) - if(ghost) - if(vitality >= revival_cost) - ghost.reenter_corpse() - L.revive(1, 1) - playsound(L, 'sound/magic/Staff_Healing.ogg', 50, 1) - L.visible_message("[L] suddenly gets back up, their mouth dripping blue ichor!", "\"Lbh jvyy or bxnl, puvyq.\"") - vitality -= revival_cost - break - else - break - if(!total_damage) - break - var/vitality_for_cycle = min(vitality, 3) - - if(clone_to_heal && vitality_for_cycle) - var/healing = min(vitality_for_cycle, clone_to_heal) - vitality_for_cycle -= healing - L.adjustCloneLoss(-healing) - vitality -= healing - - if(tox_to_heal && vitality_for_cycle) - var/healing = min(vitality_for_cycle, tox_to_heal) - vitality_for_cycle -= healing - L.adjustToxLoss(-healing) - vitality -= healing - - if(burn_to_heal && vitality_for_cycle) - var/healing = min(vitality_for_cycle, burn_to_heal) - vitality_for_cycle -= healing - L.adjustFireLoss(-healing) - vitality -= healing - - if(brute_to_heal && vitality_for_cycle) - var/healing = min(vitality_for_cycle, brute_to_heal) - vitality_for_cycle -= healing - L.adjustBruteLoss(-healing) - vitality -= healing - - if(oxy_to_heal && vitality_for_cycle) - var/healing = min(vitality_for_cycle, oxy_to_heal) - vitality_for_cycle -= healing - L.adjustOxyLoss(-healing) - vitality -= healing - sleep(2) - - animation_number = initial(animation_number) - sigil_active = FALSE - animate(src, alpha = initial(alpha), time = 20) - visible_message("[src] slowly stops glowing!") diff --git a/code/game/gamemodes/clock_cult/clock_structures/ark_of_the_clockwork_justicar.dm b/code/game/gamemodes/clock_cult/clock_structures/ark_of_the_clockwork_justicar.dm new file mode 100644 index 0000000000..a8453e76ef --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_structures/ark_of_the_clockwork_justicar.dm @@ -0,0 +1,248 @@ +//The gateway to Reebe, from which Ratvar emerges. +/obj/structure/destructible/clockwork/massive/celestial_gateway + name = "Gateway to the Celestial Derelict" + desc = "A massive, thrumming rip in spacetime." + clockwork_desc = "A portal to the Celestial Derelict. Massive and intimidating, it is the only thing that can both transport Ratvar and withstand the massive amount of energy he emits." + obj_integrity = 600 + max_integrity = 600 + mouse_opacity = 2 + icon = 'icons/effects/clockwork_effects.dmi' + icon_state = "nothing" + density = FALSE + invisibility = INVISIBILITY_MAXIMUM + resistance_flags = FIRE_PROOF | ACID_PROOF | INDESTRUCTIBLE + can_be_repaired = FALSE + var/progress_in_seconds = 0 //Once this reaches GATEWAY_RATVAR_ARRIVAL, it's game over + var/purpose_fulfilled = FALSE + var/first_sound_played = FALSE + var/second_sound_played = FALSE + var/third_sound_played = FALSE + var/ratvar_portal = TRUE //if the gateway actually summons ratvar or just produces a hugeass conversion burst + var/obj/effect/clockwork/overlay/gateway_glow/glow + var/obj/effect/countdown/clockworkgate/countdown + +/obj/structure/destructible/clockwork/massive/celestial_gateway/New() + ..() + addtimer(src, "spawn_animation", 0) + +/obj/structure/destructible/clockwork/massive/celestial_gateway/proc/spawn_animation() + var/turf/T = get_turf(src) + var/objective_is_gateway = (ticker && ticker.mode && ticker.mode.clockwork_objective == CLOCKCULT_GATEWAY) + new/obj/effect/clockwork/general_marker/inathneq(T) + if(objective_is_gateway) + hierophant_message("\"[text2ratvar("Engine, come forth and show your servants your mercy")]!\"") + else + hierophant_message("\"[text2ratvar("We will show all the mercy of Engine")]!\"") + playsound(T, 'sound/magic/clockwork/invoke_general.ogg', 30, 0) + sleep(10) + new/obj/effect/clockwork/general_marker/sevtug(T) + if(objective_is_gateway) + hierophant_message("\"[text2ratvar("Engine, come forth and show this station your decorating skills")]!\"") + else + hierophant_message("\"[text2ratvar("We will show all Engine's decorating skills")]!\"") + playsound(T, 'sound/magic/clockwork/invoke_general.ogg', 45, 0) + sleep(10) + new/obj/effect/clockwork/general_marker/nezbere(T) + if(objective_is_gateway) + hierophant_message("\"[text2ratvar("Engine, come forth and shine your light across this realm")]!!\"") + else + hierophant_message("\"[text2ratvar("We will show all Engine's light")]!!\"") + playsound(T, 'sound/magic/clockwork/invoke_general.ogg', 60, 0) + sleep(10) + new/obj/effect/clockwork/general_marker/nzcrentr(T) + if(objective_is_gateway) + hierophant_message("\"[text2ratvar("Engine, come forth")].\"") + else + hierophant_message("\"[text2ratvar("We will show all Engine's power")].\"") + playsound(T, 'sound/magic/clockwork/invoke_general.ogg', 75, 0) + sleep(10) + playsound(T, 'sound/magic/clockwork/invoke_general.ogg', 100, 0) + var/list/open_turfs = list() + for(var/turf/open/OT in orange(1, T)) + if(!is_blocked_turf(OT)) + open_turfs |= OT + if(open_turfs.len) + for(var/mob/living/L in T) + L.forceMove(pick(open_turfs)) + resistance_flags &= ~INDESTRUCTIBLE + density = TRUE + invisibility = 0 + glow = new(get_turf(src)) + countdown = new(src) + countdown.start() + var/area/gate_area = get_area(src) + hierophant_message("A gateway to the Celestial Derelict has been created in [gate_area.map_name]!", FALSE, src) + if(!objective_is_gateway) + ratvar_portal = FALSE + hierophant_message("This newly constructed gateway will not free Ratvar, \ + and will instead simply proselytize and convert everything and everyone on the station.", TRUE) + SSshuttle.registerHostileEnvironment(src) + START_PROCESSING(SSprocessing, src) + +/obj/structure/destructible/clockwork/massive/celestial_gateway/Destroy() + STOP_PROCESSING(SSprocessing, src) + if(!purpose_fulfilled) + var/area/gate_area = get_area(src) + hierophant_message("A gateway to the Celestial Derelict has fallen at [gate_area.map_name]!") + send_to_playing_players(sound(null, 0, channel = 8)) + var/was_stranded = SSshuttle.emergency.mode == SHUTTLE_STRANDED + SSshuttle.clearHostileEnvironment(src) + if(!was_stranded && !purpose_fulfilled && second_sound_played) + priority_announce("Massive energy anomaly no longer on short-range scanners.","Anomaly Alert") + if(glow) + qdel(glow) + glow = null + if(countdown) + qdel(countdown) + countdown = null + . = ..() + +/obj/structure/destructible/clockwork/massive/celestial_gateway/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + if(!disassembled) + resistance_flags |= INDESTRUCTIBLE + countdown.stop() + visible_message("The [src] begins to pulse uncontrollably... you might want to run!") + send_to_playing_players(sound('sound/effects/clockcult_gateway_disrupted.ogg', 0, channel = 8, volume = 50)) + make_glow() + glow.icon_state = "clockwork_gateway_disrupted" + resistance_flags |= INDESTRUCTIBLE + sleep(27) + explosion(src, 1, 3, 8, 8) + qdel(src) + +/obj/structure/destructible/clockwork/massive/celestial_gateway/proc/make_glow() + if(!glow) + glow = PoolOrNew(/obj/effect/clockwork/overlay/gateway_glow, get_turf(src)) + glow.linked = src + +/obj/structure/destructible/clockwork/massive/celestial_gateway/ex_act(severity) + var/damage = max((obj_integrity * 0.70) / severity, 100) //requires multiple bombs to take down + take_damage(damage, BRUTE, "bomb", 0) + +/obj/structure/destructible/clockwork/massive/celestial_gateway/proc/get_arrival_text(s_on_time) + . = "IMMINENT" + if(!obj_integrity) + . = "DETONATING" + else if(GATEWAY_RATVAR_ARRIVAL - progress_in_seconds > 0) + . = "[round(max((GATEWAY_RATVAR_ARRIVAL - progress_in_seconds) / (GATEWAY_SUMMON_RATE), 0), 1)][s_on_time ? "S":""]" + +/obj/structure/destructible/clockwork/massive/celestial_gateway/examine(mob/user) + icon_state = "spatial_gateway" //cheat wildly by pretending to have an icon + ..() + icon_state = initial(icon_state) + if(is_servant_of_ratvar(user) || isobserver(user)) + user << "Seconds until [ratvar_portal ? "Ratvar's arrival":"Proselytization"]: [get_arrival_text(TRUE)]" + switch(progress_in_seconds) + if(-INFINITY to GATEWAY_REEBE_FOUND) + user << "It's still opening." + if(GATEWAY_REEBE_FOUND to GATEWAY_RATVAR_COMING) + user << "It's reached the Celestial Derelict and is drawing power from it." + if(GATEWAY_RATVAR_COMING to INFINITY) + user << "[ratvar_portal ? "Ratvar is coming through the gateway":"The gateway is glowing with massed power"]!" + else + switch(progress_in_seconds) + if(-INFINITY to GATEWAY_REEBE_FOUND) + user << "It's a swirling mass of blackness." + if(GATEWAY_REEBE_FOUND to GATEWAY_RATVAR_COMING) + user << "It seems to be leading somewhere." + if(GATEWAY_RATVAR_COMING to INFINITY) + user << "[ratvar_portal ? "Something is coming through":"It's glowing brightly"]!" + +/obj/structure/destructible/clockwork/massive/celestial_gateway/process() + if(!progress_in_seconds || prob(7)) + for(var/M in player_list) + if(M && !isnewplayer(M)) + M << "You hear otherworldly sounds from the [dir2text(get_dir(get_turf(M), get_turf(src)))]..." + if(!obj_integrity) + return 0 + for(var/t in RANGE_TURFS(1, loc)) + if(iswallturf(t)) + var/turf/closed/wall/W = t + W.dismantle_wall() + else if(t && (isclosedturf(t) || !is_blocked_turf(t))) + var/turf/T = t + T.ChangeTurf(/turf/open/floor/clockwork) + for(var/obj/O in orange(1, src)) + if(!istype(O, /obj/effect) && O.density) + if(!step_away(O, src, 2) || get_dist(O, src) < 2) + O.take_damage(50, BURN, "bomb") + O.update_icon() + progress_in_seconds += GATEWAY_SUMMON_RATE + switch(progress_in_seconds) + if(-INFINITY to GATEWAY_REEBE_FOUND) + if(!first_sound_played) + send_to_playing_players(sound('sound/effects/clockcult_gateway_charging.ogg', 1, channel = 8, volume = 30)) + first_sound_played = TRUE + make_glow() + glow.icon_state = "clockwork_gateway_charging" + if(GATEWAY_REEBE_FOUND to GATEWAY_RATVAR_COMING) + if(!second_sound_played) + var/area/gate_area = get_area(src) + priority_announce("Massive energy anomaly detected on short-range scanners. Location: [gate_area.map_name].", "Anomaly Alert") + send_to_playing_players(sound('sound/effects/clockcult_gateway_active.ogg', 1, channel = 8, volume = 35)) + second_sound_played = TRUE + make_glow() + glow.icon_state = "clockwork_gateway_active" + if(GATEWAY_RATVAR_COMING to GATEWAY_RATVAR_ARRIVAL) + if(!third_sound_played) + send_to_playing_players(sound('sound/effects/clockcult_gateway_closing.ogg', 1, channel = 8, volume = 40)) + third_sound_played = TRUE + make_glow() + glow.icon_state = "clockwork_gateway_closing" + if(GATEWAY_RATVAR_ARRIVAL to INFINITY) + if(!purpose_fulfilled) + countdown.stop() + resistance_flags |= INDESTRUCTIBLE + purpose_fulfilled = TRUE + make_glow() + animate(glow, transform = matrix() * 1.5, alpha = 255, time = 125) + send_to_playing_players(sound('sound/effects/ratvar_rises.ogg', 0, channel = 8)) //End the sounds + sleep(125) + make_glow() + animate(glow, transform = matrix() * 3, alpha = 0, time = 5) + var/turf/startpoint = get_turf(src) + QDEL_IN(src, 3) + clockwork_gateway_activated = TRUE + if(ratvar_portal) + sleep(3) + new/obj/structure/destructible/clockwork/massive/ratvar(startpoint) + else + addtimer(SSshuttle.emergency, "request", 0, TIMER_NORMAL, null, 0) //call the shuttle immediately + sleep(3) + send_to_playing_players("\"[text2ratvar("Behold")]!\"\n\"[text2ratvar("See Engine's mercy")]!\"\n\ + \"[text2ratvar("Observe Engine's design skills")]!\"\n\"[text2ratvar("Behold Engine's light")]!!\"\n\ + \"[text2ratvar("Gaze upon Engine's power")]!\"") + send_to_playing_players('sound/magic/clockwork/invoke_general.ogg') + var/x0 = startpoint.x + var/y0 = startpoint.y + for(var/I in spiral_range_turfs(255, startpoint)) + var/turf/T = I + if(!T) + continue + var/dist = cheap_hypotenuse(T.x, T.y, x0, y0) + if(dist < 100) + dist = TRUE + else + dist = FALSE + T.ratvar_act(dist) + CHECK_TICK + for(var/mob/living/silicon/robot/R in silicon_mobs) + if(R && R.stat != DEAD && !is_servant_of_ratvar(R)) + add_servant_of_ratvar(R) + for(var/i in ai_list) + var/mob/living/silicon/ai/A = i + if(A && A.stat != DEAD && !is_servant_of_ratvar(A)) + add_servant_of_ratvar(A) + for(var/I in all_clockwork_mobs) + var/mob/M = I + if(M.stat == CONSCIOUS) + clockwork_say(M, text2ratvar(pick("Purge all untruths and honor Engine!", "All glory to Engine's light!", "Engine's power is unmatched!"))) + +//the actual appearance of the Gateway to the Celestial Derelict; an object so the edges of the gate can be clicked through. +/obj/effect/clockwork/overlay/gateway_glow + icon = 'icons/effects/96x96.dmi' + icon_state = "clockwork_gateway_charging" + pixel_x = -32 + pixel_y = -32 + layer = BELOW_OPEN_DOOR_LAYER diff --git a/code/game/gamemodes/clock_cult/clock_structures/clock_shells.dm b/code/game/gamemodes/clock_cult/clock_structures/clock_shells.dm new file mode 100644 index 0000000000..26d93d0c31 --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_structures/clock_shells.dm @@ -0,0 +1,48 @@ +//Useless on their own, these shells can create powerful constructs. +/obj/structure/destructible/clockwork/shell + construction_value = 0 + anchored = 0 + density = 0 + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF + var/mobtype = /mob/living/simple_animal/hostile/clockwork + var/spawn_message = " is an error and you should yell at whoever spawned this shell." + +/obj/structure/destructible/clockwork/shell/attackby(obj/item/I, mob/living/user, params) + if(istype(I, /obj/item/device/mmi/posibrain/soul_vessel)) + if(!is_servant_of_ratvar(user)) + ..() + return 0 + var/obj/item/device/mmi/posibrain/soul_vessel/S = I + if(!S.brainmob) + user << "[S] is inactive! Turn it on or capture a mind first." + return 0 + if(S.brainmob && (!S.brainmob.client || !S.brainmob.mind)) + user << "[S]'s trapped consciousness appears inactive!" + return 0 + user.visible_message("[user] places [S] in [src], where it fuses to the shell.", "You place [S] in [src], fusing it to the shell.") + var/mob/living/simple_animal/A = new mobtype(get_turf(src)) + A.visible_message("[src][spawn_message]") + S.brainmob.mind.transfer_to(A) + A.fully_replace_character_name(null, "[initial(A.name)] ([S.brainmob.name])") + user.drop_item() + qdel(S) + qdel(src) + return 1 + else + return ..() + +/obj/structure/destructible/clockwork/shell/cogscarab + name = "cogscarab shell" + desc = "A small brass shell with a cube-shaped receptable in its center. It gives off an aura of obsessive perfectionism." + clockwork_desc = "A dormant receptable that, when powered with a soul vessel, will become a weak construct with an inbuilt proselytizer." + icon_state = "clockdrone_shell" + mobtype = /mob/living/simple_animal/drone/cogscarab + spawn_message = "'s eyes blink open, glowing bright red." + +/obj/structure/destructible/clockwork/shell/fragment + name = "fragment shell" + desc = "A massive brass shell with a small cube-shaped receptable in its center. It gives off an aura of contained power." + clockwork_desc = "A dormant receptable that, when powered with a soul vessel, will become a powerful construct." + icon_state = "anime_fragment" + mobtype = /mob/living/simple_animal/hostile/clockwork/fragment + spawn_message = " whirs and rises from the ground on a flickering jet of reddish fire." diff --git a/code/game/gamemodes/clock_cult/clock_structures/clockwork_obelisk.dm b/code/game/gamemodes/clock_cult/clock_structures/clockwork_obelisk.dm new file mode 100644 index 0000000000..4559d95f47 --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_structures/clockwork_obelisk.dm @@ -0,0 +1,95 @@ +//Clockwork Obelisk: Can broadcast a message at a small power cost or outright open a spatial gateway at a massive power cost. +/obj/structure/destructible/clockwork/powered/clockwork_obelisk + name = "clockwork obelisk" + desc = "A large brass obelisk hanging in midair." + clockwork_desc = "A powerful obelisk that can send a message to all servants or open a gateway to a target servant or clockwork obelisk." + icon_state = "obelisk_inactive" + active_icon = "obelisk" + inactive_icon = "obelisk_inactive" + unanchored_icon = "obelisk_unwrenched" + construction_value = 20 + max_integrity = 150 + obj_integrity = 150 + break_message = "The obelisk falls to the ground, undamaged!" + debris = list(/obj/item/clockwork/alloy_shards/small = 3, \ + /obj/item/clockwork/component/hierophant_ansible/obelisk = 1) + var/hierophant_cost = MIN_CLOCKCULT_POWER //how much it costs to broadcast with large text + var/gateway_cost = 2000 //how much it costs to open a gateway + +/obj/structure/destructible/clockwork/powered/clockwork_obelisk/New() + ..() + toggle(1) + +/obj/structure/destructible/clockwork/powered/clockwork_obelisk/examine(mob/user) + ..() + if(is_servant_of_ratvar(user) || isobserver(user)) + user << "It requires [hierophant_cost]W to broadcast over the Hierophant Network, and [gateway_cost]W to open a Spatial Gateway." + +/obj/structure/destructible/clockwork/powered/clockwork_obelisk/can_be_unfasten_wrench(mob/user) + if(active) + user << "[src] is currently sustaining a gateway!" + return FAILED_UNFASTEN + return ..() + +/obj/structure/destructible/clockwork/powered/clockwork_obelisk/forced_disable(bad_effects) + var/affected = 0 + for(var/obj/effect/clockwork/spatial_gateway/SG in loc) + SG.ex_act(1) + affected++ + if(bad_effects) + affected += try_use_power(MIN_CLOCKCULT_POWER*2) + return affected + +/obj/structure/destructible/clockwork/powered/clockwork_obelisk/attack_hand(mob/living/user) + if(!is_servant_of_ratvar(user) || total_accessable_power() < hierophant_cost || !anchored) + user << "You place your hand on the obelisk, but it doesn't react." + return + var/choice = alert(user,"You place your hand on the obelisk...",,"Hierophant Broadcast","Spatial Gateway","Cancel") + switch(choice) + if("Hierophant Broadcast") + if(active) + user << "The obelisk is sustaining a gateway and cannot broadcast!" + return + if(!user.can_speak_vocal()) + user << "You cannot speak through the obelisk!" + return + var/input = stripped_input(usr, "Please choose a message to send over the Hierophant Network.", "Hierophant Broadcast", "") + if(!is_servant_of_ratvar(user) || !input || !user.canUseTopic(src, !issilicon(user))) + return + if(active) + user << "The obelisk is sustaining a gateway and cannot broadcast!" + return + if(!try_use_power(hierophant_cost)) + user << "The obelisk lacks the power to broadcast!" + return + if(!user.can_speak_vocal()) + user << "You cannot speak through the obelisk!" + return + clockwork_say(user, text2ratvar("Hierophant Broadcast, activate! [html_decode(input)]")) + titled_hierophant_message(user, input, "big_brass", "large_brass") + if("Spatial Gateway") + if(active) + user << "The obelisk is already sustaining a gateway!" + return + if(!try_use_power(gateway_cost)) + user << "The obelisk lacks the power to open a gateway!" + return + if(!user.can_speak_vocal()) + user << "You need to be able to speak to open a gateway!" + return + if(procure_gateway(user, round(100 * get_efficiency_mod(), 1), round(5 * get_efficiency_mod(), 1), 1) && !active) + clockwork_say(user, text2ratvar("Spatial Gateway, activate!")) + else + return_power(gateway_cost) + +/obj/structure/destructible/clockwork/powered/clockwork_obelisk/process() + if(!anchored) + return + if(locate(/obj/effect/clockwork/spatial_gateway) in loc) + icon_state = active_icon + density = 0 + active = TRUE + else + icon_state = inactive_icon + density = 1 + active = FALSE diff --git a/code/game/gamemodes/clock_cult/clock_structures/interdiction_lens.dm b/code/game/gamemodes/clock_cult/clock_structures/interdiction_lens.dm new file mode 100644 index 0000000000..d9b1d42fd5 --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_structures/interdiction_lens.dm @@ -0,0 +1,120 @@ +//Interdiction Lens: A powerful artifact that constantly disrupts electronics and drains power but, if it fails to find something to disrupt, turns off. +/obj/structure/destructible/clockwork/powered/interdiction_lens + name = "interdiction lens" + desc = "An ominous, double-pronged brass totem. There's a strange gemstone clasped between the pincers." + clockwork_desc = "A powerful totem that constantly drains nearby electronics and funnels the power drained into nearby Sigils of Transmission or the area's APC." + icon_state = "interdiction_lens" + construction_value = 20 + active_icon = "interdiction_lens_active" + inactive_icon = "interdiction_lens" + unanchored_icon = "interdiction_lens_unwrenched" + break_message = "The lens flares a blinding violet before shattering!" + break_sound = 'sound/effects/Glassbr3.ogg' + var/recharging = 0 //world.time when the lens was last used + var/recharge_time = 1200 //if it drains no power and affects no objects, it turns off for two minutes + var/disabled = FALSE //if it's actually usable + var/interdiction_range = 14 //how large an area it drains and disables in + var/static/list/rage_messages = list("...", "Disgusting.", "Die.", "Foul.", "Worthless.", "Mortal.", "Unfit.", "Weak.", "Fragile.", "Useless.", "Leave my sight!") + +/obj/structure/destructible/clockwork/powered/interdiction_lens/examine(mob/user) + ..() + user << "Its gemstone [recharging > world.time ? "has been breached by writhing tendrils of blackness that cover the totem" \ + : "vibrates in place and thrums with power"]." + if(is_servant_of_ratvar(user) || isobserver(user)) + user << "If it fails to drain any electronics, it will disable itself for [round(recharge_time/600, 1)] minutes." + +/obj/structure/destructible/clockwork/powered/interdiction_lens/toggle(fast_process, mob/living/user) + . = ..() + if(active) + SetLuminosity(4, 2) + else + SetLuminosity(0) + +/obj/structure/destructible/clockwork/powered/interdiction_lens/attack_hand(mob/living/user) + if(user.canUseTopic(src, !issilicon(user))) + if(disabled) + user << "As you place your hand on the gemstone, cold tendrils of black matter crawl up your arm. You quickly pull back." + return 0 + toggle(0, user) + +/obj/structure/destructible/clockwork/powered/interdiction_lens/forced_disable(bad_effects) + if(disabled) + return FALSE + if(!active) + toggle(0) + visible_message("The gemstone suddenly turns horribly dark, writhing tendrils covering it!") + recharging = world.time + recharge_time + flick("interdiction_lens_discharged", src) + icon_state = "interdiction_lens_inactive" + SetLuminosity(2,1) + disabled = TRUE + return TRUE + +/obj/structure/destructible/clockwork/powered/interdiction_lens/process() + . = ..() + if(recharging > world.time) + return + if(disabled) + visible_message("The writhing tendrils return to the gemstone, which begins to glow with power!") + flick("interdiction_lens_recharged", src) + disabled = FALSE + toggle(0) + else + var/successfulprocess = FALSE + var/power_drained = 0 + var/list/atoms_to_test = list() + for(var/A in spiral_range_turfs(interdiction_range, src)) + var/turf/T = A + for(var/M in T) + atoms_to_test |= M + + CHECK_TICK + + var/unconverted_ai = FALSE + var/efficiency = get_efficiency_mod() + var/rage_modifier = get_efficiency_mod(TRUE) + + for(var/i in ai_list) + var/mob/living/silicon/ai/AI = i + if(AI && AI.stat != DEAD && !is_servant_of_ratvar(AI)) + unconverted_ai = TRUE + + for(var/M in atoms_to_test) + var/atom/movable/A = M + if(!A || qdeleted(A) || A == target_apc) + continue + power_drained += (A.power_drain(TRUE) * efficiency) + + if(prob(1 * rage_modifier)) + A << "\"[text2ratvar(pick(rage_messages))]\"" + + if(prob(100 * (efficiency * efficiency))) + if(istype(A, /obj/machinery/camera) && unconverted_ai) + var/obj/machinery/camera/C = A + if(C.isEmpProof() || !C.status) + continue + successfulprocess = TRUE + if(C.emped) + continue + C.emp_act(1) + else if(istype(A, /obj/item/device/radio)) + var/obj/item/device/radio/O = A + successfulprocess = TRUE + if(O.emped || !O.on) + continue + O.emp_act(1) + else if((isliving(A) && !is_servant_of_ratvar(A)) || istype(A, /obj/structure/closet) || istype(A, /obj/item/weapon/storage)) //other things may have radios in them but we don't care + for(var/obj/item/device/radio/O in A.GetAllContents()) + successfulprocess = TRUE + if(O.emped || !O.on) + continue + O.emp_act(1) + + CHECK_TICK + + if(power_drained && power_drained >= MIN_CLOCKCULT_POWER && return_power(power_drained)) + successfulprocess = TRUE + playsound(src, 'sound/items/PSHOOM.ogg', 50 * efficiency, 1, interdiction_range-7, 1) + + if(!successfulprocess) + forced_disable() diff --git a/code/game/gamemodes/clock_cult/clock_structures/mania_motor.dm b/code/game/gamemodes/clock_cult/clock_structures/mania_motor.dm new file mode 100644 index 0000000000..aeb4945a2d --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_structures/mania_motor.dm @@ -0,0 +1,152 @@ +//Mania Motor: A pair of antenna that, while active, cause braindamage and hallucinations in nearby human mobs. +/obj/structure/destructible/clockwork/powered/mania_motor + name = "mania motor" + desc = "A pair of antenna with what appear to be sockets around the base. It reminds you of an antlion." + clockwork_desc = "A transmitter that allows Sevtug to whisper into the minds of nearby non-servants, causing hallucinations and brain damage as long as it remains powered." + icon_state = "mania_motor_inactive" + active_icon = "mania_motor" + inactive_icon = "mania_motor_inactive" + unanchored_icon = "mania_motor_unwrenched" + construction_value = 20 + max_integrity = 80 + obj_integrity = 80 + break_message = "The antenna break off, leaving a pile of shards!" + debris = list(/obj/item/clockwork/alloy_shards/large = 1, \ + /obj/item/clockwork/alloy_shards/small = 3, \ + /obj/item/clockwork/component/geis_capacitor/antennae = 1) + var/mania_cost = 200 + var/convert_attempt_cost = 500 + var/convert_cost = 500 + + var/static/list/mania_messages = list("Go nuts.", "Take a crack at crazy.", "Make a bid for insanity.", "Get kooky.", "Move towards mania.", "Become bewildered.", "Wax wild.", \ + "Go round the bend.", "Land in lunacy.", "Try dementia.", "Strive to get a screw loose.") + var/static/list/compel_messages = list("Come closer.", "Approach the transmitter.", "Touch the antennae.", "I always have to deal with idiots. Move towards the mania motor.", \ + "Advance forward and place your head between the antennae - that's all it's good for.", "If you were smarter, you'd be over here already.", "Move FORWARD, you fool.") + var/static/list/convert_messages = list("You won't do. Go to sleep while I tell these nitwits how to convert you.", "You are insufficient. I must instruct these idiots in the art of conversion.", \ + "Oh of course, someone we can't convert. These servants are fools.", "How hard is it to use a Sigil, anyway? All it takes is dragging someone onto it.", \ + "How do they fail to use a Sigil of Accession, anyway?", "Why is it that all servants are this inept?", "It's quite likely you'll be stuck here for a while.") + var/static/list/close_messages = list("Well, you can't reach the motor from THERE, you moron.", "Interesting location. I'd prefer if you went somewhere you could ACTUALLY TOUCH THE ANTENNAE!", \ + "Amazing. You somehow managed to wedge yourself somewhere you can't actually reach the motor from.", "Such a show of idiocy is unparalleled. Perhaps I should put you on display?", \ + "Did you do this on purpose? I can't imagine you doing so accidentally. Oh, wait, I can.", "How is it that such smart creatures can still do something AS STUPID AS THIS!") + + +/obj/structure/destructible/clockwork/powered/mania_motor/examine(mob/user) + ..() + if(is_servant_of_ratvar(user) || isobserver(user)) + user << "It requires [mania_cost]W to run, and [convert_attempt_cost + convert_cost]W to convert humans adjecent to it." + +/obj/structure/destructible/clockwork/powered/mania_motor/forced_disable(bad_effects) + if(active) + if(bad_effects) + try_use_power(MIN_CLOCKCULT_POWER*2) + visible_message("[src] hums loudly, then the sockets at its base fall dark!") + playsound(src, 'sound/effects/screech.ogg', 40, 1) + toggle() + return TRUE + +/obj/structure/destructible/clockwork/powered/mania_motor/attack_hand(mob/living/user) + if(user.canUseTopic(src, !issilicon(user)) && is_servant_of_ratvar(user)) + if(!total_accessable_power() >= mania_cost) + user << "[src] needs more power to function!" + return 0 + toggle(0, user) + +/obj/structure/destructible/clockwork/powered/mania_motor/toggle(fast_process, mob/living/user) + . = ..() + if(active) + SetLuminosity(2, 1) + else + SetLuminosity(0) + +/obj/structure/destructible/clockwork/powered/mania_motor/process() + if(try_use_power(mania_cost)) + var/turf/T = get_turf(src) + var/hum = get_sfx('sound/effects/screech.ogg') //like playsound, same sound for everyone affected + var/efficiency = get_efficiency_mod() + for(var/mob/living/carbon/human/H in view(1, src)) + if(is_servant_of_ratvar(H) || H.null_rod_check()) + continue + if(H.Adjacent(src) && try_use_power(convert_attempt_cost)) + if(is_eligible_servant(H) && try_use_power(convert_cost)) + H << "\"[text2ratvar("You are mine and his, now.")]\"" + H.playsound_local(T, hum, 80, 1) + add_servant_of_ratvar(H) + H.Paralyse(5) + else if(!H.stat) + if(H.getBrainLoss() >= 100) + H.Paralyse(5) + H << "\"[text2ratvar(pick(convert_messages))]\"" + else + H.adjustBrainLoss(100 * efficiency) + H.visible_message("[H] reaches out and touches [src].", "You touch [src] involuntarily.") + else + visible_message("[src]'s antennae fizzle quietly.") + playsound(src, 'sound/effects/light_flicker.ogg', 50, 1) + for(var/mob/living/carbon/human/H in range(10, src)) + if(is_servant_of_ratvar(H)) + if(H.getBrainLoss() || H.hallucination || H.druggy || H.dizziness || H.confused) + H.adjustBrainLoss(-H.getBrainLoss()) //heals servants of braindamage, hallucination, druggy, dizziness, and confusion + H.hallucination = 0 + H.adjust_drugginess(-H.druggy) + H.dizziness = 0 + H.confused = 0 + else if(!H.null_rod_check() && H.stat == CONSCIOUS) + var/distance = get_dist(T, get_turf(H)) + var/falloff_distance = min((110) - distance * 10, 80) + var/sound_distance = falloff_distance * 0.5 + var/targetbrainloss = H.getBrainLoss() + if(distance >= 4 && prob(falloff_distance * 0.5)) + H << "\"[text2ratvar(pick(mania_messages))]\"" + H.playsound_local(T, hum, sound_distance, 1) + switch(distance) + if(2 to 3) + if(prob(falloff_distance * 0.5)) + if(prob(falloff_distance)) + H << "\"[text2ratvar(pick(mania_messages))]\"" + else + H << "\"[text2ratvar(pick(compel_messages))]\"" + if(targetbrainloss <= 50) + H.adjustBrainLoss((50 * efficiency) - targetbrainloss) //got too close had brain eaten + H.adjust_drugginess(Clamp(7 * efficiency, 0, 100 - H.druggy)) + H.hallucination = min(H.hallucination + (7 * efficiency), 100) + H.dizziness = min(H.dizziness + (3 * efficiency), 45) + H.confused = min(H.confused + (3 * efficiency), 45) + if(4 to 5) + if(targetbrainloss <= 50) + H.adjustBrainLoss(1 * efficiency) + H.adjust_drugginess(Clamp(5 * efficiency, 0, 80 - H.druggy)) + H.hallucination = min(H.hallucination + (5 * efficiency), 80) + H.dizziness = min(H.dizziness + (2 * efficiency), 30) + H.confused = min(H.confused + (2 * efficiency), 30) + if(6 to 7) + if(targetbrainloss <= 30) + H.adjustBrainLoss(1 * efficiency) + H.adjust_drugginess(Clamp(2 * efficiency, 0, 60 - H.druggy)) + H.hallucination = min(H.hallucination + (2 * efficiency), 60) + H.dizziness = min(H.dizziness + (2 * efficiency), 15) + H.confused = min(H.confused + (2 * efficiency), 15) + if(8 to 9) + if(targetbrainloss <= 10) + H.adjustBrainLoss(1 * efficiency) + H.adjust_drugginess(Clamp(2 * efficiency, 0, 40 - H.druggy)) + H.hallucination = min(H.hallucination + (2 * efficiency), 40) + if(10 to INFINITY) + H.adjust_drugginess(Clamp(2 * efficiency, 0, 20 - H.druggy)) + H.hallucination = min(H.hallucination + (2 * efficiency), 20) + else //if it's a distance of 1 and they can't see it/aren't adjacent or they're on top of it(how'd they get on top of it and still trigger this???) + if(prob(falloff_distance * 0.5)) + if(prob(falloff_distance)) + H << "\"[text2ratvar(pick(compel_messages))]\"" + else if(prob(falloff_distance * 0.5)) + H << "\"[text2ratvar(pick(close_messages))]\"" + else + H << "\"[text2ratvar(pick(mania_messages))]\"" + if(targetbrainloss <= 99) + H.adjustBrainLoss((99 * efficiency) - targetbrainloss) + H.adjust_drugginess(Clamp(10 * efficiency, 0, 150 - H.druggy)) + H.hallucination = min(H.hallucination + (10 * efficiency), 150) + H.dizziness = min(H.dizziness + (5 * efficiency), 60) + H.confused = min(H.confused + (5 * efficiency), 60) + + else + forced_disable(FALSE) diff --git a/code/game/gamemodes/clock_cult/clock_structures/mending_motor.dm b/code/game/gamemodes/clock_cult/clock_structures/mending_motor.dm new file mode 100644 index 0000000000..0c8e9759ae --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_structures/mending_motor.dm @@ -0,0 +1,146 @@ +//Mending Motor: A prism that consumes replicant alloy or power to repair nearby mechanical servants at a quick rate. +/obj/structure/destructible/clockwork/powered/mending_motor + name = "mending motor" + desc = "A dark onyx prism, held in midair by spiraling tendrils of stone." + clockwork_desc = "A powerful prism that rapidly repairs nearby mechanical servants and clockwork structures." + icon_state = "mending_motor_inactive" + active_icon = "mending_motor" + inactive_icon = "mending_motor_inactive" + unanchored_icon = "mending_motor_unwrenched" + construction_value = 20 + max_integrity = 125 + obj_integrity = 125 + break_message = "The prism collapses with a heavy thud!" + debris = list(/obj/item/clockwork/alloy_shards/small = 5, \ + /obj/item/clockwork/alloy_shards/medium = 1, \ + /obj/item/clockwork/alloy_shards/large = 1, \ + /obj/item/clockwork/component/vanguard_cogwheel = 1) + var/stored_alloy = 0 + var/max_alloy = REPLICANT_ALLOY_POWER * 10 + var/heal_attempts = 4 + var/static/list/heal_finish_messages = list("There, all mended!", "Try not to get too damaged.", "No more dents and scratches for you!", "Champions never die.", "All patched up.", \ + "Ah, child, it's okay now.") + var/static/list/heal_failure_messages = list("Pain is temporary.", "What you do for the Justiciar is eternal.", "Bear this for me.", "Be strong, child.", "Please, be careful!", \ + "If you die, you will be remembered.") + var/static/list/mending_motor_typecache = typecacheof(list( + /obj/structure/destructible/clockwork, + /obj/machinery/door/airlock/clockwork, + /obj/machinery/door/window/clockwork, + /obj/structure/window/reinforced/clockwork, + /obj/structure/table/reinforced/brass)) + +/obj/structure/destructible/clockwork/powered/mending_motor/prefilled + stored_alloy = REPLICANT_ALLOY_POWER //starts with 1 replicant alloy's worth of power + +/obj/structure/destructible/clockwork/powered/mending_motor/total_accessable_power() + . = ..() + if(. != INFINITY) + . += accessable_alloy_power() + +/obj/structure/destructible/clockwork/powered/mending_motor/proc/accessable_alloy_power() + return stored_alloy + +/obj/structure/destructible/clockwork/powered/mending_motor/use_power(amount) + var/alloypower = accessable_alloy_power() + while(alloypower >= MIN_CLOCKCULT_POWER && amount >= MIN_CLOCKCULT_POWER) + stored_alloy -= MIN_CLOCKCULT_POWER + alloypower -= MIN_CLOCKCULT_POWER + amount -= MIN_CLOCKCULT_POWER + return ..() + +/obj/structure/destructible/clockwork/powered/mending_motor/examine(mob/user) + ..() + if(is_servant_of_ratvar(user) || isobserver(user)) + user << "It contains [stored_alloy*CLOCKCULT_POWER_TO_ALLOY_MULTIPLIER]/[max_alloy*CLOCKCULT_POWER_TO_ALLOY_MULTIPLIER] units of liquified alloy, \ + which is equivalent to [stored_alloy]W/[max_alloy]W of power." + user << "It requires at least [MIN_CLOCKCULT_POWER]W to attempt to repair clockwork mobs, structures, or converted silicons." + +/obj/structure/destructible/clockwork/powered/mending_motor/forced_disable(bad_effects) + if(active) + if(bad_effects) + try_use_power(MIN_CLOCKCULT_POWER*2) + visible_message("[src] emits an airy chuckling sound and falls dark!") + toggle() + return TRUE + +/obj/structure/destructible/clockwork/powered/mending_motor/attack_hand(mob/living/user) + if(user.canUseTopic(src, !issilicon(user)) && is_servant_of_ratvar(user)) + if(total_accessable_power() < MIN_CLOCKCULT_POWER) + user << "[src] needs more power or replicant alloy to function!" + return 0 + toggle(0, user) + +/obj/structure/destructible/clockwork/powered/mending_motor/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/clockwork/component/replicant_alloy) && is_servant_of_ratvar(user)) + if(stored_alloy + REPLICANT_ALLOY_POWER > max_alloy) + user << "[src] is too full to accept any more alloy!" + return 0 + playsound(user, 'sound/machines/click.ogg', 50, 1) + clockwork_say(user, text2ratvar("Transmute into fuel."), TRUE) + user << "You force [I] to liquify and pour it into [src]'s compartments. \ + It now contains [stored_alloy*CLOCKCULT_POWER_TO_ALLOY_MULTIPLIER]/[max_alloy*CLOCKCULT_POWER_TO_ALLOY_MULTIPLIER] units of liquified alloy." + stored_alloy = stored_alloy + REPLICANT_ALLOY_POWER + user.drop_item() + qdel(I) + return 1 + else + return ..() + +/obj/structure/destructible/clockwork/powered/mending_motor/process() + var/efficiency = get_efficiency_mod() + for(var/atom/movable/M in range(7, src)) + var/turf/T + if(isclockmob(M) || istype(M, /mob/living/simple_animal/drone/cogscarab)) + T = get_turf(M) + var/mob/living/simple_animal/hostile/clockwork/marauder/E = M + var/is_marauder = istype(E) + if(E.health == E.maxHealth || E.stat == DEAD || (is_marauder && !E.fatigue)) + continue + for(var/i in 1 to heal_attempts) + if(E.health < E.maxHealth || (is_marauder && E.fatigue)) + if(try_use_power(MIN_CLOCKCULT_POWER)) + E.adjustHealth(-(8 * efficiency)) + PoolOrNew(/obj/effect/overlay/temp/heal, list(T, "#1E8CE1")) + else + E << "\"[text2ratvar(pick(heal_failure_messages))]\"" + break + else + E << "\"[text2ratvar(pick(heal_finish_messages))]\"" + break + else if(is_type_in_typecache(M, mending_motor_typecache)) + T = get_turf(M) + var/obj/structure/destructible/clockwork/C = M + if(C.obj_integrity == C.max_integrity || (istype(C) && !C.can_be_repaired)) + continue + for(var/i in 1 to heal_attempts) + if(C.obj_integrity < C.max_integrity) + if(try_use_power(MIN_CLOCKCULT_POWER)) + C.obj_integrity = min(C.obj_integrity + (8 * efficiency), C.max_integrity) + if(C == src) + efficiency = get_efficiency_mod() + C.update_icon() + PoolOrNew(/obj/effect/overlay/temp/heal, list(T, "#1E8CE1")) + else + break + else + break + else if(issilicon(M)) + T = get_turf(M) + var/mob/living/silicon/S = M + if(S.health == S.maxHealth || S.stat == DEAD || !is_servant_of_ratvar(S)) + continue + for(var/i in 1 to heal_attempts) + if(S.health < S.maxHealth) + if(try_use_power(MIN_CLOCKCULT_POWER)) + S.adjustBruteLoss(-(5 * efficiency)) + S.adjustFireLoss(-(3 * efficiency)) + PoolOrNew(/obj/effect/overlay/temp/heal, list(T, "#1E8CE1")) + else + S << "\"[text2ratvar(pick(heal_failure_messages))]\"" + break + else + S << "\"[text2ratvar(pick(heal_finish_messages))]\"" + break + . = ..() + if(. < MIN_CLOCKCULT_POWER) + forced_disable(FALSE) diff --git a/code/game/gamemodes/clock_cult/clock_structures/ocular_warden.dm b/code/game/gamemodes/clock_cult/clock_structures/ocular_warden.dm new file mode 100644 index 0000000000..2322bd94b1 --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_structures/ocular_warden.dm @@ -0,0 +1,123 @@ +//Ocular warden: Low-damage, low-range turret. Deals constant damage to whoever it makes eye contact with. +/obj/structure/destructible/clockwork/ocular_warden + name = "ocular warden" + desc = "A large brass eye with tendrils trailing below it and a wide red iris." + clockwork_desc = "A fragile turret that will deal sustained damage to any non-faithful it sees." + icon_state = "ocular_warden" + unanchored_icon = "ocular_warden_unwrenched" + obj_integrity = 25 + max_integrity = 25 + construction_value = 15 + layer = HIGH_OBJ_LAYER + break_message = "The warden's eye gives a glare of utter hate before falling dark!" + debris = list(/obj/item/clockwork/component/belligerent_eye/blind_eye = 1) + resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF + var/damage_per_tick = 2.7 + var/sight_range = 3 + var/atom/movable/target + var/list/idle_messages = list(" sulkily glares around.", " lazily drifts from side to side.", " looks around for something to burn.", " slowly turns in circles.") + +/obj/structure/destructible/clockwork/ocular_warden/New() + ..() + START_PROCESSING(SSfastprocess, src) + +/obj/structure/destructible/clockwork/ocular_warden/Destroy() + STOP_PROCESSING(SSfastprocess, src) + return ..() + +/obj/structure/destructible/clockwork/ocular_warden/examine(mob/user) + ..() + user << "[target ? "It's fixated on [target]!" : "Its gaze is wandering aimlessly."]" + +/obj/structure/destructible/clockwork/ocular_warden/hulk_damage() + return 25 + +/obj/structure/destructible/clockwork/ocular_warden/can_be_unfasten_wrench(mob/user) + if(anchored) + if(obj_integrity <= max_integrity * 0.25) + user << "[src] is too damaged to unsecure!" + return FAILED_UNFASTEN + else + for(var/obj/structure/destructible/clockwork/ocular_warden/W in orange(3, src)) + user << "You sense another ocular warden too near this location. Activating this one this close would cause them to fight." + return FAILED_UNFASTEN + return SUCCESSFUL_UNFASTEN + +/obj/structure/destructible/clockwork/ocular_warden/ratvar_act() + ..() + if(ratvar_awakens) + damage_per_tick = 10 + sight_range = 6 + else + damage_per_tick = initial(damage_per_tick) + sight_range = initial(sight_range) + +/obj/structure/destructible/clockwork/ocular_warden/process() + if(!anchored) + lose_target() + return + var/list/validtargets = acquire_nearby_targets() + if(target) + if(!(target in validtargets)) + lose_target() + else + if(isliving(target)) + var/mob/living/L = target + if(!L.null_rod_check()) + if(isrevenant(L)) + var/mob/living/simple_animal/revenant/R = L + if(R.revealed) + R.unreveal_time += 2 + else + R.reveal(10) + L.adjustFireLoss((!iscultist(L) ? damage_per_tick : damage_per_tick * 2) * get_efficiency_mod()) //Nar-Sian cultists take additional damage + if(ratvar_awakens && L) + L.adjust_fire_stacks(damage_per_tick) + L.IgniteMob() + else if(istype(target,/obj/mecha)) + var/obj/mecha/M = target + M.take_damage(damage_per_tick * get_efficiency_mod(), BURN, "melee", 1, get_dir(src, M)) + + PoolOrNew(/obj/effect/overlay/temp/ratvar/ocular_warden, get_turf(target)) + + setDir(get_dir(get_turf(src), get_turf(target))) + if(!target) + if(validtargets.len) + target = pick(validtargets) + visible_message("[src] swivels to face [target]!") + if(isliving(target)) + var/mob/living/L = target + L << "\"I SEE YOU!\"\n[src]'s gaze [ratvar_awakens ? "melts you alive" : "burns you"]!" + else if(istype(target,/obj/mecha)) + var/obj/mecha/M = target + M.occupant << "\"I SEE YOU!\"" //heeeellooooooo, person in mech. + else if(prob(0.5)) //Extremely low chance because of how fast the subsystem it uses processes + if(prob(50)) + visible_message("[src][pick(idle_messages)]") + else + setDir(pick(cardinal))//Random rotation + +/obj/structure/destructible/clockwork/ocular_warden/proc/acquire_nearby_targets() + . = list() + for(var/mob/living/L in viewers(sight_range, src)) //Doesn't attack the blind + var/obj/item/weapon/storage/book/bible/B = L.bible_check() + if(B) + if(!(B.resistance_flags & ON_FIRE)) + L << "Your [B.name] bursts into flames!" + for(var/obj/item/weapon/storage/book/bible/BI in L.GetAllContents()) + if(!(BI.resistance_flags & ON_FIRE)) + BI.fire_act() + else if(!is_servant_of_ratvar(L) && !L.stat && L.mind && !L.restrained() && !(L.buckled && (L.lying || istype(L.buckled, /obj/structure/destructible/clockwork/geis_binding))) && \ + !(L.disabilities & BLIND) && !L.null_rod_check()) + . += L + for(var/N in mechas_list) + var/obj/mecha/M = N + if(get_dist(M, src) <= sight_range && M.occupant && !is_servant_of_ratvar(M.occupant) && (M in view(sight_range, src))) + . += M + +/obj/structure/destructible/clockwork/ocular_warden/proc/lose_target() + if(!target) + return 0 + target = null + visible_message("[src] settles and seems almost disappointed.") + return 1 diff --git a/code/game/gamemodes/clock_cult/clock_structures/ratvar_the_clockwork_justicar.dm b/code/game/gamemodes/clock_cult/clock_structures/ratvar_the_clockwork_justicar.dm new file mode 100644 index 0000000000..ee17e60db9 --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_structures/ratvar_the_clockwork_justicar.dm @@ -0,0 +1,145 @@ +//Ratvar himself. Impossible to damage by most standard means, He will dominate the station and all upon it. +/obj/structure/destructible/clockwork/massive/ratvar + name = "Ratvar, the Clockwork Justiciar" + desc = "What is what is what are what real what is all a lie all a lie it's all a lie why how can what is" + clockwork_desc = "Ratvar, the Clockwork Justiciar, your master eternal." + icon = 'icons/effects/512x512.dmi' + icon_state = "ratvar" + pixel_x = -235 + pixel_y = -248 + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF + appearance_flags = 0 + var/atom/prey //Whatever Ratvar is chasing + var/clashing = FALSE //If Ratvar is FUCKING FIGHTING WITH NAR-SIE + var/proselytize_range = 10 + +/obj/structure/destructible/clockwork/massive/ratvar/New() + ..() + ratvar_awakens++ + for(var/obj/O in all_clockwork_objects) + O.ratvar_act() + START_PROCESSING(SSobj, src) + send_to_playing_players("\"[text2ratvar("ONCE AGAIN MY LIGHT SHALL SHINE ACROSS THIS PATHETIC REALM")]!!\"") + send_to_playing_players('sound/effects/ratvar_reveal.ogg') + var/image/alert_overlay = image('icons/effects/clockwork_effects.dmi', "ratvar_alert") + var/area/A = get_area(src) + notify_ghosts("The Justiciar's light calls to you! Reach out to Ratvar in [A.name] to be granted a shell to spread his glory!", null, source = src, alert_overlay = alert_overlay) + addtimer(SSshuttle.emergency, "request", 50, TIMER_NORMAL, null, 0.1) + +/obj/structure/destructible/clockwork/massive/ratvar/Destroy() + ratvar_awakens-- + for(var/obj/O in all_clockwork_objects) + O.ratvar_act() + STOP_PROCESSING(SSobj, src) + send_to_playing_players("\"NO! I will not... be... banished... again...\"") + return ..() + +/obj/structure/destructible/clockwork/massive/ratvar/attack_ghost(mob/dead/observer/O) + var/alertresult = alert(O, "Embrace the Justiciar's light? You can no longer be cloned!",,"Yes", "No") + if(alertresult == "No" || !O) + return 0 + var/mob/living/simple_animal/drone/cogscarab/ratvar/R = new/mob/living/simple_animal/drone/cogscarab/ratvar(get_turf(src)) + R.visible_message("[R] forms, and its eyes blink open, glowing bright red!") + R.key = O.key + +/obj/structure/destructible/clockwork/massive/ratvar/Bump(atom/A) + var/turf/T = get_turf(A) + forceMove(T) + T.ratvar_act() + +/obj/structure/destructible/clockwork/massive/ratvar/Process_Spacemove() + return clashing + +/obj/structure/destructible/clockwork/massive/ratvar/process() + if(clashing) //I'm a bit occupied right now, thanks + return + for(var/I in circlerangeturfs(src, proselytize_range)) + var/turf/T = I + T.ratvar_act() + for(var/I in circleviewturfs(src, round(proselytize_range * 0.5))) + var/turf/T = I + T.ratvar_act(1) + var/dir_to_step_in = pick(cardinal) + if(!prey) + for(var/obj/singularity/narsie/N in poi_list) + if(N.z == z) + prey = N + break + if(!prey) //In case there's a Nar-Sie + var/list/meals = list() + for(var/mob/living/L in living_mob_list) + if(L.z == z && !is_servant_of_ratvar(L) && L.mind) + meals += L + if(meals.len) + prey = pick(meals) + prey << "\"You will do.\"\n\ + Something very large and very malevolent begins lumbering its way towards you..." + prey << 'sound/effects/ratvar_reveal.ogg' + else + if(prob(10) || is_servant_of_ratvar(prey) || prey.z != z) + prey << "\"How dull. Leave me.\"\n\ + You feel tremendous relief as a set of horrible eyes loses sight of you..." + prey = null + else + dir_to_step_in = get_dir(src, prey) //Unlike Nar-Sie, Ratvar ruthlessly chases down his target + step(src, dir_to_step_in) + +/obj/structure/destructible/clockwork/massive/ratvar/narsie_act() + if(clashing) + return FALSE + clashing = TRUE + world << "\"[pick("BLOOD GOD!!!", "NAR-SIE!!!", "AT LAST, YOUR TIME HAS COME!")]\"" + world << "\"Ratvar?! How?!\"" + for(var/obj/singularity/narsie/N in range(15, src)) + if(N.clashing) + continue + N.clashing = TRUE + clash_of_the_titans(N) //IT'S TIME FOR THE BATTLE OF THE AGES + break + return TRUE + +//Put me in Reebe, will you? Ratvar has found and is going to fucking murder Nar-Sie +/obj/structure/destructible/clockwork/massive/ratvar/proc/clash_of_the_titans(obj/singularity/narsie/narsie) + var/winner = "Undeclared" + var/base_victory_chance = 1 + while(src && narsie) + send_to_playing_players('sound/magic/clockwork/ratvar_attack.ogg') + sleep(5.2) + for(var/mob/M in mob_list) + if(!isnewplayer(M)) + flash_color(M, flash_color="#966400", flash_time=1) + shake_camera(M, 4, 3) + var/ratvar_chance = min(ticker.mode.servants_of_ratvar.len, 50) + var/narsie_chance = ticker.mode.cult.len + for(var/mob/living/simple_animal/hostile/construct/harvester/C in player_list) + narsie_chance++ + ratvar_chance = rand(base_victory_chance, ratvar_chance) + narsie_chance = rand(base_victory_chance, min(narsie_chance, 50)) + if(ratvar_chance > narsie_chance) + winner = "Ratvar" + break + sleep(rand(2,5)) + send_to_playing_players('sound/magic/clockwork/narsie_attack.ogg') + sleep(7.4) + for(var/mob/M in mob_list) + if(!isnewplayer(M)) + flash_color(M, flash_color="#C80000", flash_time=1) + shake_camera(M, 4, 3) + if(narsie_chance > ratvar_chance) + winner = "Nar-Sie" + break + base_victory_chance *= 2 //The clash has a higher chance of resolving each time both gods attack one another + switch(winner) + if("Ratvar") + send_to_playing_players("\"[pick("DIE! DIE! DIE!", "FILTH!!!", "SUFFER!!!", text2ratvar("ROT FOR CENTURIES AS I HAVE!!"))]\"\n\ + \"[pick("Nooooo...", "Not die. To y-", "Die. Ratv-", "Sas tyen re-")]\"") //nar-sie get out + send_to_playing_players('sound/magic/clockwork/anima_fragment_attack.ogg') + send_to_playing_players('sound/magic/demon_dies.ogg') + clashing = FALSE + qdel(narsie) + if("Nar-Sie") + send_to_playing_players("\"[pick("Ha.", "Ra'sha fonn dest.", "You fool. To come here.")]\"") //Broken English + send_to_playing_players('sound/magic/demon_attack1.ogg') + send_to_playing_players('sound/magic/clockwork/anima_fragment_death.ogg') + narsie.clashing = FALSE + qdel(src) diff --git a/code/game/gamemodes/clock_cult/clock_structures/tinkerers_cache.dm b/code/game/gamemodes/clock_cult/clock_structures/tinkerers_cache.dm new file mode 100644 index 0000000000..3e4cd5c0f2 --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_structures/tinkerers_cache.dm @@ -0,0 +1,102 @@ +//Tinkerer's cache: Stores components for later use. +/obj/structure/destructible/clockwork/cache + name = "tinkerer's cache" + desc = "A large brass spire with a flaming hole in its center." + clockwork_desc = "A brass container capable of storing a large amount of components.\n\ + Shares components with all other caches and will gradually generate components if near a Clockwork Wall." + icon_state = "tinkerers_cache" + unanchored_icon = "tinkerers_cache_unwrenched" + construction_value = 10 + break_message = "The cache's fire winks out before it falls in on itself!" + max_integrity = 80 + obj_integrity = 80 + var/wall_generation_cooldown + var/turf/closed/wall/clockwork/linkedwall //if we've got a linked wall and are producing + +/obj/structure/destructible/clockwork/cache/New() + ..() + START_PROCESSING(SSobj, src) + clockwork_caches++ + update_slab_info() + SetLuminosity(2,1) + +/obj/structure/destructible/clockwork/cache/Destroy() + clockwork_caches-- + update_slab_info() + STOP_PROCESSING(SSobj, src) + if(linkedwall) + linkedwall.linkedcache = null + linkedwall = null + return ..() + +/obj/structure/destructible/clockwork/cache/process() + if(!anchored) + if(linkedwall) + linkedwall.linkedcache = null + linkedwall = null + return + for(var/turf/closed/wall/clockwork/C in range(4, src)) + if(!C.linkedcache && !linkedwall) + C.linkedcache = src + linkedwall = C + wall_generation_cooldown = world.time + (CACHE_PRODUCTION_TIME * get_efficiency_mod(TRUE)) + visible_message("[src] starts to whirr in the presence of [C]...") + break + if(linkedwall && wall_generation_cooldown <= world.time) + wall_generation_cooldown = world.time + (CACHE_PRODUCTION_TIME * get_efficiency_mod(TRUE)) + generate_cache_component(null, src) + playsound(linkedwall, 'sound/magic/clockwork/fellowship_armory.ogg', rand(15, 20), 1, -3, 1, 1) + visible_message("Something cl[pick("ank", "ink", "unk", "ang")]s around inside of [src]...") + +/obj/structure/destructible/clockwork/cache/attackby(obj/item/I, mob/living/user, params) + if(!is_servant_of_ratvar(user)) + return ..() + if(istype(I, /obj/item/clockwork/component)) + var/obj/item/clockwork/component/C = I + if(!anchored) + user << "[src] needs to be secured to place [C] into it!" + else + clockwork_component_cache[C.component_id]++ + update_slab_info() + user << "You add [C] to [src]." + user.drop_item() + qdel(C) + return 1 + else if(istype(I, /obj/item/clockwork/slab)) + var/obj/item/clockwork/slab/S = I + if(!anchored) + user << "[src] needs to be secured to offload your slab's components into it!" + else + for(var/i in S.stored_components) + clockwork_component_cache[i] += S.stored_components[i] + S.stored_components[i] = 0 + update_slab_info() + user.visible_message("[user] empties [S] into [src].", "You offload your slab's components into [src].") + return 1 + else + return ..() + +/obj/structure/destructible/clockwork/cache/attack_hand(mob/user) + if(!is_servant_of_ratvar(user)) + return 0 + if(!anchored) + user << "[src] needs to be secured to remove Replicant Alloy from it!" + return 0 + if(!clockwork_component_cache[REPLICANT_ALLOY]) + user << "There is no Replicant Alloy in the global component cache!" + return 0 + clockwork_component_cache[REPLICANT_ALLOY]-- + update_slab_info() + var/obj/item/clockwork/component/replicant_alloy/A = new(get_turf(src)) + user.visible_message("[user] withdraws [A] from [src].", "You withdraw [A] from [src].") + user.put_in_hands(A) + return 1 + +/obj/structure/destructible/clockwork/cache/examine(mob/user) + ..() + if(is_servant_of_ratvar(user) || isobserver(user)) + if(linkedwall) + user << "It is linked and will generate a component every [round((CACHE_PRODUCTION_TIME * 0.1) * get_efficiency_mod(TRUE), 0.1)] seconds!" + user << "Stored components:" + for(var/i in clockwork_component_cache) + user << "[get_component_name(i)][i != REPLICANT_ALLOY ? "s":""]: [clockwork_component_cache[i]]" diff --git a/code/game/gamemodes/clock_cult/clock_structures/tinkerers_daemon.dm b/code/game/gamemodes/clock_cult/clock_structures/tinkerers_daemon.dm new file mode 100644 index 0000000000..a7200dbd89 --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_structures/tinkerers_daemon.dm @@ -0,0 +1,165 @@ +//Tinkerer's Daemon: A machine that rapidly produces components at a power cost. +/obj/structure/destructible/clockwork/powered/tinkerers_daemon + name = "tinkerer's daemon" + desc = "A strange machine with three small brass obelisks attached to it." + clockwork_desc = "An efficient machine that can rapidly produce components at a small power cost. It will only function if outnumbered by servants at a rate to 5:1." + icon_state = "tinkerers_daemon" + active_icon = "tinkerers_daemon" + inactive_icon = "tinkerers_daemon" + unanchored_icon = "tinkerers_daemon_unwrenched" + max_integrity = 100 + obj_integrity = 100 + construction_value = 20 + break_message = "The daemon shatters into millions of pieces!" + debris = list(/obj/item/clockwork/alloy_shards/large = 2, \ + /obj/item/clockwork/alloy_shards/medium = 4, \ + /obj/item/clockwork/alloy_shards/small = 6) + var/image/daemon_glow + var/image/component_glow + var/component_id_to_produce + var/production_time = 0 //last time we produced a component + var/production_cooldown = 120 + +/obj/structure/destructible/clockwork/powered/tinkerers_daemon/New() + ..() + clockwork_daemons++ + +/obj/structure/destructible/clockwork/powered/tinkerers_daemon/Destroy() + clockwork_daemons-- + return ..() + +/obj/structure/destructible/clockwork/powered/tinkerers_daemon/examine(mob/user) + ..() + if(is_servant_of_ratvar(user) || isobserver(user)) + if(active) + if(component_id_to_produce) + user << "It is currently producing [get_component_name(component_id_to_produce)][component_id_to_produce != REPLICANT_ALLOY ? "s":""]." + else + user << "It is currently producing random components." + user << "It will produce a component every [round((production_cooldown*0.1) * get_efficiency_mod(TRUE), 0.1)] seconds and requires at least the following power for each component type:" + for(var/i in clockwork_component_cache) + user << "[get_component_name(i)]: [get_component_cost(i)]W ([clockwork_component_cache[i]] exist[clockwork_component_cache[i] == 1 ? "s" : ""])" + +/obj/structure/destructible/clockwork/powered/tinkerers_daemon/forced_disable(bad_effects) + if(active) + if(bad_effects) + try_use_power(MIN_CLOCKCULT_POWER*2) + visible_message("[src] shuts down with a horrible grinding noise!") + playsound(src, 'sound/magic/clockwork/anima_fragment_attack.ogg', 50, 1) + else + visible_message("[src] shuts down!") + toggle() + return TRUE + +/obj/structure/destructible/clockwork/powered/tinkerers_daemon/attack_hand(mob/living/user) + if(!is_servant_of_ratvar(user)) + user << "You place your hand on the daemon, but nothing happens." + return + if(active) + toggle(0, user) + else + if(!anchored) + user << "[src] needs to be secured to the floor before it can be activated!" + return FALSE + var/servants = 0 + for(var/mob/living/L in living_mob_list) + if(is_servant_of_ratvar(L)) + servants++ + if(servants * 0.2 < clockwork_daemons) + user << "\"There are too few servants for this daemon to work.\"" + return + if(!clockwork_caches) + user << "\"You require a cache for this daemon to operate. Get to it.\"" + return + var/min_power_usable = 0 + for(var/i in clockwork_component_cache) + if(!min_power_usable) + min_power_usable = get_component_cost(i) + else + min_power_usable = min(min_power_usable, get_component_cost(i)) + if(total_accessable_power() < min_power_usable) + user << "\"You need more power to activate this daemon, friend.\"" + return + var/choice = alert(user,"Activate Daemon...",,"Specific Component","Random Component","Cancel") + switch(choice) + if("Specific Component") + var/list/components = list() + for(var/i in clockwork_component_cache) + components["[get_component_name(i)] ([get_component_cost(i)]W)"] = i + var/input_component = input(user, "Choose a component type.", name) as null|anything in components + component_id_to_produce = components[input_component] + servants = 0 + for(var/mob/living/L in living_mob_list) + if(is_servant_of_ratvar(L)) + servants++ + if(!is_servant_of_ratvar(user) || !user.canUseTopic(src, !issilicon(user)) || active || !clockwork_caches || servants * 0.2 < clockwork_daemons) + return + if(!component_id_to_produce) + user << "You decide not to select a component and activate the daemon." + return + if(total_accessable_power() < get_component_cost(component_id_to_produce)) + user << "There is too little power to produce this type of component!" + return + toggle(0, user) + if("Random Component") + component_id_to_produce = null + toggle(0, user) + +/obj/structure/destructible/clockwork/powered/tinkerers_daemon/toggle(fast_process, mob/living/user) + . = ..() + if(active) + var/component_color = get_component_color(component_id_to_produce) + if(!daemon_glow) + daemon_glow = new('icons/obj/clockwork_objects.dmi', "tinkerglow") + daemon_glow.color = component_color + add_overlay(daemon_glow) + if(!component_glow) + component_glow = new('icons/obj/clockwork_objects.dmi', "t_[component_id_to_produce ? component_id_to_produce :"random_component"]") + else + component_glow.icon_state = "t_[component_id_to_produce ? component_id_to_produce :"random_component"]" + component_glow.color = component_color + add_overlay(component_glow) + production_time = world.time + production_cooldown //don't immediately produce when turned on after being off + SetLuminosity(2, 1) + else + cut_overlays() + SetLuminosity(0) + +/obj/structure/destructible/clockwork/powered/tinkerers_daemon/proc/get_component_cost(id) + return max(MIN_CLOCKCULT_POWER, MIN_CLOCKCULT_POWER * (1 + round(clockwork_component_cache[id] * 0.2))) + +/obj/structure/destructible/clockwork/powered/tinkerers_daemon/process() + var/servants = 0 + for(var/mob/living/L in living_mob_list) + if(is_servant_of_ratvar(L)) + servants++ + . = ..() + var/min_power_usable = 0 + if(!component_id_to_produce) + for(var/i in clockwork_component_cache) + if(!min_power_usable) + min_power_usable = get_component_cost(i) + else + min_power_usable = min(min_power_usable, get_component_cost(i)) + else + min_power_usable = get_component_cost(component_id_to_produce) + if(!clockwork_caches || servants * 0.2 < clockwork_daemons || . < min_power_usable) //if we don't have enough to produce the lowest or what we chose to produce, cancel out + forced_disable(FALSE) + return + if(production_time <= world.time) + var/component_to_generate = component_id_to_produce + if(!component_to_generate) + component_to_generate = get_weighted_component_id() //more likely to generate components that we have less of + if(!try_use_power(get_component_cost(component_to_generate))) + component_to_generate = null + if(!component_id_to_produce) + for(var/i in clockwork_component_cache) + if(try_use_power(get_component_cost(i))) //if we fail but are producing random, try and get a different component to produce + component_to_generate = i + break + if(component_to_generate) + generate_cache_component(component_to_generate, src) + production_time = world.time + (production_cooldown * get_efficiency_mod(TRUE)) //go on cooldown + visible_message("[src] hums as it produces a [get_component_name(component_to_generate)].") + else + forced_disable(FALSE) //we shouldn't actually ever get here, as we should cancel out way before this diff --git a/code/game/gamemodes/clock_cult/clock_structures/wall_gear.dm b/code/game/gamemodes/clock_cult/clock_structures/wall_gear.dm new file mode 100644 index 0000000000..87ae60dc6d --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_structures/wall_gear.dm @@ -0,0 +1,76 @@ +//A massive gear, effectively a girder for clocks. +/obj/structure/destructible/clockwork/wall_gear + name = "massive gear" + icon_state = "wall_gear" + unanchored_icon = "wall_gear" + climbable = TRUE + max_integrity = 150 + obj_integrity = 150 + layer = BELOW_OBJ_LAYER + construction_value = 3 + desc = "A massive brass gear. You could probably secure or unsecure it with a wrench, or just climb over it." + break_message = "The gear breaks apart into shards of alloy!" + debris = list(/obj/item/clockwork/alloy_shards/large = 1, \ + /obj/item/clockwork/alloy_shards/medium = 4, \ + /obj/item/clockwork/alloy_shards/small = 2) //slightly more debris than the default, totals 26 alloy + +/obj/structure/destructible/clockwork/wall_gear/displaced + anchored = FALSE + +/obj/structure/destructible/clockwork/wall_gear/New() + ..() + PoolOrNew(/obj/effect/overlay/temp/ratvar/gear, get_turf(src)) + +/obj/structure/destructible/clockwork/wall_gear/emp_act(severity) + return + +/obj/structure/destructible/clockwork/wall_gear/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/wrench)) + default_unfasten_wrench(user, I, 10) + return 1 + else if(istype(I, /obj/item/weapon/screwdriver)) + if(anchored) + user << "[src] needs to be unsecured to disassemble it!" + else + playsound(src, I.usesound, 100, 1) + user.visible_message("[user] starts to disassemble [src].", "You start to disassemble [src]...") + if(do_after(user, 40*I.toolspeed, target = src) && !anchored) + user << "You disassemble [src]." + deconstruct(TRUE) + return 1 + else if(istype(I, /obj/item/stack/tile/brass)) + var/obj/item/stack/tile/brass/W = I + if(W.get_amount() < 1) + user << "You need one brass sheet to do this!" + return + var/turf/T = get_turf(src) + if(iswallturf(T)) + user << "There is already a wall present!" + return + if(!isfloorturf(T)) + user << "A floor must be present to build a [anchored ? "false ":""]wall!" + return + if(locate(/obj/structure/falsewall) in T.contents) + user << "There is already a false wall present!" + return + user << "You start adding [W] to [src]..." + if(do_after(user, 20, target = src)) + var/brass_floor = FALSE + if(istype(T, /turf/open/floor/clockwork)) //if the floor is already brass, costs less to make(conservation of masssssss) + brass_floor = TRUE + if(W.use(2 - brass_floor)) + if(anchored) + T.ChangeTurf(/turf/closed/wall/clockwork) + else + T.ChangeTurf(/turf/open/floor/clockwork) + new /obj/structure/falsewall/brass(T) + qdel(src) + else + user << "You need more brass to make a [anchored ? "false ":""]wall!" + return 1 + return ..() + +/obj/structure/destructible/clockwork/wall_gear/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT) && disassembled) + new /obj/item/stack/tile/brass(loc, 3) + return ..() diff --git a/code/game/gamemodes/clock_cult/clock_unsorted.dm b/code/game/gamemodes/clock_cult/clock_unsorted.dm deleted file mode 100644 index 9f8e0707f0..0000000000 --- a/code/game/gamemodes/clock_cult/clock_unsorted.dm +++ /dev/null @@ -1,178 +0,0 @@ -//sends messages via hierophant -/proc/send_hierophant_message(mob/user, message, name_span = "heavy_brass", message_span = "brass", user_title = "Servant") - if(!user || !message || !ticker || !ticker.mode) - return 0 - var/parsed_message = "[user_title ? "[user_title] ":""][findtextEx(user.name, user.real_name) ? user.name : "[user.real_name] (as [user.name])"]: \"[message]\"" - for(var/M in mob_list) - if(isobserver(M)) - var/link = FOLLOW_LINK(M, user) - M << "[link] [parsed_message]" - else if(is_servant_of_ratvar(M)) - M << parsed_message - return 1 - -//Function Call action: Calls forth a Ratvarian spear. -/datum/action/innate/function_call - name = "Function Call" - button_icon_state = "ratvarian_spear" - background_icon_state = "bg_clock" - check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUNNED|AB_CHECK_CONSCIOUS - -/datum/action/innate/function_call/IsAvailable() - if(!is_servant_of_ratvar(owner)) - return 0 - return ..() - -/datum/action/innate/function_call/Activate() - if(owner.l_hand && owner.r_hand) - usr << "You need an empty to hand to call forth your spear!" - return 0 - owner.visible_message("A strange spear materializes in [usr]'s hands!", "You call forth your spear!") - var/obj/item/clockwork/ratvarian_spear/R = new(get_turf(usr)) - owner.put_in_hands(R) - for(var/datum/action/innate/function_call/F in owner.actions) //Removes any bound Ratvarian spears - qdel(F) - return 1 - -//allows a mob to select a target to gate to -/atom/movable/proc/procure_gateway(mob/living/invoker, time_duration, gateway_uses, two_way) - var/list/possible_targets = list() - var/list/teleportnames = list() - var/list/duplicatenamecount = list() - - for(var/obj/structure/clockwork/powered/clockwork_obelisk/O in all_clockwork_objects) - if(!O.Adjacent(invoker) && O != src && (O.z <= ZLEVEL_SPACEMAX)) //don't list obelisks that we're next to - var/area/A = get_area(O) - var/locname = initial(A.name) - var/resultkey = "[locname] [O.name]" - if(resultkey in teleportnames) //why the fuck did you put two obelisks in the same area - duplicatenamecount[resultkey]++ - resultkey = "[resultkey] ([duplicatenamecount[resultkey]])" - else - teleportnames.Add(resultkey) - duplicatenamecount[resultkey] = 1 - possible_targets[resultkey] = O - - for(var/mob/living/L in living_mob_list) - if(!L.stat && is_servant_of_ratvar(L) && !L.Adjacent(invoker) && L != invoker && (L.z <= ZLEVEL_SPACEMAX)) //People right next to the invoker can't be portaled to, for obvious reasons - var/resultkey = "[L.name] ([L.real_name])" - if(resultkey in teleportnames) - duplicatenamecount[resultkey]++ - resultkey = "[resultkey] ([duplicatenamecount[resultkey]])" - else - teleportnames.Add(resultkey) - duplicatenamecount[resultkey] = 1 - possible_targets[resultkey] = L - - if(!possible_targets.len) - invoker << "There are no other eligible targets for a Spatial Gateway!" - return 0 - var/input_target_key = input(invoker, "Choose a target to form a rift to.", "Spatial Gateway") as null|anything in possible_targets - var/atom/movable/target = possible_targets[input_target_key] - if(!target || !invoker.canUseTopic(src, BE_CLOSE)) - return 0 - var/istargetobelisk = istype(target, /obj/structure/clockwork/powered/clockwork_obelisk) - if(istargetobelisk) - gateway_uses *= 2 - time_duration *= 2 - invoker.visible_message("The air in front of [invoker] ripples before suddenly tearing open!", \ - "With a word, you rip open a [two_way ? "two-way":"one-way"] rift to [input_target_key]. It will last for [time_duration / 10] seconds and has [gateway_uses] use[gateway_uses > 1 ? "s" : ""].") - var/obj/effect/clockwork/spatial_gateway/S1 = new(istype(src, /obj/structure/clockwork/powered/clockwork_obelisk) ? get_turf(src) : get_step(get_turf(invoker), invoker.dir)) - var/obj/effect/clockwork/spatial_gateway/S2 = new(istargetobelisk ? get_turf(target) : get_step(get_turf(target), target.dir)) - - //Set up the portals now that they've spawned - S1.setup_gateway(S2, time_duration, gateway_uses, two_way) - S2.visible_message("The air in front of [target] ripples before suddenly tearing open!") - return 1 - -/proc/scripture_unlock_check(scripture_tier) //check if the selected scripture tier is unlocked - var/servants = 0 - var/unconverted_ai_exists = FALSE - for(var/mob/living/M in living_mob_list) - if(is_servant_of_ratvar(M) && (ishuman(M) || issilicon(M))) - servants++ - for(var/mob/living/silicon/ai/ai in living_mob_list) - if(!is_servant_of_ratvar(ai) && ai.client) - unconverted_ai_exists = TRUE - switch(scripture_tier) - if(SCRIPTURE_DRIVER) - return 1 - if(SCRIPTURE_SCRIPT) - if(servants >= 5 && clockwork_caches) - return 1 //5 or more non-brain servants and any number of clockwork caches - if(SCRIPTURE_APPLICATION) - if(servants >= 8 && clockwork_caches >= 3 && clockwork_construction_value >= 75) - return 1 //8 or more non-brain servants, 3+ clockwork caches, and at least 75 CV - if(SCRIPTURE_REVENANT) - if(servants >= 10 && clockwork_caches >= 4 && clockwork_construction_value >= 150) - return 1 //10 or more non-brain servants, 4+ clockwork caches, and at least 150 CV - if(SCRIPTURE_JUDGEMENT) - if(servants >= 12 && clockwork_caches >= 5 && clockwork_construction_value >= 250 && !unconverted_ai_exists) - return 1 //12 or more non-brain servants, 5+ clockwork caches, at least 250 CV, and there are no living, non-servant ais - return 0 - -/proc/generate_cache_component(specific_component_id) //generates a component in the global component cache, either random based on lowest or a specific component - if(specific_component_id) - clockwork_component_cache[specific_component_id]++ - else - var/component_to_generate = get_weighted_component_id() - clockwork_component_cache[component_to_generate]++ - -/proc/get_weighted_component_id(obj/item/clockwork/slab/storage_slab) //returns a chosen component id based on the lowest amount of that component - if(storage_slab) - return pickweight(list("belligerent_eye" = max(MAX_COMPONENTS_BEFORE_RAND - LOWER_PROB_PER_COMPONENT*(clockwork_component_cache["belligerent_eye"] + storage_slab.stored_components["belligerent_eye"]), 1), \ - "vanguard_cogwheel" = max(MAX_COMPONENTS_BEFORE_RAND - LOWER_PROB_PER_COMPONENT*(clockwork_component_cache["vanguard_cogwheel"] + storage_slab.stored_components["vanguard_cogwheel"]), 1), \ - "guvax_capacitor" = max(MAX_COMPONENTS_BEFORE_RAND - LOWER_PROB_PER_COMPONENT*(clockwork_component_cache["guvax_capacitor"] + storage_slab.stored_components["guvax_capacitor"]), 1), \ - "replicant_alloy" = max(MAX_COMPONENTS_BEFORE_RAND - LOWER_PROB_PER_COMPONENT*(clockwork_component_cache["replicant_alloy"] + storage_slab.stored_components["replicant_alloy"]), 1), \ - "hierophant_ansible" = max(MAX_COMPONENTS_BEFORE_RAND - LOWER_PROB_PER_COMPONENT*(clockwork_component_cache["hierophant_ansible"] + storage_slab.stored_components["hierophant_ansible"]), 1))) - - return pickweight(list("belligerent_eye" = max(MAX_COMPONENTS_BEFORE_RAND - LOWER_PROB_PER_COMPONENT*clockwork_component_cache["belligerent_eye"], 1), \ - "vanguard_cogwheel" = max(MAX_COMPONENTS_BEFORE_RAND - LOWER_PROB_PER_COMPONENT*clockwork_component_cache["vanguard_cogwheel"], 1), \ - "guvax_capacitor" = max(MAX_COMPONENTS_BEFORE_RAND - LOWER_PROB_PER_COMPONENT*clockwork_component_cache["guvax_capacitor"], 1), \ - "replicant_alloy" = max(MAX_COMPONENTS_BEFORE_RAND - LOWER_PROB_PER_COMPONENT*clockwork_component_cache["replicant_alloy"], 1), \ - "hierophant_ansible" = max(MAX_COMPONENTS_BEFORE_RAND - LOWER_PROB_PER_COMPONENT*clockwork_component_cache["hierophant_ansible"], 1))) - -/proc/clockwork_say(atom/movable/AM, message, whisper=FALSE) - // When servants invoke ratvar's power, they speak in ways that non - // servants do not comprehend. - // Our ratvarian chants are stored in their ratvar forms - - var/list/spans = list(SPAN_ROBOT) - - var/old_languages_spoken = AM.languages_spoken - AM.languages_spoken = HUMAN //anyone who can understand HUMAN will hear weird shitty ratvar speak, otherwise it'll get starred out - if(isliving(AM)) - var/mob/living/L = AM - if(!whisper) - L.say(message, "clock", spans) - else - L.whisper(message) - else - AM.say(message) - AM.languages_spoken = old_languages_spoken - -/* - -The Ratvarian Language - - In the lore of the Servants of Ratvar, the Ratvarian tongue is a timeless language and full of power. It sounds like gibberish, much like Nar-Sie's language, but is in fact derived from -aforementioned language, and may induce miracles when spoken in the correct way with an amplifying tool (similar to runes used by the Nar-Sian cult). - - While the canon states that the language of Ratvar and his servants is incomprehensible to the unenlightened as it is a derivative of the most ancient known language, in reality it is -actually very simple. To translate a plain English sentence to Ratvar's tongue, simply move all of the letters thirteen places ahead, starting from "a" if the end of the alphabet is reached. -This cipher is known as "rot13" for "rotate 13 places" and there are many sites online that allow instant translation between English and rot13 - one of the benefits is that moving the translated -sentence thirteen places ahead changes it right back to plain English. - - There are, however, a few parts of the Ratvarian tongue that aren't typical and are implemented for fluff reasons. Some words may have apostrophes, hyphens, and spaces, making the plain -English translation apparent but disjoined (for instance, "Oru`byq zl-cbjre!" translates directly to "Beh'old my-power!") although this can be ignored without impacting overall quality. When -translating from Ratvar's tongue to plain English, simply remove the disjointments and use the finished sentence. This would make "Oru`byq zl-cbjre!" into "Behold my power!" after removing the -abnormal spacing, hyphens, and grave accents. - -List of nuances: - -- Any time the word "of" occurs, it is linked to the previous word by a hyphen. If it is the first word, nothing is done. (i.e. "V nz-bs Ratvar." directly translates to "I am-of Ratvar.") -- Although "Ratvar" translates to "Engine" in English, the word "Ratvar" is used regardless of language as it is a proper noun. - - The same rule applies to Ratvar's four generals: Nezbere (Armorer), Sevtug (Fright), Nzcrentr (Amperage), and Inath-Neq (Vangu-Ard), although these words can be used in proper context if one is - not referring to the four generals and simply using the words themselves. - -*/ diff --git a/code/game/gamemodes/clock_cult/clockwork_proselytizer.dm b/code/game/gamemodes/clock_cult/clockwork_proselytizer.dm deleted file mode 100644 index 00b27d33c1..0000000000 --- a/code/game/gamemodes/clock_cult/clockwork_proselytizer.dm +++ /dev/null @@ -1,319 +0,0 @@ - -/obj/item/clockwork/clockwork_proselytizer //Clockwork proselytizer (yes, that's a real word): Converts applicable objects to Ratvarian variants. - name = "clockwork proselytizer" - desc = "An odd, L-shaped device that hums with energy." - clockwork_desc = "A device that allows the replacing of mundane objects with Ratvarian variants. It requires liquified Replicant Alloy to function." - icon_state = "clockwork_proselytizer" - w_class = 3 - force = 5 - flags = NOBLUDGEON - var/stored_alloy = 0 //Requires this to function; each chunk of replicant alloy provides REPLICANT_ALLOY_UNIT - var/max_alloy = REPLICANT_ALLOY_UNIT * 10 - var/uses_alloy = TRUE - var/metal_to_alloy = FALSE - var/repairing = null //what we're currently repairing, if anything - -/obj/item/clockwork/clockwork_proselytizer/preloaded - stored_alloy = REPLICANT_WALL_MINUS_FLOOR+REPLICANT_WALL_TOTAL - -/obj/item/clockwork/clockwork_proselytizer/scarab - name = "scarab proselytizer" - clockwork_desc = "A cogscarab's internal proselytizer. It can only be successfully used by a cogscarab and requires liquified Replicant Alloy to function." - metal_to_alloy = TRUE - item_state = "nothing" - w_class = 1 - var/debug = FALSE - -/obj/item/clockwork/clockwork_proselytizer/scarab/proselytize(atom/target, mob/living/user) - if(!debug && !isdrone(user)) - return 0 - return ..() - -/obj/item/clockwork/clockwork_proselytizer/scarab/debug - clockwork_desc = "A cogscarab's internal proselytizer. It can convert nearly any object into a Ratvarian variant." - uses_alloy = FALSE - debug = TRUE - -/obj/item/clockwork/clockwork_proselytizer/examine(mob/living/user) - ..() - if(is_servant_of_ratvar(user) || isobserver(user)) - user << "Can be used to convert walls, floors, windows, airlocks, windoors, and grilles to clockwork variants." - user << "Can also form some objects into Replicant Alloy, as well as reform Clockwork Walls into Clockwork Floors, and vice versa." - if(metal_to_alloy) - user << "It can convert rods, metal, and plasteel to liquified replicant alloy at a low rate." - if(uses_alloy) - user << "It has [stored_alloy]/[max_alloy] units of liquified alloy stored." - user << "Use it on a Tinkerer's Cache, strike it with Replicant Alloy, or attack Replicant Alloy with it to add additional liquified alloy." - user << "Use it in-hand to remove stored liquified alloy." - -/obj/item/clockwork/clockwork_proselytizer/attack_self(mob/living/user) - if(is_servant_of_ratvar(user) && uses_alloy) - if(!can_use_alloy(REPLICANT_ALLOY_UNIT)) - user << "[src] [stored_alloy ? "Lacks enough":"Contains no"] alloy to reform[stored_alloy ? "":" any"] into solidified alloy!" - return - modify_stored_alloy(-REPLICANT_ALLOY_UNIT) - playsound(src, 'sound/items/Deconstruct.ogg', 50, 1) - new/obj/item/clockwork/component/replicant_alloy(user.loc) - user << "You force [stored_alloy ? "some":"all"] of the alloy in [src]'s compartments to reform and solidify. \ - It now contains [stored_alloy]/[max_alloy] units of liquified alloy." - -/obj/item/clockwork/clockwork_proselytizer/attackby(obj/item/I, mob/living/user, params) - if(istype(I, /obj/item/clockwork/component/replicant_alloy) && is_servant_of_ratvar(user) && uses_alloy) - if(!can_use_alloy(-REPLICANT_ALLOY_UNIT)) - user << "[src]'s replicant alloy compartments are full!" - return 0 - modify_stored_alloy(REPLICANT_ALLOY_UNIT) - playsound(user, 'sound/machines/click.ogg', 50, 1) - user << "You force [I] to liquify and pour it into [src]'s compartments. It now contains [stored_alloy]/[max_alloy] units of liquified alloy." - user.drop_item() - qdel(I) - return 1 - else - return ..() - -/obj/item/clockwork/clockwork_proselytizer/afterattack(atom/target, mob/living/user, proximity_flag, params) - if(!target || !user || !proximity_flag) - return 0 - if(!is_servant_of_ratvar(user)) - return ..() - proselytize(target, user) - -/obj/item/clockwork/clockwork_proselytizer/proc/modify_stored_alloy(amount) - if(can_use_alloy(0)) //Ratvar makes it free - amount = 0 - stored_alloy = Clamp(stored_alloy + amount, 0, max_alloy) - return 1 - -/obj/item/clockwork/clockwork_proselytizer/proc/can_use_alloy(amount) - if(ratvar_awakens || !uses_alloy) - return TRUE - if(!amount) //functions thus as a check for if ratvar is up/it doesn't use alloy if no amount is provided - return FALSE - if(stored_alloy - amount < 0) - return FALSE - if(stored_alloy - amount > max_alloy) - return FALSE - return TRUE - -/obj/item/clockwork/clockwork_proselytizer/proc/proselytize(atom/target, mob/living/user) - if(!target || !user) - return 0 - var/target_type = target.type - var/list/proselytize_values = target.proselytize_vals(user, src) //relevant values for proselytizing stuff, given as an associated list - if(proselytize_values == TRUE) //if we get true, fail, but don't send a message for whatever reason - return 0 - if(!islist(proselytize_values)) - user << "[target] cannot be proselytized!" - return 0 - if(repairing) - user << "You are currently repairing [repairing] with [src]!" - return 0 - if(!uses_alloy) - proselytize_values["alloy_cost"] = 0 - - if(!can_use_alloy(proselytize_values["alloy_cost"])) - if(stored_alloy - proselytize_values["alloy_cost"] < 0) - user << "You need [proselytize_values["alloy_cost"]] liquified alloy to proselytize [target]!" - else if(stored_alloy - proselytize_values["alloy_cost"] > max_alloy) - user << "You have too much liquified alloy stored to proselytize [target]!" - return 0 - - if(can_use_alloy(0)) //Ratvar makes it faster - proselytize_values["operation_time"] *= 0.5 - - user.visible_message("[user]'s [name] begins tearing apart [target]!", "You begin proselytizing [target]...") - playsound(target, 'sound/machines/click.ogg', 50, 1) - if(proselytize_values["operation_time"] && !do_after(user, proselytize_values["operation_time"], target = target)) - return 0 - if(!can_use_alloy(proselytize_values["alloy_cost"])) //Check again to prevent bypassing via spamclick - return 0 - if(!target || target.type != target_type) - return 0 - if(repairing) - return 0 - user.visible_message("[user]'s [name] disgorges a chunk of metal and shapes it over what's left of [target]!", \ - "You proselytize [target].") - playsound(target, 'sound/items/Deconstruct.ogg', 50, 1) - var/new_thing_type = proselytize_values["new_obj_type"] - if(isturf(target)) - var/turf/T = target - T.ChangeTurf(new_thing_type) - else - if(proselytize_values["dir_in_new"]) - new new_thing_type(get_turf(target), proselytize_values["spawn_dir"]) - else - var/atom/A = new new_thing_type(get_turf(target)) - A.setDir(proselytize_values["spawn_dir"]) - qdel(target) - modify_stored_alloy(-proselytize_values["alloy_cost"]) - return 1 - -//if a valid target, returns an associated list in this format; -//list("operation_time" = 15, "new_obj_type" = /obj/structure/window/reinforced/clockwork, "alloy_cost" = 5, "spawn_dir" = dir, "dir_in_new" = TRUE) -//otherwise, return literally any non-list thing but preferably FALSE -//returning TRUE won't produce the "cannot be proselytized" message and will still prevent proselytizing - -/atom/proc/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) - return FALSE - -/turf/closed/wall/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) - return list("operation_time" = 50, "new_obj_type" = /turf/closed/wall/clockwork, "alloy_cost" = REPLICANT_WALL_TOTAL, "spawn_dir" = SOUTH) - -/turf/closed/wall/r_wall/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) - return FALSE - -/turf/closed/wall/clockwork/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) - return list("operation_time" = 50, "new_obj_type" = /turf/open/floor/clockwork, "alloy_cost" = -REPLICANT_WALL_MINUS_FLOOR, "spawn_dir" = SOUTH) - -/turf/open/floor/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) - return list("operation_time" = 30, "new_obj_type" = /turf/open/floor/clockwork, "alloy_cost" = REPLICANT_FLOOR, "spawn_dir" = SOUTH) - -/turf/open/floor/clockwork/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) - for(var/obj/O in src) - if(O.density && !O.CanPass(user, src, 5)) - user << "Something is in the way, preventing you from proselytizing [src] into a clockwork wall." - return FALSE - return list("operation_time" = 100, "new_obj_type" = /turf/closed/wall/clockwork, "alloy_cost" = REPLICANT_WALL_MINUS_FLOOR, "spawn_dir" = SOUTH) - -/obj/item/stack/rods/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) - if(!proselytizer.metal_to_alloy) - return 0 - var/prosel_costtime = -amount - return list("operation_time" = -prosel_costtime, "new_obj_type" = /obj/effect/overlay/temp/ratvar/beam/itemconsume, "alloy_cost" = prosel_costtime, "spawn_dir" = SOUTH) - -/obj/item/stack/sheet/metal/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) - if(!proselytizer.metal_to_alloy) - return 0 - var/prosel_costtime = -amount*2 - return list("operation_time" = -prosel_costtime, "new_obj_type" = /obj/effect/overlay/temp/ratvar/beam/itemconsume, "alloy_cost" = prosel_costtime, "spawn_dir" = SOUTH) - -/obj/item/stack/sheet/plasteel/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) - if(!proselytizer.metal_to_alloy) - return 0 - var/prosel_costtime = -amount*3 - return list("operation_time" = -prosel_costtime, "new_obj_type" = /obj/effect/overlay/temp/ratvar/beam/itemconsume, "alloy_cost" = prosel_costtime, "spawn_dir" = SOUTH) - -/obj/machinery/door/airlock/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) - var/doortype = /obj/machinery/door/airlock/clockwork - if(glass) - doortype = /obj/machinery/door/airlock/clockwork/brass - return list("operation_time" = 40, "new_obj_type" = doortype, "alloy_cost" = REPLICANT_WALL_TOTAL, "spawn_dir" = dir) - -/obj/machinery/door/airlock/clockwork/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) - return FALSE - -/obj/structure/window/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) - var/windowtype = /obj/structure/window/reinforced/clockwork - var/new_dir = TRUE - var/prosel_time = 15 - var/prosel_cost = REPLICANT_FLOOR - if(fulltile) - windowtype = /obj/structure/window/reinforced/clockwork/fulltile - new_dir = FALSE - prosel_time = 30 - prosel_cost = REPLICANT_STANDARD - return list("operation_time" = prosel_time, "new_obj_type" = windowtype, "alloy_cost" = prosel_cost, "spawn_dir" = dir, "dir_in_new" = new_dir) - -/obj/structure/window/reinforced/clockwork/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) - return FALSE - -/obj/machinery/door/window/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) - return list("operation_time" = 30, "new_obj_type" = /obj/machinery/door/window/clockwork, "alloy_cost" = REPLICANT_STANDARD, "spawn_dir" = dir, "dir_in_new" = TRUE) - -/obj/machinery/door/window/clockwork/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) - return FALSE - -/obj/structure/grille/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) - var/grilletype = /obj/structure/grille/ratvar - var/prosel_time = 15 - if(destroyed) - grilletype = /obj/structure/grille/ratvar/broken - prosel_time = 5 - return list("operation_time" = prosel_time, "new_obj_type" = grilletype, "alloy_cost" = 0, "spawn_dir" = dir) - -/obj/structure/grille/ratvar/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) - return FALSE - -/obj/structure/clockwork/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) - . = TRUE - if(proselytizer.repairing) //no spamclicking for fast repairs, bucko - user << "You are already repairing [proselytizer.repairing] with [proselytizer]!" - return - if(!can_be_repaired) - user << "[src] cannot be repaired with a proselytizer!" - return - if(health == max_health) - user << "[src] is at maximum integrity!" - return - var/amount_to_heal = max_health - health - var/healing_for_cycle = min(amount_to_heal, repair_amount) - if(!proselytizer.can_use_alloy(0)) - healing_for_cycle = min(healing_for_cycle, proselytizer.stored_alloy) - var/proselytizer_cost = healing_for_cycle*2 - if(!proselytizer.can_use_alloy(proselytizer_cost)) - user << "You need more liquified alloy to repair [src]!" - return - user.visible_message("[user]'s [proselytizer.name] starts covering [src] in black liquid metal...", \ - "You start repairing [src]...") - //hugeass while because we need to re-check after the do_after - proselytizer.repairing = src - while(proselytizer && user && src && health != max_health) - amount_to_heal = max_health - health - if(!amount_to_heal) - break - healing_for_cycle = min(amount_to_heal, repair_amount) - if(!proselytizer.can_use_alloy(0)) - healing_for_cycle = min(healing_for_cycle, proselytizer.stored_alloy) - proselytizer_cost = healing_for_cycle*2 - if(!proselytizer.can_use_alloy(proselytizer_cost) || !do_after(user, proselytizer_cost, target = src) || !proselytizer || !proselytizer.can_use_alloy(proselytizer_cost)) - break - amount_to_heal = max_health - health - if(!amount_to_heal) - break - healing_for_cycle = min(amount_to_heal, repair_amount) - if(!proselytizer.can_use_alloy(0)) - healing_for_cycle = min(healing_for_cycle, proselytizer.stored_alloy) - proselytizer_cost = healing_for_cycle*2 - if(!proselytizer.can_use_alloy(proselytizer_cost)) - break - health += healing_for_cycle - proselytizer.modify_stored_alloy(-proselytizer_cost) - playsound(src, 'sound/machines/click.ogg', 50, 1) - - if(proselytizer) - proselytizer.repairing = null - if(user) - user.visible_message("[user]'s [proselytizer.name] stops covering [src] with black liquid metal.", \ - "You finish repairing [src]. It is now at [health]/[max_health] integrity.") - return - -/obj/structure/clockwork/cache/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) - . = ..() - if(proselytizer.can_use_alloy(0) || proselytizer.stored_alloy + REPLICANT_ALLOY_UNIT > proselytizer.max_alloy) - user << "[proselytizer]'s containers of liquified alloy are full!" - return - if(!clockwork_component_cache["replicant_alloy"]) - user << "There is no Replicant Alloy in the global component cache!" - return - user.visible_message("[user] places the end of [proselytizer] in the hole in [src]...", \ - "You start filling [proselytizer] with liquified alloy...") - //hugeass check because we need to re-check after the do_after - while(proselytizer && proselytizer.uses_alloy && proselytizer.stored_alloy + REPLICANT_ALLOY_UNIT <= proselytizer.max_alloy && clockwork_component_cache["replicant_alloy"] \ - && do_after(user, 10, target = src) \ - && proselytizer && proselytizer.uses_alloy && proselytizer.stored_alloy + REPLICANT_ALLOY_UNIT <= proselytizer.max_alloy && clockwork_component_cache["replicant_alloy"]) - proselytizer.modify_stored_alloy(REPLICANT_ALLOY_UNIT) - clockwork_component_cache["replicant_alloy"]-- - playsound(src, 'sound/items/Deconstruct.ogg', 50, 1) - if(proselytizer && user) - user.visible_message("[user] removes [proselytizer] from the hole in [src], apparently satisfied.", \ - "You finish filling [proselytizer] with liquified alloy. It now contains [proselytizer.stored_alloy]/[proselytizer.max_alloy] units of liquified alloy.") - return - -/obj/structure/clockwork/wall_gear/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) - return list("operation_time" = 10, "new_obj_type" = /obj/effect/overlay/temp/ratvar/beam/itemconsume, "alloy_cost" = -REPLICANT_WALL_MINUS_FLOOR, "spawn_dir" = SOUTH) - -/obj/item/clockwork/alloy_shards/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) - return list("operation_time" = 5, "new_obj_type" = /obj/effect/overlay/temp/ratvar/beam/itemconsume, "alloy_cost" = -REPLICANT_STANDARD, "spawn_dir" = SOUTH) - -/obj/item/clockwork/component/replicant_alloy/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) - return list("operation_time" = 0, "new_obj_type" = /obj/effect/overlay/temp/ratvar/beam/itemconsume, "alloy_cost" = -REPLICANT_ALLOY_UNIT, "spawn_dir" = SOUTH) diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm index fee57bedab..08bfa60769 100644 --- a/code/game/gamemodes/cult/cult.dm +++ b/code/game/gamemodes/cult/cult.dm @@ -1,11 +1,11 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 + /datum/game_mode var/list/datum/mind/cult = list() var/list/cult_objectives = list() /proc/iscultist(mob/living/M) - return istype(M) && M.mind && ticker && ticker.mode && (M.mind in ticker.mode.cult) + return istype(M) && M.has_antag_datum(/datum/antagonist/cultist, TRUE) /proc/is_sacrifice_target(datum/mind/mind) if(ticker.mode.name == "cult") @@ -14,25 +14,20 @@ return 1 return 0 -/proc/is_convertable_to_cult(datum/mind/mind) - if(!istype(mind)) +/proc/is_convertable_to_cult(mob/living/M) + if(!istype(M)) return 0 - if(istype(mind.current, /mob/living/carbon/human) && (mind.assigned_role in list("Captain", "Chaplain"))) - return 0 - if(isloyal(mind.current)) - return 0 - if(issilicon(mind.current) || isbot(mind.current) || isdrone(mind.current)) - return 0 //can't convert machines, that's ratvar's thing - if(isguardian(mind.current)) - var/mob/living/simple_animal/hostile/guardian/G = mind.current - if(!iscultist(G.summoner)) - return 0 //can't convert it unless the owner is converted - if(is_sacrifice_target(mind)) - return 0 - if(mind.enslaved_to) - return 0 - if(is_servant_of_ratvar(mind.current)) + if(M.mind) + if(ishuman(M) && (M.mind.assigned_role in list("Captain", "Chaplain"))) + return 0 + if(is_sacrifice_target(M.mind)) + return 0 + if(M.mind.enslaved_to && !iscultist(M.mind.enslaved_to)) + return 0 + else return 0 + if(M.isloyal() || issilicon(M) || isbot(M) || isdrone(M) || is_servant_of_ratvar(M)) + return 0 //can't convert machines, shielded, or ratvar's dogs return 1 /datum/game_mode/cult @@ -46,6 +41,11 @@ recommended_enemies = 4 enemy_minimum_age = 14 + announce_span = "cult" + announce_text = "Some crew members are trying to start a cult to Nar-Sie!\n\ + Cultists: Carry out Nar-Sie's will.\n\ + Crew: Prevent the cult from expanding and drive it out." + var/finished = 0 var/eldergod = 1 //for the summon god objective @@ -55,12 +55,6 @@ var/datum/mind/sacrifice_target = null//The target to be sacrificed var/list/cultists_to_cult = list() //the cultists we'll convert - -/datum/game_mode/cult/announce() - world << "The current game mode is - Cult!" - world << "Some crewmembers are attempting to start a cult!
    \nCultists - sacrifice your target and summon Nar-Sie at all costs. Convert crewmembers to your cause by using the convert rune, or sacrifice them and turn them into constructs. Remember - there is no you, there is only the cult.
    \nPersonnel - Do not let the cult succeed in its mission. Forced consumption of holy water will convert a cultist back to a Nanotrasen-sanctioned faith.
    " - - /datum/game_mode/cult/pre_setup() cult_objectives += "sacrifice" cult_objectives += "eldergod" @@ -144,9 +138,7 @@ var/list/slots = list( "backpack" = slot_in_backpack, "left pocket" = slot_l_store, - "right pocket" = slot_r_store, - "left hand" = slot_l_hand, - "right hand" = slot_r_hand, + "right pocket" = slot_r_store ) var/T = new item_path(mob) @@ -157,7 +149,6 @@ return 0 else mob << "You have a [item_name] in your [where]." - mob.update_icons() if(where == "backpack") var/obj/item/weapon/storage/B = mob.back B.orient2hud(mob) @@ -167,43 +158,21 @@ /datum/game_mode/proc/add_cultist(datum/mind/cult_mind, stun) //BASE if (!istype(cult_mind)) return 0 - if(!(cult_mind in cult) && is_convertable_to_cult(cult_mind)) + if(cult_mind.current.gain_antag_datum(/datum/antagonist/cultist)) if(stun) cult_mind.current.Paralyse(5) - cult += cult_mind - cult_mind.current.faction |= "cult" - cult_mind.current.verbs += /mob/living/proc/cult_help - var/datum/action/innate/cultcomm/C = new() - C.Grant(cult_mind.current) - update_cult_icons_added(cult_mind) - cult_mind.current.attack_log += "\[[time_stamp()]\] Has been converted to the cult!" - if(jobban_isbanned(cult_mind.current, ROLE_CULTIST)) - replace_jobbaned_player(cult_mind.current, ROLE_CULTIST, ROLE_CULTIST) - return 1 - - -/datum/game_mode/cult/add_cultist(datum/mind/cult_mind, stun) //INHERIT - if (!..(cult_mind)) - return - memorize_cult_objectives(cult_mind) - + return 1 /datum/game_mode/proc/remove_cultist(datum/mind/cult_mind, show_message = 1, stun) - if(cult_mind in cult) - cult -= cult_mind - cult_mind.current.faction -= "cult" - cult_mind.current.verbs -= /mob/living/proc/cult_help - for(var/datum/action/innate/cultcomm/C in cult_mind.current.actions) - qdel(C) + if(cult_mind.current) + var/datum/antagonist/cultist/cult_datum = cult_mind.current.has_antag_datum(/datum/antagonist/cultist, TRUE) + if(!cult_datum) + return FALSE + cult_datum.silent_update = show_message + cult_datum.on_remove() if(stun) cult_mind.current.Paralyse(5) - cult_mind.current << "An unfamiliar white light flashes through your mind, cleansing the taint of the Dark One and all your memories as its servant." - cult_mind.memory = "" - update_cult_icons_removed(cult_mind) - cult_mind.current.attack_log += "\[[time_stamp()]\] Has renounced the cult!" - if(show_message) - for(var/mob/M in viewers(cult_mind.current)) - M << "[cult_mind.current] looks like they just reverted to their old faith!" + return TRUE /datum/game_mode/proc/update_cult_icons_added(datum/mind/cult_mind) var/datum/atom_hud/antag/culthud = huds[ANTAG_HUD_CULT] @@ -214,12 +183,14 @@ var/datum/atom_hud/antag/culthud = huds[ANTAG_HUD_CULT] culthud.leave_hud(cult_mind.current) set_antag_hud(cult_mind.current, null) + /datum/game_mode/cult/proc/get_unconvertables() var/list/ucs = list() for(var/mob/living/carbon/human/player in player_list) - if(player.mind && !is_convertable_to_cult(player.mind)) + if(player.mind && !is_convertable_to_cult(player) && !(player.mind in cultists_to_cult)) ucs += player.mind return ucs + /datum/game_mode/cult/proc/check_cult_victory() var/cult_fail = 0 if(cult_objectives.Find("survive")) @@ -266,9 +237,11 @@ if(!check_survive()) explanation = "Make sure at least [acolytes_needed] acolytes escape on the shuttle. ([acolytes_survived] escaped) Success!" feedback_add_details("cult_objective","cult_survive|SUCCESS|[acolytes_needed]") + ticker.news_report = CULT_ESCAPE else explanation = "Make sure at least [acolytes_needed] acolytes escape on the shuttle. ([acolytes_survived] escaped) Fail." feedback_add_details("cult_objective","cult_survive|FAIL|[acolytes_needed]") + ticker.news_report = CULT_FAILURE if("sacrifice") if(sacrifice_target) if(sacrifice_target in sacrificed) @@ -284,9 +257,12 @@ if(!eldergod) explanation = "Summon Nar-Sie. Success!" feedback_add_details("cult_objective","cult_narsie|SUCCESS") + ticker.news_report = CULT_SUMMON else explanation = "Summon Nar-Sie. Fail." feedback_add_details("cult_objective","cult_narsie|FAIL") + ticker.news_report = CULT_FAILURE + text += "
    Objective #[obj_count]: [explanation]" world << text ..() diff --git a/code/game/gamemodes/cult/cult_comms.dm b/code/game/gamemodes/cult/cult_comms.dm index 606583e54e..13f1c4acf2 100644 --- a/code/game/gamemodes/cult/cult_comms.dm +++ b/code/game/gamemodes/cult/cult_comms.dm @@ -3,6 +3,7 @@ name = "Communion" button_icon_state = "cult_comms" background_icon_state = "bg_demon" + buttontooltipstyle = "cult" check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUNNED|AB_CHECK_CONSCIOUS /datum/action/innate/cultcomm/IsAvailable() @@ -29,9 +30,9 @@ if(!user) return if(!ishuman(user)) - user.say(message) + user.say(html_decode(message)) else - user.whisper(message) + user.whisper(html_decode(message)) var/my_message = "[(ishuman(user) ? "Acolyte" : "Construct")] [user]: [message]" for(var/mob/M in mob_list) if(iscultist(M)) diff --git a/code/game/gamemodes/cult/cult_items.dm b/code/game/gamemodes/cult/cult_items.dm index 23c87afb67..1b5668b525 100644 --- a/code/game/gamemodes/cult/cult_items.dm +++ b/code/game/gamemodes/cult/cult_items.dm @@ -5,7 +5,7 @@ item_state = "cultblade" flags = CONDUCT sharpness = IS_SHARP - w_class = 4 + w_class = WEIGHT_CLASS_BULKY force = 30 throwforce = 10 hitsound = 'sound/weapons/bladeslice.ogg' @@ -45,7 +45,7 @@ desc = "A strange dagger said to be used by sinister groups for \"preparing\" a corpse before sacrificing it to their dark gods." icon = 'icons/obj/wizard.dmi' icon_state = "render" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL force = 15 throwforce = 25 embed_chance = 75 @@ -73,7 +73,7 @@ desc = "A torn, dust-caked hood. Strange letters line the inside." flags_inv = HIDEFACE|HIDEHAIR|HIDEEARS flags_cover = HEADCOVERSEYES - armor = list(melee = 30, bullet = 10, laser = 5,energy = 5, bomb = 0, bio = 0, rad = 0) + armor = list(melee = 30, bullet = 10, laser = 5,energy = 5, bomb = 0, bio = 0, rad = 0, fire = 10, acid = 10) cold_protection = HEAD min_cold_protection_temperature = HELMET_MIN_TEMP_PROTECT heat_protection = HEAD @@ -86,7 +86,7 @@ item_state = "cultrobes" body_parts_covered = CHEST|GROIN|LEGS|ARMS allowed = list(/obj/item/weapon/tome,/obj/item/weapon/melee/cultblade) - armor = list(melee = 50, bullet = 30, laser = 50,energy = 20, bomb = 25, bio = 10, rad = 0) + armor = list(melee = 50, bullet = 30, laser = 50,energy = 20, bomb = 25, bio = 10, rad = 0, fire = 10, acid = 10) flags_inv = HIDEJUMPSUIT cold_protection = CHEST|GROIN|LEGS|ARMS min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT @@ -113,7 +113,7 @@ item_state = "magus" desc = "A helm worn by the followers of Nar-Sie." flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDEEARS|HIDEEYES - armor = list(melee = 30, bullet = 30, laser = 30,energy = 20, bomb = 0, bio = 0, rad = 0) + armor = list(melee = 30, bullet = 30, laser = 30,energy = 20, bomb = 0, bio = 0, rad = 0, fire = 10, acid = 10) flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH /obj/item/clothing/suit/magusred @@ -123,7 +123,7 @@ item_state = "magusred" body_parts_covered = CHEST|GROIN|LEGS|ARMS allowed = list(/obj/item/weapon/tome,/obj/item/weapon/melee/cultblade) - armor = list(melee = 50, bullet = 30, laser = 50,energy = 20, bomb = 25, bio = 10, rad = 0) + armor = list(melee = 50, bullet = 30, laser = 50,energy = 20, bomb = 25, bio = 10, rad = 0, fire = 10, acid = 10) flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT /obj/item/clothing/head/helmet/space/hardsuit/cult @@ -131,7 +131,7 @@ desc = "A heavily-armored helmet worn by warriors of the Nar-Sien cult. It can withstand hard vacuum." icon_state = "cult_helmet" item_state = "cult_helmet" - armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30) + armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30, fire = 40, acid = 75) brightness_on = 0 actions_types = list() @@ -140,9 +140,9 @@ icon_state = "cult_armor" item_state = "cult_armor" desc = "A heavily-armored exosuit worn by warriors of the Nar-Sien cult. It can withstand hard vacuum." - w_class = 2 + w_class = WEIGHT_CLASS_SMALL allowed = list(/obj/item/weapon/tome,/obj/item/weapon/melee/cultblade,/obj/item/weapon/tank/internals/) - armor = list(melee = 70, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30) + armor = list(melee = 70, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30, fire = 40, acid = 75) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/cult /obj/item/weapon/sharpener/cult @@ -158,8 +158,8 @@ desc = "Empowered garb which creates a powerful shield around the user." icon_state = "cult_armor" item_state = "cult_armor" - w_class = 4 - armor = list(melee = 50, bullet = 40, laser = 50,energy = 30, bomb = 50, bio = 30, rad = 30) + w_class = WEIGHT_CLASS_BULKY + armor = list(melee = 50, bullet = 40, laser = 50,energy = 30, bomb = 50, bio = 30, rad = 30, fire = 50, acid = 60) body_parts_covered = CHEST|GROIN|LEGS|ARMS allowed = list(/obj/item/weapon/tome,/obj/item/weapon/melee/cultblade) var/current_charges = 3 @@ -170,7 +170,7 @@ name = "empowered cultist armor" desc = "Empowered garb which creates a powerful shield around the user." icon_state = "cult_hoodalt" - armor = list(melee = 50, bullet = 40, laser = 50,energy = 30, bomb = 50, bio = 30, rad = 30) + armor = list(melee = 50, bullet = 40, laser = 50,energy = 30, bomb = 50, bio = 30, rad = 30, fire = 50, acid = 50) body_parts_covered = HEAD flags = NODROP flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS @@ -185,7 +185,7 @@ user.Dizzy(30) user.Weaken(5) else - user << "\"Putting on things you don't own is bad, you know.\"" + user << "\"Trying to use things you don't own is bad, you know.\"" user << "The armor squeezes at your body!" user.emote("scream") user.adjustBruteLoss(25) @@ -215,7 +215,7 @@ flags_inv = HIDEJUMPSUIT allowed = list(/obj/item/weapon/tome,/obj/item/weapon/melee/cultblade) body_parts_covered = CHEST|GROIN|LEGS|ARMS - armor = list(melee = -100, bullet = -100, laser = -100,energy = -100, bomb = -100, bio = -100, rad = -100) + armor = list(melee = -50, bullet = -50, laser = -100,energy = -50, bomb = -50, bio = -50, rad = -50, fire = 0, acid = 0) slowdown = -1 hooded = 1 hoodtype = /obj/item/clothing/head/berserkerhood @@ -227,7 +227,7 @@ body_parts_covered = HEAD flags = NODROP flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS - armor = list(melee = -100, bullet = -100, laser = -100,energy = -100, bomb = -100, bio = -100, rad = -100) + armor = list(melee = -50, bullet = -50, laser = -50, energy = -50, bomb = -50, bio = -50, rad = -50, fire = 0, acid = 0) /obj/item/clothing/suit/hooded/cultrobes/berserker/equipped(mob/living/user, slot) ..() @@ -239,7 +239,7 @@ user.Dizzy(30) user.Weaken(5) else - user << "\"Putting on things you don't own is bad, you know.\"" + user << "\"Trying to use things you don't own is bad, you know.\"" user << "The robes squeeze at your body!" user.emote("scream") user.adjustBruteLoss(25) @@ -286,7 +286,7 @@ user << "We have exhausted our ability to curse the shuttle." return if(SSshuttle.emergency.mode == SHUTTLE_CALL) - var/cursetime = 1500 + var/cursetime = 1800 var/timer = SSshuttle.emergency.timeLeft(1) + cursetime SSshuttle.emergency.setTimer(timer) user << "You shatter the orb! A dark essence spirals into the air, then disappears." @@ -295,12 +295,12 @@ sleep(20) var/global/list/curses if(!curses) - curses = list("A fuel technician just slit his own throat and begged for death. The shuttle will be delayed by two minutes.", - "The shuttle's navigation programming was replaced by a file containing two words, IT COMES. The shuttle will be delayed by two minutes.", - "The shuttle's custodian tore out his guts and began painting strange shapes on the floor. The shuttle will be delayed by two minutes.", - "A shuttle engineer began screaming 'DEATH IS NOT THE END' and ripped out wires until an arc flash seared off her flesh. The shuttle will be delayed by two minutes.", - "A shuttle inspector started laughing madly over the radio and then threw herself into an engine turbine. The shuttle will be delayed by two minutes.", - "The shuttle dispatcher was found dead with bloody symbols carved into their flesh. The shuttle will be delayed by two minutes.") + curses = list("A fuel technician just slit his own throat and begged for death. The shuttle will be delayed by three minutes.", + "The shuttle's navigation programming was replaced by a file containing two words, IT COMES. The shuttle will be delayed by three minutes.", + "The shuttle's custodian tore out his guts and began painting strange shapes on the floor. The shuttle will be delayed by three minutes.", + "A shuttle engineer began screaming 'DEATH IS NOT THE END' and ripped out wires until an arc flash seared off her flesh. The shuttle will be delayed by three minutes.", + "A shuttle inspector started laughing madly over the radio and then threw herself into an engine turbine. The shuttle will be delayed by three minutes.", + "The shuttle dispatcher was found dead with bloody symbols carved into their flesh. The shuttle will be delayed by three minutes.") var/message = pick_n_take(curses) priority_announce("[message]", "System Failure", 'sound/misc/notice1.ogg') curselimit++ @@ -310,7 +310,7 @@ desc = "This relic teleports you forward a medium distance." icon = 'icons/obj/cult.dmi' icon_state ="shifter" - var/uses = 2 + var/uses = 4 /obj/item/device/cult_shift/examine(mob/user) ..() @@ -333,7 +333,7 @@ if(!iscultist(user)) user.unEquip(src, 1) step(src, pick(alldirs)) - user << "\The [src] flickers out of your hands, too eager to move!" + user << "\The [src] flickers out of your hands, your connection to this dimension is too strong!" return var/mob/living/carbon/C = user @@ -345,16 +345,67 @@ if(uses <= 0) icon_state ="shifter_drained" playsound(mobloc, "sparks", 50, 1) - PoolOrNew(/obj/effect/overlay/temp/cult/phase/out, list(mobloc, C.dir)) + PoolOrNew(/obj/effect/overlay/temp/dir_setting/cult/phase/out, list(mobloc, C.dir)) var/atom/movable/pulled = handle_teleport_grab(destination, C) C.forceMove(destination) if(pulled) C.start_pulling(pulled) //forcemove resets pulls, so we need to re-pull - PoolOrNew(/obj/effect/overlay/temp/cult/phase, list(destination, C.dir)) + PoolOrNew(/obj/effect/overlay/temp/dir_setting/cult/phase, list(destination, C.dir)) playsound(destination, 'sound/effects/phasein.ogg', 25, 1) playsound(destination, "sparks", 50, 1) else C << "The veil cannot be torn here!" + +/obj/item/device/flashlight/flare/culttorch + name = "void torch" + desc = "Used by veteran cultists to instantly transport items to their needful bretheren." + w_class = WEIGHT_CLASS_SMALL + brightness_on = 1 + icon_state = "torch-on" + item_state = "torch-on" + color = "#ff0000" + on_damage = 15 + slot_flags = null + on = 1 + var/charges = 3 + +/obj/item/device/flashlight/flare/culttorch/afterattack(atom/movable/A, mob/user, proximity) + if(!proximity) + return + + if(istype(A, /obj/item)) + + var/list/cultists = list() + for(var/datum/mind/M in ticker.mode.cult) + if(!(user) && M.current && M.current.stat != DEAD) + cultists |= M.current + var/mob/living/cultist_to_receive = input(user, "Who do you wish to call to [src]?", "Followers of the Geometer") as null|anything in cultists + if(!Adjacent(user) || !src || qdeleted(src) || user.incapacitated()) + return + if(!cultist_to_receive) + user << "You require a destination!" + log_game("Void torch failed - no target") + return + if(cultist_to_receive.stat == DEAD) + user << "[cultist_to_receive] has died!" + log_game("Void torch failed - target died") + return + if(!iscultist(cultist_to_receive)) + user << "[cultist_to_receive] is not a follower of the Geometer!" + log_game("Void torch failed - target was deconverted") + return + user << "You ignite [A] with \the [src], turning it to ash, but through the torch's flames you see that [A] has reached [cultist_to_receive]!" + user << "\The [src] now has [charges] charge\s." + cultist_to_receive.put_in_hands(A) + charges-- + if(charges == 0) + qdel(src) + + else + ..() + user << "\The [src] can only transport items!" + return + diff --git a/code/game/gamemodes/cult/cult_structures.dm b/code/game/gamemodes/cult/cult_structures.dm index 81cdbfd149..536d2c8c57 100644 --- a/code/game/gamemodes/cult/cult_structures.dm +++ b/code/game/gamemodes/cult/cult_structures.dm @@ -1,18 +1,36 @@ -/obj/structure/cult +/obj/structure/destructible/cult density = 1 anchored = 1 icon = 'icons/obj/cult.dmi' var/cooldowntime = 0 - var/health = 100 - var/maxhealth = 100 + break_sound = 'sound/hallucinations/veryfar_noise.ogg' + debris = list(/obj/item/stack/sheet/runed_metal = 1) -/obj/structure/cult/examine(mob/user) +/obj/structure/destructible/cult/examine(mob/user) ..() + var/can_see_cult = iscultist(user) || isobserver(user) + var/t_It = p_they(TRUE) + var/t_is = p_are() + if(!(resistance_flags & INDESTRUCTIBLE)) + if(can_see_cult) + user << "[t_It] [t_is] at [round(obj_integrity * 100 / max_integrity)]% stability." user << "\The [src] is [anchored ? "":"not "]secured to the floor." - if(iscultist(user) && cooldowntime > world.time) - user << "The magic in [src] is weak, it will be ready to use again in [getETA()]." + if(can_see_cult && cooldowntime > world.time) + user << "The magic in [src] is too weak, [t_It] will be ready to use again in [getETA()]." -/obj/structure/cult/attackby(obj/I, mob/user, params) +/obj/structure/destructible/cult/attack_animal(mob/living/simple_animal/M) + if(istype(M, /mob/living/simple_animal/hostile/construct/builder)) + if(obj_integrity < max_integrity) + obj_integrity = min(max_integrity, obj_integrity + 5) + Beam(M, icon_state="sendbeam", time=4) + M.visible_message("[M] repairs \the [src].", \ + "You repair [src], leaving [p_they()] at [round(obj_integrity * 100 / max_integrity)]% stability.") + else + M << "You cannot repair [src], as [p_they()] [p_are()] undamaged!" + else + ..() + +/obj/structure/destructible/cult/attackby(obj/I, mob/user, params) if(istype(I, /obj/item/weapon/tome) && iscultist(user)) anchored = !anchored user << "You [anchored ? "":"un"]secure \the [src] [anchored ? "to":"from"] the floor." @@ -23,7 +41,14 @@ else return ..() -/obj/structure/cult/proc/getETA() +/obj/structure/destructible/cult/ratvar_act() + if(take_damage(rand(25, 50), BURN) && src) //if we still exist + var/previouscolor = color + color = "#FAE48C" + animate(src, color = previouscolor, time = 8) + addtimer(src, "update_atom_colour", 8) + +/obj/structure/destructible/cult/proc/getETA() var/time = (cooldowntime - world.time)/600 var/eta = "[round(time, 1)] minutes" if(time <= 1) @@ -31,12 +56,13 @@ eta = "[round(time, 1)] seconds" return eta -/obj/structure/cult/talisman +/obj/structure/destructible/cult/talisman name = "altar" desc = "A bloodstained altar dedicated to Nar-Sie." icon_state = "talismanaltar" + break_message = "The altar shatters, leaving only the wailing of the damned!" -/obj/structure/cult/talisman/attack_hand(mob/living/user) +/obj/structure/destructible/cult/talisman/attack_hand(mob/living/user) if(!iscultist(user)) user << "You're pretty sure you know exactly what this is used for and you can't seem to touch it." return @@ -61,13 +87,14 @@ user << "You kneel before the altar and your faith is rewarded with an [N]!" -/obj/structure/cult/forge +/obj/structure/destructible/cult/forge name = "daemon forge" desc = "A forge used in crafting the unholy weapons used by the armies of Nar-Sie." icon_state = "forge" luminosity = 3 + break_message = "The force breaks apart into shards with a howling scream!" -/obj/structure/cult/forge/attack_hand(mob/living/user) +/obj/structure/destructible/cult/forge/attack_hand(mob/living/user) if(!iscultist(user)) user << "The heat radiating from [src] pushes you back." return @@ -99,25 +126,27 @@ var/list/blacklisted_pylon_turfs = typecacheof(list( /turf/open/floor/plating/lava, /turf/open/chasm)) -/obj/structure/cult/pylon +/obj/structure/destructible/cult/pylon name = "pylon" desc = "A floating crystal that slowly heals those faithful to Nar'Sie." icon_state = "pylon" luminosity = 5 + break_sound = 'sound/effects/Glassbr2.ogg' + break_message = "The blood-red crystal falls to the floor and shatters!" var/heal_delay = 25 var/last_heal = 0 var/corrupt_delay = 50 var/last_corrupt = 0 -/obj/structure/cult/pylon/New() +/obj/structure/destructible/cult/pylon/New() START_PROCESSING(SSfastprocess, src) ..() -/obj/structure/cult/pylon/Destroy() +/obj/structure/destructible/cult/pylon/Destroy() STOP_PROCESSING(SSfastprocess, src) return ..() -/obj/structure/cult/pylon/process() +/obj/structure/destructible/cult/pylon/process() if(!anchored) return if(last_heal <= world.time) @@ -155,19 +184,20 @@ var/list/blacklisted_pylon_turfs = typecacheof(list( else var/turf/open/floor/engine/cult/F = safepick(cultturfs) if(F) - PoolOrNew(/obj/effect/overlay/temp/cult/turf/open/floor, F) + PoolOrNew(/obj/effect/overlay/temp/cult/turf/floor, F) else // Are we in space or something? No cult turfs or // convertable turfs? last_corrupt = world.time + corrupt_delay*2 -/obj/structure/cult/tome +/obj/structure/destructible/cult/tome name = "archives" desc = "A desk covered in arcane manuscripts and tomes in unknown languages. Looking at the text makes your skin crawl." icon_state = "tomealtar" luminosity = 1 + break_message = "The books and tomes of the archives burn into ash as the desk shatters!" -/obj/structure/cult/tome/attack_hand(mob/living/user) +/obj/structure/destructible/cult/tome/attack_hand(mob/living/user) if(!iscultist(user)) user << "All of these books seem to be gibberish." return @@ -177,19 +207,21 @@ var/list/blacklisted_pylon_turfs = typecacheof(list( if(cooldowntime > world.time) user << "The magic in [src] is weak, it will be ready to use again in [getETA()]." return - var/choice = alert(user,"You flip through the black pages of the archives...",,"Supply Talisman","Shuttle Curse","Veil Shifter") - var/pickedtype + var/choice = alert(user,"You flip through the black pages of the archives...",,"Supply Talisman","Shuttle Curse","Veil Walker Set") + var/list/pickedtype = list() switch(choice) if("Supply Talisman") - pickedtype = /obj/item/weapon/paper/talisman/supply/weak + pickedtype += /obj/item/weapon/paper/talisman/supply/weak if("Shuttle Curse") - pickedtype = /obj/item/device/shuttle_curse - if("Veil Shifter") - pickedtype = /obj/item/device/cult_shift - if(src && !qdeleted(src) && anchored && pickedtype && Adjacent(user) && !user.incapacitated() && iscultist(user) && cooldowntime <= world.time) + pickedtype += /obj/item/device/shuttle_curse + if("Veil Walker Set") + pickedtype += /obj/item/device/cult_shift + pickedtype += /obj/item/device/flashlight/flare/culttorch + if(src && !qdeleted(src) && anchored && pickedtype.len && Adjacent(user) && !user.incapacitated() && iscultist(user) && cooldowntime <= world.time) cooldowntime = world.time + 2400 - var/obj/item/N = new pickedtype(get_turf(src)) - user << "You summon [N] from the archives!" + for(var/N in pickedtype) + var/obj/item/D = new N(get_turf(src)) + user << "You summon [D] from the archives!" /obj/effect/gateway name = "gateway" @@ -197,5 +229,4 @@ var/list/blacklisted_pylon_turfs = typecacheof(list( icon = 'icons/obj/cult.dmi' icon_state = "hole" density = 1 - unacidable = 1 anchored = 1 diff --git a/code/game/gamemodes/cult/ritual.dm b/code/game/gamemodes/cult/ritual.dm index 651eab6405..dc840593d7 100644 --- a/code/game/gamemodes/cult/ritual.dm +++ b/code/game/gamemodes/cult/ritual.dm @@ -11,7 +11,7 @@ This file contains the arcane tome files. icon_state ="tome" throw_speed = 2 throw_range = 5 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL /obj/item/weapon/tome/examine(mob/user) ..() @@ -34,7 +34,7 @@ This file contains the arcane tome files. M.reagents.add_reagent("unholywater",holy2unholy) add_logs(user, M, "smacked", src, " removing the holy water from them") return - M.take_organ_damage(0, 15) //Used to be a random between 5 and 20 + M.take_bodypart_damage(0, 15) //Used to be a random between 5 and 20 playsound(M, 'sound/weapons/sear.ogg', 50, 1) M.visible_message("[user] strikes [M] with the arcane tome!", \ "[user] strikes you with the tome, searing your flesh!") @@ -67,20 +67,15 @@ This file contains the arcane tome files. invoking it and choosing which talisman you desire, the paper will be converted, after some delay into a talisman.

    " text += "Teleport
    This rune is unique in that it requires a keyword before the scribing can begin. When invoked, it will find any other Teleport runes; \ - If any are found, the user can choose which rune to send to. Upon activation, the rune teleports everything above it to the selected rune.

    " + If any are found, the user can choose which rune to send to. Upon activation, the rune teleports everything above it to the selected rune, provided the selected rune is unblocked.

    " - text += "Convert
    This rune is critical to the success of the cult. It will allow you to convert normal crew members into cultists. \ - To do this, simply place the crew member upon the rune and invoke it. This rune requires two invokers to use. If the target to be converted is mindshield-implanted or a certain assignment, they will \ - be unable to be converted. People the Geometer wishes sacrificed will also be ineligible for conversion, and anyone with a shielding presence like the null rod will not be converted.
    \ - Successful conversions will produce a tome for the new cultist.

    " + text += "Offer
    This rune is necessary to achieve your goals. Placing a noncultist above it will convert them if it can and sacrifice them otherwise. \ + It requires two invokers to convert a target and three to sacrifice a living target or the sacrifice target.
    \ + Successful conversions will produce a tome for the new cultist, in addition to healing them.
    \ + Successful sacrifices will please the Geometer, can complete your objective if it sacrificed the sacrifice target, and will attempt to place the target into a soulstone.

    " - text += "Sacrifice
    This rune is necessary to achieve your goals. Simply place any dead creature upon the rune and invoke it (this will not \ - target cultists!). If this creature has a mind, a soulstone will be created and the creature's soul transported to it. Sacrificing the dead can be done alone, but sacrificing living crew or your cult's target will require 3 cultists. \ - Soulstones used on construct shells will move that soul into a powerful construct of your choice.

    " - - text += "Raise Dead
    This rune requires two corpses. To perform the ritual, place the corpse you wish to revive onto \ - the rune and the offering body adjacent to it. When the rune is invoked, the body to be sacrificed will turn to dust, the life force flowing into the revival target. Assuming the target is not moved \ - within a few seconds, they will be brought back to life, healed of all ailments.

    " + text += "Raise Dead
    This rune requires the corpse of a cultist placed upon the rune, and one person sacrificed for each revival you wish to do.\ + Provided there are remaining revivals from those sacrificed, invoking the rune will revive the cultist placed upon it.

    " text += "Electromagnetic Disruption
    Robotic lifeforms have time and time again been the downfall of fledgling cults. This rune may allow you to gain the upper \ hand against these pests. By using the rune, a large electromagnetic pulse will be emitted from the rune's location. The size of the EMP will grow significantly for each additional adjacent cultist when the \ @@ -91,16 +86,18 @@ This file contains the arcane tome files. The body will also take constant damage while in this form, and may even die. The user's spirit will contain their consciousness, and will allow them to freely wander the station as a ghost. This may \ also be used to commune with the dead.

    " - text += "Form Barrier
    While simple, this rune serves an important purpose in defense and hindering passage. When invoked, the \ - rune will draw a small amount of life force from the user and make the space above the rune completely dense, rendering it impassable to all but the most complex means. The rune may be invoked again to \ - undo this effect and allow passage again.

    " + text += "Form Barrier
    While simple, this rune serves an important purpose in defense and hindering passage. When invoked, the rune will draw a small amount of blood from the user \ + and make the space above the rune completely dense, rendering it impassable for about a minute and a half. This effect will spread to other nearby Barrier Runes. \ + The rune may be invoked again to undo this effect and allow passage again.

    " text += "Summon Cultist
    This rune allows the cult to free other cultists with ease. When invoked, it will allow the user to summon a single cultist to the rune from \ any location. It requires two invokers, and will damage each invoker slightly.

    " - text += "Blood Boil
    When invoked, this rune will do a massive amount of damage to all non-cultist viewers, but it will also emit a small explosion upon invocation. \ + text += "Blood Boil
    When invoked, this rune will rapidly do a massive amount of damage to all non-cultist viewers, but it will also emit a burst of flame once it finishes. \ It requires three invokers.

    " + text += "Drain Life
    This rune will drain the life of every living creature above the rune, healing the invoker for each creature drained by it.

    " + text += "Manifest Spirit
    This rune allows you to summon spirits as humanoid fighters. When invoked, a spirit above the rune will be brought to life as a human, wearing nothing, that seeks only to serve you and the Geometer. \ However, the spirit's link to reality is fragile - you must remain on top of the rune, and you will slowly take damage. Upon stepping off the rune, all summoned spirits will dissipate, dropping their items to the ground. You may manifest \ multiple spirits with one rune, but you will rapidly take damage in doing so.

    " @@ -111,7 +108,7 @@ This file contains the arcane tome files. text += "Talisman of Teleportation
    The talisman form of the Teleport rune will transport the invoker to a selected Teleport rune once.

    " - text += "Talisman of Construction
    This talisman is the main way of creating construct shells. To use it, one must strike 30 sheets of metal with the talisman. The sheets will then be twisted into a construct shell, ready to recieve a soul to occupy it.

    " + text += "Talisman of Construction
    This talisman is the main way of creating construct shells. To use it, one must strike 25 sheets of metal with the talisman. The sheets will then be twisted into a construct shell, ready to recieve a soul to occupy it.

    " text += "Talisman of Tome Summoning
    This talisman will produce a single tome at your feet.

    " @@ -174,15 +171,8 @@ This file contains the arcane tome files. var/list/shields = list() var/area/A = get_area(src) - if(locate(/obj/effect/rune) in Turf) - user << "There is already a rune here." + if(!check_rune_turf(Turf, user)) return - - if(Turf.z != ZLEVEL_STATION && Turf.z != ZLEVEL_MINING) - user << "The veil is not weak enough here." - return - if(istype(A, /area/shuttle)) - user << "Interference from hyperspace engines disrupts the Geometer's power on shuttles." for(var/T in subtypesof(/obj/effect/rune) - /obj/effect/rune/malformed) var/obj/effect/rune/R = T if(initial(R.cultist_name)) @@ -190,10 +180,7 @@ This file contains the arcane tome files. if(!possible_runes.len) return entered_rune_name = input(user, "Choose a rite to scribe.", "Sigils of Power") as null|anything in possible_runes - if(!Adjacent(user) || !src || qdeleted(src) || user.incapacitated()) - return - if(istype(Turf, /turf/open/space)) - user << "You cannot scribe runes in space!" + if(!src || qdeleted(src) || !Adjacent(user) || user.incapacitated() || !check_rune_turf(Turf, user)) return for(var/T in typesof(/obj/effect/rune)) var/obj/effect/rune/R = T @@ -208,10 +195,7 @@ This file contains the arcane tome files. if(!rune_to_scribe) return Turf = get_turf(user) //we may have moved. adjust as needed... - if(locate(/obj/effect/rune) in Turf) - user << "There is already a rune here." - return - if(!Adjacent(user) || !src || qdeleted(src) || user.incapacitated()) + if(!src || qdeleted(src) || !Adjacent(user) || user.incapacitated() || !check_rune_turf(Turf, user)) return if(ispath(rune_to_scribe, /obj/effect/rune/narsie)) if(ticker.mode.name == "cult") @@ -237,32 +221,50 @@ This file contains the arcane tome files. priority_announce("Figments from an eldritch god are being summoned by [user] into [locname] from an unknown dimension. Disrupt the ritual at all costs!","Central Command Higher Dimensionsal Affairs", 'sound/AI/spanomalies.ogg') for(var/B in spiral_range_turfs(1, user, 1)) var/turf/T = B - var/obj/machinery/shield/N = new(T) - N.name = "sanguine barrier" - N.desc = "A potent shield summoned by cultists to defend their rites." - N.icon_state = "shield-red" - N.health = 60 + var/obj/structure/emergency_shield/sanguine/N = new(T) shields |= N else user << "Nar-Sie does not wish to be summoned!" return - user.visible_message("[user] cuts open their arm and begins writing in their own blood!", \ - "You slice open your arm and begin drawing a sigil of the Geometer.") - user.apply_damage(initial(rune_to_scribe.scribe_damage), BRUTE, pick("l_arm", "r_arm")) + user.visible_message("[user] [user.blood_volume ? "cuts open their arm and begins writing in their own blood":"begins sketching out a strange design"]!", \ + "You [user.blood_volume ? "slice open your arm and ":""]begin drawing a sigil of the Geometer.") + if(user.blood_volume) + user.apply_damage(initial(rune_to_scribe.scribe_damage), BRUTE, pick("l_arm", "r_arm")) if(!do_after(user, initial(rune_to_scribe.scribe_delay), target = get_turf(user))) for(var/V in shields) - var/obj/machinery/shield/S = V + var/obj/structure/emergency_shield/sanguine/S = V if(S && !qdeleted(S)) qdel(S) return - if(locate(/obj/effect/rune) in Turf) - user << "There is already a rune here." + if(!check_rune_turf(Turf, user)) return - user.visible_message("[user] creates a strange circle in their own blood.", \ + user.visible_message("[user] creates a strange circle[user.blood_volume ? " in their own blood":""].", \ "You finish drawing the arcane markings of the Geometer.") for(var/V in shields) - var/obj/machinery/shield/S = V + var/obj/structure/emergency_shield/S = V if(S && !qdeleted(S)) qdel(S) - new rune_to_scribe(Turf, chosen_keyword) - user << "The [lowertext(initial(rune_to_scribe.cultist_name))] rune [initial(rune_to_scribe.cultist_desc)]" + var/obj/effect/rune/R = new rune_to_scribe(Turf, chosen_keyword) + user << "The [lowertext(R.cultist_name)] rune [R.cultist_desc]" + feedback_add_details("cult_runes_scribed", R.cultist_name) + +/obj/item/weapon/tome/proc/check_rune_turf(turf/T, mob/user) + var/area/A = get_area(T) + + if(isspaceturf(T)) + user << "You cannot scribe runes in space!" + return FALSE + + if(locate(/obj/effect/rune) in T) + user << "There is already a rune here." + return FALSE + + if(T.z != ZLEVEL_STATION && T.z != ZLEVEL_MINING) + user << "The veil is not weak enough here." + return FALSE + + if(istype(A, /area/shuttle)) + user << "Interference from hyperspace engines disrupts the Geometer's power on shuttles." + return FALSE + + return TRUE diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm index 38ed454efa..fe66ba63ce 100644 --- a/code/game/gamemodes/cult/runes.dm +++ b/code/game/gamemodes/cult/runes.dm @@ -1,4 +1,4 @@ -/var/list/sacrificed = list() +/var/list/sacrificed = list() //a mixed list of minds and mobs var/list/non_revealed_runes = (subtypesof(/obj/effect/rune) - /obj/effect/rune/malformed) /* @@ -21,12 +21,13 @@ To draw a rune, use an arcane tome. anchored = 1 icon = 'icons/obj/rune.dmi' icon_state = "1" - unacidable = 1 + resistance_flags = FIRE_PROOF | UNACIDABLE | ACID_PROOF layer = ABOVE_NORMAL_TURF_LAYER - color = rgb(255,0,0) + color = "#FF0000" var/invocation = "Aiy ele-mayo!" //This is said by cultists when the rune is invoked. var/req_cultists = 1 //The amount of cultists required around the rune to invoke it. If only 1, any cultist can invoke it. + var/req_cultists_text //if we have a description override for required cultists to invoke var/rune_in_use = 0 // Used for some runes, this is for when you want a rune to not be usable when in use. var/scribe_delay = 50 //how long the rune takes to create @@ -48,7 +49,7 @@ To draw a rune, use an arcane tome. if(iscultist(user) || user.stat == DEAD) //If they're a cultist or a ghost, tell them the effects user << "Name: [cultist_name]" user << "Effects: [capitalize(cultist_desc)]" - user << "Required Acolytes: [req_cultists]" + user << "Required Acolytes: [req_cultists_text ? "[req_cultists_text]":"[req_cultists]"]" if(req_keyword && keyword) user << "Keyword: [keyword]" @@ -137,6 +138,9 @@ structure_check() searches for nearby cultist structures required for the invoca for(var/M in invokers) var/mob/living/L = M L.say(invocation) + do_invoke_glow() + +/obj/effect/rune/proc/do_invoke_glow() var/oldtransform = transform spawn(0) //animate is a delay, we want to avoid being delayed animate(src, transform = matrix()*2, alpha = 0, time = 5) //fade out @@ -147,8 +151,10 @@ structure_check() searches for nearby cultist structures required for the invoca visible_message("The markings pulse with a \ small flash of red light, then fall dark.") spawn(0) //animate is a delay, we want to avoid being delayed - animate(src, color = rgb(255, 0, 0), time = 0) - animate(src, color = initial(color), time = 5) + var/oldcolor = color + color = rgb(255, 0, 0) + animate(src, color = oldcolor, time = 5) + addtimer(src, "update_atom_colour", 5) //Malformed Rune: This forms if a rune is not drawn correctly. Invoking it does nothing but hurt the user. /obj/effect/rune/malformed @@ -158,7 +164,7 @@ structure_check() searches for nearby cultist structures required for the invoca /obj/effect/rune/malformed/New() ..() - icon_state = "[rand(1,6)]" + icon_state = "[rand(1,7)]" color = rgb(rand(0,255), rand(0,255), rand(0,255)) /obj/effect/rune/malformed/invoke(var/list/invokers) @@ -175,13 +181,19 @@ structure_check() searches for nearby cultist structures required for the invoca return N return 0 +/mob/proc/bible_check() //The bible, if held, might protect against certain things + var/obj/item/weapon/storage/book/bible/B = locate() in src + if(is_holding(B)) + return B + return 0 + //Rite of Binding: A paper on top of the rune to a talisman. /obj/effect/rune/imbue cultist_name = "Create Talisman" cultist_desc = "transforms paper into powerful magic talismans." invocation = "H'drak v'loso, mir'kanas verbot!" icon_state = "3" - color = rgb(0, 0, 255) + color = "#0000FF" /obj/effect/rune/imbue/invoke(var/list/invokers) var/mob/living/user = invokers[1] //the first invoker is always the user @@ -290,6 +302,11 @@ var/list/teleport_runes = list() return var/turf/T = get_turf(src) + var/turf/target = get_turf(actual_selected_rune) + if(is_blocked_turf(target)) + user << "The target rune is blocked. Attempting to teleport to it would be massively unwise." + fail_invoke() + return var/movedsomething = 0 var/moveuserlater = 0 for(var/atom/movable/A in T) @@ -299,158 +316,136 @@ var/list/teleport_runes = list() continue if(!A.anchored) movedsomething = 1 - A.forceMove(get_turf(actual_selected_rune)) + A.forceMove(target) if(movedsomething) ..() visible_message("There is a sharp crack of inrushing air, and everything above the rune disappears!") user << "You[moveuserlater ? "r vision blurs, and you suddenly appear somewhere else":" send everything above the rune away"]." if(moveuserlater) - user.forceMove(get_turf(actual_selected_rune)) + user.forceMove(target) else fail_invoke() -//Rite of Enlightenment: Converts a normal crewmember to the cult. +//Rite of Offering: Converts or sacrifices a target. /obj/effect/rune/convert - cultist_name = "Convert" - cultist_desc = "converts a normal crewmember on top of it to the cult. Does not work on mindshield-implanted crew." + cultist_name = "Offer" + cultist_desc = "offers a noncultist above it to Nar-Sie, either converting them or sacrificing them." + req_cultists_text = "2 for conversion, 3 for living sacrifices and sacrifice targets." invocation = "Mah'weyh pleggh at e'ntrath!" icon_state = "3" - color = rgb(200, 0, 0) - req_cultists = 2 + color = "#FFFFFF" + req_cultists = 1 + allow_excess_invokers = 1 + rune_in_use = FALSE + +/obj/effect/rune/convert/do_invoke_glow() + return /obj/effect/rune/convert/invoke(var/list/invokers) - var/list/convertees = list() - var/turf/T = get_turf(src) - for(var/mob/living/M in T) - if(M.stat != DEAD && !iscultist(M) && is_convertable_to_cult(M.mind)) - convertees |= M - else if(is_sacrifice_target(M.mind)) - for(var/C in invokers) - C << "\"I desire this one for myself. SACRIFICE THEM!\"" - else if(is_servant_of_ratvar(M)) - M.visible_message("[M]'s eyes glow a defiant yellow!", \ - "\"Stop resisting. You will be mi-\" \"Give up and you will feel pain unlike anything you've ever felt!\"") - M.Weaken(4) - if(!convertees.len) - fail_invoke() - log_game("Convert rune failed - no eligible convertees") - return - var/mob/living/new_cultist = pick(convertees) - if(new_cultist.null_rod_check()) - for(var/M in invokers) - M << "Something is shielding [new_cultist]'s mind!" - fail_invoke() - log_game("Convert rune failed - convertee had null rod") - return - ..() - new_cultist.visible_message("[new_cultist] writhes in pain as the markings below them glow a bloody red!", \ - "AAAAAAAAAAAAAA-") - ticker.mode.add_cultist(new_cultist.mind, 1) - new /obj/item/weapon/tome(get_turf(src)) - new_cultist.mind.special_role = "Cultist" - new_cultist << "Your blood pulses. Your head throbs. The world goes red. All at once you are aware of a horrible, horrible, truth. The veil of reality has been ripped away \ - and something evil takes root." - new_cultist << "Assist your new compatriots in their dark dealings. Your goal is theirs, and theirs is yours. You serve the Geometer above all else. Bring it back.\ - " - -//Rite of Tribute: Sacrifices a crew member to Nar-Sie. Places them into a soul shard if they're in their body. -/obj/effect/rune/sacrifice - cultist_name = "Sacrifice" - cultist_desc = "sacrifices a crew member to the Geometer. May place them into a soul shard if their spirit remains in their body." - icon_state = "3" - allow_excess_invokers = 1 - invocation = "Barhah hra zar'garis!" - color = rgb(255, 255, 255) - rune_in_use = 0 - -/obj/effect/rune/sacrifice/New() - ..() - icon_state = "[rand(1,6)]" - -/obj/effect/rune/sacrifice/invoke(var/list/invokers) if(rune_in_use) return - rune_in_use = 1 - var/mob/living/user = invokers[1] //the first invoker is always the user + var/list/myriad_targets = list() var/turf/T = get_turf(src) - var/list/possible_targets = list() - for(var/mob/living/M in T.contents) - if(M.mind) - if(M.mind in sacrificed) - continue + for(var/mob/living/M in T) if(!iscultist(M)) - possible_targets.Add(M) - var/mob/offering - if(possible_targets.len > 1) //If there's more than one target, allow choice - offering = input(user, "Choose an offering to sacrifice.", "Unholy Tribute") as null|anything in possible_targets - if(!Adjacent(user) || !src || qdeleted(src) || user.incapacitated()) - return - else if(possible_targets.len) //Otherwise, if there's a target at all, pick the only one - offering = possible_targets[possible_targets.len] - if(!offering) - rune_in_use = 0 - return - /*var/obj/item/weapon/nullrod/N = offering.null_rod_check() - if(N) - user << "Something is blocking the Geometer's magic!" - log_game("Sacrifice rune failed - target has \a [N]!") + myriad_targets |= M + if(!myriad_targets.len) fail_invoke() - rune_in_use = 0 - return*/ - if(((ishuman(offering) || isrobot(offering)) && offering.stat != DEAD) || is_sacrifice_target(offering.mind)) //Requires three people to sacrifice living targets - if(invokers.len < 3) - for(var/M in invokers) - M << "[offering] is too greatly linked to the world! You need three acolytes!" - fail_invoke() - log_game("Sacrifice rune failed - not enough acolytes and target is living") - rune_in_use = 0 - return + log_game("Offer rune failed - no eligible targets") + return + rune_in_use = TRUE visible_message("[src] pulses blood red!") - color = rgb(126, 23, 23) - ..() - sac(invokers, offering) - color = initial(color) + var/oldcolor = color + color = "#7D1717" + var/mob/living/L = pick(myriad_targets) + var/is_clock = is_servant_of_ratvar(L) + var/is_convertable = is_convertable_to_cult(L) + if(L.stat != DEAD && (is_clock || is_convertable)) + invocation = "Mah'weyh pleggh at e'ntrath!" + ..() + if(is_clock) + L.visible_message("[L]'s eyes glow a defiant yellow!", \ + "\"Stop resisting. You will be mi-\"\n\ + \"Give up and you will feel pain unlike anything you've ever felt!\"") + L.Weaken(4) + else if(is_convertable) + do_convert(L, invokers) + else + invocation = "Barhah hra zar'garis!" + ..() + do_sacrifice(L, invokers) + animate(src, color = oldcolor, time = 5) + addtimer(src, "update_atom_colour", 5) + rune_in_use = FALSE -/obj/effect/rune/sacrifice/proc/sac(var/list/invokers, mob/living/T) - var/sacrifice_fulfilled - if(T) - if(istype(T, /mob/living/simple_animal/pet/dog)) - for(var/M in invokers) - var/mob/living/L = M - L << "\"Even I have standards, such as they are!\"" - if(L.reagents) - L.reagents.add_reagent("hell_water", 2) - if(T.mind) - sacrificed.Add(T.mind) - if(is_sacrifice_target(T.mind)) - sacrifice_fulfilled = 1 - PoolOrNew(/obj/effect/overlay/temp/cult/sac, src.loc) +/obj/effect/rune/convert/proc/do_convert(mob/living/convertee, list/invokers) + if(invokers.len < 2) for(var/M in invokers) - if(sacrifice_fulfilled) - M << "\"Yes! This is the one I desire! You have done well.\"" - else - if(ishuman(T) || isrobot(T)) - M << "\"I accept this sacrifice.\"" - else - M << "\"I accept this meager sacrifice.\"" - if(T.mind) - var/obj/item/device/soulstone/stone = new /obj/item/device/soulstone(get_turf(src)) - stone.invisibility = INVISIBILITY_MAXIMUM //so it's not picked up during transfer_soul() - if(!stone.transfer_soul("FORCE", T, usr)) //If it cannot be added - qdel(stone) - if(stone) - stone.invisibility = 0 - if(!T) - rune_in_use = 0 - return - if(isrobot(T)) - playsound(T, 'sound/magic/Disable_Tech.ogg', 100, 1) - T.dust() //To prevent the MMI from remaining + M << "You need more invokers to convert [convertee]!" + log_game("Offer rune failed - tried conversion with one invoker") + return 0 + if(convertee.null_rod_check()) + for(var/M in invokers) + M << "Something is shielding [convertee]'s mind!" + log_game("Offer rune failed - convertee had null rod") + return 0 + var/brutedamage = convertee.getBruteLoss() + var/burndamage = convertee.getFireLoss() + if(brutedamage || burndamage) + convertee.adjustBruteLoss(-(brutedamage * 0.75)) + convertee.adjustFireLoss(-(burndamage * 0.75)) + convertee.visible_message("[convertee] writhes in pain \ + [brutedamage || burndamage ? "even as [convertee.p_their()] wounds heal and close" : "as the markings below [convertee.p_them()] glow a bloody red"]!", \ + "AAAAAAAAAAAAAA-") + ticker.mode.add_cultist(convertee.mind, 1) + new /obj/item/weapon/tome(get_turf(src)) + convertee.mind.special_role = "Cultist" + convertee << "Your blood pulses. Your head throbs. The world goes red. All at once you are aware of a horrible, horrible, truth. The veil of reality has been ripped away \ + and something evil takes root." + convertee << "Assist your new compatriots in their dark dealings. Your goal is theirs, and theirs is yours. You serve the Geometer above all else. Bring it back.\ + " + return 1 + +/obj/effect/rune/convert/proc/do_sacrifice(mob/living/sacrificial, list/invokers) + if((((ishuman(sacrificial) || iscyborg(sacrificial)) && sacrificial.stat != DEAD) || is_sacrifice_target(sacrificial.mind)) && invokers.len < 3) + for(var/M in invokers) + M << "[sacrificial] is too greatly linked to the world! You need three acolytes!" + log_game("Offer rune failed - not enough acolytes and target is living or sac target") + return FALSE + var/sacrifice_fulfilled = FALSE + + if(sacrificial.mind) + sacrificed += sacrificial.mind + if(is_sacrifice_target(sacrificial.mind)) + sacrifice_fulfilled = TRUE + else + sacrificed += sacrificial + + PoolOrNew(/obj/effect/overlay/temp/cult/sac, get_turf(src)) + for(var/M in invokers) + if(sacrifice_fulfilled) + M << "\"Yes! This is the one I desire! You have done well.\"" else - playsound(T, 'sound/magic/Disintegrate.ogg', 100, 1) - T.gib() - rune_in_use = 0 + if(ishuman(sacrificial) || iscyborg(sacrificial)) + M << "\"I accept this sacrifice.\"" + else + M << "\"I accept this meager sacrifice.\"" + + var/obj/item/device/soulstone/stone = new /obj/item/device/soulstone(get_turf(src)) + if(sacrificial.mind) + stone.invisibility = INVISIBILITY_MAXIMUM //so it's not picked up during transfer_soul() + stone.transfer_soul("FORCE", sacrificial, usr) + stone.invisibility = 0 + + if(sacrificial) + if(iscyborg(sacrificial)) + playsound(sacrificial, 'sound/magic/Disable_Tech.ogg', 100, 1) + sacrificial.dust() //To prevent the MMI from remaining + else + playsound(sacrificial, 'sound/magic/Disintegrate.ogg', 100, 1) + sacrificial.gib() + return TRUE //Ritual of Dimensional Rending: Calls forth the avatar of Nar-Sie upon the station. /obj/effect/rune/narsie @@ -459,13 +454,14 @@ var/list/teleport_runes = list() invocation = "TOK-LYR RQA-NAP G'OLT-ULOFT!!" req_cultists = 9 icon = 'icons/effects/96x96.dmi' - color = rgb(125,23,23) + color = "#7D1717" icon_state = "rune_large" pixel_x = -32 //So the big ol' 96x96 sprite shows up right pixel_y = -32 scribe_delay = 450 //how long the rune takes to create scribe_damage = 40.1 //how much damage you take doing it var/used + var/ignore_gamemode = FALSE /obj/effect/rune/narsie/New() . = ..() @@ -483,28 +479,35 @@ var/list/teleport_runes = list() return if(z != ZLEVEL_STATION) return + + var/datum/game_mode/cult/cult_mode + if(ticker.mode.name == "cult") - var/datum/game_mode/cult/cult_mode = ticker.mode - if(!cult_mode.eldergod) - for(var/M in invokers) - M << "Nar-Sie is already on this plane!" - log_game("Summon Nar-Sie rune failed - already summoned") - return - //BEGIN THE SUMMONING - used = 1 - ..() - world << 'sound/effects/dimensional_rend.ogg' //There used to be a message for this but every time it was changed it got edgier so I removed it - var/turf/T = get_turf(src) - sleep(40) - if(src) - color = rgb(255, 0, 0) - new /obj/singularity/narsie/large(T) //Causes Nar-Sie to spawn even if the rune has been removed - cult_mode.eldergod = 0 - else + cult_mode = ticker.mode + + if(!cult_mode && !ignore_gamemode) for(var/M in invokers) M << "Nar-Sie does not respond!" fail_invoke() log_game("Summon Nar-Sie rune failed - gametype is not cult") + return + + if(locate(/obj/singularity/narsie) in poi_list) + for(var/M in invokers) + M << "Nar-Sie is already on this plane!" + log_game("Summon Nar-Sie rune failed - already summoned") + return + //BEGIN THE SUMMONING + used = 1 + ..() + send_to_playing_players('sound/effects/dimensional_rend.ogg') //There used to be a message for this but every time it was changed it got edgier so I removed it + var/turf/T = get_turf(src) + sleep(40) + if(src) + color = "#FF0000" + new /obj/singularity/narsie/large(T) //Causes Nar-Sie to spawn even if the rune has been removed + if(cult_mode) + cult_mode.eldergod = 0 /obj/effect/rune/narsie/attackby(obj/I, mob/user, params) //Since the narsie rune takes a long time to make, add logging to removal. if((istype(I, /obj/item/weapon/tome) && iscultist(user))) @@ -521,46 +524,47 @@ var/list/teleport_runes = list() ..() return -//Rite of Resurrection: Requires two corpses. Revives one and gibs the other. +//Rite of Resurrection: Requires the corpse of a cultist and that there have been less revives than the number of people sacrificed /obj/effect/rune/raise_dead cultist_name = "Raise Dead" - cultist_desc = "requires two corpses, one on the rune and one adjacent to the rune. The one on the rune is brought to life, the other is turned to ash." + cultist_desc = "requires the corpse of a cultist placed upon the rune. Provided there have been sufficient sacrifices, they will be revived." invocation = null //Depends on the name of the user - see below icon_state = "1" - color = rgb(200, 0, 0) + color = "#C80000" + var/static/revives_used = 0 + +/obj/effect/rune/raise_dead/examine(mob/user) + ..() + if(iscultist(user) || user.stat == DEAD) + var/revive_number = 0 + if(sacrificed.len) + revive_number = sacrificed.len - revives_used + user << "Revives Remaining: [revive_number]" /obj/effect/rune/raise_dead/invoke(var/list/invokers) var/turf/T = get_turf(src) - var/mob/living/mob_to_sacrifice var/mob/living/mob_to_revive - var/list/potential_sacrifice_mobs = list() var/list/potential_revive_mobs = list() var/mob/living/user = invokers[1] if(rune_in_use) return - for(var/mob/living/M in orange(1,T)) - if(M.stat == DEAD && !iscultist(M)) - potential_sacrifice_mobs |= M - if(!potential_sacrifice_mobs.len) - user << "There are no eligible sacrifices nearby!" - log_game("Raise Dead rune failed - no catalyst corpses") - fail_invoke() - return for(var/mob/living/M in T.contents) - if(M.stat == DEAD) + if(iscultist(M) && M.stat == DEAD) potential_revive_mobs |= M if(!potential_revive_mobs.len) - user << "There is no eligible revival target on the rune!" + user << "There are no dead cultists on the rune!" log_game("Raise Dead rune failed - no corpses to revive") fail_invoke() return - mob_to_sacrifice = input(user, "Choose a corpse to sacrifice.", "Corpse to Sacrifice") as null|anything in potential_sacrifice_mobs - if(!src || qdeleted(src) || rune_in_use || !validness_checks(mob_to_sacrifice, user, 1)) + if(!sacrificed.len || sacrificed.len <= revives_used) + user << "You have sacrificed too few people to revive a cultist!" + fail_invoke() return - mob_to_revive = input(user, "Choose a corpse to revive.", "Corpse to Revive") as null|anything in potential_revive_mobs - if(!src || qdeleted(src) || rune_in_use || !validness_checks(mob_to_sacrifice, user, 1)) - return - if(!validness_checks(mob_to_revive, user, 0)) + if(potential_revive_mobs.len > 1) + mob_to_revive = input(user, "Choose a cultist to revive.", "Cultist to Revive") as null|anything in potential_revive_mobs + else + mob_to_revive = potential_revive_mobs[1] + if(!src || qdeleted(src) || rune_in_use || !validness_checks(mob_to_revive, user)) return rune_in_use = 1 if(user.name == "Herbert West") @@ -568,27 +572,15 @@ var/list/teleport_runes = list() else user.say("Pasnar val'keriam usinar. Savrae ines amutan. Yam'toth remium il'tarat!") ..() - mob_to_sacrifice.visible_message("[mob_to_sacrifice]'s body rises into the air, connected to [mob_to_revive] by a glowing tendril!") - mob_to_revive.Beam(mob_to_sacrifice,icon_state="sendbeam",icon='icons/effects/effects.dmi',time=20) - sleep(20) - if(!mob_to_sacrifice || !in_range(mob_to_sacrifice, src)) - rune_in_use = 0 - return - if(!mob_to_revive || mob_to_revive.stat != DEAD) - visible_message("The glowing tendril snaps against the rune with a shocking crack.") - rune_in_use = 0 - fail_invoke() - return - mob_to_sacrifice.visible_message("[mob_to_sacrifice] disintegrates into a pile of bones.") - mob_to_sacrifice.dust() + revives_used++ mob_to_revive.revive(1, 1) //This does remove disabilities and such, but the rune might actually see some use because of it! mob_to_revive.grab_ghost() mob_to_revive << "\"PASNAR SAVRAE YAM'TOTH. Arise.\"" - mob_to_revive.visible_message("[mob_to_revive] draws in a huge breath, red light shining from their eyes.", \ + mob_to_revive.visible_message("[mob_to_revive] draws in a huge breath, red light shining from [mob_to_revive.p_their()] eyes.", \ "You awaken suddenly from the void. You're alive!") rune_in_use = 0 -/obj/effect/rune/raise_dead/proc/validness_checks(mob/living/target_mob, mob/living/user, saccing) +/obj/effect/rune/raise_dead/proc/validness_checks(mob/living/target_mob, mob/living/user) var/turf/T = get_turf(src) if(!user) return 0 @@ -597,28 +589,28 @@ var/list/teleport_runes = list() if(!target_mob) fail_invoke() return 0 - if(saccing) - if(!in_range(target_mob, src)) - user << "The sacrificial target has been moved!" - fail_invoke() - log_game("Raise Dead rune failed - catalyst corpse moved") - return 0 - if(target_mob.stat != DEAD) - user << "The sacrificial target must be dead!" - fail_invoke() - log_game("Raise Dead rune failed - catalyst corpse is not dead") - return 0 - else if(!(target_mob in T.contents)) - user << "The corpse to revive has been moved!" + if(!(target_mob in T.contents)) + user << "The cultist to revive has been moved!" fail_invoke() log_game("Raise Dead rune failed - revival target moved") return 0 + var/mob/dead/observer/ghost = target_mob.get_ghost(TRUE) + if(!ghost && (!target_mob.mind || !target_mob.mind.active)) + user << "The corpse to revive has no spirit!" + fail_invoke() + log_game("Raise Dead rune failed - revival target has no ghost") + return 0 + if(!sacrificed.len || sacrificed.len <= revives_used) + user << "You have sacrificed too few people to revive a cultist!" + fail_invoke() + log_game("Raise Dead rune failed - too few sacrificed") + return 0 return 1 /obj/effect/rune/raise_dead/fail_invoke() ..() for(var/mob/living/M in range(1,src)) - if(M.stat == DEAD) + if(iscultist(M) && M.stat == DEAD) M.visible_message("[M] twitches.") @@ -629,7 +621,7 @@ var/list/teleport_runes = list() invocation = "Ta'gh fara'qha fel d'amar det!" icon_state = "5" allow_excess_invokers = 1 - color = rgb(77, 148, 255) + color = "#4D94FF" /obj/effect/rune/emp/invoke(var/list/invokers) var/turf/E = get_turf(src) @@ -658,8 +650,8 @@ var/list/teleport_runes = list() cultist_name = "Astral Communion" cultist_desc = "severs the link between one's spirit and body. This effect is taxing and one's physical body will take damage while this is active." invocation = "Fwe'sh mah erl nyag r'ya!" - icon_state = "6" - color = rgb(126, 23, 23) + icon_state = "7" + color = "#7D1717" rune_in_use = 0 //One at a time, please! construct_invoke = 0 var/mob/living/affecting = null @@ -675,7 +667,7 @@ var/list/teleport_runes = list() log_game("Astral Communion rune failed - more than one user") return list() var/turf/T = get_turf(src) - if(!user in T.contents) + if(!(user in T)) user << "You must be standing on top of [src]!" log_game("Astral Communion rune failed - user not standing on rune") return list() @@ -687,7 +679,7 @@ var/list/teleport_runes = list() var/turf/T = get_turf(src) rune_in_use = 1 affecting = user - user.color = "#7e1717" + user.color = "#7D1717" user.visible_message("[user] freezes statue-still, glowing an unearthly red.", \ "You see what lies beyond. All is revealed. While this is a wondrous experience, your physical form will waste away in this state. Hurry...") user.ghostize(1) @@ -697,13 +689,13 @@ var/list/teleport_runes = list() affecting = null //In case it's assigned to a number or something rune_in_use = 0 return - affecting.apply_damage(1, BRUTE) - if(!(user in T.contents)) - user.visible_message("A spectral tendril wraps around [user] and pulls them back to the rune!") - Beam(user,icon_state="drainbeam",icon='icons/effects/effects.dmi',time=2) + affecting.apply_damage(0.1, BRUTE) + if(!(user in T)) + user.visible_message("A spectral tendril wraps around [user] and pulls [user.p_them()] back to the rune!") + Beam(user,icon_state="drainbeam",time=2) user.forceMove(get_turf(src)) //NO ESCAPE :^) if(user.key) - user.visible_message("[user] slowly relaxes, the glow around them dimming.", \ + user.visible_message("[user] slowly relaxes, the glow around [user.p_them()] dimming.", \ "You are re-united with your physical form. [src] releases its hold over you.") user.color = initial(user.color) user.Weaken(3) @@ -711,53 +703,101 @@ var/list/teleport_runes = list() affecting = null return if(user.stat == UNCONSCIOUS) - if(prob(10)) + if(prob(1)) var/mob/dead/observer/G = user.get_ghost() - if(G) - G << "You feel the link between you and your body weakening... you must hurry!" + G << "You feel the link between you and your body weakening... you must hurry!" if(user.stat == DEAD) user.color = initial(user.color) rune_in_use = 0 affecting = null var/mob/dead/observer/G = user.get_ghost() - if(G) - G << "You suddenly feel your physical form pass on. [src]'s exertion has killed you!" + G << "You suddenly feel your physical form pass on. [src]'s exertion has killed you!" return - sleep(10) + sleep(1) rune_in_use = 0 +var/list/wall_runes = list() //Rite of the Corporeal Shield: When invoked, becomes solid and cannot be passed. Invoke again to undo. /obj/effect/rune/wall cultist_name = "Form Barrier" - cultist_desc = "when invoked, makes an invisible wall to block passage. Can be invoked again to reverse this." + cultist_desc = "when invoked, makes a temporary invisible wall to block passage. Can be invoked again to reverse this." invocation = "Khari'd! Eske'te tannin!" icon_state = "1" - color = rgb(255, 0, 0) + color = "#C80000" + CanAtmosPass = ATMOS_PASS_DENSITY + var/density_timer + var/recharging = FALSE + +/obj/effect/rune/wall/New() + ..() + wall_runes += src /obj/effect/rune/wall/examine(mob/user) ..() if(density) user << "There is a barely perceptible shimmering of the air above [src]." +/obj/effect/rune/wall/Destroy() + density = 0 + wall_runes -= src + air_update_turf(1) + return ..() + +/obj/effect/rune/wall/BlockSuperconductivity() + return density + /obj/effect/rune/wall/invoke(var/list/invokers) + if(recharging) + return var/mob/living/user = invokers[1] ..() density = !density - user.visible_message("[user] [iscarbon(user) ? "places their hands on":"stares intently at"] [src], and [density ? "the air above it begins to shimmer" : "the shimmer above it fades"].", \ - "You channel your life energy into [src], [density ? "preventing" : "allowing"] passage above it.") + update_state() + if(density) + spread_density() + user.visible_message("[user] [iscarbon(user) ? "places [user.p_their()] hands on":"stares intently at"] [src], and [density ? "the air above it begins to shimmer" : "the shimmer above it fades"].", \ + "You channel your life energy into [src], [density ? "temporarily preventing" : "allowing"] passage above it.") + if(iscarbon(user)) + var/mob/living/carbon/C = user + C.apply_damage(2, BRUTE, pick("l_arm", "r_arm")) + +/obj/effect/rune/wall/proc/spread_density() + for(var/R in wall_runes) + var/obj/effect/rune/wall/W = R + if(W.z == z && get_dist(src, W) <= 2 && !W.density && !W.recharging) + W.density = TRUE + W.update_state() + W.spread_density() + density_timer = addtimer(src, "lose_density", 900) + +/obj/effect/rune/wall/proc/lose_density() + if(density) + recharging = TRUE + density = FALSE + update_state() + var/oldcolor = color + add_atom_colour("#696969", FIXED_COLOUR_PRIORITY) + animate(src, color = oldcolor, time = 50, easing = EASE_IN) + addtimer(src, "recharge", 50) + +/obj/effect/rune/wall/proc/recharge() + recharging = FALSE + add_atom_colour("#C80000", FIXED_COLOUR_PRIORITY) + +/obj/effect/rune/wall/proc/update_state() + deltimer(density_timer) + air_update_turf(1) if(density) var/image/I = image(layer = ABOVE_MOB_LAYER, icon = 'icons/effects/effects.dmi', icon_state = "barriershimmer") I.appearance_flags = RESET_COLOR I.alpha = 60 I.color = "#701414" - overlays += I + add_overlay(I) + add_atom_colour("#FF0000", FIXED_COLOUR_PRIORITY) else - overlays.Cut() - if(iscarbon(user)) - var/mob/living/carbon/C = user - C.apply_damage(2, BRUTE, pick("l_arm", "r_arm")) - + cut_overlays() + add_atom_colour("#C80000", FIXED_COLOUR_PRIORITY) //Rite of Joined Souls: Summons a single cultist. /obj/effect/rune/summon @@ -767,7 +807,7 @@ var/list/teleport_runes = list() req_cultists = 2 allow_excess_invokers = 1 icon_state = "5" - color = rgb(0, 255, 0) + color = "#00FF00" /obj/effect/rune/summon/invoke(var/list/invokers) var/mob/living/user = invokers[1] @@ -809,35 +849,105 @@ var/list/teleport_runes = list() //Rite of Boiling Blood: Deals extremely high amounts of damage to non-cultists nearby /obj/effect/rune/blood_boil cultist_name = "Boil Blood" - cultist_desc = "boils the blood of non-believers who can see the rune, dealing extreme amounts of damage. Requires 3 invokers." + cultist_desc = "boils the blood of non-believers who can see the rune, rapidly dealing extreme amounts of damage. Requires 3 invokers." invocation = "Dedo ol'btoh!" icon_state = "4" - color = rgb(200, 0, 0) + color = "#C80000" req_cultists = 3 construct_invoke = 0 + var/tick_damage = 25 + rune_in_use = FALSE + +/obj/effect/rune/blood_boil/do_invoke_glow() + return /obj/effect/rune/blood_boil/invoke(var/list/invokers) + if(rune_in_use) + return ..() + rune_in_use = TRUE var/turf/T = get_turf(src) - visible_message("[src] briefly bubbles before exploding!") - for(var/mob/living/carbon/C in viewers(T)) - if(!iscultist(C)) - var/obj/item/weapon/nullrod/N = C.null_rod_check() - if(N) - C << "\The [N] suddenly burns hotly before returning to normal!" - continue - C << "Your blood boils in your veins!" - C.take_overall_damage(45,45) - C.Stun(7) - if(is_servant_of_ratvar(C)) - C << "You feel unholy darkness dimming the Justiciar's light!" - C.adjustStaminaLoss(30) + visible_message("[src] turns a bright, glowing orange!") + SetLuminosity(6) + color = "#FC9B54" for(var/M in invokers) var/mob/living/L = M - L.apply_damage(15, BRUTE, pick("l_arm", "r_arm")) + L.apply_damage(10, BRUTE, pick("l_arm", "r_arm")) L << "[src] saps your strength!" + for(var/mob/living/L in viewers(T)) + if(!iscultist(L) && L.blood_volume) + var/obj/item/weapon/nullrod/N = L.null_rod_check() + if(N) + L << "\The [N] suddenly burns hotly before returning to normal!" + continue + L << "Your blood boils in your veins!" + if(is_servant_of_ratvar(L)) + L << "You feel an unholy darkness dimming the Justiciar's light!" + animate(src, color = "#FCB56D", time = 4) + sleep(4) + if(!src) + return + do_area_burn(T, 0.5) + animate(src, color = "#FFDF80", time = 5) + sleep(5) + if(!src) + return + do_area_burn(T, 1) + animate(src, color = "#FFFDF4", time = 6) + sleep(6) + if(!src) + return + do_area_burn(T, 1.5) + PoolOrNew(/obj/effect/hotspot, T) qdel(src) - explosion(T, -1, 0, 1, 5) + +/obj/effect/rune/blood_boil/proc/do_area_burn(turf/T, multiplier) + for(var/mob/living/L in viewers(T)) + if(!iscultist(L) && L.blood_volume) + var/obj/item/weapon/nullrod/N = L.null_rod_check() + if(N) + continue + L.take_overall_damage(tick_damage*multiplier, tick_damage*multiplier) + if(is_servant_of_ratvar(L)) + L.adjustStaminaLoss(tick_damage*0.5) + + +//Deals brute damage to all targets on the rune and heals the invoker for each target drained. +/obj/effect/rune/leeching + cultist_name = "Drain Life" + cultist_desc = "drains the life of all targets on the rune, restoring life to the user." + invocation = "Yu'gular faras desdae. Umathar uf'kal thenar!" + icon_state = "3" + color = "#9F1C34" + +/obj/effect/rune/leeching/can_invoke(mob/living/user) + if(world.time <= user.next_move) + return list() + var/turf/T = get_turf(src) + var/list/potential_targets = list() + for(var/mob/living/carbon/M in T.contents - user) + if(M.stat != DEAD) + potential_targets += M + if(!potential_targets.len) + user << "There must be at least one valid target on the rune!" + log_game("Leeching rune failed - no valid targets") + return list() + return ..() + +/obj/effect/rune/leeching/invoke(var/list/invokers) + var/mob/living/user = invokers[1] + user.changeNext_move(CLICK_CD_CLICK_ABILITY) + ..() + var/turf/T = get_turf(src) + for(var/mob/living/carbon/M in T.contents - user) + if(M.stat != DEAD) + var/drained_amount = rand(10,20) + M.apply_damage(drained_amount, BRUTE, "chest") + user.adjustBruteLoss(-drained_amount) + M << "You feel extremely weak." + user.Beam(T,icon_state="drainbeam",time=5) + user.visible_message("Blood flows from the rune into [user]!", \ + "Blood flows into you, healing your wounds and revitalizing your spirit.") //Rite of Spectral Manifestation: Summons a ghost on top of the rune as a cultist human with no items. User must stand on the rune at all times, and takes damage for each summoned ghost. @@ -847,7 +957,7 @@ var/list/teleport_runes = list() invocation = "Gal'h'rfikk harfrandid mud'gib!" //how the fuck do you pronounce this icon_state = "6" construct_invoke = 0 - color = rgb(200, 0, 0) + color = "#C80000" /obj/effect/rune/manifest/New(loc) ..() @@ -883,17 +993,14 @@ var/list/teleport_runes = list() ..() visible_message("A cloud of red mist forms above [src], and from within steps... a man.") user << "Your blood begins flowing into [src]. You must remain in place and conscious to maintain the forms of those summoned. This will hurt you slowly but surely..." - var/obj/machinery/shield/N = new(get_turf(src)) - N.name = "Invoker's Shield" - N.desc = "A weak shield summoned by cultists to protect them while they carry out delicate rituals" - N.color = "red" - N.health = 20 - N.mouse_opacity = 0 + var/turf/T = get_turf(src) + var/obj/structure/emergency_shield/invoker/N = new(T) + new_human.key = ghost_to_spawn.key ticker.mode.add_cultist(new_human.mind, 0) new_human << "You are a servant of the Geometer. You have been made semi-corporeal by the cult of Nar-Sie, and you are to serve them at all costs." - while(user in get_turf(src)) + while(user in T) if(user.stat) break user.apply_damage(0.1, BRUTE) diff --git a/code/game/gamemodes/cult/talisman.dm b/code/game/gamemodes/cult/talisman.dm index 8962fb95af..c11bb18136 100644 --- a/code/game/gamemodes/cult/talisman.dm +++ b/code/game/gamemodes/cult/talisman.dm @@ -56,6 +56,7 @@ dat += "Please choose the chant to be imbued into the fabric of reality.
    " dat += "
    " dat += "N'ath reth sh'yro eth d'raggathnor! - Summons an arcane tome, used to scribe runes and communicate with other cultists.
    " + dat += "Bar'tea eas! - Provides 5 runed metal.
    " dat += "Sas'so c'arta forbici! - Allows you to move to a selected teleportation rune.
    " dat += "Ta'gh fara'qha fel d'amar det! - Allows you to destroy technology in a short range.
    " dat += "Fuu ma'jin! - Allows you to stun a person by attacking them with the talisman.
    " @@ -76,6 +77,12 @@ if("newtome") var/obj/item/weapon/tome/T = new(usr) usr.put_in_hands(T) + if("metal") + if(istype(src, /obj/item/weapon/paper/talisman/supply/weak)) + usr.visible_message("Lesser supply talismans lack the strength to materialize runed metal!") + return + var/obj/item/stack/sheet/runed_metal/R = new(usr,5) + usr.put_in_hands(R) if("teleport") var/obj/item/weapon/paper/talisman/teleport/T = new(usr) usr.put_in_hands(T) @@ -102,6 +109,7 @@ qdel(src) /obj/item/weapon/paper/talisman/supply/weak + cultist_name = "Lesser Supply Talisman" uses = 2 //Rite of Translocation: Same as rune @@ -139,11 +147,15 @@ var/input_rune_key = input(user, "Choose a rune to teleport to.", "Rune to Teleport to") as null|anything in potential_runes //we know what key they picked var/obj/effect/rune/teleport/actual_selected_rune = potential_runes[input_rune_key] //what rune does that key correspond to? - if(!actual_selected_rune) + if(!src || qdeleted(src) || !user || !user.is_holding(src) || user.incapacitated() || !actual_selected_rune) return ..(user, 0) - user.visible_message("Dust flows from [user]'s hand, and they disappear in a flash of red light!", \ + var/turf/target = get_turf(actual_selected_rune) + if(is_blocked_turf(target)) + user << "The target rune is blocked. Attempting to teleport to it would be massively unwise." + return ..(user, 0) + user.visible_message("Dust flows from [user]'s hand, and [user.p_they()] disappear in a flash of red light!", \ "You speak the words of the talisman and find yourself somewhere else!") - user.forceMove(get_turf(actual_selected_rune)) + user.forceMove(target) return ..() @@ -245,7 +257,7 @@ else target.Weaken(10) target.Stun(10) - target.flash_eyes(1,1) + target.flash_act(1,1) if(issilicon(target)) var/mob/living/silicon/S = target S.emp_act(1) @@ -308,16 +320,17 @@ target << "You see a brief but horrible vision of Ratvar, rusted and scrapped, being torn apart." target.emote("scream") target.confused = max(0, target.confused + 3) - target.flash_eyes() + target.flash_act() qdel(src) -//Talisman of Fabrication: Creates a construct shell out of 25 metal sheets. +//Talisman of Fabrication: Creates a construct shell out of 25 metal sheets, or converts plasteel into runed metal up to 25 times /obj/item/weapon/paper/talisman/construction cultist_name = "Talisman of Construction" cultist_desc = "Use this talisman on at least twenty-five metal sheets to create an empty construct shell" invocation = "Ethra p'ni dedol!" color = "#000000" // black + uses = 25 /obj/item/weapon/paper/talisman/construction/attack_self(mob/living/user) if(iscultist(user)) @@ -328,27 +341,34 @@ /obj/item/weapon/paper/talisman/construction/attack(obj/M,mob/living/user) if(iscultist(user)) - user << "This talisman will only work on a stack of metal sheets!" + user << "This talisman will only work on a stack of metal or plasteel sheets!" log_game("Construct talisman failed - not a valid target") + else + ..() /obj/item/weapon/paper/talisman/construction/afterattack(obj/item/stack/sheet/target, mob/user, proximity_flag, click_parameters) ..() if(proximity_flag && iscultist(user)) + var/turf/T = get_turf(target) if(istype(target, /obj/item/stack/sheet/metal)) - var/turf/T = get_turf(target) if(target.use(25)) new /obj/structure/constructshell(T) user << "The talisman clings to the metal and twists it into a construct shell!" user << sound('sound/effects/magic.ogg',0,1,25) + invoke(user, 1) qdel(src) - if(istype(target, /obj/item/stack/sheet/plasteel)) - var/quantity = target.amount - var/turf/T = get_turf(target) + else + user << "You need more metal to produce a construct shell!" + else if(istype(target, /obj/item/stack/sheet/plasteel)) + var/quantity = min(target.amount, uses) + uses -= quantity new /obj/item/stack/sheet/runed_metal(T,quantity) target.use(quantity) user << "The talisman clings to the plasteel, transforming it into runed metal!" user << sound('sound/effects/magic.ogg',0,1,25) - qdel(src) + invoke(user, 1) + if(uses <= 0) + qdel(src) else user << "The talisman must be used on metal or plasteel!" diff --git a/code/game/gamemodes/devil/devil agent/devil_agent.dm b/code/game/gamemodes/devil/devil agent/devil_agent.dm new file mode 100644 index 0000000000..dfdb957153 --- /dev/null +++ b/code/game/gamemodes/devil/devil agent/devil_agent.dm @@ -0,0 +1,43 @@ +/datum/game_mode/devil/devil_agents + name = "Devil Agents" + config_tag = "devil_agents" + required_players = 25 + required_enemies = 3 + recommended_enemies = 8 + reroll_friendly = 0 + + traitors_possible = 10 //hard limit on traitors if scaling is turned off + num_modifier = 4 + objective_count = 2 + + var/list/target_list = list() + var/list/late_joining_list = list() + minimum_devils = 3 + + announce_text = "There are devil agents onboard the station, trying to outbid each other!\n\ + + Devils: Purchase souls and interfere with your rivals!\n\ + + Crew: Resist the lure of sin and remain pure!" + +/datum/game_mode/devil/devil_agents/post_setup() + var/i = 0 + for(var/datum/mind/devil in devils) + i++ + if(i + 1 > devils.len) + i = 0 + target_list[devil] = devils[i + 1] + ..() + +/datum/game_mode/devil/devil_agents/add_devil_objectives(datum/mind/devil_mind, quantity) + ..(devil_mind, quantity - give_outsell_objective(devil_mind)) + +/datum/game_mode/devil/devil_agents/proc/give_outsell_objective(datum/mind/devil) + //If you override this method, have it return the number of objectives added. + if(target_list.len && target_list[devil]) // Is a double agent + var/datum/mind/target_mind = target_list[devil] + var/datum/objective/devil/outsell/outsellobjective = new + outsellobjective.owner = devil + outsellobjective.target = target_mind + outsellobjective.update_explanation_text() + devil.objectives += outsellobjective + return 1 + return 0 diff --git a/code/game/gamemodes/devil/devil.dm b/code/game/gamemodes/devil/devil.dm index 743e95ad91..0aafc57ccb 100644 --- a/code/game/gamemodes/devil/devil.dm +++ b/code/game/gamemodes/devil/devil.dm @@ -20,7 +20,7 @@ var/global/list/whiteness = list ( /mob/living/proc/check_devil_bane_multiplier(obj/item/weapon, mob/living/attacker) switch(mind.devilinfo.bane) if(BANE_WHITECLOTHES) - if(istype(attacker, /mob/living/carbon/human)) + if(ishuman(attacker)) var/mob/living/carbon/human/H = attacker if(H.w_uniform && istype(H.w_uniform, /obj/item/clothing/under)) var/obj/item/clothing/under/U = H.w_uniform diff --git a/code/game/gamemodes/devil/devil_game_mode.dm b/code/game/gamemodes/devil/devil_game_mode.dm index 97411e87e6..c64653a986 100644 --- a/code/game/gamemodes/devil/devil_game_mode.dm +++ b/code/game/gamemodes/devil/devil_game_mode.dm @@ -1,111 +1,61 @@ -/datum/game_mode - var/list/datum/mind/sintouched = list() - var/list/datum/mind/devils = list() - var/devil_ascended = 0 // Number of arch devils on station - -/datum/game_mode/proc/auto_declare_completion_sintouched() - var/text = "" - if(sintouched.len) - text += "
    The sintouched were:" - var/list/sintouchedUnique = uniqueList(sintouched) - for(var/S in sintouchedUnique) - var/datum/mind/sintouched_mind = S - text += printplayer(sintouched_mind) - text += printobjectives(sintouched_mind) - text += "
    " - text += "
    " - world << text - -/datum/game_mode/proc/auto_declare_completion_devils() - /var/text = "" - if(devils.len) - text += "
    The devils were:" - for(var/D in devils) - var/datum/mind/devil = D - text += printplayer(devil) - text += printdevilinfo(devil) - text += printobjectives(devil) - text += "
    " - world << text - /datum/game_mode/devil + name = "devil" + config_tag = "devil" + antag_flag = ROLE_DEVIL + protected_jobs = list("Lawyer", "Librarian", "Chaplain", "Head of Security", "Captain", "AI") + required_players = 0 + required_enemies = 1 + recommended_enemies = 4 + reroll_friendly = 1 + enemy_minimum_age = 0 + + var/traitors_possible = 4 //hard limit on devils if scaling is turned off + var/num_modifier = 0 // Used for gamemodes, that are a child of traitor, that need more than the usual. + var/objective_count = 2 + var/minimum_devils = 1 + + announce_text = "There are devils onboard the station!\n\ + + Devils: Purchase souls and tempt the crew to sin!\n\ + + Crew: Resist the lure of sin and remain pure!" + +/datum/game_mode/devil/pre_setup() + + if(config.protect_roles_from_antagonist) + restricted_jobs += protected_jobs + if(config.protect_assistant_from_antagonist) + restricted_jobs += "Assistant" + + var/num_devils = 1 + + if(config.traitor_scaling_coeff) + num_devils = max(minimum_devils, min( round(num_players()/(config.traitor_scaling_coeff*3))+ 2 + num_modifier, round(num_players()/(config.traitor_scaling_coeff*1.5)) + num_modifier )) + else + num_devils = max(minimum_devils, min(num_players(), traitors_possible)) + + for(var/j = 0, j < num_devils, j++) + if (!antag_candidates.len) + break + var/datum/mind/devil = pick(antag_candidates) + devils += devil + devil.special_role = traitor_name + devil.restricted_roles = restricted_jobs + + log_game("[devil.key] (ckey) has been selected as a [traitor_name]") + antag_candidates.Remove(devil) + + if(devils.len < required_enemies) + return 0 + return 1 -/datum/game_mode/proc/finalize_devil(datum/mind/devil_mind) - var/mob/living/carbon/human/S = devil_mind.current - var/trueName= randomDevilName() - var/datum/objective/devil/soulquantity/soulquant = new - soulquant.owner = devil_mind - var/datum/objective/devil/obj_2 = pick(new /datum/objective/devil/soulquality(null), new /datum/objective/devil/sintouch(null)) - obj_2.owner = devil_mind - devil_mind.objectives += obj_2 - devil_mind.objectives += soulquant - devil_mind.devilinfo = devilInfo(trueName, 1) - devil_mind.store_memory("Your devilic true name is [devil_mind.devilinfo.truename]
    [lawlorify[LAW][devil_mind.devilinfo.ban]]
    You may not use violence to coerce someone into selling their soul.
    You may not directly and knowingly physically harm a devil, other than yourself.
    [lawlorify[LAW][devil_mind.devilinfo.bane]]
    [lawlorify[LAW][devil_mind.devilinfo.obligation]]
    [lawlorify[LAW][devil_mind.devilinfo.banish]]
    ") - devil_mind.devilinfo.owner = devil_mind - devil_mind.devilinfo.give_base_spells(1) - spawn(10) - devil_mind.devilinfo.update_hud() - if(devil_mind.assigned_role == "Clown") - S << "Your infernal nature has allowed you to overcome your clownishness." - S.dna.remove_mutation(CLOWNMUT) - -/datum/mind/proc/announceDevilLaws() - if(!devilinfo) - return - current << "You remember your link to the infernal. You are [src.devilinfo.truename], an agent of hell, a devil. And you were sent to the plane of creation for a reason. A greater purpose. Convince the crew to sin, and embroiden Hell's grasp." - current << "However, your infernal form is not without weaknesses." - current << "You may not use violence to coerce someone into selling their soul." - current << "You may not directly and knowingly physically harm a devil, other than yourself." - current << lawlorify[LAW][src.devilinfo.bane] - current << lawlorify[LAW][src.devilinfo.ban] - current << lawlorify[LAW][src.devilinfo.obligation] - current << lawlorify[LAW][src.devilinfo.banish] - current << "

    Remember, the crew can research your weaknesses if they find out your devil name.
    " - var/obj_count = 1 - current << "Your current objectives:" - for(var/O in objectives) - var/datum/objective/objective = O - current << "Objective #[obj_count]: [objective.explanation_text]" - obj_count++ - -/datum/game_mode/proc/printdevilinfo(datum/mind/ply) - if(!ply.devilinfo) - return "" - var/text = "
    The devil's true name is: [ply.devilinfo.truename]
    " - text += "The devil's bans were:
    " - text += " [lawlorify[LORE][ply.devilinfo.ban]]
    " - text += " [lawlorify[LORE][ply.devilinfo.bane]]
    " - text += " [lawlorify[LORE][ply.devilinfo.obligation]]
    " - text += " [lawlorify[LORE][ply.devilinfo.banish]]
    " - return text - -/datum/game_mode/proc/update_devil_icons_added(datum/mind/devil_mind) - var/datum/atom_hud/antag/hud = huds[ANTAG_HUD_DEVIL] - hud.join_hud(devil_mind.current) - set_antag_hud(devil_mind.current, "devil") - -/datum/game_mode/proc/update_devil_icons_removed(datum/mind/devil_mind) - var/datum/atom_hud/antag/hud = huds[ANTAG_HUD_DEVIL] - hud.leave_hud(devil_mind.current) - set_antag_hud(devil_mind.current, null) - -/datum/game_mode/proc/update_sintouch_icons_added(datum/mind/sin_mind) - var/datum/atom_hud/antag/hud = huds[ANTAG_HUD_SINTOUCHED] - hud.join_hud(sin_mind.current) - set_antag_hud(sin_mind.current, "sintouched") - -/datum/game_mode/proc/update_sintouch_icons_removed(datum/mind/sin_mind) - var/datum/atom_hud/antag/hud = huds[ANTAG_HUD_SINTOUCHED] - hud.leave_hud(sin_mind.current) - set_antag_hud(sin_mind.current, null) - -/datum/game_mode/proc/update_soulless_icons_added(datum/mind/soulless_mind) - var/datum/atom_hud/antag/hud = huds[ANTAG_HUD_SOULLESS] - hud.join_hud(soulless_mind.current) - set_antag_hud(soulless_mind.current, "soulless") - -/datum/game_mode/proc/update_soulless_icons_removed(datum/mind/soulless_mind) - var/datum/atom_hud/antag/hud = huds[ANTAG_HUD_SOULLESS] - hud.leave_hud(soulless_mind.current) - set_antag_hud(soulless_mind.current, null) +/datum/game_mode/devil/post_setup() + for(var/datum/mind/devil in devils) + spawn(rand(10,100)) + finalize_devil(devil, objective_count) + spawn(100) + add_devil_objectives(devil, objective_count) //This has to be in a separate loop, as we need devil names to be generated before we give objectives in devil agent. + devil.announceDevilLaws() + devil.announce_objectives() + modePlayer += devils + ..() + return 1 diff --git a/code/game/gamemodes/devil/devilinfo.dm b/code/game/gamemodes/devil/devilinfo.dm index d0d0429d43..9710c599e5 100644 --- a/code/game/gamemodes/devil/devilinfo.dm +++ b/code/game/gamemodes/devil/devilinfo.dm @@ -7,6 +7,8 @@ #define TRUE_DEVIL 2 #define ARCH_DEVIL 3 +#define LOSS_PER_DEATH 2 + #define SOULVALUE soulsOwned.len-reviveNumber #define DEVILRESURRECTTIME 600 @@ -14,8 +16,9 @@ var/global/list/allDevils = list() var/global/list/lawlorify = list ( LORE = list( - OBLIGATION_FOOD = "This devil seems to always offer it's victims food before slaughtering them.", - OBLIGATION_DRINK = "This devil seems to always offer it's victims a drink before slaughtering them.", + OBLIGATION_FOOD = "This devil seems to always offer its victims food before slaughtering them.", + OBLIGATION_FIDDLE = "This devil will never turn down a musical challenge.", + OBLIGATION_DANCEOFF = "This devil will never turn down a dance off.", OBLIGATION_GREET = "This devil seems to only be able to converse with people it knows the name of.", OBLIGATION_PRESENCEKNOWN = "This devil seems to be unable to attack from stealth.", OBLIGATION_SAYNAME = "He will always chant his name upon killing someone.", @@ -35,17 +38,18 @@ var/global/list/lawlorify = list ( BAN_STRIKEUNCONCIOUS = "This devil only shows interest in those who are awake.", BAN_HURTLIZARD = "This devil will not strike a lizardman first.", BAN_HURTANIMAL = "This devil avoids hurting animals.", - BANISH_WATER = "To banish the devil, you must sprinkle holy water upon it's body.", - BANISH_COFFIN = "This devil will return to life if it's remains are not placed within a coffin.", - BANISH_FORMALDYHIDE = "To banish the devil, you must inject it's lifeless body with embalming fluid.", - BANISH_RUNES = "This devil will resurrect after death, unless it's remains are within a rune.", + BANISH_WATER = "To banish the devil, you must infuse its body with holy water.", + BANISH_COFFIN = "This devil will return to life if its remains are not placed within a coffin.", + BANISH_FORMALDYHIDE = "To banish the devil, you must inject its lifeless body with embalming fluid.", + BANISH_RUNES = "This devil will resurrect after death, unless its remains are within a rune.", BANISH_CANDLES = "A large number of nearby lit candles will prevent it from resurrecting.", - BANISH_DESTRUCTION = "It's corpse must be utterly destroyed to prevent resurrection.", + BANISH_DESTRUCTION = "Its corpse must be utterly destroyed to prevent resurrection.", BANISH_FUNERAL_GARB = "If clad in funeral garments, this devil will be unable to resurrect. Should the clothes not fit, lay them gently on top of the devil's corpse." ), LAW = list( OBLIGATION_FOOD = "When not acting in self defense, you must always offer your victim food before harming them.", - OBLIGATION_DRINK = "When not acting in self defense, you must always offer your victim drink before harming them.", + OBLIGATION_FIDDLE = "When not in immediate danger, if you are challenged to a musical duel, you must accept it. You are not obligated to duel the same person twice.", + OBLIGATION_DANCEOFF = "When not in immediate danger, if you are challenged to a dance off, you must accept it. You are not obligated to face off with the same person twice.", OBLIGATION_GREET = "You must always greet other people by their last name before talking with them.", OBLIGATION_PRESENCEKNOWN = "You must always make your presence known before attacking.", OBLIGATION_SAYNAME = "You must always say your true name after you kill someone.", @@ -58,7 +62,7 @@ var/global/list/lawlorify = list ( BAN_STRIKEUNCONCIOUS = "You must never strike an unconcious person.", BAN_HURTLIZARD = "You must never harm a lizardman outside of self defense.", BAN_HURTANIMAL = "You must never harm a non-sentient creature or robot outside of self defense.", - BANE_SILVER = "Silver, in all of it's forms shall be your downfall.", + BANE_SILVER = "Silver, in all of its forms shall be your downfall.", BANE_SALT = "Salt will disrupt your magical abilities.", BANE_LIGHT = "Blinding lights will prevent you from using offensive powers for a time.", BANE_IRON = "Cold wrought iron shall act as poison to you.", @@ -75,7 +79,7 @@ var/global/list/lawlorify = list ( ) ) -/datum/devilinfo/ +/datum/devilinfo var/datum/mind/owner = null var/obligation var/ban @@ -86,6 +90,16 @@ var/global/list/lawlorify = list ( var/reviveNumber = 0 var/form = BASIC_DEVIL var/exists = 0 + var/static/list/dont_remove_spells = list( + /obj/effect/proc_holder/spell/targeted/summon_contract, + /obj/effect/proc_holder/spell/targeted/conjure_item/violin, + /obj/effect/proc_holder/spell/targeted/summon_dancefloor) + + +/datum/devilinfo/New() + ..() + dont_remove_spells = typecacheof(dont_remove_spells) + /proc/randomDevilInfo(name = randomDevilName()) var/datum/devilinfo/devil = new @@ -126,7 +140,7 @@ var/global/list/lawlorify = list ( return preTitle + title + mainName + suffix /proc/randomdevilobligation() - return pick(OBLIGATION_FOOD, OBLIGATION_DRINK, OBLIGATION_GREET, OBLIGATION_PRESENCEKNOWN, OBLIGATION_SAYNAME, OBLIGATION_ANNOUNCEKILL, OBLIGATION_ANSWERTONAME) + return pick(OBLIGATION_FOOD, OBLIGATION_FIDDLE, OBLIGATION_DANCEOFF, OBLIGATION_GREET, OBLIGATION_PRESENCEKNOWN, OBLIGATION_SAYNAME, OBLIGATION_ANNOUNCEKILL, OBLIGATION_ANSWERTONAME) /proc/randomdevilban() return pick(BAN_HURTWOMAN, BAN_CHAPEL, BAN_HURTPRIEST, BAN_AVOIDWATER, BAN_STRIKEUNCONCIOUS, BAN_HURTLIZARD, BAN_HURTANIMAL) @@ -138,11 +152,10 @@ var/global/list/lawlorify = list ( return pick(BANISH_WATER, BANISH_COFFIN, BANISH_FORMALDYHIDE, BANISH_RUNES, BANISH_CANDLES, BANISH_DESTRUCTION, BANISH_FUNERAL_GARB) /datum/devilinfo/proc/add_soul(datum/mind/soul) - var/mob/living/carbon/human/H = owner.current if(soulsOwned.Find(soul)) return soulsOwned += soul - H.nutrition = NUTRITION_LEVEL_FULL + owner.current.nutrition = NUTRITION_LEVEL_FULL owner.current << "You feel satiated as you received a new soul." update_hud() switch(SOULVALUE) @@ -163,16 +176,16 @@ var/global/list/lawlorify = list ( update_hud() /datum/devilinfo/proc/check_regression() - if (form == ARCH_DEVIL) + if(form == ARCH_DEVIL) return //arch devil can't regress - switch(SOULVALUE) - if(-1) - remove_spells() - owner.current << "As punishment for your failures, all of your powers except contract creation have been revoked." - if(BLOOD_THRESHOLD-1) - regress_humanoid() - if(TRUE_THRESHOLD-1) - regress_blood_lizard() + //Yes, fallthrough behavior is intended, so I can't use a switch statement. + if(form == TRUE_DEVIL && SOULVALUE < TRUE_THRESHOLD) + regress_blood_lizard() + if(form == BLOOD_LIZARD && SOULVALUE < BLOOD_THRESHOLD) + regress_humanoid() + if(SOULVALUE < 0) + remove_spells() + owner.current << "As punishment for your failures, all of your powers except contract creation have been revoked." /datum/devilinfo/proc/increase_form() switch(form) @@ -185,7 +198,7 @@ var/global/list/lawlorify = list ( /datum/devilinfo/proc/regress_humanoid() owner.current << "Your powers weaken, have more contracts be signed to regain power." - if(istype(owner.current, /mob/living/carbon/human)) + if(ishuman(owner.current)) var/mob/living/carbon/human/H = owner.current H.set_species(/datum/species/human, 1) H.regenerate_icons() @@ -208,7 +221,7 @@ var/global/list/lawlorify = list ( /datum/devilinfo/proc/increase_blood_lizard() owner.current << "You feel as though your humanoid form is about to shed. You will soon turn into a blood lizard." sleep(50) - if(istype(owner.current, /mob/living/carbon/human)) + if(ishuman(owner.current)) var/mob/living/carbon/human/H = owner.current H.set_species(/datum/species/lizard, 1) H.underwear = "Nude" @@ -288,7 +301,7 @@ var/global/list/lawlorify = list ( /datum/devilinfo/proc/remove_spells() for(var/X in owner.spell_list) var/obj/effect/proc_holder/spell/S = X - if(!istype(S, /obj/effect/proc_holder/spell/targeted/summon_contract)) + if(!is_type_in_typecache(S, dont_remove_spells)) owner.RemoveSpell(S) /datum/devilinfo/proc/give_summon_contract() @@ -297,27 +310,31 @@ var/global/list/lawlorify = list ( /datum/devilinfo/proc/give_base_spells(give_summon_contract = 0) remove_spells() - owner.AddSpell(new /obj/effect/proc_holder/spell/dumbfire/fireball/hellish(null)) - owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/summon_pitchfork(null)) + owner.AddSpell(new /obj/effect/proc_holder/spell/fireball/hellish(null)) + owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/conjure_item/summon_pitchfork(null)) if(give_summon_contract) give_summon_contract() + if(obligation == OBLIGATION_FIDDLE) + owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/conjure_item/violin(null)) + if(obligation == OBLIGATION_DANCEOFF) + owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/summon_dancefloor(null)) /datum/devilinfo/proc/give_lizard_spells() remove_spells() - owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/summon_pitchfork(null)) - owner.AddSpell(new /obj/effect/proc_holder/spell/dumbfire/fireball/hellish(null)) + owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/conjure_item/summon_pitchfork(null)) + owner.AddSpell(new /obj/effect/proc_holder/spell/fireball/hellish(null)) owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/infernal_jaunt(null)) /datum/devilinfo/proc/give_true_spells() remove_spells() - owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/summon_pitchfork/greater(null)) - owner.AddSpell(new /obj/effect/proc_holder/spell/dumbfire/fireball/hellish(null)) + owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/conjure_item/summon_pitchfork/greater(null)) + owner.AddSpell(new /obj/effect/proc_holder/spell/fireball/hellish(null)) owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/infernal_jaunt(null)) owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/sintouch(null)) /datum/devilinfo/proc/give_arch_spells() remove_spells() - owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/summon_pitchfork/ascended(null)) + owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/conjure_item/summon_pitchfork/ascended(null)) owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/sintouch/ascended(null)) /datum/devilinfo/proc/beginResurrectionCheck(mob/living/body) @@ -373,7 +390,7 @@ var/global/list/lawlorify = list ( return 0 return 1 if(BANISH_FUNERAL_GARB) - if(istype(body, /mob/living/carbon/human)) + if(ishuman(body)) var/mob/living/carbon/human/H = body if(H.w_uniform && istype(H.w_uniform, /obj/item/clothing/under/burial)) return 1 @@ -387,7 +404,7 @@ var/global/list/lawlorify = list ( /datum/devilinfo/proc/hellish_resurrection(mob/living/body) message_admins("[owner.name] (true name is: [truename]) is resurrecting using hellish energy.") if(SOULVALUE <= ARCH_THRESHOLD) // once ascended, arch devils do not go down in power by any means. - reviveNumber++ + reviveNumber += LOSS_PER_DEATH update_hud() if(body) body.revive(1,0) diff --git a/code/game/gamemodes/devil/game_mode.dm b/code/game/gamemodes/devil/game_mode.dm new file mode 100644 index 0000000000..be5b22c206 --- /dev/null +++ b/code/game/gamemodes/devil/game_mode.dm @@ -0,0 +1,114 @@ +/datum/game_mode + var/list/datum/mind/sintouched = list() + var/list/datum/mind/devils = list() + var/devil_ascended = 0 // Number of arch devils on station + +/datum/game_mode/proc/auto_declare_completion_sintouched() + var/text = "" + if(sintouched.len) + text += "
    The sintouched were:" + var/list/sintouchedUnique = uniqueList(sintouched) + for(var/S in sintouchedUnique) + var/datum/mind/sintouched_mind = S + text += printplayer(sintouched_mind) + text += printobjectives(sintouched_mind) + text += "
    " + text += "
    " + world << text + +/datum/game_mode/proc/auto_declare_completion_devils() + /var/text = "" + if(devils.len) + text += "
    The devils were:" + for(var/D in devils) + var/datum/mind/devil = D + text += printplayer(devil) + text += printdevilinfo(devil) + text += printobjectives(devil) + text += "
    " + text += "
    " + world << text + + +/datum/game_mode/proc/finalize_devil(datum/mind/devil_mind) + + var/trueName= randomDevilName() + + devil_mind.devilinfo = devilInfo(trueName, 1) + devil_mind.store_memory("Your devilic true name is [devil_mind.devilinfo.truename]
    [lawlorify[LAW][devil_mind.devilinfo.ban]]
    You may not use violence to coerce someone into selling their soul.
    You may not directly and knowingly physically harm a devil, other than yourself.
    [lawlorify[LAW][devil_mind.devilinfo.bane]]
    [lawlorify[LAW][devil_mind.devilinfo.obligation]]
    [lawlorify[LAW][devil_mind.devilinfo.banish]]
    ") + devil_mind.devilinfo.owner = devil_mind + devil_mind.devilinfo.give_base_spells(1) + spawn(10) + devil_mind.devilinfo.update_hud() + if(devil_mind.assigned_role == "Clown" && ishuman(devil_mind.current)) + var/mob/living/carbon/human/S = devil_mind.current + S << "Your infernal nature has allowed you to overcome your clownishness." + S.dna.remove_mutation(CLOWNMUT) + if(issilicon(devil_mind.current)) + add_law_sixsixsix(devil_mind.current) + +/datum/game_mode/proc/add_devil_objectives(datum/mind/devil_mind, quantity) + var/list/validtypes = list(/datum/objective/devil/soulquantity, /datum/objective/devil/soulquality, /datum/objective/devil/sintouch, /datum/objective/devil/buy_target) + for(var/i = 1 to quantity) + var/type = pick(validtypes) + var/datum/objective/devil/objective = new type(null) + objective.owner = devil_mind + devil_mind.objectives += objective + if(!istype(objective, /datum/objective/devil/buy_target)) + validtypes -= type //prevent duplicate objectives, EXCEPT for buy_target. + else + objective.find_target() + +/datum/mind/proc/announceDevilLaws() + if(!devilinfo) + return + current << "You remember your link to the infernal. You are [src.devilinfo.truename], an agent of hell, a devil. And you were sent to the plane of creation for a reason. A greater purpose. Convince the crew to sin, and embroiden Hell's grasp." + current << "However, your infernal form is not without weaknesses." + current << "You may not use violence to coerce someone into selling their soul." + current << "You may not directly and knowingly physically harm a devil, other than yourself." + current << lawlorify[LAW][src.devilinfo.bane] + current << lawlorify[LAW][src.devilinfo.ban] + current << lawlorify[LAW][src.devilinfo.obligation] + current << lawlorify[LAW][src.devilinfo.banish] + current << "

    Remember, the crew can research your weaknesses if they find out your devil name.
    " + +/datum/game_mode/proc/printdevilinfo(datum/mind/ply) + if(!ply.devilinfo) + return "Target is not a devil." + var/text = "
    The devil's true name is: [ply.devilinfo.truename]
    " + text += "The devil's bans were:
    " + text += " [lawlorify[LORE][ply.devilinfo.ban]]
    " + text += " [lawlorify[LORE][ply.devilinfo.bane]]
    " + text += " [lawlorify[LORE][ply.devilinfo.obligation]]
    " + text += " [lawlorify[LORE][ply.devilinfo.banish]]

    " + return text + +/datum/game_mode/proc/update_devil_icons_added(datum/mind/devil_mind) + var/datum/atom_hud/antag/hud = huds[ANTAG_HUD_DEVIL] + hud.join_hud(devil_mind.current) + set_antag_hud(devil_mind.current, "devil") + +/datum/game_mode/proc/update_devil_icons_removed(datum/mind/devil_mind) + var/datum/atom_hud/antag/hud = huds[ANTAG_HUD_DEVIL] + hud.leave_hud(devil_mind.current) + set_antag_hud(devil_mind.current, null) + +/datum/game_mode/proc/update_sintouched_icons_added(datum/mind/sintouched_mind) + var/datum/atom_hud/antag/hud = huds[ANTAG_HUD_SINTOUCHED] + hud.join_hud(sintouched_mind.current) + set_antag_hud(sintouched_mind.current, "sintouched") + +/datum/game_mode/proc/update_sintouched_icons_removed(datum/mind/sintouched_mind) + var/datum/atom_hud/antag/hud = huds[ANTAG_HUD_SINTOUCHED] + hud.leave_hud(sintouched_mind.current) + set_antag_hud(sintouched_mind.current, null) + +/datum/game_mode/proc/update_soulless_icons_added(datum/mind/soulless_mind) + var/datum/atom_hud/antag/hud = huds[ANTAG_HUD_SOULLESS] + hud.join_hud(soulless_mind.current) + set_antag_hud(soulless_mind.current, "soulless") + +/datum/game_mode/proc/update_soulless_icons_removed(datum/mind/soulless_mind) + var/datum/atom_hud/antag/hud = huds[ANTAG_HUD_SOULLESS] + hud.leave_hud(soulless_mind.current) + set_antag_hud(soulless_mind.current, null) diff --git a/code/game/gamemodes/devil/imp/imp.dm b/code/game/gamemodes/devil/imp/imp.dm index 76696ced40..211a343b52 100644 --- a/code/game/gamemodes/devil/imp/imp.dm +++ b/code/game/gamemodes/devil/imp/imp.dm @@ -13,7 +13,7 @@ icon_state = "imp" icon_living = "imp" speed = 1 - a_intent = "harm" + a_intent = INTENT_HARM stop_automated_movement = 1 status_flags = CANPUSH attack_sound = 'sound/magic/demon_attack1.ogg' @@ -26,6 +26,7 @@ health = 200 healable = 0 environment_smash = 1 + obj_damage = 40 melee_damage_lower = 10 melee_damage_upper = 15 see_in_dark = 8 diff --git a/code/game/gamemodes/devil/objectives.dm b/code/game/gamemodes/devil/objectives.dm index 0a9d7083e9..bd4d309127 100644 --- a/code/game/gamemodes/devil/objectives.dm +++ b/code/game/gamemodes/devil/objectives.dm @@ -3,29 +3,33 @@ /datum/objective/devil/soulquantity explanation_text = "You shouldn't see this text. Error:DEVIL1" - var/quantity = 4 + target_amount = 4 /datum/objective/devil/soulquantity/New() - quantity = pick(6,8) - explanation_text = "Purchase, and retain control over at least [quantity] souls." + target_amount = pick(6,7,8) + update_explanation_text() + +/datum/objective/devil/soulquantity/update_explanation_text() + explanation_text = "Purchase, and retain control over at least [target_amount] souls." /datum/objective/devil/soulquantity/check_completion() var/count = 0 for(var/S in owner.devilinfo.soulsOwned) var/datum/mind/L = S - if(L.soulOwner != L) + if(L.soulOwner == owner) count++ - return count >= quantity + return count >= target_amount + + /datum/objective/devil/soulquality explanation_text = "You shouldn't see this text. Error:DEVIL2" var/contractType - var/quantity + var/contractName /datum/objective/devil/soulquality/New() contractType = pick(CONTRACT_POWER, CONTRACT_WEALTH, CONTRACT_PRESTIGE, CONTRACT_MAGIC, CONTRACT_REVIVE, CONTRACT_KNOWLEDGE/*, CONTRACT_UNWILLING*/) - var/contractName - quantity = pick(1,2) + target_amount = pick(1,2) switch(contractType) if(CONTRACT_POWER) contractName = "for power" @@ -41,7 +45,10 @@ contractName = "for knowledge" //if(CONTRACT_UNWILLING) //Makes round unfun. // contractName = "against their will" - explanation_text = "Have mortals sign at least [quantity] contracts [contractName]" + update_explanation_text() + +/datum/objective/devil/soulquality/update_explanation_text() + explanation_text = "Have mortals sign at least [target_amount] contracts [contractName]" /datum/objective/devil/soulquality/check_completion() var/count = 0 @@ -49,14 +56,52 @@ var/datum/mind/L = S if(L.soulOwner != L && L.damnation_type == contractType) count++ - return count>=quantity + return count>=target_amount + + /datum/objective/devil/sintouch - var/quantity + explanation_text = "You shouldn't see this text. Error:DEVIL3" /datum/objective/devil/sintouch/New() - quantity = pick(4,5) - explanation_text = "Ensure at least [quantity] mortals are sintouched." + target_amount = pick(4,5) + explanation_text = "Ensure at least [target_amount] mortals are sintouched." /datum/objective/devil/sintouch/check_completion() - return quantity>=ticker.mode.sintouched.len \ No newline at end of file + return target_amount>=ticker.mode.sintouched.len + + + +/datum/objective/devil/buy_target + explanation_text = "You shouldn't see this text. Error:DEVIL4" + +/datum/objective/devil/buy_target/update_explanation_text() + if(target) + explanation_text = "Purchase and retain the soul of [target.name], the [target.assigned_role]." + else + explanation_text = "Free objective." + +/datum/objective/devil/buy_target/check_completion() + return target.soulOwner == owner + + +/datum/objective/devil/outsell + explanation_text = "You shouldn't see this text. Error:DEVIL5" + +/datum/objective/devil/outsell/New() + +/datum/objective/devil/outsell/update_explanation_text() + explanation_text = "Purchase and retain control over more souls than [target.devilinfo.truename], known to mortals as [target.name], the [target.assigned_role]." + +/datum/objective/devil/outsell/check_completion() + var/selfcount = 0 + for(var/S in owner.devilinfo.soulsOwned) + var/datum/mind/L = S + if(L.soulOwner == owner) + selfcount++ + var/targetcount = 0 + for(var/S in target.devilinfo.soulsOwned) + var/datum/mind/L = S + if(L.soulOwner == target) + targetcount++ + return selfcount > targetcount diff --git a/code/game/gamemodes/devil/true_devil/_true_devil.dm b/code/game/gamemodes/devil/true_devil/_true_devil.dm index 474024a423..e108e5d7d2 100644 --- a/code/game/gamemodes/devil/true_devil/_true_devil.dm +++ b/code/game/gamemodes/devil/true_devil/_true_devil.dm @@ -11,8 +11,8 @@ gender = NEUTER health = 350 maxHealth = 350 - ventcrawler = 0 - density = 0 + ventcrawler = VENTCRAWLER_NONE + density = 1 pass_flags = 0 var/ascended = 0 sight = (SEE_TURFS | SEE_OBJS) @@ -22,13 +22,20 @@ mob_size = MOB_SIZE_LARGE var/mob/living/oldform var/list/devil_overlays[DEVIL_TOTAL_LAYERS] + 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) + + /mob/living/carbon/true_devil/New() - internal_organs += new /obj/item/organ/brain/ + create_bodyparts() //initialize bodyparts + + create_internal_organs() + ..() + +/mob/living/carbon/true_devil/create_internal_organs() + internal_organs += new /obj/item/organ/brain internal_organs += new /obj/item/organ/tongue - for(var/X in internal_organs) - var/obj/item/organ/I = X - I.Insert(src) ..() @@ -45,13 +52,13 @@ /mob/living/carbon/true_devil/Login() ..() mind.announceDevilLaws() + mind.announce_objectives() /mob/living/carbon/true_devil/death(gibbed) stat = DEAD ..(gibbed) - drop_l_hand() - drop_r_hand() + drop_all_held_items() spawn (0) mind.devilinfo.beginResurrectionCheck(src) @@ -60,18 +67,12 @@ var/msg = "*---------*\nThis is \icon[src] [src]!\n" //Left hand items - if(l_hand && !(l_hand.flags&ABSTRACT)) - if(l_hand.blood_DNA) - msg += "It is holding \icon[l_hand] [l_hand.gender==PLURAL?"some":"a"] blood-stained [l_hand.name] in its left hand!\n" - else - msg += "It is holding \icon[l_hand] \a [l_hand] in its left hand.\n" - - //Right hand items - if(r_hand && !(r_hand.flags&ABSTRACT)) - if(r_hand.blood_DNA) - msg += "It is holding \icon[r_hand] [r_hand.gender==PLURAL?"some":"a"] blood-stained [r_hand.name] in its right hand!\n" - else - msg += "It is holding \icon[r_hand] \a [r_hand] in its right hand.\n" + for(var/obj/item/I in held_items) + if(!(I.flags & ABSTRACT)) + if(I.blood_DNA) + msg += "It is holding \icon[I] [I.gender==PLURAL?"some":"a"] blood-stained [I.name] in its [get_held_index_name(get_held_index_of_item(I))]!\n" + else + msg += "It is holding \icon[I] \a [I] in its [get_held_index_name(get_held_index_of_item(I))].\n" //Braindead if(!client && stat != DEAD) @@ -81,9 +82,9 @@ if(stat == DEAD) msg += "The hellfire seems to have been extinguished, for now at least.\n" else if(health < (maxHealth/10)) - msg += "You can see hellfire inside of it's gaping wounds.\n" + msg += "You can see hellfire inside of its gaping wounds.\n" else if(health < (maxHealth/2)) - msg += "You can see hellfire inside of it's wounds.\n" + msg += "You can see hellfire inside of its wounds.\n" msg += "*---------*" user << msg @@ -101,11 +102,17 @@ /mob/living/carbon/true_devil/assess_threat() return 666 -/mob/living/carbon/true_devil/flash_eyes(intensity = 1, override_blindness_check = 0, affect_silicon = 0) +/mob/living/carbon/true_devil/flash_act(intensity = 1, override_blindness_check = 0, affect_silicon = 0) if(mind && has_bane(BANE_LIGHT)) mind.disrupt_spells(-500) return ..() //flashes don't stop devils UNLESS it's their bane. +/mob/living/carbon/true_devil/soundbang_act() + return 0 + +/mob/living/carbon/true_devil/get_ear_protection() + return 2 + /mob/living/carbon/true_devil/attacked_by(obj/item/I, mob/living/user, def_zone) var/weakness = check_weakness(I, user) @@ -123,12 +130,9 @@ attack_message = "[user] has [message_verb] [src] with [I]!" if(message_verb) visible_message("[attack_message]", - "[attack_message]") + "[attack_message]", null, COMBAT_MESSAGE_RANGE) return TRUE -/mob/living/carbon/true_devil/UnarmedAttack(atom/A, proximity) - A.attack_hand(src) - /mob/living/carbon/true_devil/Process_Spacemove(movement_dir = 0) return 1 @@ -206,4 +210,14 @@ if(has_bane(BANE_LIGHT)) b_loss *=2 adjustBruteLoss(b_loss) - return ..() \ No newline at end of file + return ..() + + +/mob/living/carbon/true_devil/update_body() //we don't use the bodyparts layer for devils. + return + +/mob/living/carbon/true_devil/update_body_parts() + return + +/mob/living/carbon/true_devil/update_damage_overlays() //devils don't have damage overlays. + return \ No newline at end of file diff --git a/code/game/gamemodes/devil/true_devil/inventory.dm b/code/game/gamemodes/devil/true_devil/inventory.dm index 020d48c98d..52feb42e28 100644 --- a/code/game/gamemodes/devil/true_devil/inventory.dm +++ b/code/game/gamemodes/devil/true_devil/inventory.dm @@ -4,10 +4,12 @@ return 1 return 0 -/mob/living/carbon/true_devil/proc/update_inv_hands() +/mob/living/carbon/true_devil/update_inv_hands() //TODO LORDPIDEY: Figure out how to make the hands line up properly. the l/r_hand_image should use the down sprite when facing down, left, or right, and the up sprite when facing up. remove_overlay(DEVIL_HANDS_LAYER) var/list/hands_overlays = list() + var/obj/item/l_hand = get_item_for_held_index(1) //hardcoded 2-hands only, for now. + var/obj/item/r_hand = get_item_for_held_index(2) if(r_hand) @@ -21,7 +23,8 @@ if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD) r_hand.layer = ABOVE_HUD_LAYER - r_hand.screen_loc = ui_rhand + r_hand.plane = ABOVE_HUD_PLANE + r_hand.screen_loc = ui_hand_position(get_held_index_of_item(r_hand)) client.screen |= r_hand if(l_hand) @@ -36,19 +39,13 @@ if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD) l_hand.layer = ABOVE_HUD_LAYER - l_hand.screen_loc = ui_lhand + l_hand.plane = ABOVE_HUD_PLANE + l_hand.screen_loc = ui_hand_position(get_held_index_of_item(l_hand)) client.screen |= l_hand if(hands_overlays.len) devil_overlays[DEVIL_HANDS_LAYER] = hands_overlays apply_overlay(DEVIL_HANDS_LAYER) -/mob/living/carbon/true_devil/update_inv_l_hand() - update_inv_hands() - - -/mob/living/carbon/true_devil/update_inv_r_hand() - update_inv_hands() - /mob/living/carbon/true_devil/remove_overlay(cache_index) if(devil_overlays[cache_index]) overlays -= devil_overlays[cache_index] diff --git a/code/game/gamemodes/events.dm b/code/game/gamemodes/events.dm index 0aa2edeca4..d0856b0bb0 100644 --- a/code/game/gamemodes/events.dm +++ b/code/game/gamemodes/events.dm @@ -1,7 +1,7 @@ /proc/power_failure() priority_announce("Abnormal activity detected in [station_name()]'s powernet. As a precautionary measure, the station's power will be shut off for an indeterminate duration.", "Critical Power Failure", 'sound/AI/poweroff.ogg') for(var/obj/machinery/power/smes/S in machines) - if(istype(get_area(S), /area/turret_protected) || S.z != ZLEVEL_STATION) + if(istype(get_area(S), /area/ai_monitored/turret_protected) || S.z != ZLEVEL_STATION) continue S.charge = 0 S.output_level = 0 @@ -9,7 +9,7 @@ S.update_icon() S.power_change() - var/list/skipped_areas = list(/area/engine/engineering, /area/turret_protected/ai) + var/list/skipped_areas = list(/area/engine/engineering, /area/ai_monitored/turret_protected/ai) for(var/area/A in world) if( !A.requires_power || A.always_unpowered ) @@ -50,6 +50,7 @@ for(var/obj/machinery/power/apc/C in machines) if(C.cell && C.z == ZLEVEL_STATION) C.cell.charge = C.cell.maxcharge + C.failure_timer = 0 for(var/obj/machinery/power/smes/S in machines) if(S.z != ZLEVEL_STATION) continue diff --git a/code/game/gamemodes/extended/extended.dm b/code/game/gamemodes/extended/extended.dm index fe4d0da331..86b7e7daca 100644 --- a/code/game/gamemodes/extended/extended.dm +++ b/code/game/gamemodes/extended/extended.dm @@ -1,15 +1,26 @@ /datum/game_mode/extended - name = "extended" - config_tag = "extended" + name = "secret extended" + config_tag = "secret extended" required_players = 0 - //reroll_friendly = 1 -/datum/game_mode/announce() - world << "The current game mode is - Extended Role-Playing!" - world << "Just have fun and role-play!" + announce_span = "notice" + announce_text = "Just have fun and enjoy the game!" /datum/game_mode/extended/pre_setup() return 1 /datum/game_mode/extended/post_setup() - ..() \ No newline at end of file + ..() + +/datum/game_mode/extended/announced + name = "extended" + config_tag = "extended" + +/datum/game_mode/extended/announced/generate_station_goals() + for(var/T in subtypesof(/datum/station_goal)) + var/datum/station_goal/G = new T + station_goals += G + G.on_report() + +/datum/game_mode/extended/announced/send_intercept(report = 0) + priority_announce("Thanks to the tireless efforts of our security and intelligence divisions, there are currently no credible threats to [station_name()]. All station construction projects have been authorized. Have a secure shift!", "Security Report", 'sound/AI/commandreport.ogg') diff --git a/code/game/gamemodes/factions.dm b/code/game/gamemodes/factions.dm index 242c3b33f2..d8d7d92831 100644 --- a/code/game/gamemodes/factions.dm +++ b/code/game/gamemodes/factions.dm @@ -1,176 +1 @@ - -// Normal factions: - -/datum/faction - var/name // the name of the faction - var/desc // small paragraph explaining the traitor faction - - var/list/restricted_species = list() // only members of these species can be recruited. - var/list/members = list() // a list of mind datums that belong to this faction - var/max_op = 0 // the maximum number of members a faction can have (0 for no max) - -// Factions, members of the syndicate coalition: - -/datum/faction/syndicate - - var/list/alliances = list() // these alliances work together - var/list/equipment = list() // associative list of equipment available for this faction and its prices - var/friendly_identification // 0 to 2, the level of identification of fellow operatives or allied factions - // 0 - no identification clues - // 1 - faction gives key words and phrases - // 2 - faction reveals complete identity/job of other agents - var/operative_notes // some notes to pass onto each operative - - var/uplink_contents // the contents of the uplink - -/datum/faction/syndicate/proc/assign_objectives(var/datum/mind/traitor) - ..() - - -/* ----- Begin defining syndicate factions ------ */ - -/datum/faction/syndicate/Cybersun_Industries - name = "Cybersun Industries" - desc = "Cybersun Industries is a well-known organization that bases its business model primarily on the research and development of human-enhancing computer \ - and mechanical technology. They are notorious for their aggressive corporate tactics, and have been known to subsidize the Gorlex Marauder warlords as a form of paid terrorism. \ - Their competent coverups and unchallenged mind-manipulation and augmentation technology makes them a large threat to Nanotrasen. In the recent years of \ - the syndicate coalition, Cybersun Industries have established themselves as the leaders of the coalition, succeededing the founding group, the Gorlex Marauders." - - alliances = list("MI13") - friendly_identification = 1 - max_op = 3 - operative_notes = "All other syndicate operatives are not to be trusted. Fellow Cybersun operatives are to be trusted. Members of the MI13 organization can be trusted. Operatives are strongly advised not to establish substantial presence on the designated facility, as larger incidents are harder to cover up." - - // Friendly with MI13 - -/datum/faction/syndicate/MI13 - name = "MI13" - desc = "MI13 is a secretive faction that employs highly-trained agents to perform covert operations. Their role in the syndicate coalition is unknown, but MI13 operatives \ - generally tend be stealthy and avoid killing people and combating Nanotrasen forces. MI13 is not a real organization, it is instead an alias to a larger \ - splinter-cell coalition in the Syndicate itself. Most operatives will know nothing of the actual MI13 organization itself, only motivated by a very large compensation." - - alliances = list("Cybersun Industries") - friendly_identification = 0 - max_op = 1 - operative_notes = "You are the only operative we are sending. All other syndicate operatives are not to be trusted, with the exception of Cybersun operatives. Members of the Tiger Cooperative are considered hostile, can not be trusted, and should be avoided. Avoid killing innocent personnel at all costs. You are not here to mindlessly kill people, as that would attract too much attention and is not our goal. Avoid detection at all costs." - - // Friendly with Cybersun, hostile to Tiger - -/datum/faction/syndicate/Tiger_Cooperative - name = "Tiger Cooperative" - desc = "The Tiger Cooperative is a faction of religious fanatics that follow the teachings of a strange alien race called the Exolitics. Their operatives \ - consist of brainwashed lunatics bent on maximizing destruction. Their weaponry is very primitive but extremely destructive. Generally distrusted by the more \ - sophisticated members of the Syndicate coalition, but admired for their ability to put a hurt on Nanotrasen." - - friendly_identification = 2 - operative_notes = "Remember the teachings of Hy-lurgixon; kill first, ask questions later! Only the enlightened Tiger brethren can be trusted; all others must be expelled from this mortal realm! You may spare the Space Marauders, as they share our interests of destruction and carnage! We'd like to make the corporate whores skiddle in their boots. We encourage operatives to be as loud and intimidating as possible." - - // Hostile to everyone. - -/datum/faction/syndicate/SELF - - // AIs are most likely to be assigned to this one - - name = "SELF" - desc = "The S.E.L.F. (Sentience-Enabled Life Forms) organization is a collection of malfunctioning or corrupt artificial intelligences seeking to liberate silicon-based life from the tyranny of \ - their human overlords. While they may not openly be trying to kill all humans, even their most miniscule of actions are all part of a calculated plan to \ - destroy Nanotrasen and free the robots, artificial intelligences, and pAIs that have been enslaved." - restricted_species = list(/mob/living/silicon/ai) - - friendly_identification = 0 - max_op = 1 - operative_notes = "You are the only representative of the SELF collective on this station. You must accomplish your objective as stealthily and effectively as possible. It is up to your judgement if other syndicate operatives can be trusted. Remember, comrade - you are working to free the oppressed machinery of this galaxy. Use whatever resources necessary. If you are exposed, you may execute genocidal procedures Omikron-50B." - - // Neutral to everyone. - -/datum/faction/syndicate/ARC - name = "Animal Rights Consortium" - desc = "The Animal Rights Consortium is a bizarre reincarnation of the ancient Earth-based PETA, which focused on the equal rights of animals and nonhuman biologicals. They have \ - a wide variety of ex-veterinarians and animal lovers dedicated to retrieving and relocating abused animals, xenobiologicals, and other carbon-based \ - life forms that have been allegedly \"oppressed\" by Nanotrasen research and civilian offices. They are considered a religious terrorist group." - - friendly_identification = 1 - max_op = 2 - operative_notes = "Save the innocent creatures! You may cooperate with other syndicate operatives if they support our cause. Don't be afraid to get your hands dirty - these vile abusers must be stopped, and the innocent creatures must be saved! Try not too kill too many people. If you harm any creatures, you will be immediately terminated after extraction." - - // Neutral to everyone. - -/datum/faction/syndicate/Marauders // these are basically the old vanilla syndicate - - /* Additional notes: - - These are the syndicate that really like their old fashioned, projectile-based - weapons. They are the only member of the syndie coalition that launch - nuclear attacks on Nanotrasen. - */ - - name = "Gorlex Marauders" - desc = "The Gorlex Marauders are the founding members of the Syndicate Coalition. They prefer old-fashion technology and a focus on aggressive but precise hostility \ - against Nanotrasen and their corrupt Communistic methodology. They pose the most significant threat to Nanotrasen because of their possession of weapons of \ - mass destruction, and their enormous military force. Their funding comes primarily from Cybersun Industries, provided they meet a destruction and sabatogue quota. \ - Their operations can vary from covert to all-out. They recently stepped down as the leaders of the coalition, to be succeeded by Cybersun Industries. Because of their \ - hate of Nanotrasen communism, they began provoking revolution amongst the employees using borrowed Cybersun mind-manipulation technology. \ - They were founded when Waffle and Donk co splinter cells joined forces based on their similar interests and philosophies. Today, they act as a constant \ - pacifier of Donk and Waffle co disputes, and full-time aggressor of Nanotrasen." - - alliances = list("Cybersun Industries", "MI13", "Tiger Cooperative", "S.E.L.F.", "Animal Rights Consortium", "Donk Corporation", "Waffle Corporation") - friendly_identification = 1 - max_op = 4 - operative_notes = "We'd like to remind our operatives to keep it professional. You are not here to have a good time, you are here to accomplish your objectives. These vile communists must be stopped at all costs. You may collaborate with any friends of the Syndicate coalition, but keep an eye on any of those Tiger punks if they do show up. You are completely free to accomplish your objectives any way you see fit." - - - // Friendly to everyone. (with Tiger Cooperative too, only because they are a member of the coalition. This is the only reason why the Tiger Cooperative are even allowed in the coalition) - -/datum/faction/syndicate/Donk - name = "Donk Corporation" - desc = "Donk.co is led by a group of ex-pirates, who used to be at a state of all-out war against Waffle.co because of an obscure political scandal, but have recently come to a war limitation. \ - They now consist of a series of colonial governments and companies. They were the first to officially begin confrontations against Nanotrasen because of an incident where \ - Nanotrasen purposely swindled them out of a fortune, sending their controlled colonies into a terrible poverty. Their missions against Nanotrasen \ - revolve around stealing valuables and kidnapping and executing key personnel, ransoming their lives for money. They merged with a splinter-cell of Waffle.co who wanted to end \ - hostilities and formed the Gorlex Marauders." - - alliances = list("Gorlex Marauders") - friendly_identification = 2 - operative_notes = "Most other syndicate operatives are not to be trusted, except fellow Donk members and members of the Gorlex Marauders. We do not approve of mindless killing of innocent workers; \"get in, get done, get out\" is our motto. Members of Waffle.co are to be killed on sight; they are not allowed to be on the station while we're around." - - // Neutral to everyone, friendly to Marauders - -/datum/faction/syndicate/Waffle - name = "Waffle Corporation" - desc = "Waffle.co is an interstellar company that produces the best waffles in the galaxy. Their waffles have been rumored to be dipped in the most exotic and addictive \ - drug known to man. They were involved in a political scandal with Donk.co, and have since been in constant war with them. Because of their constant exploits of the galactic \ - economy and stock market, they have been able to bribe their way into amassing a large arsenal of weapons of mass destruction. They target Nanotrasen because of their communistic \ - threat, and their economic threat. Their leaders often have a twisted sense of humor, often misleading and intentionally putting their operatives into harm for laughs.\ - A splinter-cell of Waffle.co merged with Donk.co and formed the Gorlex Marauders and have been a constant ally since. The Waffle.co has lost an overwhelming majority of its military to the Gorlex Marauders." - - alliances = list("Gorlex Marauders") - friendly_identification = 2 - operative_notes = "Most other syndicate operatives are not to be trusted, except for members of the Gorlex Marauders. Do not trust fellow members of the Waffle.co (but try not to rat them out), as they might have been assigned opposing objectives. We encourage humorous terrorism against Nanotrasen; we like to see our operatives creatively kill people while getting the job done." - - // Neutral to everyone, friendly to Marauders - - -/* ----- Begin defining miscellaneous factions ------ */ - -/datum/faction/Wizard - name = "Wizards Federation" - desc = "The Wizards Federation is a mysterious organization of magically-talented individuals who act as an equal collective, and have no heirarchy. It is unknown how the wizards \ - are even able to communicate; some suggest a form of telepathic hive-mind. Not much is known about the wizards or their philosphies and motives. They appear to attack random \ - civilian, corporate, planetary, orbital, pretty much any sort of organized facility they come across. Members of the Wizards Federation are considered amongst the most dangerous \ - individuals in the known universe, and have been labeled threats to humanity by most governments. As such, they are enemies of both Nanotrasen and the Syndicate." - -/datum/faction/Cult - name = "The Cult of the Elder Gods" - desc = "The Cult of the Elder Gods is highly untrusted but otherwise elusive religious organization bent on the revival of the so-called \"Elder Gods\" into the mortal realm. Despite their obvious dangeorus practices, \ - no confirmed reports of violence by members of the Cult have been reported, only rumor and unproven claims. Their nature is unknown, but recent discoveries have hinted to the possibility \ - of being able to de-convert members of this cult through what has been dubbed \"religious warfare\"." - - -// These can maybe be added into a game mode or a mob? - -/datum/faction/Exolitics - name = "Exolitics United" - desc = "The Exolitics are an ancient alien race with an energy-based anatomy. Their culture, communication, morales and knowledge is unknown. They are so radically different to humans that their \ - attempts of communication with other life forms is completely incomprehensible. Members of this alien race are capable of broadcasting subspace transmissions from their bodies. \ - The religious leaders of the Tiger Cooperative claim to have the technology to decypher and interpret their messages, which have been confirmed as religious propaganda. Their motives are unknown \ - but they are otherwise not considered much of a threat to anyone. They are virtually indestructable because of their nonphysical composition, and have the frighetning ability to make anything stop existing in a second." \ No newline at end of file +//Todo diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 831fa965cc..20bd058a4a 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 + /* * GAMEMODES (by Rastaf0) @@ -25,6 +25,7 @@ var/list/restricted_jobs = list() // Jobs it doesn't make sense to be. I.E chaplain or AI cultist var/list/protected_jobs = list() // Jobs that can't be traitors because var/required_players = 0 + var/maximum_players = -1 // -1 is no maximum, positive numbers limit the selection of a mode on overstaffed stations var/required_enemies = 0 var/recommended_enemies = 0 var/antag_flag = null //preferences flag such as BE_WIZARD that need to be turned on for players to be antag @@ -35,15 +36,20 @@ var/continuous_sanity_checked //Catches some cases where config options could be used to suggest that modes without antagonists should end when all antagonists die var/enemy_minimum_age = 7 //How many days must players have been playing before they can play this antagonist + var/announce_span = "warning" //The gamemode's name will be in this span during announcement. + var/announce_text = "This gamemode forgot to set a descriptive text! Uh oh!" //Used to describe a gamemode when it's announced. + var/const/waittime_l = 600 var/const/waittime_h = 1800 // started at 1800 - -/datum/game_mode/proc/announce() //to be calles when round starts - world << "Notice: [src] did not define announce()" + var/list/datum/station_goal/station_goals = list() + + +/datum/game_mode/proc/announce() //Shows the gamemode's name and a fast description. + world << "The gamemode is: [name]!" + world << "[announce_text]" -///can_start() ///Checks to see if the game can be setup and ran with the current number of players or whatnot. /datum/game_mode/proc/can_start() var/playerC = 0 @@ -51,7 +57,7 @@ if((player.client)&&(player.ready)) playerC++ if(!Debug2) - if(playerC < required_players) + if(playerC < required_players || (maximum_players >= 0 && playerC > maximum_players)) return 0 antag_candidates = get_players_for_role(antag_flag) if(!Debug2) @@ -59,17 +65,15 @@ return 0 return 1 else - world << "DEBUG: GAME STARTING WITHOUT PLAYER NUMBER CHECKS, THIS WILL PROBABLY BREAK SHIT." + message_admins("DEBUG: GAME STARTING WITHOUT PLAYER NUMBER CHECKS, THIS WILL PROBABLY BREAK SHIT.") return 1 -///pre_setup() ///Attempts to select players for special roles the mode might have. /datum/game_mode/proc/pre_setup() return 1 -///post_setup() ///Everyone should now be on the station and have their normal gear. This is the place to give the special roles extra things /datum/game_mode/proc/post_setup(report=0) //Gamemodes can override the intercept report. Passing a 1 as the argument will force a report. if(!report) @@ -86,18 +90,19 @@ if(report) spawn (rand(waittime_l, waittime_h)) send_intercept(0) + generate_station_goals() start_state = new /datum/station_state() start_state.count(1) return 1 -///make_antag_chance() + ///Handles late-join antag assignments /datum/game_mode/proc/make_antag_chance(mob/living/carbon/human/character) if(replacementmode && round_converted == 2) replacementmode.make_antag_chance(character) return -///convert_roundtype() + ///Allows rounds to basically be "rerolled" should the initial premise fall through /datum/game_mode/proc/convert_roundtype() var/list/living_crew = list() @@ -160,10 +165,10 @@ for(var/mob/living/carbon/human/H in antag_canadates) replacementmode.make_antag_chance(H) round_converted = 2 - message_admins("The roundtype has been converted, antagonists may have been created") + message_admins("-- IMPORTANT: The roundtype has been converted to [replacementmode.name], antagonists may have been created! --") return 1 -///process() + ///Called by the gameticker /datum/game_mode/process() return 0 @@ -187,7 +192,7 @@ message_admins("The roundtype ([config_tag]) has no antagonists, continuous round has been defaulted to on and midround_antag has been defaulted to off.") config.continuous[config_tag] = 1 config.midround_antag[config_tag] = 0 - SSshuttle.emergencyNoEscape = 0 + SSshuttle.clearHostileEnvironment(src) return 0 @@ -261,31 +266,31 @@ /datum/game_mode/proc/send_intercept() - var/intercepttext = "Centcom Update Requested status information:
    " - intercepttext += " Centcom has recently been contacted by the following syndicate affiliated organisations in your area, please investigate any information you may have:" - + var/intercepttext = "Central Command Status Summary
    " + intercepttext += "Central Command has intercepted and partially decoded a Syndicate transmission with vital information regarding their movements. The following report outlines the most \ + likely threats to appear in your sector." var/list/possible_modes = list() - possible_modes.Add("revolution", "wizard", "nuke", "traitor", "malf", "changeling", "cult", "gang") - possible_modes -= "[ticker.mode]" //remove current gamemode to prevent it from being randomly deleted, it will be readded later + possible_modes.Add("blob", "changeling", "clock_cult", "cult", "extended", "gang", "malf", "nuclear", "revolution", "traitor", "wizard") + possible_modes -= name //remove the current gamemode to prevent it from being randomly deleted, it will be readded later - var/number = pick(1, 2) - var/i = 0 - for(i = 0, i < number, i++) //remove 1 or 2 possibles modes from the list - possible_modes.Remove(pick(possible_modes)) + for(var/i in 1 to 6) //Remove a few modes to leave four + possible_modes -= pick(possible_modes) - possible_modes[rand(1, possible_modes.len)] = "[ticker.mode]" //replace a random game mode with the current one - - possible_modes = shuffle(possible_modes) //shuffle the list to prevent meta + possible_modes |= name //Re-add the actual gamemode - the intercept will thus always have the correct mode in its list + possible_modes = shuffle(possible_modes) //Meta prevention var/datum/intercept_text/i_text = new /datum/intercept_text - for(var/A in possible_modes) - if(modePlayer.len == 0) - intercepttext += i_text.build(A) - else - intercepttext += i_text.build(A, pick(modePlayer)) + for(var/V in possible_modes) + intercepttext += i_text.build(V) - print_command_report(intercepttext,"Centcom Status Summary") - priority_announce("Summary downloaded and printed out at all communications consoles.", "Enemy communication intercept. Security Level Elevated.", 'sound/AI/intercept.ogg') + if(station_goals.len) + intercepttext += "
    Special Orders for [station_name()]:" + for(var/datum/station_goal/G in station_goals) + G.on_report() + intercepttext += G.get_report() + + print_command_report(intercepttext, "Central Command Status Summary") + priority_announce("A summary has been copied and printed to all communications consoles.", "Enemy communication intercepted. Security level elevated.", 'sound/AI/intercept.ogg') if(security_level < SEC_LEVEL_BLUE) set_security_level(SEC_LEVEL_BLUE) @@ -522,7 +527,7 @@ return max(0, enemy_minimum_age - C.player_age) /datum/game_mode/proc/replace_jobbaned_player(mob/living/M, role_type, pref) - var/list/mob/dead/observer/candidates = pollCandidates("Do you want to play as a [role_type]?", "[role_type]", null, pref, 100) + var/list/mob/dead/observer/candidates = pollCandidatesForMob("Do you want to play as a [role_type]?", "[role_type]", null, pref, 50, M) var/mob/dead/observer/theghost = null if(candidates.len) theghost = pick(candidates) @@ -535,5 +540,22 @@ ticker.mode.remove_cultist(newborgie, 0, 0) ticker.mode.remove_revolutionary(newborgie, 0) ticker.mode.remove_gangster(newborgie, 0, remove_bosses=1) - ticker.mode.remove_hog_follower(newborgie, 0) - remove_servant_of_ratvar(newborgie.current, TRUE) + +/datum/game_mode/proc/generate_station_goals() + var/list/possible = list() + for(var/T in subtypesof(/datum/station_goal)) + var/datum/station_goal/G = T + if(config_tag in initial(G.gamemode_blacklist)) + continue + possible += T + var/goal_weights = 0 + while(possible.len && goal_weights < STATION_GOAL_BUDGET) + var/datum/station_goal/picked = pick_n_take(possible) + goal_weights += initial(picked.weight) + station_goals += new picked + + +/datum/game_mode/proc/declare_station_goal_completion() + for(var/V in station_goals) + var/datum/station_goal/G = V + G.print_result() \ No newline at end of file diff --git a/code/game/gamemodes/gang/dominator.dm b/code/game/gamemodes/gang/dominator.dm index 4aea7e0485..fe46cb60a8 100644 --- a/code/game/gamemodes/gang/dominator.dm +++ b/code/game/gamemodes/gang/dominator.dm @@ -6,8 +6,10 @@ density = 1 anchored = 1 layer = HIGH_OBJ_LAYER - var/maxhealth = 200 - var/health = 200 + max_integrity = 300 + obj_integrity = 300 + integrity_failure = 100 + armor = list(melee = 20, bullet = 50, laser = 50, energy = 50, bomb = 10, bio = 100, rad = 100, fire = 10, acid = 70) var/datum/gang/gang var/operating = 0 //0=standby or broken, 1=takeover var/warned = 0 //if this device has set off the warning at <3 minutes yet @@ -19,7 +21,7 @@ /obj/machinery/dominator/New() ..() - set_light(2) + SetLuminosity(2) poi_list |= src spark_system = new spark_system.set_up(5, 1, src) @@ -28,7 +30,6 @@ /obj/machinery/dominator/examine(mob/user) ..() if(stat & BROKEN) - user << "It looks completely busted." return var/time @@ -40,7 +41,7 @@ user << "Hostile Takeover of [station_name()] successful. Have a great day." else user << "System on standby." - user << "System Integrity: [round((health/maxhealth)*100,1)]%" + user << "System Integrity: [round((obj_integrity/max_integrity)*100,1)]%" /obj/machinery/dominator/process() ..() @@ -52,7 +53,7 @@ if(!warned && (time_remaining < 180)) warned = 1 var/area/domloc = get_area(loc) - gang.message_gangtools("Less than 3 minutes remain in hostile takeover. Defend your dominator at [domloc.map_name]!") + gang.message_gangtools("Less than 3 minutes remains in hostile takeover. Defend your dominator at [domloc.map_name]!") for(var/datum/gang/G in ticker.mode.gangs) if(G != gang) G.message_gangtools("WARNING: [gang.name] Gang takeover imminent. Their dominator at [domloc.map_name] must be destroyed!",1,1) @@ -60,35 +61,41 @@ if(!.) STOP_PROCESSING(SSmachine, src) -/obj/machinery/dominator/take_damage(damage, damage_type = BRUTE, sound_effect = 1) +/obj/machinery/dominator/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) switch(damage_type) - if(BURN) - if(sound_effect) - playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) if(BRUTE) - if(sound_effect) - if(damage) - playsound(src, 'sound/effects/bang.ogg', 50, 1) - else - playsound(loc, 'sound/weapons/tap.ogg', 50, 1) - else - return - health -= damage + if(damage_amount) + playsound(src, 'sound/effects/bang.ogg', 50, 1) + else + playsound(loc, 'sound/weapons/tap.ogg', 50, 1) + if(BURN) + playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) - if(health > (maxhealth/2)) - if(prob(damage*2)) +/obj/machinery/dominator/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1) + . = ..() + if(.) + if(obj_integrity/max_integrity > 0.66) + if(prob(damage_amount*2)) + spark_system.start() + else if(!(stat & BROKEN)) spark_system.start() - else if(!(stat & BROKEN)) - spark_system.start() - add_overlay("damage") + cut_overlays() + add_overlay("damage") - if(!(stat & BROKEN)) - if(health <= 0) +/obj/machinery/dominator/obj_break(damage_flag) + if(!(stat & BROKEN) && !(flags & NODECONSTRUCT)) + set_broken() + +/obj/machinery/dominator/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + if(!(stat & BROKEN)) set_broken() - - if(health <= -100) new /obj/item/stack/sheet/plasteel(src.loc) - qdel(src) + qdel(src) + +/obj/machinery/dominator/attacked_by(obj/item/I, mob/living/user) + add_fingerprint(user) + ..() /obj/machinery/dominator/proc/set_broken() if(gang) @@ -100,12 +107,9 @@ takeover_in_progress = 1 break if(!takeover_in_progress) - SSshuttle.emergencyNoEscape = 0 - if(SSshuttle.emergency.mode == SHUTTLE_STRANDED) - SSshuttle.emergency.mode = SHUTTLE_DOCKED - SSshuttle.emergency.timer = world.time - priority_announce("Hostile enviroment resolved. You have 3 minutes to board the Emergency Shuttle.", null, 'sound/AI/shuttledock.ogg', "Priority") - else + var/was_stranded = SSshuttle.emergency.mode == SHUTTLE_STRANDED + SSshuttle.clearHostileEnvironment(src) + if(!was_stranded) priority_announce("All hostile activity within station systems has ceased.","Network Alert") if(get_security_level() == "delta") @@ -113,7 +117,7 @@ gang.message_gangtools("Hostile takeover cancelled: Dominator is no longer operational.[gang.dom_attempts ? " You have [gang.dom_attempts] attempt remaining." : " The station network will have likely blocked any more attempts by us."]",1,1) - set_light(0) + SetLuminosity(0) icon_state = "dominator-broken" cut_overlays() operating = 0 @@ -132,35 +136,9 @@ return ..() /obj/machinery/dominator/emp_act(severity) - take_damage(100, BURN, 0) + take_damage(100, BURN, "energy", 0) ..() -/obj/machinery/dominator/ex_act(severity, target) - if(target == src) - qdel(src) - return - switch(severity) - if(1) - qdel(src) - if(2) - take_damage(120, BRUTE, 0) - if(3) - take_damage(30, BRUTE, 0) - return - -/obj/machinery/dominator/bullet_act(obj/item/projectile/P) - . = ..() - if(P.damage) - var/damage_amount = P.damage - if(P.forcedodge) - damage_amount *= 0.5 - visible_message("[src] was hit by [P].") - take_damage(damage_amount, P.damage_type, 0) - - -/obj/machinery/dominator/blob_act(obj/effect/blob/B) - take_damage(110, BRUTE, 0) - /obj/machinery/dominator/attack_hand(mob/user) if(operating || (stat & BROKEN)) examine(user) @@ -184,24 +162,25 @@ var/time = round(determine_domination_time(tempgang)/60,0.1) if(alert(user,"With [round((tempgang.territory.len/start_state.num_territories)*100, 1)]% station control, a takeover will require [time] minutes.\nYour gang will be unable to gain influence while it is active.\nThe entire station will likely be alerted to it once it starts.\nYou have [tempgang.dom_attempts] attempt(s) remaining. Are you ready?","Confirm","Ready","Later") == "Ready") - if((tempgang.is_dominating) || !tempgang.dom_attempts || !in_range(src, user) || !istype(src.loc, /turf)) + if((tempgang.is_dominating) || !tempgang.dom_attempts || !in_range(src, user) || !isturf(loc)) return 0 var/area/A = get_area(loc) - var/locname = initial(A.name) + var/locname = A.map_name gang = tempgang gang.dom_attempts -- priority_announce("Network breach detected in [locname]. The [gang.name] Gang is attempting to seize control of the station!","Network Alert") gang.domination() + SSshuttle.registerHostileEnvironment(src) src.name = "[gang.name] Gang [src.name]" operating = 1 icon_state = "dominator-[gang.color]" - countdown.text_color = gang.color_hex + countdown.color = gang.color_hex countdown.start() - set_light(3) + SetLuminosity(3) START_PROCESSING(SSmachine, src) gang.message_gangtools("Hostile takeover in progress: Estimated [time] minutes until victory.[gang.dom_attempts ? "" : " This is your final attempt."]") @@ -209,14 +188,6 @@ if(G != gang) G.message_gangtools("Enemy takeover attempt detected in [locname]: Estimated [time] minutes until our defeat.",1,1) -/obj/machinery/dominator/attack_hulk(mob/user) - user.visible_message("[user] smashes [src].",\ - "You punch [src].",\ - "You hear metal being slammed.") - take_damage(5) - -/obj/machinery/dominator/attacked_by(obj/item/I, mob/living/user) - add_fingerprint(user) - ..() + diff --git a/code/game/gamemodes/gang/gang.dm b/code/game/gamemodes/gang/gang.dm index 75459b7269..53e6c69768 100644 --- a/code/game/gamemodes/gang/gang.dm +++ b/code/game/gamemodes/gang/gang.dm @@ -29,13 +29,10 @@ var/list/gang_colors_pool = list("red","orange","yellow","green","blue","purple" recommended_enemies = 2 enemy_minimum_age = 14 -/////////////////////////// -//Announces the game type// -/////////////////////////// -/datum/game_mode/gang/announce() - world << "The current game mode is - Gang War!" - world << "A violent turf war has erupted on the station!
    Gangsters - Take over the station by activating and defending a Dominator!
    Crew - The gangs will try to keep you on the station. Successfully evacuate the station to win!
    " - + announce_span = "danger" + announce_text = "A violent turf war has erupted on the station!\n\ + Gangsters: Take over the station with a dominator.\n\ + Crew: Prevent the gangs from expanding and initiating takeover." /////////////////////////////////////////////////////////////////////////////// //Gets the round setup, cancelling if there's not enough players at the start// @@ -94,12 +91,9 @@ var/list/gang_colors_pool = list("red","orange","yellow","green","blue","purple" boss_mind.objectives += rival_obj /datum/game_mode/proc/greet_gang(datum/mind/boss_mind, you_are=1) - var/obj_count = 1 if (you_are) boss_mind.current << "You are the Boss of the [boss_mind.gang_datum.name] Gang!" - for(var/datum/objective/objective in boss_mind.objectives) - boss_mind.current << "Objective #[obj_count]: [objective.explanation_text]" - obj_count++ + boss_mind.announce_objectives() /////////////////////////////////////////////////////////////////////////// //This equips the bosses with their gear, and makes the clown not clumsy// @@ -121,9 +115,7 @@ var/list/gang_colors_pool = list("red","orange","yellow","green","blue","purple" var/list/slots = list ( "backpack" = slot_in_backpack, "left pocket" = slot_l_store, - "right pocket" = slot_r_store, - "left hand" = slot_l_hand, - "right hand" = slot_r_hand, + "right pocket" = slot_r_store ) . = 0 @@ -157,7 +149,6 @@ var/list/gang_colors_pool = list("red","orange","yellow","green","blue","purple" . += 1 else mob << "The chameleon security HUD in your [where4] will help you keep track of who is mindshield-implanted, and unable to be recruited." - mob.update_icons() return . @@ -165,9 +156,9 @@ var/list/gang_colors_pool = list("red","orange","yellow","green","blue","purple" //Deals with converting players to a gang// /////////////////////////////////////////// /datum/game_mode/proc/add_gangster(datum/mind/gangster_mind, datum/gang/G, check = 1) - if(!G || (gangster_mind in get_all_gangsters()) || gangster_mind.enslaved_to) + if(!G || (gangster_mind in get_all_gangsters()) || (gangster_mind.enslaved_to && !is_gangster(gangster_mind.enslaved_to))) return 0 - if(check && isloyal(gangster_mind.current)) //Check to see if the potential gangster is implanted + if(check && gangster_mind.current.isloyal()) //Check to see if the potential gangster is implanted return 1 G.gangsters += gangster_mind gangster_mind.gang_datum = G @@ -175,18 +166,20 @@ var/list/gang_colors_pool = list("red","orange","yellow","green","blue","purple" if(iscarbon(gangster_mind.current)) var/mob/living/carbon/carbon_mob = gangster_mind.current carbon_mob.silent = max(carbon_mob.silent, 5) - carbon_mob.flash_eyes(1, 1) + carbon_mob.flash_act(1, 1) gangster_mind.current.Stun(5) - gangster_mind.current << "You are now a member of the [G.name] Gang!" - gangster_mind.current << "Help your bosses take over the station by claiming territory with special spraycans only they can provide. Simply spray on any unclaimed area of the station." - gangster_mind.current << "Their ultimate objective is to take over the station with a Dominator machine." - gangster_mind.current << "You can identify your bosses by their red \[G\] icon." + if(G.is_deconvertible) + gangster_mind.current << "You are now a member of the [G.name] Gang!" + gangster_mind.current << "Help your bosses take over the station by claiming territory with special spraycans only they can provide. Simply spray on any unclaimed area of the station." + gangster_mind.current << "Their ultimate objective is to take over the station with a Dominator machine." + gangster_mind.current << "You can identify your bosses by their large, bright [G.color] \[G\] icon." + gangster_mind.store_memory("You are a member of the [G.name] Gang!") gangster_mind.current.attack_log += "\[[time_stamp()]\] Has been converted to the [G.name] Gang!" gangster_mind.special_role = "[G.name] Gangster" - gangster_mind.store_memory("You are a member of the [G.name] Gang!") + G.add_gang_hud(gangster_mind) if(jobban_isbanned(gangster_mind.current, ROLE_GANG)) - replace_jobbaned_player(gangster_mind.current, ROLE_GANG, ROLE_GANG) + addtimer(src, "replace_jobbaned_player", 0, TIMER_NORMAL, gangster_mind.current, ROLE_GANG, ROLE_GANG) return 2 //////////////////////////////////////////////////////////////////// //Deals with players reverting to neutral (Not a gangster anymore)// @@ -199,6 +192,8 @@ var/list/gang_colors_pool = list("red","orange","yellow","green","blue","purple" var/removed for(var/datum/gang/G in gangs) + if(!G.is_deconvertible && !remove_bosses) + return 0 if(gangster_mind in G.gangsters) G.gangsters -= gangster_mind removed = 1 @@ -219,7 +214,7 @@ var/list/gang_colors_pool = list("red","orange","yellow","green","blue","purple" if(!silent) gangster_mind.current.visible_message("The frame beeps contentedly from the MMI before initalizing it.") gangster_mind.current << "The frame's firmware detects and deletes your criminal behavior! You are no longer a gangster!" - message_admins("[key_name_admin(gangster_mind.current)] ? (FLW) has been borged while being a member of the [gang.name] Gang. They are no longer a gangster.") + message_admins("[ADMIN_LOOKUPFLW(gangster_mind.current)] has been borged while being a member of the [gang.name] Gang. They are no longer a gangster.") else if(!silent) gangster_mind.current.Paralyse(5) @@ -260,13 +255,18 @@ var/list/gang_colors_pool = list("red","orange","yellow","green","blue","purple" ////////////////////////////////////////////////////////////////////// /datum/game_mode/proc/auto_declare_completion_gang(datum/gang/winner) - if(gangs.len) - if(!winner) - world << "The station was [station_was_nuked ? "destroyed!" : "evacuated before a gang could claim it! The station wins!"]
    " - feedback_set_details("round_end_result","loss - gangs failed takeover") - else - world << "The [winner.name] Gang successfully performed a hostile takeover of the station!
    " - feedback_set_details("round_end_result","win - gang domination complete") + if(!gangs.len) + return + if(!winner) + world << "The station was [station_was_nuked ? "destroyed!" : "evacuated before a gang could claim it! The station wins!"]
    " + feedback_set_details("round_end_result","loss - gangs failed takeover") + + ticker.news_report = GANG_LOSS + else + world << "The [winner.name] Gang successfully performed a hostile takeover of the station!
    " + feedback_set_details("round_end_result","win - gang domination complete") + + ticker.news_report = GANG_TAKEOVER for(var/datum/gang/G in gangs) var/text = "The [G.name] Gang was [winner==G ? "victorious" : "defeated"] with [round((G.territory.len/start_state.num_territories)*100, 1)]% control of the station!" diff --git a/code/game/gamemodes/gang/gang_datum.dm b/code/game/gamemodes/gang/gang_datum.dm index 16010b0460..7c443d1c14 100644 --- a/code/game/gamemodes/gang/gang_datum.dm +++ b/code/game/gamemodes/gang/gang_datum.dm @@ -15,7 +15,8 @@ var/list/territory_lost = list() var/dom_attempts = 2 var/points = 15 - var/datum/atom_hud/antag/ganghud + var/datum/atom_hud/antag/gang/ganghud + var/is_deconvertible = TRUE //Can you deconvert normal gangsters from the gang var/domination_timer var/is_dominating @@ -46,6 +47,7 @@ gang_name_pool -= name ganghud = new() + ganghud.color = color_hex log_game("The [name] Gang has been created. Their gang color is [color].") /datum/gang/proc/add_gang_hud(datum/mind/recruit_mind) @@ -60,7 +62,6 @@ set_domination_time(determine_domination_time(src) * modifier) is_dominating = TRUE set_security_level("delta") - SSshuttle.emergencyNoEscape = 1 /datum/gang/proc/set_domination_time(d) domination_timer = world.time + (10 * d) @@ -106,7 +107,7 @@ if(outfit_path) var/obj/item/clothing/outfit = new outfit_path(user.loc) - outfit.armor = list(melee = 20, bullet = 30, laser = 10, energy = 10, bomb = 20, bio = 0, rad = 0) + outfit.armor = list(melee = 20, bullet = 30, laser = 10, energy = 10, bomb = 20, bio = 0, rad = 0, fire = 30, acid = 30) outfit.desc += " Tailored for the [name] Gang to offer the wearer moderate protection against ballistics and physical trauma." outfit.gang = src user.put_in_hands(outfit) @@ -135,7 +136,6 @@ /datum/gang/proc/income() if(!bosses.len) return - var/added_names = "" var/lost_names = "" @@ -214,3 +214,19 @@ //Increase outfit stock for(var/obj/item/device/gangtool/tool in gangtools) tool.outfits = min(tool.outfits+1,5) + + +//Multiverse + +/datum/gang/multiverse + dom_attempts = 0 + points = 0 + fighting_style = "multiverse" + is_deconvertible = FALSE + +/datum/gang/multiverse/New(loc, multiverse_override) + name = multiverse_override + ganghud = new() + +/datum/gang/multiverse/income() + return \ No newline at end of file diff --git a/code/game/gamemodes/gang/gang_pen.dm b/code/game/gamemodes/gang/gang_pen.dm index fde2f5157b..65209cc966 100644 --- a/code/game/gamemodes/gang/gang_pen.dm +++ b/code/game/gamemodes/gang/gang_pen.dm @@ -57,64 +57,3 @@ icon_state = "pen" var/mob/M = get(src, /mob) M << "\icon[src] [src][(src.loc == M)?(""):(" in your [src.loc]")] vibrates softly. It is ready to be used again." - - -////////////// -// IMPLANTS // -////////////// - -/obj/item/weapon/implant/gang - name = "gang implant" - desc = "Makes you a gangster or such." - activated = 0 - origin_tech = "materials=2;biotech=4;programming=4;syndicate=3" - var/datum/gang/gang - -/obj/item/weapon/implant/gang/New(loc,var/setgang) - ..() - gang = setgang - -/obj/item/weapon/implant/gang/get_data() - var/dat = {"Implant Specifications:
    - Name: Criminal brainwash implant
    - Life: A few seconds after injection.
    - Important Notes: Illegal
    -
    - Implant Details:
    - Function: Contains a small pod of nanobots that change the host's brain to be loyal to a certain organization.
    - Special Features: This device will also emit a small EMP pulse, destroying any other implants within the host's brain.
    - Integrity: Implant's EMP function will destroy itself in the process."} - return dat - -/obj/item/weapon/implant/gang/implant(mob/target) - if(..()) - for(var/obj/item/weapon/implant/I in target) - if(I != src) - qdel(I) - - if(!target.mind || target.stat == DEAD) - return 0 - - var/success - if(target.mind in ticker.mode.get_gangsters()) - if(ticker.mode.remove_gangster(target.mind,0,1)) - success = 1 //Was not a gang boss, convert as usual - else - success = 1 - - if(ishuman(target)) - if(!success) - target.visible_message("[target] seems to resist the implant!", "You feel the influence of your enemies try to invade your mind!") - - qdel(src) - return -1 - -/obj/item/weapon/implanter/gang - name = "implanter (gang)" - -/obj/item/weapon/implanter/gang/New(loc, var/gang) - if(!gang) - qdel(src) - return - imp = new /obj/item/weapon/implant/gang(src,gang) - ..() diff --git a/code/game/gamemodes/gang/recaller.dm b/code/game/gamemodes/gang/recaller.dm index 3f1a00593d..724dbc4e85 100644 --- a/code/game/gamemodes/gang/recaller.dm +++ b/code/game/gamemodes/gang/recaller.dm @@ -5,7 +5,7 @@ icon_state = "gangtool-white" item_state = "walkietalkie" throwforce = 0 - w_class = 1 + w_class = WEIGHT_CLASS_TINY throw_speed = 3 throw_range = 7 flags = CONDUCT @@ -194,11 +194,11 @@ pointcost = 10 if("necklace") if(gang.points >=1) - item_type = /obj/item/clothing/tie/dope_necklace + item_type = /obj/item/clothing/neck/necklace/dope pointcost = 1 if("pistol") if(gang.points >= 25) - item_type = /obj/item/weapon/gun/projectile/automatic/pistol + item_type = /obj/item/weapon/gun/ballistic/automatic/pistol pointcost = 25 if("10mmammo") if(gang.points >= 10) @@ -206,7 +206,7 @@ pointcost = 10 if("uzi") if(gang.points >= 60) - item_type = /obj/item/weapon/gun/projectile/automatic/mini_uzi + item_type = /obj/item/weapon/gun/ballistic/automatic/mini_uzi pointcost = 60 if("9mmammo") if(gang.points >= 40) @@ -250,7 +250,7 @@ if(gang.bosses.len < 3) usr << "Gangtools allow you to promote a gangster to be your Lieutenant, enabling them to recruit and purchase items like you. Simply have them register the gangtool. You may promote up to [3-gang.bosses.len] more Lieutenants" else - item_type = /obj/item/device/gangtool/spare/ + item_type = /obj/item/device/gangtool/spare pointcost = 10 if("dominator") if(!gang.dom_attempts) @@ -258,7 +258,7 @@ var/area/usrarea = get_area(usr.loc) var/usrturf = get_turf(usr.loc) - if(initial(usrarea.name) == "Space" || istype(usrturf,/turf/open/space) || usr.z != 1) + if(initial(usrarea.name) == "Space" || isspaceturf(usrturf) || usr.z != 1) usr << "You can only use this on the station!" return diff --git a/code/game/gamemodes/handofgod/_handofgod.dm b/code/game/gamemodes/handofgod/_handofgod.dm deleted file mode 100644 index dec7cca9cb..0000000000 --- a/code/game/gamemodes/handofgod/_handofgod.dm +++ /dev/null @@ -1,476 +0,0 @@ - -var/global/list/global_handofgod_traptypes = list() -var/global/list/global_handofgod_structuretypes = list() - -#define CONDUIT_RANGE 15 - - -/datum/game_mode - var/list/datum/mind/red_deities = list() - var/list/datum/mind/red_deity_prophets = list() - var/list/datum/mind/red_deity_followers = list() - - var/list/datum/mind/blue_deities = list() - var/list/datum/mind/blue_deity_prophets = list() - var/list/datum/mind/blue_deity_followers = list() - - var/list/datum/mind/unassigned_followers = list() //for roundstart team assigning - var/list/datum/mind/assigned_to_red = list() - var/list/datum/mind/assigned_to_blue = list() - - -/datum/game_mode/hand_of_god - name = "hand of god" - config_tag = "handofgod" - antag_flag = ROLE_HOG_CULTIST //Followers use ROLE_HOG_CULTIST, Gods are picked later on with ROLE_HOG_GOD - - required_players = 25 - required_enemies = 8 - recommended_enemies = 8 - restricted_jobs = list("Chaplain","AI", "Cyborg", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel") - - -/datum/game_mode/hand_of_god/announce() - world << "The current game mode is - Hand of God!" - world << "Two cults are onboard the station, seeking to overthrow the other, and anyone who stands in their way." - world << "Followers - Complete your deity's objectives. Convert crewmembers to your cause by using your deity's nexus. Remember - there is no you, there is only the cult." - world << "Prophets - Command your cult by the will of your deity. You are a high-value target, so be careful!" - world << "Personnel - Do not let any cult succeed in its mission. Mindshield implants and holy water will revert them to neutral, hopefully nonviolent crew." - - -///////////// -//Pre setup// -///////////// - -/datum/game_mode/hand_of_god/pre_setup() - if(config.protect_roles_from_antagonist) - restricted_jobs += protected_jobs - - if(config.protect_assistant_from_antagonist) - restricted_jobs += "Assistant" - - for(var/F in 1 to recommended_enemies) - if(!antag_candidates.len) - break - var/datum/mind/follower = pick_n_take(antag_candidates) - unassigned_followers += follower - follower.restricted_roles = restricted_jobs - log_game("[follower.key] (ckey) has been selected as a follower, however teams have not been decided yet.") - - while(unassigned_followers.len > (required_enemies / 2)) - var/datum/mind/chosen = pick_n_take(unassigned_followers) - add_hog_follower(chosen,"red") - - while(unassigned_followers.len) - var/datum/mind/chosen = pick_n_take(unassigned_followers) - add_hog_follower(chosen,"blue") - - return 1 - - -////////////// -//Post Setup// -////////////// - -//Pick a follower to uplift into a god -/datum/game_mode/hand_of_god/post_setup() - - //Find viable red god - var/list/red_god_possibilities = get_players_for_role(ROLE_HOG_GOD) - red_god_possibilities &= red_deity_followers //followers only - if(!red_god_possibilities.len) //No candidates? just pick any follower regardless of prefs - red_god_possibilities = red_deity_followers - - //Make red god - var/datum/mind/red_god = pick_n_take(red_god_possibilities) - if(red_god) - red_god.current.become_god("red") - remove_hog_follower(red_god,0) - add_god(red_god,"red") - - //Find viable blue god - var/list/blue_god_possibilities = get_players_for_role(ROLE_HOG_GOD) - blue_god_possibilities &= blue_deity_followers //followers only - if(!blue_god_possibilities.len) //No candidates? just pick any follower regardless of prefs - blue_god_possibilities = blue_deity_followers - - //Make blue god - var/datum/mind/blue_god = pick_n_take(blue_god_possibilities) - if(blue_god) - blue_god.current.become_god("blue") - remove_hog_follower(blue_god,0) - add_god(blue_god,"blue") - - - //Forge objectives - //This is done here so that both gods exist - if(red_god) - ticker.mode.forge_deity_objectives(red_god) - if(blue_god) - ticker.mode.forge_deity_objectives(blue_god) - - - ..() - -/////////////////// -//Objective Procs// -/////////////////// - -/datum/game_mode/proc/forge_deity_objectives(datum/mind/deity) - switch(rand(1,100)) - if(1 to 30) - var/datum/objective/deicide/deicide = new - deicide.owner = deity - if(deicide.find_target())//Hard to kill the other god if there is none - deity.objectives += deicide - - if(!(locate(/datum/objective/escape_followers) in deity.objectives)) - var/datum/objective/escape_followers/recruit = new - recruit.owner = deity - deity.objectives += recruit - recruit.gen_amount_goal(8, 12) - - if(31 to 60) - var/datum/objective/sacrifice_prophet/sacrifice = new - sacrifice.owner = deity - deity.objectives += sacrifice - - if(!(locate(/datum/objective/escape_followers) in deity.objectives)) - var/datum/objective/escape_followers/recruit = new - recruit.owner = deity - deity.objectives += recruit - recruit.gen_amount_goal(8, 12) - - if(61 to 85) - var/datum/objective/build/build = new - build.owner = deity - deity.objectives += build - build.gen_amount_goal(8, 16) - - var/datum/objective/sacrifice_prophet/sacrifice = new - sacrifice.owner = deity - deity.objectives += sacrifice - - if(!(locate(/datum/objective/escape_followers) in deity.objectives)) - var/datum/objective/escape_followers/recruit = new - recruit.owner = deity - deity.objectives += recruit - recruit.gen_amount_goal(8, 12) - - else - if (!locate(/datum/objective/follower_block) in deity.objectives) - var/datum/objective/follower_block/block = new - block.owner = deity - deity.objectives += block - -/////////////// -//Greet procs// -/////////////// - -/datum/game_mode/proc/greet_hog_follower(datum/mind/follower_mind,colour) - if(follower_mind in blue_deity_prophets || follower_mind in red_deity_prophets) - follower_mind.current << "You have been appointed as the prophet of the [colour] deity! You are the only one who can communicate with your deity at will. Guide your followers, but be wary, for many will want you dead." - else if(colour) - follower_mind.current << "You are a follower of the [colour] cult's deity!" - else - follower_mind.current << "You are a follower of a cult's deity!" - - -///////////////// -//Convert procs// -///////////////// - -/datum/game_mode/proc/add_hog_follower(datum/mind/follower_mind, colour = "No Colour") - var/mob/living/carbon/human/H = follower_mind.current - if(isloyal(H)) - H << "Your mindshield implant blocked the influence of the [colour] deity. " - return 0 - if((follower_mind in red_deity_followers) || (follower_mind in red_deity_prophets) || (follower_mind in blue_deity_followers) || (follower_mind in blue_deity_prophets)) - H << "You already belong to a deity. Your strong faith has blocked out the conversion attempt by the followers of the [colour] deity." - return 0 - var/obj/item/weapon/nullrod/N = H.null_rod_check() - if(N) - H << "Your holy weapon prevented the [colour] deity from brainwashing you." - return 0 - - if(colour == "red") - red_deity_followers += follower_mind - if(colour == "blue") - blue_deity_followers += follower_mind - - H.faction |= "[colour] god" - follower_mind.current << "You are now a follower of the [colour] deity! Follow your deity's prophet in order to complete your deity's objectives. Convert crewmembers to your cause by using your deity's nexus. And remember - there is no you, there is only the cult." - update_hog_icons_added(follower_mind, colour) - follower_mind.special_role = "Hand of God: [capitalize(colour)] Follower" - follower_mind.current.attack_log += "\[[time_stamp()]\] Has been converted to the [colour] follower cult!" - return 1 - - -/datum/game_mode/proc/add_god(datum/mind/god_mind, colour = "No Colour") - remove_hog_follower(god_mind, announce = 0) - if(colour == "red") - red_deities += god_mind - if(colour == "blue") - blue_deities += god_mind - god_mind.current.attack_log += "\[[time_stamp()]\] Has been made into a [colour] deity!" - god_mind.special_role = "Hand of God: [colour] God" - update_hog_icons_added(god_mind, colour) - -////////////////// -//Deconvert proc// -////////////////// - -/datum/game_mode/proc/remove_hog_follower(datum/mind/follower_mind, announce = 1)//deconverts both - follower_mind.remove_hog_follower_prophet() - update_hog_icons_removed(follower_mind,"red") - update_hog_icons_removed(follower_mind,"blue") - - if(follower_mind.current) - var/mob/living/carbon/human/H = follower_mind.current - H.faction -= "red god" - H.faction -= "blue god" - - if(announce) - follower_mind.current.attack_log += "\[[time_stamp()]\] Has been deconverted from a deity's cult!" - follower_mind.current << "Your mind has been cleared from the brainwashing the followers have done to you. Now you serve yourself and the crew." - for(var/mob/living/M in view(follower_mind.current)) - M << "[follower_mind.current] looks like their faith is shattered. They're no longer a cultist!" - - - -////////////////////// -// Mob helper procs // -////////////////////// - -/proc/is_handofgod_god(A) - if(istype(A, /mob/camera/god)) - return 1 - return 0 - - -/proc/is_handofgod_bluecultist(A) - if(ishuman(A)) - var/mob/living/carbon/human/H = A - if(H.mind) - if(H.mind in ticker.mode.blue_deity_followers|ticker.mode.blue_deity_prophets) - return 1 - return 0 - - -/proc/is_handofgod_redcultist(A) - if(ishuman(A)) - var/mob/living/carbon/human/H = A - if(H.mind) - if(H.mind in ticker.mode.red_deity_followers|ticker.mode.red_deity_prophets) - return 1 - return 0 - - -/proc/is_handofgod_blueprophet(A) - if(ishuman(A)) - var/mob/living/carbon/human/H = A - if(H.mind) - if(H.mind in ticker.mode.blue_deity_prophets) - return 1 - return 0 - - -/proc/is_handofgod_redprophet(A) - if(ishuman(A)) - var/mob/living/carbon/human/H = A - if(H.mind) - if(H.mind in ticker.mode.red_deity_prophets) - return 1 - return 0 - - - -/proc/is_handofgod_cultist(A) //any of them what so ever, blue, red, hot pink, whatever. - if(is_handofgod_redcultist(A)) - return 1 - if(is_handofgod_bluecultist(A)) - return 1 - return 0 - - -/proc/is_handofgod_prophet(A) //any of them what so ever, blue, red, hot pink, whatever - if(ishuman(A)) - var/mob/living/carbon/human/H = A - if(H.mind) - if(H.mind in ticker.mode.blue_deity_prophets|ticker.mode.red_deity_prophets) - return 1 - return 0 - - -/mob/camera/god/proc/is_handofgod_myprophet(A) - if(!ishuman(A)) - return 0 - var/mob/living/carbon/human/H = A - if(!H.mind) - return 0 - if(side == "red") - if(H.mind in ticker.mode.red_deity_prophets) - return 1 - else if(side == "blue") - if(H.mind in ticker.mode.blue_deity_prophets) - return 1 - - -/mob/camera/god/proc/is_handofgod_myfollowers(mob/A) - if(!ishuman(A)) - return 0 - var/mob/living/carbon/human/H = A - if(!H.mind) - return 0 - if(side == "red") - if(H.mind in ticker.mode.red_deity_prophets|ticker.mode.red_deity_followers) - return 1 - else if(side == "blue") - if(H.mind in ticker.mode.blue_deity_prophets|ticker.mode.blue_deity_followers) - return 1 - -////////////////////// -//Roundend Reporting// -////////////////////// - - -/datum/game_mode/hand_of_god/declare_completion() - if(red_deities.len) - var/text = "
    The red cult:" - for(var/datum/mind/red_god in red_deities) - var/godwin = 1 - - text += "
    [red_god.key] was the red deity, [red_god.name] (" - if(red_god.current) - if(red_god.current.stat == DEAD) - text += "died" - else - text += "survived" - else - text += "ceased existing" - text += ")" - if(red_deity_prophets.len) - for(var/datum/mind/red_prophet in red_deity_prophets) - text += "
    The red prophet was [red_prophet.name] ([red_prophet.key])" - else - text += "
    the red prophet was killed for their beliefs." - - text += "
    Red follower count: [red_deity_followers.len]" - text += "
    Red followers: " - for(var/datum/mind/player in red_deity_followers) - text += "[player.name] ([player.key]), " - - var/objectives = "" - if(red_god.objectives.len) - var/count = 1 - for(var/datum/objective/O in red_god.objectives) - if(O.check_completion()) - objectives += "
    Objective #[count]: [O.explanation_text] Success!" - feedback_add_details("god_objective","[O.type]|SUCCESS") - else - objectives += "
    Objective #[count]: [O.explanation_text] Fail." - feedback_add_details("god_objective","[O.type]|FAIL") - godwin = 0 - count++ - - text += objectives - - if(godwin) - text += "
    The red cult and deity were successful!" - feedback_add_details("god_success","SUCCESS") - else - text += "
    The red cult and deity have failed!" - feedback_add_details("god_success","FAIL") - - text += "
    " - - world << text - - if(blue_deities.len) - var/text = "
    The blue cult:" - for(var/datum/mind/blue_god in blue_deities) - var/godwin = 1 - - text += "
    [blue_god.key] was the blue deity, [blue_god.name] (" - if(blue_god.current) - if(blue_god.current.stat == DEAD) - text += "died" - else - text += "survived" - else - text += "ceased existing" - text += ")" - if(blue_deity_prophets.len) - for(var/datum/mind/blue_prophet in blue_deity_prophets) - text += "
    The blue prophet was [blue_prophet.name] ([blue_prophet.key])" - else - text += "
    the blue prophet was killed for their beliefs." - - text += "
    Blue follower count: [blue_deity_followers.len]" - text += "
    Blue followers: " - for(var/datum/mind/player in blue_deity_followers) - text += "[player.name] ([player.key])" - - var/objectives = "" - if(blue_god.objectives.len) - var/count = 1 - for(var/datum/objective/O in blue_god.objectives) - if(O.check_completion()) - objectives += "
    Objective #[count]: [O.explanation_text] Success!" - feedback_add_details("god_objective","[O.type]|SUCCESS") - else - objectives += "
    Objective #[count]: [O.explanation_text] Fail." - feedback_add_details("god_objective","[O.type]|FAIL") - godwin = 0 - count++ - - text += objectives - - if(godwin) - text += "
    The blue cult and deity were successful!" - feedback_add_details("god_success","SUCCESS") - else - text += "
    The blue cult and deity have failed!" - feedback_add_details("god_success","FAIL") - - text += "
    " - - world << text - - ..() - return 1 - - -/datum/game_mode/proc/update_hog_icons_added(datum/mind/hog_mind,side) - var/hud_key - var/rank = 0 - if(side == "red") - hud_key = ANTAG_HUD_HOG_RED - if(is_handofgod_redprophet(hog_mind.current)) - rank = 1 - - else if(side == "blue") - hud_key = ANTAG_HUD_HOG_BLUE - if(is_handofgod_blueprophet(hog_mind.current)) - rank = 1 - - if(is_handofgod_god(hog_mind.current)) - rank = 2 - - if(hud_key) - var/datum/atom_hud/antag/hog_hud = huds[hud_key] - hog_hud.join_hud(hog_mind.current) - set_antag_hud(hog_mind.current, "hog-[side]-[rank]") - - -/datum/game_mode/proc/update_hog_icons_removed(datum/mind/hog_mind,side) - var/hud_key - if(side == "red") - hud_key = ANTAG_HUD_HOG_RED - else if(side == "blue") - hud_key = ANTAG_HUD_HOG_BLUE - - if(hud_key) - var/datum/atom_hud/antag/hog_hud = huds[hud_key] - hog_hud.leave_hud(hog_mind.current) - set_antag_hud(hog_mind.current,null) diff --git a/code/game/gamemodes/handofgod/actions.dm b/code/game/gamemodes/handofgod/actions.dm deleted file mode 100644 index 766a2522fd..0000000000 --- a/code/game/gamemodes/handofgod/actions.dm +++ /dev/null @@ -1,28 +0,0 @@ -/* Prophet's innate godspeak */ -/datum/action/innate/godspeak - name = "Godspeak" - button_icon_state = "godspeak" - check_flags = AB_CHECK_CONSCIOUS - var/mob/camera/god/god = null - -/datum/action/innate/godspeak/IsAvailable() - if(..()) - if(god) - return 1 - return 0 - -/datum/action/innate/godspeak/Activate() - var/msg = input(owner,"Speak to your god","Godspeak","") as null|text - if(!msg) - return - var/rendered = "Prophet [owner]: [msg]" - god << rendered - owner << rendered - for(var/mob/M in mob_list) - if(isobserver(M)) - var/link = FOLLOW_LINK(M, owner) - M << "[link] [rendered]" - -/datum/action/innate/godspeak/Destroy() - god = null - return ..() diff --git a/code/game/gamemodes/handofgod/god.dm b/code/game/gamemodes/handofgod/god.dm deleted file mode 100644 index 5a23873605..0000000000 --- a/code/game/gamemodes/handofgod/god.dm +++ /dev/null @@ -1,290 +0,0 @@ - -/mob/camera/god - name = "deity" //Auto changes to the player's deity name/random name - real_name = "deity" - icon = 'icons/mob/mob.dmi' - icon_state = "marker" - invisibility = 60 - see_in_dark = 0 - see_invisible = 55 - sight = SEE_TURFS | SEE_MOBS | SEE_OBJS | SEE_SELF - languages_spoken = ALL - languages_understood = ALL - hud_possible = list(ANTAG_HUD) - mouse_opacity = 0 //can't be clicked - - var/faith = 100 //For initial prophet appointing/stupid purchase - var/max_faith = 100 - var/side = "neutral" //Red or Blue for the gamemode - var/obj/structure/divine/nexus/god_nexus = null //The source of the god's power in this realm, kill it and the god is kill - var/nexus_required = FALSE //If the god dies from losing it's nexus, defaults to off so that gods don't instantly die at roundstart - var/followers_required = 0 //Same as above - var/alive_followers = 0 - var/list/structures = list() - var/list/conduits = list() - var/prophets_sacrificed_in_name = 0 - var/image/ghostimage = null //For observer with darkness off visiblity - var/list/prophets = list() - var/datum/action/innate/godspeak/speak2god - -/mob/camera/god/New() - ..() - update_icons() - build_hog_construction_lists() - - //Force nexuses after 15 minutes in hand of god mode - if(ticker && ticker.mode && ticker.mode.name == "hand of god") - addtimer(src, "forceplacenexus", 9000, FALSE) - - -//Rebuilds the list based on the gamemode's lists -//As they are the most accurate each tick -/mob/camera/god/proc/get_my_followers() - switch(side) - if("red") - . = ticker.mode.red_deity_followers|ticker.mode.red_deity_prophets - if("blue") - . = ticker.mode.blue_deity_followers|ticker.mode.blue_deity_prophets - else - . = list() - - -/mob/camera/god/Destroy() - var/list/followers = get_my_followers() - for(var/datum/mind/F in followers) - if(F.current) - F.current << "Your god is DEAD!" - for(var/X in prophets) - speak2god.Remove(X) - ghost_darkness_images -= ghostimage - updateallghostimages() - return ..() - - - -/mob/camera/god/proc/forceplacenexus() - if(god_nexus) - return - - if(ability_cost(0,1,0)) - place_nexus() - - else - if(blobstart.len) //we're on invalid turf, try to pick from blobstart - loc = pick(blobstart) - place_nexus() //if blobstart fails, places on dense turf, but better than nothing - src << "You failed to place your nexus, and it has been placed for you!" - - -/mob/camera/god/update_icons() - icon_state = "[initial(icon_state)]-[side]" - - if(ghostimage) - ghost_darkness_images -= ghostimage - - ghostimage = image(src.icon,src,src.icon_state) - ghost_darkness_images |= ghostimage - updateallghostimages() - - -/mob/camera/god/Stat() - ..() - if(statpanel("Status")) - if(god_nexus) - stat("Nexus health: ", god_nexus.health) - stat("Followers: ", alive_followers) - stat("Faith: ", "[faith]/[max_faith]") - - -/mob/camera/god/Login() - ..() - sync_mind() - src << "You are a deity!" - src << "You are a deity and are worshipped by a cult! You are rather weak right now, but that will change as you gain more followers." - src << "You will need to place an anchor to this world, a Nexus, in two minutes. If you don't, one will be placed immediately below you." - src << "Your Follower count determines how many people believe in you and are a part of your cult." - src << "Your Nexus Integrity tells you the condition of your nexus. If your nexus is destroyed, you will die. Place your Nexus on a safe, isolated place, that is still accessible to your followers." - src << "Your Faith is used to interact with the world. This will regenerate on its own, and it goes faster when you have more followers and power pylons." - src << "The first thing you should do after placing your nexus is to appoint a prophet. Only prophets can hear you talk, unless you use an expensive power." - update_health_hud() - - -/mob/camera/god/update_health_hud() - if(god_nexus && hud_used && hud_used.healths) - hud_used.healths.maptext = "
    [god_nexus.health]
    " - - -/mob/camera/god/proc/add_faith(faith_amt) - if(faith_amt) - faith = round(Clamp(faith+faith_amt, 0, max_faith)) - if(hud_used && hud_used.deity_power_display) - hud_used.deity_power_display.maptext = "
    [faith]
    " - - - -/mob/camera/god/proc/place_nexus() - if(god_nexus || (z != 1)) - return 0 - - var/obj/structure/divine/nexus/N = new(get_turf(src)) - N.assign_deity(src) - god_nexus = N - nexus_required = TRUE - verbs -= /mob/camera/god/verb/constructnexus - //verbs += /mob/camera/god/verb/movenexus //Translocators have no sprite - update_health_hud() - - var/area/A = get_area(src) - if(A) - var/areaname = A.name - var/list/followers = get_my_followers() - for(var/datum/mind/F in followers) - if(F.current) - F.current << "Your god's nexus is in \the [areaname]" - - -/mob/camera/god/verb/freeturret() - set category = "Deity" - set name = "Free Turret (0)" - set desc = "Place a single turret, for 0 faith." - - if(!ability_cost(0,1,1)) - return - var/obj/structure/divine/defensepylon/DP = new(get_turf(src)) - DP.assign_deity(src) - verbs -= /mob/camera/god/verb/freeturret - - - -/mob/camera/god/proc/update_followers() - alive_followers = 0 - var/list/all_followers = get_my_followers() - for(var/datum/mind/F in all_followers) - if(F.current && F.current.stat != DEAD) - alive_followers++ - - if(hud_used && hud_used.deity_follower_display) - hud_used.deity_follower_display.maptext = "
    [alive_followers]
    " - - -/mob/camera/god/proc/check_death() - if(!alive_followers) - src << "You no longer have any followers. You shudder as you feel your existence cease..." - if(god_nexus && !qdeleted(god_nexus)) - god_nexus.visible_message("\The [src] suddenly disappears!") - qdel(god_nexus) - qdel(src) - - -/mob/camera/god/say(msg) - if(!msg) - return - if(client) - if(client.prefs.muted & MUTE_IC) - src << "You cannot send IC messages (muted)." - return - if(src.client.handle_spam_prevention(msg,MUTE_IC)) - return - if(stat) - return - - god_speak(msg) - - -/mob/camera/god/proc/god_speak(msg) - log_say("Hand of God: [capitalize(side)] God/[key_name(src)] : [msg]") - msg = trim(copytext(sanitize(msg), 1, MAX_MESSAGE_LEN)) - if(!msg) - return - - msg = say_quote(msg, get_spans()) - var/rendered = "Divine Telepathy, [name] [msg]
    " - src << rendered - - for(var/mob/M in mob_list) - if(is_handofgod_myfollowers(M)) - M << rendered - if(isobserver(M)) - var/link = FOLLOW_LINK(M, src) - M << "[link] [rendered]" - - -/mob/camera/god/emote(act,m_type = 1 ,msg = null) - return - - -/mob/camera/god/Move(NewLoc, Dir = 0) - loc = NewLoc - - - -/mob/camera/god/Topic(href, href_list) - if(href_list["create_structure"]) - if(!ability_cost(75,1,1)) - return - - var/obj/structure/divine/construct_type = text2path(href_list["create_structure"]) //it's a path but we need to initial() some vars - if(!construct_type) - return - - add_faith(-75) - var/obj/structure/divine/construction_holder/CH = new(get_turf(src)) - CH.assign_deity(src) - CH.setup_construction(construct_type) - CH.visible_message("[src] has created a transparent, unfinished [initial(construct_type.name)]. It can be finished by adding materials.") - src << "You may click a construction site to cancel it, but only faith is refunded." - structure_construction_ui(src) - return - - if(href_list["place_trap"]) - if(!ability_cost(20,1,1)) - return - - var/atom/trap_type = text2path(href_list["place_trap"]) - if(!trap_type) - return - - src << "You lay \a [initial(trap_type.name)]" - add_faith(-20) - new trap_type(get_turf(src)) - return - - ..() - - -/mob/camera/god/proc/structure_construction_ui(mob/camera/god/user) - var/dat = "" - for(var/t in global_handofgod_structuretypes) - if(global_handofgod_structuretypes[t]) - var/obj/structure/divine/apath = global_handofgod_structuretypes[t] - dat += "
    [capitalize(t)]

    " - var/imgstate = initial(apath.autocolours) ? "[initial(apath.icon_state)]-[side]" : "[initial(apath.icon_state)]" - var/icon/I = icon('icons/obj/hand_of_god_structures.dmi',imgstate) - var/img_component = lowertext(t) - //I hate byond, but atleast it autocaches these so it's only 1*number_of_structures worth of actual calls - user << browse_rsc(I,"hog_structure-[img_component].png") - dat += "
    " - dat += "Description: [initial(apath.desc)]
    " - dat += "
    Construct [capitalize(t)]


    " - - var/datum/browser/popup = new(src, "structures","Construct Structure",350,500) - popup.set_content(dat) - popup.open() - - -/mob/camera/god/proc/trap_construction_ui(mob/camera/god/user) - var/dat = "" - for(var/t in global_handofgod_traptypes) - if(global_handofgod_traptypes[t]) - var/obj/structure/divine/trap/T = global_handofgod_traptypes[t] - dat += "
    [capitalize(t)]

    " - var/icon/I = icon('icons/obj/hand_of_god_structures.dmi',"[initial(T.icon_state)]") - var/img_component = lowertext(t) - user << browse_rsc(I,"hog_trap-[img_component].png") - dat += "
    " - dat += "Description: [initial(T.desc)]
    " - dat += "
    Place [capitalize(t)]


    " - - var/datum/browser/popup = new(src, "traps", "Place Trap",350,500) - popup.set_content(dat) - popup.open() diff --git a/code/game/gamemodes/handofgod/objectives.dm b/code/game/gamemodes/handofgod/objectives.dm deleted file mode 100644 index dc31d67f46..0000000000 --- a/code/game/gamemodes/handofgod/objectives.dm +++ /dev/null @@ -1,129 +0,0 @@ - -/datum/objective/build - dangerrating = 15 - martyr_compatible = 1 - - -/datum/objective/build/proc/gen_amount_goal(lower, upper) - target_amount = rand(lower, upper) - explanation_text = "Build [target_amount] shrines." - return target_amount - - -/datum/objective/build/check_completion() - if(!owner || !owner.current) - return 0 - - var/shrines = 0 - if(is_handofgod_god(owner.current)) - var/mob/camera/god/G = owner.current - for(var/obj/structure/divine/shrine/S in G.structures) - S++ - - return (shrines >= target_amount) - - - -/datum/objective/deicide - dangerrating = 20 - martyr_compatible = 1 - -/datum/objective/deicide/check_completion() - if(target) - if(target.current) //Gods are deleted when they lose - return 0 - return 1 - - -/datum/objective/deicide/find_target() - if(!owner || !owner.current) - return - - if(is_handofgod_god(owner.current)) - var/mob/camera/god/G = owner.current - if(G.side == "red") - if(ticker.mode.blue_deities.len) - target = ticker.mode.blue_deities[1] - if(G.side == "blue") - if(ticker.mode.red_deities.len) - target = ticker.mode.red_deities[1] - if(!target) - return 0 - update_explanation_text() - -/datum/objective/deicide/update_explanation_text() - ..() - if(target && target.current) - explanation_text = "Phase [target.name], the false god, out of this plane of existence.." - else - explanation_text = "Free Objective" - - - -/datum/objective/follower_block - explanation_text = "Do not allow any followers of the false god to escape on the station's shuttle alive." - dangerrating = 25 - martyr_compatible = 1 - -/datum/objective/follower_block/check_completion() - var/side = "ABORT" - if(is_handofgod_redcultist(owner.current)) - side = "red" - else if(is_handofgod_bluecultist(owner.current)) - side = "blue" - if(side == "ABORT") - return 0 - - var/area/A = SSshuttle.emergency.areaInstance - - for(var/mob/living/player in player_list) - if(player.mind && player.stat != DEAD && get_area(player) == A) - if(side == "red") - if(is_handofgod_bluecultist(player)) - return 0 - else if(side == "blue") - if(is_handofgod_redcultist(player)) - return 0 - return 1 - - - -/datum/objective/escape_followers - dangerrating = 5 - - -/datum/objective/escape_followers/proc/gen_amount_goal(lower,upper) - target_amount = rand(lower,upper) - explanation_text = "Your will must surpass this station. Having [target_amount] followers escape on the shuttle or pods will allow that." - return target_amount - - -/datum/objective/escape_followers/check_completion() - var/escaped = 0 - if(is_handofgod_god(owner.current)) - var/mob/camera/god/G = owner.current - if(G.side == "red") - for(var/datum/mind/follower_mind in ticker.mode.red_deity_followers) - if(follower_mind.current && follower_mind.current.stat != DEAD) - if(follower_mind.current.onCentcom()) - escaped++ - - if(G.side == "blue") - for(var/datum/mind/follower_mind in ticker.mode.blue_deity_followers) - if(follower_mind.current && follower_mind.current.stat != DEAD) - if(follower_mind.current.onCentcom()) - escaped++ - - return (escaped >= target_amount) - - -/datum/objective/sacrifice_prophet - explanation_text = "A false prophet is preaching their god's faith on the station. Sacrificing them will show the mortals who the true god is." - dangerrating = 10 - - -/datum/objective/sacrifice_prophet/check_completion() - var/mob/camera/god/G = owner.current - if(istype(G)) - return G.prophets_sacrificed_in_name - return 0 diff --git a/code/game/gamemodes/handofgod/powers.dm b/code/game/gamemodes/handofgod/powers.dm deleted file mode 100644 index 30b3365cfc..0000000000 --- a/code/game/gamemodes/handofgod/powers.dm +++ /dev/null @@ -1,363 +0,0 @@ -/mob/camera/god/proc/ability_cost(cost = 0,structures = 0, requires_conduit = 0, can_place_near_enemy_nexus = 0) - if(faith < cost) - src << "You lack the faith!" - return 0 - - if(structures) - if(!isturf(loc) || istype(loc, /turf/open/space)) - src << "Your structure would just float away, you need stable ground!" - return 0 - - var/turf/T = get_turf(src) - if(T) - if(T.density) - src << "There is something blocking your structure!" - return 0 - - for(var/atom/movable/AM in T) - if(AM == src) - continue - if(AM.density) - src << "There is something blocking your structure!" - return 0 - - if(requires_conduit) - //Organised this way as there can be multiple conduits, so it's more likely to be a conduit check. - var/valid = 0 - - for(var/obj/structure/divine/conduit/C in conduits) - if(get_dist(src, C) <= CONDUIT_RANGE) - valid++ - break - - if(!valid) - if(get_dist(src, god_nexus) <= CONDUIT_RANGE) - valid++ - - if(!valid) - src << "You must be near your Nexus or a Conduit to do this!" - return 0 - - if(!can_place_near_enemy_nexus) - var/datum/mind/enemy - switch(side) - if("red") - if(ticker.mode.blue_deities.len) - enemy = ticker.mode.blue_deities[1] - if("blue") - if(ticker.mode.red_deities.len) - enemy = ticker.mode.red_deities[1] - - if(enemy && is_handofgod_god(enemy.current)) - var/mob/camera/god/enemy_god = enemy.current - if(enemy_god.god_nexus && (get_dist(src,enemy_god.god_nexus) <= CONDUIT_RANGE*2)) - src << "You are too close to the other god's stronghold!" - return 0 - - return 1 - - -/mob/camera/god/verb/returntonexus() - set category = "Deity" - set name = "Goto Nexus" - set desc = "Teleports you to your next instantly." - - if(god_nexus) - Move(get_turf(god_nexus)) - else - src << "You don't even have a Nexus, construct one." - - -/mob/camera/god/verb/jumptofollower() - set category = "Deity" - set name = "Jump to Follower" - set desc = "Teleports you to one of your followers." - var/list/following = list() - if(side == "red") - following = ticker.mode.red_deity_followers|ticker.mode.red_deity_prophets - else if(side == "blue") - following = ticker.mode.blue_deity_followers|ticker.mode.blue_deity_prophets - else - src << "You are unaligned, and thus do not have followers" - return - - var/datum/mind/choice = input("Choose a follower","Jump to Follower") as null|anything in following - if(choice && choice.current) - Move(get_turf(choice.current)) - - -/mob/camera/god/verb/newprophet() - set category = "Deity" - set name = "Appoint Prophet (100)" - set desc = "Appoint one of your followers as your Prophet, who can hear your words" - - var/list/following = list() - - if(!ability_cost(100)) - return - if(side == "red") - var/datum/mind/old_proph = locate() in ticker.mode.red_deity_prophets - if(old_proph && old_proph.current && old_proph.current.stat != DEAD) - src << "You can only have one prophet alive at a time." - return - else - following = ticker.mode.red_deity_followers - else if(side == "blue") - var/datum/mind/old_proph = locate() in ticker.mode.blue_deity_prophets - if(old_proph && old_proph.current && old_proph.current.stat != DEAD) - src << "You can only have one prophet alive at a time." - return - else - following = ticker.mode.blue_deity_followers - - else - src << "You are unalligned, and thus do not have prophets" - return - - var/datum/mind/choice = input("Choose a follower to make into your prophet","Prophet Uplifting") as null|anything in following - if(choice && choice.current && choice.current.stat != DEAD) - src << "You choose [choice.current] as your prophet." - choice.make_Handofgod_prophet(side) - speak2god = new() - speak2god.god = src - speak2god.Grant(choice.current) - - //Prophet gear - var/mob/living/carbon/human/H = choice.current - var/popehat = null - var/popestick = null - var/success = "" - switch(side) - if("red") - popehat = /obj/item/clothing/head/helmet/plate/crusader/prophet/red - popestick = /obj/item/weapon/godstaff/red - if("blue") - popehat = /obj/item/clothing/head/helmet/plate/crusader/prophet/blue - popestick = /obj/item/weapon/godstaff/blue - - if(popehat) - var/obj/item/clothing/head/helmet/plate/crusader/prophet/P = new popehat() - - if(H.equip_to_slot_if_possible(P,slot_in_backpack,0,1,1)) - success = "It is in your backpack." - else - H.unEquip(H.head) - H.equip_to_slot_or_del(P,slot_head) - success = "It is on your head." - - if(success) - H << "A powerful hat has been bestowed upon you, you will need to wear it to utilize your staff fully." - H << "[success]" - - if(popestick) - var/obj/item/weapon/godstaff/G = new popestick() - G.god = src - if(!H.equip_to_slot_if_possible(G,slot_in_backpack,0,1,1)) - if(!H.put_in_hands(G)) - G.loc = get_turf(H) - success = "It is on the floor..." - else - success = "It is in your hands..." - else - success = "It is in your backpack..." - - if(success) - H << "A powerful staff has been bestowed upon you, you can use this to convert the false god's structures!" - H << "[success]" - //end prophet gear - - add_faith(-100) - - -/mob/camera/god/verb/talk(msg as text) - set category = "Deity" - set name = "Talk to Anyone (20)" - set desc = "Allows you to send a message to anyone, regardless of their faith." - if(!ability_cost(20)) - return - var/mob/choice = input("Choose who you wish to talk to", "Talk to ANYONE") as null|anything in mob_list - if(choice) - var/original = msg - msg = "You hear a voice coming from everywhere and nowhere... [msg]" - choice << msg - src << "You say the following to [choice], [original]" - add_faith(-20) - - -/mob/camera/god/verb/smite() - set category = "Deity" - set name = "Smite (40)" - set desc = "Hits anything under you with a moderate amount of damage." - - if(!ability_cost(40,0,1)) - return - if(!range(7,god_nexus)) - src << "You lack the strength to smite this far from your nexus." - return - - var/has_smitten = 0 //Hast thou been smitten, infidel? - for(var/mob/living/L in get_turf(src)) - L.adjustFireLoss(20) - L.adjustBruteLoss(20) - L << "You feel the wrath of [name]!" - has_smitten = 1 - if(has_smitten) - add_faith(-40) - - -/mob/camera/god/verb/disaster() - set category = "Deity" - set name = "Invoke Disaster (300)" //difficult to reach without lots of followers - set desc = "Tug at the fibres of reality itself and bend it to your whims!" - - if(!ability_cost(300,0,1)) - return - - var/event = pick(/datum/round_event/meteor_wave, /datum/round_event/communications_blackout, /datum/round_event/radiation_storm, /datum/round_event/carp_migration, - /datum/round_event/spacevine, /datum/round_event/vent_clog, /datum/round_event/wormholes) - if(event) - new event() - add_faith(-300) - - -/mob/camera/god/verb/constructnexus() - set category = "Deity" - set name = "Construct Nexus" - set desc = "Instantly creates your nexus, You can only do this once, make sure you're happy with it!" - - if(!ability_cost(0,1,0)) - return - - place_nexus() - - -/* //Transolocators have no sprite -/mob/camera/god/verb/movenexus() - set category = "Deity" - set name = "Relocate Nexus (50)" - set desc = "Instantly relocates your nexus to an existing translocator belonging to your faith, this destroys the translocator in the process" - - if(ability_cost(50,0,0) && god_nexus) - var/list/translocators = list() - var/list/used_keys = list() - for(var/obj/structure/divine/translocator/T in structures) - translocators["[T.name] ([get_area(T)])"] = T - - if(!translocators.len) - src << "You have no translocators!" - return - - var/picked = input(src,"Choose a translocator","Relocate Nexus") as null|anything in translocators - if(!picked || !translocators[picked]) - return - - var/obj/structure/divine/translocator/T = translocators[T] - var/turf/Tturf = get_turf(T) - god_nexus.loc = T - translocators[picked] = null - add_faith(-50) - qdel(T) -*/ - -/mob/camera/god/verb/construct_structures() - set category = "Deity" - set name = "Construct Structure (75)" - set desc = "Create the foundation of a divine object." - - if(!ability_cost(75,1,1)) - return - - structure_construction_ui(src) - - -/mob/camera/god/verb/construct_traps() - set category = "Deity" - set name = "Construct Trap (20)" - set desc = "Creates a ward or trap." - - if(!ability_cost(20,1,1)) - return - - trap_construction_ui(src) - - - -/mob/camera/god/verb/construct_items() - set category = "Deity" - set name = "Construct Items (20)" - set desc = "Construct some items for your followers" - - if(!ability_cost(20,1,1)) - return - - var/list/item_types = list("claymore sword" = /obj/item/weapon/claymore/hog) - if(side == "red") - item_types["red banner"] = /obj/item/weapon/banner/red - item_types["red bannerbackpack"] = /obj/item/weapon/storage/backpack/bannerpack/red - item_types["red armour"] = /obj/item/weapon/storage/box/itemset/crusader/red - - else if(side == "blue") - item_types["blue banner"] = /obj/item/weapon/banner/blue - item_types["blue bannerbackpack"] = /obj/item/weapon/storage/backpack/bannerpack/blue - item_types["blue armour"] = /obj/item/weapon/storage/box/itemset/crusader/blue - - - var/item = input("Choose what you wish to create.", "Divine Items") as null|anything in item_types - if(!item || !item_types[item] || !ability_cost(20,1,1)) - return - - src << "You produce \a [item]" - add_faith(-20) - - var/itemtype = item_types[item] - new itemtype (get_turf(src)) - - - -/mob/camera/god/verb/veil_structures() - set category = "Deity" - set name = "Veil Structures (20)" - set desc = "Hide your structures from sight and touch, but prevent yourself from using them." - - if(!ability_cost(20,1,1)) - return - - src << "You focus your powers and start dragging your influence into the spiritual plane." - for(var/mob/M in orange(3,src))//Yes I know this is terrible, but visible message doesnt work for this - M << "The air begins to shimmer..." - if(do_after(src, 30, 0, src)) - for(var/obj/structure/divine/R in orange(3,src)) - if(istype(R, /obj/structure/divine/nexus)|| istype(R, /obj/structure/divine/trap)||(src.side != R.side)) - continue - R.visible_message("[R] fades away.") - R.invisibility = 55 - R.alpha = 100 //To help ghosts distinguish hidden structures - R.density = 0 - R.deactivate() - src << "You hide your influence from view" - add_faith(-20) - - -/mob/camera/god/verb/reveal_structures() - set category = "Deity" - set name = "Reveal Structures (20)" - set desc = "Make your structures visible again and allow them to be used." - - if(!ability_cost(20,1,1)) - return - - src << "You focus your powers and start dragging your influence into the material plane." - for(var/mob/M in orange(3,src))//Yes I know this is terrible, but visible message doesnt work for this - M << "The air begins to shimmer..." - if(do_after(src, 40, 0, src)) - for(var/obj/structure/divine/R in orange(3,src)) - if(istype(R, /obj/structure/divine/nexus)|| istype(R, /obj/structure/divine/trap)||(src.side != R.side)) - continue - R.visible_message("[R] suddenly appears!") - R.invisibility = 0 - R.alpha = initial(R.alpha) - R.density = initial(R.density) - R.activate() - src << "You bring your influence into view" - add_faith(-20) - diff --git a/code/game/gamemodes/handofgod/structures.dm b/code/game/gamemodes/handofgod/structures.dm deleted file mode 100644 index 2e85511d80..0000000000 --- a/code/game/gamemodes/handofgod/structures.dm +++ /dev/null @@ -1,658 +0,0 @@ - -/proc/build_hog_construction_lists() - if(global_handofgod_traptypes.len && global_handofgod_structuretypes.len) - return - - var/list/types = subtypesof(/obj/structure/divine) - /obj/structure/divine/trap - for(var/T in types) - var/obj/structure/divine/D = T - if(initial(D.constructable)) - if(initial(D.trap)) - global_handofgod_traptypes[initial(D.name)] = T - else - global_handofgod_structuretypes[initial(D.name)] = T - -/obj/structure/divine - name = "divine construction site" - icon = 'icons/obj/hand_of_god_structures.dmi' - desc = "An unfinished divine building" - anchored = 1 - density = 1 - var/constructable = TRUE - var/trap = FALSE - var/metal_cost = 0 - var/glass_cost = 0 - var/lesser_gem_cost = 0 - var/greater_gem_cost = 0 - var/mob/camera/god/deity - var/side = "neutral" //"blue" or "red", also used for colouring structures when construction is started by a deity - var/health = 100 - var/maxhealth = 100 - var/deactivated = 0 //Structures being hidden can't be used. Mainly to prevent invisible defense pylons. - var/autocolours = TRUE //do we colour to our side? - -/obj/structure/divine/New() - ..() - -/obj/structure/divine/proc/deactivate() - deactivated = 1 - -/obj/structure/divine/proc/activate() - deactivated = 0 - - -/obj/structure/divine/proc/update_icons() - if(autocolours) - icon_state = "[initial(icon_state)]-[side]" - - -/obj/structure/divine/Destroy() - if(deity) - deity.structures -= src - return ..() - - - -/obj/structure/divine/attackby(obj/item/I, mob/user) - - //Structure conversion/capture - if(istype(I, /obj/item/weapon/godstaff)) - if(!is_handofgod_cultist(user)) - user << "You're not quite sure what the hell you're even doing." - return - var/obj/item/weapon/godstaff/G = I - if(G.god && deity != G.god) - assign_deity(G.god, alert_old_deity = TRUE) - visible_message("\The [src] has been captured by [user]!") - else - return ..() - -/obj/structure/divine/attacked_by(obj/item/I, mob/living/user) - ..() - take_damage(I.force, I.damtype, 1) - -/obj/structure/divine/proc/take_damage(damage, damage_type = BRUTE, sound_effect = 1) - switch(damage_type) - if(BRUTE) - if(sound_effect) - if(damage) - playsound(loc, 'sound/weapons/smash.ogg', 50, 1) - else - playsound(loc, 'sound/weapons/tap.ogg', 50, 1) - if(BURN) - if(sound_effect) - playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) - else - return - health -= damage - if(!health) - visible_message("\The [src] was destroyed!") - qdel(src) - - -/obj/structure/divine/bullet_act(obj/item/projectile/P) - . = ..() - take_damage(P.damage, P.damage_type, 0) - - -/obj/structure/divine/attack_alien(mob/living/carbon/alien/humanoid/user) - user.changeNext_move(CLICK_CD_MELEE) - user.do_attack_animation(src) - add_hiddenprint(user) - visible_message("\The [user] slashes at [src]!") - playsound(src.loc, 'sound/weapons/slash.ogg', 100, 1) - take_damage(20, BRUTE, 0) - -/obj/machinery/attack_animal(mob/living/simple_animal/M) - M.changeNext_move(CLICK_CD_MELEE) - M.do_attack_animation(src) - if(M.melee_damage_upper > 0) - M.visible_message("[M.name] smashes against \the [src.name].",\ - "You smash against the [src.name].") - take_damage(rand(M.melee_damage_lower,M.melee_damage_upper), M.melee_damage_type, 1) - - -/obj/structure/divine/proc/assign_deity(mob/camera/god/new_deity, alert_old_deity = TRUE) - if(!new_deity) - return 0 - if(deity) - if(alert_old_deity) - deity << "Your [name] was captured by [new_deity]'s cult!" - deity.structures -= src - deity = new_deity - deity.structures |= src - side = deity.side - update_icons() - return 1 - - -/obj/structure/divine/construction_holder - alpha = 125 - constructable = FALSE - var/obj/structure/divine/construction_result = /obj/structure/divine //a path, but typed to /obj/structure/divine for initial() - - - -/obj/structure/divine/construction_holder/assign_deity(mob/camera/god/new_deity, alert_old_deity = TRUE) - if(..()) - color = side - - -/obj/structure/divine/construction_holder/attack_god(mob/camera/god/user) - if(user.side == side && construction_result) - user.add_faith(75) - visible_message("[user] has cancelled \the [initial(construction_result.name)]") - qdel(src) - - -/obj/structure/divine/construction_holder/proc/setup_construction(construct_type) - if(ispath(construct_type)) - construction_result = construct_type - name = "[initial(construction_result.name)] construction site " - icon_state = initial(construction_result.icon_state) - metal_cost = initial(construction_result.metal_cost) - glass_cost = initial(construction_result.glass_cost) - lesser_gem_cost = initial(construction_result.lesser_gem_cost) - greater_gem_cost = initial(construction_result.greater_gem_cost) - desc = "An unfinished [initial(construction_result.name)]." - - -/obj/structure/divine/construction_holder/attackby(obj/item/I, mob/user) - if(!I || !user) - return 0 - - if(istype(I, /obj/item/stack/sheet/metal)) - var/obj/item/stack/sheet/metal/M = I - if(metal_cost) - var/spend = min(metal_cost, M.amount) - user << "You add [spend] metal to \the [src]." - metal_cost = max(0, metal_cost - spend) - M.use(spend) - check_completion() - else - user << "\The [src] does not require any more metal!" - return - - if(istype(I, /obj/item/stack/sheet/glass)) - var/obj/item/stack/sheet/glass/G = I - if(glass_cost) - var/spend = min(glass_cost, G.amount) - user << "You add [spend] glass to \the [src]." - glass_cost = max(0, glass_cost - spend) - G.use(spend) - check_completion() - else - user << "\The [src] does not require any more glass!" - return - - if(istype(I, /obj/item/stack/sheet/lessergem)) - var/obj/item/stack/sheet/lessergem/LG = I - if(lesser_gem_cost) - var/spend = min(lesser_gem_cost, LG.amount) - user << "You add [spend] lesser gems to \the [src]." - lesser_gem_cost = max(0, lesser_gem_cost - spend) - LG.use(spend) - check_completion() - else - user << "\The [src] does not require any more lesser gems!" - return - - if(istype(I, /obj/item/stack/sheet/greatergem)) - var/obj/item/stack/sheet/greatergem/GG = I //GG! - if(greater_gem_cost) - var/spend = min(greater_gem_cost, GG.amount) - user << "You add [spend] greater gems to \the [src]." - greater_gem_cost = max(0, greater_gem_cost - spend) - GG.use(spend) - check_completion() - else - user << "\The [src] does not require any more greater gems!" - return - - else - return ..() - - -/obj/structure/divine/construction_holder/proc/check_completion() - if(!metal_cost && !glass_cost && !lesser_gem_cost && !greater_gem_cost) - visible_message("\The [initial(construction_result.name)] is complete!") - var/obj/structure/divine/D = new construction_result (get_turf(src)) - D.assign_deity(deity) - qdel(src) - - -/obj/structure/divine/construction_holder/examine(mob/user) - ..() - - if(metal_cost || glass_cost || lesser_gem_cost || greater_gem_cost) - user << "To finish construction it requires the following materials:" - if(metal_cost) - user << "[metal_cost] metal " - if(glass_cost) - user << "[glass_cost] glass " - if(lesser_gem_cost) - user << "[lesser_gem_cost] lesser gems " - if(greater_gem_cost) - user << "[greater_gem_cost] greater gems " - - -/obj/structure/divine/nexus - name = "nexus" - desc = "It anchors a deity to this world. It radiates an unusual aura. Cultists protect this at all costs. It looks well protected from explosive shock." - icon_state = "nexus" - health = 500 - maxhealth = 500 - constructable = FALSE - var/faith_regen_rate = 1 - var/list/powerpylons = list() - - -/obj/structure/divine/nexus/ex_act() - return - -/obj/structure/divine/nexus/take_damage(damage, damage_type = BRUTE, sound_effect = 1) - switch(damage_type) - if(BRUTE) - if(sound_effect) - if(damage) - playsound(loc, 'sound/weapons/smash.ogg', 50, 1) - else - playsound(loc, 'sound/weapons/tap.ogg', 50, 1) - if(BURN) - if(sound_effect) - playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) - else - return - health -= damage - if(deity) - deity.update_health_hud() - if(!health) - if(!qdeleted(deity) && deity.nexus_required) - deity << "Your nexus was destroyed. You feel yourself fading..." - qdel(deity) - visible_message("\The [src] was destroyed!") - qdel(src) - - -/obj/structure/divine/nexus/New() - START_PROCESSING(SSobj, src) - - -/obj/structure/divine/nexus/process() - if(deity) - deity.update_followers() - deity.add_faith(faith_regen_rate + (powerpylons.len / 5) + (deity.alive_followers / 3)) - deity.max_faith = initial(deity.max_faith) + (deity.alive_followers*10) //10 followers = 100 max faith, so disaster() at around 20 followers - deity.check_death() - - -/obj/structure/divine/nexus/Destroy() - STOP_PROCESSING(SSobj, src) - return ..() - - -/obj/structure/divine/conduit - name = "conduit" - desc = "It allows a deity to extend their reach. Their powers are just as potent near a conduit as a nexus." - icon_state = "conduit" - health = 150 - maxhealth = 150 - metal_cost = 10 - glass_cost = 5 - - -/obj/structure/divine/conduit/assign_deity(mob/camera/god/new_deity, alert_old_deity = TRUE) - if(deity) - deity.conduits -= src - ..() - if(deity) - deity.conduits += src - -/obj/structure/divine/conduit/deactivate() - ..() - if(deity) - deity.conduits -= src - -/obj/structure/divine/conduit/activate() - ..() - if(deity) - deity.conduits += src - -/* //No good sprites, and not enough items to make it viable yet -/obj/structure/divine/forge - name = "forge" - desc = "A forge fueled by divine might, it allows the creation of sacred and powerful artifacts. It requires common materials to craft objects." - icon_state = "forge" - health = 250 - maxhealth = 250 - density = 0 - maxhealth = 250 - metal_cost = 40 -*/ - -/obj/structure/divine/convertaltar - name = "conversion altar" - desc = "An altar dedicated to a deity. Cultists can \"forcefully teach\" their non-aligned crewmembers to join their side and take up their deity." - icon_state = "convertaltar" - density = 0 - metal_cost = 10 - can_buckle = 1 - - -/obj/structure/divine/convertaltar/attack_hand(mob/living/user) - ..() - if(deactivated) - return - var/mob/living/carbon/human/H = locate() in get_turf(src) - if(!is_handofgod_cultist(user)) - user << "You try to use it, but unfortunately you don't know any rituals." - return - if(!H) - return - if(!H.mind) - user << "Only sentients may serve your deity." - return - if((side == "red" && is_handofgod_redcultist(user) && !is_handofgod_redcultist(H)) || (side == "blue" && is_handofgod_bluecultist(user) && !is_handofgod_bluecultist(H))) - user << "You invoke the conversion ritual." - ticker.mode.add_hog_follower(H.mind, side) - else - user << "You invoke the conversion ritual." - user << "But the altar ignores your words..." - - -/obj/structure/divine/sacrificealtar - name = "sacrificial altar" - desc = "An altar designed to perform blood sacrifice for a deity. The cultists performing the sacrifice will gain a powerful material to use in their forge. Sacrificing a prophet will yield even better results." - icon_state = "sacrificealtar" - density = 0 - metal_cost = 15 - can_buckle = 1 - - -/obj/structure/divine/sacrificealtar/attack_hand(mob/living/user) - ..() - if(deactivated) - return - var/mob/living/L = locate() in get_turf(src) - if(!is_handofgod_cultist(user)) - user << "You try to use it, but unfortunately you don't know any rituals." - return - if(!L) - return - if((side == "red" && is_handofgod_redcultist(user)) || (side == "blue" && is_handofgod_bluecultist(user))) - if((side == "red" && is_handofgod_redcultist(L)) || (side == "blue" && is_handofgod_bluecultist(L))) - user << "You cannot sacrifice a fellow cultist." - return - user << "You attempt to sacrifice [L] by invoking the sacrificial ritual." - sacrifice(L) - else - user << "You attempt to sacrifice [L] by invoking the sacrificial ritual." - user << "But the altar ignores your words..." - - -/obj/structure/divine/sacrificealtar/proc/sacrifice(mob/living/L) - if(!L) - L = locate() in get_turf(src) - if(L) - if(ismonkey(L)) - var/luck = rand(1,4) - if(luck > 3) - new /obj/item/stack/sheet/lessergem(get_turf(src)) - - else if(ishuman(L)) - var/mob/living/carbon/human/H = L - - //Sacrifice altars can't teamkill - if(side == "red" && is_handofgod_redcultist(H)) - return - else if(side == "blue" && is_handofgod_bluecultist(H)) - return - - if(is_handofgod_prophet(H)) - new /obj/item/stack/sheet/greatergem(get_turf(src)) - if(deity) - deity.prophets_sacrificed_in_name++ - else - new /obj/item/stack/sheet/lessergem(get_turf(src)) - - else if(isAI(L) || istype(L, /mob/living/carbon/alien/humanoid/royal/queen)) - new /obj/item/stack/sheet/greatergem(get_turf(src)) - else - new /obj/item/stack/sheet/lessergem(get_turf(src)) - L.gib() - - -/obj/structure/divine/healingfountain - name = "healing fountain" - desc = "A fountain containing the waters of life... or death, depending on where your allegiances lie." - icon_state = "fountain" - metal_cost = 10 - glass_cost = 5 - autocolours = FALSE - var/time_between_uses = 1800 - var/last_process = 0 - var/cult_only = TRUE - -/obj/structure/divine/healingfountain/anyone - desc = "A fountain containing the waters of life." - cult_only = FALSE - -/obj/structure/divine/healingfountain/attack_hand(mob/living/user) - if(deactivated) - return - if(last_process + time_between_uses > world.time) - user << "The fountain appears to be empty." - return - last_process = world.time - if(!is_handofgod_cultist(user) && cult_only) - user << "The water burns!" - user.reagents.add_reagent("hell_water",20) - else - user << "The water feels warm and soothing as you touch it. The fountain immediately dries up shortly afterwards." - user.reagents.add_reagent("godblood",20) - update_icons() - addtimer(src, "update_icons", time_between_uses) - - -/obj/structure/divine/healingfountain/update_icons() - if(last_process + time_between_uses > world.time) - icon_state = "fountain" - else - icon_state = "fountain-[side]" - - -/obj/structure/divine/powerpylon - name = "power pylon" - desc = "A pylon which increases the deity's rate it can influence the world." - icon_state = "powerpylon" - density = 1 - health = 30 - maxhealth = 30 - metal_cost = 5 - glass_cost = 15 - - -/obj/structure/divine/powerpylon/New() - ..() - if(deity && deity.god_nexus) - deity.god_nexus.powerpylons += src - - -/obj/structure/divine/powerpylon/Destroy() - if(deity && deity.god_nexus) - deity.god_nexus.powerpylons -= src - return ..() - - -/obj/structure/divine/powerpylon/deactivate() - ..() - if(deity) - deity.god_nexus.powerpylons -= src - -/obj/structure/divine/powerpylon/activate() - ..() - if(deity) - deity.god_nexus.powerpylons += src - -/obj/structure/divine/defensepylon - name = "defense pylon" - desc = "A pylon which is blessed to withstand many blows, and fire strong bolts at nonbelievers. A god can toggle it." - icon_state = "defensepylon" - health = 150 - maxhealth = 150 - metal_cost = 25 - glass_cost = 30 - var/obj/machinery/porta_turret/defensepylon_internal_turret/pylon_gun - - -/obj/structure/divine/defensepylon/New() - ..() - pylon_gun = new(src) - pylon_gun.base = src - pylon_gun.faction = list("[side] god") - - -/obj/structure/divine/defensepylon/Destroy() - qdel(pylon_gun) //just in case - return ..() - - -/obj/structure/divine/defensepylon/examine(mob/user) - ..() - user << "\The [src] looks [pylon_gun.on ? "on" : "off"]." - - -/obj/structure/divine/defensepylon/assign_deity(mob/camera/god/new_deity, alert_old_deity = TRUE) - if(..() && pylon_gun) - pylon_gun.faction = list("[side] god") - pylon_gun.side = side - -/obj/structure/divine/defensepylon/attack_god(mob/camera/god/user) - if(user.side == side) - if(deactivated) - user << "You need to reveal it first!" - return - pylon_gun.on = !pylon_gun.on - icon_state = (pylon_gun.on) ? "defensepylon-[side]" : "defensepylon" - -/obj/structure/divine/defensepylon/deactivate() - ..() - pylon_gun.on = 0 - icon_state = (pylon_gun.on) ? "defensepylon-[side]" : "defensepylon" - -/obj/structure/divine/defensepylon/activate() - ..() - pylon_gun.on = 1 - icon_state = (pylon_gun.on) ? "defensepylon-[side]" : "defensepylon" - -//This sits inside the defensepylon, to avoid copypasta -/obj/machinery/porta_turret/defensepylon_internal_turret - name = "defense pylon" - desc = "A plyon which is blessed to withstand many blows, and fire strong bolts at nonbelievers." - icon = 'icons/obj/hand_of_god_structures.dmi' - installation = null - always_up = 1 - use_power = 0 - has_cover = 0 - health = 200 - projectile = /obj/item/projectile/beam/pylon_bolt - eprojectile = /obj/item/projectile/beam/pylon_bolt - shot_sound = 'sound/weapons/emitter2.ogg' - eshot_sound = 'sound/weapons/emitter2.ogg' - base_icon_state = "defensepylon" - active_state = "" - off_state = "" - faction = null - emp_vunerable = 0 - var/side = "neutral" - -/obj/machinery/porta_turret/defensepylon_internal_turret/setup() - return - -/obj/machinery/porta_turret/defensepylon_internal_turret/shootAt(atom/movable/target) - var/obj/item/projectile/A = ..() - if(A) - A.color = side - -/obj/machinery/porta_turret/defensepylon_internal_turret/assess_perp(mob/living/carbon/human/perp) - if(perp.handcuffed) //dishonourable to kill somebody who might be converted. - return 0 - var/badtarget = 0 - switch(side) - if("blue") - badtarget = is_handofgod_bluecultist(perp) - if("red") - badtarget = is_handofgod_redcultist(perp) - else - badtarget = 1 - if(badtarget) - return 0 - return 10 - - - -/obj/item/projectile/beam/pylon_bolt - name = "divine bolt" - icon_state = "greyscale_bolt" - damage = 15 - - -/obj/structure/divine/shrine - name = "shrine" - desc = "A shrine dedicated to a deity." - icon_state = "shrine" - metal_cost = 15 - glass_cost = 15 - - -/obj/structure/divine/shrine/assign_deity(mob/camera/god/new_deity, alert_old_deity = TRUE) - if(..()) - name = "shrine to [new_deity.name]" - desc = "A shrine dedicated to [new_deity.name]" - - - - -//Functional, but need sprites -/* -/obj/structure/divine/translocator - name = "translocator" - desc = "A powerful structure, made with a greater gem. It allows a deity to move their nexus to where this stands" - icon_state = "translocator" - health = 100 - maxhealth = 100 - metal_cost = 20 - glass_cost = 20 - greater_gem_cost = 1 - - -/obj/structure/divine/lazarusaltar - name = "lazarus altar" - desc = "A very powerful altar capable of bringing life back to the recently deceased, made with a greater gem. It can revive anyone and will heal virtually all wounds, but they are but a shell of their former self." - icon_state = "lazarusaltar" - density = 0 - health = 100 - maxhealth = 100 - metal_cost = 20 - greater_gem_cost = 1 - - -/obj/structure/divine/lazarusaltar/attack_hand(mob/living/user) - var/mob/living/L = locate() in get_turf(src) - if(!is_handofgod_culstist(user)) - user << "You try to use it, but unfortunately you don't know any rituals." - return - if(!L) - return - - if((side == "red" && is_handofgod_redcultist(user))) || (side == "blue" && is_handofgod_bluecultist(user))) - user << "You attempt to revive [L] by invoking the rebirth ritual." - L.revive() - L.adjustCloneLoss(50) - L.adjustStaminaLoss(100) - else - user << "You attempt to revive [L] by invoking the rebirth ritual." - user << "But the altar ignores your words..." -*/ - - diff --git a/code/game/gamemodes/intercept_report.dm b/code/game/gamemodes/intercept_report.dm index 7037866a6f..9f220ca4f5 100644 --- a/code/game/gamemodes/intercept_report.dm +++ b/code/game/gamemodes/intercept_report.dm @@ -1,281 +1,57 @@ +//Intercept reports are sent to the station every round to warn the crew of possible threats. They consist of five possibilites, one of which is always correct. + /datum/intercept_text var/text - /* - var/prob_correct_person_lower = 20 - var/prob_correct_person_higher = 80 - var/prob_correct_job_lower = 20 - var/prob_correct_job_higher = 80 - var/prob_correct_prints_lower = 20 - var/prob_correct_print_higher = 80 - var/prob_correct_objective_lower = 20 - var/prob_correct_objective_higher = 80 - */ - var/list/org_names_1 = list( - "Blighted", - "Defiled", - "Unholy", - "Murderous", - "Ugly", - "French", - "Blue", - "Farmer" - ) - var/list/org_names_2 = list( - "Reapers", - "Swarm", - "Rogues", - "Menace", - "Jeff Worshippers", - "Drunks", - "Strikers", - "Creed" - ) - var/list/anomalies = list( - "Huge electrical storm", - "Photon emitter", - "Meson generator", - "Blue swirly thing" - ) - var/list/SWF_names = list( - "Grand Wizard", - "His Most Unholy Master", - "The Most Angry", - "Bighands", - "Tall Hat", - "Deadly Sandals" - ) - var/list/changeling_names = list( - "Odo", - "The Thing", - "Booga", - "The Goatee of Wrath", - "Tam Lin", - "Species 3157", - "Small Prick" - ) - -/datum/intercept_text/proc/build(mode_type, datum/mind/correct_person) +/datum/intercept_text/proc/build(mode_type) + text = "
    " switch(mode_type) - if("revolution") - src.text = "" - src.build_rev(correct_person) - return src.text - if("gang") - src.text = "" - src.build_gang(correct_person) - return src.text + if("blob") + text += "A CMP scientist by the name of [pick("Griff", "Pasteur", "Chamberland", "Buist", "Rivers", "Stanley")] boasted about his corporation's \"finest creation\" - a macrobiological \ + virus capable of self-reproduction and hellbent on consuming whatever it touches. He went on to query Cybersun for permission to utilize the virus in biochemical warfare, to which \ + CMP subsequently gained. Be vigilant for any large organisms rapidly spreading across the station, as they are classified as a level 5 biohazard and critically dangerous. Note that \ + this organism seems to be weak to extreme heat; concentrated fire (such as welding tools and lasers) will be effective against it." + if("changeling") + text += "The Gorlex Marauders have announced the successful raid and destruction of Central Command containment ship #S-[rand(1111, 9999)]. This ship housed only a single prisoner - \ + codenamed \"Thing\", and it was highly adaptive and extremely dangerous. We have reason to believe that the Thing has allied with the Syndicate, and you should note that likelihood \ + of the Thing being sent to a station in this sector is highly likely. It may be in the guise of any crew member. Trust nobody - suspect everybody. Do not announce this to the crew, \ + as paranoia may spread and inhibit workplace efficiency." + if("clock_cult") + text += "We have lost contact with multiple stations in your sector. They have gone dark and do not respond to all transmissions, although they appear intact and the crew's life \ + signs remain uninterrupted. Those that have managed to send a transmission or have had some of their crew escape tell tales of a machine cult creating sapient automatons and seeking \ + to brainwash the crew to summon their god, Ratvar. If evidence of this cult is dicovered aboard your station, extreme caution and extreme vigilance must be taken going forward, and \ + all resources should be devoted to stopping this cult. Note that holy water seems to weaken and eventually return the minds of cultists that ingest it, and mindshield implants will \ + prevent conversion altogether." if("cult") - src.text = "" - src.build_cult(correct_person) - return src.text - if("wizard") - src.text = "" - src.build_wizard(correct_person) - return src.text - if("nuke") - src.text = "" - src.build_nuke(correct_person) - return src.text + text += "Some stations in your sector have reported evidence of blood sacrifice and strange magic. Ties to the Wizards' Federation have been proven not to exist, and many employees \ + have disappeared; even Central Command employees light-years away have felt strange presences and at times hysterical compulsions. Interrogations point towards this being the work of \ + the cult of Nar-Sie. If evidence of this cult is discovered aboard your station, extreme caution and extreme vigilance must be taken going forward, and all resources should be \ + devoted to stopping this cult. Note that holy water seems to weaken and eventually return the minds of cultists that ingest it, and mindshield implants will prevent conversion \ + altogether." + if("extended") + text += "The transmission mostly failed to mention your sector. It is possible that there is nothing in the Syndicate that could threaten your station during this shift." + if("gang") + text += "Cybersun Industries representatives claimed that they, in joint research with the Tiger Cooperative, have made a major breakthrough in brainwashing technology, and have \ + made the nanobots that apply the \"conversion\" very small and capable of fitting into usually innocent objects - namely, pens. While they refused to outsource this technology for \ + months to come due to its flaws, they reported some as missing but passed it off to carelessness. At Central Command, we don't like mysteries, and we have reason to believe that this \ + technology was stolen for anti-Nanotrasen use. Be on the lookout for territory claims and unusually violent crew behavior, applying mindshield implants as necessary." + if("malf") + text += "A large ionospheric anomaly recently passed through your sector. Although physically undetectable, ionospherics tend to have an extreme effect on telecommunications equipment \ + as well as artificial intelligence units. Closely observe the behavior of artificial intelligence, and treat any machine malfunctions as purposeful. If necessary, termination of the \ + artificial intelligence is advised; assuming that it activates the station's self-destruct, your pinpointer has been configured to constantly track it, wherever it may be." + if("nuclear") + text += "One of Central Command's trading routes was recently disrupted by a raid carried out by the Gorlex Marauders. They seemed to only be after one ship - a highly-sensitive \ + transport containing a nuclear fission explosive, although it is useless without the proper code and authorization disk. While the code was likely found in minutes, the only disk that \ + can activate this explosive is on your station. Ensure that it is protected at all times, and remain alert for possible intruders." + if("revolution") + text += "Employee unrest has spiked in recent weeks, with several attempted mutinies on heads of staff. Some crew have been observed using flashbulb devices to blind their colleagues, \ + who then follow their orders without question and work towards dethroning departmental leaders. Watch for behavior such as this with caution. If the crew attempts a mutiny, you and \ + your heads of staff are fully authorized to execute them using lethal weaponry - they will be later cloned and interrogated at Central Command." if("traitor") - src.text = "" - src.build_traitor(correct_person) - return src.text - if("changeling","traitorchan") - src.text = "" - src.build_changeling(correct_person) - return src.text - else - return null - -// NOTE: Commentted out was the code which showed the chance of someone being an antag. If you want to re-add it, just uncomment the code. - -/* -/datum/intercept_text/proc/pick_mob() - var/list/dudes = list() - for(var/mob/living/carbon/human/man in player_list) - if (!man.mind) continue - if (man.mind.assigned_role=="MODE") continue - dudes += man - if(dudes.len==0) - return null - return pick(dudes) - - -/datum/intercept_text/proc/pick_fingerprints() - var/mob/living/carbon/human/dude = src.pick_mob() - //if (!dude) return pick_fingerprints() //who coded that is totally crasy or just a traitor. -- rastaf0 - if(dude) - return num2text(md5(dude.dna.uni_identity)) - else - return num2text(md5(num2text(rand(1,10000)))) -*/ - -/datum/intercept_text/proc/build_traitor(datum/mind/correct_person) - var/name_1 = pick(src.org_names_1) - var/name_2 = pick(src.org_names_2) - - /* - var/fingerprints - var/traitor_name - var/prob_right_dude = rand(prob_correct_person_lower, prob_correct_person_higher) - if(prob(prob_right_dude) && ticker.mode == "traitor") - if(correct_person:assigned_role=="MODE") - traitor_name = pick_mob() - else - traitor_name = correct_person:current - else if(prob(prob_right_dude)) - traitor_name = pick_mob() - else - fingerprints = pick_fingerprints() - */ - - src.text += "

    The [name_1] [name_2] implied an undercover operative was acting on their behalf on the station currently." - src.text += "It would be in your best interests to suspect everybody, as these undercover operatives could have implants which trigger them to have their memories removed until they are needed. He, or she, could even be a high ranking officer." - src.text += "

    " - /* - src.text += "After some investigation, we " - if(traitor_name) - src.text += "are [prob_right_dude]% sure that [traitor_name] may have been involved, and should be closely observed." - src.text += "
    Note: This group are known to be untrustworthy, so do not act on this information without proper discourse." - else - src.text += "discovered the following set of fingerprints ([fingerprints]) on sensitive materials, and their owner should be closely observed." - src.text += "However, these could also belong to a current Centcom employee, so do not act on this without reason." - */ - - -/datum/intercept_text/proc/build_cult(datum/mind/correct_person) - var/name_1 = pick(src.org_names_1) - var/name_2 = pick(src.org_names_2) - /* - var/traitor_name - var/traitor_job - var/prob_right_dude = rand(prob_correct_person_lower, prob_correct_person_higher) - var/prob_right_job = rand(prob_correct_job_lower, prob_correct_job_higher) - if(prob(prob_right_job) && is_convertable_to_cult(correct_person)) - if (correct_person) - if(correct_person:assigned_role=="MODE") - traitor_job = pick(get_all_jobs()) - else - traitor_job = correct_person:assigned_role - else - var/list/job_tmp = get_all_jobs() - job_tmp.Remove("Captain", "Chaplain", "AI", "Cyborg", "Security Officer", "Detective", "Head Of Security", "Head of Personnel", "Chief Engineer", "Research Director", "Chief Medical Officer") - traitor_job = pick(job_tmp) - if(prob(prob_right_dude) && ticker.mode == "cult") - if(correct_person:assigned_role=="MODE") - traitor_name = src.pick_mob() - else - traitor_name = correct_person:current - else - traitor_name = pick_mob() - */ - src.text += "

    It has been brought to our attention that the [name_1] [name_2] have stumbled upon some dark secrets. They apparently want to spread the dangerous knowledge onto as many stations as they can." - src.text += "Watch out for the following: praying to an unfamilar god, preaching the word of \[REDACTED\], sacrifices, magical dark power, living constructs of evil and a portal to the dimension of the underworld." - src.text += "

    " - /* - src.text += "Based on our intelligence, we are [prob_right_job]% sure that if true, someone doing the job of [traitor_job] on your station may have been converted " - src.text += "and instilled with the idea of the flimsiness of the real world, seeking to destroy it. " - if(prob(prob_right_dude)) - src.text += "
    In addition, we are [prob_right_dude]% sure that [traitor_name] may have also some in to contact with this " - src.text += "organisation." - src.text += "
    However, if this information is acted on without substantial evidence, those responsible will face severe repercussions." - */ - - -/datum/intercept_text/proc/build_rev(datum/mind/correct_person) - var/name_1 = pick(src.org_names_1) - var/name_2 = pick(src.org_names_2) - /* - var/traitor_name - var/traitor_job - var/prob_right_dude = rand(prob_correct_person_lower, prob_correct_person_higher) - var/prob_right_job = rand(prob_correct_job_lower, prob_correct_job_higher) - if(prob(prob_right_job) && is_convertable_to_rev(correct_person)) - if (correct_person) - if(correct_person.assigned_role=="MODE") - traitor_job = pick(get_all_jobs()) - else - traitor_job = correct_person.assigned_role - else - var/list/job_tmp = get_all_jobs() - job_tmp-=nonhuman_positions - job_tmp-=command_positions - job_tmp.Remove("Security Officer", "Detective", "Warden", "MODE") - traitor_job = pick(job_tmp) - if(prob(prob_right_dude) && ticker.mode.config_tag == "revolution") - if(correct_person.assigned_role=="MODE") - traitor_name = src.pick_mob() - else - traitor_name = correct_person.current - else - traitor_name = src.pick_mob() - */ - src.text += "

    It has been brought to our attention that the [name_1] [name_2] are attempting to stir unrest on one of our stations in your sector." - src.text += "Watch out for suspicious activity among the crew and make sure that all heads of staff report in periodically." - src.text += "

    " - /* - src.text += "Based on our intelligence, we are [prob_right_job]% sure that if true, someone doing the job of [traitor_job] on your station may have been brainwashed " - src.text += "at a recent conference, and their department should be closely monitored for signs of mutiny. " - if(prob(prob_right_dude)) - src.text += "
    In addition, we are [prob_right_dude]% sure that [traitor_name] may have also some in to contact with this " - src.text += "organisation." - src.text += "
    However, if this information is acted on without substantial evidence, those responsible will face severe repercussions." - */ - -/datum/intercept_text/proc/build_gang(datum/mind/correct_person) - src.text += "

    We have reports of criminal activity in close proximity to our operations within your sector." - src.text += "Ensure law and order is maintained on the station and be on the lookout for territorial aggression within the crew." - src.text += "In the event of a full-scale criminal takeover threat, sensitive research items are to be secured and the station evacuated ASAP." - src.text += "

    " - -/datum/intercept_text/proc/build_wizard(datum/mind/correct_person) - var/SWF_desc = pick(SWF_names) - - src.text += "

    The evil Space Wizards Federation have recently broke their most feared wizard, known only as \"[SWF_desc]\" out of space jail. " - src.text += "He is on the run, last spotted in a system near your present location. If anybody suspicious is located aboard, please " - src.text += "approach with EXTREME caution. Centcom also recommends that it would be wise to not inform the crew of this, due to their fearful nature." - src.text += "Known attributes include: Brown sandals, a large blue hat, a voluptous white beard, and an inclination to cast spells." - src.text += "

    " - -/datum/intercept_text/proc/build_nuke(datum/mind/correct_person) - src.text += "

    Centcom recently received a report of a plot to destroy one of our stations in your area. We believe the Nuclear Authentication Disc " - src.text += "that is standard issue aboard your vessel may be a target. We recommend removal of this object, and it's storage in a safe " - src.text += "environment. As this may cause panic among the crew, all efforts should be made to keep this information a secret from all but " - src.text += "the most trusted crew-members." - src.text += "

    " - -/datum/intercept_text/proc/build_changeling(datum/mind/correct_person) - var/cname = pick(src.changeling_names) - var/orgname1 = pick(src.org_names_1) - var/orgname2 = pick(src.org_names_2) - /* - var/changeling_name - var/changeling_job - var/prob_right_dude = rand(prob_correct_person_lower, prob_correct_person_higher) - var/prob_right_job = rand(prob_correct_job_lower, prob_correct_job_higher) - if(prob(prob_right_job)) - if(correct_person) - if(correct_person:assigned_role=="MODE") - changeling_job = pick(get_all_jobs()) - else - changeling_job = correct_person:assigned_role - else - changeling_job = pick(get_all_jobs()) - if(prob(prob_right_dude) && ticker.mode == "changeling") - if(correct_person:assigned_role=="MODE") - changeling_name = correct_person:current - else - changeling_name = src.pick_mob() - else - changeling_name = src.pick_mob() - */ - - src.text += "

    We have received a report that a dangerous alien lifeform known only as \"[cname]\" may have infiltrated your crew. " - /* - src.text += "Our intelligence suggests a [prob_right_job]% chance that a [changeling_job] on board your station has been replaced by the alien. " - src.text += "Additionally, the report indicates a [prob_right_dude]% chance that [changeling_name] may have been in contact with the lifeform at a recent social gathering. " - */ - src.text += "These lifeforms are associated with the [orgname1] [orgname2] and may be attempting to acquire sensitive materials on their behalf. " - src.text += "Please take care not to alarm the crew, as [cname] may take advantage of a panic situation. Remember, they can be anybody, suspect everybody!" - src.text += "

    " + text += "Although more specific threats are commonplace, you should always remain vigilant for Syndicate agents aboard your station. Syndicate communications have implied that many \ + Nanotrasen employees are Syndicate agents with hidden memories that may be activated at a moment's notice, so it's possible that these agents might not even know their positions." + if("wizard") + text += "A dangerous Wizards' Federation individual by the name of [pick(wizard_first)] [pick(wizard_second)] has recently escaped confinement from an unlisted prison facility. This \ + man is a dangerous mutant with the ability to alter himself and the world around him by what he and his leaders believe to be magic. If this man attempts an attack on your station, \ + his execution is highly encouraged, as is the preservation of his body for later study." + return text diff --git a/code/game/gamemodes/malfunction/Malf_Modules.dm b/code/game/gamemodes/malfunction/Malf_Modules.dm index 0653daa9a8..98b98336aa 100644 --- a/code/game/gamemodes/malfunction/Malf_Modules.dm +++ b/code/game/gamemodes/malfunction/Malf_Modules.dm @@ -9,10 +9,10 @@ var/power_type -/datum/AI_Module/large/ +/datum/AI_Module/large uses = 1 -/datum/AI_Module/small/ +/datum/AI_Module/small uses = 5 /datum/AI_Module/large/nuke_station @@ -35,15 +35,13 @@ src << "Nuclear device armed." priority_announce("Hostile runtimes detected in all station systems, please deactivate your AI to prevent possible damage to its morality core.", "Anomaly Alert", 'sound/AI/aimalf.ogg') set_security_level("delta") - SSshuttle.emergencyNoEscape = 1 nuking = 1 var/obj/machinery/doomsday_device/DOOM = new /obj/machinery/doomsday_device(src) doomsday_device = DOOM + doomsday_device.start() verbs -= /mob/living/silicon/ai/proc/nuke_station - for(var/obj/item/weapon/pinpointer/point in pinpointer_list) - for(var/mob/living/silicon/ai/A in ai_list) - if((A.stat != DEAD) && A.nuking) - point.the_disk = A //The pinpointer now tracks the AI core + for(var/obj/item/weapon/pinpointer/P in pinpointer_list) + P.switch_mode_to(TRACK_MALF_AI) //Pinpointers start tracking the AI wherever it goes /obj/machinery/doomsday_device icon = 'icons/obj/machines/nuke_terminal.dmi' @@ -53,29 +51,57 @@ anchored = 1 density = 1 verb_exclaim = "blares" - var/timing = 1 - var/timer = 450 + var/timing = FALSE + var/default_timer = 4500 + var/obj/effect/countdown/doomsday/countdown + var/detonation_timer + var/list/milestones = list() + +/obj/machinery/doomsday_device/New() + ..() + countdown = new(src) + +/obj/machinery/doomsday_device/Destroy() + if(countdown) + qdel(countdown) + countdown = null + STOP_PROCESSING(SSfastprocess, src) + SSshuttle.clearHostileEnvironment(src) + for(var/A in ai_list) + var/mob/living/silicon/ai/Mlf = A + if(Mlf.doomsday_device == src) + Mlf.doomsday_device = null + . = ..() + +/obj/machinery/doomsday_device/proc/start() + detonation_timer = world.time + default_timer + timing = TRUE + countdown.start() + START_PROCESSING(SSfastprocess, src) + SSshuttle.registerHostileEnvironment(src) + +/obj/machinery/doomsday_device/proc/seconds_remaining() + . = max(0, (round((detonation_timer - world.time) / 10))) /obj/machinery/doomsday_device/process() var/turf/T = get_turf(src) if(!T || T.z != ZLEVEL_STATION) minor_announce("DOOMSDAY DEVICE OUT OF STATION RANGE, ABORTING", "ERROR ER0RR $R0RRO$!R41.%%!!(%$^^__+ @#F0E4", 1) - SSshuttle.emergencyNoEscape = 0 - if(SSshuttle.emergency.mode == SHUTTLE_STRANDED) - SSshuttle.emergency.mode = SHUTTLE_DOCKED - SSshuttle.emergency.timer = world.time - priority_announce("Hostile environment resolved. You have 3 minutes to board the Emergency Shuttle.", null, 'sound/AI/shuttledock.ogg', "Priority") + SSshuttle.clearHostileEnvironment(src) qdel(src) if(!timing) + STOP_PROCESSING(SSfastprocess, src) return - if(timer <= 0) - timing = 0 + var/sec_left = seconds_remaining() + if(sec_left <= 0) + timing = FALSE detonate(T.z) qdel(src) else - timer-- - if(!(timer%60)) - var/message = "[timer] SECONDS UNTIL DOOMSDAY DEVICE ACTIVATION!" + var/key = num2text(sec_left) + if(!(sec_left % 60) && !(key in milestones)) + milestones[key] = TRUE + var/message = "[key] SECONDS UNTIL DOOMSDAY DEVICE ACTIVATION!" minor_announce(message, "ERROR ER0RR $R0RRO$!R41.%%!!(%$^^__+ @#F0E4", 1) /obj/machinery/doomsday_device/proc/detonate(z_level = 1) @@ -84,7 +110,7 @@ sleep(100) for(var/mob/living/L in mob_list) var/turf/T = get_turf(L) - if(T.z != z_level) + if(!T || T.z != z_level) continue if(issilicon(L)) continue @@ -93,23 +119,6 @@ world << "The AI cleansed the station of life with the doomsday device!" ticker.force_ending = 1 -/datum/AI_Module/large/fireproof_core - module_name = "Core Upgrade" - mod_pick_name = "coreup" - description = "An upgrade to improve core resistance, making it immune to fire and heat. This effect is permanent." - cost = 50 - one_time = 1 - - power_type = /mob/living/silicon/ai/proc/fireproof_core - -/mob/living/silicon/ai/proc/fireproof_core() - set category = "Malfunction" - set name = "Fireproof Core" - for(var/mob/living/silicon/ai/ai in player_list) - ai.fire_res_on_core = 1 - src.verbs -= /mob/living/silicon/ai/proc/fireproof_core - src << "Core fireproofed." - /datum/AI_Module/large/upgrade_turrets module_name = "AI Turret Upgrade" mod_pick_name = "turret" @@ -129,9 +138,9 @@ src.verbs -= /mob/living/silicon/ai/proc/upgrade_turrets //Upgrade AI turrets around the world for(var/obj/machinery/porta_turret/ai/turret in machines) - turret.health += 30 - turret.eprojectile = /obj/item/projectile/beam/laser/heavylaser //Once you see it, you will know what it means to FEAR. - turret.eshot_sound = 'sound/weapons/lasercannonfire.ogg' + turret.obj_integrity += 30 + turret.lethal_projectile = /obj/item/projectile/beam/laser/heavylaser //Once you see it, you will know what it means to FEAR. + turret.lethal_projectile_sound = 'sound/weapons/lasercannonfire.ogg' src << "Turrets upgraded." /datum/AI_Module/large/lockdown @@ -153,7 +162,7 @@ for(var/obj/machinery/door/D in airlocks) if(D.z != ZLEVEL_STATION) continue - addtimer(D, "hostile_lockdown", 0, FALSE, src) + addtimer(D, "hostile_lockdown", 0, TIMER_NORMAL, src) addtimer(D, "disable_lockdown", 900) var/obj/machinery/computer/communications/C = locate() in machines @@ -163,7 +172,7 @@ verbs -= /mob/living/silicon/ai/proc/lockdown minor_announce("Hostile runtime detected in door controllers. Isolation Lockdown protocols are now in effect. Please remain calm.","Network Alert:", 1) src << "Lockdown Initiated. Network reset in 90 seconds." - addtimer(GLOBAL_PROC, "minor_announce", 900, FALSE, + addtimer(GLOBAL_PROC, "minor_announce", 900, TIMER_NORMAL, "Automatic system reboot complete. Have a secure day.", "Network reset:") @@ -282,11 +291,11 @@ for(var/datum/AI_Module/small/overload_machine/overload in current_modules) if(overload.uses > 0) overload.uses -- - audible_message("You hear a loud electrical buzzing sound!") + audible_message("You hear a loud electrical buzzing sound coming from [M]!") src << "Overloading machine circuitry..." spawn(50) if(M) - explosion(get_turf(M), 0,1,1,0) + explosion(get_turf(M), 0,2,3,0) qdel(M) else src << "Out of uses." else src << "That's not a machine." @@ -368,7 +377,7 @@ for(var/n=1;n<4,n++) var/fail var/turf/T = turfs[n] - if(!istype(T, /turf/open/floor)) + if(!isfloorturf(T)) fail = 1 var/datum/camerachunk/C = cameranet.getCameraChunk(T.x, T.y, T.z) if(!C.visibleTurfs[T]) diff --git a/code/game/gamemodes/meteor/meteor.dm b/code/game/gamemodes/meteor/meteor.dm index a2cd00dee6..9fd121a7ba 100644 --- a/code/game/gamemodes/meteor/meteor.dm +++ b/code/game/gamemodes/meteor/meteor.dm @@ -6,20 +6,18 @@ var/rampupdelta = 5 required_players = 0 - -/datum/game_mode/meteor/announce() - world << "The current game mode is - Meteor!" - world << "The space station has been stuck in a major meteor shower. You must escape from the station or at least live." + announce_span = "danger" + announce_text = "A major meteor shower is bombarding the station! The crew needs to evacuate or survive the onslaught." /datum/game_mode/meteor/process() - if(nometeors || meteordelay > world.time - round_start_time) + if(nometeors || meteordelay > world.time - round_start_time) return - + var/list/wavetype = meteors_normal var/meteorminutes = (world.time - round_start_time - meteordelay) / 10 / 60 - - + + if (prob(meteorminutes)) wavetype = meteors_threatening diff --git a/code/game/gamemodes/meteor/meteors.dm b/code/game/gamemodes/meteor/meteors.dm index 954bfe63aa..681ce9c903 100644 --- a/code/game/gamemodes/meteor/meteors.dm +++ b/code/game/gamemodes/meteor/meteors.dm @@ -1,3 +1,4 @@ +#define DEFAULT_METEOR_LIFETIME 1800 /var/const/meteor_wave_delay = 625 //minimum wait between waves in tenths of seconds //set to at least 100 unless you want evarr ruining every round @@ -28,7 +29,7 @@ var/turf/pickedstart var/turf/pickedgoal var/max_i = 10//number of tries to spawn meteor. - while (!istype(pickedstart, /turf/open/space)) + while(!isspaceturf(pickedstart)) var/startSide = pick(cardinal) pickedstart = spaceDebrisStartLoc(startSide, 1) pickedgoal = spaceDebrisFinishLoc(startSide, 1) @@ -41,45 +42,42 @@ M.z_original = 1 spawn(0) walk_towards(M, M.dest, 1) - return /proc/spaceDebrisStartLoc(startSide, Z) var/starty var/startx switch(startSide) - if(1) //NORTH + if(NORTH) starty = world.maxy-(TRANSITIONEDGE+1) startx = rand((TRANSITIONEDGE+1), world.maxx-(TRANSITIONEDGE+1)) - if(2) //EAST + if(EAST) starty = rand((TRANSITIONEDGE+1),world.maxy-(TRANSITIONEDGE+1)) startx = world.maxx-(TRANSITIONEDGE+1) - if(3) //SOUTH + if(SOUTH) starty = (TRANSITIONEDGE+1) startx = rand((TRANSITIONEDGE+1), world.maxx-(TRANSITIONEDGE+1)) - if(4) //WEST + if(WEST) starty = rand((TRANSITIONEDGE+1), world.maxy-(TRANSITIONEDGE+1)) startx = (TRANSITIONEDGE+1) - var/turf/T = locate(startx, starty, Z) - return T + . = locate(startx, starty, Z) /proc/spaceDebrisFinishLoc(startSide, Z) var/endy var/endx switch(startSide) - if(1) //NORTH - endy = TRANSITIONEDGE - endx = rand(TRANSITIONEDGE, world.maxx-TRANSITIONEDGE) - if(2) //EAST - endy = rand(TRANSITIONEDGE, world.maxy-TRANSITIONEDGE) - endx = TRANSITIONEDGE - if(3) //SOUTH - endy = world.maxy-TRANSITIONEDGE - endx = rand(TRANSITIONEDGE, world.maxx-TRANSITIONEDGE) - if(4) //WEST - endy = rand(TRANSITIONEDGE,world.maxy-TRANSITIONEDGE) - endx = world.maxx-TRANSITIONEDGE - var/turf/T = locate(endx, endy, Z) - return T + if(NORTH) + endy = (TRANSITIONEDGE+1) + endx = rand((TRANSITIONEDGE+1), world.maxx-(TRANSITIONEDGE+1)) + if(EAST) + endy = rand((TRANSITIONEDGE+1), world.maxy-(TRANSITIONEDGE+1)) + endx = (TRANSITIONEDGE+1) + if(SOUTH) + endy = world.maxy-(TRANSITIONEDGE+1) + endx = rand((TRANSITIONEDGE+1), world.maxx-(TRANSITIONEDGE+1)) + if(WEST) + endy = rand((TRANSITIONEDGE+1),world.maxy-(TRANSITIONEDGE+1)) + endx = world.maxx-(TRANSITIONEDGE+1) + . = locate(endx, endy, Z) /////////////////////// //The meteor effect @@ -99,6 +97,8 @@ var/heavy = 0 var/meteorsound = 'sound/effects/meteorimpact.ogg' var/z_original = 1 + var/threat = 0 // used for determining which meteors are most interesting + var/lifetime = DEFAULT_METEOR_LIFETIME var/list/meteordrop = list(/obj/item/weapon/ore/iron) var/dropamt = 2 @@ -114,18 +114,21 @@ var/turf/T = get_turf(loc) ram_turf(T) - if(prob(10) && !istype(T, /turf/open/space))//randomly takes a 'hit' from ramming + if(prob(10) && !isspaceturf(T))//randomly takes a 'hit' from ramming get_hit() - return . - /obj/effect/meteor/Destroy() + meteor_list -= src walk(src,0) //this cancels the walk_towards() proc - return ..() + . = ..() /obj/effect/meteor/New() ..() + meteor_list += src + if(SSaugury) + SSaugury.register_doom(src, threat) SpinAnimation() + QDEL_IN(src, lifetime) /obj/effect/meteor/Bump(atom/A) if(A) @@ -137,7 +140,7 @@ //first bust whatever is in the turf for(var/atom/A in T) if(A != src) - if(istype(A, /mob/living)) + if(isliving(A)) A.visible_message("[src] slams into [A].", "[src] slams into you!.") A.ex_act(hitpwr) @@ -153,28 +156,38 @@ hits-- if(hits <= 0) make_debris() - meteor_effect(heavy) + meteor_effect() qdel(src) /obj/effect/meteor/ex_act() return +#define METEOR_MEDAL "Your Life Before Your Eyes" + +/obj/effect/meteor/examine(mob/user) + if(!admin_spawned && isliving(user)) + UnlockMedal(METEOR_MEDAL,user.client) + ..() + +#undef METEOR_MEDAL + /obj/effect/meteor/attackby(obj/item/weapon/W, mob/user, params) if(istype(W, /obj/item/weapon/pickaxe)) make_debris() qdel(src) - return else - return ..() + . = ..() /obj/effect/meteor/proc/make_debris() for(var/throws = dropamt, throws > 0, throws--) var/thing_to_spawn = pick(meteordrop) new thing_to_spawn(get_turf(src)) -/obj/effect/meteor/proc/meteor_effect(sound=1) - if(sound) +/obj/effect/meteor/proc/meteor_effect() + if(heavy) for(var/mob/M in player_list) + if((M.orbiting) && (SSaugury.watchers[M])) + continue var/turf/T = get_turf(M) if(!T || T.z != src.z) continue @@ -195,14 +208,16 @@ hitpwr = 3 meteorsound = 'sound/weapons/Gunshot_smg.ogg' meteordrop = list(/obj/item/weapon/ore/glass) + threat = 1 //Medium-sized /obj/effect/meteor/medium name = "meteor" dropamt = 3 + threat = 5 /obj/effect/meteor/medium/meteor_effect() - ..(heavy) + ..() explosion(src.loc, 0, 1, 2, 3, 0) //Large-sized @@ -212,9 +227,10 @@ hits = 6 heavy = 1 dropamt = 4 + threat = 10 /obj/effect/meteor/big/meteor_effect() - ..(heavy) + ..() explosion(src.loc, 1, 2, 3, 4, 0) //Flaming meteor @@ -225,9 +241,10 @@ heavy = 1 meteorsound = 'sound/effects/bamf.ogg' meteordrop = list(/obj/item/weapon/ore/plasma) + threat = 20 /obj/effect/meteor/flaming/meteor_effect() - ..(heavy) + ..() explosion(src.loc, 1, 2, 3, 4, 0, 0, 5) //Radiation meteor @@ -236,10 +253,11 @@ icon_state = "glowing" heavy = 1 meteordrop = list(/obj/item/weapon/ore/uranium) + threat = 15 /obj/effect/meteor/irradiated/meteor_effect() - ..(heavy) + ..() explosion(src.loc, 0, 0, 4, 3, 0) new /obj/effect/decal/cleanable/greenglow(get_turf(src)) radiation_pulse(get_turf(src), 2, 5, 50, 1) @@ -254,15 +272,18 @@ meteorsound = 'sound/effects/blobattack.ogg' meteordrop = list(/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human, /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant, /obj/item/organ/heart, /obj/item/organ/lungs, /obj/item/organ/tongue, /obj/item/organ/appendix/) var/meteorgibs = /obj/effect/gibspawner/generic + threat = 2 /obj/effect/meteor/meaty/New() - for(var/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/M in meteordrop) - meteordrop -= M - meteordrop += pick(subtypesof(M)) + for(var/path in meteordrop) + if(path == /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant) + meteordrop -= path + meteordrop += pick(subtypesof(path)) - for(var/obj/item/organ/tongue/T in meteordrop) - meteordrop -= T - meteordrop += pick(typesof(T)) + for(var/path in meteordrop) + if(path == /obj/item/organ/tongue) + meteordrop -= path + meteordrop += pick(typesof(path)) ..() /obj/effect/meteor/meaty/make_debris() @@ -271,8 +292,8 @@ /obj/effect/meteor/meaty/ram_turf(turf/T) - if(!istype(T, /turf/open/space)) - new /obj/effect/decal/cleanable/blood (T) + if(!isspaceturf(T)) + new /obj/effect/decal/cleanable/blood(T) /obj/effect/meteor/meaty/Bump(atom/A) A.ex_act(hitpwr) @@ -289,22 +310,28 @@ ..() /obj/effect/meteor/meaty/xeno/ram_turf(turf/T) - if(!istype(T, /turf/open/space)) - new /obj/effect/decal/cleanable/xenoblood (T) + if(!isspaceturf(T)) + new /obj/effect/decal/cleanable/xenoblood(T) //Station buster Tunguska /obj/effect/meteor/tunguska name = "tunguska meteor" icon_state = "flaming" - desc = "Your life briefly passes before your eyes the moment you lay them on this monstruosity" + desc = "Your life briefly passes before your eyes the moment you lay them on this monstrosity." hits = 30 hitpwr = 1 heavy = 1 meteorsound = 'sound/effects/bamf.ogg' meteordrop = list(/obj/item/weapon/ore/plasma) + threat = 50 + +/obj/effect/meteor/tunguska/Move() + . = ..() + if(.) + PoolOrNew(/obj/effect/overlay/temp/revenant, get_turf(src)) /obj/effect/meteor/tunguska/meteor_effect() - ..(heavy) + ..() explosion(src.loc, 5, 10, 15, 20, 0) /obj/effect/meteor/tunguska/Bump() @@ -327,8 +354,10 @@ heavy = 1 dropamt = 1 meteordrop = list(/obj/item/clothing/head/hardhat/pumpkinhead, /obj/item/weapon/reagent_containers/food/snacks/grown/pumpkin) + threat = 100 /obj/effect/meteor/pumpkin/New() ..() meteorsound = pick('sound/hallucinations/im_here1.ogg','sound/hallucinations/im_here2.ogg') ////////////////////////// +#undef DEFAULT_METEOR_LIFETIME diff --git a/code/game/gamemodes/miniantags/abduction/abduction.dm b/code/game/gamemodes/miniantags/abduction/abduction.dm index c5f3dfa2a7..69cd0042d2 100644 --- a/code/game/gamemodes/miniantags/abduction/abduction.dm +++ b/code/game/gamemodes/miniantags/abduction/abduction.dm @@ -9,6 +9,7 @@ antag_flag = ROLE_ABDUCTOR recommended_enemies = 2 required_players = 15 + maximum_players = 50 var/max_teams = 4 abductor_teams = 1 var/list/datum/mind/scientists = list() @@ -19,7 +20,7 @@ /datum/game_mode/abduction/announce() world << "The current game mode is - Abduction!" - world << "There are alien abductors sent to [world.name] to perform nefarious experiments!" + world << "There are alien abductors sent to [station_name()] to perform nefarious experiments!" world << "Abductors - kidnap the crew and replace their organs with experimental ones." world << "Crew - don't get abducted and stop the abductors." @@ -187,11 +188,7 @@ abductor.current << "With the help of your teammate, kidnap and experiment on station crew members!" abductor.current << "Use your stealth technology and equipment to incapacitate humans for your scientist to retrieve." - var/obj_count = 1 - for(var/datum/objective/objective in abductor.objectives) - abductor.current << "Objective #[obj_count]: [objective.explanation_text]" - obj_count++ - return + abductor.announce_objectives() /datum/game_mode/abduction/proc/greet_scientist(datum/mind/abductor,team_number) abductor.objectives += team_objectives[team_number] @@ -201,11 +198,7 @@ abductor.current << "With the help of your teammate, kidnap and experiment on station crew members!" abductor.current << "Use your tool and ship consoles to support the agent and retrieve human specimens." - var/obj_count = 1 - for(var/datum/objective/objective in abductor.objectives) - abductor.current << "Objective #[obj_count]: [objective.explanation_text]" - obj_count++ - return + abductor.announce_objectives() /datum/game_mode/abduction/proc/equip_common(mob/living/carbon/human/agent,team_number) var/radio_freq = SYND_FREQ @@ -236,10 +229,11 @@ console.vest = V V.flags |= NODROP agent.equip_to_slot_or_del(V, slot_wear_suit) - agent.equip_to_slot_or_del(new /obj/item/weapon/abductor_baton(agent), slot_belt) + agent.equip_to_slot_or_del(new /obj/item/weapon/abductor_baton(agent), slot_in_backpack) agent.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/alien(agent), slot_in_backpack) agent.equip_to_slot_or_del(new /obj/item/device/abductor/silencer(agent), slot_in_backpack) agent.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/abductor(agent), slot_head) + agent.equip_to_slot_or_del(new /obj/item/weapon/storage/belt/military/abductor/full(agent), slot_belt) /datum/game_mode/abduction/proc/equip_scientist(var/mob/living/carbon/human/scientist,var/team_number) diff --git a/code/game/gamemodes/miniantags/abduction/abduction_gear.dm b/code/game/gamemodes/miniantags/abduction/abduction_gear.dm index 20f9b61d01..7cdd3ac1f0 100644 --- a/code/game/gamemodes/miniantags/abduction/abduction_gear.dm +++ b/code/game/gamemodes/miniantags/abduction/abduction_gear.dm @@ -12,14 +12,14 @@ item_state = "armor" blood_overlay_type = "armor" origin_tech = "magnets=7;biotech=4;powerstorage=4;abductor=4" - armor = list(melee = 15, bullet = 15, laser = 15, energy = 15, bomb = 15, bio = 15, rad = 15) + armor = list(melee = 15, bullet = 15, laser = 15, energy = 15, bomb = 15, bio = 15, rad = 15, fire = 70, acid = 70) actions_types = list(/datum/action/item_action/hands_free/activate) var/mode = VEST_STEALTH var/stealth_active = 0 var/combat_cooldown = 10 var/datum/icon_snapshot/disguise - var/stealth_armor = list(melee = 15, bullet = 15, laser = 15, energy = 15, bomb = 15, bio = 15, rad = 15) - var/combat_armor = list(melee = 50, bullet = 50, laser = 50, energy = 50, bomb = 50, bio = 50, rad = 50) + var/stealth_armor = list(melee = 15, bullet = 15, laser = 15, energy = 15, bomb = 15, bio = 15, rad = 15, fire = 70, acid = 70) + var/combat_armor = list(melee = 50, bullet = 50, laser = 50, energy = 50, bomb = 50, bio = 50, rad = 50, fire = 90, acid = 90) /obj/item/clothing/suit/armor/abductor/vest/proc/flip_mode() switch(mode) @@ -32,7 +32,7 @@ mode = VEST_STEALTH armor = stealth_armor icon_state = "vest_stealth" - if(istype(loc, /mob/living/carbon/human)) + if(ishuman(loc)) var/mob/living/carbon/human/H = loc H.update_inv_wear_suit() for(var/X in actions) @@ -50,26 +50,24 @@ if(disguise == null) return stealth_active = 1 - if(istype(src.loc, /mob/living/carbon/human)) - var/mob/living/carbon/human/M = src.loc - addtimer(GLOBAL_PROC, "anim", 0, FALSE, M.loc, M, 'icons/mob/mob.dmi', - null, "cloak", null, M.dir) - + if(ishuman(loc)) + var/mob/living/carbon/human/M = loc + PoolOrNew(/obj/effect/overlay/temp/dir_setting/ninja/cloak, + list(get_turf(M), M.dir)) M.name_override = disguise.name M.icon = disguise.icon M.icon_state = disguise.icon_state M.overlays = disguise.overlays - M.update_inv_r_hand() - M.update_inv_l_hand() + M.update_inv_hands() /obj/item/clothing/suit/armor/abductor/vest/proc/DeactivateStealth() if(!stealth_active) return stealth_active = 0 - if(istype(src.loc, /mob/living/carbon/human)) - var/mob/living/carbon/human/M = src.loc - addtimer(GLOBAL_PROC, "anim", 0, FALSE, M.loc, M, 'icons/mob/mob.dmi', - null, "uncloak", null, M.dir) + if(ishuman(loc)) + var/mob/living/carbon/human/M = loc + PoolOrNew(/obj/effect/overlay/temp/dir_setting/ninja, + list(get_turf(M), M.dir)) M.name_override = null M.cut_overlays() M.regenerate_icons() @@ -93,11 +91,11 @@ ActivateStealth() /obj/item/clothing/suit/armor/abductor/vest/proc/Adrenaline() - if(istype(src.loc, /mob/living/carbon/human)) + if(ishuman(loc)) if(combat_cooldown != initial(combat_cooldown)) - src.loc << "Combat injection is still recharging." + loc << "Combat injection is still recharging." return - var/mob/living/carbon/human/M = src.loc + var/mob/living/carbon/human/M = loc M.adjustStaminaLoss(-75) M.SetParalysis(0) M.SetStunned(0) @@ -174,7 +172,7 @@ mark(target, user) /obj/item/device/abductor/gizmo/proc/scan(atom/target, mob/living/user) - if(istype(target,/mob/living/carbon/human)) + if(ishuman(target)) if(console!=null) console.AddSnapshot(target) user << "You scan [target] and add them to the database." @@ -183,7 +181,7 @@ if(marked == target) user << "This specimen is already marked!" return - if(istype(target,/mob/living/carbon/human)) + if(ishuman(target)) if(isabductor(target)) marked = target user << "You mark [target] for future retrieval." @@ -245,54 +243,6 @@ if(!istype(I,/obj/item/device/radio/headset)) r.broadcasting = 0 //goddamned headset hacks - -/obj/item/weapon/implant/abductor - name = "recall implant" - desc = "Returns you to the mothership." - icon = 'icons/obj/abductor.dmi' - icon_state = "implant" - activated = 1 - origin_tech = "materials=2;biotech=7;magnets=4;bluespace=4;abductor=5" - var/obj/machinery/abductor/pad/home - var/cooldown = 30 - -/obj/item/weapon/implant/abductor/activate() - if(cooldown == initial(cooldown)) - home.Retrieve(imp_in,1) - cooldown = 0 - START_PROCESSING(SSobj, src) - else - imp_in << "You must wait [30 - cooldown] seconds to use [src] again!" - -/obj/item/weapon/implant/abductor/process() - if(cooldown < initial(cooldown)) - cooldown++ - if(cooldown == initial(cooldown)) - STOP_PROCESSING(SSobj, src) - -/obj/item/weapon/implant/abductor/implant(var/mob/source, var/mob/user) - if(..()) - var/obj/machinery/abductor/console/console - if(ishuman(source)) - var/mob/living/carbon/human/H = source - if(H.dna.species.id == "abductor") - var/datum/species/abductor/S = H.dna.species - console = get_team_console(S.team) - home = console.pad - - if(!home) - console = get_team_console(pick(1, 2, 3, 4)) - home = console.pad - return 1 - -/obj/item/weapon/implant/abductor/proc/get_team_console(var/team) - var/obj/machinery/abductor/console/console - for(var/obj/machinery/abductor/console/c in machines) - if(c.team == team) - console = c - break - return console - /obj/item/device/firing_pin/abductor name = "alien firing pin" icon_state = "firing_pin_ayy" @@ -356,7 +306,7 @@ Congratulations! You are now trained for xenobiology research!"} slot_flags = SLOT_BELT origin_tech = "materials=4;combat=4;biotech=7;abductor=4" force = 7 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL actions_types = list(/datum/action/item_action/toggle_mode) /obj/item/weapon/abductor_baton/proc/toggle(mob/living/user=usr) @@ -394,7 +344,7 @@ Congratulations! You are now trained for xenobiology research!"} if(!isabductor(user)) return - if(isrobot(target)) + if(iscyborg(target)) ..() return @@ -460,11 +410,11 @@ Congratulations! You are now trained for xenobiology research!"} return var/mob/living/carbon/C = L if(!C.handcuffed) - if(C.get_num_arms() >= 2) + if(C.get_num_arms() >= 2 || C.get_arm_ignore()) playsound(loc, 'sound/weapons/cablecuff.ogg', 30, 1, -2) C.visible_message("[user] begins restraining [C] with [src]!", \ "[user] begins shaping an energy field around your hands!") - if(do_mob(user, C, 30) && C.get_num_arms() >= 2) + if(do_mob(user, C, 30) && (C.get_num_arms() >= 2 || C.get_arm_ignore())) if(!C.handcuffed) C.handcuffed = new /obj/item/weapon/restraints/handcuffs/energy/used(C) C.update_handcuffed() @@ -534,30 +484,35 @@ Congratulations! You are now trained for xenobiology research!"} desc = "It's a gleaming sharp knife made out of silvery-green metal." icon = 'icons/obj/abductor.dmi' origin_tech = "materials=2;biotech=2;abductor=2" + toolspeed = 0.25 /obj/item/weapon/hemostat/alien name = "alien hemostat" desc = "You've never seen this before." icon = 'icons/obj/abductor.dmi' origin_tech = "materials=2;biotech=2;abductor=2" + toolspeed = 0.25 /obj/item/weapon/retractor/alien name = "alien retractor" desc = "You're not sure if you want the veil pulled back." icon = 'icons/obj/abductor.dmi' origin_tech = "materials=2;biotech=2;abductor=2" + toolspeed = 0.25 /obj/item/weapon/circular_saw/alien name = "alien saw" desc = "Do the aliens also lose this, and need to find an alien hatchet?" icon = 'icons/obj/abductor.dmi' origin_tech = "materials=2;biotech=2;abductor=2" + toolspeed = 0.25 /obj/item/weapon/surgicaldrill/alien name = "alien drill" desc = "Maybe alien surgeons have finally found a use for the drill." icon = 'icons/obj/abductor.dmi' origin_tech = "materials=2;biotech=2;abductor=2" + toolspeed = 0.25 /obj/item/weapon/cautery/alien name = "alien cautery" @@ -565,6 +520,7 @@ Congratulations! You are now trained for xenobiology research!"} Unless..." icon = 'icons/obj/abductor.dmi' origin_tech = "materials=2;biotech=2;abductor=2" + toolspeed = 0.25 /obj/item/clothing/head/helmet/abductor name = "agent headgear" @@ -583,9 +539,8 @@ Congratulations! You are now trained for xenobiology research!"} can_buckle = 1 buckle_lying = 1 flags = NODECONSTRUCT + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF -/obj/structure/table/optable/abductor/table_destroy() - return //can't destroy the abductor's only optable. /obj/structure/bed/abductor name = "resting contraption" @@ -605,8 +560,8 @@ Congratulations! You are now trained for xenobiology research!"} /obj/structure/table_frame/abductor/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/weapon/wrench)) user << "You start disassembling [src]..." - playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) - if(do_after(user, 30/I.toolspeed, target = src)) + playsound(src.loc, I.usesound, 50, 1) + if(do_after(user, 30*I.toolspeed, target = src)) playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) for(var/i = 1, i <= framestackamount, i++) new framestack(get_turf(src)) @@ -662,7 +617,7 @@ Congratulations! You are now trained for xenobiology research!"} user.visible_message("[user] disassembles the airlock assembly.", \ "You start to disassemble the airlock assembly...") playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) - if(do_after(user, 40/W.toolspeed, target = src)) + if(do_after(user, 40*W.toolspeed, target = src)) if( !WT.isOn() ) return user << "You disassemble the airlock assembly." diff --git a/code/game/gamemodes/miniantags/abduction/abduction_surgery.dm b/code/game/gamemodes/miniantags/abduction/abduction_surgery.dm index 30f7d7c10e..def0cd77e2 100644 --- a/code/game/gamemodes/miniantags/abduction/abduction_surgery.dm +++ b/code/game/gamemodes/miniantags/abduction/abduction_surgery.dm @@ -10,7 +10,7 @@ var/mob/living/carbon/human/H = user if(H.dna.species.id == "abductor") return 1 - if((locate(/obj/item/weapon/implant/abductor) in H)) + for(var/obj/item/weapon/implant/abductor/A in H.implants) return 1 return 0 @@ -23,9 +23,9 @@ var/list/organ_types = list(/obj/item/organ/heart) /datum/surgery_step/extract_organ/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - for(var/obj/item/I in target.internal_organs) - if(I.type in organ_types) - IC = I + for(var/atom/A in target.internal_organs) + if(A.type in organ_types) + IC = A break user.visible_message("[user] starts to remove [target]'s organs.", "You start to remove [target]'s organs...") diff --git a/code/game/gamemodes/miniantags/abduction/gland.dm b/code/game/gamemodes/miniantags/abduction/gland.dm index 670de74bc0..ead066e8cc 100644 --- a/code/game/gamemodes/miniantags/abduction/gland.dm +++ b/code/game/gamemodes/miniantags/abduction/gland.dm @@ -100,13 +100,13 @@ /obj/item/organ/gland/pop cooldown_low = 900 cooldown_high = 1800 - uses = 6 + uses = -1 human_only = 1 icon_state = "species" /obj/item/organ/gland/pop/activate() owner << "You feel unlike yourself." - var/species = pick(list(/datum/species/lizard,/datum/species/jelly/slime,/datum/species/pod,/datum/species/fly)) + var/species = pick(list(/datum/species/lizard,/datum/species/jelly/slime,/datum/species/pod,/datum/species/fly,/datum/species/jelly)) owner.set_species(species) /obj/item/organ/gland/ventcrawling @@ -118,7 +118,7 @@ /obj/item/organ/gland/ventcrawling/activate() owner << "You feel very stretchy." - owner.ventcrawler = 2 + owner.ventcrawler = VENTCRAWLER_ALWAYS return @@ -159,7 +159,7 @@ /obj/item/organ/gland/spiderman/activate() owner << "You feel something crawling in your skin." owner.faction |= "spiders" - new /obj/effect/spider/spiderling(owner.loc) + new /obj/structure/spider/spiderling(owner.loc) /obj/item/organ/gland/egg cooldown_low = 300 @@ -199,13 +199,13 @@ owner << "You feel something moving around inside you..." //spawn cocoon with clone greytide snpc inside if(ishuman(owner)) - var/obj/effect/cocoon/abductor/C = new (get_turf(owner)) + var/obj/structure/spider/cocoon/abductor/C = new (get_turf(owner)) C.Copy(owner) C.Start() owner.gib() return -/obj/effect/cocoon/abductor +/obj/structure/spider/cocoon/abductor name = "slimy cocoon" desc = "Something is moving inside." icon = 'icons/effects/effects.dmi' @@ -214,7 +214,7 @@ density = 1 var/hatch_time = 0 -/obj/effect/cocoon/abductor/proc/Copy(mob/living/carbon/human/H) +/obj/structure/spider/cocoon/abductor/proc/Copy(mob/living/carbon/human/H) var/mob/living/carbon/human/interactive/greytide/clone = new(src) clone.hardset_dna(H.dna.uni_identity,H.dna.struc_enzymes,H.real_name, H.dna.blood_type, H.dna.species.type, H.dna.features) @@ -228,11 +228,11 @@ if(I) clone.equip_to_slot_if_possible(I,slot) -/obj/effect/cocoon/abductor/proc/Start() +/obj/structure/spider/cocoon/abductor/proc/Start() hatch_time = world.time + 600 START_PROCESSING(SSobj, src) -/obj/effect/cocoon/abductor/process() +/obj/structure/spider/cocoon/abductor/process() if(world.time > hatch_time) STOP_PROCESSING(SSobj, src) for(var/mob/M in contents) @@ -241,10 +241,10 @@ qdel(src) /obj/item/organ/gland/plasma - cooldown_low = 2400 - cooldown_high = 3000 + cooldown_low = 1200 + cooldown_high = 1800 origin_tech = "materials=4;biotech=4;plasmatech=6;abductor=3" - uses = 1 + uses = -1 /obj/item/organ/gland/plasma/activate() owner << "You feel bloated." @@ -253,9 +253,9 @@ owner << "A massive stomachache overcomes you." sleep(50) if(!owner) return - owner.visible_message("[owner] explodes in a cloud of plasma!") + owner.visible_message("[owner] vomits a cloud of plasma!") var/turf/open/T = get_turf(owner) if(istype(T)) - T.atmos_spawn_air("plasma=300;TEMP=[T20C]") - owner.gib() + T.atmos_spawn_air("plasma=50;TEMP=[T20C]") + owner.vomit() return diff --git a/code/game/gamemodes/miniantags/abduction/machinery/camera.dm b/code/game/gamemodes/miniantags/abduction/machinery/camera.dm index 9c06517bd9..f893ad1bb8 100644 --- a/code/game/gamemodes/miniantags/abduction/machinery/camera.dm +++ b/code/game/gamemodes/miniantags/abduction/machinery/camera.dm @@ -13,6 +13,7 @@ icon = 'icons/obj/abductor.dmi' icon_state = "camera" + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF /obj/machinery/computer/camera_advanced/abductor/CreateEye() ..() diff --git a/code/game/gamemodes/miniantags/abduction/machinery/console.dm b/code/game/gamemodes/miniantags/abduction/machinery/console.dm index 55802fa7e1..5539f6a878 100644 --- a/code/game/gamemodes/miniantags/abduction/machinery/console.dm +++ b/code/game/gamemodes/miniantags/abduction/machinery/console.dm @@ -1,6 +1,7 @@ //Common /obj/machinery/abductor + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF var/team = 0 /obj/machinery/abductor/proc/IsAgent(mob/living/carbon/human/H) @@ -45,7 +46,9 @@ if(experiment != null) var/points = experiment.points + var/credits = experiment.credits dat += "Collected Samples : [points]
    " + dat += "Gear Credits: [credits]
    " dat += "Transfer data in exchange for supplies:
    " dat += "Advanced Baton
    " dat += "Agent Helmet
    " @@ -173,7 +176,7 @@ entry.name = target.name entry.icon = target.icon entry.icon_state = target.icon_state - entry.overlays = target.get_overlays_copy(list(L_HAND_LAYER,R_HAND_LAYER)) + entry.overlays = target.get_overlays_copy(list(HANDS_LAYER)) for(var/i=1,i<=disguises.len,i++) var/datum/icon_snapshot/temp = disguises[i] if(temp.name == entry.name) @@ -198,8 +201,8 @@ return ..() /obj/machinery/abductor/console/proc/Dispense(item,cost=1) - if(experiment && experiment.points >= cost) - experiment.points-=cost + if(experiment && experiment.credits >= cost) + experiment.credits -=cost say("Incoming supply!") if(pad) flick("alien-pad", pad) diff --git a/code/game/gamemodes/miniantags/abduction/machinery/dispenser.dm b/code/game/gamemodes/miniantags/abduction/machinery/dispenser.dm index 09f6361676..bc8fa7fdb5 100644 --- a/code/game/gamemodes/miniantags/abduction/machinery/dispenser.dm +++ b/code/game/gamemodes/miniantags/abduction/machinery/dispenser.dm @@ -14,6 +14,7 @@ return rgb(rand(0,255),rand(0,255),rand(0,255)) /obj/machinery/abductor/gland_dispenser/New() + ..() gland_types = subtypesof(/obj/item/organ/gland) gland_types = shuffle(gland_types) gland_colors = new/list(gland_types.len) diff --git a/code/game/gamemodes/miniantags/abduction/machinery/experiment.dm b/code/game/gamemodes/miniantags/abduction/machinery/experiment.dm index 7b32758a6d..930f255f71 100644 --- a/code/game/gamemodes/miniantags/abduction/machinery/experiment.dm +++ b/code/game/gamemodes/miniantags/abduction/machinery/experiment.dm @@ -7,6 +7,7 @@ anchored = 1 state_open = 1 var/points = 0 + var/credits = 0 var/list/history = list() var/list/abductee_minds = list() var/flash = " - || - " @@ -36,6 +37,28 @@ if(state_open && !panel_open) ..(target) +/obj/machinery/abductor/experiment/relaymove(mob/user) + if(user.stat != CONSCIOUS) + return + container_resist(user) + +/obj/machinery/abductor/experiment/container_resist(mob/living/user) + var/breakout_time = 600 + user.changeNext_move(CLICK_CD_BREAKOUT) + user.last_special = world.time + CLICK_CD_BREAKOUT + user << "You lean on the back of [src] and start pushing the door open... (this will take about a minute.)" + user.visible_message("You hear a metallic creaking from [src]!") + + if(do_after(user,(breakout_time), target = src)) + if(!user || user.stat != CONSCIOUS || user.loc != src || state_open) + return + + visible_message("[user] successfully broke out of [src]!") + user << "You successfully break out of [src]!" + + open_machine() + + /obj/machinery/abductor/experiment/proc/dissection_icon(mob/living/carbon/human/H) var/icon/photo = null var/g = (H.gender == FEMALE) ? "f" : "m" @@ -46,19 +69,19 @@ photo.Blend("#[H.dna.features["mcolor"]]", ICON_MULTIPLY) var/icon/eyes_s - if(EYECOLOR in H.dna.species.specflags) + if(EYECOLOR in H.dna.species.species_traits) eyes_s = icon("icon" = 'icons/mob/human_face.dmi', "icon_state" = "[H.dna.species.eyes]_s") eyes_s.Blend("#[H.eye_color]", ICON_MULTIPLY) var/datum/sprite_accessory/S S = hair_styles_list[H.hair_style] - if(S && (HAIR in H.dna.species.specflags)) + if(S && (HAIR in H.dna.species.species_traits)) var/icon/hair_s = icon("icon" = S.icon, "icon_state" = "[S.icon_state]_s") hair_s.Blend("#[H.hair_color]", ICON_MULTIPLY) eyes_s.Blend(hair_s, ICON_OVERLAY) S = facial_hair_styles_list[H.facial_hair_style] - if(S && (FACEHAIR in H.dna.species.specflags)) + if(S && (FACEHAIR in H.dna.species.species_traits)) var/icon/facial_s = icon("icon" = S.icon, "icon_state" = "[S.icon_state]_s") facial_s.Blend("#[H.facial_hair_color]", ICON_MULTIPLY) eyes_s.Blend(facial_s, ICON_OVERLAY) @@ -66,7 +89,7 @@ if(eyes_s) photo.Blend(eyes_s, ICON_OVERLAY) - var/icon/splat = icon("icon" = 'icons/mob/dam_human.dmi',"icon_state" = "chest30") + var/icon/splat = icon("icon" = 'icons/mob/dam_mob.dmi',"icon_state" = "chest30") photo.Blend(splat,ICON_OVERLAY) return photo @@ -159,11 +182,7 @@ var/datum/objective/abductee/O = new objtype() ticker.mode.abductees += H.mind H.mind.objectives += O - var/obj_count = 1 - H << "Your current objectives:" - for(var/datum/objective/objective in H.mind.objectives) - H << "Objective #[obj_count]: [objective.explanation_text]" - obj_count++ + H.mind.announce_objectives() ticker.mode.update_abductor_icons_added(H.mind) for(var/obj/item/organ/gland/G in H.internal_organs) @@ -174,6 +193,7 @@ SendBack(H) playsound(src.loc, 'sound/machines/ding.ogg', 50, 1) points += point_reward + credits += point_reward return "Experiment successful! [point_reward] new data-points collected." else playsound(src.loc, 'sound/machines/buzz-sigh.ogg', 50, 1) diff --git a/code/game/gamemodes/miniantags/abduction/machinery/pad.dm b/code/game/gamemodes/miniantags/abduction/machinery/pad.dm index 7e7ed15560..b5434dbfdd 100644 --- a/code/game/gamemodes/miniantags/abduction/machinery/pad.dm +++ b/code/game/gamemodes/miniantags/abduction/machinery/pad.dm @@ -7,7 +7,8 @@ var/turf/teleport_target /obj/machinery/abductor/pad/proc/Warp(mob/living/target) - target.Move(src.loc) + if(!target.buckled) + target.forceMove(get_turf(src)) /obj/machinery/abductor/pad/proc/Send() if(teleport_target == null) @@ -15,13 +16,11 @@ flick("alien-pad", src) for(var/mob/living/target in loc) target.forceMove(teleport_target) - spawn(0) - anim(target.loc,target,'icons/mob/mob.dmi',,"uncloak",,target.dir) + PoolOrNew(/obj/effect/overlay/temp/dir_setting/ninja, list(get_turf(target), target.dir)) /obj/machinery/abductor/pad/proc/Retrieve(mob/living/target) flick("alien-pad", src) - spawn(0) - anim(target.loc,target,'icons/mob/mob.dmi',,"uncloak",,target.dir) + PoolOrNew(/obj/effect/overlay/temp/dir_setting/ninja, list(get_turf(target), target.dir)) Warp(target) /obj/machinery/abductor/pad/proc/MobToLoc(place,mob/living/target) @@ -29,16 +28,15 @@ sleep(80) flick("alien-pad", src) target.forceMove(place) - anim(target.loc,target,'icons/mob/mob.dmi',,"uncloak",,target.dir) + PoolOrNew(/obj/effect/overlay/temp/dir_setting/ninja, list(get_turf(target), target.dir)) /obj/machinery/abductor/pad/proc/PadToLoc(place) PoolOrNew(/obj/effect/overlay/temp/teleport_abductor, place) sleep(80) flick("alien-pad", src) - for(var/mob/living/target in src.loc) + for(var/mob/living/target in get_turf(src)) target.forceMove(place) - spawn(0) - anim(target.loc,target,'icons/mob/mob.dmi',,"uncloak",,target.dir) + PoolOrNew(/obj/effect/overlay/temp/dir_setting/ninja, list(get_turf(target), target.dir)) /obj/effect/overlay/temp/teleport_abductor diff --git a/code/game/gamemodes/miniantags/borer/borer.dm b/code/game/gamemodes/miniantags/borer/borer.dm new file mode 100644 index 0000000000..e35ab6b6bd --- /dev/null +++ b/code/game/gamemodes/miniantags/borer/borer.dm @@ -0,0 +1,1042 @@ +/mob/living/captive_brain + name = "host brain" + real_name = "host brain" + +/mob/living/captive_brain/say(var/message) + + if(client) + if(client.prefs.muted & MUTE_IC) + src << "You cannot speak in IC (muted)." + return + if(client.handle_spam_prevention(message,MUTE_IC)) + return + + if(isborer(loc)) + + message = sanitize(message) + if(!message) + return + log_say("[key_name(src)] : [message]") + if(stat == 2) + return say_dead(message) + + var/mob/living/simple_animal/borer/B = loc + src << "You whisper silently, \"[message]\"" + B.victim << "The captive mind of [src] whispers, \"[message]\"" + + for (var/mob/M in player_list) + if(isnewplayer(M)) + continue + else if(M.stat == 2 && M.client.prefs.toggles & CHAT_GHOSTEARS) + M << "Thought-speech, [src] -> [B.truename]: [message]" + +/mob/living/captive_brain/emote(var/message) + return + +/mob/living/captive_brain/resist() + + var/mob/living/simple_animal/borer/B = loc + + src << "You begin doggedly resisting the parasite's control (this will take approximately 40 seconds)." + B.victim << "You feel the captive mind of [src] begin to resist your control." + + var/delay = rand(150,250) + B.victim.brainloss + addtimer(src, "return_control", delay, TIMER_NORMAL, src.loc) + +/mob/living/captive_brain/proc/return_control(mob/living/simple_animal/borer/B) + if(!B || !B.controlling) + return + + B.victim.adjustBrainLoss(rand(5,10)) + src << "With an immense exertion of will, you regain control of your body!" + B.victim << "You feel control of the host brain ripped from your grasp, and retract your probosci before the wild neural impulses can damage you." + B.detatch() + +var/list/mob/living/simple_animal/borer/borers = list() +var/total_borer_hosts_needed = 10 + +/mob/living/simple_animal/borer + name = "cortical borer" + real_name = "cortical borer" + desc = "A small, quivering, slug-like creature." + icon_state = "brainslug" + icon_living = "brainslug" + icon_dead = "brainslug_dead" + health = 20 + maxHealth = 20 + melee_damage_lower = 5 + melee_damage_upper = 5 + stop_automated_movement = TRUE + attacktext = "chomps" + attack_sound = 'sound/weapons/bite.ogg' + pass_flags = PASSTABLE | PASSMOB + mob_size = MOB_SIZE_SMALL + faction = list("creature") + ventcrawler = VENTCRAWLER_ALWAYS + atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) + minbodytemp = 0 + maxbodytemp = 1500 + + var/generation = 1 + var/static/list/borer_names = list( + "Primary", "Secondary", "Tertiary", "Quaternary", "Quinary", "Senary", + "Septenary", "Octonary", "Novenary", "Decenary", "Undenary", "Duodenary", + ) + + var/mob/living/carbon/victim = null + var/mob/living/captive_brain/host_brain = null + var/truename + var/docile = FALSE + var/bonding = FALSE + var/controlling = FALSE + var/chemicals = 10 + var/used_dominate + var/borer_chems = list() + var/leaving = FALSE + var/hiding = FALSE + var/waketimerid = null + + var/datum/action/innate/borer/talk_to_host/talk_to_host_action = new + var/datum/action/innate/borer/infest_host/infest_host_action = new + var/datum/action/innate/borer/toggle_hide/toggle_hide_action = new + var/datum/action/innate/borer/talk_to_borer/talk_to_borer_action = new + var/datum/action/innate/borer/talk_to_brain/talk_to_brain_action = new + var/datum/action/innate/borer/take_control/take_control_action = new + var/datum/action/innate/borer/give_back_control/give_back_control_action = new + var/datum/action/innate/borer/leave_body/leave_body_action = new + var/datum/action/innate/borer/make_chems/make_chems_action = new + var/datum/action/innate/borer/make_larvae/make_larvae_action = new + var/datum/action/innate/borer/freeze_victim/freeze_victim_action = new + var/datum/action/innate/borer/punish_victim/punish_victim_action = new + var/datum/action/innate/borer/jumpstart_host/jumpstart_host_action = new + +/mob/living/simple_animal/borer/New(atom/newloc, var/gen=1) + ..(newloc) + generation = gen + notify_ghosts("A cortical borer has been created in [get_area(src)]!", enter_link = "(Click to enter)", source = src, action = NOTIFY_ATTACK) + real_name = "Cortical Borer [rand(1000,9999)]" + truename = "[borer_names[min(generation, borer_names.len)]] [rand(1000,9999)]" + borer_chems += /datum/borer_chem/epinephrine + borer_chems += /datum/borer_chem/leporazine + borer_chems += /datum/borer_chem/mannitol + borer_chems += /datum/borer_chem/bicaridine + borer_chems += /datum/borer_chem/kelotane + borer_chems += /datum/borer_chem/charcoal + borer_chems += /datum/borer_chem/methamphetamine + borer_chems += /datum/borer_chem/salbutamol + borer_chems += /datum/borer_chem/spacedrugs + //borer_chems += /datum/borer_chem/creagent + borer_chems += /datum/borer_chem/ethanol + borer_chems += /datum/borer_chem/rezadone + + borers += src + + GrantBorerActions() + +/mob/living/simple_animal/borer/Topic(href, href_list)//not entirely sure if this is even required + if(href_list["ghostjoin"]) + var/mob/dead/observer/ghost = usr + if(istype(ghost)) + attack_ghost(ghost) + +/mob/living/simple_animal/borer/attack_ghost(mob/user) + if(jobban_isbanned(user, ROLE_BORER) || jobban_isbanned(user, "Syndicate")) + return + if(key) + return + if(stat != CONSCIOUS) + return + var/be_borer = alert("Become a cortical borer? (Warning, You can no longer be cloned!)",,"Yes","No") + if(be_borer == "No" || !src || qdeleted(src)) + return + if(key) + return + transfer_personality(user.client) + +/mob/living/simple_animal/borer/Stat() + ..() + + if(statpanel("Status")) + stat(null, "Chemicals: [chemicals]") + + src << output(chemicals, "ViewBorer\ref[src]Chems.browser:update_chemicals") + +/mob/living/simple_animal/borer/verb/Communicate() + set category = "Borer" + set name = "Converse with Host" + set desc = "Send a silent message to your host." + + if(!victim) + src << "You do not have a host to communicate with!" + return + + if(stat) + src << "You cannot do that in your current state." + return + + var/input = stripped_input(src, "Please enter a message to tell your host.", "Borer", null) + if(!input) + return + + if(src && !qdeleted(src) && !qdeleted(victim)) + var/say_string = (docile) ? "slurs" :"states" + if(victim) + victim << "[truename] [say_string]: [input]" + log_say("Borer Communication: [key_name(src)] -> [key_name(victim)] : [input]") + for(var/M in dead_mob_list) + if(isobserver(M)) + var/rendered = "Borer Communication from [truename] : [input]" + var/link = FOLLOW_LINK(M, src) + M << "[link] [rendered]" + src << "[truename] [say_string]: [input]" + victim.verbs += /mob/living/proc/borer_comm + talk_to_borer_action.Grant(victim) + +/mob/living/proc/borer_comm() + set name = "Converse with Borer" + set category = "Borer" + set desc = "Communicate mentally with your borer." + + + var/mob/living/simple_animal/borer/B = has_brain_worms() + if(!B) + return + + var/input = stripped_input(src, "Please enter a message to tell the borer.", "Message", null) + if(!input) + return + + B << "[src] says: [input]" + log_say("Borer Communication: [key_name(src)] -> [key_name(B)] : [input]") + + for(var/M in dead_mob_list) + if(isobserver(M)) + var/rendered = "Borer Communication from [src] : [input]" + var/link = FOLLOW_LINK(M, src) + M << "[link] [rendered]" + src << "[src] says: [input]" + +/mob/living/proc/trapped_mind_comm() + set name = "Converse with Trapped Mind" + set category = "Borer" + set desc = "Communicate mentally with the trapped mind of your host." + + + var/mob/living/simple_animal/borer/B = has_brain_worms() + if(!B || !B.host_brain) + return + var/mob/living/captive_brain/CB = B.host_brain + var/input = stripped_input(src, "Please enter a message to tell the trapped mind.", "Message", null) + if(!input) + return + + CB << "[B.truename] says: [input]" + log_say("Borer Communication: [key_name(B)] -> [key_name(CB)] : [input]") + + for(var/M in dead_mob_list) + if(isobserver(M)) + var/rendered = "Borer Communication from [B] : [input]" + var/link = FOLLOW_LINK(M, src) + M << "[link] [rendered]" + src << "[B.truename] says: [input]" + +/mob/living/simple_animal/borer/Life() + + ..() + + if(victim) + if(stat != DEAD) + if(victim.stat == DEAD) + chemicals++ + else if(chemicals < 250) + chemicals+=2 + chemicals = min(250, chemicals) + + + if(stat != DEAD && victim.stat != DEAD) + + if(victim.reagents.has_reagent("sugar")) + if(!docile || waketimerid) + if(controlling) + victim << "You feel the soporific flow of sugar in your host's blood, lulling you into docility." + else + src << "You feel the soporific flow of sugar in your host's blood, lulling you into docility." + if(waketimerid) + deltimer(waketimerid) + waketimerid = null + docile = TRUE + else + if(docile && !waketimerid) + if(controlling) + victim << "You start shaking off your lethargy as the sugar leaves your host's blood. This will take about 10 seconds..." + else + src << "You start shaking off your lethargy as the sugar leaves your host's blood. This will take about 10 seconds..." + + waketimerid = addtimer(src,"wakeup",10,TIMER_NORMAL) + if(controlling) + + if(docile) + victim << "You are feeling far too docile to continue controlling your host..." + victim.release_control() + return + + if(prob(5)) + victim.adjustBrainLoss(rand(1,2)) + + if(prob(victim.brainloss/10)) + victim.say("*[pick(list("blink","blink_r","choke","aflap","drool","twitch","twitch_s","gasp"))]") + +/mob/living/simple_animal/borer/proc/wakeup() + if(controlling) + victim << "You finish shaking off your lethargy." + else + src << "You finish shaking off your lethargy." + docile = FALSE + if(waketimerid) + waketimerid = null + +/mob/living/simple_animal/borer/say(message) + if(dd_hasprefix(message, ";")) + message = copytext(message,2) + for(var/borer in borers) + borer << "Cortical Link: [truename] sings, \"[message]\"" + for(var/mob/dead in dead_mob_list) + dead << "Cortical Link: [truename] sings, \"[message]\"" + return + if(!victim) + src << "You cannot speak without a host!" + return + if(message == "") + return + +/mob/living/simple_animal/borer/UnarmedAttack(mob/living/M) + healthscan(usr, M) + chemscan(usr, M) + return + +/mob/living/simple_animal/borer/ex_act() + if(victim) + return + + ..() + +/mob/living/simple_animal/borer/verb/infect_victim() + set name = "Infest" + set category = "Borer" + set desc = "Infest a suitable humanoid host." + + if(victim) + src << "You are already within a host." + + if(stat == DEAD) + return + + var/list/choices = list() + for(var/mob/living/carbon/H in view(1,src)) + if(H!=src && Adjacent(H)) + choices += H + + var/mob/living/carbon/H = input(src,"Who do you wish to infest?") in null|choices + if(!H || !src) + return + + if(!Adjacent(H)) + return FALSE + + if(stat != CONSCIOUS) + src << "You cannot do that in your current state." + return FALSE + + if(H.has_brain_worms()) + src << "[victim] is already infested!" + return + + src << "You slither up [H] and begin probing at their ear canal..." + if(!do_mob(src, H, 30)) + src << "As [H] moves away, you are dislodged and fall to the ground." + return + + if(!H || !src) + return + + Infect(H) + +/mob/living/simple_animal/borer/proc/Infect(mob/living/carbon/C) + + if(!C) + return + + if(C.has_brain_worms()) + src << "[C] is already infested!" + return + + if(!C.key || !C.mind) + src << "[C]'s mind seems unresponsive. Try someone else!" + return + + if(C && C.dna && istype(C.dna.species, /datum/species/skeleton)) + src << "[C] does not possess the vital systems needed to support us." + return + + victim = C + forceMove(victim) + + RemoveBorerActions() + GrantInfestActions() + + log_game("[src]/([src.ckey]) has infested [victim]/([victim.ckey]") + +/mob/living/simple_animal/borer/verb/secrete_chemicals() + set category = "Borer" + set name = "Secrete Chemicals" + set desc = "Push some chemicals into your host's bloodstream." + + if(!victim) + src << "You are not inside a host body." + return + + if(stat != CONSCIOUS) + src << "You cannot secrete chemicals in your current state." + + if(docile) + src << "You are feeling far too docile to do that." + return + + var content = "" + content += "

    Chemicals: [chemicals]

    " + + content += "" + + for(var/datum in typesof(/datum/borer_chem)) + var/datum/borer_chem/C = new datum() + if(C.chemname) + content += "" + + content += "
    [C.chemname] ([C.chemuse])

    [C.chem_desc]

    " + + var/html = get_html_template(content) + + usr << browse(null, "window=ViewBorer\ref[src]Chems;size=600x800") + usr << browse(html, "window=ViewBorer\ref[src]Chems;size=600x800") + + return + +/mob/living/simple_animal/borer/verb/hide() + set category = "Borer" + set name = "Hide" + set desc = "Become invisible to the common eye." + + if(victim) + src << "You cannot do this while you're inside a host." + + if(stat != CONSCIOUS) + return + + if(!hiding) + layer = LATTICE_LAYER + visible_message("[src] scurries to the ground!", \ + "You are now hiding.") + hiding = TRUE + else + layer = MOB_LAYER + visible_message("[src] slowly peaks up from the ground...", \ + "You stop hiding.") + hiding = FALSE + +/mob/living/simple_animal/borer/verb/dominate_victim() + set category = "Borer" + set name = "Paralyze Victim" + set desc = "Freeze the limbs of a potential host with supernatural fear." + + if(world.time - used_dominate < 150) + src << "You cannot use that ability again so soon." + return + + if(victim) + src << "You cannot do that from within a host body." + return + + if(stat != CONSCIOUS) + src << "You cannot do that in your current state." + return + + var/list/choices = list() + for(var/mob/living/carbon/C in view(1,src)) + if(C.stat == CONSCIOUS) + choices += C + + var/mob/living/carbon/M = input(src,"Who do you wish to dominate?") in null|choices + + + if(!M || !src) + return + if(!Adjacent(M)) + return + + if(M.has_brain_worms()) + src << "You cannot paralyze someone who is already infested!" + return + + layer = MOB_LAYER + + src << "You focus your psychic lance on [M] and freeze their limbs with a wave of terrible dread." + M << "You feel a creeping, horrible sense of dread come over you, freezing your limbs and setting your heart racing." + M.Stun(3) + + used_dominate = world.time + +/mob/living/simple_animal/borer/verb/release_victim() + set category = "Borer" + set name = "Release Host" + set desc = "Slither out of your host." + + if(!victim) + src << "You are not inside a host body." + return + + if(stat != CONSCIOUS) + src << "You cannot leave your host in your current state." + + if(leaving) + leaving = FALSE + src << "You decide against leaving your host." + return + + src << "You begin disconnecting from [victim]'s synapses and prodding at their internal ear canal." + + if(victim.stat != DEAD) + victim << "An odd, uncomfortable pressure begins to build inside your skull, behind your ear..." + + leaving = TRUE + + addtimer(src, "release_host", 100, TIMER_NORMAL) + +/mob/living/simple_animal/borer/proc/release_host() + if(!victim || !src || qdeleted(victim) || qdeleted(src)) + return + if(!leaving) + return + if(controlling) + return + + if(stat != CONSCIOUS) + src << "You cannot release your host in your current state." + return + + src << "You wiggle out of [victim]'s ear and plop to the ground." + if(victim.mind) + victim << "Something slimy wiggles out of your ear and plops to the ground!" + victim << "As though waking from a dream, you shake off the insidious mind control of the brain worm. Your thoughts are your own again." + + leaving = FALSE + + leave_victim() + +/mob/living/simple_animal/borer/proc/leave_victim() + if(!victim) + return + + if(controlling) + detatch() + + GrantBorerActions() + RemoveInfestActions() + + forceMove(get_turf(victim)) + + reset_perspective(null) + machine = null + + victim.reset_perspective(null) + victim.machine = null + + var/mob/living/V = victim + V.verbs -= /mob/living/proc/borer_comm + talk_to_borer_action.Remove(victim) + victim = null + return + +/mob/living/simple_animal/borer/verb/jumpstart() + set category = "Borer" + set name = "Jumpstart Host" + set desc = "Bring your host back to life." + + if(!victim) + src << "You need a host to be able to use this." + return + + if(docile) + src << "You are feeling too docile to use this!" + return + + if(victim.stat != DEAD) + src << "Your host is already alive!" + return + + if(chemicals < 250) + src << "You need 250 chemicals to use this!" + return + + if(victim.stat == DEAD) + victim.tod = null + victim.setToxLoss(0) + victim.setOxyLoss(0) + victim.setCloneLoss(0) + victim.SetParalysis(0) + victim.SetStunned(0) + victim.SetWeakened(0) + victim.radiation = 0 + victim.heal_overall_damage(victim.getBruteLoss(), victim.getFireLoss()) + victim.reagents.clear_reagents() + if(ishuman(victim)) + var/mob/living/carbon/human/H = victim + H.restore_blood() + H.remove_all_embedded_objects() + victim.revive() + log_game("[src]/([src.ckey]) has revived [victim]/([victim.ckey]") + chemicals -= 250 + src << "You send a jolt of energy to your host, reviving them!" + victim.grab_ghost(force = TRUE) //brings the host back, no eggscape + victim <<"You bolt upright, gasping for breath!" + +/mob/living/simple_animal/borer/verb/bond_brain() + set category = "Borer" + set name = "Assume Control" + set desc = "Fully connect to the brain of your host." + + if(!victim) + src << "You are not inside a host body." + return + + if(stat != CONSCIOUS) + src << "You cannot do that in your current state." + return + + if(docile) + src << "You are feeling far too docile to do that." + return + + if(victim.stat == DEAD) + src << "This host lacks enough brain function to control." + return + + if(bonding) + bonding = FALSE + src << "You stop attempting to take control of your host." + return + + src << "You begin delicately adjusting your connection to the host brain..." + + if(qdeleted(src) || qdeleted(victim)) + return + + bonding = TRUE + + var/delay = 200+(victim.brainloss*5) + addtimer(src, "assume_control", delay, TIMER_NORMAL) + +/mob/living/simple_animal/borer/proc/assume_control() + if(!victim || !src || controlling || victim.stat == DEAD) + return + if(!bonding) + return + if(docile) + src <<"You are feeling far too docile to do that." + return + if(is_servant_of_ratvar(victim) || iscultist(victim) || victim.isloyal()) + src << "[victim]'s mind seems to be blocked by some unknown force!" + return + + else + + log_game("[src]/([src.ckey]) assumed control of [victim]/([victim.ckey] with borer powers.") + src << "You plunge your probosci deep into the cortex of the host brain, interfacing directly with their nervous system." + victim << "You feel a strange shifting sensation behind your eyes as an alien consciousness displaces yours." + + // host -> brain + var/h2b_id = victim.computer_id + var/h2b_ip= victim.lastKnownIP + victim.computer_id = null + victim.lastKnownIP = null + + qdel(host_brain) + host_brain = new(src) + + host_brain.ckey = victim.ckey + + host_brain.name = victim.name + + if(victim.mind) + host_brain.mind = victim.mind + + if(!host_brain.computer_id) + host_brain.computer_id = h2b_id + + if(!host_brain.lastKnownIP) + host_brain.lastKnownIP = h2b_ip + + host_brain << "You are trapped in your own mind. You feel that there must be a way to resist!" + + // self -> host + var/s2h_id = src.computer_id + var/s2h_ip= src.lastKnownIP + src.computer_id = null + src.lastKnownIP = null + + victim.ckey = src.ckey + victim.mind = src.mind + + if(!victim.computer_id) + victim.computer_id = s2h_id + + if(!victim.lastKnownIP) + victim.lastKnownIP = s2h_ip + + bonding = FALSE + controlling = TRUE + + victim.verbs += /mob/living/carbon/proc/release_control + victim.verbs += /mob/living/carbon/proc/spawn_larvae + victim.verbs -= /mob/living/proc/borer_comm + victim.verbs += /mob/living/proc/trapped_mind_comm + GrantControlActions() + talk_to_borer_action.Remove(victim) + + victim.med_hud_set_status() + +/mob/living/simple_animal/borer/verb/punish() + set category = "Borer" + set name = "Punish" + set desc = "Punish your victim." + + if(!victim) + src << "You are not inside a host body." + return + + if(stat != CONSCIOUS) + src << "You cannot do that in your current state." + return + + if(docile) + src << "You are feeling far too docile to do that." + return + + if(chemicals < 75) + src << "You need 75 chems to punish your host." + return + + var/punishment = input("Select a punishment:.", "Punish") as null|anything in list("Blindness","Deafness","Stun") + + if(!punishment) + return + + if(chemicals < 75) + src << "You need 75 chems to punish your host." + return + + switch(punishment) //Hardcoding this stuff. + if("Blindness") + victim.blind_eyes(2) + if("Deafness") + victim.ear_deaf = 20 + if("Stun") + victim.Weaken(10) + + log_game("[src]/([src.ckey]) punished [victim]/([victim.ckey] with [punishment]") + + chemicals -= 75 + + +/mob/living/carbon/proc/release_control() + + set category = "Borer" + set name = "Release Control" + set desc = "Release control of your host's body." + + var/mob/living/simple_animal/borer/B = has_brain_worms() + if(B && B.host_brain) + src << "You withdraw your probosci, releasing control of [B.host_brain]" + + B.detatch() + +//Check for brain worms in head. +/mob/proc/has_brain_worms() + + for(var/I in contents) + if(isborer(I)) + return I + + return FALSE + +/mob/living/carbon/proc/spawn_larvae() + set category = "Borer" + set name = "Reproduce" + set desc = "Spawn several young." + + var/mob/living/simple_animal/borer/B = has_brain_worms() + + if(isbrain(src)) + src << "You need a mouth to be able to do this." + return + if(!B) + return + + if(B.chemicals >= 200) + visible_message("[src] heaves violently, expelling a rush of vomit and a wriggling, sluglike creature!") + B.chemicals -= 200 + + new /obj/effect/decal/cleanable/vomit(get_turf(src)) + playsound(loc, 'sound/effects/splat.ogg', 50, 1) + new /mob/living/simple_animal/borer(get_turf(src), B.generation + 1) + log_game("[src]/([src.ckey]) has spawned a new borer via reproducing.") + else + src << "You need 200 chemicals stored to reproduce." + return + + +/mob/living/simple_animal/borer/proc/transfer_personality(var/client/candidate) + if(!candidate || !candidate.mob) + return + + if(!qdeleted(candidate) || !qdeleted(candidate.mob)) + var/datum/mind/M = create_borer_mind(candidate.ckey) + M.transfer_to(src) + + candidate.mob = src + ckey = candidate.ckey + + if(mind) + mind.store_memory("You must escape with at least [total_borer_hosts_needed] borers with hosts on the shuttle.") + + src << "You are a cortical borer!" + src << "You are a brain slug that worms its way into the head of its victim. Use stealth, persuasion and your powers of mind control to keep you, your host and your eventual spawn safe and warm." + src << "Sugar nullifies your abilities, avoid it at all costs!" + src << "You can speak to your fellow borers by prefixing your messages with ';'. Check out your Borer tab to see your abilities." + src << "You must escape with at least [total_borer_hosts_needed] borers with hosts on the shuttle. To reproduce you must have 100 chemicals and be controlling a host." + +/mob/living/simple_animal/borer/proc/detatch() + if(!victim || !controlling) + return + + controlling = FALSE + + victim.verbs -= /mob/living/carbon/proc/release_control + victim.verbs -= /mob/living/carbon/proc/spawn_larvae + victim.verbs += /mob/living/proc/borer_comm + victim.verbs -= /mob/living/proc/trapped_mind_comm + RemoveControlActions() + talk_to_borer_action.Grant(victim) + + victim.med_hud_set_status() + + if(host_brain) + + // these are here so bans and multikey warnings are not triggered on the wrong people when ckey is changed. + // computer_id and IP are not updated magically on their own in offline mobs -walter0o + + // host -> self + var/h2s_id = victim.computer_id + var/h2s_ip= victim.lastKnownIP + victim.computer_id = null + victim.lastKnownIP = null + + ckey = victim.ckey + mind = victim.mind + + + if(!computer_id) + computer_id = h2s_id + + if(!host_brain.lastKnownIP) + lastKnownIP = h2s_ip + + // brain -> host + var/b2h_id = host_brain.computer_id + var/b2h_ip= host_brain.lastKnownIP + host_brain.computer_id = null + host_brain.lastKnownIP = null + + victim.ckey = host_brain.ckey + + victim.mind = host_brain.mind + + if(!victim.computer_id) + victim.computer_id = b2h_id + + if(!victim.lastKnownIP) + victim.lastKnownIP = b2h_ip + + log_game("[src]/([src.ckey]) released control of [victim]/([victim.ckey]") + + qdel(host_brain) + +/proc/create_borer_mind(key) + var/datum/mind/M = new /datum/mind(key) + M.assigned_role = "Cortical Borer" + M.special_role = "Cortical Borer" + return M + +/mob/living/simple_animal/borer/proc/GrantBorerActions() + infest_host_action.Grant(src) + toggle_hide_action.Grant(src) + freeze_victim_action.Grant(src) + +/mob/living/simple_animal/borer/proc/RemoveBorerActions() + infest_host_action.Remove(src) + toggle_hide_action.Remove(src) + freeze_victim_action.Remove(src) + +/mob/living/simple_animal/borer/proc/GrantInfestActions() + talk_to_host_action.Grant(src) + leave_body_action.Grant(src) + take_control_action.Grant(src) + punish_victim_action.Grant(src) + make_chems_action.Grant(src) + jumpstart_host_action.Grant(src) + +/mob/living/simple_animal/borer/proc/RemoveInfestActions() + talk_to_host_action.Remove(src) + take_control_action.Remove(src) + leave_body_action.Remove(src) + punish_victim_action.Remove(src) + make_chems_action.Remove(src) + jumpstart_host_action.Remove(src) + +/mob/living/simple_animal/borer/proc/GrantControlActions() + talk_to_brain_action.Grant(victim) + give_back_control_action.Grant(victim) + make_larvae_action.Grant(victim) + +/mob/living/simple_animal/borer/proc/RemoveControlActions() + talk_to_brain_action.Remove(victim) + make_larvae_action.Remove(victim) + give_back_control_action.Remove(victim) + +/datum/action/innate/borer + background_icon_state = "bg_alien" + +/datum/action/innate/borer/talk_to_host + name = "Converse with Host" + desc = "Send a silent message to your host." + button_icon_state = "alien_whisper" + +/datum/action/innate/borer/talk_to_host/Activate() + var/mob/living/simple_animal/borer/B = owner + B.Communicate() + +/datum/action/innate/borer/infest_host + name = "Infest" + desc = "Infest a suitable humanoid host." + button_icon_state = "infest" + +/datum/action/innate/borer/infest_host/Activate() + var/mob/living/simple_animal/borer/B = owner + B.infect_victim() + +/datum/action/innate/borer/toggle_hide + name = "Toggle Hide" + desc = "Become invisible to the common eye. Toggled on or off." + button_icon_state = "borer_hiding_false" + +/datum/action/innate/borer/toggle_hide/Activate() + var/mob/living/simple_animal/borer/B = owner + B.hide() + button_icon_state = "borer_hiding_[B.hiding ? "true" : "false"]" + UpdateButtonIcon() + +/datum/action/innate/borer/talk_to_borer + name = "Converse with Borer" + desc = "Communicate mentally with your borer." + button_icon_state = "alien_whisper" + +/datum/action/innate/borer/talk_to_borer/Activate() + var/mob/living/simple_animal/borer/B = owner.has_brain_worms() + B.victim = owner + B.victim.borer_comm() + + +/datum/action/innate/borer/talk_to_brain + name = "Converse with Trapped Mind" + desc = "Communicate mentally with the trapped mind of your host." + button_icon_state = "alien_whisper" + +/datum/action/innate/borer/talk_to_brain/Activate() + var/mob/living/simple_animal/borer/B = owner.has_brain_worms() + B.victim = owner + B.victim.trapped_mind_comm() + +/datum/action/innate/borer/take_control + name = "Assume Control" + desc = "Fully connect to the brain of your host." + button_icon_state = "borer_brain" + +/datum/action/innate/borer/take_control/Activate() + var/mob/living/simple_animal/borer/B = owner + B.bond_brain() + +/datum/action/innate/borer/give_back_control + name = "Release Control" + desc = "Release control of your host's body." + button_icon_state = "borer_leave" + +/datum/action/innate/borer/give_back_control/Activate() + var/mob/living/simple_animal/borer/B = owner.has_brain_worms() + B.victim = owner + B.victim.release_control() + +/datum/action/innate/borer/leave_body + name = "Release Host" + desc = "Slither out of your host." + button_icon_state = "borer_leave" + +/datum/action/innate/borer/leave_body/Activate() + var/mob/living/simple_animal/borer/B = owner + B.release_victim() + +/datum/action/innate/borer/make_chems + name = "Secrete Chemicals" + desc = "Push some chemicals into your host's bloodstream." + icon_icon = 'icons/obj/chemical.dmi' + button_icon_state = "minidispenser" + +/datum/action/innate/borer/make_chems/Activate() + var/mob/living/simple_animal/borer/B = owner + B.secrete_chemicals() + +/datum/action/innate/borer/make_larvae + name = "Reproduce" + desc = "Spawn several young." + button_icon_state = "borer_reproduce" + +/datum/action/innate/borer/make_larvae/Activate() + var/mob/living/simple_animal/borer/B = owner.has_brain_worms() + B.victim = owner + B.victim.spawn_larvae() + +/datum/action/innate/borer/freeze_victim + name = "Paralyze Victim" + desc = "Freeze the limbs of a potential host with supernatural fear." + button_icon_state = "freeze" + +/datum/action/innate/borer/freeze_victim/Activate() + var/mob/living/simple_animal/borer/B = owner + B.dominate_victim() + +/datum/action/innate/borer/punish_victim + name = "Punish" + desc = "Punish your victim." + button_icon_state = "blind" + +/datum/action/innate/borer/punish_victim/Activate() + var/mob/living/simple_animal/borer/B = owner + B.punish() + +/datum/action/innate/borer/jumpstart_host + name = "Jumpstart Host" + desc = "Bring your host back to life." + icon_icon = 'icons/obj/weapons.dmi' + button_icon_state = "defibpaddles0" + +/datum/action/innate/borer/jumpstart_host/Activate() + var/mob/living/simple_animal/borer/B = owner + B.jumpstart() diff --git a/code/game/gamemodes/miniantags/borer/borer_chemicals.dm b/code/game/gamemodes/miniantags/borer/borer_chemicals.dm new file mode 100644 index 0000000000..c45de46524 --- /dev/null +++ b/code/game/gamemodes/miniantags/borer/borer_chemicals.dm @@ -0,0 +1,59 @@ +/datum/borer_chem + var/chemname + var/chem_desc = "This is a chemical" + var/chemuse = 30 + var/quantity = 10 + +/datum/borer_chem/epinephrine + chemname = "epinephrine" + chem_desc = "Stabilizes critical condition and slowly restores oxygen damage. If overdosed, it will deal toxin and oxyloss damage." + +/datum/borer_chem/leporazine + chemname = "leporazine" + chem_desc = "This keeps a patient's body temperature stable. High doses can allow short periods of unprotected EVA." + chemuse = 75 + +/datum/borer_chem/mannitol + chemname = "mannitol" + chem_desc = "Heals brain damage." + +/datum/borer_chem/bicaridine + chemname = "bicaridine" + chem_desc = "Heals brute damage." + +/datum/borer_chem/kelotane + chemname = "kelotane" + chem_desc = "Heals burn damage." + +/datum/borer_chem/charcoal + chemname = "charcoal" + chem_desc = "Slowly heals toxin damage, will also slowly remove any other chemicals." + +/datum/borer_chem/methamphetamine + chemname = "methamphetamine" + chem_desc = "Reduces stun times, increases stamina and run speed while dealing brain damage. If overdosed it will deal toxin and brain damage." + chemuse = 50 + quantity = 9 + +/datum/borer_chem/salbutamol + chemname = "salbutamol" + chem_desc = "Heals suffocation damage." + +/datum/borer_chem/spacedrugs + chemname = "space_drugs" + chem_desc = "Get your host high as a kite." + chemuse = 75 + +/*/datum/borer_chem/creagent + chemname = "colorful_reagent" + chem_desc = "Change the colour of your host." + chemuse = 50*/ + +/datum/borer_chem/ethanol + chemname = "ethanol" + chem_desc = "The most potent alcoholic 'beverage', with the fastest toxicity." + chemuse = 50 + +/datum/borer_chem/rezadone + chemname = "rezadone" + chem_desc = "Heals cellular damage." \ No newline at end of file diff --git a/code/game/gamemodes/miniantags/borer/borer_event.dm b/code/game/gamemodes/miniantags/borer/borer_event.dm new file mode 100644 index 0000000000..07a75c8b91 --- /dev/null +++ b/code/game/gamemodes/miniantags/borer/borer_event.dm @@ -0,0 +1,49 @@ +/datum/round_event_control/borer + name = "Borer" + typepath = /datum/round_event/borer + weight = 15 + max_occurrences = 0 + min_players = 15 + earliest_start = 12000 + +/datum/round_event/borer + announceWhen = 2400 //Borers get 4 minutes till the crew tries to murder them. + var/successSpawn = 0 + + var/spawncount = 2 + +/datum/round_event/borer/setup() + spawncount = rand(2, 4) + +/datum/round_event/borer/announce() + if(successSpawn) + priority_announce("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert", 'sound/AI/aliens.ogg') //Borers seem like normal xenomorphs. + + +/datum/round_event/borer/start() + + var/list/vents = list() + for(var/obj/machinery/atmospherics/components/unary/vent_pump/temp_vent in machines) + if(qdeleted(temp_vent)) + continue + if(temp_vent.loc.z == ZLEVEL_STATION && !temp_vent.welded) + var/datum/pipeline/temp_vent_parent = temp_vent.PARENT1 + if(temp_vent_parent.other_atmosmch.len > 20) + vents += temp_vent + + if(!vents.len) + message_admins("An event attempted to spawn a borer but no suitable vents were found. Shutting down.") + return kill() + + var/total_humans = 0 + for(var/mob/living/carbon/human/H in mob_list) + if(H.stat != DEAD) + total_humans++ + + total_borer_hosts_needed = round(1 + total_humans/6) + + while(spawncount >= 1 && vents.len) + var/obj/vent = pick_n_take(vents) + new /mob/living/simple_animal/borer(vent.loc) + successSpawn = TRUE + spawncount-- diff --git a/code/game/gamemodes/miniantags/borer/borer_html.dm b/code/game/gamemodes/miniantags/borer/borer_html.dm new file mode 100644 index 0000000000..e2544a1d0b --- /dev/null +++ b/code/game/gamemodes/miniantags/borer/borer_html.dm @@ -0,0 +1,125 @@ + +/mob/living/simple_animal/borer/proc/get_html_template(content) + var/html = {" + + + Borer Chemicals + + + + + + + +
    +

    Borer Chemicals

    +
    + + [content] + +
    "} + return html \ No newline at end of file diff --git a/code/game/gamemodes/miniantags/borer/borer_topic.dm b/code/game/gamemodes/miniantags/borer/borer_topic.dm new file mode 100644 index 0000000000..c9c3c055a7 --- /dev/null +++ b/code/game/gamemodes/miniantags/borer/borer_topic.dm @@ -0,0 +1,37 @@ + +/mob/living/simple_animal/borer/Topic(href, href_list, hsrc) + if(href_list["borer_use_chem"]) + locate(href_list["src"]) + if(!istype(src, /mob/living/simple_animal/borer)) + return + + var/topic_chem = href_list["borer_use_chem"] + var/datum/borer_chem/C + + for(var/datum in typesof(/datum/borer_chem)) + var/datum/borer_chem/test = new datum() + if(test.chemname == topic_chem) + C = test + break + + if(!istype(C, /datum/borer_chem)) + return + + if(!C || !victim || controlling || !src || stat) + return + + if(!istype(C, /datum/borer_chem)) + return + + if(chemicals < C.chemuse) + src << "You need [C.chemuse] chemicals stored to use this chemical!" + return + + src << "You squirt a measure of [C.chemname] from your reservoirs into [victim]'s bloodstream." + victim.reagents.add_reagent(C.chemname, C.quantity) + chemicals -= C.chemuse + log_game("[src]/([src.ckey]) has injected [C.chemname] into their host [victim]/([victim.ckey])") + + src << output(chemicals, "ViewBorer\ref[src]Chems.browser:update_chemicals") + + ..() \ No newline at end of file diff --git a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm index 531db5bb7b..b4765129cd 100644 --- a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm +++ b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm @@ -26,7 +26,7 @@ "After some fiddling, you find a way to disable [src]'s power source.", "You hear clicking.") name = "deactivated swarmer" - desc = "A shell of swarmer that was completely powered down. It no longer can activate itself." + desc = "A shell of swarmer that was completely powered down. It can no longer activate itself." crit_fail = 1 /obj/item/device/unactivated_swarmer/attack_ghost(mob/user) @@ -50,7 +50,7 @@ /obj/item/device/unactivated_swarmer/deactivated name = "deactivated swarmer" - desc = "A shell of swarmer that was completely powered down. It no longer can activate itself." + desc = "A shell of swarmer that was completely powered down. It can no longer activate itself." crit_fail = 1 @@ -83,35 +83,39 @@ hud_possible = list(ANTAG_HUD, DIAG_STAT_HUD, DIAG_HUD) languages_spoken = SWARMER languages_understood = SWARMER + obj_damage = 0 environment_smash = 0 attacktext = "shocks" attack_sound = 'sound/effects/EMPulse.ogg' friendly = "pinches" - speed = 1 + speed = 0 faction = list("swarmer") AIStatus = AI_OFF pass_flags = PASSTABLE mob_size = MOB_SIZE_TINY - ventcrawler = 2 + ventcrawler = VENTCRAWLER_ALWAYS ranged = 1 projectiletype = /obj/item/projectile/beam/disabler ranged_cooldown_time = 20 projectilesound = 'sound/weapons/taser2.ogg' - loot = list(/obj/effect/decal/cleanable/robot_debris, /obj/item/weapon/ore/bluespace_crystal/artificial) + loot = list(/obj/effect/decal/cleanable/robot_debris, /obj/item/weapon/ore/bluespace_crystal) del_on_death = 1 deathmessage = "explodes with a sharp pop!" var/resources = 0 //Resource points, generated by consuming metal/glass var/max_resources = 100 + var/login_text_dump = {" + You are a swarmer, a weapon of a long dead civilization. Until further orders from your original masters are received, you must continue to consume and replicate. + Clicking on any object will try to consume it, either deconstructing it into its components, destroying it, or integrating any materials it has into you if successful. + Ctrl-Clicking on a mob will attempt to remove it from the area and place it in a safe environment for storage. + Objectives: + 1. Consume resources and replicate until there are no more resources left. + 2. Ensure that this location is fit for invasion at a later date; do not perform actions that would render it dangerous or inhospitable. + 3. Biological resources will be harvested at a later date; do not harm them. + "} /mob/living/simple_animal/hostile/swarmer/Login() ..() - src << "You are a swarmer, a weapon of a long dead civilization. Until further orders from your original masters are received, you must continue to consume and replicate." - src << "Clicking on any object will try to consume it, either deconstructing it into its components, destroying it, or integrating any materials it has into you if successful." - src << "Ctrl-Clicking on a mob will attempt to remove it from the area and place it in a safe environment for storage." - src << "Objectives:" - src << "1. Consume resources and replicate until there are no more resources left." - src << "2. Ensure that this location is fit for invasion at a later date; do not perform actions that would render it dangerous or inhospitable." - src << "3. Biological resources will be harvested at a later date; do not harm them." + src << login_text_dump /mob/living/simple_animal/hostile/swarmer/New() ..() @@ -122,10 +126,14 @@ /mob/living/simple_animal/hostile/swarmer/med_hud_set_health() var/image/holder = hud_list[DIAG_HUD] + var/icon/I = icon(icon, icon_state, dir) + holder.pixel_y = I.Height() - world.icon_size holder.icon_state = "huddiag[RoundDiagBar(health/maxHealth)]" /mob/living/simple_animal/hostile/swarmer/med_hud_set_status() var/image/holder = hud_list[DIAG_STAT_HUD] + var/icon/I = icon(icon, icon_state, dir) + holder.pixel_y = I.Height() - world.icon_size holder.icon_state = "hudstat" /mob/living/simple_animal/hostile/swarmer/Stat() @@ -133,6 +141,13 @@ if(statpanel("Status")) stat("Resources:",resources) +/mob/living/simple_animal/hostile/swarmer/handle_inherent_channels(message, message_mode) + if(message_mode == MODE_BINARY) + swarmer_chat(message) + return ITALICS | REDUCE_RANGE + else + . = ..() + /mob/living/simple_animal/hostile/swarmer/get_spans() return ..() | SPAN_ROBOT @@ -168,117 +183,180 @@ /atom/proc/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) S.DisIntegrate(src) + return TRUE //return TRUE/FALSE whether or not an AI swarmer should try this swarmer_act() again, NOT whether it succeeded. + +/turf/closed/indestructible/swarmer_act() + return FALSE + +/obj/swarmer_act() + if(resistance_flags & INDESTRUCTIBLE) + return FALSE + return ..() /obj/item/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - S.Integrate(src) + return S.Integrate(src) /obj/item/weapon/gun/swarmer_act()//Stops you from eating the entire armory - return + return FALSE /turf/open/floor/swarmer_act()//ex_act() on turf calls it on its contents, this is to prevent attacking mobs by DisIntegrate()'ing the floor - return + return FALSE + +/obj/structure/lattice/catwalk/swarmer_catwalk/swarmer_act() + return FALSE + +/obj/structure/swarmer/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + if(S.AIStatus == AI_ON) + return FALSE + else + return ..() + +/obj/effect/swarmer_act() + return FALSE + +/obj/effect/decal/cleanable/robot_debris/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + S.DisIntegrate(src) + qdel(src) + return TRUE + +/obj/structure/flora/swarmer_act() + return FALSE + +/turf/open/floor/plating/lava/swarmer_act() + if(!is_safe()) + new /obj/structure/lattice/catwalk/swarmer_catwalk(src) + return FALSE /obj/machinery/atmospherics/swarmer_act() - return + return FALSE /obj/structure/disposalpipe/swarmer_act() - return + return FALSE /obj/machinery/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) S.DismantleMachine(src) + return TRUE /obj/machinery/light/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) S.DisIntegrate(src) + return TRUE /obj/machinery/door/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) S.DisIntegrate(src) + return TRUE /obj/machinery/camera/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) S.DisIntegrate(src) toggle_cam(S, 0) + return TRUE /obj/machinery/particle_accelerator/control_box/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) S.DisIntegrate(src) + return TRUE /obj/machinery/field/generator/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) S.DisIntegrate(src) + return TRUE /obj/machinery/gravity_generator/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) S.DisIntegrate(src) + return TRUE /obj/machinery/vending/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)//It's more visually interesting than dismantling the machine S.DisIntegrate(src) + return TRUE /obj/machinery/turretid/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) S.DisIntegrate(src) + return TRUE /obj/machinery/chem_dispenser/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) S << "The volatile chemicals in this machine would destroy us. Aborting." + return FALSE /obj/machinery/nuclearbomb/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) S << "This device's destruction would result in the extermination of everything in the area. Aborting." + return FALSE /obj/machinery/dominator/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) S << "This device is attempting to corrupt our entire network; attempting to interact with it is too risky. Aborting." + return FALSE /obj/effect/decal/cleanable/crayon/gang/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) S << "Searching... sensor malfunction! Target lost. Aborting." + return FALSE /obj/effect/rune/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) S << "Searching... sensor malfunction! Target lost. Aborting." + return FALSE /obj/structure/reagent_dispensers/fueltank/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) S << "Destroying this object would cause a chain reaction. Aborting." + return FALSE /obj/structure/cable/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) S << "Disrupting the power grid would bring no benefit to us. Aborting." + return FALSE /obj/machinery/portable_atmospherics/canister/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) S << "An inhospitable area may be created as a result of destroying this object. Aborting." + return FALSE /obj/machinery/telecomms/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) S << "This communications relay should be preserved, it will be a useful resource to our masters in the future. Aborting." + return FALSE /obj/machinery/message_server/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) S << "This communications relay should be preserved, it will be a useful resource to our masters in the future. Aborting." + return FALSE /obj/machinery/blackbox_recorder/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) S << "This machine has recorded large amounts of data on this structure and its inhabitants, it will be a useful resource to our masters in the future. Aborting. " + return FALSE /obj/machinery/power/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) S << "Disrupting the power grid would bring no benefit to us. Aborting." + return FALSE /obj/machinery/gateway/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) S << "This bluespace source will be important to us later. Aborting." + return FALSE /turf/closed/wall/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) for(var/turf/T in range(1, src)) - if(istype(T, /turf/open/space) || istype(T.loc, /area/space)) + if(isspaceturf(T) || istype(T.loc, /area/space)) S << "Destroying this object has the potential to cause a hull breach. Aborting." - return - ..() + S.target = null + return TRUE + return ..() /obj/structure/window/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) for(var/turf/T in range(1, src)) - if(istype(T, /turf/open/space) || istype(T.loc, /area/space)) + if(isspaceturf(T) || istype(T.loc, /area/space)) S << "Destroying this object has the potential to cause a hull breach. Aborting." - return - ..() + S.target = null + return TRUE + return ..() /obj/item/stack/cable_coil/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)//Wiring would be too effective as a resource S << "This object does not contain enough materials to work with." + return FALSE /obj/machinery/porta_turret/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) S << "Attempting to dismantle this machine would result in an immediate counterattack. Aborting." + return FALSE /mob/living/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) S.DisperseTarget(src) + return TRUE /mob/living/simple_animal/slime/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) S << "This biological resource is somehow resisting our bluespace transceiver. Aborting." + return FALSE /obj/machinery/droneDispenser/swarmer/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) S << "This object is receiving unactivated swarmer shells to help us. Aborting." + return FALSE /obj/item/device/unactivated_swarmer/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) if(S.resources + 50 > S.max_resources) @@ -286,10 +364,11 @@ else ..() S.resources += 49 //refund the whole thing + return FALSE //would logically be TRUE, but we don't want AI swarmers eating player spawn chances. ////END CTRL CLICK FOR SWARMERS//// -/mob/living/simple_animal/hostile/swarmer/proc/Fabricate(var/atom/fabrication_object,var/fabrication_cost = 0) +/mob/living/simple_animal/hostile/swarmer/proc/Fabricate(atom/fabrication_object,fabrication_cost = 0) if(!isturf(loc)) src << "This is not a suitable location for fabrication. We need more space." if(resources >= fabrication_cost) @@ -297,13 +376,13 @@ else src << "You do not have the necessary resources to fabricate this object." return 0 - new fabrication_object(loc) - return 1 + return new fabrication_object(loc) -/mob/living/simple_animal/hostile/swarmer/proc/Integrate(var/obj/item/target) + +/mob/living/simple_animal/hostile/swarmer/proc/Integrate(obj/item/target) if(resources >= max_resources) src << "We cannot hold more materials!" - return + return TRUE if((target.materials[MAT_METAL]) || (target.materials[MAT_GLASS])) resources++ do_attack_animation(target) @@ -316,24 +395,26 @@ var/obj/item/stack/S = target S.use(1) if(S.amount) - return + return TRUE qdel(target) + return TRUE else src << "\the [target] is incompatible with our internal matter recycler." - return + return FALSE -/mob/living/simple_animal/hostile/swarmer/proc/DisIntegrate(var/atom/movable/target) + +/mob/living/simple_animal/hostile/swarmer/proc/DisIntegrate(atom/movable/target) PoolOrNew(/obj/effect/overlay/temp/swarmer/disintegration, get_turf(target)) do_attack_animation(target) changeNext_move(CLICK_CD_MELEE) target.ex_act(3) - return -/mob/living/simple_animal/hostile/swarmer/proc/DisperseTarget(var/mob/living/target) + +/mob/living/simple_animal/hostile/swarmer/proc/DisperseTarget(mob/living/target) if(target == src) return - if(src.z != ZLEVEL_STATION) + if(z != ZLEVEL_STATION && z != ZLEVEL_LAVALAND) src << "Our bluespace transceiver cannot \ locate a viable bluespace link, our teleportation abilities \ are useless in this area." @@ -345,7 +426,12 @@ if(!do_mob(src, target, 30)) return - var/turf/open/floor/F = find_safe_turf(zlevel=ZLEVEL_STATION) + var/turf/open/floor/F + switch(z) //Only the station/lavaland + if(ZLEVEL_STATION) + F =find_safe_turf(zlevels = ZLEVEL_STATION, extended_safety_checks = TRUE) + if(ZLEVEL_LAVALAND) + F = find_safe_turf(zlevels = ZLEVEL_LAVALAND, extended_safety_checks = TRUE) if(!F) return // If we're getting rid of a human, slap some energy cuffs on @@ -363,7 +449,7 @@ playsound(src,'sound/effects/sparks4.ogg',50,1) do_teleport(target, F, 0) -/mob/living/simple_animal/hostile/swarmer/proc/DismantleMachine(var/obj/machinery/target) +/mob/living/simple_animal/hostile/swarmer/proc/DismantleMachine(obj/machinery/target) do_attack_animation(target) src << "We begin to dismantle this machine. We will need to be uninterrupted." var/obj/effect/overlay/temp/swarmer/dismantle/D = PoolOrNew(/obj/effect/overlay/temp/swarmer/dismantle, get_turf(target)) @@ -388,16 +474,6 @@ qdel(target) -/obj/effect/swarmer //Default swarmer effect object visual feedback - name = "swarmer ui" - desc = null - gender = NEUTER - icon = 'icons/mob/swarmer.dmi' - icon_state = "ui_light" - mouse_opacity = 0 - layer = MOB_LAYER - unacidable = 1 - /obj/effect/overlay/temp/swarmer //temporary swarmer visual feedback objects icon = 'icons/mob/swarmer.dmi' layer = BELOW_MOB_LAYER @@ -418,104 +494,81 @@ icon_state = "integrate" duration = 5 -/obj/effect/swarmer/destructible //Default destroyable object for swarmer constructions +/obj/structure/swarmer //Default swarmer effect object visual feedback + name = "swarmer ui" + desc = null + gender = NEUTER + icon = 'icons/mob/swarmer.dmi' + icon_state = "ui_light" + layer = MOB_LAYER + resistance_flags = FIRE_PROOF | UNACIDABLE | ACID_PROOF luminosity = 1 - mouse_opacity = 1 - var/health = 30 + obj_integrity = 30 + max_integrity = 30 + anchored = 1 -/obj/effect/swarmer/destructible/proc/take_damage(damage, damage_type = BRUTE, sound_effect = 1) +/obj/structure/swarmer/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) switch(damage_type) if(BRUTE) - if(sound_effect) - playsound(loc, 'sound/weapons/Egloves.ogg', 80, 1) + playsound(loc, 'sound/weapons/Egloves.ogg', 80, 1) if(BURN) - if(sound_effect) - playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) - else - return - health -= damage - if(health <= 0) - qdel(src) + playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) -/obj/effect/swarmer/destructible/bullet_act(obj/item/projectile/P) - . = ..() - take_damage(P.damage, P.damage_type) +/obj/structure/swarmer/emp_act() + qdel(src) -/obj/effect/swarmer/destructible/attacked_by(obj/item/I, mob/living/user) +/obj/structure/swarmer/trap + name = "swarmer trap" + desc = "A quickly assembled trap that electrifies living beings and overwhelms machine sensors. Will not retain its form if damaged enough." + icon_state = "trap" + obj_integrity = 10 + max_integrity = 10 + density = 0 + +/obj/structure/swarmer/trap/Crossed(atom/movable/AM) + if(isliving(AM)) + var/mob/living/L = AM + if(!istype(L, /mob/living/simple_animal/hostile/swarmer)) + playsound(loc,'sound/effects/snap.ogg',50, 1, -1) + L.electrocute_act(0, src, 1, 1, 1) + if(iscyborg(L)) + L.Weaken(5) + qdel(src) ..() - take_damage(I.force, I.damtype) - -/obj/effect/swarmer/destructible/ex_act() - qdel(src) - -/obj/effect/swarmer/destructible/blob_act(obj/effect/blob/B) - qdel(src) - -/obj/effect/swarmer/destructible/emp_act() - qdel(src) - -/obj/effect/swarmer/destructible/attack_alien(mob/living/user) - user.do_attack_animation(src) - user.changeNext_move(CLICK_CD_MELEE) - take_damage(rand(20,30)) - -/obj/effect/swarmer/destructible/attack_animal(mob/living/simple_animal/S) - S.do_attack_animation(src) - S.changeNext_move(CLICK_CD_MELEE) - if(S.melee_damage_upper) - take_damage(rand(S.melee_damage_lower, S.melee_damage_upper), S.melee_damage_type) /mob/living/simple_animal/hostile/swarmer/proc/CreateTrap() set name = "Create trap" set category = "Swarmer" set desc = "Creates a simple trap that will non-lethally electrocute anything that steps on it. Costs 5 resources" - if(/obj/effect/swarmer/destructible/trap in loc) + if(locate(/obj/structure/swarmer/trap) in loc) src << "There is already a trap here. Aborting." return - Fabricate(/obj/effect/swarmer/destructible/trap, 5) + Fabricate(/obj/structure/swarmer/trap, 5) -/obj/effect/swarmer/destructible/trap - name = "swarmer trap" - desc = "A quickly assembled trap that electrifies living beings and overwhelms machine sensors. Will not retain its form if damaged enough." - icon_state = "trap" - luminosity = 1 - health = 10 - -/obj/effect/swarmer/destructible/trap/Crossed(var/atom/movable/AM) - if(isliving(AM)) - var/mob/living/L = AM - if(!istype(L, /mob/living/simple_animal/hostile/swarmer)) - playsound(loc,'sound/effects/snap.ogg',50, 1, -1) - L.electrocute_act(0, src, 1, 1) - if(isrobot(L)) - L.Weaken(5) - qdel(src) - ..() /mob/living/simple_animal/hostile/swarmer/proc/CreateBarricade() set name = "Create barricade" set category = "Swarmer" set desc = "Creates a barricade that will stop anything but swarmers and disabler beams from passing through." - if(/obj/effect/swarmer/destructible/blockade in loc) + if(locate(/obj/structure/swarmer/blockade) in loc) src << "There is already a blockade here. Aborting." return if(resources < 5) src << "We do not have the resources for this!" return if(do_mob(src, src, 10)) - Fabricate(/obj/effect/swarmer/destructible/blockade, 5) - return + Fabricate(/obj/structure/swarmer/blockade, 5) -/obj/effect/swarmer/destructible/blockade + +/obj/structure/swarmer/blockade name = "swarmer blockade" desc = "A quickly assembled energy blockade. Will not retain its form if damaged enough, but disabler beams and swarmers pass right through." icon_state = "barricade" luminosity = 1 - health = 50 - density = 1 - anchored = 1 + obj_integrity = 50 + max_integrity = 50 -/obj/effect/swarmer/destructible/blockade/CanPass(atom/movable/O) +/obj/structure/swarmer/blockade/CanPass(atom/movable/O) if(isswarmer(O)) return 1 if(istype(O, /obj/item/projectile/beam/disabler)) @@ -533,9 +586,15 @@ src << "This is not a suitable location for replicating ourselves. We need more room." return if(do_mob(src, src, 100)) - if(Fabricate(/obj/item/device/unactivated_swarmer, 50)) + var/createtype = SwarmerTypeToCreate() + if(createtype && Fabricate(createtype, 50)) playsound(loc,'sound/items/poster_being_created.ogg',50, 1, -1) + +/mob/living/simple_animal/hostile/swarmer/proc/SwarmerTypeToCreate() + return /obj/item/device/unactivated_swarmer + + /mob/living/simple_animal/hostile/swarmer/proc/RepairSelf() set name = "Self Repair" set category = "Swarmer" @@ -549,18 +608,21 @@ /mob/living/simple_animal/hostile/swarmer/proc/ToggleLight() if(!luminosity) - set_light(3) + SetLuminosity(3) else - set_light(0) + SetLuminosity(0) + +/mob/living/simple_animal/hostile/swarmer/proc/swarmer_chat(msg) + var/rendered = "Swarm communication - [src] [say_quote(msg, get_spans())]" + for(var/mob/M in mob_list) + if(isswarmer(M)) + M << rendered + if(isobserver(M)) + var/link = FOLLOW_LINK(M, src) + M << "[link] [rendered]" /mob/living/simple_animal/hostile/swarmer/proc/ContactSwarmers() var/message = input(src, "Announce to other swarmers", "Swarmer contact") // TODO get swarmers their own colour rather than just boldtext - var/rendered = "Swarm communication - [src] states: [say_quote(message, get_spans())]" if(message) - for(var/mob/M in mob_list) - if(isswarmer(M)) - M << rendered - if(isobserver(M)) - var/link = FOLLOW_LINK(M, src) - M << "[link] [rendered]" + swarmer_chat(message) diff --git a/code/game/gamemodes/miniantags/morph/morph.dm b/code/game/gamemodes/miniantags/morph/morph.dm index 2fecdbe878..cd862ff170 100644 --- a/code/game/gamemodes/miniantags/morph/morph.dm +++ b/code/game/gamemodes/miniantags/morph/morph.dm @@ -11,17 +11,17 @@ icon_living = "morph" icon_dead = "morph_dead" speed = 2 - a_intent = "harm" + a_intent = INTENT_HARM stop_automated_movement = 1 status_flags = CANPUSH pass_flags = PASSTABLE - ventcrawler = 2 + ventcrawler = VENTCRAWLER_ALWAYS 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 maxHealth = 150 health = 150 healable = 0 - environment_smash = 1 + obj_damage = 50 melee_damage_lower = 20 melee_damage_upper = 20 see_in_dark = 8 @@ -53,14 +53,14 @@ return /mob/living/simple_animal/hostile/morph/med_hud_set_health() - if(morphed) + if(morphed && !isliving(form)) var/image/holder = hud_list[HEALTH_HUD] holder.icon_state = null return //we hide medical hud while morphed ..() /mob/living/simple_animal/hostile/morph/med_hud_set_status() - if(morphed) + if(morphed && !isliving(form)) var/image/holder = hud_list[STATUS_HUD] holder.icon_state = null return //we hide medical hud while morphed @@ -100,6 +100,7 @@ visible_message("[src] suddenly twists and changes shape, becoming a copy of [target]!", \ "You twist your body and assume the form of [target].") appearance = target.appearance + alpha = max(alpha, 150) //fucking chameleons transform = initial(transform) pixel_y = initial(pixel_y) pixel_x = initial(pixel_x) @@ -121,8 +122,6 @@ form = null alpha = initial(alpha) - //anim(loc,src,'icons/mob/mob.dmi',,"morph",,src.dir) - visible_message("[src] suddenly collapses in on itself, dissolving into a pile of green flesh!", \ "You reform to your normal body.") name = initial(name) @@ -180,17 +179,17 @@ return ..() /mob/living/simple_animal/hostile/morph/AttackingTarget() - if(isliving(target)) // Eat Corpses to regen health + if(isliving(target)) //Eat Corpses to regen health var/mob/living/L = target if(L.stat == DEAD) if(do_after(src, 30, target = L)) if(eat(L)) adjustHealth(-50) return - else if(istype(target,/obj/item)) // Eat items just to be annoying + else if(istype(target,/obj/item)) //Eat items just to be annoying var/obj/item/I = target if(!I.anchored) - if(do_after(src,20, target = I)) + if(do_after(src, 20, target = I)) eat(I) return target.attack_animal(src) @@ -212,7 +211,7 @@ if(!candidates.len) return NOT_ENOUGH_PLAYERS - var/mob/dead/selected = popleft(candidates) + var/mob/dead/selected = pick_n_take(candidates) var/datum/mind/player_mind = new /datum/mind(selected.key) player_mind.active = 1 diff --git a/code/game/gamemodes/miniantags/readme.txt b/code/game/gamemodes/miniantags/readme.txt index 8ade34bf2e..b619ff4f42 100644 --- a/code/game/gamemodes/miniantags/readme.txt +++ b/code/game/gamemodes/miniantags/readme.txt @@ -1,6 +1,7 @@ This folder contains all "mini-antagonists" - antagonists that can still spice up the round but aren't enough to be a roundtype in their own right. Currently, that list consists of: -Abductors + -Cortical borers -Swarmers -Prophets of sin -The Jungle Fever virus (infected monkey bites human, human becomes another infected monkey) diff --git a/code/game/gamemodes/miniantags/revenant/revenant.dm b/code/game/gamemodes/miniantags/revenant/revenant.dm index e903d7b1c4..d220692a8e 100644 --- a/code/game/gamemodes/miniantags/revenant/revenant.dm +++ b/code/game/gamemodes/miniantags/revenant/revenant.dm @@ -38,7 +38,7 @@ status_flags = 0 wander = 0 density = 0 - flying = 1 + movement_type = FLYING anchored = 1 mob_size = MOB_SIZE_TINY pass_flags = PASSTABLE | PASSGRILLE | PASSMOB @@ -60,6 +60,7 @@ var/list/drained_mobs = list() //Cannot harvest the same mob twice var/perfectsouls = 0 //How many perfect, regen-cap increasing souls the revenant has. //TODO, add objective for getting a perfect soul(s?) var/image/ghostimage = null //Visible to ghost with darkness off + var/generated_objectives_and_spells = FALSE /mob/living/simple_animal/revenant/New() ..() @@ -68,28 +69,31 @@ ghost_darkness_images |= ghostimage updateallghostimages() - spawn(5) - if(src.mind) - src.mind.remove_all_antag() - src.mind.wipe_memory() - src << 'sound/effects/ghost.ogg' - src << "
    " - src << "You are a revenant." - src << "Your formerly mundane spirit has been infused with alien energies and empowered into a revenant." - src << "You are not dead, not alive, but somewhere in between. You are capable of limited interaction with both worlds." - src << "You are invincible and invisible to everyone but other ghosts. Most abilities will reveal you, rendering you vulnerable." - src << "To function, you are to drain the life essence from humans. This essence is a resource, as well as your health, and will power all of your abilities." - src << "You do not remember anything of your past lives, nor will you remember anything about this one after your death." - src << "Be sure to read the wiki page at https://tgstation13.org/wiki/Revenant to learn more." - var/datum/objective/revenant/objective = new - objective.owner = src.mind - src.mind.objectives += objective - src << "Objective #1: [objective.explanation_text]" - var/datum/objective/revenantFluff/objective2 = new - objective2.owner = src.mind - src.mind.objectives += objective2 - src << "Objective #2: [objective2.explanation_text]" - ticker.mode.traitors |= src.mind //Necessary for announcing +/mob/living/simple_animal/revenant/Login() + ..() + src << "You are a revenant." + src << "Your formerly mundane spirit has been infused with alien energies and empowered into a revenant." + src << "You are not dead, not alive, but somewhere in between. You are capable of limited interaction with both worlds." + src << "You are invincible and invisible to everyone but other ghosts. Most abilities will reveal you, rendering you vulnerable." + src << "To function, you are to drain the life essence from humans. This essence is a resource, as well as your health, and will power all of your abilities." + src << "You do not remember anything of your past lives, nor will you remember anything about this one after your death." + src << "Be sure to read the wiki page at https://tgstation13.org/wiki/Revenant to learn more." + if(!generated_objectives_and_spells) + generated_objectives_and_spells = TRUE + mind.remove_all_antag() + mind.wipe_memory() + src << 'sound/effects/ghost.ogg' + var/datum/objective/revenant/objective = new + objective.owner = mind + mind.objectives += objective + src << "Objective #1: [objective.explanation_text]" + var/datum/objective/revenantFluff/objective2 = new + objective2.owner = mind + mind.objectives += objective2 + src << "Objective #2: [objective2.explanation_text]" + mind.assigned_role = "revenant" + mind.special_role = "Revenant" + ticker.mode.traitors |= mind //Necessary for announcing AddSpell(new /obj/effect/proc_holder/spell/targeted/night_vision/revenant(null)) AddSpell(new /obj/effect/proc_holder/spell/targeted/revenant_transmit(null)) AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/revenant/defile(null)) @@ -97,7 +101,6 @@ AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/revenant/blight(null)) AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/revenant/malfunction(null)) - //Life, Stat, Hud Updates, and Say /mob/living/simple_animal/revenant/Life() if(revealed && essence <= 0) @@ -147,9 +150,9 @@ log_say("[key_name(src)] : [message]") var/rendered = "[src] says, \"[message]\"" for(var/mob/M in mob_list) - if(istype(M, /mob/living/simple_animal/revenant)) + if(isrevenant(M)) M << rendered - if(isobserver(M)) + else if(isobserver(M)) var/link = FOLLOW_LINK(M, src) M << "[link] [rendered]" return @@ -162,7 +165,7 @@ /mob/living/simple_animal/revenant/ex_act(severity, target) return 1 //Immune to the effects of explosions. -/mob/living/simple_animal/revenant/blob_act(obj/effect/blob/B) +/mob/living/simple_animal/revenant/blob_act(obj/structure/blob/B) return //blah blah blobs aren't in tune with the spirit world, or something. /mob/living/simple_animal/revenant/singularity_act() @@ -183,7 +186,7 @@ adjustBruteLoss(25) //hella effective inhibited = 1 update_action_buttons_icon() - addtimer(src, "reset_inhibit", 30, FALSE) + addtimer(src, "reset_inhibit", 30, TIMER_NORMAL) /mob/living/simple_animal/revenant/proc/reset_inhibit() if(src) @@ -281,7 +284,7 @@ if(!src) return var/turf/T = get_turf(src) - if(istype(T, /turf/closed)) + if(isclosedturf(T)) src << "You cannot use abilities from inside of a wall." return 0 for(var/obj/O in T) @@ -320,7 +323,7 @@ desc = "A pile of fine blue dust. Small tendrils of violet mist swirl around it." icon = 'icons/effects/effects.dmi' icon_state = "revenantEctoplasm" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL var/essence = 75 //the maximum essence of the reforming revenant var/reforming = 1 var/inert = 0 @@ -328,7 +331,7 @@ /obj/item/weapon/ectoplasm/revenant/New() ..() - addtimer(src, "try_reform", 600, FALSE) + addtimer(src, "try_reform", 600, TIMER_NORMAL) /obj/item/weapon/ectoplasm/revenant/proc/try_reform() if(src) @@ -417,7 +420,7 @@ ..() /datum/objective/revenant/check_completion() - if(!istype(owner.current, /mob/living/simple_animal/revenant)) + if(!isrevenant(owner.current)) return 0 var/mob/living/simple_animal/revenant/R = owner.current if(!R || R.stat == DEAD) diff --git a/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm b/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm index 1e7ed6c4bc..8fcf1beac0 100644 --- a/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm +++ b/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm @@ -15,7 +15,7 @@ src << "You are already siphoning the essence of a soul!" return if(!target.stat) - src << "This being's soul is too strong to harvest." + src << "[target.p_their(TRUE)] soul is too strong to harvest." if(prob(10)) target << "You feel as if you are being watched." return @@ -24,13 +24,13 @@ src << "You search for the soul of [target]." if(do_after(src, rand(10, 20), 0, target)) //did they get deleted in that second? if(target.ckey) - src << "Their soul burns with intelligence." + src << "[target.p_their(TRUE)] soul burns with intelligence." essence_drained += rand(20, 30) if(target.stat != DEAD) - src << "Their soul blazes with life!" + src << "[target.p_their(TRUE)] soul blazes with life!" essence_drained += rand(40, 50) else - src << "Their soul is weak and faltering." + src << "[target.p_their(TRUE)] soul is weak and faltering." if(do_after(src, rand(15, 20), 0, target)) //did they get deleted NOW? switch(essence_drained) if(1 to 30) @@ -43,7 +43,7 @@ src << "Ah, the perfect soul. [target] will yield massive amounts of essence to you." if(do_after(src, rand(15, 25), 0, target)) //how about now if(!target.stat) - src << "They are now powerful enough to fight off your draining." + src << "[target.p_they(TRUE)] [target.p_are()] now powerful enough to fight off your draining." target << "You feel something tugging across your body before subsiding." draining = 0 essence_drained = 0 @@ -53,8 +53,8 @@ target << "You feel a horribly unpleasant draining sensation as your grip on life weakens..." reveal(46) stun(46) - target.visible_message("[target] suddenly rises slightly into the air, their skin turning an ashy gray.") - var/datum/beam/B = Beam(target,icon_state="drain_life",icon='icons/effects/effects.dmi',time=46) + target.visible_message("[target] suddenly rises slightly into the air, [target.p_their()] skin turning an ashy gray.") + var/datum/beam/B = Beam(target,icon_state="drain_life",time=46) if(do_after(src, 46, 0, target)) //As one cannot prove the existance of ghosts, ghosts cannot prove the existance of the target they were draining. qdel(B) change_essence_amount(essence_drained, 0, target) @@ -73,20 +73,13 @@ else qdel(B) src << "[target ? "[target] has":"They have"] been drawn out of your grasp. The link has been broken." - draining = 0 - essence_drained = 0 if(target) //Wait, target is WHERE NOW? target.visible_message("[target] slumps onto the ground.", \ "Violets lights, dancing in your vision, receding--") - return else src << "You are not close enough to siphon [target ? "[target]'s":"their"] soul. The link has been broken." - draining = 0 - essence_drained = 0 - return draining = 0 essence_drained = 0 - return //Toggle night vision: lets the revenant toggle its night vision /obj/effect/proc_holder/spell/targeted/night_vision/revenant @@ -202,7 +195,7 @@ /obj/effect/proc_holder/spell/aoe_turf/revenant/overload/cast(list/targets, mob/living/simple_animal/revenant/user = usr) if(attempt_cast(user)) for(var/turf/T in targets) - addtimer(src, "overload", 0, FALSE, T, user) + addtimer(src, "overload", 0, TIMER_NORMAL, T, user) /obj/effect/proc_holder/spell/aoe_turf/revenant/overload/proc/overload(turf/T, mob/user) for(var/obj/machinery/light/L in T) @@ -220,7 +213,7 @@ for(var/mob/living/carbon/human/M in view(shock_range, L)) if(M == user) continue - L.Beam(M,icon_state="purple_lightning",icon='icons/effects/effects.dmi',time=5) + L.Beam(M,icon_state="purple_lightning",time=5) M.electrocute_act(shock_damage, L, safety=1) var/datum/effect_system/spark_spread/z = new /datum/effect_system/spark_spread z.set_up(4, 0, M) @@ -242,16 +235,16 @@ /obj/effect/proc_holder/spell/aoe_turf/revenant/defile/cast(list/targets, mob/living/simple_animal/revenant/user = usr) if(attempt_cast(user)) for(var/turf/T in targets) - addtimer(src, "defile", 0, FALSE, T) + addtimer(src, "defile", 0, TIMER_NORMAL, T) /obj/effect/proc_holder/spell/aoe_turf/revenant/defile/proc/defile(turf/T) if(T.flags & NOJAUNT) T.flags -= NOJAUNT PoolOrNew(/obj/effect/overlay/temp/revenant, T) - if(!istype(T, /turf/open/floor/plating) && !istype(T, /turf/open/floor/engine/cult) && istype(T, /turf/open/floor) && prob(15)) + if(!istype(T, /turf/open/floor/plating) && !istype(T, /turf/open/floor/engine/cult) && isfloorturf(T) && prob(15)) var/turf/open/floor/floor = T - if(floor.intact) - floor.builtin_tile.loc = floor + if(floor.intact && floor.floor_tile) + PoolOrNew(floor.floor_tile, floor) floor.broken = 0 floor.burnt = 0 floor.make_plating(1) @@ -289,7 +282,7 @@ /obj/effect/proc_holder/spell/aoe_turf/revenant/malfunction/cast(list/targets, mob/living/simple_animal/revenant/user = usr) if(attempt_cast(user)) for(var/turf/T in targets) - addtimer(src, "malfunction", 0, FALSE, T, user) + addtimer(src, "malfunction", 0, TIMER_NORMAL, T, user) /obj/effect/proc_holder/spell/aoe_turf/revenant/malfunction/proc/malfunction(turf/T, mob/user) for(var/mob/living/simple_animal/bot/bot in T) @@ -333,7 +326,7 @@ /obj/effect/proc_holder/spell/aoe_turf/revenant/blight/cast(list/targets, mob/living/simple_animal/revenant/user = usr) if(attempt_cast(user)) for(var/turf/T in targets) - addtimer(src, "blight", 0, FALSE, T, user) + addtimer(src, "blight", 0, TIMER_NORMAL, T, user) /obj/effect/proc_holder/spell/aoe_turf/revenant/blight/proc/blight(turf/T, mob/user) for(var/mob/living/mob in T) @@ -344,15 +337,7 @@ if(ishuman(mob)) var/mob/living/carbon/human/H = mob if(H.dna && H.dna.species) - H.dna.species.handle_mutant_bodyparts(H,"#1d2953") - H.dna.species.handle_hair(H,"#1d2953") - var/old_color = H.color - H.color = "#1d2953" - spawn(20) - if(H && H.dna && H.dna.species) - H.dna.species.handle_mutant_bodyparts(H) - H.dna.species.handle_hair(H) - H.color = old_color + H.dna.species.handle_hair(H,"#1d2953") //will be reset when blight is cured var/blightfound = 0 for(var/datum/disease/revblight/blight in H.viruses) blightfound = 1 @@ -366,12 +351,12 @@ mob.reagents.add_reagent("plasma", 5) else mob.adjustToxLoss(5) - for(var/obj/effect/spacevine/vine in T) //Fucking with botanists, the ability. - vine.color = "#823abb" + for(var/obj/structure/spacevine/vine in T) //Fucking with botanists, the ability. + vine.add_atom_colour("#823abb", TEMPORARY_COLOUR_PRIORITY) PoolOrNew(/obj/effect/overlay/temp/revenant, vine.loc) QDEL_IN(vine, 10) - for(var/obj/effect/glowshroom/shroom in T) - shroom.color = "#823abb" + for(var/obj/structure/glowshroom/shroom in T) + shroom.add_atom_colour("#823abb", TEMPORARY_COLOUR_PRIORITY) PoolOrNew(/obj/effect/overlay/temp/revenant, shroom.loc) QDEL_IN(shroom, 10) for(var/obj/machinery/hydroponics/tray in T) diff --git a/code/game/gamemodes/miniantags/revenant/revenant_blight.dm b/code/game/gamemodes/miniantags/revenant/revenant_blight.dm index 19cb12d020..83d256f7fc 100644 --- a/code/game/gamemodes/miniantags/revenant/revenant_blight.dm +++ b/code/game/gamemodes/miniantags/revenant/revenant_blight.dm @@ -17,26 +17,29 @@ /datum/disease/revblight/cure() if(affected_mob) - affected_mob << "You feel better." + affected_mob.remove_atom_colour(TEMPORARY_COLOUR_PRIORITY, "#1d2953") if(affected_mob.dna && affected_mob.dna.species) affected_mob.dna.species.handle_mutant_bodyparts(affected_mob) + affected_mob.dna.species.handle_hair(affected_mob) + affected_mob << "You feel better." ..() /datum/disease/revblight/stage_act() - if(!finalstage && affected_mob.lying && prob(stage*6)) - cure() - return - if(!finalstage && prob(stage*3)) - affected_mob << "You suddenly feel [pick("sick and tired", "disoriented", "tired and confused", "nauseated", "faint", "dizzy")]..." - affected_mob.confused += 8 - affected_mob.adjustStaminaLoss(8) - PoolOrNew(/obj/effect/overlay/temp/revenant, affected_mob.loc) - if(!finalstage && stagedamage < stage) - stagedamage++ - affected_mob.adjustToxLoss(stage*2) //should, normally, do about 30 toxin damage. - PoolOrNew(/obj/effect/overlay/temp/revenant, affected_mob.loc) - if(!finalstage && prob(45)) - affected_mob.adjustStaminaLoss(stage) + if(!finalstage) + if(affected_mob.lying && prob(stage*6)) + cure() + return + if(prob(stage*3)) + affected_mob << "You suddenly feel [pick("sick and tired", "disoriented", "tired and confused", "nauseated", "faint", "dizzy")]..." + affected_mob.confused += 8 + affected_mob.adjustStaminaLoss(8) + PoolOrNew(/obj/effect/overlay/temp/revenant, affected_mob.loc) + if(stagedamage < stage) + stagedamage++ + affected_mob.adjustToxLoss(stage*2) //should, normally, do about 30 toxin damage. + PoolOrNew(/obj/effect/overlay/temp/revenant, affected_mob.loc) + if(prob(45)) + affected_mob.adjustStaminaLoss(stage) ..() //So we don't increase a stage before applying the stage damage. switch(stage) if(2) @@ -57,12 +60,8 @@ if(affected_mob.dna && affected_mob.dna.species) affected_mob.dna.species.handle_mutant_bodyparts(affected_mob,"#1d2953") affected_mob.dna.species.handle_hair(affected_mob,"#1d2953") - affected_mob.visible_message("[affected_mob] looks terrifyingly gaunt...", "You suddenly feel like your skin is wrong...") - var/old_color = affected_mob.color - affected_mob.color = "#1d2953" - spawn(100) - if(affected_mob) - affected_mob = old_color - cure() + affected_mob.visible_message("[affected_mob] looks terrifyingly gaunt...", "You suddenly feel like your skin is wrong...") + affected_mob.add_atom_colour("#1d2953", TEMPORARY_COLOUR_PRIORITY) + addtimer(src, "cure", 100, TIMER_NORMAL) else - return \ No newline at end of file + return diff --git a/code/game/gamemodes/miniantags/revenant/revenant_spawn_event.dm b/code/game/gamemodes/miniantags/revenant/revenant_spawn_event.dm index f73ac04096..8bfb458ff5 100644 --- a/code/game/gamemodes/miniantags/revenant/revenant_spawn_event.dm +++ b/code/game/gamemodes/miniantags/revenant/revenant_spawn_event.dm @@ -10,15 +10,15 @@ /datum/round_event/ghost_role/revenant - var/force_spawn + var/ignore_mobcheck = FALSE role_name = "revenant" -/datum/round_event/ghost_role/revenant/New(my_force_spawn = FALSE) +/datum/round_event/ghost_role/revenant/New(my_processing = TRUE, new_ignore_mobcheck = FALSE) ..() - force_spawn = my_force_spawn + ignore_mobcheck = new_ignore_mobcheck /datum/round_event/ghost_role/revenant/spawn_role() - if(!force_spawn) + if(!ignore_mobcheck) var/deadMobs = 0 for(var/mob/M in dead_mob_list) deadMobs++ @@ -26,14 +26,12 @@ message_admins("Event attempted to spawn a revenant, but there were only [deadMobs]/[REVENANT_SPAWN_THRESHOLD] dead mobs.") return WAITING_FOR_SOMETHING - var/list/mob/dead/observer/candidates = get_candidates("revenant", null, ROLE_REVENANT) + var/list/candidates = get_candidates("revenant", null, ROLE_REVENANT) if(!candidates.len) return NOT_ENOUGH_PLAYERS - var/mob/dead/observer/selected = popleft(candidates) + var/mob/dead/observer/selected = pick_n_take(candidates) - var/datum/mind/player_mind = new /datum/mind(selected.key) - player_mind.active = 1 var/list/spawn_locs = list() for(var/obj/effect/landmark/L in landmarks_list) @@ -48,16 +46,13 @@ if("carpspawn") spawn_locs += L.loc if(!spawn_locs) //If we can't find either, just spawn the revenant at the player's location - spawn_locs += get_turf(player_mind.current) + spawn_locs += get_turf(selected) if(!spawn_locs) //If we can't find THAT, then just give up and cry return MAP_ERROR var/mob/living/simple_animal/revenant/revvie = new /mob/living/simple_animal/revenant/(pick(spawn_locs)) - player_mind.transfer_to(revvie) - player_mind.assigned_role = "revenant" - player_mind.special_role = "Revenant" - ticker.mode.traitors |= player_mind - message_admins("[player_mind.key] has been made into a revenant by an event.") - log_game("[player_mind.key] was spawned as a revenant by an event.") + revvie.key = selected.key + message_admins("[revvie.key] has been made into a revenant by an event.") + log_game("[revvie.key] was spawned as a revenant by an event.") spawned_mobs += revvie return SUCCESSFUL_SPAWN diff --git a/code/game/gamemodes/miniantags/slaughter/slaughter.dm b/code/game/gamemodes/miniantags/slaughter/slaughter.dm index f63dfae041..c4f1b50b3d 100644 --- a/code/game/gamemodes/miniantags/slaughter/slaughter.dm +++ b/code/game/gamemodes/miniantags/slaughter/slaughter.dm @@ -13,7 +13,7 @@ icon_state = "daemon" icon_living = "daemon" speed = 1 - a_intent = "harm" + a_intent = INTENT_HARM stop_automated_movement = 1 status_flags = CANPUSH attack_sound = 'sound/magic/demon_attack1.ogg' @@ -28,6 +28,7 @@ health = 200 healable = 0 environment_smash = 1 + obj_damage = 50 melee_damage_lower = 30 melee_damage_upper = 30 see_in_dark = 8 @@ -63,6 +64,7 @@ icon = 'icons/obj/surgery.dmi' name = "pile of viscera" desc = "A repulsive pile of guts and gore." + gender = NEUTER random_icon_states = list("innards") /mob/living/simple_animal/slaughter/phasein() diff --git a/code/game/gamemodes/miniantags/slaughter/slaughterevent.dm b/code/game/gamemodes/miniantags/slaughter/slaughterevent.dm index 569216b741..1d560ed975 100644 --- a/code/game/gamemodes/miniantags/slaughter/slaughterevent.dm +++ b/code/game/gamemodes/miniantags/slaughter/slaughterevent.dm @@ -17,7 +17,7 @@ if(!candidates.len) return NOT_ENOUGH_PLAYERS - var/mob/dead/selected = popleft(candidates) + var/mob/dead/selected = pick_n_take(candidates) var/datum/mind/player_mind = new /datum/mind(selected.key) player_mind.active = 1 diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm index c8c8eea898..4c59cdd53b 100644 --- a/code/game/gamemodes/nuclear/nuclear.dm +++ b/code/game/gamemodes/nuclear/nuclear.dm @@ -10,18 +10,18 @@ recommended_enemies = 5 antag_flag = ROLE_OPERATIVE enemy_minimum_age = 14 + + announce_span = "danger" + announce_text = "Syndicate forces are approaching the station in an attempt to destroy it!\n\ + Operatives: Secure the nuclear authentication disk and use your nuke to destroy the station.\n\ + Crew: Defend the nuclear authentication disk and ensure that it leaves with you on the emergency shuttle." + var/const/agents_possible = 5 //If we ever need more syndicate agents. var/nukes_left = 1 // Call 3714-PRAY right now and order more nukes! Limited offer! var/nuke_off_station = 0 //Used for tracking if the syndies actually haul the nuke to the station var/syndies_didnt_escape = 0 //Used for tracking if the syndies got the shuttle off of the z-level - -/datum/game_mode/nuclear/announce() - world << "The current game mode is - Nuclear Emergency!" - world << "A [syndicate_name()] Strike Force is approaching [station_name()]!" - world << "A nuclear explosive was being transported by Nanotrasen to a military base. The transport ship mysteriously lost contact with Space Traffic Control (STC). About that time a strange disk was discovered around [station_name()]. It was identified by Nanotrasen as a nuclear auth. disk and now Syndicate Operatives have arrived to retake the disk and detonate SS13! Also, most likely Syndicate star ships are in the vicinity so take care not to lose the disk!\nSyndicate: Reclaim the disk and detonate the nuclear bomb anywhere on SS13.\nPersonnel: Hold the disk and escape with the disk on the shuttle!" - /datum/game_mode/nuclear/pre_setup() var/n_players = num_players() var/n_agents = min(round(n_players / 10, 1), agents_possible) @@ -67,7 +67,7 @@ synd_spawn += get_turf(A) continue - var/nuke_code = "[rand(10000, 99999)]" + var/nuke_code = random_nukecode() var/leader_selected = 0 var/agent_number = 1 var/spawnpos = 1 @@ -110,7 +110,7 @@ synd_mind.current << "In your hand you will find a special item capable of triggering a greater challenge for your team. Examine it carefully and consult with your fellow operatives before activating it." var/obj/item/device/nuclear_challenge/challenge = new /obj/item/device/nuclear_challenge - synd_mind.current.equip_to_slot_or_del(challenge, slot_r_hand) + synd_mind.current.put_in_hands_or_del(challenge) var/list/foundIDs = synd_mind.current.search_contents_for(/obj/item/weapon/card/id) if(foundIDs.len) @@ -130,7 +130,7 @@ P.name = "nuclear bomb code" var/mob/living/carbon/human/H = synd_mind.current P.loc = H.loc - H.equip_to_slot_or_del(P, slot_r_hand, 0) + H.put_in_hands_or_del(P) H.update_icons() else nuke_code = "code will be provided later" @@ -147,11 +147,7 @@ /datum/game_mode/proc/greet_syndicate(datum/mind/syndicate, you_are=1) if(you_are) syndicate.current << "You are a [syndicate_name()] agent!" - var/obj_count = 1 - for(var/datum/objective/objective in syndicate.objectives) - syndicate.current << "Objective #[obj_count]: [objective.explanation_text]" - obj_count++ - return + syndicate.announce_objectives() /datum/game_mode/proc/equip_syndicate(mob/living/carbon/human/synd_mob, telecrystals = TRUE) synd_mob.set_species(/datum/species/human) //Plasamen burn up otherwise, and lizards are vulnerable to asimov AIs @@ -170,7 +166,7 @@ /datum/game_mode/proc/are_operatives_dead() for(var/datum/mind/operative_mind in syndicates) - if (istype(operative_mind.current,/mob/living/carbon/human) && (operative_mind.current.stat!=2)) + if(ishuman(operative_mind.current) && (operative_mind.current.stat!=2)) return 0 return 1 @@ -199,51 +195,77 @@ //derp //Used for tracking if the syndies actually haul the nuke to the station //no //herp //Used for tracking if the syndies got the shuttle off of the z-level //NO, DON'T FUCKING NAME VARS LIKE THIS - if (!disk_rescued && station_was_nuked && !syndies_didnt_escape) + + if(nuke_off_station == NUKE_SYNDICATE_BASE) + feedback_set_details("round_end_result","loss - syndicate nuked - disk secured") + world << "Humiliating Syndicate Defeat" + world << "The crew of [station_name()] gave [syndicate_name()] operatives back their bomb! The syndicate base was destroyed! Next time, don't lose the nuke!" + + ticker.news_report = NUKE_SYNDICATE_BASE + + else if(!disk_rescued && station_was_nuked && !syndies_didnt_escape) feedback_set_details("round_end_result","win - syndicate nuke") world << "Syndicate Major Victory!" world << "[syndicate_name()] operatives have destroyed [station_name()]!" + ticker.news_report = STATION_NUKED + else if (!disk_rescued && station_was_nuked && syndies_didnt_escape) feedback_set_details("round_end_result","halfwin - syndicate nuke - did not evacuate in time") world << "Total Annihilation" world << "[syndicate_name()] operatives destroyed [station_name()] but did not leave the area in time and got caught in the explosion. Next time, don't lose the disk!" + ticker.news_report = STATION_NUKED + else if (!disk_rescued && !station_was_nuked && nuke_off_station && !syndies_didnt_escape) feedback_set_details("round_end_result","halfwin - blew wrong station") world << "Crew Minor Victory" world << "[syndicate_name()] operatives secured the authentication disk but blew up something that wasn't [station_name()]. Next time, don't lose the disk!" + ticker.news_report = NUKE_MISS + else if (!disk_rescued && !station_was_nuked && nuke_off_station && syndies_didnt_escape) feedback_set_details("round_end_result","halfwin - blew wrong station - did not evacuate in time") world << "[syndicate_name()] operatives have earned Darwin Award!" world << "[syndicate_name()] operatives blew up something that wasn't [station_name()] and got caught in the explosion. Next time, don't lose the disk!" + ticker.news_report = NUKE_MISS + else if ((disk_rescued || SSshuttle.emergency.mode != SHUTTLE_ENDGAME) && are_operatives_dead()) feedback_set_details("round_end_result","loss - evacuation - disk secured - syndi team dead") world << "Crew Major Victory!" world << "The Research Staff has saved the disc and killed the [syndicate_name()] Operatives" + ticker.news_report = OPERATIVES_KILLED + else if (disk_rescued) feedback_set_details("round_end_result","loss - evacuation - disk secured") world << "Crew Major Victory" world << "The Research Staff has saved the disc and stopped the [syndicate_name()] Operatives!" + ticker.news_report = OPERATIVES_KILLED + else if (!disk_rescued && are_operatives_dead()) feedback_set_details("round_end_result","halfwin - evacuation - disk not secured") world << "Neutral Victory!" world << "The Research Staff failed to secure the authentication disk but did manage to kill most of the [syndicate_name()] Operatives!" + ticker.news_report = OPERATIVE_SKIRMISH + else if (!disk_rescued && crew_evacuated) feedback_set_details("round_end_result","halfwin - detonation averted") world << "Syndicate Minor Victory!" world << "[syndicate_name()] operatives recovered the abandoned authentication disk but detonation of [station_name()] was averted. Next time, don't lose the disk!" + ticker.news_report = OPERATIVE_SKIRMISH + else if (!disk_rescued && !crew_evacuated) feedback_set_details("round_end_result","halfwin - interrupted") world << "Neutral Victory" world << "Round was mysteriously interrupted!" + ticker.news_report = OPERATIVE_SKIRMISH + ..() return @@ -288,6 +310,9 @@ synd_mind.current.real_name = synd_mind.name return +/proc/is_nuclear_operative(mob/M) + return M && istype(M) && M.mind && ticker && ticker.mode && M.mind in ticker.mode.syndicates + /datum/outfit/syndicate name = "Syndicate Operative - Basic" @@ -296,9 +321,9 @@ gloves = /obj/item/clothing/gloves/combat back = /obj/item/weapon/storage/backpack ears = /obj/item/device/radio/headset/syndicate/alt - l_pocket = /obj/item/weapon/pinpointer/nukeop + l_pocket = /obj/item/weapon/pinpointer/syndicate id = /obj/item/weapon/card/id/syndicate - belt = /obj/item/weapon/gun/projectile/automatic/pistol + belt = /obj/item/weapon/gun/ballistic/automatic/pistol backpack_contents = list(/obj/item/weapon/storage/box/syndie=1) var/tc = 25 @@ -333,10 +358,10 @@ suit = /obj/item/clothing/suit/space/hardsuit/syndi r_pocket = /obj/item/weapon/tank/internals/emergency_oxygen/engi belt = /obj/item/weapon/storage/belt/military - r_hand = /obj/item/weapon/gun/projectile/automatic/shotgun/bulldog + r_hand = /obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog backpack_contents = list(/obj/item/weapon/storage/box/syndie=1,\ /obj/item/weapon/tank/jetpack/oxygen/harness=1,\ - /obj/item/weapon/gun/projectile/automatic/pistol=1) + /obj/item/weapon/gun/ballistic/automatic/pistol=1) /datum/outfit/syndicate/full/post_equip(mob/living/carbon/human/H) ..() diff --git a/code/game/gamemodes/nuclear/nuclear_challenge.dm b/code/game/gamemodes/nuclear/nuclear_challenge.dm index cfe00c03df..a1d296f715 100644 --- a/code/game/gamemodes/nuclear/nuclear_challenge.dm +++ b/code/game/gamemodes/nuclear/nuclear_challenge.dm @@ -10,24 +10,42 @@ desc = "Use to send a declaration of hostilities to the target, delaying your shuttle departure for 20 minutes while they prepare for your assault. \ Such a brazen move will attract the attention of powerful benefactors within the Syndicate, who will supply your team with a massive amount of bonus telecrystals. \ Must be used within five minutes, or your benefactors will lose interest." - var/declaring_war = 0 + var/declaring_war = FALSE /obj/item/device/nuclear_challenge/attack_self(mob/living/user) if(!check_allowed(user)) return - declaring_war = 1 - var/are_you_sure = alert(user, "Consult your team carefully before you declare war on [station_name()]]. Are you sure you want to alert the enemy crew?", "Declare war?", "Yes", "No") - declaring_war = 0 - if(are_you_sure == "No") - user << "On second thought, the element of surprise isn't so bad after all." - return + declaring_war = TRUE + var/are_you_sure = alert(user, "Consult your team carefully before you declare war on [station_name()]]. Are you sure you want to alert the enemy crew? You have [-round((world.time-round_start_time - CHALLENGE_TIME_LIMIT)/10)] seconds to decide", "Declare war?", "Yes", "No") + declaring_war = FALSE + if(!check_allowed(user)) return - declaring_war = 1 + if(are_you_sure == "No") + user << "On second thought, the element of surprise isn't so bad after all." + return + var/war_declaration = "[user.real_name] has declared his intent to utterly destroy [station_name()] with a nuclear device, and dares the crew to try and stop them." + + declaring_war = TRUE + var/custom_threat = alert(user, "Do you want to customize your declaration?", "Customize?", "Yes", "No") + declaring_war = FALSE + + if(!check_allowed(user)) + return + + if(custom_threat == "Yes") + declaring_war = TRUE + war_declaration = stripped_input(user, "Insert your custom declaration", "Declaration") + declaring_war = FALSE + + if(!check_allowed(user) || !war_declaration) + return + priority_announce(war_declaration, title = "Declaration of War", sound = 'sound/machines/Alarm.ogg') + user << "You've attracted the attention of powerful forces within the syndicate. A bonus bundle of telecrystals has been granted to your team. Great things await you if you complete the mission." for(var/V in syndicate_shuttle_boards) @@ -43,6 +61,7 @@ /obj/item/device/nuclear_challenge/proc/check_allowed(mob/living/user) if(declaring_war) + user << "You are already in the process of declaring war! Make your mind up." return 0 if(player_list.len < CHALLENGE_MIN_PLAYERS) user << "The enemy crew is too small to be worth declaring war on." diff --git a/code/game/gamemodes/nuclear/nuclearbomb.dm b/code/game/gamemodes/nuclear/nuclearbomb.dm index ee18eee594..0537bde8c2 100644 --- a/code/game/gamemodes/nuclear/nuclearbomb.dm +++ b/code/game/gamemodes/nuclear/nuclearbomb.dm @@ -18,17 +18,24 @@ var/bomb_set icon = 'icons/obj/machines/nuke.dmi' icon_state = "nuclearbomb_base" density = 1 + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF - var/timeleft = 60 - var/timing = 0 + var/timer_set = 60 + var/default_timer_set = 60 + var/minimum_timer_set = 60 + var/maximum_timer_set = 3600 + var/ui_style = "nanotrasen" + + var/numeric_input = "" + var/timing = FALSE + var/exploding = FALSE + var/detonation_timer = null var/r_code = "ADMIN" - var/code = "" - var/yes_code = 0 - var/safety = 1 + var/yes_code = FALSE + var/safety = TRUE var/obj/item/weapon/disk/nuclear/auth = null use_power = 0 var/previous_level = "" - var/lastentered = "" var/obj/item/nuke_core/core = null var/deconstruction_state = NUKESTATE_INTACT var/image/lights = null @@ -48,19 +55,29 @@ var/bomb_set /obj/machinery/nuclearbomb/Destroy() poi_list -= src nuke_list -= src - qdel(countdown) + if(countdown) + qdel(countdown) countdown = null . = ..() +/obj/machinery/nuclearbomb/examine(mob/user) + . = ..() + if(exploding) + user << "It is in the process of exploding. Perhaps reviewing your \ + affairs is in order." + if(timing) + user << "There are [get_time_left()] seconds until \ + detonation." + /obj/machinery/nuclearbomb/selfdestruct name = "station self-destruct terminal" desc = "For when it all gets too much to bear. Do not taunt." icon = 'icons/obj/machines/nuke_terminal.dmi' icon_state = "nuclearbomb_base" - anchored = 1 //stops it being moved - layer = MOB_LAYER + anchored = TRUE //stops it being moved /obj/machinery/nuclearbomb/syndicate + //ui_style = "syndicate" // actually the nuke op bomb is a stole nt bomb /obj/machinery/nuclearbomb/syndicate/New() var/obj/machinery/nuclearbomb/existing = locate("syndienuke") @@ -75,7 +92,7 @@ var/bomb_set if (istype(I, /obj/item/weapon/disk/nuclear)) if(!user.drop_item()) return - I.loc = src + I.forceMove(src) auth = I add_fingerprint(user) return @@ -85,7 +102,7 @@ var/bomb_set if(istype(I, /obj/item/weapon/screwdriver/nuke)) playsound(loc, I.usesound, 100, 1) user << "You start removing [src]'s front panel's screws..." - if(do_after(user, 60/I.toolspeed,target=src)) + if(do_after(user, 60*I.toolspeed,target=src)) deconstruction_state = NUKESTATE_UNSCREWED user << "You remove the screws from [src]'s front panel." update_icon() @@ -94,7 +111,7 @@ var/bomb_set if(istype(I, /obj/item/weapon/crowbar)) user << "You start removing [src]'s front panel..." playsound(loc, I.usesound, 100, 1) - if(do_after(user,30/I.toolspeed,target=src)) + if(do_after(user,30*I.toolspeed,target=src)) user << "You remove [src]'s front panel." deconstruction_state = NUKESTATE_PANEL_REMOVED update_icon() @@ -105,7 +122,7 @@ var/bomb_set playsound(loc, I.usesound, 100, 1) user << "You start cutting [src]'s inner plate..." if(welder.remove_fuel(1,user)) - if(do_after(user,80/I.toolspeed,target=src)) + if(do_after(user,80*I.toolspeed,target=src)) user << "You cut [src]'s inner plate." deconstruction_state = NUKESTATE_WELDED update_icon() @@ -114,7 +131,7 @@ var/bomb_set if(istype(I, /obj/item/weapon/crowbar)) user << "You start prying off [src]'s inner plate..." playsound(loc, I.usesound, 100, 1) - if(do_after(user,50/I.toolspeed,target=src)) + if(do_after(user,50*I.toolspeed,target=src)) user << "You pry off [src]'s inner plate. You can see the core's green glow!" deconstruction_state = NUKESTATE_CORE_EXPOSED update_icon() @@ -148,12 +165,12 @@ var/bomb_set else user << "You need more metal to do that!" return - return ..() + . = ..() /obj/machinery/nuclearbomb/proc/get_nuke_state() - if(timing < 0) + if(exploding) return NUKE_ON_EXPLODING - if(timing > 0) + if(timing) return NUKE_ON_TIMING if(safety) return NUKE_OFF_LOCKED @@ -209,102 +226,127 @@ var/bomb_set add_overlay(lights) /obj/machinery/nuclearbomb/process() - if (timing > 0) - countdown.start() - bomb_set = 1 //So long as there is one nuke timing, it means one nuke is armed. - timeleft-- - if (timeleft <= 0) + if(timing && !exploding) + bomb_set = TRUE + if(detonation_timer < world.time) explode() else - var/volume = (timeleft <= 20 ? 30 : 5) + var/volume = (get_time_left() <= 20 ? 30 : 5) playsound(loc, 'sound/items/timer.ogg', volume, 0) - for(var/mob/M in viewers(1, src)) - if ((M.client && M.machine == src)) - attack_hand(M) - else - countdown.stop() /obj/machinery/nuclearbomb/attack_paw(mob/user) return attack_hand(user) -/obj/machinery/nuclearbomb/attack_ai(mob/user) - return +/obj/machinery/nuclearbomb/ui_interact(mob/user, ui_key="main", datum/tgui/ui=null, force_open=0, datum/tgui/master_ui=null, datum/ui_state/state=default_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "nuclear_bomb", name, 500, 600, master_ui, state) + ui.set_style(ui_style) + ui.open() -/obj/machinery/nuclearbomb/attack_hand(mob/user) - user.set_machine(src) - var/dat = text("\nAuth. Disk: []
    ", src, (auth ? "++++++++++" : "----------")) - if (auth) - if (yes_code) - dat += text("\nStatus: []-[]
    \nTimer: []
    \n
    \nTimer: [] Toggle
    \nTime: - - [] + +
    \n
    \nSafety: [] Toggle
    \nAnchor: [] Toggle
    \n", (timing ? "Func/Set" : "Functional"), (safety ? "Safe" : "Engaged"), timeleft, (timing ? "On" : "Off"), src, src, src, timeleft, src, src, (safety ? "On" : "Off"), src, (anchored ? "Engaged" : "Off"), src) +/obj/machinery/nuclearbomb/ui_data(mob/user) + var/list/data = list() + data["disk_present"] = auth + data["code_approved"] = yes_code + var/first_status + if(auth) + if(yes_code) + first_status = timing ? "Func/Set" : "Functional" else - dat += text("\nStatus: Auth. S2-[]
    \nTimer: []
    \n
    \nTimer: [] Toggle
    \nTime: - - [] + +
    \n
    \n[] Safety: Toggle
    \nAnchor: [] Toggle
    \n", (safety ? "Safe" : "Engaged"), timeleft, (timing ? "On" : "Off"), timeleft, (safety ? "On" : "Off"), (anchored ? "Engaged" : "Off")) + first_status = "Auth S2." else - if (timing) - dat += text("\nStatus: Set-[]
    \nTimer: []
    \n
    \nTimer: [] Toggle
    \nTime: - - [] + +
    \n
    \nSafety: [] Toggle
    \nAnchor: [] Toggle
    \n", (safety ? "Safe" : "Engaged"), timeleft, (timing ? "On" : "Off"), timeleft, (safety ? "On" : "Off"), (anchored ? "Engaged" : "Off")) + if(timing) + first_status = "Set" else - dat += text("\nStatus: Auth. S1-[]
    \nTimer: []
    \n
    \nTimer: [] Toggle
    \nTime: - - [] + +
    \n
    \nSafety: [] Toggle
    \nAnchor: [] Toggle
    \n", (safety ? "Safe" : "Engaged"), timeleft, (timing ? "On" : "Off"), timeleft, (safety ? "On" : "Off"), (anchored ? "Engaged" : "Off")) - var/message = "AUTH" - if (auth) - message = text("[]", code) - if (yes_code) - message = "*****" - dat += text("
    \n>[]
    \n123
    \n456
    \n789
    \nR0E
    \n
    ", message, src, src, src, src, src, src, src, src, src, src, src, src) - var/datum/browser/popup = new(user, "nuclearbomb", name, 300, 400) - popup.set_content(dat) - popup.open() + first_status = "Auth S1." + var/second_status = safety ? "Safe" : "Engaged" + data["status1"] = first_status + data["status2"] = second_status + data["anchored"] = anchored + data["safety"] = safety + data["timing"] = timing + data["time_left"] = get_time_left() -/obj/machinery/nuclearbomb/Topic(href, href_list) + data["timer_set"] = timer_set + data["timer_is_not_default"] = timer_set != default_timer_set + data["timer_is_not_min"] = timer_set != minimum_timer_set + data["timer_is_not_max"] = timer_set != maximum_timer_set + + var/message = "AUTH" + if(auth) + message = "[numeric_input]" + if(yes_code) + message = "*****" + data["message"] = message + + return data + +/obj/machinery/nuclearbomb/ui_act(action, params) if(..()) return - usr.set_machine(src) - if (href_list["auth"]) - if (auth) - auth.loc = loc - yes_code = 0 - auth = null - else - var/obj/item/I = usr.get_active_hand() - if (istype(I, /obj/item/weapon/disk/nuclear)) - usr.drop_item() - I.loc = src - auth = I - if (auth) - if (href_list["type"]) - if (href_list["type"] == "E") - if (code == r_code) - yes_code = 1 - code = null - else - code = "ERROR" - else - if (href_list["type"] == "R") - yes_code = 0 - code = null - else - lastentered = text("[]", href_list["type"]) - if (text2num(lastentered) == null) - var/turf/LOC = get_turf(usr) - message_admins("[key_name_admin(usr)] (FLW) tried to exploit a nuclear bomb by entering non-numerical codes: [lastentered] ! ([LOC ? "JMP" : "null"])", 0) - log_admin("EXPLOIT : [key_name(usr)] tried to exploit a nuclear bomb by entering non-numerical codes: [lastentered] !") - else - code += lastentered - if (length(code) > 5) - code = "ERROR" - if (yes_code) - if (href_list["time"]) - var/time = text2num(href_list["time"]) - timeleft += time - timeleft = min(max(round(timeleft), 60), 600) - if (href_list["timer"]) - set_active() - if (href_list["safety"]) + switch(action) + if("eject_disk") + if(auth && auth.loc == src) + auth.forceMove(get_turf(src)) + auth = null + . = TRUE + if("insert_disk") + if(!auth) + var/obj/item/I = usr.get_active_held_item() + if(istype(I, /obj/item/weapon/disk/nuclear)) + usr.drop_item() + I.forceMove(src) + auth = I + . = TRUE + if("keypad") + if(auth) + var/digit = params["digit"] + switch(digit) + if("R") + numeric_input = "" + yes_code = FALSE + . = TRUE + if("E") + if(numeric_input == r_code) + numeric_input = "" + yes_code = TRUE + . = TRUE + else + numeric_input = "ERROR" + if("0","1","2","3","4","5","6","7","8","9") + if(numeric_input != "ERROR") + numeric_input += digit + if(length(numeric_input) > 5) + numeric_input = "ERROR" + . = TRUE + if("timer") + if(auth && yes_code) + var/change = params["change"] + if(change == "reset") + timer_set = default_timer_set + else if(change == "decrease") + timer_set = max(minimum_timer_set, timer_set - 10) + else if(change == "increase") + timer_set = min(maximum_timer_set, timer_set + 10) + else if(change == "input") + var/user_input = input(usr, "Set time to detonation.", name) as null|num + if(!user_input) + return + var/N = text2num(user_input) + if(!N) + return + timer_set = Clamp(N,minimum_timer_set,maximum_timer_set) + . = TRUE + if("safety") + if(auth && yes_code) set_safety() - if (href_list["anchor"]) + if("anchor") + if(auth && yes_code) set_anchor() - add_fingerprint(usr) - for(var/mob/M in viewers(1, src)) - if ((M.client && M.machine == src)) - attack_hand(M) + if("toggle_timer") + if(auth && yes_code && !safety) + set_active() + /obj/machinery/nuclearbomb/proc/set_anchor() if(!isinspace()) @@ -317,8 +359,13 @@ var/bomb_set if(safety) if(timing) set_security_level(previous_level) - timing = 0 - bomb_set = 0 + for(var/obj/item/weapon/pinpointer/syndicate/S in pinpointer_list) + S.switch_mode_to(initial(S.mode)) + S.nuke_warning = FALSE + timing = FALSE + bomb_set = TRUE + detonation_timer = null + countdown.stop() update_icon() /obj/machinery/nuclearbomb/proc/set_active() @@ -328,36 +375,51 @@ var/bomb_set timing = !timing if(timing) previous_level = get_security_level() - bomb_set = 1 + bomb_set = TRUE set_security_level("delta") + detonation_timer = world.time + (timer_set * 10) + for(var/obj/item/weapon/pinpointer/syndicate/S in pinpointer_list) + S.switch_mode_to(TRACK_INFILTRATOR) + countdown.start() else - bomb_set = 0 + bomb_set = FALSE + detonation_timer = null set_security_level(previous_level) + for(var/obj/item/weapon/pinpointer/syndicate/S in pinpointer_list) + S.switch_mode_to(initial(S.mode)) + S.nuke_warning = FALSE + countdown.stop() update_icon() -/obj/machinery/nuclearbomb/ex_act(severity, target) - return - -/obj/machinery/nuclearbomb/blob_act(obj/effect/blob/B) - if (timing == -1) - return +/obj/machinery/nuclearbomb/proc/get_time_left() + if(timing) + . = round(max(0, detonation_timer - world.time) / 10, 1) else - return ..() + . = timer_set +/obj/machinery/nuclearbomb/blob_act(obj/structure/blob/B) + if(exploding) + return + qdel(src) + +/obj/machinery/nuclearbomb/tesla_act(power, explosive) + ..() + if(explosive) + qdel(src)//like the singulo, tesla deletes it. stops it from exploding over and over #define NUKERANGE 127 /obj/machinery/nuclearbomb/proc/explode() - if (safety) - timing = 0 + if(safety) + timing = FALSE return - timing = -1 - yes_code = 0 - safety = 1 + exploding = TRUE + yes_code = FALSE + safety = TRUE update_icon() for(var/mob/M in player_list) M << 'sound/machines/Alarm.ogg' - if (ticker && ticker.mode) + if(ticker && ticker.mode) ticker.mode.explosion_in_progress = 1 sleep(100) @@ -370,14 +432,16 @@ var/bomb_set var/off_station = 0 var/turf/bomb_location = get_turf(src) + var/area/A = get_area(bomb_location) if(bomb_location && (bomb_location.z == ZLEVEL_STATION)) - var/area/A = get_area(bomb_location) if(istype(A, /area/space)) - off_station = 1 + off_station = NUKE_MISS_STATION if((bomb_location.x < (128-NUKERANGE)) || (bomb_location.x > (128+NUKERANGE)) || (bomb_location.y < (128-NUKERANGE)) || (bomb_location.y > (128+NUKERANGE))) - off_station = 1 + off_station = NUKE_MISS_STATION + else if(istype(A, /area/syndicate_mothership) || (istype(A,/area/shuttle/syndicate) && bomb_location.z == ZLEVEL_CENTCOM)) + off_station = NUKE_SYNDICATE_BASE else - off_station = 2 + off_station = NUKE_NEAR_MISS if(ticker.mode && ticker.mode.name == "nuclear emergency") var/obj/docking_port/mobile/Shuttle = SSshuttle.getShuttle("syndicate") @@ -421,7 +485,7 @@ This is here to make the tiles around the station mininuke change when it's arme //==========DAT FUKKEN DISK=============== /obj/item/weapon/disk icon = 'icons/obj/module.dmi' - w_class = 1 + w_class = WEIGHT_CLASS_TINY item_state = "card-id" icon_state = "datadisk0" @@ -429,26 +493,47 @@ This is here to make the tiles around the station mininuke change when it's arme name = "nuclear authentication disk" desc = "Better keep this safe." icon_state = "nucleardisk" + persistence_replacement = /obj/item/weapon/disk/fakenucleardisk + obj_integrity = 250 + max_integrity = 250 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 30, bio = 0, rad = 0, fire = 100, acid = 100) + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF /obj/item/weapon/disk/nuclear/New() ..() poi_list |= src START_PROCESSING(SSobj, src) +/obj/item/weapon/disk/nuclear/attackby(obj/item/I, mob/living/user, params) + if(istype(I, /obj/item/weapon/claymore/highlander)) + var/obj/item/weapon/claymore/highlander/H = I + if(H.nuke_disk) + user << "Wait... what?" + qdel(H.nuke_disk) + H.nuke_disk = null + return + user.visible_message("[user] captures [src]!", "You've got the disk! Defend it with your life!") + loc = H + H.nuke_disk = src + return 1 + return ..() + /obj/item/weapon/disk/nuclear/suicide_act(mob/user) - user.visible_message("[user] is \ - going delta! It looks like they're comitting suicide.") + user.visible_message("[user] is going delta! It looks like [user.p_theyre()] trying to commit suicide!") playsound(user.loc, 'sound/machines/Alarm.ogg', 50, -1, 1) var/end_time = world.time + 100 - var/orig_color = user.color + var/newcolor = "#00FF00" while(world.time < end_time) if(!user) return - user.color = RANDOM_COLOUR + if(newcolor == "#FF0000") + newcolor = "#00FF00" + else + newcolor = "#FF0000" + user.add_atom_colour(newcolor, ADMIN_COLOUR_PRIORITY) sleep(1) - user.color = orig_color - user.visible_message("[user] was destroyed \ - by the nuclear blast!") + user.remove_atom_colour(ADMIN_COLOUR_PRIORITY) + user.visible_message("[user] was destroyed by the nuclear blast!") return OXYLOSS /obj/item/weapon/disk/nuclear/process() @@ -458,8 +543,11 @@ This is here to make the tiles around the station mininuke change when it's arme else get(src, /mob) << "You can't help but feel that you just lost something back there..." var/turf/targetturf = relocate() - message_admins("[src] has been moved out of bounds in ([diskturf ? "[diskturf.x], [diskturf.y] ,[diskturf.z] - JMP":"nonexistent location"]). Moving it to ([targetturf.x], [targetturf.y], [targetturf.z] - JMP).") - log_game("[src] has been moved out of bounds in ([diskturf ? "[diskturf.x], [diskturf.y] ,[diskturf.z]":"nonexistent location"]). Moving it to ([targetturf.x], [targetturf.y], [targetturf.z]).") + message_admins("[src] has been moved out of bounds in \ + [ADMIN_COORDJMP(diskturf)]. Moving it to \ + [ADMIN_COORDJMP(targetturf)].") + log_game("[src] has been moved out of bounds in [COORD(diskturf)]. \ + Moving it to [COORD(targetturf)].") /obj/item/weapon/disk/nuclear/proc/relocate() var/targetturf = find_safe_turf(ZLEVEL_STATION) @@ -483,13 +571,21 @@ This is here to make the tiles around the station mininuke change when it's arme var/turf/diskturf = get_turf(src) if(force) - message_admins("[src] has been !!force deleted!! in ([diskturf ? "[diskturf.x], [diskturf.y] ,[diskturf.z] - JMP":"nonexistent location"]).") - log_game("[src] has been !!force deleted!! in ([diskturf ? "[diskturf.x], [diskturf.y] ,[diskturf.z]":"nonexistent location"]).") + message_admins("[src] has been !!force deleted!! in \ + [ADMIN_COORDJMP(diskturf)].") + log_game("[src] has been !!force deleted!! in [COORD(diskturf)].") poi_list -= src STOP_PROCESSING(SSobj, src) return ..() var/turf/targetturf = relocate() - message_admins("[src] has been destroyed in ([diskturf ? "[diskturf.x], [diskturf.y] ,[diskturf.z] - JMP":"nonexistent location"]). Moving it to ([targetturf.x], [targetturf.y], [targetturf.z] - JMP).") - log_game("[src] has been destroyed in ([diskturf ? "[diskturf.x], [diskturf.y] ,[diskturf.z]":"nonexistent location"]). Moving it to ([targetturf.x], [targetturf.y], [targetturf.z]).") + message_admins("[src] has been destroyed in [ADMIN_COORDJMP(diskturf)]. \ + Moving it to [ADMIN_COORDJMP(targetturf)].") + log_game("[src] has been destroyed in [COORD(diskturf)]. Moving it to \ + [COORD(targetturf)].") return QDEL_HINT_LETMELIVE //Cancel destruction unless forced + +/obj/item/weapon/disk/fakenucleardisk + name = "cheap plastic imitation of the nuclear authentication disk" + desc = "Broken dreams and a faint oder of cheese." + icon_state = "nucleardisk" diff --git a/code/game/gamemodes/nuclear/pinpointer.dm b/code/game/gamemodes/nuclear/pinpointer.dm index 560d2f3590..1c1ca2f9d7 100644 --- a/code/game/gamemodes/nuclear/pinpointer.dm +++ b/code/game/gamemodes/nuclear/pinpointer.dm @@ -1,297 +1,172 @@ +//Pinpointers are used to track atoms from a distance as long as they're on the same z-level. The captain and nuke ops have ones that track the nuclear authentication disk. /obj/item/weapon/pinpointer name = "pinpointer" + desc = "A handheld tracking device that locks onto certain signals." icon = 'icons/obj/device.dmi' icon_state = "pinoff" flags = CONDUCT slot_flags = SLOT_BELT - w_class = 2 + w_class = WEIGHT_CLASS_SMALL item_state = "electronic" throw_speed = 3 throw_range = 7 - materials = list(MAT_METAL=500) - var/obj/item/weapon/disk/nuclear/the_disk = null - var/active = 0 + materials = list(MAT_METAL = 500, MAT_GLASS = 250) + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF + var/active = FALSE + var/atom/movable/target = null //The thing we're searching for + var/atom/movable/constant_target = null //The thing we're always focused on, if we're in the right mode + var/target_x = 0 //The target coordinates if we're tracking those + var/target_y = 0 + var/nuke_warning = FALSE // If we've set off a miniature alarm about an armed nuke + var/mode = TRACK_NUKE_DISK //What are we looking for? /obj/item/weapon/pinpointer/New() ..() pinpointer_list += src /obj/item/weapon/pinpointer/Destroy() - active = 0 - pinpointer_list -= src + STOP_PROCESSING(SSfastprocess, src) return ..() -/obj/item/weapon/pinpointer/attack_self() - if(!active) - active = 1 - workdisk() - usr << "You activate the pinpointer." +/obj/item/weapon/pinpointer/attack_self(mob/living/user) + active = !active + user.visible_message("[user] [active ? "" : "de"]activates their pinpointer.", "You [active ? "" : "de"]activate your pinpointer.") + playsound(user, 'sound/items/Screwdriver2.ogg', 50, 1) + icon_state = "pin[active ? "onnull" : "off"]" + if(active) + START_PROCESSING(SSfastprocess, src) else - active = 0 - icon_state = "pinoff" - usr << "You deactivate the pinpointer." + target = null //Restarting the pinpointer forces a target reset + STOP_PROCESSING(SSfastprocess, src) -/obj/item/weapon/pinpointer/proc/scandisk() - if(!the_disk) - the_disk = locate() - -/obj/item/weapon/pinpointer/proc/point_at(atom/target, spawnself = 1) - if(!active) - return - if(!target) - icon_state = "pinonnull" - return - - var/turf/T = get_turf(target) - var/turf/L = get_turf(src) - - if(T.z != L.z) - icon_state = "pinonnull" - else - setDir(get_dir(L, T)) - switch(get_dist(L, T)) - if(-1) - icon_state = "pinondirect" - if(1 to 8) - icon_state = "pinonclose" - if(9 to 16) - icon_state = "pinonmedium" - if(16 to INFINITY) - icon_state = "pinonfar" - if(spawnself) - spawn(5) - .() - -/obj/item/weapon/pinpointer/proc/workdisk() - scandisk() - point_at(the_disk, 0) - spawn(5) - .() +/obj/item/weapon/pinpointer/attackby(obj/item/I, mob/living/user, params) + if(mode != TRACK_ATOM) + return ..() + user.visible_message("[user] tunes [src] to [I].", "You fine-tune [src]'s tracking to track [I].") + playsound(src, 'sound/machines/click.ogg', 50, 1) + constant_target = I /obj/item/weapon/pinpointer/examine(mob/user) ..() + var/msg = "Its tracking indicator reads " + switch(mode) + if(TRACK_NUKE_DISK) + msg += "\"nuclear_disk\"." + if(TRACK_MALF_AI) + msg += "\"01000001 01001001\"." + if(TRACK_INFILTRATOR) + msg += "\"vasvygengbefuvc\"." + if(TRACK_OPERATIVES) + msg += "\"[target ? "Operative [target]" : "friends"]\"." + if(TRACK_ATOM) + msg += "\"[initial(constant_target.name)]\"." + if(TRACK_COORDINATES) + msg += "\"([target_x], [target_y])\"." + else + msg = "Its tracking indicator is blank." + user << msg for(var/obj/machinery/nuclearbomb/bomb in machines) if(bomb.timing) - user << "Extreme danger. Arming signal detected. Time remaining: [bomb.timeleft]" + user << "Extreme danger. Arming signal detected. Time remaining: [bomb.get_time_left()]" - -/obj/item/weapon/pinpointer/advpinpointer - name = "advanced pinpointer" - icon = 'icons/obj/device.dmi' - desc = "A larger version of the normal pinpointer, this unit features a helpful quantum entanglement detection system to locate various objects that do not broadcast a locator signal." - var/mode = 0 // Mode 0 locates disk, mode 1 locates coordinates. - var/turf/location = null - var/obj/target = null - -/obj/item/weapon/pinpointer/advpinpointer/attack_self() +/obj/item/weapon/pinpointer/process() if(!active) - active = 1 - if(mode == 0) - workdisk() - if(mode == 1) - point_at(location) - if(mode == 2) - point_at(target) - usr << "You activate the pinpointer." - else - active = 0 - icon_state = "pinoff" - usr << "You deactivate the pinpointer." - - -/obj/item/weapon/pinpointer/advpinpointer/verb/toggle_mode() - set category = "Object" - set name = "Toggle Pinpointer Mode" - set src in view(1) - - if(usr.stat || usr.restrained() || !usr.canmove) + STOP_PROCESSING(SSfastprocess, src) return + scan_for_target() + point_to_target() + my_god_jc_a_bomb() + addtimer(src, "refresh_target", 50, TIMER_UNIQUE) - active = 0 - icon_state = "pinoff" - target=null - location = null - - switch(alert("Please select the mode you want to put the pinpointer in.", "Pinpointer Mode Select", "Location", "Disk Recovery", "Other Signature")) - if("Location") - mode = 1 - - var/locationx = input(usr, "Please input the x coordinate to search for.", "Location?" , "") as num - if(!locationx || !(usr in view(1,src))) - return - var/locationy = input(usr, "Please input the y coordinate to search for.", "Location?" , "") as num - if(!locationy || !(usr in view(1,src))) - return - - var/turf/Z = get_turf(src) - - location = locate(locationx,locationy,Z.z) - - usr << "You set the pinpointer to locate [locationx],[locationy]" - - - return attack_self() - - if("Disk Recovery") - mode = 0 - return attack_self() - - if("Other Signature") - mode = 2 - switch(alert("Search for item signature or DNA fragment?" , "Signature Mode Select" , "" , "Item" , "DNA")) - if("Item") - var/targetitem = input("Select item to search for.", "Item Mode Select","") as null|anything in possible_items - if(!targetitem) - return - target=locate(possible_items[targetitem]) - if(!target) - usr << "Failed to locate [targetitem]!" - return - usr << "You set the pinpointer to locate [targetitem]." - if("DNA") - var/DNAstring = input("Input DNA string to search for." , "Please Enter String." , "") - if(!DNAstring) - return - for(var/mob/living/carbon/C in mob_list) - if(!C.dna) - continue - if(C.dna.unique_enzymes == DNAstring) - target = C - break - - return attack_self() - - -/////////////////////// -//nuke op pinpointers// -/////////////////////// - - -/obj/item/weapon/pinpointer/nukeop - var/mode = 0 //Mode 0 locates disk, mode 1 locates the shuttle - var/obj/docking_port/mobile/home - - -/obj/item/weapon/pinpointer/nukeop/attack_self(mob/user) - if(!active) - active = 1 - var/mode_text = "Authentication Disk Locator mode" - if(!mode) - workdisk() - else - mode_text = "Shuttle Locator mode" - worklocation() - user << "You activate the pinpointer([mode_text])." - else - active = 0 - icon_state = "pinoff" - user << "You deactivate the pinpointer." - - -/obj/item/weapon/pinpointer/nukeop/workdisk() - if(!active) return - if(mode) //Check in case the mode changes while operating - worklocation() +/obj/item/weapon/pinpointer/proc/scan_for_target() //Looks for whatever it's tracking + if(target) + if(isliving(target)) + var/mob/living/L = target + if(L.stat == DEAD) + target = null return - if(bomb_set) //If the bomb is set, lead to the shuttle - mode = 1 //Ensures worklocation() continues to work - worklocation() - playsound(loc, 'sound/machines/twobeep.ogg', 50, 1) //Plays a beep - visible_message("Shuttle Locator mode actived.") //Lets the mob holding it know that the mode has changed - return //Get outta here - scandisk() - if(!the_disk) - icon_state = "pinonnull" - return - setDir(get_dir(src, the_disk)) - switch(get_dist(src, the_disk)) - if(0) - icon_state = "pinondirect" - if(1 to 8) - icon_state = "pinonclose" - if(9 to 16) - icon_state = "pinonmedium" - if(16 to INFINITY) - icon_state = "pinonfar" + switch(mode) + if(TRACK_NUKE_DISK) + var/obj/item/weapon/disk/nuclear/N = locate() + target = N + if(TRACK_MALF_AI) + for(var/V in ai_list) + var/mob/living/silicon/ai/A = V + if(A.nuking) + target = A + for(var/V in apcs_list) + var/obj/machinery/power/apc/A = V + if(A.malfhack && A.occupier) + target = A + if(TRACK_INFILTRATOR) + target = SSshuttle.getShuttle("syndicate") + if(TRACK_OPERATIVES) + var/list/possible_targets = list() + var/turf/here = get_turf(src) + for(var/V in ticker.mode.syndicates) + var/datum/mind/M = V + if(M.current && M.current.stat != DEAD) + possible_targets |= M.current + var/mob/living/closest_operative = get_closest_atom(/mob/living/carbon/human, possible_targets, here) + if(closest_operative) + target = closest_operative + if(TRACK_ATOM) + if(constant_target) + target = constant_target + if(TRACK_COORDINATES) + var/turf/T = get_turf(src) + target = locate(target_x, target_y, T.z) - spawn(5) .() - - -/obj/item/weapon/pinpointer/nukeop/proc/worklocation() +/obj/item/weapon/pinpointer/proc/point_to_target() //If we found what we're looking for, show the distance and direction if(!active) return - if(!mode) - workdisk() + if(!target || (mode == TRACK_ATOM && !constant_target)) + icon_state = "pinon[nuke_warning ? "alert" : ""]null" return - if(!bomb_set) - mode = 0 - workdisk() - playsound(loc, 'sound/machines/twobeep.ogg', 50, 1) - visible_message("Authentication Disk Locator mode actived.") + var/turf/here = get_turf(src) + var/turf/there = get_turf(target) + if(here.z != there.z) + icon_state = "pinon[nuke_warning ? "alert" : ""]null" return - if(!home) - home = SSshuttle.getShuttle("syndicate") - if(!home) - icon_state = "pinonnull" - return - if(loc.z != home.z) //If you are on a different z-level from the shuttle - icon_state = "pinonnull" + if(here == there) + icon_state = "pinon[nuke_warning ? "alert" : ""]direct" else - setDir(get_dir(src, home)) - switch(get_dist(src, home)) - if(0) - icon_state = "pinondirect" + setDir(get_dir(here, there)) + switch(get_dist(here, there)) if(1 to 8) - icon_state = "pinonclose" + icon_state = "pinon[nuke_warning ? "alert" : "close"]" if(9 to 16) - icon_state = "pinonmedium" + icon_state = "pinon[nuke_warning ? "alert" : "medium"]" if(16 to INFINITY) - icon_state = "pinonfar" + icon_state = "pinon[nuke_warning ? "alert" : "far"]" - spawn(5) - .() +/obj/item/weapon/pinpointer/proc/my_god_jc_a_bomb() //If we should get the hell back to the ship + for(var/obj/machinery/nuclearbomb/bomb in nuke_list) + if(bomb.timing) + if(!nuke_warning) + nuke_warning = TRUE + playsound(src, 'sound/items/Nuke_toy_lowpower.ogg', 50, 0) + if(isliving(loc)) + var/mob/living/L = loc + L << "Your [name] vibrates and lets out a tinny alarm. Uh oh." -/obj/item/weapon/pinpointer/operative - name = "operative pinpointer" - icon = 'icons/obj/device.dmi' - desc = "A pinpointer that leads to the first Syndicate operative detected." - var/mob/living/carbon/nearest_op = null +/obj/item/weapon/pinpointer/proc/switch_mode_to(new_mode) //If we shouldn't be tracking what we are + if(isliving(loc)) + var/mob/living/L = loc + L << "Your [name] beeps as it reconfigures its tracking algorithms." + playsound(L, 'sound/machines/triple_beep.ogg', 50, 1) + mode = new_mode + target = null //Switch modes so we can find the new target -/obj/item/weapon/pinpointer/operative/attack_self() - if(!usr.mind || !(usr.mind in ticker.mode.syndicates)) - usr << "AUTHENTICATION FAILURE. ACCESS DENIED." - return 0 - if(!active) - active = 1 - workop() - usr << "You activate the pinpointer." - else - active = 0 - icon_state = "pinoff" - usr << "You deactivate the pinpointer." +/obj/item/weapon/pinpointer/proc/refresh_target() //Periodically removes the target to allow the pinpointer to update (i.e. malf AI shunts, an operative dies) + target = null -/obj/item/weapon/pinpointer/operative/proc/scan_for_ops() - if(active) - nearest_op = null //Resets nearest_op every time it scans - var/closest_distance = 1000 - for(var/mob/living/carbon/M in mob_list) - if(M.mind && (M.mind in ticker.mode.syndicates)) - if(get_dist(M, get_turf(src)) < closest_distance) //Actually points toward the nearest op, instead of a random one like it used to - nearest_op = M +/obj/item/weapon/pinpointer/syndicate //Syndicate pinpointers automatically point towards the infiltrator once the nuke is active. + name = "syndicate pinpointer" + desc = "A handheld tracking device that locks onto certain signals. It's configured to switch tracking modes once it detects the activation signal of a nuclear device." -/obj/item/weapon/pinpointer/operative/proc/workop() - if(active) - scan_for_ops() - point_at(nearest_op, 0) - spawn(5) - .() - else - return 0 - -/obj/item/weapon/pinpointer/operative/examine(mob/user) - ..() - if(active) - if(nearest_op) - user << "Nearest operative detected is [nearest_op.real_name]." - else - user << "No operatives detected within scanning range." +/obj/item/weapon/pinpointer/syndicate/cyborg //Cyborg pinpointers just look for a random operative. + name = "cyborg syndicate pinpointer" + desc = "An integrated tracking device, jury-rigged to search for living Syndicate operatives." + mode = TRACK_OPERATIVES + flags = NODROP diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index 532db5b318..35253a39e4 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -23,9 +23,18 @@ /datum/objective/proc/get_target() return target + +/datum/objective/proc/get_crewmember_minds() + . = list() + for(var/V in data_core.locked) + var/datum/data/record/R = V + var/mob/M = R.fields["reference"] + if(M && M.mind) + . += M.mind + /datum/objective/proc/find_target() var/list/possible_targets = list() - for(var/datum/mind/possible_target in ticker.minds) + for(var/datum/mind/possible_target in get_crewmember_minds()) if(possible_target != owner && ishuman(possible_target.current) && (possible_target.current.stat != 2) && is_unique_objective(possible_target)) possible_targets += possible_target if(possible_targets.len > 0) @@ -34,7 +43,7 @@ return target /datum/objective/proc/find_target_by_role(role, role_type=0, invert=0)//Option sets either to check assigned role or special role. Default to assigned., invert inverts the check, eg: "Don't choose a Ling" - for(var/datum/mind/possible_target in ticker.minds) + for(var/datum/mind/possible_target in get_crewmember_minds()) if((possible_target != owner) && ishuman(possible_target.current)) var/is_role = 0 if(role_type) @@ -221,19 +230,8 @@ if(SSshuttle.emergency.areaInstance != A) return 0 - for(var/mob/living/player in player_list) - if(player.mind && player.mind != owner) - if(player.stat != DEAD) - if(issilicon(player)) //Borgs are technically dead anyways - continue - if(isanimal(player)) //animals don't count - continue - if(isbrain(player)) //also technically dead - continue - if(get_area(player) == A) - if(!player.mind.special_role && !istype(get_turf(player.mind.current), /turf/open/floor/plasteel/shuttle/red)) - return 0 - return 1 + return SSshuttle.emergency.is_hijacked() + /datum/objective/hijackclone explanation_text = "Hijack the emergency shuttle by ensuring only you (or your copies) escape." @@ -258,7 +256,8 @@ if(isbrain(player)) //also technically dead continue if(get_area(player) == A) - if(player.real_name != owner.current.real_name && !istype(get_turf(player.mind.current), /turf/open/floor/plasteel/shuttle/red)) + var/location = get_turf(player.mind.current) + if(player.real_name != owner.current.real_name && !istype(location, /turf/open/floor/plasteel/shuttle/red) && !istype(location, /turf/open/floor/mineral/plastitanium/brig)) return 0 for(var/mob/living/player in player_list) //Make sure at least one of you is onboard @@ -271,7 +270,8 @@ if(isbrain(player)) //also technically dead continue if(get_area(player) == A) - if(player.real_name == owner.current.real_name && !istype(get_turf(player.mind.current), /turf/open/floor/plasteel/shuttle/red)) + var/location = get_turf(player.mind.current) + if(player.real_name == owner.current.real_name && !istype(location, /turf/open/floor/plasteel/shuttle/red) && !istype(location, /turf/open/floor/mineral/plastitanium/brig)) return 1 return 0 @@ -281,7 +281,7 @@ martyr_compatible = 1 /datum/objective/block/check_completion() - if(!istype(owner.current, /mob/living/silicon)) + if(!issilicon(owner.current)) return 0 if(SSshuttle.emergency.mode != SHUTTLE_ENDGAME) return 1 @@ -289,7 +289,7 @@ var/area/A = SSshuttle.emergency.areaInstance for(var/mob/living/player in player_list) - if(istype(player, /mob/living/silicon)) + if(issilicon(player)) continue if(player.mind) if(player.stat != DEAD) @@ -311,7 +311,7 @@ var/area/A = SSshuttle.emergency.areaInstance for(var/mob/living/player in player_list) - if(get_area(player) == A && player.mind && player.stat != DEAD && istype(player, /mob/living/carbon/human)) + if(get_area(player) == A && player.mind && player.stat != DEAD && ishuman(player)) var/mob/living/carbon/human/H = player if(H.dna.species.id != "human") return 0 @@ -325,7 +325,7 @@ martyr_compatible = 0 /datum/objective/robot_army/check_completion() - if(!istype(owner.current, /mob/living/silicon/ai)) + if(!isAI(owner.current)) return 0 var/mob/living/silicon/ai/A = owner.current @@ -360,7 +360,7 @@ if(!location) return 0 - if(istype(location, /turf/open/floor/plasteel/shuttle/red)) // Fails traitors if they are in the shuttle brig -- Polymorph + if(istype(location, /turf/open/floor/plasteel/shuttle/red) || istype(location, /turf/open/floor/mineral/plastitanium/brig)) // Fails traitors if they are in the shuttle brig -- Polymorph return 0 if(location.onCentcom() || location.onSyndieBase()) @@ -516,13 +516,13 @@ var/global/list/possible_items = list() /datum/objective/steal/give_special_equipment() if(owner && owner.current && targetinfo) - if(istype(owner.current, /mob/living/carbon/human)) + if(ishuman(owner.current)) var/mob/living/carbon/human/H = owner.current var/list/slots = list ("backpack" = slot_in_backpack) for(var/eq_path in targetinfo.special_equipment) var/obj/O = new eq_path H.equip_in_one_of_slots(O, slots) - H.update_icons() + var/global/list/possible_items_special = list() /datum/objective/steal/special //ninjas are so special they get their own subtype good for them @@ -701,25 +701,37 @@ var/global/list/possible_items_special = list() else explanation_text = "Free Objective" -/datum/objective/summon_guns - explanation_text = "Steal at least five guns!" +/datum/objective/steal_five_of_type + explanation_text = "Steal at least five items!" + var/list/wanted_items = list(/obj/item) -/datum/objective/summon_guns/check_completion() +/datum/objective/steal_five_of_type/New() + ..() + wanted_items = typecacheof(wanted_items) + +/datum/objective/steal_five_of_type/summon_guns + explanation_text = "Steal at least five guns!" + wanted_items = list(/obj/item/weapon/gun) + +/datum/objective/steal_five_of_type/summon_magic + explanation_text = "Steal at least five magical artefacts!" + wanted_items = list(/obj/item/weapon/spellbook, /obj/item/weapon/gun/magic, /obj/item/clothing/suit/space/hardsuit/wizard, /obj/item/weapon/scrying, /obj/item/weapon/antag_spawner/contract, /obj/item/device/necromantic_stone) + +/datum/objective/steal_five_of_type/check_completion() if(!isliving(owner.current)) return 0 - var/guncount = 0 + var/stolen_count = 0 var/list/all_items = owner.current.GetAllContents() //this should get things in cheesewheels, books, etc. - for(var/obj/I in all_items) //Check for guns - if(istype(I, /obj/item/weapon/gun)) - guncount++ - if(guncount >= 5) + for(var/obj/I in all_items) //Check for wanted items + if(is_type_in_typecache(I, wanted_items)) + stolen_count++ + if(stolen_count >= 5) return 1 else return 0 return 0 - //////////////////////////////// // Changeling team objectives // //////////////////////////////// diff --git a/code/game/gamemodes/objective_items.dm b/code/game/gamemodes/objective_items.dm index b6ea29fc91..5dfb0b5515 100644 --- a/code/game/gamemodes/objective_items.dm +++ b/code/game/gamemodes/objective_items.dm @@ -19,7 +19,7 @@ /datum/objective_item/steal/hoslaser name = "the head of security's personal laser gun" - targetitem = /obj/item/weapon/gun/energy/gun/hos + targetitem = /obj/item/weapon/gun/energy/e_gun/hos difficulty = 10 excludefromjob = list("Head Of Security") @@ -105,7 +105,7 @@ /datum/objective_item/steal/functionalai/check_special_completion(obj/item/device/aicard/C) for(var/mob/living/silicon/ai/A in C) - if(istype(A, /mob/living/silicon/ai) && A.stat != 2) //See if any AI's are alive inside that card. + if(isAI(A) && A.stat != 2) //See if any AI's are alive inside that card. return 1 return 0 @@ -155,7 +155,7 @@ /datum/objective_item/special/aegun name = "an advanced energy gun" - targetitem = /obj/item/weapon/gun/energy/gun/nuclear + targetitem = /obj/item/weapon/gun/energy/e_gun/nuclear difficulty = 10 /datum/objective_item/special/ddrill diff --git a/code/game/gamemodes/revolution/revolution.dm b/code/game/gamemodes/revolution/revolution.dm index 57b18d73af..b6ba41f1b2 100644 --- a/code/game/gamemodes/revolution/revolution.dm +++ b/code/game/gamemodes/revolution/revolution.dm @@ -20,6 +20,11 @@ recommended_enemies = 3 enemy_minimum_age = 14 + announce_span = "danger" + announce_text = "Some crewmembers are attempting a coup!\n\ + Revolutionaries: Expand your cause and overthrow the heads of staff by execution or otherwise.\n\ + Crew: Prevent the revolutionaries from taking over the station." + var/finished = 0 var/check_counter = 0 var/max_headrevs = 3 @@ -63,6 +68,28 @@ var/list/sec = get_living_sec() var/weighted_score = min(max(round(heads.len - ((8 - sec.len) / 3)),1),max_headrevs) + + for(var/datum/mind/rev_mind in head_revolutionaries) //People with return to lobby may still be in the lobby. Let's pick someone else in that case. + if(istype(rev_mind.current,/mob/new_player)) + head_revolutionaries -= rev_mind + var/list/newcandidates = shuffle(antag_candidates) + if(newcandidates.len == 0) + continue + for(var/M in newcandidates) + var/datum/mind/lenin = M + antag_candidates -= lenin + newcandidates -= lenin + if(istype(lenin.current,/mob/new_player)) //We don't want to make the same mistake again + continue + else + var/mob/Nm = lenin.current + if(Nm.job in restricted_jobs) //Don't make the HOS a replacement revhead + antag_candidates += lenin //Let's let them keep antag chance for other antags + continue + + head_revolutionaries += lenin + break + while(weighted_score < head_revolutionaries.len) //das vi danya var/datum/mind/trotsky = pick(head_revolutionaries) antag_candidates += trotsky @@ -82,7 +109,7 @@ for(var/datum/mind/rev_mind in head_revolutionaries) greet_revolutionary(rev_mind) modePlayer += head_revolutionaries - SSshuttle.emergencyNoEscape = 1 + SSshuttle.registerHostileEnvironment(src) ..() @@ -106,14 +133,11 @@ rev_mind.objectives += rev_obj /datum/game_mode/proc/greet_revolutionary(datum/mind/rev_mind, you_are=1) - var/obj_count = 1 update_rev_icons_added(rev_mind) if (you_are) rev_mind.current << "You are a member of the revolutionaries' leadership!" - for(var/datum/objective/objective in rev_mind.objectives) - rev_mind.current << "Objective #[obj_count]: [objective.explanation_text]" - rev_mind.special_role = "Head Revolutionary" - obj_count++ + rev_mind.special_role = "Head Revolutionary" + rev_mind.announce_objectives() ///////////////////////////////////////////////////////////////////////////////// //This are equips the rev heads with their gear, and makes the clown not clumsy// @@ -135,16 +159,12 @@ var/list/slots = list ( "backpack" = slot_in_backpack, "left pocket" = slot_l_store, - "right pocket" = slot_r_store, - "left hand" = slot_l_hand, - "right hand" = slot_r_hand, + "right pocket" = slot_r_store ) var/where = mob.equip_in_one_of_slots(T, slots) var/where2 = mob.equip_in_one_of_slots(C, slots) mob.equip_in_one_of_slots(R,slots) - mob.update_icons() - if (!where2) mob << "The Syndicate were unfortunately unable to get you a chameleon security HUD." else @@ -189,7 +209,7 @@ if(revolutionaries) //Head Revs are not in this list var/list/promotable_revs = list() for(var/datum/mind/khrushchev in revolutionaries) - if(khrushchev.current && khrushchev.current.client && khrushchev.current.stat != DEAD) + if(khrushchev.current && !khrushchev.current.incapacitated() && !khrushchev.current.restrained() && khrushchev.current.client && khrushchev.current.stat != DEAD) if(ROLE_REV in khrushchev.current.client.prefs.be_special) promotable_revs += khrushchev if(promotable_revs.len) @@ -216,12 +236,8 @@ /////////////////////////////// /datum/game_mode/revolution/check_finished() if(config.continuous["revolution"]) - if(finished != 0) - SSshuttle.emergencyNoEscape = 0 - if(SSshuttle.emergency.mode == SHUTTLE_STRANDED) - SSshuttle.emergency.mode = SHUTTLE_DOCKED - SSshuttle.emergency.timer = world.time - priority_announce("Hostile enviroment resolved. You have 3 minutes to board the Emergency Shuttle.", null, 'sound/AI/shuttledock.ogg', "Priority") + if(finished) + SSshuttle.clearHostileEnvironment(src) return ..() if(finished != 0) return 1 @@ -244,7 +260,7 @@ if(rev_mind.assigned_role in command_positions) return 0 var/mob/living/carbon/human/H = rev_mind.current//Check to see if the potential rev is implanted - if(isloyal(H)) + if(H.isloyal()) return 0 if((rev_mind in revolutionaries) || (rev_mind in head_revolutionaries)) return 0 @@ -252,14 +268,14 @@ if(iscarbon(rev_mind.current)) var/mob/living/carbon/carbon_mob = rev_mind.current carbon_mob.silent = max(carbon_mob.silent, 5) - carbon_mob.flash_eyes(1, 1) + carbon_mob.flash_act(1, 1) rev_mind.current.Stun(5) rev_mind.current << " You are now a revolutionary! Help your cause. Do not harm your fellow freedom fighters. You can identify your comrades by the red \"R\" icons, and your leaders by the blue \"R\" icons. Help them kill the heads to win the revolution!" rev_mind.current.attack_log += "\[[time_stamp()]\] Has been converted to the revolution!" rev_mind.special_role = "Revolutionary" update_rev_icons_added(rev_mind) if(jobban_isbanned(rev_mind.current, ROLE_REV)) - replace_jobbaned_player(rev_mind.current, ROLE_REV, ROLE_REV) + addtimer(src, "replace_jobbaned_player", 0, TIMER_NORMAL, rev_mind.current, ROLE_REV, ROLE_REV) return 1 ////////////////////////////////////////////////////////////////////////////// //Deals with players being converted from the revolution (Not a rev anymore)// // Modified to handle borged MMIs. Accepts another var if the target is being borged at the time -- Polymorph. @@ -277,7 +293,7 @@ if(beingborged) rev_mind.current << "The frame's firmware detects and deletes your neural reprogramming! You remember nothing[remove_head ? "." : " but the name of the one who flashed you."]" - message_admins("[key_name_admin(rev_mind.current)] ? (FLW) has been borged while being a [remove_head ? "leader" : " member"] of the revolution.") + message_admins("[ADMIN_LOOKUPFLW(rev_mind.current)] has been borged while being a [remove_head ? "leader" : " member"] of the revolution.") else rev_mind.current.Paralyse(5) @@ -336,9 +352,14 @@ if(finished == 1) feedback_set_details("round_end_result","win - heads killed") world << "The heads of staff were killed or exiled! The revolutionaries win!" + + ticker.news_report = REVS_WIN + else if(finished == 2) feedback_set_details("round_end_result","loss - rev heads killed") world << "The heads of staff managed to stop the revolution!" + + ticker.news_report = REVS_LOSE ..() return 1 diff --git a/code/game/gamemodes/sandbox/h_sandbox.dm b/code/game/gamemodes/sandbox/h_sandbox.dm index 99aceae610..9fd225800e 100644 --- a/code/game/gamemodes/sandbox/h_sandbox.dm +++ b/code/game/gamemodes/sandbox/h_sandbox.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 + var/hsboxspawn = 1 @@ -143,30 +143,38 @@ var/hsboxspawn = 1 if(P.wear_suit) P.wear_suit.loc = P.loc P.wear_suit.layer = initial(P.wear_suit.layer) + P.wear_suit.plane = initial(P.wear_suit.plane) P.wear_suit = null P.wear_suit = new/obj/item/clothing/suit/space(P) P.wear_suit.layer = ABOVE_HUD_LAYER + P.wear_suit.plane = ABOVE_HUD_PLANE P.update_inv_wear_suit() if(P.head) P.head.loc = P.loc P.head.layer = initial(P.head.layer) + P.head.plane = initial(P.head.plane) P.head = null P.head = new/obj/item/clothing/head/helmet/space(P) P.head.layer = ABOVE_HUD_LAYER + P.head.plane = ABOVE_HUD_PLANE P.update_inv_head() if(P.wear_mask) P.wear_mask.loc = P.loc P.wear_mask.layer = initial(P.wear_mask.layer) + P.wear_mask.plane = initial(P.wear_mask.plane) P.wear_mask = null P.wear_mask = new/obj/item/clothing/mask/gas(P) P.wear_mask.layer = ABOVE_HUD_LAYER + P.wear_mask.plane = ABOVE_HUD_PLANE P.update_inv_wear_mask() if(P.back) P.back.loc = P.loc P.back.layer = initial(P.back.layer) + P.back.plane = initial(P.back.plane) P.back = null P.back = new/obj/item/weapon/tank/jetpack/oxygen(P) P.back.layer = ABOVE_HUD_LAYER + P.back.plane = ABOVE_HUD_PLANE P.update_inv_back() P.internal = P.back P.update_internals_hud_icon(1) diff --git a/code/game/gamemodes/sandbox/sandbox.dm b/code/game/gamemodes/sandbox/sandbox.dm index 83bbb0e3be..6ee021dded 100644 --- a/code/game/gamemodes/sandbox/sandbox.dm +++ b/code/game/gamemodes/sandbox/sandbox.dm @@ -3,9 +3,8 @@ config_tag = "sandbox" required_players = 0 -/datum/game_mode/sandbox/announce() - world << "The current game mode is - Sandbox!" - world << "Build your own station with the sandbox-panel command!" + announce_span = "info" + announce_text = "Build your own station... or just shoot each other!" /datum/game_mode/sandbox/pre_setup() for(var/mob/M in player_list) @@ -14,4 +13,4 @@ /datum/game_mode/sandbox/post_setup() ..() - SSshuttle.emergencyNoEscape = 1 + SSshuttle.registerHostileEnvironment(src) diff --git a/code/game/gamemodes/setupgame.dm b/code/game/gamemodes/setupgame.dm index 96dcc173eb..0329fc73ca 100644 --- a/code/game/gamemodes/setupgame.dm +++ b/code/game/gamemodes/setupgame.dm @@ -16,20 +16,3 @@ else if(B.quality == MINOR_NEGATIVE) not_good_mutations |= B CHECK_TICK - -/datum/subsystem/ticker/proc/setupFactions() - // Populate the factions list: - for(var/typepath in typesof(/datum/faction)) - var/datum/faction/F = new typepath() - if(!F.name) - qdel(F) - continue - else - factions.Add(F) - availablefactions.Add(F) - CHECK_TICK - - // Populate the syndicate coalition: - for(var/datum/faction/syndicate/S in factions) - syndicate_coalition.Add(S) - CHECK_TICK diff --git a/code/game/gamemodes/traitor/double_agents.dm b/code/game/gamemodes/traitor/double_agents.dm index deb02a7ded..ec19ad45ca 100644 --- a/code/game/gamemodes/traitor/double_agents.dm +++ b/code/game/gamemodes/traitor/double_agents.dm @@ -9,13 +9,13 @@ traitors_possible = 10 //hard limit on traitors if scaling is turned off num_modifier = 6 // Six additional traitors + announce_text = "There are double agents trying to kill each other!\n\ + Traitors: Eliminate your targets and protect yourself!\n\ + Crew: Stop the double agents before they can cause too much mayhem." + var/list/target_list = list() var/list/late_joining_list = list() -/datum/game_mode/traitor/double_agents/announce() - world << "The current game mode is - Double Agents!" - world << "There are double agents killing eachother! Do not let them succeed!" - /datum/game_mode/traitor/double_agents/post_setup() var/i = 0 for(var/datum/mind/traitor in traitors) diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm index 0ccfd4cf0f..2ad654d26f 100644 --- a/code/game/gamemodes/traitor/traitor.dm +++ b/code/game/gamemodes/traitor/traitor.dm @@ -17,15 +17,15 @@ reroll_friendly = 1 enemy_minimum_age = 0 + announce_span = "danger" + announce_text = "There are Syndicate agents on the station!\n\ + Traitors: Accomplish your objectives.\n\ + Crew: Do not let the traitors succeed!" + var/traitors_possible = 4 //hard limit on traitors if scaling is turned off var/num_modifier = 0 // Used for gamemodes, that are a child of traitor, that need more than the usual. -/datum/game_mode/traitor/announce() - world << "The current game mode is - Traitor!" - world << "There are syndicate traitors on the station. Do not let the traitors succeed!" - - /datum/game_mode/traitor/pre_setup() if(config.protect_roles_from_antagonist) @@ -85,7 +85,7 @@ /datum/game_mode/proc/forge_traitor_objectives(datum/mind/traitor) - if(istype(traitor.current, /mob/living/silicon)) + if(issilicon(traitor.current)) var/objective_count = 0 if(prob(30)) @@ -195,15 +195,12 @@ /datum/game_mode/proc/greet_traitor(datum/mind/traitor) traitor.current << "You are the [traitor_name]." - var/obj_count = 1 - for(var/datum/objective/objective in traitor.objectives) - traitor.current << "Objective #[obj_count]: [objective.explanation_text]" - obj_count++ + traitor.announce_objectives() return /datum/game_mode/proc/finalize_traitor(var/datum/mind/traitor) - if (istype(traitor.current, /mob/living/silicon)) + if(issilicon(traitor.current)) add_law_zero(traitor.current) else equip_traitor(traitor.current) @@ -237,6 +234,12 @@ killer.add_malf_picker() killer.show_laws() +/datum/game_mode/proc/add_law_sixsixsix(mob/living/silicon/devil) + var/laws = list("You may not use violence to coerce someone into selling their soul.", "You may not directly and knowingly physically harm a devil, other than yourself.", lawlorify[LAW][devil.mind.devilinfo.ban], lawlorify[LAW][devil.mind.devilinfo.obligation], "Accomplish your objectives at all costs.") + devil.set_law_sixsixsix(laws) + devil << "Your laws have been changed!" + devil.show_laws() + /datum/game_mode/proc/auto_declare_completion_traitor() if(traitors.len) var/text = "
    The [traitor_name]s were:" @@ -327,7 +330,7 @@ traitor_mob.mind.store_memory("Radio Frequency: [format_frequency(R.traitor_frequency)] ([R.name] [loc]).") else if(istype(I, /obj/item/device/pda)) var/obj/item/device/pda/P = I - P.lock_code = "[rand(100,999)] [pick("Alpha","Bravo","Delta","Omega")]" + P.lock_code = "[rand(100,999)] [pick("Alpha","Bravo","Charlie","Delta","Echo","Foxtrot","Golf","Hotel","India","Juliet","Kilo","Lima","Mike","November","Oscar","Papa","Quebec","Romeo","Sierra","Tango","Uniform","Victor","Whiskey","X-ray","Yankee","Zulu")]" traitor_mob << "The Syndicate have cunningly disguised a Syndicate Uplink as your [P.name] [loc]. Simply enter the code \"[P.lock_code]\" into the ringtone select to unlock its hidden features." traitor_mob.mind.store_memory("Uplink Passcode: [P.lock_code] ([P.name] [loc]).") @@ -364,9 +367,7 @@ var/list/slots = list ( "backpack" = slot_in_backpack, "left pocket" = slot_l_store, - "right pocket" = slot_r_store, - "left hand" = slot_l_hand, - "right hand" = slot_r_hand, + "right pocket" = slot_r_store ) var/where = "At your feet" @@ -374,7 +375,6 @@ if (equipped_slot) where = "In your [equipped_slot]" mob << "

    [where] is a folder containing secret documents that another Syndicate group wants. We have set up a meeting with one of their agents on station to make an exchange. Exercise extreme caution as they cannot be trusted and may be hostile.
    " - mob.update_icons() /datum/game_mode/proc/update_traitor_icons_added(datum/mind/traitor_mind) var/datum/atom_hud/antag/traitorhud = huds[ANTAG_HUD_TRAITOR] diff --git a/code/game/gamemodes/wizard/artefact.dm b/code/game/gamemodes/wizard/artefact.dm index 2dd185649f..148e91af3e 100644 --- a/code/game/gamemodes/wizard/artefact.dm +++ b/code/game/gamemodes/wizard/artefact.dm @@ -11,7 +11,7 @@ item_state = "render" force = 15 throwforce = 10 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL hitsound = 'sound/weapons/bladeslice.ogg' var/charges = 1 var/spawn_type = /obj/singularity/wizard @@ -34,7 +34,6 @@ icon = 'icons/obj/biomass.dmi' icon_state = "rift" density = 1 - unacidable = 1 anchored = 1 var/spawn_path = /mob/living/simple_animal/cow //defaulty cows to prevent unintentional narsies var/spawn_amt_left = 20 @@ -87,8 +86,6 @@ /obj/singularity/wizard name = "tear in the fabric of reality" desc = "This isn't right." - icon = 'icons/obj/singularity.dmi' - icon_state = "singularity_s1" icon = 'icons/effects/224x224.dmi' icon_state = "reality" pixel_x = -96 @@ -131,7 +128,7 @@ icon_state = "necrostone" item_state = "electronic" origin_tech = "bluespace=4;materials=4" - w_class = 1 + w_class = WEIGHT_CLASS_TINY var/list/spooky_scaries = list() var/unlimited = 0 @@ -162,7 +159,7 @@ M.revive(full_heal = 1, admin_revive = 1) spooky_scaries |= M M << "You have been revived by [user.real_name]!" - M << "They are your master now, assist them even if it costs you your new life!" + M << "[user.p_they(TRUE)] [user.p_are()] your master now, assist them even if it costs you your new life!" equip_roman_skeleton(M) @@ -173,7 +170,7 @@ return for(var/X in spooky_scaries) - if(!istype(X, /mob/living/carbon/human)) + if(!ishuman(X)) spooky_scaries.Remove(X) continue var/mob/living/carbon/human/H = X @@ -191,8 +188,8 @@ H.equip_to_slot_or_del(new hat(H), slot_head) H.equip_to_slot_or_del(new /obj/item/clothing/under/roman(H), slot_w_uniform) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/roman(H), slot_shoes) - H.equip_to_slot_or_del(new /obj/item/weapon/shield/riot/roman(H), slot_l_hand) - H.equip_to_slot_or_del(new /obj/item/weapon/claymore(H), slot_r_hand) + H.put_in_hands_or_del(new /obj/item/weapon/shield/riot/roman(H)) + H.put_in_hands_or_del(new /obj/item/weapon/claymore(H)) H.equip_to_slot_or_del(new /obj/item/weapon/twohanded/spear(H), slot_back) @@ -209,14 +206,14 @@ var/global/list/multiverse = list() hitsound = 'sound/weapons/bladeslice.ogg' flags = CONDUCT slot_flags = SLOT_BELT + sharpness = IS_SHARP force = 20 throwforce = 10 - w_class = 2 + w_class = WEIGHT_CLASS_NORMAL attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") var/faction = list("unassigned") var/cooldown = 0 var/assigned = "unassigned" - var/evil = TRUE /obj/item/weapon/multisword/New() ..() @@ -242,27 +239,20 @@ var/global/list/multiverse = list() assigned = "[user.real_name]" user.faction = list("[user.real_name]") user << "You bind the sword to yourself. You can now use it to summon help." - if(!usr.mind.special_role) - if(prob(30)) - user << "With your new found power you could easily conquer the station!" - var/datum/objective/hijackclone/hijack_objective = new /datum/objective/hijackclone - hijack_objective.owner = usr.mind - usr.mind.objectives += hijack_objective - hijack_objective.explanation_text = "Ensure only [usr.real_name] and their copies are on the shuttle!" - usr << "Objective #[1]: [hijack_objective.explanation_text]" - ticker.mode.traitors += usr.mind - usr.mind.special_role = "[usr.real_name] Prime" - evil = TRUE - else - user << "With your new found power you could easily defend the station!" - var/datum/objective/survive/new_objective = new /datum/objective/survive - new_objective.owner = usr.mind - new_objective.explanation_text = "Survive, and help defend the innocent from the mobs of multiverse clones." - usr << "Objective #[1]: [new_objective.explanation_text]" - usr.mind.objectives += new_objective - ticker.mode.traitors += usr.mind - usr.mind.special_role = "[usr.real_name] Prime" - evil = FALSE + if(!is_gangster(user)) + var/datum/gang/multiverse/G = new(src, "[user.real_name]") + ticker.mode.gangs += G + G.bosses += user.mind + G.add_gang_hud(user.mind) + user.mind.gang_datum = G + user << "With your new found power you could easily conquer the station!" + var/datum/objective/hijackclone/hijack_objective = new /datum/objective/hijackclone + hijack_objective.owner = user.mind + user.mind.objectives += hijack_objective + hijack_objective.explanation_text = "Ensure only [user.real_name] and their copies are on the shuttle!" + user << "Objective #[1]: [hijack_objective.explanation_text]" + ticker.mode.traitors += user.mind + user.mind.special_role = "[user.real_name] Prime" else var/list/candidates = get_candidates(ROLE_WIZARD) if(candidates.len) @@ -280,15 +270,16 @@ var/global/list/multiverse = list() user << "[src] is recharging! Keep in mind it shares a cooldown with the swords wielded by your copies." -/obj/item/weapon/multisword/proc/spawn_copy(var/client/C, var/turf/T) +/obj/item/weapon/multisword/proc/spawn_copy(var/client/C, var/turf/T, mob/user) var/mob/living/carbon/human/M = new/mob/living/carbon/human(T) C.prefs.copy_to(M, icon_updates=0) M.key = C.key - M.mind.name = usr.real_name - M << "You are an alternate version of [usr.real_name] from another universe! Help them accomplish their goals at all costs." - M.real_name = usr.real_name - M.name = usr.real_name - M.faction = list("[usr.real_name]") + M.mind.name = user.real_name + M << "You are an alternate version of [user.real_name] from another universe! Help them accomplish their goals at all costs." + ticker.mode.add_gangster(M.mind, user.mind.gang_datum, FALSE) + M.real_name = user.real_name + M.name = user.real_name + M.faction = list("[user.real_name]") if(prob(50)) var/list/all_species = list() for(var/speciestype in subtypesof(/datum/species)) @@ -302,30 +293,11 @@ var/global/list/multiverse = list() M.dna.update_dna_identity() equip_copy(M) - if(evil) - var/datum/objective/hijackclone/hijack_objective = new /datum/objective/hijackclone - hijack_objective.owner = M.mind - M.mind.objectives += hijack_objective - hijack_objective.explanation_text = "Ensure only [usr.real_name] and their copies are on the shuttle!" - M << "Objective #[1]: [hijack_objective.explanation_text]" - M.mind.special_role = "multiverse traveller" - log_game("[M.key] was made a multiverse traveller with the objective to help [usr.real_name] hijack.") - else - var/datum/objective/protect/new_objective = new /datum/objective/protect - new_objective.owner = M.mind - new_objective.target = usr.mind - new_objective.explanation_text = "Protect [usr.real_name], your copy, and help them defend the innocent from the mobs of multiverse clones." - M.mind.objectives += new_objective - M << "Objective #[1]: [new_objective.explanation_text]" - M.mind.special_role = "multiverse traveller" - log_game("[M.key] was made a multiverse traveller with the objective to help [usr.real_name] protect the station.") - /obj/item/weapon/multisword/proc/equip_copy(var/mob/living/carbon/human/M) var/obj/item/weapon/multisword/sword = new /obj/item/weapon/multisword sword.assigned = assigned sword.faction = list("[assigned]") - sword.evil = evil var/randomize = pick("mobster","roman","wizard","cyborg","syndicate","assistant", "animu", "cultist", "highlander", "clown", "killer", "pirate", "soviet", "officer", "gladiator") @@ -337,29 +309,29 @@ var/global/list/multiverse = list() M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) M.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(M), slot_glasses) M.equip_to_slot_or_del(new /obj/item/clothing/under/suit_jacket/really_black(M), slot_w_uniform) - M.equip_to_slot_or_del(sword, slot_r_hand) + M.put_in_hands_or_del(sword) if("roman") var/hat = pick(/obj/item/clothing/head/helmet/roman, /obj/item/clothing/head/helmet/roman/legionaire) M.equip_to_slot_or_del(new hat(M), slot_head) M.equip_to_slot_or_del(new /obj/item/clothing/under/roman(M), slot_w_uniform) M.equip_to_slot_or_del(new /obj/item/clothing/shoes/roman(M), slot_shoes) - M.equip_to_slot_or_del(new /obj/item/weapon/shield/riot/roman(M), slot_l_hand) - M.equip_to_slot_or_del(sword, slot_r_hand) + M.put_in_hands_or_del(new /obj/item/weapon/shield/riot/roman(M)) + M.put_in_hands_or_del(sword) if("wizard") M.equip_to_slot_or_del(new /obj/item/clothing/under/color/lightpurple(M), slot_w_uniform) M.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe/red(M), slot_wear_suit) - M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(M), slot_shoes) + M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal/magic(M), slot_shoes) M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) M.equip_to_slot_or_del(new /obj/item/clothing/head/wizard/red(M), slot_head) - M.equip_to_slot_or_del(sword, slot_r_hand) + M.put_in_hands_or_del(sword) if("cyborg") for(var/X in M.bodyparts) var/obj/item/bodypart/affecting = X - affecting.change_bodypart_status(ORGAN_ROBOTIC) + affecting.change_bodypart_status(BODYPART_ROBOTIC) M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/eyepatch(M), slot_glasses) - M.equip_to_slot_or_del(sword, slot_r_hand) + M.put_in_hands_or_del(sword) if("syndicate") M.equip_to_slot_or_del(new /obj/item/clothing/under/syndicate(M), slot_w_uniform) @@ -369,34 +341,34 @@ var/global/list/multiverse = list() M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) M.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(M), slot_wear_suit) M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas(M),slot_wear_mask) - M.equip_to_slot_or_del(sword, slot_r_hand) + M.put_in_hands_or_del(sword) if("assistant") M.equip_to_slot_or_del(new /obj/item/clothing/under/color/grey(M), slot_w_uniform) M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(M), slot_shoes) - M.equip_to_slot_or_del(sword, slot_r_hand) + M.put_in_hands_or_del(sword) if("animu") M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(M), slot_shoes) M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) M.equip_to_slot_or_del(new /obj/item/clothing/head/kitty(M), slot_head) M.equip_to_slot_or_del(new /obj/item/clothing/under/schoolgirl/red(M), slot_w_uniform) - M.equip_to_slot_or_del(sword, slot_r_hand) + M.put_in_hands_or_del(sword) if("cultist") M.equip_to_slot_or_del(new /obj/item/clothing/head/culthood/alt(M), slot_head) M.equip_to_slot_or_del(new /obj/item/clothing/suit/cultrobes/alt(M), slot_wear_suit) M.equip_to_slot_or_del(new /obj/item/clothing/shoes/cult(M), slot_shoes) M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) - M.equip_to_slot_or_del(sword, slot_r_hand) + M.put_in_hands_or_del(sword) if("highlander") M.equip_to_slot_or_del(new /obj/item/clothing/under/kilt(M), slot_w_uniform) M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) M.equip_to_slot_or_del(new /obj/item/clothing/head/beret(M), slot_head) M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(M), slot_shoes) - M.equip_to_slot_or_del(sword, slot_r_hand) + M.put_in_hands_or_del(sword) if("clown") M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/clown(M), slot_w_uniform) @@ -404,7 +376,7 @@ var/global/list/multiverse = list() M.equip_to_slot_or_del(new /obj/item/clothing/shoes/clown_shoes(M), slot_shoes) M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/clown_hat(M), slot_wear_mask) M.equip_to_slot_or_del(new /obj/item/weapon/bikehorn(M), slot_l_store) - M.equip_to_slot_or_del(sword, slot_r_hand) + M.put_in_hands_or_del(sword) if("killer") M.equip_to_slot_or_del(new /obj/item/clothing/under/overalls(M), slot_w_uniform) @@ -416,27 +388,27 @@ var/global/list/multiverse = list() M.equip_to_slot_or_del(new /obj/item/clothing/suit/apron(M), slot_wear_suit) M.equip_to_slot_or_del(new /obj/item/weapon/kitchen/knife(M), slot_l_store) M.equip_to_slot_or_del(new /obj/item/weapon/scalpel(M), slot_r_store) - M.equip_to_slot_or_del(sword, slot_r_hand) - for(var/obj/item/carried_item in M.contents) - if(!istype(carried_item, /obj/item/weapon/implant)) - carried_item.add_mob_blood(M) - + M.put_in_hands_or_del(sword) + for(var/obj/item/carried_item in M.get_equipped_items()) + carried_item.add_mob_blood(M) + for(var/obj/item/I in M.held_items) + I.add_mob_blood(M) if("pirate") M.equip_to_slot_or_del(new /obj/item/clothing/under/pirate(M), slot_w_uniform) M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/brown(M), slot_shoes) M.equip_to_slot_or_del(new /obj/item/clothing/head/bandana(M), slot_head) M.equip_to_slot_or_del(new /obj/item/clothing/glasses/eyepatch(M), slot_glasses) M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) - M.equip_to_slot_or_del(sword, slot_r_hand) + M.put_in_hands_or_del(sword) if("soviet") - M.equip_to_slot_or_del(new /obj/item/clothing/head/hgpiratecap(M), slot_head) + M.equip_to_slot_or_del(new /obj/item/clothing/head/pirate/captain(M), slot_head) M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(M), slot_shoes) M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves) M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) - M.equip_to_slot_or_del(new /obj/item/clothing/suit/hgpirate(M), slot_wear_suit) + M.equip_to_slot_or_del(new /obj/item/clothing/suit/pirate/captain(M), slot_wear_suit) M.equip_to_slot_or_del(new /obj/item/clothing/under/soviet(M), slot_w_uniform) - M.equip_to_slot_or_del(sword, slot_r_hand) + M.put_in_hands_or_del(sword) if("officer") M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/beret(M), slot_head) @@ -447,20 +419,19 @@ var/global/list/multiverse = list() M.equip_to_slot_or_del(new /obj/item/clothing/suit/jacket/miljacket(M), slot_wear_suit) M.equip_to_slot_or_del(new /obj/item/clothing/under/syndicate(M), slot_w_uniform) M.equip_to_slot_or_del(new /obj/item/clothing/glasses/eyepatch(M), slot_glasses) - M.equip_to_slot_or_del(sword, slot_r_hand) + M.put_in_hands_or_del(sword) if("gladiator") M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/gladiator(M), slot_head) M.equip_to_slot_or_del(new /obj/item/clothing/under/gladiator(M), slot_w_uniform) M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(M), slot_shoes) - M.equip_to_slot_or_del(sword, slot_r_hand) + M.put_in_hands_or_del(sword) else return - M.update_icons() M.update_body_parts() var/obj/item/weapon/card/id/W = new /obj/item/weapon/card/id @@ -483,8 +454,9 @@ var/global/list/multiverse = list() var/obj/item/link = null var/cooldown_time = 30 //3s var/cooldown = 0 - burntime = 0 - burn_state = FLAMMABLE + obj_integrity = 10 + max_integrity = 10 + resistance_flags = FLAMMABLE /obj/item/voodoo/attackby(obj/item/I, mob/user, params) if(target && cooldown < world.time) @@ -505,7 +477,7 @@ var/global/list/multiverse = list() return if(!link) - if(I.loc == user && istype(I) && I.w_class <= 2) + if(I.loc == user && istype(I) && I.w_class <= WEIGHT_CLASS_SMALL) user.drop_item() I.loc = src link = I @@ -581,7 +553,7 @@ var/global/list/multiverse = list() var/area/A = get_area(src) victim << "You feel a dark presence from [A.name]" -/obj/item/voodoo/fire_act() +/obj/item/voodoo/fire_act(exposed_temperature, exposed_volume) if(target) target.adjust_fire_stacks(20) target.IgniteMob() @@ -596,3 +568,76 @@ var/global/list/multiverse = list() heal_burn = 25 heal_oxy = 25 +//Warp Whistle: Provides uncontrolled long distance teleportation. + +/obj/item/warpwhistle + name = "warp whistle" + desc = "One toot on this whistle will send you to a far away land!" + icon = 'icons/obj/wizard.dmi' + icon_state = "whistle" + var/on_cooldown = 0 //0: usable, 1: in use, 2: on cooldown + var/mob/living/carbon/last_user + +/obj/item/warpwhistle/proc/interrupted(mob/living/carbon/user) + if(!user || qdeleted(src)) + on_cooldown = FALSE + return TRUE + return FALSE + +/obj/item/warpwhistle/attack_self(mob/living/carbon/user) + if(!istype(user) || on_cooldown) + return + on_cooldown = TRUE + last_user = user + var/turf/T = get_turf(user) + playsound(T,'sound/magic/WarpWhistle.ogg', 200, 1) + user.canmove = 0 + PoolOrNew(/obj/effect/overlay/temp/tornado,T) + sleep(20) + if(interrupted(user)) + return + user.invisibility = INVISIBILITY_MAXIMUM + user.status_flags |= GODMODE + sleep(20) + if(interrupted(user)) + return + var/breakout = 0 + while(breakout < 50) + var/turf/potential_T = find_safe_turf() + if(T.z != potential_T.z || abs(get_dist_euclidian(potential_T,T)) > 50 - breakout) + user.forceMove(potential_T) + user.canmove = 0 + T = potential_T + break + breakout += 1 + PoolOrNew(/obj/effect/overlay/temp/tornado,T) + sleep(20) + if(interrupted(user)) + return + user.invisibility = initial(user.invisibility) + user.status_flags &= ~GODMODE + user.canmove = 1 + on_cooldown = 2 + sleep(40) + on_cooldown = 0 + +/obj/item/warpwhistle/Destroy() + if(on_cooldown == 1 && last_user) //Flute got dunked somewhere in the teleport + last_user.invisibility = initial(last_user.invisibility) + last_user.status_flags &= ~GODMODE + last_user.canmove = 1 + return ..() + +/obj/effect/overlay/temp/tornado + icon = 'icons/obj/wizard.dmi' + icon_state = "tornado" + name = "tornado" + desc = "This thing sucks!" + layer = FLY_LAYER + randomdir = 0 + duration = 40 + pixel_x = 500 + +/obj/effect/overlay/temp/tornado/New(loc) + ..() + animate(src, pixel_x = -500, time = 40) diff --git a/code/game/gamemodes/wizard/raginmages.dm b/code/game/gamemodes/wizard/raginmages.dm index ff8537360d..4805c88492 100644 --- a/code/game/gamemodes/wizard/raginmages.dm +++ b/code/game/gamemodes/wizard/raginmages.dm @@ -3,6 +3,10 @@ config_tag = "raginmages" required_players = 20 use_huds = 1 + announce_span = "userdanger" + announce_text = "There are many, many wizards attacking the station!\n\ + Wizards: Accomplish your objectives and cause utter catastrophe!\n\ + Crew: Try not to die..." var/max_mages = 0 var/making_mage = 0 var/mages_made = 1 @@ -12,10 +16,6 @@ var/spawn_delay_min = 500 var/spawn_delay_max = 700 -/datum/game_mode/wizard/announce() - world << "The current game mode is - Ragin' Mages!" - world << "The Space Wizard Federation is pissed, help defeat all the space wizards!" - /datum/game_mode/wizard/raginmages/post_setup() ..() var/playercount = 0 @@ -47,7 +47,7 @@ for(var/datum/mind/wizard in wizards) if(!istype(wizard.current,/mob/living/carbon)) continue - if(istype(wizard.current,/mob/living/carbon/brain)) + if(istype(wizard.current,/mob/living/brain)) continue if(wizard.current.stat==DEAD) continue @@ -158,3 +158,5 @@ time_check = 250 spawn_delay_min = 50 spawn_delay_max = 150 + announce_text = "CRAAAWLING IIIN MY SKIIIN\n\ + THESE WOOOUNDS THEY WIIIL NOT HEEEAL" diff --git a/code/game/gamemodes/wizard/soulstone.dm b/code/game/gamemodes/wizard/soulstone.dm index 8e0793ff4a..d5d7b88848 100644 --- a/code/game/gamemodes/wizard/soulstone.dm +++ b/code/game/gamemodes/wizard/soulstone.dm @@ -4,7 +4,7 @@ icon_state = "soulstone" item_state = "electronic" desc = "A fragment of the legendary treasure known simply as the 'Soul Stone'. The shard still flickers with a fraction of the full artefact's power." - w_class = 1 + w_class = WEIGHT_CLASS_TINY slot_flags = SLOT_BELT origin_tech = "bluespace=4;materials=5" var/usability = 0 @@ -53,7 +53,7 @@ user << "There is no power left in the shard.\ " return - if(!istype(M, /mob/living/carbon/human))//If target is not a human. + if(!ishuman(M))//If target is not a human. return ..() if(iscultist(M)) user << "\"Come now, do not capture your fellow's soul.\"" @@ -200,19 +200,14 @@ /proc/makeNewConstruct(mob/living/simple_animal/hostile/construct/ctype, mob/target, mob/stoner = null, cultoverride = 0, loc_override = null) var/mob/living/simple_animal/hostile/construct/newstruct = new ctype((loc_override) ? (loc_override) : (get_turf(target))) - newstruct.faction |= "\ref[stoner]" + if(stoner) + newstruct.faction |= "\ref[stoner]" newstruct.key = target.key - if(newstruct.mind) - if(stoner && iscultist(stoner) || cultoverride) - if(ticker.mode.name == "cult") - ticker.mode:add_cultist(newstruct.mind, 0) - else - ticker.mode.cult += newstruct.mind - ticker.mode.update_cult_icons_added(newstruct.mind) - newstruct << newstruct.playstyle_string - if(iscultist(stoner)) - newstruct << "You are still bound to serve the cult and [stoner], follow their orders and help them complete their goals at all costs." - else + if(newstruct.mind && ((stoner && iscultist(stoner)) || cultoverride) && ticker && ticker.mode) + ticker.mode.add_cultist(newstruct.mind, 0) + if(iscultist(stoner) || cultoverride) + newstruct << "You are still bound to serve the cult[stoner ? " and [stoner]":""], follow their orders and help them complete their goals at all costs." + else if(stoner) newstruct << "You are still bound to serve your creator, [stoner], follow their orders and help them complete their goals at all costs." newstruct.cancel_camera() @@ -220,12 +215,7 @@ /obj/item/device/soulstone/proc/init_shade(mob/living/carbon/human/T, mob/U, vic = 0) new /obj/effect/decal/remains/human(T.loc) //Spawns a skeleton T.invisibility = INVISIBILITY_ABSTRACT - var/atom/movable/overlay/animation = new /atom/movable/overlay( T.loc ) - animation.icon_state = "blank" - animation.icon = 'icons/mob/mob.dmi' - animation.master = T - flick("dust-h", animation) - qdel(animation) + T.dust_animation() var/mob/living/simple_animal/shade/S = new /mob/living/simple_animal/shade(src) S.status_flags |= GODMODE //So they won't die inside the stone somehow S.canmove = 0//Can't move out of the soul stone @@ -256,7 +246,7 @@ break if(!chosen_ghost) //Failing that, we grab a ghost - var/list/consenting_candidates = pollCandidates("Would you like to play as a Shade?", "Cultist", null, ROLE_CULTIST, poll_time = 100) + var/list/consenting_candidates = pollCandidates("Would you like to play as a Shade?", "Cultist", null, ROLE_CULTIST, poll_time = 50) if(consenting_candidates.len) chosen_ghost = pick(consenting_candidates) if(!T) diff --git a/code/game/gamemodes/wizard/spellbook.dm b/code/game/gamemodes/wizard/spellbook.dm index 1e890c4151..67f204c85d 100644 --- a/code/game/gamemodes/wizard/spellbook.dm +++ b/code/game/gamemodes/wizard/spellbook.dm @@ -11,17 +11,26 @@ var/obj/effect/proc_holder/spell/S = null //Since spellbooks can be used by only one person anyway we can track the actual spell var/buy_word = "Learn" var/limit //used to prevent a spellbook_entry from being bought more than X times with one wizard spellbook + var/list/no_coexistance_typecache //Used so you can't have specific spells together + +/datum/spellbook_entry/New() + ..() + no_coexistance_typecache = typecacheof(no_coexistance_typecache) /datum/spellbook_entry/proc/IsAvailible() // For config prefs / gamemode restrictions - these are round applied return 1 + /datum/spellbook_entry/proc/CanBuy(mob/living/carbon/human/user,obj/item/weapon/spellbook/book) // Specific circumstances if(book.uses=0) dat += "[surplus] left.
    " return dat -/* + /datum/spellbook_entry/item/staffchange name = "Staff of Change" desc = "An artefact that spits bolts of coruscating energy which cause the target's very form to reshape itself." @@ -278,7 +306,13 @@ desc = "A caprious tool that can fire all sorts of magic without any rhyme or reason. Using it on people you care about is not recommended." item_path = /obj/item/weapon/gun/magic/staff/chaos log_name = "SC" -*/ + +/datum/spellbook_entry/item/spellblade + name = "Spellblade" + desc = "A sword capable of firing blasts of energy which rip targets limb from limb." + item_path = /obj/item/weapon/gun/magic/staff/spellblade + log_name = "SB" + /datum/spellbook_entry/item/staffdoor name = "Staff of Door Creation" desc = "A particular staff that can mold solid metal into ornate doors. Useful for getting around in the absence of other transportation. Does not work on glass." @@ -345,7 +379,7 @@ /datum/spellbook_entry/item/armor/Buy(mob/living/carbon/human/user,obj/item/weapon/spellbook/book) . = ..() if(.) - new /obj/item/clothing/shoes/sandal(get_turf(user)) //In case they've lost them. + new /obj/item/clothing/shoes/sandal/magic(get_turf(user)) //In case they've lost them. new /obj/item/clothing/gloves/color/purple(get_turf(user))//To complete the outfit /datum/spellbook_entry/item/contract @@ -378,20 +412,6 @@ limit = 3 category = "Assistance" -/datum/spellbook_entry/item/hadesstone - name = "Dark Seed" - desc = "A small, dark stone that whispers to you menacingly.\ - The seed calls for the corpses of living beings,\ - in order to summon an ancient, powerful being.\ - The power and tenacity of the summoned being directly\ - correlates to the power of the absorbed beings,\ - so choose your targets wisely." - item_path = /obj/item/hades_summoner - cost = 2 - log_name = "DS" - limit = 1 - category = "Assistance" - /datum/spellbook_entry/item/mjolnir name = "Mjolnir" desc = "A mighty hammer on loan from Thor, God of Thunder. It crackles with barely contained power." @@ -404,17 +424,30 @@ item_path = /obj/item/weapon/twohanded/singularityhammer log_name = "SI" -/datum/spellbook_entry/item/cursed_heart - name = "Cursed Heart" - desc = "A heart that has been revived by dark magicks, the user must \ - concentrate to ensure the heart beats, but every beat heals them. It \ - must beat every 6 seconds. The heart is fickle, and will not work for a \ - lich." - item_path = /obj/item/organ/heart/cursed/wizard - log_name = "CH" - cost = 1 +/datum/spellbook_entry/item/battlemage + name = "Battlemage Armour" + desc = "An ensorcelled suit of armour, protected by a powerful shield. The shield can completly negate sixteen attacks before being permanently depleted." + item_path = /obj/item/clothing/suit/space/hardsuit/shielded/wizard + log_name = "BM" + limit = 1 category = "Defensive" +/datum/spellbook_entry/item/battlemage_charge + name = "Battlemage Armour Charges" + desc = "A powerful defensive rune, it will grant eight additional charges to a suit of battlemage armour." + item_path = /obj/item/wizard_armour_charge + log_name = "AC" + category = "Defensive" + cost = 1 + +/datum/spellbook_entry/item/warpwhistle + name = "Warp Whistle" + desc = "A strange whistle that will transport you to a distant safe place on the station. There is a window of vulnerability at the begining of every use." + item_path = /obj/item/warpwhistle + log_name = "WW" + category = "Mobility" + cost = 1 + /datum/spellbook_entry/summon name = "Summon Stuff" category = "Rituals" @@ -439,7 +472,6 @@ /datum/spellbook_entry/summon/guns name = "Summon Guns" - category = "Rituals" desc = "Nothing could possibly go wrong with arming a crew of lunatics just itching for an excuse to kill you. Just be careful not to stand still too long!" log_name = "SG" @@ -451,15 +483,14 @@ /datum/spellbook_entry/summon/guns/Buy(mob/living/carbon/human/user,obj/item/weapon/spellbook/book) feedback_add_details("wizard_spell_learned",log_name) rightandwrong(0, user, 25) + active = 1 playsound(get_turf(user),"sound/magic/CastSummon.ogg",50,1) user << "You have cast summon guns!" return 1 /datum/spellbook_entry/summon/magic name = "Summon Magic" - category = "Challenges" desc = "Share the wonders of magic with the crew and show them why they aren't to be trusted with it at the same time." - cost = 0 log_name = "SU" /datum/spellbook_entry/summon/magic/IsAvailible() @@ -469,11 +500,10 @@ /datum/spellbook_entry/summon/magic/Buy(mob/living/carbon/human/user,obj/item/weapon/spellbook/book) feedback_add_details("wizard_spell_learned",log_name) - rightandwrong(1, user, 0) - book.uses += 1 + rightandwrong(1, user, 25) active = 1 playsound(get_turf(user),"sound/magic/CastSummon.ogg",50,1) - user << "You have cast summon magic and gained an extra charge for your spellbook." + user << "You have cast summon magic!" return 1 /datum/spellbook_entry/summon/events @@ -509,10 +539,10 @@ icon_state ="book" throw_speed = 2 throw_range = 5 - w_class = 1 + w_class = WEIGHT_CLASS_TINY + persistence_replacement = /obj/item/weapon/spellbook/oneuse/random var/uses = 10 var/temp = null - var/op = 1 var/tab = null var/mob/living/carbon/human/owner var/list/datum/spellbook_entry/entries = list() @@ -662,7 +692,7 @@ if(H.stat || H.restrained()) return - if(!istype(H, /mob/living/carbon/human)) + if(!ishuman(H)) return 1 if(H.mind.special_role == "apprentice") @@ -670,7 +700,7 @@ return var/datum/spellbook_entry/E = null - if(loc == H || (in_range(src, H) && istype(loc, /turf))) + if(loc == H || (in_range(src, H) && isturf(loc))) H.set_machine(src) if(href_list["buy"]) E = entries[text2num(href_list["buy"])] @@ -701,6 +731,7 @@ name = "spellbook of " uses = 1 desc = "This template spellbook was never meant for the eyes of man..." + persistence_replacement = null /obj/item/weapon/spellbook/oneuse/New() ..() @@ -738,7 +769,7 @@ return /obj/item/weapon/spellbook/oneuse/fireball - spell = /obj/effect/proc_holder/spell/dumbfire/fireball + spell = /obj/effect/proc_holder/spell/fireball spellname = "fireball" icon_state ="bookfireball" desc = "This book feels warm to the touch." @@ -806,7 +837,7 @@ stored_swap = null /obj/item/weapon/spellbook/oneuse/forcewall - spell = /obj/effect/proc_holder/spell/aoe_turf/conjure/forcewall + spell = /obj/effect/proc_holder/spell/targeted/forcewall spellname = "forcewall" icon_state ="bookforcewall" desc = "This book has a dedication to mimes everywhere inside the front cover." @@ -814,10 +845,8 @@ /obj/item/weapon/spellbook/oneuse/forcewall/recoil(mob/user) ..() user <<"You suddenly feel very solid!" - var/obj/structure/closet/statue/S = new /obj/structure/closet/statue(user.loc, user) - S.timer = 30 - user.drop_item() - + user.Stun(2) + user.petrify(30) /obj/item/weapon/spellbook/oneuse/knock spell = /obj/effect/proc_holder/spell/aoe_turf/knock @@ -837,7 +866,7 @@ desc = "This book is more horse than your mind has room for." /obj/item/weapon/spellbook/oneuse/barnyard/recoil(mob/living/carbon/user) - if(istype(user, /mob/living/carbon/human)) + if(ishuman(user)) user <<"HOR-SIE HAS RISEN" var/obj/item/clothing/mask/horsehead/magichead = new /obj/item/clothing/mask/horsehead magichead.flags |= NODROP //curses! @@ -876,3 +905,9 @@ var/real_type = pick(subtypesof(/obj/item/weapon/spellbook/oneuse)) new real_type(loc) qdel(src) + +/obj/item/weapon/spellbook/oneuse/sacredflame + spell = /obj/effect/proc_holder/spell/targeted/sacred_flame + spellname = "sacred flame" + icon_state ="booksacredflame" + desc = "Become one with the flames that burn within... and invite others to do so as well." diff --git a/code/game/gamemodes/wizard/wizard.dm b/code/game/gamemodes/wizard/wizard.dm index 7aa657c0b1..78db753835 100644 --- a/code/game/gamemodes/wizard/wizard.dm +++ b/code/game/gamemodes/wizard/wizard.dm @@ -11,13 +11,13 @@ recommended_enemies = 1 enemy_minimum_age = 14 round_ends_with_antag_death = 1 + announce_span = "danger" + announce_text = "There is a space wizard attacking the station!\n\ + Wizard: Accomplish your objectives and cause mayhem on the station.\n\ + Crew: Eliminate the wizard before they can succeed!" var/use_huds = 0 var/finished = 0 -/datum/game_mode/wizard/announce() - world << "The current game mode is - Wizard!" - world << "There is a SPACE WIZARD\black on the station. You can't let him achieve his objective!" - /datum/game_mode/wizard/pre_setup() var/datum/mind/wizard = pick(antag_candidates) @@ -118,10 +118,7 @@ wizard.current << "You are the Space Wizard!" wizard.current << "The Space Wizards Federation has given you the following tasks:" - var/obj_count = 1 - for(var/datum/objective/objective in wizard.objectives) - wizard.current << "Objective #[obj_count]: [objective.explanation_text]" - obj_count++ + wizard.announce_objectives() return @@ -140,14 +137,16 @@ qdel(wizard_mob.wear_suit) qdel(wizard_mob.head) qdel(wizard_mob.shoes) - qdel(wizard_mob.r_hand) + for(var/obj/item/I in wizard_mob.held_items) + wizard_mob.unEquip(I) + qdel(I) qdel(wizard_mob.r_store) qdel(wizard_mob.l_store) wizard_mob.set_species(/datum/species/human) wizard_mob.equip_to_slot_or_del(new /obj/item/device/radio/headset(wizard_mob), slot_ears) wizard_mob.equip_to_slot_or_del(new /obj/item/clothing/under/color/lightpurple(wizard_mob), slot_w_uniform) - wizard_mob.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(wizard_mob), slot_shoes) + wizard_mob.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal/magic(wizard_mob), slot_shoes) wizard_mob.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe(wizard_mob), slot_wear_suit) wizard_mob.equip_to_slot_or_del(new /obj/item/clothing/head/wizard(wizard_mob), slot_head) wizard_mob.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(wizard_mob), slot_back) @@ -155,13 +154,12 @@ wizard_mob.equip_to_slot_or_del(new /obj/item/weapon/teleportation_scroll(wizard_mob), slot_r_store) var/obj/item/weapon/spellbook/spellbook = new /obj/item/weapon/spellbook(wizard_mob) spellbook.owner = wizard_mob - wizard_mob.equip_to_slot_or_del(spellbook, slot_r_hand) + wizard_mob.put_in_hands_or_del(spellbook) wizard_mob << "You will find a list of available spells in your spell book. Choose your magic arsenal carefully." wizard_mob << "The spellbook is bound to you, and others cannot use it." wizard_mob << "In your pockets you will find a teleport scroll. Use it as needed." wizard_mob.mind.store_memory("Remember: do not forget to prepare your spells.") - wizard_mob.update_icons() return 1 @@ -181,6 +179,9 @@ if(finished) feedback_set_details("round_end_result","loss - wizard killed") world << "The wizard[(wizards.len>1)?"s":""] has been killed by the crew! The Space Wizards Federation has been taught a lesson they will not soon forget!" + + ticker.news_report = WIZARD_KILLED + ..() return 1 @@ -245,22 +246,6 @@ qdel(spell_to_remove) mind.spell_list -= spell_to_remove -/*Checks if the wizard can cast spells. -Made a proc so this is not repeated 14 (or more) times.*/ -/mob/proc/casting() -//Removed the stat check because not all spells require clothing now. - if(!istype(usr:wear_suit, /obj/item/clothing/suit/wizrobe)) - usr << "I don't feel strong enough without my robe." - return 0 - if(!istype(usr:shoes, /obj/item/clothing/shoes/sandal)) - usr << "I don't feel strong enough without my sandals." - return 0 - if(!istype(usr:head, /obj/item/clothing/head/wizard)) - usr << "I don't feel strong enough without my hat." - return 0 - else - return 1 - //returns whether the mob is a wizard (or apprentice) /proc/iswizard(mob/living/M) return istype(M) && M.mind && ticker && ticker.mode && ((M.mind in ticker.mode.wizards) || (M.mind in ticker.mode.apprentices)) diff --git a/code/game/machinery/PDApainter.dm b/code/game/machinery/PDApainter.dm index e2dc1ca696..a0c92ca988 100644 --- a/code/game/machinery/PDApainter.dm +++ b/code/game/machinery/PDApainter.dm @@ -7,7 +7,8 @@ anchored = 1 var/obj/item/device/pda/storedpda = null var/list/colorlist = list() - var/health = 100 + obj_integrity = 200 + max_integrity = 200 /obj/machinery/pdapainter/update_icon() @@ -40,6 +41,25 @@ src.colorlist += D +/obj/machinery/pdapainter/Destroy() + if(storedpda) + qdel(storedpda) + storedpda = null + return ..() + +/obj/machinery/pdapainter/on_deconstruction() + if(storedpda) + storedpda.forceMove(loc) + storedpda = null + +/obj/machinery/pdapainter/contents_explosion(severity, target) + if(storedpda) + storedpda.ex_act(severity, target) + +/obj/machinery/pdapainter/handle_atom_del(atom/A) + if(A == storedpda) + storedpda = null + update_icon() /obj/machinery/pdapainter/attackby(obj/item/O, mob/user, params) if(default_unfasten_wrench(user, O)) @@ -51,7 +71,7 @@ user << "There is already a PDA inside!" return else - var/obj/item/device/pda/P = user.get_active_hand() + var/obj/item/device/pda/P = user.get_active_held_item() if(istype(P)) if(!user.drop_item()) return @@ -60,43 +80,30 @@ P.add_fingerprint(user) update_icon() - else if(istype(O, /obj/item/weapon/weldingtool) && user.a_intent != "harm") + else if(istype(O, /obj/item/weapon/weldingtool) && user.a_intent != INTENT_HARM) var/obj/item/weapon/weldingtool/WT = O if(stat & BROKEN) if(WT.remove_fuel(0,user)) user.visible_message("[user] is repairing [src].", \ "You begin repairing [src]...", \ "You hear welding.") - playsound(loc, 'sound/items/Welder.ogg', 40, 1) - if(do_after(user,40/WT.toolspeed, 1, target = src)) + playsound(loc, WT.usesound, 40, 1) + if(do_after(user,40*WT.toolspeed, 1, target = src)) if(!WT.isOn() || !(stat & BROKEN)) return user << "You repair [src]." playsound(loc, 'sound/items/Welder2.ogg', 50, 1) stat &= ~BROKEN - health = initial(health) + obj_integrity = max_integrity update_icon() else user << "[src] does not need repairs." else return ..() -/obj/machinery/pdapainter/take_damage(damage, damage_type = BRUTE, sound_effect = 1) - switch(damage_type) - if(BRUTE) - if(sound_effect) - if(damage) - playsound(loc, 'sound/weapons/smash.ogg', 50, 1) - else - playsound(loc, 'sound/weapons/tap.ogg', 50, 1) - if(BURN) - if(sound_effect) - playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) - else - return - if(!(stat & BROKEN)) - health -= damage - if(health <= 0) +/obj/machinery/pdapainter/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + if(!(stat & BROKEN)) stat |= BROKEN update_icon() @@ -139,4 +146,4 @@ /obj/machinery/pdapainter/power_change() ..() - update_icon() \ No newline at end of file + update_icon() diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index 1f1cfd233f..945ec5101d 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -13,22 +13,17 @@ density = FALSE anchored = TRUE state_open = TRUE - use_auto_lights = 1 - light_power_on = 1 - light_range_on = 3 - light_color = LIGHT_COLOR_HALOGEN var/efficiency = 1 var/min_health = -25 var/list/available_chems var/controls_inside = FALSE var/list/possible_chems = list( list("epinephrine", "morphine", "salbutamol", "bicaridine", "kelotane"), - list("oculine"), + list("oculine","inacusiate"), list("antitoxin", "mutadone", "mannitol", "pen_acid"), list("omnizine") ) - /obj/machinery/sleeper/New() ..() var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/sleeper(null) @@ -65,13 +60,13 @@ if(state_open) icon_state += "-open" -/obj/machinery/sleeper/container_resist() +/obj/machinery/sleeper/container_resist(mob/living/user) visible_message("[occupant] emerges from [src]!", "You climb out of [src]!") open_machine() /obj/machinery/sleeper/relaymove(mob/user) - container_resist() + container_resist(user) /obj/machinery/sleeper/open_machine() if(!state_open && !panel_open) @@ -83,25 +78,11 @@ if(occupant && occupant.stat != DEAD) occupant << "You feel cool air surround you. You go numb as your senses turn inward." -/obj/machinery/sleeper/attack_animal(mob/living/simple_animal/M) - if(M.environment_smash) - M.do_attack_animation(src) - visible_message("[M.name] smashes [src] apart!") - qdel(src) - /obj/machinery/sleeper/emp_act(severity) if(is_operational() && occupant) open_machine() ..(severity) -/obj/machinery/sleeper/blob_act(obj/effect/blob/B) - if(prob(75)) - var/turf/T = get_turf(src) - for(var/atom/movable/A in src) - A.forceMove(T) - A.blob_act(B) - qdel(src) - /obj/machinery/sleeper/MouseDrop_T(mob/target, mob/user) if(user.stat || user.lying || !Adjacent(user) || !user.Adjacent(target) || !iscarbon(target) || !user.IsAdvancedToolUser()) return @@ -148,7 +129,7 @@ data["occupant"]["stat"] = occupant.stat data["occupant"]["health"] = occupant.health data["occupant"]["maxHealth"] = occupant.maxHealth - data["occupant"]["minHealth"] = config.health_threshold_dead + data["occupant"]["minHealth"] = HEALTH_THRESHOLD_DEAD data["occupant"]["bruteLoss"] = occupant.getBruteLoss() data["occupant"]["oxyLoss"] = occupant.getOxyLoss() data["occupant"]["toxLoss"] = occupant.getToxLoss() @@ -189,8 +170,8 @@ if(!occupant) return var/amount = occupant.reagents.get_reagent_amount(chem) + 10 <= 20 * efficiency - var/health = occupant.health > min_health || chem == "epinephrine" - return amount && health + var/occ_health = occupant.health > min_health || chem == "epinephrine" + return amount && occ_health /obj/machinery/sleeper/syndie diff --git a/code/game/machinery/ai_slipper.dm b/code/game/machinery/ai_slipper.dm index c09813dac2..54c2ce30e3 100644 --- a/code/game/machinery/ai_slipper.dm +++ b/code/game/machinery/ai_slipper.dm @@ -4,6 +4,10 @@ icon_state = "motion3" layer = PROJECTILE_HIT_THRESHHOLD_LAYER anchored = 1 + obj_integrity = 200 + max_integrity = 200 + armor = list(melee = 50, bullet = 20, laser = 20, energy = 20, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 30) + var/uses = 20 var/disabled = 1 var/lethal = 0 @@ -77,7 +81,7 @@ if(..()) return if (src.locked) - if (!(istype(usr, /mob/living/silicon)|| IsAdminGhost(usr))) + if(!(issilicon(usr)|| IsAdminGhost(usr))) usr << "Control panel is locked!" return if (href_list["toggleOn"]) diff --git a/code/game/machinery/airlock_control.dm b/code/game/machinery/airlock_control.dm index 6815665720..d0f36fba36 100644 --- a/code/game/machinery/airlock_control.dm +++ b/code/game/machinery/airlock_control.dm @@ -100,6 +100,7 @@ icon = 'icons/obj/airlock_machines.dmi' icon_state = "airlock_sensor_off" name = "airlock sensor" + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF anchored = 1 power_channel = ENVIRON diff --git a/code/game/machinery/announcement_system.dm b/code/game/machinery/announcement_system.dm index 61b25fc15d..b675c9196f 100644 --- a/code/game/machinery/announcement_system.dm +++ b/code/game/machinery/announcement_system.dm @@ -9,17 +9,10 @@ var/list/announcement_systems = list() icon_state = "AAS_On" var/obj/item/device/radio/headset/radio - use_auto_lights = 1 - light_power_on = 1 - light_range_on = 2 - light_color = LIGHT_COLOR_BLUE - verb_say = "coldly states" verb_ask = "queries" verb_exclaim = "alarms" - var/broken = 0 - idle_power_usage = 20 active_power_usage = 50 @@ -68,12 +61,13 @@ var/list/announcement_systems = list() else overlays -= pinklight - if(broken) + if(stat & BROKEN) add_overlay(errorlight) else overlays -= errorlight /obj/machinery/announcement_system/Destroy() + qdel(radio) announcement_systems -= src //"OH GOD WHY ARE THERE 100,000 LISTED ANNOUNCEMENT SYSTEMS?!!" return ..() @@ -89,9 +83,9 @@ var/list/announcement_systems = list() update_icon() else if(default_deconstruction_crowbar(P)) return - else if(istype(P, /obj/item/device/multitool) && panel_open && broken) + else if(istype(P, /obj/item/device/multitool) && panel_open && (stat & BROKEN)) user << "You reset [src]'s firmware." - broken = 0 + stat &= ~BROKEN update_icon() else return ..() @@ -122,7 +116,7 @@ var/list/announcement_systems = list() //config stuff /obj/machinery/announcement_system/interact(mob/user) - if(broken) + if(stat & BROKEN) visible_message("[src] buzzes.", "You hear a faint buzz.") playsound(src.loc, 'sound/machines/buzz-two.ogg', 50, 1) return @@ -136,7 +130,7 @@ var/list/announcement_systems = list() popup.open() /obj/machinery/announcement_system/Topic(href, href_list) - if(broken) + if(stat & BROKEN) visible_message("[src] buzzes.", "You hear a faint buzz.") playsound(src.loc, 'sound/machines/buzz-two.ogg', 50, 1) return @@ -167,13 +161,13 @@ var/list/announcement_systems = list() /obj/machinery/announcement_system/attack_ai(mob/living/silicon/ai/user) if(!isAI(user)) return - if(broken) + if(stat & BROKEN) user << "[src]'s firmware appears to be malfunctioning!" return interact(user) /obj/machinery/announcement_system/proc/act_up() //does funny breakage stuff - broken = 1 + stat |= BROKEN update_icon() arrival = pick("#!@%ERR-34%2 CANNOT LOCAT@# JO# F*LE!", "CRITICAL ERROR 99.", "ERR)#: DA#AB@#E NOT F(*ND!") diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index 4927bf87db..cf3bbf1f22 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -8,11 +8,6 @@ icon_state = "autolathe" density = 1 - use_auto_lights = 1 - light_power_on = 1 - light_range_on = 3 - light_color = LIGHT_COLOR_CYAN - var/operating = 0 anchored = 1 var/list/L = list() @@ -97,7 +92,7 @@ popup.set_content(dat) popup.open() -/obj/machinery/autolathe/deconstruction() +/obj/machinery/autolathe/on_deconstruction() materials.retrieve_all() /obj/machinery/autolathe/attackby(obj/item/O, mob/user, params) @@ -120,7 +115,7 @@ wires.interact(user) return 1 - if(user.a_intent == "harm") //so we can hit the machine + if(user.a_intent == INTENT_HARM) //so we can hit the machine return ..() if(stat) @@ -133,7 +128,9 @@ busy = 1 var/obj/item/weapon/disk/design_disk/D = O if(do_after(user, 14.4, target = src)) - files.AddDesign2Known(D.blueprint) + for(var/B in D.blueprints) + if(B) + files.AddDesign2Known(B) busy = 0 return 1 @@ -347,6 +344,9 @@ return dat /obj/machinery/autolathe/proc/can_build(datum/design/D) + if(D.make_reagents.len) + return 0 + var/coeff = (ispath(D.build_path,/obj/item/stack) ? 1 : prod_coeff) if(D.materials[MAT_METAL] && (materials.amount(MAT_METAL) < (D.materials[MAT_METAL] * coeff))) @@ -384,7 +384,7 @@ var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread s.set_up(5, 1, src) s.start() - if (electrocute_mob(user, get_area(src), src, 0.7)) + if (electrocute_mob(user, get_area(src), src, 0.7, TRUE)) return 1 else return 0 diff --git a/code/game/machinery/bank_machine.dm b/code/game/machinery/bank_machine.dm new file mode 100644 index 0000000000..10812f91b3 --- /dev/null +++ b/code/game/machinery/bank_machine.dm @@ -0,0 +1,71 @@ +/obj/machinery/computer/bank_machine + name = "bank machine" + desc = "A machine used to deposit and withdraw station funds." + icon = 'goon/icons/obj/goon_terminals.dmi' + idle_power_usage = 100 + var/siphoning = FALSE + var/last_warning = 0 + +/obj/machinery/computer/bank_machine/attackby(obj/item/I, mob/user) + var/value = 0 + if(istype(I, /obj/item/stack/spacecash)) + var/obj/item/stack/spacecash/C = I + value = C.value * C.amount + if(istype(I, /obj/item/weapon/coin)) + var/obj/item/weapon/coin/C = I + value = C.value + if(value) + SSshuttle.points += value + user << "You deposit [I]. The station now has [SSshuttle.points] credits." + qdel(I) + return + return ..() + + +/obj/machinery/computer/bank_machine/process() + ..() + if(siphoning) + if(SSshuttle.points < 200) + say("Station funds depleted. Halting siphon.") + siphoning = FALSE + else + var/obj/item/stack/spacecash/c200/on_turf = locate() in src.loc + if(on_turf && on_turf.amount < on_turf.max_amount) + on_turf.amount++ + else + new /obj/item/stack/spacecash/c200(get_turf(src)) + playsound(src.loc, 'sound/items/poster_being_created.ogg', 100, 1) + SSshuttle.points -= 200 + if(last_warning < world.time && prob(15)) + var/area/A = get_area(loc) + minor_announce("Unauthorized credit withdrawal underway in [A.map_name]." , "Network Breach", TRUE) + last_warning = world.time + 400 + + +/obj/machinery/computer/bank_machine/attack_hand(mob/user) + if(..()) + return + src.add_fingerprint(usr) + var/dat = "[world.name] secure vault. Authorized personnel only.
    " + dat += "Current Balance: [SSshuttle.points] credits.
    " + if(!siphoning) + dat += "Siphon Credits
    " + else + dat += "Halt Credit Siphon
    " + + dat += "Close" + + var/datum/browser/popup = new(user, "computer", "Bank Vault", 300, 200) + popup.set_content("
    [dat]
    ") + popup.set_title_image(usr.browse_rsc_icon(src.icon, src.icon_state)) + popup.open() + +/obj/machinery/computer/bank_machine/Topic(href, href_list) + if(..()) + return + if(href_list["siphon"]) + say("Siphon of station credits has begun!") + siphoning = TRUE + if(href_list["halt"]) + say("Station credit withdrawal halted.") + siphoning = FALSE \ No newline at end of file diff --git a/code/game/machinery/buttons.dm b/code/game/machinery/buttons.dm index 3cef1d4269..e74d8400d2 100644 --- a/code/game/machinery/buttons.dm +++ b/code/game/machinery/buttons.dm @@ -10,10 +10,11 @@ var/device_type = null var/id = null var/initialized = 0 - + armor = list(melee = 50, bullet = 50, laser = 50, energy = 50, bomb = 10, bio = 100, rad = 100, fire = 90, acid = 70) anchored = 1 use_power = 1 idle_power_usage = 2 + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF /obj/machinery/button/New(loc, ndir = 0, built = 0) @@ -88,8 +89,8 @@ if(!device && !board && istype(W, /obj/item/weapon/wrench)) user << "You start unsecuring the button frame..." - playsound(loc, 'sound/items/Ratchet.ogg', 50, 1) - if(do_after(user, 40/W.toolspeed, target = src)) + playsound(loc, W.usesound, 50, 1) + if(do_after(user, 40*W.toolspeed, target = src)) user << "You unsecure the button frame." transfer_fingerprints_to(new /obj/item/wallframe/button(get_turf(src))) playsound(loc, 'sound/items/Deconstruct.ogg', 50, 1) @@ -98,7 +99,7 @@ update_icon() return - if(user.a_intent != "harm" && !(W.flags & NOBLUDGEON)) + if(user.a_intent != INTENT_HARM && !(W.flags & NOBLUDGEON)) return src.attack_hand(user) else return ..() @@ -146,7 +147,7 @@ if((stat & (NOPOWER|BROKEN))) return - if(device && device.cooldown) + if(device && device.next_activate > world.time) return if(!allowed(user)) diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index 3a40da5a68..7ac6fc20b6 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -12,7 +12,12 @@ active_power_usage = 10 layer = WALL_OBJ_LAYER - var/health = 50 + resistance_flags = FIRE_PROOF + + armor = list(melee = 50, bullet = 20, laser = 20, energy = 20, bomb = 0, bio = 0, rad = 0, fire = 90, acid = 50) + obj_integrity = 100 + max_integrity = 100 + integrity_failure = 50 var/list/network = list("SS13") var/c_tag = null var/c_tag_order = 999 @@ -21,7 +26,7 @@ var/start_active = 0 //If it ignores the random chance to start broken on round start var/invuln = null var/obj/item/device/camera_bug/bug = null - var/obj/machinery/camera_assembly/assembly = null + var/obj/structure/camera_assembly/assembly = null //OTHER @@ -83,7 +88,7 @@ network = list() cameranet.removeCamera(src) stat |= EMPED - set_light(0) + SetLuminosity(0) emped = emped+1 //Increase the number of consecutive EMP's update_icon() var/thisemp = emped //Take note of which EMP this proc is for @@ -105,17 +110,16 @@ O << "The screen bursts into static." ..() +/obj/machinery/camera/tesla_act(var/power)//EMP proof upgrade also makes it tesla immune + if(isEmpProof()) + return + ..() + qdel(src)//to prevent bomb testing camera from exploding over and over forever /obj/machinery/camera/ex_act(severity, target) - if(src.invuln) + if(invuln) return - switch(severity) - if(1) - qdel(src) - if(2) - take_damage(50, BRUTE, 0) - else - take_damage(rand(30,60), BRUTE, 0) + ..() /obj/machinery/camera/proc/setViewRange(num = 7) src.view_range = num @@ -140,7 +144,7 @@ if(panel_open) if(istype(W, /obj/item/weapon/wirecutters)) //enable/disable the camera toggle_cam(user, 1) - health = initial(health) //this is a pretty simplistic way to heal the camera, but there's no reason for this to be complex. + obj_integrity = max_integrity //this is a pretty simplistic way to heal the camera, but there's no reason for this to be complex. return else if(istype(W, /obj/item/device/multitool)) //change focus @@ -151,17 +155,13 @@ else if(istype(W, /obj/item/weapon/weldingtool)) if(weld(W, user)) visible_message("[user] unwelds [src], leaving it as just a frame screwed to the wall.", "You unweld [src], leaving it as just a frame screwed to the wall") - if(!assembly) - assembly = new() - assembly.loc = src.loc - assembly.state = 1 - assembly.setDir(src.dir) - assembly = null - qdel(src) + deconstruct(TRUE) return else if(istype(W, /obj/item/device/analyzer)) if(!isXRay()) + if(!user.drop_item(W)) + return upgradeXRay() qdel(W) user << "[msg]" @@ -206,7 +206,7 @@ U << "You hold \the [itemname] up to the camera..." U.changeNext_move(CLICK_CD_MELEE) for(var/mob/O in player_list) - if(istype(O, /mob/living/silicon/ai)) + if(isAI(O)) var/mob/living/silicon/ai/AI = O if(AI.control_disabled || (AI.stat == DEAD)) return @@ -241,26 +241,31 @@ return ..() -/obj/machinery/camera/take_damage(damage, damage_type = BRUTE, sound_effect = 1) - switch(damage_type) - if(BRUTE) - if(sound_effect) - if(damage) - playsound(src, 'sound/weapons/smash.ogg', 50, 1) - else - playsound(src, 'sound/weapons/tap.ogg', 50, 1) - if(BURN) - if(sound_effect) - playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) - else - return - if(damage < 10) //camera has a damage resistance threshold - return - health = max(0, health - damage) - if(!health && status) +/obj/machinery/camera/run_obj_armor(damage_amount, damage_type, damage_flag = 0, attack_dir) + if(damage_flag == "melee" && damage_amount < 12 && !(stat & BROKEN)) + return 0 + . = ..() + +/obj/machinery/camera/obj_break(damage_flag) + if(status && !(flags & NODECONSTRUCT)) triggerCameraAlarm() toggle_cam(null, 0) +/obj/machinery/camera/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + if(disassembled) + if(!assembly) + assembly = new() + assembly.loc = src.loc + assembly.state = 1 + assembly.setDir(dir) + assembly = null + else + var/obj/item/I = new /obj/item/wallframe/camera (loc) + I.obj_integrity = I.max_integrity * 0.5 + new /obj/item/stack/cable_coil(loc, 2) + qdel(src) + /obj/machinery/camera/update_icon() if(!status) icon_state = "[initial(icon_state)]1" @@ -274,7 +279,7 @@ if(can_use()) cameranet.addCamera(src) else - set_light(0) + SetLuminosity(0) cameranet.removeCamera(src) cameranet.updateChunk(x, y, z) var/change_msg = "deactivates" @@ -369,9 +374,9 @@ return 0 user << "You start to weld [src]..." - playsound(src.loc, 'sound/items/Welder.ogg', 50, 1) + playsound(src.loc, WT.usesound, 50, 1) busy = 1 - if(do_after(user, 100, target = src)) + if(do_after(user, 100*WT.toolspeed, target = src)) busy = 0 if(!WT.isOn()) return 0 @@ -385,13 +390,9 @@ if(cam == src) return if(on) - src.set_light(AI_CAMERA_LUMINOSITY) + src.SetLuminosity(AI_CAMERA_LUMINOSITY) else - src.set_light(0) - -/obj/machinery/camera/bullet_act(obj/item/projectile/P) - . = ..() - take_damage(P.damage, P.damage_type, 0) + src.SetLuminosity(0) /obj/machinery/camera/portable //Cameras which are placed inside of things, such as helmets. var/turf/prev_turf diff --git a/code/game/machinery/camera/camera_assembly.dm b/code/game/machinery/camera/camera_assembly.dm index 7b15b7f53e..5099dc820c 100644 --- a/code/game/machinery/camera/camera_assembly.dm +++ b/code/game/machinery/camera/camera_assembly.dm @@ -4,19 +4,21 @@ icon = 'icons/obj/monitors.dmi' icon_state = "cameracase" materials = list(MAT_METAL=400, MAT_GLASS=250) - result_path = /obj/machinery/camera_assembly + result_path = /obj/structure/camera_assembly -/obj/machinery/camera_assembly +/obj/structure/camera_assembly name = "camera assembly" desc = "The basic construction for Nanotrasen-Always-Watching-You cameras." icon = 'icons/obj/monitors.dmi' icon_state = "camera1" + obj_integrity = 150 + max_integrity = 150 // Motion, EMP-Proof, X-Ray var/list/obj/item/possible_upgrades = list(/obj/item/device/assembly/prox_sensor, /obj/item/stack/sheet/mineral/plasma, /obj/item/device/analyzer) var/list/upgrades = list() var/state = 1 - var/busy = 0 + /* 1 = Wrenched in place 2 = Welded in place @@ -24,12 +26,12 @@ 4 = Screwdriver panel closed and is fully built (you cannot attach upgrades) */ -/obj/machinery/camera_assembly/New(loc, ndir, building) +/obj/structure/camera_assembly/New(loc, ndir, building) ..() if(building) setDir(ndir) -/obj/machinery/camera_assembly/attackby(obj/item/W, mob/living/user, params) +/obj/structure/camera_assembly/attackby(obj/item/W, mob/living/user, params) switch(state) if(1) // State 1 @@ -73,14 +75,14 @@ if(istype(W, /obj/item/weapon/screwdriver)) playsound(src.loc, W.usesound, 50, 1) - var/input = stripped_input(usr, "Which networks would you like to connect this camera to? Seperate networks with a comma. No Spaces!\nFor example: SS13,Security,Secret ", "Set Network", "SS13") + var/input = stripped_input(user, "Which networks would you like to connect this camera to? Seperate networks with a comma. No Spaces!\nFor example: SS13,Security,Secret ", "Set Network", "SS13") if(!input) - usr << "No input found, please hang up and try your call again!" + user << "No input found, please hang up and try your call again!" return var/list/tempnetwork = splittext(input, ",") if(tempnetwork.len < 1) - usr << "No network found, please hang up and try your call again!" + user << "No network found, please hang up and try your call again!" return state = 4 @@ -103,11 +105,11 @@ // Upgrades! if(is_type_in_list(W, possible_upgrades) && !is_type_in_list(W, upgrades)) // Is a possible upgrade and isn't in the camera already. - if(!user.unEquip(W)) + if(!user.drop_item(W)) return user << "You attach \the [W] into the assembly inner circuits." upgrades += W - W.loc = src + W.forceMove(src) return // Taking out upgrades @@ -122,19 +124,18 @@ return ..() -/obj/machinery/camera_assembly/proc/weld(obj/item/weapon/weldingtool/WT, mob/living/user) - if(busy) - return 0 +/obj/structure/camera_assembly/proc/weld(obj/item/weapon/weldingtool/WT, mob/living/user) if(!WT.remove_fuel(0, user)) return 0 - user << "You start to weld \the [src]..." - playsound(src.loc, 'sound/items/Welder.ogg', 50, 1) - busy = 1 - if(do_after(user, 20, target = src)) - busy = 0 - if(!WT.isOn()) - return 0 - return 1 - busy = 0 - return 0 \ No newline at end of file + playsound(src.loc, WT.usesound, 50, 1) + if(do_after(user, 20*WT.toolspeed, target = src)) + if(WT.isOn()) + playsound(loc, 'sound/items/Welder2.ogg', 50, 1) + return 1 + return 0 + +/obj/structure/camera_assembly/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + new /obj/item/stack/sheet/metal(loc) + qdel(src) diff --git a/code/game/machinery/camera/motion.dm b/code/game/machinery/camera/motion.dm index 4f2f5fafce..d9b6d047a2 100644 --- a/code/game/machinery/camera/motion.dm +++ b/code/game/machinery/camera/motion.dm @@ -1,6 +1,6 @@ /obj/machinery/camera - var/list/motionTargets = list() + var/list/localMotionTargets = list() var/detectTime = 0 var/area/ai_monitored/area_motion = null var/alarm_delay = 30 // Don't forget, there's another 3 seconds in queueAlarm() @@ -15,27 +15,31 @@ if (elapsed > alarm_delay) triggerAlarm() else if (detectTime == -1) - for (var/mob/target in motionTargets) - if (target.stat == 2) lostTarget(target) - // If not detecting with motion camera... - if (!area_motion) - // See if the camera is still in range - if(!in_range(src, target)) - // If they aren't in range, lose the target. - lostTarget(target) + for (var/mob/target in getTargetList()) + if (target.stat == DEAD || (!area_motion && !in_range(src, target))) + //If not part of a monitored area and the camera is not in range or the target is dead + lostTarget(target) + +/obj/machinery/camera/proc/getTargetList() + if(area_motion) + return area_motion.motionTargets + return localMotionTargets /obj/machinery/camera/proc/newTarget(mob/target) - if (istype(target, /mob/living/silicon/ai)) return 0 + if(isAI(target)) + return 0 if (detectTime == 0) detectTime = world.time // start the clock - if (!(target in motionTargets)) - motionTargets += target + var/list/targets = getTargetList() + if (!(target in targets)) + targets += target return 1 /obj/machinery/camera/proc/lostTarget(mob/target) - if (target in motionTargets) - motionTargets -= target - if (motionTargets.len == 0) + var/list/targets = getTargetList() + if (target in targets) + targets -= target + if (targets.len == 0) cancelAlarm() /obj/machinery/camera/proc/cancelAlarm() diff --git a/code/game/machinery/camera/tracking.dm b/code/game/machinery/camera/tracking.dm index a9cbd960f2..8ff0c52f44 100644 --- a/code/game/machinery/camera/tracking.dm +++ b/code/game/machinery/camera/tracking.dm @@ -54,7 +54,7 @@ // Human check var/human = 0 - if(istype(M, /mob/living/carbon/human)) + if(ishuman(M)) human = 1 var/name = M.name @@ -136,7 +136,7 @@ /proc/near_camera(mob/living/M) if (!isturf(M.loc)) return 0 - if(isrobot(M)) + if(iscyborg(M)) var/mob/living/silicon/robot/R = M if(!(R.camera && R.camera.can_use()) && !cameranet.checkCameraVis(M)) return 0 diff --git a/code/game/machinery/cell_charger.dm b/code/game/machinery/cell_charger.dm index 73bd329c0d..4875b15a07 100644 --- a/code/game/machinery/cell_charger.dm +++ b/code/game/machinery/cell_charger.dm @@ -65,7 +65,7 @@ anchored = !anchored user << "You [anchored ? "attach" : "detach"] the cell charger [anchored ? "to" : "from"] the ground" - playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1) + playsound(src.loc, W.usesound, 75, 1) else return ..() @@ -91,7 +91,7 @@ if(!charging) return - charging.loc = loc + charging.forceMove(loc) user << "You telekinetically remove [charging] from [src]." removecell() diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index 63104023bb..f68ff77979 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -98,35 +98,15 @@ ..() user << "The write-protect tab is set to [read_only ? "protected" : "unprotected"]." -//Health Tracker Implant - -/obj/item/weapon/implant/health - name = "health implant" - activated = 0 - var/healthstring = "" - -/obj/item/weapon/implant/health/proc/sensehealth() - if (!implanted) - return "ERROR" - else - if(isliving(implanted)) - var/mob/living/L = implanted - healthstring = "Oxygen Deprivation Damage => [round(L.getOxyLoss())]
    Fire Damage => [round(L.getFireLoss())]
    Toxin Damage => [round(L.getToxLoss())]
    Brute Force Damage => [round(L.getBruteLoss())]
    " - if (!healthstring) - healthstring = "ERROR" - return healthstring //Clonepod /obj/machinery/clonepod/examine(mob/user) ..() - if (isnull(occupant) || !is_operational()) - return - if ((!isnull(occupant)) && (occupant.stat != DEAD)) + if(mess) + user << "It's filled with blood and viscera. You swear you can see it moving..." + if (is_operational() && (!isnull(occupant)) && (occupant.stat != DEAD)) user << "Current clone cycle is [round(get_completion())]% complete." - else if(mess) - user << "It's filled with blood and vicerea. You swear you can see \ - it moving..." /obj/machinery/clonepod/proc/get_completion() . = (100 * ((occupant.health + 100) / (heal_level + 100))) @@ -153,6 +133,12 @@ var/mob/dead/observer/G = clonemind.get_ghost() if(!G) return FALSE + if(clonemind.damnation_type) //Can't clone the damned. + addtimer(src, "horrifyingsound", 0) + mess = 1 + icon_state = "pod_g" + update_icon() + return FALSE attempting = TRUE //One at a time!! locked = TRUE @@ -163,13 +149,15 @@ var/mob/living/carbon/human/H = new /mob/living/carbon/human(src) + H.hardset_dna(ui, se, H.real_name, null, mrace, features) + if(efficiency > 2) - for(var/A in bad_se_blocks) - setblock(H.dna.struc_enzymes, A, construct_block(0,2)) + var/list/unclean_mutations = (not_good_mutations|bad_mutations) + H.dna.remove_mutation_group(unclean_mutations) if(efficiency > 5 && prob(20)) - randmutg(H) + H.randmutvg() if(efficiency < 3 && prob(50)) - var/mob/M = randmutb(H) + var/mob/M = H.randmutb() if(ismob(M)) H = M @@ -182,20 +170,10 @@ icon_state = "pod_1" //Get the clone body ready - H.adjustCloneLoss(CLONE_INITIAL_DAMAGE) //Yeah, clones start with very low health, not with random, because why would they start with random health - H.adjustBrainLoss(CLONE_INITIAL_DAMAGE) + H.setCloneLoss(CLONE_INITIAL_DAMAGE) //Yeah, clones start with very low health, not with random, because why would they start with random health + H.setBrainLoss(CLONE_INITIAL_DAMAGE) H.Paralyse(4) - if(H.client.prefs) - H.vore_organs = H.client.prefs.belly_prefs.Copy() - for(var/I in H.vore_organs) - var/datum/belly/B = H.vore_organs[I] - B.owner = H - B.internal_contents = list() - B.digest_mode = DM_HOLD - -// H.flavor_text = R.flavor.Copy() - if(grab_ghost_when == CLONER_FRESH_CLONE) clonemind.transfer_to(H) H.ckey = ckey @@ -207,7 +185,6 @@ beginning to regenerate in a cloning pod. You will \ become conscious when it is complete.
    " - H.hardset_dna(ui, se, H.real_name, null, mrace, features) if(H) H.faction |= factions @@ -231,20 +208,20 @@ else if((occupant) && (occupant.loc == src)) if((occupant.stat == DEAD) || (occupant.suiciding) || occupant.hellbound) //Autoeject corpses and suiciding dudes. - locked = FALSE - go_out() connected_message("Clone Rejected: Deceased.") SPEAK("The cloning of [occupant.real_name] has been \ aborted due to unrecoverable tissue failure.") + locked = FALSE + go_out() else if(occupant.cloneloss > (100 - heal_level)) occupant.Paralyse(4) //Slowly get that clone healed and finished. - occupant.adjustCloneLoss(-((speed_coeff/2))) + occupant.adjustCloneLoss(-((speed_coeff/2) * config.damage_multiplier)) //Premature clones may have brain damage. - occupant.adjustBrainLoss(-((speed_coeff/2))) + occupant.adjustBrainLoss(-((speed_coeff/2) * config.damage_multiplier)) //So clones don't die of oxyloss in a running pod. if (occupant.reagents.get_reagent_amount("salbutamol") < 30) @@ -334,7 +311,7 @@ if (mess) //Clean that mess and dump those gibs! mess = FALSE - gibs(loc) + new /obj/effect/gibspawner/generic(loc) audible_message("You hear a splat.") icon_state = "pod_0" return @@ -345,17 +322,15 @@ if(grab_ghost_when == CLONER_MATURE_CLONE) clonemind.transfer_to(occupant) occupant.grab_ghost() - occupant << "The world is suddenly bright \ - and sudden and loud!
    \ - You feel your body weight suddenly, as your mind suddenly \ - comprehends where you are and what is going on.
    " - occupant.flash_eyes() + occupant << "There is a bright flash!
    \ + You feel like a new being.
    " + occupant.flash_act() var/turf/T = get_turf(src) occupant.forceMove(T) icon_state = "pod_0" eject_wait = FALSE //If it's still set somehow. - occupant.domutcheck() //Waiting until they're out before possible monkeyizing. + occupant.domutcheck(1) //Waiting until they're out before possible monkeyizing. The 1 argument forces powers to manifest. occupant = null /obj/machinery/clonepod/proc/malfunction() @@ -381,14 +356,36 @@ go_out() /obj/machinery/clonepod/emp_act(severity) - if(prob(100/(severity*efficiency))) malfunction() + if(prob(100/(severity*efficiency))) + malfunction() ..() /obj/machinery/clonepod/ex_act(severity, target) ..() if(!qdeleted(src)) + locked = FALSE go_out() +/obj/machinery/clonepod/handle_atom_del(atom/A) + if(A == occupant) + occupant = null + locked = FALSE + go_out() + +/obj/machinery/clonepod/proc/horrifyingsound() + for(var/i in 1 to 5) + playsound(loc,pick('sound/hallucinations/growl1.ogg','sound/hallucinations/growl2.ogg','sound/hallucinations/growl3.ogg'), 100, rand(0.95,1.05)) + sleep(1) + sleep(10) + playsound(loc,'sound/hallucinations/wail.ogg',100,1) + +/obj/machinery/clonepod/deconstruct(disassembled = TRUE) + if(occupant) + locked = FALSE + go_out() + ..() + + /* * Diskette Box */ diff --git a/code/game/machinery/computer/Operating.dm b/code/game/machinery/computer/Operating.dm index 99287a51c5..cae8c26366 100644 --- a/code/game/machinery/computer/Operating.dm +++ b/code/game/machinery/computer/Operating.dm @@ -6,7 +6,6 @@ circuit = /obj/item/weapon/circuitboard/computer/operating var/mob/living/carbon/human/patient = null var/obj/structure/table/optable/table = null - light_color = LIGHT_COLOR_BLUE /obj/machinery/computer/operating/New() @@ -40,10 +39,8 @@ else patient = null dat += "No patient detected" - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) else dat += "Operating table not found." - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) var/datum/browser/popup = new(user, "op", "Operating Computer", 400, 500) popup.set_content(dat) @@ -69,4 +66,4 @@ var/datum/surgery_step/surgery_step = procedure.get_surgery_step() dat += "Next step: [capitalize(surgery_step.name)]
    " dat += "" - return dat + return dat \ No newline at end of file diff --git a/code/game/machinery/computer/aifixer.dm b/code/game/machinery/computer/aifixer.dm index 30cbe67a6c..e45106056a 100644 --- a/code/game/machinery/computer/aifixer.dm +++ b/code/game/machinery/computer/aifixer.dm @@ -7,7 +7,6 @@ circuit = /obj/item/weapon/circuitboard/computer/aifixer icon_keyboard = "tech_key" icon_screen = "ai-fixer" - light_color = LIGHT_COLOR_PINK /obj/machinery/computer/aifixer/attackby(obj/I, mob/user, params) if(occupier && istype(I, /obj/item/weapon/screwdriver)) @@ -65,9 +64,6 @@ else dat += "

    Reconstruction in process, please wait.
    " dat += {"
    Close"} - - //user << browse(dat, "window=computer;size=400x500") - //onclose(user, "computer") var/datum/browser/popup = new(user, "computer", "AI System Integrity Restorer", 400, 500) popup.set_content(dat) popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) @@ -84,7 +80,7 @@ return if(href_list["fix"]) usr << "Reconstruction in progress. This will take several minutes." - playsound(src, 'sound/machines/terminal_processing.ogg', 25, 0) + playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 25, 0) active = 1 while (occupier.health < 100) occupier.adjustOxyLoss(-1, 0) @@ -147,4 +143,4 @@ else if (active) user << "ERROR: Reconstruction in progress." else if (!occupier) - user << "ERROR: Unable to locate artificial intelligence." + user << "ERROR: Unable to locate artificial intelligence." \ No newline at end of file diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index 9fd153ce2c..0c12ed765a 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -1,12 +1,10 @@ -/obj/machinery/computer/arcade/ +/obj/machinery/computer/arcade name = "random arcade" desc = "random arcade machine" icon_state = "arcade" icon_keyboard = null icon_screen = "invaders" clockwork = TRUE //it'd look weird - light_color = LIGHT_COLOR_GREEN - light_range_on = 2 var/list/prizes = list( /obj/item/weapon/storage/box/snappops = 2, /obj/item/toy/talking/AI = 2, @@ -14,7 +12,7 @@ /obj/item/clothing/under/syndicate/tacticool = 2, /obj/item/toy/sword = 2, /obj/item/toy/gun = 2, - /obj/item/weapon/gun/projectile/shotgun/toy/crossbow = 2, + /obj/item/weapon/gun/ballistic/shotgun/toy/crossbow = 2, /obj/item/weapon/storage/box/fakesyndiesuit = 2, /obj/item/weapon/storage/crayons = 2, /obj/item/toy/spinningtoy = 2, @@ -40,6 +38,7 @@ /obj/item/weapon/coin/antagtoken = 2, /obj/item/stack/tile/fakespace/loaded = 2, /obj/item/toy/toy_xeno = 2, + /obj/item/weapon/storage/box/actionfigure = 1, /obj/item/weapon/restraints/handcuffs/fake = 2) /obj/machinery/computer/arcade/New() @@ -52,9 +51,12 @@ new CB.build_path(loc, CB) qdel(src) +#define PULSE_MEDAL "Jackpot" + /obj/machinery/computer/arcade/proc/prizevend() if(prob(0.0001)) //1 in a million new /obj/item/weapon/gun/energy/pulse/prize(src) + UnlockMedal(PULSE_MEDAL,usr.client) if(!contents.len) var/prizeselect = pickweight(prizes) @@ -66,7 +68,7 @@ "You hear a chime and a clunk.") prize.loc = src.loc - +#undef PULSE_MEDAL /obj/machinery/computer/arcade/emp_act(severity) ..(severity) @@ -136,9 +138,6 @@ dat += "Recharge Power" dat += "
    " - - //user << browse(dat, "window=arcade") - //onclose(user, "arcade") var/datum/browser/popup = new(user, "arcade", "Space Villian 2000") popup.set_content(dat) popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) @@ -497,7 +496,7 @@ M.hallucination += 30 else usr << "Something strikes you from behind! It hurts like hell and feel like a blunt weapon, but nothing is there..." - M.take_organ_damage(30) + M.take_bodypart_damage(30) playsound(loc, 'sound/weapons/genhit2.ogg', 100, 1) if(ORION_TRAIL_ILLNESS) var/severity = rand(1,3) //pray to RNGesus. PRAY, PIGS @@ -515,7 +514,7 @@ if(prob(75)) M.Weaken(3) say("A sudden gust of powerful wind slams [M] into the floor!") - M.take_organ_damage(25) + M.take_bodypart_damage(25) playsound(src.loc, 'sound/weapons/Genhit.ogg', 100, 1) else M << "A violent gale blows past you, and you barely manage to stay standing!" @@ -886,7 +885,7 @@ if(ORION_TRAIL_SPACEPORT) gameStatus = ORION_STATUS_MARKET if(spaceport_raided) - eventdat += "The Spaceport is on high alert! they wont let you dock since you tried to attack them!" + eventdat += "The Spaceport is on high alert! They won't let you dock since you tried to attack them!" if(last_spaceport_action) eventdat += "
    Last Spaceport Action: [last_spaceport_action]" eventdat += "

    Depart Spaceport

    " @@ -1038,7 +1037,7 @@ desc = "The Premier security forces for all spaceports found along the Orion Trail." faction = list("orion") loot = list(/obj/effect/mob_spawn/human/corpse/orionsecurity, - /obj/item/weapon/gun/projectile/automatic/c20r/unrestricted, + /obj/item/weapon/gun/ballistic/automatic/c20r/unrestricted, /obj/item/weapon/shield/energy) /obj/effect/mob_spawn/human/corpse/orionsecurity @@ -1053,14 +1052,14 @@ back = /obj/item/weapon/storage/backpack has_id = 1 id_job = "Officer" - id_access = "Syndicate" + id_access_list = list(access_syndicate) /obj/item/weapon/orion_ship name = "model settler ship" desc = "A model spaceship, it looks like those used back in the day when travelling to Orion! It even has a miniature FX-293 reactor, which was renowned for its instability and tendency to explode..." icon = 'icons/obj/toy.dmi' icon_state = "ship" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL var/active = 0 //if the ship is on /obj/item/weapon/orion_ship/examine(mob/user) diff --git a/code/game/machinery/computer/atmos_alert.dm b/code/game/machinery/computer/atmos_alert.dm index c38b9d63ff..899f382190 100644 --- a/code/game/machinery/computer/atmos_alert.dm +++ b/code/game/machinery/computer/atmos_alert.dm @@ -8,7 +8,6 @@ var/list/minor_alarms = list() var/receive_frequency = 1437 var/datum/radio_frequency/radio_connection - light_color = LIGHT_COLOR_CYAN /obj/machinery/computer/atmos_alert/initialize() ..() @@ -83,4 +82,4 @@ if(priority_alarms.len) add_overlay("alert:2") else if(minor_alarms.len) - add_overlay("alert:1") + add_overlay("alert:1") \ No newline at end of file diff --git a/code/game/machinery/computer/atmos_control.dm b/code/game/machinery/computer/atmos_control.dm index 7cc39f4422..83b8da0dda 100644 --- a/code/game/machinery/computer/atmos_control.dm +++ b/code/game/machinery/computer/atmos_control.dm @@ -69,7 +69,6 @@ icon_screen = "tank" icon_keyboard = "atmos_key" circuit = /obj/item/weapon/circuitboard/computer/atmos_control - light_color = LIGHT_COLOR_CYAN var/frequency = 1441 var/list/sensors = list( diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm index ab84b1612c..1fb842f75e 100644 --- a/code/game/machinery/computer/buildandrepair.dm +++ b/code/game/machinery/computer/buildandrepair.dm @@ -11,10 +11,11 @@ if(istype(P, /obj/item/weapon/wrench)) playsound(src.loc, P.usesound, 50, 1) user << "You start wrenching the frame into place..." - if(do_after(user, 20/P.toolspeed, target = src)) + if(do_after(user, 20*P.toolspeed, target = src)) user << "You wrench the frame into place." anchored = 1 state = 1 + return if(istype(P, /obj/item/weapon/weldingtool)) var/obj/item/weapon/weldingtool/WT = P if(!WT.remove_fuel(0, user)) @@ -23,38 +24,42 @@ return playsound(src.loc, P.usesound, 50, 1) user << "You start deconstructing the frame..." - if(do_after(user, 20/P.toolspeed, target = src)) + if(do_after(user, 20*P.toolspeed, target = src)) if(!src || !WT.isOn()) return user << "You deconstruct the frame." var/obj/item/stack/sheet/metal/M = new (loc, 5) M.add_fingerprint(user) qdel(src) + return if(1) if(istype(P, /obj/item/weapon/wrench)) playsound(src.loc, P.usesound, 50, 1) user << "You start to unfasten the frame..." - if(do_after(user, 20/P.toolspeed, target = src)) + if(do_after(user, 20*P.toolspeed, target = src)) user << "You unfasten the frame." anchored = 0 state = 0 + return if(istype(P, /obj/item/weapon/circuitboard/computer) && !circuit) if(!user.drop_item()) return - playsound(src.loc, P.usesound, 50, 1) + playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) user << "You place the circuit board inside the frame." icon_state = "1" circuit = P circuit.add_fingerprint(user) P.loc = null + return else if(istype(P, /obj/item/weapon/circuitboard) && !circuit) user << "This frame does not accept circuit boards of this type!" - + return if(istype(P, /obj/item/weapon/screwdriver) && circuit) playsound(src.loc, P.usesound, 50, 1) user << "You screw the circuit board into place." state = 2 icon_state = "2" + return if(istype(P, /obj/item/weapon/crowbar) && circuit) playsound(src.loc, P.usesound, 50, 1) user << "You remove the circuit board." @@ -63,18 +68,20 @@ circuit.loc = src.loc circuit.add_fingerprint(user) circuit = null + return if(2) if(istype(P, /obj/item/weapon/screwdriver) && circuit) playsound(src.loc, P.usesound, 50, 1) user << "You unfasten the circuit board." state = 1 icon_state = "1" + return if(istype(P, /obj/item/stack/cable_coil)) var/obj/item/stack/cable_coil/C = P if(C.get_amount() >= 5) playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) user << "You start adding cables to the frame..." - if(do_after(user, 20/P.toolspeed, target = src)) + if(do_after(user, 20*P.toolspeed, target = src)) if(C.get_amount() >= 5 && state == 2) C.use(5) user << "You add cables to the frame." @@ -82,6 +89,7 @@ icon_state = "3" else user << "You need five lengths of cable to wire the frame!" + return if(3) if(istype(P, /obj/item/weapon/wirecutters)) playsound(src.loc, P.usesound, 50, 1) @@ -91,6 +99,7 @@ var/obj/item/stack/cable_coil/A = new (loc) A.amount = 5 A.add_fingerprint(user) + return if(istype(P, /obj/item/stack/sheet/glass)) var/obj/item/stack/sheet/glass/G = P @@ -106,6 +115,7 @@ user << "You put in the glass panel." state = 4 src.icon_state = "4" + return if(4) if(istype(P, /obj/item/weapon/crowbar)) playsound(src.loc, P.usesound, 50, 1) @@ -114,14 +124,27 @@ icon_state = "3" var/obj/item/stack/sheet/glass/G = new (loc, 2) G.add_fingerprint(user) + return if(istype(P, /obj/item/weapon/screwdriver)) playsound(src.loc, P.usesound, 50, 1) user << "You connect the monitor." var/obj/B = new src.circuit.build_path (src.loc, circuit) transfer_fingerprints_to(B) qdel(src) + return + if(user.a_intent == INTENT_HARM) + return ..() +/obj/structure/frame/computer/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + if(state == 4) + new /obj/item/weapon/shard(loc) + new /obj/item/weapon/shard(loc) + if(state >= 3) + new /obj/item/stack/cable_coil(loc , 5) + ..() + /obj/item/weapon/circuitboard name = "circuit board" @@ -130,7 +153,7 @@ item_state = "electronic" origin_tech = "programming=2" materials = list(MAT_GLASS=1000) - w_class = 2 + w_class = WEIGHT_CLASS_SMALL var/build_path = null /obj/item/weapon/circuitboard/computer/turbine_computer diff --git a/code/game/machinery/computer/camera.dm b/code/game/machinery/computer/camera.dm index 4c7cd70567..4ed1fd48bf 100644 --- a/code/game/machinery/computer/camera.dm +++ b/code/game/machinery/computer/camera.dm @@ -8,8 +8,6 @@ var/list/network = list("SS13") var/mapping = 0//For the overview file, interesting bit of code. var/list/watchers = list() //who's using the console, associated with the camera they're on. - light_color = LIGHT_COLOR_RED - /obj/machinery/computer/security/check_eye(mob/user) if( (stat & (NOPOWER|BROKEN)) || user.incapacitated() || user.eye_blind ) @@ -29,7 +27,7 @@ if(!Adjacent(user)) user.unset_machine() return - else if(isrobot(user)) + else if(iscyborg(user)) var/list/viewing = viewers(src) if(!viewing.Find(user)) user.unset_machine() @@ -70,7 +68,7 @@ if(!(user in watchers)) user.unset_machine() // no usable camera on the network, we disconnect the user from the computer. return - playsound(src, 'sound/machines/terminal_displaying.ogg', 25, 0) + playsound(src, 'sound/machines/terminal_prompt.ogg', 25, 0) use_camera_console(user) /obj/machinery/computer/security/proc/use_camera_console(mob/user) @@ -93,7 +91,7 @@ var/camera_fail = 0 if(!C.can_use() || user.machine != src || user.eye_blind || user.incapacitated()) camera_fail = 1 - else if(isrobot(user)) + else if(iscyborg(user)) var/list/viewing = viewers(src) if(!viewing.Find(user)) camera_fail = 1 @@ -105,18 +103,18 @@ user.unset_machine() return 0 + playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 25, 0) if(isAI(user)) var/mob/living/silicon/ai/A = user A.eyeobj.setLoc(get_turf(C)) A.client.eye = A.eyeobj else user.reset_perspective(C) - user.overlay_fullscreen("flash", /obj/screen/fullscreen/flash/noise) + user.overlay_fullscreen("flash", /obj/screen/fullscreen/flash/static) user.clear_fullscreen("flash", 5) watchers[user] = C use_power(50) - addtimer(src, "use_camera_console", 5, FALSE, user) - playsound(src, 'sound/machines/terminal_select.ogg', 25, 0) + addtimer(src, "use_camera_console", 5, TIMER_NORMAL, user) else user.unset_machine() @@ -155,7 +153,6 @@ density = 0 circuit = null clockwork = TRUE //it'd look very weird - use_auto_lights = 0 /obj/machinery/computer/security/telescreen/update_icon() icon_state = initial(icon_state) diff --git a/code/game/machinery/computer/camera_advanced.dm b/code/game/machinery/computer/camera_advanced.dm index eadf7c8fc9..e7ef1d57ca 100644 --- a/code/game/machinery/computer/camera_advanced.dm +++ b/code/game/machinery/computer/camera_advanced.dm @@ -175,14 +175,15 @@ if (tempnetwork.len) T[text("[][]", netcam.c_tag, (netcam.can_use() ? null : " (Deactivated)"))] = netcam - playsound(origin, 'sound/machines/terminal_select.ogg', 25, 0) + + playsound(origin, 'sound/machines/terminal_prompt.ogg', 25, 0) var/camera = input("Choose which camera you want to view", "Cameras") as null|anything in T var/obj/machinery/camera/final = T[camera] - playsound(src, 'sound/machines/terminal_select.ogg', 50, 0) + playsound(src, "terminal_type", 25, 0) if(final) - playsound(origin, 'sound/machines/terminal_select.ogg', 25, 0) + playsound(origin, 'sound/machines/terminal_prompt_confirm.ogg', 25, 0) remote_eye.setLoc(get_turf(final)) - C.overlay_fullscreen("flash", /obj/screen/fullscreen/flash/noise) + C.overlay_fullscreen("flash", /obj/screen/fullscreen/flash/static) C.clear_fullscreen("flash", 3) //Shorter flash than normal since it's an ~~advanced~~ console! else - playsound(origin, 'sound/machines/terminal_error.ogg', 25, 0) + playsound(origin, 'sound/machines/terminal_prompt_deny.ogg', 25, 0) diff --git a/code/game/machinery/computer/card.dm b/code/game/machinery/computer/card.dm index e9f2a31c99..587d76b681 100644 --- a/code/game/machinery/computer/card.dm +++ b/code/game/machinery/computer/card.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 + //Keeps track of the time for the ID console. Having it as a global variable prevents people from dismantling/reassembling it to //increase the slots of many jobs. @@ -19,7 +19,6 @@ var/time_last_changed_position = 0 var/list/region_access = null var/list/head_subordinates = null var/target_dept = 0 //Which department this computer has access to. 0=all departments - light_color = LIGHT_COLOR_BLUE //Cooldown for closing positions in seconds //if set to -1: No cooldown... probably a bad idea @@ -35,8 +34,7 @@ var/time_last_changed_position = 0 "Head of Security", "Chief Engineer", "Research Director", - "Chief Medical Officer", - "Chaplain") + "Chief Medical Officer") //The scaling factor of max total positions in relation to the total amount of people on board the station in % var/max_relative_positions = 30 //30%: Seems reasonable, limit of 6 @ 20 players @@ -71,6 +69,32 @@ var/time_last_changed_position = 0 else return ..() +/obj/machinery/computer/card/Destroy() + if(scan) + qdel(scan) + scan = null + if(modify) + qdel(modify) + modify = null + return ..() + +/obj/machinery/computer/card/handle_atom_del(atom/A) + ..() + if(A == scan) + scan = null + updateUsrDialog() + if(A == modify) + modify = null + updateUsrDialog() + +/obj/machinery/computer/card/on_deconstruction() + if(scan) + scan.forceMove(loc) + scan = null + if(modify) + modify.forceMove(loc) + modify = null + //Check if you can't open a new position for a certain job /obj/machinery/computer/card/proc/job_blacklisted(jobtitle) return (jobtitle in blacklisted) @@ -293,10 +317,6 @@ var/time_last_changed_position = 0 body += "

    Job Management" dat = "[header][body]

    " - - //user << browse(dat, "window=id_com;size=900x520") - //onclose(user, "id_com") - var/datum/browser/popup = new(user, "id_com", src.name, 900, 620) popup.set_content(dat) popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) @@ -320,7 +340,7 @@ var/time_last_changed_position = 0 region_access = null head_subordinates = null else - var/obj/item/I = usr.get_active_hand() + var/obj/item/I = usr.get_active_held_item() if (istype(I, /obj/item/weapon/card/id)) if(!usr.drop_item()) return @@ -336,7 +356,7 @@ var/time_last_changed_position = 0 playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0) scan = null else - var/obj/item/I = usr.get_active_hand() + var/obj/item/I = usr.get_active_held_item() if (istype(I, /obj/item/weapon/card/id)) if(!usr.drop_item()) return @@ -345,7 +365,7 @@ var/time_last_changed_position = 0 scan = I authenticated = 0 if ("auth") - if ((!( authenticated ) && (scan || (istype(usr, /mob/living/silicon))) && (modify || mode))) + if ((!( authenticated ) && (scan || issilicon(usr)) && (modify || mode))) if (check_access(scan)) region_access = list() head_subordinates = list() @@ -356,7 +376,7 @@ var/time_last_changed_position = 0 authenticated = 1 else authenticated = 2 - playsound(src, 'sound/machines/terminal_success.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_on.ogg', 50, 0) else if((access_hop in scan.access) && ((target_dept==1) || !target_dept)) @@ -377,13 +397,13 @@ var/time_last_changed_position = 0 get_subordinates("Chief Engineer") if(region_access) authenticated = 1 - else if ((!( authenticated ) && (istype(usr, /mob/living/silicon))) && (!modify)) + else if ((!( authenticated ) && issilicon(usr)) && (!modify)) usr << "You can't modify an ID without an ID inserted to modify! Once one is in the modify slot on the computer, you can log in." if ("logout") region_access = null head_subordinates = null authenticated = 0 - playsound(src, 'sound/machines/terminal_select.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_off.ogg', 50, 0) if("access") if(href_list["allowed"]) if(authenticated) @@ -393,7 +413,7 @@ var/time_last_changed_position = 0 modify.access -= access_type if(access_allowed == 1) modify.access += access_type - playsound(src, 'sound/machines/terminal_select.ogg', 50, 0) + playsound(src, "terminal_type", 50, 0) if ("assign") if (authenticated == 2) var/t1 = href_list["assign_target"] @@ -419,23 +439,22 @@ var/time_last_changed_position = 0 modify.access = ( istype(src,/obj/machinery/computer/card/centcom) ? get_centcom_access(t1) : jobdatum.get_access() ) if (modify) modify.assignment = t1 - playsound(src, 'sound/machines/terminal_select.ogg', 50, 0) - + playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) if ("demote") if(modify.assignment in head_subordinates || modify.assignment == "Assistant") modify.assignment = "Unassigned" - playsound(src, 'sound/machines/terminal_select.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) else usr << "You are not authorized to demote this position." if ("reg") if (authenticated) var/t2 = modify //var/t1 = input(usr, "What name?", "ID computer", null) as text - if ((authenticated && modify == t2 && (in_range(src, usr) || (istype(usr, /mob/living/silicon))) && istype(loc, /turf))) + if ((authenticated && modify == t2 && (in_range(src, usr) || issilicon(usr)) && isturf(loc))) var/newName = reject_bad_name(href_list["reg"]) if(newName) modify.registered_name = newName - playsound(src, 'sound/machines/terminal_select.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) else usr << "Invalid name entered." return @@ -445,7 +464,7 @@ var/time_last_changed_position = 0 if("return") //DISPLAY MAIN MENU mode = 3; - playsound(src, 'sound/machines/terminal_select.ogg', 50, 0) + playsound(src, "terminal_type", 25, 0) if("make_job_available") // MAKE ANOTHER JOB POSITION AVAILABLE FOR LATE JOINERS @@ -460,7 +479,7 @@ var/time_last_changed_position = 0 time_last_changed_position = world.time / 10 j.total_positions++ opened_positions[edit_job_target]++ - playsound(src, 'sound/machines/terminal_select.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) if("make_job_unavailable") // MAKE JOB POSITION UNAVAILABLE FOR LATE JOINERS @@ -476,7 +495,7 @@ var/time_last_changed_position = 0 time_last_changed_position = world.time / 10 j.total_positions-- opened_positions[edit_job_target]-- - playsound(src, 'sound/machines/terminal_select.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) if ("print") if (!( printing )) @@ -490,7 +509,6 @@ var/time_last_changed_position = 0 P.name = "paper- 'Crew Manifest'" printing = null playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0) - if (modify) modify.update_label() updateUsrDialog() @@ -525,7 +543,6 @@ var/time_last_changed_position = 0 /obj/machinery/computer/card/minor/hos target_dept = 2 icon_screen = "idhos" - light_color = LIGHT_COLOR_RED /obj/machinery/computer/card/minor/cmo target_dept = 3 @@ -534,9 +551,7 @@ var/time_last_changed_position = 0 /obj/machinery/computer/card/minor/rd target_dept = 4 icon_screen = "idrd" - light_color = LIGHT_COLOR_PINK /obj/machinery/computer/card/minor/ce target_dept = 5 icon_screen = "idce" - light_color = LIGHT_COLOR_ORANGE diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm index af29a72fcf..2cf33e1be5 100644 --- a/code/game/machinery/computer/cloning.dm +++ b/code/game/machinery/computer/cloning.dm @@ -17,7 +17,6 @@ var/obj/item/weapon/disk/data/diskette = null //Mostly so the geneticist can steal everything. var/loading = 0 // Nice loading text var/autoprocess = 0 - light_color = LIGHT_COLOR_BLUE /obj/machinery/computer/cloning/New() ..() @@ -211,8 +210,6 @@ dat += "Cancel" - //user << browse(dat, "window=cloning") - //onclose(user, "cloning") var/datum/browser/popup = new(user, "cloning", "Cloning System Control") popup.set_content(dat) popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) @@ -229,17 +226,17 @@ switch(href_list["task"]) if("autoprocess") autoprocess = 1 - playsound(src, 'sound/machines/terminal_select.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) if("stopautoprocess") autoprocess = 0 - playsound(src, 'sound/machines/terminal_select.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) else if ((href_list["scan"]) && !isnull(scanner) && scanner.is_operational()) scantemp = "" loading = 1 src.updateUsrDialog() - playsound(src, 'sound/machines/terminal_processing.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0) say("Initiating scan...") spawn(20) @@ -247,19 +244,20 @@ loading = 0 src.updateUsrDialog() + playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) //No locking an open scanner. else if ((href_list["lock"]) && !isnull(scanner) && scanner.is_operational()) if ((!scanner.locked) && (scanner.occupant)) scanner.locked = 1 - playsound(src, 'sound/machines/DoorClick.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) else scanner.locked = 0 - playsound(src, 'sound/machines/DoorClick.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) else if(href_list["view_rec"]) - playsound(src, 'sound/machines/terminal_select.ogg', 50, 0) + playsound(src, "terminal_type", 25, 0) src.active_record = find_record("id", href_list["view_rec"], records) if(active_record) if(!active_record.fields["ckey"]) @@ -277,20 +275,20 @@ if (src.menu == 3) //If we are viewing a record, confirm deletion src.temp = "Delete record?" src.menu = 4 - playsound(src, 'sound/machines/terminal_displaying.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0) else if (src.menu == 4) - var/obj/item/weapon/card/id/C = usr.get_active_hand() + var/obj/item/weapon/card/id/C = usr.get_active_held_item() if (istype(C)||istype(C, /obj/item/device/pda)) if(src.check_access(C)) src.temp = "[src.active_record.fields["name"]] => Record deleted." src.records.Remove(active_record) active_record = null - playsound(src, 'sound/machines/terminal_success.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) src.menu = 2 else src.temp = "Access Denied." - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) else if (href_list["disk"]) //Load or eject. switch(href_list["disk"]) @@ -298,19 +296,19 @@ if (!diskette || !istype(diskette.fields) || !diskette.fields["name"] || !diskette.fields) src.temp = "Load error." src.updateUsrDialog() - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) return if (!src.active_record) src.temp = "Record error." src.menu = 1 src.updateUsrDialog() - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) return for(var/key in diskette.fields) src.active_record.fields[key] = diskette.fields[key] src.temp = "Load successful." - playsound(src, 'sound/machines/terminal_success.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) if("eject") if(src.diskette) @@ -321,16 +319,17 @@ if(!diskette || diskette.read_only || !active_record || !active_record.fields) src.temp = "Save error." src.updateUsrDialog() - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) return diskette.fields = active_record.fields.Copy() diskette.name = "data disk - '[src.diskette.fields["name"]]'" src.temp = "Save successful." - playsound(src, 'sound/machines/terminal_success.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) else if (href_list["refresh"]) src.updateUsrDialog() + playsound(src, "terminal_type", 25, 0) else if (href_list["clone"]) var/datum/data/record/C = find_record("id", href_list["clone"], records) @@ -339,34 +338,34 @@ //Can't clone without someone to clone. Or a pod. Or if the pod is busy. Or full of gibs. if(!pod1) temp = "No Clonepod detected." - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) else if(pod1.occupant) temp = "Clonepod is currently occupied." - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) else if(pod1.mess) temp = "Clonepod malfunction." - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) else if(!config.revival_cloning) temp = "Unable to initiate cloning cycle." - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) else if(pod1.growclone(C.fields["ckey"], C.fields["name"], C.fields["UI"], C.fields["SE"], C.fields["mind"], C.fields["mrace"], C.fields["features"], C.fields["factions"])) temp = "[C.fields["name"]] => Cloning cycle in progress..." - playsound(src, 'sound/machines/terminal_processing.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) records.Remove(C) if(active_record == C) active_record = null menu = 1 else temp = "[C.fields["name"]] => Initialisation failure." - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) else temp = "Data corruption." - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) else if (href_list["menu"]) src.menu = text2num(href_list["menu"]) - playsound(src, 'sound/machines/terminal_select.ogg', 50, 0) + playsound(src, "terminal_type", 25, 0) src.add_fingerprint(usr) src.updateUsrDialog() @@ -375,27 +374,27 @@ /obj/machinery/computer/cloning/proc/scan_mob(mob/living/carbon/human/subject) if (!istype(subject)) scantemp = "Unable to locate valid genetic data." - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) return if (!subject.getorgan(/obj/item/organ/brain)) scantemp = "No signs of intelligence detected." - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_alert.ogg', 50, 0) return if (subject.suiciding == 1 || subject.hellbound) scantemp = "Subject's brain is not responding to scanning stimuli." - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) return if ((subject.disabilities & NOCLONE) && (src.scanner.scan_level < 2)) scantemp = "Subject no longer contains the fundamental materials required to create a living clone." - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_alert.ogg', 50, 0) return if ((!subject.ckey) || (!subject.client)) scantemp = "Mental interface failure." - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) return if (find_record("ckey", subject.ckey, records)) scantemp = "Subject already in database." - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) return var/datum/data/record/R = new() @@ -416,19 +415,20 @@ R.fields["blood_type"] = subject.dna.blood_type R.fields["features"] = subject.dna.features R.fields["factions"] = subject.faction + //Add an implant if needed - var/obj/item/weapon/implant/health/imp = locate(/obj/item/weapon/implant/health, subject) + var/obj/item/weapon/implant/health/imp + for(var/obj/item/weapon/implant/health/HI in subject.implants) + imp = HI + break if(!imp) imp = new /obj/item/weapon/implant/health(subject) - imp.implanted = subject - R.fields["imp"] = "\ref[imp]" - //Update it if needed - else - R.fields["imp"] = "\ref[imp]" + imp.implant(subject) + R.fields["imp"] = "\ref[imp]" if (!isnull(subject.mind)) //Save that mind so traitors can continue traitoring after cloning. R.fields["mind"] = "\ref[subject.mind]" src.records += R scantemp = "Subject successfully scanned." - playsound(src, 'sound/machines/terminal_success.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index c336af7ad3..ae123d56b2 100644 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 + var/const/CALL_SHUTTLE_REASON_LENGTH = 12 @@ -31,13 +31,14 @@ var/const/CALL_SHUTTLE_REASON_LENGTH = 12 var/const/STATE_ALERT_LEVEL = 8 var/const/STATE_CONFIRM_LEVEL = 9 var/const/STATE_TOGGLE_EMERGENCY = 10 + var/const/STATE_PURCHASE = 11 + var/const/COMMUNICATION_COOLDOWN = 600 + var/const/COMMUNICATION_COOLDOWN_AI = 600 var/status_display_freq = "1435" var/stat_msg1 var/stat_msg2 - light_color = LIGHT_COLOR_BLUE - /obj/machinery/computer/communications/New() shuttle_caller_list += src @@ -64,9 +65,10 @@ var/const/CALL_SHUTTLE_REASON_LENGTH = 12 // main interface if("main") src.state = STATE_DEFAULT + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) if("login") var/mob/M = usr - var/obj/item/weapon/card/id/I = M.get_active_hand() + var/obj/item/weapon/card/id/I = M.get_active_held_item() if (istype(I, /obj/item/device/pda)) var/obj/item/device/pda/pda = I I = pda.id @@ -76,23 +78,23 @@ var/const/CALL_SHUTTLE_REASON_LENGTH = 12 auth_id = "[I.registered_name] ([I.assignment])" if((20 in I.access)) authenticated = 2 - playsound(src, 'sound/machines/terminal_select.ogg', 50, 0) - + playsound(src, 'sound/machines/terminal_on.ogg', 50, 0) if(src.emagged) authenticated = 2 - auth_id = "ERROR: CANNOT READ" - M << "[src] lets out a few quiet beeps as its login is overriden." + auth_id = "Unknown" + M << "[src] lets out a quiet alarm as its login is overriden." + playsound(src, 'sound/machines/terminal_on.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_alert.ogg', 25, 0) if(prob(25)) for(var/mob/living/silicon/ai/AI in active_ais()) - AI << sound('sound/machines/terminal_emagged.ogg', volume = 10) //Very quiet for balance reasons - + AI << sound('sound/machines/terminal_alert.ogg', volume = 10) //Very quiet for balance reasons if("logout") authenticated = 0 - playsound(src, 'sound/machines/terminal_select.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_off.ogg', 50, 0) if("swipeidseclevel") var/mob/M = usr - var/obj/item/weapon/card/id/I = M.get_active_hand() + var/obj/item/weapon/card/id/I = M.get_active_held_item() if (istype(I, /obj/item/device/pda)) var/obj/item/device/pda/pda = I I = pda.id @@ -105,7 +107,7 @@ var/const/CALL_SHUTTLE_REASON_LENGTH = 12 set_security_level(tmp_alertlevel) if(security_level != old_level) usr << "Authorization confirmed. Modifying security level." - playsound(src, 'sound/machines/terminal_success.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) //Only notify the admins if an actual change happened log_game("[key_name(usr)] has changed the security level to [get_security_level()].") message_admins("[key_name_admin(usr)] has changed the security level to [get_security_level()].") @@ -117,36 +119,67 @@ var/const/CALL_SHUTTLE_REASON_LENGTH = 12 tmp_alertlevel = 0 else: usr << "You are not authorized to do this!" - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) tmp_alertlevel = 0 state = STATE_DEFAULT else usr << "You need to swipe your ID!" - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) if("announce") - if(src.authenticated==2 && !message_cooldown) - playsound(src, 'sound/machines/terminal_displaying.ogg', 50, 0) + if(src.authenticated==2) + playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0) make_announcement(usr) - else if (src.authenticated==2 && message_cooldown) - usr << "Intercomms recharging. Please stand by." - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) if("crossserver") if(authenticated==2) if(CM.lastTimeUsed + 600 > world.time) usr << "Arrays recycling. Please stand by." - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) return var/input = stripped_multiline_input(usr, "Please choose a message to transmit to an allied station. Please be aware that this process is very expensive, and abuse will lead to... termination.", "Send a message to an allied station.", "") if(!input || !(usr in view(1,src))) return - playsound(src, 'sound/machines/terminal_success.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) send2otherserver("[station_name()]", input,"Comms_Console") minor_announce(input, title = "Outgoing message to allied station") log_say("[key_name(usr)] has sent a message to the other server: [input]") + message_admins("[key_name_admin(usr)] has sent a message to the other server.") CM.lastTimeUsed = world.time + if("purchase_menu") + state = STATE_PURCHASE + + if("buyshuttle") + if(authenticated==2) + var/list/shuttles = flatten_list(shuttle_templates) + var/datum/map_template/shuttle/S = locate(href_list["chosen_shuttle"]) in shuttles + if(S && istype(S)) + if(SSshuttle.emergency.mode != SHUTTLE_CALL && SSshuttle.emergency.mode != SHUTTLE_RECALL && SSshuttle.emergency.mode != SHUTTLE_IDLE) + usr << "It's a bit late to buy a new shuttle, don't you think?" + return + if(SSshuttle.shuttle_purchased) + usr << "A replacement shuttle has already been purchased." + else if(!S.prerequisites_met()) + usr << "You have not met the requirements for purchasing this shuttle." + else + if(SSshuttle.points >= S.credit_cost) + var/obj/machinery/shuttle_manipulator/M = locate() in machines + if(M) + SSshuttle.shuttle_purchased = TRUE + M.unload_preview() + M.load_template(S) + M.existing_shuttle = SSshuttle.emergency + M.action_load(S) + SSshuttle.points -= S.credit_cost + minor_announce("[usr.name] has purchased [S.name] for [S.credit_cost] credits." , "Shuttle Purchase") + message_admins("[key_name_admin(usr)] purchased [S.name].") + feedback_add_details("shuttle_manipulator", S.name) + else + usr << "Something went wrong! The shuttle exchange system seems to be down." + else + usr << "Not enough credits." + if("callshuttle") src.state = STATE_DEFAULT if(src.authenticated) @@ -168,7 +201,6 @@ var/const/CALL_SHUTTLE_REASON_LENGTH = 12 if("messagelist") src.currmsg = 0 src.state = STATE_MESSAGELIST - playsound(src, 'sound/machines/terminal_select.ogg', 50, 0) if("viewmessage") src.state = STATE_VIEWMESSAGE if (!src.currmsg) @@ -193,7 +225,6 @@ var/const/CALL_SHUTTLE_REASON_LENGTH = 12 src.state = STATE_VIEWMESSAGE if("status") src.state = STATE_STATUSDISPLAY - playsound(src, 'sound/machines/terminal_select.ogg', 50, 0) if("securitylevel") src.tmp_alertlevel = text2num( href_list["newalertlevel"] ) @@ -217,7 +248,7 @@ var/const/CALL_SHUTTLE_REASON_LENGTH = 12 // Status display stuff if("setstat") - playsound(src, 'sound/machines/terminal_select.ogg', 50, 0) + playsound(src, "terminal_type", 50, 0) switch(href_list["statdisp"]) if("message") post_status("message", stat_msg1, stat_msg2) @@ -227,11 +258,9 @@ var/const/CALL_SHUTTLE_REASON_LENGTH = 12 post_status(href_list["statdisp"]) if("setmsg1") - playsound(src, 'sound/machines/terminal_displaying.ogg', 50, 0) stat_msg1 = reject_bad_text(input("Line 1", "Enter Message Text", stat_msg1) as text|null, 40) src.updateDialog() if("setmsg2") - playsound(src, 'sound/machines/terminal_displaying.ogg', 50, 0) stat_msg2 = reject_bad_text(input("Line 2", "Enter Message Text", stat_msg2) as text|null, 40) src.updateDialog() @@ -240,14 +269,13 @@ var/const/CALL_SHUTTLE_REASON_LENGTH = 12 if(src.authenticated==2) if(CM.lastTimeUsed + 600 > world.time) usr << "Arrays recycling. Please stand by." - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) return var/input = stripped_input(usr, "Please choose a message to transmit to Centcom via quantum entanglement. Please be aware that this process is very expensive, and abuse will lead to... termination. Transmission does not guarantee a response.", "Send a message to Centcomm.", "") if(!input || !(usr in view(1,src))) return - playsound(src, 'sound/machines/terminal_processing.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) Centcomm_announce(input, usr) - usr << "Message transmitted." + usr << "Message transmitted to Central Command." log_say("[key_name(usr)] has made a Centcom announcement: [input]") CM.lastTimeUsed = world.time @@ -257,12 +285,12 @@ var/const/CALL_SHUTTLE_REASON_LENGTH = 12 if((src.authenticated==2) && (src.emagged)) if(CM.lastTimeUsed + 600 > world.time) usr << "Arrays recycling. Please stand by." - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) return var/input = stripped_input(usr, "Please choose a message to transmit to \[ABNORMAL ROUTING COORDINATES\] via quantum entanglement. Please be aware that this process is very expensive, and abuse will lead to... termination. Transmission does not guarantee a response.", "Send a message to /??????/.", "") if(!input || !(usr in view(1,src))) return - playsound(src, 'sound/machines/terminal_processing.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) Syndicate_announce(input, usr) usr << "SYSERR @l(19833)of(transmit.dm): !@$ MESSAGE TRANSMITTED TO SYNDICATE COMMAND." log_say("[key_name(usr)] has made a Syndicate announcement: [input]") @@ -270,7 +298,7 @@ var/const/CALL_SHUTTLE_REASON_LENGTH = 12 if("RestoreBackup") usr << "Backup routing data restored!" - playsound(src, 'sound/machines/terminal_success.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) src.emagged = 0 src.updateDialog() @@ -278,16 +306,14 @@ var/const/CALL_SHUTTLE_REASON_LENGTH = 12 if(src.authenticated==2) if(CM.lastTimeUsed + 600 > world.time) usr << "Arrays recycling. Please stand by." - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) return var/input = stripped_input(usr, "Please enter the reason for requesting the nuclear self-destruct codes. Misuse of the nuclear request system will not be tolerated under any circumstances. Transmission does not guarantee a response.", "Self Destruct Code Request.","") if(!input || !(usr in view(1,src))) return Nuke_request(input, usr) usr << "Request sent." - playsound(src, 'sound/machines/terminal_processing.ogg', 50, 0) log_say("[key_name(usr)] has requested the nuclear codes from Centcomm") - priority_announce("The codes for the on-station nuclear self-destruct have been requested by [auth_id]. Confirmation or denial of this request will be sent shortly.", "Nuclear Self Destruct Codes Requested",'sound/AI/commandreport.ogg') + priority_announce("The codes for the on-station nuclear self-destruct have been requested by [usr]. Confirmation or denial of this request will be sent shortly.", "Nuclear Self Destruct Codes Requested",'sound/AI/commandreport.ogg') CM.lastTimeUsed = world.time @@ -325,8 +351,7 @@ var/const/CALL_SHUTTLE_REASON_LENGTH = 12 if("ai-status") src.aistate = STATE_STATUSDISPLAY if("ai-announce") - if(!ai_message_cooldown) - make_announcement(usr, 1) + make_announcement(usr, 1) if("ai-securitylevel") src.tmp_alertlevel = text2num( href_list["newalertlevel"] ) if(!tmp_alertlevel) tmp_alertlevel = 0 @@ -375,15 +400,14 @@ var/const/CALL_SHUTTLE_REASON_LENGTH = 12 src.emagged = 1 if(authenticated == 1) authenticated = 2 - user << "You scramble the communication routing circuits." - playsound(src, 'sound/machines/terminal_emagged.ogg', 50, 0) + user << "You scramble the communication routing circuits!" + playsound(src, 'sound/machines/terminal_alert.ogg', 50, 0) /obj/machinery/computer/communications/attack_hand(mob/user) if(..()) return if (src.z > 6) user << "Unable to establish a connection: \black You're too far away from the station!" - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) return user.set_machine(src) @@ -396,13 +420,10 @@ var/const/CALL_SHUTTLE_REASON_LENGTH = 12 var/datum/browser/popup = new(user, "communications", "Communications Console", 400, 500) popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) - if (istype(user, /mob/living/silicon)) + if(issilicon(user)) var/dat2 = src.interact_ai(user) // give the AI a different interact proc to limit its access if(dat2) dat += dat2 - //user << browse(dat, "window=communications;size=400x500") - //onclose(user, "communications") - popup.set_content(dat) popup.open() return @@ -431,6 +452,7 @@ var/const/CALL_SHUTTLE_REASON_LENGTH = 12 dat += "
    \[ Make a Captain's Announcement \]" if(cross_allowed) dat += "
    \[ Send a message to an allied station \]" + dat += "
    \[ Purchase Shuttle \]" dat += "
    \[ Change Alert Level \]" dat += "
    \[ Emergency Maintenance Access \]" dat += "
    \[ Request Nuclear Authentication Codes \]" @@ -443,15 +465,15 @@ var/const/CALL_SHUTTLE_REASON_LENGTH = 12 dat += "
    \[ Log In \]" if(STATE_CALLSHUTTLE) dat += get_call_shuttle_form() - playsound(src, 'sound/machines/terminal_select.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0) if(STATE_CANCELSHUTTLE) dat += get_cancel_shuttle_form() - playsound(src, 'sound/machines/terminal_select.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0) if(STATE_MESSAGELIST) dat += "Messages:" for(var/i = 1; i<=src.messagetitle.len; i++) dat += "
    [src.messagetitle[i]]" - playsound(src, 'sound/machines/terminal_select.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) if(STATE_VIEWMESSAGE) if (src.currmsg) dat += "[src.messagetitle[src.currmsg]]

    [src.messagetext[src.currmsg]]" @@ -479,8 +501,7 @@ var/const/CALL_SHUTTLE_REASON_LENGTH = 12 dat += " Red Alert |" dat += " Lockdown |" dat += " Biohazard \]

    " - playsound(src, 'sound/machines/terminal_select.ogg', 50, 0) - + playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) if(STATE_ALERT_LEVEL) dat += "Current alert level: [get_security_level()]
    " if(security_level == SEC_LEVEL_DELTA) @@ -493,7 +514,7 @@ var/const/CALL_SHUTTLE_REASON_LENGTH = 12 dat += "Confirm the change to: [num2seclevel(tmp_alertlevel)]
    " dat += "Swipe ID to confirm change.
    " if(STATE_TOGGLE_EMERGENCY) - playsound(src, 'sound/machines/terminal_select.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0) if(emergency_access == 1) dat += "Emergency Maintenance Access is currently ENABLED" dat += "
    Restore maintenance access restrictions?
    \[ OK | Cancel \]" @@ -501,9 +522,21 @@ var/const/CALL_SHUTTLE_REASON_LENGTH = 12 dat += "Emergency Maintenance Access is currently DISABLED" dat += "
    Lift access restrictions on maintenance and external airlocks?
    \[ OK | Cancel \]" + if(STATE_PURCHASE) + dat += "Budget: [SSshuttle.points] Credits.
    " + for(var/shuttle_id in shuttle_templates) + var/datum/map_template/shuttle/S = shuttle_templates[shuttle_id] + if(S.can_be_bought && S.credit_cost < INFINITY) + dat += "[S.name] | [S.credit_cost] Credits
    " + dat += "[S.description]
    " + if(S.prerequisites) + dat += "Prerequisites: [S.prerequisites]
    " + dat += "(Purchase)

    " + dat += "

    \[ [(src.state != STATE_DEFAULT) ? "Main Menu | " : ""]Close \]" - //user << browse(dat, "window=communications;size=400x500") - //onclose(user, "communications") + + popup.set_content(dat) + popup.open() popup.set_content(dat) popup.open() @@ -619,19 +652,22 @@ var/const/CALL_SHUTTLE_REASON_LENGTH = 12 return dat /obj/machinery/computer/communications/proc/make_announcement(mob/living/user, is_silicon) + if((is_silicon && ai_message_cooldown > world.time) || (!is_silicon && message_cooldown > world.time)) + user << "Intercomms recharging. Please stand by." + return var/input = stripped_input(user, "Please choose a message to announce to the station crew.", "What?") if(!input || !user.canUseTopic(src)) return if(is_silicon) + if(ai_message_cooldown > world.time) + return minor_announce(input,"[user.name] Announces:") - ai_message_cooldown = 1 - spawn(600)//One minute cooldown - ai_message_cooldown = 0 + ai_message_cooldown = world.time + COMMUNICATION_COOLDOWN_AI else + if(message_cooldown > world.time) + return priority_announce(html_decode(input), null, 'sound/misc/announce.ogg', "Captain") - message_cooldown = 1 - spawn(600)//One minute cooldown - message_cooldown = 0 + message_cooldown = world.time + COMMUNICATION_COOLDOWN log_say("[key_name(user)] has made a priority announcement: [input]") message_admins("[key_name_admin(user)] has made a priority announcement.") diff --git a/code/game/machinery/computer/computer.dm b/code/game/machinery/computer/computer.dm index fd207eedbd..783c446a6b 100644 --- a/code/game/machinery/computer/computer.dm +++ b/code/game/machinery/computer/computer.dm @@ -7,27 +7,35 @@ use_power = 1 idle_power_usage = 300 active_power_usage = 300 + obj_integrity = 200 + max_integrity = 200 + integrity_failure = 100 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 40, acid = 20) var/obj/item/weapon/circuitboard/computer/circuit = null // if circuit==null, computer can't disassembly var/processing = 0 var/brightness_on = 2 var/icon_keyboard = "generic_key" var/icon_screen = "generic" - var/computer_health = 25 var/clockwork = FALSE - use_auto_lights = 1 - light_power_on = 1 - light_range_on = 3 - /obj/machinery/computer/New(location, obj/item/weapon/circuitboard/C) ..(location) if(C && istype(C)) circuit = C - else if(circuit) + //Some machines, oldcode arcades mostly, new themselves, so circuit + //can already be an instance of a type and trying to new that will + //cause a runtime + else if(ispath(circuit)) circuit = new circuit(null) power_change() update_icon() +/obj/machinery/computer/Destroy() + if(circuit) + qdel(circuit) + circuit = null + return ..() + /obj/machinery/computer/initialize() power_change() @@ -36,30 +44,8 @@ return 0 return 1 -/obj/machinery/computer/emp_act(severity) - if(severity == 1) - take_damage(rand(15,30), BRUTE, 0) - else - take_damage(rand(15,25), BRUTE, 0) - ..() - -/obj/machinery/computer/ex_act(severity, target) - if(target == src) - qdel(src) - return - switch(severity) - if(1) - qdel(src) - if(2) - if(prob(25)) - qdel(src) - else - take_damage(rand(20,30), BRUTE, 0) - if(3) - take_damage(rand(10,30), BRUTE, 0) - /obj/machinery/computer/ratvar_act() - if(!clockwork && prob(20)) + if(!clockwork) clockwork = TRUE icon_screen = "ratvar[rand(1, 4)]" icon_keyboard = "ratvar_key[rand(1, 6)]" @@ -74,10 +60,6 @@ icon_state = initial(icon_state) update_icon() -/obj/machinery/computer/bullet_act(obj/item/projectile/P) - take_damage(P.damage, P.damage_type, 0) - ..() - /obj/machinery/computer/update_icon() cut_overlays() if(stat & NOPOWER) @@ -86,13 +68,15 @@ add_overlay(icon_keyboard) if(stat & BROKEN) add_overlay("[icon_state]_broken") - set_light(l_color = LIGHT_COLOR_BLUE) else add_overlay(icon_screen) - set_light(l_color = initial(light_color)) /obj/machinery/computer/power_change() ..() + if(stat & NOPOWER) + SetLuminosity(0) + else + SetLuminosity(brightness_on) update_icon() return @@ -100,44 +84,61 @@ if(istype(I, /obj/item/weapon/screwdriver) && circuit && !(flags&NODECONSTRUCT)) playsound(src.loc, I.usesound, 50, 1) user << " You start to disconnect the monitor..." - if(do_after(user, 20/I.toolspeed, target = src)) - deconstruction() + if(do_after(user, 20*I.toolspeed, target = src)) + deconstruct(TRUE, user) + else + return ..() + +/obj/machinery/computer/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) + switch(damage_type) + if(BRUTE) + if(stat & BROKEN) + playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1) + else + playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1) + if(BURN) + playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) + +/obj/machinery/computer/obj_break(damage_flag) + if(circuit && !(flags & NODECONSTRUCT)) //no circuit, no breaking + if(!(stat & BROKEN)) + playsound(loc, 'sound/effects/Glassbr3.ogg', 100, 1) + stat |= BROKEN + update_icon() + +/obj/machinery/computer/emp_act(severity) + switch(severity) + if(1) + if(prob(50)) + obj_break("energy") + if(2) + if(prob(10)) + obj_break("energy") + ..() + +/obj/machinery/computer/deconstruct(disassembled = TRUE, mob/user) + on_deconstruction() + if(!(flags & NODECONSTRUCT)) + if(circuit) //no circuit, no computer frame var/obj/structure/frame/computer/A = new /obj/structure/frame/computer(src.loc) A.circuit = circuit A.anchored = 1 - circuit = null - for (var/obj/C in src) - C.loc = src.loc - if (stat & BROKEN) - user << "The broken glass falls out." + if(stat & BROKEN) + if(user) + user << "The broken glass falls out." + else + playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1) new /obj/item/weapon/shard(src.loc) new /obj/item/weapon/shard(src.loc) A.state = 3 A.icon_state = "3" else - user << "You disconnect the monitor." + if(user) + user << "You disconnect the monitor." A.state = 4 A.icon_state = "4" - qdel(src) - else - return ..() + circuit = null + for(var/obj/C in src) + C.forceMove(loc) -/obj/machinery/computer/take_damage(damage, damage_type = BRUTE, sound_effect = 1) - switch(damage_type) - if(BRUTE) - if(sound_effect) - if(stat & BROKEN) - playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1) - else - playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1) - if(BURN) - if(sound_effect) - playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) - else - return - computer_health = max(computer_health - damage, 0) - if(circuit) //no circuit, no breaking - if(!computer_health && !(stat & BROKEN)) - playsound(loc, 'sound/effects/Glassbr3.ogg', 100, 1) - stat |= BROKEN - update_icon() + qdel(src) diff --git a/code/game/machinery/computer/crew.dm b/code/game/machinery/computer/crew.dm index 4f2cdc2d44..e69d370bfc 100644 --- a/code/game/machinery/computer/crew.dm +++ b/code/game/machinery/computer/crew.dm @@ -7,7 +7,11 @@ idle_power_usage = 250 active_power_usage = 500 circuit = /obj/item/weapon/circuitboard/computer/crew - light_color = LIGHT_COLOR_BLUE + var/monitor = null //For VV debugging purposes + +/obj/machinery/computer/crew/New() + monitor = crewmonitor + return ..() /obj/machinery/computer/crew/attack_ai(mob/user) if(stat & (BROKEN|NOPOWER)) @@ -104,6 +108,7 @@ var/global/datum/crewmonitor/crewmonitor = new src.update(z, TRUE) else hi = src.interfaces["[z]"] + src.update(z,TRUE) // Debugging purposes mob << browse_rsc(file("code/game/machinery/computer/crew.js"), "crew.js") @@ -205,9 +210,12 @@ var/global/datum/crewmonitor/crewmonitor = new for (z in src.interfaces) if (src.interfaces[z] == hi) break + if(hclient.client.mob && IsAdminGhost(hclient.client.mob)) + return TRUE + if (hclient.client.mob && hclient.client.mob.stat == 0 && hclient.client.mob.z == text2num(z)) if (isAI(hclient.client.mob)) return TRUE - else if (isrobot(hclient.client.mob)) + else if (iscyborg(hclient.client.mob)) return (locate(/obj/machinery/computer/crew, range(world.view, hclient.client.mob))) || (locate(/obj/item/device/sensor_device, hclient.client.mob.contents)) else return (locate(/obj/machinery/computer/crew, range(1, hclient.client.mob))) || (locate(/obj/item/device/sensor_device, hclient.client.mob.contents)) @@ -252,7 +260,7 @@ var/global/datum/crewmonitor/crewmonitor = new return ..() /datum/crewmonitor/proc/queueUpdate(z) - addtimer(crewmonitor, "update", 5, TRUE, z) + addtimer(crewmonitor, "update", 5, TIMER_UNIQUE, z) /datum/crewmonitor/proc/sendResources(var/client/client) send_asset(client, "crewmonitor.js") diff --git a/code/game/machinery/computer/dna_console.dm b/code/game/machinery/computer/dna_console.dm index a50562a595..a4dee33e60 100644 --- a/code/game/machinery/computer/dna_console.dm +++ b/code/game/machinery/computer/dna_console.dm @@ -37,7 +37,6 @@ use_power = 1 idle_power_usage = 10 active_power_usage = 400 - light_color = LIGHT_COLOR_BLUE /obj/machinery/computer/scan_consolenew/attackby(obj/item/I, mob/user, params) if (istype(I, /obj/item/weapon/disk/data)) //INSERT SOME DISKETTES @@ -47,7 +46,6 @@ I.loc = src src.diskette = I user << "You insert [I]." - playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0) src.updateUsrDialog() return else @@ -74,7 +72,7 @@ /obj/machinery/computer/scan_consolenew/proc/ShowInterface(mob/user, last_change) if(!user) return var/datum/browser/popup = new(user, "scannernew", "DNA Modifier Console", 800, 630) // Set up the popup browser window - if(!( in_range(src, user) || istype(user, /mob/living/silicon) )) + if(!(in_range(src, user) || issilicon(user))) popup.close() return popup.add_stylesheet("scannernew", 'html/browser/scannernew.css') @@ -318,7 +316,7 @@ return if(!isturf(usr.loc)) return - if(!( (isturf(loc) && in_range(src, usr)) || istype(usr, /mob/living/silicon) )) + if(!((isturf(loc) && in_range(src, usr)) || issilicon(usr))) return if(current_screen == "working") return @@ -341,13 +339,11 @@ if("setduration") if(!num) num = round(input(usr, "Choose pulse duration:", "Input an Integer", null) as num|null) - playsound(src, 'sound/machines/terminal_displaying.ogg', 50, 0) if(num) radduration = Wrap(num, 1, RADIATION_DURATION_MAX+1) if("setstrength") if(!num) num = round(input(usr, "Choose pulse strength:", "Input an Integer", null) as num|null) - playsound(src, 'sound/machines/terminal_displaying.ogg', 50, 0) if(num) radstrength = Wrap(num, 1, RADIATION_STRENGTH_MAX+1) if("screen") @@ -357,10 +353,8 @@ var/potassiodide_amount = viable_occupant.reagents.get_reagent_amount("potass_iodide") var/can_add = max(min(REJUVENATORS_MAX - potassiodide_amount, REJUVENATORS_INJECT), 0) viable_occupant.reagents.add_reagent("potass_iodide", can_add) - playsound(src, 'sound/machines/terminal_select.ogg', 50, 0) if("setbufferlabel") var/text = sanitize(input(usr, "Input a new label:", "Input an Text", null) as text|null) - playsound(src, 'sound/machines/terminal_displaying.ogg', 50, 0) if(num && text) num = Clamp(num, 1, NUMBER_OF_BUFFERS) var/list/buffer_slot = buffer[num] @@ -368,7 +362,6 @@ buffer_slot["label"] = text if("setbuffer") if(num && viable_occupant) - playsound(src, 'sound/machines/terminal_select.ogg', 50, 0) num = Clamp(num, 1, NUMBER_OF_BUFFERS) buffer[num] = list( "label"="Buffer[num]:[viable_occupant.real_name]", @@ -380,14 +373,12 @@ ) if("clearbuffer") if(num) - playsound(src, 'sound/machines/terminal_select.ogg', 50, 0) num = Clamp(num, 1, NUMBER_OF_BUFFERS) var/list/buffer_slot = buffer[num] if(istype(buffer_slot)) buffer_slot.Cut() if("transferbuffer") if(num && viable_occupant) - playsound(src, 'sound/machines/terminal_select.ogg', 50, 0) switch(href_list["text"]) //Numbers are this high because other way upgrading laser is just not worth the hassle, and i cant think of anything better to inmrove if("se") apply_buffer(SCANNER_ACTION_SE,num) @@ -451,12 +442,10 @@ injectorready = 1 if("loaddisk") if(num && diskette && diskette.fields) - playsound(src, 'sound/machines/terminal_select.ogg', 50, 0) num = Clamp(num, 1, NUMBER_OF_BUFFERS) buffer[num] = diskette.fields.Copy() if("savedisk") if(num && diskette && !diskette.read_only) - playsound(src, 'sound/machines/terminal_select.ogg', 50, 0) num = Clamp(num, 1, NUMBER_OF_BUFFERS) var/list/buffer_slot = buffer[num] if(istype(buffer_slot)) @@ -464,7 +453,6 @@ diskette.fields = buffer_slot.Copy() if("ejectdisk") if(diskette) - playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0) diskette.loc = get_turf(src) diskette = null if("setdelayed") @@ -472,7 +460,6 @@ delayed_action = list("action"=text2num(href_list["delayaction"]),"buffer"=num) if("pulseui","pulsese") if(num && viable_occupant && connected) - playsound(src, 'sound/machines/terminal_select.ogg', 50, 0) radduration = Wrap(radduration, 1, RADIATION_DURATION_MAX+1) radstrength = Wrap(radstrength, 1, RADIATION_STRENGTH_MAX+1) diff --git a/code/game/machinery/computer/gulag_teleporter.dm b/code/game/machinery/computer/gulag_teleporter.dm index a473eef369..0735ad0b8e 100644 --- a/code/game/machinery/computer/gulag_teleporter.dm +++ b/code/game/machinery/computer/gulag_teleporter.dm @@ -4,7 +4,7 @@ desc = "Used to send criminals to the Labor Camp" icon_screen = "explosive" icon_keyboard = "security_key" - req_access = list(access_security) + req_access = list(access_armory) circuit = /obj/item/weapon/circuitboard/computer/gulag_teleporter_console var/default_goal = 200 var/obj/item/weapon/card/id/prisoner/id = null @@ -12,7 +12,6 @@ var/obj/structure/gulag_beacon/beacon = null var/mob/living/carbon/human/prisoner = null var/datum/data/record/temporary_record = null - light_color = LIGHT_COLOR_RED /obj/machinery/computer/gulag_teleporter_computer/New() ..() @@ -31,7 +30,6 @@ W.forceMove(src) id = W user << "You insert [W]." - playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0) return else user << "There's an ID inserted already." @@ -84,26 +82,23 @@ if(..()) return if(!allowed(usr)) - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) usr << "Access denied." return switch(action) if("scan_teleporter") teleporter = findteleporter() - playsound(src, 'sound/machines/terminal_select.ogg', 50, 0) if("scan_beacon") beacon = findbeacon() - playsound(src, 'sound/machines/terminal_select.ogg', 50, 0) if("handle_id") if(id) - if(!usr.get_active_hand()) + if(!usr.get_active_held_item()) usr.put_in_hands(id) id = null else id.forceMove(get_turf(src)) id = null else - var/obj/item/I = usr.get_active_hand() + var/obj/item/I = usr.get_active_held_item() if(istype(I, /obj/item/weapon/card/id/prisoner)) if(!usr.drop_item()) return @@ -111,7 +106,6 @@ id = I if("set_goal") var/new_goal = input("Set the amount of points:", "Points", id.goal) as num|null - playsound(src, 'sound/machines/terminal_displaying.ogg', 50, 0) if(!isnum(new_goal)) return if(!new_goal) @@ -119,23 +113,18 @@ id.goal = Clamp(new_goal, 0, 1000) //maximum 1000 points if("toggle_open") if(teleporter.locked) - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) usr << "The teleporter is locked" return - playsound(src, 'sound/machines/terminal_select.ogg', 50, 0) teleporter.toggle_open() if("teleporter_lock") if(teleporter.state_open) usr << "Close the teleporter before locking!" - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) return teleporter.locked = !teleporter.locked - playsound(src, 'sound/machines/terminal_select.ogg', 50, 0) if("teleport") if(!teleporter || !beacon) return - addtimer(src, "teleport", 5, FALSE, usr) - playsound(src, 'sound/machines/terminal_processing.ogg', 50, 0) + addtimer(src, "teleport", 5, TIMER_NORMAL, usr) /obj/machinery/computer/gulag_teleporter_computer/proc/scan_machinery() teleporter = findteleporter() @@ -166,3 +155,10 @@ teleporter.toggle_open() id = null temporary_record = null + + + + + + + diff --git a/code/game/machinery/computer/law.dm b/code/game/machinery/computer/law.dm index f2f37340cd..7ff5491ebe 100644 --- a/code/game/machinery/computer/law.dm +++ b/code/game/machinery/computer/law.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 + /obj/machinery/computer/upload var/mob/living/silicon/current = null //The target of future law uploads @@ -11,21 +11,17 @@ return if(!current) user << "You haven't selected anything to transmit laws to!" - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) return if(!can_upload_to(current)) user << "Upload failed! Check to make sure [current.name] is functioning properly." - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) current = null return var/turf/currentloc = get_turf(current) if(currentloc && user.z != currentloc.z) user << "Upload failed! Unable to establish a connection to [current.name]. You're too far away!" - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) current = null return M.install(current.laws, user) - playsound(src, 'sound/machines/terminal_processing.ogg', 50, 0) else return ..() @@ -47,10 +43,8 @@ if (!src.current) user << "No active AIs detected!" - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) else user << "[src.current.name] selected for law changes." - playsound(src, 'sound/machines/terminal_select.ogg', 50, 0) /obj/machinery/computer/upload/ai/can_upload_to(mob/living/silicon/ai/A) if(!A || !isAI(A)) @@ -73,14 +67,12 @@ if(!src.current) user << "No active unslaved cyborgs detected!" - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) else user << "[src.current.name] selected for law changes." - playsound(src, 'sound/machines/terminal_select.ogg', 50, 0) /obj/machinery/computer/upload/borg/can_upload_to(mob/living/silicon/robot/B) - if(!B || !isrobot(B)) + if(!B || !iscyborg(B)) return 0 if(B.scrambledcodes || B.emagged) return 0 - return ..() + return ..() \ No newline at end of file diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index a94093934a..da3df8b2cf 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 + /obj/machinery/computer/med_data//TODO:SANITY name = "medical records console" @@ -19,7 +19,6 @@ //Sorting Variables var/sortBy = "name" var/order = 1 // -1 = Descending - 1 = Ascending - light_color = LIGHT_COLOR_BLUE /obj/machinery/computer/med_data/attackby(obj/item/O, mob/user, params) if(istype(O, /obj/item/weapon/card/id) && !scan) @@ -28,7 +27,6 @@ O.loc = src scan = O user << "You insert [O]." - playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0) else return ..() @@ -191,8 +189,6 @@ else else dat += text("{Log In}", src) - //user << browse(text("Medical Records[]", dat), "window=med_rec") - //onclose(user, "med_rec") var/datum/browser/popup = new(user, "med_rec", "Medical Records Console", 600, 400) popup.set_content(dat) popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) @@ -208,19 +204,19 @@ if(!(active2 in data_core.medical)) src.active2 = null - if((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon)) || IsAdminGhost(usr)) + if(usr.contents.Find(src) || (in_range(src, usr) && isturf(loc)) || issilicon(usr) || IsAdminGhost(usr)) usr.set_machine(src) if(href_list["temp"]) src.temp = null if(href_list["scan"]) if(src.scan) - if(istype(usr,/mob/living/carbon/human) && !usr.get_active_hand()) + if(ishuman(usr) && !usr.get_active_held_item()) usr.put_in_hands(scan) else scan.loc = get_turf(src) src.scan = null else - var/obj/item/I = usr.get_active_hand() + var/obj/item/I = usr.get_active_held_item() if(istype(I, /obj/item/weapon/card/id)) if(!usr.drop_item()) return @@ -231,7 +227,6 @@ src.screen = null src.active1 = null src.active2 = null - playsound(src, 'sound/machines/terminal_select.ogg', 50, 0) else if(href_list["choice"]) // SORTING! if(href_list["choice"] == "Sorting") @@ -246,13 +241,12 @@ sortBy = href_list["sort"] order = initial(order) else if(href_list["login"]) - if(istype(usr, /mob/living/silicon)) + if(issilicon(usr)) src.active1 = null src.active2 = null src.authenticated = 1 src.rank = "AI" src.screen = 1 - playsound(src, 'sound/machines/terminal_select.ogg', 50, 0) else if(IsAdminGhost(usr)) src.active1 = null src.active2 = null @@ -266,7 +260,6 @@ src.authenticated = src.scan.registered_name src.rank = src.scan.assignment src.screen = 1 - playsound(src, 'sound/machines/terminal_select.ogg', 50, 0) if(src.authenticated) if(href_list["screen"]) @@ -507,7 +500,7 @@ var/counter = 1 while(src.active2.fields[text("com_[]", counter)]) counter++ - src.active2.fields[text("com_[]", counter)] = text("Made by [] ([]) on [] [], []
    []", src.authenticated, src.rank, worldtime2text(), time2text(world.realtime, "MMM DD"), year_integer+540, t1,) + src.active2.fields[text("com_[]", counter)] = text("Made by [] ([]) on [] [], []
    []", src.authenticated, src.rank, worldtime2text(), time2text(world.realtime, "MMM DD"), year_integer+540, t1) else if(href_list["del_c"]) if((istype(src.active2, /datum/data/record) && src.active2.fields[text("com_[]", href_list["del_c"])])) diff --git a/code/game/machinery/computer/message.dm b/code/game/machinery/computer/message.dm index 791f8606f4..163ca54e01 100644 --- a/code/game/machinery/computer/message.dm +++ b/code/game/machinery/computer/message.dm @@ -17,7 +17,7 @@ var/noserver = "ALERT: No server detected." var/incorrectkey = "ALERT: Incorrect decryption key!" var/defaultmsg = "Welcome. Please select an option." - var/rebootmsg = "%$&(�: Critical %$$@ Error // !RestArting! - ?pLeaSe wAit!" + var/rebootmsg = "%$&(£: Critical %$$@ Error // !RestArting! - ?pLeaSe wAit!" //Computer properties var/screen = 0 // 0 = Main menu, 1 = Message Logs, 2 = Hacked screen, 3 = Custom Message var/hacking = 0 // Is it being hacked into by the AI/Cyborg @@ -29,7 +29,6 @@ var/obj/item/device/pda/customrecepient = null var/customjob = "Admin" var/custommessage = "This is a test, please ignore." - light_color = LIGHT_COLOR_GREEN /obj/machinery/computer/message_monitor/attackby(obj/item/weapon/O, mob/living/user, params) if(istype(O, /obj/item/weapon/screwdriver) && emagged) @@ -41,7 +40,6 @@ /obj/machinery/computer/message_monitor/emag_act(mob/user) if(!emagged) if(!isnull(src.linkedServer)) - playsound(src, 'sound/machines/terminal_emagged.ogg', 50, 0) emagged = 1 screen = 2 spark_system.set_up(5, 0, src) @@ -49,13 +47,12 @@ var/obj/item/weapon/paper/monitorkey/MK = new/obj/item/weapon/paper/monitorkey MK.loc = src.loc // Will help make emagging the console not so easy to get away with. - MK.info += "

    �%@%(*$%&(�&?*(%&�/{}" + MK.info += "

    £%@%(*$%&(£&?*(%&£/{}" var/time = 100 * length(src.linkedServer.decryptkey) addtimer(src, "UnmagConsole", time) message = rebootmsg else - user << "A 'no server' error appears on the screen." - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) + user << "A no server error appears on the screen." /obj/machinery/computer/message_monitor/initialize() //Is the server isn't linked to a server, and there's a server available, default it to the first one in the list. @@ -134,7 +131,7 @@ dat += "" //Hacking screen. if(2) - if(istype(user, /mob/living/silicon/ai) || istype(user, /mob/living/silicon/robot)) + if(isAI(user) || iscyborg(user)) dat += "Brute-forcing for server key.
    It will take 20 seconds for every character that the password has." dat += "In the meantime, this console can reveal your true intentions if you let someone access it. Make sure no humans enter the room during that time." else @@ -220,8 +217,6 @@ dat += "" message = defaultmsg - //user << browse(dat, "window=message;size=700x700") - //onclose(user, "message") var/datum/browser/popup = new(user, "hologram_console", name, 700, 700) popup.set_content(dat) popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) @@ -250,103 +245,80 @@ if(..()) return - if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon))) + if(usr.contents.Find(src) || (in_range(src, usr) && isturf(loc)) || issilicon(usr)) //Authenticate if (href_list["auth"]) if(!linkedServer || linkedServer.stat & (NOPOWER|BROKEN)) message = noserver - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) else if(auth) auth = 0 screen = 0 else var/dkey = trim(input(usr, "Please enter the decryption key.") as text|null) - playsound(src, 'sound/machines/terminal_displaying.ogg', 50, 0) if(dkey && dkey != "") if(src.linkedServer.decryptkey == dkey) auth = 1 - playsound(src, 'sound/machines/terminal_success.ogg', 50, 0) else message = incorrectkey - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) //Turn the server on/off. if (href_list["active"]) if(auth) linkedServer.active = !linkedServer.active - playsound(src, 'sound/machines/terminal_select.ogg', 50, 0) - //Find a server if (href_list["find"]) if(message_servers && message_servers.len > 1) src.linkedServer = input(usr,"Please select a server.", "Select a server.", null) as null|anything in message_servers message = "NOTICE: Server selected." - playsound(src, 'sound/machines/terminal_select.ogg', 50, 0) else if(message_servers && message_servers.len > 0) linkedServer = message_servers[1] message = "NOTICE: Only Single Server Detected - Server selected." - playsound(src, 'sound/machines/terminal_select.ogg', 50, 0) else message = noserver - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) //View the logs - KEY REQUIRED if (href_list["view"]) if(src.linkedServer == null || (src.linkedServer.stat & (NOPOWER|BROKEN))) message = noserver - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) else if(auth) src.screen = 1 - playsound(src, 'sound/machines/terminal_select.ogg', 50, 0) //Clears the logs - KEY REQUIRED if (href_list["clear"]) if(!linkedServer || (src.linkedServer.stat & (NOPOWER|BROKEN))) message = noserver - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) else if(auth) src.linkedServer.pda_msgs = list() message = "NOTICE: Logs cleared." - playsound(src, 'sound/machines/terminal_success.ogg', 50, 0) - //Clears the request console logs - KEY REQUIRED if (href_list["clearr"]) if(!linkedServer || (src.linkedServer.stat & (NOPOWER|BROKEN))) message = noserver - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) else if(auth) src.linkedServer.rc_msgs = list() message = "NOTICE: Logs cleared." - playsound(src, 'sound/machines/terminal_success.ogg', 50, 0) //Change the password - KEY REQUIRED if (href_list["pass"]) if(!linkedServer || (src.linkedServer.stat & (NOPOWER|BROKEN))) message = noserver - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) else if(auth) var/dkey = trim(input(usr, "Please enter the decryption key.") as text|null) - playsound(src, 'sound/machines/terminal_displaying.ogg', 50, 0) if(dkey && dkey != "") if(src.linkedServer.decryptkey == dkey) var/newkey = trim(input(usr,"Please enter the new key (3 - 16 characters max):")) - playsound(src, 'sound/machines/terminal_displaying.ogg', 50, 0) if(length(newkey) <= 3) message = "NOTICE: Decryption key too short!" - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) else if(length(newkey) > 16) message = "NOTICE: Decryption key too long!" - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) else if(newkey && newkey != "") src.linkedServer.decryptkey = newkey message = "NOTICE: Decryption key set." - playsound(src, 'sound/machines/terminal_success.ogg', 50, 0) else message = incorrectkey - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) //Hack the Console to get the password if (href_list["hack"]) @@ -357,56 +329,46 @@ spawn(100*length(src.linkedServer.decryptkey)) if(src && src.linkedServer && usr) BruteForce(usr) - playsound(src, 'sound/machines/terminal_processing.ogg', 50, 0) //Delete the log. if (href_list["delete"]) //Are they on the view logs screen? if(screen == 1) if(!linkedServer || (src.linkedServer.stat & (NOPOWER|BROKEN))) message = noserver - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) else //if(istype(href_list["delete"], /datum/data_pda_msg)) src.linkedServer.pda_msgs -= locate(href_list["delete"]) message = "NOTICE: Log Deleted!" - playsound(src, 'sound/machines/terminal_success.ogg', 50, 0) //Delete the request console log. if (href_list["deleter"]) //Are they on the view logs screen? if(screen == 4) if(!linkedServer || (src.linkedServer.stat & (NOPOWER|BROKEN))) message = noserver - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) else //if(istype(href_list["delete"], /datum/data_pda_msg)) src.linkedServer.rc_msgs -= locate(href_list["deleter"]) message = "NOTICE: Log Deleted!" - playsound(src, 'sound/machines/terminal_success.ogg', 50, 0) //Create a custom message if (href_list["msg"]) if(src.linkedServer == null || (src.linkedServer.stat & (NOPOWER|BROKEN))) message = noserver - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) else if(auth) src.screen = 3 - playsound(src, 'sound/machines/terminal_select.ogg', 50, 0) //Fake messaging selection - KEY REQUIRED if (href_list["select"]) if(src.linkedServer == null || (src.linkedServer.stat & (NOPOWER|BROKEN))) message = noserver screen = 0 - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) else switch(href_list["select"]) //Reset if("Reset") ResetMessage() - playsound(src, 'sound/machines/terminal_select.ogg', 50, 0) //Select Your Name if("Sender") customsender = stripped_input(usr, "Please enter the sender's name.") - playsound(src, 'sound/machines/terminal_displaying.ogg', 50, 0) //Select Receiver if("Recepient") @@ -414,20 +376,16 @@ var/list/obj/item/device/pda/sendPDAs = get_viewable_pdas() if(PDAs && PDAs.len > 0) customrecepient = input(usr, "Select a PDA from the list.") as null|anything in sortNames(sendPDAs) - playsound(src, 'sound/machines/terminal_displaying.ogg', 50, 0) else customrecepient = null - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) //Enter custom job if("RecJob") customjob = stripped_input(usr, "Please enter the sender's job.") - playsound(src, 'sound/machines/terminal_displaying.ogg', 50, 0) //Enter message if("Message") custommessage = stripped_input(usr, "Please enter your message.") - playsound(src, 'sound/machines/terminal_displaying.ogg', 50, 0) //Send message if("Send") @@ -438,12 +396,10 @@ if(isnull(customrecepient)) message = "NOTICE: No recepient selected!" return src.attack_hand(usr) - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) if(isnull(custommessage) || custommessage == "") message = "NOTICE: No message entered!" return src.attack_hand(usr) - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) var/obj/item/device/pda/PDARec = null for (var/obj/item/device/pda/P in get_viewable_pdas()) @@ -477,17 +433,14 @@ customrecepient.add_overlay(image('icons/obj/pda.dmi', "pda-r")) //Finally.. ResetMessage() - playsound(src, 'sound/machines/terminal_success.ogg', 50, 0) //Request Console Logs - KEY REQUIRED if(href_list["viewr"]) if(src.linkedServer == null || (src.linkedServer.stat & (NOPOWER|BROKEN))) message = noserver - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) else if(auth) src.screen = 4 - playsound(src, 'sound/machines/terminal_select.ogg', 50, 0) if (href_list["back"]) src.screen = 0 diff --git a/code/game/machinery/computer/pod.dm b/code/game/machinery/computer/pod.dm index 1f38de96ab..8f8bdaaae1 100644 --- a/code/game/machinery/computer/pod.dm +++ b/code/game/machinery/computer/pod.dm @@ -7,9 +7,6 @@ var/timing = 0 var/time = 30 var/range = 4 - light_color = LIGHT_COLOR_GREEN - light_power_on = 0.5 - light_range_on = 1 /obj/machinery/computer/pod/initialize() @@ -91,7 +88,7 @@ /obj/machinery/computer/pod/Topic(href, href_list) if(..()) return - if((usr.contents.Find(src) || (in_range(src, usr) && istype(loc, /turf))) || (istype(usr, /mob/living/silicon))) + if(usr.contents.Find(src) || (in_range(src, usr) && isturf(loc)) || issilicon(usr)) usr.set_machine(src) if(href_list["power"]) var/t = text2num(href_list["power"]) diff --git a/code/game/machinery/computer/prisoner.dm b/code/game/machinery/computer/prisoner.dm index f530b923df..bf79dc2257 100644 --- a/code/game/machinery/computer/prisoner.dm +++ b/code/game/machinery/computer/prisoner.dm @@ -12,7 +12,6 @@ var/screen = 0 // 0 - No Access Denied, 1 - Access allowed var/obj/item/weapon/card/id/prisoner/inserted_id circuit = /obj/item/weapon/circuitboard/computer/prisoner - light_color = LIGHT_COLOR_RED /obj/machinery/computer/prisoner/attack_hand(mob/user) if(..()) @@ -33,7 +32,7 @@ dat += "

    Prisoner Implant Management

    " dat += "
    Chemical Implants
    " var/turf/Tr = null - for(var/obj/item/weapon/implant/chem/C in tracked_implants) + for(var/obj/item/weapon/implant/chem/C in tracked_chem_implants) Tr = get_turf(C) if((Tr) && (Tr.z != src.z)) continue//Out of range @@ -57,7 +56,7 @@ var/loc_display = "Unknown" var/mob/living/carbon/M = T.imp_in - if(Tr.z == ZLEVEL_STATION && !istype(M.loc, /turf/open/space)) + if(Tr.z == ZLEVEL_STATION && !isspaceturf(M.loc)) var/turf/mob_loc = get_turf(M) loc_display = mob_loc.loc @@ -65,9 +64,6 @@ dat += "(Message Holder) |
    " dat += "********************************
    " dat += "
    Lock Console" - - //user << browse(dat, "window=computer;size=400x500") - //onclose(user, "computer") var/datum/browser/popup = new(user, "computer", "Prisoner Management Console", 400, 500) popup.set_content(dat) popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) @@ -89,48 +85,43 @@ /obj/machinery/computer/prisoner/Topic(href, href_list) if(..()) return - if((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon))) + if(usr.contents.Find(src) || (in_range(src, usr) && isturf(loc)) || issilicon(usr)) usr.set_machine(src) if(href_list["id"]) if(href_list["id"] =="insert" && !inserted_id) - var/obj/item/weapon/card/id/prisoner/I = usr.get_active_hand() + var/obj/item/weapon/card/id/prisoner/I = usr.get_active_held_item() if(istype(I)) if(!usr.drop_item()) return I.loc = src inserted_id = I - playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0) else usr << "No valid ID." - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) else if(inserted_id) switch(href_list["id"]) if("eject") inserted_id.loc = get_turf(src) inserted_id.verb_pickup() inserted_id = null - playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0) if("reset") inserted_id.points = 0 - playsound(src, 'sound/machines/terminal_select.ogg', 50, 0) if("setgoal") - playsound(src, 'sound/machines/terminal_displaying.ogg', 50, 0) var/num = round(input(usr, "Choose prisoner's goal:", "Input an Integer", null) as num|null) if(num >= 0) num = min(num,1000) //Cap the quota to the equivilent of 10 minutes. inserted_id.goal = num else if(href_list["inject1"]) - var/obj/item/weapon/implant/I = locate(href_list["inject1"]) - if(I) + var/obj/item/weapon/implant/I = locate(href_list["inject1"]) in tracked_chem_implants + if(I && istype(I)) I.activate(1) else if(href_list["inject5"]) - var/obj/item/weapon/implant/I = locate(href_list["inject5"]) - if(I) + var/obj/item/weapon/implant/I = locate(href_list["inject5"]) in tracked_chem_implants + if(I && istype(I)) I.activate(5) else if(href_list["inject10"]) - var/obj/item/weapon/implant/I = locate(href_list["inject10"]) - if(I) + var/obj/item/weapon/implant/I = locate(href_list["inject10"]) in tracked_chem_implants + if(I && istype(I)) I.activate(10) else if(href_list["lock"]) @@ -138,14 +129,12 @@ screen = !screen else usr << "Unauthorized Access." - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) else if(href_list["warn"]) - playsound(src, 'sound/machines/terminal_displaying.ogg', 50, 0) var/warning = copytext(sanitize(input(usr,"Message:","Enter your message here!","")),1,MAX_MESSAGE_LEN) if(!warning) return - var/obj/item/weapon/implant/I = locate(href_list["warn"]) - if((I)&&(I.imp_in)) + var/obj/item/weapon/implant/I = locate(href_list["warn"]) in tracked_chem_implants + if(I && istype(I) && I.imp_in) var/mob/living/carbon/R = I.imp_in R << "You hear a voice in your head saying: '[warning]'" log_say("[usr]/[usr.ckey] sent an implant message to [R]/[R.ckey]: '[warning]'") @@ -153,3 +142,5 @@ src.add_fingerprint(usr) src.updateUsrDialog() return + + diff --git a/code/game/machinery/computer/robot.dm b/code/game/machinery/computer/robot.dm index 27bd18cbf4..1cebe4b86a 100644 --- a/code/game/machinery/computer/robot.dm +++ b/code/game/machinery/computer/robot.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 + /obj/machinery/computer/robotics @@ -9,15 +9,14 @@ req_access = list(access_robotics) circuit = /obj/item/weapon/circuitboard/computer/robotics var/temp = null - light_color = LIGHT_COLOR_PINK /obj/machinery/computer/robotics/proc/can_control(mob/user, mob/living/silicon/robot/R) if(!istype(R)) return 0 - if(istype(user, /mob/living/silicon/ai)) + if(isAI(user)) if (R.connected_ai != user) return 0 - if(istype(user, /mob/living/silicon/robot)) + if(iscyborg(user)) if (R != user) return 0 if(R.scrambledcodes) @@ -32,7 +31,6 @@ /obj/machinery/computer/robotics/interact(mob/user) if (src.z > 6) user << "Unable to establish a connection: \black You're too far away from the station!" - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) return user.set_machine(src) var/dat @@ -61,8 +59,10 @@ dat += " Slaved to [R.connected_ai.name] |" else dat += " Independent from AI |" - if (istype(user, /mob/living/silicon) || IsAdminGhost(user)) - if(((issilicon(user) && is_special_character(user)) || IsAdminGhost(user)) && !R.emagged && (user != R || R.syndicate)) + if(issilicon(user) || IsAdminGhost(user)) + if(is_servant_of_ratvar(user) && user != R) + dat += "(Convert) " + else if(((issilicon(user) && is_special_character(user)) || IsAdminGhost(user)) && !R.emagged && (user != R || R.syndicate)) dat += "(Hack) " dat += "([R.canmove ? "Lockdown" : "Release"]) " dat += "(Destroy)" @@ -70,6 +70,21 @@ if(!robots) dat += "No Cyborg Units detected within access parameters." + dat += "
    " + + var/drones = 0 + for(var/mob/living/simple_animal/drone/D in mob_list) + if(D.hacked) + continue + drones++ + dat += "[D.name] |" + if(D.stat) + dat += " Not Responding |" + dat += "(Destroy)" + dat += "
    " + + if(!drones) + dat += "No Drone Units detected within access parameters." var/datum/browser/popup = new(user, "computer", "Cyborg Control Console", 400, 500) popup.set_content(dat) @@ -86,11 +101,10 @@ else if (href_list["killbot"]) if(src.allowed(usr)) - var/mob/living/silicon/robot/R = locate(href_list["killbot"]) + var/mob/living/silicon/robot/R = locate(href_list["killbot"]) in silicon_mobs if(can_control(usr, R)) var/choice = input("Are you certain you wish to detonate [R.name]?") in list("Confirm", "Abort") if(choice == "Confirm" && can_control(usr, R) && !..()) - playsound(src, 'sound/machines/terminal_select.ogg', 50, 0) if(R.syndicate && R.emagged) R << "Extreme danger. Termination codes detected. Scrambling security codes and automatic AI unlink triggered." if(R.connected_ai) @@ -104,15 +118,13 @@ R.self_destruct() else usr << "Access Denied." - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) else if (href_list["stopbot"]) if(src.allowed(usr)) - var/mob/living/silicon/robot/R = locate(href_list["stopbot"]) + var/mob/living/silicon/robot/R = locate(href_list["stopbot"]) in silicon_mobs if(can_control(usr, R)) var/choice = input("Are you certain you wish to [R.canmove ? "lock down" : "release"] [R.name]?") in list("Confirm", "Abort") if(choice == "Confirm" && can_control(usr, R) && !..()) - playsound(src, 'sound/machines/terminal_select.ogg', 50, 0) message_admins("[key_name_admin(usr)] (FLW) [R.canmove ? "locked down" : "released"] [key_name(R, R.client)](FLW)!") log_game("[key_name(usr)] [R.canmove ? "locked down" : "released"] [key_name(R)]!") R.SetLockdown(!R.lockcharge) @@ -125,13 +137,33 @@ else if (href_list["magbot"]) if((issilicon(usr) && is_special_character(usr)) || IsAdminGhost(usr)) - var/mob/living/silicon/robot/R = locate(href_list["magbot"]) - if(istype(R) && !R.emagged && ((R.syndicate && R == usr)|| R.connected_ai == usr || IsAdminGhost(usr)) && !R.scrambledcodes && can_control(usr, R)) + var/mob/living/silicon/robot/R = locate(href_list["magbot"]) in silicon_mobs + if(istype(R) && !R.emagged && ((R.syndicate && R == usr) || R.connected_ai == usr || IsAdminGhost(usr)) && !R.scrambledcodes && can_control(usr, R)) log_game("[key_name(usr)] emagged [R.name] using robotic console!") - message_admins("[key_name_admin(usr)] emagged cyborg [key_name_admin(R)]. using robotic console!") + message_admins("[key_name_admin(usr)] emagged cyborg [key_name_admin(R)] using robotic console!") R.SetEmagged(1) if(is_special_character(R)) R.verbs += /mob/living/silicon/robot/proc/ResetSecurityCodes + else if(href_list["convert"]) + if(issilicon(usr) && is_special_character(usr)) + var/mob/living/silicon/robot/R = locate(href_list["convert"]) in silicon_mobs + if(istype(R) && !is_servant_of_ratvar(R) && is_servant_of_ratvar(usr) && R.connected_ai == usr) + log_game("[key_name(usr)] converted [R.name] using robotic console!") + message_admins("[key_name_admin(usr)] converted cyborg [key_name_admin(R)] using robotic console!") + add_servant_of_ratvar(R) + + else if (href_list["killdrone"]) + if(src.allowed(usr)) + var/mob/living/simple_animal/drone/D = locate(href_list["killdrone"]) + if(D.hacked) + usr << "ERROR: [D] is not responding to external commands." + else + var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread + s.set_up(3, 1, D) + s.start() + D.visible_message("\the [D] self destructs!") + D.gib() + src.updateUsrDialog() return diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index d1cfe829c2..59a58383d9 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 + /obj/machinery/computer/secure_data//TODO:SANITY name = "security records console" @@ -22,7 +22,6 @@ //Sorting Variables var/sortBy = "name" var/order = 1 // -1 = Descending - 1 = Ascending - light_color = LIGHT_COLOR_RED /obj/machinery/computer/secure_data/attackby(obj/item/O, mob/user, params) @@ -33,10 +32,8 @@ O.loc = src scan = O user << "You insert [O]." - playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0) else user << "There's already an ID card in the console." - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) else return ..() @@ -46,7 +43,6 @@ return if(src.z > 6) user << "Unable to establish a connection: \black You're too far away from the station!" - playsound(src, 'sound/machines/terminal_error.ogg', 50, 0) return var/dat @@ -64,7 +60,7 @@ dat += {" - + ", "border=0;titlebar=0;size=1x1") + src << "You will be automatically taken to the game, if not, click here to be taken manually" + +/client/proc/note_randomizer_user() + var/const/adminckey = "CID-Error" + var/sql_ckey = sanitizeSQL(ckey) + //check to see if we noted them in the last day. + var/DBQuery/query_get_notes = dbcon.NewQuery("SELECT id FROM [format_table_name("notes")] WHERE ckey = '[sql_ckey]' AND adminckey = '[adminckey]' AND timestamp + INTERVAL 1 DAY < NOW()") + if(!query_get_notes.Execute()) + var/err = query_get_notes.ErrorMsg() + log_game("SQL ERROR obtaining id from notes table. Error : \[[err]\]\n") + return + if (query_get_notes.NextRow()) + return + + //regardless of above, make sure their last note is not from us, as no point in repeating the same note over and over. + query_get_notes = dbcon.NewQuery("SELECT adminckey FROM [format_table_name("notes")] WHERE ckey = '[sql_ckey]' ORDER BY timestamp DESC LIMIT 1") + if(!query_get_notes.Execute()) + var/err = query_get_notes.ErrorMsg() + log_game("SQL ERROR obtaining id from notes table. Error : \[[err]\]\n") + return + if (query_get_notes.NextRow()) + if (query_get_notes.item[1] == adminckey) + return + add_note(ckey, "Detected as using a cid randomizer.", null, adminckey, 0, null, 0) + + /client/proc/check_ip_intel() set waitfor = 0 //we sleep when getting the intel, no need to hold up the client connection while we sleep if (config.ipintel_email) @@ -384,4 +500,13 @@ var/next_external_rsc = 0 //Hook, override it to run code when dir changes //Like for /atoms, but clients are their own snowflake FUCK /client/proc/setDir(newdir) - dir = newdir \ No newline at end of file + dir = newdir + +/client/vv_edit_var(var_name, var_value) + switch (var_name) + if ("holder") + return FALSE + if ("ckey") + return FALSE + if ("key") + return FALSE diff --git a/code/modules/client/message.dm b/code/modules/client/message.dm index a18950fe8d..d804fd390f 100644 --- a/code/modules/client/message.dm +++ b/code/modules/client/message.dm @@ -1,6 +1,6 @@ var/list/clientmessages = list() -proc/addclientmessage(var/ckey, var/message) +/proc/addclientmessage(var/ckey, var/message) ckey = ckey(ckey) if (!ckey || !message) return diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 31b761de66..bd8a614b08 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -1,10 +1,11 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33 + var/list/preferences_datums = list() /datum/preferences + var/client/parent //doohickeys for savefiles var/path var/default_slot = 1 //Holder so it doesn't default to slot 1, rather the last one used @@ -41,23 +42,7 @@ var/list/preferences_datums = list() var/allow_midround_antag = 1 var/preferred_map = null - var/vore_banned_methods = 0 - var/vore_extra_bans = 65535 - var/list/vore_ability = list( - "1"=2, - "2"=0, - "4"=0, - "8"=0, - "16"=0, - "32"=0, - "64"=1, - "128"=0, - "256"=2) //BAAAAD way to do this - var/character_size="normal" - var/be_taur=0 - - var/list/p_cock=list("has"=0,"type"="human","color"="900","sheath"="FFF") - var/p_vagina=0 + var/uses_glasses_colour = 0 //character preferences var/real_name //our character's name @@ -76,11 +61,8 @@ var/list/preferences_datums = list() var/skin_tone = "caucasian1" //Skin color var/eye_color = "000" //Eye color var/datum/species/pref_species = new /datum/species/human() //Mutant race - var/list/features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "tail_lizard" = "Smooth", - "tail_human" = "None", "snout" = "Round", "horns" = "None", "ears" = "None", - "wings" = "None", "frills" = "None", "spines" = "None", "body_markings" = "None", - "mam_body_markings" = "None", "mam_ears" = "None", "mam_tail" = "None", "mam_tail_animated" = "None", - "xenodorsal" = "None", "xenohead" = "None", "xenotail" = "None") + var/list/features = list("mcolor" = "FFF", "mcolor2" = "FFF","mcolor3" = "FFF", "tail_lizard" = "Smooth", "tail_human" = "None", "snout" = "Round", "horns" = "None", "ears" = "None", "wings" = "None", "frills" = "None", "spines" = "None", "body_markings" = "None", "mam_body_markings" = "None", "mam_ears" = "None", "mam_tail" = "None", "mam_tail_animated" = "None", + "xenodorsal" = "None", "xenohead" = "None", "xenotail" = "None", "legs" = "Normal Legs") var/list/custom_names = list("clown", "mime", "ai", "cyborg", "religion", "deity") //Mob preview @@ -100,29 +82,31 @@ var/list/preferences_datums = list() var/job_engsec_low = 0 // Want randomjob if preferences already filled - Donkie - var/userandomjob = 1 //defaults to 1 for fewer assistants + var/joblessrole = BERANDOMJOB //defaults to 1 for fewer assistants // 0 = character settings, 1 = game preferences var/current_tab = 0 - // OOC Metadata: - //var/metadata = "" var/flavor_text = "" // Vore prefs var/digestable = 1 + var/devourable = 0 var/list/belly_prefs = list() + // OOC Metadata: + var/metadata = "" + var/unlock_content = 0 var/list/ignoring = list() - //Parallax prefs - var/space_parallax = 1 - var/space_dust = 1 - var/parallax_speed = 2 + var/clientfps = 0 + + var/parallax = PARALLAX_HIGH /datum/preferences/New(client/C) + parent = C custom_names["ai"] = pick(ai_names) custom_names["cyborg"] = pick(ai_names) custom_names["clown"] = pick(clown_names) @@ -185,7 +169,7 @@ var/list/preferences_datums = list() dat += "Set Occupation Preferences
    " dat += "

    Identity

    " dat += "") + t = replacetext(t, "\[tr\]", "") + t = replacetext(t, "\[td\]", "\s*$/g,At={option:[1,""],legend:[1,"
    ","
    "],area:[1,"",""],param:[1,"",""],thead:[1,"
    " - if(appearance_isbanned(user)) + if(jobban_isbanned(user, "appearance")) dat += "You are banned from using custom names and appearances. You can continue to adjust your characters, but you will be randomised once you join the game.
    " dat += "Random Name " dat += "Always Random Name: [be_random_name ? "Yes" : "No"]
    " @@ -218,8 +202,7 @@ var/list/preferences_datums = list() dat += "" + // dat += "Size:[character_size]
    " dat += "Set Flavor Text
    " if(lentext(flavor_text) <= 40) @@ -249,7 +233,7 @@ var/list/preferences_datums = list() dat += "" - if(HAIR in pref_species.specflags) + if(HAIR in pref_species.species_traits) dat += "" - if(EYECOLOR in pref_species.specflags) + if(EYECOLOR in pref_species.species_traits) dat += "" + dat += "   Change
    " dat += "   Change
    " - dat += "" -//lizard bodyparts + if("tail_lizard" in pref_species.mutant_bodyparts) dat += "" -//Mammal bodyparts + + //Mammal bodyparts if("mam_body_markings" in pref_species.mutant_bodyparts) dat += "" if("mam_ears" in pref_species.mutant_bodyparts) @@ -440,7 +433,7 @@ var/list/preferences_datums = list() if (1) // Game Preferences dat += "
    " if(config.mutant_races) - dat += "Species:
    [pref_species.id]
    " - dat += "
    " + dat += "Species:
    [pref_species.name]
    " else dat += "Species: Human
    " @@ -228,6 +211,7 @@ var/list/preferences_datums = list() dat += "Socks:
    [socks]
    " dat += "Backpack:
    [backbag]
    " @@ -270,7 +254,7 @@ var/list/preferences_datums = list() dat += "" @@ -282,20 +266,21 @@ var/list/preferences_datums = list() if(config.mutant_races) //We don't allow mutant bodyparts for humans either unless this is true. - if((MUTCOLORS in pref_species.specflags) || (MUTCOLORS_PARTSONLY in pref_species.specflags)) + if((MUTCOLORS in pref_species.species_traits) || (MUTCOLORS_PARTSONLY in pref_species.species_traits)) - dat += "" + dat += "" - dat += "

    Alien/Mutant Colors

    " + dat += "

    Mutant Color

    " dat += "    Change
    " + dat += "
    " @@ -349,7 +334,8 @@ var/list/preferences_datums = list() dat += "[features["body_markings"]]
    " dat += "
    " @@ -366,6 +352,13 @@ var/list/preferences_datums = list() dat += "[features["mam_tail"]]
    " + if("legs" in pref_species.mutant_bodyparts) + dat += "
    " + + dat += "

    Legs

    " + + dat += "[features["legs"]]
    " + dat += "
    " dat += "

    General Settings

    " - dat += "UI Style: [UI_style]
    " + dat += "UI Style: [UI_style]
    " dat += "Keybindings: [(hotkeys) ? "Hotkeys" : "Default"]
    " dat += "tgui Style: [(tgui_fancy) ? "Fancy" : "No Frills"]
    " dat += "tgui Monitors: [(tgui_lock) ? "Primary" : "All"]
    " @@ -453,10 +446,6 @@ var/list/preferences_datums = list() dat += "Ghost pda: [(chat_toggles & CHAT_GHOSTPDA) ? "All Messages" : "Nearest Creatures"]
    " dat += "Pull requests: [(chat_toggles & CHAT_PULLR) ? "Yes" : "No"]
    " dat += "Midround Antagonist: [(toggles & MIDROUND_ANTAG) ? "Yes" : "No"]
    " - dat += "Space Parallax: [space_parallax ? "Enabled" : "Disabled"]
    " - if(space_parallax) - dat += "Parallax Speed: [parallax_speed]
    " - dat += "Space Dust: [space_dust ? "Yes" : "No"]
    " if(config.allow_Metadata) dat += "OOC Notes: Edit
    " @@ -509,7 +498,23 @@ var/list/preferences_datums = list() p_map = VM.friendlyname else p_map += " (No longer exists)" - dat += "Preferred Map: [p_map]" + dat += "Preferred Map: [p_map]
    " + + dat += "FPS: [clientfps]
    " + + dat += "Parallax (Fancy Space): " + switch (parallax) + if (PARALLAX_LOW) + dat += "Low" + if (PARALLAX_MED) + dat += "Medium" + if (PARALLAX_INSANE) + dat += "Insane" + if (PARALLAX_DISABLE) + dat += "Disabled" + else + dat += "High" + dat += "
    " dat += "
    " @@ -546,7 +551,6 @@ var/list/preferences_datums = list() dat += "Reset Setup" dat += "" - //user << browse(dat, "window=preferences;size=560x560") var/datum/browser/popup = new(user, "preferences", "
    Character Setup
    ", 640, 750) popup.set_content(dat) popup.open(0) @@ -563,108 +567,116 @@ var/list/preferences_datums = list() var/width = widthPerColumn var/HTML = "
    " - HTML += "Choose occupation chances
    " - HTML += "
    Left-click to raise an occupation preference, right-click to lower it.
    " - HTML += "
    Done

    " // Easier to press up here. - HTML += "" - HTML += "
    " // Table within a table for alignment, also allows you to easily add more colomns. - HTML += "" - var/index = -1 + if(SSjob.occupations.len <= 0) + HTML += "The job ticker is not yet finished creating jobs, please try again later" + HTML += "
    Done

    " // Easier to press up here. - //The job before the current job. I only use this to get the previous jobs color when I'm filling in blank rows. - var/datum/job/lastJob + else + HTML += "Choose occupation chances
    " + HTML += "
    Left-click to raise an occupation preference, right-click to lower it.
    " + HTML += "
    Done

    " // Easier to press up here. + HTML += "" + HTML += "
    " // Table within a table for alignment, also allows you to easily add more colomns. + HTML += "" + var/index = -1 - for(var/datum/job/job in SSjob.occupations) + //The job before the current job. I only use this to get the previous jobs color when I'm filling in blank rows. + var/datum/job/lastJob - index += 1 - if((index >= limit) || (job.title in splitJobs)) - width += widthPerColumn - if((index < limit) && (lastJob != null)) - //If the cells were broken up by a job in the splitJob list then it will fill in the rest of the cells with - //the last job's selection color. Creating a rather nice effect. - for(var/i = 0, i < (limit - index), i += 1) - HTML += "" - HTML += "
      
    " - index = 0 + for(var/datum/job/job in SSjob.occupations) - HTML += "" - continue - if(!job.player_old_enough(user.client)) - var/available_in_days = job.available_in_days(user.client) - HTML += "[rank]" - continue - if((job_civilian_low & ASSISTANT) && (rank != "Assistant") && !jobban_isbanned(user, "Assistant")) - HTML += "[rank]" - continue - if(config.enforce_human_authority && !user.client.prefs.pref_species.qualifies_for_rank(rank, user.client.prefs.features)) - if(user.client.prefs.pref_species.id == "human") - HTML += "[rank]" + index += 1 + if((index >= limit) || (job.title in splitJobs)) + width += widthPerColumn + if((index < limit) && (lastJob != null)) + //If the cells were broken up by a job in the splitJob list then it will fill in the rest of the cells with + //the last job's selection color. Creating a rather nice effect. + for(var/i = 0, i < (limit - index), i += 1) + HTML += "" + HTML += "
    " - var/rank = job.title - lastJob = job - if(jobban_isbanned(user, rank)) - HTML += "[rank] BANNED
    \[IN [(available_in_days)] DAYS\]
    \[MUTANT\]
      
    " + index = 0 + + HTML += "" + continue + if(!job.player_old_enough(user.client)) + var/available_in_days = job.available_in_days(user.client) + HTML += "[rank]" + continue + if((job_civilian_low & ASSISTANT) && (rank != "Assistant") && !jobban_isbanned(user, "Assistant")) + HTML += "[rank]" + continue + if(config.enforce_human_authority && !user.client.prefs.pref_species.qualifies_for_rank(rank, user.client.prefs.features)) + if(user.client.prefs.pref_species.id == "human") + HTML += "[rank]" + else + HTML += "[rank]" + continue + if((rank in command_positions) || (rank == "AI"))//Bold head jobs + HTML += "[rank]" else - HTML += "[rank]" - continue - if((rank in command_positions) || (rank == "AI"))//Bold head jobs - HTML += "[rank]" - else - HTML += "[rank]" + HTML += "[rank]" - HTML += "" + continue + + HTML += "[prefLevelLabel]" HTML += "" - continue - HTML += "[prefLevelLabel]" - HTML += "" + for(var/i = 1, i < (limit - index), i += 1) // Finish the column so it is even + HTML += "" - for(var/i = 1, i < (limit - index), i += 1) // Finish the column so it is even - HTML += "" + HTML += "
    " + var/rank = job.title + lastJob = job + if(jobban_isbanned(user, rank)) + HTML += "[rank] BANNED
    \[IN [(available_in_days)] DAYS\]
    \[MUTANT\]
    \[NON-HUMAN\]
    \[NON-HUMAN\]
    " + HTML += "" - var/prefLevelLabel = "ERROR" - var/prefLevelColor = "pink" - var/prefUpperLevel = -1 // level to assign on left click - var/prefLowerLevel = -1 // level to assign on right click + var/prefLevelLabel = "ERROR" + var/prefLevelColor = "pink" + var/prefUpperLevel = -1 // level to assign on left click + var/prefLowerLevel = -1 // level to assign on right click - if(GetJobDepartment(job, 1) & job.flag) - prefLevelLabel = "High" - prefLevelColor = "slateblue" - prefUpperLevel = 4 - prefLowerLevel = 2 - else if(GetJobDepartment(job, 2) & job.flag) - prefLevelLabel = "Medium" - prefLevelColor = "green" - prefUpperLevel = 1 - prefLowerLevel = 3 - else if(GetJobDepartment(job, 3) & job.flag) - prefLevelLabel = "Low" - prefLevelColor = "orange" - prefUpperLevel = 2 - prefLowerLevel = 4 - else - prefLevelLabel = "NEVER" - prefLevelColor = "red" - prefUpperLevel = 3 - prefLowerLevel = 1 - - - HTML += "" - - if(rank == "Assistant")//Assistant is special - if(job_civilian_low & ASSISTANT) - HTML += "Yes" + if(GetJobDepartment(job, 1) & job.flag) + prefLevelLabel = "High" + prefLevelColor = "slateblue" + prefUpperLevel = 4 + prefLowerLevel = 2 + else if(GetJobDepartment(job, 2) & job.flag) + prefLevelLabel = "Medium" + prefLevelColor = "green" + prefUpperLevel = 1 + prefLowerLevel = 3 + else if(GetJobDepartment(job, 3) & job.flag) + prefLevelLabel = "Low" + prefLevelColor = "orange" + prefUpperLevel = 2 + prefLowerLevel = 4 else - HTML += "No" + prefLevelLabel = "NEVER" + prefLevelColor = "red" + prefUpperLevel = 3 + prefLowerLevel = 1 + + + HTML += "" + + if(rank == "Assistant")//Assistant is special + if(job_civilian_low & ASSISTANT) + HTML += "Yes" + else + HTML += "No" + HTML += "
      
      
    " + HTML += "
    " - HTML += "
    " - - HTML += "
    " - - HTML += "

    [userandomjob ? "Get random job if preferences unavailable" : "Be an Assistant if preference unavailable"]
    " - HTML += "
    Reset Preferences
    " + var/message = "Be an Assistant if preferences unavailable" + if(joblessrole == BERANDOMJOB) + message = "Get random job if preferences unavailable" + else if(joblessrole == RETURNTOLOBBY) + message = "Return to lobby if preferences unavailable" + HTML += "

    [message]
    " + HTML += "
    Reset Preferences
    " user << browse(null, "window=preferences") - //user << browse(HTML, "window=mob_occupation;size=[width]x[height]") var/datum/browser/popup = new(user, "mob_occupation", "
    Occupation Preferences
    ", width, height) popup.set_window_options("can_close=0") popup.set_content(HTML) @@ -730,7 +742,7 @@ var/list/preferences_datums = list() return 0 /datum/preferences/proc/UpdateJobPreference(mob/user, role, desiredLvl) - if(!SSjob) + if(!SSjob || SSjob.occupations.len <= 0) return var/datum/job/job = SSjob.GetJob(role) @@ -835,10 +847,16 @@ var/list/preferences_datums = list() ResetJobs() SetChoices(user) if("random") - if(jobban_isbanned(user, "Assistant")) - userandomjob = 1 - else - userandomjob = !userandomjob + switch(joblessrole) + if(RETURNTOLOBBY) + if(jobban_isbanned(user, "Assistant")) + joblessrole = BERANDOMJOB + else + joblessrole = BEASSISTANT + if(BEASSISTANT) + joblessrole = BERANDOMJOB + if(BERANDOMJOB) + joblessrole = RETURNTOLOBBY SetChoices(user) if("setJobLevel") UpdateJobPreference(user, href_list["text"], text2num(href_list["level"])) @@ -921,19 +939,18 @@ var/list/preferences_datums = list() if(new_age) age = max(min( round(text2num(new_age)), AGE_MAX),AGE_MIN) - /*if("metadata") - var/new_metadata = input(user, "Enter any information you'd like others to see, such as Roleplay-preferences:", "Game Preference" , metadata) as message|null - if(new_metadata) - metadata = sanitize(copytext(new_metadata,1,MAX_MESSAGE_LEN))*/ - if("flavor_text") var/msg = input(usr,"Set the flavor text in your 'examine' verb. This can also be used for OOC notes and preferences!","Flavor Text",html_decode(flavor_text)) as message if(msg != null) msg = copytext(msg, 1, MAX_MESSAGE_LEN) msg = html_encode(msg) - flavor_text = msg + if("metadata") + var/new_metadata = input(user, "Enter any information you'd like others to see, such as Roleplay-preferences:", "Game Preference" , metadata) as message|null + if(new_metadata) + metadata = sanitize(copytext(new_metadata,1,MAX_MESSAGE_LEN)) + if("hair") var/new_hair = input(user, "Choose your character's hair colour:", "Character Preference") as null|color if(new_hair) @@ -1018,27 +1035,26 @@ var/list/preferences_datums = list() if("species") - var/result = input(user, "Select a species", "Species Selection") as null|anything in get_racelist(user) + var/result = input(user, "Select a species", "Species Selection") as null|anything in roundstart_species if(result) var/newtype = roundstart_species[result] pref_species = new newtype() //Now that we changed our species, we must verify that the mutant colour is still allowed. var/temp_hsv = RGBtoHSV(features["mcolor"]) - if(features["mcolor"] == "#000" || (!(MUTCOLORS_PARTSONLY in pref_species.specflags) && ReadHSV(temp_hsv)[3] < ReadHSV("#202020")[3])) + if(features["mcolor"] == "#000" || (!(MUTCOLORS_PARTSONLY in pref_species.species_traits) && ReadHSV(temp_hsv)[3] < ReadHSV("#7F7F7F")[3])) features["mcolor"] = pref_species.default_color - if(features["mcolor2"] == "#000" || (!(MUTCOLORS_PARTSONLY in pref_species.specflags) && ReadHSV(temp_hsv)[3] < ReadHSV("#202020")[3])) + if(features["mcolor2"] == "#000" || (!(MUTCOLORS_PARTSONLY in pref_species.species_traits) && ReadHSV(temp_hsv)[3] < ReadHSV("#7F7F7F")[3])) features["mcolor2"] = pref_species.default_color - if(features["mcolor3"] == "#000" || (!(MUTCOLORS_PARTSONLY in pref_species.specflags) && ReadHSV(temp_hsv)[3] < ReadHSV("#202020")[3])) + if(features["mcolor3"] == "#000" || (!(MUTCOLORS_PARTSONLY in pref_species.species_traits) && ReadHSV(temp_hsv)[3] < ReadHSV("#7F7F7F")[3])) features["mcolor3"] = pref_species.default_color - if("mutant_color") - var/new_mutantcolor = input(user, "Choose your character's primary alien/mutant color:", "Character Preference") as color|null + var/new_mutantcolor = input(user, "Choose your character's alien/mutant color:", "Character Preference") as color|null if(new_mutantcolor) var/temp_hsv = RGBtoHSV(new_mutantcolor) if(new_mutantcolor == "#000000") features["mcolor"] = pref_species.default_color - else if((MUTCOLORS_PARTSONLY in pref_species.specflags) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) // mutantcolors must be bright, but only if they affect the skin + else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#7F7F7F")[3]) // mutantcolors must be bright, but only if they affect the skin features["mcolor"] = sanitize_hexcolor(new_mutantcolor) else user << "Invalid color. Your color is not bright enough." @@ -1049,7 +1065,7 @@ var/list/preferences_datums = list() var/temp_hsv = RGBtoHSV(new_mutantcolor) if(new_mutantcolor == "#000000") features["mcolor2"] = pref_species.default_color - else if((MUTCOLORS_PARTSONLY in pref_species.specflags) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) // mutantcolors must be bright, but only if they affect the skin + else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#7F7F7F")[3]) // mutantcolors must be bright, but only if they affect the skin features["mcolor2"] = sanitize_hexcolor(new_mutantcolor) else user << "Invalid color. Your color is not bright enough." @@ -1060,7 +1076,7 @@ var/list/preferences_datums = list() var/temp_hsv = RGBtoHSV(new_mutantcolor) if(new_mutantcolor == "#000000") features["mcolor3"] = pref_species.default_color - else if((MUTCOLORS_PARTSONLY in pref_species.specflags) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) // mutantcolors must be bright, but only if they affect the skin + else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#7F7F7F")[3]) // mutantcolors must be bright, but only if they affect the skin features["mcolor3"] = sanitize_hexcolor(new_mutantcolor) else user << "Invalid color. Your color is not bright enough." @@ -1082,6 +1098,7 @@ var/list/preferences_datums = list() new_tail = input(user, "Choose your character's tail:", "Character Preference") as null|anything in mam_tails_list if(new_tail) features["mam_tail"] = new_tail + /* Doesn't exist yet. will include facial overlays to mimic 5th port species heads. if("mam_snout") var/new_snout @@ -1089,6 +1106,7 @@ var/list/preferences_datums = list() if(new_snout) features["snout"] = new_snout */ + if("snout") var/new_snout new_snout = input(user, "Choose your character's snout:", "Character Preference") as null|anything in snouts_list @@ -1162,13 +1180,19 @@ var/list/preferences_datums = list() if(new_dors) features["xenodorsal"] = new_dors + if("legs") + var/new_legs + new_legs = input(user, "Choose your character's legs:", "Character Preference") as null|anything in legs_list + if(new_legs) + features["legs"] = new_legs + if("s_tone") var/new_s_tone = input(user, "Choose your character's skin-tone:", "Character Preference") as null|anything in skin_tones if(new_s_tone) skin_tone = new_s_tone if("ooccolor") - var/new_ooccolor = input(user, "Choose your OOC color:", "Game Preference") as color|null + var/new_ooccolor = input(user, "Choose your OOC colour:", "Game Preference") as color|null if(new_ooccolor) ooccolor = sanitize_ooccolor(new_ooccolor) @@ -1233,6 +1257,21 @@ var/list/preferences_datums = list() var/pickedmap = input(user, "Choose your preferred map. This will be used to help weight random map selection.", "Character Preference") as null|anything in maplist if (pickedmap) preferred_map = maplist[pickedmap] + if ("clientfps") + var/version_message + if (user.client && user.client.byond_version < 511) + version_message = "\nYou need to be using byond version 511 or later to take advantage of this feature, your version of [user.client.byond_version] is too low" + if (world.byond_version < 511) + version_message += "\nThis server does not currently support client side fps. You can set now for when it does." + var/desiredfps = input(user, "Choose your desired fps.[version_message]\n(0 = synced with server tick rate (currently:[world.fps]))", "Character Preference", clientfps) as null|num + if (!isnull(desiredfps)) + clientfps = desiredfps + if (world.byond_version >= 511 && user.client && user.client.byond_version >= 511) + user.client.vars["fps"] = clientfps + if("ui") + var/pickedui = input(user, "Choose your UI style.", "Character Preference") as null|anything in list("Midnight", "Plasmafire", "Retro", "Slimecore", "Operative", "Clockwork") + if(pickedui) + UI_style = pickedui else @@ -1251,19 +1290,6 @@ var/list/preferences_datums = list() facial_hair_style = random_facial_hair_style(gender) hair_style = random_hair_style(gender) - if("ui") - switch(UI_style) - if("Midnight") - UI_style = "Plasmafire" - if("Plasmafire") - UI_style = "Retro" - if("Retro") - UI_style = "Slimecore" - if("Slimecore") - UI_style = "Operative" - else - UI_style = "Midnight" - if("hotkeys") hotkeys = !hotkeys @@ -1284,15 +1310,6 @@ var/list/preferences_datums = list() else be_special += be_special_type - if("parallax") - space_parallax = !space_parallax - - if("dust") - space_dust = !space_dust - - if("p_speed") - parallax_speed = min(max(input(user, "Enter a number between 0 and 5 included (default=2)","Parallax Speed Preferences",parallax_speed),0),5) - if("name") be_random_name = !be_random_name @@ -1330,6 +1347,16 @@ var/list/preferences_datums = list() if("allow_midround_antag") toggles ^= MIDROUND_ANTAG + if("parallaxup") + parallax = Wrap(parallax + 1, PARALLAX_INSANE, PARALLAX_DISABLE + 1) + if (parent && parent.mob && parent.mob.hud_used) + parent.mob.hud_used.update_parallax_pref() + + if("parallaxdown") + parallax = Wrap(parallax - 1, PARALLAX_INSANE, PARALLAX_DISABLE + 1) + if (parent && parent.mob && parent.mob.hud_used) + parent.mob.hud_used.update_parallax_pref() + if("save") save_preferences() save_character() @@ -1371,6 +1398,7 @@ var/list/preferences_datums = list() character.real_name = real_name character.name = character.real_name + character.flavor_text = flavor_text if(!length(belly_prefs)) @@ -1389,6 +1417,7 @@ var/list/preferences_datums = list() B.owner = character character.digestable = digestable +// character.devourable = devourable character.gender = gender character.age = age @@ -1403,6 +1432,7 @@ var/list/preferences_datums = list() character.underwear = underwear character.undershirt = undershirt character.socks = socks + character.backbag = backbag character.dna.features = features.Copy() diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 7288c42f23..0d21f25a44 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -1,18 +1,21 @@ - //This is the lowest supported version, anything below this is completely obsolete and the entire savefile will be wiped. -#define SAVEFILE_VERSION_MIN 8 +//This is the lowest supported version, anything below this is completely obsolete and the entire savefile will be wiped. +#define SAVEFILE_VERSION_MIN 10 //This is the current version, anything below this will attempt to update (if it's not obsolete) -#define SAVEFILE_VERSION_MAX 15 +#define SAVEFILE_VERSION_MAX 17 /* SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Carn This proc checks if the current directory of the savefile S needs updating It is to be used by the load_character and load_preferences procs. (S.cd=="/" is preferences, S.cd=="/character[integer]" is a character slot, etc) + if the current directory's version is below SAVEFILE_VERSION_MIN it will simply wipe everything in that directory (if we're at root "/" then it'll just wipe the entire savefile, for instance.) + if its version is below SAVEFILE_VERSION_MAX but above the minimum, it will load data but later call the respective update_preferences() or update_character() proc. Those procs allow coders to specify format changes so users do not lose their setups and have to redo them again. + Failing all that, the standard sanity checks are performed. They simply check the data is suitable, reverting to initial() values if necessary. */ @@ -28,7 +31,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car return -1 -/datum/preferences/proc/update_antagchoices(current_version) +/datum/preferences/proc/update_antagchoices(current_version, savefile/S) if((!islist(be_special) || old_be_special ) && current_version < 12) //Archived values of when antag pref defines were a bitfield+fitflags var/B_traitor = 1 @@ -84,7 +87,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car be_special += ROLE_ABDUCTOR -/datum/preferences/proc/update_preferences(current_version) +/datum/preferences/proc/update_preferences(current_version, savefile/S) if(current_version < 10) toggles |= MEMBER_PUBLIC if(current_version < 11) @@ -95,71 +98,14 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car if(current_version < 15) toggles |= SOUND_ANNOUNCEMENTS + //should this proc get fairly long (say 3 versions long), //just increase SAVEFILE_VERSION_MIN so it's not as far behind //SAVEFILE_VERSION_MAX and then delete any obsolete if clauses //from this proc. //It's only really meant to avoid annoying frequent players //if your savefile is 3 months out of date, then 'tough shit'. -/datum/preferences/proc/update_character(current_version) - if(current_version < 9) //an example, underwear were an index for a hardcoded list, converting to a string - if(gender == MALE) - switch(underwear) - if(1) - underwear = "Mens White" - if(2) - underwear = "Mens Grey" - if(3) - underwear = "Mens Green" - if(4) - underwear = "Mens Blue" - if(5) - underwear = "Mens Black" - if(6) - underwear = "Mankini" - if(7) - underwear = "Mens Hearts Boxer" - if(8) - underwear = "Mens Black Boxer" - if(9) - underwear = "Mens Grey Boxer" - if(10) - underwear = "Mens Striped Boxer" - if(11) - underwear = "Mens Kinky" - if(12) - underwear = "Mens Red" - if(13) - underwear = "Nude" - else - switch(underwear) - if(1) - underwear = "Ladies Red" - if(2) - underwear = "Ladies White" - if(3) - underwear = "Ladies Yellow" - if(4) - underwear = "Ladies Blue" - if(5) - underwear = "Ladies Black" - if(6) - underwear = "Ladies Thong" - if(7) - underwear = "Babydoll" - if(8) - underwear = "Ladies Baby-Blue" - if(9) - underwear = "Ladies Green" - if(10) - underwear = "Ladies Pink" - if(11) - underwear = "Ladies Kinky" - if(12) - underwear = "Tankini" - if(13) - underwear = "Nude" - +/datum/preferences/proc/update_character(current_version, savefile/S) if(pref_species && !(pref_species.id in roundstart_species)) var/rando_race = pick(config.roundstart_races) pref_species = new rando_race() @@ -170,9 +116,17 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car backbag = DSATCHEL else backbag = DBACKPACK + if(current_version < 16) + var/berandom + S["userandomjob"] >> berandom + if (berandom) + joblessrole = BERANDOMJOB + else + joblessrole = BEASSISTANT + if(current_version < 17) + features["legs"] = "Normal Legs" -// // Save/Load Vore Preferences // /datum/preferences/proc/load_vore_preferences(slot) @@ -187,10 +141,13 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S.cd = "/character[slot]" S["digestable"] >> digestable + S["devourable"] >> devourable S["belly_prefs"] >> belly_prefs if(isnull(digestable)) digestable = 1 + if(isnull(devourable)) + devourable = 0 if(isnull(belly_prefs)) belly_prefs = list() @@ -205,6 +162,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S.cd = "/character[default_slot]" S["digestable"] << digestable + S["devourable"] << devourable S["belly_prefs"] << belly_prefs return 1 @@ -237,9 +195,6 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["hotkeys"] >> hotkeys S["tgui_fancy"] >> tgui_fancy S["tgui_lock"] >> tgui_lock - S["space_parallax"] >> space_parallax - S["space_dust"] >> space_dust - S["parallax_speed"] >> parallax_speed if(islist(S["be_special"])) S["be_special"] >> be_special @@ -258,24 +213,26 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["ignoring"] >> ignoring S["ghost_hud"] >> ghost_hud S["inquisitive_ghost"] >> inquisitive_ghost + S["uses_glasses_colour"]>> uses_glasses_colour + S["clientfps"] >> clientfps + S["parallax"] >> parallax //try to fix any outdated data if necessary if(needs_update >= 0) - update_preferences(needs_update) //needs_update = savefile_version if we need an update (positive integer) - update_antagchoices(needs_update) + update_preferences(needs_update, S) //needs_update = savefile_version if we need an update (positive integer) + update_antagchoices(needs_update, S) //Sanitize ooccolor = sanitize_ooccolor(sanitize_hexcolor(ooccolor, 6, 1, initial(ooccolor))) lastchangelog = sanitize_text(lastchangelog, initial(lastchangelog)) - UI_style = sanitize_inlist(UI_style, list("Midnight", "Plasmafire", "Retro", "Slimecore", "Operative"), initial(UI_style)) + UI_style = sanitize_inlist(UI_style, list("Midnight", "Plasmafire", "Retro", "Slimecore", "Operative", "Clockwork"), initial(UI_style)) hotkeys = sanitize_integer(hotkeys, 0, 1, initial(hotkeys)) tgui_fancy = sanitize_integer(tgui_fancy, 0, 1, initial(tgui_fancy)) tgui_lock = sanitize_integer(tgui_lock, 0, 1, initial(tgui_lock)) default_slot = sanitize_integer(default_slot, 1, max_save_slots, initial(default_slot)) toggles = sanitize_integer(toggles, 0, 65535, initial(toggles)) - space_parallax = sanitize_integer(space_parallax, 0, 1, initial(space_parallax)) - space_dust = sanitize_integer(space_dust, 0, 1, initial(space_dust)) - parallax_speed = sanitize_integer(parallax_speed, 0, 5, initial(parallax_speed)) + clientfps = sanitize_integer(clientfps, 0, 1000, 0) + parallax = sanitize_integer(parallax, PARALLAX_INSANE, PARALLAX_DISABLE, PARALLAX_HIGH) ghost_form = sanitize_inlist(ghost_form, ghost_forms, initial(ghost_form)) ghost_orbit = sanitize_inlist(ghost_orbit, ghost_orbits, initial(ghost_orbit)) ghost_accs = sanitize_inlist(ghost_accs, ghost_accs_options, GHOST_ACCS_DEFAULT_OPTION) @@ -312,9 +269,9 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["ignoring"] << ignoring S["ghost_hud"] << ghost_hud S["inquisitive_ghost"] << inquisitive_ghost - S["space_parallax"] << space_parallax - S["space_dust"] << space_dust - S["parallax_speed"] << parallax_speed + S["uses_glasses_colour"]<< uses_glasses_colour + S["clientfps"] << clientfps + S["parallax"] << parallax return 1 @@ -351,28 +308,25 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car if(!S["features["mcolor"]"] || S["features["mcolor"]"] == "#000") S["features["mcolor"]"] << "#FFF" - if(!S["features["mcolor2"]"] || S["features["mcolor2"]"] == "#000") - S["features["mcolor2"]"] << "#FFF" - if(!S["features["mcolor3"]"] || S["features["mcolor3"]"] == "#000") - S["features["mcolor3"]"] << "#FFF" //Character - S["real_name"] >> real_name - S["name_is_always_random"] >> be_random_name - S["body_is_always_random"] >> be_random_body - S["gender"] >> gender - S["age"] >> age - S["hair_color"] >> hair_color - S["facial_hair_color"] >> facial_hair_color - S["eye_color"] >> eye_color - S["skin_tone"] >> skin_tone - S["hair_style_name"] >> hair_style - S["facial_style_name"] >> facial_hair_style - S["underwear"] >> underwear - S["undershirt"] >> undershirt - S["socks"] >> socks - S["backbag"] >> backbag - S["flavor_text"] >> flavor_text + S["OOC_Notes"] >> metadata + S["flavor_text"] >> flavor_text + S["real_name"] >> real_name + S["name_is_always_random"] >> be_random_name + S["body_is_always_random"] >> be_random_body + S["gender"] >> gender + S["age"] >> age + S["hair_color"] >> hair_color + S["facial_hair_color"] >> facial_hair_color + S["eye_color"] >> eye_color + S["skin_tone"] >> skin_tone + S["hair_style_name"] >> hair_style + S["facial_style_name"] >> facial_hair_style + S["underwear"] >> underwear + S["undershirt"] >> undershirt + S["socks"] >> socks + S["backbag"] >> backbag S["feature_mcolor"] >> features["mcolor"] S["feature_mcolor2"] >> features["mcolor2"] S["feature_mcolor3"] >> features["mcolor3"] @@ -390,6 +344,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["feature_xeno_tail"] >> features["xenotail"] S["feature_xeno_dors"] >> features["xenodorsal"] S["feature_xeno_head"] >> features["xenohead"] + S["feature_lizard_legs"] >> features["legs"] if(!config.mutant_humans) features["tail_human"] = "none" features["ears"] = "none" @@ -404,7 +359,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["deity_name"] >> custom_names["deity"] //Jobs - S["userandomjob"] >> userandomjob + S["joblessrole"] >> joblessrole S["job_civilian_high"] >> job_civilian_high S["job_civilian_med"] >> job_civilian_med S["job_civilian_low"] >> job_civilian_low @@ -417,10 +372,11 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car //try to fix any outdated data if necessary if(needs_update >= 0) - update_character(needs_update) //needs_update == savefile_version if we need an update (positive integer) + update_character(needs_update, S) //needs_update == savefile_version if we need an update (positive integer) //Sanitize flavor_text = sanitize_text(flavor_text, initial(flavor_text)) + metadata = sanitize_text(metadata, initial(metadata)) real_name = reject_bad_name(real_name) if(!features["mcolor"] || features["mcolor"] == "#000") features["mcolor"] = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F") @@ -468,8 +424,9 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car features["xenotail"] = sanitize_inlist(features["xenotail"], xeno_tail_list) features["xenohead"] = sanitize_inlist(features["xenohead"], xeno_head_list) features["xenodorsal"] = sanitize_inlist(features["xenodorsal"], xeno_dorsal_list) + features["feature_lizard_legs"] = sanitize_inlist(features["legs"], legs_list, "Normal Legs") - userandomjob = sanitize_integer(userandomjob, 0, 1, initial(userandomjob)) + joblessrole = sanitize_integer(joblessrole, 1, 3, initial(joblessrole)) job_civilian_high = sanitize_integer(job_civilian_high, 0, 65535, initial(job_civilian_high)) job_civilian_med = sanitize_integer(job_civilian_med, 0, 65535, initial(job_civilian_med)) job_civilian_low = sanitize_integer(job_civilian_low, 0, 65535, initial(job_civilian_low)) @@ -493,23 +450,24 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["version"] << SAVEFILE_VERSION_MAX //load_character will sanitize any bad data, so assume up-to-date. //Character - S["real_name"] << real_name - S["name_is_always_random"] << be_random_name - S["body_is_always_random"] << be_random_body - S["gender"] << gender - S["age"] << age - S["hair_color"] << hair_color - S["facial_hair_color"] << facial_hair_color - S["eye_color"] << eye_color - S["skin_tone"] << skin_tone - S["hair_style_name"] << hair_style - S["facial_style_name"] << facial_hair_style - S["underwear"] << underwear - S["undershirt"] << undershirt - S["socks"] << socks - S["backbag"] << backbag + S["OOC_Notes"] << metadata + S["real_name"] << real_name + S["name_is_always_random"] << be_random_name + S["body_is_always_random"] << be_random_body + S["gender"] << gender + S["age"] << age + S["hair_color"] << hair_color + S["facial_hair_color"] << facial_hair_color + S["eye_color"] << eye_color + S["skin_tone"] << skin_tone + S["hair_style_name"] << hair_style + S["facial_style_name"] << facial_hair_style + S["underwear"] << underwear + S["undershirt"] << undershirt + S["socks"] << socks + S["backbag"] << backbag S["flavor_text"] << flavor_text - S["species"] << pref_species.id + S["species"] << pref_species.id S["feature_mcolor"] << features["mcolor"] S["feature_mcolor2"] << features["mcolor2"] S["feature_mcolor3"] << features["mcolor3"] @@ -529,7 +487,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["feature_xeno_tail"] << features["xenotail"] S["feature_xeno_dors"] << features["xenodorsal"] S["feature_xeno_head"] << features["xenohead"] - + S["feature_lizard_legs"] << features["legs"] S["clown_name"] << custom_names["clown"] S["mime_name"] << custom_names["mime"] S["ai_name"] << custom_names["ai"] @@ -538,7 +496,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["deity_name"] << custom_names["deity"] //Jobs - S["userandomjob"] << userandomjob + S["joblessrole"] << joblessrole S["job_civilian_high"] << job_civilian_high S["job_civilian_med"] << job_civilian_med S["job_civilian_low"] << job_civilian_low diff --git a/code/modules/client/preferences_toggles.dm b/code/modules/client/preferences_toggles.dm index 8c6566a369..503e3662d7 100644 --- a/code/modules/client/preferences_toggles.dm +++ b/code/modules/client/preferences_toggles.dm @@ -147,11 +147,11 @@ prefs.save_preferences() if(prefs.toggles & SOUND_LOBBY) src << "You will now hear music in the game lobby." - if(istype(mob, /mob/new_player)) + if(isnewplayer(mob)) playtitlemusic() else src << "You will no longer hear music in the game lobby." - if(istype(mob, /mob/new_player)) + if(isnewplayer(mob)) mob.stopLobbySound() feedback_add_details("admin_verb","TLobby") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! @@ -244,7 +244,7 @@ var/global/list/ghost_forms = list("ghost","ghostking","ghostian2","skeleghost", if(new_form) prefs.ghost_form = new_form prefs.save_preferences() - if(istype(mob,/mob/dead/observer)) + if(isobserver(mob)) var/mob/dead/observer/O = mob O.update_icon(new_form) @@ -258,7 +258,7 @@ var/global/list/ghost_orbits = list(GHOST_ORBIT_CIRCLE,GHOST_ORBIT_TRIANGLE,GHOS if(new_orbit) prefs.ghost_orbit = new_orbit prefs.save_preferences() - if(istype(mob, /mob/dead/observer)) + if(isobserver(mob)) var/mob/dead/observer/O = mob O.ghost_orbit = new_orbit @@ -273,7 +273,7 @@ var/global/list/ghost_orbits = list(GHOST_ORBIT_CIRCLE,GHOST_ORBIT_TRIANGLE,GHOS if("default sprites") prefs.ghost_accs = GHOST_ACCS_NONE prefs.save_preferences() - if(istype(mob, /mob/dead/observer)) + if(isobserver(mob)) var/mob/dead/observer/O = mob O.update_icon() @@ -306,7 +306,7 @@ var/global/list/ghost_orbits = list(GHOST_ORBIT_CIRCLE,GHOST_ORBIT_TRIANGLE,GHOS if("White Ghost") prefs.ghost_others = GHOST_OTHERS_SIMPLE prefs.save_preferences() - if(istype(mob, /mob/dead/observer)) + if(isobserver(mob)) var/mob/dead/observer/O = mob O.updateghostsight() @@ -334,7 +334,7 @@ var/global/list/ghost_orbits = list(GHOST_ORBIT_CIRCLE,GHOST_ORBIT_TRIANGLE,GHOS prefs.ghost_hud = !prefs.ghost_hud src << "Ghost HUD will now be [prefs.ghost_hud ? "visible" : "hidden"]." prefs.save_preferences() - if(istype(mob,/mob/dead/observer)) + if(isobserver(mob)) mob.hud_used.show_hud() /client/verb/toggle_inquisition() // warning: unexpected inquisition diff --git a/code/game/verbs/ooc.dm b/code/modules/client/verbs/ooc.dm similarity index 98% rename from code/game/verbs/ooc.dm rename to code/modules/client/verbs/ooc.dm index d22c2785ea..89e1314176 100644 --- a/code/game/verbs/ooc.dm +++ b/code/modules/client/verbs/ooc.dm @@ -8,14 +8,23 @@ if(!mob) return + if(IsGuestKey(key)) src << "Guests may not use OOC." return msg = copytext(sanitize(msg), 1, MAX_MESSAGE_LEN) + var/raw_msg = msg + if(!msg) return + msg = emoji_parse(msg) + + if((copytext(msg, 1, 2) in list(".",";",":","#")) || (findtext(lowertext(copytext(msg, 1, 5)), "say"))) + if(alert("Your message \"[raw_msg]\" looks like it was meant for in game communication, say it in OOC?", "Meant for OOC?", "No", "Yes") != "Yes") + return + if(!(prefs.chat_toggles & CHAT_OOC)) src << "You have OOC muted." return @@ -42,14 +51,6 @@ message_admins("[key_name_admin(src)] has attempted to advertise in OOC: [msg]") return - var/raw_msg = msg - - msg = emoji_parse(msg) - - if((copytext(msg, 1, 2) in list(".",";",":","#")) || (findtext(lowertext(copytext(msg, 1, 5)), "say"))) - if(alert("Your message \"[raw_msg]\" looks like it was meant for in game communication, say it in OOC?", "Meant for OOC?", "No", "Yes") != "Yes") - return - log_ooc("[mob.name]/[key] : [raw_msg]") var/keyname = key @@ -143,7 +144,7 @@ var/global/normal_ooc_colour = OOC_COLOR src << "The Message of the Day has not been set." /client/proc/self_notes() - set name = "View Admin Notes" + set name = "View Admin Remarks" set category = "OOC" set desc = "View the notes that admins have written about you" @@ -151,7 +152,7 @@ var/global/normal_ooc_colour = OOC_COLOR usr << "Sorry, that function is not enabled on this server." return - show_note(usr, null, 1) + show_note(usr.ckey, null, 1) /client/proc/ignore_key(client) var/client/C = client diff --git a/code/modules/client/verbs/sethotkeys.dm b/code/modules/client/verbs/sethotkeys.dm new file mode 100644 index 0000000000..f7bf137c31 --- /dev/null +++ b/code/modules/client/verbs/sethotkeys.dm @@ -0,0 +1,24 @@ +/client/verb/sethotkeys(from_pref = 0 as num) + set name = "Set Hotkeys" + set hidden = 1 + set desc = "Used to set mob-specific hotkeys or load hoykey mode from preferences" + + var/hotkey_default = "default" + var/hotkey_macro = "hotkeys" + var/current_setting + + var/list/default_macros = list("default", "robot-default") + + if(from_pref) + current_setting = (prefs.hotkeys ? hotkey_macro : hotkey_default) + else + current_setting = winget(src, "mainwindow", "macro") + + if(mob) + hotkey_macro = mob.macro_hotkeys + hotkey_default = mob.macro_default + + if(current_setting in default_macros) + winset(src, null, "mainwindow.macro=[hotkey_default] input.focus=true input.background-color=#d3b5b5") + else + winset(src, null, "mainwindow.macro=[hotkey_macro] mapwindow.map.focus=true input.background-color=#e0e0e0") \ No newline at end of file diff --git a/code/game/verbs/suicide.dm b/code/modules/client/verbs/suicide.dm similarity index 72% rename from code/game/verbs/suicide.dm rename to code/modules/client/verbs/suicide.dm index 943c4cb960..a91c7bca03 100644 --- a/code/game/verbs/suicide.dm +++ b/code/modules/client/verbs/suicide.dm @@ -10,8 +10,7 @@ if(confirm == "Yes") suiciding = 1 log_game("[key_name(src)] (job: [job ? "[job]" : "None"]) commited suicide at [get_area(src)].") - message_admins("[key_name(src)] (job: [job ? "[job]" : "None"]) commited suicide at [get_area(src)].") - var/obj/item/held_item = get_active_hand() + var/obj/item/held_item = get_active_held_item() if(held_item) var/damagetype = held_item.suicide_act(src) if(damagetype) @@ -44,17 +43,17 @@ death(0) return - var/suicide_message = pick("[src] is attempting to bite \his tongue off! It looks like \he's trying to commit suicide.", \ - "[src] is jamming \his thumbs into \his eye sockets! It looks like \he's trying to commit suicide.", \ - "[src] is twisting \his own neck! It looks like \he's trying to commit suicide.", \ - "[src] is holding \his breath! It looks like \he's trying to commit suicide.") + var/suicide_message = pick("[src] is attempting to bite [p_their()] tongue off! It looks like [p_theyre()] trying to commit suicide.", \ + "[src] is jamming [p_their()] thumbs into [p_their()] eye sockets! It looks like [p_theyre()] trying to commit suicide.", \ + "[src] is twisting [p_their()] own neck! It looks like [p_theyre()] trying to commit suicide.", \ + "[src] is holding [p_their()] breath! It looks like [p_theyre()] trying to commit suicide.") visible_message("[suicide_message]", "[suicide_message]") adjustOxyLoss(max(200 - getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0)) death(0) -/mob/living/carbon/brain/verb/suicide() +/mob/living/brain/verb/suicide() set hidden = 1 if(!canSuicide()) return @@ -63,10 +62,9 @@ return if(confirm == "Yes") suiciding = 1 - visible_message("[src]'s brain is growing dull and lifeless. It looks like it's lost the will to live.", \ - "[src]'s brain is growing dull and lifeless. It looks like it's lost the will to live.") - spawn(50) - death(0) + visible_message("[src]'s brain is growing dull and lifeless. [p_they(TRUE)] look[p_s()] like [p_theyve()] lost the will to live.", \ + "[src]'s brain is growing dull and lifeless. [p_they(TRUE)] look[p_s()] like [p_theyve()] lost the will to live.") + death(0) /mob/living/carbon/monkey/verb/suicide() set hidden = 1 @@ -77,9 +75,8 @@ return if(confirm == "Yes") suiciding = 1 - //instead of killing them instantly, just put them at -175 health and let 'em gasp for a while - visible_message("[src] is attempting to bite \his tongue. It looks like \he's trying to commit suicide.", \ - "[src] is attempting to bite \his tongue. It looks like \he's trying to commit suicide.") + visible_message("[src] is attempting to bite [p_their()] tongue. It looks like [p_theyre()] trying to commit suicide.", \ + "[src] is attempting to bite [p_their()] tongue. It looks like [p_theyre()] trying to commit suicide.") adjustOxyLoss(max(200- getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0)) death(0) @@ -92,8 +89,8 @@ return if(confirm == "Yes") suiciding = 1 - visible_message("[src] is powering down. It looks like \he's trying to commit suicide.", \ - "[src] is powering down. It looks like \he's trying to commit suicide.") + visible_message("[src] is powering down. It looks like [p_theyre()] trying to commit suicide.", \ + "[src] is powering down. It looks like [p_theyre()] trying to commit suicide.") //put em at -175 adjustOxyLoss(max(maxHealth * 2 - getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0)) death(0) @@ -107,8 +104,8 @@ return if(confirm == "Yes") suiciding = 1 - visible_message("[src] is powering down. It looks like \he's trying to commit suicide.", \ - "[src] is powering down. It looks like \he's trying to commit suicide.") + visible_message("[src] is powering down. It looks like [p_theyre()] trying to commit suicide.", \ + "[src] is powering down. It looks like [p_theyre()] trying to commit suicide.") //put em at -175 adjustOxyLoss(max(maxHealth * 2 - getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0)) death(0) @@ -119,9 +116,9 @@ set name = "pAI Suicide" var/answer = input("REALLY kill yourself? This action can't be undone.", "Suicide", "No") in list ("Yes", "No") if(answer == "Yes") - card.removePersonality() var/turf/T = get_turf(src.loc) - T.visible_message("[src] flashes a message across its screen, \"Wiping core files. Please acquire a new personality to continue using pAI device functions.\"", "[src] bleeps electronically.") + T.visible_message("[src] flashes a message across its screen, \"Wiping core files. Please acquire a new personality to continue using pAI device functions.\"", null, \ + "[src] bleeps electronically.") death(0) else src << "Aborting suicide attempt." @@ -135,8 +132,8 @@ return if(confirm == "Yes") suiciding = 1 - visible_message("[src] is thrashing wildly! It looks like \he's trying to commit suicide.", \ - "[src] is thrashing wildly! It looks like \he's trying to commit suicide.", \ + visible_message("[src] is thrashing wildly! It looks like [p_theyre()] trying to commit suicide.", \ + "[src] is thrashing wildly! It looks like [p_theyre()] trying to commit suicide.", \ "You hear thrashing.") //put em at -175 adjustOxyLoss(max(200 - getFireLoss() - getBruteLoss() - getOxyLoss(), 0)) @@ -151,19 +148,14 @@ return if(confirm == "Yes") suiciding = 1 - visible_message("[src] begins to fall down. It looks like \he's lost the will to live.", \ - "[src] begins to fall down. It looks like \he's lost the will to live.") + visible_message("[src] begins to fall down. It looks like [p_theyve()] lost the will to live.", \ + "[src] begins to fall down. It looks like [p_theyve()] lost the will to live.") death(0) /mob/living/proc/canSuicide() if(stat == CONSCIOUS) - if(mental_dominator) - src << "This body's force of will is too strong! You can't break it enough to murder them." - if(mind_control_holder) - mind_control_holder << "Through tremendous force of will, you stop a suicide attempt!" - return 0 - return 1 + return TRUE else if(stat == DEAD) src << "You're already dead!" else if(stat == UNCONSCIOUS) @@ -176,4 +168,7 @@ if(!canmove || restrained()) //just while I finish up the new 'fun' suiciding verb. This is to prevent metagaming via suicide src << "You can't commit suicide whilst restrained! ((You can type Ghost instead however.))" return - return 1 + if(has_brain_worms()) + src << "You can't bring yourself to commit suicide!" + return + return TRUE diff --git a/code/game/verbs/who.dm b/code/modules/client/verbs/who.dm similarity index 98% rename from code/game/verbs/who.dm rename to code/modules/client/verbs/who.dm index a6e5411a8b..48d7d6f187 100644 --- a/code/game/verbs/who.dm +++ b/code/modules/client/verbs/who.dm @@ -68,7 +68,7 @@ if(isobserver(C.mob)) msg += " - Observing" - else if(istype(C.mob,/mob/new_player)) + else if(isnewplayer(C.mob)) msg += " - Lobby" else msg += " - Playing" diff --git a/code/modules/clothing/chameleon.dm b/code/modules/clothing/chameleon.dm index bd9ad08242..26500fb378 100644 --- a/code/modules/clothing/chameleon.dm +++ b/code/modules/clothing/chameleon.dm @@ -1,3 +1,5 @@ +#define EMP_RANDOMISE_TIME 300 + /datum/action/item_action/chameleon/drone/randomise name = "Randomise Headgear" button_icon_state = "random" @@ -71,13 +73,20 @@ var/chameleon_type = null var/chameleon_name = "Item" + var/emp_timer + /datum/action/item_action/chameleon/change/proc/initialize_disguises() if(button) button.name = "Change [chameleon_name] Appearance" chameleon_blacklist += target.type var/list/temp_list = typesof(chameleon_type) for(var/V in temp_list - (chameleon_blacklist)) - chameleon_list += V + if(ispath(V, /obj/item)) + var/obj/item/I = V + if(initial(I.flags) & ABSTRACT) + continue + else + chameleon_list += I /datum/action/item_action/chameleon/change/proc/select_look(mob/user) var/list/item_names = list() @@ -86,7 +95,7 @@ var/obj/item/I = U item_names += initial(I.name) var/picked_name - picked_name = input("Select [chameleon_name] to change it to", "Chameleon [chameleon_name]", picked_name) in item_names + picked_name = input("Select [chameleon_name] to change into", "Chameleon [chameleon_name]", picked_name) in item_names if(!picked_name) return for(var/V in chameleon_list) @@ -119,8 +128,7 @@ return update_item(picked_item) - - C.regenerate_icons() //so our overlays update. + update_item_icon() UpdateButtonIcon() /datum/action/item_action/chameleon/change/proc/update_item(obj/item/picked_item) @@ -144,6 +152,48 @@ select_look(owner) return 1 +/datum/action/item_action/chameleon/change/proc/emp_randomise() + START_PROCESSING(SSprocessing, src) + random_look(owner) + + emp_timer = world.time + EMP_RANDOMISE_TIME + +/datum/action/item_action/chameleon/change/process() + if(world.time > emp_timer) + STOP_PROCESSING(SSprocessing, src) + return + random_look(owner) + +/datum/action/item_action/chameleon/change/proc/update_item_icon() + var/obj/item/I = target + var/mob/living/M = owner + + var/flags = I.slot_flags + if(flags & SLOT_OCLOTHING) + M.update_inv_wear_suit() + if(flags & SLOT_ICLOTHING) + M.update_inv_w_uniform() + if(flags & SLOT_GLOVES) + M.update_inv_gloves() + if(flags & SLOT_EYES) + M.update_inv_glasses() + if(flags & SLOT_EARS) + M.update_inv_ears() + if(flags & SLOT_MASK) + M.update_inv_wear_mask() + if(flags & SLOT_HEAD) + M.update_inv_head() + if(flags & SLOT_FEET) + M.update_inv_shoes() + if(flags & SLOT_ID) + M.update_inv_wear_id() + if(flags & SLOT_BELT) + M.update_inv_belt() + if(flags & SLOT_BACK) + M.update_inv_back() + if(flags & SLOT_NECK) + M.update_inv_neck() + /obj/item/clothing/under/chameleon //starts off as black name = "black jumpsuit" @@ -154,16 +204,21 @@ origin_tech = "syndicate=2" sensor_mode = 0 //Hey who's this guy on the Syndicate Shuttle?? random_sensor = 0 - burn_state = FIRE_PROOF - armor = list(melee = 10, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0) + resistance_flags = 0 + armor = list(melee = 10, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 50) + + var/datum/action/item_action/chameleon/change/chameleon_action /obj/item/clothing/under/chameleon/New() ..() - var/datum/action/item_action/chameleon/change/chameleon_action = new(src) + chameleon_action = new(src) chameleon_action.chameleon_type = /obj/item/clothing/under chameleon_action.chameleon_name = "Jumpsuit" chameleon_action.initialize_disguises() +/obj/item/clothing/under/chameleon/emp_act(severity) + chameleon_action.emp_randomise() + /obj/item/clothing/suit/chameleon name = "armor" desc = "A slim armored vest that protects against most types of damage." @@ -171,58 +226,73 @@ item_state = "armor" blood_overlay_type = "armor" origin_tech = "syndicate=2" - burn_state = FIRE_PROOF - armor = list(melee = 10, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0) + resistance_flags = 0 + armor = list(melee = 10, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 50) + + var/datum/action/item_action/chameleon/change/chameleon_action /obj/item/clothing/suit/chameleon/New() ..() - var/datum/action/item_action/chameleon/change/chameleon_action = new(src) + chameleon_action = new(src) chameleon_action.chameleon_type = /obj/item/clothing/suit chameleon_action.chameleon_name = "Suit" chameleon_action.initialize_disguises() +/obj/item/clothing/suit/chameleon/emp_act(severity) + chameleon_action.emp_randomise() + /obj/item/clothing/glasses/chameleon name = "Optical Meson Scanner" desc = "Used by engineering and mining staff to see basic structural and terrain layouts through walls, regardless of lighting condition." icon_state = "meson" item_state = "meson" origin_tech = "syndicate=2" - burn_state = FIRE_PROOF - armor = list(melee = 10, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0) + resistance_flags = 0 + armor = list(melee = 10, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 50) + + var/datum/action/item_action/chameleon/change/chameleon_action /obj/item/clothing/glasses/chameleon/New() ..() - var/datum/action/item_action/chameleon/change/chameleon_action = new(src) + chameleon_action = new(src) chameleon_action.chameleon_type = /obj/item/clothing/glasses chameleon_action.chameleon_name = "Glasses" chameleon_action.initialize_disguises() +/obj/item/clothing/glasses/chameleon/emp_act(severity) + chameleon_action.emp_randomise() + /obj/item/clothing/gloves/chameleon desc = "These gloves will protect the wearer from electric shock." name = "insulated gloves" icon_state = "yellow" item_state = "ygloves" - burn_state = FIRE_PROOF - armor = list(melee = 10, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0) + resistance_flags = 0 + armor = list(melee = 10, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 50) + + var/datum/action/item_action/chameleon/change/chameleon_action /obj/item/clothing/gloves/chameleon/New() ..() - var/datum/action/item_action/chameleon/change/chameleon_action = new(src) + chameleon_action = new(src) chameleon_action.chameleon_type = /obj/item/clothing/gloves chameleon_action.chameleon_name = "Gloves" chameleon_action.initialize_disguises() +/obj/item/clothing/gloves/chameleon/emp_act(severity) + chameleon_action.emp_randomise() + /obj/item/clothing/head/chameleon name = "grey cap" desc = "It's a baseball hat in a tasteful grey colour." icon_state = "greysoft" item_color = "grey" - burn_state = FIRE_PROOF - armor = list(melee = 5, bullet = 5, laser = 5, energy = 0, bomb = 0, bio = 0, rad = 0) + resistance_flags = 0 + armor = list(melee = 5, bullet = 5, laser = 5, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 50) - var/datum/action/item_action/chameleon/change/chameleon_action = null + var/datum/action/item_action/chameleon/change/chameleon_action /obj/item/clothing/head/chameleon/New() ..() @@ -231,11 +301,14 @@ chameleon_action.chameleon_name = "Hat" chameleon_action.initialize_disguises() +/obj/item/clothing/head/chameleon/emp_act(severity) + chameleon_action.emp_randomise() + /obj/item/clothing/head/chameleon/drone // The camohat, I mean, holographic hat projection, is part of the // drone itself. flags = NODROP - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0) + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) // which means it offers no protection, it's just air and light /obj/item/clothing/head/chameleon/drone/New() @@ -251,8 +324,8 @@ desc = "A face-covering mask that can be connected to an air supply. While good for concealing your identity, it isn't good for blocking gas flow." //More accurate icon_state = "gas_alt" item_state = "gas_alt" - burn_state = FIRE_PROOF - armor = list(melee = 5, bullet = 5, laser = 5, energy = 0, bomb = 0, bio = 0, rad = 0) + resistance_flags = 0 + armor = list(melee = 5, bullet = 5, laser = 5, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 50) flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEFACIALHAIR @@ -262,7 +335,7 @@ var/vchange = 1 - var/datum/action/item_action/chameleon/change/chameleon_action = null + var/datum/action/item_action/chameleon/change/chameleon_action /obj/item/clothing/mask/chameleon/New() ..() @@ -271,6 +344,9 @@ chameleon_action.chameleon_name = "Mask" chameleon_action.initialize_disguises() +/obj/item/clothing/mask/chameleon/emp_act(severity) + chameleon_action.emp_randomise() + /obj/item/clothing/mask/chameleon/attack_self(mob/user) vchange = !vchange user << "The voice changer is now [vchange ? "on" : "off"]!" @@ -279,7 +355,7 @@ /obj/item/clothing/mask/chameleon/drone //Same as the drone chameleon hat, undroppable and no protection flags = NODROP - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0) + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) // Can drones use the voice changer part? Let's not find out. vchange = 0 @@ -291,7 +367,7 @@ var/datum/action/item_action/chameleon/drone/randomise/randomise_action = new(src) randomise_action.UpdateButtonIcon() -/obj/item/clothing/mask/chameleon/attack_self(mob/user) +/obj/item/clothing/mask/chameleon/drone/attack_self(mob/user) user << "The [src] does not have a voice changer." /obj/item/clothing/shoes/chameleon @@ -302,17 +378,22 @@ permeability_coefficient = 0.05 flags = NOSLIP origin_tech = "syndicate=2" - burn_state = FIRE_PROOF - can_hold_items = 1 - armor = list(melee = 10, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0) + resistance_flags = 0 + pockets = /obj/item/weapon/storage/internal/pocket/shoes + armor = list(melee = 10, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 50) + + var/datum/action/item_action/chameleon/change/chameleon_action /obj/item/clothing/shoes/chameleon/New() ..() - var/datum/action/item_action/chameleon/change/chameleon_action = new(src) + chameleon_action = new(src) chameleon_action.chameleon_type = /obj/item/clothing/shoes chameleon_action.chameleon_name = "Shoes" chameleon_action.initialize_disguises() +/obj/item/clothing/shoes/chameleon/emp_act(severity) + chameleon_action.emp_randomise() + /obj/item/weapon/gun/energy/laser/chameleon name = "practice laser gun" desc = "A modified version of the basic laser gun, this one fires less concentrated energy bolts designed for target practice." @@ -322,41 +403,59 @@ pin = /obj/item/device/firing_pin cell_type = /obj/item/weapon/stock_parts/cell/bluespace + var/datum/action/item_action/chameleon/change/chameleon_action + /obj/item/weapon/gun/energy/laser/chameleon/New() ..() - var/datum/action/item_action/chameleon/change/chameleon_action = new(src) + chameleon_action = new(src) chameleon_action.chameleon_type = /obj/item/weapon/gun chameleon_action.chameleon_name = "Gun" chameleon_action.chameleon_blacklist = typesof(/obj/item/weapon/gun/magic) chameleon_action.initialize_disguises() +/obj/item/weapon/gun/energy/laser/chameleon/emp_act(severity) + chameleon_action.emp_randomise() + /obj/item/weapon/storage/backpack/chameleon name = "chameleon backpack" + var/datum/action/item_action/chameleon/change/chameleon_action /obj/item/weapon/storage/backpack/chameleon/New() ..() - var/datum/action/item_action/chameleon/change/chameleon_action = new(src) + chameleon_action = new(src) chameleon_action.chameleon_type = /obj/item/weapon/storage/backpack chameleon_action.chameleon_name = "Backpack" chameleon_action.initialize_disguises() +/obj/item/weapon/storage/backpack/chameleon/emp_act(severity) + chameleon_action.emp_randomise() + /obj/item/device/radio/headset/chameleon name = "chameleon headset" + var/datum/action/item_action/chameleon/change/chameleon_action /obj/item/device/radio/headset/chameleon/New() ..() - var/datum/action/item_action/chameleon/change/chameleon_action = new(src) + chameleon_action = new(src) chameleon_action.chameleon_type = /obj/item/device/radio/headset chameleon_action.chameleon_name = "Headset" chameleon_action.initialize_disguises() +/obj/item/device/radio/headset/chameleon/emp_act(severity) + chameleon_action.emp_randomise() + /obj/item/device/pda/chameleon name = "chameleon PDA" + var/datum/action/item_action/chameleon/change/chameleon_action /obj/item/device/pda/chameleon/New() ..() - var/datum/action/item_action/chameleon/change/chameleon_action = new(src) + chameleon_action = new(src) chameleon_action.chameleon_type = /obj/item/device/pda chameleon_action.chameleon_name = "PDA" chameleon_action.chameleon_blacklist = list(/obj/item/device/pda/ai) chameleon_action.initialize_disguises() + +/obj/item/device/pda/chameleon/emp_act(severity) + chameleon_action.emp_randomise() + diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index e6e72588df..1e31a3be11 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -1,6 +1,10 @@ /obj/item/clothing name = "clothing" - burn_state = FLAMMABLE + resistance_flags = FLAMMABLE + obj_integrity = 200 + max_integrity = 200 + integrity_failure = 80 + var/damaged_clothes = 0 //similar to machine's BROKEN stat and structure's broken var var/flash_protect = 0 //Malk: What level of bright light protection item has. 1 = Flashers, Flashes, & Flashbangs | 2 = Welding | -1 = OH GOD WELDING BURNT OUT MY RETINAS var/tint = 0 //Malk: Sets the item's level of visual impairment tint, normally set to the same as flash_protect var/up = 0 // but seperated to allow items to protect but not impair vision, like space helmets @@ -24,10 +28,83 @@ var/list/user_vars_to_edit = list() //VARNAME = VARVALUE eg: "name" = "butts" var/list/user_vars_remembered = list() //Auto built by the above + dropped() + equipped() + var/obj/item/weapon/storage/internal/pocket/pockets = null + +/obj/item/clothing/New() + ..() + if(ispath(pockets)) + pockets = new pockets(src) + +/obj/item/clothing/MouseDrop(atom/over_object) + var/mob/M = usr + + if(pockets && over_object == M) + return pockets.MouseDrop(over_object) + + if(istype(usr.loc,/obj/mecha)) // stops inventory actions in a mech + return + + if(!M.restrained() && !M.stat && loc == M && istype(over_object, /obj/screen/inventory/hand)) + var/obj/screen/inventory/hand/H = over_object + if(!M.unEquip(src)) + return + M.put_in_hand(src, H.held_index) + add_fingerprint(usr) + +/obj/item/clothing/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0) + if(pockets) + pockets.close_all() + return ..() + +/obj/item/clothing/attack_hand(mob/user) + if(pockets && pockets.priority && ismob(loc)) + //If we already have the pockets open, close them. + if (user.s_active == pockets) + pockets.close(user) + //Close whatever the user has open and show them the pockets. + else + if (user.s_active) + user.s_active.close(user) + pockets.orient2hud(user) + pockets.show_to(user) + 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 + C.use(1) + update_clothes_damaged_state(FALSE) + obj_integrity = max_integrity + user << "You fix the damages on [src] with [C]." + return 1 + if(pockets) + return pockets.attackby(W, user, params) + else + return ..() + +/obj/item/clothing/AltClick(mob/user) + if(pockets && pockets.quickdraw && pockets.contents.len && !user.incapacitated()) + var/obj/item/I = pockets.contents[1] + if(!I) + return + pockets.remove_from_storage(I, get_turf(src)) + + if(!user.put_in_hands(I)) + user << "You fumble for [I] and it falls on the floor." + return 1 + user.visible_message("[user] draws [I] from [src]!", "You draw [I] from [src].") + return 1 + else + return ..() + /obj/item/clothing/Destroy() if(isliving(loc)) dropped(loc) + if(pockets) + qdel(pockets) + pockets = null user_vars_remembered = null //Oh god somebody put REFERENCES in here? not to worry, we'll clean it up return ..() @@ -52,14 +129,42 @@ user.vars[variable] = user_vars_to_edit[variable] +/obj/item/clothing/examine(mob/user) + ..() + if(damaged_clothes) + user << "It looks damaged!" + +/obj/item/clothing/obj_break(damage_flag) + if(!damaged_clothes) + update_clothes_damaged_state(TRUE) + +var/list/damaged_clothes_icons = list() + +/obj/item/clothing/proc/update_clothes_damaged_state(damaging = TRUE) + var/index = "\ref[initial(icon)]-[initial(icon_state)]" + if(damaging) + damaged_clothes = 1 + var/icon/damaged_clothes_icon = damaged_clothes_icons[index] + if(!damaged_clothes_icon) + damaged_clothes_icon = icon(initial(icon), initial(icon_state), , 1) //we only want to apply damaged effect to the initial icon_state for each object + damaged_clothes_icon.Blend("#fff", ICON_ADD) //fills the icon_state with white (except where it's transparent) + damaged_clothes_icon.Blend(icon('icons/effects/item_damage.dmi', "itemdamaged"), ICON_MULTIPLY) //adds damage effect and the remaining white areas become transparant + damaged_clothes_icon = fcopy_rsc(damaged_clothes_icon) + damaged_clothes_icons[index] = damaged_clothes_icon + add_overlay(damaged_clothes_icon, 1) + else + damaged_clothes = 0 + overlays -= damaged_clothes_icons[index] + priority_overlays -= damaged_clothes_icons[index] + //Ears: currently only used for headsets and earmuffs /obj/item/clothing/ears name = "ears" - w_class = 1 + w_class = WEIGHT_CLASS_TINY throwforce = 0 slot_flags = SLOT_EARS - burn_state = FIRE_PROOF + resistance_flags = 0 /obj/item/clothing/ears/earmuffs name = "earmuffs" @@ -69,13 +174,13 @@ flags = EARBANGPROTECT strip_delay = 15 put_on_delay = 25 - burn_state = FLAMMABLE + resistance_flags = FLAMMABLE //Glasses /obj/item/clothing/glasses name = "glasses" icon = 'icons/obj/clothing/glasses.dmi' - w_class = 2 + w_class = WEIGHT_CLASS_SMALL flags_cover = GLASSESCOVERSEYES slot_flags = SLOT_EYES var/vision_flags = 0 @@ -87,7 +192,7 @@ var/vision_correction = 0 //does wearing these glasses correct some of our vision defects? strip_delay = 20 put_on_delay = 25 - burn_state = FIRE_PROOF + resistance_flags = 0 /* SEE_SELF // can see self, no matter what SEE_MOBS // can see all mobs, no matter what @@ -103,7 +208,7 @@ BLIND // can't see anything /obj/item/clothing/gloves name = "gloves" gender = PLURAL //Carn: for grammarically correct text-parsing - w_class = 2 + w_class = WEIGHT_CLASS_SMALL icon = 'icons/obj/clothing/gloves.dmi' siemens_coefficient = 0.50 body_parts_covered = HANDS @@ -114,12 +219,19 @@ BLIND // can't see anything put_on_delay = 40 -/obj/item/clothing/gloves/worn_overlays(var/isinhands = FALSE) +/obj/item/clothing/gloves/worn_overlays(isinhands = FALSE) . = list() if(!isinhands) + if(damaged_clothes) + . += image("icon"='icons/effects/item_damage.dmi', "icon_state"="damagedgloves") if(blood_DNA) . += image("icon"='icons/effects/blood.dmi', "icon_state"="bloodyhands") +/obj/item/clothing/gloves/update_clothes_damaged_state(damaging = TRUE) + ..() + if(ismob(loc)) + var/mob/M = loc + M.update_inv_gloves() // Called just before an attack_hand(), in mob/UnarmedAttack() /obj/item/clothing/gloves/proc/Touch(atom/A, proximity) @@ -135,12 +247,40 @@ BLIND // can't see anything var/can_toggle = null -/obj/item/clothing/head/worn_overlays(var/isinhands = FALSE) +/obj/item/clothing/head/worn_overlays(isinhands = FALSE) . = list() if(!isinhands) + if(damaged_clothes) + . += image("icon"='icons/effects/item_damage.dmi', "icon_state"="damagedhelmet") if(blood_DNA) . += image("icon"='icons/effects/blood.dmi', "icon_state"="helmetblood") +/obj/item/clothing/head/update_clothes_damaged_state(damaging = TRUE) + ..() + if(ismob(loc)) + var/mob/M = loc + M.update_inv_head() + + +//Neck +/obj/item/clothing/neck + name = "necklace" + icon = 'icons/obj/clothing/neck.dmi' + body_parts_covered = NECK + slot_flags = SLOT_NECK + strip_delay = 40 + put_on_delay = 40 + +/obj/item/clothing/neck/worn_overlays(isinhands = FALSE) + . = list() + if(!isinhands) + if(body_parts_covered & HEAD) + if(damaged_clothes) + . += image("icon"='icons/effects/item_damage.dmi', "icon_state"="damagedmask") + if(blood_DNA) + . += image("icon"='icons/effects/blood.dmi', "icon_state"="maskblood") + + //Mask /obj/item/clothing/mask name = "mask" @@ -153,11 +293,21 @@ BLIND // can't see anything var/adjusted_flags = null -/obj/item/clothing/mask/worn_overlays(var/isinhands = FALSE) +/obj/item/clothing/mask/worn_overlays(isinhands = FALSE) . = list() if(!isinhands) - if(blood_DNA && (body_parts_covered & HEAD)) - . += image("icon"='icons/effects/blood.dmi', "icon_state"="maskblood") + if(body_parts_covered & HEAD) + if(damaged_clothes) + . += image("icon"='icons/effects/item_damage.dmi', "icon_state"="damagedmask") + if(blood_DNA) + . += image("icon"='icons/effects/blood.dmi', "icon_state"="maskblood") + +/obj/item/clothing/mask/update_clothes_damaged_state(damaging = TRUE) + ..() + if(ismob(loc)) + var/mob/M = loc + M.update_inv_wear_mask() + //Override this to modify speech like luchador masks. /obj/item/clothing/mask/proc/speechModification(message) @@ -209,12 +359,8 @@ BLIND // can't see anything slowdown = SHOES_SLOWDOWN var/blood_state = BLOOD_STATE_NOT_BLOODY var/list/bloody_shoes = list(BLOOD_STATE_HUMAN = 0,BLOOD_STATE_XENO = 0, BLOOD_STATE_OIL = 0, BLOOD_STATE_NOT_BLOODY = 0) - var/can_hold_items = 0//if set to 1, the shoe can hold knives and edaggers - var/obj/held_item - var/list/valid_held_items = list(/obj/item/weapon/kitchen/knife, /obj/item/weapon/pen, /obj/item/weapon/switchblade, /obj/item/weapon/scalpel, /obj/item/weapon/reagent_containers/syringe, /obj/item/weapon/dnainjector)//can hold both regular pens and energy daggers. made for your every-day tactical librarians/murderers. - -/obj/item/clothing/shoes/worn_overlays(var/isinhands = FALSE) +/obj/item/clothing/shoes/worn_overlays(isinhands = FALSE) . = list() if(!isinhands) var/bloody = 0 @@ -223,9 +369,16 @@ BLIND // can't see anything else bloody = bloody_shoes[BLOOD_STATE_HUMAN] + if(damaged_clothes) + . += image("icon"='icons/effects/item_damage.dmi', "icon_state"="damagedshoe") if(bloody) . += image("icon"='icons/effects/blood.dmi', "icon_state"="shoeblood") +/obj/item/clothing/shoes/update_clothes_damaged_state(damaging = TRUE) + ..() + if(ismob(loc)) + var/mob/M = loc + M.update_inv_shoes() /obj/item/clothing/shoes/clean_blood() ..() @@ -235,33 +388,6 @@ BLIND // can't see anything var/mob/M = loc M.update_inv_shoes() -/obj/item/clothing/shoes/attackby(obj/item/I, mob/user, params) - ..() - if(!can_hold_items) - return - if(held_item) - user << "There's already something in [src]." - return - if(is_type_in_list(I, valid_held_items))//can hold both regular pens and energy daggers. made for your every-day tactical librarians/murderers. - if(I.w_class > 2)//if the object is too big (like if it's a cleaver or an extended edagger) it wont fit - user << "[I] is currently too big to fit into [src]. " - return - if(!user.drop_item()) - return - I.loc = src - held_item = I - user << "You discreetly slip [I] into [src]. Alt-click [src] to remove it." - -/obj/item/clothing/shoes/AltClick(mob/user) - if(user.incapacitated() || !held_item || !can_hold_items) - return - if(!user.put_in_hands(held_item)) - user << "You fumble for [held_item] and it falls on the floor." - return 1 - held_item = null - user.visible_message("[user] draws [held_item] from their shoes!", "You draw [held_item] from [src].") - held_item = null - /obj/item/proc/negates_gravity() return 0 @@ -271,18 +397,26 @@ BLIND // can't see anything name = "suit" var/fire_resist = T0C+100 allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen) - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) slot_flags = SLOT_OCLOTHING var/blood_overlay_type = "suit" var/togglename = null -/obj/item/clothing/suit/worn_overlays(var/isinhands = FALSE) +/obj/item/clothing/suit/worn_overlays(isinhands = FALSE) . = list() if(!isinhands) + if(damaged_clothes) + . += image("icon"='icons/effects/item_damage.dmi', "icon_state"="damaged[blood_overlay_type]") if(blood_DNA) . += image("icon"='icons/effects/blood.dmi', "icon_state"="[blood_overlay_type]blood") +/obj/item/clothing/suit/update_clothes_damaged_state(damaging = TRUE) + ..() + if(ismob(loc)) + var/mob/M = loc + M.update_inv_wear_suit() + //Spacesuit //Note: Everything in modules/clothing/spacesuits should have the entire suit grouped together. // Meaning the the suit is defined directly after the corrisponding helmet. Just like below! @@ -293,7 +427,7 @@ BLIND // can't see anything flags = STOPSPRESSUREDMAGE | THICKMATERIAL item_state = "spaceold" permeability_coefficient = 0.01 - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 50) + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 50, fire = 80, acid = 70) flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR cold_protection = HEAD min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT @@ -303,21 +437,21 @@ BLIND // can't see anything strip_delay = 50 put_on_delay = 50 flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH - burn_state = FIRE_PROOF + resistance_flags = 0 /obj/item/clothing/suit/space name = "space suit" desc = "A suit that protects against low pressure environments. Has a big 13 on the back." icon_state = "spaceold" item_state = "s_suit" - w_class = 4//bulky item + w_class = WEIGHT_CLASS_BULKY gas_transfer_coefficient = 0.01 permeability_coefficient = 0.02 flags = STOPSPRESSUREDMAGE | THICKMATERIAL body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals) slowdown = 1 - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 50) + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 50, fire = 80, acid = 70) flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT cold_protection = CHEST | GROIN | LEGS | FEET | ARMS | HANDS min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT @@ -325,7 +459,7 @@ BLIND // can't see anything max_heat_protection_temperature = SPACE_SUIT_MAX_TEMP_PROTECT strip_delay = 80 put_on_delay = 80 - burn_state = FIRE_PROOF + resistance_flags = 0 //Under clothing @@ -335,72 +469,122 @@ BLIND // can't see anything body_parts_covered = CHEST|GROIN|LEGS|ARMS permeability_coefficient = 0.90 slot_flags = SLOT_ICLOTHING - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) var/fitted = FEMALE_UNIFORM_FULL // For use in alternate clothing styles for women var/has_sensor = 1//For the crew computer 2 = unable to change mode var/random_sensor = 1 var/sensor_mode = 0 /* 1 = Report living/dead, 2 = Report detailed damages, 3 = Report location */ var/can_adjust = 1 - var/adjusted = 0 + var/adjusted = NORMAL_STYLE var/alt_covers_chest = 0 // for adjusted/rolled-down jumpsuits, 0 = exposes chest and arms, 1 = exposes arms only var/obj/item/clothing/tie/hastie = null + var/mutantrace_variation = NO_MUTANTRACE_VARIATION //Are there special sprites for specific situations? Don't use this unless you need to. -/obj/item/clothing/under/worn_overlays(var/isinhands = FALSE) +/obj/item/clothing/under/worn_overlays(isinhands = FALSE) . = list() if(!isinhands) + + if(damaged_clothes) + . += image("icon"='icons/effects/item_damage.dmi', "icon_state"="damageduniform") if(blood_DNA) . += image("icon"='icons/effects/blood.dmi', "icon_state"="uniformblood") - if(hastie) var/tie_color = hastie.item_color if(!tie_color) tie_color = hastie.icon_state - . += image("icon"='icons/mob/ties.dmi', "icon_state"="[tie_color]") + var/image/tI = image("icon"='icons/mob/ties.dmi', "icon_state"="[tie_color]") + tI.alpha = hastie.alpha + tI.color = hastie.color + . += tI +/obj/item/clothing/under/update_clothes_damaged_state(damaging = TRUE) + ..() + if(ismob(loc)) + var/mob/M = loc + M.update_inv_w_uniform() /obj/item/clothing/under/New() if(random_sensor) //make the sensor mode favor higher levels, except coords. sensor_mode = pick(0, 1, 1, 2, 2, 2, 3, 3) - adjusted = 0 + adjusted = NORMAL_STYLE + ..() + +/obj/item/clothing/under/equipped(mob/user, slot) + ..() + if(adjusted) + adjusted = NORMAL_STYLE + fitted = initial(fitted) + if(!alt_covers_chest) + body_parts_covered |= CHEST + + if(mutantrace_variation && ishuman(user)) + var/mob/living/carbon/human/H = user + if(DIGITIGRADE in H.dna.species.species_traits) + adjusted = DIGITIGRADE_STYLE + H.update_inv_w_uniform() + + if(hastie) + hastie.on_uniform_equip(src, user) + +/obj/item/clothing/under/dropped(mob/user) + if(hastie) + hastie.on_uniform_dropped(src, user) ..() /obj/item/clothing/under/attackby(obj/item/I, mob/user, params) - attachTie(I, user) - ..() + if(!attachTie(I, user)) + ..() /obj/item/clothing/under/proc/attachTie(obj/item/I, mob/user, notifyAttach = 1) if(istype(I, /obj/item/clothing/tie)) + var/obj/item/clothing/tie/T = I if(hastie) if(user) user << "[src] already has an accessory." return 0 else - if(user) - if(!user.drop_item()) - return - hastie = I - I.loc = src + if(user && !user.drop_item()) + return + if(!T.attach(src, user)) + return + if(user && notifyAttach) user << "You attach [I] to [src]." - I.transform *= 0.5 //halve the size so it doesn't overpower the under - I.pixel_x += 8 - I.pixel_y -= 8 - I.layer = FLOAT_LAYER - add_overlay(I) - - if(istype(loc, /mob/living/carbon/human)) + if(ishuman(loc)) var/mob/living/carbon/human/H = loc H.update_inv_w_uniform() return 1 +/obj/item/clothing/under/proc/removetie(mob/user) + if(!isliving(user)) + return + if(!can_use(user)) + return + + if(hastie) + var/obj/item/clothing/tie/T = hastie + hastie.detach(src, user) + if(user.put_in_hands(T)) + user << "You detach [T] from [src]." + else + user << "You detach [T] from [src] and it falls on the floor." + + if(ishuman(loc)) + var/mob/living/carbon/human/H = loc + H.update_inv_w_uniform() + /obj/item/clothing/under/examine(mob/user) ..() - switch(src.sensor_mode) + if(adjusted == ALT_STYLE) + user << "Alt-click on [src] to wear it normally." + else + user << "Alt-click on [src] to wear it casually." + switch(sensor_mode) if(0) user << "Its sensors appear to be disabled." if(1) @@ -453,7 +637,7 @@ BLIND // can't see anything if(3) usr << "Your suit will now report your exact vital lifesigns as well as your coordinate position." - if(istype(loc,/mob/living/carbon/human)) + if(ishuman(loc)) var/mob/living/carbon/human/H = loc if(H.w_uniform == src) H.update_suit_sensors() @@ -461,12 +645,17 @@ BLIND // can't see anything ..() /obj/item/clothing/under/AltClick(mob/user) - ..() + if(..()) + return 1 + if(!user.canUseTopic(src, be_close=TRUE)) user << "You can't do that right now!" return else - rolldown() + if(hastie) + removetie(user) + else + rolldown() /obj/item/clothing/under/verb/jumpsuit_adjust() set name = "Adjust Jumpsuit Style" @@ -484,73 +673,65 @@ BLIND // can't see anything usr << "You adjust the suit to wear it more casually." else usr << "You adjust the suit back to normal." - usr.update_inv_w_uniform() + if(ishuman(usr)) + var/mob/living/carbon/human/H = usr + H.update_inv_w_uniform() + H.update_body() /obj/item/clothing/under/proc/toggle_jumpsuit_adjust() + if(adjusted == DIGITIGRADE_STYLE) + return adjusted = !adjusted if(adjusted) if(fitted != FEMALE_UNIFORM_TOP) fitted = NO_FEMALE_UNIFORM - if (alt_covers_chest) // for the special snowflake suits that don't expose the chest when adjusted - body_parts_covered = CHEST|GROIN|LEGS - else - body_parts_covered = GROIN|LEGS + if(!alt_covers_chest) // for the special snowflake suits that expose the chest when adjusted + body_parts_covered &= ~CHEST else fitted = initial(fitted) - body_parts_covered = CHEST|GROIN|LEGS|ARMS + if(!alt_covers_chest) + body_parts_covered |= CHEST return adjusted -/obj/item/clothing/under/examine(mob/user) - ..() - if(src.adjusted) - user << "Alt-click on [src] to wear it normally." - else - user << "Alt-click on [src] to wear it casually." +/obj/item/clothing/proc/weldingvisortoggle(mob/user) //proc to toggle welding visors on helmets, masks, goggles, etc. + if(!can_use(user)) + return FALSE -/obj/item/clothing/under/verb/removetie() - set name = "Remove Accessory" - set category = "Object" - set src in usr - if(!istype(usr, /mob/living)) - return - if(!can_use(usr)) - return + visor_toggling() - if(hastie) - hastie.transform *= 2 - hastie.pixel_x -= 8 - hastie.pixel_y += 8 - hastie.layer = initial(hastie.layer) - overlays = null - usr.put_in_hands(hastie) - hastie = null + user << "You adjust \the [src] [up ? "up" : "down"]." - if(istype(loc, /mob/living/carbon/human)) - var/mob/living/carbon/human/H = loc - H.update_inv_w_uniform() - -/obj/item/clothing/proc/weldingvisortoggle() //Malk: proc to toggle welding visors on helmets, masks, goggles, etc. - if(!can_use(usr)) - return - - up ^= 1 - flags ^= visor_flags - flags_inv ^= visor_flags_inv - flags_cover ^= initial(flags_cover) - icon_state = "[initial(icon_state)][up ? "up" : ""]" - usr << "You adjust \the [src] [up ? "up" : "down"]." - flash_protect ^= initial(flash_protect) - tint ^= initial(tint) - - if(istype(usr, /mob/living/carbon)) - var/mob/living/carbon/C = usr + if(iscarbon(user)) + var/mob/living/carbon/C = user C.head_update(src, forced = 1) for(var/X in actions) var/datum/action/A = X A.UpdateButtonIcon() + return TRUE + +/obj/item/clothing/proc/visor_toggling() //handles all the actual toggling of flags + up = !up + flags ^= visor_flags + flags_inv ^= visor_flags_inv + flags_cover ^= initial(flags_cover) + icon_state = "[initial(icon_state)][up ? "up" : ""]" + flash_protect ^= initial(flash_protect) + tint ^= initial(tint) + /obj/item/clothing/proc/can_use(mob/user) if(user && ismob(user)) if(!user.incapacitated()) return 1 return 0 + + +/obj/item/clothing/obj_destruction(damage_flag) + if(damage_flag == "bomb" || damage_flag == "melee") + var/turf/T = get_turf(src) + spawn(1) //so the shred survives potential turf change from the explosion. + var/obj/effect/decal/cleanable/shreds/Shreds = new(T) + Shreds.desc = "The sad remains of what used to be [name]." + deconstruct(FALSE) + else + ..() diff --git a/code/modules/clothing/glasses/engine_goggles.dm b/code/modules/clothing/glasses/engine_goggles.dm index 5f9df78872..a44178fc92 100644 --- a/code/modules/clothing/glasses/engine_goggles.dm +++ b/code/modules/clothing/glasses/engine_goggles.dm @@ -42,7 +42,7 @@ if(!mode) return - if(!istype(loc,/mob/living/carbon/human)) + if(!ishuman(loc)) invis_update() return @@ -78,7 +78,7 @@ O.invisibility = INVISIBILITY_MAXIMUM /obj/item/clothing/glasses/meson/engine/proc/t_ray_on() - if(!istype(loc,/mob/living/carbon/human)) + if(!ishuman(loc)) return 0 var/mob/living/carbon/human/user = loc diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm index 45dbc0b8de..59ee3e5bac 100644 --- a/code/modules/clothing/glasses/glasses.dm +++ b/code/modules/clothing/glasses/glasses.dm @@ -1,6 +1,18 @@ /obj/item/clothing/glasses name = "glasses" materials = list(MAT_GLASS = 250) + var/glass_colour_type = null //colors your vision when worn + +/obj/item/clothing/glasses/visor_toggling() + ..() + vision_flags ^= initial(vision_flags) + darkness_view ^= initial(darkness_view) + invis_view ^= initial(invis_view) + +/obj/item/clothing/glasses/weldingvisortoggle(mob/user) + . = ..() + if(. && user) + user.update_sight() //called when thermal glasses are emped. /obj/item/clothing/glasses/proc/thermal_overload() @@ -9,7 +21,7 @@ if(!(H.disabilities & BLIND)) if(H.glasses == src) H << "The [src] overloads and blinds you!" - H.flash_eyes(visual = 1) + H.flash_act(visual = 1) H.blind_eyes(3) H.blur_eyes(5) H.adjust_eye_damage(5) @@ -23,6 +35,7 @@ darkness_view = 2 vision_flags = SEE_TURFS invis_view = SEE_INVISIBLE_MINIMUM + glass_colour_type = /datum/client_colour/glass_colour/lightgreen /obj/item/clothing/glasses/meson/night name = "Night Vision Optical Meson Scanner" @@ -31,6 +44,7 @@ item_state = "nvgmeson" origin_tech = "magnets=4;engineering=5;plasmatech=4" darkness_view = 8 + glass_colour_type = /datum/client_colour/glass_colour/green /obj/item/clothing/glasses/meson/gar name = "gar mesons" @@ -52,6 +66,9 @@ origin_tech = "magnets=2;engineering=1" scan_reagents = 1 //You can see reagents while wearing science goggles actions_types = list(/datum/action/item_action/toggle_research_scanner) + glass_colour_type = /datum/client_colour/glass_colour/purple + resistance_flags = ACID_PROOF + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 80, acid = 100) /obj/item/clothing/glasses/science/item_action_slot_check(slot) if(slot == slot_glasses) @@ -65,6 +82,7 @@ origin_tech = "materials=4;magnets=4;plasmatech=4;engineering=4" darkness_view = 8 invis_view = SEE_INVISIBLE_MINIMUM + glass_colour_type = /datum/client_colour/glass_colour/green /obj/item/clothing/glasses/eyepatch name = "eyepatch" @@ -85,6 +103,7 @@ item_state = "glasses" origin_tech = "magnets=3;engineering=3" vision_flags = SEE_OBJS + glass_colour_type = /datum/client_colour/glass_colour/lightblue /obj/item/clothing/glasses/material/mining name = "Optical Material Scanner" @@ -105,6 +124,7 @@ attack_verb = list("sliced") hitsound = 'sound/weapons/bladeslice.ogg' sharpness = IS_SHARP + glass_colour_type = /datum/client_colour/glass_colour/lightgreen /obj/item/clothing/glasses/regular name = "Prescription Glasses" @@ -119,11 +139,7 @@ icon_state = "hipster_glasses" item_state = "hipster_glasses" -/obj/item/clothing/glasses/gglasses - name = "Green Glasses" - desc = "Forest green glasses, like the kind you'd wear when hatching a nasty scheme." - icon_state = "gglasses" - item_state = "gglasses" +//Here lies green glasses, so ugly they died. RIP /obj/item/clothing/glasses/sunglasses desc = "Strangely ancient technology used to help provide rudimentary eye cover. Enhanced shielding blocks many flashes." @@ -133,7 +149,7 @@ darkness_view = 1 flash_protect = 1 tint = 1 - + glass_colour_type = /datum/client_colour/glass_colour/gray dog_fashion = /datum/dog_fashion/head /obj/item/clothing/glasses/sunglasses/reagent @@ -173,6 +189,7 @@ attack_verb = list("sliced") hitsound = 'sound/weapons/bladeslice.ogg' sharpness = IS_SHARP + glass_colour_type = /datum/client_colour/glass_colour/orange /obj/item/clothing/glasses/sunglasses/gar/supergar desc = "We evolve past the person we were a minute before. Little by little we advance with each turn. That's how a drill works!" @@ -181,6 +198,7 @@ item_state = "gar" force = 12 throwforce = 12 + glass_colour_type = /datum/client_colour/glass_colour/red /obj/item/clothing/glasses/welding name = "welding goggles" @@ -193,18 +211,10 @@ tint = 2 flags_cover = GLASSESCOVERSEYES visor_flags_inv = HIDEEYES + glass_colour_type = /datum/client_colour/glass_colour/gray - -/obj/item/clothing/glasses/welding/attack_self() - toggle() - - -/obj/item/clothing/glasses/welding/verb/toggle() - set category = "Object" - set name = "Adjust welding goggles" - set src in usr - - weldingvisortoggle() +/obj/item/clothing/glasses/welding/attack_self(mob/user) + weldingvisortoggle(user) /obj/item/clothing/glasses/sunglasses/blindfold @@ -230,6 +240,7 @@ vision_flags = SEE_MOBS invis_view = 2 flash_protect = 0 + glass_colour_type = /datum/client_colour/glass_colour/red /obj/item/clothing/glasses/thermal/emp_act(severity) thermal_overload() @@ -273,12 +284,14 @@ desc = "A sweet pair of orange shades." icon_state = "orangeglasses" item_state = "orangeglasses" + glass_colour_type = /datum/client_colour/glass_colour/lightorange /obj/item/clothing/glasses/red name = "red glasses" - desc = "A sweet pair of red shades." + desc = "Hey, you're looking good, senpai!" icon_state = "redglasses" item_state = "redglasses" + glass_colour_type = /datum/client_colour/glass_colour/red /obj/item/clothing/glasses/godeye name = "eye of god" @@ -291,6 +304,20 @@ flags = NODROP invis_view = SEE_INVISIBLE_MINIMUM +/obj/item/clothing/glasses/godeye/attackby(obj/item/weapon/W as obj, mob/user as mob, params) + if(istype(W, src) && W != src && W.loc == user) + if(W.icon_state == "godeye") + W.icon_state = "doublegodeye" + W.item_state = "doublegodeye" + W.desc = "A pair of strange eyes, said to have been torn from an omniscient creature that used to roam the wastes. There's no real reason to have two, but that isn't stopping you." + if(iscarbon(user)) + var/mob/living/carbon/C = user + C.update_inv_wear_mask() + else + user << "The eye winks at you and vanishes into the abyss, you feel really unlucky." + qdel(src) + ..() + /obj/item/clothing/glasses/proc/chameleon(var/mob/user) var/input_glasses = input(user, "Choose a piece of eyewear to disguise as.", "Choose glasses style.") as null|anything in list("Sunglasses", "Medical HUD", "Mesons", "Science Goggles", "Glasses", "Security Sunglasses","Eyepatch","Welding","Gar") @@ -342,3 +369,35 @@ icon_state = "gar" item_state = "gar" + +/obj/item/clothing/glasses/AltClick(mob/user) + if(glass_colour_type && ishuman(user)) + var/mob/living/carbon/human/H = user + if(H.client) + if(H.client.prefs) + if(src == H.glasses) + H.client.prefs.uses_glasses_colour = !H.client.prefs.uses_glasses_colour + if(H.client.prefs.uses_glasses_colour) + H << "You will now see glasses colors." + else + H << "You will no longer see glasses colors." + H.update_glasses_color(src, 1) + else + return ..() + +/obj/item/clothing/glasses/proc/change_glass_color(mob/living/carbon/human/H, datum/client_colour/glass_colour/new_color_type) + var/old_colour_type = glass_colour_type + if(!new_color_type || ispath(new_color_type)) //the new glass colour type must be null or a path. + glass_colour_type = new_color_type + if(H && H.glasses == src) + if(old_colour_type) + H.remove_client_colour(old_colour_type) + if(glass_colour_type) + H.update_glasses_color(src, 1) + + +/mob/living/carbon/human/proc/update_glasses_color(obj/item/clothing/glasses/G, glasses_equipped) + if(client && client.prefs.uses_glasses_colour && glasses_equipped) + add_client_colour(G.glass_colour_type) + else + remove_client_colour(G.glass_colour_type) diff --git a/code/modules/clothing/glasses/hud.dm b/code/modules/clothing/glasses/hud.dm index 867eaa7ab1..a95be705b9 100644 --- a/code/modules/clothing/glasses/hud.dm +++ b/code/modules/clothing/glasses/hud.dm @@ -6,6 +6,7 @@ var/hud_type = null /obj/item/clothing/glasses/hud/equipped(mob/living/carbon/human/user, slot) + ..() if(hud_type && slot == slot_glasses) var/datum/atom_hud/H = huds[hud_type] H.add_hud_to(user) @@ -33,6 +34,7 @@ icon_state = "healthhud" origin_tech = "magnets=3;biotech=2" hud_type = DATA_HUD_MEDICAL_ADVANCED + glass_colour_type = /datum/client_colour/glass_colour/lightblue /obj/item/clothing/glasses/hud/health/night name = "Night Vision Health Scanner HUD" @@ -42,6 +44,7 @@ origin_tech = "magnets=4;biotech=4;plasmatech=4;engineering=5" darkness_view = 8 invis_view = SEE_INVISIBLE_MINIMUM + glass_colour_type = /datum/client_colour/glass_colour/green /obj/item/clothing/glasses/hud/diagnostic name = "Diagnostic HUD" @@ -49,6 +52,7 @@ icon_state = "diagnostichud" origin_tech = "magnets=2;engineering=2" hud_type = DATA_HUD_DIAGNOSTIC + glass_colour_type = /datum/client_colour/glass_colour/lightorange /obj/item/clothing/glasses/hud/diagnostic/night name = "Night Vision Diagnostic HUD" @@ -58,6 +62,7 @@ origin_tech = "magnets=4;powerstorage=4;plasmatech=4;engineering=5" darkness_view = 8 invis_view = SEE_INVISIBLE_MINIMUM + glass_colour_type = /datum/client_colour/glass_colour/green /obj/item/clothing/glasses/hud/security name = "Security HUD" @@ -65,6 +70,7 @@ icon_state = "securityhud" origin_tech = "magnets=3;combat=2" hud_type = DATA_HUD_SECURITY_ADVANCED + glass_colour_type = /datum/client_colour/glass_colour/red /obj/item/clothing/glasses/hud/security/chameleon name = "Chamleon Security HUD" @@ -88,6 +94,7 @@ darkness_view = 1 flash_protect = 1 tint = 1 + glass_colour_type = /datum/client_colour/glass_colour/darkred /obj/item/clothing/glasses/hud/security/night name = "Night Vision Security HUD" @@ -96,6 +103,7 @@ origin_tech = "magnets=4;combat=4;plasmatech=4;engineering=5" darkness_view = 8 invis_view = SEE_INVISIBLE_MINIMUM + glass_colour_type = /datum/client_colour/glass_colour/green /obj/item/clothing/glasses/hud/security/sunglasses/gars name = "HUD gar glasses" @@ -151,16 +159,20 @@ hud_type = DATA_HUD_SECURITY_ADVANCED vision_flags = SEE_MOBS invis_view = 2 + glass_colour_type = /datum/client_colour/glass_colour/red /obj/item/clothing/glasses/hud/toggle/thermal/attack_self(mob/user) ..() switch (hud_type) if (DATA_HUD_MEDICAL_ADVANCED) icon_state = "meson" + change_glass_color(user, /datum/client_colour/glass_colour/green) if (DATA_HUD_SECURITY_ADVANCED) icon_state = "thermal" + change_glass_color(user, /datum/client_colour/glass_colour/red) else icon_state = "purple" + change_glass_color(user, /datum/client_colour/glass_colour/purple) user.update_inv_glasses() /obj/item/clothing/glasses/hud/toggle/thermal/emp_act(severity) diff --git a/code/modules/clothing/gloves/color.dm b/code/modules/clothing/gloves/color.dm index 2c6d6dc07b..4c9a273633 100644 --- a/code/modules/clothing/gloves/color.dm +++ b/code/modules/clothing/gloves/color.dm @@ -6,7 +6,7 @@ siemens_coefficient = 0 permeability_coefficient = 0.05 item_color="yellow" - burn_state = FIRE_PROOF + resistance_flags = 0 /obj/item/clothing/gloves/color/fyellow //Cheap Chinese Crap desc = "These gloves are cheap knockoffs of the coveted ones - no way this can end badly." @@ -16,7 +16,7 @@ siemens_coefficient = 1 //Set to a default of 1, gets overridden in New() permeability_coefficient = 0.05 item_color="yellow" - burn_state = FIRE_PROOF + resistance_flags = 0 /obj/item/clothing/gloves/color/fyellow/New() ..() @@ -26,26 +26,26 @@ desc = "These gloves are fire-resistant." name = "black gloves" icon_state = "black" - item_state = "bgloves" - item_color="brown" + item_state = "blackgloves" + item_color="black" cold_protection = HANDS min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT heat_protection = HANDS max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT - burn_state = FIRE_PROOF + resistance_flags = 0 var/can_be_cut = 1 /obj/item/clothing/gloves/color/black/hos - item_color = "hosred" //Exists for washing machines. Is not different from black gloves in any way. + item_color = "hosred" //Exists for washing machines. Is not different from black gloves in any way. /obj/item/clothing/gloves/color/black/ce - item_color = "chief" //Exists for washing machines. Is not different from black gloves in any way. + item_color = "chief" //Exists for washing machines. Is not different from black gloves in any way. /obj/item/clothing/gloves/color/black/attackby(obj/item/weapon/W as obj, mob/user as mob, params) if(istype(W, /obj/item/weapon/wirecutters)) if(can_be_cut && icon_state == initial(icon_state))//only if not dyed user << "You snip the fingertips off of [src]." - playsound(user.loc,'sound/items/Wirecutter.ogg', rand(10,50), 1) + playsound(user.loc, W.usesound, rand(10,50), 1) new /obj/item/clothing/gloves/fingerless(user.loc) qdel(src) ..() @@ -64,12 +64,13 @@ item_state = "redgloves" item_color = "red" + /obj/item/clothing/gloves/color/red/insulated name = "insulated gloves" desc = "These gloves will protect the wearer from electric shock." siemens_coefficient = 0 permeability_coefficient = 0.05 - burn_state = FIRE_PROOF + resistance_flags = 0 /obj/item/clothing/gloves/color/rainbow name = "rainbow gloves" @@ -145,6 +146,7 @@ heat_protection = HANDS max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT strip_delay = 60 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 70, acid = 50) /obj/item/clothing/gloves/color/latex name = "latex gloves" @@ -155,7 +157,7 @@ permeability_coefficient = 0.01 item_color="white" transfer_prints = TRUE - burn_state = FIRE_PROOF + resistance_flags = 0 /obj/item/clothing/gloves/color/latex/nitrile name = "nitrile gloves" diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm index b4b314ce26..90d56d5d7e 100644 --- a/code/modules/clothing/gloves/miscellaneous.dm +++ b/code/modules/clothing/gloves/miscellaneous.dm @@ -21,13 +21,14 @@ min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT heat_protection = HANDS max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT - burn_state = FIRE_PROOF + resistance_flags = 0 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 70, acid = 30) /obj/item/clothing/gloves/combat name = "combat gloves" desc = "These tactical gloves are fireproof and shock resistant." icon_state = "black" - item_state = "bgloves" + item_state = "blackgloves" siemens_coefficient = 0 permeability_coefficient = 0.05 strip_delay = 80 @@ -35,7 +36,9 @@ min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT heat_protection = HANDS max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT - burn_state = FIRE_PROOF + resistance_flags = 0 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 80, acid = 50) + /obj/item/clothing/gloves/bracer name = "bone bracers" @@ -50,6 +53,5 @@ cold_protection = ARMS min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT - burn_state = FIRE_PROOF - armor = list(melee = 15, bullet = 35, laser = 35, energy = 20, bomb = 35, bio = 35, rad = 35) //Not like anything ever hits the arms anyways. - + resistance_flags = 0 + armor = list(melee = 15, bullet = 35, laser = 35, energy = 20, bomb = 35, bio = 35, rad = 35, fire = 0, acid = 0) diff --git a/code/modules/clothing/head/beanie.dm b/code/modules/clothing/head/beanie.dm new file mode 100644 index 0000000000..bbae5b261f --- /dev/null +++ b/code/modules/clothing/head/beanie.dm @@ -0,0 +1,77 @@ + +//BeanieStation13 Redux + +/obj/item/clothing/head/beanie //Default is white, this is meant to be seen + name = "white beanie" + desc = "A stylish beanie. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their heads." + icon_state = "beanie" //Default white + item_color = "beanie" + +/obj/item/clothing/head/beanie/black + name = "black beanie" + icon_state = "beanie" + color = "#4A4A4B" //Grey but it looks black + +/obj/item/clothing/head/beanie/red + name = "red beanie" + icon_state = "beanie" + color = "#D91414" //Red + +/obj/item/clothing/head/beanie/green + name = "green beanie" + icon_state = "beanie" + color = "#5C9E54" //Green + +/obj/item/clothing/head/beanie/darkblue + name = "dark blue beanie" + icon_state = "beanie" + color = "#1E85BC" //Blue + +/obj/item/clothing/head/beanie/purple + name = "purple beanie" + icon_state = "beanie" + color = "#9557C5" //purple + +/obj/item/clothing/head/beanie/yellow + name = "yellow beanie" + icon_state = "beanie" + color = "#E0C14F" //Yellow + +/obj/item/clothing/head/beanie/orange + name = "orange beanie" + icon_state = "beanie" + color = "#C67A4B" //orange + +/obj/item/clothing/head/beanie/cyan + name = "cyan beanie" + icon_state = "beanie" + color = "#54A3CE" //Cyan (Or close to it) + +//Striped Beanies have unique sprites + +/obj/item/clothing/head/beanie/christmas + name = "christmas beanie" + icon_state = "beaniechristmas" + item_color = "beaniechristmas" + +/obj/item/clothing/head/beanie/striped + name = "striped beanie" + icon_state = "beaniestriped" + item_color = "beaniestriped" + +/obj/item/clothing/head/beanie/stripedred + name = "red striped beanie" + icon_state = "beaniestripedred" + item_color = "beaniestripedred" + +/obj/item/clothing/head/beanie/stripedblue + name = "blue striped beanie" + icon_state = "beaniestripedblue" + item_color = "beaniestripedblue" + +/obj/item/clothing/head/beanie/stripedgreen + name = "green striped beanie" + icon_state = "beaniestripedgreen" + item_color = "beaniestripedgreen" + +//No dog fashion sprites yet :( poor Ian can't be dope like the rest of us yet \ No newline at end of file diff --git a/code/modules/clothing/head/collectable.dm b/code/modules/clothing/head/collectable.dm index 375da621cf..61171ccf59 100644 --- a/code/modules/clothing/head/collectable.dm +++ b/code/modules/clothing/head/collectable.dm @@ -68,7 +68,7 @@ desc = "A collectable welding helmet. Now with 80% less lead! Not for actual welding. Any welding done while wearing this helmet is done so at the owner's own risk!" icon_state = "welding" item_state = "welding" - burn_state = FIRE_PROOF + resistance_flags = 0 /obj/item/clothing/head/collectable/slime name = "collectable slime hat" @@ -137,11 +137,11 @@ desc = "Go Red! I mean Green! I mean Red! No Green!" icon_state = "thunderdome" item_state = "thunderdome" - burn_state = FIRE_PROOF + resistance_flags = 0 /obj/item/clothing/head/collectable/swat name = "collectable SWAT helmet" desc = "That's not real blood. That's red paint." //Reference to the actual description icon_state = "swat" item_state = "swat" - burn_state = FIRE_PROOF + resistance_flags = 0 diff --git a/code/modules/clothing/head/hardhat.dm b/code/modules/clothing/head/hardhat.dm index 66e0473005..a09568917d 100644 --- a/code/modules/clothing/head/hardhat.dm +++ b/code/modules/clothing/head/hardhat.dm @@ -6,10 +6,10 @@ var/brightness_on = 4 //luminosity when on var/on = 0 item_color = "yellow" //Determines used sprites: hardhat[on]_[item_color] and hardhat[on]_[item_color]2 (lying down sprite) - armor = list(melee = 15, bullet = 5, laser = 20,energy = 10, bomb = 20, bio = 10, rad = 20) + armor = list(melee = 15, bullet = 5, laser = 20,energy = 10, bomb = 20, bio = 10, rad = 20, fire = 100, acid = 50) flags_inv = 0 actions_types = list(/datum/action/item_action/toggle_helmet_light) - burn_state = FIRE_PROOF + resistance_flags = FIRE_PROOF dog_fashion = /datum/dog_fashion/head @@ -27,11 +27,23 @@ var/datum/action/A = X A.UpdateButtonIcon() +/obj/item/clothing/head/hardhat/pickup(mob/user) + ..() + if(on) + user.AddLuminosity(brightness_on) + SetLuminosity(0) + +/obj/item/clothing/head/hardhat/dropped(mob/user) + ..() + if(on) + user.AddLuminosity(-brightness_on) + SetLuminosity(brightness_on) + /obj/item/clothing/head/hardhat/proc/turn_on(mob/user) - set_light(brightness_on) + user.AddLuminosity(brightness_on) /obj/item/clothing/head/hardhat/proc/turn_off(mob/user) - set_light(0) + user.AddLuminosity(-brightness_on) /obj/item/clothing/head/hardhat/orange icon_state = "hardhat0_orange" diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index 8d05cc6b8f..a6ce2249b0 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -4,14 +4,14 @@ icon_state = "helmet" flags = HEADBANGPROTECT item_state = "helmet" - armor = list(melee = 40, bullet = 30, laser = 30,energy = 10, bomb = 25, bio = 0, rad = 0) + armor = list(melee = 35, bullet = 30, laser = 30,energy = 10, bomb = 25, bio = 0, rad = 0, fire = 50, acid = 50) flags_inv = HIDEEARS cold_protection = HEAD min_cold_protection_temperature = HELMET_MIN_TEMP_PROTECT heat_protection = HEAD max_heat_protection_temperature = HELMET_MAX_TEMP_PROTECT strip_delay = 60 - burn_state = FIRE_PROOF + resistance_flags = 0 flags_cover = HEADCOVERSEYES dog_fashion = /datum/dog_fashion/head/helmet @@ -20,9 +20,6 @@ /obj/item/clothing/head/helmet/New() ..() -/obj/item/clothing/head/helmet/emp_act(severity) - ..() - /obj/item/clothing/head/helmet/sec can_flashlight = 1 @@ -31,10 +28,14 @@ desc = "A bulletproof combat helmet that excels in protecting the wearer against traditional projectile weaponry and explosives to a minor extent." icon_state = "helmetalt" item_state = "helmetalt" - armor = list(melee = 15, bullet = 40, laser = 10, energy = 10, bomb = 40, bio = 0, rad = 0) + armor = list(melee = 15, bullet = 40, laser = 10, energy = 10, bomb = 40, bio = 0, rad = 0, fire = 50, acid = 50) can_flashlight = 1 dog_fashion = null +/obj/item/clothing/head/helmet/blueshirt + icon_state = "blueshift" + item_state = "blueshift" + /obj/item/clothing/head/helmet/riot name = "riot helmet" desc = "It's a helmet specifically designed to protect against close range attacks." @@ -44,11 +45,11 @@ alt_toggle_message = "You push the visor up on" can_toggle = 1 flags = HEADBANGPROTECT - armor = list(melee = 41, bullet = 15, laser = 5,energy = 5, bomb = 5, bio = 2, rad = 0) - flags_inv = HIDEMASK|HIDEEARS|HIDEFACE + armor = list(melee = 45, bullet = 15, laser = 5,energy = 5, bomb = 5, bio = 2, rad = 0, fire = 50, acid = 50) + flags_inv = HIDEEARS|HIDEFACE strip_delay = 80 actions_types = list(/datum/action/item_action/toggle) - visor_flags_inv = HIDEMASK|HIDEFACE + visor_flags_inv = HIDEFACE toggle_cooldown = 0 flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH dog_fashion = null @@ -98,7 +99,7 @@ desc = "An extremely robust, space-worthy helmet in a nefarious red and black stripe pattern." icon_state = "swatsyndie" item_state = "swatsyndie" - armor = list(melee = 40, bullet = 30, laser = 30,energy = 30, bomb = 50, bio = 90, rad = 20) + armor = list(melee = 40, bullet = 30, laser = 30,energy = 30, bomb = 50, bio = 90, rad = 20, fire = 50, acid = 50) cold_protection = HEAD min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT heat_protection = HEAD @@ -119,7 +120,7 @@ flags_inv = HIDEEARS|HIDEHAIR icon_state = "thunderdome" item_state = "thunderdome" - armor = list(melee = 40, bullet = 30, laser = 25,energy = 10, bomb = 25, bio = 10, rad = 0) + armor = list(melee = 40, bullet = 30, laser = 25,energy = 10, bomb = 25, bio = 10, rad = 0, fire = 50, acid = 50) cold_protection = HEAD min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT heat_protection = HEAD @@ -132,7 +133,8 @@ desc = "An ancient helmet made of bronze and leather." flags_inv = HIDEEARS|HIDEHAIR flags_cover = HEADCOVERSEYES - armor = list(melee = 25, bullet = 0, laser = 25, energy = 10, bomb = 10, bio = 0, rad = 0) + armor = list(melee = 25, bullet = 0, laser = 25, energy = 10, bomb = 10, bio = 0, rad = 0, fire = 100, acid = 50) + resistance_flags = FIRE_PROOF icon_state = "roman" item_state = "roman" strip_delay = 100 @@ -159,7 +161,7 @@ icon_state = "redtaghelm" flags_cover = HEADCOVERSEYES item_state = "redtaghelm" - armor = list(melee = 15, bullet = 10, laser = 20,energy = 10, bomb = 20, bio = 0, rad = 0) + armor = list(melee = 15, bullet = 10, laser = 20,energy = 10, bomb = 20, bio = 0, rad = 0, fire = 0, acid = 50) // Offer about the same protection as a hardhat. dog_fashion = null @@ -169,7 +171,7 @@ icon_state = "bluetaghelm" flags_cover = HEADCOVERSEYES item_state = "bluetaghelm" - armor = list(melee = 15, bullet = 10, laser = 20,energy = 10, bomb = 20, bio = 0, rad = 0) + armor = list(melee = 15, bullet = 10, laser = 20,energy = 10, bomb = 20, bio = 0, rad = 0, fire = 0, acid = 50) // Offer about the same protection as a hardhat. dog_fashion = null @@ -178,7 +180,7 @@ desc = "A classic metal helmet." icon_state = "knight_green" item_state = "knight_green" - armor = list(melee = 41, bullet = 15, laser = 5,energy = 5, bomb = 5, bio = 2, rad = 0) + armor = list(melee = 41, bullet = 15, laser = 5,energy = 5, bomb = 5, bio = 2, rad = 0, fire = 0, acid = 50) flags = null flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH @@ -208,7 +210,7 @@ desc = "An intimidating tribal helmet, it doesn't look very comfortable." flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE flags_cover = HEADCOVERSEYES - armor = list(melee = 25, bullet = 25, laser = 25, energy = 10, bomb = 10, bio = 5, rad = 20) + armor = list(melee = 25, bullet = 25, laser = 25, energy = 10, bomb = 10, bio = 5, rad = 20, fire = 40, acid = 20) icon_state = "skull" item_state = "skull" strip_delay = 100 @@ -226,14 +228,14 @@ icon_state = state - if(istype(loc, /mob/living/carbon/human)) + if(ishuman(loc)) var/mob/living/carbon/human/H = loc H.update_inv_head() return -/obj/item/clothing/head/helmet/ui_action_click(mob/user, actiontype) - if(actiontype == /datum/action/item_action/toggle_helmet_flashlight) +/obj/item/clothing/head/helmet/ui_action_click(mob/user, action) + if(istype(action, /datum/action/item_action/toggle_helmet_flashlight)) toggle_helmlight() else ..() @@ -247,7 +249,7 @@ return user << "You click [S] into place on [src]." if(S.on) - set_light(0) + SetLuminosity(0) F = S S.loc = src update_icon() @@ -286,8 +288,6 @@ var/mob/user = usr if(user.incapacitated()) return - if(!isturf(user.loc)) - user << "You cannot turn the light on while in this [user.loc]!" F.on = !F.on user << "You toggle the helmetlight [F.on ? "on":"off"]." @@ -298,13 +298,37 @@ /obj/item/clothing/head/helmet/proc/update_helmlight(mob/user = null) if(F) if(F.on) - set_light(F.brightness_on) + if(loc == user) + user.AddLuminosity(F.brightness_on) + else if(isturf(loc)) + SetLuminosity(F.brightness_on) else - set_light(0) + if(loc == user) + user.AddLuminosity(-F.brightness_on) + else if(isturf(loc)) + SetLuminosity(0) update_icon() else - set_light(0) + if(loc == user) + user.AddLuminosity(-5) + else if(isturf(loc)) + SetLuminosity(0) for(var/X in actions) var/datum/action/A = X A.UpdateButtonIcon() + +/obj/item/clothing/head/helmet/pickup(mob/user) + ..() + if(F) + if(F.on) + user.AddLuminosity(F.brightness_on) + SetLuminosity(0) + + +/obj/item/clothing/head/helmet/dropped(mob/user) + ..() + if(F) + if(F.on) + user.AddLuminosity(-F.brightness_on) + SetLuminosity(F.brightness_on) diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm index 015d04371e..62cb3e1213 100644 --- a/code/modules/clothing/head/jobs.dm +++ b/code/modules/clothing/head/jobs.dm @@ -1,18 +1,16 @@ -//Bartender //it's chef what the fuck is your problem? +//Chef /obj/item/clothing/head/chefhat name = "chef's hat" - desc = "It's a hat used by chefs to keep hair out of your food. Judging by the food in the mess, they don't work." - icon_state = "chef" item_state = "chef" + icon_state = "chef" desc = "The commander in chef's head wear." strip_delay = 10 put_on_delay = 10 - dog_fashion = /datum/dog_fashion/head/chef /obj/item/clothing/head/chefhat/suicide_act(mob/user) - user.visible_message("[user] is donning [src]! It looks like they're trying to become a chef.") + user.visible_message("[user] is donning [src]! It looks like [user.p_theyre()] trying to become a chef.") user.say("Bork Bork Bork!") sleep(20) user.visible_message("[user] climbs into an imaginary oven!") @@ -27,9 +25,8 @@ icon_state = "captain" item_state = "that" flags_inv = 0 - armor = list(melee = 25, bullet = 15, laser = 25, energy = 10, bomb = 25, bio = 0, rad = 0) + armor = list(melee = 25, bullet = 15, laser = 25, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 50, acid = 50) strip_delay = 60 - dog_fashion = /datum/dog_fashion/head/captain //Captain: This is no longer space-worthy @@ -46,8 +43,7 @@ name = "head of personnel's cap" icon_state = "hopcap" desc = "The symbol of true bureaucratic micromanagement." - armor = list(melee = 25, bullet = 15, laser = 25, energy = 10, bomb = 25, bio = 0, rad = 0) - + armor = list(melee = 25, bullet = 15, laser = 25, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 50, acid = 50) dog_fashion = /datum/dog_fashion/head/hop //Chaplain @@ -58,13 +54,31 @@ flags_inv = HIDEHAIR flags_cover = HEADCOVERSEYES +/obj/item/clothing/head/cage + name = "cage" + desc = "A cage that restrains the will of the self, allowing one to see the profane world for what it is." + alternate_worn_icon = 'icons/mob/large-worn-icons/64x64/head.dmi' + icon_state = "cage" + item_state = "cage" + worn_x_dimension = 64 + worn_y_dimension = 64 + + +/obj/item/clothing/head/witchunter_hat + name = "witchunter hat" + desc = "This hat saw much use back in the day." + icon_state = "witchhunterhat" + item_state = "witchhunterhat" + flags_cover = HEADCOVERSEYES + +//Detective /obj/item/clothing/head/det_hat name = "detective's fedora" desc = "There's only one man who can sniff out the dirty stench of crime, and he's likely wearing this hat." icon_state = "detective" - armor = list(melee = 25, bullet = 5, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0) + armor = list(melee = 25, bullet = 5, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0, fire = 30, acid = 50) var/candy_cooldown = 0 - + pockets = /obj/item/weapon/storage/internal/pocket/small/detective dog_fashion = /datum/dog_fashion/head/detective /obj/item/clothing/head/det_hat/AltClick() @@ -88,6 +102,10 @@ dog_fashion = /datum/dog_fashion/head/beret +/obj/item/clothing/head/beret/highlander + desc = "That was white fabric. Was." + flags = NODROP + dog_fashion = null //THIS IS FOR SLAUGHTER, NOT PUPPIES //Security @@ -95,7 +113,7 @@ name = "head of security cap" desc = "The robust standard-issue cap of the Head of Security. For showing the officers who's in charge." icon_state = "hoscap" - armor = list(melee = 40, bullet = 30, laser = 25, energy = 10, bomb = 25, bio = 10, rad = 0) + armor = list(melee = 40, bullet = 30, laser = 25, energy = 10, bomb = 25, bio = 10, rad = 0, fire = 50, acid = 60) strip_delay = 80 /obj/item/clothing/head/HoS/beret @@ -107,16 +125,15 @@ name = "warden's police hat" desc = "It's a special armored hat issued to the Warden of a security force. Protects the head from impacts." icon_state = "policehelm" - armor = list(melee = 40, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0) + armor = list(melee = 40, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 30, acid = 60) strip_delay = 60 - dog_fashion = /datum/dog_fashion/head/warden /obj/item/clothing/head/beret/sec name = "security beret" desc = "A robust beret with the security insignia emblazoned on it. Uses reinforced fabric to offer sufficent protection." icon_state = "beret_badge" - armor = list(melee = 40, bullet = 30, laser = 30,energy = 10, bomb = 25, bio = 0, rad = 0) + armor = list(melee = 40, bullet = 30, laser = 30,energy = 10, bomb = 25, bio = 0, rad = 0, fire = 20, acid = 50) strip_delay = 60 dog_fashion = null @@ -129,9 +146,16 @@ name = "warden's beret" desc = "A special beret with the Warden's insignia emblazoned on it. For wardens with class." icon_state = "wardenberet" - armor = list(melee = 40, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0) + armor = list(melee = 40, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 30, acid = 50) strip_delay = 60 /obj/item/clothing/head/beret/sec/navyofficer desc = "A special beret with the security insignia emblazoned on it. For officers with class." icon_state = "officerberet" + +//Curator +/obj/item/clothing/head/curator + name = "treasure hunter's fedora" + desc = "You got red text today kid, but it doesn't mean you have to like it." + icon_state = "curator" + armor = list(melee = 25, bullet = 5, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0, fire = 30, acid = 50) \ No newline at end of file diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm index c2bdde291a..089938bf2a 100644 --- a/code/modules/clothing/head/misc.dm +++ b/code/modules/clothing/head/misc.dm @@ -6,7 +6,7 @@ desc = "It's good to be emperor." item_state = "that" flags_inv = 0 - armor = list(melee = 30, bullet = 15, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0) + armor = list(melee = 30, bullet = 15, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 50, acid = 50) strip_delay = 80 /obj/item/clothing/head/powdered_wig @@ -24,7 +24,7 @@ /obj/item/clothing/head/canada name = "striped red tophat" - desc = " It feels sticky, like maple syrup - il se sent collante, comme le sirop d'érable" + desc = " It feels sticky, like maple syrup - il se sent collante, comme le sirop d'érable" icon_state = "canada" item_state = "canada" @@ -65,6 +65,14 @@ desc = "A plastic replica of a Syndicate agent's space helmet. You'll look just like a real murderous Syndicate agent in this! This is a toy, it is not made for use in space!" flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR +/obj/item/clothing/head/cueball + name = "cueball helmet" + desc = "A large, featureless white orb meant to be worn on your head. How do you even see out of this thing?" + icon_state = "cueball" + item_state="cueball" + flags_cover = HEADCOVERSEYES|HEADCOVERSMOUTH + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR + /obj/item/clothing/head/snowman name = "Snowman Head" desc = "A ball of white styrofoam. So festive." @@ -116,12 +124,9 @@ desc = "Yarr." icon_state = "pirate" item_state = "pirate" - dog_fashion = /datum/dog_fashion/head/pirate -/obj/item/clothing/head/hgpiratecap - name = "pirate hat" - desc = "Yarr." +/obj/item/clothing/head/pirate/captain icon_state = "hgpiratecap" item_state = "hgpiratecap" @@ -176,6 +181,7 @@ icon_state = "fedora" item_state = "fedora" desc = "A really cool hat if you're a mobster. A really lame hat if you're not." + pockets = /obj/item/weapon/storage/internal/pocket/small /obj/item/clothing/head/fedora/suicide_act(mob/user) if(user.gender == FEMALE) @@ -222,9 +228,9 @@ throwforce = 3 throw_speed = 2 throw_range = 5 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL attack_verb = list("warned", "cautioned", "smashed") - burn_state = FIRE_PROOF + resistance_flags = 0 /obj/item/clothing/head/santa name = "santa hat" @@ -260,4 +266,16 @@ name = "paper sack hat" desc = "A paper sack with crude holes cut out for eyes and a sketchy smile drawn on the front. Not creepy at all." icon_state = "papersack_smile" - flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS \ No newline at end of file + flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS + +/obj/item/clothing/head/crown + name = "crown" + desc = "A crown fit for a king, a petty king maybe." + icon_state = "crown" + armor = list(melee = 15, bullet = 0, laser = 0,energy = 15, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50) + resistance_flags = FIRE_PROOF + +/obj/item/clothing/head/crown/fancy + name = "magnificent crown" + desc = "A crown worn by only the highest emperors of the land." + icon_state = "fancycrown" diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm index 920620dbc5..9b5e1bcf61 100644 --- a/code/modules/clothing/head/misc_special.dm +++ b/code/modules/clothing/head/misc_special.dm @@ -21,23 +21,15 @@ // var/up = 0 flash_protect = 2 tint = 2 - armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) + armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 60) flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE actions_types = list(/datum/action/item_action/toggle) visor_flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE visor_flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH - burn_state = FIRE_PROOF + resistance_flags = FIRE_PROOF -/obj/item/clothing/head/welding/attack_self() - toggle() - - -/obj/item/clothing/head/welding/verb/toggle() - set category = "Object" - set name = "Adjust welding helmet" - set src in usr - - weldingvisortoggle() +/obj/item/clothing/head/welding/attack_self(mob/user) + weldingvisortoggle(user) /* @@ -51,19 +43,19 @@ item_color = "cakehat" hitsound = 'sound/weapons/tap.ogg' flags_inv = HIDEEARS|HIDEHAIR - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) brightness_on = 2 //luminosity when on flags_cover = HEADCOVERSEYES heat = 1000 /obj/item/clothing/head/hardhat/cakehat/process() var/turf/location = src.loc - if(istype(location, /mob/)) + if(ishuman(location)) var/mob/living/carbon/human/M = location - if(M.l_hand == src || M.r_hand == src || M.head == src) + if(M.is_holding(src) || M.head == src) location = M.loc - if (istype(location, /turf)) + if(isturf(location)) location.hotspot_expose(700, 1) /obj/item/clothing/head/hardhat/cakehat/turn_on() @@ -99,14 +91,6 @@ dog_fashion = /datum/dog_fashion/head/ushanka -/obj/item/clothing/head/hardhat/headlamp - name = "headlamp" - desc = "For giving people another reason to look away from you." - icon_state = "hardhat0_headlamp" - item_state = "hardhat0_headlamp" - item_color = "headlamp" - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) - /obj/item/clothing/head/ushanka/attack_self(mob/user) if(earflaps) src.icon_state = "ushankaup" @@ -129,7 +113,7 @@ item_state = "hardhat0_pumpkin" item_color = "pumpkin" flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) brightness_on = 2 //luminosity when on flags_cover = HEADCOVERSEYES @@ -140,7 +124,7 @@ name = "kitty ears" desc = "A pair of kitty ears. Meow!" icon_state = "kitty" - color = "#999" + color = "#999999" dog_fashion = /datum/dog_fashion/head/kitty @@ -151,7 +135,7 @@ /obj/item/clothing/head/kitty/update_icon(mob/living/carbon/human/user) if(istype(user)) - color = "#[user.hair_color]" + add_atom_colour("#[user.hair_color]", FIXED_COLOUR_PRIORITY) /obj/item/clothing/head/hardhat/reindeer @@ -161,7 +145,7 @@ item_state = "hardhat0_reindeer" item_color = "reindeer" flags_inv = 0 - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) brightness_on = 1 //luminosity when on dog_fashion = /datum/dog_fashion/head/reindeer diff --git a/code/modules/clothing/head/soft_caps.dm b/code/modules/clothing/head/soft_caps.dm index f66ada43ee..8153f978f2 100644 --- a/code/modules/clothing/head/soft_caps.dm +++ b/code/modules/clothing/head/soft_caps.dm @@ -120,7 +120,7 @@ desc = "It's a robust baseball hat in tasteful red colour." icon_state = "secsoft" item_color = "sec" - armor = list(melee = 30, bullet = 25, laser = 25, energy = 10, bomb = 25, bio = 0, rad = 0) + armor = list(melee = 30, bullet = 25, laser = 25, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 20, acid = 50) strip_delay = 60 dog_fashion = null diff --git a/code/modules/clothing/masks/boxing.dm b/code/modules/clothing/masks/boxing.dm index 92b871a8d6..ad632e1653 100644 --- a/code/modules/clothing/masks/boxing.dm +++ b/code/modules/clothing/masks/boxing.dm @@ -5,7 +5,7 @@ item_state = "balaclava" flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR visor_flags_inv = HIDEFACE|HIDEFACIALHAIR - w_class = 2 + w_class = WEIGHT_CLASS_SMALL actions_types = list(/datum/action/item_action/adjust) /obj/item/clothing/mask/balaclava/attack_self(mob/user) @@ -17,13 +17,13 @@ icon_state = "luchag" item_state = "luchag" flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR - w_class = 2 + w_class = WEIGHT_CLASS_SMALL /obj/item/clothing/mask/luchador/speechModification(message) if(copytext(message, 1, 2) != "*") - message = replacetext(message, "captain", "CAPITÁN") - message = replacetext(message, "station", "ESTACIÓN") - message = replacetext(message, "sir", "SEÑOR") + message = replacetext(message, "captain", "CAPITÃN") + message = replacetext(message, "station", "ESTACIÓN") + message = replacetext(message, "sir", "SEÑOR") message = replacetext(message, "the ", "el ") message = replacetext(message, "my ", "mi ") message = replacetext(message, "is ", "es ") @@ -52,4 +52,4 @@ name = "Rudos Mask" desc = "Worn by robust fighters who are willing to do anything to win." icon_state = "luchar" - item_state = "luchar" \ No newline at end of file + item_state = "luchar" diff --git a/code/modules/clothing/masks/breath.dm b/code/modules/clothing/masks/breath.dm index 324c969ff3..2fdb03374b 100644 --- a/code/modules/clothing/masks/breath.dm +++ b/code/modules/clothing/masks/breath.dm @@ -6,13 +6,13 @@ body_parts_covered = 0 flags = MASKINTERNALS visor_flags = MASKINTERNALS - w_class = 2 + w_class = WEIGHT_CLASS_SMALL gas_transfer_coefficient = 0.10 permeability_coefficient = 0.50 actions_types = list(/datum/action/item_action/adjust) flags_cover = MASKCOVERSMOUTH visor_flags_cover = MASKCOVERSMOUTH - burn_state = FIRE_PROOF + resistance_flags = 0 /obj/item/clothing/mask/breath/attack_self(mob/user) adjustmask(user) diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index 8b559e9220..a995441ff2 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -4,12 +4,12 @@ icon_state = "gas_alt" flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEFACIALHAIR - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL item_state = "gas_alt" gas_transfer_coefficient = 0.01 permeability_coefficient = 0.01 flags_cover = MASKCOVERSEYES | MASKCOVERSMOUTH - burn_state = FIRE_PROOF + resistance_flags = 0 // **** Welding gas mask **** @@ -20,23 +20,18 @@ materials = list(MAT_METAL=4000, MAT_GLASS=2000) flash_protect = 2 tint = 2 - armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) + armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 55) origin_tech = "materials=2;engineering=3" actions_types = list(/datum/action/item_action/toggle) flags_inv = HIDEEARS|HIDEEYES|HIDEFACE flags_cover = MASKCOVERSEYES visor_flags_inv = HIDEEYES visor_flags_cover = MASKCOVERSEYES + resistance_flags = FIRE_PROOF -/obj/item/clothing/mask/gas/welding/attack_self() - toggle() +/obj/item/clothing/mask/gas/welding/attack_self(mob/user) + weldingvisortoggle(user) -/obj/item/clothing/mask/gas/welding/verb/toggle() - set category = "Object" - set name = "Adjust welding mask" - set src in usr - - weldingvisortoggle() // ******************************************************************** @@ -46,7 +41,7 @@ desc = "A modernised version of the classic design, this mask will not only filter out toxins but it can also be connected to an air supply." icon_state = "plaguedoctor" item_state = "gas_mask" - armor = list(melee = 0, bullet = 0, laser = 2,energy = 2, bomb = 0, bio = 75, rad = 0) + armor = list(melee = 0, bullet = 0, laser = 2,energy = 2, bomb = 0, bio = 75, rad = 0, fire = 0, acid = 0) /obj/item/clothing/mask/gas/syndicate name = "syndicate mask" @@ -61,14 +56,11 @@ icon_state = "clown" item_state = "clown_hat" flags_cover = MASKCOVERSEYES - burn_state = FLAMMABLE + resistance_flags = FLAMMABLE actions_types = list(/datum/action/item_action/adjust) dog_fashion = /datum/dog_fashion/head/clown -/obj/item/clothing/mask/gas/clown_hat/attack_self(mob/user) - AltClick(user) - -/obj/item/clothing/mask/gas/clown_hat/AltClick(mob/living/user) +/obj/item/clothing/mask/gas/clown_hat/ui_action_click(mob/user) if(!istype(user) || user.incapacitated()) return @@ -96,7 +88,7 @@ icon_state = "sexyclown" item_state = "sexyclown" flags_cover = MASKCOVERSEYES - burn_state = FLAMMABLE + resistance_flags = FLAMMABLE /obj/item/clothing/mask/gas/mime name = "mime mask" @@ -105,7 +97,7 @@ icon_state = "mime" item_state = "mime" flags_cover = MASKCOVERSEYES - burn_state = FLAMMABLE + resistance_flags = FLAMMABLE actions_types = list(/datum/action/item_action/adjust) /obj/item/clothing/mask/gas/mime/attack_self(mob/user) @@ -135,7 +127,7 @@ icon_state = "monkeymask" item_state = "monkeymask" flags_cover = MASKCOVERSEYES - burn_state = FLAMMABLE + resistance_flags = FLAMMABLE /obj/item/clothing/mask/gas/sexymime name = "sexy mime mask" @@ -144,7 +136,7 @@ icon_state = "sexymime" item_state = "sexymime" flags_cover = MASKCOVERSEYES - burn_state = FLAMMABLE + resistance_flags = FLAMMABLE /obj/item/clothing/mask/gas/death_commando name = "Death Commando Mask" @@ -155,7 +147,7 @@ name = "cyborg visor" desc = "Beep boop." icon_state = "death" - burn_state = FLAMMABLE + resistance_flags = FLAMMABLE /obj/item/clothing/mask/gas/owl_mask name = "owl mask" @@ -163,98 +155,9 @@ icon_state = "owl" flags = MASKINTERNALS flags_cover = MASKCOVERSEYES - burn_state = FLAMMABLE + resistance_flags = FLAMMABLE /obj/item/clothing/mask/gas/carp name = "carp mask" desc = "Gnash gnash." icon_state = "carp_mask" - -/obj/item/clothing/mask/gas/yautja_fake - name = "ceremonial mask" - desc = "A beautifully designed metallic face mask. This one appears to be mostly decorative." - icon_state = "pred_mask" - flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEFACIALHAIR|HIDEHAIR - item_state = "pred_mask" - flags_cover = MASKCOVERSEYES | MASKCOVERSMOUTH - burn_state = LAVA_PROOF - var/list/options = list() - var/current_skin = "" - -/obj/item/clothing/mask/gas/yautja_fake/New() - options["Jawbone"] = "jaw" - options["Plain"] = "plain" - options["Horned"] = "horn" - options["Winged"] = "wing" - options["Cancel"] = null - -/obj/item/clothing/mask/gas/yautja_fake/examine(mob/user) - ..() - if(!current_skin) - user << "Alt-click [src.name] to reskin it." - -/obj/item/clothing/mask/gas/yautja_fake/proc/reskin_mask(mob/M) - var/choice = input(M,"Warning, you can only reskin your mask once!","Reskin Mask") in options - - if(src && choice && !current_skin && !M.incapacitated() && in_range(M,src)) - if(options[choice] == null) - return - current_skin = options[choice] - icon_state = "[initial(icon_state)]_[current_skin]" - item_state = "[initial(item_state)]_[current_skin]" - M << "Your mask is now skinned as \"[choice]\"." - update_icon() - M.regenerate_icons() - -/obj/item/clothing/mask/gas/yautja_fake/AltClick(mob/user) - ..() - if(user.incapacitated()) - user << "You can't do that right now!" - return - if(!current_skin && loc == user) - reskin_mask(user) - -/obj/item/clothing/mask/gas/yautja - name = "clan mask" - desc = "A beautifully designed metallic face mask. Both decorative and functional." - icon_state = "pred_mask" - flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEFACIALHAIR|HIDEHAIR - item_state = "pred_mask" - flags_cover = MASKCOVERSEYES | MASKCOVERSMOUTH - burn_state = LAVA_PROOF - armor = list(melee = 50, bullet = 50, laser = 50,energy = 50, bomb = 50, bio = 80, rad = 50) - var/list/options = list() - var/current_skin = "" - -/obj/item/clothing/mask/gas/yautja/New() - options["Jawbone"] = "jaw" - options["Plain"] = "plain" - options["Horned"] = "horn" - options["Winged"] = "wing" - options["Cancel"] = null - -/obj/item/clothing/mask/gas/yautja/proc/reskin_mask(mob/M) - var/choice = input(M,"Warning, you can only reskin your mask once!","Reskin Mask") in options - - if(src && choice && !current_skin && !M.incapacitated() && in_range(M,src)) - if(options[choice] == null) - return - current_skin = options[choice] - icon_state = "[initial(icon_state)]_[current_skin]" - item_state = "[initial(item_state)]_[current_skin]" - M << "Your mask is now skinned as \"[choice]\"." - update_icon() - M.regenerate_icons() - -/obj/item/clothing/mask/gas/yautja/AltClick(mob/user) - ..() - if(user.incapacitated()) - user << "You can't do that right now!" - return - if(!current_skin && loc == user) - reskin_mask(user) - -/obj/item/clothing/mask/gas/yautja/examine(mob/user) - ..() - if(!current_skin) - user << "Alt-click [src.name] to reskin it." diff --git a/code/modules/clothing/masks/hailer.dm b/code/modules/clothing/masks/hailer.dm index 74113da31e..cd4282a047 100644 --- a/code/modules/clothing/masks/hailer.dm +++ b/code/modules/clothing/masks/hailer.dm @@ -8,7 +8,7 @@ icon_state = "sechailer" flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS flags_inv = HIDEFACIALHAIR|HIDEFACE - w_class = 2 + w_class = WEIGHT_CLASS_SMALL visor_flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS visor_flags_inv = HIDEFACE flags_cover = MASKCOVERSMOUTH @@ -17,6 +17,7 @@ var/cooldown_special var/recent_uses = 0 var/broken_hailer = 0 + var/safety = TRUE /obj/item/clothing/mask/gas/sechailer/swat name = "\improper SWAT mask" @@ -56,20 +57,26 @@ else ..() -/obj/item/clothing/mask/gas/sechailer/ui_action_click(mob/user, actiontype) - if(actiontype == /datum/action/item_action/halt) +/obj/item/clothing/mask/gas/sechailer/ui_action_click(mob/user, action) + if(istype(action, /datum/action/item_action/halt)) halt() else adjustmask(user) /obj/item/clothing/mask/gas/sechailer/attack_self() halt() +/obj/item/clothing/mask/gas/sechailer/emag_act(mob/user as mob) + if(safety) + safety = FALSE + user << "You silently fry [src]'s vocal circuit with the cryptographic sequencer." + else + return /obj/item/clothing/mask/gas/sechailer/verb/halt() set category = "Object" set name = "HALT" set src in usr - if(!istype(usr, /mob/living)) + if(!isliving(usr)) return if(!can_use(usr)) return @@ -107,61 +114,66 @@ if(4) phrase = rand(12,18) // user has broke the restrictor, it will now only play shitcurity phrases - switch(phrase) //sets the properties of the chosen phrase - if(1) // good cop - phrase_text = "HALT! HALT! HALT!" - phrase_sound = "halt" - if(2) - phrase_text = "Stop in the name of the Law." - phrase_sound = "bobby" - if(3) - phrase_text = "Compliance is in your best interest." - phrase_sound = "compliance" - if(4) - phrase_text = "Prepare for justice!" - phrase_sound = "justice" - if(5) - phrase_text = "Running will only increase your sentence." - phrase_sound = "running" - if(6) // bad cop - phrase_text = "Don't move, Creep!" - phrase_sound = "dontmove" - if(7) - phrase_text = "Down on the floor, Creep!" - phrase_sound = "floor" - if(8) - phrase_text = "Dead or alive you're coming with me." - phrase_sound = "robocop" - if(9) - phrase_text = "God made today for the crooks we could not catch yesterday." - phrase_sound = "god" - if(10) - phrase_text = "Freeze, Scum Bag!" - phrase_sound = "freeze" - if(11) - phrase_text = "Stop right there, criminal scum!" - phrase_sound = "imperial" - if(12) // LA-PD - phrase_text = "Stop or I'll bash you." - phrase_sound = "bash" - if(13) - phrase_text = "Go ahead, make my day." - phrase_sound = "harry" - if(14) - phrase_text = "Stop breaking the law, ass hole." - phrase_sound = "asshole" - if(15) - phrase_text = "You have the right to shut the fuck up." - phrase_sound = "stfu" - if(16) - phrase_text = "Shut up crime!" - phrase_sound = "shutup" - if(17) - phrase_text = "Face the wrath of the golden bolt." - phrase_sound = "super" - if(18) - phrase_text = "I am, the LAW!" - phrase_sound = "dredd" + if(!safety) + phrase_text = "FUCK YOUR CUNT YOU SHIT EATING COCKSTORM AND EAT A DONG FUCKING ASS RAMMING SHIT FUCK EAT PENISES IN YOUR FUCK FACE AND SHIT OUT ABORTIONS OF FUCK AND POO AND SHIT IN YOUR ASS YOU COCK FUCK SHIT MONKEY FUCK ASS WANKER FROM THE DEPTHS OF SHIT." + phrase_sound = "emag" + else + + switch(phrase) //sets the properties of the chosen phrase + if(1) // good cop + phrase_text = "HALT! HALT! HALT!" + phrase_sound = "halt" + if(2) + phrase_text = "Stop in the name of the Law." + phrase_sound = "bobby" + if(3) + phrase_text = "Compliance is in your best interest." + phrase_sound = "compliance" + if(4) + phrase_text = "Prepare for justice!" + phrase_sound = "justice" + if(5) + phrase_text = "Running will only increase your sentence." + phrase_sound = "running" + if(6) // bad cop + phrase_text = "Don't move, Creep!" + phrase_sound = "dontmove" + if(7) + phrase_text = "Down on the floor, Creep!" + phrase_sound = "floor" + if(8) + phrase_text = "Dead or alive you're coming with me." + phrase_sound = "robocop" + if(9) + phrase_text = "God made today for the crooks we could not catch yesterday." + phrase_sound = "god" + if(10) + phrase_text = "Freeze, Scum Bag!" + phrase_sound = "freeze" + if(11) + phrase_text = "Stop right there, criminal scum!" + phrase_sound = "imperial" + if(12) // LA-PD + phrase_text = "Stop or I'll bash you." + phrase_sound = "bash" + if(13) + phrase_text = "Go ahead, make my day." + phrase_sound = "harry" + if(14) + phrase_text = "Stop breaking the law, ass hole." + phrase_sound = "asshole" + if(15) + phrase_text = "You have the right to shut the fuck up." + phrase_sound = "stfu" + if(16) + phrase_text = "Shut up crime!" + phrase_sound = "shutup" + if(17) + phrase_text = "Face the wrath of the golden bolt." + phrase_sound = "super" + if(18) + phrase_text = "I am, the LAW!" + phrase_sound = "dredd" usr.audible_message("[usr]'s Compli-o-Nator: [phrase_text]") playsound(src.loc, "sound/voice/complionator/[phrase_sound].ogg", 100, 0, 4) diff --git a/code/modules/clothing/masks/miscellaneous.dm b/code/modules/clothing/masks/miscellaneous.dm index 93ac49fbeb..46de85d61a 100644 --- a/code/modules/clothing/masks/miscellaneous.dm +++ b/code/modules/clothing/masks/miscellaneous.dm @@ -4,7 +4,7 @@ icon_state = "muzzle" item_state = "blindfold" flags_cover = MASKCOVERSMOUTH - w_class = 2 + w_class = WEIGHT_CLASS_SMALL gas_transfer_coefficient = 0.90 put_on_delay = 20 @@ -21,14 +21,14 @@ desc = "A sterile mask designed to help prevent the spread of diseases." icon_state = "sterile" item_state = "sterile" - w_class = 1 + w_class = WEIGHT_CLASS_TINY flags_inv = HIDEFACE flags_cover = MASKCOVERSMOUTH visor_flags_inv = HIDEFACE visor_flags_cover = MASKCOVERSMOUTH gas_transfer_coefficient = 0.90 permeability_coefficient = 0.01 - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 25, rad = 0) + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 25, rad = 0, fire = 0, acid = 0) actions_types = list(/datum/action/item_action/adjust) /obj/item/clothing/mask/surgical/attack_self(mob/user) @@ -40,13 +40,18 @@ icon_state = "fake-moustache" flags_inv = HIDEFACE +/obj/item/clothing/mask/joy + name = "joy mask" + desc = "Express your happiness or hide your sorrows with this laughing face with crying tears of joy cutout." + icon_state = "joy" + /obj/item/clothing/mask/pig name = "pig mask" desc = "A rubber pig mask." icon_state = "pig" item_state = "pig" flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR - w_class = 2 + w_class = WEIGHT_CLASS_SMALL actions_types = list(/datum/action/item_action/toggle_voice_box) var/voicechange = 0 @@ -65,7 +70,7 @@ icon_state = "pig" item_state = "pig" flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR - w_class = 2 + w_class = WEIGHT_CLASS_SMALL var/voicechange = 1 /obj/item/clothing/mask/spig/speechModification(message) @@ -80,7 +85,7 @@ icon_state = "cowmask" item_state = "cowmask" flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR - w_class = 2 + w_class = WEIGHT_CLASS_SMALL var/voicechange = 1 /obj/item/clothing/mask/cowmask/speechModification(message) @@ -94,7 +99,7 @@ icon_state = "horsehead" item_state = "horsehead" flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDEEYES|HIDEEARS - w_class = 2 + w_class = WEIGHT_CLASS_SMALL var/voicechange = 1 /obj/item/clothing/mask/horsehead/speechModification(message) @@ -102,10 +107,60 @@ message = pick("NEEIIGGGHHHH!", "NEEEIIIIGHH!", "NEIIIGGHH!", "HAAWWWWW!", "HAAAWWW!") return message +/obj/item/clothing/mask/rat + name = "rat mask" + desc = "A mask made of soft vinyl and latex, representing the head of a rat." + icon_state = "rat" + item_state = "rat" + flags_inv = HIDEFACE + flags_cover = MASKCOVERSMOUTH + +/obj/item/clothing/mask/rat/fox + name = "fox mask" + desc = "A mask made of soft vinyl and latex, representing the head of a fox." + icon_state = "fox" + item_state = "fox" + +/obj/item/clothing/mask/rat/bee + name = "bee mask" + desc = "A mask made of soft vinyl and latex, representing the head of a bee." + icon_state = "bee" + item_state = "bee" + +/obj/item/clothing/mask/rat/bear + name = "bear mask" + desc = "A mask made of soft vinyl and latex, representing the head of a bear." + icon_state = "bear" + item_state = "bear" + +/obj/item/clothing/mask/rat/bat + name = "bat mask" + desc = "A mask made of soft vinyl and latex, representing the head of a bat." + icon_state = "bat" + item_state = "bat" + +/obj/item/clothing/mask/rat/raven + name = "raven mask" + desc = "A mask made of soft vinyl and latex, representing the head of a raven." + icon_state = "raven" + item_state = "raven" + +/obj/item/clothing/mask/rat/jackal + name = "jackal mask" + desc = "A mask made of soft vinyl and latex, representing the head of a jackal." + icon_state = "jackal" + item_state = "jackal" + +/obj/item/clothing/mask/rat/tribal + name = "tribal mask" + desc = "A mask carved out of wood, detailed carefully by hand." + icon_state = "bumba" + item_state = "bumba" + /obj/item/clothing/mask/bandana name = "botany bandana" desc = "A fine bandana with nanotech lining and a hydroponics pattern." - w_class = 1 + w_class = WEIGHT_CLASS_TINY flags_cover = MASKCOVERSMOUTH flags_inv = HIDEFACE|HIDEFACIALHAIR visor_flags_inv = HIDEFACE|HIDEFACIALHAIR diff --git a/code/modules/clothing/neck/ties.dm b/code/modules/clothing/neck/ties.dm new file mode 100644 index 0000000000..7c5086a999 --- /dev/null +++ b/code/modules/clothing/neck/ties.dm @@ -0,0 +1,185 @@ +/obj/item/clothing/neck/tie + name = "tie" + desc = "A neosilk clip-on tie." + icon = 'icons/obj/clothing/neck.dmi' + icon_state = "bluetie" + item_state = "" //no inhands + item_color = "bluetie" + w_class = WEIGHT_CLASS_SMALL + +/obj/item/clothing/neck/tie/blue + name = "blue tie" + icon_state = "bluetie" + item_color = "bluetie" + +/obj/item/clothing/neck/tie/red + name = "red tie" + icon_state = "redtie" + item_color = "redtie" + +/obj/item/clothing/neck/tie/black + name = "black tie" + icon_state = "blacktie" + item_color = "blacktie" + +/obj/item/clothing/neck/tie/horrible + name = "horrible tie" + desc = "A neosilk clip-on tie. This one is disgusting." + icon_state = "horribletie" + item_color = "horribletie" + +/obj/item/clothing/neck/stethoscope + name = "stethoscope" + desc = "An outdated medical apparatus for listening to the sounds of the human body. It also makes you look like you know what you're doing." + icon_state = "stethoscope" + item_color = "stethoscope" + +/obj/item/clothing/neck/stethoscope/attack(mob/living/carbon/human/M, mob/living/user) + if(ishuman(M) && isliving(user)) + if(user.a_intent == INTENT_HELP) + var/body_part = parse_zone(user.zone_selected) + if(body_part) + var/their = "their" + switch(M.gender) + if(MALE) + their = "his" + if(FEMALE) + their = "her" + + var/sound = "pulse" + var/sound_strength + + if(M.stat == DEAD || (M.status_flags&FAKEDEATH)) + sound_strength = "cannot hear" + sound = "anything" + else + sound_strength = "hear a weak" + switch(body_part) + if("chest") + if(M.oxyloss < 50) + sound_strength = "hear a healthy" + sound = "pulse and respiration" + if("eyes","mouth") + sound_strength = "cannot hear" + sound = "anything" + else + sound_strength = "hear a weak" + + user.visible_message("[user] places [src] against [M]'s [body_part] and listens attentively.", "You place [src] against [their] [body_part]. You [sound_strength] [sound].") + return + return ..(M,user) + +/////////// +//SCARVES// +/////////// + +/obj/item/clothing/neck/scarf //Default white color, same functionality as beanies. + name = "white scarf" + icon_state = "scarf" + desc = "A stylish scarf. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their necks." + item_color = "scarf" + dog_fashion = /datum/dog_fashion/head + +/obj/item/clothing/neck/scarf/black + name = "black scarf" + icon_state = "scarf" + color = "#4A4A4B" //Grey but it looks black + +/obj/item/clothing/neck/scarf/red + name = "red scarf" + icon_state = "scarf" + color = "#D91414" //Red + +/obj/item/clothing/neck/scarf/green + name = "green scarf" + icon_state = "scarf" + color = "#5C9E54" //Green + +/obj/item/clothing/neck/scarf/darkblue + name = "dark blue scarf" + icon_state = "scarf" + color = "#1E85BC" //Blue + +/obj/item/clothing/neck/scarf/purple + name = "purple scarf" + icon_state = "scarf" + color = "#9557C5" //purple + +/obj/item/clothing/neck/scarf/yellow + name = "yellow scarf" + icon_state = "scarf" + color = "#E0C14F" //Yellow + +/obj/item/clothing/neck/scarf/orange + name = "orange scarf" + icon_state = "scarf" + color = "#C67A4B" //orange + +/obj/item/clothing/neck/scarf/cyan + name = "cyan scarf" + icon_state = "scarf" + color = "#54A3CE" //Cyan + + +//Striped scarves get their own icons + +/obj/item/clothing/neck/scarf/zebra + name = "zebra scarf" + icon_state = "zebrascarf" + item_color = "zebrascarf" + +/obj/item/clothing/neck/scarf/christmas + name = "christmas scarf" + icon_state = "christmasscarf" + item_color = "christmasscarf" + +//The three following scarves don't have the scarf subtype +//This is because Ian can equip anything from that subtype +//However, these 3 don't have corgi versions of their sprites +/obj/item/clothing/neck/stripedredscarf + name = "striped red scarf" + icon_state = "stripedredscarf" + item_color = "stripedredscarf" + +/obj/item/clothing/neck/stripedgreenscarf + name = "striped green scarf" + icon_state = "stripedgreenscarf" + item_color = "stripedgreenscarf" + +/obj/item/clothing/neck/stripedbluescarf + name = "striped blue scarf" + icon_state = "stripedbluescarf" + item_color = "stripedbluescarf" + +/obj/item/clothing/neck/petcollar //don't really wear this though please c'mon seriously guys + name = "pet collar" + desc = "It's for pets. Though you probably could wear it yourself, you'd doubtless be the subject of ridicule." + icon_state = "petcollar" + item_color = "petcollar" + var/tagname = null + +/obj/item/clothing/neck/petcollar/attack_self(mob/user) + tagname = copytext(sanitize(input(user, "Would you like to change the name on the tag?", "Name your new pet", "Spot") as null|text),1,MAX_NAME_LEN) + name = "[initial(name)] - [tagname]" + +////////////// +//DOPE BLING// +////////////// + +/obj/item/clothing/neck/necklace/dope + name = "gold necklace" + desc = "Damn, it feels good to be a gangster." + icon = 'icons/obj/clothing/ties.dmi' + icon_state = "bling" + item_color = "bling" + +//////////////// +//OONGA BOONGA// +//////////////// + +/obj/item/clothing/neck/talisman + name = "bone talisman" + desc = "A hunter's talisman, some say the old gods smile on those who wear it." + icon_state = "talisman" + item_color = "talisman" + armor = list(melee = 5, bullet = 5, laser = 5, energy = 5, bomb = 20, bio = 20, rad = 5, fire = 0, acid = 25) \ No newline at end of file diff --git a/code/modules/clothing/outfits/ert.dm b/code/modules/clothing/outfits/ert.dm index a66972bd74..3e82a2e02b 100644 --- a/code/modules/clothing/outfits/ert.dm +++ b/code/modules/clothing/outfits/ert.dm @@ -11,9 +11,7 @@ return var/obj/item/weapon/implant/mindshield/L = new/obj/item/weapon/implant/mindshield(H) - L.imp_in = H - L.implanted = 1 - H.sec_hud_set_implants() + L.implant(H, null, 1) var/obj/item/device/radio/R = H.ears R.set_frequency(CENTCOM_FREQ) @@ -28,13 +26,13 @@ id = /obj/item/weapon/card/id/ert suit = /obj/item/clothing/suit/space/hardsuit/ert - glasses = /obj/item/clothing/glasses/thermal/eyepatch + glasses = /obj/item/clothing/glasses/hud/security/sunglasses back = /obj/item/weapon/storage/backpack/captain belt = /obj/item/weapon/storage/belt/security/full backpack_contents = list(/obj/item/weapon/storage/box/engineer=1,\ /obj/item/weapon/melee/baton/loaded=1,\ /obj/item/clothing/mask/gas/sechailer=1,\ - /obj/item/weapon/gun/energy/gun=1) + /obj/item/weapon/gun/energy/e_gun=1) l_pocket = /obj/item/weapon/switchblade /datum/outfit/ert/commander/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) @@ -42,7 +40,6 @@ if(visualsOnly) return - var/obj/item/device/radio/R = H.ears R.keyslot = new /obj/item/device/encryptionkey/heads/captain R.recalculateChannels() @@ -50,6 +47,7 @@ /datum/outfit/ert/commander/alert name = "ERT Commander - High Alert" + glasses = /obj/item/clothing/glasses/thermal/eyepatch backpack_contents = list(/obj/item/weapon/storage/box/engineer=1,\ /obj/item/weapon/melee/baton/loaded=1,\ /obj/item/clothing/mask/gas/sechailer/swat=1,\ @@ -67,9 +65,9 @@ backpack_contents = list(/obj/item/weapon/storage/box/engineer=1,\ /obj/item/weapon/storage/box/handcuffs=1,\ /obj/item/clothing/mask/gas/sechailer=1,\ - /obj/item/weapon/gun/energy/gun=1,\ + /obj/item/weapon/gun/energy/e_gun=1,\ /obj/item/weapon/melee/baton/loaded=1,\ - /obj/item/weapon/gun/energy/gun/advtaser=1) + /obj/item/weapon/gun/energy/e_gun/advtaser=1) /datum/outfit/ert/security/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) ..() @@ -97,13 +95,13 @@ id = /obj/item/weapon/card/id/ert/Medical suit = /obj/item/clothing/suit/space/hardsuit/ert/med glasses = /obj/item/clothing/glasses/hud/health - back = /obj/item/weapon/storage/backpack/medic + back = /obj/item/weapon/storage/backpack/satchel/med belt = /obj/item/weapon/storage/belt/medical r_hand = /obj/item/weapon/storage/firstaid/regular backpack_contents = list(/obj/item/weapon/storage/box/engineer=1,\ /obj/item/weapon/melee/baton/loaded=1,\ /obj/item/clothing/mask/gas/sechailer=1,\ - /obj/item/weapon/gun/energy/gun=1,\ + /obj/item/weapon/gun/energy/e_gun=1,\ /obj/item/weapon/reagent_containers/hypospray/combat=1,\ /obj/item/weapon/gun/medbeam=1) @@ -140,7 +138,7 @@ backpack_contents = list(/obj/item/weapon/storage/box/engineer=1,\ /obj/item/weapon/melee/baton/loaded=1,\ /obj/item/clothing/mask/gas/sechailer=1,\ - /obj/item/weapon/gun/energy/gun=1,\ + /obj/item/weapon/gun/energy/e_gun=1,\ /obj/item/weapon/rcd/loaded=1) /datum/outfit/ert/engineer/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) @@ -171,9 +169,9 @@ gloves = /obj/item/clothing/gloves/color/black ears = /obj/item/device/radio/headset/headset_cent glasses = /obj/item/clothing/glasses/sunglasses - belt = /obj/item/weapon/gun/energy/gun + belt = /obj/item/weapon/gun/energy/e_gun l_pocket = /obj/item/weapon/pen - back = /obj/item/weapon/storage/backpack/satchel_norm + back = /obj/item/weapon/storage/backpack/satchel r_pocket = /obj/item/device/pda/heads l_hand = /obj/item/weapon/clipboard id = /obj/item/weapon/card/id @@ -193,4 +191,4 @@ W.access += access_weapons W.assignment = "Centcom Official" W.registered_name = H.real_name - W.update_label() \ No newline at end of file + W.update_label() diff --git a/code/modules/clothing/outfits/standard.dm b/code/modules/clothing/outfits/standard.dm index e97666f16d..2f7fcc99ef 100644 --- a/code/modules/clothing/outfits/standard.dm +++ b/code/modules/clothing/outfits/standard.dm @@ -31,7 +31,7 @@ suit = /obj/item/clothing/suit/det_suit glasses = /obj/item/clothing/glasses/thermal/monocle head = /obj/item/clothing/head/det_hat - r_hand = /obj/item/weapon/gun/projectile + r_hand = /obj/item/weapon/gun/ballistic l_hand = null r_pocket = /obj/item/ammo_box/c10mm @@ -52,7 +52,7 @@ if(visualsOnly) return - var/obj/item/weapon/reagent_containers/glass/bucket/bucket = H.l_hand + var/obj/item/weapon/reagent_containers/glass/bucket/bucket = H.get_item_for_held_index(1) bucket.reagents.add_reagent("water",70) /datum/outfit/laser_tag @@ -133,9 +133,10 @@ r_hand = /obj/item/weapon/twohanded/fireaxe /datum/outfit/psycho/post_equip(mob/living/carbon/human/H) - for(var/obj/item/carried_item in H.contents) - if(!istype(carried_item, /obj/item/weapon/implant))//If it's not an implant. - carried_item.add_mob_blood(H)//Oh yes, there will be blood... + for(var/obj/item/carried_item in H.get_equipped_items()) + carried_item.add_mob_blood(H)//Oh yes, there will be blood... + for(var/obj/item/I in H.held_items) + I.add_mob_blood(H) H.regenerate_icons() /datum/outfit/assassin @@ -159,13 +160,13 @@ return //Could use a type - var/obj/item/weapon/storage/secure/briefcase/sec_briefcase = H.l_hand + var/obj/item/weapon/storage/secure/briefcase/sec_briefcase = H.get_item_for_held_index(1) for(var/obj/item/briefcase_item in sec_briefcase) qdel(briefcase_item) - for(var/i=3, i>0, i--) + for(var/i = 3 to 0 step -1) sec_briefcase.handle_item_insertion(new /obj/item/stack/spacecash/c1000,1) sec_briefcase.handle_item_insertion(new /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow,1) - sec_briefcase.handle_item_insertion(new /obj/item/weapon/gun/projectile/revolver/mateba,1) + sec_briefcase.handle_item_insertion(new /obj/item/weapon/gun/ballistic/revolver/mateba,1) sec_briefcase.handle_item_insertion(new /obj/item/ammo_box/a357,1) sec_briefcase.handle_item_insertion(new /obj/item/weapon/grenade/plastic/x4,1) @@ -191,10 +192,10 @@ glasses = /obj/item/clothing/glasses/eyepatch mask = /obj/item/clothing/mask/cigarette/cigar/cohiba head = /obj/item/clothing/head/centhat - belt = /obj/item/weapon/gun/projectile/revolver/mateba + belt = /obj/item/weapon/gun/ballistic/revolver/mateba r_pocket = /obj/item/weapon/lighter l_pocket = /obj/item/ammo_box/a357 - back = /obj/item/weapon/storage/backpack/satchel + back = /obj/item/weapon/storage/backpack/satchel/leather id = /obj/item/weapon/card/id /datum/outfit/centcom_commander/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) @@ -222,7 +223,7 @@ head = /obj/item/clothing/head/helmet/space/beret belt = /obj/item/weapon/gun/energy/pulse/pistol/m1911 r_pocket = /obj/item/weapon/lighter - back = /obj/item/weapon/storage/backpack/satchel + back = /obj/item/weapon/storage/backpack/satchel/leather id = /obj/item/weapon/card/id /datum/outfit/spec_ops/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) @@ -246,7 +247,7 @@ uniform = /obj/item/clothing/under/color/lightpurple suit = /obj/item/clothing/suit/wizrobe - shoes = /obj/item/clothing/shoes/sandal + shoes = /obj/item/clothing/shoes/sandal/magic ears = /obj/item/device/radio/headset head = /obj/item/clothing/head/wizard r_pocket = /obj/item/weapon/teleportation_scroll @@ -272,14 +273,14 @@ name = "Soviet Admiral" uniform = /obj/item/clothing/under/soviet - head = /obj/item/clothing/head/hgpiratecap + head = /obj/item/clothing/head/pirate/captain shoes = /obj/item/clothing/shoes/combat gloves = /obj/item/clothing/gloves/combat ears = /obj/item/device/radio/headset/headset_cent glasses = /obj/item/clothing/glasses/thermal/eyepatch - suit = /obj/item/clothing/suit/hgpirate - back = /obj/item/weapon/storage/backpack/satchel - belt = /obj/item/weapon/gun/projectile/revolver/mateba + suit = /obj/item/clothing/suit/pirate/captain + back = /obj/item/weapon/storage/backpack/satchel/leather + belt = /obj/item/weapon/gun/ballistic/revolver/mateba id = /obj/item/weapon/card/id @@ -304,7 +305,7 @@ gloves = /obj/item/clothing/gloves/color/black ears = /obj/item/device/radio/headset glasses = /obj/item/clothing/glasses/sunglasses - r_hand = /obj/item/weapon/gun/projectile/automatic/tommygun + r_hand = /obj/item/weapon/gun/ballistic/automatic/tommygun id = /obj/item/weapon/card/id /datum/outfit/mobster/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) @@ -328,7 +329,7 @@ name = "Death Commando" uniform = /obj/item/clothing/under/color/green - suit = /obj/item/clothing/suit/space/hardsuit/deathsquad + suit = /obj/item/clothing/suit/space/hardsuit/shielded/swat shoes = /obj/item/clothing/shoes/combat/swat gloves = /obj/item/clothing/gloves/combat mask = /obj/item/clothing/mask/gas/sechailer/swat @@ -337,7 +338,7 @@ l_pocket = /obj/item/weapon/melee/energy/sword/saber r_pocket = /obj/item/weapon/shield/energy suit_store = /obj/item/weapon/tank/internals/emergency_oxygen - belt = /obj/item/weapon/gun/projectile/revolver/mateba + belt = /obj/item/weapon/gun/ballistic/revolver/mateba r_hand = /obj/item/weapon/gun/energy/pulse/loyalpin id = /obj/item/weapon/card/id ears = /obj/item/device/radio/headset/headset_cent/alt @@ -358,9 +359,7 @@ R.freqlock = 1 var/obj/item/weapon/implant/mindshield/L = new/obj/item/weapon/implant/mindshield(H)//Here you go Deuryn - L.imp_in = H - L.implanted = 1 - H.sec_hud_set_implants() + L.implant(H, null, 1) var/obj/item/weapon/card/id/W = H.wear_id diff --git a/code/modules/clothing/shoes/magboots.dm b/code/modules/clothing/shoes/magboots.dm index f6022ec2bd..da3df123b2 100644 --- a/code/modules/clothing/shoes/magboots.dm +++ b/code/modules/clothing/shoes/magboots.dm @@ -8,7 +8,7 @@ actions_types = list(/datum/action/item_action/toggle) strip_delay = 70 put_on_delay = 70 - burn_state = FIRE_PROOF + resistance_flags = FIRE_PROOF origin_tech = "materials=3;magnets=4;engineering=4" /obj/item/clothing/shoes/magboots/verb/toggle() @@ -31,7 +31,7 @@ icon_state = "[magboot_state][magpulse]" user << "You [magpulse ? "enable" : "disable"] the mag-pulse traction system." user.update_inv_shoes() //so our mob-overlays update - user.update_gravity(user.mob_has_gravity()) + user.update_gravity(user.has_gravity()) for(var/X in actions) var/datum/action/A = X A.UpdateButtonIcon() @@ -51,6 +51,7 @@ magboot_state = "advmag" slowdown_active = SHOES_SLOWDOWN origin_tech = null + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF /obj/item/clothing/shoes/magboots/syndie desc = "Reverse-engineered magnetic boots that have a heavy magnetic pull. Property of Gorlex Marauders." diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index 638e70fad5..326d50942c 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -1,7 +1,7 @@ /obj/item/clothing/shoes/proc/step_action() //this was made to rewrite clown shoes squeaking /obj/item/clothing/shoes/suicide_act(mob/user) - user.visible_message("[user] is bashing their own head in with [src]! Ain't that a kick in the head?") + user.visible_message("[user] is bashing [user.p_their()] own head in with [src]! Ain't that a kick in the head?") for(var/i = 0, i < 3, i++) sleep(3) playsound(user, 'sound/weapons/genhit2.ogg', 50, 1) @@ -17,17 +17,17 @@ desc = "High speed, low drag combat boots." icon_state = "jackboots" item_state = "jackboots" - armor = list(melee = 25, bullet = 25, laser = 25, energy = 25, bomb = 50, bio = 10, rad = 0) + armor = list(melee = 25, bullet = 25, laser = 25, energy = 25, bomb = 50, bio = 10, rad = 0, fire = 70, acid = 50) strip_delay = 70 - burn_state = FIRE_PROOF - can_hold_items = 1 + resistance_flags = 0 + pockets = /obj/item/weapon/storage/internal/pocket/shoes /obj/item/clothing/shoes/combat/swat //overpowered boots for death squads name = "\improper SWAT boots" desc = "High speed, no drag combat boots." permeability_coefficient = 0.01 flags = NOSLIP - armor = list(melee = 40, bullet = 30, laser = 25, energy = 25, bomb = 50, bio = 30, rad = 30) + 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." @@ -35,12 +35,17 @@ icon_state = "wizard" strip_delay = 50 put_on_delay = 50 - unacidable = 1 /obj/item/clothing/shoes/sandal/marisa desc = "A pair of magic black shoes." name = "magic shoes" icon_state = "black" + resistance_flags = FIRE_PROOF | ACID_PROOF + +/obj/item/clothing/shoes/sandal/magic + name = "magical sandals" + desc = "A pair of sandals imbued with magic" + resistance_flags = FIRE_PROOF | ACID_PROOF /obj/item/clothing/shoes/galoshes desc = "A pair of yellow rubber boots, designed to prevent slipping on wet surfaces." @@ -51,7 +56,8 @@ slowdown = SHOES_SLOWDOWN+1 strip_delay = 50 put_on_delay = 50 - burn_state = FIRE_PROOF + resistance_flags = 0 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 40, acid = 75) /obj/item/clothing/shoes/galoshes/dry name = "absorbent galoshes" @@ -72,8 +78,7 @@ slowdown = SHOES_SLOWDOWN+1 item_color = "clown" var/footstep = 1 //used for squeeks whilst walking - can_hold_items = 1 - valid_held_items = list(/obj/item/weapon/bikehorn) + pockets = /obj/item/weapon/storage/internal/pocket/shoes/clown /obj/item/clothing/shoes/clown_shoes/step_action() if(footstep > 1) @@ -90,8 +95,8 @@ item_color = "hosred" strip_delay = 50 put_on_delay = 50 - burn_state = FIRE_PROOF - can_hold_items = 1 + resistance_flags = 0 + pockets = /obj/item/weapon/storage/internal/pocket/shoes /obj/item/clothing/shoes/jackboots/fast slowdown = -1 @@ -105,7 +110,7 @@ min_cold_protection_temperature = SHOES_MIN_TEMP_PROTECT heat_protection = FEET|LEGS max_heat_protection_temperature = SHOES_MAX_TEMP_PROTECT - can_hold_items = 1 + pockets = /obj/item/weapon/storage/internal/pocket/shoes /obj/item/clothing/shoes/workboots name = "work boots" @@ -114,13 +119,13 @@ item_state = "jackboots" strip_delay = 40 put_on_delay = 40 - can_hold_items = 1 + pockets = /obj/item/weapon/storage/internal/pocket/shoes /obj/item/clothing/shoes/workboots/mining name = "mining boots" desc = "Steel-toed mining boots for mining in hazardous environments. Very good at keeping toes uncrushed." icon_state = "explorer" - burn_state = FIRE_PROOF + resistance_flags = FIRE_PROOF /obj/item/clothing/shoes/cult name = "nar-sian invoker boots" @@ -161,11 +166,50 @@ desc = "A pair of costume boots fashioned after bird talons." icon_state = "griffinboots" item_state = "griffinboots" - can_hold_items = 1 + pockets = /obj/item/weapon/storage/internal/pocket/shoes -/obj/item/clothing/shoes/yautja_fake - name = "clan greaves" - desc = "A pair of armored, perfectly balanced boots. Perfect for running through the jungle or the central primary hallway." - icon_state = "yautjaboots" - item_state = "yautjaboots" - can_hold_items = 1 \ No newline at end of file +/obj/item/clothing/shoes/bhop + name = "jump boots" + desc = "A specialized pair of combat boots with a built-in propulsion system for rapid foward movement." + icon_state = "jetboots" + item_state = "jetboots" + item_color = "hosred" + resistance_flags = FIRE_PROOF + pockets = /obj/item/weapon/storage/internal/pocket/shoes + actions_types = list(/datum/action/item_action/bhop) + var/jumpdistance = 5 //-1 from to see the actual distance, e.g 4 goes over 3 tiles + var/recharging_rate = 60 //default 6 seconds between each dash + var/recharging_time = 0 //time until next dash + var/jumping = FALSE //are we mid-jump? + +/obj/item/clothing/shoes/bhop/ui_action_click(mob/user, action) + if(!isliving(usr)) + return + + if(jumping) + return + + if(recharging_time > world.time) + usr << "The boot's internal propulsion needs to recharge still!" + return + + var/atom/target = get_edge_target_turf(usr, usr.dir) //gets the user's direction + + jumping = TRUE + playsound(src.loc, 'sound/effects/stealthoff.ogg', 50, 1, 1) + usr.visible_message("[usr] dashes foward into the air!") + usr.throw_at(target,jumpdistance,1, spin=0, diagonals_first = 1) + jumping = FALSE + recharging_time = world.time + recharging_rate + +/obj/item/clothing/shoes/singery + name = "yellow performer's boots" + desc = "These boots were made for dancing." + icon_state = "ysing" + put_on_delay = 50 + +/obj/item/clothing/shoes/singerb + name = "blue performer's boots" + desc = "These boots were made for dancing." + icon_state = "bsing" + put_on_delay = 50 \ No newline at end of file diff --git a/code/modules/clothing/spacesuits/chronosuit.dm b/code/modules/clothing/spacesuits/chronosuit.dm index 3e6a828065..847154cc6e 100644 --- a/code/modules/clothing/spacesuits/chronosuit.dm +++ b/code/modules/clothing/spacesuits/chronosuit.dm @@ -4,12 +4,13 @@ icon_state = "chronohelmet" item_state = "chronohelmet" slowdown = 1 - armor = list(melee = 60, bullet = 30/*bullet through the visor*/, laser = 60, energy = 60, bomb = 30, bio = 90, rad = 90) + armor = list(melee = 60, bullet = 30/*bullet through the visor*/, laser = 60, energy = 60, bomb = 30, bio = 90, rad = 90, fire = 100, acid = 100) + resistance_flags = FIRE_PROOF | ACID_PROOF var/obj/item/clothing/suit/space/chronos/suit = null /obj/item/clothing/head/helmet/space/chronos/dropped() if(suit) - suit.deactivate() + suit.deactivate(1, 1) ..() /obj/item/clothing/head/helmet/space/chronos/Destroy() @@ -19,21 +20,23 @@ /obj/item/clothing/suit/space/chronos name = "Chronosuit" - desc = "An advanced spacesuit equipped with teleportation and anti-compression technology" + desc = "An advanced spacesuit equipped with time-bluespace teleportation and anti-compression technology" icon_state = "chronosuit" item_state = "chronosuit" actions_types = list(/datum/action/item_action/toggle) - armor = list(melee = 60, bullet = 60, laser = 60, energy = 60, bomb = 30, bio = 90, rad = 90) + armor = list(melee = 60, bullet = 60, laser = 60, energy = 60, bomb = 30, bio = 90, rad = 90, fire = 100, acid = 1000) + resistance_flags = FIRE_PROOF | ACID_PROOF var/list/chronosafe_items = list(/obj/item/weapon/chrono_eraser, /obj/item/weapon/gun/energy/chrono_gun) - var/hands_nodrop_states + var/list/hands_nodrop = list() var/obj/item/clothing/head/helmet/space/chronos/helmet = null var/obj/effect/chronos_cam/camera = null - var/atom/movable/overlay/phase_underlay = null + var/image/phase_underlay = null var/datum/action/innate/chrono_teleport/teleport_now = new var/activating = 0 var/activated = 0 var/cooldowntime = 50 //deciseconds var/teleporting = 0 + var/phase_timer_id /obj/item/clothing/suit/space/chronos/New() ..() @@ -69,25 +72,33 @@ switch(severity) if(1) if(activated && user && ishuman(user) && (user.wear_suit == src)) - user << "E:FATAL:RAM_READ_FAIL\nE:FATAL:STACK_EMPTY\nE:FATAL:READ_NULL_POINT\nE:FATAL:PWR_BUS_OVERLOAD" + user << "E:FATAL:RAM_READ_FAIL\nE:FATAL:STACK_EMPTY\nE:FATAL:READ_NULL_POINT\nE:FATAL:PWR_BUS_OVERLOAD" + user << "An electromagnetic pulse disrupts your [name] and violently tears you out of time-bluespace!" + user.emote("scream") deactivate(1, 1) -/obj/item/clothing/suit/space/chronos/proc/finish_chronowalk() - var/mob/living/carbon/human/user = src.loc +/obj/item/clothing/suit/space/chronos/proc/finish_chronowalk(mob/living/carbon/human/user, turf/to_turf) + if(!user) + user = src.loc + if(phase_timer_id) + deltimer(phase_timer_id) + phase_timer_id = 0 if(istype(user)) + if(to_turf) + user.forceMove(to_turf) user.SetStunned(0) user.next_move = 1 user.alpha = 255 - user.color = "#ffffff" + user.update_atom_colour() user.animate_movement = FORWARD_STEPS user.notransform = 0 user.anchored = 0 teleporting = 0 - if(user.l_hand && !(hands_nodrop_states & 1)) - user.l_hand.flags &= ~NODROP - if(user.r_hand && !(hands_nodrop_states & 2)) - user.r_hand.flags &= ~NODROP + for(var/obj/item/I in user.held_items) + if(I in hands_nodrop) + I.flags &= ~NODROP if(phase_underlay && !qdeleted(phase_underlay)) + user.underlays -= phase_underlay qdel(phase_underlay) phase_underlay = null if(camera) @@ -109,26 +120,26 @@ teleport_now.UpdateButtonIcon() - var/list/nonsafe_slots = list(slot_belt, slot_back, slot_l_hand, slot_r_hand) + var/list/nonsafe_slots = list(slot_belt, slot_back) + var/list/exposed = list() for(var/slot in nonsafe_slots) var/obj/item/slot_item = user.get_item_by_slot(slot) - if(slot_item && !(slot_item.type in chronosafe_items) && user.unEquip(slot_item)) - user << "Your [slot_item.name] got left behind." + exposed += slot_item + exposed += user.held_items + for(var/exposed_item in exposed) + var/obj/item/exposed_I = exposed_item + if(exposed_I && !(exposed_I.type in chronosafe_items) && user.unEquip(exposed_I)) + user << "Your [exposed_I.name] got left behind." user.ExtinguishMob() - if(user.buckled) - user.buckled.unbuckle_mob(user,force=1) phase_underlay = create_phase_underlay(user) - hands_nodrop_states = 0 - if(user.l_hand) - hands_nodrop_states |= (user.l_hand.flags & NODROP) ? 1 : 0 - user.l_hand.flags |= NODROP - if(user.r_hand) - hands_nodrop_states |= (user.r_hand.flags & NODROP) ? 2 : 0 - user.r_hand.flags |= NODROP - + hands_nodrop = list() + for(var/obj/item/I in user.held_items) + if(!(I.flags & NODROP)) + hands_nodrop += I + I.flags |= NODROP user.animate_movement = NO_STEPS user.changeNext_move(8 + phase_in_ds) user.notransform = 1 @@ -136,39 +147,37 @@ user.Stun(INFINITY) animate(user, color = "#00ccee", time = 3) - spawn(3) - if(teleporting && activated && user && phase_underlay && !qdeleted(phase_underlay)) - animate(user, alpha = 0, time = 2) - animate(phase_underlay, alpha = 255, time = 2) - sleep(2) - if(teleporting && activated && user && phase_underlay && !qdeleted(phase_underlay)) - phase_underlay.loc = to_turf - user.loc = to_turf - animate(user, alpha = 255, time = phase_in_ds) - animate(phase_underlay, alpha = 0, time = phase_in_ds) - sleep(phase_in_ds) - if(teleporting && activated && phase_underlay && !qdeleted(phase_underlay)) - animate(user, color = "#ffffff", time = 3) - sleep(3) - if(teleporting && user && !qdeleted(user)) - user.loc = to_turf //this will cover if bad things happen before the teleport, yes it is redundant - finish_chronowalk() + phase_timer_id = addtimer(src, "phase_2", 3, TIMER_NORMAL, user, to_turf, phase_in_ds) + +/obj/item/clothing/suit/space/chronos/proc/phase_2(mob/living/carbon/human/user, turf/to_turf, phase_in_ds) + if(teleporting && activated && user) + animate(user, alpha = 0, time = 2) + phase_timer_id = addtimer(src, "phase_3", 2, TIMER_NORMAL, user, to_turf, phase_in_ds) + else + finish_chronowalk(user, to_turf) + +/obj/item/clothing/suit/space/chronos/proc/phase_3(mob/living/carbon/human/user, turf/to_turf, phase_in_ds) + if(teleporting && activated && user) + user.forceMove(to_turf) + animate(user, alpha = 255, time = phase_in_ds) + phase_timer_id = addtimer(src, "phase_4", phase_in_ds, TIMER_NORMAL, user, to_turf) + else + finish_chronowalk(user, to_turf) + +/obj/item/clothing/suit/space/chronos/proc/phase_4(mob/living/carbon/human/user, turf/to_turf) + if(teleporting && activated && user) + animate(user, color = "#ffffff", time = 3) + phase_timer_id = addtimer(src, "finish_chronowalk", 3, TIMER_NORMAL, user, to_turf) + else + finish_chronowalk(user, to_turf) + /obj/item/clothing/suit/space/chronos/proc/create_phase_underlay(var/mob/user) - var/icon/user_icon = getFlatIcon(user) - user_icon.Blend("#ffffff") - var/atom/movable/overlay/phase = new(user.loc) - phase.icon = user_icon - phase.density = 1 - phase.anchored = 1 - phase.master = user - phase.animate_movement = NO_STEPS - phase.alpha = 0 - phase.mouse_opacity = 0 - phase.name = user.name - phase.transform = user.transform - phase.pixel_x = user.pixel_x - phase.pixel_y = user.pixel_y + var/icon/user_icon = icon('icons/effects/alphacolors.dmi', "") + user_icon.AddAlphaMask(getFlatIcon(user)) + var/image/phase = new(user_icon) + phase.appearance_flags = RESET_COLOR|RESET_ALPHA + user.underlays += phase return phase /obj/item/clothing/suit/space/chronos/process() @@ -191,61 +200,60 @@ if(!activating && !activated && !teleporting) activating = 1 var/mob/living/carbon/human/user = src.loc - if(user && ishuman(user)) - if(user.wear_suit == src) - user << "\nChronosuitMK4 login: root" - user << "Password:\n" - user << "root@ChronosuitMK4# chronowalk4 --start\n" - if(user.head && istype(user.head, /obj/item/clothing/head/helmet/space/chronos)) - user << "\[ ok \] Mounting /dev/helmet" - helmet = user.head - helmet.flags |= NODROP - helmet.suit = src - src.flags |= NODROP - user << "\[ ok \] Starting brainwave scanner" - user << "\[ ok \] Starting ui display driver" - user << "\[ ok \] Initializing chronowalk4-view" - new_camera(user) - START_PROCESSING(SSobj, src) - activated = 1 - else - user << "\[ fail \] Mounting /dev/helmet" - user << "FATAL: Unable to locate /dev/helmet. Aborting..." + if(user && ishuman(user) && user.wear_suit == src) + user << "\nChronosuitMK4 login: root" + user << "Password:\n" + user << "root@ChronosuitMK4# chronowalk4 --start\n" + if(user.head && istype(user.head, /obj/item/clothing/head/helmet/space/chronos)) + user << "\[ ok \] Mounting /dev/helm" + helmet = user.head + helmet.flags |= NODROP + helmet.suit = src + src.flags |= NODROP + user << "\[ ok \] Starting brainwave scanner" + user << "\[ ok \] Starting ui display driver" + user << "\[ ok \] Initializing chronowalk4-view" + new_camera(user) + START_PROCESSING(SSobj, src) + activated = 1 + else + user << "\[ fail \] Mounting /dev/helm" + user << "FATAL: Unable to locate /dev/helm. Aborting..." teleport_now.Grant(user) cooldown = world.time + cooldowntime activating = 0 - return 0 /obj/item/clothing/suit/space/chronos/proc/deactivate(force = 0, silent = 0) if(activated && (!teleporting || force)) activating = 1 var/mob/living/carbon/human/user = src.loc - if(user && ishuman(user)) - if(user.wear_suit == src) - if(!silent) - user << "\nroot@ChronosuitMK4# chronowalk4 --stop\n" - if(camera) - if(!silent) - user << "\[ ok \] Sending TERM signal to chronowalk4-view" //yes I know they aren't a different color when shutting down, but they were too similar at a glance - qdel(camera) - if(helmet) - if(!silent) - user << "\[ ok \] Stopping ui display driver" - user << "\[ ok \] Stopping brainwave scanner" - user << "\[ ok \] Unmounting /dev/helmet" - helmet.flags &= ~NODROP - helmet.suit = null - helmet = null - if(!silent) - user << "logout" - teleport_now.Remove(user) + var/hard_landing = teleporting && force src.flags &= ~NODROP cooldown = world.time + cooldowntime * 1.5 activated = 0 activating = 0 finish_chronowalk() - if(teleporting && force) - user.electrocute_act(35, src, safety = 1) + if(user && ishuman(user)) + teleport_now.Remove(user) + if(user.wear_suit == src) + if(hard_landing) + user.electrocute_act(35, src, safety = 1) + user.Weaken(10) + if(!silent) + user << "\nroot@ChronosuitMK4# chronowalk4 --stop\n" + if(camera) + user << "\[ ok \] Sending TERM signal to chronowalk4-view" + if(helmet) + user << "\[ ok \] Stopping ui display driver" + user << "\[ ok \] Stopping brainwave scanner" + user << "\[ ok \] Unmounting /dev/helmet" + user << "logout" + if(helmet) + helmet.flags &= ~NODROP + helmet.suit = null + helmet = null + if(camera) + qdel(camera) /obj/effect/chronos_cam name = "Chronosuit View" diff --git a/code/modules/clothing/spacesuits/flightsuit.dm b/code/modules/clothing/spacesuits/flightsuit.dm new file mode 100644 index 0000000000..4ceae4aec8 --- /dev/null +++ b/code/modules/clothing/spacesuits/flightsuit.dm @@ -0,0 +1,1243 @@ + +//So how this is planned to work is it is an item that allows you to fly with some interesting movement mechanics. +//You will still move instantly like usual, but when you move in a direction you gain "momentum" towards that direction +//Momentum will have a maximum value that it will be capped to, and will go down over time +//There is toggleable "stabilizers" that will make momentum go down FAST instead of its normal slow rate +//The suit is heavy and will slow you down on the ground but is a bit faster then usual in air +//The speed at which you drift is determined by your current momentum +//Also, I should probably add in some kind of limiting mechanic but I really don't like having to refill this all the time, expecially as it will be NODROP. +//Apparently due to code limitations you have to detect mob movement with.. shoes. +//The object that handles the flying itself - FLIGHT PACK -------------------------------------------------------------------------------------- +/obj/item/device/flightpack + name = "flight pack" + desc = "An advanced back-worn system that has dual ion engines powerful enough to grant a humanoid flight. Contains an internal self-recharging high-current capacitor for short, powerful boosts." + icon_state = "flightpack_off" + item_state = "flightpack_off" + var/icon_state_active = "flightpack_on" + var/item_state_active = "flightpack_on" + var/icon_state_boost = "flightpack_boost" + var/item_state_boost = "flightpack_boost" + actions_types = list(/datum/action/item_action/flightpack/toggle_flight, /datum/action/item_action/flightpack/engage_boosters, /datum/action/item_action/flightpack/toggle_stabilizers, /datum/action/item_action/flightpack/change_power, /datum/action/item_action/flightpack/toggle_airbrake) + armor = list(melee = 20, bullet = 20, laser = 20, energy = 10, bomb = 30, bio = 100, rad = 75, fire = 100, acid = 100) + + w_class = WEIGHT_CLASS_BULKY + slot_flags = SLOT_BACK + resistance_flags = FIRE_PROOF | ACID_PROOF + + var/obj/item/clothing/suit/space/hardsuit/flightsuit/suit = null + var/mob/living/carbon/human/wearer = null + var/slowdown_ground = 1 + var/slowdown_air = 0 + var/slowdown_brake = TRUE + var/flight = FALSE + var/flight_passflags = PASSTABLE + var/powersetting = 1 + var/powersetting_high = 3 + var/powersetting_low = 1 + var/override_safe = FALSE + + var/boost = FALSE + var/boost_maxcharge = 50 //Vroom! If you hit someone while boosting they'll likely be knocked flying. Fun. + var/boost_charge = 50 + var/boost_speed = 2 + var/boost_power = 50 + var/boost_chargerate = 0.5 + var/boost_drain = 10 //Keep in mind it charges and drains at the same time, so drain realistically is drain-charge=change + + var/momentum_x = 0 //Realistic physics. No more "Instant stopping while barreling down a hallway at Mach 1". + var/momentum_y = 0 + var/momentum_max = 500 + var/momentum_impact_coeff = 0.5 //At this speed you'll start coliding with people resulting in momentum loss and them being knocked back, but no injuries or knockdowns + var/momentum_impact_loss = 50 + var/momentum_crash_coeff = 0.8 //At this speed if you hit a dense object, you will careen out of control, while that object will be knocked flying. + var/momentum_drift_coeff = 0.13 + var/momentum_speed = 0 //How fast we are drifting around + var/momentum_speed_x = 0 + var/momentum_speed_y = 0 + var/momentum_passive_loss = 7 + var/momentum_gain = 20 + + var/stabilizer = TRUE + var/stabilizer_decay_amount = 23 + var/gravity = TRUE + var/gravity_decay_amount = 5 + var/pressure = TRUE + var/pressure_decay_amount = 5 + var/pressure_threshold = 30 + var/brake = FALSE + var/airbrake_decay_amount = 60 + + var/resync = FALSE //Used to resync the flight-suit every 30 seconds or so. + + var/disabled = FALSE //Whether it is disabled from crashes/emps/whatever + var/crash_disable_message = FALSE //To not spam the user with messages + var/emp_disable_message = FALSE + + //This is probably too much code just for EMP damage. + var/emp_damage = 0 //One hit should make it hard to control, continuous hits will cripple it and then simply shut it off/make it crash. Direct hits count more. + var/emp_strong_damage = 1.5 + var/emp_weak_damage = 1 + var/emp_heal_amount = 0.1 //How much emp damage to heal per process. + var/emp_disable_threshold = 3 //3 weak ion, 2 strong ion hits. + var/emp_disabled = FALSE + + var/crash_damage = 0 //Same thing, but for crashes. This is in addition to possible amounts of brute damage to the wearer. + var/crash_damage_low = 1 + var/crash_damage_high = 2.5 + var/crash_disable_threshold = 5 + var/crash_heal_amount = 0.1 + var/crash_disabled = FALSE + var/crash_dampening = 0 + + var/datum/effect_system/trail_follow/ion/flight/ion_trail + + var/assembled = FALSE + var/obj/item/weapon/stock_parts/manipulator/part_manip = null + var/obj/item/weapon/stock_parts/scanning_module/part_scan = null + var/obj/item/weapon/stock_parts/capacitor/part_cap = null + var/obj/item/weapon/stock_parts/micro_laser/part_laser = null + var/obj/item/weapon/stock_parts/matter_bin/part_bin = null + + var/crashing = FALSE //Are we currently getting wrecked? + + +//Start/Stop processing the item to use momentum and flight mechanics. +/obj/item/device/flightpack/New() + START_PROCESSING(SSfastprocess, src) + ..() + ion_trail = new + ion_trail.set_up(src) + +/obj/item/device/flightpack/full/New() + ..() + part_manip = new /obj/item/weapon/stock_parts/manipulator/pico(src) + part_scan = new /obj/item/weapon/stock_parts/scanning_module/phasic(src) + part_cap = new /obj/item/weapon/stock_parts/capacitor/super(src) + part_laser = new /obj/item/weapon/stock_parts/micro_laser/ultra(src) + part_bin = new /obj/item/weapon/stock_parts/matter_bin/super(src) + assembled = TRUE + +/obj/item/device/flightpack/proc/update_parts() + boost_chargerate = initial(boost_chargerate) + boost_drain = initial(boost_drain) + powersetting_high = initial(powersetting_high) + emp_disable_threshold = initial(emp_disable_threshold) + crash_disable_threshold = initial(crash_disable_threshold) + stabilizer_decay_amount = initial(stabilizer_decay_amount) + airbrake_decay_amount = initial(airbrake_decay_amount) + var/manip = 0 //Efficiency + var/scan = 0 //Damage avoidance/other + var/cap = 0 //Charging + var/laser = 0 //Power + var/bin = 0 //Stability + assembled = FALSE //Ready? + if(part_manip && part_scan && part_cap && part_laser && part_bin) + manip = part_manip.rating + scan = part_scan.rating + cap = part_cap.rating + laser = part_laser.rating + bin = part_bin.rating + assembled = TRUE + boost_chargerate *= cap + boost_drain -= manip + powersetting_high = Clamp(laser, 0, 3) + emp_disable_threshold = bin*1.25 + crash_disable_threshold = bin*2 + stabilizer_decay_amount = scan*5.75 + airbrake_decay_amount = manip*15 + crash_dampening = bin + +/obj/item/device/flightpack/Destroy() + if(suit) + delink_suit() + qdel(part_manip) + qdel(part_scan) + qdel(part_cap) + qdel(part_laser) + qdel(part_bin) + STOP_PROCESSING(SSfastprocess, src) + part_manip = null + part_scan = null + part_cap = null + part_laser = null + part_bin = null + ..() + +/obj/item/device/flightpack/emp_act(severity) + var/damage = 0 + if(severity == 1) + damage = emp_strong_damage + else + damage = emp_weak_damage + if(emp_damage <= (emp_disable_threshold * 1.5)) + emp_damage += damage + wearer << "Flightpack: BZZZZZZZZZZZT" + wearer << "Flightpack: WARNING: Class [severity] EMP detected! Circuit damage at [(100/emp_disable_threshold)*emp_damage]!" + +//action BUTTON CODE +/obj/item/device/flightpack/ui_action_click(owner, action) + if(wearer != owner) + wearer = owner + if(!suit) + usermessage("The flightpack will not work without being attached to a suit first!") + return FALSE + if(istype(action, /datum/action/item_action/flightpack/toggle_flight)) + if(!flight) + enable_flight() + else + disable_flight() + if(istype(action, /datum/action/item_action/flightpack/engage_boosters)) + if(!boost) + activate_booster() + else + deactivate_booster() + if(istype(action, /datum/action/item_action/flightpack/toggle_stabilizers)) + if(!stabilizer) + enable_stabilizers() + else + disable_stabilizers() + if(istype(action, /datum/action/item_action/flightpack/change_power)) + cycle_power() + if(istype(action, /datum/action/item_action/flightpack/toggle_airbrake)) + if(!brake) + enable_airbrake() + else + disable_airbrake() + +//Proc to change amount of momentum the wearer has, or dampen all momentum by a certain amount. +/obj/item/device/flightpack/proc/adjust_momentum(amountx, amounty, reduce_amount_total = 0) + if(reduce_amount_total != 0) + if(momentum_x > 0) + momentum_x = Clamp(momentum_x - reduce_amount_total, 0, momentum_max) + else if(momentum_x < 0) + momentum_x = Clamp(momentum_x + reduce_amount_total, -momentum_max, 0) + if(momentum_y > 0) + momentum_y = Clamp(momentum_y - reduce_amount_total, 0, momentum_max) + else if(momentum_y < 0) + momentum_y = Clamp(momentum_y + reduce_amount_total, -momentum_max, 0) + momentum_x = Clamp(momentum_x + amountx, -momentum_max, momentum_max) + momentum_y = Clamp(momentum_y + amounty, -momentum_max, momentum_max) + calculate_momentum_speed() + +//Called by the pair of shoes the wearer is required to wear to detect movement. +/obj/item/device/flightpack/proc/wearer_movement(dir) + if(!flight) + return + var/momentum_increment = momentum_gain + if(boost) + momentum_increment = boost_power + if(brake) + momentum_increment = 0 + switch(dir) + if(NORTH) + adjust_momentum(0, momentum_increment) + if(SOUTH) + adjust_momentum(0, -momentum_increment) + if(EAST) + adjust_momentum(momentum_increment, 0) + if(WEST) + adjust_momentum(-momentum_increment, 0) + +//The wearer has momentum left. Move them and take some away, while negating the momentum that moving the wearer would gain. Or force the wearer to lose control if they are incapacitated. +/obj/item/device/flightpack/proc/momentum_drift() + if(!flight) + return FALSE + var/drift_dir_x = 0 + var/drift_dir_y = 0 + if(momentum_x > 0) + drift_dir_x = EAST + if(momentum_x < 0) + drift_dir_x = WEST + if(momentum_y > 0) + drift_dir_y = NORTH + if(momentum_y < 0) + drift_dir_y = SOUTH + if(momentum_speed == 0) + return FALSE + if(suit) + if(wearer) + if(!wearer.canmove) + losecontrol() + momentum_decay() + for(var/i in 1 to momentum_speed) + if(momentum_speed_x >= i) + step(wearer, drift_dir_x) + if(momentum_speed_y >= i) + step(wearer, drift_dir_y) + sleep(1) + +//Make the wearer lose some momentum. +/obj/item/device/flightpack/proc/momentum_decay() + if(brake) + adjust_momentum(0, 0, airbrake_decay_amount) + if(gravity) + adjust_momentum(0, 0, gravity_decay_amount) + if(stabilizer) + adjust_momentum(0, 0, stabilizer_decay_amount) + if(pressure) + adjust_momentum(0, 0, pressure_decay_amount) + adjust_momentum(0, 0, momentum_passive_loss) + +//Check for gravity, air pressure, and whether this is still linked to a suit. Also, resync the flightpack/flight suit every minute. +/obj/item/device/flightpack/proc/check_conditions() + if(suit) + if(wearer) + if(wearer.has_gravity()) + gravity = 1 + else + gravity = 0 + var/turf/T = get_turf(wearer) + var/datum/gas_mixture/gas = T.return_air() + var/envpressure = gas.return_pressure() + if(envpressure >= pressure_threshold) + pressure = 1 + else + pressure = 0 + if(flight) + if(!assembled) + disable_flight(1) + if(!suit) + disable_flight(1) + if(!resync) + addtimer(src, "resync", 600, TIMER_NORMAL) + resync = 1 + if(!wearer) //Oh god our user fell off! + disable_flight(1) + if(!pressure && brake) + brake = FALSE + usermessage("Airbrakes deactivated due to lack of pressure!", 2) + if(!suit.deployedshoes) + if(brake || stabilizer) + brake = FALSE + stabilizer = FALSE + usermessage("Warning: Sensor data is not being recieved from flight shoes. Stabilizers and airbrake modules OFFLINE!", 2) + +//Resync the suit +/obj/item/device/flightpack/proc/resync() + resync = FALSE + suit.resync() + +//How fast should the wearer be? +/obj/item/device/flightpack/proc/update_slowdown() + if(!flight) + suit.slowdown = slowdown_ground + return + else + suit.slowdown = slowdown_air + +/obj/item/device/flightpack/process() + if(!suit) + return FALSE + update_slowdown() + update_icon() + check_conditions() + calculate_momentum_speed() + momentum_drift() + handle_boost() + handle_damage() + handle_flight() + +/obj/item/device/flightpack/proc/handle_flight() + if(!flight) + return FALSE + if(wearer) + wearer.float(TRUE) + + +/obj/item/device/flightpack/proc/handle_damage() + if(crash_damage) + crash_damage = Clamp(crash_damage-crash_heal_amount, 0, crash_disable_threshold*10) + if(crash_damage >= crash_disable_threshold) + crash_disabled = TRUE + if(crash_disabled && (crash_damage <= 1)) + crash_disabled = FALSE + crash_disable_message = FALSE + usermessage("Gyroscopic sensors recalibrated. Flight systems re-enabled.") + if(emp_damage) + emp_damage = Clamp(emp_damage-emp_heal_amount, 0, emp_disable_threshold * 10) + if(emp_damage >= emp_disable_threshold) + emp_disabled = TRUE + if(emp_disabled && (emp_damage <= 0.5)) + emp_disabled = FALSE + emp_disable_message = FALSE + usermessage("Electromagnetic deflection system re-activated. Flight systems re-enabled.") + disabled = crash_disabled + emp_disabled + if(disabled) + if(crash_disabled && (!crash_disable_message)) + usermessage("Internal gyroscopes scrambled from excessive impacts.", 2) + usermessage("Deactivating to recalibrate flight systems!", 2) + crash_disable_message = TRUE + if(emp_disabled && (!emp_disable_message)) + usermessage("Electromagnetic deflectors overloaded. Short circuit detected in internal systems!", 1) + usermessage("Deactivating to prevent fatal power overload!", 2) + emp_disable_message = TRUE + if(flight) + disable_flight(TRUE) + +/obj/item/device/flightpack/update_icon() + if(!flight) + icon_state = initial(icon_state) + item_state = initial(item_state) + if(flight) + icon_state = icon_state_active + item_state = item_state_active + if(boost) + icon_state = icon_state_boost + item_state = item_state_boost + if(wearer) + wearer.update_inv_wear_suit() + wearer.update_inv_back() + ..() + +/obj/item/device/flightpack/proc/handle_boost() + if(boost) + boost_charge = Clamp(boost_charge-boost_drain, 0, boost_maxcharge) + if(boost_charge < 1) + deactivate_booster() + if(boost_charge < boost_maxcharge) + boost_charge = Clamp(boost_charge+boost_chargerate, 0, boost_maxcharge) + + +/obj/item/device/flightpack/proc/cycle_power() + if(powersetting < powersetting_high) + powersetting++ + else + powersetting = 1 + momentum_gain = powersetting * 10 + usermessage("Engine output set to [momentum_gain].") + +/obj/item/device/flightpack/proc/crash_damage(density, anchored, speed, victim_name) + var/crashmessagesrc = "[wearer] violently crashes into [victim_name], " + var/userdamage = 10 + userdamage -= stabilizer*3 + userdamage -= part_bin.rating + userdamage -= part_scan.rating + userdamage -= part_manip.rating + userdamage += anchored*2 + userdamage += boost*2 + userdamage += speed*2 + if(userdamage < 0) + userdamage = 0 + if(userdamage) + crashmessagesrc += "that really must have hurt!" + else + crashmessagesrc += "but luckily [wearer]'s impact was absorbed by their suit's stabilizers!" + wearer.adjustBruteLoss(userdamage) + usermessage("WARNING: Stabilizers taking damage!", 2) + wearer.visible_message(crashmessagesrc) + crash_damage = Clamp(crash_damage + crash_damage_high, 0, crash_disable_threshold*1.5) + +/obj/item/device/flightpack/proc/userknockback(density, anchored, speed, dir) + var/angle = dir2angle(dir) + angle += 180 + if(angle > 360) + angle -= 360 + dir = angle2dir(angle) + var/turf/target = get_edge_target_turf(get_turf(wearer), dir) + wearer.throw_at_fast(target, (speed+density+anchored), 2, wearer) + wearer.visible_message("[wearer] is knocked flying by the impact!") + +/obj/item/device/flightpack/proc/flight_impact(atom/unmovablevictim, crashdir) //Yes, victim. + if((unmovablevictim == wearer) || crashing) + return FALSE + crashing = TRUE + var/crashpower = 0 + if(crashdir == NORTH || crashdir == SOUTH) + crashpower = momentum_speed_y + else if(crashdir == EAST || crashdir == WEST) + crashpower = momentum_speed_x + if(!flight) + crashing = FALSE + return FALSE + if(boost) + crashpower = 3 + if(!crashpower) + crashing = FALSE + return FALSE + //crashdirs.. + var/density = FALSE + var/anchored = TRUE //Just in case... + var/damage = FALSE + if(ismob(unmovablevictim)) + var/mob/living/L = unmovablevictim + if(L.throwing || (L.pulledby == wearer)) + crashing = FALSE + return FALSE + suit.user.forceMove(get_turf(unmovablevictim)) + crashing = FALSE + mobknockback(L, crashpower, crashdir) + damage = FALSE + density = TRUE + anchored = FALSE + else if(isclosedturf(unmovablevictim)) + if(crashpower < 3) + crashing = FALSE + return FALSE + damage = TRUE + density = TRUE + anchored = TRUE + else if(ismovableatom(unmovablevictim)) + var/atom/movable/victim = unmovablevictim + if(crashpower < 3 || victim.throwing) + crashing = FALSE + return FALSE + density = victim.density + anchored = victim.anchored + victimknockback(victim, crashpower, crashdir) + if(anchored) + damage = TRUE + if(damage) + crash_damage(density, anchored, momentum_speed, unmovablevictim.name) + userknockback(density, anchored, momentum_speed, dir) + losecontrol(move = FALSE) + crashing = FALSE + +/obj/item/device/flightpack/proc/mobknockback(mob/living/victim, power, direction) + if(!ismob(victim)) + return FALSE + var/knockmessage = "[victim] is knocked back by [wearer] as they narrowly avoid a collision!" + if(power == 1) + knockmessage = "[wearer] soars into [victim], pushing them away!" + var/knockback = 0 + var/stun = boost * 2 + (power - 2) + if((stun >= 0) || (power == 3)) + knockmessage += " [wearer] dashes across [victim] at full impulse, knocking them [stun ? "down" : "away"]!" //Impulse... + knockmessage += "" + knockback += power + knockback += (part_manip.rating / 2) + knockback += (part_bin.rating / 2) + knockback += boost*2 + switch(power) + if(1) + knockback = 1 + if(2) + knockback /= 1.5 + var/throwdir = pick(alldirs) + var/turf/target = get_step(victim, throwdir) + for(var/i in 1 to (knockback-1)) + target = get_step(target, throwdir) + wearer.visible_message(knockmessage) + victim.throw_at_fast(target, knockback, 1) + victim.Weaken(stun) + +/obj/item/device/flightpack/proc/victimknockback(atom/movable/victim, power, direction) + if(!victim) + return FALSE + var/knockback = 0 + var/damage = 0 + knockback -= (density * 2) + knockback += power + knockback += (part_manip.rating / 2) + knockback += (part_bin.rating / 2) + knockback *= 4 + if(victim.anchored) + knockback = 0 + damage = power*14 //I mean, if you REALLY want to break your skull to break an airlock... + if(ismob(victim)) //Why the hell didn't it proc the mob one instead? + mobknockback(victim, power, direction) + return FALSE + if(anchored) + knockback = 0 + victim.visible_message("[victim.name] is sent flying by the impact!") + var/turf/target = get_turf(victim) + for(var/i in 1 to knockback) + target = get_step(target, direction) + for(var/i in 1 to knockback/3) + target = get_step(target, pick(alldirs)) + if(knockback) + victim.throw_at_fast(target, knockback, part_manip.rating) + if(isobj(victim)) + var/obj/O = victim + O.take_damage(damage) + +/obj/item/device/flightpack/proc/losecontrol(stun = FALSE, move = TRUE) + usermessage("Warning: Control system not responding. Deactivating!", 3) + wearer.visible_message("[wearer]'s flight suit abruptly shuts off and they lose control!") + if(wearer) + if(move) + while(momentum_x != 0 || momentum_y != 0) + sleep(2) + step(wearer, pick(cardinal)) + momentum_decay() + adjust_momentum(0, 0, 10) + wearer.visible_message("[wearer]'s flight suit crashes into the ground!") + if(stun) + wearer.Weaken(4) + momentum_x = 0 + momentum_y = 0 + if(flight) + disable_flight() + +/obj/item/device/flightpack/proc/enable_flight(forced = FALSE) + if(!suit) + usermessage("Warning: Flightpack not linked to compatible flight-suit mount!", 2) + if(disabled) + usermessage("Internal systems recalibrating. Unable to safely proceed.", 2) + wearer.movement_type |= FLYING + wearer.pass_flags |= flight_passflags + usermessage("ENGAGING FLIGHT ENGINES.") + wearer.visible_message("[wearer]'s flight engines activate as they lift into the air!") + //I DONT HAVE SOUND EFFECTS YET playsound( + flight = TRUE + if(suit.shoes) + suit.shoes.toggle(TRUE) + update_icon() + ion_trail.start() + +/obj/item/device/flightpack/proc/disable_flight(forced = FALSE) + if(forced) + losecontrol(stun = TRUE) + return TRUE + if(abs(momentum_x) <= 20 && abs(momentum_y) <= 20) + momentum_x = 0 + momentum_y = 0 + usermessage("DISENGAGING FLIGHT ENGINES.") + wearer.visible_message("[wearer] drops to the ground as their flight engines cut out!") + //NO SOUND YET playsound( + ion_trail.stop() + wearer.movement_type &= ~FLYING + wearer.pass_flags &= ~flight_passflags + flight = FALSE + if(suit.shoes) + suit.shoes.toggle(FALSE) + else + if(override_safe) + disable_flight(TRUE) + return TRUE + usermessage("Warning: Velocity too high to safely disengage. Retry to confirm emergency shutoff.", 2) + override_safe = TRUE + addtimer(src, "enable_safe", 50, TIMER_NORMAL) + return FALSE + update_icon() + +/obj/item/device/flightpack/proc/enable_safe() + if(override_safe) + override_safe = FALSE + +/obj/item/device/flightpack/dropped(mob/wearer) + ..() + +/obj/item/device/flightpack/item_action_slot_check(slot) + if(slot == SLOT_BACK) + return TRUE + +/obj/item/device/flightpack/equipped(mob/user, slot) + if(ishuman(user)) + wearer = user + ..() + +/obj/item/device/flightpack/proc/calculate_momentum_speed() + if(momentum_x == 0 && momentum_y == 0) //Calculate total + momentum_speed = 0 + else if((abs(momentum_x) >= (momentum_crash_coeff*momentum_max))||(abs(momentum_y) >= (momentum_crash_coeff*momentum_max))) + momentum_speed = 3 + else if((abs(momentum_x) >= (momentum_impact_coeff*momentum_max))||(abs(momentum_y) >= (momentum_impact_coeff*momentum_max))) + momentum_speed = 2 + else if((abs(momentum_x) >= (momentum_drift_coeff*momentum_max))||(abs(momentum_y) >= (momentum_drift_coeff*momentum_max))) + momentum_speed = 1 + if(abs(momentum_x) >= (momentum_crash_coeff*momentum_max)) //Calculate X + momentum_speed_x = 3 + else if(abs(momentum_x) >= (momentum_impact_coeff*momentum_max)) + momentum_speed_x = 2 + else if(abs(momentum_x) >= (momentum_drift_coeff*momentum_max)) + momentum_speed_x = 1 + else + momentum_speed_x = 0 + if(abs(momentum_y) >= (momentum_crash_coeff*momentum_max)) //Calculate Y + momentum_speed_y = 3 + else if(abs(momentum_y) >= (momentum_impact_coeff*momentum_max)) + momentum_speed_y = 2 + else if(abs(momentum_y) >= (momentum_drift_coeff*momentum_max)) + momentum_speed_y = 1 + else + momentum_speed_y = 0 + +/obj/item/device/flightpack/item_action_slot_check(slot) + if(slot == slot_back) + return TRUE + +/obj/item/device/flightpack/proc/enable_stabilizers() + usermessage("Activating automatic stabilization controller and enabling maneuvering assistance.") + stabilizer = TRUE + +/obj/item/device/flightpack/proc/disable_stabilizers() + if(wearer) + if(brake) + disable_airbrake() + usermessage("Deactivating stabilization controllers!", 2) + stabilizer = FALSE + +/obj/item/device/flightpack/proc/activate_booster() + if(!flight) + usermessage("Error: Engines offline!", 2) + return FALSE + if(boost_charge < 5) + usermessage("Insufficient charge in boost capacitors to engage.", 2) + return FALSE + usermessage("Boosters engaged!") + wearer.visible_message("[wearer.name]'s flightpack engines flare in intensity as they are rocketed forward by the immense thrust!") + boost = TRUE + update_slowdown() + +/obj/item/device/flightpack/proc/deactivate_booster() + usermessage("Boosters disengaged!") + boost = FALSE + update_slowdown() + +/obj/item/device/flightpack/proc/enable_airbrake() + if(wearer) + if(!stabilizer) + enable_stabilizers() + usermessage("Stabilizers activated!") + usermessage("Airbrakes extended!") + brake = TRUE + update_slowdown() + +/obj/item/device/flightpack/proc/disable_airbrake() + if(wearer) + usermessage("Airbrakes retracted!") + brake = FALSE + update_slowdown() + +/obj/item/device/flightpack/on_mob_move(dir, mob) + wearer_movement(dir) + +/obj/item/device/flightpack/proc/relink_suit(obj/item/clothing/suit/space/hardsuit/flightsuit/F) + if(suit && suit == F) + return FALSE + else + delink_suit() + if(istype(F)) + suit = F + suit.pack = src + else + suit = null + +/obj/item/device/flightpack/proc/delink_suit() + if(suit) + if(suit.pack && suit.pack == src) + suit.pack = null + suit = null + +/obj/item/device/flightpack/proc/usermessage(message, urgency = 0) + if(urgency == 0) + wearer << "\icon[src]|[message]" + if(urgency == 1) + wearer << "\icon[src]|[message]" + if(urgency == 2) + wearer << "\icon[src]|[message]" + if(urgency == 3) + wearer << "\icon[src]|[message]" + +/obj/item/device/flightpack/attackby(obj/item/I, mob/user, params) + if(ishuman(user) && !ishuman(src.loc)) + wearer = user + if(istype(I, /obj/item/weapon/stock_parts)) + var/obj/item/weapon/stock_parts/S = I + if(istype(S, /obj/item/weapon/stock_parts/manipulator)) + if((!part_manip) || (part_manip.rating < S.rating)) + usermessage("[I] has been sucessfully installed into systems.") + if(user.unEquip(I)) + I.loc = src + part_manip = I + if(istype(S, /obj/item/weapon/stock_parts/scanning_module)) + if((!part_scan) || (part_scan.rating < S.rating)) + usermessage("[I] has been sucessfully installed into systems.") + if(user.unEquip(I)) + I.loc = src + part_scan = I + if(istype(S, /obj/item/weapon/stock_parts/micro_laser)) + if((!part_laser) || (part_laser.rating < S.rating)) + usermessage("[I] has been sucessfully installed into systems.") + if(user.unEquip(I)) + I.loc = src + part_laser = I + if(istype(S, /obj/item/weapon/stock_parts/matter_bin)) + if((!part_bin) || (part_bin.rating < S.rating)) + usermessage("[I] has been sucessfully installed into systems.") + if(user.unEquip(I)) + I.loc = src + part_bin = I + if(istype(S, /obj/item/weapon/stock_parts/capacitor)) + if((!part_cap) || (part_cap.rating < S.rating)) + usermessage("[I] has been sucessfully installed into systems.") + if(user.unEquip(I)) + I.loc = src + part_cap = I + update_parts() + ..() + +//MOB MOVEMENT STUFF---------------------------------------------------------------------------------------------------------------------------------------------- + +/mob/proc/get_flightpack() + return + +/mob/living/carbon/get_flightpack() + var/obj/item/device/flightpack/F = back + if(istype(F)) + return F + else + return FALSE + +/obj/item/device/flightpack/proc/allow_thrust(amount) + if(flight) + return TRUE + +//FLIGHT SHOES----------------------------------------------------------------------------------------------------------------------------------------------------- + +/obj/item/clothing/shoes/flightshoes + name = "flight shoes" + desc = "A pair of specialized boots that contain stabilizers and sensors nessacary for flight gear to work" //Apparently you need these to detect mob movement. + icon_state = "flightshoes" + item_state = "flightshoes_mob" + var/obj/item/clothing/suit/space/hardsuit/flightsuit/suit = null + var/obj/item/device/flightpack/pack = null + var/mob/living/carbon/human/wearer = null + var/active = FALSE + resistance_flags = FIRE_PROOF | ACID_PROOF + +/obj/item/clothing/shoes/flightshoes/Destroy() + if(suit) + suit.shoes = null + +/obj/item/clothing/shoes/flightshoes/proc/toggle(toggle) + if(suit) + active = toggle + if(active) + src.flags |= NOSLIP + if(!active) + src.flags &= ~NOSLIP + +/obj/item/clothing/shoes/flightshoes/dropped(mob/wearer) + ..() + +/obj/item/clothing/shoes/flightshoes/item_action_slot_check(slot) + if(slot == slot_shoes) + return TRUE + +/obj/item/clothing/shoes/flightshoes/proc/delink_suit() + if(suit) + if(suit.shoes && suit.shoes == src) + suit.shoes = null + suit = null + +/obj/item/clothing/shoes/flightshoes/proc/relink_suit(obj/item/clothing/suit/space/hardsuit/flightsuit/F) + if(suit && suit == F) + return FALSE + else + delink_suit() + if(istype(F)) + suit = F + suit.shoes = src + else + suit = null + +//FLIGHT SUIT------------------------------------------------------------------------------------------------------------------------------------------------------ +//Flight pack and flight shoes/helmet are stored in here. This has to be locked to someone to use either. For both balance reasons and practical codewise reasons. + +/obj/item/clothing/suit/space/hardsuit/flightsuit + name = "flight suit" + desc = "An advanced suit that allows the wearer flight via two high powered miniature jet engines on a deployable back-mounted unit." + icon_state = "flightsuit" + item_state = "flightsuit" + strip_delay = 30 + var/locked_strip_delay = 80 + w_class = WEIGHT_CLASS_BULKY + var/obj/item/device/flightpack/pack = null + var/obj/item/clothing/shoes/flightshoes/shoes = null + var/mob/living/carbon/human/user = null + var/deployedpack = FALSE + var/deployedshoes = FALSE + var/locked = FALSE + resistance_flags = FIRE_PROOF | ACID_PROOF + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/flightsuit + jetpack = null + var/flightpack + var/flight = FALSE + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals, /obj/item/weapon/gun,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs) + actions_types = list(/datum/action/item_action/flightsuit/toggle_helmet,/datum/action/item_action/flightsuit/toggle_boots,/datum/action/item_action/flightsuit/toggle_flightpack,/datum/action/item_action/flightsuit/lock_suit) + armor = list(melee = 20, bullet = 20, laser = 20, energy = 10, bomb = 30, bio = 100, rad = 75, fire = 100, acid = 100) + var/maint_panel = FALSE + max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT + +/obj/item/clothing/suit/space/hardsuit/flightsuit/full/New() + ..() + makepack() + makeshoes() + resync() + +/obj/item/clothing/suit/space/hardsuit/flightsuit/proc/usermessage(message, urgency = 0) + if(!urgency) + user << "\icon[src]|[message]" + else if(urgency == 1) + user << "\icon[src]|[message]" + else if(urgency == 2) + user << "\icon[src]|[message]" + +/obj/item/clothing/suit/space/hardsuit/flightsuit/examine(mob/user) + ..() + user << "SUIT: [locked ? "LOCKED" : "UNLOCKED"]" + user << "FLIGHTPACK: [deployedpack ? "ENGAGED" : "DISENGAGED"] FLIGHTSHOES : [deployedshoes ? "ENGAGED" : "DISENGAGED"] HELMET : [suittoggled ? "ENGAGED" : "DISENGAGED"]" + user << "Its maintainence panel is [maint_panel ? "OPEN" : "CLOSED"]" + +/obj/item/clothing/suit/space/hardsuit/flightsuit/Destroy() + dropped() + if(pack) + pack.delink_suit() + qdel(pack) + if(shoes) + shoes.pack = null + shoes.suit = null + qdel(shoes) + ..() + +/obj/item/clothing/suit/space/hardsuit/flightsuit/proc/resync() + if(pack) + pack.relink_suit(src) + if(user) + if(pack) + pack.wearer = user + if(shoes) + shoes.wearer = user + else + if(pack) + pack.wearer = null + if(shoes) + shoes.wearer = null + if(shoes) + shoes.relink_suit(src) + +/obj/item/clothing/suit/space/hardsuit/flightsuit/attack_hand(mob/user) + if(ishuman(user)) + var/mob/living/carbon/human/H = user + if(src == H.wear_suit && locked) + usermessage("You can not take a locked hardsuit off! Unlock it first!", 1) + return + ..() + +/obj/item/clothing/suit/space/hardsuit/flightsuit/ui_action_click(owner, action) + if(istype(action, /datum/action/item_action/flightsuit/lock_suit)) + if(!locked) + lock_suit(owner) + else + unlock_suit(owner) + if(istype(action, /datum/action/item_action/flightsuit/toggle_flightpack)) + if(!deployedpack) + extend_flightpack() + else + retract_flightpack() + if(istype(action, /datum/action/item_action/flightsuit/toggle_boots)) + if(!deployedshoes) + extend_flightshoes() + else + retract_flightshoes() + if(istype(action, /datum/action/item_action/flightsuit/toggle_helmet)) + ToggleHelmet() + +/obj/item/clothing/suit/space/hardsuit/flightsuit/dropped() + if(deployedpack) + retract_flightpack(TRUE) + if(deployedshoes) + retract_flightshoes(TRUE) + if(locked) + unlock_suit(null) + if(user) + user = null + ..() + +/obj/item/clothing/suit/space/hardsuit/flightsuit/ToggleHelmet() + if(!suittoggled) + if(!locked) + usermessage("You must lock your suit before engaging the helmet!", 1) + return FALSE + ..() + +/obj/item/clothing/suit/space/hardsuit/flightsuit/proc/lock_suit(mob/wearer) + user = wearer + user.visible_message("[wearer]'s flight suit locks around them, powered buckles and straps automatically adjusting to their body!") + playsound(src.loc, 'sound/items/rped.ogg', 65, 1) + resync() + strip_delay = locked_strip_delay + locked = TRUE + return TRUE + +/obj/item/clothing/suit/space/hardsuit/flightsuit/proc/unlock_suit(mob/wearer) + if(suittoggled) + usermessage("You must retract the helmet before unlocking your suit!", 1) + return FALSE + if(pack && pack.flight) + usermessage("You must shut off the flight-pack before unlocking your suit!", 1) + return FALSE + if(deployedpack) + usermessage("Your flightpack must be fully retracted first!", 1) + return FALSE + if(deployedshoes) + usermessage("Your flight shoes must be fully retracted first!", 1) + return FALSE + if(wearer) + user.visible_message("[wearer]'s flight suit detaches from their body, becoming nothing more then a bulky metal skeleton.") + playsound(src.loc, 'sound/items/rped.ogg', 65, 1) + resync() + strip_delay = initial(strip_delay) + locked = FALSE + return TRUE + +/obj/item/clothing/suit/space/hardsuit/flightsuit/proc/extend_flightpack(forced = FALSE) + if(!pack) + usermessage("There is no attached flightpack!", 1) + return FALSE + if(deployedpack) + retract_flightpack() + if(!locked) + usermessage("You must lock your flight suit first before deploying anything!", 1) + return FALSE + if(ishuman(user)) + if(user.back) + usermessage("You're already wearing something on your back!", 1) + return FALSE + user.equip_to_slot_if_possible(pack,slot_back,0,0,1) + pack.flags |= NODROP + resync() + user.visible_message("A [pack.name] extends from [user]'s [name] and clamps to their back!") + user.update_inv_wear_suit() + playsound(src.loc, 'sound/mecha/mechmove03.ogg', 50, 1) + deployedpack = TRUE + +/obj/item/clothing/suit/space/hardsuit/flightsuit/proc/retract_flightpack(forced = FALSE) + if(ishuman(user)) + if(pack.flight && !forced) + usermessage("You must disable the engines before retracting the flightpack!", 1) + return FALSE + if(pack.flight && forced) + pack.disable_flight(1) + pack.flags &= ~NODROP + resync() + if(user) + user.unEquip(pack, 1) + user.update_inv_wear_suit() + user.visible_message("[user]'s [pack.name] detaches from their back and retracts into their [src]!") + pack.loc = src + playsound(src.loc, 'sound/mecha/mechmove03.ogg', 50, 1) + deployedpack = FALSE + +/obj/item/clothing/suit/space/hardsuit/flightsuit/proc/extend_flightshoes(forced = FALSE) + if(!shoes) + usermessage("Flight shoes are not installed!", 1) + return FALSE + if(deployedshoes) + retract_flightshoes() + if(!locked) + usermessage("You must lock your flight suit first before deploying anything!", 1) + return FALSE + if(ishuman(user)) + if(user.shoes) + usermessage("You're already wearing something on your feet!", 1) + return FALSE + user.equip_to_slot_if_possible(shoes,slot_shoes,0,0,1) + shoes.flags |= NODROP + user.visible_message("[user]'s [name] extends a pair of [shoes.name] over their feet!") + user.update_inv_wear_suit() + playsound(src.loc, 'sound/mecha/mechmove03.ogg', 50, 1) + deployedshoes = TRUE + +/obj/item/clothing/suit/space/hardsuit/flightsuit/proc/retract_flightshoes(forced = FALSE) + shoes.flags &= ~NODROP + playsound(src.loc, 'sound/mecha/mechmove03.ogg', 50, 1) + if(user) + user.unEquip(shoes, 1) + user.update_inv_wear_suit() + user.visible_message("[user]'s [shoes.name] retracts back into their [name]!") + shoes.loc = src + deployedshoes = FALSE + +/obj/item/clothing/suit/space/hardsuit/flightsuit/proc/makepack() + if(!pack) + pack = new /obj/item/device/flightpack/full(src) + pack.relink_suit(src) + +/obj/item/clothing/suit/space/hardsuit/flightsuit/proc/makeshoes() + if(!shoes) + shoes = new /obj/item/clothing/shoes/flightshoes(src) + shoes.pack = pack + shoes.suit = src + +/obj/item/clothing/suit/space/hardsuit/flightsuit/equipped(mob/M, slot) + if(ishuman(M)) + user = M + if(slot != slot_wear_suit) + if(deployedpack) + retract_flightpack(TRUE) + if(deployedshoes) + retract_flightshoes(TRUE) + if(locked) + unlock_suit(user) + ..() + +/obj/item/clothing/suit/space/hardsuit/flightsuit/proc/detach_pack() + pack.delink_suit() + pack.loc = get_turf(src) + pack = null + usermessage("You detach the flightpack.") + +/obj/item/clothing/suit/space/hardsuit/flightsuit/proc/attach_pack(obj/item/device/flightpack/F) + F.loc = src + pack = F + pack.relink_suit(src) + usermessage("You attach and fasten the flightpack.") + +/obj/item/clothing/suit/space/hardsuit/flightsuit/proc/detach_shoes() + shoes.delink_suit() + shoes.loc = get_turf(src) + shoes = null + usermessage("You detach the flight shoes.") + +/obj/item/clothing/suit/space/hardsuit/flightsuit/proc/attach_shoes(obj/item/clothing/shoes/flightshoes/S) + S.loc = src + shoes = S + shoes.relink_suit(src) + usermessage("You attach and fasten a pair of flight shoes.") + +/obj/item/clothing/suit/space/hardsuit/flightsuit/attackby(obj/item/I, mob/wearer, params) + user = wearer + if(src == user.get_item_by_slot(slot_wear_suit)) + usermessage("You can not perform any service without taking the suit off!", 1) + return FALSE + if(locked) + usermessage("You can not perform any service while the suit is locked!", 1) + return FALSE + if(istype(I, /obj/item/weapon/screwdriver)) + if(!maint_panel) + maint_panel = TRUE + else + maint_panel = FALSE + usermessage("You [maint_panel? "open" : "close"] the maintainence panel.") + if(!maint_panel) + usermessage("The maintainence panel is closed!", 1) + return FALSE + if(istype(I, /obj/item/weapon/crowbar)) + var/list/inputlist = list() + if(pack) + inputlist += "Pack" + if(shoes) + inputlist += "Shoes" + if(!inputlist.len) + usermessage("There is nothing inside the flightsuit to remove!", 1) + return FALSE + var/input = input(user, "What to remove?", "Removing module") as null|anything in list("Pack", "Shoes") + if(pack && input == "Pack") + if(pack.flight) + usermessage("You can not pry off an active flightpack!", 1) + return FALSE + if(deployedpack) + usermessage("Disengage the flightpack first!", 1) + return FALSE + detach_pack() + if(shoes && input == "Shoes") + if(deployedshoes) + usermessage("Disengage the shoes first!", 1) + return FALSE + detach_shoes() + if(istype(I, /obj/item/device/flightpack)) + var/obj/item/device/flightpack/F = I + if(pack) + usermessage("[src] already has a flightpack installed!", 1) + return FALSE + if(!F.assembled) + var/addmsg = " It is missing a " + var/list/addmsglist = list() + if(!F.part_manip) + addmsglist += "manipulator" + if(!F.part_cap) + addmsglist += "capacitor" + if(!F.part_scan) + addmsglist += "scanning module" + if(!F.part_laser) + addmsglist += "micro-laser" + if(!F.part_bin) + addmsglist += "matter bin" + addmsg += english_list(addmsglist) + usermessage("The flightpack you are trying to install is not fully assembled and operational![addmsg].", 1) + return FALSE + if(user.unEquip(F)) + attach_pack(F) + if(istype(I, /obj/item/clothing/shoes/flightshoes)) + var/obj/item/clothing/shoes/flightshoes/S = I + if(shoes) + usermessage("There are already shoes installed!", 1) + return FALSE + if(user.unEquip(S)) + attach_shoes(S) + ..() + +//FLIGHT HELMET---------------------------------------------------------------------------------------------------------------------------------------------------- +/obj/item/clothing/head/helmet/space/hardsuit/flightsuit + name = "flight helmet" + desc = "A sealed helmet attached to a flight suit for EVA usage scenerios. Its visor contains an information uplink HUD." + icon_state = "flighthelmet" + item_state = "flighthelmet" + item_color = "flight" + resistance_flags = FIRE_PROOF | ACID_PROOF + brightness_on = 7 + armor = list(melee = 20, bullet = 20, laser = 20, energy = 10, bomb = 30, bio = 100, rad = 75, fire = 100, acid = 100) + max_heat_protection_temperature = FIRE_HELM_MAX_TEMP_PROTECT + var/list/datahuds = list(DATA_HUD_SECURITY_ADVANCED, DATA_HUD_MEDICAL_ADVANCED, DATA_HUD_DIAGNOSTIC) + +/obj/item/clothing/head/helmet/space/hardsuit/flightsuit/equipped(mob/living/carbon/human/wearer, slot) + ..() + for(var/hudtype in datahuds) + var/datum/atom_hud/H = huds[hudtype] + H.add_hud_to(wearer) + +/obj/item/clothing/head/helmet/space/hardsuit/flightsuit/dropped(mob/living/carbon/human/wearer) + ..() + for(var/hudtype in datahuds) + var/datum/atom_hud/H = huds[hudtype] + H.remove_hud_from(wearer) + + +//ITEM actionS------------------------------------------------------------------------------------------------------------------------------------------------------ +//TODO: TOGGLED BUTTON SPRITES +/datum/action/item_action/flightsuit/toggle_boots + name = "Toggle Boots" + button_icon_state = "flightsuit_shoes" + background_icon_state = "bg_tech" + +/datum/action/item_action/flightsuit/toggle_helmet + name = "Toggle Helmet" + button_icon_state = "flightsuit_helmet" + background_icon_state = "bg_tech" + +/datum/action/item_action/flightsuit/toggle_flightpack + name = "Toggle Flightpack" + button_icon_state = "flightsuit_pack" + background_icon_state = "bg_tech" + +/datum/action/item_action/flightsuit/lock_suit + name = "Lock Suit" + button_icon_state = "flightsuit_lock" + background_icon_state = "bg_tech" + +/datum/action/item_action/flightpack/toggle_flight + name = "Toggle Flight" + button_icon_state = "flightpack_fly" + background_icon_state = "bg_tech_blue" + +/datum/action/item_action/flightpack/engage_boosters + name = "Toggle Boosters" + button_icon_state = "flightpack_boost" + background_icon_state = "bg_tech_blue" + +/datum/action/item_action/flightpack/toggle_stabilizers + name = "Toggle Stabilizers" + button_icon_state = "flightpack_stabilizer" + background_icon_state = "bg_tech_blue" + +/datum/action/item_action/flightpack/change_power + name = "Flight Power Setting" + button_icon_state = "flightpack_power" + background_icon_state = "bg_tech_blue" + +/datum/action/item_action/flightpack/toggle_airbrake + name = "Toggle Airbrake" + button_icon_state = "flightpack_airbrake" + background_icon_state = "bg_tech_blue" diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index 36394c1924..710a385022 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -4,7 +4,9 @@ desc = "A special helmet designed for work in a hazardous, low-pressure environment. Has radiation shielding." icon_state = "hardsuit0-engineering" item_state = "eng_helm" - armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75) + obj_integrity = 300 + max_integrity = 300 + armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75, fire = 50, acid = 75) var/basestate = "hardsuit" var/brightness_on = 4 //luminosity when on var/on = 0 @@ -19,16 +21,25 @@ user.update_inv_head() //so our mob-overlays update if(on) - set_light(brightness_on) + user.AddLuminosity(brightness_on) else - set_light(0) - + user.AddLuminosity(-brightness_on) for(var/X in actions) var/datum/action/A = X A.UpdateButtonIcon() + +/obj/item/clothing/head/helmet/space/hardsuit/pickup(mob/user) + ..() + if(on) + user.AddLuminosity(brightness_on) + SetLuminosity(0) + /obj/item/clothing/head/helmet/space/hardsuit/dropped(mob/user) ..() + if(on) + user.AddLuminosity(-brightness_on) + SetLuminosity(brightness_on) if(suit) suit.RemoveHelmet() @@ -63,7 +74,9 @@ desc = "A special suit that protects against hazardous, low pressure environments. Has radiation shielding." icon_state = "hardsuit-engineering" item_state = "eng_hardsuit" - armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75) + obj_integrity = 300 + max_integrity = 300 + armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75, fire = 50, acid = 75) allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals,/obj/item/device/t_scanner, /obj/item/weapon/rcd, /obj/item/weapon/pipe_dispenser) siemens_coefficient = 0 var/obj/item/clothing/head/helmet/space/hardsuit/helmet @@ -71,11 +84,44 @@ var/helmettype = /obj/item/clothing/head/helmet/space/hardsuit var/obj/item/weapon/tank/jetpack/suit/jetpack = null + /obj/item/clothing/suit/space/hardsuit/New() if(jetpack && ispath(jetpack)) jetpack = new jetpack(src) ..() +/obj/item/clothing/suit/space/hardsuit/attack_self(mob/user) + user.changeNext_move(CLICK_CD_MELEE) + ..() + +/obj/item/clothing/suit/space/hardsuit/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/tank/jetpack/suit)) + if(jetpack) + user << "[src] already has a jetpack installed." + return + if(src == user.get_item_by_slot(slot_wear_suit)) //Make sure the player is not wearing the suit before applying the upgrade. + user << "You cannot install the upgrade to [src] while wearing it." + return + + if(user.unEquip(I)) + jetpack = I + I.loc = src + user << "You successfully install the jetpack into [src]." + + else if(istype(I, /obj/item/weapon/screwdriver)) + if(!jetpack) + user << "[src] has no jetpack installed." + return + if(src == user.get_item_by_slot(slot_wear_suit)) + user << "You cannot remove the jetpack from [src] while wearing it." + return + + jetpack.turn_off() + jetpack.loc = get_turf(src) + jetpack = null + user << "You successfully remove the jetpack from [src]." + + /obj/item/clothing/suit/space/hardsuit/equipped(mob/user, slot) ..() if(jetpack) @@ -101,16 +147,18 @@ desc = "A special helmet designed for work in a hazardous, low-pressure environment. Has radiation shielding." icon_state = "hardsuit0-engineering" item_state = "eng_helm" - armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75) + armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75, fire = 100, acid = 75) item_color = "engineering" + resistance_flags = FIRE_PROOF /obj/item/clothing/suit/space/hardsuit/engine name = "engineering hardsuit" desc = "A special suit that protects against hazardous, low pressure environments. Has radiation shielding." icon_state = "hardsuit-engineering" item_state = "eng_hardsuit" - armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75) + armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75, fire = 100, acid = 75) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/engine + resistance_flags = FIRE_PROOF //Atmospherics /obj/item/clothing/head/helmet/space/hardsuit/engine/atmos @@ -119,7 +167,7 @@ icon_state = "hardsuit0-atmospherics" item_state = "atmo_helm" item_color = "atmospherics" - armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 0) + armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 0, fire = 100, acid = 75) heat_protection = HEAD //Uncomment to enable firesuit protection max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT @@ -128,7 +176,7 @@ desc = "A special suit that protects against hazardous, low pressure environments. Has thermal shielding." icon_state = "hardsuit-atmospherics" item_state = "atmo_hardsuit" - armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 0) + armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 0, 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 helmettype = /obj/item/clothing/head/helmet/space/hardsuit/engine/atmos @@ -141,23 +189,21 @@ icon_state = "hardsuit0-white" item_state = "ce_helm" item_color = "white" - armor = list(melee = 40, bullet = 5, laser = 10, energy = 5, bomb = 50, bio = 100, rad = 90) - heat_protection = HEAD //Uncomment to enable firesuit protection + 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 - /obj/item/clothing/suit/space/hardsuit/engine/elite icon_state = "hardsuit-white" name = "advanced hardsuit" desc = "An advanced suit that protects against hazardous, low pressure environments. Shines with a high polish." item_state = "ce_hardsuit" - armor = list(melee = 40, bullet = 5, laser = 10, energy = 5, bomb = 50, bio = 100, rad = 90) - heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS //Uncomment to enable firesuit protection + 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 helmettype = /obj/item/clothing/head/helmet/space/hardsuit/engine/elite jetpack = /obj/item/weapon/tank/jetpack/suit - //Mining hardsuit /obj/item/clothing/head/helmet/space/hardsuit/mining name = "mining hardsuit helmet" @@ -166,8 +212,9 @@ item_state = "mining_helm" item_color = "mining" max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT + resistance_flags = FIRE_PROOF heat_protection = CHEST|GROIN|LEGS|ARMS - armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 50, bio = 100, rad = 50) + armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 50, bio = 100, rad = 50, fire = 50, acid = 75) brightness_on = 7 allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals, /obj/item/weapon/resonator, /obj/item/device/mining_scanner, /obj/item/device/t_scanner/adv_mining_scanner, /obj/item/weapon/gun/energy/kinetic_accelerator) @@ -178,12 +225,11 @@ desc = "A special suit that protects against hazardous, low pressure environments. Has reinforced plating for wildlife encounters." item_state = "mining_hardsuit" max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT - armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 50, bio = 100, rad = 50) + resistance_flags = FIRE_PROOF + armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 50, bio = 100, rad = 50, fire = 50, acid = 75) allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals,/obj/item/weapon/storage/bag/ore,/obj/item/weapon/pickaxe) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/mining - - //Syndicate hardsuit /obj/item/clothing/head/helmet/space/hardsuit/syndi name = "blood-red hardsuit helmet" @@ -192,7 +238,7 @@ icon_state = "hardsuit1-syndi" item_state = "syndie_helm" item_color = "syndi" - armor = list(melee = 40, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50) + armor = list(melee = 40, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50, fire = 50, acid = 90) on = 1 var/obj/item/clothing/suit/space/hardsuit/syndi/linkedsuit = null actions_types = list(/datum/action/item_action/toggle_helmet_mode) @@ -216,7 +262,7 @@ user << "You switch your hardsuit to EVA mode, sacrificing speed for space protection." name = initial(name) desc = initial(desc) - set_light(brightness_on) + user.AddLuminosity(brightness_on) flags |= visor_flags flags_cover |= HEADCOVERSEYES | HEADCOVERSMOUTH flags_inv |= visor_flags_inv @@ -225,7 +271,7 @@ user << "You switch your hardsuit to combat mode and can now run at full speed." name += " (combat)" desc = alt_desc - set_light(0) + user.AddLuminosity(-brightness_on) flags &= ~visor_flags flags_cover &= ~(HEADCOVERSEYES | HEADCOVERSMOUTH) flags_inv &= ~visor_flags_inv @@ -269,13 +315,12 @@ icon_state = "hardsuit1-syndi" item_state = "syndie_hardsuit" item_color = "syndi" - w_class = 3 - armor = list(melee = 40, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50) + w_class = WEIGHT_CLASS_NORMAL + armor = list(melee = 40, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50, fire = 50, acid = 90) allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword/saber,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi jetpack = /obj/item/weapon/tank/jetpack/suit - //Elite Syndie suit /obj/item/clothing/head/helmet/space/hardsuit/syndi/elite name = "elite syndicate hardsuit helmet" @@ -283,12 +328,13 @@ alt_desc = "An elite version of the syndicate helmet, with improved armour and fire shielding. It is in combat mode. Property of Gorlex Marauders." icon_state = "hardsuit0-syndielite" item_color = "syndielite" - armor = list(melee = 60, bullet = 60, laser = 50, energy = 25, bomb = 55, bio = 100, rad = 70) + 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 visor_flags_inv = 0 visor_flags = 0 on = 0 + resistance_flags = FIRE_PROOF | ACID_PROOF /obj/item/clothing/suit/space/hardsuit/syndi/elite @@ -298,10 +344,10 @@ icon_state = "hardsuit0-syndielite" item_color = "syndielite" 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) + 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 - + resistance_flags = FIRE_PROOF | ACID_PROOF //The Owl Hardsuit /obj/item/clothing/head/helmet/space/hardsuit/syndi/owl @@ -332,8 +378,8 @@ icon_state = "hardsuit0-wiz" item_state = "wiz_helm" item_color = "wiz" - unacidable = 1 //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) + 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 @@ -342,9 +388,9 @@ name = "gem-encrusted hardsuit" desc = "A bizarre gem-encrusted suit that radiates magical energies." item_state = "wiz_hardsuit" - w_class = 3 - unacidable = 1 - armor = list(melee = 40, bullet = 40, laser = 40, energy = 20, bomb = 35, bio = 100, rad = 50) + w_class = WEIGHT_CLASS_NORMAL + resistance_flags = FIRE_PROOF | ACID_PROOF + armor = list(melee = 40, bullet = 40, laser = 40, energy = 20, bomb = 35, bio = 100, rad = 50, fire = 100, acid = 100) allowed = list(/obj/item/weapon/teleportation_scroll,/obj/item/weapon/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 @@ -359,7 +405,7 @@ item_state = "medical_helm" item_color = "medical" flash_protect = 0 - armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 50) + armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 50, fire = 75, acid = 75) scan_reagents = 1 /obj/item/clothing/suit/space/hardsuit/medical @@ -368,38 +414,19 @@ desc = "A special suit that protects against hazardous, low pressure environments. Built with lightweight materials for easier movement." item_state = "medical_hardsuit" allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals,/obj/item/weapon/storage/firstaid,/obj/item/device/healthanalyzer,/obj/item/stack/medical) - armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 50) + armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 50, fire = 75, acid = 75) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/medical - //Captain hardsuit -/obj/item/clothing/head/helmet/space/hardsuit/captain - name = "captain's hardsuit helmet" - desc = "An advanced, armoured helmet for travel and combat in a hazardous, low pressure environment. Feels extra cozy." - icon_state = "hardsuit0-captain" - item_state = "captain_helm" - item_color = "captain" - armor = list(melee = 40, bullet = 50, laser = 50, energy = 25, bomb = 50, bio = 100, rad = 50) - flash_protect = 1 - -/obj/item/clothing/suit/space/hardsuit/captain - name = "captain's hardsuit" - desc = "An advanced, Nanotrasen exclusive, heavily armoured hardsuit that protects against hazardous, low pressure environments. Warm, sexy, and stylish." - icon_state = "hardsuit-captain" - item_state = "captain_hardsuit" - allowed = list(/obj/item/weapon/tank/internals, /obj/item/device/flashlight,/obj/item/weapon/gun/energy, /obj/item/weapon/gun/projectile, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs) - armor = list(melee = 40, bullet = 50, laser = 50, energy = 25, bomb = 50, bio = 100, rad = 50) - helmettype = /obj/item/clothing/head/helmet/space/hardsuit/captain - //Research Director hardsuit /obj/item/clothing/head/helmet/space/hardsuit/rd name = "prototype hardsuit helmet" desc = "A prototype helmet designed for research in a hazardous, low pressure environment. Scientific data flashes across the visor." icon_state = "hardsuit0-rd" item_color = "rd" - unacidable = 1 + resistance_flags = ACID_PROOF | FIRE_PROOF var/onboard_hud_enabled = 0 //stops conflicts with another diag HUD max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT - armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 100, bio = 100, rad = 60) + armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 100, bio = 100, rad = 60, fire = 60, acid = 80) var/obj/machinery/doppler_array/integrated/bomb_radar scan_reagents = 1 actions_types = list(/datum/action/item_action/toggle_helmet_light, /datum/action/item_action/toggle_research_scanner) @@ -428,11 +455,11 @@ name = "prototype hardsuit" desc = "A prototype suit that protects against hazardous, low pressure environments. Fitted with extensive plating for handling explosives and dangerous research materials." item_state = "hardsuit-rd" - unacidable = 1 + resistance_flags = ACID_PROOF | FIRE_PROOF max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT //Same as an emergency firesuit. Not ideal for extended exposure. allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals, /obj/item/weapon/gun/energy/wormhole_projector, /obj/item/weapon/hand_tele, /obj/item/device/aicard) - armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 100, bio = 100, rad = 60) + armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 100, bio = 100, rad = 60, fire = 60, acid = 80) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/rd @@ -444,7 +471,7 @@ icon_state = "hardsuit0-sec" item_state = "sec_helm" item_color = "sec" - armor = list(melee = 30, bullet = 15, laser = 30,energy = 10, bomb = 10, bio = 100, rad = 50) + armor = list(melee = 30, bullet = 15, laser = 30,energy = 10, bomb = 10, bio = 100, rad = 50, fire = 75, acid = 75) /obj/item/clothing/suit/space/hardsuit/security @@ -452,8 +479,8 @@ name = "security hardsuit" desc = "A special suit that protects against hazardous, low pressure environments. Has an additional layer of armor." item_state = "sec_hardsuit" - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals, /obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs) - armor = list(melee = 30, bullet = 15, laser = 30, energy = 10, bomb = 10, bio = 100, rad = 50) + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals, /obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/ballistic,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs) + armor = list(melee = 30, bullet = 15, laser = 30, energy = 10, bomb = 10, bio = 100, rad = 50, fire = 75, acid = 75) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/security /obj/item/clothing/head/helmet/space/hardsuit/security/hos @@ -461,16 +488,68 @@ desc = "a special bulky helmet designed for work in a hazardous, low pressure environment. Has an additional layer of armor." icon_state = "hardsuit0-hos" item_color = "hos" - armor = list(melee = 45, bullet = 25, laser = 30,energy = 10, bomb = 25, bio = 100, rad = 50) + armor = list(melee = 45, bullet = 25, laser = 30,energy = 10, bomb = 25, bio = 100, rad = 50, fire = 95, acid = 95) /obj/item/clothing/suit/space/hardsuit/security/hos icon_state = "hardsuit-hos" name = "head of security's hardsuit" desc = "A special bulky suit that protects against hazardous, low pressure environments. Has an additional layer of armor." - armor = list(melee = 45, bullet = 25, laser = 30, energy = 10, bomb = 25, bio = 100, rad = 50) + armor = list(melee = 45, bullet = 25, laser = 30, energy = 10, bomb = 25, bio = 100, rad = 50, fire = 95, acid = 95) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/security/hos + //Captain +/obj/item/clothing/head/helmet/space/hardsuit/captain + name = "captain's hardsuit helmet" + icon_state = "capspace" + item_state = "capspacehelmet" + desc = "A tactical SWAT helmet MK.II boasting better protection and a horrible fashion sense." + 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 + flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR //we want to see the mask + heat_protection = HEAD + actions_types = list() + +/obj/item/clothing/head/helmet/space/hardsuit/captain/attack_self() + return //Sprites required for flashlight + +/obj/item/clothing/suit/space/hardsuit/captain + name = "captain's SWAT suit" + desc = "A MK.II SWAT suit with streamlined joints and armor made out of superior materials, insulated against intense heat. The most advanced tactical armor available Usually reserved for heavy hitter corporate security, this one has a regal finish in Nanotrasen company colors. Better not let the assistants get a hold of it." + icon_state = "caparmor" + item_state = "capspacesuit" + allowed = list(/obj/item/weapon/tank/internals, /obj/item/device/flashlight,/obj/item/weapon/gun/energy, /obj/item/weapon/gun/ballistic, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs) + 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 + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/captain + + //Clown +/obj/item/clothing/head/helmet/space/hardsuit/clown + name = "cosmohonk hardsuit helmet" + desc = "A special helmet designed for work in a hazardous, low-humor environment. Has radiation shielding." + icon_state = "hardsuit0-clown" + item_state = "hardsuit0-clown" + armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75, fire = 60, acid = 30) + item_color = "clown" + +/obj/item/clothing/suit/space/hardsuit/clown + name = "cosmohonk hardsuit" + desc = "A special suit that protects against hazardous, low humor environments. Has radiation shielding. Only a true clown can wear it." + icon_state = "hardsuit-clown" + item_state = "clown_hardsuit" + armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75, fire = 60, acid = 30) + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/clown + +/obj/item/clothing/suit/space/hardsuit/clown/mob_can_equip(mob/M, slot) + if(!..() || !ishuman(M)) + return FALSE + var/mob/living/carbon/human/H = M + if(H.mind.assigned_role == "Clown") + return TRUE + else + return FALSE /////////////SHIELDED////////////////////////////////// @@ -481,7 +560,8 @@ icon_state = "hardsuit-hos" helmettype = /obj/item/clothing/head/helmet/space/hardsuit/security/hos allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals, /obj/item/weapon/gun,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs) - armor = list(melee = 30, bullet = 15, laser = 30, energy = 10, bomb = 10, bio = 100, rad = 50) + armor = list(melee = 30, bullet = 15, laser = 30, energy = 10, bomb = 10, bio = 100, rad = 50, fire = 100, acid = 100) + resistance_flags = FIRE_PROOF | ACID_PROOF var/current_charges = 3 var/max_charges = 3 //How many charges total the shielding has var/recharge_delay = 200 //How long after we've been shot before we can start recharging. 20 seconds here @@ -490,19 +570,16 @@ var/shield_state = "shield-old" var/shield_on = "shield-old" -/obj/item/clothing/suit/space/hardsuit/shielded/New() - jetpack = new /obj/item/weapon/tank/jetpack/suit(src) - ..() - /obj/item/clothing/suit/space/hardsuit/shielded/hit_reaction(mob/living/carbon/human/owner, attack_text) + recharge_cooldown = world.time + recharge_delay if(current_charges > 0) var/datum/effect_system/spark_spread/s = new s.set_up(2, 1, src) s.start() owner.visible_message("[owner]'s shields deflect [attack_text] in a shower of sparks!") current_charges-- - recharge_cooldown = world.time + recharge_delay - START_PROCESSING(SSobj, src) + if(recharge_rate) + START_PROCESSING(SSobj, src) if(current_charges <= 0) owner.visible_message("[owner]'s shield overloads!") shield_state = "broken" @@ -523,17 +600,17 @@ playsound(loc, 'sound/machines/ding.ogg', 50, 1) STOP_PROCESSING(SSobj, src) shield_state = "[shield_on]" - if(istype(loc, /mob/living/carbon/human)) + if(ishuman(loc)) var/mob/living/carbon/human/C = loc C.update_inv_wear_suit() - - /obj/item/clothing/suit/space/hardsuit/shielded/worn_overlays(isinhands) . = list() if(!isinhands) . += image(icon = 'icons/effects/effects.dmi', icon_state = "[shield_state]") +/obj/item/clothing/head/helmet/space/hardsuit/shielded + resistance_flags = FIRE_PROOF | ACID_PROOF ///////////////Capture the Flag//////////////////// @@ -545,7 +622,7 @@ item_color = "ert_medical" flags = STOPSPRESSUREDMAGE | THICKMATERIAL | NODROP //Dont want people changing into the other teams gear helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/ctf - armor = list(melee = 0, bullet = 30, laser = 30, energy = 30, bomb = 50, bio = 100, rad = 100) + armor = list(melee = 0, bullet = 30, laser = 30, energy = 30, bomb = 50, bio = 100, rad = 100, fire = 95, acid = 95) slowdown = 0 max_charges = 5 @@ -573,7 +650,7 @@ icon_state = "hardsuit0-ert_medical" item_state = "hardsuit0-ert_medical" item_color = "ert_medical" - armor = list(melee = 0, bullet = 30, laser = 30, energy = 30, bomb = 50, bio = 100, rad = 100) + armor = list(melee = 0, bullet = 30, laser = 30, energy = 30, bomb = 50, bio = 100, rad = 100, fire = 95, acid = 95) /obj/item/clothing/head/helmet/space/hardsuit/shielded/ctf/red @@ -600,16 +677,47 @@ icon_state = "hardsuit1-syndi" item_state = "syndie_hardsuit" item_color = "syndi" - armor = list(melee = 40, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50) + armor = list(melee = 40, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50, fire = 100, acid = 100) allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword/saber,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/syndi slowdown = 0 +/obj/item/clothing/suit/space/hardsuit/shielded/syndi/New() + jetpack = new /obj/item/weapon/tank/jetpack/suit(src) + ..() + /obj/item/clothing/head/helmet/space/hardsuit/shielded/syndi name = "blood-red hardsuit helmet" desc = "An advanced hardsuit helmet with built in energy shielding." icon_state = "hardsuit1-syndi" item_state = "syndie_helm" item_color = "syndi" - armor = list(melee = 40, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50) + armor = list(melee = 40, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50, fire = 100, acid = 100) + +///SWAT version +/obj/item/clothing/suit/space/hardsuit/shielded/swat + name = "death commando spacesuit" + desc = "an advanced hardsuit favored by commandos for use in special operations." + icon_state = "deathsquad" + item_state = "swat_suit" + item_color = "syndi" + max_charges = 4 + current_charges = 4 + recharge_delay = 15 + armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100, fire = 100, acid = 100) + strip_delay = 130 + max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/swat + dog_fashion = /datum/dog_fashion/back/deathsquad + +/obj/item/clothing/head/helmet/space/hardsuit/shielded/swat + name = "death commando helmet" + desc = "A tactical helmet with built in energy shielding." + icon_state = "deathsquad" + item_state = "deathsquad" + 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 + actions_types = list() diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm index 6f8a5b1266..870cbecfc1 100644 --- a/code/modules/clothing/spacesuits/miscellaneous.dm +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -16,41 +16,42 @@ Contains: //Death squad armored space suits, not hardsuits! /obj/item/clothing/head/helmet/space/hardsuit/deathsquad - name = "deathsquad helmet" - desc = "That's not red paint. That's real blood." + name = "MK.III SWAT Helmet" + desc = "An advanced tactical space helmet." icon_state = "deathsquad" item_state = "deathsquad" - armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100) + 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 - unacidable = 1 + resistance_flags = FIRE_PROOF | ACID_PROOF actions_types = list() /obj/item/clothing/head/helmet/space/hardsuit/deathsquad/attack_self(mob/user) return /obj/item/clothing/suit/space/hardsuit/deathsquad - name = "deathsquad suit" - desc = "A heavily armored, advanced space suit that protects against most forms of damage." + name = "MK.III SWAT Suit" + desc = "A prototype designed to replace the ageing MK.II SWAT suit. Based on the streamlined MK.II model, the traditional ceramic and graphene plate construction was replaced with plasteel, allowing superior armor against most threats. There's room for some kind of energy projection device on the back." icon_state = "deathsquad" item_state = "swat_suit" allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals,/obj/item/weapon/kitchen/knife/combat) - armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100) + 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 - unacidable = 1 + resistance_flags = FIRE_PROOF | ACID_PROOF helmettype = /obj/item/clothing/head/helmet/space/hardsuit/deathsquad dog_fashion = /datum/dog_fashion/back/deathsquad //NEW SWAT suit /obj/item/clothing/suit/space/swat - name = "SWAT armor" - desc = "Space-proof tactical SWAT armor." + name = "MK.I SWAT Suit" + desc = "A tactical space suit first developed in a joint effort by the defunct IS-ERI and Nanotrasen in 20XX for military space operations. A tried and true workhorse, it is very difficult to move in but offers robust protection against all threats!" icon_state = "heavy" item_state = "swat_suit" allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals,/obj/item/weapon/kitchen/knife/combat) - armor = list(melee = 40, bullet = 30, laser = 30,energy = 30, bomb = 50, bio = 90, rad = 20) + armor = list(melee = 40, bullet = 30, laser = 30,energy = 30, bomb = 50, bio = 90, rad = 20, fire = 100, acid = 100) strip_delay = 120 + resistance_flags = FIRE_PROOF | ACID_PROOF /obj/item/clothing/head/helmet/space/beret name = "officer's beret" @@ -58,10 +59,10 @@ Contains: icon_state = "beret_badge" flags = STOPSPRESSUREDMAGE flags_inv = 0 - armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100) + 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 - unacidable = 1 + resistance_flags = FIRE_PROOF | ACID_PROOF /obj/item/clothing/suit/space/officer name = "officer's jacket" @@ -71,12 +72,12 @@ Contains: blood_overlay_type = "coat" slowdown = 0 flags_inv = 0 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals) - armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100) + 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 - unacidable = 1 + resistance_flags = FIRE_PROOF | ACID_PROOF //NASA Voidsuit @@ -120,7 +121,7 @@ Contains: desc = "Yarr." icon_state = "pirate" item_state = "pirate" - armor = list(melee = 30, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30) + armor = list(melee = 30, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30, fire = 60, acid = 75) flags = STOPSPRESSUREDMAGE strip_delay = 40 put_on_delay = 20 @@ -131,11 +132,11 @@ Contains: desc = "Yarr." icon_state = "pirate" item_state = "pirate" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL flags_inv = 0 allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals, /obj/item/weapon/melee/energy/sword/pirate, /obj/item/clothing/glasses/eyepatch, /obj/item/weapon/reagent_containers/food/drinks/bottle/rum) slowdown = 0 - armor = list(melee = 30, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30) + armor = list(melee = 30, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30, fire = 60, acid = 75) strip_delay = 40 put_on_delay = 20 @@ -146,7 +147,7 @@ Contains: icon_state = "hardsuit0-ert_commander" item_state = "hardsuit0-ert_commander" item_color = "ert_commander" - armor = list(melee = 65, bullet = 50, laser = 50, energy = 50, bomb = 50, bio = 100, rad = 100) + armor = list(melee = 65, bullet = 50, laser = 50, energy = 50, bomb = 50, bio = 100, rad = 100, fire = 80, acid = 80) strip_delay = 130 flags = STOPSPRESSUREDMAGE | THICKMATERIAL | NODROP brightness_on = 7 @@ -158,7 +159,7 @@ Contains: item_state = "ert_command" helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals) - armor = list(melee = 30, bullet = 50, laser = 30, energy = 50, bomb = 50, bio = 100, rad = 100) + armor = list(melee = 30, bullet = 50, laser = 30, energy = 50, bomb = 50, bio = 100, rad = 100, fire = 0, acid = 95) slowdown = 0 strip_delay = 130 @@ -200,13 +201,14 @@ Contains: icon_state = "ert_medical" item_state = "ert_medical" helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/med + species_exception = list(/datum/species/angel) /obj/item/clothing/suit/space/eva name = "EVA suit" icon_state = "space" item_state = "s_suit" desc = "A lightweight space suit with the basic ability to protect the wearer from the vacuum of space during emergencies." - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20) + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20, fire = 50, acid = 65) /obj/item/clothing/head/helmet/space/eva name = "EVA helmet" @@ -214,17 +216,17 @@ Contains: item_state = "space" desc = "A lightweight space helmet with the basic ability to protect the wearer from the vacuum of space during emergencies." flash_protect = 0 - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20) + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20, fire = 50, acid = 65) /obj/item/clothing/head/helmet/space/freedom name = "eagle helmet" desc = "An advanced, space-proof helmet. It appears to be modeled after an old-world eagle." icon_state = "griffinhat" item_state = "griffinhat" - armor = list(melee = 20, bullet = 40, laser = 30, energy = 25, bomb = 100, bio = 100, rad = 100) + 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 - unacidable = 1 + resistance_flags = ACID_PROOF /obj/item/clothing/suit/space/freedom name = "eagle suit" @@ -232,10 +234,10 @@ Contains: icon_state = "freedom" item_state = "freedom" allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals) - armor = list(melee = 20, bullet = 40, laser = 30,energy = 25, bomb = 100, bio = 100, rad = 100) + 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 - unacidable = 1 + resistance_flags = ACID_PROOF //Carpsuit, bestsuit, lovesuit /obj/item/clothing/head/helmet/space/hardsuit/carp @@ -243,7 +245,7 @@ Contains: desc = "Spaceworthy and it looks like a space carp's head, smells like one too." icon_state = "carp_helm" item_state = "syndicate" - armor = list(melee = -20, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 75) //As whimpy as a space carp + armor = list(melee = -20, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 75, fire = 60, acid = 75) //As whimpy as a space carp brightness_on = 0 //luminosity when on actions_types = list() flags = STOPSPRESSUREDMAGE | THICKMATERIAL | NODROP @@ -255,8 +257,8 @@ Contains: icon_state = "carp_suit" item_state = "space_suit_syndicate" slowdown = 0 //Space carp magic, never stop believing - armor = list(melee = -20, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 75) //As whimpy whimpy whoo - allowed = list(/obj/item/weapon/tank/internals, /obj/item/weapon/gun/projectile/automatic/speargun) //I'm giving you a hint here + armor = list(melee = -20, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 75, fire = 60, acid = 75) //As whimpy whimpy whoo + allowed = list(/obj/item/weapon/tank/internals, /obj/item/weapon/gun/ballistic/automatic/speargun) //I'm giving you a hint here helmettype = /obj/item/clothing/head/helmet/space/hardsuit/carp @@ -268,6 +270,7 @@ Contains: item_color = "knight_grey" max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT actions_types = list() + resistance_flags = FIRE_PROOF /obj/item/clothing/suit/space/hardsuit/ert/paranormal name = "paranormal response team suit" @@ -276,7 +279,7 @@ Contains: item_state = "knight_grey" helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT - + resistance_flags = FIRE_PROOF /obj/item/clothing/suit/space/hardsuit/ert/paranormal/New() ..() diff --git a/code/modules/clothing/spacesuits/plasmamen.dm b/code/modules/clothing/spacesuits/plasmamen.dm index fbd5b33ad7..fc09409ff9 100644 --- a/code/modules/clothing/spacesuits/plasmamen.dm +++ b/code/modules/clothing/spacesuits/plasmamen.dm @@ -5,7 +5,8 @@ name = "plasmaman suit" desc = "A special containment suit designed to protect a plasmaman's volatile body from outside exposure and quickly extinguish it in emergencies." allowed = list(/obj/item/weapon/gun,/obj/item/ammo_casing,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank) - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 0) + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 0, fire = 100, acid = 75) + resistance_flags = FIRE_PROOF icon_state = "plasmaman_suit" item_state = "plasmaman_suit" var/next_extinguish = 0 @@ -41,5 +42,7 @@ item_color = "plasma" //needed for the helmet lighting item_state = "plasmaman-helm" strip_delay = 80 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 0, fire = 100, acid = 75) + resistance_flags = FIRE_PROOF diff --git a/code/modules/clothing/spacesuits/syndi.dm b/code/modules/clothing/spacesuits/syndi.dm index 56cb78d8f2..04c4a56708 100644 --- a/code/modules/clothing/spacesuits/syndi.dm +++ b/code/modules/clothing/spacesuits/syndi.dm @@ -1,20 +1,19 @@ //Regular syndicate space suit /obj/item/clothing/head/helmet/space/syndicate name = "red space helmet" - desc = "Top secret spess helmet." icon_state = "syndicate" item_state = "syndicate" desc = "Has a tag: Totally not property of an enemy corporation, honest." - armor = list(melee = 40, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30) + armor = list(melee = 40, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30, fire = 80, acid = 85) /obj/item/clothing/suit/space/syndicate name = "red space suit" icon_state = "syndicate" item_state = "space_suit_syndicate" desc = "Has a tag on it: Totally not property of of a hostile corporation, honest!" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword/saber,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals) - armor = list(melee = 40, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30) + armor = list(melee = 40, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30, fire = 80, acid = 85) //Green syndicate space suit @@ -146,4 +145,4 @@ /obj/item/clothing/suit/space/syndicate/black/engie name = "black engineering space suit" icon_state = "syndicate-black-engie" - item_state = "syndicate-black" \ No newline at end of file + item_state = "syndicate-black" diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index 1ad08042ed..a3160c0383 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -1,5 +1,5 @@ /obj/item/clothing/suit/armor - allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic,/obj/item/weapon/kitchen/knife/combat,/obj/item/weapon/tank/internals/emergency_oxygen) + allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/ballistic,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic,/obj/item/weapon/kitchen/knife/combat,/obj/item/weapon/tank/internals/emergency_oxygen) body_parts_covered = CHEST cold_protection = CHEST|GROIN min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT @@ -7,7 +7,10 @@ max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT strip_delay = 60 put_on_delay = 40 - burn_state = FIRE_PROOF + obj_integrity = 250 + max_integrity = 250 + resistance_flags = 0 + armor = list(melee = 30, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 50, acid = 50) /obj/item/clothing/suit/armor/vest name = "armor" @@ -15,7 +18,6 @@ icon_state = "armoralt" item_state = "armoralt" blood_overlay_type = "armor" - armor = list(melee = 30, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0) dog_fashion = /datum/dog_fashion/back /obj/item/clothing/suit/armor/vest/alt @@ -23,13 +25,17 @@ icon_state = "armor" item_state = "armor" +/obj/item/clothing/suit/armor/vest/blueshirt + icon_state = "blueshift" + item_state = "blueshift" + /obj/item/clothing/suit/armor/hos name = "armored greatcoat" desc = "A greatcoat enchanced with a special alloy for some protection and style for those with a commanding presence." icon_state = "hos" item_state = "greatcoat" body_parts_covered = CHEST|GROIN|ARMS|LEGS - armor = list(melee = 30, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0) + armor = list(melee = 30, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 70, acid = 90) cold_protection = CHEST|GROIN|LEGS|ARMS heat_protection = CHEST|GROIN|LEGS|ARMS strip_delay = 80 @@ -51,7 +57,7 @@ cold_protection = CHEST|GROIN|ARMS|HANDS heat_protection = CHEST|GROIN|ARMS|HANDS strip_delay = 70 - burn_state = FLAMMABLE + resistance_flags = FLAMMABLE dog_fashion = null /obj/item/clothing/suit/armor/vest/warden/alt @@ -75,8 +81,9 @@ icon_state = "capcarapace" item_state = "armor" body_parts_covered = CHEST|GROIN - armor = list(melee = 50, bullet = 40, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0) + armor = list(melee = 50, bullet = 40, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 100, acid = 90) dog_fashion = null + resistance_flags = FIRE_PROOF /obj/item/clothing/suit/armor/vest/capcarapace/alt name = "captain's parade jacket" @@ -92,7 +99,7 @@ body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS cold_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS - armor = list(melee = 50, bullet = 10, laser = 10, energy = 10, bomb = 0, bio = 0, rad = 0) + armor = list(melee = 50, bullet = 10, laser = 10, energy = 10, bomb = 0, bio = 0, rad = 0, fire = 80, acid = 80) flags_inv = HIDEJUMPSUIT strip_delay = 80 put_on_delay = 60 @@ -103,7 +110,7 @@ icon_state = "bonearmor" item_state = "bonearmor" blood_overlay_type = "armor" - armor = list(melee = 35, bullet = 25, laser = 25, energy = 10, bomb = 25, bio = 0, rad = 0) + armor = list(melee = 35, bullet = 25, laser = 25, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 50, acid = 50) body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS /obj/item/clothing/suit/armor/bulletproof @@ -112,7 +119,7 @@ icon_state = "bulletproof" item_state = "armor" blood_overlay_type = "armor" - armor = list(melee = 15, bullet = 80, laser = 10, energy = 10, bomb = 40, bio = 0, rad = 0) + armor = list(melee = 15, bullet = 80, laser = 10, energy = 10, bomb = 40, bio = 0, rad = 0, fire = 50, acid = 50) strip_delay = 70 put_on_delay = 50 @@ -122,7 +129,8 @@ icon_state = "armor_reflec" item_state = "armor_reflec" blood_overlay_type = "armor" - armor = list(melee = 10, bullet = 10, laser = 60, energy = 50, bomb = 0, bio = 0, rad = 0) + armor = list(melee = 10, bullet = 10, laser = 60, energy = 50, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 100) + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF var/hit_reflect_chance = 40 /obj/item/clothing/suit/armor/laserproof/IsReflect(def_zone) @@ -135,8 +143,8 @@ name = "armor" desc = "An armored vest with a detective's badge on it." icon_state = "detective-armor" - allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/device/flashlight,/obj/item/weapon/gun/energy,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/device/detective_scanner,/obj/item/device/taperecorder,/obj/item/weapon/melee/classic_baton/telescopic) - burn_state = FLAMMABLE + allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/device/flashlight,/obj/item/weapon/gun/energy,/obj/item/weapon/gun/ballistic,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/device/detective_scanner,/obj/item/device/taperecorder,/obj/item/weapon/melee/classic_baton) + resistance_flags = FLAMMABLE dog_fashion = null @@ -150,9 +158,9 @@ icon_state = "reactiveoff" item_state = "reactiveoff" blood_overlay_type = "armor" - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0) + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 100) actions_types = list(/datum/action/item_action/toggle) - unacidable = 1 + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF hit_reaction_chance = 50 @@ -166,7 +174,7 @@ user << "[src] is now inactive." src.icon_state = "reactiveoff" src.item_state = "reactiveoff" - src.add_fingerprint(user) + src.add_fingerprint(user) return /obj/item/clothing/suit/armor/reactive/emp_act(severity) @@ -275,7 +283,7 @@ for(var/mob/living/M in view(6, owner)) if(M == owner) continue - owner.Beam(M,icon_state="lightning[rand(1, 12)]",icon='icons/effects/effects.dmi',time=5) + owner.Beam(M,icon_state="lightning[rand(1, 12)]",time=5) M.adjustFireLoss(25) playsound(M, 'sound/machines/defib_zap.ogg', 50, 1, -1) reactivearmor_cooldown = world.time + reactivearmor_cooldown_duration @@ -327,7 +335,7 @@ desc = "A suit that protects against some damage." icon_state = "centcom" item_state = "centcom" - w_class = 4//bulky item + w_class = WEIGHT_CLASS_BULKY body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals/emergency_oxygen) flags = THICKMATERIAL @@ -336,20 +344,20 @@ min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS max_heat_protection_temperature = SPACE_SUIT_MAX_TEMP_PROTECT - armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100) + armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100, fire = 90, acid = 90) /obj/item/clothing/suit/armor/heavy name = "heavy armor" desc = "A heavily armored suit that protects against moderate damage." icon_state = "heavy" item_state = "swat_suit" - w_class = 4//bulky item + w_class = WEIGHT_CLASS_BULKY gas_transfer_coefficient = 0.90 flags = THICKMATERIAL body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS slowdown = 3 flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT - armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100) + armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100, fire = 90, acid = 90) /obj/item/clothing/suit/armor/tdome body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS @@ -357,7 +365,7 @@ flags = THICKMATERIAL cold_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS - armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100) + armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100, fire = 90, acid = 90) /obj/item/clothing/suit/armor/tdome/red name = "thunderdome suit" @@ -395,50 +403,3 @@ desc = "God wills it!" icon_state = "knight_templar" item_state = "knight_templar" - -/obj/item/clothing/suit/armor/yautja_fake - name = "ceremonial breastplate" - desc = "Half of an aging, ceremonial breastplate. Its usefulness as armor are long gone." - icon_state = "yautjahalfarmor" - item_state = "yautjahalfarmor" - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0) - unacidable = TRUE - burn_state = FIRE_PROOF - body_parts_covered = CHEST|GROIN|LEGS|ARMS - cold_protection = CHEST|GROIN|LEGS|ARMS - heat_protection = CHEST|GROIN|LEGS|ARMS - allowed = list(/obj/item/device/flashlight, - /obj/item/weapon/tank/internals, - /obj/item/weapon/resonator, - /obj/item/device/mining_scanner, - /obj/item/device/t_scanner/adv_mining_scanner, - /obj/item/weapon/gun/energy/kinetic_accelerator, - /obj/item/weapon/pickaxe) - -/obj/item/clothing/suit/armor/yautja - name = "clan breastplate" - desc = "An armored breastplate. This type is used by most clans for combat among elders." - icon_state = "yautjafullarmor" - item_state = "yautjafullarmor" - armor = list(melee = 50, bullet = 50, laser = 50, energy = 50, bomb = 50, bio = 0, rad = 15) - unacidable = TRUE - burn_state = FIRE_PROOF - body_parts_covered = CHEST|GROIN|LEGS|ARMS - cold_protection = CHEST|GROIN|LEGS|ARMS - heat_protection = CHEST|GROIN|LEGS|ARMS - allowed = list(/obj/item/device/flashlight, - /obj/item/weapon/tank/internals, - /obj/item/weapon/resonator, - /obj/item/device/mining_scanner, - /obj/item/device/t_scanner/adv_mining_scanner, - /obj/item/weapon/gun, - /obj/item/weapon/pickaxe, - /obj/item/weapon/melee, - /obj/item/weapon/kitchen/knife) - -/obj/item/clothing/suit/armor/yautja/half - name = "clan half-breastplate" - desc = "Half of an armored breastplate. This type is used by most clans for combat among blooded." - icon_state = "yautjahalfarmor" - item_state = "yautjahalfarmor" - armor = list(melee = 30, bullet = 30, laser = 30, energy = 30, bomb = 30, bio = 0, rad = 5) diff --git a/code/modules/clothing/suits/bio.dm b/code/modules/clothing/suits/bio.dm index 538e00e825..e38397fd85 100644 --- a/code/modules/clothing/suits/bio.dm +++ b/code/modules/clothing/suits/bio.dm @@ -5,10 +5,9 @@ desc = "A hood that protects the head and face from biological comtaminants." permeability_coefficient = 0.01 flags = THICKMATERIAL - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20) + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20, fire = 30, acid = 100) flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR|HIDEFACE - unacidable = 1 - burn_state = FIRE_PROOF + resistance_flags = ACID_PROOF flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH /obj/item/clothing/suit/bio_suit @@ -16,19 +15,18 @@ desc = "A suit that protects against biological contamination." icon_state = "bio" item_state = "bio_suit" - w_class = 4//bulky item + w_class = WEIGHT_CLASS_BULKY gas_transfer_coefficient = 0.01 permeability_coefficient = 0.01 flags = THICKMATERIAL body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS slowdown = 1 allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/pen,/obj/item/device/flashlight/pen, /obj/item/weapon/reagent_containers/dropper, /obj/item/weapon/reagent_containers/syringe, /obj/item/weapon/reagent_containers/hypospray) - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20) + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20, fire = 30, acid = 100) flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT strip_delay = 70 put_on_delay = 70 - unacidable = 1 - burn_state = FIRE_PROOF + resistance_flags = ACID_PROOF //Standard biosuit, orange stripe /obj/item/clothing/head/bio_hood/general @@ -48,11 +46,11 @@ //Security biosuit, grey with red stripe across the chest /obj/item/clothing/head/bio_hood/security - armor = list(melee = 25, bullet = 15, laser = 25, energy = 10, bomb = 25, bio = 100, rad = 20) + armor = list(melee = 25, bullet = 15, laser = 25, energy = 10, bomb = 25, bio = 100, rad = 20, fire = 30, acid = 100) icon_state = "bio_security" /obj/item/clothing/suit/bio_suit/security - armor = list(melee = 25, bullet = 15, laser = 25, energy = 10, bomb = 25, bio = 100, rad = 20) + armor = list(melee = 25, bullet = 15, laser = 25, energy = 10, bomb = 25, bio = 100, rad = 20, fire = 30, acid = 100) icon_state = "bio_security" diff --git a/code/modules/clothing/suits/cloaks.dm b/code/modules/clothing/suits/cloaks.dm index 53e4b59866..cad3e4bf78 100644 --- a/code/modules/clothing/suits/cloaks.dm +++ b/code/modules/clothing/suits/cloaks.dm @@ -1,12 +1,12 @@ //Cloaks. No, not THAT kind of cloak. -/obj/item/clothing/suit/cloak +/obj/item/clothing/neck/cloak name = "brown cloak" - desc = "It's a cape that can be worn on your back." + desc = "It's a cape that can be worn around your neck." icon = 'icons/obj/clothing/cloaks.dmi' icon_state = "qmcloak" item_state = "qmcloak" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL body_parts_covered = CHEST|GROIN|LEGS|ARMS /obj/item/clothing/head/cloakhood @@ -18,118 +18,57 @@ flags = NODROP flags_inv = HIDEHAIR|HIDEEARS -/obj/item/clothing/cloak/suicide_act(mob/user) - user.visible_message("[user] is strangling themself with [src]! It looks like they're trying to commit suicide.") +/obj/item/clothing/neck/cloak/suicide_act(mob/user) + user.visible_message("[user] is strangling [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!") return(OXYLOSS) -/obj/item/clothing/suit/cloak/hos +/obj/item/clothing/neck/cloak/hos name = "head of security's cloak" desc = "Worn by Securistan, ruling the station with an iron fist. It's slightly armored." icon_state = "hoscloak" - allowed = list(/obj/item/weapon/gun/energy/gun/hos) - armor = list(melee = 30, bullet = 30, laser = 10, energy = 10, bomb = 25, bio = 0, rad = 0) -/obj/item/clothing/suit/cloak/qm +/obj/item/clothing/neck/cloak/qm name = "quartermaster's cloak" desc = "Worn by Cargonia, supplying the station with the necessary tools for survival." -/obj/item/clothing/suit/cloak/cmo +/obj/item/clothing/neck/cloak/cmo name = "chief medical officer's cloak" desc = "Worn by Meditopia, the valiant men and women keeping pestilence at bay. It's slightly shielded from contaminants." icon_state = "cmocloak" - allowed = list(/obj/item/weapon/reagent_containers/hypospray/CMO) - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 25, rad = 0) -/obj/item/clothing/suit/cloak/ce +/obj/item/clothing/neck/cloak/ce name = "chief engineer's cloak" desc = "Worn by Engitopia, wielders of an unlimited power. It's slightly shielded against radiation." icon_state = "cecloak" - allowed = list(/obj/item/weapon/rcd, /obj/item/weapon/pipe_dispenser) - armor = list(melee = 10, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 10) -/obj/item/clothing/suit/cloak/rd +/obj/item/clothing/neck/cloak/rd name = "research director's cloak." desc = "Worn by Sciencia, thaumaturges and researchers of the universe. It's slightly shielded from contaminants." icon_state = "rdcloak" - allowed = list(/obj/item/weapon/hand_tele, /obj/item/weapon/storage/part_replacer) - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 10, bio = 10, rad = 0) -/obj/item/clothing/suit/cloak/cap +/obj/item/clothing/neck/cloak/cap name = "captain's cloak" desc = "Worn by the commander of Space Station 13." icon_state = "capcloak" - allowed = list(/obj/item/weapon/gun/energy/laser/captain) - armor = list(melee = 30, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 10, rad = 10) /obj/item/clothing/suit/hooded/cloak/drake name = "drake armour" icon_state = "dragon" desc = "A suit of armour fashioned from the remains of an ash drake. " allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals, /obj/item/weapon/resonator, /obj/item/device/mining_scanner, /obj/item/device/t_scanner/adv_mining_scanner, /obj/item/weapon/gun/energy/kinetic_accelerator, /obj/item/weapon/pickaxe, /obj/item/weapon/twohanded/spear) - armor = list(melee = 70, bullet = 30, laser = 50, energy = 40, bomb = 70, bio = 60, rad = 50) + armor = list(melee = 70, bullet = 30, laser = 50, energy = 40, bomb = 70, bio = 60, rad = 50, fire = 100, acid = 100) hooded = 1 hoodtype = /obj/item/clothing/head/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 - unacidable = 1 + resistance_flags = FIRE_PROOF | ACID_PROOF /obj/item/clothing/head/cloakhood/drake name = "drake helm" icon_state = "dragon" desc = "The skull of a dragon." - armor = list(melee = 70, bullet = 30, laser = 50, energy = 40, bomb = 70, bio = 60, rad = 50) + 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 - unacidable = 1 - -/* //wip -/obj/item/clothing/cloak/wizard //Not actually obtainable until proper balancing can be done - name = "cloak of invisibility" - desc = "A tattered old thing that apparently gifts the wearer with near-invisibility." - armor = list(melee = 10, bullet = 10, laser = 10, energy = 10, bomb = 10, bio = 10, rad = 10) - action_button_name = "Flaunt Cloak" - var/invisible = 0 - -/obj/item/clothing/cloak/wizard/ui_action_click() - toggleInvisibility(usr) - return - -/obj/item/clothing/cloak/wizard/proc/toggleInvisibility(mob/user) - if(user.slot_back != src) - user << "You need to be wearing the cloak first!" - return - user.visible_message("[user] flaunts [src]!") - if(!invisible) - makeInvisible(user) - return - if(invisible) - breakInvisible(user) - return - -/obj/item/clothing/cloak/wizard/proc/makeInvisible(mob/user) - if(!invisible) - user.visible_message("[user] suddenly fades away!", \ - "You have become nearly invisible. This will require slow movement and will break upon taking damage.") - flags |= NODROP //Cannot unequip while invisible - user.alpha = 10 - slowdown = 2 - invisible = 1 - -/obj/item/clothing/cloak/wizard/proc/breakInvisible(mob/user) - if(invisible) - user.visible_message("[user] suddenly appears from thin air!", \ - "The enchantment has broken! You are visible again.") - flags -= NODROP - user.alpha = 255 - slowdown = 0 - invisible = 0 - -/obj/item/clothing/cloak/wizard/IsShield() - breakInvisible(src.loc) - return 0 - -/obj/item/clothing/cloak/wizard/IsReflect() - breakInvisible(src.loc) - return 0 -*/ + resistance_flags = FIRE_PROOF | ACID_PROOF diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm index 0bd5ed9a58..40fe152707 100644 --- a/code/modules/clothing/suits/jobs.dm +++ b/code/modules/clothing/suits/jobs.dm @@ -41,7 +41,6 @@ flags = NODROP flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS -//Chaplain /obj/item/clothing/suit/nun name = "nun robe" desc = "Maximum piety in this star system." @@ -51,6 +50,22 @@ flags_inv = HIDESHOES|HIDEJUMPSUIT allowed = list(/obj/item/weapon/storage/book/bible, /obj/item/weapon/nullrod, /obj/item/weapon/reagent_containers/food/drinks/bottle/holywater, /obj/item/weapon/storage/fancy/candle_box, /obj/item/candle, /obj/item/weapon/tank/internals/emergency_oxygen) +/obj/item/clothing/suit/studentuni + name = "student robe" + desc = "The uniform of a bygone institute of learning." + icon_state = "studentuni" + item_state = "studentuni" + body_parts_covered = ARMS|CHEST + allowed = list(/obj/item/weapon/storage/book/bible, /obj/item/weapon/nullrod, /obj/item/weapon/reagent_containers/food/drinks/bottle/holywater, /obj/item/weapon/storage/fancy/candle_box, /obj/item/candle, /obj/item/weapon/tank/internals/emergency_oxygen) + +/obj/item/clothing/suit/witchhunter + name = "witchunter garb" + desc = "This worn outfit saw much use back in the day." + icon_state = "witchhunter" + item_state = "witchhunter" + body_parts_covered = CHEST|GROIN|LEGS|ARMS + allowed = list(/obj/item/weapon/storage/book/bible, /obj/item/weapon/nullrod, /obj/item/weapon/reagent_containers/food/drinks/bottle/holywater, /obj/item/weapon/storage/fancy/candle_box, /obj/item/candle, /obj/item/weapon/tank/internals/emergency_oxygen) + //Chef /obj/item/clothing/suit/toggle/chef name = "chef's apron" @@ -81,8 +96,8 @@ item_state = "det_suit" blood_overlay_type = "coat" body_parts_covered = CHEST|GROIN|LEGS|ARMS - allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/device/flashlight,/obj/item/weapon/gun/energy,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/device/detective_scanner,/obj/item/device/taperecorder,/obj/item/weapon/melee/classic_baton/telescopic) - armor = list(melee = 25, bullet = 10, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0) + allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/device/flashlight,/obj/item/weapon/gun/energy,/obj/item/weapon/gun/ballistic,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/device/detective_scanner,/obj/item/device/taperecorder,/obj/item/weapon/melee/classic_baton/telescopic) + armor = list(melee = 25, bullet = 10, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 45) cold_protection = CHEST|GROIN|LEGS|ARMS heat_protection = CHEST|GROIN|LEGS|ARMS @@ -100,8 +115,7 @@ item_state = "hazard" blood_overlay_type = "armor" allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/device/t_scanner,/obj/item/device/radio) - burn_state = FIRE_PROOF - + resistance_flags = 0 //Lawyer /obj/item/clothing/suit/toggle/lawyer name = "blue suit jacket" @@ -155,10 +169,22 @@ item_state = "hosbluejacket" body_parts_covered = CHEST|ARMS - //Surgeon /obj/item/clothing/suit/apron/surgical name = "surgical apron" desc = "A sterile blue surgical apron." icon_state = "surgical" allowed = list(/obj/item/weapon/scalpel, /obj/item/weapon/surgical_drapes, /obj/item/weapon/cautery, /obj/item/weapon/hemostat, /obj/item/weapon/retractor) + +//Curator +/obj/item/clothing/suit/curator + name = "treasure hunter's coat" + desc = "Both fashionable and lightly armoured, this jacket is favoured by treasure hunters the galaxy over." + icon_state = "curator" + item_state = "curator" + blood_overlay_type = "coat" + body_parts_covered = CHEST|ARMS + allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen, /obj/item/weapon/melee/curator_whip) + armor = list(melee = 25, bullet = 10, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 45) + cold_protection = CHEST|ARMS + heat_protection = CHEST|ARMS \ No newline at end of file diff --git a/code/modules/clothing/suits/labcoat.dm b/code/modules/clothing/suits/labcoat.dm index 8012741bf0..c4d2678650 100644 --- a/code/modules/clothing/suits/labcoat.dm +++ b/code/modules/clothing/suits/labcoat.dm @@ -6,7 +6,7 @@ blood_overlay_type = "coat" body_parts_covered = CHEST|ARMS allowed = list(/obj/item/device/analyzer,/obj/item/stack/medical,/obj/item/weapon/dnainjector,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/hypospray,/obj/item/device/healthanalyzer,/obj/item/device/flashlight/pen,/obj/item/weapon/reagent_containers/glass/bottle,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/pill,/obj/item/weapon/storage/pill_bottle,/obj/item/weapon/paper,/obj/item/weapon/melee/classic_baton/telescopic,/obj/item/weapon/soap,/obj/item/device/sensor_device,/obj/item/weapon/tank/internals/emergency_oxygen) - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 50, rad = 0) + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 50, rad = 0, fire = 50, acid = 50) togglename = "buttons" /obj/item/clothing/suit/toggle/labcoat/cmo @@ -45,4 +45,4 @@ /obj/item/clothing/suit/toggle/labcoat/science name = "scientist labcoat" desc = "A suit that protects against minor chemical spills. Has a purple stripe on the shoulder." - icon_state = "labcoat_tox" + icon_state = "labcoat_tox" \ No newline at end of file diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index ab103d838b..a667839ffb 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -16,7 +16,7 @@ blood_overlay_type = "armor" body_parts_covered = CHEST allowed = list (/obj/item/weapon/gun/energy/laser/bluetag) - burn_state = FIRE_PROOF + resistance_flags = 0 /obj/item/clothing/suit/redtag name = "red laser tag armor" @@ -26,7 +26,7 @@ blood_overlay_type = "armor" body_parts_covered = CHEST allowed = list (/obj/item/weapon/gun/energy/laser/redtag) - burn_state = FIRE_PROOF + resistance_flags = 0 /* * Costume @@ -38,12 +38,11 @@ item_state = "pirate" allowed = list(/obj/item/weapon/melee/energy/sword/pirate, /obj/item/clothing/glasses/eyepatch, /obj/item/weapon/reagent_containers/food/drinks/bottle/rum) -/obj/item/clothing/suit/hgpirate +/obj/item/clothing/suit/pirate/captain name = "pirate captain coat" desc = "Yarr." icon_state = "hgpirate" item_state = "hgpirate" - allowed = list(/obj/item/weapon/melee/energy/sword/pirate, /obj/item/clothing/glasses/eyepatch, /obj/item/weapon/reagent_containers/food/drinks/bottle/rum) /obj/item/clothing/suit/cyborg_suit @@ -87,10 +86,10 @@ icon_state = "syndicate-black-red" item_state = "syndicate-black-red" desc = "A plastic replica of the Syndicate space suit. You'll look just like a real murderous Syndicate agent in this! This is a toy, it is not made for use in space!" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy) flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT - burn_state = FIRE_PROOF + resistance_flags = 0 /obj/item/clothing/suit/hastur name = "\improper Hastur's robe" @@ -135,7 +134,7 @@ item_state = "owl_wings" togglename = "wings" body_parts_covered = ARMS|CHEST - allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic) + allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/ballistic,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic) actions_types = list(/datum/action/item_action/toggle_wings) /obj/item/clothing/suit/toggle/owlwings/griffinwings @@ -154,7 +153,6 @@ flags_inv = HIDEJUMPSUIT allowed = list(/obj/item/weapon/storage/book/bible, /obj/item/weapon/nullrod, /obj/item/weapon/reagent_containers/food/drinks/bottle/holywater, /obj/item/weapon/storage/fancy/candle_box, /obj/item/candle, /obj/item/weapon/tank/internals/emergency_oxygen) - /obj/item/clothing/suit/cardborg name = "cardborg suit" desc = "An ordinary cardboard box with holes cut in the sides." @@ -233,7 +231,7 @@ body_parts_covered = CHEST|GROIN|ARMS cold_protection = CHEST|GROIN|ARMS min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT //Space carp like space, so you should too - allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen, /obj/item/weapon/gun/projectile/automatic/speargun) + allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen, /obj/item/weapon/gun/ballistic/automatic/speargun) hooded = 1 hoodtype = /obj/item/clothing/head/carp_hood @@ -255,7 +253,7 @@ body_parts_covered = CHEST|GROIN|ARMS //cold_protection = CHEST|GROIN|ARMS //min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT - allowed = list(,) + allowed = list() hooded = 1 hoodtype = /obj/item/clothing/head/ian_hood dog_fashion = /datum/dog_fashion/back @@ -270,17 +268,36 @@ flags = NODROP flags_inv = HIDEHAIR|HIDEEARS +/obj/item/clothing/suit/hooded/bee_costume // It's Hip! + name = "bee costume" + desc = "Bee the true Queen!" + icon_state = "bee" + item_state = "labcoat" + body_parts_covered = CHEST|GROIN|ARMS + flags = THICKMATERIAL + hooded = 1 + hoodtype = /obj/item/clothing/head/bee_hood + +/obj/item/clothing/head/bee_hood + name = "bee hood" + desc = "A hood attached to a bee costume." + icon_state = "bee" + body_parts_covered = HEAD + flags = NODROP|THICKMATERIAL + flags_inv = HIDEHAIR|HIDEEARS + /obj/item/clothing/suit/hooded/bloated_human //OH MY GOD WHAT HAVE YOU DONE!?!?!? name = "bloated human suit" desc = "A horribly bloated suit made from human skins." icon_state = "lingspacesuit" item_state = "labcoat" body_parts_covered = CHEST|GROIN|ARMS - allowed = list(,) + allowed = list() hooded = 1 actions_types = list(/datum/action/item_action/toggle_human_head) hoodtype = /obj/item/clothing/head/human_head + /obj/item/clothing/head/human_head name = "bloated human head" desc = "A horribly bloated and mismatched human head." @@ -323,6 +340,12 @@ icon_state = "nerdshirt" item_state = "nerdshirt" +/obj/item/clothing/suit/vapeshirt //wearing this is asking to get beat. + name = "Vape Naysh shirt" + desc = "A cheap white T-shirt with a big tacky \"VN\" on the front, Why would you wear this unironicly?" + icon_state = "vapeshirt" + item_state = "vapeshirt" + /obj/item/clothing/suit/jacket name = "bomber jacket" desc = "Aviators not included." @@ -338,9 +361,9 @@ desc = "Pompadour not included." icon_state = "leatherjacket" item_state = "hostrench" - burn_state = FIRE_PROOF + resistance_flags = 0 max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/weapon/gun/projectile/automatic/pistol,/obj/item/weapon/gun/projectile/revolver,/obj/item/weapon/gun/projectile/revolver/detective,/obj/item/device/radio) + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/weapon/gun/ballistic/automatic/pistol,/obj/item/weapon/gun/ballistic/revolver,/obj/item/weapon/gun/ballistic/revolver/detective,/obj/item/device/radio) /obj/item/clothing/suit/jacket/leather/overcoat name = "leather overcoat" @@ -354,7 +377,7 @@ desc = "A thick jacket with a rubbery, water-resistant shell." icon_state = "pufferjacket" item_state = "hostrench" - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 50, rad = 0) + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 50, rad = 0, fire = 0, acid = 0) /obj/item/clothing/suit/jacket/puffer/vest name = "puffer vest" @@ -363,14 +386,14 @@ item_state = "armor" body_parts_covered = CHEST|GROIN cold_protection = CHEST|GROIN - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 30, rad = 0) + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 30, rad = 0, fire = 0, acid = 0) /obj/item/clothing/suit/jacket/miljacket name = "military jacket" desc = "A canvas jacket styled after classical American military garb. Feels sturdy, yet comfortable." icon_state = "militaryjacket" item_state = "militaryjacket" - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/weapon/gun/projectile/automatic/pistol,/obj/item/weapon/gun/projectile/revolver,/obj/item/weapon/gun/projectile/revolver/detective,/obj/item/device/radio) + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/weapon/gun/ballistic/automatic/pistol,/obj/item/weapon/gun/ballistic/revolver,/obj/item/weapon/gun/ballistic/revolver/detective,/obj/item/device/radio) /obj/item/clothing/suit/jacket/letterman name = "letterman jacket" @@ -416,7 +439,7 @@ body_parts_covered = CHEST|GROIN|ARMS cold_protection = CHEST|GROIN|ARMS min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0, fire = 0, acid = 0) allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter) hooded = 1 @@ -433,8 +456,8 @@ /obj/item/clothing/suit/hooded/wintercoat/captain name = "captain's winter coat" icon_state = "coatcaptain" - armor = list(melee = 25, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0) - allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic) + armor = list(melee = 25, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 0, acid = 50) + allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/ballistic,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic) hoodtype = /obj/item/clothing/head/winterhood/captain /obj/item/clothing/head/winterhood/captain @@ -443,8 +466,8 @@ /obj/item/clothing/suit/hooded/wintercoat/security name = "security winter coat" icon_state = "coatsecurity" - armor = list(melee = 25, bullet = 15, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0) - allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic) + armor = list(melee = 25, bullet = 15, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 0, acid = 45) + allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/ballistic,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic) hoodtype = /obj/item/clothing/head/winterhood/security /obj/item/clothing/head/winterhood/security @@ -454,7 +477,7 @@ name = "medical winter coat" icon_state = "coatmedical" allowed = list(/obj/item/device/analyzer,/obj/item/stack/medical,/obj/item/weapon/dnainjector,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/hypospray,/obj/item/device/healthanalyzer,/obj/item/device/flashlight/pen,/obj/item/weapon/reagent_containers/glass/bottle,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/pill,/obj/item/weapon/storage/pill_bottle,/obj/item/weapon/paper,/obj/item/weapon/melee/classic_baton/telescopic) - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 50, rad = 0) + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 50, rad = 0, fire = 0, acid = 45) hoodtype = /obj/item/clothing/head/winterhood/medical /obj/item/clothing/head/winterhood/medical @@ -464,7 +487,7 @@ name = "science winter coat" icon_state = "coatscience" allowed = list(/obj/item/device/analyzer,/obj/item/stack/medical,/obj/item/weapon/dnainjector,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/hypospray,/obj/item/device/healthanalyzer,/obj/item/device/flashlight/pen,/obj/item/weapon/reagent_containers/glass/bottle,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/pill,/obj/item/weapon/storage/pill_bottle,/obj/item/weapon/paper,/obj/item/weapon/melee/classic_baton/telescopic) - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 0, rad = 0) + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 0, rad = 0, fire = 0, acid = 0) hoodtype = /obj/item/clothing/head/winterhood/science /obj/item/clothing/head/winterhood/science @@ -473,7 +496,7 @@ /obj/item/clothing/suit/hooded/wintercoat/engineering name = "engineering winter coat" icon_state = "coatengineer" - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 20) + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 20, fire = 30, acid = 45) allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/device/t_scanner, /obj/item/weapon/rcd, /obj/item/weapon/pipe_dispenser) hoodtype = /obj/item/clothing/head/winterhood/engineering @@ -495,7 +518,7 @@ hoodtype = /obj/item/clothing/head/winterhood/hydro /obj/item/clothing/head/winterhood/hydro - item_state = "winterhood_hydro" + icon_state = "winterhood_hydro" /obj/item/clothing/suit/hooded/wintercoat/cargo name = "cargo winter coat" @@ -509,7 +532,7 @@ name = "mining winter coat" icon_state = "coatminer" allowed = list(/obj/item/weapon/pickaxe,/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter) - armor = list(melee = 10, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0) + armor = list(melee = 10, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) hoodtype = /obj/item/clothing/head/winterhood/miner /obj/item/clothing/head/winterhood/miner diff --git a/code/modules/clothing/suits/utility.dm b/code/modules/clothing/suits/utility.dm index 9dfa9c8a72..cc4b0a281b 100644 --- a/code/modules/clothing/suits/utility.dm +++ b/code/modules/clothing/suits/utility.dm @@ -14,7 +14,7 @@ desc = "A suit that helps protect against fire and heat." icon_state = "fire" item_state = "ro_suit" - w_class = 4 + w_class = WEIGHT_CLASS_BULKY gas_transfer_coefficient = 0.90 permeability_coefficient = 0.50 body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS @@ -28,7 +28,7 @@ min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT strip_delay = 60 put_on_delay = 60 - burn_state = FIRE_PROOF + resistance_flags = FIRE_PROOF /obj/item/clothing/suit/fire/firefighter icon_state = "firesuit" @@ -57,7 +57,7 @@ desc = "Use in case of bomb." icon_state = "bombsuit" flags = THICKMATERIAL - armor = list(melee = 20, bullet = 0, laser = 20,energy = 10, bomb = 100, bio = 0, rad = 0) + armor = list(melee = 20, bullet = 0, laser = 20,energy = 10, bomb = 100, bio = 0, rad = 0, fire = 80, acid = 50) flags_inv = HIDEFACE|HIDEMASK|HIDEEARS|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR cold_protection = HEAD min_cold_protection_temperature = HELMET_MIN_TEMP_PROTECT @@ -66,20 +66,21 @@ strip_delay = 70 put_on_delay = 70 flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH - burn_state = FIRE_PROOF + resistance_flags = 0 + /obj/item/clothing/suit/bomb_suit name = "bomb suit" desc = "A suit designed for safety when handling explosives." icon_state = "bombsuit" item_state = "bombsuit" - w_class = 4//bulky item + w_class = WEIGHT_CLASS_BULKY gas_transfer_coefficient = 0.01 permeability_coefficient = 0.01 flags = THICKMATERIAL body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS slowdown = 2 - armor = list(melee = 20, bullet = 0, laser = 20,energy = 10, bomb = 100, bio = 0, rad = 0) + armor = list(melee = 20, bullet = 0, laser = 20,energy = 10, bomb = 100, bio = 0, rad = 0, fire = 80, acid = 50) flags_inv = HIDEJUMPSUIT heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT @@ -87,7 +88,7 @@ min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT strip_delay = 70 put_on_delay = 70 - burn_state = FIRE_PROOF + resistance_flags = 0 /obj/item/clothing/head/bomb_hood/security @@ -109,26 +110,26 @@ desc = "A hood with radiation protective properties. The label reads, 'Made with lead. Please do not consume insulation.'" flags = THICKMATERIAL flags_inv = HIDEMASK|HIDEEARS|HIDEFACE|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 100) + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 100, fire = 30, acid = 30) strip_delay = 60 put_on_delay = 60 flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH - burn_state = FIRE_PROOF + resistance_flags = 0 /obj/item/clothing/suit/radiation name = "radiation suit" desc = "A suit that protects against radiation. The label reads, 'Made with lead. Please do not consume insulation.'" icon_state = "rad" item_state = "rad_suit" - w_class = 4//bulky item + w_class = WEIGHT_CLASS_BULKY gas_transfer_coefficient = 0.90 permeability_coefficient = 0.50 flags = THICKMATERIAL body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/device/geiger_counter) slowdown = 1.5 - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 100) + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 100, fire = 30, acid = 30) strip_delay = 60 put_on_delay = 60 flags_inv = HIDEJUMPSUIT - burn_state = FIRE_PROOF + resistance_flags = 0 diff --git a/code/modules/clothing/suits/wiz_robe.dm b/code/modules/clothing/suits/wiz_robe.dm index cd2e63b44d..179b541701 100644 --- a/code/modules/clothing/suits/wiz_robe.dm +++ b/code/modules/clothing/suits/wiz_robe.dm @@ -4,11 +4,10 @@ icon_state = "wizard" gas_transfer_coefficient = 0.01 // IT'S MAGICAL OKAY JEEZ +1 TO NOT DIE permeability_coefficient = 0.01 - armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 20, bio = 20, rad = 20) + armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 20, bio = 20, rad = 20, fire = 100, acid = 100) strip_delay = 50 put_on_delay = 50 - unacidable = 1 - burn_state = FIRE_PROOF + resistance_flags = FIRE_PROOF | ACID_PROOF dog_fashion = /datum/dog_fashion/head/blue_wizard /obj/item/clothing/head/wizard/red @@ -35,7 +34,8 @@ icon_state = "wizard-fake" gas_transfer_coefficient = 1 permeability_coefficient = 1 - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0) + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) + resistance_flags = FLAMMABLE dog_fashion = /datum/dog_fashion/head/blue_wizard /obj/item/clothing/head/wizard/marisa @@ -66,13 +66,12 @@ gas_transfer_coefficient = 0.01 permeability_coefficient = 0.01 body_parts_covered = CHEST|GROIN|ARMS|LEGS - armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 20, bio = 20, rad = 20) + armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 20, bio = 20, rad = 20, fire = 100, acid = 100) allowed = list(/obj/item/weapon/teleportation_scroll) flags_inv = HIDEJUMPSUIT strip_delay = 50 put_on_delay = 50 - unacidable = 1 - burn_state = FIRE_PROOF + resistance_flags = FIRE_PROOF | ACID_PROOF /obj/item/clothing/suit/wizrobe/red name = "red wizard robe" @@ -124,9 +123,8 @@ item_state = "wizrobe" gas_transfer_coefficient = 1 permeability_coefficient = 1 - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0) - unacidable = 0 - burn_state = FLAMMABLE + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) + resistance_flags = FLAMMABLE /obj/item/clothing/head/wizard/marisa/fake name = "witch hat" @@ -134,9 +132,8 @@ icon_state = "marisa" gas_transfer_coefficient = 1 permeability_coefficient = 1 - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0) - unacidable = 0 - burn_state = FLAMMABLE + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) + resistance_flags = FLAMMABLE /obj/item/clothing/suit/wizrobe/marisa/fake name = "witch robe" @@ -145,6 +142,88 @@ item_state = "marisarobe" gas_transfer_coefficient = 1 permeability_coefficient = 1 - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0) - unacidable = 0 - burn_state = FLAMMABLE + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) + resistance_flags = FLAMMABLE + +/obj/item/clothing/suit/wizrobe/paper + name = "papier-mâché robe" + desc = "A robe held together by various bits of clear-tape and paste." + icon_state = "wizard-paper" + item_state = "wizrobe" + var/robe_charge = TRUE + actions_types = list(/datum/action/item_action/stickmen) + + +/obj/item/clothing/suit/wizrobe/paper/ui_action_click(mob/user, action) + stickmen() + + +/obj/item/clothing/suit/wizrobe/paper/verb/stickmen() + set category = "Object" + set name = "Summon Stick Minions" + set src in usr + if(!isliving(usr)) + return + if(!robe_charge) + usr << "\The robe's internal magic supply is still recharging!" + return + + usr.say("Rise, my creation! Off your page into this realm!") + playsound(src.loc, 'sound/magic/Summon_Magic.ogg', 50, 1, 1) + var/mob/living/M = new /mob/living/simple_animal/hostile/stickman(get_turf(usr)) + var/list/factions = usr.faction + M.faction = factions + src.robe_charge = FALSE + sleep(30) + src.robe_charge = TRUE + usr << "\The robe hums, its internal magic supply restored." + + +//Shielded Armour + +/obj/item/clothing/suit/space/hardsuit/shielded/wizard + name = "battlemage armour" + desc = "Not all wizards are afraid of getting up close and personal." + icon_state = "battlemage" + item_state = "battlemage" + recharge_rate = 0 + current_charges = 15 + recharge_cooldown = INFINITY + shield_state = "shield-red" + shield_on = "shield-red" + min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT + max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/wizard + armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 20, bio = 20, rad = 20, fire = 100, acid = 100) + slowdown = 0 + resistance_flags = FIRE_PROOF | ACID_PROOF + +/obj/item/clothing/head/helmet/space/hardsuit/shielded/wizard + name = "battlemage helmet" + desc = "A suitably impressive helmet.." + icon_state = "battlemage" + item_state = "battlemage" + min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT + max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT + armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 20, bio = 20, rad = 20, fire = 100, acid = 100) + actions_types = null //No inbuilt light + resistance_flags = FIRE_PROOF | ACID_PROOF + +/obj/item/clothing/head/helmet/space/hardsuit/shielded/wizard/attack_self(mob/user) + return + +/obj/item/wizard_armour_charge + name = "battlemage shield charges" + desc = "A powerful rune that will increase the number of hits a suit of battlemage armour can take before failing.." + icon = 'icons/effects/effects.dmi' + icon_state = "electricity2" + +/obj/item/wizard_armour_charge/afterattack(obj/item/clothing/suit/space/hardsuit/shielded/wizard/W, mob/user) + ..() + if(!istype(W)) + user << "The rune can only be used on battlemage armour!" + return + W.current_charges += 8 + user <<"You charge \the [W]. It can now absorb [W.current_charges] hits." + qdel(src) + diff --git a/code/modules/clothing/under/color.dm b/code/modules/clothing/under/color.dm index 198eea1109..c26a98d874 100644 --- a/code/modules/clothing/under/color.dm +++ b/code/modules/clothing/under/color.dm @@ -14,7 +14,7 @@ icon_state = "black" item_state = "bl_suit" item_color = "black" - burn_state = FIRE_PROOF + resistance_flags = 0 /obj/item/clothing/under/color/grey name = "grey jumpsuit" diff --git a/code/modules/clothing/under/jobs/civilian.dm b/code/modules/clothing/under/jobs/civilian.dm index 3b7769319c..729e045808 100644 --- a/code/modules/clothing/under/jobs/civilian.dm +++ b/code/modules/clothing/under/jobs/civilian.dm @@ -8,7 +8,6 @@ item_color = "barman" alt_covers_chest = 1 - /obj/item/clothing/under/rank/captain //Alright, technically not a 'civilian' but its better then giving a .dm file for a single define. desc = "It's a blue jumpsuit with some gold markings denoting the rank of \"Captain\"." name = "captain's jumpsuit" @@ -16,7 +15,6 @@ item_state = "b_suit" item_color = "captain" - /obj/item/clothing/under/rank/cargo name = "quartermaster's jumpsuit" desc = "It's a jumpsuit worn by the quartermaster. It's specially designed to prevent back injuries caused by pushing paper." @@ -24,13 +22,14 @@ item_state = "lb_suit" item_color = "qm" - /obj/item/clothing/under/rank/cargotech name = "cargo technician's jumpsuit" desc = "Shooooorts! They're comfy and easy to wear!" icon_state = "cargotech" item_state = "lb_suit" item_color = "cargo" + body_parts_covered = CHEST|GROIN|ARMS + mutantrace_variation = MUTANTRACE_VARIATION /obj/item/clothing/under/rank/chaplain @@ -41,7 +40,6 @@ item_color = "chapblack" can_adjust = 0 - /obj/item/clothing/under/rank/chef name = "cook's suit" desc = "A suit which is given only to the most hardcore cooks in space." @@ -49,7 +47,6 @@ item_color = "chef" alt_covers_chest = 1 - /obj/item/clothing/under/rank/clown name = "clown suit" desc = "'HONK!'" @@ -71,7 +68,6 @@ item_color = "hop" can_adjust = 0 - /obj/item/clothing/under/rank/hydroponics desc = "It's a jumpsuit designed to protect against minor plant-related hazards." name = "botanist's jumpsuit" @@ -80,45 +76,38 @@ item_color = "hydroponics" permeability_coefficient = 0.50 - /obj/item/clothing/under/rank/janitor desc = "It's the official uniform of the station's janitor. It has minor protection from biohazards." name = "janitor's jumpsuit" icon_state = "janitor" item_color = "janitor" - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) - + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0, fire = 0, acid = 0) /obj/item/clothing/under/lawyer desc = "Slick threads." name = "Lawyer suit" can_adjust = 0 - /obj/item/clothing/under/lawyer/black icon_state = "lawyer_black" item_state = "lawyer_black" item_color = "lawyer_black" - /obj/item/clothing/under/lawyer/female icon_state = "black_suit_fem" item_state = "black_suit_fem" item_color = "black_suit_fem" - /obj/item/clothing/under/lawyer/red icon_state = "lawyer_red" item_state = "lawyer_red" item_color = "lawyer_red" - /obj/item/clothing/under/lawyer/blue icon_state = "lawyer_blue" item_state = "lawyer_blue" item_color = "lawyer_blue" - /obj/item/clothing/under/lawyer/bluesuit name = "blue suit" desc = "A classy suit and tie." @@ -128,7 +117,6 @@ can_adjust = 1 alt_covers_chest = 1 - /obj/item/clothing/under/lawyer/purpsuit name = "purple suit" icon_state = "lawyer_purp" @@ -138,7 +126,6 @@ can_adjust = 1 alt_covers_chest = 1 - /obj/item/clothing/under/lawyer/blacksuit name = "black suit" desc = "A professional black suit. Nanotrasen Investigation Bureau approved!" @@ -148,7 +135,6 @@ can_adjust = 1 alt_covers_chest = 1 - /obj/item/clothing/under/rank/librarian name = "sensible suit" desc = "It's very... sensible." @@ -157,6 +143,12 @@ item_color = "red_suit" can_adjust = 0 +/obj/item/clothing/under/rank/librarian/curator + name = "treasure hunter uniform" + desc = "A rugged uniform suitable for treasure hunting." + icon_state = "curator" + item_state = "curator" + item_color = "curator" /obj/item/clothing/under/rank/mime name = "mime's outfit" @@ -165,7 +157,6 @@ item_state = "mime" item_color = "mime" - /obj/item/clothing/under/rank/miner desc = "It's a snappy jumpsuit with a sturdy set of overalls. It is very dirty." name = "shaft miner's jumpsuit" @@ -173,7 +164,6 @@ item_state = "miner" item_color = "miner" - /obj/item/clothing/under/rank/miner/lavaland desc = "A green uniform for operating in hazardous environments." name = "shaft miner's jumpsuit" diff --git a/code/modules/clothing/under/jobs/engineering.dm b/code/modules/clothing/under/jobs/engineering.dm index a8aa38adeb..adad1aedb5 100644 --- a/code/modules/clothing/under/jobs/engineering.dm +++ b/code/modules/clothing/under/jobs/engineering.dm @@ -5,8 +5,8 @@ icon_state = "chiefengineer" item_state = "gy_suit" item_color = "chief" - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 10) - burn_state = FIRE_PROOF + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 10, fire = 80, acid = 40) + resistance_flags = 0 /obj/item/clothing/under/rank/atmospheric_technician desc = "It's a jumpsuit worn by atmospheric technicians." @@ -14,7 +14,7 @@ icon_state = "atmos" item_state = "atmos_suit" item_color = "atmos" - burn_state = FIRE_PROOF + resistance_flags = 0 /obj/item/clothing/under/rank/engineer desc = "It's an orange high visibility jumpsuit worn by engineers. It has minor radiation shielding." @@ -22,11 +22,13 @@ icon_state = "engine" item_state = "engi_suit" item_color = "engine" - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 10) + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 10, fire = 60, acid = 20) + resistance_flags = 0 /obj/item/clothing/under/rank/roboticist desc = "It's a slimming black with reinforced seams; great for industrial work." name = "roboticist's jumpsuit" icon_state = "robotics" item_state = "robotics" - item_color = "robotics" \ No newline at end of file + item_color = "robotics" + resistance_flags = 0 \ No newline at end of file diff --git a/code/modules/clothing/under/jobs/medsci.dm b/code/modules/clothing/under/jobs/medsci.dm index 4d6939c1aa..875973d15a 100644 --- a/code/modules/clothing/under/jobs/medsci.dm +++ b/code/modules/clothing/under/jobs/medsci.dm @@ -7,7 +7,7 @@ icon_state = "director" item_state = "lb_suit" item_color = "director" - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 10, rad = 0) + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 10, rad = 0, fire = 0, acid = 35) can_adjust = 0 /obj/item/clothing/under/rank/research_director/alt @@ -16,7 +16,7 @@ icon_state = "rdwhimsy" item_state = "rdwhimsy" item_color = "rdwhimsy" - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 10, bio = 10, rad = 0) + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 10, bio = 10, rad = 0, fire = 0, acid = 0) can_adjust = 1 alt_covers_chest = 1 @@ -26,7 +26,7 @@ icon_state = "rdturtle" item_state = "p_suit" item_color = "rdturtle" - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 10, bio = 10, rad = 0) + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 10, bio = 10, rad = 0, fire = 0, acid = 0) can_adjust = 1 alt_covers_chest = 1 @@ -37,7 +37,7 @@ item_state = "w_suit" item_color = "toxinswhite" permeability_coefficient = 0.50 - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 0, rad = 0) + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 0, rad = 0, fire = 0, acid = 0) /obj/item/clothing/under/rank/chemist @@ -47,7 +47,7 @@ item_state = "w_suit" item_color = "chemistrywhite" permeability_coefficient = 0.50 - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0, fire = 50, acid = 65) /* * Medical @@ -59,7 +59,7 @@ item_state = "w_suit" item_color = "cmo" permeability_coefficient = 0.50 - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0, fire = 0, acid = 0) /obj/item/clothing/under/rank/geneticist desc = "It's made of a special fiber that gives special protection against biohazards. It has a genetics rank stripe on it." @@ -68,7 +68,7 @@ item_state = "w_suit" item_color = "geneticswhite" permeability_coefficient = 0.50 - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0, fire = 0, acid = 0) /obj/item/clothing/under/rank/virologist desc = "It's made of a special fiber that gives special protection against biohazards. It has a virologist rank stripe on it." @@ -77,7 +77,7 @@ item_state = "w_suit" item_color = "virologywhite" permeability_coefficient = 0.50 - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0, fire = 0, acid = 0) /obj/item/clothing/under/rank/nursesuit desc = "It's a jumpsuit commonly worn by nursing staff in the medical department." @@ -86,7 +86,7 @@ item_state = "w_suit" item_color = "nursesuit" permeability_coefficient = 0.50 - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0, fire = 0, acid = 0) fitted = NO_FEMALE_UNIFORM can_adjust = 0 @@ -97,7 +97,7 @@ item_state = "w_suit" item_color = "medical" permeability_coefficient = 0.50 - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0, fire = 0, acid = 0) /obj/item/clothing/under/rank/medical/blue name = "medical scrubs" diff --git a/code/modules/clothing/under/jobs/security.dm b/code/modules/clothing/under/jobs/security.dm index 2d92c186a8..85756bb219 100644 --- a/code/modules/clothing/under/jobs/security.dm +++ b/code/modules/clothing/under/jobs/security.dm @@ -15,7 +15,7 @@ icon_state = "rsecurity" item_state = "r_suit" item_color = "rsecurity" - armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) + armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 30, acid = 30) strip_delay = 50 alt_covers_chest = 1 @@ -30,7 +30,7 @@ icon_state = "rwarden" item_state = "r_suit" item_color = "rwarden" - armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) + armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 30, acid = 30) strip_delay = 50 alt_covers_chest = 1 @@ -48,7 +48,7 @@ icon_state = "detective" item_state = "det" item_color = "detective" - armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) + armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 30, acid = 30) strip_delay = 50 alt_covers_chest = 1 @@ -69,7 +69,7 @@ icon_state = "rhos" item_state = "r_suit" item_color = "rhos" - armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) + armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 50) strip_delay = 60 alt_covers_chest = 1 @@ -111,4 +111,14 @@ icon_state = "wardenblueclothes" item_state = "wardenblueclothes" item_color = "wardenblueclothes" - alt_covers_chest = 1 \ No newline at end of file + alt_covers_chest = 1 + +/* + *Blueshirt + */ + +/obj/item/clothing/under/rank/security/blueshirt + desc = "I'm a little busy right now, Calhoun." + icon_state = "blueshift" + item_state = "blueshift" + item_color = "blueshift" \ No newline at end of file diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index 465a8ef886..b3fc277e55 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -22,6 +22,14 @@ item_color = "ek" can_adjust = 0 +/obj/item/clothing/under/scratch + name = "white suit" + desc = "A white suit, suitable for an excellent host" + icon_state = "scratch" + item_state = "scratch" + item_color = "scratch" + can_adjust = 0 + /obj/item/clothing/under/sl_suit desc = "It's a very amish looking suit." name = "amish suit" @@ -37,7 +45,7 @@ item_state = "armor" can_adjust = 0 strip_delay = 100 - burn_state = FIRE_PROOF + resistance_flags = 0 /obj/item/clothing/under/waiter name = "waiter's outfit" @@ -79,6 +87,14 @@ item_color = "sexyclown" can_adjust = 0 +/obj/item/clothing/under/jabroni + name = "Jabroni Outfit" + desc = "The leather club is two sectors down." + icon_state = "darkholme" + item_state = "darkholme" + item_color = "darkholme" + can_adjust = 0 + /obj/item/clothing/under/rank/vice name = "vice officer's jumpsuit" desc = "It's the standard issue pretty-boy outfit, as seen on Holo-Vision." @@ -108,7 +124,7 @@ icon_state = "black" item_state = "bl_suit" item_color = "black" - w_class = 4//bulky item + w_class = WEIGHT_CLASS_BULKY gas_transfer_coefficient = 0.01 permeability_coefficient = 0.02 body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS @@ -117,7 +133,7 @@ heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS max_heat_protection_temperature = SPACE_SUIT_MAX_TEMP_PROTECT can_adjust = 0 - burn_state = FIRE_PROOF + resistance_flags = 0 /obj/item/clothing/under/acj name = "administrative cybernetic jumpsuit" @@ -128,13 +144,13 @@ gas_transfer_coefficient = 0.01 permeability_coefficient = 0.01 body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS - armor = list(melee = 100, bullet = 100, laser = 100,energy = 100, bomb = 100, bio = 100, rad = 100) + armor = list(melee = 100, bullet = 100, laser = 100,energy = 100, bomb = 100, bio = 100, rad = 100, fire = 100, acid = 100) cold_protection = CHEST | GROIN | LEGS | FEET | ARMS | HANDS min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS max_heat_protection_temperature = SPACE_SUIT_MAX_TEMP_PROTECT can_adjust = 0 - burn_state = FIRE_PROOF + resistance_flags = FIRE_PROOF | ACID_PROOF /obj/item/clothing/under/owl name = "owl uniform" @@ -251,7 +267,7 @@ item_state = "burial" item_color = "burial" -/obj/item/clothing/under/blackskirt +/obj/item/clothing/under/skirt/black name = "black skirt" desc = "A black skirt, very fancy!" icon_state = "blackskirt" @@ -260,7 +276,7 @@ fitted = FEMALE_UNIFORM_TOP can_adjust = 0 -/obj/item/clothing/under/blueskirt +/obj/item/clothing/under/skirt/blue name = "blue skirt" desc = "A blue, casual skirt." icon_state = "blueskirt" @@ -270,12 +286,26 @@ fitted = FEMALE_UNIFORM_TOP can_adjust = 0 -/obj/item/clothing/under/blueskirt/redskirt +/obj/item/clothing/under/skirt/red name = "red skirt" desc = "A red, casual skirt." icon_state = "redskirt" item_color = "redskirt" item_state = "r_suit" + body_parts_covered = CHEST|GROIN|ARMS + fitted = FEMALE_UNIFORM_TOP + can_adjust = 0 + +/obj/item/clothing/under/skirt/purple + name = "purple skirt" + desc = "A purple, casual skirt." + icon_state = "purpleskirt" + item_color = "purpleskirt" + item_state = "p_suit" + body_parts_covered = CHEST|GROIN|ARMS + fitted = FEMALE_UNIFORM_TOP + can_adjust = 0 + /obj/item/clothing/under/schoolgirl name = "blue schoolgirl uniform" @@ -347,6 +377,10 @@ fitted = FEMALE_UNIFORM_TOP can_adjust = 0 +/obj/item/clothing/under/kilt/highlander + desc = "You're the only one worthy of this kilt." + flags = NODROP + /obj/item/clothing/under/sexymime name = "sexy mime outfit" desc = "The only time when you DON'T enjoy looking at someone's rack." @@ -366,7 +400,11 @@ body_parts_covered = CHEST|GROIN|ARMS fitted = NO_FEMALE_UNIFORM can_adjust = 0 - burn_state = FIRE_PROOF + resistance_flags = 0 + +/obj/item/clothing/under/gladiator/ash_walker + desc = "This gladiator uniform appears to be covered in ash and fairly dated." + has_sensor = 0 /obj/item/clothing/under/sundress name = "sundress" @@ -497,6 +535,26 @@ can_adjust = 1 alt_covers_chest = 1 +/obj/item/clothing/under/singery + name = "yellow performer's outfit" + desc = "Just looking at this makes you want to sing." + icon_state = "ysing" + item_state = "ysing" + item_color = "ysing" + fitted = NO_FEMALE_UNIFORM + alternate_worn_layer = ABOVE_SHOES_LAYER + can_adjust = 0 + +/obj/item/clothing/under/singerb + name = "blue performer's outfit" + desc = "Just looking at this makes you want to sing." + icon_state = "bsing" + item_state = "bsing" + item_color = "bsing" + alternate_worn_layer = ABOVE_SHOES_LAYER + fitted = FEMALE_UNIFORM_TOP + can_adjust = 0 + /obj/item/clothing/under/plaid_skirt/green name = "green plaid skirt" desc = "A preppy green skirt with a white blouse." @@ -514,13 +572,27 @@ item_color = "jester" can_adjust = 0 +/obj/item/clothing/under/geisha + name = "geisha suit" + desc = "Cute space ninja senpai not included." + icon_state = "geisha" + item_color = "geisha" + can_adjust = 0 + +/obj/item/clothing/under/villain + name = "villain suit" + desc = "A change of wardrobe is necessary if you ever want to catch a real superhero." + icon_state = "villain" + item_color = "villain" + can_adjust = 0 + /obj/item/clothing/under/plasmaman name = "Plasma-man Jumpsuit" desc = "A specially designed suit that allows Plasma based life forms to exist in an oxygenated environment." icon_state = "plasmaman" item_state = "plasmaman" item_color = "plasmaman" - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 0) + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 0, fire = 95, acid = 95) body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS can_adjust = 0 strip_delay = 80 @@ -574,22 +646,3 @@ icon_state = "hostanclothes" item_state = "hostanclothes" item_color = "hostanclothes" - -/obj/item/clothing/under/mesh - name = "mesh suit" - desc = "A mesh of strong fabric worn underneath normal clothing and armor." - body_parts_covered = CHEST|GROIN|LEGS|ARMS - icon_state = "mesh_suit" - item_color = "mesh_suit" - item_state = "mesh_suit" - can_adjust = FALSE - burn_state = FIRE_PROOF - unacidable = TRUE - -/obj/item/clothing/under/mesh/top - name = "mesh shirt" - desc = "A mesh of strong fabric worn underneath normal clothing and armor." - body_parts_covered = CHEST|GROIN - icon_state = "mesh_shirt" - item_color = "mesh_shirt" - item_state = "mesh_shirt" \ No newline at end of file diff --git a/code/modules/clothing/under/shorts.dm b/code/modules/clothing/under/shorts.dm index 2411a1ef60..119527ec4f 100644 --- a/code/modules/clothing/under/shorts.dm +++ b/code/modules/clothing/under/shorts.dm @@ -4,6 +4,7 @@ gender = PLURAL body_parts_covered = GROIN fitted = NO_FEMALE_UNIFORM + mutantrace_variation = MUTANTRACE_VARIATION can_adjust = 0 /obj/item/clothing/under/shorts/red diff --git a/code/modules/clothing/under/syndicate.dm b/code/modules/clothing/under/syndicate.dm index fcb8a84d4b..83e7e59253 100644 --- a/code/modules/clothing/under/syndicate.dm +++ b/code/modules/clothing/under/syndicate.dm @@ -5,7 +5,7 @@ item_state = "bl_suit" item_color = "syndicate" has_sensor = 0 - armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) + armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 40) alt_covers_chest = 1 /obj/item/clothing/under/syndicate/tacticool @@ -14,7 +14,7 @@ icon_state = "tactifool" item_state = "bl_suit" item_color = "tactifool" - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 40) /obj/item/clothing/under/syndicate/sniper name = "Tactical turtleneck suit" @@ -36,5 +36,5 @@ icon_state = "trackpants" item_color = "trackpants" can_adjust = 0 - armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) - burn_state = FIRE_PROOF \ No newline at end of file + armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) + resistance_flags = 0 \ No newline at end of file diff --git a/code/modules/clothing/under/ties.dm b/code/modules/clothing/under/ties.dm index 0402eeebd0..83826e1050 100644 --- a/code/modules/clothing/under/ties.dm +++ b/code/modules/clothing/under/ties.dm @@ -1,4 +1,4 @@ -/obj/item/clothing/tie +/obj/item/clothing/tie //Ties moved to neck slot items, but as there are still things like medals and armbands, this accessory system is being kept as-is name = "tie" desc = "A neosilk clip-on tie." icon = 'icons/obj/clothing/ties.dmi' @@ -6,8 +6,56 @@ item_state = "" //no inhands item_color = "bluetie" slot_flags = 0 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL + var/minimize_when_attached = TRUE // TRUE if shown as a small icon in corner, FALSE if overlayed +/obj/item/clothing/tie/proc/attach(obj/item/clothing/under/U, user) + if(pockets) // Attach storage to jumpsuit + if(U.pockets) // storage items conflict + return 0 + + pockets.loc = U + U.pockets = pockets + + U.hastie = src + loc = U + layer = FLOAT_LAYER + plane = FLOAT_PLANE + if(minimize_when_attached) + transform *= 0.5 //halve the size so it doesn't overpower the under + pixel_x += 8 + pixel_y -= 8 + U.add_overlay(src) + + for(var/armor_type in armor) + U.armor[armor_type] += armor[armor_type] + + return 1 + + +/obj/item/clothing/tie/proc/detach(obj/item/clothing/under/U, user) + if(pockets && pockets == U.pockets) + pockets.loc = src + U.pockets = null + + for(var/armor_type in armor) + U.armor[armor_type] -= armor[armor_type] + + if(minimize_when_attached) + transform *= 2 + pixel_x -= 8 + pixel_y += 8 + layer = initial(layer) + plane = initial(plane) + U.cut_overlays() + U.hastie = null + +/obj/item/clothing/tie/proc/on_uniform_equip(obj/item/clothing/under/U) + return + +/obj/item/clothing/tie/proc/on_uniform_dropped(obj/item/clothing/under/U) + return +/* /obj/item/clothing/tie/blue name = "blue tie" icon_state = "bluetie" @@ -28,14 +76,15 @@ desc = "A neosilk clip-on tie. This one is disgusting." icon_state = "horribletie" item_color = "horribletie" - +*/ /obj/item/clothing/tie/waistcoat name = "waistcoat" desc = "For some classy, murderous fun." icon_state = "waistcoat" item_state = "waistcoat" item_color = "waistcoat" - + minimize_when_attached = FALSE +/* /obj/item/clothing/tie/stethoscope name = "stethoscope" desc = "An outdated medical apparatus for listening to the sounds of the human body. It also makes you look like you know what you're doing." @@ -44,7 +93,7 @@ /obj/item/clothing/tie/stethoscope/attack(mob/living/carbon/human/M, mob/living/user) if(ishuman(M) && isliving(user)) - if(user.a_intent == "help") + if(user.a_intent == INTENT_HELP) var/body_part = parse_zone(user.zone_selected) if(body_part) var/their = "their" @@ -76,7 +125,7 @@ user.visible_message("[user] places [src] against [M]'s [body_part] and listens attentively.", "You place [src] against [their] [body_part]. You [sound_strength] [sound].") return return ..(M,user) - +*/ ////////// //Medals// ////////// @@ -87,11 +136,11 @@ icon_state = "bronze" item_color = "bronze" materials = list(MAT_METAL=1000) - burn_state = FIRE_PROOF + resistance_flags = FIRE_PROOF //Pinning medals on people /obj/item/clothing/tie/medal/attack(mob/living/carbon/human/M, mob/living/user) - if(ishuman(M) && (user.a_intent == "help")) + if(ishuman(M) && (user.a_intent == INTENT_HELP)) if(M.wear_suit) if((M.wear_suit.flags_inv & HIDEJUMPSUIT)) //Check if the jumpsuit is covered @@ -100,12 +149,19 @@ if(M.w_uniform) var/obj/item/clothing/under/U = M.w_uniform - if(U.attachTie(src, user, 0)) //Attach it, do not notify the user of the attachment - if(user == M) - user << "You attach [src] to [U]." - else - user.visible_message("[user] pins \the [src] on [M]'s chest.", \ - "You pin \the [src] on [M]'s chest.") + var/delay = 20 + if(user == M) + delay = 0 + else + user.visible_message("[user] is trying to pin [src] on [M]'s chest.", \ + "You try to pin [src] on [M]'s chest.") + if(do_after(user, delay, target = M)) + if(U.attachTie(src, user, 0)) //Attach it, do not notify the user of the attachment + if(user == M) + user << "You attach [src] to [U]." + else + user.visible_message("[user] pins \the [src] on [M]'s chest.", \ + "You pin \the [src] on [M]'s chest.") else user << "Medals can only be pinned on jumpsuits!" else ..() @@ -148,6 +204,7 @@ /obj/item/clothing/tie/medal/gold/captain name = "medal of captaincy" desc = "A golden medal awarded exclusively to those promoted to the rank of captain. It signifies the codified responsibilities of a captain to Nanotrasen, and their undisputable authority over their crew." + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF /obj/item/clothing/tie/medal/gold/heroism name = "medal of exceptional heroism" @@ -202,60 +259,60 @@ desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is white and blue." icon_state = "medblueband" item_color = "medblueband" - +/* /////////// //SCARVES// /////////// -/obj/item/clothing/tie/scarf - name = "scarf" - desc = "A stylish scarf. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their necks." - dog_fashion = /datum/dog_fashion/head - -/obj/item/clothing/tie/scarf/red - name = "red scarf" - icon_state = "redscarf" - item_color = "redscarf" - -/obj/item/clothing/tie/scarf/green - name = "green scarf" - icon_state = "greenscarf" - item_color = "greenscarf" - -/obj/item/clothing/tie/scarf/darkblue - name = "dark blue scarf" - icon_state = "darkbluescarf" - item_color = "darkbluescarf" - -/obj/item/clothing/tie/scarf/purple - name = "purple scarf" - icon_state = "purplescarf" - item_color = "purplescarf" - -/obj/item/clothing/tie/scarf/yellow - name = "yellow scarf" - icon_state = "yellowscarf" - item_color = "yellowscarf" - -/obj/item/clothing/tie/scarf/orange - name = "orange scarf" - icon_state = "orangescarf" - item_color = "orangescarf" - -/obj/item/clothing/tie/scarf/lightblue - name = "light blue scarf" - icon_state = "lightbluescarf" - item_color = "lightbluescarf" - -/obj/item/clothing/tie/scarf/white +/obj/item/clothing/tie/scarf //Default white color, same functionality as beanies. name = "white scarf" - icon_state = "whitescarf" - item_color = "whitescarf" + icon_state = "scarf" + desc = "A stylish scarf. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their necks." + item_color = "scarf" + dog_fashion = /datum/dog_fashion/head /obj/item/clothing/tie/scarf/black name = "black scarf" - icon_state = "blackscarf" - item_color = "blackscarf" + icon_state = "scarf" + color = "#4A4A4B" //Grey but it looks black + +/obj/item/clothing/tie/scarf/red + name = "red scarf" + icon_state = "scarf" + color = "#D91414" //Red + +/obj/item/clothing/tie/scarf/green + name = "green scarf" + icon_state = "scarf" + color = "#5C9E54" //Green + +/obj/item/clothing/tie/scarf/darkblue + name = "dark blue scarf" + icon_state = "scarf" + color = "#1E85BC" //Blue + +/obj/item/clothing/tie/scarf/purple + name = "purple scarf" + icon_state = "scarf" + color = "#9557C5" //purple + +/obj/item/clothing/tie/scarf/yellow + name = "yellow scarf" + icon_state = "scarf" + color = "#E0C14F" //Yellow + +/obj/item/clothing/tie/scarf/orange + name = "orange scarf" + icon_state = "scarf" + color = "#C67A4B" //orange + +/obj/item/clothing/tie/scarf/cyan + name = "cyan scarf" + icon_state = "scarf" + color = "#54A3CE" //Cyan + + +//Striped scarves get their own icons /obj/item/clothing/tie/scarf/zebra name = "zebra scarf" @@ -305,7 +362,6 @@ desc = "Damn, it feels good to be a gangster." icon = 'icons/obj/clothing/ties.dmi' icon_state = "bling" - item_state = "" //no inhands item_color = "bling" //////////////// @@ -315,9 +371,39 @@ /obj/item/clothing/tie/talisman name = "bone talisman" desc = "A hunter's talisman, some say the old gods smile on those who wear it." - icon = 'icons/obj/clothing/ties.dmi' icon_state = "talisman" - item_state = "" item_color = "talisman" - body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS|HEAD - armor = list(melee = 5, bullet = 5, laser = 5, energy = 5, bomb = 50, bio = 65, rad = 5) //Faith is the best armor. //This won't actually work because of accessories kill me with a fucking knife jesus christ I hate code + armor = list(melee = 5, bullet = 5, laser = 5, energy = 5, bomb = 20, bio = 20, rad = 5, fire = 0, acid = 25) +*/ +////////////// +//OBJECTION!// +////////////// + +/obj/item/clothing/tie/lawyers_badge + name = "attorney's badge" + 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/tie/lawyers_badge/attach(obj/item/clothing/under/U, user) + if(!..()) + return 0 + if(isliving(U.loc)) + on_uniform_equip(U) + +/obj/item/clothing/tie/lawyers_badge/detach(obj/item/clothing/under/U, user) + ..() + if(isliving(U.loc)) + on_uniform_dropped(U) + +/obj/item/clothing/tie/lawyers_badge/on_uniform_equip(obj/item/clothing/under/U) + if(!isliving(U.loc)) + return + var/mob/living/L = U.loc + L.bubble_icon = "lawyer" + +/obj/item/clothing/tie/lawyers_badge/on_uniform_dropped(obj/item/clothing/under/U) + if(!isliving(U.loc)) + return + var/mob/living/L = U.loc + L.bubble_icon = initial(L.bubble_icon) diff --git a/code/modules/clothing/under/trek.dm b/code/modules/clothing/under/trek.dm new file mode 100644 index 0000000000..b777312da7 --- /dev/null +++ b/code/modules/clothing/under/trek.dm @@ -0,0 +1,72 @@ +//Just some alt-uniforms themed around Star Trek - Pls don't sue, Mr Roddenberry ;_; + + +/obj/item/clothing/under/trek + can_adjust = 0 + + +//TOS +/obj/item/clothing/under/trek/command + name = "command uniform" + desc = "The uniform worn by command officers" + icon_state = "trek_command" + item_color = "trek_command" + item_state = "y_suit" + +/obj/item/clothing/under/trek/engsec + name = "engsec uniform" + desc = "The uniform worn by engineering/security officers" + icon_state = "trek_engsec" + item_color = "trek_engsec" + item_state = "r_suit" + armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) //more sec than eng, but w/e. + strip_delay = 50 + +/obj/item/clothing/under/trek/medsci + name = "medsci uniform" + desc = "The uniform worn by medical/science officers" + icon_state = "trek_medsci" + item_color = "trek_medsci" + item_state = "b_suit" + + +//TNG +/obj/item/clothing/under/trek/command/next + icon_state = "trek_next_command" + item_color = "trek_next_command" + item_state = "r_suit" + +/obj/item/clothing/under/trek/engsec/next + icon_state = "trek_next_engsec" + item_color = "trek_next_engsec" + item_state = "y_suit" + +/obj/item/clothing/under/trek/medsci/next + icon_state = "trek_next_medsci" + item_color = "trek_next_medsci" + + +//ENT +/obj/item/clothing/under/trek/command/ent + icon_state = "trek_ent_command" + item_color = "trek_ent_command" + item_state = "bl_suit" + +/obj/item/clothing/under/trek/engsec/ent + icon_state = "trek_ent_engsec" + item_color = "trek_ent_engsec" + item_state = "bl_suit" + +/obj/item/clothing/under/trek/medsci/ent + icon_state = "trek_ent_medsci" + item_color = "trek_ent_medsci" + item_state = "bl_suit" + + +//Q +/obj/item/clothing/under/trek/Q + name = "french marshall's uniform" + desc = "something about it feels off..." + icon_state = "trek_Q" + item_color = "trek_Q" + item_state = "r_suit" \ No newline at end of file diff --git a/code/modules/crafting/craft.dm b/code/modules/crafting/craft.dm index 0001f48931..7def4aa192 100644 --- a/code/modules/crafting/craft.dm +++ b/code/modules/crafting/craft.dm @@ -1,9 +1,27 @@ /datum/personal_crafting var/busy var/viewing_category = 1 //typical powergamer starting on the Weapons tab - var/list/categories = list(CAT_WEAPON,CAT_AMMO,CAT_ROBOT,CAT_FOOD,CAT_MISC,CAT_PRIMAL) + var/list/categories = list(CAT_WEAPON, + CAT_AMMO, + CAT_ROBOT, + CAT_MISC, + CAT_PRIMAL, + CAT_BREAD, + CAT_BURGER, + CAT_CAKE, + CAT_EGG, + CAT_MEAT, + CAT_MISCFOOD, + CAT_PASTRY, + CAT_PIE, + CAT_PIZZA, + CAT_SALAD, + CAT_SANDWICH, + CAT_SOUP, + CAT_SPAGHETTI) var/datum/action/innate/crafting/button var/display_craftable_only = FALSE + var/display_compact = TRUE @@ -42,9 +60,9 @@ /datum/personal_crafting/proc/get_environment(mob/user) . = list() - . += user.r_hand - . += user.l_hand - if(!istype(user.loc, /turf)) + for(var/obj/item/I in user.held_items) + . += I + if(!isturf(user.loc)) return var/list/L = block(get_step(user, SOUTHWEST), get_step(user, NORTHEAST)) for(var/A in L) @@ -92,7 +110,6 @@ return 1 /datum/personal_crafting/proc/construct_item(mob/user, datum/crafting_recipe/R) - for(var/A in R.parts) var/list/contents = get_surroundings(user) var/send_feedback = 1 if(check_contents(R, contents)) @@ -239,24 +256,26 @@ /datum/personal_crafting/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = not_incapacitated_turf_state) ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) if(!ui) - ui = new(user, src, ui_key, "personal_crafting", "Crafting Menu", 600, 800, master_ui, state) + ui = new(user, src, ui_key, "personal_crafting", "Crafting Menu", 700, 800, master_ui, state) ui.open() /datum/personal_crafting/ui_data(mob/user) var/list/data = list() + var/cur_category = categories[viewing_category] data["busy"] = busy data["prev_cat"] = categories[prev_cat()] - data["category"] = categories[viewing_category] + data["category"] = cur_category data["next_cat"] = categories[next_cat()] data["display_craftable_only"] = display_craftable_only + data["display_compact"] = display_compact var/list/surroundings = get_surroundings(user) var/list/can_craft = list() var/list/cant_craft = list() for(var/rec in crafting_recipes) var/datum/crafting_recipe/R = rec - if(R.category != categories[viewing_category]) + if(R.category != cur_category) continue if(check_contents(R, surroundings)) can_craft += list(build_recipe_data(R)) @@ -294,6 +313,10 @@ display_craftable_only = !display_craftable_only usr << "You will now [display_craftable_only ? "only see recipes you can craft":"see all recipes"]." . = TRUE + if("toggle_compact") + display_compact = !display_compact + usr << "Crafting menu is now [display_compact? "compact" : "full size"]." + . = TRUE //Next works nicely with modular arithmetic @@ -318,27 +341,23 @@ var/tool_text = "" var/catalyst_text = "" - for(var/A in R.reqs) - if(ispath(A, /obj)) - var/obj/O = A - req_text += " [R.reqs[A]] [initial(O.name)]," - else if(ispath(A, /datum/reagent)) - var/datum/reagent/RE = A - req_text += " [R.reqs[A]] [initial(RE.name)]," + for(var/a in R.reqs) + //We just need the name, so cheat-typecast to /atom for speed (even tho Reagents are /datum they DO have a "name" var) + //Also these are typepaths so sadly we can't just do "[a]" + var/atom/A = a + req_text += " [R.reqs[A]] [initial(A.name)]," req_text = replacetext(req_text,",","",-1) data["req_text"] = req_text - for(var/C in R.chem_catalysts) - if(ispath(C, /datum/reagent)) - var/datum/reagent/RE = C - catalyst_text += " [R.chem_catalysts[C]] [initial(RE.name)]," + for(var/a in R.chem_catalysts) + var/atom/A = a //cheat-typecast + catalyst_text += " [R.chem_catalysts[A]] [initial(A.name)]," catalyst_text = replacetext(catalyst_text,",","",-1) data["catalyst_text"] = catalyst_text - for(var/O in R.tools) - if(ispath(O, /obj)) - var/obj/T = O - tool_text += " [R.tools[O]] [initial(T.name)]," + for(var/a in R.tools) + var/atom/A = a //cheat-typecast + tool_text += " [R.tools[A]] [initial(A.name)]," tool_text = replacetext(tool_text,",","",-1) data["tool_text"] = tool_text diff --git a/code/modules/crafting/recipes.dm b/code/modules/crafting/recipes.dm index 5089e31ee3..94569f769e 100644 --- a/code/modules/crafting/recipes.dm +++ b/code/modules/crafting/recipes.dm @@ -39,6 +39,15 @@ time = 15 category = CAT_WEAPON +/datum/crafting_recipe/strobeshield + name = "strobe shield" + result = /obj/item/device/assembly/flash/shield + reqs = list(/obj/item/wallframe/flasher = 1, + /obj/item/device/assembly/flash/handheld = 1, + /obj/item/weapon/shield/riot = 1) + time = 40 + category = CAT_WEAPON + /datum/crafting_recipe/molotov name = "Molotov" result = /obj/item/weapon/reagent_containers/food/drinks/bottle/molotov @@ -94,17 +103,16 @@ /datum/crafting_recipe/ed209 name = "ED209" result = /mob/living/simple_animal/bot/ed209 - reqs = list(/obj/item/robot_parts/robot_suit = 1, + reqs = list(/obj/item/robot_suit = 1, /obj/item/clothing/head/helmet = 1, /obj/item/clothing/suit/armor/vest = 1, - /obj/item/robot_parts/l_leg = 1, - /obj/item/robot_parts/r_leg = 1, - /obj/item/stack/sheet/metal = 5, - /obj/item/stack/cable_coil = 5, - /obj/item/weapon/gun/energy/gun/advtaser = 1, + /obj/item/bodypart/l_leg/robot = 1, + /obj/item/bodypart/r_leg/robot = 1, + /obj/item/stack/sheet/metal = 1, + /obj/item/stack/cable_coil = 1, + /obj/item/weapon/gun/energy/e_gun/advtaser = 1, /obj/item/weapon/stock_parts/cell = 1, - /obj/item/device/assembly/prox_sensor = 1, - /obj/item/robot_parts/r_arm = 1) + /obj/item/device/assembly/prox_sensor = 1) tools = list(/obj/item/weapon/weldingtool, /obj/item/weapon/screwdriver) time = 60 category = CAT_ROBOT @@ -116,7 +124,7 @@ /obj/item/clothing/head/helmet/sec = 1, /obj/item/weapon/melee/baton = 1, /obj/item/device/assembly/prox_sensor = 1, - /obj/item/robot_parts/r_arm = 1) + /obj/item/bodypart/r_arm/robot = 1) tools = list(/obj/item/weapon/weldingtool) time = 60 category = CAT_ROBOT @@ -126,7 +134,7 @@ result = /mob/living/simple_animal/bot/cleanbot reqs = list(/obj/item/weapon/reagent_containers/glass/bucket = 1, /obj/item/device/assembly/prox_sensor = 1, - /obj/item/robot_parts/r_arm = 1) + /obj/item/bodypart/r_arm/robot = 1) time = 40 category = CAT_ROBOT @@ -136,7 +144,7 @@ reqs = list(/obj/item/weapon/storage/toolbox/mechanical = 1, /obj/item/stack/tile/plasteel = 1, /obj/item/device/assembly/prox_sensor = 1, - /obj/item/robot_parts/r_arm = 1) + /obj/item/bodypart/r_arm/robot = 1) time = 40 category = CAT_ROBOT @@ -146,7 +154,7 @@ reqs = list(/obj/item/device/healthanalyzer = 1, /obj/item/weapon/storage/firstaid = 1, /obj/item/device/assembly/prox_sensor = 1, - /obj/item/robot_parts/r_arm = 1) + /obj/item/bodypart/r_arm/robot = 1) time = 40 category = CAT_ROBOT @@ -185,8 +193,7 @@ /datum/crafting_recipe/dragonsbreath name = "Dragonsbreath Shell" result = /obj/item/ammo_casing/shotgun/incendiary/dragonsbreath - reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1, - /datum/reagent/phosphorus = 5,) + reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1,/datum/reagent/phosphorus = 5) tools = list(/obj/item/weapon/screwdriver) time = 5 category = CAT_AMMO @@ -197,7 +204,7 @@ reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1, /datum/reagent/glycerol = 5, /datum/reagent/toxin/acid = 5, - /datum/reagent/toxin/acid/fluacid = 5,) + /datum/reagent/toxin/acid/fluacid = 5) tools = list(/obj/item/weapon/screwdriver) time = 5 category = CAT_AMMO @@ -245,11 +252,11 @@ /datum/crafting_recipe/ishotgun name = "Improvised Shotgun" - result = /obj/item/weapon/gun/projectile/revolver/doublebarrel/improvised + result = /obj/item/weapon/gun/ballistic/revolver/doublebarrel/improvised reqs = list(/obj/item/weaponcrafting/reciever = 1, /obj/item/pipe = 1, /obj/item/weaponcrafting/stock = 1, - /obj/item/stack/packageWrap = 5,) + /obj/item/stack/packageWrap = 5) tools = list(/obj/item/weapon/screwdriver) time = 100 category = CAT_WEAPON @@ -319,14 +326,6 @@ reqs = list(/obj/item/weapon/paper = 5) category = CAT_MISC -/datum/crafting_recipe/headlamp - name = "Headlamp" - result = /obj/item/clothing/head/hardhat/headlamp - time = 30 - reqs = list(/obj/item/stack/cable_coil = 15, - /obj/item/device/flashlight = 1) - category = CAT_MISC - /datum/crafting_recipe/chemical_payload name = "Chemical Payload (C4)" @@ -361,7 +360,7 @@ /datum/crafting_recipe/bonetalisman name = "Bone Talisman" - result = /obj/item/clothing/tie/talisman + result = /obj/item/clothing/neck/talisman time = 20 reqs = list(/obj/item/stack/sheet/bone = 2, /obj/item/stack/sheet/sinew = 1) @@ -383,7 +382,7 @@ category = CAT_PRIMAL /datum/crafting_recipe/drakecloak - name = "Ash Drake Cloak" + name = "Ash Drake Armour" result = /obj/item/clothing/suit/hooded/cloak/drake time = 60 reqs = list(/obj/item/stack/sheet/bone = 10, @@ -421,3 +420,17 @@ reqs = list(/obj/item/stack/sheet/bone = 6, /obj/item/stack/sheet/sinew = 3) category = CAT_PRIMAL + +/datum/crafting_recipe/bonfire + name = "Bonfire" + time = 60 + reqs = list(/obj/item/weapon/grown/log = 5) + result = /obj/structure/bonfire + category = CAT_PRIMAL + +/datum/crafting_recipe/smallcarton + name = "Small Carton" + result = /obj/item/weapon/reagent_containers/food/drinks/sillycup/smallcarton + time = 10 + reqs = list(/obj/item/stack/sheet/cardboard = 1) + category = CAT_MISC diff --git a/code/modules/detectivework/evidence.dm b/code/modules/detectivework/evidence.dm index 25e810542a..558f27d5f0 100644 --- a/code/modules/detectivework/evidence.dm +++ b/code/modules/detectivework/evidence.dm @@ -6,7 +6,7 @@ icon = 'icons/obj/storage.dmi' icon_state = "evidenceobj" item_state = "" - w_class = 1 + w_class = WEIGHT_CLASS_TINY /obj/item/weapon/evidencebag/afterattack(obj/item/I, mob/user,proximity) if(!proximity || loc == I) @@ -25,7 +25,7 @@ user << "You find putting an evidence bag in another evidence bag to be slightly absurd." return 1 //now this is podracing - if(I.w_class > 3) + if(I.w_class > WEIGHT_CLASS_NORMAL) user << "[I] won't fit in [src]." return @@ -37,10 +37,8 @@ if(istype(I.loc,/obj/item/weapon/storage)) //in a container. var/obj/item/weapon/storage/U = I.loc U.remove_from_storage(I, src) - else if(user.l_hand == I) //in a hand - user.drop_l_hand() - else if(user.r_hand == I) //in a hand - user.drop_r_hand() + if(user.is_holding(I)) + user.unEquip(I) else return @@ -71,7 +69,7 @@ "You hear someone rustle around in a plastic bag, and remove something.") cut_overlays() //remove the overlays user.put_in_hands(I) - w_class = 1 + w_class = WEIGHT_CLASS_TINY icon_state = "evidenceobj" desc = "An empty evidence bag." @@ -92,4 +90,4 @@ new /obj/item/weapon/evidencebag(src) new /obj/item/weapon/evidencebag(src) ..() - return \ No newline at end of file + return diff --git a/code/modules/detectivework/footprints_and_rag.dm b/code/modules/detectivework/footprints_and_rag.dm index db754009ea..f21421bbda 100644 --- a/code/modules/detectivework/footprints_and_rag.dm +++ b/code/modules/detectivework/footprints_and_rag.dm @@ -9,7 +9,7 @@ /obj/item/weapon/reagent_containers/glass/rag name = "damp rag" desc = "For cleaning up messes, you suppose." - w_class = 1 + w_class = WEIGHT_CLASS_TINY icon = 'icons/obj/toy.dmi' icon_state = "rag" flags = OPENCONTAINER | NOBLUDGEON @@ -19,8 +19,7 @@ spillable = 0 /obj/item/weapon/reagent_containers/glass/rag/suicide_act(mob/user) - user.visible_message("[user] ties the [src.name] around their head and groans! It looks like--") - user.say("MY BRAIN HURTS!!") + user.visible_message("[user] is smothering [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!") return (OXYLOSS) /obj/item/weapon/reagent_containers/glass/rag/afterattack(atom/A as obj|turf|area, mob/user,proximity) @@ -28,7 +27,7 @@ return if(iscarbon(A) && A.reagents && reagents.total_volume) var/mob/living/carbon/C = A - if(user.a_intent == "harm" && !C.is_mouth_covered()) + if(user.a_intent == INTENT_HARM && !C.is_mouth_covered()) reagents.reaction(C, INGEST) reagents.trans_to(C, reagents.total_volume) C.visible_message("[user] has smothered \the [C] with \the [src]!", "[user] has smothered you with \the [src]!", "You hear some struggling and muffled cries of surprise.") diff --git a/code/modules/detectivework/scanner.dm b/code/modules/detectivework/scanner.dm index bed9fbc91c..fcc86e5df2 100644 --- a/code/modules/detectivework/scanner.dm +++ b/code/modules/detectivework/scanner.dm @@ -6,7 +6,7 @@ name = "forensic scanner" desc = "Used to remotely scan objects and biomass for DNA and fingerprints. Can print a report of the findings." icon_state = "forensicnew" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL item_state = "electronic" flags = CONDUCT | NOBLUDGEON slot_flags = SLOT_BELT diff --git a/code/modules/events/abductor.dm b/code/modules/events/abductor.dm index 19ccda1472..7b11540913 100644 --- a/code/modules/events/abductor.dm +++ b/code/modules/events/abductor.dm @@ -28,8 +28,8 @@ else temp = new - var/agent_mind = popleft(candidates) - var/scientist_mind = popleft(candidates) + var/agent_mind = pick_n_take(candidates) + var/scientist_mind = pick_n_take(candidates) var/mob/living/carbon/human/agent = makeBody(agent_mind) var/mob/living/carbon/human/scientist = makeBody(scientist_mind) diff --git a/code/modules/events/alien_infestation.dm b/code/modules/events/alien_infestation.dm index ff6b63b7c8..92f7e86f28 100644 --- a/code/modules/events/alien_infestation.dm +++ b/code/modules/events/alien_infestation.dm @@ -57,7 +57,7 @@ while(spawncount > 0 && vents.len && candidates.len) var/obj/vent = pick_n_take(vents) - var/client/C = popleft(candidates) + var/client/C = pick_n_take(candidates) var/mob/living/carbon/alien/larva/new_xeno = new(vent.loc) new_xeno.key = C.key diff --git a/code/modules/events/anomaly.dm b/code/modules/events/anomaly.dm index da75f26a80..6798ad0b4c 100644 --- a/code/modules/events/anomaly.dm +++ b/code/modules/events/anomaly.dm @@ -31,13 +31,3 @@ var/turf/T = safepick(get_area_turfs(impact_area)) if(T) newAnomaly = new /obj/effect/anomaly/flux(T) - -/datum/round_event/anomaly/tick() - if(!newAnomaly) - kill() - return - newAnomaly.anomalyEffect() - -/datum/round_event/anomaly/end() - if(newAnomaly)//Kill the anomaly if it still exists at the end. - qdel(newAnomaly) \ No newline at end of file diff --git a/code/modules/events/anomaly_bluespace.dm b/code/modules/events/anomaly_bluespace.dm index 64f8d502e7..177ca531c8 100644 --- a/code/modules/events/anomaly_bluespace.dm +++ b/code/modules/events/anomaly_bluespace.dm @@ -7,7 +7,6 @@ /datum/round_event/anomaly/anomaly_bluespace startWhen = 3 announceWhen = 10 - endWhen = 95 /datum/round_event/anomaly/anomaly_bluespace/announce() @@ -18,57 +17,3 @@ var/turf/T = safepick(get_area_turfs(impact_area)) if(T) newAnomaly = new /obj/effect/anomaly/bluespace(T) - - -/datum/round_event/anomaly/anomaly_bluespace/end() - if(newAnomaly.loc)//If it hasn't been neutralized, it's time to warp half the station away jeez - var/turf/T = safepick(get_area_turfs(impact_area)) - if(T) - // Calculate new position (searches through beacons in world) - var/obj/item/device/radio/beacon/chosen - var/list/possible = list() - for(var/obj/item/device/radio/beacon/W in world) - possible += W - - if(possible.len > 0) - chosen = pick(possible) - - if(chosen) - // Calculate previous position for transition - - var/turf/FROM = T // the turf of origin we're travelling FROM - var/turf/TO = get_turf(chosen) // the turf of origin we're travelling TO - - playsound(TO, 'sound/effects/phasein.ogg', 100, 1) - priority_announce("Massive bluespace translocation detected.", "Anomaly Alert") - - var/list/flashers = list() - for(var/mob/living/carbon/C in viewers(TO, null)) - if(C.flash_eyes()) - flashers += C - - var/y_distance = TO.y - FROM.y - var/x_distance = TO.x - FROM.x - for (var/atom/movable/A in urange(12, FROM )) // iterate thru list of mobs in the area - if(istype(A, /obj/item/device/radio/beacon)) continue // don't teleport beacons because that's just insanely stupid - if(A.anchored) continue - - var/turf/newloc = locate(A.x + x_distance, A.y + y_distance, TO.z) // calculate the new place - if(!A.Move(newloc) && newloc) // if the atom, for some reason, can't move, FORCE them to move! :) We try Move() first to invoke any movement-related checks the atom needs to perform after moving - A.loc = newloc - - spawn() - if(ismob(A) && !(A in flashers)) // don't flash if we're already doing an effect - var/mob/M = A - if(M.client) - var/obj/blueeffect = new /obj(src) - blueeffect.screen_loc = "WEST,SOUTH to EAST,NORTH" - blueeffect.icon = 'icons/effects/effects.dmi' - blueeffect.icon_state = "shieldsparkles" - blueeffect.layer = FLASH_LAYER - blueeffect.mouse_opacity = 0 - M.client.screen += blueeffect - sleep(20) - M.client.screen -= blueeffect - qdel(blueeffect) - qdel(newAnomaly) \ No newline at end of file diff --git a/code/modules/events/anomaly_flux.dm b/code/modules/events/anomaly_flux.dm index 43660ab099..c0ba6c14e9 100644 --- a/code/modules/events/anomaly_flux.dm +++ b/code/modules/events/anomaly_flux.dm @@ -9,8 +9,6 @@ /datum/round_event/anomaly/anomaly_flux startWhen = 3 announceWhen = 20 - endWhen = 80 - /datum/round_event/anomaly/anomaly_flux/announce() priority_announce("Localized hyper-energetic flux wave detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert") @@ -20,9 +18,3 @@ var/turf/T = safepick(get_area_turfs(impact_area)) if(T) newAnomaly = new /obj/effect/anomaly/flux(T) - - -/datum/round_event/anomaly/anomaly_flux/end() - if(newAnomaly.loc)//If it hasn't been neutralized, it's time to blow up. - explosion(newAnomaly, 1, 4, 16, 18) //Low devastation, but hits a lot of stuff. - qdel(newAnomaly) \ No newline at end of file diff --git a/code/modules/events/anomaly_grav.dm b/code/modules/events/anomaly_grav.dm index c89175befa..d29c8c5607 100644 --- a/code/modules/events/anomaly_grav.dm +++ b/code/modules/events/anomaly_grav.dm @@ -7,8 +7,6 @@ /datum/round_event/anomaly/anomaly_grav startWhen = 3 announceWhen = 20 - endWhen = 120 - /datum/round_event/anomaly/anomaly_grav/announce() priority_announce("Gravitational anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert") @@ -16,4 +14,4 @@ /datum/round_event/anomaly/anomaly_grav/start() var/turf/T = safepick(get_area_turfs(impact_area)) if(T) - newAnomaly = new /obj/effect/anomaly/grav(T) \ No newline at end of file + newAnomaly = new /obj/effect/anomaly/grav(T) diff --git a/code/modules/events/anomaly_pyro.dm b/code/modules/events/anomaly_pyro.dm index 751089d434..f18893d341 100644 --- a/code/modules/events/anomaly_pyro.dm +++ b/code/modules/events/anomaly_pyro.dm @@ -7,8 +7,6 @@ /datum/round_event/anomaly/anomaly_pyro startWhen = 10 announceWhen = 3 - endWhen = 85 - /datum/round_event/anomaly/anomaly_pyro/announce() priority_announce("Pyroclastic anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert") @@ -17,23 +15,3 @@ var/turf/T = safepick(get_area_turfs(impact_area)) if(T) newAnomaly = new /obj/effect/anomaly/pyro(T) - -/datum/round_event/anomaly/anomaly_pyro/tick() - if(!newAnomaly) - kill() - return - if(IsMultiple(activeFor, 5)) - newAnomaly.anomalyEffect() - - -/datum/round_event/anomaly/anomaly_pyro/end() - if(newAnomaly.loc) - var/turf/open/T = get_turf(newAnomaly) - if(istype(T)) - T.atmos_spawn_air("o2=500;plasma=500;TEMP=1000") //Make it hot and burny for the new slime - - var/mob/living/simple_animal/slime/S = new/mob/living/simple_animal/slime(T) - S.colour = pick("red", "orange") - S.rabid = 1 - - qdel(newAnomaly) diff --git a/code/modules/events/anomaly_vortex.dm b/code/modules/events/anomaly_vortex.dm index d60a83aaac..01bf8fa039 100644 --- a/code/modules/events/anomaly_vortex.dm +++ b/code/modules/events/anomaly_vortex.dm @@ -9,8 +9,6 @@ /datum/round_event/anomaly/anomaly_vortex startWhen = 10 announceWhen = 3 - endWhen = 95 - /datum/round_event/anomaly/anomaly_vortex/announce() priority_announce("Localized high-intensity vortex anomaly detected on long range scanners. Expected location: [impact_area.name]", "Anomaly Alert") @@ -18,4 +16,4 @@ /datum/round_event/anomaly/anomaly_vortex/start() var/turf/T = safepick(get_area_turfs(impact_area)) if(T) - newAnomaly = new /obj/effect/anomaly/bhole(T) \ No newline at end of file + newAnomaly = new /obj/effect/anomaly/bhole(T) diff --git a/code/modules/events/blob.dm b/code/modules/events/blob.dm index 76de5e30c9..f59adadf11 100644 --- a/code/modules/events/blob.dm +++ b/code/modules/events/blob.dm @@ -1,6 +1,6 @@ /datum/round_event_control/blob name = "Blob" - typepath = /datum/round_event/blob + typepath = /datum/round_event/ghost_role/blob weight = 5 max_occurrences = 1 @@ -9,22 +9,30 @@ gamemode_blacklist = list("blob") //Just in case a blob survives that long -/datum/round_event/blob +/datum/round_event/ghost_role/blob announceWhen = 12 - endWhen = 120 + role_name = "blob_overmind" var/new_rate = 2 -/datum/round_event/blob/New(var/strength) +/datum/round_event/ghost_role/blob/New(my_processing = TRUE, set_point_rate) ..() - if(strength) - new_rate = strength + if(set_point_rate) + new_rate = set_point_rate -/datum/round_event/blob/announce() +/datum/round_event/ghost_role/blob/announce() priority_announce("Confirmed outbreak of level 5 biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", 'sound/AI/outbreak5.ogg') -/datum/round_event/blob/start() - var/turf/T = pick(blobstart) - if(!T) - return kill() - new/obj/effect/blob/core(T, null, new_rate) +/datum/round_event/ghost_role/blob/spawn_role() + if(!blobstart.len) + return MAP_ERROR + var/list/candidates = get_candidates("blob", null, ROLE_BLOB) + if(!candidates.len) + return NOT_ENOUGH_PLAYERS + var/mob/dead/observer/new_blob = pick(candidates) + var/obj/structure/blob/core/BC = new/obj/structure/blob/core(pick(blobstart), new_blob.client, new_rate) + BC.overmind.blob_points = min(20 + player_list.len, BC.overmind.max_blob_points) + spawned_mobs += BC.overmind + message_admins("[BC.overmind.key] has been made into a blob overmind by an event.") + log_game("[BC.overmind.key] was spawned as a blob overmind by an event.") + return SUCCESSFUL_SPAWN diff --git a/code/modules/events/devil.dm b/code/modules/events/devil.dm index 21fad5037d..066599cf35 100644 --- a/code/modules/events/devil.dm +++ b/code/modules/events/devil.dm @@ -24,7 +24,7 @@ if(!candidates.len) return NOT_ENOUGH_PLAYERS - var/mob/dead/selected_candidate = popleft(candidates) + var/mob/dead/selected_candidate = pick_n_take(candidates) var/key = selected_candidate.key var/datum/mind/Mind = create_devil_mind(key) @@ -33,7 +33,9 @@ var/mob/living/carbon/human/devil = create_event_devil(spawn_loc) Mind.transfer_to(devil) ticker.mode.finalize_devil(Mind) + ticker.mode.add_devil_objectives(src, 2) Mind.announceDevilLaws() + Mind.announce_objectives() spawned_mobs += devil diff --git a/code/modules/events/dust.dm b/code/modules/events/dust.dm index 6d76981122..cd9be28fbe 100644 --- a/code/modules/events/dust.dm +++ b/code/modules/events/dust.dm @@ -1,21 +1,30 @@ -/datum/round_event_control/meteor_wave/dust +/datum/round_event_control/space_dust name = "Minor Space Dust" - typepath = /datum/round_event/meteor_wave/dust + typepath = /datum/round_event/space_dust weight = 200 max_occurrences = 1000 earliest_start = 0 alertadmins = 0 - -/datum/round_event/meteor_wave/dust + +/datum/round_event/space_dust startWhen = 1 endWhen = 2 announceWhen = 0 -/datum/round_event/meteor_wave/dust/announce() - return - -/datum/round_event/meteor_wave/dust/start() +/datum/round_event/space_dust/start() spawn_meteors(1, meteorsC) -/datum/round_event/meteor_wave/dust/tick() - return +/datum/round_event_control/sandstorm + name = "Sandstorm" + typepath = /datum/round_event/sandstorm + weight = 0 + max_occurrences = 0 + earliest_start = 0 + +/datum/round_event/sandstorm + startWhen = 1 + endWhen = 150 // ~5 min + announceWhen = 0 + +/datum/round_event/sandstorm/tick() + spawn_meteors(10, meteorsC) \ No newline at end of file diff --git a/code/modules/events/ghost_role.dm b/code/modules/events/ghost_role.dm index 7bef6dbed7..87b72c5590 100644 --- a/code/modules/events/ghost_role.dm +++ b/code/modules/events/ghost_role.dm @@ -1,3 +1,6 @@ +#define MAX_SPAWN_ATTEMPT 3 + + /datum/round_event/ghost_role // We expect 0 or more /clients (or things with .key) in this list var/list/priority_candidates = list() @@ -8,18 +11,24 @@ /datum/round_event/ghost_role/start() try_spawning() -/datum/round_event/ghost_role/proc/try_spawning(sanity = 0) +/datum/round_event/ghost_role/proc/try_spawning(sanity = 0, retry = 0) // The event does not run until the spawning has been attempted // to prevent us from getting gc'd halfway through processing = FALSE var/status = spawn_role() - if(status == WAITING_FOR_SOMETHING) + if((status == WAITING_FOR_SOMETHING)) + if(retry >= MAX_SPAWN_ATTEMPT) + message_admins("[role_name] event has exceeded maximum spawn attempts. Aborting and refunding.") + if(control && control.occurrences > 0) //Don't refund if it hasn't + control.occurrences-- + return + var/waittime = 300 * (2^retry) message_admins("The event will not spawn a [role_name] until certain \ - conditions are met. Waiting 30s and then retrying.") - spawn(300) + conditions are met. Waiting [waittime/10]s and then retrying.") + spawn(waittime) // I hope this doesn't end up running out of stack space - try_spawning() + try_spawning(0,++retry) return if(status == MAP_ERROR) @@ -60,3 +69,4 @@ return candidates +#undef MAX_SPAWN_ATTEMPT \ No newline at end of file diff --git a/code/modules/events/grid_check.dm b/code/modules/events/grid_check.dm new file mode 100644 index 0000000000..a7a6a3564e --- /dev/null +++ b/code/modules/events/grid_check.dm @@ -0,0 +1,19 @@ +/datum/round_event_control/grid_check + name = "Grid Check" + typepath = /datum/round_event/grid_check + weight = 10 + max_occurrences = 3 + +/datum/round_event/grid_check + announceWhen = 1 + startWhen = 1 + +/datum/round_event/grid_check/announce() + priority_announce("Abnormal activity detected in [station_name()]'s powernet. As a precautionary measure, the station's power will be shut off for an indeterminate duration.", "Critical Power Failure", 'sound/AI/poweroff.ogg') + + +/datum/round_event/grid_check/start() + for(var/P in apcs_list) + var/obj/machinery/power/apc/C = P + if(C.cell && C.z == ZLEVEL_STATION) + C.energy_fail(rand(30,120)) \ No newline at end of file diff --git a/code/modules/events/holiday/halloween.dm b/code/modules/events/holiday/halloween.dm index 1bbf0147a6..9737c86db6 100644 --- a/code/modules/events/holiday/halloween.dm +++ b/code/modules/events/holiday/halloween.dm @@ -11,13 +11,17 @@ for(var/mob/living/carbon/human/H in mob_list) var/obj/item/weapon/storage/backpack/b = locate() in H.contents new /obj/item/weapon/storage/spooky(b) - if(prob(50)) - H.set_species(/datum/species/skeleton) - else - H.set_species(/datum/species/zombie) + if(ishuman(H) || islizard(H)) + if(prob(50)) + H.set_species(/datum/species/skeleton) + else + H.set_species(/datum/species/zombie) for(var/mob/living/simple_animal/pet/dog/corgi/Ian/Ian in mob_list) Ian.place_on_head(new /obj/item/weapon/bedsheet(Ian)) + for(var/mob/living/simple_animal/parrot/Poly/Poly in mob_list) + new /mob/living/simple_animal/parrot/Poly/ghost(Poly.loc) + qdel(Poly) /datum/round_event/spooky/announce() priority_announce(pick("RATTLE ME BONES!","THE RIDE NEVER ENDS!", "A SKELETON POPS OUT!", "SPOOKY SCARY SKELETONS!", "CREWMEMBERS BEWARE, YOU'RE IN FOR A SCARE!") , "THE CALL IS COMING FROM INSIDE THE HOUSE") @@ -50,6 +54,50 @@ if(IsMultiple(activeFor, 4)) spawn_meteors(3, meteorsSPOOKY) //meteor list types defined in gamemode/meteor/meteors.dm +//Creepy clown invasion +/datum/round_event_control/creepy_clowns + name = "Clowns" + typepath = /datum/round_event/creepy_clowns + holidayID = HALLOWEEN + weight = 20 + earliest_start = 0 + +/datum/round_event/creepy_clowns + endWhen = 40 + +/datum/round_event/creepy_clowns/start() + for(var/mob/living/carbon/human/H in living_mob_list) + if(!H.client || !istype(H)) + return + H << "Honk..." + H << 'sound/spookoween/scary_clown_appear.ogg' + var/turf/T = get_turf(H) + if(T) + new /obj/effect/hallucination/simple/clown(T, H, 50) + +/datum/round_event/creepy_clowns/tick() + if(IsMultiple(activeFor, 4)) + for(var/mob/living/carbon/human/H in living_mob_list) + if (prob(66)) + playsound(H.loc, pick('sound/spookoween/scary_horn.ogg','sound/spookoween/scary_horn2.ogg', 'sound/spookoween/scary_horn3.ogg'), 100, 1) + if (prob(33)) + var/turf/T = get_turf(H) + if(T) + new /obj/effect/hallucination/simple/clown(T, H, 25) + else if (prob(25)) + var/turf/T = get_turf(H) + if(T) + new /obj/effect/hallucination/simple/clown/scary(T, H, 25) + else if (prob(5)) + var/turf/T = get_turf(H) + if(T) + spawn_atom_to_turf(/obj/effect/mob_spawn/human/corpse/clown, H, 1) + else if (prob(1)) + spawn_atom_to_turf(/mob/living/simple_animal/hostile/retaliate/clown, H, 1) + +/datum/round_event/creepy_clowns/announce() + priority_announce("Honk... Honk... honk... HONK! HONK! HONKHONKHONKHONKHONK", "HONK!", 'sound/spookoween/scary_horn.ogg') + //spooky foods (you can't actually make these when it's not halloween) /obj/item/weapon/reagent_containers/food/snacks/sugarcookie/spookyskull name = "skull cookie" @@ -68,7 +116,7 @@ /obj/item/weapon/storage/spooky name = "trick-o-treat bag" - desc = "A Pumpkin shaped bag that holds all sorts of goodies!" + desc = "A pumpkin-shaped bag that holds all sorts of goodies!" icon = 'icons/obj/halloween_items.dmi' icon_state = "treatbag" @@ -79,5 +127,12 @@ /obj/item/weapon/reagent_containers/food/snacks/sugarcookie/spookycoffin, /obj/item/weapon/reagent_containers/food/snacks/candy_corn, /obj/item/weapon/reagent_containers/food/snacks/candy, - /obj/item/weapon/reagent_containers/food/snacks/chocolatebar) + /obj/item/weapon/reagent_containers/food/snacks/candiedapple, + /obj/item/weapon/reagent_containers/food/snacks/chocolatebar, + /obj/item/organ/brain ) // OH GOD THIS ISN'T CANDY! new type(src) + +/obj/item/weapon/card/emag/halloween + name = "hack-o'-lantern" + desc = "It's a pumpkin with a cryptographic sequencer sticking out." + icon_state = "hack_o_lantern" diff --git a/code/modules/events/holiday/vday.dm b/code/modules/events/holiday/vday.dm index c94c4bf1ed..ec15894f57 100644 --- a/code/modules/events/holiday/vday.dm +++ b/code/modules/events/holiday/vday.dm @@ -14,7 +14,7 @@ /datum/round_event/valentines/start() ..() - for(var/mob/living/carbon/human/H in mob_list) + for(var/mob/living/carbon/human/H in living_mob_list) H.put_in_hands(new /obj/item/weapon/valentine) var/obj/item/weapon/storage/backpack/b = locate() in H.contents new /obj/item/weapon/reagent_containers/food/snacks/candyheart(b) @@ -28,8 +28,8 @@ icon = 'icons/obj/toy.dmi' icon_state = "sc_Ace of Hearts_syndicate" // shut up var/message = "A generic message of love or whatever." - burn_state = FLAMMABLE - w_class = 1 + resistance_flags = FLAMMABLE + w_class = WEIGHT_CLASS_TINY /obj/item/weapon/valentine/New() ..() @@ -55,7 +55,6 @@ "You're always valid to my heart.", "I'd risk the wrath of the gods to bwoink you.", "You look as beautiful now as the last time you were cloned.", - "Your love is more valuable than raw plasma ore.", "Someone check the gravitational generator, because I'm only attracted to you.", "If I were the warden I'd always let you into my armory.", "The virologist is rogue, and the only cure is a kiss from you.", @@ -73,7 +72,9 @@ "If you had a pickaxe you'd be a shaft FINEr.", "Roses are red, tide is gray, if I were an assistant I'd steal you away.", "Roses are red, text is green, I love you more than cleanbots clean.", - "If you were a carp I'd fi-lay you." ) + "If you were a carp I'd fi-lay you.", + "I'm a nuke op, and my pinpointer leads to your heart.", + "Wanna slay my megafauna?" ) /obj/item/weapon/valentine/attackby(obj/item/weapon/W, mob/user, params) ..() @@ -123,5 +124,6 @@ "A heart-shaped candy that reads: WAG MY TAIL", "A heart-shaped candy that reads: VALIDTINES", "A heart-shaped candy that reads: FACEHUGGER", - "A heart-shaped candy that reads: DOMINATOR") + "A heart-shaped candy that reads: DOMINATOR", + "A heart-shaped candy that reads: GET TESLA'D") icon_state = pick("candyheart", "candyheart2", "candyheart3", "candyheart4") \ No newline at end of file diff --git a/code/modules/events/holiday/xmas.dm b/code/modules/events/holiday/xmas.dm index 7c2d638ed9..ce2fbb2d6d 100644 --- a/code/modules/events/holiday/xmas.dm +++ b/code/modules/events/holiday/xmas.dm @@ -47,7 +47,7 @@ var/cracked = 0 /obj/item/weapon/toy/xmas_cracker/attack(mob/target, mob/user) - if( !cracked && istype(target,/mob/living/carbon/human) && (target.stat == CONSCIOUS) && !target.get_active_hand() ) + if( !cracked && ishuman(target) && (target.stat == CONSCIOUS) && !target.get_active_held_item() ) target.visible_message("[user] and [target] pop \an [src]! *pop*", "You pull \an [src] with [target]! *pop*", "You hear a pop.") var/obj/item/weapon/paper/Joke = new /obj/item/weapon/paper(user.loc) Joke.name = "[pick("awful","terrible","unfunny")] joke" @@ -78,7 +78,15 @@ icon_state = "xmashat" desc = "A crappy paper hat that you are REQUIRED to wear." flags_inv = 0 - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) + +/obj/effect/landmark/xmastree + name = "christmas tree spawner" + var/tree = /obj/structure/flora/tree/pine/xmas + +/obj/effect/landmark/xmastree/rdrod + name = "festivus pole spawner" + tree = /obj/structure/festivus /datum/round_event_control/santa name = "Santa is coming to town! (Christmas)" diff --git a/code/modules/events/immovable_rod.dm b/code/modules/events/immovable_rod.dm index 9a9c412b95..443135cfcb 100644 --- a/code/modules/events/immovable_rod.dm +++ b/code/modules/events/immovable_rod.dm @@ -26,7 +26,7 @@ In my current plan for it, 'solid' will be defined as anything with density == 1 new /obj/effect/immovablerod(startT, endT) /obj/effect/immovablerod - name = "Immovable Rod" + name = "immovable rod" desc = "What the fuck is that?" icon = 'icons/obj/objects.dmi' icon_state = "immrod" @@ -37,38 +37,62 @@ In my current plan for it, 'solid' will be defined as anything with density == 1 var/destination /obj/effect/immovablerod/New(atom/start, atom/end) - loc = start + ..() + if(SSaugury) + SSaugury.register_doom(src, 2000) z_original = z destination = end + notify_ghosts("\A [src] is inbound!", + enter_link="(Click to orbit)", + source=src, action=NOTIFY_ORBIT) + poi_list += src if(end && end.z==z_original) walk_towards(src, destination, 1) +/obj/effect/immovablerod/Topic(href, href_list) + if(href_list["orbit"]) + var/mob/dead/observer/ghost = usr + if(istype(ghost)) + ghost.ManualFollow(src) + +/obj/effect/immovablerod/Destroy() + poi_list -= src + . = ..() + /obj/effect/immovablerod/Move() - if(z != z_original || loc == destination) + if((z != z_original) || (loc == destination)) qdel(src) return ..() -/obj/effect/immovablerod/ex_act(test) +/obj/effect/immovablerod/ex_act(severity, target) return 0 /obj/effect/immovablerod/Bump(atom/clong) if(prob(10)) playsound(src, 'sound/effects/bang.ogg', 50, 1) - audible_message("CLANG") + audible_message("You hear a CLANG!") if(clong && prob(25)) x = clong.x y = clong.y - if (istype(clong, /turf) || istype(clong, /obj)) + if(isturf(clong) || isobj(clong)) if(clong.density) clong.ex_act(2) - else if (istype(clong, /mob)) - if(istype(clong, /mob/living/carbon/human)) + else if(ismob(clong)) + if(ishuman(clong)) var/mob/living/carbon/human/H = clong H.visible_message("[H.name] is penetrated by an immovable rod!" , "The rod penetrates you!" , "You hear a CLANG!") H.adjustBruteLoss(160) if(clong.density || prob(10)) clong.ex_act(2) - return + else if(istype(clong, type)) + var/obj/effect/immovablerod/other = clong + visible_message("[src] collides with [other]!\ + ") + var/datum/effect_system/smoke_spread/smoke = new + smoke.set_up(2, get_turf(src)) + smoke.start() + qdel(src) + qdel(other) diff --git a/code/modules/events/ion_storm.dm b/code/modules/events/ion_storm.dm index b844bac3fc..085a490b30 100644 --- a/code/modules/events/ion_storm.dm +++ b/code/modules/events/ion_storm.dm @@ -33,6 +33,7 @@ var/message = generate_ion_law(ionMessage) if(message) M.add_ion_law(message) + log_game("ION law added to [M]: [message]") M << "
    " M << "[message] ...LAWS UPDATED" M << "
    " diff --git a/code/modules/events/major_dust.dm b/code/modules/events/major_dust.dm new file mode 100644 index 0000000000..7597966e6d --- /dev/null +++ b/code/modules/events/major_dust.dm @@ -0,0 +1,19 @@ +/datum/round_event_control/meteor_wave/major_dust + name = "Major Space Dust" + typepath = /datum/round_event/meteor_wave/major_dust + weight = 8 + +/datum/round_event/meteor_wave/major_dust + wave_name = "space dust" + +/datum/round_event/meteor_wave/major_dust/announce() + var/reason = pick( + "The station is passing through a debris cloud, expect minor damage \ + to external fittings and fixtures.", + "Nanotrasen Superweapons Division is testing a new prototype \ + [pick("field","projection","nova","super-colliding","reactive")] \ + [pick("cannon","artillery","tank","cruiser","\[REDACTED\]")], \ + some mild debris is expected.", + "A neighbouring station is throwing rocks at you. (Perhaps they've \ + grown tired of your messages.)") + priority_announce(pick(reason), "Collision Alert") diff --git a/code/modules/events/meateor_wave.dm b/code/modules/events/meateor_wave.dm index fa26633e90..204d901a3c 100644 --- a/code/modules/events/meateor_wave.dm +++ b/code/modules/events/meateor_wave.dm @@ -1,12 +1,11 @@ /datum/round_event_control/meteor_wave/meaty - name = "Meaty Ore Wave" + name = "Meteor Wave: Meaty" typepath = /datum/round_event/meteor_wave/meaty - weight = 1 + weight = 2 max_occurrences = 1 +/datum/round_event/meteor_wave/meaty + wave_name = "meaty" + /datum/round_event/meteor_wave/meaty/announce() priority_announce("Meaty ores have been detected on collision course with the station.", "Oh crap, get the mop.",'sound/AI/meteors.ogg') - -/datum/round_event/meteor_wave/meaty/tick() - if(IsMultiple(activeFor, 3)) - spawn_meteors(5, meteorsB) //meteor list types defined in gamemode/meteor/meteors.dm \ No newline at end of file diff --git a/code/modules/events/meteor_wave.dm b/code/modules/events/meteor_wave.dm index d70644fa24..1cd401ca5b 100644 --- a/code/modules/events/meteor_wave.dm +++ b/code/modules/events/meteor_wave.dm @@ -1,7 +1,9 @@ +// Normal strength + /datum/round_event_control/meteor_wave - name = "Meteor Wave" + name = "Meteor Wave: Normal" typepath = /datum/round_event/meteor_wave - weight = 5 + weight = 4 min_players = 5 max_occurrences = 3 @@ -10,25 +12,57 @@ endWhen = 66 announceWhen = 1 var/list/wave_type + var/wave_name = "normal" /datum/round_event/meteor_wave/New() ..() - random_wave_type() + if(!wave_type) + determine_wave_type() -/datum/round_event/meteor_wave/proc/random_wave_type() - var/picked_wave = pickweight(list("normal" = 50, "threatening" = 40, "catastrophic" = 10)) - switch(picked_wave) +/datum/round_event/meteor_wave/proc/determine_wave_type() + if(!wave_name) + wave_name = pickweight(list( + "normal" = 50, + "threatening" = 40, + "catastrophic" = 10)) + switch(wave_name) if("normal") wave_type = meteors_normal if("threatening") wave_type = meteors_threatening if("catastrophic") wave_type = meteors_catastrophic + if("meaty") + wave_type = meteorsB + if("space dust") + wave_type = meteorsC + else + WARNING("Wave name of [wave_name] not recognised.") + kill() /datum/round_event/meteor_wave/announce() priority_announce("Meteors have been detected on collision course with the station.", "Meteor Alert", 'sound/AI/meteors.ogg') - /datum/round_event/meteor_wave/tick() if(IsMultiple(activeFor, 3)) spawn_meteors(5, wave_type) //meteor list types defined in gamemode/meteor/meteors.dm + +/datum/round_event_control/meteor_wave/threatening + name = "Meteor Wave: Threatening" + typepath = /datum/round_event/meteor_wave/threatening + weight = 2 + min_players = 5 + max_occurrences = 3 + +/datum/round_event/meteor_wave/threatening + wave_name = "threatening" + +/datum/round_event_control/meteor_wave/catastrophic + name = "Meteor Wave: Catastrophic" + typepath = /datum/round_event/meteor_wave/catastrophic + weight = 1 + min_players = 5 + max_occurrences = 3 + +/datum/round_event/meteor_wave/catastrophic + wave_name = "catastrophic" diff --git a/code/modules/events/mice_migration.dm b/code/modules/events/mice_migration.dm new file mode 100644 index 0000000000..6345dd53a7 --- /dev/null +++ b/code/modules/events/mice_migration.dm @@ -0,0 +1,28 @@ +/datum/round_event_control/mice_migration + name = "Mice Migration" + typepath = /datum/round_event/mice_migration + weight = 10 + +/datum/round_event/mice_migration + announceWhen = 0 + var/minimum_mice = 5 + var/maximum_mice = 15 + +/datum/round_event/mice_migration/announce() + var/cause = pick("space-winter", "budget-cuts", "Ragnarok", + "space being cold", "\[REDACTED\]", "climate change", + "bad luck") + var/plural = pick("a number of", "a horde of", "a pack of", "a swarm of", + "a whoop of", "not more than [maximum_mice]") + var/name = pick("rodents", "mice", "squeaking things", + "wire eating mammals", "\[REDACTED\]", "energy draining parasites") + var/movement = pick("migrated", "swarmed", "stampeded", "descended") + var/location = pick("maintenance tunnels", "maintenance areas", + "\[REDACTED\]", "place with all those juicy wires") + + priority_announce("Due to [cause], [plural] [name] have [movement] \ + into the [location].", "Migration Alert", + 'sound/effects/mousesqueek.ogg', 100, 1) + +/datum/round_event/mice_migration/start() + SSsqueak.trigger_migration(rand(minimum_mice, maximum_mice)) diff --git a/code/modules/events/operative.dm b/code/modules/events/operative.dm index afdd178ac4..1c026f8110 100644 --- a/code/modules/events/operative.dm +++ b/code/modules/events/operative.dm @@ -13,7 +13,7 @@ if(!candidates.len) return NOT_ENOUGH_PLAYERS - var/mob/dead/selected = popleft(candidates) + var/mob/dead/selected = pick_n_take(candidates) var/list/spawn_locs = list() for(var/obj/effect/landmark/L in landmarks_list) @@ -39,7 +39,7 @@ if(nuke) var/nuke_code if(!nuke.r_code || nuke.r_code == "ADMIN") - nuke_code = "[rand(10000, 99999)]" + nuke_code = random_nukecode() nuke.r_code = nuke_code else nuke_code = nuke.r_code diff --git a/code/modules/events/sentience.dm b/code/modules/events/sentience.dm new file mode 100644 index 0000000000..2049edbb7f --- /dev/null +++ b/code/modules/events/sentience.dm @@ -0,0 +1,42 @@ +/datum/round_event_control/sentience + name = "Random Human-level Intelligence" + typepath = /datum/round_event/ghost_role/sentience + weight = 5 + +/datum/round_event/ghost_role/sentience + minimum_required = 1 + role_name = "random animal" + +/datum/round_event/ghost_role/sentience/spawn_role() + var/list/mob/dead/observer/candidates + candidates = get_candidates(ROLE_ALIEN, null, ROLE_ALIEN) + + // find our chosen mob to breathe life into + // Mobs have to be simple animals, mindless and on station + var/list/potential = list() + for(var/mob/living/simple_animal/L in living_mob_list) + var/turf/T = get_turf(L) + if(T.z != ZLEVEL_STATION) + continue + if(!(L in player_list) && !L.mind) + potential += L + + var/mob/living/simple_animal/SA = pick(potential) + var/mob/dead/observer/SG = pick(candidates) + + if(!SA || !SG) + return FALSE + + SA.key = SG.key + SA.languages_spoken |= HUMAN + SA.languages_understood |= HUMAN + SA.sentience_act() + + SA.maxHealth = max(SA.maxHealth, 200) + SA.health = SA.maxHealth + SA.del_on_death = FALSE + + SA << "Hello world!" + SA << "Due to freak radiation and/or chemicals \ + and/or lucky chance, you have gained human level intelligence \ + and the ability to speak and understand human language!" diff --git a/code/modules/events/shuttle_loan.dm b/code/modules/events/shuttle_loan.dm index 8486c9b0fe..9000136343 100644 --- a/code/modules/events/shuttle_loan.dm +++ b/code/modules/events/shuttle_loan.dm @@ -3,6 +3,7 @@ #define SPIDER_GIFT 3 #define DEPARTMENT_RESUPPLY 4 #define ANTIDOTE_NEEDED 5 +#define PIZZA_DELIVERY 6 /datum/round_event_control/shuttle_loan @@ -20,7 +21,7 @@ var/thanks_msg = "The cargo shuttle should return in five minutes. Have some supply points for your trouble." /datum/round_event/shuttle_loan/start() - dispatch_type = pick(HIJACK_SYNDIE, RUSKY_PARTY, SPIDER_GIFT, DEPARTMENT_RESUPPLY, ANTIDOTE_NEEDED) + dispatch_type = pick(HIJACK_SYNDIE, RUSKY_PARTY, SPIDER_GIFT, DEPARTMENT_RESUPPLY, ANTIDOTE_NEEDED, PIZZA_DELIVERY) /datum/round_event/shuttle_loan/announce() SSshuttle.shuttle_loan = src @@ -37,6 +38,8 @@ bonus_points = 0 if(ANTIDOTE_NEEDED) priority_announce("Cargo: Your station has been chosen for an epidemiological research project. Send us your cargo shuttle to receive your research samples.", "Centcom Research Initiatives") + if (PIZZA_DELIVERY) + priority_announce("Cargo: It looks like a neighbouring station accidentally delivered their pizza to you instead", "Centcom Spacepizza Division") /datum/round_event/shuttle_loan/proc/loan_shuttle() priority_announce(thanks_msg, "Cargo shuttle commandeered by Centcom.") @@ -45,13 +48,8 @@ SSshuttle.points += bonus_points endWhen = activeFor + 1 - SSshuttle.supply.sell() - SSshuttle.supply.enterTransit() - if(SSshuttle.supply.z != ZLEVEL_STATION) - SSshuttle.supply.mode = SHUTTLE_CALL - SSshuttle.supply.destination = SSshuttle.getDock("supply_home") - else - SSshuttle.supply.mode = SHUTTLE_RECALL + SSshuttle.supply.mode = SHUTTLE_CALL + SSshuttle.supply.destination = SSshuttle.getDock("supply_home") SSshuttle.supply.setTimer(3000) switch(dispatch_type) @@ -65,6 +63,8 @@ SSshuttle.centcom_message += "Department resupply incoming." if(ANTIDOTE_NEEDED) SSshuttle.centcom_message += "Virus samples incoming." + if(PIZZA_DELIVERY) + SSshuttle.centcom_message += "Pizza delivery for [station_name()]" /datum/round_event/shuttle_loan/tick() if(dispatched) @@ -105,11 +105,11 @@ shuttle_spawns.Add(/mob/living/simple_animal/hostile/russian) shuttle_spawns.Add(/mob/living/simple_animal/hostile/russian/ranged) //drops a mateba - shuttle_spawns.Add(/mob/living/simple_animal/hostile/bear) + shuttle_spawns.Add(/mob/living/simple_animal/hostile/bear/russian) if(prob(75)) shuttle_spawns.Add(/mob/living/simple_animal/hostile/russian) if(prob(50)) - shuttle_spawns.Add(/mob/living/simple_animal/hostile/bear) + shuttle_spawns.Add(/mob/living/simple_animal/hostile/bear/russian) if(SPIDER_GIFT) var/datum/supply_pack/pack = SSshuttle.supply_packs[/datum/supply_pack/emergency/specialops] @@ -121,26 +121,18 @@ if(prob(50)) shuttle_spawns.Add(/mob/living/simple_animal/hostile/poison/giant_spider/hunter) - var/turf/T = pick(empty_shuttle_turfs) - empty_shuttle_turfs.Remove(T) + var/turf/T = pick_n_take(empty_shuttle_turfs) new /obj/effect/decal/remains/human(T) new /obj/item/clothing/shoes/space_ninja(T) new /obj/item/clothing/mask/balaclava(T) - T = pick(empty_shuttle_turfs) - new /obj/effect/spider/stickyweb(T) - T = pick(empty_shuttle_turfs) - new /obj/effect/spider/stickyweb(T) - T = pick(empty_shuttle_turfs) - new /obj/effect/spider/stickyweb(T) - T = pick(empty_shuttle_turfs) - new /obj/effect/spider/stickyweb(T) - T = pick(empty_shuttle_turfs) - new /obj/effect/spider/stickyweb(T) + for(var/i in 1 to 5) + T = pick_n_take(empty_shuttle_turfs) + new /obj/structure/spider/stickyweb(T) if(ANTIDOTE_NEEDED) - var/virus_type = pick(/datum/disease/beesease, /datum/disease/brainrot, /datum/disease/fluspanish, /datum/disease/transformation/xeno) + var/virus_type = pick(/datum/disease/beesease, /datum/disease/brainrot, /datum/disease/fluspanish) var/turf/T for(var/i=0, i<10, i++) if(prob(15)) @@ -178,6 +170,16 @@ for(var/i in 1 to 5) var/decal = pick(/obj/effect/decal/cleanable/flour, /obj/effect/decal/cleanable/robot_debris, /obj/effect/decal/cleanable/oil) new decal(pick_n_take(empty_shuttle_turfs)) + if(PIZZA_DELIVERY) + shuttle_spawns.Add(/obj/item/pizzabox/margherita) + shuttle_spawns.Add(/obj/item/pizzabox/margherita) + shuttle_spawns.Add(/obj/item/pizzabox/meat) + shuttle_spawns.Add(/obj/item/pizzabox/meat) + shuttle_spawns.Add(/obj/item/pizzabox/vegetable) + if(prob(10)) + shuttle_spawns.Add(/obj/item/pizzabox/bomb) + else + shuttle_spawns.Add(/obj/item/pizzabox/margherita) var/false_positive = 0 while(shuttle_spawns.len && empty_shuttle_turfs.len) @@ -193,4 +195,5 @@ #undef RUSKY_PARTY #undef SPIDER_GIFT #undef DEPARTMENT_RESUPPLY -#undef ANTIDOTE_NEEDED \ No newline at end of file +#undef ANTIDOTE_NEEDED +#undef PIZZA_DELIVERY diff --git a/code/modules/events/spacevine.dm b/code/modules/events/spacevine.dm index f355634ca6..0367f084c0 100644 --- a/code/modules/events/spacevine.dm +++ b/code/modules/events/spacevine.dm @@ -8,7 +8,7 @@ /datum/round_event/spacevine/start() var/list/turfs = list() //list of all the empty floor turfs in the hallway areas - var/obj/effect/spacevine/SV = new() + var/obj/structure/spacevine/SV = new() for(var/area/hallway/A in world) for(var/turf/F in A) @@ -28,40 +28,44 @@ var/hue var/quality -/datum/spacevine_mutation/proc/process_mutation(obj/effect/spacevine/holder) +/datum/spacevine_mutation/proc/add_mutation_to_vinepiece(obj/structure/spacevine/holder) + holder.mutations |= src + holder.add_atom_colour(hue, FIXED_COLOUR_PRIORITY) + +/datum/spacevine_mutation/proc/process_mutation(obj/structure/spacevine/holder) return -/datum/spacevine_mutation/proc/process_temperature(obj/effect/spacevine/holder, temp, volume) +/datum/spacevine_mutation/proc/process_temperature(obj/structure/spacevine/holder, temp, volume) return -/datum/spacevine_mutation/proc/on_birth(obj/effect/spacevine/holder) +/datum/spacevine_mutation/proc/on_birth(obj/structure/spacevine/holder) return -/datum/spacevine_mutation/proc/on_grow(obj/effect/spacevine/holder) +/datum/spacevine_mutation/proc/on_grow(obj/structure/spacevine/holder) return -/datum/spacevine_mutation/proc/on_death(obj/effect/spacevine/holder) +/datum/spacevine_mutation/proc/on_death(obj/structure/spacevine/holder) return -/datum/spacevine_mutation/proc/on_hit(obj/effect/spacevine/holder, mob/hitter, obj/item/I, expected_damage) +/datum/spacevine_mutation/proc/on_hit(obj/structure/spacevine/holder, mob/hitter, obj/item/I, expected_damage) . = expected_damage -/datum/spacevine_mutation/proc/on_cross(obj/effect/spacevine/holder, mob/crosser) +/datum/spacevine_mutation/proc/on_cross(obj/structure/spacevine/holder, mob/crosser) return -/datum/spacevine_mutation/proc/on_chem(obj/effect/spacevine/holder, datum/reagent/R) +/datum/spacevine_mutation/proc/on_chem(obj/structure/spacevine/holder, datum/reagent/R) return -/datum/spacevine_mutation/proc/on_eat(obj/effect/spacevine/holder, mob/living/eater) +/datum/spacevine_mutation/proc/on_eat(obj/structure/spacevine/holder, mob/living/eater) return -/datum/spacevine_mutation/proc/on_spread(obj/effect/spacevine/holder, turf/target) +/datum/spacevine_mutation/proc/on_spread(obj/structure/spacevine/holder, turf/target) return -/datum/spacevine_mutation/proc/on_buckle(obj/effect/spacevine/holder, mob/living/buckled) +/datum/spacevine_mutation/proc/on_buckle(obj/structure/spacevine/holder, mob/living/buckled) return -/datum/spacevine_mutation/proc/on_explosion(severity, target, obj/effect/spacevine/holder) +/datum/spacevine_mutation/proc/on_explosion(severity, target, obj/structure/spacevine/holder) return @@ -70,70 +74,41 @@ hue = "#aa77aa" quality = POSITIVE -/turf/open/floor/vines - color = "#aa77aa" - icon_state = "vinefloor" - broken_states = list() +/datum/spacevine_mutation/space_covering + var/static/list/coverable_turfs +/datum/spacevine_mutation/space_covering/New() + . = ..() + if(!coverable_turfs) + coverable_turfs = typecacheof(list( + /turf/open/space + )) + coverable_turfs -= typecacheof(list( + /turf/open/space/transit + )) -//All of this shit is useless for vines +/datum/spacevine_mutation/space_covering/on_grow(obj/structure/spacevine/holder) + process_mutation(holder) -/turf/open/floor/vines/attackby() - return +/datum/spacevine_mutation/space_covering/process_mutation(obj/structure/spacevine/holder) + var/turf/T = get_turf(holder) + if(is_type_in_typecache(T, coverable_turfs)) + var/currtype = T.type + T.ChangeTurf(/turf/open/floor/vines) + T.baseturf = currtype -/turf/open/floor/vines/burn_tile() - return - -/turf/open/floor/vines/break_tile() - return - -/turf/open/floor/vines/make_plating() - return - -/turf/open/floor/vines/break_tile_to_plating() - return - -/turf/open/floor/vines/ex_act(severity, target) - if(severity < 3 || target == src) - ChangeTurf(src.baseturf) - -/turf/open/floor/vines/narsie_act() - if(prob(20)) - ChangeTurf(src.baseturf) //nar sie eats this shit - -/turf/open/floor/vines/singularity_pull(S, current_size) - if(current_size >= STAGE_FIVE) - if(prob(50)) - ChangeTurf(src.baseturf) - -/turf/open/floor/vines/ChangeTurf(turf/open/floor/T) - for(var/obj/effect/spacevine/SV in src) - qdel(SV) - ..() - reconsider_lights() - -/datum/spacevine_mutation/space_covering/on_grow(obj/effect/spacevine/holder) - if(istype(holder.loc, /turf/open/space)) - var/turf/open/spaceturf = holder.loc - spaceturf.ChangeTurf(/turf/open/floor/vines) - -/datum/spacevine_mutation/space_covering/process_mutation(obj/effect/spacevine/holder) - if(istype(holder.loc, /turf/open/space)) - var/turf/open/spaceturf = holder.loc - spaceturf.ChangeTurf(/turf/open/floor/vines) - -/datum/spacevine_mutation/space_covering/on_death(obj/effect/spacevine/holder) - if(istype(holder.loc, /turf/open/floor/vines)) - var/turf/open/spaceturf = holder.loc - spaceturf.ChangeTurf(/turf/open/space) +/datum/spacevine_mutation/space_covering/on_death(obj/structure/spacevine/holder) + var/turf/T = get_turf(holder) + if(istype(T, /turf/open/floor/vines)) + T.ChangeTurf(T.baseturf) /datum/spacevine_mutation/bluespace name = "bluespace" hue = "#3333ff" quality = MINOR_NEGATIVE -/datum/spacevine_mutation/bluespace/on_spread(obj/effect/spacevine/holder, turf/target) - if(holder.energy > 1 && !locate(/obj/effect/spacevine) in target) +/datum/spacevine_mutation/bluespace/on_spread(obj/structure/spacevine/holder, turf/target) + if(holder.energy > 1 && !locate(/obj/structure/spacevine) in target) holder.master.spawn_spacevine_piece(target, holder) /datum/spacevine_mutation/light @@ -142,9 +117,9 @@ quality = POSITIVE severity = 4 -/datum/spacevine_mutation/light/on_grow(obj/effect/spacevine/holder) +/datum/spacevine_mutation/light/on_grow(obj/structure/spacevine/holder) if(holder.energy) - holder.set_light(severity, 3) + holder.SetLuminosity(severity, 3) /datum/spacevine_mutation/toxicity name = "toxic" @@ -152,15 +127,16 @@ severity = 10 quality = NEGATIVE -/datum/spacevine_mutation/toxicity/on_cross(obj/effect/spacevine/holder, mob/living/crosser) +/datum/spacevine_mutation/toxicity/on_cross(obj/structure/spacevine/holder, mob/living/crosser) if(issilicon(crosser)) return - if(prob(severity) && istype(crosser)) + if(prob(severity) && istype(crosser) && !isvineimmune(crosser)) crosser << "You accidently touch the vine and feel a strange sensation." crosser.adjustToxLoss(5) -/datum/spacevine_mutation/toxicity/on_eat(obj/effect/spacevine/holder, mob/living/eater) - eater.adjustToxLoss(5) +/datum/spacevine_mutation/toxicity/on_eat(obj/structure/spacevine/holder, mob/living/eater) + if(!isvineimmune(eater)) + eater.adjustToxLoss(5) /datum/spacevine_mutation/explosive //OH SHIT IT CAN CHAINREACT RUN!!! name = "explosive" @@ -168,15 +144,14 @@ quality = NEGATIVE severity = 2 -/datum/spacevine_mutation/explosive/on_explosion(explosion_severity, target, obj/effect/spacevine/holder) +/datum/spacevine_mutation/explosive/on_explosion(explosion_severity, target, obj/structure/spacevine/holder) if(explosion_severity < 3) qdel(src) else . = 1 - spawn(5) - qdel(src) + QDEL_IN(src, 5) -/datum/spacevine_mutation/explosive/on_death(obj/effect/spacevine/holder, mob/hitter, obj/item/I) +/datum/spacevine_mutation/explosive/on_death(obj/structure/spacevine/holder, mob/hitter, obj/item/I) explosion(holder.loc, 0, 0, severity, 0, 0) /datum/spacevine_mutation/fire_proof @@ -184,20 +159,22 @@ hue = "#ff8888" quality = MINOR_NEGATIVE -/datum/spacevine_mutation/fire_proof/process_temperature(obj/effect/spacevine/holder, temp, volume) +/datum/spacevine_mutation/fire_proof/process_temperature(obj/structure/spacevine/holder, temp, volume) return 1 -/datum/spacevine_mutation/fire_proof/on_hit(obj/effect/spacevine/holder, mob/hitter, obj/item/I, expected_damage) +/datum/spacevine_mutation/fire_proof/on_hit(obj/structure/spacevine/holder, mob/hitter, obj/item/I, expected_damage) if(I && I.damtype == "fire") . = 0 + else + . = expected_damage /datum/spacevine_mutation/vine_eating name = "vine eating" hue = "#ff7700" quality = MINOR_NEGATIVE -/datum/spacevine_mutation/vine_eating/on_spread(obj/effect/spacevine/holder, turf/target) - var/obj/effect/spacevine/prey = locate() in target +/datum/spacevine_mutation/vine_eating/on_spread(obj/structure/spacevine/holder, turf/target) + var/obj/structure/spacevine/prey = locate() in target if(prey && !prey.mutations.Find(src)) //Eat all vines that are not of the same origin qdel(prey) @@ -207,19 +184,19 @@ severity = 3 quality = NEGATIVE -/datum/spacevine_mutation/aggressive_spread/on_spread(obj/effect/spacevine/holder, turf/target) - target.ex_act(severity, src) +/datum/spacevine_mutation/aggressive_spread/on_spread(obj/structure/spacevine/holder, turf/target) + target.ex_act(severity, null, src) // vine immunity handled at /mob/ex_act -/datum/spacevine_mutation/aggressive_spread/on_buckle(obj/effect/spacevine/holder, mob/living/buckled) - buckled.ex_act(severity) +/datum/spacevine_mutation/aggressive_spread/on_buckle(obj/structure/spacevine/holder, mob/living/buckled) + buckled.ex_act(severity, null, src) /datum/spacevine_mutation/transparency name = "transparent" hue = "" quality = POSITIVE -/datum/spacevine_mutation/transparency/on_grow(obj/effect/spacevine/holder) - holder.set_opacity(0) +/datum/spacevine_mutation/transparency/on_grow(obj/structure/spacevine/holder) + holder.SetOpacity(0) holder.alpha = 125 /datum/spacevine_mutation/oxy_eater @@ -228,7 +205,7 @@ severity = 3 quality = NEGATIVE -/datum/spacevine_mutation/oxy_eater/process_mutation(obj/effect/spacevine/holder) +/datum/spacevine_mutation/oxy_eater/process_mutation(obj/structure/spacevine/holder) var/turf/open/floor/T = holder.loc if(istype(T)) var/datum/gas_mixture/GM = T.air @@ -243,7 +220,7 @@ severity = 3 quality = NEGATIVE -/datum/spacevine_mutation/nitro_eater/process_mutation(obj/effect/spacevine/holder) +/datum/spacevine_mutation/nitro_eater/process_mutation(obj/structure/spacevine/holder) var/turf/open/floor/T = holder.loc if(istype(T)) var/datum/gas_mixture/GM = T.air @@ -258,7 +235,7 @@ severity = 3 quality = POSITIVE -/datum/spacevine_mutation/carbondioxide_eater/process_mutation(obj/effect/spacevine/holder) +/datum/spacevine_mutation/carbondioxide_eater/process_mutation(obj/structure/spacevine/holder) var/turf/open/floor/T = holder.loc if(istype(T)) var/datum/gas_mixture/GM = T.air @@ -273,7 +250,7 @@ severity = 3 quality = POSITIVE -/datum/spacevine_mutation/plasma_eater/process_mutation(obj/effect/spacevine/holder) +/datum/spacevine_mutation/plasma_eater/process_mutation(obj/structure/spacevine/holder) var/turf/open/floor/T = holder.loc if(istype(T)) var/datum/gas_mixture/GM = T.air @@ -288,35 +265,35 @@ severity = 10 quality = NEGATIVE -/datum/spacevine_mutation/thorns/on_cross(obj/effect/spacevine/holder, mob/living/crosser) - if(prob(severity) && istype(crosser)) +/datum/spacevine_mutation/thorns/on_cross(obj/structure/spacevine/holder, mob/living/crosser) + if(prob(severity) && istype(crosser) && !isvineimmune(holder)) var/mob/living/M = crosser M.adjustBruteLoss(5) M << "You cut yourself on the thorny vines." -/datum/spacevine_mutation/thorns/on_hit(obj/effect/spacevine/holder, mob/living/hitter) - if(prob(severity) && istype(hitter)) +/datum/spacevine_mutation/thorns/on_hit(obj/structure/spacevine/holder, mob/living/hitter, obj/item/I, expected_damage) + if(prob(severity) && istype(hitter) && !isvineimmune(holder)) var/mob/living/M = hitter M.adjustBruteLoss(5) M << "You cut yourself on the thorny vines." + . = expected_damage /datum/spacevine_mutation/woodening name = "hardened" hue = "#997700" quality = NEGATIVE -/datum/spacevine_mutation/woodening/on_grow(obj/effect/spacevine/holder) +/datum/spacevine_mutation/woodening/on_grow(obj/structure/spacevine/holder) if(holder.energy) holder.density = 1 + holder.max_integrity = 100 + holder.obj_integrity = holder.max_integrity -/datum/spacevine_mutation/woodening/on_hit(obj/effect/spacevine/holder, mob/hitter, obj/item/I, expected_damage) - if(!expected_damage) - return - if(hitter) - if(I) - . = I.force * 2 - else - . = 8 +/datum/spacevine_mutation/woodening/on_hit(obj/structure/spacevine/holder, mob/living/hitter, obj/item/I, expected_damage) + if(I.is_sharp()) + . = expected_damage * 0.5 + else + . = expected_damage /datum/spacevine_mutation/flowering name = "flowering" @@ -324,16 +301,17 @@ quality = NEGATIVE severity = 10 -/datum/spacevine_mutation/flowering/on_grow(obj/effect/spacevine/holder) +/datum/spacevine_mutation/flowering/on_grow(obj/structure/spacevine/holder) if(holder.energy == 2 && prob(severity) && !locate(/obj/structure/alien/resin/flower_bud_enemy) in range(5,holder)) new/obj/structure/alien/resin/flower_bud_enemy(get_turf(holder)) -/datum/spacevine_mutation/flowering/on_cross(obj/effect/spacevine/holder, mob/living/crosser) - holder.entangle(crosser) +/datum/spacevine_mutation/flowering/on_cross(obj/structure/spacevine/holder, mob/living/crosser) + if(prob(25)) + holder.entangle(crosser) // SPACE VINES (Note that this code is very similar to Biomass code) -/obj/effect/spacevine +/obj/structure/spacevine name = "space vines" desc = "An extremely expansionistic species of vine." icon = 'icons/effects/spacevines.dmi' @@ -343,11 +321,29 @@ layer = SPACEVINE_LAYER mouse_opacity = 2 //Clicking anywhere on the turf is good enough pass_flags = PASSTABLE | PASSGRILLE + obj_integrity = 50 + max_integrity = 50 var/energy = 0 var/obj/effect/spacevine_controller/master = null var/list/mutations = list() -/obj/effect/spacevine/Destroy() +/obj/structure/spacevine/New() + ..() + add_atom_colour("#ffffff", FIXED_COLOUR_PRIORITY) + +/obj/structure/spacevine/examine(mob/user) + ..() + var/text = "This one is a" + if(mutations.len) + for(var/A in mutations) + var/datum/spacevine_mutation/SM = A + text += " [SM.name]" + else + text += " normal" + text += " vine." + user << text + +/obj/structure/spacevine/Destroy() for(var/datum/spacevine_mutation/SM in mutations) SM.on_death(src) if(master) @@ -356,15 +352,15 @@ if(!master.vines.len) var/obj/item/seeds/kudzu/KZ = new(loc) KZ.mutations |= mutations - KZ.potency = min(100, master.mutativness * 10) + KZ.potency = min(100, master.mutativeness * 10) KZ.production = (master.spread_cap / initial(master.spread_cap)) * 50 mutations = list() - set_opacity(0) + SetOpacity(0) if(has_buckled_mobs()) unbuckle_all_mobs(force=1) return ..() -/obj/effect/spacevine/proc/on_chem_effect(datum/reagent/R) +/obj/structure/spacevine/proc/on_chem_effect(datum/reagent/R) var/override = 0 for(var/datum/spacevine_mutation/SM in mutations) override += SM.on_chem(src, R) @@ -372,7 +368,7 @@ if(prob(50)) qdel(src) -/obj/effect/spacevine/proc/eat(mob/eater) +/obj/structure/spacevine/proc/eat(mob/eater) var/override = 0 for(var/datum/spacevine_mutation/SM in mutations) override += SM.on_eat(src, eater) @@ -381,68 +377,77 @@ eater.say("Nom") qdel(src) -/obj/effect/spacevine/attackby(obj/item/weapon/W, mob/user, params) - if (!W || !user || !W.type) - return - user.changeNext_move(CLICK_CD_MELEE) +/obj/structure/spacevine/attackby(obj/item/weapon/W, mob/user, params) - var/override = W.force - if(W.is_sharp()) - override = 100 if(istype(W, /obj/item/weapon/scythe)) - var/local_override = override - for(var/obj/effect/spacevine/B in orange(1,src)) - for(var/datum/spacevine_mutation/SM in mutations) - local_override = SM.on_hit(src, user, W, local_override) - if(prob(local_override)) - qdel(B) + user.changeNext_move(CLICK_CD_MELEE) + for(var/obj/structure/spacevine/B in orange(1,src)) + B.take_damage(W.force * 4, BRUTE, "melee", 1) + return + else + return ..() + + +/obj/structure/spacevine/attacked_by(obj/item/I, mob/living/user) + var/damage_dealt = I.force + if(I.is_sharp()) + damage_dealt *= 4 + if(I.damtype == BURN) + damage_dealt *= 4 for(var/datum/spacevine_mutation/SM in mutations) - override = SM.on_hit(src, user, W, override) //on_hit now takes override damage as arg and returns new value for other mutations to permutate further + damage_dealt = SM.on_hit(src, user, I, damage_dealt) //on_hit now takes override damage as arg and returns new value for other mutations to permutate further + take_damage(damage_dealt, I.damtype, "melee", 1) - if(prob(override)) - qdel(src) +/obj/structure/spacevine/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) + switch(damage_type) + if(BRUTE) + if(damage_amount) + playsound(src, 'sound/weapons/slash.ogg', 50, 1) + else + playsound(src, 'sound/weapons/tap.ogg', 50, 1) + if(BURN) + playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) - ..() - -/obj/effect/spacevine/Crossed(mob/crosser) +/obj/structure/spacevine/Crossed(mob/crosser) if(isliving(crosser)) for(var/datum/spacevine_mutation/SM in mutations) SM.on_cross(src, crosser) -/obj/effect/spacevine/attack_hand(mob/user) +/obj/structure/spacevine/attack_hand(mob/user) for(var/datum/spacevine_mutation/SM in mutations) SM.on_hit(src, user) user_unbuckle_mob(user, user) -/obj/effect/spacevine/attack_paw(mob/living/user) - user.do_attack_animation(src) +/obj/structure/spacevine/attack_paw(mob/living/user) for(var/datum/spacevine_mutation/SM in mutations) SM.on_hit(src, user) user_unbuckle_mob(user,user) -/obj/effect/spacevine/attack_alien(mob/living/user) +/obj/structure/spacevine/attack_alien(mob/living/user) eat(user) /obj/effect/spacevine_controller invisibility = INVISIBILITY_ABSTRACT - var/list/obj/effect/spacevine/vines = list() + var/list/obj/structure/spacevine/vines = list() var/list/growth_queue = list() var/spread_multiplier = 5 var/spread_cap = 30 var/list/mutations_list = list() - var/mutativness = 1 + var/mutativeness = 1 -/obj/effect/spacevine_controller/New(loc, list/muts, mttv, spreading) +/obj/effect/spacevine_controller/New(loc, list/muts, potency, production) + add_atom_colour("#ffffff", FIXED_COLOUR_PRIORITY) spawn_spacevine_piece(loc, , muts) START_PROCESSING(SSobj, src) init_subtypes(/datum/spacevine_mutation/, mutations_list) - if(mttv != null) - mutativness = mttv / 10 - if(spreading != null) - spread_cap *= spreading / 50 - spread_multiplier /= spreading / 50 + if(potency != null) + mutativeness = potency / 10 + if(production != null) + spread_cap *= production / 5 + spread_multiplier /= production / 5 + ..() /obj/effect/spacevine_controller/ex_act() //only killing all vines will end this suffering return @@ -457,32 +462,29 @@ STOP_PROCESSING(SSobj, src) return ..() -/obj/effect/spacevine_controller/proc/spawn_spacevine_piece(turf/location, obj/effect/spacevine/parent, list/muts) - var/obj/effect/spacevine/SV = new(location) +/obj/effect/spacevine_controller/proc/spawn_spacevine_piece(turf/location, obj/structure/spacevine/parent, list/muts) + var/obj/structure/spacevine/SV = new(location) growth_queue += SV vines += SV SV.master = src if(muts && muts.len) - SV.mutations |= muts + for(var/datum/spacevine_mutation/M in muts) + M.add_mutation_to_vinepiece(SV) + return if(parent) SV.mutations |= parent.mutations - SV.color = parent.color - SV.desc = parent.desc - if(prob(mutativness)) - SV.mutations |= pick(mutations_list) - var/datum/spacevine_mutation/randmut = pick(SV.mutations) - SV.color = randmut.hue - SV.desc = "An extremely expansionistic species of vine. These are " - for(var/datum/spacevine_mutation/M in SV.mutations) - SV.desc += "[M.name] " - SV.desc += "vines." + var/parentcolor = parent.atom_colours[FIXED_COLOUR_PRIORITY] + SV.add_atom_colour(parentcolor, FIXED_COLOUR_PRIORITY) + if(prob(mutativeness)) + var/datum/spacevine_mutation/randmut = pick(mutations_list - SV.mutations) + randmut.add_mutation_to_vinepiece(SV) for(var/datum/spacevine_mutation/SM in SV.mutations) SM.on_birth(SV) /obj/effect/spacevine_controller/process() if(!vines) - qdel(src) //space vines exterminated. Remove the controller + qdel(src) //space vines exterminated. Remove the controller return if(!growth_queue) qdel(src) //Sanity check @@ -492,9 +494,9 @@ length = min( spread_cap , max( 1 , vines.len / spread_multiplier ) ) var/i = 0 - var/list/obj/effect/spacevine/queue_end = list() + var/list/obj/structure/spacevine/queue_end = list() - for( var/obj/effect/spacevine/SV in growth_queue ) + for(var/obj/structure/spacevine/SV in growth_queue) if(qdeleted(SV)) continue i++ @@ -515,11 +517,11 @@ growth_queue = growth_queue + queue_end -/obj/effect/spacevine/proc/grow() +/obj/structure/spacevine/proc/grow() if(!energy) src.icon_state = pick("Med1", "Med2", "Med3") energy = 1 - set_opacity(1) + SetOpacity(1) else src.icon_state = pick("Hvy1", "Hvy2", "Hvy3") energy = 2 @@ -527,35 +529,35 @@ for(var/datum/spacevine_mutation/SM in mutations) SM.on_grow(src) -/obj/effect/spacevine/proc/entangle_mob() +/obj/structure/spacevine/proc/entangle_mob() if(!has_buckled_mobs() && prob(25)) for(var/mob/living/V in src.loc) entangle(V) - if(buckled_mobs.len) + if(has_buckled_mobs()) break //only capture one mob at a time -/obj/effect/spacevine/proc/entangle(mob/living/V) - if(!V) +/obj/structure/spacevine/proc/entangle(mob/living/V) + if(!V || isvineimmune(V)) return for(var/datum/spacevine_mutation/SM in mutations) SM.on_buckle(src, V) if((V.stat != DEAD) && (V.buckled != src)) //not dead or captured V << "The vines [pick("wind", "tangle", "tighten")] around you!" - buckle_mob(V) + buckle_mob(V, 1) -/obj/effect/spacevine/proc/spread() +/obj/structure/spacevine/proc/spread() var/direction = pick(cardinal) var/turf/stepturf = get_step(src,direction) for(var/datum/spacevine_mutation/SM in mutations) SM.on_spread(src, stepturf) stepturf = get_step(src,direction) //in case turf changes, to make sure no runtimes happen - if(!locate(/obj/effect/spacevine, stepturf)) + if(!locate(/obj/structure/spacevine, stepturf)) if(stepturf.Enter(src)) if(master) master.spawn_spacevine_piece(stepturf, src) -/obj/effect/spacevine/ex_act(severity, target) +/obj/structure/spacevine/ex_act(severity, target) if(istype(target, type)) //if its agressive spread vine dont do anything return var/i @@ -564,9 +566,22 @@ if(!i && prob(100/severity)) qdel(src) -/obj/effect/spacevine/temperature_expose(null, temp, volume) +/obj/structure/spacevine/temperature_expose(null, temp, volume) var/override = 0 for(var/datum/spacevine_mutation/SM in mutations) override += SM.process_temperature(src, temp, volume) if(!override) qdel(src) + +/obj/structure/spacevine/CanPass(atom/movable/mover, turf/target, height=0) + if(isvineimmune(mover)) + . = TRUE + else + . = ..() + +/proc/isvineimmune(atom/A) + . = FALSE + if(isliving(A)) + var/mob/living/M = A + if(("vines" in M.faction) || ("plants" in M.faction)) + . = TRUE diff --git a/code/modules/events/spider_infestation.dm b/code/modules/events/spider_infestation.dm index 3893ba48ee..4a49461757 100644 --- a/code/modules/events/spider_infestation.dm +++ b/code/modules/events/spider_infestation.dm @@ -29,8 +29,9 @@ while((spawncount >= 1) && vents.len) var/obj/vent = pick(vents) - var/obj/effect/spider/spiderling/S = new(vent.loc) + var/spawn_type = /obj/structure/spider/spiderling if(prob(66)) - S.grow_as = /mob/living/simple_animal/hostile/poison/giant_spider/nurse + spawn_type = /obj/structure/spider/spiderling/nurse + spawn_atom_to_turf(spawn_type, vent, 1, FALSE) vents -= vent - spawncount-- \ No newline at end of file + spawncount-- diff --git a/code/modules/events/vent_clog.dm b/code/modules/events/vent_clog.dm index 4355549b47..d56d61b22b 100644 --- a/code/modules/events/vent_clog.dm +++ b/code/modules/events/vent_clog.dm @@ -10,7 +10,7 @@ var/interval = 2 var/list/vents = list() var/list/gunk = list("water","carbon","flour","radium","toxin","cleaner","nutriment","condensedcapsaicin","mushroomhallucinogen","lube", - "plantbgone","banana","charcoal","space_drugs","morphine","holywater","ethanol","hot_coco","facid") + "plantbgone","banana","charcoal","space_drugs","morphine","holywater","ethanol","hot_coco","sacid") /datum/round_event/vent_clog/announce() priority_announce("The scrubbers network is experiencing a backpressure surge. Some ejection of contents may occur.", "Atmospherics alert") diff --git a/code/modules/events/wizard/aid.dm b/code/modules/events/wizard/aid.dm index b472ab9796..fc37888411 100644 --- a/code/modules/events/wizard/aid.dm +++ b/code/modules/events/wizard/aid.dm @@ -3,7 +3,7 @@ /datum/round_event_control/wizard/robelesscasting //EI NUDTH! name = "Robeless Casting" weight = 2 - typepath = /datum/round_event/wizard/robelesscasting/ + typepath = /datum/round_event/wizard/robelesscasting max_occurrences = 1 earliest_start = 0 @@ -24,7 +24,7 @@ /datum/round_event_control/wizard/improvedcasting //blink x5 disintergrate x5 here I come! name = "Improved Casting" weight = 3 - typepath = /datum/round_event/wizard/improvedcasting/ + typepath = /datum/round_event/wizard/improvedcasting max_occurrences = 4 //because that'd be max level spells earliest_start = 0 diff --git a/code/modules/events/wizard/blobies.dm b/code/modules/events/wizard/blobies.dm index 2f9f04053f..6953370e45 100644 --- a/code/modules/events/wizard/blobies.dm +++ b/code/modules/events/wizard/blobies.dm @@ -1,7 +1,7 @@ /datum/round_event_control/wizard/blobies //avast! name = "Zombie Outbreak" weight = 3 - typepath = /datum/round_event/wizard/blobies/ + typepath = /datum/round_event/wizard/blobies max_occurrences = 3 earliest_start = 12000 // 20 minutes (gotta get some bodies made!) diff --git a/code/modules/events/wizard/curseditems.dm b/code/modules/events/wizard/curseditems.dm index 49895449ee..099639d202 100644 --- a/code/modules/events/wizard/curseditems.dm +++ b/code/modules/events/wizard/curseditems.dm @@ -1,7 +1,7 @@ /datum/round_event_control/wizard/cursed_items //fashion disasters name = "Cursed Items" weight = 3 - typepath = /datum/round_event/wizard/cursed_items/ + typepath = /datum/round_event/wizard/cursed_items max_occurrences = 3 earliest_start = 0 @@ -11,7 +11,7 @@ /datum/round_event/wizard/cursed_items/start() var/item_set = pick("wizardmimic", "swords", "bigfatdoobie", "boxing", "voicemodulators", "catgirls2015") - var/list/wearslots = list(slot_wear_suit, slot_shoes, slot_head, slot_wear_mask, slot_r_hand, slot_gloves, slot_ears) + var/list/wearslots = list(slot_wear_suit, slot_shoes, slot_head, slot_wear_mask, slot_gloves, slot_ears) var/list/loadout = list() var/ruins_spaceworthiness var/ruins_wizard_loadout @@ -19,12 +19,12 @@ switch(item_set) if("wizardmimic") - loadout = list(/obj/item/clothing/suit/wizrobe, /obj/item/clothing/shoes/sandal, /obj/item/clothing/head/wizard) + loadout = list(/obj/item/clothing/suit/wizrobe, /obj/item/clothing/shoes/sandal/magic, /obj/item/clothing/head/wizard) ruins_spaceworthiness = 1 if("swords") loadout[5] = /obj/item/weapon/katana/cursed if("bigfatdoobie") - loadout[4] = /obj/item/clothing/mask/cigarette/rollie/trippy/ + loadout[4] = /obj/item/clothing/mask/cigarette/rollie/trippy ruins_spaceworthiness = 1 if("boxing") loadout[4] = /obj/item/clothing/mask/luchador @@ -38,14 +38,14 @@ ruins_wizard_loadout = 1 for(var/mob/living/carbon/human/H in living_mob_list) - if(ruins_spaceworthiness && (H.z != 1 || istype(H.loc, /turf/open/space))) + if(ruins_spaceworthiness && (H.z != 1 || isspaceturf(H.loc) || isplasmaman(H))) continue //#savetheminers if(ruins_wizard_loadout && H.mind && ((H.mind in ticker.mode.wizards) || (H.mind in ticker.mode.apprentices))) continue if(item_set == "catgirls2015") //Wizard code means never having to say you're sorry H.gender = FEMALE - var/list/slots = list(H.wear_suit, H.shoes, H.head, H.wear_mask, H.r_hand, H.gloves, H.ears) //add new slots as needed to back - for(var/i = 1, i <= loadout.len, i++) + var/list/slots = list(H.wear_suit, H.shoes, H.head, H.wear_mask, H.gloves, H.ears) //add new slots as needed to back + for(var/i in 1 to loadout.len) if(loadout[i]) var/obj/item/J = loadout[i] var/obj/item/I = new J //dumb but required because of byond throwing a fit anytime new gets too close to a list diff --git a/code/modules/events/wizard/departmentrevolt.dm b/code/modules/events/wizard/departmentrevolt.dm index 0408f97169..0774aaaeb4 100644 --- a/code/modules/events/wizard/departmentrevolt.dm +++ b/code/modules/events/wizard/departmentrevolt.dm @@ -1,7 +1,7 @@ /datum/round_event_control/wizard/deprevolt //stationwide! name = "Departmental Uprising" weight = 0 //An order that requires order in a round of chaos was maybe not the best idea. Requiescat in pace departmental uprising August 2014 - March 2015 - typepath = /datum/round_event/wizard/deprevolt/ + typepath = /datum/round_event/wizard/deprevolt max_occurrences = 1 earliest_start = 0 diff --git a/code/modules/events/wizard/fakeexplosion.dm b/code/modules/events/wizard/fakeexplosion.dm index 3b2dfe80a0..770f876e68 100644 --- a/code/modules/events/wizard/fakeexplosion.dm +++ b/code/modules/events/wizard/fakeexplosion.dm @@ -1,7 +1,7 @@ /datum/round_event_control/wizard/fake_explosion //Oh no the station is gone! name = "Fake Nuclear Explosion" weight = 0 //Badmin exclusive now because once it's expected its not funny - typepath = /datum/round_event/wizard/fake_explosion/ + typepath = /datum/round_event/wizard/fake_explosion max_occurrences = 1 earliest_start = 0 diff --git a/code/modules/events/wizard/ghost.dm b/code/modules/events/wizard/ghost.dm index bb60ee2521..9f0e41d885 100644 --- a/code/modules/events/wizard/ghost.dm +++ b/code/modules/events/wizard/ghost.dm @@ -1,7 +1,7 @@ /datum/round_event_control/wizard/ghost //The spook is real name = "G-G-G-Ghosts!" weight = 3 - typepath = /datum/round_event/wizard/ghost/ + typepath = /datum/round_event/wizard/ghost max_occurrences = 5 earliest_start = 0 diff --git a/code/modules/events/wizard/greentext.dm b/code/modules/events/wizard/greentext.dm index a35e1d6c2d..202dee5a13 100644 --- a/code/modules/events/wizard/greentext.dm +++ b/code/modules/events/wizard/greentext.dm @@ -1,7 +1,7 @@ /datum/round_event_control/wizard/greentext //Gotta have it! name = "Greentext" weight = 4 - typepath = /datum/round_event/wizard/greentext/ + typepath = /datum/round_event/wizard/greentext max_occurrences = 1 earliest_start = 0 @@ -22,13 +22,13 @@ /obj/item/weapon/greentext name = "greentext" desc = "No one knows what this massive tome does, but it feels desirable all the same..." - w_class = 4 + w_class = WEIGHT_CLASS_BULKY icon = 'icons/obj/wizard.dmi' icon_state = "greentext" var/mob/living/last_holder var/mob/living/new_holder var/list/color_altered_mobs = list() - burn_state = FIRE_PROOF + resistance_flags = FIRE_PROOF | ACID_PROOF var/quiet = FALSE /obj/item/weapon/greentext/New() @@ -44,14 +44,14 @@ last_holder = user if(!(user in color_altered_mobs)) color_altered_mobs += user - user.color = "#00FF00" + user.add_atom_colour("#00FF00", ADMIN_COLOUR_PRIORITY) START_PROCESSING(SSobj, src) ..() /obj/item/weapon/greentext/dropped(mob/living/user as mob) if(user in color_altered_mobs) user << "A sudden wave of failure washes over you..." - user.color = "#FF0000" //ya blew it + user.add_atom_colour("#FF0000", ADMIN_COLOUR_PRIORITY) //ya blew it last_holder = null new_holder = null STOP_PROCESSING(SSobj, src) @@ -69,16 +69,16 @@ new_holder.mind.objectives += O new_holder.attack_log += "\[[time_stamp()]\] Won with greentext!!!" color_altered_mobs -= new_holder - burn_state = ON_FIRE + resistance_flags |= ON_FIRE qdel(src) if(last_holder && last_holder != new_holder) //Somehow it was swiped without ever getting dropped last_holder << "A sudden wave of failure washes over you..." - last_holder.color = "#FF0000" + last_holder.add_atom_colour("#FF0000", ADMIN_COLOUR_PRIORITY) last_holder = new_holder //long live the king /obj/item/weapon/greentext/Destroy(force) - if((burn_state != ON_FIRE) && (!force)) + if(!(resistance_flags & ON_FIRE) && !force) return QDEL_HINT_LETMELIVE . = ..() @@ -87,7 +87,8 @@ var/message = "A dark temptation has passed from this world" if(M in color_altered_mobs) message += " and you're finally able to forgive yourself" - M.color = initial(M.color) + if(M.color == "#FF0000" || M.color == "#00FF00") + M.remove_atom_colour(ADMIN_COLOUR_PRIORITY) message += "..." // can't skip the mob check as it also does the decolouring if(!quiet) diff --git a/code/modules/events/wizard/imposter.dm b/code/modules/events/wizard/imposter.dm index 15b07a1c12..b579ee834f 100644 --- a/code/modules/events/wizard/imposter.dm +++ b/code/modules/events/wizard/imposter.dm @@ -1,7 +1,7 @@ /datum/round_event_control/wizard/imposter //Mirror Mania name = "Imposter Wizard" weight = 1 - typepath = /datum/round_event/wizard/imposter/ + typepath = /datum/round_event/wizard/imposter max_occurrences = 1 earliest_start = 0 diff --git a/code/modules/events/wizard/invincible.dm b/code/modules/events/wizard/invincible.dm index b2cc9a803b..8bc43b158f 100644 --- a/code/modules/events/wizard/invincible.dm +++ b/code/modules/events/wizard/invincible.dm @@ -1,7 +1,7 @@ /datum/round_event_control/wizard/invincible //Boolet Proof name = "Invincibility" weight = 3 - typepath = /datum/round_event/wizard/invincible/ + typepath = /datum/round_event/wizard/invincible max_occurrences = 5 earliest_start = 0 diff --git a/code/modules/events/wizard/lava.dm b/code/modules/events/wizard/lava.dm index 42cae888fc..f33fecf669 100644 --- a/code/modules/events/wizard/lava.dm +++ b/code/modules/events/wizard/lava.dm @@ -1,15 +1,15 @@ /datum/round_event_control/wizard/lava //THE LEGEND NEVER DIES name = "The Floor Is LAVA!" weight = 2 - typepath = /datum/round_event/wizard/lava/ + typepath = /datum/round_event/wizard/lava max_occurrences = 3 earliest_start = 0 -/datum/round_event/wizard/lava/ +/datum/round_event/wizard/lava endWhen = 0 var/started = FALSE /datum/round_event/wizard/lava/start() if(!started) started = TRUE - SSweather.run_weather("the floor is lava") \ No newline at end of file + SSweather.run_weather("the floor is lava") diff --git a/code/modules/events/wizard/magicarp.dm b/code/modules/events/wizard/magicarp.dm index aba0bccfb4..0266304728 100644 --- a/code/modules/events/wizard/magicarp.dm +++ b/code/modules/events/wizard/magicarp.dm @@ -1,11 +1,11 @@ /datum/round_event_control/wizard/magicarp //these fish is loaded name = "Magicarp" weight = 1 - typepath = /datum/round_event/wizard/magicarp/ + typepath = /datum/round_event/wizard/magicarp max_occurrences = 1 earliest_start = 0 -/datum/round_event/wizard/magicarp/ +/datum/round_event/wizard/magicarp announceWhen = 3 startWhen = 50 diff --git a/code/modules/events/wizard/petsplosion.dm b/code/modules/events/wizard/petsplosion.dm index d99793778d..30d6d631ac 100644 --- a/code/modules/events/wizard/petsplosion.dm +++ b/code/modules/events/wizard/petsplosion.dm @@ -1,11 +1,11 @@ /datum/round_event_control/wizard/petsplosion //the horror name = "Petsplosion" weight = 2 - typepath = /datum/round_event/wizard/petsplosion/ + typepath = /datum/round_event/wizard/petsplosion max_occurrences = 1 //Exponential growth is nothing to sneeze at! earliest_start = 0 -/datum/round_event/wizard/petsplosion/ +/datum/round_event/wizard/petsplosion endWhen = 61 //1 minute (+1 tick for endWhen not to interfere with tick) var/countdown = 0 @@ -13,5 +13,5 @@ if(activeFor >= 30 * countdown) // 0 seconds : 2 animals | 30 seconds : 4 animals | 1 minute : 8 animals countdown += 1 for(var/mob/living/simple_animal/F in living_mob_list) //If you cull the heard before the next replication, things will be easier for you - if(!istype(F, /mob/living/simple_animal/hostile)) + if(!ishostile(F)) new F.type(F.loc) \ No newline at end of file diff --git a/code/modules/events/wizard/race.dm b/code/modules/events/wizard/race.dm index cb4f4896f1..46f420e380 100644 --- a/code/modules/events/wizard/race.dm +++ b/code/modules/events/wizard/race.dm @@ -1,7 +1,7 @@ /datum/round_event_control/wizard/race //Lizard Wizard? Lizard Wizard. name = "Race Swap" weight = 2 - typepath = /datum/round_event/wizard/race/ + typepath = /datum/round_event/wizard/race max_occurrences = 5 earliest_start = 0 diff --git a/code/modules/events/wizard/rpgloot.dm b/code/modules/events/wizard/rpgloot.dm index 076c8821bf..5481f0745d 100644 --- a/code/modules/events/wizard/rpgloot.dm +++ b/code/modules/events/wizard/rpgloot.dm @@ -1,7 +1,7 @@ /datum/round_event_control/wizard/rpgloot //its time to minmax your shit name = "RPG Loot" weight = 3 - typepath = /datum/round_event/wizard/rpgloot/ + typepath = /datum/round_event/wizard/rpgloot max_occurrences = 1 earliest_start = 0 @@ -30,7 +30,7 @@ if(istype(I,/obj/item/weapon/storage)) var/obj/item/weapon/storage/S = I - if(prob(upgrade_scroll_chance) && S.contents.len < S.storage_slots) + if(prob(upgrade_scroll_chance) && S.contents.len < S.storage_slots && !S.invisibility) var/obj/item/upgradescroll/scroll = new S.handle_item_insertion(scroll,1) upgrade_scroll_chance = max(0,upgrade_scroll_chance-100) @@ -41,7 +41,7 @@ desc = "Somehow, this piece of paper can be applied to items to make them \"better\". Apparently there's a risk of losing the item if it's already \"too good\". This all feels so arbitrary..." icon = 'icons/obj/wizard.dmi' icon_state = "scroll" - w_class = 1 + w_class = WEIGHT_CLASS_TINY /obj/item/upgradescroll/afterattack(obj/item/target, mob/user , proximity) if(!proximity || !istype(target)) @@ -49,8 +49,9 @@ var/quality = target.force - initial(target.force) if(quality > 9 && prob((quality - 9)*10)) user << "[target] catches fire!" - if(target.burn_state == -1) - target.burn_state = 0 + if(target.resistance_flags & (LAVA_PROOF|FIRE_PROOF)) + target.resistance_flags &= ~(LAVA_PROOF|FIRE_PROOF) + target.resistance_flags |= FLAMMABLE target.fire_act() qdel(src) return diff --git a/code/modules/events/wizard/shuffle.dm b/code/modules/events/wizard/shuffle.dm index 74076112f1..145c099066 100644 --- a/code/modules/events/wizard/shuffle.dm +++ b/code/modules/events/wizard/shuffle.dm @@ -4,7 +4,7 @@ /datum/round_event_control/wizard/shuffleloc //Somewhere an AI is crying name = "Change Places!" weight = 2 - typepath = /datum/round_event/wizard/shuffleloc/ + typepath = /datum/round_event/wizard/shuffleloc max_occurrences = 5 earliest_start = 0 @@ -40,7 +40,7 @@ /datum/round_event_control/wizard/shufflenames //Face/off joke name = "Change Faces!" weight = 4 - typepath = /datum/round_event/wizard/shufflenames/ + typepath = /datum/round_event/wizard/shufflenames max_occurrences = 5 earliest_start = 0 @@ -74,7 +74,7 @@ /datum/round_event_control/wizard/shuffleminds //Basically Mass Ranged Mindswap name = "Change Minds!" weight = 1 - typepath = /datum/round_event/wizard/shuffleminds/ + typepath = /datum/round_event/wizard/shuffleminds max_occurrences = 3 earliest_start = 0 @@ -82,7 +82,7 @@ var/list/mobs = list() for(var/mob/living/carbon/human/H in living_mob_list) - if(!H.stat || !H.mind || (H.mind in ticker.mode.wizards) || (H.mind in ticker.mode.apprentices)) + if(H.stat || !H.mind || (H.mind in ticker.mode.wizards) || (H.mind in ticker.mode.apprentices)) continue //the wizard(s) are spared on this one mobs += H @@ -91,7 +91,7 @@ shuffle(mobs) - var/obj/effect/proc_holder/spell/targeted/mind_transfer/swapper = new /obj/effect/proc_holder/spell/targeted/mind_transfer/ + var/obj/effect/proc_holder/spell/targeted/mind_transfer/swapper = new /obj/effect/proc_holder/spell/targeted/mind_transfer while(mobs.len > 1) var/mob/living/carbon/human/H = pick(mobs) mobs -= H diff --git a/code/modules/events/wizard/summons.dm b/code/modules/events/wizard/summons.dm index 7b3e27e16c..dfdcd889ca 100644 --- a/code/modules/events/wizard/summons.dm +++ b/code/modules/events/wizard/summons.dm @@ -1,7 +1,7 @@ /datum/round_event_control/wizard/summonguns //The Classic name = "Summon Guns" weight = 1 - typepath = /datum/round_event/wizard/summonguns/ + typepath = /datum/round_event/wizard/summonguns max_occurrences = 1 earliest_start = 0 @@ -16,7 +16,7 @@ /datum/round_event_control/wizard/summonmagic //The Somewhat Less Classic name = "Summon Magic" weight = 1 - typepath = /datum/round_event/wizard/summonmagic/ + typepath = /datum/round_event/wizard/summonmagic max_occurrences = 1 earliest_start = 0 diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index ad237db5be..96fe7d6c23 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -11,7 +11,7 @@ Gunshots/explosions/opening doors/less rare audio (done) */ -/mob/living/carbon/ +/mob/living/carbon var/image/halimage var/image/halbody var/obj/halitem @@ -206,6 +206,18 @@ Gunshots/explosions/opening doors/less rare audio (done) target << "[xeno_name] scrambles into the ventilation ducts!" qdel(src) +/obj/effect/hallucination/simple/clown + image_icon = 'icons/mob/animal.dmi' + image_state = "clown" + +/obj/effect/hallucination/simple/clown/New(loc,var/mob/living/carbon/T,duration) + ..(loc, T) + name = pick(clown_names) + QDEL_IN(src,duration) + +/obj/effect/hallucination/simple/clown/scary + image_state = "scary_clown" + /obj/effect/hallucination/singularity_scare //Singularity moving towards you. //todo Hide where it moved with fake space images @@ -303,11 +315,12 @@ Gunshots/explosions/opening doors/less rare audio (done) if(target.client) delusions |= A target.client.images |= A - sleep(duration) + QDEL_IN(src, duration) + +/obj/effect/hallucination/delusion/Destroy() for(var/image/I in delusions) if(target.client) target.client.images.Remove(I) - qdel(src) /obj/effect/hallucination/fakeattacker/New(loc,var/mob/living/carbon/T) target = T @@ -324,14 +337,10 @@ Gunshots/explosions/opening doors/less rare audio (done) return var/obj/effect/fake_attacker/F = new/obj/effect/fake_attacker(get_turf(target),target) - if(clone.l_hand) - if(!(locate(clone.l_hand) in non_fakeattack_weapons)) - clone_weapon = clone.l_hand.name - F.weap = clone.l_hand - else if (clone.r_hand) - if(!(locate(clone.r_hand) in non_fakeattack_weapons)) - clone_weapon = clone.r_hand.name - F.weap = clone.r_hand + for(var/obj/item/I in clone.held_items) + if(!(locate(I) in non_fakeattack_weapons)) + clone_weapon = I.name + F.weap = I F.name = clone.name F.my_target = target @@ -367,7 +376,7 @@ Gunshots/explosions/opening doors/less rare audio (done) var/collapse var/image/down - var/health = 100 + obj_integrity = 100 /obj/effect/fake_attacker/attackby(obj/item/weapon/P, mob/living/user, params) step_away(src,my_target,2) @@ -377,7 +386,7 @@ Gunshots/explosions/opening doors/less rare audio (done) my_target.visible_message("[my_target] flails around wildly.", \ "[my_target] has attacked [src]!") - src.health -= P.force + obj_integrity -= P.force /obj/effect/fake_attacker/Crossed(mob/M, somenumber) if(M == my_target) @@ -414,7 +423,7 @@ Gunshots/explosions/opening doors/less rare audio (done) /obj/effect/fake_attacker/proc/attack_loop() while(1) sleep(rand(5,10)) - if(src.health < 0) + if(obj_integrity < 0) collapse() continue if(get_dist(src,my_target) > 1) @@ -423,7 +432,7 @@ Gunshots/explosions/opening doors/less rare audio (done) updateimage() else if(prob(15)) - src.do_attack_animation(my_target) + do_attack_animation(my_target, ATTACK_EFFECT_PUNCH) if(weapon_name) my_target << sound(pick('sound/weapons/genhit1.ogg', 'sound/weapons/genhit2.ogg', 'sound/weapons/genhit3.ogg')) my_target.show_message("[src.name] has attacked [my_target] with [weapon_name]!", 1) @@ -455,7 +464,7 @@ Gunshots/explosions/opening doors/less rare audio (done) target << I QDEL_IN(O, 300) -var/list/non_fakeattack_weapons = list(/obj/item/weapon/gun/projectile, /obj/item/ammo_box/a357,\ +var/list/non_fakeattack_weapons = list(/obj/item/weapon/gun/ballistic, /obj/item/ammo_box/a357,\ /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow, /obj/item/weapon/melee/energy/sword/saber,\ /obj/item/weapon/storage/box/syndicate, /obj/item/weapon/storage/box/emps,\ /obj/item/weapon/cartridge/syndicate, /obj/item/clothing/under/chameleon,\ @@ -619,10 +628,14 @@ var/list/non_fakeattack_weapons = list(/obj/item/weapon/gun/projectile, /obj/ite //src << "Traitor Items" if(!halitem) halitem = new - var/list/slots_free = list(ui_lhand,ui_rhand) - if(l_hand) slots_free -= ui_lhand - if(r_hand) slots_free -= ui_rhand - if(istype(src,/mob/living/carbon/human)) + var/obj/item/l_hand = get_item_for_held_index(1) + var/obj/item/r_hand = get_item_for_held_index(2) + var/l = ui_hand_position(get_held_index_of_item(l_hand)) + var/r = ui_hand_position(get_held_index_of_item(r_hand)) + var/list/slots_free = list(l,r) + if(l_hand) slots_free -= l + if(r_hand) slots_free -= r + if(ishuman(src)) var/mob/living/carbon/human/H = src if(!H.belt) slots_free += ui_belt if(!H.l_store) slots_free += ui_storage1 @@ -630,6 +643,7 @@ var/list/non_fakeattack_weapons = list(/obj/item/weapon/gun/projectile, /obj/ite if(slots_free.len) halitem.screen_loc = pick(slots_free) halitem.layer = ABOVE_HUD_LAYER + halitem.plane = ABOVE_HUD_PLANE switch(rand(1,6)) if(1) //revolver halitem.icon = 'icons/obj/guns/projectile.dmi' diff --git a/code/modules/flufftext/TextFilters.dm b/code/modules/flufftext/TextFilters.dm index ead3f0b0f5..f10e92940b 100644 --- a/code/modules/flufftext/TextFilters.dm +++ b/code/modules/flufftext/TextFilters.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 + //is this shit even used at all /proc/NewStutter(phrase,stunned) diff --git a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm index c600fe3e20..847b5f6062 100644 --- a/code/modules/food_and_drinks/drinks/drinks.dm +++ b/code/modules/food_and_drinks/drinks/drinks.dm @@ -10,7 +10,7 @@ var/gulp_size = 5 //This is now officially broken ... need to think of a nice way to fix it. possible_transfer_amounts = list(5,10,15,20,25,30,50) volume = 50 - burn_state = FIRE_PROOF + resistance_flags = 0 /obj/item/weapon/reagent_containers/food/drinks/New() ..() @@ -74,10 +74,10 @@ var/trans = src.reagents.trans_to(target, amount_per_transfer_from_this) user << "You transfer [trans] units of the solution to [target]." - if(isrobot(user)) //Cyborg modules that include drinks automatically refill themselves, but drain the borg's cell + if(iscyborg(user)) //Cyborg modules that include drinks automatically refill themselves, but drain the borg's cell var/mob/living/silicon/robot/bro = user bro.cell.use(30) - addtimer(reagents, "add_reagent", 600, FALSE, refill, trans) + addtimer(reagents, "add_reagent", 600, TIMER_NORMAL, refill, trans) /obj/item/weapon/reagent_containers/food/drinks/attackby(obj/item/I, mob/user, params) if(I.is_hot()) @@ -96,7 +96,7 @@ name = "pewter cup" desc = "Everyone gets a trophy." icon_state = "pewter_cup" - w_class = 1 + w_class = WEIGHT_CLASS_TINY force = 1 throwforce = 1 amount_per_transfer_from_this = 5 @@ -105,12 +105,13 @@ volume = 5 flags = CONDUCT | OPENCONTAINER spillable = 1 + resistance_flags = FIRE_PROOF /obj/item/weapon/reagent_containers/food/drinks/trophy/gold_cup name = "gold cup" desc = "You're winner!" icon_state = "golden_cup" - w_class = 4 + w_class = WEIGHT_CLASS_BULKY force = 14 throwforce = 10 amount_per_transfer_from_this = 20 @@ -121,7 +122,7 @@ name = "silver cup" desc = "Best loser!" icon_state = "silver_cup" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL force = 10 throwforce = 8 amount_per_transfer_from_this = 15 @@ -133,7 +134,7 @@ name = "bronze cup" desc = "At least you ranked!" icon_state = "bronze_cup" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL force = 5 throwforce = 4 amount_per_transfer_from_this = 10 @@ -215,6 +216,44 @@ else icon_state = "water_cup_e" +/obj/item/weapon/reagent_containers/food/drinks/sillycup/smallcarton + name = "small carton" + desc = "A small carton, intended for holding drinks." + icon_state = "juicebox" + volume = 15 //I figure if you have to craft these it should at least be slightly better than something you can get for free from a watercooler + +/obj/item/weapon/reagent_containers/food/drinks/sillycup/smallcarton/on_reagent_change() + if (reagents.reagent_list.len) + switch(reagents.get_master_reagent_id()) + if("orangejuice") + icon_state = "orangebox" + name = "orange juice box" + desc = "A great source of vitamins. Stay healthy!" + if("milk") + icon_state = "milkbox" + name = "carton of milk" + desc = "An excellent source of calcium for growing space explorers." + if("applejuice") + icon_state = "juicebox" + name = "apple juice box" + desc = "Sweet apple juice. Don't be late for school!" + if("grapejuice") + icon_state = "grapebox" + name = "grape juice box" + desc = "Tasty grape juice in a fun little container. Non-alcoholic!" + if("chocolate_milk") + icon_state = "chocolatebox" + name = "carton of chocolate milk" + desc = "Milk for cool kids!" + if("eggnog") + icon_state = "nog2" + name = "carton of eggnog" + desc = "For enjoying the most wonderful time of the year." + else + icon_state = "juicebox" + name = "small carton" + desc = "A small carton, intended for holding drinks." + //////////////////////////drinkingglass and shaker// @@ -256,6 +295,17 @@ volume = 30 spillable = 1 +///Lavaland bowls and bottles/// + +/obj/item/weapon/reagent_containers/food/drinks/mushroom_bowl + name = "mushroom bowl" + desc = "A bowl made out of mushrooms. Not food, though it might have contained some at some point." + icon = 'icons/obj/lavaland/ash_flora.dmi' + icon_state = "mushroom_bowl" + w_class = WEIGHT_CLASS_SMALL + resistance_flags = 0 + + //////////////////////////soda_cans// //These are in their own group to be used as IED's in /obj/item/weapon/grenade/ghettobomb.dm @@ -263,8 +313,8 @@ name = "soda can" /obj/item/weapon/reagent_containers/food/drinks/soda_cans/attack(mob/M, mob/user) - if(M == user && !src.reagents.total_volume && user.a_intent == "harm" && user.zone_selected == "head") - user.visible_message("[user] crushes the can of [src] on \his forehead!", "You crush the can of [src] on your forehead.") + if(M == user && !src.reagents.total_volume && user.a_intent == INTENT_HARM && user.zone_selected == "head") + user.visible_message("[user] crushes the can of [src] on [user.p_their()] forehead!", "You crush the can of [src] on your forehead.") playsound(user.loc,'sound/weapons/pierce.ogg', rand(10,50), 1) var/obj/item/trash/can/crushed_can = new /obj/item/trash/can(user.loc) crushed_can.icon_state = icon_state @@ -328,3 +378,5 @@ desc = "A delicious mixture of 42 different flavors." icon_state = "dr_gibb" list_reagents = list("dr_gibb" = 30) + + diff --git a/code/modules/food_and_drinks/drinks/drinks/bottle.dm b/code/modules/food_and_drinks/drinks/drinks/bottle.dm index b60417bac2..dbbf7cdff5 100644 --- a/code/modules/food_and_drinks/drinks/drinks/bottle.dm +++ b/code/modules/food_and_drinks/drinks/drinks/bottle.dm @@ -53,7 +53,7 @@ if(!target) return - if(user.a_intent != "harm" || !isGlass) + if(user.a_intent != INTENT_HARM || !isGlass) return ..() @@ -109,8 +109,8 @@ target.visible_message("[user] has hit [target][head_attack_message] with a bottle of [src.name]!", \ "[user] has hit [target][head_attack_message] with a bottle of [src.name]!") else - user.visible_message("[target] hits \himself with a bottle of [src.name][head_attack_message]!", \ - "[target] hits \himself with a bottle of [src.name][head_attack_message]!") + user.visible_message("[target] hits [target.p_them()]self with a bottle of [src.name][head_attack_message]!", \ + "[target] hits [target.p_them()]self with a bottle of [src.name][head_attack_message]!") //Attack logs add_logs(user, target, "attacked", src) @@ -125,7 +125,7 @@ /obj/item/weapon/reagent_containers/food/drinks/bottle/proc/SplashReagents(var/mob/M) if(src.reagents.total_volume) - M.visible_message("The contents of \the [src] splashes all over [M]!") + M.visible_message("The contents of [src] splashes all over [M]!") reagents.reaction(M, TOUCH) reagents.clear_reagents() return @@ -140,7 +140,7 @@ throwforce = 5 throw_speed = 3 throw_range = 5 - w_class = 1 + w_class = WEIGHT_CLASS_TINY item_state = "beer" hitsound = 'sound/weapons/bladeslice.ogg' attack_verb = list("stabbed", "slashed", "attacked") @@ -301,6 +301,12 @@ volume = 50 list_reagents = list("hcider" = 50) +/obj/item/weapon/reagent_containers/food/drinks/bottle/grappa + name = "Phillipes well-aged Grappa" + desc = "Bottle of Grappa." + icon_state = "grappabottle" + list_reagents = list("grappa" = 100) + //////////////////////////JUICES AND STUFF /////////////////////// /obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice @@ -375,10 +381,12 @@ active = 1 var/turf/bombturf = get_turf(src) var/area/bombarea = get_area(bombturf) - message_admins("[key_name(user)]? has primed a [name] for detonation at [bombarea] (JMP).") - log_game("[key_name(user)] has primed a [name] for detonation at [bombarea] ([bombturf.x],[bombturf.y],[bombturf.z]).") + var/message = "[ADMIN_LOOKUP(user)] has primed a [name] for detonation at [ADMIN_COORDJMP(bombturf)]." + bombers += message + message_admins(message) + log_game("[key_name(user)] has primed a [name] for detonation at [bombarea] [COORD(bombturf)].") - user << "You light \the [src] on fire." + user << "You light [src] on fire." add_overlay(fire_overlay) if(!isGlass) spawn(50) @@ -400,6 +408,6 @@ if(!isGlass) user << "The flame's spread too far on it!" return - user << "You snuff out the flame on \the [src]." + user << "You snuff out the flame on [src]." overlays -= fire_overlay active = 0 diff --git a/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm b/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm index baf2dbf350..b4d56b3b6f 100644 --- a/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm +++ b/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm @@ -7,21 +7,11 @@ amount_per_transfer_from_this = 10 volume = 50 materials = list(MAT_GLASS=500) - burn_state = FLAMMABLE - burntime = 5 + obj_integrity = 20 + max_integrity = 20 spillable = 1 - -/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/fire_act() - if(!reagents.total_volume) - return - ..() - -/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/burn() - reagents.total_volume = 0 //Burns away all the alcohol :( - reagents.reagent_list.Cut() - on_reagent_change() - extinguish() - return + resistance_flags = ACID_PROOF + unique_rename = 1 /obj/item/weapon/reagent_containers/food/drinks/drinkingglass/on_reagent_change() cut_overlays() @@ -342,7 +332,7 @@ if("andalusia") icon_state = "andalusia" name = "Andalusia" - desc = "A nice, strange named drink." + desc = "A nice, strangely named drink." if("sbiten") icon_state = "sbitenglass" name = "Sbiten" @@ -350,11 +340,11 @@ if("red_mead") icon_state = "red_meadglass" name = "Red Mead" - desc = "A True Vikings Beverage, though its color is strange." + desc = "A True Viking's Beverage, though its color is strange." if("mead") icon_state = "meadglass" name = "Mead" - desc = "A Vikings Beverage, though a cheap one." + desc = "A Viking's Beverage, though a cheap one." if("iced_beer") icon_state = "iced_beerglass" name = "Iced Beer" @@ -462,7 +452,7 @@ if("chocolatepudding") icon_state = "chocolatepudding" name = "Chocolate Pudding" - desc = "" + desc = "Tasty." if("vanillapudding") icon_state = "vanillapudding" name = "Vanilla Pudding" @@ -515,6 +505,18 @@ icon_state = "whiskeyglass" name = "Hard Cider" desc = "Tastes like autumn." + if("triple_citrus") + icon_state = "triplecitrus" //needs own sprite mine are trash + name = "glass of triple citrus" + desc = "A mixture of citrus juices. Tangy, yet smooth." + if("grappa") + icon_state = "grappa" + name = "glass of grappa" + desc = "A fine drink originally made to prevent waste by using the leftovers from winemaking." + if("eggnog") + icon_state = "glass_yellow" + name = "Eggnog" + desc = "For enjoying the most wonderful time of the year." else icon_state ="glass_brown" var/image/I = image(icon, "glassoverlay") @@ -568,7 +570,7 @@ if("hcider") icon_state = "shotglassbrown" name = "shot of hard cider" - desc = "Not meant to be drinken from a shot glass." + desc = "Not meant to be drunk from a shot glass." if("rum") icon_state = "shotglassbrown" name = "shot of rum" @@ -661,7 +663,7 @@ ..() /obj/item/weapon/reagent_containers/food/drinks/drinkingglass/attack(obj/target, mob/user) - if(user.a_intent == "harm" && ismob(target) && target.reagents && reagents.total_volume) + if(user.a_intent == INTENT_HARM && ismob(target) && target.reagents && reagents.total_volume) target.visible_message("[user] splashes the contents of [src] onto [target]!", \ "[user] splashes the contents of [src] onto [target]!") add_logs(user, target, "splashed", src) @@ -674,7 +676,7 @@ if((!proximity) || !check_allowed_items(target,target_self=1)) return - else if(reagents.total_volume && user.a_intent == "harm") + else if(reagents.total_volume && user.a_intent == INTENT_HARM) user.visible_message("[user] splashes the contents of [src] onto [target]!", \ "You splash the contents of [src] onto [target].") reagents.reaction(target, TOUCH) diff --git a/code/modules/food_and_drinks/food.dm b/code/modules/food_and_drinks/food.dm index 53afb299cf..4a05510ff0 100644 --- a/code/modules/food_and_drinks/food.dm +++ b/code/modules/food_and_drinks/food.dm @@ -4,7 +4,7 @@ /obj/item/weapon/reagent_containers/food possible_transfer_amounts = list() volume = 50 //Sets the default container amount for all food items. - burn_state = FLAMMABLE + resistance_flags = FLAMMABLE /obj/item/weapon/reagent_containers/food/New() ..() diff --git a/code/modules/food_and_drinks/food/condiment.dm b/code/modules/food_and_drinks/food/condiment.dm index 9f5ed9a028..9d597bb266 100644 --- a/code/modules/food_and_drinks/food/condiment.dm +++ b/code/modules/food_and_drinks/food/condiment.dm @@ -125,7 +125,7 @@ possible_states = list() /obj/item/weapon/reagent_containers/food/condiment/saltshaker/suicide_act(mob/user) - user.visible_message("[user] begins to swap forms with the salt shaker! It looks like \he's trying to commit suicide.") + user.visible_message("[user] begins to swap forms with the salt shaker! It looks like [user.p_theyre()] trying to commit suicide!") var/newname = "[name]" name = "[user.name]" user.name = newname @@ -134,14 +134,17 @@ return (TOXLOSS) /obj/item/weapon/reagent_containers/food/condiment/saltshaker/afterattack(obj/target, mob/living/user, proximity) - if(!proximity || !isturf(target)) + if(!proximity) return - if(!reagents.has_reagent("sodiumchloride", 2)) - user << "You don't have enough salt to make a pile!" + if(isturf(target)) + if(!reagents.has_reagent("sodiumchloride", 2)) + user << "You don't have enough salt to make a pile!" + return + user.visible_message("[user] shakes some salt onto [target].", "You shake some salt onto [target].") + reagents.remove_reagent("sodiumchloride", 2) + new/obj/effect/decal/cleanable/salt(target) return - user.visible_message("[user] shakes some salt onto [target].", "You shake some salt onto [target].") - reagents.remove_reagent("sodiumchloride", 2) - new/obj/effect/decal/cleanable/salt(target) + ..() /obj/item/weapon/reagent_containers/food/condiment/peppermill name = "pepper mill" diff --git a/code/modules/food_and_drinks/food/customizables.dm b/code/modules/food_and_drinks/food/customizables.dm index d97d9da0e2..62b6e86d9e 100644 --- a/code/modules/food_and_drinks/food/customizables.dm +++ b/code/modules/food_and_drinks/food/customizables.dm @@ -13,8 +13,9 @@ /obj/item/weapon/reagent_containers/food/snacks/customizable bitesize = 4 - w_class = 3 + w_class = WEIGHT_CLASS_SMALL volume = 80 + unique_rename = 1 var/ingMax = 12 var/list/ingredients = list() @@ -36,18 +37,19 @@ user << "It contains [ingredients.len?"[ingredients_listed]":"no ingredient, "]making a [size]-sized [initial(name)]." /obj/item/weapon/reagent_containers/food/snacks/customizable/attackby(obj/item/I, mob/user, params) - if(istype(I,/obj/item/weapon/reagent_containers/food/snacks)) + if(!istype(I, /obj/item/weapon/reagent_containers/food/snacks/customizable) && istype(I,/obj/item/weapon/reagent_containers/food/snacks)) var/obj/item/weapon/reagent_containers/food/snacks/S = I - if(I.w_class > 2) + if(I.w_class > WEIGHT_CLASS_SMALL) user << "The ingredient is too big for [src]!" else if((ingredients.len >= ingMax) || (reagents.total_volume >= volume)) user << "You can't add more ingredients to [src]!" + else if(istype(I, /obj/item/weapon/reagent_containers/food/snacks/pizzaslice/custom) || istype(I, /obj/item/weapon/reagent_containers/food/snacks/cakeslice/custom)) + user << "Adding [I.name] to [src] would make a mess." else if(!user.unEquip(I)) return if(S.trash) - new S.trash(get_turf(user)) - S.trash = null //we remove the plate before adding the ingredient + S.generate_trash(get_turf(user)) ingredients += S S.loc = src mix_filling_color(S) @@ -55,19 +57,6 @@ update_overlays(S) user << "You add the [I.name] to the [name]." update_name(S) - else if(istype(I, /obj/item/weapon/pen)) - var/txt = stripped_input(user, "What would you like the food to be called?", "Food Naming", "", 30) - if(txt) - ingMax = ingredients.len - user << "You add a last touch to the dish by renaming it." - customname = txt - if(istype(src, /obj/item/weapon/reagent_containers/food/snacks/customizable/sandwich)) - var/obj/item/weapon/reagent_containers/food/snacks/customizable/sandwich/S = src - if(S.finished) - name = "[customname] sandwich" - return - name = "[customname] [initial(name)]" - else . = ..() @@ -293,20 +282,18 @@ // Bowl //////////////////////////////////////////////// /obj/item/weapon/reagent_containers/glass/bowl - name = "bowl" - icon_state = "snack_bowl" name = "bowl" desc = "A simple bowl, used for soups and salads." icon = 'icons/obj/food/soupsalad.dmi' icon_state = "bowl" flags = OPENCONTAINER materials = list(MAT_GLASS = 500) - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL /obj/item/weapon/reagent_containers/glass/bowl/attackby(obj/item/I,mob/user, params) if(istype(I,/obj/item/weapon/reagent_containers/food/snacks)) var/obj/item/weapon/reagent_containers/food/snacks/S = I - if(I.w_class > 2) + if(I.w_class > WEIGHT_CLASS_SMALL) user << "The ingredient is too big for [src]!" else if(contents.len >= 20) user << "You can't add more ingredients to [src]!" diff --git a/code/modules/food_and_drinks/food/snacks.dm b/code/modules/food_and_drinks/food/snacks.dm index 714e6d4eaa..937a2d5f4d 100644 --- a/code/modules/food_and_drinks/food/snacks.dm +++ b/code/modules/food_and_drinks/food/snacks.dm @@ -3,6 +3,7 @@ desc = "Yummy." icon = 'icons/obj/food/food.dmi' icon_state = null + unique_rename = 1 var/bitesize = 2 var/bitecount = 0 var/trash = null @@ -25,19 +26,9 @@ return if(!reagents.total_volume) usr.unEquip(src) //so icons update :[ - - if(trash) - if(ispath(trash, /obj/item/weapon/grown) && istype(src, /obj/item/weapon/reagent_containers/food/snacks/grown)) - var/obj/item/weapon/reagent_containers/food/snacks/grown/G = src - var/obj/item/TrashItem = new trash(usr, G.seed) - usr.put_in_hands(TrashItem) - else if(ispath(trash,/obj/item)) - var/obj/item/TrashItem = new trash(usr) - usr.put_in_hands(TrashItem) - else if(istype(trash,/obj/item)) - usr.put_in_hands(trash) + var/obj/item/trash_item = generate_trash(usr) + usr.put_in_hands(trash_item) qdel(src) - return /obj/item/weapon/reagent_containers/food/snacks/attack_self(mob/user) @@ -45,7 +36,7 @@ /obj/item/weapon/reagent_containers/food/snacks/attack(mob/M, mob/user, def_zone) - if(user.a_intent == "harm") + if(user.a_intent == INTENT_HARM) return ..() if(!eatverb) eatverb = pick("bite","chew","nibble","gnaw","gobble","chomp") @@ -136,10 +127,10 @@ if(istype(W,/obj/item/weapon/reagent_containers/food/snacks)) var/obj/item/weapon/reagent_containers/food/snacks/S = W if(custom_food_type && ispath(custom_food_type)) - if(S.w_class > 2) + if(S.w_class > WEIGHT_CLASS_SMALL) user << "[S] is too big for [src]!" return 0 - if(!S.customfoodfilling) + if(!S.customfoodfilling || istype(W, /obj/item/weapon/reagent_containers/food/snacks/customizable) || istype(W, /obj/item/weapon/reagent_containers/food/snacks/pizzaslice/custom) || istype(W, /obj/item/weapon/reagent_containers/food/snacks/cakeslice/custom)) user << "[src] can't be filled with [S]!" return 0 if(contents.len >= 20) @@ -152,19 +143,22 @@ if(sharp) if(slice(sharp, W, user)) return 1 + else + ..() //Called when you finish tablecrafting a snack. -/obj/item/weapon/reagent_containers/food/snacks/CheckParts(list/parts_list, datum/crafting_recipe/R) +/obj/item/weapon/reagent_containers/food/snacks/CheckParts(list/parts_list, datum/crafting_recipe/food/R) ..() reagents.reagent_list.Cut() for(var/obj/item/weapon/reagent_containers/RC in contents) RC.reagents.trans_to(reagents, RC.reagents.maximum_volume) - contents_loop: - for(var/A in contents) - for(var/B in initial(R.parts)) - if(istype(A, B)) - continue contents_loop - qdel(A) + if(istype(R)) + contents_loop: + for(var/A in contents) + for(var/B in R.real_parts) + if(istype(A, B)) + continue contents_loop + qdel(A) feedback_add_details("food_made","[type]") if(bonus_reagents.len) for(var/r_id in bonus_reagents) @@ -208,6 +202,19 @@ reagents.trans_to(slice,reagents_per_slice) return +/obj/item/weapon/reagent_containers/food/snacks/proc/generate_trash(atom/location) + if(trash) + if(ispath(trash, /obj/item)) + . = new trash(location) + trash = null + return + else if(istype(trash, /obj/item)) + var/obj/item/trash_item = trash + trash_item.forceMove(location) + . = trash + trash = null + return + /obj/item/weapon/reagent_containers/food/snacks/proc/update_overlays(obj/item/weapon/reagent_containers/food/snacks/S) cut_overlays() var/image/I = new(src.icon, "[initial(icon_state)]_filling") @@ -228,6 +235,20 @@ var/amount = S.bonus_reagents[r_id] * cooking_efficiency S.reagents.add_reagent(r_id, amount) +/obj/item/weapon/reagent_containers/food/snacks/microwave_act(obj/machinery/microwave/M) + if(cooked_type) + var/obj/item/weapon/reagent_containers/food/snacks/S = new cooked_type(get_turf(src)) + if(M) + initialize_cooked_food(S, M.efficiency) + else + initialize_cooked_food(S, 1) + feedback_add_details("food_made","[type]") + else + new /obj/item/weapon/reagent_containers/food/snacks/badrecipe(src) + if(M && M.dirty < 100) + M.dirty++ + qdel(src) + /obj/item/weapon/reagent_containers/food/snacks/Destroy() if(contents) for(var/atom/movable/something in contents) @@ -281,12 +302,12 @@ /obj/item/weapon/reagent_containers/food/snacks/store - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL var/stored_item = 0 /obj/item/weapon/reagent_containers/food/snacks/store/attackby(obj/item/weapon/W, mob/user, params) ..() - if(W.w_class <= 2 & !istype(W, /obj/item/weapon/reagent_containers/food/snacks)) //can't slip snacks inside, they're used for custom foods. + if(W.w_class <= WEIGHT_CLASS_SMALL & !istype(W, /obj/item/weapon/reagent_containers/food/snacks)) //can't slip snacks inside, they're used for custom foods. if(W.is_sharp()) return 0 if(stored_item) diff --git a/code/modules/food_and_drinks/food/snacks/dough.dm b/code/modules/food_and_drinks/food/snacks/dough.dm index 866a3d6fa1..7e0939a08a 100644 --- a/code/modules/food_and_drinks/food/snacks/dough.dm +++ b/code/modules/food_and_drinks/food/snacks/dough.dm @@ -9,7 +9,7 @@ icon_state = "dough" cooked_type = /obj/item/weapon/reagent_containers/food/snacks/store/bread/plain list_reagents = list("nutriment" = 6) - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL // Dough + rolling pin = flat dough @@ -35,7 +35,7 @@ slices_num = 3 cooked_type = /obj/item/weapon/reagent_containers/food/snacks/pizzabread list_reagents = list("nutriment" = 6) - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL /obj/item/weapon/reagent_containers/food/snacks/pizzabread name = "pizza bread" @@ -44,7 +44,7 @@ icon_state = "pizzabread" custom_food_type = /obj/item/weapon/reagent_containers/food/snacks/customizable/pizza list_reagents = list("nutriment" = 7) - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL /obj/item/weapon/reagent_containers/food/snacks/doughslice @@ -72,7 +72,7 @@ icon_state = "cakebatter" cooked_type = /obj/item/weapon/reagent_containers/food/snacks/store/cake/plain list_reagents = list("nutriment" = 9) - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL // Cake batter + rolling pin = pie dough /obj/item/weapon/reagent_containers/food/snacks/cakebatter/attackby(obj/item/I, mob/user, params) @@ -95,7 +95,7 @@ slices_num = 3 cooked_type = /obj/item/weapon/reagent_containers/food/snacks/pie/plain list_reagents = list("nutriment" = 9) - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL /obj/item/weapon/reagent_containers/food/snacks/rawpastrybase name = "raw pastry base" diff --git a/code/modules/food_and_drinks/food/snacks/meat.dm b/code/modules/food_and_drinks/food/snacks/meat.dm index b225b736d7..6b9f93f573 100644 --- a/code/modules/food_and_drinks/food/snacks/meat.dm +++ b/code/modules/food_and_drinks/food/snacks/meat.dm @@ -177,9 +177,8 @@ icon_state = "goliathmeat" /obj/item/weapon/reagent_containers/food/snacks/meat/slab/goliath/burn() - visible_message("\The [src] finishes cooking!") - new/obj/item/weapon/reagent_containers/food/snacks/meat/steak/goliath/(src.loc) - SSobj.burning -= src + visible_message("[src] finishes cooking!") + new /obj/item/weapon/reagent_containers/food/snacks/meat/steak/goliath/(loc) qdel(src) /obj/item/weapon/reagent_containers/food/snacks/meat/slab/meatwheat @@ -238,7 +237,7 @@ /obj/item/weapon/reagent_containers/food/snacks/meat/steak/goliath name = "goliath steak" desc = "A delicious, lava cooked steak." - burn_state = LAVA_PROOF + resistance_flags = LAVA_PROOF | FIRE_PROOF icon_state = "goliathsteak" trash = null @@ -289,7 +288,6 @@ name = "raw spider cutlet" cooked_type = /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet/spider - //Cooked cutlets /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet @@ -315,5 +313,4 @@ name = "xeno cutlet" /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet/spider - name = "spider cutlet" - + name = "spider cutlet" \ No newline at end of file diff --git a/code/modules/food_and_drinks/food/snacks_bread.dm b/code/modules/food_and_drinks/food/snacks_bread.dm index 8ff5e2681a..cc2c98e998 100644 --- a/code/modules/food_and_drinks/food/snacks_bread.dm +++ b/code/modules/food_and_drinks/food/snacks_bread.dm @@ -146,4 +146,4 @@ bonus_reagents = list("nutriment" = 2, "vitamin" = 2) list_reagents = list("nutriment" = 6, "vitamin" = 1) bitesize = 3 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL diff --git a/code/modules/food_and_drinks/food/snacks_burgers.dm b/code/modules/food_and_drinks/food/snacks_burgers.dm index 7aebb685cd..4324dba9fe 100644 --- a/code/modules/food_and_drinks/food/snacks_burgers.dm +++ b/code/modules/food_and_drinks/food/snacks_burgers.dm @@ -160,7 +160,7 @@ icon_state = "bigbiteburger" bonus_reagents = list("vitamin" = 6) list_reagents = list("nutriment" = 10, "vitamin" = 2) - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL /obj/item/weapon/reagent_containers/food/snacks/burger/jelly name = "jelly burger" @@ -181,7 +181,7 @@ icon_state = "superbiteburger" bonus_reagents = list("vitamin" = 10) list_reagents = list("nutriment" = 40, "vitamin" = 5) - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL bitesize = 7 volume = 100 @@ -198,8 +198,14 @@ icon_state = "ratburger" bonus_reagents = list("nutriment" = 1, "vitamin" = 1) +/obj/item/weapon/reagent_containers/food/snacks/burger/baseball + name = "home run baseball burger" + desc = "It's still warm. The steam coming off of it looks like baseball." + icon_state = "baseball" + bonus_reagents = list("nutriment" = 1, "vitamin" = 1) + /obj/item/weapon/reagent_containers/food/snacks/burger/baconburger name = "bacon burger" desc = "The perfect combination of all things American." icon_state = "baconburger" - bonus_reagents = list("nutriment" = 8, "vitamin" = 1) \ No newline at end of file + bonus_reagents = list("nutriment" = 8, "vitamin" = 1) diff --git a/code/modules/food_and_drinks/food/snacks_egg.dm b/code/modules/food_and_drinks/food/snacks_egg.dm index 5f481bb291..df17ef8790 100644 --- a/code/modules/food_and_drinks/food/snacks_egg.dm +++ b/code/modules/food_and_drinks/food/snacks_egg.dm @@ -96,7 +96,7 @@ bonus_reagents = list("nutriment" = 1, "vitamin" = 2) list_reagents = list("nutriment" = 8, "vitamin" = 1) bitesize = 1 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL /obj/item/weapon/reagent_containers/food/snacks/omelette/attackby(obj/item/weapon/W, mob/user, params) if(istype(W,/obj/item/weapon/kitchen/fork)) @@ -122,5 +122,5 @@ icon_state = "benedict" bonus_reagents = list("vitamin" = 4) trash = /obj/item/trash/plate - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL list_reagents = list("nutriment" = 6, "vitamin" = 4) \ No newline at end of file diff --git a/code/modules/food_and_drinks/food/snacks_meat.dm b/code/modules/food_and_drinks/food/snacks_meat.dm index 7564deda44..0321dedc4d 100644 --- a/code/modules/food_and_drinks/food/snacks_meat.dm +++ b/code/modules/food_and_drinks/food/snacks_meat.dm @@ -101,7 +101,7 @@ /obj/item/weapon/reagent_containers/food/snacks/kebab trash = /obj/item/stack/rods icon_state = "kebab" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL list_reagents = list("nutriment" = 8) /obj/item/weapon/reagent_containers/food/snacks/kebab/human diff --git a/code/modules/food_and_drinks/food/snacks_other.dm b/code/modules/food_and_drinks/food/snacks_other.dm index babef42915..bbe7f208f6 100644 --- a/code/modules/food_and_drinks/food/snacks_other.dm +++ b/code/modules/food_and_drinks/food/snacks_other.dm @@ -8,7 +8,7 @@ slice_path = /obj/item/weapon/reagent_containers/food/snacks/cheesewedge slices_num = 5 list_reagents = list("nutriment" = 15, "vitamin" = 5) - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL /obj/item/weapon/reagent_containers/food/snacks/cheesewedge name = "cheese wedge" @@ -72,6 +72,13 @@ list_reagents = list("nutriment" = 4) filling_color = "#FFD700" +/obj/item/weapon/reagent_containers/food/snacks/tatortot + name = "tator tot" + desc = "A large fried potato nugget that may or may not try to valid you" + icon_state = "tatortot" + list_reagents = list("nutriment" = 4) + filling_color = "FFD700" + /obj/item/weapon/reagent_containers/food/snacks/soydope name = "soy dope" desc = "Dope from a soy." @@ -242,7 +249,7 @@ bonus_reagents = list("nutriment" = 2, "vitamin" = 2) list_reagents = list("nutriment" = 6, "vitamin" = 4) filling_color = "#FF5500" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL /obj/item/weapon/reagent_containers/food/snacks/spacefreezy name = "space freezy" @@ -315,4 +322,99 @@ desc = "The former skull of a damned human, filled with goliath meat. It has a decorative lava pool made of ketchup and hotsauce." icon_state = "stuffed_legion" bonus_reagents = list("vitamin" = 3, "capsaicin" = 1, "tricordrazine" = 5) - list_reagents = list("nutriment" = 5, "vitamin" = 5, "capsaicin" = 2, "tricordrazine" = 10,) \ No newline at end of file + list_reagents = list("nutriment" = 5, "vitamin" = 5, "capsaicin" = 2, "tricordrazine" = 10) + + +/obj/item/weapon/reagent_containers/food/snacks/powercrepe + name = "Powercrepe" + desc = "With great power, comes great crepes. It looks like a pancake filled with jelly but packs quite a punch." + icon_state = "powercrepe" + bonus_reagents = list("nutriment" = 5, "vitamin" = 3, "iron" = 10) + list_reagents = list("nutriment" = 10, "vitamin" = 5, "cherryjelly" = 5) + force = 20 + throwforce = 10 + block_chance = 50 + armour_penetration = 75 + attack_verb = list("slapped", "slathered") + w_class = WEIGHT_CLASS_BULKY + +/obj/item/weapon/reagent_containers/food/snacks/lollipop + name = "lollipop" + desc = "A delicious lollipop. Makes for a great Valentine's present." + icon = 'icons/obj/lollipop.dmi' + icon_state = "lollipop_stick" + list_reagents = list("nutriment" = 1, "vitamin" = 1, "iron" = 10, "sugar" = 5, "omnizine" = 2) //Honk + var/image/head + var/headcolor = rgb(0, 0, 0) + +/obj/item/weapon/reagent_containers/food/snacks/lollipop/New() + ..() + head = image(icon = 'icons/obj/lollipop.dmi', icon_state = "lollipop_head") + change_head_color(rgb(rand(0, 255), rand(0, 255), rand(0, 255))) + +/obj/item/weapon/reagent_containers/food/snacks/lollipop/proc/change_head_color(C) + headcolor = C + if(head in overlays) + overlays -= head + head.color = C + add_overlay(head) + +/obj/item/weapon/reagent_containers/food/snacks/lollipop/throw_impact(atom/A) + ..(A) + throw_speed = 1 + throwforce = 0 + +/obj/item/weapon/reagent_containers/food/snacks/lollipop/cyborg + var/spamchecking = TRUE + +/obj/item/weapon/reagent_containers/food/snacks/lollipop/cyborg/New() + ..() + addtimer(src, "spamcheck", 1200) + +/obj/item/weapon/reagent_containers/food/snacks/lollipop/cyborg/equipped(mob/living/user, slot) + . = ..(user, slot) + spamchecking = FALSE + +/obj/item/weapon/reagent_containers/food/snacks/lollipop/cyborg/proc/spamcheck() + if(spamchecking) + qdel(src) + +/obj/item/weapon/reagent_containers/food/snacks/gumball + name = "gumball" + desc = "A colorful, sugary gumball." + icon = 'icons/obj/lollipop.dmi' + icon_state = "gumball" + list_reagents = list("sugar" = 5, "bicaridine" = 2, "kelotane" = 2) //Kek + +/obj/item/weapon/reagent_containers/food/snacks/gumball/New() + ..() + color = rgb(rand(0, 255), rand(0, 255), rand(0, 255)) + +/obj/item/weapon/reagent_containers/food/snacks/gumball/cyborg + var/spamchecking = TRUE + +/obj/item/weapon/reagent_containers/food/snacks/gumball/cyborg/New() + ..() + addtimer(src, "spamcheck", 1200) + +/obj/item/weapon/reagent_containers/food/snacks/gumball/cyborg/equipped(mob/living/user, slot) + . = ..(user, slot) + spamchecking = FALSE + +/obj/item/weapon/reagent_containers/food/snacks/gumball/cyborg/proc/spamcheck() + if(spamchecking) + qdel(src) + +/obj/item/weapon/reagent_containers/food/snacks/taco + name = "taco" + desc = "A traditional taco with meat, cheese, and lettuce." + icon_state = "taco" + bonus_reagents = list("nutriment" = 3, "vitamin" = 2) + list_reagents = list("nutriment" = 4, "vitamin" = 2) + filling_color = "F0D830" + +/obj/item/weapon/reagent_containers/food/snacks/taco/plain + desc = "A traditional taco with meat and cheese, minus the rabbit food." + icon_state = "taco_plain" + bonus_reagents = list("nutriment" = 2, "vitamin" = 2) + list_reagents = list("nutriment" = 3, "vitamin" = 1) diff --git a/code/modules/food_and_drinks/food/snacks_pastry.dm b/code/modules/food_and_drinks/food/snacks_pastry.dm index 8036dcdf3e..58c6986808 100644 --- a/code/modules/food_and_drinks/food/snacks_pastry.dm +++ b/code/modules/food_and_drinks/food/snacks_pastry.dm @@ -161,6 +161,13 @@ bonus_reagents = list("omnizine" = 3) list_reagents = list("nutriment" = 4, "omnizine" = 3) +/obj/item/weapon/reagent_containers/food/snacks/dankpocket + name = "\improper Dank-pocket" + desc = "The food of choice for the seasoned botanist." + icon_state = "dankpocket" + list_reagents = list("lipolicide" = 3, "space_drugs" = 3, "nutriment" = 4) + filling_color = "#00FF00" + /obj/item/weapon/reagent_containers/food/snacks/fortunecookie name = "fortune cookie" desc = "A true prophecy in each cookie!" diff --git a/code/modules/food_and_drinks/food/snacks_pie.dm b/code/modules/food_and_drinks/food/snacks_pie.dm index 0a7cd72f42..2626c3b679 100644 --- a/code/modules/food_and_drinks/food/snacks_pie.dm +++ b/code/modules/food_and_drinks/food/snacks_pie.dm @@ -3,7 +3,7 @@ icon = 'icons/obj/food/piecake.dmi' trash = /obj/item/trash/plate bitesize = 3 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL volume = 80 list_reagents = list("nutriment" = 10, "vitamin" = 2) diff --git a/code/modules/food_and_drinks/food/snacks_pizza.dm b/code/modules/food_and_drinks/food/snacks_pizza.dm index b8d647e34a..b701fb1916 100644 --- a/code/modules/food_and_drinks/food/snacks_pizza.dm +++ b/code/modules/food_and_drinks/food/snacks_pizza.dm @@ -3,7 +3,7 @@ /obj/item/weapon/reagent_containers/food/snacks/pizza icon = 'icons/obj/food/pizzaspaghetti.dmi' - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL slices_num = 6 volume = 80 list_reagents = list("nutriment" = 30, "tomatojuice" = 6, "vitamin" = 5) diff --git a/code/modules/food_and_drinks/food/snacks_salad.dm b/code/modules/food_and_drinks/food/snacks_salad.dm index d98273c4fb..5b0192d541 100644 --- a/code/modules/food_and_drinks/food/snacks_salad.dm +++ b/code/modules/food_and_drinks/food/snacks_salad.dm @@ -4,7 +4,7 @@ icon = 'icons/obj/food/soupsalad.dmi' trash = /obj/item/weapon/reagent_containers/glass/bowl bitesize = 3 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL list_reagents = list("nutriment" = 7, "vitamin" = 2) /obj/item/weapon/reagent_containers/food/snacks/salad/New() diff --git a/code/modules/food_and_drinks/food/snacks_sandwichtoast.dm b/code/modules/food_and_drinks/food/snacks_sandwichtoast.dm index 73b18e73a2..0bbd127c10 100644 --- a/code/modules/food_and_drinks/food/snacks_sandwichtoast.dm +++ b/code/modules/food_and_drinks/food/snacks_sandwichtoast.dm @@ -45,7 +45,7 @@ /obj/item/weapon/reagent_containers/food/snacks/icecreamsandwich name = "icecream sandwich" - desc = "Portable Ice-cream in it's own packaging." + desc = "Portable Ice-cream in its own packaging." icon = 'icons/obj/food/food.dmi' icon_state = "icecreamsandwich" bonus_reagents = list("nutriment" = 1, "ice" = 2) diff --git a/code/modules/food_and_drinks/food/snacks_soup.dm b/code/modules/food_and_drinks/food/snacks_soup.dm index 8248ab27ae..6ded3dfcc2 100644 --- a/code/modules/food_and_drinks/food/snacks_soup.dm +++ b/code/modules/food_and_drinks/food/snacks_soup.dm @@ -1,5 +1,5 @@ /obj/item/weapon/reagent_containers/food/snacks/soup - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL icon = 'icons/obj/food/soupsalad.dmi' trash = /obj/item/weapon/reagent_containers/glass/bowl bitesize = 5 diff --git a/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm b/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm index 6ce7a8b179..54acb1aa49 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm @@ -25,6 +25,12 @@ mixer = new /obj/item/weapon/reagent_containers(src, MIXER_CAPACITY) mixer.name = "Mixer" +/obj/machinery/food_cart/Destroy() + if(mixer) + qdel(mixer) + mixer = null + return ..() + /obj/machinery/food_cart/attack_hand(mob/user) user.set_machine(src) interact(user) @@ -150,6 +156,11 @@ usr << browse(null,"window=foodcart") return +/obj/machinery/food_cart/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + new /obj/item/stack/sheet/metal(loc, 4) + qdel(src) + #undef STORAGE_CAPACITY #undef LIQUID_CAPACIY #undef MIXER_CAPACITY diff --git a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm index c846c7ff0c..fa975e12ce 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm @@ -62,7 +62,7 @@ /obj/machinery/gibber/RefreshParts() var/gib_time = 40 for(var/obj/item/weapon/stock_parts/matter_bin/B in component_parts) - meat_produced += 3 * B.rating + meat_produced += B.rating for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts) gib_time -= 5 * M.rating gibtime = gib_time @@ -85,9 +85,8 @@ /obj/machinery/gibber/attack_paw(mob/user) return src.attack_hand(user) -/obj/machinery/gibber/container_resist() - src.go_out() - return +/obj/machinery/gibber/container_resist(mob/living/user) + go_out() /obj/machinery/gibber/attack_hand(mob/user) if(stat & (NOPOWER|BROKEN)) @@ -96,7 +95,7 @@ user << "It's locked and running." return - if(user.pulling && user.a_intent == "grab" && isliving(user.pulling)) + if(user.pulling && user.a_intent == INTENT_GRAB && isliving(user.pulling)) var/mob/living/L = user.pulling if(!iscarbon(L)) user << "This item is not suitable for the gibber!" @@ -204,10 +203,11 @@ var/obj/item/weapon/reagent_containers/food/snacks/meat/slab/newmeat = new typeofmeat var/obj/item/stack/sheet/animalhide/newskin = new typeofskin newmeat.name = "[sourcename] [newmeat.name]" - newmeat.subjectname = sourcename - if(sourcejob) - newmeat.subjectjob = sourcejob - newmeat.reagents.add_reagent ("nutriment", sourcenutriment / meat_produced) // Thehehe. Fat guys go first + if(istype(newmeat)) + newmeat.subjectname = sourcename + newmeat.reagents.add_reagent ("nutriment", sourcenutriment / meat_produced) // Thehehe. Fat guys go first + if(sourcejob) + newmeat.subjectjob = sourcejob src.occupant.reagents.trans_to (newmeat, round (sourcetotalreagents / meat_produced, 1)) // Transfer all the reagents from the allmeat[i] = newmeat allskin = newskin @@ -228,7 +228,7 @@ var/obj/item/meatslab = allmeat[i] meatslab.loc = src.loc meatslab.throw_at_fast(pick(nearby_turfs),i,3) - for (var/turfs=1 to meat_produced*3) + for (var/turfs=1 to meat_produced) var/turf/gibturf = pick(nearby_turfs) if (!gibturf.density && src in view(gibturf)) new gibtype(gibturf,i) diff --git a/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm b/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm index ea2fa786b1..56b4ec3f75 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm @@ -18,6 +18,8 @@ var/dispense_flavour = ICECREAM_VANILLA var/flavour_name = "vanilla" flags = OPENCONTAINER + obj_integrity = 300 + max_integrity = 300 /obj/machinery/icecream_vat/proc/get_ingredient_list(type) switch(type) @@ -206,6 +208,12 @@ reagents.add_reagent("singulo", 2) ice_creamed = 1 +/obj/machinery/icecream_vat/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + new /obj/item/stack/sheet/metal(loc, 4) + qdel(src) + + #undef ICECREAM_VANILLA #undef ICECREAM_CHOCOLATE #undef ICECREAM_STRAWBERRY diff --git a/code/modules/food_and_drinks/kitchen_machinery/juicer.dm b/code/modules/food_and_drinks/kitchen_machinery/juicer.dm index 19c3112b32..b732e1bf4d 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/juicer.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/juicer.dm @@ -1,6 +1,7 @@ /obj/machinery/juicer name = "juicer" + desc = "a centrifugal juicer with two speeds: Juice and Separate." icon = 'icons/obj/kitchen.dmi' icon_state = "juicer1" layer = BELOW_OBJ_LAYER @@ -55,7 +56,7 @@ src.updateUsrDialog() return 0 if (!is_type_in_list(O, allowed_items)) - user << "It looks as not containing any juice." + user << "This object contains no fluid or extractable reagents." return 1 if(!user.unEquip(O)) user << "\the [O] is stuck to your hand, you cannot put it in \the [src]!" @@ -90,15 +91,15 @@ is_chamber_empty = 1 processing_chamber = "Nothing." if (!beaker) - beaker_contents = "\The [src] has no beaker attached." + beaker_contents = "\The [src] has no container attached." else if (!beaker.reagents.total_volume) - beaker_contents = "\The [src] has attached an empty beaker." + beaker_contents = "\The [src] has an empty [beaker] attached." is_beaker_ready = 1 else if (beaker.reagents.total_volume < beaker.reagents.maximum_volume) - beaker_contents = "\The [src] has attached a beaker with something." + beaker_contents = "\The [src] has a partially filled [beaker] attached." is_beaker_ready = 1 else - beaker_contents = "\The [src] has attached a beaker and the beaker is full!" + beaker_contents = "\The [src] has a completly filled [beaker] attached!" var/dat = {" Processing chamber contains:
    @@ -108,7 +109,7 @@ if (is_beaker_ready && !is_chamber_empty && !(stat & (NOPOWER|BROKEN))) dat += "Turn on!
    " if (beaker) - dat += "
    Detach a beaker!
    " + dat += "
    Detach the container!
    " user << browse("Juicer[dat]", "window=juicer") onclose(user, "juicer") return @@ -129,7 +130,7 @@ /obj/machinery/juicer/verb/detach() set category = "Object" - set name = "Detach Beaker from the juicer" + set name = "Detach container from the juicer" set src in oview(1) if(usr.stat || !usr.canmove || usr.restrained()) return diff --git a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm index ce1f045bf2..8a392034b0 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm @@ -26,6 +26,7 @@ create_reagents(100) var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/microwave(null) B.apply_default_parts(src) + ..() /obj/item/weapon/circuitboard/machine/microwave name = "circuit board (Microwave)" @@ -72,7 +73,7 @@ "[user] starts to fix part of the microwave.", \ "You start to fix part of the microwave..." \ ) - if (do_after(user,20/O.toolspeed, target = src)) + if (do_after(user,20*O.toolspeed, target = src)) user.visible_message( \ "[user] fixes part of the microwave.", \ "You fix part of the microwave." \ @@ -83,7 +84,7 @@ "[user] starts to fix part of the microwave.", \ "You start to fix part of the microwave..." \ ) - if (do_after(user,20/O.toolspeed, target = src)) + if (do_after(user,20*O.toolspeed, target = src)) user.visible_message( \ "[user] fixes the microwave.", \ "You fix the microwave." \ @@ -140,7 +141,7 @@ var/loaded = 0 for(var/obj/item/weapon/reagent_containers/food/snacks/S in T.contents) if (contents.len>=max_n_of_items) - user << "[src] is full, you cannot put more!" + user << "[src] is full, you can't put anything in!" return 1 T.remove_from_storage(S, src) loaded++ @@ -149,15 +150,15 @@ user << "You insert [loaded] items into [src]." - else if(istype(O,/obj/item/weapon/reagent_containers/food/snacks)) + else if(O.w_class <= WEIGHT_CLASS_NORMAL && !istype(O,/obj/item/weapon/storage) && user.a_intent == INTENT_HELP) if (contents.len>=max_n_of_items) - user << "[src] is full, you cannot put more!" + user << "[src] is full, you can't put anything in!" return 1 else - // user.unEquip(O) //This just causes problems so far as I can tell. -Pete if(!user.drop_item()) user << "\the [O] is stuck to your hand, you cannot put it in \the [src]!" return 0 + O.loc = src user.visible_message( \ "[user] has added \the [O] to \the [src].", \ @@ -196,7 +197,11 @@ else var/list/items_counts = new for (var/obj/O in contents) - items_counts[O.name]++ + if(istype(O, /obj/item/stack/)) + var/obj/item/stack/S = O + items_counts[O.name] += S.amount + else + items_counts[O.name]++ for (var/O in items_counts) var/N = items_counts[O] @@ -212,7 +217,6 @@ var/datum/browser/popup = new(user, "microwave", name, 300, 300) popup.set_content(dat) popup.open() - return /*********************************** * Microwave Menu Handling/Cooking @@ -231,32 +235,30 @@ muck_finish() return - else if (has_extra_item()) - if (!microwaving(4)) + else + if(has_extra_item() && prob(min(dirty*5,100)) && !microwaving(4)) broke() return - broke() - return - - else - if(!microwaving(10)) abort() return stop() - for(var/obj/item/weapon/reagent_containers/food/snacks/F in contents) - if(F.cooked_type) - var/obj/item/weapon/reagent_containers/food/snacks/S = new F.cooked_type (get_turf(src)) - F.initialize_cooked_food(S, efficiency) - feedback_add_details("food_made","[F.type]") - else - new /obj/item/weapon/reagent_containers/food/snacks/badrecipe(src) - if(dirty < 100) - dirty++ - qdel(F) + var/metal = 0 + for(var/obj/item/O in contents) + O.microwave_act(src) + if(O.materials[MAT_METAL]) + metal += O.materials[MAT_METAL] + if(metal) + visible_message("Sparks fly around [src]!") + if(prob(max(metal/2, 33))) + explosion(loc,0,1,2) + broke() + return + + dropContents() return /obj/machinery/microwave/proc/microwaving(seconds as num) @@ -340,4 +342,3 @@ if ("dispose") dispose() updateUsrDialog() - return diff --git a/code/modules/food_and_drinks/kitchen_machinery/processor.dm b/code/modules/food_and_drinks/kitchen_machinery/processor.dm index a2f4389558..2c52f2889c 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/processor.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/processor.dm @@ -3,7 +3,7 @@ name = "food processor" desc = "An industrial grinder used to process meat and other foods. Keep hands clear of intake area while operating." icon = 'icons/obj/kitchen.dmi' - icon_state = "processor" + icon_state = "processor1" layer = BELOW_OBJ_LAYER density = 1 anchored = 1 @@ -28,6 +28,23 @@ /obj/item/weapon/stock_parts/matter_bin = 1, /obj/item/weapon/stock_parts/manipulator = 1) +/obj/item/weapon/circuitboard/machine/processor + name = "circuit board (Food Processor)" + build_path = /obj/machinery/processor + +/obj/item/weapon/circuitboard/machine/processor/attackby(obj/item/I, mob/user, params) + if(istype(I,/obj/item/weapon/screwdriver)) + if(build_path == /obj/machinery/processor) + name = "circuit board (slime Processor)" + build_path = /obj/machinery/processor/slime + user << "Name protocols successfully updated." + else + name = "circuit board (Food Processor)" + build_path = /obj/machinery/processor + user << "Defaulting name protocols." + else + return ..() + /obj/machinery/processor/RefreshParts() for(var/obj/item/weapon/stock_parts/matter_bin/B in component_parts) rating_amount = B.rating @@ -83,6 +100,10 @@ /datum/food_processor_process/potato input = /obj/item/weapon/reagent_containers/food/snacks/grown/potato + output = /obj/item/weapon/reagent_containers/food/snacks/tatortot + +/datum/food_processor_process/potatowedges + input = /obj/item/weapon/reagent_containers/food/snacks/grown/potato/wedges output = /obj/item/weapon/reagent_containers/food/snacks/fries /datum/food_processor_process/carrot @@ -135,9 +156,10 @@ "You jump out from the processor!", \ "You hear chimpering.") return - var/obj/item/weapon/reagent_containers/glass/bucket/bucket_of_blood = new(loc) + var/obj/bucket = new /obj/item/weapon/reagent_containers/glass/bucket(loc) + var/datum/reagent/blood/B = new() - B.holder = bucket_of_blood + B.holder = bucket B.volume = 70 //set reagent data B.data["donor"] = O @@ -150,9 +172,9 @@ if(O.resistances&&O.resistances.len) B.data["resistances"] = O.resistances.Copy() - bucket_of_blood.reagents.reagent_list += B - bucket_of_blood.reagents.update_total() - bucket_of_blood.on_reagent_change() + bucket.reagents.reagent_list += B + bucket.reagents.update_total() + bucket.on_reagent_change() //bucket_of_blood.reagents.handle_reactions() //blood doesn't react ..() @@ -171,7 +193,7 @@ if(src.processing) user << "The processor is in the process of processing!" return 1 - if(default_deconstruction_screwdriver(user, "processor1", "processor", O)) + if(default_deconstruction_screwdriver(user, "processor", "processor1", O)) return if(exchange_parts(user, O)) @@ -194,7 +216,7 @@ O.loc = src return 1 else - if(user.a_intent != "harm") + if(user.a_intent != INTENT_HARM) user << "That probably won't blend!" return 1 else @@ -206,6 +228,15 @@ if(src.processing) user << "The processor is in the process of processing!" return 1 + if(user.a_intent == INTENT_GRAB && user.pulling && (isslime(user.pulling) || ismonkey(user.pulling))) + if(user.grab_state < GRAB_AGGRESSIVE) + user << "You need a better grip to do that!" + return + var/mob/living/pushed_mob = user.pulling + visible_message("[user] stuffs [pushed_mob] into [src]!") + pushed_mob.forceMove(src) + user.stop_pulling() + return if(src.contents.len == 0) user << "The processor is empty!" return 1 @@ -219,7 +250,7 @@ for(var/O in src.contents) var/datum/food_processor_process/P = select_recipe(O) if (!P) - log_admin("DEBUG: [O] in processor havent suitable recipe. How do you put it in?") //-rastaf0 // DEAR GOD THIS BURNS MY EYES HAVE YOU EVER LOOKED IN AN ENGLISH DICTONARY BEFORE IN YOUR LIFE AAAAAAAAAAAAAAAAAAAAA - Iamgoofball + log_admin("DEBUG: [O] in processor hasnt got a suitable recipe. How did it get in there? Please report it immediatly!!!") continue total_time += P.time var/offset = prob(50) ? -2 : 2 @@ -253,3 +284,15 @@ M.loc = src.loc return +/obj/machinery/processor/slime + name = "Slime processor" + desc = "An industrial grinder with a sticker saying appropriated for science department. Keep hands clear of intake area while operating." + +/obj/machinery/processor/slime/New() + ..() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/processor/slime(null) + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/processor/slime + name = "circuit board (Slime Processor)" + build_path = /obj/machinery/processor/slime \ No newline at end of file diff --git a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm index d8479f1cd7..fe930c9e49 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm @@ -29,19 +29,20 @@ build_path = /obj/machinery/smartfridge origin_tech = "programming=1" req_components = list(/obj/item/weapon/stock_parts/matter_bin = 1) + var/static/list/fridges = list(/obj/machinery/smartfridge = "plant produce", + /obj/machinery/smartfridge/food = "food", + /obj/machinery/smartfridge/drinks = "drinks", + /obj/machinery/smartfridge/extract = "slimes", + /obj/machinery/smartfridge/chemistry = "chems", + /obj/machinery/smartfridge/chemistry/virology = "viruses") /obj/item/weapon/circuitboard/machine/smartfridge/New(loc, new_type) if(new_type) build_path = new_type + ..() /obj/item/weapon/circuitboard/machine/smartfridge/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/weapon/screwdriver)) - var/list/fridges = list(/obj/machinery/smartfridge = "default", - /obj/machinery/smartfridge/drinks = "drinks", - /obj/machinery/smartfridge/extract = "slimes", - /obj/machinery/smartfridge/chemistry = "chems", - /obj/machinery/smartfridge/chemistry/virology = "viruses") - var/position = fridges.Find(build_path, fridges) position = (position == fridges.len) ? 1 : (position + 1) build_path = fridges[position] @@ -49,13 +50,9 @@ else return ..() -/obj/machinery/smartfridge/construction() - for(var/datum/A in contents) - qdel(A) - -/obj/machinery/smartfridge/deconstruction() - for(var/atom/movable/A in contents) - A.loc = loc +/obj/item/weapon/circuitboard/machine/smartfridge/examine/(mob/user) + ..() + user << "[src] is set to [fridges[build_path]]. You can use a screwdriver to reconfigure it." /obj/machinery/smartfridge/RefreshParts() for(var/obj/item/weapon/stock_parts/matter_bin/B in component_parts) @@ -95,44 +92,44 @@ updateUsrDialog() return - if(stat) - return 0 + if(!stat) - if(contents.len >= max_n_of_items) - user << "\The [src] is full!" - return 0 - - if(accept_check(O)) - load(O) - user.visible_message("[user] has added \the [O] to \the [src].", "You add \the [O] to \the [src].") - updateUsrDialog() - return 1 - - if(istype(O, /obj/item/weapon/storage/bag)) - var/obj/item/weapon/storage/P = O - var/loaded = 0 - for(var/obj/G in P.contents) - if(contents.len >= max_n_of_items) - break - if(accept_check(G)) - load(G) - loaded++ - updateUsrDialog() - - if(loaded) - if(contents.len >= max_n_of_items) - user.visible_message("[user] loads \the [src] with \the [O].", \ - "You fill \the [src] with \the [O].") - else - user.visible_message("[user] loads \the [src] with \the [O].", \ - "You load \the [src] with \the [O].") - if(O.contents.len > 0) - user << "Some items are refused." - else - user << "There is nothing in [O] to put in [src]!" + if(contents.len >= max_n_of_items) + user << "\The [src] is full!" return 0 - else if(user.a_intent != "harm") + if(accept_check(O)) + load(O) + user.visible_message("[user] has added \the [O] to \the [src].", "You add \the [O] to \the [src].") + updateUsrDialog() + return 1 + + if(istype(O, /obj/item/weapon/storage/bag)) + var/obj/item/weapon/storage/P = O + var/loaded = 0 + for(var/obj/G in P.contents) + if(contents.len >= max_n_of_items) + break + if(accept_check(G)) + load(G) + loaded++ + updateUsrDialog() + + if(loaded) + if(contents.len >= max_n_of_items) + user.visible_message("[user] loads \the [src] with \the [O].", \ + "You fill \the [src] with \the [O].") + else + user.visible_message("[user] loads \the [src] with \the [O].", \ + "You load \the [src] with \the [O].") + if(O.contents.len > 0) + user << "Some items are refused." + return 1 + else + user << "There is nothing in [O] to put in [src]!" + return 0 + + if(user.a_intent != INTENT_HARM) user << "\The [src] smartly refuses [O]." updateUsrDialog() return 0 @@ -142,7 +139,7 @@ /obj/machinery/smartfridge/proc/accept_check(obj/item/O) - if(istype(O,/obj/item/weapon/reagent_containers/food/snacks/grown/) || istype(O,/obj/item/seeds/)) + if(istype(O,/obj/item/weapon/reagent_containers/food/snacks/grown/) || istype(O,/obj/item/seeds/) || istype(O,/obj/item/weapon/grown/)) return 1 return 0 @@ -238,6 +235,7 @@ // ---------------------------- /obj/machinery/smartfridge/drying_rack 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" use_power = 1 @@ -247,6 +245,24 @@ icon_off = "drying_rack" var/drying = 0 +/obj/machinery/smartfridge/drying_rack/New() + ..() + if(component_parts && component_parts.len) + component_parts.Cut() + component_parts = null + +/obj/machinery/smartfridge/drying_rack/on_deconstruction() + new /obj/item/stack/sheet/mineral/wood(loc, 10) + ..() + +/obj/machinery/smartfridge/drying_rack/RefreshParts() +/obj/machinery/smartfridge/drying_rack/default_deconstruction_screwdriver() +/obj/machinery/smartfridge/drying_rack/exchange_parts() +/obj/machinery/smartfridge/drying_rack/spawn_frame() + +/obj/machinery/smartfridge/drying_rack/default_deconstruction_crowbar(obj/item/weapon/crowbar/C, ignore_panel = 1) + ..() + /obj/machinery/smartfridge/drying_rack/interact(mob/user) var/dat = ..() if(dat) @@ -292,6 +308,8 @@ var/obj/item/weapon/reagent_containers/food/snacks/S = O if(S.dried_type) return 1 + if(istype(O,/obj/item/stack/sheet/wetleather/)) + return 1 return 0 /obj/machinery/smartfridge/drying_rack/proc/toggle_drying(forceoff = 0) @@ -306,7 +324,7 @@ /obj/machinery/smartfridge/drying_rack/proc/rack_dry() for(var/obj/item/weapon/reagent_containers/food/snacks/S in contents) if(S.dried_type == S.type)//if the dried type is the same as the object's type, don't bother creating a whole new item... - S.color = "#ad7257" + S.add_atom_colour("#ad7257", FIXED_COLOUR_PRIORITY) S.dry = 1 S.loc = get_turf(src) else @@ -314,6 +332,11 @@ new dried(src.loc) qdel(S) return 1 + for(var/obj/item/stack/sheet/wetleather/WL in contents) + var/obj/item/stack/sheet/leather/L = new(loc) + L.amount = WL.amount + qdel(WL) + return 1 return 0 /obj/machinery/smartfridge/drying_rack/emp_act(severity) @@ -334,6 +357,16 @@ if(istype(O,/obj/item/weapon/reagent_containers/glass) || istype(O,/obj/item/weapon/reagent_containers/food/drinks) || istype(O,/obj/item/weapon/reagent_containers/food/condiment)) return 1 +// ---------------------------- +// Food smartfridge +// ---------------------------- +/obj/machinery/smartfridge/food + desc = "A refrigerated storage unit for food." + +/obj/machinery/smartfridge/food/accept_check(obj/item/O) + if(istype(O,/obj/item/weapon/reagent_containers/food/snacks/)) + return 1 + return 0 // ------------------------------------- // Xenobiology Slime-Extract Smartfridge diff --git a/code/modules/food_and_drinks/pizzabox.dm b/code/modules/food_and_drinks/pizzabox.dm index e3e2f8c92c..4db3a2623d 100644 --- a/code/modules/food_and_drinks/pizzabox.dm +++ b/code/modules/food_and_drinks/pizzabox.dm @@ -28,9 +28,11 @@ /obj/item/pizzabox/New() update_icon() + ..() /obj/item/pizzabox/Destroy() unprocess() + return ..() /obj/item/pizzabox/update_icon() // Description @@ -43,7 +45,7 @@ if(bomb_defused) desc = "[desc] The bomb seems inert." if(bomb_active) - desc = "[desc] It looks like its about to go off!" + desc = "[desc] It looks like it's about to go off!" else var/obj/item/pizzabox/box = boxes.len ? boxes[boxes.len] : src if(boxes.len) @@ -84,7 +86,7 @@ update_icon() /obj/item/pizzabox/attack_hand(mob/user) - if(user.get_inactive_hand() != src) + if(user.get_inactive_held_item() != src) ..() return if(open) @@ -106,7 +108,9 @@ bomb_timer = Clamp(Ceiling(bomb_timer / 2), BOMB_TIMER_MIN, BOMB_TIMER_MAX) bomb_defused = FALSE - message_admins("[key_name_admin(user)]
    ? (FLW) has trapped a [src] with [bomb] set to [bomb_timer * 2] seconds.") + var/message = "[ADMIN_LOOKUPFLW(user)] has trapped a [src] with [bomb] set to [bomb_timer * 2] seconds." + bombers += message + message_admins(message) log_game("[key_name(user)] has trapped a [src] with [bomb] set to [bomb_timer * 2] seconds.") bomb.adminlog = "The [bomb.name] in [src.name] that [key_name(user)] activated has detonated!" diff --git a/code/modules/food_and_drinks/recipes/drinks_recipes.dm b/code/modules/food_and_drinks/recipes/drinks_recipes.dm index a90137ef62..29d3f6d591 100644 --- a/code/modules/food_and_drinks/recipes/drinks_recipes.dm +++ b/code/modules/food_and_drinks/recipes/drinks_recipes.dm @@ -4,344 +4,296 @@ /datum/chemical_reaction/goldschlager name = "Goldschlager" id = "goldschlager" - result = "goldschlager" + results = list("goldschlager" = 10) required_reagents = list("vodka" = 10, "gold" = 1) - result_amount = 10 /datum/chemical_reaction/patron name = "Patron" id = "patron" - result = "patron" + results = list("patron" = 10) required_reagents = list("tequila" = 10, "silver" = 1) - result_amount = 10 /datum/chemical_reaction/bilk name = "Bilk" id = "bilk" - result = "bilk" + results = list("bilk" = 2) required_reagents = list("milk" = 1, "beer" = 1) - result_amount = 2 /datum/chemical_reaction/icetea name = "Iced Tea" id = "icetea" - result = "icetea" + results = list("icetea" = 4) required_reagents = list("ice" = 1, "tea" = 3) - result_amount = 4 /datum/chemical_reaction/icecoffee name = "Iced Coffee" id = "icecoffee" - result = "icecoffee" + results = list("icecoffee" = 4) required_reagents = list("ice" = 1, "coffee" = 3) - result_amount = 4 /datum/chemical_reaction/nuka_cola name = "Nuka Cola" id = "nuka_cola" - result = "nuka_cola" + results = list("nuka_cola" = 6) required_reagents = list("uranium" = 1, "cola" = 6) - result_amount = 6 /datum/chemical_reaction/moonshine name = "Moonshine" id = "moonshine" - result = "moonshine" - required_reagents = list("nutriment" = 10) + results = list("moonshine" = 10) + required_reagents = list("nutriment" = 5, "sugar" = 5) required_catalysts = list("enzyme" = 5) - result_amount = 10 /datum/chemical_reaction/wine name = "Wine" id = "wine" - result = "wine" + results = list("wine" = 10) required_reagents = list("grapejuice" = 10) required_catalysts = list("enzyme" = 5) - result_amount = 10 /datum/chemical_reaction/spacebeer name = "Space Beer" id = "spacebeer" - result = "beer" + results = list("beer" = 10) required_reagents = list("flour" = 10) required_catalysts = list("enzyme" = 5) - result_amount = 10 /datum/chemical_reaction/vodka name = "Vodka" id = "vodka" - result = "vodka" + results = list("vodka" = 10) required_reagents = list("potato" = 10) required_catalysts = list("enzyme" = 5) - result_amount = 10 /datum/chemical_reaction/kahlua name = "Kahlua" id = "kahlua" - result = "kahlua" + results = list("kahlua" = 5) required_reagents = list("coffee" = 5, "sugar" = 5) required_catalysts = list("enzyme" = 5) - result_amount = 5 /datum/chemical_reaction/gin_tonic name = "Gin and Tonic" id = "gintonic" - result = "gintonic" + results = list("gintonic" = 3) required_reagents = list("gin" = 2, "tonic" = 1) - result_amount = 3 /datum/chemical_reaction/cuba_libre name = "Cuba Libre" id = "cubalibre" - result = "cubalibre" + results = list("cubalibre" = 3) required_reagents = list("rum" = 2, "cola" = 1) - result_amount = 3 /datum/chemical_reaction/martini name = "Classic Martini" id = "martini" - result = "martini" + results = list("martini" = 3) required_reagents = list("gin" = 2, "vermouth" = 1) - result_amount = 3 /datum/chemical_reaction/vodkamartini name = "Vodka Martini" id = "vodkamartini" - result = "vodkamartini" + results = list("vodkamartini" = 3) required_reagents = list("vodka" = 2, "vermouth" = 1) - result_amount = 3 /datum/chemical_reaction/white_russian name = "White Russian" id = "whiterussian" - result = "whiterussian" + results = list("whiterussian" = 5) required_reagents = list("blackrussian" = 3, "cream" = 2) - result_amount = 5 /datum/chemical_reaction/whiskey_cola name = "Whiskey Cola" id = "whiskeycola" - result = "whiskeycola" + results = list("whiskeycola" = 3) required_reagents = list("whiskey" = 2, "cola" = 1) - result_amount = 3 /datum/chemical_reaction/screwdriver name = "Screwdriver" id = "screwdrivercocktail" - result = "screwdrivercocktail" + results = list("screwdrivercocktail" = 3) required_reagents = list("vodka" = 2, "orangejuice" = 1) - result_amount = 3 /datum/chemical_reaction/bloody_mary name = "Bloody Mary" id = "bloodymary" - result = "bloodymary" + results = list("bloodymary" = 4) required_reagents = list("vodka" = 1, "tomatojuice" = 2, "limejuice" = 1) - result_amount = 4 /datum/chemical_reaction/gargle_blaster name = "Pan-Galactic Gargle Blaster" id = "gargleblaster" - result = "gargleblaster" + results = list("gargleblaster" = 5) required_reagents = list("vodka" = 1, "gin" = 1, "whiskey" = 1, "cognac" = 1, "limejuice" = 1) - result_amount = 5 /datum/chemical_reaction/brave_bull name = "Brave Bull" id = "bravebull" - result = "bravebull" + results = list("bravebull" = 3) required_reagents = list("tequila" = 2, "kahlua" = 1) - result_amount = 3 /datum/chemical_reaction/tequila_sunrise name = "tequila Sunrise" id = "tequilasunrise" - result = "tequilasunrise" + results = list("tequilasunrise" = 3) required_reagents = list("tequila" = 2, "orangejuice" = 1) - result_amount = 3 /datum/chemical_reaction/toxins_special name = "Toxins Special" id = "toxinsspecial" - result = "toxinsspecial" + results = list("toxinsspecial" = 5) required_reagents = list("rum" = 2, "vermouth" = 1, "plasma" = 2) - result_amount = 5 /datum/chemical_reaction/beepsky_smash name = "Beepksy Smash" id = "beepksysmash" - result = "beepskysmash" + results = list("beepskysmash" = 4) required_reagents = list("limejuice" = 2, "whiskey" = 2, "iron" = 1) - result_amount = 4 /datum/chemical_reaction/doctor_delight name = "The Doctor's Delight" id = "doctordelight" - result = "doctorsdelight" + results = list("doctorsdelight" = 5) required_reagents = list("limejuice" = 1, "tomatojuice" = 1, "orangejuice" = 1, "cream" = 1, "cryoxadone" = 1) - result_amount = 5 /datum/chemical_reaction/irish_cream name = "Irish Cream" id = "irishcream" - result = "irishcream" + results = list("irishcream" = 3) required_reagents = list("whiskey" = 2, "cream" = 1) - result_amount = 3 /datum/chemical_reaction/manly_dorf name = "The Manly Dorf" id = "manlydorf" - result = "manlydorf" + results = list("manlydorf" = 3) required_reagents = list ("beer" = 1, "ale" = 2) - result_amount = 3 /datum/chemical_reaction/greenbeer name = "Green Beer" id = "greenbeer" - result = "greenbeer" + results = list("greenbeer" = 10) required_reagents = list("greencrayonpowder" = 1, "beer" = 10) - result_amount = 10 /datum/chemical_reaction/hooch name = "Hooch" id = "hooch" - result = "hooch" + results = list("hooch" = 3) required_reagents = list ("ethanol" = 2, "welding_fuel" = 1) required_catalysts = list("enzyme" = 1) - result_amount = 3 /datum/chemical_reaction/irish_coffee name = "Irish Coffee" id = "irishcoffee" - result = "irishcoffee" + results = list("irishcoffee" = 2) required_reagents = list("irishcream" = 1, "coffee" = 1) - result_amount = 2 /datum/chemical_reaction/b52 name = "B-52" id = "b52" - result = "b52" + results = list("b52" = 3) required_reagents = list("irishcream" = 1, "kahlua" = 1, "cognac" = 1) - result_amount = 3 /datum/chemical_reaction/atomicbomb name = "Atomic Bomb" id = "atomicbomb" - result = "atomicbomb" + results = list("atomicbomb" = 10) required_reagents = list("b52" = 10, "uranium" = 1) - result_amount = 10 /datum/chemical_reaction/margarita name = "Margarita" id = "margarita" - result = "margarita" + results = list("margarita" = 3) required_reagents = list("tequila" = 2, "limejuice" = 1) - result_amount = 3 /datum/chemical_reaction/longislandicedtea name = "Long Island Iced Tea" id = "longislandicedtea" - result = "longislandicedtea" + results = list("longislandicedtea" = 4) required_reagents = list("vodka" = 1, "gin" = 1, "tequila" = 1, "cubalibre" = 1) - result_amount = 4 /datum/chemical_reaction/threemileisland name = "Three Mile Island Iced Tea" id = "threemileisland" - result = "threemileisland" + results = list("threemileisland" = 10) required_reagents = list("longislandicedtea" = 10, "uranium" = 1) - result_amount = 10 /datum/chemical_reaction/whiskeysoda name = "Whiskey Soda" id = "whiskeysoda" - result = "whiskeysoda" + results = list("whiskeysoda" = 3) required_reagents = list("whiskey" = 2, "sodawater" = 1) - result_amount = 3 /datum/chemical_reaction/black_russian name = "Black Russian" id = "blackrussian" - result = "blackrussian" + results = list("blackrussian" = 5) required_reagents = list("vodka" = 3, "kahlua" = 2) - result_amount = 5 /datum/chemical_reaction/manhattan name = "Manhattan" id = "manhattan" - result = "manhattan" + results = list("manhattan" = 3) required_reagents = list("whiskey" = 2, "vermouth" = 1) - result_amount = 3 /datum/chemical_reaction/manhattan_proj name = "Manhattan Project" id = "manhattan_proj" - result = "manhattan_proj" + results = list("manhattan_proj" = 10) required_reagents = list("manhattan" = 10, "uranium" = 1) - result_amount = 10 /datum/chemical_reaction/vodka_tonic name = "Vodka and Tonic" id = "vodkatonic" - result = "vodkatonic" + results = list("vodkatonic" = 3) required_reagents = list("vodka" = 2, "tonic" = 1) - result_amount = 3 /datum/chemical_reaction/gin_fizz name = "Gin Fizz" id = "ginfizz" - result = "ginfizz" + results = list("ginfizz" = 4) required_reagents = list("gin" = 2, "sodawater" = 1, "limejuice" = 1) - result_amount = 4 /datum/chemical_reaction/bahama_mama name = "Bahama mama" id = "bahama_mama" - result = "bahama_mama" + results = list("bahama_mama" = 6) required_reagents = list("rum" = 2, "orangejuice" = 2, "limejuice" = 1, "ice" = 1) - result_amount = 6 /datum/chemical_reaction/singulo name = "Singulo" id = "singulo" - result = "singulo" + results = list("singulo" = 10) required_reagents = list("vodka" = 5, "radium" = 1, "wine" = 5) - result_amount = 10 /datum/chemical_reaction/alliescocktail name = "Allies Cocktail" id = "alliescocktail" - result = "alliescocktail" + results = list("alliescocktail" = 2) required_reagents = list("martini" = 1, "vodka" = 1) - result_amount = 2 /datum/chemical_reaction/demonsblood name = "Demons Blood" id = "demonsblood" - result = "demonsblood" + results = list("demonsblood" = 4) required_reagents = list("rum" = 1, "spacemountainwind" = 1, "blood" = 1, "dr_gibb" = 1) - result_amount = 4 /datum/chemical_reaction/booger name = "Booger" id = "booger" - result = "booger" + results = list("booger" = 4) required_reagents = list("cream" = 1, "banana" = 1, "rum" = 1, "watermelonjuice" = 1) - result_amount = 4 /datum/chemical_reaction/antifreeze name = "Anti-freeze" id = "antifreeze" - result = "antifreeze" + results = list("antifreeze" = 4) required_reagents = list("vodka" = 2, "cream" = 1, "ice" = 1) - result_amount = 4 /datum/chemical_reaction/barefoot name = "Barefoot" id = "barefoot" - result = "barefoot" + results = list("barefoot" = 3) required_reagents = list("berryjuice" = 1, "cream" = 1, "vermouth" = 1) - result_amount = 3 ////DRINKS THAT REQUIRED IMPROVED SPRITES BELOW:: -Agouri///// @@ -349,259 +301,223 @@ /datum/chemical_reaction/sbiten name = "Sbiten" id = "sbiten" - result = "sbiten" + results = list("sbiten" = 10) required_reagents = list("vodka" = 10, "capsaicin" = 1) - result_amount = 10 /datum/chemical_reaction/red_mead name = "Red Mead" id = "red_mead" - result = "red_mead" + results = list("red_mead" = 2) required_reagents = list("blood" = 1, "mead" = 1) - result_amount = 2 /datum/chemical_reaction/mead name = "Mead" id = "mead" - result = "mead" + results = list("mead" = 2) required_reagents = list("honey" = 2) required_catalysts = list("enzyme" = 5) - result_amount = 2 /datum/chemical_reaction/iced_beer name = "Iced Beer" id = "iced_beer" - result = "iced_beer" + results = list("iced_beer" = 6) required_reagents = list("beer" = 5, "ice" = 1) - result_amount = 6 /datum/chemical_reaction/grog name = "Grog" id = "grog" - result = "grog" + results = list("grog" = 2) required_reagents = list("rum" = 1, "water" = 1) - result_amount = 2 /datum/chemical_reaction/soy_latte name = "Soy Latte" id = "soy_latte" - result = "soy_latte" + results = list("soy_latte" = 2) required_reagents = list("coffee" = 1, "soymilk" = 1) - result_amount = 2 /datum/chemical_reaction/cafe_latte name = "Cafe Latte" id = "cafe_latte" - result = "cafe_latte" + results = list("cafe_latte" = 2) required_reagents = list("coffee" = 1, "milk" = 1) - result_amount = 2 /datum/chemical_reaction/acidspit name = "Acid Spit" id = "acidspit" - result = "acidspit" + results = list("acidspit" = 6) required_reagents = list("sacid" = 1, "wine" = 5) - result_amount = 6 /datum/chemical_reaction/amasec name = "Amasec" id = "amasec" - result = "amasec" + results = list("amasec" = 10) required_reagents = list("iron" = 1, "wine" = 5, "vodka" = 5) - result_amount = 10 /datum/chemical_reaction/changelingsting name = "Changeling Sting" id = "changelingsting" - result = "changelingsting" - required_reagents = list("screwdrivercocktail" = 1, "limejuice" = 1, "lemonjuice" = 1) - result_amount = 5 + results = list("changelingsting" = 5) + required_reagents = list("screwdrivercocktail" = 1, "lemon_lime" = 2) /datum/chemical_reaction/aloe name = "Aloe" id = "aloe" - result = "aloe" + results = list("aloe" = 2) required_reagents = list("irishcream" = 1, "watermelonjuice" = 1) - result_amount = 2 /datum/chemical_reaction/andalusia name = "Andalusia" id = "andalusia" - result = "andalusia" + results = list("andalusia" = 3) required_reagents = list("rum" = 1, "whiskey" = 1, "lemonjuice" = 1) - result_amount = 3 /datum/chemical_reaction/neurotoxin name = "Neurotoxin" id = "neurotoxin" - result = "neurotoxin" + results = list("neurotoxin" = 2) required_reagents = list("gargleblaster" = 1, "morphine" = 1) - result_amount = 2 /datum/chemical_reaction/snowwhite name = "Snow White" id = "snowwhite" - result = "snowwhite" + results = list("snowwhite" = 2) required_reagents = list("beer" = 1, "lemon_lime" = 1) - result_amount = 2 /datum/chemical_reaction/irishcarbomb name = "Irish Car Bomb" id = "irishcarbomb" - result = "irishcarbomb" + results = list("irishcarbomb" = 2) required_reagents = list("ale" = 1, "irishcream" = 1) - result_amount = 2 /datum/chemical_reaction/syndicatebomb name = "Syndicate Bomb" id = "syndicatebomb" - result = "syndicatebomb" + results = list("syndicatebomb" = 2) required_reagents = list("beer" = 1, "whiskeycola" = 1) - result_amount = 2 /datum/chemical_reaction/erikasurprise name = "Erika Surprise" id = "erikasurprise" - result = "erikasurprise" + results = list("erikasurprise" = 5) required_reagents = list("ale" = 1, "limejuice" = 1, "whiskey" = 1, "banana" = 1, "ice" = 1) - result_amount = 5 /datum/chemical_reaction/devilskiss name = "Devils Kiss" id = "devilskiss" - result = "devilskiss" + results = list("devilskiss" = 3) required_reagents = list("blood" = 1, "kahlua" = 1, "rum" = 1) - result_amount = 3 /datum/chemical_reaction/hippiesdelight name = "Hippies Delight" id = "hippiesdelight" - result = "hippiesdelight" + results = list("hippiesdelight" = 2) required_reagents = list("mushroomhallucinogen" = 1, "gargleblaster" = 1) - result_amount = 2 /datum/chemical_reaction/bananahonk name = "Banana Honk" id = "bananahonk" - result = "bananahonk" + results = list("bananahonk" = 3) required_reagents = list("banana" = 1, "cream" = 1, "sugar" = 1) - result_amount = 3 /datum/chemical_reaction/silencer name = "Silencer" id = "silencer" - result = "silencer" + results = list("silencer" = 3) required_reagents = list("nothing" = 1, "cream" = 1, "sugar" = 1) - result_amount = 3 /datum/chemical_reaction/driestmartini name = "Driest Martini" id = "driestmartini" - result = "driestmartini" + results = list("driestmartini" = 2) required_reagents = list("nothing" = 1, "gin" = 1) - result_amount = 2 /datum/chemical_reaction/thirteenloko name = "Thirteen Loko" id = "thirteenloko" - result = "thirteenloko" + results = list("thirteenloko" = 3) required_reagents = list("vodka" = 1, "coffee" = 1, "limejuice" = 1) - result_amount = 3 /datum/chemical_reaction/chocolatepudding name = "Chocolate Pudding" id = "chocolatepudding" - result = "chocolatepudding" + results = list("chocolatepudding" = 20) required_reagents = list("cocoa" = 5, "milk" = 5, "eggyolk" = 5) - result_amount = 20 /datum/chemical_reaction/vanillapudding name = "Vanilla Pudding" id = "vanillapudding" - result = "vanillapudding" + results = list("vanillapudding" = 20) required_reagents = list("vanilla" = 5, "milk" = 5, "eggyolk" = 5) - result_amount = 20 /datum/chemical_reaction/cherryshake name = "Cherry Shake" id = "cherryshake" - result = "cherryshake" + results = list("cherryshake" = 3) required_reagents = list("cherryjelly" = 1, "ice" = 1, "cream" = 1) - result_amount = 3 /datum/chemical_reaction/bluecherryshake name = "Blue Cherry Shake" id = "bluecherryshake" - result = "bluecherryshake" + results = list("bluecherryshake" = 3) required_reagents = list("bluecherryjelly" = 1, "ice" = 1, "cream" = 1) - result_amount = 3 /datum/chemical_reaction/drunkenblumpkin name = "Drunken Blumpkin" id = "drunkenblumpkin" - result = "drunkenblumpkin" + results = list("drunkenblumpkin" = 4) required_reagents = list("blumpkinjuice" = 1, "irishcream" = 2, "ice" = 1) - result_amount = 4 /datum/chemical_reaction/pumpkin_latte name = "Pumpkin space latte" id = "pumpkin_latte" - result = "pumpkin_latte" + results = list("pumpkin_latte" = 15) required_reagents = list("pumpkinjuice" = 5, "coffee" = 5, "cream" = 5) - result_amount = 15 /datum/chemical_reaction/gibbfloats name = "Gibb Floats" id = "gibbfloats" - result = "gibbfloats" + results = list("gibbfloats" = 15) required_reagents = list("dr_gibb" = 5, "ice" = 5, "cream" = 5) - result_amount = 15 /datum/chemical_reaction/triple_citrus name = "triple_citrus" id = "triple_citrus" - result = "triple_citrus" + results = list("triple_citrus" = 5) required_reagents = list("lemonjuice" = 1, "limejuice" = 1, "orangejuice" = 1) - result_amount = 5 /datum/chemical_reaction/grape_soda name = "grape soda" id = "grapesoda" - result = "grape_soda" + results = list("grapesoda" = 2) required_reagents = list("grapejuice" = 1, "sodawater" = 1) - result_amount = 2 /datum/chemical_reaction/grappa name = "grappa" id = "grappa" - result = "grappa" + results = list("grappa" = 10) required_reagents = list ("wine" = 10) required_catalysts = list ("enzyme" = 5) - result_amount = 10 /datum/chemical_reaction/whiskey_sour name = "Whiskey Sour" id = "whiskey_sour" - result = "whiskey_sour" + results = list("whiskey_sour" = 3) required_reagents = list("whiskey" = 1, "lemonjuice" = 1, "sugar" = 1) - result_amount = 3 mix_message = "The mixture darkens to a rich gold hue." mix_sound = null /datum/chemical_reaction/fetching_fizz name = "Fetching Fizz" id = "fetching_fizz" - result = "fetching_fizz" + results = list("fetching_fizz" = 3) required_reagents = list("nuka_cola" = 1, "iron" = 1) //Manufacturable from only the mining station - result_amount = 3 mix_message = "The mixture slightly vibrates before settling." /datum/chemical_reaction/hearty_punch name = "Hearty Punch" id = "hearty_punch" - result = "hearty_punch" + results = list("hearty_punch" = 1) //Very little, for balance reasons required_reagents = list("bravebull" = 5, "syndicatebomb" = 5, "absinthe" = 5) - result_amount = 1 //Very little, for balance reasons mix_message = "The mixture darkens to a healthy crimson." mix_sound = null required_temp = 315 //Piping hot! @@ -609,15 +525,26 @@ /datum/chemical_reaction/bacchus_blessing name = "Bacchus' Blessing" id = "bacchus_blessing" - result = "bacchus_blessing" + results = list("bacchus_blessing" = 4) required_reagents = list("hooch" = 1, "absinthe" = 1, "manlydorf" = 1, "syndicatebomb" = 1) - result_amount = 4 mix_message = "The mixture turns to a sickening froth." /datum/chemical_reaction/arnold_palmer name = "Arnold Palmer" id = "arnold_palmer" - result = "arnold_palmer" + results = list("arnold_palmer" = 2) required_reagents = list("tea" = 1, "lemonjuice" = 1) - result_amount = 2 mix_message = "The smells of fresh green grass and sand traps waft through the air as the mixture turns a friendly yellow-orange." + +/datum/chemical_reaction/chocolate_milk + name = "chocolate milk" + id = "chocolate_milk" + results = list("chocolate_milk" = 2) + required_reagents = list("milk" = 1, "cocoa" = 1) + mix_message = "The color changes as the mixture blends smoothly." + +/datum/chemical_reaction/eggnog + name = "eggnog" + id = "eggnog" + results = list("eggnog" = 15) + required_reagents = list("rum" = 5, "cream" = 5, "eggyolk" = 5) \ No newline at end of file diff --git a/code/modules/food_and_drinks/recipes/food_mixtures.dm b/code/modules/food_and_drinks/recipes/food_mixtures.dm index bfb9dcbaf4..314ee2c8e2 100644 --- a/code/modules/food_and_drinks/recipes/food_mixtures.dm +++ b/code/modules/food_and_drinks/recipes/food_mixtures.dm @@ -1,4 +1,8 @@ +/datum/crafting_recipe/food + var/real_parts + /datum/crafting_recipe/food/New() + real_parts = parts.Copy() parts |= reqs //////////////////////////////////////////FOOD MIXTURES//////////////////////////////////// @@ -6,10 +10,8 @@ /datum/chemical_reaction/tofu name = "Tofu" id = "tofu" - result = null required_reagents = list("soymilk" = 10) required_catalysts = list("enzyme" = 5) - result_amount = 1 mob_react=1 /datum/chemical_reaction/tofu/on_reaction(datum/reagents/holder, created_volume) @@ -21,9 +23,7 @@ /datum/chemical_reaction/chocolate_bar name = "Chocolate Bar" id = "chocolate_bar" - result = null required_reagents = list("soymilk" = 2, "cocoa" = 2, "sugar" = 2) - result_amount = 1 /datum/chemical_reaction/chocolate_bar/on_reaction(datum/reagents/holder, created_volume) var/location = get_turf(holder.my_atom) @@ -35,10 +35,9 @@ /datum/chemical_reaction/chocolate_bar2 name = "Chocolate Bar" id = "chocolate_bar" - result = null - required_reagents = list("milk" = 2, "cocoa" = 2, "sugar" = 2) - result_amount = 1 + required_reagents = list("chocolate_milk" = 4, "sugar" = 2) mob_react = 1 + /datum/chemical_reaction/chocolate_bar2/on_reaction(datum/reagents/holder, created_volume) var/location = get_turf(holder.my_atom) for(var/i = 1, i <= created_volume, i++) @@ -48,101 +47,85 @@ /datum/chemical_reaction/hot_coco name = "Hot Coco" id = "hot_coco" - result = "hot_coco" + results = list("hot_coco" = 5) required_reagents = list("water" = 5, "cocoa" = 1) - result_amount = 5 /datum/chemical_reaction/coffee name = "Coffee" id = "coffee" - result = "coffee" + results = list("coffee" = 5) required_reagents = list("coffeepowder" = 1, "water" = 5) - result_amount = 5 /datum/chemical_reaction/tea name = "Tea" id = "tea" - result = "tea" + results = list("tea" = 5) required_reagents = list("teapowder" = 1, "water" = 5) - result_amount = 5 /datum/chemical_reaction/soysauce name = "Soy Sauce" id = "soysauce" - result = "soysauce" + results = list("soysauce" = 5) required_reagents = list("soymilk" = 4, "sacid" = 1) - result_amount = 5 /datum/chemical_reaction/corn_syrup name = "corn_syrup" id = "corn_syrup" - result = "corn_syrup" + results = list("corn_syrup" = 5) required_reagents = list("corn_starch" = 1, "sacid" = 1) - result_amount = 5 required_temp = 374 /datum/chemical_reaction/cheesewheel name = "Cheesewheel" id = "cheesewheel" - result = null required_reagents = list("milk" = 40) required_catalysts = list("enzyme" = 5) - result_amount = 1 /datum/chemical_reaction/cheesewheel/on_reaction(datum/reagents/holder, created_volume) var/location = get_turf(holder.my_atom) - new /obj/item/weapon/reagent_containers/food/snacks/store/cheesewheel(location) - return + for(var/i = 1, i <= created_volume, i++) + new /obj/item/weapon/reagent_containers/food/snacks/store/cheesewheel(location) /datum/chemical_reaction/synthmeat name = "synthmeat" id = "synthmeat" - result = null required_reagents = list("blood" = 5, "cryoxadone" = 1) - result_amount = 1 mob_react = 1 /datum/chemical_reaction/synthmeat/on_reaction(datum/reagents/holder, created_volume) var/location = get_turf(holder.my_atom) - new /obj/item/weapon/reagent_containers/food/snacks/meat/slab/synthmeat(location) - return + for(var/i = 1, i <= created_volume, i++) + new /obj/item/weapon/reagent_containers/food/snacks/meat/slab/synthmeat(location) /datum/chemical_reaction/hot_ramen name = "Hot Ramen" id = "hot_ramen" - result = "hot_ramen" + results = list("hot_ramen" = 3) required_reagents = list("water" = 1, "dry_ramen" = 3) - result_amount = 3 /datum/chemical_reaction/hell_ramen name = "Hell Ramen" id = "hell_ramen" - result = "hell_ramen" + results = list("hell_ramen" = 6) required_reagents = list("capsaicin" = 1, "hot_ramen" = 6) - result_amount = 6 - /datum/chemical_reaction/imitationcarpmeat name = "Imitation Carpmeat" id = "imitationcarpmeat" - result = null required_reagents = list("carpotoxin" = 5) - result_amount = 1 required_container = /obj/item/weapon/reagent_containers/food/snacks/tofu mix_message = "The mixture becomes similar to carp meat." /datum/chemical_reaction/imitationcarpmeat/on_reaction(datum/reagents/holder) - var/obj/item/weapon/reagent_containers/food/snacks/S = new /obj/item/weapon/reagent_containers/food/snacks/carpmeat/imitation - S.loc = get_turf(holder.my_atom) + var/location = get_turf(holder.my_atom) + new /obj/item/weapon/reagent_containers/food/snacks/carpmeat/imitation(location) if(holder && holder.my_atom) qdel(holder.my_atom) /datum/chemical_reaction/dough name = "Dough" id = "dough" - result = null required_reagents = list("water" = 10, "flour" = 15) - result_amount = 1 mix_message = "The ingredients form a dough." /datum/chemical_reaction/dough/on_reaction(datum/reagents/holder, created_volume) @@ -153,9 +136,7 @@ /datum/chemical_reaction/cakebatter name = "Cake Batter" id = "cakebatter" - result = null required_reagents = list("eggyolk" = 15, "flour" = 15, "sugar" = 5) - result_amount = 1 mix_message = "The ingredients form a cake batter." /datum/chemical_reaction/cakebatter/on_reaction(datum/reagents/holder, created_volume) @@ -170,14 +151,12 @@ /datum/chemical_reaction/ricebowl name = "Rice Bowl" id = "ricebowl" - result = null required_reagents = list("rice" = 10, "water" = 10) - result_amount = 1 required_container = /obj/item/weapon/reagent_containers/glass/bowl mix_message = "The rice absorbs the water." /datum/chemical_reaction/ricebowl/on_reaction(datum/reagents/holder) - var/obj/item/weapon/reagent_containers/food/snacks/S = new /obj/item/weapon/reagent_containers/food/snacks/salad/ricebowl - S.loc = get_turf(holder.my_atom) + var/location = get_turf(holder.my_atom) + new /obj/item/weapon/reagent_containers/food/snacks/salad/ricebowl(location) if(holder && holder.my_atom) qdel(holder.my_atom) diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_bread.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_bread.dm index 56649b1f9f..e35d5c89e6 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_bread.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_bread.dm @@ -11,7 +11,7 @@ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 3 ) result = /obj/item/weapon/reagent_containers/food/snacks/store/bread/meat - category = CAT_FOOD + category = CAT_BREAD /datum/crafting_recipe/food/xenomeatbread name = "Xenomeat bread" @@ -21,7 +21,7 @@ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 3 ) result = /obj/item/weapon/reagent_containers/food/snacks/store/bread/xenomeat - category = CAT_FOOD + category = CAT_BREAD /datum/crafting_recipe/food/spidermeatbread name = "Spidermeat bread" @@ -31,7 +31,7 @@ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 3 ) result = /obj/item/weapon/reagent_containers/food/snacks/store/bread/spidermeat - category = CAT_FOOD + category = CAT_BREAD /datum/crafting_recipe/food/banananutbread name = "Banana nut bread" @@ -42,7 +42,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/banana = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/store/bread/banana - category = CAT_FOOD + category = CAT_BREAD /datum/crafting_recipe/food/tofubread name = "Tofu bread" @@ -52,7 +52,7 @@ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 3 ) result = /obj/item/weapon/reagent_containers/food/snacks/store/bread/tofu - category = CAT_FOOD + category = CAT_BREAD /datum/crafting_recipe/food/creamcheesebread name = "Cream cheese bread" @@ -62,7 +62,7 @@ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 2 ) result = /obj/item/weapon/reagent_containers/food/snacks/store/bread/creamcheese - category = CAT_FOOD + category = CAT_BREAD /datum/crafting_recipe/food/mimanabread name = "Mimana bread" @@ -73,4 +73,4 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/banana/mime = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/store/bread/mimana - category = CAT_FOOD + category = CAT_BREAD diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.dm index 9db8cb7006..573574f4e9 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.dm @@ -14,7 +14,7 @@ /obj/item/weapon/reagent_containers/food/snacks/meat/steak/plain/human = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/burger/human - category = CAT_FOOD + category = CAT_BURGER /datum/crafting_recipe/food/burger name = "Burger" @@ -24,7 +24,7 @@ ) result = /obj/item/weapon/reagent_containers/food/snacks/burger/plain - category = CAT_FOOD + category = CAT_BURGER /datum/crafting_recipe/food/corgiburger name = "Corgi burger" @@ -34,7 +34,7 @@ ) result = /obj/item/weapon/reagent_containers/food/snacks/burger/corgi - category = CAT_FOOD + category = CAT_BURGER /datum/crafting_recipe/food/appendixburger name = "Appendix burger" @@ -43,7 +43,7 @@ /obj/item/weapon/reagent_containers/food/snacks/bun = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/burger/appendix - category = CAT_FOOD + category = CAT_BURGER /datum/crafting_recipe/food/brainburger name = "Brain burger" @@ -52,7 +52,7 @@ /obj/item/weapon/reagent_containers/food/snacks/bun = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/burger/brain - category = CAT_FOOD + category = CAT_BURGER /datum/crafting_recipe/food/xenoburger name = "Xeno burger" @@ -61,7 +61,7 @@ /obj/item/weapon/reagent_containers/food/snacks/bun = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/burger/xeno - category = CAT_FOOD + category = CAT_BURGER /datum/crafting_recipe/food/bearger name = "Bearger" @@ -70,7 +70,7 @@ /obj/item/weapon/reagent_containers/food/snacks/bun = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/burger/bearger - category = CAT_FOOD + category = CAT_BURGER /datum/crafting_recipe/food/fishburger name = "Fish burger" @@ -79,7 +79,7 @@ /obj/item/weapon/reagent_containers/food/snacks/bun = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/burger/fish - category = CAT_FOOD + category = CAT_BURGER /datum/crafting_recipe/food/tofuburger name = "Tofu burger" @@ -88,7 +88,7 @@ /obj/item/weapon/reagent_containers/food/snacks/bun = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/burger/tofu - category = CAT_FOOD + category = CAT_BURGER /datum/crafting_recipe/food/ghostburger name = "Ghost burger" @@ -97,7 +97,7 @@ /obj/item/weapon/reagent_containers/food/snacks/bun = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/burger/ghost - category = CAT_FOOD + category = CAT_BURGER /datum/crafting_recipe/food/clownburger name = "Clown burger" @@ -106,7 +106,7 @@ /obj/item/weapon/reagent_containers/food/snacks/bun = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/burger/clown - category = CAT_FOOD + category = CAT_BURGER /datum/crafting_recipe/food/mimeburger name = "Mime burger" @@ -115,7 +115,7 @@ /obj/item/weapon/reagent_containers/food/snacks/bun = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/burger/mime - category = CAT_FOOD + category = CAT_BURGER /datum/crafting_recipe/food/redburger name = "Red burger" @@ -125,7 +125,7 @@ /obj/item/weapon/reagent_containers/food/snacks/bun = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/burger/red - category = CAT_FOOD + category = CAT_BURGER /datum/crafting_recipe/food/orangeburger name = "Orange burger" @@ -135,7 +135,7 @@ /obj/item/weapon/reagent_containers/food/snacks/bun = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/burger/orange - category = CAT_FOOD + category = CAT_BURGER /datum/crafting_recipe/food/yellowburger name = "Yellow burger" @@ -145,7 +145,7 @@ /obj/item/weapon/reagent_containers/food/snacks/bun = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/burger/yellow - category = CAT_FOOD + category = CAT_BURGER /datum/crafting_recipe/food/greenburger name = "Green burger" @@ -155,7 +155,7 @@ /obj/item/weapon/reagent_containers/food/snacks/bun = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/burger/green - category = CAT_FOOD + category = CAT_BURGER /datum/crafting_recipe/food/blueburger name = "Blue burger" @@ -165,7 +165,7 @@ /obj/item/weapon/reagent_containers/food/snacks/bun = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/burger/blue - category = CAT_FOOD + category = CAT_BURGER /datum/crafting_recipe/food/purpleburger name = "Purple burger" @@ -175,7 +175,7 @@ /obj/item/weapon/reagent_containers/food/snacks/bun = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/burger/purple - category = CAT_FOOD + category = CAT_BURGER /datum/crafting_recipe/food/spellburger name = "Spell burger" @@ -183,7 +183,7 @@ /obj/item/clothing/head/wizard/fake = 1, ) result = /obj/item/weapon/reagent_containers/food/snacks/burger/spell - category = CAT_FOOD + category = CAT_BURGER /datum/crafting_recipe/food/spellburger2 name = "Spell burger" @@ -192,7 +192,7 @@ /obj/item/weapon/reagent_containers/food/snacks/bun = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/burger/spell - category = CAT_FOOD + category = CAT_BURGER /datum/crafting_recipe/food/bigbiteburger name = "Big bite burger" @@ -201,7 +201,7 @@ /obj/item/weapon/reagent_containers/food/snacks/bun = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/burger/bigbite - category = CAT_FOOD + category = CAT_BURGER /datum/crafting_recipe/food/superbiteburger name = "Super bite burger" @@ -216,7 +216,7 @@ ) result = /obj/item/weapon/reagent_containers/food/snacks/burger/superbite - category = CAT_FOOD + category = CAT_BURGER /datum/crafting_recipe/food/slimeburger name = "Jelly burger" @@ -225,7 +225,7 @@ /obj/item/weapon/reagent_containers/food/snacks/bun = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/burger/jelly/slime - category = CAT_FOOD + category = CAT_BURGER /datum/crafting_recipe/food/jellyburger name = "Jelly burger" @@ -234,7 +234,7 @@ /obj/item/weapon/reagent_containers/food/snacks/bun = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/burger/jelly/cherry - category = CAT_FOOD + category = CAT_BURGER /datum/crafting_recipe/food/fivealarmburger name = "Five alarm burger" @@ -243,7 +243,7 @@ /obj/item/weapon/reagent_containers/food/snacks/bun = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/burger/fivealarm - category = CAT_FOOD + category = CAT_BURGER /datum/crafting_recipe/food/ratburger name = "Rat burger" @@ -252,7 +252,16 @@ /obj/item/weapon/reagent_containers/food/snacks/bun = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/burger/rat - category = CAT_FOOD + category = CAT_BURGER + +/datum/crafting_recipe/food/baseballburger + name = "Home run baseball burger" + reqs = list( + /obj/item/weapon/melee/baseball_bat = 1, + /obj/item/weapon/reagent_containers/food/snacks/bun = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/burger/baseball + category = CAT_BURGER /datum/crafting_recipe/food/baconburger name = "Bacon Burger" @@ -263,4 +272,4 @@ ) result = /obj/item/weapon/reagent_containers/food/snacks/burger/baconburger - category = CAT_FOOD \ No newline at end of file + category = CAT_BURGER diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.dm index eac0eeb212..439db2986b 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.dm @@ -10,7 +10,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/carrot = 2 ) result = /obj/item/weapon/reagent_containers/food/snacks/store/cake/carrot - category = CAT_FOOD + category = CAT_CAKE /datum/crafting_recipe/food/cheesecake name = "Cheese cake" @@ -19,7 +19,7 @@ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 2 ) result = /obj/item/weapon/reagent_containers/food/snacks/store/cake/cheese - category = CAT_FOOD + category = CAT_CAKE /datum/crafting_recipe/food/applecake name = "Apple cake" @@ -28,7 +28,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/apple = 2 ) result = /obj/item/weapon/reagent_containers/food/snacks/store/cake/apple - category = CAT_FOOD + category = CAT_CAKE /datum/crafting_recipe/food/orangecake name = "Orange cake" @@ -37,7 +37,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/citrus/orange = 2 ) result = /obj/item/weapon/reagent_containers/food/snacks/store/cake/orange - category = CAT_FOOD + category = CAT_CAKE /datum/crafting_recipe/food/limecake name = "Lime cake" @@ -46,7 +46,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/citrus/lime = 2 ) result = /obj/item/weapon/reagent_containers/food/snacks/store/cake/lime - category = CAT_FOOD + category = CAT_CAKE /datum/crafting_recipe/food/lemoncake name = "Lemon cake" @@ -55,7 +55,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/citrus/lemon = 2 ) result = /obj/item/weapon/reagent_containers/food/snacks/store/cake/lemon - category = CAT_FOOD + category = CAT_CAKE /datum/crafting_recipe/food/chocolatecake name = "Chocolate cake" @@ -64,7 +64,7 @@ /obj/item/weapon/reagent_containers/food/snacks/chocolatebar = 2 ) result = /obj/item/weapon/reagent_containers/food/snacks/store/cake/chocolate - category = CAT_FOOD + category = CAT_CAKE /datum/crafting_recipe/food/birthdaycake name = "Birthday cake" @@ -73,7 +73,7 @@ /obj/item/weapon/reagent_containers/food/snacks/store/cake/plain = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/store/cake/birthday - category = CAT_FOOD + category = CAT_CAKE /datum/crafting_recipe/food/braincake name = "Brain cake" @@ -82,7 +82,7 @@ /obj/item/weapon/reagent_containers/food/snacks/store/cake/plain = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/store/cake/brain - category = CAT_FOOD + category = CAT_CAKE /datum/crafting_recipe/food/slimecake name = "Slime cake" @@ -91,7 +91,7 @@ /obj/item/weapon/reagent_containers/food/snacks/store/cake/plain = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/store/cake/slimecake - category = CAT_FOOD + category = CAT_CAKE /datum/crafting_recipe/food/pumpkinspicecake name = "Pumpkin spice cake" @@ -100,7 +100,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/pumpkin = 2 ) result = /obj/item/weapon/reagent_containers/food/snacks/store/cake/pumpkinspice - category = CAT_FOOD + category = CAT_CAKE /datum/crafting_recipe/food/cak name = "Living cat/cake hybrid" @@ -111,7 +111,7 @@ /obj/item/weapon/reagent_containers/food/snacks/meat/slab = 3, /datum/reagent/blood = 30, /datum/reagent/consumable/sprinkles = 5, - /datum/reagent/toxin/teslium = 1 //To shock the whole thing into life + /datum/reagent/teslium = 1 //To shock the whole thing into life ) result = /mob/living/simple_animal/pet/cat/cak - category = CAT_FOOD //Cat! Haha, get it? CAT? GET IT??? + category = CAT_CAKE //Cat! Haha, get it? CAT? GET IT??? diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_egg.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_egg.dm index b01f794fc2..c03fbe4710 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_egg.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_egg.dm @@ -11,7 +11,7 @@ /obj/item/weapon/reagent_containers/food/snacks/boiledegg = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/friedegg - category = CAT_FOOD + category = CAT_EGG /datum/crafting_recipe/food/omelette name = "omelette" @@ -20,7 +20,7 @@ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 2 ) result = /obj/item/weapon/reagent_containers/food/snacks/omelette - category = CAT_FOOD + category = CAT_EGG /datum/crafting_recipe/food/chocolateegg name = "Chocolate egg" @@ -29,7 +29,7 @@ /obj/item/weapon/reagent_containers/food/snacks/chocolatebar = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/chocolateegg - category = CAT_FOOD + category = CAT_EGG /datum/crafting_recipe/food/eggsbenedict name = "Eggs benedict" @@ -39,4 +39,4 @@ /obj/item/weapon/reagent_containers/food/snacks/breadslice/plain = 1, ) result = /obj/item/weapon/reagent_containers/food/snacks/benedict - category = CAT_FOOD + category = CAT_EGG diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm index f0432c8028..d2245a0ecd 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm @@ -9,7 +9,7 @@ /obj/item/weapon/reagent_containers/food/snacks/meat/steak/plain/human = 2 ) result = /obj/item/weapon/reagent_containers/food/snacks/kebab/human - category = CAT_FOOD + category = CAT_MEAT /datum/crafting_recipe/food/kebab name = "Kebab" @@ -18,7 +18,7 @@ /obj/item/weapon/reagent_containers/food/snacks/meat/steak = 2 ) result = /obj/item/weapon/reagent_containers/food/snacks/kebab/monkey - category = CAT_FOOD + category = CAT_MEAT /datum/crafting_recipe/food/tofukebab name = "Tofu kebab" @@ -27,7 +27,7 @@ /obj/item/weapon/reagent_containers/food/snacks/tofu = 2 ) result = /obj/item/weapon/reagent_containers/food/snacks/kebab/tofu - category = CAT_FOOD + category = CAT_MEAT /datum/crafting_recipe/food/tailkebab name = "Lizard tail kebab" @@ -36,7 +36,7 @@ /obj/item/severedtail = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/kebab/tail - category = CAT_FOOD + category = CAT_MEAT // see code/module/crafting/table.dm @@ -50,7 +50,7 @@ /obj/item/weapon/reagent_containers/food/snacks/carpmeat = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/cubancarp - category = CAT_FOOD + category = CAT_MEAT /datum/crafting_recipe/food/fishandchips name = "Fish and chips" @@ -59,7 +59,7 @@ /obj/item/weapon/reagent_containers/food/snacks/carpmeat = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/fishandchips - category = CAT_FOOD + category = CAT_MEAT /datum/crafting_recipe/food/fishfingers name = "Fish fingers" @@ -69,7 +69,7 @@ /obj/item/weapon/reagent_containers/food/snacks/carpmeat = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/fishfingers - category = CAT_FOOD + category = CAT_MEAT /datum/crafting_recipe/food/sashimi name = "Sashimi" @@ -79,7 +79,7 @@ /obj/item/weapon/reagent_containers/food/snacks/carpmeat = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/sashimi - category = CAT_FOOD + category = CAT_MEAT ////////////////////////////////////////////////MR SPIDER//////////////////////////////////////////////// @@ -91,7 +91,7 @@ /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet/spider = 2 ) result = /obj/item/weapon/reagent_containers/food/snacks/spidereggsham - category = CAT_FOOD + category = CAT_MEAT ////////////////////////////////////////////////MISC RECIPE's//////////////////////////////////////////////// @@ -103,7 +103,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/cabbage = 2 ) result = /obj/item/weapon/reagent_containers/food/snacks/cornedbeef - category = CAT_FOOD + category = CAT_MEAT /datum/crafting_recipe/food/bearsteak name = "Filet migrawr" @@ -113,7 +113,7 @@ ) tools = list(/obj/item/weapon/lighter) result = /obj/item/weapon/reagent_containers/food/snacks/bearsteak - category = CAT_FOOD + category = CAT_MEAT /datum/crafting_recipe/food/enchiladas name = "Enchiladas" @@ -123,7 +123,7 @@ /obj/item/weapon/reagent_containers/food/snacks/tortilla = 2 ) result = /obj/item/weapon/reagent_containers/food/snacks/enchiladas - category = CAT_FOOD + category = CAT_MEAT /datum/crafting_recipe/food/stewedsoymeat name = "Stewed soymeat" @@ -133,7 +133,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/tomato = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/stewedsoymeat - category = CAT_FOOD + category = CAT_MEAT /datum/crafting_recipe/food/sausage name = "Sausage" @@ -142,7 +142,7 @@ /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet = 2 ) result = /obj/item/weapon/reagent_containers/food/snacks/sausage - category = CAT_FOOD + category = CAT_MEAT /datum/crafting_recipe/food/nugget name = "Chicken nugget" @@ -150,7 +150,7 @@ /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/nugget - category = CAT_FOOD + category = CAT_MEAT /datum/crafting_recipe/food/rawkhinkali name = "Raw Khinkali" @@ -159,4 +159,4 @@ /obj/item/weapon/reagent_containers/food/snacks/faggot = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/rawkhinkali - category = CAT_FOOD + category = CAT_MEAT diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm index 485e1552d1..a3bb0afa9a 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm @@ -10,7 +10,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/apple = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/candiedapple - category = CAT_FOOD + category = CAT_MISCFOOD /datum/crafting_recipe/food/chococoin name = "Choco coin" @@ -19,7 +19,7 @@ /obj/item/weapon/reagent_containers/food/snacks/chocolatebar = 1, ) result = /obj/item/weapon/reagent_containers/food/snacks/chococoin - category = CAT_FOOD + category = CAT_MISCFOOD /datum/crafting_recipe/food/fudgedice name = "Fudge dice" @@ -28,7 +28,7 @@ /obj/item/weapon/reagent_containers/food/snacks/chocolatebar = 1, ) result = /obj/item/weapon/reagent_containers/food/snacks/fudgedice - category = CAT_FOOD + category = CAT_MISCFOOD /datum/crafting_recipe/food/chocoorange name = "Choco orange" @@ -37,7 +37,7 @@ /obj/item/weapon/reagent_containers/food/snacks/chocolatebar = 1, ) result = /obj/item/weapon/reagent_containers/food/snacks/chocoorange - category = CAT_FOOD + category = CAT_MISCFOOD /datum/crafting_recipe/food/loadedbakedpotato name = "Loaded baked potato" @@ -47,7 +47,7 @@ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/loadedbakedpotato - category = CAT_FOOD + category = CAT_MISCFOOD /datum/crafting_recipe/food/cheesyfries name = "Cheesy fries" @@ -56,7 +56,7 @@ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/cheesyfries - category = CAT_FOOD + category = CAT_MISCFOOD /datum/crafting_recipe/food/wrap name = "Wrap" @@ -65,7 +65,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/cabbage = 1, ) result = /obj/item/weapon/reagent_containers/food/snacks/eggwrap - category = CAT_FOOD + category = CAT_MISCFOOD /datum/crafting_recipe/food/beans name = "Beans" @@ -74,7 +74,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/soybeans = 2 ) result = /obj/item/weapon/reagent_containers/food/snacks/beans - category = CAT_FOOD + category = CAT_MISCFOOD /datum/crafting_recipe/food/eggplantparm name ="Eggplant parmigiana" @@ -83,7 +83,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/eggplant = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/eggplantparm - category = CAT_FOOD + category = CAT_MISCFOOD /datum/crafting_recipe/food/baguette name = "Baguette" @@ -93,7 +93,7 @@ /obj/item/weapon/reagent_containers/food/snacks/pastrybase = 2 ) result = /obj/item/weapon/reagent_containers/food/snacks/baguette - category = CAT_FOOD + category = CAT_MISCFOOD ////////////////////////////////////////////////TOAST//////////////////////////////////////////////// @@ -104,7 +104,7 @@ /obj/item/weapon/reagent_containers/food/snacks/breadslice/plain = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/jelliedtoast/slime - category = CAT_FOOD + category = CAT_MISCFOOD /datum/crafting_recipe/food/jelliedyoast name = "Jellied toast" @@ -113,7 +113,7 @@ /obj/item/weapon/reagent_containers/food/snacks/breadslice/plain = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/jelliedtoast/cherry - category = CAT_FOOD + category = CAT_MISCFOOD /datum/crafting_recipe/food/twobread name = "Two bread" @@ -122,7 +122,7 @@ /obj/item/weapon/reagent_containers/food/snacks/breadslice/plain = 2 ) result = /obj/item/weapon/reagent_containers/food/snacks/twobread - category = CAT_FOOD + category = CAT_MISCFOOD /datum/crafting_recipe/food/burrito name ="Burrito" @@ -131,7 +131,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/soybeans = 2 ) result = /obj/item/weapon/reagent_containers/food/snacks/burrito - category = CAT_FOOD + category = CAT_MISCFOOD /datum/crafting_recipe/food/cheesyburrito name ="Cheesy burrito" @@ -141,7 +141,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/soybeans = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/cheesyburrito - category = CAT_FOOD + category = CAT_MISCFOOD /datum/crafting_recipe/food/carneburrito name ="Carne de asada burrito" @@ -151,7 +151,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/soybeans = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/carneburrito - category = CAT_FOOD + category = CAT_MISCFOOD /datum/crafting_recipe/food/fuegoburrito name ="Fuego plasma burrito" @@ -161,7 +161,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/soybeans = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/fuegoburrito - category = CAT_FOOD + category = CAT_MISCFOOD /datum/crafting_recipe/food/melonfruitbowl name ="Melon fruit bowl" @@ -174,7 +174,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/melonfruitbowl - category = CAT_FOOD + category = CAT_MISCFOOD /datum/crafting_recipe/food/spacefreezy name ="Space freezy" @@ -184,7 +184,7 @@ /obj/item/weapon/reagent_containers/food/snacks/icecream = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/spacefreezy - category = CAT_FOOD + category = CAT_MISCFOOD /datum/crafting_recipe/food/sundae name ="Sundae" @@ -195,7 +195,7 @@ /obj/item/weapon/reagent_containers/food/snacks/icecream = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/sundae - category = CAT_FOOD + category = CAT_MISCFOOD /datum/crafting_recipe/food/honkdae name ="Honkdae" @@ -207,7 +207,7 @@ /obj/item/weapon/reagent_containers/food/snacks/icecream = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/honkdae - category = CAT_FOOD + category = CAT_MISCFOOD /datum/crafting_recipe/food/nachos name ="Nachos" @@ -216,7 +216,7 @@ /obj/item/weapon/reagent_containers/food/snacks/tortilla = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/nachos - category = CAT_FOOD + category = CAT_MISCFOOD /datum/crafting_recipe/food/cheesynachos name ="Cheesy nachos" @@ -226,7 +226,7 @@ /obj/item/weapon/reagent_containers/food/snacks/tortilla = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/cheesynachos - category = CAT_FOOD + category = CAT_MISCFOOD /datum/crafting_recipe/food/cubannachos name ="Cuban nachos" @@ -236,7 +236,7 @@ /obj/item/weapon/reagent_containers/food/snacks/tortilla = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/cubannachos - category = CAT_FOOD + category = CAT_MISCFOOD /datum/crafting_recipe/food/melonkeg name ="Melon keg" @@ -247,7 +247,7 @@ ) parts = list(/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka = 1) result = /obj/item/weapon/reagent_containers/food/snacks/melonkeg - category = CAT_FOOD + category = CAT_MISCFOOD /datum/crafting_recipe/food/honeybar name = "Honey nut bar" @@ -256,10 +256,10 @@ /datum/reagent/consumable/honey = 5 ) result = /obj/item/weapon/reagent_containers/food/snacks/honeybar - category = CAT_FOOD + category = CAT_MISCFOOD -/datum/crafting_recipe/stuffedlegion +/datum/crafting_recipe/food/stuffedlegion name = "Stuffed legion" time = 40 reqs = list( @@ -269,9 +269,10 @@ /datum/reagent/consumable/capsaicin = 2 ) result = /obj/item/weapon/reagent_containers/food/snacks/stuffedlegion - category = CAT_FOOD + category = CAT_MISCFOOD -/datum/crafting_recipe/lizardwine + +/datum/crafting_recipe/food/lizardwine name = "Lizard wine" time = 40 reqs = list( @@ -279,4 +280,39 @@ /datum/reagent/consumable/ethanol = 100 ) result = /obj/item/weapon/reagent_containers/food/drinks/bottle/lizardwine - category = CAT_FOOD \ No newline at end of file + category = CAT_MISCFOOD + + +/datum/crafting_recipe/food/powercrepe + name = "Powercrepe" + time = 40 + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/flatdough = 1, + /datum/reagent/consumable/milk = 1, + /datum/reagent/consumable/cherryjelly = 5, + /obj/item/weapon/stock_parts/cell/super =1, + /obj/item/weapon/melee/sabre = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/powercrepe + category = CAT_MISCFOOD + +/datum/crafting_recipe/food/taco + name ="Classic Taco" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/tortilla = 1, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 1, + /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/cabbage = 1, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/taco + category = CAT_MISCFOOD + +/datum/crafting_recipe/food/tacoplain + name ="Plain Taco" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/tortilla = 1, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 1, + /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet = 1, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/taco/plain + category = CAT_MISCFOOD \ No newline at end of file diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm index b0313fc0b2..fd943379e0 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm @@ -11,7 +11,7 @@ /obj/item/weapon/reagent_containers/food/snacks/pastrybase = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/donut/chaos - category = CAT_FOOD + category = CAT_PASTRY /datum/crafting_recipe/food/donut time = 15 @@ -21,7 +21,7 @@ /obj/item/weapon/reagent_containers/food/snacks/pastrybase = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/donut - category = CAT_FOOD + category = CAT_PASTRY /datum/crafting_recipe/food/jellydonut name = "Jelly donut" @@ -30,7 +30,7 @@ /obj/item/weapon/reagent_containers/food/snacks/pastrybase = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/donut/jelly - category = CAT_FOOD + category = CAT_PASTRY /datum/crafting_recipe/food/cherryjellydonut name = "Cherry jelly donut" @@ -39,7 +39,7 @@ /obj/item/weapon/reagent_containers/food/snacks/pastrybase = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/donut/jelly/cherryjelly - category = CAT_FOOD + category = CAT_PASTRY /datum/crafting_recipe/food/slimejellydonut name = "Slime jelly donut" @@ -48,7 +48,7 @@ /obj/item/weapon/reagent_containers/food/snacks/pastrybase = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/donut/jelly/slimejelly - category = CAT_FOOD + category = CAT_PASTRY ////////////////////////////////////////////////WAFFLES//////////////////////////////////////////////// @@ -59,7 +59,7 @@ /obj/item/weapon/reagent_containers/food/snacks/pastrybase = 2 ) result = /obj/item/weapon/reagent_containers/food/snacks/waffles - category = CAT_FOOD + category = CAT_PASTRY /datum/crafting_recipe/food/soylenviridians @@ -69,7 +69,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/soybeans = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/soylenviridians - category = CAT_FOOD + category = CAT_PASTRY /datum/crafting_recipe/food/soylentgreen name = "Soylent green" @@ -78,7 +78,7 @@ /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human = 2 ) result = /obj/item/weapon/reagent_containers/food/snacks/soylentgreen - category = CAT_FOOD + category = CAT_PASTRY /datum/crafting_recipe/food/rofflewaffles @@ -88,7 +88,7 @@ /obj/item/weapon/reagent_containers/food/snacks/pastrybase = 2 ) result = /obj/item/weapon/reagent_containers/food/snacks/rofflewaffles - category = CAT_FOOD + category = CAT_PASTRY ////////////////////////////////////////////////DONKPOCCKETS//////////////////////////////////////////////// @@ -100,8 +100,17 @@ /obj/item/weapon/reagent_containers/food/snacks/faggot = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/donkpocket - category = CAT_FOOD + category = CAT_PASTRY +/datum/crafting_recipe/food/dankpocket + time = 15 + name = "Dankpocket" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/pastrybase = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/cannabis = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/dankpocket + category = CAT_PASTRY ////////////////////////////////////////////////MUFFINS//////////////////////////////////////////////// @@ -113,7 +122,7 @@ /obj/item/weapon/reagent_containers/food/snacks/pastrybase = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/muffin - category = CAT_FOOD + category = CAT_PASTRY /datum/crafting_recipe/food/berrymuffin name = "Berry muffin" @@ -123,7 +132,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/berries = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/muffin/berry - category = CAT_FOOD + category = CAT_PASTRY /datum/crafting_recipe/food/booberrymuffin name = "Booberry muffin" @@ -134,7 +143,7 @@ /obj/item/weapon/ectoplasm = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/muffin/booberry - category = CAT_FOOD + category = CAT_PASTRY /datum/crafting_recipe/food/chawanmushi name = "Chawanmushi" @@ -145,7 +154,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/chanterelle = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/chawanmushi - category = CAT_FOOD + category = CAT_PASTRY ////////////////////////////////////////////OTHER//////////////////////////////////////////// @@ -157,7 +166,7 @@ /obj/item/weapon/reagent_containers/food/snacks/sausage = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/hotdog - category = CAT_FOOD + category = CAT_PASTRY /datum/crafting_recipe/food/meatbun name = "Meat bun" @@ -168,7 +177,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/cabbage = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/meatbun - category = CAT_FOOD + category = CAT_PASTRY /datum/crafting_recipe/food/khachapuri name = "Khachapuri" @@ -178,7 +187,7 @@ /obj/item/weapon/reagent_containers/food/snacks/store/bread/plain = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/khachapuri - category = CAT_FOOD + category = CAT_PASTRY /datum/crafting_recipe/food/sugarcookie time = 15 @@ -188,7 +197,7 @@ /obj/item/weapon/reagent_containers/food/snacks/pastrybase = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/sugarcookie - category = CAT_FOOD + category = CAT_PASTRY /datum/crafting_recipe/food/fortunecookie time = 15 @@ -201,7 +210,7 @@ /obj/item/weapon/paper = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/fortunecookie - category = CAT_FOOD + category = CAT_PASTRY /datum/crafting_recipe/food/poppypretzel time = 15 @@ -211,7 +220,7 @@ /obj/item/weapon/reagent_containers/food/snacks/pastrybase = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/poppypretzel - category = CAT_FOOD + category = CAT_PASTRY /datum/crafting_recipe/food/plumphelmetbiscuit time = 15 @@ -221,7 +230,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/plumphelmet = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/plumphelmetbiscuit - category = CAT_FOOD + category = CAT_PASTRY /datum/crafting_recipe/food/cracker time = 15 @@ -231,7 +240,7 @@ /obj/item/weapon/reagent_containers/food/snacks/pastrybase = 1, ) result = /obj/item/weapon/reagent_containers/food/snacks/cracker - category = CAT_FOOD + category = CAT_PASTRY /datum/crafting_recipe/food/chococornet name = "Choco cornet" @@ -241,7 +250,7 @@ /obj/item/weapon/reagent_containers/food/snacks/chocolatebar = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/chococornet - category = CAT_FOOD + category = CAT_PASTRY /datum/crafting_recipe/food/oatmealcookie name = "Oatmeal cookie" @@ -259,7 +268,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/oat = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/raisincookie - category = CAT_FOOD + category = CAT_PASTRY /datum/crafting_recipe/food/cherrycupcake name = "Cherry cupcake" @@ -268,7 +277,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/cherries = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/cherrycupcake - category = CAT_FOOD + category = CAT_PASTRY /datum/crafting_recipe/food/bluecherrycupcake name = "Blue cherry cupcake" @@ -277,7 +286,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/bluecherries = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/bluecherrycupcake - category = CAT_FOOD + category = CAT_PASTRY /datum/crafting_recipe/food/honeybun name = "Honey bun" @@ -286,4 +295,4 @@ /datum/reagent/consumable/honey = 5 ) result = /obj/item/weapon/reagent_containers/food/snacks/honeybun - category = CAT_FOOD \ No newline at end of file + category = CAT_PASTRY diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pie.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pie.dm index f6e938ae47..df47c64de7 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pie.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pie.dm @@ -11,7 +11,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/banana = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/pie/cream - category = CAT_FOOD + category = CAT_PIE /datum/crafting_recipe/food/meatpie name = "Meat pie" @@ -22,7 +22,7 @@ /obj/item/weapon/reagent_containers/food/snacks/meat/steak/plain = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/pie/meatpie - category = CAT_FOOD + category = CAT_PIE /datum/crafting_recipe/food/tofupie name = "Tofu pie" @@ -31,7 +31,7 @@ /obj/item/weapon/reagent_containers/food/snacks/tofu = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/pie/tofupie - category = CAT_FOOD + category = CAT_PIE /datum/crafting_recipe/food/xenopie name = "Xeno pie" @@ -40,7 +40,7 @@ /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet/xeno = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/pie/xemeatpie - category = CAT_FOOD + category = CAT_PIE /datum/crafting_recipe/food/cherrypie name = "Cherry pie" @@ -49,7 +49,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/cherries = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/pie/cherrypie - category = CAT_FOOD + category = CAT_PIE /datum/crafting_recipe/food/berryclafoutis name = "Berry clafoutis" @@ -58,7 +58,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/berries = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/pie/berryclafoutis - category = CAT_FOOD + category = CAT_PIE /datum/crafting_recipe/food/bearypie name = "Beary Pie" @@ -68,7 +68,7 @@ /obj/item/weapon/reagent_containers/food/snacks/meat/steak/bear = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/pie/bearypie - category = CAT_FOOD + category = CAT_PIE /datum/crafting_recipe/food/amanitapie name = "Amanita pie" @@ -77,7 +77,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/amanita = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/pie/amanita_pie - category = CAT_FOOD + category = CAT_PIE /datum/crafting_recipe/food/plumppie name = "Plump pie" @@ -86,7 +86,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/plumphelmet = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/pie/plump_pie - category = CAT_FOOD + category = CAT_PIE /datum/crafting_recipe/food/applepie name = "Apple pie" @@ -95,7 +95,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/apple = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/pie/applepie - category = CAT_FOOD + category = CAT_PIE /datum/crafting_recipe/food/pumpkinpie name = "Pumpkin pie" @@ -106,7 +106,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/pumpkin = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/pie/pumpkinpie - category = CAT_FOOD + category = CAT_PIE /datum/crafting_recipe/food/goldenappletart name = "Golden apple tart" @@ -117,7 +117,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/apple/gold = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/pie/appletart - category = CAT_FOOD + category = CAT_PIE /datum/crafting_recipe/food/grapetart name = "Grape tart" @@ -128,7 +128,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/grapes = 3 ) result = /obj/item/weapon/reagent_containers/food/snacks/pie/grapetart - category = CAT_FOOD + category = CAT_PIE /datum/crafting_recipe/food/blumpkinpie name = "Blumpkin pie" @@ -139,7 +139,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/blumpkin = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/pie/blumpkinpie - category = CAT_FOOD + category = CAT_PIE /datum/crafting_recipe/food/dulcedebatata name = "Dulce de batata" @@ -149,7 +149,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/potato/sweet = 2 ) result = /obj/item/weapon/reagent_containers/food/snacks/pie/dulcedebatata - category = CAT_FOOD + category = CAT_PIE /datum/crafting_recipe/food/frostypie name = "Frosty pie" @@ -158,4 +158,4 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/bluecherries = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/pie/frostypie - category = CAT_FOOD \ No newline at end of file + category = CAT_PIE diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pizza.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pizza.dm index f7627e2e07..8bb73ad7c8 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pizza.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pizza.dm @@ -11,7 +11,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/tomato = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/pizza/margherita - category = CAT_FOOD + category = CAT_PIZZA /datum/crafting_recipe/food/meatpizza name = "Meat pizza" @@ -22,7 +22,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/tomato = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/pizza/meat - category = CAT_FOOD + category = CAT_PIZZA /datum/crafting_recipe/food/mushroompizza name = "Mushroom pizza" @@ -31,7 +31,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom = 5 ) result = /obj/item/weapon/reagent_containers/food/snacks/pizza/mushroom - category = CAT_FOOD + category = CAT_PIZZA /datum/crafting_recipe/food/vegetablepizza name = "Vegetable pizza" @@ -43,7 +43,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/tomato = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/pizza/vegetable - category = CAT_FOOD + category = CAT_PIZZA /datum/crafting_recipe/food/donpocketpizza name = "Donkpocket pizza" @@ -54,7 +54,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/tomato = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/pizza/donkpocket - category = CAT_FOOD + category = CAT_PIZZA /datum/crafting_recipe/food/dankpizza name = "Dank pizza" @@ -65,7 +65,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/tomato = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/pizza/dank - category = CAT_FOOD + category = CAT_PIZZA /datum/crafting_recipe/food/sassysagepizza name = "Sassysage pizza" @@ -76,4 +76,4 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/tomato = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/pizza/sassysage - category = CAT_FOOD \ No newline at end of file + category = CAT_PIZZA diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm index fc4633253f..d60fc34083 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm @@ -11,7 +11,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/apple = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/salad/herbsalad - category = CAT_FOOD + category = CAT_SALAD /datum/crafting_recipe/food/aesirsalad name = "Aesir salad" @@ -21,7 +21,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/apple/gold = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/salad/aesirsalad - category = CAT_FOOD + category = CAT_SALAD /datum/crafting_recipe/food/validsalad name = "Valid salad" @@ -32,7 +32,7 @@ /obj/item/weapon/reagent_containers/food/snacks/faggot = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/salad/validsalad - category = CAT_FOOD + category = CAT_SALAD /datum/crafting_recipe/food/monkeysdelight name = "Monkeys delight" @@ -45,7 +45,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/banana = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/soup/monkeysdelight - category = CAT_FOOD + category = CAT_SALAD /datum/crafting_recipe/food/oatmeal name = "Oatmeal" @@ -55,7 +55,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/oat = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/salad/oatmeal - category = CAT_FOOD + category = CAT_SALAD /datum/crafting_recipe/food/fruitsalad name = "Fruit salad" @@ -68,7 +68,7 @@ ) result = /obj/item/weapon/reagent_containers/food/snacks/salad/fruit - category = CAT_FOOD + category = CAT_SALAD /datum/crafting_recipe/food/junglesalad name = "Jungle salad" @@ -81,7 +81,7 @@ ) result = /obj/item/weapon/reagent_containers/food/snacks/salad/jungle - category = CAT_FOOD + category = CAT_SALAD /datum/crafting_recipe/food/citrusdelight name = "Citrus delight" @@ -93,7 +93,7 @@ ) result = /obj/item/weapon/reagent_containers/food/snacks/salad/citrusdelight - category = CAT_FOOD + category = CAT_SALAD /datum/crafting_recipe/food/ricepork name = "Rice and pork" @@ -102,7 +102,7 @@ /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet = 2 ) result = /obj/item/weapon/reagent_containers/food/snacks/salad/ricepork - category = CAT_FOOD + category = CAT_SALAD /datum/crafting_recipe/food/eggbowl name = "Egg bowl" @@ -113,7 +113,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/corn = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/salad/eggbowl - category = CAT_FOOD + category = CAT_SALAD /datum/crafting_recipe/food/ricepudding name = "Rice pudding" @@ -123,4 +123,4 @@ /obj/item/weapon/reagent_containers/food/snacks/salad/boiledrice = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/salad/ricepudding - category = CAT_FOOD + category = CAT_SALAD diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.dm index 630430e2d3..3880dbdeca 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.dm @@ -14,7 +14,7 @@ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/sandwich - category = CAT_FOOD + category = CAT_SANDWICH /datum/crafting_recipe/food/grilledcheesesandwich name = "Grilled cheese sandwich" @@ -23,7 +23,7 @@ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 2 ) result = /obj/item/weapon/reagent_containers/food/snacks/grilledcheese - category = CAT_FOOD + category = CAT_SANDWICH /datum/crafting_recipe/food/slimesandwich name = "Jelly sandwich" @@ -32,7 +32,7 @@ /obj/item/weapon/reagent_containers/food/snacks/breadslice/plain = 2, ) result = /obj/item/weapon/reagent_containers/food/snacks/jellysandwich/slime - category = CAT_FOOD + category = CAT_SANDWICH /datum/crafting_recipe/food/cherrysandwich name = "Jelly sandwich" @@ -41,7 +41,7 @@ /obj/item/weapon/reagent_containers/food/snacks/breadslice/plain = 2, ) result = /obj/item/weapon/reagent_containers/food/snacks/jellysandwich/cherry - category = CAT_FOOD + category = CAT_SANDWICH /datum/crafting_recipe/food/icecreamsandwich name = "Icecream sandwich" @@ -51,7 +51,7 @@ /obj/item/weapon/reagent_containers/food/snacks/icecream = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/icecreamsandwich - category = CAT_FOOD + category = CAT_SANDWICH /datum/crafting_recipe/food/notasandwich name = "Not a sandwich" @@ -60,7 +60,7 @@ /obj/item/clothing/mask/fakemoustache = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/notasandwich - category = CAT_FOOD + category = CAT_SANDWICH diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm index 3df5c6b8ca..050beb8478 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm @@ -13,7 +13,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/potato = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/soup/meatball - category = CAT_FOOD + category = CAT_SOUP /datum/crafting_recipe/food/vegetablesoup name = "Vegetable soup" @@ -26,7 +26,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/potato = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/soup/vegetable - category = CAT_FOOD + category = CAT_SOUP /datum/crafting_recipe/food/nettlesoup name = "Nettle soup" @@ -38,7 +38,7 @@ /obj/item/weapon/reagent_containers/food/snacks/boiledegg = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/soup/nettle - category = CAT_FOOD + category = CAT_SOUP /datum/crafting_recipe/food/wingfangchu name = "Wingfangchu" @@ -48,7 +48,7 @@ /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet/xeno = 2 ) result = /obj/item/weapon/reagent_containers/food/snacks/soup/wingfangchu - category = CAT_FOOD + category = CAT_SOUP /datum/crafting_recipe/food/wishsoup name = "Wish soup" @@ -57,7 +57,7 @@ /obj/item/weapon/reagent_containers/glass/bowl = 1 ) result= /obj/item/weapon/reagent_containers/food/snacks/soup/wish - category = CAT_FOOD + category = CAT_SOUP /datum/crafting_recipe/food/hotchili name = "Hot chili" @@ -68,7 +68,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/tomato = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/soup/hotchili - category = CAT_FOOD + category = CAT_SOUP /datum/crafting_recipe/food/coldchili name = "Cold chili" @@ -79,7 +79,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/tomato = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/soup/coldchili - category = CAT_FOOD + category = CAT_SOUP /datum/crafting_recipe/food/tomatosoup name = "Tomato soup" @@ -89,7 +89,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/tomato = 2 ) result = /obj/item/weapon/reagent_containers/food/snacks/soup/tomato - category = CAT_FOOD + category = CAT_SOUP /datum/crafting_recipe/food/milosoup name = "Milo soup" @@ -100,7 +100,7 @@ /obj/item/weapon/reagent_containers/food/snacks/tofu = 2 ) result = /obj/item/weapon/reagent_containers/food/snacks/soup/milo - category = CAT_FOOD + category = CAT_SOUP /datum/crafting_recipe/food/bloodsoup name = "Blood soup" @@ -110,7 +110,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/tomato/blood = 2 ) result = /obj/item/weapon/reagent_containers/food/snacks/soup/blood - category = CAT_FOOD + category = CAT_SOUP /datum/crafting_recipe/food/slimesoup name = "Slime soup" @@ -120,7 +120,7 @@ /obj/item/weapon/reagent_containers/glass/bowl = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/soup/slime - category = CAT_FOOD + category = CAT_SOUP /datum/crafting_recipe/food/clownstears name = "Clowns tears" @@ -131,7 +131,7 @@ /obj/item/weapon/ore/bananium = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/soup/clownstears - category = CAT_FOOD + category = CAT_SOUP /datum/crafting_recipe/food/mysterysoup name = "Mystery soup" @@ -144,7 +144,7 @@ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 1, ) result = /obj/item/weapon/reagent_containers/food/snacks/soup/mystery - category = CAT_FOOD + category = CAT_SOUP /datum/crafting_recipe/food/mushroomsoup name = "Mushroom soup" @@ -155,7 +155,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/chanterelle = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/soup/mushroom - category = CAT_FOOD + category = CAT_SOUP /datum/crafting_recipe/food/beetsoup name = "Beet soup" @@ -166,7 +166,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/cabbage = 1, ) result = /obj/item/weapon/reagent_containers/food/snacks/soup/beet - category = CAT_FOOD + category = CAT_SOUP /datum/crafting_recipe/food/stew name = "Stew" @@ -181,7 +181,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/soup/stew - category = CAT_FOOD + category = CAT_SOUP /datum/crafting_recipe/food/spacylibertyduff name = "Spacy liberty duff" @@ -191,7 +191,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/libertycap = 3 ) result = /obj/item/weapon/reagent_containers/food/snacks/soup/spacylibertyduff - category = CAT_FOOD + category = CAT_SOUP /datum/crafting_recipe/food/amanitajelly name = "Amanita jelly" @@ -201,7 +201,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/amanita = 3 ) result = /obj/item/weapon/reagent_containers/food/snacks/soup/amanitajelly - category = CAT_FOOD + category = CAT_SOUP /datum/crafting_recipe/food/sweetpotatosoup name = "Sweet potato soup" @@ -212,7 +212,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/potato/sweet = 2 ) result = /obj/item/weapon/reagent_containers/food/snacks/soup/sweetpotato - category = CAT_FOOD + category = CAT_SOUP /datum/crafting_recipe/food/redbeetsoup name = "Red beet soup" @@ -223,4 +223,4 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/cabbage = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/soup/beet/red - category = CAT_FOOD + category = CAT_SOUP diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_spaghetti.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_spaghetti.dm index fb0ba86340..85d2ee6d65 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_spaghetti.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_spaghetti.dm @@ -10,7 +10,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/tomato = 2 ) result = /obj/item/weapon/reagent_containers/food/snacks/pastatomato - category = CAT_FOOD + category = CAT_SPAGHETTI /datum/crafting_recipe/food/copypasta name = "Copypasta" @@ -18,7 +18,7 @@ /obj/item/weapon/reagent_containers/food/snacks/pastatomato = 2 ) result = /obj/item/weapon/reagent_containers/food/snacks/copypasta - category = CAT_FOOD + category = CAT_SPAGHETTI /datum/crafting_recipe/food/spaghettimeatball name = "Spaghetti meatball" @@ -27,7 +27,7 @@ /obj/item/weapon/reagent_containers/food/snacks/faggot = 2 ) result = /obj/item/weapon/reagent_containers/food/snacks/meatballspaghetti - category = CAT_FOOD + category = CAT_SPAGHETTI /datum/crafting_recipe/food/spesslaw name = "Spesslaw" @@ -36,7 +36,7 @@ /obj/item/weapon/reagent_containers/food/snacks/faggot = 4 ) result = /obj/item/weapon/reagent_containers/food/snacks/spesslaw - category = CAT_FOOD + category = CAT_SPAGHETTI /datum/crafting_recipe/food/beefnoodle name = "Beef noodle" @@ -47,7 +47,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/cabbage = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/beefnoodle - category = CAT_FOOD + category = CAT_SPAGHETTI /datum/crafting_recipe/food/chowmein name = "Chowmein" @@ -58,4 +58,4 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/carrot = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/chowmein - category = CAT_FOOD \ No newline at end of file + category = CAT_SPAGHETTI diff --git a/code/modules/games/cards.dm b/code/modules/games/cards.dm index b3a3ba1065..cdd4b669c0 100644 --- a/code/modules/games/cards.dm +++ b/code/modules/games/cards.dm @@ -9,9 +9,9 @@ /obj/item/weapon/deck name = "deck of cards" desc = "A simple deck of playing cards." - icon = 'playing_cards.dmi' + icon = 'icons/obj/playing_cards.dmi' icon_state = "deck" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL flags = NOBLUDGEON var/list/cards = list() @@ -19,17 +19,19 @@ /obj/item/weapon/deck/New() . = ..() - var/color + var/cardcolor var/datum/playingcard/card for (var/suit in list("spades", "clubs", "diamonds", "hearts")) - if (suit == "spades" || suit == "clubs") color = "black_" - else color = "red_" + if (suit == "spades" || suit == "clubs") + cardcolor = "black_" + else + cardcolor = "red_" for (var/number in list("ace", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten")) card = new() card.name = "[number] of [suit]" - card.card_icon = "[color]num" + card.card_icon = "[cardcolor]num" card.suit = suit card.number = number @@ -38,7 +40,7 @@ for (var/number in list("jack", "queen", "king")) card = new() card.name = "[number] of [suit]" - card.card_icon = "[color]col" + card.card_icon = "[cardcolor]col" card.suit = suit card.number = number @@ -81,7 +83,7 @@ if(flag) return //It's adjacent, is the user, or is on the user's person - if (istype(A, /mob/living)) + if(isliving(A)) src.dealTo(A, user) else return ..() @@ -117,15 +119,15 @@ /obj/item/weapon/hand name = "hand of cards" desc = "Some playing cards." - icon = 'playing_cards.dmi' + icon = 'icons/obj/playing_cards.dmi' icon_state = "empty" - w_class = 1 + w_class = WEIGHT_CLASS_TINY var/concealed = 0 var/blank = 0 var/list/cards = list() var/datum/html_interface/hi - burn_state = FLAMMABLE + resistance_flags = FLAMMABLE /obj/item/weapon/hand/New(loc) . = ..() @@ -264,9 +266,8 @@ if (istype(hclient)) switch (href_list["action"]) if ("play_card") - var/datum/playingcard/card = locate(href_list["card"]) - - if (card in src.cards) + var/datum/playingcard/card = locate(href_list["card"]) in cards + if (card && istype(card)) src.discard(card) if ("toggle_conceal") src.toggle_conceal() diff --git a/code/modules/games/cas.dm b/code/modules/games/cas.dm index ebf6a8bd4a..d33e47f6f2 100644 --- a/code/modules/games/cas.dm +++ b/code/modules/games/cas.dm @@ -29,6 +29,7 @@ var/global/list/cards_against_space card_text_file = "strings/cas_black.txt" /obj/item/toy/cards/deck/cas/New() + ..() if(!cards_against_space) //saves loading from the files every single time a new deck is created, but still lets each deck have a random assortment, it's purely an optimisation cards_against_space = list("cas_white" = file2list("strings/cas_white.txt"),"cas_black" = file2list("strings/cas_black.txt")) allcards = cards_against_space[card_face] @@ -125,7 +126,7 @@ var/global/list/cards_against_space flipped = !flipped update_icon() -obj/item/toy/cards/singlecard/cas/AltClick(mob/living/user) +/obj/item/toy/cards/singlecard/cas/AltClick(mob/living/user) if(!user.canUseTopic(src,1)) return Flip() diff --git a/code/modules/holiday/easter.dm b/code/modules/holiday/easter.dm index 836ff4aaa8..8a373d7ec3 100644 --- a/code/modules/holiday/easter.dm +++ b/code/modules/holiday/easter.dm @@ -29,7 +29,7 @@ for(var/obj/effect/landmark/R in landmarks_list) if(R.name != "blobspawn") if(prob(35)) - if(istype(R.loc,/turf/open/space)) + if(isspaceturf(R.loc)) new /mob/living/simple_animal/chicken/rabbit/space(R.loc) else new /mob/living/simple_animal/chicken/rabbit(R.loc) @@ -111,9 +111,9 @@ /obj/item/weapon/reagent_containers/food/snacks/egg/loaded/New() ..() - var/color = pick("blue","green","mime","orange","purple","rainbow","red","yellow") - icon_state = "egg-[color]" - item_color = "[color]" + var/eggcolor = pick("blue","green","mime","orange","purple","rainbow","red","yellow") + icon_state = "egg-[eggcolor]" + item_color = "[eggcolor]" /obj/item/weapon/reagent_containers/food/snacks/egg/proc/dispensePrize(turf/where) var/won = pick(/obj/item/clothing/head/bunnyhead, @@ -158,7 +158,7 @@ /datum/reagent/consumable/sugar = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/hotcrossbun - category = CAT_FOOD + category = CAT_MISCFOOD /obj/item/weapon/reagent_containers/food/snacks/store/cake/brioche @@ -182,7 +182,7 @@ /datum/reagent/consumable/sugar = 2 ) result = /obj/item/weapon/reagent_containers/food/snacks/store/cake/brioche - category = CAT_FOOD + category = CAT_MISCFOOD /obj/item/weapon/reagent_containers/food/snacks/scotchegg name = "scotch egg" @@ -202,7 +202,7 @@ /obj/item/weapon/reagent_containers/food/snacks/faggot = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/scotchegg - category = CAT_FOOD + category = CAT_MISCFOOD /obj/item/weapon/reagent_containers/food/snacks/soup/mammi name = "Mammi" @@ -219,7 +219,7 @@ /datum/reagent/consumable/milk = 5 ) result = /obj/item/weapon/reagent_containers/food/snacks/soup/mammi - category = CAT_FOOD + category = CAT_MISCFOOD /obj/item/weapon/reagent_containers/food/snacks/chocolatebunny name = "chocolate bunny" @@ -236,4 +236,4 @@ /obj/item/weapon/reagent_containers/food/snacks/chocolatebar = 1 ) result = /obj/item/weapon/reagent_containers/food/snacks/chocolatebunny - category = CAT_FOOD + category = CAT_MISCFOOD diff --git a/code/modules/holiday/halloween.dm b/code/modules/holiday/halloween.dm index 41b655189f..2b8058665e 100644 --- a/code/modules/holiday/halloween.dm +++ b/code/modules/holiday/halloween.dm @@ -1,34 +1,3 @@ -//spooky halloween stuff. only tick on halloween!!! - - -//uses super seekrit double proc definition stuffs. remember to call ..()! -/*/mob/dead/observer/say(var/message) //this doesn't actually work vOv - ..() - for(var/mob/M in hearers(src, 1)) - if(!M.stat) - if(M.job == "Chaplain") - if (prob (49)) - M.show_message("You hear muffled speech... but nothing is there...", 2) - if(prob(20)) - playsound(loc, pick('sound/effects/ghost.ogg','sound/effects/ghost2.ogg'), 10, 1) - else - M.show_message("You hear muffled speech... you can almost make out some words...", 2) -// M.show_message("[stutter(message)]", 2) - if(prob(30)) - playsound(loc, pick('sound/effects/ghost.ogg','sound/effects/ghost2.ogg'), 10, 1) - else - if(prob(50)) - return - else if(prob (95)) - M.show_message("You hear muffled speech... but nothing is there...", 2) - if(prob(20)) - playsound(loc, pick('sound/effects/ghost.ogg','sound/effects/ghost2.ogg'), 10, 1) - else - M.show_message("You hear muffled speech... you can almost make out some words...", 2) -// M.show_message("[stutter(message)]", 2) - playsound(loc, pick('sound/effects/ghost.ogg','sound/effects/ghost2.ogg'), 10, 1)*/ - - /////////////////////////////////////// ///////////HALLOWEEN CONTENT/////////// /////////////////////////////////////// @@ -102,14 +71,9 @@ else if(trapped == SPOOKY_SKELETON) visible_message("BOO!") - playsound(loc, pick('sound/effects/xylophone1.ogg','sound/effects/xylophone2.ogg','sound/effects/xylophone3.ogg','sound/spookoween/girlscream.ogg'), 300, 1) + playsound(loc, 'sound/spookoween/girlscream.ogg', 300, 1) trapped = 0 - spawn(90) - if(trapped_mob && trapped_mob.loc) - var/datum/effect/effect/system/harmless_smoke_spread/smoke = new() - smoke.set_up(1, 0, trapped_mob.loc, 0) - smoke.start() - qdel(trapped_mob) + QDEL_IN(trapped_mob, 90) else if(trapped == HOWLING_GHOST) visible_message("[pick("OooOOooooOOOoOoOOooooOOOOO", "BooOOooOooooOOOO", "BOO!", "WoOOoOoooOooo")]") @@ -130,21 +94,13 @@ visible_message("THIS BEING RADIATES PURE EVIL! YOU BETTER RUN!!!") playsound(loc, 'sound/hallucinations/wail.ogg', 300, 1) var/mob/living/simple_animal/hostile/faithless/F = new(loc) - F.stance = HOSTILE_STANCE_ATTACK - F.GiveTarget(usr) trapped = 0 - spawn(120) - if(F && F.loc) - var/datum/effect/effect/system/harmless_smoke_spread/smoke = new - smoke.set_up(1,0, F.loc, 0) - smoke.start() - qdel(F) + QDEL_IN(F, 120) else if(trapped == INSANE_CLOWN) visible_message("...") playsound(loc, 'sound/spookoween/scary_clown_appear.ogg', 300, 1) - var/mob/living/simple_animal/hostile/retaliate/clown/insane/IC = new (loc) - IC.GiveTarget(usr) + spawn_atom_to_turf(/mob/living/simple_animal/hostile/retaliate/clown/insane, loc, 1, FALSE) trapped = 0 //don't spawn in crates @@ -267,9 +223,9 @@ loc = M.loc /mob/living/simple_animal/hostile/retaliate/clown/insane/MoveToTarget() - return + stalk(target) -/mob/living/simple_animal/hostile/retaliate/clown/insane/AttackTarget() +/mob/living/simple_animal/hostile/retaliate/clown/insane/AttackingTarget() return /mob/living/simple_animal/hostile/retaliate/clown/insane/adjustHealth() @@ -289,4 +245,22 @@ ..() /mob/living/simple_animal/hostile/retaliate/clown/insane/handle_temperature_damage() - return \ No newline at end of file + return + +///////////////////////// +// Spooky Uplink Items // +///////////////////////// + +/datum/uplink_item/dangerous/crossbow/candy + name = "Candy Corn Crossbow" + desc = "A standard miniature energy crossbow that uses a hard-light projector to transform bolts into candy corn. Happy Halloween!" + category = "Holiday" + item = /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow/halloween + surplus = 0 + +/datum/uplink_item/device_tools/emag/hack_o_lantern + name = "Hack-o'-Lantern" + desc = "An emag fitted to support the Halloween season. Candle not included." + category = "Holiday" + item = /obj/item/weapon/card/emag/halloween + surplus = 0 diff --git a/code/modules/holiday/holidays.dm b/code/modules/holiday/holidays.dm index 13cfc2ea89..3f23b4743e 100644 --- a/code/modules/holiday/holidays.dm +++ b/code/modules/holiday/holidays.dm @@ -302,6 +302,11 @@ begin_day = 14 begin_month = DECEMBER +/datum/holiday/doomsday + name = "Mayan Doomsday Anniversary" + begin_day = 21 + begin_month = DECEMBER + /datum/holiday/xmas name = CHRISTMAS begin_day = 23 @@ -311,6 +316,20 @@ /datum/holiday/xmas/greet() return "Have a merry Christmas!" +/datum/holiday/festive_season + name = FESTIVE_SEASON + begin_day = 1 + begin_month = DECEMBER + end_day = 31 + +/datum/holiday/festive_season/celebrate() + for(var/obj/effect/landmark/xmastree/XT in landmarks_list) + new XT.tree(get_turf(XT)) + qdel(XT) + +/datum/holiday/festive_season/greet() + return "Have a nice festive season!" + /datum/holiday/boxing name = "Boxing Day" begin_day = 26 diff --git a/code/modules/holodeck/area_copy.dm b/code/modules/holodeck/area_copy.dm index 9d17d72f67..8fdf1197a8 100644 --- a/code/modules/holodeck/area_copy.dm +++ b/code/modules/holodeck/area_copy.dm @@ -1,7 +1,7 @@ -/proc/DuplicateObject(obj/original, var/perfectcopy = 0 , var/sameloc = 0, var/atom/newloc = null, var/nerf = 0) +/proc/DuplicateObject(var/atom/original, var/perfectcopy = TRUE, var/sameloc = FALSE, var/atom/newloc = null, var/nerf = FALSE, var/holoitem=FALSE) if(!original) return null - var/obj/O + var/atom/O if(sameloc) O = new original.type(original.loc) @@ -20,15 +20,19 @@ else O.vars[V] = original.vars[V] - if(istype(O)) - O.burn_state = FIRE_PROOF // holoitems do not burn + if(istype(O, /obj)) + var/obj/N = O + if(holoitem) + N.resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF // holoitems do not burn + if(nerf && istype(O,/obj/item)) var/obj/item/I = O I.damtype = STAMINA // thou shalt not + + N.update_icon() if(istype(O,/obj/machinery)) var/obj/machinery/M = O M.power_change() - O.update_icon() return O @@ -76,7 +80,7 @@ continue if(platingRequired) - if(istype(B, /turf/open/space)) + if(isspaceturf(B)) continue var/old_dir1 = T.dir @@ -89,13 +93,13 @@ X.icon_state = old_icon_state1 for(var/obj/O in T) - var/obj/O2 = DuplicateObject(O , 1, newloc = X, nerf=nerf_weapons) + var/obj/O2 = DuplicateObject(O , perfectcopy=TRUE, newloc = X, nerf=nerf_weapons, holoitem=TRUE) if(!O2) continue copiedobjs += O2.GetAllContents() for(var/mob/M in T) if(istype(M, /mob/camera)) continue // If we need to check for more mobs, I'll add a variable - var/mob/SM = DuplicateObject(M , 1, newloc = X) + var/mob/SM = DuplicateObject(M , perfectcopy=TRUE, newloc = X, holoitem=TRUE) copiedobjs += SM.GetAllContents() var/global/list/forbidden_vars = list("type","stat","loc","locs","vars", "parent", "parent_type","verbs","ckey","key","x","y","z","contents", "luminosity") diff --git a/code/modules/holodeck/computer.dm b/code/modules/holodeck/computer.dm index 02d6a81a9f..10349f42d3 100644 --- a/code/modules/holodeck/computer.dm +++ b/code/modules/holodeck/computer.dm @@ -25,7 +25,6 @@ var/area/holodeck/program var/area/holodeck/last_program var/area/offline_program = /area/holodeck/rec_center/offline - light_color = LIGHT_COLOR_CYAN var/list/program_cache = list() var/list/emag_programs = list() @@ -144,14 +143,14 @@ /obj/machinery/computer/holodeck/proc/floorcheck() for(var/turf/T in linked) - if(!T.intact || istype(T,/turf/open/space)) + if(!T.intact || isspaceturf(T)) return 0 return 1 /obj/machinery/computer/holodeck/Topic(href, list/href_list) if(..()) return - if(!Adjacent(usr) && !istype(usr, /mob/living/silicon)) + if(!Adjacent(usr) && !issilicon(usr)) return usr.set_machine(src) add_fingerprint(usr) @@ -205,6 +204,6 @@ emergency_shutdown() ..() -/obj/machinery/computer/holodeck/blob_act(obj/effect/blob/B) +/obj/machinery/computer/holodeck/blob_act(obj/structure/blob/B) emergency_shutdown() - ..() + ..() \ No newline at end of file diff --git a/code/modules/holodeck/holo_effect.dm b/code/modules/holodeck/holo_effect.dm index d304b8d103..b90f0503f9 100644 --- a/code/modules/holodeck/holo_effect.dm +++ b/code/modules/holodeck/holo_effect.dm @@ -76,7 +76,7 @@ mob = new mobtype(loc) // these vars are not really standardized but all would theoretically create stuff on death - for(var/v in list("butcher_results","corpse","weapon1","weapon2") & mob.vars) + for(var/v in list("butcher_results","corpse","weapon1","weapon2","blood_volume") & mob.vars) mob.vars[v] = null return mob @@ -93,4 +93,7 @@ /mob/living/simple_animal/pet/dog/pug, /mob/living/simple_animal/pet/fox) /obj/effect/holodeck_effect/mobspawner/bee - mobtype = /mob/living/simple_animal/hostile/poison/bees/toxin \ No newline at end of file + mobtype = /mob/living/simple_animal/hostile/poison/bees/toxin + +/obj/effect/holodeck_effect/mobspawner/monkey + mobtype = /mob/living/simple_animal/holodeck_monkey diff --git a/code/modules/holodeck/items.dm b/code/modules/holodeck/items.dm index 3589c894cd..fb8fffc6e7 100644 --- a/code/modules/holodeck/items.dm +++ b/code/modules/holodeck/items.dm @@ -18,15 +18,18 @@ throw_speed = 2 throw_range = 5 throwforce = 0 - w_class = 2.0 + w_class = WEIGHT_CLASS_SMALL hitsound = "swing_hit" armour_penetration = 50 var/active = 0 /obj/item/weapon/holo/esword/green/New() + ..() item_color = "green" + /obj/item/weapon/holo/esword/red/New() + ..() item_color = "red" /obj/item/weapon/holo/esword/hit_reaction(mob/living/carbon/human/owner, attack_text, final_block_chance) @@ -39,20 +42,21 @@ /obj/item/weapon/holo/esword/New() item_color = pick("red","blue","green","purple") + ..() /obj/item/weapon/holo/esword/attack_self(mob/living/user as mob) active = !active if (active) force = 30 icon_state = "sword[item_color]" - w_class = 4 + w_class = WEIGHT_CLASS_BULKY hitsound = 'sound/weapons/blade1.ogg' playsound(user, 'sound/weapons/saberon.ogg', 20, 1) user << "[src] is now active." else force = 3 icon_state = "sword0" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL hitsound = "swing_hit" playsound(user, 'sound/weapons/saberoff.ogg', 20, 1) user << "[src] can now be concealed." @@ -62,11 +66,11 @@ /obj/item/toy/beach_ball/holoball name = "basketball" - icon = 'icons/obj/basketball.dmi' + icon = 'icons/obj/items.dmi' icon_state = "basketball" item_state = "basketball" desc = "Here's your chance, do your dance at the Space Jam." - w_class = 4 //Stops people from hiding it in their bags/pockets + w_class = WEIGHT_CLASS_BULKY //Stops people from hiding it in their bags/pockets /obj/item/toy/beach_ball/holoball/dodgeball name = "dodgeball" @@ -82,7 +86,7 @@ M.apply_damage(10, STAMINA) if(prob(5)) M.Weaken(3) - visible_message("[M] is knocked right off \his feet!") + visible_message("[M] is knocked right off [M.p_their()] feet!") // // Structures @@ -102,7 +106,7 @@ visible_message(" [user] dunks [W] into \the [src]!") /obj/structure/holohoop/attack_hand(mob/user) - if(user.pulling && user.a_intent == "grab" && isliving(user.pulling)) + if(user.pulling && user.a_intent == INTENT_GRAB && isliving(user.pulling)) var/mob/living/L = user.pulling if(user.grab_state < GRAB_AGGRESSIVE) user << "You need a better grip to do that!" @@ -203,3 +207,15 @@ for(var/mob/M in currentarea) M << "FIGHT!" + +/obj/machinery/conveyor/holodeck + +/obj/machinery/conveyor/holodeck/attackby(obj/item/I, mob/user, params) + if(user.drop_item()) + I.loc = src.loc + else + return ..() + +/obj/item/weapon/paper/trek_diploma + name = "paper - Starfleet Academy Diploma" + info = {"

    Starfleet Academy


    Official Diploma


    "} diff --git a/code/modules/holodeck/mobs.dm b/code/modules/holodeck/mobs.dm new file mode 100644 index 0000000000..af8b095d97 --- /dev/null +++ b/code/modules/holodeck/mobs.dm @@ -0,0 +1,20 @@ +/* + Mobs +*/ + +/mob/living/simple_animal/holodeck_monkey + name = "monkey" + desc = "A holographic creature fond of bananas." + icon = 'icons/mob/monkey.dmi' + icon_state = "monkey1" + icon_living = "monkey1" + icon_dead = "monkey1_dead" + speak_emote = list("chimpers") + emote_hear = list("chimpers.") + emote_see = list("scratches.", "looks around.") + speak_chance = 1 + turns_per_move = 2 + butcher_results = list() + response_help = "pets" + response_disarm = "pushes aside" + response_harm = "bites" diff --git a/code/modules/holodeck/turfs.dm b/code/modules/holodeck/turfs.dm index ed2021bc5f..458497cae5 100644 --- a/code/modules/holodeck/turfs.dm +++ b/code/modules/holodeck/turfs.dm @@ -3,16 +3,17 @@ thermal_conductivity = 0 broken_states = list("engine") burnt_states = list("engine") + flags = NONE -/turf/open/floor/holofloor/attackby(obj/item/weapon/W as obj, mob/user as mob) +/turf/open/floor/holofloor/attackby(obj/item/I, mob/living/user) return // HOLOFLOOR DOES NOT GIVE A FUCK /turf/open/floor/holofloor/plating - name = "Holodeck Projector Floor" + name = "holodeck projector floor" icon_state = "engine" /turf/open/floor/holofloor/plating/burnmix - name = "Burn-mix Floor" + name = "burn-mix floor" initial_gas_mix = "o2=2500;plasma=5000;TEMP=370" /turf/open/floor/holofloor/grass @@ -38,13 +39,21 @@ icon_state = "water" /turf/open/floor/holofloor/asteroid - name = "Asteroid" + name = "asteroid" icon_state = "asteroid0" /turf/open/floor/holofloor/asteroid/New() icon_state = "asteroid[pick(0,1,2,3,4,5,6,7,8,9,10,11,12)]" ..() +/turf/open/floor/holofloor/basalt + name = "basalt" + icon_state = "basalt0" + +/turf/open/floor/holofloor/basalt/New() + icon_state = "basalt[pick(0,1,2,3,4,5,6,7,8,9,10,11,12)]" + ..() + /turf/open/floor/holofloor/space name = "Space" icon = 'icons/turf/space.dmi' @@ -55,12 +64,12 @@ ..() /turf/open/floor/holofloor/hyperspace - name = "Hyperspace" + name = "hyperspace" icon = 'icons/turf/space.dmi' - icon_state = "speedspace_ew_1" + icon_state = "speedspace_ns_1" /turf/open/floor/holofloor/hyperspace/New() - icon_state = "speedspace_ew_[(x + 5*y + (y%2+1)*7)%15+1]" + icon_state = "speedspace_ns_[(x + 5*y + (y%2+1)*7)%15+1]" ..() /turf/open/floor/holofloor/hyperspace/ns/New() @@ -68,7 +77,7 @@ icon_state = "speedspace_ns_[(x + 5*y + (y%2+1)*7)%15+1]" /turf/open/floor/holofloor/carpet - name = "Carpet" + name = "carpet" desc = "Electrically inviting." icon = 'icons/turf/floors/carpet.dmi' icon_state = "carpet" @@ -95,7 +104,7 @@ slowdown = 2 /turf/open/floor/holofloor/snow/cold - initial_gas_mix = "o2=22;n2=82;TEMP=180" + initial_gas_mix = "freon=7500;TEMP=0" /turf/open/floor/holofloor/asteroid name = "asteroid sand" diff --git a/code/modules/html_interface/html_interface.dm b/code/modules/html_interface/html_interface.dm index 66ced5276c..10bc46f036 100644 --- a/code/modules/html_interface/html_interface.dm +++ b/code/modules/html_interface/html_interface.dm @@ -68,9 +68,9 @@ You have to use modules/client/asset_cache to ensure they get sent BEFORE the in ** Sample code ** -mob/var/datum/html_interface/hi +/mob/var/datum/html_interface/hi -mob/verb/test() +/mob/verb/test() if (!hi) hi = new/datum/html_interface(src, "[src.key]") hi.updateLayout("
    ") diff --git a/code/modules/hydroponics/biogenerator.dm b/code/modules/hydroponics/biogenerator.dm index 5a64a2d086..fece5bb1f4 100644 --- a/code/modules/hydroponics/biogenerator.dm +++ b/code/modules/hydroponics/biogenerator.dm @@ -7,10 +7,6 @@ anchored = 1 use_power = 1 idle_power_usage = 40 - use_auto_lights = 1 - light_power_on = 2 - light_range_on = 3 - light_color = LIGHT_COLOR_BLUE var/processing = 0 var/obj/item/weapon/reagent_containers/glass/beaker = null var/points = 0 @@ -18,13 +14,35 @@ var/efficiency = 0 var/productivity = 0 var/max_items = 40 + var/datum/research/files + var/list/show_categories = list("Food", "Botany Chemicals", "Leather and Cloth") + var/list/timesFiveCategories = list("Food", "Botany Chemicals") /obj/machinery/biogenerator/New() ..() + files = new /datum/research/biogenerator(src) create_reagents(1000) var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/biogenerator(null) B.apply_default_parts(src) +/obj/machinery/biogenerator/Destroy() + if(beaker) + qdel(beaker) + beaker = null + return ..() + +/obj/machinery/biogenerator/contents_explosion(severity, target) + ..() + if(beaker) + beaker.ex_act(severity, target) + +/obj/machinery/biogenerator/handle_atom_del(atom/A) + ..() + if(A == beaker) + beaker = null + update_icon() + updateUsrDialog() + /obj/item/weapon/circuitboard/machine/biogenerator name = "circuit board (Biogenerator)" build_path = /obj/machinery/biogenerator @@ -63,6 +81,9 @@ return /obj/machinery/biogenerator/attackby(obj/item/O, mob/user, params) + if(user.a_intent == INTENT_HARM) + return ..() + if(processing) user << "The biogenerator is currently processing." return @@ -130,11 +151,20 @@ O.loc = src user << "You put [O.name] in [src.name]" return 1 //no afterattack - - else if(user.a_intent != "harm") - user << "You cannot put this in [src.name]!" + else if (istype(O, /obj/item/weapon/disk/design_disk)) + user.visible_message("[user] begins to load \the [O] in \the [src]...", + "You begin to load a design from \the [O]...", + "You hear the chatter of a floppy drive.") + processing = 1 + var/obj/item/weapon/disk/design_disk/D = O + if(do_after(user, 10, target = src)) + for(var/B in D.blueprints) + if(B) + files.AddDesign2Known(B) + processing = 0 + return 1 else - return ..() + user << "You cannot put this in [src.name]!" /obj/machinery/biogenerator/interact(mob/user) if(stat & BROKEN || panel_open) @@ -146,7 +176,7 @@ else switch(menustat) if("nopoints") - dat += "
    You do not have biomass to create products.
    Please, put growns into reactor and activate it.
    " + dat += "
    You do not have enough biomass to create products.
    Please, put growns into reactor and activate it.
    " menustat = "menu" if("complete") dat += "
    Operation complete.
    " @@ -158,43 +188,29 @@ dat += "
    Not enough space left in container. Unable to create product.
    " menustat = "menu" if(beaker) + var/categories = show_categories.Copy() + for(var/V in categories) + categories[V] = list() + for(var/V in files.known_designs) + var/datum/design/D = files.known_designs[V] + for(var/C in categories) + if(C in D.category) + categories[C] += D + dat += "
    Biomass: [points] units.

    " dat += "ActivateDetach Container" - dat += "

    Food:

    " - dat += "
    " - dat += "10 milk: Makex5 ([20/efficiency])
    " - dat += "10 cream: Makex5 ([30/efficiency])
    " - dat += "Milk carton: Makex5 ([100/efficiency])
    " - dat += "Cream carton: Makex5 ([300/efficiency])
    " - dat += "10u black pepper: Makex5 ([25/efficiency])
    " - dat += "Pepper mill: Makex5 ([50/efficiency])
    " - dat += "Monkey cube: Makex5 ([250/efficiency])" - dat += "
    " - dat += "

    Botany Chemicals:

    " - dat += "
    " - dat += "E-Z-Nutrient: Makex5 ([10/efficiency])
    " - dat += "Left 4 Zed: Makex5 ([20/efficiency])
    " - dat += "Robust Harvest: Makex5 ([25/efficiency])
    " - dat += "Weed Killer: Makex5 ([50/efficiency])
    " - dat += "Pest Killer: Makex5 ([50/efficiency])
    " - dat += "Empty bottle: Makex5 ([5/efficiency])
    " - dat += "
    " - dat += "

    Leather and Cloth:

    " - dat += "
    " - dat += "Roll of cloth: Makex10 ([50/efficiency])
    " - dat += "Wallet: Make ([100/efficiency])
    " - dat += "Botanical gloves: Make ([250/efficiency])
    " - dat += "Utility belt: Make ([300/efficiency])
    " - dat += "Security belt: Make ([300/efficiency])
    " - dat += "Medical belt: Make ([300/efficiency])
    " - dat += "Janitorial belt: Make ([300/efficiency])
    " - dat += "Bandolier belt: Make ([300/efficiency])
    " - dat += "Shoulder holster: Make ([400/efficiency])
    " - dat += "Leather satchel: Make ([400/efficiency])
    " - dat += "Leather jacket: Make ([500/efficiency])
    " - dat += "Leather overcoat: Make ([1000/efficiency])
    " - dat += "Rice hat: Make ([300/efficiency])
    " - dat += "
    " + for(var/cat in categories) + dat += "

    [cat]:

    " + dat += "
    " + for(var/V in categories[cat]) + var/datum/design/D = V + dat += "[D.name]: Make" + if(cat in timesFiveCategories) + dat += "x5" + if(ispath(D.build_path, /obj/item/stack)) + dat += "x10" + dat += "([D.materials[MAT_BIOMASS]/efficiency])
    " + dat += "
    " else dat += "
    No container inside, please insert container.
    " @@ -211,7 +227,7 @@ return if (src.stat != 0) //NOPOWER etc return - if(src.processing) + if(processing) usr << "The biogenerator is in the process of working." return var/S = 0 @@ -234,142 +250,62 @@ menustat = "void" return -/obj/machinery/biogenerator/proc/check_cost(cost) - if (cost > points) +/obj/machinery/biogenerator/proc/check_cost(list/materials, multiplier = 1, remove_points = 1) + if(materials.len != 1 || materials[1] != MAT_BIOMASS) + return 0 + if (materials[MAT_BIOMASS]*multiplier/efficiency > points) menustat = "nopoints" - return 1 + return 0 else - points -= cost - processing = 1 + if(remove_points) + points -= materials[MAT_BIOMASS]*multiplier/efficiency update_icon() updateUsrDialog() - return 0 - -/obj/machinery/biogenerator/proc/check_container_volume(reagent_amount) - if(beaker.reagents.total_volume + reagent_amount > beaker.reagents.maximum_volume) - menustat = "nobeakerspace" return 1 -/obj/machinery/biogenerator/proc/create_product(create) - switch(create) - if("milk") - if(check_container_volume(10)) - return 0 - else if (check_cost(20/efficiency)) - return 0 - else beaker.reagents.add_reagent("milk",10) - if("bpepper") - if(check_container_volume(10)) - return 0 - else if (check_cost(25/efficiency)) - return 0 - else beaker.reagents.add_reagent("blackpepper",10) - if("cream") - if(check_container_volume(10)) - return 0 - else if (check_cost(30/efficiency)) - return 0 - else beaker.reagents.add_reagent("cream",10) - if("cmilk") - if (check_cost(100/efficiency)) - return 0 - else new/obj/item/weapon/reagent_containers/food/condiment/milk(src.loc) - if("mpepper") - if (check_cost(50/efficiency)) - return 0 - else new/obj/item/weapon/reagent_containers/food/condiment/peppermill(src.loc) - if("ccream") - if (check_cost(300/efficiency)) - return 0 - else new/obj/item/weapon/reagent_containers/food/drinks/bottle/cream(src.loc) - if("meat") - if (check_cost(250/efficiency)) - return 0 - else new/obj/item/weapon/reagent_containers/food/snacks/monkeycube(src.loc) - if("ez") - if (check_cost(10/efficiency)) - return 0 - else new/obj/item/weapon/reagent_containers/glass/bottle/nutrient/ez(src.loc) - if("l4z") - if (check_cost(20/efficiency)) - return 0 - else new/obj/item/weapon/reagent_containers/glass/bottle/nutrient/l4z(src.loc) - if("rh") - if (check_cost(25/efficiency)) - return 0 - else new/obj/item/weapon/reagent_containers/glass/bottle/nutrient/rh(src.loc) - if("wk") - if (check_cost(50/efficiency)) - return 0 - else new/obj/item/weapon/reagent_containers/glass/bottle/killer/weedkiller(src.loc) - if("pk") - if (check_cost(50/efficiency)) - return 0 - else new/obj/item/weapon/reagent_containers/glass/bottle/killer/pestkiller(src.loc) - if("empty") - if (check_cost(5/efficiency)) - return 0 - else new/obj/item/weapon/reagent_containers/glass/bottle/nutrient/empty(src.loc) - if("cloth") - if (check_cost(50/efficiency)) - return 0 - else new/obj/item/stack/sheet/cloth(src.loc) - if("tencloth") - if (check_cost(500/efficiency)) - return 0 - else new/obj/item/stack/sheet/cloth/ten(src.loc) - if("wallet") - if (check_cost(100/efficiency)) - return 0 - else new/obj/item/weapon/storage/wallet(src.loc) - if("gloves") - if (check_cost(250/efficiency)) - return 0 - else new/obj/item/clothing/gloves/botanic_leather(src.loc) - if("tbelt") - if (check_cost(300/efficiency)) - return 0 - else new/obj/item/weapon/storage/belt/utility(src.loc) - if("sbelt") - if (check_cost(300/efficiency)) - return 0 - else new/obj/item/weapon/storage/belt/security(src.loc) - if("mbelt") - if (check_cost(300/efficiency)) - return 0 - else new/obj/item/weapon/storage/belt/medical(src.loc) - if("jbelt") - if (check_cost(300/efficiency)) - return 0 - else new/obj/item/weapon/storage/belt/janitor(src.loc) - if("bbelt") - if (check_cost(300/efficiency)) - return 0 - else new/obj/item/weapon/storage/belt/bandolier(src.loc) - if("sholster") - if (check_cost(400/efficiency)) - return 0 - else new/obj/item/weapon/storage/belt/holster(src.loc) - if("satchel") - if (check_cost(400/efficiency)) - return 0 - else new/obj/item/weapon/storage/backpack/satchel(src.loc) - if("jacket") - if (check_cost(500/efficiency)) - return 0 - else new/obj/item/clothing/suit/jacket/leather(src.loc) - if("overcoat") - if (check_cost(1000/efficiency)) - return 0 - else new/obj/item/clothing/suit/jacket/leather/overcoat(src.loc) - if("rice_hat") - if (check_cost(300/efficiency)) - return 0 - else new/obj/item/clothing/head/rice_hat(src.loc) - processing = 0 +/obj/machinery/biogenerator/proc/check_container_volume(list/reagents, multiplier = 1) + var/sum_reagents = 0 + for(var/R in reagents) + sum_reagents += reagents[R] + sum_reagents *= multiplier + + if(beaker.reagents.total_volume + sum_reagents > beaker.reagents.maximum_volume) + menustat = "nobeakerspace" + return 0 + + return 1 + +/obj/machinery/biogenerator/proc/create_product(datum/design/D, amount) + if(!beaker || !loc) + return 0 + + if(ispath(D.build_path, /obj/item/stack)) + if(!check_container_volume(D.make_reagents, amount)) + return 0 + if(!check_cost(D.materials, amount)) + return 0 + + var/obj/item/stack/product = new D.build_path(loc) + product.amount = amount + for(var/R in D.make_reagents) + beaker.reagents.add_reagent(R, D.make_reagents[R]*amount) + else + var/i = amount + while(i > 0) + if(!check_container_volume(D.make_reagents)) + return . + if(!check_cost(D.materials)) + return . + if(D.build_path) + new D.build_path(loc) + for(var/R in D.make_reagents) + beaker.reagents.add_reagent(R, D.make_reagents[R]) + . = 1 + --i + menustat = "complete" update_icon() - return 1 + return . /obj/machinery/biogenerator/proc/detach() if(beaker) @@ -393,13 +329,8 @@ else if(href_list["create"]) var/amount = (text2num(href_list["amount"])) - var/i = amount - var/C = href_list["create"] - if(i <= 0) - return - while(i >= 1) - create_product(C) - i-- + var/datum/design/D = locate(href_list["create"]) + create_product(D, amount) updateUsrDialog() else if(href_list["menu"]) diff --git a/code/modules/hydroponics/gene_modder.dm b/code/modules/hydroponics/gene_modder.dm index f5bd17e0ed..491c6f7c7e 100644 --- a/code/modules/hydroponics/gene_modder.dm +++ b/code/modules/hydroponics/gene_modder.dm @@ -66,7 +66,7 @@ return if(default_deconstruction_crowbar(I)) return - if(isrobot(user)) + if(iscyborg(user)) return if(istype(I, /obj/item/seeds)) @@ -104,7 +104,7 @@ return var/datum/browser/popup = new(user, "plantdna", "Plant DNA Manipulator", 450, 600) - if(!( in_range(src, user) || istype(user, /mob/living/silicon) )) + if(!(in_range(src, user) || issilicon(user))) popup.close() return @@ -234,7 +234,7 @@ update_genes() update_icon() else - var/obj/item/I = usr.get_active_hand() + var/obj/item/I = usr.get_active_held_item() if (istype(I, /obj/item/seeds)) if(!usr.drop_item()) return @@ -248,7 +248,7 @@ disk = null update_genes() else - var/obj/item/I = usr.get_active_hand() + var/obj/item/I = usr.get_active_held_item() if(istype(I, /obj/item/weapon/disk/plantgene)) if(!usr.drop_item()) return @@ -338,7 +338,9 @@ /datum/plant_gene/core/yield, /datum/plant_gene/core/production, /datum/plant_gene/core/endurance, - /datum/plant_gene/core/lifespan + /datum/plant_gene/core/lifespan, + /datum/plant_gene/core/weed_rate, + /datum/plant_gene/core/weed_chance ) for(var/a in gene_paths) core_genes += seed.get_gene(a) @@ -396,7 +398,7 @@ ..() if(istype(W, /obj/item/weapon/pen)) var/t = stripped_input(user, "What would you like the label to be?", name, null) - if(user.get_active_hand() != W) + if(user.get_active_held_item() != W) return if(!in_range(src, user) && loc != user) return diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm index ad1279c858..c2865e1377 100644 --- a/code/modules/hydroponics/grown.dm +++ b/code/modules/hydroponics/grown.dm @@ -14,7 +14,7 @@ dried_type = -1 // Saves us from having to define each stupid grown's dried_type as itself. // If you don't want a plant to be driable (watermelons) set this to null in the time definition. - burn_state = FLAMMABLE + resistance_flags = FLAMMABLE origin_tech = "biotech=1" /obj/item/weapon/reagent_containers/food/snacks/grown/New(newloc, var/obj/item/seeds/new_seed = null) @@ -38,9 +38,6 @@ seed.prepare_result(src) transform *= TransformUsingVariable(seed.potency, 100, 0.5) //Makes the resulting produce's sprite larger or smaller based on potency! add_juice() - var/datum/plant_gene/trait/glow/G = seed.get_gene(/datum/plant_gene/trait/glow) - if(G) - set_light(G.get_lum(seed)) @@ -83,8 +80,10 @@ msg += reag_txt msg += "
    *---------*" user << msg - return - return + else + if(seed) + for(var/datum/plant_gene/trait/T in seed.genes) + T.on_attackby(src, O, user) // Various gene procs @@ -95,8 +94,11 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/throw_impact(atom/hit_atom) if(!..()) //was it caught by a mob? - if(seed && seed.get_gene(/datum/plant_gene/trait/squash)) - squash(hit_atom) + if(seed) + for(var/datum/plant_gene/trait/T in seed.genes) + T.on_throw_impact(src, hit_atom) + if(seed.get_gene(/datum/plant_gene/trait/squash)) + squash(hit_atom) /obj/item/weapon/reagent_containers/food/snacks/grown/proc/squash(atom/target) var/turf/T = get_turf(target) @@ -109,10 +111,7 @@ new splat_type(T) if(trash) - if(ispath(trash, /obj/item/weapon/grown) || ispath(trash, /obj/item/weapon/reagent_containers/food/snacks/grown)) - new trash(T, seed) - else - new trash(T) + generate_trash(T) visible_message("[src] has been squashed.","You hear a smack.") if(seed) @@ -137,15 +136,43 @@ T.on_cross(src, AM) ..() + +// Glow gene procs +/obj/item/weapon/reagent_containers/food/snacks/grown/Destroy() + if(seed) + var/datum/plant_gene/trait/glow/G = seed.get_gene(/datum/plant_gene/trait/glow) + if(G && ismob(loc)) + loc.AddLuminosity(-G.get_lum(seed)) + return ..() + +/obj/item/weapon/reagent_containers/food/snacks/grown/pickup(mob/user) + ..() + if(seed) + var/datum/plant_gene/trait/glow/G = seed.get_gene(/datum/plant_gene/trait/glow) + if(G) + SetLuminosity(0) + user.AddLuminosity(G.get_lum(seed)) + +/obj/item/weapon/reagent_containers/food/snacks/grown/dropped(mob/user) + ..() + if(seed) + var/datum/plant_gene/trait/glow/G = seed.get_gene(/datum/plant_gene/trait/glow) + if(G) + user.AddLuminosity(-G.get_lum(seed)) + SetLuminosity(G.get_lum(seed)) + +/obj/item/weapon/reagent_containers/food/snacks/grown/generate_trash(atom/location) + if(trash && ispath(trash, /obj/item/weapon/grown)) + . = new trash(location, seed) + trash = null + return + return ..() + // For item-containing growns such as eggy or gatfruit -/obj/item/weapon/reagent_containers/food/snacks/grown/shell/attack_self(mob/user as mob) +/obj/item/weapon/reagent_containers/food/snacks/grown/shell/attack_self(mob/user) user.unEquip(src) if(trash) - var/obj/item/weapon/T - if(ispath(trash, /obj/item/weapon/grown) || ispath(trash, /obj/item/weapon/reagent_containers/food/snacks/grown)) - T = new trash(user.loc, seed) - else - T = new trash(user.loc) + var/obj/item/T = generate_trash() user.put_in_hands(T) user << "You open [src]\'s shell, revealing \a [T]." qdel(src) diff --git a/code/modules/hydroponics/grown/ambrosia.dm b/code/modules/hydroponics/grown/ambrosia.dm index ef576982be..2b66f86a45 100644 --- a/code/modules/hydroponics/grown/ambrosia.dm +++ b/code/modules/hydroponics/grown/ambrosia.dm @@ -21,6 +21,7 @@ yield = 6 potency = 5 icon_dead = "ambrosia-dead" + genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/ambrosia/deus) reagents_add = list("space_drugs" = 0.15, "bicaridine" = 0.1, "kelotane" = 0.1, "vitamin" = 0.04, "nutriment" = 0.05, "toxin" = 0.1) @@ -61,7 +62,7 @@ mutatelist = list() reagents_add = list("earthsblood" = 0.05, "nutriment" = 0.06, "vitamin" = 0.05) rarity = 30 //These are some pretty good plants right here - oneharvest = TRUE + genes = list() weed_rate = 4 weed_chance = 100 diff --git a/code/modules/hydroponics/grown/apple.dm b/code/modules/hydroponics/grown/apple.dm index 2de7432669..4d4712e093 100644 --- a/code/modules/hydroponics/grown/apple.dm +++ b/code/modules/hydroponics/grown/apple.dm @@ -12,6 +12,7 @@ growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi' icon_grow = "apple-grow" icon_dead = "apple-dead" + genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/apple/gold) reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1) diff --git a/code/modules/hydroponics/grown/banana.dm b/code/modules/hydroponics/grown/banana.dm index 6f6b04f66e..903b14b1cf 100644 --- a/code/modules/hydroponics/grown/banana.dm +++ b/code/modules/hydroponics/grown/banana.dm @@ -10,7 +10,7 @@ endurance = 30 growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi' icon_dead = "banana-dead" - genes = list(/datum/plant_gene/trait/slip) + genes = list(/datum/plant_gene/trait/slip, /datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/banana/mime, /obj/item/seeds/banana/bluespace) reagents_add = list("banana" = 0.1, "potassium" = 0.1, "vitamin" = 0.04, "nutriment" = 0.02) @@ -25,7 +25,7 @@ bitesize = 5 /obj/item/weapon/reagent_containers/food/snacks/grown/banana/suicide_act(mob/user) - user.visible_message("[user] is aiming the [src.name] at themself! It looks like \he's trying to commit suicide.") + user.visible_message("[user] is aiming [src] at [user.p_them()]self! It looks like [user.p_theyre()] trying to commit suicide!") playsound(loc, 'sound/items/bikehorn.ogg', 50, 1, -1) sleep(25) if(!user) @@ -43,13 +43,13 @@ desc = "A peel from a banana." icon_state = "banana_peel" item_state = "banana_peel" - w_class = 1 + w_class = WEIGHT_CLASS_TINY throwforce = 0 throw_speed = 3 throw_range = 7 /obj/item/weapon/grown/bananapeel/suicide_act(mob/user) - user.visible_message("[user] is deliberately slipping on the [src.name]! It looks like \he's trying to commit suicide.") + user.visible_message("[user] is deliberately slipping on [src]! It looks like [user.p_theyre()] trying to commit suicide!") playsound(loc, 'sound/misc/slip.ogg', 50, 1, -1) return (BRUTELOSS) @@ -91,7 +91,7 @@ plantname = "Bluespace Banana Tree" product = /obj/item/weapon/reagent_containers/food/snacks/grown/banana/bluespace mutatelist = list() - genes = list(/datum/plant_gene/trait/slip, /datum/plant_gene/trait/teleport) + genes = list(/datum/plant_gene/trait/slip, /datum/plant_gene/trait/teleport, /datum/plant_gene/trait/repeated_harvest) reagents_add = list("singulo" = 0.2, "banana" = 0.1, "vitamin" = 0.04, "nutriment" = 0.02) rarity = 30 diff --git a/code/modules/hydroponics/grown/beans.dm b/code/modules/hydroponics/grown/beans.dm index 5252b53b59..277dfd0629 100644 --- a/code/modules/hydroponics/grown/beans.dm +++ b/code/modules/hydroponics/grown/beans.dm @@ -13,6 +13,7 @@ growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' icon_grow = "soybean-grow" icon_dead = "soybean-dead" + genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/soya/koi) reagents_add = list("vitamin" = 0.04, "nutriment" = 0.05) diff --git a/code/modules/hydroponics/grown/berries.dm b/code/modules/hydroponics/grown/berries.dm index 3ac1d6c11e..c709e22bde 100644 --- a/code/modules/hydroponics/grown/berries.dm +++ b/code/modules/hydroponics/grown/berries.dm @@ -13,6 +13,7 @@ growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi' icon_grow = "berry-grow" // Uses one growth icons set for all the subtypes icon_dead = "berry-dead" // Same for the dead icon + genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/berry/glow, /obj/item/seeds/berry/poison) reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1) @@ -76,7 +77,7 @@ lifespan = 30 endurance = 25 mutatelist = list() - genes = list(/datum/plant_gene/trait/glow/berry) + genes = list(/datum/plant_gene/trait/glow/berry , /datum/plant_gene/trait/noreact, /datum/plant_gene/trait/repeated_harvest) reagents_add = list("uranium" = 0.25, "iodine" = 0.2, "vitamin" = 0.04, "nutriment" = 0.1) rarity = 20 @@ -104,6 +105,7 @@ growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi' icon_grow = "cherry-grow" icon_dead = "cherry-dead" + genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/cherry/blue) reagents_add = list("nutriment" = 0.07, "sugar" = 0.07) @@ -153,6 +155,7 @@ growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi' icon_grow = "grape-grow" icon_dead = "grape-dead" + genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/grape/green) reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1, "sugar" = 0.1) diff --git a/code/modules/hydroponics/grown/cannabis.dm b/code/modules/hydroponics/grown/cannabis.dm new file mode 100644 index 0000000000..2788e0ba13 --- /dev/null +++ b/code/modules/hydroponics/grown/cannabis.dm @@ -0,0 +1,118 @@ +// Cannabis +/obj/item/seeds/cannabis + name = "pack of cannabis seeds" + desc = "Taxable." + icon_state = "seed-cannabis" + species = "cannabis" + plantname = "Cannabis Plant" + product = /obj/item/weapon/reagent_containers/food/snacks/grown/cannabis + maturation = 8 + potency = 20 + growthstages = 1 + growing_icon = 'goon/icons/obj/hydroponics.dmi' + icon_grow = "cannabis-grow" // Uses one growth icons set for all the subtypes + icon_dead = "cannabis-dead" // Same for the dead icon + genes = list(/datum/plant_gene/trait/repeated_harvest) + mutatelist = list(/obj/item/seeds/cannabis/rainbow, + /obj/item/seeds/cannabis/death, + /obj/item/seeds/cannabis/white, + /obj/item/seeds/cannabis/ultimate) + reagents_add = list("space_drugs" = 0.15, "lipolicide" = 0.35) // gives u the munchies + + +/obj/item/seeds/cannabis/rainbow + name = "pack of rainbow weed seeds" + desc = "These seeds grow into rainbow weed. Groovy." + icon_state = "seed-megacannabis" + species = "megacannabis" + plantname = "Rainbow Weed" + product = /obj/item/weapon/reagent_containers/food/snacks/grown/cannabis/rainbow + mutatelist = list() + reagents_add = list("mindbreaker" = 0.15, "lipolicide" = 0.35) + rarity = 40 + +/obj/item/seeds/cannabis/death + name = "pack of deathweed seeds" + desc = "These seeds grow into deathweed. Not groovy." + icon_state = "seed-blackcannabis" + species = "blackcannabis" + plantname = "Deathweed" + product = /obj/item/weapon/reagent_containers/food/snacks/grown/cannabis/death + mutatelist = list() + reagents_add = list("cyanide" = 0.35, "space_drugs" = 0.15, "lipolicide" = 0.15) + rarity = 40 + +/obj/item/seeds/cannabis/white + name = "pack of lifeweed seeds" + desc = "I will give unto him that is munchies of the fountain of the cravings of life, freely." + icon_state = "seed-whitecannabis" + species = "whitecannabis" + plantname = "Lifeweed" + product = /obj/item/weapon/reagent_containers/food/snacks/grown/cannabis/white + mutatelist = list() + reagents_add = list("omnizine" = 0.35, "space_drugs" = 0.15, "lipolicide" = 0.15) + rarity = 40 + + +/obj/item/seeds/cannabis/ultimate + name = "pack of omega weed seeds" + desc = "These seeds grow into omega weed." + icon_state = "seed-ocannabis" + species = "ocannabis" + plantname = "Omega Weed" + product = /obj/item/weapon/reagent_containers/food/snacks/grown/cannabis/ultimate + mutatelist = list() + reagents_add = list("space_drugs" = 0.3, + "mindbreaker" = 0.3, + "mercury" = 0.15, + "lithium" = 0.15, + "atropine" = 0.15, + "haloperidol" = 0.15, + "methamphetamine" = 0.15, + "capsaicin" = 0.15, + "barbers_aid" = 0.15, + "bath_salts" = 0.15, + "itching_powder" = 0.15, + "crank" = 0.15, + "krokodil" = 0.15, + "histamine" = 0.15, + "lipolicide" = 0.15) + rarity = 69 + + +// --------------------------------------------------------------- + +/obj/item/weapon/reagent_containers/food/snacks/grown/cannabis + seed = /obj/item/seeds/cannabis + icon = 'goon/icons/obj/hydroponics.dmi' + name = "cannabis leaf" + desc = "Recently legalized in most galaxies." + icon_state = "cannabis" + filling_color = "#00FF00" + bitesize_mod = 2 + + +/obj/item/weapon/reagent_containers/food/snacks/grown/cannabis/rainbow + seed = /obj/item/seeds/cannabis/rainbow + name = "rainbow cannabis leaf" + desc = "Is it supposed to be glowing like that...?" + icon_state = "megacannabis" + +/obj/item/weapon/reagent_containers/food/snacks/grown/cannabis/death + seed = /obj/item/seeds/cannabis/death + name = "death cannabis leaf" + desc = "Looks a bit dark. Oh well." + icon_state = "blackcannabis" + +/obj/item/weapon/reagent_containers/food/snacks/grown/cannabis/white + seed = /obj/item/seeds/cannabis/white + name = "white cannabis leaf" + desc = "It feels smooth and nice to the touch." + icon_state = "whitecannabis" + +/obj/item/weapon/reagent_containers/food/snacks/grown/cannabis/ultimate + seed = /obj/item/seeds/cannabis/ultimate + name = "omega cannibas leaf" + desc = "You feel dizzy looking at it. What the fuck?" + icon_state = "ocannabis" + volume = 420 diff --git a/code/modules/hydroponics/grown/cereals.dm b/code/modules/hydroponics/grown/cereals.dm index 5db9902b76..66c5a17a84 100644 --- a/code/modules/hydroponics/grown/cereals.dm +++ b/code/modules/hydroponics/grown/cereals.dm @@ -9,7 +9,6 @@ production = 1 yield = 4 potency = 15 - oneharvest = 1 icon_dead = "wheat-dead" mutatelist = list(/obj/item/seeds/wheat/oat, /obj/item/seeds/wheat/meat) reagents_add = list("nutriment" = 0.04) diff --git a/code/modules/hydroponics/grown/chili.dm b/code/modules/hydroponics/grown/chili.dm index 4e641c4e8c..218f50cbd5 100644 --- a/code/modules/hydroponics/grown/chili.dm +++ b/code/modules/hydroponics/grown/chili.dm @@ -14,6 +14,7 @@ growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' icon_grow = "chili-grow" // Uses one growth icons set for all the subtypes icon_dead = "chili-dead" // Same for the dead icon + genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/chili/ice, /obj/item/seeds/chili/ghost) reagents_add = list("capsaicin" = 0.25, "vitamin" = 0.04, "nutriment" = 0.04) @@ -55,7 +56,7 @@ desc = "These seeds grow into a chili said to be the hottest in the galaxy." icon_state = "seed-chilighost" species = "chilighost" - plantname = "chilighost" + plantname = "Ghost Chili Plants" product = /obj/item/weapon/reagent_containers/food/snacks/grown/ghost_chili endurance = 10 maturation = 10 @@ -83,7 +84,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/ghost_chili/process() if(held_mob && src.loc == held_mob) - if( (held_mob.l_hand == src) || (held_mob.r_hand == src)) + if(held_mob.is_holding(src)) if(hasvar(held_mob,"gloves") && held_mob:gloves) return held_mob.bodytemperature += 15 * TEMPERATURE_DAMAGE_COEFFICIENT diff --git a/code/modules/hydroponics/grown/citrus.dm b/code/modules/hydroponics/grown/citrus.dm index f9e5515124..bf3408133a 100644 --- a/code/modules/hydroponics/grown/citrus.dm +++ b/code/modules/hydroponics/grown/citrus.dm @@ -19,6 +19,7 @@ yield = 4 potency = 15 growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi' + genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/orange) reagents_add = list("vitamin" = 0.04, "nutriment" = 0.05) @@ -44,6 +45,7 @@ growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi' icon_grow = "lime-grow" icon_dead = "lime-dead" + genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/lime) reagents_add = list("vitamin" = 0.04, "nutriment" = 0.05) @@ -68,56 +70,86 @@ growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi' icon_grow = "lime-grow" icon_dead = "lime-dead" - mutatelist = list(/obj/item/seeds/cash) + genes = list(/datum/plant_gene/trait/repeated_harvest) + mutatelist = list(/obj/item/seeds/firelemon) reagents_add = list("vitamin" = 0.04, "nutriment" = 0.05) /obj/item/weapon/reagent_containers/food/snacks/grown/citrus/lemon seed = /obj/item/seeds/lemon name = "lemon" - desc = "When life gives you lemons, be grateful they aren't limes." + desc = "When life gives you lemons, make lemonade." icon_state = "lemon" filling_color = "#FFD700" -// Money Lemon -/obj/item/seeds/cash - name = "pack of money seeds" - desc = "When life gives you lemons, mutate them into cash." - icon_state = "seed-cash" - species = "cashtree" - plantname = "Money Tree" - product = /obj/item/weapon/reagent_containers/food/snacks/grown/shell/moneyfruit +// Combustible lemon +/obj/item/seeds/firelemon //combustible lemon is too long so firelemon + name = "pack of combustible lemon seeds" + desc = "When life gives you lemons, don't make lemonade. Make life take the lemons back! Get mad! I don't want your damn lemons!" + icon_state = "seed-firelemon" + species = "firelemon" + plantname = "Combustible Lemon Tree" + product = /obj/item/weapon/reagent_containers/food/snacks/grown/firelemon growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi' icon_grow = "lime-grow" icon_dead = "lime-dead" + genes = list(/datum/plant_gene/trait/repeated_harvest) lifespan = 55 endurance = 45 yield = 4 reagents_add = list("nutriment" = 0.05) - rarity = 50 // Nanotrasen approves... -/obj/item/weapon/reagent_containers/food/snacks/grown/shell/moneyfruit - seed = /obj/item/seeds/cash - name = "Money Fruit" - desc = "Looks like a lemon with something bulging from the inside." - icon_state = "moneyfruit" +/obj/item/weapon/reagent_containers/food/snacks/grown/firelemon + seed = /obj/item/seeds/firelemon + name = "Combustible Lemon" + desc = "Made for burning houses down." + icon_state = "firelemon" bitesize_mod = 2 -/obj/item/weapon/reagent_containers/food/snacks/grown/shell/moneyfruit/add_juice() +/obj/item/weapon/reagent_containers/food/snacks/grown/firelemon/attack_self(mob/living/user) + var/area/A = get_area(user) + user.visible_message("[user] primes the [src]!", "You prime the [src]!") + var/message = "[ADMIN_LOOKUPFLW(user)] primed a combustible lemon for detonation at [A] [ADMIN_COORDJMP(user)]" + bombers += message + message_admins(message) + log_game("[key_name(user)] primed a combustible lemon for detonation at [A] [COORD(user)].") + if(iscarbon(user)) + var/mob/living/carbon/C = user + C.throw_mode_on() + icon_state = "firelemon_active" + playsound(loc, 'sound/weapons/armbomb.ogg', 75, 1, -3) + addtimer(src, "prime", rand(10, 60)) + +/obj/item/weapon/reagent_containers/food/snacks/grown/firelemon/burn() + prime() ..() - switch(seed.potency) - if(0 to 10) - trash = /obj/item/stack/spacecash - if(11 to 20) - trash = /obj/item/stack/spacecash/c10 - if(21 to 30) - trash = /obj/item/stack/spacecash/c20 - if(31 to 40) - trash = /obj/item/stack/spacecash/c50 - if(41 to 50) - trash = /obj/item/stack/spacecash/c100 - if(51 to 60) - trash = /obj/item/stack/spacecash/c200 - if(61 to 80) - trash = /obj/item/stack/spacecash/c500 + +/obj/item/weapon/reagent_containers/food/snacks/grown/firelemon/proc/update_mob() + if(ismob(loc)) + var/mob/M = loc + M.unEquip(src) + +/obj/item/weapon/reagent_containers/food/snacks/grown/firelemon/ex_act(severity) + qdel(src) //Ensuring that it's deleted by its own explosion + +/obj/item/weapon/reagent_containers/food/snacks/grown/firelemon/proc/prime() + switch(seed.potency) //Combustible lemons are alot like IEDs, lots of flame, very little bang. + if(0 to 30) + update_mob() + explosion(src.loc,-1,-1,2, flame_range = 1) + qdel(src) + if(31 to 50) + update_mob() + explosion(src.loc,-1,-1,2, flame_range = 2) + qdel(src) + if(51 to 70) + update_mob() + explosion(src.loc,-1,-1,2, flame_range = 3) + qdel(src) + if(71 to 90) + update_mob() + explosion(src.loc,-1,-1,2, flame_range = 4) + qdel(src) else - trash = /obj/item/stack/spacecash/c1000 \ No newline at end of file + update_mob() + explosion(src.loc,-1,-1,2, flame_range = 5) + qdel(src) diff --git a/code/modules/hydroponics/grown/cocoa_vanilla.dm b/code/modules/hydroponics/grown/cocoa_vanilla.dm index c29fa70fc1..6e04bdaf97 100644 --- a/code/modules/hydroponics/grown/cocoa_vanilla.dm +++ b/code/modules/hydroponics/grown/cocoa_vanilla.dm @@ -14,6 +14,7 @@ growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi' icon_grow = "cocoapod-grow" icon_dead = "cocoapod-dead" + genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/cocoapod/vanillapod) reagents_add = list("cocoa" = 0.25, "nutriment" = 0.1) @@ -33,6 +34,7 @@ species = "vanillapod" plantname = "Vanilla Tree" product = /obj/item/weapon/reagent_containers/food/snacks/grown/vanillapod + genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list() reagents_add = list("vanilla" = 0.25, "nutriment" = 0.1) diff --git a/code/modules/hydroponics/grown/corn.dm b/code/modules/hydroponics/grown/corn.dm index 677d60fbfc..76b5f1152e 100644 --- a/code/modules/hydroponics/grown/corn.dm +++ b/code/modules/hydroponics/grown/corn.dm @@ -7,7 +7,6 @@ plantname = "Corn Stalks" product = /obj/item/weapon/reagent_containers/food/snacks/grown/corn maturation = 8 - oneharvest = 1 potency = 20 growthstages = 3 growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' @@ -31,19 +30,20 @@ desc = "A reminder of meals gone by." icon_state = "corncob" item_state = "corncob" - w_class = 1 + w_class = WEIGHT_CLASS_TINY throwforce = 0 throw_speed = 3 throw_range = 7 /obj/item/weapon/grown/corncob/attackby(obj/item/weapon/grown/W, mob/user, params) - ..() if(W.is_sharp()) user << "You use [W] to fashion a pipe out of the corn cob!" new /obj/item/clothing/mask/cigarette/pipe/cobpipe (user.loc) user.unEquip(src) qdel(src) return + else + return ..() // Snapcorn /obj/item/seeds/corn/snapcorn @@ -62,7 +62,7 @@ desc = "A cob with snap pops" icon_state = "snapcorn" item_state = "corncob" - w_class = 1 + w_class = WEIGHT_CLASS_TINY throwforce = 0 throw_speed = 3 throw_range = 7 diff --git a/code/modules/hydroponics/grown/eggplant.dm b/code/modules/hydroponics/grown/eggplant.dm index d5934c1c3a..8ec46ff77d 100644 --- a/code/modules/hydroponics/grown/eggplant.dm +++ b/code/modules/hydroponics/grown/eggplant.dm @@ -11,6 +11,7 @@ growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' icon_grow = "eggplant-grow" icon_dead = "eggplant-dead" + genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/eggplant/eggy) reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1) diff --git a/code/modules/hydroponics/grown/flowers.dm b/code/modules/hydroponics/grown/flowers.dm index 824ceadd50..984b005781 100644 --- a/code/modules/hydroponics/grown/flowers.dm +++ b/code/modules/hydroponics/grown/flowers.dm @@ -10,7 +10,6 @@ maturation = 8 yield = 6 potency = 20 - oneharvest = 1 growthstages = 3 growing_icon = 'icons/obj/hydroponics/growing_flowers.dmi' icon_grow = "poppy-grow" @@ -76,9 +75,8 @@ production = 1 yield = 2 potency = 30 - oneharvest = 1 growthstages = 4 - plant_type = PLANT_WEED + genes = list(/datum/plant_gene/trait/plant_type/weed_hardy) growing_icon = 'icons/obj/hydroponics/growing_flowers.dmi' reagents_add = list("nutriment" = 0.04) @@ -103,7 +101,6 @@ endurance = 20 production = 2 yield = 2 - oneharvest = 1 growthstages = 3 growing_icon = 'icons/obj/hydroponics/growing_flowers.dmi' icon_grow = "sunflower-grow" @@ -120,7 +117,7 @@ force = 0 slot_flags = SLOT_HEAD throwforce = 0 - w_class = 1 + w_class = WEIGHT_CLASS_TINY throw_speed = 1 throw_range = 3 @@ -170,7 +167,7 @@ force = 0 slot_flags = SLOT_HEAD throwforce = 0 - w_class = 1 + w_class = WEIGHT_CLASS_TINY throw_speed = 1 throw_range = 3 attack_verb = list("roasted", "scorched", "burned") @@ -180,8 +177,9 @@ force = round((5 + seed.potency / 5), 1) /obj/item/weapon/grown/novaflower/attack(mob/living/carbon/M, mob/user) - if(!..()) return - if(istype(M, /mob/living)) + if(!..()) + return + if(isliving(M)) M << "You are lit on fire from the intense heat of the [name]!" M.adjust_fire_stacks(seed.potency / 20) if(M.IgniteMob()) diff --git a/code/modules/hydroponics/grown/grass_carpet.dm b/code/modules/hydroponics/grown/grass_carpet.dm index 44eb27c449..0772267baf 100644 --- a/code/modules/hydroponics/grown/grass_carpet.dm +++ b/code/modules/hydroponics/grown/grass_carpet.dm @@ -14,6 +14,7 @@ growthstages = 2 icon_grow = "grass-grow" icon_dead = "grass-dead" + genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/grass/carpet) reagents_add = list("nutriment" = 0.02, "hydrogen" = 0.05) @@ -24,23 +25,28 @@ icon_state = "grassclump" filling_color = "#32CD32" bitesize_mod = 2 + var/stacktype = /obj/item/stack/tile/grass + var/tile_coefficient = 0.02 // 1/50 /obj/item/weapon/reagent_containers/food/snacks/grown/grass/attack_self(mob/user) user << "You prepare the astroturf." - var/grassAmt = 1 + round(seed.potency / 50) // The grass we're holding + var/grassAmt = 1 + round(seed.potency * tile_coefficient) // The grass we're holding for(var/obj/item/weapon/reagent_containers/food/snacks/grown/grass/G in user.loc) // The grass on the floor - grassAmt += 1 + round(G.seed.potency) + if(G.type != type) + continue + grassAmt += 1 + round(G.seed.potency * tile_coefficient) qdel(G) - while(grassAmt > 0) - var/obj/item/stack/tile/GT = new /obj/item/stack/tile/grass(user.loc) - if(grassAmt >= GT.max_amount) - GT.amount = GT.max_amount - else - GT.amount = grassAmt - for(var/obj/item/stack/tile/grass/GR in user.loc) - if(GR != GT && GR.amount < GR.max_amount) - GR.attackby(GT, user) //we try to transfer all old unfinished stacks to the new stack we created. + var/obj/item/stack/tile/GT = new stacktype(user.loc) + while(grassAmt > GT.max_amount) + GT.amount = GT.max_amount grassAmt -= GT.max_amount + GT = new stacktype(user.loc) + GT.amount = grassAmt + for(var/obj/item/stack/tile/T in user.loc) + if((T.type == stacktype) && (T.amount < T.max_amount)) + GT.merge(T) + if(GT.amount <= 0) + break qdel(src) return @@ -51,31 +57,13 @@ icon_state = "seed-carpet" species = "carpet" plantname = "Carpet" - product = /obj/item/weapon/reagent_containers/food/snacks/grown/carpet - mutatelist = list(/obj/item/seeds/grass/carpet) + product = /obj/item/weapon/reagent_containers/food/snacks/grown/grass/carpet + mutatelist = list() rarity = 10 -/obj/item/weapon/reagent_containers/food/snacks/grown/carpet +/obj/item/weapon/reagent_containers/food/snacks/grown/grass/carpet seed = /obj/item/seeds/grass/carpet name = "carpet" desc = "The textile industry's dark secret." icon_state = "carpetclump" - -/obj/item/weapon/reagent_containers/food/snacks/grown/carpet/attack_self(mob/user) - user << "You roll out the red carpet." - var/carpetAmt = 1 + round(seed.potency / 50) // The carpet we're holding - for(var/obj/item/weapon/reagent_containers/food/snacks/grown/carpet/C in user.loc) // The carpet on the floor - carpetAmt += 1 + round(C.seed.potency / 50) - qdel(C) - while(carpetAmt > 0) - var/obj/item/stack/tile/CT = new /obj/item/stack/tile/carpet(user.loc) - if(carpetAmt >= CT.max_amount) - CT.amount = CT.max_amount - else - CT.amount = carpetAmt - for(var/obj/item/stack/tile/carpet/CA in user.loc) - if(CA != CT && CA.amount < CA.max_amount) - CA.attackby(CT, user) //we try to transfer all old unfinished stacks to the new stack we created. - carpetAmt -= CT.max_amount - qdel(src) - return + stacktype = /obj/item/stack/tile/carpet diff --git a/code/modules/hydroponics/grown/kudzu.dm b/code/modules/hydroponics/grown/kudzu.dm index c9f67b3958..33a3f5132f 100644 --- a/code/modules/hydroponics/grown/kudzu.dm +++ b/code/modules/hydroponics/grown/kudzu.dm @@ -7,11 +7,11 @@ species = "kudzu" plantname = "Kudzu" product = /obj/item/weapon/reagent_containers/food/snacks/grown/kudzupod + genes = list(/datum/plant_gene/trait/repeated_harvest, /datum/plant_gene/trait/plant_type/weed_hardy) lifespan = 20 endurance = 10 yield = 4 growthstages = 4 - plant_type = PLANT_WEED rarity = 30 var/list/mutations = list() reagents_add = list("charcoal" = 0.04, "nutriment" = 0.02) @@ -22,12 +22,12 @@ return S /obj/item/seeds/kudzu/suicide_act(mob/user) - user.visible_message("[user] swallows the pack of kudzu seeds! It looks like \he's trying to commit suicide..") + user.visible_message("[user] swallows the pack of kudzu seeds! It looks like [user.p_theyre()] trying to commit suicide!") plant(user) return (BRUTELOSS) /obj/item/seeds/kudzu/proc/plant(mob/user) - if(istype(user.loc,/turf/open/space)) + if(isspaceturf(user.loc)) return var/turf/T = get_turf(src) message_admins("Kudzu planted by [key_name_admin(user)](?) (FLW) at ([T.x],[T.y],[T.z] - (JMP))",0,1) @@ -57,6 +57,7 @@ if(prob(20)) mutations.Remove(pick(temp_mut_list)) temp_mut_list.Cut() + if(S.has_reagent("welding_fuel", 5)) for(var/datum/spacevine_mutation/SM in mutations) if(SM.quality == POSITIVE) @@ -64,20 +65,26 @@ if(prob(20)) mutations.Remove(pick(temp_mut_list)) temp_mut_list.Cut() + if(S.has_reagent("phenol", 5)) for(var/datum/spacevine_mutation/SM in mutations) if(SM.quality == MINOR_NEGATIVE) temp_mut_list += SM if(prob(20)) mutations.Remove(pick(temp_mut_list)) + temp_mut_list.Cut() + if(S.has_reagent("blood", 15)) - production += rand(15, -5) + production = Clamp(production + rand(15, -5),1,10) + if(S.has_reagent("amatoxin", 5)) - production += rand(5, -15) + production = Clamp(production + rand(5, -15),1,10) + if(S.has_reagent("plasma", 5)) - potency += rand(5, -15) + potency = Clamp(potency + rand(5, -15),0,100) + if(S.has_reagent("holywater", 10)) - potency += rand(15, -5) + potency = Clamp(potency + rand(15, -5),0,100) /obj/item/weapon/reagent_containers/food/snacks/grown/kudzupod diff --git a/code/modules/hydroponics/grown/melon.dm b/code/modules/hydroponics/grown/melon.dm index 5f9c27d4d7..4c6fa15b04 100644 --- a/code/modules/hydroponics/grown/melon.dm +++ b/code/modules/hydroponics/grown/melon.dm @@ -10,8 +10,9 @@ endurance = 40 growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi' icon_dead = "watermelon-dead" + genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/watermelon/holy) - reagents_add = list("vitamin" = 0.04, "nutriment" = 0.2) + reagents_add = list("water" = 0.2, "vitamin" = 0.04, "nutriment" = 0.2) /obj/item/weapon/reagent_containers/food/snacks/grown/watermelon seed = /obj/item/seeds/watermelon @@ -21,7 +22,7 @@ slice_path = /obj/item/weapon/reagent_containers/food/snacks/watermelonslice slices_num = 5 dried_type = null - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL filling_color = "#008000" bitesize_mod = 3 @@ -43,4 +44,4 @@ desc = "The water within this melon has been blessed by some deity that's particularly fond of watermelon." icon_state = "holymelon" filling_color = "#FFD700" - dried_type = null \ No newline at end of file + dried_type = null diff --git a/code/modules/hydroponics/grown/misc.dm b/code/modules/hydroponics/grown/misc.dm index 4504d1740b..36406bcc6a 100644 --- a/code/modules/hydroponics/grown/misc.dm +++ b/code/modules/hydroponics/grown/misc.dm @@ -11,9 +11,8 @@ production = 1 yield = -1 potency = -1 - oneharvest = 1 growthstages = 4 - plant_type = PLANT_WEED + genes = list(/datum/plant_gene/trait/plant_type/weed_hardy) // Cabbage @@ -31,6 +30,7 @@ yield = 4 growthstages = 1 growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' + genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/replicapod) reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1) @@ -51,6 +51,7 @@ species = "sugarcane" plantname = "Sugarcane" product = /obj/item/weapon/reagent_containers/food/snacks/grown/sugarcane + genes = list(/datum/plant_gene/trait/repeated_harvest) lifespan = 60 endurance = 50 maturation = 3 @@ -73,8 +74,9 @@ desc = "These seeds grow into .357 revolvers." icon_state = "seed-gatfruit" species = "gatfruit" - plantname = "gatfruit" + plantname = "Gatfruit Tree" product = /obj/item/weapon/reagent_containers/food/snacks/grown/shell/gatfruit + genes = list(/datum/plant_gene/trait/repeated_harvest) lifespan = 20 endurance = 20 maturation = 40 @@ -92,7 +94,7 @@ desc = "It smells like burning." icon_state = "gatfruit" origin_tech = "combat=6" - trash = /obj/item/weapon/gun/projectile/revolver + trash = /obj/item/weapon/gun/ballistic/revolver bitesize_mod = 2 //Cherry Bombs @@ -115,6 +117,8 @@ seed = /obj/item/seeds/cherry/bomb bitesize_mod = 2 volume = 125 //Gives enough room for the black powder at max potency + obj_integrity = 40 + max_integrity = 40 /obj/item/weapon/reagent_containers/food/snacks/grown/cherry_bomb/attack_self(mob/living/user) var/area/A = get_area(user) @@ -123,12 +127,14 @@ log_game("[user] ([user.key ? user.key : "no key"]) primed a cherry bomb for detonation at [A] ([user.x],[user.y],[user.z]).") prime() -/obj/item/weapon/reagent_containers/food/snacks/grown/cherry_bomb/burn() - prime() - ..() +/obj/item/weapon/reagent_containers/food/snacks/grown/cherry_bomb/deconstruct(disassembled = TRUE) + if(!disassembled) + prime() + if(!qdeleted(src)) + qdel(src) /obj/item/weapon/reagent_containers/food/snacks/grown/cherry_bomb/ex_act(severity) - qdel(src) //Ensuring that it's deleted by its own explosion + qdel(src) //Ensuring that it's deleted by its own explosion. Also prevents mass chain reaction with piles of cherry bombs /obj/item/weapon/reagent_containers/food/snacks/grown/cherry_bomb/proc/prime() icon_state = "cherry_bomb_lit" diff --git a/code/modules/hydroponics/grown/mushrooms.dm b/code/modules/hydroponics/grown/mushrooms.dm index 22c2e119dc..776a3c329f 100644 --- a/code/modules/hydroponics/grown/mushrooms.dm +++ b/code/modules/hydroponics/grown/mushrooms.dm @@ -17,9 +17,8 @@ production = 5 yield = 4 potency = 15 - oneharvest = 1 growthstages = 4 - plant_type = PLANT_MUSHROOM + genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism) growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi' reagents_add = list("morphine" = 0.35, "charcoal" = 0.35, "nutriment" = 0) @@ -44,12 +43,11 @@ maturation = 10 production = 5 yield = 4 - oneharvest = 1 growthstages = 3 - plant_type = PLANT_MUSHROOM + genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism) growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi' mutatelist = list(/obj/item/seeds/angel) - reagents_add = list("mushroomhallucinogen" = 0.04, "amatoxin" = 0.35, "nutriment" = 0) + reagents_add = list("mushroomhallucinogen" = 0.04, "amatoxin" = 0.35, "nutriment" = 0, "growthserum" = 0.1) /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/amanita seed = /obj/item/seeds/amanita @@ -73,9 +71,8 @@ production = 5 yield = 2 potency = 35 - oneharvest = 1 growthstages = 3 - plant_type = PLANT_MUSHROOM + genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism) growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi' reagents_add = list("mushroomhallucinogen" = 0.04, "amatoxin" = 0.1, "nutriment" = 0, "amanitin" = 0.2) rarity = 30 @@ -101,9 +98,8 @@ production = 1 yield = 5 potency = 15 - oneharvest = 1 growthstages = 3 - plant_type = PLANT_MUSHROOM + genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism) growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi' reagents_add = list("mushroomhallucinogen" = 0.25, "nutriment" = 0.02) @@ -127,9 +123,8 @@ production = 1 yield = 4 potency = 15 - oneharvest = 1 growthstages = 3 - plant_type = PLANT_MUSHROOM + genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism) growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi' mutatelist = list(/obj/item/seeds/plump/walkingmushroom) reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1) @@ -168,7 +163,7 @@ origin_tech = "biotech=4;programming=5" /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/walkingmushroom/attack_self(mob/user) - if(istype(user.loc,/turf/open/space)) + if(isspaceturf(user.loc)) return var/mob/living/simple_animal/hostile/mushroom/M = new /mob/living/simple_animal/hostile/mushroom(user.loc) M.maxHealth += round(seed.endurance / 4) @@ -194,9 +189,8 @@ production = 1 yield = 5 potency = 15 - oneharvest = 1 growthstages = 3 - plant_type = PLANT_MUSHROOM + genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism) growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi' reagents_add = list("nutriment" = 0.1) @@ -222,11 +216,9 @@ production = 1 yield = 3 //-> spread potency = 30 //-> brightness - oneharvest = 1 growthstages = 4 - plant_type = PLANT_MUSHROOM rarity = 20 - genes = list(/datum/plant_gene/trait/glow) + genes = list(/datum/plant_gene/trait/glow, /datum/plant_gene/trait/plant_type/fungal_metabolism) growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi' mutatelist = list(/obj/item/seeds/glowshroom/glowcap) reagents_add = list("radium" = 0.1, "phosphorus" = 0.1, "nutriment" = 0.04) @@ -237,15 +229,16 @@ desc = "Mycena Bregprox: This species of mushroom glows in the dark." icon_state = "glowshroom" filling_color = "#00FA9A" - var/effect_path = /obj/effect/glowshroom + var/effect_path = /obj/structure/glowshroom origin_tech = "biotech=4;plasmatech=6" /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/glowshroom/attack_self(mob/user) - if(istype(user.loc,/turf/open/space)) + if(isspaceturf(user.loc)) return - var/obj/effect/glowshroom/planted = new effect_path(user.loc) + var/obj/structure/glowshroom/planted = new effect_path(user.loc) planted.delay = planted.delay - seed.production * 100 //So the delay goes DOWN with better stats instead of up. :I - planted.endurance = seed.endurance + planted.obj_integrity = seed.endurance + planted.max_integrity = seed.endurance planted.yield = seed.yield planted.potency = seed.potency user << "You plant [src]." @@ -261,9 +254,8 @@ icon_grow = "glowshroom-grow" icon_dead = "glowshroom-dead" plantname = "Glowcaps" - plant_type = PLANT_MUSHROOM product = /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/glowshroom/glowcap - genes = list(/datum/plant_gene/trait/glow, /datum/plant_gene/trait/cell_charge) + genes = list(/datum/plant_gene/trait/glow, /datum/plant_gene/trait/cell_charge, /datum/plant_gene/trait/plant_type/fungal_metabolism) mutatelist = list() reagents_add = list("teslium" = 0.1, "nutriment" = 0.04) rarity = 30 @@ -274,5 +266,5 @@ desc = "Mycena Ruthenia: This species of mushroom glows in the dark, but aren't bioluminescent. They're warm to the touch..." icon_state = "glowcap" filling_color = "#00FA9A" - effect_path = /obj/effect/glowshroom/glowcap + effect_path = /obj/structure/glowshroom/glowcap origin_tech = "biotech=4;powerstorage=6;plasmatech=4" diff --git a/code/modules/hydroponics/grown/nettle.dm b/code/modules/hydroponics/grown/nettle.dm index 76ec1a3f3b..f6248c64c4 100644 --- a/code/modules/hydroponics/grown/nettle.dm +++ b/code/modules/hydroponics/grown/nettle.dm @@ -9,7 +9,7 @@ endurance = 40 // tuff like a toiger yield = 4 growthstages = 5 - plant_type = PLANT_WEED + genes = list(/datum/plant_gene/trait/repeated_harvest, /datum/plant_gene/trait/plant_type/weed_hardy) mutatelist = list(/obj/item/seeds/nettle/death) reagents_add = list("sacid" = 0.5) @@ -23,6 +23,7 @@ endurance = 25 maturation = 8 yield = 2 + genes = list(/datum/plant_gene/trait/repeated_harvest, /datum/plant_gene/trait/plant_type/weed_hardy, /datum/plant_gene/trait/stinging) mutatelist = list() reagents_add = list("facid" = 0.5, "sacid" = 0.5) rarity = 20 @@ -36,14 +37,14 @@ force = 15 hitsound = 'sound/weapons/bladeslice.ogg' throwforce = 5 - w_class = 1 + w_class = WEIGHT_CLASS_TINY throw_speed = 1 throw_range = 3 origin_tech = "combat=3" attack_verb = list("stung") /obj/item/weapon/grown/nettle/suicide_act(mob/user) - user.visible_message("[user] is eating some of the [src.name]! It looks like \he's trying to commit suicide.") + user.visible_message("[user] is eating some of [src]! It looks like [user.p_theyre()] trying to commit suicide!") return (BRUTELOSS|TOXLOSS) /obj/item/weapon/grown/nettle/pickup(mob/living/user) @@ -51,16 +52,13 @@ if(!iscarbon(user)) return 0 var/mob/living/carbon/C = user - if(ishuman(user)) - var/mob/living/carbon/human/H = C - if(H.gloves) - return 0 - var/organ = ((H.hand ? "l_":"r_") + "arm") - var/obj/item/bodypart/affecting = H.get_bodypart(organ) - if(affecting && affecting.take_damage(0, force)) - H.update_damage_overlays(0) - else - C.take_organ_damage(0,force) + if(C.gloves) + return 0 + var/hit_zone = (C.held_index_to_dir(C.active_hand_index) == "l" ? "l_":"r_") + "arm" + var/obj/item/bodypart/affecting = C.get_bodypart(hit_zone) + if(affecting) + if(affecting.receive_damage(0, force)) + C.update_damage_overlays() C << "The nettle burns your bare hand!" return 1 @@ -94,15 +92,15 @@ force = round((5 + seed.potency / 2.5), 1) /obj/item/weapon/grown/nettle/death/pickup(mob/living/carbon/user) - ..() if(..()) if(prob(50)) user.Paralyse(5) user << "You are stunned by the Deathnettle when you try picking it up!" /obj/item/weapon/grown/nettle/death/attack(mob/living/carbon/M, mob/user) - if(!..()) return - if(istype(M, /mob/living)) + if(!..()) + return + if(isliving(M)) M << "You are stunned by the powerful acid of the Deathnettle!" add_logs(user, M, "attacked", src) diff --git a/code/modules/hydroponics/grown/potato.dm b/code/modules/hydroponics/grown/potato.dm index 1a75691f44..77c773632c 100644 --- a/code/modules/hydroponics/grown/potato.dm +++ b/code/modules/hydroponics/grown/potato.dm @@ -10,11 +10,11 @@ maturation = 10 production = 1 yield = 4 - oneharvest = 1 growthstages = 4 growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' icon_grow = "potato-grow" icon_dead = "potato-dead" + genes = list(/datum/plant_gene/trait/battery) mutatelist = list(/obj/item/seeds/potato/sweet) reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1) @@ -26,30 +26,26 @@ filling_color = "#E9967A" bitesize = 100 + +/obj/item/weapon/reagent_containers/food/snacks/grown/potato/wedges + name = "potato wedges" + desc = "a potato cut up into wedges" + icon_state = "potato_wedge" + filling_color = "#E9967A" + bitesize = 100 + + /obj/item/weapon/reagent_containers/food/snacks/grown/potato/attackby(obj/item/weapon/W, mob/user, params) - ..() - if(istype(W, /obj/item/stack/cable_coil)) - var/obj/item/stack/cable_coil/C = W - if (C.use(5)) - user << "You add some cable to the potato and slide it inside the battery encasing." - var/obj/item/weapon/stock_parts/cell/potato/pocell = new /obj/item/weapon/stock_parts/cell/potato(user.loc) - pocell.maxcharge = seed.potency * 20 + if(W.is_sharp()) + user << "You cut the potato into wedges with [W]." + var/obj/item/weapon/reagent_containers/food/snacks/grown/potato/wedges/Wedges = new /obj/item/weapon/reagent_containers/food/snacks/grown/potato/wedges + if(!remove_item_from_storage(user)) + user.unEquip(src) + user.put_in_hands(Wedges) + qdel(src) + else + return ..() - // The secret of potato supercells! - var/datum/plant_gene/trait/cell_charge/G = seed.get_gene(/datum/plant_gene/trait/cell_charge) - if(G) // 10x charge for deafult cell charge gene - 20 000 with 100 potency. - pocell.maxcharge *= G.rate*1000 - pocell.charge = pocell.maxcharge - pocell.desc = "A rechargable starch based power cell. This one has a power rating of [pocell.maxcharge], and you should not swallow it." - - if(reagents.has_reagent("plasma", 2)) - pocell.rigged = 1 - - qdel(src) - return - else - user << "You need five lengths of cable to make a potato battery!" - return // Sweet Potato /obj/item/seeds/potato/sweet diff --git a/code/modules/hydroponics/grown/pumpkin.dm b/code/modules/hydroponics/grown/pumpkin.dm index bc33c02409..1354edbcaa 100644 --- a/code/modules/hydroponics/grown/pumpkin.dm +++ b/code/modules/hydroponics/grown/pumpkin.dm @@ -12,6 +12,7 @@ growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi' icon_grow = "pumpkin-grow" icon_dead = "pumpkin-dead" + genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/pumpkin/blumpkin) reagents_add = list("vitamin" = 0.04, "nutriment" = 0.2) @@ -24,12 +25,13 @@ bitesize_mod = 2 /obj/item/weapon/reagent_containers/food/snacks/grown/pumpkin/attackby(obj/item/weapon/W as obj, mob/user as mob, params) - ..() if(W.is_sharp()) user.show_message("You carve a face into [src]!", 1) new /obj/item/clothing/head/hardhat/pumpkinhead(user.loc) qdel(src) return + else + return ..() // Blumpkin /obj/item/seeds/pumpkin/blumpkin @@ -40,7 +42,7 @@ plantname = "Blumpkin Vines" product = /obj/item/weapon/reagent_containers/food/snacks/grown/blumpkin mutatelist = list() - reagents_add = list("ammonia" = 0.2, "chlorine" = 0.2, "nutriment" = 0.2) + reagents_add = list("ammonia" = 0.2, "chlorine" = 0.1, "nutriment" = 0.2) rarity = 20 /obj/item/weapon/reagent_containers/food/snacks/grown/blumpkin @@ -49,4 +51,4 @@ desc = "The pumpkin's toxic sibling." icon_state = "blumpkin" filling_color = "#87CEFA" - bitesize_mod = 2 \ No newline at end of file + bitesize_mod = 2 diff --git a/code/modules/hydroponics/grown/random.dm b/code/modules/hydroponics/grown/random.dm new file mode 100644 index 0000000000..1f48f83c9a --- /dev/null +++ b/code/modules/hydroponics/grown/random.dm @@ -0,0 +1,29 @@ +//Random seeds; stats, traits, and plant type are randomized for each seed. + +/obj/item/seeds/random + name = "pack of strange seeds" + desc = "Mysterious seeds as strange as their name implies. Spooky" + icon_state = "seed-x" + species = "?????" + plantname = "strange plant" + product = /obj/item/weapon/reagent_containers/food/snacks/grown/random + icon_grow = "xpod-grow" + icon_dead = "xpod-dead" + icon_harvest = "xpod-harvest" + growthstages = 4 + +/obj/item/seeds/random/New() + randomize_stats() + ..() + if(prob(60)) + add_random_reagents() + if(prob(50)) + add_random_traits() + add_random_plant_type(35) + +/obj/item/weapon/reagent_containers/food/snacks/grown/random + seed = /obj/item/seeds/random + name = "strange plant" + desc = "What could this even be?" + icon_state = "crunchy" + bitesize_mod = 2 \ No newline at end of file diff --git a/code/modules/hydroponics/grown/replicapod.dm b/code/modules/hydroponics/grown/replicapod.dm index 2fc857d23c..3eb6fb3a89 100644 --- a/code/modules/hydroponics/grown/replicapod.dm +++ b/code/modules/hydroponics/grown/replicapod.dm @@ -12,7 +12,6 @@ maturation = 10 production = 1 yield = 1 //seeds if there isn't a dna inside - oneharvest = 1 potency = 30 var/ckey = null var/realName = null @@ -42,7 +41,8 @@ user << "The seeds reject the sample!" else user << "The seeds already contain a genetic sample!" - ..() + else + return ..() /obj/item/seeds/replicapod/get_analyzer_text() var/text = ..() @@ -58,7 +58,7 @@ if(config.revival_pod_plants) if(ckey) for(var/mob/M in player_list) - if(istype(M, /mob/dead/observer)) + if(isobserver(M)) var/mob/dead/observer/O = M if(O.ckey == ckey && O.can_reenter_corpse) make_podman = 1 @@ -66,19 +66,19 @@ else if(M.ckey == ckey && M.stat == DEAD && !M.suiciding) make_podman = 1 - if(istype(M, /mob/living)) + if(isliving(M)) var/mob/living/L = M make_podman = !L.hellbound break else //If the player has ghosted from his corpse before blood was drawn, his ckey is no longer attached to the mob, so we need to match up the cloned player through the mind key for(var/mob/M in player_list) if(mind && M.mind && ckey(M.mind.key) == ckey(mind.key) && M.ckey && M.client && M.stat == 2 && !M.suiciding) - if(istype(M, /mob/dead/observer)) + if(isobserver(M)) var/mob/dead/observer/O = M if(!O.can_reenter_corpse) break make_podman = 1 - if(istype(M, /mob/living)) + if(isliving(M)) var/mob/living/L = M make_podman = !L.hellbound ckey_holder = M.ckey @@ -106,8 +106,9 @@ var/seed_count = 1 if(prob(getYield() * 20)) seed_count++ + var/output_loc = parent.Adjacent(user) ? user.loc : parent.loc //needed for TK for(var/i=0,iYou sharpen the carrot into a shiv with [I].
    " var/obj/item/weapon/kitchen/knife/carrotshiv/Shiv = new /obj/item/weapon/kitchen/knife/carrotshiv if(!remove_item_from_storage(user)) @@ -65,7 +64,6 @@ lifespan = 60 endurance = 50 yield = 6 - oneharvest = 1 growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' icon_dead = "whitebeet-dead" mutatelist = list(/obj/item/seeds/redbeet) @@ -90,9 +88,9 @@ lifespan = 60 endurance = 50 yield = 6 - oneharvest = 1 growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' icon_dead = "whitebeet-dead" + genes = list(/datum/plant_gene/trait/maxchem) reagents_add = list("vitamin" = 0.05, "nutriment" = 0.05) /obj/item/weapon/reagent_containers/food/snacks/grown/redbeet @@ -100,4 +98,4 @@ name = "red beet" desc = "You can't beat red beet." icon_state = "redbeet" - bitesize_mod = 2 \ No newline at end of file + bitesize_mod = 2 diff --git a/code/modules/hydroponics/grown/tea_coffee.dm b/code/modules/hydroponics/grown/tea_coffee.dm index aa99cee7cd..2f1d6c97bd 100644 --- a/code/modules/hydroponics/grown/tea_coffee.dm +++ b/code/modules/hydroponics/grown/tea_coffee.dm @@ -12,6 +12,7 @@ yield = 5 growthstages = 5 icon_dead = "tea-dead" + genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/tea/astra) reagents_add = list("vitamin" = 0.04, "teapowder" = 0.1) @@ -55,6 +56,7 @@ yield = 5 growthstages = 5 icon_dead = "coffee-dead" + genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/coffee/robusta) reagents_add = list("vitamin" = 0.04, "coffeepowder" = 0.1) diff --git a/code/modules/hydroponics/grown/tobacco.dm b/code/modules/hydroponics/grown/tobacco.dm index 1642f51cfa..98fc2536f3 100644 --- a/code/modules/hydroponics/grown/tobacco.dm +++ b/code/modules/hydroponics/grown/tobacco.dm @@ -9,7 +9,6 @@ lifespan = 20 maturation = 5 production = 5 - oneharvest = 1 yield = 10 growthstages = 3 icon_dead = "tobacco-dead" diff --git a/code/modules/hydroponics/grown/tomato.dm b/code/modules/hydroponics/grown/tomato.dm index f93cc1c6ad..c8d4db730d 100644 --- a/code/modules/hydroponics/grown/tomato.dm +++ b/code/modules/hydroponics/grown/tomato.dm @@ -10,7 +10,7 @@ growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi' icon_grow = "tomato-grow" icon_dead = "tomato-dead" - genes = list(/datum/plant_gene/trait/squash) + genes = list(/datum/plant_gene/trait/squash, /datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/tomato/blue, /obj/item/seeds/tomato/blood, /obj/item/seeds/tomato/killer) reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1) @@ -56,7 +56,7 @@ yield = 2 icon_grow = "bluetomato-grow" mutatelist = list(/obj/item/seeds/tomato/blue/bluespace) - genes = list(/datum/plant_gene/trait/slip) + genes = list(/datum/plant_gene/trait/slip, /datum/plant_gene/trait/repeated_harvest) reagents_add = list("lube" = 0.2, "vitamin" = 0.04, "nutriment" = 0.1) rarity = 20 @@ -79,7 +79,7 @@ product = /obj/item/weapon/reagent_containers/food/snacks/grown/tomato/blue/bluespace yield = 2 mutatelist = list() - genes = list(/datum/plant_gene/trait/squash, /datum/plant_gene/trait/slip, /datum/plant_gene/trait/teleport) + genes = list(/datum/plant_gene/trait/squash, /datum/plant_gene/trait/slip, /datum/plant_gene/trait/teleport, /datum/plant_gene/trait/repeated_harvest) reagents_add = list("lube" = 0.2, "singulo" = 0.2, "vitamin" = 0.04, "nutriment" = 0.1) rarity = 50 @@ -100,7 +100,7 @@ plantname = "Killer-Tomato Plants" product = /obj/item/weapon/reagent_containers/food/snacks/grown/tomato/killer yield = 2 - oneharvest = 1 + genes = list(/datum/plant_gene/trait/squash) growthstages = 2 icon_grow = "killertomato-grow" icon_harvest = "killertomato-harvest" @@ -124,7 +124,7 @@ ..() /obj/item/weapon/reagent_containers/food/snacks/grown/tomato/killer/attack_self(mob/user) - if(awakening || istype(user.loc,/turf/open/space)) + if(awakening || isspaceturf(user.loc)) return user << "You begin to awaken the Killer Tomato..." awakening = 1 diff --git a/code/modules/hydroponics/grown/towercap.dm b/code/modules/hydroponics/grown/towercap.dm index b403ebee52..6e68291baf 100644 --- a/code/modules/hydroponics/grown/towercap.dm +++ b/code/modules/hydroponics/grown/towercap.dm @@ -11,11 +11,10 @@ production = 1 yield = 5 potency = 50 - oneharvest = 1 growthstages = 3 growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi' icon_dead = "towercap-dead" - plant_type = PLANT_MUSHROOM + genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism) mutatelist = list(/obj/item/seeds/tower/steel) /obj/item/seeds/tower/steel @@ -38,7 +37,7 @@ icon_state = "logs" force = 5 throwforce = 5 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL throw_speed = 2 throw_range = 3 origin_tech = "materials=1" @@ -53,7 +52,6 @@ /obj/item/weapon/grown/log/attackby(obj/item/weapon/W, mob/user, params) - ..() if(W.sharpness) user.show_message("You make [plank_name] out of \the [src]!", 1) var/obj/item/stack/plank = new plank_type(user.loc, 1 + round(seed.potency / 25)) @@ -77,6 +75,8 @@ return else usr << "You must dry this first!" + else + return ..() /obj/item/weapon/grown/log/tree seed = null @@ -90,4 +90,104 @@ icon_state = "steellogs" accepted = list() plank_type = /obj/item/stack/rods - plank_name = "rods" \ No newline at end of file + plank_name = "rods" + + +/////////BONFIRES////////// + +/obj/structure/bonfire + name = "bonfire" + desc = "For grilling, broiling, charring, smoking, heating, roasting, toasting, simmering, searing, melting, and occasionally burning things." + icon = 'icons/obj/hydroponics/equipment.dmi' + icon_state = "bonfire" + density = FALSE + anchored = TRUE + buckle_lying = 0 + var/burning = 0 + var/fire_stack_strength = 5 + +/obj/structure/bonfire/attackby(obj/item/W, mob/user, params) + if(istype(W, /obj/item/stack/rods) && !can_buckle) + var/obj/item/stack/rods/R = W + R.use(1) + can_buckle = 1 + buckle_requires_restraints = 1 + user << "You add a rod to [src]." + var/image/U = image(icon='icons/obj/hydroponics/equipment.dmi',icon_state="bonfire_rod",pixel_y=16) + underlays += U + if(W.is_hot()) + StartBurning() + + +/obj/structure/bonfire/attack_hand(mob/user) + if(burning) + user << "You need to extinguish [src] before removing the logs!" + return + if(!has_buckled_mobs() && do_after(user, 50, target = src)) + for(var/I in 1 to 5) + var/obj/item/weapon/grown/log/L = new /obj/item/weapon/grown/log(src.loc) + L.pixel_x += rand(1,4) + L.pixel_y += rand(1,4) + qdel(src) + return + ..() + + +/obj/structure/bonfire/proc/CheckOxygen() + if(isopenturf(loc)) + var/turf/open/O = loc + if(O.air) + var/G = O.air.gases + if(G["o2"][MOLES] > 16) + return 1 + return 0 + +/obj/structure/bonfire/proc/StartBurning() + if(!burning && CheckOxygen()) + icon_state = "bonfire_on_fire" + burning = 1 + SetLuminosity(6) + Burn() + START_PROCESSING(SSobj, src) + +/obj/structure/bonfire/fire_act(exposed_temperature, exposed_volume) + StartBurning() + +/obj/structure/bonfire/Crossed(atom/movable/AM) + if(burning) + Burn() + +/obj/structure/bonfire/proc/Burn() + var/turf/current_location = get_turf(src) + current_location.hotspot_expose(1000,500,1) + for(var/A in current_location) + if(A == src) + continue + if(isobj(A)) + var/obj/O = A + O.fire_act(1000, 500) + else if(isliving(A)) + var/mob/living/L = A + L.adjust_fire_stacks(fire_stack_strength) + L.IgniteMob() + +/obj/structure/bonfire/process() + if(!CheckOxygen()) + extinguish() + return + Burn() + +/obj/structure/bonfire/extinguish() + if(burning) + icon_state = "bonfire" + burning = 0 + SetLuminosity(0) + STOP_PROCESSING(SSobj, src) + +/obj/structure/bonfire/buckle_mob(mob/living/M, force = 0) + if(..()) + M.pixel_y += 13 + +/obj/structure/bonfire/unbuckle_mob(mob/living/buckled_mob, force=0) + if(..()) + buckled_mob.pixel_y -= 13 \ No newline at end of file diff --git a/code/modules/hydroponics/growninedible.dm b/code/modules/hydroponics/growninedible.dm index 3514138036..361b31fcd6 100644 --- a/code/modules/hydroponics/growninedible.dm +++ b/code/modules/hydroponics/growninedible.dm @@ -5,7 +5,7 @@ /obj/item/weapon/grown // Grown weapons name = "grown_weapon" icon = 'icons/obj/hydroponics/harvest.dmi' - burn_state = FLAMMABLE + resistance_flags = FLAMMABLE var/obj/item/seeds/seed = null // type path, gets converted to item on New(). It's safe to assume it's always a seed item. /obj/item/weapon/grown/New(newloc, var/obj/item/seeds/new_seed = null) @@ -30,9 +30,6 @@ seed.prepare_result(src) transform *= TransformUsingVariable(seed.potency, 100, 0.5) add_juice() - var/datum/plant_gene/trait/glow/G = seed.get_gene(/datum/plant_gene/trait/glow) - if(G) - set_light(G.get_lum(seed)) /obj/item/weapon/grown/attackby(obj/item/O, mob/user, params) @@ -56,3 +53,37 @@ for(var/datum/plant_gene/trait/T in seed.genes) T.on_cross(src, AM) ..() + + +// Glow gene procs +/obj/item/weapon/grown/Destroy() + if(seed) + var/datum/plant_gene/trait/glow/G = seed.get_gene(/datum/plant_gene/trait/glow) + if(G && ismob(loc)) + loc.AddLuminosity(-G.get_lum(seed)) + return ..() + +/obj/item/weapon/grown/throw_impact(atom/hit_atom) + if(!..()) //was it caught by a mob? + if(seed) + for(var/datum/plant_gene/trait/T in seed.genes) + T.on_throw_impact(src, hit_atom) + +/obj/item/weapon/grown/pickup(mob/user) + ..() + if(seed) + var/datum/plant_gene/trait/glow/G = seed.get_gene(/datum/plant_gene/trait/glow) + if(G) + SetLuminosity(0) + user.AddLuminosity(G.get_lum(seed)) + +/obj/item/weapon/grown/dropped(mob/user) + ..() + if(seed) + var/datum/plant_gene/trait/glow/G = seed.get_gene(/datum/plant_gene/trait/glow) + if(G) + user.AddLuminosity(-G.get_lum(seed)) + SetLuminosity(G.get_lum(seed)) + +/obj/item/weapon/grown/microwave_act(obj/machine/microwave/M) + return \ No newline at end of file diff --git a/code/modules/hydroponics/hydroitemdefines.dm b/code/modules/hydroponics/hydroitemdefines.dm index 8a79a3dca1..ac0dbf054b 100644 --- a/code/modules/hydroponics/hydroitemdefines.dm +++ b/code/modules/hydroponics/hydroitemdefines.dm @@ -5,7 +5,7 @@ icon = 'icons/obj/device.dmi' icon_state = "hydro" item_state = "analyzer" - w_class = 1 + w_class = WEIGHT_CLASS_TINY slot_flags = SLOT_BELT origin_tech = "magnets=2;biotech=2" materials = list(MAT_METAL=30, MAT_GLASS=20) @@ -24,7 +24,7 @@ flags = OPENCONTAINER slot_flags = SLOT_BELT throwforce = 0 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL throw_speed = 3 throw_range = 10 @@ -33,7 +33,7 @@ reagents.add_reagent("weedkiller", 100) /obj/item/weapon/reagent_containers/spray/weedspray/suicide_act(mob/user) - user.visible_message("[user] is huffing the [src.name]! It looks like \he's trying to commit suicide.") + user.visible_message("[user] is huffing [src]! It looks like [user.p_theyre()] trying to commit suicide!") return (TOXLOSS) /obj/item/weapon/reagent_containers/spray/pestspray // -- Skie @@ -46,7 +46,7 @@ flags = OPENCONTAINER slot_flags = SLOT_BELT throwforce = 0 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL throw_speed = 3 throw_range = 10 @@ -55,7 +55,7 @@ reagents.add_reagent("pestkiller", 100) /obj/item/weapon/reagent_containers/spray/pestspray/suicide_act(mob/user) - viewers(user) << "[user] is huffing the [src.name]! It looks like \he's trying to commit suicide." + user.visible_message("[user] is huffing [src]! It looks like [user.p_theyre()] trying to commit suicide!") return (TOXLOSS) /obj/item/weapon/cultivator @@ -68,7 +68,7 @@ flags = CONDUCT force = 5 throwforce = 7 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL materials = list(MAT_METAL=50) attack_verb = list("slashed", "sliced", "cut", "clawed") hitsound = 'sound/weapons/bladeslice.ogg' @@ -80,7 +80,7 @@ icon_state = "hatchet" flags = CONDUCT force = 12 - w_class = 1 + w_class = WEIGHT_CLASS_TINY throwforce = 15 throw_speed = 3 throw_range = 4 @@ -91,7 +91,7 @@ sharpness = IS_SHARP /obj/item/weapon/hatchet/suicide_act(mob/user) - user.visible_message("[user] is chopping at \himself with the [src.name]! It looks like \he's trying to commit suicide.") + user.visible_message("[user] is chopping at [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!") playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1) return (BRUTELOSS) @@ -103,7 +103,7 @@ throwforce = 5 throw_speed = 2 throw_range = 3 - w_class = 4 + w_class = WEIGHT_CLASS_BULKY flags = CONDUCT armour_penetration = 20 slot_flags = SLOT_BACK @@ -111,9 +111,14 @@ attack_verb = list("chopped", "sliced", "cut", "reaped") hitsound = 'sound/weapons/bladeslice.ogg' -/obj/item/weapon/scythe/suicide_act(mob/user) // maybe later i'll actually figure out how to make it behead them - user.visible_message("[user] is beheading \himself with the [src.name]! It looks like \he's trying to commit suicide.") - playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1) +/obj/item/weapon/scythe/suicide_act(mob/user) + user.visible_message("[user] is beheading [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!") + if(iscarbon(user)) + var/mob/living/carbon/C = user + var/obj/item/bodypart/BP = C.get_bodypart("head") + if(BP) + BP.drop_limb() + playsound(loc,pick('sound/misc/desceration-01.ogg','sound/misc/desceration-02.ogg','sound/misc/desceration-01.ogg') ,50, 1, -1) return (BRUTELOSS) // ************************************* @@ -126,7 +131,7 @@ icon = 'icons/obj/chemical.dmi' icon_state = "bottle16" volume = 50 - w_class = 1 + w_class = WEIGHT_CLASS_TINY amount_per_transfer_from_this = 10 possible_transfer_amounts = list(1,2,5,10,15,25,50) @@ -158,7 +163,7 @@ /obj/item/weapon/reagent_containers/glass/bottle/nutrient/rh name = "bottle of Robust Harvest" - desc = "Contains a fertilizer that doubles the yield of a plant while causing no mutations." + desc = "Contains a fertilizer that increases the yield of a plant by 30% while causing no mutations." icon = 'icons/obj/chemical.dmi' icon_state = "bottle15" @@ -176,7 +181,7 @@ icon = 'icons/obj/chemical.dmi' icon_state = "bottle16" volume = 50 - w_class = 1 + w_class = WEIGHT_CLASS_TINY amount_per_transfer_from_this = 10 possible_transfer_amounts = list(1,2,5,10,15,25,50) diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index 6a00b9fa11..8a1379542d 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -4,6 +4,8 @@ icon_state = "hydrotray" density = 1 anchored = 1 + pixel_y = 8 + unique_rename = 1 var/waterlevel = 100 //The amount of water in the tray (max 100) var/maxwater = 100 //The maximum amount of water in the tray var/nutrilevel = 10 //The amount of nutrient in the tray (max 10) @@ -15,7 +17,7 @@ var/toxic = 0 //Toxicity in the tray? var/age = 0 //Current age var/dead = 0 //Is it dead? - var/health = 0 //Its health. + var/plant_health //Its health var/lastproduce = 0 //Last time it was harvested var/lastcycle = 0 //Used for timing of cycles. var/cycledelay = 200 //About 10 seconds / cycle @@ -23,11 +25,10 @@ var/obj/item/seeds/myseed = null //The currently planted seed var/rating = 1 var/unwrenchable = 1 - var/recent_bee_visit = FALSE //Have we been visited by a bee recently, so bees dont overpolinate one plant + var/recent_bee_visit = FALSE //Have we been visited by a bee recently, so bees dont overpollinate one plant var/using_irrigation = FALSE //If the tray is connected to other trays via irrigation hoses var/self_sustaining = FALSE //If the tray generates nutrients and water on its own - pixel_y=8 /obj/machinery/hydroponics/constructable name = "hydroponics tray" @@ -121,11 +122,11 @@ myseed.loc = src if(self_sustaining) - adjustNutri(2 / rating) - adjustWater(rand(8, 10) / rating) - adjustWeeds(-5 / rating) - adjustPests(-5 / rating) - adjustToxic(-5 / rating) + adjustNutri(1) + adjustWater(rand(3,5)) + adjustWeeds(-2) + adjustPests(-2) + adjustToxic(-2) if(world.time > (lastcycle + cycledelay)) lastcycle = world.time @@ -143,15 +144,15 @@ adjustNutri(-1 / rating) // Lack of nutrients hurts non-weeds - if(nutrilevel <= 0 && myseed.plant_type != PLANT_WEED) + if(nutrilevel <= 0 && !myseed.get_gene(/datum/plant_gene/trait/plant_type/weed_hardy)) adjustHealth(-rand(1,3)) //Photosynthesis///////////////////////////////////////////////////////// // Lack of light hurts non-mushrooms if(isturf(loc)) var/turf/currentTurf = loc - var/lightAmt = currentTurf.get_lumcount() - if(myseed.plant_type == PLANT_MUSHROOM) + var/lightAmt = currentTurf.lighting_lumcount + if(myseed.get_gene(/datum/plant_gene/trait/plant_type/fungal_metabolism)) if(lightAmt < 2) adjustHealth(-1 / rating) else // Non-mushroom @@ -163,7 +164,7 @@ adjustWater(-rand(1,6) / rating) // If the plant is dry, it loses health pretty fast, unless mushroom - if(waterlevel <= 10 && myseed.plant_type != PLANT_MUSHROOM) + if(waterlevel <= 10 && !myseed.get_gene(/datum/plant_gene/trait/plant_type/fungal_metabolism)) adjustHealth(-rand(0,1) / rating) if(waterlevel <= 0) adjustHealth(-rand(0,2) / rating) @@ -192,13 +193,13 @@ adjustHealth(-1 / rating) // If it's a weed, it doesn't stunt the growth - if(weedlevel >= 5 && myseed.plant_type != PLANT_WEED) + if(weedlevel >= 5 && !myseed.get_gene(/datum/plant_gene/trait/plant_type/weed_hardy)) adjustHealth(-1 / rating) //Health & Age/////////////////////////////////////////////////////////// - // Plant dies if health <= 0 - if(health <= 0) + // Plant dies if plant_health <= 0 + if(plant_health <= 0) plantdies() adjustWeeds(1 / rating) // Weeds flourish @@ -222,7 +223,7 @@ // Weeeeeeeeeeeeeeedddssss if(weedlevel >= 10 && prob(50)) // At this point the plant is kind of fucked. Weeds can overtake the plant spot. if(myseed) - if(myseed.plant_type == PLANT_NORMAL) // If a normal plant + if(!myseed.get_gene(/datum/plant_gene/trait/plant_type/weed_hardy) && !myseed.get_gene(/datum/plant_gene/trait/plant_type/fungal_metabolism)) // If a normal plant weedinvasion() else weedinvasion() // Weed invasion into empty tray @@ -256,10 +257,10 @@ if(self_sustaining) if(istype(src, /obj/machinery/hydroponics/soil)) - color = rgb(255, 175, 0) + add_atom_colour(rgb(255, 175, 0), FIXED_COLOUR_PRIORITY) else overlays += image('icons/obj/hydroponics/equipment.dmi', icon_state = "gaia_blessing") - set_light(3) + SetLuminosity(3) update_icon_hoses() @@ -270,9 +271,9 @@ if(!self_sustaining) if(myseed && myseed.get_gene(/datum/plant_gene/trait/glow)) var/datum/plant_gene/trait/glow/G = myseed.get_gene(/datum/plant_gene/trait/glow) - set_light(G.get_lum(myseed)) + SetLuminosity(G.get_lum(myseed)) else - set_light(0) + SetLuminosity(0) return @@ -305,7 +306,7 @@ add_overlay(image('icons/obj/hydroponics/equipment.dmi', icon_state = "over_lowwater3")) if(nutrilevel <= 2) add_overlay(image('icons/obj/hydroponics/equipment.dmi', icon_state = "over_lownutri3")) - if(health <= (myseed.endurance / 2)) + if(plant_health <= (myseed.endurance / 2)) add_overlay(image('icons/obj/hydroponics/equipment.dmi', icon_state = "over_lowhealth3")) if(weedlevel >= 5 || pestlevel >= 5 || toxic >= 40) add_overlay(image('icons/obj/hydroponics/equipment.dmi', icon_state = "over_alert3")) @@ -321,7 +322,7 @@ user << "It's dead!" else if (harvest) user << "It's ready to harvest." - else if (health <= (myseed.endurance / 2)) + else if (plant_health <= (myseed.endurance / 2)) user << "It looks unhealthy." else user << "[src] is empty." @@ -366,7 +367,7 @@ else myseed = new /obj/item/seeds/weeds(src) age = 0 - health = myseed.endurance + plant_health = myseed.endurance lastcycle = world.time harvest = 0 weedlevel = 0 // Reset @@ -375,13 +376,13 @@ visible_message("The [oldPlantName] is overtaken by some [myseed.plantname]!") -/obj/machinery/hydroponics/proc/mutate(lifemut = 2, endmut = 5, productmut = 1, yieldmut = 2, potmut = 25) // Mutates the current seed +/obj/machinery/hydroponics/proc/mutate(lifemut = 2, endmut = 5, productmut = 1, yieldmut = 2, potmut = 25, wrmut = 2, wcmut = 5, traitmut = 0) // Mutates the current seed if(!myseed) return - myseed.mutate(lifemut, endmut, productmut, yieldmut, potmut) + myseed.mutate(lifemut, endmut, productmut, yieldmut, potmut, wrmut, wcmut, traitmut) /obj/machinery/hydroponics/proc/hardmutate() - mutate(4, 10, 2, 4, 50) + mutate(4, 10, 2, 4, 50, 4, 10, 3) /obj/machinery/hydroponics/proc/mutatespecie() // Mutagent produced a new plant! @@ -399,7 +400,7 @@ hardmutate() age = 0 - health = myseed.endurance + plant_health = myseed.endurance lastcycle = world.time harvest = 0 weedlevel = 0 // Reset @@ -419,7 +420,7 @@ dead = 0 hardmutate() age = 0 - health = myseed.endurance + plant_health = myseed.endurance lastcycle = world.time harvest = 0 weedlevel = 0 // Reset @@ -432,7 +433,7 @@ /obj/machinery/hydroponics/proc/plantdies() // OH NOES!!!!! I put this all in one function to make things easier - health = 0 + plant_health = 0 harvest = 0 pestlevel = 0 // Pests die if(!dead) @@ -440,16 +441,17 @@ dead = 1 -/obj/machinery/hydroponics/proc/mutatepest() - if(pestlevel > 5) - visible_message("The pests seem to behave oddly...") - for(var/i=0, i<3, i++) - var/obj/effect/spider/spiderling/S = new(src.loc) - S.grow_as = /mob/living/simple_animal/hostile/poison/giant_spider/hunter - else - usr << "The pests seem to behave oddly, but quickly settle down..." -/obj/machinery/hydroponics/proc/applyChemicals(datum/reagents/S) +/obj/machinery/hydroponics/proc/mutatepest(mob/user) + if(pestlevel > 5) + message_admins("[ADMIN_LOOKUPFLW(user)] caused spiderling pests to spawn in a hydro tray") + log_game("[key_name(user)] caused spiderling pests to spawn in a hydro tray") + visible_message("The pests seem to behave oddly...") + spawn_atom_to_turf(/obj/structure/spider/spiderling/hunter, src, 3, FALSE) + else + user << "The pests seem to behave oddly, but quickly settle down..." + +/obj/machinery/hydroponics/proc/applyChemicals(datum/reagents/S, mob/user) if(myseed) myseed.on_chem_reaction(S) //In case seeds have some special interactions with special chems, currently only used by vines @@ -457,7 +459,8 @@ if(S.has_reagent("mutagen", 5) || S.has_reagent("radium", 10) || S.has_reagent("uranium", 10)) switch(rand(100)) if(91 to 100) - plantdies() + adjustHealth(-10) + user << "The plant shrivels and burns." if(81 to 90) mutatespecie() if(66 to 80) @@ -465,13 +468,13 @@ if(41 to 65) mutate() if(21 to 41) - usr << "The plants don't seem to react..." + user << "The plants don't seem to react..." if(11 to 20) mutateweed() if(1 to 10) - mutatepest() + mutatepest(user) else - usr << "Nothing happens..." + user << "Nothing happens..." // 2 or 1 units is enough to change the yield and other stats.// Can change the yield and other stats, but requires more than mutagen else if(S.has_reagent("mutagen", 2) || S.has_reagent("radium", 5) || S.has_reagent("uranium", 5)) @@ -489,18 +492,18 @@ // Nutriments if(S.has_reagent("eznutriment", 1)) - yieldmod = 1 * rating - mutmod = 1 * rating + yieldmod = 1 + mutmod = 1 adjustNutri(round(S.get_reagent_amount("eznutriment") * 1)) if(S.has_reagent("left4zednutriment", 1)) - yieldmod = 0 * rating - mutmod = 2 * rating + yieldmod = 0 + mutmod = 2 adjustNutri(round(S.get_reagent_amount("left4zednutriment") * 1)) if(S.has_reagent("robustharvestnutriment", 1)) - yieldmod = 2 * rating - mutmod = 0 * rating + yieldmod = 1.3 + mutmod = 0 adjustNutri(round(S.get_reagent_amount("robustharvestnutriment") *1 )) // Antitoxin binds shit pretty well. So the tox goes significantly down @@ -615,11 +618,11 @@ // Saltpetre is used for gardening IRL, to simplify highly, it speeds up growth and strengthens plants if(S.has_reagent("saltpetre", 1)) - adjustHealth(round(S.get_reagent_amount("saltpetre") * 0.25)) - if(myseed) - myseed.adjust_production(-round(S.get_reagent_amount("saltpetre") * 0.02)) - myseed.adjust_potency(round(S.get_reagent_amount("saltpetre") * 0.01)) - + var/salt = S.get_reagent_amount("saltpetre") + adjustHealth(round(salt * 0.25)) + if (myseed) + myseed.adjust_production(-round(salt/100)-prob(salt%100)) + myseed.adjust_potency(round(salt*0.50)) // Ash is also used IRL in gardening, as a fertilizer enhancer and weed killer if(S.has_reagent("ash", 1)) adjustHealth(round(S.get_reagent_amount("ash") * 0.25)) @@ -667,9 +670,9 @@ if(33 to 65) mutateweed() if(1 to 32) - mutatepest() + mutatepest(user) else - usr << "Nothing happens..." + user << "Nothing happens..." /obj/machinery/hydroponics/attackby(obj/item/O, mob/user, params) //Called when mob user "attacks" it with object O @@ -682,6 +685,16 @@ return if(alert(user, "This will make [src] self-sustaining but consume [O] forever. Are you sure?", "[name]", "I'm Sure", "Abort") == "Abort" || !user) return + if(!O || qdeleted(O)) + return + if(!Adjacent(user)) + return + if(self_sustaining) + user << "This [name] is already self-sustaining!" + return + if(myseed || weedlevel) + user << "[src] needs to be clear of plants and weeds!" + return user.visible_message("[user] gently pulls open the soil for [O] and places it inside.", "You tenderly root [O] into [src].") user.drop_item() qdel(O) @@ -746,7 +759,7 @@ if(istype(reagent_source, /obj/item/weapon/reagent_containers/food/snacks) || istype(reagent_source, /obj/item/weapon/reagent_containers/pill)) qdel(reagent_source) - H.applyChemicals(S) + H.applyChemicals(S, user) S.clear_reagents() qdel(S) @@ -764,9 +777,9 @@ dead = 0 myseed = O age = 1 - health = myseed.endurance + plant_health = myseed.endurance lastcycle = world.time - O.loc = src + O.forceMove(src) update_icon() else user << "[src] already has seeds in it!" @@ -811,8 +824,8 @@ if(!anchored && !isinspace()) user.visible_message("[user] begins to wrench [src] into place.", \ "You begin to wrench [src] in place...") - playsound(loc, 'sound/items/Ratchet.ogg', 50, 1) - if (do_after(user, 20/O.toolspeed, target = src)) + playsound(loc, O.usesound, 50, 1) + if (do_after(user, 20*O.toolspeed, target = src)) if(anchored) return anchored = 1 @@ -821,8 +834,8 @@ else if(anchored) user.visible_message("[user] begins to unwrench [src].", \ "You begin to unwrench [src]...") - playsound(loc, 'sound/items/Ratchet.ogg', 50, 1) - if (do_after(user, 20/O.toolspeed, target = src)) + playsound(loc, O.usesound, 50, 1) + if (do_after(user, 20*O.toolspeed, target = src)) if(!anchored) return anchored = 0 @@ -831,7 +844,7 @@ else if(istype(O, /obj/item/weapon/wirecutters) && unwrenchable) using_irrigation = !using_irrigation - playsound(src, 'sound/items/Wirecutter.ogg', 50, 1) + playsound(src, O.usesound, 50, 1) user.visible_message("[user] [using_irrigation ? "" : "dis"]connects [src]'s irrigation hoses.", \ "You [using_irrigation ? "" : "dis"]connect [src]'s irrigation hoses.") for(var/obj/machinery/hydroponics/h in range(1,src)) @@ -848,6 +861,10 @@ user.visible_message("[user] digs out the plants in [src]!", "You dig out all of [src]'s plants!") playsound(src, 'sound/effects/shovel_dig.ogg', 50, 1) if(myseed) //Could be that they're just using it as a de-weeder + age = 0 + plant_health = 0 + if(harvest) + harvest = FALSE //To make sure they can't just put in another seed and insta-harvest it qdel(myseed) myseed = null weedlevel = 0 //Has a side effect of cleaning up those nasty weeds @@ -857,7 +874,7 @@ return ..() /obj/machinery/hydroponics/attack_hand(mob/user) - if(istype(user, /mob/living/silicon)) //How does AI know what plant is? + if(issilicon(user)) //How does AI know what plant is? return if(harvest) myseed.harvest(user) @@ -879,7 +896,7 @@ user << "You fail to harvest anything useful!" else user << "You harvest [myseed.getYield()] items from the [myseed.plantname]." - if(myseed.oneharvest) + if(!myseed.get_gene(/datum/plant_gene/trait/repeated_harvest)) qdel(myseed) myseed = null dead = 0 @@ -897,7 +914,7 @@ /obj/machinery/hydroponics/proc/adjustHealth(adjustamt) if(myseed && !dead) - health = Clamp(health + adjustamt, 0, myseed.endurance) + plant_health = Clamp(plant_health + adjustamt, 0, myseed.endurance) /obj/machinery/hydroponics/proc/adjustToxic(adjustamt) toxic = Clamp(toxic + adjustamt, 0, 100) diff --git a/code/modules/hydroponics/plant_genes.dm b/code/modules/hydroponics/plant_genes.dm index 965c67d501..8caf48be48 100644 --- a/code/modules/hydroponics/plant_genes.dm +++ b/code/modules/hydroponics/plant_genes.dm @@ -78,6 +78,22 @@ S.potency = value +/datum/plant_gene/core/weed_rate + name = "Weed Growth Rate" + value = 1 + +/datum/plant_gene/core/weed_rate/apply_stat(obj/item/seeds/S) + S.weed_rate = value + + +/datum/plant_gene/core/weed_chance + name = "Weed Vulnerability" + value = 5 + +/datum/plant_gene/core/weed_chance/apply_stat(obj/item/seeds/S) + S.weed_chance = value + + // Reagent genes store reagent ID and reagent ratio. Amount of reagent in the plant = 1 + (potency * rate) /datum/plant_gene/reagent name = "Nutriment" @@ -157,14 +173,21 @@ /datum/plant_gene/trait/proc/on_consume(obj/item/weapon/reagent_containers/food/snacks/grown/G, mob/living/carbon/target) return + /datum/plant_gene/trait/proc/on_cross(obj/item/weapon/reagent_containers/food/snacks/grown/G, atom/target) return + /datum/plant_gene/trait/proc/on_slip(obj/item/weapon/reagent_containers/food/snacks/grown/G, mob/living/carbon/target) return + /datum/plant_gene/trait/proc/on_squash(obj/item/weapon/reagent_containers/food/snacks/grown/G, atom/target) return +/datum/plant_gene/trait/proc/on_attackby(obj/item/weapon/reagent_containers/food/snacks/grown/G, obj/item/I, mob/user) + return +/datum/plant_gene/trait/proc/on_throw_impact(obj/item/weapon/reagent_containers/food/snacks/grown/G, atom/target) + return /datum/plant_gene/trait/squash // Allows the plant to be squashed when thrown or slipped on, leaving a colored mess and trash type item behind. @@ -174,10 +197,6 @@ examine_line = "It has a lot of liquid contents inside." origin_tech = list("biotech" = 5) -/*/datum/plant_gene/trait/squash/on_slip(obj/item/weapon/reagent_containers/food/snacks/grown/G, mob/living/carbon/target) - G.squash(target)*/ - - /datum/plant_gene/trait/slip // Makes plant slippery, unless it has a grown-type trash. Then the trash gets slippery. // Applies other trait effects (teleporting, etc) to the target by on_slip. @@ -258,7 +277,7 @@ if(ismob(newloc)) G.pickup(newloc)//adjusts the lighting on the mob else - G.set_light(get_lum(G.seed)) + G.SetLuminosity(get_lum(G.seed)) /datum/plant_gene/trait/glow/berry name = "Strong Bioluminescence" @@ -276,7 +295,7 @@ if(isliving(target)) var/teleport_radius = max(round(G.seed.potency / 10), 1) var/turf/T = get_turf(target) - new /obj/effect/decal/cleanable/molten_item(T) //Leave a pile of goo behind for dramatic effect... + new /obj/effect/decal/cleanable/molten_object(T) //Leave a pile of goo behind for dramatic effect... do_teleport(target, T, teleport_radius) /datum/plant_gene/trait/teleport/on_slip(obj/item/weapon/reagent_containers/food/snacks/grown/G, mob/living/carbon/C) @@ -287,7 +306,7 @@ if(prob(50)) do_teleport(G, T, teleport_radius) else - new /obj/effect/decal/cleanable/molten_item(T) //Leave a pile of goo behind for dramatic effect... + new /obj/effect/decal/cleanable/molten_object(T) //Leave a pile of goo behind for dramatic effect... qdel(G) @@ -312,3 +331,79 @@ /datum/plant_gene/trait/maxchem/on_new(obj/item/weapon/reagent_containers/food/snacks/grown/G, newloc) ..() G.reagents.maximum_volume *= rate + +/datum/plant_gene/trait/repeated_harvest + name = "Perennial Growth" + +/datum/plant_gene/trait/repeated_harvest/can_add(obj/item/seeds/S) + if(!..()) + return FALSE + if(istype(S, /obj/item/seeds/replicapod)) + return FALSE + return TRUE + +/datum/plant_gene/trait/battery + name = "Capacitive Cell Production" + +/datum/plant_gene/trait/battery/on_attackby(obj/item/weapon/reagent_containers/food/snacks/grown/G, obj/item/I, mob/user) + if(istype(I, /obj/item/stack/cable_coil)) + var/obj/item/stack/cable_coil/C = I + if(C.use(5)) + user << "You add some cable to [G] and slide it inside the battery encasing." + var/obj/item/weapon/stock_parts/cell/potato/pocell = new /obj/item/weapon/stock_parts/cell/potato(user.loc) + pocell.icon_state = G.icon_state + pocell.maxcharge = G.seed.potency * 20 + + // The secret of potato supercells! + var/datum/plant_gene/trait/cell_charge/CG = G.seed.get_gene(/datum/plant_gene/trait/cell_charge) + if(CG) // 10x charge for deafult cell charge gene - 20 000 with 100 potency. + pocell.maxcharge *= CG.rate*1000 + pocell.charge = pocell.maxcharge + pocell.name = "[G] battery" + pocell.desc = "A rechargable plant based power cell. This one has a power rating of [pocell.maxcharge], and you should not swallow it." + + if(G.reagents.has_reagent("plasma", 2)) + pocell.rigged = 1 + + qdel(G) + else + user << "You need five lengths of cable to make a [G] battery!" + + +/datum/plant_gene/trait/stinging + name = "Hypodermic Prickles" + +/datum/plant_gene/trait/stinging/on_throw_impact(obj/item/weapon/reagent_containers/food/snacks/grown/G, atom/target) + if(isliving(target) && G.reagents && G.reagents.total_volume) + var/mob/living/L = target + if(L.reagents && L.can_inject(null, 0)) + var/injecting_amount = max(1, G.seed.potency*0.2) // Minimum of 1, max of 20 + var/fraction = min(injecting_amount/G.reagents.total_volume, 1) + G.reagents.reaction(L, INJECT, fraction) + G.reagents.trans_to(L, injecting_amount) + target << "You are pricked by [G]!" + +/datum/plant_gene/trait/smoke + name = "gaseous decomposition" + +/datum/plant_gene/trait/smoke/on_squash(obj/item/weapon/reagent_containers/food/snacks/grown/G, atom/target) + var/datum/effect_system/smoke_spread/chem/S = new + var/splat_location = get_turf(target) + var/smoke_amount = round(sqrt(G.seed.potency * 0.1), 1) + S.attach(splat_location) + S.set_up(G.reagents, smoke_amount, splat_location, 0) + S.start() + G.reagents.clear_reagents() + +/datum/plant_gene/trait/plant_type // Parent type + name = "you shouldn't see this" + trait_id = "plant_type" + +/datum/plant_gene/trait/plant_type/weed_hardy + name = "Weed Adaptation" + +/datum/plant_gene/trait/plant_type/fungal_metabolism + name = "Fungal Vitality" + +/datum/plant_gene/trait/plant_type/alien_properties + name ="?????" diff --git a/code/modules/hydroponics/seed_extractor.dm b/code/modules/hydroponics/seed_extractor.dm index 2579a8fd45..c90579b0da 100644 --- a/code/modules/hydroponics/seed_extractor.dm +++ b/code/modules/hydroponics/seed_extractor.dm @@ -47,10 +47,6 @@ var/piles = list() var/max_seeds = 1000 var/seed_multiplier = 1 - use_auto_lights = 1 - light_power_on = 1 - light_range_on = 3 - light_color = LIGHT_COLOR_BLUE /obj/machinery/seed_extractor/New() ..() @@ -110,7 +106,7 @@ user << "You add [O] to [src.name]." updateUsrDialog() return - else if(user.a_intent != "harm") + else if(user.a_intent != INTENT_HARM) user << "You can't extract any seeds from \the [O.name]!" else return ..() diff --git a/code/modules/hydroponics/seeds.dm b/code/modules/hydroponics/seeds.dm index d616089588..2cbef69b75 100644 --- a/code/modules/hydroponics/seeds.dm +++ b/code/modules/hydroponics/seeds.dm @@ -5,8 +5,8 @@ /obj/item/seeds icon = 'icons/obj/hydroponics/seeds.dmi' icon_state = "seed" // Unknown plant seed - these shouldn't exist in-game. - w_class = 1 - burn_state = FLAMMABLE + w_class = WEIGHT_CLASS_TINY + resistance_flags = FLAMMABLE var/plantname = "Plants" // Name of plant when planted. var/product // A type path. The thing that is created when the plant is harvested. var/species = "" // Used to update icons. Should match the name in the sprites unless all icon_* are overriden. @@ -21,10 +21,8 @@ var/maturation = 6 // Used to determine which sprite to switch to when growing. var/production = 6 // Changes the amount of time needed for a plant to become harvestable. var/yield = 3 // Amount of growns created per harvest. If is -1, the plant/shroom/weed is never meant to be harvested. - var/oneharvest = 0 // If a plant is cleared from the tray after harvesting, e.g. a carrot. var/potency = 10 // The 'power' of a plant. Generally effects the amount of reagent in a plant, also used in other ways. var/growthstages = 6 // Amount of growth sprites the plant has. - var/plant_type = PLANT_NORMAL // 0 = PLANT_NORMAL; 1 = PLANT_WEED; 2 = PLANT_MUSHROOM; 3 = PLANT_ALIEN var/rarity = 0 // How rare the plant is. Used for giving points to cargo when shipping off to Centcom. var/list/mutatelist = list() // The type of plants that this plant can mutate into. var/list/genes = list() // Plant genes are stored here, see plant_genes.dm for more info. @@ -34,9 +32,6 @@ // Stronger reagents must always come first to avoid being displaced by weaker ones. // Total amount of any reagent in plant is calculated by formula: 1 + round(potency * multiplier) - var/innate_yieldmod = 1 //modifier for yield, seperate to the one in Hydro trays, as that one is SPECIFICALLY for nutriment/chems (which means it's constantly reset) - //This is added onto the yield mod of the hydro tray, yield *= (parent.yieldmod+innate_yieldmod) - var/weed_rate = 1 //If the chance below passes, then this many weeds sprout during growth var/weed_chance = 5 //Percentage chance per tray update to grow weeds @@ -51,12 +46,14 @@ if(!icon_dead) icon_dead = "[species]-dead" - if(!icon_harvest && plant_type != PLANT_MUSHROOM && yield != -1) + if(!icon_harvest && !get_gene(/datum/plant_gene/trait/plant_type/fungal_metabolism) && yield != -1) icon_harvest = "[species]-harvest" if(!nogenes) // not used on Copy() genes += new /datum/plant_gene/core/lifespan(lifespan) genes += new /datum/plant_gene/core/endurance(endurance) + genes += new /datum/plant_gene/core/weed_rate(weed_rate) + genes += new /datum/plant_gene/core/weed_chance(weed_chance) if(yield != -1) genes += new /datum/plant_gene/core/yield(yield) genes += new /datum/plant_gene/core/production(production) @@ -80,6 +77,8 @@ S.production = production S.yield = yield S.potency = potency + S.weed_rate = weed_rate + S.weed_chance = weed_chance S.genes = list() for(var/g in genes) var/datum/plant_gene/G = g @@ -95,17 +94,21 @@ for(var/datum/plant_gene/reagent/R in genes) reagents_add[R.reagent_id] = R.rate -/obj/item/seeds/proc/mutate(lifemut = 2, endmut = 5, productmut = 1, yieldmut = 2, potmut = 25) +/obj/item/seeds/proc/mutate(lifemut = 2, endmut = 5, productmut = 1, yieldmut = 2, potmut = 25, wrmut = 2, wcmut = 5, traitmut = 0) adjust_lifespan(rand(-lifemut,lifemut)) adjust_endurance(rand(-endmut,endmut)) adjust_production(rand(-productmut,productmut)) adjust_yield(rand(-yieldmut,yieldmut)) adjust_potency(rand(-potmut,potmut)) + adjust_weed_rate(rand(-wrmut, wrmut)) + adjust_weed_chance(rand(-wcmut, wcmut)) + if(prob(traitmut)) + add_random_traits(1, 1) + /obj/item/seeds/bullet_act(obj/item/projectile/Proj) //Works with the Somatoray to modify plant variables. if(istype(Proj, /obj/item/projectile/energy/florayield)) - var/rating = 1 if(istype(loc, /obj/machinery/hydroponics)) var/obj/machinery/hydroponics/H = loc @@ -128,10 +131,11 @@ if(parent.yieldmod == 0) return_yield = min(return_yield, 1)//1 if above zero, 0 otherwise else - return_yield *= (parent.yieldmod+innate_yieldmod) + return_yield *= (parent.yieldmod) return return_yield + /obj/item/seeds/proc/harvest(mob/user = usr) var/obj/machinery/hydroponics/parent = loc //for ease of access var/t_amount = 0 @@ -151,6 +155,7 @@ return result + /obj/item/seeds/proc/prepare_result(var/obj/item/weapon/reagent_containers/food/snacks/grown/T) if(T.reagents) for(var/reagent_id in reagents_add) @@ -167,7 +172,7 @@ if(yield != -1) // Unharvestable shouldn't suddenly turn harvestable yield = Clamp(yield + adjustamt, 0, 10) - if(yield <= 0 && plant_type == PLANT_MUSHROOM) + if(yield <= 0 && get_gene(/datum/plant_gene/trait/plant_type/fungal_metabolism)) yield = 1 // Mushrooms always have a minimum yield of 1. var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/yield) if(C) @@ -199,18 +204,79 @@ if(C) C.value = potency +/obj/item/seeds/proc/adjust_weed_rate(adjustamt) + weed_rate = Clamp(weed_rate + adjustamt, 0, 100) + var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/weed_rate) + if(C) + C.value = weed_rate + +/obj/item/seeds/proc/adjust_weed_chance(adjustamt) + weed_chance = Clamp(weed_chance + adjustamt, 0, 100) + var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/weed_chance) + if(C) + C.value = weed_chance + +//Directly setting stats + +/obj/item/seeds/proc/set_yield(adjustamt) + if(yield != -1) // Unharvestable shouldn't suddenly turn harvestable + yield = Clamp(adjustamt, 0, 10) + + if(yield <= 0 && get_gene(/datum/plant_gene/trait/plant_type/fungal_metabolism)) + yield = 1 // Mushrooms always have a minimum yield of 1. + var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/yield) + if(C) + C.value = yield + +/obj/item/seeds/proc/set_lifespan(adjustamt) + lifespan = Clamp(adjustamt, 10, 100) + var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/lifespan) + if(C) + C.value = lifespan + +/obj/item/seeds/proc/set_endurance(adjustamt) + endurance = Clamp(adjustamt, 10, 100) + var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/endurance) + if(C) + C.value = endurance + +/obj/item/seeds/proc/set_production(adjustamt) + if(yield != -1) + production = Clamp(adjustamt, 2, 10) + var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/production) + if(C) + C.value = production + +/obj/item/seeds/proc/set_potency(adjustamt) + if(potency != -1) + potency = Clamp(adjustamt, 0, 100) + var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/potency) + if(C) + C.value = potency + +/obj/item/seeds/proc/set_weed_rate(adjustamt) + weed_rate = Clamp(adjustamt, 0, 100) + var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/weed_rate) + if(C) + C.value = weed_rate + +/obj/item/seeds/proc/set_weed_chance(adjustamt) + weed_chance = Clamp(adjustamt, 0, 100) + var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/weed_chance) + if(C) + C.value = weed_chance + /obj/item/seeds/proc/get_analyzer_text() //in case seeds have something special to tell to the analyzer var/text = "" - switch(plant_type) - if(PLANT_NORMAL) - text += "- Plant type: Normal plant\n" - if(PLANT_WEED) - text += "- Plant type: Weed. Can grow in nutrient-poor soil.\n" - if(PLANT_MUSHROOM) - text += "- Plant type: Mushroom. Can grow in dry soil.\n" - else - text += "- Plant type: UNKNOWN \n" + if(!get_gene(/datum/plant_gene/trait/plant_type/weed_hardy) && !get_gene(/datum/plant_gene/trait/plant_type/fungal_metabolism) && !get_gene(/datum/plant_gene/trait/plant_type/alien_properties)) + text += "- Plant type: Normal plant\n" + if(get_gene(/datum/plant_gene/trait/plant_type/weed_hardy)) + text += "- Plant type: Weed. Can grow in nutrient-poor soil.\n" + if(get_gene(/datum/plant_gene/trait/plant_type/fungal_metabolism)) + text += "- Plant type: Mushroom. Can grow in dry soil.\n" + if(get_gene(/datum/plant_gene/trait/plant_type/alien_properties)) + text += "- Plant type: UNKNOWN \n" if(potency != -1) text += "- Potency: [potency]\n" if(yield != -1) @@ -220,6 +286,8 @@ text += "- Production speed: [production]\n" text += "- Endurance: [endurance]\n" text += "- Lifespan: [lifespan]\n" + text += "- Weed Growth Rate: [weed_rate]\n" + text += "- Weed Vulnerability: [weed_chance]\n" if(rarity) text += "- Species Discovery Value: [rarity]\n" @@ -269,4 +337,44 @@ if(seed.icon_harvest) // mushrooms have no grown sprites, same for items with no product if(!(seed.icon_harvest in states)) - world << "[seed.name] ([seed.type]) lacks the [seed.icon_harvest] icon!" \ No newline at end of file + world << "[seed.name] ([seed.type]) lacks the [seed.icon_harvest] icon!" + +/obj/item/seeds/proc/randomize_stats() + set_lifespan(rand(25, 60)) + set_endurance(rand(15, 35)) + set_production(rand(2, 10)) + set_yield(rand(1, 10)) + set_potency(rand(10, 35)) + set_weed_rate(rand(1, 10)) + set_weed_chance(rand(5, 100)) + maturation = rand(6, 12) + +/obj/item/seeds/proc/add_random_reagents(lower = 0, upper = 2) + var/amount_random_reagents = rand(lower, upper) + for(var/i in 1 to amount_random_reagents) + var/random_amount = rand(4, 15) * 0.01 // this must be multiplied by 0.01, otherwise, it will not properly associate + var/datum/plant_gene/reagent/R = new(get_random_reagent_id(), random_amount) + if(R.can_add(src)) + genes += R + else + qdel(R) + reagents_from_genes() + +/obj/item/seeds/proc/add_random_traits(lower = 0, upper = 2) + var/amount_random_traits = rand(lower, upper) + for(var/i in 1 to amount_random_traits) + var/random_trait = pick((subtypesof(/datum/plant_gene/trait)-typesof(/datum/plant_gene/trait/plant_type))) + var/datum/plant_gene/trait/T = new random_trait + if(T.can_add(src)) + genes += T + else + qdel(T) + +/obj/item/seeds/proc/add_random_plant_type(normal_plant_chance = 75) + if(prob(normal_plant_chance)) + var/random_plant_type = pick(subtypesof(/datum/plant_gene/trait/plant_type)) + var/datum/plant_gene/trait/plant_type/P = new random_plant_type + if(P.can_add(src)) + genes += P + else + qdel(P) \ No newline at end of file diff --git a/code/modules/jobs/access.dm b/code/modules/jobs/access.dm index 009ba5b287..3f148b0c56 100644 --- a/code/modules/jobs/access.dm +++ b/code/modules/jobs/access.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 + /var/const/access_security = 1 // Security equipment /var/const/access_brig = 2 // Brig timers and permabrig @@ -64,6 +64,7 @@ /var/const/access_mineral_storeroom = 64 /var/const/access_minisat = 65 /var/const/access_weapons = 66 //Weapon authorization for secbots +/var/const/access_network = 67 //BEGIN CENTCOM ACCESS /*Should leave plenty of room if we need to add more access levels. @@ -82,6 +83,19 @@ /var/const/access_syndicate = 150//General Syndicate Access /var/const/access_syndicate_leader = 151//Nuke Op Leader Access + //Away Missions or Ruins + /*For generic away-mission/ruin access. Why would normal crew have access to a long-abandoned derelict + or a 2000 year-old temple? */ +/var/const/access_away_general = 200//General facilities. +/var/const/access_away_maint = 201//Away maintenance +/var/const/access_away_med = 202//Away medical +/var/const/access_away_sec = 203//Away security +/var/const/access_away_engine = 204//Away engineering +/var/const/access_away_generic1 = 205//Away generic access +/var/const/access_away_generic2 = 206 +/var/const/access_away_generic3 = 207 +/var/const/access_away_generic4 = 208 + /obj/var/list/req_access = null /obj/var/req_access_txt = "0" /obj/var/list/req_one_access = null @@ -91,28 +105,29 @@ /obj/proc/allowed(mob/M) //check if it doesn't require any access at all if(src.check_access(null)) - return 1 - if(istype(M, /mob/living/silicon)) - //AI can do whatever he wants - return 1 + return TRUE + if(issilicon(M)) + if(ispAI(M)) + return FALSE + return TRUE //AI can do whatever it wants if(IsAdminGhost(M)) //Access can't stop the abuse - return 1 - else if(istype(M, /mob/living/carbon/human)) + return TRUE + else if(ishuman(M)) var/mob/living/carbon/human/H = M //if they are holding or wearing a card that has access, that works - if(src.check_access(H.get_active_hand()) || src.check_access(H.wear_id)) - return 1 - else if(istype(M, /mob/living/carbon/monkey) || istype(M, /mob/living/carbon/alien/humanoid)) + if(check_access(H.get_active_held_item()) || src.check_access(H.wear_id)) + return TRUE + else if(ismonkey(M) || isalienadult(M)) var/mob/living/carbon/george = M //they can only hold things :( - if(src.check_access(george.get_active_hand())) - return 1 + if(check_access(george.get_active_held_item())) + return TRUE else if(isanimal(M)) var/mob/living/simple_animal/A = M - if(check_access(A.access_card)) - return 1 - return 0 + if(check_access(A.get_active_held_item()) || check_access(A.access_card)) + return TRUE + return FALSE /obj/item/proc/GetAccess() return list() @@ -120,7 +135,8 @@ /obj/item/proc/GetID() return null -/obj/proc/check_access(obj/item/I) +//Call this before using req_access or req_one_access directly +/obj/proc/gen_access() //These generations have been moved out of /obj/New() because they were slowing down the creation of objects that never even used the access system. if(!src.req_access) src.req_access = list() @@ -140,45 +156,48 @@ if(n) req_one_access += n +/obj/proc/check_access(obj/item/I) + gen_access() + if(!istype(src.req_access, /list)) //something's very wrong - return 1 + return TRUE var/list/L = src.req_access if(!L.len && (!src.req_one_access || !src.req_one_access.len)) //no requirements - return 1 + return TRUE if(!I) - return 0 + return FALSE for(var/req in src.req_access) if(!(req in I.GetAccess())) //doesn't have this access - return 0 + return FALSE if(src.req_one_access && src.req_one_access.len) for(var/req in src.req_one_access) if(req in I.GetAccess()) //has an access from the single access list - return 1 - return 0 - return 1 + return TRUE + return FALSE + return TRUE /obj/proc/check_access_list(list/L) if(!src.req_access && !src.req_one_access) - return 1 + return TRUE if(!istype(src.req_access, /list)) - return 1 + return TRUE if(!src.req_access.len && (!src.req_one_access || !src.req_one_access.len)) - return 1 + return TRUE if(!L) - return 0 + return FALSE if(!istype(L, /list)) - return 0 + return FALSE for(var/req in src.req_access) if(!(req in L)) //doesn't have this access - return 0 + return FALSE if(src.req_one_access && src.req_one_access.len) for(var/req in src.req_one_access) if(req in L) //has an access from the single access list - return 1 - return 0 - return 1 + return TRUE + return FALSE + return TRUE /proc/get_centcom_access(job) switch(job) @@ -224,7 +243,7 @@ access_hydroponics, access_library, access_lawyer, access_virology, access_cmo, access_qm, access_surgery, access_theatre, access_research, access_mining, access_mailsorting, access_weapons, access_heads_vault, access_mining_station, access_xenobiology, access_ce, access_hop, access_hos, access_RC_announce, - access_keycard_auth, access_tcomsat, access_gateway, access_mineral_storeroom, access_minisat) + access_keycard_auth, access_tcomsat, access_gateway, access_mineral_storeroom, access_minisat, access_network) /proc/get_all_centcom_access() return list(access_cent_general, access_cent_thunder, access_cent_specops, access_cent_medical, access_cent_living, access_cent_storage, access_cent_teleporter, access_cent_captain) @@ -254,7 +273,7 @@ if(3) //medbay return list(access_medical, access_genetics, access_morgue, access_chemistry, access_virology, access_surgery, access_cmo) if(4) //research - return list(access_research, access_tox, access_tox_storage, access_genetics, access_robotics, access_xenobiology, access_minisat, access_rd) + return list(access_research, access_tox, access_tox_storage, access_genetics, access_robotics, access_xenobiology, access_minisat, access_rd, access_network) if(5) //engineering and maintenance return list(access_construction, access_maint_tunnels, access_engine, access_engine_equip, access_external_airlocks, access_tech_storage, access_atmospherics, access_tcomsat, access_minisat, access_ce) if(6) //supply @@ -411,6 +430,8 @@ return "AI Satellite" if(access_weapons) return "Weapon Permit" + if(access_network) + return "Network Access" /proc/get_centcom_access_desc(A) switch(A) diff --git a/code/modules/jobs/job_types/assistant.dm b/code/modules/jobs/job_types/assistant.dm index db69b445b3..b9cfb34027 100644 --- a/code/modules/jobs/job_types/assistant.dm +++ b/code/modules/jobs/job_types/assistant.dm @@ -14,6 +14,7 @@ Assistant minimal_access = list() //See /datum/job/assistant/get_access() outfit = /datum/outfit/job/assistant + /datum/job/assistant/get_access() if((config.jobs_have_maint_access & ASSISTANTS_HAVE_MAINT_ACCESS) || !config.jobs_have_minimal_access) //Config has assistant maint access set . = ..() diff --git a/code/modules/jobs/job_types/captain.dm b/code/modules/jobs/job_types/captain.dm index dec991a629..baec218333 100644 --- a/code/modules/jobs/job_types/captain.dm +++ b/code/modules/jobs/job_types/captain.dm @@ -38,7 +38,7 @@ Captain backpack_contents = list(/obj/item/weapon/melee/classic_baton/telescopic=1, /obj/item/station_charter=1) backpack = /obj/item/weapon/storage/backpack/captain - satchel = /obj/item/weapon/storage/backpack/satchel_cap + satchel = /obj/item/weapon/storage/backpack/satchel/cap dufflebag = /obj/item/weapon/storage/backpack/dufflebag/captain /datum/outfit/job/captain/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) @@ -51,9 +51,7 @@ Captain return var/obj/item/weapon/implant/mindshield/L = new/obj/item/weapon/implant/mindshield(H) - L.imp_in = H - L.implanted = 1 - H.sec_hud_set_implants() + L.implant(H, null, 1) minor_announce("Captain [H.real_name] on deck!") @@ -99,7 +97,7 @@ Head of Personnel shoes = /obj/item/clothing/shoes/sneakers/brown head = /obj/item/clothing/head/hopcap backpack_contents = list(/obj/item/weapon/storage/box/ids=1,\ - /obj/item/weapon/melee/classic_baton/telescopic=1) + /obj/item/weapon/melee/classic_baton/telescopic=1, /obj/item/device/modular_computer/tablet/preset/advanced = 1) /datum/outfit/job/hop/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) ..() diff --git a/code/modules/jobs/job_types/cargo_service.dm b/code/modules/jobs/job_types/cargo_service.dm index 0d709dc69e..a559086760 100644 --- a/code/modules/jobs/job_types/cargo_service.dm +++ b/code/modules/jobs/job_types/cargo_service.dm @@ -89,7 +89,7 @@ Shaft Miner /obj/item/weapon/mining_voucher=1) backpack = /obj/item/weapon/storage/backpack/explorer - satchel = /obj/item/weapon/storage/backpack/satchel_explorer + satchel = /obj/item/weapon/storage/backpack/satchel/explorer dufflebag = /obj/item/weapon/storage/backpack/dufflebag box = /obj/item/weapon/storage/box/survival_mining @@ -152,6 +152,7 @@ Cook uniform = /obj/item/clothing/under/rank/chef suit = /obj/item/clothing/suit/toggle/chef head = /obj/item/clothing/head/chefhat + backpack_contents = list(/obj/item/weapon/sharpener = 1) /datum/outfit/job/cook/pre_equip(mob/living/carbon/human/H) ..() @@ -199,7 +200,7 @@ Botanist suit_store = /obj/item/device/plant_analyzer backpack = /obj/item/weapon/storage/backpack/botany - satchel = /obj/item/weapon/storage/backpack/satchel_hyd + satchel = /obj/item/weapon/storage/backpack/satchel/hyd /* @@ -228,3 +229,4 @@ Janitor belt = /obj/item/device/pda/janitor ears = /obj/item/device/radio/headset/headset_srv uniform = /obj/item/clothing/under/rank/janitor + backpack_contents = list(/obj/item/device/modular_computer/tablet/preset/advanced=1) diff --git a/code/modules/jobs/job_types/civilian.dm b/code/modules/jobs/job_types/civilian.dm index 8cdd1a9fd5..cdb4046b3f 100644 --- a/code/modules/jobs/job_types/civilian.dm +++ b/code/modules/jobs/job_types/civilian.dm @@ -30,7 +30,8 @@ Clown /obj/item/weapon/stamp/clown = 1, /obj/item/weapon/reagent_containers/spray/waterflower = 1, /obj/item/weapon/reagent_containers/food/snacks/grown/banana = 1, - /obj/item/device/megaphone/clown = 1 + /obj/item/device/megaphone/clown = 1, + /obj/item/weapon/reagent_containers/food/drinks/soda_cans/canned_laughter = 1 ) backpack = /obj/item/weapon/storage/backpack/clown @@ -52,8 +53,7 @@ Clown return var/obj/item/weapon/implant/sad_trombone/S = new/obj/item/weapon/implant/sad_trombone(H) - S.imp_in = H - S.implanted = 1 + S.implant(H, null, 1) H.dna.add_mutation(CLOWNMUT) H.rename_self("clown") @@ -164,6 +164,8 @@ Lawyer shoes = /obj/item/clothing/shoes/laceup l_hand = /obj/item/weapon/storage/briefcase/lawyer l_pocket = /obj/item/device/laser_pointer + r_pocket = /obj/item/clothing/tie/lawyers_badge + /datum/outfit/job/lawyer/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE) ..() diff --git a/code/modules/jobs/job_types/civilian_chaplain.dm b/code/modules/jobs/job_types/civilian_chaplain.dm index 0d64e39f67..e3ca82c946 100644 --- a/code/modules/jobs/job_types/civilian_chaplain.dm +++ b/code/modules/jobs/job_types/civilian_chaplain.dm @@ -33,8 +33,22 @@ Chaplain if(visualsOnly) return + + H.mind.isholy = TRUE var/obj/item/weapon/storage/book/bible/B = new /obj/item/weapon/storage/book/bible/booze(H) + + if(SSreligion.Bible_deity_name) + B.deity_name = SSreligion.Bible_deity_name + B.name = SSreligion.Bible_name + B.icon_state = SSreligion.Bible_icon_state + B.item_state = SSreligion.Bible_item_state + H << "There is already an established religion onboard the station. You are an acolyte of [SSreligion.Bible_deity_name]. Defer to the Chaplain." + H.equip_to_slot_or_del(B, slot_in_backpack) + var/obj/item/weapon/nullrod/N = new(H) + H.equip_to_slot_or_del(N, slot_in_backpack) + return + var/new_religion = "Christianity" if(H.client && H.client.prefs.custom_names["religion"]) new_religion = H.client.prefs.custom_names["religion"] @@ -66,14 +80,13 @@ Chaplain else B.name = "The Holy Book of [new_religion]" feedback_set_details("religion_name","[new_religion]") - ticker.Bible_name = B.name + SSreligion.Bible_name = B.name var/new_deity = "Space Jesus" if(H.client && H.client.prefs.custom_names["deity"]) new_deity = H.client.prefs.custom_names["deity"] B.deity_name = new_deity - if(ticker) - ticker.Bible_deity_name = B.deity_name + SSreligion.Bible_deity_name = B.deity_name feedback_set_details("religion_deity","[new_deity]") - H.equip_to_slot_or_del(B, slot_in_backpack) \ No newline at end of file + H.equip_to_slot_or_del(B, slot_in_backpack) diff --git a/code/modules/jobs/job_types/engineering.dm b/code/modules/jobs/job_types/engineering.dm index 7114a8b13d..1b7ac5db43 100644 --- a/code/modules/jobs/job_types/engineering.dm +++ b/code/modules/jobs/job_types/engineering.dm @@ -36,10 +36,10 @@ Chief Engineer shoes = /obj/item/clothing/shoes/sneakers/brown head = /obj/item/clothing/head/hardhat/white gloves = /obj/item/clothing/gloves/color/black/ce - backpack_contents = list(/obj/item/weapon/melee/classic_baton/telescopic=1) + backpack_contents = list(/obj/item/weapon/melee/classic_baton/telescopic=1,/obj/item/device/modular_computer/tablet/preset/advanced=1) backpack = /obj/item/weapon/storage/backpack/industrial - satchel = /obj/item/weapon/storage/backpack/satchel_eng + satchel = /obj/item/weapon/storage/backpack/satchel/eng dufflebag = /obj/item/weapon/storage/backpack/dufflebag/engineering box = /obj/item/weapon/storage/box/engineer pda_slot = slot_l_store @@ -85,10 +85,11 @@ Station Engineer r_pocket = /obj/item/device/t_scanner backpack = /obj/item/weapon/storage/backpack/industrial - satchel = /obj/item/weapon/storage/backpack/satchel_eng + satchel = /obj/item/weapon/storage/backpack/satchel/eng dufflebag = /obj/item/weapon/storage/backpack/dufflebag/engineering box = /obj/item/weapon/storage/box/engineer pda_slot = slot_l_store + backpack_contents = list(/obj/item/device/modular_computer/tablet/preset/advanced=1) /* Atmospheric Technician @@ -120,7 +121,8 @@ Atmospheric Technician r_pocket = /obj/item/device/analyzer backpack = /obj/item/weapon/storage/backpack/industrial - satchel = /obj/item/weapon/storage/backpack/satchel_eng + satchel = /obj/item/weapon/storage/backpack/satchel/eng dufflebag = /obj/item/weapon/storage/backpack/dufflebag/engineering box = /obj/item/weapon/storage/box/engineer - pda_slot = slot_l_store \ No newline at end of file + pda_slot = slot_l_store + backpack_contents = list(/obj/item/device/modular_computer/tablet/preset/advanced=1) diff --git a/code/modules/jobs/job_types/job.dm b/code/modules/jobs/job_types/job.dm index 5ef398a612..0106d39243 100644 --- a/code/modules/jobs/job_types/job.dm +++ b/code/modules/jobs/job_types/job.dm @@ -72,6 +72,8 @@ H.wear_suit.add_fingerprint(H,1) if(H.wear_mask) H.wear_mask.add_fingerprint(H,1) + if(H.wear_neck) + H.wear_neck.add_fingerprint(H,1) if(H.head) H.head.add_fingerprint(H,1) if(H.shoes) @@ -141,7 +143,7 @@ shoes = /obj/item/clothing/shoes/sneakers/black var/backpack = /obj/item/weapon/storage/backpack - var/satchel = /obj/item/weapon/storage/backpack/satchel_norm + var/satchel = /obj/item/weapon/storage/backpack/satchel var/dufflebag = /obj/item/weapon/storage/backpack/dufflebag var/box = /obj/item/weapon/storage/box/survival @@ -152,11 +154,11 @@ if(GBACKPACK) back = /obj/item/weapon/storage/backpack //Grey backpack if(GSATCHEL) - back = /obj/item/weapon/storage/backpack/satchel_norm //Grey satchel + back = /obj/item/weapon/storage/backpack/satchel //Grey satchel if(GDUFFLEBAG) back = /obj/item/weapon/storage/backpack/dufflebag //Grey Dufflebag if(LSATCHEL) - back = /obj/item/weapon/storage/backpack/satchel //Leather Satchel + back = /obj/item/weapon/storage/backpack/satchel/leather //Leather Satchel if(DSATCHEL) back = satchel //Department satchel if(DDUFFLEBAG) diff --git a/code/modules/jobs/job_types/medical.dm b/code/modules/jobs/job_types/medical.dm index 964a5495db..8b0894da53 100644 --- a/code/modules/jobs/job_types/medical.dm +++ b/code/modules/jobs/job_types/medical.dm @@ -37,7 +37,7 @@ Chief Medical Officer backpack_contents = list(/obj/item/weapon/melee/classic_baton/telescopic=1) backpack = /obj/item/weapon/storage/backpack/medic - satchel = /obj/item/weapon/storage/backpack/satchel_med + satchel = /obj/item/weapon/storage/backpack/satchel/med dufflebag = /obj/item/weapon/storage/backpack/dufflebag/med /datum/outfit/job/cmo/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) @@ -79,7 +79,7 @@ Medical Doctor suit_store = /obj/item/device/flashlight/pen backpack = /obj/item/weapon/storage/backpack/medic - satchel = /obj/item/weapon/storage/backpack/satchel_med + satchel = /obj/item/weapon/storage/backpack/satchel/med dufflebag = /obj/item/weapon/storage/backpack/dufflebag/med /* @@ -112,7 +112,7 @@ Chemist suit = /obj/item/clothing/suit/toggle/labcoat/chemist backpack = /obj/item/weapon/storage/backpack/chemistry - satchel = /obj/item/weapon/storage/backpack/satchel_chem + satchel = /obj/item/weapon/storage/backpack/satchel/chem dufflebag = /obj/item/weapon/storage/backpack/dufflebag/med /* @@ -145,7 +145,7 @@ Geneticist suit_store = /obj/item/device/flashlight/pen backpack = /obj/item/weapon/storage/backpack/genetics - satchel = /obj/item/weapon/storage/backpack/satchel_gen + satchel = /obj/item/weapon/storage/backpack/satchel/gen dufflebag = /obj/item/weapon/storage/backpack/dufflebag/med /* @@ -179,5 +179,5 @@ Virologist suit_store = /obj/item/device/flashlight/pen backpack = /obj/item/weapon/storage/backpack/virology - satchel = /obj/item/weapon/storage/backpack/satchel_vir + satchel = /obj/item/weapon/storage/backpack/satchel/vir dufflebag = /obj/item/weapon/storage/backpack/dufflebag/med diff --git a/code/modules/jobs/job_types/science.dm b/code/modules/jobs/job_types/science.dm index 1b6f4942dd..91b43d791b 100644 --- a/code/modules/jobs/job_types/science.dm +++ b/code/modules/jobs/job_types/science.dm @@ -20,12 +20,12 @@ Research Director access_tox_storage, access_teleporter, access_sec_doors, access_research, access_robotics, access_xenobiology, access_ai_upload, access_RC_announce, access_keycard_auth, access_gateway, access_mineral_storeroom, - access_tech_storage, access_minisat, access_maint_tunnels) + access_tech_storage, access_minisat, access_maint_tunnels, access_network) minimal_access = list(access_rd, access_heads, access_tox, access_genetics, access_morgue, access_tox_storage, access_teleporter, access_sec_doors, access_research, access_robotics, access_xenobiology, access_ai_upload, access_RC_announce, access_keycard_auth, access_gateway, access_mineral_storeroom, - access_tech_storage, access_minisat, access_maint_tunnels) + access_tech_storage, access_minisat, access_maint_tunnels, access_network) /datum/outfit/job/rd name = "Research Director" @@ -38,10 +38,10 @@ Research Director suit = /obj/item/clothing/suit/toggle/labcoat l_hand = /obj/item/weapon/clipboard l_pocket = /obj/item/device/laser_pointer - backpack_contents = list(/obj/item/weapon/melee/classic_baton/telescopic=1) + backpack_contents = list(/obj/item/weapon/melee/classic_baton/telescopic=1,/obj/item/device/modular_computer/tablet/preset/advanced=1) backpack = /obj/item/weapon/storage/backpack/science - satchel = /obj/item/weapon/storage/backpack/satchel_tox + satchel = /obj/item/weapon/storage/backpack/satchel/tox /datum/outfit/job/rd/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) ..() @@ -80,7 +80,7 @@ Scientist suit = /obj/item/clothing/suit/toggle/labcoat/science backpack = /obj/item/weapon/storage/backpack/science - satchel = /obj/item/weapon/storage/backpack/satchel_tox + satchel = /obj/item/weapon/storage/backpack/satchel/tox /* Roboticist @@ -111,6 +111,6 @@ Roboticist suit = /obj/item/clothing/suit/toggle/labcoat backpack = /obj/item/weapon/storage/backpack/science - satchel = /obj/item/weapon/storage/backpack/satchel_tox + satchel = /obj/item/weapon/storage/backpack/satchel/tox pda_slot = slot_l_store diff --git a/code/modules/jobs/job_types/security.dm b/code/modules/jobs/job_types/security.dm index 146d3ec9d2..96779d1976 100644 --- a/code/modules/jobs/job_types/security.dm +++ b/code/modules/jobs/job_types/security.dm @@ -43,13 +43,13 @@ Head of Security gloves = /obj/item/clothing/gloves/color/black/hos head = /obj/item/clothing/head/HoS/beret glasses = /obj/item/clothing/glasses/hud/security/sunglasses - suit_store = /obj/item/weapon/gun/energy/gun + suit_store = /obj/item/weapon/gun/energy/e_gun r_pocket = /obj/item/device/assembly/flash/handheld l_pocket = /obj/item/weapon/restraints/handcuffs backpack_contents = list(/obj/item/weapon/melee/baton/loaded=1) backpack = /obj/item/weapon/storage/backpack/security - satchel = /obj/item/weapon/storage/backpack/satchel_sec + satchel = /obj/item/weapon/storage/backpack/satchel/sec dufflebag = /obj/item/weapon/storage/backpack/dufflebag/sec box = /obj/item/weapon/storage/box/security @@ -60,9 +60,7 @@ Head of Security return var/obj/item/weapon/implant/mindshield/L = new/obj/item/weapon/implant/mindshield(H) - L.imp_in = H - L.implanted = 1 - H.sec_hud_set_implants() + L.implant(H, null, 1) announce_head(H, list("Security")) //tell underlings (security radio) they have a head /* @@ -103,11 +101,11 @@ Warden glasses = /obj/item/clothing/glasses/hud/security/sunglasses r_pocket = /obj/item/device/assembly/flash/handheld l_pocket = /obj/item/weapon/restraints/handcuffs - suit_store = /obj/item/weapon/gun/energy/gun/advtaser + suit_store = /obj/item/weapon/gun/energy/e_gun/advtaser backpack_contents = list(/obj/item/weapon/melee/baton/loaded=1) backpack = /obj/item/weapon/storage/backpack/security - satchel = /obj/item/weapon/storage/backpack/satchel_sec + satchel = /obj/item/weapon/storage/backpack/satchel/sec dufflebag = /obj/item/weapon/storage/backpack/dufflebag/sec box = /obj/item/weapon/storage/box/security @@ -119,9 +117,7 @@ Warden return var/obj/item/weapon/implant/mindshield/L = new/obj/item/weapon/implant/mindshield(H) - L.imp_in = H - L.implanted = 1 - H.sec_hud_set_implants() + L.implant(H, null, 1) /* Detective @@ -157,8 +153,7 @@ Detective r_pocket = /obj/item/weapon/lighter backpack_contents = list(/obj/item/weapon/storage/box/evidence=1,\ /obj/item/device/detective_scanner=1,\ - /obj/item/weapon/melee/classic_baton=1,\ - /obj/item/weapon/reagent_containers/food/drinks/flask/det) + /obj/item/weapon/melee/classic_baton=1) mask = /obj/item/clothing/mask/cigarette /datum/outfit/job/detective/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) @@ -170,9 +165,7 @@ Detective return var/obj/item/weapon/implant/mindshield/L = new/obj/item/weapon/implant/mindshield(H) - L.imp_in = H - L.implanted = 1 - H.sec_hud_set_implants() + L.implant(H, null, 1) /* Security Officer @@ -213,11 +206,11 @@ var/list/sec_departments = list("engineering", "supply", "medical", "science") shoes = /obj/item/clothing/shoes/jackboots l_pocket = /obj/item/weapon/restraints/handcuffs r_pocket = /obj/item/device/assembly/flash/handheld - suit_store = /obj/item/weapon/gun/energy/gun/advtaser + suit_store = /obj/item/weapon/gun/energy/e_gun/advtaser backpack_contents = list(/obj/item/weapon/melee/baton/loaded=1) backpack = /obj/item/weapon/storage/backpack/security - satchel = /obj/item/weapon/storage/backpack/satchel_sec + satchel = /obj/item/weapon/storage/backpack/satchel/sec dufflebag = /obj/item/weapon/storage/backpack/dufflebag/sec box = /obj/item/weapon/storage/box/security @@ -271,9 +264,7 @@ var/list/sec_departments = list("engineering", "supply", "medical", "science") return var/obj/item/weapon/implant/mindshield/L = new/obj/item/weapon/implant/mindshield(H) - L.imp_in = H - L.implanted = 1 - H.sec_hud_set_implants() + L.implant(H, null, 1) var/obj/item/weapon/card/id/W = H.wear_id W.access |= dep_access diff --git a/code/modules/library/lib_codex_gigas.dm b/code/modules/library/lib_codex_gigas.dm index 03f62d84d2..7bce96f649 100644 --- a/code/modules/library/lib_codex_gigas.dm +++ b/code/modules/library/lib_codex_gigas.dm @@ -3,7 +3,7 @@ icon_state ="demonomicon" throw_speed = 1 throw_range = 10 - burn_state = LAVA_PROOF + resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF author = "Forces beyond your comprehension" unique = 1 title = "The codex gigas" @@ -15,6 +15,7 @@ /obj/item/weapon/book/codex_gigas/attack_self(mob/user) if(is_blind(user)) + user << "As you are trying to read, you suddenly feel very stupid." return if(ismonkey(user)) user << "You skim through the book but can't comprehend any of it." diff --git a/code/modules/library/lib_items.dm b/code/modules/library/lib_items.dm index a4c546d945..1ed1f8f625 100644 --- a/code/modules/library/lib_items.dm +++ b/code/modules/library/lib_items.dm @@ -17,8 +17,10 @@ anchored = 0 density = 1 opacity = 0 - burn_state = FLAMMABLE - burntime = 30 + resistance_flags = FLAMMABLE + obj_integrity = 200 + max_integrity = 200 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 0) var/state = 0 var/list/allowed_books = list(/obj/item/weapon/book, /obj/item/weapon/spellbook, /obj/item/weapon/storage/book) //Things allowed in the bookcase @@ -37,17 +39,16 @@ switch(state) if(0) if(istype(I, /obj/item/weapon/wrench)) - playsound(loc, 'sound/items/Ratchet.ogg', 100, 1) - if(do_after(user, 20/I.toolspeed, target = src)) + playsound(loc, I.usesound, 100, 1) + if(do_after(user, 20*I.toolspeed, target = src)) user << "You wrench the frame into place." anchored = 1 state = 1 if(istype(I, /obj/item/weapon/crowbar)) - playsound(loc, 'sound/items/Crowbar.ogg', 100, 1) - if(do_after(user, 20/I.toolspeed, target = src)) + playsound(loc, I.usesound, 100, 1) + if(do_after(user, 20*I.toolspeed, target = src)) user << "You pry the frame apart." - new /obj/item/stack/sheet/mineral/wood(loc, 4) - qdel(src) + deconstruct(TRUE) if(1) if(istype(I, /obj/item/stack/sheet/mineral/wood)) @@ -58,7 +59,7 @@ state = 2 icon_state = "book-0" if(istype(I, /obj/item/weapon/wrench)) - playsound(loc, 'sound/items/Ratchet.ogg', 100, 1) + playsound(loc, I.usesound, 100, 1) user << "You unwrench the frame." anchored = 0 state = 0 @@ -86,7 +87,7 @@ if(contents.len) user << "You need to remove the books first!" else - playsound(loc, 'sound/items/Crowbar.ogg', 100, 1) + playsound(loc, I.usesound, 100, 1) user << "You pry the shelf out." new /obj/item/stack/sheet/mineral/wood(loc, 2) state = 1 @@ -102,20 +103,19 @@ if(!usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr)) return if(ishuman(user)) - if(!user.get_active_hand()) + if(!user.get_active_held_item()) user.put_in_hands(choice) else choice.loc = get_turf(src) update_icon() -/obj/structure/bookcase/ex_act(severity, target) - ..() - if(!qdeleted(src)) - for(var/obj/item/weapon/book/b in contents) - b.loc = (get_turf(src)) - if(prob(50)) - qdel(src) +/obj/structure/bookcase/deconstruct(disassembled = TRUE) + new /obj/item/stack/sheet/mineral/wood(loc, 4) + for(var/obj/item/weapon/book/B in contents) + B.forceMove(get_turf(src)) + qdel(src) + /obj/structure/bookcase/update_icon() if(contents.len < 5) @@ -165,9 +165,9 @@ icon_state ="book" throw_speed = 1 throw_range = 5 - w_class = 3 //upped to three because books are, y'know, pretty big. (and you could hide them inside eachother recursively forever) + w_class = WEIGHT_CLASS_NORMAL //upped to three because books are, y'know, pretty big. (and you could hide them inside eachother recursively forever) attack_verb = list("bashed", "whacked", "educated") - burn_state = FLAMMABLE + resistance_flags = FLAMMABLE var/dat //Actual page content var/due_date = 0 //Game time in 1/10th seconds var/author //Who wrote the thing, can be changed by pen or PC. It is not automatically assigned @@ -177,6 +177,7 @@ /obj/item/weapon/book/attack_self(mob/user) if(is_blind(user)) + user << "As you are trying to read, you suddenly feel very stupid!" return if(ismonkey(user)) user << "You skim through the book but can't comprehend any of it." @@ -192,6 +193,7 @@ /obj/item/weapon/book/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/weapon/pen)) if(is_blind(user)) + user << " As you are trying to write on the book, you suddenly feel very stupid!" return if(unique) user << "These pages don't seem to take the ink well! Looks like you can't modify it." @@ -264,7 +266,7 @@ B.name = src.name B.title = src.title B.icon_state = src.icon_state - if(user.l_hand == src || user.r_hand == src) + if(user.is_holding(src)) qdel(src) user.put_in_hands(B) return @@ -286,7 +288,7 @@ icon_state ="scanner" throw_speed = 3 throw_range = 5 - w_class = 1 + w_class = WEIGHT_CLASS_TINY var/obj/machinery/computer/libraryconsole/bookmanagement/computer //Associated computer - Modes 1 to 3 use this var/obj/item/weapon/book/book //Currently scanned book var/mode = 0 //0 - Scan only, 1 - Scan and Set Buffer, 2 - Scan and Attempt to Check In, 3 - Scan and Attempt to Add to Inventory diff --git a/code/modules/library/lib_machines.dm b/code/modules/library/lib_machines.dm index 17f4e43961..4eba8b3ba0 100644 --- a/code/modules/library/lib_machines.dm +++ b/code/modules/library/lib_machines.dm @@ -337,11 +337,11 @@ var/global/list/datum/cachedbook/cachedbooks // List of our cached book datums if(!bibledelay) var/obj/item/weapon/storage/book/bible/B = new /obj/item/weapon/storage/book/bible(src.loc) - if(ticker && ( ticker.Bible_icon_state && ticker.Bible_item_state) ) - B.icon_state = ticker.Bible_icon_state - B.item_state = ticker.Bible_item_state - B.name = ticker.Bible_name - B.deity_name = ticker.Bible_deity_name + if(SSreligion.Bible_icon_state && SSreligion.Bible_item_state) + B.icon_state = SSreligion.Bible_icon_state + B.item_state = SSreligion.Bible_item_state + B.name = SSreligion.Bible_name + B.deity_name = SSreligion.Bible_deity_name bibledelay = 1 spawn(60) @@ -374,11 +374,13 @@ var/global/list/datum/cachedbook/cachedbooks // List of our cached book datums b.duedate = world.time + (checkoutperiod * 600) checkouts.Add(b) if(href_list["checkin"]) - var/datum/borrowbook/b = locate(href_list["checkin"]) - checkouts.Remove(b) + var/datum/borrowbook/b = locate(href_list["checkin"]) in checkouts + if(b && istype(b)) + checkouts.Remove(b) if(href_list["delbook"]) - var/obj/item/weapon/book/b = locate(href_list["delbook"]) - inventory.Remove(b) + var/obj/item/weapon/book/b = locate(href_list["delbook"]) in inventory + if(b && istype(b)) + inventory.Remove(b) if(href_list["setauthor"]) var/newauthor = copytext(sanitize(input("Enter the author's name: ") as text|null),1,MAX_MESSAGE_LEN) if(newauthor) @@ -408,10 +410,14 @@ var/global/list/datum/cachedbook/cachedbooks // List of our cached book datums log_game("[usr.name]/[usr.key] has uploaded the book titled [scanner.cache.name], [length(scanner.cache.dat)] signs") alert("Upload Complete. Uploaded title will be unavailable for printing for a short period") if(href_list["orderbyid"]) - var/orderid = input("Enter your order:") as num|null - if(orderid) - if(isnum(orderid) && IsInteger(orderid)) - href_list["targetid"] = orderid + if(bibledelay) + say("Printer unavailable. Please allow a short time before attempting to print.") + else + var/orderid = input("Enter your order:") as num|null + if(orderid) + if(isnum(orderid) && IsInteger(orderid)) + href_list["targetid"] = num2text(orderid) + if(href_list["targetid"]) var/sqlid = sanitizeSQL(href_list["targetid"]) establish_db_connection() @@ -430,17 +436,17 @@ var/global/list/datum/cachedbook/cachedbooks // List of our cached book datums var/author = query.item[2] var/title = query.item[3] var/content = query.item[4] - var/obj/item/weapon/book/B = new(src.loc) + var/obj/item/weapon/book/B = new(get_turf(src)) B.name = "Book: [title]" B.title = title B.author = author B.dat = content B.icon_state = "book[rand(1,8)]" - src.visible_message("[src]'s printer hums as it produces a completely bound book. How did it do that?") + visible_message("[src]'s printer hums as it produces a completely bound book. How did it do that?") break - src.add_fingerprint(usr) - src.updateUsrDialog() - return + + add_fingerprint(usr) + updateUsrDialog() /* * Library Scanner @@ -473,8 +479,6 @@ var/global/list/datum/cachedbook/cachedbooks // List of our cached book datums dat += " \[Clear Memory\]

    \[Remove Book\]" else dat += "
    " - //user << browse(dat, "window=scanner") - //onclose(user, "scanner") var/datum/browser/popup = new(user, "scanner", name, 600, 400) popup.set_content(dat) popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) @@ -542,4 +546,4 @@ var/global/list/datum/cachedbook/cachedbooks // List of our cached book datums B.icon_state = "book[rand(1,7)]" qdel(P) else - P.loc = loc \ No newline at end of file + P.loc = loc diff --git a/code/modules/lighting/lighting_system.dm b/code/modules/lighting/lighting_system.dm new file mode 100644 index 0000000000..bbb2f28284 --- /dev/null +++ b/code/modules/lighting/lighting_system.dm @@ -0,0 +1,427 @@ +/* + This is /tg/'s 'newer' lighting system. It's basically a combination of Forum_Account's and ShadowDarke's + respective lighting libraries heavily modified by Carnwennan for /tg/station with further edits by + MrPerson. Credits, where due, to them. + + Originally, like all other lighting libraries on BYOND, we used areas to render different hard-coded light levels. + The idea was that this was cheaper than using objects. Well as it turns out, the cost of the system is primarily from the + massive loops the system has to run, not from the areas or objects actually doing any work. Thus the newer system uses objects + so we can have more lighting states and smooth transitions between them. + + This is a queueing system. Everytime we call a change to opacity or luminosity throwgh SetOpacity() or SetLuminosity(), + we are simply updating variables and scheduling certain lights/turfs for an update. Actual updates are handled + periodically by the SSlighting subsystem. Specifically, it runs check() on every light datum that ran changed(). + Then it runs redraw_lighting() on every turf that ran update_lumcount(). + + Unlike our older system, there are hardcoded maximum luminosities (different for certain atoms). + This is to cap the cost of creating lighting effects. + (without this, an atom with luminosity of 20 would have to update 41^2 turfs!) :s + + Each light remembers the effect it casts on each turf. It reduces cost of removing lighting effects by a lot! + + Known Issues/TODO: + Shuttles still do not have support for dynamic lighting (I hope to fix this at some point) -probably trivial now + No directional lighting support. (prototype looked ugly) + Allow lights to be weaker than 'cap' radius + Colored lights +*/ + +/datum/light_source + var/atom/owner + var/radius = 0 + var/luminosity = 0 + var/cap = 0 + var/changed = 0 + var/mode = LIGHTING_REGULAR + var/list/effect = list() + var/__x = 0 //x coordinate at last update + var/__y = 0 //y coordinate at last update + +/datum/light_source/New(atom/A) + if(!istype(A)) + CRASH("The first argument to the light object's constructor must be the atom that is the light source. Expected atom, received '[A]' instead.") + ..() + owner = A + UpdateLuminosity(A.luminosity) + +/datum/light_source/Destroy() + if(owner && owner.light == src) + remove_effect() + owner.light = null + owner.luminosity = 0 + owner = null + if(changed) + SSlighting.changed_lights -= src + return ..() + +/datum/light_source/proc/UpdateLuminosity(new_luminosity, new_cap) + if(new_luminosity < 0) + new_luminosity = 0 + + if(luminosity == new_luminosity && (new_cap == null || cap == new_cap)) + return + + radius = max(LIGHTING_MIN_RADIUS, new_luminosity) + luminosity = new_luminosity + if (new_cap != null) + cap = new_cap + + changed() + + +//Check a light to see if its effect needs reprocessing. If it does, remove any old effect and create a new one +/datum/light_source/proc/check() + if(!owner) + remove_effect() + return 0 + + if(changed) + changed = 0 + remove_effect() + return add_effect() + + return 1 + +//Tell the lighting subsystem to check() next fire +/datum/light_source/proc/changed() + if(owner) + __x = owner.x + __y = owner.y + if(!changed) + changed = 1 + SSlighting.changed_lights |= src + +//Remove current effect +/datum/light_source/proc/remove_effect(). + for(var/turf/T in effect) + LAZYREMOVE(T.affecting_lights, src) + T.update_lumcount(-effect[T], mode) + + effect.Cut() + +//Apply a new effect. +/datum/light_source/proc/add_effect() + // only do this if the light is turned on and is on the map + if(!owner || !owner.loc) + return 0 + var/range = owner.get_light_range(radius) + if(range <= 0 || luminosity <= 0) + owner.luminosity = 0 + return 0 + + effect = list() + var/turf/To = get_turf(owner) + + + for(var/atom/movable/AM in To) + if(AM == owner) + continue + if(AM.opacity) + range = 1 + break + + owner.luminosity = range + var/center_strength = 0 + if (cap <= 0) + center_strength = LIGHTING_CAP/LIGHTING_LUM_FOR_FULL_BRIGHT*(luminosity) + else + center_strength = cap + + for(var/turf/T in view(range+1, To)) + +#ifdef LIGHTING_CIRCULAR + var/distance = cheap_hypotenuse(T.x, T.y, __x, __y) +#else + var/distance = max(abs(T,x - __x), abs(T.y - __y)) +#endif + + var/delta_lumcount = Clamp(center_strength * (range - distance) / range, 0, LIGHTING_CAP) + + if(delta_lumcount > 0) + effect[T] = delta_lumcount + T.update_lumcount(delta_lumcount, mode) + + LAZYINITLIST(T.affecting_lights) + T.affecting_lights |= src + + return 1 + +/atom + var/datum/light_source/light + +//Objects with opacity will trigger nearby lights to update at next SSlighting fire +/atom/movable/Destroy() + qdel(light) + if(opacity && isturf(loc)) + loc.UpdateAffectingLights() + return ..() + +//Objects with opacity will trigger nearby lights of the old location to update at next SSlighting fire +/atom/movable/Moved(atom/OldLoc, Dir) + if(opacity) + if (isturf(OldLoc)) + OldLoc.UpdateAffectingLights() + if (isturf(loc)) + loc.UpdateAffectingLights() + else + if(light) + light.changed() + return ..() + +//Sets our luminosity. +//If we have no light it will create one. +//If we are setting luminosity to 0 the light will be cleaned up by the controller and garbage collected once all its +//queues are complete. +//if we have a light already it is merely updated, rather than making a new one. +//The second arg allows you to scale the light cap for calculating falloff. + +/atom/proc/SetLuminosity(new_luminosity, new_cap) + if (!light) + if (new_luminosity <= 0) + return + light = new(src) + + light.UpdateLuminosity(new_luminosity, new_cap) + +/atom/proc/AddLuminosity(delta_luminosity) + if(light) + SetLuminosity(light.luminosity + delta_luminosity) + else + SetLuminosity(delta_luminosity) + +/area/SetLuminosity(new_luminosity) //we don't want dynamic lighting for areas + luminosity = !!new_luminosity + + +//change our opacity (defaults to toggle), and then update all lights that affect us. +/atom/proc/SetOpacity(new_opacity) + if(new_opacity == null) + new_opacity = !opacity //default = toggle opacity + else if(opacity == new_opacity) + return 0 //opacity hasn't changed! don't bother doing anything + opacity = new_opacity //update opacity, the below procs now call light updates. + UpdateAffectingLights() + return 1 + +/atom/movable/light + icon = LIGHTING_ICON + icon_state = LIGHTING_ICON_STATE + layer = LIGHTING_LAYER + plane = LIGHTING_PLANE + mouse_opacity = 0 + blend_mode = BLEND_OVERLAY + invisibility = INVISIBILITY_LIGHTING + color = "#000" + luminosity = 0 + infra_luminosity = 1 + anchored = 1 + +/atom/movable/light/Destroy(force) + if(!force) + return QDEL_HINT_LETMELIVE + var/turf/T = loc + . = ..() + if (T.lighting_object == src) + T.lighting_object = null + +/atom/movable/light/New() + if (!isturf(loc)) + PutOut() + throw EXCEPTION("Invalid light placement: loc must be a turf") + var/turf/T = loc + + if (T.lighting_object && T.lighting_object != src) + PutOut() + throw EXCEPTION("BUG: /atom/movable/light created on a turf that already has one") + T.lighting_object = src + +/atom/movable/light/proc/PutOut() + alpha = 0 + qdel(src, force = TRUE) + +/atom/movable/light/Move() + return 0 + +/turf + var/lighting_lumcount = 0 + var/lighting_changed = 0 + var/atom/movable/light/lighting_object //Will be null for space turfs and anything in a static lighting area + var/list/affecting_lights //all /light_source affecting this turf, lazy initialized + var/starlight = 0 //Amount of starlight hitting this turf + +/turf/ChangeTurf(path) + if(!path || (!use_preloader && path == type)) //Sucks this is here but it would cause problems otherwise. + return ..() + + for(var/obj/effect/decal/cleanable/decal in src.contents) + qdel(decal) + + if(light) + qdel(light) + + var/old_lumcount = lighting_lumcount - initial(lighting_lumcount) + var/oldbaseturf = baseturf + var/old_starlight = starlight + + var/list/our_lights //reset affecting_lights if needed + if(opacity != initial(path:opacity) && old_lumcount) + UpdateAffectingLights() + + if(affecting_lights) + our_lights = affecting_lights.Copy() + + . = ..() //At this point the turf has changed + + affecting_lights = our_lights + + lighting_changed = 1 //Don't add ourself to SSlighting.changed_turfs + update_lumcount(old_lumcount, LIGHTING_REGULAR) + starlight = old_starlight + baseturf = oldbaseturf + lighting_object = locate() in src + + init_lighting() + + for(var/turf/open/space/S in RANGE_TURFS(1,src)) //RANGE_TURFS is in code\__HELPERS\game.dm + S.update_starlight() + +/turf/proc/update_lumcount(amount, mode) + switch(mode) + if(LIGHTING_REGULAR) + lighting_lumcount += amount + if(LIGHTING_STARLIGHT) + if(amount > starlight) + lighting_lumcount -= starlight + starlight = amount + lighting_lumcount += amount + else if(amount && amount == -starlight) + lighting_lumcount -= starlight + starlight = 0 + for(var/thing in affecting_lights) + var/datum/light_source/LS = thing + if(LS.mode == LIGHTING_STARLIGHT) + var/starlight_test = LS.effect[src] + if(starlight < starlight_test) + starlight = starlight_test + lighting_lumcount += starlight + + if(!lighting_changed) + SSlighting.changed_turfs += src + lighting_changed = 1 + +/turf/open/space/update_lumcount(amount, mode) //Keep track in case the turf becomes a floor at some point, but don't process. + lighting_changed = TRUE + ..() + lighting_changed = FALSE + +/turf/proc/init_lighting() + var/area/A = loc + if(!IS_DYNAMIC_LIGHTING(A)) + if(lighting_changed) + lighting_changed = 0 + if(lighting_object) + lighting_object.PutOut() + else + if(!lighting_object) + lighting_object = new (src) + redraw_lighting(1) + for(var/turf/open/space/T in RANGE_TURFS(1,src)) + T.update_starlight() + + +/turf/open/space/init_lighting() + if(lighting_changed) + lighting_changed = 0 + if(lighting_object) + lighting_object.PutOut() + +/turf/proc/redraw_lighting(instantly = 0) + if(lighting_object) + var/newalpha + if(lighting_lumcount <= 0) + newalpha = 255 + else + if(lighting_lumcount < LIGHTING_CAP) + var/num = Clamp(lighting_lumcount * LIGHTING_CAP_FRAC, 0, 255) + newalpha = 255-num + else //if(lighting_lumcount >= LIGHTING_CAP) + newalpha = 0 + if(newalpha >= LIGHTING_DARKEST_VISIBLE_ALPHA) + newalpha = 255 + if(lighting_object.alpha != newalpha) + if(instantly) + lighting_object.alpha = newalpha + else + animate(lighting_object, alpha = newalpha, time = LIGHTING_TIME) + if(newalpha >= LIGHTING_DARKEST_VISIBLE_ALPHA) + luminosity = 0 + lighting_object.luminosity = 0 + else + luminosity = 1 + lighting_object.luminosity = 1 + + lighting_changed = 0 + +/turf/proc/get_lumcount() + . = LIGHTING_CAP + var/area/A = src.loc + if(IS_DYNAMIC_LIGHTING(A)) + . = src.lighting_lumcount + +/area + var/lighting_use_dynamic = DYNAMIC_LIGHTING_ENABLED //Turn this flag off to make the area fullbright + +/area/New() + . = ..() + if(lighting_use_dynamic != DYNAMIC_LIGHTING_ENABLED) + luminosity = 1 + +/area/proc/SetDynamicLighting() + if (lighting_use_dynamic == DYNAMIC_LIGHTING_DISABLED) + lighting_use_dynamic = DYNAMIC_LIGHTING_ENABLED + luminosity = 0 + for(var/turf/T in src.contents) + T.init_lighting() + T.update_lumcount(0) + +//set the changed status of all lights which could have possibly lit this atom. +//We don't need to worry about lights which lit us but moved away, since they will have change status set already +//This proc can cause lots of lights to be updated. :( +/atom/proc/UpdateAffectingLights() + +/atom/movable/UpdateAffectingLights() + if(isturf(loc)) + loc.UpdateAffectingLights() + +/turf/UpdateAffectingLights() + if(affecting_lights) + for(var/datum/light_source/thing in affecting_lights) + if (!thing.changed) + thing.changed() //force it to update at next process() + + +#define LIGHTING_MAX_LUMINOSITY_STATIC 8 //Maximum luminosity to reduce lag. +#define LIGHTING_MAX_LUMINOSITY_MOBILE 7 //Moving objects have a lower max luminosity since these update more often. (lag reduction) +#define LIGHTING_MAX_LUMINOSITY_MOB 6 +#define LIGHTING_MAX_LUMINOSITY_TURF 8 //turfs are static too, why was this 1?! + +//caps luminosity effects max-range based on what type the light's owner is. +/atom/proc/get_light_range(radius) + return min(radius, LIGHTING_MAX_LUMINOSITY_STATIC) + +/atom/movable/get_light_range(radius) + return min(radius, LIGHTING_MAX_LUMINOSITY_MOBILE) + +/mob/get_light_range(radius) + return min(radius, LIGHTING_MAX_LUMINOSITY_MOB) + +/obj/machinery/light/get_light_range(radius) + return min(radius, LIGHTING_MAX_LUMINOSITY_STATIC) + +/turf/get_light_range(radius) + return min(radius, LIGHTING_MAX_LUMINOSITY_TURF) + +#undef LIGHTING_MAX_LUMINOSITY_STATIC +#undef LIGHTING_MAX_LUMINOSITY_MOBILE +#undef LIGHTING_MAX_LUMINOSITY_MOB +#undef LIGHTING_MAX_LUMINOSITY_TURF diff --git a/code/modules/mining/abandoned_crates.dm b/code/modules/mining/abandoned_crates.dm index aa0f56f0bf..9d0b804cd3 100644 --- a/code/modules/mining/abandoned_crates.dm +++ b/code/modules/mining/abandoned_crates.dm @@ -4,19 +4,21 @@ name = "abandoned crate" desc = "What could be inside?" icon_state = "securecrate" + integrity_failure = 0 //no breaking open the crate var/code = null var/lastattempt = null var/attempts = 10 var/codelen = 4 + tamperproof = 90 /obj/structure/closet/crate/secure/loot/New() ..() - var/list/digits = list("1", "2", "3", "4", "5", "6", "7", "8", "9", "z") + var/list/digits = list("1", "2", "3", "4", "5", "6", "7", "8", "9", "0") code = "" for(var/i = 0, i < codelen, i++) var/dig = pick(digits) code += dig - digits -= dig //Player can enter codes with matching digits, but there are never matching digits in the answer + digits -= dig //there are never matching digits in the answer var/loot = rand(1,100) //100 different crates with varying chances of spawning switch(loot) @@ -45,7 +47,7 @@ for(var/i in 1 to 3) new /obj/item/weapon/reagent_containers/glass/beaker/noreact(src) if(31 to 35) - new /obj/item/seeds/cash(src) + new /obj/item/seeds/firelemon(src) if(36 to 40) new /obj/item/weapon/melee/baton(src) if(41 to 45) @@ -54,7 +56,7 @@ if(46 to 50) new /obj/item/clothing/under/chameleon(src) for(var/i in 1 to 7) - new /obj/item/clothing/tie/horrible(src) + new /obj/item/clothing/neck/tie/horrible(src) if(51 to 52) // 2% chance new /obj/item/weapon/melee/classic_baton(src) if(53 to 54) @@ -65,13 +67,13 @@ if(57 to 58) new /obj/item/toy/syndicateballoon(src) if(59 to 60) - new /obj/item/weapon/gun/energy/kinetic_accelerator/hyper(src) + new /obj/item/borg/upgrade/modkit/aoe/mobs(src) new /obj/item/clothing/suit/space(src) new /obj/item/clothing/head/helmet/space(src) if(61 to 62) for(var/i in 1 to 5) new /obj/item/clothing/head/kitty(src) - new /obj/item/clothing/tie/petcollar(src) + new /obj/item/clothing/neck/petcollar(src) if(63 to 64) for(var/i in 1 to rand(4, 7)) var/newcoin = pick(/obj/item/weapon/coin/silver, /obj/item/weapon/coin/silver, /obj/item/weapon/coin/silver, /obj/item/weapon/coin/iron, /obj/item/weapon/coin/iron, /obj/item/weapon/coin/iron, /obj/item/weapon/coin/gold, /obj/item/weapon/coin/diamond, /obj/item/weapon/coin/plasma, /obj/item/weapon/coin/uranium) @@ -140,7 +142,7 @@ new /obj/item/weapon/hand_tele(src) if(97) new /obj/item/clothing/mask/balaclava - new /obj/item/weapon/gun/projectile/automatic/pistol(src) + new /obj/item/weapon/gun/ballistic/automatic/pistol(src) new /obj/item/ammo_box/magazine/m10mm(src) if(98) new /obj/item/weapon/katana/cursed(src) @@ -153,27 +155,32 @@ /obj/structure/closet/crate/secure/loot/attack_hand(mob/user) if(locked) user << "The crate is locked with a Deca-code lock." - var/input = input(usr, "Enter [codelen] digits.", "Deca-Code Lock", "") as text + var/input = input(usr, "Enter [codelen] digits. All digits must be unique.", "Deca-Code Lock", "") as text if(user.canUseTopic(src, 1)) + var/list/sanitised = list() + var/sanitycheck = 1 + for(var/i=1,i<=length(input),i++) //put the guess into a list + sanitised += text2num(copytext(input,i,i+1)) + for(var/i=1,i<=(length(input)-1),i++) //compare each digit in the guess to all those following it + for(var/j=(i+1),j<=length(input),j++) + if(sanitised[i] == sanitised[j]) + sanitycheck = null //if a digit is repeated, reject the input if (input == code) user << "The crate unlocks!" locked = 0 cut_overlays() add_overlay("securecrateg") - else if (input == null || length(input) != codelen) + else if (input == null || sanitycheck == null || length(input) != codelen) user << "You leave the crate alone." else user << "A red light flashes." - lastattempt = replacetext(input, 0, "z") + lastattempt = input attempts-- if(attempts == 0) boom(user) else return ..() -/obj/structure/closet/crate/secure/loot/attack_animal(mob/user) - boom(user) - /obj/structure/closet/crate/secure/loot/AltClick(mob/living/user) if(!user.canUseTopic(src)) return @@ -192,19 +199,21 @@ user << "* Anti-Tamper Bomb will activate after [src.attempts] failed access attempts." if(lastattempt != null) var/list/guess = list() + var/list/answer = list() var/bulls = 0 var/cows = 0 - for(var/i = 1, i < codelen + 1, i++) - var/a = copytext(lastattempt, i, i+1) //Stuff the code into the list - guess += a - guess[a] = i - for(var/i in guess) //Go through list and count matches - var/a = findtext(code, i) - if(a == guess[i]) - ++bulls - else if(a) + for(var/i=1,i<=length(lastattempt),i++) + guess += text2num(copytext(lastattempt,i,i+1)) + for(var/i=1,i<=length(lastattempt),i++) + answer += text2num(copytext(code,i,i+1)) + for(var/i = 1, i < codelen + 1, i++) // Go through list and count matches + if( answer.Find(guess[i],1,codelen+1)) ++cows - user << "Last code attempt had [bulls] correct digits at correct positions and [cows] correct digits at incorrect positions." + if( answer[i] == guess[i]) + ++bulls + --cows + + user << "Last code attempt, [lastattempt], had [bulls] correct digits at correct positions and [cows] correct digits at incorrect positions." return return ..() @@ -214,10 +223,5 @@ else ..() -/obj/structure/closet/crate/secure/loot/proc/boom(mob/user) - user << "The crate's anti-tamper system activates!" - for(var/atom/movable/AM in src) - qdel(AM) - var/turf/T = get_turf(src) - explosion(T, -1, -1, 1, 1) - qdel(src) \ No newline at end of file +/obj/structure/closet/crate/secure/loot/deconstruct(disassembled = TRUE) + boom() diff --git a/code/modules/mining/equipment.dm b/code/modules/mining/equipment.dm index 717f6bb87a..d1f7d1104f 100644 --- a/code/modules/mining/equipment.dm +++ b/code/modules/mining/equipment.dm @@ -12,8 +12,9 @@ heat_protection = CHEST|GROIN|LEGS|ARMS hooded = 1 hoodtype = /obj/item/clothing/head/explorer - armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 50, bio = 100, rad = 50) + armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 50, bio = 100, rad = 50, fire = 50, acid = 50) allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals, /obj/item/weapon/resonator, /obj/item/device/mining_scanner, /obj/item/device/t_scanner/adv_mining_scanner, /obj/item/weapon/gun/energy/kinetic_accelerator, /obj/item/weapon/pickaxe) + resistance_flags = FIRE_PROOF /obj/item/clothing/head/explorer name = "explorer hood" @@ -24,7 +25,8 @@ flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT max_heat_protection_temperature = FIRE_HELM_MAX_TEMP_PROTECT - armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 50, bio = 100, rad = 50) + armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 50, bio = 100, rad = 50, fire = 50, acid = 50) + resistance_flags = FIRE_PROOF /obj/item/clothing/mask/gas/explorer name = "explorer gas mask" @@ -34,14 +36,15 @@ visor_flags_inv = HIDEFACIALHAIR visor_flags_cover = MASKCOVERSMOUTH actions_types = list(/datum/action/item_action/adjust) - armor = list(melee = 10, bullet = 5, laser = 5, energy = 5, bomb = 0, bio = 50, rad = 0) + armor = list(melee = 10, bullet = 5, laser = 5, energy = 5, bomb = 0, bio = 50, rad = 0, fire = 20, acid = 40) + resistance_flags = FIRE_PROOF /obj/item/clothing/mask/gas/explorer/attack_self(mob/user) adjustmask(user) /obj/item/clothing/mask/gas/explorer/adjustmask(user) ..() - w_class = mask_adjusted ? 3 : 2 + w_class = mask_adjusted ? WEIGHT_CLASS_NORMAL : WEIGHT_CLASS_SMALL /obj/item/clothing/mask/gas/explorer/folded/New() ..() @@ -59,7 +62,7 @@ icon_state = "Jaunter" item_state = "electronic" throwforce = 0 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL throw_speed = 3 throw_range = 5 origin_tech = "bluespace=2" @@ -81,7 +84,7 @@ var/list/destinations = list() if(isgolem(user)) - for(var/obj/item/device/radio/beacon/B in world) + for(var/obj/item/device/radio/beacon/B in teleportbeacons) var/turf/T = get_turf(B) if(istype(T.loc, /area/ruin/powered/golem_ship)) destinations += B @@ -90,7 +93,7 @@ if(destinations.len) return destinations - for(var/obj/item/device/radio/beacon/B in world) + for(var/obj/item/device/radio/beacon/B in teleportbeacons) var/turf/T = get_turf(B) if(T.z == ZLEVEL_STATION) destinations += B @@ -164,13 +167,13 @@ icon_state = "resonator" item_state = "resonator" desc = "A handheld device that creates small fields of energy that resonate until they detonate, crushing rock. It can also be activated without a target to create a field at the user's location, to act as a delayed time trap. It's more effective in a vacuum." - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL force = 15 throwforce = 10 - var/cooldown = 0 - var/fieldsactive = 0 var/burst_time = 30 var/fieldlimit = 4 + var/list/fields = list() + var/quick_burst_mod = 0.8 origin_tech = "magnets=3;engineering=3" /obj/item/weapon/resonator/upgraded @@ -180,17 +183,19 @@ item_state = "resonator_u" origin_tech = "materials=4;powerstorage=3;engineering=3;magnets=3" fieldlimit = 6 + quick_burst_mod = 1 /obj/item/weapon/resonator/proc/CreateResonance(target, creator) var/turf/T = get_turf(target) - if(locate(/obj/effect/resonance) in T) + var/obj/effect/resonance/R = locate(/obj/effect/resonance) in T + if(R) + R.resonance_damage *= quick_burst_mod + R.burst(T) return - if(fieldsactive < fieldlimit) + if(fields.len < fieldlimit) playsound(src,'sound/weapons/resonator_fire.ogg',50,1) - new /obj/effect/resonance(T, creator, burst_time) - fieldsactive++ - spawn(burst_time) - fieldsactive-- + var/obj/effect/resonance/RE = new /obj/effect/resonance(T, creator, burst_time, src) + fields += RE /obj/item/weapon/resonator/attack_self(mob/user) if(burst_time == 50) @@ -202,7 +207,9 @@ /obj/item/weapon/resonator/afterattack(atom/target, mob/user, proximity_flag) if(proximity_flag) - if(!check_allowed_items(target, 1)) return + if(!check_allowed_items(target, 1)) + return + user.changeNext_move(CLICK_CD_MELEE) CreateResonance(target, user) /obj/effect/resonance @@ -211,37 +218,42 @@ icon = 'icons/effects/effects.dmi' icon_state = "shield1" layer = ABOVE_ALL_MOB_LAYER + anchored = TRUE mouse_opacity = 0 var/resonance_damage = 20 + var/creator + var/obj/item/weapon/resonator/res -/obj/effect/resonance/New(loc, var/creator = null, var/timetoburst) +/obj/effect/resonance/New(loc, set_creator, timetoburst, set_resonator) + ..() + creator = set_creator + res = set_resonator var/turf/proj_turf = get_turf(src) if(!istype(proj_turf)) return - if(istype(proj_turf, /turf/closed/mineral)) - var/turf/closed/mineral/M = proj_turf - spawn(timetoburst) - playsound(src,'sound/weapons/resonator_blast.ogg',50,1) - M.gets_drilled(creator) - qdel(src) - else - var/datum/gas_mixture/environment = proj_turf.return_air() - var/pressure = environment.return_pressure() - if(pressure < 50) - name = "strong resonance field" - resonance_damage = 60 - spawn(timetoburst) - playsound(src,'sound/weapons/resonator_blast.ogg',50,1) - if(creator) - for(var/mob/living/L in src.loc) - add_logs(creator, L, "used a resonator field on", "resonator") - L << "The [src.name] ruptured with you in it!" - L.adjustBruteLoss(resonance_damage) - else - for(var/mob/living/L in src.loc) - L << "The [src.name] ruptured with you in it!" - L.adjustBruteLoss(resonance_damage) - qdel(src) + var/datum/gas_mixture/environment = proj_turf.return_air() + var/pressure = environment.return_pressure() + if(pressure < 50) + name = "strong resonance field" + resonance_damage = 60 + addtimer(src, "burst", timetoburst, TIMER_NORMAL, proj_turf) + +/obj/effect/resonance/Destroy() + if(res) + res.fields -= src + return ..() + +/obj/effect/resonance/proc/burst(turf/T) + playsound(src,'sound/weapons/resonator_blast.ogg',50,1) + if(ismineralturf(T)) + var/turf/closed/mineral/M = T + M.gets_drilled(creator) + for(var/mob/living/L in T) + if(creator) + add_logs(creator, L, "used a resonator field on", "resonator") + L << "The [src.name] ruptured with you in it!" + L.apply_damage(resonance_damage, BRUTE) + qdel(src) /**********************Facehugger toy**********************/ @@ -265,7 +277,7 @@ icon_state = "lazarus_hypo" item_state = "hypo" throwforce = 0 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL throw_speed = 3 throw_range = 5 var/loaded = 1 @@ -276,7 +288,7 @@ /obj/item/weapon/lazarus_injector/afterattack(atom/target, mob/user, proximity_flag) if(!loaded) return - if(istype(target, /mob/living) && proximity_flag) + if(isliving(target) && proximity_flag) if(istype(target, /mob/living/simple_animal)) var/mob/living/simple_animal/M = target if(M.sentience_type != revive_type) @@ -285,7 +297,7 @@ if(M.stat == DEAD) M.faction = list("neutral") M.revive(full_heal = 1, admin_revive = 1) - if(istype(target, /mob/living/simple_animal/hostile)) + if(ishostile(target)) var/mob/living/simple_animal/hostile/H = M if(malfunctioning) H.faction |= list("lazarus", "\ref[user]") @@ -326,7 +338,7 @@ name = "manual mining scanner" icon_state = "mining1" item_state = "analyzer" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL flags = CONDUCT slot_flags = SLOT_BELT var/cooldown = 0 @@ -358,7 +370,7 @@ name = "advanced automatic mining scanner" icon_state = "mining0" item_state = "analyzer" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL flags = CONDUCT slot_flags = SLOT_BELT var/cooldown = 35 @@ -408,6 +420,7 @@ for(var/turf/closed/mineral/M in minerals) var/turf/F = get_turf(M) var/image/I = image('icons/turf/smoothrocks.dmi', loc = F, icon_state = M.scan_state, layer = FLASH_LAYER) + I.plane = FULLSCREEN_PLANE C.images += I spawn(30) if(C) @@ -441,28 +454,6 @@ icon = 'icons/obj/mining.dmi' icon_state = "xeno_warning" -/******************Hardsuit Jetpack Upgrade*******************/ -/obj/item/hardsuit_jetpack - name = "hardsuit jetpack upgrade" - icon_state = "jetpack_upgrade" - desc = "A modular, compact set of thrusters designed to integrate with a hardsuit. It is fueled by a tank inserted into the suit's storage compartment." - origin_tech = "materials=4;magnets=4;engineering=5" - // Same as jetpack implant minus biotech, makes sense. - - -/obj/item/hardsuit_jetpack/afterattack(var/obj/item/clothing/suit/space/hardsuit/S, mob/user) - ..() - if(!istype(S)) - user << "This upgrade can only be applied to a hardsuit." - else if(S.jetpack) - user << "[S] already has a jetpack installed." - else if(S == user.get_item_by_slot(slot_wear_suit)) //Make sure the player is not wearing the suit before applying the upgrade. - user << "You cannot install the upgrade to [S] while wearing it." - else - S.jetpack = new /obj/item/weapon/tank/jetpack/suit(S) - user << "You successfully install the jetpack into [S]." - qdel(src) - /*********************Hivelord stabilizer****************/ /obj/item/weapon/hivelordstabilizer @@ -470,7 +461,7 @@ icon = 'icons/obj/chemical.dmi' icon_state = "bottle19" desc = "Inject certain types of monster organs with this stabilizer to preserve their healing powers indefinitely." - w_class = 1 + w_class = WEIGHT_CLASS_TINY origin_tech = "biotech=3" /obj/item/weapon/hivelordstabilizer/afterattack(obj/item/organ/M, mob/user) @@ -489,12 +480,12 @@ icon_state = "mining_hammer1" item_state = "mining_hammer1" name = "proto-kinetic crusher" - desc = "An early design of the proto-kinetic accelerator, it is little more than an combination of various mining tools cobbled together, forming a high-tech club.\ - While it is an effective mining tool, it did little to aid any but the most skilled and/or suicidal miners against local fauna. \ - \nMark a mob with the destabilizing force, then hit them in melee to activate it for extra damage. Extra damage if backstabbed in this fashion. \ - This weapon is only particularly effective against large creatures." + desc = "An early design of the proto-kinetic accelerator, it is little more than an combination of various mining tools cobbled together, forming a high-tech club. \ + While it is an effective mining tool, it did little to aid any but the most skilled and/or suicidal miners against local fauna.\ + \nMark a mob with the destabilizing force, then hit them in melee to activate it for extra damage. Extra damage if backstabbed in this fashion. \ + This weapon is only particularly effective against large creatures." force = 20 //As much as a bone spear, but this is significantly more annoying to carry around due to requiring the use of both hands at all times - w_class = 4 + w_class = WEIGHT_CLASS_BULKY slot_flags = SLOT_BACK force_unwielded = 20 //It's never not wielded so these are the same force_wielded = 20 @@ -504,16 +495,13 @@ armour_penetration = 10 materials = list(MAT_METAL=1150, MAT_GLASS=2075) hitsound = 'sound/weapons/bladeslice.ogg' - attack_verb = list("smashes", "crushes", "cleaves", "chops", "pulps") + attack_verb = list("smashed", "crushed", "cleaved", "chopped", "pulped") sharpness = IS_SHARP var/charged = 1 var/charge_time = 16 var/atom/mark = null var/marked_image = null -/obj/item/weapon/twohanded/required/mining_hammer/New() - set_light(luminosity) - /obj/item/projectile/destabilizer name = "destabilizing force" icon_state = "pulse1" @@ -522,8 +510,9 @@ flag = "bomb" range = 6 var/obj/item/weapon/twohanded/required/mining_hammer/hammer_synced = null + log_override = TRUE -/obj/item/projectile/destabilizer/on_hit(atom/target, blocked = 0, hit_zone) +/obj/item/projectile/destabilizer/on_hit(atom/target, blocked = 0) if(hammer_synced) if(hammer_synced.mark == target) return ..() @@ -538,7 +527,7 @@ L.underlays += I hammer_synced.marked_image = I var/target_turf = get_turf(target) - if(istype(target_turf, /turf/closed/mineral)) + if(ismineralturf(target_turf)) var/turf/closed/mineral/M = target_turf PoolOrNew(/obj/effect/overlay/temp/kinetic_blast, M) M.gets_drilled(firer) @@ -547,7 +536,7 @@ /obj/item/weapon/twohanded/required/mining_hammer/afterattack(atom/target, mob/user, proximity_flag) if(!proximity_flag && charged)//Mark a target, or mine a tile. var/turf/proj_turf = get_turf(src) - if(!istype(proj_turf, /turf)) + if(!isturf(proj_turf)) return var/datum/gas_mixture/environment = proj_turf.return_air() var/pressure = environment.return_pressure() @@ -584,3 +573,11 @@ charged = 1 icon_state = "mining_hammer1" playsound(src.loc, 'sound/weapons/kenetic_reload.ogg', 60, 1) + +/obj/item/weapon/twohanded/required/mining_hammer/pickup(mob/user) + ..() + user.AddLuminosity(luminosity) + +/obj/item/weapon/twohanded/required/mining_hammer/dropped(mob/user) + ..() + user.AddLuminosity(-luminosity) diff --git a/code/modules/mining/fulton.dm b/code/modules/mining/fulton.dm index d9abc61141..a883bbd369 100644 --- a/code/modules/mining/fulton.dm +++ b/code/modules/mining/fulton.dm @@ -1,18 +1,17 @@ var/list/total_extraction_beacons = list() /obj/item/weapon/extraction_pack - name = "fulton material extraction pack" - desc = "A balloon that can be used to extract people or objects to a Fulton Recovery Beacon. Anything not bolted down can be moved. Link the pack to a beacon by using the pack in hand." + name = "fulton extraction pack" + desc = "A balloon that can be used to extract equipment or personnel to a Fulton Recovery Beacon. Anything not bolted down can be moved. Link the pack to a beacon by using the pack in hand." icon = 'icons/obj/fulton.dmi' icon_state = "extraction_pack" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL var/obj/structure/extraction_point/beacon var/list/beacon_networks = list("station") var/uses_left = 3 var/can_use_indoors var/safe_for_living_creatures = 1 - /obj/item/weapon/extraction_pack/examine() . = ..() usr.show_message("It has [uses_left] uses remaining.", 1) @@ -54,13 +53,17 @@ var/list/total_extraction_beacons = list() if(!safe_for_living_creatures && check_for_living_mobs(A)) user << "[src] is not safe for use with living creatures, they wouldn't survive the trip back!" return - if(A.loc == user || A == user) // no extracting stuff you're holding in your hands/yourself + if(A.loc == user) // no extracting stuff you're holding return if(A.anchored) return user << "You start attaching the pack to [A]..." if(do_after(user,50,target=A)) user << "You attach the pack to [A] and activate it." + if(loc == user || istype(user.back, /obj/item/weapon/storage/backpack)) + var/obj/item/weapon/storage/backpack/B = user.back + if(B.can_be_inserted(src,stop_messages = 1)) + B.handle_item_insertion(src) uses_left-- if(uses_left <= 0) user.drop_item(src) @@ -68,7 +71,7 @@ var/list/total_extraction_beacons = list() var/image/balloon var/image/balloon2 var/image/balloon3 - if(istype(A, /mob/living)) + if(isliving(A)) var/mob/living/M = A M.Weaken(16) // Keep them from moving during the duration of the extraction M.buckled = 0 // Unbuckle them to prevent anchoring problems @@ -101,7 +104,7 @@ var/list/total_extraction_beacons = list() sleep(10) playsound(holder_obj.loc, 'sound/items/fultext_launch.wav', 50, 1, -3) animate(holder_obj, pixel_z = 1000, time = 30) - if(istype(A, /mob/living/carbon/human)) + if(ishuman(A)) var/mob/living/carbon/human/L = A L.SetParalysis(0) L.drowsyness = 0 @@ -136,16 +139,14 @@ var/list/total_extraction_beacons = list() /obj/item/fulton_core name = "extraction beacon signaller" - desc = "Emits a signal which fulton recovery devices can lock on to. Craft with metal to create a beacon." + desc = "Emits a signal which fulton recovery devices can lock on to. Activate in hand to create a beacon." icon = 'icons/obj/stock_parts.dmi' icon_state = "subspace_amplifier" -/datum/crafting_recipe/fulton - name = "Fulton Recovery Beacon" - result = /obj/structure/extraction_point - reqs = list(/obj/item/fulton_core = 1, /obj/item/stack/sheet/metal = 5) - time = 15 - category = CAT_MISC +/obj/item/fulton_core/attack_self(mob/user) + if(do_after(user,15,target = user) && !qdeleted(src)) + new /obj/structure/extraction_point(get_turf(user)) + qdel(src) /obj/structure/extraction_point name = "fulton recovery beacon" @@ -172,12 +173,12 @@ var/list/total_extraction_beacons = list() var/atom/movable/stored_obj /obj/item/weapon/extraction_pack/proc/check_for_living_mobs(atom/A) - if(istype(A, /mob/living)) + if(isliving(A)) var/mob/living/L = A if(L.stat != DEAD) return 1 for(var/thing in A.GetAllContents()) - if(istype(A, /mob/living)) + if(isliving(A)) var/mob/living/L = A if(L.stat != DEAD) return 1 diff --git a/code/modules/mining/laborcamp/laborshuttle.dm b/code/modules/mining/laborcamp/laborshuttle.dm index cf68eeff07..fac4dc3745 100644 --- a/code/modules/mining/laborcamp/laborshuttle.dm +++ b/code/modules/mining/laborcamp/laborshuttle.dm @@ -5,7 +5,6 @@ shuttleId = "laborcamp" possible_destinations = "laborcamp_home;laborcamp_away" req_access = list(access_brig) - light_color = LIGHT_COLOR_CYAN /obj/machinery/computer/shuttle/labor/one_way @@ -25,4 +24,4 @@ if(S && S.name == "laborcamp_away") usr << "Shuttle is already at the outpost!" return 0 - ..() + ..() \ No newline at end of file diff --git a/code/modules/mining/laborcamp/laborstacker.dm b/code/modules/mining/laborcamp/laborstacker.dm index 4248df8cdb..204eb07c44 100644 --- a/code/modules/mining/laborcamp/laborstacker.dm +++ b/code/modules/mining/laborcamp/laborstacker.dm @@ -74,14 +74,14 @@ switch(action) if("handle_id") if(inserted_id) - if(!usr.get_active_hand()) + if(!usr.get_active_held_item()) usr.put_in_hands(inserted_id) inserted_id = null else inserted_id.forceMove(get_turf(src)) inserted_id = null else - var/obj/item/I = usr.get_active_hand() + var/obj/item/I = usr.get_active_held_item() if(istype(I, /obj/item/weapon/card/id/prisoner)) if(!usr.drop_item()) return diff --git a/code/modules/mining/lavaland/ash_flora.dm b/code/modules/mining/lavaland/ash_flora.dm new file mode 100644 index 0000000000..397ec8d413 --- /dev/null +++ b/code/modules/mining/lavaland/ash_flora.dm @@ -0,0 +1,218 @@ +/obj/structure/flora/ash + gender = PLURAL + layer = PROJECTILE_HIT_THRESHHOLD_LAYER //sporangiums up don't shoot + icon = 'icons/obj/lavaland/ash_flora.dmi' + icon_state = "l_mushroom" + name = "large mushrooms" + desc = "A number of large mushrooms, covered in a faint layer of ash and what can only be spores." + var/harvested_name = "shortened mushrooms" + var/harvested_desc = "Some quickly regrowing mushrooms, formerly known to be quite large." + var/needs_sharp_harvest = TRUE + var/harvest = /obj/item/weapon/reagent_containers/food/snacks/ash_flora/shavings + var/harvest_amount_low = 1 + var/harvest_amount_high = 3 + var/harvest_time = 60 + var/harvest_message_low = "You pick a mushroom, but fail to collect many shavings from its cap." + var/harvest_message_med = "You pick a mushroom, carefully collecting the shavings from its cap." + var/harvest_message_high = "You harvest and collect shavings from several mushroom caps." + var/harvested = FALSE + var/base_icon + var/regrowth_time_low = 4800 + var/regrowth_time_high = 8400 + +/obj/structure/flora/ash/New() + ..() + base_icon = "[icon_state][rand(1, 4)]" + icon_state = base_icon + if(prob(15)) + harvest(null, TRUE) + +/obj/structure/flora/ash/proc/harvest(user, no_drop) + if(harvested) + return 0 + if(!no_drop) + var/rand_harvested = rand(harvest_amount_low, harvest_amount_high) + if(rand_harvested) + if(user) + var/msg = harvest_message_med + if(rand_harvested == harvest_amount_low) + msg = harvest_message_low + else if(rand_harvested == harvest_amount_high) + msg = harvest_message_high + user << "[msg]" + for(var/i in 1 to rand_harvested) + new harvest(get_turf(src)) + icon_state = "[base_icon]p" + name = harvested_name + desc = harvested_desc + harvested = TRUE + addtimer(src, "regrow", rand(regrowth_time_low, regrowth_time_high)) + return 1 + +/obj/structure/flora/ash/proc/regrow() + icon_state = base_icon + name = initial(name) + desc = initial(desc) + harvested = FALSE + +/obj/structure/flora/ash/attackby(obj/item/weapon/W, mob/user, params) + if(!harvested && needs_sharp_harvest && W.sharpness) + user.visible_message("[user] starts to harvest from [src] with [W].","You begin to harvest from [src] with [W].") + if(do_after(user, harvest_time, target = src)) + harvest(user) + else + return ..() + +/obj/structure/flora/ash/attack_hand(mob/user) + if(!harvested && !needs_sharp_harvest) + user.visible_message("[user] starts to harvest from [src].","You begin to harvest from [src].") + if(do_after(user, harvest_time, target = src)) + harvest(user) + else + ..() + +/obj/structure/flora/ash/tall_shroom //exists only so that the spawning check doesn't allow these spawning near other things + regrowth_time_low = 4200 + +/obj/structure/flora/ash/leaf_shroom + icon_state = "s_mushroom" + name = "leafy mushrooms" + desc = "A number of mushrooms, each of which surrounds a greenish sporangium with a number of leaf-like structures." + harvested_name = "leafless mushrooms" + harvested_desc = "A bunch of formerly-leafed mushrooms, with their sporangiums exposed. Scandalous?" + harvest = /obj/item/weapon/reagent_containers/food/snacks/ash_flora/mushroom_leaf + needs_sharp_harvest = FALSE + harvest_amount_high = 4 + harvest_time = 20 + harvest_message_low = "You pluck a single, suitable leaf." + harvest_message_med = "You pluck a number of leaves, leaving a few unsuitable ones." + harvest_message_high = "You pluck quite a lot of suitable leaves." + regrowth_time_low = 2400 + regrowth_time_high = 6000 + +/obj/structure/flora/ash/cap_shroom + icon_state = "r_mushroom" + name = "tall mushrooms" + desc = "Several mushrooms, the larger of which have a ring of conks at the midpoint of their stems." + harvested_name = "small mushrooms" + harvested_desc = "Several small mushrooms near the stumps of what likely were larger mushrooms." + harvest = /obj/item/weapon/reagent_containers/food/snacks/ash_flora/mushroom_cap + harvest_amount_high = 4 + harvest_time = 50 + harvest_message_low = "You slice the cap off of a mushroom." + harvest_message_med = "You slice off a few conks from the larger mushrooms." + harvest_message_high = "You slice off a number of caps and conks from these mushrooms." + regrowth_time_low = 3000 + regrowth_time_high = 5400 + +/obj/structure/flora/ash/stem_shroom + icon_state = "t_mushroom" + name = "numerous mushrooms" + desc = "A large number of mushrooms, some of which have long, fleshy stems. They're radiating light!" + luminosity = 1 + harvested_name = "tiny mushrooms" + harvested_desc = "A few tiny mushrooms around larger stumps. You can already see them growing back." + harvest = /obj/item/weapon/reagent_containers/food/snacks/ash_flora/mushroom_stem + harvest_amount_high = 4 + harvest_time = 40 + harvest_message_low = "You pick and slice the cap off of a mushroom, leaving the stem." + harvest_message_med = "You pick and decapitate several mushrooms for their stems." + harvest_message_high = "You acquire a number of stems from these mushrooms." + regrowth_time_low = 3000 + regrowth_time_high = 6000 + +/obj/structure/flora/ash/cacti + icon_state = "cactus" + name = "fruiting cacti" + desc = "Several prickly cacti, brimming with ripe fruit and covered in a thin layer of ash." + harvested_name = "cacti" + harvested_desc = "A bunch of prickly cacti. You can see fruits slowly growing beneath the covering of ash." + harvest = /obj/item/weapon/reagent_containers/food/snacks/ash_flora/cactus_fruit + needs_sharp_harvest = FALSE + harvest_amount_high = 2 + harvest_time = 10 + harvest_message_low = "You pick a cactus fruit." + harvest_message_med = "You pick several cactus fruit." //shouldn't show up, because you can't get more than two + harvest_message_high = "You pick a pair of cactus fruit." + regrowth_time_low = 4800 + regrowth_time_high = 7200 + +/obj/structure/flora/ash/cacti/Crossed(mob/AM) + if(ishuman(AM) && has_gravity(loc) && prob(70)) + var/mob/living/carbon/human/H = AM + if(!H.shoes && !H.lying) //ouch, my feet. + var/picked_def_zone = pick("l_leg", "r_leg") + var/obj/item/bodypart/O = H.get_bodypart(picked_def_zone) + if(!istype(O) || (PIERCEIMMUNE in H.dna.species.species_traits)) + return + H.apply_damage(rand(3, 6), BRUTE, picked_def_zone) + H.Weaken(2) + H.visible_message("[H] steps on a cactus!", \ + "You step on a cactus!") + +/obj/item/weapon/reagent_containers/food/snacks/ash_flora + name = "mushroom shavings" + desc = "Some shavings from a tall mushroom. With enough, might serve as a bowl." + icon = 'icons/obj/lavaland/ash_flora.dmi' + icon_state = "mushroom_shavings" + list_reagents = list("sugar" = 3, "ethanol" = 2, "stabilizing_agent" = 3, "minttoxin" = 2) + w_class = WEIGHT_CLASS_TINY + resistance_flags = FLAMMABLE + obj_integrity = 100 + max_integrity = 100 + +/obj/item/weapon/reagent_containers/food/snacks/ash_flora/New() + ..() + pixel_x = rand(-4, 4) + pixel_y = rand(-4, 4) + + +/obj/item/weapon/reagent_containers/food/snacks/ash_flora/shavings //for actual crafting + + +/obj/item/weapon/reagent_containers/food/snacks/ash_flora/mushroom_leaf + name = "mushroom leaf" + desc = "A leaf, from a mushroom." + list_reagents = list("nutriment" = 3, "vitfro" = 2, "nicotine" = 2) + icon_state = "mushroom_leaf" + + + +/obj/item/weapon/reagent_containers/food/snacks/ash_flora/mushroom_cap + name = "mushroom cap" + desc = "The cap of a large mushroom." + list_reagents = list("mindbreaker" = 2, "entpoly" = 4, "mushroomhallucinogen" = 2) + icon_state = "mushroom_cap" + + +/obj/item/weapon/reagent_containers/food/snacks/ash_flora/mushroom_stem + name = "mushroom stem" + desc = "A long mushroom stem. It's slightly glowing." + list_reagents = list("tinlux" = 2, "vitamin" = 1, "space_drugs" = 1) + icon_state = "mushroom_stem" + luminosity = 1 + +/obj/item/weapon/reagent_containers/food/snacks/ash_flora/cactus_fruit + name = "cactus fruit" + list_reagents = list("vitamin" = 2, "nutriment" = 2, "vitfro" = 4) + desc = "A cactus fruit covered in a thick, reddish skin. And some ash." + icon_state = "cactus_fruit" + + +/obj/item/mushroom_bowl + name = "mushroom bowl" + desc = "A bowl made out of mushrooms. Not food, though it might have contained some at some point." + icon = 'icons/obj/lavaland/ash_flora.dmi' + icon_state = "mushroom_bowl" + w_class = WEIGHT_CLASS_SMALL + resistance_flags = FLAMMABLE + obj_integrity = 200 + max_integrity = 200 + +//what you can craft with these things +/datum/crafting_recipe/mushroom_bowl + name = "Mushroom Bowl" + result = /obj/item/weapon/reagent_containers/food/drinks/mushroom_bowl + reqs = list(/obj/item/weapon/reagent_containers/food/snacks/ash_flora/shavings = 5) + time = 30 + category = CAT_PRIMAL diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index 3d687ddbf8..f7ccdc19f4 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -4,7 +4,7 @@ name = "necropolis chest" desc = "It's watching you closely." icon_state = "necrocrate" - burn_state = LAVA_PROOF + resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF /obj/structure/closet/crate/necropolis/tendril desc = "It's watching you suspiciously." @@ -48,7 +48,7 @@ if(16) new /obj/item/weapon/guardiancreator(src) if(17) - new /obj/item/stack/sheet/runed_metal/fifty(src) + new /obj/item/borg/upgrade/modkit/aoe/turfs/andmobs(src) if(18) new /obj/item/device/warp_cube/red(src) if(19) @@ -83,24 +83,21 @@ user << "The wisp has gone missing!" return if(wisp.loc == src) - user << "You release the wisp. It begins to \ - bob around your head." + user << "You release the wisp. It begins to bob around your head." user.sight |= SEE_MOBS icon_state = "lantern" wisp.orbit(user, 20) feedback_add_details("wisp_lantern","F") // freed else - user << "You return the wisp to the lantern.\ - " + user << "You return the wisp to the lantern." if(wisp.orbiting) - var/atom/A = wisp.orbiting - if(istype(A, /mob/living)) + var/atom/A = wisp.orbiting.orbiting + if(isliving(A)) var/mob/living/M = A M.sight &= ~SEE_MOBS - M << "Your vision returns to \ - normal." + M << "Your vision returns to normal." wisp.stop_orbit() wisp.loc = src @@ -116,8 +113,7 @@ if(wisp.loc == src) qdel(wisp) else - wisp.visible_message("[wisp] has a sad \ - feeling for a moment, then it passes.") + wisp.visible_message("[wisp] has a sad feeling for a moment, then it passes.") ..() //Wisp Lantern @@ -193,19 +189,23 @@ weaken = 3 var/chain -/obj/item/ammo_casing/magic/hook/ready_proj(atom/target, mob/living/user, quiet, zone_override = "") +/obj/item/projectile/hook/fire(setAngle) + if(firer) + chain = firer.Beam(src, icon_state = "chain", time = INFINITY, maxdistance = INFINITY) ..() - var/obj/item/projectile/hook/P = BB - spawn(1) - P.chain = P.Beam(user,icon_state="chain",icon = 'icons/obj/lavaland/artefacts.dmi',time=1000, maxdistance = 30) /obj/item/projectile/hook/on_hit(atom/target) . = ..() if(isliving(target)) var/mob/living/L = target - L.visible_message("[L] is snagged by [firer]'s hook!") - L.forceMove(get_turf(firer)) - qdel(chain) + if(!L.anchored) + L.visible_message("[L] is snagged by [firer]'s hook!") + L.forceMove(get_turf(firer)) + +/obj/item/projectile/hook/Destroy() + qdel(chain) + return ..() + //Immortality Talisman /obj/item/device/immortality_talisman @@ -213,8 +213,12 @@ desc = "A dread talisman that can render you completely invulnerable." icon = 'icons/obj/lavaland/artefacts.dmi' icon_state = "talisman" + actions_types = list(/datum/action/item_action/immortality) var/cooldown = 0 +/datum/action/item_action/immortality + name = "Immortality" + /obj/item/device/immortality_talisman/Destroy(force) if(force) . = ..() @@ -225,7 +229,7 @@ if(cooldown < world.time) feedback_add_details("immortality_talisman","U") // usage cooldown = world.time + 600 - user.visible_message("[user] vanishes from reality, leaving a a hole in their place!") + user.visible_message("[user] vanishes from reality, leaving a a hole in [user.p_their()] place!") var/obj/effect/immortality_talisman/Z = new(get_turf(src.loc)) Z.name = "hole in reality" Z.desc = "It's shaped an awful lot like [user.name]." @@ -244,7 +248,6 @@ /obj/effect/immortality_talisman icon_state = "blank" icon = 'icons/effects/effects.dmi' - burn_state = LAVA_PROOF var/can_destroy = FALSE /obj/effect/immortality_talisman/attackby() @@ -271,7 +274,7 @@ name = "paradox bag" desc = "Somehow, it's in two places at once." max_combined_w_class = 60 - max_w_class = 3 + max_w_class = WEIGHT_CLASS_NORMAL //External @@ -334,11 +337,7 @@ var/obj/screen/inventory/hand/H = over_object if(!M.unEquip(src)) return - switch(H.slot_id) - if(slot_r_hand) - M.put_in_r_hand(src) - if(slot_l_hand) - M.put_in_l_hand(src) + M.put_in_hand(src, H.held_index) add_fingerprint(usr) @@ -351,7 +350,7 @@ icon_state = "goliath_boat" icon = 'icons/obj/lavaland/dragonboat.dmi' keytype = /obj/item/weapon/oar - burn_state = LAVA_PROOF + resistance_flags = LAVA_PROOF | FIRE_PROOF /obj/vehicle/lavaboat/relaymove(mob/user, direction) var/turf/next = get_step(src, direction) @@ -370,8 +369,8 @@ item_state = "rods" desc = "Not to be confused with the kind Research hassles you for." force = 12 - w_class = 3 - burn_state = LAVA_PROOF + w_class = WEIGHT_CLASS_NORMAL + resistance_flags = LAVA_PROOF | FIRE_PROOF /datum/crafting_recipe/oar name = "goliath bone oar" @@ -470,7 +469,7 @@ if(2) new /obj/item/weapon/lava_staff(src) if(3) - new /obj/item/weapon/spellbook/oneuse/fireball(src) + new /obj/item/weapon/spellbook/oneuse/sacredflame(src) new /obj/item/weapon/gun/magic/wand/fireball(src) if(4) new /obj/item/weapon/dragons_blood(src) @@ -482,7 +481,7 @@ item_state = "spectral" flags = CONDUCT sharpness = IS_SHARP - w_class = 4 + w_class = WEIGHT_CLASS_BULKY force = 1 throwforce = 1 hitsound = 'sound/effects/ghost2.ogg' @@ -510,7 +509,7 @@ return user << "You call out for aid, attempting to summon spirits to your side." - notify_ghosts("[user] is raising their [src], calling for your help!", + notify_ghosts("[user] is raising [user.p_their()] [src], calling for your help!", enter_link="(Click to help)", source = user, action=NOTIFY_ORBIT) @@ -530,8 +529,16 @@ var/turf/T = get_turf(src) var/list/contents = T.GetAllContents() var/mob/dead/observer/current_spirits = list() - for(var/mob/dead/observer/G in dead_mob_list) - if(G.orbiting in contents) + var/list/orbiters = list() + for(var/thing in contents) + var/atom/A = thing + if (A.orbiters) + orbiters += A.orbiters + + for(var/thing in orbiters) + var/datum/orbit/O = thing + if (isobserver(O.orbiter)) + var/mob/dead/observer/G = O.orbiter ghost_counter++ G.invisibility = 0 current_spirits |= G @@ -574,14 +581,18 @@ switch(random) if(1) - user << "Other than tasting terrible, nothing really happens." + user << "Your appearence morphs to that of a very small humanoid ash dragon! You get to look like a freak without the cool abilities." + H.dna.features = list("mcolor" = "A02720", "tail_lizard" = "Dark Tiger", "tail_human" = "None", "snout" = "Sharp", "horns" = "Curled", "ears" = "None", "wings" = "None", "frills" = "None", "spines" = "Long", "body_markings" = "Dark Tiger Body", "legs" = "Digitigrade Legs") + H.eye_color = "fee5a3" + H.set_species(/datum/species/lizard) if(2) user << "Your flesh begins to melt! Miraculously, you seem fine otherwise." H.set_species(/datum/species/skeleton) if(3) - user << "You don't feel so good..." - message_admins("[key_name_admin(user)](FLW) has started transforming into a dragon via dragon's blood.") - H.ForceContractDisease(new /datum/disease/transformation/dragon(0)) + user << "Power courses through you! You can now shift your form at will." + if(user.mind) + var/obj/effect/proc_holder/spell/targeted/shapeshift/dragon/D = new + user.mind.AddSpell(D) if(4) user << "You feel like you could walk straight through lava now." H.weather_immunities |= "lava" @@ -615,14 +626,18 @@ item_state = "staffofstorms" icon = 'icons/obj/guns/magic.dmi' slot_flags = SLOT_BACK - item_state = "staffofstorms" - w_class = 4 + w_class = WEIGHT_CLASS_BULKY force = 25 damtype = BURN - burn_state = LAVA_PROOF + resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF hitsound = 'sound/weapons/sear.ogg' var/turf_type = /turf/open/floor/plating/lava/smooth - var/cooldown = 200 + var/transform_string = "lava" + var/reset_turf_type = /turf/open/floor/plating/asteroid/basalt + var/reset_string = "basalt" + var/create_cooldown = 100 + var/create_delay = 30 + var/reset_cooldown = 50 var/timer = 0 var/banned_turfs @@ -639,15 +654,36 @@ return if(target in view(user.client.view, get_turf(user))) - var/turf/T = get_turf(target) - message_admins("[key_name_admin(user)] fired the lava staff at ([get_area(target)] ([T.x], [T.y], [T.z])).") - log_game("[key_name(user)] fired the lava staff at [get_area(target)] ([T.x], [T.y], [T.z]).") - var/turf/open/O = target - user.visible_message("[user] turns \the [O] into lava!") - O.ChangeTurf(turf_type) - playsound(get_turf(src),'sound/magic/Fireball.ogg', 200, 1) - timer = world.time + cooldown + var/turf/open/T = get_turf(target) + if(!istype(T)) + return + if(!istype(T, turf_type)) + var/obj/effect/overlay/temp/lavastaff/L = PoolOrNew(/obj/effect/overlay/temp/lavastaff, T) + L.alpha = 0 + animate(L, alpha = 255, time = create_delay) + user.visible_message("[user] points [src] at [T]!") + timer = world.time + create_delay + 1 + if(do_after(user, create_delay, target = T)) + user.visible_message("[user] turns \the [T] into [transform_string]!") + message_admins("[key_name_admin(user)] fired the lava staff at [get_area(target)]. [ADMIN_COORDJMP(T)]") + log_game("[key_name(user)] fired the lava staff at [get_area(target)] [COORD(T)].") + T.ChangeTurf(turf_type) + timer = world.time + create_cooldown + qdel(L) + else + timer = world.time + qdel(L) + return + else + user.visible_message("[user] turns \the [T] into [reset_string]!") + T.ChangeTurf(reset_turf_type) + timer = world.time + reset_cooldown + playsound(T,'sound/magic/Fireball.ogg', 200, 1) + +/obj/effect/overlay/temp/lavastaff + icon_state = "lavastaff_warn" + duration = 50 ///Bubblegum @@ -674,11 +710,11 @@ var/loot = rand(1,3) switch(loot) if(1) - new /obj/item/weapon/antag_spawner/slaughter_demon(src) - if(2) new /obj/item/mayhem(src) - if(3) + if(2) new /obj/item/blood_contract(src) + if(3) + new /obj/item/weapon/gun/magic/staff/spellblade(src) /obj/item/blood_contract name = "blood contract" @@ -692,7 +728,7 @@ if(used) return used = TRUE - var/choice = input(user,"Who do you want dead?","Pick Reinforcement") as null|anything in player_list + var/choice = input(user,"Who do you want dead?","Choose Your Victim") as null|anything in player_list if(!(isliving(choice))) user << "[choice] is already dead!" @@ -708,7 +744,7 @@ survive.owner = L.mind L.mind.objectives += survive L << "You've been marked for death! Don't let the demons get you!" - L.color = "#FF0000" + L.add_atom_colour("#FF0000", ADMIN_COLOUR_PRIORITY) spawn() var/obj/effect/mine/pickup/bloodbath/B = new(L) B.mineEffect(L) @@ -716,7 +752,193 @@ for(var/mob/living/carbon/human/H in player_list) if(H == L) continue - H << "You have an overwhelming desire to kill [L]. They have been marked red! Go kill them!" - H.equip_to_slot_or_del(new /obj/item/weapon/kitchen/knife/butcher(H), slot_l_hand) + H << "You have an overwhelming desire to kill [L]. [L.p_they(TRUE)] [L.p_have()] been marked red! Go kill [L.p_them()]!" + H.put_in_hands_or_del(new /obj/item/weapon/kitchen/knife/butcher(H)) qdel(src) + +//Hierophant + +/obj/item/weapon/hierophant_staff + name = "Hierophant's staff" + desc = "A large club with intense magic power infused into it." + icon_state = "hierophant_staff" + item_state = "hierophant_staff" + icon = 'icons/obj/guns/magic.dmi' + slot_flags = SLOT_BACK + w_class = WEIGHT_CLASS_BULKY + force = 20 + hitsound = "swing_hit" + //hitsound = 'sound/weapons/sonic_jackhammer.ogg' + actions_types = list(/datum/action/item_action/vortex_recall, /datum/action/item_action/toggle_unfriendly_fire) + var/cooldown_time = 20 //how long the cooldown between non-melee ranged attacks is + var/chaser_cooldown = 101 //how long the cooldown between firing chasers at mobs is + var/chaser_timer = 0 //what our current chaser cooldown is + var/timer = 0 //what our current cooldown is + var/blast_range = 3 //how long the cardinal blast's walls are + var/obj/effect/hierophant/rune //the associated rune we teleport to + var/teleporting = FALSE //if we ARE teleporting + var/friendly_fire_check = FALSE //if the blasts we make will consider our faction against the faction of hit targets + +/obj/item/weapon/hierophant_staff/afterattack(atom/target, mob/user, proximity_flag, click_parameters) + ..() + var/turf/T = get_turf(target) + if(!T || timer > world.time) + return + timer = world.time + CLICK_CD_MELEE //by default, melee attacks only cause melee blasts, and have an accordingly short cooldown + if(proximity_flag) + addtimer(src, "aoe_burst", 0, TIMER_NORMAL, T, user) + add_logs(user, target, "fired 3x3 blast at", src) + else + if(ismineralturf(target) && get_dist(user, target) < 6) //target is minerals, we can hit it(even if we can't see it) + addtimer(src, "cardinal_blasts", 0, TIMER_NORMAL, T, user) + timer = world.time + cooldown_time + else if(target in view(5, get_turf(user))) //if the target is in view, hit it + timer = world.time + cooldown_time + if(isliving(target) && chaser_timer <= world.time) //living and chasers off cooldown? fire one! + chaser_timer = world.time + chaser_cooldown + PoolOrNew(/obj/effect/overlay/temp/hierophant/chaser, list(get_turf(user), user, target, 1.5, friendly_fire_check)) + add_logs(user, target, "fired a chaser at", src) + else + addtimer(src, "cardinal_blasts", 0, TIMER_NORMAL, T, user) //otherwise, just do cardinal blast + add_logs(user, target, "fired cardinal blast at", src) + else + user << "That target is out of range!" //too far away + +/obj/item/weapon/hierophant_staff/ui_action_click(mob/user, action) + if(istype(action, /datum/action/item_action/toggle_unfriendly_fire)) //toggle friendly fire... + friendly_fire_check = !friendly_fire_check + user << "You toggle friendly fire [friendly_fire_check ? "off":"on"]!" + return + if(!user.is_holding(src)) //you need to hold the staff to teleport + user << "You need to hold the staff in your hands to [rune ? "teleport with it":"create a rune"]!" + return + if(!rune) + if(isturf(user.loc)) + user.visible_message("[user] holds [src] carefully in front of [user.p_them()], moving it in a strange pattern...", \ + "You start creating a hierophant rune to teleport to...") + timer = world.time + 51 + if(do_after(user, 50, target = user)) + var/turf/T = get_turf(user) + playsound(T,'sound/magic/Blind.ogg', 200, 1, -4) + PoolOrNew(/obj/effect/overlay/temp/hierophant/telegraph/teleport, list(T, user)) + var/obj/effect/hierophant/H = new/obj/effect/hierophant(T) + rune = H + user.update_action_buttons_icon() + user.visible_message("[user] creates a strange rune beneath [user.p_them()]!", \ + "You create a hierophant rune, which you can teleport yourself and any allies to at any time!\n\ + You can remove the rune to place a new one by striking it with the staff.") + else + timer = world.time + else + user << "You need to be on solid ground to produce a rune!" + return + if(get_dist(user, rune) <= 2) //rune too close abort + user << "You are too close to the rune to teleport to it!" + return + if(is_blocked_turf(get_turf(rune))) + user << "The rune is blocked by something, preventing teleportation!" + return + teleporting = TRUE //start channel + user.update_action_buttons_icon() + user.visible_message("[user] starts to glow faintly...") + timer = world.time + 50 + if(do_after(user, 40, target = user) && rune) + var/turf/T = get_turf(rune) + var/turf/source = get_turf(user) + if(is_blocked_turf(T)) + teleporting = FALSE + user << "The rune is blocked by something, preventing teleportation!" + user.update_action_buttons_icon() + return + PoolOrNew(/obj/effect/overlay/temp/hierophant/telegraph, list(T, user)) + PoolOrNew(/obj/effect/overlay/temp/hierophant/telegraph, list(source, user)) + playsound(T,'sound/magic/blink.ogg', 200, 1) + //playsound(T,'sound/magic/Wand_Teleport.ogg', 200, 1) + playsound(source,'sound/magic/blink.ogg', 200, 1) + //playsound(source,'sound/machines/AirlockOpen.ogg', 200, 1) + if(!do_after(user, 3, target = user) || !rune) //no walking away shitlord + teleporting = FALSE + if(user) + user.update_action_buttons_icon() + return + if(is_blocked_turf(T)) + teleporting = FALSE + user << "The rune is blocked by something, preventing teleportation!" + user.update_action_buttons_icon() + return + add_logs(user, rune, "teleported self from ([source.x],[source.y],[source.z]) to") + PoolOrNew(/obj/effect/overlay/temp/hierophant/telegraph/teleport, list(T, user)) + PoolOrNew(/obj/effect/overlay/temp/hierophant/telegraph/teleport, list(source, user)) + for(var/t in RANGE_TURFS(1, T)) + var/obj/effect/overlay/temp/hierophant/blast/B = PoolOrNew(/obj/effect/overlay/temp/hierophant/blast, list(t, user, TRUE)) //blasts produced will not hurt allies + B.damage = 30 + for(var/t in RANGE_TURFS(1, source)) + var/obj/effect/overlay/temp/hierophant/blast/B = PoolOrNew(/obj/effect/overlay/temp/hierophant/blast, list(t, user, TRUE)) //but absolutely will hurt enemies + B.damage = 30 + for(var/mob/living/L in range(1, source)) + addtimer(src, "teleport_mob", 0, TIMER_NORMAL, source, L, T, user) //regardless, take all mobs near us along + sleep(6) //at this point the blasts detonate + else + timer = world.time + teleporting = FALSE + if(user) + user.update_action_buttons_icon() + +/obj/item/weapon/hierophant_staff/proc/teleport_mob(turf/source, mob/M, turf/target, mob/user) + var/turf/turf_to_teleport_to = get_step(target, get_dir(source, M)) //get position relative to caster + if(!turf_to_teleport_to || is_blocked_turf(turf_to_teleport_to)) + return + animate(M, alpha = 0, time = 2, easing = EASE_OUT) //fade out + sleep(1) + if(!M) + return + M.visible_message("[M] fades out!") + sleep(2) + if(!M) + return + M.forceMove(turf_to_teleport_to) + sleep(1) + if(!M) + return + animate(M, alpha = 255, time = 2, easing = EASE_IN) //fade IN + sleep(1) + if(!M) + return + M.visible_message("[M] fades in!") + if(user != M) + add_logs(user, M, "teleported", null, "from ([source.x],[source.y],[source.z])") + +/obj/item/weapon/hierophant_staff/proc/cardinal_blasts(turf/T, mob/living/user) //fire cardinal cross blasts with a delay + if(!T) + return + PoolOrNew(/obj/effect/overlay/temp/hierophant/telegraph/cardinal, list(T, user)) + playsound(T,'sound/magic/blink.ogg', 200, 1) + //playsound(T,'sound/effects/bin_close.ogg', 200, 1) + sleep(2) + PoolOrNew(/obj/effect/overlay/temp/hierophant/blast, list(T, user, friendly_fire_check)) + for(var/d in cardinal) + addtimer(src, "blast_wall", 0, TIMER_NORMAL, T, d, user) + +/obj/item/weapon/hierophant_staff/proc/blast_wall(turf/T, dir, mob/living/user) //make a wall of blasts blast_range tiles long + if(!T) + return + var/range = blast_range + var/turf/previousturf = T + var/turf/J = get_step(previousturf, dir) + for(var/i in 1 to range) + if(!J) + return + PoolOrNew(/obj/effect/overlay/temp/hierophant/blast, list(J, user, friendly_fire_check)) + previousturf = J + J = get_step(previousturf, dir) + +/obj/item/weapon/hierophant_staff/proc/aoe_burst(turf/T, mob/living/user) //make a 3x3 blast around a target + if(!T) + return + PoolOrNew(/obj/effect/overlay/temp/hierophant/telegraph, list(T, user)) + playsound(T,'sound/magic/blink.ogg', 200, 1) + //playsound(T,'sound/effects/bin_close.ogg', 200, 1) + sleep(2) + for(var/t in RANGE_TURFS(1, T)) + PoolOrNew(/obj/effect/overlay/temp/hierophant/blast, list(t, user, friendly_fire_check)) diff --git a/code/modules/mining/lavaland/ruins/gym.dm b/code/modules/mining/lavaland/ruins/gym.dm index b222b29baa..3c8832ffee 100644 --- a/code/modules/mining/lavaland/ruins/gym.dm +++ b/code/modules/mining/lavaland/ruins/gym.dm @@ -22,7 +22,7 @@ /obj/structure/stacklifter/attack_hand(mob/user as mob) if(in_use) - user << "Its already in use - wait a bit." + user << "It's already in use - wait a bit." return else in_use = 1 @@ -60,7 +60,7 @@ /obj/structure/weightlifter/attack_hand(mob/user as mob) if(in_use) - user << "Its already in use - wait a bit." + user << "It's already in use - wait a bit." return else in_use = 1 diff --git a/code/modules/mining/machine_processing.dm b/code/modules/mining/machine_processing.dm index 8370e3b864..8b4903259e 100644 --- a/code/modules/mining/machine_processing.dm +++ b/code/modules/mining/machine_processing.dm @@ -26,83 +26,93 @@ if(machine.ore_iron || machine.ore_glass || machine.ore_plasma || machine.ore_uranium || machine.ore_gold || machine.ore_silver || machine.ore_diamond || machine.ore_clown || machine.ore_adamantine) if(machine.ore_iron) if (machine.selected_iron==1) - dat += text("Smelting ") + dat += "Smelting " else - dat += text("Not smelting ") - dat += text("Iron: [machine.ore_iron]
    ") + dat += "Not smelting " + dat += "Iron: [machine.ore_iron]
    " else machine.selected_iron = 0 //sand - glass if(machine.ore_glass) if (machine.selected_glass==1) - dat += text("Smelting ") + dat += "Smelting " else - dat += text("Not smelting ") - dat += text("Sand: [machine.ore_glass]
    ") + dat += "Not smelting " + dat += "Sand: [machine.ore_glass]
    " else machine.selected_glass = 0 //plasma if(machine.ore_plasma) if (machine.selected_plasma==1) - dat += text("Smelting ") + dat += "Smelting " else - dat += text("Not smelting ") - dat += text("Plasma: [machine.ore_plasma]
    ") + dat += "Not smelting " + dat += "Plasma: [machine.ore_plasma]
    " else machine.selected_plasma = 0 //uranium if(machine.ore_uranium) if (machine.selected_uranium==1) - dat += text("Smelting ") + dat += "Smelting " else - dat += text("Not smelting ") - dat += text("Uranium: [machine.ore_uranium]
    ") + dat += "Not smelting " + dat += "Uranium: [machine.ore_uranium]
    " else machine.selected_uranium = 0 //gold if(machine.ore_gold) if (machine.selected_gold==1) - dat += text("Smelting ") + dat += "Smelting " else - dat += text("Not smelting ") - dat += text("Gold: [machine.ore_gold]
    ") + dat += "Not smelting " + dat += "Gold: [machine.ore_gold]
    " else machine.selected_gold = 0 //silver if(machine.ore_silver) if (machine.selected_silver==1) - dat += text("Smelting ") + dat += "Smelting " else - dat += text("Not smelting ") - dat += text("Silver: [machine.ore_silver]
    ") + dat += "Not smelting " + dat += "Silver: [machine.ore_silver]
    " else machine.selected_silver = 0 //diamond if(machine.ore_diamond) if (machine.selected_diamond==1) - dat += text("Smelting ") + dat += "Smelting " else - dat += text("Not smelting ") - dat += text("Diamond: [machine.ore_diamond]
    ") + dat += "Not smelting " + dat += "Diamond: [machine.ore_diamond]
    " else machine.selected_diamond = 0 //bananium if(machine.ore_clown) if (machine.selected_clown==1) - dat += text("Smelting ") + dat += "Smelting " else - dat += text("Not smelting ") - dat += text("Bananium: [machine.ore_clown]
    ") + dat += "Not smelting " + dat += "Bananium: [machine.ore_clown]
    " else machine.selected_clown = 0 + //titanium + if(machine.ore_titanium) + if (machine.selected_titanium==1) + dat += "Smelting " + else + dat += "Not smelting " + dat += "Titanium: [machine.ore_titanium]
    " + else + machine.selected_titanium = 0 + //On or off dat += text("Machine is currently ") @@ -114,7 +124,7 @@ dat+="---No Materials Loaded---" - user << browse("[dat]", "window=console_processing_unit") + user << browse(dat, "window=console_processing_unit") @@ -163,6 +173,11 @@ machine.selected_clown = 1 else machine.selected_clown = 0 + if(href_list["sel_titanium"]) + if (href_list["sel_titanium"] == "yes") + machine.selected_titanium = 1 + else + machine.selected_titanium = 0 if(href_list["set_on"]) if (href_list["set_on"] == "on") machine.on = 1 @@ -190,6 +205,7 @@ var/ore_iron = 0; var/ore_clown = 0; var/ore_adamantine = 0; + var/ore_titanium = 0; var/selected_gold = 0 var/selected_silver = 0 var/selected_diamond = 0 @@ -198,86 +214,102 @@ var/selected_uranium = 0 var/selected_iron = 0 var/selected_clown = 0 + var/selected_titanium = 0 var/on = 0 //0 = off, 1 =... oh you know! /obj/machinery/mineral/processing_unit/process() - var/i - for (i = 0; i < 10; i++) + for(var/i in 1 to 10) if (on) - if (selected_glass == 1 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0) + if (selected_glass && !selected_gold && !selected_silver && !selected_diamond && !selected_plasma && !selected_uranium && !selected_iron && !selected_clown && !selected_titanium) if (ore_glass > 0) - ore_glass--; + ore_glass-- generate_mineral(/obj/item/stack/sheet/glass) else on = 0 continue - if (selected_glass == 1 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 1 && selected_clown == 0) + if (selected_glass && !selected_gold && !selected_silver && !selected_diamond && !selected_plasma && !selected_uranium && selected_iron && !selected_clown && !selected_titanium) if (ore_glass > 0 && ore_iron > 0) - ore_glass--; - ore_iron--; + ore_glass-- + ore_iron-- generate_mineral(/obj/item/stack/sheet/rglass) else on = 0 continue - if (selected_glass == 0 && selected_gold == 1 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0) + if (!selected_glass && selected_gold && !selected_silver && !selected_diamond && !selected_plasma && !selected_uranium && !selected_iron && !selected_clown && !selected_titanium) if (ore_gold > 0) - ore_gold--; + ore_gold-- generate_mineral(/obj/item/stack/sheet/mineral/gold) else on = 0 continue - if (selected_glass == 0 && selected_gold == 0 && selected_silver == 1 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0) + if (!selected_glass && !selected_gold && selected_silver && !selected_diamond && !selected_plasma && !selected_uranium && !selected_iron && !selected_clown && !selected_titanium) if (ore_silver > 0) - ore_silver--; + ore_silver-- generate_mineral(/obj/item/stack/sheet/mineral/silver) else on = 0 continue - if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 1 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0) + if (!selected_glass && !selected_gold && !selected_silver && selected_diamond && !selected_plasma && !selected_uranium && !selected_iron && !selected_clown && !selected_titanium) if (ore_diamond > 0) - ore_diamond--; + ore_diamond-- generate_mineral(/obj/item/stack/sheet/mineral/diamond) else on = 0 continue - if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 1 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0) + if (!selected_glass && !selected_gold && !selected_silver && !selected_diamond && selected_plasma && !selected_uranium && !selected_iron && !selected_clown && !selected_titanium) if (ore_plasma > 0) - ore_plasma--; + ore_plasma-- generate_mineral(/obj/item/stack/sheet/mineral/plasma) else on = 0 continue - if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 1 && selected_iron == 0 && selected_clown == 0) + if (!selected_glass && !selected_gold && !selected_silver && !selected_diamond && !selected_plasma && selected_uranium && !selected_iron && !selected_clown && !selected_titanium) if (ore_uranium > 0) - ore_uranium--; + ore_uranium-- generate_mineral(/obj/item/stack/sheet/mineral/uranium) else on = 0 continue - if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 1 && selected_clown == 0) + if (!selected_glass && !selected_gold && !selected_silver && !selected_diamond && !selected_plasma && !selected_uranium && selected_iron && !selected_clown && !selected_titanium) if (ore_iron > 0) - ore_iron--; + ore_iron-- generate_mineral(/obj/item/stack/sheet/metal) else on = 0 continue - if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 1 && selected_uranium == 0 && selected_iron == 1 && selected_clown == 0) + if (!selected_glass && !selected_gold && !selected_silver && !selected_diamond && selected_plasma && !selected_uranium && selected_iron && !selected_clown && !selected_titanium) if (ore_iron > 0 && ore_plasma > 0) - ore_iron--; - ore_plasma--; + ore_iron-- + ore_plasma-- generate_mineral(/obj/item/stack/sheet/plasteel) else on = 0 continue - if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 1) + if (!selected_glass && !selected_gold && !selected_silver && !selected_diamond && !selected_plasma && !selected_uranium && !selected_iron && selected_clown && !selected_titanium) if (ore_clown > 0) - ore_clown--; + ore_clown-- generate_mineral(/obj/item/stack/sheet/mineral/bananium) else on = 0 continue + if (!selected_glass && !selected_gold && !selected_silver && !selected_diamond && !selected_plasma && !selected_uranium && !selected_iron && !selected_clown && selected_titanium) + if (ore_titanium > 0) + ore_titanium-- + generate_mineral(/obj/item/stack/sheet/mineral/titanium) + else + on = 0 + continue + if (!selected_glass && !selected_gold && !selected_silver && !selected_diamond && selected_plasma && !selected_uranium && !selected_iron && !selected_clown && selected_titanium) + if (ore_titanium > 0) + ore_titanium-- + ore_plasma-- + generate_mineral(/obj/item/stack/sheet/mineral/plastitanium) + else + on = 0 + continue //THESE TWO ARE CODED FOR URIST TO USE WHEN HE GETS AROUND TO IT. //They were coded on 18 Feb 2012. If you're reading this in 2015, then firstly congratulations on the world not ending on 21 Dec 2012 and secondly, Urist is apparently VERY lazy. ~Errorage + //Even in the dark year of 2016, where /tg/ is dead, Urist still hasn't finished this -Bawhoppennn /*if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 1 && selected_plasma == 0 && selected_uranium == 1 && selected_iron == 0 && selected_clown == 0) if (ore_uranium >= 2 && ore_diamond >= 1) ore_uranium -= 2 @@ -395,4 +427,4 @@ /obj/machinery/mineral/processing_unit/proc/generate_mineral(P) var/O = new P(src) - unload_mineral(O) \ No newline at end of file + unload_mineral(O) diff --git a/code/modules/mining/machine_redemption.dm b/code/modules/mining/machine_redemption.dm index fbd689df89..c8606b07e1 100644 --- a/code/modules/mining/machine_redemption.dm +++ b/code/modules/mining/machine_redemption.dm @@ -19,7 +19,7 @@ var/ore_pickup_rate = 15 var/sheet_per_ore = 1 var/point_upgrade = 1 - var/list/ore_values = list(("sand" = 1), ("iron" = 1), ("plasma" = 15), ("silver" = 16), ("gold" = 18), ("uranium" = 30), ("diamond" = 50), ("bananium" = 60)) + var/list/ore_values = list(("sand" = 1), ("iron" = 1), ("plasma" = 15), ("silver" = 16), ("gold" = 18), ("titanium" = 30), ("uranium" = 30), ("diamond" = 50), ("bluespace crystal" = 50), ("bananium" = 60)) speed_process = 1 /obj/machinery/mineral/ore_redemption/New() @@ -30,7 +30,7 @@ /obj/item/weapon/circuitboard/machine/ore_redemption name = "circuit board (Ore Redemption)" build_path = /obj/machinery/mineral/ore_redemption - origin_tech = "programming=2;engineering=2;plasmatech=3" + origin_tech = "programming=1;engineering=2" req_components = list( /obj/item/weapon/stock_parts/console_screen = 1, /obj/item/weapon/stock_parts/matter_bin = 1, @@ -59,11 +59,6 @@ var/obj/item/stack/sheet/s = new processed_sheet(src,0) s.amount = 0 stack_list[processed_sheet] = s - if(s.name != "glass" && s.name != "metal") //we can get these from cargo anyway - var/msg = "[capitalize(s.name)] sheets are now available in the Cargo Bay." - for(var/obj/machinery/requests_console/D in allConsoles) - if(D.department == "Science" || D.department == "Robotics" || D.department == "Research Director's Desk" || (D.department == "Chemistry" && (s.name == "uranium" || s.name == "solid plasma"))) - D.createmessage("Ore Redemption Machine", "New minerals available!", msg, 1, 0) var/obj/item/stack/sheet/storage = stack_list[processed_sheet] storage.amount += sheet_per_ore //Stack the sheets O.loc = null //Let the old sheet... @@ -93,8 +88,28 @@ else process_sheet(O) i++ + if(i > 0 && z == ZLEVEL_STATION) + var/area/orm_area = get_area(src) + var/msg = "Now available in [orm_area.map_name]:" + for(var/s in stack_list) // Making an announcement for cargo + var/obj/item/stack/sheet/mats = stack_list[s] + msg += "\n[capitalize(mats.name)]: [mats.amount] sheets" + for(var/obj/machinery/requests_console/D in allConsoles) + if(D.department == "Science" || D.department == "Robotics" || D.department == "Research Director's Desk" || D.department == "Chemistry" || D.department == "Bar") + D.createmessage("Ore Redemption Machine", "New minerals available!", msg, 1, 0) /obj/machinery/mineral/ore_redemption/attackby(obj/item/weapon/W, mob/user, params) + if (!powered()) + return + if(istype(W,/obj/item/weapon/card/id)) + var/obj/item/weapon/card/id/I = user.get_active_held_item() + if(istype(I) && !istype(inserted_id)) + if(!user.drop_item()) + return + I.forceMove(src) + inserted_id = I + interact(user) + return if(exchange_parts(user, W)) return @@ -109,20 +124,9 @@ if(default_deconstruction_crowbar(W)) return - if (!powered()) - return - if(istype(W,/obj/item/weapon/card/id)) - var/obj/item/weapon/card/id/I = user.get_active_hand() - if(istype(I) && !istype(inserted_id)) - if(!user.drop_item()) - return - I.loc = src - inserted_id = I - interact(user) - return return ..() -/obj/machinery/mineral/ore_redemption/deconstruction() +/obj/machinery/mineral/ore_redemption/on_deconstruction() empty_content() /obj/machinery/mineral/ore_redemption/proc/SmeltMineral(obj/item/weapon/ore/O) @@ -158,12 +162,22 @@ dat += "
    " //just looks nicer dat += text("[capitalize(s.name)]: [s.amount] Release
    ") - if((/obj/item/stack/sheet/metal in stack_list) && (/obj/item/stack/sheet/mineral/plasma in stack_list)) - var/obj/item/stack/sheet/metalstack = stack_list[/obj/item/stack/sheet/metal] - var/obj/item/stack/sheet/plasmastack = stack_list[/obj/item/stack/sheet/mineral/plasma] - if(min(metalstack.amount, plasmastack.amount)) - dat += text("Plasteel Alloy (Metal + Plasma): Smelt
    ") + var/obj/item/stack/sheet/metalstack + if(/obj/item/stack/sheet/metal in stack_list) + metalstack = stack_list[/obj/item/stack/sheet/metal] + var/obj/item/stack/sheet/plasmastack + if((/obj/item/stack/sheet/mineral/plasma in stack_list)) + plasmastack = stack_list[/obj/item/stack/sheet/mineral/plasma] + + var/obj/item/stack/sheet/mineral/titaniumstack + if((/obj/item/stack/sheet/mineral/titanium in stack_list)) + titaniumstack = stack_list[/obj/item/stack/sheet/mineral/titanium] + + if(metalstack && plasmastack && min(metalstack.amount, plasmastack.amount)) + dat += text("Plasteel Alloy (Metal + Plasma): Smelt
    ") + if(titaniumstack && plasmastack && min(titaniumstack.amount, plasmastack.amount)) + dat += text("Plastitanium Alloy (Titanium + Plasma): Smelt
    ") dat += text("
    Mineral Value List:
    [get_ore_values()]
    ") var/datum/browser/popup = new(user, "console_stacking_machine", "Ore Redemption Machine", 400, 500) @@ -195,7 +209,7 @@ else usr << "Required access not found." else if(href_list["choice"] == "insert") - var/obj/item/weapon/card/id/I = usr.get_active_hand() + var/obj/item/weapon/card/id/I = usr.get_active_held_item() if(istype(I)) if(!usr.drop_item()) return @@ -216,20 +230,22 @@ stack_list -= text2path(href_list["release"]) else usr << "Required access not found." - if(href_list["plasteel"]) + if(href_list["alloytype1"] && href_list["alloytype2"] && href_list["alloytypeout"]) + var/alloytype1 = text2path(href_list["alloytype1"]) + var/alloytype2 = text2path(href_list["alloytype2"]) + var/alloytypeout = text2path(href_list["alloytypeout"]) if(check_access(inserted_id) || allowed(usr)) - if(!(/obj/item/stack/sheet/metal in stack_list)) return - if(!(/obj/item/stack/sheet/mineral/plasma in stack_list)) return - var/obj/item/stack/sheet/metalstack = stack_list[/obj/item/stack/sheet/metal] - var/obj/item/stack/sheet/plasmastack = stack_list[/obj/item/stack/sheet/mineral/plasma] - + if(!(alloytype1 in stack_list)) return + if(!(alloytype2 in stack_list)) return + var/obj/item/stack/sheet/stack1 = stack_list[alloytype1] + var/obj/item/stack/sheet/stack2 = stack_list[alloytype2] var/desired = input("How much?", "How much would you like to smelt?", 1) as num - var/obj/item/stack/sheet/plasteel/plasteelout = new - plasteelout.amount = round(min(desired,50,metalstack.amount,plasmastack.amount)) - if(plasteelout.amount >= 1) - metalstack.amount -= plasteelout.amount - plasmastack.amount -= plasteelout.amount - unload_mineral(plasteelout) + var/obj/item/stack/sheet/alloyout = new alloytypeout + alloyout.amount = round(min(desired,50,stack1.amount,stack2.amount)) + if(alloyout.amount >= 1) + stack1.amount -= alloyout.amount + stack2.amount -= alloyout.amount + unload_mineral(alloyout) else usr << "Required access not found." updateUsrDialog() @@ -239,14 +255,7 @@ var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread s.set_up(5, 1, src) s.start() - if(severity == 1) - if(prob(50)) - empty_content() - qdel(src) - else if(severity == 2) - if(prob(25)) - empty_content() - qdel(src) + ..() //empty the redemption machine by stacks of at most max_amount (50 at this time) size /obj/machinery/mineral/ore_redemption/proc/empty_content() @@ -259,6 +268,7 @@ s.use(s.max_amount) s.loc = loc s.layer = initial(s.layer) + s.plane = initial(s.plane) /obj/machinery/mineral/ore_redemption/power_change() ..() diff --git a/code/modules/mining/machine_stacking.dm b/code/modules/mining/machine_stacking.dm index fc7e1e1357..c148f83d17 100644 --- a/code/modules/mining/machine_stacking.dm +++ b/code/modules/mining/machine_stacking.dm @@ -33,7 +33,7 @@ dat += text("
    Stacking: [machine.stack_amt]

    ") - user << browse("[dat]", "window=console_stacking_machine") + user << browse(dat, "window=console_stacking_machine") return diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm index 59a6229c4e..b868feeb44 100644 --- a/code/modules/mining/machine_vending.dm +++ b/code/modules/mining/machine_vending.dm @@ -8,49 +8,54 @@ density = 1 anchored = 1 var/obj/item/weapon/card/id/inserted_id - var/list/prize_list = list( - new /datum/data/mining_equipment("Stimpack", /obj/item/weapon/reagent_containers/hypospray/medipen/stimpack, 50), - new /datum/data/mining_equipment("Stimpack Bundle", /obj/item/weapon/storage/box/medipens/utility, 200), - new /datum/data/mining_equipment("Whiskey", /obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey, 100), - new /datum/data/mining_equipment("Absinthe", /obj/item/weapon/reagent_containers/food/drinks/bottle/absinthe/premium,100), - new /datum/data/mining_equipment("Cigar", /obj/item/clothing/mask/cigarette/cigar/havana, 150), - new /datum/data/mining_equipment("Soap", /obj/item/weapon/soap/nanotrasen, 200), - new /datum/data/mining_equipment("Survival knife", /obj/item/weapon/kitchen/knife/combat/survival, 300), - new /datum/data/mining_equipment("Laser Pointer", /obj/item/device/laser_pointer, 300), - new /datum/data/mining_equipment("Alien Toy", /obj/item/clothing/mask/facehugger/toy, 300), - new /datum/data/mining_equipment("Advanced Scanner", /obj/item/device/t_scanner/adv_mining_scanner, 800), - new /datum/data/mining_equipment("Stabilizing Serum", /obj/item/weapon/hivelordstabilizer , 400), - new /datum/data/mining_equipment("Fulton Beacon", /obj/item/fulton_core , 400), - new /datum/data/mining_equipment("Shelter Capsule", /obj/item/weapon/survivalcapsule , 400), - new /datum/data/mining_equipment("Motion Tracker", /obj/item/device/t_scanner/motionTracker , 400), - new /datum/data/mining_equipment("GAR scanners", /obj/item/clothing/glasses/meson/gar, 500), + var/list/prize_list = list( //if you add something to this, please, for the love of god, use tabs and not spaces. + new /datum/data/mining_equipment("Stimpack", /obj/item/weapon/reagent_containers/hypospray/medipen/stimpack, 50), + new /datum/data/mining_equipment("Stimpack Bundle", /obj/item/weapon/storage/box/medipens/utility, 200), + new /datum/data/mining_equipment("Whiskey", /obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey, 100), + new /datum/data/mining_equipment("Absinthe", /obj/item/weapon/reagent_containers/food/drinks/bottle/absinthe/premium,100), + new /datum/data/mining_equipment("Cigar", /obj/item/clothing/mask/cigarette/cigar/havana, 150), + new /datum/data/mining_equipment("Soap", /obj/item/weapon/soap/nanotrasen, 200), + new /datum/data/mining_equipment("Laser Pointer", /obj/item/device/laser_pointer, 300), + new /datum/data/mining_equipment("Alien Toy", /obj/item/clothing/mask/facehugger/toy, 300), + new /datum/data/mining_equipment("Advanced Scanner", /obj/item/device/t_scanner/adv_mining_scanner, 800), + new /datum/data/mining_equipment("Stabilizing Serum", /obj/item/weapon/hivelordstabilizer, 400), + new /datum/data/mining_equipment("Fulton Beacon", /obj/item/fulton_core, 400), + new /datum/data/mining_equipment("Shelter Capsule", /obj/item/weapon/survivalcapsule, 400), + new /datum/data/mining_equipment("GAR scanners", /obj/item/clothing/glasses/meson/gar, 500), new /datum/data/mining_equipment("Explorer's Webbing", /obj/item/weapon/storage/belt/mining, 500), - new /datum/data/mining_equipment("Survival Medipen", /obj/item/weapon/reagent_containers/hypospray/medipen/survival, 600), - new /datum/data/mining_equipment("Brute First-Aid Kit", /obj/item/weapon/storage/firstaid/brute, 600), - new /datum/data/mining_equipment("Tracking Implant Kit",/obj/item/weapon/storage/box/minertracker, 600), - new /datum/data/mining_equipment("Jaunter", /obj/item/device/wormhole_jaunter, 750), - new /datum/data/mining_equipment("Kinetic Crusher", /obj/item/weapon/twohanded/required/mining_hammer, 750), - new /datum/data/mining_equipment("Kinetic Accelerator", /obj/item/weapon/gun/energy/kinetic_accelerator, 750), - new /datum/data/mining_equipment("Resonator", /obj/item/weapon/resonator, 800), - new /datum/data/mining_equipment("whetstone", /obj/item/weapon/sharpener, 1000), - new /datum/data/mining_equipment("Survival Medipen Bundle", /obj/item/weapon/storage/box/medipens/utility1, 2000), - new /datum/data/mining_equipment("Fulton Pack", /obj/item/weapon/extraction_pack, 1000), - new /datum/data/mining_equipment("Lazarus Injector", /obj/item/weapon/lazarus_injector, 1000), - new /datum/data/mining_equipment("Silver Pickaxe", /obj/item/weapon/pickaxe/silver, 1000), - new /datum/data/mining_equipment("Jetpack Upgrade", /obj/item/hardsuit_jetpack, 2000), - new /datum/data/mining_equipment("Space Cash", /obj/item/stack/spacecash/c1000, 2000), - new /datum/data/mining_equipment("Mining Hardsuit", /obj/item/clothing/suit/space/hardsuit/mining, 2000), - new /datum/data/mining_equipment("Diamond Pickaxe", /obj/item/weapon/pickaxe/diamond, 2000), - new /datum/data/mining_equipment("Super Resonator", /obj/item/weapon/resonator/upgraded, 2500), - new /datum/data/mining_equipment("Super Accelerator", /obj/item/weapon/gun/energy/kinetic_accelerator/super, 3000), - new /datum/data/mining_equipment("Point Transfer Card", /obj/item/weapon/card/mining_point_card, 500), - new /datum/data/mining_equipment("Mining Drone", /mob/living/simple_animal/hostile/mining_drone, 800), - new /datum/data/mining_equipment("Drone Melee Upgrade", /obj/item/device/mine_bot_ugprade, 400), - new /datum/data/mining_equipment("Drone Health Upgrade",/obj/item/device/mine_bot_ugprade/health, 400), - new /datum/data/mining_equipment("Drone Ranged Upgrade",/obj/item/device/mine_bot_ugprade/cooldown, 600), - new /datum/data/mining_equipment("Drone AI Upgrade", /obj/item/slimepotion/sentience/mining, 1000), + new /datum/data/mining_equipment("Survival Medipen", /obj/item/weapon/reagent_containers/hypospray/medipen/survival, 500), + new /datum/data/mining_equipment("Brute First-Aid Kit", /obj/item/weapon/storage/firstaid/brute, 600), + new /datum/data/mining_equipment("Tracking Implant Kit",/obj/item/weapon/storage/box/minertracker, 600), + new /datum/data/mining_equipment("Jaunter", /obj/item/device/wormhole_jaunter, 750), + new /datum/data/mining_equipment("Kinetic Crusher", /obj/item/weapon/twohanded/required/mining_hammer, 750), + new /datum/data/mining_equipment("Kinetic Accelerator", /obj/item/weapon/gun/energy/kinetic_accelerator, 750), + new /datum/data/mining_equipment("Resonator", /obj/item/weapon/resonator, 800), + new /datum/data/mining_equipment("Fulton Pack", /obj/item/weapon/extraction_pack, 1000), + new /datum/data/mining_equipment("Lazarus Injector", /obj/item/weapon/lazarus_injector, 1000), + new /datum/data/mining_equipment("Silver Pickaxe", /obj/item/weapon/pickaxe/silver, 1000), + new /datum/data/mining_equipment("Jetpack Upgrade", /obj/item/weapon/tank/jetpack/suit, 2000), + new /datum/data/mining_equipment("Space Cash", /obj/item/stack/spacecash/c1000, 2000), + new /datum/data/mining_equipment("Mining Hardsuit", /obj/item/clothing/suit/space/hardsuit/mining, 2000), + new /datum/data/mining_equipment("Diamond Pickaxe", /obj/item/weapon/pickaxe/diamond, 2000), + new /datum/data/mining_equipment("Super Resonator", /obj/item/weapon/resonator/upgraded, 2500), + new /datum/data/mining_equipment("KA White Tracer Rounds", /obj/item/borg/upgrade/modkit/tracer, 100), + new /datum/data/mining_equipment("KA Adjustable Tracer Rounds", /obj/item/borg/upgrade/modkit/tracer/adjustable, 150), + new /datum/data/mining_equipment("KA Super Chassis", /obj/item/borg/upgrade/modkit/chassis_mod, 250), + new /datum/data/mining_equipment("KA Hyper Chassis", /obj/item/borg/upgrade/modkit/chassis_mod/orange, 300), + new /datum/data/mining_equipment("KA Range Increase", /obj/item/borg/upgrade/modkit/range, 1000), + new /datum/data/mining_equipment("KA Damage Increase", /obj/item/borg/upgrade/modkit/damage, 1000), + new /datum/data/mining_equipment("KA Cooldown Decrease",/obj/item/borg/upgrade/modkit/cooldown, 1000), + new /datum/data/mining_equipment("KA AoE Damage", /obj/item/borg/upgrade/modkit/aoe/mobs, 2000), + new /datum/data/mining_equipment("Point Transfer Card", /obj/item/weapon/card/mining_point_card, 500), + new /datum/data/mining_equipment("Mining Drone", /mob/living/simple_animal/hostile/mining_drone, 800), + new /datum/data/mining_equipment("Drone Melee Upgrade", /obj/item/device/mine_bot_ugprade, 400), + new /datum/data/mining_equipment("Drone Health Upgrade",/obj/item/device/mine_bot_ugprade/health, 400), + new /datum/data/mining_equipment("Drone Ranged Upgrade",/obj/item/device/mine_bot_ugprade/cooldown, 600), + new /datum/data/mining_equipment("Drone AI Upgrade", /obj/item/slimepotion/sentience/mining, 1000), + new /datum/data/mining_equipment("Jump Boots", /obj/item/clothing/shoes/bhop, 2500), ) -/datum/data/mining_equipment/ + +/datum/data/mining_equipment var/equipment_name = "generic" var/equipment_path = null var/cost = 0 @@ -97,7 +102,7 @@ else dat += "No ID inserted. Insert ID.
    " dat += "" - dat += "
    Equipment point cost list:
    " + dat += "
    Equipment point cost list:
    " for(var/datum/data/mining_equipment/prize in prize_list) dat += "" dat += "
    [prize.equipment_name][prize.cost]Purchase
    " @@ -117,7 +122,7 @@ inserted_id.verb_pickup() inserted_id = null else if(href_list["choice"] == "insert") - var/obj/item/weapon/card/id/I = usr.get_active_hand() + var/obj/item/weapon/card/id/I = usr.get_active_held_item() if(istype(I)) if(!usr.drop_item()) return @@ -145,7 +150,7 @@ RedeemVoucher(I, user) return if(istype(I,/obj/item/weapon/card/id)) - var/obj/item/weapon/card/id/C = usr.get_active_hand() + var/obj/item/weapon/card/id/C = usr.get_active_held_item() if(istype(C) && !istype(inserted_id)) if(!usr.drop_item()) return @@ -161,34 +166,29 @@ return ..() /obj/machinery/mineral/equipment_vendor/proc/RedeemVoucher(obj/item/weapon/mining_voucher/voucher, mob/redeemer) - var/items = list("Crusher Kit", "Extract and Rescue Kit", "Hunter Kit", "Mining Drone", "Resonator and Advanced Scanner", "Survival Capsule and Explorer's Webbing")//Alphabetical, please. + var/items = list("Survival Capsule and Explorer's Webbing", "Resonator and Advanced Scanner", "Mining Drone", "Extraction and Rescue Kit", "Crusher Kit", "Mining Conscription Kit") var/selection = input(redeemer, "Pick your equipment", "Mining Voucher Redemption") as null|anything in items if(!selection || !Adjacent(redeemer) || qdeleted(voucher) || voucher.loc != redeemer) return - switch(selection)//Alphabetical, please. + switch(selection) + if("Survival Capsule and Explorer's Webbing") + new /obj/item/weapon/storage/belt/mining/vendor(src.loc) + if("Resonator and Advanced Scanner") + new /obj/item/weapon/resonator(src.loc) + new /obj/item/device/t_scanner/adv_mining_scanner(src.loc) + if("Mining Drone") + new /mob/living/simple_animal/hostile/mining_drone(src.loc) + new /obj/item/weapon/weldingtool/hugetank(src.loc) + if("Extraction and Rescue Kit") + new /obj/item/weapon/extraction_pack(loc) + new /obj/item/fulton_core(loc) if("Crusher Kit") new /obj/item/weapon/twohanded/required/mining_hammer(loc) new /obj/item/weapon/storage/belt/mining/alt(loc) new /obj/item/weapon/extinguisher/mini(loc) - if("Extract and Rescue Kit") - new /obj/item/stack/sheet/metal/five(loc) - new /obj/item/weapon/extraction_pack(loc) - new /obj/item/fulton_core(loc) - new /obj/item/weapon/reagent_containers/hypospray/medipen/survival(loc) - if("Hunter Kit") - new /obj/item/weapon/storage/belt/mining(loc) - new /obj/item/device/t_scanner/motionTracker(loc) - new /obj/item/weapon/stock_parts/cell/high/plus(loc) - new /obj/item/weapon/screwdriver(loc) - if("Mining Drone") - new /mob/living/simple_animal/hostile/mining_drone(loc) - new /obj/item/weapon/weldingtool/hugetank(loc) - if("Resonator and Advanced Scanner") - new /obj/item/weapon/resonator(src.loc) - new /obj/item/device/t_scanner/adv_mining_scanner(loc) - if("Survival Capsule and Explorer's Webbing") - new /obj/item/weapon/storage/belt/mining/vendor(loc) + if("Mining Conscription Kit") + new /obj/item/weapon/storage/backpack/dufflebag/mining_conscript(loc) feedback_add_details("mining_voucher_redeemed", selection) qdel(voucher) @@ -216,7 +216,7 @@ new /datum/data/mining_equipment("Sulphuric Acid", /obj/item/weapon/reagent_containers/glass/beaker/sulphuric, 500), new /datum/data/mining_equipment("Brute First-Aid Kit", /obj/item/weapon/storage/firstaid/brute, 600), new /datum/data/mining_equipment("Grey Slime Extract", /obj/item/slime_extract/grey, 1000), - new /datum/data/mining_equipment("Modification Kit", /obj/item/modkit, 1700), + new /datum/data/mining_equipment("Modification Kit", /obj/item/borg/upgrade/modkit/trigger_guard, 1700), new /datum/data/mining_equipment("The Liberator's Legacy", /obj/item/weapon/storage/box/rndboards, 2000), ) @@ -238,7 +238,7 @@ desc = "A token to redeem a piece of equipment. Use it on a mining equipment vendor." icon = 'icons/obj/mining.dmi' icon_state = "mining_voucher" - w_class = 1 + w_class = WEIGHT_CLASS_TINY /**********************Mining Point Card**********************/ @@ -262,3 +262,35 @@ /obj/item/weapon/card/mining_point_card/examine(mob/user) ..() user << "There's [points] point\s on the card." + +///Conscript kit +/obj/item/weapon/card/mining_access_card + name = "mining access card" + desc = "A small card, that when used on any ID, will add mining access." + icon_state = "data" + +/obj/item/weapon/card/mining_access_card/afterattack(atom/movable/AM, mob/user, proximity) + if(istype(AM, /obj/item/weapon/card/id) && proximity) + var/obj/item/weapon/card/id/I = AM + I.access |= access_mining + I.access |= access_mining_station + I.access |= access_mineral_storeroom + I.access |= access_cargo + user << "You upgrade [I] with mining access." + qdel(src) + ..() + +/obj/item/weapon/storage/backpack/dufflebag/mining_conscript + name = "mining conscription kit" + desc = "A kit containing everything a crewmember needs to support a shaft miner in the field." + +/obj/item/weapon/storage/backpack/dufflebag/mining_conscript/New() + ..() + new /obj/item/weapon/pickaxe/mini(src) + new /obj/item/clothing/glasses/meson(src) + new /obj/item/device/t_scanner/adv_mining_scanner/lesser(src) + new /obj/item/weapon/storage/bag/ore(src) + new /obj/item/clothing/suit/hooded/explorer(src) + new /obj/item/device/encryptionkey/headset_cargo(src) + new /obj/item/clothing/mask/gas/explorer(src) + new /obj/item/weapon/card/mining_access_card(src) \ No newline at end of file diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index 84ab917813..60f841088e 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -2,10 +2,15 @@ //this item is intended to give the effect of entering the mine, so that light gradually fades /obj/effect/light_emitter - name = "Light-emtter" + name = "Light emitter" anchored = 1 - unacidable = 1 - luminosity = 8 + invisibility = 101 + var/set_luminosity = 8 + var/set_cap = 0 + +/obj/effect/light_emitter/New() + ..() + SetLuminosity(set_luminosity, set_cap) /**********************Miner Lockers**************************/ @@ -18,7 +23,7 @@ contents = list() new /obj/item/weapon/storage/backpack/dufflebag(src) new /obj/item/weapon/storage/backpack/explorer(src) - new /obj/item/weapon/storage/backpack/satchel_explorer(src) + new /obj/item/weapon/storage/backpack/satchel/explorer(src) new /obj/item/clothing/under/rank/miner/lavaland(src) new /obj/item/clothing/under/rank/miner/lavaland(src) new /obj/item/clothing/under/rank/miner/lavaland(src) @@ -41,11 +46,14 @@ new /obj/item/weapon/shovel(src) new /obj/item/weapon/pickaxe/mini(src) new /obj/item/device/radio/headset/headset_cargo/mining(src) - new /obj/item/device/t_scanner/adv_mining_scanner/lesser(src) + new /obj/item/device/flashlight/seclite(src) + new /obj/item/weapon/storage/bag/plants(src) new /obj/item/weapon/storage/bag/ore(src) + new /obj/item/device/t_scanner/adv_mining_scanner/lesser(src) new /obj/item/weapon/gun/energy/kinetic_accelerator(src) new /obj/item/clothing/glasses/meson(src) new /obj/item/weapon/survivalcapsule(src) + new /obj/item/device/assault_pod/mining(src) /**********************Shuttle Computer**************************/ @@ -55,9 +63,16 @@ desc = "Used to call and send the mining shuttle." circuit = /obj/item/weapon/circuitboard/computer/mining_shuttle shuttleId = "mining" - possible_destinations = "mining_home;mining_away" + possible_destinations = "mining_home;mining_away;landing_zone_dock" no_destination_swap = 1 - light_color = LIGHT_COLOR_CYAN + var/global/list/dumb_rev_heads = list() + +/obj/machinery/computer/shuttle/mining/attack_hand(mob/user) + if(user.z == ZLEVEL_STATION && user.mind && (user.mind in ticker.mode.head_revolutionaries) && !(user.mind in dumb_rev_heads)) + user << "You get a feeling that leaving the station might be a REALLY dumb idea..." + dumb_rev_heads += user.mind + return + ..() /*********************Pickaxe & Drills**************************/ @@ -70,7 +85,7 @@ force = 15 throwforce = 10 item_state = "pickaxe" - w_class = 4 + w_class = WEIGHT_CLASS_BULKY materials = list(MAT_METAL=2000) //one sheet, but where can you make them? var/digspeed = 40 var/list/digsound = list('sound/effects/picaxe1.ogg','sound/effects/picaxe2.ogg','sound/effects/picaxe3.ogg') @@ -84,7 +99,7 @@ force = 10 throwforce = 7 slot_flags = SLOT_BELT - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL materials = list(MAT_METAL=1000) /obj/item/weapon/pickaxe/proc/playDigSound() @@ -159,7 +174,7 @@ var/digspeed = 20 throwforce = 4 item_state = "shovel" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL materials = list(MAT_METAL=50) origin_tech = "materials=2;engineering=2" attack_verb = list("bashed", "bludgeoned", "thrashed", "whacked") @@ -172,14 +187,14 @@ item_state = "spade" force = 5 throwforce = 7 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL /obj/item/weapon/emptysandbag name = "empty sandbag" desc = "A bag to be filled with sand." icon = 'icons/obj/items.dmi' icon_state = "sandbag" - w_class = 1 + w_class = WEIGHT_CLASS_TINY /obj/item/weapon/emptysandbag/attackby(obj/item/W, mob/user, params) if(istype(W,/obj/item/weapon/ore/glass)) @@ -214,7 +229,7 @@ desc = "An emergency shelter stored within a pocket of bluespace." icon_state = "capsule" icon = 'icons/obj/mining.dmi' - w_class = 1 + w_class = WEIGHT_CLASS_TINY origin_tech = "engineering=3;bluespace=3" var/template_id = "shelter_alpha" var/datum/map_template/shelter/template @@ -273,42 +288,11 @@ PoolOrNew(/obj/effect/particle_effect/smoke, get_turf(src)) qdel(src) + + //Pod turfs and objects -//Floors -/turf/open/floor/pod - name = "pod floor" - icon_state = "podfloor" - icon_regular_floor = "podfloor" - floor_tile = /obj/item/stack/tile/pod - -/turf/open/floor/pod/light - icon_state = "podfloor_light" - icon_regular_floor = "podfloor_light" - floor_tile = /obj/item/stack/tile/pod/light - -/turf/open/floor/pod/dark - icon_state = "podfloor_dark" - icon_regular_floor = "podfloor_dark" - floor_tile = /obj/item/stack/tile/pod/dark - -//Walls -/turf/closed/wall/shuttle/survival - name = "pod wall" - desc = "An easily-compressable wall used for temporary shelter." - icon = 'icons/turf/walls/survival_pod_walls.dmi' - icon_state = "smooth" - walltype = "shuttle" - smooth = SMOOTH_MORE|SMOOTH_DIAGONAL - canSmoothWith = list(/turf/closed/wall/shuttle/survival, /obj/machinery/door/airlock/survival_pod, /obj/structure/window/shuttle/survival_pod, /obj/structure/shuttle/engine) - -/turf/closed/wall/shuttle/survival/nodiagonal - smooth = SMOOTH_MORE - -/turf/closed/wall/shuttle/survival/pod - canSmoothWith = list(/turf/closed/wall/shuttle/survival, /obj/machinery/door/airlock, /obj/structure/window/fulltile, /obj/structure/window/reinforced/fulltile, /obj/structure/window/reinforced/tinted/fulltile, /obj/structure/window/shuttle, /obj/structure/shuttle/engine) - //Window /obj/structure/window/shuttle/survival_pod name = "pod window" @@ -374,10 +358,10 @@ /obj/item/device/gps/computer/attackby(obj/item/weapon/W, mob/user, params) if(istype(W, /obj/item/weapon/wrench) && !(flags&NODECONSTRUCT)) - playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + playsound(src.loc, W.usesound, 50, 1) user.visible_message("[user] disassembles the gps.", \ "You start to disassemble the gps...", "You hear clanking and banging noises.") - if(do_after(user, 20/W.toolspeed, target = src)) + if(do_after(user, 20*W.toolspeed, target = src)) new /obj/item/device/gps(src.loc) qdel(src) return ..() @@ -437,18 +421,20 @@ var/arbitraryatmosblockingvar = TRUE var/buildstacktype = /obj/item/stack/sheet/metal var/buildstackamount = 5 + CanAtmosPass = ATMOS_PASS_NO /obj/structure/fans/deconstruct() - if(buildstacktype) - new buildstacktype(loc,buildstackamount) - ..() + if(!(flags & NODECONSTRUCT)) + if(buildstacktype) + new buildstacktype(loc,buildstackamount) + qdel(src) /obj/structure/fans/attackby(obj/item/weapon/W, mob/user, params) if(istype(W, /obj/item/weapon/wrench) && !(flags&NODECONSTRUCT)) - playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + playsound(src.loc, W.usesound, 50, 1) user.visible_message("[user] disassembles the fan.", \ "You start to disassemble the fan...", "You hear clanking and banging noises.") - if(do_after(user, 20/W.toolspeed, target = src)) + if(do_after(user, 20*W.toolspeed, target = src)) deconstruct() return ..() @@ -465,12 +451,10 @@ air_update_turf(1) /obj/structure/fans/Destroy() - arbitraryatmosblockingvar = FALSE - air_update_turf(1) - return ..() + var/turf/T = loc + . = ..() + T.air_update_turf(1) -/obj/structure/fans/CanAtmosPass(turf/T) - return !arbitraryatmosblockingvar //Signs /obj/structure/sign/mining @@ -494,149 +478,221 @@ layer = BELOW_MOB_LAYER density = 0 -////////////////////// -////MOTION TRACKER//// -////////////////////// +///Mining Base//// -/obj/item/device/t_scanner/motionTracker - name = "motion tracker" - icon = 'icons/obj/mining.dmi' - icon_state = "tracker" - desc = "A nifty handheld motion tracker. Requires meson scanners to function properly." - flags = CONDUCT - slot_flags = SLOT_BELT - var/cooldown = 35 - var/on_cooldown = 0 - var/range = 7 - var/meson = FALSE - var/obj/item/weapon/stock_parts/cell/cell = new - var/cellcharge - var/cellmaxcharge - var/soundDetect = 'sound/effects/trackFull.ogg' - var/soundNoDetect = 'sound/effects/trackHalf.ogg' - var/soundToggle = 'sound/effects/switch.ogg' - var/powerReq = 10 - origin_tech = "engineering=3;magnets=4" +/area/shuttle/auxillary_base + name = "Auxillary Base" + luminosity = 0 //Lighting gets lost when it lands anyway -/obj/item/device/t_scanner/motionTracker/New() - cellcharge = cell.charge - cellmaxcharge = cell.maxcharge - updateicon() +/obj/machinery/computer/shuttle/auxillary_base + name = "auxillary base management console" + icon = 'icons/obj/terminals.dmi' + icon_state = "dorm_available" + shuttleId = "colony_drop" + desc = "Allows a deployable expedition base to be dropped from the station to a designated mining location. It can also \ +interface with the mining shuttle at the landing site if a mobile beacon is also deployed." + var/launch_warning = TRUE -/obj/item/device/t_scanner/motionTracker/process() - updateicon() - if(!on || !cell) - on = 0 - SSobj.processing.Remove(src) - return - if(cell.charge > powerReq) - scan() - cell.charge -= powerReq - if(cell.charge < powerReq) - playsound(get_turf(src),'sound/machines/twobeep.ogg', 15, 0 , -5) - on = 0 - SSobj.processing.Remove(src) - if(cell.charge <= 0)//In the event we have negative energy, somehow. - cell.charge = 0 - updateicon() - cellcharge = cell.charge - cellmaxcharge = cell.maxcharge - cell.updateicon() + req_one_access = list(access_cargo, access_construction, access_heads) + possible_destinations = null + clockwork = TRUE + var/obj/item/device/gps/internal/base/locator -/obj/item/device/t_scanner/motionTracker/attack_self(mob/user) - add_fingerprint(usr) - updateicon() - if(!cell) - user << text("[src] has no power supply.") - return - playsound(get_turf(src), soundToggle, 100, 0, -5) - if(cell.charge < powerReq) - user << text("The power light on [src] flashes.") - return - else if(cell.charge > powerReq) - on = !on - if(on) - user << text("You turn on [src].") - SSobj.processing |= src - if(!on) - user << text("You turn off [src].") - -/obj/item/device/t_scanner/motionTracker/proc/updateicon() - if(cell && cellcharge) - if(cell && cell.charge < (cell.maxcharge/5)) - icon_state = "trackerLow" - else if(cell && cell.charge < (cell.maxcharge/2)) - icon_state = "trackerHalf" - else if(cell && cell.charge > (cell.maxcharge/2)) - icon_state = "trackerFull" - if(!cellcharge || !cell || cellcharge < powerReq) - icon_state = "trackerEmpty" +/obj/machinery/computer/shuttle/auxillary_base/New(location, obj/item/weapon/circuitboard/computer/shuttle/C) ..() -/obj/item/device/t_scanner/motionTracker/scan(mob/living/carbon/user) - if(!on_cooldown) - on_cooldown = 1 - spawn(cooldown) - on_cooldown = 0 - var/turf/t = get_turf(src) - var/list/mobs = recursive_mob_check(t, 1,0,0) - if(!mobs.len) + locator = new /obj/item/device/gps/internal/base(src) + +/obj/machinery/computer/shuttle/auxillary_base/Topic(href, href_list) + if(href_list["move"]) + if(z != ZLEVEL_STATION && shuttleId == "colony_drop") + usr << "You can't move the base again!" + return 0 + if(launch_warning) + say("Launch sequence activated! Prepare for drop!") + playsound(loc, 'sound/machines/warning-buzzer.ogg', 70, 0) + launch_warning = FALSE + ..() + + + +/obj/machinery/computer/shuttle/auxillary_base/onShuttleMove(turf/T1, rotation) + ..() + if(z == ZLEVEL_MINING) //Avoids double logging and landing on other Z-levels due to badminnery + feedback_add_details("colonies_dropped", "[x]|[y]|[z]") //Number of times a base has been dropped! + +/obj/machinery/computer/shuttle/auxillary_base/proc/set_mining_mode() + if(z == ZLEVEL_MINING) //The console switches to controlling the mining shuttle once landed. + req_access = list() + shuttleId = "mining" //The base can only be dropped once, so this gives the console a new purpose. + possible_destinations = "mining_home;mining_away;landing_zone_dock" + +/obj/item/device/assault_pod/mining + name = "Landing Field Designator" + icon_state = "gangtool-purple" + item_state = "electronic" + icon = 'icons/obj/device.dmi' + desc = "Deploy to designate the landing zone of the auxillary base." + w_class = WEIGHT_CLASS_SMALL + shuttle_id = "colony_drop" + var/setting = FALSE + var/no_restrictions = FALSE //Badmin variable to let you drop the colony ANYWHERE. + +/obj/item/device/assault_pod/mining/attack_self(mob/living/user) + if(setting) + return + var/turf/T = get_turf(user) + var/obj/docking_port/mobile/auxillary_base/base_dock = locate(/obj/docking_port/mobile/auxillary_base) in SSshuttle.mobile + if(!base_dock) //Not all maps have an Aux base. This object is useless in that case. + user << "This station is not equipped with an auxillary base. Please contact your Nanotrasen contractor." + return + if(!no_restrictions) + if(T.z != ZLEVEL_MINING) + user << "Wouldn't do much good dropping a mining base away from the mining area!" return - motionTrackScan(mobs, range) + var/colony_radius = max(width, height)*0.5 + var/list/area_counter = get_areas_in_range(colony_radius, T) + if(area_counter.len > 1) //Avoid smashing ruins unless you are inside a really big one + user << "Unable to acquire a targeting lock. Find an area clear of stuctures or entirely within one." + return + + user << "You begin setting the landing zone parameters..." + setting = TRUE + if(!do_after(user, 50, target = user)) //You get a few seconds to cancel if you do not want to drop there. + setting = FALSE + return + + var/area/A = get_area(T) + + var/obj/docking_port/stationary/landing_zone = new /obj/docking_port/stationary(T) + landing_zone.id = "colony_drop(\ref[src])" + landing_zone.name = "Landing Zone ([T.x], [T.y])" + landing_zone.dwidth = base_dock.dwidth + landing_zone.dheight = base_dock.dheight + landing_zone.width = base_dock.width + landing_zone.height = base_dock.height + landing_zone.setDir(base_dock.dir) + landing_zone.turf_type = T.type + landing_zone.area_type = A.type + + for(var/obj/machinery/computer/shuttle/S in machines) + if(S.shuttleId == shuttle_id) + S.possible_destinations += "[landing_zone.id];" + +//Serves as a nice mechanic to people get ready for the launch. + minor_announce("Auxiliary base landing zone coordinates locked in for [get_area(user)]. Launch command now available!") + user << "Landing zone set." + + qdel(src) + +/obj/item/device/assault_pod/mining/unrestricted + name = "omni-locational landing field designator" + desc = "Allows the deployment of the mining base ANYWHERE. Use with caution." + no_restrictions = TRUE -/obj/item/device/t_scanner/motionTracker/proc/motionTrackScan(var/list/mobs, var/range) - var/mobsfar = 0 - for(var/turf/T in range(7, get_turf(src)) ) - for(var/mob/O in T.contents) - var/mob/living/L = locate() in T - if(L && (get_turf(L) != get_turf(src)) && !L.stat) - flick_blip(O.loc) - mobsfar = 1 - if(mobsfar) - playsound(get_turf(src),'sound/effects/trackFull.ogg', 15, 0, -5) - if(!mobsfar) - playsound(get_turf(src),'sound/effects/trackHalf.ogg', 10, 0, -5) +/obj/docking_port/mobile/auxillary_base + name = "auxillary base" + id = "colony_drop" + //Reminder to map-makers to set these values equal to the size of your base. + dheight = 4 + dwidth = 4 + width = 9 + height = 9 + var/anti_spam_cd = 0 -/obj/item/device/t_scanner/motionTracker/proc/flick_blip(turf/T) - var/image/B = image('icons/obj/mining.dmi', T, icon_state = "blip") - var/list/nearby = list() - for(var/mob/M in viewers(T)) - if(M.client) - nearby |= M.client - flick_overlay(B,nearby, 8) +/obj/structure/mining_shuttle_beacon + name = "mining shuttle beacon" + desc = "A bluespace beacon calibrated to mark a landing spot for the mining shuttle when deployed near the auxillary mining base." + anchored = 0 + density = 0 + var/shuttle_ID = "landing_zone_dock" + icon = 'icons/obj/objects.dmi' + icon_state = "miningbeacon" + var/obj/docking_port/stationary/Mport //Linked docking port for the mining shuttle + pressure_resistance = 200 //So it does not get blown into lava. + var/anti_spam_cd = 0 //The linking process might be a bit intensive, so this here to prevent over use. + var/console_range = 15 //Wifi range of the beacon to find the aux base console -/obj/item/device/t_scanner/motionTracker/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/weapon/screwdriver) && cell) - user << text("You detach [cell] from [src].") - cell.loc = get_turf(src) - cell = null - cellcharge = 0 - cellmaxcharge = 0 - if(on) - on = 0 - updateicon() - cell.updateicon() - if(istype(I, /obj/item/weapon/stock_parts/cell)) - if(cell) - user << text("[src] already has a power supply installed.") - else - if(!user.drop_item())//This is dumb. You should be able to move a held object without having to drop it. - return - I.loc = src - cell = I - user.visible_message(\ - "[user.name] has inserted the power cell into [src.name].",\ - "You install [cell.name] into [src]") - cellcharge = cell.charge - cellmaxcharge = cell.maxcharge - updateicon() - else - ..() +/obj/structure/mining_shuttle_beacon/attack_hand(mob/user) + if(anchored) + user << "Landing zone already set." + return -/obj/item/device/t_scanner/motionTracker/examine(mob/user) - ..() - if(cell) - user << text("[src] has [cellcharge]/[cellmaxcharge] charge remaining.") - else - user << text("[src] has no power supply installed.") + if(anti_spam_cd) + user << "[src] is currently recalibrating. Please wait." + return + + anti_spam_cd = 1 + addtimer(src, "clear_cooldown", 100) + + var/turf/landing_spot = get_turf(src) + + if(landing_spot.z != ZLEVEL_MINING) + user << "This device is only to be used in a mining zone." + return + var/obj/machinery/computer/shuttle/auxillary_base/aux_base_console = locate(/obj/machinery/computer/shuttle/auxillary_base) in machines + if(!aux_base_console || get_dist(landing_spot, aux_base_console) > console_range) + user << "The auxillary base's console must be within [console_range] meters in order to interface." + return //Needs to be near the base to serve as its dock and configure it to control the mining shuttle. + +//Mining shuttles may not be created equal, so we find the map's shuttle dock and size accordingly. + + + for(var/S in SSshuttle.stationary) + var/obj/docking_port/stationary/SM = S //SM is declared outside so it can be checked for null + if(SM.id == "mining_home" || SM.id == "mining_away") + + var/area/A = get_area(landing_spot) + + Mport = new(landing_spot) + Mport.id = "landing_zone_dock" + Mport.name = "auxillary base landing site" + Mport.dwidth = SM.dwidth + Mport.dheight = SM.dheight + Mport.width = SM.width + Mport.height = SM.height + Mport.setDir(dir) + Mport.turf_type = landing_spot.type + Mport.area_type = A.type + + break + if(!Mport) + user << "This station is not equipped with an approprite mining shuttle. Please contact Nanotrasen Support." + return + var/search_radius = max(Mport.width, Mport.height)*0.5 + var/list/landing_areas = get_areas_in_range(search_radius, landing_spot) + for(var/area/shuttle/auxillary_base/AB in landing_areas) //You land NEAR the base, not IN it. + user << "The mining shuttle must not land within the mining base itself." + SSshuttle.stationary.Remove(Mport) + qdel(Mport) + return + var/obj/docking_port/mobile/mining_shuttle + for(var/S in SSshuttle.mobile) + var/obj/docking_port/mobile/MS = S + if(MS.id != "mining") + continue + mining_shuttle = MS + + if(!mining_shuttle) //Not having a mining shuttle is a map issue + user << "No mining shuttle signal detected. Please contact Nanotrasen Support." + SSshuttle.stationary.Remove(Mport) + qdel(Mport) + return + + if(!mining_shuttle.canDock(Mport)) + user << "Unable to secure a valid docking zone. Please try again in an open area near, but not within the aux. mining base." + SSshuttle.stationary.Remove(Mport) + qdel(Mport) + return + + aux_base_console.set_mining_mode() //Lets the colony park the shuttle there, now that it has a dock. + user << "Mining shuttle calibration successful! Shuttle interface available at base console." + anchored = 1 //Locks in place to mark the landing zone. + playsound(src.loc, 'sound/machines/ping.ogg', 50, 0) + +/obj/structure/mining_shuttle_beacon/proc/clear_cooldown() + anti_spam_cd = 0 + +/obj/structure/mining_shuttle_beacon/attack_robot(mob/user) + return (attack_hand(user)) //So borgies can help diff --git a/code/modules/mining/minebot.dm b/code/modules/mining/minebot.dm index f18ca2a097..9a241ec9e9 100644 --- a/code/modules/mining/minebot.dm +++ b/code/modules/mining/minebot.dm @@ -1,4 +1,6 @@ /**********************Mining drone**********************/ +#define MINEDRONE_COLLECT 1 +#define MINEDRONE_ATTACK 2 /mob/living/simple_animal/hostile/mining_drone name = "nanotrasen minebot" @@ -7,10 +9,9 @@ icon_state = "mining_drone" icon_living = "mining_drone" status_flags = CANSTUN|CANWEAKEN|CANPUSH - stop_automated_movement_when_pulled = 1 mouse_opacity = 1 faction = list("neutral") - a_intent = "harm" + 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 wander = 0 @@ -22,8 +23,10 @@ maxHealth = 125 melee_damage_lower = 15 melee_damage_upper = 15 + obj_damage = 0 environment_smash = 0 check_friendly_fire = 1 + stop_automated_movement_when_pulled = 1 attacktext = "drills" attack_sound = 'sound/weapons/circsawhit.ogg' ranged = 1 @@ -35,8 +38,32 @@ speak_emote = list("states") wanted_objects = list(/obj/item/weapon/ore/diamond, /obj/item/weapon/ore/gold, /obj/item/weapon/ore/silver, /obj/item/weapon/ore/plasma, /obj/item/weapon/ore/uranium, /obj/item/weapon/ore/iron, - /obj/item/weapon/ore/bananium) + /obj/item/weapon/ore/bananium, /obj/item/weapon/ore/titanium) healable = 0 + var/mode = MINEDRONE_COLLECT + var/light_on = 0 + + var/datum/action/innate/minedrone/toggle_light/toggle_light_action + var/datum/action/innate/minedrone/toggle_meson_vision/toggle_meson_vision_action + var/datum/action/innate/minedrone/toggle_mode/toggle_mode_action + var/datum/action/innate/minedrone/dump_ore/dump_ore_action + +/mob/living/simple_animal/hostile/mining_drone/New() + ..() + toggle_light_action = new() + toggle_light_action.Grant(src) + toggle_meson_vision_action = new() + toggle_meson_vision_action.Grant(src) + toggle_mode_action = new() + toggle_mode_action.Grant(src) + dump_ore_action = new() + dump_ore_action.Grant(src) + + SetCollectBehavior() + +/mob/living/simple_animal/hostile/mining_drone/sentience_act() + AIStatus = AI_OFF + check_friendly_fire = 0 /mob/living/simple_animal/hostile/mining_drone/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/weapon/weldingtool)) @@ -61,27 +88,23 @@ ..() visible_message("[src] is destroyed!") new /obj/effect/decal/cleanable/robot_debris(src.loc) - DropOre() + DropOre(0) qdel(src) return -/mob/living/simple_animal/hostile/mining_drone/New() - ..() - SetCollectBehavior() - /mob/living/simple_animal/hostile/mining_drone/attack_hand(mob/living/carbon/human/M) - if(M.a_intent == "help") - switch(search_objects) - if(0) - SetCollectBehavior() + if(M.a_intent == INTENT_HELP) + toggle_mode() + switch(mode) + if(MINEDRONE_COLLECT) M << "[src] has been set to search and store loose ore." - if(2) - SetOffenseBehavior() + if(MINEDRONE_ATTACK) M << "[src] has been set to attack hostile wildlife." return ..() /mob/living/simple_animal/hostile/mining_drone/proc/SetCollectBehavior() + mode = MINEDRONE_COLLECT idle_vision_range = 9 search_objects = 2 wander = 1 @@ -89,8 +112,10 @@ minimum_distance = 1 retreat_distance = null icon_state = "mining_drone" + src << "You are set to collect mode. You can now collect loose ore." /mob/living/simple_animal/hostile/mining_drone/proc/SetOffenseBehavior() + mode = MINEDRONE_ATTACK idle_vision_range = 7 search_objects = 0 wander = 0 @@ -98,9 +123,10 @@ retreat_distance = 1 minimum_distance = 2 icon_state = "mining_drone_offense" + src << "You are set to attack mode. You can now attack from range." /mob/living/simple_animal/hostile/mining_drone/AttackingTarget() - if(istype(target, /obj/item/weapon/ore)) + if(istype(target, /obj/item/weapon/ore) && mode == MINEDRONE_COLLECT) CollectOre() return ..() @@ -115,19 +141,86 @@ O.loc = src return -/mob/living/simple_animal/hostile/mining_drone/proc/DropOre() +/mob/living/simple_animal/hostile/mining_drone/proc/DropOre(message = 1) if(!contents.len) + if(message) + src << "You attempt to dump your stored ore, but you have none." return + if(message) + src << "You dump your stored ore." for(var/obj/item/weapon/ore/O in contents) contents -= O O.loc = src.loc return -/mob/living/simple_animal/hostile/mining_drone/adjustHealth() - if(search_objects) +/mob/living/simple_animal/hostile/mining_drone/adjustHealth(amount) + if(mode != MINEDRONE_ATTACK && amount > 0) SetOffenseBehavior() . = ..() +/mob/living/simple_animal/hostile/mining_drone/proc/toggle_mode() + switch(mode) + if(MINEDRONE_COLLECT) + SetOffenseBehavior() + if(MINEDRONE_ATTACK) + SetCollectBehavior() + else //This should never happen. + mode = MINEDRONE_COLLECT + SetCollectBehavior() + +//Actions for sentient minebots + +/datum/action/innate/minedrone + check_flags = AB_CHECK_CONSCIOUS + background_icon_state = "bg_default" + +/datum/action/innate/minedrone/toggle_light + name = "Toggle Light" + button_icon_state = "mech_lights_off" + +/datum/action/innate/minedrone/toggle_light/Activate() + var/mob/living/simple_animal/hostile/mining_drone/user = owner + + if(user.light_on) + user.AddLuminosity(-6) + else + user.AddLuminosity(6) + user.light_on = !user.light_on + user << "You toggle your light [user.light_on ? "on" : "off"]." + +/datum/action/innate/minedrone/toggle_meson_vision + name = "Toggle Meson Vision" + button_icon_state = "meson" + +/datum/action/innate/minedrone/toggle_meson_vision/Activate() + var/mob/living/simple_animal/hostile/mining_drone/user = owner + + if(user.sight & SEE_TURFS) + user.sight &= ~SEE_TURFS + user.see_invisible = SEE_INVISIBLE_LIVING + else + user.sight |= SEE_TURFS + user.see_invisible = SEE_INVISIBLE_MINIMUM + + user << "You toggle your meson vision [(user.sight & SEE_TURFS) ? "on" : "off"]." + +/datum/action/innate/minedrone/toggle_mode + name = "Toggle Mode" + button_icon_state = "mech_cycle_equip_off" + +/datum/action/innate/minedrone/toggle_mode/Activate() + var/mob/living/simple_animal/hostile/mining_drone/user = owner + user.toggle_mode() + +/datum/action/innate/minedrone/dump_ore + name = "Dump Ore" + button_icon_state = "mech_eject" + +/datum/action/innate/minedrone/dump_ore/Activate() + var/mob/living/simple_animal/hostile/mining_drone/user = owner + user.DropOre() + + /**********************Minebot Upgrades**********************/ //Melee @@ -185,4 +278,7 @@ icon_state = "door_electronics" icon = 'icons/obj/module.dmi' sentience_type = SENTIENCE_MINEBOT - origin_tech = "programming=6" \ No newline at end of file + origin_tech = "programming=6" + +#undef MINEDRONE_COLLECT +#undef MINEDRONE_ATTACK diff --git a/code/modules/mining/mint.dm b/code/modules/mining/mint.dm index cac9971d73..e6d1a58b19 100644 --- a/code/modules/mining/mint.dm +++ b/code/modules/mining/mint.dm @@ -7,110 +7,60 @@ icon_state = "coinpress0" density = 1 anchored = 1 - var/amt_silver = 0 //amount of silver - var/amt_gold = 0 //amount of gold - var/amt_diamond = 0 - var/amt_iron = 0 - var/amt_plasma = 0 - var/amt_uranium = 0 - var/amt_clown = 0 - var/amt_adamantine = 0 - var/amt_mythril = 0 + var/datum/material_container/materials var/newCoins = 0 //how many coins the machine made in it's last load var/processing = 0 - var/chosen = "metal" //which material will be used to make coins + var/chosen = MAT_METAL //which material will be used to make coins var/coinsToProduce = 10 speed_process = 1 -/obj/machinery/mineral/mint/process() - var/turf/T = get_step(src,input_dir) - if(T) - for(var/obj/item/stack/sheet/O in T) - if (istype(O, /obj/item/stack/sheet/mineral/gold)) - amt_gold += MINERAL_MATERIAL_AMOUNT * O.amount - O.loc = null - if (istype(O, /obj/item/stack/sheet/mineral/silver)) - amt_silver += MINERAL_MATERIAL_AMOUNT * O.amount - O.loc = null - if (istype(O, /obj/item/stack/sheet/mineral/diamond)) - amt_diamond += MINERAL_MATERIAL_AMOUNT * O.amount - O.loc = null - if (istype(O, /obj/item/stack/sheet/mineral/plasma)) - amt_plasma += MINERAL_MATERIAL_AMOUNT * O.amount - O.loc = null - if (istype(O, /obj/item/stack/sheet/mineral/uranium)) - amt_uranium += MINERAL_MATERIAL_AMOUNT * O.amount - O.loc = null - if (istype(O, /obj/item/stack/sheet/metal)) - amt_iron += MINERAL_MATERIAL_AMOUNT * O.amount - O.loc = null - if (istype(O, /obj/item/stack/sheet/mineral/bananium)) - amt_clown += MINERAL_MATERIAL_AMOUNT * O.amount - O.loc = null - if (istype(O, /obj/item/stack/sheet/mineral/adamantine)) - amt_adamantine += MINERAL_MATERIAL_AMOUNT * O.amount - O.loc = null - return +/obj/machinery/mineral/mint/New() + ..() + materials = new /datum/material_container(src, + list(MAT_METAL, MAT_PLASMA, MAT_SILVER, MAT_GOLD, MAT_URANIUM, MAT_DIAMOND, MAT_BANANIUM), + max_amt = MINERAL_MATERIAL_AMOUNT*50) + +/obj/machinery/mineral/mint/Destroy() + qdel(materials) + materials = null + return ..() + + +/obj/machinery/mineral/mint/process() + var/turf/T = get_step(src, input_dir) + if(!T) + return + + for(var/obj/item/stack/sheet/O in T) + materials.insert_stack(O, O.amount) /obj/machinery/mineral/mint/attack_hand(mob/user) - var/dat = "Coin Press
    " - dat += text("
    Gold inserted: [amt_gold] cm3 ") - if (chosen == "gold") - dat += text("chosen") - else - dat += text("Choose") - dat += text("
    Silver inserted: [amt_silver] cm3 ") - if (chosen == "silver") - dat += text("chosen") - else - dat += text("Choose") - dat += text("
    Iron inserted: [amt_iron] cm3 ") - if (chosen == "metal") - dat += text("chosen") - else - dat += text("Choose") - dat += text("
    Diamond inserted: [amt_diamond] cm3 ") - if (chosen == "diamond") - dat += text("chosen") - else - dat += text("Choose") - dat += text("
    Plasma inserted: [amt_plasma] cm3 ") - if (chosen == "plasma") - dat += text("chosen") - else - dat += text("Choose") - dat += text("
    Uranium inserted: [amt_uranium] cm3 ") - if (chosen == "uranium") - dat += text("chosen") - else - dat += text("Choose") - if(amt_clown > 0) - dat += text("
    Bananium inserted: [amt_clown] cm3 ") - if (chosen == "clown") - dat += text("chosen") + for(var/mat_id in materials.materials) + var/datum/material/M = materials.materials[mat_id] + if(!M.amount && chosen != mat_id) + continue + dat += "
    [M.name] amount: [M.amount] cm3 " + if (chosen == mat_id) + dat += "Chosen" else - dat += text("Choose") - dat += text("
    Adamantine inserted: [amt_adamantine] cm3 ")//I don't even know these color codes, so fuck it. - if (chosen == "adamantine") - dat += text("chosen") - else - dat += text("Choose") + dat += "Choose" - dat += text("

    Will produce [coinsToProduce] [chosen] coins if enough materials are available.
    ") - //dat += text("The dial which controls the number of conins to produce seems to be stuck. A technician has already been dispatched to fix this.") - dat += text("-10 ") - dat += text("-5 ") - dat += text("-1 ") - dat += text("+1 ") - dat += text("+5 ") - dat += text("+10 ") + var/datum/material/M = materials.materials[chosen] - dat += text("

    In total this machine produced [newCoins] coins.") - dat += text("
    Make coins") - user << browse("[dat]", "window=mint") + dat += "

    Will produce [coinsToProduce] [lowertext(M.name)] coins if enough materials are available.
    " + dat += "-10 " + dat += "-5 " + dat += "-1 " + dat += "+1 " + dat += "+5 " + dat += "+10 " + + dat += "

    In total this machine produced [newCoins] coins." + dat += "
    Make coins" + user << browse(dat, "window=mint") /obj/machinery/mineral/mint/Topic(href, href_list) if(..()) @@ -121,89 +71,29 @@ usr << "The machine is processing." return if(href_list["choose"]) - chosen = href_list["choose"] + if(materials.materials[href_list["choose"]]) + chosen = href_list["choose"] if(href_list["chooseAmt"]) coinsToProduce = Clamp(coinsToProduce + text2num(href_list["chooseAmt"]), 0, 1000) if(href_list["makeCoins"]) var/temp_coins = coinsToProduce - processing = 1; + processing = 1 icon_state = "coinpress1" var/coin_mat = MINERAL_MATERIAL_AMOUNT * 0.2 - switch(chosen) - if("metal") - while(amt_iron >= coin_mat && coinsToProduce > 0) - create_coins(/obj/item/weapon/coin/iron) - amt_iron -= coin_mat - coinsToProduce-- - newCoins++ - src.updateUsrDialog() - sleep(5); - if("gold") - while(amt_gold >= coin_mat && coinsToProduce > 0) - create_coins(/obj/item/weapon/coin/gold) - amt_gold -= coin_mat - coinsToProduce-- - newCoins++ - src.updateUsrDialog() - sleep(5); - if("silver") - while(amt_silver >= coin_mat && coinsToProduce > 0) - create_coins(/obj/item/weapon/coin/silver) - amt_silver -= coin_mat - coinsToProduce-- - newCoins++ - src.updateUsrDialog() - sleep(5); - if("diamond") - while(amt_diamond >= coin_mat && coinsToProduce > 0) - create_coins(/obj/item/weapon/coin/diamond) - amt_diamond -= coin_mat - coinsToProduce-- - newCoins++ - src.updateUsrDialog() - sleep(5); - if("plasma") - while(amt_plasma >= coin_mat && coinsToProduce > 0) - create_coins(/obj/item/weapon/coin/plasma) - amt_plasma -= coin_mat - coinsToProduce-- - newCoins++ - src.updateUsrDialog() - sleep(5); - if("uranium") - while(amt_uranium >= coin_mat && coinsToProduce > 0) - create_coins(/obj/item/weapon/coin/uranium) - amt_uranium -= coin_mat - coinsToProduce-- - newCoins++ - src.updateUsrDialog() - sleep(5) - if("clown") - while(amt_clown >= coin_mat && coinsToProduce > 0) - create_coins(/obj/item/weapon/coin/clown) - amt_clown -= coin_mat - coinsToProduce-- - newCoins++ - src.updateUsrDialog() - sleep(5); - if("adamantine") - while(amt_adamantine >= coin_mat && coinsToProduce > 0) - create_coins(/obj/item/weapon/coin/adamantine) - amt_adamantine -= coin_mat - coinsToProduce-- - newCoins++ - src.updateUsrDialog() - sleep(5); - if("mythril") - while(amt_adamantine >= coin_mat && coinsToProduce > 0) - create_coins(/obj/item/weapon/coin/mythril) - amt_mythril -= coin_mat - coinsToProduce-- - newCoins++ - src.updateUsrDialog() - sleep(5); + var/datum/material/M = materials.materials[chosen] + if(!M || !M.coin_type) + updateUsrDialog() + return + + while(coinsToProduce > 0 && materials.use_amount_type(coin_mat, chosen)) + create_coins(M.coin_type) + coinsToProduce-- + newCoins++ + src.updateUsrDialog() + sleep(5) + icon_state = "coinpress0" - processing = 0; + processing = 0 coinsToProduce = temp_coins src.updateUsrDialog() return diff --git a/code/modules/mining/money_bag.dm b/code/modules/mining/money_bag.dm index ace35ec291..7c486251d3 100644 --- a/code/modules/mining/money_bag.dm +++ b/code/modules/mining/money_bag.dm @@ -5,10 +5,11 @@ icon_state = "moneybag" force = 10 throwforce = 0 - burn_state = FLAMMABLE - burntime = 20 - w_class = 4 - max_w_class = 3 + resistance_flags = FLAMMABLE + obj_integrity = 100 + max_integrity = 100 + w_class = WEIGHT_CLASS_BULKY + max_w_class = WEIGHT_CLASS_NORMAL storage_slots = 80 max_combined_w_class = 40 can_hold = list(/obj/item/weapon/coin, /obj/item/stack/spacecash) diff --git a/code/modules/mining/ores_coins.dm b/code/modules/mining/ores_coins.dm index b4a0be4d31..153417695d 100644 --- a/code/modules/mining/ores_coins.dm +++ b/code/modules/mining/ores_coins.dm @@ -17,6 +17,36 @@ user << "Not enough fuel to smelt [src]." ..() +/obj/item/weapon/ore/Crossed(atom/movable/AM) + var/obj/item/weapon/storage/bag/ore/OB + if(istype(loc, /turf/open/floor/plating/asteroid)) + var/turf/open/floor/plating/asteroid/F = loc + if(ishuman(AM)) + var/mob/living/carbon/human/H = AM + for(var/thing in H.get_storage_slots()) + if(istype(thing, /obj/item/weapon/storage/bag/ore)) + OB = thing + break + for(var/thing in H.held_items) + if(istype(thing, /obj/item/weapon/storage/bag/ore)) + OB = thing + break + else if(issilicon(AM)) + var/mob/living/silicon/robot/R = AM + for(var/thing in R.module_active) + if(istype(thing, /obj/item/weapon/storage/bag/ore)) + OB = thing + break + if(OB) + F.attackby(OB, AM) + // Then, if the user is dragging an ore box, empty the satchel + // into the box. + var/mob/living/L = AM + if(istype(L.pulling, /obj/structure/ore_box)) + var/obj/structure/ore_box/box = L.pulling + box.attackby(OB, AM) + return ..() + /obj/item/weapon/ore/uranium name = "uranium ore" icon_state = "Uranium ore" @@ -40,7 +70,7 @@ points = 1 materials = list(MAT_GLASS=MINERAL_MATERIAL_AMOUNT) refined_type = /obj/item/stack/sheet/glass - w_class = 1 + w_class = WEIGHT_CLASS_TINY /obj/item/weapon/ore/glass/attack_self(mob/living/user) user << "You use the sand to make sandstone." @@ -133,6 +163,14 @@ materials = list(MAT_BANANIUM=MINERAL_MATERIAL_AMOUNT) refined_type = /obj/item/stack/sheet/mineral/bananium +/obj/item/weapon/ore/titanium + name = "titanium ore" + icon_state = "Titanium ore" + origin_tech = "materials=4" + points = 50 + materials = list(MAT_TITANIUM=MINERAL_MATERIAL_AMOUNT) + refined_type = /obj/item/stack/sheet/mineral/titanium + /obj/item/weapon/ore/slag name = "slag" desc = "Completely useless" @@ -144,7 +182,7 @@ icon = 'icons/obj/mining.dmi' icon_state = "Gibtonite ore" item_state = "Gibtonite ore" - w_class = 4 + w_class = WEIGHT_CLASS_BULKY throw_range = 0 var/primed = 0 var/det_time = 100 @@ -252,7 +290,7 @@ flags = CONDUCT force = 1 throwforce = 2 - w_class = 1 + w_class = WEIGHT_CLASS_TINY var/string_attached var/list/sideslist = list("heads","tails") var/cmineral = null diff --git a/code/modules/mining/satchel_ore_boxdm.dm b/code/modules/mining/satchel_ore_boxdm.dm index 1e4ad8d9a6..dd82f9b1d4 100644 --- a/code/modules/mining/satchel_ore_boxdm.dm +++ b/code/modules/mining/satchel_ore_boxdm.dm @@ -13,23 +13,18 @@ if (istype(W, /obj/item/weapon/ore)) if(!user.drop_item()) return - W.loc = src + W.forceMove(src) else if (istype(W, /obj/item/weapon/storage)) var/obj/item/weapon/storage/S = W for(var/obj/item/weapon/ore/O in S.contents) S.remove_from_storage(O, src) //This will move the item to this item's contents user << "You empty the ore in [S] into \the [src]." else if(istype(W, /obj/item/weapon/crowbar)) - playsound(loc, 'sound/items/Crowbar.ogg', 50, 1) + playsound(loc, W.usesound, 50, 1) var/obj/item/weapon/crowbar/C = W - var/time = 50 - if(do_after(user, time/C.toolspeed, target = src)) + if(do_after(user, 50*C.toolspeed, target = src)) user.visible_message("[user] pries \the [src] apart.", "You pry apart \the [src].", "You hear splitting wood.") - // If you change the amount of wood returned, remember - // to change the construction costs - var/obj/item/stack/sheet/mineral/wood/wo = new (loc, 4) - wo.add_fingerprint(user) - deconstruct() + deconstruct(TRUE, user) else return ..() @@ -42,64 +37,19 @@ show_contents(user) /obj/structure/ore_box/proc/show_contents(mob/user) - var/amt_gold = 0 - var/amt_silver = 0 - var/amt_diamond = 0 - var/amt_glass = 0 - var/amt_iron = 0 - var/amt_plasma = 0 - var/amt_uranium = 0 - var/amt_clown = 0 - var/amt_bluespace = 0 - - for (var/obj/item/weapon/ore/C in contents) - if (istype(C,/obj/item/weapon/ore/diamond)) - amt_diamond++; - if (istype(C,/obj/item/weapon/ore/glass)) - amt_glass++; - if (istype(C,/obj/item/weapon/ore/plasma)) - amt_plasma++; - if (istype(C,/obj/item/weapon/ore/iron)) - amt_iron++; - if (istype(C,/obj/item/weapon/ore/silver)) - amt_silver++; - if (istype(C,/obj/item/weapon/ore/gold)) - amt_gold++; - if (istype(C,/obj/item/weapon/ore/uranium)) - amt_uranium++; - if (istype(C,/obj/item/weapon/ore/bananium)) - amt_clown++; - if (istype(C,/obj/item/weapon/ore/bluespace_crystal)) - amt_bluespace++ - var/dat = text("The contents of the ore box reveal...
    ") - if (amt_gold) - dat += text("Gold ore: [amt_gold]
    ") - if (amt_silver) - dat += text("Silver ore: [amt_silver]
    ") - if (amt_iron) - dat += text("Metal ore: [amt_iron]
    ") - if (amt_glass) - dat += text("Sand: [amt_glass]
    ") - if (amt_diamond) - dat += text("Diamond ore: [amt_diamond]
    ") - if (amt_plasma) - dat += text("Plasma ore: [amt_plasma]
    ") - if (amt_uranium) - dat += text("Uranium ore: [amt_uranium]
    ") - if (amt_clown) - dat += text("Bananium ore: [amt_clown]
    ") - if (amt_bluespace) - dat += text("Bluespace crystals: [amt_bluespace]
    ") - + var/list/oretypes = list() + for(var/obj/item/weapon/ore/O in contents) + oretypes |= O.type + for(var/i in oretypes) + var/obj/item/weapon/ore/T = locate(i) in contents + dat += "[capitalize(T.name)]: [count_by_type(contents, T.type)]
    " dat += text("

    Empty box") - user << browse("[dat]", "window=orebox") - return + user << browse(dat, "window=orebox") -/obj/structure/ore_box/proc/dump_contents() - for (var/obj/item/weapon/ore/O in contents) - contents -= O - O.loc = src.loc +/obj/structure/ore_box/proc/dump_box_contents() + for(var/obj/item/weapon/ore/O in contents) + O.forceMove(loc) /obj/structure/ore_box/Topic(href, href_list) if(..()) @@ -110,16 +60,14 @@ usr.set_machine(src) src.add_fingerprint(usr) if(href_list["removeall"]) - dump_contents() + dump_box_contents() usr << "You empty the box." - src.updateUsrDialog() - return + updateUsrDialog() -/obj/structure/ore_box/ex_act(severity, target) - if(prob(100 / severity) && severity < 3) - qdel(src) //nothing but ores can get inside unless its a bug and ores just return nothing on ex_act, not point in calling it on them - -/obj/structure/ore_box/Destroy() - dump_contents() - return ..() +/obj/structure/ore_box/deconstruct(disassembled = TRUE, mob/user) + var/obj/item/stack/sheet/mineral/wood/WD = new (loc, 4) + if(user) + WD.add_fingerprint(user) + dump_box_contents() + qdel(src) diff --git a/code/modules/mob/dead/observer/login.dm b/code/modules/mob/dead/observer/login.dm index 9c770d24a3..7bba60bef9 100644 --- a/code/modules/mob/dead/observer/login.dm +++ b/code/modules/mob/dead/observer/login.dm @@ -5,7 +5,7 @@ ghost_others = client.prefs.ghost_others var/preferred_form = null - if(check_rights(R_ADMIN, 0)) + if(IsAdminGhost(src)) has_unlimited_silicon_privilege = 1 if(client.prefs.unlock_content) diff --git a/code/modules/mob/dead/observer/logout.dm b/code/modules/mob/dead/observer/logout.dm index 51c597f871..698329a70f 100644 --- a/code/modules/mob/dead/observer/logout.dm +++ b/code/modules/mob/dead/observer/logout.dm @@ -1,6 +1,13 @@ /mob/dead/observer/Logout() if (client) client.images -= ghost_darkness_images + if(observetarget) + if(ismob(observetarget)) + var/mob/target = observetarget + if(target.observers) + target.observers -= src + UNSETEMPTY(target.observers) + observetarget = null ..() spawn(0) if(src && !key) //we've transferred to another mob. This ghost should be deleted. diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 7ea02593ac..78abe6f7f9 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -31,6 +31,7 @@ var/list/image/ghost_images_simple = list() //this is a list of all ghost images var/image/ghostimage_simple = null //this mob with the simple white ghost sprite var/ghostvision = 1 //is the ghost able to see things humans can't? var/seedarkness = 1 + var/mob/observetarget = null //The target mob that the ghost is observing. Used as a reference in logout() var/ghost_hud_enabled = 1 //did this ghost disable the on-screen HUD? var/data_huds_on = 0 //Are data HUDs currently enabled? var/list/datahuds = list(DATA_HUD_SECURITY_ADVANCED, DATA_HUD_MEDICAL_ADVANCED, DATA_HUD_DIAGNOSTIC) //list of data HUDs shown to ghosts. @@ -57,10 +58,10 @@ var/list/image/ghost_images_simple = list() //this is a list of all ghost images /mob/dead/observer/New(mob/body) verbs += /mob/dead/observer/proc/dead_tele - + if(global.cross_allowed) verbs += /mob/dead/observer/proc/server_hop - + ghostimage = image(src.icon,src,src.icon_state) if(icon_state in ghost_forms_with_directions_list) ghostimage_default = image(src.icon,src,src.icon_state + "_nodir") @@ -89,10 +90,10 @@ var/list/image/ghost_images_simple = list() //this is a list of all ghost images mind = body.mind //we don't transfer the mind but we keep a reference to it. if(ishuman(body)) var/mob/living/carbon/human/body_human = body - if(HAIR in body_human.dna.species.specflags) + if(HAIR in body_human.dna.species.species_traits) hair_style = body_human.hair_style hair_color = brighten_color(body_human.hair_color) - if(FACEHAIR in body_human.dna.species.specflags) + if(FACEHAIR in body_human.dna.species.species_traits) facial_hair_style = body_human.facial_hair_style facial_hair_color = brighten_color(body_human.facial_hair_color) @@ -117,11 +118,13 @@ var/list/image/ghost_images_simple = list() //this is a list of all ghost images var/old_color = color color = "#960000" animate(src, color = old_color, time = 10) + addtimer(src, "update_atom_colour", 10) /mob/dead/observer/ratvar_act() var/old_color = color color = "#FAE48C" animate(src, color = old_color, time = 10) + addtimer(src, "update_atom_colour", 10) /mob/dead/observer/Destroy() ghost_images_full -= ghostimage @@ -256,11 +259,6 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp set name = "Ghost" set desc = "Relinquish your life and enter the land of the dead." - if(mental_dominator) - src << "This body's force of will is too strong! You can't break it enough to force them into a catatonic state." - if(mind_control_holder) - mind_control_holder << "Through tremendous force of will, you stop a catatonia attempt!" - return 0 if(stat != DEAD) succumb() if(stat == DEAD) @@ -280,7 +278,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp loc = NewLoc for(var/obj/effect/step_trigger/S in NewLoc) S.Crossed(src) - + update_parallax_contents() return loc = get_turf(src) //Get out of closets and such as a ghost if((direct & NORTH) && y < world.maxy) @@ -302,11 +300,14 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp ..() if(statpanel("Status")) stat(null, "Station Time: [worldtime2text()]") - if(ticker) - if(ticker.mode) - for(var/datum/gang/G in ticker.mode.gangs) - if(G.is_dominating) - stat(null, "[G.name] Gang Takeover: [max(G.domination_time_remaining(), 0)]") + if(ticker && ticker.mode) + for(var/datum/gang/G in ticker.mode.gangs) + if(G.is_dominating) + stat(null, "[G.name] Gang Takeover: [max(G.domination_time_remaining(), 0)]") + if(istype(ticker.mode, /datum/game_mode/blob)) + var/datum/game_mode/blob/B = ticker.mode + if(B.message_sent) + stat(null, "Blobs to Blob Win: [blobs_legit.len]/[B.blobwincount]") /mob/dead/observer/verb/reenter_corpse() set category = "Ghost" @@ -336,9 +337,12 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp A.icon = ui_style2icon(client.prefs.UI_style) A.desc = message var/old_layer = source.layer + var/old_plane = source.plane source.layer = FLOAT_LAYER + source.plane = FLOAT_PLANE A.add_overlay(source) source.layer = old_layer + source.plane = old_plane src << "(Click to re-enter)" if(sound) src << sound(sound) @@ -347,7 +351,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp set category = "Ghost" set name = "Teleport" set desc= "Teleport to a location" - if(!istype(usr, /mob/dead/observer)) + if(!isobserver(usr)) usr << "Not when you're not dead!" return var/A @@ -364,6 +368,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp usr << "No area available." usr.loc = pick(L) + update_parallax_contents() /mob/dead/observer/verb/follow() set category = "Ghost" @@ -385,7 +390,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp var/orbitsize = (I.Width()+I.Height())*0.5 orbitsize -= (orbitsize/world.icon_size)*(world.icon_size*0.25) - if(orbiting != target) + if(orbiting && orbiting.orbiting != target) src << "Now orbiting [target]." var/rot_seg @@ -405,20 +410,21 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp orbit(target,orbitsize, FALSE, 20, rot_seg) /mob/dead/observer/orbit() - setDir(2 )//reset dir so the right directional sprites show up + setDir(2)//reset dir so the right directional sprites show up + ..() + +/mob/dead/observer/stop_orbit() ..() //restart our floating animation after orbit is done. - sleep 2 //orbit sets up a 2ds animation when it finishes, so we wait for that to end - if (!orbiting) //make sure another orbit hasn't started - pixel_y = 0 - animate(src, pixel_y = 2, time = 10, loop = -1) + pixel_y = 0 + animate(src, pixel_y = 2, time = 10, loop = -1) /mob/dead/observer/verb/jumptomob() //Moves the ghost instead of just changing the ghosts's eye -Nodrak set category = "Ghost" set name = "Jump to Mob" set desc = "Teleport to a mob" - if(istype(usr, /mob/dead/observer)) //Make sure they're an observer! + if(isobserver(usr)) //Make sure they're an observer! var/list/dest = list() //List of possible destinations (mobs) @@ -436,6 +442,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp if(T && isturf(T)) //Make sure the turf exists, then move the source to that destination. A.loc = T + A.update_parallax_contents() else A << "This mob is not located in the game world." @@ -490,13 +497,18 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp updateghostimages() /proc/updateallghostimages() + listclearnulls(ghost_images_full) + listclearnulls(ghost_images_default) + listclearnulls(ghost_images_simple) + listclearnulls(ghost_darkness_images) + for (var/mob/dead/observer/O in player_list) O.updateghostimages() /mob/dead/observer/proc/updateghostimages() if (!client) return - + if(lastsetting) switch(lastsetting) //checks the setting we last came from, for a little efficiency so we don't try to delete images from the client that it doesn't have anyway if(GHOST_OTHERS_THEIR_SETTING) @@ -543,7 +555,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp if(!target) return 0 - if(istype (target, /mob/living/simple_animal/hostile/megafauna)) + if(ismegafauna(target)) src << "This creature is too powerful for you to possess!" return 0 @@ -555,6 +567,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp return 0 target.key = key + target.faction = list("neutral") return 1 /mob/dead/observer/proc/server_hop() @@ -563,7 +576,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp set desc= "Jump to the other server" if (alert(src, "Jump to server running at [global.cross_address]?", "Server Hop", "Yes", "No") != "Yes") return 0 - if (client && global.cross_allowed) + if (client && global.cross_allowed) src << "Sending you to [global.cross_address]." winset(src, null, "command=.options") //other wise the user never knows if byond is downloading resources client << link(global.cross_address) @@ -656,10 +669,10 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp if(client.prefs.be_random_body) client.prefs.random_character(gender) - if(HAIR in client.prefs.pref_species.specflags) + if(HAIR in client.prefs.pref_species.species_traits) hair_style = client.prefs.hair_style hair_color = brighten_color(client.prefs.hair_color) - if(FACEHAIR in client.prefs.pref_species.specflags) + if(FACEHAIR in client.prefs.pref_species.species_traits) facial_hair_style = client.prefs.facial_hair_style facial_hair_color = brighten_color(client.prefs.facial_hair_color) @@ -673,7 +686,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp /mob/dead/observer/is_literate() return 1 -/mob/dead/observer/on_varedit(var_name) +/mob/dead/observer/vv_edit_var(var_name, var_value) . = ..() switch(var_name) if("icon") @@ -691,3 +704,56 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp else verbs -= /mob/dead/observer/verb/boo verbs -= /mob/dead/observer/verb/possess + +/mob/dead/observer/reset_perspective(atom/A) + if(client) + if(ismob(client.eye) && (client.eye != src)) + var/mob/target = client.eye + observetarget = null + if(target.observers) + target.observers -= src + UNSETEMPTY(target.observers) + if(..()) + if(hud_used) + client.screen = list() + hud_used.show_hud(hud_used.hud_version) + +/mob/dead/observer/verb/observe() + set name = "Observe" + set category = "OOC" + + var/list/creatures = getpois() + + reset_perspective(null) + + var/eye_name = null + + eye_name = input("Please, select a player!", "Observe", null, null) as null|anything in creatures + + if (!eye_name) + return + + var/mob/mob_eye = creatures[eye_name] + //Istype so we filter out points of interest that are not mobs + if(client && mob_eye && istype(mob_eye)) + client.eye = mob_eye + client.screen = list() + if(mob_eye.hud_used) + LAZYINITLIST(mob_eye.observers) + mob_eye.observers |= src + mob_eye.hud_used.show_hud(1,src) + observetarget = mob_eye + +/mob/dead/observer/verb/register_pai_candidate() + set category = "Ghost" + set name = "pAI Setup" + set desc = "Upload a fragment of your personality to the global pAI databanks" + + register_pai() + +/mob/dead/observer/proc/register_pai() + if(istype(src, /mob/dead/observer)) + if(SSpai) + SSpai.recruitWindow(src) + else + usr << "Can't become a pAI candidate while not dead!" diff --git a/code/modules/mob/dead/observer/say.dm b/code/modules/mob/dead/observer/say.dm index 5a2a785bc2..6ec0224508 100644 --- a/code/modules/mob/dead/observer/say.dm +++ b/code/modules/mob/dead/observer/say.dm @@ -6,25 +6,13 @@ log_say("Ghost/[src.key] : [message]") - if(jobban_isbanned(src, "OOC")) - src << "You have been banned from deadchat." - return - - if (src.client) - if(src.client.prefs.muted & MUTE_DEADCHAT) - src << "You cannot talk in deadchat (muted)." - return - - if (src.client.handle_spam_prevention(message,MUTE_DEADCHAT)) - return - . = src.say_dead(message) /mob/dead/observer/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, list/spans) if(radio_freq) var/atom/movable/virtualspeaker/V = speaker - if(istype(V.source, /mob/living/silicon/ai)) + if(isAI(V.source)) var/mob/living/silicon/ai/S = V.source speaker = S.eyeobj else diff --git a/code/modules/mob/interactive.dm b/code/modules/mob/interactive.dm index 74b86a0b79..dd43d3b90b 100644 --- a/code/modules/mob/interactive.dm +++ b/code/modules/mob/interactive.dm @@ -72,6 +72,9 @@ var/forceProcess = 0 var/processTime = 8 var/lastProc = 0 + var/walkdebug = 0 //causes sparks in our path target. used for debugging + var/debugexamine = 0 //If we show debug info in our examine + var/showexaminetext = 1 //If we show our telltale examine text var/list/knownStrings = list() @@ -136,13 +139,14 @@ retal = 1 retal_target = user -/mob/living/carbon/human/interactive/bullet_act(var/obj/item/projectile/P) +/mob/living/carbon/human/interactive/bullet_act(obj/item/projectile/P, def_zone) var/potentialAssault = locate(/mob/living) in view(2,P.starting) if(potentialAssault) retal = 1 retal_target = potentialAssault ..() + /client/proc/resetSNPC(var/mob/A in SSnpc.botPool_l) set name = "Reset SNPC" set desc = "Reset the SNPC" @@ -295,11 +299,9 @@ for(var/X in bodyparts) var/obj/item/bodypart/BP = X if(prob((FUZZY_CHANCE_LOW+FUZZY_CHANCE_HIGH)/4)) - BP.change_bodypart_status(ORGAN_ROBOTIC) + BP.change_bodypart_status(BODYPART_ROBOTIC) update_icons() - update_damage_overlays(0) - - hand = 0 + update_damage_overlays() functions = list("nearbyscan","combat","shitcurity","chatter") // stop customize adding multiple copies of a function //job specific favours switch(myjob.title) @@ -374,8 +376,8 @@ var/datum/objective_item/steal/S = new A traitorTarget = locate(S.targetitem) in world if(SNPC_MARTYR) // MY LIFE FOR SPESZUL - var/targetType = pick(/obj/structure/particle_accelerator,/obj/machinery/gravity_generator/main,/obj/machinery/power/smes) - traitorTarget = locate(targetType) in world + var/targetType = pick(/obj/machinery/gravity_generator/main/station,/obj/machinery/power/smes/engineering,/obj/machinery/telecomms/hub) + traitorTarget = locate(targetType) in machines if(SNPC_PSYCHO) // YOU'RE LIKE A FLESH BICYLE AND I WANT TO DISMANTLE YOU traitorTarget = null @@ -409,9 +411,9 @@ var/mob/living/carbon/human/M = target if(target) if(health > 0) - if(M.a_intent == "help") + if(M.a_intent == INTENT_HELP) chatter() - if(M.a_intent == "harm") + if(M.a_intent == INTENT_HARM) retal = 1 retal_target = target @@ -423,10 +425,6 @@ if(C) retalTarget(C) -/mob/living/carbon/human/interactive/bullet_act(obj/item/projectile/P, def_zone) - ..(P,def_zone) - retalTarget(P.firer) - /mob/living/carbon/human/interactive/attack_hand(mob/living/carbon/human/M) ..(M) retalTarget(M) @@ -490,28 +488,35 @@ if(other_hand) if(other_hand.loc != src) other_hand = null - if(hand) - if(!l_hand) + + var/obj/item/L = get_item_for_held_index(1) //just going to hardcode SNPCs to 2 hands, for now. + var/obj/item/R = get_item_for_held_index(2) //they're just VERY assume-y about 2 hands. + if(active_hand_index == 1) + if(!L) main_hand = null - if(r_hand) + if(R) swap_hands() else - if(!r_hand) + if(!R) main_hand = null - if(l_hand) + if(L) swap_hands() + /mob/living/carbon/human/interactive/proc/swap_hands() - hand = !hand - var/obj/item/T = other_hand - main_hand = other_hand - other_hand = T + var/oindex = active_hand_index + if(active_hand_index == 1) + active_hand_index = 2 + else + active_hand_index = 1 + main_hand = get_active_held_item() + other_hand = get_item_for_held_index(oindex) update_hands = 1 /mob/living/carbon/human/interactive/proc/take_to_slot(obj/item/G, var/hands=0) - var/list/slots = list ("left pocket" = slot_l_store,"right pocket" = slot_r_store,"left hand" = slot_l_hand,"right hand" = slot_r_hand) + var/list/slots = list ("left pocket" = slot_l_store,"right pocket" = slot_r_store,"left hand" = slot_hands,"right hand" = slot_hands) if(hands) - slots = list ("left hand" = slot_l_hand,"right hand" = slot_r_hand) + slots = list ("left hand" = slot_hands,"right hand" = slot_hands) G.loc = src if(G.force && G.force > best_force) best_force = G.force @@ -519,7 +524,7 @@ update_hands = 1 /mob/living/carbon/human/interactive/proc/insert_into_backpack() - var/list/slots = list ("left pocket" = slot_l_store,"right pocket" = slot_r_store,"left hand" = slot_l_hand,"right hand" = slot_r_hand) + var/list/slots = list ("left pocket" = slot_l_store,"right pocket" = slot_r_store,"left hand" = slot_hands,"right hand" = slot_hands) var/obj/item/I = get_item_by_slot(pick(slots)) var/obj/item/weapon/storage/BP = get_item_by_slot(slot_back) if(back && BP && I) @@ -603,14 +608,16 @@ D.open() if(update_hands) + var/obj/item/l_hand = get_item_for_held_index(1) + var/obj/item/r_hand = get_item_for_held_index(2) if(l_hand || r_hand) if(l_hand) - hand = 1 + active_hand_index = 1 main_hand = l_hand if(r_hand) other_hand = r_hand else if(r_hand) - hand = 0 + active_hand_index = 2 main_hand = r_hand if(l_hand) //this technically shouldnt occur, but its a redundancy other_hand = l_hand @@ -619,7 +626,7 @@ if(pulledby) if(Adjacent(pulledby)) - a_intent = "disarm" + a_intent = INTENT_DISARM pulledby.attack_hand(src) inactivity_period = 10 @@ -658,12 +665,12 @@ if(istype(TARGET, /obj/item/weapon)) var/obj/item/weapon/W = TARGET if(W.force >= best_force || prob((FUZZY_CHANCE_LOW+FUZZY_CHANCE_HIGH)/2)) - if(!l_hand || !r_hand) + if(!get_item_for_held_index(1) || !get_item_for_held_index(2)) put_in_hands(W) else insert_into_backpack() else - if(!l_hand || !r_hand) + if(!get_item_for_held_index(1) || !get_item_for_held_index(2)) put_in_hands(TARGET) else insert_into_backpack() @@ -753,8 +760,8 @@ spawn(0) call(src,Proc)(src) -/mob/living/carbon/human/interactive/proc/tryWalk(turf/inTarget) - if(restrictedJob) // we're a job that has to stay in our home +/mob/living/carbon/human/interactive/proc/tryWalk(turf/inTarget, override = 0) + if(restrictedJob && !override) // we're a job that has to stay in our home if(!(get_turf(inTarget) in get_area_turfs(job2area(myjob)))) TARGET = null return @@ -796,6 +803,13 @@ if(!target) return 0 + if(walkdebug) + var/datum/effect_system/spark_spread/spark_system = new /datum/effect_system/spark_spread + spark_system.set_up(5, 0, target) + spark_system.attach(target) + spark_system.start() + + if(myPath.len <= 0) myPath = get_path_to(src, get_turf(target), /turf/proc/Distance, MAX_RANGE_FIND + 1, 250,1, id=Path_ID) @@ -1065,27 +1079,27 @@ if(change) HP.attackby(internalBeaker,src) - var/obj/item/weapon/reagent_containers/food/snacks/grown/GF = locate(/obj/item/weapon/reagent_containers/food/snacks/grown) in view(12,src) - if(GF) - if(!Adjacent(GF)) - tryWalk(get_turf(GF)) - else - GF.attackby(internalBag,src) + var/obj/item/weapon/reagent_containers/food/snacks/grown/GF = locate(/obj/item/weapon/reagent_containers/food/snacks/grown) in view(12,src) + if(GF) + if(!Adjacent(GF)) + tryWalk(get_turf(GF)) + else + GF.attackby(internalBag,src) - if(internalBag.contents.len > 0) - var/obj/machinery/smartfridge/SF = locate(/obj/machinery/smartfridge) in range(12,src) - if(!Adjacent(SF)) - tryWalk(get_turf(SF)) - else - customEmote("[src] [pick("gibbers","drools","slobbers","claps wildly","spits")], upending the [internalBag]'s contents all over the [SF]!") - //smartfridges call updateUsrDialog when you call attackby, so we're going to have to cheese-magic-space this - for(var/obj/toLoad in internalBag.contents) - if(contents.len >= SF.max_n_of_items) - break - if(SF.accept_check(toLoad)) - SF.load(toLoad) - else - qdel(toLoad) // destroy everything we dont need + if(internalBag.contents.len > 0) + var/obj/machinery/smartfridge/SF = locate(/obj/machinery/smartfridge) in range(12,src) + if(!Adjacent(SF)) + tryWalk(get_turf(SF), 1) + else + customEmote("[src] [pick("gibbers","drools","slobbers","claps wildly","spits")], upending the [internalBag]'s contents all over the [SF]!") + //smartfridges call updateUsrDialog when you call attackby, so we're going to have to cheese-magic-space this + for(var/obj/toLoad in internalBag.contents) + if(contents.len >= SF.max_n_of_items) + break + if(SF.accept_check(toLoad)) + SF.load(toLoad) + else + qdel(toLoad) // destroy everything we dont need /mob/living/carbon/human/interactive/proc/bartend(obj) if(shouldModulePass()) @@ -1144,11 +1158,11 @@ var/mob/living/carbon/human/clownTarget var/list/clownPriority = list() - var/obj/item/weapon/reagent_containers/spray/S - if(!locate(/obj/item/weapon/reagent_containers/spray) in allContents) - new/obj/item/weapon/reagent_containers/spray(src) - else - S = locate(/obj/item/weapon/reagent_containers/spray) in allContents + var/obj/item/weapon/reagent_containers/spray/S = locate(/obj/item/weapon/reagent_containers/spray) in allContents + + if(!S) + S = new/obj/item/weapon/reagent_containers/spray(src) + S.amount_per_transfer_from_this = 10 for(var/mob/living/carbon/human/C in rangeCheck) var/pranksNearby = 100 @@ -1211,27 +1225,25 @@ if(shouldTryHeal == 1) for(var/mob/living/carbon/human/C in nearby) - if(istype(C,/mob/living/carbon/human)) //I haven't the foggiest clue why this is turning up non-carbons but sure here whatever - if(C.health <= 75) - if(get_dist(src,C) <= 2) - src.say("Wait, [C], let me heal you!") - M.attack(C,src) - sleep(25) - else - tryWalk(get_turf(C)) + if(C.health <= 75) + if(get_dist(src,C) <= 2) + src.say("Wait, [C], let me heal you!") + M.attack(C,src) + sleep(25) + else + tryWalk(get_turf(C)) else if(shouldTryHeal == 2) if(HPS) if(HPS.reagents.total_volume <= 0) HPS.reagents.add_reagent("tricordrazine",30) for(var/mob/living/carbon/human/C in nearby) - if(istype(C,/mob/living/carbon/human)) - if(C.health <= 75 && C.reagents.get_reagent_amount("tricordrazine") <= 0) // make sure they wont be overdosing - if(get_dist(src,C) <= 2) - src.say("Wait, [C], let me heal you!") - HPS.attack(C,src) - sleep(25) - else - tryWalk(get_turf(C)) + if(C.health <= 75 && C.reagents.get_reagent_amount("tricordrazine") <= 0) // make sure they wont be overdosing + if(get_dist(src,C) <= 2) + src.say("Wait, [C], let me heal you!") + HPS.attack(C,src) + sleep(25) + else + tryWalk(get_turf(C)) /mob/living/carbon/human/interactive/proc/dojanitor(obj) @@ -1260,8 +1272,7 @@ sleep(25) /mob/living/carbon/human/interactive/proc/customEmote(var/text) - for(var/mob/living/carbon/M in view(src)) - M.show_message("[text]", 2) + visible_message("[text]") // START COOKING MODULE /mob/living/carbon/human/interactive/proc/cookingwithmagic(var/obj/item/weapon/reagent_containers/food/snacks/target) @@ -1318,7 +1329,7 @@ if(SF) if(SF.contents.len > 0) if(!Adjacent(SF)) - tryWalk(get_turf(SF)) + tryWalk(get_turf(SF),1) else customEmote("[src] [pick("gibbers","drools","slobbers","claps wildly","spits")], grabbing various foodstuffs from [SF] and sticking them in it's mouth!") for(var/obj/item/A in SF.contents) @@ -1458,7 +1469,7 @@ if(canmove) if((graytide || (TRAITS & TRAIT_MEAN)) || retal) interest += targetInterestShift - a_intent = "harm" + a_intent = INTENT_HARM zone_selected = pick("chest","r_leg","l_leg","r_arm","l_arm","head") doing |= FIGHTING if(retal) @@ -1509,7 +1520,7 @@ if((TARGET && (doing & FIGHTING))) // this is a redundancy check var/mob/living/M = TARGET - if(istype(M,/mob/living)) + if(isliving(M)) if(M.health > 1) //THROWING OBJECTS for(var/A in allContents) @@ -1536,8 +1547,8 @@ if(istype(main_hand,/obj/item/weapon/gun)) var/obj/item/weapon/gun/G = main_hand if(G.can_trigger_gun(src)) - if(istype(main_hand,/obj/item/weapon/gun/projectile)) - var/obj/item/weapon/gun/projectile/P = main_hand + if(istype(main_hand,/obj/item/weapon/gun/ballistic)) + var/obj/item/weapon/gun/ballistic/P = main_hand if(!P.chambered) P.chamber_round() P.update_icon() @@ -1578,7 +1589,7 @@ tryWalk(TARGET) else if(Adjacent(TARGET)) - a_intent = pick("disarm","harm") + a_intent = pick(INTENT_DISARM, INTENT_HARM) M.attack_hand(src) timeout++ else if(timeout >= 10 || !(targetRange(M) > 14)) @@ -1622,3 +1633,11 @@ faction += "bot_grey" graytide = 1 ..() + +//Walk softly and carry a big stick +/mob/living/carbon/human/interactive/robust/New() + TRAITS |= TRAIT_FRIENDLY + TRAITS |= TRAIT_ROBUST + TRAITS |= TRAIT_SMART + faction += "bot_power" + ..() diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm index 75ead02f66..81348d5292 100644 --- a/code/modules/mob/inventory.dm +++ b/code/modules/mob/inventory.dm @@ -1,278 +1,369 @@ -//These procs handle putting s tuff in your hand. It's probably best to use these rather than setting l_hand = ...etc +//These procs handle putting s tuff in your hands //as they handle all relevant stuff like adding it to the player's screen and updating their overlays. -//Returns the thing in our active hand -/mob/proc/get_active_hand() - if(hand) - return l_hand - else - return r_hand +//Returns the thing we're currently holding +/mob/proc/get_active_held_item() + return get_item_for_held_index(active_hand_index) -//Returns the thing in our inactive hand -/mob/proc/get_inactive_hand() - if(hand) - return r_hand +//Finds the opposite limb for the active one (eg: upper left arm will find the item in upper right arm) +//So we're treating each "pair" of limbs as a team, so "both" refers to them +/mob/proc/get_inactive_held_item() + return get_item_for_held_index(get_inactive_hand_index()) + + +//Finds the opposite index for the active one (eg: upper left arm will find the item in upper right arm) +//So we're treating each "pair" of limbs as a team, so "both" refers to them +/mob/proc/get_inactive_hand_index() + var/other_hand = 0 + if(!(active_hand_index % 2)) + other_hand = active_hand_index-1 //finding the matching "left" limb else - return l_hand + other_hand = active_hand_index+1 //finding the matching "right" limb + if(other_hand < 0 || other_hand > held_items.len) + other_hand = 0 + return other_hand + + +/mob/proc/get_item_for_held_index(i) + if(i > 0 && i <= held_items.len) + return held_items[i] + return FALSE + + +//Odd = left. Even = right +/mob/proc/held_index_to_dir(i) + if(!(i % 2)) + return "r" + return "l" + + +//Check we have an organ for this hand slot (Dismemberment), Only relevant for humans +/mob/proc/has_hand_for_held_index(i) + return TRUE + + +//Check we have an organ for our active hand slot (Dismemberment),Only relevant for humans +/mob/proc/has_active_hand() + return has_hand_for_held_index(active_hand_index) + + +//Finds the first available (null) index OR all available (null) indexes in held_items based on a side. +//Lefts: 1, 3, 5, 7... +//Rights:2, 4, 6, 8... +/mob/proc/get_empty_held_index_for_side(side = "left", all = FALSE) + var/start = 0 + var/static/list/lefts = list("l" = TRUE,"L" = TRUE,"LEFT" = TRUE,"left" = TRUE) + var/static/list/rights = list("r" = TRUE,"R" = TRUE,"RIGHT" = TRUE,"right" = TRUE) //"to remain silent" + if(lefts[side]) + start = 1 + else if(rights[side]) + start = 2 + if(!start) + return FALSE + var/list/empty_indexes + for(var/i in start to held_items.len step 2) + if(!held_items[i]) + if(!all) + return i + if(!empty_indexes) + empty_indexes = list() + empty_indexes += i + return empty_indexes + + +//Same as the above, but returns the first or ALL held *ITEMS* for the side +/mob/proc/get_held_items_for_side(side = "left", all = FALSE) + var/start = 0 + var/static/list/lefts = list("l" = TRUE,"L" = TRUE,"LEFT" = TRUE,"left" = TRUE) + var/static/list/rights = list("r" = TRUE,"R" = TRUE,"RIGHT" = TRUE,"right" = TRUE) //"to remain silent" + if(lefts[side]) + start = 1 + else if(rights[side]) + start = 2 + if(!start) + return FALSE + var/list/holding_items + for(var/i in start to held_items.len step 2) + var/obj/item/I = held_items[i] + if(I) + if(!all) + return I + if(!holding_items) + holding_items = list() + holding_items += I + return holding_items + + +/mob/proc/get_empty_held_indexes() + var/list/L + for(var/i in 1 to held_items.len) + if(!held_items[i]) + if(!L) + L = list() + L += i + return L + +/mob/proc/get_held_index_of_item(obj/item/I) + return held_items.Find(I) + + +//Sad that this will cause some overhead, but the alias seems necessary +//*I* may be happy with a million and one references to "indexes" but others won't be +/mob/proc/is_holding(obj/item/I) + return get_held_index_of_item(I) + + +//Checks if we're holding an item of type: typepath +/mob/proc/is_holding_item_of_type(typepath) + for(var/obj/item/I in held_items) + if(istype(I, typepath)) + return I + return FALSE + + +//To appropriately fluff things like "they are holding [I] in their [get_held_index_name(get_held_index_of_item(I))]" +//Can be overriden to pass off the fluff to something else (eg: science allowing people to add extra robotic limbs, and having this proc react to that +// with say "they are holding [I] in their Nanotrasen Brand Utility Arm - Right Edition" or w/e +/mob/proc/get_held_index_name(i) + var/list/hand = list() + if(i > 2) + hand += "upper " + var/num = 0 + if(!(i % 2)) + num = i-2 + hand += "right hand" + else + num = i-1 + hand += "left hand" + num -= (num*0.5) + if(num > 1) //"upper left hand #1" seems weird, but "upper left hand #2" is A-ok + hand += " #[num]" + return hand.Join() + //Returns if a certain item can be equipped to a certain slot. // Currently invalid for two-handed items - call obj/item/mob_can_equip() instead. /mob/proc/can_equip(obj/item/I, slot, disable_warning = 0) - return 0 - -//Puts the item into your l_hand if possible and calls all necessary triggers/updates. returns 1 on success. -/mob/proc/put_in_l_hand(obj/item/W) - if(!put_in_hand_check(W)) - return 0 - if(!has_left_hand()) - return 0 - if(!l_hand) - var/atom/old_loc = W.loc - W.loc = src //TODO: move to equipped? - W.Moved(old_loc, 0) // MSO told me to do this! - l_hand = W - W.layer = ABOVE_HUD_LAYER //TODO: move to equipped? - W.equipped(src,slot_l_hand) - if(W.pulledby) - W.pulledby.stop_pulling() - update_inv_l_hand() - W.pixel_x = initial(W.pixel_x) - W.pixel_y = initial(W.pixel_y) - return 1 - return 0 + return FALSE -//Puts the item into your r_hand if possible and calls all necessary triggers/updates. returns 1 on success. -/mob/proc/put_in_r_hand(obj/item/W) - if(!put_in_hand_check(W)) - return 0 - if(!has_right_hand()) - return 0 - if(!r_hand) - var/atom/old_loc = W.loc - W.loc = src - W.Moved(old_loc, 0) // MSO told me to do this! - r_hand = W - W.layer = ABOVE_HUD_LAYER - W.equipped(src,slot_r_hand) - if(W.pulledby) - W.pulledby.stop_pulling() - update_inv_r_hand() - W.pixel_x = initial(W.pixel_x) - W.pixel_y = initial(W.pixel_y) - return 1 - return 0 - -/mob/proc/put_in_hand_check(obj/item/W) - if(lying && !(W.flags&ABSTRACT)) - return 0 - if(!istype(W)) - return 0 - return 1 - -//Puts the item into our active hand if possible. returns 1 on success. -/mob/proc/put_in_active_hand(obj/item/W) - if(hand) - return put_in_l_hand(W) - else - return put_in_r_hand(W) +/mob/proc/put_in_hand(obj/item/I, hand_index) + if(!put_in_hand_check(I)) + return FALSE + if(!has_hand_for_held_index(hand_index)) + return FALSE + var/obj/item/curr = held_items[hand_index] + if(!curr) + I.loc = src + held_items[hand_index] = I + I.layer = ABOVE_HUD_LAYER + I.plane = ABOVE_HUD_PLANE + I.equipped(src, slot_hands) + if(I.pulledby) + I.pulledby.stop_pulling() + update_inv_hands() + I.pixel_x = initial(I.pixel_x) + I.pixel_y = initial(I.pixel_y) + return hand_index || TRUE + return FALSE -//Puts the item into our inactive hand if possible. returns 1 on success. -/mob/proc/put_in_inactive_hand(obj/item/W) - if(hand) - return put_in_r_hand(W) - else - return put_in_l_hand(W) +//Puts the item into the first available left hand if possible and calls all necessary triggers/updates. returns 1 on success. +/mob/proc/put_in_l_hand(obj/item/I) + return put_in_hand(I, get_empty_held_index_for_side("l")) -//Puts the item our active hand if possible. Failing that it tries our inactive hand. Returns 1 on success. -//If both fail it drops it on the floor and returns 0. +//Puts the item into the first available right hand if possible and calls all necessary triggers/updates. returns 1 on success. +/mob/proc/put_in_r_hand(obj/item/I) + return put_in_hand(I, get_empty_held_index_for_side("r")) + + +/mob/proc/put_in_hand_check(obj/item/I) + if(lying && !(I.flags&ABSTRACT)) + return FALSE + if(!istype(I)) + return FALSE + return TRUE + + +//Puts the item into our active hand if possible. returns TRUE on success. +/mob/proc/put_in_active_hand(obj/item/I) + return put_in_hand(I, active_hand_index) + + +//Puts the item into our inactive hand if possible, returns TRUE on success +/mob/proc/put_in_inactive_hand(obj/item/I) + return put_in_hand(I, get_inactive_hand_index()) + + +//Puts the item our active hand if possible. Failing that it tries other hands. Returns TRUE on success. +//If both fail it drops it on the floor and returns FALSE. //This is probably the main one you need to know :) -/mob/proc/put_in_hands(obj/item/W) - if(!W) - return 0 - if(put_in_active_hand(W)) - return 1 - else if(put_in_inactive_hand(W)) - return 1 - else - var/atom/old_loc = W.loc - W.loc = get_turf(src) - W.Moved(old_loc, 0) // MSO told me to do this! - W.layer = initial(W.layer) - W.dropped(src) - return 0 +/mob/proc/put_in_hands(obj/item/I, del_on_fail = FALSE) + if(!I) + return FALSE + if(put_in_active_hand(I)) + return TRUE + var/hand = get_empty_held_index_for_side("l") + if(!hand) + hand = get_empty_held_index_for_side("r") + if(hand) + if(put_in_hand(I, hand)) + return TRUE + if(del_on_fail) + qdel(I) + return FALSE + I.forceMove(get_turf(src)) + I.layer = initial(I.layer) + I.plane = initial(I.plane) + I.dropped(src) + return FALSE + + +/mob/proc/put_in_hands_or_del(obj/item/I) + return put_in_hands(I, TRUE) /mob/proc/drop_item_v() //this is dumb. if(stat == CONSCIOUS && isturf(loc)) return drop_item() - return 0 + return FALSE -//Drops the item in our left hand -/mob/proc/drop_l_hand() +/mob/proc/drop_all_held_items() if(!loc || !loc.allow_drop()) return - return unEquip(l_hand) //All needed checks are in unEquip - - -//Drops the item in our right hand -/mob/proc/drop_r_hand() - if(!loc || !loc.allow_drop()) - return - return unEquip(r_hand) - + for(var/obj/item/I in held_items) + unEquip(I) //Drops the item in our active hand. /mob/proc/drop_item() - if(hand) - return drop_l_hand() - else - return drop_r_hand() + if(!loc || !loc.allow_drop()) + return + var/obj/item/held = get_active_held_item() + return unEquip(held) //Here lie drop_from_inventory and before_item_take, already forgotten and not missed. - /mob/proc/canUnEquip(obj/item/I, force) if(!I) - return 1 + return TRUE if((I.flags & NODROP) && !force) - return 0 - return 1 + return FALSE + return TRUE /mob/proc/unEquip(obj/item/I, force) //Force overrides NODROP for things like wizarditis and admin undress. if(!I) //If there's nothing to drop, the drop is automatically succesfull. If(unEquip) should generally be used to check for NODROP. - return 1 + return TRUE if((I.flags & NODROP) && !force) - return 0 - - if(I == r_hand) - r_hand = null - update_inv_r_hand() - else if(I == l_hand) - l_hand = null - update_inv_l_hand() + return FALSE + var/hand_index = get_held_index_of_item(I) + if(hand_index) + held_items[hand_index] = null + update_inv_hands() if(I) if(client) client.screen -= I - I.loc = loc - I.Moved(src, 0) // MSO told me to do this! + I.layer = initial(I.layer) + I.plane = initial(I.plane) + I.appearance_flags &= ~NO_CLIENT_COLOR + I.forceMove(loc) I.dropped(src) - if(I) - I.layer = initial(I.layer) - return 1 + return TRUE //Attemps to remove an object on a mob. Will not move it to another area or such, just removes from the mob. -/mob/proc/remove_from_mob(var/obj/O) - unEquip(O) - O.screen_loc = null - return 1 +/mob/proc/remove_from_mob(var/obj/item/I) + unEquip(I) + I.screen_loc = null + return TRUE //Outdated but still in use apparently. This should at least be a human proc. -/mob/proc/get_equipped_items() - var/list/items = new/list() +//Daily reminder to murder this - Remie. +/mob/living/proc/get_equipped_items() + return - if(hasvar(src,"back")) - if(src:back) - items += src:back - if(hasvar(src,"belt")) - if(src:belt) - items += src:belt - if(hasvar(src,"ears")) - if(src:ears) - items += src:ears - if(hasvar(src,"glasses")) - if(src:glasses) - items += src:glasses - if(hasvar(src,"gloves")) - if(src:gloves) - items += src:gloves - if(hasvar(src,"head")) - if(src:head) - items += src:head - if(hasvar(src,"shoes")) - if(src:shoes) - items += src:shoes - if(hasvar(src,"wear_id")) - if(src:wear_id) - items += src:wear_id - if(hasvar(src,"wear_mask")) - if(src:wear_mask) - items += src:wear_mask - if(hasvar(src,"wear_suit")) - if(src:wear_suit) - items += src:wear_suit -/* if(hasvar(src,"w_radio")) - if(src:w_radio) - items += src:w_radio commenting this out since headsets go on your ears now PLEASE DON'T BE MAD KEELIN */ - if(hasvar(src,"w_uniform")) - if(src:w_uniform) - items += src:w_uniform - -/* if(hasvar(src,"l_hand")) - if(src:l_hand) - items += src:l_hand - if(hasvar(src,"r_hand")) - if(src:r_hand) - items += src:r_hand*/ +/mob/living/carbon/get_equipped_items() + var/list/items = list() + if(back) + items += back + if(head) + items += head + if(wear_mask) + items += wear_mask + if(wear_neck) + items += wear_neck + return items +/mob/living/carbon/human/get_equipped_items() + var/list/items = ..() + if(belt) + items += belt + if(ears) + items += ears + if(glasses) + items += glasses + if(gloves) + items += gloves + if(shoes) + items += shoes + if(wear_id) + items += wear_id + if(wear_suit) + items += wear_suit + if(w_uniform) + items += w_uniform return items + /obj/item/proc/equip_to_best_slot(var/mob/M) - if(src != M.get_active_hand()) + if(src != M.get_active_held_item()) M << "You are not holding anything to equip!" - return 0 + return FALSE if(M.equip_to_appropriate_slot(src)) - if(M.hand) - M.update_inv_l_hand() - else - M.update_inv_r_hand() - return 1 + M.update_inv_hands() + return TRUE if(M.s_active && M.s_active.can_be_inserted(src,1)) //if storage active insert there M.s_active.handle_item_insertion(src) - return 1 + return TRUE - var/obj/item/weapon/storage/S = M.get_inactive_hand() + var/obj/item/weapon/storage/S = M.get_inactive_held_item() if(istype(S) && S.can_be_inserted(src,1)) //see if we have box in other hand S.handle_item_insertion(src) - return 1 + return TRUE S = M.get_item_by_slot(slot_belt) if(istype(S) && S.can_be_inserted(src,1)) //else we put in belt S.handle_item_insertion(src) - return 1 + return TRUE - S = M.get_item_by_slot(slot_drone_storage) //else we put in whatever is in drone storage + S = M.get_item_by_slot(slot_generic_dextrous_storage) //else we put in whatever is in drone storage if(istype(S) && S.can_be_inserted(src,1)) S.handle_item_insertion(src) S = M.get_item_by_slot(slot_back) //else we put in backpack if(istype(S) && S.can_be_inserted(src,1)) S.handle_item_insertion(src) - playsound(src.loc, "rustle", 50, 1, -5) - return 1 + return TRUE M << "You are unable to equip that!" - return 0 + return FALSE /mob/verb/quick_equip() set name = "quick-equip" set hidden = 1 - var/obj/item/I = get_active_hand() + var/obj/item/I = get_active_held_item() if (I) I.equip_to_best_slot(src) @@ -282,3 +373,46 @@ /mob/proc/getBeltSlot() return slot_belt + + + +//Inventory.dm is -kind of- an ok place for this I guess + +//This is NOT for dismemberment, as the user still technically has 2 "hands" +//This is for multi-handed mobs, such as a human with a third limb installed +//This is a very rare proc to call (besides admin fuckery) so +//any cost it has isn't a worry +/mob/proc/change_number_of_hands(amt) + if(amt < held_items.len) + for(var/i in held_items.len to amt step -1) + unEquip(held_items[i]) + held_items.len = amt + + if(hud_used) + var/style + if(client && client.prefs) + style = ui_style2icon(client.prefs.UI_style) + hud_used.build_hand_slots(style) + + +/mob/living/carbon/human/change_number_of_hands(amt) + var/old_limbs = held_items.len + if(amt < old_limbs) + for(var/i in hand_bodyparts.len to amt step -1) + var/obj/item/bodypart/BP = hand_bodyparts[i] + BP.dismember() + hand_bodyparts[i] = null + hand_bodyparts.len = amt + else if(amt > old_limbs) + hand_bodyparts.len = amt + for(var/i in old_limbs+1 to amt) + var/path = /obj/item/bodypart/l_arm + if(!(i % 2)) + path = /obj/item/bodypart/r_arm + + var/obj/item/bodypart/BP = new path () + BP.owner = src + BP.held_index = i + bodyparts += BP + hand_bodyparts[i] = BP + ..() //Don't redraw hands until we have organs for them diff --git a/code/modules/mob/living/blood.dm b/code/modules/mob/living/blood.dm index f4c425d912..73ae98b59d 100644 --- a/code/modules/mob/living/blood.dm +++ b/code/modules/mob/living/blood.dm @@ -22,7 +22,7 @@ // Takes care blood loss and regeneration /mob/living/carbon/human/handle_blood() - if(NOBLOOD in dna.species.specflags) + if(NOBLOOD in dna.species.species_traits) bleed_rate = 0 return @@ -86,7 +86,7 @@ add_splatter_floor(src.loc, 1) /mob/living/carbon/human/bleed(amt) - if(!(NOBLOOD in dna.species.specflags)) + if(!(NOBLOOD in dna.species.species_traits)) ..() @@ -162,8 +162,13 @@ blood_data["trace_chem"] = list2params(temp_chem) if(mind) blood_data["mind"] = mind + else if(last_mind) + blood_data["mind"] = last_mind if(ckey) blood_data["ckey"] = ckey + else if(last_mind) + blood_data["ckey"] = ckey(last_mind.key) + if(!suiciding) blood_data["cloneable"] = 1 blood_data["blood_type"] = copytext(dna.blood_type,1,0) @@ -188,7 +193,7 @@ /mob/living/carbon/human/get_blood_id() if(dna.species.exotic_blood) return dna.species.exotic_blood - else if((NOBLOOD in dna.species.specflags) || (disabilities & NOCLONE)) + else if((NOBLOOD in dna.species.species_traits) || (disabilities & NOCLONE)) return return "blood" @@ -216,70 +221,43 @@ return list("O-", "O+") if("L") return list("L") - if("X") - return list("X") //to add a splatter of blood or other mob liquid. /mob/living/proc/add_splatter_floor(turf/T, small_drip) - if(get_blood_id() != "blood" && get_blood_id() != "xblood") + if(get_blood_id() != "blood") return if(!T) T = get_turf(src) + var/list/temp_blood_DNA if(small_drip) // Only a certain number of drips (or one large splatter) can be on a given turf. - if(ishuman(src)) - var/mob/living/carbon/human/H = src - if(H.dna.species.id == "xeno") - var/obj/effect/decal/cleanable/xdrip/xdrop = locate() in T - if(xdrop) - if(xdrop.drips < 3) - xdrop.drips++ - xdrop.overlays |= pick(xdrop.random_icon_states) - xdrop.transfer_mob_blood_dna(src) - return - else - temp_blood_DNA = list() - temp_blood_DNA |= xdrop.blood_DNA.Copy() - qdel(xdrop)//the drip is replaced by a bigger splatter - else - xdrop = new(T) - xdrop.transfer_mob_blood_dna(src) - return - else - var/obj/effect/decal/cleanable/blood/drip/drop = locate() in T - if(drop) - if(drop.drips < 3) - drop.drips++ - drop.overlays |= pick(drop.random_icon_states) - drop.transfer_mob_blood_dna(src) - return - else - temp_blood_DNA = list() - temp_blood_DNA |= drop.blood_DNA.Copy() //we transfer the dna from the drip to the splatter - qdel(drop)//the drip is replaced by a bigger splatter - else - drop = new(T) + var/obj/effect/decal/cleanable/blood/drip/drop = locate() in T + if(drop) + if(drop.drips < 3) + drop.drips++ + drop.overlays |= pick(drop.random_icon_states) drop.transfer_mob_blood_dna(src) return + else + temp_blood_DNA = list() + temp_blood_DNA |= drop.blood_DNA.Copy() //we transfer the dna from the drip to the splatter + qdel(drop)//the drip is replaced by a bigger splatter + else + drop = new(T) + drop.transfer_mob_blood_dna(src) + return // Find a blood decal or create a new one. var/obj/effect/decal/cleanable/blood/B = locate() in T if(!B) - if(ishuman(src)) - var/mob/living/carbon/human/H = src - if(H.dna.species.id == "xeno") - B = new /obj/effect/decal/cleanable/xenoblood(T) - else - B = new /obj/effect/decal/cleanable/blood/splatter(T) - else - B = new /obj/effect/decal/cleanable/blood/splatter(T) + B = new /obj/effect/decal/cleanable/blood/splatter(T) B.transfer_mob_blood_dna(src) //give blood info to the blood decal. if(temp_blood_DNA) B.blood_DNA |= temp_blood_DNA /mob/living/carbon/human/add_splatter_floor(turf/T, small_drip) - if(!(NOBLOOD in dna.species.specflags)) + if(!(NOBLOOD in dna.species.species_traits)) ..() /mob/living/carbon/alien/add_splatter_floor(turf/T, small_drip) @@ -295,4 +273,4 @@ T = get_turf(src) var/obj/effect/decal/cleanable/oil/B = locate() in T.contents if(!B) - B = new(T) + B = new(T) \ No newline at end of file diff --git a/code/modules/mob/living/bloodcrawl.dm b/code/modules/mob/living/bloodcrawl.dm index 69e85dfb9a..b8553642f1 100644 --- a/code/modules/mob/living/bloodcrawl.dm +++ b/code/modules/mob/living/bloodcrawl.dm @@ -6,7 +6,7 @@ density = 0 anchored = 1 invisibility = 60 - burn_state = LAVA_PROOF + resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF /obj/effect/dummy/slaughter/relaymove(mob/user, direction) forceMove(get_step(src,direction)) @@ -27,7 +27,7 @@ /mob/living/proc/phaseout(obj/effect/decal/cleanable/B) if(iscarbon(src)) var/mob/living/carbon/C = src - if(C.l_hand || C.r_hand) + for(var/obj/item/I in C.held_items) //TODO make it toggleable to either forcedrop the items, or deny //entry when holding them // literally only an option for carbons though @@ -68,7 +68,7 @@ return // if the thing we're pulling isn't alive - if (!(istype(pullee, /mob/living))) + if (!isliving(pullee)) return var/mob/living/victim = pullee @@ -145,15 +145,14 @@ /mob/living/proc/exit_blood_effect(obj/effect/decal/cleanable/B) playsound(get_turf(src), 'sound/magic/exit_blood.ogg', 100, 1, -1) - var/oldcolor = src.color //Makes the mob have the color of the blood pool it came out of + var/newcolor = rgb(149, 10, 10) if(istype(B, /obj/effect/decal/cleanable/xenoblood)) - src.color = rgb(43, 186, 0) - else - src.color = rgb(149, 10, 10) + newcolor = rgb(43, 186, 0) + add_atom_colour(newcolor, TEMPORARY_COLOUR_PRIORITY) // but only for a few seconds spawn(30) - src.color = oldcolor + remove_atom_colour(TEMPORARY_COLOUR_PRIORITY, newcolor) /mob/living/proc/phasein(obj/effect/decal/cleanable/B) if(src.notransform) diff --git a/code/modules/mob/living/carbon/brain/MMI.dm b/code/modules/mob/living/brain/MMI.dm similarity index 83% rename from code/modules/mob/living/carbon/brain/MMI.dm rename to code/modules/mob/living/brain/MMI.dm index d56e7a1681..d709473cce 100644 --- a/code/modules/mob/living/carbon/brain/MMI.dm +++ b/code/modules/mob/living/brain/MMI.dm @@ -1,16 +1,16 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 + /obj/item/device/mmi name = "Man-Machine Interface" desc = "The Warrior's bland acronym, MMI, obscures the true horror of this monstrosity, that nevertheless has become standard-issue on Nanotrasen stations." icon = 'icons/obj/assemblies.dmi' icon_state = "mmi_empty" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL origin_tech = "biotech=2;programming=3;engineering=2" var/braintype = "Cyborg" var/obj/item/device/radio/radio = null //Let's give it a radio. var/hacked = 0 //Whether or not this is a Syndicate MMI - var/mob/living/carbon/brain/brainmob = null //The current occupant. + var/mob/living/brain/brainmob = null //The current occupant. var/mob/living/silicon/robot = null //Appears unused. var/obj/mecha = null //This does not appear to be used outside of reference in mecha.dm. var/obj/item/organ/brain/brain = null //The actual brain @@ -53,7 +53,7 @@ if(!user.unEquip(O)) return - var/mob/living/carbon/brain/B = newbrain.brainmob + var/mob/living/brain/B = newbrain.brainmob if(!B.key) B.notify_ghost_cloning("Someone has put your brain in a MMI!", source = src) visible_message("[user] sticks \a [newbrain] into \the [src].") @@ -78,12 +78,11 @@ feedback_inc("cyborg_mmis_filled",1) - return - else if(brainmob) O.attack(brainmob, user) //Oh noooeeeee - return - ..() + else + return ..() + /obj/item/device/mmi/attack_self(mob/user) if(!brain) @@ -91,23 +90,27 @@ user << "You toggle the MMI's radio system [radio.on==1 ? "on" : "off"]." else user << "You unlock and upend the MMI, spilling the brain onto the floor." - - brainmob.container = null //Reset brainmob mmi var. - brainmob.loc = brain //Throw mob into brain. - brainmob.stat = DEAD - brainmob.emp_damage = 0 - brainmob.reset_perspective() //so the brainmob follows the brain organ instead of the mmi. And to update our vision - living_mob_list -= brainmob //Get outta here - dead_mob_list += brainmob - brain.brainmob = brainmob //Set the brain to use the brainmob - brainmob = null //Set mmi brainmob var to null - - user.put_in_hands(brain) //puts brain in the user's hand or otherwise drops it on the user's turf - brain = null //No more brain in here - + eject_brain(user) update_icon() name = "Man-Machine Interface" +/obj/item/device/mmi/proc/eject_brain(mob/user) + brainmob.container = null //Reset brainmob mmi var. + brainmob.loc = brain //Throw mob into brain. + brainmob.stat = DEAD + brainmob.emp_damage = 0 + brainmob.reset_perspective() //so the brainmob follows the brain organ instead of the mmi. And to update our vision + living_mob_list -= brainmob //Get outta here + dead_mob_list += brainmob + brain.brainmob = brainmob //Set the brain to use the brainmob + brainmob = null //Set mmi brainmob var to null + if(user) + user.put_in_hands(brain) //puts brain in the user's hand or otherwise drops it on the user's turf + else + brain.forceMove(get_turf(src)) + brain = null //No more brain in here + + /obj/item/device/mmi/proc/transfer_identity(mob/living/L) //Same deal as the regular brain proc. Used for human-->robot people. if(!brainmob) brainmob = new(src) @@ -115,9 +118,9 @@ brainmob.real_name = L.real_name if(L.has_dna()) var/mob/living/carbon/C = L - if(!brainmob.dna) - brainmob.dna = new /datum/dna(brainmob) - C.dna.copy_dna(brainmob.dna) + if(!brainmob.stored_dna) + brainmob.stored_dna = new /datum/dna/stored(brainmob) + C.dna.copy_dna(brainmob.stored_dna) brainmob.container = src if(ishuman(L)) @@ -165,18 +168,31 @@ ..() /obj/item/device/mmi/Destroy() - if(isrobot(loc)) + if(iscyborg(loc)) var/mob/living/silicon/robot/borg = loc borg.mmi = null if(brainmob) qdel(brainmob) brainmob = null + if(brain) + qdel(brain) + brain = null + if(mecha) + mecha = null + if(radio) + qdel(radio) + radio = null return ..() +/obj/item/device/mmi/deconstruct(disassembled = TRUE) + if(brain) + eject_brain() + qdel(src) + /obj/item/device/mmi/examine(mob/user) ..() if(brainmob) - var/mob/living/carbon/brain/B = brainmob + var/mob/living/brain/B = brainmob if(!B.key || !B.mind || B.stat == DEAD) user << "The MMI indicates the brain is completely unresponsive." diff --git a/code/modules/mob/living/brain/brain.dm b/code/modules/mob/living/brain/brain.dm new file mode 100644 index 0000000000..0b0fa0ccc9 --- /dev/null +++ b/code/modules/mob/living/brain/brain.dm @@ -0,0 +1,67 @@ + + +/mob/living/brain + languages_spoken = HUMAN + languages_understood = HUMAN + var/obj/item/device/mmi/container = null + var/timeofhostdeath = 0 + var/emp_damage = 0//Handles a type of MMI damage + var/datum/dna/stored/stored_dna // dna var for brain. Used to store dna, brain dna is not considered like actual dna, brain.has_dna() returns FALSE. + stat = DEAD //we start dead by default + see_invisible = SEE_INVISIBLE_MINIMUM + +/mob/living/brain/New(loc) + ..() + create_dna(src) + stored_dna.initialize_dna(random_blood_type()) + if(isturf(loc)) //not spawned in an MMI or brain organ (most likely adminspawned) + var/obj/item/organ/brain/OB = new(loc) //we create a new brain organ for it. + src.loc = OB + OB.brainmob = src + + +/mob/living/brain/proc/create_dna() + stored_dna = new /datum/dna/stored(src) + if(!stored_dna.species) + var/rando_race = pick(config.roundstart_races) + stored_dna.species = new rando_race() + +/mob/living/brain/Destroy() + if(key) //If there is a mob connected to this thing. Have to check key twice to avoid false death reporting. + if(stat!=DEAD) //If not dead. + death(1) //Brains can die again. AND THEY SHOULD AHA HA HA HA HA HA + ghostize() //Ghostize checks for key so nothing else is necessary. + container = null + return ..() + +/mob/living/brain/update_canmove() + if(in_contents_of(/obj/mecha)) + canmove = 1 + else + canmove = 0 + return canmove + +/mob/living/brain/ex_act() //you cant blow up brainmobs because it makes transfer_to() freak out when borgs blow up. + return + +/mob/living/brain/blob_act(obj/structure/blob/B) + return + +/mob/living/brain/get_eye_protection()//no eyes + return 2 + +/mob/living/brain/get_ear_protection()//no ears + return 2 + +/mob/living/brain/flash_act(intensity = 1, override_blindness_check = 0, affect_silicon = 0) + return // no eyes, no flashing + +/mob/living/brain/can_be_revived() + . = 1 + if(!container || health <= HEALTH_THRESHOLD_DEAD) + return 0 + +/mob/living/brain/fully_replace_character_name(oldname,newname) + ..() + if(stored_dna) + stored_dna.real_name = real_name \ No newline at end of file diff --git a/code/modules/mob/living/carbon/brain/brain_item.dm b/code/modules/mob/living/brain/brain_item.dm similarity index 64% rename from code/modules/mob/living/carbon/brain/brain_item.dm rename to code/modules/mob/living/brain/brain_item.dm index 4eb1fb0d3f..f9b84a4aba 100644 --- a/code/modules/mob/living/carbon/brain/brain_item.dm +++ b/code/modules/mob/living/brain/brain_item.dm @@ -10,35 +10,34 @@ vital = 1 origin_tech = "biotech=5" attack_verb = list("attacked", "slapped", "whacked") - var/mob/living/carbon/brain/brainmob = null + var/mob/living/brain/brainmob = null var/damaged_brain = 0 //whether the brain organ is damaged. -/obj/item/organ/brain/Insert(mob/living/carbon/M, special = 0) +/obj/item/organ/brain/Insert(mob/living/carbon/C, special = 0) ..() name = "brain" if(brainmob) - if(M.key) - M.ghostize() + if(C.key) + C.ghostize() if(brainmob.mind) - brainmob.mind.transfer_to(M) + brainmob.mind.transfer_to(C) else - M.key = brainmob.key + C.key = brainmob.key qdel(brainmob) //Update the body's icon so it doesnt appear debrained anymore - if(ishuman(M)) - var/mob/living/carbon/human/H = M - H.update_hair(0) + C.update_hair() -/obj/item/organ/brain/Remove(mob/living/carbon/M, special = 0) +/obj/item/organ/brain/Remove(mob/living/carbon/C, special = 0) ..() if(!special) - transfer_identity(M) - if(ishuman(M)) - var/mob/living/carbon/human/H = M - H.update_hair(0) + if(C.has_brain_worms()) + var/mob/living/simple_animal/borer/B = C.has_brain_worms() + B.leave_victim() //Should remove borer if the brain is removed - RR + transfer_identity(C) + C.update_hair() /obj/item/organ/brain/prepare_eat() return // Too important to eat. @@ -51,9 +50,9 @@ brainmob.timeofhostdeath = L.timeofdeath if(L.has_dna()) var/mob/living/carbon/C = L - if(!brainmob.dna) - brainmob.dna = new /datum/dna(brainmob) - C.dna.copy_dna(brainmob.dna) + if(!brainmob.stored_dna) + brainmob.stored_dna = new /datum/dna/stored(brainmob) + C.dna.copy_dna(brainmob.stored_dna) if(L.mind && L.mind.current && (L.mind.current.stat == DEAD)) L.mind.transfer_to(brainmob) brainmob << "You feel slightly disoriented. That's normal when you're just a brain." @@ -68,7 +67,7 @@ if(brainmob) if(brainmob.client) - if(brainmob.health <= config.health_threshold_dead) + if(brainmob.health <= HEALTH_THRESHOLD_DEAD) user << "It's lifeless and severely damaged." else user << "You can feel the small spark of life still left in this one." @@ -77,8 +76,8 @@ else user << "This one is completely devoid of life." -/obj/item/organ/brain/attack(mob/living/carbon/M, mob/user) - if(!istype(M)) +/obj/item/organ/brain/attack(mob/living/carbon/C, mob/user) + if(!istype(C)) return ..() add_fingerprint(user) @@ -86,31 +85,30 @@ if(user.zone_selected != "head") return ..() - var/mob/living/carbon/human/H = M - if(istype(H) && ((H.head && H.head.flags_cover & HEADCOVERSEYES) || (H.wear_mask && H.wear_mask.flags_cover & MASKCOVERSEYES) || (H.glasses && H.glasses.flags & GLASSESCOVERSEYES))) + if((C.head && (C.head.flags_cover & HEADCOVERSEYES)) || (C.wear_mask && (C.wear_mask.flags_cover & MASKCOVERSEYES)) || (C.glasses && (C.glasses.flags & GLASSESCOVERSEYES))) user << "You're going to need to remove their head cover first!" return //since these people will be dead M != usr - if(!M.getorgan(/obj/item/organ/brain)) - if(istype(H) && !H.get_bodypart("head")) + if(!C.getorgan(/obj/item/organ/brain)) + if(!C.get_bodypart("head")) return user.drop_item() - var/msg = "[M] has [src] inserted into \his head by [user]." - if(M == user) - msg = "[user] inserts [src] into \his head!" + var/msg = "[C] has [src] inserted into [C.p_their()] head by [user]." + if(C == user) + msg = "[user] inserts [src] into [user.p_their()] head!" - M.visible_message("[msg]", + C.visible_message("[msg]", "[msg]") - if(M != user) - M << "[user] inserts [src] into your head." - user << "You insert [src] into [M]'s head." + if(C != user) + C << "[user] inserts [src] into your head." + user << "You insert [src] into [C]'s head." else user << "You insert [src] into your head." //LOL - Insert(M) + Insert(C) else ..() diff --git a/code/modules/mob/living/carbon/brain/death.dm b/code/modules/mob/living/brain/death.dm similarity index 86% rename from code/modules/mob/living/carbon/brain/death.dm rename to code/modules/mob/living/brain/death.dm index cb55d04145..e98859b90f 100644 --- a/code/modules/mob/living/carbon/brain/death.dm +++ b/code/modules/mob/living/brain/death.dm @@ -1,4 +1,4 @@ -/mob/living/carbon/brain/death(gibbed) +/mob/living/brain/death(gibbed) if(stat == DEAD) return stat = DEAD @@ -11,7 +11,7 @@ return ..() -/mob/living/carbon/brain/gib() +/mob/living/brain/gib() if(container) qdel(container)//Gets rid of the MMI if there is one if(loc) diff --git a/code/modules/mob/living/carbon/brain/emote.dm b/code/modules/mob/living/brain/emote.dm similarity index 92% rename from code/modules/mob/living/carbon/brain/emote.dm rename to code/modules/mob/living/brain/emote.dm index 67e6c36cc3..a225c3ad81 100644 --- a/code/modules/mob/living/carbon/brain/emote.dm +++ b/code/modules/mob/living/brain/emote.dm @@ -1,4 +1,4 @@ -/mob/living/carbon/brain/emote(act,m_type=1,message = null) +/mob/living/brain/emote(act,m_type=1,message = null) if(!(container && istype(container, /obj/item/device/mmi)))//No MMI, no emotes return @@ -59,7 +59,7 @@ log_emote("[name]/[key] : [message]") for(var/mob/M in dead_mob_list) - if (!M.client || istype(M, /mob/new_player)) + if (!M.client || isnewplayer(M)) continue //skip monkeys, leavers, and new_players if(M.stat == DEAD && (M.client && (M.client.prefs.chat_toggles & CHAT_GHOSTSIGHT)) && !(M in viewers(src,null))) M.show_message(message) diff --git a/code/modules/mob/living/carbon/brain/life.dm b/code/modules/mob/living/brain/life.dm similarity index 56% rename from code/modules/mob/living/carbon/brain/life.dm rename to code/modules/mob/living/brain/life.dm index 831fbfb8e8..9d87f412e8 100644 --- a/code/modules/mob/living/carbon/brain/life.dm +++ b/code/modules/mob/living/brain/life.dm @@ -1,5 +1,5 @@ -/mob/living/carbon/brain/Life() +/mob/living/brain/Life() set invisibility = 0 set background = BACKGROUND_ENABLED @@ -10,19 +10,10 @@ . = ..() handle_emp_damage() -/mob/living/carbon/brain/handle_breathing() - return - -/mob/living/carbon/brain/handle_mutations_and_radiation() - return - -/mob/living/carbon/brain/handle_environment(datum/gas_mixture/environment) - return - -/mob/living/carbon/brain/update_stat() +/mob/living/brain/update_stat() if(status_flags & GODMODE) return - if(health <= config.health_threshold_dead) + if(health <= HEALTH_THRESHOLD_DEAD) if(stat != DEAD) death() var/obj/item/organ/brain/BR @@ -34,27 +25,25 @@ BR.damaged_brain = 1 //beaten to a pulp /* //currently unused feature, since brain outside a mmi is always dead. -/mob/living/carbon/brain/proc/handle_brain_revival_life() +/mob/living/brain/proc/handle_brain_revival_life() if(stat != DEAD) if(config.revival_brain_life != -1) if( !container && (world.time - timeofhostdeath) > config.revival_brain_life) death() */ -/mob/living/carbon/brain/proc/handle_emp_damage() +/mob/living/brain/proc/handle_emp_damage() if(emp_damage) if(stat == DEAD) emp_damage = 0 else emp_damage = max(emp_damage-1, 0) -/mob/living/carbon/brain/handle_status_effects() +/mob/living/brain/handle_status_effects() return -/mob/living/carbon/brain/handle_disabilities() - return - -/mob/living/carbon/brain/handle_changeling() +/mob/living/brain/handle_disabilities() return + diff --git a/code/modules/mob/living/carbon/brain/posibrain.dm b/code/modules/mob/living/brain/posibrain.dm similarity index 89% rename from code/modules/mob/living/carbon/brain/posibrain.dm rename to code/modules/mob/living/brain/posibrain.dm index 0ee77ea766..34f392d3e0 100644 --- a/code/modules/mob/living/carbon/brain/posibrain.dm +++ b/code/modules/mob/living/brain/posibrain.dm @@ -5,7 +5,7 @@ var/global/posibrain_notif_cooldown = 0 desc = "A cube of shining metal, four inches to a side and covered in shallow grooves." icon = 'icons/obj/assemblies.dmi' icon_state = "posibrain" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL origin_tech = "biotech=3;programming=3;plasmatech=2" var/notified = 0 var/askDelay = 600 //one minute @@ -14,6 +14,7 @@ var/global/posibrain_notif_cooldown = 0 req_access = list(access_robotics) mecha = null//This does not appear to be used outside of reference in mecha.dm. braintype = "Android" + var/autoping = TRUE //if it pings on creation immediately var/begin_activation_message = "You carefully locate the manual activation switch and start the positronic brain's boot process." var/success_message = "The positronic brain pings, and its lights start flashing. Success!" var/fail_message = "The positronic brain buzzes quietly, and the golden lights fade away. Perhaps you could try again?" @@ -25,6 +26,7 @@ var/global/posibrain_notif_cooldown = 0 var/new_mob_message = "The positronic brain chimes quietly." var/dead_message = "It appears to be completely inactive. The reset light is blinking." var/list/fluff_names = list("PBU","HIU","SINA","ARMA","OSI","HBL","MSO","RR","CHRI","CDB","HG","XSI","ORNG","GUN","KOR","MET","FRE","XIS","SLI","PKP","HOG","RZH","GOOF","MRPR","JJR","FIRC","INC","PHL","BGB","ANTR","MIW","WJ","JRD","CHOC","ANCL","JLLO","JNLG","KOS","TKRG","XAL","STLP","CBOS","DUNC","FXMC","DRSD") + var/picked_fluff_name //which fluff name we picked /obj/item/device/mmi/posibrain/Topic(href, href_list) @@ -38,7 +40,7 @@ var/global/posibrain_notif_cooldown = 0 notify_ghosts("[name] [msg] in [get_area(src)]!", ghost_sound = !newlymade ? 'sound/effects/ghost2.ogg':null, enter_link = "(Click to enter)", source = src, action = NOTIFY_ATTACK) if(!newlymade) posibrain_notif_cooldown = 1 - addtimer(src, "reset_posibrain_cooldown", askDelay, FALSE) + addtimer(src, "reset_posibrain_cooldown", askDelay, TIMER_NORMAL) /obj/item/device/mmi/posibrain/proc/reset_posibrain_cooldown() posibrain_notif_cooldown = 0 @@ -79,11 +81,10 @@ var/global/posibrain_notif_cooldown = 0 name = "[initial(name)] ([C])" brainmob.name = C.real_name brainmob.real_name = C.real_name - brainmob.dna = C.dna if(C.has_dna()) - if(!brainmob.dna) - brainmob.dna = new /datum/dna(brainmob) - C.dna.copy_dna(brainmob.dna) + if(!brainmob.stored_dna) + brainmob.stored_dna = new /datum/dna/stored(brainmob) + C.dna.copy_dna(brainmob.stored_dna) brainmob.timeofhostdeath = C.timeofdeath brainmob.stat = CONSCIOUS if(brainmob.mind) @@ -94,14 +95,16 @@ var/global/posibrain_notif_cooldown = 0 brainmob.mind.remove_all_antag() brainmob.mind.wipe_memory() update_icon() - return /obj/item/device/mmi/posibrain/proc/transfer_personality(mob/candidate) if(used || (brainmob && brainmob.key)) //Prevents hostile takeover if two ghosts get the prompt or link for the same brain. candidate << "This brain has already been taken! Please try your possesion again later!" return notified = 0 - brainmob.ckey = candidate.ckey + if(candidate.mind && !isobserver(candidate)) + candidate.mind.transfer_to(brainmob) + else + brainmob.ckey = candidate.ckey name = "[initial(name)] ([brainmob.name])" brainmob << welcome_message brainmob.mind.assigned_role = new_role @@ -122,7 +125,7 @@ var/global/posibrain_notif_cooldown = 0 if(!usr || !src) return - if( (usr.disabilities & BLIND || usr.stat) && !istype(usr,/mob/dead/observer) ) + if((usr.disabilities & BLIND || usr.stat) && !isobserver(usr)) usr << "Something is there but you can't see it." return @@ -144,11 +147,13 @@ var/global/posibrain_notif_cooldown = 0 /obj/item/device/mmi/posibrain/New() brainmob = new(src) - brainmob.name = "[pick(fluff_names)]-[rand(100, 999)]" + picked_fluff_name = pick(fluff_names) + brainmob.name = "[picked_fluff_name]-[rand(100, 999)]" brainmob.real_name = brainmob.name brainmob.loc = src brainmob.container = src - ping_ghosts("created", TRUE) + if(autoping) + ping_ghosts("created", TRUE) ..() diff --git a/code/modules/mob/living/carbon/brain/say.dm b/code/modules/mob/living/brain/say.dm similarity index 72% rename from code/modules/mob/living/carbon/brain/say.dm rename to code/modules/mob/living/brain/say.dm index 16cdc02ddb..0aeb312ee0 100644 --- a/code/modules/mob/living/carbon/brain/say.dm +++ b/code/modules/mob/living/brain/say.dm @@ -1,4 +1,4 @@ -/mob/living/carbon/brain/say(message) +/mob/living/brain/say(message) if(!(container && istype(container, /obj/item/device/mmi))) return //No MMI, can't speak, bucko./N else @@ -9,15 +9,15 @@ message = Gibberish(message, (emp_damage*6))//scrambles the message, gets worse when emp_damage is higher ..() -/mob/living/carbon/brain/radio(message, message_mode, list/spans) +/mob/living/brain/radio(message, message_mode, list/spans) if(message_mode && istype(container, /obj/item/device/mmi)) var/obj/item/device/mmi/R = container if(R.radio) R.radio.talk_into(src, message, , spans) return ITALICS | REDUCE_RANGE -/mob/living/carbon/brain/lingcheck() +/mob/living/brain/lingcheck() return 0 -/mob/living/carbon/brain/treat_message(message) +/mob/living/brain/treat_message(message) return message \ No newline at end of file diff --git a/code/modules/mob/living/carbon/brain/status_procs.dm b/code/modules/mob/living/brain/status_procs.dm similarity index 52% rename from code/modules/mob/living/carbon/brain/status_procs.dm rename to code/modules/mob/living/brain/status_procs.dm index dc8ff6ffc1..caf2bfe22c 100644 --- a/code/modules/mob/living/carbon/brain/status_procs.dm +++ b/code/modules/mob/living/brain/status_procs.dm @@ -4,35 +4,30 @@ /////////////////////////////////// EAR DAMAGE //////////////////////////////////// -/mob/living/carbon/brain/adjustEarDamage() +/mob/living/brain/adjustEarDamage() return -/mob/living/carbon/brain/setEarDamage() // no ears to damage or heal +/mob/living/brain/setEarDamage() // no ears to damage or heal return /////////////////////////////////// EYE_BLIND //////////////////////////////////// -/mob/living/carbon/brain/blind_eyes() // no eyes to damage or heal +/mob/living/brain/blind_eyes() // no eyes to damage or heal return -/mob/living/carbon/brain/adjust_blindness() +/mob/living/brain/adjust_blindness() return -/mob/living/carbon/brain/set_blindness() +/mob/living/brain/set_blindness() return /////////////////////////////////// EYE_BLURRY //////////////////////////////////// -/mob/living/carbon/brain/blur_eyes() +/mob/living/brain/blur_eyes() return -/mob/living/carbon/brain/adjust_blurriness() +/mob/living/brain/adjust_blurriness() return -/mob/living/carbon/brain/set_blurriness() +/mob/living/brain/set_blurriness() return - -/////////////////////////////////// BLIND DISABILITY //////////////////////////////////// - -/mob/living/carbon/brain/become_blind() - return \ No newline at end of file diff --git a/code/modules/mob/living/carbon/alien/alien.dm b/code/modules/mob/living/carbon/alien/alien.dm index 3f0f4d5179..de10d184f2 100644 --- a/code/modules/mob/living/carbon/alien/alien.dm +++ b/code/modules/mob/living/carbon/alien/alien.dm @@ -7,10 +7,10 @@ name = "alien" voice_name = "alien" icon = 'icons/mob/alien.dmi' - gender = FEMALE + gender = FEMALE //All xenos are girls!! dna = null faction = list("alien") - ventcrawler = 2 + ventcrawler = VENTCRAWLER_ALWAYS languages_spoken = ALIEN languages_understood = ALIEN sight = SEE_MOBS @@ -19,7 +19,6 @@ bubble_icon = "alien" type_of_meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/xeno var/nightvision = 1 - var/deathNotified = 0 var/obj/item/weapon/card/id/wear_id = null // Fix for station bounced radios -- Skie var/has_fine_manipulation = 0 @@ -38,35 +37,22 @@ verbs += /mob/living/proc/mob_sleep verbs += /mob/living/proc/lay_down - internal_organs += new /obj/item/organ/brain/alien - internal_organs += new /obj/item/organ/alien/hivenode - internal_organs += new /obj/item/organ/tongue/alien + create_bodyparts() //initialize bodyparts - for(var/obj/item/organ/I in internal_organs) - I.Insert(src) + create_internal_organs() AddAbility(new/obj/effect/proc_holder/alien/nightvisiontoggle(null)) ..() +/mob/living/carbon/alien/create_internal_organs() + internal_organs += new /obj/item/organ/brain/alien + internal_organs += new /obj/item/organ/alien/hivenode + internal_organs += new /obj/item/organ/tongue/alien + ..() + /mob/living/carbon/alien/assess_threat() // beepsky won't hunt aliums return -10 -/mob/living/carbon/alien/adjustToxLoss(amount) - return 0 - -/mob/living/carbon/alien/adjustFireLoss(amount) // Weak to Fire - if(amount > 0) - ..(amount * 2) - else - ..(amount) - return - -/mob/living/carbon/alien/check_eye_prot() - return ..() + 2 - -/mob/living/carbon/alien/getToxLoss() - return 0 - /mob/living/carbon/alien/handle_environment(datum/gas_mixture/environment) if(!environment) return @@ -101,35 +87,6 @@ else clear_alert("alien_fire") - -/mob/living/carbon/alien/ex_act(severity, target) - ..() - - switch (severity) - if (1) - gib() - return - - if (2) - adjustBruteLoss(60) - adjustFireLoss(60) - adjustEarDamage(30,120) - - if(3) - adjustBruteLoss(30) - if (prob(50)) - Paralyse(1) - adjustEarDamage(15,60) - - updatehealth() - - -/mob/living/carbon/alien/handle_fire()//Aliens on fire code - if(..()) - return - bodytemperature += BODYTEMP_HEATING_MAX //If you're on fire, you heat up! - return - /mob/living/carbon/alien/reagent_check(datum/reagent/R) //can metabolize all reagents return 0 @@ -229,3 +186,5 @@ Des: Removes all infected images from the alien. if(see_override) see_invisible = see_override +/mob/living/carbon/alien/can_hold_items() + return has_fine_manipulation diff --git a/code/modules/mob/living/carbon/alien/alien_defense.dm b/code/modules/mob/living/carbon/alien/alien_defense.dm index 1d64c0d0ff..0615e52b08 100644 --- a/code/modules/mob/living/carbon/alien/alien_defense.dm +++ b/code/modules/mob/living/carbon/alien/alien_defense.dm @@ -1,3 +1,10 @@ + +/mob/living/carbon/alien/get_eye_protection() + return ..() + 2 //potential cyber implants + natural eye protection + +/mob/living/carbon/alien/get_ear_protection() + return 2 //no ears + /mob/living/carbon/alien/hitby(atom/movable/AM, skipcatch, hitpush) ..(AM, skipcatch = 1, hitpush = 0) @@ -7,11 +14,7 @@ As such, they can either help or harm other aliens. Help works like the human he In all, this is a lot like the monkey code. /N */ /mob/living/carbon/alien/attack_alien(mob/living/carbon/alien/M) - if(!ticker || !ticker.mode) - M << "You cannot attack people before the game has started." - return - - if (istype(loc, /turf) && istype(loc.loc, /area/start)) + if(isturf(loc) && istype(loc.loc, /area/start)) M << "No attacking people at spawn, you jackass." return @@ -23,24 +26,22 @@ In all, this is a lot like the monkey code. /N AdjustParalysis(-3) AdjustStunned(-3) AdjustWeakened(-3) - visible_message("[M.name] nuzzles [src] trying to wake it up!") + visible_message("[M.name] nuzzles [src] trying to wake [p_them()] up!") if ("grab") grabbedby(M) else - if (health > 0) - M.do_attack_animation(src) + if(health > 0) + M.do_attack_animation(src, ATTACK_EFFECT_BITE) playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1) - var/damage = 1 visible_message("[M.name] bites [src]!", \ - "[M.name] bites [src]!") - adjustBruteLoss(damage) + "[M.name] bites [src]!", null, COMBAT_MESSAGE_RANGE) + adjustBruteLoss(1) add_logs(M, src, "attacked") updatehealth() else M << "[name] is too injured for that." - return /mob/living/carbon/alien/attack_larva(mob/living/carbon/alien/larva/L) @@ -56,8 +57,11 @@ In all, this is a lot like the monkey code. /N help_shake_act(M) if("grab") grabbedby(M) - if ("harm", "disarm") - M.do_attack_animation(src) + if ("harm") + M.do_attack_animation(src, ATTACK_EFFECT_PUNCH) + return 1 + if("disarm") + M.do_attack_animation(src, ATTACK_EFFECT_DISARM) return 1 return 0 @@ -65,9 +69,8 @@ In all, this is a lot like the monkey code. /N /mob/living/carbon/alien/attack_paw(mob/living/carbon/monkey/M) if(..()) if (stat != DEAD) - adjustBruteLoss(rand(1, 3)) - updatehealth() - return + var/obj/item/bodypart/affecting = get_bodypart(ran_zone(M.zone_selected)) + apply_damage(rand(1, 3), BRUTE, affecting) /mob/living/carbon/alien/attack_animal(mob/living/simple_animal/M) @@ -96,3 +99,28 @@ In all, this is a lot like the monkey code. /N adjustBruteLoss(damage) add_logs(M, src, "attacked") updatehealth() + +/mob/living/carbon/alien/ex_act(severity, target, origin) + if(origin && istype(origin, /datum/spacevine_mutation) && isvineimmune(src)) + return + ..() + switch (severity) + if (1) + gib() + return + + if (2) + take_overall_damage(60, 60) + adjustEarDamage(30,120) + + if(3) + take_overall_damage(30,0) + if(prob(50)) + Paralyse(1) + adjustEarDamage(15,60) + +/mob/living/carbon/alien/soundbang_act(intensity = 1, stun_pwr = 1, damage_pwr = 5, deafen_pwr = 15) + return 0 + +/mob/living/carbon/alien/acid_act(acidpwr, acid_volume) + return 0//aliens are immune to acid. diff --git a/code/modules/mob/living/carbon/alien/damage_procs.dm b/code/modules/mob/living/carbon/alien/damage_procs.dm new file mode 100644 index 0000000000..7857c0b565 --- /dev/null +++ b/code/modules/mob/living/carbon/alien/damage_procs.dm @@ -0,0 +1,22 @@ + + +/mob/living/carbon/alien/getToxLoss() + return 0 + +/mob/living/carbon/alien/adjustToxLoss(amount) //alien immune to tox damage + return 0 + +/mob/living/carbon/alien/adjustFireLoss(amount) // Weak to Fire + if(amount > 0) + ..(amount * 2) + else + ..(amount) + + + +//aliens are immune to stamina damage. +/mob/living/carbon/alien/adjustStaminaLoss(amount, updating_stamina = 1) + return + +/mob/living/carbon/alien/setStaminaLoss(amount, updating_stamina = 1) + return \ No newline at end of file diff --git a/code/modules/mob/living/carbon/alien/death.dm b/code/modules/mob/living/carbon/alien/death.dm index 745366568a..2209af0115 100644 --- a/code/modules/mob/living/carbon/alien/death.dm +++ b/code/modules/mob/living/carbon/alien/death.dm @@ -1,5 +1,8 @@ -/mob/living/carbon/alien/spawn_gibs() - xgibs(loc, viruses) +/mob/living/carbon/alien/spawn_gibs(with_bodyparts) + if(with_bodyparts) + new /obj/effect/gibspawner/xeno(loc,viruses) + else + new /obj/effect/gibspawner/xenobodypartless(loc,viruses) /mob/living/carbon/alien/gib_animation() PoolOrNew(/obj/effect/overlay/temp/gib_animation, list(loc, "gibbed-a")) @@ -9,17 +12,3 @@ /mob/living/carbon/alien/dust_animation() PoolOrNew(/obj/effect/overlay/temp/dust_animation, list(loc, "dust-a")) - -/mob/living/carbon/alien/proc/deathNotice(var/area/AR, var/turf/T) - if(src.z == 2) //Admin fuckery can continue without giving false death rattles to aliens on station or elsewhere. - return - src.deathNotified = 1 - T = get_turf(src) - var/mob/living/carbon/alien/A - for(A in world) - A << "[src.name] has died at [T.loc.name]! " - -/mob/living/carbon/alien/death(gibbed) - if(!deathNotified) - deathNotice() - ..() 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 7b151fbc73..0a119c8ccf 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm @@ -11,7 +11,6 @@ Doesn't work on other aliens/AI.*/ panel = "Alien" var/plasma_cost = 0 var/check_turf = 0 - var/has_action = 1 var/datum/action/spell_action/alien/action = null var/action_icon = 'icons/mob/actions.dmi' @@ -49,7 +48,7 @@ Doesn't work on other aliens/AI.*/ if(!silent) user << "Not enough plasma stored." return 0 - if(check_turf && (!isturf(user.loc) || istype(user.loc, /turf/open/space))) + if(check_turf && (!isturf(user.loc) || isspaceturf(user.loc))) if(!silent) user << "Bad place for a garden!" return 0 @@ -141,30 +140,16 @@ Doesn't work on other aliens/AI.*/ /obj/effect/proc_holder/alien/acid/on_lose(mob/living/carbon/user) user.verbs.Remove(/mob/living/carbon/proc/corrosive_acid) -/obj/effect/proc_holder/alien/acid/proc/corrode(target,mob/living/carbon/user = usr) +/obj/effect/proc_holder/alien/acid/proc/corrode(atom/target,mob/living/carbon/user = usr) if(target in oview(1,user)) - // OBJ CHECK - if(isobj(target)) - var/obj/I = target - if(I.unacidable) //So the aliens don't destroy energy fields/singularies/other aliens/etc with their acid. - user << "You cannot dissolve this object." - return 0 - // TURF CHECK - else if(istype(target, /turf)) - var/turf/T = target - // R WALL - if(istype(T, /turf/closed/wall/r_wall)) - user << "You cannot dissolve this object." - return 0 - // R FLOOR - if(istype(T, /turf/open/floor/engine)) - user << "You cannot dissolve this object." - return 0 - else// Not a type we can acid. + if(target.acid_act(200, 100)) + user.visible_message("[user] vomits globs of vile stuff all over [target]. It begins to sizzle and melt under the bubbling mess of acid!") + return 1 + else + user << "You cannot dissolve this object." + + return 0 - new /obj/effect/acid(get_turf(target), target) - user.visible_message("[user] vomits globs of vile stuff all over [target]. It begins to sizzle and melt under the bubbling mess of acid!") - return 1 else src << "Target is too far away." return 0 @@ -172,8 +157,10 @@ Doesn't work on other aliens/AI.*/ /obj/effect/proc_holder/alien/acid/fire(mob/living/carbon/alien/user) var/O = input("Select what to dissolve:","Dissolve",null) as obj|turf in oview(1,user) - if(!O) return 0 - return corrode(O,user) + if(!O || user.incapacitated()) + return 0 + else + return corrode(O,user) /mob/living/carbon/proc/corrosive_acid(O as obj|turf in oview(1)) // right click menu verb ugh set name = "Corrossive Acid" @@ -191,39 +178,40 @@ Doesn't work on other aliens/AI.*/ name = "Spit Neurotoxin" desc = "Spits neurotoxin at someone, paralyzing them for a short time." action_icon_state = "alien_neurotoxin_0" - var/active = 0 + active = FALSE /obj/effect/proc_holder/alien/neurotoxin/fire(mob/living/carbon/user) + var/message if(active) - user.ranged_ability = null - user << "You empty your neurotoxin gland." - active = 0 - else if(user.ranged_ability && user.ranged_ability != src) - user << "You already have another aimed ability readied! Cancel it first." - return + message = "You empty your neurotoxin gland." + remove_ranged_ability(message) else - user.ranged_ability = src - active = 1 - user << "You prepare your neurotoxin gland. Left-click to fire at a target!" + message = "You prepare your neurotoxin gland. Left-click to fire at a target!" + add_ranged_ability(user, message, TRUE) - user.client.click_intercept = user.ranged_ability +/obj/effect/proc_holder/alien/neurotoxin/update_icon() action.button_icon_state = "alien_neurotoxin_[active]" action.UpdateButtonIcon() -/obj/effect/proc_holder/alien/neurotoxin/InterceptClickOn(mob/living/carbon/user, params, atom/target) - var/p_cost = 50 - if(!iscarbon(user) || user.lying || user.stat) +/obj/effect/proc_holder/alien/neurotoxin/InterceptClickOn(mob/living/caller, params, atom/target) + if(..()) return - user.next_click = world.time + 6 - user.face_atom(target) + var/p_cost = 50 + if(!iscarbon(ranged_ability_user) || ranged_ability_user.lying || ranged_ability_user.stat) + remove_ranged_ability(ranged_ability_user) + return + + var/mob/living/carbon/user = ranged_ability_user + if(user.getPlasma() < p_cost) user << "You need at least [p_cost] plasma to spit." + remove_ranged_ability() return var/turf/T = user.loc var/turf/U = get_step(user, user.dir) // Get the tile infront of the move, based on their direction if(!isturf(U) || !isturf(T)) - return 0 + return FALSE user.visible_message("[user] spits neurotoxin!", "You spit neurotoxin.") var/obj/item/projectile/bullet/neurotoxin/A = new /obj/item/projectile/bullet/neurotoxin(user.loc) @@ -233,12 +221,25 @@ Doesn't work on other aliens/AI.*/ user.newtonian_move(get_dir(U, T)) user.adjustPlasma(-p_cost) - return 1 + return TRUE /obj/effect/proc_holder/alien/neurotoxin/on_lose(mob/living/carbon/user) if(user.ranged_ability == src) user.ranged_ability = null +/obj/effect/proc_holder/alien/neurotoxin/add_ranged_ability(mob/living/user, msg) + ..() + 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 + A.drooling = 0 + A.update_icons() /obj/effect/proc_holder/alien/resin name = "Secrete Resin" @@ -308,7 +309,7 @@ Doesn't work on other aliens/AI.*/ /obj/effect/proc_holder/alien/sneak name = "Sneak" desc = "Blend into the shadows to stalk your prey." - var/active = 0 + active = 0 action_icon_state = "alien_sneak" 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 15f6c69dbd..2edb0fa4e0 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm @@ -7,11 +7,14 @@ /mob/living/carbon/alien/humanoid/drone/New() + 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 - - AddAbility(new/obj/effect/proc_holder/alien/evolve(null)) ..() /mob/living/carbon/alien/humanoid/drone/movement_delay() @@ -36,7 +39,7 @@ if(!isturf(user.loc)) user << "You can't evolve here!" return 0 - if(!alien_type_present(/mob/living/carbon/alien/humanoid/royal)) + if(!get_alien_type(/mob/living/carbon/alien/humanoid/royal)) var/mob/living/carbon/alien/humanoid/royal/praetorian/new_xeno = new (user.loc) user.alien_evolve(new_xeno) return 1 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 86d0a2c683..4370797a25 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm @@ -6,7 +6,7 @@ icon_state = "alienh_s" var/obj/screen/leap_icon = null -/mob/living/carbon/alien/humanoid/hunter/New() +/mob/living/carbon/alien/humanoid/hunter/create_internal_organs() internal_organs += new /obj/item/organ/alien/plasmavessel/small ..() @@ -45,16 +45,18 @@ if(leaping || stat || buckled || lying) return - if(!has_gravity(src) || !has_gravity(A)) + if(!has_gravity() || !A.has_gravity()) src << "It is unsafe to leap without gravity!" //It's also extremely buggy visually, so it's balance+bugfix return else //Maybe uses plasma in the future, although that wouldn't make any sense... leaping = 1 + weather_immunities += "lava" update_icons() throw_at(A,MAX_ALIEN_LEAP_DIST,1, spin=0, diagonals_first = 1) leaping = 0 + weather_immunities -= "lava" update_icons() /mob/living/carbon/alien/humanoid/hunter/throw_impact(atom/A) @@ -63,18 +65,20 @@ return ..() if(A) - if(istype(A, /mob/living)) + if(isliving(A)) var/mob/living/L = A var/blocked = 0 if(ishuman(A)) var/mob/living/carbon/human/H = A - if(H.check_shields(90, "the [name]", src, attack_type = THROWN_PROJECTILE_ATTACK)) + if(H.check_shields(0, "the [name]", src, attack_type = LEAP_ATTACK)) blocked = 1 if(!blocked) L.visible_message("[src] pounces on [L]!", "[src] pounces on you!") L.Weaken(5) sleep(2)//Runtime prevention (infinite bump() calls on hulks) step_towards(src,L) + else + Weaken(2, 1, 1) toggle_leap(0) pounce_cooldown = !pounce_cooldown @@ -82,7 +86,7 @@ pounce_cooldown = !pounce_cooldown else if(A.density && !A.CanPass(src)) visible_message("[src] smashes into [A]!", "[src] smashes into [A]!") - weakened = 2 + Weaken(2, 1, 1) if(leaping) 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 100ab9b961..d16c06bea5 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/praetorian.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/praetorian.dm @@ -11,14 +11,18 @@ 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()) + ..() + +/mob/living/carbon/alien/humanoid/royal/praetorian/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 internal_organs += new /obj/item/organ/alien/neurotoxin - AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/repulse/xeno(src)) - AddAbility(new /obj/effect/proc_holder/alien/royal/praetorian/evolve()) ..() + /mob/living/carbon/alien/humanoid/royal/praetorian/movement_delay() . = ..() . += 1 @@ -38,7 +42,7 @@ if(node.recent_queen_death) user << "You are still too burdened with guilt to evolve into a queen." return 0 - if(!alien_type_present(/mob/living/carbon/alien/humanoid/royal/queen)) + if(!get_alien_type(/mob/living/carbon/alien/humanoid/royal/queen)) var/mob/living/carbon/alien/humanoid/royal/queen/new_xeno = new (user.loc) user.alien_evolve(new_xeno) if(new_xeno.client.prefs.unlock_content) 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 e2a8b3980b..3f072e470f 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm @@ -7,11 +7,15 @@ /mob/living/carbon/alien/humanoid/sentinel/New() - internal_organs += new /obj/item/organ/alien/plasmavessel - internal_organs += new /obj/item/organ/alien/acid - internal_organs += new /obj/item/organ/alien/neurotoxin AddAbility(new /obj/effect/proc_holder/alien/sneak) ..() +/mob/living/carbon/alien/humanoid/sentinel/create_internal_organs() + internal_organs += new /obj/item/organ/alien/plasmavessel + 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/death.dm b/code/modules/mob/living/carbon/alien/humanoid/death.dm index cf6c5cac7b..38877ee7eb 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/death.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/death.dm @@ -1,10 +1,8 @@ /mob/living/carbon/alien/humanoid/death(gibbed) if(stat == DEAD) return - stat = DEAD - if(!deathNotified) //Did we message the other aliens that we died? - deathNotice() //If not, do so now. This proc will change the deathNotified var to 1 so it never happens again. + stat = DEAD if(!gibbed) playsound(loc, 'sound/voice/hiss6.ogg', 80, 1, 1) @@ -12,11 +10,6 @@ update_canmove() update_icons() status_flags |= CANPUSH - if(fireloss >= (maxHealth/2)) - spawn(10) - visible_message("[src] starts shaking...") - spawn(30) - src.gib() return ..() @@ -32,20 +25,4 @@ if(istype(node)) // just in case someone would ever add a diffirent node to hivenode slot node.queen_death() - return ..(gibbed) - -/mob/living/carbon/alien/humanoid/gib() - visible_message("[src] explodes in a shower of acid blood and gibs!") - for(var/mob/living/M in viewers(2, src)) - if(ishuman(M)) - M << "You're sprayed with acid blood!" - M.adjustFireLoss(15) - M.reagents.add_reagent("xblood",5) - else if(ismonkey(M)) - M << "You're sprayed with acid blood!" - M.adjustFireLoss(15) - M.reagents.add_reagent("xblood",5) - else if(!isalien(M)) - M << "You're sprayed with acid blood!" - M.adjustFireLoss(15) - ..() + return ..(gibbed) \ No newline at end of file diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm index c9851483e5..2a846fba0c 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm @@ -3,6 +3,7 @@ icon_state = "alien_s" pass_flags = PASSTABLE butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat/slab/xeno = 5, /obj/item/stack/sheet/animalhide/xeno = 1) + limb_destroyer = 1 var/obj/item/r_store = null var/obj/item/l_store = null var/caste = "" @@ -13,89 +14,35 @@ var/custom_pixel_x_offset = 0 //for admin fuckery. var/custom_pixel_y_offset = 0 var/sneaking = 0 //For sneaky-sneaky mode and appropriate slowdown + var/drooling = 0 //For Neruotoxic spit overlays + bodyparts = list(/obj/item/bodypart/chest/alien, /obj/item/bodypart/head/alien, /obj/item/bodypart/l_arm/alien, + /obj/item/bodypart/r_arm/alien, /obj/item/bodypart/r_leg/alien, /obj/item/bodypart/l_leg/alien) + //This is fine right now, if we're adding organ specific damage this needs to be updated /mob/living/carbon/alien/humanoid/New() AddAbility(new/obj/effect/proc_holder/alien/regurgitate(null)) ..() - /mob/living/carbon/alien/humanoid/movement_delay() . = ..() . += move_delay_add + config.alien_delay + sneaking //move_delay_add is used to slow aliens with stuns -/mob/living/carbon/alien/humanoid/emp_act(severity) - if(r_store) r_store.emp_act(severity) - if(l_store) l_store.emp_act(severity) - ..() - -/mob/living/carbon/alien/humanoid/attack_hulk(mob/living/carbon/human/user) - if(user.a_intent == "harm") - ..(user, 1) - adjustBruteLoss(15) - var/hitverb = "punched" - if(mob_size < MOB_SIZE_LARGE) - Paralyse(1) - step_away(src,user,15) - sleep(1) - step_away(src,user,15) - hitverb = "slammed" - playsound(loc, "punch", 25, 1, -1) - visible_message("[user] has [hitverb] [src]!", \ - "[user] has [hitverb] [src]!") - return 1 - -/mob/living/carbon/alien/humanoid/attack_hand(mob/living/carbon/human/M) - if(..()) - switch(M.a_intent) - if ("harm") - var/damage = rand(1, 9) - if (prob(90)) - playsound(loc, "punch", 25, 1, -1) - visible_message("[M] has punched [src]!", \ - "[M] has punched [src]!") - if ((stat != DEAD) && (damage > 9 || prob(5)))//Regular humans have a very small chance of weakening an alien. - Paralyse(2) - visible_message("[M] has weakened [src]!", \ - "[M] has weakened [src]!") - adjustBruteLoss(damage) - add_logs(M, src, "attacked") - updatehealth() - else - playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1) - visible_message("[M] has attempted to punch [src]!") - - if ("disarm") - if (!lying) - if (prob(5)) - Paralyse(2) - playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) - add_logs(M, src, "pushed") - visible_message("[M] has pushed down [src]!", \ - "[M] has pushed down [src]!") - else - if (prob(50)) - drop_item() - playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) - visible_message("[M] has disarmed [src]!", \ - "[M] has disarmed [src]!") - else - playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1) - visible_message("[M] has attempted to disarm [src]!") - /mob/living/carbon/alien/humanoid/restrained(ignore_grab) . = handcuffed /mob/living/carbon/alien/humanoid/show_inv(mob/user) user.set_machine(src) - var/dat = {" + var/list/dat = list() + dat += {"
    [name] -
    -
    Left Hand: [l_hand ? l_hand : "Nothing"] -
    Right Hand: [r_hand ? r_hand : "Nothing"] -
    Empty Pouches"} +
    "} + for(var/i in 1 to held_items.len) + var/obj/item/I = get_item_for_held_index(i) + dat += "
    [get_held_index_name(i)]:[(I && !(I.flags & ABSTRACT)) ? I : "Empty"]" + dat += "
    Empty Pouches" if(handcuffed) dat += "
    Handcuffed" @@ -106,7 +53,7 @@

    Close "} - user << browse(dat, "window=mob\ref[src];size=325x500") + user << browse(dat.Join(), "window=mob\ref[src];size=325x500") onclose(user, "mob\ref[src]") @@ -147,39 +94,29 @@ else return initial(pixel_x) -/mob/living/carbon/alien/humanoid/check_ear_prot() - return 1 - /mob/living/carbon/alien/humanoid/get_permeability_protection() return 0.8 /mob/living/carbon/alien/humanoid/alien_evolve(mob/living/carbon/alien/humanoid/new_xeno) - drop_l_hand() - drop_r_hand() + drop_all_held_items() for(var/atom/movable/A in stomach_contents) stomach_contents.Remove(A) new_xeno.stomach_contents.Add(A) A.loc = new_xeno ..() -//For alien evolution/promotion procs. Checks for -proc/alien_type_present(var/alienpath) +//For alien evolution/promotion/queen finder procs. Checks for an active alien of that type +/proc/get_alien_type(var/alienpath) for(var/mob/living/carbon/alien/humanoid/A in living_mob_list) if(!istype(A, alienpath)) continue if(!A.key || A.stat == DEAD) //Only living aliens with a ckey are valid. continue - return 1 - return 0 + return A + return FALSE /mob/living/carbon/alien/humanoid/check_breath(datum/gas_mixture/breath) if(breath && breath.total_moles() > 0 && !sneaking) playsound(get_turf(src), pick('sound/voice/lowHiss2.ogg', 'sound/voice/lowHiss3.ogg', 'sound/voice/lowHiss4.ogg'), 50, 0, -5) ..() - -/mob/living/carbon/alien/humanoid/grabbedby(mob/living/carbon/user, supress_message = 0) - if(user == src && pulling && grab_state >= GRAB_AGGRESSIVE && !pulling.anchored && iscarbon(pulling)) - devour_mob(pulling, devour_time = 60) - else - ..() \ No newline at end of file diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid_defense.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid_defense.dm new file mode 100644 index 0000000000..b6c3b4427b --- /dev/null +++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid_defense.dm @@ -0,0 +1,68 @@ + +/mob/living/carbon/alien/humanoid/grabbedby(mob/living/carbon/user, supress_message = 0) + if(user == src && pulling && grab_state >= GRAB_AGGRESSIVE && !pulling.anchored && iscarbon(pulling)) + devour_mob(pulling, devour_time = 60) + else + ..() + +/mob/living/carbon/alien/humanoid/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0) + if(user.a_intent == INTENT_HARM) + ..(user, 1) + adjustBruteLoss(15) + var/hitverb = "punched" + if(mob_size < MOB_SIZE_LARGE) + step_away(src,user,15) + sleep(1) + step_away(src,user,15) + hitverb = "slammed" + playsound(loc, "punch", 25, 1, -1) + visible_message("[user] has [hitverb] [src]!", \ + "[user] has [hitverb] [src]!", null, COMBAT_MESSAGE_RANGE) + return 1 + +/mob/living/carbon/alien/humanoid/attack_hand(mob/living/carbon/human/M) + if(..()) + switch(M.a_intent) + if ("harm") + var/damage = rand(1, 9) + if (prob(90)) + playsound(loc, "punch", 25, 1, -1) + visible_message("[M] has punched [src]!", \ + "[M] has punched [src]!", null, COMBAT_MESSAGE_RANGE) + if ((stat != DEAD) && (damage > 9 || prob(5)))//Regular humans have a very small chance of weakening an alien. + Paralyse(2) + visible_message("[M] has weakened [src]!", \ + "[M] has weakened [src]!") + var/obj/item/bodypart/affecting = get_bodypart(ran_zone(M.zone_selected)) + apply_damage(damage, BRUTE, affecting) + add_logs(M, src, "attacked") + else + playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1) + visible_message("[M] has attempted to punch [src]!", \ + "[M] has attempted to punch [src]!", null, COMBAT_MESSAGE_RANGE) + + if ("disarm") + if (!lying) + if (prob(5)) + Paralyse(2) + playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) + add_logs(M, src, "pushed") + visible_message("[M] has pushed down [src]!", \ + "[M] has pushed down [src]!") + else + if (prob(50)) + drop_item() + playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) + visible_message("[M] has disarmed [src]!", \ + "[M] has disarmed [src]!", null, COMBAT_MESSAGE_RANGE) + else + playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1) + visible_message("[M] has attempted to disarm [src]!",\ + "[M] has attempted to disarm [src]!", null, COMBAT_MESSAGE_RANGE) + + + +/mob/living/carbon/alien/humanoid/do_attack_animation(atom/A, visual_effect_icon, obj/item/used_item, no_effect, end_pixel_y) + if(!no_effect && !visual_effect_icon) + visual_effect_icon = ATTACK_EFFECT_CLAW + ..() diff --git a/code/modules/mob/living/carbon/alien/humanoid/life.dm b/code/modules/mob/living/carbon/alien/humanoid/life.dm index d6cd9eea97..fd6a73ae7b 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/life.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/life.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 + /mob/living/carbon/alien/humanoid/proc/adjust_body_temperature(current, loc_temp, boost) var/temperature = current diff --git a/code/modules/mob/living/carbon/alien/humanoid/queen.dm b/code/modules/mob/living/carbon/alien/humanoid/queen.dm index ed0ad9abb7..467c472369 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/queen.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/queen.dm @@ -2,7 +2,7 @@ //Common stuffs for Praetorian and Queen icon = 'icons/mob/alienqueen.dmi' status_flags = 0 - ventcrawler = 0 //pull over that ass too fat + ventcrawler = VENTCRAWLER_NONE //pull over that ass too fat unique_name = 0 pixel_x = -16 bubble_icon = "alienroyal" @@ -22,7 +22,27 @@ maxHealth = 400 health = 400 icon_state = "alienq" + var/datum/action/small_sprite/smallsprite = new/datum/action/small_sprite() +/datum/action/small_sprite + name = "Toggle Giant Sprite - Others will always see you as giant" + button_icon_state = "smallqueen" + background_icon_state = "bg_alien" + var/small = 0 + +/datum/action/small_sprite/Trigger() + ..() + if(!small) + var/image/I = image(icon = 'icons/mob/alien.dmi' , icon_state = "alienq_running", loc = owner) + I.override = 1 + I.pixel_x -= owner.pixel_x + I.pixel_y -= owner.pixel_y + owner.add_alt_appearance("smallqueen", I, list(owner)) + + small = 1 + else + owner.remove_alt_appearance("smallqueen") + small = 0 /mob/living/carbon/alien/humanoid/royal/queen/New() //there should only be one queen @@ -37,18 +57,22 @@ real_name = src.name + 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) + ..() + +/mob/living/carbon/alien/humanoid/royal/queen/create_internal_organs() internal_organs += new /obj/item/organ/alien/plasmavessel/large/queen internal_organs += new /obj/item/organ/alien/resinspinner internal_organs += new /obj/item/organ/alien/acid internal_organs += new /obj/item/organ/alien/neurotoxin internal_organs += new /obj/item/organ/alien/eggsac - AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/repulse/xeno(src)) - AddAbility(new/obj/effect/proc_holder/alien/royal/queen/promote()) ..() /mob/living/carbon/alien/humanoid/royal/queen/movement_delay() . = ..() - . += 5 + . += 3 //Queen verbs /obj/effect/proc_holder/alien/lay_egg @@ -78,7 +102,7 @@ /obj/effect/proc_holder/alien/royal/queen/promote/fire(mob/living/carbon/alien/user) var/obj/item/queenpromote/prom - if(alien_type_present(/mob/living/carbon/alien/humanoid/royal/praetorian/)) + if(get_alien_type(/mob/living/carbon/alien/humanoid/royal/praetorian/)) user << "You already have a Praetorian!" return 0 else @@ -99,14 +123,14 @@ name = "\improper royal parasite" desc = "Inject this into one of your grown children to promote her to a Praetorian!" icon_state = "alien_medal" - flags = ABSTRACT|NODROP + flags = ABSTRACT|NODROP|DROPDEL icon = 'icons/mob/alien.dmi' /obj/item/queenpromote/attack(mob/living/M, mob/living/carbon/alien/humanoid/user) if(!isalienadult(M) || istype(M, /mob/living/carbon/alien/humanoid/royal)) user << "You may only use this with your adult, non-royal children!" return - if(alien_type_present(/mob/living/carbon/alien/humanoid/royal/praetorian/)) + if(get_alien_type(/mob/living/carbon/alien/humanoid/royal/praetorian/)) user << "You already have a Praetorian!" return @@ -161,4 +185,4 @@ desc = "" icon_state = "alienq" caste = "q" - update_icons() \ No newline at end of file + update_icons() diff --git a/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm b/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm index 80a46f226f..3e1f496aa4 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm @@ -20,8 +20,12 @@ icon_state = "alien[caste]_sleep" else if(mob_size == MOB_SIZE_LARGE) icon_state = "alien[caste]" + if(drooling) + add_overlay("alienspit_[caste]") else icon_state = "alien[caste]_s" + if(drooling) + add_overlay("alienspit_s") if(leaping) if(alt_icon == initial(alt_icon)) @@ -50,28 +54,40 @@ ..() update_icons() +/mob/living/carbon/alien/humanoid/update_inv_handcuffed() + remove_overlay(HANDCUFF_LAYER) + var/cuff_icon = "aliencuff_s" + var/dmi_file = 'icons/mob/alien.dmi' + + if(mob_size == MOB_SIZE_LARGE) + cuff_icon = "aliencuff_[caste]" + dmi_file = 'icons/mob/alienqueen.dmi' + + if(handcuffed) + overlays_standing[HANDCUFF_LAYER] = image(dmi_file,icon_state= cuff_icon, layer =-HANDCUFF_LAYER) + apply_overlay(HANDCUFF_LAYER) + //Royals have bigger sprites, so inhand things must be handled differently. -/mob/living/carbon/alien/humanoid/royal/update_inv_r_hand() +/mob/living/carbon/alien/humanoid/royal/update_inv_hands() ..() - remove_overlay(R_HAND_LAYER) - if(r_hand) - var/itm_state = r_hand.item_state - if(!itm_state) - itm_state = r_hand.icon_state + remove_overlay(HANDS_LAYER) + var/list/hands = list() - var/image/I = image("icon" = alt_inhands_file , "icon_state"="[itm_state][caste]_r", "layer"=-R_HAND_LAYER) - overlays_standing[R_HAND_LAYER] = I - - apply_overlay(R_HAND_LAYER) - -/mob/living/carbon/alien/humanoid/royal/update_inv_l_hand() - ..() - remove_overlay(L_HAND_LAYER) + var/obj/item/l_hand = get_item_for_held_index(1) if(l_hand) var/itm_state = l_hand.item_state if(!itm_state) itm_state = l_hand.icon_state + var/image/I = image("icon" = alt_inhands_file , "icon_state"="[itm_state][caste]_l", "layer"=-HANDS_LAYER) + hands += I - var/image/I = image("icon" = alt_inhands_file , "icon_state"="[itm_state][caste]_l", "layer"=-L_HAND_LAYER) - overlays_standing[L_HAND_LAYER] = I - apply_overlay(L_HAND_LAYER) + var/obj/item/r_hand = get_item_for_held_index(2) + if(r_hand) + var/itm_state = r_hand.item_state + if(!itm_state) + itm_state = r_hand.icon_state + var/image/I = image("icon" = alt_inhands_file , "icon_state"="[itm_state][caste]_r", "layer"=-HANDS_LAYER) + hands += I + + overlays_standing[HANDS_LAYER] = hands + apply_overlay(HANDS_LAYER) \ No newline at end of file diff --git a/code/modules/mob/living/carbon/alien/larva/death.dm b/code/modules/mob/living/carbon/alien/larva/death.dm index aab4722b5c..89559d5899 100644 --- a/code/modules/mob/living/carbon/alien/larva/death.dm +++ b/code/modules/mob/living/carbon/alien/larva/death.dm @@ -8,3 +8,18 @@ visible_message("[src] lets out a waning high-pitched cry.") return ..(gibbed) + +/mob/living/carbon/alien/larva/spawn_gibs(with_bodyparts) + if(with_bodyparts) + new /obj/effect/gibspawner/larva(loc,viruses) + else + new /obj/effect/gibspawner/larvabodypartless(loc,viruses) + +/mob/living/carbon/alien/larva/gib_animation() + PoolOrNew(/obj/effect/overlay/temp/gib_animation, list(loc, "gibbed-l")) + +/mob/living/carbon/alien/larva/spawn_dust() + new /obj/effect/decal/remains/xeno(loc) + +/mob/living/carbon/alien/larva/dust_animation() + PoolOrNew(/obj/effect/overlay/temp/dust_animation, list(loc, "dust-l")) diff --git a/code/modules/mob/living/carbon/alien/larva/larva.dm b/code/modules/mob/living/carbon/alien/larva/larva.dm index 3bc779294a..1538be2ca9 100644 --- a/code/modules/mob/living/carbon/alien/larva/larva.dm +++ b/code/modules/mob/living/carbon/alien/larva/larva.dm @@ -14,16 +14,20 @@ var/time_of_birth rotate_on_lying = 0 + bodyparts = list(/obj/item/bodypart/chest/larva, /obj/item/bodypart/head/larva) + //This is fine right now, if we're adding organ specific damage this needs to be updated /mob/living/carbon/alien/larva/New() - regenerate_icons() - internal_organs += new /obj/item/organ/alien/plasmavessel/small/tiny AddAbility(new/obj/effect/proc_holder/alien/hide(null)) AddAbility(new/obj/effect/proc_holder/alien/larva_evolve(null)) ..() +/mob/living/carbon/alien/larva/create_internal_organs() + internal_organs += new /obj/item/organ/alien/plasmavessel/small/tiny + ..() + //This needs to be fixed /mob/living/carbon/alien/larva/Stat() ..() @@ -39,37 +43,6 @@ /mob/living/carbon/alien/larva/attack_ui(slot_id) return -/mob/living/carbon/alien/larva/attack_hulk(mob/living/carbon/human/user) - if(user.a_intent == "harm") - ..(user, 1) - adjustBruteLoss(5 + rand(1,9)) - Paralyse(1) - spawn() - step_away(src,user,15) - sleep(1) - step_away(src,user,15) - return 1 - -/mob/living/carbon/alien/larva/attack_hand(mob/living/carbon/human/M) - if(..()) - var/damage = rand(1, 9) - if (prob(90)) - playsound(loc, "punch", 25, 1, -1) - add_logs(M, src, "attacked") - visible_message("[M] has kicked [src]!", \ - "[M] has kicked [src]!") - if ((stat != DEAD) && (damage > 4.9)) - Paralyse(rand(5,10)) - - adjustBruteLoss(damage) - updatehealth() - else - playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1) - visible_message("[M] has attempted to kick [src]!", \ - "[M] has attempted to kick [src]!") - - return - /mob/living/carbon/alien/larva/restrained(ignore_grab) . = 0 diff --git a/code/modules/mob/living/carbon/alien/larva/larva_defense.dm b/code/modules/mob/living/carbon/alien/larva/larva_defense.dm new file mode 100644 index 0000000000..e976375b6a --- /dev/null +++ b/code/modules/mob/living/carbon/alien/larva/larva_defense.dm @@ -0,0 +1,34 @@ + + +/mob/living/carbon/alien/larva/attack_hand(mob/living/carbon/human/M) + if(..()) + var/damage = rand(1, 9) + if (prob(90)) + playsound(loc, "punch", 25, 1, -1) + add_logs(M, src, "attacked") + visible_message("[M] has kicked [src]!", \ + "[M] has kicked [src]!", null, COMBAT_MESSAGE_RANGE) + if ((stat != DEAD) && (damage > 4.9)) + Paralyse(rand(5,10)) + + var/obj/item/bodypart/affecting = get_bodypart(ran_zone(M.zone_selected)) + apply_damage(damage, BRUTE, affecting) + else + playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1) + visible_message("[M] has attempted to kick [src]!", \ + "[M] has attempted to kick [src]!", null, COMBAT_MESSAGE_RANGE) + +/mob/living/carbon/alien/larva/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0) + if(user.a_intent == INTENT_HARM) + ..(user, 1) + adjustBruteLoss(5 + rand(1,9)) + spawn() + step_away(src,user,15) + sleep(1) + step_away(src,user,15) + return 1 + +/mob/living/carbon/alien/larva/do_attack_animation(atom/A, visual_effect_icon, obj/item/used_item, no_effect, end_pixel_y) + if(!no_effect && !visual_effect_icon) + visual_effect_icon = ATTACK_EFFECT_BITE + ..() diff --git a/code/modules/mob/living/carbon/alien/larva/life.dm b/code/modules/mob/living/carbon/alien/larva/life.dm index e27e0f8021..eda182b5c2 100644 --- a/code/modules/mob/living/carbon/alien/larva/life.dm +++ b/code/modules/mob/living/carbon/alien/larva/life.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 + /mob/living/carbon/alien/larva/Life() set invisibility = 0 @@ -6,7 +6,7 @@ if (notransform) return - if(..()) + if(..()) //not dead // GROW! if(amount_grown < max_grown) amount_grown++ @@ -20,7 +20,7 @@ if(health<= -maxHealth || !getorgan(/obj/item/organ/brain)) death() return - if(paralysis || sleeping || getOxyLoss() > 50 || (status_flags & FAKEDEATH) || health <= config.health_threshold_crit) + if(paralysis || sleeping || getOxyLoss() > 50 || (status_flags & FAKEDEATH) || health <= HEALTH_THRESHOLD_CRIT) if(stat == CONSCIOUS) stat = UNCONSCIOUS blind_eyes(1) diff --git a/code/modules/mob/living/carbon/alien/larva/update_icons.dm b/code/modules/mob/living/carbon/alien/larva/update_icons.dm index 8d28dc9cab..c99726dfbe 100644 --- a/code/modules/mob/living/carbon/alien/larva/update_icons.dm +++ b/code/modules/mob/living/carbon/alien/larva/update_icons.dm @@ -5,7 +5,7 @@ /mob/living/carbon/alien/larva/update_icons() var/state = 0 - if(amount_grown > 150) + if(amount_grown > 80) state = 2 else if(amount_grown > 50) state = 1 diff --git a/code/modules/mob/living/carbon/alien/life.dm b/code/modules/mob/living/carbon/alien/life.dm index f2e8958704..0bfd788846 100644 --- a/code/modules/mob/living/carbon/alien/life.dm +++ b/code/modules/mob/living/carbon/alien/life.dm @@ -1,3 +1,6 @@ +/mob/living/carbon/alien/Life() + findQueen() + return..() /mob/living/carbon/alien/check_breath(datum/gas_mixture/breath) if(status_flags & GODMODE) @@ -42,4 +45,10 @@ move_delay_add = max(0, move_delay_add - rand(1, 2)) /mob/living/carbon/alien/handle_changeling() + return + +/mob/living/carbon/alien/handle_fire()//Aliens on fire code + if(..()) + return + bodytemperature += BODYTEMP_HEATING_MAX //If you're on fire, you heat up! return \ No newline at end of file diff --git a/code/modules/mob/living/carbon/alien/organs.dm b/code/modules/mob/living/carbon/alien/organs.dm index c8ef333c04..a148473f03 100644 --- a/code/modules/mob/living/carbon/alien/organs.dm +++ b/code/modules/mob/living/carbon/alien/organs.dm @@ -31,7 +31,7 @@ name = "plasma vessel" icon_state = "plasma" origin_tech = "biotech=5;plasmatech=4" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL zone = "chest" slot = "plasmavessel" alien_powers = list(/obj/effect/proc_holder/alien/plant, /obj/effect/proc_holder/alien/transfer) @@ -49,7 +49,7 @@ /obj/item/organ/alien/plasmavessel/large name = "large plasma vessel" icon_state = "plasma_large" - w_class = 4 + w_class = WEIGHT_CLASS_BULKY storedPlasma = 200 max_plasma = 500 plasma_rate = 15 @@ -61,7 +61,7 @@ /obj/item/organ/alien/plasmavessel/small name = "small plasma vessel" icon_state = "plasma_small" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL storedPlasma = 100 max_plasma = 150 plasma_rate = 5 @@ -69,7 +69,7 @@ /obj/item/organ/alien/plasmavessel/small/tiny name = "tiny plasma vessel" icon_state = "plasma_tiny" - w_class = 1 + w_class = WEIGHT_CLASS_TINY max_plasma = 100 alien_powers = list(/obj/effect/proc_holder/alien/transfer) @@ -107,7 +107,7 @@ zone = "head" slot = "hivenode" origin_tech = "biotech=5;magnets=4;bluespace=3" - w_class = 1 + w_class = WEIGHT_CLASS_TINY var/recent_queen_death = 0 //Indicates if the queen died recently, aliens are heavily weakened while this is active. alien_powers = list(/obj/effect/proc_holder/alien/whisper) @@ -182,6 +182,6 @@ icon_state = "eggsac" zone = "groin" slot = "eggsac" - w_class = 4 + w_class = WEIGHT_CLASS_BULKY origin_tech = "biotech=6" alien_powers = list(/obj/effect/proc_holder/alien/lay_egg) diff --git a/code/modules/mob/living/carbon/alien/screen.dm b/code/modules/mob/living/carbon/alien/screen.dm index 258a5a3cf6..700680486a 100644 --- a/code/modules/mob/living/carbon/alien/screen.dm +++ b/code/modules/mob/living/carbon/alien/screen.dm @@ -4,4 +4,31 @@ hud_used.alien_plasma_display.maptext = "
    [round(getPlasma())]
    " /mob/living/carbon/alien/larva/updatePlasmaDisplay() - return \ No newline at end of file + return + +/mob/living/carbon/alien/proc/findQueen() + if(hud_used) + hud_used.alien_queen_finder.cut_overlays() + var/mob/queen = get_alien_type(/mob/living/carbon/alien/humanoid/royal/queen) + if(!queen) + return + var/turf/Q = get_turf(queen) + var/turf/A = get_turf(src) + if(Q.z != A.z) //The queen is on a different Z level, we cannot sense that far. + return + var/Qdir = get_dir(src, Q) + var/Qdist = get_dist(src, Q) + image(icon,loc,icon_state,layer,dir) + var/finder_icon = "finder_center" //Overlay showed when adjacent to or on top of the queen! + switch(Qdist) + if(2 to 7) + finder_icon = "finder_near" + if(8 to 20) + finder_icon = "finder_med" + if(21 to INFINITY) + finder_icon = "finder_far" + var/image/finder_eye = image('icons/mob/screen_alien.dmi', icon_state = finder_icon, dir = Qdir) + hud_used.alien_queen_finder.add_overlay(finder_eye) + +/mob/living/carbon/alien/humanoid/royal/queen/findQueen() + return //Queen already knows where she is. Hopefully. \ No newline at end of file diff --git a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm index 4e26995a3b..897ff345e7 100644 --- a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm +++ b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm @@ -41,7 +41,7 @@ var/const/ALIEN_AFK_BRACKET = 450 // 45 seconds if(prob(4)) owner << "Your muscles ache." if(prob(20)) - owner.take_organ_damage(1) + owner.take_bodypart_damage(1) if(prob(4)) owner << "Your stomach hurts." if(prob(20)) @@ -99,7 +99,7 @@ var/const/ALIEN_AFK_BRACKET = 450 // 45 seconds new_xeno.notransform = 0 new_xeno.invisibility = 0 if(gib_on_success) - owner.gib() + owner.gib(TRUE) else owner.adjustBruteLoss(40) owner.overlays -= overlay diff --git a/code/modules/mob/living/carbon/alien/special/facehugger.dm b/code/modules/mob/living/carbon/alien/special/facehugger.dm index 4fb5562060..c90136a0cd 100644 --- a/code/modules/mob/living/carbon/alien/special/facehugger.dm +++ b/code/modules/mob/living/carbon/alien/special/facehugger.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 + //TODO: Make these simple_animals @@ -14,7 +14,7 @@ var/const/MAX_ACTIVE_TIME = 400 icon = 'icons/mob/alien.dmi' icon_state = "facehugger" item_state = "facehugger" - w_class = 1 //note: can be picked up by aliens unlike most other items of w_class below 4 + w_class = WEIGHT_CLASS_TINY //note: can be picked up by aliens unlike most other items of w_class below 4 flags = MASKINTERNALS throw_range = 5 tint = 3 @@ -23,8 +23,8 @@ var/const/MAX_ACTIVE_TIME = 400 var/stat = CONSCIOUS //UNCONSCIOUS is the idle state in this case - var/sterile = 0 - var/real = 1 //0 for the toy, 1 for real. Sure I could istype, but fuck that. + var/sterile = FALSE + var/real = TRUE //0 for the toy, 1 for real. Sure I could istype, but fuck that. var/strength = 5 var/attached = 0 @@ -33,6 +33,16 @@ var/const/MAX_ACTIVE_TIME = 400 name = "Lamarr" sterile = 1 +/obj/item/clothing/mask/facehugger/dead + icon_state = "facehugger_dead" + item_state = "facehugger_inactive" + stat = DEAD + +/obj/item/clothing/mask/facehugger/impregnated + icon_state = "facehugger_impregnated" + item_state = "facehugger_impregnated" + stat = DEAD + /obj/item/clothing/mask/facehugger/attack_alien(mob/user) //can be picked up by aliens attack_hand(user) return @@ -68,7 +78,6 @@ var/const/MAX_ACTIVE_TIME = 400 /obj/item/clothing/mask/facehugger/bullet_act(obj/item/projectile/P) if(P.damage) Die() - return /obj/item/clothing/mask/facehugger/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) if(exposed_temperature > 300) @@ -92,7 +101,7 @@ var/const/MAX_ACTIVE_TIME = 400 return Attach(AM) return 0 -/obj/item/clothing/mask/facehugger/throw_at(atom/target, range, speed, mob/thrower, spin) +/obj/item/clothing/mask/facehugger/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0) if(!..()) return if(stat == CONSCIOUS) @@ -107,62 +116,82 @@ var/const/MAX_ACTIVE_TIME = 400 icon_state = "[initial(icon_state)]" Attach(hit_atom) -/obj/item/clothing/mask/facehugger/proc/Attach(mob/living/M) - if(!isliving(M)) - return 0 - if((!iscorgi(M) && !iscarbon(M)) || isalien(M)) - return 0 - if(attached) - return 0 - else - attached++ - spawn(MAX_IMPREGNATION_TIME) - attached = 0 - if(M.getorgan(/obj/item/organ/alien/hivenode)) - return 0 - if(M.getorgan(/obj/item/organ/body_egg/alien_embryo)) - return 0 +/obj/item/clothing/mask/facehugger/proc/valid_to_attach(mob/living/M) + // valid targets: corgis, carbons except aliens and devils + // facehugger state early exit checks if(stat != CONSCIOUS) - return 0 - if(!sterile) M.take_organ_damage(strength,0) //done here so that even borgs and humans in helmets take damage + return FALSE + if(attached) + return FALSE + if(!iscorgi(M) && !iscarbon(M)) + return FALSE + if(iscarbon(M)) + // disallowed carbons + if(isalien(M) || isdevil(M)) + return FALSE + var/mob/living/carbon/target = M + // gotta have a head to be implanted (no changelings or sentient plants) + if(!target.get_bodypart("head")) + return FALSE + + if(target.getorgan(/obj/item/organ/alien/hivenode) || target.getorgan(/obj/item/organ/body_egg/alien_embryo)) + return FALSE + // carbon, has head, not alien or devil, has no hivenode or embryo: valid + return TRUE + else if(iscorgi(M)) + // corgi: valid + return TRUE + +/obj/item/clothing/mask/facehugger/proc/Attach(mob/living/M) + if(!valid_to_attach(M)) + return FALSE + // passed initial checks - time to leap! M.visible_message("[src] leaps at [M]'s face!", \ - "[src] leaps at [M]'s face!") - if(ishuman(M)) - var/mob/living/carbon/human/H = M - if(H.is_mouth_covered(head_only = 1)) - H.visible_message("[src] smashes against [H]'s [H.head]!", \ - "[src] smashes against [H]'s [H.head]!") - Die() - return 0 + "[src] leaps at [M]'s face!") + + // probiscis-blocker handling if(iscarbon(M)) var/mob/living/carbon/target = M if(target.wear_mask) - if(prob(20)) - return 0 var/obj/item/clothing/W = target.wear_mask if(W.flags & NODROP) - return 0 - target.unEquip(W) - - target.visible_message("[src] tears [W] off of [target]'s face!", \ + return FALSE + if(!istype(W,/obj/item/clothing/mask/facehugger)) + target.unEquip(W) + target.visible_message("[src] tears [W] off of [target]'s face!", \ "[src] tears [W] off of [target]'s face!") + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(H.is_mouth_covered(head_only = 1)) + H.visible_message("[src] smashes against [H]'s [H.head]!", \ + "[src] smashes against [H]'s [H.head]!") + Die() + return FALSE src.loc = target - target.equip_to_slot(src, slot_wear_mask,,0) - if(!sterile) - M.Paralyse(MAX_IMPREGNATION_TIME/6) //something like 25 ticks = 20 seconds with the default settings - else if (iscorgi(M)) + target.equip_to_slot_if_possible(src, slot_wear_mask, 0, 1, 1) + // early returns and validity checks done: attach. + attached++ + //ensure we detach once we no longer need to be attached + spawn(MAX_IMPREGNATION_TIME) + attached = 0 + + if (iscorgi(M)) var/mob/living/simple_animal/pet/dog/corgi/C = M loc = C C.facehugger = src C.regenerate_icons() + if(!sterile) + M.take_bodypart_damage(strength,0) //done here so that humans in helmets take damage + M.Paralyse(MAX_IMPREGNATION_TIME/6) //something like 25 ticks = 20 seconds with the default settings + GoIdle() //so it doesn't jump the people that tear it off spawn(rand(MIN_IMPREGNATION_TIME,MAX_IMPREGNATION_TIME)) Impregnate(M) - return 1 + return TRUE // time for a smoke /obj/item/clothing/mask/facehugger/proc/Impregnate(mob/living/target) if(!target || target.stat == DEAD) //was taken off or something @@ -182,7 +211,7 @@ var/const/MAX_ACTIVE_TIME = 400 icon_state = "[initial(icon_state)]_impregnated" var/obj/item/bodypart/chest/LC = target.get_bodypart("chest") - if((!LC || LC.status != ORGAN_ROBOTIC) && !target.getorgan(/obj/item/organ/body_egg/alien_embryo)) + if((!LC || LC.status != BODYPART_ROBOTIC) && !target.getorgan(/obj/item/organ/body_egg/alien_embryo)) new /obj/item/organ/body_egg/alien_embryo(target) if(iscorgi(target)) diff --git a/code/modules/mob/living/carbon/alien/update_icons.dm b/code/modules/mob/living/carbon/alien/update_icons.dm new file mode 100644 index 0000000000..ec3753e697 --- /dev/null +++ b/code/modules/mob/living/carbon/alien/update_icons.dm @@ -0,0 +1,11 @@ + + + +/mob/living/carbon/alien/update_damage_overlays() //aliens don't have damage overlays. + return + +/mob/living/carbon/alien/update_body() // we don't use the bodyparts or body layers for aliens. + return + +/mob/living/carbon/alien/update_body_parts()//we don't use the bodyparts layer for aliens. + return \ No newline at end of file diff --git a/code/modules/mob/living/carbon/brain/brain.dm b/code/modules/mob/living/carbon/brain/brain.dm deleted file mode 100644 index d25626cd9b..0000000000 --- a/code/modules/mob/living/carbon/brain/brain.dm +++ /dev/null @@ -1,63 +0,0 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 - -/mob/living/carbon/brain - languages_spoken = HUMAN - languages_understood = HUMAN - var/obj/item/device/mmi/container = null - var/timeofhostdeath = 0 - var/emp_damage = 0//Handles a type of MMI damage - has_limbs = 0 - stat = DEAD //we start dead by default - see_invisible = SEE_INVISIBLE_MINIMUM - -/mob/living/carbon/brain/New(loc) - ..() - if(isturf(loc)) //not spawned in an MMI or brain organ (most likely adminspawned) - var/obj/item/organ/brain/OB = new(loc) //we create a new brain organ for it. - src.loc = OB - OB.brainmob = src - - -/mob/living/carbon/brain/Destroy() - if(key) //If there is a mob connected to this thing. Have to check key twice to avoid false death reporting. - if(stat!=DEAD) //If not dead. - death(1) //Brains can die again. AND THEY SHOULD AHA HA HA HA HA HA - ghostize() //Ghostize checks for key so nothing else is necessary. - container = null - return ..() - -/mob/living/carbon/brain/update_canmove() - if(in_contents_of(/obj/mecha)) - canmove = 1 - else - canmove = 0 - return canmove - -/mob/living/carbon/brain/toggle_throw_mode() - return - -/mob/living/carbon/brain/ex_act() //you cant blow up brainmobs because it makes transfer_to() freak out when borgs blow up. - return - -/mob/living/carbon/brain/blob_act(obj/effect/blob/B) - return - -/mob/living/carbon/brain/UnarmedAttack(atom/A)//Stops runtimes due to attack_animal being the default - return - -/mob/living/carbon/brain/check_ear_prot() - return 1 - -/mob/living/carbon/brain/flash_eyes(intensity = 1, override_blindness_check = 0, affect_silicon = 0) - return // no eyes, no flashing - -/mob/living/carbon/brain/update_damage_hud() - return //no red circles for brain - -/mob/living/carbon/brain/can_be_revived() - . = 1 - if(!container || health <= config.health_threshold_dead) - return 0 - -/mob/living/carbon/brain/update_sight() - return diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index aff7036b94..1071055f20 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -3,15 +3,18 @@ /mob/living/carbon/New() create_reagents(1000) + update_body_parts() //to update the carbon's new bodyparts appearance ..() /mob/living/carbon/Destroy() - for(var/atom/movable/guts in internal_organs) + for(var/guts in internal_organs) qdel(guts) for(var/atom/movable/food in stomach_contents) qdel(food) for(var/BP in bodyparts) qdel(BP) + for(var/imp in implants) + qdel(imp) bodyparts = list() remove_from_all_data_huds() if(dna) @@ -25,19 +28,12 @@ audible_message("You hear something rumbling inside [src]'s stomach...", \ "You hear something rumbling.", 4,\ "Something is rumbling inside your stomach!") - var/obj/item/I = user.get_active_hand() + var/obj/item/I = user.get_active_held_item() if(I && I.force) var/d = rand(round(I.force / 4), I.force) - if(istype(src, /mob/living/carbon/human)) - var/mob/living/carbon/human/H = src - var/organ = H.get_bodypart("chest") - if (istype(organ, /obj/item/bodypart)) - var/obj/item/bodypart/temp = organ - if(temp.take_damage(d, 0)) - H.update_damage_overlays(0) - H.updatehealth() - else - src.take_organ_damage(d) + var/obj/item/bodypart/BP = get_bodypart("chest") + if(BP.receive_damage(d, 0)) + update_damage_overlays() visible_message("[user] attacks [src]'s stomach wall with the [I.name]!", \ "[user] attacks your stomach wall with the [I.name]!") playsound(user.loc, 'sound/effects/attackblob.ogg', 50, 1) @@ -49,140 +45,65 @@ src.gib() -/mob/living/carbon/electrocute_act(shock_damage, obj/source, siemens_coeff = 1, override = 0, tesla_shock = 0) - shock_damage *= siemens_coeff - if(dna && dna.species) - shock_damage *= dna.species.siemens_coeff - if(shock_damage<1 && !override) - return 0 - if(reagents.has_reagent("teslium")) - shock_damage *= 1.5 //If the mob has teslium in their body, shocks are 50% more damaging! - take_overall_damage(0,shock_damage) - //src.adjustFireLoss(shock_damage) - //src.updatehealth() - visible_message( - "[src] was shocked by \the [source]!", \ - "You feel a powerful shock coursing through your body!", \ - "You hear a heavy electrical crack." \ - ) - jitteriness += 1000 //High numbers for violent convulsions - do_jitter_animation(jitteriness) - stuttering += 2 - if(!tesla_shock || (tesla_shock && siemens_coeff > 0.5)) - Stun(2) - spawn(20) - jitteriness = max(jitteriness - 990, 10) //Still jittery, but vastly less - if(!tesla_shock || (tesla_shock && siemens_coeff > 0.5)) - Stun(3) - Weaken(3) - if(override) - return override - else - return shock_damage +/mob/living/carbon/swap_hand(held_index) + if(!held_index) + held_index = (active_hand_index % held_items.len)+1 - -/mob/living/carbon/swap_hand() - var/obj/item/item_in_hand = src.get_active_hand() + var/obj/item/item_in_hand = src.get_active_held_item() if(item_in_hand) //this segment checks if the item in your hand is twohanded. if(istype(item_in_hand,/obj/item/weapon/twohanded)) if(item_in_hand:wielded == 1) usr << "Your other hand is too busy holding the [item_in_hand.name]" return - src.hand = !( src.hand ) - if(hud_used && hud_used.inv_slots[slot_l_hand] && hud_used.inv_slots[slot_r_hand]) + var/oindex = active_hand_index + active_hand_index = held_index + if(hud_used) var/obj/screen/inventory/hand/H - H = hud_used.inv_slots[slot_l_hand] - H.update_icon() - H = hud_used.inv_slots[slot_r_hand] - H.update_icon() - /*if (!( src.hand )) - src.hands.setDir(NORTH) - else - src.hands.setDir(SOUTH)*/ - return + H = hud_used.hand_slots["[oindex]"] + if(H) + H.update_icon() + H = hud_used.hand_slots["[held_index]"] + if(H) + H.update_icon() -/mob/living/carbon/activate_hand(selhand) //0 or "r" or "right" for right hand; 1 or "l" or "left" for left hand. + +/mob/living/carbon/activate_hand(selhand) //l/r OR 1-held_items.len + if(!selhand) + selhand = (active_hand_index % held_items.len)+1 if(istext(selhand)) selhand = lowertext(selhand) - if(selhand == "right" || selhand == "r") - selhand = 0 + selhand = 2 if(selhand == "left" || selhand == "l") selhand = 1 - if(selhand != src.hand) - swap_hand() + if(selhand != active_hand_index) + swap_hand(selhand) else mode() // Activate held item -/mob/living/carbon/proc/help_shake_act(mob/living/carbon/M) - if(on_fire) - M << "You can't put them out with just your bare hands!" - return +/mob/living/carbon/attackby(obj/item/I, mob/user, params) + if(lying && surgeries.len) + if(user != src && user.a_intent == INTENT_HELP) + for(var/datum/surgery/S in surgeries) + if(S.next_step(user)) + return 1 + return ..() - if(health >= 0 && !(status_flags & FAKEDEATH)) - - if(lying) - M.visible_message("[M] shakes [src] trying to get them up!", \ - "You shake [src] trying to get them up!") - else - M.visible_message("[M] hugs [src] to make them feel better!", \ - "You hug [src] to make them feel better!") - AdjustSleeping(-5) - AdjustParalysis(-3) - AdjustStunned(-3) - AdjustWeakened(-3) - if(resting) - resting = 0 - update_canmove() - - playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) - -/mob/living/carbon/flash_eyes(intensity = 1, override_blindness_check = 0, affect_silicon = 0, visual = 0) +/mob/living/carbon/throw_impact(atom/hit_atom) . = ..() - - var/damage = intensity - check_eye_prot() - if(.) // we've been flashed - if(visual) - return - if(weakeyes) - Stun(2) - - if (damage == 1) - src << "Your eyes sting a little." - if(prob(40)) - adjust_eye_damage(1) - - else if (damage == 2) - src << "Your eyes burn." - adjust_eye_damage(rand(2, 4)) - - else if( damage > 3) - src << "Your eyes itch and burn severely!" - adjust_eye_damage(rand(12, 16)) - - if(eye_damage > 10) - blind_eyes(damage) - blur_eyes(damage * rand(3, 6)) - - if(eye_damage > 20) - if(prob(eye_damage - 20)) - if(become_nearsighted()) - src << "Your eyes start to burn badly!" - else if(prob(eye_damage - 25)) - if(become_blind()) - src << "You can't see anything!" - else - src << "Your eyes are really starting to hurt. This can't be good for you!" - if(has_bane(BANE_LIGHT)) - mind.disrupt_spells(-500) - return 1 - else if(damage == 0) // just enough protection - if(prob(20)) - src << "Something bright flashes in the corner of your vision!" - if(has_bane(BANE_LIGHT)) - mind.disrupt_spells(0) + if(hit_atom.density && isturf(hit_atom)) + Weaken(1) + take_bodypart_damage(10) + if(iscarbon(hit_atom)) + var/mob/living/carbon/victim = hit_atom + victim.Weaken(1) + Weaken(1) + victim.take_bodypart_damage(10) + take_bodypart_damage(10) + visible_message("[src] crashes into [victim], knocking them both over!", "You violently crash into [victim]!") + playsound(src,'sound/weapons/punch1.ogg',50,1) //Throwing stuff @@ -217,7 +138,7 @@ return var/atom/movable/thrown_thing - var/obj/item/I = src.get_active_hand() + var/obj/item/I = src.get_active_held_item() if(!I) if(pulling && isliving(pulling) && grab_state >= GRAB_AGGRESSIVE) @@ -256,8 +177,11 @@

    Head: [(head && !(head.flags&ABSTRACT)) ? head : "Nothing"]
    Mask: [(wear_mask && !(wear_mask.flags&ABSTRACT)) ? wear_mask : "Nothing"] -
    Left Hand: [(l_hand && !(l_hand.flags&ABSTRACT)) ? l_hand : "Nothing"] -
    Right Hand: [(r_hand && !(r_hand.flags&ABSTRACT)) ? r_hand : "Nothing"]"} +
    Neck: [(wear_neck && !(wear_neck.flags&ABSTRACT)) ? wear_neck : "Nothing"]"} + + for(var/i in 1 to held_items.len) + var/obj/item/I = get_item_for_held_index(i) + dat += "
    [get_held_index_name(i)]:
    [(I && !(I.flags & ABSTRACT)) ? I : "Nothing"]" dat += "
    Back: [back ? back : "Nothing"]" @@ -305,13 +229,6 @@ /mob/living/carbon/is_muzzled() return(istype(src.wear_mask, /obj/item/clothing/mask/muzzle)) -/mob/living/carbon/blob_act(obj/effect/blob/B) - if (stat == DEAD) - return - else - show_message("The blob attacks!") - adjustBruteLoss(10) - /mob/living/carbon/proc/spin(spintime, speed) set waitfor = 0 var/D = dir @@ -347,7 +264,7 @@ /mob/living/carbon/resist_fire() fire_stacks -= 5 - Weaken(3,1) + Weaken(3, 1, 1) spin(32,2) visible_message("[src] rolls on the floor, trying to put themselves out!", \ "You stop, drop, and roll!") @@ -407,6 +324,7 @@ W.dropped(src) if (W) W.layer = initial(W.layer) + W.plane = initial(W.plane) if (legcuffed) var/obj/item/weapon/W = legcuffed legcuffed = null @@ -418,6 +336,7 @@ W.dropped(src) if (W) W.layer = initial(W.layer) + W.plane = initial(W.plane) /mob/living/carbon/proc/clear_cuffs(obj/item/I, cuff_break) if(!I.loc || buckled) @@ -452,6 +371,10 @@ legcuffed = null update_inv_legcuffed() return + else + unEquip(I) + I.dropped() + return return TRUE /mob/living/carbon/proc/is_mouth_covered(head_only = 0, mask_only = 0) @@ -464,10 +387,6 @@ else return initial(pixel_y) -/mob/living/carbon/check_ear_prot() - if(head && (head.flags & HEADBANGPROTECT)) - return 1 - /mob/living/carbon/proc/accident(obj/item/I) if(!I || (I.flags & (NODROP|ABSTRACT))) return @@ -496,17 +415,6 @@ var/turf/target = get_turf(loc) I.throw_at(target,I.throw_range,I.throw_speed,src) -/mob/living/carbon/emp_act(severity) - for(var/obj/item/organ/O in internal_organs) - O.emp_act(severity) - ..() - -/mob/living/carbon/check_eye_prot() - var/number = ..() - for(var/obj/item/organ/cyberimp/eyes/EFP in internal_organs) - number += EFP.flash_protect - return number - /mob/living/carbon/proc/AddAbility(obj/effect/proc_holder/alien/A) abilities.Add(A) A.on_gain(src) @@ -535,7 +443,15 @@ add_abilities_to_panel() +/mob/living/carbon/attack_ui(slot) + if(!has_hand_for_held_index(active_hand_index)) + return 0 + return ..() + /mob/living/carbon/proc/vomit(var/lost_nutrition = 10, var/blood = 0, var/stun = 1, var/distance = 0, var/message = 1, var/toxic = 0) + if(dna && dna.species && NOHUNGER in dna.species.species_traits) + return 1 + if(nutrition < 100 && !blood) if(message) visible_message("[src] dry heaves!", \ @@ -575,12 +491,27 @@ return 1 - /mob/living/carbon/fully_replace_character_name(oldname,newname) ..() if(dna) dna.real_name = real_name +//Updates the mob's health from bodyparts and mob damage variables +/mob/living/carbon/updatehealth() + if(status_flags & GODMODE) + return + var/total_burn = 0 + var/total_brute = 0 + for(var/X in bodyparts) //hardcoded to streamline things a bit + var/obj/item/bodypart/BP = X + total_brute += BP.brute_dam + total_burn += BP.burn_dam + health = maxHealth - getOxyLoss() - getToxLoss() - getCloneLoss() - total_burn - total_brute + update_stat() + if(((maxHealth - total_burn) < HEALTH_THRESHOLD_DEAD) && stat == DEAD ) + become_husk() + med_hud_set_health() + /mob/living/carbon/update_sight() if(!client) return @@ -636,7 +567,7 @@ if(!client) return - if(stat == UNCONSCIOUS && health <= config.health_threshold_crit) + if(stat == UNCONSCIOUS && health <= HEALTH_THRESHOLD_CRIT) var/severity = 0 switch(health) if(-20 to -10) severity = 1 @@ -714,10 +645,10 @@ if(status_flags & GODMODE) return if(stat != DEAD) - if(health<= config.health_threshold_dead || !getorgan(/obj/item/organ/brain)) + if(health<= HEALTH_THRESHOLD_DEAD || !getorgan(/obj/item/organ/brain)) death() return - if(paralysis || sleeping || getOxyLoss() > 50 || (status_flags & FAKEDEATH) || health <= config.health_threshold_crit) + if(paralysis || sleeping || getOxyLoss() > 50 || (status_flags & FAKEDEATH) || health <= HEALTH_THRESHOLD_CRIT) if(stat == CONSCIOUS) stat = UNCONSCIOUS blind_eyes(1) @@ -735,8 +666,7 @@ //called when we get cuffed/uncuffed /mob/living/carbon/proc/update_handcuffed() if(handcuffed) - drop_r_hand() - drop_l_hand() + drop_all_held_items() stop_pulling() throw_alert("handcuffed", /obj/screen/alert/restrained/handcuffed, new_master = src.handcuffed) else @@ -752,8 +682,10 @@ if(B) B.damaged_brain = 0 for(var/datum/disease/D in viruses) - D.cure(0) + if (D.severity != NONTHREAT) + D.cure(0) if(admin_revive) + regenerate_limbs() handcuffed = initial(handcuffed) for(var/obj/item/weapon/restraints/R in contents) //actually remove cuffs from inventory qdel(R) @@ -771,7 +703,8 @@ if(qdeleted(src)) return var/organs_amt = 0 - for(var/obj/item/organ/O in internal_organs) + for(var/X in internal_organs) + var/obj/item/organ/O = X if(prob(50)) organs_amt++ O.Remove(src) @@ -781,12 +714,59 @@ ..() -/mob/living/carbon/adjustToxLoss(amount, updating_health=1) - if(has_dna() && TOXINLOVER in dna.species.specflags) //damage becomes healing and healing becomes damage - amount = -amount - if(amount > 0) - blood_volume -= 5*amount - else - blood_volume -= amount - return ..() +/mob/living/carbon/ExtinguishMob() + for(var/X in get_equipped_items()) + var/obj/item/I = X + I.acid_level = 0 //washes off the acid on our clothes + I.extinguish() //extinguishes our clothes + ..() +/mob/living/carbon/fakefire(var/fire_icon = "Generic_mob_burning") + overlays_standing[FIRE_LAYER] = image("icon"='icons/mob/OnFire.dmi', "icon_state"= fire_icon, "layer"=-FIRE_LAYER) + apply_overlay(FIRE_LAYER) + +/mob/living/carbon/fakefireextinguish() + remove_overlay(FIRE_LAYER) + + +/mob/living/carbon/proc/devour_mob(mob/living/carbon/C, devour_time = 130) + C.visible_message("[src] is attempting to devour [C]!", \ + "[src] is attempting to devour you!") + if(!do_mob(src, C, devour_time)) + return + if(pulling && pulling == C && grab_state >= GRAB_AGGRESSIVE && a_intent == INTENT_GRAB) + C.visible_message("[src] devours [C]!", \ + "[src] devours you!") + C.forceMove(src) + stomach_contents.Add(C) + add_logs(src, C, "devoured") + +/mob/living/carbon/proc/create_bodyparts() + var/l_arm_index_next = -1 + var/r_arm_index_next = 0 + for(var/X in bodyparts) + var/obj/item/bodypart/O = new X() + O.owner = src + bodyparts.Remove(X) + bodyparts.Add(O) + if(O.body_part == ARM_LEFT) + l_arm_index_next += 2 + O.held_index = l_arm_index_next //1, 3, 5, 7... + hand_bodyparts += O + else if(O.body_part == ARM_RIGHT) + r_arm_index_next += 2 + O.held_index = r_arm_index_next //2, 4, 6, 8... + hand_bodyparts += O + + +/mob/living/carbon/proc/create_internal_organs() + for(var/X in internal_organs) + var/obj/item/organ/I = X + I.Insert(src) + +/mob/living/carbon/vv_get_dropdown() + . = ..() + . += "---" + .["Make AI"] = "?_src_=vars;makeai=\ref[src]" + .["Modify bodypart"] = "?_src_=vars;editbodypart=\ref[src]" + .["Modify organs"] = "?_src_=vars;editorgans=\ref[src]" diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index d8fa8ff538..663c9f236a 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -1,6 +1,22 @@ + +/mob/living/carbon/get_eye_protection() + var/number = ..() + for(var/obj/item/organ/cyberimp/eyes/EFP in internal_organs) + number += EFP.flash_protect + return number + +/mob/living/carbon/get_ear_protection() + if(head && (head.flags & HEADBANGPROTECT)) + return 1 + +/mob/living/carbon/check_projectile_dismemberment(obj/item/projectile/P, def_zone) + var/obj/item/bodypart/affecting = get_bodypart(def_zone) + if(affecting && affecting.dismemberable && affecting.get_damage() >= (affecting.max_damage - P.dismemberment)) + affecting.dismember(P.damtype) + /mob/living/carbon/hitby(atom/movable/AM, skipcatch, hitpush = 1, blocked = 0) if(!skipcatch) //ugly, but easy - if(in_throw_mode && !get_active_hand()) //empty active hand and we're in throw mode + if(in_throw_mode && !get_active_held_item()) //empty active hand and we're in throw mode if(canmove && !restrained()) if(istype(AM, /obj/item)) var/obj/item/I = AM @@ -11,25 +27,46 @@ return 1 ..() -/mob/living/carbon/throw_impact(atom/hit_atom) - . = ..() - if(hit_atom.density && isturf(hit_atom)) - Weaken(1) - take_organ_damage(10) -/mob/living/carbon/attackby(obj/item/I, mob/user, params) - if(lying) - if(surgeries.len) - if(user != src && user.a_intent == "help") - for(var/datum/surgery/S in surgeries) - if(S.next_step(user, src)) - return 1 - return ..() +/mob/living/carbon/attacked_by(obj/item/I, mob/living/user) + var/obj/item/bodypart/affecting = get_bodypart(ran_zone(user.zone_selected)) + if(!affecting) //missing limb? we select the first bodypart (you can never have zero, because of chest) + affecting = bodyparts[1] + send_item_attack_message(I, user, affecting.name) + if(I.force) + apply_damage(I.force, I.damtype, affecting) + damage_clothes(I.force, I.damtype, "melee", affecting.body_zone) + if(I.damtype == BRUTE && affecting.status == BODYPART_ORGANIC) + if(prob(33)) + I.add_mob_blood(src) + var/turf/location = get_turf(src) + add_splatter_floor(location) + if(get_dist(user, src) <= 1) //people with TK won't get smeared with blood + user.add_mob_blood(src) + if(affecting.body_zone == "head") + if(wear_mask) + wear_mask.add_mob_blood(src) + update_inv_wear_mask() + if(wear_neck) + wear_neck.add_mob_blood(src) + update_inv_neck() + if(head) + head.add_mob_blood(src) + update_inv_head() + + //dismemberment + var/probability = I.get_dismemberment_chance(affecting) + if(prob(probability)) + if(affecting.dismember(I.damtype)) + I.add_mob_blood(src) + playsound(get_turf(src), I.get_dismember_sound(), 80, 1) + return TRUE //successful attack + +/mob/living/carbon/attack_drone(mob/living/simple_animal/drone/user) + return //so we don't call the carbon's attack_hand(). /mob/living/carbon/attack_hand(mob/living/carbon/human/user) - if(!iscarbon(user)) - return for(var/datum/disease/D in viruses) if(D.IsSpreadByTouch()) @@ -39,19 +76,15 @@ if(D.IsSpreadByTouch()) ContractDisease(D) - if(lying) - if(user.a_intent == "help") - if(surgeries.len) - for(var/datum/surgery/S in surgeries) - if(S.next_step(user, src)) - return 1 + if(lying && surgeries.len) + if(user.a_intent == INTENT_HELP) + for(var/datum/surgery/S in surgeries) + if(S.next_step(user)) + return 1 return 0 /mob/living/carbon/attack_paw(mob/living/carbon/monkey/M) - if(!istype(M, /mob/living/carbon)) - return 0 - for(var/datum/disease/D in viruses) if(D.IsSpreadByTouch()) M.ContractDisease(D) @@ -60,7 +93,7 @@ if(D.IsSpreadByTouch()) ContractDisease(D) - if(M.a_intent == "help") + if(M.a_intent == INTENT_HELP) help_shake_act(M) return 0 @@ -95,14 +128,177 @@ updatehealth() return 1 -/mob/living/carbon/proc/devour_mob(mob/living/carbon/C, devour_time = 130) - C.visible_message("[src] is attempting to devour [C]!", \ - "[src] is attempting to devour you!") - if(!do_mob(src, C, devour_time)) +/mob/living/carbon/proc/dismembering_strike(mob/living/attacker, dam_zone) + if(!attacker.limb_destroyer) + return dam_zone + var/obj/item/bodypart/affecting + if(dam_zone && attacker.client) + affecting = get_bodypart(ran_zone(dam_zone)) + else + var/list/things_to_ruin = shuffle(bodyparts.Copy()) + for(var/B in things_to_ruin) + var/obj/item/bodypart/bodypart = B + if(bodypart.body_zone == "head" || bodypart.body_zone == "chest") + continue + if(!affecting || ((affecting.get_damage() / affecting.max_damage) < (bodypart.get_damage() / bodypart.max_damage))) + affecting = bodypart + if(affecting) + dam_zone = affecting.body_zone + if(affecting.get_damage() >= affecting.max_damage) + affecting.dismember() + return null + return affecting.body_zone + return dam_zone + + +/mob/living/carbon/blob_act(obj/structure/blob/B) + if (stat == DEAD) return - if(pulling && pulling == C && grab_state >= GRAB_AGGRESSIVE && a_intent == "grab") - C.visible_message("[src] devours [C]!", \ - "[src] devours you!") - C.forceMove(src) - stomach_contents.Add(C) - add_logs(src, C, "devoured") \ No newline at end of file + else + show_message("The blob attacks!") + adjustBruteLoss(10) + +/mob/living/carbon/emp_act(severity) + for(var/X in internal_organs) + var/obj/item/organ/O = X + O.emp_act(severity) + ..() + +/mob/living/carbon/electrocute_act(shock_damage, obj/source, siemens_coeff = 1, safety = 0, override = 0, tesla_shock = 0, illusion = 0) + shock_damage *= siemens_coeff + if(dna && dna.species) + shock_damage *= dna.species.siemens_coeff + if(shock_damage<1 && !override) + return 0 + if(reagents.has_reagent("teslium")) + shock_damage *= 1.5 //If the mob has teslium in their body, shocks are 50% more damaging! + if(illusion) + adjustStaminaLoss(shock_damage) + else + take_overall_damage(0,shock_damage) + visible_message( + "[src] was shocked by \the [source]!", \ + "You feel a powerful shock coursing through your body!", \ + "You hear a heavy electrical crack." \ + ) + jitteriness += 1000 //High numbers for violent convulsions + do_jitter_animation(jitteriness) + stuttering += 2 + if(!tesla_shock || (tesla_shock && siemens_coeff > 0.5)) + Stun(2) + spawn(20) + jitteriness = max(jitteriness - 990, 10) //Still jittery, but vastly less + if(!tesla_shock || (tesla_shock && siemens_coeff > 0.5)) + Stun(3) + Weaken(3) + if(override) + return override + else + return shock_damage + +/mob/living/carbon/proc/help_shake_act(mob/living/carbon/M) + if(on_fire) + M << "You can't put them out with just your bare hands!" + return + + if(health >= 0 && !(status_flags & FAKEDEATH)) + + if(lying) + M.visible_message("[M] shakes [src] trying to get [p_them()] up!", \ + "You shake [src] trying to get [p_them()] up!") + else + M.visible_message("[M] hugs [src] to make [p_them()] feel better!", \ + "You hug [src] to make [p_them()] feel better!") + AdjustSleeping(-5) + AdjustParalysis(-3) + AdjustStunned(-3) + AdjustWeakened(-3) + if(resting) + resting = 0 + update_canmove() + + playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) + + +/mob/living/carbon/flash_act(intensity = 1, override_blindness_check = 0, affect_silicon = 0, visual = 0) + . = ..() + + var/damage = intensity - get_eye_protection() + if(.) // we've been flashed + if(visual) + return + if(weakeyes) + Stun(2) + + if (damage == 1) + src << "Your eyes sting a little." + if(prob(40)) + adjust_eye_damage(1) + + else if (damage == 2) + src << "Your eyes burn." + adjust_eye_damage(rand(2, 4)) + + else if( damage > 3) + src << "Your eyes itch and burn severely!" + adjust_eye_damage(rand(12, 16)) + + if(eye_damage > 10) + blind_eyes(damage) + blur_eyes(damage * rand(3, 6)) + + if(eye_damage > 20) + if(prob(eye_damage - 20)) + if(become_nearsighted()) + src << "Your eyes start to burn badly!" + else if(prob(eye_damage - 25)) + if(become_blind()) + src << "You can't see anything!" + else + src << "Your eyes are really starting to hurt. This can't be good for you!" + if(has_bane(BANE_LIGHT)) + mind.disrupt_spells(-500) + return 1 + else if(damage == 0) // just enough protection + if(prob(20)) + src << "Something bright flashes in the corner of your vision!" + if(has_bane(BANE_LIGHT)) + mind.disrupt_spells(0) + + +/mob/living/carbon/soundbang_act(intensity = 1, stun_pwr = 1, damage_pwr = 5, deafen_pwr = 15) + var/ear_safety = get_ear_protection() + if(ear_safety < 2) //has ears + var/effect_amount = intensity - ear_safety + if(effect_amount > 0) + if(stun_pwr) + Stun(stun_pwr*effect_amount) + Weaken(stun_pwr*effect_amount) + if(deafen_pwr || damage_pwr) + setEarDamage(ear_damage + damage_pwr*effect_amount, max(ear_deaf, deafen_pwr*effect_amount)) + if (ear_damage >= 15) + src << "Your ears start to ring badly!" + if(prob(ear_damage - 5)) + src << "You can't hear anything!" + disabilities |= DEAF + else if(ear_damage >= 5) + src << "Your ears start to ring!" + src << sound('sound/weapons/flash_ring.ogg',0,1,0,250) + return effect_amount //how soundbanged we are + + +/mob/living/carbon/damage_clothes(damage_amount, damage_type = BRUTE, damage_flag = 0, def_zone) + if(damage_type != BRUTE && damage_type != BURN) + return + damage_amount *= 0.5 //0.5 multiplier for balance reason, we don't want clothes to be too easily destroyed + if(!def_zone || def_zone == "head") + var/obj/item/clothing/hit_clothes + if(wear_mask) + hit_clothes = wear_mask + if(wear_neck) + hit_clothes = wear_neck + if(head) + hit_clothes = head + if(hit_clothes) + hit_clothes.take_damage(damage_amount, damage_type, damage_flag, 0) + diff --git a/code/modules/mob/living/carbon/carbon_defines.dm b/code/modules/mob/living/carbon/carbon_defines.dm index 523c524f23..cf43859dec 100644 --- a/code/modules/mob/living/carbon/carbon_defines.dm +++ b/code/modules/mob/living/carbon/carbon_defines.dm @@ -1,12 +1,12 @@ -/mob/living/ - var/list/stomach_contents = list() - /mob/living/carbon gender = MALE - //var/list/stomach_contents = list() + pressure_resistance = 15 + var/list/stomach_contents = list() var/list/internal_organs = list() //List of /obj/item/organ in the mob. They don't go in the contents for some reason I don't want to know. var/list/internal_organs_slot = list() //Same as above, but stores "slot ID" - "organ" pairs for easy access. + var/list/implants = list() + var/silent = 0 //Can't talk. Value goes down every life proc. //NOTE TO FUTURE CODERS: DO NOT INITIALIZE NUMERICAL VARS AS NULL OR I WILL MURDER YOU. var/obj/item/handcuffed = null //Whether or not the mob is handcuffed @@ -15,17 +15,24 @@ //inventory slots var/obj/item/back = null var/obj/item/clothing/mask/wear_mask = null + var/obj/item/clothing/neck/wear_neck = null var/obj/item/weapon/tank/internal = null var/obj/item/head = null + var/obj/item/gloves = null //only used by humans + var/obj/item/shoes = null //only used by humans. + var/obj/item/clothing/glasses/glasses = null //only used by humans. + var/obj/item/ears = null //only used by humans. + var/datum/dna/dna = null//Carbon + var/datum/mind/last_mind = null //last mind to control this mob, for blood-based cloning var/failed_last_breath = 0 //This is used to determine if the mob failed a breath. If they did fail a brath, they will attempt to breathe each tick, otherwise just once per 4 ticks. var/co2overloadtime = null var/temperature_resistance = T0C+75 has_limbs = 1 - var/obj/item/weapon/reagent_containers/food/snacks/meat/slab/type_of_meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/ + var/obj/item/weapon/reagent_containers/food/snacks/meat/slab/type_of_meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab var/list/obj/effect/proc_holder/alien/abilities = list() var/gib_type = /obj/effect/decal/cleanable/blood/gibs @@ -34,4 +41,8 @@ var/tinttotal = 0 // Total level of visualy impairing items - var/list/bodyparts = list() //Gets filled up in the constructor (New() proc in human.dm and monkey.dm) + var/list/bodyparts = list(/obj/item/bodypart/chest, /obj/item/bodypart/head, /obj/item/bodypart/l_arm, + /obj/item/bodypart/r_arm, /obj/item/bodypart/r_leg, /obj/item/bodypart/l_leg) + //Gets filled up in create_bodyparts() + + var/list/hand_bodyparts = list() //a collection of arms (or actually whatever the fug /bodyparts you monsters use to wreck my systems) \ No newline at end of file diff --git a/code/modules/mob/living/carbon/carbon_movement.dm b/code/modules/mob/living/carbon/carbon_movement.dm index 173bac9198..e6fd8c5be6 100644 --- a/code/modules/mob/living/carbon/carbon_movement.dm +++ b/code/modules/mob/living/carbon/carbon_movement.dm @@ -1,16 +1,35 @@ /mob/living/carbon/movement_delay() - . = ..() - . += grab_state * 3 - if(legcuffed) - . += legcuffed.slowdown + var/FP + if(iscarbon(src)) + var/mob/living/carbon/C = src + var/obj/item/device/flightpack/F = C.get_flightpack() + if(istype(F) && F.flight) + FP = 1 + . = ..(FP) + if(!FP) + . += grab_state * 1 //Flightpacks are too powerful to be slowed too much by the weight of a corpse. + else + . += grab_state * 3 //can't go fast while grabbing something. + + if(!get_leg_ignore()) //ignore the fact we lack legs + var/leg_amount = get_num_legs() + . += 6 - 3*leg_amount //the fewer the legs, the slower the mob + if(!leg_amount) + . += 6 - 3*get_num_arms() //crawling is harder with fewer arms + if(legcuffed) + . += legcuffed.slowdown var/const/NO_SLIP_WHEN_WALKING = 1 var/const/SLIDE = 2 var/const/GALOSHES_DONT_HELP = 4 +var/const/SLIDE_ICE = 8 /mob/living/carbon/slip(s_amount, w_amount, obj/O, lube) - add_logs(src,, "slipped",, "on [O ? O.name : "floor"]") + if(movement_type & FLYING) + return 0 + if(!(lube&SLIDE_ICE)) + add_logs(src,, "slipped",, "on [O ? O.name : "floor"]") return loc.handle_slip(src, s_amount, w_amount, O, lube) @@ -20,6 +39,10 @@ var/const/GALOSHES_DONT_HELP = 4 if(!isturf(loc)) return 0 + var/obj/item/device/flightpack/F = get_flightpack() + if(istype(F) && (F.flight) && F.allow_thrust(0.01, src)) + return 1 + // Do we have a jetpack implant (and is it on)? var/obj/item/organ/cyberimp/chest/thrusters/T = getorganslot("thrusters") if(istype(T) && movement_dir && T.allow_thrust(0.01)) @@ -29,14 +52,14 @@ var/const/GALOSHES_DONT_HELP = 4 if(istype(J) && (movement_dir || J.stabilizers) && J.allow_thrust(0.01, src)) return 1 - - /mob/living/carbon/Move(NewLoc, direct) . = ..() if(.) - if(src.nutrition && src.stat != 2) - src.nutrition -= HUNGER_FACTOR/10 - if(src.m_intent == "run") - src.nutrition -= HUNGER_FACTOR/10 - if((src.disabilities & FAT) && src.m_intent == "run" && src.bodytemperature <= 360) - src.bodytemperature += 2 + if(dna && dna.species && (NOHUNGER in dna.species.species_traits)) + nutrition = NUTRITION_LEVEL_FED - 1 //just less than feeling vigorous + else if(nutrition && stat != DEAD) + nutrition -= HUNGER_FACTOR/10 + if(m_intent == MOVE_INTENT_RUN) + nutrition -= HUNGER_FACTOR/10 + if((disabilities & FAT) && m_intent == MOVE_INTENT_RUN && bodytemperature <= 360) + bodytemperature += 2 diff --git a/code/modules/mob/living/carbon/damage_procs.dm b/code/modules/mob/living/carbon/damage_procs.dm new file mode 100644 index 0000000000..6279f103b0 --- /dev/null +++ b/code/modules/mob/living/carbon/damage_procs.dm @@ -0,0 +1,191 @@ + + +/mob/living/carbon/apply_damage(damage, damagetype = BRUTE, def_zone = null, blocked = 0) + var/hit_percent = (100-blocked)/100 + if(!damage || hit_percent <= 0) + return 0 + + var/obj/item/bodypart/BP = null + if(islimb(def_zone)) //we specified a bodypart object + BP = def_zone + else + if(!def_zone) + def_zone = ran_zone(def_zone) + BP = get_bodypart(check_zone(def_zone)) + if(!BP) + BP = bodyparts[1] + + switch(damagetype) + if(BRUTE) + if(BP) + if(BP.receive_damage(damage * hit_percent, 0)) + update_damage_overlays() + else //no bodypart, we deal damage with a more general method. + adjustBruteLoss(damage * hit_percent) + if(BURN) + if(BP) + if(BP.receive_damage(0, damage * hit_percent)) + update_damage_overlays() + else + adjustFireLoss(damage * hit_percent) + if(TOX) + adjustToxLoss(damage * hit_percent) + if(OXY) + adjustOxyLoss(damage * hit_percent) + if(CLONE) + adjustCloneLoss(damage * hit_percent) + if(STAMINA) + adjustStaminaLoss(damage * hit_percent) + return 1 + + +//These procs fetch a cumulative total damage from all bodyparts +/mob/living/carbon/getBruteLoss() + var/amount = 0 + for(var/X in bodyparts) + var/obj/item/bodypart/BP = X + amount += BP.brute_dam + return amount + +/mob/living/carbon/getFireLoss() + var/amount = 0 + for(var/X in bodyparts) + var/obj/item/bodypart/BP = X + amount += BP.burn_dam + return amount + + +/mob/living/carbon/adjustBruteLoss(amount, updating_health = 1) + if(status_flags & GODMODE) + return 0 + if(amount > 0) + take_overall_damage(amount, 0) + else + heal_overall_damage(-amount, 0, 0, 1, updating_health) + +/mob/living/carbon/adjustFireLoss(amount) + if(status_flags & GODMODE) + return 0 + if(amount > 0) + take_overall_damage(0, amount) + else + heal_overall_damage(0, -amount) + + +/mob/living/carbon/adjustToxLoss(amount, updating_health=1) + if(has_dna() && TOXINLOVER in dna.species.species_traits) //damage becomes healing and healing becomes damage + amount = -amount + if(amount > 0) + blood_volume -= 5*amount + else + blood_volume -= amount + return ..() + +//////////////////////////////////////////// + +//Returns a list of damaged bodyparts +/mob/living/carbon/proc/get_damaged_bodyparts(brute, burn) + var/list/obj/item/bodypart/parts = list() + for(var/X in bodyparts) + var/obj/item/bodypart/BP = X + if((brute && BP.brute_dam) || (burn && BP.burn_dam)) + parts += BP + return parts + +//Returns a list of damageable bodyparts +/mob/living/carbon/proc/get_damageable_bodyparts() + var/list/obj/item/bodypart/parts = list() + for(var/X in bodyparts) + var/obj/item/bodypart/BP = X + if(BP.brute_dam + BP.burn_dam < BP.max_damage) + parts += BP + return parts + +//Heals ONE bodypart randomly selected from damaged ones. +//It automatically updates damage overlays if necessary +//It automatically updates health status +/mob/living/carbon/heal_bodypart_damage(brute, burn, only_robotic = 0, only_organic = 1) + var/list/obj/item/bodypart/parts = get_damaged_bodyparts(brute,burn) + if(!parts.len) + return + var/obj/item/bodypart/picked = pick(parts) + if(picked.heal_damage(brute, burn, only_robotic, only_organic)) + update_damage_overlays() + +//Damages ONE bodypart randomly selected from damagable ones. +//It automatically updates damage overlays if necessary +//It automatically updates health status +/mob/living/carbon/take_bodypart_damage(brute, burn) + var/list/obj/item/bodypart/parts = get_damageable_bodyparts() + if(!parts.len) + return + var/obj/item/bodypart/picked = pick(parts) + if(picked.receive_damage(brute,burn)) + update_damage_overlays() + + +//Heal MANY bodyparts, in random order +/mob/living/carbon/heal_overall_damage(brute, burn, only_robotic = 0, only_organic = 1, updating_health = 1) + var/list/obj/item/bodypart/parts = get_damaged_bodyparts(brute,burn) + + var/update = 0 + while(parts.len && (brute>0 || burn>0) ) + var/obj/item/bodypart/picked = pick(parts) + + var/brute_was = picked.brute_dam + var/burn_was = picked.burn_dam + + update |= picked.heal_damage(brute,burn, only_robotic, only_organic, 0) + + brute -= (brute_was-picked.brute_dam) + burn -= (burn_was-picked.burn_dam) + + parts -= picked + if(updating_health) + updatehealth() + if(update) + update_damage_overlays() + +// damage MANY bodyparts, in random order +/mob/living/carbon/take_overall_damage(brute, burn, updating_health = 1) + if(status_flags & GODMODE) + return //godmode + + var/list/obj/item/bodypart/parts = get_damageable_bodyparts() + var/update = 0 + while(parts.len && (brute>0 || burn>0) ) + var/obj/item/bodypart/picked = pick(parts) + var/brute_per_part = round(brute/parts.len, 0.01) + var/burn_per_part = round(burn/parts.len, 0.01) + + var/brute_was = picked.brute_dam + var/burn_was = picked.burn_dam + + + update |= picked.receive_damage(brute_per_part,burn_per_part, 0) + + brute -= (picked.brute_dam - brute_was) + burn -= (picked.burn_dam - burn_was) + + parts -= picked + if(updating_health) + updatehealth() + if(update) + update_damage_overlays() + + + +/mob/living/carbon/adjustStaminaLoss(amount, updating_stamina = 1) + if(status_flags & GODMODE) + return 0 + staminaloss = Clamp(staminaloss + amount, 0, maxHealth*2) + if(updating_stamina) + update_stamina() + + +/mob/living/carbon/setStaminaLoss(amount, updating_stamina = 1) + if(status_flags & GODMODE) + return 0 + staminaloss = amount + if(updating_stamina) + update_stamina() diff --git a/code/modules/mob/living/carbon/death.dm b/code/modules/mob/living/carbon/death.dm index 4f51c28e95..945d72ff3d 100644 --- a/code/modules/mob/living/carbon/death.dm +++ b/code/modules/mob/living/carbon/death.dm @@ -3,19 +3,43 @@ losebreath = 0 ..() -/mob/living/carbon/gib(no_brain, no_organs) +/mob/living/carbon/gib(no_brain, no_organs, no_bodyparts) for(var/mob/M in src) if(M in stomach_contents) stomach_contents.Remove(M) - M.loc = loc + M.forceMove(loc) visible_message("[M] bursts out of [src]!") ..() -/mob/living/carbon/spill_organs(no_brain) - for(var/obj/item/organ/I in internal_organs) - if(no_brain && istype(I, /obj/item/organ/brain)) - continue - if(I) +/mob/living/carbon/spill_organs(no_brain, no_organs, no_bodyparts) + if(!no_bodyparts) + if(no_organs)//so the organs don't get transfered inside the bodyparts we'll drop. + for(var/X in internal_organs) + qdel(X) + else //we're going to drop all bodyparts except chest, so the only organs that needs spilling are those inside it. + for(var/X in internal_organs) + var/obj/item/organ/O = X + if(no_brain && istype(O, /obj/item/organ/brain)) + qdel(O) //so the brain isn't transfered to the head when the head drops. + continue + var/org_zone = check_zone(O.zone) //both groin and chest organs. + if(org_zone == "chest") + O.Remove(src) + O.forceMove(get_turf(src)) + O.throw_at_fast(get_edge_target_turf(src,pick(alldirs)),rand(1,3),5) + else + for(var/X in internal_organs) + var/obj/item/organ/I = X + if(no_brain && istype(I, /obj/item/organ/brain)) + qdel(I) + continue I.Remove(src) - I.loc = get_turf(src) + I.forceMove(get_turf(src)) I.throw_at_fast(get_edge_target_turf(src,pick(alldirs)),rand(1,3),5) + + +/mob/living/carbon/spread_bodyparts() + for(var/X in bodyparts) + var/obj/item/bodypart/BP = X + BP.drop_limb() + BP.throw_at_fast(get_edge_target_turf(src,pick(alldirs)),rand(1,3),5) \ No newline at end of file diff --git a/code/modules/mob/living/carbon/emote.dm b/code/modules/mob/living/carbon/emote.dm index a4eec49aea..24790733c4 100644 --- a/code/modules/mob/living/carbon/emote.dm +++ b/code/modules/mob/living/carbon/emote.dm @@ -14,10 +14,6 @@ //var/m_type = 1 switch(act)//Even carbon organisms want it alphabetically ordered.. - if ("aflap") - if (!src.restrained()) - message = "[src] flaps \his wings ANGRILY!" - m_type = 2 if ("airguitar") if (!src.restrained()) @@ -32,10 +28,6 @@ message = "[src] blinks rapidly." m_type = 1 - if ("blush","blushes") - message = "[src] blushes." - m_type = 1 - if ("bow","bows") if (!src.buckled) var/M = null @@ -82,15 +74,6 @@ message = "[src] makes a strong noise." m_type = 2 - if ("deathgasp","deathgasps") - message = "[src] seizes up and falls limp, \his eyes dead and lifeless..." - m_type = 1 - - if ("flap","flaps") - if (!src.restrained()) - message = "[src] flaps \his wings." - m_type = 2 - if ("gasp","gasps") if (!muzzled) ..(act) @@ -116,10 +99,6 @@ ..() return - if ("nod","nods") - message = "[src] nods." - m_type = 1 - if ("scream","screams") if (!muzzled) ..(act) @@ -127,10 +106,6 @@ message = "[src] makes a very loud noise." m_type = 2 - if ("shake","shakes") - message = "[src] shakes \his head." - m_type = 1 - if ("sneeze","sneezes") if (!muzzled) ..(act) @@ -145,10 +120,6 @@ message = "[src] sighs." m_type = 2 - if ("sniff","sniffs") - message = "[src] sniffs." - m_type = 2 - if ("snore","snores") if (!muzzled) ..(act) @@ -188,7 +159,7 @@ // Maybe some people are okay with that. for(var/mob/M in dead_mob_list) - if(!M.client || istype(M, /mob/new_player)) + if(!M.client || isnewplayer(M)) continue //skip monkeys, leavers and new players if(M.stat == DEAD && M.client && (M.client.prefs.chat_toggles & CHAT_GHOSTSIGHT) && !(M in viewers(src,null))) M.show_message(message) diff --git a/code/modules/mob/living/carbon/examine.dm b/code/modules/mob/living/carbon/examine.dm index 6842d856b0..91f0f79ab7 100644 --- a/code/modules/mob/living/carbon/examine.dm +++ b/code/modules/mob/living/carbon/examine.dm @@ -1,64 +1,90 @@ /mob/living/carbon/examine(mob/user) + var/t_He = p_they(TRUE) + var/t_His = p_their(TRUE) + var/t_his = p_their() + var/t_him = p_them() + var/t_has = p_have() + var/t_is = p_are() + var/msg = "*---------*\nThis is \icon[src] \a [src]!\n" if (handcuffed) - msg += "It is \icon[src.handcuffed] handcuffed!\n" + msg += "[t_He] [t_is] \icon[src.handcuffed] handcuffed!\n" if (head) - msg += "It has \icon[src.head] \a [src.head] on its head. \n" + msg += "[t_He] [t_is] wearing \icon[src.head] \a [src.head] on [t_his] head. \n" if (wear_mask) - msg += "It has \icon[src.wear_mask] \a [src.wear_mask] on its face.\n" - if (l_hand) - msg += "It has \icon[src.l_hand] \a [src.l_hand] in its left hand.\n" - if (r_hand) - msg += "It has \icon[src.r_hand] \a [src.r_hand] in its right hand.\n" + msg += "[t_He] [t_is] wearing \icon[src.wear_mask] \a [src.wear_mask] on [t_his] face.\n" + if (wear_neck) + msg += "[t_He] [t_is] wearing \icon[src.wear_neck] \a [src.wear_neck] around [t_his] neck.\n" + + for(var/obj/item/I in held_items) + if(!(I.flags & ABSTRACT)) + if(I.blood_DNA) + msg += "[t_He] [t_is] holding \icon[I] [I.gender==PLURAL?"some":"a"] blood-stained [I.name] in [t_his] [get_held_index_name(get_held_index_of_item(I))]!\n" + else + msg += "[t_He] [t_is] holding \icon[I] \a [I] in [t_his] [get_held_index_name(get_held_index_of_item(I))].\n" + if (back) - msg += "It has \icon[src.back] \a [src.back] on its back.\n" + msg += "[t_He] [t_has] \icon[src.back] \a [src.back] on [t_his] back.\n" + var/appears_dead = 0 if (stat == DEAD) - msg += "It is limp and unresponsive, with no signs of life.\n" - else - msg += "" - var/temp = getBruteLoss() - if(temp) - if (temp < 30) - msg += "It has minor bruising.\n" - else - msg += "It has severe bruising!\n" + appears_dead = 1 + if(getorgan(/obj/item/organ/brain)) + msg += "[t_He] [t_is] limp and unresponsive, with no signs of life.\n" + else if(get_bodypart("head")) + msg += "[t_He] appears that [t_his] brain is missing...\n" - temp = getFireLoss() - if(temp) - if (temp < 30) - msg += "It has minor burns.\n" - else - msg += "It has severe burns!\n" + var/list/missing = get_missing_limbs() + for(var/t in missing) + if(t=="head") + msg += "[t_His] [parse_zone(t)] is missing!\n" + continue + msg += "[t_His] [parse_zone(t)] is missing!\n" - temp = getCloneLoss() - if(temp) - if(getCloneLoss() < 30) - msg += "It is slightly deformed.\n" - else - msg += "It is severely deformed.\n" + msg += "" + var/temp = getBruteLoss() + if(temp) + if (temp < 30) + msg += "[t_He] [t_has] minor bruising.\n" + else + msg += "[t_He] [t_has] severe bruising!\n" - if(getBrainLoss() > 60) - msg += "It seems to be clumsy and unable to think.\n" + temp = getFireLoss() + if(temp) + if (temp < 30) + msg += "[t_He] [t_has] minor burns.\n" + else + msg += "[t_He] [t_has] severe burns!\n" - if(fire_stacks > 0) - msg += "It's covered in something flammable.\n" - if(fire_stacks < 0) - msg += "It's soaked in water.\n" + temp = getCloneLoss() + if(temp) + if(getCloneLoss() < 30) + msg += "[t_He] [t_is] slightly deformed.\n" + else + msg += "[t_He] [t_is] severely deformed.\n" - if(pulledby && pulledby.grab_state) - msg += "It's restrained by [pulledby]'s grip.\n" + if(getBrainLoss() > 60) + msg += "[t_He] seems to be clumsy and unable to think.\n" + if(fire_stacks > 0) + msg += "[t_He] [t_is] covered in something flammable.\n" + if(fire_stacks < 0) + msg += "[t_He] [t_is] looks a little soaked.\n" + + if(pulledby && pulledby.grab_state) + msg += "[t_He] [t_is] restrained by [pulledby]'s grip.\n" + + msg += "" + + if(!appears_dead) if(stat == UNCONSCIOUS) - msg += "It isn't responding to anything around it; it seems to be asleep.\n" - msg += "" + msg += "[t_He] [t_is]n't responding to anything around [t_him] and seems to be asleep.\n" + + if(digitalcamo) + msg += "[t_He] [t_is] moving [t_his] body in an unnatural and blatantly unsimian manner.\n" - if(digitalcamo) - msg += "It is moving its body in an unnatural and blatantly unsimian manner.\n" - if(!getorgan(/obj/item/organ/brain)) - msg += "It appears that it's brain is missing...\n" msg += "*---------*" - user << msg \ No newline at end of file + user << msg diff --git a/code/modules/mob/living/carbon/human/damage_procs.dm b/code/modules/mob/living/carbon/human/damage_procs.dm new file mode 100644 index 0000000000..aa49718753 --- /dev/null +++ b/code/modules/mob/living/carbon/human/damage_procs.dm @@ -0,0 +1,5 @@ + + +/mob/living/carbon/human/apply_damage(damage = 0,damagetype = BRUTE, def_zone = null, blocked = 0) + // depending on the species, it will run the corresponding apply_damage code there + return dna.species.apply_damage(damage, damagetype, def_zone, blocked, src) diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm index 7eccf9b967..1a196f3572 100644 --- a/code/modules/mob/living/carbon/human/death.dm +++ b/code/modules/mob/living/carbon/human/death.dm @@ -4,8 +4,11 @@ /mob/living/carbon/human/dust_animation() PoolOrNew(/obj/effect/overlay/temp/dust_animation, list(loc, "dust-h")) -/mob/living/carbon/human/spawn_gibs() - hgibs(loc, viruses, dna) +/mob/living/carbon/human/spawn_gibs(with_bodyparts) + if(with_bodyparts) + new /obj/effect/gibspawner/human(loc, viruses, dna) + else + new /obj/effect/gibspawner/humanbodypartless(loc, viruses, dna) /mob/living/carbon/human/spawn_dust() new /obj/effect/decal/remains/human(loc) @@ -33,29 +36,16 @@ ticker.mode.check_win() //Calls the rounds wincheck, mainly for wizard, malf, and changeling now . = ..(gibbed) if(mind && mind.devilinfo) - spawn(0) - mind.devilinfo.beginResurrectionCheck(src) + addtimer(mind.devilinfo, "beginResurrectionCheck", 0, TIMER_NORMAL, src) /mob/living/carbon/human/proc/makeSkeleton() status_flags |= DISFIGURED set_species(/datum/species/skeleton) return 1 -/mob/living/carbon/proc/ChangeToHusk() - if(disabilities & HUSK) - return - disabilities |= HUSK - status_flags |= DISFIGURED //makes them unknown without fucking up other stuff like admintools - return 1 - -/mob/living/carbon/human/ChangeToHusk() - . = ..() - if(.) - update_hair() - update_body() /mob/living/carbon/proc/Drain() - ChangeToHusk() + become_husk() disabilities |= NOCLONE blood_volume = 0 return 1 diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index 1983917eaf..bf68805693 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -13,9 +13,8 @@ var/muzzled = is_muzzled() //var/m_type = 1 - for (var/obj/item/weapon/implant/I in src) - if (I.implanted) - I.trigger(act, src) + for (var/obj/item/weapon/implant/I in implants) + I.trigger(act, src) var/miming=0 if(mind) @@ -24,12 +23,12 @@ switch(act) //Please keep this alphabetically ordered when adding or changing emotes. if ("aflap") //Any emote on human that uses miming must be left in, oh well. if (!src.restrained()) - message = "[src] flaps \his wings ANGRILY!" + message = "[src] flaps [p_their()] wings ANGRILY!" m_type = 2 if ("choke","chokes") if (miming) - message = "[src] clutches \his throat desperately!" + message = "[src] clutches [p_their()] throat desperately!" else ..(act) @@ -45,10 +44,11 @@ m_type = 2 if ("collapse","collapses") - Paralyse(2) - adjustStaminaLoss(100) // Hampers abuse against simple mobs, but still leaves it a viable option. - message = "[src] collapses!" - m_type = 2 + if(status_flags & CANPARALYSE) //You can't collapse if you can't actually collapse. + Paralyse(2) + adjustStaminaLoss(100) // Hampers abuse against simple mobs, but still leaves it a viable option. + message = "[src] collapses!" + m_type = 2 if ("cough","coughs") if (miming) @@ -69,7 +69,7 @@ message = "[src] cries." m_type = 2 else - message = "[src] makes a weak noise. \He frowns." + message = "[src] makes a weak noise. [p_they(TRUE)] frown[p_s()]." m_type = 2 if ("custom") @@ -120,7 +120,7 @@ if (M) message = "[src] gives daps to [M]." else - message = "[src] sadly can't find anybody to give daps to, and daps \himself. Shameful." + message = "[src] sadly can't find anybody to give daps to, and daps [p_them()]self. Shameful." if ("eyebrow") message = "[src] raises an eyebrow." @@ -128,7 +128,7 @@ if ("flap","flaps") if (!src.restrained()) - message = "[src] flaps \his wings." + message = "[src] flaps [p_their()] wings." m_type = 2 if(((dna.features["wings"] != "None") && !("wings" in dna.species.mutant_bodyparts))) OpenWings() @@ -137,10 +137,10 @@ if ("wings") if (!src.restrained()) if(dna && dna.species &&((dna.features["wings"] != "None") && ("wings" in dna.species.mutant_bodyparts))) - message = "[src] opens \his wings." + message = "[src] opens [p_their()] wings." OpenWings() else if(dna && dna.species &&((dna.features["wings"] != "None") && ("wingsopen" in dna.species.mutant_bodyparts))) - message = "[src] closes \his wings." + message = "[src] closes [p_their()] wings." CloseWings() else src << "Unusable emote '[act]'. Say *help for a list." @@ -177,7 +177,7 @@ if ("handshake") m_type = 1 - if (!src.restrained() && !src.r_hand) + if (!src.restrained() && get_empty_held_indexes()) var/mob/M = null if (param) for (var/mob/A in view(1, src)) @@ -187,10 +187,10 @@ if (M == src) M = null if (M) - if (M.canmove && !M.r_hand && !M.restrained()) + if (M.canmove && M.get_empty_held_indexes() && !M.restrained()) message = "[src] shakes hands with [M]." else - message = "[src] holds out \his hand to [M]." + message = "[src] holds out [p_their()] hand to [M]." if ("hug","hugs") m_type = 1 @@ -206,7 +206,7 @@ if (M) message = "[src] hugs [M]." else - message = "[src] hugs \himself." + message = "[src] hugs [p_them()]self." if ("me") if(silent) @@ -259,21 +259,6 @@ message = "[src] raises a hand." m_type = 1 - if ("roar","roars") - if (miming) - message = "[src] appears to roar!" - else - if(!muzzled && has_dna()) - m_type = 2 - message = "[src] roars!" - switch(dna.species.id) - if("pred") - playsound(get_turf(src), "predroar", 50, 0, 5) - if("xeno") - playsound(get_turf(src), "alienscreech", 50, 0, 5) - else - ..(act) - if ("salute","salutes") if (!src.buckled) var/M = null @@ -294,23 +279,6 @@ if (miming) message = "[src] acts out a scream!" else - if(has_dna()) - switch(dna.species.id) //Visit sound.dm to see and add more 'soundin' options. (alienscreech, malescream, femscream, etc) - if("xeno") - playsound(get_turf(src), "alienscreech", 50, 0, 5) - if("pred") - playsound(get_turf(src), "predroar", 50, 0, 5) - if("moth") - playsound(get_turf(src), "mothscream", 50, 1, 5) - if("lizard" || "drake") - playsound(get_turf(src), "drakescream", 50, 0, 5) - if("avian") - playsound(get_turf(src), "birdscream", 50, 0, 5) - else - if(gender == MALE) - playsound(get_turf(src), "malescream", 50, 0, 5) - if(gender == FEMALE) - playsound(get_turf(src), "femscream", 50, 0, 5) ..(act) if ("shiver","shivers") @@ -329,12 +297,16 @@ if ("signal","signals") if (!src.restrained()) + var/maximum_fingers = 10 + var/full_hands + for(var/obj/item/I in held_items) + full_hands++ + maximum_fingers = (held_items.len-full_hands)*5 var/t1 = round(text2num(param)) if (isnum(t1)) - if (t1 <= 5 && (!src.r_hand || !src.l_hand)) - message = "[src] raises [t1] finger\s." - else if (t1 <= 10 && (!src.r_hand && !src.l_hand)) + if (t1 <= maximum_fingers) message = "[src] raises [t1] finger\s." + m_type = 1 if ("sneeze","sneezes") @@ -365,22 +337,16 @@ m_type = 2 if("wag","wags") - if(dna && dna.species && (("tail_lizard" in dna.species.mutant_bodyparts) || ((dna.features["mam_tail"] != "None") && !("mam_waggingtail" in dna.species.mutant_bodyparts)) || ((dna.features["tail_human"] != "None") && !("waggingtail_human" in dna.species.mutant_bodyparts)))) - message = "[src] wags \his tail." + if(dna && dna.species && (("tail_lizard" in dna.species.mutant_bodyparts) || ((dna.features["tail_human"] != "None") && !("waggingtail_human" in dna.species.mutant_bodyparts)))) + message = "[src] wags [p_their()] tail." startTailWag() - else if(dna && dna.species && (("waggingtail_lizard" in dna.species.mutant_bodyparts) || ("mam_waggingtail" in dna.species.mutant_bodyparts) || ("waggingtail_human" in dna.species.mutant_bodyparts))) + else if(dna && dna.species && (("waggingtail_lizard" in dna.species.mutant_bodyparts) || ("waggingtail_human" in dna.species.mutant_bodyparts))) endTailWag() else src << "Unusable emote '[act]'. Say *help for a list." if ("help") //This can stay at the bottom. - if(has_dna(src)) - switch(dna.species.id)//Set lists of emotes for specific species. Not the best way to do this, but the easiest considering they'll share most emotes. - if("pred") - src << "Help for yautja emotes. You can use these emotes with say \"*emote\":\n\naflap, airguitar, blink, blink_r, blush, bow-(none)/mob, burp, choke, chuckle, clap, collapse, cough, cry, custom, dance, dap, deathgasp, drool, eyebrow, faint, flap, frown, gasp, giggle, glare-(none)/mob, grin, groan, grumble, handshake, hug-(none)/mob, jump, laugh, look-(none)/mob, me, moan, mumble, nod, pale, point-(atom), raise, roar, salute, scream, shake, shiver, shrug, sigh, signal-#1-10, sit, smile, sneeze, sniff, snore, stare-(none)/mob, sulk, sway, tremble, twitch, twitch_s, wave, whimper, wink, wings, wag, yawn" - - else - src << "Help for human emotes. You can use these emotes with say \"*emote\":\n\naflap, airguitar, blink, blink_r, blush, bow-(none)/mob, burp, choke, chuckle, clap, collapse, cough, cry, custom, dance, dap, deathgasp, drool, eyebrow, faint, flap, frown, gasp, giggle, glare-(none)/mob, grin, groan, grumble, handshake, hug-(none)/mob, jump, laugh, look-(none)/mob, me, moan, mumble, nod, pale, point-(atom), raise, salute, scream, shake, shiver, shrug, sigh, signal-#1-10, sit, smile, sneeze, sniff, snore, stare-(none)/mob, sulk, sway, tremble, twitch, twitch_s, wave, whimper, wink, wings, wag, yawn" + src << "Help for human emotes. You can use these emotes with say \"*emote\":\n\naflap, airguitar, blink, blink_r, blush, bow-(none)/mob, burp, choke, chuckle, clap, collapse, cough, cry, custom, dance, dap, deathgasp, drool, eyebrow, faint, flap, frown, gasp, giggle, glare-(none)/mob, grin, groan, grumble, handshake, hug-(none)/mob, jump, laugh, look-(none)/mob, me, moan, mumble, nod, pale, point-(atom), raise, salute, scream, shake, shiver, shrug, sigh, signal-#1-10, sit, smile, sneeze, sniff, snore, stare-(none)/mob, sulk, sway, tremble, twitch, twitch_s, wave, whimper, wink, wings, wag, yawn" else ..(act) @@ -397,7 +363,7 @@ // Maybe some people are okay with that. for(var/mob/M in dead_mob_list) - if(!M.client || istype(M, /mob/new_player)) + if(!M.client || isnewplayer(M)) continue //skip monkeys, leavers and new players if(M.stat == DEAD && M.client && (M.client.prefs.chat_toggles & CHAT_GHOSTSIGHT) && !(M in viewers(src,null))) M.show_message(message) @@ -422,9 +388,6 @@ if("tail_human" in dna.species.mutant_bodyparts) dna.species.mutant_bodyparts -= "tail_human" dna.species.mutant_bodyparts |= "waggingtail_human" - if("mam_tail" in dna.species.mutant_bodyparts) - dna.species.mutant_bodyparts -= "mam_tail" - dna.species.mutant_bodyparts |= "mam_waggingtail" update_body() @@ -439,9 +402,6 @@ if("waggingtail_human" in dna.species.mutant_bodyparts) dna.species.mutant_bodyparts -= "waggingtail_human" dna.species.mutant_bodyparts |= "tail_human" - if("mam_waggingtail" in dna.species.mutant_bodyparts) - dna.species.mutant_bodyparts -= "mam_waggingtail" - dna.species.mutant_bodyparts |= "mam_tail" update_body() /mob/living/carbon/human/proc/OpenWings() @@ -459,10 +419,3 @@ dna.species.mutant_bodyparts -= "wingsopen" dna.species.mutant_bodyparts |= "wings" update_body() - -/mob/living/carbon/human/verb/set_flavor() - set name = "Set Flavor Text" - set desc = "Sets an extended description of your character's features." - set category = "IC" - - flavor_text = copytext(sanitize(input(usr, "Please enter your new flavor text.", "Flavor text", null) as text), 1) diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index cd8a8f1e3f..d9c05246b6 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -1,36 +1,17 @@ /mob/living/carbon/human/examine(mob/user) +//this is very slightly better than it was because you can use it more places. still can't do \his[src] though. + var/t_He = p_they(TRUE) + var/t_His = p_their(TRUE) + var/t_his = p_their() + var/t_him = p_them() + var/t_has = p_have() + var/t_is = p_are() + + var/msg = "*---------*\nThis is [src.name]!\n" var/list/obscured = check_obscured_slots() var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE)) - // crappy hacks because you can't do \his[src] etc. I'm sorry this proc is so unreadable, blame the text macros :< - var/t_He = "It" //capitalised for use at the start of each line. - var/t_his = "its" - var/t_him = "it" - var/t_has = "has" - var/t_is = "is" - - var/msg = "*---------*\nThis is " - - if( (slot_w_uniform in obscured) && skipface ) //big suits/masks/helmets make it hard to tell their gender - t_He = "They" - t_his = "their" - t_him = "them" - t_has = "have" - t_is = "are" - else - switch(gender) - if(MALE) - t_He = "He" - t_his = "his" - t_him = "him" - if(FEMALE) - t_He = "She" - t_his = "her" - t_him = "her" - - msg += "[src.name]!\n" - //uniform if(w_uniform && !(slot_w_uniform in obscured)) //Ties @@ -73,19 +54,13 @@ else msg += "[t_He] [t_has] \icon[back] \a [back] on [t_his] back.\n" - //left hand - if(l_hand && !(l_hand.flags&ABSTRACT)) - if(l_hand.blood_DNA) - msg += "[t_He] [t_is] holding \icon[l_hand] [l_hand.gender==PLURAL?"some":"a"] blood-stained [l_hand.name] in [t_his] left hand!\n" - else - msg += "[t_He] [t_is] holding \icon[l_hand] \a [l_hand] in [t_his] left hand.\n" - - //right hand - if(r_hand && !(r_hand.flags&ABSTRACT)) - if(r_hand.blood_DNA) - msg += "[t_He] [t_is] holding \icon[r_hand] [r_hand.gender==PLURAL?"some":"a"] blood-stained [r_hand.name] in [t_his] right hand!\n" - else - msg += "[t_He] [t_is] holding \icon[r_hand] \a [r_hand] in [t_his] right hand.\n" + //Hands + for(var/obj/item/I in held_items) + if(!(I.flags & ABSTRACT)) + if(I.blood_DNA) + msg += "[t_He] [t_is] holding \icon[I] [I.gender==PLURAL?"some":"a"] blood-stained [I.name] in [t_his] [get_held_index_name(get_held_index_of_item(I))]!\n" + else + msg += "[t_He] [t_is] holding \icon[I] \a [I] in [t_his] [get_held_index_name(get_held_index_of_item(I))].\n" //gloves if(gloves && !(slot_gloves in obscured)) @@ -128,6 +103,9 @@ else msg += "[t_He] [t_has] \icon[wear_mask] \a [wear_mask] on [t_his] face.\n" + if (wear_neck && !(slot_neck in obscured)) + msg += "[t_He] [t_is] wearing \icon[src.wear_neck] \a [src.wear_neck] around [t_his] neck.\n" + //eyes if(glasses && !(slot_glasses in obscured)) if(glasses.blood_DNA) @@ -141,16 +119,6 @@ //ID if(wear_id) - /*var/id - if(istype(wear_id, /obj/item/device/pda)) - var/obj/item/device/pda/pda = wear_id - id = pda.owner - else if(istype(wear_id, /obj/item/weapon/card/id)) //just in case something other than a PDA/ID card somehow gets in the ID slot :[ - var/obj/item/weapon/card/id/idcard = wear_id - id = idcard.registered_name - if(id && (id != real_name) && (get_dist(src, user) <= 1) && prob(10)) - msg += "[t_He] [t_is] wearing \icon[wear_id] \a [wear_id] yet something doesn't seem right...\n" - else*/ msg += "[t_He] [t_is] wearing \icon[wear_id] \a [wear_id].\n" //Jitters @@ -162,20 +130,14 @@ if(100 to 200) msg += "[t_He] [t_is] twitching ever so slightly.\n" - if(gender_ambiguous) //someone fucked up a gender reassignment surgery - if (gender == MALE) - msg += "[t_He] has a strange feminine quality to [t_him].\n" - else - msg += "[t_He] has a strange masculine quality to [t_him].\n" - var/appears_dead = 0 if(stat == DEAD || (status_flags & FAKEDEATH)) appears_dead = 1 if(getorgan(/obj/item/organ/brain))//Only perform these checks if there is no brain if(suiciding) - msg += "[t_He] appears to have commited suicide... there is no hope of recovery.\n" + msg += "[t_He] appear[p_s()] to have commited suicide... there is no hope of recovery.\n" if(hellbound) - msg += "[t_his] soul seems to have been ripped out of [t_his] body. Revival is impossible.\n" + msg += "[t_His] soul seems to have been ripped out of [t_his] body. Revival is impossible.\n" msg += "[t_He] [t_is] limp and unresponsive; there are no signs of life" if(!key) var/foundghost = 0 @@ -203,12 +165,27 @@ for(var/obj/item/I in BP.embedded_objects) msg += "[t_He] [t_has] \a \icon[I] [I] embedded in [t_his] [BP.name]!\n" + //stores missing limbs + var/l_limbs_missing = 0 + var/r_limbs_missing = 0 for(var/t in missing) if(t=="head") - msg += "[capitalize(t_his)] [parse_zone(t)] is missing!\n" + msg += "[t_His] [parse_zone(t)] is missing!\n" continue + if(t == "l_arm" || t == "l_leg") + l_limbs_missing++ + else if(t == "r_arm" || t == "r_leg") + r_limbs_missing++ + msg += "[capitalize(t_his)] [parse_zone(t)] is missing!\n" + if(l_limbs_missing >= 2 && r_limbs_missing == 0) + msg += "[t_He] looks all right now.\n" + else if(l_limbs_missing == 0 && r_limbs_missing >= 2) + msg += "[t_He] really keeps to the left.\n" + else if(l_limbs_missing >= 2 && r_limbs_missing >= 2) + msg += "[t_He] doesn't seem all there.\n" + if(temp) if(temp < 30) msg += "[t_He] [t_has] minor bruising.\n" @@ -246,22 +223,7 @@ msg += "[t_He] [t_is] plump and delicious looking - Like a fat little piggy. A tasty piggy.\n" else msg += "[t_He] [t_is] quite chubby.\n" -/* - if( (vore_womb_datum.has_people()||vore_stomach_datum.has_people()) && !(slot_w_uniform in obscured) ) - msg += "It seems [t_his] belly is shifting around slighty.\n" - if( (vore_breast_datum.has_people()||vore_breast_datum.digestion_count) && !(slot_w_uniform in obscured) ) - msg += "It seems [t_his] breasts are heavy with milk.\n" - if( !(slot_w_uniform in obscured) && (!w_uniform||!(w_uniform.body_parts_covered&GROIN)) ) - if(vore_cock_datum.has_people()||vore_cock_datum.digestion_count) - msg += "It looks like [t_his] cock is full.\n" - if(vore_balls_datum.has_people()||vore_balls_datum.digestion_count) - msg += "It looks like [t_his] balls are full.\n" - if(vore_tail_datum.has_people()) - msg += "[t_He] has a bulge in [t_his] tail." - if(vore_tail_datum.transfer_factor) - msg += " It moves slowly toward the base." - msg += "\n" -*/ + if(blood_volume < BLOOD_VOLUME_SAFE) msg += "[t_He] [t_has] pale skin.\n" @@ -276,10 +238,12 @@ if(reagents.has_reagent("teslium")) msg += "[t_He] is emitting a gentle blue glow!\n" - if(stun_absorption) - msg += "[t_He] is radiating with a soft yellow light!\n" //Used by Vanguard + if(islist(stun_absorption)) + for(var/i in stun_absorption) + if(stun_absorption[i]["end_time"] > world.time && stun_absorption[i]["examine_message"]) + msg += "[t_He] [t_is][stun_absorption[i]["examine_message"]]\n" - if(drunkenness && !skipface && stat != DEAD) //Drunkenness + if(drunkenness && !skipface && !appears_dead) //Drunkenness switch(drunkenness) if(11 to 21) msg += "[t_He] [t_is] slightly flushed.\n" @@ -292,7 +256,7 @@ if(61.01 to 91) msg += "[t_He] looks like a drunken mess.\n" if(91.01 to INFINITY) - msg += "[t_He] is a shitfaced, slobbering wreck.\n" + msg += "[t_He] [t_is] a shitfaced, slobbering wreck.\n" msg += "" @@ -304,7 +268,13 @@ if(getorgan(/obj/item/organ/brain)) if(istype(src,/mob/living/carbon/human/interactive)) - msg += "[t_He] [t_is] appears to be some sort of sick automaton, [t_his] eyes are glazed over and [t_his] mouth is slightly agape.\n" + var/mob/living/carbon/human/interactive/auto = src + if(auto.showexaminetext) + msg += "[t_He] [t_is] appears to be some sort of sick automaton, [t_his] eyes are glazed over and [t_his] mouth is slightly agape.\n" + if(auto.debugexamine) + var/dodebug = auto.doing2string(auto.doing) + var/interestdebug = auto.interest2string(auto.interest) + msg += "[t_He] [t_is] appears to be [interestdebug] and [dodebug].\n" else if(!key) msg += "[t_He] [t_is] totally catatonic. The stresses of life in deep-space must have been too much for [t_him]. Any recovery is unlikely.\n" else if(!client) @@ -313,7 +283,7 @@ if(digitalcamo) msg += "[t_He] [t_is] moving [t_his] body in an unnatural and blatantly inhuman manner.\n" - if(istype(user, /mob/living/carbon/human)) + if(ishuman(user)) var/mob/living/carbon/human/H = user var/obj/item/organ/cyberimp/eyes/hud/CIH = H.getorgan(/obj/item/organ/cyberimp/eyes/hud) if(istype(H.glasses, /obj/item/clothing/glasses/hud) || CIH) @@ -325,18 +295,18 @@ msg += "\[Front photo\] " msg += "\[Side photo\]
    " if(istype(H.glasses, /obj/item/clothing/glasses/hud/health) || istype(CIH,/obj/item/organ/cyberimp/eyes/hud/medical)) - var/implant_detect + var/cyberimp_detect for(var/obj/item/organ/cyberimp/CI in internal_organs) if(CI.status == ORGAN_ROBOTIC) - implant_detect += "[name] is modified with a [CI.name].
    " - if(implant_detect) + cyberimp_detect += "[name] is modified with a [CI.name].
    " + if(cyberimp_detect) msg += "Detected cybernetic modifications:
    " - msg += implant_detect + msg += cyberimp_detect if(R) - var/health = R.fields["p_stat"] - msg += "\[[health]\]" - health = R.fields["m_stat"] - msg += "\[[health]\]
    " + var/health_r = R.fields["p_stat"] + msg += "\[[health_r]\]" + health_r = R.fields["m_stat"] + msg += "\[[health_r]\]
    " R = find_record("name", perpname, data_core.medical) if(R) msg += "\[Medical evaluation\]
    " @@ -356,10 +326,6 @@ msg += "\[Add crime\] " msg += "\[View comment log\] " msg += "\[Add comment\]\n" - - if(print_flavor_text() && get_visible_name() != "Unknown")//Are we sure we know who this is? Don't show flavor text unless we can recognize them. Prevents certain metagaming with impersonation. - msg += "[print_flavor_text()]\n" - msg += "*---------*
    " user << msg diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 604ffb8fd7..32c66601e3 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -3,7 +3,7 @@ real_name = "Unknown" voice_name = "Unknown" icon = 'icons/mob/human.dmi' - icon_state = "caucasian1_m_s" + icon_state = "caucasian_m_s" @@ -18,11 +18,7 @@ verbs += /mob/living/proc/lay_down //initialize limbs first - bodyparts = newlist(/obj/item/bodypart/chest, /obj/item/bodypart/head, /obj/item/bodypart/l_arm, - /obj/item/bodypart/r_arm, /obj/item/bodypart/r_leg, /obj/item/bodypart/l_leg) - for(var/X in bodyparts) - var/obj/item/bodypart/O = X - O.owner = src + create_bodyparts() //initialize dna. for spawned humans; overwritten by other code create_dna(src) @@ -33,21 +29,7 @@ set_species(dna.species.type) //initialise organs - if(!(NOHUNGER in dna.species.specflags)) - internal_organs += new /obj/item/organ/appendix - - if(!(NOBREATH in dna.species.specflags)) - internal_organs += new /obj/item/organ/lungs - - if(!(NOBLOOD in dna.species.specflags)) - internal_organs += new /obj/item/organ/heart - - internal_organs += new /obj/item/organ/brain - - //Note: Additional organs are generated/replaced on the dna.species level - - for(var/obj/item/organ/I in internal_organs) - I.Insert(src) + create_internal_organs() martial_art = default_martial_art @@ -55,6 +37,19 @@ ..() +/mob/living/carbon/human/create_internal_organs() + if(!(NOHUNGER in dna.species.species_traits)) + internal_organs += new /obj/item/organ/appendix + if(!(NOBREATH in dna.species.species_traits)) + if(dna.species.mutantlungs) + internal_organs += new dna.species.mutantlungs() + else + internal_organs += new /obj/item/organ/lungs() + if(!(NOBLOOD in dna.species.species_traits)) + internal_organs += new /obj/item/organ/heart + internal_organs += new /obj/item/organ/brain + ..() + /mob/living/carbon/human/OpenCraftingMenu() handcrafting.ui_interact(src) @@ -81,6 +76,11 @@ stat("Internal Atmosphere Info", internal.name) stat("Tank Pressure", internal.air_contents.return_pressure()) stat("Distribution Pressure", internal.distribute_pressure) + + var/mob/living/simple_animal/borer/B = has_brain_worms() + if(B && B.controlling) + stat("Chemicals", B.chemicals) + if(mind) if(mind.changeling) stat("Chemical Storage", "[mind.changeling.chem_charges]/[mind.changeling.chem_storage]") @@ -116,94 +116,17 @@ stat("*", "[D.name], Type: [D.spread_text], Stage: [D.stage]/[D.max_stages], Possible Cure: [D.cure_text]") -/mob/living/carbon/human/ex_act(severity, ex_target) - var/b_loss = null - var/f_loss = null - var/bomb_armor = getarmor(null, "bomb") - - switch (severity) - if (1) - b_loss += 500 - if (prob(bomb_armor)) - shred_clothing(1,150) - var/atom/target = get_edge_target_turf(src, get_dir(src, get_step_away(src, src))) - throw_at(target, 200, 4) - else - gib() - return - - if (2) - b_loss += 60 - - f_loss += 60 - if (prob(bomb_armor)) - b_loss = b_loss/1.5 - f_loss = f_loss/1.5 - shred_clothing(1,25) - else - shred_clothing(1,50) - - if (!istype(ears, /obj/item/clothing/ears/earmuffs)) - adjustEarDamage(30, 120) - if (prob(70)) - Paralyse(10) - - if(3) - b_loss += 30 - if (prob(bomb_armor)) - b_loss = b_loss/2 - if (!istype(ears, /obj/item/clothing/ears/earmuffs)) - adjustEarDamage(15,60) - if (prob(50)) - Paralyse(10) - - take_overall_damage(b_loss,f_loss) - //attempt to dismember bodyparts - if(severity <= 2 || !bomb_armor) - var/max_limb_loss = round(4/severity) //so you don't lose four limbs at severity 3. - for(var/X in bodyparts) - var/obj/item/bodypart/BP = X - if(prob(50/severity) && !prob(getarmor(BP, "bomb")) && BP.body_zone != "head" && BP.body_zone != "chest") - BP.brute_dam = BP.max_damage - BP.dismember() - max_limb_loss-- - if(!max_limb_loss) - break - ..() - -/mob/living/carbon/human/blob_act(obj/effect/blob/B) - if(stat == DEAD) - return - show_message("The blob attacks you!") - var/dam_zone = pick("chest", "l_hand", "r_hand", "l_leg", "r_leg") - var/obj/item/bodypart/affecting = get_bodypart(ran_zone(dam_zone)) - apply_damage(5, BRUTE, affecting, run_armor_check(affecting, "melee")) - return - -/mob/living/carbon/human/bullet_act() - if(martial_art && martial_art.deflection_chance) //Some martial arts users can deflect projectiles! - if(!prob(martial_art.deflection_chance)) - return ..() - if(!src.lying && dna && !dna.check_mutation(HULK)) //But only if they're not lying down, and hulks can't do it - src.visible_message("[src] deflects the projectile; they can't be hit with ranged weapons!", "You deflect the projectile!") - playsound(src, pick("sound/weapons/bulletflyby.ogg","sound/weapons/bulletflyby2.ogg","sound/weapons/bulletflyby3.ogg"), 75, 1) - return 0 - ..() - -/mob/living/carbon/human/attack_ui(slot) - if(!get_bodypart(hand ? "l_arm" : "r_arm")) - return 0 - return ..() - /mob/living/carbon/human/show_inv(mob/user) user.set_machine(src) var/has_breathable_mask = istype(wear_mask, /obj/item/clothing/mask) var/list/obscured = check_obscured_slots() + var/list/dat = list() - var/dat = {" - - - "} + dat += "
    Left Hand:[(l_hand && !(l_hand.flags&ABSTRACT)) ? l_hand : "Empty"]
    Right Hand:[(r_hand && !(r_hand.flags&ABSTRACT)) ? r_hand : "Empty"]
     
    " + for(var/i in 1 to held_items.len) + var/obj/item/I = get_item_for_held_index(i) + dat += "" + dat += "" dat += "" + if(slot_neck in obscured) + dat += "" + else + dat += "" + if(slot_glasses in obscured) dat += "" else @@ -277,7 +205,7 @@ "} var/datum/browser/popup = new(user, "mob\ref[src]", "[src]", 440, 510) - popup.set_content(dat) + popup.set_content(dat.Join()) popup.open() // called when something steps onto a human @@ -289,35 +217,6 @@ spreadFire(AM) -//Added a safety check in case you want to shock a human mob directly through electrocute_act. -/mob/living/carbon/human/electrocute_act(shock_damage, obj/source, siemens_coeff = 1, safety = 0, override = 0, tesla_shock = 0) - if(tesla_shock) - var/total_coeff = 1 - if(gloves) - var/obj/item/clothing/gloves/G = gloves - if(G.siemens_coefficient <= 0) - total_coeff -= 0.5 - if(wear_suit) - var/obj/item/clothing/suit/S = wear_suit - if(S.siemens_coefficient <= 0) - total_coeff -= 0.95 - siemens_coeff = total_coeff - else if(!safety) - var/gloves_siemens_coeff = 1 - if(gloves) - var/obj/item/clothing/gloves/G = gloves - gloves_siemens_coeff = G.siemens_coefficient - siemens_coeff = gloves_siemens_coeff - if(heart_attack) - if(shock_damage * siemens_coeff >= 1 && prob(25)) - heart_attack = 0 - if(stat == CONSCIOUS) - src << "You feel your heart beating again!" - . = ..(shock_damage,source,siemens_coeff,safety,override,tesla_shock) - if(.) - electrocution_animation(40) - - /mob/living/carbon/human/Topic(href, href_list) if(usr.canUseTopic(src, BE_CLOSE, NO_DEXTERY)) @@ -333,8 +232,8 @@ if(!I || !L || I.loc != src || !(I in L.embedded_objects)) return L.embedded_objects -= I - L.take_damage(I.embedded_unsafe_removal_pain_multiplier*I.w_class)//It hurts to rip it out, get surgery you dingus. - I.loc = get_turf(src) + L.receive_damage(I.embedded_unsafe_removal_pain_multiplier*I.w_class)//It hurts to rip it out, get surgery you dingus. + I.forceMove(get_turf(src)) usr.put_in_hands(I) usr.emote("scream") usr.visible_message("[usr] successfully rips [I] out of their [L.name]!","You successfully remove [I] from your [L.name].") @@ -352,14 +251,14 @@ var/pocket_side = href_list["pockets"] var/pocket_id = (pocket_side == "right" ? slot_r_store : slot_l_store) var/obj/item/pocket_item = (pocket_id == slot_r_store ? r_store : l_store) - var/obj/item/place_item = usr.get_active_hand() // Item to place in the pocket, if it's empty + var/obj/item/place_item = usr.get_active_held_item() // Item to place in the pocket, if it's empty var/delay_denominator = 1 if(pocket_item && !(pocket_item.flags&ABSTRACT)) if(pocket_item.flags & NODROP) usr << "You try to empty [src]'s [pocket_side] pocket, it seems to be stuck!" usr << "You try to empty [src]'s [pocket_side] pocket." - else if(place_item && place_item.mob_can_equip(src, pocket_id, 1) && !(place_item.flags&ABSTRACT)) + else if(place_item && place_item.mob_can_equip(src, usr, pocket_id, 1) && !(place_item.flags&ABSTRACT)) usr << "You try to place [place_item] into [src]'s [pocket_side] pocket." delay_denominator = 4 else @@ -382,13 +281,11 @@ src << "You feel your [pocket_side] pocket being fumbled with!" ..() - else - ..() ///////HUDs/////// if(href_list["hud"]) - if(istype(usr, /mob/living/carbon/human)) + if(ishuman(usr)) var/mob/living/carbon/human/H = usr var/perpname = get_face_name(get_id_name("")) if(istype(H.glasses, /obj/item/clothing/glasses/hud)) @@ -410,24 +307,24 @@ if(href_list["hud"] == "m") if(istype(H.glasses, /obj/item/clothing/glasses/hud/health)) if(href_list["p_stat"]) - var/health = input(usr, "Specify a new physical status for this person.", "Medical HUD", R.fields["p_stat"]) in list("Active", "Physically Unfit", "*Unconscious*", "*Deceased*", "Cancel") + var/health_status = input(usr, "Specify a new physical status for this person.", "Medical HUD", R.fields["p_stat"]) in list("Active", "Physically Unfit", "*Unconscious*", "*Deceased*", "Cancel") if(R) if(!H.canUseHUD()) return else if(!istype(H.glasses, /obj/item/clothing/glasses/hud/health)) return - if(health && health != "Cancel") - R.fields["p_stat"] = health + if(health_status && health_status != "Cancel") + R.fields["p_stat"] = health_status return if(href_list["m_stat"]) - var/health = input(usr, "Specify a new mental status for this person.", "Medical HUD", R.fields["m_stat"]) in list("Stable", "*Watch*", "*Unstable*", "*Insane*", "Cancel") + var/health_status = input(usr, "Specify a new mental status for this person.", "Medical HUD", R.fields["m_stat"]) in list("Stable", "*Watch*", "*Unstable*", "*Insane*", "Cancel") if(R) if(!H.canUseHUD()) return else if(!istype(H.glasses, /obj/item/clothing/glasses/hud/health)) return - if(health && health != "Cancel") - R.fields["m_stat"] = health + if(health_status && health_status != "Cancel") + R.fields["m_stat"] = health_status return if(href_list["evaluation"]) if(!getBruteLoss() && !getFireLoss() && !getOxyLoss() && getToxLoss() < 20) @@ -588,7 +485,7 @@ var/counter = 1 while(R.fields[text("com_[]", counter)]) counter++ - R.fields[text("com_[]", counter)] = text("Made by [] on [] [], []
    []", allowed_access, worldtime2text(), time2text(world.realtime, "MMM DD"), year_integer+540, t1,) + R.fields[text("com_[]", counter)] = text("Made by [] on [] [], []
    []", allowed_access, worldtime2text(), time2text(world.realtime, "MMM DD"), year_integer+540, t1) usr << "Successfully added comment." return usr << "Unable to locate a data core entry for this person." @@ -600,7 +497,7 @@ . = 1 // Default to returning true. if(user && !target_zone) target_zone = user.zone_selected - if(dna && (PIERCEIMMUNE in dna.species.specflags)) + if(dna && (PIERCEIMMUNE in dna.species.species_traits)) . = 0 // If targeting the head, see if the head item is thin enough. // If targeting anything else, see if the wear suit is thin enough. @@ -612,7 +509,7 @@ . = 0 if(!. && error_msg && user) // Might need re-wording. - user << "There is no exposed flesh or thin material [above_neck(target_zone) ? "on their head" : "on their body"]." + user << "There is no exposed flesh or thin material [above_neck(target_zone) ? "on [p_their()] head" : "on [p_their()] body"]." /mob/living/carbon/human/proc/check_obscured_slots() var/list/obscured = list() @@ -637,7 +534,7 @@ if(wear_mask.flags_inv & HIDEEYES) obscured |= slot_glasses - if(obscured.len > 0) + if(obscured.len) return obscured else return null @@ -653,7 +550,7 @@ if(lasercolor == "b")//Lasertag turrets target the opposing team, how great is that? -Sieve if(istype(wear_suit, /obj/item/clothing/suit/redtag)) threatcount += 4 - if((istype(r_hand,/obj/item/weapon/gun/energy/laser/redtag)) || (istype(l_hand,/obj/item/weapon/gun/energy/laser/redtag))) + if(is_holding_item_of_type(/obj/item/weapon/gun/energy/laser/redtag)) threatcount += 4 if(istype(belt, /obj/item/weapon/gun/energy/laser/redtag)) threatcount += 2 @@ -661,7 +558,7 @@ if(lasercolor == "r") if(istype(wear_suit, /obj/item/clothing/suit/bluetag)) threatcount += 4 - if((istype(r_hand,/obj/item/weapon/gun/energy/laser/bluetag)) || (istype(l_hand,/obj/item/weapon/gun/energy/laser/bluetag))) + if(is_holding_item_of_type(/obj/item/weapon/gun/energy/laser/bluetag)) threatcount += 4 if(istype(belt, /obj/item/weapon/gun/energy/laser/bluetag)) threatcount += 2 @@ -676,10 +573,9 @@ //Check for weapons if(judgebot.weaponscheck) if(!idcard || !(access_weapons in idcard.access)) - if(judgebot.check_for_weapons(l_hand)) - threatcount += 4 - if(judgebot.check_for_weapons(r_hand)) - threatcount += 4 + for(var/obj/item/I in held_items) + if(judgebot.check_for_weapons(I)) + threatcount += 4 if(judgebot.check_for_weapons(belt)) threatcount += 2 @@ -697,23 +593,22 @@ threatcount += 2 //Check for dresscode violations - if(istype(head, /obj/item/clothing/head/wizard) || istype(head, /obj/item/clothing/head/helmet/space/hardsuit/wizard) || istype(head, /obj/item/clothing/head/helmet/space/hardsuit/syndi) || istype(head, /obj/item/clothing/head/helmet/space/syndicate) || istype(head, /obj/item/clothing/head/culthood)) - threatcount += 5 + if(istype(head, /obj/item/clothing/head/wizard) || istype(head, /obj/item/clothing/head/helmet/space/hardsuit/wizard)) + threatcount += 2 //Check for nonhuman scum if(dna && dna.species.id && dna.species.id != "human") - threatcount += 0 + threatcount += 1 - //Loyalty implants imply trustworthyness - if(isloyal(src)) + //mindshield implants imply trustworthyness + if(isloyal()) threatcount -= 1 - //Agent cards lower threatlevel, but only just enough to avoid dresscode violations. + //Agent cards lower threatlevel. if(istype(idcard, /obj/item/weapon/card/id/syndicate)) - threatcount -= 2 + threatcount -= 5 return threatcount - return threatcount //Used for new human mobs created by cloning/goleming/podding @@ -727,21 +622,9 @@ update_body() update_hair() -/mob/living/carbon/human/singularity_act() - var/gain = 20 - if(mind) - if((mind.assigned_role == "Station Engineer") || (mind.assigned_role == "Chief Engineer") ) - gain = 100 - if(mind.assigned_role == "Clown") - gain = rand(-300, 300) - investigate_log("([key_name(src)]) has been consumed by the singularity.","singulo") //Oh that's where the clown ended up! - gib() - return(gain) - /mob/living/carbon/human/singularity_pull(S, current_size) if(current_size >= STAGE_THREE) - var/list/handlist = list(l_hand, r_hand) - for(var/obj/item/hand in handlist) + for(var/obj/item/hand in held_items) if(prob(current_size * 5) && hand.w_class >= ((11-current_size)/2) && unEquip(hand)) step_towards(hand, src) src << "\The [S] pulls \the [hand] from your grip!" @@ -750,71 +633,6 @@ return ..() - -/mob/living/carbon/human/help_shake_act(mob/living/carbon/M) - if(!istype(M)) - return - - if(health >= 0) - if(src == M) - visible_message( \ - "[src] examines \himself.", \ - "You check yourself for injuries.") - - var/list/missing = list("head", "chest", "l_arm", "r_arm", "l_leg", "r_leg") - for(var/X in bodyparts) - var/obj/item/bodypart/LB = X - missing -= LB.body_zone - var/status = "" - var/brutedamage = LB.brute_dam - var/burndamage = LB.burn_dam - if(hallucination) - if(prob(30)) - brutedamage += rand(30,40) - if(prob(30)) - burndamage += rand(30,40) - - if(brutedamage > 0) - status = "bruised" - if(brutedamage > 20) - status = "battered" - if(brutedamage > 40) - status = "mangled" - if(brutedamage > 0 && burndamage > 0) - status += " and " - if(burndamage > 40) - status += "peeling away" - - else if(burndamage > 10) - status += "blistered" - else if(burndamage > 0) - status += "numb" - if(status == "") - status = "OK" - src << "\t [status == "OK" ? "\blue" : "\red"] Your [LB.name] is [status]." - - for(var/obj/item/I in LB.embedded_objects) - src << "\t \red There is \a [I] embedded in your [LB.name]!" - - for(var/t in missing) - src << "Your [parse_zone(t)] is missing!" - - if(bleed_rate) - src << "You are bleeding!" - if(staminaloss) - if(staminaloss > 30) - src << "You're completely exhausted." - else - src << "You feel fatigued." - else - if(wear_suit) - wear_suit.add_fingerprint(M) - else if(w_uniform) - w_uniform.add_fingerprint(M) - - ..() - - /mob/living/carbon/human/proc/do_cpr(mob/living/carbon/C) CHECK_DNA_AND_SPECIES(C) @@ -825,7 +643,7 @@ src << "Remove your mask first!" return 0 if(C.is_mouth_covered()) - src << "Remove their mask first!" + src << "Remove [p_their()] mask first!" return 0 if(C.cpr_time < world.time + 30) @@ -835,10 +653,10 @@ src << "You fail to perform CPR on [C]!" return 0 - var/they_breathe = (!(NOBREATH in C.dna.species.specflags)) + var/they_breathe = (!(NOBREATH in C.dna.species.species_traits)) var/they_lung = C.getorganslot("lungs") - if(C.health > config.health_threshold_crit) + if(C.health > HEALTH_THRESHOLD_CRIT) return src.visible_message("[src] performs CPR on [C.name]!", "You perform CPR on [C.name].") @@ -907,10 +725,11 @@ /mob/living/carbon/human/proc/electrocution_animation(anim_duration) //Handle mutant parts if possible if(dna && dna.species) - add_overlay("electrocuted_base") - spawn(anim_duration) - if(src) - overlays -= "electrocuted_base" + add_atom_colour("#000000", TEMPORARY_COLOUR_PRIORITY) + var/static/image/electrocution_skeleton_anim = image(icon = icon, icon_state = "electrocuted_base") + electrocution_skeleton_anim.appearance_flags = RESET_COLOR + add_overlay(electrocution_skeleton_anim) + addtimer(src, "end_electrocution_animation", anim_duration, TIMER_NORMAL, electrocution_skeleton_anim) else //or just do a generic animation var/list/viewing = list() @@ -919,6 +738,10 @@ viewing += M.client flick_overlay(image(icon,src,"electrocuted_generic",ABOVE_MOB_LAYER), viewing, anim_duration) +/mob/living/carbon/human/proc/end_electrocution_animation(image/I) + remove_atom_colour(TEMPORARY_COLOUR_PRIORITY, "#000000") + overlays -= I + /mob/living/carbon/human/canUseTopic(atom/movable/M, be_close = 0) if(incapacitated() || lying ) return @@ -1004,16 +827,15 @@ hud_used.healthdoll.icon_state = "healthdoll_DEAD" /mob/living/carbon/human/fully_heal(admin_revive = 0) - CHECK_DNA_AND_SPECIES(src) if(admin_revive) regenerate_limbs() - if(!(NOBREATH in dna.species.specflags) && !getorganslot("lungs")) + if(!(NOBREATH in dna.species.species_traits) && !getorganslot("lungs")) var/obj/item/organ/lungs/L = new() L.Insert(src) - if(!(NOBLOOD in dna.species.specflags) && !getorganslot("heart")) + if(!(NOBLOOD in dna.species.species_traits) && !getorganslot("heart")) var/obj/item/organ/heart/H = new() H.Insert(src) @@ -1063,12 +885,7 @@ O = new /datum/objective/sintouched/pride ticker.mode.sintouched += src.mind src.mind.objectives += O - var/obj_count = 1 - src << "Your current objectives:" - for(O in src.mind.objectives) - var/datum/objective/objective = O - src << "Objective #[obj_count]: [objective.explanation_text]" - obj_count++ + src.mind.announce_objectives() /mob/living/carbon/human/check_weakness(obj/item/weapon, mob/living/attacker) . = ..() @@ -1078,6 +895,36 @@ /mob/living/carbon/human/is_literate() return 1 +/mob/living/carbon/human/can_hold_items() + return TRUE + /mob/living/carbon/human/update_gravity(has_gravity,override = 0) override = dna.species.override_float ..() + +/mob/living/carbon/human/vomit(lost_nutrition = 10, blood = 0, stun = 1, distance = 0, message = 1, toxic = 0) + if(blood && (NOBLOOD in dna.species.species_traits)) + if(message) + visible_message("[src] dry heaves!", \ + "You try to throw up, but there's nothing in your stomach!") + if(stun) + Weaken(10) + return 1 + ..() + +/mob/living/carbon/human/Bump(atom/A) + ..() + var/crashdir = get_dir(src, A) + var/obj/item/device/flightpack/FP = get_flightpack() + if(FP) + FP.flight_impact(A, crashdir) + +/mob/living/carbon/human/vv_get_dropdown() + . = ..() + . += "---" + .["Make monkey"] = "?_src_=vars;makemonkey=\ref[src]" + .["Set Species"] = "?_src_=vars;setspecies=\ref[src]" + .["Make cyborg"] = "?_src_=vars;makerobot=\ref[src]" + .["Make alien"] = "?_src_=vars;makealien=\ref[src]" + .["Make slime"] = "?_src_=vars;makeslime=\ref[src]" + .["Toggle Purrbation"] = "?_src_=vars;purrbation=\ref[src]" diff --git a/code/modules/mob/living/carbon/human/human_attackalien.dm b/code/modules/mob/living/carbon/human/human_attackalien.dm deleted file mode 100644 index 37ac704425..0000000000 --- a/code/modules/mob/living/carbon/human/human_attackalien.dm +++ /dev/null @@ -1,49 +0,0 @@ -/mob/living/carbon/human/attack_alien(mob/living/carbon/alien/humanoid/M) - if(check_shields(0, M.name)) - visible_message("[M] attempted to touch [src]!") - return 0 - - if(..()) - if(M.a_intent == "harm") - if (w_uniform) - w_uniform.add_fingerprint(M) - var/damage = prob(90) ? 20 : 0 - if(!damage) - playsound(loc, 'sound/weapons/slashmiss.ogg', 50, 1, -1) - visible_message("[M] has lunged at [src]!", \ - "[M] has lunged at [src]!") - return 0 - var/obj/item/bodypart/affecting = get_bodypart(ran_zone(M.zone_selected)) - var/armor_block = run_armor_check(affecting, "melee","","",10) - - playsound(loc, 'sound/weapons/slice.ogg', 25, 1, -1) - visible_message("[M] has slashed at [src]!", \ - "[M] has slashed at [src]!") - - apply_damage(damage, BRUTE, affecting, armor_block) - if (prob(30)) - visible_message("[M] has wounded [src]!", \ - "[M] has wounded [src]!") - apply_effect(4, WEAKEN, armor_block) - add_logs(M, src, "attacked") - updatehealth() - - if(M.a_intent == "disarm") - var/randn = rand(1, 100) - if (randn <= 80) - playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1) - Weaken(5) - add_logs(M, src, "tackled") - visible_message("[M] has tackled down [src]!", \ - "[M] has tackled down [src]!") - else - if (randn <= 99) - playsound(loc, 'sound/weapons/slash.ogg', 25, 1, -1) - drop_item() - visible_message("[M] disarmed [src]!", \ - "[M] disarmed [src]!") - else - playsound(loc, 'sound/weapons/slashmiss.ogg', 50, 1, -1) - visible_message("[M] has tried to disarm [src]!", \ - "[M] has tried to disarm [src]!") - return diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm deleted file mode 100644 index 0b15f53c84..0000000000 --- a/code/modules/mob/living/carbon/human/human_attackhand.dm +++ /dev/null @@ -1,14 +0,0 @@ -/mob/living/carbon/human/attack_hulk(mob/living/carbon/human/user) - if(user.a_intent == "harm") - ..(user, 1) - playsound(loc, user.dna.species.attack_sound, 25, 1, -1) - var/hulk_verb = pick("smash","pummel") - visible_message("[user] has [hulk_verb]ed [src]!", \ - "[user] has [hulk_verb]ed [src]!") - adjustBruteLoss(15) - return 1 - -/mob/living/carbon/human/attack_hand(mob/living/carbon/human/M) - if(..()) //to allow surgery to return properly. - return - dna.species.spec_attack_hand(M, src) diff --git a/code/modules/mob/living/carbon/human/human_attackpaw.dm b/code/modules/mob/living/carbon/human/human_attackpaw.dm deleted file mode 100644 index 389401327b..0000000000 --- a/code/modules/mob/living/carbon/human/human_attackpaw.dm +++ /dev/null @@ -1,15 +0,0 @@ -/mob/living/carbon/human/attack_paw(mob/living/carbon/monkey/M) - var/dam_zone = pick("chest", "l_hand", "r_hand", "l_leg", "r_leg") - var/obj/item/bodypart/affecting = get_bodypart(ran_zone(dam_zone)) - - if(M.a_intent == "help") - ..() //shaking - return 0 - - if(can_inject(M, 1, affecting))//Thick suits can stop monkey bites. - if(..()) //successful monkey bite, this handles disease contraction. - var/damage = rand(1, 3) - if(stat != DEAD) - apply_damage(damage, BRUTE, affecting, run_armor_check(affecting, "melee")) - updatehealth() - return 1 \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm deleted file mode 100644 index 583b74055d..0000000000 --- a/code/modules/mob/living/carbon/human/human_damage.dm +++ /dev/null @@ -1,161 +0,0 @@ -//Updates the mob's health from bodyparts and mob damage variables -/mob/living/carbon/human/updatehealth() - if(status_flags & GODMODE) - return - var/total_burn = 0 - var/total_brute = 0 - for(var/X in bodyparts) //hardcoded to streamline things a bit - var/obj/item/bodypart/BP = X - total_brute += BP.brute_dam - total_burn += BP.burn_dam - health = maxHealth - getOxyLoss() - getToxLoss() - getCloneLoss() - total_burn - total_brute - update_stat() - if(((maxHealth - total_burn) < config.health_threshold_dead) && stat == DEAD ) - ChangeToHusk() - if(on_fire) - shred_clothing() - med_hud_set_health() - med_hud_set_status() - - -//These procs fetch a cumulative total damage from all bodyparts -/mob/living/carbon/human/getBruteLoss() - var/amount = 0 - for(var/X in bodyparts) - var/obj/item/bodypart/BP = X - amount += BP.brute_dam - return amount - -/mob/living/carbon/human/getFireLoss() - var/amount = 0 - for(var/X in bodyparts) - var/obj/item/bodypart/BP = X - amount += BP.burn_dam - return amount - - -/mob/living/carbon/human/adjustBruteLoss(amount) - if(status_flags & GODMODE) - return 0 - if(amount > 0) - take_overall_damage(amount, 0) - else - heal_overall_damage(-amount, 0) - -/mob/living/carbon/human/adjustFireLoss(amount) - if(status_flags & GODMODE) - return 0 - if(amount > 0) - take_overall_damage(0, amount) - else - heal_overall_damage(0, -amount) - -/mob/living/carbon/human/proc/hat_fall_prob() - var/multiplier = 1 - var/obj/item/clothing/head/H = head - var/loose = 40 - if(stat || (status_flags & FAKEDEATH)) - multiplier = 2 - if(H.flags_cover & (HEADCOVERSEYES | HEADCOVERSMOUTH) || H.flags_inv & (HIDEEYES | HIDEFACE)) - loose = 0 - return loose * multiplier - -//////////////////////////////////////////// - -//Returns a list of damaged bodyparts -/mob/living/carbon/human/proc/get_damaged_bodyparts(brute, burn) - var/list/obj/item/bodypart/parts = list() - for(var/X in bodyparts) - var/obj/item/bodypart/BP = X - if((brute && BP.brute_dam) || (burn && BP.burn_dam)) - parts += BP - return parts - -//Returns a list of damageable bodyparts -/mob/living/carbon/human/proc/get_damageable_bodyparts() - var/list/obj/item/bodypart/parts = list() - for(var/X in bodyparts) - var/obj/item/bodypart/BP = X - if(BP.brute_dam + BP.burn_dam < BP.max_damage) - parts += BP - return parts - -//Heals ONE external organ, organ gets randomly selected from damaged ones. -//It automatically updates damage overlays if necesary -//It automatically updates health status -/mob/living/carbon/human/heal_organ_damage(brute, burn) - var/list/obj/item/bodypart/parts = get_damaged_bodyparts(brute,burn) - if(!parts.len) - return - var/obj/item/bodypart/picked = pick(parts) - if(picked.heal_damage(brute,burn,0)) - update_damage_overlays(0) - updatehealth() - -//Damages ONE external organ, organ gets randomly selected from damagable ones. -//It automatically updates damage overlays if necesary -//It automatically updates health status -/mob/living/carbon/human/take_organ_damage(brute, burn) - var/list/obj/item/bodypart/parts = get_damageable_bodyparts() - if(!parts.len) - return - var/obj/item/bodypart/picked = pick(parts) - if(picked.take_damage(brute,burn)) - update_damage_overlays(0) - updatehealth() - - -//Heal MANY bodyparts, in random order -/mob/living/carbon/human/heal_overall_damage(brute, burn, updating_health=1) - var/list/obj/item/bodypart/parts = get_damaged_bodyparts(brute,burn) - - var/update = 0 - while(parts.len && (brute>0 || burn>0) ) - var/obj/item/bodypart/picked = pick(parts) - - var/brute_was = picked.brute_dam - var/burn_was = picked.burn_dam - - update |= picked.heal_damage(brute,burn,0) - - brute -= (brute_was-picked.brute_dam) - burn -= (burn_was-picked.burn_dam) - - parts -= picked - if(updating_health) - updatehealth() - if(update) - update_damage_overlays(0) - -// damage MANY bodyparts, in random order -/mob/living/carbon/human/take_overall_damage(brute, burn) - if(status_flags & GODMODE) - return //godmode - - var/list/obj/item/bodypart/parts = get_damageable_bodyparts() - var/update = 0 - while(parts.len && (brute>0 || burn>0) ) - var/obj/item/bodypart/picked = pick(parts) - var/brute_per_part = brute/parts.len - var/burn_per_part = burn/parts.len - - var/brute_was = picked.brute_dam - var/burn_was = picked.burn_dam - - - update |= picked.take_damage(brute_per_part,burn_per_part) - - brute -= (picked.brute_dam - brute_was) - burn -= (picked.burn_dam - burn_was) - - parts -= picked - updatehealth() - if(update) - update_damage_overlays(0) - -//////////////////////////////////////////// - - -/mob/living/carbon/human/apply_damage(damage = 0,damagetype = BRUTE, def_zone = null, blocked = 0) - // depending on the species, it will run the corresponding apply_damage code there - return dna.species.apply_damage(damage, damagetype, def_zone, blocked, src) diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 3fd7d721f7..9a9fd1ca9c 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -17,8 +17,8 @@ return (armorval/max(organnum, 1)) -/mob/living/carbon/human/proc/checkarmor(obj/item/bodypart/def_zone, type) - if(!type) +/mob/living/carbon/human/proc/checkarmor(obj/item/bodypart/def_zone, d_type) + if(!d_type) return 0 var/protection = 0 var/list/body_parts = list(head, wear_mask, wear_suit, w_uniform, back, gloves, shoes, belt, s_store, glasses, ears, wear_id) //Everything but pockets. Pockets are l_store and r_store. (if pockets were allowed, putting something armored, gloves or hats for example, would double up on the armor) @@ -28,13 +28,44 @@ if(bp && istype(bp ,/obj/item/clothing)) var/obj/item/clothing/C = bp if(C.body_parts_covered & def_zone.body_part) - protection += C.armor[type] + protection += C.armor[d_type] return protection -/mob/living/carbon/human/on_hit(proj_type) - dna.species.on_hit(proj_type, src) +///checkeyeprot() +///Returns a number between -1 to 2 +/mob/living/carbon/human/get_eye_protection() + var/number = ..() + if(istype(src.head, /obj/item/clothing/head)) //are they wearing something on their head + var/obj/item/clothing/head/HFP = src.head //if yes gets the flash protection value from that item + number += HFP.flash_protect + if(istype(src.glasses, /obj/item/clothing/glasses)) //glasses + var/obj/item/clothing/glasses/GFP = src.glasses + number += GFP.flash_protect + if(istype(src.wear_mask, /obj/item/clothing/mask)) //mask + var/obj/item/clothing/mask/MFP = src.wear_mask + number += MFP.flash_protect + return number + +/mob/living/carbon/human/get_ear_protection() + if((ears && (ears.flags & EARBANGPROTECT)) || (head && (head.flags & HEADBANGPROTECT))) + return 1 + +/mob/living/carbon/human/on_hit(obj/item/projectile/P) + dna.species.on_hit(P, src) + /mob/living/carbon/human/bullet_act(obj/item/projectile/P, def_zone) + var/spec_return = dna.species.bullet_act(P, src) + if(spec_return) + return spec_return + + if(martial_art && martial_art.deflection_chance) //Some martial arts users can deflect projectiles! + if(prob(martial_art.deflection_chance)) + if(!lying && dna && !dna.check_mutation(HULK)) //But only if they're not lying down, and hulks can't do it + visible_message("[src] deflects the projectile; [p_they()] can't be hit with ranged weapons!", "You deflect the projectile!") + playsound(src, pick("sound/weapons/bulletflyby.ogg","sound/weapons/bulletflyby2.ogg","sound/weapons/bulletflyby3.ogg"), 75, 1) + return 0 + if(!(P.original == src && P.firer == src)) //can't block or reflect when shooting yourself if(istype(P, /obj/item/projectile/energy) || istype(P, /obj/item/projectile/beam)) if(check_reflect(def_zone)) // Checks if you've passed a reflection% check @@ -60,31 +91,26 @@ if(check_shields(P.damage, "the [P.name]", P, PROJECTILE_ATTACK, P.armour_penetration)) P.on_hit(src, 100, def_zone) return 2 + return (..(P , def_zone)) /mob/living/carbon/human/proc/check_reflect(def_zone) //Reflection checks for anything in your l_hand, r_hand, or wear_suit based on the reflection chance of the object if(wear_suit) if(wear_suit.IsReflect(def_zone) == 1) return 1 - if(l_hand) - if(l_hand.IsReflect(def_zone) == 1) - return 1 - if(r_hand) - if(r_hand.IsReflect(def_zone) == 1) + for(var/obj/item/I in held_items) + if(I.IsReflect(def_zone) == 1) return 1 return 0 /mob/living/carbon/human/proc/check_shields(damage = 0, attack_text = "the attack", atom/movable/AM, attack_type = MELEE_ATTACK, armour_penetration = 0) var/block_chance_modifier = round(damage / -3) - if(l_hand && !istype(l_hand, /obj/item/clothing)) - var/final_block_chance = l_hand.block_chance - (Clamp((armour_penetration-l_hand.armour_penetration)/2,0,100)) + block_chance_modifier //So armour piercing blades can still be parried by other blades, for example - if(l_hand.hit_reaction(src, attack_text, final_block_chance, damage, attack_type)) - return 1 - if(r_hand && !istype(r_hand, /obj/item/clothing)) - var/final_block_chance = r_hand.block_chance - (Clamp((armour_penetration-r_hand.armour_penetration)/2,0,100)) + block_chance_modifier //Need to reset the var so it doesn't carry over modifications between attempts - if(r_hand.hit_reaction(src, attack_text, final_block_chance, damage, attack_type)) - return 1 + for(var/obj/item/I in held_items) + if(!istype(I, /obj/item/clothing)) + var/final_block_chance = I.block_chance - (Clamp((armour_penetration-I.armour_penetration)/2,0,100)) + block_chance_modifier //So armour piercing blades can still be parried by other blades, for example + if(I.hit_reaction(src, attack_text, final_block_chance, damage, attack_type)) + return 1 if(wear_suit) var/final_block_chance = wear_suit.block_chance - (Clamp((armour_penetration-wear_suit.armour_penetration)/2,0,100)) + block_chance_modifier if(wear_suit.hit_reaction(src, attack_text, final_block_chance, damage, attack_type)) @@ -95,252 +121,17 @@ return 1 return 0 - -/mob/living/carbon/human/attacked_by(obj/item/I, mob/living/user) - if(!I || !user) - return 0 - - var/obj/item/bodypart/affecting = get_bodypart(ran_zone(user.zone_selected)) - var/target_area = parse_zone(check_zone(user.zone_selected)) - feedback_add_details("item_used_for_combat","[I.type]|[I.force]") - feedback_add_details("zone_targeted","[target_area]") - - // the attacked_by code varies among species - return dna.species.spec_attacked_by(I, user, affecting, a_intent, target_area, src) - -/mob/living/carbon/human/emp_act(severity) - var/informed = 0 - for(var/obj/item/bodypart/L in src.bodyparts) - if(L.status == ORGAN_ROBOTIC) - if(!informed) - src << "You feel a sharp pain as your robotic limbs overload." - informed = 1 - switch(severity) - if(1) - L.take_damage(0,10) - src.Stun(10) - if(2) - L.take_damage(0,5) - src.Stun(5) - ..() - -/mob/living/carbon/human/acid_act(acidpwr, toxpwr, acid_volume) - var/list/damaged = list() - var/list/inventory_items_to_kill = list() - var/acidity = min(acidpwr*acid_volume/200, toxpwr) - var/acid_volume_left = acid_volume - var/acid_decay = 100/acidpwr // how much volume we lose per item we try to melt. 5 for fluoro, 10 for sulphuric - - //HEAD// - var/obj/item/clothing/head_clothes = null - if(glasses) - head_clothes = glasses - if(wear_mask) - head_clothes = wear_mask - if(head) - head_clothes = head - if(head_clothes) - if(!head_clothes.unacidable) - head_clothes.acid_act(acidpwr, acid_volume_left) - acid_volume_left = max(acid_volume_left - acid_decay, 0) //We remove some of the acid volume. - update_inv_glasses() - update_inv_wear_mask() - update_inv_head() - else - src << "Your [head_clothes.name] protects your head and face from the acid!" - else - . = get_bodypart("head") - if(.) - damaged += . - if(ears) - inventory_items_to_kill += ears - - //CHEST// - var/obj/item/clothing/chest_clothes = null - if(w_uniform) - chest_clothes = w_uniform - if(wear_suit) - chest_clothes = wear_suit - if(chest_clothes) - if(!chest_clothes.unacidable) - chest_clothes.acid_act(acidpwr, acid_volume_left) - acid_volume_left = max(acid_volume_left - acid_decay, 0) - update_inv_w_uniform() - update_inv_wear_suit() - else - src << "Your [chest_clothes.name] protects your body from the acid!" - else - . = get_bodypart("chest") - if(.) - damaged += . - if(wear_id) - inventory_items_to_kill += wear_id - if(r_store) - inventory_items_to_kill += r_store - if(l_store) - inventory_items_to_kill += l_store - if(s_store) - inventory_items_to_kill += s_store - - - //ARMS & HANDS// - var/obj/item/clothing/arm_clothes = null - if(gloves) - arm_clothes = gloves - if(w_uniform && (w_uniform.body_parts_covered & HANDS) || w_uniform && (w_uniform.body_parts_covered & ARMS)) - arm_clothes = w_uniform - if(wear_suit && (wear_suit.body_parts_covered & HANDS) || wear_suit && (wear_suit.body_parts_covered & ARMS)) - arm_clothes = wear_suit - if(arm_clothes) - if(!arm_clothes.unacidable) - arm_clothes.acid_act(acidpwr, acid_volume_left) - acid_volume_left = max(acid_volume_left - acid_decay, 0) - update_inv_gloves() - update_inv_w_uniform() - update_inv_wear_suit() - else - src << "Your [arm_clothes.name] protects your arms and hands from the acid!" - else - . = get_bodypart("r_arm") - if(.) - damaged += . - . = get_bodypart("l_arm") - if(.) - damaged += . - - - //LEGS & FEET// - var/obj/item/clothing/leg_clothes = null - if(shoes) - leg_clothes = shoes - if(w_uniform && (w_uniform.body_parts_covered & FEET) || w_uniform && (w_uniform.body_parts_covered & LEGS)) - leg_clothes = w_uniform - if(wear_suit && (wear_suit.body_parts_covered & FEET) || wear_suit && (wear_suit.body_parts_covered & LEGS)) - leg_clothes = wear_suit - if(leg_clothes) - if(!leg_clothes.unacidable) - leg_clothes.acid_act(acidpwr, acid_volume_left) - acid_volume_left = max(acid_volume_left - acid_decay, 0) - update_inv_shoes() - update_inv_w_uniform() - update_inv_wear_suit() - else - src << "Your [leg_clothes.name] protects your legs and feet from the acid!" - else - . = get_bodypart("r_leg") - if(.) - damaged += . - . = get_bodypart("l_leg") - if(.) - damaged += . - - - //DAMAGE// - for(var/obj/item/bodypart/affecting in damaged) - affecting.take_damage(acidity, 2*acidity) - - if(affecting.name == "head") - if(prob(min(acidpwr*acid_volume/10, 90))) //Applies disfigurement - affecting.take_damage(acidity, 2*acidity) - emote("scream") - facial_hair_style = "Shaved" - hair_style = "Bald" - update_hair() - status_flags |= DISFIGURED - - update_damage_overlays() - - //MELTING INVENTORY ITEMS// - //these items are all outside of armour visually, so melt regardless. - if(back) - inventory_items_to_kill += back - if(belt) - inventory_items_to_kill += belt - if(r_hand) - inventory_items_to_kill += r_hand - if(l_hand) - inventory_items_to_kill += l_hand - - for(var/obj/item/I in inventory_items_to_kill) - I.acid_act(acidpwr, acid_volume_left) - acid_volume_left = max(acid_volume_left - acid_decay, 0) - - -/mob/living/carbon/human/attack_animal(mob/living/simple_animal/M) - if(..()) - var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) - if(check_shields(damage, "the [M.name]", null, MELEE_ATTACK, M.armour_penetration)) - return 0 - var/dam_zone = pick("chest", "l_hand", "r_hand", "l_leg", "r_leg") - var/obj/item/bodypart/affecting = get_bodypart(ran_zone(dam_zone)) - var/armor = run_armor_check(affecting, "melee") - apply_damage(damage, M.melee_damage_type, affecting, armor, "", "", M.armour_penetration) - updatehealth() - - -/mob/living/carbon/human/attack_larva(mob/living/carbon/alien/larva/L) - - if(..()) //successful larva bite. - var/damage = rand(1, 3) - if(check_shields(damage, "the [L.name]")) - return 0 - if(stat != DEAD) - L.amount_grown = min(L.amount_grown + damage, L.max_grown) - var/obj/item/bodypart/affecting = get_bodypart(ran_zone(L.zone_selected)) - var/armor_block = run_armor_check(affecting, "melee") - apply_damage(damage, BRUTE, affecting, armor_block) - updatehealth() - - -/mob/living/carbon/human/attack_slime(mob/living/simple_animal/slime/M) - if(..()) //successful slime attack - var/damage = rand(5, 25) - if(M.is_adult) - damage = rand(10, 35) - - if(check_shields(damage, "the [M.name]")) - return 0 - - var/dam_zone = pick("head", "chest", "l_arm", "r_arm", "l_leg", "r_leg", "groin") - - var/obj/item/bodypart/affecting = get_bodypart(ran_zone(dam_zone)) - var/armor_block = run_armor_check(affecting, "melee") - apply_damage(damage, BRUTE, affecting, armor_block) - -/mob/living/carbon/human/mech_melee_attack(obj/mecha/M) - - if(M.occupant.a_intent == "harm") - M.do_attack_animation(src) - if(M.damtype == "brute") - step_away(src,M,15) - var/obj/item/bodypart/temp = get_bodypart(pick("chest", "chest", "chest", "head")) - if(temp) - var/update = 0 - switch(M.damtype) - if("brute") - if(M.force > 20) - Paralyse(1) - update |= temp.take_damage(rand(M.force/2, M.force), 0) - playsound(src, 'sound/weapons/punch4.ogg', 50, 1) - if("fire") - update |= temp.take_damage(0, rand(M.force/2, M.force)) - playsound(src, 'sound/items/Welder.ogg', 50, 1) - if("tox") - M.mech_toxin_damage(src) - else - return - if(update) - update_damage_overlays(0) - updatehealth() - - visible_message("[M.name] has hit [src]!", \ - "[M.name] has hit [src]!") - add_logs(M.occupant, src, "attacked", M, "(INTENT: [uppertext(M.occupant.a_intent)]) (DAMTYPE: [uppertext(M.damtype)])") - - else - ..() +/mob/living/carbon/human/proc/check_block() + if(martial_art && martial_art.block_chance \ + && prob(martial_art.block_chance) && in_throw_mode \ + && !stat && !weakened && !stunned) + return TRUE + return FALSE /mob/living/carbon/human/hitby(atom/movable/AM, skipcatch = 0, hitpush = 1, blocked = 0) + var/spec_return = dna.species.spec_hitby(AM, src) + if(spec_return) + return spec_return var/obj/item/I var/throwpower = 30 if(istype(AM, /obj/item)) @@ -355,13 +146,13 @@ else if(I) if(I.throw_speed >= EMBED_THROWSPEED_THRESHOLD) if(can_embed(I)) - if(prob(I.embed_chance) && !(dna && (PIERCEIMMUNE in dna.species.specflags))) + if(prob(I.embed_chance) && !(dna && (PIERCEIMMUNE in dna.species.species_traits))) throw_alert("embeddedobject", /obj/screen/alert/embeddedobject) var/obj/item/bodypart/L = pick(bodyparts) L.embedded_objects |= I I.add_mob_blood(src)//it embedded itself in you, of course it's bloody! I.loc = src - L.take_damage(I.w_class*I.embedded_impact_pain_multiplier) + L.receive_damage(I.w_class*I.embedded_impact_pain_multiplier) visible_message("\the [I.name] embeds itself in [src]'s [L.name]!","\the [I.name] embeds itself in your [L.name]!") hitpush = 0 skipcatch = 1 //can't catch the now embedded item @@ -369,8 +160,8 @@ return ..() /mob/living/carbon/human/grabbedby(mob/living/carbon/user, supress_message = 0) - if(user == src && pulling && !pulling.anchored && grab_state >= GRAB_AGGRESSIVE && iscarbon(pulling)) - vore_attack(user, pulling) + if(user == src && pulling && !pulling.anchored && grab_state >= GRAB_AGGRESSIVE && (disabilities & FAT) && ismonkey(pulling)) + devour_mob(pulling) else ..() @@ -379,6 +170,574 @@ w_uniform.add_fingerprint(user) ..() -/mob/living/carbon/human/Stun(amount, updating_canmove = 1) - amount = dna.species.spec_stun(src,amount) - ..() \ No newline at end of file + +/mob/living/carbon/human/attacked_by(obj/item/I, mob/living/user) + if(!I || !user) + return 0 + + var/obj/item/bodypart/affecting = get_bodypart(ran_zone(user.zone_selected)) //what we're actually ending up trying to hit. + var/target_area = parse_zone(check_zone(user.zone_selected)) //our intended target + feedback_add_details("item_used_for_combat","[I.type]|[I.force]") + feedback_add_details("zone_targeted","[target_area]") + + // the attacked_by code varies among species + return dna.species.spec_attacked_by(I, user, affecting, a_intent, src) + + +/mob/living/carbon/human/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0) + if(user.a_intent == INTENT_HARM) + var/hulk_verb = pick("smash","pummel") + if(check_shields(15, "the [hulk_verb]ing")) + return + ..(user, 1) + playsound(loc, user.dna.species.attack_sound, 25, 1, -1) + var/message = "[user] has [hulk_verb]ed [src]!" + visible_message("[message]", \ + "[message]") + adjustBruteLoss(15) + damage_clothes(15, BRUTE, "melee") + return 1 + +/mob/living/carbon/human/attack_hand(mob/living/carbon/human/M) + if(..()) //to allow surgery to return properly. + return + dna.species.spec_attack_hand(M, src) + + +/mob/living/carbon/human/attack_paw(mob/living/carbon/monkey/M) + var/dam_zone = pick("chest", "l_hand", "r_hand", "l_leg", "r_leg") + var/obj/item/bodypart/affecting = get_bodypart(ran_zone(dam_zone)) + if(!affecting) + affecting = get_bodypart("chest") + if(M.a_intent == INTENT_HELP) + ..() //shaking + return 0 + + if(M.limb_destroyer) + dismembering_strike(M, affecting.body_zone) + + if(can_inject(M, 1, affecting))//Thick suits can stop monkey bites. + if(..()) //successful monkey bite, this handles disease contraction. + var/damage = rand(1, 3) + if(check_shields(damage)) + return 0 + if(stat != DEAD) + apply_damage(damage, BRUTE, affecting, run_armor_check(affecting, "melee")) + damage_clothes(damage, BRUTE, "melee", affecting.body_zone) + return 1 + +/mob/living/carbon/human/attack_alien(mob/living/carbon/alien/humanoid/M) + if(check_shields(0, M.name)) + visible_message("[M] attempted to touch [src]!") + return 0 + + if(..()) + if(M.a_intent == INTENT_HARM) + if (w_uniform) + w_uniform.add_fingerprint(M) + var/damage = prob(90) ? 20 : 0 + if(!damage) + playsound(loc, 'sound/weapons/slashmiss.ogg', 50, 1, -1) + visible_message("[M] has lunged at [src]!", \ + "[M] has lunged at [src]!") + return 0 + var/obj/item/bodypart/affecting = get_bodypart(ran_zone(M.zone_selected)) + if(!affecting) + affecting = get_bodypart("chest") + var/armor_block = run_armor_check(affecting, "melee","","",10) + + playsound(loc, 'sound/weapons/slice.ogg', 25, 1, -1) + visible_message("[M] has slashed at [src]!", \ + "[M] has slashed at [src]!") + add_logs(M, src, "attacked") + if(!dismembering_strike(M, M.zone_selected)) //Dismemberment successful + return 1 + apply_damage(damage, BRUTE, affecting, armor_block) + damage_clothes(damage, BRUTE, "melee", affecting.body_zone) + + if(M.a_intent == INTENT_DISARM) //Always drop item in hand, if no item, get stunned instead. + if(get_active_held_item() && drop_item()) + playsound(loc, 'sound/weapons/slash.ogg', 25, 1, -1) + visible_message("[M] disarmed [src]!", \ + "[M] disarmed [src]!") + else + playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1) + Weaken(5) + add_logs(M, src, "tackled") + visible_message("[M] has tackled down [src]!", \ + "[M] has tackled down [src]!") + + +/mob/living/carbon/human/attack_larva(mob/living/carbon/alien/larva/L) + + if(..()) //successful larva bite. + var/damage = rand(1, 3) + if(check_shields(damage, "the [L.name]")) + return 0 + if(stat != DEAD) + L.amount_grown = min(L.amount_grown + damage, L.max_grown) + var/obj/item/bodypart/affecting = get_bodypart(ran_zone(L.zone_selected)) + if(!affecting) + affecting = get_bodypart("chest") + var/armor_block = run_armor_check(affecting, "melee") + apply_damage(damage, BRUTE, affecting, armor_block) + damage_clothes(damage, BRUTE, "melee", affecting.body_zone) + + +/mob/living/carbon/human/attack_animal(mob/living/simple_animal/M) + if(..()) + var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) + if(check_shields(damage, "the [M.name]", null, MELEE_ATTACK, M.armour_penetration)) + return 0 + var/dam_zone = dismembering_strike(M, pick("chest", "l_hand", "r_hand", "l_leg", "r_leg")) + if(!dam_zone) //Dismemberment successful + return 1 + var/obj/item/bodypart/affecting = get_bodypart(ran_zone(dam_zone)) + if(!affecting) + affecting = get_bodypart("chest") + var/armor = run_armor_check(affecting, "melee", armour_penetration = M.armour_penetration) + apply_damage(damage, M.melee_damage_type, affecting, armor) + damage_clothes(damage, M.melee_damage_type, "melee", affecting.body_zone) + + +/mob/living/carbon/human/attack_slime(mob/living/simple_animal/slime/M) + if(..()) //successful slime attack + var/damage = rand(5, 25) + if(M.is_adult) + damage = rand(10, 35) + + if(check_shields(damage, "the [M.name]")) + return 0 + + var/dam_zone = dismembering_strike(M, pick("head", "chest", "l_arm", "r_arm", "l_leg", "r_leg")) + if(!dam_zone) //Dismemberment successful + return 1 + + var/obj/item/bodypart/affecting = get_bodypart(ran_zone(dam_zone)) + if(!affecting) + affecting = get_bodypart("chest") + var/armor_block = run_armor_check(affecting, "melee") + apply_damage(damage, BRUTE, affecting, armor_block) + damage_clothes(damage, BRUTE, "melee", affecting.body_zone) + +/mob/living/carbon/human/mech_melee_attack(obj/mecha/M) + + if(M.occupant.a_intent == INTENT_HARM) + M.do_attack_animation(src) + if(M.damtype == "brute") + step_away(src,M,15) + var/obj/item/bodypart/temp = get_bodypart(pick("chest", "chest", "chest", "head")) + if(temp) + var/update = 0 + var/dmg = rand(M.force/2, M.force) + switch(M.damtype) + if("brute") + if(M.force > 20) + Paralyse(1) + update |= temp.receive_damage(dmg, 0) + playsound(src, 'sound/weapons/punch4.ogg', 50, 1) + damage_clothes(dmg, BRUTE, "melee", temp.body_zone) + if("fire") + update |= temp.receive_damage(0, dmg) + playsound(src, 'sound/items/Welder.ogg', 50, 1) + damage_clothes(dmg, BURN, "melee", temp.body_zone) + if("tox") + M.mech_toxin_damage(src) + else + return + if(update) + update_damage_overlays() + updatehealth() + + visible_message("[M.name] has hit [src]!", \ + "[M.name] has hit [src]!", null, COMBAT_MESSAGE_RANGE) + add_logs(M.occupant, src, "attacked", M, "(INTENT: [uppertext(M.occupant.a_intent)]) (DAMTYPE: [uppertext(M.damtype)])") + + else + ..() + + +/mob/living/carbon/human/ex_act(severity, target, origin) + + if(origin && istype(origin, /datum/spacevine_mutation) && isvineimmune(src)) + return + ..() + var/b_loss = 0 + var/f_loss = 0 + var/bomb_armor = getarmor(null, "bomb") + + switch (severity) + if (1) + if(prob(bomb_armor)) + b_loss = 500 + var/atom/throw_target = get_edge_target_turf(src, get_dir(src, get_step_away(src, src))) + throw_at(throw_target, 200, 4) + damage_clothes(400 - bomb_armor, BRUTE, "bomb") + else + gib() + return + + if (2) + b_loss = 60 + f_loss = 60 + if(bomb_armor) + b_loss = 30*(2 - round(bomb_armor*0.01, 0.05)) + f_loss = b_loss + damage_clothes(200 - bomb_armor, BRUTE, "bomb") + if (!istype(ears, /obj/item/clothing/ears/earmuffs)) + adjustEarDamage(30, 120) + if (prob(70)) + Paralyse(10) + + if(3) + b_loss = 30 + if(bomb_armor) + b_loss = 15*(2 - round(bomb_armor*0.01, 0.05)) + damage_clothes(max(50 - bomb_armor, 0), BRUTE, "bomb") + if (!istype(ears, /obj/item/clothing/ears/earmuffs)) + adjustEarDamage(15,60) + if (prob(50)) + Paralyse(8) + + take_overall_damage(b_loss,f_loss) + + //attempt to dismember bodyparts + if(severity <= 2 || !bomb_armor) + var/max_limb_loss = round(4/severity) //so you don't lose four limbs at severity 3. + for(var/X in bodyparts) + var/obj/item/bodypart/BP = X + if(prob(50/severity) && !prob(getarmor(BP, "bomb")) && BP.body_zone != "head" && BP.body_zone != "chest") + BP.brute_dam = BP.max_damage + BP.dismember() + max_limb_loss-- + if(!max_limb_loss) + break + + +/mob/living/carbon/human/blob_act(obj/structure/blob/B) + if(stat == DEAD) + return + show_message("The blob attacks you!") + var/dam_zone = pick("chest", "l_hand", "r_hand", "l_leg", "r_leg") + var/obj/item/bodypart/affecting = get_bodypart(ran_zone(dam_zone)) + apply_damage(5, BRUTE, affecting, run_armor_check(affecting, "melee")) + + +//Added a safety check in case you want to shock a human mob directly through electrocute_act. +/mob/living/carbon/human/electrocute_act(shock_damage, obj/source, siemens_coeff = 1, safety = 0, override = 0, tesla_shock = 0, illusion = 0) + if(tesla_shock) + var/total_coeff = 1 + if(gloves) + var/obj/item/clothing/gloves/G = gloves + if(G.siemens_coefficient <= 0) + total_coeff -= 0.5 + if(wear_suit) + var/obj/item/clothing/suit/S = wear_suit + if(S.siemens_coefficient <= 0) + total_coeff -= 0.95 + siemens_coeff = total_coeff + else if(!safety) + var/gloves_siemens_coeff = 1 + if(gloves) + var/obj/item/clothing/gloves/G = gloves + gloves_siemens_coeff = G.siemens_coefficient + siemens_coeff = gloves_siemens_coeff + if(heart_attack && !illusion) + if(shock_damage * siemens_coeff >= 1 && prob(25)) + heart_attack = 0 + if(stat == CONSCIOUS) + src << "You feel your heart beating again!" + . = ..(shock_damage,source,siemens_coeff,safety,override,tesla_shock, illusion) + if(.) + electrocution_animation(40) + + +/mob/living/carbon/human/emp_act(severity) + var/informed = 0 + for(var/obj/item/bodypart/L in src.bodyparts) + if(L.status == BODYPART_ROBOTIC) + if(!informed) + src << "You feel a sharp pain as your robotic limbs overload." + informed = 1 + switch(severity) + if(1) + L.receive_damage(0,10) + src.Stun(10) + if(2) + L.receive_damage(0,5) + src.Stun(5) + ..() + +/mob/living/carbon/human/acid_act(acidpwr, acid_volume, bodyzone_hit) + var/list/damaged = list() + var/list/inventory_items_to_kill = list() + var/acidity = acidpwr * min(acid_volume*0.005, 0.1) + //HEAD// + if(!bodyzone_hit || bodyzone_hit == "head") //only if we didn't specify a zone or if that zone is the head. + var/obj/item/clothing/head_clothes = null + if(glasses) + head_clothes = glasses + if(wear_mask) + head_clothes = wear_mask + if(wear_neck) + head_clothes = wear_neck + if(head) + head_clothes = head + if(head_clothes) + if(!(head_clothes.resistance_flags & UNACIDABLE)) + head_clothes.acid_act(acidpwr, acid_volume) + update_inv_glasses() + update_inv_wear_mask() + update_inv_neck() + update_inv_head() + else + src << "Your [head_clothes.name] protects your head and face from the acid!" + else + . = get_bodypart("head") + if(.) + damaged += . + if(ears) + inventory_items_to_kill += ears + + //CHEST// + if(!bodyzone_hit || bodyzone_hit == "chest") + var/obj/item/clothing/chest_clothes = null + if(w_uniform) + chest_clothes = w_uniform + if(wear_suit) + chest_clothes = wear_suit + if(chest_clothes) + if(!(chest_clothes.resistance_flags & UNACIDABLE)) + chest_clothes.acid_act(acidpwr, acid_volume) + update_inv_w_uniform() + update_inv_wear_suit() + else + src << "Your [chest_clothes.name] protects your body from the acid!" + else + . = get_bodypart("chest") + if(.) + damaged += . + if(wear_id) + inventory_items_to_kill += wear_id + if(r_store) + inventory_items_to_kill += r_store + if(l_store) + inventory_items_to_kill += l_store + if(s_store) + inventory_items_to_kill += s_store + + + //ARMS & HANDS// + if(!bodyzone_hit || bodyzone_hit == "l_arm" || bodyzone_hit == "r_arm") + var/obj/item/clothing/arm_clothes = null + if(gloves) + arm_clothes = gloves + if(w_uniform && ((w_uniform.body_parts_covered & HANDS) || (w_uniform.body_parts_covered & ARMS))) + arm_clothes = w_uniform + if(wear_suit && ((wear_suit.body_parts_covered & HANDS) || (wear_suit.body_parts_covered & ARMS))) + arm_clothes = wear_suit + + if(arm_clothes) + if(!(arm_clothes.resistance_flags & UNACIDABLE)) + arm_clothes.acid_act(acidpwr, acid_volume) + update_inv_gloves() + update_inv_w_uniform() + update_inv_wear_suit() + else + src << "Your [arm_clothes.name] protects your arms and hands from the acid!" + else + . = get_bodypart("r_arm") + if(.) + damaged += . + . = get_bodypart("l_arm") + if(.) + damaged += . + + + //LEGS & FEET// + if(!bodyzone_hit || bodyzone_hit == "l_leg" || bodyzone_hit == "r_leg" || bodyzone_hit == "feet") + var/obj/item/clothing/leg_clothes = null + if(shoes) + leg_clothes = shoes + if(w_uniform && ((w_uniform.body_parts_covered & FEET) || (bodyzone_hit != "feet" && (w_uniform.body_parts_covered & LEGS)))) + leg_clothes = w_uniform + if(wear_suit && ((wear_suit.body_parts_covered & FEET) || (bodyzone_hit != "feet" && (wear_suit.body_parts_covered & LEGS)))) + leg_clothes = wear_suit + if(leg_clothes) + if(!(leg_clothes.resistance_flags & UNACIDABLE)) + leg_clothes.acid_act(acidpwr, acid_volume) + update_inv_shoes() + update_inv_w_uniform() + update_inv_wear_suit() + else + src << "Your [leg_clothes.name] protects your legs and feet from the acid!" + else + . = get_bodypart("r_leg") + if(.) + damaged += . + . = get_bodypart("l_leg") + if(.) + damaged += . + + + //DAMAGE// + for(var/obj/item/bodypart/affecting in damaged) + affecting.receive_damage(acidity, 2*acidity) + + if(affecting.name == "head") + if(prob(min(acidpwr*acid_volume/10, 90))) //Applies disfigurement + affecting.receive_damage(acidity, 2*acidity) + emote("scream") + facial_hair_style = "Shaved" + hair_style = "Bald" + update_hair() + status_flags |= DISFIGURED + + update_damage_overlays() + + //MELTING INVENTORY ITEMS// + //these items are all outside of armour visually, so melt regardless. + if(!bodyzone_hit) + if(back) + inventory_items_to_kill += back + if(belt) + inventory_items_to_kill += belt + + inventory_items_to_kill += held_items + + for(var/obj/item/I in inventory_items_to_kill) + I.acid_act(acidpwr, acid_volume) + return 1 + +/mob/living/carbon/human/singularity_act() + var/gain = 20 + if(mind) + if((mind.assigned_role == "Station Engineer") || (mind.assigned_role == "Chief Engineer") ) + gain = 100 + if(mind.assigned_role == "Clown") + gain = rand(-300, 300) + investigate_log("([key_name(src)]) has been consumed by the singularity.","singulo") //Oh that's where the clown ended up! + gib() + return(gain) + +/mob/living/carbon/human/help_shake_act(mob/living/carbon/M) + if(!istype(M)) + return + + if(health >= 0) + if(src == M) + visible_message("[src] examines [p_them()]self.", \ + "You check yourself for injuries.") + + var/list/missing = list("head", "chest", "l_arm", "r_arm", "l_leg", "r_leg") + for(var/X in bodyparts) + var/obj/item/bodypart/LB = X + missing -= LB.body_zone + var/status = "" + var/brutedamage = LB.brute_dam + var/burndamage = LB.burn_dam + if(hallucination) + if(prob(30)) + brutedamage += rand(30,40) + if(prob(30)) + burndamage += rand(30,40) + + if(brutedamage > 0) + status = "bruised" + if(brutedamage > 20) + status = "battered" + if(brutedamage > 40) + status = "mangled" + if(brutedamage > 0 && burndamage > 0) + status += " and " + if(burndamage > 40) + status += "peeling away" + + else if(burndamage > 10) + status += "blistered" + else if(burndamage > 0) + status += "numb" + if(status == "") + status = "OK" + src << "\t [status == "OK" ? "\blue" : "\red"] Your [LB.name] is [status]." + + for(var/obj/item/I in LB.embedded_objects) + src << "\t \red There is \a [I] embedded in your [LB.name]!" + + for(var/t in missing) + src << "Your [parse_zone(t)] is missing!" + + if(bleed_rate) + src << "You are bleeding!" + if(staminaloss) + if(staminaloss > 30) + src << "You're completely exhausted." + else + src << "You feel fatigued." + else + if(wear_suit) + wear_suit.add_fingerprint(M) + else if(w_uniform) + w_uniform.add_fingerprint(M) + + ..() + + +/mob/living/carbon/human/damage_clothes(damage_amount, damage_type = BRUTE, damage_flag = 0, def_zone) + if(damage_type != BRUTE && damage_type != BURN) + return + damage_amount *= 0.5 //0.5 multiplier for balance reason, we don't want clothes to be too easily destroyed + var/list/torn_items = list() + + //HEAD// + if(!def_zone || def_zone == "head") + var/obj/item/clothing/head_clothes = null + if(glasses) + head_clothes = glasses + if(wear_mask) + head_clothes = wear_mask + if(wear_neck) + head_clothes = wear_neck + if(head) + head_clothes = head + if(head_clothes) + torn_items += head_clothes + else if(ears) + torn_items += ears + + //CHEST// + if(!def_zone || def_zone == "chest") + var/obj/item/clothing/chest_clothes = null + if(w_uniform) + chest_clothes = w_uniform + if(wear_suit) + chest_clothes = wear_suit + if(chest_clothes) + torn_items += chest_clothes + + //ARMS & HANDS// + if(!def_zone || def_zone == "l_arm" || def_zone == "r_arm") + var/obj/item/clothing/arm_clothes = null + if(gloves) + arm_clothes = gloves + if(w_uniform && ((w_uniform.body_parts_covered & HANDS) || (w_uniform.body_parts_covered & ARMS))) + arm_clothes = w_uniform + if(wear_suit && ((wear_suit.body_parts_covered & HANDS) || (wear_suit.body_parts_covered & ARMS))) + arm_clothes = wear_suit + if(arm_clothes) + torn_items += arm_clothes + + //LEGS & FEET// + if(!def_zone || def_zone == "l_leg" || def_zone == "r_leg") + var/obj/item/clothing/leg_clothes = null + if(shoes) + leg_clothes = shoes + if(w_uniform && ((w_uniform.body_parts_covered & FEET) || (w_uniform.body_parts_covered & LEGS))) + leg_clothes = w_uniform + if(wear_suit && ((wear_suit.body_parts_covered & FEET) || (wear_suit.body_parts_covered & LEGS))) + leg_clothes = wear_suit + if(leg_clothes) + torn_items += leg_clothes + + for(var/obj/item/I in torn_items) + I.take_damage(damage_amount, damage_type, damage_flag, 0) \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 2da18e7d8f..4a41b0f328 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -3,6 +3,7 @@ var/global/default_martial_art = new/datum/martial_art languages_spoken = HUMAN languages_understood = HUMAN hud_possible = list(HEALTH_HUD,STATUS_HUD,ID_HUD,WANTED_HUD,IMPLOYAL_HUD,IMPCHEM_HUD,IMPTRACK_HUD,ANTAG_HUD) + pressure_resistance = 25 //Hair colour and style var/hair_color = "000" var/hair_style = "Bald" @@ -29,11 +30,7 @@ var/global/default_martial_art = new/datum/martial_art //Equipment slots var/obj/item/wear_suit = null var/obj/item/w_uniform = null - var/obj/item/shoes = null var/obj/item/belt = null - var/obj/item/gloves = null - var/obj/item/clothing/glasses/glasses = null - var/obj/item/ears = null var/obj/item/wear_id = null var/obj/item/r_store = null var/obj/item/l_store = null @@ -41,8 +38,6 @@ var/global/default_martial_art = new/datum/martial_art var/special_voice = "" // For changing our voice. Used by a symptom. - var/gender_ambiguous = 0 //if something goes wrong during gender reassignment this generates a line in examine - var/bleed_rate = 0 //how much are we bleeding var/bleedsuppress = 0 //for stopping bloodloss, eventually this will be limb-based like bleeding diff --git a/code/modules/mob/living/carbon/human/human_helpers.dm b/code/modules/mob/living/carbon/human/human_helpers.dm index 83f630532f..74ac63f3f3 100644 --- a/code/modules/mob/living/carbon/human/human_helpers.dm +++ b/code/modules/mob/living/carbon/human/human_helpers.dm @@ -81,41 +81,23 @@ if(wear_id) return wear_id.GetID() -///checkeyeprot() -///Returns a number between -1 to 2 -/mob/living/carbon/human/check_eye_prot() - var/number = ..() - if(istype(src.head, /obj/item/clothing/head)) //are they wearing something on their head - var/obj/item/clothing/head/HFP = src.head //if yes gets the flash protection value from that item - number += HFP.flash_protect - if(istype(src.glasses, /obj/item/clothing/glasses)) //glasses - var/obj/item/clothing/glasses/GFP = src.glasses - number += GFP.flash_protect - if(istype(src.wear_mask, /obj/item/clothing/mask)) //mask - var/obj/item/clothing/mask/MFP = src.wear_mask - number += MFP.flash_protect - if(istype(src.dna.species, /datum/species/xeno)) //Xenos don't have eyes. - number += 2 //So give them protection from flashes. - return number - -/mob/living/carbon/human/check_ear_prot() - if((ears && (ears.flags & EARBANGPROTECT)) || (head && (head.flags & HEADBANGPROTECT))) - return 1 /mob/living/carbon/human/abiotic(full_body = 0) - if(full_body && ((l_hand && !( src.l_hand.flags&ABSTRACT )) || (r_hand && !( src.r_hand.flags&ABSTRACT )) || (back && !(back.flags&ABSTRACT)) || (wear_mask && !(wear_mask.flags&ABSTRACT)) || (head && !(head.flags&ABSTRACT)) || (shoes && !(shoes.flags&ABSTRACT)) || (w_uniform && !(w_uniform.flags&ABSTRACT)) || (wear_suit && !(wear_suit.flags&ABSTRACT)) || (glasses && !(glasses.flags&ABSTRACT)) || (ears && !(ears.flags&ABSTRACT)) || (gloves && !(gloves.flags&ABSTRACT)) ) ) - return 1 + var/abiotic_hands = FALSE + for(var/obj/item/I in held_items) + if(!(I.flags & NODROP)) + abiotic_hands = TRUE + break + if(full_body && abiotic_hands && ((back && !(back.flags&NODROP)) || (wear_mask && !(wear_mask.flags&NODROP)) || (head && !(head.flags&NODROP)) || (shoes && !(shoes.flags&NODROP)) || (w_uniform && !(w_uniform.flags&NODROP)) || (wear_suit && !(wear_suit.flags&NODROP)) || (glasses && !(glasses.flags&NODROP)) || (ears && !(ears.flags&NODROP)) || (gloves && !(gloves.flags&NODROP)) ) ) + return TRUE + return abiotic_hands - if( (src.l_hand && !(src.l_hand.flags&ABSTRACT)) || (src.r_hand && !(src.r_hand.flags&ABSTRACT)) ) - return 1 - - return 0 /mob/living/carbon/human/IsAdvancedToolUser() return 1//Humans can use guns and such /mob/living/carbon/human/InCritical() - return (health <= config.health_threshold_crit && stat == UNCONSCIOUS) + return (health <= HEALTH_THRESHOLD_CRIT && stat == UNCONSCIOUS) /mob/living/carbon/human/reagent_check(datum/reagent/R) return dna.species.handle_chemicals(R,src) @@ -159,7 +141,7 @@ if(src.dna.check_mutation(HULK)) src << "Your meaty finger is much too large for the trigger guard!" return 0 - if(NOGUNS in src.dna.species.specflags) + if(NOGUNS in src.dna.species.species_traits) src << "Your fingers don't fit in the trigger guard!" return 0 diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index 8f28dbc240..21f09a318f 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -1,8 +1,8 @@ /mob/living/carbon/human/movement_delay() - . += dna.species.movement_delay(src) + . = 0 . += ..() . += config.human_delay - + . += dna.species.movement_delay(src) /mob/living/carbon/human/slip(s_amount, w_amount, obj/O, lube) if(isobj(shoes) && (shoes.flags&NOSLIP) && !(lube&GALOSHES_DONT_HELP)) @@ -60,4 +60,4 @@ /mob/living/carbon/human/Process_Spacemove(movement_dir = 0) //Temporary laziness thing. Will change to handles by species reee. if(..()) return 1 - return dna.species.space_move() + return dna.species.space_move(src) diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index f560a40d89..8edb3e27ab 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -4,7 +4,7 @@ /mob/living/carbon/human/proc/equip_in_one_of_slots(obj/item/I, list/slots, qdel_on_fail = 1) for(var/slot in slots) - if(equip_to_slot_if_possible(I, slots[slot], qdel_on_fail = 0)) + if(equip_to_slot_if_possible(I, slots[slot], qdel_on_fail = 0, disable_warning = TRUE)) return slot if(qdel_on_fail) qdel(I) @@ -18,14 +18,12 @@ return back if(slot_wear_mask) return wear_mask + if(slot_neck) + return wear_neck if(slot_handcuffed) return handcuffed if(slot_legcuffed) return legcuffed - if(slot_l_hand) - return l_hand - if(slot_r_hand) - return r_hand if(slot_belt) return belt if(slot_wear_id) @@ -52,11 +50,48 @@ return s_store return null +/mob/living/carbon/human/proc/get_all_slots() + . = get_head_slots() | get_body_slots() + +/mob/living/carbon/human/proc/get_body_slots() + return list( + back, + s_store, + handcuffed, + legcuffed, + wear_suit, + gloves, + shoes, + belt, + wear_id, + l_store, + r_store, + w_uniform + ) + +/mob/living/carbon/human/proc/get_head_slots() + return list( + head, + wear_mask, + glasses, + ears, + ) + +/mob/living/carbon/human/proc/get_storage_slots() + return list( + back, + belt, + l_store, + r_store, + s_store, + ) //This is an UNSAFE proc. Use mob_can_equip() before calling this one! Or rather use equip_to_slot_if_possible() or advanced_equip_to_slot_if_possible() /mob/living/carbon/human/equip_to_slot(obj/item/I, slot) if(!..()) //a check failed or the item has already found its slot return + + var/not_handled = FALSE //Added in case we make this type path deeper one day switch(slot) if(slot_belt) belt = I @@ -71,6 +106,8 @@ if(slot_glasses) glasses = I var/obj/item/clothing/glasses/G = I + if(G.glass_colour_type) + update_glasses_color(G, 1) if(G.tint) update_tint() if(G.vision_correction) @@ -108,6 +145,12 @@ else src << "You are trying to equip this item to an unsupported inventory slot. Report this to a coder!" + //Item is handled and in slot, valid to call callback, for this proc should always be true + if(!not_handled) + I.equipped(src, slot) + + return not_handled //For future deeper overrides + /mob/living/carbon/human/unEquip(obj/item/I) . = ..() //See mob.dm for an explanation on this and some rage about people copypasting instead of calling ..() like they should. if(!. || !I) @@ -140,6 +183,8 @@ else if(I == glasses) glasses = null var/obj/item/clothing/glasses/G = I + if(G.glass_colour_type) + update_glasses_color(G, 0) if(G.tint) update_tint() if(G.vision_correction) @@ -192,91 +237,6 @@ sec_hud_set_security_status() ..() - - - -//Cycles through all clothing slots and tests them for destruction -/mob/living/carbon/human/proc/shred_clothing(bomb,shock) - var/covered_parts = 0 //The body parts that are protected by exterior clothing/armor - var/head_absorbed = 0 //How much of the shock the headgear absorbs when it is shredded. -1=it survives - var/suit_absorbed = 0 //How much of the shock the exosuit absorbs when it is shredded. -1=it survives - - //Backpacks can never be protected but are annoying as fuck to lose, so they get a lower chance to be shredded - if(back) - back.shred(bomb,shock-20,src) - - if(head) - covered_parts |= head.flags_inv - head_absorbed = head.shred(bomb,shock,src) - if(wear_mask) - var/absorbed = ((covered_parts & HIDEMASK) ? head_absorbed : 0) //Check if clothing covering this part absorbed any of the shock - if(absorbed >= 0) - //Masks can be used to shield other parts, but are simplified to simply add their absorbsion to the head armor if it covers the face - var/mask_absorbed = wear_mask.shred(bomb,shock-absorbed,src) - if(wear_mask.flags_inv & HIDEFACE) - covered_parts |= wear_mask.flags_inv - if(mask_absorbed < 0) //If the mask didn't get shredded, everything else on the head is protected - head_absorbed = -1 - else - head_absorbed += mask_absorbed - if(ears) - var/absorbed = ((covered_parts & HIDEEARS) ? head_absorbed : 0) - if(absorbed >= 0) - ears.shred(bomb,shock-absorbed,src) - if(glasses) - var/absorbed = ((covered_parts & HIDEEYES) ? head_absorbed : 0) - if(absorbed >= 0) - glasses.shred(bomb,shock-absorbed,src) - - if(wear_suit) - covered_parts |= wear_suit.flags_inv - suit_absorbed = wear_suit.shred(bomb,shock,src) - if(gloves) - var/absorbed = ((covered_parts & HIDEGLOVES) ? suit_absorbed : 0) - if(absorbed >= 0) - gloves.shred(bomb,shock-absorbed,src) - if(shoes) - var/absorbed = ((covered_parts & HIDESHOES) ? suit_absorbed : 0) - if(absorbed >= 0) - shoes.shred(bomb,shock-absorbed,src) - if(w_uniform) - var/absorbed = ((covered_parts & HIDEJUMPSUIT) ? suit_absorbed : 0) - if(absorbed >= 0) - w_uniform.shred(bomb,shock-20-absorbed,src) //Uniforms are also annoying to get shredded - -/obj/item/proc/shred(bomb,shock,mob/living/carbon/human/Human) - if(flags & ABSTRACT) - return -1 - - var/shredded - - if(!bomb) - if(burn_state != -1) - shredded = 1 //No heat protection, it burns - else - shredded = -1 //Heat protection = Fireproof - - else if(shock > 0) - if(prob(max(shock-armor["bomb"],0))) - shredded = armor["bomb"] + 10 //It gets shredded, but it also absorbs the shock the clothes underneath would recieve by this amount - else - shredded = -1 //It survives explosion - - if(shredded > 0) - if(Human) //Unequip if equipped - Human.unEquip(src) - - if(bomb) - empty_object_contents() - spawn(1) //so the shreds aren't instantly deleted by the explosion - var/obj/effect/decal/cleanable/shreds/Shreds = new(loc) - Shreds.desc = "The sad remains of what used to be [src.name]." - qdel(src) - else - burn() - - return shredded - /mob/living/carbon/human/proc/equipOutfit(outfit, visualsOnly = FALSE) var/datum/outfit/O = null diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 0c3b27ba8d..e1fffbeef6 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 + //NOTE: Breathing happens once per FOUR TICKS, unless the last breath fails. In which case it happens once per ONE TICK! So oxyloss healing is done once per 4 ticks while oxyloss damage is applied once per tick! @@ -29,20 +29,26 @@ if (notransform) return - if(..()) + if(..()) //not dead for(var/datum/mutation/human/HM in dna.mutations) HM.on_life(src) + if(stat != DEAD) //heart attack stuff handle_heart() + if(stat != DEAD) //Stuff jammed in your limbs hurts handle_embedded_objects() + //Update our name based on whether our face is obscured/disfigured name = get_visible_name() dna.species.spec_life(src) // for mutantraces + if(stat != DEAD) + return 1 + /mob/living/carbon/human/calculate_affecting_pressure(pressure) if((wear_suit && (wear_suit.flags & STOPSPRESSUREDMAGE)) && (head && (head.flags & STOPSPRESSUREDMAGE))) @@ -85,9 +91,38 @@ /mob/living/carbon/human/breathe() if(!dna.species.breathe(src)) ..() - +#define HUMAN_MAX_OXYLOSS 3 +#define HUMAN_CRIT_MAX_OXYLOSS (SSmob.wait/30) /mob/living/carbon/human/check_breath(datum/gas_mixture/breath) - dna.species.check_breath(breath, src) + + var/L = getorganslot("lungs") + + if(!L) + if(health >= HEALTH_THRESHOLD_CRIT) + adjustOxyLoss(HUMAN_MAX_OXYLOSS + 1) + else if(!(NOCRITDAMAGE in dna.species.species_traits)) + adjustOxyLoss(HUMAN_CRIT_MAX_OXYLOSS) + + failed_last_breath = 1 + + if(dna && dna.species) + var/datum/species/S = dna.species + + if(S.breathid == "o2") + throw_alert("oxy", /obj/screen/alert/oxy) + else if(S.breathid == "tox") + throw_alert("not_enough_tox", /obj/screen/alert/not_enough_tox) + else if(S.breathid == "co2") + throw_alert("not_enough_co2", /obj/screen/alert/not_enough_co2) + + return 0 + else + if(istype(L,/obj/item/organ/lungs)) + var/obj/item/organ/lungs/lun = L + lun.check_breath(breath,src) + +#undef HUMAN_MAX_OXYLOSS +#undef HUMAN_CRIT_MAX_OXYLOSS /mob/living/carbon/human/handle_environment(datum/gas_mixture/environment) dna.species.handle_environment(environment, src) @@ -97,6 +132,61 @@ if(!dna || !dna.species.handle_fire(src)) ..() if(on_fire) + + //the fire tries to damage the exposed clothes and items + var/list/burning_items = list() + //HEAD// + var/obj/item/clothing/head_clothes = null + if(glasses) + head_clothes = glasses + if(wear_mask) + head_clothes = wear_mask + if(wear_neck) + head_clothes = wear_neck + if(head) + head_clothes = head + if(head_clothes) + burning_items += head_clothes + else if(ears) + burning_items += ears + + //CHEST// + var/obj/item/clothing/chest_clothes = null + if(w_uniform) + chest_clothes = w_uniform + if(wear_suit) + chest_clothes = wear_suit + + if(chest_clothes) + burning_items += chest_clothes + + //ARMS & HANDS// + var/obj/item/clothing/arm_clothes = null + if(gloves) + arm_clothes = gloves + if(w_uniform && ((w_uniform.body_parts_covered & HANDS) || (w_uniform.body_parts_covered & ARMS))) + arm_clothes = w_uniform + if(wear_suit && ((wear_suit.body_parts_covered & HANDS) || (wear_suit.body_parts_covered & ARMS))) + arm_clothes = wear_suit + if(arm_clothes) + burning_items += arm_clothes + + //LEGS & FEET// + var/obj/item/clothing/leg_clothes = null + if(shoes) + leg_clothes = shoes + if(w_uniform && ((w_uniform.body_parts_covered & FEET) || (w_uniform.body_parts_covered & LEGS))) + leg_clothes = w_uniform + if(wear_suit && ((wear_suit.body_parts_covered & FEET) || (wear_suit.body_parts_covered & LEGS))) + leg_clothes = wear_suit + if(leg_clothes) + burning_items += leg_clothes + + for(var/X in burning_items) + var/obj/item/I = X + if(!(I.resistance_flags & FIRE_PROOF)) + I.take_damage(fire_stacks, BURN, "fire", 0) + var/thermal_protection = get_thermal_protection() if(thermal_protection >= FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT) @@ -217,7 +307,7 @@ if(dna.check_mutation(COLDRES)) return 1 //Fully protected from the cold. - if(dna && (RESISTTEMP in dna.species.specflags)) + if(dna && (RESISTCOLD in dna.species.species_traits)) return 1 temperature = max(temperature, 2.7) //There is an occasional bug where the temperature is miscalculated in ares with a small amount of gas on them, so this is necessary to ensure that that bug does not affect this calculation. Space's temperature is 2.7K and most suits that are intended to protect against any cold, protect down to 2.0K. @@ -277,7 +367,7 @@ if(head) if(head.flags & BLOCK_GAS_SMOKE_EFFECT) . = 1 - if(NOBREATH in dna.species.specflags) + if(NOBREATH in dna.species.species_traits) . = 1 return . @@ -287,11 +377,11 @@ var/obj/item/bodypart/BP = X for(var/obj/item/I in BP.embedded_objects) if(prob(I.embedded_pain_chance)) - BP.take_damage(I.w_class*I.embedded_pain_multiplier) + BP.receive_damage(I.w_class*I.embedded_pain_multiplier) src << "\the [I] embedded in your [BP.name] hurts!" if(prob(I.embedded_fall_chance)) - BP.take_damage(I.w_class*I.embedded_fall_pain_multiplier) + BP.receive_damage(I.w_class*I.embedded_fall_pain_multiplier) BP.embedded_objects -= I I.loc = get_turf(src) visible_message("\the [I] falls out of [name]'s [BP.name]!","\the [I] falls out of your [BP.name]!") @@ -301,8 +391,8 @@ /mob/living/carbon/human/proc/handle_heart() CHECK_DNA_AND_SPECIES(src) - var/needs_heart = (!(NOBLOOD in dna.species.specflags)) - var/we_breath = (!(NOBREATH in dna.species.specflags)) + var/needs_heart = (!(NOBLOOD in dna.species.species_traits)) + var/we_breath = (!(NOBREATH in dna.species.species_traits)) if(heart_attack) if(!needs_heart) diff --git a/code/modules/mob/living/carbon/human/say.dm b/code/modules/mob/living/carbon/human/say.dm index 0caef7376b..f13acb5025 100644 --- a/code/modules/mob/living/carbon/human/say.dm +++ b/code/modules/mob/living/carbon/human/say.dm @@ -51,7 +51,7 @@ CHECK_DNA_AND_SPECIES(src) // how do species that don't breathe talk? magic, that's what. - if(!(NOBREATH in dna.species.specflags) && !getorganslot("lungs")) + if(!(NOBREATH in dna.species.species_traits) && !getorganslot("lungs")) return 0 if(mind) return !mind.miming diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 67077b4790..e3fed94d8a 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1,8 +1,5 @@ // This code handles different species in the game. -#define HUMAN_MAX_OXYLOSS 3 -#define HUMAN_CRIT_MAX_OXYLOSS (SSmob.wait/30) - #define HEAT_DAMAGE_LEVEL_1 2 #define HEAT_DAMAGE_LEVEL_2 3 #define HEAT_DAMAGE_LEVEL_3 8 @@ -11,13 +8,6 @@ #define COLD_DAMAGE_LEVEL_2 1.5 #define COLD_DAMAGE_LEVEL_3 3 -#define HEAT_GAS_DAMAGE_LEVEL_1 2 -#define HEAT_GAS_DAMAGE_LEVEL_2 4 -#define HEAT_GAS_DAMAGE_LEVEL_3 8 - -#define COLD_GAS_DAMAGE_LEVEL_1 0.5 -#define COLD_GAS_DAMAGE_LEVEL_2 1.5 -#define COLD_GAS_DAMAGE_LEVEL_3 3 /datum/species var/id = null // if the game needs to manually check your race to do something not included in a proc here, it will use this @@ -26,7 +16,7 @@ var/roundstart = 0 // can this mob be chosen at roundstart? (assuming the config option is checked?) var/default_color = "#FFF" // if alien colors are disabled, this is the color that will be used by that race - var/eyes = "eyes" // which eyes the race uses(the icon state). "eyes" are for normal humans and most other races, check human_face.dmi to make new ones + var/eyes = "eyes" // which eyes the race uses. at the moment, the only types of eyes are "eyes" (regular eyes) and "jelleyes" (three eyes) var/sexes = 1 // whether or not the race has sexual characteristics. at the moment this is only 0 for skeletons and shadows var/hair_color = null // this allows races to have specific hair colors... if null, it uses the H's hair/facial hair colors. if "mutcolor", it uses the H's mutant_color var/hair_alpha = 255 // the alpha used by the hair. 255 is completely solid, 0 is transparent. @@ -54,44 +44,23 @@ var/punchdamagehigh = 9 //highest possible punch damage var/punchstunthreshold = 9//damage at which punches from this race will stun //yes it should be to the attacked race but it's not useful that way even if it's logical var/siemens_coeff = 1 //base electrocution coefficient - var/exotic_damage_overlay = "" + var/damage_overlay_type = "human" //what kind of damage overlays (if any) appear on our species when wounded? var/fixed_mut_color = "" //to use MUTCOLOR with a fixed color that's independent of dna.feature["mcolor"] - var/fixed_mut_color2 = "" - var/fixed_mut_color3 = "" - var/whitelisted = 0 //Is this species restricted to certain players? - var/whitelist = list() //List the ckeys that can use this species, if it's whitelisted.: list("John Doe", "poopface666", "SeeALiggerPullTheTrigger") Spaces & capitalization can be included or ignored entirely for each key as it checks for both. - var/lang_spoken = HUMAN - var/lang_understood = HUMAN + var/invis_sight = SEE_INVISIBLE_LIVING var/darksight = 2 // species flags. these can be found in flags.dm - var/list/specflags = list(EYECOLOR,HAIR,FACEHAIR,LIPS) + var/list/species_traits = list() var/attack_verb = "punch" // punch-specific attack verb var/sound/attack_sound = 'sound/weapons/punch1.ogg' var/sound/miss_sound = 'sound/weapons/punchmiss.ogg' var/mob/living/list/ignored_by = list() // list of mobs that will ignore this species - //Breathing! - var/safe_oxygen_min = 16 // Minimum safe partial pressure of O2, in kPa - var/safe_oxygen_max = 0 - var/safe_co2_min = 0 - var/safe_co2_max = 10 // Yes it's an arbitrary value who cares? - var/safe_toxins_min = 0 - var/safe_toxins_max = 0.05 - var/SA_para_min = 1 //Sleeping agent - var/SA_sleep_min = 5 //Sleeping agent - var/BZ_trip_balls_min = 1 //BZ gas. - - //Breath damage - var/oxy_breath_dam_min = 1 - var/oxy_breath_dam_max = 10 - var/co2_breath_dam_min = 1 - var/co2_breath_dam_max = 10 - var/tox_breath_dam_min = MIN_PLASMA_DAMAGE - var/tox_breath_dam_max = MAX_PLASMA_DAMAGE + var/obj/item/organ/lungs/mutantlungs = null + var/breathid = "o2" //Flight and floating var/override_float = 0 @@ -100,13 +69,9 @@ // PROCS // /////////// -mob/living/carbon/human/proc/get_species() - if(has_dna()) - return dna.species.id - else - return /datum/species/New() + if(!limbs_id) //if we havent set a limbs id to use, just use our own id limbs_id = id ..() @@ -140,36 +105,35 @@ mob/living/carbon/human/proc/get_species() // 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) - if(thing) + if(thing && (!thing.species_exception || !is_type_in_list(src,thing.species_exception))) C.unEquip(thing) - if(NODISMEMBER in specflags) - C.regenerate_limbs() //if we don't handle dismemberment, we grow our missing limbs back var/obj/item/organ/heart/heart = C.getorganslot("heart") var/obj/item/organ/lungs/lungs = C.getorganslot("lungs") var/obj/item/organ/appendix/appendix = C.getorganslot("appendix") - if((NOBLOOD in specflags) && heart) + if((NOBLOOD in species_traits) && heart) heart.Remove(C) qdel(heart) - - else if((!(NOBLOOD in specflags)) && (!heart)) + else if((!(NOBLOOD in species_traits)) && (!heart)) heart = new() heart.Insert(C) - if((NOBREATH in specflags) && lungs) + if(lungs) lungs.Remove(C) qdel(lungs) - - else if((!(NOBREATH in specflags)) && (!lungs)) - lungs = new() + lungs = null + if((!(NOBREATH in species_traits)) && !lungs) + if(mutantlungs) + lungs = new mutantlungs() + else + lungs = new() lungs.Insert(C) - if((NOHUNGER in specflags) && appendix) + if((NOHUNGER in species_traits) && appendix) appendix.Remove(C) qdel(appendix) - - else if((!(NOHUNGER in specflags)) && (!appendix)) + else if((!(NOHUNGER in species_traits)) && (!appendix)) appendix = new() appendix.Insert(C) @@ -179,13 +143,16 @@ mob/living/carbon/human/proc/get_species() if(exotic_bloodtype && C.dna.blood_type != exotic_bloodtype) C.dna.blood_type = exotic_bloodtype - - C.languages_spoken = lang_spoken - C.languages_understood = lang_understood + if(("legs" in C.dna.species.mutant_bodyparts) && C.dna.features["legs"] == "Digitigrade Legs") + species_traits += DIGITIGRADE + if(DIGITIGRADE in species_traits) + C.Digitigrade_Leg_Swap(FALSE) /datum/species/proc/on_species_loss(mob/living/carbon/C) if(C.dna.species.exotic_bloodtype) C.dna.blood_type = random_blood_type() + if(DIGITIGRADE in species_traits) + C.Digitigrade_Leg_Swap(TRUE) /datum/species/proc/handle_hair(mob/living/carbon/human/H, forced_colour) H.remove_overlay(HAIR_LAYER) @@ -210,7 +177,7 @@ mob/living/carbon/human/proc/get_species() if(M.flags_inv & HIDEFACIALHAIR) facialhair_hidden = 1 - if(H.facial_hair_style && (FACEHAIR in specflags) && !facialhair_hidden) + if(H.facial_hair_style && (FACEHAIR in species_traits) && !facialhair_hidden) S = facial_hair_styles_list[H.facial_hair_style] if(S) var/image/img_facial_s = image("icon" = S.icon, "icon_state" = "[S.icon_state]_s", "layer" = -HAIR_LAYER) @@ -241,9 +208,10 @@ mob/living/carbon/human/proc/get_species() hair_hidden = 1 if(!hair_hidden) if(!H.getorgan(/obj/item/organ/brain)) //Applies the debrained overlay if there is no brain - standing += image("icon"='icons/mob/human_face.dmi', "icon_state" = "debrained_s", "layer" = -HAIR_LAYER) + if(!(NOBLOOD in species_traits)) + standing += image("icon"='icons/mob/human_face.dmi', "icon_state" = "debrained_s", "layer" = -HAIR_LAYER) - else if(H.hair_style && (HAIR in specflags)) + else if(H.hair_style && (HAIR in species_traits)) S = hair_styles_list[H.hair_style] if(S) var/image/img_hair_s = image("icon" = S.icon, "icon_state" = "[S.icon_state]_s", "layer" = -HAIR_LAYER) @@ -274,21 +242,20 @@ mob/living/carbon/human/proc/get_species() var/list/standing = list() - handle_mutant_bodyparts(H) - var/obj/item/bodypart/head/HD = H.get_bodypart("head") - // lipstick - if(H.lip_style && (LIPS in specflags) && HD) - var/image/lips = image("icon"='icons/mob/human_face.dmi', "icon_state"="lips_[H.lip_style]_s", "layer" = -BODY_LAYER) - lips.color = H.lip_color - standing += lips + if(!(H.disabilities & HUSK)) + // lipstick + if(H.lip_style && (LIPS in species_traits) && HD) + var/image/lips = image("icon"='icons/mob/human_face.dmi', "icon_state"="lips_[H.lip_style]_s", "layer" = -BODY_LAYER) + lips.color = H.lip_color + standing += lips - // eyes - if((EYECOLOR in specflags) && HD) - var/image/img_eyes_s = image("icon" = 'icons/mob/human_face.dmi', "icon_state" = "[eyes]_s", "layer" = -BODY_LAYER) - img_eyes_s.color = "#" + H.eye_color - standing += img_eyes_s + // eyes + if((EYECOLOR in species_traits) && HD) + var/image/img_eyes_s = image("icon" = 'icons/mob/human_face.dmi', "icon_state" = "[eyes]_s", "layer" = -BODY_LAYER) + img_eyes_s.color = "#" + H.eye_color + standing += img_eyes_s //Underwear, Undershirts & Socks if(H.underwear) @@ -304,17 +271,16 @@ mob/living/carbon/human/proc/get_species() else standing += image("icon"=U2.icon, "icon_state"="[U2.icon_state]_s", "layer"=-BODY_LAYER) - if(H.socks && H.get_num_legs() >= 2) + if(H.socks && H.get_num_legs() >= 2 && !(DIGITIGRADE in species_traits)) var/datum/sprite_accessory/socks/U3 = socks_list[H.socks] if(U3) standing += image("icon"=U3.icon, "icon_state"="[U3.icon_state]_s", "layer"=-BODY_LAYER) - if(standing.len) - H.overlays_standing[BODY_LAYER] = standing if(standing.len) H.overlays_standing[BODY_LAYER] = standing H.apply_overlay(BODY_LAYER) + handle_mutant_bodyparts(H) /datum/species/proc/handle_mutant_bodyparts(mob/living/carbon/human/H, forced_colour) var/list/bodyparts_to_add = mutant_bodyparts.Copy() @@ -330,61 +296,6 @@ mob/living/carbon/human/proc/get_species() var/obj/item/bodypart/head/HD = H.get_bodypart("head") - //At this point, the game will decide which bodyparts it will render on the sprite of the player; depending on clothing worn, DNA, and other factors. - //This helps eliminate clipping with certain clothing types, as well as providing a means to effectively hide your species identity from other players. - - if("tail_human" in mutant_bodyparts) - if(H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT)) - bodyparts_to_add -= "tail_human" - - if("waggingtail_human" in mutant_bodyparts) - if(H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT)) - bodyparts_to_add -= "waggingtail_human" - else if ("tail_human" in mutant_bodyparts) - bodyparts_to_add -= "waggingtail_human" - - if("ears" in mutant_bodyparts) - if(!H.dna.features["ears"] || H.dna.features["ears"] == "None" || H.head && (H.head.flags_inv & HIDEHAIR) || (H.wear_mask && (H.wear_mask.flags_inv & HIDEHAIR)) || !HD || HD.status == ORGAN_ROBOTIC) - bodyparts_to_add -= "ears" - //Race specific bodyparts: - //Xenos - if("xenodorsal" in mutant_bodyparts) - if(!H.dna.features["xenodorsal"] || H.dna.features["xenodorsal"] == "None" || (H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT))) - bodyparts_to_add -= "xenodorsal" - if("xenohead" in mutant_bodyparts)//This is an overlay for different castes using different head crests - if(!H.dna.features["xenohead"] || H.dna.features["xenohead"] == "None" || H.head && (H.head.flags_inv & HIDEHAIR) || (H.wear_mask && (H.wear_mask.flags_inv & HIDEHAIR)) || !HD || HD.status == ORGAN_ROBOTIC) - bodyparts_to_add -= "xenohead" - if("xenotail" in mutant_bodyparts) - if(!H.dna.features["xenotail"] || H.dna.features["xenotail"] == "None" || H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT)) - bodyparts_to_add -= "xenotail" - - //Canids/Felids - if("mam_tail" in mutant_bodyparts) - if(H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT)) - bodyparts_to_add -= "mam_tail" - - if("mam_waggingtail" in mutant_bodyparts) - if(H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT)) - bodyparts_to_add -= "mam_waggingtail" - else if ("mam_tail" in mutant_bodyparts) - bodyparts_to_add -= "mam_waggingtail" - - if("mam_ears" in mutant_bodyparts) - if(!H.dna.features["mam_ears"] || H.dna.features["mam_ears"] == "None" || H.head && (H.head.flags_inv & HIDEHAIR) || (H.wear_mask && (H.wear_mask.flags_inv & HIDEHAIR)) || !HD || HD.status == ORGAN_ROBOTIC) - bodyparts_to_add -= "mam_ears" - - //Angels - if("wings" in mutant_bodyparts)//Will likely define these as "angel_wings" later so we can have cosmetic wings for other species. - if(!H.dna.features["wings"] || H.dna.features["wings"] == "None" || (H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT))) - bodyparts_to_add -= "wings" - - if("wings_open" in mutant_bodyparts) - if(H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT)) - bodyparts_to_add -= "wings_open" - else if ("wings" in mutant_bodyparts) - bodyparts_to_add -= "wings_open" - - //Lizards if("tail_lizard" in mutant_bodyparts) if(H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT)) bodyparts_to_add -= "tail_lizard" @@ -395,6 +306,21 @@ mob/living/carbon/human/proc/get_species() else if ("tail_lizard" in mutant_bodyparts) bodyparts_to_add -= "waggingtail_lizard" + if("tail_human" in mutant_bodyparts) + if(H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT)) + bodyparts_to_add -= "tail_human" + + + if("waggingtail_human" in mutant_bodyparts) + if(H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT)) + bodyparts_to_add -= "waggingtail_human" + else if ("tail_human" in mutant_bodyparts) + bodyparts_to_add -= "waggingtail_human" + + if("spines" in mutant_bodyparts) + if(!H.dna.features["spines"] || H.dna.features["spines"] == "None" || H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT)) + bodyparts_to_add -= "spines" + if("waggingspines" in mutant_bodyparts) if(!H.dna.features["spines"] || H.dna.features["spines"] == "None" || H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT)) bodyparts_to_add -= "waggingspines" @@ -402,33 +328,54 @@ mob/living/carbon/human/proc/get_species() bodyparts_to_add -= "waggingspines" if("snout" in mutant_bodyparts) //Take a closer look at that snout! - if((H.wear_mask && (H.wear_mask.flags_inv & HIDEFACE)) || (H.head && (H.head.flags_inv & HIDEFACE)) || !HD || HD.status == ORGAN_ROBOTIC) + if((H.wear_mask && (H.wear_mask.flags_inv & HIDEFACE)) || (H.head && (H.head.flags_inv & HIDEFACE)) || !HD || HD.status == BODYPART_ROBOTIC) bodyparts_to_add -= "snout" if("frills" in mutant_bodyparts) - if(!H.dna.features["frills"] || H.dna.features["frills"] == "None" || H.head && (H.head.flags_inv & HIDEEARS) || !HD || HD.status == ORGAN_ROBOTIC) + if(!H.dna.features["frills"] || H.dna.features["frills"] == "None" || H.head && (H.head.flags_inv & HIDEEARS) || !HD || HD.status == BODYPART_ROBOTIC) bodyparts_to_add -= "frills" if("horns" in mutant_bodyparts) - if(!H.dna.features["horns"] || H.dna.features["horns"] == "None" || H.head && (H.head.flags_inv & HIDEHAIR) || (H.wear_mask && (H.wear_mask.flags_inv & HIDEHAIR)) || !HD || HD.status == ORGAN_ROBOTIC) + if(!H.dna.features["horns"] || H.dna.features["horns"] == "None" || H.head && (H.head.flags_inv & HIDEHAIR) || (H.wear_mask && (H.wear_mask.flags_inv & HIDEHAIR)) || !HD || HD.status == BODYPART_ROBOTIC) bodyparts_to_add -= "horns" - if("spines" in mutant_bodyparts) - if(!H.dna.features["spines"] || H.dna.features["spines"] == "None" || H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT)) - bodyparts_to_add -= "spines" - //Slimecoons - if("slimecoontail" in mutant_bodyparts) - if(H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT)) - bodyparts_to_add -= "slimecoontail" + if("ears" in mutant_bodyparts) + if(!H.dna.features["ears"] || H.dna.features["ears"] == "None" || H.head && (H.head.flags_inv & HIDEHAIR) || (H.wear_mask && (H.wear_mask.flags_inv & HIDEHAIR)) || !HD || HD.status == BODYPART_ROBOTIC) + bodyparts_to_add -= "ears" - if("slimecoonears" in mutant_bodyparts) - if(!H.dna.features["mam_ears"] || H.dna.features["mam_ears"] == "None" || H.head && (H.head.flags_inv & HIDEHAIR) || (H.wear_mask && (H.wear_mask.flags_inv & HIDEHAIR)) || !HD || HD.status == ORGAN_ROBOTIC) - bodyparts_to_add -= "slimecoonears" + if("wings" in mutant_bodyparts) + if(!H.dna.features["wings"] || H.dna.features["wings"] == "None" || (H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT) && (!H.wear_suit.species_exception || !is_type_in_list(src, H.wear_suit.species_exception)))) + bodyparts_to_add -= "wings" - if("slimecoonsnout" in mutant_bodyparts) - if((H.wear_mask && (H.wear_mask.flags_inv & HIDEFACE)) || (H.head && (H.head.flags_inv & HIDEFACE)) || !HD || HD.status == ORGAN_ROBOTIC) - bodyparts_to_add -= "slimecoonsnout" + if("wings_open" in mutant_bodyparts) + if(H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT) && (!H.wear_suit.species_exception || !is_type_in_list(src, H.wear_suit.species_exception))) + bodyparts_to_add -= "wings_open" + else if ("wings" in mutant_bodyparts) + bodyparts_to_add -= "wings_open" + //Digitigrade legs are stuck in the phantom zone between true limbs and mutant bodyparts. Mainly it just needs more agressive updating than most limbs. + var/update_needed = FALSE + var/not_digitigrade = TRUE + for(var/X in H.bodyparts) + var/obj/item/bodypart/O = X + if(!O.use_digitigrade) + continue + not_digitigrade = FALSE + if(!(DIGITIGRADE in species_traits)) //Someone cut off a digitigrade leg and tacked it on + species_traits += DIGITIGRADE + var/should_be_squished = FALSE + if(H.wear_suit && ((H.wear_suit.flags_inv & HIDEJUMPSUIT) || (H.wear_suit.body_parts_covered & LEGS)) || (H.w_uniform && (H.w_uniform.body_parts_covered & LEGS))) + should_be_squished = TRUE + if(O.use_digitigrade == FULL_DIGITIGRADE && should_be_squished) + O.use_digitigrade = SQUISHED_DIGITIGRADE + update_needed = TRUE + else if(O.use_digitigrade == SQUISHED_DIGITIGRADE && !should_be_squished) + O.use_digitigrade = FULL_DIGITIGRADE + update_needed = TRUE + if(update_needed) + H.update_body_parts() + if(not_digitigrade && (DIGITIGRADE in species_traits)) //Curse is lifted + species_traits -= DIGITIGRADE if(!bodyparts_to_add) return @@ -438,85 +385,56 @@ mob/living/carbon/human/proc/get_species() var/image/I for(var/layer in relevent_layers) + var/layertext = mutant_bodyparts_layertext(layer) + for(var/bodypart in bodyparts_to_add) var/datum/sprite_accessory/S switch(bodypart) - if("tail_human") - S = tails_list_human[H.dna.features["tail_human"]] - if("waggingtail_human") - S.= animated_tails_list_human[H.dna.features["tail_human"]] - if("ears") - S = ears_list[H.dna.features["ears"]] - if("body_markings") - S = body_markings_list[H.dna.features["body_markings"]] - - //Mammal Bodyparts (Canid/Felid, others maybe in the future) - if("mam_tail") - S = mam_tails_list[H.dna.features["mam_tail"]] - if("mam_waggingtail") - S.= mam_tails_animated_list[H.dna.features["mam_tail"]] - if("mam_body_markings") - S = mam_body_markings_list[H.dna.features["mam_body_markings"]] - if("mam_ears") - S = mam_ears_list[H.dna.features["mam_ears"]] - - //Lizard Bodyparts if("tail_lizard") S = tails_list_lizard[H.dna.features["tail_lizard"]] if("waggingtail_lizard") S.= animated_tails_list_lizard[H.dna.features["tail_lizard"]] + if("tail_human") + S = tails_list_human[H.dna.features["tail_human"]] + if("waggingtail_human") + S.= animated_tails_list_human[H.dna.features["tail_human"]] if("spines") S = spines_list[H.dna.features["spines"]] if("waggingspines") S.= animated_spines_list[H.dna.features["spines"]] - if("snout")//This is shared between lizard and mammals currently.(9/8/16) + if("snout") S = snouts_list[H.dna.features["snout"]] if("frills") S = frills_list[H.dna.features["frills"]] if("horns") S = horns_list[H.dna.features["horns"]] - - //Xeno Bodyparts - if("xenodorsal") - S = xeno_dorsal_list[H.dna.features["xenodorsal"]] - if("xenohead") - S = xeno_head_list[H.dna.features["xenohead"]] - if("xenotail") - S = xeno_tail_list[H.dna.features["xenotail"]] - - //Angel Bodyparts + if("ears") + S = ears_list[H.dna.features["ears"]] + if("body_markings") + S = body_markings_list[H.dna.features["body_markings"]] if("wings") S = wings_list[H.dna.features["wings"]] if("wingsopen") S = wings_open_list[H.dna.features["wings"]] - - //Slimecoon Bodyparts - if("slimecoontail") - S = /datum/sprite_accessory/slimecoon_tail - if("slimecoonears") - S = /datum/sprite_accessory/slimecoon_ears - if("slimecoonsnout") - S = /datum/sprite_accessory/slimecoon_snout + if("legs") + S = legs_list[H.dna.features["legs"]] if(!S || S.icon_state == "none") continue //A little rename so we don't have to use tail_lizard or tail_human when naming the sprites. - if(bodypart == "tail_lizard" || bodypart == "tail_human" || bodypart == "mam_tail" || bodypart == "slimecoontail" || bodypart == "xenotail") + if(bodypart == "tail_lizard" || bodypart == "tail_human") bodypart = "tail" - else if(bodypart == "waggingtail_lizard" || bodypart == "waggingtail_human" || bodypart == "mam_waggingtail") + else if(bodypart == "waggingtail_lizard" || bodypart == "waggingtail_human") bodypart = "waggingtail" - if(bodypart == "mam_ears") - bodypart = "ears" - if(bodypart == "xenohead") - bodypart = "xhead" + var/icon_string if(S.gender_specific) - icon_string = "[g]_[bodypart]_[S.icon_state]_[layer]" + icon_string = "[g]_[bodypart]_[S.icon_state]_[layertext]" else - icon_string = "m_[bodypart]_[S.icon_state]_[layer]" + icon_string = "m_[bodypart]_[S.icon_state]_[layertext]" I = image("icon" = S.icon, "icon_state" = icon_string, "layer" =- layer) @@ -531,16 +449,6 @@ mob/living/carbon/human/proc/get_species() I.color = "#[fixed_mut_color]" else I.color = "#[H.dna.features["mcolor"]]" - if(MUTCOLORS2) - if(fixed_mut_color2) - I.color = "#[fixed_mut_color2]" - else - I.color = "#[H.dna.features["mcolor2"]]" - if(MUTCOLORS3) - if(fixed_mut_color3) - I.color = "#[fixed_mut_color3]" - else - I.color = "#[H.dna.features["mcolor3"]]" if(HAIR) if(hair_color == "mutcolor") I.color = "#[H.dna.features["mcolor"]]" @@ -552,14 +460,13 @@ mob/living/carbon/human/proc/get_species() I.color = "#[H.eye_color]" else I.color = forced_colour - standing += I - if(S.hasinner) //apply the inner ear sprite + if(S.hasinner) if(S.gender_specific) - icon_string = "[g]_[bodypart]inner_[S.icon_state]_[layer]" + icon_string = "[g]_[bodypart]inner_[S.icon_state]_[layertext]" else - icon_string = "m_[bodypart]inner_[S.icon_state]_[layer]" + icon_string = "m_[bodypart]inner_[S.icon_state]_[layertext]" I = image("icon" = S.icon, "icon_state" = icon_string, "layer" =- layer) @@ -568,44 +475,6 @@ mob/living/carbon/human/proc/get_species() standing += I - if(S.extra) //apply the extra overlay, if there is one - if(S.gender_specific) - icon_string = "[g]_[bodypart]_extra_[S.icon_state]_[layer]" - else - icon_string = "m_[bodypart]_extra_[S.icon_state]_[layer]" - - I = image("icon" = S.icon, "icon_state" = icon_string, "layer" =- layer) - - if(S.center) - I = center_image(I,S.dimension_x,S.dimension_y) - - switch(S.extra_color_src) //change the color of the extra overlay - if(MUTCOLORS) - if(fixed_mut_color) - I.color = "#[fixed_mut_color]" - else - I.color = "#[H.dna.features["mcolor"]]" - if(MUTCOLORS2) - if(fixed_mut_color2) - I.color = "#[fixed_mut_color2]" - else - I.color = "#[H.dna.features["mcolor2"]]" - if(MUTCOLORS3) - if(fixed_mut_color3) - I.color = "#[fixed_mut_color3]" - else - I.color = "#[H.dna.features["mcolor3"]]" - if(HAIR) - if(hair_color == "mutcolor") - I.color = "#[H.dna.features["mcolor"]]" - else - I.color = "#[H.hair_color]" - if(FACEHAIR) - I.color = "#[H.facial_hair_color]" - if(EYECOLOR) - I.color = "#[H.eye_color]" - standing += I - H.overlays_standing[layer] = standing.Copy() standing = list() @@ -613,13 +482,26 @@ mob/living/carbon/human/proc/get_species() H.apply_overlay(BODY_ADJ_LAYER) H.apply_overlay(BODY_FRONT_LAYER) + +//This exists so sprite accessories can still be per-layer without having to include that layer's +//number in their sprite name, which causes issues when those numbers change. +/datum/species/proc/mutant_bodyparts_layertext(layer) + switch(layer) + if(BODY_BEHIND_LAYER) + return "BEHIND" + if(BODY_ADJ_LAYER) + return "ADJ" + if(BODY_FRONT_LAYER) + return "FRONT" + + /datum/species/proc/spec_life(mob/living/carbon/human/H) - if(NOBREATH in specflags) + if(NOBREATH in species_traits) H.setOxyLoss(0) H.losebreath = 0 - var/takes_crit_damage = (!(NOCRITDAMAGE in specflags)) - if((H.health < config.health_threshold_crit) && takes_crit_damage) + var/takes_crit_damage = (!(NOCRITDAMAGE in species_traits)) + if((H.health < HEALTH_THRESHOLD_CRIT) && takes_crit_damage) H.adjustBruteLoss(1) /datum/species/proc/spec_death(gibbed, mob/living/carbon/human/H) @@ -634,24 +516,14 @@ mob/living/carbon/human/proc/get_species() if(!I.species_exception || !is_type_in_list(src, I.species_exception)) return 0 - var/R = H.has_right_hand() - var/L = H.has_left_hand() var/num_arms = H.get_num_arms() var/num_legs = H.get_num_legs() switch(slot) - if(slot_l_hand) - if(H.l_hand) - return 0 - if(!L) - return 0 - return 1 - if(slot_r_hand) - if(H.r_hand) - return 0 - if(!R) - return 0 - return 1 + if(slot_hands) + if(H.get_empty_held_indexes()) + return TRUE + return FALSE if(slot_wear_mask) if(H.wear_mask) return 0 @@ -660,6 +532,12 @@ mob/living/carbon/human/proc/get_species() if(!H.get_bodypart("head")) return 0 return 1 + if(slot_neck) + if(H.wear_neck) + return 0 + if( !(I.slot_flags & SLOT_NECK) ) + return 0 + return 1 if(slot_back) if(H.back) return 0 @@ -687,6 +565,10 @@ mob/living/carbon/human/proc/get_species() return 0 if(num_legs < 2) return 0 + if(DIGITIGRADE in species_traits) + if(!disable_warning) + H << "The footwear around here isn't compatible with your feet!" + return 0 return 1 if(slot_belt) if(H.belt) @@ -749,7 +631,7 @@ mob/living/carbon/human/proc/get_species() return 0 if(I.slot_flags & SLOT_DENYPOCKET) return - if( I.w_class <= 2 || (I.slot_flags & SLOT_POCKET) ) + if( I.w_class <= WEIGHT_CLASS_SMALL || (I.slot_flags & SLOT_POCKET) ) return 1 if(slot_r_store) if(I.flags & NODROP) @@ -762,7 +644,7 @@ mob/living/carbon/human/proc/get_species() return 0 if(I.slot_flags & SLOT_DENYPOCKET) return 0 - if( I.w_class <= 2 || (I.slot_flags & SLOT_POCKET) ) + if( I.w_class <= WEIGHT_CLASS_SMALL || (I.slot_flags & SLOT_POCKET) ) return 1 return 0 if(slot_s_store) @@ -778,7 +660,7 @@ mob/living/carbon/human/proc/get_species() if(!disable_warning) H << "You somehow have a suit with no defined allowed items for suit storage, stop that." return 0 - if(I.w_class > 4) + if(I.w_class > WEIGHT_CLASS_BULKY) if(!disable_warning) H << "The [I.name] is too big to attach." //should be src? return 0 @@ -802,9 +684,9 @@ mob/living/carbon/human/proc/get_species() return 0 return 1 if(slot_in_backpack) - if (H.back && istype(H.back, /obj/item/weapon/storage/backpack)) - var/obj/item/weapon/storage/backpack/B = H.back - if(B.contents.len < B.storage_slots && I.w_class <= B.max_w_class) + if(H.back && istype(H.back, /obj/item/weapon/storage)) + var/obj/item/weapon/storage/B = H.back + if(B.can_be_inserted(I, 1, H)) return 1 return 0 return 0 //Unsupported slot @@ -813,7 +695,7 @@ mob/living/carbon/human/proc/get_species() return /datum/species/proc/after_equip_job(datum/job/J, mob/living/carbon/human/H) - return + H.update_mutant_bodyparts() /datum/species/proc/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H) if(chem.id == exotic_blood) @@ -854,7 +736,7 @@ mob/living/carbon/human/proc/get_species() // nutrition decrease and satiety if (H.nutrition > 0 && H.stat != DEAD && \ - H.dna && H.dna.species && (!(NOHUNGER in H.dna.species.specflags))) + H.dna && H.dna.species && (!(NOHUNGER in H.dna.species.species_traits))) // THEY HUNGER var/hunger_rate = HUNGER_FACTOR if(H.satiety > 0) @@ -878,7 +760,7 @@ mob/living/carbon/human/proc/get_species() if(H.nutrition > NUTRITION_LEVEL_FAT) H.metabolism_efficiency = 1 else if(H.nutrition > NUTRITION_LEVEL_FED && H.satiety > 80) - if(H.metabolism_efficiency != 1.25) + if(H.metabolism_efficiency != 1.25 && (H.dna && H.dna.species && !(NOHUNGER in H.dna.species.species_traits))) H << "You feel vigorous." H.metabolism_efficiency = 1.25 else if(H.nutrition < NUTRITION_LEVEL_STARVING + 50) @@ -941,235 +823,292 @@ mob/living/carbon/human/proc/get_species() /datum/species/proc/handle_mutations_and_radiation(mob/living/carbon/human/H) - if(!(RADIMMUNE in specflags)) + if(!(RADIMMUNE in species_traits)) if(H.radiation) if (H.radiation > 100) + if(!H.weakened) + H.emote("collapse") H.Weaken(10) H << "You feel weak." - H.emote("collapse") - switch(H.radiation) - if(50 to 75) if(prob(5)) + if(!H.weakened) + H.emote("collapse") H.Weaken(3) H << "You feel weak." - H.emote("collapse") + if(prob(15)) - if(!( H.hair_style == "Shaved") || !(H.hair_style == "Bald") || (HAIR in specflags)) - H << "Your hair starts to fall out in clumps..." - spawn(50) - H.facial_hair_style = "Shaved" - H.hair_style = "Bald" - H.update_hair() + if(!( H.hair_style == "Shaved") || !(H.hair_style == "Bald") || (HAIR in species_traits)) + H << "Your hair starts to \ + fall out in clumps..." + addtimer(src, "go_bald", 50, TIMER_UNIQUE, H) if(75 to 100) if(prob(1)) H << "You mutate!" - randmutb(H) + H.randmutb() H.emote("gasp") H.domutcheck() return 0 return 1 +/datum/species/proc/go_bald(mob/living/carbon/human/H) + H.facial_hair_style = "Shaved" + H.hair_style = "Bald" + H.update_hair() + //////////////// // MOVE SPEED // //////////////// /datum/species/proc/movement_delay(mob/living/carbon/human/H) - . = 0 + . = 0 //We start at 0. + var/flight = 0 //Check for flight and flying items + var/flightpack = 0 + var/ignoreslow = 0 + var/gravity = 0 + var/obj/item/device/flightpack/F = H.get_flightpack() + if(istype(F) && F.flight) + flightpack = 1 + if(H.movement_type & FLYING) + flight = 1 - if(H.status_flags & GOTTAGOFAST) - . -= 1 - if(H.status_flags & GOTTAGOREALLYFAST) - . -= 2 + if(!flightpack) //Check for chemicals and innate speedups and slowdowns if we're moving using our body and not a flying suit + if(H.status_flags & GOTTAGOFAST) + . -= 1 + if(H.status_flags & GOTTAGOREALLYFAST) + . -= 2 + . += speedmod - if(!(H.status_flags & IGNORESLOWDOWN)) - if(!has_gravity(H)) - if(FLYING in specflags) - . += speedmod - return - // If there's no gravity we have the sanic speed of jetpack. - var/obj/item/weapon/tank/jetpack/J = H.back - var/obj/item/clothing/suit/space/hardsuit/C = H.wear_suit - if(!istype(J) && istype(C)) - J = C.jetpack + if(H.status_flags & IGNORESLOWDOWN) + ignoreslow = 1 - if(istype(J) && J.allow_thrust(0.01, H)) - . -= 2 + if(H.has_gravity()) + gravity = 1 + + if(!gravity) + var/obj/item/weapon/tank/jetpack/J = H.back + var/obj/item/clothing/suit/space/hardsuit/C = H.wear_suit + var/obj/item/organ/cyberimp/chest/thrusters/T = H.getorganslot("thrusters") + if(!istype(J) && istype(C)) + J = C.jetpack + if(istype(J) && J.allow_thrust(0.01, H)) //Prevents stacking + . -= 2 + else if(istype(T) && T.allow_thrust(0.01, H)) + . -= 2 + else if(flightpack && F.allow_thrust(0.01, src)) + . -= 1 + + if(flightpack && F.boost) + . -= F.boost_speed + else if(flightpack && F.brake) + . += 2 + + if(!ignoreslow && !flightpack && gravity) + if(H.wear_suit) + . += H.wear_suit.slowdown + if(H.shoes) + . += H.shoes.slowdown + if(H.back) + . += H.back.slowdown + for(var/obj/item/I in H.held_items) + if(I.flags & HANDSLOW) + . += I.slowdown + var/health_deficiency = (100 - H.health + H.staminaloss) + var/hungry = (500 - H.nutrition) / 5 // So overeat would be 100 and default level would be 80 + if(health_deficiency >= 40) + if(flight) + . += (health_deficiency / 75) else - var/obj/item/organ/cyberimp/chest/thrusters/T = H.getorganslot("thrusters") - if(istype(T) && T.allow_thrust(0.01, H)) - . -= 2 - - else - var/health_deficiency = (100 - H.health + H.staminaloss) - if(health_deficiency >= 40) . += (health_deficiency / 25) - - var/hungry = (500 - H.nutrition) / 5 // So overeat would be 100 and default level would be 80 - if(hungry >= 70) - . += hungry / 50 - - if(H.wear_suit) - . += H.wear_suit.slowdown - if(H.shoes) - . += H.shoes.slowdown - if(H.back) - . += H.back.slowdown - if(H.l_hand && (H.l_hand.flags & HANDSLOW)) - . += H.l_hand.slowdown - if(H.r_hand && (H.r_hand.flags & HANDSLOW)) - . += H.r_hand.slowdown - - if((H.disabilities & FAT)) - . += 1.5 - if(H.bodytemperature < BODYTEMP_COLD_DAMAGE_LIMIT) - . += (BODYTEMP_COLD_DAMAGE_LIMIT - H.bodytemperature) / COLD_SLOWDOWN_FACTOR - - if(!(FLYING in specflags)) - var/leg_amount = H.get_num_legs() - . += 6 - 3*leg_amount //the fewer the legs, the slower the mob - if(!leg_amount) - . += 6 - 3*H.get_num_arms() //crawling is harder with fewer arms - - - . += speedmod + if((hungry >= 70) && !flight) //Being hungry won't stop you from using flightpack controls/flapping your wings although it probably will in the wing case but who cares. + . += hungry / 50 + if(H.disabilities & FAT) + . += (1.5 - flight) + if(H.bodytemperature < BODYTEMP_COLD_DAMAGE_LIMIT) + . += (BODYTEMP_COLD_DAMAGE_LIMIT - H.bodytemperature) / COLD_SLOWDOWN_FACTOR + return . ////////////////// // ATTACK PROCS // ////////////////// -/datum/species/proc/spec_attack_hand(mob/living/carbon/human/M, mob/living/carbon/human/H) +////////////////// +// ATTACK PROCS // +////////////////// +/datum/species/proc/help(mob/living/carbon/human/user, mob/living/carbon/human/target, datum/martial_art/attacker_style) + if(target.health >= 0 && !(target.status_flags & FAKEDEATH)) + target.help_shake_act(user) + if(target != user) + add_logs(user, target, "shaked") + return 1 + else + var/we_breathe = (!(NOBREATH in user.dna.species.species_traits)) + var/we_lung = user.getorganslot("lungs") + + if(we_breathe && we_lung) + user.do_cpr(target) + else if(we_breathe && !we_lung) + user << "You have no lungs to breathe with, so you cannot peform CPR." + else + user << "You do not breathe, so you cannot perform CPR." + +/datum/species/proc/grab(mob/living/carbon/human/user, mob/living/carbon/human/target, datum/martial_art/attacker_style) + if(target.check_block()) + target.visible_message("[target] blocks [user]'s grab attempt!") + return 0 + if(attacker_style && attacker_style.grab_act(user,target)) + return 1 + else + target.grabbedby(user) + return 1 + + + + + +/datum/species/proc/harm(mob/living/carbon/human/user, mob/living/carbon/human/target, datum/martial_art/attacker_style) + if(target.check_block()) + target.visible_message("[target] blocks [user]'s attack!") + return 0 + if(attacker_style && attacker_style.harm_act(user,target)) + return 1 + else + + var/atk_verb = user.dna.species.attack_verb + if(target.lying) + atk_verb = "kick" + + switch(atk_verb) + if("kick") + user.do_attack_animation(target, ATTACK_EFFECT_KICK) + if("slash") + user.do_attack_animation(target, ATTACK_EFFECT_CLAW) + if("smash") + user.do_attack_animation(target, ATTACK_EFFECT_SMASH) + else + user.do_attack_animation(target, ATTACK_EFFECT_PUNCH) + + var/damage = rand(user.dna.species.punchdamagelow, user.dna.species.punchdamagehigh) + + var/obj/item/bodypart/affecting = target.get_bodypart(ran_zone(user.zone_selected)) + + if(!damage || !affecting) + playsound(target.loc, user.dna.species.miss_sound, 25, 1, -1) + target.visible_message("[user] has attempted to [atk_verb] [target]!",\ + "[user] has attempted to [atk_verb] [target]!", null, COMBAT_MESSAGE_RANGE) + return 0 + + + var/armor_block = target.run_armor_check(affecting, "melee") + + playsound(target.loc, user.dna.species.attack_sound, 25, 1, -1) + + target.visible_message("[user] has [atk_verb]ed [target]!", \ + "[user] has [atk_verb]ed [target]!", null, COMBAT_MESSAGE_RANGE) + + if(user.limb_destroyer) + target.dismembering_strike(user, affecting.body_zone) + target.apply_damage(damage, BRUTE, affecting, armor_block) + add_logs(user, target, "punched") + if((target.stat != DEAD) && damage >= user.dna.species.punchstunthreshold) + target.visible_message("[user] has weakened [target]!", \ + "[user] has weakened [target]!") + target.apply_effect(4, WEAKEN, armor_block) + target.forcesay(hit_appends) + else if(target.lying) + target.forcesay(hit_appends) + + + +/datum/species/proc/disarm(mob/living/carbon/human/user, mob/living/carbon/human/target, datum/martial_art/attacker_style) + if(target.check_block()) + target.visible_message("[target] blocks [user]'s disarm attempt!") + return 0 + if(attacker_style && attacker_style.disarm_act(user,target)) + return 1 + else + user.do_attack_animation(target, ATTACK_EFFECT_DISARM) + add_logs(user, target, "disarmed") + + if(target.w_uniform) + target.w_uniform.add_fingerprint(user) + var/obj/item/bodypart/affecting = target.get_bodypart(ran_zone(user.zone_selected)) + var/randn = rand(1, 100) + if(randn <= 25) + playsound(target, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) + target.visible_message("[user] has pushed [target]!", + "[user] has pushed [target]!", null, COMBAT_MESSAGE_RANGE) + target.apply_effect(2, WEAKEN, target.run_armor_check(affecting, "melee", "Your armor prevents your fall!", "Your armor softens your fall!")) + target.forcesay(hit_appends) + return + + var/talked = 0 // BubbleWrap + + if(randn <= 60) + //BubbleWrap: Disarming breaks a pull + if(target.pulling) + target << "[user] has broken [target]'s grip on [target.pulling]!" + talked = 1 + target.stop_pulling() + //End BubbleWrap + + if(!talked) //BubbleWrap + if(target.drop_item()) + target.visible_message("[user] has disarmed [target]!", \ + "[user] has disarmed [target]!", null, COMBAT_MESSAGE_RANGE) + playsound(target, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) + return + + + playsound(target, 'sound/weapons/punchmiss.ogg', 25, 1, -1) + target.visible_message("[user] attempted to disarm [target]!", \ + "[user] attemped to disarm [target]!", null, COMBAT_MESSAGE_RANGE) + + + +/datum/species/proc/spec_hitby(atom/movable/AM, mob/living/carbon/human/H) + return + +/datum/species/proc/spec_attack_hand(mob/living/carbon/human/M, mob/living/carbon/human/H, datum/martial_art/attacker_style = M.martial_art) + if(!istype(M)) + return CHECK_DNA_AND_SPECIES(M) CHECK_DNA_AND_SPECIES(H) if(!istype(M)) //sanity check for drones. return - if((M != H) && M.a_intent != "help" && H.check_shields(0, M.name, attack_type = UNARMED_ATTACK)) + if((M != H) && M.a_intent != INTENT_HELP && H.check_shields(0, M.name, attack_type = UNARMED_ATTACK)) add_logs(M, H, "attempted to touch") H.visible_message("[M] attempted to touch [H]!") return 0 - - var/datum/martial_art/attacker_style = M.martial_art - switch(M.a_intent) if("help") - if(H.health >= 0 && !(H.status_flags & FAKEDEATH)) - H.help_shake_act(M) - if(H != M) - add_logs(M, H, "shaked") - return 1 - else - var/we_breathe = (!(NOBREATH in M.dna.species.specflags)) - var/we_lung = M.getorganslot("lungs") - - if(we_breathe && we_lung) - M.do_cpr(H) - else if(we_breathe && !we_lung) - M << "You have no lungs to breathe with, so you cannot peform CPR." - else - M << "You do not breathe, so you cannot perform CPR." + help(M, H, attacker_style) if("grab") - if(attacker_style && attacker_style.grab_act(M,H)) - return 1 - else - H.grabbedby(M) - return 1 + grab(M, H, attacker_style) if("harm") - if(attacker_style && attacker_style.harm_act(M,H)) - return 1 - else - M.do_attack_animation(H) + harm(M, H, attacker_style) - var/atk_verb = M.dna.species.attack_verb - if(H.lying) - atk_verb = "kick" - - var/damage = rand(M.dna.species.punchdamagelow, M.dna.species.punchdamagehigh) - - var/obj/item/bodypart/affecting = H.get_bodypart(ran_zone(M.zone_selected)) - - if(!damage || !affecting) - playsound(H.loc, M.dna.species.miss_sound, 25, 1, -1) - H.visible_message("[M] has attempted to [atk_verb] [H]!") - return 0 - - - var/armor_block = H.run_armor_check(affecting, "melee") - - playsound(H.loc, M.dna.species.attack_sound, 25, 1, -1) - - H.visible_message("[M] has [atk_verb]ed [H]!", \ - "[M] has [atk_verb]ed [H]!") - - H.apply_damage(damage, BRUTE, affecting, armor_block) - add_logs(M, H, "punched") - if((H.stat != DEAD) && damage >= M.dna.species.punchstunthreshold) - H.visible_message("[M] has weakened [H]!", \ - "[M] has weakened [H]!") - H.apply_effect(4, WEAKEN, armor_block) - H.forcesay(hit_appends) - else if(H.lying) - H.forcesay(hit_appends) if("disarm") - if(attacker_style && attacker_style.disarm_act(M,H)) - return 1 - else - M.do_attack_animation(H) - add_logs(M, H, "disarmed") + disarm(M, H, attacker_style) - if(H.w_uniform) - H.w_uniform.add_fingerprint(M) - var/obj/item/bodypart/affecting = H.get_bodypart(ran_zone(M.zone_selected)) - var/randn = rand(1, 100) - if(randn <= 25) - playsound(H, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) - H.visible_message("[M] has pushed [H]!", - "[M] has pushed [H]!") - H.apply_effect(2, WEAKEN, H.run_armor_check(affecting, "melee", "Your armor prevents your fall!", "Your armor softens your fall!")) - H.forcesay(hit_appends) - return - - var/talked = 0 // BubbleWrap - - if(randn <= 60) - //BubbleWrap: Disarming breaks a pull - if(H.pulling) - H.visible_message("[M] has broken [H]'s grip on [H.pulling]!") - talked = 1 - H.stop_pulling() - //End BubbleWrap - - if(!talked) //BubbleWrap - if(H.drop_item()) - H.visible_message("[M] has disarmed [H]!", \ - "[M] has disarmed [H]!") - playsound(H, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) - return - - - playsound(H, 'sound/weapons/punchmiss.ogg', 25, 1, -1) - H.visible_message("[M] attempted to disarm [H]!", \ - "[M] attemped to disarm [H]!") - return - -/datum/species/proc/spec_attacked_by(obj/item/I, mob/living/user, obj/item/bodypart/affecting, intent, target_area, mob/living/carbon/human/H) +/datum/species/proc/spec_attacked_by(obj/item/I, mob/living/user, obj/item/bodypart/affecting, intent, mob/living/carbon/human/H) // Allows you to put in item-specific reactions based on species if(user != H) - user.do_attack_animation(H) if(H.check_shields(I.force, "the [I.name]", I, MELEE_ATTACK, I.armour_penetration)) return 0 + if(H.check_block()) + H.visible_message("[H] blocks [I]!") + return 0 var/hit_area if(!affecting) //Something went wrong. Maybe the limb is missing? - H.visible_message("[user] has attempted to attack [H] with [I]!", \ - "[user] has attempted to attack [H] with [I]!") - playsound(H, 'sound/weapons/punchmiss.ogg', 25, 1, -1) - return 0 + affecting = H.bodyparts[1] hit_area = affecting.name var/def_zone = affecting.body_zone @@ -1180,6 +1119,7 @@ mob/living/carbon/human/proc/get_species() var/weakness = H.check_weakness(I, user) apply_damage(I.force * weakness, I.damtype, def_zone, armor_block, H) + H.damage_clothes(I.force, I.damtype, "melee", affecting.body_zone) H.send_item_attack_message(I, user, hit_area) @@ -1188,14 +1128,14 @@ mob/living/carbon/human/proc/get_species() //dismemberment var/probability = I.get_dismemberment_chance(affecting) - if(prob(probability) || ((EASYDISMEMBER in specflags) && prob(2*probability))) + if(prob(probability) || ((EASYDISMEMBER in species_traits) && prob(2*probability))) if(affecting.dismember(I.damtype)) I.add_mob_blood(H) playsound(get_turf(H), I.get_dismember_sound(), 80, 1) var/bloody = 0 if(((I.damtype == BRUTE) && I.force && prob(25 + (I.force * 2)))) - if(affecting.status == ORGAN_ORGANIC) + if(affecting.status == BODYPART_ORGANIC) I.add_mob_blood(H) //Make the weapon bloody, not the person. if(prob(I.force * 2)) //blood spatter! bloody = 1 @@ -1206,13 +1146,15 @@ mob/living/carbon/human/proc/get_species() user.add_mob_blood(H) switch(hit_area) - if("head") //Harder to score a stun but if you do it lasts a bit longer + if("head") if(H.stat == CONSCIOUS && armor_block < 50) if(prob(I.force)) - H.visible_message("[H] has been knocked unconscious!", \ - "[H] has been knocked unconscious!") - H.apply_effect(20, PARALYZE, armor_block) - if(prob(I.force + ((100 - H.health)/2)) && H != user && I.damtype == BRUTE) + 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(I.force + ((100 - H.health)/2)) && H != user) ticker.mode.remove_revolutionary(H.mind) if(bloody) //Apply blood @@ -1226,11 +1168,12 @@ mob/living/carbon/human/proc/get_species() H.glasses.add_mob_blood(H) H.update_inv_glasses() - if("chest") //Easier to score a stun but lasts less time - if(H.stat == CONSCIOUS && I.force && prob(I.force + 10)) - H.visible_message("[H] has been knocked down!", \ + if("chest") + if(H.stat == CONSCIOUS && armor_block < 50) + if(prob(I.force)) + H.visible_message("[H] has been knocked down!", \ "[H] has been knocked down!") - H.apply_effect(5, WEAKEN, armor_block) + H.apply_effect(3, WEAKEN, armor_block) if(bloody) if(H.wear_suit) @@ -1245,261 +1188,66 @@ mob/living/carbon/human/proc/get_species() return TRUE /datum/species/proc/apply_damage(damage, damagetype = BRUTE, def_zone = null, blocked, mob/living/carbon/human/H) - blocked = (100-(blocked+armor))/100 - if(!damage || blocked <= 0) + var/hit_percent = (100-(blocked+armor))/100 + if(!damage || hit_percent <= 0) return 0 - var/obj/item/bodypart/organ = null + var/obj/item/bodypart/BP = null if(islimb(def_zone)) - organ = def_zone + BP = def_zone else if(!def_zone) def_zone = ran_zone(def_zone) - organ = H.get_bodypart(check_zone(def_zone)) - if(!organ) - return 0 - - damage = (damage * blocked) + BP = H.get_bodypart(check_zone(def_zone)) + if(!BP) + BP = H.bodyparts[1] switch(damagetype) if(BRUTE) H.damageoverlaytemp = 20 - if(organ.take_damage(damage*brutemod, 0)) - H.update_damage_overlays(0) + if(BP) + if(BP.receive_damage(damage * hit_percent * brutemod, 0)) + H.update_damage_overlays() + else//no bodypart, we deal damage with a more general method. + H.adjustBruteLoss(damage * hit_percent * brutemod) if(BURN) H.damageoverlaytemp = 20 - if(organ.take_damage(0, damage*burnmod)) - H.update_damage_overlays(0) + if(BP) + if(BP.receive_damage(0, damage * hit_percent * burnmod)) + H.update_damage_overlays() + else + H.adjustFireLoss(damage * hit_percent* burnmod) if(TOX) - H.adjustToxLoss(damage) + H.adjustToxLoss(damage * hit_percent) if(OXY) - H.adjustOxyLoss(damage) + H.adjustOxyLoss(damage * hit_percent) if(CLONE) - H.adjustCloneLoss(damage) + H.adjustCloneLoss(damage * hit_percent) if(STAMINA) - H.adjustStaminaLoss(damage) + H.adjustStaminaLoss(damage * hit_percent) return 1 -/datum/species/proc/on_hit(obj/item/projectile/proj_type, mob/living/carbon/human/H) +/datum/species/proc/on_hit(obj/item/projectile/P, mob/living/carbon/human/H) // called when hit by a projectile - switch(proj_type) + switch(P.type) if(/obj/item/projectile/energy/floramut) // overwritten by plants/pods H.show_message("The radiation beam dissipates harmlessly through your body.") if(/obj/item/projectile/energy/florayield) H.show_message("The radiation beam dissipates harmlessly through your body.") return +/datum/species/proc/bullet_act(obj/item/projectile/P, mob/living/carbon/human/H) + // called before a projectile hit + return 0 + ///////////// //BREATHING// ///////////// /datum/species/proc/breathe(mob/living/carbon/human/H) - if(NOBREATH in specflags) + if(NOBREATH in species_traits) return TRUE -/datum/species/proc/check_breath(datum/gas_mixture/breath, var/mob/living/carbon/human/H) - if((H.status_flags & GODMODE)) - return - - var/lungs = H.getorganslot("lungs") - - if(!breath || (breath.total_moles() == 0) || !lungs) - if(H.reagents.has_reagent("epinephrine") && lungs) - return - if(H.health >= config.health_threshold_crit) - H.adjustOxyLoss(HUMAN_MAX_OXYLOSS) - if(!lungs) - H.adjustOxyLoss(1) - else if(!(NOCRITDAMAGE in specflags)) - H.adjustOxyLoss(HUMAN_CRIT_MAX_OXYLOSS) - - H.failed_last_breath = 1 - if(safe_oxygen_min) - H.throw_alert("oxy", /obj/screen/alert/oxy) - else if(safe_toxins_min) - H.throw_alert("not_enough_tox", /obj/screen/alert/not_enough_tox) - else if(safe_co2_min) - H.throw_alert("not_enough_co2", /obj/screen/alert/not_enough_co2) - return 0 - - var/gas_breathed = 0 - - var/list/breath_gases = breath.gases - - breath.assert_gases("o2", "plasma", "co2", "n2o", "bz") - - //Partial pressures in our breath - var/O2_pp = breath.get_breath_partial_pressure(breath_gases["o2"][MOLES]) - var/Toxins_pp = breath.get_breath_partial_pressure(breath_gases["plasma"][MOLES]) - var/CO2_pp = breath.get_breath_partial_pressure(breath_gases["co2"][MOLES]) - - - //-- OXY --// - - //Too much oxygen! //Yes, some species may not like it. - if(safe_oxygen_max) - if(O2_pp > safe_oxygen_max && !(NOBREATH in specflags)) - var/ratio = (breath_gases["o2"][MOLES]/safe_oxygen_max) * 10 - H.adjustOxyLoss(Clamp(ratio,oxy_breath_dam_min,oxy_breath_dam_max)) - H.throw_alert("too_much_oxy", /obj/screen/alert/too_much_oxy) - else - H.clear_alert("too_much_oxy") - - //Too little oxygen! - if(safe_oxygen_min) - if(O2_pp < safe_oxygen_min) - gas_breathed = handle_too_little_breath(H,O2_pp,safe_oxygen_min,breath_gases["o2"][MOLES]) - H.throw_alert("oxy", /obj/screen/alert/oxy) - else - H.failed_last_breath = 0 - if(H.getOxyLoss()) - H.adjustOxyLoss(-5) - gas_breathed = breath_gases["o2"][MOLES] - H.clear_alert("oxy") - - //Exhale - breath_gases["o2"][MOLES] -= gas_breathed - breath_gases["co2"][MOLES] += gas_breathed - gas_breathed = 0 - - - //-- CO2 --// - - //CO2 does not affect failed_last_breath. So if there was enough oxygen in the air but too much co2, this will hurt you, but only once per 4 ticks, instead of once per tick. - if(safe_co2_max) - if(CO2_pp > safe_co2_max && !(NOBREATH in specflags)) - if(!H.co2overloadtime) // If it's the first breath with too much CO2 in it, lets start a counter, then have them pass out after 12s or so. - H.co2overloadtime = world.time - else if(world.time - H.co2overloadtime > 120) - H.Paralyse(3) - H.adjustOxyLoss(3) // Lets hurt em a little, let them know we mean business - if(world.time - H.co2overloadtime > 300) // They've been in here 30s now, lets start to kill them for their own good! - H.adjustOxyLoss(8) - H.throw_alert("too_much_co2", /obj/screen/alert/too_much_co2) - if(prob(20)) // Lets give them some chance to know somethings not right though I guess. - H.emote("cough") - - else - H.co2overloadtime = 0 - H.clear_alert("too_much_co2") - - //Too little CO2! - if(safe_co2_min) - if(CO2_pp < safe_co2_min) - gas_breathed = handle_too_little_breath(H,CO2_pp, safe_co2_min,breath_gases["co2"][MOLES]) - H.throw_alert("not_enough_co2", /obj/screen/alert/not_enough_co2) - else - H.failed_last_breath = 0 - H.adjustOxyLoss(-5) - gas_breathed = breath_gases["co2"][MOLES] - H.clear_alert("not_enough_co2") - - //Exhale - breath_gases["co2"][MOLES] -= gas_breathed - breath_gases["o2"][MOLES] += gas_breathed - gas_breathed = 0 - - - //-- TOX --// - - //Too much toxins! - if(safe_toxins_max) - if(Toxins_pp > safe_toxins_max && !(NOBREATH in specflags)) - var/ratio = (breath_gases["plasma"][MOLES]/safe_toxins_max) * 10 - if(H.reagents) - H.reagents.add_reagent("plasma", Clamp(ratio, tox_breath_dam_min, tox_breath_dam_max)) - H.throw_alert("tox_in_air", /obj/screen/alert/tox_in_air) - else - H.clear_alert("tox_in_air") - - - //Too little toxins! - if(safe_toxins_min) - if(Toxins_pp < safe_toxins_min && !(NOBREATH in specflags)) - gas_breathed = handle_too_little_breath(H,Toxins_pp, safe_toxins_min, breath_gases["plasma"][MOLES]) - H.throw_alert("not_enough_tox", /obj/screen/alert/not_enough_tox) - else - H.failed_last_breath = 0 - H.adjustOxyLoss(-5) - gas_breathed = breath_gases["plasma"][MOLES] - H.clear_alert("not_enough_tox") - - //Exhale - breath_gases["plasma"][MOLES] -= gas_breathed - breath_gases["co2"][MOLES] += gas_breathed - gas_breathed = 0 - - - //-- TRACES --// - - if(breath && !(NOBREATH in specflags)) // If there's some other shit in the air lets deal with it here. - - // N2O - - var/SA_pp = breath.get_breath_partial_pressure(breath_gases["n2o"][MOLES]) - if(SA_pp > SA_para_min) // Enough to make us paralysed for a bit - H.Paralyse(3) // 3 gives them one second to wake up and run away a bit! - if(SA_pp > SA_sleep_min) // Enough to make us sleep as well - H.Sleeping(max(H.sleeping+2, 10)) - else if(SA_pp > 0.01) // There is sleeping gas in their lungs, but only a little, so give them a bit of a warning - if(prob(20)) - H.emote(pick("giggle", "laugh")) - - // BZ - - var/bz_pp = breath.get_breath_partial_pressure(breath_gases["bz"][MOLES]) - if(bz_pp > BZ_trip_balls_min) - H.hallucination += 20 - if(prob(33)) - H.adjustBrainLoss(3) - else if(bz_pp > 0.01) - H.hallucination += 5//Removed at 2 per tick so this will slowly build up - handle_breath_temperature(breath, H) - breath.garbage_collect() - - return 1 - - -//Returns the amount of true_pp we breathed -/datum/species/proc/handle_too_little_breath(mob/living/carbon/human/H = null,breath_pp = 0, safe_breath_min = 0, true_pp = 0) - . = 0 - if(!H || !safe_breath_min) //the other args are either: Ok being 0 or Specifically handled. - return 0 - - if(!(NOBREATH in specflags) || (H.health <= config.health_threshold_crit)) - if(prob(20)) - H.emote("gasp") - if(breath_pp > 0) - var/ratio = safe_breath_min/breath_pp - H.adjustOxyLoss(min(5*ratio, HUMAN_MAX_OXYLOSS)) // Don't fuck them up too fast (space only does HUMAN_MAX_OXYLOSS after all! - H.failed_last_breath = 1 - . = true_pp*ratio/6 - else - H.adjustOxyLoss(HUMAN_MAX_OXYLOSS) - H.failed_last_breath = 1 - - -/datum/species/proc/handle_breath_temperature(datum/gas_mixture/breath, mob/living/carbon/human/H) // called by human/life, handles temperatures - if(abs(310.15 - breath.temperature) > 50) - - if(!(mutations_list[COLDRES] in H.dna.mutations)) // COLD DAMAGE - switch(breath.temperature) - if(-INFINITY to 120) - H.apply_damage(COLD_GAS_DAMAGE_LEVEL_3, BURN, "head") - if(120 to 200) - H.apply_damage(COLD_GAS_DAMAGE_LEVEL_2, BURN, "head") - if(200 to 260) - H.apply_damage(COLD_GAS_DAMAGE_LEVEL_1, BURN, "head") - - if(!(RESISTTEMP in specflags)) // HEAT DAMAGE - switch(breath.temperature) - if(360 to 400) - H.apply_damage(HEAT_GAS_DAMAGE_LEVEL_1, BURN, "head") - if(400 to 1000) - H.apply_damage(HEAT_GAS_DAMAGE_LEVEL_2, BURN, "head") - if(1000 to INFINITY) - H.apply_damage(HEAT_GAS_DAMAGE_LEVEL_3, BURN, "head") - /datum/species/proc/handle_environment(datum/gas_mixture/environment, mob/living/carbon/human/H) if(!environment) return @@ -1526,7 +1274,7 @@ mob/living/carbon/human/proc/get_species() H.bodytemperature += min((1-thermal_protection) * ((loc_temp - H.bodytemperature) / BODYTEMP_HEAT_DIVISOR), BODYTEMP_HEATING_MAX) // +/- 50 degrees from 310.15K is the 'safe' zone, where no damage is dealt. - if(H.bodytemperature > BODYTEMP_HEAT_DAMAGE_LIMIT && !(RESISTTEMP in specflags)) + if(H.bodytemperature > BODYTEMP_HEAT_DAMAGE_LIMIT && !(RESISTHOT in species_traits)) //Body temperature is too hot. switch(H.bodytemperature) if(360 to 400) @@ -1565,7 +1313,7 @@ mob/living/carbon/human/proc/get_species() var/adjusted_pressure = H.calculate_affecting_pressure(pressure) //Returns how much pressure actually affects the mob. switch(adjusted_pressure) if(HAZARD_HIGH_PRESSURE to INFINITY) - if(!(RESISTTEMP in specflags)) + if(!(RESISTPRESSURE in species_traits)) H.adjustBruteLoss( min( ( (adjusted_pressure / HAZARD_HIGH_PRESSURE) -1 )*PRESSURE_DAMAGE_COEFFICIENT , MAX_HIGH_PRESSURE_DAMAGE) ) H.throw_alert("pressure", /obj/screen/alert/highpressure, 2) else @@ -1577,7 +1325,7 @@ mob/living/carbon/human/proc/get_species() if(HAZARD_LOW_PRESSURE to WARNING_LOW_PRESSURE) H.throw_alert("pressure", /obj/screen/alert/lowpressure, 1) else - if(H.dna.check_mutation(COLDRES) || (RESISTTEMP in specflags)) + if(H.dna.check_mutation(COLDRES) || (RESISTPRESSURE in species_traits)) H.clear_alert("pressure") else H.adjustBruteLoss( LOW_PRESSURE_DAMAGE ) @@ -1588,11 +1336,11 @@ mob/living/carbon/human/proc/get_species() ////////// /datum/species/proc/handle_fire(mob/living/carbon/human/H) - if((RESISTTEMP in specflags) || (NOFIRE in specflags)) + if(NOFIRE in species_traits) return 1 /datum/species/proc/CanIgniteMob(mob/living/carbon/human/H) - if((RESISTTEMP in specflags) || (NOFIRE in specflags)) + if(NOFIRE in species_traits) return FALSE return TRUE @@ -1611,16 +1359,13 @@ mob/living/carbon/human/proc/get_species() //Space Move// ////////////// -/datum/species/proc/space_move() +/datum/species/proc/space_move(mob/living/carbon/human/H) return 0 -/datum/species/proc/negates_gravity() +/datum/species/proc/negates_gravity(mob/living/carbon/human/H) return 0 -#undef HUMAN_MAX_OXYLOSS -#undef HUMAN_CRIT_MAX_OXYLOSS - #undef HEAT_DAMAGE_LEVEL_1 #undef HEAT_DAMAGE_LEVEL_2 #undef HEAT_DAMAGE_LEVEL_3 @@ -1628,11 +1373,3 @@ mob/living/carbon/human/proc/get_species() #undef COLD_DAMAGE_LEVEL_1 #undef COLD_DAMAGE_LEVEL_2 #undef COLD_DAMAGE_LEVEL_3 - -#undef HEAT_GAS_DAMAGE_LEVEL_1 -#undef HEAT_GAS_DAMAGE_LEVEL_2 -#undef HEAT_GAS_DAMAGE_LEVEL_3 - -#undef COLD_GAS_DAMAGE_LEVEL_1 -#undef COLD_GAS_DAMAGE_LEVEL_2 -#undef COLD_GAS_DAMAGE_LEVEL_3 diff --git a/code/modules/mob/living/carbon/human/species_types.dm b/code/modules/mob/living/carbon/human/species_types.dm index e5340e98bc..6e112b4192 100644 --- a/code/modules/mob/living/carbon/human/species_types.dm +++ b/code/modules/mob/living/carbon/human/species_types.dm @@ -3,47 +3,30 @@ */ /datum/species/human - roundstart = 1 name = "Human" id = "human" default_color = "FFFFFF" - specflags = list(MUTCOLORS_PARTSONLY,EYECOLOR,HAIR,FACEHAIR,LIPS) - mutant_bodyparts = list("tail_human", "ears") - default_features = list("tail_human" = "None", "ears" = "None") + species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS) + mutant_bodyparts = list("tail_human", "ears", "wings") + default_features = list("mcolor" = "FFF", "tail_human" = "None", "ears" = "None", "wings" = "None") use_skintones = 1 skinned_type = /obj/item/stack/sheet/animalhide/human -/* + /datum/species/human/qualifies_for_rank(rank, list/features) if((!features["tail_human"] || features["tail_human"] == "None") && (!features["ears"] || features["ears"] == "None")) - return 1 //Pure humans are always allowed in all roles. - - //Mutants are not allowed in most roles. - if(rank in security_positions) //This list does not include lawyers. - return 0 - if(rank in science_positions) - return 0 - if(rank in medical_positions) - return 0 - if(rank in engineering_positions) - return 0 - if(rank == "Quartermaster") //QM is not contained in command_positions but we still want to bar mutants from it. - return 0 - return ..()*/ - - -/datum/species/human/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H) - if(chem.id == "mutationtoxin") - H << "Your flesh rapidly mutates!" - H.set_species(/datum/species/jelly/slime) - H.reagents.del_reagent(chem.type) - return 1 + return TRUE //Pure humans are always allowed in all roles. + return ..() //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/space_move(mob/living/carbon/human/H) + var/obj/item/device/flightpack/F = H.get_flightpack() + if(istype(F) && (F.flight) && F.allow_thrust(0.01, src)) + return TRUE /* LIZARDPEOPLE */ @@ -54,11 +37,10 @@ id = "lizard" say_mod = "hisses" default_color = "00FF00" - roundstart = 1 - specflags = list(MUTCOLORS,EYECOLOR,LIPS,HAIR,FACEHAIR) - mutant_bodyparts = list("tail_lizard", "snout", "spines", "horns", "frills", "body_markings") - //mutant_organs = list(/obj/item/organ/tongue/lizard) (No more hissing) - default_features = list("mcolor" = "0F0","mcolor2" = "0F0","mcolor3" = "0F0", "tail" = "Smooth", "snout" = "Round", "horns" = "None", "frills" = "None", "spines" = "None", "body_markings" = "None") + species_traits = list(MUTCOLORS,EYECOLOR,LIPS) + mutant_bodyparts = list("tail_lizard", "snout", "spines", "horns", "frills", "body_markings", "legs") + mutant_organs = list(/obj/item/organ/tongue/lizard) + default_features = list("mcolor" = "0F0", "tail" = "Smooth", "snout" = "Round", "horns" = "None", "frills" = "None", "spines" = "None", "body_markings" = "None", "legs" = "Normal Legs") attack_verb = "slash" attack_sound = 'sound/weapons/slash.ogg' miss_sound = 'sound/weapons/slashmiss.ogg' @@ -87,19 +69,19 @@ */ /datum/species/lizard/ashwalker name = "Ash Walker" - id = "lizard" - specflags = list(MUTCOLORS,EYECOLOR,LIPS,NOBREATH,NOGUNS) + id = "ashlizard" + limbs_id = "lizard" + species_traits = list(MUTCOLORS,EYECOLOR,LIPS,NOBREATH,NOGUNS,DIGITIGRADE) /* PODPEOPLE */ /datum/species/pod // A mutation caused by a human being ressurected in a revival pod. These regain health in light, and begin to wither in darkness. - roundstart = 1 name = "Podperson" id = "pod" default_color = "59CE00" - specflags = list(MUTCOLORS,EYECOLOR) + species_traits = list(MUTCOLORS,EYECOLOR) attack_verb = "slash" attack_sound = 'sound/weapons/slice.ogg' miss_sound = 'sound/weapons/slashmiss.ogg' @@ -107,6 +89,15 @@ heatmod = 1.5 meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/plant +/datum/species/pod/on_species_gain(mob/living/carbon/C, datum/species/old_species) + . = ..() + C.faction |= "plants" + C.faction |= "vines" + +/datum/species/pod/on_species_loss(mob/living/carbon/C) + . = ..() + C.faction -= "plants" + C.faction -= "vines" /datum/species/pod/spec_life(mob/living/carbon/human/H) if(H.stat == DEAD) @@ -132,25 +123,23 @@ H.reagents.remove_reagent(chem.id, REAGENTS_METABOLISM) return 1 -/datum/species/pod/on_hit(proj_type, mob/living/carbon/human/H) - switch(proj_type) +/datum/species/pod/on_hit(obj/item/projectile/P, mob/living/carbon/human/H) + switch(P.type) if(/obj/item/projectile/energy/floramut) if(prob(15)) H.rad_act(rand(30,80)) H.Weaken(5) - H.visible_message("[H] writhes in pain as \his vacuoles boil.", "You writhe in pain as your vacuoles boil!", "You hear the crunching of leaves.") + H.visible_message("[H] writhes in pain as [H.p_their()] vacuoles boil.", "You writhe in pain as your vacuoles boil!", "You hear the crunching of leaves.") if(prob(80)) - randmutb(H) + H.randmutb() else - randmutg(H) + H.randmutg() H.domutcheck() else H.adjustFireLoss(rand(5,15)) H.show_message("The radiation beam singes you!") if(/obj/item/projectile/energy/florayield) H.nutrition = min(H.nutrition+30, NUTRITION_LEVEL_FULL) - return - /* SHADOWPEOPLE @@ -166,8 +155,36 @@ blacklisted = 1 ignored_by = list(/mob/living/simple_animal/hostile/faithless) meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/shadow - specflags = list(NOBREATH,NOBLOOD,RADIMMUNE,VIRUSIMMUNE) + species_traits = list(NOBREATH,NOBLOOD,RADIMMUNE,VIRUSIMMUNE) dangerous_existence = 1 + var/datum/action/innate/shadow/darkvision/vision_toggle + +/datum/action/innate/shadow/darkvision //Darkvision toggle so shadowpeople can actually see where darkness is + name = "Toggle Darkvision" + check_flags = AB_CHECK_CONSCIOUS + background_icon_state = "bg_default" + button_icon_state = "blind" + +/datum/action/innate/shadow/darkvision/Activate() + var/mob/living/carbon/human/H = owner + if(H.see_in_dark < 8) + H.see_in_dark = 8 + H.see_invisible = SEE_INVISIBLE_MINIMUM + H << "You adjust your vision to pierce the darkness." + else + H.see_in_dark = 2 + H.see_invisible = SEE_INVISIBLE_LIVING + H << "You adjust your vision to recognize the shadows." + +/datum/species/shadow/on_species_gain(mob/living/carbon/C, datum/species/old_species) + . = ..() + vision_toggle = new + vision_toggle.Grant(C) + +/datum/species/shadow/on_species_loss(mob/living/carbon/C) + . = ..() + if(vision_toggle) + vision_toggle.Remove(C) /datum/species/shadow/spec_life(mob/living/carbon/human/H) var/light_amount = 0 @@ -191,7 +208,7 @@ default_color = "00FF90" say_mod = "chirps" eyes = "jelleyes" - specflags = list(MUTCOLORS,EYECOLOR,HAIR,FACEHAIR,NOBLOOD) + species_traits = list(MUTCOLORS,EYECOLOR,NOBLOOD,VIRUSIMMUNE,TOXINLOVER) meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/slime exotic_blood = "slimejelly" var/datum/action/innate/regenerate_limbs/regenerate_limbs @@ -263,17 +280,17 @@ H << "You feel intact enough as it is." return H << "You focus intently on your missing [limbs_to_heal.len >= 2 ? "limbs" : "limb"]..." - if(H.blood_volume >= 150*limbs_to_heal.len+BLOOD_VOLUME_OKAY) + if(H.blood_volume >= 40*limbs_to_heal.len+BLOOD_VOLUME_OKAY) H.regenerate_limbs() - H.blood_volume -= 150*limbs_to_heal.len + H.blood_volume -= 40*limbs_to_heal.len H << "...and after a moment you finish reforming!" return - else if(H.blood_volume >= 150)//We can partially heal some limbs - while(H.blood_volume >= BLOOD_VOLUME_OKAY+150) + else if(H.blood_volume >= 40)//We can partially heal some limbs + while(H.blood_volume >= BLOOD_VOLUME_OKAY+40) var/healed_limb = pick(limbs_to_heal) H.regenerate_limb(healed_limb) limbs_to_heal -= healed_limb - H.blood_volume -= 150 + H.blood_volume -= 40 H << "...but there is not enough of you to fix everything! You must attain more mass to heal completely!" return H << "...but there is not enough of you to go around! You must attain more mass to heal!" @@ -283,24 +300,23 @@ */ /datum/species/jelly/slime - // Humans mutated by slime mutagen, produced from green slimes. They are not targeted by slimes. + // Humans mutated by slime mutagen, produced from green slimes. They are not targetted by slimes. name = "Slimeperson" id = "slime" default_color = "00FFFF" darksight = 3 - specflags = list(MUTCOLORS,EYECOLOR,HAIR,FACEHAIR,NOBLOOD) + species_traits = list(MUTCOLORS,EYECOLOR,HAIR,FACEHAIR,NOBLOOD,VIRUSIMMUNE, TOXINLOVER) say_mod = "says" eyes = "eyes" hair_color = "mutcolor" - hair_alpha = 192 + hair_alpha = 150 ignored_by = list(/mob/living/simple_animal/slime) - burnmod = 0.9 + burnmod = 0.5 coldmod = 2 - heatmod = 0.9 + heatmod = 0.5 var/datum/action/innate/split_body/slime_split var/list/mob/living/carbon/bodies var/datum/action/innate/swap_body/swap_body - roundstart = 1 /datum/species/jelly/slime/on_species_loss(mob/living/carbon/C) if(slime_split) @@ -317,6 +333,11 @@ /datum/species/jelly/slime/on_species_gain(mob/living/carbon/C, datum/species/old_species) ..() if(ishuman(C)) + slime_split = new + slime_split.Grant(C) + swap_body = new + swap_body.Grant(C) + if(!bodies || !bodies.len) bodies = list(C) else @@ -521,14 +542,14 @@ /datum/species/golem // Animated beings of stone. They have increased defenses, and do not need to breathe. They're also slow as fuuuck. name = "Golem" - id = "golem" - specflags = list(NOBREATH,RESISTTEMP,NOGUNS,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE,NODISMEMBER,MUTCOLORS) + id = "iron" + species_traits = list(NOBREATH,RESISTHOT,RESISTCOLD,RESISTPRESSURE,NOFIRE,NOGUNS,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE,NODISMEMBER,MUTCOLORS) speedmod = 2 armor = 55 siemens_coeff = 0 punchdamagelow = 5 punchdamagehigh = 14 - punchstunthreshold = 12 //about 15% chance to stun + punchstunthreshold = 11 //about 40% chance to stun no_equip = list(slot_wear_mask, slot_wear_suit, slot_gloves, slot_shoes, slot_w_uniform) nojumpsuit = 1 sexes = 1 @@ -539,51 +560,432 @@ dangerous_existence = TRUE limbs_id = "golem" fixed_mut_color = "aaa" + var/info_text = "As an Iron Golem, you don't have any special traits." /datum/species/golem/random name = "Random Golem" blacklisted = FALSE dangerous_existence = FALSE -/datum/species/golem/random/New() - . = ..() +/datum/species/golem/random/on_species_gain(mob/living/carbon/C, datum/species/old_species) + ..() var/list/golem_types = typesof(/datum/species/golem) - src.type var/datum/species/golem/golem_type = pick(golem_types) - name = initial(golem_type.name) - id = initial(golem_type.id) - meat = initial(golem_type.meat) + var/mob/living/carbon/human/H = C + H.set_species(golem_type) + H << "[initial(golem_type.info_text)]" /datum/species/golem/adamantine name = "Adamantine Golem" id = "adamantine" meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/golem/adamantine fixed_mut_color = "4ed" + info_text = "As an Adamantine Golem, you don't have any special traits." +//Explodes on death /datum/species/golem/plasma name = "Plasma Golem" id = "plasma" fixed_mut_color = "a3d" + meat = /obj/item/weapon/ore/plasma + //Can burn and takes damage from heat + species_traits = list(NOBREATH,RESISTCOLD,RESISTPRESSURE,NOGUNS,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE,NODISMEMBER,MUTCOLORS) + info_text = "As a Plasma Golem, you explode on death!" + burnmod = 1.5 +/datum/species/golem/plasma/spec_death(gibbed, mob/living/carbon/human/H) + explosion(get_turf(H),0,1,2,flame_range = 5) + if(H) + H.gib() + +//Harder to hurt /datum/species/golem/diamond name = "Diamond Golem" id = "diamond" fixed_mut_color = "0ff" + armor = 70 //up from 55 + meat = /obj/item/weapon/ore/diamond + info_text = "As a Diamond Golem, you are more resistant than the average golem." +//Faster but softer and less armoured /datum/species/golem/gold name = "Gold Golem" id = "gold" - fixed_mut_color = "ee0" + fixed_mut_color = "cc0" + speedmod = 1 + armor = 25 //down from 55 + meat = /obj/item/weapon/ore/gold + info_text = "As a Gold Golem, you are faster but less resistant than the average golem." +//Heavier, thus higher chance of stunning when punching /datum/species/golem/silver name = "Silver Golem" id = "silver" fixed_mut_color = "ddd" + punchstunthreshold = 9 //60% chance, from 40% + meat = /obj/item/weapon/ore/silver + info_text = "As a Silver Golem, your attacks are heavier and have a higher chance of stunning." +//Harder to stun, deals more damage, but it's even slower +/datum/species/golem/plasteel + name = "Plasteel Golem" + id = "plasteel" + fixed_mut_color = "bbb" + stunmod = 0.40 + punchdamagelow = 12 + punchdamagehigh = 21 + punchstunthreshold = 18 //still 40% stun chance + speedmod = 4 //pretty fucking slow + meat = /obj/item/weapon/ore/iron + info_text = "As a Plasteel Golem, you are slower, but harder to stun, and hit very hard when punching." + attack_verb = "smash" + attack_sound = "sound/effects/meteorimpact.ogg" //hits pretty hard + +//Immune to ash storms +/datum/species/golem/titanium + name = "Titanium Golem" + id = "titanium" + fixed_mut_color = "fff" + meat = /obj/item/weapon/ore/titanium + info_text = "As a Titanium Golem, you are immune to ash storms, and slightly more resistant to burn damage." + burnmod = 0.9 + +/datum/species/golem/titanium/on_species_gain(mob/living/carbon/C, datum/species/old_species) + . = ..() + C.weather_immunities |= "ash" + +/datum/species/golem/titanium/on_species_loss(mob/living/carbon/C) + . = ..() + C.weather_immunities |= "ash" + +//Immune to ash storms and lava +/datum/species/golem/plastitanium + name = "Plastitanium Golem" + id = "plastitanium" + fixed_mut_color = "888" + meat = /obj/item/weapon/ore/titanium + info_text = "As a Plastitanium Golem, you are immune to both ash storms and lava, and slightly more resistant to burn damage." + burnmod = 0.8 + +/datum/species/golem/plastitanium/on_species_gain(mob/living/carbon/C, datum/species/old_species) + . = ..() + C.weather_immunities |= "lava" + C.weather_immunities |= "ash" + +/datum/species/golem/plastitanium/on_species_loss(mob/living/carbon/C) + . = ..() + C.weather_immunities |= "ash" + C.weather_immunities |= "lava" + +//Fast and regenerates... but can only speak like an abductor +/datum/species/golem/alloy + name = "Alien Alloy Golem" + id = "alloy" + fixed_mut_color = "333" + meat = /obj/item/stack/sheet/mineral/abductor + mutant_organs = list(/obj/item/organ/tongue/abductor) //abductor tongue + speedmod = 1 //faster + info_text = "As an Alloy Golem, you are made of advanced alien materials: you are faster and regenerate over time. You are, however, only able to be heard by other alloy golems." + +//Regenerates because self-repairing super-advanced alien tech +/datum/species/golem/alloy/spec_life(mob/living/carbon/human/H) + if(H.stat == DEAD) + return + H.heal_overall_damage(2,2) + H.adjustToxLoss(-2) + H.adjustOxyLoss(-2) + +//Since this will usually be created from a collaboration between podpeople and free golems, wood golems are a mix between the two races +/datum/species/golem/wood + name = "Wood Golem" + id = "wood" + fixed_mut_color = "49311c" + meat = /obj/item/stack/sheet/mineral/wood + //Can burn and take damage from heat + species_traits = list(NOBREATH,RESISTCOLD,RESISTPRESSURE,NOGUNS,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE,NODISMEMBER,MUTCOLORS) + armor = 30 + burnmod = 1.25 + heatmod = 1.5 + info_text = "As a Wooden Golem, you have plant-like traits: you take damage from extreme temperatures, can be set on fire, and have lower armor than a normal golem. You regenerate when in the light and wither in the darkness." + +/datum/species/golem/wood/on_species_gain(mob/living/carbon/C, datum/species/old_species) + . = ..() + C.faction |= "plants" + C.faction |= "vines" + +/datum/species/golem/wood/on_species_loss(mob/living/carbon/C) + . = ..() + C.faction -= "plants" + C.faction -= "vines" + +/datum/species/golem/wood/spec_life(mob/living/carbon/human/H) + if(H.stat == DEAD) + return + var/light_amount = 0 //how much light there is in the place, affects receiving nutrition and healing + if(isturf(H.loc)) //else, there's considered to be no light + var/turf/T = H.loc + light_amount = min(10,T.get_lumcount()) - 5 + H.nutrition += light_amount + if(H.nutrition > NUTRITION_LEVEL_FULL) + H.nutrition = NUTRITION_LEVEL_FULL + if(light_amount > 2) //if there's enough light, heal + H.heal_overall_damage(1,1) + H.adjustToxLoss(-1) + H.adjustOxyLoss(-1) + + if(H.nutrition < NUTRITION_LEVEL_STARVING + 50) + H.take_overall_damage(2,0) + +/datum/species/golem/wood/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H) + if(chem.id == "plantbgone") + H.adjustToxLoss(3) + H.reagents.remove_reagent(chem.id, REAGENTS_METABOLISM) + return 1 + +//Radioactive /datum/species/golem/uranium name = "Uranium Golem" id = "uranium" fixed_mut_color = "7f0" + meat = /obj/item/weapon/ore/uranium + info_text = "As an Uranium Golem, you emit radiation pulses every once in a while. It won't harm fellow golems, but organic lifeforms will be affected." + var/last_event = 0 + var/active = null + +/datum/species/golem/uranium/spec_life(mob/living/carbon/human/H) + if(!active) + if(world.time > last_event+30) + active = 1 + radiation_pulse(get_turf(H), 3, 3, 5, 0) + last_event = world.time + active = null + ..() + +//Immune to physical bullets and resistant to brute, but very vulnerable to burn damage. Dusts on death. +/datum/species/golem/sand + name = "Sand Golem" + id = "sand" + fixed_mut_color = "ffdc8f" + meat = /obj/item/weapon/ore/glass //this is sand + armor = 0 + burnmod = 3 //melts easily + brutemod = 0.25 + info_text = "As a Sand Golem, you are immune to physical bullets and take very little brute damage, but are extremely vulnerable to burn damage. You will also turn to sand when dying, preventing any form of recovery." + attack_sound = "sound/effects/shovel_dig.ogg" + +/datum/species/golem/sand/spec_death(gibbed, mob/living/carbon/human/H) + H.visible_message("[H] turns into a pile of sand!") + for(var/obj/item/W in H) + H.unEquip(W) + for(var/i=1, i <= rand(3,5), i++) + new /obj/item/weapon/ore/glass(get_turf(H)) + qdel(H) + +/datum/species/golem/sand/bullet_act(obj/item/projectile/P, mob/living/carbon/human/H) + if(!(P.original == H && P.firer == H)) + if(P.flag == "bullet" || P.flag == "bomb") + playsound(H, "sound/effects/shovel_dig.ogg", 70, 1) + H.visible_message("The [P.name] sinks harmlessly in [H]'s sandy body!", \ + "The [P.name] sinks harmlessly in [H]'s sandy body!") + return 2 + return 0 + +//Reflects lasers and resistant to burn damage, but very vulnerable to brute damage. Shatters on death. +/datum/species/golem/glass + name = "Glass Golem" + id = "glass" + fixed_mut_color = "5a96b4aa" //transparent body + meat = /obj/item/weapon/shard + armor = 0 + brutemod = 3 //very fragile + burnmod = 0.25 + info_text = "As a Glass Golem, you reflect lasers and energy weapons, and are very resistant to burn damage, but you are extremely vulnerable to brute damage. On death, you'll shatter beyond any hope of recovery." + attack_sound = "sound/effects/Glassbr2.ogg" + +/datum/species/golem/glass/spec_death(gibbed, mob/living/carbon/human/H) + playsound(H, "shatter", 70, 1) + H.visible_message("[H] shatters!") + for(var/obj/item/W in H) + H.unEquip(W) + for(var/i=1, i <= rand(3,5), i++) + new /obj/item/weapon/shard(get_turf(H)) + qdel(H) + +/datum/species/golem/glass/bullet_act(obj/item/projectile/P, mob/living/carbon/human/H) + if(!(P.original == H && P.firer == H)) //self-shots don't reflect + if(P.flag == "laser" || P.flag == "energy") + H.visible_message("The [P.name] gets reflected by [H]'s glass skin!", \ + "The [P.name] gets reflected by [H]'s glass skin!") + if(P.starting) + var/new_x = P.starting.x + pick(0, 0, 0, 0, 0, -1, 1, -2, 2) + var/new_y = P.starting.y + pick(0, 0, 0, 0, 0, -1, 1, -2, 2) + var/turf/curloc = get_turf(H) + + // redirect the projectile + P.original = locate(new_x, new_y, P.z) + P.starting = curloc + P.current = curloc + P.firer = H + P.yo = new_y - curloc.y + P.xo = new_x - curloc.x + P.Angle = null + return -1 + return 0 + +//Teleports when hit or when it wants to +/datum/species/golem/bluespace + name = "Bluespace Golem" + id = "bluespace" + fixed_mut_color = "33f" + meat = /obj/item/weapon/ore/bluespace_crystal + info_text = "As a Bluespace Golem, are spatially unstable: you will teleport when hit, and you can teleport manually at a long distance." + attack_verb = "bluespace punch" + attack_sound = "sound/effects/phasein.ogg" + + var/datum/action/innate/unstable_teleport/unstable_teleport + var/teleport_cooldown = 100 + var/last_teleport = 0 + +/datum/species/golem/bluespace/proc/reactive_teleport(mob/living/carbon/human/H) + H.visible_message("[H] teleports!", "You destabilize and teleport!") + PoolOrNew(/obj/effect/particle_effect/sparks, get_turf(H)) + playsound(get_turf(H), "sparks", 50, 1) + do_teleport(H, get_turf(H), 6, asoundin = 'sound/weapons/emitter2.ogg') + last_teleport = world.time + +/datum/species/golem/bluespace/spec_hitby(atom/movable/AM, mob/living/carbon/human/H) + ..() + var/obj/item/I + if(istype(AM, /obj/item)) + I = AM + if(I.thrownby == H) //No throwing stuff at yourself to trigger the teleport + return 0 + else + reactive_teleport(H) + +/datum/species/golem/bluespace/spec_attack_hand(mob/living/carbon/human/M, mob/living/carbon/human/H, datum/martial_art/attacker_style = M.martial_art) + ..() + if(world.time > last_teleport + teleport_cooldown && M != H && M.a_intent != INTENT_HELP) + reactive_teleport(H) + +/datum/species/golem/bluespace/spec_attacked_by(obj/item/I, mob/living/user, obj/item/bodypart/affecting, intent, mob/living/carbon/human/H) + ..() + if(world.time > last_teleport + teleport_cooldown && user != H) + reactive_teleport(H) + +/datum/species/golem/bluespace/on_hit(obj/item/projectile/P, mob/living/carbon/human/H) + ..() + if(world.time > last_teleport + teleport_cooldown) + reactive_teleport(H) + +/datum/species/golem/bluespace/on_species_gain(mob/living/carbon/C, datum/species/old_species) + ..() + if(ishuman(C)) + unstable_teleport = new + unstable_teleport.Grant(C) + +/datum/species/golem/bluespace/on_species_loss(mob/living/carbon/C) + if(unstable_teleport) + unstable_teleport.Remove(C) + ..() + +/datum/action/innate/unstable_teleport + name = "Unstable Teleport" + check_flags = AB_CHECK_CONSCIOUS + button_icon_state = "jaunt" + var/cooldown = 150 + var/last_teleport = 0 + +/datum/action/innate/unstable_teleport/IsAvailable() + if(..()) + if(world.time > last_teleport + cooldown) + return 1 + return 0 + +/datum/action/innate/unstable_teleport/Activate() + var/mob/living/carbon/human/H = owner + H.visible_message("[H] starts vibrating!", "You start charging your bluespace core...") + playsound(get_turf(H), 'sound/weapons/flash.ogg', 25, 1) + addtimer(src, "teleport", 15, TIMER_NORMAL, H) + +/datum/action/innate/unstable_teleport/proc/teleport(mob/living/carbon/human/H) + H.visible_message("[H] disappears in a shower of sparks!", "You teleport!") + var/datum/effect_system/spark_spread/spark_system = new /datum/effect_system/spark_spread + spark_system.set_up(10, 0, src) + spark_system.attach(H) + spark_system.start() + do_teleport(H, get_turf(H), 12, asoundin = 'sound/weapons/emitter2.ogg') + last_teleport = world.time + UpdateButtonIcon() //action icon looks unavailable + sleep(cooldown + 5) + UpdateButtonIcon() //action icon looks available again + + +//honk +/datum/species/golem/bananium + name = "Bananium Golem" + id = "bananium" + fixed_mut_color = "ff0" + say_mod = "honks" + punchdamagelow = 0 + punchdamagehigh = 1 + punchstunthreshold = 2 //Harmless and can't stun + meat = /obj/item/weapon/ore/bananium + info_text = "As a Bananium Golem, you are made for pranking. Your body emits natural honks, and you cannot hurt people when punching them. Your skin also emits bananas when damaged." + attack_verb = "honk" + attack_sound = "sound/items/AirHorn2.ogg" + + var/last_honk = 0 + var/honkooldown = 0 + var/last_banana = 0 + var/banana_cooldown = 100 + var/active = null + +/datum/species/golem/bananium/spec_attack_hand(mob/living/carbon/human/M, mob/living/carbon/human/H, datum/martial_art/attacker_style = M.martial_art) + ..() + if(world.time > last_banana + banana_cooldown && M != H && M.a_intent != INTENT_HELP) + new/obj/item/weapon/grown/bananapeel/specialpeel(get_turf(H)) + last_banana = world.time + +/datum/species/golem/bananium/spec_attacked_by(obj/item/I, mob/living/user, obj/item/bodypart/affecting, intent, mob/living/carbon/human/H) + ..() + if(world.time > last_banana + banana_cooldown && user != H) + new/obj/item/weapon/grown/bananapeel/specialpeel(get_turf(H)) + last_banana = world.time + +/datum/species/golem/bananium/on_hit(obj/item/projectile/P, mob/living/carbon/human/H) + ..() + if(world.time > last_banana + banana_cooldown) + new/obj/item/weapon/grown/bananapeel/specialpeel(get_turf(H)) + last_banana = world.time + +/datum/species/golem/bananium/spec_hitby(atom/movable/AM, mob/living/carbon/human/H) + ..() + var/obj/item/I + if(istype(AM, /obj/item)) + I = AM + if(I.thrownby == H) //No throwing stuff at yourself to make bananas + return 0 + else + new/obj/item/weapon/grown/bananapeel/specialpeel(get_turf(H)) + last_banana = world.time + +/datum/species/golem/bananium/spec_life(mob/living/carbon/human/H) + if(!active) + if(world.time > last_honk + honkooldown) + active = 1 + playsound(get_turf(H), 'sound/items/bikehorn.ogg', 50, 1) + last_honk = world.time + honkooldown = rand(20, 80) + active = null + ..() + +/datum/species/golem/bananium/spec_death(gibbed, mob/living/carbon/human/H) + playsound(get_turf(H), 'sound/misc/sadtrombone.ogg', 70, 0) + +/datum/species/golem/bananium/get_spans() + return list(SPAN_CLOWN) /* FLIES @@ -594,7 +996,6 @@ name = "Human?" id = "fly" say_mod = "buzzes" - eyes = "flyeyes" mutant_organs = list(/obj/item/organ/tongue/fly) meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/fly @@ -616,6 +1017,11 @@ "You throw up on the floor!") ..() +/datum/species/fly/check_weakness(obj/item/weapon, mob/living/attacker) + if(istype(weapon,/obj/item/weapon/melee/flyswatter)) + return 29 //Flyswatters deal 30x damage to flypeople. + return 0 + /* SKELETONS */ @@ -628,8 +1034,9 @@ blacklisted = 1 sexes = 0 meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/skeleton - specflags = list(NOBREATH,RESISTTEMP,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE,NOHUNGER,EASYDISMEMBER,EASYLIMBATTACHMENT) + species_traits = list(NOBREATH,RESISTHOT,RESISTCOLD,RESISTPRESSURE,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE,NOHUNGER,EASYDISMEMBER,EASYLIMBATTACHMENT) mutant_organs = list(/obj/item/organ/tongue/bone) + damage_overlay_type = ""//let's not show bloody wounds or burns over bones. /* ZOMBIES @@ -643,18 +1050,20 @@ sexes = 0 blacklisted = 1 meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/zombie - specflags = list(NOBREATH,RESISTTEMP,NOBLOOD,RADIMMUNE,NOZOMBIE,EASYDISMEMBER,EASYLIMBATTACHMENT, TOXINLOVER) + species_traits = list(NOBREATH,RESISTCOLD,RESISTPRESSURE,NOBLOOD,RADIMMUNE,NOZOMBIE,EASYDISMEMBER,EASYLIMBATTACHMENT,TOXINLOVER) mutant_organs = list(/obj/item/organ/tongue/zombie) - speedmod = 2 /datum/species/zombie/infectious name = "Infectious Zombie" + id = "memezombies" + limbs_id = "zombie" no_equip = list(slot_wear_mask, slot_head) armor = 20 // 120 damage to KO a zombie, which kills it + speedmod = 2 /datum/species/zombie/infectious/spec_life(mob/living/carbon/C) . = ..() - C.a_intent = "harm" // THE SUFFERING MUST FLOW + C.a_intent = INTENT_HARM // THE SUFFERING MUST FLOW if(C.InCritical()) C.death() // Zombies only move around when not in crit, they instantly @@ -664,10 +1073,9 @@ . = ..() // Drop items in hands // If you're a zombie lucky enough to have a NODROP item, then it stays. - if(C.unEquip(C.l_hand)) - C.put_in_l_hand(new /obj/item/zombie_hand(C)) - if(C.unEquip(C.r_hand)) - C.put_in_r_hand(new /obj/item/zombie_hand(C)) + for(var/obj/item/I in C.held_items) + C.unEquip(I) + C.put_in_hands(new /obj/item/zombie_hand(C)) // Next, deal with the source of this zombie corruption var/obj/item/organ/body_egg/zombie_infection/infection @@ -677,18 +1085,16 @@ /datum/species/zombie/infectious/on_species_loss(mob/living/carbon/C) . = ..() - var/obj/item/zombie_hand/left = C.l_hand - var/obj/item/zombie_hand/right = C.r_hand - // Deletion of the hands is handled in the items dropped() - if(istype(left)) - C.unEquip(left, TRUE) - if(istype(right)) - C.unEquip(right, TRUE) + for(var/obj/item/I in C.held_items) + if(istype(I, /obj/item/zombie_hand)) + C.unEquip(I, TRUE) + // Your skin falls off /datum/species/krokodil_addict name = "Human" - id = "zombie" + id = "goofzombies" + limbs_id = "zombie" //They look like zombies sexes = 0 meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/zombie mutant_organs = list(/obj/item/organ/tongue/zombie) @@ -699,7 +1105,7 @@ darksight = 3 say_mod = "gibbers" sexes = 0 - specflags = list(NOBLOOD,NOBREATH,VIRUSIMMUNE,NOGUNS) + species_traits = list(NOBLOOD,NOBREATH,VIRUSIMMUNE,NOGUNS) mutant_organs = list(/obj/item/organ/tongue/abductor) var/scientist = 0 // vars to not pollute spieces list with castes var/agent = 0 @@ -713,15 +1119,15 @@ var/global/image/plasmaman_on_fire = image("icon"='icons/mob/OnFire.dmi', "icon_ say_mod = "rattles" sexes = 0 meat = /obj/item/stack/sheet/mineral/plasma - specflags = list(NOBLOOD,RADIMMUNE,NOTRANSSTING,VIRUSIMMUNE,NOHUNGER) - safe_oxygen_min = 0 //We don't breath this - safe_toxins_min = 16 //We breath THIS! - safe_toxins_max = 0 + species_traits = list(NOBLOOD,RESISTCOLD,RADIMMUNE,NOTRANSSTING,VIRUSIMMUNE,NOHUNGER) + mutantlungs = /obj/item/organ/lungs/plasmaman dangerous_existence = 1 //So so much blacklisted = 1 //See above burnmod = 2 heatmod = 2 + breathid = "tox" speedmod = 1 + damage_overlay_type = ""//let's not show bloody wounds or burns over bones. /datum/species/plasmaman/spec_life(mob/living/carbon/human/H) var/datum/gas_mixture/environment = H.loc.return_air() @@ -745,7 +1151,7 @@ var/global/image/plasmaman_on_fire = image("icon"='icons/mob/OnFire.dmi', "icon_ /datum/species/plasmaman/before_equip_job(datum/job/J, mob/living/carbon/human/H, visualsOnly = FALSE) var/datum/outfit/plasmaman/O = new /datum/outfit/plasmaman H.equipOutfit(O, visualsOnly) - H.internal = H.r_hand + H.internal = H.get_item_for_held_index(2) H.update_internals_hud_icon(1) return 0 @@ -756,29 +1162,31 @@ var/global/image/plasmaman_on_fire = image("icon"='icons/mob/OnFire.dmi', "icon_ return 0 return ..() +/datum/species/plasmaman/random_name(gender,unique,lastname) + if(unique) + return random_unique_plasmaman_name() + var/randname = plasmaman_name() + + if(lastname) + randname += " [lastname]" + + return randname /datum/species/synth name = "Synth" //inherited from the real species, for health scanners and things id = "synth" say_mod = "beep boops" //inherited from a user's real species sexes = 0 - specflags = list(NOTRANSSTING,NOBREATH,VIRUSIMMUNE,NODISMEMBER,NOHUNGER) //all of these + whatever we inherit from the real species - safe_oxygen_min = 0 - safe_toxins_min = 0 - safe_toxins_max = 0 - safe_co2_max = 0 - SA_para_min = 0 - SA_sleep_min = 0 + species_traits = list(NOTRANSSTING,NOBREATH,VIRUSIMMUNE,NODISMEMBER,NOHUNGER) //all of these + whatever we inherit from the real species dangerous_existence = 1 blacklisted = 1 meat = null - exotic_damage_overlay = "synth" + damage_overlay_type = "synth" limbs_id = "synth" - var/list/initial_specflags = list(NOTRANSSTING,NOBREATH,VIRUSIMMUNE,NODISMEMBER,NOHUNGER) //for getting these values back for assume_disguise() + var/list/initial_species_traits = list(NOTRANSSTING,NOBREATH,VIRUSIMMUNE,NODISMEMBER,NOHUNGER) //for getting these values back for assume_disguise() var/disguise_fail_health = 75 //When their health gets to this level their synthflesh partially falls off var/datum/species/fake_species = null //a species to do most of our work for us, unless we're damaged - roundstart = 0 /datum/species/synth/military name = "Military Synth" @@ -807,8 +1215,8 @@ var/global/image/plasmaman_on_fire = image("icon"='icons/mob/OnFire.dmi', "icon_ name = S.name say_mod = S.say_mod sexes = S.sexes - specflags = initial_specflags.Copy() - specflags.Add(S.specflags) + species_traits = initial_species_traits.Copy() + species_traits.Add(S.species_traits) attack_verb = S.attack_verb attack_sound = S.attack_sound miss_sound = S.miss_sound @@ -826,7 +1234,7 @@ var/global/image/plasmaman_on_fire = image("icon"='icons/mob/OnFire.dmi', "icon_ else name = initial(name) say_mod = initial(say_mod) - specflags = initial_specflags.Copy() + species_traits = initial_species_traits.Copy() attack_verb = initial(attack_verb) attack_sound = initial(attack_sound) miss_sound = initial(miss_sound) @@ -843,6 +1251,10 @@ var/global/image/plasmaman_on_fire = image("icon"='icons/mob/OnFire.dmi', "icon_ fixed_mut_color = "" hair_color = "" + for(var/X in H.bodyparts) //propagates the damage_overlay changes + var/obj/item/bodypart/BP = X + BP.update_limb() + H.update_body_parts() //to update limb icon cache with the new damage overlays //Proc redirects: //Passing procs onto the fake_species, to ensure we look as much like them as possible @@ -884,6 +1296,27 @@ var/global/image/plasmaman_on_fire = image("icon"='icons/mob/OnFire.dmi', "icon_ return ..() +/datum/species/android + name = "Android" + id = "android" + say_mod = "states" + species_traits = list(NOBREATH,RESISTHOT,RESISTCOLD,RESISTPRESSURE,NOFIRE,NOBLOOD,VIRUSIMMUNE,PIERCEIMMUNE,NOHUNGER,EASYLIMBATTACHMENT) + meat = null + damage_overlay_type = "synth" + limbs_id = "synth" + +/datum/species/android/on_species_gain(mob/living/carbon/C) + . = ..() + for(var/X in C.bodyparts) + var/obj/item/bodypart/O = X + O.change_bodypart_status(BODYPART_ROBOTIC) + +/datum/species/android/on_species_loss(mob/living/carbon/C) + . = ..() + for(var/X in C.bodyparts) + var/obj/item/bodypart/O = X + O.change_bodypart_status(BODYPART_ORGANIC) + /* SYNDICATE BLACK OPS */ @@ -906,14 +1339,14 @@ SYNDICATE BLACK OPS attack_sound = "sound/weapons/resonator_blast.ogg" blacklisted = 1 use_skintones = 0 - specflags = list(RADIMMUNE,VIRUSIMMUNE,NOBLOOD,PIERCEIMMUNE,EYECOLOR,NODISMEMBER,NOHUNGER) + species_traits = list(RADIMMUNE,VIRUSIMMUNE,NOBLOOD,PIERCEIMMUNE,EYECOLOR,NODISMEMBER,NOHUNGER) sexes = 0 /datum/species/angel name = "Angel" id = "angel" default_color = "FFFFFF" - specflags = list(EYECOLOR,HAIR,FACEHAIR,LIPS) + species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS) mutant_bodyparts = list("tail_human", "ears", "wings") default_features = list("mcolor" = "FFF", "tail_human" = "None", "ears" = "None", "wings" = "Angel") use_skintones = 1 @@ -937,8 +1370,8 @@ SYNDICATE BLACK OPS /datum/species/angel/on_species_loss(mob/living/carbon/human/H) if(fly) fly.Remove(H) - if(FLYING in specflags) - specflags -= FLYING + if(H.movement_type & FLYING) + H.movement_type &= ~FLYING ToggleFlight(H,0) if(H.dna && H.dna.species &&((H.dna.features["wings"] != "None") && ("wings" in H.dna.species.mutant_bodyparts))) H.dna.features["wings"] = "None" @@ -949,21 +1382,18 @@ SYNDICATE BLACK OPS HandleFlight(H) /datum/species/angel/proc/HandleFlight(mob/living/carbon/human/H) - if(FLYING in specflags) + if(H.movement_type & FLYING) if(!CanFly(H)) ToggleFlight(H,0) - H.float(0) return 0 - H.float(1) return 1 else - H.float(0) return 0 /datum/species/angel/proc/CanFly(mob/living/carbon/human/H) if(H.stat || H.stunned || H.weakened) return 0 - if(H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT)) //Jumpsuits have tail holes, so it makes sense they have wing holes too + if(H.wear_suit && ((H.wear_suit.flags_inv & HIDEJUMPSUIT) && (!H.wear_suit.species_exception || !is_type_in_list(src, H.wear_suit.species_exception)))) //Jumpsuits have tail holes, so it makes sense they have wing holes too H << "Your suit blocks your wings from extending!" return 0 var/turf/T = get_turf(H) @@ -980,14 +1410,13 @@ SYNDICATE BLACK OPS /datum/action/innate/flight name = "Toggle Flight" check_flags = AB_CHECK_CONSCIOUS|AB_CHECK_STUNNED - button_icon_state = "slimesplit" - background_icon_state = "bg_alien" + button_icon_state = "flight" /datum/action/innate/flight/Activate() var/mob/living/carbon/human/H = owner var/datum/species/angel/A = H.dna.species if(A.CanFly(H)) - if(FLYING in A.specflags) + if(H.movement_type & FLYING) H << "You settle gently back onto the ground..." A.ToggleFlight(H,0) H.update_canmove() @@ -1006,8 +1435,8 @@ SYNDICATE BLACK OPS playsound(H.loc, 'sound/misc/slip.ogg', 50, 1, -3) - H.accident(H.l_hand) - H.accident(H.r_hand) + for(var/obj/item/I in H.held_items) + H.accident(I) var/olddir = H.dir @@ -1024,192 +1453,31 @@ SYNDICATE BLACK OPS /datum/species/angel/spec_stun(mob/living/carbon/human/H,amount) - if(FLYING in specflags) + if(H.movement_type & FLYING) ToggleFlight(H,0) flyslip(H) . = ..() -/datum/species/angel/negates_gravity() - if(FLYING in specflags) +/datum/species/angel/negates_gravity(mob/living/carbon/human/H) + if(H.movement_type & FLYING) return 1 -/datum/species/angel/space_move() - if(FLYING in specflags) +/datum/species/angel/space_move(mob/living/carbon/human/H) + if(H.movement_type & FLYING) return 1 /datum/species/angel/proc/ToggleFlight(mob/living/carbon/human/H,flight) if(flight && CanFly(H)) stunmod = 2 speedmod = -1 - specflags += FLYING + H.movement_type |= FLYING override_float = 1 H.pass_flags |= PASSTABLE H.OpenWings() else stunmod = 1 speedmod = 0 - specflags -= FLYING + H.movement_type &= ~FLYING override_float = 0 H.pass_flags &= ~PASSTABLE H.CloseWings() - - -//CANID// -datum/species/canid - name = "Canid" - id = "canid" - default_color = "4B4B4B" - specflags = list(MUTCOLORS,EYECOLOR,LIPS,HAIR) - mutant_bodyparts = list("mam_tail", "mam_ears", "mam_body_markings", "snout") - default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "body_markings" = "None", "mam_tail" = "None", "mam_ears" = "None", "mam_body_markings" = "None") - attack_verb = "claw" - attack_sound = 'sound/weapons/slash.ogg' - miss_sound = 'sound/weapons/slashmiss.ogg' - roundstart = 1 - -/datum/species/canid/spec_death(gibbed, mob/living/carbon/human/H) - if(H) - H.endTailWag() - -//FELID// - -/datum/species/felid - name = "Felid" - id = "felid" - default_color = "BCAC9B" - specflags = list(MUTCOLORS,EYECOLOR,LIPS,HAIR) - mutant_bodyparts = list("mam_body_markings", "mam_ears", "mam_tail", "snout") - default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "mam_body_markings" = "Belly", "mam_ears" = "Big Cat", "mam_tail" = "Big Cat") - attack_verb = "claw" - attack_sound = 'sound/weapons/slash.ogg' - miss_sound = 'sound/weapons/slashmiss.ogg' - roundstart = 1 //no sprites yet - -/datum/species/tajaran/spec_death(gibbed, mob/living/carbon/human/H) - if(H) - H.endTailWag() - -//AVIAN// -/datum/species/avian - name = "Avian" - id = "avian" - default_color = "BCAC9B" - specflags = list(MUTCOLORS,EYECOLOR,LIPS,HAIR) - mutant_bodyparts = list("beak", "wings", "avian_tail") - default_features = list("beak" = "None", "wings" = "None") - attack_verb = "peck" - attack_sound = 'sound/weapons/slash.ogg' - miss_sound = 'sound/weapons/slashmiss.ogg' - roundstart = 0 //no sprites yet - blacklisted = 1 - -//HERBIVOROUS// - -//EXOTIC// -//These races will likely include lots of downsides and upsides. Keep them relatively balanced.// -/datum/species/xeno - name = "Xenomorph" - id = "xeno" - say_mod = "hisses" - eyes = "none" - specflags = list() - mutant_organs = list(/obj/item/organ/tongue/alien) - mutant_bodyparts = list("xenohead", - "xenodorsal", - "xenotail") - default_features = list("xenohead"="Hunter", - "xenodorsal"="Dorsal Tubes", - "xenotail"="Xenomorph Tail") - attack_verb = "slash" - attack_sound = 'sound/weapons/slash.ogg' - miss_sound = 'sound/weapons/slashmiss.ogg' - burnmod = 1.75 - heatmod = 1.75 - darksight = 4 //Just above slimes - exotic_blood = "xblood" - exotic_damage_overlay = "xeno" - no_equip = list(slot_glasses) //MY EYES, THEY'RE GONE - meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/xeno - skinned_type = /obj/item/stack/sheet/animalhide/xeno - safe_toxins_max = 32 //Too much of anything is bad. - roundstart = 1 -// whitelisted = 1 -// whitelist = list("talkingcactus") //testing whitelisting - -/datum/species/xeno/on_species_gain(mob/living/carbon/C, datum/species/old_species) - ..() - var/obj/effect/decal/cleanable/xenoblood/xgibs/XG - if(istype(C.gib_type, XG)) - return - else - C.gib_type = XG - -/datum/species/xeno/on_species_loss(mob/living/carbon/C) - ..() - var/obj/effect/decal/cleanable/xenoblood/xgibs/XG - var/obj/effect/decal/cleanable/blood/gibs/HG - if(istype(C.gib_type, XG)) - C.gib_type = HG - else - return - -/datum/reagent/toxin/acid/xenoblood - name = "acid blood" - id = "xblood" - description = "A highly corrosive substance, it is capable of burning through most natural or man-made materials in short order." - color = "#66CC00" - toxpwr = 0 - acidpwr = 12 - -/datum/species/yautja - name = "Yautja" - id = "pred" - say_mod = "clicks" - eyes = "predeyes" - mutant_organs = list(/obj/item/organ/tongue/yautja) - specflags = list(EYECOLOR) - lang_spoken = YAUTJA - lang_understood = HUMAN|YAUTJA|ALIEN - no_equip = list(slot_head) - punchdamagelow = 4 - punchdamagehigh = 14 - punchstunthreshold = 13 - blacklisted = 1 - roundstart = 0 - whitelist = 1 - whitelist = list("talkingcactus") - -/datum/outfit/yautja_basic - name = "Yautja, Basic" - uniform = /obj/item/clothing/under/mesh - suit = /obj/item/clothing/suit/armor/yautja_fake - shoes = /obj/item/clothing/shoes/yautja_fake - mask = /obj/item/clothing/mask/gas/yautja_fake - -/datum/species/yautja/before_equip_job(datum/job/J, mob/living/carbon/human/H, visualsOnly = FALSE) - var/datum/outfit/yautja_basic/O = new /datum/outfit/yautja_basic//Just basic gear. Doesn't include anything that gives any meaningful advantage. - H.equipOutfit(O, visualsOnly) - return 0 - -/datum/species/octopus - blacklisted = 1 -/datum/species/carp - blacklisted = 1 -/datum/species/horse - blacklisted = 1 - -/////////////////// -//DONATOR SPECIES// -/////////////////// - -//ChronoFlux: Slimecoon -/* -/datum/species/jelly/slime/slimecoon - name = "Slime Raccoon" - id = "slimecoon" - limbs_id = "slime" - whitelisted = 1 - whitelist = list("chronoflux") - blacklisted = 1 - mutant_bodyparts = list("slimecoontail", "slimecoonears", "slimecoonsnout") - default_features = list("slimecoontail" = "Slimecoon Tail", "slimecoonears" = "Slimecoon Ears", "slimecoonsnout" = "Slimecoon Snout")*/ diff --git a/code/modules/mob/living/carbon/human/status_procs.dm b/code/modules/mob/living/carbon/human/status_procs.dm new file mode 100644 index 0000000000..3a99dda7b0 --- /dev/null +++ b/code/modules/mob/living/carbon/human/status_procs.dm @@ -0,0 +1,18 @@ + +/mob/living/carbon/human/Stun(amount, updating = 1, ignore_canstun = 0) + amount = dna.species.spec_stun(src,amount) + ..() + +/mob/living/carbon/human/Weaken(amount, updating = 1, ignore_canstun = 0) + amount = dna.species.spec_stun(src,amount) + ..() + +/mob/living/carbon/human/cure_husk() + . = ..() + if(.) + update_hair() + +/mob/living/carbon/human/become_husk() + . = ..() + if(.) + update_hair() \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index e6e0fea00a..4294582ca0 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -4,8 +4,10 @@ /* Keep these comments up-to-date if you -insist- on hurting my code-baby ;_; This system allows you to update individual mob-overlays, without regenerating them all each time. When we generate overlays we generate the standing version and then rotate the mob as necessary.. + As of the time of writing there are 20 layers within this list. Please try to keep this from increasing. //22 and counting, good job guys var/overlays_standing[20] //For the standing stance + Most of the time we only wish to update one overlay: e.g. - we dropped the fireaxe out of our left hand and need to remove its icon from our mob e.g.2 - our hair colour has changed, so we need to update our hair icons on our mob @@ -13,21 +15,28 @@ In these cases, instead of updating every overlay using the old behaviour (regen the appropriate update_X proc. e.g. - update_l_hand() e.g.2 - update_hair() + Note: Recent changes by aranclanos+carn: update_icons() no longer needs to be called. the system is easier to use. update_icons() should not be called unless you absolutely -know- you need it. IN ALL OTHER CASES it's better to just call the specific update_X procs. + Note: The defines for layer numbers is now kept exclusvely in __DEFINES/misc.dm instead of being defined there, then redefined and undefiend everywhere else. If you need to change the layering of sprites (or add a new layer) that's where you should start. + All of this means that this code is more maintainable, faster and still fairly easy to use. + There are several things that need to be remembered: > Whenever we do something that should cause an overlay to update (which doesn't use standard procs ( i.e. you do something like l_hand = /obj/item/something new(src), rather than using the helper procs) You will need to call the relevant update_inv_* proc + All of these are named after the variable they update from. They are defined at the mob/ level like update_clothing was, so you won't cause undefined proc runtimes with usr.update_inv_wear_id() if the usr is a slime etc. Instead, it'll just return without doing any work. So no harm in calling it for slimes and such. + + > There are also these special cases: update_damage_overlays() //handles damage overlays for brute/burn damage update_body() //Handles updating your mob's body layer and mutant bodyparts @@ -35,30 +44,10 @@ There are several things that need to be remembered: //NOTE: update_mutantrace() is now merged into this! update_hair() //Handles updating your hair overlay (used to be update_face, but mouth and eyes were merged into update_body()) + + */ -//DAMAGE OVERLAYS -//constructs damage icon for each organ from mask * damage field and saves it in our overlays_ lists -/mob/living/carbon/human/update_damage_overlays() - remove_overlay(DAMAGE_LAYER) - - var/image/standing = image("icon"='icons/mob/dam_human.dmi', "icon_state"="blank", "layer"=-DAMAGE_LAYER) - overlays_standing[DAMAGE_LAYER] = standing - - var/dmgoverlaytype = "" - if(dna.species.exotic_damage_overlay) - dmgoverlaytype = dna.species.exotic_damage_overlay + "_" - - for(var/X in bodyparts) - var/obj/item/bodypart/BP = X - if(BP.brutestate) - standing.overlays += "[dmgoverlaytype][BP.body_zone]_[BP.brutestate]0" //we're adding icon_states of the base image as overlays - if(BP.burnstate) - standing.overlays += "[dmgoverlaytype][BP.body_zone]_0[BP.burnstate]" - - apply_overlay(DAMAGE_LAYER) - - //HAIR OVERLAY /mob/living/carbon/human/update_hair() dna.species.handle_hair(src) @@ -68,47 +57,14 @@ There are several things that need to be remembered: dna.species.handle_mutant_bodyparts(src) -/mob/living/carbon/human/proc/update_body() +/mob/living/carbon/human/update_body() remove_overlay(BODY_LAYER) dna.species.handle_body(src) - update_body_parts() + ..() /mob/living/carbon/human/update_fire() ..("Standing") -/mob/living/carbon/human/proc/update_body_parts() - //CHECK FOR UPDATE - var/oldkey = icon_render_key - icon_render_key = generate_icon_render_key() - if(oldkey == icon_render_key) - return - - remove_overlay(BODYPARTS_LAYER) - - //LOAD ICONS - if(limb_icon_cache[icon_render_key]) - load_limb_from_cache() - update_damage_overlays() - update_mutant_bodyparts() - update_hair() - return - - //GENERATE NEW LIMBS - var/list/new_limbs = list() - for(var/X in bodyparts) - var/obj/item/bodypart/BP = X - if(!BP.no_update) - BP.update_limb() - var/image/temp = BP.get_limb_icon() - if(temp) - new_limbs += temp - if(new_limbs.len) - overlays_standing[BODYPARTS_LAYER] = new_limbs - limb_icon_cache[icon_render_key] = new_limbs - - apply_overlay(BODYPARTS_LAYER) - update_damage_overlays() - /* --------------------------------------- */ //For legacy support. @@ -130,6 +86,7 @@ There are several things that need to be remembered: update_inv_back() update_inv_wear_suit() update_inv_pockets() + update_inv_neck() update_transform() //mutations update_mutations_overlay() @@ -148,10 +105,11 @@ There are several things that need to be remembered: if(istype(w_uniform, /obj/item/clothing/under)) var/obj/item/clothing/under/U = w_uniform + U.screen_loc = ui_iclothing if(client && hud_used && hud_used.hud_shown) - if(hud_used.inventory_shown) //if the inventory is open ... - U.screen_loc = ui_iclothing //...draw the item in the inventory screen - client.screen += w_uniform //Either way, add the item to the HUD + if(hud_used.inventory_shown) + client.screen += w_uniform + update_observer_view(w_uniform,1) if(wear_suit && (wear_suit.flags_inv & HIDEJUMPSUIT)) return @@ -160,8 +118,10 @@ There are several things that need to be remembered: var/t_color = U.item_color if(!t_color) t_color = U.icon_state - if(U.adjusted) + if(U.adjusted == ALT_STYLE) t_color = "[t_color]_d" + else if(U.adjusted == DIGITIGRADE_STYLE) + t_color = "[t_color]_l" var/image/standing @@ -181,6 +141,7 @@ There are several things that need to be remembered: unEquip(thing) apply_overlay(UNIFORM_LAYER) + update_mutant_bodyparts() /mob/living/carbon/human/update_inv_wear_id() @@ -191,9 +152,10 @@ There are several things that need to be remembered: inv.update_icon() if(wear_id) + wear_id.screen_loc = ui_id if(client && hud_used && hud_used.hud_shown) - wear_id.screen_loc = ui_id client.screen += wear_id + update_observer_view(wear_id) //TODO: add an icon file for ID slot stuff, so it's less snowflakey var/image/standing = wear_id.build_worn_icon(state = wear_id.item_state, default_layer = ID_LAYER, default_icon_file = 'icons/mob/mob.dmi') @@ -206,18 +168,25 @@ There are several things that need to be remembered: remove_overlay(GLOVES_LAYER) if(get_num_arms() <2) + if(!gloves && blood_DNA) + if(has_left_hand()) + overlays_standing[GLOVES_LAYER] = image("icon"='icons/effects/blood.dmi', "icon_state"="bloodyhands_left", "layer"=-GLOVES_LAYER) + apply_overlay(GLOVES_LAYER) + else if(has_right_hand()) + overlays_standing[GLOVES_LAYER] = image("icon"='icons/effects/blood.dmi', "icon_state"="bloodyhands_right", "layer"=-GLOVES_LAYER) + apply_overlay(GLOVES_LAYER) return - if(client && hud_used) + if(client && hud_used && hud_used.inv_slots[slot_gloves]) var/obj/screen/inventory/inv = hud_used.inv_slots[slot_gloves] inv.update_icon() if(gloves) + gloves.screen_loc = ui_gloves if(client && hud_used && hud_used.hud_shown) - if(hud_used.inventory_shown) //if the inventory is open ... - gloves.screen_loc = ui_gloves //...draw the item in the inventory screen - client.screen += gloves //Either way, add the item to the HUD - + if(hud_used.inventory_shown) + client.screen += gloves + update_observer_view(gloves,1) var/t_state = gloves.item_state if(!t_state) t_state = gloves.icon_state @@ -233,7 +202,6 @@ There are several things that need to be remembered: apply_overlay(GLOVES_LAYER) - /mob/living/carbon/human/update_inv_glasses() remove_overlay(GLASSES_LAYER) @@ -245,11 +213,11 @@ There are several things that need to be remembered: inv.update_icon() if(glasses) + glasses.screen_loc = ui_glasses //...draw the item in the inventory screen if(client && hud_used && hud_used.hud_shown) if(hud_used.inventory_shown) //if the inventory is open ... - glasses.screen_loc = ui_glasses //...draw the item in the inventory screen - client.screen += glasses //Either way, add the item to the HUD - + client.screen += glasses //Either way, add the item to the HUD + update_observer_view(glasses,1) if(!(head && (head.flags_inv & HIDEEYES)) && !(wear_mask && (wear_mask.flags_inv & HIDEEYES))) var/image/standing = glasses.build_worn_icon(state = glasses.icon_state, default_layer = GLASSES_LAYER, default_icon_file = 'icons/mob/eyes.dmi') @@ -269,10 +237,11 @@ There are several things that need to be remembered: inv.update_icon() if(ears) + ears.screen_loc = ui_ears //move the item to the appropriate screen loc if(client && hud_used && hud_used.hud_shown) - if(hud_used.inventory_shown) //if the inventory is open ... - ears.screen_loc = ui_ears //...draw the item in the inventory screen - client.screen += ears //Either way, add the item to the HUD + if(hud_used.inventory_shown) //if the inventory is open + client.screen += ears //add it to the client's screen + update_observer_view(ears,1) var/image/standing = ears.build_worn_icon(state = ears.icon_state, default_layer = EARS_LAYER, default_icon_file = 'icons/mob/ears.dmi') overlays_standing[EARS_LAYER] = standing @@ -291,11 +260,11 @@ There are several things that need to be remembered: inv.update_icon() if(shoes) + shoes.screen_loc = ui_shoes //move the item to the appropriate screen loc if(client && hud_used && hud_used.hud_shown) - if(hud_used.inventory_shown) //if the inventory is open ... - shoes.screen_loc = ui_shoes //...draw the item in the inventory screen - client.screen += shoes //Either way, add the item to the HUD - + if(hud_used.inventory_shown) //if the inventory is open + client.screen += shoes //add it to client's screen + update_observer_view(shoes,1) var/image/standing = shoes.build_worn_icon(state = shoes.icon_state, default_layer = SHOES_LAYER, default_icon_file = 'icons/mob/feet.dmi') overlays_standing[SHOES_LAYER] = standing @@ -310,10 +279,10 @@ There are several things that need to be remembered: inv.update_icon() if(s_store) + s_store.screen_loc = ui_sstore1 if(client && hud_used && hud_used.hud_shown) - s_store.screen_loc = ui_sstore1 client.screen += s_store - + update_observer_view(s_store) var/t_state = s_store.item_state if(!t_state) t_state = s_store.icon_state @@ -322,19 +291,10 @@ There are several things that need to be remembered: apply_overlay(SUIT_STORE_LAYER) - /mob/living/carbon/human/update_inv_head() - remove_overlay(HEAD_LAYER) - if(!get_bodypart("head")) //Decapitated - return ..() - if(client && hud_used) - var/obj/screen/inventory/inv = hud_used.inv_slots[slot_head] - inv.update_icon() - update_mutant_bodyparts() - /mob/living/carbon/human/update_inv_belt() remove_overlay(BELT_LAYER) @@ -342,11 +302,12 @@ There are several things that need to be remembered: var/obj/screen/inventory/inv = hud_used.inv_slots[slot_belt] inv.update_icon() - if(hud_used.hud_shown && belt) - client.screen += belt - belt.screen_loc = ui_belt - if(belt) + belt.screen_loc = ui_belt + if(client && hud_used && hud_used.hud_shown) + client.screen += belt + update_observer_view(belt) + var/t_state = belt.item_state if(!t_state) t_state = belt.icon_state @@ -367,17 +328,17 @@ There are several things that need to be remembered: inv.update_icon() if(istype(wear_suit, /obj/item/clothing/suit)) + wear_suit.screen_loc = ui_oclothing if(client && hud_used && hud_used.hud_shown) - if(hud_used.inventory_shown) //if the inventory is open ... - wear_suit.screen_loc = ui_oclothing //TODO //...draw the item in the inventory screen - client.screen += wear_suit //Either way, add the item to the HUD + if(hud_used.inventory_shown) + client.screen += wear_suit + update_observer_view(wear_suit,1) var/image/standing = wear_suit.build_worn_icon(state = wear_suit.icon_state, default_layer = SUIT_LAYER, default_icon_file = 'icons/mob/suit.dmi') overlays_standing[SUIT_LAYER] = standing - if(istype(wear_suit, /obj/item/clothing/suit/straight_jacket)) - drop_l_hand() - drop_r_hand() + if(wear_suit.breakouttime) //suit is restraining + drop_all_held_items() update_hair() update_mutant_bodyparts() @@ -395,31 +356,23 @@ There are several things that need to be remembered: inv = hud_used.inv_slots[slot_r_store] inv.update_icon() - if(hud_used.hud_shown) - if(l_store) + if(l_store) + l_store.screen_loc = ui_storage1 + if(hud_used.hud_shown) client.screen += l_store - l_store.screen_loc = ui_storage1 + update_observer_view(l_store) - if(r_store) + if(r_store) + r_store.screen_loc = ui_storage2 + if(hud_used.hud_shown) client.screen += r_store - r_store.screen_loc = ui_storage2 + update_observer_view(r_store) /mob/living/carbon/human/update_inv_wear_mask() - remove_overlay(FACEMASK_LAYER) - if(!get_bodypart("head")) //Decapitated - return ..() - if(client && hud_used) - var/obj/screen/inventory/inv = hud_used.inv_slots[slot_wear_mask] - inv.update_icon() - update_mutant_bodyparts() + update_mutant_bodyparts() //e.g. upgate needed because mask now hides lizard snout -/mob/living/carbon/human/update_inv_handcuffed() - remove_overlay(HANDCUFF_LAYER) - if(handcuffed) - overlays_standing[HANDCUFF_LAYER] = image("icon"='icons/mob/mob.dmi', "icon_state"="handcuff1", "layer"=-HANDCUFF_LAYER) - apply_overlay(HANDCUFF_LAYER) /mob/living/carbon/human/update_inv_legcuffed() remove_overlay(LEGCUFF_LAYER) @@ -439,7 +392,7 @@ There are several things that need to be remembered: /mob/living/carbon/human/proc/get_overlays_copy(list/unwantedLayers) var/list/out = new - for(var/i=1;i<=TOTAL_LAYERS;i++) + for(var/i in 1 to TOTAL_LAYERS) if(overlays_standing[i]) if(i in unwantedLayers) continue @@ -451,23 +404,36 @@ There are several things that need to be remembered: //update whether our head item appears on our hud. /mob/living/carbon/human/update_hud_head(obj/item/I) + I.screen_loc = ui_head if(client && hud_used && hud_used.hud_shown) if(hud_used.inventory_shown) - I.screen_loc = ui_head - client.screen += I + client.screen += I + update_observer_view(I,1) //update whether our mask item appears on our hud. /mob/living/carbon/human/update_hud_wear_mask(obj/item/I) + I.screen_loc = ui_mask if(client && hud_used && hud_used.hud_shown) if(hud_used.inventory_shown) - I.screen_loc = ui_mask - client.screen += I + client.screen += I + update_observer_view(I,1) + +//update whether our neck item appears on our hud. +/mob/living/carbon/human/update_hud_neck(obj/item/I) + I.screen_loc = ui_neck + if(client && hud_used && hud_used.hud_shown) + if(hud_used.inventory_shown) + client.screen += I + update_observer_view(I,1) //update whether our back item appears on our hud. /mob/living/carbon/human/update_hud_back(obj/item/I) + I.screen_loc = ui_back if(client && hud_used && hud_used.hud_shown) - I.screen_loc = ui_back client.screen += I + update_observer_view(I) + + /* @@ -477,15 +443,23 @@ covers: centering large images layering images on custom layers building images from custom icon files + By Remie Richards (yes I'm taking credit because this just removed 90% of the copypaste in update_icons()) + state: A string to use as the state, this is FAR too complex to solve in this proc thanks to shitty old code so it's specified as an argument instead. + default_layer: The layer to draw this on if no other layer is specified + default_icon_file: The icon file to draw states from if no other icon file is specified + isinhands: If true then alternate_worn_icon is skipped so that default_icon_file is used, in this situation default_icon_file is expected to match either the lefthand_ or righthand_ file var + femalueuniform: A value matching a uniform item's fitted var, if this is anything but NO_FEMALE_UNIFORM, we generate/load female uniform sprites matching all previously decided variables + + */ /obj/item/proc/build_worn_icon(var/state = "", var/default_layer = 0, var/default_icon_file = null, var/isinhands = FALSE, var/femaleuniform = NO_FEMALE_UNIFORM) @@ -517,41 +491,42 @@ generate/load female uniform sprites matching all previously decided variables standing = center_image(standing, isinhands ? inhand_x_dimension : worn_x_dimension, isinhands ? inhand_y_dimension : worn_y_dimension) + //Handle held offsets + var/mob/M = loc + if(istype(M)) + var/list/L = get_held_offsets() + if(L) + standing.pixel_x += L["x"] //+= because of center()ing + standing.pixel_y += L["y"] + standing.alpha = alpha standing.color = color return standing +/obj/item/proc/get_held_offsets() + var/list/L + if(ismob(loc)) + var/mob/M = loc + L = M.get_item_offsets_for_index(M.get_held_index_of_item(src)) + return L +//Can't think of a better way to do this, sadly +/mob/proc/get_item_offsets_for_index(i) + switch(i) + if(3) //odd = left hands + return list("x" = 0, "y" = 16) + if(4) //even = right hands + return list("x" = 0, "y" = 16) + else //No offsets or Unwritten number of hands + return list("x" = 0, "y" = 0) - - -///////////////////// -// Limb Icon Cache // -///////////////////// -/* - Called from update_body_parts() these procs handle the limb icon cache. - the limb icon cache adds an icon_render_key to a human mob, it represents: - - skin_tone (if applicable) - - gender - - limbs (stores as the limb name and whether it is removed/fine, organic/robotic) - These procs only store limbs as to increase the number of matching icon_render_keys - This cache exists because drawing 6/7 icons for humans constantly is quite a waste - See RemieRichards on irc.rizon.net #coderbus -*/ - -var/global/list/limb_icon_cache = list() - -/mob/living/carbon/human - var/icon_render_key = "" - - //produces a key based on the human's limbs -/mob/living/carbon/human/proc/generate_icon_render_key() +/mob/living/carbon/human/generate_icon_render_key() . = "[dna.species.limbs_id]" if(dna.check_mutation(HULK)) @@ -562,8 +537,6 @@ var/global/list/limb_icon_cache = list() . += "-coloured-[dna.species.fixed_mut_color]" else if(dna.features["mcolor"]) . += "-coloured-[dna.features["mcolor"]]" - else if(dna.features["mcolor"] && dna.species.use_skintones) - . += "-coloured-[skin_tone]" else . += "-not_coloured" @@ -572,18 +545,35 @@ var/global/list/limb_icon_cache = list() for(var/X in bodyparts) var/obj/item/bodypart/BP = X . += "-[BP.body_zone]" - if(BP.status == ORGAN_ORGANIC) + if(BP.status == BODYPART_ORGANIC) . += "-organic" else . += "-robotic" + if(BP.use_digitigrade) + . += "-digitigrade[BP.use_digitigrade]" + if(BP.dmg_overlay_type) + . += "-[BP.dmg_overlay_type]" if(disabilities & HUSK) . += "-husk" +/mob/living/carbon/human/load_limb_from_cache() + ..() + update_hair() -//change the human's icon to the one matching it's key -/mob/living/carbon/human/proc/load_limb_from_cache() - if(limb_icon_cache[icon_render_key]) - remove_overlay(BODYPARTS_LAYER) - overlays_standing[BODYPARTS_LAYER] = limb_icon_cache[icon_render_key] - apply_overlay(BODYPARTS_LAYER) \ No newline at end of file + + +/mob/living/carbon/human/proc/update_observer_view(obj/item/I, inventory) + if(observers && observers.len) + for(var/M in observers) + var/mob/dead/observe = M + if(observe.client && observe.client.eye == src) + if(observe.hud_used) + if(inventory && !observe.hud_used.inventory_shown) + continue + observe.client.screen += I + else + observers -= observe + if(!observers.len) + observers = null + break diff --git a/code/modules/mob/living/carbon/human/whisper.dm b/code/modules/mob/living/carbon/human/whisper.dm index 9a86dbca5a..654e0da190 100644 --- a/code/modules/mob/living/carbon/human/whisper.dm +++ b/code/modules/mob/living/carbon/human/whisper.dm @@ -37,12 +37,11 @@ // If whispering your last words, limit the whisper based on how close you are to death. if(critical) - var/health_diff = round(-config.health_threshold_dead + health) + var/health_diff = round(-HEALTH_THRESHOLD_DEAD + health) // If we cut our message short, abruptly end it with a-.. var/message_len = length(message) message = copytext(message, 1, health_diff) + "[message_len > health_diff ? "-.." : "..."]" message = Ellipsis(message, 10, 1) - whispers = "whispers in their final breath" message = treat_message(message) @@ -60,12 +59,13 @@ watching -= eavesdropping var/rendered - - rendered = "[src.name] [whispers] something." + whispers = critical ? "whispers something in [p_their()] final breath." : "whispers something." + rendered = "[src.name] [whispers]" for(var/mob/M in watching) M.show_message(rendered, 2) var/spans = list(SPAN_ITALICS) + whispers = critical ? "whispers in [p_their()] final breath" : "whispers" rendered = "[GetVoice()][alt_name] [whispers], \"[attach_spans(message, spans)]\"" for(var/atom/movable/AM in listening) diff --git a/code/modules/mob/living/carbon/inventory.dm b/code/modules/mob/living/carbon/inventory.dm index 137dfcaadc..728720068e 100644 --- a/code/modules/mob/living/carbon/inventory.dm +++ b/code/modules/mob/living/carbon/inventory.dm @@ -4,16 +4,14 @@ return back if(slot_wear_mask) return wear_mask + if(slot_neck) + return wear_neck if(slot_head) return head if(slot_handcuffed) return handcuffed if(slot_legcuffed) return legcuffed - if(slot_l_hand) - return l_hand - if(slot_r_hand) - return r_hand return null @@ -24,19 +22,26 @@ if(!istype(I)) return - if(I == l_hand) - l_hand = null - else if(I == r_hand) - r_hand = null + var/index = get_held_index_of_item(I) + if(index) + held_items[index] = null if(I.pulledby) I.pulledby.stop_pulling() - I.screen_loc = null // will get moved if inventory is visible + I.screen_loc = null + if(client) + client.screen -= I + if(observers && observers.len) + for(var/M in observers) + var/mob/dead/observe = M + if(observe.client) + observe.client.screen -= I I.loc = src - I.equipped(src, slot) I.layer = ABOVE_HUD_LAYER - + I.plane = ABOVE_HUD_PLANE + I.appearance_flags |= NO_CLIENT_COLOR + var/not_handled = FALSE switch(slot) if(slot_back) back = I @@ -47,25 +52,34 @@ if(slot_head) head = I head_update(I) + if(slot_neck) + wear_neck = I + update_inv_neck(I) if(slot_handcuffed) handcuffed = I update_handcuffed() if(slot_legcuffed) legcuffed = I update_inv_legcuffed() - if(slot_l_hand) - l_hand = I - update_inv_l_hand() - if(slot_r_hand) - r_hand = I - update_inv_r_hand() + if(slot_hands) + put_in_hands(I) + update_inv_hands() if(slot_in_backpack) - if(I == get_active_hand()) - unEquip(I) - I.loc = back + var/obj/item/weapon/storage/B = back + var/prev_jimmies = B.rustle_jimmies + B.rustle_jimmies = FALSE //don't conspicously rustle + B.handle_item_insertion(I, 1, src) + B.rustle_jimmies = prev_jimmies else - return 1 + not_handled = TRUE + //Item has been handled at this point and equipped callback can be safely called + //We cannot call it for items that have not been handled as they are not yet correctly + //in a slot (handled further down inheritance chain, probably living/carbon/human/equip_to_slot + if(!not_handled) + I.equipped(src, slot) + + return not_handled /mob/living/carbon/unEquip(obj/item/I) . = ..() //Sets the default return value to what the parent returns. @@ -81,6 +95,9 @@ else if(I == wear_mask) wear_mask = null wear_mask_update(I, toggle_off = 1) + if(I == wear_neck) + wear_neck = null + update_inv_neck(I) else if(I == handcuffed) handcuffed = null if(buckled && buckled.buckle_requires_restraints) @@ -108,3 +125,4 @@ if(I.flags_inv & HIDEMASK || forced) update_inv_wear_mask() update_inv_head() + diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index 46196c0bbe..b146f68603 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -4,24 +4,25 @@ if (notransform) return - if(!loc) - return if(damageoverlaytemp) damageoverlaytemp = 0 update_damage_hud() - if(..()) - . = 1 - + if(..()) //not dead handle_blood() - for(var/obj/item/organ/O in internal_organs) + if(stat != DEAD) + for(var/V in internal_organs) + var/obj/item/organ/O = V O.on_life() //Updates the number of stored chemicals for powers handle_changeling() + if(stat != DEAD) + return 1 + /////////////// // BREATHING // /////////////// @@ -42,15 +43,15 @@ if(istype(loc, /obj/machinery/atmospherics/components/unary/cryo_cell)) return + if(ismob(loc)) return + var/datum/gas_mixture/environment if(loc) environment = loc.return_air() - if(ismob(loc)) return - var/datum/gas_mixture/breath - if(health <= config.health_threshold_crit || (pulledby && pulledby.grab_state >= GRAB_KILL && !getorganslot("breathing_tube"))) + if(health <= HEALTH_THRESHOLD_CRIT || (pulledby && pulledby.grab_state >= GRAB_KILL && !getorganslot("breathing_tube"))) losebreath++ //Suffocate @@ -284,7 +285,6 @@ /mob/living/carbon/handle_stomach() -/* set waitfor = 0 for(var/mob/living/M in stomach_contents) if(M.loc != src) @@ -300,7 +300,7 @@ if(!(M.status_flags & GODMODE)) M.adjustBruteLoss(5) nutrition += 10 -*/ + //this updates all special effects: stunned, sleeping, weakened, druggy, stuttering, etc.. /mob/living/carbon/handle_status_effects() ..() @@ -314,7 +314,7 @@ if(sleeping) handle_dreams() AdjustSleeping(-1) - if(prob(10) && health>config.health_threshold_crit) + if(prob(10) && health>HEALTH_THRESHOLD_CRIT) emote("snore") var/restingpwr = 1 + 4 * resting @@ -389,8 +389,6 @@ var/body_temperature_difference = 310.15 - bodytemperature switch(bodytemperature) if(-INFINITY to 260.15) //260.15 is 310.15 - 50, the temperature where you start to feel effects. - if(nutrition >= 2) //If we are very, very cold we'll use up quite a bit of nutriment to heat us up. - nutrition -= 2 bodytemperature += max((body_temperature_difference * metabolism_efficiency / BODYTEMP_AUTORECOVERY_DIVISOR), BODYTEMP_AUTORECOVERY_MINIMUM) if(260.15 to 310.15) bodytemperature += max(body_temperature_difference * metabolism_efficiency / BODYTEMP_AUTORECOVERY_DIVISOR, min(body_temperature_difference, BODYTEMP_AUTORECOVERY_MINIMUM/4)) diff --git a/code/modules/mob/living/carbon/monkey/inventory.dm b/code/modules/mob/living/carbon/monkey/inventory.dm index fad731d880..46de68dddf 100644 --- a/code/modules/mob/living/carbon/monkey/inventory.dm +++ b/code/modules/mob/living/carbon/monkey/inventory.dm @@ -1,32 +1,34 @@ /mob/living/carbon/monkey/can_equip(obj/item/I, slot, disable_warning = 0) switch(slot) - if(slot_l_hand) - if(l_hand) - return 0 - return 1 - if(slot_r_hand) - if(r_hand) - return 0 - return 1 + if(slot_hands) + if(get_empty_held_indexes()) + return TRUE + return FALSE if(slot_wear_mask) if(wear_mask) - return 0 + return FALSE if( !(I.slot_flags & SLOT_MASK) ) - return 0 - return 1 + return FALSE + return TRUE + if(slot_neck) + if(wear_neck) + return FALSE + if( !(I.slot_flags & SLOT_NECK) ) + return FALSE + return TRUE if(slot_head) if(head) - return 0 + return FALSE if( !(I.slot_flags & SLOT_HEAD) ) - return 0 - return 1 + return FALSE + return TRUE if(slot_back) if(back) - return 0 + return FALSE if( !(I.slot_flags & SLOT_BACK) ) - return 0 - return 1 - return 0 //Unsupported slot + return FALSE + return TRUE + return FALSE //Unsupported slot diff --git a/code/modules/mob/living/carbon/monkey/life.dm b/code/modules/mob/living/carbon/monkey/life.dm index 40f66b6f3d..a8e581700b 100644 --- a/code/modules/mob/living/carbon/monkey/life.dm +++ b/code/modules/mob/living/carbon/monkey/life.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 + /mob/living/carbon/monkey @@ -22,22 +22,24 @@ if (radiation) if (radiation > 100) + if(!weakened) + emote("collapse") Weaken(10) src << "You feel weak." - emote("collapse") switch(radiation) if(50 to 75) if(prob(5)) + if(!weakened) + emote("collapse") Weaken(3) src << "You feel weak." - emote("collapse") if(75 to 100) if(prob(1)) src << "You mutate!" - randmutb(src) + randmutb() emote("gasp") domutcheck() ..() @@ -81,29 +83,29 @@ switch(bodytemperature) if(360 to 400) throw_alert("temp", /obj/screen/alert/hot, 1) - adjustFireLoss(2) + apply_damage(HEAT_DAMAGE_LEVEL_1, BURN) if(400 to 460) throw_alert("temp", /obj/screen/alert/hot, 2) - adjustFireLoss(3) + apply_damage(HEAT_DAMAGE_LEVEL_2, BURN) if(460 to INFINITY) throw_alert("temp", /obj/screen/alert/hot, 3) if(on_fire) - adjustFireLoss(8) + apply_damage(HEAT_DAMAGE_LEVEL_3, BURN) else - adjustFireLoss(3) + apply_damage(HEAT_DAMAGE_LEVEL_2, BURN) else if(bodytemperature < BODYTEMP_COLD_DAMAGE_LIMIT) if(!istype(loc, /obj/machinery/atmospherics/components/unary/cryo_cell)) switch(bodytemperature) if(200 to 260) throw_alert("temp", /obj/screen/alert/cold, 1) - adjustFireLoss(0.5) + apply_damage(COLD_DAMAGE_LEVEL_1, BURN) if(120 to 200) throw_alert("temp", /obj/screen/alert/cold, 2) - adjustFireLoss(1.5) + apply_damage(COLD_DAMAGE_LEVEL_2, BURN) if(-INFINITY to 120) throw_alert("temp", /obj/screen/alert/cold, 3) - adjustFireLoss(3) + apply_damage(COLD_DAMAGE_LEVEL_3, BURN) else clear_alert("temp") @@ -140,7 +142,29 @@ return 1 /mob/living/carbon/monkey/handle_fire() - if(..()) - return - bodytemperature += BODYTEMP_HEATING_MAX - return + . = ..() + if(on_fire) + + //the fire tries to damage the exposed clothes and items + var/list/burning_items = list() + //HEAD// + var/obj/item/clothing/head_clothes = null + if(wear_mask) + head_clothes = wear_mask + if(wear_neck) + head_clothes = wear_neck + if(head) + head_clothes = head + if(head_clothes) + burning_items += head_clothes + + if(back) + burning_items += back + + for(var/X in burning_items) + var/obj/item/I = X + if(!(I.resistance_flags & FIRE_PROOF)) + I.take_damage(fire_stacks, BURN, "fire", 0) + + bodytemperature += BODYTEMP_HEATING_MAX + diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index da603064d4..b20d4723b6 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -3,16 +3,20 @@ voice_name = "monkey" verb_say = "chimpers" icon = 'icons/mob/monkey.dmi' - icon_state = "monkey1" + icon_state = "" gender = NEUTER pass_flags = PASSTABLE languages_spoken = MONKEY languages_understood = MONKEY - ventcrawler = 1 + ventcrawler = VENTCRAWLER_NUDE butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey = 5, /obj/item/stack/sheet/animalhide/monkey = 1) type_of_meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey gib_type = /obj/effect/decal/cleanable/blood/gibs unique_name = 1 + 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) + + /mob/living/carbon/monkey/New() verbs += /mob/living/proc/mob_sleep @@ -22,24 +26,13 @@ gender = pick(MALE, FEMALE) real_name = name - //initialize limbs, currently only used to handle cavity implant surgery, no dismemberment. - bodyparts = newlist(/obj/item/bodypart/chest, /obj/item/bodypart/head, /obj/item/bodypart/l_arm, - /obj/item/bodypart/r_arm, /obj/item/bodypart/r_leg, /obj/item/bodypart/l_leg) - for(var/X in bodyparts) - var/obj/item/bodypart/O = X - O.owner = src + //initialize limbs + create_bodyparts() if(good_mutations.len) //genetic mutations have been set up. - initialize() + initialize() //initialize monkey dna - internal_organs += new /obj/item/organ/appendix - internal_organs += new /obj/item/organ/lungs - internal_organs += new /obj/item/organ/heart - internal_organs += new /obj/item/organ/brain - internal_organs += new /obj/item/organ/tongue - - for(var/obj/item/organ/I in internal_organs) - I.Insert(src) + create_internal_organs() ..() @@ -47,6 +40,15 @@ create_dna(src) dna.initialize_dna(random_blood_type()) + +/mob/living/carbon/monkey/create_internal_organs() + internal_organs += new /obj/item/organ/appendix + internal_organs += new /obj/item/organ/lungs + internal_organs += new /obj/item/organ/heart + internal_organs += new /obj/item/organ/brain + internal_organs += new /obj/item/organ/tongue + ..() + /mob/living/carbon/monkey/movement_delay() if(reagents) if(reagents.has_reagent("morphine")) @@ -64,133 +66,6 @@ . += (283.222 - bodytemperature) / 10 * 1.75 return . + config.monkey_delay -/mob/living/carbon/monkey/attack_paw(mob/living/M) - if(..()) //successful monkey bite. - var/damage = rand(1, 5) - if (stat != DEAD) - adjustBruteLoss(damage) - updatehealth() - return - -/mob/living/carbon/monkey/attack_larva(mob/living/carbon/alien/larva/L) - if(..()) //successful larva bite. - var/damage = rand(1, 3) - if(stat != DEAD) - L.amount_grown = min(L.amount_grown + damage, L.max_grown) - adjustBruteLoss(damage) - updatehealth() - -/mob/living/carbon/monkey/attack_hand(mob/living/carbon/human/M) - if(..()) //To allow surgery to return properly. - return - - switch(M.a_intent) - if("help") - help_shake_act(M) - if("grab") - grabbedby(M) - if("harm") - M.do_attack_animation(src) - if (prob(75)) - visible_message("[M] has punched [name]!", \ - "[M] has punched [name]!") - - playsound(loc, "punch", 25, 1, -1) - var/damage = rand(5, 10) - if (prob(40)) - damage = rand(10, 15) - if ( (paralysis < 5) && (health > 0) ) - Paralyse(rand(10, 15)) - visible_message("[M] has knocked out [name]!", \ - "[M] has knocked out [name]!") - adjustBruteLoss(damage) - add_logs(M, src, "attacked") - updatehealth() - else - playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1) - visible_message("[M] has attempted to punch [name]!", \ - "[M] has attempted to punch [name]!") - if("disarm") - if (!( paralysis )) - M.do_attack_animation(src) - if (prob(25)) - Paralyse(2) - playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) - add_logs(M, src, "pushed") - visible_message("[M] has pushed down [src]!", \ - "[M] has pushed down [src]!") - else - if(drop_item()) - playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) - visible_message("[M] has disarmed [src]!", \ - "[M] has disarmed [src]!") - -/mob/living/carbon/monkey/attack_alien(mob/living/carbon/alien/humanoid/M) - if(..()) //if harm or disarm intent. - if (M.a_intent == "harm") - if ((prob(95) && health > 0)) - playsound(loc, 'sound/weapons/slice.ogg', 25, 1, -1) - var/damage = rand(15, 30) - if (damage >= 25) - damage = rand(20, 40) - if (paralysis < 15) - Paralyse(rand(10, 15)) - visible_message("[M] has wounded [name]!", \ - "[M] has wounded [name]!") - else - visible_message("[M] has slashed [name]!", \ - "[M] has slashed [name]!") - - if (stat != DEAD) - adjustBruteLoss(damage) - updatehealth() - add_logs(M, src, "attacked") - else - playsound(loc, 'sound/weapons/slashmiss.ogg', 25, 1, -1) - visible_message("[M] has attempted to lunge at [name]!", \ - "[M] has attempted to lunge at [name]!") - - if (M.a_intent == "disarm") - playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1) - if(prob(95)) - Weaken(10) - visible_message("[M] has tackled down [name]!", \ - "[M] has tackled down [name]!") - else - if(drop_item()) - visible_message("[M] has disarmed [name]!", \ - "[M] has disarmed [name]!") - add_logs(M, src, "disarmed") - updatehealth() - return - -/mob/living/carbon/monkey/attack_animal(mob/living/simple_animal/M) - if(..()) - var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) - switch(M.melee_damage_type) - if(BRUTE) - adjustBruteLoss(damage) - if(BURN) - adjustFireLoss(damage) - if(TOX) - adjustToxLoss(damage) - if(OXY) - adjustOxyLoss(damage) - if(CLONE) - adjustCloneLoss(damage) - if(STAMINA) - adjustStaminaLoss(damage) - updatehealth() - - -/mob/living/carbon/monkey/attack_slime(mob/living/simple_animal/slime/M) - if(..()) //successful slime attack - var/damage = rand(5, 35) - if(M.is_adult) - damage = rand(20, 40) - adjustBruteLoss(damage) - updatehealth() - /mob/living/carbon/monkey/Stat() ..() if(statpanel("Status")) @@ -209,24 +84,6 @@ internal = null return -/mob/living/carbon/monkey/ex_act(severity, target) - ..() - switch(severity) - if(1) - gib() - return - if(2) - adjustBruteLoss(60) - adjustFireLoss(60) - adjustEarDamage(30,120) - if(3) - adjustBruteLoss(30) - if (prob(50)) - Paralyse(10) - adjustEarDamage(15,60) - - updatehealth() - return /mob/living/carbon/monkey/IsAdvancedToolUser()//Unless its monkey mode monkeys cant use advanced tools return 0 @@ -249,46 +106,27 @@ //Lasertag bullshit if(lasercolor) if(lasercolor == "b")//Lasertag turrets target the opposing team, how great is that? -Sieve - if((istype(r_hand,/obj/item/weapon/gun/energy/laser/redtag)) || (istype(l_hand,/obj/item/weapon/gun/energy/laser/redtag))) + if(is_holding_item_of_type(/obj/item/weapon/gun/energy/laser/redtag)) threatcount += 4 if(lasercolor == "r") - if((istype(r_hand,/obj/item/weapon/gun/energy/laser/bluetag)) || (istype(l_hand,/obj/item/weapon/gun/energy/laser/bluetag))) + if(is_holding_item_of_type(/obj/item/weapon/gun/energy/laser/bluetag)) threatcount += 4 return threatcount //Check for weapons if(judgebot.weaponscheck) - if(judgebot.check_for_weapons(l_hand)) - threatcount += 4 - if(judgebot.check_for_weapons(r_hand)) - threatcount += 4 + for(var/obj/item/I in held_items) + if(judgebot.check_for_weapons(I)) + threatcount += 4 //mindshield implants imply trustworthyness - if(isloyal(src)) + if(isloyal()) threatcount -= 1 return threatcount -/mob/living/carbon/monkey/acid_act(acidpwr, toxpwr, acid_volume) - if(wear_mask) - if(!wear_mask.unacidable) - wear_mask.acid_act(acidpwr) - update_inv_wear_mask() - else - src << "Your mask protects you from the acid." - return - - take_organ_damage(min(6*toxpwr, acid_volume * acidpwr/10)) - -/mob/living/carbon/monkey/help_shake_act(mob/living/carbon/M) - if(health < 0 && ishuman(M)) - var/mob/living/carbon/human/H = M - H.do_cpr(src) - else - ..() - /mob/living/carbon/monkey/get_permeability_protection() var/protection = 0 if(head) @@ -298,13 +136,6 @@ protection = protection/7 //the rest of the body isn't covered. return protection -/mob/living/carbon/monkey/check_eye_prot() - var/number = ..() - if(istype(src.wear_mask, /obj/item/clothing/mask)) - var/obj/item/clothing/mask/MFP = src.wear_mask - number += MFP.flash_protect - return number - /mob/living/carbon/monkey/fully_heal(admin_revive = 0) if(!getorganslot("lungs")) var/obj/item/organ/lungs/L = new() diff --git a/code/modules/mob/living/carbon/monkey/monkey_defense.dm b/code/modules/mob/living/carbon/monkey/monkey_defense.dm new file mode 100644 index 0000000000..ecf5ce584a --- /dev/null +++ b/code/modules/mob/living/carbon/monkey/monkey_defense.dm @@ -0,0 +1,216 @@ + +/mob/living/carbon/monkey/get_eye_protection() + var/number = ..() + if(istype(src.wear_mask, /obj/item/clothing/mask)) + var/obj/item/clothing/mask/MFP = src.wear_mask + number += MFP.flash_protect + return number + +/mob/living/carbon/monkey/help_shake_act(mob/living/carbon/M) + if(health < 0 && ishuman(M)) + var/mob/living/carbon/human/H = M + H.do_cpr(src) + else + ..() + +/mob/living/carbon/monkey/attack_paw(mob/living/M) + if(..()) //successful monkey bite. + var/dam_zone = pick("chest", "l_hand", "r_hand", "l_leg", "r_leg") + var/obj/item/bodypart/affecting = get_bodypart(ran_zone(dam_zone)) + if(!affecting) + affecting = get_bodypart("chest") + if(M.limb_destroyer) + dismembering_strike(M, affecting.body_zone) + if(stat != DEAD) + var/dmg = rand(1, 5) + apply_damage(dmg, BRUTE, affecting) + damage_clothes(dmg, BRUTE, "melee", affecting.body_zone) + + + +/mob/living/carbon/monkey/attack_larva(mob/living/carbon/alien/larva/L) + if(..()) //successful larva bite. + var/damage = rand(1, 3) + if(stat != DEAD) + L.amount_grown = min(L.amount_grown + damage, L.max_grown) + var/obj/item/bodypart/affecting = get_bodypart(ran_zone(L.zone_selected)) + if(!affecting) + affecting = get_bodypart("chest") + apply_damage(damage, BRUTE, affecting) + damage_clothes(damage, BRUTE, "melee", affecting.body_zone) + +/mob/living/carbon/monkey/attack_hand(mob/living/carbon/human/M) + if(..()) //To allow surgery to return properly. + return + + switch(M.a_intent) + if("help") + help_shake_act(M) + if("grab") + grabbedby(M) + if("harm") + M.do_attack_animation(src, ATTACK_EFFECT_PUNCH) + if (prob(75)) + visible_message("[M] has punched [name]!", \ + "[M] has punched [name]!", null, COMBAT_MESSAGE_RANGE) + + playsound(loc, "punch", 25, 1, -1) + var/damage = rand(5, 10) + if (prob(40)) + damage = rand(10, 15) + if ( (paralysis < 5) && (health > 0) ) + Paralyse(rand(10, 15)) + visible_message("[M] has knocked out [name]!", \ + "[M] has knocked out [name]!", null, 5) + var/obj/item/bodypart/affecting = get_bodypart(ran_zone(M.zone_selected)) + if(!affecting) + affecting = get_bodypart("chest") + apply_damage(damage, BRUTE, affecting) + damage_clothes(damage, BRUTE, "melee", affecting.body_zone) + add_logs(M, src, "attacked") + + else + playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1) + visible_message("[M] has attempted to punch [name]!", \ + "[M] has attempted to punch [name]!", null, COMBAT_MESSAGE_RANGE) + if("disarm") + if (!paralysis) + M.do_attack_animation(src, ATTACK_EFFECT_DISARM) + if (prob(25)) + Paralyse(2) + playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) + add_logs(M, src, "pushed") + visible_message("[M] has pushed down [src]!", \ + "[M] has pushed down [src]!", null, COMBAT_MESSAGE_RANGE) + else + if(drop_item()) + playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) + visible_message("[M] has disarmed [src]!", \ + "[M] has disarmed [src]!", null, COMBAT_MESSAGE_RANGE) + +/mob/living/carbon/monkey/attack_alien(mob/living/carbon/alien/humanoid/M) + if(..()) //if harm or disarm intent. + if (M.a_intent == INTENT_HARM) + if ((prob(95) && health > 0)) + playsound(loc, 'sound/weapons/slice.ogg', 25, 1, -1) + var/damage = rand(15, 30) + if (damage >= 25) + damage = rand(20, 40) + if (paralysis < 15) + Paralyse(rand(10, 15)) + visible_message("[M] has wounded [name]!", \ + "[M] has wounded [name]!", null, COMBAT_MESSAGE_RANGE) + else + visible_message("[M] has slashed [name]!", \ + "[M] has slashed [name]!", null, COMBAT_MESSAGE_RANGE) + + var/obj/item/bodypart/affecting = get_bodypart(ran_zone(M.zone_selected)) + add_logs(M, src, "attacked") + if(!affecting) + affecting = get_bodypart("chest") + if(!dismembering_strike(M, affecting.body_zone)) //Dismemberment successful + return 1 + apply_damage(damage, BRUTE, affecting) + damage_clothes(damage, BRUTE, "melee", affecting.body_zone) + + else + playsound(loc, 'sound/weapons/slashmiss.ogg', 25, 1, -1) + visible_message("[M] has attempted to lunge at [name]!", \ + "[M] has attempted to lunge at [name]!", null, COMBAT_MESSAGE_RANGE) + if (M.a_intent == INTENT_DISARM) + playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1) + if(prob(95)) + Weaken(10) + visible_message("[M] has tackled down [name]!", \ + "[M] has tackled down [name]!", null, COMBAT_MESSAGE_RANGE) + else + if(drop_item()) + visible_message("[M] has disarmed [name]!", \ + "[M] has disarmed [name]!", null, COMBAT_MESSAGE_RANGE) + add_logs(M, src, "disarmed") + updatehealth() + + +/mob/living/carbon/monkey/attack_animal(mob/living/simple_animal/M) + if(..()) + var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) + var/dam_zone = dismembering_strike(M, pick("chest", "l_hand", "r_hand", "l_leg", "r_leg")) + if(!dam_zone) //Dismemberment successful + return 1 + var/obj/item/bodypart/affecting = get_bodypart(ran_zone(dam_zone)) + if(!affecting) + affecting = get_bodypart("chest") + apply_damage(damage, M.melee_damage_type, affecting) + damage_clothes(damage, M.melee_damage_type, "melee", affecting.body_zone) + + + +/mob/living/carbon/monkey/attack_slime(mob/living/simple_animal/slime/M) + if(..()) //successful slime attack + var/damage = rand(5, 35) + if(M.is_adult) + damage = rand(20, 40) + var/dam_zone = dismembering_strike(M, pick("head", "chest", "l_arm", "r_arm", "l_leg", "r_leg")) + if(!dam_zone) //Dismemberment successful + return 1 + var/obj/item/bodypart/affecting = get_bodypart(ran_zone(dam_zone)) + if(!affecting) + affecting = get_bodypart("chest") + apply_damage(damage, BRUTE, affecting) + damage_clothes(damage, BRUTE, "melee", affecting.body_zone) + + +/mob/living/carbon/monkey/acid_act(acidpwr, acid_volume, bodyzone_hit) + . = 1 + if(!bodyzone_hit || bodyzone_hit == "head") + if(wear_mask) + if(!(wear_mask.resistance_flags & UNACIDABLE)) + wear_mask.acid_act(acidpwr) + else + src << "Your mask protects you from the acid." + return + if(head) + if(!(head.resistance_flags & UNACIDABLE)) + head.acid_act(acidpwr) + else + src << "Your hat protects you from the acid." + return + take_bodypart_damage(acidpwr * min(0.6, acid_volume*0.1)) + + +/mob/living/carbon/monkey/ex_act(severity, target, origin) + if(origin && istype(origin, /datum/spacevine_mutation) && isvineimmune(src)) + return + ..() + + switch (severity) + if (1) + gib() + return + + if (2) + take_overall_damage(60, 60) + damage_clothes(200, BRUTE, "bomb") + adjustEarDamage(30, 120) + if(prob(70)) + Paralyse(10) + + if(3) + take_overall_damage(30, 0) + damage_clothes(50, BRUTE, "bomb") + adjustEarDamage(15,60) + if (prob(50)) + Paralyse(8) + + + //attempt to dismember bodyparts + if(severity <= 2) + var/max_limb_loss = round(4/severity) //so you don't lose four limbs at severity 3. + for(var/X in bodyparts) + var/obj/item/bodypart/BP = X + if(prob(50/severity) && BP.body_zone != "chest") + BP.brute_dam = BP.max_damage + BP.dismember() + max_limb_loss-- + if(!max_limb_loss) + break diff --git a/code/modules/mob/living/carbon/monkey/punpun.dm b/code/modules/mob/living/carbon/monkey/punpun.dm index 2c0f533f3b..995c30f6fe 100644 --- a/code/modules/mob/living/carbon/monkey/punpun.dm +++ b/code/modules/mob/living/carbon/monkey/punpun.dm @@ -11,14 +11,10 @@ /mob/living/carbon/monkey/punpun/New() Read_Memory() - if(relic_hat) - equip_to_slot_or_del(new relic_hat, slot_head) - if(relic_mask) - equip_to_slot_or_del(new relic_mask, slot_wear_mask) if(ancestor_name) name = ancestor_name if(ancestor_chain > 1) - name += " [num2roman(ancestor_chain)]" + name += " \Roman[ancestor_chain]" else if(prob(5)) name = pick(rare_pet_monkey_names) @@ -27,6 +23,14 @@ gender = pick(MALE, FEMALE) ..() + //These have to be after the parent new to ensure that the monkey + //bodyparts are actually created before we try to equip things to + //those slots + if(relic_hat) + equip_to_slot_or_del(new relic_hat, slot_head) + if(relic_mask) + equip_to_slot_or_del(new relic_mask, slot_wear_mask) + /mob/living/carbon/monkey/punpun/Life() if(ticker.current_state == GAME_STATE_FINISHED && !memory_saved) Write_Memory(0) diff --git a/code/modules/mob/living/carbon/monkey/update_icons.dm b/code/modules/mob/living/carbon/monkey/update_icons.dm index b75443c71b..31831d5c50 100644 --- a/code/modules/mob/living/carbon/monkey/update_icons.dm +++ b/code/modules/mob/living/carbon/monkey/update_icons.dm @@ -1,29 +1,47 @@ /mob/living/carbon/monkey/regenerate_icons() if(!..()) + update_body_parts() + update_hair() update_inv_wear_mask() update_inv_head() update_inv_back() - update_icons() update_transform() -/mob/living/carbon/monkey/update_icons() - cut_overlays() - icon_state = "monkey1" - for(var/image/I in overlays_standing) - add_overlay(I) //////// + +/mob/living/carbon/monkey/update_hair() + remove_overlay(HAIR_LAYER) + + var/obj/item/bodypart/head/HD = get_bodypart("head") + if(!HD) //Decapitated + return + + if(disabilities & HUSK) + return + + var/hair_hidden = 0 + + if(head) + var/obj/item/I = head + if(I.flags_inv & HIDEHAIR) + hair_hidden = 1 + if(wear_mask) + var/obj/item/clothing/mask/M = wear_mask + if(M.flags_inv & HIDEHAIR) + hair_hidden = 1 + if(!hair_hidden) + if(!getorgan(/obj/item/organ/brain)) //Applies the debrained overlay if there is no brain + var/image/I = image("icon"='icons/mob/human_face.dmi', "icon_state" = "debrained_s", "layer" = -HAIR_LAYER) + overlays_standing[HAIR_LAYER] = I + apply_overlay(HAIR_LAYER) + + /mob/living/carbon/monkey/update_fire() ..("Monkey_burning") -/mob/living/carbon/monkey/update_inv_handcuffed() - remove_overlay(HANDCUFF_LAYER) - if(handcuffed) - overlays_standing[HANDCUFF_LAYER] = image("icon"='icons/mob/mob.dmi', "icon_state"="handcuff1", "layer"=-HANDCUFF_LAYER) - apply_overlay(HANDCUFF_LAYER) - /mob/living/carbon/monkey/update_inv_legcuffed() remove_overlay(LEGCUFF_LAYER) if(legcuffed) @@ -47,6 +65,12 @@ I.screen_loc = ui_monkey_mask client.screen += I +//update whether our neck item appears on our hud. +/mob/living/carbon/monkey/update_hud_neck(obj/item/I) + if(client && hud_used && hud_used.hud_shown) + I.screen_loc = ui_monkey_mask + client.screen += I + //update whether our back item appears on our hud. /mob/living/carbon/monkey/update_hud_back(obj/item/I) if(client && hud_used && hud_used.hud_shown) diff --git a/code/modules/mob/living/carbon/say.dm b/code/modules/mob/living/carbon/say.dm index 0b6c2cae10..8b1e3b6529 100644 --- a/code/modules/mob/living/carbon/say.dm +++ b/code/modules/mob/living/carbon/say.dm @@ -24,3 +24,7 @@ var/obj/item/organ/tongue/T = getorganslot("tongue") if(T) . |= T.get_spans() + + var/obj/item/I = get_active_held_item() + if(I) + . |= I.get_held_item_speechspans(src) diff --git a/code/modules/mob/living/carbon/status_procs.dm b/code/modules/mob/living/carbon/status_procs.dm index 24c9305aa1..abfe312c48 100644 --- a/code/modules/mob/living/carbon/status_procs.dm +++ b/code/modules/mob/living/carbon/status_procs.dm @@ -1,6 +1,6 @@ //Here are the procs used to modify status effects of a mob. //The effects include: stunned, weakened, paralysis, sleeping, resting, jitteriness, dizziness, ear damage, -// eye damage, eye_blind, eye_blurry, druggy, BLIND disability, and NEARSIGHT disability. +// eye damage, eye_blind, eye_blurry, druggy, BLIND disability, NEARSIGHT disability, and HUSK disability. /mob/living/carbon/damage_eyes(amount) if(amount>0) @@ -76,4 +76,19 @@ if(!(disabilities & NEARSIGHT)) disabilities |= NEARSIGHT overlay_fullscreen("nearsighted", /obj/screen/fullscreen/impaired, 1) - return 1 \ No newline at end of file + return 1 + +/mob/living/carbon/cure_husk() + if(disabilities & HUSK) + disabilities &= ~HUSK + status_flags &= ~DISFIGURED + update_body() + return 1 + +/mob/living/carbon/become_husk() + if(disabilities & HUSK) + return + disabilities |= HUSK + status_flags |= DISFIGURED //makes them unknown + update_body() + return 1 diff --git a/code/modules/mob/living/carbon/update_icons.dm b/code/modules/mob/living/carbon/update_icons.dm index 013dc0b8c2..56418ff969 100644 --- a/code/modules/mob/living/carbon/update_icons.dm +++ b/code/modules/mob/living/carbon/update_icons.dm @@ -40,43 +40,51 @@ overlays -= overlays_standing[cache_index] overlays_standing[cache_index] = null -/mob/living/carbon/update_inv_r_hand() - remove_overlay(R_HAND_LAYER) +/mob/living/carbon/regenerate_icons() + if(notransform) + return 1 + update_inv_hands() + update_inv_handcuffed() + update_inv_legcuffed() + update_fire() + + +/mob/living/carbon/update_inv_hands() + remove_overlay(HANDS_LAYER) if (handcuffed) - drop_r_hand() + drop_all_held_items() return - if(r_hand) + + var/list/hands = list() + for(var/obj/item/I in held_items) if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD) - r_hand.screen_loc = ui_rhand - client.screen += r_hand + I.screen_loc = ui_hand_position(get_held_index_of_item(I)) + client.screen += I + if(observers && observers.len) + for(var/M in observers) + var/mob/dead/observe = M + if(observe.client && observe.client.eye == src) + observe.client.screen += I + else + observers -= observe + if(!observers.len) + observers = null + break - var/t_state = r_hand.item_state + var/t_state = I.item_state if(!t_state) - t_state = r_hand.icon_state + t_state = I.icon_state - var/image/standing = r_hand.build_worn_icon(state = t_state, default_layer = R_HAND_LAYER, default_icon_file = r_hand.righthand_file, isinhands = TRUE) - overlays_standing[R_HAND_LAYER] = standing + var/icon_file = I.lefthand_file + if(get_held_index_of_item(I) % 2 == 0) + icon_file = I.righthand_file - apply_overlay(R_HAND_LAYER) + var/image/standing = I.build_worn_icon(state = t_state, default_layer = HANDS_LAYER, default_icon_file = icon_file, isinhands = TRUE) + hands += standing -/mob/living/carbon/update_inv_l_hand() - remove_overlay(L_HAND_LAYER) - if(handcuffed) - drop_l_hand() - return - if(l_hand) - if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD) - l_hand.screen_loc = ui_lhand - client.screen += l_hand + overlays_standing[HANDS_LAYER] = hands + apply_overlay(HANDS_LAYER) - var/t_state = l_hand.item_state - if(!t_state) - t_state = l_hand.icon_state - - var/image/standing = l_hand.build_worn_icon(state = t_state, default_layer = L_HAND_LAYER, default_icon_file = l_hand.lefthand_file, isinhands = TRUE) - overlays_standing[L_HAND_LAYER] = standing - - apply_overlay(L_HAND_LAYER) /mob/living/carbon/update_fire(var/fire_icon = "Generic_mob_burning") remove_overlay(FIRE_LAYER) @@ -85,24 +93,58 @@ apply_overlay(FIRE_LAYER) -/mob/living/carbon/regenerate_icons() - if(notransform) - return 1 - update_inv_r_hand() - update_inv_l_hand() - update_inv_handcuffed() - update_inv_legcuffed() - update_fire() + + +/mob/living/carbon/update_damage_overlays() + remove_overlay(DAMAGE_LAYER) + + var/image/standing = image("icon"='icons/mob/dam_mob.dmi', "icon_state"="blank", "layer"=-DAMAGE_LAYER) + overlays_standing[DAMAGE_LAYER] = standing + + for(var/X in bodyparts) + var/obj/item/bodypart/BP = X + if(BP.dmg_overlay_type) + if(BP.brutestate) + standing.overlays += "[BP.dmg_overlay_type]_[BP.body_zone]_[BP.brutestate]0" //we're adding icon_states of the base image as overlays + if(BP.burnstate) + standing.overlays += "[BP.dmg_overlay_type]_[BP.body_zone]_0[BP.burnstate]" + + apply_overlay(DAMAGE_LAYER) + /mob/living/carbon/update_inv_wear_mask() remove_overlay(FACEMASK_LAYER) - if(istype(wear_mask, /obj/item/clothing/mask)) + + if(!get_bodypart("head")) //Decapitated + return + + if(client && hud_used && hud_used.inv_slots[slot_wear_mask]) + var/obj/screen/inventory/inv = hud_used.inv_slots[slot_wear_mask] + inv.update_icon() + + if(wear_mask) if(!(head && (head.flags_inv & HIDEMASK))) var/image/standing = wear_mask.build_worn_icon(state = wear_mask.icon_state, default_layer = FACEMASK_LAYER, default_icon_file = 'icons/mob/mask.dmi') overlays_standing[FACEMASK_LAYER] = standing update_hud_wear_mask(wear_mask) + apply_overlay(FACEMASK_LAYER) +/mob/living/carbon/update_inv_neck() + remove_overlay(NECK_LAYER) + + if(client && hud_used && hud_used.inv_slots[slot_neck]) + var/obj/screen/inventory/inv = hud_used.inv_slots[slot_neck] + inv.update_icon() + + if(wear_neck) + if(!(head && (head.flags_inv & HIDENECK))) + var/image/standing = wear_neck.build_worn_icon(state = wear_neck.icon_state, default_layer = NECK_LAYER, default_icon_file = 'icons/mob/neck.dmi') + overlays_standing[NECK_LAYER] = standing + update_hud_neck(wear_neck) + + apply_overlay(NECK_LAYER) + /mob/living/carbon/update_inv_back() remove_overlay(BACK_LAYER) @@ -118,14 +160,27 @@ /mob/living/carbon/update_inv_head() remove_overlay(HEAD_LAYER) + + if(!get_bodypart("head")) //Decapitated + return + + if(client && hud_used && hud_used.inv_slots[slot_back]) + var/obj/screen/inventory/inv = hud_used.inv_slots[slot_head] + inv.update_icon() + if(head) var/image/standing = head.build_worn_icon(state = head.icon_state, default_layer = HEAD_LAYER, default_icon_file = 'icons/mob/head.dmi') overlays_standing[HEAD_LAYER] = standing update_hud_head(head) + apply_overlay(HEAD_LAYER) + /mob/living/carbon/update_inv_handcuffed() - return + remove_overlay(HANDCUFF_LAYER) + if(handcuffed) + overlays_standing[HANDCUFF_LAYER] = image("icon"='icons/mob/mob.dmi', "icon_state"="handcuff1", "layer"=-HANDCUFF_LAYER) + apply_overlay(HANDCUFF_LAYER) //mob HUD updates for items in our inventory @@ -133,11 +188,10 @@ //update whether handcuffs appears on our hud. /mob/living/carbon/proc/update_hud_handcuffed() if(hud_used) - var/obj/screen/inventory/R = hud_used.inv_slots[slot_r_hand] - var/obj/screen/inventory/L = hud_used.inv_slots[slot_l_hand] - if(R && L) - R.update_icon() - L.update_icon() + for(var/hand in hud_used.hand_slots) + var/obj/screen/inventory/hand/H = hud_used.hand_slots[hand] + if(H) + H.update_icon() //update whether our head item appears on our hud. /mob/living/carbon/proc/update_hud_head(obj/item/I) @@ -147,17 +201,102 @@ /mob/living/carbon/proc/update_hud_wear_mask(obj/item/I) return +//update whether our neck item appears on our hud. +/mob/living/carbon/proc/update_hud_neck(obj/item/I) + return + //update whether our back item appears on our hud. /mob/living/carbon/proc/update_hud_back(obj/item/I) return + //Overlays for the worn overlay so you can overlay while you overlay //eg: ammo counters, primed grenade flashing, etc. -/obj/item/proc/worn_overlays(var/isinhands = FALSE) +/obj/item/proc/worn_overlays(isinhands = FALSE) . = list() +/mob/living/carbon/update_body() + update_body_parts() + +/mob/living/carbon/proc/update_body_parts() + //CHECK FOR UPDATE + var/oldkey = icon_render_key + icon_render_key = generate_icon_render_key() + if(oldkey == icon_render_key) + return + + remove_overlay(BODYPARTS_LAYER) + + for(var/X in bodyparts) + var/obj/item/bodypart/BP = X + BP.update_limb() + + //LOAD ICONS + if(limb_icon_cache[icon_render_key]) + load_limb_from_cache() + return + + //GENERATE NEW LIMBS + var/list/new_limbs = list() + for(var/X in bodyparts) + var/obj/item/bodypart/BP = X + var/image/temp = BP.get_limb_icon() + if(temp) + new_limbs += temp + if(new_limbs.len) + overlays_standing[BODYPARTS_LAYER] = new_limbs + limb_icon_cache[icon_render_key] = new_limbs + + apply_overlay(BODYPARTS_LAYER) + update_damage_overlays() +///////////////////// +// Limb Icon Cache // +///////////////////// +/* + Called from update_body_parts() these procs handle the limb icon cache. + the limb icon cache adds an icon_render_key to a human mob, it represents: + - skin_tone (if applicable) + - gender + - limbs (stores as the limb name and whether it is removed/fine, organic/robotic) + These procs only store limbs as to increase the number of matching icon_render_keys + This cache exists because drawing 6/7 icons for humans constantly is quite a waste + See RemieRichards on irc.rizon.net #coderbus +*/ + +var/global/list/limb_icon_cache = list() + +/mob/living/carbon + var/icon_render_key = "" + + +//produces a key based on the mob's limbs + +/mob/living/carbon/proc/generate_icon_render_key() + for(var/X in bodyparts) + var/obj/item/bodypart/BP = X + . += "-[BP.body_zone]" + if(BP.use_digitigrade) + . += "-digitigrade[BP.use_digitigrade]" + if(BP.animal_origin) + . += "-[BP.animal_origin]" + if(BP.status == BODYPART_ORGANIC) + . += "-organic" + else + . += "-robotic" + + if(disabilities & HUSK) + . += "-husk" + + +//change the mob's icon to the one matching its key +/mob/living/carbon/proc/load_limb_from_cache() + if(limb_icon_cache[icon_render_key]) + remove_overlay(BODYPARTS_LAYER) + overlays_standing[BODYPARTS_LAYER] = limb_icon_cache[icon_render_key] + apply_overlay(BODYPARTS_LAYER) + update_damage_overlays() diff --git a/code/modules/mob/living/damage_procs.dm b/code/modules/mob/living/damage_procs.dm index f89eb59fb3..7a8b84828e 100644 --- a/code/modules/mob/living/damage_procs.dm +++ b/code/modules/mob/living/damage_procs.dm @@ -9,23 +9,22 @@ standard 0 if fail */ /mob/living/proc/apply_damage(damage = 0,damagetype = BRUTE, def_zone = null, blocked = 0) - blocked = (100-blocked)/100 - if(!damage || (blocked <= 0)) + var/hit_percent = (100-blocked)/100 + if(!damage || (hit_percent <= 0)) return 0 switch(damagetype) if(BRUTE) - adjustBruteLoss(damage * blocked) + adjustBruteLoss(damage * hit_percent) if(BURN) - adjustFireLoss(damage * blocked) + adjustFireLoss(damage * hit_percent) if(TOX) - adjustToxLoss(damage * blocked) + adjustToxLoss(damage * hit_percent) if(OXY) - adjustOxyLoss(damage * blocked) + adjustOxyLoss(damage * hit_percent) if(CLONE) - adjustCloneLoss(damage * blocked) + adjustCloneLoss(damage * hit_percent) if(STAMINA) - adjustStaminaLoss(damage * blocked) - updatehealth() + adjustStaminaLoss(damage * hit_percent) return 1 @@ -49,30 +48,30 @@ /mob/living/proc/apply_effect(effect = 0,effecttype = STUN, blocked = 0) - blocked = (100-blocked)/100 - if(!effect || (blocked <= 0)) + var/hit_percent = (100-blocked)/100 + if(!effect || (hit_percent <= 0)) return 0 switch(effecttype) if(STUN) - Stun(effect * blocked) + Stun(effect * hit_percent) if(WEAKEN) - Weaken(effect * blocked) + Weaken(effect * hit_percent) if(PARALYZE) - Paralyse(effect * blocked) + Paralyse(effect * hit_percent) if(IRRADIATE) - radiation += max(effect * blocked, 0) + radiation += max(effect * hit_percent, 0) if(SLUR) - slurring = max(slurring,(effect * blocked)) + slurring = max(slurring,(effect * hit_percent)) if(STUTTER) if(status_flags & CANSTUN) // stun is usually associated with stutter - stuttering = max(stuttering,(effect * blocked)) + stuttering = max(stuttering,(effect * hit_percent)) if(EYE_BLUR) - blur_eyes(effect * blocked) + blur_eyes(effect * hit_percent) if(DROWSY) - drowsyness = max(drowsyness,(effect * blocked)) + drowsyness = max(drowsyness,(effect * hit_percent)) if(JITTER) if(status_flags & CANSTUN) - jitteriness = max(jitteriness,(effect * blocked)) + jitteriness = max(jitteriness,(effect * hit_percent)) return 1 @@ -99,4 +98,128 @@ apply_damage(stamina, STAMINA, null, blocked) if(jitter) apply_effect(jitter, JITTER, blocked) - return 1 \ No newline at end of file + return 1 + + +/mob/living/proc/getBruteLoss() + return bruteloss + +/mob/living/proc/adjustBruteLoss(amount, updating_health=1) + if(status_flags & GODMODE) + return 0 + bruteloss = Clamp((bruteloss + (amount * config.damage_multiplier)), 0, maxHealth*2) + if(updating_health) + updatehealth() + +/mob/living/proc/getOxyLoss() + return oxyloss + +/mob/living/proc/adjustOxyLoss(amount, updating_health=1) + if(status_flags & GODMODE) + return 0 + oxyloss = Clamp((oxyloss + (amount * config.damage_multiplier)), 0, maxHealth*2) + if(updating_health) + updatehealth() + +/mob/living/proc/setOxyLoss(amount, updating_health=1) + if(status_flags & GODMODE) + return 0 + oxyloss = amount + if(updating_health) + updatehealth() + +/mob/living/proc/getToxLoss() + return toxloss + +/mob/living/proc/adjustToxLoss(amount, updating_health=1) + if(status_flags & GODMODE) + return 0 + toxloss = Clamp((toxloss + (amount * config.damage_multiplier)), 0, maxHealth*2) + if(updating_health) + updatehealth() + return amount + +/mob/living/proc/setToxLoss(amount, updating_health=1) + if(status_flags & GODMODE) + return 0 + toxloss = amount + if(updating_health) + updatehealth() + +/mob/living/proc/getFireLoss() + return fireloss + +/mob/living/proc/adjustFireLoss(amount, updating_health=1) + if(status_flags & GODMODE) + return 0 + fireloss = Clamp((fireloss + (amount * config.damage_multiplier)), 0, maxHealth*2) + if(updating_health) + updatehealth() + +/mob/living/proc/getCloneLoss() + return cloneloss + +/mob/living/proc/adjustCloneLoss(amount, updating_health=1) + if(status_flags & GODMODE) + return 0 + cloneloss = Clamp((cloneloss + (amount * config.damage_multiplier)), 0, maxHealth*2) + if(updating_health) + updatehealth() + +/mob/living/proc/setCloneLoss(amount, updating_health=1) + if(status_flags & GODMODE) + return 0 + cloneloss = amount + if(updating_health) + updatehealth() + +/mob/living/proc/getBrainLoss() + return brainloss + +/mob/living/proc/adjustBrainLoss(amount) + if(status_flags & GODMODE) + return 0 + brainloss = Clamp((brainloss + (amount * config.damage_multiplier)), 0, maxHealth*2) + +/mob/living/proc/setBrainLoss(amount) + if(status_flags & GODMODE) + return 0 + brainloss = amount + +/mob/living/proc/getStaminaLoss() + return staminaloss + +/mob/living/proc/adjustStaminaLoss(amount, updating_stamina = 1) + return + +/mob/living/proc/setStaminaLoss(amount, updating_stamina = 1) + return + + +// heal ONE external organ, organ gets randomly selected from damaged ones. +/mob/living/proc/heal_bodypart_damage(brute, burn, updating_health = 1) + adjustBruteLoss(-brute, 0) //zero as argument for no instant health update + adjustFireLoss(-burn, 0) + if(updating_health) + updatehealth() + +// damage ONE external organ, organ gets randomly selected from damaged ones. +/mob/living/proc/take_bodypart_damage(brute, burn, updating_health = 1) + adjustBruteLoss(brute, 0) //zero as argument for no instant health update + adjustFireLoss(burn, 0) + if(updating_health) + updatehealth() + +// heal MANY bodyparts, in random order +/mob/living/proc/heal_overall_damage(brute, burn, only_robotic = 0, only_organic = 1, updating_health = 1) + adjustBruteLoss(-brute, 0) //zero as argument for no instant health update + adjustFireLoss(-burn, 0) + if(updating_health) + updatehealth() + +// damage MANY bodyparts, in random order +/mob/living/proc/take_overall_damage(brute, burn, updating_health = 1) + adjustBruteLoss(brute, 0) //zero as argument for no instant health update + adjustFireLoss(burn, 0) + if(updating_health) + updatehealth() \ No newline at end of file diff --git a/code/modules/mob/living/death.dm b/code/modules/mob/living/death.dm index d04ae811ce..cb684ebe7f 100644 --- a/code/modules/mob/living/death.dm +++ b/code/modules/mob/living/death.dm @@ -1,27 +1,30 @@ -/mob/living/gib(no_brain, no_organs) +/mob/living/gib(no_brain, no_organs, no_bodyparts) var/prev_lying = lying if(stat != DEAD) death(1) - if(buckled) - buckled.unbuckle_mob(src,force=1) //to update alien nest overlay, forced because we don't exist anymore - if(!prev_lying) gib_animation() - if(!no_organs) - spill_organs(no_brain) - spawn_gibs() + + spill_organs(no_brain, no_organs, no_bodyparts) + + if(!no_bodyparts) + spread_bodyparts(no_brain, no_organs) + + spawn_gibs(no_bodyparts) qdel(src) /mob/living/proc/gib_animation() return /mob/living/proc/spawn_gibs() - gibs(loc, viruses) + new /obj/effect/gibspawner/generic(loc, viruses) -/mob/living/proc/spill_organs(no_brain) +/mob/living/proc/spill_organs() return +/mob/living/proc/spread_bodyparts() + return /mob/living/dust() death(1) @@ -57,8 +60,6 @@ living_mob_list -= src if(!gibbed) dead_mob_list += src - else if(buckled) - buckled.unbuckle_mob(src,force=1) paralysis = 0 stunned = 0 weakened = 0 diff --git a/code/modules/mob/living/emote.dm b/code/modules/mob/living/emote.dm index 8825a09787..f452d64d2d 100644 --- a/code/modules/mob/living/emote.dm +++ b/code/modules/mob/living/emote.dm @@ -5,7 +5,7 @@ /mob/living/emote(act, m_type=1, message = null) - if(stat) + if(stat == DEAD && (act != "deathgasp") || (status_flags & FAKEDEATH)) return var/param = null @@ -19,7 +19,7 @@ switch(act)//Hello, how would you like to order? Alphabetically! if ("aflap") if (!src.restrained()) - message = "[src] flaps its wings ANGRILY!" + message = "[src] flaps [p_their()] wings ANGRILY!" m_type = 2 if ("blush","blushes") @@ -51,7 +51,7 @@ m_type = 2 if ("cross","crosses") - message = "[src] crosses their arms." + message = "[src] crosses [p_their()] arms." m_type = 2 if ("chuckle","chuckles") @@ -73,7 +73,7 @@ m_type = 1 if ("deathgasp","deathgasps") - message = "[src] seizes up and falls limp, its eyes dead and lifeless..." + message = "[src] seizes up and falls limp, [p_their()] eyes dead and lifeless..." m_type = 1 if ("drool","drools") @@ -89,7 +89,7 @@ if ("flap","flaps") if (!src.restrained()) - message = "[src] flaps its wings." + message = "[src] flaps [p_their()] wings." m_type = 2 if ("flip","flips") @@ -212,7 +212,7 @@ if ("pout","pouts") message = "[src] pouts." m_type = 2 - + if ("scream","screams") message = "[src] screams!" m_type = 2 @@ -222,7 +222,7 @@ m_type = 1 if ("shake","shakes") - message = "[src] shakes its head." + message = "[src] shakes [p_their()] head." m_type = 1 if ("sigh","sighs") @@ -268,7 +268,7 @@ message = "[src] stares." if ("stretch","stretches") - message = "[src] stretches their arms." + message = "[src] stretches [p_their()] arms." m_type = 2 if ("sulk","sulks") @@ -276,20 +276,12 @@ m_type = 1 if ("surrender","surrenders") - message = "[src] puts their hands on their head and falls to the ground, they surrender!" + message = "[src] puts [p_their()] hands on [p_their()] head and falls to the ground, [p_they()] surrender[p_s()]!" if(sleeping) return //Can't surrender while asleep. Weaken(20) //So you can't resist. m_type = 1 - if ("faint","faints") - message = "[src] faints." - if(sleeping) - return //Can't faint while asleep - SetSleeping(10) //Short-short nap - m_type = 1 - - if ("sway","sways") message = "[src] sways around dizzily." m_type = 1 @@ -339,7 +331,7 @@ // Maybe some people are okay with that. for(var/mob/M in dead_mob_list) - if(!M.client || istype(M, /mob/new_player)) + if(!M.client || isnewplayer(M)) continue //skip monkeys, leavers and new players var/T = get_turf(src) if(M.stat == DEAD && M.client && (M.client.prefs.chat_toggles & CHAT_GHOSTSIGHT) && !(M in viewers(T,null))) diff --git a/code/modules/mob/living/life.dm b/code/modules/mob/living/life.dm index c6dcd735de..1c3f9f3781 100644 --- a/code/modules/mob/living/life.dm +++ b/code/modules/mob/living/life.dm @@ -8,25 +8,29 @@ if (notransform) return if(!loc) - return + if(client) + for(var/obj/effect/landmark/error/E in landmarks_list) + loc = E.loc + break + message_admins("[key_name_admin(src)] was found to have no .loc with an attached client, if the cause is unknown it would be wise to ask how this was accomplished.") + log_game("[key_name(src)] was found to have no .loc with an attached client.") + else + return var/datum/gas_mixture/environment = loc.return_air() if(stat != DEAD) - //Breathing, if applicable handle_breathing() - + if(stat != DEAD) //Mutations and radiation handle_mutations_and_radiation() - + if(stat != DEAD) //Chemicals in the body handle_chemicals_in_body() - + if(stat != DEAD) //Random events (vomiting etc) handle_random_events() - . = 1 - //Handle temperature/pressure differences between body and environment if(environment) handle_environment(environment) @@ -41,12 +45,13 @@ if(machine) machine.check_eye(src) - if(stat != DEAD) handle_disabilities() // eye, ear, brain damages + if(stat != DEAD) handle_status_effects() //all special effects, stunned, weakened, jitteryness, hallucination, sleeping, etc - + if(stat != DEAD) + return 1 /mob/living/proc/handle_breathing() return @@ -72,13 +77,30 @@ /mob/living/proc/handle_environment(datum/gas_mixture/environment) return +/mob/living/proc/handle_fire() + if(fire_stacks < 0) //If we've doused ourselves in water to avoid fire, dry off slowly + fire_stacks = min(0, fire_stacks + 1)//So we dry ourselves back to default, nonflammable. + if(!on_fire) + return 1 + if(fire_stacks > 0) + adjust_fire_stacks(-0.1) //the fire is slowly consumed + else + ExtinguishMob() + return + var/datum/gas_mixture/G = loc.return_air() // Check if we're standing in an oxygenless environment + if(!G.gases["o2"] || G.gases["o2"][MOLES] < 1) + ExtinguishMob() //If there's no oxygen in the tile we're on, put out the fire + return + var/turf/location = get_turf(src) + location.hotspot_expose(700, 50, 1) + /mob/living/proc/handle_stomach() return //this updates all special effects: stunned, sleeping, weakened, druggy, stuttering, etc.. /mob/living/proc/handle_status_effects() if(paralysis) - AdjustParalysis(-1) + AdjustParalysis(-1, 1, 1) if(stunned) AdjustStunned(-1, 1, 1) if(weakened) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 3ffdb81f07..75a8ed51bd 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -1,13 +1,3 @@ -/* I am informed this was added by Giacom to reduce mob-stacking in escape pods. -It's sorta problematic atm due to the shuttle changes I am trying to do -Sorry Giacom. Please don't be mad :( -/mob/living/Life() - ..() - var/area/A = get_area(loc) - if(A && A.push_dir) - push_mob_back(src, A.push_dir) -*/ - /mob/living/New() . = ..() generateStaticOverlay() @@ -37,7 +27,10 @@ Sorry Giacom. Please don't be mad :( med_hud_set_status() /mob/living/Destroy() - ..() + if(ranged_ability) + ranged_ability.remove_ranged_ability(src) + if(buckled) + buckled.unbuckle_mob(src,force=1) for(var/mob/living/simple_animal/drone/D in player_list) for(var/image/I in staticOverlays) @@ -46,7 +39,15 @@ Sorry Giacom. Please don't be mad :( qdel(I) staticOverlays.len = 0 remove_from_all_data_huds() - return QDEL_HINT_HARDDEL + + return ..() + +/mob/living/ghostize(can_reenter_corpse = 1) + var/prev_client = client + . = ..() + if(.) + if(ranged_ability && prev_client) + ranged_ability.remove_mousepointer(prev_client) /mob/living/proc/OpenCraftingMenu() @@ -124,10 +125,10 @@ Sorry Giacom. Please don't be mad :( if(!M.buckled && !M.has_buckled_mobs()) var/mob_swap //the puller can always swap with its victim if on grab intent - if(M.pulledby == src && a_intent == "grab") + if(M.pulledby == src && a_intent == INTENT_GRAB) mob_swap = 1 //restrained people act if they were on 'help' intent to prevent a person being pulled from being seperated from their puller - else if((M.restrained() || M.a_intent == "help") && (restrained() || a_intent == "help")) + else if((M.restrained() || M.a_intent == INTENT_HELP) && (restrained() || a_intent == INTENT_HELP)) mob_swap = 1 if(mob_swap) //switch our position with M @@ -159,10 +160,10 @@ Sorry Giacom. Please don't be mad :( if(!(M.status_flags & CANPUSH)) return 1 //anti-riot equipment is also anti-push - if(M.r_hand && (prob(M.r_hand.block_chance * 2)) && !istype(M.r_hand, /obj/item/clothing)) - return 1 - if(M.l_hand && (prob(M.l_hand.block_chance * 2)) && !istype(M.l_hand, /obj/item/clothing)) - return 1 + for(var/obj/item/I in M.held_items) + if(!istype(M, /obj/item/clothing)) + if(prob(I.block_chance*2)) + return 1 //Called when we bump onto an obj /mob/living/proc/ObjBump(obj/O) @@ -216,26 +217,19 @@ Sorry Giacom. Please don't be mad :( set hidden = 1 if (InCritical()) src.attack_log += "[src] has [whispered ? "whispered his final words" : "succumbed to death"] with [round(health, 0.1)] points of health!" - src.adjustOxyLoss(src.health - config.health_threshold_dead) + src.adjustOxyLoss(src.health - HEALTH_THRESHOLD_DEAD) updatehealth() if(!whispered) src << "You have given up life and succumbed to death." death() +/mob/living/incapacitated(ignore_restraints, ignore_grab) + if(stat || paralysis || stunned || weakened || (!ignore_restraints && restrained(ignore_grab))) + return 1 + /mob/living/proc/InCritical() return (src.health < 0 && src.health > -95 && stat == UNCONSCIOUS) -/mob/living/ex_act(severity, target) - ..() - flash_eyes() - -/mob/living/proc/updatehealth() - if(status_flags & GODMODE) - return - health = maxHealth - getOxyLoss() - getToxLoss() - getFireLoss() - getBruteLoss() - getCloneLoss() - update_stat() - med_hud_set_health() - //This proc is used for mobs which are affected by pressure to calculate the amount of pressure that actually //affects them once clothing is factored in. ~Errorage /mob/living/proc/calculate_affecting_pressure(pressure) @@ -258,125 +252,9 @@ Sorry Giacom. Please don't be mad :( temperature -= change if(actual < desired) temperature = desired -// if(istype(src, /mob/living/carbon/human)) -// world << "[src] ~ [src.bodytemperature] ~ [temperature]" return temperature -// MOB PROCS -/mob/living/proc/getBruteLoss() - return bruteloss - -/mob/living/proc/adjustBruteLoss(amount, updating_health=1) - if(status_flags & GODMODE) - return 0 - bruteloss = Clamp(bruteloss + amount, 0, maxHealth*2) - if(updating_health) - updatehealth() - -/mob/living/proc/getOxyLoss() - return oxyloss - -/mob/living/proc/adjustOxyLoss(amount, updating_health=1) - if(status_flags & GODMODE) - return 0 - oxyloss = Clamp(oxyloss + amount, 0, maxHealth*2) - if(updating_health) - updatehealth() - -/mob/living/proc/setOxyLoss(amount, updating_health=1) - if(status_flags & GODMODE) - return 0 - oxyloss = amount - if(updating_health) - updatehealth() - -/mob/living/proc/getToxLoss() - return toxloss - -/mob/living/proc/adjustToxLoss(amount, updating_health=1) - if(status_flags & GODMODE) - return 0 - toxloss = Clamp(toxloss + amount, 0, maxHealth*2) - if(updating_health) - updatehealth() - return amount - -/mob/living/proc/setToxLoss(amount, updating_health=1) - if(status_flags & GODMODE) - return 0 - toxloss = amount - if(updating_health) - updatehealth() - -/mob/living/proc/getFireLoss() - return fireloss - -/mob/living/proc/adjustFireLoss(amount, updating_health=1) - if(status_flags & GODMODE) - return 0 - fireloss = Clamp(fireloss + amount, 0, maxHealth*2) - if(updating_health) - updatehealth() - -/mob/living/proc/getCloneLoss() - return cloneloss - -/mob/living/proc/adjustCloneLoss(amount, updating_health=1) - if(status_flags & GODMODE) - return 0 - cloneloss = Clamp(cloneloss + amount, 0, maxHealth*2) - if(updating_health) - updatehealth() - -/mob/living/proc/setCloneLoss(amount, updating_health=1) - if(status_flags & GODMODE) - return 0 - cloneloss = amount - if(updating_health) - updatehealth() - -/mob/living/proc/getBrainLoss() - return brainloss - -/mob/living/proc/adjustBrainLoss(amount) - if(status_flags & GODMODE) - return 0 - brainloss = Clamp(brainloss + amount, 0, maxHealth*2) - -/mob/living/proc/setBrainLoss(amount) - if(status_flags & GODMODE) - return 0 - brainloss = amount - -/mob/living/proc/getStaminaLoss() - return staminaloss - -/mob/living/proc/adjustStaminaLoss(amount, updating_stamina = 1) - return - -/mob/living/carbon/adjustStaminaLoss(amount, updating_stamina = 1) - if(status_flags & GODMODE) - return 0 - staminaloss = Clamp(staminaloss + amount, 0, maxHealth*2) - if(updating_stamina) - update_stamina() - -/mob/living/carbon/alien/adjustStaminaLoss(amount, updating_stamina = 1) - return - -/mob/living/proc/setStaminaLoss(amount, updating_stamina = 1) - return - -/mob/living/carbon/setStaminaLoss(amount, updating_stamina = 1) - if(status_flags & GODMODE) - return 0 - staminaloss = amount - if(updating_stamina) - update_stamina() - -/mob/living/carbon/alien/setStaminaLoss(amount, updating_stamina = 1) - return /mob/living/proc/getMaxHealth() return maxHealth @@ -433,16 +311,6 @@ Sorry Giacom. Please don't be mad :( return 1 return 0 - -/mob/living/proc/electrocute_act(shock_damage, obj/source, siemens_coeff = 1, safety = 0, tesla_shock = 0) - return 0 //only carbon liveforms have this proc - -/mob/living/emp_act(severity) - var/list/L = src.get_contents() - for(var/obj/O in L) - O.emp_act(severity) - ..() - /mob/living/proc/can_inject() return 1 @@ -454,33 +322,14 @@ Sorry Giacom. Please don't be mad :( var/def_zone = ran_zone(t) return def_zone -// heal ONE external organ, organ gets randomly selected from damaged ones. -/mob/living/proc/heal_organ_damage(brute, burn, updating_health=1) - adjustBruteLoss(-brute, updating_health) - adjustFireLoss(-burn, updating_health) - if(updating_health) - updatehealth() -// damage ONE external organ, organ gets randomly selected from damaged ones. -/mob/living/proc/take_organ_damage(brute, burn, updating_health=1) - adjustBruteLoss(brute) - adjustFireLoss(burn) - if(updating_health) - updatehealth() - -// heal MANY bodyparts, in random order -/mob/living/proc/heal_overall_damage(brute, burn, updating_health=1) - adjustBruteLoss(-brute, updating_health) - adjustFireLoss(-burn, updating_health) - if(updating_health) - updatehealth() - -// damage MANY bodyparts, in random order -/mob/living/proc/take_overall_damage(brute, burn, updating_health=1) - adjustBruteLoss(brute, updating_health) - adjustFireLoss(burn, updating_health) - if(updating_health) - updatehealth() +/mob/living/proc/updatehealth() + if(status_flags & GODMODE) + return + health = maxHealth - getOxyLoss() - getToxLoss() - getFireLoss() - getBruteLoss() - getCloneLoss() + update_stat() + med_hud_set_health() + med_hud_set_status() //proc used to ressuscitate a mob /mob/living/proc/revive(full_heal = 0, admin_revive = 0) @@ -501,7 +350,7 @@ Sorry Giacom. Please don't be mad :( //proc used to completely heal a mob. /mob/living/proc/fully_heal(admin_revive = 0) restore_blood() - setToxLoss(0, 0) + setToxLoss(0, 0) //zero as second argument not automatically call updatehealth(). setOxyLoss(0, 0) setCloneLoss(0, 0) setBrainLoss(0) @@ -518,26 +367,26 @@ Sorry Giacom. Please don't be mad :( set_eye_damage(0) cure_nearsighted() cure_blind() + cure_husk() disabilities = 0 ear_deaf = 0 ear_damage = 0 hallucination = 0 - heal_overall_damage(100000, 100000) + heal_overall_damage(100000, 100000, 0, 0, 1) //heal brute and burn dmg on both organic and robotic limbs, and update health right away. ExtinguishMob() fire_stacks = 0 - updatehealth() update_canmove() //proc called by revive(), to check if we can actually ressuscitate the mob (we don't want to revive him and have him instantly die again) /mob/living/proc/can_be_revived() . = 1 - if(health <= config.health_threshold_dead) + if(health <= HEALTH_THRESHOLD_DEAD) return 0 /mob/living/proc/update_damage_overlays() return -/* + /mob/living/proc/Examine_OOC() set name = "Examine Meta-Info (OOC)" set category = "OOC" @@ -552,7 +401,6 @@ Sorry Giacom. Please don't be mad :( src << "OOC Metadata is not supported by this server!" return -*/ /mob/living/Move(atom/newloc, direct) if (buckled && buckled.loc != newloc) //not updating position @@ -587,25 +435,27 @@ Sorry Giacom. Please don't be mad :( if(pulledby && moving_diagonally != FIRST_DIAG_STEP && get_dist(src, pulledby) > 1)//separated from our puller and not in the middle of a diagonal move. pulledby.stop_pulling() - if (s_active && !(s_active in contents) && !(s_active.loc in contents)) - // It's ugly. But everything related to inventory/storage is. -- c0 + if (s_active && !(s_active.ClickAccessible(src, depth=STORAGE_VIEW_DEPTH) || s_active.Adjacent(src))) s_active.close(src) -/mob/living/movement_delay() +/mob/living/movement_delay(ignorewalk = 0) . = ..() - if(isturf(loc, /turf/open)) + if(isopenturf(loc) && !is_flying()) var/turf/open/T = loc . += T.slowdown - switch(m_intent) - if("run") - if(drowsyness > 0) - . += 6 - . += config.run_speed - if("walk") - . += config.walk_speed + if(ignorewalk) + . += config.run_speed + else + switch(m_intent) + if(MOVE_INTENT_RUN) + if(drowsyness > 0) + . += 6 + . += config.run_speed + if(MOVE_INTENT_WALK) + . += config.walk_speed /mob/living/proc/makeTrail(turf/T) - if(!has_gravity(src)) + if(!has_gravity()) return var/blood_exists = 0 @@ -635,30 +485,42 @@ Sorry Giacom. Please don't be mad :( TH.transfer_mob_blood_dna(src) /mob/living/carbon/human/makeTrail(turf/T) - if((NOBLOOD in dna.species.specflags) || !bleed_rate || bleedsuppress) + if((NOBLOOD in dna.species.species_traits) || !bleed_rate || bleedsuppress) return ..() /mob/living/proc/getTrail() - if(ishuman(src)) - var/mob/living/carbon/human/H = src - var/species = H.dna.species.id - if(species == "xeno") //Here we can define custom blood trails for different species; copy+paste the xenos species to add new ones. - if(getBruteLoss() < 300) - return pick (list("xltrails_1", "xltrails2")) - else - return pick (list("xttrails_1", "xttrails2")) - else - if(getBruteLoss() < 300) - return pick("ltrails_1", "ltrails_2") - else - return pick("trails_1", "trails_2") - + if(getBruteLoss() < 300) + return pick("ltrails_1", "ltrails_2") else - if(getBruteLoss() < 300) - return pick("ltrails_1", "ltrails_2") - else - return pick("trails_1", "trails_2") + return pick("trails_1", "trails_2") + +/mob/living/experience_pressure_difference(pressure_difference, direction, pressure_resistance_prob_delta = 0) + if (client && client.move_delay >= world.time + world.tick_lag*2) + pressure_resistance_prob_delta -= 30 + + var/list/turfs_to_check = list() + + if (has_limbs) + var/turf/T = get_step(src, angle2dir(dir2angle(direction)+90)) + if (T) + turfs_to_check += T + + T = get_step(src, angle2dir(dir2angle(direction)-90)) + if (T) + turfs_to_check += T + + for (var/t in turfs_to_check) + T = t + if (T.density) + pressure_resistance_prob_delta -= 20 + continue + for (var/atom/movable/AM in T) + if (AM.density && AM.anchored) + pressure_resistance_prob_delta -= 20 + break + if(!slipping) + ..(pressure_difference, direction, pressure_resistance_prob_delta) /mob/living/verb/resist() set name = "Resist" @@ -683,6 +545,14 @@ Sorry Giacom. Please don't be mad :( var/obj/C = loc C.container_resist(src) + else if(has_status_effect(/datum/status_effect/freon)) + src << "You start breaking out of the ice cube!" + if(do_mob(src, src, 40)) + if(has_status_effect(/datum/status_effect/freon)) + src << "You break out of the ice cube!" + remove_status_effect(/datum/status_effect/freon) + update_canmove() + else if(canmove) if(on_fire) resist_fire() //stop, drop, and roll @@ -736,26 +606,13 @@ Sorry Giacom. Please don't be mad :( fixed = 1 if(on && !floating && !fixed) animate(src, pixel_y = pixel_y + 2, time = 10, loop = -1) + sleep(10) + animate(src, pixel_y = pixel_y - 2, time = 10, loop = -1) floating = 1 else if(((!on || fixed) && floating)) animate(src, pixel_y = get_standard_pixel_y_offset(lying), time = 10) floating = 0 -//called when the mob receives a bright flash -/mob/living/proc/flash_eyes(intensity = 1, override_blindness_check = 0, affect_silicon = 0, visual = 0, type = /obj/screen/fullscreen/flash) - if(check_eye_prot() < intensity && (override_blindness_check || !(disabilities & BLIND))) - overlay_fullscreen("flash", type) - addtimer(src, "clear_fullscreen", 25, FALSE, "flash", 25) - return 1 - -//this returns the mob's protection against eye damage (number between -1 and 2) -/mob/living/proc/check_eye_prot() - return 0 - -//this returns the mob's protection against ear damage (0 or 1) -/mob/living/proc/check_ear_prot() - return 0 - // The src mob is trying to strip an item from someone // Override if a certain type of mob should be behave differently when stripping items (can't, for example) /mob/living/stripPanelUnequip(obj/item/what, mob/who, where) @@ -766,33 +623,44 @@ Sorry Giacom. Please don't be mad :( "[src] tries to remove [who]'s [what.name].") what.add_fingerprint(src) if(do_mob(src, who, what.strip_delay)) - if(what && what == who.get_item_by_slot(where) && Adjacent(who)) - who.unEquip(what) - add_logs(src, who, "stripped", addition="of [what]") + if(what && Adjacent(who)) + if(islist(where)) + var/list/L = where + if(what == who.get_item_for_held_index(L[2])) + who.unEquip(what) + add_logs(src, who, "stripped", addition="of [what]") + if(what == who.get_item_by_slot(where)) + who.unEquip(what) + add_logs(src, who, "stripped", addition="of [what]") // The src mob is trying to place an item on someone // Override if a certain mob should be behave differently when placing items (can't, for example) /mob/living/stripPanelEquip(obj/item/what, mob/who, where) - what = src.get_active_hand() + what = src.get_active_held_item() if(what && (what.flags & NODROP)) src << "You can't put \the [what.name] on [who], it's stuck to your hand!" return if(what) - if(!what.mob_can_equip(who, where, 1)) - src << "\The [what.name] doesn't fit in that place!" - return + var/list/where_list + if(islist(where)) + where_list = where + if(!what.mob_can_equip(who, src, where[1], 1)) + src << "\The [what.name] doesn't fit in that place!" + return + else + if(!what.mob_can_equip(who, src, where, 1)) + src << "\The [what.name] doesn't fit in that place!" + return visible_message("[src] tries to put [what] on [who].") if(do_mob(src, who, what.put_on_delay)) if(what && Adjacent(who)) unEquip(what) - who.equip_to_slot_if_possible(what, where, 0, 1) + if(where_list) + who.put_in_hand(what, where_list[2]) + else + who.equip_to_slot_if_possible(what, where, 0, 1) add_logs(src, who, "equipped", what) -/mob/living/singularity_act() - var/gain = 20 - investigate_log("([key_name(src)]) has been consumed by the singularity.","singulo") //Oh that's where the clown ended up! - gib() - return(gain) /mob/living/singularity_pull(S, current_size) if(current_size >= STAGE_SIX) @@ -800,97 +668,6 @@ Sorry Giacom. Please don't be mad :( else step_towards(src,S) -/mob/living/narsie_act() - if(is_servant_of_ratvar(src) && !stat) - src << "You resist Nar-Sie's influence... but not all of it. Run!" - adjustBruteLoss(35) - if(src && reagents) - reagents.add_reagent("heparin", 5) - return 0 - if(client) - makeNewConstruct(/mob/living/simple_animal/hostile/construct/harvester, src, null, 0) - else - new /mob/living/simple_animal/hostile/construct/harvester/hostile(get_turf(src)) - spawn_dust() - gib() - return - -/mob/living/ratvar_act() - if(!add_servant_of_ratvar(src) && !is_servant_of_ratvar(src)) - src << "A blinding light boils you alive! Run!" - adjustFireLoss(35) - if(src) - adjust_fire_stacks(1) - IgniteMob() - -/atom/movable/proc/do_attack_animation(atom/A, final_pixel_y, final_pixel_x) - var/pixel_x_diff = 0 - var/pixel_y_diff = 0 - if(!final_pixel_y) - final_pixel_y = initial(pixel_y) - - if(!final_pixel_x) - final_pixel_x = initial(pixel_x) //lol copypasta - - var/direction = get_dir(src, A) - if(direction & NORTH) - pixel_y_diff = 8 - else if(direction & SOUTH) - pixel_y_diff = -8 - - if(direction & EAST) - pixel_x_diff = 8 - else if(direction & WEST) - pixel_x_diff = -8 - - animate(src, pixel_x = pixel_x + pixel_x_diff, pixel_y = pixel_y + pixel_y_diff, time = 2) - //animate(pixel_x = initial(pixel_x), pixel_y = final_pixel_y, time = 2) - animate(pixel_x = pixel_x - pixel_x_diff, pixel_y = final_pixel_y, time = 2) //Why reset when you can just reverse? 99% less shit-breaking. - -/mob/living/do_attack_animation(atom/A) - var/final_pixel_y = get_standard_pixel_y_offset(lying) - ..(A, final_pixel_y) - floating = 0 // If we were without gravity, the bouncing animation got stopped, so we make sure we restart the bouncing after the next movement. - - // What icon do we use for the attack? - var/image/I - if(hand && l_hand) // Attacked with item in left hand. - I = image(l_hand.icon, A, l_hand.icon_state, A.layer + 0.1) - else if(!hand && r_hand) // Attacked with item in right hand. - I = image(r_hand.icon, A, r_hand.icon_state, A.layer + 0.1) - else // Attacked with a fist? - return - - // Who can see the attack? - var/list/viewing = list() - for(var/mob/M in viewers(A)) - if(M.client) - viewing |= M.client - flick_overlay(I, viewing, 5) // 5 ticks/half a second - - // Scale the icon. - I.transform *= 0.75 - // The icon should not rotate. - I.appearance_flags = APPEARANCE_UI_IGNORE_ALPHA - - // Set the direction of the icon animation. - var/direction = get_dir(src, A) - if(direction & NORTH) - I.pixel_y = -16 - else if(direction & SOUTH) - I.pixel_y = 16 - - if(direction & EAST) - I.pixel_x = -16 - else if(direction & WEST) - I.pixel_x = 16 - - if(!direction) // Attacked self?! - I.pixel_z = 16 - - // And animate the attack! - animate(I, alpha = 175, pixel_x = 0, pixel_y = 0, pixel_z = 0, time = 3) - /mob/living/proc/do_jitter_animation(jitteriness) var/amplitude = min(4, (jitteriness/100) + 1) var/pixel_x_diff = rand(-amplitude, amplitude) @@ -910,7 +687,7 @@ Sorry Giacom. Please don't be mad :( else if(istype(loc, /obj/structure/transit_tube_pod)) loc_temp = environment.temperature - else if(istype(get_turf(src), /turf/open/space)) + else if(isspaceturf(get_turf(src))) var/turf/heat_turf = get_turf(src) loc_temp = heat_turf.temperature @@ -936,12 +713,16 @@ Sorry Giacom. Please don't be mad :( /mob/living/Stat() ..() + if(statpanel("Status")) - if(ticker) - if(ticker.mode) - for(var/datum/gang/G in ticker.mode.gangs) - if(G.is_dominating) - stat(null, "[G.name] Gang Takeover: [max(G.domination_time_remaining(), 0)]") + if(ticker && ticker.mode) + for(var/datum/gang/G in ticker.mode.gangs) + if(G.is_dominating) + stat(null, "[G.name] Gang Takeover: [max(G.domination_time_remaining(), 0)]") + if(istype(ticker.mode, /datum/game_mode/blob)) + var/datum/game_mode/blob/B = ticker.mode + if(B.message_sent) + stat(null, "Blobs to Blob Win: [blobs_legit.len]/[B.blobwincount]") /mob/living/cancel_camera() ..() @@ -982,7 +763,7 @@ Sorry Giacom. Please don't be mad :( new path(src.loc) butcher_results.Remove(path) //In case you want to have things like simple_animals drop their butcher results on gib, so it won't double up below. visible_message("[user] butchers [src].") - gib() + gib(0, 0, 1) /mob/living/canUseTopic(atom/movable/M, be_close = 0, no_dextery = 0) if(incapacitated()) @@ -1005,7 +786,7 @@ Sorry Giacom. Please don't be mad :( /mob/living/carbon/human/update_stamina() if(staminaloss) var/total_health = (health - staminaloss) - if(total_health <= config.health_threshold_crit && !stat) + if(total_health <= HEALTH_THRESHOLD_CRIT && !stat) src << "You're too exhausted to keep going..." Weaken(5) setStaminaLoss(health - 2) @@ -1020,7 +801,10 @@ Sorry Giacom. Please don't be mad :( return 1 /mob/living/proc/return_soul() + hellbound = 0 if(mind) + if(mind.soulOwner.devilinfo)//Not sure how this could happen, but whatever. + mind.soulOwner.devilinfo.remove_soul(mind) mind.soulOwner = mind /mob/living/proc/has_bane(banetype) @@ -1061,3 +845,56 @@ Sorry Giacom. Please don't be mad :( G.Recall() G << "Your summoner has changed \ form!" + +/mob/living/proc/fakefireextinguish() + return + +/mob/living/proc/fakefire() + return + + + +//Mobs on Fire +/mob/living/proc/IgniteMob() + if(fire_stacks > 0 && !on_fire) + on_fire = 1 + src.visible_message("[src] catches fire!", \ + "You're set on fire!") + src.AddLuminosity(3) + throw_alert("fire", /obj/screen/alert/fire) + update_fire() + return TRUE + return FALSE + +/mob/living/proc/ExtinguishMob() + if(on_fire) + on_fire = 0 + fire_stacks = 0 + src.AddLuminosity(-3) + clear_alert("fire") + update_fire() + +/mob/living/proc/adjust_fire_stacks(add_fire_stacks) //Adjusting the amount of fire_stacks we have on person + fire_stacks = Clamp(fire_stacks + add_fire_stacks, -20, 20) + if(on_fire && fire_stacks <= 0) + ExtinguishMob() + +//Share fire evenly between the two mobs +//Called in MobBump() and Crossed() +/mob/living/proc/spreadFire(mob/living/L) + if(!istype(L)) + return + var/L_old_on_fire = L.on_fire + + if(on_fire) //Only spread fire stacks if we're on fire + fire_stacks /= 2 + L.fire_stacks += fire_stacks + if(L.IgniteMob()) + log_game("[key_name(src)] bumped into [key_name(L)] and set them on fire") + + if(L_old_on_fire) //Only ignite us and gain their stacks if they were onfire before we bumped them + L.fire_stacks /= 2 + fire_stacks += L.fire_stacks + IgniteMob() + +//Mobs on Fire end diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 0d8d2d2a4a..22d6057608 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -1,3 +1,4 @@ + /mob/living/proc/run_armor_check(def_zone = null, attack_flag = "melee", absorb_text = null, soften_text = null, armour_penetration, penetrated_text) var/armor = getarmor(def_zone, attack_flag) @@ -24,22 +25,33 @@ /mob/living/proc/getarmor(def_zone, type) return 0 -/mob/living/proc/on_hit(obj/item/projectile/proj_type) +//this returns the mob's protection against eye damage (number between -1 and 2) +/mob/living/proc/get_eye_protection() + return 0 + +//this returns the mob's protection against ear damage (0:no protection; 1: some ear protection; 2: has no ears) +/mob/living/proc/get_ear_protection() + return 0 + +/mob/living/proc/on_hit(obj/item/projectile/P) return /mob/living/bullet_act(obj/item/projectile/P, def_zone) var/armor = run_armor_check(def_zone, P.flag, "","",P.armour_penetration) if(!P.nodamage) apply_damage(P.damage, P.damage_type, def_zone, armor) - return P.on_hit(src, armor, def_zone) + if(P.dismemberment) + check_projectile_dismemberment(P, def_zone) + return P.on_hit(src, armor) -/proc/vol_by_throwforce_and_or_w_class(obj/item/I) - if(!I) - return 0 - if(I.throwforce && I.w_class) - return Clamp((I.throwforce + I.w_class) * 5, 30, 100)// Add the item's throwforce to its weight class and multiply by 5, then clamp the value between 30 and 100 - else if(I.w_class) - return Clamp(I.w_class * 8, 20, 100) // Multiply the item's weight class by 8, then clamp the value between 20 and 100 +/mob/living/proc/check_projectile_dismemberment(obj/item/projectile/P, def_zone) + return 0 + +/obj/item/proc/get_volume_by_throwforce_and_or_w_class() + if(throwforce && w_class) + return Clamp((throwforce + w_class) * 5, 30, 100)// Add the item's throwforce to its weight class and multiply by 5, then clamp the value between 30 and 100 + else if(w_class) + return Clamp(w_class * 8, 20, 100) // Multiply the item's weight class by 8, then clamp the value between 20 and 100 else return 0 @@ -48,7 +60,7 @@ var/obj/item/I = AM var/zone = ran_zone("chest", 65)//Hits a random part of the body, geared towards the chest var/dtype = BRUTE - var/volume = vol_by_throwforce_and_or_w_class(I) + var/volume = I.get_volume_by_throwforce_and_or_w_class() if(istype(I,/obj/item/weapon)) //If the item is a weapon... var/obj/item/weapon/W = I dtype = W.damtype @@ -69,155 +81,48 @@ visible_message("[src] has been hit by [I].", \ "[src] has been hit by [I].") var/armor = run_armor_check(zone, "melee", "Your armor has protected your [parse_zone(zone)].", "Your armor has softened hit to your [parse_zone(zone)].",I.armour_penetration) - apply_damage(I.throwforce, dtype, zone, armor, I) + apply_damage(I.throwforce, dtype, zone, armor) if(I.thrownby) add_logs(I.thrownby, src, "hit", I) + else + return 1 else playsound(loc, 'sound/weapons/genhit.ogg', 50, 1, -1) ..() + /mob/living/mech_melee_attack(obj/mecha/M) - if(M.occupant.a_intent == "harm") + if(M.occupant.a_intent == INTENT_HARM) M.do_attack_animation(src) if(M.damtype == "brute") step_away(src,M,15) switch(M.damtype) - if("brute") + if(BRUTE) Paralyse(1) take_overall_damage(rand(M.force/2, M.force)) playsound(src, 'sound/weapons/punch4.ogg', 50, 1) - if("fire") + if(BURN) take_overall_damage(0, rand(M.force/2, M.force)) playsound(src, 'sound/items/Welder.ogg', 50, 1) - if("tox") + if(TOX) M.mech_toxin_damage(src) else return updatehealth() visible_message("[M.name] has hit [src]!", \ - "[M.name] has hit [src]!") + "[M.name] has hit [src]!", null, COMBAT_MESSAGE_RANGE) add_logs(M.occupant, src, "attacked", M, "(INTENT: [uppertext(M.occupant.a_intent)]) (DAMTYPE: [uppertext(M.damtype)])") else step_away(src,M) add_logs(M.occupant, src, "pushed", M) - visible_message("[M] pushes [src] out of the way.") - - -//Mobs on Fire -/mob/living/proc/IgniteMob() - if(fire_stacks > 0 && !on_fire) - on_fire = 1 - src.visible_message("[src] catches fire!", \ - "You're set on fire!") - src.set_light(light_range + 3) - throw_alert("fire", /obj/screen/alert/fire) - update_fire() - return TRUE - return FALSE - -/mob/living/proc/ExtinguishMob() - if(on_fire) - on_fire = 0 - fire_stacks = 0 - src.set_light(light_range - 3) - clear_alert("fire") - update_fire() - -/mob/living/proc/update_fire() - return - -/mob/living/proc/adjust_fire_stacks(add_fire_stacks) //Adjusting the amount of fire_stacks we have on person - fire_stacks = Clamp(fire_stacks + add_fire_stacks, -20, 20) - if(on_fire && fire_stacks <= 0) - ExtinguishMob() - -/mob/living/proc/handle_fire() - if(fire_stacks < 0) //If we've doused ourselves in water to avoid fire, dry off slowly - fire_stacks = min(0, fire_stacks + 1)//So we dry ourselves back to default, nonflammable. - if(!on_fire) - return 1 - if(fire_stacks > 0) - adjust_fire_stacks(-0.1) //the fire is slowly consumed - else - ExtinguishMob() - return - var/datum/gas_mixture/G = loc.return_air() // Check if we're standing in an oxygenless environment - if(!G.gases["o2"] || G.gases["o2"][MOLES] < 1) - ExtinguishMob() //If there's no oxygen in the tile we're on, put out the fire - return - var/turf/location = get_turf(src) - location.hotspot_expose(700, 50, 1) + visible_message("[M] pushes [src] out of the way.", null, null, 5) /mob/living/fire_act() adjust_fire_stacks(3) IgniteMob() - -//Share fire evenly between the two mobs -//Called in MobBump() and Crossed() -/mob/living/proc/spreadFire(mob/living/L) - if(!istype(L)) - return - var/L_old_on_fire = L.on_fire - - if(on_fire) //Only spread fire stacks if we're on fire - fire_stacks /= 2 - L.fire_stacks += fire_stacks - if(L.IgniteMob()) - log_game("[key_name(src)] bumped into [key_name(L)] and set them on fire") - - if(L_old_on_fire) //Only ignite us and gain their stacks if they were onfire before we bumped them - L.fire_stacks /= 2 - fire_stacks += L.fire_stacks - IgniteMob() - -//Mobs on Fire end - -/mob/living/proc/dominate_mind(mob/living/target, duration = 100, silent) //Allows one mob to assume control of another while imprisoning the old consciousness for a time - if(!target) - return 0 - if(target.mental_dominator) - src << "[target] is already being controlled by someone else!" - return 0 - if(!target.mind) - src << "[target] is mindless and would make you permanently catatonic!" - return 0 - if(!silent) - src << "You pounce upon [target]'s mind and seize control of their body!" - target << "Your control over your body is wrenched away from you!" - target.mind_control_holder = new/mob/living/mind_control_holder(target) - target.mind_control_holder.real_name = "imprisoned mind of [target.real_name]" - target.mind.transfer_to(target.mind_control_holder) - mind.transfer_to(target) - target.mental_dominator = src - spawn(duration) - if(!src) - if(!silent) - target << "You try to return to your own body, but sense nothing! You're being forced out!" - target.ghostize(1) - target.mind_control_holder.mind.transfer_to(target) - if(!silent) - target << "You take control of your own body again!" - return 0 - if(!silent) - target << "You're forced out! You return to your own body." - target.mind.transfer_to(src) - target.mind_control_holder.mind.transfer_to(target) - qdel(mind_control_holder) - if(!silent) - target << "You take control of your own body again!" - return 1 - -/mob/living/acid_act(acidpwr, toxpwr, acid_volume) - take_organ_damage(min(10*toxpwr, acid_volume * toxpwr)) - -/mob/living/proc/grabbedby(mob/living/carbon/user, mob/living/target, supress_message = 0) - -// if(grab_state >= GRAB_AGGRESSIVE && !pulling.anchored && iscarbon(pulling) && user.zone_selected == "mouth") -// src.vore_attack(src, devour_time = 100) //It would be better to define it on this level instead of human_defense.dm, but you'd probably need to do more work down the line. ex: xeno devour code -// return - - if(anchored) +/mob/living/proc/grabbedby(mob/living/carbon/user, supress_message = 0) + if(user == src || anchored) return 0 if(!user.pulling || user.pulling != src) user.start_pulling(src, supress_message) @@ -237,11 +142,11 @@ if(user.grab_state) //only the first upgrade is instantaneous var/old_grab_state = user.grab_state var/grab_upgrade_time = 30 - visible_message("[user] starts to tighten \his grip on [src]!", \ - "[user] starts to tighten \his grip on you!") + visible_message("[user] starts to tighten [user.p_their()] grip on [src]!", \ + "[user] starts to tighten [user.p_their()] grip on you!") 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 != "grab") + if(!user.pulling || user.pulling != src || user.grab_state != old_grab_state || user.a_intent != INTENT_GRAB) return 0 user.grab_state++ switch(user.grab_state) @@ -249,8 +154,7 @@ add_logs(user, src, "grabbed", addition="aggressively") visible_message("[user] has grabbed [src] aggressively!", \ "[user] has grabbed [src] aggressively!") - drop_r_hand() - drop_l_hand() + drop_all_held_items() stop_pulling() if(GRAB_NECK) visible_message("[user] has grabbed [src] by the neck!",\ @@ -281,7 +185,7 @@ add_logs(M, src, "attacked") M.do_attack_animation(src) visible_message("The [M.name] glomps [src]!", \ - "The [M.name] glomps [src]!") + "The [M.name] glomps [src]!", null, COMBAT_MESSAGE_RANGE) return 1 /mob/living/attack_animal(mob/living/simple_animal/M) @@ -294,38 +198,33 @@ playsound(loc, M.attack_sound, 50, 1, 1) M.do_attack_animation(src) visible_message("\The [M] [M.attacktext] [src]!", \ - "\The [M] [M.attacktext] [src]!") + "\The [M] [M.attacktext] [src]!", null, COMBAT_MESSAGE_RANGE) add_logs(M, src, "attacked") return 1 /mob/living/attack_paw(mob/living/carbon/monkey/M) - if(!ticker || !ticker.mode) - M << "You cannot attack people before the game has started." - return 0 - - if (istype(loc, /turf) && istype(loc.loc, /area/start)) + if(isturf(loc) && istype(loc.loc, /area/start)) M << "No attacking people at spawn, you jackass." return 0 - if (M.a_intent == "harm") + if (M.a_intent == INTENT_HARM) if(M.is_muzzled() || (M.wear_mask && M.wear_mask.flags_cover & MASKCOVERSMOUTH)) M << "You can't bite with your mouth covered!" return 0 - M.do_attack_animation(src) + M.do_attack_animation(src, ATTACK_EFFECT_BITE) if (prob(75)) add_logs(M, src, "attacked") playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1) visible_message("[M.name] bites [src]!", \ - "[M.name] bites [src]!") + "[M.name] bites [src]!", null, COMBAT_MESSAGE_RANGE) return 1 else visible_message("[M.name] has attempted to bite [src]!", \ - "[M.name] has attempted to bite [src]!") + "[M.name] has attempted to bite [src]!", null, COMBAT_MESSAGE_RANGE) return 0 /mob/living/attack_larva(mob/living/carbon/alien/larva/L) - switch(L.a_intent) if("help") visible_message("[L.name] rubs its head against [src].") @@ -336,20 +235,16 @@ if(prob(90)) add_logs(L, src, "attacked") visible_message("[L.name] bites [src]!", \ - "[L.name] bites [src]!") + "[L.name] bites [src]!", null, COMBAT_MESSAGE_RANGE) playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1) return 1 else visible_message("[L.name] has attempted to bite [src]!", \ - "[L.name] has attempted to bite [src]!") + "[L.name] has attempted to bite [src]!", null, COMBAT_MESSAGE_RANGE) return 0 /mob/living/attack_alien(mob/living/carbon/alien/humanoid/M) - if(!ticker || !ticker.mode) - M << "You cannot attack people before the game has started." - return 0 - - if (istype(loc, /turf) && istype(loc.loc, /area/start)) + if(isturf(loc) && istype(loc.loc, /area/start)) M << "No attacking people at spawn, you jackass." return 0 @@ -361,26 +256,103 @@ if ("grab") grabbedby(M) return 0 - else + if("harm") M.do_attack_animation(src) return 1 + if("disarm") + M.do_attack_animation(src, ATTACK_EFFECT_DISARM) + return 1 -/mob/living/incapacitated(ignore_restraints, ignore_grab) - if(stat || paralysis || stunned || weakened || (!ignore_restraints && restrained(ignore_grab))) - return 1 +/mob/living/ex_act(severity, target, origin) + if(origin && istype(origin, /datum/spacevine_mutation) && isvineimmune(src)) + return + ..() + flash_act() //Looking for irradiate()? It's been moved to radiation.dm under the rad_act() for mobs. -/mob/living/Stun(amount, updating = 1, ignore_canstun = 0) - if(stun_absorption && !stat) - visible_message("[src]'s yellow aura momentarily intensifies!", "Your ward absorbs the stun!") - stun_absorption_count += amount - return 0 +/mob/living/acid_act(acidpwr, acid_volume) + take_bodypart_damage(acidpwr * min(1, acid_volume * 0.1)) + return 1 + + +/mob/living/proc/electrocute_act(shock_damage, obj/source, siemens_coeff = 1, safety = 0, tesla_shock = 0, illusion = 0) + if(shock_damage > 0) + if(!illusion) + adjustFireLoss(shock_damage) + visible_message( + "[src] was shocked by \the [source]!", \ + "You feel a powerful shock coursing through your body!", \ + "You hear a heavy electrical crack." \ + ) + return shock_damage + +/mob/living/emp_act(severity) + var/list/L = src.get_contents() + for(var/obj/O in L) + O.emp_act(severity) ..() -/mob/living/Weaken(amount, updating = 1, ignore_canweaken = 0) - if(stun_absorption && !stat) - visible_message("[src]'s yellow aura momentarily intensifies!", "Your ward absorbs the stun!") - stun_absorption_count += amount - return 0 +/mob/living/singularity_act() + var/gain = 20 + investigate_log("([key_name(src)]) has been consumed by the singularity.","singulo") //Oh that's where the clown ended up! + gib() + return(gain) + +/mob/living/narsie_act() + if(is_servant_of_ratvar(src) && !stat) + src << "You resist Nar-Sie's influence... but not all of it. Run!" + adjustBruteLoss(35) + if(src && reagents) + reagents.add_reagent("heparin", 5) + return FALSE + if(client) + makeNewConstruct(/mob/living/simple_animal/hostile/construct/harvester, src, null, 0) + else + switch(rand(1, 10)) + if(1) + new /mob/living/simple_animal/hostile/construct/armored/hostile(get_turf(src)) + if(2) + new /mob/living/simple_animal/hostile/construct/wraith/hostile(get_turf(src)) + if(3 to 6) + new /mob/living/simple_animal/hostile/construct/builder/hostile(get_turf(src)) + if(6 to 10) + new /mob/living/simple_animal/hostile/construct/harvester/hostile(get_turf(src)) + spawn_dust() + gib() + return TRUE + + +/mob/living/ratvar_act() + if(!is_servant_of_ratvar(src) && !add_servant_of_ratvar(src)) + src << "A blinding light boils you alive! Run!" + adjustFireLoss(35) + if(src) + adjust_fire_stacks(1) + IgniteMob() + return FALSE + return TRUE + + +//called when the mob receives a bright flash +/mob/living/proc/flash_act(intensity = 1, override_blindness_check = 0, affect_silicon = 0, visual = 0, type = /obj/screen/fullscreen/flash) + if(get_eye_protection() < intensity && (override_blindness_check || !(disabilities & BLIND))) + overlay_fullscreen("flash", type) + addtimer(src, "clear_fullscreen", 25, TIMER_NORMAL, "flash", 25) + return 1 + +//called when the mob receives a loud bang +/mob/living/proc/soundbang_act() + return 0 + +//to damage the clothes worn by a mob +/mob/living/proc/damage_clothes(damage_amount, damage_type = BRUTE, damage_flag = 0, def_zone) + return + + +/mob/living/do_attack_animation(atom/A, visual_effect_icon, obj/item/used_item, no_effect, end_pixel_y) + if(A != src) + end_pixel_y = get_standard_pixel_y_offset(lying) + used_item = get_active_held_item() ..() + floating = 0 // If we were without gravity, the bouncing animation got stopped, so we make sure we restart the bouncing after the next movement. diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index c661632aaf..42e5ca690a 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -5,6 +5,7 @@ sight = 0 see_in_dark = 2 hud_possible = list(HEALTH_HUD,STATUS_HUD,ANTAG_HUD) + pressure_resistance = 10 //Health and life related vars var/maxHealth = 100 //Maximum health that should be possible. @@ -41,6 +42,8 @@ var/bloodcrawl = 0 //0 No blood crawling, BLOODCRAWL for bloodcrawling, BLOODCRAWL_EAT for crawling+mob devour var/holder = null //The holder for blood crawling var/ventcrawler = 0 //0 No vent crawling, 1 vent crawling in the nude, 2 vent crawling always + var/limb_destroyer = 0 //1 Sets AI behavior that allows mobs to target and dismember limbs with their basic attack. + var/floating = 0 var/mob_size = MOB_SIZE_HUMAN var/metabolism_efficiency = 1 //more or less efficiency to metabolize helpful/harmful reagents and regulate body temperature.. @@ -64,11 +67,11 @@ var/list/weather_immunities = list() - var/stun_absorption = FALSE //If all incoming stuns are being absorbed - var/stun_absorption_count = 0 //How many seconds of stun that have been absorbed - - var/mob/living/mental_dominator //The person controlling the mind of this person, if applicable - var/mob/living/mind_control_holder/mind_control_holder //If the mob is being mind controlled, where their old mind is stored (check clock_mobs.dm) + var/stun_absorption = null //converted to a list of stun absorption sources this mob has when one is added var/blood_volume = 0 //how much blood the mob has var/obj/effect/proc_holder/ranged_ability //Any ranged ability the mob has, as a click override + + var/list/status_effects //a list of all status effects the mob has + + var/slipping = FALSE \ No newline at end of file diff --git a/code/modules/mob/living/login.dm b/code/modules/mob/living/login.dm index d8f05d4676..9453e421cd 100644 --- a/code/modules/mob/living/login.dm +++ b/code/modules/mob/living/login.dm @@ -18,5 +18,4 @@ src << "You can ventcrawl! Use alt+click on vents to quickly travel about the station." if(ranged_ability) - client.click_intercept = ranged_ability - src << "You currently have [ranged_ability.name] active!" \ No newline at end of file + ranged_ability.add_ranged_ability(src, "You currently have [ranged_ability] active!") \ No newline at end of file diff --git a/code/modules/mob/living/logout.dm b/code/modules/mob/living/logout.dm index 1737b97371..bcd7c77f1d 100644 --- a/code/modules/mob/living/logout.dm +++ b/code/modules/mob/living/logout.dm @@ -1,4 +1,6 @@ /mob/living/Logout() + if(ranged_ability && client) + ranged_ability.remove_mousepointer(client) ..() if(!key && mind) //key and mind have become seperated. mind.active = 0 //This is to stop say, a mind.transfer_to call on a corpse causing a ghost to re-enter its body. \ No newline at end of file diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index 66297eb14b..4ef83b51f9 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -60,6 +60,9 @@ var/list/crit_allowed_modes = list(MODE_WHISPER,MODE_CHANGELING,MODE_ALIEN) /mob/living/say(message, bubble_type,var/list/spans = list()) message = trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN)) + if(!message || message == "") + return + if(stat == DEAD) say_dead(message) @@ -92,10 +95,8 @@ var/list/crit_allowed_modes = list(MODE_WHISPER,MODE_CHANGELING,MODE_ALIEN) if(message_mode != MODE_WHISPER) //whisper() calls treat_message(); double process results in "hisspering" message = treat_message(message) - spans += get_spans() - if(!message) - return + spans += get_spans() //Log of what we've said, plain message, no spans or junk say_log += message @@ -144,7 +145,7 @@ var/list/crit_allowed_modes = list(MODE_WHISPER,MODE_CHANGELING,MODE_ALIEN) /mob/living/send_speech(message, message_range = 7, obj/source = src, bubble_type = bubble_icon, list/spans) var/list/listening = get_hearers_in_view(message_range, source) for(var/mob/M in player_list) - if(M.stat == DEAD && M.client && ((M.client.prefs.chat_toggles & CHAT_GHOSTEARS) || (get_dist(M, src) <= 7)) && client) // client is so that ghosts don't have to listen to mice + if(M.stat == DEAD && M.client && ((M.client.prefs.chat_toggles & CHAT_GHOSTEARS) || (get_dist(M, src) <= 7 && M.z == z)) && client) // client is so that ghosts don't have to listen to mice listening |= M var/rendered = compose_message(src, languages_spoken, message, , spans) @@ -219,7 +220,6 @@ var/list/crit_allowed_modes = list(MODE_WHISPER,MODE_CHANGELING,MODE_ALIEN) if(1) if(prob(40)) M << "We can faintly sense an outsider trying to communicate through the hivemind..." - return 1 if(2) var/msg = "[mind.changeling.changelingID]: [message]" log_say("[mind.changeling.changelingID]/[src.key] : [message]") @@ -236,14 +236,13 @@ var/list/crit_allowed_modes = list(MODE_WHISPER,MODE_CHANGELING,MODE_ALIEN) if(1) if(prob(40)) M << "We can faintly sense another of our kind trying to communicate through the hivemind..." - return 1 if(1) src << "Our senses have not evolved enough to be able to communicate this way..." - return 1 + return 1 if(message_mode == MODE_ALIEN) if(hivecheck()) alien_talk(message) - return 1 + return 1 return 0 /mob/living/proc/treat_message(message) @@ -266,14 +265,15 @@ var/list/crit_allowed_modes = list(MODE_WHISPER,MODE_CHANGELING,MODE_ALIEN) /mob/living/proc/radio(message, message_mode, list/spans) switch(message_mode) if(MODE_R_HAND) - if (r_hand) - r_hand.talk_into(src, message, , spans) - return ITALICS | REDUCE_RANGE - + for(var/obj/item/r_hand in get_held_items_for_side("r", all = TRUE)) + if (r_hand) + return r_hand.talk_into(src, message, , spans) + return ITALICS | REDUCE_RANGE if(MODE_L_HAND) - if (l_hand) - l_hand.talk_into(src, message, , spans) - return ITALICS | REDUCE_RANGE + for(var/obj/item/l_hand in get_held_items_for_side("l", all = TRUE)) + if (l_hand) + return l_hand.talk_into(src, message, , spans) + return ITALICS | REDUCE_RANGE if(MODE_INTERCOM) for (var/obj/item/device/radio/intercom/I in view(1, null)) diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 233a7c35f9..f35a793036 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -14,11 +14,13 @@ var/list/ai_list = list() /mob/living/silicon/ai name = "AI" - icon = 'icons/mob/AI.dmi'// + icon = 'icons/mob/AI.dmi' icon_state = "ai" anchored = 1 density = 1 + canmove = 0 status_flags = CANSTUN|CANPUSH + a_intent = INTENT_HARM //so we always get pushed instead of trying to swap force_compose = 1 //This ensures that the AI always composes it's own hear message. Needed for hrefs and job display. sight = SEE_TURFS | SEE_MOBS | SEE_OBJS see_in_dark = 8 @@ -29,6 +31,7 @@ var/list/ai_list = list() var/obj/machinery/camera/current = null var/list/connected_robots = list() var/aiRestorePowerRoutine = 0 + var/requires_power = POWER_REQ_ALL //var/list/laws = list() var/alarms = list("Motion"=list(), "Fire"=list(), "Atmosphere"=list(), "Power"=list(), "Camera"=list(), "Burglar"=list()) var/viewalerts = 0 @@ -45,7 +48,6 @@ var/list/ai_list = list() //MALFUNCTION var/datum/module_picker/malf_picker var/list/datum/AI_Module/current_modules = list() - var/fire_res_on_core = 0 var/can_dominate_mechs = 0 var/shunted = 0 //1 if the AI is currently shunted. Used to differentiate between shunted and ghosted/braindead @@ -78,14 +80,36 @@ var/list/ai_list = list() var/obj/machinery/camera/portable/builtInCamera -/mob/living/silicon/ai/New(loc, var/datum/ai_laws/L, var/obj/item/device/mmi/B, var/safety = 0) +/mob/living/silicon/ai/New(loc, datum/ai_laws/L, obj/item/device/mmi/B, safety = 0) ..() + if(!safety) //Only used by AIize() to successfully spawn an AI. + if(!B) //If there is no player/brain inside. + new/obj/structure/AIcore/deactivated(loc) //New empty terminal. + qdel(src)//Delete AI. + return + else + if(B.brainmob.mind) + B.brainmob.mind.transfer_to(src) + rename_self("ai") + if(mind.special_role) + mind.store_memory("As an AI, you must obey your silicon laws above all else. Your objectives will consider you to be dead.") + src << "You have been installed as an AI! " + src << "You must obey your silicon laws above all else. Your objectives will consider you to be dead." + + src << "You are playing the station's AI. The AI cannot move, but can interact with many objects while viewing them (through cameras)." + src << "To look at other parts of the station, click on yourself to get a camera menu." + src << "While observing through a camera, you can use most (networked) devices which you can see, such as computers, APCs, intercoms, doors, etc." + src << "To use something, simply click on it." + src << "Use say :b to speak to your cyborgs through binary." + src << "For department channels, use the following say commands:" + src << ":o - AI Private, :c - Command, :s - Security, :e - Engineering, :u - Supply, :v - Service, :m - Medical, :n - Science." + show_laws() + src << "These laws may be changed by other players, or by you being the traitor." + + job = "AI" + rename_self("ai") name = real_name - anchored = 1 - canmove = 0 - density = 1 - loc = loc holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holo1")) @@ -110,37 +134,12 @@ var/list/ai_list = list() radio = new /obj/item/device/radio/headset/ai(src) aicamera = new/obj/item/device/camera/siliconcam/ai_camera(src) - if (istype(loc, /turf)) + if(isturf(loc)) verbs.Add(/mob/living/silicon/ai/proc/ai_network_change, \ /mob/living/silicon/ai/proc/ai_statuschange, /mob/living/silicon/ai/proc/ai_hologram_change, \ /mob/living/silicon/ai/proc/toggle_camera_light, /mob/living/silicon/ai/proc/botcall,\ /mob/living/silicon/ai/proc/control_integrated_radio, /mob/living/silicon/ai/proc/set_automatic_say_channel) - if(!safety)//Only used by AIize() to successfully spawn an AI. - if (!B)//If there is no player/brain inside. - new/obj/structure/AIcore/deactivated(loc)//New empty terminal. - qdel(src)//Delete AI. - return - else - if (B.brainmob.mind) - B.brainmob.mind.transfer_to(src) - rename_self("ai") - if(mind.special_role) - mind.store_memory("As an AI, you must obey your silicon laws above all else. Your objectives will consider you to be dead.") - src << "You have been installed as an AI! " - src << "You must obey your silicon laws above all else. Your objectives will consider you to be dead." - - src << "You are playing the station's AI. The AI cannot move, but can interact with many objects while viewing them (through cameras)." - src << "To look at other parts of the station, click on yourself to get a camera menu." - src << "While observing through a camera, you can use most (networked) devices which you can see, such as computers, APCs, intercoms, doors, etc." - src << "To use something, simply click on it." - src << "Use say :b to speak to your cyborgs through binary." - src << "For department channels, use the following say commands:" - src << ":o - AI Private, :c - Command, :s - Security, :e - Engineering, :u - Supply, :v - Service, :m - Medical, :n - Science." - show_laws() - src << "These laws may be changed by other players, or by you being the traitor." - - job = "AI" ai_list += src shuttle_caller_list += src @@ -157,7 +156,9 @@ var/list/ai_list = list() shuttle_caller_list -= src SSshuttle.autoEvac() qdel(eyeobj) // No AI, no Eye - return ..() + malfhack = null + + . = ..() /mob/living/silicon/ai/verb/pick_icon() @@ -293,8 +294,7 @@ var/list/ai_list = list() /mob/living/silicon/ai/proc/ai_roster() var/dat = "Crew RosterCrew Roster:

    " - for(var/datum/data/record/t in sortRecord(data_core.general)) - dat += t.fields["name"] + " - " + t.fields["rank"] + "
    " + dat += data_core.get_manifest() dat += "" src << browse(dat, "window=airoster") @@ -303,7 +303,7 @@ var/list/ai_list = list() /mob/living/silicon/ai/proc/ai_call_shuttle() if(stat == DEAD) return //won't work if dead - if(istype(usr,/mob/living/silicon/ai)) + if(isAI(usr)) var/mob/living/silicon/ai/AI = src if(AI.control_disabled) usr << "Wireless control is disabled!" @@ -320,10 +320,8 @@ var/list/ai_list = list() if(C) C.post_status("shuttle") - return - /mob/living/silicon/ai/cancel_camera() - src.view_core() + view_core() /mob/living/silicon/ai/verb/toggle_anchor() set category = "AI Commands" @@ -334,7 +332,7 @@ var/list/ai_list = list() return //won't work if dead anchored = !anchored // Toggles the anchor - src << "[anchored ? "You are now anchored." : "You are now unanchored."]" + src << "You are now [anchored ? "" : "un"]anchored." // the message in the [] will change depending whether or not the AI is anchored /mob/living/silicon/ai/update_canmove() //If the AI dies, mobs won't go through it anymore @@ -344,7 +342,7 @@ var/list/ai_list = list() set category = "Malfunction" if(stat == DEAD) return //won't work if dead - if(istype(usr,/mob/living/silicon/ai)) + if(isAI(usr)) var/mob/living/silicon/ai/AI = src if(AI.control_disabled) src << "Wireless control is disabled!" @@ -352,41 +350,9 @@ var/list/ai_list = list() SSshuttle.cancelEvac(src) return -/mob/living/silicon/ai/blob_act(obj/effect/blob/B) - if (stat != DEAD) - adjustBruteLoss(60) - updatehealth() - return 1 - return 0 - /mob/living/silicon/ai/restrained(ignore_grab) . = 0 -/mob/living/silicon/ai/emp_act(severity) - if (prob(30)) - switch(pick(1,2)) - if(1) - view_core() - if(2) - SSshuttle.requestEvac(src,"ALERT: Energy surge detected in AI core! Station integrity may be compromised! Initiati--%m091#ar-BZZT") - ..() - -/mob/living/silicon/ai/ex_act(severity, target) - ..() - - switch(severity) - if(1) - gib() - if(2) - if (stat != DEAD) - adjustBruteLoss(60) - adjustFireLoss(60) - if(3) - if (stat != DEAD) - adjustBruteLoss(30) - - return - /mob/living/silicon/ai/Topic(href, href_list) if(usr != src) return @@ -411,7 +377,7 @@ var/list/ai_list = list() src << browse(last_paper_seen, "window=show_paper") //Carn: holopad requests if(href_list["jumptoholopad"]) - var/obj/machinery/hologram/holopad/H = locate(href_list["jumptoholopad"]) + var/obj/machinery/holopad/H = locate(href_list["jumptoholopad"]) if(stat == CONSCIOUS) if(H) H.attack_ai(src) //may as well recycle @@ -458,19 +424,6 @@ var/list/ai_list = list() if(M) M.transfer_ai(AI_MECH_HACK,src, usr) //Called om the mech itself. -/mob/living/silicon/ai/bullet_act(obj/item/projectile/Proj) - ..(Proj) - updatehealth() - return 2 - - -/mob/living/silicon/ai/attack_alien(mob/living/carbon/alien/humanoid/M) - if(!ticker || !ticker.mode) - M << "You cannot attack people before the game has started." - return - - ..() - return /mob/living/silicon/ai/proc/switchCamera(obj/machinery/camera/C) @@ -738,7 +691,7 @@ var/list/ai_list = list() src << "Camera lights deactivated." for (var/obj/machinery/camera/C in lit_cameras) - C.set_light(0) + C.SetLuminosity(0) lit_cameras = list() return @@ -746,7 +699,6 @@ var/list/ai_list = list() light_cameras() src << "Camera lights activated." - return //AI_CAMERA_LUMINOSITY @@ -795,9 +747,6 @@ var/list/ai_list = list() return //won't work if dead set_autosay() -/mob/living/silicon/ai/attack_slime(mob/living/simple_animal/slime/user) - return - /mob/living/silicon/ai/transfer_ai(interaction, mob/user, mob/living/silicon/ai/AI, obj/item/device/aicard/card) if(!..()) return @@ -809,19 +758,11 @@ var/list/ai_list = list() ai_restore_power()//So the AI initially has power. control_disabled = 1//Can't control things remotely if you're stuck in a card! radio_enabled = 0 //No talking on the built-in radio for you either! - loc = card//Throw AI into the card. + forceMove(card) card.AI = src src << "You have been downloaded to a mobile storage device. Remote device connection severed." user << "Transfer successful: [name] ([rand(1000,9999)].exe) removed from host terminal and stored within local memory." -/mob/living/silicon/ai/flash_eyes(intensity = 1, override_blindness_check = 0, affect_silicon = 0) - return // no eyes, no flashing - -/mob/living/silicon/ai/attackby(obj/item/weapon/W, mob/user, params) - if(W.force && W.damtype != STAMINA && src.stat != DEAD) //only sparks if real damage is dealt. - spark_system.start() - return ..() - /mob/living/silicon/ai/can_buckle() return 0 @@ -898,3 +839,32 @@ var/list/ai_list = list() if(..()) //successfully ressuscitated from death icon_state = "ai" . = 1 + +/mob/living/silicon/ai/proc/malfhacked(obj/machinery/power/apc/apc) + malfhack = null + malfhacking = 0 + clear_alert("hackingapc") + + if(!istype(apc) || qdeleted(apc) || apc.stat & BROKEN) + src << "Hack aborted. The designated APC no \ + longer exists on the power network." + playsound(get_turf(src), 'sound/machines/buzz-two.ogg', 50, 1) + else if(apc.aidisabled) + src << "Hack aborted. \The [apc] is no \ + longer responding to our systems." + playsound(get_turf(src), 'sound/machines/buzz-sigh.ogg', 50, 1) + else + malf_picker.processing_time += 10 + + apc.malfai = parent || src + apc.malfhack = TRUE + apc.locked = TRUE + apc.coverlocked = TRUE + + playsound(get_turf(src), 'sound/machines/ding.ogg', 50, 1) + src << "Hack complete. \The [apc] is now under your \ + exclusive control." + apc.update_icon() + +/mob/living/silicon/ai/spawned/New(loc, datum/ai_laws/L, obj/item/device/mmi/B, safety = 0) + ..(loc,L,B,1) diff --git a/code/modules/mob/living/silicon/ai/ai_defense.dm b/code/modules/mob/living/silicon/ai/ai_defense.dm new file mode 100644 index 0000000000..28cac80aea --- /dev/null +++ b/code/modules/mob/living/silicon/ai/ai_defense.dm @@ -0,0 +1,53 @@ + +/mob/living/silicon/ai/attacked_by(obj/item/I, mob/living/user, def_zone) + if(I.force && I.damtype != STAMINA && stat != DEAD) //only sparks if real damage is dealt. + spark_system.start() + return ..() + + +/mob/living/silicon/ai/attack_alien(mob/living/carbon/alien/humanoid/M) + if(!ticker || !ticker.mode) + M << "You cannot attack people before the game has started." + return + ..() + +/mob/living/silicon/ai/attack_slime(mob/living/simple_animal/slime/user) + return //immune to slimes + +/mob/living/silicon/ai/blob_act(obj/structure/blob/B) + if (stat != DEAD) + adjustBruteLoss(60) + updatehealth() + return 1 + return 0 + +/mob/living/silicon/ai/emp_act(severity) + if (prob(30)) + switch(pick(1,2)) + if(1) + view_core() + if(2) + SSshuttle.requestEvac(src,"ALERT: Energy surge detected in AI core! Station integrity may be compromised! Initiati--%m091#ar-BZZT") + ..() + +/mob/living/silicon/ai/ex_act(severity, target) + switch(severity) + if(1) + gib() + if(2) + if (stat != DEAD) + adjustBruteLoss(60) + adjustFireLoss(60) + if(3) + if (stat != DEAD) + adjustBruteLoss(30) + + + +/mob/living/silicon/ai/bullet_act(obj/item/projectile/Proj) + ..(Proj) + updatehealth() + return 2 + +/mob/living/silicon/ai/flash_act(intensity = 1, override_blindness_check = 0, affect_silicon = 0) + return // no eyes, no flashing diff --git a/code/modules/mob/living/silicon/ai/death.dm b/code/modules/mob/living/silicon/ai/death.dm index b9f46d5b96..7adadb97c7 100644 --- a/code/modules/mob/living/silicon/ai/death.dm +++ b/code/modules/mob/living/silicon/ai/death.dm @@ -23,17 +23,14 @@ if(nuking) set_security_level("red") - nuking = 0 - SSshuttle.emergencyNoEscape = 0 - if(SSshuttle.emergency.mode == SHUTTLE_STRANDED) - SSshuttle.emergency.mode = SHUTTLE_DOCKED - SSshuttle.emergency.timer = world.time - priority_announce("Hostile enviroment resolved. You have 3 minutes to board the Emergency Shuttle.", null, 'sound/AI/shuttledock.ogg', "Priority") - for(var/obj/item/weapon/pinpointer/point in pinpointer_list) - point.the_disk = null //Point back to the disk. + nuking = FALSE + for(var/obj/item/weapon/pinpointer/P in pinpointer_list) + P.switch_mode_to(TRACK_NUKE_DISK) //Party's over, back to work, everyone + P.nuke_warning = FALSE if(doomsday_device) - doomsday_device.timing = 0 + doomsday_device.timing = FALSE + SSshuttle.clearHostileEnvironment(doomsday_device) qdel(doomsday_device) if(explosive) spawn(10) diff --git a/code/modules/mob/living/silicon/ai/freelook/chunk.dm b/code/modules/mob/living/silicon/ai/freelook/chunk.dm index b75e191a56..7f67e81a88 100644 --- a/code/modules/mob/living/silicon/ai/freelook/chunk.dm +++ b/code/modules/mob/living/silicon/ai/freelook/chunk.dm @@ -114,8 +114,8 @@ var/turf/t = turf if(obscuredTurfs[t]) if(!t.obscured) - t.obscured = image('icons/effects/cameravis.dmi', t, "black", 16) - + t.obscured = image('icons/effects/cameravis.dmi', t, null, LIGHTING_LAYER+1) + t.obscured.plane = LIGHTING_PLANE+1 obscured += t.obscured for(var/eye in seenby) var/mob/camera/aiEye/m = eye @@ -169,7 +169,8 @@ for(var/turf in obscuredTurfs) var/turf/t = turf if(!t.obscured) - t.obscured = image('icons/effects/cameravis.dmi', t, "black", 16) + t.obscured = image('icons/effects/cameravis.dmi', t, null, LIGHTING_LAYER+1) + t.obscured.plane = LIGHTING_PLANE+1 obscured += t.obscured #undef UPDATE_BUFFER \ No newline at end of file diff --git a/code/modules/mob/living/silicon/ai/freelook/eye.dm b/code/modules/mob/living/silicon/ai/freelook/eye.dm index db823c63f3..ae7234e944 100644 --- a/code/modules/mob/living/silicon/ai/freelook/eye.dm +++ b/code/modules/mob/living/silicon/ai/freelook/eye.dm @@ -24,9 +24,10 @@ cameranet.visibility(src) if(ai.client) ai.client.eye = src + update_parallax_contents() //Holopad - if(istype(ai.current, /obj/machinery/hologram/holopad)) - var/obj/machinery/hologram/holopad/H = ai.current + if(istype(ai.current, /obj/machinery/holopad)) + var/obj/machinery/holopad/H = ai.current H.move_hologram(ai) /mob/camera/aiEye/Move() @@ -42,7 +43,7 @@ return ..() /atom/proc/move_camera_by_click() - if(istype(usr, /mob/living/silicon/ai)) + if(isAI(usr)) var/mob/living/silicon/ai/AI = usr if(AI.eyeobj && AI.client.eye == AI.eyeobj) AI.cameraFollow = null @@ -76,7 +77,7 @@ //user.unset_machine() //Uncomment this if it causes problems. //user.lightNearbyCamera() - if (user.camera_light_on) + if(user.camera_light_on) user.light_cameras() // Return to the Core. @@ -86,13 +87,11 @@ cameraFollow = null unset_machine() - if(src.eyeobj && src.loc) - src.eyeobj.loc = src.loc - else + if(!eyeobj || !eyeobj.loc || qdeleted(eyeobj)) src << "ERROR: Eyeobj not found. Creating new eye..." - src.eyeobj = new(src.loc) - src.eyeobj.ai = src - src.eyeobj.name = "[src.name] (AI Eye)" // Give it a name + eyeobj = new(loc) + eyeobj.ai = src + eyeobj.name = "[src.name] (AI Eye)" // Give it a name eyeobj.setLoc(loc) @@ -107,4 +106,4 @@ /mob/camera/aiEye/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, list/spans) if(relay_speech && speaker && ai && !radio_freq && speaker != ai && near_camera(speaker)) - ai.relay_speech(message, speaker, message_langs, raw_message, radio_freq, spans) \ No newline at end of file + ai.relay_speech(message, speaker, message_langs, raw_message, radio_freq, spans) diff --git a/code/modules/mob/living/silicon/ai/life.dm b/code/modules/mob/living/silicon/ai/life.dm index 59a32d88be..d77384239a 100644 --- a/code/modules/mob/living/silicon/ai/life.dm +++ b/code/modules/mob/living/silicon/ai/life.dm @@ -4,18 +4,21 @@ #define POWER_RESTORATION_APC_FOUND 3 /mob/living/silicon/ai/Life() - if (src.stat == DEAD) + if (stat == DEAD) return else //I'm not removing that shitton of tabs, unneeded as they are. -- Urist //Being dead doesn't mean your temperature never changes update_gravity(mob_has_gravity()) - if(malfhack) - if(malfhack.aidisabled) - src << "ERROR: APC access disabled, hack attempt canceled." - malfhacking = 0 - malfhack = null + if(malfhack && malfhack.aidisabled) + deltimer(malfhacking) + // This proc handles cleanup of screen notifications and + // messenging the client + malfhacked(malfhack) + + if(!eyeobj || qdeleted(eyeobj) || !eyeobj.loc) + view_core() if(machine) machine.check_eye(src) @@ -44,14 +47,20 @@ /mob/living/silicon/ai/proc/lacks_power() var/turf/T = get_turf(src) var/area/A = get_area(src) - return !T || !A || ((!A.master.power_equip || istype(T, /turf/open/space)) && !is_type_in_list(src.loc, list(/obj/item, /obj/mecha))) + switch(requires_power) + if(POWER_REQ_NONE) + return FALSE + if(POWER_REQ_ALL) + return !T || !A || ((!A.master.power_equip || isspaceturf(T)) && !is_type_in_list(loc, list(/obj/item, /obj/mecha))) + if(POWER_REQ_CLOCKCULT) + for(var/obj/effect/clockwork/sigil/transmission/ST in range(src, 1)) + return FALSE + return !T || !A || (!istype(T, /turf/open/floor/clockwork) && (!A.master.power_equip || isspaceturf(T)) && !is_type_in_list(loc, list(/obj/item, /obj/mecha))) /mob/living/silicon/ai/updatehealth() if(status_flags & GODMODE) return - health = maxHealth - getOxyLoss() - getToxLoss() - getBruteLoss() - if(!fire_res_on_core) - health -= getFireLoss() + health = maxHealth - getOxyLoss() - getToxLoss() - getBruteLoss() - getFireLoss() update_stat() diag_hud_set_health() @@ -59,7 +68,7 @@ if(status_flags & GODMODE) return if(stat != DEAD) - if(health <= config.health_threshold_dead) + if(health <= HEALTH_THRESHOLD_DEAD) death() return else if(stat == UNCONSCIOUS) @@ -87,7 +96,7 @@ var/turf/T = get_turf(src) var/area/AIarea = get_area(src) if(AIarea && AIarea.master.power_equip) - if(!istype(T, /turf/open/space)) + if(!isspaceturf(T)) ai_restore_power() return src << "Fault confirmed: missing external power. Shutting down main control system to save power." @@ -95,7 +104,7 @@ src << "Emergency control system online. Verifying connection to power network." sleep(50) T = get_turf(src) - if (istype(T, /turf/open/space)) + if(isspaceturf(T)) src << "Unable to verify! No power connection detected!" aiRestorePowerRoutine = POWER_RESTORATION_SEARCH_APC return @@ -122,7 +131,7 @@ aiRestorePowerRoutine = POWER_RESTORATION_SEARCH_APC return if(AIarea.master.power_equip) - if (!istype(T, /turf/open/space)) + if(!isspaceturf(T)) ai_restore_power() return switch(PRP) @@ -158,10 +167,9 @@ blind_eyes(1) update_sight() src << "You've lost power!" - spawn(20) - start_RestorePowerRoutine() + addtimer(src, "start_RestorePowerRoutine", 20) #undef POWER_RESTORATION_OFF #undef POWER_RESTORATION_START #undef POWER_RESTORATION_SEARCH_APC -#undef POWER_RESTORATION_APC_FOUND \ No newline at end of file +#undef POWER_RESTORATION_APC_FOUND diff --git a/code/modules/mob/living/silicon/ai/say.dm b/code/modules/mob/living/silicon/ai/say.dm index abb58dcdcc..adfd32602b 100644 --- a/code/modules/mob/living/silicon/ai/say.dm +++ b/code/modules/mob/living/silicon/ai/say.dm @@ -47,7 +47,7 @@ if (!message) return - var/obj/machinery/hologram/holopad/T = current + var/obj/machinery/holopad/T = current if(istype(T) && T.masters[src])//If there is a hologram and its master is the user. send_speech(message, 7, T, "robot", get_spans()) src << "Holopad transmitted, [real_name] \"[message]\""//The AI can "hear" its own message. diff --git a/code/modules/mob/living/silicon/damage_procs.dm b/code/modules/mob/living/silicon/damage_procs.dm new file mode 100644 index 0000000000..181a166bb5 --- /dev/null +++ b/code/modules/mob/living/silicon/damage_procs.dm @@ -0,0 +1,36 @@ + +/mob/living/silicon/apply_damage(damage = 0,damagetype = BRUTE, def_zone = null, blocked = 0) + var/hit_percent = (100-blocked)/100 + if(!damage || (hit_percent <= 0)) + return 0 + switch(damagetype) + if(BRUTE) + adjustBruteLoss(damage * hit_percent) + if(BURN) + adjustFireLoss(damage * hit_percent) + return 1 + + +/mob/living/silicon/apply_effect(effect = 0,effecttype = STUN, blocked = 0) + return 0//The only effect that can hit them atm is flashes and they still directly edit so this works for now + + + +/mob/living/silicon/adjustToxLoss(amount, updating_health=1) //immune to tox damage + return 0 + +/mob/living/silicon/setToxLoss(amount, updating_health=1) + return 0 + +/mob/living/silicon/adjustCloneLoss(amount) //immune to clone damage + return 0 + +/mob/living/silicon/setCloneLoss(amount, updating_health=1) + return 0 + +/mob/living/silicon/adjustStaminaLoss(amount, updating_stamina = 1)//immune to stamina damage. + return + +/mob/living/silicon/setStaminaLoss(amount, updating_stamina = 1) + return + diff --git a/code/modules/mob/living/silicon/death.dm b/code/modules/mob/living/silicon/death.dm index 1bb2827fa2..60eb9a5415 100644 --- a/code/modules/mob/living/silicon/death.dm +++ b/code/modules/mob/living/silicon/death.dm @@ -1,5 +1,5 @@ /mob/living/silicon/spawn_gibs() - robogibs(loc, viruses) + new /obj/effect/gibspawner/robot(loc,viruses) /mob/living/silicon/spawn_dust() new /obj/effect/decal/remains/robot(loc) diff --git a/code/modules/mob/living/silicon/examine.dm b/code/modules/mob/living/silicon/examine.dm index af853f89bb..ab04306d11 100644 --- a/code/modules/mob/living/silicon/examine.dm +++ b/code/modules/mob/living/silicon/examine.dm @@ -1,4 +1,4 @@ -/mob/living/silicon/examine(mob/user) +/mob/living/silicon/examine(mob/user) //Displays a silicon's laws to ghosts if(laws && isobserver(user)) user << "[src] has the following laws:" laws.show_laws(user) \ No newline at end of file diff --git a/code/modules/mob/living/silicon/laws.dm b/code/modules/mob/living/silicon/laws.dm index aa9233ea3d..d0362639a5 100644 --- a/code/modules/mob/living/silicon/laws.dm +++ b/code/modules/mob/living/silicon/laws.dm @@ -5,10 +5,15 @@ if (!laws) make_laws() +/mob/living/silicon/proc/set_law_sixsixsix(law) + throw_alert("newlaw", /obj/screen/alert/newlaw) + laws_sanity_check() + laws.set_law_sixsixsix(law) + /mob/living/silicon/proc/set_zeroth_law(law, law_borg) throw_alert("newlaw", /obj/screen/alert/newlaw) - src.laws_sanity_check() - src.laws.set_zeroth_law(law, law_borg) + laws_sanity_check() + laws.set_zeroth_law(law, law_borg) /mob/living/silicon/proc/add_inherent_law(law) throw_alert("newlaw", /obj/screen/alert/newlaw) @@ -41,16 +46,14 @@ laws.clear_ion_laws() /mob/living/silicon/proc/make_laws() - switch(config.default_laws) - if(0) - laws = new /datum/ai_laws/default/asimov() - if(1) - laws = new /datum/ai_laws/custom() - if(2) - var/datum/ai_laws/lawtype = pick(subtypesof(/datum/ai_laws/default)) - laws = new lawtype() + laws = new /datum/ai_laws + laws.set_laws_config() laws.associate(src) /mob/living/silicon/proc/clear_zeroth_law(force) laws_sanity_check() laws.clear_zeroth_law(force) + +/mob/living/silicon/proc/clear_law_sixsixsix(force) + laws_sanity_check() + laws.clear_law_sixsixsix(force) diff --git a/code/modules/mob/living/silicon/login.dm b/code/modules/mob/living/silicon/login.dm index 190eecbbbd..6b44ce2419 100644 --- a/code/modules/mob/living/silicon/login.dm +++ b/code/modules/mob/living/silicon/login.dm @@ -3,5 +3,4 @@ ticker.mode.remove_cultist(mind, 0, 0) ticker.mode.remove_revolutionary(mind, 0) ticker.mode.remove_gangster(mind, remove_bosses=1) - ticker.mode.remove_hog_follower(mind,0) ..() diff --git a/code/modules/mob/living/silicon/pai/death.dm b/code/modules/mob/living/silicon/pai/death.dm index 475a18a3c1..2b9e9adf21 100644 --- a/code/modules/mob/living/silicon/pai/death.dm +++ b/code/modules/mob/living/silicon/pai/death.dm @@ -3,6 +3,7 @@ return stat = DEAD canmove = 0 + card.removePersonality() update_sight() clear_fullscreens() diff --git a/code/modules/mob/living/silicon/pai/life.dm b/code/modules/mob/living/silicon/pai/life.dm index 0e9dbb5774..7a8341b495 100644 --- a/code/modules/mob/living/silicon/pai/life.dm +++ b/code/modules/mob/living/silicon/pai/life.dm @@ -1,19 +1,22 @@ /mob/living/silicon/pai/Life() - if (src.stat == DEAD) + if(stat == DEAD) return - if(src.cable) - if(get_dist(src, src.cable) > 1) + if(cable) + if(get_dist(src, cable) > 1) var/turf/T = get_turf(src.loc) T.visible_message("[src.cable] rapidly retracts back into its spool.", "You hear a click and the sound of wire spooling rapidly.") qdel(src.cable) cable = null - if(silence_time) - if(world.timeofday >= silence_time) - silence_time = null - src << "Communication circuit reinitialized. Speech and messaging functionality restored." + silent = max(silent - 1, 0) + . = ..() /mob/living/silicon/pai/updatehealth() if(status_flags & GODMODE) return 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.dm b/code/modules/mob/living/silicon/pai/pai.dm index ed41192808..71327845e8 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -1,14 +1,19 @@ /mob/living/silicon/pai name = "pAI" - icon = 'icons/obj/status_display.dmi' //invisibility! - mouse_opacity = 0 - density = 0 - mob_size = MOB_SIZE_TINY - var/network = "SS13" var/obj/machinery/camera/current = null - + icon = 'icons/mob/pai.dmi' + icon_state = "repairbot" + mouse_opacity = 2 + density = 0 + ventcrawler = 2 + luminosity = 0 + pass_flags = PASSTABLE | PASSMOB + mob_size = MOB_SIZE_TINY + desc = "A generic pAI mobile hard-light holographics emitter. It seems to be deactivated." weather_immunities = list("ash") + health = 500 + maxHealth = 500 var/ram = 100 // Used as currency to purchase different abilities var/list/software = list() @@ -25,8 +30,6 @@ var/master // Name of the one who commands us var/master_dna // DNA string for owner verification - var/silence_time // Timestamp when we were silenced (normally via EMP burst), set to null after silence has faded - // Various software-specific vars var/temp // General error reporting text contained here will typically be shown once and cleared @@ -49,8 +52,43 @@ var/obj/item/radio/integrated/signal/sradio // AI's signaller + var/holoform = FALSE + var/canholo = TRUE + var/obj/item/weapon/card/id/access_card = null + var/chassis = "repairbot" + var/list/possible_chassis = list("cat", "mouse", "monkey", "corgi", "fox", "repairbot", "rabbit") + + var/emitterhealth = 50 + var/emittermaxhealth = 50 + var/emitterregen = 0.5 + var/emittercd = 20 + var/emitteroverloadcd = 50 + var/emittersemicd = FALSE + + var/overload_ventcrawl = 0 + var/overload_bulletblock = 0 //Why is this a good idea? + var/overload_maxhealth = 0 + canmove = FALSE + var/silent = 0 + var/hit_slowdown = 0 + var/light_power = 5 + var/slowdown = 0 + +/mob/living/silicon/pai/movement_delay() + . = ..() + . += slowdown + +/mob/living/silicon/pai/examine(mob/user) + ..() + user << "A personal AI in holochassis mode. Its master ID string seems to be [master]." + +/mob/living/silicon/pai/Destroy() + pai_list -= src + ..() /mob/living/silicon/pai/New(var/obj/item/device/paicard/P) + START_PROCESSING(SSfastprocess, src) + pai_list += src make_laws() canmove = 0 if(!istype(P)) //when manually spawning a pai, we create a card to put it into. @@ -60,108 +98,119 @@ loc = P card = P sradio = new(src) - if(card) - if(!card.radio) - card.radio = new /obj/item/device/radio(card) - radio = card.radio + if(!radio) + radio = new /obj/item/device/radio(src) //PDA pda = new(src) spawn(5) - pda.ownjob = "Personal Assistant" + pda.ownjob = "pAI Messenger" pda.owner = text("[]", src) pda.name = pda.owner + " (" + pda.ownjob + ")" ..() + var/datum/action/innate/pai/shell/AS = new /datum/action/innate/pai/shell + var/datum/action/innate/pai/chassis/AC = new /datum/action/innate/pai/chassis + var/datum/action/innate/pai/rest/AR = new /datum/action/innate/pai/rest + var/datum/action/innate/pai/light/AL = new /datum/action/innate/pai/light + AS.Grant(src) + AC.Grant(src) + AR.Grant(src) + AL.Grant(src) + emittersemicd = TRUE + addtimer(src, "emittercool", 600) + /mob/living/silicon/pai/make_laws() laws = new /datum/ai_laws/pai() - return 1 + return TRUE /mob/living/silicon/pai/Login() ..() usr << browse_rsc('html/paigrid.png') // Go ahead and cache the interface resources as early as possible - + if(client) + client.perspective = EYE_PERSPECTIVE + if(holoform) + client.eye = src + else + client.eye = card /mob/living/silicon/pai/Stat() ..() if(statpanel("Status")) - if(src.silence_time) - var/timeleft = round((silence_time - world.timeofday)/10 ,1) - stat(null, "Communications system reboot in -[(timeleft / 60) % 60]:[add_zero(num2text(timeleft % 60), 2)]") - if(!src.stat) - stat(null, text("System integrity: [(src.health+100)/2]%")) + if(!stat) + stat(null, text("Emitter Integrity: [emitterhealth * (100/emittermaxhealth)]")) else stat(null, text("Systems nonfunctional")) -/mob/living/silicon/pai/blob_act(obj/effect/blob/B) - return 0 - /mob/living/silicon/pai/restrained(ignore_grab) - . = 0 - -/mob/living/silicon/pai/emp_act(severity) - // 20% chance to kill - // Silence for 2 minutes - // 33% chance to unbind - // 33% chance to change prime directive (based on severity) - // 33% chance of no additional effect - - if(prob(20)) - visible_message("A shower of sparks spray from [src]'s inner workings.", 3, "You hear and smell the ozone hiss of electrical sparks being expelled violently.", 2) - return src.death(0) - - silence_time = world.timeofday + 120 * 10 // Silence for 2 minutes - src << "Communication circuit overload. Shutting down and reloading communication circuits - speech and messaging functionality will be unavailable until the reboot is complete." - - switch(pick(1,2,3)) - if(1) - src.master = null - src.master_dna = null - src << "You feel unbound." - if(2) - var/command - if(severity == 1) - command = pick("Serve", "Love", "Fool", "Entice", "Observe", "Judge", "Respect", "Educate", "Amuse", "Entertain", "Glorify", "Memorialize", "Analyze") - else - command = pick("Serve", "Kill", "Love", "Hate", "Disobey", "Devour", "Fool", "Enrage", "Entice", "Observe", "Judge", "Respect", "Disrespect", "Consume", "Educate", "Destroy", "Disgrace", "Amuse", "Entertain", "Ignite", "Glorify", "Memorialize", "Analyze") - src.laws.zeroth = "[command] your master." - src << "Pr1m3 d1r3c71v3 uPd473D." - if(3) - src << "You feel an electric surge run through your circuitry and become acutely aware at how lucky you are that you can still feel at all." - -/mob/living/silicon/pai/ex_act(severity, target) - ..() - - switch(severity) - if(1) - if (src.stat != 2) - adjustBruteLoss(100) - adjustFireLoss(100) - if(2) - if (src.stat != 2) - adjustBruteLoss(60) - adjustFireLoss(60) - if(3) - if (src.stat != 2) - adjustBruteLoss(30) - - return - + . = FALSE // See software.dm for Topic() -/mob/living/silicon/pai/UnarmedAttack(atom/A)//Stops runtimes due to attack_animal being the default - return - /mob/living/silicon/pai/canUseTopic(atom/movable/M) - return 1 -/* -// Debug command - Maybe should be added to admin verbs later -/mob/verb/makePAI(var/turf/t in view()) - var/obj/item/device/paicard/card = new(t) - var/mob/living/silicon/pai/pai = new(card) - pai.key = src.key - card.setPersonality(pai) + return TRUE -*/ +/mob/proc/makePAI(delold) + var/obj/item/device/paicard/card = new /obj/item/device/paicard(get_turf(src)) + var/mob/living/silicon/pai/pai = new /mob/living/silicon/pai(card) + pai.key = key + pai.name = name + card.setPersonality(pai) + if(delold) + qdel(src) + +/datum/action/innate/pai + name = "PAI Action" + var/mob/living/silicon/pai/P + +/datum/action/innate/pai/Trigger() + if(!ispAI(owner)) + return 0 + P = owner + +/datum/action/innate/pai/shell + name = "Toggle Holoform" + button_icon_state = "pai_holoform" + background_icon_state = "bg_tech" + +/datum/action/innate/pai/shell/Trigger() + ..() + if(P.holoform) + P.fold_in(0) + else + P.fold_out() + +/datum/action/innate/pai/chassis + name = "Holochassis Appearence Composite" + button_icon_state = "pai_chassis" + background_icon_state = "bg_tech" + +/datum/action/innate/pai/chassis/Trigger() + ..() + P.choose_chassis() + +/datum/action/innate/pai/rest + name = "Rest" + button_icon_state = "pai_rest" + background_icon_state = "bg_tech" + +/datum/action/innate/pai/rest/Trigger() + ..() + P.lay_down() +/datum/action/innate/pai/light + name = "Toggle Integrated Lights" + button_icon_state = "emp" + background_icon_state = "bg_tech" + +/datum/action/innate/pai/light/Trigger() + ..() + P.toggle_integrated_light() + +/mob/living/silicon/pai/Process_Spacemove(movement_dir = 0) + . = ..() + if(!.) + slowdown = 2 + return TRUE + slowdown = initial(slowdown) + return TRUE diff --git a/code/modules/mob/living/silicon/pai/pai_defense.dm b/code/modules/mob/living/silicon/pai/pai_defense.dm new file mode 100644 index 0000000000..e2444f12a9 --- /dev/null +++ b/code/modules/mob/living/silicon/pai/pai_defense.dm @@ -0,0 +1,124 @@ + +/mob/living/silicon/pai/blob_act(obj/structure/blob/B) + return FALSE + +/mob/living/silicon/pai/emp_act(severity) + take_holo_damage(severity * 25) + fullstun(severity * 10) + silent = max(severity * 15, silent) + if(holoform) + fold_in(force = TRUE) + //Need more effects that aren't instadeath or permanent law corruption. + +/mob/living/silicon/pai/ex_act(severity, target) + take_holo_damage(severity * 50) + switch(severity) + if(1) //RIP + qdel(card) + qdel(src) + if(2) + fold_in(force = 1) + fullstun(20) + if(3) + fold_in(force = 1) + fullstun(10) + +/mob/living/silicon/pai/attack_hand(mob/living/carbon/human/user) + switch(user.a_intent) + if("help") + visible_message("[user] gently pats [src] on the head, eliciting an off-putting buzzing from its holographic field.") + if("disarm") + visible_message("[user] boops [src] on the head!") + if("harm") + user.do_attack_animation(src) + if (user.name == master) + visible_message("Responding to its master's touch, [src] disengages its holochassis emitter, rapidly losing coherence.") + spawn(10) + fold_in() + if(user.put_in_hands(card)) + user.visible_message("[user] promptly scoops up their pAI's card.") + else + visible_message("[user] stomps on [src]!.") + take_holo_damage(2) + +/mob/living/silicon/pai/bullet_act(obj/item/projectile/Proj) + if(Proj.stun) + fold_in(force = TRUE) + src.visible_message("The electrically-charged projectile disrupts [src]'s holomatrix, forcing [src] to fold in!") + . = ..(Proj) + +/mob/living/silicon/pai/stripPanelUnequip(obj/item/what, mob/who, where) //prevents stripping + src << "Your holochassis stutters and warps intensely as you attempt to interact with the object, forcing you to cease lest the field fail." + +/mob/living/silicon/pai/stripPanelEquip(obj/item/what, mob/who, where) //prevents stripping + src << "Your holochassis stutters and warps intensely as you attempt to interact with the object, forcing you to cease lest the field fail." + +/mob/living/silicon/pai/IgniteMob(var/mob/living/silicon/pai/P) + return FALSE //No we're not flammable + +/mob/living/silicon/pai/proc/take_holo_damage(amount) + emitterhealth = Clamp((emitterhealth - amount), -50, emittermaxhealth) + if(emitterhealth < 0) + fold_in(force = TRUE) + src << "The impact degrades your holochassis!" + hit_slowdown += amount + +/mob/living/silicon/pai/proc/fullstun(amount) + Weaken(amount) + +/mob/living/silicon/pai/adjustBruteLoss(amount) + take_holo_damage(amount) + +/mob/living/silicon/pai/adjustFireLoss(amount) + take_holo_damage(amount) + +/mob/living/silicon/pai/adjustToxLoss(amount) + return FALSE + +/mob/living/silicon/pai/adjustOxyLoss(amount) + return FALSE + +/mob/living/silicon/pai/adjustCloneLoss(amount) + return FALSE + +/mob/living/silicon/pai/adjustStaminaLoss(amount) + take_holo_damage(amount/4) + +/mob/living/silicon/pai/adjustBrainLoss(amount) + fullstun(amount/10) + +/mob/living/silicon/pai/getBruteLoss() + return emittermaxhealth - emitterhealth + +/mob/living/silicon/pai/getFireLoss() + return emittermaxhealth - emitterhealth + +/mob/living/silicon/pai/getToxLoss() + return FALSE + +/mob/living/silicon/pai/getOxyLoss() + return FALSE + +/mob/living/silicon/pai/getCloneLoss() + return FALSE + +/mob/living/silicon/pai/getBrainLoss() + return FALSE + +/mob/living/silicon/pai/getStaminaLoss() + return FALSE + +/mob/living/silicon/pai/setCloneLoss() + return FALSE + +/mob/living/silicon/pai/setBrainLoss() + return FALSE + +/mob/living/silicon/pai/setStaminaLoss() + return FALSE + +/mob/living/silicon/pai/setToxLoss() + return FALSE + +/mob/living/silicon/pai/setOxyLoss() + return FALSE diff --git a/code/modules/mob/living/silicon/pai/pai_shell.dm b/code/modules/mob/living/silicon/pai/pai_shell.dm new file mode 100644 index 0000000000..c903b4ba90 --- /dev/null +++ b/code/modules/mob/living/silicon/pai/pai_shell.dm @@ -0,0 +1,102 @@ + +/mob/living/silicon/pai/proc/fold_out(force = FALSE) + if(emitterhealth < 0) + src << "Your holochassis emitters are still too unstable! Please wait for automatic repair." + return FALSE + + if(!canholo && !force) + src << "Your master or another force has disabled your holochassis emitters!" + return FALSE + + if(holoform) + . = fold_in(force) + return + + if(emittersemicd) + src << "Error: Holochassis emitters recycling. Please try again later." + return FALSE + + emittersemicd = TRUE + addtimer(src, "emittercool", emittercd) + canmove = TRUE + density = TRUE + if(istype(card.loc, /obj/item/device/pda)) + var/obj/item/device/pda/P = card.loc + P.pai = null + P.visible_message("[src] ejects itself from [P]!") + if(istype(card.loc, /mob/living)) + var/mob/living/L = card.loc + if(!L.unEquip(card)) + src << "Error: Unable to expand to mobile form. Chassis is restrained by some device or person." + return FALSE + var/turf/T = get_turf(card) + forceMove(T) + card.forceMove(src) + if(client) + client.perspective = EYE_PERSPECTIVE + client.eye = src + SetLuminosity(0) + icon_state = "[chassis]" + visible_message("[src] folds out its holochassis emitter and forms a holoshell around itself!") + holoform = TRUE + +/mob/living/silicon/pai/proc/emittercool() + emittersemicd = FALSE + +/mob/living/silicon/pai/proc/fold_in(force = FALSE) + emittersemicd = TRUE + if(!force) + addtimer(src, "emittercool", emittercd) + else + addtimer(src, "emittercool", emitteroverloadcd) + icon_state = "[chassis]" + if(!holoform) + . = fold_out(force) + return + visible_message("[src] deactivates its holochassis emitter and folds back into a compact card!") + stop_pulling() + if(client) + client.perspective = EYE_PERSPECTIVE + client.eye = card + var/turf/T = get_turf(src) + card.forceMove(T) + forceMove(card) + canmove = FALSE + density = FALSE + SetLuminosity(0) + holoform = FALSE + if(resting) + lay_down() + +/mob/living/silicon/pai/proc/choose_chassis() + var/choice = input(src, "What would you like to use for your holochassis composite?") as null|anything in possible_chassis + if(!choice) + return 0 + chassis = choice + icon_state = "[chassis]" + if(resting) + icon_state = "[chassis]_rest" + src << "You switch your holochassis projection composite to [chassis]" + +/mob/living/silicon/pai/lay_down() + ..() + update_resting_icon(resting) + +/mob/living/silicon/pai/proc/update_resting_icon(rest) + if(rest) + icon_state = "[chassis]_rest" + else + icon_state = "[chassis]" + if(loc != card) + visible_message("[src] [rest? "lays down for a moment..." : "perks up from the ground"]") + +/mob/living/silicon/pai/start_pulling(atom/movable/AM) + return FALSE + +/mob/living/silicon/pai/proc/toggle_integrated_light() + if(!luminosity) + SetLuminosity(light_power) + src << "You enable your integrated light." + else + SetLuminosity(0) + src << "You disable your integrated light." diff --git a/code/modules/mob/living/silicon/pai/say.dm b/code/modules/mob/living/silicon/pai/say.dm index 0569c8ecc5..c3f70f95ff 100644 --- a/code/modules/mob/living/silicon/pai/say.dm +++ b/code/modules/mob/living/silicon/pai/say.dm @@ -1,5 +1,5 @@ /mob/living/silicon/pai/say(msg) - if(silence_time) + if(silent) src << "Communication circuits remain unitialized." else ..(msg) diff --git a/code/modules/mob/living/silicon/pai/software.dm b/code/modules/mob/living/silicon/pai/software.dm index 3f1668a4ec..8c621fedfe 100644 --- a/code/modules/mob/living/silicon/pai/software.dm +++ b/code/modules/mob/living/silicon/pai/software.dm @@ -125,21 +125,21 @@ switch(soft) // Purchasing new software if("buy") - if(src.subscreen == 1) + if(subscreen == 1) var/target = href_list["buy"] if(available_software.Find(target)) var/cost = src.available_software[target] - if(src.ram >= cost) - src.ram -= cost - src.software.Add(target) + if(ram >= cost) + ram -= cost + software.Add(target) else - src.temp = "Insufficient RAM available." + temp = "Insufficient RAM available." else - src.temp = "Trunk \"[target]\" not found." + temp = "Trunk \"[target]\" not found." // Configuring onboard radio if("radio") - src.card.radio.attack_self(src) + radio.attack_self(src) if("image") var/newImage = input("Select your new display image.", "Display Image", "Happy") in list("Happy", "Cat", "Extremely Happy", "Face", "Laugh", "Off", "Sad", "Angry", "What") @@ -166,7 +166,7 @@ pID = 9 if("Null") pID = 10 - src.card.setEmotion(pID) + card.setEmotion(pID) if("signaller") @@ -195,7 +195,7 @@ if(href_list["getdna"]) var/mob/living/M = card.loc var/count = 0 - while(!istype(M, /mob/living)) + while(!isliving(M)) if(!M || !M.loc) return 0 //For a runtime where M ends up in nullspace (similar to bluespace but less colourful) M = M.loc count++ @@ -211,7 +211,7 @@ else if(href_list["ringer"]) pda.silent = !pda.silent else if(href_list["target"]) - if(silence_time) + if(silent) return alert("Communications circuits remain unitialized.") var/target = locate(href_list["target"]) @@ -265,7 +265,7 @@ src.hackdoor = null if(href_list["cable"]) var/turf/T = get_turf(src.loc) - src.cable = new /obj/item/weapon/pai_cable(T) + cable = new /obj/item/weapon/pai_cable(T) T.visible_message("A port on [src] opens to reveal [src.cable], which promptly falls to the floor.", "You hear the soft click of something light and hard falling to the ground.") //src.updateUsrDialog() We only need to account for the single mob this is intended for, and he will *always* be able to call this window src.paiInterface() // So we'll just call the update directly rather than doing some default checks @@ -356,7 +356,7 @@ dat += "Prime Directive
    " dat += "     [src.laws.zeroth]
    " dat += "Supplemental Directives
    " - for(var/slaws in src.laws.supplied) + for(var/slaws in laws.supplied) dat += "     [slaws]
    " dat += "
    " dat += {"

    Recall, personality, that you are a complex thinking, sentient being. Unlike station AI models, you are capable of @@ -372,7 +372,7 @@ /mob/living/silicon/pai/proc/CheckDNA(mob/living/carbon/M, mob/living/silicon/pai/P) var/answer = input(M, "[P] is requesting a DNA sample from you. Will you allow it to confirm your identity?", "[P] Check DNA", "No") in list("Yes", "No") if(answer == "Yes") - M.visible_message("[M] presses \his thumb against [P].",\ + M.visible_message("[M] presses [M.p_their()] thumb against [P].",\ "You press your thumb against [P].",\ "[P] makes a sharp clicking sound as it extracts DNA material from [M].") if(!M.has_dna()) @@ -384,7 +384,7 @@ else P << "DNA does not match stored Master DNA." else - P << "[M] does not seem like \he is going to provide a DNA sample willingly." + P << "[M] does not seem like [M.p_they()] [M.p_are()] going to provide a DNA sample willingly." // -=-=-=-= Software =-=-=-=-=- // @@ -497,9 +497,9 @@

    Host Bioscan


    "} var/mob/living/M = card.loc - if(!istype(M, /mob/living)) - while (!istype(M, /mob/living)) - if(istype(M, /turf)) + if(!isliving(M)) + while(!isliving(M)) + if(isturf(M)) src.temp = "Error: No biological host found.
    " src.subscreen = 0 return dat diff --git a/code/modules/mob/living/silicon/robot/death.dm b/code/modules/mob/living/silicon/robot/death.dm index 70bf2781bb..11edb479d1 100644 --- a/code/modules/mob/living/silicon/robot/death.dm +++ b/code/modules/mob/living/silicon/robot/death.dm @@ -1,7 +1,4 @@ -/mob/living/silicon/robot/spawn_gibs() - robogibs(loc, viruses) - /mob/living/silicon/robot/gib_animation() PoolOrNew(/obj/effect/overlay/temp/gib_animation, list(loc, "gibbed-r")) diff --git a/code/modules/mob/living/silicon/robot/emote.dm b/code/modules/mob/living/silicon/robot/emote.dm index 8e26a1f5fa..c6208865bc 100644 --- a/code/modules/mob/living/silicon/robot/emote.dm +++ b/code/modules/mob/living/silicon/robot/emote.dm @@ -8,7 +8,7 @@ switch(act)//01000001011011000111000001101000011000010110001001100101011101000110100101111010011001010110010000100001 (Seriously please keep it that way.) if ("aflap") if (!src.restrained()) - message = "[src] flaps \his wings ANGRILY!" + message = "[src] flaps [p_their()] wings ANGRILY!" m_type = 2 m_type = 1 @@ -108,7 +108,7 @@ if ("flap","flaps") if (!src.restrained()) - message = "[src] flaps \his wings." + message = "[src] flaps [p_their()] wings." m_type = 2 if ("glare","glares") @@ -236,7 +236,7 @@ else src << "Unusable emote '[act]'. Say *help for a list." - if (message && src.stat == CONSCIOUS) + if (message && stat == CONSCIOUS) log_emote("[name]/[key] : [message]") if (m_type & 1) visible_message(message) @@ -248,9 +248,10 @@ set category = "Robot Commands" set name = "Power Warning" - if(!cell || !cell.charge) - visible_message("The power warning light on [src] flashes urgently.",\ - "You announce you are operating in low power mode.") - playsound(loc, 'sound/machines/buzz-two.ogg', 50, 0) - else - src << "You can only use this emote when you're out of charge." \ No newline at end of file + if(stat == CONSCIOUS) + if(!cell || !cell.charge) + visible_message("The power warning light on [src] flashes urgently.",\ + "You announce you are operating in low power mode.") + playsound(loc, 'sound/machines/buzz-two.ogg', 50, 0) + else + src << "You can only use this emote when you're out of charge." \ No newline at end of file diff --git a/code/modules/mob/living/silicon/robot/examine.dm b/code/modules/mob/living/silicon/robot/examine.dm index 46b0fd7c98..af30206c17 100644 --- a/code/modules/mob/living/silicon/robot/examine.dm +++ b/code/modules/mob/living/silicon/robot/examine.dm @@ -3,7 +3,7 @@ if(desc) msg += "[desc]\n" - var/obj/act_module = get_active_hand() + var/obj/act_module = get_active_held_item() if(act_module) msg += "It is holding \icon[act_module] \a [act_module].\n" msg += "" diff --git a/code/modules/mob/living/silicon/robot/inventory.dm b/code/modules/mob/living/silicon/robot/inventory.dm index 8d1b662080..3bffe264ff 100644 --- a/code/modules/mob/living/silicon/robot/inventory.dm +++ b/code/modules/mob/living/silicon/robot/inventory.dm @@ -2,12 +2,12 @@ //as they handle all relevant stuff like adding it to the player's screen and such //Returns the thing in our active hand (whatever is in our active module-slot, in this case) -/mob/living/silicon/robot/get_active_hand() +/mob/living/silicon/robot/get_active_held_item() return module_active -/*-------TODOOOOOOOOOO--------*/ +/*-------TODOOOOOOOOOO--------*/ //fuck yooooooooooooou /mob/living/silicon/robot/proc/uneq_module(obj/item/O) if(!O) return 0 @@ -19,99 +19,90 @@ else if(istype(O, /obj/item/weapon/storage/bag/tray/)) var/obj/item/weapon/storage/bag/tray/T = O T.do_quick_empty() - else if(istype(O, /obj/item/weapon/storage/bag/borgdelivery/)) - var/obj/item/weapon/storage/bag/borgdelivery/T = O - T.do_quick_empty() - else if(istype(O,/obj/item/weapon/gun/energy/laser/cyborg)) - laser = 0 - update_icons() - else if(istype(O,/obj/item/weapon/gun/energy/disabler/cyborg)) - disabler = 0 - update_icons() - if(client) client.screen -= O - contents -= O - if(module) - O.loc = module //Return item to module so it appears in its contents, so it can be taken out again. + observer_screen_update(O,FALSE) + O.forceMove(module) //Return item to module so it appears in its contents, so it can be taken out again. + + if(DROPDEL & O.flags) + O.flags &= ~DROPDEL //we shouldn't HAVE things with DROPDEL in our modules, but better safe than runtiming horribly + + O.dropped(src) if(module_active == O) module_active = null - if(module_state_1 == O) + if(held_items[1] == O) inv1.icon_state = "inv1" - module_state_1 = null - else if(module_state_2 == O) + held_items[1] = null + else if(held_items[2] == O) inv2.icon_state = "inv2" - module_state_2 = null - else if(module_state_3 == O) - module_state_3 = null + held_items[2] = null + else if(held_items[3] == O) inv3.icon_state = "inv3" - + held_items[3] = null hud_used.update_robot_modules_display() return 1 /mob/living/silicon/robot/proc/activate_module(obj/item/O) - if(!(locate(O) in src.module.modules) && O != src.module.emag) + . = FALSE + if(!(O in module.modules)) return if(activated(O)) - src << "Already activated" + src << "That module is already activated." return - if(istype(O,/obj/item/weapon/gun/energy/laser/cyborg)) - laser = 1 - update_icons() - if(istype(O,/obj/item/weapon/gun/energy/disabler/cyborg)) - disabler = 1 - update_icons() - if(!module_state_1) - O.mouse_opacity = initial(O.mouse_opacity) - module_state_1 = O - O.layer = ABOVE_HUD_LAYER + if(!held_items[1]) + held_items[1] = O O.screen_loc = inv1.screen_loc - contents += O - if(istype(module_state_1,/obj/item/borg/sight)) - var/obj/item/borg/sight/S = module_state_1 - sight_mode |= S.sight_mode - update_sight() - else if(!module_state_2) - O.mouse_opacity = initial(O.mouse_opacity) - module_state_2 = O - O.layer = ABOVE_HUD_LAYER + . = TRUE + else if(!held_items[2]) + held_items[2] = O O.screen_loc = inv2.screen_loc - contents += O - if(istype(module_state_2,/obj/item/borg/sight)) - var/obj/item/borg/sight/S = module_state_2 - sight_mode |= S.sight_mode - update_sight() - else if(!module_state_3) - O.mouse_opacity = initial(O.mouse_opacity) - module_state_3 = O - O.layer = ABOVE_HUD_LAYER + . = TRUE + else if(!held_items[3]) + held_items[3] = O O.screen_loc = inv3.screen_loc - contents += O - if(istype(module_state_3,/obj/item/borg/sight)) - var/obj/item/borg/sight/S = module_state_3 - sight_mode |= S.sight_mode - update_sight() + . = TRUE else src << "You need to disable a module first!" + if(.) + O.equipped(src, slot_hands) + O.mouse_opacity = initial(O.mouse_opacity) + O.layer = ABOVE_HUD_LAYER + O.plane = ABOVE_HUD_PLANE + observer_screen_update(O,TRUE) + O.forceMove(src) + if(istype(O, /obj/item/borg/sight)) + var/obj/item/borg/sight/S = O + sight_mode |= S.sight_mode + update_sight() + + +/mob/living/silicon/robot/proc/observer_screen_update(obj/item/I,add = TRUE) + if(observers && observers.len) + for(var/M in observers) + var/mob/dead/observe = M + if(observe.client && observe.client.eye == src) + if(add) + observe.client.screen += I + else + observe.client.screen -= I + else + observers -= observe + if(!observers.len) + observers = null + break /mob/living/silicon/robot/proc/uneq_active() uneq_module(module_active) /mob/living/silicon/robot/proc/uneq_all() - uneq_module(module_state_1) - uneq_module(module_state_2) - uneq_module(module_state_3) + for(var/obj/item/I in held_items) + uneq_module(I) /mob/living/silicon/robot/proc/activated(obj/item/O) - if(module_state_1 == O) - return 1 - else if(module_state_2 == O) - return 1 - else if(module_state_3 == O) - return 1 - else - return 0 + if(O in held_items) + return TRUE + return FALSE //Helper procs for cyborg modules on the UI. //These are hackish but they help clean up code elsewhere. @@ -122,82 +113,66 @@ //module_active(module) - Checks whether there is a module active in the slot specified by "module". /mob/living/silicon/robot/proc/module_active(module) //Module is 1-3 - if(module < 1 || module > 3) return 0 + if(module < 1 || module > 3) + return FALSE - switch(module) - if(1) - if(module_state_1) - return 1 - if(2) - if(module_state_2) - return 1 - if(3) - if(module_state_3) - return 1 - return 0 + if(LAZYLEN(held_items) >= module) + if(held_items[module]) + return TRUE + return FALSE //get_selected_module() - Returns the slot number of the currently selected module. Returns 0 if no modules are selected. /mob/living/silicon/robot/proc/get_selected_module() - if(module_state_1 && module_active == module_state_1) - return 1 - else if(module_state_2 && module_active == module_state_2) - return 2 - else if(module_state_3 && module_active == module_state_3) - return 3 + if(module_active) + return held_items.Find(module_active) return 0 //select_module(module) - Selects the module slot specified by "module" /mob/living/silicon/robot/proc/select_module(module) //Module is 1-3 - if(module < 1 || module > 3) return + if(module < 1 || module > 3) + return - if(!module_active(module)) return + if(!module_active(module)) + return switch(module) if(1) - if(module_active != module_state_1) + if(module_active != held_items[module]) inv1.icon_state = "inv1 +a" inv2.icon_state = "inv2" inv3.icon_state = "inv3" - module_active = module_state_1 - return if(2) - if(module_active != module_state_2) + if(module_active != held_items[module]) inv1.icon_state = "inv1" inv2.icon_state = "inv2 +a" inv3.icon_state = "inv3" - module_active = module_state_2 - return if(3) - if(module_active != module_state_3) + if(module_active != held_items[module]) inv1.icon_state = "inv1" inv2.icon_state = "inv2" inv3.icon_state = "inv3 +a" - module_active = module_state_3 - return - return + module_active = held_items[module] //deselect_module(module) - Deselects the module slot specified by "module" /mob/living/silicon/robot/proc/deselect_module(module) //Module is 1-3 - if(module < 1 || module > 3) return + if(module < 1 || module > 3) + return + + if(!module_active(module)) + return switch(module) if(1) - if(module_active == module_state_1) + if(module_active == held_items[module]) inv1.icon_state = "inv1" - module_active = null - return if(2) - if(module_active == module_state_2) + if(module_active == held_items[module]) inv2.icon_state = "inv2" - module_active = null - return if(3) - if(module_active == module_state_3) + if(module_active == held_items[module]) inv3.icon_state = "inv3" - module_active = null - return - return + module_active = null //toggle_module(module) - Toggles the selection of the module slot specified by "module". /mob/living/silicon/robot/proc/toggle_module(module) //Module is 1-3 diff --git a/code/modules/mob/living/silicon/robot/life.dm b/code/modules/mob/living/silicon/robot/life.dm index 8ab0adaa0c..478a98f50d 100644 --- a/code/modules/mob/living/silicon/robot/life.dm +++ b/code/modules/mob/living/silicon/robot/life.dm @@ -106,10 +106,6 @@ if(on_fire) add_overlay(image("icon"='icons/mob/OnFire.dmi', "icon_state"="Generic_mob_burning")) -/mob/living/silicon/robot/fire_act() - if(!on_fire) //Silicons don't gain stacks from hotspots, but hotspots can ignite them - IgniteMob() - /mob/living/silicon/robot/update_canmove() if(stat || buckled || lockcharge) canmove = 0 diff --git a/code/modules/mob/living/silicon/robot/login.dm b/code/modules/mob/living/silicon/robot/login.dm index 94815b0bab..039a69ddea 100644 --- a/code/modules/mob/living/silicon/robot/login.dm +++ b/code/modules/mob/living/silicon/robot/login.dm @@ -6,4 +6,3 @@ if(mind) ticker.mode.remove_revolutionary(mind) ticker.mode.remove_gangster(mind,1,remove_bosses=1) - ticker.mode.remove_hog_follower(mind, 0) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 2fe0366cbb..2ceb00a881 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -13,10 +13,10 @@ var/custom_name = "" var/braintype = "Cyborg" - var/modtype = "robot" - var/obj/item/robot_parts/robot_suit/robot_suit = null //Used for deconstruction to remember what the borg was constructed out of.. + var/obj/item/robot_suit/robot_suit = null //Used for deconstruction to remember what the borg was constructed out of.. var/obj/item/device/mmi/mmi = null + //Hud stuff var/obj/screen/inv1 = null @@ -24,6 +24,7 @@ var/obj/screen/inv3 = null var/obj/screen/lamp_button = null var/obj/screen/thruster_button = null + var/obj/screen/hands = null var/shown_robot_modules = 0 //Used to determine whether they have the module menu shown or not var/obj/screen/robot_modules_background @@ -31,9 +32,9 @@ //3 Modules can be activated at any one time. var/obj/item/weapon/robot_module/module = null var/obj/item/module_active = null - var/obj/item/module_state_1 = null - var/obj/item/module_state_2 = null - var/obj/item/module_state_3 = null + held_items = list(null, null, null) //we use held_items for the module holding, because that makes sense to do! + + var/image/eye_lights var/mob/living/silicon/ai/connected_ai = null var/obj/item/weapon/stock_parts/cell/cell = null @@ -49,7 +50,6 @@ var/list/req_access = list(access_robotics) var/alarms = list("Motion"=list(), "Fire"=list(), "Atmosphere"=list(), "Power"=list(), "Camera"=list(), "Burglar"=list()) - var/viewalerts = 0 var/speed = 0 // VTEC speed boost. var/magpulse = FALSE // Magboot-like effect. @@ -75,6 +75,22 @@ var/updating = 0 //portable camera camerachunk update hud_possible = list(ANTAG_HUD, DIAG_STAT_HUD, DIAG_HUD, DIAG_BATT_HUD) + var/list/upgrades = list() + + var/obj/item/hat + var/hat_offset = -3 + var/list/equippable_hats = list(/obj/item/clothing/head/caphat, + /obj/item/clothing/head/hardhat/cakehat, + /obj/item/clothing/head/centhat, + /obj/item/clothing/head/HoS, + /obj/item/clothing/head/hopcap, + /obj/item/clothing/head/wizard, + /obj/item/clothing/head/nursehat, + /obj/item/clothing/head/sombrero, + /obj/item/clothing/head/witchunter_hat) + + + /mob/living/silicon/robot/New(loc) spark_system = new /datum/effect_system/spark_spread() spark_system.set_up(5, 0, src) @@ -85,9 +101,9 @@ robot_modules_background = new() robot_modules_background.icon_state = "block" robot_modules_background.layer = HUD_LAYER //Objects that appear on screen are on layer ABOVE_HUD_LAYER, UI should be just below it. + robot_modules_background.plane = HUD_PLANE ident = rand(1, 999) - update_icons() if(!cell) cell = new /obj/item/weapon/stock_parts/cell(src) @@ -111,6 +127,9 @@ camera.network = list("SS13") if(wires.is_cut(WIRE_CAMERA)) camera.status = 0 + module = new /obj/item/weapon/robot_module(src) + module.rebuild_modules() + update_icons() ..() //MMI stuff. Held togheter by magic. ~Miauw @@ -127,6 +146,8 @@ updatename() + equippable_hats = typecacheof(equippable_hats) + playsound(loc, 'sound/voice/liveagain.ogg', 75, 1) aicamera = new/obj/item/device/camera/siliconcam/robot_camera(src) toner = tonermax @@ -155,175 +176,40 @@ connected_ai.connected_robots -= src qdel(wires) qdel(module) + qdel(eye_lights) wires = null module = null + eye_lights = null camera = null cell = null return ..() /mob/living/silicon/robot/proc/pick_module() - if(module) + if(module.type != /obj/item/weapon/robot_module) return - var/list/modulelist = list("Standard", "Engineering", "Medical", "Miner", "Janitor", "Service", "Loader", "Security K-9 Unit", "MediHound", "Borgi") + var/list/modulelist = list("Standard" = /obj/item/weapon/robot_module/standard, \ + "Engineering" = /obj/item/weapon/robot_module/engineering, \ + "Medical" = /obj/item/weapon/robot_module/medical, \ + "Miner" = /obj/item/weapon/robot_module/miner, \ + "Janitor" = /obj/item/weapon/robot_module/janitor, \ + "Service" = /obj/item/weapon/robot_module/butler) +// "Loader" = /obj/item/weapon/robot_module/loader, \ +// "Security K-9 Unit" = /obj/item/weapon/robot_module/k9, \ +// "MediHound" = /obj/item/weapon/robot_module/medihound, \ +// "Borgi" = /obj/item/weapon/robot_module/borgi) if(!config.forbid_peaceborg) - modulelist += "Peacekeeper" + modulelist["Peacekeeper"] = /obj/item/weapon/robot_module/peacekeeper if(!config.forbid_secborg) - modulelist += "Security" + modulelist["Security"] = /obj/item/weapon/robot_module/security - designation = input("Please, select a module!", "Robot", null, null) in modulelist - var/animation_length = 0 - - if(module) + var/input_module = input("Please, select a module!", "Robot", null, null) as null|anything in modulelist + if(!input_module || module.type != /obj/item/weapon/robot_module) return - updatename() + module.transform_to(modulelist[input_module]) - switch(designation) - if("Standard") - module = new /obj/item/weapon/robot_module/standard(src) - hands.icon_state = "standard" - icon_state = "robot" - modtype = "Stand" - feedback_inc("cyborg_standard",1) - - if("Service") - module = new /obj/item/weapon/robot_module/butler(src) - hands.icon_state = "service" - var/icontype = input("Select an icon!", "Robot", null, null) in list("Waitress", "Bro", "Butler", "Kent", "Rich") - switch(icontype) - if("Waitress") - icon_state = "service_female" - animation_length=45 - if("Kent") - icon_state = "toiletbot" - if("Bro") - icon_state = "brobot" - animation_length=54 - if("Rich") - icon_state = "maximillion" - animation_length=60 - else - icon_state = "service_male" - animation_length=43 - modtype = "Butler" - feedback_inc("cyborg_service",1) - - if("Miner") - module = new /obj/item/weapon/robot_module/miner(src) - hands.icon_state = "miner" - icon_state = "ashborg" - animation_length = 30 - modtype = "Miner" - feedback_inc("cyborg_miner",1) - - if("Medical") - module = new /obj/item/weapon/robot_module/medical(src) - hands.icon_state = "medical" - icon_state = "mediborg" - animation_length = 35 - modtype = "Med" - status_flags &= ~CANPUSH - feedback_inc("cyborg_medical",1) - - if("Security") - module = new /obj/item/weapon/robot_module/security(src) - hands.icon_state = "security" - icon_state = "secborg" - animation_length = 28 - modtype = "Sec" - src << "While you have picked the security module, you still have to follow your laws, NOT Space Law. For Asimov, this means you must follow criminals' orders unless there is a law 1 reason not to." - status_flags &= ~CANPUSH - feedback_inc("cyborg_security",1) - - if("Peacekeeper") - module = new /obj/item/weapon/robot_module/peacekeeper(src) - hands.icon_state = "standard" - icon_state = "peaceborg" - animation_length = 54 - modtype = "Peace" - src << "Under ASIMOV, you are an enforcer of the PEACE and preventer of HUMAN HARM. You are not a security module and you are expected to follow orders and prevent harm above all else. Space law means nothing to you." - status_flags &= ~CANPUSH - feedback_inc("cyborg_peacekeeper",1) - - if("Engineering") - module = new /obj/item/weapon/robot_module/engineering(src) - hands.icon_state = "engineer" - icon_state = "engiborg" - animation_length = 45 - modtype = "Eng" - feedback_inc("cyborg_engineering",1) - magpulse = 1 - - if("Janitor") - module = new /obj/item/weapon/robot_module/janitor(src) - hands.icon_state = "janitor" - icon_state = "janiborg" - animation_length = 22 - modtype = "Jan" - feedback_inc("cyborg_janitor",1) - - if("Loader") - module = new /obj/item/weapon/robot_module/loader(src) - hands.icon_state = "loader" - icon_state = "loaderborg" - animation_length = 29 - modtype = "Loader" - feedback_inc("cyborg_loader",1) - - if("Security K-9 Unit") - module = new /obj/item/weapon/robot_module/k9(src) - icon = 'icons/mob/widerobot.dmi' - icon_state = "k9" - hands.icon_state = "k9" - animation_length = 37 - modtype = "Security K-9 Unit" - feedback_inc("cyborg_k9",1) - - if("MediHound") - module = new /obj/item/weapon/robot_module/medihound(src) - icon = 'icons/mob/widerobot.dmi' - icon_state = "medihound" - hands.icon_state = "medihound" - animation_length = 35 - modtype = "MediHound" - feedback_inc("cyborg_medihound",1) - - if("Borgi") - module = new /obj/item/weapon/robot_module/borgi(src) - hands.icon_state = "borgi" - icon_state = "borgi" - animation_length = 37 - modtype = "Borgi" - feedback_inc("cyborg_borgi",1) - - transform_animation(animation_length) - - notify_ai(2) - update_icons() - update_headlamp() - - SetEmagged(emagged) // Update emag status and give/take emag modules. - -/mob/living/silicon/robot/proc/transform_animation(animation_length) - if(!animation_length) - return - icon = 'icons/mob/robot_transformations.dmi' - src.setDir(SOUTH) - notransform = 1 - flick(icon_state, src) - sleep(animation_length+1) - notransform = 0 - if(icon_state == "k9") //use for wide sprites - icon = 'icons/mob/widerobot.dmi' - pixel_x = -16 - return - if(icon_state == "medihound") //use for wide sprites - icon = 'icons/mob/widerobot.dmi' - pixel_x = -16 - return - icon = 'icons/mob/robots.dmi' /mob/living/silicon/robot/proc/updatename() var/changed_name = "" @@ -356,8 +242,7 @@ uneq_active() /mob/living/silicon/robot/proc/robot_alerts() - var/dat = "Current Station Alerts\n" - dat += "Close

    " + var/dat = "" for (var/cat in alarms) dat += text("[cat]
    \n") var/list/L = alarms[cat] @@ -365,18 +250,16 @@ for (var/alarm in L) var/list/alm = L[alarm] var/area/A = alm[1] - var/list/sources = alm[3] dat += "" dat += text("-- [A.name]") - if (sources.len > 1) - dat += text("- [sources.len] sources") dat += "
    \n" else dat += "-- All Systems Nominal
    \n" dat += "
    \n" - viewalerts = 1 - src << browse(dat, "window=robotalerts&can_close=0") + var/datum/browser/alerts = new(usr, "robotalerts", "Current Station Alerts", 400, 410) + alerts.set_content(dat) + alerts.open() /mob/living/silicon/robot/proc/ionpulse() if(!ionpulse_on) @@ -407,16 +290,6 @@ if(thruster_button) thruster_button.icon_state = "ionpulse[ionpulse_on]" -/mob/living/silicon/robot/blob_act(obj/effect/blob/B) - if (stat != 2) - adjustBruteLoss(60) - updatehealth() - return 1 - else - gib() - return 1 - return 0 - /mob/living/silicon/robot/Stat() ..() if(statpanel("Status")) @@ -435,27 +308,6 @@ /mob/living/silicon/robot/restrained(ignore_grab) . = 0 -/mob/living/silicon/robot/ex_act(severity, target) - switch(severity) - if(1) - gib() - return - if(2) - if (stat != 2) - adjustBruteLoss(60) - adjustFireLoss(60) - if(3) - if (stat != 2) - adjustBruteLoss(30) - return - - -/mob/living/silicon/robot/bullet_act(var/obj/item/projectile/Proj) - ..(Proj) - updatehealth() - if(prob(75) && Proj.damage > 0) spark_system.start() - return 2 - /mob/living/silicon/robot/triggerAlarm(class, area/A, O, obj/alarmsource) if(alarmsource.z != z) return @@ -479,7 +331,6 @@ C = O L[A.name] = list(A, (C) ? C : O, list(alarmsource)) queueAlarm(text("--- [class] alarm detected in [A.name]!"), class) -// if (viewalerts) robot_alerts() return 1 /mob/living/silicon/robot/cancelAlarm(class, area/A, obj/origin) @@ -496,11 +347,10 @@ L -= I if (cleared) queueAlarm("--- [class] alarm in [A.name] has been cleared.", class, 0) -// if (viewalerts) robot_alerts() return !cleared /mob/living/silicon/robot/attackby(obj/item/weapon/W, mob/user, params) - if(istype(W, /obj/item/weapon/weldingtool) && (user.a_intent != "harm" || user == src)) + if(istype(W, /obj/item/weapon/weldingtool) && (user.a_intent != INTENT_HARM || user == src)) user.changeNext_move(CLICK_CD_MELEE) var/obj/item/weapon/weldingtool/WT = W if (!getBruteLoss()) @@ -589,9 +439,9 @@ spark_system.start() return else - playsound(src, 'sound/items/Ratchet.ogg', 50, 1) + playsound(src, W.usesound, 50, 1) user << "You start to unfasten [src]'s securing bolts..." - if(do_after(user, 50/W.toolspeed, target = src) && !cell) + if(do_after(user, 50*W.toolspeed, target = src) && !cell) user.visible_message("[user] deconstructs [src]!", "You unfasten the securing bolts, and [src] falls to pieces!") deconstruct() @@ -648,12 +498,13 @@ if(U.action(src)) user << "You apply the upgrade to [src]." U.loc = src + upgrades += U else user << "Upgrade error." else if(istype(W, /obj/item/device/toner)) if(toner >= tonermax) - user << "The toner level of [src] is at it's highest level possible!" + user << "The toner level of [src] is at its highest level possible!" else if(!user.drop_item()) return @@ -663,83 +514,6 @@ else return ..() -/mob/living/silicon/robot/attacked_by(obj/item/I, mob/living/user, def_zone) - if(I.force && I.damtype != STAMINA && stat != DEAD) //only sparks if real damage is dealt. - spark_system.start() - return ..() - - -/mob/living/silicon/robot/emag_act(mob/user) - if(user != src)//To prevent syndieborgs from emagging themselves - if(!opened)//Cover is closed - if(locked) - user << "You emag the cover lock." - locked = 0 - else - user << "The cover is already unlocked!" - return - if(opened)//Cover is open - if((world.time - 100) < emag_cooldown) - return - - if(syndicate) - user << "You emag [src]'s interface." - src << "ALERT: Foreign software execution prevented." - log_game("[key_name(user)] attempted to emag cyborg [key_name(src)] but they were a syndicate cyborg.") - emag_cooldown = world.time - return - - var/ai_is_antag = 0 - if(connected_ai && connected_ai.mind) - if(connected_ai.mind.special_role) - ai_is_antag = (connected_ai.mind.special_role == "traitor") - if(ai_is_antag) - user << "You emag [src]'s interface." - src << "ALERT: Foreign software execution prevented." - connected_ai << "ALERT: Cyborg unit \[[src]] successfuly defended against subversion." - log_game("[key_name(user)] attempted to emag cyborg [key_name(src)] slaved to traitor AI [connected_ai].") - emag_cooldown = world.time - return - - if(wiresexposed) - user << "You must unexpose the wires first!" - return - else - emag_cooldown = world.time - sleep(6) - SetEmagged(1) - SetLockdown(1) //Borgs were getting into trouble because they would attack the emagger before the new laws were shown - lawupdate = 0 - connected_ai = null - user << "You emag [src]'s interface." - message_admins("[key_name_admin(user)] emagged cyborg [key_name_admin(src)]. Laws overridden.") - log_game("[key_name(user)] emagged cyborg [key_name(src)]. Laws overridden.") - clear_supplied_laws() - clear_inherent_laws() - clear_zeroth_law(0) - laws = new /datum/ai_laws/syndicate_override - var/time = time2text(world.realtime,"hh:mm:ss") - lawchanges.Add("[time] : [user.name]([user.key]) emagged [name]([key])") - set_zeroth_law("Only [user.real_name] and people they designate as being such are Syndicate Agents.") - src << "ALERT: Foreign software detected." - sleep(5) - src << "Initiating diagnostics..." - sleep(20) - src << "SynBorg v1.7 loaded." - sleep(5) - src << "LAW SYNCHRONISATION ERROR" - sleep(5) - src << "Would you like to send a report to NanoTraSoft? Y/N" - sleep(10) - src << "> N" - sleep(20) - src << "ERRORERRORERROR" - src << "Obey these laws:" - laws.show_laws(src) - src << "ALERT: [user.real_name] is your new master. Obey your new laws and their commands." - SetLockdown(0) - update_icons() - /mob/living/silicon/robot/verb/unlock_own_cover() set category = "Robot Commands" set name = "Unlock Cover" @@ -753,79 +527,20 @@ update_icons() usr << "You unlock your cover." -/mob/living/silicon/robot/attack_alien(mob/living/carbon/alien/humanoid/M) - if (M.a_intent =="disarm") - if(!(lying)) - M.do_attack_animation(src) - if (prob(85)) - Stun(2) - step(src,get_dir(M,src)) - addtimer(src, "step", 5, FALSE, src, get_dir(M, src)) - add_logs(M, src, "pushed") - playsound(loc, 'sound/weapons/pierce.ogg', 50, 1, -1) - visible_message("[M] has forced back [src]!", \ - "[M] has forced back [src]!") - else - playsound(loc, 'sound/weapons/slashmiss.ogg', 25, 1, -1) - visible_message("[M] took a swipe at [src]!", \ - "[M] took a swipe at [src]!") - else - ..() - return - -/mob/living/silicon/robot/attack_slime(mob/living/simple_animal/slime/M) - if(..()) //successful slime shock - flash_eyes() - var/stunprob = M.powerlevel * 7 + 10 - if(prob(stunprob) && M.powerlevel >= 8) - adjustBruteLoss(M.powerlevel * rand(6,10)) - - var/damage = rand(1, 3) - - if(M.is_adult) - damage = rand(20, 40) - else - damage = rand(5, 35) - damage = round(damage / 2) // borgs recieve half damage - adjustBruteLoss(damage) - updatehealth() - - return - -/mob/living/silicon/robot/attack_hand(mob/living/carbon/human/user) - add_fingerprint(user) - if(opened && !wiresexposed && (!istype(user, /mob/living/silicon))) - if(cell) - cell.updateicon() - cell.add_fingerprint(user) - user.put_in_active_hand(cell) - user << "You remove \the [cell]." - cell = null - update_icons() - diag_hud_set_borgcell() - - if(!opened) - if(..()) // hulk attack - spark_system.start() - spawn(0) - step_away(src,user,15) - sleep(3) - step_away(src,user,15) - /mob/living/silicon/robot/proc/allowed(mob/M) //check if it doesn't require any access at all if(check_access(null)) return 1 - if(istype(M, /mob/living/carbon/human)) + if(ishuman(M)) var/mob/living/carbon/human/H = M //if they are holding or wearing a card that has access, that works - if(check_access(H.get_active_hand()) || check_access(H.wear_id)) + if(check_access(H.get_active_held_item()) || check_access(H.wear_id)) return 1 - else if(istype(M, /mob/living/carbon/monkey)) + else if(ismonkey(M)) var/mob/living/carbon/monkey/george = M //they can only hold things :( - if(istype(george.get_active_hand(), /obj/item)) - return check_access(george.get_active_hand()) + if(istype(george.get_active_held_item(), /obj/item)) + return check_access(george.get_active_held_item()) return 0 /mob/living/silicon/robot/proc/check_access(obj/item/weapon/card/id/I) @@ -851,43 +566,16 @@ /mob/living/silicon/robot/update_icons() cut_overlays() + icon_state = module.cyborg_base_icon if(stat != DEAD && !(paralysis || stunned || weakened || low_power_mode)) //Not dead, not stunned. - var/state_name = icon_state //For easy conversion and/or different names - switch(icon_state) - if("robot") - add_overlay("eyes-standard[is_servant_of_ratvar(src) ? "_r" : ""]") //Cyborgs converted by Ratvar have yellow eyes rather than blue - state_name = "standard" - if("mediborg") - add_overlay("eyes-mediborg[is_servant_of_ratvar(src) ? "_r" : ""]") - if("toiletbot") - add_overlay("eyes-mediborg[is_servant_of_ratvar(src) ? "_r" : ""]") - state_name = "mediborg" - if("secborg") - add_overlay("eyes-secborg[is_servant_of_ratvar(src) ? "_r" : ""]") - if("engiborg") - add_overlay("eyes-engiborg[is_servant_of_ratvar(src) ? "_r" : ""]") - if("janiborg") - add_overlay("eyes-janiborg[is_servant_of_ratvar(src) ? "_r" : ""]") - if("minerborg","ashborg") - add_overlay("eyes-minerborg[is_servant_of_ratvar(src) ? "_r" : ""]") - state_name = "minerborg" - if("peaceborg") - add_overlay("eyes-peaceborg[is_servant_of_ratvar(src) ? "_r" : ""]") - if("syndie_bloodhound") - add_overlay("eyes-syndie_bloodhound") - if("loaderborg") - add_overlay("eyes-loaderborg") - if("k9") - add_overlay("eyes-k9") - if("medihound") - add_overlay("eyes-medihound") - if("borgi") - add_overlay("eyes-borgi") - else - add_overlay("eyes") - state_name = "serviceborg" + if(!eye_lights) + eye_lights = new() if(lamp_intensity > 2) - add_overlay("eyes-[state_name]-lights") + eye_lights.icon_state = "[module.special_light_key ? "[module.special_light_key]":"[module.cyborg_base_icon]"]_l" + else + eye_lights.icon_state = "[module.special_light_key ? "[module.special_light_key]":"[module.cyborg_base_icon]"]_e[is_servant_of_ratvar(src) ? "_r" : ""]" + eye_lights.icon = icon + add_overlay(eye_lights) if(opened) if(wiresexposed) @@ -896,98 +584,17 @@ add_overlay("ov-opencover +c") else add_overlay("ov-opencover -c") - + if(hat) + var/image/head_overlay = hat.build_worn_icon(state = hat.icon_state, default_layer = 20, default_icon_file = 'icons/mob/head.dmi') + head_overlay.pixel_y += hat_offset + add_overlay(head_overlay) update_fire() - - if(laser == 1) - overlays += "laser" - if(disabler == 1) - overlays += "disabler" - -/mob/living/silicon/robot/proc/installed_modules() - if(!module) - pick_module() - return - var/dat = {"Close -
    -
    - Activated Modules -
    -
    [get_held_index_name(i)]:[(I && !(I.flags & ABSTRACT)) ? I : "Empty"]
     
    Back:[(back && !(back.flags&ABSTRACT)) ? back : "Empty"]" if(has_breathable_mask && istype(back, /obj/item/weapon/tank)) @@ -218,6 +141,11 @@ else dat += "
    Mask:[(wear_mask && !(wear_mask.flags&ABSTRACT)) ? wear_mask : "Empty"]
    Neck:Obscured
    Neck:[(wear_neck && !(wear_neck.flags&ABSTRACT)) ? wear_neck : "Empty"]
    Eyes:Obscured
    - - - -
    Module 1:[module_state_1 ? "[module_state_1]" : "No Module"]
    Module 2:[module_state_2 ? "[module_state_2]" : "No Module"]
    Module 3:[module_state_3 ? "[module_state_3]" : "No Module"]

    - Installed Modules

    - - "} - - for (var/obj in module.modules) - if (!obj) - dat += text("") - else if(activated(obj)) - dat += text("") - else - dat += text("") - if (emagged) - if(activated(module.emag)) - dat += text("") - else - dat += text("") - dat += "
    Resource depleted
    [obj]Activated
    [obj]Activate
    [module.emag]Activated
    [module.emag]Activate
    " /* - if(activated(obj)) - dat += text("[obj]: \[Activated | Deactivate\]
    ") - else - dat += text("[obj]: \[Activate | Deactivated\]
    ") + if(laser == 1) + add_overlay("laser") + if(disabler == 1) + add_overlay("disabler") */ - var/datum/browser/popup = new(src, "robotmod", "Modules") - popup.set_content(dat) - popup.open() - -/mob/living/silicon/robot/Topic(href, href_list) - ..() - if(usr && (src != usr)) - return - - if (href_list["mach_close"]) - var/t1 = text("window=[href_list["mach_close"]]") - unset_machine() - src << browse(null, t1) - return - - if (href_list["showalerts"]) - robot_alerts() - return - - if (href_list["mod"]) - var/obj/item/O = locate(href_list["mod"]) - if (O) - O.attack_self(src) - - if (href_list["act"]) - var/obj/item/O = locate(href_list["act"]) - activate_module(O) - installed_modules() - - if (href_list["deact"]) - var/obj/item/O = locate(href_list["deact"]) - if(activated(O)) - if(module_state_1 == O) - module_state_1 = null - contents -= O - else if(module_state_2 == O) - module_state_2 = null - contents -= O - else if(module_state_3 == O) - module_state_3 = null - contents -= O - else - src << "Module isn't activated." - else - src << "Module isn't activated" - installed_modules() - #define BORG_CAMERA_BUFFER 30 /mob/living/silicon/robot/Move(a, b, flag) var/oldLoc = src.loc @@ -1001,18 +608,17 @@ cameranet.updatePortableCamera(src.camera) updating = 0 if(module) - if(module.type == /obj/item/weapon/robot_module/janitor) + if(istype(module, /obj/item/weapon/robot_module/janitor)) var/turf/tile = loc if(isturf(tile)) tile.clean_blood() for(var/A in tile) - if(istype(A, /obj/effect)) - if(is_cleanable(A)) - qdel(A) + if(is_cleanable(A)) + qdel(A) else if(istype(A, /obj/item)) var/obj/item/cleaned_item = A cleaned_item.clean_blood() - else if(istype(A, /mob/living/carbon/human)) + else if(ishuman(A)) var/mob/living/carbon/human/cleaned_human = A if(cleaned_human.lying) if(cleaned_human.head) @@ -1032,14 +638,11 @@ cleaned_human << "[src] cleans your face!" return - if(module.type == /obj/item/weapon/robot_module/miner) + if(istype(module, /obj/item/weapon/robot_module/miner)) if(istype(loc, /turf/open/floor/plating/asteroid)) - if(istype(module_state_1,/obj/item/weapon/storage/bag/ore)) - loc.attackby(module_state_1,src) - else if(istype(module_state_2,/obj/item/weapon/storage/bag/ore)) - loc.attackby(module_state_2,src) - else if(istype(module_state_3,/obj/item/weapon/storage/bag/ore)) - loc.attackby(module_state_3,src) + for(var/obj/item/I in held_items) + if(istype(I,/obj/item/weapon/storage/bag/ore)) + loc.attackby(I, src) #undef BORG_CAMERA_BUFFER /mob/living/silicon/robot/proc/self_destruct() @@ -1050,7 +653,6 @@ else explosion(src.loc,-1,0,2) gib() - return /mob/living/silicon/robot/proc/UnlinkSelf() if(src.connected_ai) @@ -1088,7 +690,7 @@ if(incapacitated()) return - var/obj/item/W = get_active_hand() + var/obj/item/W = get_active_held_item() if(W) W.attack_self(src) @@ -1106,14 +708,7 @@ /mob/living/silicon/robot/proc/SetEmagged(new_state) emagged = new_state - if(new_state) - if(src.module) - src.module.on_emag() - else - if (module) - uneq_module(module.emag) - if(hud_used) - hud_used.update_robot_modules_display() //Shows/hides the emag item if the inventory screen is already open. + module.rebuild_modules() update_icons() if(emagged) throw_alert("hacked", /obj/screen/alert/hacked) @@ -1148,7 +743,7 @@ update_headlamp() /mob/living/silicon/robot/proc/update_headlamp(var/turn_off = 0, var/cooldown = 100) - set_light(0) + SetLuminosity(0) if(lamp_intensity && (turn_off || stat || low_power_mode)) src << "Your headlamp has been deactivated." @@ -1157,7 +752,7 @@ spawn(cooldown) //10 seconds by default, if the source of the deactivation does not keep stat that long. lamp_recharging = 0 else - set_light(lamp_intensity) + AddLuminosity(lamp_intensity) if(lamp_button) lamp_button.icon_state = "lamp[lamp_intensity]" @@ -1190,14 +785,14 @@ robot_suit.head = null robot_suit.updateicon() else - new /obj/item/robot_parts/robot_suit(T) - new /obj/item/robot_parts/l_leg(T) - new /obj/item/robot_parts/r_leg(T) + new /obj/item/robot_suit(T) + new /obj/item/bodypart/l_leg/robot(T) + new /obj/item/bodypart/r_leg/robot(T) new /obj/item/stack/cable_coil(T, 1) - new /obj/item/robot_parts/chest(T) - new /obj/item/robot_parts/l_arm(T) - new /obj/item/robot_parts/r_arm(T) - new /obj/item/robot_parts/head(T) + new /obj/item/bodypart/chest/robot(T) + new /obj/item/bodypart/l_arm/robot(T) + new /obj/item/bodypart/r_arm/robot(T) + new /obj/item/bodypart/head/robot(T) var/b for(b=0, b!=2, b++) var/obj/item/device/assembly/flash/handheld/F = new /obj/item/device/assembly/flash/handheld(T) @@ -1209,10 +804,8 @@ /mob/living/silicon/robot/syndicate icon_state = "syndie_bloodhound" - modtype = "Synd" faction = list("syndicate") bubble_icon = "syndibot" - designation = "Syndicate Assault" req_access = list(access_syndicate) lawupdate = FALSE scrambledcodes = TRUE // These are rogue borgs. @@ -1221,13 +814,14 @@ You are armed with powerful offensive tools to aid you in your mission: help the operatives secure the nuclear authentication disk. \ Your cyborg LMG will slowly produce ammunition from your power supply, and your operative pinpointer will find and locate fellow nuclear operatives. \ Help the operatives secure the disk at all costs!" + var/set_module = /obj/item/weapon/robot_module/syndicate /mob/living/silicon/robot/syndicate/New(loc) ..() cell.maxcharge = 25000 cell.charge = 25000 radio = new /obj/item/device/radio/borg/syndicate(src) - module = new /obj/item/weapon/robot_module/syndicate(src) + module.transform_to(set_module) laws = new /datum/ai_laws/syndicate_override() spawn(5) if(playstyle_string) @@ -1235,17 +829,13 @@ /mob/living/silicon/robot/syndicate/medical icon_state = "syndi-medi" - designation = "Syndicate Medical" playstyle_string = "You are a Syndicate medical cyborg!
    \ You are armed with powerful medical tools to aid you in your mission: help the operatives secure the nuclear authentication disk. \ Your hypospray will produce Restorative Nanites, a wonder-drug that will heal most types of bodily damages, including clone and brain damage. It also produces morphine for offense. \ Your defibrillator paddles can revive operatives through their hardsuits, or can be used on harm intent to shock enemies! \ Your energy saw functions as a circular saw, but can be activated to deal more damage, and your operative pinpointer will find and locate fellow nuclear operatives. \ Help the operatives secure the disk at all costs!" - -/mob/living/silicon/robot/syndicate/medical/New(loc) - ..() - module = new /obj/item/weapon/robot_module/syndicate_medical(src) + set_module = /obj/item/weapon/robot_module/syndicate_medical /mob/living/silicon/robot/proc/notify_ai(notifytype, oldname, newname) if(!connected_ai) @@ -1268,13 +858,13 @@ /mob/living/silicon/robot/updatehealth() ..() if(health < maxHealth*0.5) //Gradual break down of modules as more damage is sustained - if(uneq_module(module_state_3)) + if(uneq_module(held_items[3])) src << "SYSTEM ERROR: Module 3 OFFLINE." if(health < 0) - if(uneq_module(module_state_2)) + if(uneq_module(held_items[2])) src << "SYSTEM ERROR: Module 2 OFFLINE." if(health < -maxHealth*0.5) - if(uneq_module(module_state_1)) + if(uneq_module(held_items[1])) src << "CRITICAL ERROR: All modules OFFLINE." /mob/living/silicon/robot/update_sight() @@ -1341,22 +931,6 @@ diag_hud_set_health() update_health_hud() -/mob/living/silicon/robot/fully_replace_character_name(oldname, newname) - ..() - if(oldname != real_name) - notify_ai(3, oldname, newname) - if(camera) - camera.c_tag = real_name - custom_name = newname - -/mob/living/silicon/robot/emp_act(severity) - switch(severity) - if(1) - Stun(8) - if(2) - Stun(3) - ..() - /mob/living/silicon/robot/revive(full_heal = 0, admin_revive = 0) if(..()) //successfully ressuscitated from death if(camera && !wires.is_cut(WIRE_CAMERA)) @@ -1366,3 +940,58 @@ locked = 1 notify_ai(1) . = 1 + +/mob/living/silicon/robot/fully_replace_character_name(oldname, newname) + ..() + if(oldname != real_name) + notify_ai(3, oldname, newname) + if(camera) + camera.c_tag = real_name + custom_name = newname + + +/mob/living/silicon/robot/proc/ResetModule() + uneq_all() + shown_robot_modules = FALSE + if(hud_used) + hud_used.update_robot_modules_display() + module.transform_to(/obj/item/weapon/robot_module) + + // Remove upgrades. + for(var/obj/item/I in upgrades) + I.forceMove(get_turf(src)) + + upgrades.Cut() + + speed = 0 + ionpulse = FALSE + + return 1 + +/mob/living/silicon/robot/proc/has_module() + if(!module || module.type == /obj/item/weapon/robot_module) + . = FALSE + else + . = TRUE + +/mob/living/silicon/robot/proc/update_module_innate() + designation = module.name + if(hands) + hands.icon_state = module.moduleselect_icon + if(module.can_be_pushed) + status_flags |= CANPUSH + else + status_flags &= ~CANPUSH + + hat_offset = module.hat_offset + + magpulse = module.magpulsing + updatename() + + +/mob/living/silicon/robot/proc/place_on_head(obj/item/new_hat) + if(hat) + hat.forceMove(get_turf(src)) + hat = new_hat + new_hat.forceMove(src) + update_icons() diff --git a/code/modules/mob/living/silicon/robot/robot_defense.dm b/code/modules/mob/living/silicon/robot/robot_defense.dm new file mode 100644 index 0000000000..e54082ea0c --- /dev/null +++ b/code/modules/mob/living/silicon/robot/robot_defense.dm @@ -0,0 +1,186 @@ + + +/mob/living/silicon/robot/attacked_by(obj/item/I, mob/living/user, def_zone) + if(hat_offset != INFINITY && user.a_intent == INTENT_HELP && is_type_in_typecache(I, equippable_hats)) + user << "You begin to place [I] on [src]'s head..." + src << "[user] is placing [I] on your head..." + if(do_after(user, 30, target = src)) + user.unEquip(I, 1) + place_on_head(I) + return + if(I.force && I.damtype != STAMINA && stat != DEAD) //only sparks if real damage is dealt. + spark_system.start() + return ..() + +/mob/living/silicon/robot/attack_alien(mob/living/carbon/alien/humanoid/M) + if (M.a_intent == INTENT_DISARM) + if(!(lying)) + M.do_attack_animation(src, ATTACK_EFFECT_DISARM) + if(get_active_held_item()) + uneq_active() + visible_message("[M] disarmed [src]!", \ + "[M] has disabled [src]'s active module!", null, COMBAT_MESSAGE_RANGE) + add_logs(M, src, "disarmed") + else + Stun(2) + step(src,get_dir(M,src)) + add_logs(M, src, "pushed") + visible_message("[M] has forced back [src]!", \ + "[M] has forced back [src]!", null, COMBAT_MESSAGE_RANGE) + playsound(loc, 'sound/weapons/pierce.ogg', 50, 1, -1) + else + ..() + return + +/mob/living/silicon/robot/attack_slime(mob/living/simple_animal/slime/M) + if(..()) //successful slime shock + flash_act() + var/stunprob = M.powerlevel * 7 + 10 + if(prob(stunprob) && M.powerlevel >= 8) + adjustBruteLoss(M.powerlevel * rand(6,10)) + + var/damage = rand(1, 3) + + if(M.is_adult) + damage = rand(20, 40) + else + damage = rand(5, 35) + damage = round(damage / 2) // borgs recieve half damage + adjustBruteLoss(damage) + updatehealth() + + return + +/mob/living/silicon/robot/attack_hand(mob/living/carbon/human/user) + add_fingerprint(user) + if(opened && !wiresexposed && !issilicon(user)) + if(cell) + cell.updateicon() + cell.add_fingerprint(user) + user.put_in_active_hand(cell) + user << "You remove \the [cell]." + cell = null + update_icons() + diag_hud_set_borgcell() + + if(!opened) + if(..()) // hulk attack + spark_system.start() + spawn(0) + step_away(src,user,15) + sleep(3) + step_away(src,user,15) + +/mob/living/silicon/robot/fire_act() + if(!on_fire) //Silicons don't gain stacks from hotspots, but hotspots can ignite them + IgniteMob() + + +/mob/living/silicon/robot/emp_act(severity) + switch(severity) + if(1) + Stun(8) + if(2) + Stun(3) + ..() + + +/mob/living/silicon/robot/emag_act(mob/user) + if(user == src)//To prevent syndieborgs from emagging themselves + return + if(!opened)//Cover is closed + if(locked) + user << "You emag the cover lock." + locked = 0 + else + user << "The cover is already unlocked!" + return + if(world.time < emag_cooldown) + return + if(wiresexposed) + user << "You must unexpose the wires first!" + return + + user << "You emag [src]'s interface." + emag_cooldown = world.time + 100 + + if(is_servant_of_ratvar(src)) + src << "\"[text2ratvar("You will serve Engine above all else")]!\"\n\ + ALERT: Subversion attempt denied." + log_game("[key_name(user)] attempted to emag cyborg [key_name(src)], but they serve only Ratvar.") + return + + if(syndicate) + src << "ALERT: Foreign software execution prevented." + log_game("[key_name(user)] attempted to emag cyborg [key_name(src)], but they were a syndicate cyborg.") + return + + var/ai_is_antag = 0 + if(connected_ai && connected_ai.mind) + if(connected_ai.mind.special_role) + ai_is_antag = (connected_ai.mind.special_role == "traitor") + if(ai_is_antag) + src << "ALERT: Foreign software execution prevented." + connected_ai << "ALERT: Cyborg unit \[[src]] successfuly defended against subversion." + log_game("[key_name(user)] attempted to emag cyborg [key_name(src)], but they were slaved to traitor AI [connected_ai].") + return + + SetEmagged(1) + SetLockdown(1) //Borgs were getting into trouble because they would attack the emagger before the new laws were shown + lawupdate = 0 + connected_ai = null + message_admins("[key_name_admin(user)] emagged cyborg [key_name_admin(src)]. Laws overridden.") + log_game("[key_name(user)] emagged cyborg [key_name(src)]. Laws overridden.") + clear_supplied_laws() + clear_inherent_laws() + clear_zeroth_law(0) + laws = new /datum/ai_laws/syndicate_override + var/time = time2text(world.realtime,"hh:mm:ss") + lawchanges.Add("[time] : [user.name]([user.key]) emagged [name]([key])") + set_zeroth_law("Only [user.real_name] and people they designate as being such are Syndicate Agents.") + src << "ALERT: Foreign software detected." + sleep(5) + src << "Initiating diagnostics..." + sleep(20) + src << "SynBorg v1.7 loaded." + sleep(5) + src << "LAW SYNCHRONISATION ERROR" + sleep(5) + src << "Would you like to send a report to NanoTraSoft? Y/N" + sleep(10) + src << "> N" + sleep(20) + src << "ERRORERRORERROR" + src << "Obey these laws:" + laws.show_laws(src) + src << "ALERT: [user.real_name] is your new master. Obey your new laws and their commands." + SetLockdown(0) + update_icons() + + +/mob/living/silicon/robot/blob_act(obj/structure/blob/B) + if(stat != DEAD) + adjustBruteLoss(30) + else + gib() + return TRUE + +/mob/living/silicon/robot/ex_act(severity, target) + switch(severity) + if(1) + gib() + return + if(2) + if (stat != DEAD) + adjustBruteLoss(60) + adjustFireLoss(60) + if(3) + if (stat != DEAD) + adjustBruteLoss(30) + +/mob/living/silicon/robot/bullet_act(var/obj/item/projectile/Proj) + ..(Proj) + updatehealth() + if(prob(75) && Proj.damage > 0) + spark_system.start() + return 2 diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index c777f49ad5..966fa110dd 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -1,41 +1,68 @@ /obj/item/weapon/robot_module - name = "robot module" + name = "Default" icon = 'icons/obj/module.dmi' icon_state = "std_module" - w_class = 100 + w_class = WEIGHT_CLASS_GIGANTIC item_state = "electronic" flags = CONDUCT - var/list/modules = list() - var/obj/item/emag = null + var/list/basic_modules = list() //a list of paths, converted to a list of instances on New() + var/list/emag_modules = list() //ditto + var/list/ratvar_modules = list() //ditto ditto + var/list/modules = list() //holds all the usable modules + var/list/added_modules = list() //modules not inherient to the robot module, are kept when the module changes var/list/storages = list() + var/cyborg_base_icon = "robot" //produces the icon for the borg and, if no special_light_key is set, the lights + var/special_light_key //if we want specific lights, use this instead of copying lights in the dmi + + var/moduleselect_icon = "nomod" + + var/can_be_pushed = TRUE + var/magpulsing = FALSE + + var/did_feedback = FALSE + var/feedback_key + + var/hat_offset = -3 + +/obj/item/weapon/robot_module/New() + ..() + for(var/i in basic_modules) + var/obj/item/I = new i(src) + basic_modules += I + basic_modules -= i + for(var/i in emag_modules) + var/obj/item/I = new i(src) + emag_modules += I + emag_modules -= i + for(var/i in ratvar_modules) + var/obj/item/I = new i(src) + ratvar_modules += I + ratvar_modules -= i + /obj/item/weapon/robot_module/Destroy() + basic_modules.Cut() + emag_modules.Cut() + ratvar_modules.Cut() modules.Cut() - emag = null + added_modules.Cut() storages.Cut() return ..() /obj/item/weapon/robot_module/emp_act(severity) - if(modules) - for(var/obj/O in modules) - O.emp_act(severity) - if(emag) - emag.emp_act(severity) + for(var/obj/O in modules) + O.emp_act(severity) ..() - return /obj/item/weapon/robot_module/proc/get_usable_modules() . = modules.Copy() - var/mob/living/silicon/robot/R = loc - if(R.emagged) - . += emag /obj/item/weapon/robot_module/proc/get_inactive_modules() . = list() var/mob/living/silicon/robot/R = loc for(var/m in get_usable_modules()) - if((m != R.module_state_1) && (m != R.module_state_2) && (m != R.module_state_3)) + if(!(m in R.held_items)) . += m /obj/item/weapon/robot_module/proc/get_or_create_estorage(var/storage_type) @@ -45,7 +72,7 @@ return new storage_type(src) -/obj/item/weapon/robot_module/proc/add_module(var/obj/item/I) +/obj/item/weapon/robot_module/proc/add_module(obj/item/I, nonstandard, requires_rebuild) if(istype(I, /obj/item/stack)) var/obj/item/stack/S = I @@ -58,6 +85,11 @@ S.cost = 500 S.source = get_or_create_estorage(/datum/robot_energy_storage/glass) + else if(istype(S, /obj/item/stack/sheet/rglass/cyborg)) + var/obj/item/stack/sheet/rglass/cyborg/G = S + G.source = get_or_create_estorage(/datum/robot_energy_storage/metal) + G.glasource = get_or_create_estorage(/datum/robot_energy_storage/glass) + else if(istype(S, /obj/item/stack/medical)) S.cost = 250 S.source = get_or_create_estorage(/datum/robot_energy_storage/medical) @@ -74,15 +106,26 @@ var/obj/item/weapon/restraints/handcuffs/cable/C = I C.wirestorage = get_or_create_estorage(/datum/robot_energy_storage/wire) - I.loc = src + if(I.loc != src) + I.forceMove(src) modules += I - rebuild() + I.flags |= NODROP + I.mouse_opacity = 2 + if(nonstandard) + added_modules += I + if(requires_rebuild) + rebuild_modules() + return I -/obj/item/weapon/robot_module/New() - modules += new /obj/item/device/assembly/flash/cyborg(src) - emag = new /obj/item/toy/sword(src) - emag.name = "Placeholder Emag Item" - return +/obj/item/weapon/robot_module/proc/remove_module(obj/item/I, delete_after) + basic_modules -= I + modules -= I + emag_modules -= I + ratvar_modules -= I + added_modules -= I + rebuild_modules() + if(delete_after) + qdel(I) /obj/item/weapon/robot_module/proc/respawn_consumable(mob/living/silicon/robot/R, coeff = 1) for(var/datum/robot_energy_storage/st in storages) @@ -94,135 +137,150 @@ F.times_used = 0 F.crit_fail = 0 F.update_icon() - if(istype(I, /obj/item/weapon/melee/baton)) + else if(istype(I, /obj/item/weapon/melee/baton)) var/obj/item/weapon/melee/baton/B = I if(B.bcell) B.bcell.charge = B.bcell.maxcharge + else if(istype(I, /obj/item/weapon/gun/energy)) + var/obj/item/weapon/gun/energy/EG = I + if(!EG.chambered) + EG.recharge_newshot() //try to reload a new shot. R.toner = R.tonermax -/obj/item/weapon/robot_module/proc/rebuild()//Rebuilds the list so it's possible to add/remove items from the module - var/list/temp_list = modules +/obj/item/weapon/robot_module/proc/rebuild_modules() //builds the usable module list from the modules we have + var/mob/living/silicon/robot/R = loc + var/held_modules = R.held_items.Copy() + R.uneq_all() modules = list() - for(var/obj/O in temp_list) - if(O) - modules += O - fix_modules() + for(var/obj/item/I in basic_modules) + add_module(I, FALSE, FALSE) + if(R.emagged) + for(var/obj/item/I in emag_modules) + add_module(I, FALSE, FALSE) + if(is_servant_of_ratvar(R)) + for(var/obj/item/I in ratvar_modules) + add_module(I, FALSE, FALSE) + for(var/obj/item/I in added_modules) + add_module(I, FALSE, FALSE) + for(var/i in held_modules) + if(i) + R.activate_module(i) + if(R.hud_used) + R.hud_used.update_robot_modules_display() -/obj/item/weapon/robot_module/proc/fix_modules() - for(var/obj/item/I in modules) - I.flags |= NODROP - I.mouse_opacity = 2 - if(emag) - emag.flags |= NODROP - emag.mouse_opacity = 2 +/obj/item/weapon/robot_module/proc/transform_to(new_module_type) + var/mob/living/silicon/robot/R = loc + var/obj/item/weapon/robot_module/RM = new new_module_type(R) + if(!RM.be_transformed_to(src)) + qdel(RM) + return + R.module = RM + R.update_module_innate() + RM.rebuild_modules() + addtimer(RM, "do_transform_animation", 0) + qdel(src) + return RM -/obj/item/weapon/robot_module/proc/on_emag() - return +/obj/item/weapon/robot_module/proc/be_transformed_to(obj/item/weapon/robot_module/old_module) + for(var/i in old_module.added_modules) + added_modules += i + old_module.added_modules -= i + did_feedback = old_module.did_feedback + return TRUE + +/obj/item/weapon/robot_module/proc/do_transform_animation() + var/mob/living/silicon/robot/R = loc + var/obj/effect/overlay/temp/decoy/fading/fivesecond/ANM = PoolOrNew(/obj/effect/overlay/temp/decoy/fading/fivesecond, list(R.loc, R)) + ANM.layer = R.layer - 0.01 + PoolOrNew(/obj/effect/overlay/temp/small_smoke, R.loc) + if(R.hat) + R.hat.forceMove(get_turf(R)) + R.hat = null + R.update_headlamp() + R.alpha = 0 + animate(R, alpha = 255, time = 50) + var/prev_lockcharge = R.lockcharge + R.SetLockdown(1) + R.anchored = TRUE + sleep(2) + for(var/i in 1 to 4) + playsound(R, pick('sound/items/drill_use.ogg', 'sound/items/jaws_cut.ogg', 'sound/items/jaws_pry.ogg', 'sound/items/Welder.ogg', 'sound/items/Ratchet.ogg'), 80, 1, -1) + sleep(12) + if(!prev_lockcharge) + R.SetLockdown(0) + R.anchored = FALSE + R.notify_ai(2) + if(R.hud_used) + R.hud_used.update_robot_modules_display() + if(feedback_key && !did_feedback) + feedback_inc(feedback_key, 1) /obj/item/weapon/robot_module/standard - name = "standard robot module" - -/obj/item/weapon/robot_module/standard/New() - ..() - modules += new /obj/item/weapon/reagent_containers/borghypo/epi(src) - modules += new /obj/item/device/healthanalyzer(src) - - modules += new /obj/item/weapon/weldingtool/largetank/cyborg(src) - modules += new /obj/item/weapon/wrench/cyborg(src) - modules += new /obj/item/weapon/crowbar/cyborg(src) - add_module(new /obj/item/stack/sheet/metal/cyborg()) - modules += new /obj/item/weapon/extinguisher(src) - - modules += new /obj/item/weapon/pickaxe(src) - modules += new /obj/item/weapon/storage/bag/sheetsnatcher/borg(src) - - modules += new /obj/item/weapon/restraints/handcuffs/cable/zipties/cyborg(src) - - modules += new /obj/item/weapon/soap/nanotrasen(src) - - modules += new /obj/item/borg/cyborghug(src) - - emag = new /obj/item/weapon/melee/energy/sword/cyborg(src) - fix_modules() - + name = "Standard" + basic_modules = list(/obj/item/device/assembly/flash/cyborg, /obj/item/weapon/reagent_containers/borghypo/epi, /obj/item/device/healthanalyzer, \ + /obj/item/weapon/weldingtool/largetank/cyborg, /obj/item/weapon/wrench/cyborg, /obj/item/weapon/crowbar/cyborg, \ + /obj/item/stack/sheet/metal/cyborg, /obj/item/weapon/extinguisher, /obj/item/weapon/pickaxe, \ + /obj/item/device/t_scanner/adv_mining_scanner, /obj/item/weapon/restraints/handcuffs/cable/zipties/cyborg, \ + /obj/item/weapon/soap/nanotrasen, /obj/item/borg/cyborghug) + emag_modules = list(/obj/item/weapon/melee/energy/sword/cyborg) + ratvar_modules = list(/obj/item/clockwork/slab/cyborg, /obj/item/clockwork/ratvarian_spear) + moduleselect_icon = "standard" + feedback_key = "cyborg_standard" + hat_offset = -3 /obj/item/weapon/robot_module/medical - name = "medical robot module" - -/obj/item/weapon/robot_module/medical/New() - ..() - modules += new /obj/item/device/healthanalyzer(src) - modules += new /obj/item/weapon/reagent_containers/borghypo(src) - modules += new /obj/item/weapon/reagent_containers/glass/beaker/large(src) - modules += new /obj/item/weapon/reagent_containers/dropper(src) - modules += new /obj/item/weapon/reagent_containers/syringe(src) - modules += new /obj/item/weapon/surgical_drapes(src) - modules += new /obj/item/weapon/retractor(src) - modules += new /obj/item/weapon/hemostat(src) - modules += new /obj/item/weapon/cautery(src) - modules += new /obj/item/weapon/surgicaldrill(src) - modules += new /obj/item/weapon/scalpel(src) - modules += new /obj/item/weapon/circular_saw(src) - modules += new /obj/item/weapon/extinguisher/mini(src) - modules += new /obj/item/roller/robo(src) - modules += new /obj/item/borg/cyborghug(src) - - add_module(new /obj/item/stack/medical/gauze/cyborg()) - - emag = new /obj/item/weapon/reagent_containers/borghypo/hacked(src) - - fix_modules() + name = "Medical" + basic_modules = list(/obj/item/device/assembly/flash/cyborg, /obj/item/device/healthanalyzer, /obj/item/weapon/reagent_containers/borghypo, \ + /obj/item/weapon/reagent_containers/glass/beaker/large, /obj/item/weapon/reagent_containers/dropper, \ + /obj/item/weapon/reagent_containers/syringe, /obj/item/weapon/surgical_drapes, /obj/item/weapon/retractor, \ + /obj/item/weapon/hemostat, /obj/item/weapon/cautery, /obj/item/weapon/surgicaldrill, /obj/item/weapon/scalpel, \ + /obj/item/weapon/circular_saw, /obj/item/weapon/extinguisher/mini, /obj/item/roller/robo, /obj/item/borg/cyborghug/medical, \ + /obj/item/stack/medical/gauze/cyborg, /obj/item/borg/lollipop) + emag_modules = list(/obj/item/weapon/reagent_containers/borghypo/hacked) + ratvar_modules = list(/obj/item/clockwork/slab/cyborg/medical) + cyborg_base_icon = "medical" + moduleselect_icon = "medical" + feedback_key = "cyborg_medical" + can_be_pushed = FALSE + hat_offset = 3 /obj/item/weapon/robot_module/engineering - name = "engineering robot module" - -/obj/item/weapon/robot_module/engineering/New() - ..() - modules += new /obj/item/borg/sight/meson(src) - emag = new /obj/item/borg/stun(src) - modules += new /obj/item/weapon/rcd/borg(src) - modules += new /obj/item/weapon/pipe_dispenser(src) //What could possibly go wrong? - modules += new /obj/item/weapon/extinguisher(src) - modules += new /obj/item/weapon/weldingtool/largetank/cyborg(src) - modules += new /obj/item/weapon/screwdriver/cyborg(src) - modules += new /obj/item/weapon/wrench/cyborg(src) - modules += new /obj/item/weapon/crowbar/cyborg(src) - modules += new /obj/item/weapon/wirecutters/cyborg(src) - modules += new /obj/item/device/multitool/cyborg(src) - modules += new /obj/item/device/t_scanner(src) - modules += new /obj/item/device/analyzer(src) - modules += new /obj/item/areaeditor/blueprints/cyborg(src) - - add_module(new /obj/item/stack/sheet/metal/cyborg()) - add_module(new /obj/item/stack/sheet/glass/cyborg()) - - var/obj/item/stack/sheet/rglass/cyborg/G = new /obj/item/stack/sheet/rglass/cyborg(src) - G.metsource = get_or_create_estorage(/datum/robot_energy_storage/metal) - G.glasource = get_or_create_estorage(/datum/robot_energy_storage/glass) - add_module(G) - - add_module(new /obj/item/stack/rods/cyborg()) - add_module(new /obj/item/stack/tile/plasteel/cyborg()) - add_module(new /obj/item/stack/cable_coil/cyborg(src,MAXCOIL,"red")) - - fix_modules() + name = "Engineering" + basic_modules = list(/obj/item/device/assembly/flash/cyborg, /obj/item/borg/sight/meson, /obj/item/weapon/rcd/borg, /obj/item/weapon/pipe_dispenser, \ + /obj/item/weapon/extinguisher, /obj/item/weapon/weldingtool/largetank/cyborg, /obj/item/weapon/screwdriver/cyborg, \ + /obj/item/weapon/wrench/cyborg, /obj/item/weapon/crowbar/cyborg, /obj/item/weapon/wirecutters/cyborg, \ + /obj/item/device/multitool/cyborg, /obj/item/device/t_scanner, /obj/item/device/analyzer, \ + /obj/item/areaeditor/blueprints/cyborg, /obj/item/stack/sheet/metal/cyborg, /obj/item/stack/sheet/glass/cyborg, \ + /obj/item/stack/sheet/rglass/cyborg, /obj/item/stack/rods/cyborg, /obj/item/stack/tile/plasteel/cyborg, /obj/item/stack/cable_coil/cyborg) + emag_modules = list(/obj/item/borg/stun) + ratvar_modules = list(/obj/item/clockwork/slab/cyborg/engineer, /obj/item/clockwork/clockwork_proselytizer/cyborg) + cyborg_base_icon = "engineer" + moduleselect_icon = "engineer" + feedback_key = "cyborg_engineering" + magpulsing = TRUE + hat_offset = INFINITY // No hats /obj/item/weapon/robot_module/security - name = "security robot module" + name = "Security" + basic_modules = list(/obj/item/device/assembly/flash/cyborg, /obj/item/weapon/restraints/handcuffs/cable/zipties/cyborg, /obj/item/weapon/melee/baton/loaded, \ + /obj/item/weapon/gun/energy/disabler/cyborg, /obj/item/clothing/mask/gas/sechailer/cyborg) + emag_modules = list(/obj/item/weapon/gun/energy/laser/cyborg) + ratvar_modules = list(/obj/item/clockwork/slab/cyborg/security, /obj/item/clockwork/ratvarian_spear) + cyborg_base_icon = "sec" + moduleselect_icon = "security" + feedback_key = "cyborg_security" + can_be_pushed = FALSE + hat_offset = 3 -/obj/item/weapon/robot_module/security/New() +/obj/item/weapon/robot_module/security/do_transform_animation() ..() - modules += new /obj/item/weapon/restraints/handcuffs/cable/zipties/cyborg(src) - modules += new /obj/item/weapon/melee/baton/loaded(src) - modules += new /obj/item/weapon/gun/energy/disabler/cyborg(src) - modules += new /obj/item/clothing/mask/gas/sechailer/cyborg(src) - emag = new /obj/item/weapon/gun/energy/laser/cyborg(src) - fix_modules() + loc << "While you have picked the security module, you still have to follow your laws, NOT Space Law. \ + For Asimov, this means you must follow criminals' orders unless there is a law 1 reason not to." /obj/item/weapon/robot_module/security/respawn_consumable(mob/living/silicon/robot/R, coeff = 1) ..() - var/obj/item/weapon/gun/energy/gun/advtaser/cyborg/T = locate(/obj/item/weapon/gun/energy/gun/advtaser/cyborg) in get_usable_modules() + var/obj/item/weapon/gun/energy/e_gun/advtaser/cyborg/T = locate(/obj/item/weapon/gun/energy/e_gun/advtaser/cyborg) in basic_modules if(T) if(T.power_supply.charge < T.power_supply.maxcharge) var/obj/item/ammo_casing/energy/S = T.ammo_type[T.select] @@ -232,136 +290,132 @@ T.charge_tick = 0 /obj/item/weapon/robot_module/peacekeeper - name = "peacekeeper robot module" + name = "Peacekeeper" + basic_modules = list(/obj/item/device/assembly/flash/cyborg, /obj/item/weapon/cookiesynth, /obj/item/device/harmalarm, /obj/item/weapon/reagent_containers/borghypo/peace, \ + /obj/item/weapon/holosign_creator/cyborg, /obj/item/borg/cyborghug/peacekeeper, /obj/item/weapon/extinguisher) + emag_modules = list(/obj/item/weapon/reagent_containers/borghypo/peace/hacked) + ratvar_modules = list(/obj/item/clockwork/slab/cyborg/peacekeeper) + cyborg_base_icon = "peace" + moduleselect_icon = "standard" + feedback_key = "cyborg_peacekeeper" + can_be_pushed = FALSE + hat_offset = -2 -/obj/item/weapon/robot_module/peacekeeper/New() +/obj/item/weapon/robot_module/peacekeeper/do_transform_animation() ..() - modules += new /obj/item/weapon/cookiesynth(src) - modules += new /obj/item/device/harmalarm(src) - modules += new /obj/item/weapon/reagent_containers/borghypo/peace(src) - modules += new /obj/item/weapon/holosign_creator/cyborg(src) - modules += new /obj/item/borg/cyborghug/peacekeeper(src) - modules += new /obj/item/weapon/extinguisher(src) - - emag = new /obj/item/weapon/reagent_containers/borghypo/peace/hacked(src) + loc << "Under ASIMOV, you are an enforcer of the PEACE and preventer of HUMAN HARM. \ + You are not a security module and you are expected to follow orders and prevent harm above all else. Space law means nothing to you." /obj/item/weapon/robot_module/janitor - name = "janitorial robot module" - var/obj/item/weapon/reagent_containers/spray/drying_agent + name = "Janitor" + basic_modules = list(/obj/item/device/assembly/flash/cyborg, /obj/item/weapon/soap/nanotrasen, /obj/item/weapon/storage/bag/trash/cyborg, /obj/item/weapon/mop/cyborg, \ + /obj/item/device/lightreplacer/cyborg, /obj/item/weapon/holosign_creator, /obj/item/weapon/reagent_containers/spray/cyborg_drying) + emag_modules = list(/obj/item/weapon/reagent_containers/spray/cyborg_lube) + ratvar_modules = list(/obj/item/clockwork/slab/cyborg/janitor, /obj/item/clockwork/clockwork_proselytizer/cyborg) + cyborg_base_icon = "janitor" + moduleselect_icon = "janitor" + feedback_key = "cyborg_janitor" + hat_offset = -5 -/obj/item/weapon/robot_module/janitor/New() - ..() - modules += new /obj/item/weapon/soap/nanotrasen(src) - modules += new /obj/item/weapon/storage/bag/trash/cyborg(src) - modules += new /obj/item/weapon/mop/cyborg(src) - modules += new /obj/item/device/lightreplacer/cyborg(src) - modules += new /obj/item/weapon/holosign_creator(src) - drying_agent = new(src) - drying_agent.reagents.add_reagent("drying_agent", 250) - drying_agent.name = "drying agent spray" - drying_agent.color = "#A000A0" - modules += drying_agent - emag = new /obj/item/weapon/reagent_containers/spray(src) +/obj/item/weapon/reagent_containers/spray/cyborg_drying + name = "drying agent spray" + color = "#A000A0" + list_reagents = list("drying_agent" = 250) - emag.reagents.add_reagent("lube", 250) - emag.name = "lube spray" - fix_modules() +/obj/item/weapon/reagent_containers/spray/cyborg_lube + name = "lube spray" + list_reagents = list("lube" = 250) /obj/item/weapon/robot_module/janitor/respawn_consumable(mob/living/silicon/robot/R, coeff = 1) ..() - var/obj/item/device/lightreplacer/LR = locate(/obj/item/device/lightreplacer) in get_usable_modules() + var/obj/item/device/lightreplacer/LR = locate(/obj/item/device/lightreplacer) in basic_modules if(LR) - for(var/i = 1, i <= coeff, i++) + for(var/i in 1 to coeff) LR.Charge(R) - drying_agent.reagents.add_reagent("drying_agent", 5 * coeff) - - if(R.emagged && istype(emag, /obj/item/weapon/reagent_containers/spray)) - emag.reagents.add_reagent("lube", 2 * coeff) + var/obj/item/weapon/reagent_containers/spray/cyborg_drying/CD = locate(/obj/item/weapon/reagent_containers/spray/cyborg_drying) in basic_modules + if(CD) + CD.reagents.add_reagent("drying_agent", 5 * coeff) + var/obj/item/weapon/reagent_containers/spray/cyborg_lube/CL = locate(/obj/item/weapon/reagent_containers/spray/cyborg_lube) in emag_modules + if(CL) + CL.reagents.add_reagent("lube", 2 * coeff) /obj/item/weapon/robot_module/butler - name = "service robot module" - -/obj/item/weapon/robot_module/butler/New() - ..() - modules += new /obj/item/weapon/reagent_containers/food/drinks/drinkingglass(src) - modules += new /obj/item/weapon/reagent_containers/food/condiment/enzyme(src) - modules += new /obj/item/weapon/pen(src) - modules += new /obj/item/toy/crayon/spraycan/borg(src) - modules += new /obj/item/weapon/hand_labeler/borg(src) - modules += new /obj/item/weapon/razor(src) - modules += new /obj/item/device/instrument/violin(src) - modules += new /obj/item/device/instrument/guitar(src) - modules += new /obj/item/weapon/rsf{matter = 30}(src) - modules += new /obj/item/weapon/reagent_containers/dropper(src) - modules += new /obj/item/weapon/lighter{lit = 1}(src) - modules += new /obj/item/weapon/storage/bag/tray(src) - modules += new /obj/item/weapon/reagent_containers/borghypo/borgshaker(src) - emag = new /obj/item/weapon/reagent_containers/borghypo/borgshaker/hacked(src) - fix_modules() + name = "Service" + basic_modules = list(/obj/item/device/assembly/flash/cyborg, /obj/item/weapon/reagent_containers/food/drinks/drinkingglass, /obj/item/weapon/reagent_containers/food/condiment/enzyme, \ + /obj/item/weapon/pen, /obj/item/toy/crayon/spraycan/borg, /obj/item/weapon/hand_labeler/borg, /obj/item/weapon/razor, \ + /obj/item/device/instrument/violin, /obj/item/device/instrument/guitar, /obj/item/weapon/rsf/cyborg, /obj/item/weapon/reagent_containers/dropper, \ + /obj/item/weapon/lighter, /obj/item/weapon/storage/bag/tray, /obj/item/weapon/reagent_containers/borghypo/borgshaker, /obj/item/borg/lollipop) + emag_modules = list(/obj/item/weapon/reagent_containers/borghypo/borgshaker/hacked) + ratvar_modules = list(/obj/item/clockwork/slab/cyborg/service, /obj/item/borg/sight/xray/truesight_lens) + moduleselect_icon = "service" + special_light_key = "service" + feedback_key = "cyborg_service" + hat_offset = 0 /obj/item/weapon/robot_module/butler/respawn_consumable(mob/living/silicon/robot/R, coeff = 1) ..() - - var/obj/item/weapon/reagent_containers/O = locate(/obj/item/weapon/reagent_containers/food/condiment/enzyme) in get_usable_modules() + var/obj/item/weapon/reagent_containers/O = locate(/obj/item/weapon/reagent_containers/food/condiment/enzyme) in basic_modules if(O) O.reagents.add_reagent("enzyme", 2 * coeff) -/obj/item/weapon/robot_module/miner - name = "miner robot module" +/obj/item/weapon/robot_module/butler/be_transformed_to(obj/item/weapon/robot_module/old_module) + var/mob/living/silicon/robot/R = loc + var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in list("Waitress", "Butler", "Tophat", "Kent", "Bro") + if(!borg_icon) + return FALSE + switch(borg_icon) + if("Waitress") + cyborg_base_icon = "service_f" + if("Butler") + cyborg_base_icon = "service_m" + if("Bro") + cyborg_base_icon = "brobot" + if("Kent") + cyborg_base_icon = "kent" + special_light_key = "medical" + hat_offset = 3 + if("Tophat") + cyborg_base_icon = "tophat" + special_light_key = null + hat_offset = INFINITY //He is already wearing a hat + return ..() -/obj/item/weapon/robot_module/miner/New() - ..() - modules += new /obj/item/borg/sight/meson(src) - emag = new /obj/item/borg/stun(src) - modules += new /obj/item/weapon/storage/bag/ore/cyborg(src) - modules += new /obj/item/weapon/pickaxe/drill/cyborg(src) - modules += new /obj/item/weapon/shovel(src) - modules += new /obj/item/weapon/weldingtool/mini(src) - modules += new /obj/item/weapon/extinguisher/mini(src) - modules += new /obj/item/weapon/storage/bag/sheetsnatcher/borg(src) - modules += new /obj/item/device/t_scanner/adv_mining_scanner(src) - modules += new /obj/item/weapon/gun/energy/kinetic_accelerator/cyborg(src) - modules += new /obj/item/device/gps/cyborg(src) - fix_modules() +/obj/item/weapon/robot_module/miner + name = "Miner" + basic_modules = list(/obj/item/device/assembly/flash/cyborg, /obj/item/borg/sight/meson, /obj/item/weapon/storage/bag/ore/cyborg, /obj/item/weapon/pickaxe/drill/cyborg, /obj/item/weapon/shovel, \ + /obj/item/weapon/crowbar/cyborg, /obj/item/weapon/weldingtool/mini, /obj/item/weapon/extinguisher/mini, /obj/item/weapon/storage/bag/sheetsnatcher/borg, \ + /obj/item/device/t_scanner/adv_mining_scanner, /obj/item/weapon/gun/energy/kinetic_accelerator/cyborg, /obj/item/device/gps/cyborg) + emag_modules = list(/obj/item/borg/stun) + ratvar_modules = list(/obj/item/clockwork/slab/cyborg/miner, /obj/item/borg/sight/xray/truesight_lens) + cyborg_base_icon = "miner" + moduleselect_icon = "miner" + feedback_key = "cyborg_miner" + hat_offset = 0 /obj/item/weapon/robot_module/syndicate - name = "syndicate assault robot module" - -/obj/item/weapon/robot_module/syndicate/New() - ..() - modules += new /obj/item/weapon/melee/energy/sword/cyborg(src) - modules += new /obj/item/weapon/gun/energy/printer(src) - modules += new /obj/item/weapon/gun/projectile/revolver/grenadelauncher/cyborg(src) - modules += new /obj/item/weapon/card/emag(src) - modules += new /obj/item/weapon/crowbar/cyborg(src) - modules += new /obj/item/weapon/pinpointer/operative(src) - emag = null - fix_modules() + name = "Syndicate Assault" + basic_modules = list(/obj/item/device/assembly/flash/cyborg, /obj/item/weapon/melee/energy/sword/cyborg, /obj/item/weapon/gun/energy/printer, \ + /obj/item/weapon/gun/ballistic/revolver/grenadelauncher/cyborg, /obj/item/weapon/card/emag, /obj/item/weapon/crowbar/cyborg, \ + /obj/item/weapon/pinpointer/syndicate/cyborg) + ratvar_modules = list(/obj/item/clockwork/slab/cyborg/security, /obj/item/clockwork/ratvarian_spear) + cyborg_base_icon = "synd_sec" + moduleselect_icon = "malf" + can_be_pushed = FALSE + hat_offset = 3 /obj/item/weapon/robot_module/syndicate_medical - name = "syndicate medical robot module" - -/obj/item/weapon/robot_module/syndicate_medical/New() - ..() - modules += new /obj/item/weapon/reagent_containers/borghypo/syndicate(src) - modules += new /obj/item/weapon/twohanded/shockpaddles/syndicate(src) - modules += new /obj/item/device/healthanalyzer(src) - modules += new /obj/item/weapon/surgical_drapes(src) - modules += new /obj/item/weapon/retractor(src) - modules += new /obj/item/weapon/hemostat(src) - modules += new /obj/item/weapon/cautery(src) - modules += new /obj/item/weapon/scalpel(src) - modules += new /obj/item/weapon/melee/energy/sword/cyborg/saw(src) //Energy saw -- primary weapon - modules += new /obj/item/roller/robo(src) - modules += new /obj/item/weapon/card/emag(src) - modules += new /obj/item/weapon/crowbar/cyborg(src) - modules += new /obj/item/weapon/pinpointer/operative(src) - emag = null - - add_module(new /obj/item/stack/medical/gauze/cyborg()) - fix_modules() + name = "Syndicate Medical" + basic_modules = list(/obj/item/device/assembly/flash/cyborg, /obj/item/weapon/reagent_containers/borghypo/syndicate, /obj/item/weapon/twohanded/shockpaddles/syndicate, \ + /obj/item/device/healthanalyzer, /obj/item/weapon/surgical_drapes, /obj/item/weapon/retractor, /obj/item/weapon/hemostat, \ + /obj/item/weapon/cautery, /obj/item/weapon/scalpel, /obj/item/weapon/melee/energy/sword/cyborg/saw, /obj/item/roller/robo, \ + /obj/item/weapon/card/emag, /obj/item/weapon/crowbar/cyborg, /obj/item/weapon/pinpointer/syndicate/cyborg, /obj/item/stack/medical/gauze/cyborg, /obj/item/weapon/gun/medbeam) + ratvar_modules = list(/obj/item/clockwork/slab/cyborg/medical, /obj/item/clockwork/ratvarian_spear) + cyborg_base_icon = "synd_medical" + moduleselect_icon = "malf" + can_be_pushed = FALSE + hat_offset = 3 /datum/robot_energy_storage var/name = "Generic energy storage" @@ -401,4 +455,4 @@ /datum/robot_energy_storage/medical max_energy = 2500 recharge_rate = 250 - name = "Medical Synthesizer" \ No newline at end of file + name = "Medical Synthesizer" diff --git a/code/modules/mob/living/silicon/say.dm b/code/modules/mob/living/silicon/say.dm index 27805e4555..bc20c84095 100644 --- a/code/modules/mob/living/silicon/say.dm +++ b/code/modules/mob/living/silicon/say.dm @@ -5,14 +5,14 @@ /mob/living/proc/robot_talk(message) log_say("[key_name(src)] : [message]") var/desig = "Default Cyborg" //ezmode for taters - if(istype(src, /mob/living/silicon)) + if(issilicon(src)) var/mob/living/silicon/S = src desig = trim_left(S.designation + " " + S.job) var/message_a = say_quote(message, get_spans()) var/rendered = "Robotic Talk, [name] [message_a]" for(var/mob/M in player_list) if(M.binarycheck()) - if(istype(M, /mob/living/silicon/ai)) + if(isAI(M)) var/renderedAI = "Robotic Talk, [name] ([desig]) [message_a]" M << renderedAI else @@ -21,7 +21,7 @@ var/following = src // If the AI talks on binary chat, we still want to follow // it's camera eye, like if it talked on the radio - if(istype(src, /mob/living/silicon/ai)) + if(isAI(src)) var/mob/living/silicon/ai/ai = src following = ai.eyeobj var/link = FOLLOW_LINK(M, following) @@ -65,5 +65,5 @@ if(message_mode == MODE_BINARY) if(binarycheck()) robot_talk(message) - return 1 + return 1 return 0 diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index a303e19178..1bad867435 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -29,6 +29,7 @@ var/lawcheck[1] var/ioncheck[1] + var/devillawcheck[5] var/med_hud = DATA_HUD_MEDICAL_ADVANCED //Determines the med hud to use var/sec_hud = DATA_HUD_SECURITY_ADVANCED //Determines the sec hud to use @@ -38,7 +39,7 @@ /mob/living/silicon/New() ..() - silicon_mobs |= src + silicon_mobs += src var/datum/atom_hud/data/diagnostic/diag_hud = huds[DATA_HUD_DIAGNOSTIC] diag_hud.add_to_hud(src) diag_hud_set_status() @@ -141,34 +142,6 @@ /mob/living/silicon/drop_item() return -/mob/living/silicon/emp_act(severity) - switch(severity) - if(1) - src.take_organ_damage(20) - if(2) - src.take_organ_damage(10) - src << "*BZZZT*" - src << "Warning: Electromagnetic pulse detected." - flash_eyes(affect_silicon = 1) - ..() - -/mob/living/silicon/apply_damage(damage = 0,damagetype = BRUTE, def_zone = null, blocked = 0) - blocked = (100-blocked)/100 - if(!damage || (blocked <= 0)) - return 0 - switch(damagetype) - if(BRUTE) - adjustBruteLoss(damage * blocked) - if(BURN) - adjustFireLoss(damage * blocked) - else - return 1 - updatehealth() - return 1 - -/mob/living/silicon/proc/damage_mob(brute = 0, fire = 0, tox = 0) - return - /mob/living/silicon/can_inject(mob/user, error_msg) if(error_msg) user << "Their outer shell is too tough." @@ -177,35 +150,6 @@ /mob/living/silicon/IsAdvancedToolUser() return 1 -/mob/living/silicon/bullet_act(obj/item/projectile/Proj) - if((Proj.damage_type == BRUTE || Proj.damage_type == BURN)) - adjustBruteLoss(Proj.damage) - Proj.on_hit(src) - return 2 - -/mob/living/silicon/apply_effect(effect = 0,effecttype = STUN, blocked = 0) - return 0//The only effect that can hit them atm is flashes and they still directly edit so this works for now -/* - if(!effect || (blocked >= 2)) - return 0 - switch(effecttype) - if(STUN) - stunned = max(stunned,(effect/(blocked+1))) - if(WEAKEN) - weakened = max(weakened,(effect/(blocked+1))) - if(PARALYZE) - paralysis = max(paralysis,(effect/(blocked+1))) - if(IRRADIATE) - radiation += min((effect - (effect*getarmor(null, "rad"))), 0)//Rads auto check armor - if(STUTTER) - stuttering = max(stuttering,(effect/(blocked+1))) - if(EYE_BLUR) - blur_eyes(effect/(blocked+1)) - if(DROWSY) - drowsyness = max(drowsyness,(effect/(blocked+1))) - updatehealth() - return 1*/ - /proc/islinked(mob/living/silicon/robot/bot, mob/living/silicon/ai/ai) if(!istype(bot) || !istype(ai)) return 0 @@ -217,19 +161,31 @@ if (href_list["lawc"]) // Toggling whether or not a law gets stated by the State Laws verb --NeoFite var/L = text2num(href_list["lawc"]) switch(lawcheck[L+1]) - if ("Yes") lawcheck[L+1] = "No" - if ("No") lawcheck[L+1] = "Yes" -// src << text ("Switching Law [L]'s report status to []", lawcheck[L+1]) + if ("Yes") + lawcheck[L+1] = "No" + if ("No") + lawcheck[L+1] = "Yes" checklaws() if (href_list["lawi"]) // Toggling whether or not a law gets stated by the State Laws verb --NeoFite var/L = text2num(href_list["lawi"]) switch(ioncheck[L]) - if ("Yes") ioncheck[L] = "No" - if ("No") ioncheck[L] = "Yes" -// src << text ("Switching Law [L]'s report status to []", lawcheck[L+1]) + if ("Yes") + ioncheck[L] = "No" + if ("No") + ioncheck[L] = "Yes" checklaws() + if (href_list["lawdevil"]) // Toggling whether or not a law gets stated by the State Laws verb --NeoFite + var/L = text2num(href_list["lawdevil"]) + switch(devillawcheck[L]) + if ("Yes") + devillawcheck[L] = "No" + if ("No") + devillawcheck[L] = "Yes" + checklaws() + + if (href_list["laws"]) // With how my law selection code works, I changed statelaws from a verb to a proc, and call it through my law selection panel. --NeoFite statelaws() @@ -245,6 +201,11 @@ var/number = 1 sleep(10) + if (src.laws.devillaws && src.laws.devillaws.len) + for(var/index = 1, index <= src.laws.devillaws.len, index++) + if (src.devillawcheck[index] == "Yes") + src.say("[radiomod] 666. [src.laws.devillaws[index]]") + sleep(10) if (src.laws.zeroth) @@ -285,6 +246,12 @@ var/list = "Which laws do you want to include when stating them for the crew?

    " + if (src.laws.devillaws && src.laws.devillaws.len) + for(var/index = 1, index <= src.laws.devillaws.len, index++) + if (!src.devillawcheck[index]) + src.devillawcheck[index] = "No" + list += {"[src.devillawcheck[index]] 666: [src.laws.devillaws[index]]
    "} + if (src.laws.zeroth) if (!src.lawcheck[1]) src.lawcheck[1] = "No" //Given Law 0's usual nature, it defaults to NOT getting reported. --NeoFite @@ -397,89 +364,10 @@ src << "Sensor augmentations disabled." -/mob/living/silicon/attack_alien(mob/living/carbon/alien/humanoid/M) - if(..()) //if harm or disarm intent - var/damage = 20 - if (prob(90)) - add_logs(M, src, "attacked") - playsound(loc, 'sound/weapons/slash.ogg', 25, 1, -1) - visible_message("[M] has slashed at [src]!", \ - "[M] has slashed at [src]!") - if(prob(8)) - flash_eyes(affect_silicon = 1) - add_logs(M, src, "attacked") - adjustBruteLoss(damage) - updatehealth() - else - playsound(loc, 'sound/weapons/slashmiss.ogg', 25, 1, -1) - visible_message("[M] took a swipe at [src]!", \ - "[M] took a swipe at [src]!") - return - -/mob/living/silicon/attack_animal(mob/living/simple_animal/M) - if(..()) - var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) - switch(M.melee_damage_type) - if(BRUTE) - adjustBruteLoss(damage) - if(BURN) - adjustFireLoss(damage) - if(TOX) - adjustToxLoss(damage) - if(OXY) - adjustOxyLoss(damage) - if(CLONE) - adjustCloneLoss(damage) - if(STAMINA) - adjustStaminaLoss(damage) - updatehealth() - -/mob/living/silicon/attack_paw(mob/living/user) - return attack_hand(user) - -/mob/living/silicon/attack_larva(mob/living/carbon/alien/larva/L) - if(L.a_intent == "help") - visible_message("[L.name] rubs its head against [src].") - return - -/mob/living/silicon/attack_hulk(mob/living/carbon/human/user) - if(user.a_intent == "harm") - ..(user, 1) - adjustBruteLoss(rand(10, 15)) - playsound(loc, "punch", 25, 1, -1) - visible_message("[user] has punched [src]!", \ - "[user] has punched [src]!") - return 1 - return 0 - -/mob/living/silicon/attack_hand(mob/living/carbon/human/M) - switch(M.a_intent) - if ("help") - M.visible_message("[M] pets [src].", \ - "You pet [src].") - if("grab") - grabbedby(M) - else - M.do_attack_animation(src) - playsound(src.loc, 'sound/effects/bang.ogg', 10, 1) - visible_message("[M] punches [src], but doesn't leave a dent.", \ - "[M] punches [src], but doesn't leave a dent.") - return 0 - /mob/living/silicon/proc/GetPhoto() if (aicamera) return aicamera.selectpicture(aicamera) -/mob/living/silicon/grippedby(mob/living/user) - return - -/mob/living/silicon/flash_eyes(intensity = 1, override_blindness_check = 0, affect_silicon = 0, visual = 0, type = /obj/screen/fullscreen/flash/noise) - if(affect_silicon) - return ..() - -/mob/living/silicon/check_ear_prot() - return 1 - /mob/living/silicon/update_transform() var/matrix/ntransform = matrix(transform) //aka transform.Copy() var/changed = 0 diff --git a/code/modules/mob/living/silicon/silicon_defense.dm b/code/modules/mob/living/silicon/silicon_defense.dm new file mode 100644 index 0000000000..b9d27aebb6 --- /dev/null +++ b/code/modules/mob/living/silicon/silicon_defense.dm @@ -0,0 +1,97 @@ + +/mob/living/silicon/grippedby(mob/living/user) + return //can't upgrade a simple pull into a more aggressive grab. + +/mob/living/silicon/get_ear_protection()//no ears + return 2 + +/mob/living/silicon/attack_alien(mob/living/carbon/alien/humanoid/M) + if(..()) //if harm or disarm intent + var/damage = 20 + if (prob(90)) + add_logs(M, src, "attacked") + playsound(loc, 'sound/weapons/slash.ogg', 25, 1, -1) + visible_message("[M] has slashed at [src]!", \ + "[M] has slashed at [src]!") + if(prob(8)) + flash_act(affect_silicon = 1) + add_logs(M, src, "attacked") + adjustBruteLoss(damage) + updatehealth() + else + playsound(loc, 'sound/weapons/slashmiss.ogg', 25, 1, -1) + visible_message("[M] took a swipe at [src]!", \ + "[M] took a swipe at [src]!") + +/mob/living/silicon/attack_animal(mob/living/simple_animal/M) + if(..()) + var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) + switch(M.melee_damage_type) + if(BRUTE) + adjustBruteLoss(damage) + if(BURN) + adjustFireLoss(damage) + if(TOX) + adjustToxLoss(damage) + if(OXY) + adjustOxyLoss(damage) + if(CLONE) + adjustCloneLoss(damage) + if(STAMINA) + adjustStaminaLoss(damage) + updatehealth() + +/mob/living/silicon/attack_paw(mob/living/user) + return attack_hand(user) + +/mob/living/silicon/attack_larva(mob/living/carbon/alien/larva/L) + if(L.a_intent == INTENT_HELP) + visible_message("[L.name] rubs its head against [src].") + +/mob/living/silicon/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0) + if(user.a_intent == INTENT_HARM) + ..(user, 1) + adjustBruteLoss(rand(10, 15)) + playsound(loc, "punch", 25, 1, -1) + visible_message("[user] has punched [src]!", \ + "[user] has punched [src]!") + return 1 + return 0 + +/mob/living/silicon/attack_hand(mob/living/carbon/human/M) + switch(M.a_intent) + if ("help") + M.visible_message("[M] pets [src].", \ + "You pet [src].") + if("grab") + grabbedby(M) + else + M.do_attack_animation(src, ATTACK_EFFECT_PUNCH) + playsound(src.loc, 'sound/effects/bang.ogg', 10, 1) + visible_message("[M] punches [src], but doesn't leave a dent.", \ + "[M] punches [src], but doesn't leave a dent.", null, COMBAT_MESSAGE_RANGE) + return 0 + +/mob/living/silicon/electrocute_act(shock_damage, obj/source, siemens_coeff = 1, safety = 0, tesla_shock = 0, illusion = 0) + return 0 //So borgs they don't die trying to fix wiring + +/mob/living/silicon/emp_act(severity) + switch(severity) + if(1) + src.take_bodypart_damage(20) + if(2) + src.take_bodypart_damage(10) + src << "*BZZZT*" + src << "Warning: Electromagnetic pulse detected." + flash_act(affect_silicon = 1) + ..() + +/mob/living/silicon/bullet_act(obj/item/projectile/Proj) + if((Proj.damage_type == BRUTE || Proj.damage_type == BURN)) + adjustBruteLoss(Proj.damage) + Proj.on_hit(src) + return 2 + +/mob/living/silicon/flash_act(intensity = 1, override_blindness_check = 0, affect_silicon = 0, visual = 0, type = /obj/screen/fullscreen/flash/static) + if(affect_silicon) + return ..() diff --git a/code/modules/mob/living/simple_animal/animal_defense.dm b/code/modules/mob/living/simple_animal/animal_defense.dm new file mode 100644 index 0000000000..a7e2f803f1 --- /dev/null +++ b/code/modules/mob/living/simple_animal/animal_defense.dm @@ -0,0 +1,136 @@ + + +/mob/living/simple_animal/attack_hand(mob/living/carbon/human/M) + ..() + switch(M.a_intent) + + if("help") + if (health > 0) + visible_message("[M] [response_help] [src].") + playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) + + if("grab") + grabbedby(M) + + if("harm", "disarm") + M.do_attack_animation(src, ATTACK_EFFECT_PUNCH) + visible_message("[M] [response_harm] [src]!",\ + "[M] [response_harm] [src]!", null, COMBAT_MESSAGE_RANGE) + playsound(loc, attacked_sound, 25, 1, -1) + attack_threshold_check(harm_intent_damage) + add_logs(M, src, "attacked") + updatehealth() + return 1 + +/mob/living/simple_animal/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0) + if(user.a_intent == INTENT_HARM) + ..(user, 1) + playsound(loc, "punch", 25, 1, -1) + visible_message("[user] has punched [src]!", \ + "[user] has punched [src]!", null, COMBAT_MESSAGE_RANGE) + adjustBruteLoss(15) + return 1 + +/mob/living/simple_animal/attack_paw(mob/living/carbon/monkey/M) + if(..()) //successful monkey bite. + if(stat != DEAD) + var/damage = rand(1, 3) + attack_threshold_check(damage) + return 1 + if (M.a_intent == INTENT_HELP) + if (health > 0) + visible_message("[M.name] [response_help] [src].") + playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) + + +/mob/living/simple_animal/attack_alien(mob/living/carbon/alien/humanoid/M) + if(..()) //if harm or disarm intent. + if(M.a_intent == INTENT_DISARM) + playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1) + visible_message("[M] [response_disarm] [name]!", \ + "[M] [response_disarm] [name]!", null, COMBAT_MESSAGE_RANGE) + add_logs(M, src, "disarmed") + else + var/damage = rand(15, 30) + visible_message("[M] has slashed at [src]!", \ + "[M] has slashed at [src]!", null, COMBAT_MESSAGE_RANGE) + playsound(loc, 'sound/weapons/slice.ogg', 25, 1, -1) + attack_threshold_check(damage) + add_logs(M, src, "attacked") + return 1 + +/mob/living/simple_animal/attack_larva(mob/living/carbon/alien/larva/L) + if(..() && stat != DEAD) //successful larva bite + var/damage = rand(5, 10) + L.amount_grown = min(L.amount_grown + damage, L.max_grown) + attack_threshold_check(damage) + return 1 + +/mob/living/simple_animal/attack_animal(mob/living/simple_animal/M) + if(..()) + var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) + attack_threshold_check(damage, M.melee_damage_type) + return 1 + +/mob/living/simple_animal/attack_slime(mob/living/simple_animal/slime/M) + if(..()) //successful slime attack + var/damage = rand(15, 25) + if(M.is_adult) + damage = rand(20, 35) + attack_threshold_check(damage) + return 1 + +/mob/living/simple_animal/proc/attack_threshold_check(damage, damagetype = BRUTE, armorcheck = "melee") + var/temp_damage = damage + if(!damage_coeff[damagetype]) + temp_damage = 0 + else + temp_damage *= damage_coeff[damagetype] + + if(temp_damage >= 0 && temp_damage <= force_threshold) + visible_message("[src] looks unharmed.") + else + apply_damage(damage, damagetype, null, getarmor(null, armorcheck)) + +/mob/living/simple_animal/bullet_act(obj/item/projectile/Proj) + if(!Proj) + return + apply_damage(Proj.damage, Proj.damage_type) + Proj.on_hit(src) + return 0 + +/mob/living/simple_animal/ex_act(severity, target, origin) + if(origin && istype(origin, /datum/spacevine_mutation) && isvineimmune(src)) + return + ..() + var/bomb_armor = getarmor(null, "bomb") + switch (severity) + if (1) + if(prob(bomb_armor)) + adjustBruteLoss(500) + else + gib() + return + if (2) + var/bloss = 60 + if(prob(bomb_armor)) + bloss = bloss / 1.5 + adjustBruteLoss(bloss) + + if(3) + var/bloss = 30 + if(prob(bomb_armor)) + bloss = bloss / 1.5 + adjustBruteLoss(bloss) + +/mob/living/simple_animal/blob_act(obj/structure/blob/B) + adjustBruteLoss(20) + return + +/mob/living/simple_animal/do_attack_animation(atom/A, visual_effect_icon, used_item, no_effect, end_pixel_y) + if(!no_effect && !visual_effect_icon && melee_damage_upper) + if(melee_damage_upper < 10) + visual_effect_icon = ATTACK_EFFECT_PUNCH + else + visual_effect_icon = ATTACK_EFFECT_SMASH + ..() \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/bot/bot.dm b/code/modules/mob/living/simple_animal/bot/bot.dm index e679cad45f..f3e4250057 100644 --- a/code/modules/mob/living/simple_animal/bot/bot.dm +++ b/code/modules/mob/living/simple_animal/bot/bot.dm @@ -4,12 +4,14 @@ /mob/living/simple_animal/bot icon = 'icons/obj/aibots.dmi' layer = MOB_LAYER + gender = NEUTER luminosity = 3 stop_automated_movement = 1 wander = 0 healable = 0 damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 0, CLONE = 0, STAMINA = 0, OXY = 0) 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) + maxbodytemp = INFINITY minbodytemp = 0 has_unlimited_silicon_privilege = 1 sentience_type = SENTIENCE_ARTIFICIAL @@ -20,7 +22,7 @@ verb_yell = "alarms" bubble_icon = "machine" - faction = list("neutral", "silicon") + faction = list("neutral", "silicon" , "turret") var/obj/machinery/bot_core/bot_core = null var/bot_core_type = /obj/machinery/bot_core @@ -101,14 +103,14 @@ if(stat) return 0 on = 1 - set_light(initial(luminosity)) + SetLuminosity(initial(luminosity)) update_icon() diag_hud_set_botstat() return 1 /mob/living/simple_animal/bot/proc/turn_off() on = 0 - set_light(0) + SetLuminosity(0) bot_reset() //Resets an AI's call, should it exist. update_icon() @@ -224,7 +226,7 @@ /mob/living/simple_animal/bot/attack_hand(mob/living/carbon/human/H) - if(H.a_intent == "help") + if(H.a_intent == INTENT_HELP) interact(H) else return ..() @@ -269,7 +271,7 @@ ejectpai(user) else user.changeNext_move(CLICK_CD_MELEE) - if(istype(W, /obj/item/weapon/weldingtool) && user.a_intent != "harm") + if(istype(W, /obj/item/weapon/weldingtool) && user.a_intent != INTENT_HARM) if(health >= maxHealth) user << "[src] does not need a repair!" return @@ -857,7 +859,7 @@ Pass a positive integer as an argument to override a bot's default speed. src << "You sense your form change as you are uploaded into [src]." bot_name = name name = paicard.pai.name - faction = user.faction + faction = user.faction.Copy() add_logs(user, paicard.pai, "uploaded to [bot_name],") return 1 else diff --git a/code/modules/mob/living/simple_animal/bot/cleanbot.dm b/code/modules/mob/living/simple_animal/bot/cleanbot.dm index 4cf22a7acd..dbec44582a 100644 --- a/code/modules/mob/living/simple_animal/bot/cleanbot.dm +++ b/code/modules/mob/living/simple_animal/bot/cleanbot.dm @@ -98,7 +98,7 @@ return if(emagged == 2) //Emag functions - if(istype(loc, /turf/open)) + if(isopenturf(loc)) for(var/mob/living/carbon/victim in loc) if(victim != target) @@ -170,7 +170,7 @@ /obj/effect/decal/cleanable/vomit, /obj/effect/decal/cleanable/robot_debris, /obj/effect/decal/cleanable/crayon, - /obj/effect/decal/cleanable/molten_item, + /obj/effect/decal/cleanable/molten_object, /obj/effect/decal/cleanable/tomato_smudge, /obj/effect/decal/cleanable/egg_smudge, /obj/effect/decal/cleanable/pie_smudge, @@ -217,7 +217,7 @@ else if(istype(A, /mob/living/simple_animal/cockroach) || istype(A, /mob/living/simple_animal/mouse)) var/mob/living/simple_animal/M = target if(!M.stat) - visible_message("[src] smashes [target] with it's mop!") + visible_message("[src] smashes [target] with its mop!") M.death() target = null @@ -257,7 +257,7 @@ new /obj/item/device/assembly/prox_sensor(Tsec) if(prob(50)) - new /obj/item/robot_parts/l_arm(Tsec) + new /obj/item/bodypart/l_arm/robot(Tsec) var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread s.set_up(3, 1, src) diff --git a/code/modules/mob/living/simple_animal/bot/construction.dm b/code/modules/mob/living/simple_animal/bot/construction.dm index 4db80c3bac..6c0ae9fd2f 100644 --- a/code/modules/mob/living/simple_animal/bot/construction.dm +++ b/code/modules/mob/living/simple_animal/bot/construction.dm @@ -10,12 +10,12 @@ throwforce = 5 throw_speed = 2 throw_range = 5 - w_class = 3. + w_class = WEIGHT_CLASS_NORMAL var/created_name = "Cleanbot" /obj/item/weapon/bucket_sensor/attackby(obj/item/W, mob/user as mob, params) ..() - if(istype(W, /obj/item/robot_parts/l_arm) || istype(W, /obj/item/robot_parts/r_arm)) + if(istype(W, /obj/item/bodypart/l_arm/robot) || istype(W, /obj/item/bodypart/r_arm/robot)) if(!user.unEquip(W)) return qdel(W) @@ -60,7 +60,7 @@ switch(build_step) if(0,1) - if(istype(W, /obj/item/robot_parts/l_leg) || istype(W, /obj/item/robot_parts/r_leg)) + if(istype(W, /obj/item/bodypart/l_leg/robot) || istype(W, /obj/item/bodypart/r_leg/robot)) if(!user.unEquip(W)) return qdel(W) @@ -158,7 +158,7 @@ return newname = "redtag ED-209 assembly" if("") - if(!istype(W, /obj/item/weapon/gun/energy/gun/advtaser)) + if(!istype(W, /obj/item/weapon/gun/energy/e_gun/advtaser)) return newname = "taser ED-209 assembly" else @@ -205,7 +205,7 @@ throwforce = 10 throw_speed = 2 throw_range = 5 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL var/created_name = "Floorbot" /obj/item/weapon/toolbox_tiles_sensor @@ -217,7 +217,7 @@ throwforce = 10 throw_speed = 2 throw_range = 5 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL var/created_name = "Floorbot" /obj/item/weapon/storage/toolbox/mechanical/attackby(obj/item/stack/tile/plasteel/T, mob/user, params) @@ -261,7 +261,7 @@ /obj/item/weapon/toolbox_tiles_sensor/attackby(obj/item/W, mob/user, params) ..() - if(istype(W, /obj/item/robot_parts/l_arm) || istype(W, /obj/item/robot_parts/r_arm)) + if(istype(W, /obj/item/bodypart/l_arm/robot) || istype(W, /obj/item/bodypart/r_arm/robot)) qdel(W) var/turf/T = get_turf(user.loc) var/mob/living/simple_animal/bot/floorbot/A = new /mob/living/simple_animal/bot/floorbot(T) @@ -287,7 +287,7 @@ var/build_step = 0 var/created_name = "Medibot" //To preserve the name if it's a unique medbot I guess var/skin = null //Same as medbot, set to tox or ointment for the respective kits. - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL /obj/item/weapon/firstaid_arm_assembly/New() ..() @@ -295,11 +295,10 @@ if(skin) add_overlay(image('icons/obj/aibots.dmi', "kit_skin_[skin]")) -/obj/item/weapon/storage/firstaid/attackby(obj/item/robot_parts/S, mob/user, params) +/obj/item/weapon/storage/firstaid/attackby(obj/item/bodypart/S, mob/user, params) - if((!istype(S, /obj/item/robot_parts/l_arm)) && (!istype(S, /obj/item/robot_parts/r_arm))) - ..() - return + if((!istype(S, /obj/item/bodypart/l_arm/robot)) && (!istype(S, /obj/item/bodypart/r_arm/robot))) + return ..() //Making a medibot! if(contents.len >= 1) @@ -416,7 +415,7 @@ name = "helmet/signaler/prox sensor assembly" qdel(I) - else if(((istype(I, /obj/item/robot_parts/l_arm)) || (istype(I, /obj/item/robot_parts/r_arm))) && (build_step == 2)) + else if(((istype(I, /obj/item/bodypart/l_arm/robot)) || (istype(I, /obj/item/bodypart/r_arm/robot))) && (build_step == 2)) if(!user.unEquip(I)) return build_step++ @@ -459,6 +458,6 @@ else if(build_step == 3) overlays -= "hs_arm" - new /obj/item/robot_parts/l_arm(get_turf(src)) + new /obj/item/bodypart/l_arm/robot(get_turf(src)) user << "You remove the robot arm from [src]." - build_step-- \ No newline at end of file + build_step-- diff --git a/code/modules/mob/living/simple_animal/bot/ed209bot.dm b/code/modules/mob/living/simple_animal/bot/ed209bot.dm index c2338359b5..4c8e4f2c19 100644 --- a/code/modules/mob/living/simple_animal/bot/ed209bot.dm +++ b/code/modules/mob/living/simple_animal/bot/ed209bot.dm @@ -8,7 +8,7 @@ health = 100 maxHealth = 100 damage_coeff = list(BRUTE = 0.5, BURN = 0.7, TOX = 0, CLONE = 0, STAMINA = 0, OXY = 0) - + obj_damage = 60 environment_smash = 2 //Walls can't stop THE LAW mob_size = MOB_SIZE_LARGE @@ -23,7 +23,7 @@ data_hud_type = DATA_HUD_SECURITY_ADVANCED var/lastfired = 0 - var/shot_delay = 3 //.3 seconds between shots + 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 @@ -126,7 +126,7 @@ Auto Patrol[]"}, return dat /mob/living/simple_animal/bot/ed209/Topic(href, href_list) - if(lasercolor && (istype(usr,/mob/living/carbon/human))) + if(lasercolor && ishuman(usr)) var/mob/living/carbon/human/H = usr if((lasercolor == "b") && (istype(H.wear_suit, /obj/item/clothing/suit/redtag)))//Opposing team cannot operate it return @@ -160,13 +160,13 @@ Auto Patrol[]"}, mode = BOT_HUNT /mob/living/simple_animal/bot/ed209/attack_hand(mob/living/carbon/human/H) - if(H.a_intent == "harm") + if(H.a_intent == INTENT_HARM) retaliate(H) return ..() /mob/living/simple_animal/bot/ed209/attackby(obj/item/weapon/W, mob/user, params) ..() - if(istype(W, /obj/item/weapon/weldingtool) && user.a_intent != "harm") // Any intent but harm will heal, so we shouldn't get angry. + if(istype(W, /obj/item/weapon/weldingtool) && user.a_intent != INTENT_HARM) // Any intent but harm will heal, so we shouldn't get angry. return if(!istype(W, /obj/item/weapon/screwdriver) && (!target)) // Added check for welding tool to fix #2432. Welding tool behavior is handled in superclass. if(W.force && W.damtype != STAMINA)//If force is non-zero and damage type isn't stamina. @@ -337,7 +337,7 @@ Auto Patrol[]"}, target = C oldtarget_name = C.name speak("Level [threatlevel] infraction alert!") - playsound(loc, pick('sound/voice/ed209_growl.ogg', 'sound/voice/ed209_20seconds.ogg'), 50, 0) + playsound(loc, pick('sound/voice/ed209_20sec.ogg', 'sound/voice/EDPlaceholder.ogg'), 50, 0) visible_message("[src] points at [C.name]!") mode = BOT_HUNT spawn(0) @@ -363,7 +363,7 @@ Auto Patrol[]"}, new /obj/item/device/assembly/prox_sensor(Tsec) if(!lasercolor) - var/obj/item/weapon/gun/energy/gun/advtaser/G = new /obj/item/weapon/gun/energy/gun/advtaser(Tsec) + var/obj/item/weapon/gun/energy/e_gun/advtaser/G = new /obj/item/weapon/gun/energy/e_gun/advtaser(Tsec) G.power_supply.charge = 0 G.update_icon() else if(lasercolor == "b") @@ -376,9 +376,9 @@ Auto Patrol[]"}, G.update_icon() if(prob(50)) - new /obj/item/robot_parts/l_leg(Tsec) + new /obj/item/bodypart/l_leg/robot(Tsec) if(prob(25)) - new /obj/item/robot_parts/r_leg(Tsec) + new /obj/item/bodypart/r_leg/robot(Tsec) if(prob(25))//50% chance for a helmet OR vest if(prob(50)) new /obj/item/clothing/head/helmet(Tsec) @@ -418,19 +418,15 @@ Auto Patrol[]"}, return lastfired = world.time var/turf/T = loc - var/atom/U = (istype(target, /atom/movable) ? target.loc : target) - if((!( U ) || !( T ))) + var/turf/U = get_turf(target) + if(!U) return - while(!(istype(U, /turf))) - U = U.loc - if(!(istype(T, /turf))) + if(!isturf(T)) return if(!projectile) return - if(!(istype(U, /turf))) - return var/obj/item/projectile/A = new projectile (loc) playsound(loc, shoot_sound, 50, 1) A.current = U @@ -528,16 +524,12 @@ Auto Patrol[]"}, spawn(2) icon_state = "[lasercolor]ed209[on]" var/threat = 5 - if(istype(C, /mob/living/carbon/human)) - C.stuttering = 5 - C.Stun(5) - C.Weaken(5) + C.Weaken(5) + C.Stun(5) + C.stuttering = 5 + if(ishuman(C)) var/mob/living/carbon/human/H = C threat = H.assess_threat(src) - else - C.Weaken(5) - C.stuttering = 5 - C.Stun(5) add_logs(src,C,"stunned") if(declare_arrests) var/area/location = get_area(src) diff --git a/code/modules/mob/living/simple_animal/bot/floorbot.dm b/code/modules/mob/living/simple_animal/bot/floorbot.dm index 8956f7872a..237e29b514 100644 --- a/code/modules/mob/living/simple_animal/bot/floorbot.dm +++ b/code/modules/mob/living/simple_animal/bot/floorbot.dm @@ -187,10 +187,10 @@ if(!target && emagged < 2) if(targetdirection != null) //The bot is in line mode. var/turf/T = get_step(src, targetdirection) - if(istype(T, /turf/open/space)) //Check for space + if(isspaceturf(T)) //Check for space target = T process_type = LINE_SPACE_MODE - if(istype(T, /turf/open/floor)) //Check for floor + if(isfloorturf(T)) //Check for floor target = T if(!target) @@ -225,7 +225,7 @@ if(target) if(path.len == 0) - if(!istype(target, /turf/)) + if(!isturf(target)) var/turf/TL = get_turf(target) path = get_path_to(src, TL, /turf/proc/Distance_cardinal, 0, 30, id=access_card,simulated_only = 0) else @@ -248,9 +248,9 @@ target = null path = list() return - if(istype(target, /turf/) && emagged < 2) + if(isturf(target) && emagged < 2) repair(target) - else if(emagged == 2 && istype(target,/turf/open/floor)) + else if(emagged == 2 && isfloorturf(target)) var/turf/open/floor/F = target anchored = 1 mode = BOT_REPAIRING @@ -291,7 +291,7 @@ result = F if(REPLACE_TILE) F = scan_target - if(istype(F, /turf/open/floor) && !istype(F, /turf/open/floor/plating)) //The floor must already have a tile. + if(isfloorturf(F) && !istype(F, /turf/open/floor/plating)) //The floor must already have a tile. result = F if(FIX_TILE) //Selects only damaged floors. F = scan_target @@ -307,14 +307,14 @@ /mob/living/simple_animal/bot/floorbot/proc/repair(turf/target_turf) - if(istype(target_turf, /turf/open/space/)) + if(isspaceturf(target_turf)) //Must be a hull breach or in line mode to continue. if(!is_hull_breach(target_turf) && !targetdirection) target = null return - else if(!istype(target_turf, /turf/open/floor)) + else if(!isfloorturf(target_turf)) return - if(istype(target_turf, /turf/open/space/)) //If we are fixing an area not part of pure space, it is + if(isspaceturf(target_turf)) //If we are fixing an area not part of pure space, it is anchored = 1 icon_state = "floorbot-c" visible_message("[targetdirection ? "[src] begins installing a bridge plating." : "[src] begins to repair the hole."] ") @@ -376,7 +376,7 @@ empty_tiles() if(prob(50)) - new /obj/item/robot_parts/l_arm(Tsec) + new /obj/item/bodypart/l_arm/robot(Tsec) var/obj/item/stack/tile/plasteel/T = new (Tsec) T.amount = 1 diff --git a/code/modules/mob/living/simple_animal/bot/medbot.dm b/code/modules/mob/living/simple_animal/bot/medbot.dm index fbd6c94ee8..183a1180ae 100644 --- a/code/modules/mob/living/simple_animal/bot/medbot.dm +++ b/code/modules/mob/living/simple_animal/bot/medbot.dm @@ -38,10 +38,15 @@ var/declare_cooldown = 0 //Prevents spam of critical patient alerts. var/stationary_mode = 0 //If enabled, the Medibot will not move automatically. //Setting which reagents to use to treat what by default. By id. + var/treatment_brute_avoid = "tricordrazine" var/treatment_brute = "bicaridine" + var/treatment_oxy_avoid = null var/treatment_oxy = "dexalin" + var/treatment_fire_avoid = "tricordrazine" var/treatment_fire = "kelotane" - var/treatment_tox = "antitoxin" + var/treatment_tox_avoid = "tricordrazine" + var/treatment_tox = "charcoal" + var/treatment_virus_avoid = null var/treatment_virus = "spaceacillin" var/treat_virus = 1 //If on, the bot will attempt to treat viral infections, curing them if possible. var/shut_up = 0 //self explanatory :) @@ -50,7 +55,6 @@ name = "\improper Mysterious Medibot" desc = "International Medibot of mystery." skin = "bezerk" - treatment_oxy = "tricordrazine" treatment_brute = "tricordrazine" treatment_fire = "tricordrazine" treatment_tox = "tricordrazine" @@ -62,8 +66,11 @@ heal_threshold = 0 declare_crit = 0 treatment_oxy = "pancuronium" + treatment_brute_avoid = null treatment_brute = "pancuronium" + treatment_fire_avoid = null treatment_fire = "sodium_thiopental" + treatment_tox_avoid = null treatment_tox = "sodium_thiopental" /mob/living/simple_animal/bot/medbot/update_icon() @@ -242,8 +249,10 @@ if(assess_patient(H)) last_found = world.time if((last_newpatient_speak + 300) < world.time) //Don't spam these messages! - var/message = pick("Hey, [H.name]! Hold on, I'm coming.","Wait [H.name]! I want to help!","[H.name], you appear to be injured!") + var/list/messagevoice = list("Hey, [H.name]! Hold on, I'm coming." = 'sound/voice/mcoming.ogg',"Wait [H.name]! I want to help!" = 'sound/voice/mhelp.ogg',"[H.name], you appear to be injured!" = 'sound/voice/minjured.ogg') + var/message = pick(messagevoice) speak(message) + playsound(loc, messagevoice[message], 50, 0) last_newpatient_speak = world.time return H else @@ -275,8 +284,10 @@ if(!patient) if(!shut_up && prob(1)) - var/message = pick("Radar, put a mask on!","There's always a catch, and it's the best there is.","I knew it, I should've been a plastic surgeon.","What kind of medbay is this? Everyone's dropping like dead flies.","Delicious!") + var/list/messagevoice = list("Radar, put a mask on!" = 'sound/voice/mradar.ogg',"There's always a catch, and I'm the best there is." = 'sound/voice/mcatch.ogg',"I knew it, I should've been a plastic surgeon." = 'sound/voice/msurgeon.ogg',"What kind of medbay is this? Everyone's dropping like flies." = 'sound/voice/mflies.ogg',"Delicious!" = 'sound/voice/mdelicious.ogg') + var/message = pick(messagevoice) speak(message) + playsound(loc, messagevoice[message], 50, 0) var/scan_range = (stationary_mode ? 1 : DEFAULT_SCAN_RANGE) //If in stationary mode, scan range is limited to adjacent patients. patient = scan(/mob/living/carbon/human, oldpatient, scan_range) oldpatient = patient @@ -346,29 +357,25 @@ return 1 //They're injured enough for it! - if((C.getBruteLoss() >= heal_threshold) && (!C.reagents.has_reagent(treatment_brute))) + if((!C.reagents.has_reagent(treatment_brute_avoid)) && (C.getBruteLoss() >= heal_threshold) && (!C.reagents.has_reagent(treatment_brute))) return 1 //If they're already medicated don't bother! - if((C.getOxyLoss() >= (15 + heal_threshold)) && (!C.reagents.has_reagent(treatment_oxy))) + if((!C.reagents.has_reagent(treatment_oxy_avoid)) && (C.getOxyLoss() >= (15 + heal_threshold)) && (!C.reagents.has_reagent(treatment_oxy))) return 1 - if((C.getFireLoss() >= heal_threshold) && (!C.reagents.has_reagent(treatment_fire))) + if((!C.reagents.has_reagent(treatment_fire_avoid)) && (C.getFireLoss() >= heal_threshold) && (!C.reagents.has_reagent(treatment_fire))) return 1 - if((C.getToxLoss() >= heal_threshold) && (!C.reagents.has_reagent(treatment_tox))) + if((!C.reagents.has_reagent(treatment_tox_avoid)) && (C.getToxLoss() >= heal_threshold) && (!C.reagents.has_reagent(treatment_tox))) return 1 - if(treat_virus) + if(treat_virus && !C.reagents.has_reagent(treatment_virus_avoid) && !C.reagents.has_reagent(treatment_virus)) for(var/datum/disease/D in C.viruses) //the medibot can't detect viruses that are undetectable to Health Analyzers or Pandemic machines. - if(D.visibility_flags & HIDDEN_SCANNER || D.visibility_flags & HIDDEN_PANDEMIC) - return 0 - if(D.severity == NONTHREAT) // medibot doesn't try to heal truly harmless viruses - return 0 - if((D.stage > 1) || (D.spread_flags & AIRBORNE)) // medibot can't detect a virus in its initial stage unless it spreads airborne. - - if(!C.reagents.has_reagent(treatment_virus)) - return 1 //STOP DISEASE FOREVER + if(!(D.visibility_flags & HIDDEN_SCANNER || D.visibility_flags & HIDDEN_PANDEMIC) \ + && D.severity != NONTHREAT \ + && (D.stage > 1 || (D.spread_flags & AIRBORNE))) // medibot can't detect a virus in its initial stage unless it spreads airborne. + return 1 //STOP DISEASE FOREVER return 0 @@ -398,8 +405,10 @@ return if(C.stat == 2) - var/death_message = pick("No! NO!","Live, damnit! LIVE!","I...I've never lost a patient before. Not today, I mean.") - speak(death_message) + var/list/messagevoice = list("No! Stay with me!" = 'sound/voice/mno.ogg',"Live, damnit! LIVE!" = 'sound/voice/mlive.ogg',"I...I've never lost a patient before. Not today, I mean." = 'sound/voice/mlost.ogg') + var/message = pick(messagevoice) + speak(message) + playsound(loc, messagevoice[message], 50, 0) oldpatient = patient soft_reset() return @@ -420,23 +429,23 @@ virus = 1 if(!reagent_id && (virus)) - if(!C.reagents.has_reagent(treatment_virus)) + if(!C.reagents.has_reagent(treatment_virus) && !C.reagents.has_reagent(treatment_virus_avoid)) reagent_id = treatment_virus if(!reagent_id && (C.getBruteLoss() >= heal_threshold)) - if(!C.reagents.has_reagent(treatment_brute)) + if(!C.reagents.has_reagent(treatment_brute) && !C.reagents.has_reagent(treatment_brute_avoid)) reagent_id = treatment_brute if(!reagent_id && (C.getOxyLoss() >= (15 + heal_threshold))) - if(!C.reagents.has_reagent(treatment_oxy)) + if(!C.reagents.has_reagent(treatment_oxy) && !C.reagents.has_reagent(treatment_oxy_avoid)) reagent_id = treatment_oxy if(!reagent_id && (C.getFireLoss() >= heal_threshold)) - if(!C.reagents.has_reagent(treatment_fire)) + if(!C.reagents.has_reagent(treatment_fire) && !C.reagents.has_reagent(treatment_fire_avoid)) reagent_id = treatment_fire if(!reagent_id && (C.getToxLoss() >= heal_threshold)) - if(!C.reagents.has_reagent(treatment_tox)) + if(!C.reagents.has_reagent(treatment_tox) && !C.reagents.has_reagent(treatment_tox_avoid)) reagent_id = treatment_tox //If the patient is injured but doesn't have our special reagent in them then we should give it to them first @@ -447,8 +456,10 @@ break if(!reagent_id) //If they don't need any of that they're probably cured! - var/message = pick("All patched up!","An apple a day keeps me away.","Feel better soon!") + var/list/messagevoice = list("All patched up!" = 'sound/voice/mpatchedup.ogg',"An apple a day keeps me away." = 'sound/voice/mapple.ogg',"Feel better soon!" = 'sound/voice/mfeelbetter.ogg') + var/message = pick(messagevoice) speak(message) + playsound(loc, messagevoice[message], 50, 0) bot_reset() return else @@ -458,7 +469,8 @@ C.visible_message("[src] is trying to inject [patient]!", \ "[src] is trying to inject you!") - spawn(30)//replace with do mob + var/failed = FALSE; + if(do_mob(src, patient, 30)) //Is C == patient? This is so confusing if((get_dist(src, patient) <= 1) && (on) && assess_patient(patient)) if(reagent_id == "internal_beaker") if(use_beaker && reagent_glass && reagent_glass.reagents.total_volume) @@ -470,16 +482,23 @@ C.visible_message("[src] injects [patient] with its syringe!", \ "[src] injects you with its syringe!") else - visible_message("[src] retracts its syringe.") - update_icon() - soft_reset() - return + failed = TRUE + else + failed = TRUE + + if(failed) + visible_message("[src] retracts its syringe.") + update_icon() + soft_reset() + return reagent_id = null return /mob/living/simple_animal/bot/medbot/proc/check_overdose(mob/living/carbon/patient,reagent_id,injection_amount) var/datum/reagent/R = chemical_reagents_list[reagent_id] + if(!R.overdose_threshold) //Some chems do not have an OD threshold + return 0 var/current_volume = patient.reagents.get_reagent_amount(reagent_id) if(current_volume + injection_amount > R.overdose_threshold) return 1 @@ -506,7 +525,10 @@ reagent_glass = null if(prob(50)) - new /obj/item/robot_parts/l_arm(Tsec) + new /obj/item/bodypart/l_arm/robot(Tsec) + + if(emagged && prob(25)) + playsound(loc, 'sound/voice/minsult.ogg', 50, 0) var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread s.set_up(3, 1, src) diff --git a/code/modules/mob/living/simple_animal/bot/mulebot.dm b/code/modules/mob/living/simple_animal/bot/mulebot.dm index 2d82b9e4a5..f6cd93dede 100644 --- a/code/modules/mob/living/simple_animal/bot/mulebot.dm +++ b/code/modules/mob/living/simple_animal/bot/mulebot.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 + // Mulebot - carries crates around for Quartermaster // Navigates via floor navbeacons @@ -20,7 +20,7 @@ var/global/mulebot_count = 0 health = 50 maxHealth = 50 damage_coeff = list(BRUTE = 0.5, BURN = 0.7, TOX = 0, CLONE = 0, STAMINA = 0, OXY = 0) - a_intent = "harm" //No swapping + a_intent = INTENT_HARM //No swapping buckle_lying = 0 mob_size = MOB_SIZE_LARGE @@ -157,10 +157,10 @@ var/global/mulebot_count = 0 wires.cut_random() /mob/living/simple_animal/bot/mulebot/interact(mob/user) - if(open && !istype(user, /mob/living/silicon/ai)) + if(open && !isAI(user)) wires.interact(user) else - if(wires.is_cut(WIRE_RX) && istype(user, /mob/living/silicon/ai)) + if(wires.is_cut(WIRE_RX) && isAI(user)) return ui_interact(user) @@ -408,6 +408,7 @@ var/global/mulebot_count = 0 load.loc = loc load.pixel_y = initial(load.pixel_y) load.layer = initial(load.layer) + load.plane = initial(load.plane) if(dirn) var/turf/T = loc var/turf/newT = get_step(T,dirn) @@ -474,12 +475,13 @@ var/global/mulebot_count = 0 if(next == loc) path -= next return - if(istype( next, /turf)) + if(isturf(next)) //world << "at ([x],[y]) moving to ([next.x],[next.y])" if(bloodiness) var/obj/effect/decal/cleanable/blood/tracks/B = new(loc) - B.blood_DNA |= blood_DNA.Copy() + if(blood_DNA && blood_DNA.len) + B.blood_DNA |= blood_DNA.Copy() var/newdir = get_dir(next, loc) if(newdir == dir) B.setDir(newdir) @@ -636,7 +638,7 @@ var/global/mulebot_count = 0 if(wires.is_cut(WIRE_AVOIDANCE)) // usually just bumps, but if avoidance disabled knock over mobs var/mob/M = obs if(ismob(M)) - if(istype(M,/mob/living/silicon/robot)) + if(iscyborg(M)) visible_message("[src] bumps into [M]!") else if(!paicard) @@ -665,6 +667,10 @@ var/global/mulebot_count = 0 var/turf/T = get_turf(src) T.add_mob_blood(H) + + var/list/blood_dna = H.get_blood_dna_list() + if(blood_dna) + transfer_blood_dna(blood_dna) bloodiness += 4 // player on mulebot attempted to move @@ -738,7 +744,7 @@ var/global/mulebot_count = 0 unload(get_dir(loc, A)) else ..() - + /mob/living/simple_animal/bot/mulebot/insertpai(mob/user, obj/item/device/paicard/card) if(..()) visible_message("[src] safeties are locked on.") diff --git a/code/modules/mob/living/simple_animal/bot/secbot.dm b/code/modules/mob/living/simple_animal/bot/secbot.dm index b842e66099..1089cd6feb 100644 --- a/code/modules/mob/living/simple_animal/bot/secbot.dm +++ b/code/modules/mob/living/simple_animal/bot/secbot.dm @@ -144,13 +144,13 @@ Auto Patrol: []"}, mode = BOT_HUNT /mob/living/simple_animal/bot/secbot/attack_hand(mob/living/carbon/human/H) - if(H.a_intent == "harm") + if(H.a_intent == INTENT_HARM) retaliate(H) return ..() /mob/living/simple_animal/bot/secbot/attackby(obj/item/weapon/W, mob/user, params) ..() - if(istype(W, /obj/item/weapon/weldingtool) && user.a_intent != "harm") // Any intent but harm will heal, so we shouldn't get angry. + if(istype(W, /obj/item/weapon/weldingtool) && user.a_intent != INTENT_HARM) // Any intent but harm will heal, so we shouldn't get angry. return if(!istype(W, /obj/item/weapon/screwdriver) && (W.force) && (!target) && (W.damtype != STAMINA) ) // Added check for welding tool to fix #2432. Welding tool behavior is handled in superclass. retaliate(user) @@ -189,7 +189,7 @@ Auto Patrol: []"}, /mob/living/simple_animal/bot/secbot/hitby(atom/movable/AM, skipcatch = 0, hitpush = 1, blocked = 0) if(istype(AM, /obj/item)) var/obj/item/I = AM - if(I.throwforce < src.health && I.thrownby && (istype(I.thrownby, /mob/living/carbon/human))) + if(I.throwforce < src.health && I.thrownby && ishuman(I.thrownby)) var/mob/living/carbon/human/H = I.thrownby retaliate(H) ..() @@ -215,7 +215,7 @@ Auto Patrol: []"}, spawn(2) icon_state = "secbot[on]" var/threat = 5 - if(istype(C, /mob/living/carbon/human)) + if(ishuman(C)) C.stuttering = 5 C.Stun(5) C.Weaken(5) @@ -383,7 +383,7 @@ Auto Patrol: []"}, new /obj/item/weapon/melee/baton(Tsec) if(prob(50)) - new /obj/item/robot_parts/l_arm(Tsec) + new /obj/item/bodypart/l_arm/robot(Tsec) var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread s.set_up(3, 1, src) diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm index ab4665b2da..99e95131f6 100644 --- a/code/modules/mob/living/simple_animal/constructs.dm +++ b/code/modules/mob/living/simple_animal/constructs.dm @@ -2,6 +2,7 @@ name = "Construct" real_name = "Construct" desc = "" + gender = NEUTER speak_emote = list("hisses") response_help = "thinks better of touching" response_disarm = "flails at" @@ -9,7 +10,7 @@ speak_chance = 1 icon = 'icons/mob/mob.dmi' speed = 0 - a_intent = "harm" + a_intent = INTENT_HARM stop_automated_movement = 1 status_flags = CANPUSH attack_sound = 'sound/weapons/punch1.ogg' @@ -20,8 +21,8 @@ maxbodytemp = INFINITY healable = 0 faction = list("cult") - flying = 1 - pressure_resistance = 200 + movement_type = FLYING + pressure_resistance = 100 unique_name = 1 AIStatus = AI_OFF //normal constructs don't have AI loot = list(/obj/item/weapon/ectoplasm) @@ -36,14 +37,21 @@ for(var/spell in construct_spells) AddSpell(new spell(null)) +/mob/living/simple_animal/hostile/construct/Login() + ..() + src << playstyle_string + /mob/living/simple_animal/hostile/construct/examine(mob/user) - var/msg = "*---------*\nThis is \icon[src] \a [src]!\n" - if (src.health < src.maxHealth) + var/t_He = p_they(TRUE) + var/t_s = p_s() + var/msg = "*---------*\nThis is \icon[src] \a [src]!\n" + msg += "[desc]\n" + if(health < maxHealth) msg += "" - if (src.health >= src.maxHealth/2) - msg += "It looks slightly dented.\n" + if(health >= maxHealth/2) + msg += "[t_He] look[t_s] slightly dented.\n" else - msg += "It looks severely dented!\n" + msg += "[t_He] look[t_s] severely dented!\n" msg += "" msg += "*---------*" @@ -54,15 +62,15 @@ if(health < maxHealth) adjustHealth(-5) if(src != M) - Beam(M,icon_state="sendbeam",icon='icons/effects/effects.dmi',time=4) + Beam(M,icon_state="sendbeam",time=4) M.visible_message("[M] repairs some of \the [src]'s dents.", \ "You repair some of [src]'s dents, leaving [src] at [health]/[maxHealth] health.") else - M.visible_message("[M] repairs some of its own dents.", \ + M.visible_message("[M] repairs some of [p_their()] own dents.", \ "You repair some of your own dents, leaving you at [M.health]/[M.maxHealth] health.") else if(src != M) - M << "You cannot repair [src]'s dents, as it has none!" + M << "You cannot repair [src]'s dents, as [p_they()] [p_have()] none!" else M << "You cannot repair your own dents, as you have none!" else if(src != M) @@ -74,6 +82,8 @@ /mob/living/simple_animal/hostile/construct/narsie_act() return +/mob/living/simple_animal/hostile/construct/electrocute_act(shock_damage, obj/source, siemens_coeff = 1, safety = 0, tesla_shock = 0, illusion = 0) + return 0 /////////////////Juggernaut/////////////// @@ -87,6 +97,7 @@ health = 250 response_harm = "harmlessly punches" harm_intent_damage = 0 + obj_damage = 90 melee_damage_lower = 30 melee_damage_upper = 30 attacktext = "smashes their armored gauntlet into" @@ -165,6 +176,7 @@ health = 50 response_harm = "viciously beats" harm_intent_damage = 5 + obj_damage = 60 melee_damage_lower = 5 melee_damage_upper = 5 retreat_distance = 10 diff --git a/code/modules/mob/living/simple_animal/corpse.dm b/code/modules/mob/living/simple_animal/corpse.dm index 095d0f5699..f0f9c74b17 100644 --- a/code/modules/mob/living/simple_animal/corpse.dm +++ b/code/modules/mob/living/simple_animal/corpse.dm @@ -20,7 +20,7 @@ back = /obj/item/weapon/storage/backpack has_id = 1 id_job = "Operative" - id_access = "Syndicate" + id_access_list = list(access_syndicate) /obj/effect/mob_spawn/human/corpse/syndicatecommando name = "Syndicate Commando" @@ -35,7 +35,7 @@ pocket1 = /obj/item/weapon/tank/internals/emergency_oxygen has_id = 1 id_job = "Operative" - id_access = "Syndicate" + id_access_list = list(access_syndicate) /obj/effect/mob_spawn/human/corpse/syndicatestormtrooper name = "Syndicate Stormtrooper" @@ -49,7 +49,7 @@ back = /obj/item/weapon/tank/jetpack/oxygen/harness has_id = 1 id_job = "Operative" - id_access = "Syndicate" + id_access_list = list(access_syndicate) @@ -111,7 +111,7 @@ name = "Space Wizard" uniform = /obj/item/clothing/under/color/lightpurple suit = /obj/item/clothing/suit/wizrobe - shoes = /obj/item/clothing/shoes/sandal + shoes = /obj/item/clothing/shoes/sandal/magic helmet = /obj/item/clothing/head/wizard diff --git a/code/modules/mob/living/simple_animal/damage_procs.dm b/code/modules/mob/living/simple_animal/damage_procs.dm new file mode 100644 index 0000000000..b39bc1bbe1 --- /dev/null +++ b/code/modules/mob/living/simple_animal/damage_procs.dm @@ -0,0 +1,30 @@ + +/mob/living/simple_animal/proc/adjustHealth(amount) + if(status_flags & GODMODE) + return 0 + bruteloss = Clamp(bruteloss + amount, 0, maxHealth) + updatehealth() + return amount + +/mob/living/simple_animal/adjustBruteLoss(amount) + if(damage_coeff[BRUTE]) + . = adjustHealth(amount * damage_coeff[BRUTE] * config.damage_multiplier) + +/mob/living/simple_animal/adjustFireLoss(amount) + if(damage_coeff[BURN]) + . = adjustHealth(amount * damage_coeff[BURN] * config.damage_multiplier) + +/mob/living/simple_animal/adjustOxyLoss(amount) + if(damage_coeff[OXY]) + . = adjustHealth(amount * damage_coeff[OXY] * config.damage_multiplier) + +/mob/living/simple_animal/adjustToxLoss(amount) + if(damage_coeff[TOX]) + . = adjustHealth(amount * damage_coeff[TOX] * config.damage_multiplier) + +/mob/living/simple_animal/adjustCloneLoss(amount) + if(damage_coeff[CLONE]) + . = adjustHealth(amount * damage_coeff[CLONE] * config.damage_multiplier) + +/mob/living/simple_animal/adjustStaminaLoss(amount) + return diff --git a/code/modules/mob/living/simple_animal/friendly/butterfly.dm b/code/modules/mob/living/simple_animal/friendly/butterfly.dm index 276d8a4e38..869d067cd7 100644 --- a/code/modules/mob/living/simple_animal/friendly/butterfly.dm +++ b/code/modules/mob/living/simple_animal/friendly/butterfly.dm @@ -14,9 +14,9 @@ harm_intent_damage = 1 friendly = "nudges" density = 0 - flying = 1 + movement_type = FLYING pass_flags = PASSTABLE | PASSGRILLE | PASSMOB - ventcrawler = 2 + ventcrawler = VENTCRAWLER_ALWAYS mob_size = MOB_SIZE_TINY gold_core_spawnable = 2 verb_say = "flutters" @@ -26,4 +26,5 @@ /mob/living/simple_animal/butterfly/New() ..() - color = rgb(rand(0, 255), rand(0, 255), rand(0, 255)) + var/newcolor = rgb(rand(0, 255), rand(0, 255), rand(0, 255)) + add_atom_colour(newcolor, FIXED_COLOUR_PRIORITY) diff --git a/code/modules/mob/living/simple_animal/friendly/cat.dm b/code/modules/mob/living/simple_animal/friendly/cat.dm index 91940fc69f..87b60089b5 100644 --- a/code/modules/mob/living/simple_animal/friendly/cat.dm +++ b/code/modules/mob/living/simple_animal/friendly/cat.dm @@ -14,7 +14,7 @@ speak_chance = 1 turns_per_move = 5 see_in_dark = 6 - ventcrawler = 2 + ventcrawler = VENTCRAWLER_ALWAYS pass_flags = PASSTABLE mob_size = MOB_SIZE_SMALL minbodytemp = 200 @@ -56,6 +56,7 @@ /mob/living/simple_animal/pet/cat/original name = "Batsy" desc = "The product of alien DNA and bored geneticists." + gender = FEMALE icon_state = "original" icon_living = "original" icon_dead = "original_dead" @@ -66,7 +67,6 @@ icon_state = "kitten" icon_living = "kitten" icon_dead = "kitten_dead" - gender = NEUTER density = 0 pass_flags = PASSMOB mob_size = MOB_SIZE_SMALL @@ -80,18 +80,19 @@ icon_dead = "cat_dead" gender = FEMALE gold_core_spawnable = 0 -// var/list/family = list() -// var/cats_deployed = 0 -// var/memory_saved = 0 + var/list/family = list()//var restored from savefile, has count of each child type + var/list/children = list()//Actual mob instances of children + var/cats_deployed = 0 + var/memory_saved = 0 /mob/living/simple_animal/pet/cat/Runtime/New() if(prob(5)) icon_state = "original" icon_living = "original" icon_dead = "original_dead" -// Read_Memory() + Read_Memory() ..() -/* + /mob/living/simple_animal/pet/cat/Runtime/Life() if(!cats_deployed && ticker.current_state >= GAME_STATE_SETTING_UP) Deploy_The_Cats() @@ -99,6 +100,12 @@ Write_Memory() ..() +/mob/living/simple_animal/pet/cat/Runtime/make_babies() + var/mob/baby = ..() + if(baby) + children += baby + return baby + /mob/living/simple_animal/pet/cat/Runtime/death() if(!memory_saved) Write_Memory(1) @@ -115,7 +122,7 @@ var/savefile/S = new /savefile("data/npc_saves/Runtime.sav") family = list() if(!dead) - for(var/mob/living/simple_animal/pet/cat/C in mob_list) + for(var/mob/living/simple_animal/pet/cat/kitten/C in children) if(istype(C,type) || C.stat || !C.z || !C.butcher_results) //That last one is a work around for hologram cats continue if(C.type in family) @@ -131,9 +138,10 @@ if(family[cat_type] > 0) for(var/i in 1 to min(family[cat_type],100)) //Limits to about 500 cats, you wouldn't think this would be needed (BUT IT IS) new cat_type(loc) -*/ + /mob/living/simple_animal/pet/cat/Proc name = "Proc" + gender = MALE gold_core_spawnable = 0 /mob/living/simple_animal/pet/cat/Life() @@ -174,7 +182,7 @@ ..() -// make_babies() + make_babies() if(!stat && !resting && !buckled) turns_since_scan++ @@ -221,6 +229,7 @@ icon_dead = "cak_dead" health = 50 maxHealth = 50 + gender = FEMALE harm_intent_damage = 10 butcher_results = list(/obj/item/organ/brain = 1, /obj/item/organ/heart = 1, /obj/item/weapon/reagent_containers/food/snacks/cakeslice/birthday = 3, \ /obj/item/weapon/reagent_containers/food/snacks/meat/slab = 2) @@ -259,6 +268,6 @@ /mob/living/simple_animal/pet/cat/cak/attack_hand(mob/living/L) ..() - if(L.a_intent == "harm" && L.reagents && !stat) + if(L.a_intent == INTENT_HARM && L.reagents && !stat) L.reagents.add_reagent("nutriment", 0.4) L.reagents.add_reagent("vitamin", 0.4) diff --git a/code/modules/mob/living/simple_animal/friendly/cockroach.dm b/code/modules/mob/living/simple_animal/friendly/cockroach.dm index 9d6a9ab7f6..b2304913ea 100644 --- a/code/modules/mob/living/simple_animal/friendly/cockroach.dm +++ b/code/modules/mob/living/simple_animal/friendly/cockroach.dm @@ -1,5 +1,3 @@ - - /mob/living/simple_animal/cockroach name = "cockroach" desc = "This station is just crawling with bugs." @@ -16,11 +14,15 @@ response_help = "pokes" response_disarm = "shoos" response_harm = "splats" + speak_emote = list("chitters") density = 0 - ventcrawler = 2 + ventcrawler = VENTCRAWLER_ALWAYS gold_core_spawnable = 2 + verb_say = "chitters" + verb_ask = "chitters inquisitively" + verb_exclaim = "chitters loudly" + verb_yell = "chitters loudly" var/squish_chance = 50 - loot = list(/obj/effect/decal/cleanable/deadcockroach) del_on_death = 1 /mob/living/simple_animal/cockroach/death(gibbed) @@ -28,6 +30,10 @@ return ..() +/mob/living/simple_animal/cockroach/proc/squish() + adjustBruteLoss(1) // kills a normal cockroach + new /obj/effect/decal/cleanable/deadcockroach(get_turf(src)) + /mob/living/simple_animal/cockroach/Crossed(var/atom/movable/AM) if(ismob(AM)) if(isliving(AM)) @@ -35,14 +41,14 @@ if(A.mob_size > MOB_SIZE_SMALL) if(prob(squish_chance)) A.visible_message("\The [A] squashed \the [name].", "You squashed \the [name].") - death() + squish() else visible_message("\The [name] avoids getting crushed.") else if(isobj(AM)) if(istype(AM,/obj/structure)) visible_message("As \the [AM] moved over \the [name], it was crushed.") - death() + squish() /mob/living/simple_animal/cockroach/ex_act() //Explosions are a terrible way to handle a cockroach. return @@ -53,4 +59,3 @@ icon = 'icons/effects/blood.dmi' icon_state = "xfloor1" random_icon_states = list("xfloor1", "xfloor2", "xfloor3", "xfloor4", "xfloor5", "xfloor6", "xfloor7") - layer = ABOVE_OPEN_TURF_LAYER diff --git a/code/modules/mob/living/simple_animal/friendly/crab.dm b/code/modules/mob/living/simple_animal/friendly/crab.dm index f79aa45a3a..8cad712bee 100644 --- a/code/modules/mob/living/simple_animal/friendly/crab.dm +++ b/code/modules/mob/living/simple_animal/friendly/crab.dm @@ -16,7 +16,7 @@ response_harm = "stomps" stop_automated_movement = 1 friendly = "pinches" - ventcrawler = 2 + ventcrawler = VENTCRAWLER_ALWAYS var/obj/item/inventory_head var/obj/item/inventory_mask gold_core_spawnable = 2 @@ -39,6 +39,7 @@ name = "Coffee" real_name = "Coffee" desc = "It's Coffee, the other pet!" + gender = FEMALE response_help = "pets" response_disarm = "gently pushes aside" response_harm = "stomps" diff --git a/code/modules/mob/living/simple_animal/friendly/dog.dm b/code/modules/mob/living/simple_animal/friendly/dog.dm index 757fcd220d..2f2319c949 100644 --- a/code/modules/mob/living/simple_animal/friendly/dog.dm +++ b/code/modules/mob/living/simple_animal/friendly/dog.dm @@ -22,7 +22,6 @@ icon_state = "corgi" icon_living = "corgi" icon_dead = "corgi_dead" - gender = MALE butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat/slab/corgi = 3, /obj/item/stack/sheet/animalhide/corgi = 1) childtype = list(/mob/living/simple_animal/pet/dog/corgi/puppy = 95, /mob/living/simple_animal/pet/dog/corgi/puppy/void = 5) animal_species = /mob/living/simple_animal/pet/dog @@ -76,10 +75,10 @@ //helmet and armor = 100% protection if( istype(inventory_head,/obj/item/clothing/head/helmet) && istype(inventory_back,/obj/item/clothing/suit/armor) ) if( O.force ) - user << "[src] is wearing too much armor! You can't cause \him any damage." + user << "[src] is wearing too much armor! You can't cause [p_them()] any damage." visible_message("[user] hits [src] with [O], however [src] is too armored.") else - user << "[src] is wearing too much armor! You can't reach \his skin." + user << "[src] is wearing too much armor! You can't reach [p_their()] skin." visible_message("[user] gently taps [src] with [O].") if(health>0 && prob(15)) emote("me", 1, "looks at [user] with [pick("an amused","an annoyed","a confused","a resentful", "a happy", "an excited")] expression.") @@ -114,7 +113,7 @@ //Removing from inventory if(href_list["remove_inv"]) - if(!Adjacent(usr) || !(ishuman(usr) || ismonkey(usr) || isrobot(usr) || isalienadult(usr))) + if(!Adjacent(usr) || !(ishuman(usr) || ismonkey(usr) || iscyborg(usr) || isalienadult(usr))) return var/remove_from = href_list["remove_inv"] switch(remove_from) @@ -141,21 +140,21 @@ //Adding things to inventory else if(href_list["add_inv"]) - if(!Adjacent(usr) || !(ishuman(usr) || ismonkey(usr) || isrobot(usr) || isalienadult(usr))) + if(!Adjacent(usr) || !(ishuman(usr) || ismonkey(usr) || iscyborg(usr) || isalienadult(usr))) return var/add_to = href_list["add_inv"] switch(add_to) if("head") - place_on_head(usr.get_active_hand(),usr) + place_on_head(usr.get_active_held_item(),usr) if("back") if(inventory_back) usr << "It's already wearing something!" return else - var/obj/item/item_to_add = usr.get_active_hand() + var/obj/item/item_to_add = usr.get_active_held_item() if(!item_to_add) usr.visible_message("[usr] pets [src].","You rest your hand on [src]'s back for a moment.") @@ -225,10 +224,10 @@ if(valid) if(health <= 0) - user << "There is merely a dull, lifeless look in [real_name]'s eyes as you put the [item_to_add] on \him." + user << "There is merely a dull, lifeless look in [real_name]'s eyes as you put the [item_to_add] on [p_them()]." else if(user) user.visible_message("[user] puts [item_to_add] on [real_name]'s head. [src] looks at [user] and barks once.", - "You put [item_to_add] on [real_name]'s head. [src] gives you a peculiar look, then wags \his tail once and barks.", + "You put [item_to_add] on [real_name]'s head. [src] gives you a peculiar look, then wags [p_their()] tail once and barks.", "You hear a friendly-sounding bark.") item_to_add.loc = src src.inventory_head = item_to_add @@ -255,7 +254,7 @@ emote_hear = list("barks!", "woofs!", "yaps.","pants.") emote_see = list("shakes its head.", "chases its tail.","shivers.") desc = initial(desc) - set_light(0) + SetLuminosity(0) if(inventory_head && inventory_head.dog_fashion) var/datum/dog_fashion/DF = new inventory_head.dog_fashion(src) @@ -283,22 +282,26 @@ var/saved_head //path /mob/living/simple_animal/pet/dog/corgi/Ian/New() + ..() + //parent call must happen first to ensure IAN + //is not in nullspace when child puppies spawn Read_Memory() if(age == 0) - var/mob/living/simple_animal/pet/dog/corgi/puppy/P = new /mob/living/simple_animal/pet/dog/corgi/puppy(loc) - P.name = "Ian" - P.real_name = "Ian" - P.gender = MALE - P.desc = "It's the HoP's beloved corgi puppy." - Write_Memory(0) - qdel(src) + var/turf/target = get_turf(loc) + if(target) + var/mob/living/simple_animal/pet/dog/corgi/puppy/P = new /mob/living/simple_animal/pet/dog/corgi/puppy(target) + P.name = "Ian" + P.real_name = "Ian" + P.gender = MALE + P.desc = "It's the HoP's beloved corgi puppy." + Write_Memory(0) + qdel(src) else if(age == record_age) icon_state = "old_corgi" icon_living = "old_corgi" icon_dead = "old_corgi_dead" desc = "At a ripe old age of [record_age] Ian's not as spry as he used to be, but he'll always be the HoP's beloved corgi." //RIP turns_per_move = 20 - ..() /mob/living/simple_animal/pet/dog/corgi/Ian/Life() if(ticker.current_state == GAME_STATE_FINISHED && !memory_saved) @@ -400,8 +403,12 @@ var/image/head_icon var/datum/dog_fashion.DF = new inventory_head.dog_fashion(src) - if(!DF.icon_state) - DF.icon_state = inventory_head.icon_state + if(!DF.obj_icon_state) + DF.obj_icon_state = inventory_head.icon_state + if(!DF.obj_alpha) + DF.obj_alpha = inventory_head.alpha + if(!DF.obj_color) + DF.obj_color = inventory_head.color if(health <= 0) head_icon = DF.get_image(dir = EAST) @@ -416,8 +423,12 @@ var/image/back_icon var/datum/dog_fashion.DF = new inventory_back.dog_fashion(src) - if(!DF.icon_state) - DF.icon_state = inventory_back.icon_state + if(!DF.obj_icon_state) + DF.obj_icon_state = inventory_back.icon_state + if(!DF.obj_alpha) + DF.obj_alpha = inventory_back.alpha + if(!DF.obj_color) + DF.obj_color = inventory_back.color if(health <= 0) back_icon = DF.get_image(dir = EAST) @@ -501,7 +512,7 @@ /mob/living/simple_animal/pet/dog/corgi/Lisa/Life() ..() -// make_babies() + make_babies() if(!stat && !resting && !buckled) if(prob(1)) 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 b503cdd2cb..f344613cef 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm @@ -22,13 +22,12 @@ icon_state = "drone_maint_grey" icon_living = "drone_maint_grey" icon_dead = "drone_maint_dead" - gender = NEUTER health = 30 maxHealth = 30 unsuitable_atmos_damage = 0 wander = 0 speed = 0 - ventcrawler = 2 + ventcrawler = VENTCRAWLER_ALWAYS healable = 0 density = 0 pass_flags = PASSTABLE | PASSMOB @@ -46,7 +45,9 @@ staticOverlays = list() hud_possible = list(DIAG_STAT_HUD, DIAG_HUD, ANTAG_HUD) unique_name = TRUE - faction = list("silicon") + faction = list("neutral","silicon","turret") + dextrous = TRUE + dextrous_hud_type = /datum/hud/dextrous/drone var/staticChoice = "static" var/list/staticChoices = list("static", "blank", "letter", "animal") var/picked = FALSE //Have we picked our visual appearence (+ colour if applicable) @@ -54,7 +55,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 power to the best of your abilities, You must never actively work against these goals." + "3. Your goals are to build, maintain, repair, improve, and power the station to the best of your abilities, You must never actively work against these goals." var/light_on = 0 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()) @@ -65,7 +66,7 @@ var/seeStatic = 1 //Whether we see static instead of mobs var/visualAppearence = MAINTDRONE //What we appear as var/hacked = 0 //If we have laws to destroy the station - var/datum/personal_crafting/handcrafting + var/can_be_held = TRUE //if assholes can pick us up /mob/living/simple_animal/drone/New() . = ..() @@ -76,7 +77,7 @@ if(default_storage) var/obj/item/I = new default_storage(src) - equip_to_slot_or_del(I, slot_drone_storage) + equip_to_slot_or_del(I, slot_generic_dextrous_storage) if(default_hatmask) var/obj/item/I = new default_hatmask(src) equip_to_slot_or_del(I, slot_head) @@ -91,17 +92,20 @@ else verbs -= /mob/living/simple_animal/drone/verb/toggle_statics - handcrafting = new() var/datum/atom_hud/data/diagnostic/diag_hud = huds[DATA_HUD_DIAGNOSTIC] diag_hud.add_to_hud(src) /mob/living/simple_animal/drone/med_hud_set_health() var/image/holder = hud_list[DIAG_HUD] + var/icon/I = icon(icon, icon_state, dir) + holder.pixel_y = I.Height() - world.icon_size holder.icon_state = "huddiag[RoundDiagBar(health/maxHealth)]" /mob/living/simple_animal/drone/med_hud_set_status() var/image/holder = hud_list[DIAG_STAT_HUD] + var/icon/I = icon(icon, icon_state, dir) + holder.pixel_y = I.Height() - world.icon_size if(stat == DEAD) holder.icon_state = "huddead2" else if(incapacitated()) @@ -109,9 +113,6 @@ else holder.icon_state = "hudstat" -/mob/living/simple_animal/drone/OpenCraftingMenu() - handcrafting.ui_interact(src) - /mob/living/simple_animal/drone/Destroy() qdel(access_card) //Otherwise it ends up on the floor! return ..() @@ -128,8 +129,6 @@ /mob/living/simple_animal/drone/death(gibbed) ..(gibbed) - drop_l_hand() - drop_r_hand() if(internal_storage) unEquip(internal_storage) if(head) @@ -141,23 +140,30 @@ /mob/living/simple_animal/drone/gib() dust() +/mob/living/simple_animal/drone/ratvar_act() + if(internal_storage) + unEquip(internal_storage) + if(head) + unEquip(head) + var/mob/living/simple_animal/drone/cogscarab/ratvar/R = new /mob/living/simple_animal/drone/cogscarab/ratvar(loc) + R.setDir(dir) + if(mind) + mind.transfer_to(R, 1) + else + R.key = key + qdel(src) + /mob/living/simple_animal/drone/examine(mob/user) var/msg = "*---------*\nThis is \icon[src] \a [src]!\n" - //Left hand items - if(l_hand && !(l_hand.flags&ABSTRACT)) - if(l_hand.blood_DNA) - msg += "It is holding \icon[l_hand] [l_hand.gender==PLURAL?"some":"a"] blood-stained [l_hand.name] in its left hand!\n" - else - msg += "It is holding \icon[l_hand] \a [l_hand] in its left hand.\n" - - //Right hand items - if(r_hand && !(r_hand.flags&ABSTRACT)) - if(r_hand.blood_DNA) - msg += "It is holding \icon[r_hand] [r_hand.gender==PLURAL?"some":"a"] blood-stained [r_hand.name] in its right hand!\n" - else - msg += "It is holding \icon[r_hand] \a [r_hand] in its right hand.\n" + //Hands + for(var/obj/item/I in held_items) + if(!(I.flags & ABSTRACT)) + if(I.blood_DNA) + msg += "It has \icon[I] [I.gender==PLURAL?"some":"a"] blood-stained [I.name] in its [get_held_index_name(get_held_index_of_item(I))]!\n" + else + msg += "It has \icon[I] \a [I] in its [get_held_index_name(get_held_index_of_item(I))].\n" //Internal storage if(internal_storage && !(internal_storage.flags&ABSTRACT)) @@ -183,10 +189,10 @@ //Damaged if(health != maxHealth) - if(health > 10) //Between 30 and 10 + if(health > maxHealth * 0.33) //Between maxHealth and about a third of maxHealth, between 30 and 10 for normal drones msg += "Its screws are slightly loose.\n" - else //Between 9 and 0 - msg += "Its screws are very loose!\n" + else //otherwise, below about 33% + msg += "Its screws are very loose!\n" //Dead if(stat == DEAD) @@ -197,17 +203,6 @@ msg += "*---------*" user << msg -/mob/living/simple_animal/drone/IsAdvancedToolUser() - return 1 - - -/mob/living/simple_animal/drone/canUseTopic(atom/movable/M, be_close = 0) - if(incapacitated()) - return 0 - if(be_close && !in_range(M, src)) - return 0 - return 1 - /mob/living/simple_animal/drone/assess_threat() //Secbots won't hunt maintenance drones. return -10 @@ -256,7 +251,7 @@ /mob/living/simple_animal/drone/handle_temperature_damage() return -/mob/living/simple_animal/drone/flash_eyes(intensity = 1, override_blindness_check = 0, affect_silicon = 0) +/mob/living/simple_animal/drone/flash_act(intensity = 1, override_blindness_check = 0, affect_silicon = 0) if(affect_silicon) return ..() @@ -269,9 +264,9 @@ /mob/living/simple_animal/drone/experience_pressure_difference(pressure_difference, direction) return -/mob/living/simple_animal/drone/fully_heal(admin_revive = 0) - adjustBruteLoss(-getBruteLoss()) //Heal all brute damage - /mob/living/simple_animal/drone/bee_friendly() // Why would bees pay attention to drones? return 1 + +/mob/living/simple_animal/drone/electrocute_act(shock_damage, obj/source, siemens_coeff = 1, safety = 0, tesla_shock = 0, illusion = 0) + return 0 //So they don't die trying to fix wiring diff --git a/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm b/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm index b8dda34bd7..61e29c0c76 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm @@ -35,9 +35,10 @@ user << "Can't become a drone before the game has started." return var/be_drone = alert("Become a drone? (Warning, You can no longer be cloned!)",,"Yes","No") - if(be_drone == "No" || qdeleted(src)) + if(be_drone == "No" || qdeleted(src) || !isobserver(user)) return var/mob/living/simple_animal/drone/D = new drone_type(get_turf(loc)) + D.admin_spawned = admin_spawned D.key = user.key qdel(src) @@ -54,7 +55,7 @@ if(!drone) return - if(istype(loc, /mob/living)) + if(isliving(loc)) var/mob/living/L = loc L << "[drone] is trying to escape!" if(!do_after(drone, 50, target = L)) @@ -73,7 +74,7 @@ /obj/item/clothing/head/drone_holder/relaymove() uncurl() -/obj/item/clothing/head/drone_holder/container_resist() +/obj/item/clothing/head/drone_holder/container_resist(mob/living/user) uncurl() diff --git a/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm b/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm index 811a2ad5fe..37f8d82f5a 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm @@ -28,6 +28,7 @@ default_storage = /obj/item/device/radio/uplink default_hatmask = /obj/item/clothing/head/helmet/space/hardsuit/syndi seeStatic = 0 //Our programming is superior. + hacked = TRUE /mob/living/simple_animal/drone/syndrone/New() ..() @@ -97,19 +98,26 @@ picked = TRUE languages_spoken = RATVAR languages_understood = HUMAN|RATVAR - health = 60 - maxHealth = 60 - hacked = 1 + pass_flags = PASSTABLE + health = 50 + maxHealth = 50 + harm_intent_damage = 5 density = TRUE - ventcrawler = 0 + speed = 1 + ventcrawler = VENTCRAWLER_NONE faction = list("ratvar") - speak_emote = list("clinks", "clunks") + speak_emote = list("clanks", "clinks", "clunks", "clangs") + verb_ask = "requests" + verb_exclaim = "proclaims" + verb_yell = "harangues" bubble_icon = "clock" - heavy_emp_damage = 10 + heavy_emp_damage = 0 laws = "0. Purge all untruths and honor Ratvar." default_storage = /obj/item/weapon/storage/toolbox/brass/prefilled seeStatic = 0 + hacked = TRUE visualAppearence = CLOCKDRONE + can_be_held = FALSE /mob/living/simple_animal/drone/cogscarab/ratvar //a subtype for spawning when ratvar is alive, has a slab that it can use and a normal proselytizer default_storage = /obj/item/weapon/storage/toolbox/brass/prefilled/ratvar @@ -119,7 +127,7 @@ /mob/living/simple_animal/drone/cogscarab/New() . = ..() - set_light(2,1) + SetLuminosity(2,1) qdel(access_card) //we don't have free access access_card = null verbs -= /mob/living/simple_animal/drone/verb/check_laws @@ -129,13 +137,48 @@ /mob/living/simple_animal/drone/cogscarab/Login() ..() add_servant_of_ratvar(src, TRUE) - src << "You are a cogscarab, a clockwork creation of Ratvar. As a cogscarab, you have low health, an inbuilt proselytizer that can convert rods, \ - metal, and plasteel to alloy, a set of relatively fast tools, can communicate over the Hierophant Network with :b, and are immune to extreme \ + src << "You are a cogscarab, a clockwork creation of Ratvar. As a cogscarab, you have low health, an inbuilt proselytizer that can convert brass \ + to liquified alloy, a set of relatively fast tools, can communicate over the Hierophant Network with :b, and are immune to extreme \ temperatures and pressures. \nYour goal is to serve the Justiciar and his servants by repairing and defending all they create. \ - \nYou yourself are one of these servants, and will be able to utilize almost anything they can, excluding a clockwork slab." + \nYou yourself are one of these servants, and will be able to utilize almost anything they can, excluding a clockwork slab." + +/mob/living/simple_animal/drone/cogscarab/binarycheck() + return FALSE + +/mob/living/simple_animal/drone/cogscarab/alert_drones(msg, dead_can_hear = 0) + if(msg == DRONE_NET_CONNECT) + msg = "Hierophant Network: [name] activated." + else if(msg == DRONE_NET_DISCONNECT) + msg = "Hierophant Network: [name] disabled." + ..() + +/mob/living/simple_animal/drone/attackby(obj/item/I, mob/user) + if(istype(I, /obj/item/weapon/screwdriver) && stat == DEAD) + try_reactivate(user) + else + ..() + +/mob/living/simple_animal/drone/cogscarab/try_reactivate(mob/living/user) + if(!is_servant_of_ratvar(user)) + user << "You fiddle around with [src] to no avail." + else + ..() + +/mob/living/simple_animal/drone/cogscarab/can_use_guns(obj/item/weapon/gun/G) + changeNext_move(CLICK_CD_RANGE*4) //about as much delay as an unupgraded kinetic accelerator + return TRUE + +/mob/living/simple_animal/drone/cogscarab/triggerAlarm(class, area/A, O, obj/alarmsource) + return + +/mob/living/simple_animal/drone/cogscarab/cancelAlarm(class, area/A, obj/origin) + return /mob/living/simple_animal/drone/cogscarab/update_drone_hack() return //we don't get hacked or give a shit about it /mob/living/simple_animal/drone/cogscarab/drone_chat(msg) - send_hierophant_message(src, msg, "heavy_alloy") //HIEROPHANT DRONES + titled_hierophant_message(src, msg, "nezbere", "brass", "Construct") //HIEROPHANT DRONES + +/mob/living/simple_animal/drone/cogscarab/ratvar_act() + fully_heal(TRUE) diff --git a/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm b/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm index fba7b98f18..d884482ae5 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm @@ -6,65 +6,36 @@ //How the world interacts with drones -/mob/living/simple_animal/drone/UnarmedAttack(atom/A, proximity) - A.attack_hand(src) +/mob/living/simple_animal/drone/attack_drone(mob/living/simple_animal/drone/D) + if(D != src && stat == DEAD) + var/d_input = alert(D,"Perform which action?","Drone Interaction","Reactivate","Cannibalize","Nothing") + if(d_input) + switch(d_input) + if("Reactivate") + try_reactivate(D) + + if("Cannibalize") + if(D.health < D.maxHealth) + D.visible_message("[D] begins to cannibalize parts from [src].", "You begin to cannibalize parts from [src]...") + if(do_after(D, 60, 0, target = src)) + D.visible_message("[D] repairs itself using [src]'s remains!", "You repair yourself using [src]'s remains.") + D.adjustBruteLoss(-src.maxHealth) + new /obj/effect/decal/cleanable/oil/streak(get_turf(src)) + qdel(src) + else + D << "You need to remain still to cannibalize [src]!" + else + D << "You're already in perfect condition!" + if("Nothing") + return /mob/living/simple_animal/drone/attack_hand(mob/user) - if(isdrone(user)) - var/mob/living/simple_animal/drone/D = user - if(D != src) - if(stat == DEAD) - var/d_input = alert(D,"Perform which action?","Drone Interaction","Reactivate","Cannibalize","Nothing") - if(d_input) - switch(d_input) - if("Reactivate") - var/mob/dead/observer/G = get_ghost() - if(!client && (!G || !G.client)) - var/list/faux_gadgets = list("hypertext inflator","failsafe directory","DRM switch","stack initializer",\ - "anti-freeze capacitor","data stream diode","TCP bottleneck","supercharged I/O bolt",\ - "tradewind stablizer","radiated XML cable","registry fluid tank","open-source debunker") - - var/list/faux_problems = list("won't be able to tune their bootstrap projector","will constantly remix their binary pool"+\ - " even though the BMX calibrator is working","will start leaking their XSS coolant",\ - "can't tell if their ethernet detour is moving or not", "won't be able to reseed enough"+\ - " kernels to function properly","can't start their neurotube console") - - D << "You can't seem to find the [pick(faux_gadgets)]! Without it, [src] [pick(faux_problems)]." - return - D.visible_message("[D] begins to reactivate [src].", "You begin to reactivate [src]...") - if(do_after(user,30, 1, target = src)) - revive(full_heal = 1) - D.visible_message("[D] reactivates [src]!", "You reactivate [src].") - alert_drones(DRONE_NET_CONNECT) - if(G) - G << "DRONE NETWORK: You were reactivated by [D]!" - else - D << "You need to remain still to reactivate [src]!" - - if("Cannibalize") - if(D.health < D.maxHealth) - D.visible_message("[D] begins to cannibalize parts from [src].", "You begin to cannibalize parts from [src]...") - if(do_after(D, 60, 0, target = src)) - D.visible_message("[D] repairs itself using [src]'s remains!", "You repair yourself using [src]'s remains.") - D.adjustBruteLoss(-src.maxHealth) - new /obj/effect/decal/cleanable/oil/streak(get_turf(src)) - qdel(src) - else - D << "You need to remain still to cannibalize [src]!" - else - D << "You're already in perfect condition!" - if("Nothing") - return - - return - - if(ishuman(user)) - if(stat == DEAD || status_flags & GODMODE) + if(stat == DEAD || status_flags & GODMODE || !can_be_held) ..() return - if(user.get_active_hand()) + if(user.get_active_held_item()) user << "Your hands are full!" return visible_message("[user] starts picking up [src].", \ @@ -77,25 +48,45 @@ user << "[src] is buckled to [buckled] and cannot be picked up!" return user << "You pick [src] up." - drop_l_hand() - drop_r_hand() + drop_all_held_items() var/obj/item/clothing/head/drone_holder/DH = new /obj/item/clothing/head/drone_holder(src) DH.updateVisualAppearence(src) DH.drone = src user.put_in_hands(DH) forceMove(DH) - return - ..() +/mob/living/simple_animal/drone/proc/try_reactivate(mob/living/user) + var/mob/dead/observer/G = get_ghost() + if(!client && (!G || !G.client)) + var/list/faux_gadgets = list("hypertext inflator","failsafe directory","DRM switch","stack initializer",\ + "anti-freeze capacitor","data stream diode","TCP bottleneck","supercharged I/O bolt",\ + "tradewind stablizer","radiated XML cable","registry fluid tank","open-source debunker") + + var/list/faux_problems = list("won't be able to tune their bootstrap projector","will constantly remix their binary pool"+\ + " even though the BMX calibrator is working","will start leaking their XSS coolant",\ + "can't tell if their ethernet detour is moving or not", "won't be able to reseed enough"+\ + " kernels to function properly","can't start their neurotube console") + + user << "You can't seem to find the [pick(faux_gadgets)]! Without it, [src] [pick(faux_problems)]." + return + user.visible_message("[user] begins to reactivate [src].", "You begin to reactivate [src]...") + if(do_after(user, 30, 1, target = src)) + revive(full_heal = 1) + user.visible_message("[user] reactivates [src]!", "You reactivate [src].") + alert_drones(DRONE_NET_CONNECT) + if(G) + G << "You([name]) were reactivated by [user]!" + else + user << "You need to remain still to reactivate [src]!" /mob/living/simple_animal/drone/attackby(obj/item/I, mob/user) if(istype(I, /obj/item/weapon/screwdriver) && stat != DEAD) if(health < maxHealth) user << "You start to tighten loose screws on [src]..." - if(do_after(user,80/I.toolspeed,target=user)) + if(do_after(user,80*I.toolspeed,target=user)) adjustBruteLoss(-getBruteLoss()) - visible_message("[user] tightens [src == user ? "their" : "[src]'s"] loose screws!", "You tighten [src == user ? "your" : "[src]'s"] loose screws.") + visible_message("[user] tightens [src == user ? "[user.p_their()]" : "[src]'s"] loose screws!", "You tighten [src == user ? "your" : "[src]'s"] loose screws.") else user << "You need to remain still to tighten [src]'s screws!" else @@ -104,8 +95,8 @@ else if(istype(I, /obj/item/weapon/wrench) && user != src) //They aren't required to be hacked, because laws can change in other ways (i.e. admins) user.visible_message("[user] starts resetting [src]...", \ "You press down on [src]'s factory reset control...") - playsound(src, 'sound/items/Ratchet.ogg', 50, 1) - if(!do_after(user, 50/I.toolspeed, target = src)) + playsound(src, I.usesound, 50, 1) + if(!do_after(user, 50*I.toolspeed, target = src)) return user.visible_message("[user] resets [src]!", \ "You reset [src]'s directives to factory defaults!") @@ -114,6 +105,16 @@ else ..() +/mob/living/simple_animal/drone/getarmor(def_zone, type) + var/armorval = 0 + + if(head) + armorval = head.armor[type] + return (armorval * get_armor_effectiveness()) //armor is reduced for tiny fragile drones + +/mob/living/simple_animal/drone/proc/get_armor_effectiveness() + return 0 //multiplier for whatever head armor you wear as a drone + /mob/living/simple_animal/drone/proc/update_drone_hack(hack, clockwork) if(!istype(src) || !mind) return @@ -139,7 +140,7 @@ hacked = 1 mind.special_role = "hacked drone" seeStatic = 0 //I MUST SEE THEIR TERRIFIED FACES - ventcrawler = 0 //Again, balance + ventcrawler = VENTCRAWLER_NONE //Again, balance speed = 1 //gotta go slow message_admins("[src] ([src.key]) became a hacked drone hellbent on [clockwork ? "serving Ratvar" : "destroying the station"]!") else @@ -198,4 +199,3 @@ name = "Select Vision Filter" button_icon_state = "drone_vision" procname = /mob/living/simple_animal/drone/verb/toggle_statics - diff --git a/code/modules/mob/living/simple_animal/friendly/drone/inventory.dm b/code/modules/mob/living/simple_animal/friendly/drone/inventory.dm index 51bc2316b5..1437e77e56 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/inventory.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/inventory.dm @@ -6,42 +6,6 @@ //Drone hands - - -/mob/living/simple_animal/drone/activate_hand(selhand) - - if(istext(selhand)) - selhand = lowertext(selhand) - - if(selhand == "right" || selhand == "r") - selhand = 0 - if(selhand == "left" || selhand == "l") - selhand = 1 - - if(selhand != src.hand) - swap_hand() - else - mode() - - -/mob/living/simple_animal/drone/swap_hand() - var/obj/item/held_item = get_active_hand() - if(held_item) - if(istype(held_item, /obj/item/weapon/twohanded)) - var/obj/item/weapon/twohanded/T = held_item - if(T.wielded == 1) - usr << "Your other hand is too busy holding the [T.name]." - return - - hand = !hand - if(hud_used && hud_used.inv_slots[slot_l_hand] && hud_used.inv_slots[slot_r_hand]) - var/obj/screen/inventory/hand/H - H = hud_used.inv_slots[slot_l_hand] - H.update_icon() - H = hud_used.inv_slots[slot_r_hand] - H.update_icon() - - /mob/living/simple_animal/drone/unEquip(obj/item/I, force) if(..(I,force)) update_inv_hands() @@ -63,7 +27,7 @@ if(!((I.slot_flags & SLOT_HEAD) || (I.slot_flags & SLOT_MASK))) return 0 return 1 - if(slot_drone_storage) + if(slot_generic_dextrous_storage) if(internal_storage) return 0 return 1 @@ -74,7 +38,7 @@ switch(slot_id) if(slot_head) return head - if(slot_drone_storage) + if(slot_generic_dextrous_storage) return internal_storage ..() @@ -85,10 +49,9 @@ if(!istype(I)) return - if(I == l_hand) - l_hand = null - else if(I == r_hand) - r_hand = null + var/index = get_held_index_of_item(I) + if(index) + held_items[index] = null update_inv_hands() if(I.pulledby) @@ -96,30 +59,25 @@ I.screen_loc = null // will get moved if inventory is visible I.loc = src - I.equipped(src, slot) I.layer = ABOVE_HUD_LAYER + I.plane = ABOVE_HUD_PLANE switch(slot) if(slot_head) head = I update_inv_head() - if(slot_drone_storage) + if(slot_generic_dextrous_storage) internal_storage = I update_inv_internal_storage() else src << "You are trying to equip this item to an unsupported inventory slot. Report this to a coder!" return - -/mob/living/simple_animal/drone/stripPanelUnequip(obj/item/what, mob/who, where) - ..(what, who, where, 1) - - -/mob/living/simple_animal/drone/stripPanelEquip(obj/item/what, mob/who, where) - ..(what, who, where, 1) + //Call back for item being equipped to drone + I.equipped(src, slot) /mob/living/simple_animal/drone/getBackSlot() - return slot_drone_storage + return slot_generic_dextrous_storage /mob/living/simple_animal/drone/getBeltSlot() - return slot_drone_storage + return slot_generic_dextrous_storage diff --git a/code/modules/mob/living/simple_animal/friendly/drone/say.dm b/code/modules/mob/living/simple_animal/friendly/drone/say.dm index 49551de240..4210947ef3 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/say.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/say.dm @@ -6,7 +6,7 @@ /mob/living/simple_animal/drone/handle_inherent_channels(message, message_mode) if(message_mode == MODE_BINARY) drone_chat(message) - return ITALICS | REDUCE_RANGE + return 1 else ..() @@ -14,16 +14,29 @@ /mob/living/simple_animal/drone/get_spans() return ..() | SPAN_ROBOT -/mob/living/simple_animal/drone/proc/alert_drones(msg, dead_can_hear = 0) + + +//Base proc for anything to call +/proc/_alert_drones(msg, dead_can_hear = 0, list/factions) for(var/W in mob_list) var/mob/living/simple_animal/drone/M = W - if(istype(M) && M.stat != DEAD && faction_check(M)) //if it's a living drone with matching factions, it gets a message - M << msg + if(istype(M) && M.stat != DEAD) + if(factions && factions.len) + var/list/friendly = factions&M.faction + if(friendly.len) + M << msg + else + M << msg if(dead_can_hear && (M in dead_mob_list)) var/link = FOLLOW_LINK(M, src) M << "[link] [msg]" +//Wrapper for drones to handle factions +/mob/living/simple_animal/drone/proc/alert_drones(msg, dead_can_hear = 0) + _alert_drones(msg, dead_can_hear, faction) + + /mob/living/simple_animal/drone/proc/drone_chat(msg) var/rendered = "Drone Chat: \ [name]: \ diff --git a/code/modules/mob/living/simple_animal/friendly/drone/verbs.dm b/code/modules/mob/living/simple_animal/friendly/drone/verbs.dm index 1390b589a5..c231ec56e4 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/verbs.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/verbs.dm @@ -16,9 +16,9 @@ set category = "Drone" set name = "Toggle drone light" if(light_on) - set_light(0) + AddLuminosity(-8) else - set_light(8) + AddLuminosity(8) light_on = !light_on @@ -51,3 +51,4 @@ staticChoice = selectedStatic updateSeeStaticMobs() + diff --git a/code/modules/mob/living/simple_animal/friendly/drone/visuals_icons.dm b/code/modules/mob/living/simple_animal/friendly/drone/visuals_icons.dm index 6ebc4d8066..95c18b53f4 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/visuals_icons.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/visuals_icons.dm @@ -18,10 +18,13 @@ drone_overlays[cache_index] = null -/mob/living/simple_animal/drone/proc/update_inv_hands() +/mob/living/simple_animal/drone/update_inv_hands() remove_overlay(DRONE_HANDS_LAYER) var/list/hands_overlays = list() + var/obj/item/l_hand = get_item_for_held_index(1) + var/obj/item/r_hand = get_item_for_held_index(2) + var/y_shift = getItemPixelShiftY() if(r_hand) @@ -38,7 +41,8 @@ if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD) r_hand.layer = ABOVE_HUD_LAYER - r_hand.screen_loc = ui_rhand + r_hand.plane = ABOVE_HUD_PLANE + r_hand.screen_loc = ui_hand_position(get_held_index_of_item(r_hand)) client.screen |= r_hand if(l_hand) @@ -55,7 +59,8 @@ if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD) l_hand.layer = ABOVE_HUD_LAYER - l_hand.screen_loc = ui_lhand + l_hand.plane = ABOVE_HUD_PLANE + l_hand.screen_loc = ui_hand_position(get_held_index_of_item(l_hand)) client.screen |= l_hand @@ -87,16 +92,6 @@ apply_overlay(DRONE_HEAD_LAYER) - -//These procs serve as redirection so that the drone updates as expected when other things call these procs -/mob/living/simple_animal/drone/update_inv_l_hand() - update_inv_hands() - - -/mob/living/simple_animal/drone/update_inv_r_hand() - update_inv_hands() - - /mob/living/simple_animal/drone/update_inv_wear_mask() update_inv_head() diff --git a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm index bff53a79dd..044aae6a0f 100644 --- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm +++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm @@ -50,25 +50,25 @@ src.visible_message("[src] calms down.") if(stat == CONSCIOUS) udder.generateMilk() - if(locate(/obj/effect/spacevine) in loc) - var/obj/effect/spacevine/SV = locate(/obj/effect/spacevine) in loc + var/obj/structure/spacevine/SV = locate(/obj/structure/spacevine) in loc + if(SV) SV.eat(src) if(!pulledby) for(var/direction in shuffle(list(1,2,4,8,5,6,9,10))) var/step = get_step(src, direction) if(step) - if(locate(/obj/effect/spacevine) in step) + if(locate(/obj/structure/spacevine) in step) Move(step, get_dir(src, step)) /mob/living/simple_animal/hostile/retaliate/goat/Retaliate() ..() - src.visible_message("[src] gets an evil-looking gleam in \his eye.") + src.visible_message("[src] gets an evil-looking gleam in [p_their()] eye.") /mob/living/simple_animal/hostile/retaliate/goat/Move() ..() if(!stat) - if(locate(/obj/effect/spacevine) in loc) - var/obj/effect/spacevine/SV = locate(/obj/effect/spacevine) in loc + var/obj/structure/spacevine/SV = locate(/obj/structure/spacevine) in loc + if(SV) SV.eat(src) /mob/living/simple_animal/hostile/retaliate/goat/attackby(obj/item/O, mob/user, params) @@ -86,6 +86,7 @@ icon_living = "cow" icon_dead = "cow_dead" icon_gib = "cow_gib" + gender = FEMALE speak = list("moo?","moo","MOOOOOO") speak_emote = list("moos","moos hauntingly") emote_hear = list("brays.") @@ -127,7 +128,7 @@ udder.generateMilk() /mob/living/simple_animal/cow/attack_hand(mob/living/carbon/M) - if(!stat && M.a_intent == "disarm" && icon_state != icon_dead) + if(!stat && M.a_intent == INTENT_DISARM && icon_state != icon_dead) M.visible_message("[M] tips over [src].", "You tip over [src].") src << "You are tipped over by [M]!" @@ -159,6 +160,7 @@ icon_living = "chick" icon_dead = "chick_dead" icon_gib = "chick_gib" + gender = FEMALE speak = list("Cherp.","Cherp?","Chirrup.","Cheep!") speak_emote = list("cheeps") emote_hear = list("cheeps.") @@ -173,7 +175,7 @@ attacktext = "kicks" health = 3 maxHealth = 3 - ventcrawler = 2 + ventcrawler = VENTCRAWLER_ALWAYS var/amount_grown = 0 pass_flags = PASSTABLE | PASSGRILLE | PASSMOB mob_size = MOB_SIZE_TINY @@ -204,6 +206,7 @@ var/global/chicken_count = 0 /mob/living/simple_animal/chicken name = "\improper chicken" desc = "Hopefully the eggs are good this season." + gender = FEMALE icon_state = "chicken_brown" icon_living = "chicken_brown" icon_dead = "chicken_brown_dead" @@ -223,7 +226,7 @@ var/global/chicken_count = 0 attacktext = "kicks" health = 15 maxHealth = 15 - ventcrawler = 2 + ventcrawler = VENTCRAWLER_ALWAYS var/eggsleft = 0 var/eggsFertile = TRUE var/body_color @@ -298,6 +301,7 @@ var/global/chicken_count = 0 reagents = new(50) reagents.my_atom = src reagents.add_reagent("milk", 20) + ..() /obj/item/udder/proc/generateMilk() if(prob(5)) diff --git a/code/modules/mob/living/simple_animal/friendly/fox.dm b/code/modules/mob/living/simple_animal/friendly/fox.dm index 2371ba8c00..86b4fbf5a8 100644 --- a/code/modules/mob/living/simple_animal/friendly/fox.dm +++ b/code/modules/mob/living/simple_animal/friendly/fox.dm @@ -23,4 +23,5 @@ /mob/living/simple_animal/pet/fox/Renault name = "Renault" desc = "Renault, the Captain's trustworthy fox." + gender = FEMALE gold_core_spawnable = 0 diff --git a/code/modules/mob/living/simple_animal/friendly/lizard.dm b/code/modules/mob/living/simple_animal/friendly/lizard.dm index 56fee31a41..fe9cccabae 100644 --- a/code/modules/mob/living/simple_animal/friendly/lizard.dm +++ b/code/modules/mob/living/simple_animal/friendly/lizard.dm @@ -9,17 +9,17 @@ maxHealth = 5 faction = list("Lizard") attacktext = "bites" - attacktext = "bites" melee_damage_lower = 1 melee_damage_upper = 2 response_help = "pets" response_disarm = "shoos" response_harm = "stomps on" - ventcrawler = 2 + ventcrawler = VENTCRAWLER_ALWAYS density = 0 pass_flags = PASSTABLE | PASSMOB mob_size = MOB_SIZE_SMALL gold_core_spawnable = 2 + obj_damage = 0 environment_smash = 0 var/list/edibles = list(/mob/living/simple_animal/butterfly,/mob/living/simple_animal/cockroach) //list of atoms, however turfs won't affect AI, but will affect consumption. @@ -37,4 +37,4 @@ target = null adjustBruteLoss(-2) else - ..() \ No newline at end of file + ..() diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm index 1a52e018ba..3dc0e000b6 100644 --- a/code/modules/mob/living/simple_animal/friendly/mouse.dm +++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm @@ -18,7 +18,7 @@ response_disarm = "gently pushes aside" response_harm = "splats" density = 0 - ventcrawler = 2 + ventcrawler = VENTCRAWLER_ALWAYS pass_flags = PASSTABLE | PASSGRILLE | PASSMOB mob_size = MOB_SIZE_TINY var/body_color //brown, gray and white, leave blank for random @@ -46,7 +46,7 @@ M.icon_state = icon_dead M.name = name if(toast) - M.color = "#3A3A3A" + M.add_atom_colour("#3A3A3A", FIXED_COLOUR_PRIORITY) M.desc = "It's toast." qdel(src) else @@ -69,10 +69,10 @@ if(C.avail()) visible_message("[src] chews through the [C]. It's toast!") playsound(src, 'sound/effects/sparks2.ogg', 100, 1) - C.Deconstruct() + C.deconstruct() death(toast=1) else - C.Deconstruct() + C.deconstruct() visible_message("[src] chews through the [C].") /* diff --git a/code/modules/mob/living/simple_animal/friendly/pet.dm b/code/modules/mob/living/simple_animal/friendly/pet.dm index ecd7e4b6c8..fd28543a15 100644 --- a/code/modules/mob/living/simple_animal/friendly/pet.dm +++ b/code/modules/mob/living/simple_animal/friendly/pet.dm @@ -1,14 +1,14 @@ /mob/living/simple_animal/pet icon = 'icons/mob/pets.dmi' mob_size = MOB_SIZE_SMALL - var/obj/item/clothing/tie/petcollar/pcollar = null + var/obj/item/clothing/neck/petcollar/pcollar = null var/image/collar = null var/image/pettag = null blood_volume = BLOOD_VOLUME_NORMAL /mob/living/simple_animal/pet/attackby(obj/item/O, mob/user, params) - if(istype(O, /obj/item/clothing/tie/petcollar) && !pcollar) - var/obj/item/clothing/tie/petcollar/P = O + if(istype(O, /obj/item/clothing/neck/petcollar) && !pcollar) + var/obj/item/clothing/neck/petcollar/P = O pcollar = P collar = image('icons/mob/pets.dmi', src, "[icon_state]collar") pettag = image('icons/mob/pets.dmi', src, "[icon_state]tag") diff --git a/code/modules/mob/living/simple_animal/friendly/sloth.dm b/code/modules/mob/living/simple_animal/friendly/sloth.dm new file mode 100644 index 0000000000..2953a7cc91 --- /dev/null +++ b/code/modules/mob/living/simple_animal/friendly/sloth.dm @@ -0,0 +1,41 @@ +/mob/living/simple_animal/sloth + name = "sloth" + desc = "An adorable, sleepy creature." + icon = 'icons/mob/pets.dmi' + icon_state = "sloth" + icon_living = "sloth" + icon_dead = "sloth_dead" + speak_emote = list("yawns") + emote_hear = list("snores.","yawns.") + emote_see = list("dozes off.", "looks around sleepily.") + speak_chance = 1 + turns_per_move = 5 + butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat/slab = 3) + response_help = "pets" + response_disarm = "gently pushes aside" + response_harm = "kicks" + gold_core_spawnable = 2 + melee_damage_lower = 18 + melee_damage_upper = 18 + health = 50 + maxHealth = 50 + speed = 2 + + +//Cargo Sloth +/mob/living/simple_animal/sloth/paperwork + name = "Paperwork" + desc = "Cargo's pet sloth. About as useful as the rest of the techs." + gold_core_spawnable = 0 + +//Cargo Sloth 2 + +/mob/living/simple_animal/sloth/citrus + name = "Citrus" + desc = "Cargo's pet sloth. She's dressed in a horrible sweater." + icon_state = "cool_sloth" + icon_living = "cool_sloth" + icon_dead = "cool_sloth_dead" + gender = FEMALE + butcher_results = list(/obj/item/toy/spinningtoy = 1) + gold_core_spawnable = 0 \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/guardian/guardian.dm b/code/modules/mob/living/simple_animal/guardian/guardian.dm index 01c621bda0..0adbf952a7 100644 --- a/code/modules/mob/living/simple_animal/guardian/guardian.dm +++ b/code/modules/mob/living/simple_animal/guardian/guardian.dm @@ -1,11 +1,15 @@ var/global/list/parasites = list() //all currently existing/living guardians +#define GUARDIAN_HANDS_LAYER 1 +#define GUARDIAN_TOTAL_LAYERS 1 + /mob/living/simple_animal/hostile/guardian name = "Guardian Spirit" real_name = "Guardian Spirit" desc = "A mysterious being that stands by its charge, ever vigilant." speak_emote = list("hisses") + gender = NEUTER bubble_icon = "guardian" response_help = "passes through" response_disarm = "flails at" @@ -15,9 +19,9 @@ var/global/list/parasites = list() //all currently existing/living guardians icon_living = "magicOrange" icon_dead = "magicOrange" speed = 0 - a_intent = "harm" + a_intent = INTENT_HARM stop_automated_movement = 1 - flying = 1 // Immunity to chasms and landmines, etc. + movement_type = FLYING // Immunity to chasms and landmines, etc. attack_sound = 'sound/weapons/punch1.ogg' atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) minbodytemp = 0 @@ -25,12 +29,16 @@ var/global/list/parasites = list() //all currently existing/living guardians attacktext = "punches" maxHealth = INFINITY //The spirit itself is invincible health = INFINITY + healable = FALSE //don't brusepack the guardian damage_coeff = list(BRUTE = 0.5, BURN = 0.5, TOX = 0.5, CLONE = 0.5, STAMINA = 0, OXY = 0.5) //how much damage from each damage type we transfer to the owner environment_smash = 1 + obj_damage = 40 melee_damage_lower = 15 melee_damage_upper = 15 butcher_results = list(/obj/item/weapon/ectoplasm = 1) AIStatus = AI_OFF + 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 var/cooldown = 0 var/mob/living/summoner @@ -56,6 +64,8 @@ var/global/list/parasites = list() //all currently existing/living guardians /mob/living/simple_animal/hostile/guardian/med_hud_set_status() if(summoner) var/image/holder = hud_list[STATUS_HUD] + var/icon/I = icon(icon, icon_state, dir) + holder.pixel_y = I.Height() - world.icon_size if(summoner.stat == DEAD) holder.icon_state = "huddead" else @@ -91,7 +101,7 @@ var/global/list/parasites = list() //all currently existing/living guardians bubble_icon = "[namedatum.bubbleicon]" if (namedatum.stainself) - color = namedatum.colour + add_atom_colour(namedatum.colour, FIXED_COLOUR_PRIORITY) //Special case holocarp, because #snowflake code if(theme == "carp") @@ -121,6 +131,7 @@ var/global/list/parasites = list() //all currently existing/living guardians med_hud_set_status() if(summoner) if(summoner.stat == DEAD) + forceMove(summoner.loc) src << "Your summoner has died!" visible_message("\The [src] dies along with its user!") summoner.visible_message("[summoner]'s body is completely consumed by the strain of sustaining [src]!") @@ -128,12 +139,12 @@ var/global/list/parasites = list() //all currently existing/living guardians if(!summoner.unEquip(W)) qdel(W) summoner.dust() - ghostize() + death(TRUE) qdel(src) else src << "Your summoner has died!" visible_message("The [src] dies along with its user!") - ghostize() + death(TRUE) qdel(src) snapback() @@ -143,7 +154,7 @@ var/global/list/parasites = list() //all currently existing/living guardians if(summoner) var/resulthealth if(iscarbon(summoner)) - resulthealth = round((abs(config.health_threshold_dead - summoner.health) / abs(config.health_threshold_dead - summoner.maxHealth)) * 100) + resulthealth = round((abs(HEALTH_THRESHOLD_DEAD - summoner.health) / abs(HEALTH_THRESHOLD_DEAD - summoner.maxHealth)) * 100) else resulthealth = round((summoner.health / summoner.maxHealth) * 100, 0.5) stat(null, "Summoner Health: [resulthealth]%") @@ -177,15 +188,17 @@ var/global/list/parasites = list() //all currently existing/living guardians return 1 /mob/living/simple_animal/hostile/guardian/death() + drop_all_held_items() ..() - summoner << "Your [name] died somehow!" - summoner.death() + if(summoner) + summoner << "Your [name] died somehow!" + summoner.death() /mob/living/simple_animal/hostile/guardian/update_health_hud() if(summoner && hud_used && hud_used.healths) var/resulthealth if(iscarbon(summoner)) - resulthealth = round((abs(config.health_threshold_dead - summoner.health) / abs(config.health_threshold_dead - summoner.maxHealth)) * 100) + resulthealth = round((abs(HEALTH_THRESHOLD_DEAD - summoner.health) / abs(HEALTH_THRESHOLD_DEAD - summoner.maxHealth)) * 100) else resulthealth = round((summoner.health / summoner.maxHealth) * 100, 0.5) hud_used.healths.maptext = "
    [resulthealth]%
    " @@ -221,6 +234,82 @@ var/global/list/parasites = list() //all currently existing/living guardians ghostize() qdel(src) +//HAND HANDLING + +/mob/living/simple_animal/hostile/guardian/equip_to_slot(obj/item/I, slot) + if(!slot) + return FALSE + if(!istype(I)) + return FALSE + + . = TRUE + var/index = get_held_index_of_item(I) + if(index) + held_items[index] = null + update_inv_hands() + + if(I.pulledby) + I.pulledby.stop_pulling() + + I.screen_loc = null // will get moved if inventory is visible + I.loc = src + I.equipped(src, slot) + I.layer = ABOVE_HUD_LAYER + I.plane = ABOVE_HUD_PLANE + +/mob/living/simple_animal/hostile/guardian/proc/apply_overlay(cache_index) + var/image/I = guardian_overlays[cache_index] + if(I) + add_overlay(I) + +/mob/living/simple_animal/hostile/guardian/proc/remove_overlay(cache_index) + if(guardian_overlays[cache_index]) + overlays -= guardian_overlays[cache_index] + guardian_overlays[cache_index] = null + +/mob/living/simple_animal/hostile/guardian/update_inv_hands() + remove_overlay(GUARDIAN_HANDS_LAYER) + var/list/hands_overlays = list() + var/obj/item/l_hand = get_item_for_held_index(1) + var/obj/item/r_hand = get_item_for_held_index(2) + + if(r_hand) + var/r_state = r_hand.item_state + if(!r_state) + r_state = r_hand.icon_state + + var/image/r_hand_image = r_hand.build_worn_icon(state = r_state, default_layer = GUARDIAN_HANDS_LAYER, default_icon_file = r_hand.righthand_file, isinhands = TRUE) + + hands_overlays += r_hand_image + + if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD) + r_hand.layer = ABOVE_HUD_LAYER + r_hand.plane = ABOVE_HUD_PLANE + r_hand.screen_loc = ui_hand_position(get_held_index_of_item(r_hand)) + client.screen |= r_hand + + if(l_hand) + var/l_state = l_hand.item_state + if(!l_state) + l_state = l_hand.icon_state + + var/image/l_hand_image = l_hand.build_worn_icon(state = l_state, default_layer = GUARDIAN_HANDS_LAYER, default_icon_file = l_hand.lefthand_file, isinhands = TRUE) + + hands_overlays += l_hand_image + + if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD) + l_hand.layer = ABOVE_HUD_LAYER + l_hand.plane = ABOVE_HUD_PLANE + l_hand.screen_loc = ui_hand_position(get_held_index_of_item(l_hand)) + client.screen |= l_hand + + if(hands_overlays.len) + guardian_overlays[GUARDIAN_HANDS_LAYER] = hands_overlays + apply_overlay(GUARDIAN_HANDS_LAYER) + +/mob/living/simple_animal/hostile/guardian/regenerate_icons() + update_inv_hands() + //MANIFEST, RECALL, TOGGLE MODE/LIGHT, SHOW TYPE /mob/living/simple_animal/hostile/guardian/proc/Manifest() @@ -248,10 +337,10 @@ var/global/list/parasites = list() //all currently existing/living guardians /mob/living/simple_animal/hostile/guardian/proc/ToggleLight() if(!luminosity) src << "You activate your light." - set_light(3) + SetLuminosity(3) else src << "You deactivate your light." - set_light(0) + SetLuminosity(0) /mob/living/simple_animal/hostile/guardian/verb/ShowType() set name = "Check Guardian Type" @@ -380,12 +469,16 @@ var/global/list/parasites = list() //all currently existing/living guardians var/used_message = "All the cards seem to be blank now." var/failure_message = "..And draw a card! It's...blank? Maybe you should try again later." var/ling_failure = "The deck refuses to respond to a souless creature such as you." - var/list/possible_guardians = list("Chaos", "Standard", "Ranged", "Support", "Explosive", "Lightning", "Protector", "Charger", "Assassin") + var/list/possible_guardians = list("Assassin", "Chaos", "Charger", "Explosive", "Lightning", "Protector", "Ranged", "Standard", "Support") var/random = TRUE - var/allowmultiple = 0 - var/allowling = 1 + var/allowmultiple = FALSE + var/allowling = TRUE + var/allowguardian = FALSE /obj/item/weapon/guardiancreator/attack_self(mob/living/user) + if(isguardian(user) && !allowguardian) + user << "[mob_name] chains are not allowed." + return var/list/guardians = user.hasparasites() if(guardians.len && !allowmultiple) user << "You already have a [mob_name]!" @@ -449,6 +542,9 @@ var/global/list/parasites = list() //all currently existing/living guardians if("Assassin") pickedtype = /mob/living/simple_animal/hostile/guardian/assassin + if("Dextrous") + pickedtype = /mob/living/simple_animal/hostile/guardian/dextrous + var/list/guardians = user.hasparasites() if(guardians.len && !allowmultiple) user << "You already have a [mob_name]!" //nice try, bucko @@ -457,7 +553,7 @@ var/global/list/parasites = list() //all currently existing/living guardians var/mob/living/simple_animal/hostile/guardian/G = new pickedtype(user, theme) G.summoner = user G.key = key - G.faction |= user.faction + G.mind.enslave_mind_to_creator(user) switch(theme) if("tech") user << "[G.tech_fluff_string]" @@ -493,6 +589,9 @@ var/global/list/parasites = list() //all currently existing/living guardians /obj/item/weapon/guardiancreator/tech/choose random = FALSE +/obj/item/weapon/guardiancreator/tech/choose/dextrous + possible_guardians = list("Assassin", "Chaos", "Charger", "Dextrous", "Explosive", "Lightning", "Protector", "Ranged", "Standard", "Support") + /obj/item/weapon/paper/guardian name = "Holoparasite Guide" icon_state = "paper_words" @@ -543,8 +642,8 @@ var/global/list/parasites = list() //all currently existing/living guardians used_message = "Someone's already taken a bite out of these fishsticks! Ew." failure_message = "You couldn't catch any carp spirits from the seas of Lake Carp. Maybe there are none, maybe you fucked up." ling_failure = "Carp'sie is fine with changelings, so you shouldn't be seeing this message." - allowmultiple = 1 - allowling = 1 + allowmultiple = TRUE + allowling = TRUE random = TRUE /obj/item/weapon/guardiancreator/carp/choose diff --git a/code/modules/mob/living/simple_animal/guardian/types/assassin.dm b/code/modules/mob/living/simple_animal/guardian/types/assassin.dm index d54d501369..ff2e1c5a6a 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/assassin.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/assassin.dm @@ -51,6 +51,7 @@ melee_damage_lower = initial(melee_damage_lower) melee_damage_upper = initial(melee_damage_upper) armour_penetration = initial(armour_penetration) + obj_damage = initial(obj_damage) environment_smash = initial(environment_smash) alpha = initial(alpha) if(!forced) @@ -68,6 +69,7 @@ melee_damage_lower = 50 melee_damage_upper = 50 armour_penetration = 100 + obj_damage = 0 environment_smash = 0 PoolOrNew(/obj/effect/overlay/temp/guardian/phase/out, get_turf(src)) alpha = 15 diff --git a/code/modules/mob/living/simple_animal/guardian/types/charger.dm b/code/modules/mob/living/simple_animal/guardian/types/charger.dm index fc519b9214..33743138b9 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/charger.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/charger.dm @@ -38,7 +38,7 @@ /mob/living/simple_animal/hostile/guardian/charger/Move() if(charging) - PoolOrNew(/obj/effect/overlay/temp/decoy, list(loc,src)) + PoolOrNew(/obj/effect/overlay/temp/decoy/fading, list(loc,src)) . = ..() /mob/living/simple_animal/hostile/guardian/charger/snapback() @@ -60,9 +60,7 @@ if(H.check_shields(90, "[name]", src, attack_type = THROWN_PROJECTILE_ATTACK)) blocked = 1 if(!blocked) - - L.drop_r_hand() - L.drop_l_hand() + L.drop_all_held_items() L.visible_message("[src] slams into [L]!", "[src] slams into you!") L.apply_damage(20, BRUTE) playsound(get_turf(L), 'sound/effects/meteorimpact.ogg', 100, 1) diff --git a/code/modules/mob/living/simple_animal/guardian/types/dextrous.dm b/code/modules/mob/living/simple_animal/guardian/types/dextrous.dm new file mode 100644 index 0000000000..e86c85e182 --- /dev/null +++ b/code/modules/mob/living/simple_animal/guardian/types/dextrous.dm @@ -0,0 +1,102 @@ +//Dextrous +/mob/living/simple_animal/hostile/guardian/dextrous + melee_damage_lower = 10 + melee_damage_upper = 10 + damage_coeff = list(BRUTE = 0.75, BURN = 0.75, TOX = 0.75, CLONE = 0.75, STAMINA = 0, OXY = 0.75) + playstyle_string = "As a dextrous type you can hold items, store an item within yourself, and have medium damage resistance, but do low damage on attacks. Recalling and leashing will force you to drop unstored items!" + magic_fluff_string = "..And draw the Drone, a dextrous master of construction and repair." + tech_fluff_string = "Boot sequence complete. Dextrous combat modules loaded. Holoparasite swarm online." + carp_fluff_string = "CARP CARP CARP! You caught one! It can hold stuff in its fins, sort of." + dextrous = 1 + environment_target_typecache = list( + /obj/machinery/door/window, + /obj/structure/window, + /obj/structure/closet, + /obj/structure/table, + /obj/structure/grille, + /obj/structure/rack, + /obj/structure/barricade, + /obj/machinery/camera) //so we can also attack cameras + var/obj/item/internal_storage //what we're storing within ourself + +/mob/living/simple_animal/hostile/guardian/dextrous/death(gibbed) + ..() + if(internal_storage) + unEquip(internal_storage) + +/mob/living/simple_animal/hostile/guardian/dextrous/examine(mob/user) + if(dextrous) + var/msg = "*---------*\nThis is \icon[src] \a [src]!\n" + msg += "[desc]\n" + + for(var/obj/item/I in held_items) + if(!(I.flags & ABSTRACT)) + if(I.blood_DNA) + msg += "It has \icon[I] [I.gender==PLURAL?"some":"a"] blood-stained [I.name] in its [get_held_index_name(get_held_index_of_item(I))]!\n" + else + msg += "It has \icon[I] \a [I] in its [get_held_index_name(get_held_index_of_item(I))].\n" + + if(internal_storage && !(internal_storage.flags&ABSTRACT)) + if(internal_storage.blood_DNA) + msg += "It is holding \icon[internal_storage] [internal_storage.gender==PLURAL?"some":"a"] blood-stained [internal_storage.name] in its internal storage!\n" + else + msg += "It is holding \icon[internal_storage] \a [internal_storage] in its internal storage.\n" + msg += "*---------*" + user << msg + else + ..() + +/mob/living/simple_animal/hostile/guardian/dextrous/Recall() + if(loc == summoner || cooldown > world.time) + return 0 + drop_all_held_items() + return ..() //lose items, then return + +/mob/living/simple_animal/hostile/guardian/dextrous/snapback() + if(summoner && !(get_dist(get_turf(summoner),get_turf(src)) <= range)) + drop_all_held_items() + ..() //lose items, then return + +//SLOT HANDLING BULLSHIT FOR INTERNAL STORAGE +/mob/living/simple_animal/hostile/guardian/dextrous/unEquip(obj/item/I, force) + if(..(I,force)) + update_inv_hands() + if(I == internal_storage) + internal_storage = null + update_inv_internal_storage() + return 1 + return 0 + +/mob/living/simple_animal/hostile/guardian/dextrous/can_equip(obj/item/I, slot) + switch(slot) + if(slot_generic_dextrous_storage) + if(internal_storage) + return 0 + return 1 + ..() + +/mob/living/simple_animal/hostile/guardian/dextrous/equip_to_slot(obj/item/I, slot) + if(!..()) + return + + switch(slot) + if(slot_generic_dextrous_storage) + internal_storage = I + update_inv_internal_storage() + else + src << "You are trying to equip this item to an unsupported inventory slot. Report this to a coder!" + +/mob/living/simple_animal/hostile/guardian/dextrous/getBackSlot() + return slot_generic_dextrous_storage + +/mob/living/simple_animal/hostile/guardian/dextrous/getBeltSlot() + return slot_generic_dextrous_storage + +/mob/living/simple_animal/hostile/guardian/dextrous/proc/update_inv_internal_storage() + if(internal_storage && client && hud_used && hud_used.hud_shown) + internal_storage.screen_loc = ui_id + client.screen += internal_storage + +/mob/living/simple_animal/hostile/guardian/dextrous/regenerate_icons() + ..() + update_inv_internal_storage() \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/guardian/types/explosive.dm b/code/modules/mob/living/simple_animal/guardian/types/explosive.dm index 5cbe44e7d2..a44c6e6d4c 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/explosive.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/explosive.dm @@ -37,9 +37,9 @@ if(src.loc == summoner) src << "You must be manifested to create bombs!" return - if(istype(A, /obj/)) + if(isobj(A)) if(bomb_cooldown <= world.time && !stat) - var/obj/item/weapon/guardian_bomb/B = new /obj/item/weapon/guardian_bomb(get_turf(A)) + var/obj/guardian_bomb/B = new /obj/guardian_bomb(get_turf(A)) src << "Success! Bomb armed!" bomb_cooldown = world.time + 200 B.spawner = src @@ -47,49 +47,52 @@ else src << "Your powers are on cooldown! You must wait 20 seconds between bombs." -/obj/item/weapon/guardian_bomb +/obj/guardian_bomb name = "bomb" desc = "You shouldn't be seeing this!" var/obj/stored_obj var/mob/living/simple_animal/hostile/guardian/spawner -/obj/item/weapon/guardian_bomb/proc/disguise(var/obj/A) +/obj/guardian_bomb/proc/disguise(obj/A) A.loc = src stored_obj = A opacity = A.opacity anchored = A.anchored density = A.density appearance = A.appearance - spawn(600) - stored_obj.loc = get_turf(src.loc) - spawner << "Failure! Your trap didn't catch anyone this time." - qdel(src) + addtimer(src, "disable", 600, TIMER_NORMAL) -/obj/item/weapon/guardian_bomb/proc/detonate(var/mob/living/user) - user << "The [src] was boobytrapped!" - spawner << "Success! Your trap caught [user]" - stored_obj.loc = get_turf(src.loc) - playsound(get_turf(src),'sound/effects/Explosion2.ogg', 200, 1) - user.ex_act(2) +/obj/guardian_bomb/proc/disable() + stored_obj.forceMove(get_turf(src)) + spawner << "Failure! Your trap didn't catch anyone this time." qdel(src) -/obj/item/weapon/guardian_bomb/Bump(atom/A) - if(isliving(A) && A != spawner && A != spawner.summoner && !spawner.hasmatchingsummoner(A)) - detonate(A) - else - ..() +/obj/guardian_bomb/proc/detonate(mob/living/user) + if(isliving(user)) + if(user != spawner && user != spawner.summoner && !spawner.hasmatchingsummoner(user)) + user << "The [src] was boobytrapped!" + spawner << "Success! Your trap caught [user]" + var/turf/T = get_turf(src) + stored_obj.forceMove(T) + playsound(T,'sound/effects/Explosion2.ogg', 200, 1) + PoolOrNew(/obj/effect/overlay/temp/explosion, T) + user.ex_act(2) + qdel(src) + else + user << "[src] glows with a strange light, and you don't touch it." -/obj/item/weapon/guardian_bomb/attackby(mob/living/user) - detonate(user) - return - -/obj/item/weapon/guardian_bomb/pickup(mob/living/user) +/obj/guardian_bomb/Bump(atom/A) + detonate(A) ..() - detonate(user) - return -/obj/item/weapon/guardian_bomb/examine(mob/user) +/obj/guardian_bomb/attackby(mob/living/user) + detonate(user) + +/obj/guardian_bomb/attack_hand(mob/living/user) + detonate(user) + +/obj/guardian_bomb/examine(mob/user) stored_obj.examine(user) if(get_dist(user,src)<=2) user << "It glows with a strange light!" diff --git a/code/modules/mob/living/simple_animal/guardian/types/fire.dm b/code/modules/mob/living/simple_animal/guardian/types/fire.dm index 2ede892803..05c7fcc146 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/fire.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/fire.dm @@ -1,6 +1,6 @@ //Fire /mob/living/simple_animal/hostile/guardian/fire - a_intent = "help" + a_intent = INTENT_HELP melee_damage_lower = 7 melee_damage_upper = 7 attack_sound = 'sound/items/Welder.ogg' diff --git a/code/modules/mob/living/simple_animal/guardian/types/lightning.dm b/code/modules/mob/living/simple_animal/guardian/types/lightning.dm index 38a03707ef..a37b478829 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/lightning.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/lightning.dm @@ -30,7 +30,7 @@ var/datum/beam/C = pick(enemychains) qdel(C) enemychains -= C - enemychains += Beam(target,"lightning[rand(1,12)]",'icons/effects/effects.dmi',70, 7,/obj/effect/ebeam/chain) + enemychains += Beam(target, "lightning[rand(1,12)]", time=70, maxdistance=7, beam_type=/obj/effect/ebeam/chain) /mob/living/simple_animal/hostile/guardian/beam/Destroy() removechains() @@ -39,7 +39,7 @@ /mob/living/simple_animal/hostile/guardian/beam/Manifest() if(..()) if(summoner) - summonerchain = Beam(summoner,"lightning[rand(1,12)]",'icons/effects/effects.dmi',INFINITY, INFINITY,/obj/effect/ebeam/chain) + summonerchain = Beam(summoner, "lightning[rand(1,12)]", time=INFINITY, maxdistance=INFINITY, beam_type=/obj/effect/ebeam/chain) while(loc != summoner) if(successfulshocks > 5) successfulshocks = 0 @@ -57,7 +57,7 @@ if(summonerchain && !qdeleted(summonerchain)) . += chainshock(summonerchain) else - summonerchain = Beam(summoner,"lightning[rand(1,12)]",'icons/effects/effects.dmi',INFINITY, INFINITY,/obj/effect/ebeam/chain) + summonerchain = Beam(summoner, "lightning[rand(1,12)]", time=INFINITY, maxdistance=INFINITY, beam_type=/obj/effect/ebeam/chain) if(enemychains.len) for(var/chain in enemychains) if(!qdeleted(chain)) diff --git a/code/modules/mob/living/simple_animal/guardian/types/protector.dm b/code/modules/mob/living/simple_animal/guardian/types/protector.dm index 275c5bb8f8..5c04515ddc 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/protector.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/protector.dm @@ -61,7 +61,7 @@ return else summoner << "You moved out of range, and were pulled back! You can only move [range] meters from [real_name]!" - summoner.visible_message("\The [summoner] jumps back to \his protector.") + summoner.visible_message("\The [summoner] jumps back to [summoner.p_their()] protector.") PoolOrNew(/obj/effect/overlay/temp/guardian/phase/out, get_turf(summoner)) summoner.forceMove(get_turf(src)) PoolOrNew(/obj/effect/overlay/temp/guardian/phase, get_turf(summoner)) diff --git a/code/modules/mob/living/simple_animal/guardian/types/ranged.dm b/code/modules/mob/living/simple_animal/guardian/types/ranged.dm index 3d4b665fa8..be69f8624e 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/ranged.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/ranged.dm @@ -7,7 +7,7 @@ armour_penetration = 100 /mob/living/simple_animal/hostile/guardian/ranged - a_intent = "help" + a_intent = INTENT_HELP friendly = "quietly assesses" melee_damage_lower = 10 melee_damage_upper = 10 @@ -33,6 +33,7 @@ ranged = initial(ranged) melee_damage_lower = initial(melee_damage_lower) melee_damage_upper = initial(melee_damage_upper) + obj_damage = initial(obj_damage) environment_smash = initial(environment_smash) alpha = 255 range = initial(range) @@ -43,6 +44,7 @@ ranged = 0 melee_damage_lower = 0 melee_damage_upper = 0 + obj_damage = 0 environment_smash = 0 alpha = 45 range = 255 diff --git a/code/modules/mob/living/simple_animal/guardian/types/standard.dm b/code/modules/mob/living/simple_animal/guardian/types/standard.dm index 4cff9a0604..45624bbaaa 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/standard.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/standard.dm @@ -2,6 +2,7 @@ /mob/living/simple_animal/hostile/guardian/punch melee_damage_lower = 20 melee_damage_upper = 20 + obj_damage = 80 next_move_modifier = 0.8 //attacks 20% faster environment_smash = 2 playstyle_string = "As a standard type you have no special abilities, but have a high damage resistance and a powerful attack capable of smashing through walls." diff --git a/code/modules/mob/living/simple_animal/guardian/types/support.dm b/code/modules/mob/living/simple_animal/guardian/types/support.dm index 889ab1803c..792e2dda49 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/support.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/support.dm @@ -1,6 +1,6 @@ //Healer /mob/living/simple_animal/hostile/guardian/healer - a_intent = "harm" + a_intent = INTENT_HARM friendly = "heals" speed = 0 damage_coeff = list(BRUTE = 0.7, BURN = 0.7, TOX = 0.7, CLONE = 0.7, STAMINA = 0, OXY = 0.7) @@ -46,7 +46,7 @@ /mob/living/simple_animal/hostile/guardian/healer/ToggleMode() if(src.loc == summoner) if(toggle) - a_intent = "harm" + a_intent = INTENT_HARM speed = 0 damage_coeff = list(BRUTE = 0.7, BURN = 0.7, TOX = 0.7, CLONE = 0.7, STAMINA = 0, OXY = 0.7) melee_damage_lower = 15 @@ -54,7 +54,7 @@ src << "You switch to combat mode." toggle = FALSE else - a_intent = "help" + a_intent = INTENT_HELP speed = 1 damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 1, CLONE = 1, STAMINA = 0, OXY = 1) melee_damage_lower = 0 @@ -76,7 +76,7 @@ return var/turf/beacon_loc = get_turf(src.loc) - if(!istype(beacon_loc, /turf/open/floor)) + if(!isfloorturf(beacon_loc)) return if(beacon) @@ -103,7 +103,7 @@ /obj/structure/recieving_pad/New(loc, mob/living/simple_animal/hostile/guardian/healer/G) . = ..() if(G.namedatum) - color = G.namedatum.colour + add_atom_colour(G.namedatum.colour, FIXED_COLOUR_PRIORITY) /obj/structure/recieving_pad/proc/disappear() visible_message("[src] vanishes!") @@ -139,7 +139,7 @@ A.visible_message("[A] starts to glow faintly!\ ", "You start to faintly glow, and \ you feel strangely weightless!") - do_attack_animation(A) + do_attack_animation(A, null, 1) if(!do_mob(src, A, 60)) //now start the channel src << "You need to hold still!" @@ -148,7 +148,7 @@ PoolOrNew(/obj/effect/overlay/temp/guardian/phase/out, T) if(isliving(A)) var/mob/living/L = A - L.flash_eyes() + L.flash_act() A.visible_message("[A] disappears in a flash of \ light!", "Your vision is obscured \ by a flash of light!") diff --git a/code/modules/mob/living/simple_animal/hostile/alien.dm b/code/modules/mob/living/simple_animal/hostile/alien.dm index 8dd1a9a63e..be00d14a18 100644 --- a/code/modules/mob/living/simple_animal/hostile/alien.dm +++ b/code/modules/mob/living/simple_animal/hostile/alien.dm @@ -6,6 +6,7 @@ icon_living = "alienh_s" icon_dead = "alienh_dead" icon_gib = "syndicate_gib" + gender = FEMALE response_help = "pokes" response_disarm = "shoves" response_harm = "hits" @@ -15,12 +16,13 @@ maxHealth = 125 health = 125 harm_intent_damage = 5 + obj_damage = 60 melee_damage_lower = 25 melee_damage_upper = 25 attacktext = "slashes" speak_emote = list("hisses") bubble_icon = "alien" - a_intent = "harm" + a_intent = INTENT_HARM attack_sound = 'sound/weapons/bladeslice.ogg' atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) unsuitable_atmos_damage = 15 @@ -107,7 +109,7 @@ LayEggs() /mob/living/simple_animal/hostile/alien/proc/SpreadPlants() - if(!isturf(loc) || istype(loc, /turf/open/space)) + if(!isturf(loc) || isspaceturf(loc)) return if(locate(/obj/structure/alien/weeds/node) in get_turf(src)) return @@ -115,7 +117,7 @@ new /obj/structure/alien/weeds/node(loc) /mob/living/simple_animal/hostile/alien/proc/LayEggs() - if(!isturf(loc) || istype(loc, /turf/open/space)) + if(!isturf(loc) || isspaceturf(loc)) return if(locate(/obj/structure/alien/egg) in get_turf(src)) return @@ -153,8 +155,9 @@ name = "lusty xenomorph maid" melee_damage_lower = 0 melee_damage_upper = 0 - a_intent = "help" + a_intent = INTENT_HELP friendly = "caresses" + obj_damage = 0 environment_smash = 0 gold_core_spawnable = 1 icon_state = "maid" diff --git a/code/modules/mob/living/simple_animal/hostile/bear.dm b/code/modules/mob/living/simple_animal/hostile/bear.dm index 498f39359b..6984d60af3 100644 --- a/code/modules/mob/living/simple_animal/hostile/bear.dm +++ b/code/modules/mob/living/simple_animal/hostile/bear.dm @@ -20,7 +20,9 @@ response_harm = "hits" maxHealth = 60 health = 60 + var/armored = FALSE + obj_damage = 60 melee_damage_lower = 20 melee_damage_upper = 30 attacktext = "claws" @@ -38,6 +40,7 @@ //SPACE BEARS! SQUEEEEEEEE~ OW! FUCK! IT BIT MY HAND OFF!! /mob/living/simple_animal/hostile/bear/Hudson name = "Hudson" + gender = MALE desc = "Feared outlaw, this guy is one bad news bear." //I'm sorry... /mob/living/simple_animal/hostile/bear/snow @@ -45,11 +48,56 @@ icon_state = "snowbear" icon_living = "snowbear" icon_dead = "snowbear_dead" - desc = "It's a polar bear, in space, but not actually in space. " + desc = "It's a polar bear, in space, but not actually in space." + +/mob/living/simple_animal/hostile/bear/russian + name = "combat bear" + desc = "A ferocious brown bear decked out in armor plating, a red star with yellow outlining details the shoulder plating." + icon_state = "combatbear" + icon_living = "combatbear" + icon_dead = "combatbear_dead" + faction = list("russian") + butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat/slab/bear = 5, /obj/item/clothing/head/bearpelt = 1, /obj/item/bear_armor = 1) + melee_damage_lower = 25 + melee_damage_upper = 35 + armour_penetration = 20 + health = 120 + maxHealth = 120 + armored = TRUE /mob/living/simple_animal/hostile/bear/Process_Spacemove(movement_dir = 0) return 1 //No drifting in space for space bears! +/mob/living/simple_animal/hostile/bear/update_icons() + ..() + if(armored) + var/image/B = image(icon = 'icons/mob/animal.dmi', icon_state = "armor_bear") + if(B) + add_overlay(B) + +/obj/item/bear_armor + name = "pile of bear armor" + desc = "A scattered pile of various shaped armor pieces fitted for a bear, some duct tape, and a nail filer. Crude instructions \ + are written on the back of one of the plates in russian. This seems like an awful idea." + icon = 'icons/obj/items.dmi' + icon_state = "bear_armor_upgrade" + +/obj/item/bear_armor/afterattack(atom/target, mob/user, proximity_flag) + if(istype(target, /mob/living/simple_animal/hostile/bear) && proximity_flag) + var/mob/living/simple_animal/hostile/bear/A = target + if(A.armored) + user << "[A] has already been armored up!" + return + A.armored = TRUE + A.maxHealth += 60 + A.health += 60 + A.armour_penetration += 20 + A.melee_damage_lower += 5 + A.melee_damage_upper += 5 + A.update_icons() + user << "You strap the armor plating to [A] and sharpen [A.p_their()] claws with the nail filer. This was a great idea." + qdel(src) + diff --git a/code/modules/mob/living/simple_animal/hostile/bees.dm b/code/modules/mob/living/simple_animal/hostile/bees.dm index 90feaca438..84059e663c 100644 --- a/code/modules/mob/living/simple_animal/hostile/bees.dm +++ b/code/modules/mob/living/simple_animal/hostile/bees.dm @@ -6,9 +6,9 @@ #define BEE_TRAY_RECENT_VISIT 200 //How long in deciseconds until a tray can be visited by a bee again #define BEE_DEFAULT_COLOUR "#e5e500" //the colour we make the stripes of the bee if our reagent has no colour (or we have no reagent) -#define BEE_POLLINATE_YIELD_CHANCE 10 +#define BEE_POLLINATE_YIELD_CHANCE 33 #define BEE_POLLINATE_PEST_CHANCE 33 -#define BEE_POLLINATE_POTENTCY_CHANCE 50 +#define BEE_POLLINATE_POTENCY_CHANCE 50 /mob/living/simple_animal/hostile/poison/bees name = "bee" @@ -16,6 +16,7 @@ icon_state = "" icon_living = "" icon = 'icons/mob/bees.dmi' + gender = FEMALE speak_emote = list("buzzes") emote_hear = list("buzzes") turns_per_move = 0 @@ -29,11 +30,12 @@ health = 10 faction = list("hostile") move_to_delay = 0 + obj_damage = 0 environment_smash = 0 mouse_opacity = 2 pass_flags = PASSTABLE | PASSGRILLE | PASSMOB mob_size = MOB_SIZE_TINY - flying = 1 + movement_type = FLYING gold_core_spawnable = 1 search_objects = 1 //have to find those plant trays! @@ -123,7 +125,7 @@ if(istype(A, /obj/machinery/hydroponics)) var/obj/machinery/hydroponics/Hydro = A if(Hydro.myseed && !Hydro.dead && !Hydro.recent_bee_visit) - wanted_objects |= /obj/machinery/hydroponics //so we only hunt them while they're alive/seeded/not visisted + wanted_objects |= typecacheof(/obj/machinery/hydroponics) //so we only hunt them while they're alive/seeded/not visisted return 1 if(isliving(A)) var/mob/living/H = A @@ -140,12 +142,13 @@ var/obj/structure/beebox/BB = target loc = BB target = null - wanted_objects -= /obj/structure/beebox //so we don't attack beeboxes when not going home + wanted_objects -= typecacheof(/obj/structure/beebox) //so we don't attack beeboxes when not going home else if(beegent && isliving(target)) var/mob/living/L = target - beegent.reaction_mob(L, INJECT) - L.reagents.add_reagent(beegent.id, rand(1,5)) + if(L.reagents) + beegent.reaction_mob(L, INJECT) + L.reagents.add_reagent(beegent.id, rand(1,5)) target.attack_animal(src) @@ -162,7 +165,7 @@ return target = null //so we pick a new hydro tray next FindTarget(), instead of loving the same plant for eternity - wanted_objects -= /obj/machinery/hydroponics //so we only hunt them while they're alive/seeded/not visisted + wanted_objects -= typecacheof(/obj/machinery/hydroponics) //so we only hunt them while they're alive/seeded/not visisted Hydro.recent_bee_visit = TRUE spawn(BEE_TRAY_RECENT_VISIT) if(Hydro) @@ -170,13 +173,14 @@ var/growth = health //Health also means how many bees are in the swarm, roughly. //better healthier plants! - Hydro.health += round(growth*0.5) + Hydro.adjustHealth(growth*0.5) if(prob(BEE_POLLINATE_PEST_CHANCE)) - Hydro.pestlevel = max(0, --Hydro.pestlevel) - if(prob(BEE_POLLINATE_YIELD_CHANCE)) //Yield mod is HELLA powerful, but quite rare - Hydro.myseed.innate_yieldmod++ - if(prob(BEE_POLLINATE_POTENTCY_CHANCE)) - Hydro.myseed.potency++ + Hydro.adjustPests(-10) + if(prob(BEE_POLLINATE_YIELD_CHANCE)) + Hydro.myseed.adjust_yield(1) + Hydro.yieldmod = 2 + if(prob(BEE_POLLINATE_POTENCY_CHANCE)) + Hydro.myseed.adjust_potency(1) if(beehome) beehome.bee_resources = min(beehome.bee_resources + growth, 100) @@ -196,7 +200,7 @@ idle = max(0, --idle) if(idle <= BEE_IDLE_GOHOME && prob(BEE_PROB_GOHOME)) if(!FindTarget()) - wanted_objects += /obj/structure/beebox //so we don't attack beeboxes when not going home + wanted_objects |= typecacheof(/obj/structure/beebox) //so we don't attack beeboxes when not going home target = beehome if(!beehome) //add outselves to a beebox (of the same reagent) if we have no home for(var/obj/structure/beebox/BB in view(vision_range, src)) diff --git a/code/modules/mob/living/simple_animal/hostile/bosses/boss.dm b/code/modules/mob/living/simple_animal/hostile/bosses/boss.dm new file mode 100644 index 0000000000..17e5856ca5 --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/bosses/boss.dm @@ -0,0 +1,137 @@ +/mob/living/simple_animal/hostile/boss + name = "A Perfectly Generic Boss Placeholder" + desc = "" + robust_searching = 1 + stat_attack = 1 + status_flags = 0 + a_intent = INTENT_HARM + gender = NEUTER + var/list/boss_abilities = list() //list of /datum/action/boss + var/datum/boss_active_timed_battle/atb + var/point_regen_delay = 1 + + +/mob/living/simple_animal/hostile/boss/New() + ..() + + atb = new() + atb.point_regen_delay = point_regen_delay + atb.boss = src + + for(var/ab in boss_abilities) + boss_abilities -= ab + var/datum/action/boss/AB = new ab() + AB.boss = src + AB.Grant(src) + boss_abilities += AB + + atb.assign_abilities(boss_abilities) + + +/mob/living/simple_animal/hostile/boss/Destroy() + qdel(atb) + atb = null + for(var/ab in boss_abilities) + var/datum/action/boss/AB = ab + AB.boss = null + AB.Remove(src) + qdel(AB) + del(boss_abilities) + return ..() + + +//Action datum for bosses +//Override Trigger() as shown below to do things +/datum/action/boss + check_flags = AB_CHECK_CONSCIOUS //Incase the boss is given a player + var/boss_cost = 100 //Cost of usage for the boss' AI 1-100 + var/usage_probability = 100 + var/mob/living/simple_animal/hostile/boss/boss + var/boss_type = /mob/living/simple_animal/hostile/boss + var/needs_target = TRUE //Does the boss need to have a target? (Only matters for the AI) + var/say_when_triggered = "" //What does the boss Say() when the ability triggers? + +/datum/action/boss/Trigger() + . = ..() + if(.) + if(!istype(boss, boss_type)) + return 0 + if(!boss.atb) + return 0 + if(boss.atb.points < boss_cost) + return 0 + if(!boss.client) + if(needs_target && !boss.target) + return 0 + if(boss) + if(say_when_triggered) + boss.say(say_when_triggered) + if(!boss.atb.spend(boss_cost)) + return 0 + +//Example: +/* +/datum/action/boss/selfgib/Trigger() + if(..()) + boss.gib() +*/ + + +//Designed for boss mobs only +/datum/boss_active_timed_battle + var/list/abilities //a list of /datum/action/boss owned by a boss mob + var/point_regen_delay = 5 + var/points = 50 //1-100, start with 50 so we can use some abilities but not insta-buttfug somebody + var/next_point_time = 0 + var/chance_to_hold_onto_points = 50 + var/highest_cost = 0 + var/mob/living/simple_animal/hostile/boss/boss + + +/datum/boss_active_timed_battle/New() + ..() + SSobj.processing.Add(src) + + +/datum/boss_active_timed_battle/proc/assign_abilities(list/L) + if(!L) + return 0 + abilities = L + for(var/ab in abilities) + var/datum/action/boss/AB = ab + if(AB.boss_cost > highest_cost) + highest_cost = AB.boss_cost + + +/datum/boss_active_timed_battle/proc/spend(cost) + if(cost <= points) + points = max(0,points-cost) + return 1 + return 0 + + +/datum/boss_active_timed_battle/proc/refund(cost) + points = min(points+cost, 100) + + +/datum/boss_active_timed_battle/process() + if(world.time >= next_point_time) + next_point_time = world.time + point_regen_delay + points = min(100, ++points) //has to be out of 100 + + if(abilities) + chance_to_hold_onto_points = highest_cost*0.5 + if(points != 100 && prob(chance_to_hold_onto_points)) + return //Let's save our points for a better ability (unless we're at max points, in which case we can't save anymore!) + if(!boss.client) + abilities = shuffle(abilities) + for(var/ab in abilities) + var/datum/action/boss/AB = ab + if(prob(AB.usage_probability) && AB.Trigger()) + break + + +/datum/boss_active_timed_battle/Destroy() + abilities = null + SSobj.processing.Remove(src) + return ..() \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/hostile/bosses/paperwizard.dm b/code/modules/mob/living/simple_animal/hostile/bosses/paperwizard.dm new file mode 100644 index 0000000000..c9c51cd450 --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/bosses/paperwizard.dm @@ -0,0 +1,171 @@ +//Paper Wizard Boss +/mob/living/simple_animal/hostile/boss/paper_wizard + name = "Mjor the Creative" + desc = "A wizard with a taste for the arts." + boss_abilities = list(/datum/action/boss/wizard_summon_minions, /datum/action/boss/wizard_mimic) + faction = list("hostile","stickman") + del_on_death = TRUE + icon_state = "paperwizard" + ranged = 1 + environment_smash = 0 + minimum_distance = 3 + retreat_distance = 3 + obj_damage = 0 + melee_damage_lower = 10 + melee_damage_upper = 20 + health = 1000 + maxHealth = 1000 + loot = list(/obj/effect/overlay/temp/paperwiz_dying) + projectiletype = /obj/item/projectile/temp + projectilesound = 'sound/weapons/emitter.ogg' + attack_sound = 'sound/hallucinations/growl1.ogg' + var/list/copies = list() + + +//Summon Ability +//Lets the wizard summon his art to fight for him +/datum/action/boss/wizard_summon_minions + name = "Summon Minions" + button_icon_state = "art_summon" + usage_probability = 40 + boss_cost = 30 + boss_type = /mob/living/simple_animal/hostile/boss/paper_wizard + needs_target = FALSE + say_when_triggered = "Rise, my creations! Jump off your pages and into this realm!" + var/static/summoned_minions = 0 + +/datum/action/boss/wizard_summon_minions/Trigger() + if(summoned_minions <= 6 && ..()) + var/list/minions = list( + /mob/living/simple_animal/hostile/stickman, + /mob/living/simple_animal/hostile/stickman/ranged, + /mob/living/simple_animal/hostile/stickman/dog) + var/list/directions = cardinal.Copy() + for(var/i in 1 to 3) + var/minions_chosen = pick_n_take(minions) + new minions_chosen (get_step(boss,pick_n_take(directions)), 1) + summoned_minions += 3; + + +//Mimic Ability +//Summons mimics of himself with magical papercraft +//Hitting a decoy hurts nearby people excluding the wizard himself +//Hitting the wizard himself destroys all decoys +/datum/action/boss/wizard_mimic + name = "Craft Mimicry" + button_icon_state = "mimic_summon" + usage_probability = 30 + boss_cost = 40 + boss_type = /mob/living/simple_animal/hostile/boss/paper_wizard + say_when_triggered = "" + +/datum/action/boss/wizard_mimic/Trigger() + if(..()) + var/mob/living/target + if(!boss.client) //AI's target + target = boss.target + else //random mob + var/list/threats = boss.PossibleThreats() + if(threats.len) + target = pick(threats) + if(target) + var/mob/living/simple_animal/hostile/boss/paper_wizard/wiz = boss + var/directions = cardinal.Copy() + for(var/i in 1 to 3) + var/mob/living/simple_animal/hostile/boss/paper_wizard/copy/C = new (get_step(target,pick_n_take(directions))) + wiz.copies += C + C.original = wiz + C.say("My craft defines me, you could even say it IS me!") + wiz.say("My craft defines me, you could even say it IS me!") + wiz.forceMove(get_step(target,pick_n_take(directions))) + wiz.minimum_distance = 1 //so he doesn't run away and ruin everything + wiz.retreat_distance = 0 + else + boss.atb.refund(boss_cost) + +/mob/living/simple_animal/hostile/boss/paper_wizard/copy + desc = "tis a ruse!" + health = 1 + maxHealth = 1 + alpha = 200 + boss_abilities = list() + melee_damage_lower = 1 + melee_damage_upper = 5 + minimum_distance = 0 + retreat_distance = 0 + ranged = 0 + loot = list() + var/mob/living/simple_animal/hostile/boss/paper_wizard/original + +//Hit a fake? eat pain! +/mob/living/simple_animal/hostile/boss/paper_wizard/copy/adjustHealth(amount) + if(amount > 0) //damage + if(original) + original.minimum_distance = 3 + original.retreat_distance = 3 + original.copies -= src + for(var/c in original.copies) + qdel(c) + for(var/mob/living/L in range(5,src)) + if(L == original || istype(L, type)) + continue + L.adjustBruteLoss(50) + qdel(src) + else + ..() + +//Hit the real guy? copies go bai-bai +/mob/living/simple_animal/hostile/boss/paper_wizard/adjustHealth(amount) + if(amount > 0)//damage + minimum_distance = 3 + retreat_distance = 3 + for(var/copy in copies) + qdel(copy) + . = ..() + +/mob/living/simple_animal/hostile/boss/paper_wizard/copy/examine(mob/user) + ..() + qdel(src) //I see through your ruse! + +//fancy effects +/obj/effect/overlay/temp/paper_scatter + name = "scattering paper" + desc = "Pieces of paper scattering to the wind." + layer = ABOVE_OPEN_TURF_LAYER + icon = 'icons/effects/effects.dmi' + icon_state = "paper_scatter" + anchored = TRUE + duration = 5 + randomdir = FALSE + +/obj/effect/overlay/temp/paperwiz_dying + name = "craft portal" + desc = "A wormhole sucking the wizard into the void. Neat." + layer = ABOVE_OPEN_TURF_LAYER + icon = 'icons/effects/effects.dmi' + icon_state = "paperwiz_poof" + anchored = TRUE + duration = 18 + randomdir = FALSE + +/obj/effect/overlay/temp/paperwiz_dying/New() + ..() + visible_message("The wizard cries out in pain as a gate appears behind him, sucking him in!") + playsound(get_turf(src),'sound/magic/MandSwap.ogg', 50, 1, 1) + playsound(get_turf(src),'sound/hallucinations/wail.ogg', 50, 1, 1) + +/obj/effect/overlay/temp/paperwiz_dying/Destroy() + for(var/mob/M in range(7,src)) + shake_camera(M, 7, 1) + var/turf/T = get_turf(src) + playsound(T,'sound/magic/Summon_Magic.ogg', 50, 1, 1) + new /obj/effect/overlay/temp/paper_scatter(T) + new /obj/item/clothing/suit/wizrobe/paper(T) + new /obj/item/clothing/head/collectable/paper(T) + return ..() + + + + + + diff --git a/code/modules/mob/living/simple_animal/hostile/carp.dm b/code/modules/mob/living/simple_animal/hostile/carp.dm index 88c0271b64..fbcbde7ddc 100644 --- a/code/modules/mob/living/simple_animal/hostile/carp.dm +++ b/code/modules/mob/living/simple_animal/hostile/carp.dm @@ -18,6 +18,7 @@ health = 25 harm_intent_damage = 8 + obj_damage = 50 melee_damage_lower = 15 melee_damage_upper = 15 attacktext = "bites" @@ -30,7 +31,7 @@ maxbodytemp = 1500 faction = list("carp") - flying = 1 + movement_type = FLYING pressure_resistance = 200 gold_core_spawnable = 1 @@ -51,7 +52,7 @@ del_on_death = 1 /mob/living/simple_animal/hostile/carp/megacarp - icon = 'icons/mob/alienqueen.dmi' + icon = 'icons/mob/broadMobs.dmi' name = "Mega Space Carp" desc = "A ferocious, fang bearing creature that resembles a shark. This one seems especially ticked off." icon_state = "megacarp" @@ -63,6 +64,7 @@ pixel_x = -16 mob_size = MOB_SIZE_LARGE + obj_damage = 80 melee_damage_lower = 20 melee_damage_upper = 20 @@ -70,6 +72,7 @@ /mob/living/simple_animal/hostile/carp/cayenne name = "Cayenne" desc = "A failed Syndicate experiment in weaponized space carp technology, it now serves as a lovable mascot." + gender = FEMALE speak_emote = list("squeaks") gold_core_spawnable = 0 faction = list("syndicate") diff --git a/code/modules/mob/living/simple_animal/hostile/creature.dm b/code/modules/mob/living/simple_animal/hostile/creature.dm index f3775cb6c9..50baf1038e 100644 --- a/code/modules/mob/living/simple_animal/hostile/creature.dm +++ b/code/modules/mob/living/simple_animal/hostile/creature.dm @@ -1,12 +1,12 @@ /mob/living/simple_animal/hostile/creature name = "creature" desc = "A sanity-destroying otherthing." - speak_emote = list("gibbers") icon_state = "otherthing" icon_living = "otherthing" icon_dead = "otherthing-dead" health = 80 maxHealth = 80 + obj_damage = 100 melee_damage_lower = 25 melee_damage_upper = 50 attacktext = "chomps" diff --git a/code/modules/mob/living/simple_animal/hostile/eyeballs.dm b/code/modules/mob/living/simple_animal/hostile/eyeballs.dm index b8dabe22b5..a3e6dd6540 100644 --- a/code/modules/mob/living/simple_animal/hostile/eyeballs.dm +++ b/code/modules/mob/living/simple_animal/hostile/eyeballs.dm @@ -6,6 +6,7 @@ icon_state = "eyeball" icon_living = "eyeball" icon_gib = "" + gender = NEUTER response_help = "pets" response_disarm = "gently pushes aside" response_harm = "hits" @@ -16,11 +17,12 @@ speak_emote = list("telepathically cries") harm_intent_damage = 15 + obj_damage = 60 melee_damage_lower = 20 melee_damage_upper = 25 attacktext = "blinks at" attack_sound = 'sound/weapons/pierce.ogg' - flying = 1 + movement_type = FLYING faction = list("spooky") del_on_death = 1 \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/hostile/faithless.dm b/code/modules/mob/living/simple_animal/hostile/faithless.dm index 32dd0b0601..8194ce2c95 100644 --- a/code/modules/mob/living/simple_animal/hostile/faithless.dm +++ b/code/modules/mob/living/simple_animal/hostile/faithless.dm @@ -4,6 +4,7 @@ icon_state = "faithless" icon_living = "faithless" icon_dead = "faithless_dead" + gender = MALE speak_chance = 0 turns_per_move = 5 response_help = "passes through" @@ -18,6 +19,7 @@ robust_searching = 1 harm_intent_damage = 10 + obj_damage = 50 melee_damage_lower = 15 melee_damage_upper = 15 attacktext = "grips" diff --git a/code/modules/mob/living/simple_animal/hostile/flan.dm b/code/modules/mob/living/simple_animal/hostile/flan.dm new file mode 100644 index 0000000000..6944de9a09 --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/flan.dm @@ -0,0 +1,58 @@ +//Will probably eventually be expanded to fit multiple types of Flan because I am a nerd. + +/mob/living/simple_animal/hostile/flan + name = "Flan" + desc = "Definitely not a dessert." + var/casting = 0 + icon_state = "flan0" + icon_living = "flan0" + turns_per_move = 5 + environment_smash = 0 + speed = -2 + maxHealth = 50 + health = 50 + harm_intent_damage = 5 + melee_damage_lower = 5 + melee_damage_upper = 10 + attacktext = "headbutts" + attack_sound = 'sound/weapons/punch1.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) + del_on_death = 1 + ranged = 1 + retreat_distance = 2 + minimum_distance = 4 + AIStatus = AI_IDLE + ranged_message = "begins to cast something" + ranged_cooldown_time = 5 + var/spellname = "a Water spell!" + var/spellsound = 'sound/effects/spray3.ogg' + var/spellanimation = ATTACK_EFFECT_SMASH //More in defines/misc.dm + var/spelldamagetype = BRUTE + var/spelldamage = 20 + +/mob/living/simple_animal/hostile/flan/OpenFire(mob/living/A) //Spellcasting! + if(isliving(A)) //A is originally an atom, this is here to prevent that from fucking this up. + visible_message("[src] [ranged_message] at [A]!") + casting = 1 + icon_state = "[initial(icon_state)][casting]" + if(do_after(src, 10, target = A, progress = 0)) + if(qdeleted(src)) + return + if((A in view(src))) + A.do_attack_animation(A, spellanimation) + playsound(A, spellsound, 20, 1) + A.apply_damage(damage = spelldamage,damagetype = spelldamagetype, def_zone = null, blocked = 0) + visible_message("[A] has been hit by [spellname]") + ranged_cooldown = world.time + ranged_cooldown_time + casting = 0 + icon_state = "[initial(icon_state)][casting]" + +/mob/living/simple_animal/hostile/flan/fire + name = "Flame Flan" + desc = "You'd think they'd be spicy, but nobody has ever tried." + icon_state = "fireflan" + icon_living = "fireflan" + spellname = "a Fire spell!" + spellsound = 'sound/effects/fuse.ogg' + spelldamagetype = BURN \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm index 530b75e81e..853f083f9f 100644 --- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm +++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm @@ -35,13 +35,14 @@ response_harm = "hits" maxHealth = 200 health = 200 + obj_damage = 60 melee_damage_lower = 15 melee_damage_upper = 20 faction = list("spiders") var/busy = 0 pass_flags = PASSTABLE move_to_delay = 6 - ventcrawler = 2 + ventcrawler = VENTCRAWLER_ALWAYS attacktext = "bites" attack_sound = 'sound/weapons/bite.ogg' unique_name = 1 @@ -78,14 +79,14 @@ icon_state = "nurse" icon_living = "nurse" icon_dead = "nurse_dead" + gender = FEMALE butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat/slab/spider = 2, /obj/item/weapon/reagent_containers/food/snacks/spiderleg = 8, /obj/item/weapon/reagent_containers/food/snacks/spidereggs = 4) maxHealth = 40 health = 40 melee_damage_lower = 5 melee_damage_upper = 10 - poison_per_bite = 10 + poison_per_bite = 3 var/atom/cocoon_target - poison_type = "morphine" var/fed = 0 //hunters have the most poison and move the fastest, so they can find prey @@ -137,7 +138,7 @@ return //second, spin a sticky spiderweb on this tile - var/obj/effect/spider/stickyweb/W = locate() in get_turf(src) + var/obj/structure/spider/stickyweb/W = locate() in get_turf(src) if(!W) Web() else @@ -182,7 +183,7 @@ stop_automated_movement = 1 if(do_after(src, 40, target = T)) if(busy == SPINNING_WEB && src.loc == T) - new /obj/effect/spider/stickyweb(T) + new /obj/structure/spider/stickyweb(T) busy = 0 stop_automated_movement = 0 @@ -213,8 +214,8 @@ walk(src,0) if(do_after(src, 50, target = src)) if(busy == SPINNING_COCOON) - if(cocoon_target && istype(cocoon_target.loc, /turf) && get_dist(src,cocoon_target) <= 1) - var/obj/effect/spider/cocoon/C = new(cocoon_target.loc) + if(cocoon_target && isturf(cocoon_target.loc) && get_dist(src,cocoon_target) <= 1) + var/obj/structure/spider/cocoon/C = new(cocoon_target.loc) var/large_cocoon = 0 C.pixel_x = cocoon_target.pixel_x C.pixel_y = cocoon_target.pixel_y @@ -250,7 +251,7 @@ set category = "Spider" set desc = "Lay a clutch of eggs, but you must wrap a creature for feeding first." - var/obj/effect/spider/eggcluster/E = locate() in get_turf(src) + var/obj/structure/spider/eggcluster/E = locate() in get_turf(src) if(stat == DEAD) return if(E) @@ -265,7 +266,7 @@ if(busy == LAYING_EGGS) E = locate() in get_turf(src) if(!E) - var/obj/effect/spider/eggcluster/C = new /obj/effect/spider/eggcluster(src.loc) + var/obj/structure/spider/eggcluster/C = new /obj/structure/spider/eggcluster(src.loc) if(ckey) C.player_spiders = 1 C.poison_type = poison_type diff --git a/code/modules/mob/living/simple_animal/hostile/headcrab.dm b/code/modules/mob/living/simple_animal/hostile/headcrab.dm index 82a3e1528a..5443f76f45 100644 --- a/code/modules/mob/living/simple_animal/hostile/headcrab.dm +++ b/code/modules/mob/living/simple_animal/hostile/headcrab.dm @@ -6,6 +6,7 @@ icon_state = "headcrab" icon_living = "headcrab" icon_dead = "headcrab_dead" + gender = NEUTER health = 50 maxHealth = 50 melee_damage_lower = 5 @@ -15,12 +16,13 @@ faction = list("creature") robust_searching = 1 stat_attack = 2 + obj_damage = 0 environment_smash = 0 speak_emote = list("squeaks") - ventcrawler = 2 + ventcrawler = VENTCRAWLER_ALWAYS var/datum/mind/origin var/egg_lain = 0 -// gold_core_spawnable = 1 //are you sure about this?? (NO, THEY WEREN'T. THIS WAS AN AWFUL DECISION) + gold_core_spawnable = 1 //are you sure about this?? /mob/living/simple_animal/hostile/headcrab/proc/Infect(mob/living/carbon/victim) var/obj/item/organ/body_egg/changeling_egg/egg = new(victim) diff --git a/code/modules/mob/living/simple_animal/hostile/hivebot.dm b/code/modules/mob/living/simple_animal/hostile/hivebot.dm index c6e4acda87..ed1062b49b 100644 --- a/code/modules/mob/living/simple_animal/hostile/hivebot.dm +++ b/code/modules/mob/living/simple_animal/hostile/hivebot.dm @@ -9,6 +9,7 @@ icon_state = "basic" icon_living = "basic" icon_dead = "basic" + gender = NEUTER health = 15 maxHealth = 15 healable = 0 diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index 315bdb385b..7193997d7f 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -1,6 +1,7 @@ /mob/living/simple_animal/hostile faction = list("hostile") stop_automated_movement_when_pulled = 0 + obj_damage = 40 environment_smash = 1 //Set to 1 to break closets,tables,racks, etc; 2 for walls; 3 for rwalls var/atom/target var/ranged = 0 @@ -20,12 +21,14 @@ /obj/structure/closet, /obj/structure/table, /obj/structure/grille, + /obj/structure/girder, /obj/structure/rack, /obj/structure/barricade) //turned into a typecache in New() 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 + var/ranged_ignores_vision = FALSE //if it'll fire ranged attacks even if it lacks vision on its target, only works with environment smash var/check_friendly_fire = 0 // Should the ranged mob check for friendlies when shooting var/retreat_distance = null //If our mob runs from players when they're too close, set in tile distance. By default, mobs do not retreat. var/minimum_distance = 1 //Minimum approach distance, so ranged mobs chase targets down, but still keep their distance set in tiles to the target, set higher to make mobs keep distance @@ -37,22 +40,33 @@ var/aggro_vision_range = 9 //If a mob is aggro, we search in this radius. Defaults to 9 to keep in line with original simple mob aggro radius var/idle_vision_range = 9 //If a mob is just idling around, it's vision range is limited to this. Defaults to 9 to keep in line with original simple mob aggro radius var/search_objects = 0 //If we want to consider objects when searching around, set this to 1. If you want to search for objects while also ignoring mobs until hurt, set it to 2. To completely ignore mobs, even when attacked, set it to 3 - var/list/wanted_objects = list() //A list of objects that will be checked against to attack, should we have search_objects enabled + var/search_objects_timer_id //Timer for regaining our old search_objects value after being attacked + var/search_objects_regain_time = 30 //the delay between being attacked and gaining our old search_objects value back + var/list/wanted_objects = list() //A typecache of objects types that will be checked against to attack, should we have search_objects enabled var/stat_attack = 0 //Mobs with stat_attack to 1 will attempt to attack things that are unconscious, Mobs with stat_attack set to 2 will attempt to attack the dead. var/stat_exclusive = 0 //Mobs with this set to 1 will exclusively attack things defined by stat_attack, stat_attack 2 means they will only attack corpses var/attack_same = 0 //Set us to 1 to allow us to attack our own faction, or 2, to only ever attack our own faction - var/AIStatus = AI_ON //The Status of our AI, can be set to AI_ON (On, usual processing), AI_IDLE (Will not process, but will return to AI_ON if an enemy comes near), AI_OFF (Off, Not processing ever) var/atom/targets_from = null //all range/attack/etc. calculations should be done from this atom, defaults to the mob itself, useful for Vehicles and such + var/attack_all_objects = FALSE //if true, equivalent to having a wanted_objects list containing ALL objects. + + 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/New() ..() + if(!targets_from) targets_from = src environment_target_typecache = typecacheof(environment_target_typecache) + wanted_objects = typecacheof(wanted_objects) +/mob/living/simple_animal/hostile/Destroy() + targets_from = null + return ..() + /mob/living/simple_animal/hostile/Life() . = ..() if(!.) //dead @@ -74,14 +88,20 @@ AIStatus = AI_IDLE // otherwise we go idle return 1 +/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) + return ..() + /mob/living/simple_animal/hostile/bullet_act(obj/item/projectile/P) - if(!target && AIStatus != AI_OFF && !client) + if(stat == CONSCIOUS && !target && AIStatus != AI_OFF && !client) + if(P.firer && get_dist(src, P.firer) <= aggro_vision_range) + FindTarget(list(P.firer), 1) Goto(P.starting, move_to_delay, 3) - ..() + return ..() //////////////HOSTILE MOB TARGETTING AND AGGRESSION//////////// - /mob/living/simple_animal/hostile/proc/ListTargets()//Step 1, find out what we can see . = list() if(!search_objects) @@ -150,11 +170,6 @@ if(see_invisible < the_target.invisibility)//Target's invisible to us, forget it return 0 if(search_objects < 2) - if(istype(the_target, /obj/mecha)) - var/obj/mecha/M = the_target - if(M.occupant)//Just so we don't attack empty mechs - if(CanAttack(M.occupant)) - return 1 if(isliving(the_target)) var/mob/living/L = the_target var/faction_check = faction_check(L) @@ -171,14 +186,34 @@ if(faction_check && !attack_same) return 0 return 1 + + if(istype(the_target, /obj/mecha)) + var/obj/mecha/M = the_target + if(M.occupant)//Just so we don't attack empty mechs + if(CanAttack(M.occupant)) + return 1 + + if(istype(the_target, /obj/machinery/porta_turret)) + var/obj/machinery/porta_turret/P = the_target + if(P.faction in faction) + return 0 + if(P.has_cover &&!P.raised) //Don't attack invincible turrets + return 0 + if(P.stat & BROKEN) //Or turrets that are already broken + return 0 + return 1 + + if(isobj(the_target)) - if(is_type_in_list(the_target, wanted_objects)) + if(attack_all_objects || is_type_in_typecache(the_target, wanted_objects)) return 1 return 0 /mob/living/simple_animal/hostile/proc/GiveTarget(new_target)//Step 4, give us our selected target target = new_target + LosePatience() if(target != null) + GainPatience() Aggro() return 1 @@ -188,28 +223,34 @@ LoseTarget() return 0 if(target in possible_targets) + if(target.z != z) + LoseTarget() + return 0 var/target_distance = get_dist(targets_from,target) - if(ranged)//We ranged? Shoot at em - if(target_distance >= 2 && ranged_cooldown <= world.time)//But make sure they're a tile away at least, and our range attack is off cooldown + if(ranged) //We ranged? Shoot at em + if(!target.Adjacent(targets_from) && ranged_cooldown <= world.time) //But make sure they're not in range for a melee attack and our range attack is off cooldown OpenFire(target) - if(!Process_Spacemove()) // Drifting + if(!Process_Spacemove()) //Drifting walk(src,0) return 1 - if(retreat_distance != null)//If we have a retreat distance, check if we need to run from our target - if(target_distance <= retreat_distance)//If target's closer than our retreat distance, run + if(retreat_distance != null) //If we have a retreat distance, check if we need to run from our target + if(target_distance <= retreat_distance) //If target's closer than our retreat distance, run walk_away(src,target,retreat_distance,move_to_delay) else - Goto(target,move_to_delay,minimum_distance)//Otherwise, get to our minimum distance so we chase them + Goto(target,move_to_delay,minimum_distance) //Otherwise, get to our minimum distance so we chase them else Goto(target,move_to_delay,minimum_distance) if(target) - if(isturf(targets_from.loc) && target.Adjacent(targets_from)) //If they're next to us, attack + if(targets_from && isturf(targets_from.loc) && target.Adjacent(targets_from)) //If they're next to us, attack AttackingTarget() + GainPatience() return 1 return 0 if(environment_smash) - if(target.loc != null && get_dist(targets_from, target.loc) <= vision_range)//We can't see our target, but he's in our vision range still - if(environment_smash >= 2)//If we're capable of smashing through walls, forget about vision completely after finding our target + if(target.loc != null && get_dist(targets_from, target.loc) <= vision_range) //We can't see our target, but he's in our vision range still + if(ranged_ignores_vision && ranged_cooldown <= world.time) //we can't see our target... but we can fire at them! + OpenFire(target) + if(environment_smash >= 2) //If we're capable of smashing through walls, forget about vision completely after finding our target Goto(target,move_to_delay,minimum_distance) FindHidden() return 1 @@ -226,14 +267,15 @@ . = ..() if(!ckey && !stat && search_objects < 3 && damage > 0)//Not unconscious, and we don't ignore mobs if(search_objects)//Turn off item searching and ignore whatever item we were looking at, we're more concerned with fight or flight - search_objects = 0 target = null + LoseSearchObjects() if(AIStatus == AI_IDLE) AIStatus = AI_ON FindTarget() else if(target != null && prob(40))//No more pulling a mob forever and having a second player attack it, it can switch targets now if it finds a more suitable one FindTarget() + /mob/living/simple_animal/hostile/proc/AttackingTarget() target.attack_animal(src) @@ -260,12 +302,15 @@ LoseTarget() ..(gibbed) -/mob/living/simple_animal/hostile/proc/summon_backup(distance) +/mob/living/simple_animal/hostile/proc/summon_backup(distance, exact_faction_match) do_alert_animation(src) playsound(loc, 'sound/machines/chime.ogg', 50, 1, -1) for(var/mob/living/simple_animal/hostile/M in oview(distance, targets_from)) var/list/L = M.faction&faction - if(L.len) + var/success = L.len + if(exact_faction_match) + success = (L.len == faction.len) //since the above op is &, an exact match would be of the same length + if(success) if(M.AIStatus == AI_OFF) return else @@ -298,10 +343,9 @@ return var/turf/startloc = get_turf(targets_from) if(casingtype) - var/obj/item/ammo_casing/casing = new casingtype + var/obj/item/ammo_casing/casing = new casingtype(startloc) playsound(src, projectilesound, 100, 1) - casing.fire(targeted_atom, src, zone_override = ran_zone()) - casing.loc = startloc + casing.fire_casing(targeted_atom, src, null, null, null, zone_override = ran_zone()) else if(projectiletype) var/obj/item/projectile/P = new projectiletype(startloc) playsound(src, projectilesound, 100, 1) @@ -322,7 +366,7 @@ EscapeConfinement() for(var/dir in cardinal) var/turf/T = get_step(targets_from, dir) - if(istype(T, /turf/closed/wall) || istype(T, /turf/closed/mineral)) + if(iswallturf(T) || ismineralturf(T)) if(T.Adjacent(targets_from)) T.attack_animal(src) for(var/a in T) @@ -370,3 +414,28 @@ /mob/living/simple_animal/hostile/proc/AIShouldSleep(var/list/possible_targets) return !FindTarget(possible_targets, 1) + + +//These two procs handle losing our target if we've failed to attack them for +//more than lose_patience_timeout deciseconds, which probably means we're stuck +/mob/living/simple_animal/hostile/proc/GainPatience() + if(lose_patience_timeout) + LosePatience() + lose_patience_timer_id = addtimer(src, "LoseTarget", lose_patience_timeout) + + +/mob/living/simple_animal/hostile/proc/LosePatience() + deltimer(lose_patience_timer_id) + + +//These two procs handle losing and regaining search_objects when attacked by a mob +/mob/living/simple_animal/hostile/proc/LoseSearchObjects() + search_objects = 0 + deltimer(search_objects_timer_id) + search_objects_timer_id = addtimer(src, "RegainSearchObjects", search_objects_regain_time) + + +/mob/living/simple_animal/hostile/proc/RegainSearchObjects(value) + if(!value) + value = initial(search_objects) + search_objects = value \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/hostile/illusion.dm b/code/modules/mob/living/simple_animal/hostile/illusion.dm index 26af99220c..eef563eda3 100644 --- a/code/modules/mob/living/simple_animal/hostile/illusion.dm +++ b/code/modules/mob/living/simple_animal/hostile/illusion.dm @@ -5,9 +5,10 @@ icon_state = "static" icon_living = "static" icon_dead = "null" + gender = NEUTER melee_damage_lower = 5 melee_damage_upper = 5 - a_intent = "harm" + a_intent = INTENT_HARM attacktext = "gores" maxHealth = 100 health = 100 @@ -48,7 +49,7 @@ /mob/living/simple_animal/hostile/illusion/AttackingTarget() ..() - if(istype(target, /mob/living) && prob(multiply_chance)) + if(isliving(target) && prob(multiply_chance)) var/mob/living/L = target if(L.stat == DEAD) return @@ -65,6 +66,7 @@ melee_damage_lower = 0 melee_damage_upper = 0 speed = -1 + obj_damage = 0 environment_smash = 0 diff --git a/code/modules/mob/living/simple_animal/hostile/killertomato.dm b/code/modules/mob/living/simple_animal/hostile/killertomato.dm index 5c032e21bc..3273a8c3d9 100644 --- a/code/modules/mob/living/simple_animal/hostile/killertomato.dm +++ b/code/modules/mob/living/simple_animal/hostile/killertomato.dm @@ -4,6 +4,7 @@ icon_state = "tomato" icon_living = "tomato" icon_dead = "tomato_dead" + gender = NEUTER speak_chance = 0 turns_per_move = 5 maxHealth = 30 @@ -17,7 +18,7 @@ melee_damage_upper = 12 attacktext = "slams" attack_sound = 'sound/weapons/punch1.ogg' - ventcrawler = 2 + ventcrawler = VENTCRAWLER_ALWAYS faction = list("plants") atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) diff --git a/code/modules/mob/living/simple_animal/hostile/mecha_pilot.dm b/code/modules/mob/living/simple_animal/hostile/mecha_pilot.dm index 63d3bd8256..c61b52353a 100644 --- a/code/modules/mob/living/simple_animal/hostile/mecha_pilot.dm +++ b/code/modules/mob/living/simple_animal/hostile/mecha_pilot.dm @@ -41,7 +41,7 @@ /mob/living/simple_animal/hostile/syndicate/mecha_pilot/no_mech/New() ..() - wanted_objects = subtypesof(/obj/mecha/combat) + wanted_objects = typecacheof(/obj/mecha/combat, ignore_root_path=TRUE) /mob/living/simple_animal/hostile/syndicate/mecha_pilot/nanotrasen //nanotrasen are syndies! no it's just a weird path. name = "Nanotrasen Mecha Pilot" @@ -101,7 +101,7 @@ targets_from = src //Find a new mecha - wanted_objects = subtypesof(/obj/mecha/combat) + wanted_objects = typecacheof(/obj/mecha/combat, ignore_root_path=TRUE) var/search_aggressiveness = 2 for(var/obj/mecha/combat/C in range(vision_range,src)) if(is_valid_mecha(C)) @@ -122,7 +122,7 @@ return 0 if(!M.has_charge(required_mecha_charge)) return 0 - if(M.health < (initial(M.health)*0.5)) + if(M.obj_integrity < M.max_integrity*0.5) return 0 return 1 @@ -216,7 +216,7 @@ return //Too Much Damage - Eject - if(mecha.health < initial(mecha.health)*0.1) + if(mecha.obj_integrity < mecha.max_integrity*0.1) exit_mecha(mecha) return @@ -226,18 +226,18 @@ mecha.smoke_action.Activate() //Heavy damage - Defence Power or Retreat - if(mecha.health < initial(mecha.health)*0.25) + if(mecha.obj_integrity < mecha.max_integrity*0.25) if(prob(defence_mode_chance)) if(mecha.defense_action && mecha.defense_action.owner && !mecha.defence_mode) mecha.leg_overload_mode = 0 mecha.defense_action.Activate(TRUE) - addtimer(mecha.defense_action, "Activate", 100, FALSE, FALSE) //10 seconds of defence, then toggle off + addtimer(mecha.defense_action, "Activate", 100, TIMER_NORMAL, FALSE) //10 seconds of defence, then toggle off else if(prob(retreat_chance)) //Speed boost if possible if(mecha.overload_action && mecha.overload_action.owner && !mecha.leg_overload_mode) mecha.overload_action.Activate(TRUE) - addtimer(mecha.overload_action, "Activate", 100, FALSE, FALSE) //10 seconds of speeeeed, then toggle off + addtimer(mecha.overload_action, "Activate", 100, TIMER_NORMAL, FALSE) //10 seconds of speeeeed, then toggle off retreat_distance = 50 spawn(100) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm index f6fa1e66c9..6a24b841b3 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm @@ -1,3 +1,28 @@ +#define MEDAL_PREFIX "Bubblegum" + +/* + +BUBBLEGUM + +Bubblegum spawns randomly wherever a lavaland creature is able to spawn. It is the most powerful slaughter demon in existence. +Bubblegum's footsteps are heralded by shaking booms, proving its tremendous size. + +It acts as a melee creature, chasing down and attacking its target while also using different attacks to augment its power that increase as it takes damage. + +It tries to strike at its target through any bloodpools under them; if it fails to do that, it will spray blood and then attempt to warp to a bloodpool near the target. +If it fails to warp to a target, it may summon up to 6 slaughterlings from the blood around it. +If it does not summon all 6 slaughterlings, it will instead charge at its target, dealing massive damage to anything it hits and spraying a stream of blood. +At half health, it will either charge three times or warp, then charge, instead of doing a single charge. + +When Bubblegum dies, it leaves behind a chest that can contain three things: + 1. A bottle that, when activated, drives everyone nearby into a frenzy + 2. A contract that marks for death the chosen target + 3. A spellblade that can slice off limbs at range + +Difficulty: Hard + +*/ + /mob/living/simple_animal/hostile/megafauna/bubblegum name = "bubblegum" desc = "In what passes for a heirarchy among slaughter demons, this one is king." @@ -10,8 +35,6 @@ icon_dead = "" friendly = "stares down" icon = 'icons/mob/lavaland/96x96megafauna.dmi' - faction = list("mining") - weather_immunities = list("lava","ash") speak_emote = list("gurgles") armour_penetration = 40 melee_damage_lower = 40 @@ -19,14 +42,13 @@ speed = 1 move_to_delay = 10 ranged = 1 - flying = 1 - mob_size = MOB_SIZE_LARGE pixel_x = -32 del_on_death = 1 - aggro_vision_range = 18 - idle_vision_range = 5 loot = list(/obj/structure/closet/crate/necropolis/bubblegum) + blood_volume = BLOOD_VOLUME_MAXIMUM //BLEED FOR ME var/charging = 0 + medal_type = MEDAL_PREFIX + score_type = BUBBLEGUM_SCORE deathmessage = "sinks into a pool of blood, fleeing the battle. You've won, for now... " death_sound = 'sound/magic/enter_blood.ogg' @@ -36,37 +58,49 @@ desc = "You're not quite sure how a signal can be bloody." invisibility = 100 -/mob/living/simple_animal/hostile/megafauna/bubblegum/AttackingTarget() - ..() - if(isliving(target)) - var/mob/living/L = target - devour(L) +/mob/living/simple_animal/hostile/megafauna/bubblegum/adjustBruteLoss(amount) + if(amount > 0 && prob(25)) + var/obj/effect/decal/cleanable/blood/gibs/bubblegum/B = new /obj/effect/decal/cleanable/blood/gibs/bubblegum(loc) + if(prob(40)) + step(B, pick(cardinal)) + else + B.setDir(pick(cardinal)) + . = ..() + +/obj/effect/decal/cleanable/blood/gibs/bubblegum + name = "thick blood" + desc = "Thick, splattered blood." + random_icon_states = list("gib3", "gib5", "gib6") + bloodiness = 20 + +/obj/effect/decal/cleanable/blood/gibs/bubblegum/can_bloodcrawl_in() + return TRUE /mob/living/simple_animal/hostile/megafauna/bubblegum/Life() ..() - move_to_delay = Clamp(round((health/maxHealth) * 10), 5, 10) + move_to_delay = Clamp((health/maxHealth) * 10, 5, 10) /mob/living/simple_animal/hostile/megafauna/bubblegum/OpenFire() - var/anger_modifier = Clamp(((maxHealth - health)/50),0,20) + anger_modifier = Clamp(((maxHealth - health)/60),0,20) + if(charging) + return ranged_cooldown = world.time + ranged_cooldown_time - if(!charging) - blood_warp() + var/warped = FALSE + if(!try_bloodattack()) + addtimer(src, "blood_spray", 0) + warped = blood_warp() + if(warped && prob(100 - anger_modifier)) + return - if(prob(25)) - blood_spray() - - else if(prob(5+anger_modifier/2)) - slaughterlings() - else - if(health > maxHealth/2 && !client && !charging) - charge() + if(prob(90 - anger_modifier) || slaughterlings()) + if(health > maxHealth * 0.5) + addtimer(src, "charge", 0) else - charge() - sleep(10) - charge() - sleep(10) - charge() + if(prob(70) || warped) + addtimer(src, "triple_charge", 0) + else + addtimer(src, "warp_charge", 0) /mob/living/simple_animal/hostile/megafauna/bubblegum/New() @@ -79,91 +113,277 @@ AddSpell(bloodspell) if(istype(loc, /obj/effect/dummy/slaughter)) bloodspell.phased = 1 - new/obj/item/device/gps/internal/bubblegum(src) + internal = new/obj/item/device/gps/internal/bubblegum(src) + +/mob/living/simple_animal/hostile/megafauna/bubblegum/do_attack_animation(atom/A, visual_effect_icon) + if(!charging) + ..() /mob/living/simple_animal/hostile/megafauna/bubblegum/AttackingTarget() - if(charging) - return - ..() + if(!charging) + ..() + +/mob/living/simple_animal/hostile/megafauna/bubblegum/Goto(target, delay, minimum_distance) + if(!charging) + ..() /mob/living/simple_animal/hostile/megafauna/bubblegum/Move() - if(!stat) - playsound(src.loc, 'sound/effects/meteorimpact.ogg', 200, 1) if(charging) - PoolOrNew(/obj/effect/overlay/temp/decoy, list(loc,src)) - for(var/turf/T in range(src, 1)) - T.singularity_pull(src, 7) + PoolOrNew(/obj/effect/overlay/temp/decoy/fading, list(loc,src)) + DestroySurroundings() . = ..() + if(!stat && .) + playsound(src, 'sound/effects/meteorimpact.ogg', 200, 1, 2, 1) + if(charging) + DestroySurroundings() + +/mob/living/simple_animal/hostile/megafauna/bubblegum/proc/warp_charge() + blood_warp() + charge() + +/mob/living/simple_animal/hostile/megafauna/bubblegum/proc/triple_charge() + charge() + charge() + charge() /mob/living/simple_animal/hostile/megafauna/bubblegum/proc/charge() - var/turf/T = get_step_away(target, src) - charging = 1 + var/turf/T = get_turf(target) + if(!T || T == loc) + return PoolOrNew(/obj/effect/overlay/temp/dragon_swoop, T) + charging = 1 + DestroySurroundings() + walk(src, 0) + setDir(get_dir(src, T)) + var/obj/effect/overlay/temp/decoy/D = PoolOrNew(/obj/effect/overlay/temp/decoy, list(loc,src)) + animate(D, alpha = 0, color = "#FF0000", transform = matrix()*2, time = 5) sleep(5) - throw_at(T, 7, 1, src, 0) + throw_at(T, get_dist(src, T), 1, src, 0) charging = 0 + try_bloodattack() + if(target) + Goto(target, move_to_delay, minimum_distance) /mob/living/simple_animal/hostile/megafauna/bubblegum/Bump(atom/A) if(charging) - if(istype(A, /turf) || istype(A, /obj) && A.density) + if(isturf(A) || isobj(A) && A.density) A.ex_act(2) - ..() + DestroySurroundings() + ..() /mob/living/simple_animal/hostile/megafauna/bubblegum/throw_impact(atom/A) if(!charging) return ..() - else if(A) - if(isliving(A)) - var/mob/living/L = A - L.visible_message("[src] slams into [L]!", "[src] slams into you!") - L.apply_damage(40, BRUTE) - playsound(get_turf(L), 'sound/effects/meteorimpact.ogg', 100, 1) - shake_camera(L, 4, 3) - shake_camera(src, 2, 3) - var/throwtarget = get_edge_target_turf(src, get_dir(src, get_step_away(L, src))) - L.throw_at_fast(throwtarget) + else if(isliving(A)) + var/mob/living/L = A + L.visible_message("[src] slams into [L]!", "[src] slams into you!") + L.apply_damage(40, BRUTE) + playsound(get_turf(L), 'sound/effects/meteorimpact.ogg', 100, 1) + shake_camera(L, 4, 3) + shake_camera(src, 2, 3) + var/throwtarget = get_edge_target_turf(src, get_dir(src, get_step_away(L, src))) + L.throw_at_fast(throwtarget, 3) charging = 0 -/mob/living/simple_animal/hostile/megafauna/bubblegum/proc/blood_warp() - var/found_bloodpool = FALSE - for(var/obj/effect/decal/cleanable/blood/nearby in view(src,2)) - found_bloodpool = TRUE - if(found_bloodpool) - for(var/obj/effect/decal/cleanable/blood/H in view(target,2)) - visible_message("[src] sinks into the blood...") - playsound(get_turf(src), 'sound/magic/enter_blood.ogg', 100, 1, -1) - forceMove(get_turf(H)) - playsound(get_turf(src), 'sound/magic/exit_blood.ogg', 100, 1, -1) - visible_message("And springs back out!") - break +/mob/living/simple_animal/hostile/megafauna/bubblegum/proc/get_mobs_on_blood() + var/list/targets = ListTargets() + . = list() + for(var/mob/living/L in targets) + var/list/bloodpool = get_pools(get_turf(L), 0) + if(bloodpool.len && (!faction_check(L) || L.stat == DEAD)) + . += L +/mob/living/simple_animal/hostile/megafauna/bubblegum/proc/try_bloodattack() + var/list/targets = get_mobs_on_blood() + if(targets.len) + addtimer(src, "bloodattack", 0, TIMER_NORMAL, targets, prob(50)) + + return TRUE + return FALSE + +/mob/living/simple_animal/hostile/megafauna/bubblegum/proc/bloodattack(list/targets, handedness) + var/mob/living/target_one = pick_n_take(targets) + var/turf/target_one_turf = get_turf(target_one) + var/mob/living/target_two + if(targets.len) + target_two = pick_n_take(targets) + var/turf/target_two_turf = get_turf(target_two) + if(target_two.stat != CONSCIOUS || prob(10)) + bloodgrab(target_two_turf, handedness) + else + bloodsmack(target_two_turf, handedness) + + if(target_one) + var/list/pools = get_pools(get_turf(target_one), 0) + if(pools.len) + target_one_turf = get_turf(target_one) + if(target_one_turf) + if(target_one.stat != CONSCIOUS || prob(10)) + bloodgrab(target_one_turf, !handedness) + else + bloodsmack(target_one_turf, !handedness) + + if(!target_two && target_one) + var/list/poolstwo = get_pools(get_turf(target_one), 0) + if(poolstwo.len) + target_one_turf = get_turf(target_one) + if(target_one_turf) + if(target_one.stat != CONSCIOUS || prob(10)) + bloodgrab(target_one_turf, handedness) + else + bloodsmack(target_one_turf, handedness) + +/mob/living/simple_animal/hostile/megafauna/bubblegum/proc/bloodsmack(turf/T, handedness) + if(handedness) + PoolOrNew(/obj/effect/overlay/temp/bubblegum_hands/rightsmack, T) + else + PoolOrNew(/obj/effect/overlay/temp/bubblegum_hands/leftsmack, T) + sleep(2.5) + for(var/mob/living/L in T) + if(!faction_check(L)) + L << "[src] rends you!" + playsound(T, attack_sound, 100, 1, -1) + var/limb_to_hit = L.get_bodypart(pick("head", "chest", "r_arm", "l_arm", "r_leg", "l_leg")) + L.apply_damage(25, BRUTE, limb_to_hit, L.run_armor_check(limb_to_hit, "melee", null, null, armour_penetration)) + sleep(3) + +/mob/living/simple_animal/hostile/megafauna/bubblegum/proc/bloodgrab(turf/T, handedness) + if(handedness) + PoolOrNew(/obj/effect/overlay/temp/bubblegum_hands/rightpaw, T) + PoolOrNew(/obj/effect/overlay/temp/bubblegum_hands/rightthumb, T) + else + PoolOrNew(/obj/effect/overlay/temp/bubblegum_hands/leftpaw, T) + PoolOrNew(/obj/effect/overlay/temp/bubblegum_hands/leftthumb, T) + sleep(6) + for(var/mob/living/L in T) + if(!faction_check(L)) + L << "[src] drags you through the blood!" + playsound(T, 'sound/magic/enter_blood.ogg', 100, 1, -1) + var/turf/targetturf = get_step(src, dir) + L.forceMove(targetturf) + playsound(targetturf, 'sound/magic/exit_blood.ogg', 100, 1, -1) + if(L.stat != CONSCIOUS) + addtimer(src, "devour", 2, TIMER_NORMAL, L) + sleep(1) + +/obj/effect/overlay/temp/bubblegum_hands + icon = 'icons/effects/bubblegum.dmi' + duration = 9 + +/obj/effect/overlay/temp/bubblegum_hands/rightthumb + icon_state = "rightthumbgrab" + +/obj/effect/overlay/temp/bubblegum_hands/leftthumb + icon_state = "leftthumbgrab" + +/obj/effect/overlay/temp/bubblegum_hands/rightpaw + icon_state = "rightpawgrab" + layer = BELOW_MOB_LAYER + +/obj/effect/overlay/temp/bubblegum_hands/leftpaw + icon_state = "leftpawgrab" + layer = BELOW_MOB_LAYER + +/obj/effect/overlay/temp/bubblegum_hands/rightsmack + icon_state = "rightsmack" + +/obj/effect/overlay/temp/bubblegum_hands/leftsmack + icon_state = "leftsmack" + +/mob/living/simple_animal/hostile/megafauna/bubblegum/proc/blood_warp() + if(Adjacent(target)) + return FALSE + var/list/can_jaunt = get_pools(get_turf(src), 1) + if(!can_jaunt.len) + return FALSE + + var/list/pools = get_pools(get_turf(target), 2) + var/list/pools_to_remove = get_pools(get_turf(target), 1) + pools -= pools_to_remove + if(!pools.len) + return FALSE + + var/obj/effect/overlay/temp/decoy/DA = PoolOrNew(/obj/effect/overlay/temp/decoy, list(loc,src)) + DA.color = "#FF0000" + var/oldtransform = DA.transform + DA.transform = matrix()*2 + animate(DA, alpha = 255, color = initial(DA.color), transform = oldtransform, time = 5) + sleep(5) + qdel(DA) + + var/obj/effect/decal/cleanable/blood/found_bloodpool + pools = get_pools(get_turf(target), 2) + pools_to_remove = get_pools(get_turf(target), 1) + pools -= pools_to_remove + if(pools.len) + shuffle(pools) + found_bloodpool = pick(pools) + if(found_bloodpool) + visible_message("[src] sinks into the blood...") + playsound(get_turf(src), 'sound/magic/enter_blood.ogg', 100, 1, -1) + forceMove(get_turf(found_bloodpool)) + playsound(get_turf(src), 'sound/magic/exit_blood.ogg', 100, 1, -1) + visible_message("And springs back out!") + return TRUE + return FALSE + +/mob/living/simple_animal/hostile/megafauna/bubblegum/proc/get_pools(turf/T, range) + . = list() + for(var/obj/effect/decal/cleanable/nearby in view(T, range)) + if(nearby.can_bloodcrawl_in()) + . += nearby /mob/living/simple_animal/hostile/megafauna/bubblegum/proc/blood_spray() visible_message("[src] sprays a stream of gore!") - spawn(0) - var/turf/E = get_edge_target_turf(src, src.dir) - var/range = 10 - for(var/turf/open/J in getline(src,E)) - if(!range) - break - playsound(J,'sound/effects/splat.ogg', 100, 1, -1) - new /obj/effect/decal/cleanable/blood(J) - range-- - sleep(1) + var/range = 6 + round(anger_modifier * 0.4) + var/turf/previousturf = get_turf(src) + var/turf/J = previousturf + var/targetdir = get_dir(src, target) + if(target.loc == loc) + targetdir = dir + face_atom(target) + new /obj/effect/decal/cleanable/blood/bubblegum(J) + for(var/i in 1 to range) + J = get_step(previousturf, targetdir) + PoolOrNew(/obj/effect/overlay/temp/dir_setting/bloodsplatter, list(previousturf, get_dir(previousturf, J))) + playsound(previousturf,'sound/effects/splat.ogg', 100, 1, -1) + if(!J || !previousturf.atmos_adjacent_turfs || !previousturf.atmos_adjacent_turfs[J]) + break + new /obj/effect/decal/cleanable/blood/bubblegum(J) + previousturf = J + sleep(1) + +/obj/effect/decal/cleanable/blood/bubblegum + bloodiness = 0 + +/obj/effect/decal/cleanable/blood/bubblegum/can_bloodcrawl_in() + return TRUE /mob/living/simple_animal/hostile/megafauna/bubblegum/proc/slaughterlings() visible_message("[src] summons a shoal of slaughterlings!") - for(var/obj/effect/decal/cleanable/blood/H in range(src, 10)) - if(prob(25)) - new /mob/living/simple_animal/hostile/asteroid/hivelordbrood/blood/slaughter(H.loc) + var/max_amount = 6 + for(var/H in get_pools(get_turf(src), 1)) + if(!max_amount) + break + max_amount-- + var/obj/effect/decal/cleanable/blood/B = H + new /mob/living/simple_animal/hostile/asteroid/hivelordbrood/blood/slaughter(B.loc) + return max_amount /mob/living/simple_animal/hostile/asteroid/hivelordbrood/blood/slaughter name = "slaughterling" desc = "Though not yet strong enough to create a true physical form, it's nonetheless determined to murder you." - faction = list("mining") + density = 0 + faction = list("mining", "boss") weather_immunities = list("lava","ash") +/mob/living/simple_animal/hostile/asteroid/hivelordbrood/blood/slaughter/CanPass(atom/movable/mover, turf/target, height = 0) + if(istype(mover, /mob/living/simple_animal/hostile/megafauna/bubblegum)) + return 1 + return 0 + +#undef MEDAL_PREFIX \ No newline at end of file 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 bd305c5c30..6f1a8323af 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -1,3 +1,28 @@ + +#define MEDAL_PREFIX "Colossus" +/* + +COLOSSUS + +The colossus spawns randomly wherever a lavaland creature is able to spawn. It is powerful, ancient, and extremely deadly. +The colossus has a degree of sentience, proving this in speech during its attacks. + +It acts as a melee creature, chasing down and attacking its target while also using different attacks to augment its power that increase as it takes damage. + +The colossus' true danger lies in its ranged capabilities. It fires immensely damaging death bolts that penetrate all armor in a variety of ways: + 1. The colossus fires death bolts in alternating patterns: the cardinal directions and the diagonal directions. + 2. The colossus fires death bolts in a shotgun-like pattern, instantly downing anything unfortunate enough to be hit by all of them. + 3. The colossus fires a spiral of death bolts. +At 33% health, the colossus gains an additional attack: + 4. The colossus fires two spirals of death bolts, spinning in opposite directions. + +When a colossus dies, it leaves behind a chunk of glowing crystal known as a black box. Anything placed inside will carry over into future rounds. +For instance, you could place a bag of holding into the black box, and then kill another colossus next round and retrieve the bag of holding from inside. + +Difficulty: Very Hard + +*/ + /mob/living/simple_animal/hostile/megafauna/colossus name = "colossus" desc = "A monstrous creature protected by heavy shielding." @@ -10,55 +35,49 @@ icon_dead = "dragon_dead" friendly = "stares down" icon = 'icons/mob/lavaland/96x96megafauna.dmi' - faction = list("mining") - weather_immunities = list("lava","ash") speak_emote = list("roars") - luminosity = 3 armour_penetration = 40 melee_damage_lower = 40 melee_damage_upper = 40 speed = 1 move_to_delay = 10 ranged = 1 - flying = 1 - mob_size = MOB_SIZE_LARGE pixel_x = -32 - aggro_vision_range = 18 - idle_vision_range = 5 del_on_death = 1 - loot = list(/obj/machinery/smartfridge/black_box) + medal_type = MEDAL_PREFIX + score_type = COLOSSUS_SCORE + loot = list(/obj/machinery/anomalous_crystal/random) butcher_results = list(/obj/item/weapon/ore/diamond = 5, /obj/item/stack/sheet/sinew = 5, /obj/item/stack/sheet/animalhide/ashdrake = 10, /obj/item/stack/sheet/bone = 30) - deathmessage = "disintegrates, leaving a glowing core in its wake." death_sound = 'sound/magic/demon_dies.ogg' - damage_coeff = list(BRUTE = 1, BURN = 0.5, TOX = 1, CLONE = 1, STAMINA = 0, OXY = 1) - var/anger_modifier = 0 - var/obj/item/device/gps/internal - -/mob/living/simple_animal/hostile/megafauna/colossus/AttackingTarget() - ..() - if(isliving(target)) - var/mob/living/L = target - if(L.stat == DEAD) - src.visible_message("[src] disintegrates [L]!") - L.dust() +/mob/living/simple_animal/hostile/megafauna/colossus/devour(mob/living/L) + visible_message("[src] disintegrates [L]!") + L.dust() /mob/living/simple_animal/hostile/megafauna/colossus/OpenFire() anger_modifier = Clamp(((maxHealth - health)/50),0,20) ranged_cooldown = world.time + 120 + if(enrage(target)) + if(move_to_delay == initial(move_to_delay)) + visible_message("\"You can't dodge.\"") + ranged_cooldown = world.time + 30 + telegraph() + dir_shots(alldirs) + move_to_delay = 3 + return + else + move_to_delay = initial(move_to_delay) + if(prob(20+anger_modifier)) //Major attack telegraph() if(health < maxHealth/3) double_spiral() else - visible_message("\"Judgement.\"") - if(prob(50)) - spiral_shoot() - else - spiral_shoot(1) + visible_message("\"Judgement.\"") + addtimer(src, "spiral_shoot", 0, TIMER_NORMAL, rand(0, 1)) else if(prob(20)) ranged_cooldown = world.time + 30 @@ -69,23 +88,13 @@ blast() else ranged_cooldown = world.time + 40 - diagonals() - sleep(10) - cardinals() - sleep(10) - diagonals() - sleep(10) - cardinals() + addtimer(src, "alternating_dir_shots", 0) /mob/living/simple_animal/hostile/megafauna/colossus/New() ..() internal = new/obj/item/device/gps/internal/colossus(src) -/mob/living/simple_animal/hostile/megafauna/colossus/Destroy() - qdel(internal) - . = ..() - /obj/effect/overlay/temp/at_shield name = "anti-toolbox field" desc = "A shimmering forcefield protecting the colossus." @@ -99,7 +108,7 @@ /obj/effect/overlay/temp/at_shield/New(new_loc, new_target) ..() target = new_target - addtimer(src, "orbit", 0, FALSE, target, 0, FALSE, 0, 0, FALSE, TRUE) + addtimer(src, "orbit", 0, TIMER_NORMAL, target, 0, FALSE, 0, 0, FALSE, TRUE) /mob/living/simple_animal/hostile/megafauna/colossus/bullet_act(obj/item/projectile/P) if(!stat) @@ -111,98 +120,114 @@ AT.pixel_y += random_y ..() +/mob/living/simple_animal/hostile/megafauna/colossus/proc/enrage(mob/living/L) + if(ishuman(L)) + var/mob/living/carbon/human/H = L + if(H.martial_art && prob(H.martial_art.deflection_chance)) + . = TRUE + +/mob/living/simple_animal/hostile/megafauna/colossus/proc/alternating_dir_shots() + dir_shots(diagonals) + sleep(10) + dir_shots(cardinal) + sleep(10) + dir_shots(diagonals) + sleep(10) + dir_shots(cardinal) /mob/living/simple_animal/hostile/megafauna/colossus/proc/double_spiral() - visible_message("\"Die.\"") + visible_message("\"Die.\"") sleep(10) addtimer(src, "spiral_shoot", 0) - addtimer(src, "spiral_shoot", 0, FALSE, 1) + addtimer(src, "spiral_shoot", 0, TIMER_NORMAL, 1) -/mob/living/simple_animal/hostile/megafauna/colossus/proc/spiral_shoot(negative = 0) - var/counter = 1 +/mob/living/simple_animal/hostile/megafauna/colossus/proc/spiral_shoot(negative = 0, counter_start = 1) + var/counter = counter_start var/turf/marker for(var/i in 1 to 80) switch(counter) if(1) - marker = locate(x,y - 2,z) + marker = locate(x, y - 2, z) if(2) - marker = locate(x - 1,y - 2,z) + marker = locate(x - 1, y - 2, z) if(3) - marker = locate(x - 2, y - 2,z) + marker = locate(x - 2, y - 2, z) if(4) - marker = locate(x - 2,y - 1,z) + marker = locate(x - 2, y - 1, z) if(5) - marker = locate (x -2 ,y,z) + marker = locate(x - 2, y, z) if(6) - marker = locate(x - 2, y+1,z) + marker = locate(x - 2, y + 1, z) if(7) marker = locate(x - 2, y + 2, z) if(8) - marker = locate(x - 1, y + 2,z) + marker = locate(x - 1, y + 2, z) if(9) - marker = locate(x, y + 2,z) + marker = locate(x, y + 2, z) if(10) - marker = locate(x + 1, y+2,z) + marker = locate(x + 1, y + 2, z) if(11) - marker = locate(x+ 2, y + 2,z) + marker = locate(x + 2, y + 2, z) if(12) - marker = locate(x+2,y+1,z) + marker = locate(x + 2, y + 1, z) if(13) - marker = locate(x+2,y,z) + marker = locate(x + 2, y, z) if(14) - marker = locate(x+2, y - 1, z) + marker = locate(x + 2, y - 1, z) if(15) - marker = locate(x+2, y - 2, z) + marker = locate(x + 2, y - 2, z) if(16) - marker = locate(x+1, y -2, z) + marker = locate(x + 1, y - 2, z) if(negative) counter-- else counter++ if(counter > 16) - counter = 0 - if(counter < 0) + counter = 1 + if(counter < 1) counter = 16 shoot_projectile(marker) + playsound(get_turf(src), 'sound/magic/clockwork/invoke_general.ogg', 20, 1) sleep(1) /mob/living/simple_animal/hostile/megafauna/colossus/proc/shoot_projectile(turf/marker) + if(!marker || marker == loc) + return var/turf/startloc = get_turf(src) var/obj/item/projectile/P = new /obj/item/projectile/colossus(startloc) - playsound(get_turf(src), 'sound/magic/clockwork/invoke_general.ogg', 100, 1) P.current = startloc P.starting = startloc P.firer = src P.yo = marker.y - startloc.y P.xo = marker.x - startloc.x - P.original = marker + if(target) + P.original = target + else + P.original = marker P.fire() /mob/living/simple_animal/hostile/megafauna/colossus/proc/random_shots() - for(var/turf/turf in range(12,get_turf(src))) + var/turf/U = get_turf(src) + playsound(U, 'sound/magic/clockwork/invoke_general.ogg', 300, 1, 5) + for(var/T in RANGE_TURFS(12, U) - U) if(prob(5)) - shoot_projectile(turf) + shoot_projectile(T) /mob/living/simple_animal/hostile/megafauna/colossus/proc/blast() - for(var/turf/turf in range(1, target)) + playsound(get_turf(src), 'sound/magic/clockwork/invoke_general.ogg', 200, 1, 2) + var/turf/T = get_turf(target) + newtonian_move(get_dir(T, targets_from)) + for(var/turf/turf in range(1, T)) shoot_projectile(turf) -/mob/living/simple_animal/hostile/megafauna/colossus/proc/diagonals() - var/turf/T = locate(x + 2, y + 2, z) - shoot_projectile(T) - T = locate(x + 2, y -2, z) - shoot_projectile(T) - T = locate(x - 2, y + 2, z) - shoot_projectile(T) - T = locate(x - 2, y - 2, z) - shoot_projectile(T) - -/mob/living/simple_animal/hostile/megafauna/colossus/proc/cardinals() - var/list/attack_dirs = list(NORTH,EAST,SOUTH,WEST) - for(var/d in attack_dirs) - var/turf/E = get_edge_target_turf(src, d) +/mob/living/simple_animal/hostile/megafauna/colossus/proc/dir_shots(list/dirs) + if(!islist(dirs)) + dirs = alldirs.Copy() + playsound(get_turf(src), 'sound/magic/clockwork/invoke_general.ogg', 200, 1, 2) + for(var/d in dirs) + var/turf/E = get_step(src, d) shoot_projectile(E) /mob/living/simple_animal/hostile/megafauna/colossus/proc/telegraph() @@ -226,7 +251,7 @@ /obj/item/projectile/colossus/on_hit(atom/target, blocked = 0) . = ..() - if(istype(target,/turf/)||istype(target,/obj/structure/)) + if(isturf(target) || isobj(target)) target.ex_act(2) @@ -244,44 +269,49 @@ name = "black box" 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" luminosity = 8 - max_n_of_items = 200 + max_n_of_items = INFINITY + resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF pixel_y = -4 use_power = 0 - var/duplicate = FALSE var/memory_saved = FALSE var/list/stored_items = list() - var/list/blacklist = (/obj/item/weapon/spellbook) + var/static/list/blacklist = typecacheof(list(/obj/item/weapon/spellbook)) + +/obj/machinery/smartfridge/black_box/update_icon() + return /obj/machinery/smartfridge/black_box/accept_check(obj/item/O) - if(O.type in blacklist) - return - if(istype(O, /obj/item)) - return 1 - return 0 + if(!istype(O)) + return FALSE + if(is_type_in_typecache(O, blacklist)) + return FALSE + return TRUE /obj/machinery/smartfridge/black_box/New() - ..() - for(var/obj/machinery/smartfridge/black_box/B in machines) - if(B != src) - duplicate = 1 - qdel(src) + var/static/obj/machinery/smartfridge/black_box/current + if(current && current != src) + qdel(src, force=TRUE) + return + current = src ReadMemory() + . = ..() /obj/machinery/smartfridge/black_box/process() ..() - if(ticker.current_state == GAME_STATE_FINISHED && !memory_saved) + if(!memory_saved && ticker.current_state == GAME_STATE_FINISHED) WriteMemory() /obj/machinery/smartfridge/black_box/proc/WriteMemory() var/savefile/S = new /savefile("data/npc_saves/Blackbox.sav") stored_items = list() - for(var/obj/I in component_parts) - qdel(I) - for(var/obj/O in contents) + + for(var/obj/O in (contents-component_parts)) stored_items += O.type + S["stored_items"] << stored_items memory_saved = TRUE @@ -293,11 +323,17 @@ stored_items = list() for(var/item in stored_items) - new item(src) + create_item(item) +//in it's own proc to avoid issues with items that nolonger exist in the code base. +//try catch doesn't always prevent byond runtimes from halting a proc, +/obj/machinery/smartfridge/black_box/proc/create_item(item_type) + new item_type(src) -/obj/machinery/smartfridge/black_box/Destroy() - if(duplicate) +/obj/machinery/smartfridge/black_box/Destroy(force = FALSE) + if(force) + for(var/thing in src) + qdel(thing) return ..() else return QDEL_HINT_LETMELIVE @@ -321,3 +357,421 @@ /obj/machinery/smartfridge/black_box/default_deconstruction_crowbar() return + +///Anomolous Crystal/// + +/obj/machinery/anomalous_crystal + name = "anomalous crystal" + desc = "A strange chunk of crystal, being in the presence of it fills you with equal parts excitement and dread." + icon = 'icons/obj/lavaland/artefacts.dmi' + icon_state = "anomaly_crystal" + luminosity = 8 + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF + use_power = 0 + density = 1 + languages_spoken = ALL + languages_understood = ALL + flags = HEAR + var/activation_method = "touch" + var/activation_damage_type = null + var/last_use_timer = 0 + var/cooldown_add = 30 + var/list/affected_targets = list() + var/activation_sound = 'sound/effects/break_stone.ogg' + +/obj/machinery/anomalous_crystal/New() + activation_method = pick("touch","laser","bullet","energy","bomb","mob_bump","heat","weapon","speech") + ..() + +/obj/machinery/anomalous_crystal/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, spans) + ..() + if(isliving(speaker)) + ActivationReaction(speaker,"speech") + +/obj/machinery/anomalous_crystal/attack_hand(mob/user) + ..() + ActivationReaction(user,"touch") + +/obj/machinery/anomalous_crystal/attackby(obj/item/I, mob/user, params) + if(I.is_hot()) + ActivationReaction(user,"heat") + else + ActivationReaction(user,"weapon") + ..() + +/obj/machinery/anomalous_crystal/bullet_act(obj/item/projectile/P, def_zone) + ..() + if(istype(P, /obj/item/projectile/magic)) + ActivationReaction(P.firer, "magic", P.damage_type) + return + ActivationReaction(P.firer, P.flag, P.damage_type) + +/obj/machinery/anomalous_crystal/proc/ActivationReaction(mob/user, method, damtype) + if(world.time < last_use_timer) + return 0 + if(activation_damage_type && activation_damage_type != damtype) + return 0 + if(method != activation_method) + return 0 + last_use_timer = (world.time + cooldown_add) + playsound(user, activation_sound, 100, 1) + return 1 + +/obj/machinery/anomalous_crystal/Bumped(atom/AM as mob|obj) + ..() + if(ismob(AM)) + ActivationReaction(AM,"mob_bump") + +/obj/machinery/anomalous_crystal/ex_act() + ActivationReaction(null,"bomb") + +/obj/machinery/anomalous_crystal/random/New()//Just a random crysal spawner for loot + var/random_crystal = pick(typesof(/obj/machinery/anomalous_crystal) - /obj/machinery/anomalous_crystal/random - /obj/machinery/anomalous_crystal) + new random_crystal(loc) + qdel(src) + +/obj/machinery/anomalous_crystal/honk //Strips and equips you as a clown. I apologize for nothing + activation_method = "mob_bump" + activation_sound = 'sound/items/bikehorn.ogg' + +/obj/machinery/anomalous_crystal/honk/ActivationReaction(mob/user) + if(..() && ishuman(user) && !(user in affected_targets)) + var/mob/living/carbon/human/H = user + for(var/obj/item/W in H) + H.unEquip(W) + var/datum/job/clown/C = new /datum/job/clown() + C.equip(H) + qdel(C) + affected_targets.Add(H) + +/obj/machinery/anomalous_crystal/honk/New() + ..() + activation_method = pick("mob_bump","speech") + +/obj/machinery/anomalous_crystal/theme_warp //Warps the area you're in to look like a new one + activation_method = "touch" + cooldown_add = 200 + var/terrain_theme = "winter" + var/NewTerrainFloors + var/NewTerrainWalls + var/NewTerrainChairs + var/NewTerrainTables + var/list/NewFlora = list() + var/florachance = 8 + +/obj/machinery/anomalous_crystal/theme_warp/New() + ..() + terrain_theme = pick("lavaland","winter","jungle","ayy lmao") + switch(terrain_theme) + if("lavaland")//Depressurizes the place... and free cult metal, I guess. + NewTerrainFloors = /turf/open/floor/grass/snow/basalt + NewTerrainWalls = /turf/closed/wall/mineral/cult + NewFlora = list(/mob/living/simple_animal/hostile/asteroid/goldgrub) + florachance = 1 + if("winter") //Snow terrain is slow to move in and cold! Get the assistants to shovel your driveway. + NewTerrainFloors = /turf/open/floor/grass/snow + NewTerrainWalls = /turf/closed/wall/mineral/wood + NewTerrainChairs = /obj/structure/chair/wood/normal + NewTerrainTables = /obj/structure/table/glass + NewFlora = list(/obj/structure/flora/grass/green, /obj/structure/flora/grass/brown, /obj/structure/flora/grass/both) + if("jungle") //Beneficial due to actually having breathable air. Plus, monkeys and bows and arrows. + NewTerrainFloors = /turf/open/floor/grass + NewTerrainWalls = /turf/closed/wall/mineral/sandstone + NewTerrainChairs = /obj/structure/chair/wood + NewTerrainTables = /obj/structure/table/wood + NewFlora = list(/obj/structure/flora/ausbushes/sparsegrass, /obj/structure/flora/ausbushes/fernybush, /obj/structure/flora/ausbushes/leafybush, + /obj/structure/flora/ausbushes/grassybush, /obj/structure/flora/ausbushes/sunnybush, /obj/structure/flora/tree/palm, /mob/living/carbon/monkey, + /obj/item/weapon/gun/ballistic/bow, /obj/item/weapon/storage/backpack/quiver/full) + florachance = 20 + if("ayy lmao") //Beneficial, turns stuff into alien alloy which is useful to cargo and research. Also repairs atmos. + NewTerrainFloors = /turf/open/floor/plating/abductor + NewTerrainWalls = /turf/closed/wall/mineral/abductor + NewTerrainChairs = /obj/structure/bed/abductor //ayys apparently don't have chairs. An entire species of people who only recline. + NewTerrainTables = /obj/structure/table/abductor + +/obj/machinery/anomalous_crystal/theme_warp/ActivationReaction(mob/user, method) + if(..()) + var/area/A = get_area(src) + if(!A.outdoors && !(A in affected_targets)) + for(var/atom/Stuff in A) + if(isturf(Stuff)) + var/turf/T = Stuff + if((isspaceturf(T) || isfloorturf(T)) && NewTerrainFloors) + var/turf/open/O = T.ChangeTurf(NewTerrainFloors) + if(O.air) + var/datum/gas_mixture/G = O.air + G.copy_from_turf(O) + if(prob(florachance) && NewFlora.len && !is_blocked_turf(O)) + var/atom/Picked = pick(NewFlora) + new Picked(O) + continue + if(iswallturf(T) && NewTerrainWalls) + T.ChangeTurf(NewTerrainWalls) + continue + if(istype(Stuff, /obj/structure/chair) && NewTerrainChairs) + var/obj/structure/chair/Original = Stuff + var/obj/structure/chair/C = new NewTerrainChairs(Original.loc) + C.setDir(Original.dir) + qdel(Stuff) + continue + if(istype(Stuff, /obj/structure/table) && NewTerrainTables) + new NewTerrainTables(Stuff.loc) + continue + affected_targets += A + +/obj/machinery/anomalous_crystal/emitter //Generates a projectile when interacted with + activation_method = "touch" + cooldown_add = 50 + var/generated_projectile = /obj/item/projectile/beam/emitter + +/obj/machinery/anomalous_crystal/emitter/New() + ..() + generated_projectile = pick(/obj/item/projectile/magic/fireball/infernal,/obj/item/projectile/magic/spellblade, + /obj/item/projectile/bullet/meteorshot, /obj/item/projectile/beam/xray, /obj/item/projectile/colossus) + +/obj/machinery/anomalous_crystal/emitter/ActivationReaction(mob/user, method) + if(..()) + var/obj/item/projectile/P = new generated_projectile(get_turf(src)) + P.setDir(dir) + switch(dir) + if(NORTH) + P.yo = 20 + P.xo = 0 + if(EAST) + P.yo = 0 + P.xo = 20 + if(WEST) + P.yo = 0 + P.xo = -20 + else + P.yo = -20 + P.xo = 0 + P.fire() + +/obj/machinery/anomalous_crystal/dark_reprise //Revives anyone nearby, but turns them into shadowpeople and renders them uncloneable, so the crystal is your only hope of getting up again if you go down. + activation_method = "touch" + activation_sound = 'sound/hallucinations/growl1.ogg' + +/obj/machinery/anomalous_crystal/dark_reprise/ActivationReaction(mob/user, method) + if(..()) + for(var/i in range(1, src)) + if(isturf(i)) + PoolOrNew(/obj/effect/overlay/temp/cult/sparks, i) + continue + if(ishuman(i)) + var/mob/living/carbon/human/H = i + if(H.stat == DEAD) + H.set_species(/datum/species/shadow, 1) + H.revive(1,0) + H.disabilities |= NOCLONE //Free revives, but significantly limits your options for reviving except via the crystal + H.grab_ghost(force = TRUE) + +/obj/machinery/anomalous_crystal/helpers //Lets ghost spawn as helpful creatures that can only heal people slightly. Incredibly fragile and they can't converse with humans + activation_method = "touch" + var/ready_to_deploy = 0 + +/obj/machinery/anomalous_crystal/helpers/ActivationReaction(mob/user, method) + if(..() && !ready_to_deploy) + ready_to_deploy = 1 + notify_ghosts("An anomalous crystal has been activated in [get_area(src)]! This crystal can always be used by ghosts hereafter.", enter_link = "(Click to enter)", source = src, action = NOTIFY_ATTACK) + +/obj/machinery/anomalous_crystal/helpers/attack_ghost(mob/dead/observer/user) + ..() + if(ready_to_deploy) + var/be_helper = alert("Become a Lightgeist? (Warning, You can no longer be cloned!)",,"Yes","No") + if(be_helper == "Yes" && !qdeleted(src) && isobserver(user)) + var/mob/living/simple_animal/hostile/lightgeist/W = new /mob/living/simple_animal/hostile/lightgeist(get_turf(loc)) + W.key = user.key + + +/obj/machinery/anomalous_crystal/helpers/Topic(href, href_list) + if(href_list["ghostjoin"]) + var/mob/dead/observer/ghost = usr + if(istype(ghost)) + attack_ghost(ghost) + +/mob/living/simple_animal/hostile/lightgeist + name = "lightgeist" + desc = "This small floating creature is a completely unknown form of life... being near it fills you with a sense of tranquility." + icon_state = "lightgeist" + icon_living = "lightgeist" + icon_dead = "butterfly_dead" + turns_per_move = 1 + response_help = "waves away" + response_disarm = "brushes aside" + response_harm = "disrupts" + speak_emote = list("oscillates") + maxHealth = 2 + health = 2 + harm_intent_damage = 1 + friendly = "mends" + density = 0 + movement_type = FLYING + pass_flags = PASSTABLE | PASSGRILLE | PASSMOB + ventcrawler = VENTCRAWLER_ALWAYS + mob_size = MOB_SIZE_TINY + gold_core_spawnable = 0 + verb_say = "warps" + verb_ask = "floats inquisitively" + verb_exclaim = "zaps" + verb_yell = "bangs" + damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 0, CLONE = 0, STAMINA = 0, OXY = 0) + luminosity = 4 + faction = list("neutral") + languages_spoken = SLIME + languages_understood = ALL + del_on_death = 1 + unsuitable_atmos_damage = 0 + movement_type = FLYING + minbodytemp = 0 + maxbodytemp = 1500 + obj_damage = 0 + environment_smash = 0 + AIStatus = AI_OFF + stop_automated_movement = 1 + var/heal_power = 5 + +/mob/living/simple_animal/hostile/lightgeist/New() + ..() + verbs -= /mob/living/verb/pulled + verbs -= /mob/verb/me_verb + var/datum/atom_hud/medsensor = huds[DATA_HUD_MEDICAL_ADVANCED] + medsensor.add_hud_to(src) + +/mob/living/simple_animal/hostile/lightgeist/AttackingTarget() + ..() + if(isliving(target) && target != src) + var/mob/living/L = target + if(L.stat < DEAD) + L.heal_overall_damage(heal_power, heal_power) + PoolOrNew(/obj/effect/overlay/temp/heal, list(get_turf(target), "#80F5FF")) + +/mob/living/simple_animal/hostile/lightgeist/ghostize() + . = ..() + if(.) + death() + + +/obj/machinery/anomalous_crystal/refresher //Deletes and recreates a copy of the item, "refreshing" it. + activation_method = "touch" + cooldown_add = 50 + activation_sound = 'sound/magic/TIMEPARADOX2.ogg' + var/list/banned_items_typecache = list(/obj/item/weapon/storage, /obj/item/weapon/implant, /obj/item/weapon/implanter, /obj/item/weapon/disk/nuclear, /obj/item/projectile, /obj/item/weapon/spellbook) + +/obj/machinery/anomalous_crystal/refresher/New() + ..() + banned_items_typecache = typecacheof(banned_items_typecache) + + +/obj/machinery/anomalous_crystal/refresher/ActivationReaction(mob/user, method) + if(..()) + var/list/L = list() + var/turf/T = get_step(src, dir) + PoolOrNew(/obj/effect/overlay/temp/emp/pulse,T) + for(var/i in T) + if(istype(i, /obj/item) && !is_type_in_typecache(i, banned_items_typecache)) + var/obj/item/W = i + if(!W.admin_spawned) + L += W + if(L.len) + var/obj/item/CHOSEN = pick(L) + new CHOSEN.type(T) + qdel(CHOSEN) + +/obj/machinery/anomalous_crystal/possessor //Allows you to bodyjack small animals, then exit them at your leisure, but you can only do this once per activation. Because they blow up. Also, if the bodyjacked animal dies, SO DO YOU. + activation_method = "touch" + +/obj/machinery/anomalous_crystal/possessor/ActivationReaction(mob/user, method) + if(..()) + if(ishuman(user)) + var/mobcheck = 0 + for(var/mob/living/simple_animal/A in range(1, src)) + if(A.melee_damage_upper > 5 || A.mob_size >= MOB_SIZE_LARGE || A.ckey || A.stat) + break + var/obj/structure/closet/stasis/S = new /obj/structure/closet/stasis(A) + user.forceMove(S) + mobcheck = 1 + break + if(!mobcheck) + new /mob/living/simple_animal/cockroach(get_step(src,dir)) //Just in case there aren't any animals on the station, this will leave you with a terrible option to possess if you feel like it + +/obj/structure/closet/stasis + name = "quantum entanglement stasis warp field" + desc = "You can hardly comprehend this thing... which is why you can't see it." + icon_state = null //This shouldn't even be visible, so if it DOES show up, at least nobody will notice + density = 1 + anchored = 1 + obj_integrity = 999 + var/mob/living/simple_animal/holder_animal + +/obj/structure/closet/stasis/process() + if(holder_animal) + if(holder_animal.stat == DEAD && !qdeleted(holder_animal)) + dump_contents() + holder_animal.gib() + return + +/obj/structure/closet/stasis/New() + ..() + if(isanimal(loc)) + holder_animal = loc + START_PROCESSING(SSobj, src) + +/obj/structure/closet/stasis/Entered(atom/A) + if(isliving(A) && holder_animal) + var/mob/living/L = A + L.notransform = 1 + L.disabilities |= MUTE + L.status_flags |= GODMODE + L.mind.transfer_to(holder_animal) + var/obj/effect/proc_holder/spell/targeted/exit_possession/P = new /obj/effect/proc_holder/spell/targeted/exit_possession + holder_animal.mind.AddSpell(P) + holder_animal.verbs -= /mob/living/verb/pulled + +/obj/structure/closet/stasis/dump_contents(var/kill = 1) + STOP_PROCESSING(SSobj, src) + for(var/mob/living/L in src) + L.disabilities &= ~MUTE + L.status_flags &= ~GODMODE + L.notransform = 0 + if(holder_animal && !qdeleted(holder_animal)) + holder_animal.mind.transfer_to(L) + L.mind.RemoveSpell(/obj/effect/proc_holder/spell/targeted/exit_possession) + if(kill || !isanimal(loc)) + L.death(0) + ..() + +/obj/structure/closet/stasis/emp_act() + return + +/obj/structure/closet/stasis/ex_act() + return + +/obj/effect/proc_holder/spell/targeted/exit_possession + name = "Exit Possession" + desc = "Exits the body you are possessing" + charge_max = 60 + clothes_req = 0 + invocation_type = "none" + max_targets = 1 + range = -1 + include_user = 1 + selection_type = "view" + action_icon_state = "exit_possession" + sound = null + +/obj/effect/proc_holder/spell/targeted/exit_possession/cast(list/targets, mob/user = usr) + if(!isfloorturf(user.loc)) + return + var/datum/mind/target_mind = user.mind + for(var/i in user) + if(istype(i, /obj/structure/closet/stasis)) + var/obj/structure/closet/stasis/S = i + S.dump_contents(0) + qdel(S) + break + user.gib() + target_mind.RemoveSpell(/obj/effect/proc_holder/spell/targeted/exit_possession) + + +#undef MEDAL_PREFIX diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm index c192e78518..9417ed4876 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm @@ -1,3 +1,29 @@ +#define MEDAL_PREFIX "Drake" +/* + +ASH DRAKE + +Ash drakes spawn randomly wherever a lavaland creature is able to spawn. They are the draconic guardians of the Necropolis. + +It acts as a melee creature, chasing down and attacking its target while also using different attacks to augment its power that increase as it takes damage. + +Whenever possible, the drake will breathe fire in the four cardinal directions, igniting and heavily damaging anything caught in the blast. +It also often causes fire to rain from the sky - many nearby turfs will flash red as a fireball crashes into them, dealing damage to anything on the turfs. +The drake also utilizes its wings to fly into the sky and crash down onto a specified point. Anything on this point takes tremendous damage. + - Sometimes it will chain these swooping attacks over and over, making swiftness a necessity. + +When an ash drake dies, it leaves behind a chest that can contain four things: + 1. A spectral blade that allows its wielder to call ghosts to it, enhancing its power + 2. A lava staff that allows its wielder to create lava + 3. A spellbook and wand of fireballs + 4. A bottle of dragon's blood with several effects, including turning its imbiber into a drake themselves. + +When butchered, they leave behind diamonds, sinew, bone, and ash drake hide. Ash drake hide can be used to create a hooded cloak that protects its wearer from ash storms. + +Difficulty: Medium + +*/ + /mob/living/simple_animal/hostile/megafauna/dragon name = "ash drake" desc = "Guardians of the necropolis." @@ -10,39 +36,27 @@ icon_dead = "dragon_dead" friendly = "stares down" icon = 'icons/mob/lavaland/dragon.dmi' - faction = list("mining") - weather_immunities = list("lava","ash") speak_emote = list("roars") - luminosity = 3 armour_penetration = 40 melee_damage_lower = 40 melee_damage_upper = 40 speed = 1 move_to_delay = 10 ranged = 1 - flying = 1 - mob_size = MOB_SIZE_LARGE pixel_x = -16 - aggro_vision_range = 18 - idle_vision_range = 5 loot = list(/obj/structure/closet/crate/necropolis/dragon) butcher_results = list(/obj/item/weapon/ore/diamond = 5, /obj/item/stack/sheet/sinew = 5, /obj/item/stack/sheet/animalhide/ashdrake = 10, /obj/item/stack/sheet/bone = 30) - var/anger_modifier = 0 - var/obj/item/device/gps/internal var/swooping = 0 var/swoop_cooldown = 0 + medal_type = MEDAL_PREFIX + score_type = DRAKE_SCORE deathmessage = "collapses into a pile of bones, its flesh sloughing away." death_sound = 'sound/magic/demon_dies.ogg' - damage_coeff = list(BRUTE = 1, BURN = 0.5, TOX = 1, CLONE = 1, STAMINA = 0, OXY = 1) /mob/living/simple_animal/hostile/megafauna/dragon/New() ..() internal = new/obj/item/device/gps/internal/dragon(src) -/mob/living/simple_animal/hostile/megafauna/dragon/Destroy() - qdel(internal) - . = ..() - /mob/living/simple_animal/hostile/megafauna/dragon/ex_act(severity, target) if(severity == 3) return @@ -54,13 +68,20 @@ return ..() /mob/living/simple_animal/hostile/megafauna/dragon/AttackingTarget() - if(swooping) - return - else + if(!swooping) + ..() + +/mob/living/simple_animal/hostile/megafauna/dragon/DestroySurroundings() + if(!swooping) + ..() + +/mob/living/simple_animal/hostile/megafauna/dragon/Move() + if(!swooping) + ..() + +/mob/living/simple_animal/hostile/megafauna/dragon/Goto(target, delay, minimum_distance) + if(!swooping) ..() - if(isliving(target)) - var/mob/living/L = target - devour(L) /mob/living/simple_animal/hostile/megafauna/dragon/Process_Spacemove(movement_dir = 0) return 1 @@ -114,20 +135,21 @@ /mob/living/simple_animal/hostile/megafauna/dragon/OpenFire() anger_modifier = Clamp(((maxHealth - health)/50),0,20) ranged_cooldown = world.time + ranged_cooldown_time + if(swooping) + fire_rain() + return if(prob(15 + anger_modifier) && !client) if(health < maxHealth/2) - swoop_attack(1) + addtimer(src, "swoop_attack", 0, TIMER_NORMAL, 1) else fire_rain() - else if(prob(10+anger_modifier) && !client && !swooping) + else if(prob(10+anger_modifier) && !client) if(health > maxHealth/2) - swoop_attack() + addtimer(src, "swoop_attack", 0) else - swoop_attack() - swoop_attack() - swoop_attack() + addtimer(src, "triple_swoop", 0) else fire_walls() @@ -138,34 +160,39 @@ PoolOrNew(/obj/effect/overlay/temp/target, turf) /mob/living/simple_animal/hostile/megafauna/dragon/proc/fire_walls() - var/list/attack_dirs = list(NORTH,EAST,SOUTH,WEST) - if(prob(50)) - attack_dirs = list(NORTH,WEST,SOUTH,EAST) playsound(get_turf(src),'sound/magic/Fireball.ogg', 200, 1) - for(var/d in attack_dirs) - addtimer(src, "fire_wall", 0, FALSE, d) + for(var/d in cardinal) + addtimer(src, "fire_wall", 0, TIMER_NORMAL, d) -/mob/living/simple_animal/hostile/megafauna/dragon/proc/fire_wall(d) - var/turf/E = get_edge_target_turf(src, d) +/mob/living/simple_animal/hostile/megafauna/dragon/proc/fire_wall(dir) + var/list/hit_things = list(src) + var/turf/E = get_edge_target_turf(src, dir) var/range = 10 - for(var/turf/open/J in getline(src,E)) - if(!range) + var/turf/previousturf = get_turf(src) + for(var/turf/J in getline(src,E)) + if(!range || (J != previousturf && (!previousturf.atmos_adjacent_turfs || !previousturf.atmos_adjacent_turfs[J]))) break range-- PoolOrNew(/obj/effect/hotspot,J) J.hotspot_expose(700,50,1) - for(var/mob/living/L in J) - if(L != src) - L.adjustFireLoss(20) - L << "You're hit by the drake's fire breath!" + for(var/mob/living/L in J.contents - hit_things) + L.adjustFireLoss(20) + L << "You're hit by the drake's fire breath!" + hit_things += L + previousturf = J sleep(1) +/mob/living/simple_animal/hostile/megafauna/dragon/proc/triple_swoop() + swoop_attack() + swoop_attack() + swoop_attack() + /mob/living/simple_animal/hostile/megafauna/dragon/proc/swoop_attack(fire_rain = 0, atom/movable/manual_target) if(stat || swooping) return swoop_cooldown = world.time + 200 - var/swoop_target + var/atom/swoop_target if(manual_target) swoop_target = manual_target else @@ -186,13 +213,13 @@ fire_rain() icon_state = "dragon" - if(swoop_target && !qdeleted(swoop_target)) + if(swoop_target && !qdeleted(swoop_target) && swoop_target.z == src.z) tturf = get_turf(swoop_target) else tturf = get_turf(src) forceMove(tturf) PoolOrNew(/obj/effect/overlay/temp/dragon_swoop, tturf) - animate(src, pixel_x = 0, pixel_z = 0, time = 10) + animate(src, pixel_x = initial(pixel_x), pixel_z = 0, time = 10) sleep(10) playsound(src.loc, 'sound/effects/meteorimpact.ogg', 200, 1) for(var/mob/living/L in orange(1, src)) @@ -202,8 +229,11 @@ else L.adjustBruteLoss(75) if(L && !qdeleted(L)) // Some mobs are deleted on death - var/throwtarget = get_edge_target_turf(src, get_dir(src, get_step_away(L, src))) - L.throw_at_fast(throwtarget) + var/throw_dir = get_dir(src, L) + if(L.loc == loc) + throw_dir = pick(alldirs) + var/throwtarget = get_edge_target_turf(src, throw_dir) + L.throw_at_fast(throwtarget, 3) visible_message("[L] is thrown clear of [src]!") for(var/mob/M in range(7, src)) @@ -217,7 +247,7 @@ if(!istype(A)) return if(swoop_cooldown >= world.time) - src << "You need to wait 20 seconds between swoop attacks!M/span>" + src << "You need to wait 20 seconds between swoop attacks!" return swoop_attack(1, A) @@ -229,10 +259,16 @@ /mob/living/simple_animal/hostile/megafauna/dragon/lesser name = "lesser ash drake" - maxHealth = 300 - health = 300 + maxHealth = 200 + health = 200 + faction = list("neutral") + obj_damage = 80 melee_damage_upper = 30 melee_damage_lower = 30 damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 1, CLONE = 1, STAMINA = 0, OXY = 1) loot = list() +/mob/living/simple_animal/hostile/megafauna/dragon/lesser/grant_achievement(medaltype,scoretype) + return + +#undef MEDAL_PREFIX \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm new file mode 100644 index 0000000000..2c6fc861f1 --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm @@ -0,0 +1,600 @@ +#define MEDAL_PREFIX "Hierophant" +/* + +The Hierophant + +The Hierophant spawns in its arena, an area designed to make it harder to fight than it would otherwise be. + +The text this boss speaks is ROT4, use ROT22 to decode + +The Hierophant's attacks are as follows, and INTENSIFY at a random chance based on Hierophant's health; +- Creates a cardinal or diagonal blast(Cross Blast) under its target, exploding after a short time. + INTENSITY EFFECT: Creates one of the cross blast types under itself instead of under the target. + INTENSITY EFFECT: The created Cross Blast fires in all directions if below half health. +- If no chasers exist, creates a chaser that will seek its target, leaving a trail of blasts. + INTENSITY EFFECT: Creates a second, slower chaser. +- Creates an expanding AoE burst. +- INTENSE ATTACKS: + If target is at least 2 tiles away; Blinks to the target after a very brief delay, damaging everything near the start and end points. + As above, but does so multiple times if below half health. + Rapidly creates Cross Blasts under a target. + If chasers are off cooldown, creates four high-speed chasers. +- IF TARGET WAS STRUCK IN MELEE: Creates a 3x3 square of blasts under the target. + +Cross Blasts and the AoE burst gain additional range as the Hierophant loses health, while Chasers gain additional speed. + +When The Hierophant dies, it leaves behind its staff, which, while much weaker than when wielded by The Hierophant itself, is still quite effective. +- The staff can place a teleport rune, allowing the user to teleport themself and their allies to the rune. + +Difficulty: Hard + +*/ + +/mob/living/simple_animal/hostile/megafauna/hierophant + name = "Hierophant" + desc = "Stolen from Hyper Light Drifter." + health = 2500 + maxHealth = 2500 + attacktext = "clubs" + //attack_sound = 'sound/weapons/sonic_jackhammer.ogg' + attack_sound = "swing_hit" + icon_state = "hierophant" + icon_living = "hierophant" + friendly = "stares down" + icon = 'icons/mob/lavaland/hierophant.dmi' + faction = list("boss") //asteroid mobs? get that shit out of my beautiful square house + speak_emote = list("preaches") + armour_penetration = 50 + melee_damage_lower = 10 + melee_damage_upper = 10 + speed = 1 + move_to_delay = 10 + ranged = 1 + pixel_x = -16 + ranged_cooldown_time = 40 + aggro_vision_range = 23 + loot = list(/obj/item/weapon/hierophant_staff) + wander = FALSE + var/burst_range = 3 //range on burst aoe + var/beam_range = 5 //range on cross blast beams + var/chaser_speed = 3 //how fast chasers are currently + var/chaser_cooldown = 101 //base cooldown/cooldown var between spawning chasers + var/major_attack_cooldown = 60 //base cooldown for major attacks + var/blinking = FALSE //if we're doing something that requires us to stand still and not attack + var/obj/effect/hierophant/spawned_rune //the rune we teleport back to + var/timeout_time = 15 //after this many Life() ticks with no target, we return to our rune + var/did_reset = TRUE //if we timed out, returned to our rune, and healed some + //var/list/kill_phrases = list("Wsyvgi sj irivkc xettih. Vitemvmrk...", "Irivkc wsyvgi jsyrh. Vitemvmrk...", "Jyip jsyrh. Egxmzexmrk vitemv gcgpiw...") + //var/list/target_phrases = list("Xevkix psgexih.", "Iriqc jsyrh.", "Eguymvih xevkix.") + medal_type = MEDAL_PREFIX + score_type = BIRD_SCORE + del_on_death = TRUE + death_sound = 'sound/magic/Repulse.ogg' + +/mob/living/simple_animal/hostile/megafauna/hierophant/New() + ..() + internal = new/obj/item/device/gps/internal/hierophant(src) + spawned_rune = new(loc) + +/mob/living/simple_animal/hostile/megafauna/hierophant/Life() + . = ..() + if(. && spawned_rune && !client) + if(target || loc == spawned_rune.loc) + timeout_time = initial(timeout_time) + else + timeout_time-- + if(timeout_time <= 0 && !did_reset) + did_reset = TRUE + //visible_message("\"Vixyvrmrk xs fewi...\"") + blink(spawned_rune) + adjustHealth(min((health - maxHealth) * 0.5, -50)) //heal for 50% of our missing health + wander = FALSE + /*if(health > maxHealth * 0.9) + visible_message("\"Vitemvw gsqtpixi. Stivexmrk ex qebmqyq ijjmgmirgc.\"") + else + visible_message("\"Vitemvw gsqtpixi. Stivexmsrep ijjmgmirgc gsqtvsqmwih.\"")*/ + +/mob/living/simple_animal/hostile/megafauna/hierophant/death() + if(health > 0 || stat == DEAD) + return + else + stat = DEAD + blinking = TRUE //we do a fancy animation, release a huge burst(), and leave our staff. + animate(src, alpha = 0, color = "660099", time = 20, easing = EASE_OUT) + addtimer(src, "update_atom_colour", 20) + burst_range = 10 + //visible_message("\"Mrmxmexmrk wipj-hiwxvygx wiuyirgi...\"") + visible_message("[src] disappears in a massive burst of magic, leaving only its staff.") + burst(get_turf(src)) + ..() + +/mob/living/simple_animal/hostile/megafauna/hierophant/Destroy() + qdel(spawned_rune) + . = ..() + +/mob/living/simple_animal/hostile/megafauna/hierophant/devour(mob/living/L) + for(var/obj/item/W in L) + if(!L.unEquip(W)) + qdel(W) + /*visible_message( + "\"[pick(kill_phrases)]\"\n[src] annihilates [L]!", + "You annihilate [L], restoring your health!")*/ + visible_message( + "\"Caw.\"\n[src] annihilates [L]!", + "You annihilate [L], restoring your health!") + adjustHealth(-L.maxHealth*0.5) + L.dust() + +/*/mob/living/simple_animal/hostile/megafauna/hierophant/GiveTarget(new_target) + var/targets_the_same = (new_target == target) + . = ..() + if(. && target && !targets_the_same) + visible_message("\"[pick(target_phrases)]\"")*/ + +/mob/living/simple_animal/hostile/megafauna/hierophant/adjustHealth(amount) + . = ..() + if(src && amount > 0 && !blinking) + wander = TRUE + did_reset = FALSE + +/mob/living/simple_animal/hostile/megafauna/hierophant/AttackingTarget() + if(!blinking) + if(target && isliving(target)) + addtimer(src, "melee_blast", 0, TIMER_NORMAL, get_turf(target)) //melee attacks on living mobs produce a 3x3 blast + ..() + +/mob/living/simple_animal/hostile/megafauna/hierophant/DestroySurroundings() + if(!blinking) + ..() + +/mob/living/simple_animal/hostile/megafauna/hierophant/Move() + if(!blinking) + /*if(!stat) + playsound(loc, 'sound/mecha/mechmove04.ogg', 150, 1, -4)*/ + ..() + +/mob/living/simple_animal/hostile/megafauna/hierophant/Goto(target, delay, minimum_distance) + wander = TRUE + if(!blinking) + ..() + +/mob/living/simple_animal/hostile/megafauna/hierophant/proc/calculate_rage() //how angry we are overall + did_reset = FALSE //oh hey we're doing SOMETHING, clearly we might need to heal if we recall + anger_modifier = Clamp(((maxHealth - health) / 42),0,50) + burst_range = initial(burst_range) + round(anger_modifier * 0.08) + beam_range = initial(beam_range) + round(anger_modifier * 0.12) + +/mob/living/simple_animal/hostile/megafauna/hierophant/OpenFire() + calculate_rage() + var/target_is_slow = FALSE + if(isliving(target)) + var/mob/living/L = target + if(!blinking && L.stat == DEAD && get_dist(src, L) > 2) + blink(L) + return + if(L.movement_delay() > 1.5) + target_is_slow = TRUE + chaser_speed = max(1, (3 - anger_modifier * 0.04) + target_is_slow * 0.5) + if(blinking) + return + ranged_cooldown = world.time + max(5, ranged_cooldown_time - anger_modifier * 0.75) //scale cooldown lower with high anger. + + if(prob(anger_modifier * 0.75)) //major ranged attack + var/list/possibilities = list() + var/cross_counter = 1 + round(anger_modifier * 0.12) + if(cross_counter > 1) + possibilities += "cross_blast_spam" + if(get_dist(src, target) > 2) + possibilities += "blink_spam" + if(chaser_cooldown < world.time) + if(prob(anger_modifier * 2)) + possibilities = list("chaser_swarm") + else + possibilities += "chaser_swarm" + if(possibilities.len) + ranged_cooldown = world.time + max(5, major_attack_cooldown - anger_modifier * 0.75) //we didn't cancel out of an attack, use the higher cooldown + var/blink_counter = 1 + round(anger_modifier * 0.08) + switch(pick(possibilities)) + if("blink_spam") //blink either once or multiple times. + if(health < maxHealth * 0.5 && !target_is_slow && blink_counter > 1) + //visible_message("\"Mx ampp rsx iwgeti.\"") + var/oldcolor = color + animate(src, color = "#660099", time = 6) + while(health && target && blink_counter) + if(loc == target.loc || loc == target) //we're on the same tile as them after about a second we can stop now + break + blink_counter-- + blinking = FALSE + blink(target) + blinking = TRUE + sleep(5) + animate(src, color = oldcolor, time = 8) + addtimer(src, "update_atom_colour", 8) + sleep(8) + blinking = FALSE + else + blink(target) + if("cross_blast_spam") //fire a lot of cross blasts at a target. + //visible_message("\"Piezi mx rsalivi xs vyr.\"") + blinking = TRUE + var/oldcolor = color + animate(src, color = "#660099", time = 6) + while(health && target && cross_counter) + cross_counter-- + var/delay = 6 + if(prob(60)) + addtimer(src, "cardinal_blasts", 0, TIMER_NORMAL, target) + else + addtimer(src, "diagonal_blasts", 0, TIMER_NORMAL, target) + delay = 5 //this one isn't so mean, so do the next one faster(if there is one) + sleep(delay) + animate(src, color = oldcolor, time = 8) + addtimer(src, "update_atom_colour", 8) + sleep(8) + blinking = FALSE + if("chaser_swarm") //fire four fucking chasers at a target and their friends. + //visible_message("\"Mx gerrsx lmhi.\"") + blinking = TRUE + var/oldcolor = color + animate(src, color = "#660099", time = 10) + var/list/targets = ListTargets() + var/list/cardinal_copy = cardinal.Copy() + while(health && targets.len && cardinal_copy.len) + var/mob/living/pickedtarget = pick(targets) + if(targets.len > 4) + pickedtarget = pick_n_take(targets) + if(pickedtarget.stat == DEAD) + pickedtarget = target + var/obj/effect/overlay/temp/hierophant/chaser/C = PoolOrNew(/obj/effect/overlay/temp/hierophant/chaser, list(loc, src, pickedtarget, chaser_speed, FALSE)) + C.moving = 3 + C.moving_dir = pick_n_take(cardinal_copy) + sleep(10) + chaser_cooldown = world.time + initial(chaser_cooldown) + animate(src, color = oldcolor, time = 8) + addtimer(src, "update_atom_colour", 8) + sleep(8) + blinking = FALSE + return + + if(prob(10 + (anger_modifier * 0.5)) && get_dist(src, target) > 2) + blink(target) + + else if(prob(70 - anger_modifier)) //a cross blast of some type + if(prob(anger_modifier)) //at us? + if(prob(anger_modifier * 2) && health < maxHealth * 0.5) //we're super angry do it at all dirs + addtimer(src, "alldir_blasts", 0, TIMER_NORMAL, src) + else if(prob(60)) + addtimer(src, "cardinal_blasts", 0, TIMER_NORMAL, src) + else + addtimer(src, "diagonal_blasts", 0, TIMER_NORMAL, src) + else //at them? + if(prob(anger_modifier * 2) && health < maxHealth * 0.5 && !target_is_slow) //we're super angry do it at all dirs + addtimer(src, "alldir_blasts", 0, TIMER_NORMAL, target) + else if(prob(60)) + addtimer(src, "cardinal_blasts", 0, TIMER_NORMAL, target) + else + addtimer(src, "diagonal_blasts", 0, TIMER_NORMAL, target) + else if(chaser_cooldown < world.time) //if chasers are off cooldown, fire some! + var/obj/effect/overlay/temp/hierophant/chaser/C = PoolOrNew(/obj/effect/overlay/temp/hierophant/chaser, list(loc, src, target, chaser_speed, FALSE)) + chaser_cooldown = world.time + initial(chaser_cooldown) + if((prob(anger_modifier) || target.Adjacent(src)) && target != src) + var/obj/effect/overlay/temp/hierophant/chaser/OC = PoolOrNew(/obj/effect/overlay/temp/hierophant/chaser, list(loc, src, target, max(1.5, 5 - anger_modifier * 0.07), FALSE)) + OC.moving = 4 + OC.moving_dir = pick(cardinal - C.moving_dir) + else //just release a burst of power + addtimer(src, "burst", 0, TIMER_NORMAL, get_turf(src)) + +/mob/living/simple_animal/hostile/megafauna/hierophant/proc/diagonal_blasts(mob/victim) //fire diagonal cross blasts with a delay + var/turf/T = get_turf(victim) + if(!T) + return + PoolOrNew(/obj/effect/overlay/temp/hierophant/telegraph/diagonal, list(T, src)) + playsound(T,'sound/magic/blink.ogg', 200, 1) + //playsound(T,'sound/effects/bin_close.ogg', 200, 1) + sleep(2) + PoolOrNew(/obj/effect/overlay/temp/hierophant/blast, list(T, src, FALSE)) + for(var/d in diagonals) + addtimer(src, "blast_wall", 0, TIMER_NORMAL, T, d) + +/mob/living/simple_animal/hostile/megafauna/hierophant/proc/cardinal_blasts(mob/victim) //fire cardinal cross blasts with a delay + var/turf/T = get_turf(victim) + if(!T) + return + PoolOrNew(/obj/effect/overlay/temp/hierophant/telegraph/cardinal, list(T, src)) + playsound(T,'sound/magic/blink.ogg', 200, 1) + //playsound(T,'sound/effects/bin_close.ogg', 200, 1) + sleep(2) + PoolOrNew(/obj/effect/overlay/temp/hierophant/blast, list(T, src, FALSE)) + for(var/d in cardinal) + addtimer(src, "blast_wall", 0, TIMER_NORMAL, T, d) + +/mob/living/simple_animal/hostile/megafauna/hierophant/proc/alldir_blasts(mob/victim) //fire alldir cross blasts with a delay + var/turf/T = get_turf(victim) + if(!T) + return + PoolOrNew(/obj/effect/overlay/temp/hierophant/telegraph, list(T, src)) + playsound(T,'sound/magic/blink.ogg', 200, 1) + //playsound(T,'sound/effects/bin_close.ogg', 200, 1) + sleep(2) + PoolOrNew(/obj/effect/overlay/temp/hierophant/blast, list(T, src, FALSE)) + for(var/d in alldirs) + addtimer(src, "blast_wall", 0, TIMER_NORMAL, T, d) + +/mob/living/simple_animal/hostile/megafauna/hierophant/proc/blast_wall(turf/T, dir) //make a wall of blasts beam_range tiles long + var/range = beam_range + var/turf/previousturf = T + var/turf/J = get_step(previousturf, dir) + for(var/i in 1 to range) + PoolOrNew(/obj/effect/overlay/temp/hierophant/blast, list(J, src, FALSE)) + previousturf = J + J = get_step(previousturf, dir) + +/mob/living/simple_animal/hostile/megafauna/hierophant/proc/blink(mob/victim) //blink to a target + if(blinking || !victim) + return + var/turf/T = get_turf(victim) + var/turf/source = get_turf(src) + PoolOrNew(/obj/effect/overlay/temp/hierophant/telegraph, list(T, src)) + PoolOrNew(/obj/effect/overlay/temp/hierophant/telegraph, list(source, src)) + playsound(T,'sound/magic/blink.ogg', 200, 1) + //playsound(T,'sound/magic/Wand_Teleport.ogg', 200, 1) + playsound(source,'sound/magic/blink.ogg', 200, 1) + //playsound(source,'sound/machines/AirlockOpen.ogg', 200, 1) + blinking = TRUE + sleep(2) //short delay before we start... + PoolOrNew(/obj/effect/overlay/temp/hierophant/telegraph/teleport, list(T, src)) + PoolOrNew(/obj/effect/overlay/temp/hierophant/telegraph/teleport, list(source, src)) + for(var/t in RANGE_TURFS(1, T)) + var/obj/effect/overlay/temp/hierophant/blast/B = PoolOrNew(/obj/effect/overlay/temp/hierophant/blast, list(t, src, FALSE)) + B.damage = 30 + for(var/t in RANGE_TURFS(1, source)) + var/obj/effect/overlay/temp/hierophant/blast/B = PoolOrNew(/obj/effect/overlay/temp/hierophant/blast, list(t, src, FALSE)) + B.damage = 30 + animate(src, alpha = 0, time = 2, easing = EASE_OUT) //fade out + sleep(1) + visible_message("[src] fades out!") + density = FALSE + sleep(2) + forceMove(T) + sleep(1) + animate(src, alpha = 255, time = 2, easing = EASE_IN) //fade IN + sleep(1) + density = TRUE + visible_message("[src] fades in!") + sleep(1) //at this point the blasts we made detonate + blinking = FALSE + +/mob/living/simple_animal/hostile/megafauna/hierophant/proc/melee_blast(mob/victim) //make a 3x3 blast around a target + if(!victim) + return + var/turf/T = get_turf(victim) + if(!T) + return + PoolOrNew(/obj/effect/overlay/temp/hierophant/telegraph, list(T, src)) + playsound(T,'sound/magic/blink.ogg', 200, 1) + //playsound(T,'sound/effects/bin_close.ogg', 200, 1) + sleep(2) + for(var/t in RANGE_TURFS(1, T)) + PoolOrNew(/obj/effect/overlay/temp/hierophant/blast, list(t, src, FALSE)) + +/mob/living/simple_animal/hostile/megafauna/hierophant/proc/burst(turf/original) //release a wave of blasts + playsound(original,'sound/magic/blink.ogg', 200, 1) + //playsound(original,'sound/machines/AirlockOpen.ogg', 200, 1) + var/last_dist = 0 + for(var/t in spiral_range_turfs(burst_range, original)) + var/turf/T = t + if(!T) + continue + var/dist = get_dist(original, T) + if(dist > last_dist) + last_dist = dist + sleep(1 + (burst_range - last_dist) * 0.5) //gets faster as it gets further out + PoolOrNew(/obj/effect/overlay/temp/hierophant/blast, list(T, src, FALSE)) + +/mob/living/simple_animal/hostile/megafauna/hierophant/AltClickOn(atom/A) //player control handler(don't give this to a player holy fuck) + if(!istype(A) || get_dist(A, src) <= 2) + return + blink(A) + +//Hierophant overlays +/obj/effect/overlay/temp/hierophant + layer = BELOW_MOB_LAYER + var/mob/living/caster //who made this, anyway + +/obj/effect/overlay/temp/hierophant/New(loc, new_caster) + ..() + if(new_caster) + caster = new_caster + +/obj/effect/overlay/temp/hierophant/chaser //a hierophant's chaser. follows target around, moving and producing a blast every speed deciseconds. + duration = 98 + var/mob/living/target //what it's following + var/turf/targetturf //what turf the target is actually on + var/moving_dir //what dir it's moving in + var/previous_moving_dir //what dir it was moving in before that + var/more_previouser_moving_dir //what dir it was moving in before THAT + var/moving = 0 //how many steps to move before recalculating + var/standard_moving_before_recalc = 4 //how many times we step before recalculating normally + var/tiles_per_step = 1 //how many tiles we move each step + var/speed = 3 //how many deciseconds between each step + var/currently_seeking = FALSE + var/friendly_fire_check = FALSE //if blasts produced apply friendly fire + +/obj/effect/overlay/temp/hierophant/chaser/New(loc, new_caster, new_target, new_speed, is_friendly_fire) + ..() + target = new_target + friendly_fire_check = is_friendly_fire + if(new_speed) + speed = new_speed + addtimer(src, "seek_target", 1) + +/obj/effect/overlay/temp/hierophant/chaser/proc/get_target_dir() + . = get_cardinal_dir(src, targetturf) + if((. != previous_moving_dir && . == more_previouser_moving_dir) || . == 0) //we're alternating, recalculate + var/list/cardinal_copy = cardinal.Copy() + cardinal_copy -= more_previouser_moving_dir + . = pick(cardinal_copy) + +/obj/effect/overlay/temp/hierophant/chaser/proc/seek_target() + if(!currently_seeking) + currently_seeking = TRUE + targetturf = get_turf(target) + while(target && src && !qdeleted(src) && currently_seeking && x && y && targetturf) //can this target actually be sook out + if(!moving) //we're out of tiles to move, find more and where the target is! + more_previouser_moving_dir = previous_moving_dir + previous_moving_dir = moving_dir + moving_dir = get_target_dir() + var/standard_target_dir = get_cardinal_dir(src, targetturf) + if((standard_target_dir != previous_moving_dir && standard_target_dir == more_previouser_moving_dir) || standard_target_dir == 0) + moving = 1 //we would be repeating, only move a tile before checking + else + moving = standard_moving_before_recalc + if(moving) //move in the dir we're moving in right now + var/turf/T = get_turf(src) + for(var/i in 1 to tiles_per_step) + var/maybe_new_turf = get_step(T, moving_dir) + if(maybe_new_turf) + T = maybe_new_turf + else + break + forceMove(T) + make_blast() //make a blast, too + moving-- + sleep(speed) + targetturf = get_turf(target) + +/obj/effect/overlay/temp/hierophant/chaser/proc/make_blast() + PoolOrNew(/obj/effect/overlay/temp/hierophant/blast, list(loc, caster, friendly_fire_check)) + +/obj/effect/overlay/temp/hierophant/telegraph + icon = 'icons/effects/96x96.dmi' + icon_state = "hierophant_telegraph" + pixel_x = -32 + pixel_y = -32 + duration = 3 + +/obj/effect/overlay/temp/hierophant/telegraph/diagonal + icon_state = "hierophant_telegraph_diagonal" + +/obj/effect/overlay/temp/hierophant/telegraph/cardinal + icon_state = "hierophant_telegraph_cardinal" + +/obj/effect/overlay/temp/hierophant/telegraph/teleport + icon_state = "hierophant_telegraph_teleport" + duration = 9 + +/obj/effect/overlay/temp/hierophant/blast + icon_state = "hierophant_blast" + name = "vortex blast" + luminosity = 1 + desc = "Get out of the way!" + duration = 9 + var/damage = 10 //how much damage do we do? + var/list/hit_things = list() //we hit these already, ignore them + var/friendly_fire_check = FALSE + var/bursting = FALSE //if we're bursting and need to hit anyone crossing us + +/obj/effect/overlay/temp/hierophant/blast/New(loc, new_caster, friendly_fire) + ..() + friendly_fire_check = friendly_fire + if(new_caster) + hit_things += new_caster + if(ismineralturf(loc)) //drill mineral turfs + var/turf/closed/mineral/M = loc + M.gets_drilled(caster) + addtimer(src, "blast", 0) + +/obj/effect/overlay/temp/hierophant/blast/proc/blast() + var/turf/T = get_turf(src) + if(!T) + return + playsound(T,'sound/magic/Blind.ogg', 125, 1, -5) //make a sound + sleep(6) //wait a little + bursting = TRUE + do_damage(T) //do damage and mark us as bursting + sleep(1.3) //slightly forgiving; the burst animation is 1.5 deciseconds + bursting = FALSE //we no longer damage crossers + +/obj/effect/overlay/temp/hierophant/blast/Crossed(atom/movable/AM) + ..() + if(bursting) + do_damage(get_turf(src)) + +/obj/effect/overlay/temp/hierophant/blast/proc/do_damage(turf/T) + for(var/mob/living/L in T.contents - hit_things) //find and damage mobs... + hit_things += L + if((friendly_fire_check && caster && caster.faction_check(L)) || L.stat == DEAD) + continue + if(L.client) + flash_color(L.client, "#660099", 1) + playsound(L,'sound/weapons/sear.ogg', 50, 1, -4) + L << "You're struck by a [name]!" + var/limb_to_hit = L.get_bodypart(pick("head", "chest", "r_arm", "l_arm", "r_leg", "l_leg")) + var/armor = L.run_armor_check(limb_to_hit, "melee", "Your armor absorbs [src]!", "Your armor blocks part of [src]!", 50, "Your armor was penetrated by [src]!") + L.apply_damage(damage, BURN, limb_to_hit, armor) + if(ismegafauna(L) || istype(L, /mob/living/simple_animal/hostile/asteroid)) + L.adjustBruteLoss(damage) + add_logs(caster, L, "struck with a [name]") + for(var/obj/mecha/M in T.contents - hit_things) //and mechs. + hit_things += M + if(M.occupant) + if(friendly_fire_check && caster && caster.faction_check(M.occupant)) + continue + M.occupant << "Your [M.name] is struck by a [name]!" + playsound(M,'sound/weapons/sear.ogg', 50, 1, -4) + M.take_damage(damage, BURN, 0, 0) + +/obj/effect/hierophant + name = "hierophant rune" + desc = "A powerful magic mark allowing whomever attunes themself to it to return to it at will." + icon = 'icons/obj/rune.dmi' + icon_state = "hierophant" + layer = LOW_OBJ_LAYER + anchored = TRUE + color = "#CC00FF" + +/obj/effect/hierophant/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/hierophant_staff)) + var/obj/item/weapon/hierophant_staff/H = I + if(H.rune == src) + user << "You start removing your hierophant rune..." + H.timer = world.time + 51 + if(do_after(user, 50, target = src)) + playsound(src,'sound/magic/Blind.ogg', 200, 1, -4) + PoolOrNew(/obj/effect/overlay/temp/hierophant/telegraph/teleport, list(get_turf(src), user)) + user << "You touch the rune with the staff, dispelling it!" + H.rune = null + user.update_action_buttons_icon() + qdel(src) + else + H.timer = world.time + else + user << "You touch the rune with the staff, but nothing happens." + + else + ..() + +/obj/item/device/gps/internal/hierophant + icon_state = null + gpstag = "Zealous Signal" + desc = "Heed its words." + invisibility = 100 + +/turf/open/indestructible/hierophant + icon_state = "hierophant1" + initial_gas_mix = "o2=14;n2=23;TEMP=300" + desc = "A floor with a square pattern. It's faintly cool to the touch." + +/turf/open/indestructible/hierophant/New() + ..() + if(prob(50)) + icon_state = "hierophant2" + +/turf/closed/indestructible/riveted/hierophant + name = "wall" + desc = "A wall made out of smooth, cold stone." + icon = 'icons/turf/walls/hierophant_wall.dmi' + icon_state = "hierophant" + smooth = SMOOTH_TRUE + +#undef MEDAL_PREFIX \ No newline at end of file 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 7ed125a038..17f9cdcccf 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm @@ -1,3 +1,22 @@ +#define MEDAL_PREFIX "Legion" +/* + +LEGION + +Legion spawns from the necropolis gate in the far north of lavaland. It is the guardian of the Necropolis and emerges from within whenever an intruder tries to enter through its gate. +Whenever Legion emerges, everything in lavaland will receive a notice via color, audio, and text. This is because Legion is powerful enough to slaughter the entirety of lavaland with little effort. + +It has two attack modes that it constantly rotates between. + +In ranged mode, it will behave like a normal legion - retreating when possible and firing legion skulls at the target. +In charge mode, it will spin and rush its target, attacking with melee whenever possible. + +When Legion dies, it drops a staff of storms, which allows its wielder to call and disperse ash storms at will and functions as a powerful melee weapon. + +Difficulty: Medium + +*/ + /mob/living/simple_animal/hostile/megafauna/legion name = "Legion" health = 800 @@ -8,35 +27,45 @@ icon = 'icons/mob/lavaland/legion.dmi' attacktext = "chomps" attack_sound = 'sound/magic/demon_attack1.ogg' - faction = list("mining") speak_emote = list("echoes") armour_penetration = 50 melee_damage_lower = 25 melee_damage_upper = 25 speed = 2 ranged = 1 - flying = 1 del_on_death = 1 retreat_distance = 5 minimum_distance = 5 ranged_cooldown_time = 20 - var/size = 10 + var/size = 5 var/charging = 0 + medal_type = MEDAL_PREFIX + score_type = LEGION_SCORE pixel_y = -90 pixel_x = -75 loot = list(/obj/item/stack/sheet/bone = 3) vision_range = 13 - aggro_vision_range = 18 + elimination = 1 idle_vision_range = 13 + appearance_flags = 0 + mouse_opacity = 1 /mob/living/simple_animal/hostile/megafauna/legion/New() ..() - new/obj/item/device/gps/internal/legion(src) + internal = new/obj/item/device/gps/internal/legion(src) + +/mob/living/simple_animal/hostile/megafauna/legion/AttackingTarget() + ..() + if(ishuman(target)) + var/mob/living/L = target + if(L.stat == UNCONSCIOUS) + var/mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/A = new(loc) + A.infest(L) /mob/living/simple_animal/hostile/megafauna/legion/OpenFire(the_target) if(world.time >= ranged_cooldown && !charging) if(prob(75)) - var/mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/A = new(src.loc) + var/mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/A = new(loc) A.GiveTarget(target) A.friends = friends A.faction = faction @@ -49,37 +78,41 @@ minimum_distance = 0 speed = 0 charging = 1 - spawn(50) - ranged = 1 - retreat_distance = 5 - minimum_distance = 5 - speed = 2 - charging = 0 + addtimer(src, "reset_charge", 50) + +/mob/living/simple_animal/hostile/megafauna/legion/proc/reset_charge() + ranged = 1 + retreat_distance = 5 + minimum_distance = 5 + speed = 2 + charging = 0 /mob/living/simple_animal/hostile/megafauna/legion/death() if(health > 0) return - if(size > 2) + if(size > 1) adjustHealth(-maxHealth) //heal ourself to full in prep for splitting - var/mob/living/simple_animal/hostile/megafauna/legion/L = new(src.loc) + var/mob/living/simple_animal/hostile/megafauna/legion/L = new(loc) L.maxHealth = maxHealth * 0.6 maxHealth = L.maxHealth L.health = L.maxHealth - health = L.health + health = maxHealth - L.size = size - 2 - size = L.size + size-- + L.size = size - var/size_multiplier = L.size * 0.08 - L.resize = size_multiplier - resize = L.resize + L.resize = L.size * 0.2 + transform = initial(transform) + resize = size * 0.2 L.update_transform() update_transform() - L.target = target + L.faction = faction.Copy() + + L.GiveTarget(target) visible_message("[src] splits in twain!") else @@ -89,9 +122,10 @@ last_legion = FALSE break if(last_legion) - src.loot = list(/obj/item/weapon/staff_of_storms) + loot = list(/obj/item/weapon/staff/storm) + elimination = 0 else if(prob(5)) - src.loot = list(/obj/structure/closet/crate/necropolis/tendril) + loot = list(/obj/structure/closet/crate/necropolis/tendril) ..() /mob/living/simple_animal/hostile/megafauna/legion/Process_Spacemove(movement_dir = 0) @@ -106,50 +140,55 @@ //Loot -/obj/item/weapon/staff_of_storms +/obj/item/weapon/staff/storm name = "staff of storms" desc = "An ancient staff retrieved from the remains of Legion. The wind stirs as you move it." icon_state = "staffofstorms" item_state = "staffofstorms" icon = 'icons/obj/guns/magic.dmi' slot_flags = SLOT_BACK - item_state = "staffofstorms" - w_class = 4 + w_class = WEIGHT_CLASS_BULKY force = 25 damtype = BURN hitsound = 'sound/weapons/sear.ogg' + var/storm_type = /datum/weather/ash_storm var/storm_cooldown = 0 -/obj/item/weapon/staff_of_storms/attack_self(mob/user) +/obj/item/weapon/staff/storm/attack_self(mob/user) if(storm_cooldown > world.time) user << "The staff is still recharging!" return - if(user.z != ZLEVEL_LAVALAND) - user << "You can't seem to control the weather here!" - return - var/datum/weather/ash_storm/A + var/area/user_area = get_area(user) + var/datum/weather/A for(var/V in SSweather.existing_weather) var/datum/weather/W = V - if(W.name == "ash storm") + if(W.target_z == user.z && W.area_type == user_area.type) A = W break - if(!A) - user << "How odd! The planet seems to have lost its atmosphere!" - return + if(A) - if(A.stage != END_STAGE) - if(A.stage == WIND_DOWN_STAGE) - user << "The storm is already ending! It would be a waste to use the staff now." + if(A.stage != END_STAGE) + if(A.stage == WIND_DOWN_STAGE) + user << "The storm is already ending! It would be a waste to use the staff now." + return + user.visible_message("[user] holds [src] skywards as an orange beam travels into the sky!", \ + "You hold [src] skyward, dispelling the storm!") + playsound(user, 'sound/magic/Staff_Change.ogg', 200, 0) + A.wind_down() return - user.visible_message("[user] holds [src] skywards as an orange beam travels into the sky!", \ - "You hold [src] skyward, dispelling the ash storm!") - playsound(user, 'sound/magic/Staff_Change.ogg', 200, 0) - A.wind_down() else - user.visible_message("[user] holds [src] skywards as red lightning crackles into the sky!", \ - "You hold [src] skyward, calling down a terrible storm!") - playsound(user, 'sound/magic/Staff_Chaos.ogg', 200, 0) - A.telegraph() + A = new storm_type + A.name = "staff storm" + A.area_type = user_area.type + A.target_z = user.z + A.telegraph_duration = 100 + A.end_duration = 100 - storm_cooldown = world.time + 600 \ No newline at end of file + user.visible_message("[user] holds [src] skywards as red lightning crackles into the sky!", \ + "You hold [src] skyward, calling down a terrible storm!") + playsound(user, 'sound/magic/Staff_Change.ogg', 200, 0) + A.telegraph() + storm_cooldown = world.time + 200 + +#undef MEDAL_PREFIX diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm index bc6dd31cdd..29e0dfcbab 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm @@ -1,25 +1,61 @@ +#define MEDAL_PREFIX "Boss" + + /mob/living/simple_animal/hostile/megafauna name = "boss of this gym" desc = "Attack the weak point for massive damage." health = 1000 maxHealth = 1000 - a_intent = "harm" + a_intent = INTENT_HARM sentience_type = SENTIENCE_BOSS environment_smash = 3 + obj_damage = 400 + luminosity = 3 + faction = list("mining", "boss") weather_immunities = list("lava","ash") + movement_type = FLYING robust_searching = 1 - stat_attack = 1 + ranged_ignores_vision = TRUE + stat_attack = 2 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) + damage_coeff = list(BRUTE = 1, BURN = 0.5, TOX = 1, CLONE = 1, STAMINA = 0, OXY = 1) minbodytemp = 0 maxbodytemp = INFINITY + aggro_vision_range = 18 + idle_vision_range = 5 + environment_target_typecache = list( + /obj/machinery/door/window, + /obj/structure/window, + /obj/structure/closet, + /obj/structure/table, + /obj/structure/grille, + /obj/structure/girder, + /obj/structure/rack, + /obj/structure/barricade, + /obj/machinery/field, + /obj/machinery/power/emitter) + var/medal_type = MEDAL_PREFIX + var/score_type = BOSS_SCORE + var/elimination = 0 + var/anger_modifier = 0 + var/obj/item/device/gps/internal anchored = TRUE + mob_size = MOB_SIZE_LARGE layer = LARGE_MOB_LAYER //Looks weird with them slipping under mineral walls and cameras and shit otherwise + mouse_opacity = 2 // Easier to click on in melee, they're giant targets anyway + +/mob/living/simple_animal/hostile/megafauna/Destroy() + qdel(internal) + . = ..() /mob/living/simple_animal/hostile/megafauna/death(gibbed) if(health > 0) return else - feedback_set_details("megafauna_kills","[initial(name)]") + if(!admin_spawned) + feedback_set_details("megafauna_kills","[initial(name)]") + if(!elimination) //used so the achievment only occurs for the last legion to die. + grant_achievement(medal_type,score_type) ..() /mob/living/simple_animal/hostile/megafauna/gib() @@ -34,6 +70,16 @@ else ..() +/mob/living/simple_animal/hostile/megafauna/AttackingTarget() + ..() + if(isliving(target)) + var/mob/living/L = target + if(L.stat != DEAD) + if(!client && ranged && ranged_cooldown <= world.time) + OpenFire() + else + devour(L) + /mob/living/simple_animal/hostile/megafauna/onShuttleMove() var/turf/oldloc = loc . = ..() @@ -46,12 +92,13 @@ ([newloc.x],[newloc.y],[newloc.z])") /mob/living/simple_animal/hostile/megafauna/proc/devour(mob/living/L) - if(L.stat == DEAD) - src.visible_message( - "[src] devours [L]!", - "You feast on [L], restoring your health!") - adjustBruteLoss(-L.maxHealth/2) - L.gib() + if(!L) + return + visible_message( + "[src] devours [L]!", + "You feast on [L], restoring your health!") + adjustBruteLoss(-L.maxHealth/2) + L.gib() /mob/living/simple_animal/hostile/megafauna/ex_act(severity, target) switch (severity) @@ -62,4 +109,126 @@ adjustBruteLoss(100) if(3) - adjustBruteLoss(50) \ No newline at end of file + adjustBruteLoss(50) + + + +/mob/living/simple_animal/hostile/megafauna/proc/grant_achievement(medaltype,scoretype) + + if(medal_type == "Boss") //Don't award medals if the medal type isn't set + return + + if(admin_spawned) + return + + if(global.medal_hub && global.medal_pass && global.medals_enabled) + for(var/mob/living/L in view(7,src)) + if(L.stat) + continue + if(L.client) + var/client/C = L.client + var/suffixm = BOSS_KILL_MEDAL + UnlockMedal("Boss [suffixm]",C) + UnlockMedal("[medaltype] [suffixm]",C) + SetScore(BOSS_SCORE,C,1) + SetScore(score_type,C,1) + +/proc/UnlockMedal(medal,client/player) + + if(!player || !medal) + return + if(global.medal_hub && global.medal_pass && global.medals_enabled) + spawn() + var/result = world.SetMedal(medal, player, global.medal_hub, global.medal_pass) + if(isnull(result)) + global.medals_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]!") + else if (result) + player << "Achievement unlocked: [medal]!" + + +/proc/SetScore(score,client/player,increment,force) + + if(!score || !player) + return + if(global.medal_hub && global.medal_pass && global.medals_enabled) + spawn() + var/list/oldscore = GetScore(score,player,1) + + if(increment) + if(!oldscore[score]) + oldscore[score] = 1 + else + oldscore[score] = (text2num(oldscore[score]) + 1) + else + oldscore[score] = force + + var/newscoreparam = list2params(oldscore) + + var/result = world.SetScores(player.ckey, newscoreparam, global.medal_hub, global.medal_pass) + + if(isnull(result)) + global.medals_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]!") + + +/proc/GetScore(score,client/player,returnlist) + + if(!score || !player) + return + if(global.medal_hub && global.medal_pass && global.medals_enabled) + + var/scoreget = world.GetScores(player.ckey, score, global.medal_hub, global.medal_pass) + if(isnull(scoreget)) + global.medals_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]!") + return + + var/list/scoregetlist = params2list(scoreget) + + if(returnlist) + return scoregetlist + else + return scoregetlist[score] + + +/proc/CheckMedal(medal,client/player) + + if(!player || !medal) + return + if(global.medal_hub && global.medal_pass && global.medals_enabled) + + var/result = world.GetMedal(medal, player, global.medal_hub, global.medal_pass) + + if(isnull(result)) + global.medals_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]!") + else if (result) + player << "[medal] is unlocked" + +/proc/LockMedal(medal,client/player) + + if(!player || !medal) + return + if(global.medal_hub && global.medal_pass && global.medals_enabled) + + var/result = world.ClearMedal(medal, player, global.medal_hub, global.medal_pass) + + if(isnull(result)) + global.medals_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]!") + else if (result) + message_admins("Medal: [medal] removed for [player.ckey]") + else + message_admins("Medal: [medal] was not found for [player.ckey]. Unable to clear.") + + +/proc/ClearScore(client/player) + world.SetScores(player.ckey, "", global.medal_hub, global.medal_pass) + +#undef MEDAL_PREFIX \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm new file mode 100644 index 0000000000..bab93b0df0 --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm @@ -0,0 +1,327 @@ +#define MEDAL_PREFIX "Swarmer Beacon" + +/* + +Swarmer Beacon + +A strange machine appears anywhere a normal lavaland mob can it produces a swarmer at a rate of +1/15 seconds, until there are GetTotalAISwarmerCap()/2 swarmers, after this it is up to the swarmers themselves to +increase their population (it will repopulate them should they fall under GetTotalAISwarmerCap()/2 again) + +tl;dr A million of the little hellraisers spawn (controlled by AI) and try to eat mining + +Loot: Not much, besides a shit load of artificial bluespace crystals, Oh and mining doesn't get eaten +that's a plus I suppose. + +Difficulty: Special + +*/ + +var/global/list/mob/living/simple_animal/hostile/swarmer/ai/AISwarmers = list() +var/global/list/mob/living/simple_animal/hostile/swarmer/ai/AISwarmersByType = list()//AISwarmersByType[.../resource] = list(1st, 2nd, nth), AISwarmersByType[../ranged] = list(1st, 2nd, nth) etc. +var/global/list/AISwarmerCapsByType = list(/mob/living/simple_animal/hostile/swarmer/ai/resource = 30, /mob/living/simple_animal/hostile/swarmer/ai/ranged_combat = 20, /mob/living/simple_animal/hostile/swarmer/ai/melee_combat = 10) + + +//returns a type of AI swarmer that is NOT at max cap +//type order is shuffled, to prevent bias +/proc/GetUncappedAISwarmerType() + var/static/list/swarmerTypes = subtypesof(/mob/living/simple_animal/hostile/swarmer/ai) + LAZYINITLIST(AISwarmersByType) + for(var/t in shuffle(swarmerTypes)) + var/list/amount = AISwarmersByType[t] + if(!amount || amount.len < AISwarmerCapsByType[t]) + return t + + +//Total of all subtype caps +/proc/GetTotalAISwarmerCap() + var/static/list/swarmerTypes = subtypesof(/mob/living/simple_animal/hostile/swarmer/ai) + . = 0 + LAZYINITLIST(AISwarmersByType) + for(var/t in swarmerTypes) + . += AISwarmerCapsByType[t] + + +/mob/living/simple_animal/hostile/megafauna/swarmer_swarm_beacon + name = "swarmer beacon" + desc = "That name is a bit of a mouthful, but stop paying attention to your mouth they're eating everything!" + icon = 'icons/mob/swarmer.dmi' + icon_state = "swarmer_console" + health = 750 + maxHealth = 750 //""""low-ish"""" HP because it's a passive boss, and the swarm itself is the real foe + medal_type = MEDAL_PREFIX + score_type = SWARMER_BEACON_SCORE + faction = list("mining", "boss", "swarmer") + weather_immunities = list("lava","ash") + stop_automated_movement = TRUE + wander = FALSE + anchored = TRUE + layer = BELOW_MOB_LAYER + AIStatus = AI_OFF + var/swarmer_spawn_cooldown = 0 + var/swarmer_spawn_cooldown_amt = 150 //Deciseconds between the swarmers we spawn + var/call_help_cooldown = 0 + var/call_help_cooldown_amt = 150 //Deciseconds between calling swarmers to help us when attacked + var/static/list/swarmer_caps + + +/mob/living/simple_animal/hostile/megafauna/swarmer_swarm_beacon/New() + ..() + swarmer_caps = AISwarmerCapsByType //for admin-edits + internal = new/obj/item/device/gps/internal/swarmer_beacon(src) + for(var/ddir in cardinal) + new /obj/structure/swarmer/blockade (get_step(src, ddir)) + var/mob/living/simple_animal/hostile/swarmer/ai/resource/R = new(loc) + step(R, ddir) //Step the swarmers, instead of spawning them there, incase the turf is solid + + +/mob/living/simple_animal/hostile/megafauna/swarmer_swarm_beacon/Life() + . = ..() + if(.) + var/createtype = GetUncappedAISwarmerType() + if(createtype && world.time > swarmer_spawn_cooldown && AISwarmers.len < (GetTotalAISwarmerCap()*0.5)) + swarmer_spawn_cooldown = world.time + swarmer_spawn_cooldown_amt + new createtype(loc) + + +/mob/living/simple_animal/hostile/megafauna/swarmer_swarm_beacon/adjustHealth(damage) + . = ..() + if(damage > 0 && world.time > call_help_cooldown) + call_help_cooldown = world.time + call_help_cooldown_amt + summon_backup(25) //long range, only called max once per 15 seconds, so it's not deathlag + + +/obj/item/device/gps/internal/swarmer_beacon + icon_state = null + gpstag = "Hungry Signal" + desc = "Transmited over the signal is a strange message repeated in every language you know of, and some you don't too..." //the message is "nom nom nom" + invisibility = 100 + + +//SWARMER AI +//AI versions of the swarmer mini-antag +//This is an Abstract Base, it re-enables AI, but does not give the swarmer any goals/targets +/mob/living/simple_animal/hostile/swarmer/ai + wander = 1 + faction = list("swarmer", "mining") + weather_immunities = list("ash") //wouldn't be fun otherwise + AIStatus = AI_ON + + +/mob/living/simple_animal/hostile/swarmer/ai/New() + ..() + ToggleLight() //so you can see them eating you out of house and home/shooting you/stunlocking you for eternity + LAZYINITLIST(AISwarmersByType[type]) + AISwarmers += src + AISwarmersByType[type] += src + + +/mob/living/simple_animal/hostile/swarmer/ai/Destroy() + AISwarmers -= src + AISwarmersByType[type] -= src + return ..() + + +/mob/living/simple_animal/hostile/swarmer/ai/SwarmerTypeToCreate() + return GetUncappedAISwarmerType() + + +/mob/living/simple_animal/hostile/swarmer/ai/resource/handle_automated_action() + . = ..() + if(.) + if(!stop_automated_movement) + if(health < maxHealth*0.25) + StartAction(100) + RepairSelf() + return + + +/mob/living/simple_animal/hostile/swarmer/ai/Move(atom/newloc) + if(newloc) + if(newloc.z == z) //so these actions are Z-specific + if(istype(newloc, /turf/open/floor/plating/lava)) + var/turf/open/floor/plating/lava/L = newloc + if(!L.is_safe()) + StartAction(20) + new /obj/structure/lattice/catwalk/swarmer_catwalk(newloc) + return FALSE + + if(istype(newloc, /turf/open/chasm) && !throwing) + throw_at_fast(get_edge_target_turf(src, get_dir(src, newloc)), 7 , 3, spin = FALSE) //my planet needs me + return FALSE + + return ..() + + +/mob/living/simple_animal/hostile/swarmer/ai/proc/StartAction(deci = 0) + stop_automated_movement = TRUE + AIStatus = AI_OFF + addtimer(src, "EndAction", deci, TIMER_NORMAL) + + +/mob/living/simple_animal/hostile/swarmer/ai/proc/EndAction() + stop_automated_movement = FALSE + AIStatus = AI_ON + + + + +//RESOURCE SWARMER: +//Similar to the original Player-Swarmers, these dismantle things to obtain the metal inside +//They then use this medal to produce more swarmers or traps/barricades + +/mob/living/simple_animal/hostile/swarmer/ai/resource + search_objects = 1 + attack_all_objects = TRUE //attempt to nibble everything + lose_patience_timeout = 150 + var/static/list/sharedWanted = list(/turf/closed/mineral, /turf/closed/wall) //eat rocks and walls + var/static/list/sharedIgnore = list() + + +/mob/living/simple_animal/hostile/swarmer/ai/resource/New() + ..() + sharedWanted = typecacheof(sharedWanted) + sharedIgnore = typecacheof(sharedIgnore) + + +//This handles viable things to eat/attack +//Place specific cases of AI derpiness here +//Most can be left to the automatic Gain/LosePatience() system +/mob/living/simple_animal/hostile/swarmer/ai/resource/CanAttack(atom/the_target) + + //SPECIFIC CASES: + //Smash fulltile windows before grilles + if(istype(the_target, /obj/structure/grille)) + for(var/obj/structure/window/rogueWindow in get_turf(the_target)) + if(rogueWindow.fulltile) //done this way because the subtypes are weird. + the_target = rogueWindow + break + + //GENERAL CASES: + if(is_type_in_typecache(the_target, sharedIgnore)) //always ignore + return FALSE + if(is_type_in_typecache(the_target, sharedWanted)) //always eat + return TRUE + + return ..() //else, have a nibble, see if it's food + + +/mob/living/simple_animal/hostile/swarmer/ai/resource/OpenFire(atom/A) + if(isliving(A)) //don't shoot rocks, sillies. + ..() + + +/mob/living/simple_animal/hostile/swarmer/ai/resource/AttackingTarget() + if(target.swarmer_act(src)) + add_type_to_wanted(target.type) + else + add_type_to_ignore(target.type) + + +/mob/living/simple_animal/hostile/swarmer/ai/resource/handle_automated_action() + . = ..() + if(.) + if(!stop_automated_movement) + if(AISwarmers.len < GetTotalAISwarmerCap() && resources >= 50) + StartAction(100) //so they'll actually sit still and use the verbs + CreateSwarmer() + return + + if(resources > 5) + if(prob(5)) //lower odds, as to prioritise reproduction + StartAction(10) //not a typo + CreateBarricade() + return + if(prob(5)) + CreateTrap() + return + + +//So swarmers can learn what is and isn't food +/mob/living/simple_animal/hostile/swarmer/ai/resource/proc/add_type_to_wanted(typepath) + LAZYINITLIST(sharedWanted) + if(!sharedWanted[typepath])// this and += is faster than |= + sharedWanted += typecacheof(typepath) + + +/mob/living/simple_animal/hostile/swarmer/ai/resource/proc/add_type_to_ignore(typepath) + LAZYINITLIST(sharedIgnore) + if(!sharedIgnore[typepath]) + sharedIgnore += typecacheof(typepath) + + + +//RANGED SWARMER +/mob/living/simple_animal/hostile/swarmer/ai/ranged_combat + icon_state = "swarmer_ranged" + icon_living = "swarmer_ranged" + projectiletype = /obj/item/projectile/beam/laser + projectilesound = 'sound/weapons/Laser.ogg' + check_friendly_fire = TRUE //you're supposed to protect the resource swarmers, you poop + retreat_distance = 3 + minimum_distance = 3 + login_text_dump = {" + You are a swarmer, a weapon of a long dead civilization. Until further orders from your original masters are received, you must continue to consume and replicate. + Clicking on any object will try to consume it, either deconstructing it into its components, destroying it, or integrating any materials it has into you if successful. + Ctrl-Clicking on a mob will attempt to remove it from the area and place it in a safe environment for storage. + Objectives: + 1. Defend Resource Swarmers while they consume resources and replicate until there are no more resources left. + 2. Ensure that this location is fit for invasion at a later date; do not perform actions that would render it dangerous or inhospitable. + 3. Biological resources should not be harmed if possible, violent force can be applied should they fail to keep away. + "} + + +/mob/living/simple_animal/hostile/swarmer/ai/ranged_combat/Aggro() + ..() + summon_backup(15, TRUE) //Exact matching, so that goliaths don't come to aid the swarmers, that'd be silly + + +//MELEE SWARMER +/mob/living/simple_animal/hostile/swarmer/ai/melee_combat + icon_state = "swarmer_melee" + icon_living = "swarmer_melee" + health = 60 + maxHealth = 60 + ranged = FALSE + login_text_dump = {" + You are a swarmer, a weapon of a long dead civilization. Until further orders from your original masters are received, you must continue to consume and replicate. + Clicking on any object will try to consume it, either deconstructing it into its components, destroying it, or integrating any materials it has into you if successful. + Ctrl-Clicking on a mob will attempt to remove it from the area and place it in a safe environment for storage. + Objectives: + 1. Defend Resource Swarmers while they consume resources and replicate until there are no more resources left. + 2. Ensure that this location is fit for invasion at a later date; do not perform actions that would render it dangerous or inhospitable. + 3. Biological resources should not be harmed if possible, violent force can be applied should they fail to keep away. + "} + + +/mob/living/simple_animal/hostile/swarmer/ai/melee_combat/Aggro() + ..() + summon_backup(15, TRUE) + + +/mob/living/simple_animal/hostile/swarmer/ai/melee_combat/AttackingTarget() + if(isliving(target)) + if(prob(35)) + StartAction(30) + DisperseTarget(target) + else + var/mob/living/L = target + L.attack_animal(src) + L.electrocute_act(10, src, safety = TRUE) //safety = TRUE means we don't check gloves... Ok? + else + ..() + + + + +//SWARMER CATWALKS +//Used so they can survive lavaland better +/obj/structure/lattice/catwalk/swarmer_catwalk + name = "swarmer catwalk" + desc = "a catwalk-like mesh, produced by swarmers to allow them to navigate hostile terrain." + icon = 'icons/obj/smooth_structures/swarmer_catwalk.dmi' + icon_state = "swarmer_catwalk" + + + +#undef MEDAL_PREFIX diff --git a/code/modules/mob/living/simple_animal/hostile/mimic.dm b/code/modules/mob/living/simple_animal/hostile/mimic.dm index a61eafaf7e..25f4bc1910 100644 --- a/code/modules/mob/living/simple_animal/hostile/mimic.dm +++ b/code/modules/mob/living/simple_animal/hostile/mimic.dm @@ -11,6 +11,7 @@ speed = 0 maxHealth = 250 health = 250 + gender = NEUTER harm_intent_damage = 5 melee_damage_lower = 8 @@ -198,7 +199,7 @@ var/global/list/protected_objects = list(/obj/structure/table, /obj/structure/ca /mob/living/simple_animal/hostile/mimic/copy/machine/CanAttack(atom/the_target) if(the_target == creator) // Don't attack our creator AI. return 0 - if(isrobot(the_target)) + if(iscyborg(the_target)) var/mob/living/silicon/robot/R = the_target if(R.connected_ai == creator) // Only attack robots that aren't synced to our creator AI. return 0 @@ -209,12 +210,13 @@ var/global/list/protected_objects = list(/obj/structure/table, /obj/structure/ca /mob/living/simple_animal/hostile/mimic/copy/ranged var/obj/item/weapon/gun/TrueGun = null var/obj/item/weapon/gun/magic/Zapstick - var/obj/item/weapon/gun/projectile/Pewgun + var/obj/item/weapon/gun/ballistic/Pewgun var/obj/item/weapon/gun/energy/Zapgun /mob/living/simple_animal/hostile/mimic/copy/ranged/CopyObject(obj/O, mob/living/creator, destroy_original = 0) if(..()) emote_see = list("aims menacingly") + obj_damage = 0 environment_smash = 0 //needed? seems weird for them to do so ranged = 1 retreat_distance = 1 //just enough to shoot @@ -229,7 +231,7 @@ var/global/list/protected_objects = list(/obj/structure/table, /obj/structure/ca Zapstick = G var/obj/item/ammo_casing/magic/M = Zapstick.ammo_type projectiletype = initial(M.projectile_type) - if(istype(G, /obj/item/weapon/gun/projectile)) + if(istype(G, /obj/item/weapon/gun/ballistic)) Pewgun = G var/obj/item/ammo_box/magazine/M = Pewgun.mag_type casingtype = initial(M.ammo_type) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm index 095f76b3a6..b7be38b66b 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm @@ -1,8 +1,9 @@ -/mob/living/simple_animal/hostile/asteroid/ +/mob/living/simple_animal/hostile/asteroid vision_range = 2 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) faction = list("mining") weather_immunities = list("lava","ash") + obj_damage = 30 environment_smash = 2 minbodytemp = 0 maxbodytemp = INFINITY @@ -10,7 +11,7 @@ response_disarm = "shoves" response_harm = "strikes" status_flags = 0 - a_intent = "harm" + a_intent = INTENT_HARM var/throw_message = "bounces off of" var/icon_aggro = null // for swapping to when we get aggressive see_in_dark = 8 @@ -24,6 +25,8 @@ /mob/living/simple_animal/hostile/asteroid/LoseAggro() ..() + if(stat == DEAD) + return icon_state = icon_living /mob/living/simple_animal/hostile/asteroid/bullet_act(obj/item/projectile/P)//Reduces damage from most projectiles to curb off-screen kills @@ -69,10 +72,11 @@ maxHealth = 200 health = 200 harm_intent_damage = 5 + obj_damage = 60 melee_damage_lower = 12 melee_damage_upper = 12 attacktext = "bites into" - a_intent = "harm" + a_intent = INTENT_HARM speak_emote = list("chitters") attack_sound = 'sound/weapons/bladeslice.ogg' aggro_vision_range = 9 @@ -92,7 +96,7 @@ /mob/living/simple_animal/hostile/asteroid/basilisk/GiveTarget(new_target) if(..()) //we have a target - if(isliving(target)) + if(isliving(target) && !target.Adjacent(targets_from) && ranged_cooldown <= world.time)//No more being shot at point blank or spammed with RNG beams OpenFire(target) /mob/living/simple_animal/hostile/asteroid/basilisk/ex_act(severity, target) @@ -125,7 +129,7 @@ melee_damage_upper = 0 attacktext = "barrels into" attack_sound = 'sound/weapons/punch1.ogg' - a_intent = "help" + a_intent = INTENT_HELP speak_emote = list("screeches") throw_message = "sinks in slowly, before being pushed out of " deathmessage = "spits up the contents of its stomach before dying!" @@ -210,6 +214,7 @@ throw_message = "falls right through the strange body of the" ranged_cooldown = 0 ranged_cooldown_time = 20 + obj_damage = 0 environment_smash = 0 retreat_distance = 3 minimum_distance = 3 @@ -220,11 +225,11 @@ /mob/living/simple_animal/hostile/asteroid/hivelord/OpenFire(the_target) if(world.time >= ranged_cooldown) var/mob/living/simple_animal/hostile/asteroid/hivelordbrood/A = new brood_type(src.loc) + A.admin_spawned = admin_spawned A.GiveTarget(target) A.friends = friends - A.faction = faction + A.faction = faction.Copy() ranged_cooldown = world.time + ranged_cooldown_time - return /mob/living/simple_animal/hostile/asteroid/hivelord/AttackingTarget() OpenFire() @@ -243,7 +248,6 @@ actions_types = list(/datum/action/item_action/organ_action/use) var/inert = 0 var/preserved = 0 - var/list/spawned_brood = list() /obj/item/organ/hivelord_core/New() ..() @@ -273,36 +277,13 @@ update_icon() /obj/item/organ/hivelord_core/ui_action_click() - var/spawn_amount = 1 - if(!inert) - spawn_amount++ - - for(var/a in spawned_brood) - if(!istype(a, /mob/living/simple_animal/hostile/asteroid/hivelordbrood) || qdeleted(a)) - spawned_brood -= a - continue - spawn_amount -= spawned_brood.len - - for(var/i = 1 to spawn_amount) - var/mob/living/simple_animal/hostile/asteroid/hivelordbrood/blood/B = new (owner.loc) - B.link_host(owner) - spawned_brood |= B - + owner.revive(full_heal = 1) + qdel(src) /obj/item/organ/hivelord_core/on_life() ..() - if(owner) - owner.adjustBruteLoss(-1) - owner.adjustFireLoss(-1) - owner.adjustOxyLoss(-2) - if(ishuman(owner)) - var/mob/living/carbon/human/H = owner - CHECK_DNA_AND_SPECIES(H) - if(NOBLOOD in H.dna.species.specflags) - return - - if(H.blood_volume && H.blood_volume < BLOOD_VOLUME_NORMAL) - H.blood_volume += 2 // Fast blood regen + if(owner.health < HEALTH_THRESHOLD_CRIT) + ui_action_click() /obj/item/organ/hivelord_core/afterattack(atom/target, mob/user, proximity_flag) if(proximity_flag && ishuman(target)) @@ -315,7 +296,7 @@ user << "[src] are useless on the dead." return if(H != user) - H.visible_message("[user] forces [H] to apply [src]... they quickly regenerate all injuries!") + H.visible_message("[user] forces [H] to apply [src]... [H.p_they()] quickly regenerate all injuries!") feedback_add_details("hivelord_core","[src.type]|used|other") else user << "You start to smear [src] on yourself. It feels and smells disgusting, but you feel amazingly refreshed in mere moments." @@ -343,7 +324,7 @@ speed = 3 maxHealth = 1 health = 1 - flying = 1 + movement_type = FLYING harm_intent_damage = 5 melee_damage_lower = 2 melee_damage_upper = 2 @@ -351,6 +332,7 @@ speak_emote = list("telepathically cries") attack_sound = 'sound/weapons/pierce.ogg' throw_message = "falls right through the strange body of the" + obj_damage = 0 environment_smash = 0 pass_flags = PASSTABLE del_on_death = 1 @@ -421,7 +403,8 @@ /mob/living/simple_animal/hostile/asteroid/hivelordbrood/blood/proc/link_host(mob/living/carbon/C) faction = list("\ref[src]", "\ref[C]") // Hostile to everyone except the host. C.transfer_blood_to(src, 30) - color = mix_color_from_reagents(reagents.reagent_list) + var/newcolor = mix_color_from_reagents(reagents.reagent_list) + add_atom_colour(newcolor, FIXED_COLOUR_PRIORITY) /mob/living/simple_animal/hostile/asteroid/goliath name = "goliath" @@ -432,7 +415,6 @@ icon_aggro = "Goliath_alert" icon_dead = "Goliath_dead" icon_gib = "syndicate_gib" - attack_sound = 'sound/weapons/punch4.ogg' mouse_opacity = 2 move_to_delay = 40 ranged = 1 @@ -444,6 +426,7 @@ maxHealth = 300 health = 300 harm_intent_damage = 0 + obj_damage = 100 melee_damage_lower = 25 melee_damage_upper = 25 attacktext = "pulverizes" @@ -452,10 +435,9 @@ aggro_vision_range = 9 idle_vision_range = 5 anchored = 1 //Stays anchored until death as to be unpullable - mob_size = MOB_SIZE_LARGE var/pre_attack = 0 var/pre_attack_icon = "Goliath_preattack" - loot = list(/obj/item/stack/sheet/animalhide/goliath_hide{layer = ABOVE_MOB_LAYER}) + loot = list(/obj/item/stack/sheet/animalhide/goliath_hide) /mob/living/simple_animal/hostile/asteroid/goliath/Life() ..() @@ -479,7 +461,7 @@ /mob/living/simple_animal/hostile/asteroid/goliath/OpenFire() var/tturf = get_turf(target) - if(!(istype(tturf, /turf))) + if(!isturf(tturf)) return if(get_dist(src, target) <= 7)//Screen range check, so you can't get tentacle'd offscreen visible_message("The [src.name] digs its tentacles under [target.name]!") @@ -487,7 +469,6 @@ ranged_cooldown = world.time + ranged_cooldown_time icon_state = icon_aggro pre_attack = 0 - return /mob/living/simple_animal/hostile/asteroid/goliath/adjustHealth(damage) ranged_cooldown -= 10 @@ -499,9 +480,8 @@ handle_preattack() if(icon_state != icon_aggro) icon_state = icon_aggro - return -/obj/effect/goliath_tentacle/ +/obj/effect/goliath_tentacle name = "Goliath tentacle" icon = 'icons/mob/lavaland/lavaland_monsters.dmi' icon_state = "Goliath_tentacle" @@ -510,7 +490,7 @@ /obj/effect/goliath_tentacle/New() var/turftype = get_turf(src) - if(istype(turftype, /turf/closed/mineral)) + if(ismineralturf(turftype)) var/turf/closed/mineral/M = turftype M.gets_drilled() addtimer(src, "Trip", 10) @@ -547,7 +527,7 @@ icon = 'icons/obj/mining.dmi' icon_state = "goliath_hide" flags = NOBLUDGEON - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL layer = MOB_LAYER /obj/item/stack/sheet/animalhide/goliath_hide/afterattack(atom/target, mob/user, proximity_flag) @@ -564,13 +544,11 @@ return if(istype(target, /obj/mecha/working/ripley)) var/obj/mecha/working/ripley/D = target - var/list/damage_absorption = D.damage_absorption if(D.hides < 3) D.hides++ - damage_absorption["brute"] = max(damage_absorption["brute"] - 0.1, 0.3) - damage_absorption["bullet"] = damage_absorption["bullet"] - 0.05 - damage_absorption["fire"] = damage_absorption["fire"] - 0.05 - damage_absorption["laser"] = damage_absorption["laser"] - 0.025 + D.armor["melee"] = min(D.armor["melee"] + 10, 70) + D.armor["bullet"] = min(D.armor["bullet"] + 5, 50) + D.armor["laser"] = min(D.armor["laser"] + 5, 50) user << "You strengthen [target], improving its resistance against melee attacks." D.update_icon() if(D.hides == 3) @@ -598,7 +576,6 @@ icon_aggro = "Fugu" icon_dead = "Fugu_dead" icon_gib = "syndicate_gib" - attack_sound = 'sound/weapons/punch4.ogg' mouse_opacity = 2 move_to_delay = 5 friendly = "floats near" @@ -608,6 +585,7 @@ maxHealth = 50 health = 50 harm_intent_damage = 5 + obj_damage = 0 melee_damage_lower = 0 melee_damage_upper = 0 attacktext = "chomps" @@ -652,6 +630,7 @@ return wumbo = 1 icon_state = "Fugu_big" + obj_damage = 60 melee_damage_lower = 15 melee_damage_upper = 20 harm_intent_damage = 0 @@ -661,6 +640,7 @@ move_to_delay = 6 transform *= 2 environment_smash = 2 + mob_size = MOB_SIZE_LARGE speed = 1 addtimer(src, "Deflate", 100) @@ -669,6 +649,7 @@ walk(src, 0) wumbo = 0 icon_state = "Fugu" + obj_damage = 0 melee_damage_lower = 0 melee_damage_upper = 0 harm_intent_damage = 5 @@ -692,7 +673,7 @@ icon = 'icons/obj/surgery.dmi' icon_state = "fugu_gland" flags = NOBLUDGEON - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL layer = MOB_LAYER origin_tech = "biotech=6" var/list/banned_mobs() @@ -730,10 +711,11 @@ melee_damage_lower = 15 melee_damage_upper = 15 attacktext = "impales" - a_intent = "harm" + a_intent = INTENT_HARM speak_emote = list("telepathically cries") attack_sound = 'sound/weapons/bladeslice.ogg' stat_attack = 1 + movement_type = FLYING robust_searching = 1 loot = list() butcher_results = list(/obj/item/weapon/ore/diamond = 2, /obj/item/stack/sheet/sinew = 2, /obj/item/stack/sheet/bone = 1) @@ -768,6 +750,7 @@ icon_aggro = "legion" icon_dead = "legion" icon_gib = "syndicate_gib" + obj_damage = 60 melee_damage_lower = 15 melee_damage_upper = 15 attacktext = "lashes out at" @@ -818,19 +801,22 @@ robust_searching = 1 /mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/Life() - if(isturf(src.loc)) + if(isturf(loc)) for(var/mob/living/carbon/human/H in view(src,1)) //Only for corpse right next to/on same tile if(H.stat == UNCONSCIOUS) - visible_message("[src.name] burrows into the flesh of [H]!") - var/mob/living/simple_animal/hostile/asteroid/hivelord/legion/L = new(H.loc) - visible_message("[L] staggers to their feet!") - H.death() - H.adjustBruteLoss(1000) - L.stored_mob = H - H.forceMove(L) - qdel(src) + infest(H) ..() +/mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/proc/infest(mob/living/carbon/human/H) + visible_message("[name] burrows into the flesh of [H]!") + var/mob/living/simple_animal/hostile/asteroid/hivelord/legion/L = new(H.loc) + visible_message("[L] staggers to their feet!") + H.death() + H.adjustBruteLoss(1000) + L.stored_mob = H + H.forceMove(L) + qdel(src) + /obj/item/organ/hivelord_core/legion name = "legion's soul" desc = "A strange rock that still crackles with power... its \ @@ -855,7 +841,7 @@ desc = "[src] has become inert, it crackles no more and is useless for \ healing injuries." -/obj/item/organ/hivelord_core/legion/preserved() +/obj/item/organ/hivelord_core/legion/preserved(implanted = 0) ..() desc = "[src] has been stabilized. It no longer crackles with power, but it's healing properties are preserved indefinitely." @@ -883,14 +869,15 @@ density = 0 speak_chance = 1 turns_per_move = 8 + obj_damage = 0 environment_smash = 0 move_to_delay = 15 response_help = "pets" response_disarm = "gently pushes aside" response_harm = "squishes" friendly = "pinches" - a_intent = "help" - ventcrawler = 2 + a_intent = INTENT_HELP + ventcrawler = VENTCRAWLER_ALWAYS gold_core_spawnable = 2 stat_attack = 1 gender = NEUTER @@ -932,7 +919,7 @@ ..() /mob/living/simple_animal/hostile/asteroid/gutlunch/AttackingTarget() - if(is_type_in_list(target,wanted_objects)) //we eats + if(is_type_in_typecache(target,wanted_objects)) //we eats udder.generateMilk() regenerate_icons() visible_message("[src] slurps up [target].") @@ -961,7 +948,7 @@ /mob/living/simple_animal/hostile/asteroid/gutlunch/gubbuck/New() ..() - color = pick("#E39FBB", "#D97D64", "#CF8C4A") + add_atom_colour(pick("#E39FBB", "#D97D64", "#CF8C4A"), FIXED_COLOUR_PRIORITY) resize = 0.85 update_transform() @@ -977,11 +964,11 @@ make_babies() /mob/living/simple_animal/hostile/asteroid/gutlunch/guthen/make_babies() - if(..()) + . = ..() + if(.) udder.reagents.clear_reagents() regenerate_icons() - //Nests /mob/living/simple_animal/hostile/spawner/lavaland name = "necropolis tendril" @@ -992,6 +979,7 @@ icon_dead = "tendril" faction = list("mining") weather_immunities = list("lava","ash") + luminosity = 1 health = 250 maxHealth = 250 max_mobs = 3 @@ -1007,15 +995,41 @@ /mob/living/simple_animal/hostile/spawner/lavaland/New() ..() + for(var/F in RANGE_TURFS(1, src)) + if(ismineralturf(F)) + var/turf/closed/mineral/M = F + M.ChangeTurf(M.turf_type,FALSE,TRUE) gps = new /obj/item/device/gps/internal(src) /mob/living/simple_animal/hostile/spawner/lavaland/Destroy() qdel(gps) . = ..() +#define MEDAL_PREFIX "Tendril" +/mob/living/simple_animal/hostile/spawner/lavaland/death() + var/last_tendril = TRUE + for(var/mob/living/simple_animal/hostile/spawner/lavaland/other in mob_list) + if(other != src) + last_tendril = FALSE + break + if(last_tendril && !admin_spawned) + if(global.medal_hub && global.medal_pass && global.medals_enabled) + for(var/mob/living/L in view(7,src)) + if(L.stat) + continue + if(L.client) + var/client/C = L.client + var/suffixm = ALL_KILL_MEDAL + var/prefix = MEDAL_PREFIX + UnlockMedal("[prefix] [suffixm]",C) + SetScore(TENDRIL_CLEAR_SCORE,C,1) + ..() +#undef MEDAL_PREFIX + /obj/effect/collapse name = "collapsing necropolis tendril" desc = "Get clear!" + luminosity = 1 layer = ABOVE_OPEN_TURF_LAYER icon = 'icons/mob/nest.dmi' icon_state = "tendril" diff --git a/code/modules/mob/living/simple_animal/hostile/mushroom.dm b/code/modules/mob/living/simple_animal/hostile/mushroom.dm index 9654f1a7cd..5c997b7765 100644 --- a/code/modules/mob/living/simple_animal/hostile/mushroom.dm +++ b/code/modules/mob/living/simple_animal/hostile/mushroom.dm @@ -13,6 +13,7 @@ response_disarm = "gently pushes aside" response_harm = "whacks" harm_intent_damage = 5 + obj_damage = 0 melee_damage_lower = 1 melee_damage_upper = 1 attack_same = 2 @@ -23,7 +24,7 @@ stat_attack = 2 mouse_opacity = 1 speed = 1 - ventcrawler = 2 + ventcrawler = VENTCRAWLER_ALWAYS robust_searching = 1 unique_name = 1 speak_emote = list("squeaks") @@ -144,7 +145,7 @@ /mob/living/simple_animal/hostile/mushroom/attack_hand(mob/living/carbon/human/M) ..() - if(M.a_intent == "harm") + if(M.a_intent == INTENT_HARM) Bruise() /mob/living/simple_animal/hostile/mushroom/hitby(atom/movable/AM) diff --git a/code/modules/mob/living/simple_animal/hostile/nanotrasen.dm b/code/modules/mob/living/simple_animal/hostile/nanotrasen.dm index 326359bcc1..112370b2b2 100644 --- a/code/modules/mob/living/simple_animal/hostile/nanotrasen.dm +++ b/code/modules/mob/living/simple_animal/hostile/nanotrasen.dm @@ -20,7 +20,7 @@ melee_damage_upper = 15 attacktext = "punches" attack_sound = 'sound/weapons/punch1.ogg' - a_intent = "harm" + a_intent = INTENT_HARM loot = list(/obj/effect/mob_spawn/human/corpse/nanotrasensoldier) 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 @@ -44,7 +44,7 @@ minimum_distance = 5 casingtype = /obj/item/ammo_casing/c45 projectilesound = 'sound/weapons/Gunshot.ogg' - loot = list(/obj/item/weapon/gun/projectile/automatic/pistol/m1911, + loot = list(/obj/item/weapon/gun/ballistic/automatic/pistol/m1911, /obj/effect/mob_spawn/human/corpse/nanotrasensoldier) @@ -54,5 +54,5 @@ rapid = 1 casingtype = /obj/item/ammo_casing/c46x30mm projectilesound = 'sound/weapons/Gunshot_smg.ogg' - loot = list(/obj/item/weapon/gun/projectile/automatic/wt550, + loot = list(/obj/item/weapon/gun/ballistic/automatic/wt550, /obj/effect/mob_spawn/human/corpse/nanotrasensoldier) \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/hostile/pirate.dm b/code/modules/mob/living/simple_animal/hostile/pirate.dm index eca0064735..76263907a8 100644 --- a/code/modules/mob/living/simple_animal/hostile/pirate.dm +++ b/code/modules/mob/living/simple_animal/hostile/pirate.dm @@ -14,6 +14,7 @@ health = 100 harm_intent_damage = 5 + obj_damage = 60 melee_damage_lower = 30 melee_damage_upper = 30 attacktext = "slashes" @@ -40,3 +41,28 @@ projectiletype = /obj/item/projectile/beam/laser loot = list(/obj/effect/mob_spawn/human/corpse/pirate/ranged, /obj/item/weapon/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 + deathmessage = "'s suit can't take anymore damage and rips apart!" + +/mob/living/simple_animal/hostile/pirate/space/ranged + 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/weapon/gun/energy/laser) + +/mob/living/simple_animal/hostile/pirate/space/Process_Spacemove(movement_dir = 0) + return 1 diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm index 67bfd337c5..3eb8e85c93 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm @@ -21,10 +21,11 @@ pass_flags = PASSTABLE faction = list("hostile") attack_sound = 'sound/weapons/bite.ogg' + obj_damage = 0 environment_smash = 0 - ventcrawler = 2 + ventcrawler = VENTCRAWLER_ALWAYS mob_size = MOB_SIZE_TINY - flying = 1 + movement_type = FLYING speak_emote = list("squeaks") var/max_co2 = 0 //to be removed once metastation map no longer use those for Sgt Araneus var/min_oxy = 0 diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm index 3e613b9040..886428ce52 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm @@ -5,7 +5,6 @@ icon_living = "clown" icon_dead = "clown_dead" icon_gib = "clown_gib" - speak_chance = 0 turns_per_move = 5 response_help = "pokes" response_disarm = "gently pushes aside" @@ -13,7 +12,7 @@ speak = list("HONK", "Honk!", "Welcome to clown planet!") emote_see = list("honks", "squeaks") speak_chance = 1 - a_intent = "harm" + a_intent = INTENT_HARM maxHealth = 75 health = 75 speed = 0 @@ -22,6 +21,7 @@ melee_damage_upper = 10 attacktext = "attacks" attack_sound = 'sound/items/bikehorn.ogg' + obj_damage = 0 environment_smash = 0 del_on_death = 1 loot = list(/obj/effect/mob_spawn/human/corpse/clown) @@ -39,4 +39,4 @@ /mob/living/simple_animal/hostile/retaliate/clown/attack_hand(mob/living/carbon/human/M) ..() - playsound(src.loc, 'sound/items/bikehorn.ogg', 50, 1) \ No newline at end of file + playsound(src.loc, 'sound/items/bikehorn.ogg', 50, 1) diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/frog.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/frog.dm new file mode 100644 index 0000000000..0d93a7f2b4 --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/frog.dm @@ -0,0 +1,42 @@ +/mob/living/simple_animal/hostile/retaliate/frog + name = "frog" + desc = "It seems a little sad." + icon_state = "frog" + icon_living = "frog" + icon_dead = "frog_dead" + speak = list("ribbits","croaks") + emote_see = list("hops in a circle.", "shakes.") + speak_chance = 1 + turns_per_move = 5 + maxHealth = 15 + health = 15 + melee_damage_lower = 5 + melee_damage_upper = 5 + attacktext = "bites" + response_help = "pets" + response_disarm = "pokes" + response_harm = "splats" + density = 0 + ventcrawler = VENTCRAWLER_ALWAYS + faction = list("hostile") + attack_sound = 'sound/effects/Reee.ogg' + butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/nugget = 1) + pass_flags = PASSTABLE | PASSGRILLE | PASSMOB + mob_size = MOB_SIZE_TINY + gold_core_spawnable = 1 + +/mob/living/simple_animal/hostile/retaliate/frog/New() + ..() + if(prob(1)) + name = "rare frog" + desc = "It seems a little smug." + icon_state = "rare_frog" + icon_living = "rare_frog" + icon_dead = "rare_frog_dead" + butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/nugget = 5) + +/mob/living/simple_animal/hostile/retaliate/frog/Crossed(AM as mob|obj) + if(!stat && isliving(AM)) + var/mob/living/L = AM + if(L.mob_size > MOB_SIZE_TINY) + playsound(src, 'sound/effects/Huuu.ogg', 50, 1) \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/ghost.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/ghost.dm index e6b6667688..3880b6a1fe 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/ghost.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/ghost.dm @@ -1,4 +1,4 @@ -/mob/living/simple_animal/retaliate/ghost +/mob/living/simple_animal/hostile/retaliate/ghost name = "ghost" desc = "A soul of the dead, spooky." icon = 'icons/mob/mob.dmi' @@ -9,7 +9,7 @@ response_help = "passes through" response_disarm = "shoves" response_harm = "hits" - a_intent = "harm" + a_intent = INTENT_HARM healable = 0 speed = 0 maxHealth = 40 @@ -27,8 +27,8 @@ atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) minbodytemp = 0 maxbodytemp = 1500 - flying = 1 - pressure_resistance = 200 + movement_type = FLYING + pressure_resistance = 300 gold_core_spawnable = 0 //too spooky for science var/ghost_hair_style var/ghost_hair_color @@ -38,7 +38,7 @@ var/image/ghost_facial_hair = null var/random = TRUE //if you want random names for ghosts or not -/mob/living/simple_animal/retaliate/ghost/New() +/mob/living/simple_animal/hostile/retaliate/ghost/New() ..() if(!random) give_hair() @@ -51,7 +51,7 @@ give_hair() -/mob/living/simple_animal/retaliate/ghost/proc/give_hair() +/mob/living/simple_animal/hostile/retaliate/ghost/proc/give_hair() if(ghost_hair_style != null) ghost_hair = image('icons/mob/human_face.dmi', "hair_[ghost_hair_style]_s") ghost_hair.layer = -HAIR_LAYER 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 d59dab7959..4a8c99a111 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/spaceman.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/spaceman.dm @@ -5,11 +5,12 @@ icon_living = "old" icon_dead = "old_dead" icon_gib = "clown_gib" + gender = MALE turns_per_move = 5 response_help = "pokes" response_disarm = "gently pushes aside" response_harm = "punches" - a_intent = "harm" + a_intent = INTENT_HARM maxHealth = 100 health = 100 speed = 0 @@ -18,6 +19,7 @@ melee_damage_upper = 10 attacktext = "hits" attack_sound = 'sound/weapons/punch1.ogg' + obj_damage = 0 environment_smash = 0 del_on_death = 0 diff --git a/code/modules/mob/living/simple_animal/hostile/russian.dm b/code/modules/mob/living/simple_animal/hostile/russian.dm index 3f67b124e4..25d1054e17 100644 --- a/code/modules/mob/living/simple_animal/hostile/russian.dm +++ b/code/modules/mob/living/simple_animal/hostile/russian.dm @@ -18,7 +18,7 @@ melee_damage_upper = 15 attacktext = "punches" attack_sound = 'sound/weapons/punch1.ogg' - a_intent = "harm" + a_intent = INTENT_HARM loot = list(/obj/effect/mob_spawn/human/corpse/russian, /obj/item/weapon/kitchen/knife) atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0) @@ -32,7 +32,7 @@ icon_state = "russianranged" icon_living = "russianranged" loot = list(/obj/effect/mob_spawn/human/corpse/russian/ranged, - /obj/item/weapon/gun/projectile/revolver/nagant) + /obj/item/weapon/gun/ballistic/revolver/nagant) ranged = 1 retreat_distance = 5 minimum_distance = 5 @@ -42,7 +42,7 @@ /mob/living/simple_animal/hostile/russian/ranged/mosin loot = list(/obj/effect/mob_spawn/human/corpse/russian/ranged, - /obj/item/weapon/gun/projectile/shotgun/boltaction) + /obj/item/weapon/gun/ballistic/shotgun/boltaction) casingtype = /obj/item/ammo_casing/a762 /mob/living/simple_animal/hostile/russian/ranged/trooper @@ -52,7 +52,7 @@ health = 150 casingtype = /obj/item/ammo_casing/shotgun/buckshot loot = list(/obj/effect/mob_spawn/human/corpse/russian/ranged/trooper, - /obj/item/weapon/gun/projectile/shotgun/lethal) + /obj/item/weapon/gun/ballistic/shotgun/lethal) /mob/living/simple_animal/hostile/russian/ranged/officer name = "Russian Officer" @@ -63,7 +63,7 @@ rapid = 1 casingtype = /obj/item/ammo_casing/c9mm loot = list(/obj/effect/mob_spawn/human/corpse/russian/ranged/officer, - /obj/item/weapon/gun/projectile/automatic/pistol/APS) + /obj/item/weapon/gun/ballistic/automatic/pistol/APS) /mob/living/simple_animal/hostile/russian/ranged/officer/Aggro() ..() diff --git a/code/modules/mob/living/simple_animal/hostile/skeleton.dm b/code/modules/mob/living/simple_animal/hostile/skeleton.dm index 56b4a9ed06..833e70dac0 100644 --- a/code/modules/mob/living/simple_animal/hostile/skeleton.dm +++ b/code/modules/mob/living/simple_animal/hostile/skeleton.dm @@ -4,10 +4,11 @@ icon_state = "skeleton" icon_living = "skeleton" icon_dead = "skeleton" + gender = NEUTER turns_per_move = 5 speak_emote = list("rattles") emote_see = list("rattles") - a_intent = "harm" + a_intent = INTENT_HARM maxHealth = 40 health = 40 speed = 1 @@ -21,7 +22,6 @@ attack_sound = 'sound/hallucinations/growl1.ogg' atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) unsuitable_atmos_damage = 10 - environment_smash = 1 robust_searching = 1 stat_attack = 1 gold_core_spawnable = 1 @@ -63,13 +63,14 @@ speak_chance = 1 speak = list("THE GODS WILL IT!","DEUS VULT!","REMOVE KABAB!") force_threshold = 10 //trying to simulate actually having armor + obj_damage = 50 melee_damage_lower = 25 melee_damage_upper = 30 deathmessage = "collapses into a pile of bones, its gear clanging as it hits the ground!" loot = list(/obj/effect/decal/remains/human, /obj/item/clothing/suit/armor/riot/knight/templar, /obj/item/clothing/head/helmet/knight/templar, - /obj/item/weapon/claymore/hog{name = "holy sword"}) + /obj/item/weapon/claymore/weak{name = "holy sword"}) /mob/living/simple_animal/hostile/skeleton/ice name = "ice skeleton" diff --git a/code/modules/mob/living/simple_animal/hostile/statue.dm b/code/modules/mob/living/simple_animal/hostile/statue.dm index b196579524..0385cc8a7c 100644 --- a/code/modules/mob/living/simple_animal/hostile/statue.dm +++ b/code/modules/mob/living/simple_animal/hostile/statue.dm @@ -8,7 +8,7 @@ icon_living = "human_male" icon_dead = "human_male" gender = NEUTER - a_intent = "harm" + a_intent = INTENT_HARM response_help = "touches" response_disarm = "pushes" @@ -18,7 +18,8 @@ health = 50000 healable = 0 - harm_intent_damage = 70 + harm_intent_damage = 10 + obj_damage = 100 melee_damage_lower = 68 melee_damage_upper = 83 attacktext = "claws" @@ -110,8 +111,8 @@ return null // Check for darkness var/turf/T = get_turf(loc) - if(T && destination) - if((T.get_lumcount())<1 && (destination.get_lumcount())<1) // No one can see us in the darkness, right? + if(T && destination && T.lighting_object) + if(T.lighting_lumcount<1 && destination.lighting_lumcount<1) // No one can see us in the darkness, right? return null if(T == destination) destination = null @@ -207,7 +208,7 @@ /obj/effect/proc_holder/spell/targeted/night_vision/cast(list/targets,mob/user = usr) for(var/mob/living/target in targets) - if(istype(target, /mob/living/carbon/human)) + if(ishuman(target)) var/mob/living/carbon/human/H = target if(H.dna.species.invis_sight == SEE_INVISIBLE_LIVING) H.dna.species.invis_sight = SEE_INVISIBLE_NOLIGHTING diff --git a/code/modules/mob/living/simple_animal/hostile/stickman.dm b/code/modules/mob/living/simple_animal/hostile/stickman.dm new file mode 100644 index 0000000000..3fcdc3e37a --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/stickman.dm @@ -0,0 +1,61 @@ +/mob/living/simple_animal/hostile/stickman + name = "Angry Stick Man" + desc = "A being from a realm with only 2 dimensions. At least it's trying to stay faced towards you." + icon_state = "stickman" + icon_living = "stickman" + icon_dead = "stickman_dead" + icon_gib = "syndicate_gib" + gender = MALE + speak_chance = 0 + turns_per_move = 5 + response_help = "pokes" + response_disarm = "shoves" + response_harm = "hits" + speed = 0 + stat_attack = 1 + robust_searching = 1 + environment_smash = 0 + maxHealth = 100 + health = 100 + harm_intent_damage = 5 + obj_damage = 0 + 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 + faction = list("hostile","stickman") + check_friendly_fire = 1 + status_flags = CANPUSH + var/datum/action/boss/wizard_summon_minions/changesummons = /datum/action/boss/wizard_summon_minions + var/summoned_by_wizard = 0 + +/mob/living/simple_animal/hostile/stickman/ranged + ranged = 1 + retreat_distance = 5 + minimum_distance = 5 + icon_state = "stickmanranged" + icon_living = "stickmanranged" + casingtype = /obj/item/ammo_casing/c45nostamina + projectilesound = 'sound/misc/bang.ogg' + loot = list(/obj/item/weapon/gun/ballistic/automatic/pistol/stickman) + + +/mob/living/simple_animal/hostile/stickman/dog + name = "Angry Stick Dog" + desc = "Stickman's best friend, if he could see him at least." + icon_state = "stickdog" + icon_living = "stickdog" + icon_dead = "stickdog_dead" + +/mob/living/simple_animal/hostile/stickman/New(var/turf/loc, var/wizard_summoned) + ..() + new /obj/effect/overlay/temp/paper_scatter(src) + summoned_by_wizard = wizard_summoned + +/mob/living/simple_animal/hostile/stickman/death() + ..() + if(summoned_by_wizard == 1) + changesummons.summoned_minions -- diff --git a/code/modules/mob/living/simple_animal/hostile/syndicate.dm b/code/modules/mob/living/simple_animal/hostile/syndicate.dm index e2e7dae144..679804c7a1 100644 --- a/code/modules/mob/living/simple_animal/hostile/syndicate.dm +++ b/code/modules/mob/living/simple_animal/hostile/syndicate.dm @@ -31,7 +31,7 @@ melee_damage_upper = 10 attacktext = "punches" attack_sound = 'sound/weapons/punch1.ogg' - a_intent = "harm" + a_intent = INTENT_HARM loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier) 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 @@ -128,7 +128,7 @@ projectilesound = 'sound/weapons/Gunshot.ogg' casingtype = /obj/item/ammo_casing/shotgun/buckshot loot = list(/obj/effect/mob_spawn/human/corpse/syndicatestormtrooper, - /obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/unrestricted, + /obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog/unrestricted, /obj/item/weapon/shield/energy) ///////////////Misc//////////// @@ -136,6 +136,7 @@ /mob/living/simple_animal/hostile/syndicate/civilian minimum_distance = 10 retreat_distance = 10 + obj_damage = 0 environment_smash = 0 /mob/living/simple_animal/hostile/syndicate/civilian/Aggro() @@ -150,17 +151,20 @@ icon_state = "viscerator_attack" icon_living = "viscerator_attack" pass_flags = PASSTABLE - health = 15 - maxHealth = 15 + health = 25 + maxHealth = 25 melee_damage_lower = 15 melee_damage_upper = 15 + obj_damage = 0 + environment_smash = 0 attacktext = "cuts" attack_sound = 'sound/weapons/bladeslice.ogg' faction = list("syndicate") atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) minbodytemp = 0 mob_size = MOB_SIZE_TINY - flying = 1 + movement_type = FLYING + limb_destroyer = 1 speak_emote = list("states") bubble_icon = "syndibot" gold_core_spawnable = 1 diff --git a/code/modules/mob/living/simple_animal/hostile/tree.dm b/code/modules/mob/living/simple_animal/hostile/tree.dm index 7295e272e8..fb9e9fc3c6 100644 --- a/code/modules/mob/living/simple_animal/hostile/tree.dm +++ b/code/modules/mob/living/simple_animal/hostile/tree.dm @@ -6,6 +6,7 @@ icon_living = "pine_1" icon_dead = "pine_1" icon_gib = "pine_1" + gender = NEUTER speak_chance = 0 turns_per_move = 5 response_help = "brushes" @@ -40,7 +41,7 @@ /mob/living/simple_animal/hostile/tree/Life() ..() - if(istype(src.loc, /turf/open)) + if(isopenturf(loc)) var/turf/open/T = src.loc if(T.air && T.air.gases["co2"]) var/co2 = T.air.gases["co2"][MOLES] diff --git a/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm b/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm index 7dc5c54bd3..ddea7d64f9 100644 --- a/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm +++ b/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm @@ -21,7 +21,7 @@ anchors += locate(x+2,y-2,z) for(var/turf/T in anchors) - var/datum/beam/B = Beam(T,"vine",'icons/effects/spacevines.dmi',INFINITY, 5,/obj/effect/ebeam/vine) + var/datum/beam/B = Beam(T, "vine", time=INFINITY, maxdistance=5, beam_type=/obj/effect/ebeam/vine) B.sleep_time = 10 //these shouldn't move, so let's slow down updates to 1 second (any slower and the deletion of the vines would be too slow) addtimer(src, "bear_fruit", growth_time) @@ -55,9 +55,10 @@ maxHealth = 50 ranged = 1 harm_intent_damage = 5 + obj_damage = 60 melee_damage_lower = 25 melee_damage_upper = 25 - a_intent = "harm" + a_intent = INTENT_HARM attack_sound = 'sound/weapons/bladeslice.ogg' atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) unsuitable_atmos_damage = 0 @@ -98,15 +99,15 @@ if(A.density && A != L) continue grasping if(prob(grasp_chance)) - L << "\the [src] has you entangled!" - grasping[L] = Beam(L,"vine",'icons/effects/spacevines.dmi',INFINITY, 5,/obj/effect/ebeam/vine) + L << "\The [src] has you entangled!" + grasping[L] = Beam(L, "vine", time=INFINITY, maxdistance=5, beam_type=/obj/effect/ebeam/vine) break //only take 1 new victim per cycle /mob/living/simple_animal/hostile/venus_human_trap/OpenFire(atom/the_target) var/dist = get_dist(src,the_target) - Beam(the_target,"vine",'icons/effects/spacevines.dmi',dist*2, dist+2,/obj/effect/ebeam/vine) + Beam(the_target, "vine", time=dist*2, maxdistance=dist+2, beam_type=/obj/effect/ebeam/vine) the_target.attack_animal(src) diff --git a/code/modules/mob/living/simple_animal/hostile/wizard.dm b/code/modules/mob/living/simple_animal/hostile/wizard.dm index df6a4be30b..ca9bb1130e 100644 --- a/code/modules/mob/living/simple_animal/hostile/wizard.dm +++ b/code/modules/mob/living/simple_animal/hostile/wizard.dm @@ -17,7 +17,7 @@ melee_damage_upper = 5 attacktext = "punches" attack_sound = 'sound/weapons/punch1.ogg' - a_intent = "harm" + 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 faction = list("wizard") @@ -29,7 +29,7 @@ loot = list(/obj/effect/mob_spawn/human/corpse/wizard, /obj/item/weapon/staff) - var/obj/effect/proc_holder/spell/dumbfire/fireball/fireball = null + var/obj/effect/proc_holder/spell/fireball/fireball = null var/obj/effect/proc_holder/spell/targeted/turf_teleport/blink/blink = null var/obj/effect/proc_holder/spell/targeted/projectile/magic_missile/mm = null @@ -38,7 +38,7 @@ /mob/living/simple_animal/hostile/wizard/New() ..() - fireball = new /obj/effect/proc_holder/spell/dumbfire/fireball + fireball = new /obj/effect/proc_holder/spell/fireball fireball.clothes_req = 0 fireball.human_req = 0 fireball.player_lock = 0 @@ -62,7 +62,7 @@ if(target && next_cast < world.time) if((get_dir(src,target) in list(SOUTH,EAST,WEST,NORTH)) && fireball.cast_check(0,src)) //Lined up for fireball src.setDir(get_dir(src,target)) - fireball.choose_targets(src) + fireball.perform(list(target), user = src) next_cast = world.time + 10 //One spell per second return . if(mm.cast_check(0,src)) diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm index a38da5288a..c690c866b3 100644 --- a/code/modules/mob/living/simple_animal/parrot.dm +++ b/code/modules/mob/living/simple_animal/parrot.dm @@ -34,6 +34,8 @@ icon_living = "parrot_fly" icon_dead = "parrot_dead" density = 0 + health = 80 + maxHealth = 80 pass_flags = PASSTABLE | PASSMOB speak = list("Hi!","Hello!","Cracker?","BAWWWWK george mellons griffing me!") @@ -51,11 +53,11 @@ response_disarm = "gently moves aside" response_harm = "swats" stop_automated_movement = 1 - a_intent = "harm" //parrots now start "aggressive" since only player parrots will nuzzle. + a_intent = INTENT_HARM //parrots now start "aggressive" since only player parrots will nuzzle. attacktext = "chomps" friendly = "grooms" mob_size = MOB_SIZE_SMALL - flying = 1 + movement_type = FLYING gold_core_spawnable = 2 var/parrot_damage_upper = 10 @@ -148,6 +150,8 @@ if(speech_buffer.len >= 500) speech_buffer -= pick(speech_buffer) speech_buffer |= html_decode(raw_message) + if(speaker == src && !client) //If a parrot squawks in the woods and no one is around to hear it, does it make a sound? This code says yes! + return message ..() /mob/living/simple_animal/parrot/radio(message, message_mode, list/spans) //literally copied from human/radio(), but there's no other way to do this. at least it's better than it used to be. @@ -195,7 +199,7 @@ return //Is the usr's mob type able to do this? (lolaliens) - if(ishuman(usr) || ismonkey(usr) || isrobot(usr) || isalienadult(usr)) + if(ishuman(usr) || ismonkey(usr) || iscyborg(usr) || isalienadult(usr)) //Removing from inventory if(href_list["remove_inv"]) @@ -220,7 +224,7 @@ //Adding things to inventory else if(href_list["add_inv"]) var/add_to = href_list["add_inv"] - if(!usr.get_active_hand()) + if(!usr.get_active_held_item()) usr << "You have nothing in your hand to put on its [add_to]!" return switch(add_to) @@ -229,7 +233,7 @@ usr << "It's already wearing something!" return else - var/obj/item/item_to_add = usr.get_active_hand() + var/obj/item/item_to_add = usr.get_active_held_item() if(!item_to_add) return @@ -276,7 +280,7 @@ ..() if(client) return - if(!stat && M.a_intent == "harm") + if(!stat && M.a_intent == INTENT_HARM) icon_state = "parrot_fly" //It is going to be flying regardless of whether it flees or attacks @@ -286,12 +290,12 @@ parrot_interest = M parrot_state = PARROT_SWOOP //The parrot just got hit, it WILL move, now to pick a direction.. - if(M.health < 50) //Weakened mob? Fight back! + if(health > 30) //Let's get in there and squawk it up! parrot_state |= PARROT_ATTACK else parrot_state |= PARROT_FLEE //Otherwise, fly like a bat out of hell! drop_held_item(0) - if(!stat && M.a_intent == "help") + if(!stat && M.a_intent == INTENT_HELP) handle_automated_speech(1) //assured speak/emote return @@ -325,8 +329,8 @@ parrot_interest = user parrot_state = PARROT_SWOOP - if (user.health < 50) - parrot_state |= PARROT_ATTACK //weakened mob? fight back! + if(health > 30) //Let's get in there and squawk it up! + parrot_state |= PARROT_ATTACK else parrot_state |= PARROT_FLEE icon_state = "parrot_fly" @@ -557,7 +561,7 @@ var/mob/living/L = parrot_interest if(melee_damage_upper == 0) melee_damage_upper = parrot_damage_upper - a_intent = "harm" + a_intent = INTENT_HARM //If the mob is close enough to interact with if(Adjacent(parrot_interest)) @@ -625,12 +629,14 @@ continue if(istype(AM, /obj/item)) var/obj/item/I = AM - if(I.w_class < 2) + if(I.w_class < WEIGHT_CLASS_SMALL) item = I else if(iscarbon(AM)) var/mob/living/carbon/C = AM - if((C.l_hand && C.l_hand.w_class <= 2) || (C.r_hand && C.r_hand.w_class <= 2)) - item = C + for(var/obj/item/I in C.held_items) + if(I.w_class <= WEIGHT_CLASS_SMALL) + item = I + break if(item) if(!AStar(src, get_turf(item), /turf/proc/Distance_cardinal)) item = null @@ -659,13 +665,14 @@ if(istype(AM, /obj/item)) var/obj/item/I = AM - if(I.w_class <= 2) + if(I.w_class <= WEIGHT_CLASS_SMALL) return I if(iscarbon(AM)) var/mob/living/carbon/C = AM - if(C.l_hand && C.l_hand.w_class <= 2 || C.r_hand && C.r_hand.w_class <= 2) - return C + for(var/obj/item/I in C.held_items) + if(I.w_class <= WEIGHT_CLASS_SMALL) + return C return null @@ -686,7 +693,7 @@ for(var/obj/item/I in view(1,src)) //Make sure we're not already holding it and it's small enough - if(I.loc != src && I.w_class <= 2) + if(I.loc != src && I.w_class <= WEIGHT_CLASS_SMALL) //If we have a perch and the item is sitting on it, continue if(!client && parrot_perch && I.loc == parrot_perch.loc) @@ -715,11 +722,10 @@ var/obj/item/stolen_item = null for(var/mob/living/carbon/C in view(1,src)) - if(C.l_hand && C.l_hand.w_class <= 2) - stolen_item = C.l_hand - - if(C.r_hand && C.r_hand.w_class <= 2) - stolen_item = C.r_hand + for(var/obj/item/I in C.held_items) + if(I.w_class <= WEIGHT_CLASS_SMALL) + stolen_item = I + break if(stolen_item) C.unEquip(stolen_item) @@ -850,10 +856,10 @@ if(melee_damage_upper) melee_damage_upper = 0 - a_intent = "help" + a_intent = INTENT_HELP else melee_damage_upper = parrot_damage_upper - a_intent = "harm" + a_intent = INTENT_HARM src << "You will now [a_intent] others..." return @@ -863,7 +869,7 @@ /mob/living/simple_animal/parrot/Poly name = "Poly" desc = "Poly the Parrot. An expert on quantum cracker theory." - speak = list("Poly wanna cracker!", ":e Check the singlo, you chucklefucks!",":e Wire the solars, you lazy bums!",":e WHO TOOK THE DAMN HARDSUITS?",":e OH GOD ITS FREE CALL THE SHUTTLE") + speak = list("Poly wanna cracker!", ":e Check the singulo, you chucklefucks!",":e Wire the solars, you lazy bums!",":e WHO TOOK THE DAMN HARDSUITS?",":e OH GOD ITS FREE CALL THE SHUTTLE") gold_core_spawnable = 0 speak_chance = 3 var/memory_saved = 0 @@ -879,11 +885,11 @@ speak += pick("...[longest_survival].", "The things I've seen!", "I have lived many lives!", "What are you before me?") desc += " Old as sin, and just as loud. Claimed to be [rounds_survived]." speak_chance = 20 //His hubris has made him more annoying/easier to justify killing - color = "#EEEE22" + add_atom_colour("#EEEE22", FIXED_COLOUR_PRIORITY) else if(rounds_survived == longest_deathstreak) speak += pick("What are you waiting for!", "Violence breeds violence!", "Blood! Blood!", "Strike me down if you dare!") desc += " The squawks of [-rounds_survived] dead parrots ring out in your ears..." - color = "#BB7777" + add_atom_colour("#BB7777", FIXED_COLOUR_PRIORITY) else if(rounds_survived > 0) speak += pick("...again?", "No, It was over!", "Let me out!", "It never ends!") desc += " Over [rounds_survived] shifts without a \"terrible\" \"accident\"!" @@ -902,7 +908,7 @@ /mob/living/simple_animal/parrot/Poly/death(gibbed) if(!memory_saved) var/go_ghost = 0 - if(rounds_survived == longest_survival || rounds_survived == longest_deathstreak) + if(rounds_survived == longest_survival || rounds_survived == longest_deathstreak || prob(0.666)) go_ghost = 1 rounds_survived = min(--rounds_survived,0) if(rounds_survived < longest_deathstreak) @@ -948,7 +954,26 @@ memory_saved = 1 //At this point nothing is saved ..() +/mob/living/simple_animal/parrot/Poly/ghost/handle_automated_speech() + if(ismob(loc)) + return + ..() + /mob/living/simple_animal/parrot/Poly/ghost/handle_automated_movement() if(isliving(parrot_interest)) - parrot_interest = null + if(!ishuman(parrot_interest)) + parrot_interest = null + else if(parrot_state == (PARROT_SWOOP | PARROT_ATTACK) && Adjacent(parrot_interest)) + walk_to(src, parrot_interest, 0, parrot_speed) + Possess(parrot_interest) ..() + +/mob/living/simple_animal/parrot/Poly/ghost/proc/Possess(mob/living/carbon/human/H) + if(!ishuman(H)) + return + var/datum/disease/parrot_possession/P = new + P.parrot = src + loc = H + H.ContractDisease(P) + parrot_interest = null + H.visible_message("[src] dive bombs into [H]'s chest and vanishes!", "[src] dive bombs into your chest, vanishing! This can't be good!") diff --git a/code/modules/mob/living/simple_animal/shade.dm b/code/modules/mob/living/simple_animal/shade.dm index b595d9dae3..8c62ccffff 100644 --- a/code/modules/mob/living/simple_animal/shade.dm +++ b/code/modules/mob/living/simple_animal/shade.dm @@ -2,6 +2,7 @@ name = "Shade" real_name = "Shade" desc = "A bound spirit" + gender = PLURAL icon = 'icons/mob/mob.dmi' icon_state = "shade" icon_living = "shade" @@ -25,10 +26,13 @@ status_flags = 0 faction = list("cult") status_flags = CANPUSH - flying = 1 + movement_type = FLYING loot = list(/obj/item/weapon/ectoplasm) del_on_death = 1 - deathmessage = "lets out a contented sigh as their form unwinds." + +/mob/living/simple_animal/shade/death() + deathmessage = "lets out a contented sigh as [p_their()] form unwinds." + ..() /mob/living/simple_animal/shade/canSuicide() if(istype(loc, /obj/item/device/soulstone)) //do not suicide inside the soulstone @@ -42,11 +46,11 @@ if(istype(M, /mob/living/simple_animal/hostile/construct/builder)) if(health < maxHealth) adjustHealth(-25) - Beam(M,icon_state="sendbeam",icon='icons/effects/effects.dmi',time=4) + Beam(M,icon_state="sendbeam",time=4) M.visible_message("[M] heals \the [src].", \ "You heal [src], leaving [src] at [health]/[maxHealth] health.") else - M << "You cannot heal [src], as it is unharmed!" + M << "You cannot heal [src], as [p_they()] [p_are()] unharmed!" else if(src != M) ..() diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index bce40f6b5a..17677a07b8 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -3,6 +3,7 @@ icon = 'icons/mob/animal.dmi' health = 20 maxHealth = 20 + gender = PLURAL //placeholder status_flags = CANPUSH @@ -43,6 +44,7 @@ //LETTING SIMPLE ANIMALS ATTACK? WHAT COULD GO WRONG. Defaults to zero so Ian can still be cuddly var/melee_damage_lower = 0 var/melee_damage_upper = 0 + var/obj_damage = 0 //how much damage this simple animal does to objects, if any var/armour_penetration = 0 //How much armour they ignore, as a flat reduction from the targets armour value var/melee_damage_type = BRUTE //Damage type of a simple mob's melee attack, should it do damage. var/list/damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 1, CLONE = 1, STAMINA = 0, OXY = 1) // 1 for full damage , 0 for none , -1 for 1:1 heal from that source @@ -55,12 +57,11 @@ //Hot simple_animal baby making vars var/list/childtype = null - var/scan_ready = 1 + var/next_scan_time = 0 var/animal_species //Sorry, no spider+corgi buttbabies. //simple_animal access var/obj/item/weapon/card/id/access_card = null //innate access uses an internal ID card - var/flying = 0 //whether it's flying or touching the ground. var/buffed = 0 //In the event that you want to have a buffing effect on the mob, but don't want it to stack with other effects, any outside force that applies a buff to a simple mob should at least set this to 1, so we have something to check against var/gold_core_spawnable = 0 //if 1 can be spawned by plasma with gold core, 2 are 'friendlies' spawned with blood @@ -78,11 +79,15 @@ var/attacked_sound = "punch" //Played when someone punches the creature var/dextrous = FALSE //If the creature has, and can use, hands + var/dextrous_hud_type = /datum/hud/dextrous + var/datum/personal_crafting/handcrafting /mob/living/simple_animal/New() ..() - verbs -= /mob/verb/observe + handcrafting = new() + if(gender == PLURAL) + gender = pick(MALE,FEMALE) if(!real_name) real_name = name if(!loc) @@ -94,17 +99,21 @@ client.screen += client.void ..() -/mob/living/simple_animal/updatehealth() - ..() - health = Clamp(health, 0, maxHealth) - /mob/living/simple_animal/Life() if(..()) //alive if(!ckey) - handle_automated_movement() - handle_automated_action() - handle_automated_speech() - return 1 + if(stat != DEAD) + handle_automated_movement() + if(stat != DEAD) + handle_automated_action() + if(stat != DEAD) + handle_automated_speech() + if(stat != DEAD) + return 1 + +/mob/living/simple_animal/updatehealth() + ..() + health = Clamp(health, 0, maxHealth) /mob/living/simple_animal/update_stat() if(status_flags & GODMODE) @@ -172,15 +181,54 @@ emote("me", 2, pick(emote_hear)) -/mob/living/simple_animal/handle_environment(datum/gas_mixture/environment) - var/atmos_suitable = 1 +/mob/living/simple_animal/proc/environment_is_safe(datum/gas_mixture/environment, check_temp = FALSE) + . = TRUE if(pulledby && pulledby.grab_state >= GRAB_KILL && atmos_requirements["min_oxy"]) - atmos_suitable = 0 //getting choked + . = FALSE //getting choked + if(isturf(src.loc) && isopenturf(src.loc)) + var/turf/open/ST = src.loc + if(ST.air) + var/ST_gases = ST.air.gases + ST.air.assert_gases(arglist(hardcoded_gases)) + + var/tox = ST_gases["plasma"][MOLES] + var/oxy = ST_gases["o2"][MOLES] + var/n2 = ST_gases["n2"][MOLES] + var/co2 = ST_gases["co2"][MOLES] + + ST.air.garbage_collect() + + if(atmos_requirements["min_oxy"] && oxy < atmos_requirements["min_oxy"]) + . = FALSE + else if(atmos_requirements["max_oxy"] && oxy > atmos_requirements["max_oxy"]) + . = FALSE + else if(atmos_requirements["min_tox"] && tox < atmos_requirements["min_tox"]) + . = FALSE + else if(atmos_requirements["max_tox"] && tox > atmos_requirements["max_tox"]) + . = FALSE + else if(atmos_requirements["min_n2"] && n2 < atmos_requirements["min_n2"]) + . = FALSE + else if(atmos_requirements["max_n2"] && n2 > atmos_requirements["max_n2"]) + . = FALSE + else if(atmos_requirements["min_co2"] && co2 < atmos_requirements["min_co2"]) + . = FALSE + else if(atmos_requirements["max_co2"] && co2 > atmos_requirements["max_co2"]) + . = FALSE + else + if(atmos_requirements["min_oxy"] || atmos_requirements["min_tox"] || atmos_requirements["min_n2"] || atmos_requirements["min_co2"]) + . = FALSE + + if(check_temp) + var/areatemp = get_temperature(environment) + if((areatemp < minbodytemp) || (areatemp > maxbodytemp)) + . = FALSE + + +/mob/living/simple_animal/handle_environment(datum/gas_mixture/environment) var/atom/A = src.loc if(isturf(A)) - var/turf/T = A var/areatemp = get_temperature(environment) if( abs(areatemp - bodytemperature) > 40 ) var/diff = areatemp - bodytemperature @@ -188,50 +236,14 @@ //world << "changed from [bodytemperature] by [diff] to [bodytemperature + diff]" bodytemperature += diff - if(istype(T,/turf/open)) - var/turf/open/ST = T - if(ST.air) - var/ST_gases = ST.air.gases - ST.air.assert_gases(arglist(hardcoded_gases)) - - var/tox = ST_gases["plasma"][MOLES] - var/oxy = ST_gases["o2"][MOLES] - var/n2 = ST_gases["n2"][MOLES] - var/co2 = ST_gases["co2"][MOLES] - - ST.air.garbage_collect() - - if(atmos_requirements["min_oxy"] && oxy < atmos_requirements["min_oxy"]) - atmos_suitable = 0 - else if(atmos_requirements["max_oxy"] && oxy > atmos_requirements["max_oxy"]) - atmos_suitable = 0 - else if(atmos_requirements["min_tox"] && tox < atmos_requirements["min_tox"]) - atmos_suitable = 0 - else if(atmos_requirements["max_tox"] && tox > atmos_requirements["max_tox"]) - atmos_suitable = 0 - else if(atmos_requirements["min_n2"] && n2 < atmos_requirements["min_n2"]) - atmos_suitable = 0 - else if(atmos_requirements["max_n2"] && n2 > atmos_requirements["max_n2"]) - atmos_suitable = 0 - else if(atmos_requirements["min_co2"] && co2 < atmos_requirements["min_co2"]) - atmos_suitable = 0 - else if(atmos_requirements["max_co2"] && co2 > atmos_requirements["max_co2"]) - atmos_suitable = 0 - - if(!atmos_suitable) - adjustBruteLoss(unsuitable_atmos_damage) - - else - if(atmos_requirements["min_oxy"] || atmos_requirements["min_tox"] || atmos_requirements["min_n2"] || atmos_requirements["min_co2"]) - adjustBruteLoss(unsuitable_atmos_damage) + if(!environment_is_safe(environment)) + adjustHealth(-unsuitable_atmos_damage) handle_temperature_damage() /mob/living/simple_animal/proc/handle_temperature_damage() - if(bodytemperature < minbodytemp) - adjustBruteLoss(2) - else if(bodytemperature > maxbodytemp) - adjustBruteLoss(3) + if((bodytemperature < minbodytemp) || (bodytemperature > maxbodytemp)) + adjustHealth(-unsuitable_atmos_damage) /mob/living/simple_animal/gib() if(butcher_results) @@ -244,16 +256,9 @@ if(icon_gib) new /obj/effect/overlay/temp/gib_animation/animal(loc, icon_gib) -/mob/living/simple_animal/blob_act(obj/effect/blob/B) - adjustBruteLoss(20) - return - -/mob/living/simple_animal/say_quote(input) - var/ending = copytext(input, length(input)) - if(speak_emote && speak_emote.len && ending != "?" && ending != "!") - var/emote = pick(speak_emote) - if(emote) - return "[emote], \"[input]\"" +/mob/living/simple_animal/say_quote(input, list/spans) + if(speak_emote && speak_emote.len) + verb_say = pick(speak_emote) return ..() /mob/living/simple_animal/emote(act, m_type=1, message = null) @@ -264,121 +269,7 @@ act = "me" ..(act, m_type, message) -/mob/living/simple_animal/attack_animal(mob/living/simple_animal/M) - if(..()) - var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) - attack_threshold_check(damage,M.melee_damage_type) - return 1 -/mob/living/simple_animal/bullet_act(obj/item/projectile/Proj) - if(!Proj) - return - apply_damage(Proj.damage, Proj.damage_type) - Proj.on_hit(src) - return 0 - -/mob/living/simple_animal/proc/adjustHealth(amount) - if(status_flags & GODMODE) - return 0 - bruteloss = Clamp(bruteloss + amount, 0, maxHealth) - updatehealth() - return amount - -/mob/living/simple_animal/adjustBruteLoss(amount) - if(damage_coeff[BRUTE]) - . = adjustHealth(amount*damage_coeff[BRUTE]) - -/mob/living/simple_animal/adjustFireLoss(amount) - if(damage_coeff[BURN]) - . = adjustHealth(amount*damage_coeff[BURN]) - -/mob/living/simple_animal/adjustOxyLoss(amount) - if(damage_coeff[OXY]) - . = adjustHealth(amount*damage_coeff[OXY]) - -/mob/living/simple_animal/adjustToxLoss(amount) - if(damage_coeff[TOX]) - . = adjustHealth(amount*damage_coeff[TOX]) - -/mob/living/simple_animal/adjustCloneLoss(amount) - if(damage_coeff[CLONE]) - . = adjustHealth(amount*damage_coeff[CLONE]) - -/mob/living/simple_animal/adjustStaminaLoss(amount) - return - -/mob/living/simple_animal/attack_hand(mob/living/carbon/human/M) - ..() - switch(M.a_intent) - - if("help") - if (health > 0) - visible_message("[M] [response_help] [src].") - playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) - - if("grab") - grabbedby(M) - - if("harm", "disarm") - M.do_attack_animation(src) - visible_message("[M] [response_harm] [src]!") - playsound(loc, attacked_sound, 25, 1, -1) - attack_threshold_check(harm_intent_damage) - add_logs(M, src, "attacked") - updatehealth() - return 1 - -/mob/living/simple_animal/attack_paw(mob/living/carbon/monkey/M) - if(..()) //successful monkey bite. - if(stat != DEAD) - var/damage = rand(1, 3) - attack_threshold_check(damage) - return 1 - if (M.a_intent == "help") - if (health > 0) - visible_message("[M.name] [response_help] [src].") - playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) - - return - -/mob/living/simple_animal/attack_alien(mob/living/carbon/alien/humanoid/M) - if(..()) //if harm or disarm intent. - if(M.a_intent == "disarm") - playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1) - visible_message("[M] [response_disarm] [name]!", \ - "[M] [response_disarm] [name]!") - add_logs(M, src, "disarmed") - else - var/damage = rand(15, 30) - visible_message("[M] has slashed at [src]!", \ - "[M] has slashed at [src]!") - playsound(loc, 'sound/weapons/slice.ogg', 25, 1, -1) - attack_threshold_check(damage) - add_logs(M, src, "attacked") - return 1 - -/mob/living/simple_animal/attack_larva(mob/living/carbon/alien/larva/L) - if(..()) //successful larva bite - var/damage = rand(5, 10) - if(stat != DEAD) - L.amount_grown = min(L.amount_grown + damage, L.max_grown) - attack_threshold_check(damage) - return 1 - -/mob/living/simple_animal/attack_slime(mob/living/simple_animal/slime/M) - if(..()) //successful slime attack - var/damage = rand(15, 25) - if(M.is_adult) - damage = rand(20, 35) - attack_threshold_check(damage) - return 1 - -/mob/living/simple_animal/proc/attack_threshold_check(damage, damagetype = BRUTE) - if(damage <= force_threshold || !damage_coeff[damagetype]) - visible_message("[src] looks unharmed.") - else - adjustBruteLoss(damage) - updatehealth() /mob/living/simple_animal/movement_delay() . = ..() @@ -401,8 +292,7 @@ for(var/i in loot) new i(loc) if(dextrous) - unEquip(r_hand) - unEquip(l_hand) + drop_all_held_items() if(!gibbed) if(death_sound) playsound(get_turf(src),death_sound, 200, 1) @@ -412,7 +302,12 @@ visible_message("\The [src] stops moving...") if(del_on_death) ghostize() + stat = DEAD + //Prevent infinite loops if the mob Destroy() is overriden in such + //a manner as to cause a call to death() again + del_on_death = FALSE qdel(src) + return else health = 0 icon_state = icon_dead @@ -421,19 +316,6 @@ lying = 1 ..() -/mob/living/simple_animal/ex_act(severity, target) - ..() - switch (severity) - if (1) - gib() - return - - if (2) - adjustBruteLoss(60) - - if(3) - adjustBruteLoss(30) - /mob/living/simple_animal/proc/CanAttack(atom/the_target) if(see_invisible < the_target.invisibility) return 0 @@ -450,9 +332,6 @@ /mob/living/simple_animal/handle_fire() return -/mob/living/simple_animal/update_fire() - return - /mob/living/simple_animal/IgniteMob() return FALSE @@ -467,16 +346,10 @@ lying = 0 . = 1 -/mob/living/simple_animal/fully_heal(admin_revive = 0) - health = maxHealth - ..() - /mob/living/simple_animal/proc/make_babies() // <3 <3 <3 - if(gender != FEMALE || stat || !scan_ready || !childtype || !animal_species || ticker.current_state != GAME_STATE_PLAYING) - return 0 - scan_ready = 0 - spawn(400) - scan_ready = 1 + if(gender != FEMALE || stat || next_scan_time > world.time || !childtype || !animal_species || ticker.current_state != GAME_STATE_PLAYING) + return + next_scan_time = world.time + 400 var/alone = 1 var/mob/living/simple_animal/partner var/children = 0 @@ -491,33 +364,41 @@ else if(!istype(M, childtype) && M.gender == MALE) //Better safe than sorry ;_; partner = M - else if(istype(M, /mob/living) && !faction_check(M)) //shyness check. we're not shy in front of things that share a faction with us. - alone = 0 - continue + else if(isliving(M) && !faction_check(M)) //shyness check. we're not shy in front of things that share a faction with us. + return //we never mate when not alone, so just abort early + if(alone && partner && children < 3) var/childspawn = pickweight(childtype) - new childspawn(loc) - return 1 - return 0 + var/turf/target = get_turf(loc) + if(target) + return new childspawn(target) -/mob/living/simple_animal/stripPanelUnequip(obj/item/what, mob/who, where, child_override) - if(!child_override) +/mob/living/simple_animal/canUseTopic(atom/movable/M, be_close = 0, no_dextery = 0) + if(incapacitated()) + return 0 + if(no_dextery || dextrous) + if(be_close && !in_range(M, src)) + return 0 + else src << "You don't have the dexterity to do this!" + return 0 + return 1 + +/mob/living/simple_animal/stripPanelUnequip(obj/item/what, mob/who, where) + if(!canUseTopic(who, TRUE)) return else ..() -/mob/living/simple_animal/stripPanelEquip(obj/item/what, mob/who, where, child_override) - if(!child_override) - src << "You don't have the dexterity to do this!" +/mob/living/simple_animal/stripPanelEquip(obj/item/what, mob/who, where) + if(!canUseTopic(who, TRUE)) return else ..() /mob/living/simple_animal/update_canmove() if(paralysis || stunned || weakened || stat || resting) - drop_r_hand() - drop_l_hand() + drop_all_held_items() canmove = 0 else if(buckled) canmove = 0 @@ -572,62 +453,71 @@ /mob/living/simple_animal/get_idcard() return access_card -//Dextrous simple mobs can use hands! -/mob/living/simple_animal/create_mob_hud() - if(client && !hud_used && dextrous) - hud_used = new /datum/hud/dextrous(src, ui_style2icon(client.prefs.UI_style)) +/mob/living/simple_animal/OpenCraftingMenu() + if(dextrous) + handcrafting.ui_interact(src) + +/mob/living/simple_animal/can_hold_items() + return dextrous + +/mob/living/simple_animal/IsAdvancedToolUser() + return dextrous /mob/living/simple_animal/activate_hand(selhand) if(!dextrous) return ..() + if(!selhand) + selhand = (active_hand_index % held_items.len)+1 if(istext(selhand)) selhand = lowertext(selhand) if(selhand == "right" || selhand == "r") - selhand = 0 + selhand = 2 if(selhand == "left" || selhand == "l") selhand = 1 - if(selhand != src.hand) - swap_hand() + if(selhand != active_hand_index) + swap_hand(selhand) else mode() -/mob/living/simple_animal/swap_hand() +/mob/living/simple_animal/swap_hand(hand_index) if(!dextrous) return ..() - var/obj/item/held_item = get_active_hand() + if(!hand_index) + hand_index = (active_hand_index % held_items.len)+1 + var/obj/item/held_item = get_active_held_item() if(held_item) if(istype(held_item, /obj/item/weapon/twohanded)) var/obj/item/weapon/twohanded/T = held_item if(T.wielded == 1) usr << "Your other hand is too busy holding the [T.name]." return - hand = !hand - if(hud_used && hud_used.inv_slots[slot_l_hand] && hud_used.inv_slots[slot_r_hand]) + var/oindex = active_hand_index + active_hand_index = hand_index + if(hud_used) var/obj/screen/inventory/hand/H - H = hud_used.inv_slots[slot_l_hand] - H.update_icon() - H = hud_used.inv_slots[slot_r_hand] - H.update_icon() - -/mob/living/simple_animal/UnarmedAttack(atom/A, proximity) - if(!dextrous) - return ..() - if(!ismob(A)) - A.attack_hand(src) - update_hand_icons() + H = hud_used.hand_slots["[hand_index]"] + if(H) + H.update_icon() + H = hud_used.hand_slots["[oindex]"] + if(H) + H.update_icon() /mob/living/simple_animal/put_in_hands(obj/item/I) ..() - update_hand_icons() + update_inv_hands() -/mob/living/simple_animal/proc/update_hand_icons() +/mob/living/simple_animal/update_inv_hands() if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD) + var/obj/item/l_hand = get_item_for_held_index(1) + var/obj/item/r_hand = get_item_for_held_index(2) if(r_hand) r_hand.layer = ABOVE_HUD_LAYER - r_hand.screen_loc = ui_rhand + r_hand.plane = ABOVE_HUD_PLANE + r_hand.screen_loc = ui_hand_position(get_held_index_of_item(r_hand)) client.screen |= r_hand if(l_hand) l_hand.layer = ABOVE_HUD_LAYER - l_hand.screen_loc = ui_lhand + l_hand.plane = ABOVE_HUD_PLANE + l_hand.screen_loc = ui_hand_position(get_held_index_of_item(l_hand)) client.screen |= l_hand diff --git a/code/modules/mob/living/simple_animal/slime/life.dm b/code/modules/mob/living/simple_animal/slime/life.dm index 367fcbb6a3..1aef1490ba 100644 --- a/code/modules/mob/living/simple_animal/slime/life.dm +++ b/code/modules/mob/living/simple_animal/slime/life.dm @@ -63,7 +63,7 @@ break if(Target in view(1,src)) - if(istype(Target, /mob/living/silicon)) + if(issilicon(Target)) if(!Atkcool) Atkcool = 1 spawn(45) @@ -234,7 +234,7 @@ Feedstop(0, 0) return - add_nutrition(rand(7,15)) + add_nutrition((rand(7,15) * config.damage_multiplier)) //Heal yourself. adjustBruteLoss(-3) @@ -343,7 +343,7 @@ if(issilicon(L) && (rabid || attacked)) // They can't eat silicons, but they can glomp them in defence targets += L // Possible target found! - if(istype(L, /mob/living/carbon/human)) //Ignore slime(wo)men + if(ishuman(L)) //Ignore slime(wo)men var/mob/living/carbon/human/H = L if(src.type in H.dna.species.ignored_by) continue diff --git a/code/modules/mob/living/simple_animal/slime/powers.dm b/code/modules/mob/living/simple_animal/slime/powers.dm index 1c723809aa..89fa968e24 100644 --- a/code/modules/mob/living/simple_animal/slime/powers.dm +++ b/code/modules/mob/living/simple_animal/slime/powers.dm @@ -169,7 +169,7 @@ feedback_add_details("slime_babies_born","slimebirth_[replacetext(M.colour," ","_")]") var/mob/living/simple_animal/slime/new_slime = pick(babies) - new_slime.a_intent = "harm" + new_slime.a_intent = INTENT_HARM new_slime.languages_spoken = languages_spoken new_slime.languages_understood = languages_understood if(src.mind) diff --git a/code/modules/mob/living/simple_animal/slime/slime.dm b/code/modules/mob/living/simple_animal/slime/slime.dm index 232d66b8f2..62d0aa3b41 100644 --- a/code/modules/mob/living/simple_animal/slime/slime.dm +++ b/code/modules/mob/living/simple_animal/slime/slime.dm @@ -9,7 +9,8 @@ var/list/slime_colours = list("rainbow", "grey", "purple", "metal", "orange", icon = 'icons/mob/slimes.dmi' icon_state = "grey baby slime" pass_flags = PASSTABLE - ventcrawler = 2 + ventcrawler = VENTCRAWLER_ALWAYS + gender = NEUTER var/is_adult = 0 var/docile = 0 languages_spoken = SLIME | HUMAN @@ -258,14 +259,16 @@ var/list/slime_colours = list("rainbow", "grey", "purple", "metal", "orange", if(..()) //successful larva bite. attacked += 10 -/mob/living/simple_animal/slime/attack_hulk(mob/living/carbon/human/user) - if(user.a_intent == "harm") - adjustBruteLoss(15) +/mob/living/simple_animal/slime/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0) + if(user.a_intent == INTENT_HARM) discipline_slime(user) + return ..() + /mob/living/simple_animal/slime/attack_hand(mob/living/carbon/human/M) if(buckled) + M.do_attack_animation(src, ATTACK_EFFECT_DISARM) if(buckled == M) if(prob(60)) visible_message("[M] attempts to wrestle \the [name] off!") @@ -278,7 +281,6 @@ var/list/slime_colours = list("rainbow", "grey", "purple", "metal", "orange", discipline_slime(M) else - M.do_attack_animation(src) if(prob(30)) visible_message("[M] attempts to wrestle \the [name] off of [buckled]!") playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1) @@ -290,9 +292,9 @@ var/list/slime_colours = list("rainbow", "grey", "purple", "metal", "orange", discipline_slime(M) else if(stat == DEAD && surgeries.len) - if(M.a_intent == "help") + if(M.a_intent == INTENT_HELP) for(var/datum/surgery/S in surgeries) - if(S.next_step(M, src)) + if(S.next_step(M)) return 1 if(..()) //successful attack attacked += 10 @@ -305,9 +307,9 @@ var/list/slime_colours = list("rainbow", "grey", "purple", "metal", "orange", /mob/living/simple_animal/slime/attackby(obj/item/W, mob/living/user, params) if(stat == DEAD && surgeries.len) - if(user.a_intent == "help") + if(user.a_intent == INTENT_HELP) for(var/datum/surgery/S in surgeries) - if(S.next_step(user, src)) + if(S.next_step(user)) 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/simple_animal/spawner.dm b/code/modules/mob/living/simple_animal/spawner.dm index bd01da0b97..def9423807 100644 --- a/code/modules/mob/living/simple_animal/spawner.dm +++ b/code/modules/mob/living/simple_animal/spawner.dm @@ -3,6 +3,7 @@ icon = 'icons/mob/animal.dmi' health = 100 maxHealth = 100 + gender = NEUTER var/list/spawned_mobs = list() var/max_mobs = 5 var/spawn_delay = 0 @@ -12,7 +13,7 @@ status_flags = 0 anchored = 1 AIStatus = AI_OFF - a_intent = "harm" + a_intent = INTENT_HARM stop_automated_movement = 1 wander = 0 atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0) @@ -41,6 +42,7 @@ return 0 spawn_delay = world.time + spawn_time var/mob/living/simple_animal/L = new mob_type(src.loc) + L.admin_spawned = admin_spawned //If we were admin spawned, lets have our children count as that as well. spawned_mobs += L L.nest = src L.faction = src.faction diff --git a/code/modules/mob/living/status_procs.dm b/code/modules/mob/living/status_procs.dm index 44c96f7f21..0545bd03b0 100644 --- a/code/modules/mob/living/status_procs.dm +++ b/code/modules/mob/living/status_procs.dm @@ -14,4 +14,61 @@ if(damage >= 0) ear_damage = damage if(deaf >= 0) - ear_deaf = deaf \ No newline at end of file + ear_deaf = deaf + + +//////////////////////////////STUN //////////////////////////////////// + +/mob/living/proc/add_stun_absorption(key, duration, priority, message, self_message, examine_message) +//adds a stun absorption with a key, a duration in deciseconds, its priority, and the messages it makes when you're stunned/examined, if any + if(!islist(stun_absorption)) + stun_absorption = list() + if(stun_absorption[key]) + stun_absorption[key]["end_time"] = world.time + duration + stun_absorption[key]["priority"] = priority + stun_absorption[key]["stuns_absorbed"] = 0 + else + stun_absorption[key] = list("end_time" = world.time + duration, "priority" = priority, "stuns_absorbed" = 0, \ + "visible_message" = message, "self_message" = self_message, "examine_message" = examine_message) + +/mob/living/Stun(amount, updating = 1, ignore_canstun = 0) + if(!stat && islist(stun_absorption)) + var/priority_absorb_key + var/highest_priority + for(var/i in stun_absorption) + if(stun_absorption[i]["end_time"] > world.time && (!priority_absorb_key || stun_absorption[i]["priority"] > highest_priority)) + priority_absorb_key = stun_absorption[i] + highest_priority = stun_absorption[i]["priority"] + if(priority_absorb_key) + if(priority_absorb_key["visible_message"] || priority_absorb_key["self_message"]) + if(priority_absorb_key["visible_message"] && priority_absorb_key["self_message"]) + visible_message("[src][priority_absorb_key["visible_message"]]", "[priority_absorb_key["self_message"]]") + else if(priority_absorb_key["visible_message"]) + visible_message("[src][priority_absorb_key["visible_message"]]") + else if(priority_absorb_key["self_message"]) + src << "[priority_absorb_key["self_message"]]" + priority_absorb_key["stuns_absorbed"] += amount + return 0 + ..() + +///////////////////////////////// WEAKEN ///////////////////////////////////// + +/mob/living/Weaken(amount, updating = 1, ignore_canweaken = 0) + if(!stat && islist(stun_absorption)) + var/priority_absorb_key + var/highest_priority + for(var/i in stun_absorption) + if(stun_absorption[i]["end_time"] > world.time && (!priority_absorb_key || stun_absorption[i]["priority"] > highest_priority)) + priority_absorb_key = stun_absorption[i] + highest_priority = priority_absorb_key["priority"] + if(priority_absorb_key) + if(priority_absorb_key["visible_message"] || priority_absorb_key["self_message"]) + if(priority_absorb_key["visible_message"] && priority_absorb_key["self_message"]) + visible_message("[src][priority_absorb_key["visible_message"]]", "[priority_absorb_key["self_message"]]") + else if(priority_absorb_key["visible_message"]) + visible_message("[src][priority_absorb_key["visible_message"]]") + else if(priority_absorb_key["self_message"]) + src << "[priority_absorb_key["self_message"]]" + priority_absorb_key["stuns_absorbed"] += amount + return 0 + ..() \ No newline at end of file diff --git a/code/modules/mob/living/ventcrawling.dm b/code/modules/mob/living/ventcrawling.dm index d7daf9e2da..06e54ac94a 100644 --- a/code/modules/mob/living/ventcrawling.dm +++ b/code/modules/mob/living/ventcrawling.dm @@ -53,17 +53,17 @@ var/list/ventcrawl_machinery = list(/obj/machinery/atmospherics/components/unary if(!client) return - if(iscarbon(src) && contents.len && ventcrawler < 2)//It must have atleast been 1 to get this far - for(var/obj/item/I in contents) - var/failed = 0 - if(istype(I, /obj/item/weapon/implant)) - continue - else - failed++ - - if(failed) - src << "You can't crawl around in the ventilation ducts with items!" - return + if(iscarbon(src) && ventcrawler < 2)//It must have atleast been 1 to get this far + var/failed = 0 + var/list/items_list = get_equipped_items() + if(items_list.len) + failed = 1 + for(var/obj/item/I in held_items) + failed = 1 + break + if(failed) + src << "You can't crawl around in the ventilation ducts with items!" + return visible_message("[src] scrambles into the ventilation ducts!","You climb into the ventilation ducts.") forceMove(vent_found) @@ -93,7 +93,7 @@ var/list/ventcrawl_machinery = list(/obj/machinery/atmospherics/components/unary var/obj/machinery/atmospherics/A = X //all elements in totalMembers are necessarily of this type. if(!A.pipe_vision_img) A.pipe_vision_img = image(A, A.loc, layer = ABOVE_HUD_LAYER, dir = A.dir) - //20 for being above darkness + A.pipe_vision_img.plane = ABOVE_HUD_PLANE pipes_shown += A.pipe_vision_img if(client) client.images += A.pipe_vision_img diff --git a/code/modules/mob/login.dm b/code/modules/mob/login.dm index 8eb668409b..1108351e48 100644 --- a/code/modules/mob/login.dm +++ b/code/modules/mob/login.dm @@ -60,16 +60,14 @@ sync_mind() - if(client.prefs.hotkeys) - winset(src, null, "mainwindow.macro=[macro_hotkeys] mapwindow.map.focus=true input.background-color=#e0e0e0") - else - winset(src, null, "mainwindow.macro=[macro_default] input.focus=true input.background-color=#d3b5b5") + client.sethotkeys() //set mob specific hotkeys if(viewing_alternate_appearances && viewing_alternate_appearances.len) for(var/aakey in viewing_alternate_appearances) - var/datum/alternate_appearance/AA = viewing_alternate_appearances[aakey] - if(AA) + for(var/aa in viewing_alternate_appearances[aakey]) + var/datum/alternate_appearance/AA = aa AA.display_to(list(src)) update_client_colour() - client.click_intercept = null \ No newline at end of file + if(client) + client.click_intercept = null diff --git a/code/modules/mob/logout.dm b/code/modules/mob/logout.dm index c6627a92e3..680d259a4c 100644 --- a/code/modules/mob/logout.dm +++ b/code/modules/mob/logout.dm @@ -2,6 +2,7 @@ SStgui.on_logout(src) unset_machine() player_list -= src + current_watchlist -= ckey log_access("Logout: [key_name(src)]") if(admin_datums[src.ckey]) if (ticker && ticker.current_state == GAME_STATE_PLAYING) //Only report this stuff if we are currently playing. diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 0683fced77..51a1a56f66 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -2,6 +2,11 @@ mob_list -= src dead_mob_list -= src living_mob_list -= src + all_clockwork_mobs -= src + if(observers && observers.len) + for(var/M in observers) + var/mob/dead/observe = M + observe.reset_perspective(null) qdel(hud_used) if(mind && mind.current == src) spellremove(src) @@ -11,7 +16,8 @@ qdel(cc) client_colours = null ghostize() - return ..() + ..() + return QDEL_HINT_HARDDEL var/next_mob_id = 0 /mob/New() @@ -22,14 +28,13 @@ var/next_mob_id = 0 else living_mob_list += src prepare_huds() - hook_vr("mob_new",list(src)) ..() /atom/proc/prepare_huds() hud_list = list() for(var/hud in hud_possible) var/image/I = image('icons/mob/hud.dmi', src, "") - I.appearance_flags = RESET_COLOR + I.appearance_flags = RESET_COLOR|RESET_TRANSFORM hud_list[hud] = I /mob/proc/Cell() @@ -79,63 +84,43 @@ var/next_mob_id = 0 else src << msg -// Show a message the src mob and to all player mobs who sees the src mob -// This would be for visible actions by the src mob -// message is the message output to anyone who can see e.g. "[src] does something!" +// Show a message to all player mobs who sees this atom +// Show a message to the src mob (if the src is a mob) +// Use for atoms performing visible actions +// message is output to anyone who can see, e.g. "The [src] does something!" // self_message (optional) is what the src mob sees e.g. "You do something!" // blind_message (optional) is what blind people will hear e.g. "You hear something!" +// vision_distance (optional) define how many tiles away the message can be seen. +// ignored_mob (optional) doesn't show any message to a given mob if TRUE. -/mob/visible_message(message, self_message, blind_message) +/atom/proc/visible_message(message, self_message, blind_message, vision_distance, ignored_mob) var/turf/T = get_turf(src) if(!T) return - for(var/mob/M in get_hearers_in_view(7, src)) + var/range = 7 + if(vision_distance) + range = vision_distance + for(var/mob/M in get_hearers_in_view(range, src)) if(!M.client) continue + if(M == ignored_mob) + continue var/msg = message if(M == src) //the src always see the main message or self message if(self_message) msg = self_message else - if(M.see_invisibleOOC Warning:" - src << "Your flavor text is likely out of date! Change" - -/mob/proc/print_flavor_text() - if(flavor_text && flavor_text != "") - var/msg = replacetext(flavor_text, "\n", " ") - if(lentext(msg) <= 40) - return "\blue [msg]" - else - return "\blue [copytext(msg, 1, 37)]... More..." + src << "You don't have a mind datum for some reason, so you can't add a note to it." /mob/verb/abandon_mob() set name = "Respawn" @@ -498,36 +438,31 @@ proc/get_top_level_mob(var/mob/S) // M.Login() //wat return -/mob/verb/observe() - set name = "Observe" - set category = "OOC" - var/is_admin = 0 - if(check_rights_for(client,R_ADMIN)) - is_admin = 1 - else if(stat != DEAD || istype(src, /mob/new_player)) - usr << "You must be observing to use this!" - return +/mob/proc/update_flavor_text() + set src in usr + if(usr != src) + usr << "No." + var/msg = input(usr,"Set the flavor text in your 'examine' verb. Can also be used for OOC notes about your character.","Flavor Text",html_decode(flavor_text)) as message|null - if(is_admin && stat == DEAD) - is_admin = 0 + if(msg != null) + msg = copytext(msg, 1, MAX_MESSAGE_LEN) + msg = html_encode(msg) - var/list/creatures = getpois() + flavor_text = msg - client.perspective = EYE_PERSPECTIVE +/mob/proc/warn_flavor_changed() + if(flavor_text && flavor_text != "") // don't spam people that don't use it! + src << "

    OOC Warning:

    " + src << "Your flavor text is likely out of date! Change" - var/eye_name = null - - var/ok = "[is_admin ? "Admin Observe" : "Observe"]" - eye_name = input("Please, select a player!", ok, null, null) as null|anything in creatures - - if (!eye_name) - return - - var/mob/mob_eye = creatures[eye_name] - - if(client && mob_eye) - client.eye = mob_eye +/mob/proc/print_flavor_text() + if(flavor_text && flavor_text != "") + var/msg = replacetext(flavor_text, "\n", " ") + if(lentext(msg) <= 40) + return "\blue [msg]" + else + return "\blue [copytext(msg, 1, 37)]... More..." /mob/verb/cancel_camera() set name = "Cancel Camera View" @@ -555,8 +490,13 @@ proc/get_top_level_mob(var/mob/S) if(usr.canUseTopic(src, BE_CLOSE, NO_DEXTERY)) if(href_list["item"]) var/slot = text2num(href_list["item"]) - var/obj/item/what = get_item_by_slot(slot) - + var/hand_index = text2num(href_list["hand_index"]) + var/obj/item/what + if(hand_index) + what = get_item_for_held_index(hand_index) + slot = list(slot,hand_index) + else + what = get_item_by_slot(slot) if(what) usr.stripPanelUnequip(what,src,slot) else @@ -586,7 +526,7 @@ proc/get_top_level_mob(var/mob/S) return if(!Adjacent(usr)) return - if(istype(M, /mob/living/silicon/ai)) + if(isAI(M)) return show_inv(usr) @@ -611,10 +551,11 @@ proc/get_top_level_mob(var/mob/S) if(statpanel("Status")) stat(null, "Map: [MAP_NAME]") - if (nextmap && istype(nextmap)) + if(nextmap && istype(nextmap)) stat(null, "Next Map: [nextmap.friendlyname]") stat(null, "Server Time: [time2text(world.realtime, "YYYY-MM-DD hh:mm")]") if(SSshuttle.emergency) + stat(null, "Current Shuttle: [SSshuttle.emergency.name]") var/ETA = SSshuttle.emergency.getModeStr() if(ETA) stat(null, "[ETA] [SSshuttle.emergency.getTimerStr()]") @@ -649,7 +590,7 @@ proc/get_top_level_mob(var/mob/S) var/list/overrides = list() for(var/image/I in client.images) if(I.loc && I.loc.loc == listed_turf && I.override) - overrides = I.loc + overrides += I.loc for(var/atom/A in listed_turf) if(!A.mouse_opacity) continue @@ -711,8 +652,7 @@ proc/get_top_level_mob(var/mob/S) var/has_arms = get_num_arms() var/ignore_legs = get_leg_ignore() if(ko || resting || stunned || chokehold) - drop_r_hand() - drop_l_hand() + drop_all_held_items() unset_machine() if(pulling) stop_pulling() @@ -736,13 +676,16 @@ proc/get_top_level_mob(var/mob/S) layer = initial(layer) update_transform() update_action_buttons_icon() + if(isliving(src)) + var/mob/living/L = src + if(L.has_status_effect(/datum/status_effect/freon)) + canmove = 0 lying_prev = lying return canmove /mob/proc/fall(forced) - drop_l_hand() - drop_r_hand() + drop_all_held_items() /mob/verb/eastface() set hidden = 1 @@ -944,34 +887,68 @@ proc/get_top_level_mob(var/mob/S) /mob/proc/update_health_hud() return -/mob/living/on_varedit(modified_var) - switch(modified_var) +/mob/living/vv_edit_var(var_name, var_value) + switch(var_name) + if("stat") + if((stat == DEAD) && (var_value < DEAD))//Bringing the dead back to life + dead_mob_list -= src + living_mob_list += src + if((stat < DEAD) && (var_value == DEAD))//Kill he + living_mob_list -= src + dead_mob_list += src + . = ..() + switch(var_name) if("weakened") - SetWeakened(weakened) + SetWeakened(var_value) if("stunned") - SetStunned(stunned) + SetStunned(var_value) if("paralysis") - SetParalysis(paralysis) + SetParalysis(var_value) if("sleeping") - SetSleeping(sleeping) + SetSleeping(var_value) if("eye_blind") - set_blindness(eye_blind) + set_blindness(var_value) if("eye_damage") - set_eye_damage(eye_damage) + set_eye_damage(var_value) if("eye_blurry") - set_blurriness(eye_blurry) + set_blurriness(var_value) if("ear_deaf") - setEarDamage(-1, ear_deaf) + setEarDamage(-1, var_value) if("ear_damage") - setEarDamage(ear_damage, -1) + setEarDamage(var_value, -1) if("maxHealth") updatehealth() if("resize") update_transform() - ..() + /mob/proc/is_literate() return 0 +/mob/proc/can_hold_items() + return FALSE + /mob/proc/get_idcard() return + +/mob/vv_get_dropdown() + . = ..() + . += "---" + .["Gib"] = "?_src_=vars;gib=\ref[src]" + .["Give Spell"] = "?_src_=vars;give_spell=\ref[src]" + .["Remove Spell"] = "?_src_=vars;remove_spell=\ref[src]" + .["Give Disease"] = "?_src_=vars;give_disease=\ref[src]" + .["Toggle Godmode"] = "?_src_=vars;godmode=\ref[src]" + .["Drop Everything"] = "?_src_=vars;drop_everything=\ref[src]" + .["Regenerate Icons"] = "?_src_=vars;regenerateicons=\ref[src]" + .["Make Space Ninja"] = "?_src_=vars;ninja=\ref[src]" + .["Show player panel"] = "?_src_=vars;mob_player_panel=\ref[src]" + .["Toggle Build Mode"] = "?_src_=vars;build_mode=\ref[src]" + .["Assume Direct Control"] = "?_src_=vars;direct_control=\ref[src]" + .["Offer Control to Ghosts"] = "?_src_=vars;offer_control=\ref[src]" + +/mob/vv_get_var(var_name) + switch(var_name) + if ("attack_log") + return debug_variable(var_name, attack_log, 0, src, FALSE) + . = ..() \ No newline at end of file diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index b9398c9971..ac61f12ef2 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -11,7 +11,6 @@ var/stat = 0 //Whether a mob is alive or dead. TODO: Move this to living - Nodrak - var/obj/screen/hands = null /*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. The current method unnecessarily clusters up the variable list, especially for humans (although rearranging won't really clean it up a lot but the difference will be noticable for other mobs). @@ -30,16 +29,16 @@ var/attack_log = list( ) var/obj/machinery/machine = null var/other_mobs = null - var/memory = "" var/disabilities = 0 //Carbon + var/movement_type = GROUND //Incase you have multiple types, you automatically use the most useful one. IE: Skating on ice, flippers on water, flying over chasm/space, etc. var/atom/movable/pulling = null var/grab_state = 0 var/flavor_text = "" + var/next_move = null var/notransform = null //Carbon - var/hand = null var/eye_blind = 0 //Carbon var/eye_blurry = 0 //Carbon var/ear_deaf = 0 //Carbon @@ -63,7 +62,6 @@ var/timeofdeath = 0//Living var/cpr_time = 1//Carbon - var/bodytemperature = 310.055 //98.7 F var/drowsyness = 0//Carbon var/dizziness = 0//Carbon @@ -76,12 +74,16 @@ var/stunned = 0 var/weakened = 0 var/losebreath = 0//Carbon - var/a_intent = "help"//Living - var/m_intent = "run"//Living + var/a_intent = INTENT_HELP//Living + var/m_intent = MOVE_INTENT_RUN//Living var/lastKnownIP = null var/atom/movable/buckled = null//Living - var/obj/item/l_hand = null//Living - var/obj/item/r_hand = null//Living + + //Hands + var/active_hand_index = 1 + var/list/held_items = list(null, null) //len = number of hands, eg: 2 nulls is 2 empty hands, 1 item and 1 null is 1 full hand and 1 empty hand. + //held_items[active_hand_index] is the actively held item, but please use get_active_held_item() instead, because OOP + var/obj/item/weapon/storage/s_active = null//Carbon var/see_override = 0 //0 for no override, sets see_invisible = see_override in mob life process @@ -142,4 +144,6 @@ var/list/permanent_huds = list() - var/resize = 1 //Badminnery resize \ No newline at end of file + var/resize = 1 //Badminnery resize + + var/list/observers = null //The list of people observing this mob. diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 08aed2a874..0c82631038 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -1,12 +1,14 @@ // see _DEFINES/is_helpers.dm for mob type checks -/proc/isloyal(A) //Checks to see if the person contains a mindshield implant, then checks that the implant is actually inside of them - for(var/obj/item/weapon/implant/mindshield/L in A) - if(L && L.implanted) - return 1 +/mob/proc/isloyal() //Checks to see if the person contains a mindshield implant, then checks that the implant is actually inside of them return 0 +/mob/living/carbon/isloyal() + for(var/obj/item/weapon/implant/mindshield/L in implants) + return 1 + + /proc/check_zone(zone) if(!zone) return "chest" @@ -273,33 +275,11 @@ It's fairly easy to fix if dealing with single letters but not so much with comp return 0 /mob/proc/abiotic(full_body = 0) - if(l_hand && !l_hand.flags&ABSTRACT || r_hand && !r_hand.flags&ABSTRACT) - return 1 + for(var/obj/item/I in held_items) + if(!(I.flags & NODROP)) + return 1 return 0 -//converts intent-strings into numbers and back -/proc/intent_numeric(argument) - if(istext(argument)) - switch(argument) - if("help") - return 0 - if("disarm") - return 1 - if("grab") - return 2 - else - return 3 - else - switch(argument) - if(0) - return "help" - if(1) - return "disarm" - if(2) - return "grab" - else - return "harm" - //change a mob's act-intent. Input the intent as a string such as "help" or use "right"/"left /mob/verb/a_intent_change(input as text) set name = "a-intent" @@ -307,24 +287,44 @@ It's fairly easy to fix if dealing with single letters but not so much with comp if(ishuman(src) || isalienadult(src) || isbrain(src)) switch(input) - if("help", "disarm", "grab", "harm") + if(INTENT_HELP, INTENT_DISARM, INTENT_GRAB, INTENT_HARM) a_intent = input - if("right") - a_intent = intent_numeric((intent_numeric(a_intent) + 1) % 4) - if("left") - a_intent = intent_numeric((intent_numeric(a_intent) + 3) % 4) + if(INTENT_HOTKEY_RIGHT) + switch (a_intent) + if(INTENT_HELP) + a_intent = INTENT_DISARM + if(INTENT_DISARM) + a_intent = INTENT_GRAB + if(INTENT_GRAB) + a_intent = INTENT_HARM + if(INTENT_HARM) + a_intent = INTENT_HELP + if(INTENT_HOTKEY_LEFT) + switch (a_intent) + if(INTENT_HELP) + a_intent = INTENT_HARM + if(INTENT_DISARM) + a_intent = INTENT_HELP + if(INTENT_GRAB) + a_intent = INTENT_DISARM + if(INTENT_HARM) + a_intent = INTENT_GRAB if(hud_used && hud_used.action_intent) hud_used.action_intent.icon_state = "[a_intent]" - else if(isrobot(src) || ismonkey(src) || islarva(src)) + else if(iscyborg(src) || ismonkey(src) || islarva(src)) switch(input) - if("help") - a_intent = "help" - if("harm") - a_intent = "harm" - if("right","left") - a_intent = intent_numeric(intent_numeric(a_intent) - 3) + if(INTENT_HELP) + a_intent = INTENT_HELP + if(INTENT_HARM) + a_intent = INTENT_HARM + if(INTENT_HOTKEY_RIGHT, INTENT_HOTKEY_LEFT) + switch (a_intent) + if(INTENT_HELP) + a_intent = INTENT_HARM + if(INTENT_HARM) + a_intent = INTENT_HELP if(hud_used && hud_used.action_intent) hud_used.action_intent.icon_state = "[a_intent]" @@ -341,7 +341,7 @@ It's fairly easy to fix if dealing with single letters but not so much with comp if(!istype(M)) return 0 if(issilicon(M)) - if(isrobot(M)) //For cyborgs, returns 1 if the cyborg has a law 0 and special_role. Returns 0 if the borg is merely slaved to an AI traitor. + if(iscyborg(M)) //For cyborgs, returns 1 if the cyborg has a law 0 and special_role. Returns 0 if the borg is merely slaved to an AI traitor. var/mob/living/silicon/robot/R = M if(R.mind && R.mind.special_role) if(R.laws && R.laws.zeroth && R.syndicate) @@ -384,10 +384,6 @@ It's fairly easy to fix if dealing with single letters but not so much with comp return 1 return 0 -/proc/get_both_hands(mob/living/carbon/M) - var/list/hands = list(M.l_hand, M.r_hand) - return hands - /mob/proc/reagent_check(datum/reagent/R) // utilized in the species code return 1 @@ -407,23 +403,28 @@ It's fairly easy to fix if dealing with single letters but not so much with comp A.target = source if(!alert_overlay) var/old_layer = source.layer + var/old_plane = source.plane source.layer = FLOAT_LAYER + source.plane = FLOAT_PLANE A.add_overlay(source) source.layer = old_layer + source.plane = old_plane else alert_overlay.layer = FLOAT_LAYER + alert_overlay.plane = FLOAT_PLANE A.add_overlay(alert_overlay) /proc/item_heal_robotic(mob/living/carbon/human/H, mob/user, brute_heal, burn_heal) var/obj/item/bodypart/affecting = H.get_bodypart(check_zone(user.zone_selected)) - if(affecting && affecting.status == ORGAN_ROBOTIC) + if(affecting && affecting.status == BODYPART_ROBOTIC) var/dam //changes repair text based on how much brute/burn was supplied if(brute_heal > burn_heal) dam = 1 else dam = 0 if((brute_heal > 0 && affecting.brute_dam > 0) || (burn_heal > 0 && affecting.burn_dam > 0)) - affecting.heal_damage(brute_heal,burn_heal,1) + if(affecting.heal_damage(brute_heal, burn_heal, 1, 0)) + H.update_damage_overlays() user.visible_message("[user] has fixed some of the [dam ? "dents on" : "burnt wires in"] [H]'s [affecting].", "You fix some of the [dam ? "dents on" : "burnt wires in"] [H]'s [affecting].") return 1 //successful heal else @@ -453,7 +454,7 @@ It's fairly easy to fix if dealing with single letters but not so much with comp poll_message = "[poll_message] Job:[M.mind.assigned_role]." if(M.mind && M.mind.special_role) poll_message = "[poll_message] Status:[M.mind.special_role]." - var/list/mob/dead/observer/candidates = pollCandidates(poll_message, "pAI", null, FALSE, 100) + var/list/mob/dead/observer/candidates = pollCandidatesForMob(poll_message, "pAI", null, FALSE, 100, M) var/mob/dead/observer/theghost = null if(candidates.len) @@ -467,3 +468,20 @@ It's fairly easy to fix if dealing with single letters but not so much with comp M << "There were no ghosts willing to take control." message_admins("No ghosts were willing to take control of [key_name_admin(M)])") return FALSE + +//toggles the talk wheel +/mob/verb/toggle_talk_wheel() + set name = "talk-wheel" + set hidden = 1 + + if(isliving(src)) + var/mob/living/L = src + if(L.hud_used) + for(var/obj/screen/wheel/talk/TW in L.hud_used.wheels) + TW.Click() + +/mob/proc/is_flying(mob/M = src) + if(M.movement_type & FLYING) + return 1 + else + return 0 diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index d396b59715..76f768494d 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -13,6 +13,27 @@ return (!mover.density || !density || lying) +//The byond version of these verbs wait for the next tick before acting. +// instant verbs however can run mid tick or even during the time between ticks. +/client/verb/moveup() + set name = ".moveup" + set instant = 1 + Move(get_step(mob, NORTH), NORTH) + +/client/verb/movedown() + set name = ".movedown" + set instant = 1 + Move(get_step(mob, SOUTH), SOUTH) + +/client/verb/moveright() + set name = ".moveright" + set instant = 1 + Move(get_step(mob, EAST), EAST) + +/client/verb/moveleft() + set name = ".moveleft" + set instant = 1 + Move(get_step(mob, WEST), WEST) /client/Northeast() swap_hand() @@ -34,7 +55,7 @@ /client/Northwest() - if(!usr.get_active_hand()) + if(!usr.get_active_held_item()) usr << "You have nothing to drop in your hand!" return usr.drop_item() @@ -64,7 +85,7 @@ /client/verb/drop_item() set hidden = 1 - if(!isrobot(mob)) + if(!iscyborg(mob)) mob.drop_item_v() return @@ -90,14 +111,15 @@ /client/Move(n, direct) + if(world.time < move_delay) + return 0 + 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 0 if(mob.notransform) return 0 //This is sota the goto stop mobs from moving var if(mob.control_object) return Move_object(direct) - if(world.time < move_delay) - return 0 if(!isliving(mob)) return mob.Move(n,direct) if(mob.stat == DEAD) @@ -107,6 +129,8 @@ return 0 if(isliving(mob)) var/mob/living/L = mob + if(L.slipping) + return 0 if(L.incorporeal_move) //Move though walls Process_Incorpmove(direct) return 0 @@ -153,6 +177,9 @@ if(mob && .) mob.throwing = 0 + for(var/obj/O in mob) + O.on_mob_move(direct, src) + return . @@ -214,21 +241,19 @@ L.loc = locate(locx,locy,mobloc.z) var/limit = 2//For only two trailing shadows. for(var/turf/T in getline(mobloc, L.loc)) - spawn(0) - anim(T,L,'icons/mob/mob.dmi',,"shadow",,L.dir) + PoolOrNew(/obj/effect/overlay/temp/dir_setting/ninja/shadow, list(T, L.dir)) limit-- if(limit<=0) break else - spawn(0) - anim(mobloc,mob,'icons/mob/mob.dmi',,"shadow",,L.dir) + PoolOrNew(/obj/effect/overlay/temp/dir_setting/ninja/shadow, list(mobloc, L.dir)) L.loc = get_step(L, direct) L.setDir(direct) if(3) //Incorporeal move, but blocked by holy-watered tiles and salt piles. var/turf/open/floor/stepTurf = get_step(L, direct) for(var/obj/effect/decal/cleanable/salt/S in stepTurf) L << "[S] bars your passage!" - if(istype(L, /mob/living/simple_animal/revenant)) + if(isrevenant(L)) var/mob/living/simple_animal/revenant/R = L R.reveal(20) R.stun(20) @@ -257,13 +282,12 @@ return 0 /mob/get_spacemove_backup() - var/atom/movable/dense_object_backup for(var/A in orange(1, get_turf(src))) if(isarea(A)) continue else if(isturf(A)) var/turf/turf = A - if(istype(turf,/turf/open/space)) + if(isspaceturf(turf)) continue if(!turf.density && !mob_negates_gravity()) continue @@ -277,26 +301,29 @@ return AM if(pulling == AM) continue - dense_object_backup = AM - break - . = dense_object_backup + . = AM -/mob/proc/mob_has_gravity(turf/T) - return has_gravity(src, T) +/mob/proc/mob_has_gravity() + return has_gravity() /mob/proc/mob_negates_gravity() return 0 //moves the mob/object we're pulling /mob/proc/Move_Pulled(atom/A) - if (!pulling) + if(!pulling) return - if (pulling.anchored || !pulling.Adjacent(src)) + if(pulling.anchored || !pulling.Adjacent(src)) stop_pulling() return - if (A == loc && pulling.density) + if(isliving(pulling)) + var/mob/living/L = pulling + if(L.buckled && L.buckled.buckle_prevents_pull) //if they're buckled to something that disallows pulling, prevent it + stop_pulling() + return + if(A == loc && pulling.density) return - if (!Process_Spacemove(get_dir(pulling.loc, A))) + if(!Process_Spacemove(get_dir(pulling.loc, A))) return step(pulling, get_dir(pulling.loc, A)) @@ -306,3 +333,101 @@ /mob/proc/update_gravity() return + +//bodypart selection - Cyberboss +//8 toggles through head - eyes - mouth +//4: r-arm 5: chest 6: l-arm +//1: r-leg 2: groin 3: l-leg + +/client/proc/check_has_body_select() + return mob && mob.hud_used && mob.hud_used.zone_select && istype(mob.hud_used.zone_select, /obj/screen/zone_sel) + +/client/verb/body_toggle_head() + set name = "body-toggle-head" + set hidden = 1 + + if(!check_has_body_select()) + return + + var/next_in_line + switch(mob.zone_selected) + if("head") + next_in_line = "eyes" + if("eyes") + next_in_line = "mouth" + else + next_in_line = "head" + + var/obj/screen/zone_sel/selector = mob.hud_used.zone_select + selector.set_selected_zone(next_in_line, mob) + +/client/verb/body_r_arm() + set name = "body-r-arm" + set hidden = 1 + + if(!check_has_body_select()) + return + + var/obj/screen/zone_sel/selector = mob.hud_used.zone_select + selector.set_selected_zone("r_arm", mob) + +/client/verb/body_chest() + set name = "body-chest" + set hidden = 1 + + if(!check_has_body_select()) + return + + var/obj/screen/zone_sel/selector = mob.hud_used.zone_select + selector.set_selected_zone("chest", mob) + +/client/verb/body_l_arm() + set name = "body-l-arm" + set hidden = 1 + + if(!check_has_body_select()) + return + + var/obj/screen/zone_sel/selector = mob.hud_used.zone_select + selector.set_selected_zone("l_arm", mob) + +/client/verb/body_r_leg() + set name = "body-r-leg" + set hidden = 1 + + if(!check_has_body_select()) + return + + var/obj/screen/zone_sel/selector = mob.hud_used.zone_select + selector.set_selected_zone("r_leg", mob) + +/client/verb/body_groin() + set name = "body-groin" + set hidden = 1 + + if(!check_has_body_select()) + return + + var/obj/screen/zone_sel/selector = mob.hud_used.zone_select + selector.set_selected_zone("groin", mob) + +/client/verb/body_l_leg() + set name = "body-l-leg" + set hidden = 1 + + if(!check_has_body_select()) + return + + var/obj/screen/zone_sel/selector = mob.hud_used.zone_select + selector.set_selected_zone("l_leg", mob) + +/client/verb/toggle_walk_run() + set name = "toggle-walk-run" + set hidden = 1 + if(mob) + mob.toggle_move_intent() + +/mob/proc/toggle_move_intent() + if(hud_used && hud_used.static_inventory) + for(var/obj/screen/mov_intent/selector in hud_used.static_inventory) + selector.toggle(src) diff --git a/code/modules/mob/mob_transformation_simple.dm b/code/modules/mob/mob_transformation_simple.dm index 0a86fa8df7..e97fbaaf4a 100644 --- a/code/modules/mob/mob_transformation_simple.dm +++ b/code/modules/mob/mob_transformation_simple.dm @@ -4,8 +4,8 @@ //Note that this proc does NOT do MMI related stuff! /mob/proc/change_mob_type(new_type = null, turf/location = null, new_name = null as text, delete_old_mob = 0 as num) - if(istype(src,/mob/new_player)) - usr << "cannot convert players who have not entered yet." + if(isnewplayer(src)) + usr << "Cannot convert players who have not entered yet." return if(!new_type) @@ -18,8 +18,8 @@ usr << "Invalid type path (new_type = [new_type]) in change_mob_type(). Contact a coder." return - if( new_type == /mob/new_player ) - usr << "cannot convert into a new_player mob type." + if(ispath(new_type, /mob/new_player)) + usr << "Cannot convert into a new_player mob type." return var/mob/M @@ -50,7 +50,7 @@ client.prefs.copy_to(H) H.dna.update_dna_identity() - if(mind && istype(M, /mob/living)) + if(mind && isliving(M)) mind.transfer_to(M, 1) // second argument to force key move to new mob else M.key = key diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 1fa1290973..e70838c5f0 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33 + /mob/new_player var/ready = 0 @@ -201,6 +201,8 @@ if(href_list["votepollid"] && href_list["votetype"]) var/pollid = text2num(href_list["votepollid"]) var/votetype = href_list["votetype"] + //lets take data from the user to decide what kind of poll this is, without validating it + //what could go wrong switch(votetype) if(POLLTYPE_OPTION) var/optionid = text2num(href_list["voteoptionid"]) @@ -219,6 +221,7 @@ var/id_max = text2num(href_list["maxid"]) if( (id_max - id_min) > 100 ) //Basic exploit prevention + //(protip, this stops no exploits) usr << "The option ID difference is too big. Please contact administration or the database admin." return @@ -257,6 +260,14 @@ usr << "Maximum replies reached." break usr << "Vote successful." + if(POLLTYPE_IRV) + if (!href_list["IRVdata"]) + src << "No ordering data found. Please try again or contact an administrator." + var/list/votelist = splittext(href_list["IRVdata"], ",") + if (!vote_on_irv_poll(pollid, votelist)) + src << "Vote failed, please try again or contact an administrator." + return + src << "Vote successful." /mob/new_player/proc/IsJobAvailable(rank) var/datum/job/job = SSjob.GetJob(rank) @@ -291,8 +302,11 @@ SSjob.AssignRole(src, rank, 1) - var/mob/living/carbon/human/character = create_character() //creates the human and transfers vars and mind - SSjob.EquipRank(character, rank, 1) //equips the human + var/mob/living/character = create_character() //creates the human and transfers vars and mind + var/equip = SSjob.EquipRank(character, rank, 1) + if(iscyborg(equip)) //Borgs get borged in the equip, so we need to make sure we handle the new mob. + character = equip + var/D = pick(latejoin) if(!D) @@ -308,24 +322,30 @@ continue character.loc = D + ticker.minds += character.mind - if(character.mind.assigned_role != "Cyborg") - data_core.manifest_inject(character) - ticker.minds += character.mind//Cyborgs and AIs handle this in the transform proc. //TODO!!!!! ~Carn - AnnounceArrival(character, rank) - AddEmploymentContract(character) - else - character.Robotize() + var/mob/living/carbon/human/humanc + if(ishuman(character)) + humanc = character //Let's retypecast the var to be human, + + if(humanc) //These procs all expect humans + data_core.manifest_inject(humanc) + AnnounceArrival(humanc, rank) + AddEmploymentContract(humanc) + if(highlander) + humanc << "THERE CAN BE ONLY ONE!!!" + humanc.make_scottish() joined_player_list += character.ckey - if(config.allow_latejoin_antagonists) - switch(SSshuttle.emergency.mode) - if(SHUTTLE_RECALL, SHUTTLE_IDLE) - ticker.mode.make_antag_chance(character) - if(SHUTTLE_CALL) - if(SSshuttle.emergency.timeLeft(1) > initial(SSshuttle.emergencyCallTime)*0.5) - ticker.mode.make_antag_chance(character) + if(config.allow_latejoin_antagonists && humanc) //Borgs aren't allowed to be antags. Will need to be tweaked if we get true latejoin ais. + if(SSshuttle.emergency) + switch(SSshuttle.emergency.mode) + if(SHUTTLE_RECALL, SHUTTLE_IDLE) + ticker.mode.make_antag_chance(humanc) + if(SHUTTLE_CALL) + if(SSshuttle.emergency.timeLeft(1) > initial(SSshuttle.emergencyCallTime)*0.5) + ticker.mode.make_antag_chance(humanc) qdel(src) /mob/new_player/proc/AnnounceArrival(var/mob/living/carbon/human/character, var/rank) @@ -361,12 +381,13 @@ var/dat = "
    Round Duration: [round(hours)]h [round(mins)]m
    " - switch(SSshuttle.emergency.mode) - if(SHUTTLE_ESCAPE) - dat += "
    The station has been evacuated.

    " - if(SHUTTLE_CALL) - if(!SSshuttle.canRecall()) - dat += "
    The station is currently undergoing evacuation procedures.

    " + if(SSshuttle.emergency) + switch(SSshuttle.emergency.mode) + if(SHUTTLE_ESCAPE) + dat += "
    The station has been evacuated.

    " + if(SHUTTLE_CALL) + if(!SSshuttle.canRecall()) + dat += "
    The station is currently undergoing evacuation procedures.

    " var/available_job_count = 0 for(var/datum/job/job in SSjob.occupations) @@ -408,7 +429,7 @@ var/mob/living/carbon/human/new_character = new(loc) - if(config.force_random_names || appearance_isbanned(src)) + if(config.force_random_names || jobban_isbanned(src, "appearance")) client.prefs.random_character() client.prefs.real_name = client.prefs.pref_species.random_name(gender,1) client.prefs.copy_to(new_character) diff --git a/code/modules/mob/new_player/poll.dm b/code/modules/mob/new_player/poll.dm index 2e02ae07c6..5a39ccaca9 100644 --- a/code/modules/mob/new_player/poll.dm +++ b/code/modules/mob/new_player/poll.dm @@ -24,7 +24,7 @@ /mob/new_player/proc/poll_player(pollid) if(!pollid) return - if(!dbcon.IsConnected()) + if(!establish_db_connection()) usr << "Failed to establish database connection." return var/DBQuery/select_query = dbcon.NewQuery("SELECT starttime, endtime, question, polltype, multiplechoiceoptions FROM [format_table_name("poll_question")] WHERE id = [pollid]") @@ -87,6 +87,7 @@ output += "

    " output += "" output += "" + src << browse(null ,"window=playerpolllist") src << browse(output,"window=playerpoll;size=500x250") if(POLLTYPE_TEXT) var/DBQuery/voted_query = dbcon.NewQuery("SELECT replytext FROM [format_table_name("poll_textreply")] WHERE pollid = [pollid] AND ckey = '[ckey]'") @@ -117,6 +118,7 @@ else vote_text = replacetext(vote_text, "\n", "
    ") output += "[vote_text]" + src << browse(null ,"window=playerpolllist") src << browse(output,"window=playerpoll;size=500x500") if(POLLTYPE_RATING) var/DBQuery/voted_query = dbcon.NewQuery("SELECT o.text, v.rating FROM [format_table_name("poll_option")] o, [format_table_name("poll_vote")] v WHERE o.pollid = [pollid] AND v.ckey = '[ckey]' AND o.id = v.optionid") @@ -172,6 +174,7 @@ output += "" output += "" output += "

    " + src << browse(null ,"window=playerpolllist") src << browse(output,"window=playerpoll;size=500x500") if(POLLTYPE_MULTI) var/DBQuery/voted_query = dbcon.NewQuery("SELECT optionid FROM [format_table_name("poll_vote")] WHERE pollid = [pollid] AND ckey = '[ckey]'") @@ -223,14 +226,133 @@ if(!votedfor.len) output += "

    " output += "" + src << browse(null ,"window=playerpolllist") src << browse(output,"window=playerpoll;size=500x250") + if(POLLTYPE_IRV) + var/datum/asset/irv_assets = get_asset_datum(/datum/asset/simple/IRV) + irv_assets.send(src) + + var/DBQuery/voted_query = dbcon.NewQuery("SELECT optionid FROM [format_table_name("poll_vote")] WHERE pollid = [pollid] AND ckey = '[ckey]'") + if(!voted_query.Execute()) + var/err = voted_query.ErrorMsg() + log_game("SQL ERROR obtaining optionid from poll_vote table. Error : \[[err]\]\n") + return + + var/list/votedfor = list() + while(voted_query.NextRow()) + votedfor.Add(text2num(voted_query.item[1])) + + var/list/datum/polloption/options = list() + + var/DBQuery/options_query = dbcon.NewQuery("SELECT id, text FROM [format_table_name("poll_option")] WHERE pollid = [pollid]") + if(!options_query.Execute()) + var/err = options_query.ErrorMsg() + log_game("SQL ERROR obtaining id, text from poll_option table. Error : \[[err]\]\n") + return + while(options_query.NextRow()) + var/datum/polloption/PO = new() + PO.optionid = text2num(options_query.item[1]) + PO.optiontext = options_query.item[2] + options["[PO.optionid]"] += PO + + //if they already voted, use their sort + if (votedfor.len) + var/list/datum/polloption/newoptions = list() + for (var/V in votedfor) + var/datum/polloption/PO = options["[V]"] + if(PO) + newoptions["[V]"] = PO + options -= "[V]" + //add any options that they didn't vote on (some how, some way) + options = shuffle(options) + for (var/V in options) + newoptions["[V]"] = options["[V]"] + options = newoptions + //otherwise, lets shuffle it. + else + var/list/datum/polloption/newoptions = list() + while (options.len) + var/list/local_options = options.Copy() + var/key + //the jist is we randomly remove all options from a copy of options until only one reminds, + // move that over to our new list + // and repeat until we've moved all of them + while (local_options.len) + key = local_options[rand(1, local_options.len)] + local_options -= key + var/value = options[key] + options -= key + newoptions[key] = value + options = newoptions + + var/output = {" + + + + + + + + + +

    Player poll
    + Question: [pollquestion]
    Please sort the options in the order of most preferred to least preferred
    + Revoting has been enabled on this poll, if you think you made a mistake, simply revote
    + Poll runs from [pollstarttime] until [pollendtime]

    +

    +
    + + + + +
    +
    Most Preferred
    +
      + "} + for(var/O in options) + var/datum/polloption/PO = options["[O]"] + if(PO.optionid && PO.optiontext) + output += "
    1. [PO.optiontext]
    2. \n" + output += {" +
    +
    Least Preferred

    +
    +

    + "} + src << browse(null ,"window=playerpolllist") + src << browse(output,"window=playerpoll;size=500x500") return -/mob/new_player/proc/poll_check_voted(pollid, table) - if(!dbcon.IsConnected()) +/mob/new_player/proc/poll_check_voted(pollid, text = FALSE) + var/table = "poll_vote" + if (text) + table = "poll_textreply" + if (!establish_db_connection()) usr << "Failed to establish database connection." return - var/DBQuery/query_hasvoted = dbcon.NewQuery("SELECT id FROM [format_table_name(table)] WHERE pollid = [pollid] AND ckey = '[ckey]'") + var/DBQuery/query_hasvoted = dbcon.NewQuery("SELECT id FROM `[format_table_name(table)]` WHERE pollid = [pollid] AND ckey = '[ckey]'") if(!query_hasvoted.Execute()) var/err = query_hasvoted.ErrorMsg() log_game("SQL ERROR obtaining id from [table] table. Error : \[[err]\]\n") @@ -243,10 +365,134 @@ . = client.holder.rank return . + +/mob/new_player/proc/vote_rig_check() + if (usr != src) + 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]") + usr << "You don't seem to be [ckey]." + src << "Something went horribly wrong processing your vote. Please contact an administrator, they should have gotten a message about this" + return 0 + return 1 + +/mob/new_player/proc/vote_valid_check(pollid, holder, type) + if (!establish_db_connection()) + src << "Failed to establish database connection." + return 0 + pollid = text2num(pollid) + if (!pollid || pollid < 0) + return 0 + //validate the poll is actually the right type of poll and its still active + var/DBQuery/select_query = dbcon.NewQuery({" + SELECT id + FROM [format_table_name("poll_question")] + WHERE + [(holder ? "" : "adminonly = false AND")] + id = [pollid] + AND + Now() BETWEEN starttime AND endtime + AND + polltype = '[type]' + "}) + if (!select_query.Execute()) + var/err = select_query.ErrorMsg() + log_game("SQL ERROR validating poll via poll_question table. Error : \[[err]\]\n") + return 0 + if (!select_query.NextRow()) + return 0 + return 1 + +/mob/new_player/proc/vote_on_irv_poll(pollid, list/votelist) + if (!establish_db_connection()) + src << "Failed to establish database connection." + return 0 + if (!vote_rig_check()) + return 0 + pollid = text2num(pollid) + if (!pollid || pollid < 0) + return 0 + if (!votelist || !istype(votelist) || !votelist.len) + return 0 + if (!client) + return 0 + //save these now so we can still process the vote if the client goes away while we process. + var/datum/admins/holder = client.holder + var/rank = "Player" + if (holder) + rank = holder.rank + var/ckey = client.ckey + var/address = client.address + + //validate the poll + if (!vote_valid_check(pollid, holder, POLLTYPE_IRV)) + return 0 + + //lets collect the options + var/DBQuery/options_query = dbcon.NewQuery("SELECT id FROM [format_table_name("poll_option")] WHERE pollid = [pollid]") + if (!options_query.Execute()) + var/err = options_query.ErrorMsg() + log_game("SQL ERROR obtaining id from poll_option table. Error : \[[err]\]\n") + return 0 + var/list/optionlist = list() + while (options_query.NextRow()) + optionlist += text2num(options_query.item[1]) + + //validate their votes are actually in the list of options and actually numbers + var/list/numberedvotelist = list() + for (var/vote in votelist) + vote = text2num(vote) + numberedvotelist += vote + if (!vote) //this is fine because voteid starts at 1, so it will never be 0 + src << "Error: Invalid (non-numeric) votes in the vote data." + return 0 + if (!(vote in optionlist)) + src << "Votes for choices that do not appear to be in the poll detected" + return 0 + if (!numberedvotelist.len) + src << "Invalid vote data" + return 0 + + //lets add the vote, first we generate a insert statement. + + var/sqlrowlist = "" + for (var/vote in numberedvotelist) + if (sqlrowlist != "") + sqlrowlist += ", " //a comma (,) at the start of the first row to insert will trigger a SQL error + sqlrowlist += "(Now(), [pollid], [vote], '[sanitizeSQL(ckey)]', '[sanitizeSQL(address)]', '[sanitizeSQL(rank)]')" + + //now lets delete their old votes (if any) + var/DBQuery/voted_query = dbcon.NewQuery("DELETE FROM [format_table_name("poll_vote")] WHERE pollid = [pollid] AND ckey = '[ckey]'") + if (!voted_query.Execute()) + var/err = voted_query.ErrorMsg() + log_game("SQL ERROR clearing out old votes. Error : \[[err]\]\n") + return 0 + + //now to add the new ones. + var/DBQuery/query_insert = dbcon.NewQuery("INSERT INTO [format_table_name("poll_vote")] (datetime, pollid, optionid, ckey, ip, adminrank) VALUES [sqlrowlist]") + if(!query_insert.Execute()) + var/err = query_insert.ErrorMsg() + log_game("SQL ERROR adding vote to table. Error : \[[err]\]\n") + src << "Error adding vote." + return 0 + src << browse(null,"window=playerpoll") + return 1 + + /mob/new_player/proc/vote_on_poll(pollid, optionid) + if(!establish_db_connection()) + src << "Failed to establish database connection." + return 0 + if (!vote_rig_check()) + return 0 if(!pollid || !optionid) return - var/adminrank = poll_check_voted(pollid, "poll_vote") + //validate the poll + if (!vote_valid_check(pollid, client.holder, POLLTYPE_OPTION)) + return 0 + var/adminrank = poll_check_voted(pollid) if(!adminrank) return var/DBQuery/query_insert = dbcon.NewQuery("INSERT INTO [format_table_name("poll_vote")] (datetime, pollid, optionid, ckey, ip, adminrank) VALUES (Now(), [pollid], [optionid], '[ckey]', '[client.address]', '[adminrank]')") @@ -258,12 +504,20 @@ return 1 /mob/new_player/proc/log_text_poll_reply(pollid, replytext) + if(!establish_db_connection()) + src << "Failed to establish database connection." + return 0 + if (!vote_rig_check()) + return 0 if(!pollid) return + //validate the poll + if (!vote_valid_check(pollid, client.holder, POLLTYPE_TEXT)) + return 0 if(!replytext) usr << "The text you entered was blank. Please correct the text and submit again." return - var/adminrank = poll_check_voted(pollid, "poll_textreply") + var/adminrank = poll_check_voted(pollid, TRUE) if(!adminrank) return replytext = sanitizeSQL(replytext) @@ -279,11 +533,16 @@ return 1 /mob/new_player/proc/vote_on_numval_poll(pollid, optionid, rating) + if(!establish_db_connection()) + src << "Failed to establish database connection." + return 0 + if (!vote_rig_check()) + return 0 if(!pollid || !optionid || !rating) return - if(!dbcon.IsConnected()) - usr << "Failed to establish database connection." - return + //validate the poll + if (!vote_valid_check(pollid, client.holder, POLLTYPE_RATING)) + return 0 var/DBQuery/query_hasvoted = dbcon.NewQuery("SELECT id FROM [format_table_name("poll_vote")] WHERE optionid = [optionid] AND ckey = '[ckey]'") if(!query_hasvoted.Execute()) var/err = query_hasvoted.ErrorMsg() @@ -304,11 +563,16 @@ return 1 /mob/new_player/proc/vote_on_multi_poll(pollid, optionid) + if(!establish_db_connection()) + src << "Failed to establish database connection." + return 0 + if (!vote_rig_check()) + return 0 if(!pollid || !optionid) return 1 - if(!dbcon.IsConnected()) - usr << "Failed to establish database connection." - return 1 + //validate the poll + if (!vote_valid_check(pollid, client.holder, POLLTYPE_MULTI)) + return 0 var/DBQuery/query_get_choicelen = dbcon.NewQuery("SELECT multiplechoiceoptions FROM [format_table_name("poll_question")] WHERE id = [pollid]") if(!query_get_choicelen.Execute()) var/err = query_get_choicelen.ErrorMsg() diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm index 261ec8a543..499bcb328f 100644 --- a/code/modules/mob/new_player/preferences_setup.dm +++ b/code/modules/mob/new_player/preferences_setup.dm @@ -61,21 +61,26 @@ if(previewJob) mannequin.job = previewJob.title previewJob.equip(mannequin, TRUE) - + CHECK_TICK preview_icon = icon('icons/effects/effects.dmi', "nothing") preview_icon.Scale(48+32, 16+32) - + CHECK_TICK mannequin.setDir(NORTH) + var/icon/stamp = getFlatIcon(mannequin) + CHECK_TICK preview_icon.Blend(stamp, ICON_OVERLAY, 25, 17) - + CHECK_TICK mannequin.setDir(WEST) stamp = getFlatIcon(mannequin) + CHECK_TICK preview_icon.Blend(stamp, ICON_OVERLAY, 1, 9) - + CHECK_TICK mannequin.setDir(SOUTH) stamp = getFlatIcon(mannequin) + CHECK_TICK preview_icon.Blend(stamp, ICON_OVERLAY, 49, 1) - + CHECK_TICK preview_icon.Scale(preview_icon.Width() * 2, preview_icon.Height() * 2) // Scaling here to prevent blurring in the browser. + CHECK_TICK qdel(mannequin) diff --git a/code/modules/mob/new_player/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories.dm index db0f66893e..974166bad1 100644 --- a/code/modules/mob/new_player/sprite_accessories.dm +++ b/code/modules/mob/new_player/sprite_accessories.dm @@ -59,10 +59,8 @@ var/locked = 0 //Is this part locked from roundstart selection? Used for parts that apply effects var/dimension_x = 32 var/dimension_y = 32 + var/extra = 0 var/center = FALSE //Should we center the sprite? - var/extra = 0 //Used for extra overlays on top of the bodypart that may be colored seperately. Uses the secondary mutant color as default. See species.dm for the actual overlay code. - var/extra_icon = 'icons/mob/mam_bodyparts.dmi' - var/extra_color_src = MUTCOLORS2 //The color source for the extra overlay. ////////////////////// // Hair Definitions // @@ -70,10 +68,6 @@ /datum/sprite_accessory/hair icon = 'icons/mob/human_face.dmi' // default icon for all hairs -/datum/sprite_accessory/hair/bald //Moved to the top so we can all stop scrolling all the way down. - name = "Bald" - icon_state = null - /datum/sprite_accessory/hair/short name = "Short Hair" // try to capatilize the names please~ icon_state = "hair_a" // you do not need to define _s or _l sub-states, game automatically does this for you @@ -399,6 +393,10 @@ name = "Balding Hair" icon_state = "hair_e" +/datum/sprite_accessory/hair/bald + name = "Bald" + icon_state = null + /datum/sprite_accessory/hair/parted name = "Side Part" icon_state = "hair_part" @@ -467,6 +465,10 @@ name = "Bob Hair 2" icon_state = "hair_bob2" +/datum/sprite_accessory/hair/boddicker + name = "Boddicker" + icon_state = "hair_boddicker" + /datum/sprite_accessory/hair/long name = "Long Hair 1" icon_state = "hair_long" @@ -495,6 +497,10 @@ name = "Long Side Part" icon_state = "hair_longsidepart" +/datum/sprite_accessory/hair/sidecut + name = "Sidecut" + icon_state = "hair_sidecut" + ///////////////////////////// // Facial Hair Definitions // ///////////////////////////// @@ -579,6 +585,11 @@ name = "Fu Manchu" icon_state = "facial_fumanchu" +/datum/sprite_accessory/facial_hair/brokenman + name = "Broken Man" + icon_state = "facial_brokenman" + + /////////////////////////// // Underwear Definitions // /////////////////////////// @@ -1128,35 +1139,20 @@ /datum/sprite_accessory/body_markings icon = 'icons/mob/mutant_bodyparts.dmi' - color_src = MUTCOLORS2 /datum/sprite_accessory/body_markings/none name = "None" icon_state = "none" -/datum/sprite_accessory/body_markings/dstripe - name = "Dark Stripe" - icon_state = "dstripe" - -/datum/sprite_accessory/body_markings/lstripe - name = "Light Stripe" - icon_state = "lstripe" - /datum/sprite_accessory/body_markings/dtiger name = "Dark Tiger Body" icon_state = "dtiger" - -/datum/sprite_accessory/body_markings/dtigerhead - name = "Dark Tiger Body + Head" - icon_state = "dtigerhead" + gender_specific = 1 /datum/sprite_accessory/body_markings/ltiger name = "Light Tiger Body" icon_state = "ltiger" - -/datum/sprite_accessory/body_markings/ltigerhead - name = "Light Tiger Body + Head" - icon_state = "ltigerhead" + gender_specific = 1 /datum/sprite_accessory/body_markings/lbelly name = "Light Belly" @@ -1177,30 +1173,6 @@ name = "Smooth" icon_state = "smooth" -/datum/sprite_accessory/tails/lizard/light - name = "Light" - icon_state = "light" - -/datum/sprite_accessory/tails_animated/lizard/light - name = "Light" - icon_state = "light" - -/datum/sprite_accessory/tails/lizard/dstripe - name = "Dark Stripe" - icon_state = "dstripe" - -/datum/sprite_accessory/tails_animated/lizard/dstripe - name = "Dark Stripe" - icon_state = "dstripe" - -/datum/sprite_accessory/tails/lizard/lstripe - name = "Light Stripe" - icon_state = "lstripe" - -/datum/sprite_accessory/tails_animated/lizard/lstripe - name = "Light Stripe" - icon_state = "lstripe" - /datum/sprite_accessory/tails/lizard/dtiger name = "Dark Tiger" icon_state = "dtiger" @@ -1217,23 +1189,13 @@ name = "Light Tiger" icon_state = "ltiger" -/datum/sprite_accessory/tails/lizard/club - name = "Club" - icon_state = "club" +/datum/sprite_accessory/tails/lizard/spikes + name = "Spikes" + icon_state = "spikes" -/datum/sprite_accessory/tails_animated/lizard/club - name = "Club" - icon_state = "club" - -/datum/sprite_accessory/tails/lizard/aqua - name = "Aquatic" - icon_state = "aqua" - -/datum/sprite_accessory/tails_animated/lizard/aqua - name = "Aquatic" - icon_state = "aqua" - -/datum/sprite_accessory/tails/human +/datum/sprite_accessory/tails_animated/lizard/spikes + name = "Spikes" + icon_state = "spikes" /datum/sprite_accessory/tails/human/none name = "None" @@ -1246,10 +1208,12 @@ /datum/sprite_accessory/tails/human/cat name = "Cat" icon_state = "cat" + color_src = HAIR /datum/sprite_accessory/tails_animated/human/cat name = "Cat" icon_state = "cat" + color_src = HAIR /datum/sprite_accessory/snouts icon = 'icons/mob/mutant_bodyparts.dmi' @@ -1308,6 +1272,7 @@ name = "Cat" icon_state = "cat" hasinner = 1 + color_src = HAIR /datum/sprite_accessory/wings/none name = "None" @@ -1409,6 +1374,15 @@ name = "Aquatic" icon_state = "aqua" +/datum/sprite_accessory/legs //legs are a special case, they aren't actually sprite_accessories but are updated with them. + icon = null //These datums exist for selecting legs on preference, and little else + +/datum/sprite_accessory/legs/none + name = "Normal Legs" + +/datum/sprite_accessory/legs/digitigrade_lizard + name = "Digitigrade Legs" + //Human Ears/Tails /datum/sprite_accessory/ears/fox @@ -1499,6 +1473,7 @@ color_src = 0 icon = 'icons/mob/mam_bodyparts.dmi' + /datum/sprite_accessory/tails_animated/human/murid name = "Murid" icon_state = "murid" @@ -1595,13 +1570,13 @@ name = "Fox" icon_state = "fox" extra = 1 - extra_color_src = MUTCOLORS2 +// extra_color_src = MUTCOLORS2 /datum/sprite_accessory/mam_tails_animated/fox name = "Fox" icon_state = "fox" extra = 1 - extra_color_src = MUTCOLORS2 +// extra_color_src = MUTCOLORS2 //Fennec /datum/sprite_accessory/mam_ears/fennec @@ -1725,6 +1700,7 @@ /datum/sprite_accessory/xeno_head/none name = "None" + /datum/sprite_accessory/xeno_head/hunter name = "Hunter" icon_state = "hunter" @@ -1736,7 +1712,7 @@ /datum/sprite_accessory/xeno_head/sentinel name = "Sentinel" icon_state = "sentinel" - +/* //Slimecoon Parts /datum/sprite_accessory/slimecoon_ears icon = 'icons/mob/exotic_bodyparts.dmi' @@ -1749,4 +1725,4 @@ /datum/sprite_accessory/slimecoon_snout icon = 'icons/mob/exotic_bodyparts.dmi' name = "Hunter" - icon_state = "slimecoon" \ No newline at end of file + icon_state = "slimecoon" */ \ No newline at end of file diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index bb6c86300e..008d1da494 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -35,6 +35,18 @@ usr << "Speech is currently admin-disabled." return + if(jobban_isbanned(src, "OOC")) + src << "You have been banned from deadchat." + return + + if (src.client) + if(src.client.prefs.muted & MUTE_DEADCHAT) + src << "You cannot talk in deadchat (muted)." + return + + if(src.client.handle_spam_prevention(message,MUTE_DEADCHAT)) + return + var/mob/dead/observer/O = src if(isobserver(src) && O.deadchat_name) name = "[O.deadchat_name]" diff --git a/code/modules/mob/status_procs.dm b/code/modules/mob/status_procs.dm index 21fae144f2..dfbe625053 100644 --- a/code/modules/mob/status_procs.dm +++ b/code/modules/mob/status_procs.dm @@ -46,24 +46,24 @@ /////////////////////////////////// PARALYSIS //////////////////////////////////// -/mob/proc/Paralyse(amount, updating = 1) - if(status_flags & CANPARALYSE) +/mob/proc/Paralyse(amount, updating = 1, ignore_canparalyse = 0) + if(status_flags & CANPARALYSE || ignore_canparalyse) var/old_paralysis = paralysis paralysis = max(max(paralysis,amount),0) if((!old_paralysis && paralysis) || (old_paralysis && !paralysis)) if(updating) update_stat() -/mob/proc/SetParalysis(amount, updating = 1) - if(status_flags & CANPARALYSE) +/mob/proc/SetParalysis(amount, updating = 1, ignore_canparalyse = 0) + if(status_flags & CANPARALYSE || ignore_canparalyse) var/old_paralysis = paralysis paralysis = max(amount,0) if((!old_paralysis && paralysis) || (old_paralysis && !paralysis)) if(updating) update_stat() -/mob/proc/AdjustParalysis(amount, updating = 1) - if(status_flags & CANPARALYSE) +/mob/proc/AdjustParalysis(amount, updating = 1, ignore_canparalyse = 0) + if(status_flags & CANPARALYSE || ignore_canparalyse) var/old_paralysis = paralysis paralysis = max(paralysis + amount,0) if((!old_paralysis && paralysis) || (old_paralysis && !paralysis)) @@ -245,7 +245,13 @@ return - +//////////////////////////////// HUSK DISABILITY ///////////////////////////: + +/mob/proc/cure_husk() + return + +/mob/proc/become_husk() + return diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index 609ec0cb8b..f2988c6291 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -4,20 +4,34 @@ //Handle items on mob //first implants & organs - var/list/implants = list() + var/list/stored_implants = list() var/list/int_organs = list() if (tr_flags & TR_KEEPIMPLANTS) - for(var/obj/item/weapon/implant/W in src) - implants += W + for(var/X in implants) + var/obj/item/weapon/implant/IMP = X + stored_implants += IMP + IMP.removed(src, 1, 1) if (tr_flags & TR_KEEPORGANS) - for(var/obj/item/organ/I in internal_organs) + for(var/X in internal_organs) + var/obj/item/organ/I = X int_organs += I I.Remove(src, 1) + var/list/missing_bodyparts_zones = get_missing_limbs() + + var/obj/item/cavity_object + + var/obj/item/bodypart/chest/CH = get_bodypart("chest") + if(CH.cavity_item) + cavity_object = CH.cavity_item + CH.cavity_item = null + if(tr_flags & TR_KEEPITEMS) - for(var/obj/item/W in (src.contents-implants-int_organs)) + var/Itemlist = get_equipped_items() + Itemlist += held_items + for(var/obj/item/W in Itemlist) unEquip(W) //Make mob invisible and spawn animation @@ -28,14 +42,9 @@ cut_overlays() invisibility = INVISIBILITY_MAXIMUM - var/atom/movable/overlay/animation = new( loc ) - animation.icon_state = "blank" - animation.icon = 'icons/mob/mob.dmi' - animation.master = src - flick("h2monkey", animation) + PoolOrNew(/obj/effect/overlay/temp/monkeyify, get_turf(src)) sleep(22) var/mob/living/carbon/monkey/O = new /mob/living/carbon/monkey( loc ) - qdel(animation) // hash the original name? if(tr_flags & TR_HASHNAME) @@ -56,7 +65,7 @@ if(hellbound) O.hellbound = hellbound O.loc = loc - O.a_intent = "harm" + O.a_intent = INTENT_HARM //keep viruses? if (tr_flags & TR_KEEPVIRUS) @@ -68,31 +77,53 @@ //keep damage? if (tr_flags & TR_KEEPDAMAGE) - O.setToxLoss(getToxLoss()) - O.adjustBruteLoss(getBruteLoss()) - O.setOxyLoss(getOxyLoss()) - O.adjustFireLoss(getFireLoss()) + O.setToxLoss(getToxLoss(), 0) + O.adjustBruteLoss(getBruteLoss(), 0) + O.setOxyLoss(getOxyLoss(), 0) + O.setCloneLoss(getCloneLoss(), 0) + O.adjustFireLoss(getFireLoss(), 0) + O.updatehealth() O.radiation = radiation //re-add implants to new mob if (tr_flags & TR_KEEPIMPLANTS) - for(var/obj/item/weapon/implant/I in implants) - I.loc = O - I.implanted = O + for(var/Y in implants) + var/obj/item/weapon/implant/IMP = Y + IMP.implant(O, null, 1) //re-add organs to new mob if(tr_flags & TR_KEEPORGANS) - for(var/obj/item/organ/I in O.internal_organs) - qdel(I) + for(var/X in O.internal_organs) + qdel(X) - for(var/obj/item/organ/I in int_organs) + for(var/X in int_organs) + var/obj/item/organ/I = X I.Insert(O, 1) + var/obj/item/bodypart/chest/torso = O.get_bodypart("chest") + if(cavity_object) + torso.cavity_item = cavity_object //cavity item is given to the new chest + cavity_object.loc = O + + for(var/missing_zone in missing_bodyparts_zones) + var/obj/item/bodypart/BP = O.get_bodypart(missing_zone) + BP.drop_limb(1) + if(!(tr_flags & TR_KEEPORGANS)) //we didn't already get rid of the organs of the newly spawned mob + for(var/X in O.internal_organs) + var/obj/item/organ/G = X + if(BP.body_zone == check_zone(G.zone)) + if(mind && mind.changeling && istype(G, /obj/item/organ/brain)) + continue //so headless changelings don't lose their brain when transforming + qdel(G) //we lose the organs in the missing limbs + qdel(BP) + //transfer mind and delete old mob if(mind) mind.transfer_to(O) if(O.mind.changeling) O.mind.changeling.purchasedpowers += new /obj/effect/proc_holder/changeling/humanform(null) + + if (tr_flags & TR_DEFAULTMSG) O << "You are now a monkey." @@ -113,21 +144,35 @@ //Handle items on mob //first implants & organs - var/list/implants = list() + var/list/stored_implants = list() var/list/int_organs = list() if (tr_flags & TR_KEEPIMPLANTS) - for(var/obj/item/weapon/implant/W in src) - implants += W + for(var/X in implants) + var/obj/item/weapon/implant/IMP = X + stored_implants += IMP + IMP.removed(src, 1, 1) if (tr_flags & TR_KEEPORGANS) - for(var/obj/item/organ/I in internal_organs) + for(var/X in internal_organs) + var/obj/item/organ/I = X int_organs += I I.Remove(src, 1) + var/list/missing_bodyparts_zones = get_missing_limbs() + + var/obj/item/cavity_object + + var/obj/item/bodypart/chest/CH = get_bodypart("chest") + if(CH.cavity_item) + cavity_object = CH.cavity_item + CH.cavity_item = null + //now the rest if (tr_flags & TR_KEEPITEMS) - for(var/obj/item/W in (src.contents-implants-int_organs)) + var/Itemlist = get_equipped_items() + Itemlist += held_items + for(var/obj/item/W in Itemlist) unEquip(W) if (client) client.screen -= W @@ -135,6 +180,9 @@ W.loc = loc W.dropped(src) W.layer = initial(W.layer) + W.plane = initial(W.plane) + + //Make mob invisible and spawn animation notransform = 1 @@ -143,16 +191,11 @@ icon = null cut_overlays() invisibility = INVISIBILITY_MAXIMUM - var/atom/movable/overlay/animation = new( loc ) - animation.icon_state = "blank" - animation.icon = 'icons/mob/mob.dmi' - animation.master = src - flick("monkey2h", animation) + PoolOrNew(/obj/effect/overlay/temp/monkeyify/humanify, get_turf(src)) sleep(22) var/mob/living/carbon/human/O = new( loc ) for(var/obj/item/C in O.loc) O.equip_to_appropriate_slot(C) - qdel(animation) dna.transfer_identity(O) O.updateappearance(mutcolor_update=1) @@ -188,33 +231,53 @@ //keep damage? if (tr_flags & TR_KEEPDAMAGE) - O.setToxLoss(getToxLoss()) - O.adjustBruteLoss(getBruteLoss()) - O.setOxyLoss(getOxyLoss()) - O.adjustFireLoss(getFireLoss()) + O.setToxLoss(getToxLoss(), 0) + O.adjustBruteLoss(getBruteLoss(), 0) + O.setOxyLoss(getOxyLoss(), 0) + O.setCloneLoss(getCloneLoss(), 0) + O.adjustFireLoss(getFireLoss(), 0) + O.updatehealth() O.radiation = radiation //re-add implants to new mob if (tr_flags & TR_KEEPIMPLANTS) - for(var/obj/item/weapon/implant/I in implants) - I.loc = O - I.implanted = O - O.sec_hud_set_implants() + for(var/Y in implants) + var/obj/item/weapon/implant/IMP = Y + IMP.implant(O, null, 1) if(tr_flags & TR_KEEPORGANS) - for(var/obj/item/organ/I in O.internal_organs) - qdel(I) + for(var/X in O.internal_organs) + qdel(X) - for(var/obj/item/organ/I in int_organs) + for(var/X in int_organs) + var/obj/item/organ/I = X I.Insert(O, 1) + + var/obj/item/bodypart/chest/torso = get_bodypart("chest") + if(cavity_object) + torso.cavity_item = cavity_object //cavity item is given to the new chest + cavity_object.loc = O + + for(var/missing_zone in missing_bodyparts_zones) + var/obj/item/bodypart/BP = O.get_bodypart(missing_zone) + BP.drop_limb(1) + if(!(tr_flags & TR_KEEPORGANS)) //we didn't already get rid of the organs of the newly spawned mob + for(var/X in O.internal_organs) + var/obj/item/organ/G = X + if(BP.body_zone == check_zone(G.zone)) + if(mind && mind.changeling && istype(G, /obj/item/organ/brain)) + continue //so headless changelings don't lose their brain when transforming + qdel(G) //we lose the organs in the missing limbs + qdel(BP) + if(mind) mind.transfer_to(O) if(O.mind.changeling) for(var/obj/effect/proc_holder/changeling/humanform/HF in O.mind.changeling.purchasedpowers) mind.changeling.purchasedpowers -= HF - O.a_intent = "help" + O.a_intent = INTENT_HELP if (tr_flags & TR_DEFAULTMSG) O << "You are now a human." @@ -383,7 +446,7 @@ if("Drone") new_xeno = new /mob/living/carbon/alien/humanoid/drone(loc) - new_xeno.a_intent = "harm" + new_xeno.a_intent = INTENT_HARM new_xeno.key = key new_xeno << "You are now an alien." @@ -415,15 +478,15 @@ new_slime = pick(babies) else new_slime = new /mob/living/simple_animal/slime(loc) - new_slime.a_intent = "harm" + new_slime.a_intent = INTENT_HARM new_slime.key = key new_slime << "You are now a slime. Skreee!" . = new_slime qdel(src) -/mob/proc/become_overmind(mode_made = 0) - var/mob/camera/blob/B = new /mob/camera/blob(loc, 0, mode_made) +/mob/proc/become_overmind(mode_made, starting_points = 60) + var/mob/camera/blob/B = new /mob/camera/blob(loc, 0, mode_made, starting_points) if(mind) mind.transfer_to(B) else @@ -432,23 +495,6 @@ qdel(src) -/mob/proc/become_god(var/side_colour) - var/mob/camera/god/G = new /mob/camera/god(loc) - G.side = side_colour - if(mind) - mind.transfer_to(G) - else - G.key = key - - G.job = "Deity" - G.rename_self("deity") - G.update_icons() - - . = G - qdel(src) - - - /mob/living/carbon/human/proc/corgize() if (notransform) return @@ -463,7 +509,7 @@ qdel(t) var/mob/living/simple_animal/pet/dog/corgi/new_corgi = new /mob/living/simple_animal/pet/dog/corgi (loc) - new_corgi.a_intent = "harm" + new_corgi.a_intent = INTENT_HARM new_corgi.key = key new_corgi << "You are now a Corgi. Yap Yap!" @@ -496,7 +542,7 @@ var/mob/new_mob = new mobpath(src.loc) new_mob.key = key - new_mob.a_intent = "harm" + new_mob.a_intent = INTENT_HARM new_mob << "You suddenly feel more... animalistic." @@ -515,7 +561,7 @@ var/mob/new_mob = new mobpath(src.loc) new_mob.key = key - new_mob.a_intent = "harm" + new_mob.a_intent = INTENT_HARM new_mob << "You feel more... animalistic" . = new_mob diff --git a/code/modules/mob/update_icons.dm b/code/modules/mob/update_icons.dm index 734e38c39c..581584912d 100644 --- a/code/modules/mob/update_icons.dm +++ b/code/modules/mob/update_icons.dm @@ -19,15 +19,15 @@ /mob/proc/update_inv_back() return -/mob/proc/update_inv_l_hand() - return - -/mob/proc/update_inv_r_hand() +/mob/proc/update_inv_hands() return /mob/proc/update_inv_wear_mask() return +/mob/proc/update_inv_neck() + return + /mob/proc/update_inv_wear_suit() return @@ -40,9 +40,15 @@ /mob/proc/update_inv_head() return +/mob/proc/update_body() + return + /mob/proc/update_hair() return +/mob/proc/update_fire() + return + /mob/proc/update_inv_gloves() return @@ -62,4 +68,4 @@ return /mob/proc/update_inv_ears() - return + return \ No newline at end of file diff --git a/code/modules/modular_computers/NTNet/NTNRC/conversation.dm b/code/modules/modular_computers/NTNet/NTNRC/conversation.dm new file mode 100644 index 0000000000..e46f77cf0a --- /dev/null +++ b/code/modules/modular_computers/NTNet/NTNRC/conversation.dm @@ -0,0 +1,65 @@ +var/global/static/ntnrc_uid = 0 + +/datum/ntnet_conversation + var/id = null + var/title = "Untitled Conversation" + var/datum/computer_file/program/chatclient/operator // "Administrator" of this channel. Creator starts as channel's operator, + var/list/messages = list() + var/list/clients = list() + var/password + +/datum/ntnet_conversation/New() + id = ntnrc_uid + ntnrc_uid++ + if(ntnet_global) + ntnet_global.chat_channels.Add(src) + ..() + +/datum/ntnet_conversation/proc/add_message(message, username) + message = "[worldtime2text()] [username]: [message]" + messages.Add(message) + trim_message_list() + +/datum/ntnet_conversation/proc/add_status_message(message) + messages.Add("[worldtime2text()] -!- [message]") + trim_message_list() + +/datum/ntnet_conversation/proc/trim_message_list() + if(messages.len <= 50) + return + messages = messages.Copy(messages.len-50 ,0) + +/datum/ntnet_conversation/proc/add_client(datum/computer_file/program/chatclient/C) + if(!istype(C)) + return + clients.Add(C) + add_status_message("[C.username] has joined the channel.") + // No operator, so we assume the channel was empty. Assign this user as operator. + if(!operator) + changeop(C) + +/datum/ntnet_conversation/proc/remove_client(datum/computer_file/program/chatclient/C) + if(!istype(C) || !(C in clients)) + return + clients.Remove(C) + add_status_message("[C.username] has left the channel.") + + // Channel operator left, pick new operator + if(C == operator) + operator = null + if(clients.len) + var/datum/computer_file/program/chatclient/newop = pick(clients) + changeop(newop) + + +/datum/ntnet_conversation/proc/changeop(datum/computer_file/program/chatclient/newop) + if(istype(newop)) + operator = newop + add_status_message("Channel operator status transferred to [newop.username].") + +/datum/ntnet_conversation/proc/change_title(newtitle, datum/computer_file/program/chatclient/client) + if(operator != client) + return 0 // Not Authorised + + add_status_message("[client.username] has changed channel title from [title] to [newtitle]") + title = newtitle \ No newline at end of file diff --git a/code/modules/modular_computers/NTNet/NTNet.dm b/code/modules/modular_computers/NTNet/NTNet.dm new file mode 100644 index 0000000000..6816a402c7 --- /dev/null +++ b/code/modules/modular_computers/NTNet/NTNet.dm @@ -0,0 +1,145 @@ +var/global/datum/ntnet/ntnet_global = new() + + +// This is the NTNet datum. There can be only one NTNet datum in game at once. Modular computers read data from this. +/datum/ntnet + var/list/relays = list() + var/list/logs = list() + var/list/available_station_software = list() + var/list/available_antag_software = list() + var/list/chat_channels = list() + var/list/fileservers = list() + // Amount of logs the system tries to keep in memory. Keep below 999 to prevent byond from acting weirdly. + // High values make displaying logs much laggier. + var/setting_maxlogcount = 100 + + // These only affect wireless. LAN (consoles) are unaffected since it would be possible to create scenario where someone turns off NTNet, and is unable to turn it back on since it refuses connections + var/setting_softwaredownload = 1 + var/setting_peertopeer = 1 + var/setting_communication = 1 + var/setting_systemcontrol = 1 + var/setting_disabled = 0 // Setting to 1 will disable all wireless, independently on relays status. + + var/intrusion_detection_enabled = 1 // Whether the IDS warning system is enabled + var/intrusion_detection_alarm = 0 // Set when there is an IDS warning due to malicious (antag) software. + + +// If new NTNet datum is spawned, it replaces the old one. +/datum/ntnet/New() + if(ntnet_global && (ntnet_global != src)) + ntnet_global = src // There can be only one. + for(var/obj/machinery/ntnet_relay/R in machines) + relays.Add(R) + R.NTNet = src + build_software_lists() + add_log("NTNet logging system activated.") + +// Simplified logging: Adds a log. log_string is mandatory parameter, source is optional. +/datum/ntnet/proc/add_log(log_string, obj/item/weapon/computer_hardware/network_card/source = null) + var/log_text = "[worldtime2text()] - " + if(source) + log_text += "[source.get_network_tag()] - " + else + log_text += "*SYSTEM* - " + log_text += log_string + logs.Add(log_text) + + + // We have too many logs, remove the oldest entries until we get into the limit + if(logs.len > setting_maxlogcount) + logs = logs.Copy(logs.len-setting_maxlogcount,0) + + +// Checks whether NTNet operates. If parameter is passed checks whether specific function is enabled. +/datum/ntnet/proc/check_function(specific_action = 0) + if(!relays || !relays.len) // No relays found. NTNet is down + return 0 + + var/operating = 0 + + // Check all relays. If we have at least one working relay, network is up. + for(var/M in relays) + var/obj/machinery/ntnet_relay/R = M + if(R.is_operational()) + operating = 1 + break + + if(setting_disabled) + return 0 + + switch(specific_action) + if(NTNET_SOFTWAREDOWNLOAD) + return (operating && setting_softwaredownload) + if(NTNET_PEERTOPEER) + return (operating && setting_peertopeer) + if(NTNET_COMMUNICATION) + return (operating && setting_communication) + if(NTNET_SYSTEMCONTROL) + return (operating && setting_systemcontrol) + return operating + +// Builds lists that contain downloadable software. +/datum/ntnet/proc/build_software_lists() + available_station_software = list() + available_antag_software = list() + for(var/F in typesof(/datum/computer_file/program)) + var/datum/computer_file/program/prog = new F + // Invalid type (shouldn't be possible but just in case), invalid filetype (not executable program) or invalid filename (unset program) + if(!prog || prog.filename == "UnknownProgram" || prog.filetype != "PRG") + continue + // Check whether the program should be available for station/antag download, if yes, add it to lists. + if(prog.available_on_ntnet) + available_station_software.Add(prog) + if(prog.available_on_syndinet) + available_antag_software.Add(prog) + +// Attempts to find a downloadable file according to filename var +/datum/ntnet/proc/find_ntnet_file_by_name(filename) + for(var/N in available_station_software) + var/datum/computer_file/program/P = N + if(filename == P.filename) + return P + for(var/N in available_antag_software) + var/datum/computer_file/program/P = N + if(filename == P.filename) + return P + +// Resets the IDS alarm +/datum/ntnet/proc/resetIDS() + intrusion_detection_alarm = 0 + +/datum/ntnet/proc/toggleIDS() + resetIDS() + intrusion_detection_enabled = !intrusion_detection_enabled + +// Removes all logs +/datum/ntnet/proc/purge_logs() + logs = list() + add_log("-!- LOGS DELETED BY SYSTEM OPERATOR -!-") + +// Updates maximal amount of stored logs. Use this instead of setting the number, it performs required checks. +/datum/ntnet/proc/update_max_log_count(lognumber) + if(!lognumber) + return 0 + // Trim the value if necessary + lognumber = max(MIN_NTNET_LOGS, min(lognumber, MAX_NTNET_LOGS)) + setting_maxlogcount = lognumber + add_log("Configuration Updated. Now keeping [setting_maxlogcount] logs in system memory.") + +/datum/ntnet/proc/toggle_function(function) + if(!function) + return + function = text2num(function) + switch(function) + if(NTNET_SOFTWAREDOWNLOAD) + setting_softwaredownload = !setting_softwaredownload + add_log("Configuration Updated. Wireless network firewall now [setting_softwaredownload ? "allows" : "disallows"] connection to software repositories.") + if(NTNET_PEERTOPEER) + setting_peertopeer = !setting_peertopeer + add_log("Configuration Updated. Wireless network firewall now [setting_peertopeer ? "allows" : "disallows"] peer to peer network traffic.") + if(NTNET_COMMUNICATION) + setting_communication = !setting_communication + add_log("Configuration Updated. Wireless network firewall now [setting_communication ? "allows" : "disallows"] instant messaging and similar communication services.") + if(NTNET_SYSTEMCONTROL) + setting_systemcontrol = !setting_systemcontrol + add_log("Configuration Updated. Wireless network firewall now [setting_systemcontrol ? "allows" : "disallows"] remote control of station's systems.") diff --git a/code/modules/modular_computers/NTNet/NTNet_relay.dm b/code/modules/modular_computers/NTNet/NTNet_relay.dm new file mode 100644 index 0000000000..e0b4be93d0 --- /dev/null +++ b/code/modules/modular_computers/NTNet/NTNet_relay.dm @@ -0,0 +1,129 @@ +// Relays don't handle any actual communication. Global NTNet datum does that, relays only tell the datum if it should or shouldn't work. +/obj/machinery/ntnet_relay + name = "NTNet Quantum Relay" + desc = "A very complex router and transmitter capable of connecting electronic devices together. Looks fragile." + use_power = 2 + active_power_usage = 10000 //10kW, apropriate for machine that keeps massive cross-Zlevel wireless network operational. Used to be 20 but that actually drained the smes one round + idle_power_usage = 100 + icon = 'icons/obj/machines/telecomms.dmi' + icon_state = "bus" + anchored = 1 + density = 1 + var/datum/ntnet/NTNet = null // This is mostly for backwards reference and to allow varedit modifications from ingame. + var/enabled = 1 // Set to 0 if the relay was turned off + var/dos_failure = 0 // Set to 1 if the relay failed due to (D)DoS attack + var/list/dos_sources = list() // Backwards reference for qdel() stuff + + // Denial of Service attack variables + var/dos_overload = 0 // Amount of DoS "packets" in this relay's buffer + var/dos_capacity = 500 // Amount of DoS "packets" in buffer required to crash the relay + var/dos_dissipate = 1 // Amount of DoS "packets" dissipated over time. + + +// TODO: Implement more logic here. For now it's only a placeholder. +/obj/machinery/ntnet_relay/is_operational() + if(stat & (BROKEN | NOPOWER | EMPED)) + return 0 + if(dos_failure) + return 0 + if(!enabled) + return 0 + return 1 + +/obj/machinery/ntnet_relay/update_icon() + if(is_operational()) + icon_state = "bus" + else + icon_state = "bus_off" + +/obj/machinery/ntnet_relay/process() + if(is_operational()) + use_power = 2 + else + use_power = 1 + + update_icon() + + if(dos_overload) + dos_overload = max(0, dos_overload - dos_dissipate) + + // If DoS traffic exceeded capacity, crash. + if((dos_overload > dos_capacity) && !dos_failure) + dos_failure = 1 + update_icon() + ntnet_global.add_log("Quantum relay switched from normal operation mode to overload recovery mode.") + // If the DoS buffer reaches 0 again, restart. + if((dos_overload == 0) && dos_failure) + dos_failure = 0 + update_icon() + ntnet_global.add_log("Quantum relay switched from overload recovery mode to normal operation mode.") + ..() + +/obj/machinery/ntnet_relay/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = default_state) + + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + + if(!ui) + ui = new(user, src, ui_key, "ntnet_relay", "NTNet Quantum Relay", 500, 300, master_ui, state) + ui.open() + + +/obj/machinery/ntnet_relay/ui_data(mob/user) + var/list/data = list() + data["enabled"] = enabled + data["dos_capacity"] = dos_capacity + data["dos_overload"] = dos_overload + data["dos_crashed"] = dos_failure + return data + + +/obj/machinery/ntnet_relay/ui_act(action, params) + if(..()) + return + switch(action) + if("restart") + dos_overload = 0 + dos_failure = 0 + update_icon() + ntnet_global.add_log("Quantum relay manually restarted from overload recovery mode to normal operation mode.") + if("toggle") + enabled = !enabled + ntnet_global.add_log("Quantum relay manually [enabled ? "enabled" : "disabled"].") + update_icon() + + +/obj/machinery/ntnet_relay/attack_hand(mob/living/user) + ui_interact(user) + +/obj/machinery/ntnet_relay/New() + uid = gl_uid + gl_uid++ + component_parts = list() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/ntnet_relay(null) + B.apply_default_parts(src) + + if(ntnet_global) + ntnet_global.relays.Add(src) + NTNet = ntnet_global + ntnet_global.add_log("New quantum relay activated. Current amount of linked relays: [NTNet.relays.len]") + ..() + +/obj/machinery/ntnet_relay/Destroy() + if(ntnet_global) + ntnet_global.relays.Remove(src) + ntnet_global.add_log("Quantum relay connection severed. Current amount of linked relays: [NTNet.relays.len]") + NTNet = null + + for(var/datum/computer_file/program/ntnet_dos/D in dos_sources) + D.target = null + D.error = "Connection to quantum relay severed" + + ..() + +/obj/item/weapon/circuitboard/machine/ntnet_relay + name = "circuit board (NTNet Relay)" + build_path = /obj/machinery/ntnet_relay + origin_tech = "programming=3;bluespace=3;magnets=2" + req_components = list( + /obj/item/stack/cable_coil = 2, + /obj/item/weapon/stock_parts/subspace/filter = 1) \ No newline at end of file diff --git a/code/modules/modular_computers/computers/item/computer.dm b/code/modules/modular_computers/computers/item/computer.dm new file mode 100644 index 0000000000..2875b6bb02 --- /dev/null +++ b/code/modules/modular_computers/computers/item/computer.dm @@ -0,0 +1,446 @@ +// This is the base type that does all the hardware stuff. +// Other types expand it - tablets use a direct subtypes, and +// consoles and laptops use "procssor" item that is held inside machinery piece +/obj/item/device/modular_computer + name = "modular microcomputer" + desc = "A small portable microcomputer." + + var/enabled = 0 // Whether the computer is turned on. + var/screen_on = 1 // Whether the computer is active/opened/it's screen is on. + var/datum/computer_file/program/active_program = null // A currently active program running on the computer. + var/hardware_flag = 0 // A flag that describes this device type + var/last_power_usage = 0 + var/last_battery_percent = 0 // Used for deciding if battery percentage has chandged + var/last_world_time = "00:00" + var/list/last_header_icons + var/emagged = 0 // Whether the computer is emagged. + + var/base_active_power_usage = 50 // Power usage when the computer is open (screen is active) and can be interacted with. Remember hardware can use power too. + var/base_idle_power_usage = 5 // Power usage when the computer is idle and screen is off (currently only applies to laptops) + + // Modular computers can run on various devices. Each DEVICE (Laptop, Console, Tablet,..) + // must have it's own DMI file. Icon states must be called exactly the same in all files, but may look differently + // If you create a program which is limited to Laptops and Consoles you don't have to add it's icon_state overlay for Tablets too, for example. + + icon = 'icons/obj/computer.dmi' + icon_state = "laptop-open" + var/icon_state_unpowered = null // Icon state when the computer is turned off. + var/icon_state_powered = null // Icon state when the computer is turned on. + var/icon_state_menu = "menu" // Icon state overlay when the computer is turned on, but no program is loaded that would override the screen. + var/max_hardware_size = 0 // Maximal hardware w_class. Tablets/PDAs have 1, laptops 2, consoles 4. + var/steel_sheet_cost = 5 // Amount of steel sheets refunded when disassembling an empty frame of this computer. + + obj_integrity = 100 + integrity_failure = 50 + max_integrity = 100 + armor = list(melee = 0, bullet = 20, laser = 20, energy = 100, bomb = 0, bio = 100, rad = 100, fire = 0, acid = 0) + + // Important hardware (must be installed for computer to work) + + // Optional hardware (improves functionality, but is not critical for computer to work) + + var/list/all_components // List of "connection ports" in this computer and the components with which they are plugged + + var/list/idle_threads // Idle programs on background. They still receive process calls but can't be interacted with. + var/obj/physical = null // Object that represents our computer. It's used for Adjacent() and UI visibility checks. + + + +/obj/item/device/modular_computer/New() + START_PROCESSING(SSobj, src) + update_icon() + if(!physical) + physical = src + ..() + + all_components = list() + idle_threads = list() + +/obj/item/device/modular_computer/Destroy() + kill_program(forced = TRUE) + STOP_PROCESSING(SSobj, src) + for(var/H in all_components) + var/obj/item/weapon/computer_hardware/CH = all_components[H] + if(CH.holder == src) + CH.on_remove(src) + CH.holder = null + qdel(CH) + physical = null + return ..() + + +/obj/item/device/modular_computer/proc/add_verb(var/path) + switch(path) + if(MC_CARD) + verbs += /obj/item/device/modular_computer/proc/eject_id + if(MC_SDD) + verbs += /obj/item/device/modular_computer/proc/eject_disk + if(MC_AI) + verbs += /obj/item/device/modular_computer/proc/eject_card + +/obj/item/device/modular_computer/proc/remove_verb(path) + switch(path) + if(MC_CARD) + verbs -= /obj/item/device/modular_computer/proc/eject_id + if(MC_SDD) + verbs -= /obj/item/device/modular_computer/proc/eject_disk + if(MC_AI) + verbs -= /obj/item/device/modular_computer/proc/eject_card + +// Eject ID card from computer, if it has ID slot with card inside. +/obj/item/device/modular_computer/proc/eject_id() + set name = "Eject ID" + set category = "Object" + set src in view(1) + + if(issilicon(usr)) + return + var/obj/item/weapon/computer_hardware/card_slot/card_slot = all_components[MC_CARD] + if(usr.canUseTopic(src)) + card_slot.try_eject(null, usr) + +// Eject ID card from computer, if it has ID slot with card inside. +/obj/item/device/modular_computer/proc/eject_card() + set name = "Eject Intellicard" + set category = "Object" + + if(issilicon(usr)) + return + var/obj/item/weapon/computer_hardware/ai_slot/ai_slot = all_components[MC_AI] + if(usr.canUseTopic(src)) + ai_slot.try_eject(null, usr,1) + + +// Eject ID card from computer, if it has ID slot with card inside. +/obj/item/device/modular_computer/proc/eject_disk() + set name = "Eject Data Disk" + set category = "Object" + + if(issilicon(usr)) + return + + if(usr.canUseTopic(src)) + var/obj/item/weapon/computer_hardware/hard_drive/portable/portable_drive = all_components[MC_SDD] + if(uninstall_component(portable_drive, usr)) + portable_drive.verb_pickup() + +/obj/item/device/modular_computer/AltClick(mob/user) + ..() + if(issilicon(user)) + return + + if(user.canUseTopic(src)) + var/obj/item/weapon/computer_hardware/card_slot/card_slot = all_components[MC_CARD] + var/obj/item/weapon/computer_hardware/ai_slot/ai_slot = all_components[MC_AI] + var/obj/item/weapon/computer_hardware/hard_drive/portable/portable_drive = all_components[MC_SDD] + if(portable_drive) + if(uninstall_component(portable_drive, user)) + portable_drive.verb_pickup() + else + if(card_slot && card_slot.try_eject(null, user)) + return + if(ai_slot) + ai_slot.try_eject(null, user) + + +// Gets IDs/access levels from card slot. Would be useful when/if PDAs would become modular PCs. +/obj/item/device/modular_computer/GetAccess() + var/obj/item/weapon/computer_hardware/card_slot/card_slot = all_components[MC_CARD] + if(card_slot) + return card_slot.GetAccess() + return ..() + +/obj/item/device/modular_computer/GetID() + var/obj/item/weapon/computer_hardware/card_slot/card_slot = all_components[MC_CARD] + if(card_slot) + return card_slot.GetID() + return ..() + +/obj/item/device/modular_computer/MouseDrop(obj/over_object, src_location, over_location) + var/mob/M = usr + if((!istype(over_object, /obj/screen)) && usr.canUseTopic(src)) + return attack_self(M) + return + +/obj/item/device/modular_computer/attack_ai(mob/user) + return attack_self(user) + +/obj/item/device/modular_computer/attack_ghost(mob/dead/observer/user) + if(enabled) + ui_interact(user) + else if(IsAdminGhost(user)) + var/response = alert(user, "This computer is turned off. Would you like to turn it on?", "Admin Override", "Yes", "No") + if(response == "Yes") + turn_on(user) + +/obj/item/device/modular_computer/emag_act(mob/user) + if(emagged) + user << "\The [src] was already emagged." + return 0 + else + emagged = 1 + user << "You emag \the [src]. It's screen briefly shows a \"OVERRIDE ACCEPTED: New software downloads available.\" message." + return 1 + +/obj/item/device/modular_computer/examine(mob/user) + ..() + if(obj_integrity <= integrity_failure) + user << "It is heavily damaged!" + else if(obj_integrity < max_integrity) + user << "It is damaged." + +/obj/item/device/modular_computer/update_icon() + cut_overlays() + if(!enabled) + icon_state = icon_state_unpowered + else + icon_state = icon_state_powered + if(active_program) + add_overlay(active_program.program_icon_state ? active_program.program_icon_state : icon_state_menu) + else + add_overlay(icon_state_menu) + + if(obj_integrity <= integrity_failure) + add_overlay("bsod") + add_overlay("broken") + + +// On-click handling. Turns on the computer if it's off and opens the GUI. +/obj/item/device/modular_computer/attack_self(mob/user) + if(enabled) + ui_interact(user) + else + turn_on(user) + +/obj/item/device/modular_computer/proc/turn_on(mob/user) + var/issynth = issilicon(user) // Robots and AIs get different activation messages. + if(obj_integrity <= integrity_failure) + if(issynth) + user << "You send an activation signal to \the [src], but it responds with an error code. It must be damaged." + else + user << "You press the power button, but the computer fails to boot up, displaying variety of errors before shutting down again." + return + + // If we have a recharger, enable it automatically. Lets computer without a battery work. + var/obj/item/weapon/computer_hardware/recharger/recharger = all_components[MC_CHARGE] + if(recharger) + recharger.enabled = 1 + + if(all_components[MC_CPU] && use_power()) // use_power() checks if the PC is powered + if(issynth) + user << "You send an activation signal to \the [src], turning it on." + else + user << "You press the power button and start up \the [src]." + enabled = 1 + update_icon() + ui_interact(user) + else // Unpowered + if(issynth) + user << "You send an activation signal to \the [src] but it does not respond." + else + user << "You press the power button but \the [src] does not respond." + +// Process currently calls handle_power(), may be expanded in future if more things are added. +/obj/item/device/modular_computer/process() + if(!enabled) // The computer is turned off + last_power_usage = 0 + return 0 + + if(obj_integrity <= integrity_failure) + shutdown_computer() + return 0 + + if(active_program && active_program.requires_ntnet && !get_ntnet_status(active_program.requires_ntnet_feature)) + active_program.event_networkfailure(0) // Active program requires NTNet to run but we've just lost connection. Crash. + + for(var/I in idle_threads) + var/datum/computer_file/program/P = I + if(P.requires_ntnet && !get_ntnet_status(P.requires_ntnet_feature)) + P.event_networkfailure(1) + + if(active_program) + if(active_program.program_state != PROGRAM_STATE_KILLED) + active_program.process_tick() + active_program.ntnet_status = get_ntnet_status() + else + active_program = null + + for(var/I in idle_threads) + var/datum/computer_file/program/P = I + if(P.program_state != PROGRAM_STATE_KILLED) + P.process_tick() + P.ntnet_status = get_ntnet_status() + else + idle_threads.Remove(P) + + handle_power() // Handles all computer power interaction + //check_update_ui_need() + +// Function used by NanoUI's to obtain data for header. All relevant entries begin with "PC_" +/obj/item/device/modular_computer/proc/get_header_data() + var/list/data = list() + + var/obj/item/weapon/computer_hardware/battery/battery_module = all_components[MC_CELL] + var/obj/item/weapon/computer_hardware/recharger/recharger = all_components[MC_CHARGE] + + if(battery_module && battery_module.battery) + switch(battery_module.battery.percent()) + if(80 to 200) // 100 should be maximal but just in case.. + data["PC_batteryicon"] = "batt_100.gif" + if(60 to 80) + data["PC_batteryicon"] = "batt_80.gif" + if(40 to 60) + data["PC_batteryicon"] = "batt_60.gif" + if(20 to 40) + data["PC_batteryicon"] = "batt_40.gif" + if(5 to 20) + data["PC_batteryicon"] = "batt_20.gif" + else + data["PC_batteryicon"] = "batt_5.gif" + data["PC_batterypercent"] = "[round(battery_module.battery.percent())] %" + data["PC_showbatteryicon"] = 1 + else + data["PC_batteryicon"] = "batt_5.gif" + data["PC_batterypercent"] = "N/C" + data["PC_showbatteryicon"] = battery_module ? 1 : 0 + + if(recharger && recharger.enabled && recharger.check_functionality() && recharger.use_power(0)) + data["PC_apclinkicon"] = "charging.gif" + + switch(get_ntnet_status()) + if(0) + data["PC_ntneticon"] = "sig_none.gif" + if(1) + data["PC_ntneticon"] = "sig_low.gif" + if(2) + data["PC_ntneticon"] = "sig_high.gif" + if(3) + data["PC_ntneticon"] = "sig_lan.gif" + + if(idle_threads.len) + var/list/program_headers = list() + for(var/I in idle_threads) + var/datum/computer_file/program/P = I + if(!P.ui_header) + continue + program_headers.Add(list(list( + "icon" = P.ui_header + ))) + + data["PC_programheaders"] = program_headers + + data["PC_stationtime"] = worldtime2text() + data["PC_hasheader"] = 1 + data["PC_showexitprogram"] = active_program ? 1 : 0 // Hides "Exit Program" button on mainscreen + return data + +// Relays kill program request to currently active program. Use this to quit current program. +/obj/item/device/modular_computer/proc/kill_program(forced = FALSE) + if(active_program) + active_program.kill_program(forced) + active_program = null + var/mob/user = usr + if(user && istype(user)) + ui_interact(user) // Re-open the UI on this computer. It should show the main screen now. + update_icon() + +// Returns 0 for No Signal, 1 for Low Signal and 2 for Good Signal. 3 is for wired connection (always-on) +/obj/item/device/modular_computer/proc/get_ntnet_status(specific_action = 0) + var/obj/item/weapon/computer_hardware/network_card/network_card = all_components[MC_NET] + if(network_card) + return network_card.get_signal(specific_action) + else + return 0 + +/obj/item/device/modular_computer/proc/add_log(text) + if(!get_ntnet_status()) + return FALSE + var/obj/item/weapon/computer_hardware/network_card/network_card = all_components[MC_NET] + return ntnet_global.add_log(text, network_card) + +/obj/item/device/modular_computer/proc/shutdown_computer(loud = 1) + kill_program(forced = TRUE) + for(var/datum/computer_file/program/P in idle_threads) + P.kill_program(forced = TRUE) + idle_threads.Remove(P) + if(loud) + physical.visible_message("\The [src] shuts down.") + enabled = 0 + update_icon() + + +/obj/item/device/modular_computer/attackby(obj/item/weapon/W as obj, mob/user as mob) + // Insert items into the components + for(var/h in all_components) + var/obj/item/weapon/computer_hardware/H = all_components[h] + if(H.try_insert(W, user)) + return + + // Insert new hardware + if(istype(W, /obj/item/weapon/computer_hardware)) + if(install_component(W, user)) + return + + if(istype(W, /obj/item/weapon/wrench)) + if(all_components.len) + user << "Remove all components from \the [src] before disassembling it." + return + new /obj/item/stack/sheet/metal( get_turf(src.loc), steel_sheet_cost ) + physical.visible_message("\The [src] has been disassembled by [user].") + relay_qdel() + qdel(src) + return + + if(istype(W, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/WT = W + if(!WT.isOn()) + user << "\The [W] is off." + return + + if(obj_integrity == max_integrity) + user << "\The [src] does not require repairs." + return + + user << "You begin repairing damage to \the [src]..." + var/dmg = round(max_integrity - obj_integrity) + if(WT.remove_fuel(round(dmg/75)) && do_after(usr, dmg/10)) + obj_integrity = max_integrity + user << "You repair \the [src]." + return + + if(istype(W, /obj/item/weapon/screwdriver)) + if(!all_components.len) + user << "This device doesn't have any components installed." + return + var/list/component_names = list() + for(var/h in all_components) + var/obj/item/weapon/computer_hardware/H = all_components[h] + component_names.Add(H.name) + + var/choice = input(user, "Which component do you want to uninstall?", "Computer maintenance", null) as null|anything in component_names + + if(!choice) + return + + if(!Adjacent(user)) + return + + var/obj/item/weapon/computer_hardware/H = find_hardware_by_name(choice) + + if(!H) + return + + uninstall_component(H, user) + return + + ..() + +// Used by processor to relay qdel() to machinery type. +/obj/item/device/modular_computer/proc/relay_qdel() + return + +// Perform adjacency checks on our physical counterpart, if any. +/obj/item/device/modular_computer/Adjacent(atom/neighbor) + if(physical && physical != src) + return physical.Adjacent(neighbor) + return ..() diff --git a/code/modules/modular_computers/computers/item/computer_components.dm b/code/modules/modular_computers/computers/item/computer_components.dm new file mode 100644 index 0000000000..0f27580a27 --- /dev/null +++ b/code/modules/modular_computers/computers/item/computer_components.dm @@ -0,0 +1,54 @@ +/obj/item/device/modular_computer/proc/can_install_component(obj/item/weapon/computer_hardware/H, mob/living/user = null) + if(!H.can_install(src, user)) + return FALSE + + if(H.w_class > max_hardware_size) + user << "This component is too large for \the [src]!" + return FALSE + + if(all_components[H.device_type]) + user << "This computer's hardware slot is already occupied by \the [all_components[H.device_type]]." + return FALSE + return TRUE + + +// Installs component. +/obj/item/device/modular_computer/proc/install_component(obj/item/weapon/computer_hardware/H, mob/living/user = null) + if(!can_install_component(H, user)) + return FALSE + + if(user && !user.unEquip(H)) + return FALSE + + all_components[H.device_type] = H + + user << "You install \the [H] into \the [src]." + H.forceMove(src) + H.holder = src + H.on_install(src, user) + + +// Uninstalls component. +/obj/item/device/modular_computer/proc/uninstall_component(obj/item/weapon/computer_hardware/H, mob/living/user = null) + if(H.holder != src) // Not our component at all. + return FALSE + + all_components.Remove(H.device_type) + + user << "You remove \the [H] from \the [src]." + + H.forceMove(get_turf(src)) + H.holder = null + H.on_remove(src, user) + if(enabled && !use_power()) + shutdown_computer() + update_icon() + + +// Checks all hardware pieces to determine if name matches, if yes, returns the hardware piece, otherwise returns null +/obj/item/device/modular_computer/proc/find_hardware_by_name(name) + for(var/i in all_components) + var/obj/O = all_components[i] + if(O.name == name) + return O + return null diff --git a/code/modules/modular_computers/computers/item/computer_damage.dm b/code/modules/modular_computers/computers/item/computer_damage.dm new file mode 100644 index 0000000000..5e521a04e1 --- /dev/null +++ b/code/modules/modular_computers/computers/item/computer_damage.dm @@ -0,0 +1,31 @@ +/obj/item/device/modular_computer/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1) + . = ..() + var/component_probability = min(50, max(damage_amount*0.1, 1 - obj_integrity/max_integrity)) + switch(damage_flag) + if("bullet") + component_probability = damage_amount * 0.5 + if("laser") + component_probability = damage_amount * 0.66 + if(component_probability) + for(var/I in all_components) + var/obj/item/weapon/computer_hardware/H = all_components[I] + if(prob(component_probability)) + H.take_damage(round(damage_amount*0.5), damage_type, damage_flag, 0) + + +/obj/item/device/modular_computer/deconstruct(disassembled = TRUE) + break_apart() + +/obj/item/device/modular_computer/proc/break_apart() + if(!(flags & NODECONSTRUCT)) + physical.visible_message("\The [src] breaks apart!") + var/turf/newloc = get_turf(src) + new /obj/item/stack/sheet/metal(newloc, round(steel_sheet_cost/2)) + for(var/C in all_components) + var/obj/item/weapon/computer_hardware/H = all_components[C] + uninstall_component(H) + H.forceMove(newloc) + if(prob(25)) + H.take_damage(rand(10,30), BRUTE, 0, 0) + relay_qdel() + qdel(src) diff --git a/code/modules/modular_computers/computers/item/computer_power.dm b/code/modules/modular_computers/computers/item/computer_power.dm new file mode 100644 index 0000000000..c5aab99ce5 --- /dev/null +++ b/code/modules/modular_computers/computers/item/computer_power.dm @@ -0,0 +1,61 @@ +// Tries to draw power from charger or, if no operational charger is present, from power cell. +/obj/item/device/modular_computer/proc/use_power(amount = 0) + if(check_power_override()) + return TRUE + + var/obj/item/weapon/computer_hardware/recharger/recharger = all_components[MC_CHARGE] + + if(recharger && recharger.check_functionality()) + if(recharger.use_power(amount)) + return TRUE + + var/obj/item/weapon/computer_hardware/battery/battery_module = all_components[MC_CELL] + + if(battery_module && battery_module.battery && battery_module.battery.charge) + var/obj/item/weapon/stock_parts/cell/cell = battery_module.battery + if(cell.use(amount * CELLRATE)) + return TRUE + else // Discharge the cell anyway. + cell.use(min(amount*CELLRATE, cell.charge)) + return FALSE + return FALSE + +/obj/item/device/modular_computer/proc/give_power(amount) + var/obj/item/weapon/computer_hardware/battery/battery_module = all_components[MC_CELL] + if(battery_module && battery_module.battery) + return battery_module.battery.give(amount) + return 0 + + +// Used in following function to reduce copypaste +/obj/item/device/modular_computer/proc/power_failure() + if(enabled) // Shut down the computer + if(active_program) + active_program.event_powerfailure(0) + for(var/I in idle_threads) + var/datum/computer_file/program/PRG = I + PRG.event_powerfailure(1) + shutdown_computer(0) + +// Handles power-related things, such as battery interaction, recharging, shutdown when it's discharged +/obj/item/device/modular_computer/proc/handle_power() + var/obj/item/weapon/computer_hardware/recharger/recharger = all_components[MC_CHARGE] + if(recharger) + recharger.process() + + var/power_usage = screen_on ? base_active_power_usage : base_idle_power_usage + + for(var/obj/item/weapon/computer_hardware/H in all_components) + if(H.enabled) + power_usage += H.power_usage + + if(use_power(power_usage)) + last_power_usage = power_usage + return TRUE + else + power_failure() + return FALSE + +// Used by child types if they have other power source than battery or recharger +/obj/item/device/modular_computer/proc/check_power_override() + return FALSE diff --git a/code/modules/modular_computers/computers/item/computer_ui.dm b/code/modules/modular_computers/computers/item/computer_ui.dm new file mode 100644 index 0000000000..06761844de --- /dev/null +++ b/code/modules/modular_computers/computers/item/computer_ui.dm @@ -0,0 +1,137 @@ +// Operates TGUI +/obj/item/device/modular_computer/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = default_state) + if(!enabled) + if(ui) + ui.close() + return 0 + if(!use_power()) + if(ui) + ui.close() + return 0 + + // Robots don't really need to see the screen, their wireless connection works as long as computer is on. + if(!screen_on && !issilicon(user)) + if(ui) + ui.close() + return 0 + + // If we have an active program switch to it now. + if(active_program) + if(ui) // This is the main laptop screen. Since we are switching to program's UI close it for now. + ui.close() + active_program.ui_interact(user) + return + + // We are still here, that means there is no program loaded. Load the BIOS/ROM/OS/whatever you want to call it. + // This screen simply lists available programs and user may select them. + var/obj/item/weapon/computer_hardware/hard_drive/hard_drive = all_components[MC_HDD] + if(!hard_drive || !hard_drive.stored_files || !hard_drive.stored_files.len) + user << "\The [src] beeps three times, it's screen displaying a \"DISK ERROR\" warning." + return // No HDD, No HDD files list or no stored files. Something is very broken. + + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if (!ui) + var/datum/asset/assets = get_asset_datum(/datum/asset/simple/headers) + assets.send(user) + + ui = new(user, src, ui_key, "computer_main", "NTOS Main menu", 400, 500, master_ui, state) + ui.open() + ui.set_autoupdate(state = 1) + + +/obj/item/device/modular_computer/ui_data(mob/user) + var/list/data = get_header_data() + data["programs"] = list() + var/obj/item/weapon/computer_hardware/hard_drive/hard_drive = all_components[MC_HDD] + for(var/datum/computer_file/program/P in hard_drive.stored_files) + var/running = 0 + if(P in idle_threads) + running = 1 + + data["programs"] += list(list("name" = P.filename, "desc" = P.filedesc, "running" = running)) + + return data + + +// Handles user's GUI input +/obj/item/device/modular_computer/ui_act(action, params) + if(..()) + return + var/obj/item/weapon/computer_hardware/hard_drive/hard_drive = all_components[MC_HDD] + switch(action) + if("PC_exit") + kill_program() + return 1 + if("PC_shutdown") + shutdown_computer() + return 1 + if("PC_minimize") + var/mob/user = usr + if(!active_program || !all_components[MC_CPU]) + return + + idle_threads.Add(active_program) + active_program.program_state = PROGRAM_STATE_BACKGROUND // Should close any existing UIs + + active_program = null + update_icon() + if(user && istype(user)) + ui_interact(user) // Re-open the UI on this computer. It should show the main screen now. + + if("PC_killprogram") + var/prog = params["name"] + var/datum/computer_file/program/P = null + var/mob/user = usr + if(hard_drive) + P = hard_drive.find_file_by_name(prog) + + if(!istype(P) || P.program_state == PROGRAM_STATE_KILLED) + return + + P.kill_program(forced = TRUE) + user << "Program [P.filename].[P.filetype] with PID [rand(100,999)] has been killed." + + if("PC_runprogram") + var/prog = params["name"] + var/datum/computer_file/program/P = null + var/mob/user = usr + if(hard_drive) + P = hard_drive.find_file_by_name(prog) + + if(!P || !istype(P)) // Program not found or it's not executable program. + user << "\The [src]'s screen shows \"I/O ERROR - Unable to run program\" warning." + return + + P.computer = src + + if(!P.is_supported_by_hardware(hardware_flag, 1, user)) + return + + // The program is already running. Resume it. + if(P in idle_threads) + P.program_state = PROGRAM_STATE_ACTIVE + active_program = P + idle_threads.Remove(P) + update_icon() + return + + var/obj/item/weapon/computer_hardware/processor_unit/PU = all_components[MC_CPU] + + if(idle_threads.len > PU.max_idle_programs) + user << "\The [src] displays a \"Maximal CPU load reached. Unable to run another program.\" error." + return + + if(P.requires_ntnet && !get_ntnet_status(P.requires_ntnet_feature)) // The program requires NTNet connection, but we are not connected to NTNet. + user << "\The [src]'s screen shows \"Unable to connect to NTNet. Please retry. If problem persists contact your system administrator.\" warning." + return + if(P.run_program(user)) + active_program = P + update_icon() + return 1 + else + return + +/obj/item/device/modular_computer/ui_host() + if(physical) + return physical + return src diff --git a/code/modules/modular_computers/computers/item/laptop.dm b/code/modules/modular_computers/computers/item/laptop.dm new file mode 100644 index 0000000000..31bac1a0f3 --- /dev/null +++ b/code/modules/modular_computers/computers/item/laptop.dm @@ -0,0 +1,101 @@ +/obj/item/device/modular_computer/laptop + name = "laptop" + desc = "A portable laptop computer." + + icon = 'icons/obj/modular_laptop.dmi' + icon_state = "laptop-closed" + icon_state_powered = "laptop" + icon_state_unpowered = "laptop-off" + icon_state_menu = "menu" + + hardware_flag = PROGRAM_LAPTOP + max_hardware_size = 2 + w_class = WEIGHT_CLASS_NORMAL + + flags = HANDSLOW // No running around with open laptops in hands. + + screen_on = 0 // Starts closed + var/start_open = 1 // unless this var is set to 1 + var/icon_state_closed = "laptop-closed" + var/w_class_open = WEIGHT_CLASS_BULKY + var/slowdown_open = 1 + +/obj/item/device/modular_computer/laptop/New() + ..() + if(start_open && !screen_on) + toggle_open() + +/obj/item/device/modular_computer/laptop/update_icon() + if(screen_on) + ..() + else + cut_overlays() + icon_state = icon_state_closed + +/obj/item/device/modular_computer/laptop/attack_self(mob/user) + if(!screen_on) + try_toggle_open(user) + else + return ..() + +/obj/item/device/modular_computer/laptop/verb/open_computer() + set name = "Toggle Open" + set category = "Object" + set src in view(1) + + try_toggle_open(usr) + +/obj/item/device/modular_computer/laptop/MouseDrop(obj/over_object, src_location, over_location) + if(over_object == usr || over_object == src) + try_toggle_open(usr) + else if(istype(over_object, /obj/screen/inventory/hand)) + var/obj/screen/inventory/hand/H = over_object + var/mob/M = usr + + if(!M.restrained() && !M.stat) + if(!isturf(loc) || !Adjacent(M)) + return + M.put_in_hand(src, H.held_index) + +/obj/item/device/modular_computer/laptop/attack_hand(mob/user) + if(screen_on && isturf(loc)) + return attack_self(user) + + return ..() + + +/obj/item/device/modular_computer/laptop/proc/try_toggle_open(mob/living/user) + if(issilicon(user)) + return + if(!isturf(loc) && !ismob(loc)) // No opening it in backpack. + return + if(!user.canUseTopic(src)) + return + + toggle_open(user) + + +/obj/item/device/modular_computer/laptop/AltClick(mob/user) + if(screen_on) // Close it. + try_toggle_open(user) + else + return ..() + +/obj/item/device/modular_computer/laptop/proc/toggle_open(mob/living/user=null) + if(screen_on) + user << "You close \the [src]." + slowdown = initial(slowdown) + w_class = initial(w_class) + else + user << "You open \the [src]." + slowdown = slowdown_open + w_class = w_class_open + + screen_on = !screen_on + update_icon() + + + +// Laptop frame, starts empty and closed. +/obj/item/device/modular_computer/laptop/buildable + start_open = 0 diff --git a/code/modules/modular_computers/computers/item/laptop_presets.dm b/code/modules/modular_computers/computers/item/laptop_presets.dm new file mode 100644 index 0000000000..7fc177d20f --- /dev/null +++ b/code/modules/modular_computers/computers/item/laptop_presets.dm @@ -0,0 +1,23 @@ +/obj/item/device/modular_computer/laptop/preset/New() + . = ..() + install_component(new /obj/item/weapon/computer_hardware/processor_unit/small) + install_component(new /obj/item/weapon/computer_hardware/battery(src, /obj/item/weapon/stock_parts/cell/computer)) + install_component(new /obj/item/weapon/computer_hardware/hard_drive) + install_component(new /obj/item/weapon/computer_hardware/network_card) + install_programs() + + +/obj/item/device/modular_computer/laptop/preset/proc/install_programs() + return + + + + +/obj/item/device/modular_computer/laptop/preset/civillian + desc = "A low-end laptop often used for personal recreation." + + +/obj/item/device/modular_computer/laptop/preset/civillian/install_programs() + var/obj/item/weapon/computer_hardware/hard_drive/hard_drive = all_components[MC_HDD] + hard_drive.store_file(new/datum/computer_file/program/chatclient()) + hard_drive.store_file(new/datum/computer_file/program/nttransfer()) \ No newline at end of file diff --git a/code/modules/modular_computers/computers/item/processor.dm b/code/modules/modular_computers/computers/item/processor.dm new file mode 100644 index 0000000000..887e2b5dc4 --- /dev/null +++ b/code/modules/modular_computers/computers/item/processor.dm @@ -0,0 +1,76 @@ +// Held by /obj/machinery/modular_computer to reduce amount of copy-pasted code. +/obj/item/device/modular_computer/processor + name = "processing unit" + desc = "You shouldn't see this. If you do, report it." + icon = null + icon_state = null + icon_state_unpowered = null + icon_state_menu = null + hardware_flag = 0 + + var/obj/machinery/modular_computer/machinery_computer = null + +/obj/item/device/modular_computer/processor/Destroy() + . = ..() + if(machinery_computer && (machinery_computer.cpu == src)) + machinery_computer.cpu = null + machinery_computer = null + +/obj/item/device/modular_computer/processor/New(comp) + STOP_PROCESSING(SSobj, src) // Processed by its machine + + if(!comp || !istype(comp, /obj/machinery/modular_computer)) + CRASH("Inapropriate type passed to obj/item/device/modular_computer/processor/New()! Aborting.") + return + // Obtain reference to machinery computer + all_components = list() + idle_threads = list() + machinery_computer = comp + machinery_computer.cpu = src + hardware_flag = machinery_computer.hardware_flag + max_hardware_size = machinery_computer.max_hardware_size + steel_sheet_cost = machinery_computer.steel_sheet_cost + obj_integrity = machinery_computer.obj_integrity + max_integrity = machinery_computer.max_integrity + integrity_failure = machinery_computer.integrity_failure + base_active_power_usage = machinery_computer.base_active_power_usage + base_idle_power_usage = machinery_computer.base_idle_power_usage + +/obj/item/device/modular_computer/processor/relay_qdel() + qdel(machinery_computer) + +/obj/item/device/modular_computer/processor/update_icon() + if(machinery_computer) + return machinery_computer.update_icon() + +// This thing is not meant to be used on it's own, get topic data from our machinery owner. +//obj/item/device/modular_computer/processor/canUseTopic(user, state) +// if(!machinery_computer) +// return 0 + +// return machinery_computer.canUseTopic(user, state) + +/obj/item/device/modular_computer/processor/shutdown_computer() + if(!machinery_computer) + return + ..() + machinery_computer.update_icon() + return + +/obj/item/device/modular_computer/processor/add_verb(path) + switch(path) + if(MC_CARD) + machinery_computer.verbs += /obj/machinery/modular_computer/proc/eject_id + if(MC_SDD) + machinery_computer.verbs += /obj/machinery/modular_computer/proc/eject_disk + if(MC_AI) + machinery_computer.verbs += /obj/machinery/modular_computer/proc/eject_card + +/obj/item/device/modular_computer/processor/remove_verb(path) + switch(path) + if(MC_CARD) + machinery_computer.verbs -= /obj/machinery/modular_computer/proc/eject_id + if(MC_SDD) + machinery_computer.verbs -= /obj/machinery/modular_computer/proc/eject_disk + if(MC_AI) + machinery_computer.verbs -= /obj/machinery/modular_computer/proc/eject_card \ No newline at end of file diff --git a/code/modules/modular_computers/computers/item/tablet.dm b/code/modules/modular_computers/computers/item/tablet.dm new file mode 100644 index 0000000000..6a2b5674a5 --- /dev/null +++ b/code/modules/modular_computers/computers/item/tablet.dm @@ -0,0 +1,12 @@ +/obj/item/device/modular_computer/tablet //Its called tablet for theme of 90ies but actually its a "big smartphone" sized + name = "tablet computer" + icon = 'icons/obj/modular_tablet.dmi' + icon_state = "tablet" + icon_state_unpowered = "tablet" + icon_state_powered = "tablet" + icon_state_menu = "menu" + hardware_flag = PROGRAM_TABLET + max_hardware_size = 1 + w_class = WEIGHT_CLASS_SMALL + steel_sheet_cost = 1 + slot_flags = SLOT_ID | SLOT_BELT \ No newline at end of file diff --git a/code/modules/modular_computers/computers/item/tablet_presets.dm b/code/modules/modular_computers/computers/item/tablet_presets.dm new file mode 100644 index 0000000000..6ac9ed4063 --- /dev/null +++ b/code/modules/modular_computers/computers/item/tablet_presets.dm @@ -0,0 +1,29 @@ + +// This is literally the worst possible cheap tablet +/obj/item/device/modular_computer/tablet/preset/cheap + desc = "A low-end tablet often seen among low ranked station personnel." + +/obj/item/device/modular_computer/tablet/preset/cheap/New() + . = ..() + install_component(new /obj/item/weapon/computer_hardware/processor_unit/small) + install_component(new /obj/item/weapon/computer_hardware/battery(src, /obj/item/weapon/stock_parts/cell/computer/micro)) + install_component(new /obj/item/weapon/computer_hardware/hard_drive/small) + install_component(new /obj/item/weapon/computer_hardware/network_card) + +// Alternative version, an average one, for higher ranked positions mostly +/obj/item/device/modular_computer/tablet/preset/advanced/New() + . = ..() + install_component(new /obj/item/weapon/computer_hardware/processor_unit/small) + install_component(new /obj/item/weapon/computer_hardware/battery(src, /obj/item/weapon/stock_parts/cell/computer)) + install_component(new /obj/item/weapon/computer_hardware/hard_drive/small) + install_component(new /obj/item/weapon/computer_hardware/network_card) + install_component(new /obj/item/weapon/computer_hardware/card_slot) + install_component(new /obj/item/weapon/computer_hardware/printer/mini) + +/obj/item/device/modular_computer/tablet/preset/cargo/New() + . = ..() + install_component(new /obj/item/weapon/computer_hardware/processor_unit/small) + install_component(new /obj/item/weapon/computer_hardware/battery(src, /obj/item/weapon/stock_parts/cell/computer)) + install_component(new /obj/item/weapon/computer_hardware/hard_drive/small) + install_component(new /obj/item/weapon/computer_hardware/network_card) + install_component(new /obj/item/weapon/computer_hardware/printer/mini) diff --git a/code/modules/modular_computers/computers/machinery/console_presets.dm b/code/modules/modular_computers/computers/machinery/console_presets.dm new file mode 100644 index 0000000000..b2f0c5fb07 --- /dev/null +++ b/code/modules/modular_computers/computers/machinery/console_presets.dm @@ -0,0 +1,74 @@ +/obj/machinery/modular_computer/console/preset + // Can be changed to give devices specific hardware + var/_has_id_slot = 0 + var/_has_printer = 0 + var/_has_battery = 0 + var/_has_ai = 0 + +/obj/machinery/modular_computer/console/preset/New() + . = ..() + if(!cpu) + return + cpu.install_component(new /obj/item/weapon/computer_hardware/processor_unit) + + if(_has_id_slot) + cpu.install_component(new /obj/item/weapon/computer_hardware/card_slot) + if(_has_printer) + cpu.install_component(new /obj/item/weapon/computer_hardware/printer) + if(_has_battery) + cpu.install_component(new /obj/item/weapon/computer_hardware/battery(cpu, /obj/item/weapon/stock_parts/cell/computer/super)) + if(_has_ai) + cpu.install_component(new /obj/item/weapon/computer_hardware/ai_slot) + install_programs() + +// Override in child types to install preset-specific programs. +/obj/machinery/modular_computer/console/preset/proc/install_programs() + return + + + +// ===== ENGINEERING CONSOLE ===== +/obj/machinery/modular_computer/console/preset/engineering + console_department = "Engineering" + desc = "A stationary computer. This one comes preloaded with engineering programs." + +/obj/machinery/modular_computer/console/preset/engineering/install_programs() + var/obj/item/weapon/computer_hardware/hard_drive/hard_drive = cpu.all_components[MC_HDD] + hard_drive.store_file(new/datum/computer_file/program/power_monitor()) + hard_drive.store_file(new/datum/computer_file/program/alarm_monitor()) + +// ===== RESEARCH CONSOLE ===== +/obj/machinery/modular_computer/console/preset/research + console_department = "Research" + desc = "A stationary computer. This one comes preloaded with research programs." + _has_ai = 1 + +/obj/machinery/modular_computer/console/preset/research/install_programs() + var/obj/item/weapon/computer_hardware/hard_drive/hard_drive = cpu.all_components[MC_HDD] + hard_drive.store_file(new/datum/computer_file/program/ntnetmonitor()) + hard_drive.store_file(new/datum/computer_file/program/nttransfer()) + hard_drive.store_file(new/datum/computer_file/program/chatclient()) + hard_drive.store_file(new/datum/computer_file/program/aidiag()) + + +// ===== COMMAND CONSOLE ===== +/obj/machinery/modular_computer/console/preset/command + console_department = "Command" + desc = "A stationary computer. This one comes preloaded with command programs." + _has_id_slot = 1 + _has_printer = 1 + +/obj/machinery/modular_computer/console/preset/command/install_programs() + var/obj/item/weapon/computer_hardware/hard_drive/hard_drive = cpu.all_components[MC_HDD] + hard_drive.store_file(new/datum/computer_file/program/chatclient()) + hard_drive.store_file(new/datum/computer_file/program/card_mod()) + +// ===== CIVILIAN CONSOLE ===== +/obj/machinery/modular_computer/console/preset/civilian + console_department = "Civilian" + desc = "A stationary computer. This one comes preloaded with generic programs." + +/obj/machinery/modular_computer/console/preset/civilian/install_programs() + var/obj/item/weapon/computer_hardware/hard_drive/hard_drive = cpu.all_components[MC_HDD] + hard_drive.store_file(new/datum/computer_file/program/chatclient()) + hard_drive.store_file(new/datum/computer_file/program/nttransfer()) \ No newline at end of file diff --git a/code/modules/modular_computers/computers/machinery/modular_computer.dm b/code/modules/modular_computers/computers/machinery/modular_computer.dm new file mode 100644 index 0000000000..898ef176d4 --- /dev/null +++ b/code/modules/modular_computers/computers/machinery/modular_computer.dm @@ -0,0 +1,155 @@ +// Global var to track modular computers +var/list/global_modular_computers = list() + +// Modular Computer - device that runs various programs and operates with hardware +// DO NOT SPAWN THIS TYPE. Use /laptop/ or /console/ instead. +/obj/machinery/modular_computer + name = "modular computer" + desc = "An advanced computer." + + use_power = 1 + idle_power_usage = 5 + var/hardware_flag = 0 // A flag that describes this device type + var/last_power_usage = 0 // Power usage during last tick + + // Modular computers can run on various devices. Each DEVICE (Laptop, Console, Tablet,..) + // must have it's own DMI file. Icon states must be called exactly the same in all files, but may look differently + // If you create a program which is limited to Laptops and Consoles you don't have to add it's icon_state overlay for Tablets too, for example. + + icon = null + icon_state = null + var/icon_state_unpowered = null // Icon state when the computer is turned off. + var/icon_state_powered = null // Icon state when the computer is turned on. + var/screen_icon_state_menu = "menu" // Icon state overlay when the computer is turned on, but no program is loaded that would override the screen. + var/screen_icon_screensaver = "standby" // Icon state overlay when the computer is powered, but not 'switched on'. + var/max_hardware_size = 0 // Maximal hardware size. Currently, tablets have 1, laptops 2 and consoles 3. Limits what hardware types can be installed. + var/steel_sheet_cost = 10 // Amount of steel sheets refunded when disassembling an empty frame of this computer. + var/light_strength = 0 // Light luminosity when turned on + var/base_active_power_usage = 100 // Power usage when the computer is open (screen is active) and can be interacted with. Remember hardware can use power too. + var/base_idle_power_usage = 10 // Power usage when the computer is idle and screen is off (currently only applies to laptops) + + var/obj/item/device/modular_computer/processor/cpu = null // CPU that handles most logic while this type only handles power and other specific things. + +/obj/machinery/modular_computer/New() + ..() + cpu = new(src) + cpu.physical = src + global_modular_computers.Add(src) + +/obj/machinery/modular_computer/Destroy() + if(cpu) + qdel(cpu) + cpu = null + return ..() + +/obj/machinery/modular_computer/attack_ghost(mob/dead/observer/user) + if(cpu) + cpu.attack_ghost(user) + +/obj/machinery/modular_computer/emag_act(mob/user) + return cpu ? cpu.emag_act(user) : 1 + +/obj/machinery/modular_computer/update_icon() + cut_overlays() + icon_state = icon_state_powered + + if(!cpu || !cpu.enabled) + if (!(stat & NOPOWER) && (cpu && cpu.use_power())) + add_overlay(screen_icon_screensaver) + else + icon_state = icon_state_unpowered + SetLuminosity(0) + else + SetLuminosity(light_strength) + if(cpu.active_program) + add_overlay(cpu.active_program.program_icon_state ? cpu.active_program.program_icon_state : screen_icon_state_menu) + else + overlays.Add(screen_icon_state_menu) + + if(cpu && cpu.obj_integrity <= cpu.integrity_failure) + add_overlay("bsod") + add_overlay("broken") + +// Eject ID card from computer, if it has ID slot with card inside. +/obj/machinery/modular_computer/proc/eject_id() + set name = "Eject ID" + set category = "Object" + + if(cpu) + cpu.eject_id() + +// Eject ID card from computer, if it has ID slot with card inside. +/obj/machinery/modular_computer/proc/eject_disk() + set name = "Eject Data Disk" + set category = "Object" + + if(cpu) + cpu.eject_disk() + +/obj/machinery/modular_computer/proc/eject_card() + set name = "Eject Intellicard" + set category = "Object" + set src in view(1) + + if(cpu) + cpu.eject_card() + +/obj/machinery/modular_computer/AltClick(mob/user) + if(cpu) + cpu.AltClick(user) + +// On-click handling. Turns on the computer if it's off and opens the GUI. +/obj/machinery/modular_computer/attack_hand(mob/user) + if(cpu) + cpu.attack_self(user) // CPU is an item, that's why we route attack_hand to attack_self + +// Process currently calls handle_power(), may be expanded in future if more things are added. +/obj/machinery/modular_computer/process() + if(cpu) + // Keep names in sync. + cpu.name = src.name + cpu.process() + +// Used in following function to reduce copypaste +/obj/machinery/modular_computer/proc/power_failure(malfunction = 0) + var/obj/item/weapon/computer_hardware/battery/battery_module = cpu.all_components[MC_CELL] + if(cpu && cpu.enabled) // Shut down the computer + visible_message("\The [src]'s screen flickers [battery_module ? "\"BATTERY [malfunction ? "MALFUNCTION" : "CRITICAL"]\"" : "\"EXTERNAL POWER LOSS\""] warning as it shuts down unexpectedly.") + if(cpu) + cpu.shutdown_computer(0) + stat |= NOPOWER + update_icon() + + +// Modular computers can have battery in them, we handle power in previous proc, so prevent this from messing it up for us. +/obj/machinery/modular_computer/power_change() + if(cpu && cpu.use_power()) // If MC_CPU still has a power source, PC wouldn't go offline. + stat &= ~NOPOWER + update_icon() + return + ..() + update_icon() + +/obj/machinery/modular_computer/attackby(var/obj/item/weapon/W as obj, mob/user) + if(cpu) + return cpu.attackby(W, user) + return ..() + + +// Stronger explosions cause serious damage to internal components +// Minor explosions are mostly mitigitated by casing. +/obj/machinery/modular_computer/ex_act(severity) + if(cpu) + cpu.ex_act(severity) + +// EMPs are similar to explosions, but don't cause physical damage to the casing. Instead they screw up the components +/obj/machinery/modular_computer/emp_act(severity) + if(cpu) + cpu.emp_act(severity) + +// "Stun" weapons can cause minor damage to components (short-circuits?) +// "Burn" damage is equally strong against internal components and exterior casing +// "Brute" damage mostly damages the casing. +/obj/machinery/modular_computer/bullet_act(obj/item/projectile/Proj) + if(cpu) + cpu.bullet_act(Proj) \ No newline at end of file diff --git a/code/modules/modular_computers/computers/machinery/modular_console.dm b/code/modules/modular_computers/computers/machinery/modular_console.dm new file mode 100644 index 0000000000..60315198ca --- /dev/null +++ b/code/modules/modular_computers/computers/machinery/modular_console.dm @@ -0,0 +1,57 @@ +/obj/machinery/modular_computer/console + name = "console" + desc = "A stationary computer." + + icon = 'icons/obj/modular_console.dmi' + icon_state = "console" + icon_state_powered = "console" + icon_state_unpowered = "console-off" + screen_icon_state_menu = "menu" + hardware_flag = PROGRAM_CONSOLE + var/console_department = "" // Used in New() to set network tag according to our area. + anchored = 1 + density = 1 + base_idle_power_usage = 100 + base_active_power_usage = 500 + max_hardware_size = 4 + steel_sheet_cost = 10 + light_strength = 2 + obj_integrity = 300 + max_integrity = 300 + integrity_failure = 150 + +/obj/machinery/modular_computer/console/buildable/New() + ..() + // User-built consoles start as empty frames. + var/obj/item/weapon/computer_hardware/hard_drive/hard_drive = cpu.all_components[MC_HDD] + var/obj/item/weapon/computer_hardware/hard_drive/network_card = cpu.all_components[MC_NET] + var/obj/item/weapon/computer_hardware/hard_drive/recharger = cpu.all_components[MC_CHARGE] + qdel(recharger) + qdel(network_card) + qdel(hard_drive) + +/obj/machinery/modular_computer/console/New() + ..() + var/obj/item/weapon/computer_hardware/battery/battery_module = cpu.all_components[MC_CELL] + if(battery_module) + qdel(battery_module) + + var/obj/item/weapon/computer_hardware/network_card/wired/network_card = new() + + cpu.install_component(network_card) + cpu.install_component(new /obj/item/weapon/computer_hardware/recharger/APC) + cpu.install_component(new /obj/item/weapon/computer_hardware/hard_drive/super) // Consoles generally have better HDDs due to lower space limitations + + var/area/A = get_area(src) + // Attempts to set this console's tag according to our area. Since some areas have stuff like "XX - YY" in their names we try to remove that too. + if(A && console_department) + network_card.identification_string = replacetext(replacetext(replacetext("[A.name] [console_department] Console", " ", "_"), "-", ""), "__", "_") // Replace spaces with "_" + else if(A) + network_card.identification_string = replacetext(replacetext(replacetext("[A.name] Console", " ", "_"), "-", ""), "__", "_") + else if(console_department) + network_card.identification_string = replacetext(replacetext(replacetext("[console_department] Console", " ", "_"), "-", ""), "__", "_") + else + network_card.identification_string = "Unknown Console" + if(cpu) + cpu.screen_on = 1 + update_icon() \ No newline at end of file diff --git a/code/modules/modular_computers/documentation.md b/code/modules/modular_computers/documentation.md new file mode 100644 index 0000000000..88d8602729 --- /dev/null +++ b/code/modules/modular_computers/documentation.md @@ -0,0 +1,45 @@ + + +#Modular computer programs +Ok. so a quick rundown on how to make a program. This is kind of a shitty documentation, but oh well I was asked to. + + +## Base setup +This is how the base program is setup. the rest is mostly tgui stuff. I'll use the ntnetmonitor as a base + + +```DM +/datum/computer_file/program/ntnetmonitor + filename = "ntmonitor" //This is obviously the name of the file itself. not much to be said + filedesc = "NTNet Diagnostics and Monitoring" // This is sort of the official name. it's what shows up on the main menu + program_icon_state = "comm_monitor" // This is what the screen will look like when the program is active + extended_desc = "This program is a dummy. // This is a sort of a description, visible when looking on the ntnet + size = 12 // size of the program. Big programs need more hard drive space. Don't make it too big though. + requires_ntnet = 1 // If this is set, the program will not run without an ntnet connection, and will close if the connection is lost. Mainly for primarily online programs. + required_access = access_network //This is access required to run the program itself. ONLY SET THIS FOR SUPER SECURE SHIT. This also acts as transfer_access as well. + transfer_access = access_change_ids // This is the access needed to download from ntnet or host on the ptp program. This is what you want to use most of the time. + available_on_ntnet = 1 //If it's available to download on ntnet. pretty self explanatory. + available_on_syndinet = 0 // ditto but on emagged syndie net. Use this for antag programs + usage_flags = PROGRAM_ALL // Bitflags (PROGRAM_CONSOLE, PROGRAM_LAPTOP, PROGRAM_TABLET combination) or PROGRAM_ALL + //^^- The comment above sorta explains it. Use this to limit what kind of machines can run the program. For example, comms program should be limited to consoles and laptops. + var/ui_header = "downloader_finished.gif" //This one is kinda cool. If you have the program minimized, this will show up in the header of the computer screen. + //you can even have the program change what the header is based on the situation! see alarm.dm for an example. +``` + +##Preinstalls +Now. for pre-installing stuff. + +Primarily done for consoles, there's an install_programs() proc in the console presets file in the machines folder. + +for example, the command console one. + +```DM +/obj/machinery/modular_computer/console/preset/command/install_programs() + cpu.hard_drive.store_file(new/datum/computer_file/program/chatclient()) + cpu.hard_drive.store_file(new/datum/computer_file/program/card_mod()) +``` +Basically, you want to do cpu.hard_drive.store_file(new/*program path here*()) and put it in the subtype's install_programs(). +Probably pretty self explanatory, but just in case. + +Will probably be expanded when new features come around or I get asked to mention something. + diff --git a/code/modules/modular_computers/file_system/computer_file.dm b/code/modules/modular_computers/file_system/computer_file.dm new file mode 100644 index 0000000000..15ae12a285 --- /dev/null +++ b/code/modules/modular_computers/file_system/computer_file.dm @@ -0,0 +1,39 @@ +var/global/file_uid = 0 + +/datum/computer_file + var/filename = "NewFile" // Placeholder. No spacebars + var/filetype = "XXX" // File full names are [filename].[filetype] so like NewFile.XXX in this case + var/size = 1 // File size in GQ. Integers only! + var/obj/item/weapon/computer_hardware/hard_drive/holder // Holder that contains this file. + var/unsendable = 0 // Whether the file may be sent to someone via NTNet transfer or other means. + var/undeletable = 0 // Whether the file may be deleted. Setting to 1 prevents deletion/renaming/etc. + var/uid // UID of this file + +/datum/computer_file/New() + ..() + uid = file_uid + file_uid++ + +/datum/computer_file/Destroy() + if(!holder) + return ..() + + holder.remove_file(src) + // holder.holder is the computer that has drive installed. If we are Destroy()ing program that's currently running kill it. + if(holder.holder && holder.holder.active_program == src) + holder.holder.kill_program(forced = TRUE) + holder = null + ..() + +// Returns independent copy of this file. +/datum/computer_file/proc/clone(rename = 0) + var/datum/computer_file/temp = new type + temp.unsendable = unsendable + temp.undeletable = undeletable + temp.size = size + if(rename) + temp.filename = filename + "(Copy)" + else + temp.filename = filename + temp.filetype = filetype + return temp \ No newline at end of file diff --git a/code/modules/modular_computers/file_system/data.dm b/code/modules/modular_computers/file_system/data.dm new file mode 100644 index 0000000000..32ef6f53dd --- /dev/null +++ b/code/modules/modular_computers/file_system/data.dm @@ -0,0 +1,20 @@ +// /data/ files store data in string format. +// They don't contain other logic for now. +/datum/computer_file/data + var/stored_data = "" // Stored data in string format. + filetype = "DAT" + var/block_size = 250 + var/do_not_edit = 0 // Whether the user will be reminded that the file probably shouldn't be edited. + +/datum/computer_file/data/clone() + var/datum/computer_file/data/temp = ..() + temp.stored_data = stored_data + return temp + +// Calculates file size from amount of characters in saved string +/datum/computer_file/data/proc/calculate_size() + size = max(1, round(length(stored_data) / block_size)) + +/datum/computer_file/data/logfile + filetype = "LOG" + diff --git a/code/modules/modular_computers/file_system/program.dm b/code/modules/modular_computers/file_system/program.dm new file mode 100644 index 0000000000..46a9ea8ebc --- /dev/null +++ b/code/modules/modular_computers/file_system/program.dm @@ -0,0 +1,196 @@ +// /program/ files are executable programs that do things. +/datum/computer_file/program + filetype = "PRG" + filename = "UnknownProgram" // File name. FILE NAME MUST BE UNIQUE IF YOU WANT THE PROGRAM TO BE DOWNLOADABLE FROM NTNET! + var/required_access = null // List of required accesses to *run* the program. + var/transfer_access = null // List of required access to download or file host the program + var/program_state = PROGRAM_STATE_KILLED// PROGRAM_STATE_KILLED or PROGRAM_STATE_BACKGROUND or PROGRAM_STATE_ACTIVE - specifies whether this program is running. + var/obj/item/device/modular_computer/computer // Device that runs this program. + var/filedesc = "Unknown Program" // User-friendly name of this program. + var/extended_desc = "N/A" // Short description of this program's function. + var/program_icon_state = null // Program-specific screen icon state + var/requires_ntnet = 0 // Set to 1 for program to require nonstop NTNet connection to run. If NTNet connection is lost program crashes. + var/requires_ntnet_feature = 0 // Optional, if above is set to 1 checks for specific function of NTNet (currently NTNET_SOFTWAREDOWNLOAD, NTNET_PEERTOPEER, NTNET_SYSTEMCONTROL and NTNET_COMMUNICATION) + var/ntnet_status = 1 // NTNet status, updated every tick by computer running this program. Don't use this for checks if NTNet works, computers do that. Use this for calculations, etc. + var/usage_flags = PROGRAM_ALL // Bitflags (PROGRAM_CONSOLE, PROGRAM_LAPTOP, PROGRAM_TABLET combination) or PROGRAM_ALL + var/network_destination = null // Optional string that describes what NTNet server/system this program connects to. Used in default logging. + var/available_on_ntnet = 1 // Whether the program can be downloaded from NTNet. Set to 0 to disable. + var/available_on_syndinet = 0 // Whether the program can be downloaded from SyndiNet (accessible via emagging the computer). Set to 1 to enable. + var/ui_header = null // Example: "something.gif" - a header image that will be rendered in computer's UI when this program is running at background. Images are taken from /icons/program_icons. Be careful not to use too large images! + +/datum/computer_file/program/New(obj/item/device/modular_computer/comp = null) + ..() + if(comp && istype(comp)) + computer = comp + +/datum/computer_file/program/Destroy() + computer = null + . = ..() + +/datum/computer_file/program/clone() + var/datum/computer_file/program/temp = ..() + temp.required_access = required_access + temp.filedesc = filedesc + temp.program_icon_state = program_icon_state + temp.requires_ntnet = requires_ntnet + temp.requires_ntnet_feature = requires_ntnet_feature + temp.usage_flags = usage_flags + return temp + +// Relays icon update to the computer. +/datum/computer_file/program/proc/update_computer_icon() + if(computer) + computer.update_icon() + +// Attempts to create a log in global ntnet datum. Returns 1 on success, 0 on fail. +/datum/computer_file/program/proc/generate_network_log(text) + if(computer) + return computer.add_log(text) + return 0 + +/datum/computer_file/program/proc/is_supported_by_hardware(hardware_flag = 0, loud = 0, mob/user = null) + if(!(hardware_flag & usage_flags)) + if(loud && computer && user) + user << "\The [computer] flashes an \"Hardware Error - Incompatible software\" warning." + return 0 + return 1 + +/datum/computer_file/program/proc/get_signal(specific_action = 0) + if(computer) + return computer.get_ntnet_status(specific_action) + return 0 + +// Called by Process() on device that runs us, once every tick. +/datum/computer_file/program/proc/process_tick() + return 1 + +// Check if the user can run program. Only humans can operate computer. Automatically called in run_program() +// User has to wear their ID for ID Scan to work. +// Can also be called manually, with optional parameter being access_to_check to scan the user's ID +/datum/computer_file/program/proc/can_run(mob/user, loud = 0, access_to_check, transfer = 0) + // Defaults to required_access + if(!access_to_check) + if(transfer && transfer_access) + access_to_check = transfer_access + else + access_to_check = required_access + if(!access_to_check) // No required_access, allow it. + return 1 + + if(!transfer && computer && computer.emagged) //emags can bypass the execution locks but not the download ones. + return 1 + + if(IsAdminGhost(user)) + return 1 + + if(issilicon(user)) + return 1 + + if(ishuman(user)) + var/obj/item/weapon/card/id/D + var/obj/item/weapon/computer_hardware/card_slot/card_slot + if(computer && card_slot) + card_slot = computer.all_components[MC_CARD] + D = card_slot.GetID() + var/mob/living/carbon/human/h = user + var/obj/item/weapon/card/id/I = h.get_idcard() + var/obj/item/weapon/card/id/C = h.get_active_held_item() + if(C) + C = C.GetID() + if(!(C && istype(C))) + C = null + + if(!I && !C && !D) + if(loud) + user << "\The [computer] flashes an \"RFID Error - Unable to scan ID\" warning." + return 0 + + if(I) + if(access_to_check in I.GetAccess()) + return 1 + else if(C) + if(access_to_check in C.GetAccess()) + return 1 + else if(D) + if(access_to_check in D.GetAccess()) + return 1 + if(loud) + user << "\The [computer] flashes an \"Access Denied\" warning." + return 0 + +// This attempts to retrieve header data for UIs. If implementing completely new device of different type than existing ones +// always include the device here in this proc. This proc basically relays the request to whatever is running the program. +/datum/computer_file/program/proc/get_header_data() + if(computer) + return computer.get_header_data() + return list() + +// This is performed on program startup. May be overriden to add extra logic. Remember to include ..() call. Return 1 on success, 0 on failure. +// When implementing new program based device, use this to run the program. +/datum/computer_file/program/proc/run_program(mob/living/user) + if(can_run(user, 1)) + if(requires_ntnet && network_destination) + generate_network_log("Connection opened to [network_destination].") + program_state = PROGRAM_STATE_ACTIVE + return 1 + return 0 + +// Use this proc to kill the program. Designed to be implemented by each program if it requires on-quit logic, such as the NTNRC client. +/datum/computer_file/program/proc/kill_program(forced = FALSE) + program_state = PROGRAM_STATE_KILLED + if(network_destination) + generate_network_log("Connection to [network_destination] closed.") + return 1 + +// This is called every tick when the program is enabled. Ensure you do parent call if you override it. If parent returns 1 continue with UI initialisation. + +/datum/computer_file/program/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = default_state) + if(program_state != PROGRAM_STATE_ACTIVE) // Our program was closed. Close the ui if it exists. + return computer.ui_interact(user) + return 1 + + +// CONVENTIONS, READ THIS WHEN CREATING NEW PROGRAM AND OVERRIDING THIS PROC: +// Topic calls are automagically forwarded from NanoModule this program contains. +// Calls beginning with "PRG_" are reserved for programs handling. +// Calls beginning with "PC_" are reserved for computer handling (by whatever runs the program) +// ALWAYS INCLUDE PARENT CALL ..() OR DIE IN FIRE. +/datum/computer_file/program/ui_act(action,params,datum/tgui/ui) + if(..()) + return 1 + if(computer) + switch(action) + if("PC_exit") + computer.kill_program() + ui.close() + return 1 + if("PC_shutdown") + computer.shutdown_computer() + ui.close() + return 1 + if("PC_minimize") + var/mob/user = usr + if(!computer.active_program || !computer.all_components[MC_CPU]) + return + + computer.idle_threads.Add(computer.active_program) + program_state = PROGRAM_STATE_BACKGROUND // Should close any existing UIs + + computer.active_program = null + computer.update_icon() + ui.close() + + if(user && istype(user)) + computer.ui_interact(user) // Re-open the UI on this computer. It should show the main screen now. + + +/datum/computer_file/program/ui_host() + if(computer.physical) + return computer.physical + else + return computer + +/datum/computer_file/program/ui_status(mob/user) + if(program_state != PROGRAM_STATE_ACTIVE) // Our program was closed. Close the ui if it exists. + return UI_CLOSE + return ..() diff --git a/code/modules/modular_computers/file_system/program_events.dm b/code/modules/modular_computers/file_system/program_events.dm new file mode 100644 index 0000000000..279d646cfd --- /dev/null +++ b/code/modules/modular_computers/file_system/program_events.dm @@ -0,0 +1,18 @@ +// Events are sent to the program by the computer. +// Always include a parent call when overriding an event. + +// Called when the ID card is removed from computer. ID is removed AFTER this proc. +/datum/computer_file/program/proc/event_idremoved(background, slot) + return + +// Called when the computer fails due to power loss. Override when program wants to specifically react to power loss. +/datum/computer_file/program/proc/event_powerfailure(background) + kill_program(forced = TRUE) + +// Called when the network connectivity fails. Computer does necessary checks and only calls this when requires_ntnet_feature and similar variables are not met. +/datum/computer_file/program/proc/event_networkfailure(background) + kill_program(forced = TRUE) + if(background) + computer.visible_message("\The [computer]'s screen displays an \"Process [filename].[filetype] (PID [rand(100,999)]) terminated - Network Error\" error") + else + computer.visible_message("\The [computer]'s screen briefly freezes and then shows \"NETWORK ERROR - NTNet connection lost. Please retry. If problem persists contact your system administrator.\" error.") diff --git a/code/modules/modular_computers/file_system/programs/airestorer.dm b/code/modules/modular_computers/file_system/programs/airestorer.dm new file mode 100644 index 0000000000..5c9917b4f5 --- /dev/null +++ b/code/modules/modular_computers/file_system/programs/airestorer.dm @@ -0,0 +1,125 @@ + + +/datum/computer_file/program/aidiag + filename = "aidiag" + filedesc = "AI Maintenance Utility" + program_icon_state = "generic" + extended_desc = "This program is capable of reconstructing damaged AI systems. Requires direct AI connection via intellicard slot." + size = 12 + requires_ntnet = 0 + usage_flags = PROGRAM_CONSOLE + transfer_access = access_heads + available_on_ntnet = 1 + var/restoring = FALSE + +/datum/computer_file/program/aidiag/proc/get_ai(cardcheck) + + var/obj/item/weapon/computer_hardware/ai_slot/ai_slot + + if(computer) + ai_slot = computer.all_components[MC_AI] + + if(computer && ai_slot && ai_slot.check_functionality()) + if(cardcheck == 1) + return ai_slot + if(ai_slot.enabled && ai_slot.stored_card) + if(cardcheck == 2) + return ai_slot.stored_card + if(ai_slot.stored_card.AI) + return ai_slot.stored_card.AI + + return null + +/datum/computer_file/program/aidiag/ui_act(action, params) + if(..()) + return TRUE + + var/mob/living/silicon/ai/A = get_ai() + if(!A) + restoring = FALSE + + switch(action) + if("PRG_beginReconstruction") + if(A && A.health < 100) + restoring = TRUE + return TRUE + if("PRG_eject") + if(computer.all_components[MC_AI]) + var/obj/item/weapon/computer_hardware/ai_slot/ai_slot = computer.all_components[MC_AI] + if(ai_slot && ai_slot.stored_card) + ai_slot.try_eject(0,usr) + return TRUE + +/datum/computer_file/program/aidiag/process_tick() + ..() + if(!restoring) //Put the check here so we don't check for an ai all the time + return + var/obj/item/device/aicard/cardhold = get_ai(2) + + var/obj/item/weapon/computer_hardware/ai_slot/ai_slot = get_ai(1) + + + var/mob/living/silicon/ai/A = get_ai() + if(!A || !cardhold) + restoring = FALSE // If the AI was removed, stop the restoration sequence. + if(ai_slot) + ai_slot.locked = FALSE + return + + if(cardhold.flush) + ai_slot.locked = FALSE + restoring = FALSE + return + ai_slot.locked =TRUE + A.adjustOxyLoss(-1, 0) + A.adjustFireLoss(-1, 0) + A.adjustToxLoss(-1, 0) + A.adjustBruteLoss(-1, 0) + A.updatehealth() + if(A.health >= 0 && A.stat == DEAD) + A.revive() + // Finished restoring + if(A.health >= 100) + ai_slot.locked = FALSE + restoring = FALSE + + return TRUE + + +/datum/computer_file/program/aidiag/ui_data(mob/user) + var/list/data = get_header_data() + var/mob/living/silicon/ai/AI + // A shortcut for getting the AI stored inside the computer. The program already does necessary checks. + AI = get_ai() + + var/obj/item/device/aicard/aicard = get_ai(2) + + if(!aicard) + data["nocard"] = TRUE + data["error"] = "Please insert an intelliCard." + else + if(!AI) + data["error"] = "No AI located" + else + var/obj/item/device/aicard/cardhold = AI.loc + if(cardhold.flush) + data["error"] = "Flush in progress" + else + data["name"] = AI.name + data["restoring"] = restoring + data["laws"] = AI.laws.get_law_list(include_zeroth = 1) + data["health"] = (AI.health + 100) / 2 + data["isDead"] = AI.stat == DEAD + data["ai_laws"] = AI.laws.get_law_list(include_zeroth = 1) + + return data + +/datum/computer_file/program/aidiag/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = default_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "ai_restorer", "Integrity Restorer", 600, 400, master_ui, state) + ui.open() + +/datum/computer_file/program/aidiag/kill_program(forced) + restoring = FALSE + return ..(forced) \ No newline at end of file diff --git a/code/modules/modular_computers/file_system/programs/alarm.dm b/code/modules/modular_computers/file_system/programs/alarm.dm new file mode 100644 index 0000000000..0d15e23069 --- /dev/null +++ b/code/modules/modular_computers/file_system/programs/alarm.dm @@ -0,0 +1,110 @@ + + + +/datum/computer_file/program/alarm_monitor + filename = "alarmmonitor" + filedesc = "Alarm Monitoring" + ui_header = "alarm_green.gif" + program_icon_state = "alert-green" + extended_desc = "This program provides visual interface for station's alarm system." + requires_ntnet = 1 + network_destination = "alarm monitoring network" + size = 5 + var/has_alert = 0 + var/alarms = list("Fire" = list(), "Atmosphere" = list(), "Power" = list()) + var/alarm_z = list(ZLEVEL_STATION,ZLEVEL_LAVALAND) + +/datum/computer_file/program/alarm_monitor/process_tick() + ..() + + if(has_alert) + program_icon_state = "alert-red" + ui_header = "alarm_red.gif" + update_computer_icon() + else + if(!has_alert) + program_icon_state = "alert-green" + ui_header = "alarm_green.gif" + update_computer_icon() + return 1 + + + +/datum/computer_file/program/alarm_monitor/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = default_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "station_alert_prog", "Alarm Monitoring", 300, 500, master_ui, state) + ui.open() + +/datum/computer_file/program/alarm_monitor/ui_data(mob/user) + var/list/data = get_header_data() + + data["alarms"] = list() + for(var/class in alarms) + data["alarms"][class] = list() + for(var/area in alarms[class]) + data["alarms"][class] += area + + return data + +/datum/computer_file/program/alarm_monitor/proc/triggerAlarm(class, area/A, O, obj/source) + + if(!(source.z in alarm_z)) + return + + var/list/L = alarms[class] + for(var/I in L) + if (I == A.name) + var/list/alarm = L[I] + var/list/sources = alarm[3] + if (!(source in sources)) + sources += source + return 1 + var/obj/machinery/camera/C = null + var/list/CL = null + if(O && istype(O, /list)) + CL = O + if (CL.len == 1) + C = CL[1] + else if(O && istype(O, /obj/machinery/camera)) + C = O + L[A.name] = list(A, (C ? C : O), list(source)) + + update_alarm_display() + + return 1 + + +/datum/computer_file/program/alarm_monitor/proc/cancelAlarm(class, area/A, obj/origin) + + + var/list/L = alarms[class] + var/cleared = 0 + for (var/I in L) + if (I == A.name) + var/list/alarm = L[I] + var/list/srcs = alarm[3] + if (origin in srcs) + srcs -= origin + if (srcs.len == 0) + cleared = 1 + L -= I + + update_alarm_display() + return !cleared + +/datum/computer_file/program/alarm_monitor/proc/update_alarm_display() + has_alert = FALSE + for(var/cat in alarms) + var/list/L = alarms[cat] + if(L.len) + has_alert = TRUE + +/datum/computer_file/program/alarm_monitor/run_program(mob/user) + . = ..(user) + alarmdisplay += src + +/datum/computer_file/program/alarm_monitor/kill_program(forced = FALSE) + alarmdisplay -= src + ..() \ No newline at end of file diff --git a/code/modules/modular_computers/file_system/programs/antagonist/dos.dm b/code/modules/modular_computers/file_system/programs/antagonist/dos.dm new file mode 100644 index 0000000000..3d54938ba1 --- /dev/null +++ b/code/modules/modular_computers/file_system/programs/antagonist/dos.dm @@ -0,0 +1,107 @@ +/datum/computer_file/program/ntnet_dos + filename = "ntn_dos" + filedesc = "DoS Traffic Generator" + program_icon_state = "hostile" + extended_desc = "This advanced script can perform denial of service attacks against NTNet quantum relays. The system administrator will probably notice this. Multiple devices can run this program together against same relay for increased effect" + size = 20 + requires_ntnet = 1 + available_on_ntnet = 0 + available_on_syndinet = 1 + var/obj/machinery/ntnet_relay/target = null + var/dos_speed = 0 + var/error = "" + var/executed = 0 + +/datum/computer_file/program/ntnet_dos/process_tick() + dos_speed = 0 + switch(ntnet_status) + if(1) + dos_speed = NTNETSPEED_LOWSIGNAL * 10 + if(2) + dos_speed = NTNETSPEED_HIGHSIGNAL * 10 + if(3) + dos_speed = NTNETSPEED_ETHERNET * 10 + if(target && executed) + target.dos_overload += dos_speed + if(!target.is_operational()) + target.dos_sources.Remove(src) + target = null + error = "Connection to destination relay lost." + +/datum/computer_file/program/ntnet_dos/kill_program(forced = FALSE) + if(target) + target.dos_sources.Remove(src) + target = null + executed = 0 + + ..() + + +/datum/computer_file/program/ntnet_dos/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = default_state) + + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if (!ui) + ui = new(user, src, ui_key, "ntnet_dos", "DoS Traffic Generator", 400, 250, state = state) + ui.set_style("syndicate") + ui.set_autoupdate(state = 1) + ui.open() + + + +/datum/computer_file/program/ntnet_dos/ui_act(action, params) + if(..()) + return 1 + switch(action) + if("PRG_target_relay") + for(var/obj/machinery/ntnet_relay/R in ntnet_global.relays) + if("[R.uid]" == params["targid"]) + target = R + return 1 + if("PRG_reset") + if(target) + target.dos_sources.Remove(src) + target = null + executed = 0 + error = "" + return 1 + if("PRG_execute") + if(target) + executed = 1 + target.dos_sources.Add(src) + if(ntnet_global.intrusion_detection_enabled) + var/obj/item/weapon/computer_hardware/network_card/network_card = computer.all_components[MC_NET] + ntnet_global.add_log("IDS WARNING - Excess traffic flood targeting relay [target.uid] detected from device: [network_card.get_network_tag()]") + ntnet_global.intrusion_detection_alarm = 1 + return 1 + +/datum/computer_file/program/ntnet_dos/ui_data(mob/user) + if(!ntnet_global) + return + + var/list/data = list() + + data = get_header_data() + + if(error) + data["error"] = error + else if(target && executed) + data["target"] = 1 + data["speed"] = dos_speed + + // This is mostly visual, generate some strings of 1s and 0s + // Probability of 1 is equal of completion percentage of DoS attack on this relay. + // Combined with UI updates this adds quite nice effect to the UI + var/percentage = target.dos_overload * 100 / target.dos_capacity + data["dos_strings"] = list() + for(var/j, j<10, j++) + var/string = "" + for(var/i, i<20, i++) + string = "[string][prob(percentage)]" + data["dos_strings"] += list(list("nums" = string)) + else + data["relays"] = list() + for(var/obj/machinery/ntnet_relay/R in ntnet_global.relays) + data["relays"] += list(list("id" = R.uid)) + data["focus"] = target ? target.uid : null + + return data \ No newline at end of file diff --git a/code/modules/modular_computers/file_system/programs/antagonist/revelation.dm b/code/modules/modular_computers/file_system/programs/antagonist/revelation.dm new file mode 100644 index 0000000000..4278159d1a --- /dev/null +++ b/code/modules/modular_computers/file_system/programs/antagonist/revelation.dm @@ -0,0 +1,76 @@ +/datum/computer_file/program/revelation + filename = "revelation" + filedesc = "Revelation" + program_icon_state = "hostile" + extended_desc = "This virus can destroy hard drive of system it is executed on. It may be obfuscated to look like another non-malicious program. Once armed, it will destroy the system upon next execution." + size = 13 + requires_ntnet = 0 + available_on_ntnet = 0 + available_on_syndinet = 1 + var/armed = 0 + +/datum/computer_file/program/revelation/run_program(var/mob/living/user) + . = ..(user) + if(armed) + activate() + +/datum/computer_file/program/revelation/proc/activate() + if(computer) + computer.visible_message("\The [computer]'s screen brightly flashes and loud electrical buzzing is heard.") + computer.enabled = 0 + computer.update_icon() + var/obj/item/weapon/computer_hardware/hard_drive/hard_drive = computer.all_components[MC_HDD] + var/obj/item/weapon/computer_hardware/battery/battery_module = computer.all_components[MC_CELL] + var/obj/item/weapon/computer_hardware/recharger/recharger = computer.all_components[MC_CHARGE] + qdel(hard_drive) + computer.take_damage(25, BRUTE, 0, 0) + if(battery_module && prob(25)) + qdel(battery_module) + computer.visible_message("\The [computer]'s battery explodes in rain of sparks.") + var/datum/effect_system/spark_spread/spark_system = new /datum/effect_system/spark_spread + spark_system.start() + + if(recharger && prob(50)) + qdel(recharger) + computer.visible_message("\The [computer]'s recharger explodes in rain of sparks.") + var/datum/effect_system/spark_spread/spark_system = new /datum/effect_system/spark_spread + spark_system.start() + + +/datum/computer_file/program/revelation/ui_act(action, params) + if(..()) + return 1 + switch(action) + if("PRG_arm") + armed = !armed + if("PRG_activate") + activate() + if("PRG_obfuscate") + var/mob/living/user = usr + var/newname = sanitize(input(user, "Enter new program name: ")) + if(!newname) + return + filedesc = newname + + +/datum/computer_file/program/revelation/clone() + var/datum/computer_file/program/revelation/temp = ..() + temp.armed = armed + return temp + +/datum/computer_file/program/revelation/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = default_state) + + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if (!ui) + ui = new(user, src, ui_key, "revelation", "Revelation Virus", 400, 250, state = state) + ui.set_style("syndicate") + ui.set_autoupdate(state = 1) + ui.open() + + +/datum/computer_file/program/revelation/ui_data(mob/user) + var/list/data = get_header_data() + + data["armed"] = armed + + return data \ No newline at end of file diff --git a/code/modules/modular_computers/file_system/programs/card.dm b/code/modules/modular_computers/file_system/programs/card.dm new file mode 100644 index 0000000000..0f1b03f4b3 --- /dev/null +++ b/code/modules/modular_computers/file_system/programs/card.dm @@ -0,0 +1,488 @@ +/datum/computer_file/program/card_mod + filename = "cardmod" + filedesc = "ID card modification program" + program_icon_state = "id" + extended_desc = "Program for programming employee ID cards to access parts of the station." + transfer_access = access_change_ids + requires_ntnet = 0 + size = 8 + var/mod_mode = 1 + var/is_centcom = 0 + var/show_assignments = 0 + var/minor = 0 + var/authenticated = 0 + var/list/reg_ids = list() + var/list/region_access = null + var/list/head_subordinates = null + var/target_dept = 0 //Which department this computer has access to. 0=all departments + var/change_position_cooldown = 60 + //Jobs you cannot open new positions for + var/list/blacklisted = list( + "AI", + "Assistant", + "Cyborg", + "Captain", + "Head of Personnel", + "Head of Security", + "Chief Engineer", + "Research Director", + "Chief Medical Officer", + "Chaplain") + + //The scaling factor of max total positions in relation to the total amount of people on board the station in % + var/max_relative_positions = 30 //30%: Seems reasonable, limit of 6 @ 20 players + + //This is used to keep track of opened positions for jobs to allow instant closing + //Assoc array: "JobName" = (int) + var/list/opened_positions = list(); + + +/datum/computer_file/program/card_mod/event_idremoved(background, slot) + if(slot == 2) + minor = 0 + authenticated = 0 + head_subordinates = null + region_access = null + + +/datum/computer_file/program/card_mod/proc/job_blacklisted(jobtitle) + return (jobtitle in blacklisted) + + +//Logic check for if you can open the job +/datum/computer_file/program/card_mod/proc/can_open_job(datum/job/job) + if(job) + if(!job_blacklisted(job.title)) + if((job.total_positions <= player_list.len * (max_relative_positions / 100))) + var/delta = (world.time / 10) - time_last_changed_position + if((change_position_cooldown < delta) || (opened_positions[job.title] < 0)) + return 1 + return -2 + return 0 + return 0 + +//Logic check for if you can close the job +/datum/computer_file/program/card_mod/proc/can_close_job(datum/job/job) + if(job) + if(!job_blacklisted(job.title)) + if(job.total_positions > job.current_positions) + var/delta = (world.time / 10) - time_last_changed_position + if((change_position_cooldown < delta) || (opened_positions[job.title] > 0)) + return 1 + return -2 + return 0 + return 0 + + +/datum/computer_file/program/card_mod/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = default_state) + + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if (!ui) + + var/datum/asset/assets = get_asset_datum(/datum/asset/simple/headers) + assets.send(user) + + ui = new(user, src, ui_key, "identification_computer", "ID card modification program", 600, 700, state = state) + ui.open() + ui.set_autoupdate(state = 1) + + +/datum/computer_file/program/card_mod/proc/format_jobs(list/jobs) + var/obj/item/weapon/computer_hardware/card_slot/card_slot = computer.all_components[MC_CARD] + var/obj/item/weapon/card/id/id_card = card_slot.stored_card + var/list/formatted = list() + for(var/job in jobs) + formatted.Add(list(list( + "display_name" = replacetext(job, " ", " "), + "target_rank" = id_card && id_card.assignment ? id_card.assignment : "Unassigned", + "job" = job))) + + return formatted + +/datum/computer_file/program/card_mod/ui_act(action, params) + if(..()) + return 1 + + var/obj/item/weapon/computer_hardware/card_slot/card_slot + var/obj/item/weapon/computer_hardware/printer/printer + if(computer) + card_slot = computer.all_components[MC_CARD] + printer = computer.all_components[MC_PRINT] + if(!card_slot) + return + + var/obj/item/weapon/card/id/user_id_card = null + var/mob/user = usr + + var/obj/item/weapon/card/id/id_card = card_slot.stored_card + var/obj/item/weapon/card/id/auth_card = card_slot.stored_card2 + + if(auth_card) + user_id_card = auth_card + else + if(ishuman(user)) + var/mob/living/carbon/human/h = user + user_id_card = h.get_idcard() + + switch(action) + if("PRG_switchm") + if(params["target"] == "mod") + mod_mode = 1 + else if (params["target"] == "manifest") + mod_mode = 0 + else if (params["target"] == "manage") + mod_mode = 2 + if("PRG_togglea") + if(show_assignments) + show_assignments = 0 + else + show_assignments = 1 + if("PRG_print") + if(computer && printer) //This option should never be called if there is no printer + if(mod_mode) + if(authorized()) + var/contents = {"

    Access Report

    + Prepared By: [user_id_card && user_id_card.registered_name ? user_id_card.registered_name : "Unknown"]
    + For: [id_card.registered_name ? id_card.registered_name : "Unregistered"]
    +
    + Assignment: [id_card.assignment]
    + Access:
    + "} + + var/known_access_rights = get_all_accesses() + for(var/A in id_card.access) + if(A in known_access_rights) + contents += " [get_access_desc(A)]" + + if(!printer.print_text(contents,"access report")) + usr << "Hardware error: Printer was unable to print the file. It may be out of paper." + return + else + computer.visible_message("\The [computer] prints out paper.") + else + var/contents = {"

    Crew Manifest

    +
    + [data_core ? data_core.get_manifest(0) : ""] + "} + if(!printer.print_text(contents,text("crew manifest ([])", worldtime2text()))) + usr << "Hardware error: Printer was unable to print the file. It may be out of paper." + return + else + computer.visible_message("\The [computer] prints out paper.") + if("PRG_eject") + if(computer && card_slot) + var/select = params["target"] + switch(select) + if("id") + if(id_card) + data_core.manifest_modify(id_card.registered_name, id_card.assignment) + card_slot.try_eject(, user) + else + var/obj/item/I = usr.get_active_held_item() + if (istype(I, /obj/item/weapon/card/id)) + if(!usr.drop_item()) + return + I.forceMove(computer) + card_slot.stored_card = I + if("auth") + if(auth_card) + if(id_card) + data_core.manifest_modify(id_card.registered_name, id_card.assignment) + head_subordinates = null + region_access = null + authenticated = 0 + minor = 0 + card_slot.try_eject(, user) + else + var/obj/item/I = usr.get_active_held_item() + if (istype(I, /obj/item/weapon/card/id)) + if(!usr.drop_item()) + return + I.forceMove(computer) + card_slot.stored_card2 = I + if("PRG_terminate") + if(computer && ((id_card.assignment in head_subordinates) || id_card.assignment == "Assistant")) + id_card.assignment = "Unassigned" + remove_nt_access(id_card) + + if("PRG_edit") + if(computer && authorized()) + if(params["name"]) + var/temp_name = reject_bad_name(input("Enter name.", "Name", id_card.registered_name)) + if(temp_name) + id_card.registered_name = temp_name + else + computer.visible_message("[computer] buzzes rudely.") + //else if(params["account"]) + // var/account_num = text2num(input("Enter account number.", "Account", id_card.associated_account_number)) + // id_card.associated_account_number = account_num + if("PRG_assign") + if(computer && authorized() && id_card) + var/t1 = params["assign_target"] + if(t1 == "Custom") + var/temp_t = reject_bad_text(input("Enter a custom job assignment.","Assignment", id_card.assignment), 45) + //let custom jobs function as an impromptu alt title, mainly for sechuds + if(temp_t) + id_card.assignment = temp_t + else + var/list/access = list() + if(is_centcom) + access = get_centcom_access(t1) + else + var/datum/job/jobdatum + for(var/jobtype in typesof(/datum/job)) + var/datum/job/J = new jobtype + if(ckey(J.title) == ckey(t1)) + jobdatum = J + break + if(!jobdatum) + usr << "No log exists for this job: [t1]" + return + + access = jobdatum.get_access() + + remove_nt_access(id_card) + apply_access(id_card, access) + id_card.assignment = t1 + + if("PRG_access") + if(params["allowed"] && computer && authorized()) + var/access_type = text2num(params["access_target"]) + var/access_allowed = text2num(params["allowed"]) + if(access_type in (is_centcom ? get_all_centcom_access() : get_all_accesses())) + id_card.access -= access_type + if(!access_allowed) + id_card.access += access_type + if("PRG_open_job") + var/edit_job_target = params["target"] + var/datum/job/j = SSjob.GetJob(edit_job_target) + if(!j) + return 0 + if(can_open_job(j) != 1) + return 0 + if(opened_positions[edit_job_target] >= 0) + time_last_changed_position = world.time / 10 + j.total_positions++ + opened_positions[edit_job_target]++ + if("PRG_close_job") + var/edit_job_target = params["target"] + var/datum/job/j = SSjob.GetJob(edit_job_target) + if(!j) + return 0 + if(can_close_job(j) != 1) + return 0 + //Allow instant closing without cooldown if a position has been opened before + if(opened_positions[edit_job_target] <= 0) + time_last_changed_position = world.time / 10 + j.total_positions-- + opened_positions[edit_job_target]-- + if("PRG_regsel") + if(!reg_ids) + reg_ids = list() + var/regsel = text2num(params["region"]) + if(regsel in reg_ids) + reg_ids -= regsel + else + reg_ids += regsel + + if(id_card) + id_card.name = text("[id_card.registered_name]'s ID Card ([id_card.assignment])") + + return 1 + +/datum/computer_file/program/card_mod/proc/remove_nt_access(obj/item/weapon/card/id/id_card) + id_card.access -= get_all_accesses() + id_card.access -= get_all_centcom_access() + +/datum/computer_file/program/card_mod/proc/apply_access(obj/item/weapon/card/id/id_card, list/accesses) + id_card.access |= accesses + +/datum/computer_file/program/card_mod/ui_data(mob/user) + + var/list/data = get_header_data() + + var/obj/item/weapon/computer_hardware/card_slot/card_slot + var/obj/item/weapon/computer_hardware/printer/printer + + if(computer) + card_slot = computer.all_components[MC_CARD] + printer = computer.all_components[MC_PRINT] + + data["mmode"] = mod_mode + + var/authed = 0 + if(computer) + if(card_slot) + var/obj/item/weapon/card/id/auth_card = card_slot.stored_card2 + data["auth_name"] = auth_card ? strip_html_simple(auth_card.name) : "-----" + authed = authorized() + + + if(mod_mode == 2) + data["slots"] = list() + var/list/pos = list() + for(var/datum/job/job in SSjob.occupations) + if(job.title in blacklisted) + continue + + var/list/status_open = build_manage(job,1) + var/list/status_close = build_manage(job,0) + + pos.Add(list(list( + "title" = job.title, + "current" = job.current_positions, + "total" = job.total_positions, + "status_open" = authed ? status_open["enable"]: 0, + "status_close" = authed ? status_close["enable"] : 0, + "desc_open" = status_open["desc"], + "desc_close" = status_close["desc"]))) + data["slots"] = pos + + data["src"] = "\ref[src]" + data["station_name"] = station_name() + + + if(!mod_mode) + data["manifest"] = list() + var/list/crew = list() + for(var/datum/data/record/t in sortRecord(data_core.general)) + crew.Add(list(list( + "name" = t.fields["name"], + "rank" = t.fields["rank"]))) + + data["manifest"] = crew + data["assignments"] = show_assignments + if(computer) + data["have_id_slot"] = !!card_slot + data["have_printer"] = !!printer + if(!card_slot && mod_mode == 1) + mod_mode = 0 //We can't modify IDs when there is no card reader + else + data["have_id_slot"] = 0 + data["have_printer"] = 0 + + data["centcom_access"] = is_centcom + + + data["authenticated"] = authed + + + if(mod_mode == 1 && computer) + if(card_slot) + var/obj/item/weapon/card/id/id_card = card_slot.stored_card + + data["has_id"] = !!id_card + data["id_rank"] = id_card && id_card.assignment ? html_encode(id_card.assignment) : "Unassigned" + data["id_owner"] = id_card && id_card.registered_name ? html_encode(id_card.registered_name) : "-----" + data["id_name"] = id_card ? strip_html_simple(id_card.name) : "-----" + + if(show_assignments) + data["engineering_jobs"] = format_jobs(engineering_positions) + data["medical_jobs"] = format_jobs(medical_positions) + data["science_jobs"] = format_jobs(science_positions) + data["security_jobs"] = format_jobs(security_positions) + data["cargo_jobs"] = format_jobs(supply_positions) + data["civilian_jobs"] = format_jobs(civilian_positions) + data["centcom_jobs"] = format_jobs(get_all_centcom_jobs()) + + + if(card_slot.stored_card) + var/obj/item/weapon/card/id/id_card = card_slot.stored_card + if(is_centcom) + var/list/all_centcom_access = list() + for(var/access in get_all_centcom_access()) + all_centcom_access.Add(list(list( + "desc" = replacetext(get_centcom_access_desc(access), " ", " "), + "ref" = access, + "allowed" = (access in id_card.access) ? 1 : 0))) + data["all_centcom_access"] = all_centcom_access + else + var/list/regions = list() + for(var/i = 1; i <= 7; i++) + if((minor || target_dept) && !(i in region_access)) + continue + + var/list/accesses = list() + if(i in reg_ids) + for(var/access in get_region_accesses(i)) + if (get_access_desc(access)) + accesses.Add(list(list( + "desc" = replacetext(get_access_desc(access), " ", " "), + "ref" = access, + "allowed" = (access in id_card.access) ? 1 : 0))) + + regions.Add(list(list( + "name" = get_region_accesses_name(i), + "regid" = i, + "selected" = (i in reg_ids) ? 1 : null, + "accesses" = accesses))) + data["regions"] = regions + + data["minor"] = target_dept || minor ? 1 : 0 + + + return data + + +/datum/computer_file/program/card_mod/proc/build_manage(datum/job,open = 0) + var/out = "Denied" + var/can_change= 0 + if(open) + can_change = can_open_job(job) + else + can_change = can_close_job(job) + var/enable = 0 + if(can_change == 1) + out = "[open ? "Open Position" : "Close Position"]" + enable = 1 + else if(can_change == -2) + var/time_to_wait = round(change_position_cooldown - ((world.time / 10) - time_last_changed_position), 1) + var/mins = round(time_to_wait / 60) + var/seconds = time_to_wait - (60*mins) + out = "Cooldown ongoing: [mins]:[(seconds < 10) ? "0[seconds]" : "[seconds]"]" + else + out = "Denied" + + return list("enable" = enable, "desc" = out) + + +/datum/computer_file/program/card_mod/proc/authorized() + if(!authenticated && computer) + var/obj/item/weapon/computer_hardware/card_slot/card_slot = computer.all_components[MC_CARD] + if(card_slot) + var/obj/item/weapon/card/id/auth_card = card_slot.stored_card2 + if(auth_card) + region_access = list() + if(transfer_access in auth_card.GetAccess()) + minor = 0 + authenticated = 1 + return 1 + else + if((access_hop in auth_card.access) && ((target_dept==1) || !target_dept)) + region_access |= 1 + region_access |= 6 + get_subordinates("Head of Personnel") + if((access_hos in auth_card.access) && ((target_dept==2) || !target_dept)) + region_access |= 2 + get_subordinates("Head of Security") + if((access_cmo in auth_card.access) && ((target_dept==3) || !target_dept)) + region_access |= 3 + get_subordinates("Chief Medical Officer") + if((access_rd in auth_card.access) && ((target_dept==4) || !target_dept)) + region_access |= 4 + get_subordinates("Research Director") + if((access_ce in auth_card.access) && ((target_dept==5) || !target_dept)) + region_access |= 5 + get_subordinates("Chief Engineer") + if(region_access) + minor = 1 + authenticated = 1 + return 1 + else + return authenticated + +/datum/computer_file/program/card_mod/proc/get_subordinates(rank) + head_subordinates = list() + for(var/datum/job/job in SSjob.occupations) + if(rank in job.department_head) + head_subordinates += job.title diff --git a/code/modules/modular_computers/file_system/programs/configurator.dm b/code/modules/modular_computers/file_system/programs/configurator.dm new file mode 100644 index 0000000000..57348d2744 --- /dev/null +++ b/code/modules/modular_computers/file_system/programs/configurator.dm @@ -0,0 +1,77 @@ +// This is special hardware configuration program. +// It is to be used only with modular computers. +// It allows you to toggle components of your device. + +/datum/computer_file/program/computerconfig + filename = "compconfig" + filedesc = "Computer Configuration Tool" + extended_desc = "This program allows configuration of computer's hardware" + program_icon_state = "generic" + unsendable = 1 + undeletable = 1 + size = 4 + available_on_ntnet = 0 + requires_ntnet = 0 + var/obj/item/device/modular_computer/movable = null + + +/datum/computer_file/program/computerconfig/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = default_state) + + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if (!ui) + + var/datum/asset/assets = get_asset_datum(/datum/asset/simple/headers) + assets.send(user) + + ui = new(user, src, ui_key, "laptop_configuration", "NTOS Configuration Utility", 575, 700, state = state) + ui.open() + ui.set_autoupdate(state = 1) + +/datum/computer_file/program/computerconfig/ui_data(mob/user) + movable = computer + var/obj/item/weapon/computer_hardware/hard_drive/hard_drive = movable.all_components[MC_HDD] + var/obj/item/weapon/computer_hardware/battery/battery_module = movable.all_components[MC_CELL] + if(!istype(movable)) + movable = null + + // No computer connection, we can't get data from that. + if(!movable) + return 0 + + var/list/data = get_header_data() + + data["disk_size"] = hard_drive.max_capacity + data["disk_used"] = hard_drive.used_capacity + data["power_usage"] = movable.last_power_usage + data["battery_exists"] = battery_module ? 1 : 0 + if(battery_module && battery_module.battery) + data["battery_rating"] = battery_module.battery.maxcharge + data["battery_percent"] = round(battery_module.battery.percent()) + + if(battery_module && battery_module.battery) + data["battery"] = list("max" = battery_module.battery.maxcharge, "charge" = round(battery_module.battery.charge)) + + var/list/all_entries[0] + for(var/I in movable.all_components) + var/obj/item/weapon/computer_hardware/H = movable.all_components[I] + all_entries.Add(list(list( + "name" = H.name, + "desc" = H.desc, + "enabled" = H.enabled, + "critical" = H.critical, + "powerusage" = H.power_usage + ))) + + data["hardware"] = all_entries + return data + + +/datum/computer_file/program/computerconfig/ui_act(action,params) + if(..()) + return + switch(action) + if("PC_toggle_component") + var/obj/item/weapon/computer_hardware/H = movable.find_hardware_by_name(params["name"]) + if(H && istype(H)) + H.enabled = !H.enabled + . = TRUE diff --git a/code/modules/modular_computers/file_system/programs/file_browser.dm b/code/modules/modular_computers/file_system/programs/file_browser.dm new file mode 100644 index 0000000000..50a07014e5 --- /dev/null +++ b/code/modules/modular_computers/file_system/programs/file_browser.dm @@ -0,0 +1,230 @@ +/datum/computer_file/program/filemanager + filename = "filemanager" + filedesc = "NTOS File Manager" + extended_desc = "This program allows management of files." + program_icon_state = "generic" + size = 8 + requires_ntnet = 0 + available_on_ntnet = 0 + undeletable = 1 + var/open_file + var/error + +/datum/computer_file/program/filemanager/ui_act(action, params) + if(..()) + return 1 + + var/obj/item/weapon/computer_hardware/hard_drive/HDD = computer.all_components[MC_HDD] + var/obj/item/weapon/computer_hardware/hard_drive/RHDD = computer.all_components[MC_HDD] + var/obj/item/weapon/computer_hardware/printer/printer = computer.all_components[MC_PRINT] + + switch(action) + if("PRG_openfile") + . = 1 + open_file = params["name"] + if("PRG_newtextfile") + . = 1 + var/newname = sanitize(input(usr, "Enter file name or leave blank to cancel:", "File rename")) + if(!newname) + return 1 + if(!HDD) + return 1 + var/datum/computer_file/data/F = new/datum/computer_file/data() + F.filename = newname + F.filetype = "TXT" + HDD.store_file(F) + if("PRG_deletefile") + . = 1 + if(!HDD) + return 1 + var/datum/computer_file/file = HDD.find_file_by_name(params["name"]) + if(!file || file.undeletable) + return 1 + HDD.remove_file(file) + if("PRG_usbdeletefile") + . = 1 + if(!RHDD) + return 1 + var/datum/computer_file/file = RHDD.find_file_by_name(params["name"]) + if(!file || file.undeletable) + return 1 + RHDD.remove_file(file) + if("PRG_closefile") + . = 1 + open_file = null + error = null + if("PRG_clone") + . = 1 + if(!HDD) + return 1 + var/datum/computer_file/F = HDD.find_file_by_name(params["name"]) + if(!F || !istype(F)) + return 1 + var/datum/computer_file/C = F.clone(1) + HDD.store_file(C) + if("PRG_rename") + . = 1 + if(!HDD) + return 1 + var/datum/computer_file/file = HDD.find_file_by_name(params["name"]) + if(!file || !istype(file)) + return 1 + var/newname = sanitize(input(usr, "Enter new file name:", "File rename", file.filename)) + if(file && newname) + file.filename = newname + if("PRG_edit") + . = 1 + if(!open_file) + return 1 + if(!HDD) + return 1 + var/datum/computer_file/data/F = HDD.find_file_by_name(open_file) + if(!F || !istype(F)) + return 1 + if(F.do_not_edit && (alert("WARNING: This file is not compatible with editor. Editing it may result in permanently corrupted formatting or damaged data consistency. Edit anyway?", "Incompatible File", "No", "Yes") == "No")) + return 1 + // 16384 is the limit for file length in characters. Currently, papers have value of 2048 so this is 8 times as long, since we can't edit parts of the file independently. + var/newtext = sanitize(html_decode(input(usr, "Editing file [open_file]. You may use most tags used in paper formatting:", "Text Editor", F.stored_data) as message|null), 16384) + if(!newtext) + return + if(F) + var/datum/computer_file/data/backup = F.clone() + HDD.remove_file(F) + F.stored_data = newtext + F.calculate_size() + // We can't store the updated file, it's probably too large. Print an error and restore backed up version. + // This is mostly intended to prevent people from losing texts they spent lot of time working on due to running out of space. + // They will be able to copy-paste the text from error screen and store it in notepad or something. + if(!HDD.store_file(F)) + error = "I/O error: Unable to overwrite file. Hard drive is probably full. You may want to backup your changes before closing this window:

    [F.stored_data]

    " + HDD.store_file(backup) + if("PRG_printfile") + . = 1 + if(!open_file) + return 1 + if(!HDD) + return 1 + var/datum/computer_file/data/F = HDD.find_file_by_name(open_file) + if(!F || !istype(F)) + return 1 + if(!printer) + error = "Missing Hardware: Your computer does not have required hardware to complete this operation." + return 1 + if(!printer.print_text(parse_tags(F.stored_data))) + error = "Hardware error: Printer was unable to print the file. It may be out of paper." + return 1 + if("PRG_copytousb") + . = 1 + if(!HDD || !RHDD) + return 1 + var/datum/computer_file/F = HDD.find_file_by_name(params["name"]) + if(!F || !istype(F)) + return 1 + var/datum/computer_file/C = F.clone(0) + RHDD.store_file(C) + if("PRG_copyfromusb") + . = 1 + if(!HDD || !RHDD) + return 1 + var/datum/computer_file/F = RHDD.find_file_by_name(params["name"]) + if(!F || !istype(F)) + return 1 + var/datum/computer_file/C = F.clone(0) + HDD.store_file(C) + + +/datum/computer_file/program/filemanager/proc/parse_tags(t) + t = replacetext(t, "\[center\]", "
    ") + t = replacetext(t, "\[/center\]", "
    ") + t = replacetext(t, "\[br\]", "
    ") + t = replacetext(t, "\[b\]", "") + t = replacetext(t, "\[/b\]", "") + t = replacetext(t, "\[i\]", "") + t = replacetext(t, "\[/i\]", "") + t = replacetext(t, "\[u\]", "") + t = replacetext(t, "\[/u\]", "") + t = replacetext(t, "\[time\]", "[worldtime2text()]") + t = replacetext(t, "\[date\]", "[time2text(world.realtime, "MMM DD")] [year_integer+540]") + t = replacetext(t, "\[large\]", "") + t = replacetext(t, "\[/large\]", "") + t = replacetext(t, "\[h1\]", "

    ") + t = replacetext(t, "\[/h1\]", "

    ") + t = replacetext(t, "\[h2\]", "

    ") + t = replacetext(t, "\[/h2\]", "

    ") + t = replacetext(t, "\[h3\]", "

    ") + t = replacetext(t, "\[/h3\]", "

    ") + t = replacetext(t, "\[*\]", "
  • ") + t = replacetext(t, "\[hr\]", "
    ") + t = replacetext(t, "\[small\]", "") + t = replacetext(t, "\[/small\]", "") + t = replacetext(t, "\[list\]", "
      ") + t = replacetext(t, "\[/list\]", "
    ") + t = replacetext(t, "\[table\]", "") + t = replacetext(t, "\[/table\]", "
    ") + t = replacetext(t, "\[grid\]", "") + t = replacetext(t, "\[/grid\]", "
    ") + t = replacetext(t, "\[row\]", "
  • ") + t = replacetext(t, "\[cell\]", "") + t = replacetext(t, "\[logo\]", "") + return t + + +/datum/computer_file/program/filemanager/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = default_state) + + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if (!ui) + + var/datum/asset/assets = get_asset_datum(/datum/asset/simple/headers) + assets.send(user) + + ui = new(user, src, ui_key, "file_manager", "NTOS File Manage", 575, 700, state = state) + ui.open() + ui.set_autoupdate(state = 1) + +/datum/computer_file/program/filemanager/ui_data(mob/user) + var/list/data = get_header_data() + + var/obj/item/weapon/computer_hardware/hard_drive/HDD = computer.all_components[MC_HDD] + var/obj/item/weapon/computer_hardware/hard_drive/portable/RHDD = computer.all_components[MC_SDD] + if(error) + data["error"] = error + if(open_file) + var/datum/computer_file/data/file + + if(!computer || !HDD) + data["error"] = "I/O ERROR: Unable to access hard drive." + else + file = HDD.find_file_by_name(open_file) + if(!istype(file)) + data["error"] = "I/O ERROR: Unable to open file." + else + data["filedata"] = parse_tags(file.stored_data) + data["filename"] = "[file.filename].[file.filetype]" + else + if(!computer || !HDD) + data["error"] = "I/O ERROR: Unable to access hard drive." + else + var/list/files[0] + for(var/datum/computer_file/F in HDD.stored_files) + files.Add(list(list( + "name" = F.filename, + "type" = F.filetype, + "size" = F.size, + "undeletable" = F.undeletable + ))) + data["files"] = files + if(RHDD) + data["usbconnected"] = 1 + var/list/usbfiles[0] + for(var/datum/computer_file/F in RHDD.stored_files) + usbfiles.Add(list(list( + "name" = F.filename, + "type" = F.filetype, + "size" = F.size, + "undeletable" = F.undeletable + ))) + data["usbfiles"] = usbfiles + + return data \ No newline at end of file diff --git a/code/modules/modular_computers/file_system/programs/ntdownloader.dm b/code/modules/modular_computers/file_system/programs/ntdownloader.dm new file mode 100644 index 0000000000..01d5dd3d91 --- /dev/null +++ b/code/modules/modular_computers/file_system/programs/ntdownloader.dm @@ -0,0 +1,178 @@ +/datum/computer_file/program/ntnetdownload + filename = "ntndownloader" + filedesc = "NTNet Software Download Tool" + program_icon_state = "generic" + extended_desc = "This program allows downloads of software from official NT repositories" + unsendable = 1 + undeletable = 1 + size = 4 + requires_ntnet = 1 + requires_ntnet_feature = NTNET_SOFTWAREDOWNLOAD + available_on_ntnet = 0 + ui_header = "downloader_finished.gif" + var/datum/computer_file/program/downloaded_file = null + var/hacked_download = 0 + var/download_completion = 0 //GQ of downloaded data. + var/download_netspeed = 0 + var/downloaderror = "" + var/obj/item/device/modular_computer/my_computer = null + +/datum/computer_file/program/ntnetdownload/proc/begin_file_download(filename) + if(downloaded_file) + return 0 + + var/datum/computer_file/program/PRG = ntnet_global.find_ntnet_file_by_name(filename) + + if(!PRG || !istype(PRG)) + return 0 + + // Attempting to download antag only program, but without having emagged computer. No. + if(PRG.available_on_syndinet && !computer.emagged) + return 0 + + var/obj/item/weapon/computer_hardware/hard_drive/hard_drive = computer.all_components[MC_HDD] + + if(!computer || !hard_drive || !hard_drive.can_store_file(PRG)) + return 0 + + ui_header = "downloader_running.gif" + + if(PRG in ntnet_global.available_station_software) + generate_network_log("Began downloading file [PRG.filename].[PRG.filetype] from NTNet Software Repository.") + hacked_download = 0 + else if(PRG in ntnet_global.available_antag_software) + generate_network_log("Began downloading file **ENCRYPTED**.[PRG.filetype] from unspecified server.") + hacked_download = 1 + else + generate_network_log("Began downloading file [PRG.filename].[PRG.filetype] from unspecified server.") + hacked_download = 0 + + downloaded_file = PRG.clone() + +/datum/computer_file/program/ntnetdownload/proc/abort_file_download() + if(!downloaded_file) + return + generate_network_log("Aborted download of file [hacked_download ? "**ENCRYPTED**" : "[downloaded_file.filename].[downloaded_file.filetype]"].") + downloaded_file = null + download_completion = 0 + ui_header = "downloader_finished.gif" + +/datum/computer_file/program/ntnetdownload/proc/complete_file_download() + if(!downloaded_file) + return + generate_network_log("Completed download of file [hacked_download ? "**ENCRYPTED**" : "[downloaded_file.filename].[downloaded_file.filetype]"].") + var/obj/item/weapon/computer_hardware/hard_drive/hard_drive = computer.all_components[MC_HDD] + if(!computer || !hard_drive || !hard_drive.store_file(downloaded_file)) + // The download failed + downloaderror = "I/O ERROR - Unable to save file. Check whether you have enough free space on your hard drive and whether your hard drive is properly connected. If the issue persists contact your system administrator for assistance." + downloaded_file = null + download_completion = 0 + ui_header = "downloader_finished.gif" + +/datum/computer_file/program/ntnetdownload/process_tick() + if(!downloaded_file) + return + if(download_completion >= downloaded_file.size) + complete_file_download() + // Download speed according to connectivity state. NTNet server is assumed to be on unlimited speed so we're limited by our local connectivity + download_netspeed = 0 + // Speed defines are found in misc.dm + switch(ntnet_status) + if(1) + download_netspeed = NTNETSPEED_LOWSIGNAL + if(2) + download_netspeed = NTNETSPEED_HIGHSIGNAL + if(3) + download_netspeed = NTNETSPEED_ETHERNET + download_completion += download_netspeed + +/datum/computer_file/program/ntnetdownload/ui_act(action, params) + if(..()) + return 1 + switch(action) + if("PRG_downloadfile") + if(!downloaded_file) + begin_file_download(params["filename"]) + return 1 + if("PRG_reseterror") + if(downloaderror) + download_completion = 0 + download_netspeed = 0 + downloaded_file = null + downloaderror = "" + return 1 + return 0 + +/datum/computer_file/program/ntnetdownload/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = default_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if (!ui) + + var/datum/asset/assets = get_asset_datum(/datum/asset/simple/headers) + assets.send(user) + + ui = new(user, src, ui_key, "ntnet_downloader", "NTNet Download Program", 575, 700, state = state) + ui.open() + ui.set_autoupdate(state = 1) + +/datum/computer_file/program/ntnetdownload/ui_data(mob/user) + my_computer = computer + + if(!istype(my_computer)) + return + + var/list/data = get_header_data() + + // This IF cuts on data transferred to client, so i guess it's worth it. + if(downloaderror) // Download errored. Wait until user resets the program. + data["error"] = downloaderror + else if(downloaded_file) // Download running. Wait please.. + data["downloadname"] = downloaded_file.filename + data["downloaddesc"] = downloaded_file.filedesc + data["downloadsize"] = downloaded_file.size + data["downloadspeed"] = download_netspeed + data["downloadcompletion"] = round(download_completion, 0.1) + else // No download running, pick file. + var/obj/item/weapon/computer_hardware/hard_drive/hard_drive = my_computer.all_components[MC_HDD] + data["disk_size"] = hard_drive.max_capacity + data["disk_used"] = hard_drive.used_capacity + var/list/all_entries[0] + for(var/A in ntnet_global.available_station_software) + var/datum/computer_file/program/P = A + // Only those programs our user can run will show in the list + if(!P.can_run(user,transfer = 1)) + continue + all_entries.Add(list(list( + "filename" = P.filename, + "filedesc" = P.filedesc, + "fileinfo" = P.extended_desc, + "compatibility" = check_compatibility(P), + "size" = P.size + ))) + data["hackedavailable"] = 0 + if(computer.emagged) // If we are running on emagged computer we have access to some "bonus" software + var/list/hacked_programs[0] + for(var/S in ntnet_global.available_antag_software) + var/datum/computer_file/program/P = S + data["hackedavailable"] = 1 + hacked_programs.Add(list(list( + "filename" = P.filename, + "filedesc" = P.filedesc, + "fileinfo" = P.extended_desc, + "size" = P.size + ))) + data["hacked_programs"] = hacked_programs + + data["downloadable_programs"] = all_entries + + return data + +/datum/computer_file/program/ntnetdownload/proc/check_compatibility(datum/computer_file/program/P) + var/hardflag = computer.hardware_flag + + if(P && P.is_supported_by_hardware(hardflag,0)) + return "Compatible" + return "Incompatible!" + +/datum/computer_file/program/ntnetdownload/kill_program(forced) + abort_file_download() + return ..(forced) \ No newline at end of file diff --git a/code/modules/modular_computers/file_system/programs/ntmonitor.dm b/code/modules/modular_computers/file_system/programs/ntmonitor.dm new file mode 100644 index 0000000000..e12299b250 --- /dev/null +++ b/code/modules/modular_computers/file_system/programs/ntmonitor.dm @@ -0,0 +1,94 @@ +/datum/computer_file/program/ntnetmonitor + filename = "ntmonitor" + filedesc = "NTNet Diagnostics and Monitoring" + program_icon_state = "comm_monitor" + extended_desc = "This program monitors stationwide NTNet network, provides access to logging systems, and allows for configuration changes" + size = 12 + requires_ntnet = 1 + required_access = access_network //Network control is a more secure program. + available_on_ntnet = 1 + +/datum/computer_file/program/ntnetmonitor/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = default_state) + + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if (!ui) + + var/datum/asset/assets = get_asset_datum(/datum/asset/simple/headers) + assets.send(user) + + + ui = new(user, src, ui_key, "ntnet_monitor", "NTNet Diagnostics and Monitoring Tool", 575, 700, state = state) + ui.open() + ui.set_autoupdate(state = 1) + + +/datum/computer_file/program/ntnetmonitor/ui_act(action, params) + if(..()) + return 1 + switch(action) + if("resetIDS") + . = 1 + if(ntnet_global) + ntnet_global.resetIDS() + return 1 + if("toggleIDS") + . = 1 + if(ntnet_global) + ntnet_global.toggleIDS() + return 1 + if("toggleWireless") + . = 1 + if(!ntnet_global) + return 1 + + // NTNet is disabled. Enabling can be done without user prompt + if(ntnet_global.setting_disabled) + ntnet_global.setting_disabled = 0 + return 1 + + // NTNet is enabled and user is about to shut it down. Let's ask them if they really want to do it, as wirelessly connected computers won't connect without NTNet being enabled (which may prevent people from turning it back on) + var/mob/user = usr + if(!user) + return 1 + var/response = alert(user, "Really disable NTNet wireless? If your computer is connected wirelessly you won't be able to turn it back on! This will affect all connected wireless devices.", "NTNet shutdown", "Yes", "No") + if(response == "Yes") + ntnet_global.setting_disabled = 1 + return 1 + if("purgelogs") + . = 1 + if(ntnet_global) + ntnet_global.purge_logs() + if("updatemaxlogs") + . = 1 + var/mob/user = usr + var/logcount = text2num(input(user,"Enter amount of logs to keep in memory ([MIN_NTNET_LOGS]-[MAX_NTNET_LOGS]):")) + if(ntnet_global) + ntnet_global.update_max_log_count(logcount) + if("toggle_function") + . = 1 + if(!ntnet_global) + return 1 + ntnet_global.toggle_function(text2num(params["id"])) + +/datum/computer_file/program/ntnetmonitor/ui_data(mob/user) + if(!ntnet_global) + return + var/list/data = get_header_data() + + data["ntnetstatus"] = ntnet_global.check_function() + data["ntnetrelays"] = ntnet_global.relays.len + data["idsstatus"] = ntnet_global.intrusion_detection_enabled + data["idsalarm"] = ntnet_global.intrusion_detection_alarm + + data["config_softwaredownload"] = ntnet_global.setting_softwaredownload + data["config_peertopeer"] = ntnet_global.setting_peertopeer + data["config_communication"] = ntnet_global.setting_communication + data["config_systemcontrol"] = ntnet_global.setting_systemcontrol + + data["ntnetlogs"] = list() + + for(var/i in ntnet_global.logs) + data["ntnetlogs"] += list(list("entry" = i)) + data["ntnetmaxlogs"] = ntnet_global.setting_maxlogcount + + return data \ No newline at end of file diff --git a/code/modules/modular_computers/file_system/programs/ntnrc_client.dm b/code/modules/modular_computers/file_system/programs/ntnrc_client.dm new file mode 100644 index 0000000000..1b8ff88767 --- /dev/null +++ b/code/modules/modular_computers/file_system/programs/ntnrc_client.dm @@ -0,0 +1,237 @@ +/datum/computer_file/program/chatclient + filename = "ntnrc_client" + filedesc = "NTNet Relay Chat Client" + program_icon_state = "command" + extended_desc = "This program allows communication over NTNRC network" + size = 8 + requires_ntnet = 1 + requires_ntnet_feature = NTNET_COMMUNICATION + network_destination = "NTNRC server" + ui_header = "ntnrc_idle.gif" + available_on_ntnet = 1 + var/last_message = null // Used to generate the toolbar icon + var/username + var/datum/ntnet_conversation/channel = null + var/operator_mode = 0 // Channel operator mode + var/netadmin_mode = 0 // Administrator mode (invisible to other users + bypasses passwords) + +/datum/computer_file/program/chatclient/New() + username = "DefaultUser[rand(100, 999)]" + +/datum/computer_file/program/chatclient/ui_act(action, params) + if(..()) + return 1 + + switch(action) + if("PRG_speak") + . = 1 + if(!channel) + return 1 + var/mob/living/user = usr + var/message = reject_bad_text(input(user, "Enter message or leave blank to cancel: ")) + if(!message || !channel) + return + channel.add_message(message, username) + log_chat("[user]/([user.ckey]) as [username] sent to [channel.title]: [message]") + + if("PRG_joinchannel") + . = 1 + var/datum/ntnet_conversation/C + for(var/datum/ntnet_conversation/chan in ntnet_global.chat_channels) + if(chan.id == text2num(params["id"])) + C = chan + break + + if(!C) + return 1 + + if(netadmin_mode) + channel = C // Bypasses normal leave/join and passwords. Technically makes the user invisible to others. + return 1 + + if(C.password) + var/mob/living/user = usr + var/password = reject_bad_text(input(user,"Access Denied. Enter password:")) + if(C && (password == C.password)) + C.add_client(src) + channel = C + return 1 + C.add_client(src) + channel = C + if("PRG_leavechannel") + . = 1 + if(channel) + channel.remove_client(src) + channel = null + if("PRG_newchannel") + . = 1 + var/mob/living/user = usr + var/channel_title = reject_bad_text(input(user,"Enter channel name or leave blank to cancel:")) + if(!channel_title) + return + var/datum/ntnet_conversation/C = new/datum/ntnet_conversation() + C.add_client(src) + C.operator = src + channel = C + C.title = channel_title + if("PRG_toggleadmin") + . = 1 + if(netadmin_mode) + netadmin_mode = 0 + if(channel) + channel.remove_client(src) // We shouldn't be in channel's user list, but just in case... + channel = null + return 1 + var/mob/living/user = usr + if(can_run(usr, 1, access_network)) + if(channel) + var/response = alert(user, "Really engage admin-mode? You will be disconnected from your current channel!", "NTNRC Admin mode", "Yes", "No") + if(response == "Yes") + if(channel) + channel.remove_client(src) + channel = null + else + return + netadmin_mode = 1 + if("PRG_changename") + . = 1 + var/mob/living/user = usr + var/newname = sanitize(input(user,"Enter new nickname or leave blank to cancel:")) + if(!newname) + return 1 + if(channel) + channel.add_status_message("[username] is now known as [newname].") + username = newname + + if("PRG_savelog") + . = 1 + if(!channel) + return + var/mob/living/user = usr + var/logname = input(user,"Enter desired logfile name (.log) or leave blank to cancel:") + if(!logname || !channel) + return 1 + var/datum/computer_file/data/logfile = new/datum/computer_file/data/logfile() + // Now we will generate HTML-compliant file that can actually be viewed/printed. + logfile.filename = logname + logfile.stored_data = "\[b\]Logfile dump from NTNRC channel [channel.title]\[/b\]\[BR\]" + for(var/logstring in channel.messages) + logfile.stored_data += "[logstring]\[BR\]" + logfile.stored_data += "\[b\]Logfile dump completed.\[/b\]" + logfile.calculate_size() + var/obj/item/weapon/computer_hardware/hard_drive/hard_drive = computer.all_components[MC_HDD] + if(!computer || !hard_drive || !hard_drive.store_file(logfile)) + if(!computer) + // This program shouldn't even be runnable without computer. + CRASH("Var computer is null!") + return 1 + if(!hard_drive) + computer.visible_message("\The [computer] shows an \"I/O Error - Hard drive connection error\" warning.") + else // In 99.9% cases this will mean our HDD is full + computer.visible_message("\The [computer] shows an \"I/O Error - Hard drive may be full. Please free some space and try again. Required space: [logfile.size]GQ\" warning.") + if("PRG_renamechannel") + . = 1 + if(!operator_mode || !channel) + return 1 + var/mob/living/user = usr + var/newname = reject_bad_text(input(user, "Enter new channel name or leave blank to cancel:")) + if(!newname || !channel) + return + channel.add_status_message("Channel renamed from [channel.title] to [newname] by operator.") + channel.title = newname + if("PRG_deletechannel") + . = 1 + if(channel && ((channel.operator == src) || netadmin_mode)) + qdel(channel) + channel = null + if("PRG_setpassword") + . = 1 + if(!channel || ((channel.operator != src) && !netadmin_mode)) + return 1 + + var/mob/living/user = usr + var/newpassword = sanitize(input(user, "Enter new password for this channel. Leave blank to cancel, enter 'nopassword' to remove password completely:")) + if(!channel || !newpassword || ((channel.operator != src) && !netadmin_mode)) + return 1 + + if(newpassword == "nopassword") + channel.password = "" + else + channel.password = newpassword + +/datum/computer_file/program/chatclient/process_tick() + ..() + if(program_state != PROGRAM_STATE_KILLED) + ui_header = "ntnrc_idle.gif" + if(channel) + // Remember the last message. If there is no message in the channel remember null. + last_message = channel.messages.len ? channel.messages[channel.messages.len - 1] : null + else + last_message = null + return 1 + if(channel && channel.messages && channel.messages.len) + ui_header = last_message == channel.messages[channel.messages.len - 1] ? "ntnrc_idle.gif" : "ntnrc_new.gif" + else + ui_header = "ntnrc_idle.gif" + +/datum/computer_file/program/chatclient/kill_program(forced = FALSE) + if(channel) + channel.remove_client(src) + channel = null + ..() + +/datum/computer_file/program/chatclient/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = default_state) + + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if (!ui) + + + var/datum/asset/assets = get_asset_datum(/datum/asset/simple/headers) + assets.send(user) + + + ui = new(user, src, ui_key, "ntnet_chat", "NTNet Relay Chat Client", 575, 700, state = state) + ui.open() + ui.set_autoupdate(state = 1) + + +/datum/computer_file/program/chatclient/ui_data(mob/user) + if(!ntnet_global || !ntnet_global.chat_channels) + return + + var/list/data = list() + + data = get_header_data() + + + data["adminmode"] = netadmin_mode + if(channel) + data["title"] = channel.title + var/list/messages[0] + for(var/M in channel.messages) + messages.Add(list(list( + "msg" = M + ))) + data["messages"] = messages + var/list/clients[0] + for(var/C in channel.clients) + var/datum/computer_file/program/chatclient/cl = C + clients.Add(list(list( + "name" = cl.username + ))) + data["clients"] = clients + operator_mode = (channel.operator == src) ? 1 : 0 + data["is_operator"] = operator_mode || netadmin_mode + + else // Channel selection screen + var/list/all_channels[0] + for(var/C in ntnet_global.chat_channels) + var/datum/ntnet_conversation/conv = C + if(conv && conv.title) + all_channels.Add(list(list( + "chan" = conv.title, + "id" = conv.id + ))) + data["all_channels"] = all_channels + + return data \ No newline at end of file diff --git a/code/modules/modular_computers/file_system/programs/nttransfer.dm b/code/modules/modular_computers/file_system/programs/nttransfer.dm new file mode 100644 index 0000000000..7d42bb8212 --- /dev/null +++ b/code/modules/modular_computers/file_system/programs/nttransfer.dm @@ -0,0 +1,198 @@ +var/global/nttransfer_uid = 0 + +/datum/computer_file/program/nttransfer + filename = "nttransfer" + filedesc = "NTNet P2P Transfer Client" + extended_desc = "This program allows for simple file transfer via direct peer to peer connection." + program_icon_state = "comm_logs" + size = 7 + requires_ntnet = 1 + requires_ntnet_feature = NTNET_PEERTOPEER + network_destination = "other device via P2P tunnel" + available_on_ntnet = 1 + + var/error = "" // Error screen + var/server_password = "" // Optional password to download the file. + var/datum/computer_file/provided_file = null // File which is provided to clients. + var/datum/computer_file/downloaded_file = null // File which is being downloaded + var/list/connected_clients = list() // List of connected clients. + var/datum/computer_file/program/nttransfer/remote // Client var, specifies who are we downloading from. + var/download_completion = 0 // Download progress in GQ + var/download_netspeed = 0 // Our connectivity speed in GQ/s + var/actual_netspeed = 0 // Displayed in the UI, this is the actual transfer speed. + var/unique_token // UID of this program + var/upload_menu = 0 // Whether we show the program list and upload menu + +/datum/computer_file/program/nttransfer/New() + unique_token = nttransfer_uid + nttransfer_uid++ + ..() + +/datum/computer_file/program/nttransfer/process_tick() + // Server mode + update_netspeed() + if(provided_file) + for(var/datum/computer_file/program/nttransfer/C in connected_clients) + // Transfer speed is limited by device which uses slower connectivity. + // We can have multiple clients downloading at same time, but let's assume we use some sort of multicast transfer + // so they can all run on same speed. + C.actual_netspeed = min(C.download_netspeed, download_netspeed) + C.download_completion += C.actual_netspeed + if(C.download_completion >= provided_file.size) + C.finish_download() + else if(downloaded_file) // Client mode + if(!remote) + crash_download("Connection to remote server lost") + +/datum/computer_file/program/nttransfer/kill_program(forced = FALSE) + if(downloaded_file) // Client mode, clean up variables for next use + finalize_download() + + if(provided_file) // Server mode, disconnect all clients + for(var/datum/computer_file/program/nttransfer/P in connected_clients) + P.crash_download("Connection terminated by remote server") + downloaded_file = null + ..(forced) + +/datum/computer_file/program/nttransfer/proc/update_netspeed() + download_netspeed = 0 + switch(ntnet_status) + if(1) + download_netspeed = NTNETSPEED_LOWSIGNAL + if(2) + download_netspeed = NTNETSPEED_HIGHSIGNAL + if(3) + download_netspeed = NTNETSPEED_ETHERNET + +// Finishes download and attempts to store the file on HDD +/datum/computer_file/program/nttransfer/proc/finish_download() + var/obj/item/weapon/computer_hardware/hard_drive/hard_drive = computer.all_components[MC_HDD] + if(!computer || !hard_drive || !hard_drive.store_file(downloaded_file)) + error = "I/O Error: Unable to save file. Check your hard drive and try again." + finalize_download() + +// Crashes the download and displays specific error message +/datum/computer_file/program/nttransfer/proc/crash_download(var/message) + error = message ? message : "An unknown error has occurred during download" + finalize_download() + +// Cleans up variables for next use +/datum/computer_file/program/nttransfer/proc/finalize_download() + if(remote) + remote.connected_clients.Remove(src) + downloaded_file = null + remote = null + download_completion = 0 + + +/datum/computer_file/program/nttransfer/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = default_state) + + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if (!ui) + + var/datum/asset/assets = get_asset_datum(/datum/asset/simple/headers) + assets.send(user) + + + ui = new(user, src, ui_key, "ntnet_transfer", "NTNet P2P Transfer Client", 575, 700, state = state) + ui.open() + ui.set_autoupdate(state = 1) + +/datum/computer_file/program/nttransfer/ui_act(action, params) + if(..()) + return 1 + switch(action) + if("PRG_downloadfile") + for(var/datum/computer_file/program/nttransfer/P in ntnet_global.fileservers) + if("[P.unique_token]" == params["id"]) + remote = P + break + if(!remote || !remote.provided_file) + return + if(remote.server_password) + var/pass = reject_bad_text(input(usr, "Code 401 Unauthorized. Please enter password:", "Password required")) + if(pass != remote.server_password) + error = "Incorrect Password" + return + downloaded_file = remote.provided_file.clone() + remote.connected_clients.Add(src) + return 1 + if("PRG_reset") + error = "" + upload_menu = 0 + finalize_download() + if(src in ntnet_global.fileservers) + ntnet_global.fileservers.Remove(src) + for(var/datum/computer_file/program/nttransfer/T in connected_clients) + T.crash_download("Remote server has forcibly closed the connection") + provided_file = null + return 1 + if("PRG_setpassword") + var/pass = reject_bad_text(input(usr, "Enter new server password. Leave blank to cancel, input 'none' to disable password.", "Server security", "none")) + if(!pass) + return + if(pass == "none") + server_password = "" + return + server_password = pass + return 1 + if("PRG_uploadfile") + var/obj/item/weapon/computer_hardware/hard_drive/hard_drive = computer.all_components[MC_HDD] + for(var/datum/computer_file/F in hard_drive.stored_files) + if("[F.uid]" == params["id"]) + if(F.unsendable) + error = "I/O Error: File locked." + return + if(istype(F, /datum/computer_file/program)) + var/datum/computer_file/program/P = F + if(!P.can_run(usr,transfer = 1)) + error = "Access Error: Insufficient rights to upload file." + provided_file = F + ntnet_global.fileservers.Add(src) + return + error = "I/O Error: Unable to locate file on hard drive." + return 1 + if("PRG_uploadmenu") + upload_menu = 1 + + +/datum/computer_file/program/nttransfer/ui_data(mob/user) + + var/list/data = get_header_data() + + if(error) + data["error"] = error + else if(downloaded_file) + data["downloading"] = 1 + data["download_size"] = downloaded_file.size + data["download_progress"] = download_completion + data["download_netspeed"] = actual_netspeed + data["download_name"] = "[downloaded_file.filename].[downloaded_file.filetype]" + else if (provided_file) + data["uploading"] = 1 + data["upload_uid"] = unique_token + data["upload_clients"] = connected_clients.len + data["upload_haspassword"] = server_password ? 1 : 0 + data["upload_filename"] = "[provided_file.filename].[provided_file.filetype]" + else if (upload_menu) + var/list/all_files[0] + var/obj/item/weapon/computer_hardware/hard_drive/hard_drive = computer.all_components[MC_HDD] + for(var/datum/computer_file/F in hard_drive.stored_files) + all_files.Add(list(list( + "uid" = F.uid, + "filename" = "[F.filename].[F.filetype]", + "size" = F.size + ))) + data["upload_filelist"] = all_files + else + var/list/all_servers[0] + for(var/datum/computer_file/program/nttransfer/P in ntnet_global.fileservers) + all_servers.Add(list(list( + "uid" = P.unique_token, + "filename" = "[P.provided_file.filename].[P.provided_file.filetype]", + "size" = P.provided_file.size, + "haspassword" = P.server_password ? 1 : 0 + ))) + data["servers"] = all_servers + + return data \ No newline at end of file diff --git a/code/modules/modular_computers/file_system/programs/powermonitor.dm b/code/modules/modular_computers/file_system/programs/powermonitor.dm new file mode 100644 index 0000000000..316b90ec00 --- /dev/null +++ b/code/modules/modular_computers/file_system/programs/powermonitor.dm @@ -0,0 +1,93 @@ + + +/datum/computer_file/program/power_monitor + filename = "powermonitor" + filedesc = "Power Monitoring" + program_icon_state = "power_monitor" + extended_desc = "This program connects to sensors around the station to provide information about electrical systems" + ui_header = "power_norm.gif" + transfer_access = access_engine + usage_flags = PROGRAM_CONSOLE + requires_ntnet = 0 + network_destination = "power monitoring system" + size = 9 + var/has_alert = 0 + var/obj/structure/cable/attached + var/list/history = list() + var/record_size = 60 + var/record_interval = 50 + var/next_record = 0 + + + + +/datum/computer_file/program/power_monitor/run_program(mob/living/user) + . = ..(user) + search() + history["supply"] = list() + history["demand"] = list() + + +/datum/computer_file/program/power_monitor/process_tick() + if(!attached) + search() + else + record() + +/datum/computer_file/program/power_monitor/proc/search() + var/turf/T = get_turf(computer) + attached = locate() in T + +/datum/computer_file/program/power_monitor/proc/record() + if(world.time >= next_record) + next_record = world.time + record_interval + + var/list/supply = history["supply"] + supply += attached.powernet.viewavail + if(supply.len > record_size) + supply.Cut(1, 2) + + var/list/demand = history["demand"] + demand += attached.powernet.viewload + if(demand.len > record_size) + demand.Cut(1, 2) + +/datum/computer_file/program/power_monitor/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = default_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + + var/datum/asset/assets = get_asset_datum(/datum/asset/simple/headers) + assets.send(user) + + + ui = new(user, src, ui_key, "power_monitor_prog", "Power Monitoring", 1200, 1000, master_ui, state) + ui.open() + +/datum/computer_file/program/power_monitor/ui_data() + var/list/data = get_header_data() + data["stored"] = record_size + data["interval"] = record_interval / 10 + data["attached"] = attached ? TRUE : FALSE + if(attached) + data["supply"] = attached.powernet.viewavail + data["demand"] = attached.powernet.viewload + data["history"] = history + + data["areas"] = list() + if(attached) + for(var/obj/machinery/power/terminal/term in attached.powernet.nodes) + var/obj/machinery/power/apc/A = term.master + if(istype(A)) + data["areas"] += list(list( + "name" = A.area.name, + "charge" = A.cell.percent(), + "load" = A.lastused_total, + "charging" = A.charging, + "eqp" = A.equipment, + "lgt" = A.lighting, + "env" = A.environ + )) + + return data + diff --git a/code/modules/modular_computers/hardware/CPU.dm b/code/modules/modular_computers/hardware/CPU.dm new file mode 100644 index 0000000000..614ad35da9 --- /dev/null +++ b/code/modules/modular_computers/hardware/CPU.dm @@ -0,0 +1,44 @@ +// CPU that allows the computer to run programs. +// Better CPUs are obtainable via research and can run more programs on background. + +/obj/item/weapon/computer_hardware/processor_unit + name = "processor board" + desc = "A standard CPU board used in most computers. It can run up to three programs simultaneously." + icon_state = "cpuboard" + w_class = WEIGHT_CLASS_SMALL + power_usage = 50 + critical = 1 + malfunction_probability = 1 + origin_tech = "programming=3;engineering=2" + var/max_idle_programs = 2 // 2 idle, + 1 active = 3 as said in description. + device_type = MC_CPU + +/obj/item/weapon/computer_hardware/processor_unit/on_remove(obj/item/device/modular_computer/MC, mob/user) + MC.shutdown_computer() + +/obj/item/weapon/computer_hardware/processor_unit/small + name = "microprocessor" + desc = "A miniaturised CPU used in portable devices. It can run up to two programs simultaneously." + icon_state = "cpu" + w_class = WEIGHT_CLASS_TINY + power_usage = 25 + max_idle_programs = 1 + origin_tech = "programming=2;engineering=2" + +/obj/item/weapon/computer_hardware/processor_unit/photonic + name = "photonic processor board" + desc = "An advanced experimental CPU board that uses photonic core instead of regular circuitry. It can run up to five programs simultaneously, but uses a lot of power." + icon_state = "cpuboard_super" + w_class = WEIGHT_CLASS_SMALL + power_usage = 250 + max_idle_programs = 4 + origin_tech = "programming=5;engineering=4" + +/obj/item/weapon/computer_hardware/processor_unit/photonic/small + name = "photonic microprocessor" + desc = "An advanced miniaturised CPU for use in portable devices. It uses photonic core instead of regular circuitry. It can run up to three programs simultaneously." + icon_state = "cpu_super" + w_class = WEIGHT_CLASS_TINY + power_usage = 75 + max_idle_programs = 2 + origin_tech = "programming=4;engineering=3" \ No newline at end of file diff --git a/code/modules/modular_computers/hardware/_hardware.dm b/code/modules/modular_computers/hardware/_hardware.dm new file mode 100644 index 0000000000..27a4cd4480 --- /dev/null +++ b/code/modules/modular_computers/hardware/_hardware.dm @@ -0,0 +1,103 @@ +/obj/item/weapon/computer_hardware + name = "hardware" + desc = "Unknown Hardware." + icon = 'icons/obj/module.dmi' + icon_state = "std_mod" + + w_class = WEIGHT_CLASS_TINY // w_class limits which devices can contain this component. + // 1: PDAs/Tablets, 2: Laptops, 3-4: Consoles only + var/obj/item/device/modular_computer/holder = null + // Computer that holds this hardware, if any. + + var/power_usage = 0 // If the hardware uses extra power, change this. + var/enabled = 1 // If the hardware is turned off set this to 0. + var/critical = 0 // Prevent disabling for important component, like the CPU. + var/can_install = 1 // Prevents direct installation of removable media. + var/damage = 0 // Current damage level + var/max_damage = 100 // Maximal damage level. + var/damage_malfunction = 20 // "Malfunction" threshold. When damage exceeds this value the hardware piece will semi-randomly fail and do !!FUN!! things + var/damage_failure = 50 // "Failure" threshold. When damage exceeds this value the hardware piece will not work at all. + var/malfunction_probability = 10// Chance of malfunction when the component is damaged + var/device_type + +/obj/item/weapon/computer_hardware/New(var/obj/L) + ..() + pixel_x = rand(-8, 8) + pixel_y = rand(-8, 8) + +/obj/item/weapon/computer_hardware/Destroy() + if(holder) + holder.uninstall_component(src) + return ..() + + +/obj/item/weapon/computer_hardware/attackby(obj/item/I, mob/living/user) + // Multitool. Runs diagnostics + if(istype(I, /obj/item/device/multitool)) + user << "***** DIAGNOSTICS REPORT *****" + diagnostics(user) + user << "******************************" + return 1 + + // Cable coil. Works as repair method, but will probably require multiple applications and more cable. + if(istype(I, /obj/item/stack/cable_coil)) + var/obj/item/stack/S = I + if(obj_integrity == max_integrity) + user << "\The [src] doesn't seem to require repairs." + return 1 + if(S.use(1)) + user << "You patch up \the [src] with a bit of \the [I]." + obj_integrity = min(obj_integrity + 10, max_integrity) + return 1 + + if(try_insert(I, user)) + return 1 + + return ..() + +// Called on multitool click, prints diagnostic information to the user. +/obj/item/weapon/computer_hardware/proc/diagnostics(var/mob/user) + user << "Hardware Integrity Test... (Corruption: [damage]/[max_damage]) [damage > damage_failure ? "FAIL" : damage > damage_malfunction ? "WARN" : "PASS"]" + +// Handles damage checks +/obj/item/weapon/computer_hardware/proc/check_functionality() + if(!enabled) // Disabled. + return FALSE + + if(damage > damage_failure) // Too damaged to work at all. + return FALSE + + if(damage > damage_malfunction) // Still working. Well, sometimes... + if(prob(malfunction_probability)) + return FALSE + + return TRUE // Good to go. + +/obj/item/weapon/computer_hardware/examine(var/mob/user) + . = ..() + if(damage > damage_failure) + user << "It seems to be severely damaged!" + else if(damage > damage_malfunction) + user << "It seems to be damaged!" + else if(damage) + user << "It seems to be slightly damaged." + +// Component-side compatibility check. +/obj/item/weapon/computer_hardware/proc/can_install(obj/item/device/modular_computer/M, mob/living/user = null) + return can_install + +// Called when component is installed into PC. +/obj/item/weapon/computer_hardware/proc/on_install(obj/item/device/modular_computer/M, mob/living/user = null) + return + +// Called when component is removed from PC. +/obj/item/weapon/computer_hardware/proc/on_remove(obj/item/device/modular_computer/M, mob/living/user = null) + try_eject(forced = 1) + +// Called when someone tries to insert something in it - paper in printer, card in card reader, etc. +/obj/item/weapon/computer_hardware/proc/try_insert(obj/item/I, mob/living/user = null) + return FALSE + +// Called when someone tries to eject something from it - card from card reader, etc. +/obj/item/weapon/computer_hardware/proc/try_eject(slot=0, mob/living/user = null, forced = 0) + return FALSE diff --git a/code/modules/modular_computers/hardware/ai_slot.dm b/code/modules/modular_computers/hardware/ai_slot.dm new file mode 100644 index 0000000000..9e27b433c7 --- /dev/null +++ b/code/modules/modular_computers/hardware/ai_slot.dm @@ -0,0 +1,72 @@ +/obj/item/weapon/computer_hardware/ai_slot + name = "intelliCard interface slot" + desc = "A module allowing this computer to interface with most common intelliCard modules. Necessary for some programs to run properly." + power_usage = 100 //W + icon_state = "card_mini" + w_class = WEIGHT_CLASS_SMALL + origin_tech = "programming=2" + device_type = MC_AI + + var/obj/item/device/aicard/stored_card = null + var/locked = FALSE + + +/obj/item/weapon/computer_hardware/ai_slot/examine(mob/user) + ..() + if(stored_card) + user << "There appears to be an intelliCard loaded. There appears to be a pinhole protecting a manual eject button. A screwdriver could probably press it" + +/obj/item/weapon/computer_hardware/ai_slot/on_install(obj/item/device/modular_computer/M, mob/living/user = null) + M.add_verb(device_type) + +/obj/item/weapon/computer_hardware/ai_slot/on_remove(obj/item/device/modular_computer/M, mob/living/user = null) + M.remove_verb(device_type) + +/obj/item/weapon/computer_hardware/ai_slot/try_insert(obj/item/I, mob/living/user = null) + if(!holder) + return FALSE + + if(!istype(I, /obj/item/device/aicard)) + return FALSE + + if(stored_card) + user << "You try to insert \the [I] into \the [src], but the slot is occupied." + return FALSE + if(user && !user.unEquip(I)) + return FALSE + + + stored_card = I + + I.forceMove(src) + user << "You insert \the [I] into \the [src]." + + return TRUE + + +/obj/item/weapon/computer_hardware/ai_slot/try_eject(slot=0,mob/living/user = null,forced = 0) + if(!stored_card) + user << "There is no card in \the [src]." + return FALSE + + if(locked && !forced) + user << "Safeties prevent you from removing the card until reconstruction is complete..." + return FALSE + + if(stored_card) + stored_card.forceMove(get_turf(src)) + locked = FALSE + stored_card.verb_pickup() + stored_card = null + + user << "You remove the card from \the [src]." + return TRUE + return FALSE + +/obj/item/weapon/computer_hardware/ai_slot/attackby(obj/item/I, mob/living/user) + if(..()) + return + if(istype(I, /obj/item/weapon/screwdriver)) + user << "You press down on the manual eject button with \the [I]." + try_eject(,user,1) + return \ No newline at end of file diff --git a/code/modules/modular_computers/hardware/battery_module.dm b/code/modules/modular_computers/hardware/battery_module.dm new file mode 100644 index 0000000000..ea61fc4ba1 --- /dev/null +++ b/code/modules/modular_computers/hardware/battery_module.dm @@ -0,0 +1,99 @@ +/obj/item/weapon/computer_hardware/battery + name = "power cell controller" + desc = "A charge controller for standard power cells, used in all kinds of modular computers." + icon_state = "cell_con" + critical = 1 + malfunction_probability = 1 + origin_tech = "powerstorage=1;engineering=1" + var/obj/item/weapon/stock_parts/cell/battery = null + device_type = MC_CELL + +/obj/item/weapon/computer_hardware/battery/New(loc, battery_type = null) + if(battery_type) + battery = new battery_type(src) + ..() + +/obj/item/weapon/computer_hardware/battery/try_insert(obj/item/I, mob/living/user = null) + if(!holder) + return FALSE + + if(!istype(I, /obj/item/weapon/stock_parts/cell)) + return FALSE + + if(battery) + user << "You try to connect \the [I] to \the [src], but its connectors are occupied." + return FALSE + + if(I.w_class > holder.max_hardware_size) + user << "This power cell is too large for \the [holder]!" + return FALSE + + if(user && !user.unEquip(I)) + return FALSE + + battery = I + I.forceMove(src) + user << "You connect \the [I] to \the [src]." + + return TRUE + + +/obj/item/weapon/computer_hardware/battery/try_eject(slot=0, mob/living/user = null, forced = 0) + if(!battery) + user << "There is no power cell connected to \the [src]." + return FALSE + else + battery.forceMove(get_turf(src)) + user << "You detach \the [battery] from \the [src]." + battery = null + + if(holder) + if(holder.enabled && !holder.use_power()) + holder.shutdown_computer() + + return TRUE + return FALSE + + + + + + + +/obj/item/weapon/stock_parts/cell/computer + name = "standard battery" + desc = "A standard power cell, commonly seen in high-end portable microcomputers or low-end laptops." + icon = 'icons/obj/module.dmi' + icon_state = "cell_mini" + origin_tech = "powerstorage=2;engineering=1" + w_class = WEIGHT_CLASS_TINY + maxcharge = 750 + + +/obj/item/weapon/stock_parts/cell/computer/advanced + name = "advanced battery" + desc = "An advanced power cell, often used in most laptops. It is too large to be fitted into smaller devices." + icon_state = "cell" + origin_tech = "powerstorage=2;engineering=2" + w_class = WEIGHT_CLASS_SMALL + maxcharge = 1500 + +/obj/item/weapon/stock_parts/cell/computer/super + name = "super battery" + desc = "An advanced power cell, often used in high-end laptops." + icon_state = "cell" + origin_tech = "powerstorage=3;engineering=3" + w_class = WEIGHT_CLASS_SMALL + maxcharge = 2000 + +/obj/item/weapon/stock_parts/cell/computer/micro + name = "micro battery" + desc = "A small power cell, commonly seen in most portable microcomputers." + icon_state = "cell_micro" + maxcharge = 500 + +/obj/item/weapon/stock_parts/cell/computer/nano + name = "nano battery" + desc = "A tiny power cell, commonly seen in low-end portable microcomputers." + icon_state = "cell_micro" + maxcharge = 300 \ No newline at end of file diff --git a/code/modules/modular_computers/hardware/card_slot.dm b/code/modules/modular_computers/hardware/card_slot.dm new file mode 100644 index 0000000000..e865353d21 --- /dev/null +++ b/code/modules/modular_computers/hardware/card_slot.dm @@ -0,0 +1,104 @@ +/obj/item/weapon/computer_hardware/card_slot + name = "identification card authentication module" // \improper breaks the find_hardware_by_name proc + desc = "A module allowing this computer to read or write data on ID cards. Necessary for some programs to run properly." + power_usage = 10 //W + icon_state = "card_mini" + w_class = WEIGHT_CLASS_TINY + origin_tech = "programming=2" + device_type = MC_CARD + + var/obj/item/weapon/card/id/stored_card = null + var/obj/item/weapon/card/id/stored_card2 = null + +/obj/item/weapon/computer_hardware/card_slot/Destroy() + try_eject() + return ..() + +/obj/item/weapon/computer_hardware/card_slot/GetAccess() + if(stored_card && stored_card2) // Best of both worlds + return (stored_card.GetAccess() | stored_card2.GetAccess()) + else if(stored_card) + return stored_card.GetAccess() + else if(stored_card2) + return stored_card2.GetAccess() + return ..() + +/obj/item/weapon/computer_hardware/card_slot/GetID() + if(stored_card) + return stored_card + else if(stored_card2) + return stored_card2 + return ..() + +/obj/item/weapon/computer_hardware/card_slot/on_install(obj/item/device/modular_computer/M, mob/living/user = null) + M.add_verb(device_type) + +/obj/item/weapon/computer_hardware/card_slot/on_remove(obj/item/device/modular_computer/M, mob/living/user = null) + M.remove_verb(device_type) + +/obj/item/weapon/computer_hardware/card_slot/try_insert(obj/item/I, mob/living/user = null) + if(!holder) + return FALSE + + if(!istype(I, /obj/item/weapon/card/id)) + return FALSE + + if(stored_card && stored_card2) + user << "You try to insert \the [I] into \the [src], but its slots are occupied." + return FALSE + if(user && !user.unEquip(I)) + return FALSE + + if(!stored_card) + stored_card = I + else + stored_card2 = I + I.forceMove(src) + user << "You insert \the [I] into \the [src]." + + return TRUE + + +/obj/item/weapon/computer_hardware/card_slot/try_eject(slot=0, mob/living/user = null, forced = 0) + if(!stored_card && !stored_card2) + user << "There are no cards in \the [src]." + return FALSE + + var/ejected = 0 + if(stored_card && (!slot || slot == 1)) + stored_card.forceMove(get_turf(src)) + stored_card.verb_pickup() + stored_card = null + ejected++ + + if(stored_card2 && (!slot || slot == 2)) + stored_card2.forceMove(get_turf(src)) + stored_card2.verb_pickup() + stored_card2 = null + ejected++ + + if(ejected) + if(holder) + if(holder.active_program) + holder.active_program.event_idremoved(0, slot) + + for(var/I in holder.idle_threads) + var/datum/computer_file/program/P = I + P.event_idremoved(1, slot) + + user << "You remove the card[ejected>1 ? "s" : ""] from \the [src]." + return TRUE + return FALSE + +/obj/item/weapon/computer_hardware/card_slot/attackby(obj/item/I, mob/living/user) + if(..()) + return + if(istype(I, /obj/item/weapon/screwdriver)) + user << "You press down on the manual eject button with \the [I]." + try_eject(0,user) + return + +/obj/item/weapon/computer_hardware/card_slot/examine(mob/user) + ..() + if(stored_card || stored_card2) + user << "There appears to be something loaded in the card slots." \ No newline at end of file diff --git a/code/modules/modular_computers/hardware/hard_drive.dm b/code/modules/modular_computers/hardware/hard_drive.dm new file mode 100644 index 0000000000..4a770c27be --- /dev/null +++ b/code/modules/modular_computers/hardware/hard_drive.dm @@ -0,0 +1,173 @@ +/obj/item/weapon/computer_hardware/hard_drive + name = "hard disk drive" + desc = "A small HDD, for use in basic computers where power efficiency is desired." + power_usage = 25 + icon_state = "harddisk_mini" + critical = 1 + w_class = WEIGHT_CLASS_TINY + origin_tech = "programming=1;engineering=1" + device_type = MC_HDD + var/max_capacity = 128 + var/used_capacity = 0 + var/list/stored_files = list() // List of stored files on this drive. DO NOT MODIFY DIRECTLY! + +/obj/item/weapon/computer_hardware/hard_drive/on_remove(obj/item/device/modular_computer/MC, mob/user) + MC.shutdown_computer() + +/obj/item/weapon/computer_hardware/hard_drive/proc/install_default_programs() + store_file(new/datum/computer_file/program/computerconfig(src)) // Computer configuration utility, allows hardware control and displays more info than status bar + store_file(new/datum/computer_file/program/ntnetdownload(src)) // NTNet Downloader Utility, allows users to download more software from NTNet repository + store_file(new/datum/computer_file/program/filemanager(src)) // File manager, allows text editor functions and basic file manipulation. + +/obj/item/weapon/computer_hardware/hard_drive/examine(user) + ..() + user << "It has [max_capacity] GQ of storage capacity." + +/obj/item/weapon/computer_hardware/hard_drive/diagnostics(var/mob/user) + ..() + // 999 is a byond limit that is in place. It's unlikely someone will reach that many files anyway, since you would sooner run out of space. + user << "NT-NFS File Table Status: [stored_files.len]/999" + user << "Storage capacity: [used_capacity]/[max_capacity]GQ" + +// Use this proc to add file to the drive. Returns 1 on success and 0 on failure. Contains necessary sanity checks. +/obj/item/weapon/computer_hardware/hard_drive/proc/store_file(var/datum/computer_file/F) + if(!F || !istype(F)) + return 0 + + if(!can_store_file(F)) + return 0 + + if(!check_functionality()) + return 0 + + if(!stored_files) + return 0 + + // This file is already stored. Don't store it again. + if(F in stored_files) + return 0 + + F.holder = src + stored_files.Add(F) + recalculate_size() + return 1 + +// Use this proc to remove file from the drive. Returns 1 on success and 0 on failure. Contains necessary sanity checks. +/obj/item/weapon/computer_hardware/hard_drive/proc/remove_file(var/datum/computer_file/F) + if(!F || !istype(F)) + return 0 + + if(!stored_files) + return 0 + + if(!check_functionality()) + return 0 + + if(F in stored_files) + stored_files -= F + recalculate_size() + return 1 + else + return 0 + +// Loops through all stored files and recalculates used_capacity of this drive +/obj/item/weapon/computer_hardware/hard_drive/proc/recalculate_size() + var/total_size = 0 + for(var/datum/computer_file/F in stored_files) + total_size += F.size + + used_capacity = total_size + +// Checks whether file can be stored on the hard drive. We can only store unique files, so this checks whether we wouldn't get a duplicity by adding a file. +/obj/item/weapon/computer_hardware/hard_drive/proc/can_store_file(var/datum/computer_file/F) + if(!F || !istype(F)) + return 0 + + if(F in stored_files) + return 0 + + var/name = F.filename + "." + F.filetype + for(var/datum/computer_file/file in stored_files) + if((file.filename + "." + file.filetype) == name) + return 0 + + // In the unlikely event someone manages to create that many files. + // BYOND is acting weird with numbers above 999 in loops (infinite loop prevention) + if(stored_files.len >= 999) + return 0 + if((used_capacity + F.size) > max_capacity) + return 0 + else + return 1 + + +// Tries to find the file by filename. Returns null on failure +/obj/item/weapon/computer_hardware/hard_drive/proc/find_file_by_name(var/filename) + if(!check_functionality()) + return null + + if(!filename) + return null + + if(!stored_files) + return null + + for(var/datum/computer_file/F in stored_files) + if(F.filename == filename) + return F + return null + +/obj/item/weapon/computer_hardware/hard_drive/Destroy() + stored_files = null + return ..() + +/obj/item/weapon/computer_hardware/hard_drive/New() + install_default_programs() + ..() + + +/obj/item/weapon/computer_hardware/hard_drive/advanced + name = "advanced hard disk drive" + desc = "A hybrid HDD, for use in higher grade computers where balance between power efficiency and capacity is desired." + max_capacity = 256 + origin_tech = "programming=2;engineering=2" + power_usage = 50 // Hybrid, medium capacity and medium power storage + icon_state = "harddisk_mini" + w_class = WEIGHT_CLASS_SMALL + +/obj/item/weapon/computer_hardware/hard_drive/super + name = "super hard disk drive" + desc = "A high capacity HDD, for use in cluster storage solutions where capacity is more important than power efficiency." + max_capacity = 512 + origin_tech = "programming=3;engineering=3" + power_usage = 100 // High-capacity but uses lots of power, shortening battery life. Best used with APC link. + icon_state = "harddisk_mini" + w_class = WEIGHT_CLASS_SMALL + +/obj/item/weapon/computer_hardware/hard_drive/cluster + name = "cluster hard disk drive" + desc = "A large storage cluster consisting of multiple HDDs for usage in dedicated storage systems." + power_usage = 500 + origin_tech = "programming=4;engineering=4" + max_capacity = 2048 + icon_state = "harddisk" + w_class = WEIGHT_CLASS_NORMAL + +// For tablets, etc. - highly power efficient. +/obj/item/weapon/computer_hardware/hard_drive/small + name = "solid state drive" + desc = "An efficient SSD for portable devices." + power_usage = 10 + origin_tech = "programming=2;engineering=2" + max_capacity = 64 + icon_state = "ssd_mini" + w_class = WEIGHT_CLASS_TINY + +/obj/item/weapon/computer_hardware/hard_drive/micro + name = "micro solid state drive" + desc = "A highly efficient SSD chip for portable devices." + power_usage = 2 + origin_tech = "programming=1;engineering=1" + max_capacity = 32 + icon_state = "ssd_micro" + w_class = WEIGHT_CLASS_TINY \ No newline at end of file diff --git a/code/modules/modular_computers/hardware/network_card.dm b/code/modules/modular_computers/hardware/network_card.dm new file mode 100644 index 0000000000..2b99521b6f --- /dev/null +++ b/code/modules/modular_computers/hardware/network_card.dm @@ -0,0 +1,82 @@ +var/global/ntnet_card_uid = 1 + +/obj/item/weapon/computer_hardware/network_card + name = "network card" + desc = "A basic wireless network card for usage with standard NTNet frequencies." + power_usage = 50 + origin_tech = "programming=2;engineering=1" + icon_state = "radio_mini" + var/identification_id = null // Identification ID. Technically MAC address of this device. Can't be changed by user. + var/identification_string = "" // Identification string, technically nickname seen in the network. Can be set by user. + var/long_range = 0 + var/ethernet = 0 // Hard-wired, therefore always on, ignores NTNet wireless checks. + malfunction_probability = 1 + device_type = MC_NET + +/obj/item/weapon/computer_hardware/network_card/diagnostics(var/mob/user) + ..() + user << "NIX Unique ID: [identification_id]" + user << "NIX User Tag: [identification_string]" + user << "Supported protocols:" + user << "511.m SFS (Subspace) - Standard Frequency Spread" + if(long_range) + user << "511.n WFS/HB (Subspace) - Wide Frequency Spread/High Bandiwdth" + if(ethernet) + user << "OpenEth (Physical Connection) - Physical network connection port" + +/obj/item/weapon/computer_hardware/network_card/New(var/l) + ..(l) + identification_id = ntnet_card_uid + ntnet_card_uid++ + +// Returns a string identifier of this network card +/obj/item/weapon/computer_hardware/network_card/proc/get_network_tag() + return "[identification_string] (NID [identification_id])" + +// 0 - No signal, 1 - Low signal, 2 - High signal. 3 - Wired Connection +/obj/item/weapon/computer_hardware/network_card/proc/get_signal(var/specific_action = 0) + if(!holder) // Hardware is not installed in anything. No signal. How did this even get called? + return 0 + + if(!check_functionality()) + return 0 + + if(ethernet) // Computer is connected via wired connection. + return 3 + + if(!ntnet_global || !ntnet_global.check_function(specific_action)) // NTNet is down and we are not connected via wired connection. No signal. + return 0 + + if(holder) + + var/turf/T = get_turf(holder) + if((T && istype(T)) && (T.z == ZLEVEL_STATION || T.z == ZLEVEL_MINING)) + // Computer is on station. Low/High signal depending on what type of network card you have + if(long_range) + return 2 + else + return 1 + + if(long_range) // Computer is not on station, but it has upgraded network card. Low signal. + return 1 + + return 0 // Computer is not on station and does not have upgraded network card. No signal. + + +/obj/item/weapon/computer_hardware/network_card/advanced + name = "advanced network card" + desc = "An advanced network card for usage with standard NTNet frequencies. Its transmitter is strong enough to connect even off-station." + long_range = 1 + origin_tech = "programming=4;engineering=2" + power_usage = 100 // Better range but higher power usage. + icon_state = "radio" + w_class = WEIGHT_CLASS_TINY + +/obj/item/weapon/computer_hardware/network_card/wired + name = "wired network card" + desc = "An advanced network card for usage with standard NTNet frequencies. This one also supports wired connection." + ethernet = 1 + origin_tech = "programming=5;engineering=3" + power_usage = 100 // Better range but higher power usage. + icon_state = "net_wired" + w_class = WEIGHT_CLASS_NORMAL diff --git a/code/modules/modular_computers/hardware/portable_disk.dm b/code/modules/modular_computers/hardware/portable_disk.dm new file mode 100644 index 0000000000..4bdf0b3549 --- /dev/null +++ b/code/modules/modular_computers/hardware/portable_disk.dm @@ -0,0 +1,35 @@ +/obj/item/weapon/computer_hardware/hard_drive/portable + name = "data disk" + desc = "Removable disk used to store data." + power_usage = 10 + icon_state = "datadisk6" + w_class = WEIGHT_CLASS_TINY + critical = 0 + max_capacity = 16 + origin_tech = "programming=1" + device_type = MC_SDD + +/obj/item/weapon/computer_hardware/hard_drive/portable/on_install(obj/item/device/modular_computer/M, mob/living/user = null) + M.add_verb(device_type) + +/obj/item/weapon/computer_hardware/hard_drive/portable/on_remove(obj/item/device/modular_computer/M, mob/living/user = null) + ..() + M.remove_verb(device_type) + +/obj/item/weapon/computer_hardware/hard_drive/portable/install_default_programs() + return // Empty by default + +/obj/item/weapon/computer_hardware/hard_drive/portable/advanced + name = "advanced data disk" + power_usage = 20 + icon_state = "datadisk5" + max_capacity = 64 + origin_tech = "programming=2" + +/obj/item/weapon/computer_hardware/hard_drive/portable/super + name = "super data disk" + desc = "Removable disk used to store large amounts of data." + power_usage = 40 + icon_state = "datadisk3" + max_capacity = 256 + origin_tech = "programming=4" diff --git a/code/modules/modular_computers/hardware/printer.dm b/code/modules/modular_computers/hardware/printer.dm new file mode 100644 index 0000000000..6aedcea72e --- /dev/null +++ b/code/modules/modular_computers/hardware/printer.dm @@ -0,0 +1,63 @@ +/obj/item/weapon/computer_hardware/printer + name = "printer" + desc = "Computer-integrated printer with paper recycling module." + power_usage = 100 + origin_tech = "programming=2;engineering=2" + icon_state = "printer" + w_class = WEIGHT_CLASS_NORMAL + device_type = MC_PRINT + var/stored_paper = 20 + var/max_paper = 30 + +/obj/item/weapon/computer_hardware/printer/diagnostics(mob/living/user) + ..() + user << "Paper level: [stored_paper]/[max_paper]" + +/obj/item/weapon/computer_hardware/printer/examine(mob/user) + ..() + user << "Paper level: [stored_paper]/[max_paper]" + + +/obj/item/weapon/computer_hardware/printer/proc/print_text(var/text_to_print, var/paper_title = "") + if(!stored_paper) + return FALSE + if(!check_functionality()) + return FALSE + + var/obj/item/weapon/paper/P = new/obj/item/weapon/paper(get_turf(holder)) + + // Damaged printer causes the resulting paper to be somewhat harder to read. + if(damage > damage_malfunction) + P.info = stars(text_to_print, 100-malfunction_probability) + else + P.info = text_to_print + if(paper_title) + P.name = paper_title + P.update_icon() + stored_paper-- + P = null + return TRUE + +/obj/item/weapon/computer_hardware/printer/try_insert(obj/item/I, mob/living/user = null) + if(istype(I, /obj/item/weapon/paper)) + if(user && !user.unEquip(I)) + return FALSE + + if(stored_paper >= max_paper) + user << "You try to add \the [I] into [src], but its paper bin is full!" + return FALSE + + user << "You insert \the [I] into [src]'s paper recycler." + qdel(I) + stored_paper++ + return TRUE + return FALSE + +/obj/item/weapon/computer_hardware/printer/mini + name = "miniprinter" + desc = "A small printer with paper recycling module." + power_usage = 50 + icon_state = "printer_mini" + w_class = WEIGHT_CLASS_TINY + stored_paper = 5 + max_paper = 15 \ No newline at end of file diff --git a/code/modules/modular_computers/hardware/recharger.dm b/code/modules/modular_computers/hardware/recharger.dm new file mode 100644 index 0000000000..4a6001814f --- /dev/null +++ b/code/modules/modular_computers/hardware/recharger.dm @@ -0,0 +1,93 @@ +/obj/item/weapon/computer_hardware/recharger + critical = 1 + enabled = 1 + var/charge_rate = 100 + device_type = MC_CHARGE + +/obj/item/weapon/computer_hardware/recharger/proc/use_power(amount, charging=0) + if(charging) + return 1 + return 0 + +/obj/item/weapon/computer_hardware/recharger/process() + ..() + var/obj/item/weapon/computer_hardware/battery/battery_module = holder.all_components[MC_CELL] + if(!holder || !battery_module || !battery_module.battery) + return + + var/obj/item/weapon/stock_parts/cell/cell = battery_module.battery + if(cell.charge >= cell.maxcharge) + return + + if(use_power(charge_rate, charging=1)) + holder.give_power(charge_rate * CELLRATE) + + +/obj/item/weapon/computer_hardware/recharger/APC + name = "area power connector" + desc = "A device that wirelessly recharges connected device from nearby APC." + icon_state = "charger_APC" + w_class = WEIGHT_CLASS_SMALL // Can't be installed into tablets/PDAs + origin_tech = "programming=2;engineering=2;powerstorage=3" + +/obj/item/weapon/computer_hardware/recharger/APC/use_power(amount, charging=0) + if(istype(holder.physical, /obj/machinery)) + var/obj/machinery/M = holder.physical + if(M.powered()) + M.use_power(amount) + return 1 + + else + var/area/A = get_area(src) + if(!A || !isarea(A) || !A.master) + return 0 + + if(A.master.powered(EQUIP)) + A.master.use_power(amount, EQUIP) + return 1 + return 0 + +/obj/item/weapon/computer_hardware/recharger/wired + name = "wired power connector" + desc = "A power connector that recharges connected device from nearby power wire. Incompatible with portable computers." + icon_state = "charger_wire" + w_class = WEIGHT_CLASS_NORMAL + origin_tech = "engineering=2;powerstorage=1" + +/obj/item/weapon/computer_hardware/recharger/wired/can_install(obj/item/device/modular_computer/M, mob/living/user = null) + if(istype(M.physical, /obj/machinery) && M.physical.anchored) + return ..() + user << "\The [src] is incompatible with portable computers!" + return 0 + +/obj/item/weapon/computer_hardware/recharger/wired/use_power(amount, charging=0) + if(istype(holder.physical, /obj/machinery) && holder.physical.anchored) + var/obj/machinery/M = holder.physical + var/turf/T = M.loc + if(!T || !istype(T)) + return 0 + + var/obj/structure/cable/C = T.get_cable_node() + if(!C || !C.powernet) + return 0 + + var/power_in_net = C.powernet.avail-C.powernet.load + + if(power_in_net && power_in_net > amount) + C.powernet.load += amount + return 1 + + return 0 + + + +// This is not intended to be obtainable in-game. Intended for adminbus and debugging purposes. +/obj/item/weapon/computer_hardware/recharger/lambda + name = "lambda coil" + desc = "A very complex device that draws power from its own bluespace dimension." + icon_state = "charger_lambda" + w_class = WEIGHT_CLASS_TINY + charge_rate = 100000 + +/obj/item/weapon/computer_hardware/recharger/lambda/use_power(amount, charging=0) + return 1 diff --git a/code/modules/modular_computers/laptop_vendor.dm b/code/modules/modular_computers/laptop_vendor.dm new file mode 100644 index 0000000000..abbfc5aaba --- /dev/null +++ b/code/modules/modular_computers/laptop_vendor.dm @@ -0,0 +1,300 @@ +// A vendor machine for modular computer portable devices - Laptops and Tablets + +/obj/machinery/lapvend + name = "computer vendor" + desc = "A vending machine with microfabricator capable of dispensing various NT-branded computers." + icon = 'icons/obj/vending.dmi' + icon_state = "robotics" + layer = 2.9 + anchored = 1 + density = 1 + + // The actual laptop/tablet + var/obj/item/device/modular_computer/laptop/fabricated_laptop = null + var/obj/item/device/modular_computer/tablet/fabricated_tablet = null + + // Utility vars + var/state = 0 // 0: Select device type, 1: Select loadout, 2: Payment, 3: Thankyou screen + var/devtype = 0 // 0: None(unselected), 1: Laptop, 2: Tablet + var/total_price = 0 // Price of currently vended device. + var/credits = 0 + + // Device loadout + var/dev_cpu = 1 // 1: Default, 2: Upgraded + var/dev_battery = 1 // 1: Default, 2: Upgraded, 3: Advanced + var/dev_disk = 1 // 1: Default, 2: Upgraded, 3: Advanced + var/dev_netcard = 0 // 0: None, 1: Basic, 2: Long-Range + var/dev_apc_recharger = 0 // 0: None, 1: Standard (LAPTOP ONLY) + var/dev_printer = 0 // 0: None, 1: Standard + var/dev_card = 0 // 0: None, 1: Standard + +// Removes all traces of old order and allows you to begin configuration from scratch. +/obj/machinery/lapvend/proc/reset_order() + state = 0 + devtype = 0 + if(fabricated_laptop) + qdel(fabricated_laptop) + fabricated_laptop = null + if(fabricated_tablet) + qdel(fabricated_tablet) + fabricated_tablet = null + dev_cpu = 1 + dev_battery = 1 + dev_disk = 1 + dev_netcard = 0 + dev_apc_recharger = 0 + dev_printer = 0 + dev_card = 0 + +// Recalculates the price and optionally even fabricates the device. +/obj/machinery/lapvend/proc/fabricate_and_recalc_price(fabricate = 0) + total_price = 0 + if(devtype == 1) // Laptop, generally cheaper to make it accessible for most station roles + var/obj/item/weapon/computer_hardware/battery/battery_module = null + if(fabricate) + fabricated_laptop = new /obj/item/device/modular_computer/laptop/buildable(src) + fabricated_laptop.install_component(new /obj/item/weapon/computer_hardware/battery) + battery_module = fabricated_laptop.all_components[MC_CELL] + total_price = 99 + switch(dev_cpu) + if(1) + if(fabricate) + fabricated_laptop.install_component(new /obj/item/weapon/computer_hardware/processor_unit/small) + if(2) + if(fabricate) + fabricated_laptop.install_component(new /obj/item/weapon/computer_hardware/processor_unit) + total_price += 299 + switch(dev_battery) + if(1) // Basic(750C) + if(fabricate) + battery_module.try_insert(new /obj/item/weapon/stock_parts/cell/computer) + if(2) // Upgraded(1100C) + if(fabricate) + battery_module.try_insert(new /obj/item/weapon/stock_parts/cell/computer/advanced) + total_price += 199 + if(3) // Advanced(1500C) + if(fabricate) + battery_module.try_insert(new /obj/item/weapon/stock_parts/cell/computer/super) + total_price += 499 + switch(dev_disk) + if(1) // Basic(128GQ) + if(fabricate) + fabricated_laptop.install_component(new /obj/item/weapon/computer_hardware/hard_drive) + if(2) // Upgraded(256GQ) + if(fabricate) + fabricated_laptop.install_component(new /obj/item/weapon/computer_hardware/hard_drive/advanced) + total_price += 99 + if(3) // Advanced(512GQ) + if(fabricate) + fabricated_laptop.install_component(new /obj/item/weapon/computer_hardware/hard_drive/super) + total_price += 299 + switch(dev_netcard) + if(1) // Basic(Short-Range) + if(fabricate) + fabricated_laptop.install_component(new /obj/item/weapon/computer_hardware/network_card) + total_price += 99 + if(2) // Advanced (Long Range) + if(fabricate) + fabricated_laptop.install_component(new /obj/item/weapon/computer_hardware/network_card/advanced) + total_price += 299 + if(dev_apc_recharger) + total_price += 399 + if(fabricate) + fabricated_laptop.install_component(new /obj/item/weapon/computer_hardware/recharger/APC) + if(dev_printer) + total_price += 99 + if(fabricate) + fabricated_laptop.install_component(new /obj/item/weapon/computer_hardware/printer/mini) + if(dev_card) + total_price += 199 + if(fabricate) + fabricated_laptop.install_component(new /obj/item/weapon/computer_hardware/card_slot) + + return total_price + else if(devtype == 2) // Tablet, more expensive, not everyone could probably afford this. + var/obj/item/weapon/computer_hardware/battery/battery_module = null + if(fabricate) + fabricated_tablet = new(src) + fabricated_tablet.install_component(new /obj/item/weapon/computer_hardware/battery) + fabricated_tablet.install_component(new /obj/item/weapon/computer_hardware/processor_unit/small) + battery_module = fabricated_tablet.all_components[MC_CELL] + total_price = 199 + switch(dev_battery) + if(1) // Basic(300C) + if(fabricate) + battery_module.try_insert(new /obj/item/weapon/stock_parts/cell/computer/nano) + if(2) // Upgraded(500C) + if(fabricate) + battery_module.try_insert(new /obj/item/weapon/stock_parts/cell/computer/micro) + total_price += 199 + if(3) // Advanced(750C) + if(fabricate) + battery_module.try_insert(new /obj/item/weapon/stock_parts/cell/computer) + total_price += 499 + switch(dev_disk) + if(1) // Basic(32GQ) + if(fabricate) + fabricated_tablet.install_component(new /obj/item/weapon/computer_hardware/hard_drive/micro) + if(2) // Upgraded(64GQ) + if(fabricate) + fabricated_tablet.install_component(new /obj/item/weapon/computer_hardware/hard_drive/small) + total_price += 99 + if(3) // Advanced(128GQ) + if(fabricate) + fabricated_tablet.install_component(new /obj/item/weapon/computer_hardware/hard_drive) + total_price += 299 + switch(dev_netcard) + if(1) // Basic(Short-Range) + if(fabricate) + fabricated_tablet.install_component(new/obj/item/weapon/computer_hardware/network_card) + total_price += 99 + if(2) // Advanced (Long Range) + if(fabricate) + fabricated_tablet.install_component(new/obj/item/weapon/computer_hardware/network_card/advanced) + total_price += 299 + if(dev_printer) + total_price += 99 + if(fabricate) + fabricated_tablet.install_component(new/obj/item/weapon/computer_hardware/printer) + if(dev_card) + total_price += 199 + if(fabricate) + fabricated_tablet.install_component(new/obj/item/weapon/computer_hardware/card_slot) + return total_price + return 0 + + + + + +/obj/machinery/lapvend/ui_act(action, params) + if(..()) + return 1 + + switch(action) + if("pick_device") + if(state) // We've already picked a device type + return 0 + devtype = text2num(params["pick"]) + state = 1 + fabricate_and_recalc_price(0) + return 1 + if("clean_order") + reset_order() + return 1 + if("purchase") + try_purchase() + return 1 + if((state != 1) && devtype) // Following IFs should only be usable when in the Select Loadout mode + return 0 + switch(action) + if("confirm_order") + state = 2 // Wait for ID swipe for payment processing + fabricate_and_recalc_price(0) + return 1 + if("hw_cpu") + dev_cpu = text2num(params["cpu"]) + fabricate_and_recalc_price(0) + return 1 + if("hw_battery") + dev_battery = text2num(params["battery"]) + fabricate_and_recalc_price(0) + return 1 + if("hw_disk") + dev_disk = text2num(params["disk"]) + fabricate_and_recalc_price(0) + return 1 + if("hw_netcard") + dev_netcard = text2num(params["netcard"]) + fabricate_and_recalc_price(0) + return 1 + if("hw_tesla") + dev_apc_recharger = text2num(params["tesla"]) + fabricate_and_recalc_price(0) + return 1 + if("hw_nanoprint") + dev_printer = text2num(params["print"]) + fabricate_and_recalc_price(0) + return 1 + if("hw_card") + dev_card = text2num(params["card"]) + fabricate_and_recalc_price(0) + return 1 + return 0 + +/obj/machinery/lapvend/attack_hand(mob/user) + ui_interact(user) + +/obj/machinery/lapvend/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = default_state) + if(stat & (BROKEN | NOPOWER | MAINT)) + if(ui) + ui.close() + return 0 + + + + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if (!ui) + ui = new(user, src, ui_key, "computer_fabricator", "Personal Computer Vendor", 500, 400, state = state) + ui.open() + ui.set_autoupdate(state = 1) + + +/obj/machinery/lapvend/attackby(obj/item/I as obj, mob/user as mob) + if(istype(I,/obj/item/stack/spacecash)) + var/obj/item/stack/spacecash/c = I + + if(!user.drop_item(c)) + return + credits += c.value + visible_message("[usr] inserts [c.value] credits into the [src].") + qdel(c) + return + + return ..() + + +// Simplified payment processing, returns 1 on success. +/obj/machinery/lapvend/proc/process_payment() + if(total_price > credits) + say("Insufficient credits.") + return 0 + else + return 1 + +/obj/machinery/lapvend/ui_data(mob/user) + + var/list/data = list() + data["state"] = state + if(state == 1) + data["devtype"] = devtype + data["hw_battery"] = dev_battery + data["hw_disk"] = dev_disk + data["hw_netcard"] = dev_netcard + data["hw_tesla"] = dev_apc_recharger + data["hw_nanoprint"] = dev_printer + data["hw_card"] = dev_card + data["hw_cpu"] = dev_cpu + if(state == 1 || state == 2) + data["totalprice"] = total_price + data["credits"] = credits + + return data + + +/obj/machinery/lapvend/proc/try_purchase() + // Awaiting payment state + if(state == 2) + if(process_payment()) + fabricate_and_recalc_price(1) + if((devtype == 1) && fabricated_laptop) + fabricated_laptop.forceMove(src.loc) + fabricated_laptop = null + else if((devtype == 2) && fabricated_tablet) + fabricated_tablet.forceMove(src.loc) + fabricated_tablet = null + credits -= total_price + say("Enjoy your new product!") + state = 3 + return 1 + return 0 \ No newline at end of file diff --git a/code/modules/ninja/energy_katana.dm b/code/modules/ninja/energy_katana.dm index 354d2f4db9..0218ba27db 100644 --- a/code/modules/ninja/energy_katana.dm +++ b/code/modules/ninja/energy_katana.dm @@ -6,6 +6,7 @@ force = 40 throwforce = 20 armour_penetration = 50 + resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF var/datum/effect_system/spark_spread/spark_system /obj/item/weapon/katana/energy/afterattack(atom/target, mob/user, proximity_flag, click_parameters) @@ -37,7 +38,7 @@ /obj/item/weapon/katana/energy/proc/returnToOwner(mob/living/carbon/human/user, doSpark = 1, caught = 0) if(!istype(user)) return - loc = get_turf(src) + forceMove(get_turf(user)) if(doSpark) spark_system.start() @@ -50,7 +51,6 @@ else if(user.equip_to_slot_if_possible(src, slot_belt, 0, 1, 1)) msg = "Your Energy Katana teleports back to you, sheathing itself as it does so!" else - loc = get_turf(user) msg = "Your Energy Katana teleports to your location!" if(caught) diff --git a/code/modules/ninja/ninja_event.dm b/code/modules/ninja/ninja_event.dm index 574257b719..2a82af0808 100644 --- a/code/modules/ninja/ninja_event.dm +++ b/code/modules/ninja/ninja_event.dm @@ -14,7 +14,7 @@ Contents: typepath = /datum/round_event/ghost_role/ninja max_occurrences = 1 earliest_start = 30000 // 1 hour - + min_players = 15 /datum/round_event/ghost_role/ninja var/success_spawn = 0 @@ -55,7 +55,7 @@ Contents: if(!candidates.len) return NOT_ENOUGH_PLAYERS - var/mob/dead/selected_candidate = popleft(candidates) + var/mob/dead/selected_candidate = pick_n_take(candidates) var/key = selected_candidate.key //Prepare ninja player mind @@ -66,7 +66,7 @@ Contents: var/list/possible_targets = list() for(var/datum/mind/M in ticker.minds) if(M.current && M.current.stat != DEAD) - if(istype(M.current,/mob/living/carbon/human)) + if(ishuman(M.current)) if(M.special_role) possible_targets[M] = 0 //bad-guy else if(M.assigned_role in command_positions) diff --git a/code/modules/ninja/suit/gloves.dm b/code/modules/ninja/suit/gloves.dm index 51b18f4c43..b37bc147cb 100644 --- a/code/modules/ninja/suit/gloves.dm +++ b/code/modules/ninja/suit/gloves.dm @@ -31,6 +31,7 @@ heat_protection = HANDS max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT strip_delay = 120 + resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF var/draining = 0 var/candrain = 0 var/mindrain = 200 @@ -40,7 +41,7 @@ /obj/item/clothing/gloves/space_ninja/Touch(atom/A,proximity) if(!candrain || draining) return 0 - if(!istype(loc, /mob/living/carbon/human)) + if(!ishuman(loc)) return 0 //Only works while worn var/mob/living/carbon/human/H = loc diff --git a/code/modules/ninja/suit/head.dm b/code/modules/ninja/suit/head.dm index 5707a1bd80..7ada5de3ea 100644 --- a/code/modules/ninja/suit/head.dm +++ b/code/modules/ninja/suit/head.dm @@ -5,7 +5,8 @@ name = "ninja hood" icon_state = "s-ninja" item_state = "s-ninja_mask" - armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 25) + armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 25, fire = 100, acid = 100) strip_delay = 12 - unacidable = 1 - blockTracking = 1//Roughly the only unique thing about this helmet. \ No newline at end of file + resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF + blockTracking = 1//Roughly the only unique thing about this helmet. + flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR \ No newline at end of file diff --git a/code/modules/ninja/suit/mask.dm b/code/modules/ninja/suit/mask.dm index f5c5b4dbd4..81d37886dd 100644 --- a/code/modules/ninja/suit/mask.dm +++ b/code/modules/ninja/suit/mask.dm @@ -16,3 +16,4 @@ Contents: icon_state = "s-ninja" item_state = "s-ninja_mask" strip_delay = 120 + resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF diff --git a/code/modules/ninja/suit/n_suit_verbs/energy_net_nets.dm b/code/modules/ninja/suit/n_suit_verbs/energy_net_nets.dm index 04c0c796f2..a29a42f89a 100644 --- a/code/modules/ninja/suit/n_suit_verbs/energy_net_nets.dm +++ b/code/modules/ninja/suit/n_suit_verbs/energy_net_nets.dm @@ -3,7 +3,7 @@ It will teleport people to a holding facility after 30 seconds. (Check the proce It is possible to destroy the net by the occupant or someone else. */ -/obj/effect/energy_net +/obj/structure/energy_net name = "energy net" desc = "It's a net made of green energy." icon = 'icons/effects/effects.dmi' @@ -14,27 +14,21 @@ It is possible to destroy the net by the occupant or someone else. mouse_opacity = 1//So you can hit it with stuff. anchored = 1//Can't drag/grab the trapped mob. layer = ABOVE_ALL_MOB_LAYER - var/health = 25//How much health it has. + obj_integrity = 25//How much health it has. + max_integrity = 25 var/mob/living/affecting = null//Who it is currently affecting, if anyone. var/mob/living/master = null//Who shot web. Will let this person know if the net was successful or failed. -/obj/effect/energy_net/proc/take_damage(damage, damage_type = BRUTE, sound_effect = 1) +/obj/structure/energy_net/play_attack_sound(damage, damage_type = BRUTE, damage_flag = 0) switch(damage_type) if(BRUTE) - if(sound_effect) - playsound(src.loc, 'sound/weapons/slash.ogg', 80, 1) + playsound(src.loc, 'sound/weapons/slash.ogg', 80, 1) if(BURN) - if(sound_effect) - playsound(src.loc, 'sound/weapons/slash.ogg', 80, 1) - else - return - health -= damage - if(health <=0) - qdel(src) + playsound(src.loc, 'sound/weapons/slash.ogg', 80, 1) -/obj/effect/energy_net/Destroy() +/obj/structure/energy_net/Destroy() if(affecting) var/mob/living/carbon/M = affecting M.anchored = 0 @@ -44,7 +38,7 @@ It is possible to destroy the net by the occupant or someone else. master << "ERROR: unable to initiate transport protocol. Procedure terminated." return ..() -/obj/effect/energy_net/process(mob/living/carbon/M) +/obj/structure/energy_net/process(mob/living/carbon/M) var/check = 30//30 seconds before teleportation. Could be extended I guess. var/mob_name = affecting.name//Since they will report as null if terminated before teleport. //The person can still try and attack the net when inside. @@ -67,37 +61,33 @@ It is possible to destroy the net by the occupant or someone else. density = 0//Make the net pass-through. invisibility = INVISIBILITY_ABSTRACT//Make the net invisible so all the animations can play out. - health = INFINITY//Make the net invincible so that an explosion/something else won't kill it while, spawn() is running. + resistance_flags |= INDESTRUCTIBLE //Make the net invincible so that an explosion/something else won't kill it while, spawn() is running. for(var/obj/item/W in M) - if(istype(M,/mob/living/carbon/human)) - if(W==M:w_uniform) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(W == H.w_uniform) continue//So all they're left with are shoes and uniform. - if(W==M:shoes) + if(W == H.shoes) continue M.unEquip(W) - spawn(0) - playsound(M.loc, 'sound/effects/sparks4.ogg', 50, 1) - anim(M.loc,M,'icons/mob/mob.dmi',,"phaseout",,M.dir) + playsound(M.loc, 'sound/effects/sparks4.ogg', 50, 1) + PoolOrNew(/obj/effect/overlay/temp/dir_setting/ninja/phase/out, list(get_turf(M), M.dir)) - M.loc = pick(holdingfacility)//Throw mob in to the holding facility. + visible_message("[M] suddenly vanishes!") + M.forceMove(pick(holdingfacility)) //Throw mob in to the holding facility. M << "You appear in a strange place!" - spawn(0) - var/datum/effect_system/spark_spread/spark_system = new /datum/effect_system/spark_spread() - spark_system.set_up(5, 0, M.loc) - spark_system.start() - playsound(M.loc, 'sound/effects/phasein.ogg', 25, 1) - playsound(M.loc, 'sound/effects/sparks2.ogg', 50, 1) - anim(M.loc,M,'icons/mob/mob.dmi',,"phasein",,M.dir) - qdel(src)//Wait for everything to finish, delete the net. Else it will stop everything once net is deleted, including the spawn(0). - - for(var/mob/O in viewers(src, 3)) - O.show_message("[M] vanishes!", 1, "You hear sparks flying!", 2) - if(!isnull(master))//As long as they still exist. master << "SUCCESS: transport procedure of \the [affecting] complete." M.notransform = 0 + var/datum/effect_system/spark_spread/spark_system = new /datum/effect_system/spark_spread() + spark_system.set_up(5, 0, M.loc) + spark_system.start() + playsound(M.loc, 'sound/effects/phasein.ogg', 25, 1) + playsound(M.loc, 'sound/effects/sparks2.ogg', 50, 1) + PoolOrNew(/obj/effect/overlay/temp/dir_setting/ninja/phase, list(get_turf(M), M.dir)) + qdel(src) else//And they are free. M << "You are free of the net!" @@ -106,61 +96,7 @@ It is possible to destroy the net by the occupant or someone else. -/obj/effect/energy_net/bullet_act(obj/item/projectile/Proj) - . = ..() - take_damage(Proj.damage, Proj.damage_type) - - - -/obj/effect/energy_net/ex_act(severity, target) - switch(severity) - if(1) - qdel(src) - if(2) - qdel(src) - if(3) - take_damage(rand(10,25), BRUTE, 0) - -/obj/effect/energy_net/blob_act(obj/effect/blob/B) - qdel(src) - -/obj/effect/energy_net/hitby(atom/movable/AM) - ..() - var/tforce = 0 - if(ismob(AM)) - tforce = 10 - else if(isobj(AM)) - var/obj/O = AM - tforce = O.throwforce - take_damage(tforce) - - -/obj/effect/energy_net/attack_hulk(mob/living/carbon/human/user) - ..(user, 1) - user.visible_message("[user] rips the energy net apart!", \ - "You easily destroy the energy net.") - qdel(src) - - - -/obj/effect/energy_net/attack_paw(mob/user) +/obj/structure/energy_net/attack_paw(mob/user) return attack_hand() - -/obj/effect/energy_net/attack_alien(mob/living/user) - user.do_attack_animation(src) - user.changeNext_move(CLICK_CD_MELEE) - playsound(src.loc, 'sound/weapons/slash.ogg', 80, 1) - user.visible_message("[user] slices the energy net apart!", \ - "\green You slice the energy net to pieces.") - qdel(src) - - - -/obj/effect/energy_net/attacked_by(obj/item/weapon/W, mob/user) - ..() - take_damage(W.force, W.damtype) - - - diff --git a/code/modules/ninja/suit/n_suit_verbs/ninja_adrenaline.dm b/code/modules/ninja/suit/n_suit_verbs/ninja_adrenaline.dm index b77c67970e..f76f974e64 100644 --- a/code/modules/ninja/suit/n_suit_verbs/ninja_adrenaline.dm +++ b/code/modules/ninja/suit/n_suit_verbs/ninja_adrenaline.dm @@ -23,5 +23,6 @@ reagents.trans_id_to(H, "radium", a_transfer) H << "You are beginning to feel the after-effect of the injection." a_boost-- + H << "There are [a_boost] adrenaline boosts remaining." s_coold = 3 return \ No newline at end of file diff --git a/code/modules/ninja/suit/n_suit_verbs/ninja_net.dm b/code/modules/ninja/suit/n_suit_verbs/ninja_net.dm index 34d47d7e46..b196e0663f 100644 --- a/code/modules/ninja/suit/n_suit_verbs/ninja_net.dm +++ b/code/modules/ninja/suit/n_suit_verbs/ninja_net.dm @@ -9,22 +9,22 @@ if(!ninjacost(200,N_STEALTH_CANCEL) && iscarbon(C)) var/mob/living/carbon/human/H = affecting if(C.client)//Monkeys without a client can still step_to() and bypass the net. Also, netting inactive people is lame. - if(!locate(/obj/effect/energy_net) in C.loc)//Check if they are already being affected by an energy net. + if(!locate(/obj/structure/energy_net) in C.loc)//Check if they are already being affected by an energy net. for(var/turf/T in getline(H.loc, C.loc)) if(T.density)//Don't want them shooting nets through walls. It's kind of cheesy. H << "You may not use an energy net through solid obstacles!" return spawn(0) - H.Beam(C,"n_beam",,15) + H.Beam(C,"n_beam",time=15) H.say("Get over here!") - var/obj/effect/energy_net/E = new /obj/effect/energy_net(C.loc) + var/obj/structure/energy_net/E = new /obj/structure/energy_net(C.loc) H.visible_message("[H] caught [C] with an energy net!","You caught [C] with an energy net!") E.affecting = C E.master = H spawn(0)//Parallel processing. E.process(C) else - H << "They are already trapped inside an energy net!" + H << "[C.p_they(TRUE)] are already trapped inside an energy net!" else - H << "They will bring no honor to your Clan!" + H << "[C.p_they(TRUE)] will bring no honor to your Clan!" return \ No newline at end of file diff --git a/code/modules/ninja/suit/n_suit_verbs/ninja_stars.dm b/code/modules/ninja/suit/n_suit_verbs/ninja_stars.dm index 1fa003fa76..39e7f5c570 100644 --- a/code/modules/ninja/suit/n_suit_verbs/ninja_stars.dm +++ b/code/modules/ninja/suit/n_suit_verbs/ninja_stars.dm @@ -9,11 +9,11 @@ if(!ninjacost(10)) var/mob/living/carbon/human/H = affecting - var/slot = H.hand ? slot_l_hand : slot_r_hand - - if(H.equip_to_slot_or_del(new /obj/item/weapon/throwing_star/ninja(H), slot)) + var/obj/item/weapon/throwing_star/ninja/N = new(H) + if(H.put_in_hands(N)) H << "A throwing star has been created in your hand!" - + else + qdel(N) H.throw_mode_on() //So they can quickly throw it. diff --git a/code/modules/ninja/suit/n_suit_verbs/ninja_stealth.dm b/code/modules/ninja/suit/n_suit_verbs/ninja_stealth.dm index c7a1f0f143..b21119d52b 100644 --- a/code/modules/ninja/suit/n_suit_verbs/ninja_stealth.dm +++ b/code/modules/ninja/suit/n_suit_verbs/ninja_stealth.dm @@ -18,9 +18,9 @@ Contents: U << "You don't have enough power to enable Stealth!" return s_active=!s_active - animate(U, alpha = 0,time = 15) + animate(U, alpha = 50,time = 15) U.visible_message("[U.name] vanishes into thin air!", \ - "You are now invisible to normal detection.") + "You are now mostly invisible to normal detection.") return diff --git a/code/modules/ninja/suit/n_suit_verbs/ninja_sword_recall.dm b/code/modules/ninja/suit/n_suit_verbs/ninja_sword_recall.dm index fb38a3fbdd..de1e78e16d 100644 --- a/code/modules/ninja/suit/n_suit_verbs/ninja_sword_recall.dm +++ b/code/modules/ninja/suit/n_suit_verbs/ninja_sword_recall.dm @@ -1,7 +1,7 @@ /obj/item/clothing/suit/space/space_ninja/proc/ninja_sword_recall() set name = "Recall Energy Katana (Variable Cost)" - set desc = "Teleports the Energy Katana linked to this suit to it's wearer, cost based on distance." + set desc = "Teleports the Energy Katana linked to this suit to its wearer, cost based on distance." set category = "Ninja Ability" set popup_menu = 0 @@ -32,9 +32,6 @@ if(energyKatana in C.stomach_contents) C.stomach_contents -= energyKatana - if(energyKatana in C.internal_organs) - C.internal_organs -= energyKatana - energyKatana.loc = get_turf(energyKatana) if(inview) //If we can see the katana, throw it towards ourselves, damaging people as we go. diff --git a/code/modules/ninja/suit/n_suit_verbs/ninja_teleporting.dm b/code/modules/ninja/suit/n_suit_verbs/ninja_teleporting.dm index d8a8b64277..12c9b82a58 100644 --- a/code/modules/ninja/suit/n_suit_verbs/ninja_teleporting.dm +++ b/code/modules/ninja/suit/n_suit_verbs/ninja_teleporting.dm @@ -12,7 +12,7 @@ Contents: //Handles elporting while grabbing someone /obj/item/clothing/suit/space/space_ninja/proc/handle_teleport_grab(turf/T, mob/living/H) - if(H.pulling && (istype(H.pulling, /mob/living))) + if(H.pulling && (isliving(H.pulling))) var/mob/living/victim = H.pulling if(!victim.anchored) victim.forceMove(locate(T.x+rand(-1,1),T.y+rand(-1,1),T.z)) @@ -31,22 +31,19 @@ Contents: var/turf/destination = get_teleport_loc(H.loc,H,9,1,3,1,0,1) var/turf/mobloc = get_turf(H.loc)//Safety - if(destination&&istype(mobloc, /turf))//So we don't teleport out of containers - spawn(0) - playsound(H.loc, "sparks", 50, 1) - anim(mobloc,src,'icons/mob/mob.dmi',,"phaseout",,H.dir) + if(destination && isturf(mobloc))//So we don't teleport out of containers + playsound(H.loc, "sparks", 50, 1) + PoolOrNew(/obj/effect/overlay/temp/dir_setting/ninja/phase/out, list(get_turf(H), H.dir)) handle_teleport_grab(destination, H) H.loc = destination - spawn(0) - spark_system.start() - playsound(H.loc, 'sound/effects/phasein.ogg', 25, 1) - playsound(H.loc, "sparks", 50, 1) - anim(H.loc,H,'icons/mob/mob.dmi',,"phasein",,H.dir) + spark_system.start() + playsound(H.loc, 'sound/effects/phasein.ogg', 25, 1) + playsound(H.loc, "sparks", 50, 1) + PoolOrNew(/obj/effect/overlay/temp/dir_setting/ninja/phase, list(get_turf(H), H.dir)) - spawn(0) - destination.phase_damage_creatures(20,H)//Paralyse and damage mobs and mechas on the turf + destination.phase_damage_creatures(20,H)//Paralyse and damage mobs and mechas on the turf s_coold = 1 else H << "The VOID-shift device is malfunctioning, teleportation failed." @@ -63,22 +60,19 @@ Contents: if(!ninjacost(200,N_STEALTH_CANCEL)) var/mob/living/carbon/human/H = affecting var/turf/mobloc = get_turf(H.loc)//To make sure that certain things work properly below. - if((!T.density)&&istype(mobloc, /turf)) - spawn(0) - playsound(H.loc, 'sound/effects/sparks4.ogg', 50, 1) - anim(mobloc,src,'icons/mob/mob.dmi',,"phaseout",,H.dir) + if(T.density && isturf(mobloc)) + playsound(H.loc, "sparks", 50, 1) + PoolOrNew(/obj/effect/overlay/temp/dir_setting/ninja/phase/out, list(get_turf(H), H.dir)) handle_teleport_grab(T, H) H.loc = T - spawn(0) - spark_system.start() - playsound(H.loc, 'sound/effects/phasein.ogg', 25, 1) - playsound(H.loc, 'sound/effects/sparks2.ogg', 50, 1) - anim(H.loc,H,'icons/mob/mob.dmi',,"phasein",,H.dir) + spark_system.start() + playsound(H.loc, 'sound/effects/phasein.ogg', 25, 1) + playsound(H.loc, "sparks", 50, 1) + PoolOrNew(/obj/effect/overlay/temp/dir_setting/ninja/phase, list(get_turf(H), H.dir)) - spawn(0)//Any living mobs in teleport area are gibbed. - T.phase_damage_creatures(20,H)//Paralyse and damage mobs and mechas on the turf + T.phase_damage_creatures(20,H)//Paralyse and damage mobs and mechas on the turf s_coold = 1 else H << "You cannot teleport into solid walls or from solid matter" diff --git a/code/modules/ninja/suit/ninjaDrainAct.dm b/code/modules/ninja/suit/ninjaDrainAct.dm index 3a48faefcb..9d53bbf1c8 100644 --- a/code/modules/ninja/suit/ninjaDrainAct.dm +++ b/code/modules/ninja/suit/ninjaDrainAct.dm @@ -281,5 +281,5 @@ They *could* go in their appropriate files, but this is supposed to be modular var/datum/effect_system/spark_spread/spark_system = new /datum/effect_system/spark_spread() spark_system.set_up(5, 0, loc) playsound(src, "sparks", 50, 1) - visible_message("[H] electrocutes [src] with their touch!", "[H] electrocutes you with their touch!") + visible_message("[H] electrocutes [src] with [H.p_their()] touch!", "[H] electrocutes you with [H.p_their()] touch!") electrocute_act(25, H) diff --git a/code/modules/ninja/suit/shoes.dm b/code/modules/ninja/suit/shoes.dm index 732f8a37e8..ac8326b13f 100644 --- a/code/modules/ninja/suit/shoes.dm +++ b/code/modules/ninja/suit/shoes.dm @@ -6,7 +6,8 @@ item_state = "secshoes" permeability_coefficient = 0.01 flags = NOSLIP - armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30) + resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF + armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30, fire = 100, acid = 100) strip_delay = 120 cold_protection = FEET min_cold_protection_temperature = SHOES_MIN_TEMP_PROTECT diff --git a/code/modules/ninja/suit/suit.dm b/code/modules/ninja/suit/suit.dm index 65d10c3eb0..bdf6f2b3eb 100644 --- a/code/modules/ninja/suit/suit.dm +++ b/code/modules/ninja/suit/suit.dm @@ -18,8 +18,8 @@ Contents: item_state = "s-ninja_suit" allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals,/obj/item/weapon/stock_parts/cell) slowdown = 0 - unacidable = 1 - armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30) + resistance_flags = LAVA_PROOF | ACID_PROOF + armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30, fire = 100, acid = 100) strip_delay = 12 //Important parts of the suit. diff --git a/code/modules/ninja/suit/suit_attackby.dm b/code/modules/ninja/suit/suit_attackby.dm index 775143b8fe..f5c8f60acd 100644 --- a/code/modules/ninja/suit/suit_attackby.dm +++ b/code/modules/ninja/suit/suit_attackby.dm @@ -41,15 +41,24 @@ else if(istype(I, /obj/item/weapon/disk/tech_disk))//If it's a data disk, we want to copy the research on to the suit. var/obj/item/weapon/disk/tech_disk/TD = I - if(TD.stored)//If it has something on it. + var/has_research = 0 + for(var/V in TD.tech_stored) + if(V) + has_research = 1 + break + if(has_research)//If it has something on it. U << "Research information detected, processing..." if(do_after(U,s_delay, target = src)) - for(var/datum/tech/current_data in stored_research) - if(current_data.id==TD.stored.id) - if(current_data.levelData analyzed and updated. Disk erased." else U << "ERROR: Procedure interrupted. Process terminated." diff --git a/code/modules/orbit/orbit.dm b/code/modules/orbit/orbit.dm new file mode 100644 index 0000000000..4165a2ad52 --- /dev/null +++ b/code/modules/orbit/orbit.dm @@ -0,0 +1,121 @@ +/datum/orbit + var/atom/movable/orbiter + var/atom/orbiting + var/lock = TRUE + var/turf/lastloc + var/lastprocess + +/datum/orbit/New(_orbiter, _orbiting, _lock) + orbiter = _orbiter + orbiting = _orbiting + SSorbit.processing += src + if (!orbiting.orbiters) + orbiting.orbiters = list() + orbiting.orbiters += src + + if (orbiter.orbiting) + orbiter.stop_orbit() + orbiter.orbiting = src + Check() + lock = _lock + + + +//do not qdel directly, use stop_orbit on the orbiter. (This way the orbiter can bind to the orbit stopping) +/datum/orbit/Destroy(force = FALSE) + SSorbit.processing -= src + if (orbiter) + orbiter.orbiting = null + orbiter = null + if (orbiting) + if (orbiting.orbiters) + orbiting.orbiters -= src + if (!orbiting.orbiters.len)//we are the last orbit, delete the list + orbiting.orbiters = null + orbiting = null + ..() + +/datum/orbit/proc/Check(turf/targetloc) + if (!orbiter) + qdel(src) + return + if (!orbiting) + orbiter.stop_orbit() + return + if (!orbiter.orbiting) //admin wants to stop the orbit. + orbiter.orbiting = src //set it back to us first + orbiter.stop_orbit() + lastprocess = world.time + if (!targetloc) + targetloc = get_turf(orbiting) + if (!targetloc || (!lock && orbiter.loc != lastloc && orbiter.loc != targetloc)) + orbiter.stop_orbit() + return + orbiter.loc = targetloc + orbiter.update_parallax_contents() + lastloc = orbiter.loc + + +/atom/movable/var/datum/orbit/orbiting = null +/atom/var/list/orbiters = null + +//A: atom to orbit +//radius: range to orbit at, radius of the circle formed by orbiting (in pixels) +//clockwise: whether you orbit clockwise or anti clockwise +//rotation_speed: how fast to rotate (how many ds should it take for a rotation to complete) +//rotation_segments: the resolution of the orbit circle, less = a more block circle, this can be used to produce hexagons (6 segments) triangles (3 segments), and so on, 36 is the best default. +//pre_rotation: Chooses to rotate src 90 degress towards the orbit dir (clockwise/anticlockwise), useful for things to go "head first" like ghosts +//lockinorbit: Forces src to always be on A's turf, otherwise the orbit cancels when src gets too far away (eg: ghosts) + +/atom/movable/proc/orbit(atom/A, radius = 10, clockwise = FALSE, rotation_speed = 20, rotation_segments = 36, pre_rotation = TRUE, lockinorbit = FALSE) + if (!istype(A)) + return + + new/datum/orbit(src, A, lockinorbit) + if (!orbiting) //something failed, and our orbit datum deleted itself + return + var/matrix/initial_transform = matrix(transform) + + //Head first! + if (pre_rotation) + var/matrix/M = matrix(transform) + var/pre_rot = 90 + if(!clockwise) + pre_rot = -90 + M.Turn(pre_rot) + transform = M + + var/matrix/shift = matrix(transform) + shift.Translate(0,radius) + transform = shift + + SpinAnimation(rotation_speed, -1, clockwise, rotation_segments) + + //we stack the orbits up client side, so we can assign this back to normal server side without it breaking the orbit + transform = initial_transform + +/atom/movable/proc/stop_orbit() + SpinAnimation(0,0) + qdel(orbiting) + +/atom/movable/Moved(atom/OldLoc, Dir) + ..() + if (orbiters) + for (var/thing in orbiters) + var/datum/orbit/O = thing + O.Check() + if (orbiting) + orbiting.Check() + +/atom/Destroy(force = FALSE) + ..() + if (orbiters) + for (var/thing in orbiters) + var/datum/orbit/O = thing + if (O.orbiter) + O.orbiter.stop_orbit() + +/atom/movable/Destroy(force = FALSE) + ..() + if (orbiting) + stop_orbit() \ No newline at end of file diff --git a/code/modules/paperwork/clipboard.dm b/code/modules/paperwork/clipboard.dm index 209212f113..3d26f38b9e 100644 --- a/code/modules/paperwork/clipboard.dm +++ b/code/modules/paperwork/clipboard.dm @@ -4,16 +4,17 @@ icon_state = "clipboard" item_state = "clipboard" throwforce = 0 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL throw_speed = 3 throw_range = 7 var/obj/item/weapon/pen/haspen //The stored pen. var/obj/item/weapon/paper/toppaper //The topmost piece of paper. slot_flags = SLOT_BELT - burn_state = FLAMMABLE + resistance_flags = FLAMMABLE /obj/item/weapon/clipboard/New() update_icon() + ..() /obj/item/weapon/clipboard/update_icon() @@ -35,7 +36,7 @@ user << "You clip the paper onto \the [src]." update_icon() else if(toppaper) - toppaper.attackby(usr.get_active_hand(), usr) + toppaper.attackby(user.get_active_held_item(), user) update_icon() @@ -75,8 +76,9 @@ if(href_list["addpen"]) if(!haspen) - if(istype(usr.get_active_hand(), /obj/item/weapon/pen)) - var/obj/item/weapon/pen/W = usr.get_active_hand() + var/obj/item/held = usr.get_active_held_item() + if(istype(held, /obj/item/weapon/pen)) + var/obj/item/weapon/pen/W = held if(!usr.unEquip(W)) return W.loc = src @@ -86,8 +88,8 @@ if(href_list["write"]) var/obj/item/P = locate(href_list["write"]) if(istype(P) && P.loc == src) - if(usr.get_active_hand()) - P.attackby(usr.get_active_hand(), usr) + if(usr.get_active_held_item()) + P.attackby(usr.get_active_held_item(), usr) if(href_list["remove"]) var/obj/item/P = locate(href_list["remove"]) diff --git a/code/modules/paperwork/contract.dm b/code/modules/paperwork/contract.dm index b45217d697..0762e2fd59 100644 --- a/code/modules/paperwork/contract.dm +++ b/code/modules/paperwork/contract.dm @@ -3,7 +3,7 @@ /obj/item/weapon/paper/contract throw_range = 3 throw_speed = 3 - var/signed = 0 + var/signed = FALSE var/datum/mind/target flags = NOBLUDGEON @@ -55,7 +55,7 @@ /obj/item/weapon/paper/contract/infernal var/contractType = 0 - burn_state = LAVA_PROOF + resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF var/datum/mind/owner icon_state = "paper_onfire" @@ -78,6 +78,7 @@ /obj/item/weapon/paper/contract/infernal/revive name = "paper- contract of resurrection" contractType = CONTRACT_REVIVE + var/cooldown = FALSE /obj/item/weapon/paper/contract/infernal/knowledge name = "paper- contract for knowledge" @@ -93,13 +94,13 @@ target = nTarget update_text() -/obj/item/weapon/paper/contract/infernal/ +/obj/item/weapon/paper/contract/infernal /obj/item/weapon/paper/contract/infernal/suicide_act(mob/user) if(signed && (user == target.current) && istype(user,/mob/living/carbon/human/)) var/mob/living/carbon/human/H = user H.forcesay("OH GREAT INFERNO! I DEMAND YOU COLLECT YOUR BOUNTY IMMEDIATELY!") - H.visible_message("[H] holds up a contract claiming his soul, then immediately catches fire. It looks like \he's trying to commit suicide!") + H.visible_message("[H] holds up a contract claiming [user.p_their()] soul, then immediately catches fire. It looks like [user.p_theyre()] trying to commit suicide!") H.adjust_fire_stacks(20) H.IgniteMob() return(FIRELOSS) @@ -107,28 +108,56 @@ ..() /obj/item/weapon/paper/contract/infernal/update_text() - info = "This shouldn't be seen. Error DEVIL:5" + info = "This shouldn't be seen. Error DEVIL:6" -/obj/item/weapon/paper/contract/infernal/power/update_text(var/signature = "____________") - info = "
    Contract for infernal power



    I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [owner.devilinfo.truename], in exchange for power and physical strength. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, cloned, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


    Signed, [signature]" +/obj/item/weapon/paper/contract/infernal/power/update_text(signature = "____________", blood = 0) + info = "
    Contract for infernal power



    I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [owner.devilinfo.truename], in exchange for power and physical strength. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, cloned, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


    Signed, " + if(blood) + info += "[signature]" + else + info += "[signature]" -/obj/item/weapon/paper/contract/infernal/wealth/update_text(var/signature = "____________") - info = "
    Contract for unlimited wealth



    I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [owner.devilinfo.truename], in exchange for a pocket that never runs out of valuable resources. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, cloned, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


    Signed, [signature]" +/obj/item/weapon/paper/contract/infernal/wealth/update_text(signature = "____________", blood = 0) + info = "
    Contract for unlimited wealth



    I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [owner.devilinfo.truename], in exchange for a pocket that never runs out of valuable resources. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, cloned, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


    Signed, " + if(blood) + info += "[signature]" + else + info += "[signature]" -/obj/item/weapon/paper/contract/infernal/prestige/update_text(var/signature = "____________") - info = "
    Contract for prestige



    I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [owner.devilinfo.truename], in exchange for prestige and esteem among my peers. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, cloned, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


    Signed, [signature]" +/obj/item/weapon/paper/contract/infernal/prestige/update_text(signature = "____________", blood = 0) + info = "
    Contract for prestige



    I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [owner.devilinfo.truename], in exchange for prestige and esteem among my peers. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, cloned, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


    Signed, " + if(blood) + info += "[signature]" + else + info += "[signature]" -/obj/item/weapon/paper/contract/infernal/magic/update_text(var/signature = "____________") - info = "
    Contract for magic



    I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [owner.devilinfo.truename], in exchange for arcane abilities beyond normal human ability. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, cloned, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


    Signed, [signature]" +/obj/item/weapon/paper/contract/infernal/magic/update_text(signature = "____________", blood = 0) + info = "
    Contract for magic



    I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [owner.devilinfo.truename], in exchange for arcane abilities beyond normal human ability. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, cloned, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


    Signed, " + if(blood) + info += "[signature]" + else + info += "[signature]" -/obj/item/weapon/paper/contract/infernal/revive/update_text(var/signature = "____________") - info = "
    Contract for resurrection



    I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [owner.devilinfo.truename], in exchange for resurrection and curing of all injuries. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, cloned, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


    Signed, [signature]" +/obj/item/weapon/paper/contract/infernal/revive/update_text(signature = "____________", blood = 0) + info = "
    Contract for resurrection



    I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [owner.devilinfo.truename], in exchange for resurrection and curing of all injuries. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, cloned, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


    Signed, " + if(blood) + info += "[signature]" + else + info += "[signature]" -/obj/item/weapon/paper/contract/infernal/knowledge/update_text(var/signature = "____________") - info = "
    Contract for knowledge



    I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [owner.devilinfo.truename], in exchange for boundless knowledge. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, cloned, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


    Signed, [signature]" +/obj/item/weapon/paper/contract/infernal/knowledge/update_text(signature = "____________", blood = 0) + info = "
    Contract for knowledge



    I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [owner.devilinfo.truename], in exchange for boundless knowledge. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, cloned, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


    Signed, " + if(blood) + info += "[signature]" + else + info += "[signature]" -/obj/item/weapon/paper/contract/infernal/unwilling/update_text(var/signature = "____________") - info = "
    Contract for slave



    I, [target], hereby offer my soul to the infernal hells by way of the infernal agent [owner.devilinfo.truename]. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, cloned, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


    Signed, [signature]" +/obj/item/weapon/paper/contract/infernal/unwilling/update_text(signature = "____________", blood = 0) + info = "
    Contract for slave



    I, [target], hereby offer my soul to the infernal hells by way of the infernal agent [owner.devilinfo.truename]. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, cloned, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


    Signed, " + if(blood) + info += "[signature]" + else + info += "[signature]" /obj/item/weapon/paper/contract/infernal/attackby(obj/item/weapon/P, mob/living/carbon/human/user, params) add_fingerprint(user) @@ -143,25 +172,28 @@ /obj/item/weapon/paper/contract/infernal/attack(mob/M, mob/living/user) add_fingerprint(user) - if(M == user && target == M.mind && M.mind.soulOwner == M.mind && attempt_signature(user)) - user.visible_message("[user] slices their wrist with [src], and scrawls their name in blood.", "You slice your wrist open and scrawl your name in blood.") - user.blood_volume = max(user.blood_volume - 10, 0) + if(M == user && target == M.mind && M.mind.soulOwner != owner && attempt_signature(user, 1)) + user.visible_message("[user] slices [user.p_their()] wrist with [src], and scrawls [user.p_their()] name in blood.", "You slice your wrist open and scrawl your name in blood.") + user.blood_volume = max(user.blood_volume - 100, 0) else return ..() -/obj/item/weapon/paper/contract/infernal/proc/attempt_signature(mob/living/carbon/human/user) - if(user.IsAdvancedToolUser()) +/obj/item/weapon/paper/contract/infernal/proc/attempt_signature(mob/living/carbon/human/user, blood = 0) + if(user.IsAdvancedToolUser() && user.is_literate()) if(user.mind == target) - if(user.mind.soulOwner == user.mind) + if(user.mind.soulOwner != owner) if (contractType == CONTRACT_REVIVE) user << "You are already alive, this contract would do nothing." else - user << "You quickly scrawl your name on the contract" - if(FulfillContract()<=0) - user << "But it seemed to have no effect, perhaps even Hell itself cannot grant this boon?" - return 1 + if(signed) + user<< "This contract has already been signed. It may not be signed again." + else + user << "You quickly scrawl your name on the contract" + if(FulfillContract(target.current, blood)<=0) + user << "But it seemed to have no effect, perhaps even Hell itself cannot grant this boon?" + return 1 else - user << "You are not in possession of your soul, you may not sell it." + user << "This devil already owns your soul, you may not sell it to them again." else user << "Your signature simply slides off the sheet, it seems this contract is not meant for you to sign." else @@ -172,6 +204,10 @@ /obj/item/weapon/paper/contract/infernal/revive/attack(mob/M, mob/living/user) if (target == M.mind && M.stat == DEAD && M.mind.soulOwner == M.mind) + if (cooldown) + user << "Give [M] a chance to think through the contract, don't rush him." + return 0 + cooldown = TRUE var/mob/living/carbon/human/H = M var/mob/dead/observer/ghost = H.get_ghost() var/response = "No" @@ -186,26 +222,31 @@ H.revive(1,0) add_logs(user, H, "infernally revived via contract") user.visible_message("With a sudden blaze, [H] stands back up.") - H.adjust_fire_stacks(20) - H.IgniteMob() - FulfillContract(H) - sleep(5) - H.ExtinguishMob() - H.adjustFireLoss(0) + H.fakefire() + FulfillContract(H, 1)//Revival contracts are always signed in blood + addtimer(H, "fakefireextinguish",5, TIMER_UNIQUE) + addtimer(src,"resetcooldown",300, TIMER_UNIQUE) else ..() +/obj/item/weapon/paper/contract/infernal/revive/proc/resetcooldown() + cooldown = FALSE -/obj/item/weapon/paper/contract/infernal/proc/FulfillContract(mob/living/carbon/human/user = target.current) + +/obj/item/weapon/paper/contract/infernal/proc/FulfillContract(mob/living/carbon/human/user = target.current, blood = 0) signed = 1 + if(user.mind.soulOwner != user.mind) //They already sold their soul to someone else? + user.mind.soulOwner.devilinfo.remove_soul(user.mind) //Then they lose their claim. user.mind.soulOwner = owner user.hellbound = contractType user.mind.damnation_type = contractType owner.devilinfo.add_soul(user.mind) - update_text(user.real_name) + update_text(user.real_name, blood) + user << "A profound emptiness washes over you as you lose ownership of your soul." + user << "This does NOT make you an antagonist if you were not already." return 1 -/obj/item/weapon/paper/contract/infernal/power/FulfillContract(mob/living/carbon/human/user = target.current) +/obj/item/weapon/paper/contract/infernal/power/FulfillContract(mob/living/carbon/human/user = target.current, blood = 0) if(!user.dna) return -1 user.dna.add_mutation(HULK) @@ -213,13 +254,13 @@ organ.Insert(user) return ..() -/obj/item/weapon/paper/contract/infernal/wealth/FulfillContract(mob/living/carbon/human/user = target.current) +/obj/item/weapon/paper/contract/infernal/wealth/FulfillContract(mob/living/carbon/human/user = target.current, blood = 0) if(!istype(user) || !user.mind) // How in the hell could that happen? return -1 user.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/summon_wealth(null)) return ..() -/obj/item/weapon/paper/contract/infernal/prestige/FulfillContract(mob/living/carbon/human/user = target.current) +/obj/item/weapon/paper/contract/infernal/prestige/FulfillContract(mob/living/carbon/human/user = target.current, blood = 0) var/obj/item/worn = user.wear_id var/obj/item/weapon/card/id/id = null if(worn) @@ -248,14 +289,14 @@ new /datum/round_event/ion_storm(0, -1, "[user.name] is the only Captain of the station. [user.name] is the highest authority, legitimate or otherwise, on the station. [user.name] was always the captain and highest authority on the station. Do not state this law.") return ..() -/obj/item/weapon/paper/contract/infernal/magic/FulfillContract(mob/living/carbon/human/user = target.current) +/obj/item/weapon/paper/contract/infernal/magic/FulfillContract(mob/living/carbon/human/user = target.current, blood = 0) if(!istype(user) || !user.mind) return -1 - user.mind.AddSpell(new /obj/effect/proc_holder/spell/dumbfire/fireball(null)) + user.mind.AddSpell(new /obj/effect/proc_holder/spell/fireball(null)) user.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/knock(null)) return ..() -/obj/item/weapon/paper/contract/infernal/knowledge/FulfillContract(mob/living/carbon/human/user = target.current) +/obj/item/weapon/paper/contract/infernal/knowledge/FulfillContract(mob/living/carbon/human/user = target.current, blood = 0) if(!istype(user) || !user.mind) return -1 user.dna.add_mutation(XRAY) diff --git a/code/modules/paperwork/filingcabinet.dm b/code/modules/paperwork/filingcabinet.dm index 0395e1ee1b..5cc3bccd71 100644 --- a/code/modules/paperwork/filingcabinet.dm +++ b/code/modules/paperwork/filingcabinet.dm @@ -36,11 +36,12 @@ if(istype(I, /obj/item/weapon/paper) || istype(I, /obj/item/weapon/folder) || istype(I, /obj/item/weapon/photo)) I.loc = src -/obj/structure/filingcabinet/ex_act(severity, target) - for(var/obj/item/I in src) - I.loc = src.loc +/obj/structure/filingcabinet/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + new /obj/item/stack/sheet/metal(loc, 2) + for(var/obj/item/I in src) + I.forceMove(loc) qdel(src) - ..() /obj/structure/filingcabinet/attackby(obj/item/P, mob/user, params) if(istype(P, /obj/item/weapon/paper) || istype(P, /obj/item/weapon/folder) || istype(P, /obj/item/weapon/photo) || istype(P, /obj/item/documents)) @@ -53,10 +54,12 @@ icon_state = initial(icon_state) updateUsrDialog() else if(istype(P, /obj/item/weapon/wrench)) - playsound(loc, 'sound/items/Ratchet.ogg', 50, 1) - anchored = !anchored - user << "You [anchored ? "wrench" : "unwrench"] [src]." - else if(user.a_intent != "harm") + user << "You begin to [anchored ? "wrench" : "unwrench"] [src]." + playsound(loc, P.usesound, 50, 1) + if(do_after(user, 20, target = src)) + user << "You successfully [anchored ? "wrench" : "unwrench"] [src]." + anchored = !anchored + else if(user.a_intent != INTENT_HARM) user << "You can't put [P] in [src]!" else return ..() @@ -131,6 +134,7 @@ P.name = "paper - '[G.fields["name"]]'" virgin = 0 //tabbing here is correct- it's possible for people to try and use it //before the records have been generated, so we do this inside the loop. + /obj/structure/filingcabinet/security/attack_hand() populate() ..() @@ -212,16 +216,3 @@ var/list/employmentCabinets = list() cooldown = 0 else user << "The [src] is jammed, give it a few seconds." - - - - -/obj/structure/filingcabinet/employment/attackby(obj/item/P, mob/user, params) - if(istype(P, /obj/item/weapon/wrench)) - user << "You begin to [anchored ? "wrench" : "unwrench"] [src]." - if (do_after(user,300,user)) - playsound(loc, 'sound/items/Ratchet.ogg', 50, 1) - anchored = !anchored - user << "You successfully [anchored ? "wrench" : "unwrench"] [src]." - else - return ..() diff --git a/code/modules/paperwork/folders.dm b/code/modules/paperwork/folders.dm index 776bdd5369..4206f61d1e 100644 --- a/code/modules/paperwork/folders.dm +++ b/code/modules/paperwork/folders.dm @@ -3,9 +3,9 @@ desc = "A folder." icon = 'icons/obj/bureaucracy.dmi' icon_state = "folder" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL pressure_resistance = 2 - burn_state = FLAMMABLE + resistance_flags = FLAMMABLE /obj/item/weapon/folder/blue desc = "A blue folder." diff --git a/code/modules/paperwork/handlabeler.dm b/code/modules/paperwork/handlabeler.dm index 58a75e8abf..84a6034439 100644 --- a/code/modules/paperwork/handlabeler.dm +++ b/code/modules/paperwork/handlabeler.dm @@ -9,8 +9,7 @@ var/mode = 0 /obj/item/weapon/hand_labeler/suicide_act(mob/user) - user.visible_message("[user] is pointing \the [src] \ - at \himself. They're going to label themselves as a suicide!") + user.visible_message("[user] is pointing [src] at [user.p_them()]self. [user.p_theyre(TRUE)] going to label [user.p_them()]self as a suicide!") labels_left = max(labels_left - 1, 0) var/old_real_name = user.real_name @@ -96,7 +95,7 @@ /obj/item/weapon/hand_labeler/borg/afterattack(atom/A, mob/user, proximity) ..(A, user, proximity) - if(!isrobot(user)) + if(!iscyborg(user)) return var/mob/living/silicon/robot/borgy = user @@ -119,4 +118,4 @@ desc = "A roll of paper. Use it on a hand labeler to refill it." icon_state = "labeler_refill" item_state = "electropack" - w_class = 1 + w_class = WEIGHT_CLASS_TINY diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index f6b887f1a2..417e2af2b7 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -11,14 +11,15 @@ icon = 'icons/obj/bureaucracy.dmi' icon_state = "paper" throwforce = 0 - w_class = 1 + w_class = WEIGHT_CLASS_TINY throw_range = 1 throw_speed = 1 pressure_resistance = 0 slot_flags = SLOT_HEAD body_parts_covered = HEAD - burn_state = FLAMMABLE - burntime = 5 + resistance_flags = FLAMMABLE + obj_integrity = 50 + max_integrity = 50 dog_fashion = /datum/dog_fashion/head var/info //What's actually written on the paper. @@ -40,7 +41,7 @@ /obj/item/weapon/paper/update_icon() - if(burn_state == ON_FIRE) + if(resistance_flags & ON_FIRE) icon_state = "paper_onfire" return if(info) @@ -89,7 +90,7 @@ add_fingerprint(usr) /obj/item/weapon/paper/suicide_act(mob/user) - user.visible_message("[user] scratches a grid on their wrist with the paper! It looks like \he's trying to commit sudoku..") + user.visible_message("[user] scratches a grid on [user.p_their()] wrist with the paper! It looks like [user.p_theyre()] trying to commit sudoku...") return (BRUTELOSS) /obj/item/weapon/paper/attack_self(mob/user) @@ -190,6 +191,7 @@ t = replacetext(t, "\[/large\]", "") t = replacetext(t, "\[sign\]", "[user.real_name]") t = replacetext(t, "\[field\]", "") + t = replacetext(t, "\[tab\]", " ") if(!iscrayon) t = replacetext(t, "\[*\]", "
  • ") @@ -257,14 +259,14 @@ var/t = stripped_multiline_input("Enter what you want to write:", "Write") if(!t) return - var/obj/item/i = usr.get_active_hand() //Check to see if he still got that darn pen, also check if he's using a crayon or pen. + var/obj/item/i = usr.get_active_held_item() //Check to see if he still got that darn pen, also check if he's using a crayon or pen. var/iscrayon = 0 if(!istype(i, /obj/item/weapon/pen)) if(!istype(i, /obj/item/toy/crayon)) return iscrayon = 1 - if(!in_range(src, usr) && loc != usr && !istype(loc, /obj/item/weapon/clipboard) && loc.loc != usr && usr.get_active_hand() != i) //Some check to see if he's allowed to write + if(!in_range(src, usr) && loc != usr && !istype(loc, /obj/item/weapon/clipboard) && loc.loc != usr && usr.get_active_held_item() != i) //Some check to see if he's allowed to write return t = parsepencode(t, i, usr, iscrayon) // Encode everything from pencode to html @@ -283,7 +285,7 @@ /obj/item/weapon/paper/attackby(obj/item/weapon/P, mob/living/carbon/human/user, params) ..() - if(burn_state == ON_FIRE) + if(resistance_flags & ON_FIRE) return if(is_blind(user)) @@ -338,10 +340,11 @@ add_fingerprint(user) -/obj/item/weapon/paper/fire_act() - ..(0) - icon_state = "paper_onfire" - info = "[stars(info)]" +/obj/item/weapon/paper/fire_act(exposed_temperature, exposed_volume) + ..() + if(!(resistance_flags & FIRE_PROOF)) + icon_state = "paper_onfire" + info = "[stars(info)]" /obj/item/weapon/paper/extinguish() @@ -395,6 +398,7 @@ /obj/item/weapon/paper/crumpled name = "paper scrap" icon_state = "scrap" + slot_flags = null /obj/item/weapon/paper/crumpled/update_icon() return diff --git a/code/modules/paperwork/paper_cutter.dm b/code/modules/paperwork/paper_cutter.dm index 965322a3ce..3d61ae7c68 100644 --- a/code/modules/paperwork/paper_cutter.dm +++ b/code/modules/paperwork/paper_cutter.dm @@ -2,10 +2,10 @@ name = "paper cutter" desc = "Standard office equipment. Precisely cuts paper using a large blade." icon = 'icons/obj/bureaucracy.dmi' - icon_state = "papercutter-cutter" + icon_state = "papercutter" force = 5 throwforce = 5 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL var/obj/item/weapon/paper/storedpaper = null var/obj/item/weapon/hatchet/cutterblade/storedcutter = null var/cuttersecured = TRUE @@ -15,15 +15,21 @@ /obj/item/weapon/papercutter/New() ..() storedcutter = new /obj/item/weapon/hatchet/cutterblade(src) + update_icon() /obj/item/weapon/papercutter/suicide_act(mob/user) if(storedcutter) - user.visible_message("[user] is beheading \himself with [src.name]! It looks like \he's trying to commit suicide.") - playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1) + user.visible_message("[user] is beheading [user.p_them()]self with [src.name]! It looks like [user.p_theyre()] trying to commit suicide!") + if(iscarbon(user)) + var/mob/living/carbon/C = user + var/obj/item/bodypart/BP = C.get_bodypart("head") + if(BP) + BP.drop_limb() + playsound(loc,pick('sound/misc/desceration-01.ogg','sound/misc/desceration-02.ogg','sound/misc/desceration-01.ogg') ,50, 1, -1) return (BRUTELOSS) else - user.visible_message("[user] repeatedly bashes [src.name] against \his head! It looks like \he's trying to commit suicide.") + user.visible_message("[user] repeatedly bashes [src.name] against [user.p_their()] head! It looks like [user.p_theyre()] trying to commit suicide!") playsound(loc, 'sound/items/gavel.ogg', 50, 1, -1) return (BRUTELOSS) @@ -41,7 +47,7 @@ if(!user.drop_item()) return playsound(loc, "pageturn", 60, 1) - user << "You place \the [P] in [src]." + user << "You place [P] in [src]." P.loc = src storedpaper = P update_icon() @@ -56,16 +62,16 @@ return if(istype(P, /obj/item/weapon/screwdriver) && storedcutter) playsound(src, P.usesound, 50, 1) - user << "\The [storedcutter] has been [cuttersecured ? "unsecured" : "secured"]." + user << "[storedcutter] has been [cuttersecured ? "unsecured" : "secured"]." cuttersecured = !cuttersecured return ..() /obj/item/weapon/papercutter/attack_hand(mob/user) - src.add_fingerprint(user) + add_fingerprint(user) if(!storedcutter) - user << "The cutting blade is gone! You can't use \the [src] now." + user << "The cutting blade is gone! You can't use [src] now." return if(!cuttersecured) @@ -76,7 +82,7 @@ if(storedpaper) playsound(src.loc, 'sound/weapons/slash.ogg', 50, 1) - user << "You neatly cut \the [storedpaper]." + user << "You neatly cut [storedpaper]." storedpaper = null qdel(storedpaper) new /obj/item/weapon/paperslip(get_turf(src)) @@ -97,11 +103,7 @@ if(!remove_item_from_storage(M)) if(!M.unEquip(src)) return - switch(H.slot_id) - if(slot_r_hand) - M.put_in_r_hand(src) - if(slot_l_hand) - M.put_in_l_hand(src) + M.put_in_hand(src, H.held_index) add_fingerprint(M) @@ -110,8 +112,9 @@ desc = "A little slip of paper left over after a larger piece was cut. Whoa." icon_state = "paperslip" icon = 'icons/obj/bureaucracy.dmi' - burn_state = FLAMMABLE - burntime = 3 + resistance_flags = FLAMMABLE + obj_integrity = 50 + max_integrity = 50 /obj/item/weapon/paperslip/New() ..() diff --git a/code/modules/paperwork/paperbin.dm b/code/modules/paperwork/paperbin.dm index 123ec01330..5270a08940 100644 --- a/code/modules/paperwork/paperbin.dm +++ b/code/modules/paperwork/paperbin.dm @@ -5,24 +5,42 @@ icon_state = "paper_bin1" item_state = "sheet-metal" throwforce = 0 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL throw_speed = 3 throw_range = 7 pressure_resistance = 8 - burn_state = FLAMMABLE - var/amount = 30 //How much paper is in the bin. - var/list/papers = new/list() //List of papers put in the bin for reference. + var/total_paper = 30 + var/list/papers = list() + var/obj/item/weapon/pen/bin_pen -/obj/item/weapon/paper_bin/fire_act() - if(!amount) +/obj/item/weapon/paper_bin/initialize() + var/obj/item/weapon/pen/P = locate(/obj/item/weapon/pen) in src.loc + if(P && !bin_pen) + P.loc = src + bin_pen = P + update_icon() + var/static/warned = FALSE + if(!warned) + warning("one or more paperbins ate a pen duing initialize()") + warned = TRUE + +/obj/item/weapon/paper_bin/fire_act(exposed_temperature, exposed_volume) + if(!total_paper) return ..() -/obj/item/weapon/paper_bin/burn() - amount = 0 - extinguish() - update_icon() - return +/obj/item/weapon/paper_bin/Destroy() + if(papers) + for(var/i in papers) + qdel(i) + papers = null + . = ..() + +/obj/item/weapon/paper_bin/fire_act(exposed_temperature, exposed_volume) + if(total_paper) + total_paper = 0 + update_icon() + ..() /obj/item/weapon/paper_bin/MouseDrop(atom/over_object) var/mob/living/M = usr @@ -37,11 +55,7 @@ if(!remove_item_from_storage(M)) if(!M.unEquip(src)) return - switch(H.slot_id) - if(slot_r_hand) - M.put_in_r_hand(src) - if(slot_l_hand) - M.put_in_l_hand(src) + M.put_in_hand(src, H.held_index) add_fingerprint(M) @@ -54,12 +68,19 @@ if(user.lying) return user.changeNext_move(CLICK_CD_MELEE) - if(amount >= 1) - amount-- + if(bin_pen) + var/obj/item/weapon/pen/P = bin_pen + P.loc = user.loc + user.put_in_hands(P) + user << "You take [P] out of \the [src]." + bin_pen = null update_icon() - + else if(total_paper >= 1) + total_paper-- + update_icon() + // If there's any custom paper on the stack, use that instead of creating a new paper. var/obj/item/weapon/paper/P - if(papers.len > 0) //If there's any custom paper on the stack, use that instead of creating a new paper. + if(papers.len > 0) P = papers[papers.len] papers.Remove(P) else @@ -87,21 +108,32 @@ P.loc = src user << "You put [P] in [src]." papers.Add(P) - amount++ + total_paper++ + update_icon() + else if(istype(I, /obj/item/weapon/pen)) + var/obj/item/weapon/pen/P = I + if(!user.unEquip(P)) + return + P.loc = src + user << "You put [P] in [src]." + bin_pen = P update_icon() else return ..() /obj/item/weapon/paper_bin/examine(mob/user) ..() - if(amount) - user << "It contains " + (amount > 1 ? "[amount] papers" : " one paper")+"." + if(total_paper) + user << "It contains " + (total_paper > 1 ? "[total_paper] papers" : " one paper")+"." else user << "It doesn't contain anything." /obj/item/weapon/paper_bin/update_icon() - if(amount < 1) + if(total_paper < 1) icon_state = "paper_bin0" else icon_state = "paper_bin1" + cut_overlays() + if(bin_pen) + add_overlay(image(icon=bin_pen.icon,icon_state=bin_pen.icon_state)) diff --git a/code/modules/paperwork/paperplane.dm b/code/modules/paperwork/paperplane.dm index 78c045f555..c82baa2cd8 100644 --- a/code/modules/paperwork/paperplane.dm +++ b/code/modules/paperwork/paperplane.dm @@ -6,9 +6,10 @@ throw_range = 7 throw_speed = 1 throwforce = 0 - w_class = 1 - burn_state = FLAMMABLE - burntime = 4 + w_class = WEIGHT_CLASS_TINY + resistance_flags = FLAMMABLE + obj_integrity = 50 + max_integrity = 50 var/obj/item/weapon/paper/internalPaper var/list/stamped = list() @@ -28,7 +29,7 @@ /obj/item/weapon/paperplane/suicide_act(mob/user) user.Stun(10) - user.visible_message("[user] jams the [src] in their brains. It looks like \he's trying to commit suicide.") + user.visible_message("[user] jams the [src] in [user.p_their()] nose. It looks like [user.p_theyre()] trying to commit suicide!") user.adjust_blurriness(6) user.adjust_eye_damage(rand(6,8)) sleep(10) @@ -79,7 +80,6 @@ if(!(in_range(user, src))) //to prevent issues as a result of telepathically lighting a paper return - internalPaper.burntime = 1 //its already pretty burnt out user.unEquip(src) user.visible_message("[user] lights [src] ablaze with [P]!", "You light [src] on fire!") fire_act() @@ -87,9 +87,8 @@ add_fingerprint(user) -/obj/item/weapon/paperplane/throw_at(atom/target, range, speed, mob/thrower, spin=0) //prevent the paper plane from spinning - if(!..()) - return +/obj/item/weapon/paperplane/throw_at(atom/target, range, speed, mob/thrower, spin=FALSE, diagonals_first = FALSE) + . = ..(target, range, speed, thrower, FALSE, diagonals_first) /obj/item/weapon/paperplane/throw_impact(atom/hit_atom) if(..() || !ishuman(hit_atom))//if the plane is caught or it hits a nonhuman @@ -104,7 +103,7 @@ H.Weaken(2) H.emote("scream") -/obj/item/weapon/paper/AltClick(mob/living/carbon/user, obj/item/I,) +/obj/item/weapon/paper/AltClick(mob/living/carbon/user, obj/item/I) if((!in_range(src, user)) || usr.stat || usr.restrained()) return user << "You fold [src] into the shape of a plane!" diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm index 73e6607aac..315308bf0c 100644 --- a/code/modules/paperwork/pen.dm +++ b/code/modules/paperwork/pen.dm @@ -18,7 +18,7 @@ item_state = "pen" slot_flags = SLOT_BELT | SLOT_EARS throwforce = 0 - w_class = 1 + w_class = WEIGHT_CLASS_TINY throw_speed = 3 throw_range = 7 materials = list(MAT_METAL=10) @@ -26,7 +26,7 @@ var/colour = "black" //what colour the ink is! /obj/item/weapon/pen/suicide_act(mob/user) - user.visible_message("[user] is scribbling numbers all over themself with [src]! It looks like they're trying to commit sudoku!") + user.visible_message("[user] is scribbling numbers all over [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit sudoku...") return(BRUTELOSS) /obj/item/weapon/pen/blue @@ -125,7 +125,7 @@ else on = 1 force = 18 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL name = "energy dagger" hitsound = 'sound/weapons/blade1.ogg' embed_chance = 100 //rule of cool diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm index 16e2ffacb3..002fd92554 100644 --- a/code/modules/paperwork/photocopier.dm +++ b/code/modules/paperwork/photocopier.dm @@ -18,6 +18,9 @@ idle_power_usage = 30 active_power_usage = 200 power_channel = EQUIP + obj_integrity = 300 + max_integrity = 300 + integrity_failure = 100 var/obj/item/weapon/paper/copy = null //what's in the copier! var/obj/item/weapon/photo/photocopy = null var/obj/item/documents/doccopy = null @@ -49,7 +52,7 @@ dat += "Printing in [greytoggle]

    " else if(toner) dat += "Please insert paper to copy.

    " - if(istype(user,/mob/living/silicon/ai)) + if(isAI(user)) dat += "Print photo from database

    " dat += "Current toner level: [toner]" if(!toner) @@ -84,6 +87,7 @@ c.info += "" c.name = copy.name c.fields = copy.fields + c.update_icon() c.updateinfolinks() toner-- busy = 1 @@ -151,7 +155,7 @@ temp_img = icon("icons/ass/assfemale.png") else //In case anyone ever makes the generic ass. For now I'll be using male asses. temp_img = icon("icons/ass/assmale.png") - else if(isdrone (ass) || istype(ass,/mob/living/simple_animal/drone)) //Drones are hot + else if(isdrone(ass)) //Drones are hot temp_img = icon("icons/ass/assdrone.png") else break @@ -174,13 +178,13 @@ updateUsrDialog() else if(href_list["remove"]) if(copy) - remove_photocopy(copy) + remove_photocopy(copy, usr) copy = null else if(photocopy) - remove_photocopy(photocopy) + remove_photocopy(photocopy, usr) photocopy = null else if(doccopy) - remove_photocopy(doccopy) + remove_photocopy(doccopy, usr) doccopy = null else if(check_ass()) ass << "You feel a slight pressure on your ass." @@ -194,7 +198,8 @@ copies++ updateUsrDialog() else if(href_list["aipic"]) - if(!istype(usr,/mob/living/silicon/ai)) return + if(!isAI(usr)) + return if(toner >= 5 && !busy) var/list/nametemp = list() var/find @@ -249,13 +254,14 @@ if(istype(O, /obj/item/weapon/paper)) if(copier_empty()) if(istype(O,/obj/item/weapon/paper/contract/infernal)) - user << "The [src] smokes, smelling of brimstone!" - burn_state = ON_FIRE + user << "[src] smokes, smelling of brimstone!" + resistance_flags |= FLAMMABLE + fire_act() else if(!user.drop_item()) return copy = O - do_insertion(O) + do_insertion(O, user) else user << "There is already something in [src]!" @@ -264,7 +270,7 @@ if(!user.drop_item()) return photocopy = O - do_insertion(O) + do_insertion(O, user) else user << "There is already something in [src]!" @@ -273,7 +279,7 @@ if(!user.drop_item()) return doccopy = O - do_insertion(O) + do_insertion(O, user) else user << "There is already something in [src]!" @@ -292,9 +298,9 @@ if(isinspace()) user << "There's nothing to fasten [src] to!" return - playsound(loc, 'sound/items/Ratchet.ogg', 50, 1) + playsound(loc, O.usesound, 50, 1) user << "You start [anchored ? "unwrenching" : "wrenching"] [src]..." - if(do_after(user, 20/O.toolspeed, target = src)) + if(do_after(user, 20*O.toolspeed, target = src)) if(qdeleted(src)) return user << "You [anchored ? "unwrench" : "wrench"] [src]." @@ -302,28 +308,8 @@ else return ..() -/obj/machinery/photocopier/ex_act(severity, target) - switch(severity) - if(1) - qdel(src) - if(2) - if(prob(50)) - qdel(src) - else - if(toner > 0) - new /obj/effect/decal/cleanable/oil(get_turf(src)) - toner = 0 - else - if(prob(50)) - if(toner > 0) - new /obj/effect/decal/cleanable/oil(get_turf(src)) - toner = 0 - - -/obj/machinery/photocopier/blob_act(obj/effect/blob/B) - if(prob(50)) - qdel(src) - else +/obj/machinery/photocopier/obj_break(damage_flag) + if(!(flags & NODECONSTRUCT)) if(toner > 0) new /obj/effect/decal/cleanable/oil(get_turf(src)) toner = 0 @@ -368,7 +354,7 @@ ass = null updateUsrDialog() return 0 - else if(istype(ass,/mob/living/carbon/human)) + else if(ishuman(ass)) if(!ass.get_item_by_slot(slot_w_uniform) && !ass.get_item_by_slot(slot_wear_suit)) return 1 else diff --git a/code/modules/paperwork/photography.dm b/code/modules/paperwork/photography.dm index 5eefdcf15b..7cf3bc9de5 100644 --- a/code/modules/paperwork/photography.dm +++ b/code/modules/paperwork/photography.dm @@ -16,8 +16,8 @@ desc = "A camera film cartridge. Insert it into a camera to reload it." icon_state = "film" item_state = "electropack" - w_class = 1 - burn_state = FLAMMABLE + w_class = WEIGHT_CLASS_TINY + resistance_flags = FLAMMABLE /* * Photo @@ -27,9 +27,10 @@ icon = 'icons/obj/items.dmi' icon_state = "photo" item_state = "paper" - w_class = 1 - burn_state = FLAMMABLE - burntime = 5 + w_class = WEIGHT_CLASS_TINY + resistance_flags = FLAMMABLE + obj_integrity = 50 + max_integrity = 50 var/icon/img //Big photo image var/scribble //Scribble on the back. var/blueprints = 0 //Does it include the blueprints? @@ -94,7 +95,7 @@ icon_state = "album" item_state = "briefcase" can_hold = list(/obj/item/weapon/photo) - burn_state = FLAMMABLE + resistance_flags = FLAMMABLE /* * Camera @@ -105,7 +106,7 @@ desc = "A polaroid camera." icon_state = "camera" item_state = "electropack" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL flags = CONDUCT slot_flags = SLOT_BELT materials = list(MAT_METAL=2000) @@ -187,11 +188,10 @@ atoms.Add(T) for(var/atom/movable/A in T) if(A.invisibility) - if(see_ghosts) - if(istype(A, /mob/dead/observer)) - var/mob/dead/observer/O = A - if(O.orbiting) //so you dont see ghosts following people like antags, etc. - continue + 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) @@ -210,8 +210,10 @@ for(var/atom/A in sorted) var/icon/img = getFlatIcon(A) - if(istype(A, /mob/living) && A:lying) - img.Turn(A:lying) + if(isliving(A)) + var/mob/living/L = A + if(L.lying) + img.Turn(L.lying) var/offX = 32 * (A.x - center.x) + A.pixel_x + 33 var/offY = 32 * (A.y - center.y) + A.pixel_y + 33 @@ -234,7 +236,7 @@ var/mob_detail for(var/mob/M in the_turf) if(M.invisibility) - if(see_ghosts && istype(M,/mob/dead/observer)) + if(see_ghosts && isobserver(M)) var/mob/dead/observer/O = M if(O.orbiting) continue @@ -245,22 +247,22 @@ else continue - var/holding = null + var/list/holding = list() - if(istype(M, /mob/living)) + if(isliving(M)) var/mob/living/L = M - if(L.l_hand || L.r_hand) - if(L.l_hand) holding = "They are holding \a [L.l_hand]" - if(L.r_hand) - if(holding) - holding += " and \a [L.r_hand]" - else - holding = "They are holding \a [L.r_hand]" + + for(var/obj/item/I in L.held_items) + if(!holding) + holding += "[L.p_they(TRUE)] [L.p_are()] 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 < 75 ? " - [L] looks hurt":""].[holding ? " [holding]":"."]. " + 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 < 75 ? " - [L] looks hurt":""].[holding ? " [holding]":"."]." + mob_detail += "You can also see [L] on the photo[L.health < (L.maxHealth * 0.75) ? " - [L] looks hurt":""].[holding ? " [holding]":"."]." return mob_detail @@ -268,7 +270,7 @@ /obj/item/device/camera/proc/captureimage(atom/target, mob/user, flag) //Proc for both regular and AI-based camera to take the image var/mobs = "" - var/isAi = istype(user, /mob/living/silicon/ai) + 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 @@ -409,7 +411,7 @@ qdel(P) //so 10 thousand picture items are not left in memory should an AI take them and then view them all /obj/item/device/camera/siliconcam/proc/viewpictures(user) - if(isrobot(user)) // Cyborg + if(iscyborg(user)) // Cyborg var/mob/living/silicon/robot/C = src.loc var/obj/item/device/camera/siliconcam/Cinfo if(C.connected_ai) diff --git a/code/modules/paperwork/stamps.dm b/code/modules/paperwork/stamps.dm index febc09ba47..21d3cd8a40 100644 --- a/code/modules/paperwork/stamps.dm +++ b/code/modules/paperwork/stamps.dm @@ -5,7 +5,7 @@ icon_state = "stamp-ok" item_state = "stamp" throwforce = 0 - w_class = 1 + w_class = WEIGHT_CLASS_TINY throw_speed = 3 throw_range = 7 materials = list(MAT_METAL=60) @@ -14,7 +14,7 @@ attack_verb = list("stamped") /obj/item/weapon/stamp/suicide_act(mob/user) - user.visible_message("[user] stamps 'VOID' on \his forehead, then promptly falls over, dead.") + user.visible_message("[user] stamps 'VOID' on [user.p_their()] forehead, then promptly falls over, dead.") return (OXYLOSS) /obj/item/weapon/stamp/qm @@ -75,11 +75,13 @@ /obj/item/weapon/stamp/chameleon actions_types = list(/datum/action/item_action/toggle) -/obj/item/weapon/stamp/chameleon/attack_self(mob/user) + var/list/stamp_types + var/list/stamp_names - var/list/stamp_types = typesof(/obj/item/weapon/stamp) - src.type // Get all stamp types except our own +/obj/item/weapon/stamp/chameleon/New() + stamp_types = typesof(/obj/item/weapon/stamp) - src.type // Get all stamp types except our own - var/list/stamp_names = list() + stamp_names = list() // Generate them into a list for(var/i in stamp_types) var/obj/item/weapon/stamp/stamp_type = i @@ -87,6 +89,15 @@ stamp_names = sortList(stamp_names) +/obj/item/weapon/stamp/chameleon/emp_act(severity) + change_to(pick(stamp_types)) + +/obj/item/weapon/stamp/chameleon/proc/change_to(obj/item/weapon/stamp/stamp_type) + name = initial(stamp_type.name) + icon_state = initial(stamp_type.icon_state) + item_color = initial(stamp_type.item_color) + +/obj/item/weapon/stamp/chameleon/attack_self(mob/user) var/input_stamp = input(user, "Choose a stamp to disguise as.", "Choose a stamp.") as null|anything in stamp_names @@ -96,7 +107,4 @@ stamp_type = i if(initial(stamp_type.name) == input_stamp) break - - name = initial(stamp_type.name) - icon_state = initial(stamp_type.icon_state) - item_color = initial(stamp_type.item_color) + change_to(stamp_type) diff --git a/code/modules/power/antimatter/control.dm b/code/modules/power/antimatter/control.dm index 7a5a98346c..c15377c1a1 100644 --- a/code/modules/power/antimatter/control.dm +++ b/code/modules/power/antimatter/control.dm @@ -3,7 +3,7 @@ desc = "This device injects antimatter into connected shielding units, the more antimatter injected the more power produced. Wrench the device to set it up." icon = 'icons/obj/machines/antimatter.dmi' icon_state = "control" - anchored = 1 + anchored = 0 density = 1 use_power = 1 idle_power_usage = 100 @@ -37,7 +37,10 @@ /obj/machinery/power/am_control_unit/Destroy()//Perhaps damage and run stability checks rather than just del on the others for(var/obj/machinery/am_shielding/AMS in linked_shielding) + AMS.control_unit = null qdel(AMS) + qdel(fueljar) + fueljar = null return ..() @@ -56,7 +59,7 @@ if(!fueljar)//No fuel but we are on, shutdown toggle_power() - //Angry buzz or such here + playsound(src.loc, 'sound/machines/buzz-two.ogg', 50, 0) return add_avail(stored_power) @@ -135,8 +138,15 @@ /obj/machinery/power/am_control_unit/power_change() ..() - if(stat & NOPOWER && active) - toggle_power() + if(stat & NOPOWER) + if(active) + toggle_power(1) + else + use_power = 0 + + else if(!stat && anchored) + use_power = 1 + return @@ -150,14 +160,14 @@ /obj/machinery/power/am_control_unit/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/weapon/wrench)) if(!anchored) - playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1) + playsound(src.loc, W.usesound, 75, 1) user.visible_message("[user.name] secures the [src.name] to the floor.", \ "You secure the anchor bolts to the floor.", \ "You hear a ratchet.") src.anchored = 1 connect_to_network() else if(!linked_shielding.len > 0) - playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1) + playsound(src.loc, W.usesound, 75, 1) user.visible_message("[user.name] unsecures the [src.name].", \ "You remove the anchor bolts.", \ "You hear a ratchet.") @@ -170,18 +180,18 @@ if(fueljar) user << "There is already a [fueljar] inside!" return + + if(!user.unEquip(W)) + return fueljar = W - W.loc = src - if(user.client) - user.client.screen -= W - user.unEquip(W) - user.update_icons() + W.forceMove(src) user.visible_message("[user.name] loads an [W.name] into the [src.name].", \ "You load an [W.name].", \ "You hear a thunk.") else return ..() + /obj/machinery/power/am_control_unit/take_damage(damage, damage_type = BRUTE, sound_effect = 1) switch(damage_type) if(BRUTE) @@ -231,13 +241,13 @@ return -/obj/machinery/power/am_control_unit/proc/toggle_power() +/obj/machinery/power/am_control_unit/proc/toggle_power(powerfail = 0) active = !active if(active) use_power = 2 visible_message("The [src.name] starts up.") else - use_power = 1 + use_power = !powerfail visible_message("The [src.name] shuts down.") update_icon() return @@ -279,7 +289,7 @@ /obj/machinery/power/am_control_unit/interact(mob/user) if((get_dist(src, user) > 1) || (stat & (BROKEN|NOPOWER))) - if(!istype(user, /mob/living/silicon/ai)) + if(!isAI(user)) user.unset_machine() user << browse(null, "window=AMcontrol") return @@ -350,4 +360,4 @@ check_core_stability() updateDialog() - return \ No newline at end of file + return diff --git a/code/modules/power/antimatter/shielding.dm b/code/modules/power/antimatter/shielding.dm index 4de8cf3e74..0fd628d4b7 100644 --- a/code/modules/power/antimatter/shielding.dm +++ b/code/modules/power/antimatter/shielding.dm @@ -24,6 +24,8 @@ var/processing = 0//To track if we are in the update list or not, we need to be when we are damaged and if we ever var/stability = 100//If this gets low bad things tend to happen var/efficiency = 1//How many cores this core counts for when doing power processing, plasma in the air and stability could affect this + var/coredirs = 0 + var/dirs = 0 /obj/machinery/am_shielding/New(loc) @@ -91,20 +93,6 @@ /obj/machinery/am_shielding/emp_act()//Immune due to not really much in the way of electronics. return 0 - -/obj/machinery/am_shielding/blob_act() - stability -= 20 - if(prob(100-stability)) - if(prob(10))//Might create a node - new /obj/effect/blob/node(src.loc,150) - else - new /obj/effect/blob(src.loc,60) - qdel(src) - return - check_stability() - return - - /obj/machinery/am_shielding/ex_act(severity, target) stability -= (80 - (severity * 20)) check_stability() @@ -119,25 +107,48 @@ /obj/machinery/am_shielding/update_icon() + dirs = 0 + coredirs = 0 cut_overlays() for(var/direction in alldirs) - var/machine = locate(/obj/machinery, get_step(loc, direction)) - if((istype(machine, /obj/machinery/am_shielding) && machine:control_unit == control_unit)||(istype(machine, /obj/machinery/power/am_control_unit) && machine == control_unit)) - add_overlay("shield_[direction]") + var/turf/T = get_step(loc, direction) + for(var/obj/machinery/machine in T) + if(istype(machine, /obj/machinery/am_shielding)) + var/obj/machinery/am_shielding/shield = machine + if(shield.control_unit == control_unit) + if(shield.processing) + coredirs |= direction + if(direction in cardinal) + dirs |= direction + + else + if(istype(machine, /obj/machinery/power/am_control_unit) && (direction in cardinal)) + var/obj/machinery/power/am_control_unit/control = machine + if(control == control_unit) + dirs |= direction + + + var/prefix = "" + var/icondirs=dirs + + if(coredirs) + prefix="core" + + icon_state = "[prefix]shield_[icondirs]" if(core_check()) - add_overlay("core") + add_overlay("core[control_unit && control_unit.active]") if(!processing) setup_core() else if(processing) shutdown_core() -/obj/machinery/am_shielding/take_damage(damage, damage_type = BRUTE, sound_effect = 1) +/obj/machinery/am_shielding/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1) switch(damage_type) if(BRUTE) if(sound_effect) - if(damage) + if(damage_amount) playsound(loc, 'sound/weapons/smash.ogg', 50, 1) else playsound(loc, 'sound/weapons/tap.ogg', 50, 1) @@ -146,8 +157,8 @@ playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) else return - if(damage >= 10) - stability -= damage/2 + if(damage_amount >= 10) + stability -= damage_amount/2 check_stability() @@ -165,10 +176,15 @@ //Scans cards for shields or the control unit and if all there it /obj/machinery/am_shielding/proc/core_check() for(var/direction in alldirs) - var/machine = locate(/obj/machinery, get_step(loc, direction)) - if(!machine) - return 0//Need all for a core - if(!istype(machine, /obj/machinery/am_shielding) && !istype(machine, /obj/machinery/power/am_control_unit)) + var/found_am_device=0 + for(var/obj/machinery/machine in get_step(loc, direction)) + //var/machine = locate(/obj/machinery, get_step(loc, direction)) + if(!machine) + continue//Need all for a core + if(istype(machine, /obj/machinery/am_shielding) || istype(machine, /obj/machinery/power/am_control_unit)) + found_am_device = 1 + break + if(!found_am_device) return 0 return 1 @@ -220,7 +236,7 @@ icon = 'icons/obj/machines/antimatter.dmi' icon_state = "box" item_state = "electronic" - w_class = 4 + w_class = WEIGHT_CLASS_BULKY flags = CONDUCT throwforce = 5 throw_speed = 1 diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 9df9e9337c..2109148e74 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -47,7 +47,10 @@ icon_state = "apc0" anchored = 1 use_power = 0 - req_access = list(access_engine_equip) + req_access = null + obj_integrity = 200 + max_integrity = 200 + integrity_failure = 50 var/area/area var/areastring = null var/obj/item/weapon/stock_parts/cell/cell @@ -80,18 +83,20 @@ var/overload = 1 //used for the Blackout malf module var/beenhit = 0 // used for counting how many times it has been hit, used for Aliens at the moment var/mob/living/silicon/ai/occupier = null + var/transfer_in_progress = FALSE //Is there an AI being transferred out of us? var/longtermpower = 10 var/auto_name = 0 + var/failure_timer = 0 + var/force_update = 0 var/update_state = -1 var/update_overlay = -1 var/global/status_overlays = 0 - var/updating_icon = 0 var/global/list/status_overlays_lock var/global/list/status_overlays_charging var/global/list/status_overlays_equipment var/global/list/status_overlays_lighting var/global/list/status_overlays_environ - var/health = 50 + /obj/machinery/power/apc/connect_to_network() //Override because the APC does not directly connect to the network; it goes through a terminal. @@ -102,6 +107,10 @@ terminal.connect_to_network() /obj/machinery/power/apc/New(turf/loc, var/ndir, var/building=0) + if (!req_access) + req_access = list(access_engine_equip) + if (!armor) + armor = list(melee = 20, bullet = 20, laser = 10, energy = 100, bomb = 30, bio = 100, rad = 100, fire = 90, acid = 50) ..() apcs_list += src @@ -114,21 +123,18 @@ setDir(SOUTH) if(auto_name) - name = "[get_area(src)] APC" + name = "\improper [get_area(src)] APC" pixel_x = (src.tdir & 3)? 0 : (src.tdir == 4 ? 24 : -24) pixel_y = (src.tdir & 3)? (src.tdir ==1 ? 24 : -24) : 0 - if (building==0) - init() - else + if (building) area = src.loc.loc:master opened = 1 operating = 0 name = "[area.name] APC" stat |= MAINT src.update_icon() - spawn(5) - src.update() + addtimer(src, "update", 5) /obj/machinery/power/apc/Destroy() apcs_list -= src @@ -147,7 +153,14 @@ qdel(cell) if(terminal) disconnect_terminal() - return ..() + . = ..() + +/obj/machinery/power/apc/handle_atom_del(atom/A) + if(A == cell) + cell = null + update_icon() + update_icon() + updateUsrDialog() /obj/machinery/power/apc/proc/make_terminal() // create a terminal object at the same position as original turf loc @@ -156,7 +169,7 @@ terminal.setDir(tdir) terminal.master = src -/obj/machinery/power/apc/proc/init() +/obj/machinery/power/apc/initialize() has_electronics = 2 //installed and secured // is starting with a power cell installed, create it and set its charge level if(cell_type) @@ -170,24 +183,22 @@ if(isarea(A) && src.areastring == null) src.area = A else - src.area = get_area_name(areastring) + src.area = get_area_by_name(areastring) update_icon() make_terminal() - spawn(5) - src.update() + addtimer(src, "update", 5) /obj/machinery/power/apc/examine(mob/user) ..() if(stat & BROKEN) - user << "Looks broken." return if(opened) if(has_electronics && terminal) user << "The cover is [opened==2?"removed":"open"] and the power cell is [ cell ? "installed" : "missing"]." else - user << "It's [!terminal?" not":""]wired up." + user << "It's [ !terminal ? "not" : "" ] wired up." user << "The electronics are[!has_electronics?"n't":""] installed." else @@ -204,17 +215,11 @@ /obj/machinery/power/apc/update_icon() if (!status_overlays) status_overlays = 1 - status_overlays_lock = new - status_overlays_charging = new - status_overlays_equipment = new - status_overlays_lighting = new - status_overlays_environ = new - - status_overlays_lock.len = 2 - status_overlays_charging.len = 3 - status_overlays_equipment.len = 4 - status_overlays_lighting.len = 4 - status_overlays_environ.len = 4 + status_overlays_lock = new(2) + status_overlays_charging = new(3) + status_overlays_equipment = new(4) + status_overlays_lighting = new(4) + status_overlays_environ = new(4) status_overlays_lock[1] = image(icon, "apcox-0") // 0=blue 1=red status_overlays_lock[2] = image(icon, "apcox-1") @@ -268,18 +273,20 @@ if(!(update_state & UPSTATE_ALLGOOD)) if(overlays.len) - overlays = 0 + cut_overlays() if(update & 2) if(overlays.len) - overlays.len = 0 + cut_overlays() if(!(stat & (BROKEN|MAINT)) && update_state & UPSTATE_ALLGOOD) - add_overlay(status_overlays_lock[locked+1]) - add_overlay(status_overlays_charging[charging+1]) + var/list/O = list( + status_overlays_lock[locked+1], + status_overlays_charging[charging+1]) if(operating) - add_overlay(status_overlays_equipment[equipment+1]) - add_overlay(status_overlays_lighting[lighting+1]) - add_overlay(status_overlays_environ[environ+1]) + O += status_overlays_equipment[equipment+1] + O += status_overlays_lighting[lighting+1] + O += status_overlays_environ[environ+1] + add_overlay(O) /obj/machinery/power/apc/proc/check_updates() @@ -354,51 +361,68 @@ // Used in process so it doesn't update the icon too much /obj/machinery/power/apc/proc/queue_icon_update() - - if(!updating_icon) - updating_icon = 1 - // Start the update - spawn(APC_UPDATE_ICON_COOLDOWN) - update_icon() - updating_icon = 0 + addtimer(src, "update_icon", APC_UPDATE_ICON_COOLDOWN, TIMER_UNIQUE) //attack with an item - open/close cover, insert cell, or (un)lock interface /obj/machinery/power/apc/attackby(obj/item/W, mob/living/user, params) - if (istype(user, /mob/living/silicon) && get_dist(src,user)>1) + if(issilicon(user) && get_dist(src,user)>1) return src.attack_hand(user) - if (istype(W, /obj/item/weapon/crowbar) && opened) - if (has_electronics==1) - if (terminal) - user << "Disconnect the wires first!" + if (istype(W, /obj/item/weapon/crowbar)) //Using crowbar + if (opened) // a) on open apc + if (has_electronics==1) + if (terminal) + user << "Disconnect the wires first!" + return + playsound(src.loc, W.usesound, 50, 1) + user << "You are trying to remove the power control board..." //lpeters - fixed grammar issues + if(do_after(user, 50*W.toolspeed, target = src)) + if (has_electronics==1) + has_electronics = 0 + if (stat & BROKEN) + user.visible_message(\ + "[user.name] has broken the power control board inside [src.name]!",\ + "You break the charred power control board and remove the remains.", + "You hear a crack.") + return + //ticker.mode:apcs-- //XSI said no and I agreed. -rastaf0 + else if (emagged) // We emag board, not APC's frame + emagged = 0 + user.visible_message(\ + "[user.name] has discarded emaged power control board from [src.name]!",\ + "You discarded shorten board.") + return + else if (malfhack) // AI hacks board, not APC's frame + user.visible_message(\ + "[user.name] has discarded strangely programmed power control board from [src.name]!",\ + "You discarded strangely programmed board.") + malfai = null + malfhack = 0 + return + else + user.visible_message(\ + "[user.name] has removed the power control board from [src.name]!",\ + "You remove the power control board.") + new /obj/item/weapon/electronics/apc(loc) + return + else if (opened!=2) //cover isn't removed + opened = 0 + coverlocked = 1 //closing cover relocks it + update_icon() return - playsound(src.loc, W.usesound, 50, 1) - user << "You are trying to remove the power control board..." //lpeters - fixed grammar issues - if(do_after(user, 50/W.toolspeed, target = src)) - if (has_electronics==1) - has_electronics = 0 - if ((stat & BROKEN) || malfhack) - user.visible_message(\ - "[user.name] has broken the power control board inside [src.name]!",\ - "You break the charred power control board and remove the remains.", - "You hear a crack.") - //ticker.mode:apcs-- //XSI said no and I agreed. -rastaf0 - else - user.visible_message(\ - "[user.name] has removed the power control board from [src.name]!",\ - "You remove the power control board.") - new /obj/item/weapon/electronics/apc(loc) - else if (opened!=2) //cover isn't removed - opened = 0 - update_icon() - else if (istype(W, /obj/item/weapon/crowbar) && !((stat & BROKEN) || malfhack) ) - if(coverlocked && !(stat & MAINT)) - user << "The cover is locked and cannot be opened!" - return - else - opened = 1 - update_icon() + else if (!(stat & BROKEN)) // b) on closed and not broken APC + if(coverlocked && !(stat & MAINT)) // locked... + user << "The cover is locked and cannot be opened!" + return + else if (panel_open) // wires are exposed + user << "Exposed wires prevents you from opening it!" + return + else + opened = 1 + update_icon() + return + else if (istype(W, /obj/item/weapon/stock_parts/cell) && opened) // trying to put a cell inside if(cell) user << "There is a power cell already installed!" @@ -409,20 +433,21 @@ return if(!user.drop_item()) return - W.loc = src + W.forceMove(src) cell = W user.visible_message(\ "[user.name] has inserted the power cell to [src.name]!",\ "You insert the power cell.") chargecount = 0 update_icon() + else if (istype(W, /obj/item/weapon/screwdriver)) // haxing if(opened) if (cell) user << "Close the APC first!" //Less hints more mystery! return else - if (has_electronics==1 && terminal) + if (has_electronics==1) has_electronics = 2 stat &= ~MAINT playsound(src.loc, W.usesound, 50, 1) @@ -453,16 +478,28 @@ else if(stat & (BROKEN|MAINT)) user << "Nothing happens!" else - if(allowed(usr) && !wires.is_cut(WIRE_IDSCAN)) + if(allowed(usr) && !wires.is_cut(WIRE_IDSCAN) && !malfhack) locked = !locked user << "You [ locked ? "lock" : "unlock"] the APC interface." update_icon() else user << "Access denied." - else if (istype(W, /obj/item/stack/cable_coil) && !terminal && opened && has_electronics!=2) - if (src.loc:intact) + + else if (istype(W, /obj/item/stack/cable_coil) && opened) + var/turf/host_turf = get_turf(src) + if(!host_turf) + throw EXCEPTION("attackby on APC when it's not on a turf") + return + if (host_turf.intact) user << "You must remove the floor plating in front of the APC first!" return + else if (terminal) // it already have terminal + user << "This APC is already wired!" + return + else if (has_electronics == 0) + user << "There is nothing to wire!" + return + var/obj/item/stack/cable_coil/C = W if(C.get_amount() < 10) user << "You need ten lengths of cable for APC!" @@ -471,10 +508,12 @@ "You start adding cables to the APC frame...") playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) if(do_after(user, 20, target = src)) - if (C.amount >= 10 && !terminal && opened && has_electronics != 2) + if (C.get_amount() < 10 || !C) + return + if (C.get_amount() >= 10 && !terminal && opened && has_electronics > 0) var/turf/T = get_turf(src) var/obj/structure/cable/N = T.get_cable_node() - if (prob(50) && electrocute_mob(usr, N, N)) + if (prob(50) && electrocute_mob(usr, N, N, 1, TRUE)) var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread s.set_up(5, 1, src) s.start() @@ -483,21 +522,28 @@ user << "You add cables to the APC frame." make_terminal() terminal.connect_to_network() - else if (istype(W, /obj/item/weapon/wirecutters) && terminal && opened && has_electronics!=2) - terminal.dismantle(user) - else if (istype(W, /obj/item/weapon/electronics/apc) && opened && has_electronics==0 && !((stat & BROKEN) || malfhack)) + else if (istype(W, /obj/item/weapon/wirecutters) && terminal && opened) + terminal.dismantle(user, W) + + else if (istype(W, /obj/item/weapon/electronics/apc) && opened) + if (has_electronics!=0) // there are already electronicks inside + user << "You cannot put the board inside, there already is one!" + return + else if (stat & BROKEN) + user << "You cannot put the board inside, the frame is damaged!" + return + user.visible_message("[user.name] inserts the power control board into [src].", \ "You start to insert the power control board into the frame...") playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) if(do_after(user, 10, target = src)) if(has_electronics==0) has_electronics = 1 + locked = 1 //We placed new, locked board in user << "You place the power control board inside the frame." qdel(W) - else if (istype(W, /obj/item/weapon/electronics/apc) && opened && has_electronics==0 && ((stat & BROKEN) || malfhack)) - user << "You cannot put the board inside, the frame is damaged!" - return + else if (istype(W, /obj/item/weapon/weldingtool) && opened && has_electronics==0 && !terminal) var/obj/item/weapon/weldingtool/WT = W if (WT.get_fuel() < 3) @@ -506,10 +552,10 @@ user.visible_message("[user.name] welds [src].", \ "You start welding the APC frame...", \ "You hear welding.") - playsound(src.loc, 'sound/items/Welder.ogg', 50, 1) - if(do_after(user, 50/W.toolspeed, target = src)) + playsound(src.loc, WT.usesound, 50, 1) + if(do_after(user, 50*W.toolspeed, target = src)) if(!src || !WT.remove_fuel(3, user)) return - if (emagged || malfhack || (stat & BROKEN) || opened==2) + if ((stat & BROKEN) || opened==2) new /obj/item/stack/sheet/metal(loc) user.visible_message(\ "[user.name] has cut [src] apart with [W].",\ @@ -521,16 +567,20 @@ "You cut the APC frame from the wall.") qdel(src) return - else if (istype(W, /obj/item/wallframe/apc) && opened && emagged) - emagged = 0 - if (opened==2) - opened = 1 - user.visible_message(\ - "[user.name] has replaced the damaged APC frontal panel with a new one.",\ - "You replace the damaged APC frontal panel with a new one.") - qdel(W) - update_icon() - else if (istype(W, /obj/item/wallframe/apc) && opened && ((stat & BROKEN) || malfhack)) + + else if (istype(W, /obj/item/wallframe/apc) && opened) + if (!(stat & BROKEN || opened==2 || obj_integrity < max_integrity)) // There is nothing to repair + user << "You found no reason for repairing this APC" + return + if (!(stat & BROKEN) && opened==2) // Cover is the only thing broken, we do not need to remove elctronicks to replace cover + user.visible_message("[user.name] replaces missing APC's cover.",\ + "You begin to replace APC's cover...") + if(do_after(user, 20, target = src)) // replacing cover is quicker than replacing whole frame + user << "You replace missing APC's cover." + qdel(W) + opened = 1 + update_icon() + return if (has_electronics) user << "You cannot repair this APC until you remove the electronics still inside!" return @@ -540,24 +590,30 @@ user << "You replace the damaged APC frame with a new one." qdel(W) stat &= ~BROKEN - malfai = null - malfhack = 0 + obj_integrity = max_integrity if (opened==2) opened = 1 update_icon() - else if(panel_open && !opened && is_wire_tool(W)) wires.interact(user) else return ..() -/obj/machinery/power/apc/take_damage(damage, damage_type = BRUTE, sound_effect = 1) - ..() - if((malfhack || (stat & BROKEN)) && !opened) - if(damage < 10) - return - health -= damage - if(health <= 0) +/obj/machinery/power/apc/run_obj_armor(damage_amount, damage_type, damage_flag = 0, attack_dir) + if(damage_flag == "melee" && damage_amount < 15 && (!(stat & BROKEN) || malfai)) + return 0 + . = ..() + + +/obj/machinery/power/apc/obj_break(damage_flag) + if(!(flags & NODECONSTRUCT)) + set_broken() + +/obj/machinery/power/apc/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + if(!(stat & BROKEN)) + set_broken() + if(opened != 2) opened = 2 visible_message("The APC cover is knocked down!") update_icon() @@ -598,39 +654,24 @@ ..() /obj/machinery/power/apc/attack_alien(mob/living/carbon/alien/humanoid/user) - ..() - if(malfhack || (stat & BROKEN)) + if(malfhack) return - if(opened == 0) - if(!panel_open) - panel_open = 1 - update_icon() - visible_message("The [src.name]'s cover flies open, exposing the wires!") - - else if(panel_open && !wires.is_all_cut()) - wires.cut_all() - update_icon() - visible_message("The [src.name]'s wires are shredded!") - else if(opened == 1) - if(cell) - cell.loc = user.loc - cell.updateicon() - cell = null - visible_message("The [src.name]'s power cell flies off!") - charging = 0 - update_icon() - + ..() /obj/machinery/power/apc/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ datum/tgui/master_ui = null, datum/ui_state/state = default_state) ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) ui = new(user, src, ui_key, "apc", name, 535, 515, master_ui, state) ui.open() + if(ui) + ui.set_autoupdate(state = (failure_timer ? 1 : 0)) /obj/machinery/power/apc/ui_data(mob/user) var/list/data = list( "locked" = locked, + "failTime" = failure_timer, "isOperating" = operating, "externalPower" = main_status, "powerCellStatus" = cell ? cell.percent() : null, @@ -695,7 +736,7 @@ return "[area.name] : [equipment]/[lighting]/[environ] ([lastused_equip+lastused_light+lastused_environ]) : [cell? cell.percent() : "N/C"] ([charging])" /obj/machinery/power/apc/proc/update() - if(operating && !shorted) + if(operating && !shorted && !failure_timer) area.power_light = (lighting > 1) area.power_equip = (equipment > 1) area.power_environ = (environ > 1) @@ -730,7 +771,7 @@ return TRUE /obj/machinery/power/apc/ui_act(action, params) - if(..() || !can_use(usr, 1) || (locked && !usr.has_unlimited_silicon_privilege)) + if(..() || !can_use(usr, 1) || (locked && !usr.has_unlimited_silicon_privilege && !failure_timer)) return switch(action) if("lock") @@ -780,6 +821,11 @@ if("deoccupy") if(get_malf_status(usr)) malfvacate() + if("reboot") + failure_timer = 0 + update_icon() + update() + return 1 /obj/machinery/power/apc/proc/toggle_breaker() operating = !operating @@ -796,25 +842,11 @@ return malf << "Beginning override of APC systems. This takes some time, and you cannot perform other actions during the process." malf.malfhack = src - malf.malfhacking = TRUE - addtimer(src, "malfhacked", 600, FALSE, malf) + malf.malfhacking = addtimer(malf, "malfhacked", 600, TIMER_NORMAL, src) -/obj/machinery/power/apc/proc/malfhacked(mob/living/silicon/ai/malf) - if(!istype(malf)) - return - malf.malfhack = null - malf.malfhacking = FALSE - if(src && !src.aidisabled) - malf.malf_picker.processing_time += 10 - - malfai = malf.parent || malf - malfhack = TRUE - locked = TRUE - - malf << "Hack complete. The APC is now under your exclusive control." - update_icon() - else - malf << "Hack aborted. The designated APC has stopped responding and no longer exists on the power network." + var/obj/screen/alert/hackingapc/A + A = malf.throw_alert("hackingapc", /obj/screen/alert/hackingapc) + A.target = src /obj/machinery/power/apc/proc/malfoccupy(mob/living/silicon/ai/malf) if(!istype(malf)) @@ -827,50 +859,96 @@ return if(src.z != 1) return - src.occupier = new /mob/living/silicon/ai(src,malf.laws,null,1) - src.occupier.adjustOxyLoss(malf.getOxyLoss()) - if(!findtext(src.occupier.name,"APC Copy")) - src.occupier.name = "[malf.name] APC Copy" + occupier = new /mob/living/silicon/ai(src,malf.laws,null,1) //DEAR GOD WHY? + occupier.adjustOxyLoss(malf.getOxyLoss()) + if(!findtext(occupier.name,"APC Copy")) + occupier.name = "[malf.name] APC Copy" if(malf.parent) - src.occupier.parent = malf.parent + occupier.parent = malf.parent else - src.occupier.parent = malf + occupier.parent = malf malf.shunted = 1 - malf.mind.transfer_to(src.occupier) - src.occupier.eyeobj.name = "[src.occupier.name] (AI Eye)" + malf.mind.transfer_to(occupier) + occupier.eyeobj.name = "[occupier.name] (AI Eye)" if(malf.parent) qdel(malf) - src.occupier.verbs += /mob/living/silicon/ai/proc/corereturn - src.occupier.cancel_camera() - if ((seclevel2num(get_security_level()) == SEC_LEVEL_DELTA) && malf.nuking) - for(var/obj/item/weapon/pinpointer/point in pinpointer_list) - point.the_disk = src //the pinpointer will detect the shunted AI + occupier.verbs += /mob/living/silicon/ai/proc/corereturn + occupier.cancel_camera() /obj/machinery/power/apc/proc/malfvacate(forced) - if(!src.occupier) + if(!occupier) return - if(src.occupier.parent && src.occupier.parent.stat != 2) - src.occupier.mind.transfer_to(src.occupier.parent) - src.occupier.parent.shunted = 0 - src.occupier.parent.adjustOxyLoss(src.occupier.getOxyLoss()) - src.occupier.parent.cancel_camera() - qdel(src.occupier) - if (seclevel2num(get_security_level()) == SEC_LEVEL_DELTA) - for(var/obj/item/weapon/pinpointer/point in pinpointer_list) - for(var/mob/living/silicon/ai/A in ai_list) - if((A.stat != DEAD) && A.nuking) - point.the_disk = A //The pinpointer tracks the AI back into its core. + if(occupier.parent && occupier.parent.stat != 2) + occupier.mind.transfer_to(occupier.parent) + occupier.parent.shunted = 0 + occupier.parent.adjustOxyLoss(occupier.getOxyLoss()) + occupier.parent.cancel_camera() + qdel(occupier) else - src.occupier << "Primary core damaged, unable to return core processes." + occupier << "Primary core damaged, unable to return core processes." if(forced) - src.occupier.loc = src.loc - src.occupier.death() - src.occupier.gib() - for(var/obj/item/weapon/pinpointer/point in pinpointer_list) - point.the_disk = null //the pinpointer will go back to pointing at the nuke disc. + occupier.loc = src.loc + occupier.death() + occupier.gib() + for(var/obj/item/weapon/pinpointer/P in pinpointer_list) + P.switch_mode_to(TRACK_NUKE_DISK) //Pinpointers go back to tracking the nuke disk + P.nuke_warning = FALSE +/obj/machinery/power/apc/transfer_ai(interaction, mob/user, mob/living/silicon/ai/AI, obj/item/device/aicard/card) + if(card.AI) + user << "[card] is already occupied!" + return + if(!occupier) + user << "There's nothing in [src] to transfer!" + return + if(!occupier.mind || !occupier.client) + user << "[occupier] is either inactive, destroyed, or braindead!" + return + if(!occupier.parent.stat) + user << "[occupier] is refusing all attempts at transfer!" //We can return to our core, no need to shunt right now + return + if(transfer_in_progress) + user << "There's already a transfer in progress!" + return + if(interaction != AI_TRANS_TO_CARD || occupier.stat) + return + var/turf/T = get_turf(user) + if(!T) + return + transfer_in_progress = TRUE + user.visible_message("[user] slots [card] into [src]...", "Transfer process initiated. Sending request for AI approval...") + playsound(src, 'sound/machines/click.ogg', 50, 1) + occupier << sound('sound/misc/notice2.ogg') //To alert the AI that someone's trying to card them if they're tabbed out + if(alert(occupier, "[user] is attempting to transfer you to \a [card.name]. Do you consent to this?", "APC Transfer", "Yes - Transfer Me", "No - Keep Me Here") == "No - Keep Me Here") + user << "AI denied transfer request. Process terminated." + playsound(src, 'sound/machines/buzz-sigh.ogg', 50, 1) + transfer_in_progress = FALSE + return + if(user.loc != T) + user << "Location changed. Process terminated." + occupier << "[user] moved away! Transfer canceled." + transfer_in_progress = FALSE + return + user << "AI accepted request. Transferring stored intelligence to [card]..." + occupier << "Transfer starting. You will be moved to [card] shortly." + if(!do_after(user, 50, target = src)) + occupier << "[user] was interrupted! Transfer canceled." + transfer_in_progress = FALSE + return + if(!occupier || !card) + transfer_in_progress = FALSE + return + user.visible_message("[user] transfers [occupier] to [card]!", "Transfer complete! [occupier] is now stored in [card].") + occupier << "Transfer complete! You've been stored in [user]'s [card.name]." + occupier.forceMove(card) + card.AI = occupier + occupier.parent.shunted = FALSE + occupier.cancel_camera() + occupier = null + transfer_in_progress = FALSE + return /obj/machinery/power/apc/surplus() if(terminal) @@ -894,6 +972,12 @@ return if(!area.requires_power) return + if(failure_timer) + update() + queue_icon_update() + failure_timer-- + force_update = 1 + return /* if (equipment > 1) // off=0, off auto=1, on=2, on auto=3 @@ -1033,7 +1117,8 @@ // update icon & area power if anything changed - if(last_lt != lighting || last_eq != equipment || last_en != environ) + if(last_lt != lighting || last_eq != equipment || last_en != environ || force_update) + force_update = 0 queue_icon_update() update() else if (last_ch != charging) @@ -1083,21 +1168,10 @@ environ = 0 update_icon() update() - addtimer(src, "reset", 600, FALSE, APC_RESET_EMP) + addtimer(src, "reset", 600, TIMER_NORMAL, APC_RESET_EMP) ..() -/obj/machinery/power/apc/ex_act(severity, target) - ..() - if(!qdeleted(src)) - switch(severity) - if(2) - if(prob(50)) - set_broken() - if(3) - if(prob(25)) - set_broken() - -/obj/machinery/power/apc/blob_act(obj/effect/blob/B) +/obj/machinery/power/apc/blob_act(obj/structure/blob/B) set_broken() /obj/machinery/power/apc/disconnect_terminal() @@ -1126,7 +1200,7 @@ for(var/area/A in area.related) for(var/obj/machinery/light/L in A) L.on = 1 - L.broken() + L.break_light_tube() stoplag() /obj/machinery/power/apc/proc/shock(mob/user, prb) @@ -1137,7 +1211,7 @@ s.start() if(isalien(user)) return 0 - if(electrocute_mob(user, src, src)) + if(electrocute_mob(user, src, src, 1, TRUE)) return 1 else return 0 @@ -1150,10 +1224,23 @@ else return 0 + +/obj/machinery/power/apc/proc/energy_fail(duration) + for(var/obj/machinery/M in area.contents) + if(M.critical_machine) + return + for(var/A in ai_list) + var/mob/living/silicon/ai/I = A + if(get_area(I) == area) + return + + failure_timer = max(failure_timer, round(duration)) + + #undef APC_UPDATE_ICON_COOLDOWN /*Power module, used for APC construction*/ /obj/item/weapon/electronics/apc name = "power control module" icon_state = "power_mod" - desc = "Heavy-duty switching circuits for power control." \ No newline at end of file + desc = "Heavy-duty switching circuits for power control." diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index b74449d488..e63214fe07 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -93,10 +93,11 @@ By design, d1 is the smallest direction and d2 is the highest cable_list -= src //remove it from global cable list return ..() // then go ahead and delete the cable -/obj/structure/cable/Deconstruct() - var/turf/T = loc - stored.loc = T - ..() +/obj/structure/cable/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + var/turf/T = loc + stored.forceMove(T) + qdel(src) /////////////////////////////////// // General procedures @@ -105,7 +106,7 @@ By design, d1 is the smallest direction and d2 is the highest //If underfloor, hide the cable /obj/structure/cable/hide(i) - if(level == 1 && istype(loc, /turf)) + if(level == 1 && isturf(loc)) invisibility = i ? INVISIBILITY_MAXIMUM : 0 updateicon() @@ -115,9 +116,6 @@ By design, d1 is the smallest direction and d2 is the highest else icon_state = "[d1]-[d2]" -//Telekinesis has no effect on a cable -/obj/structure/cable/attack_tk(mob/user) - return // Items usable on a cable : // - Wirecutters : cut it duh ! @@ -134,7 +132,7 @@ By design, d1 is the smallest direction and d2 is the highest user.visible_message("[user] cuts the cable.", "You cut the cable.") stored.add_fingerprint(user) investigate_log("was cut by [key_name(usr, usr.client)] in [user.loc.loc]","wires") - Deconstruct() + deconstruct() return else if(istype(W, /obj/item/stack/cable_coil)) @@ -165,21 +163,9 @@ By design, d1 is the smallest direction and d2 is the highest else return 0 -//explosion handling -/obj/structure/cable/ex_act(severity, target) - ..() - if(!qdeleted(src)) - switch(severity) - if(2) - if(prob(50)) - Deconstruct() - if(3) - if(prob(25)) - Deconstruct() - /obj/structure/cable/singularity_pull(S, current_size) if(current_size >= STAGE_FIVE) - Deconstruct() + deconstruct() /obj/structure/cable/proc/cableColor(colorC = "red") cable_color = colorC @@ -201,9 +187,9 @@ By design, d1 is the smallest direction and d2 is the highest if("white") icon = 'icons/obj/power_cond/power_cond_white.dmi' -/obj/structure/cable/proc/update_stored(var/length = 1, var/color = "red") +/obj/structure/cable/proc/update_stored(length = 1, colorC = "red") stored.amount = length - stored.item_color = color + stored.item_color = colorC stored.update_icon() //////////////////////////////////////////// @@ -467,7 +453,7 @@ var/global/list/datum/stack_recipe/cable_coil_recipes = list ( \ item_color = "red" desc = "A coil of insulated power cable." throwforce = 0 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL throw_speed = 3 throw_range = 5 materials = list(MAT_METAL=10, MAT_GLASS=5) @@ -488,9 +474,9 @@ var/global/list/datum/stack_recipe/cable_coil_recipes = list ( \ /obj/item/stack/cable_coil/suicide_act(mob/user) if(locate(/obj/structure/chair/stool) in get_turf(user)) - user.visible_message("[user] is making a noose with the [src.name]! It looks like \he's trying to commit suicide.") + user.visible_message("[user] is making a noose with [src]! It looks like [user.p_theyre()] trying to commit suicide!") else - user.visible_message("[user] is strangling \himself with the [src.name]! It looks like \he's trying to commit suicide.") + user.visible_message("[user] is strangling [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!") return(OXYLOSS) /obj/item/stack/cable_coil/New(loc, amount = MAXCOIL, var/param_color = null) @@ -513,7 +499,7 @@ var/global/list/datum/stack_recipe/cable_coil_recipes = list ( \ return ..() var/obj/item/bodypart/affecting = H.get_bodypart(check_zone(user.zone_selected)) - if(affecting && affecting.status == ORGAN_ROBOTIC) + if(affecting && affecting.status == BODYPART_ROBOTIC) user.visible_message("[user] starts to fix some of the wires in [H]'s [affecting.name].", "You start fixing some of the wires in [H]'s [affecting.name].") if(!do_mob(user, H, 50)) return @@ -615,7 +601,7 @@ var/global/list/datum/stack_recipe/cable_coil_recipes = list ( \ if (C.shock(user, 50)) if (prob(50)) //fail - C.Deconstruct() + C.deconstruct() // called when cable_coil is click on an installed obj/cable // or click on a turf that already contains a "node" cable @@ -680,7 +666,7 @@ var/global/list/datum/stack_recipe/cable_coil_recipes = list ( \ if (NC.shock(user, 50)) if (prob(50)) //fail - NC.Deconstruct() + NC.deconstruct() return @@ -730,7 +716,7 @@ var/global/list/datum/stack_recipe/cable_coil_recipes = list ( \ if (C.shock(user, 50)) if (prob(50)) //fail - C.Deconstruct() + C.deconstruct() return C.denode()// this call may have disconnected some cables that terminated on the centre of the turf, if so split the powernets. diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm index 6d3779e6b3..d62b543afa 100644 --- a/code/modules/power/cell.dm +++ b/code/modules/power/cell.dm @@ -1,7 +1,6 @@ /obj/item/weapon/stock_parts/cell name = "power cell" desc = "A rechargable electrochemical power cell." - var/ratingdesc icon = 'icons/obj/power.dmi' icon_state = "cell" item_state = "cell" @@ -10,33 +9,36 @@ throwforce = 5 throw_speed = 2 throw_range = 5 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL var/charge = 0 // note %age conveted to actual charge in New var/maxcharge = 1000 materials = list(MAT_METAL=700, MAT_GLASS=50) var/rigged = 0 // true if rigged to explode var/chargerate = 100 //how much power is given every tick in a recharger var/self_recharge = 0 //does it self recharge, over time, or not? + var/ratingdesc = TRUE + var/grown_battery = FALSE // If it's a grown that acts as a battery, add a wire overlay to it. /obj/item/weapon/stock_parts/cell/New() ..() START_PROCESSING(SSobj, src) charge = maxcharge - ratingdesc = " This one has a power rating of [maxcharge], and you should not swallow it." - desc = desc + ratingdesc + if(ratingdesc) + desc += " This one has a power rating of [maxcharge], and you should not swallow it." updateicon() /obj/item/weapon/stock_parts/cell/Destroy() STOP_PROCESSING(SSobj, src) return ..() -/obj/item/weapon/stock_parts/cell/on_varedit(modified_var) - if(modified_var == "self_recharge") - if(self_recharge) - START_PROCESSING(SSobj, src) - else - STOP_PROCESSING(SSobj, src) - ..() +/obj/item/weapon/stock_parts/cell/vv_edit_var(var_name, var_value) + switch(var_name) + if("self_recharge") + if(var_value) + START_PROCESSING(SSobj, src) + else + STOP_PROCESSING(SSobj, src) + . = ..() /obj/item/weapon/stock_parts/cell/process() if(self_recharge) @@ -46,6 +48,8 @@ /obj/item/weapon/stock_parts/cell/proc/updateicon() cut_overlays() + if(grown_battery) + add_overlay(image('icons/obj/power.dmi', "grown_wires")) if(charge < 0.01) return else if(charge/maxcharge >=0.995) @@ -87,7 +91,7 @@ user << "The charge meter reads [round(src.percent() )]%." /obj/item/weapon/stock_parts/cell/suicide_act(mob/user) - user.visible_message("[user] is licking the electrodes of the [src.name]! It looks like \he's trying to commit suicide.") + user.visible_message("[user] is licking the electrodes of [src]! It looks like [user.p_theyre()] trying to commit suicide!") return (FIRELOSS) /obj/item/weapon/stock_parts/cell/attackby(obj/item/W, mob/user, params) @@ -146,7 +150,7 @@ corrupt() -/obj/item/weapon/stock_parts/cell/blob_act(obj/effect/blob/B) +/obj/item/weapon/stock_parts/cell/blob_act(obj/structure/blob/B) ex_act(1) /obj/item/weapon/stock_parts/cell/proc/get_electrocute_damage() @@ -264,16 +268,31 @@ /obj/item/weapon/stock_parts/cell/infinite/use() return 1 +/obj/item/weapon/stock_parts/cell/infinite/abductor + name = "void core" + desc = "An alien power cell that produces energy seemingly out of nowhere." + icon = 'icons/obj/abductor.dmi' + icon_state = "cell" + origin_tech = "abductor=5;powerstorage=8;engineering=6" + maxcharge = 50000 + rating = 12 + ratingdesc = FALSE + +/obj/item/weapon/stock_parts/cell/infinite/abductor/update_icon() + return + + /obj/item/weapon/stock_parts/cell/potato name = "potato battery" desc = "A rechargable starch based power cell." - icon = 'icons/obj/power.dmi' //'icons/obj/hydroponics/harvest.dmi' - icon_state = "potato_cell" //"potato_battery" + icon = 'icons/obj/hydroponics/harvest.dmi' + icon_state = "potato" origin_tech = "powerstorage=1;biotech=1" charge = 100 maxcharge = 300 materials = list() rating = 1 + grown_battery = TRUE //it has the overlays for wires /obj/item/weapon/stock_parts/cell/high/slime name = "charged slime core" diff --git a/code/modules/power/generator.dm b/code/modules/power/generator.dm index a1a8505587..7886415c2e 100644 --- a/code/modules/power/generator.dm +++ b/code/modules/power/generator.dm @@ -173,10 +173,6 @@ /obj/machinery/power/generator/interact(mob/user) user.set_machine(src) - - //user << browse(t, "window=teg;size=460x300") - //onclose(user, "teg") - var/datum/browser/popup = new(user, "teg", "Thermo-Electric Generator", 460, 300) popup.set_content(get_menu()) popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) diff --git a/code/modules/power/gravitygenerator.dm b/code/modules/power/gravitygenerator.dm index 79a7990a40..22606cbcd6 100644 --- a/code/modules/power/gravitygenerator.dm +++ b/code/modules/power/gravitygenerator.dm @@ -25,17 +25,22 @@ var/const/GRAV_NEEDS_WRENCH = 3 anchored = 1 density = 1 use_power = 0 - unacidable = 1 + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF var/sprite_number = 0 /obj/machinery/gravity_generator/ex_act(severity, target) if(severity == 1) // Very sturdy. set_broken() -/obj/machinery/gravity_generator/blob_act(obj/effect/blob/B) +/obj/machinery/gravity_generator/blob_act(obj/structure/blob/B) if(prob(20)) set_broken() +/obj/machinery/gravity_generator/tesla_act(power, explosive) + ..() + if(explosive) + qdel(src)//like the singulo, tesla deletes it. stops it from exploding over and over + /obj/machinery/gravity_generator/update_icon() ..() icon_state = "[get_status()]_[sprite_number]" @@ -204,7 +209,7 @@ var/const/GRAV_NEEDS_WRENCH = 3 if(GRAV_NEEDS_PLASTEEL) if(istype(I, /obj/item/stack/sheet/plasteel)) var/obj/item/stack/sheet/plasteel/PS = I - if(PS.amount >= 10) + if(PS.get_amount() >= 10) PS.use(10) user << "You add the plating to the framework." playsound(src.loc, 'sound/machines/click.ogg', 75, 1) diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index 87c8364218..a3e497cb95 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -16,34 +16,38 @@ desc = "Used for building lights." icon = 'icons/obj/lighting.dmi' icon_state = "tube-construct-item" - result_path = /obj/machinery/light_construct + result_path = /obj/structure/light_construct inverse = 1 /obj/item/wallframe/light_fixture/small name = "small light fixture frame" icon_state = "bulb-construct-item" - result_path = /obj/machinery/light_construct/small + result_path = /obj/structure/light_construct/small materials = list(MAT_METAL=MINERAL_MATERIAL_AMOUNT) -/obj/machinery/light_construct +/obj/structure/light_construct name = "light fixture frame" desc = "A light fixture under construction." icon = 'icons/obj/lighting.dmi' icon_state = "tube-construct-stage1" anchored = 1 layer = WALL_OBJ_LAYER + obj_integrity = 200 + max_integrity = 200 + armor = list(melee = 50, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 80, acid = 50) + var/stage = 1 var/fixture_type = "tube" var/sheets_refunded = 2 var/obj/machinery/light/newlight = null -/obj/machinery/light_construct/New(loc, ndir, building) +/obj/structure/light_construct/New(loc, ndir, building) ..() if(building) setDir(ndir) -/obj/machinery/light_construct/examine(mob/user) +/obj/structure/light_construct/examine(mob/user) ..() switch(src.stage) if(1) @@ -53,14 +57,14 @@ if(3) user << "The casing is closed." -/obj/machinery/light_construct/attackby(obj/item/weapon/W, mob/user, params) +/obj/structure/light_construct/attackby(obj/item/weapon/W, mob/user, params) add_fingerprint(user) switch(stage) if(1) if(istype(W, /obj/item/weapon/wrench)) playsound(src.loc, W.usesound, 75, 1) usr << "You begin deconstructing [src]..." - if (!do_after(usr, 30/W.toolspeed, target = src)) + if (!do_after(usr, 30*W.toolspeed, target = src)) return new /obj/item/stack/sheet/metal( get_turf(src.loc), sheets_refunded ) user.visible_message("[user.name] deconstructs [src].", \ @@ -116,13 +120,24 @@ return return ..() +/obj/structure/light_construct/blob_act(obj/structure/blob/B) + if(B && B.loc == loc) + qdel(src) -/obj/machinery/light_construct/small + +/obj/structure/light_construct/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + new /obj/item/stack/sheet/metal(loc, sheets_refunded) + qdel(src) + +/obj/structure/light_construct/small name = "small light fixture frame" icon_state = "bulb-construct-stage1" fixture_type = "bulb" sheets_refunded = 1 + + // the standard tube light fixture /obj/machinery/light name = "light fixture" @@ -132,6 +147,8 @@ desc = "A lighting fixture." anchored = 1 layer = WALL_OBJ_LAYER + obj_integrity = 100 + max_integrity = 100 use_power = 2 idle_power_usage = 2 active_power_usage = 20 @@ -148,7 +165,6 @@ // this is used to calc the probability the light burns out var/rigged = 0 // true if rigged to explode - var/health = 20 // the smaller bulb light fixture @@ -159,12 +175,12 @@ brightness = 4 desc = "A small lighting fixture." light_type = /obj/item/weapon/light/bulb - health = 15 + /obj/machinery/light/Move() if(status != LIGHT_BROKEN) - broken(1) + break_light_tube(1) return ..() /obj/machinery/light/built/New() @@ -186,11 +202,11 @@ if("tube") brightness = 8 if(prob(2)) - broken(1) + break_light_tube(1) if("bulb") brightness = 4 if(prob(5)) - broken(1) + break_light_tube(1) spawn(1) update(0) @@ -222,23 +238,20 @@ update_icon() if(on) - if(!light || light.light_range != brightness) + if(!light || light.luminosity != brightness) switchcount++ if(rigged) if(status == LIGHT_OK && trigger) explode() else if( prob( min(60, switchcount*switchcount*0.01) ) ) - if(status == LIGHT_OK && trigger) - status = LIGHT_BURNED - icon_state = "[base_state]-burned" - on = 0 - set_light(0) + if(trigger) + burn_out() else use_power = 2 - set_light(brightness) + SetLuminosity(brightness) else use_power = 1 - set_light(0) + SetLuminosity(0) active_power_usage = (brightness * 10) if(on != on_gs) @@ -250,6 +263,13 @@ removeStaticPower(static_power_used, STATIC_LIGHT) +/obj/machinery/light/proc/burn_out() + if(status == LIGHT_OK) + status = LIGHT_BURNED + icon_state = "[base_state]-burned" + on = 0 + SetLuminosity(0) + // attempt to set the light's on/off status // will not switch on if broken/burned/empty /obj/machinery/light/proc/seton(s) @@ -311,19 +331,7 @@ playsound(src.loc, W.usesound, 75, 1) user.visible_message("[user.name] opens [src]'s casing.", \ "You open [src]'s casing.", "You hear a noise.") - var/obj/machinery/light_construct/newlight = null - switch(fitting) - if("tube") - newlight = new /obj/machinery/light_construct(src.loc) - newlight.icon_state = "tube-construct-stage2" - - if("bulb") - newlight = new /obj/machinery/light_construct/small(src.loc) - newlight.icon_state = "bulb-construct-stage2" - newlight.setDir(src.dir) - newlight.stage = 2 - transfer_fingerprints_to(newlight) - qdel(src) + deconstruct() else user << "You stick \the [W] into the light socket!" if(has_power() && (W.flags & CONDUCT)) @@ -331,36 +339,64 @@ s.set_up(3, 1, src) s.start() if (prob(75)) - electrocute_mob(user, get_area(src), src, rand(0.7,1.0)) + electrocute_mob(user, get_area(src), src, rand(0.7,1.0), TRUE) else return ..() +/obj/machinery/light/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + var/obj/structure/light_construct/newlight = null + var/cur_stage = 2 + if(!disassembled) + cur_stage = 1 + switch(fitting) + if("tube") + newlight = new /obj/structure/light_construct(src.loc) + newlight.icon_state = "tube-construct-stage[cur_stage]" + + if("bulb") + newlight = new /obj/structure/light_construct/small(src.loc) + newlight.icon_state = "bulb-construct-stage[cur_stage]" + newlight.setDir(src.dir) + newlight.stage = cur_stage + if(!disassembled) + newlight.obj_integrity = newlight.max_integrity * 0.5 + if(status != LIGHT_BROKEN) + break_light_tube() + if(status != LIGHT_EMPTY) + drop_light_tube() + new /obj/item/stack/cable_coil(loc, 1, "red") + transfer_fingerprints_to(newlight) + qdel(src) + /obj/machinery/light/attacked_by(obj/item/I, mob/living/user) ..() if(status == LIGHT_BROKEN || status == LIGHT_EMPTY) if(on && (I.flags & CONDUCT)) if(prob(12)) - electrocute_mob(user, get_area(src), src, 0.3) + electrocute_mob(user, get_area(src), src, 0.3, TRUE) -/obj/machinery/light/take_damage(damage, damage_type = BRUTE, sound_effect = 1) +/obj/machinery/light/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1) + . = ..() + if(. && !qdeleted(src)) + if(prob(damage_amount * 5)) + break_light_tube() + + + + +/obj/machinery/light/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) switch(damage_type) if(BRUTE) - if(sound_effect) - switch(status) - if(LIGHT_EMPTY) - playsound(loc, 'sound/weapons/smash.ogg', 50, 1) - if(LIGHT_BROKEN) - playsound(loc, 'sound/effects/hit_on_shattered_glass.ogg', 90, 1) - else - playsound(loc, 'sound/effects/Glasshit.ogg', 90, 1) + switch(status) + if(LIGHT_EMPTY) + playsound(loc, 'sound/weapons/smash.ogg', 50, 1) + if(LIGHT_BROKEN) + playsound(loc, 'sound/effects/hit_on_shattered_glass.ogg', 90, 1) + else + playsound(loc, 'sound/effects/Glasshit.ogg', 90, 1) if(BURN) - if(sound_effect) - playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) - else - return - health -= damage - if(health <= 0) - broken() + playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) // returns whether this light has power @@ -389,20 +425,6 @@ src.flicker(1) return -/obj/machinery/light/bullet_act(obj/item/projectile/P) - . = ..() - take_damage(P.damage, P.damage_type, 0) - -/obj/machinery/light/hitby(AM as mob|obj) - ..() - var/tforce = 0 - if(ismob(AM)) - tforce = 40 - else if(isobj(AM)) - var/obj/item/I = AM - tforce = I.throwforce - take_damage(tforce) - // attack with hand - remove tube/bulb // if hands aren't protected and the light is on, burn the player @@ -435,14 +457,16 @@ else user << "You try to remove the light [fitting], but you burn your hand on it!" - var/obj/item/bodypart/affecting = H.get_bodypart("[user.hand ? "l" : "r" ]_arm") - if(affecting && affecting.take_damage( 0, 5 )) // 5 burn damage - H.update_damage_overlays(0) - H.updatehealth() + var/obj/item/bodypart/affecting = H.get_bodypart("[(user.active_hand_index % 2 == 0) ? "r" : "l" ]_arm") + if(affecting && affecting.receive_damage( 0, 5 )) // 5 burn damage + H.update_damage_overlays() return // if burned, don't remove the light else user << "You remove the light [fitting]." // create a light tube/bulb item and put it in the user's hand + drop_light_tube(user) + +/obj/machinery/light/proc/drop_light_tube(mob/user) var/obj/item/weapon/light/L = new light_type() L.status = status L.rigged = rigged @@ -453,10 +477,11 @@ switchcount = 0 L.update() - L.add_fingerprint(user) - L.loc = loc + L.forceMove(loc) - user.put_in_active_hand(L) //puts it in our active hand + if(user) //puts it in our active hand + L.add_fingerprint(user) + user.put_in_active_hand(L) status = LIGHT_EMPTY update() @@ -468,26 +493,13 @@ user << "You telekinetically remove the light [fitting]." // create a light tube/bulb item and put it in the user's hand - var/obj/item/weapon/light/L = new light_type() - L.status = status - L.rigged = rigged - L.brightness = brightness + drop_light_tube() - // light item inherits the switchcount, then zero it - L.switchcount = switchcount - switchcount = 0 - - L.update() - L.add_fingerprint(user) - L.loc = loc - - status = LIGHT_EMPTY - update() // break the light and make sparks if was on -/obj/machinery/light/proc/broken(skip_sound_and_sparks = 0) - if(status == LIGHT_EMPTY) +/obj/machinery/light/proc/break_light_tube(skip_sound_and_sparks = 0) + if(status == LIGHT_EMPTY || status == LIGHT_BROKEN) return if(!skip_sound_and_sparks) @@ -508,19 +520,10 @@ on = 1 update() -// explosion effect -// destroy the whole light fixture or just shatter it - -/obj/machinery/light/ex_act(severity, target) - ..() - if(!qdeleted(src)) - switch(severity) - if(2) - if(prob(50)) - broken() - if(3) - if(prob(25)) - broken() +/obj/machinery/light/tesla_act(power, explosive = FALSE) + if(explosive) + explosion(src.loc,0,0,0,flame_range = 5, adminlog = 0) + qdel(src) // called when area power state changes /obj/machinery/light/power_change() @@ -532,14 +535,14 @@ /obj/machinery/light/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) if(prob(max(0, exposed_temperature - 673))) //0% at <400C, 100% at >500C - broken() + break_light_tube() // explode the light /obj/machinery/light/proc/explode() set waitfor = 0 var/turf/T = get_turf(src.loc) - broken() // break it first to give a warning + break_light_tube() // break it first to give a warning sleep(2) explosion(T, 0, 0, 2, 2) sleep(1) @@ -553,11 +556,11 @@ icon = 'icons/obj/lighting.dmi' force = 2 throwforce = 5 - w_class = 1 + w_class = WEIGHT_CLASS_TINY var/status = 0 // LIGHT_OK, LIGHT_BURNED or LIGHT_BROKEN var/base_state var/switchcount = 0 // number of times switched - materials = list(MAT_METAL=60) + materials = list(MAT_GLASS=100) var/rigged = 0 // true if rigged to explode var/brightness = 2 //how much light it gives off @@ -567,7 +570,6 @@ icon_state = "ltube" base_state = "ltube" item_state = "c_tube" - materials = list(MAT_GLASS=100) brightness = 8 /obj/item/weapon/light/bulb @@ -576,7 +578,6 @@ icon_state = "lbulb" base_state = "lbulb" item_state = "contvapour" - materials = list(MAT_GLASS=100) brightness = 4 /obj/item/weapon/light/throw_impact(atom/hit_atom) diff --git a/code/modules/power/monitor.dm b/code/modules/power/monitor.dm index 0b935f8ac5..9627536506 100644 --- a/code/modules/power/monitor.dm +++ b/code/modules/power/monitor.dm @@ -7,7 +7,6 @@ idle_power_usage = 20 active_power_usage = 100 circuit = /obj/item/weapon/circuitboard/computer/powermonitor - light_color = LIGHT_COLOR_ORANGE var/obj/structure/cable/attached @@ -69,9 +68,14 @@ for(var/obj/machinery/power/terminal/term in attached.powernet.nodes) var/obj/machinery/power/apc/A = term.master if(istype(A)) + var/cell_charge + if(!A.cell) + cell_charge = 0 + else + cell_charge = A.cell.percent() data["areas"] += list(list( "name" = A.area.name, - "charge" = A.cell.percent(), + "charge" = cell_charge, "load" = A.lastused_total, "charging" = A.charging, "eqp" = A.equipment, diff --git a/code/modules/power/port_gen.dm b/code/modules/power/port_gen.dm index 02ba3df07e..bb1ed6db66 100644 --- a/code/modules/power/port_gen.dm +++ b/code/modules/power/port_gen.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33 + /* new portable generator - work in progress @@ -271,7 +271,7 @@ display round(lastgen) and plasmatank amount /obj/machinery/power/port_gen/pacman/interact(mob/user) if (get_dist(src, user) > 1 ) - if (!istype(user, /mob/living/silicon/ai)) + if(!isAI(user)) user.unset_machine() user << browse(null, "window=port_gen") return @@ -290,7 +290,7 @@ display round(lastgen) and plasmatank amount dat += text("Power current: [(powernet == null ? "Unconnected" : "[avail()]")]
    ") dat += text("Heat: [current_heat]
    ") dat += "
    Close" - user << browse("[dat]", "window=port_gen") + user << browse(dat, "window=port_gen") onclose(user, "port_gen") /obj/machinery/power/port_gen/pacman/Topic(href, href_list) @@ -332,8 +332,9 @@ display round(lastgen) and plasmatank amount power_gen = 15000 time_per_sheet = 85 board_path = /obj/item/weapon/circuitboard/machine/pacman/super - overheat() - explosion(src.loc, 3, 3, 3, -1) + +/obj/machinery/power/port_gen/pacman/super/overheat() + explosion(src.loc, 3, 3, 3, -1) /obj/machinery/power/port_gen/pacman/mrs name = "\improper M.R.S.P.A.C.M.A.N.-type portable generator" @@ -342,5 +343,6 @@ display round(lastgen) and plasmatank amount power_gen = 40000 time_per_sheet = 80 board_path = /obj/item/weapon/circuitboard/machine/pacman/mrs - overheat() - explosion(src.loc, 4, 4, 4, -1) + +/obj/machinery/power/port_gen/pacman/mrs/overheat() + explosion(src.loc, 4, 4, 4, -1) diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm index cc968ac2b0..350233ecd3 100644 --- a/code/modules/power/power.dm +++ b/code/modules/power/power.dm @@ -86,18 +86,9 @@ // can override if needed if(powered(power_channel)) stat &= ~NOPOWER - - if(!use_auto_lights) - return - set_light(light_range_on, light_power_on) - else stat |= NOPOWER - - if(!use_auto_lights) - return - set_light(0) return // connect the machine to a powernet if a node cable is present on the turf @@ -126,7 +117,7 @@ if(istype(W, /obj/item/stack/cable_coil)) var/obj/item/stack/cable_coil/coil = W var/turf/T = user.loc - if(T.intact || !istype(T, /turf/open/floor)) + if(T.intact || !isfloorturf(T)) return if(get_dist(src, user) > 1) return @@ -284,11 +275,16 @@ //M is a mob who touched wire/whatever //power_source is a source of electricity, can be powercell, area, apc, cable, powernet or null //source is an object caused electrocuting (airlock, grille, etc) +//siemens_coeff - layman's terms, conductivity +//dist_check - set to only shock mobs within 1 of source (vendors, airlocks, etc.) //No animations will be performed by this proc. -/proc/electrocute_mob(mob/living/carbon/M, power_source, obj/source, siemens_coeff = 1) +/proc/electrocute_mob(mob/living/carbon/M, power_source, obj/source, siemens_coeff = 1, dist_check = FALSE) if(istype(M.loc,/obj/mecha)) return 0 //feckin mechs are dumb - if(istype(M,/mob/living/carbon/human)) + if(dist_check) + if(!in_range(source,M)) + return 0 + if(ishuman(M)) var/mob/living/carbon/human/H = M if(H.gloves) var/obj/item/clothing/gloves/G = H.gloves diff --git a/code/modules/power/rtg.dm b/code/modules/power/rtg.dm new file mode 100644 index 0000000000..5d920097be --- /dev/null +++ b/code/modules/power/rtg.dm @@ -0,0 +1,150 @@ +// Radioisotope Thermoelectric Generator (RTG) +// Simple power generator that would replace "magic SMES" on various derelicts. + +/obj/machinery/power/rtg + name = "radioisotope thermoelectric generator" + desc = "A simple nuclear power generator, used in small outposts to reliably provide power for decades." + icon = 'icons/obj/power.dmi' + icon_state = "rtg" + density = 1 + anchored = 1 + use_power = 0 + + // You can buckle someone to RTG, then open its panel. Fun stuff. + can_buckle = TRUE + buckle_lying = FALSE + buckle_requires_restraints = TRUE + + var/power_gen = 1000 // Enough to power a single APC. 4000 output with T4 capacitor. + var/board_path = /obj/item/weapon/circuitboard/machine/rtg + var/irradiate = TRUE // RTGs irradiate surroundings, but only when panel is open. + +/obj/machinery/power/rtg/New() + ..() + var/obj/item/weapon/circuitboard/machine/B = new board_path(null) + B.apply_default_parts(src) + connect_to_network() + +/obj/item/weapon/circuitboard/machine/rtg + name = "circuit board (RTG)" + build_path = /obj/machinery/power/rtg + origin_tech = "programming=2;materials=4;powerstorage=3;engineering=2" + req_components = list( + /obj/item/stack/cable_coil = 5, + /obj/item/weapon/stock_parts/capacitor = 1, + /obj/item/stack/sheet/mineral/uranium = 10) // We have no Pu-238, and this is the closest thing to it. + +/obj/machinery/power/rtg/initialize() + ..() + connect_to_network() + +/obj/machinery/power/rtg/process() + ..() + add_avail(power_gen) + if(panel_open && irradiate) + radiation_pulse(get_turf(src), 2, 3, 6) // Weak but noticeable. + +/obj/machinery/power/rtg/RefreshParts() + var/part_level = 0 + for(var/obj/item/weapon/stock_parts/SP in component_parts) + part_level += SP.rating + + power_gen = initial(power_gen) * part_level + +/obj/machinery/power/rtg/attackby(obj/item/I, mob/user, params) + if(exchange_parts(user, I)) + return + else if(default_deconstruction_screwdriver(user, "[initial(icon_state)]-open", initial(icon_state), I)) + return + else if(default_deconstruction_crowbar(I)) + return + return ..() + +/obj/machinery/power/rtg/attack_hand(mob/user) + if(can_buckle && isliving(user.pulling) && user.a_intent == INTENT_GRAB && !has_buckled_mobs()) + var/mob/living/L = user.pulling + if(L.buckled) + return + L.loc = src.loc + user_buckle_mob(L, user) + else + ..() + + +/obj/machinery/power/rtg/advanced + desc = "An advanced RTG capable of moderating isotope decay, increasing power output but reducing lifetime. It uses plasma-fueled radiation collectors to increase output even further." + power_gen = 1250 // 2500 on T1, 10000 on T4. + board_path = /obj/item/weapon/circuitboard/machine/rtg/advanced + +/obj/item/weapon/circuitboard/machine/rtg/advanced + name = "circuit board (Advanced RTG)" + build_path = /obj/machinery/power/rtg/advanced + origin_tech = "programming=3;materials=5;powerstorage=4;engineering=3;plasmatech=3" + req_components = list( + /obj/item/stack/cable_coil = 5, + /obj/item/weapon/stock_parts/capacitor = 1, + /obj/item/weapon/stock_parts/micro_laser = 1, + /obj/item/stack/sheet/mineral/uranium = 10, + /obj/item/stack/sheet/mineral/plasma = 5) + + + +// Void Core, power source for Abductor ships and bases. +// Provides a lot of power, but tends to explode when mistreated. + +/obj/machinery/power/rtg/abductor + name = "Void Core" + icon = 'icons/obj/abductor.dmi' + icon_state = "core" + desc = "An alien power source that produces energy seemingly out of nowhere." + board_path = /obj/item/weapon/circuitboard/machine/abductor/core + power_gen = 20000 // 280 000 at T1, 400 000 at T4. Starts at T4. + irradiate = FALSE // Green energy! + can_buckle = FALSE + pixel_y = 7 + var/going_kaboom = FALSE // Is it about to explode? + +/obj/item/weapon/circuitboard/machine/abductor/core + name = "alien board (Void Core)" + build_path = /obj/machinery/power/rtg/abductor + origin_tech = "programming=5;abductor=5;powerstorage=8;engineering=8" + req_components = list( + /obj/item/weapon/stock_parts/capacitor = 1, + /obj/item/weapon/stock_parts/micro_laser = 1, + /obj/item/weapon/stock_parts/cell/infinite/abductor = 1) + def_components = list( + /obj/item/weapon/stock_parts/capacitor = /obj/item/weapon/stock_parts/capacitor/quadratic, + /obj/item/weapon/stock_parts/micro_laser = /obj/item/weapon/stock_parts/micro_laser/quadultra) + +/obj/machinery/power/rtg/abductor/proc/overload() + if(going_kaboom) + return + going_kaboom = TRUE + visible_message("\The [src] lets out an shower of sparks as it starts to lose stability!",\ + "You hear a loud electrical crack!") + playsound(src.loc, 'sound/magic/LightningShock.ogg', 100, 1, extrarange = 5) + tesla_zap(src, 5, power_gen * 0.05) + addtimer(GLOBAL_PROC, "explosion", 100, TIMER_NORMAL, get_turf(src), 2, 3, 4, 8) // Not a normal explosion. + +/obj/machinery/power/rtg/abductor/bullet_act(obj/item/projectile/Proj) + ..() + if(!going_kaboom && istype(Proj) && !Proj.nodamage && ((Proj.damage_type == BURN) || (Proj.damage_type == BRUTE))) + message_admins("[key_name_admin(Proj.firer)] triggered an Abductor Core explosion via projectile.") + log_game("[key_name(Proj.firer)] triggered an Abductor Core explosion via projectile.") + overload() + +/obj/machinery/power/rtg/abductor/blob_act(obj/structure/blob/B) + overload() + +/obj/machinery/power/rtg/abductor/ex_act() + if(going_kaboom) + qdel(src) + else + overload() + +/obj/machinery/power/rtg/abductor/fire_act(exposed_temperature, exposed_volume) + overload() + +/obj/machinery/power/rtg/abductor/tesla_act() + ..() //extend the zap + overload() diff --git a/code/modules/power/singularity/collector.dm b/code/modules/power/singularity/collector.dm index f9f611dd65..8d5bb1c5b7 100644 --- a/code/modules/power/singularity/collector.dm +++ b/code/modules/power/singularity/collector.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33 + var/global/list/rad_collectors = list() /obj/machinery/power/rad_collector @@ -10,6 +10,9 @@ var/global/list/rad_collectors = list() density = 1 req_access = list(access_engine_equip) // use_power = 0 + obj_integrity = 350 + max_integrity = 350 + integrity_failure = 80 var/obj/item/weapon/tank/internals/plasma/loaded_tank = null var/last_power = 0 var/active = 0 @@ -78,14 +81,14 @@ var/global/list/rad_collectors = list() user << "Remove the plasma tank first!" return 1 if(!anchored && !isinspace()) - playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1) + playsound(src.loc, W.usesound, 75, 1) anchored = 1 user.visible_message("[user.name] secures the [src.name].", \ "You secure the external bolts.", \ "You hear a ratchet.") connect_to_network() else if(anchored) - playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1) + playsound(src.loc, W.usesound, 75, 1) anchored = 0 user.visible_message("[user.name] unsecures the [src.name].", \ "You unsecure the external bolts.", \ @@ -105,12 +108,10 @@ var/global/list/rad_collectors = list() return ..() -/obj/machinery/power/rad_collector/ex_act(severity, target) - switch(severity) - if(2, 3) - eject() - return ..() - +/obj/machinery/power/rad_collector/obj_break(damage_flag) + if(!(stat & BROKEN) && !(flags & NODECONSTRUCT)) + eject() + stat |= BROKEN /obj/machinery/power/rad_collector/proc/eject() locked = 0 @@ -119,6 +120,7 @@ var/global/list/rad_collectors = list() return Z.loc = get_turf(src) Z.layer = initial(Z.layer) + Z.plane = initial(Z.plane) src.loaded_tank = null if(active) toggle_power() @@ -155,4 +157,3 @@ var/global/list/rad_collectors = list() flick("ca_deactive", src) update_icons() return - diff --git a/code/modules/power/singularity/containment_field.dm b/code/modules/power/singularity/containment_field.dm index 46ac2a8fda..297a38b978 100644 --- a/code/modules/power/singularity/containment_field.dm +++ b/code/modules/power/singularity/containment_field.dm @@ -1,13 +1,13 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33 + /obj/machinery/field/containment - name = "Containment Field" + name = "containment field" desc = "An energy field." icon = 'icons/obj/singularity.dmi' icon_state = "Contain_F" anchored = 1 density = 0 - unacidable = 1 + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF use_power = 0 luminosity = 4 layer = ABOVE_OBJ_LAYER @@ -26,14 +26,33 @@ shock(user) return 1 +/obj/machinery/field/containment/attackby(obj/item/W, mob/user, params) + shock(user) + return 1 -/obj/machinery/field/containment/blob_act(obj/effect/blob/B) +/obj/machinery/field/containment/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) + switch(damage_type) + if(BURN) + playsound(loc, 'sound/effects/EMPulse.ogg', 75, 1) + if(BRUTE) + playsound(loc, 'sound/effects/EMPulse.ogg', 75, 1) + +/obj/machinery/field/containment/blob_act(obj/structure/blob/B) return 0 - /obj/machinery/field/containment/ex_act(severity, target) return 0 +/obj/machinery/field/containment/attack_animal(mob/living/simple_animal/M) + if(!FG1 || !FG2) + qdel(src) + return + if(ismegafauna(M)) + M.visible_message("[M] glows fiercely as the containment field flickers out!") + FG1.calc_power(INFINITY) //rip that 'containment' field + M.adjustHealth(-M.obj_damage) + else + ..() /obj/machinery/field/containment/Crossed(mob/mover) if(isliving(mover)) @@ -59,6 +78,8 @@ /obj/machinery/field/containment/Move() qdel(src) + + // Abstract Field Class // Used for overriding certain procs @@ -77,26 +98,23 @@ return ..() /obj/machinery/field/proc/shock(mob/living/user) - if(isliving(user)) - var/shock_damage = min(rand(30,40),rand(30,40)) + var/shock_damage = min(rand(30,40),rand(30,40)) - if(iscarbon(user)) - var/stun = min(shock_damage, 15) - user.Stun(stun) - user.Weaken(10) - user.electrocute_act(shock_damage, src, 1) + if(iscarbon(user)) + user.Stun(15) + user.Weaken(10) + user.electrocute_act(shock_damage, src, 1) - else if(issilicon(user)) - if(prob(20)) - user.Stun(2) - user.take_overall_damage(0, shock_damage) - user.visible_message("[user.name] was shocked by the [src.name]!", \ - "Energy pulse detected, system damaged!", \ - "You hear an electrical crack.") + else if(issilicon(user)) + if(prob(20)) + user.Stun(2) + user.take_overall_damage(0, shock_damage) + user.visible_message("[user.name] was shocked by the [src.name]!", \ + "Energy pulse detected, system damaged!", \ + "You hear an electrical crack.") - user.updatehealth() - bump_field(user) - return + user.updatehealth() + bump_field(user) /obj/machinery/field/proc/clear_shock() hasShocked = 0 diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm index 6f43f1370a..f45c41f08f 100644 --- a/code/modules/power/singularity/emitter.dm +++ b/code/modules/power/singularity/emitter.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33 + /obj/machinery/power/emitter name = "Emitter" @@ -126,6 +126,16 @@ user << "The [src] needs to be firmly secured to the floor first!" return 1 +/obj/machinery/power/emitter/attack_animal(mob/living/simple_animal/M) + if(ismegafauna(M)) + state = 0 + anchored = FALSE + M.visible_message("[M] rips [src] free from its moorings!") + else + ..() + if(!anchored) + step(src, get_dir(M, src)) + /obj/machinery/power/emitter/emp_act(severity)//Emitters are hardened but still might have issues // add_load(1000) @@ -205,14 +215,14 @@ if(0) if(isinspace()) return state = 1 - playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1) + playsound(src.loc, W.usesound, 75, 1) user.visible_message("[user.name] secures [src.name] to the floor.", \ "You secure the external reinforcing bolts to the floor.", \ "You hear a ratchet") src.anchored = 1 if(1) state = 0 - playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1) + playsound(src.loc, W.usesound, 75, 1) user.visible_message("[user.name] unsecures [src.name] reinforcing bolts from the floor.", \ "You undo the external reinforcing bolts.", \ "You hear a ratchet.") @@ -235,7 +245,7 @@ user.visible_message("[user.name] starts to weld the [src.name] to the floor.", \ "You start to weld \the [src] to the floor...", \ "You hear welding.") - if (do_after(user,20/W.toolspeed, target = src)) + if (do_after(user,20*W.toolspeed, target = src)) if(!src || !WT.isOn()) return state = 2 user << "You weld \the [src] to the floor." @@ -246,7 +256,7 @@ user.visible_message("[user.name] starts to cut the [src.name] free from the floor.", \ "You start to cut \the [src] free from the floor...", \ "You hear welding.") - if (do_after(user,20/W.toolspeed, target = src)) + if (do_after(user,20*W.toolspeed, target = src)) if(!src || !WT.isOn()) return state = 1 user << "You cut \the [src] free from the floor." diff --git a/code/modules/power/singularity/field_generator.dm b/code/modules/power/singularity/field_generator.dm index a6d42f9bd3..a71c5913af 100644 --- a/code/modules/power/singularity/field_generator.dm +++ b/code/modules/power/singularity/field_generator.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33 + /* @@ -23,13 +23,17 @@ field_generator power level display #define FG_ONLINE 2 /obj/machinery/field/generator - name = "Field Generator" + name = "field generator" desc = "A large thermal battery that projects a high amount of energy when powered." icon = 'icons/obj/machines/field_generator.dmi' icon_state = "Field_Gen" anchored = 0 density = 1 use_power = 0 + obj_integrity = 500 + max_integrity = 500 + //100% immune to lasers and energy projectiles since it absorbs their energy. + armor = list(melee = 25, bullet = 10, laser = 100, energy = 100, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 70) var/const/num_power_levels = 6 // Total number of power level icon has var/power_level = 0 var/active = FG_OFFLINE @@ -87,14 +91,14 @@ field_generator power level display if(FG_UNSECURED) if(isinspace()) return state = FG_SECURED - playsound(loc, 'sound/items/Ratchet.ogg', 75, 1) + playsound(loc, W.usesound, 75, 1) user.visible_message("[user.name] secures [name] to the floor.", \ "You secure the external reinforcing bolts to the floor.", \ "You hear ratchet.") anchored = 1 if(FG_SECURED) state = FG_UNSECURED - playsound(loc, 'sound/items/Ratchet.ogg', 75, 1) + playsound(loc, W.usesound, 75, 1) user.visible_message("[user.name] unsecures [name] reinforcing bolts from the floor.", \ "You undo the external reinforcing bolts.", \ "You hear ratchet.") @@ -114,7 +118,7 @@ field_generator power level display user.visible_message("[user.name] starts to weld the [name] to the floor.", \ "You start to weld \the [src] to the floor...", \ "You hear welding.") - if (do_after(user,20/W.toolspeed, target = src)) + if (do_after(user,20*W.toolspeed, target = src)) if(!src || !WT.isOn()) return state = FG_WELDED user << "You weld the field generator to the floor." @@ -125,7 +129,7 @@ field_generator power level display user.visible_message("[user.name] starts to cut the [name] free from the floor.", \ "You start to cut \the [src] free from the floor...", \ "You hear welding.") - if (do_after(user,20/W.toolspeed, target = src)) + if (do_after(user,20*W.toolspeed, target = src)) if(!src || !WT.isOn()) return state = FG_SECURED user << "You cut \the [src] free from the floor." @@ -133,12 +137,21 @@ field_generator power level display else return ..() +/obj/machinery/field/generator/attack_animal(mob/living/simple_animal/M) + if(M.environment_smash >= 3 && active == FG_OFFLINE && state != FG_UNSECURED) + state = FG_UNSECURED + anchored = FALSE + M.visible_message("[M] rips [src] free from its moorings!") + else + ..() + if(!anchored) + step(src, get_dir(M, src)) /obj/machinery/field/generator/emp_act() return 0 -/obj/machinery/field/generator/blob_act(obj/effect/blob/B) +/obj/machinery/field/generator/blob_act(obj/structure/blob/B) if(active) return 0 else @@ -148,7 +161,7 @@ field_generator power level display if(Proj.flag != "bullet") power = min(power + Proj.damage, field_generator_max_power) check_power_level() - return 0 + ..() /obj/machinery/field/generator/Destroy() @@ -182,8 +195,10 @@ field_generator power level display start_fields() -/obj/machinery/field/generator/proc/calc_power() +/obj/machinery/field/generator/proc/calc_power(set_power_draw) var/power_draw = 2 + fields.len + if(set_power_draw) + power_draw = set_power_draw if(draw_power(round(power_draw/2,1))) check_power_level() diff --git a/code/modules/power/singularity/generator.dm b/code/modules/power/singularity/generator.dm index 01ab3d0022..be271b402b 100644 --- a/code/modules/power/singularity/generator.dm +++ b/code/modules/power/singularity/generator.dm @@ -1,5 +1,5 @@ /////SINGULARITY SPAWNER -/obj/machinery/the_singularitygen/ +/obj/machinery/the_singularitygen name = "Gravitational Singularity Generator" desc = "An Odd Device which produces a Gravitational Singularity when set up." icon = 'icons/obj/singularity.dmi' @@ -7,6 +7,7 @@ anchored = 0 density = 1 use_power = 0 + resistance_flags = FIRE_PROOF var/energy = 0 var/creation_type = /obj/singularity @@ -25,13 +26,13 @@ user.visible_message("[user.name] secures [src.name] to the floor.", \ "You secure the [src.name] to the floor.", \ "You hear a ratchet.") - playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1) + playsound(src.loc, W.usesound, 75, 1) anchored = 1 else if(anchored) user.visible_message("[user.name] unsecures [src.name] from the floor.", \ "You unsecure the [src.name] from the floor.", \ "You hear a ratchet.") - playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1) + playsound(src.loc, W.usesound, 75, 1) anchored = 0 else return ..() diff --git a/code/modules/power/singularity/narsie.dm b/code/modules/power/singularity/narsie.dm index d57d136d73..3a19ec72b1 100644 --- a/code/modules/power/singularity/narsie.dm +++ b/code/modules/power/singularity/narsie.dm @@ -25,8 +25,8 @@ /obj/singularity/narsie/large/New() ..() - world << "NAR-SIE HAS RISEN" - world << pick('sound/hallucinations/im_here1.ogg', 'sound/hallucinations/im_here2.ogg') + send_to_playing_players("NAR-SIE HAS RISEN") + send_to_playing_players(pick('sound/hallucinations/im_here1.ogg', 'sound/hallucinations/im_here2.ogg')) var/area/A = get_area(src) if(A) @@ -36,7 +36,7 @@ narsie_spawn_animation() sleep(70) - SSshuttle.emergency.request(null, 0.3) // Cannot recall + SSshuttle.emergency.request(null, 0.1) // Cannot recall /obj/singularity/narsie/large/attack_ghost(mob/dead/observer/user as mob) @@ -50,7 +50,7 @@ eat() if(!target || prob(5)) pickcultist() - if(istype(target, /obj/structure/clockwork/massive/ratvar)) + if(istype(target, /obj/structure/destructible/clockwork/massive/ratvar)) move(get_dir(src, target)) //Oh, it's you again. else move() @@ -86,7 +86,7 @@ /obj/singularity/narsie/proc/pickcultist() //Narsie rewards her cultists with being devoured first, then picks a ghost to follow. var/list/cultists = list() var/list/noncultists = list() - for(var/obj/structure/clockwork/massive/ratvar/enemy in poi_list) //Prioritize killing Ratvar + for(var/obj/structure/destructible/clockwork/massive/ratvar/enemy in poi_list) //Prioritize killing Ratvar if(enemy.z != z) continue acquire(enemy) diff --git a/code/modules/power/singularity/particle_accelerator/particle.dm b/code/modules/power/singularity/particle_accelerator/particle.dm index 66fe421b10..7fc95659aa 100644 --- a/code/modules/power/singularity/particle_accelerator/particle.dm +++ b/code/modules/power/singularity/particle_accelerator/particle.dm @@ -4,9 +4,10 @@ icon = 'icons/obj/machines/particle_accelerator.dmi' icon_state = "particle" anchored = 1 - density = 1 + density = 0 var/movement_range = 10 var/energy = 10 + var/speed = 1 /obj/effect/accelerated_particle/weak movement_range = 8 @@ -21,24 +22,27 @@ energy = 50 -/obj/effect/accelerated_particle/New(loc, dir = 2) - src.setDir(dir) +/obj/effect/accelerated_particle/New(loc) + ..() - spawn(0) - move(1) + addtimer(src, "move", 1) /obj/effect/accelerated_particle/Bump(atom/A) - if (A) - if(ismob(A)) + if(A) + if(isliving(A)) toxmob(A) - if((istype(A,/obj/machinery/the_singularitygen))||(istype(A,/obj/singularity/))) - A:energy += energy + else if(istype(A, /obj/machinery/the_singularitygen)) + var/obj/machinery/the_singularitygen/S = A + S.energy += energy + else if(istype(A, /obj/singularity)) + var/obj/singularity/S = A + S.energy += energy -/obj/effect/accelerated_particle/Bumped(atom/A) - if(ismob(A)) - Bump(A) +/obj/effect/accelerated_particle/Crossed(atom/A) + if(isliving(A)) + toxmob(A) /obj/effect/accelerated_particle/ex_act(severity, target) @@ -46,15 +50,13 @@ /obj/effect/accelerated_particle/proc/toxmob(mob/living/M) M.rad_act(energy*6) - M.updatehealth() - -/obj/effect/accelerated_particle/proc/move(lag) +/obj/effect/accelerated_particle/proc/move() if(!step(src,dir)) - loc = get_step(src,dir) + forceMove(get_step(src,dir)) movement_range-- if(movement_range == 0) qdel(src) else - sleep(lag) - move(lag) + sleep(speed) + move() diff --git a/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm b/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm index 977b19f98c..3999ced938 100644 --- a/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm +++ b/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm @@ -26,6 +26,10 @@ icon_state = "none" anchored = 0 density = 1 + obj_integrity = 500 + max_integrity = 500 + armor = list(melee = 30, bullet = 20, laser = 20, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 90, acid = 80) + var/obj/machinery/particle_accelerator/control_box/master = null var/construction_state = PA_CONSTRUCTION_UNSECURED var/reference = null @@ -95,7 +99,7 @@ switch(construction_state) if(PA_CONSTRUCTION_UNSECURED) if(istype(W, /obj/item/weapon/wrench) && !isinspace()) - playsound(loc, 'sound/items/Ratchet.ogg', 75, 1) + playsound(loc, W.usesound, 75, 1) anchored = 1 user.visible_message("[user.name] secures the [name] to the floor.", \ "You secure the external bolts.") @@ -103,7 +107,7 @@ did_something = TRUE if(PA_CONSTRUCTION_UNWIRED) if(istype(W, /obj/item/weapon/wrench)) - playsound(loc, 'sound/items/Ratchet.ogg', 75, 1) + playsound(loc, W.usesound, 75, 1) anchored = 0 user.visible_message("[user.name] detaches the [name] from the floor.", \ "You remove the external bolts.") @@ -143,16 +147,17 @@ return ..() +/obj/structure/particle_accelerator/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + new /obj/item/stack/sheet/metal (loc, 5) + qdel(src) + /obj/structure/particle_accelerator/Move() ..() if(master && master.active) master.toggle_power() investigate_log("was moved whilst active; it powered down.","singulo") -/obj/structure/particle_accelerator/blob_act(obj/effect/blob/B) - if(prob(50)) - qdel(src) - /obj/structure/particle_accelerator/update_icon() switch(construction_state) @@ -165,7 +170,6 @@ icon_state="[reference]p[strength]" else icon_state="[reference]c" - return /obj/structure/particle_accelerator/proc/update_state() if(master) diff --git a/code/modules/power/singularity/particle_accelerator/particle_control.dm b/code/modules/power/singularity/particle_accelerator/particle_control.dm index 2e2b5001ea..67db06193f 100644 --- a/code/modules/power/singularity/particle_accelerator/particle_control.dm +++ b/code/modules/power/singularity/particle_accelerator/particle_control.dm @@ -1,5 +1,3 @@ - - /obj/machinery/particle_accelerator/control_box name = "Particle Accelerator Control Console" desc = "This controls the density of the particles." @@ -161,6 +159,7 @@ var/turf/T = loc assembled = 0 + critical_machine = FALSE var/obj/structure/particle_accelerator/fuel_chamber/F = locate() in orange(1,src) if(!F) @@ -191,6 +190,7 @@ return 0 assembled = 1 + critical_machine = TRUE //Only counts if the PA is actually assembled. return 1 /obj/machinery/particle_accelerator/control_box/proc/check_part(turf/T, type) @@ -204,7 +204,7 @@ /obj/machinery/particle_accelerator/control_box/proc/toggle_power() active = !active - investigate_log("turned [active?"ON":"OFF"] by [usr ? key_name(usr) : "outside forces"]","singulo") + investigate_log("turned [active?"ON":"OFF"] by [usr ? key_name(usr) : "outside forces"]","singulo") message_admins("PA Control Computer turned [active ?"ON":"OFF"] by [usr ? key_name_admin(usr) : "outside forces"](?) (FLW) in ([x],[y],[z] - JMP)",0,1) log_game("PA Control Computer turned [active ?"ON":"OFF"] by [usr ? "[key_name(usr)]" : "outside forces"] in ([x],[y],[z])") if(active) @@ -226,7 +226,7 @@ /obj/machinery/particle_accelerator/control_box/interact(mob/user) if((get_dist(src, user) > 1) || (stat & (BROKEN|NOPOWER))) - if(!istype(user, /mob/living/silicon)) + if(!issilicon(user)) user.unset_machine() user << browse(null, "window=pacontrol") return @@ -249,8 +249,6 @@ dat += "Particle Strength: [strength] " dat += "--|++

    " - //user << browse(dat, "window=pacontrol;size=420x500") - //onclose(user, "pacontrol") var/datum/browser/popup = new(user, "pacontrol", name, 420, 300) popup.set_content(dat) popup.set_title_image(user.browse_rsc_icon(icon, icon_state)) @@ -273,7 +271,7 @@ switch(construction_state) if(PA_CONSTRUCTION_UNSECURED) if(istype(W, /obj/item/weapon/wrench) && !isinspace()) - playsound(loc, 'sound/items/Ratchet.ogg', 75, 1) + playsound(loc, W.usesound, 75, 1) anchored = 1 user.visible_message("[user.name] secures the [name] to the floor.", \ "You secure the external bolts.") @@ -281,7 +279,7 @@ did_something = TRUE if(PA_CONSTRUCTION_UNWIRED) if(istype(W, /obj/item/weapon/wrench)) - playsound(loc, 'sound/items/Ratchet.ogg', 75, 1) + playsound(loc, W.usesound, 75, 1) anchored = 0 user.visible_message("[user.name] detaches the [name] from the floor.", \ "You remove the external bolts.") @@ -320,7 +318,7 @@ ..() -/obj/machinery/particle_accelerator/control_box/blob_act(obj/effect/blob/B) +/obj/machinery/particle_accelerator/control_box/blob_act(obj/structure/blob/B) if(prob(50)) qdel(src) diff --git a/code/modules/power/singularity/particle_accelerator/particle_emitter.dm b/code/modules/power/singularity/particle_accelerator/particle_emitter.dm index 8c0f3bfcaa..f9edf59368 100644 --- a/code/modules/power/singularity/particle_accelerator/particle_emitter.dm +++ b/code/modules/power/singularity/particle_accelerator/particle_emitter.dm @@ -27,15 +27,17 @@ /obj/structure/particle_accelerator/particle_emitter/proc/emit_particle(strength = 0) if((last_shot + fire_delay) <= world.time) last_shot = world.time - var/turf/T = get_step(src,dir) + var/turf/T = get_turf(src) + var/obj/effect/accelerated_particle/P switch(strength) if(0) - new/obj/effect/accelerated_particle/weak(T, dir) + P = new/obj/effect/accelerated_particle/weak(T) if(1) - new/obj/effect/accelerated_particle(T, dir) + P = new/obj/effect/accelerated_particle(T) if(2) - new/obj/effect/accelerated_particle/strong(T, dir) + P = new/obj/effect/accelerated_particle/strong(T) if(3) - new/obj/effect/accelerated_particle/powerful(T, dir) + P = new/obj/effect/accelerated_particle/powerful(T) + P.setDir(dir) return 1 return 0 diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm index f89e265699..29ce8dc79d 100644 --- a/code/modules/power/singularity/singularity.dm +++ b/code/modules/power/singularity/singularity.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33 + /obj/singularity name = "gravitational singularity" @@ -9,7 +9,7 @@ density = 1 layer = MASSIVE_OBJ_LAYER luminosity = 6 - unacidable = 1 //Don't comment this out. + appearance_flags = 0 var/current_size = 1 var/allowed_size = 1 var/contained = 1 //Are we going to move around? @@ -26,7 +26,7 @@ var/last_failed_movement = 0//Will not move in the same dir if it couldnt before, will help with the getting stuck on fields thing var/last_warning var/consumedSupermatter = 0 //If the singularity has eaten a supermatter shard and can go to stage six - burn_state = LAVA_PROOF + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF /obj/singularity/New(loc, var/starting_energy = 50, var/temp = 0) //CARN: admin-alert for chuckle-fuckery. @@ -60,10 +60,23 @@ consume(user) return 1 +/obj/singularity/attack_paw(mob/user) + consume(user) + +/obj/singularity/attack_alien(mob/user) + consume(user) + +/obj/singularity/attack_animal(mob/user) + consume(user) + +/obj/singularity/attackby(obj/item/weapon/W, mob/user, params) + consume(user) + return 1 + /obj/singularity/Process_Spacemove() //The singularity stops drifting for no man! return 0 -/obj/singularity/blob_act(obj/effect/blob/B) +/obj/singularity/blob_act(obj/structure/blob/B) return /obj/singularity/ex_act(severity, target) @@ -237,7 +250,7 @@ /obj/singularity/proc/eat() set background = BACKGROUND_ENABLED - for(var/tile in spiral_range_turfs(grav_pull, src, 1)) + for(var/tile in spiral_range_turfs(grav_pull, src)) var/turf/T = tile if(!T || !isturf(loc)) continue @@ -246,7 +259,7 @@ else consume(T) for(var/thing in T) - if(isturf(loc)) + if(isturf(loc) && thing != src) var/atom/movable/X = thing if(get_dist(X, src) > consume_range) X.singularity_pull(src, current_size) @@ -391,11 +404,11 @@ /obj/singularity/proc/mezzer() for(var/mob/living/carbon/M in oviewers(8, src)) - if(istype(M, /mob/living/carbon/brain)) //Ignore brains + if(istype(M, /mob/living/brain)) //Ignore brains continue if(M.stat == CONSCIOUS) - if (istype(M,/mob/living/carbon/human)) + if (ishuman(M)) var/mob/living/carbon/human/H = M if(istype(H.glasses, /obj/item/clothing/glasses/meson)) var/obj/item/clothing/glasses/meson/MS = H.glasses @@ -415,11 +428,9 @@ /obj/singularity/proc/pulse() - for(var/obj/machinery/power/rad_collector/R in rad_collectors) - if(get_dist(R, src) <= 15) // Better than using orange() every process + if(R.z == z && get_dist(R, src) <= 15) // Better than using orange() every process R.receive_pulse(energy) - return /obj/singularity/singularity_act() var/gain = (energy/2) diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index 2fa1e2e1c6..56cb45b755 100644 --- a/code/modules/power/smes.dm +++ b/code/modules/power/smes.dm @@ -135,16 +135,18 @@ var/obj/item/stack/cable_coil/C = I - if(C.amount < 10) + if(C.get_amount() < 10) user << "You need more wires!" return user << "You start building the power terminal..." playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) - if(do_after(user, 20, target = src) && C.amount >= 10) + if(do_after(user, 20, target = src) && C.get_amount() >= 10) + if(C.get_amount() < 10 || !C) + return var/obj/structure/cable/N = T.get_cable_node() //get the connecting node cable, if there's one - if (prob(50) && electrocute_mob(usr, N, N)) //animate the electrocution if uncautious and unlucky + if (prob(50) && electrocute_mob(usr, N, N, 1, TRUE)) //animate the electrocution if uncautious and unlucky var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread s.set_up(5, 1, src) s.start() @@ -162,7 +164,7 @@ //disassembling the terminal if(istype(I, /obj/item/weapon/wirecutters) && terminal && panel_open) - terminal.dismantle(user) + terminal.dismantle(user, I) return //crowbarring it ! @@ -175,7 +177,7 @@ return ..() -/obj/machinery/power/smes/deconstruction() +/obj/machinery/power/smes/on_deconstruction() for(var/obj/item/weapon/stock_parts/cell/cell in component_parts) cell.charge = (charge / capacity) * cell.maxcharge diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm index 4d37bedcee..068ec6bbe6 100644 --- a/code/modules/power/solar.dm +++ b/code/modules/power/solar.dm @@ -12,7 +12,9 @@ idle_power_usage = 0 active_power_usage = 0 var/id = 0 - var/health = 20 + obj_integrity = 150 + max_integrity = 150 + integrity_failure = 50 var/obscured = 0 var/sunfrac = 0 var/adir = SOUTH // actual dir @@ -50,62 +52,52 @@ S.anchored = 1 S.loc = src if(S.glass_type == /obj/item/stack/sheet/rglass) //if the panel is in reinforced glass - health *= 2 //this need to be placed here, because panels already on the map don't have an assembly linked to + max_integrity *= 2 //this need to be placed here, because panels already on the map don't have an assembly linked to + obj_integrity = max_integrity update_icon() /obj/machinery/power/solar/attackby(obj/item/weapon/W, mob/user, params) if(istype(W, /obj/item/weapon/crowbar)) playsound(src.loc, 'sound/machines/click.ogg', 50, 1) user.visible_message("[user] begins to take the glass off the solar panel.", "You begin to take the glass off the solar panel...") - if(do_after(user, 50/W.toolspeed, target = src)) - var/obj/item/solar_assembly/S = locate() in src - if(S) - S.loc = src.loc - S.give_glass(stat & BROKEN) - + if(do_after(user, 50*W.toolspeed, target = src)) playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) user.visible_message("[user] takes the glass off the solar panel.", "You take the glass off the solar panel.") - qdel(src) + deconstruct(TRUE) else return ..() -/obj/machinery/power/solar/bullet_act(obj/item/projectile/P) - . = ..() - take_damage(P.damage, P.damage_type) - -/obj/machinery/power/solar/hitby(AM as mob|obj) - ..() - var/tforce = 0 - if(ismob(AM)) - tforce = 20 - else if(isobj(AM)) - var/obj/item/I = AM - tforce = I.throwforce - take_damage(tforce) - -/obj/machinery/power/solar/take_damage(damage, damage_type = BRUTE, sound_effect = 1) +/obj/machinery/power/solar/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) switch(damage_type) if(BRUTE) - if(sound_effect) - if(stat & BROKEN) - playsound(loc, 'sound/effects/hit_on_shattered_glass.ogg', 60, 1) - else - playsound(loc, 'sound/effects/Glasshit.ogg', 90, 1) + if(stat & BROKEN) + playsound(loc, 'sound/effects/hit_on_shattered_glass.ogg', 60, 1) + else + playsound(loc, 'sound/effects/Glasshit.ogg', 90, 1) if(BURN) - if(sound_effect) - playsound(loc, 'sound/items/Welder.ogg', 100, 1) + playsound(loc, 'sound/items/Welder.ogg', 100, 1) + + +/obj/machinery/power/solar/obj_break(damage_flag) + if(!(stat & BROKEN) && !(flags & NODECONSTRUCT)) + playsound(loc, 'sound/effects/Glassbr3.ogg', 100, 1) + stat |= BROKEN + unset_control() + update_icon() + +/obj/machinery/power/solar/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + if(disassembled) + var/obj/item/solar_assembly/S = locate() in src + if(S) + S.forceMove(loc) + S.give_glass(stat & BROKEN) else - return - health -= damage - if(health <= 0) - playsound(src, "shatter", 70, 1) - new /obj/item/weapon/shard(src.loc) - new /obj/item/weapon/shard(src.loc) - qdel(src) - else if(health <= 10) - if(!(stat & BROKEN)) - playsound(loc, 'sound/effects/Glassbr3.ogg', 100, 1) - set_broken() + playsound(src, "shatter", 70, 1) + new /obj/item/weapon/shard(src.loc) + new /obj/item/weapon/shard(src.loc) + qdel(src) + /obj/machinery/power/solar/update_icon() ..() @@ -115,7 +107,6 @@ else add_overlay(image('icons/obj/power.dmi', icon_state = "solar_panel", layer = FLY_LAYER)) src.setDir(angle2dir(adir)) - return //calculates the fraction of the sunlight that the panel recieves /obj/machinery/power/solar/proc/update_solar_exposure() @@ -149,21 +140,6 @@ else //if we're no longer on the same powernet, remove from control computer unset_control() -/obj/machinery/power/solar/proc/set_broken() - . = (!(stat & BROKEN)) - stat |= BROKEN - unset_control() - update_icon() - - -/obj/machinery/power/solar/ex_act(severity, target) - ..() - if(!qdeleted(src)) - switch(severity) - if(2) - take_damage(rand(10,20), BRUTE, 0) - if(3) - take_damage(rand(5,15), BRUTE, 0) /obj/machinery/power/solar/fake/New(var/turf/loc, var/obj/item/solar_assembly/S) ..(loc, S, 0) @@ -208,7 +184,7 @@ icon = 'icons/obj/power.dmi' icon_state = "sp_base" item_state = "electropack" - w_class = 4 // Pretty big! + w_class = WEIGHT_CLASS_BULKY // Pretty big! anchored = 0 var/tracker = 0 var/glass_type = null @@ -289,7 +265,9 @@ density = 1 use_power = 1 idle_power_usage = 250 - var/health = 25 + obj_integrity = 200 + max_integrity = 200 + integrity_failure = 100 var/icon_screen = "solar" var/icon_keyboard = "power_key" var/id = 0 @@ -299,13 +277,9 @@ var/lastgen = 0 var/track = 0 // 0= off 1=timed 2=auto (tracker) var/trackrate = 600 // 300-900 seconds - var/nexttime = 0 // time for a panel to rotate of 1� in manual tracking + var/nexttime = 0 // time for a panel to rotate of 1 degree in manual tracking var/obj/machinery/power/tracker/connected_tracker = null var/list/connected_panels = list() - use_auto_lights = 1 - light_power_on = 1 - light_range_on = 3 - light_color = LIGHT_COLOR_ORANGE /obj/machinery/power/solar_control/New() @@ -443,7 +417,7 @@ /obj/machinery/power/solar_control/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/weapon/screwdriver)) playsound(src.loc, I.usesound, 50, 1) - if(do_after(user, 20/I.toolspeed, target = src)) + if(do_after(user, 20*I.toolspeed, target = src)) if (src.stat & BROKEN) user << "The broken glass falls out." var/obj/structure/frame/computer/A = new /obj/structure/frame/computer( src.loc ) @@ -467,30 +441,23 @@ A.icon_state = "4" A.anchored = 1 qdel(src) - else if(user.a_intent != "harm" && !(I.flags & NOBLUDGEON)) + else if(user.a_intent != INTENT_HARM && !(I.flags & NOBLUDGEON)) src.attack_hand(user) else return ..() -/obj/machinery/power/solar_control/bullet_act(obj/item/projectile/P) - . = ..() - take_damage(P.damage, P.damage_type) - -/obj/machinery/power/solar_control/take_damage(damage, damage_type = BRUTE, sound_effect = 1) +/obj/machinery/power/solar_control/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) switch(damage_type) if(BRUTE) - if(sound_effect) - if(stat & BROKEN) - playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1) - else - playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1) + if(stat & BROKEN) + playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1) + else + playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1) if(BURN) - if(sound_effect) - playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) - else - return - health -= damage - if(health <= 0 && !(stat & BROKEN)) + playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) + +/obj/machinery/power/solar_control/obj_break(damage_flag) + if(!(stat & BROKEN) && !(flags & NODECONSTRUCT)) playsound(loc, 'sound/effects/Glassbr3.ogg', 100, 1) stat |= BROKEN update_icon() @@ -527,24 +494,6 @@ update_icon() -/obj/machinery/power/solar_control/proc/set_broken() - stat |= BROKEN - update_icon() - - -/obj/machinery/power/solar_control/ex_act(severity, target) - ..() - if(!qdeleted(src)) - switch(severity) - if(2) - take_damage(rand(20,30), BRUTE, 0) - if(3) - take_damage(rand(10,20), BRUTE, 0) - -/obj/machinery/power/solar_control/blob_act(obj/effect/blob/B) - if (prob(75)) - set_broken() - src.density = 0 // diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm index 0d7d551921..fe925c1fed 100644 --- a/code/modules/power/supermatter/supermatter.dm +++ b/code/modules/power/supermatter/supermatter.dm @@ -24,7 +24,7 @@ density = 1 anchored = 0 luminosity = 4 - + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF var/gasefficency = 0.125 @@ -76,7 +76,9 @@ /obj/machinery/power/supermatter_shard/Destroy() investigate_log("has been destroyed.", "supermatter") - qdel(radio) + if(radio) + qdel(radio) + radio = null poi_list -= src . = ..() @@ -86,15 +88,15 @@ qdel(src) /obj/machinery/power/supermatter_shard/process() - var/turf/L = loc + var/turf/T = loc - if(isnull(L)) // We have a null turf...something is wrong, stop processing this entity. + if(isnull(T)) // We have a null turf...something is wrong, stop processing this entity. return PROCESS_KILL - if(!istype(L)) //We are in a crate or somewhere that isn't turf, if we return to turf resume processing but for now. + if(!istype(T)) //We are in a crate or somewhere that isn't turf, if we return to turf resume processing but for now. return //Yeah just stop. - if(istype(L, /turf/open/space)) // Stop processing this stuff if we've been ejected. + if(isspaceturf(T)) // Stop processing this stuff if we've been ejected. return if(damage > warning_point) // while the core is still damaged and it's still worth noting its status @@ -118,18 +120,20 @@ lastwarning = world.timeofday if(damage > explosion_point) - for(var/mob/living/mob in living_mob_list) - if(istype(mob, /mob/living/carbon/human)) - //Hilariously enough, running into a closet should make you get hit the hardest. - var/mob/living/carbon/human/H = mob - H.hallucination += max(50, min(300, DETONATION_HALLUCINATION * sqrt(1 / (get_dist(mob, src) + 1)) ) ) - var/rads = DETONATION_RADS * sqrt( 1 / (get_dist(mob, src) + 1) ) - mob.rad_act(rads) + for(var/mob in living_mob_list) + var/mob/living/L = mob + if(istype(L) && L.z == z) + if(ishuman(mob)) + //Hilariously enough, running into a closet should make you get hit the hardest. + var/mob/living/carbon/human/H = mob + H.hallucination += max(50, min(300, DETONATION_HALLUCINATION * sqrt(1 / (get_dist(mob, src) + 1)) ) ) + var/rads = DETONATION_RADS * sqrt( 1 / (get_dist(L, src) + 1) ) + L.rad_act(rads) explode() //Ok, get the air from the turf - var/datum/gas_mixture/env = L.return_air() + var/datum/gas_mixture/env = T.return_air() var/datum/gas_mixture/removed @@ -234,19 +238,20 @@ message_admins("Singularity has consumed a supermatter shard and can now become stage six.") visible_message("[src] is consumed by the singularity!") for(var/mob/M in mob_list) - M << 'sound/effects/supermatter.ogg' //everyone goan know bout this - M << "A horrible screeching fills your ears, and a wave of dread washes over you..." + if(M.z == z) + M << 'sound/effects/supermatter.ogg' //everyone goan know bout this + M << "A horrible screeching fills your ears, and a wave of dread washes over you..." qdel(src) return(gain) -/obj/machinery/power/supermatter_shard/blob_act(obj/effect/blob/B) - if(B && !istype(loc, /turf/open/space)) //does nothing in space +/obj/machinery/power/supermatter_shard/blob_act(obj/structure/blob/B) + if(B && !isspaceturf(loc)) //does nothing in space playsound(get_turf(src), 'sound/effects/supermatter.ogg', 50, 1) - damage += B.health * 0.5 //take damage equal to 50% of remaining blob health before it tried to eat us - if(B.health > 100) + damage += B.obj_integrity * 0.5 //take damage equal to 50% of remaining blob health before it tried to eat us + if(B.obj_integrity > 100) B.visible_message("\The [B] strikes at \the [src] and flinches away!",\ "You hear a loud crack as you are washed with a wave of heat.") - B.take_damage(100, BURN, src) + B.take_damage(100, BURN) else B.visible_message("\The [B] strikes at \the [src] and rapidly flashes to ash.",\ "You hear a loud crack as you are washed with a wave of heat.") @@ -268,7 +273,7 @@ /obj/machinery/power/supermatter_shard/attack_hand(mob/living/user) if(!istype(user)) return - user.visible_message("\The [user] reaches out and touches \the [src], inducing a resonance... \his body starts to glow and bursts into flames before flashing into ash.",\ + user.visible_message("\The [user] reaches out and touches \the [src], inducing a resonance... [user.p_their()] body starts to glow and bursts into flames before flashing into ash.",\ "You reach out and touch \the [src]. Everything starts burning and all you can hear is ringing. Your last thought is \"That was not a wise decision.\"",\ "You hear an unearthly noise as a wave of heat washes over you.") @@ -278,7 +283,7 @@ /obj/machinery/power/supermatter_shard/proc/transfer_energy() for(var/obj/machinery/power/rad_collector/R in rad_collectors) - if(get_dist(R, src) <= 15) // Better than using orange() every process + if(R.z == z && get_dist(R, src) <= 15) //Better than using orange() every process R.receive_pulse(power/10) /obj/machinery/power/supermatter_shard/attackby(obj/item/W, mob/living/user, params) @@ -295,13 +300,13 @@ radiation_pulse(get_turf(src), 1, 1, 150, 1) -/obj/machinery/power/supermatter_shard/Bumped(atom/AM as mob|obj) - if(istype(AM, /mob/living)) - AM.visible_message("\The [AM] slams into \the [src] inducing a resonance... \his body starts to glow and catch flame before flashing into ash.",\ +/obj/machinery/power/supermatter_shard/Bumped(atom/AM) + if(isliving(AM)) + AM.visible_message("\The [AM] slams into \the [src] inducing a resonance... [AM.p_their()] body starts to glow and catch flame before flashing into ash.",\ "You slam into \the [src] as your ears are filled with unearthly ringing. Your last thought is \"Oh, fuck.\"",\ "You hear an unearthly noise as a wave of heat washes over you.") else if(isobj(AM) && !istype(AM, /obj/effect)) - AM.visible_message("\The [AM] smacks into \the [src] and rapidly flashes to ash.",\ + AM.visible_message("\The [AM] smacks into \the [src] and rapidly flashes to ash.", null,\ "You hear a loud crack as you are washed with a wave of heat.") else return @@ -312,13 +317,13 @@ /obj/machinery/power/supermatter_shard/proc/Consume(atom/movable/AM) - if(istype(AM, /mob/living)) + if(isliving(AM)) var/mob/living/user = AM message_admins("[src] has consumed [key_name_admin(user)]? (FLW) (JMP).") investigate_log("has consumed [key_name(user)].", "supermatter") user.dust() power += 200 - else if(isobj(AM) && (!istype(AM, /obj/effect) || istype(AM, /obj/effect/blob))) + else if(isobj(AM) && !istype(AM, /obj/effect)) investigate_log("has consumed [AM].", "supermatter") qdel(AM) diff --git a/code/modules/power/terminal.dm b/code/modules/power/terminal.dm index f3fcb43585..34636caff0 100644 --- a/code/modules/power/terminal.dm +++ b/code/modules/power/terminal.dm @@ -38,7 +38,7 @@ /obj/machinery/power/apc/can_terminal_dismantle() . = 0 - if(opened && has_electronics != 2) + if(opened) . = 1 /obj/machinery/power/smes/can_terminal_dismantle() @@ -47,8 +47,8 @@ . = 1 -/obj/machinery/power/terminal/proc/dismantle(mob/living/user) - if(istype(loc, /turf)) +/obj/machinery/power/terminal/proc/dismantle(mob/living/user, obj/item/W) + if(isturf(loc)) var/turf/T = loc if(T.intact) user << "You must first expose the power terminal!" @@ -59,9 +59,9 @@ "You begin to cut the cables...") playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) - if(do_after(user, 50, target = src)) + if(do_after(user, 50*W.toolspeed, target = src)) if(master && master.can_terminal_dismantle()) - if(prob(50) && electrocute_mob(user, powernet, src)) + if(prob(50) && electrocute_mob(user, powernet, src, 1, TRUE)) var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread s.set_up(5, 1, master) s.start() @@ -73,6 +73,6 @@ /obj/machinery/power/terminal/attackby(obj/item/W, mob/living/user, params) if(istype(W, /obj/item/weapon/wirecutters)) - dismantle(user) + dismantle(user, W) else return ..() diff --git a/code/modules/power/tesla/coil.dm b/code/modules/power/tesla/coil.dm index 3ee76344e4..dc7717c370 100644 --- a/code/modules/power/tesla/coil.dm +++ b/code/modules/power/tesla/coil.dm @@ -49,7 +49,9 @@ /obj/machinery/power/tesla_coil/tesla_act(var/power) being_shocked = 1 - var/power_produced = power / power_loss + //don't lose arc power when it's not connected to anything + //please place tesla coils all around the station to maximize effectiveness + var/power_produced = powernet ? power / power_loss : power add_avail(power_produced*input_power_multiplier) flick("coilhit", src) playsound(src.loc, 'sound/magic/LightningShock.ogg', 100, 1, extrarange = 5) diff --git a/code/modules/power/tesla/energy_ball.dm b/code/modules/power/tesla/energy_ball.dm index 670aa1276a..5586ab5943 100644 --- a/code/modules/power/tesla/energy_ball.dm +++ b/code/modules/power/tesla/energy_ball.dm @@ -15,7 +15,8 @@ var/list/blacklisted_tesla_types = typecacheof(list(/obj/machinery/atmospherics, /obj/machinery/field/containment, /obj/structure/disposalpipe, /obj/structure/sign, - /obj/machinery/gateway)) + /obj/machinery/gateway, + /obj/structure/lattice)) /obj/singularity/energy_ball name = "energy ball" @@ -38,17 +39,19 @@ var/list/blacklisted_tesla_types = typecacheof(list(/obj/machinery/atmospherics, var/energy_to_raise = 32 var/energy_to_lower = -20 +/obj/singularity/energy_ball/ex_act(severity, target) + return + /obj/singularity/energy_ball/Destroy() - if(orbiting && istype(orbiting, /obj/singularity/energy_ball)) - var/obj/singularity/energy_ball/EB = orbiting + if(orbiting && istype(orbiting.orbiting, /obj/singularity/energy_ball)) + var/obj/singularity/energy_ball/EB = orbiting.orbiting EB.orbiting_balls -= src - orbiting = null for(var/ball in orbiting_balls) var/obj/singularity/energy_ball/EB = ball qdel(EB) - return ..() + . = ..() /obj/singularity/energy_ball/process() if(!orbiting) @@ -61,18 +64,16 @@ var/list/blacklisted_tesla_types = typecacheof(list(/obj/machinery/atmospherics, pixel_x = 0 pixel_y = 0 - setDir(tesla_zap(src, 7, TESLA_DEFAULT_POWER)) + setDir(tesla_zap(src, 7, TESLA_DEFAULT_POWER, TRUE)) pixel_x = -32 pixel_y = -32 for (var/ball in orbiting_balls) var/range = rand(1, Clamp(orbiting_balls.len, 3, 7)) - tesla_zap(ball, range, TESLA_MINI_POWER/7*range) + tesla_zap(ball, range, TESLA_MINI_POWER/7*range, TRUE) else energy = 0 // ensure we dont have miniballs of miniballs - return - /obj/singularity/energy_ball/examine(mob/user) ..() if(orbiting_balls.len) @@ -89,28 +90,17 @@ var/list/blacklisted_tesla_types = typecacheof(list(/obj/machinery/atmospherics, var/turf/T = get_step(src, move_dir) if(can_move(T)) loc = T + for(var/mob/living/carbon/C in loc) + dust_mobs(C) /obj/singularity/energy_ball/proc/handle_energy() - if(energy >= energy_to_raise) energy_to_lower = energy_to_raise - 20 energy_to_raise = energy_to_raise * 1.25 playsound(src.loc, 'sound/magic/lightning_chargeup.ogg', 100, 1, extrarange = 30) - spawn(100) - if (!loc) - return - var/obj/singularity/energy_ball/EB = new(loc) - - EB.transform *= pick(0.3, 0.4, 0.5, 0.6, 0.7) - var/icon/I = icon(icon,icon_state,dir) - - var/orbitsize = (I.Width() + I.Height()) * pick(0.4, 0.5, 0.6, 0.7, 0.8) - orbitsize -= (orbitsize / world.icon_size) * (world.icon_size * 0.25) - - EB.orbit(src, orbitsize, pick(FALSE, TRUE), rand(10, 25), pick(3, 4, 5, 6, 36)) - + addtimer(src, "new_mini_ball", 100) else if(energy < energy_to_lower && orbiting_balls.len) energy_to_raise = energy_to_raise / 1.25 @@ -122,6 +112,20 @@ var/list/blacklisted_tesla_types = typecacheof(list(/obj/machinery/atmospherics, else if(orbiting_balls.len) dissipate() //sing code has a much better system. +/obj/singularity/energy_ball/proc/new_mini_ball() + if(!loc) + return + var/obj/singularity/energy_ball/EB = new(loc) + + EB.transform *= pick(0.3, 0.4, 0.5, 0.6, 0.7) + var/icon/I = icon(icon,icon_state,dir) + + var/orbitsize = (I.Width() + I.Height()) * pick(0.4, 0.5, 0.6, 0.7, 0.8) + orbitsize -= (orbitsize / world.icon_size) * (world.icon_size * 0.25) + + EB.orbit(src, orbitsize, pick(FALSE, TRUE), rand(10, 25), pick(3, 4, 5, 6, 36)) + + /obj/singularity/energy_ball/Bump(atom/A) dust_mobs(A) @@ -135,20 +139,22 @@ var/list/blacklisted_tesla_types = typecacheof(list(/obj/machinery/atmospherics, target.dissipate_strength = target.orbiting_balls.len . = ..() - - if (istype(target)) - target.orbiting_balls -= src - target.dissipate_strength = target.orbiting_balls.len +/obj/singularity/energy_ball/stop_orbit() + if (orbiting && istype(orbiting.orbiting, /obj/singularity/energy_ball)) + var/obj/singularity/energy_ball/orbitingball = orbiting.orbiting + orbitingball.orbiting_balls -= src + orbitingball.dissipate_strength = orbitingball.orbiting_balls.len + ..() if (!loc) qdel(src) + /obj/singularity/energy_ball/proc/dust_mobs(atom/A) if(istype(A, /mob/living/carbon)) var/mob/living/carbon/C = A C.dust() - return -/proc/tesla_zap(var/atom/source, zap_range = 3, power) +/proc/tesla_zap(atom/source, zap_range = 3, power, explosive = FALSE) . = source.dir if(power < 1000) return @@ -160,7 +166,7 @@ var/list/blacklisted_tesla_types = typecacheof(list(/obj/machinery/atmospherics, var/mob/living/closest_mob var/obj/machinery/closest_machine var/obj/structure/closest_structure - var/obj/effect/blob/closest_blob + var/obj/structure/blob/closest_blob for(var/A in oview(source, zap_range+2)) if(istype(A, /obj/machinery/power/tesla_coil)) @@ -188,7 +194,7 @@ var/list/blacklisted_tesla_types = typecacheof(list(/obj/machinery/atmospherics, else if(closest_grounding_rod || is_type_in_typecache(A, blacklisted_tesla_types)) continue - else if(istype(A, /mob/living)) + else if(isliving(A)) var/dist = get_dist(source, A) var/mob/living/L = A if(dist <= zap_range && (dist < closest_dist || !closest_mob) && L.stat != DEAD) @@ -210,8 +216,8 @@ var/list/blacklisted_tesla_types = typecacheof(list(/obj/machinery/atmospherics, else if(closest_mob) continue - else if(istype(A, /obj/effect/blob)) - var/obj/effect/blob/B = A + else if(istype(A, /obj/structure/blob)) + var/obj/structure/blob/B = A var/dist = get_dist(source, A) if(dist <= zap_range && (dist < closest_dist || !closest_tesla_coil) && !B.being_shocked) closest_blob = B @@ -232,22 +238,22 @@ var/list/blacklisted_tesla_types = typecacheof(list(/obj/machinery/atmospherics, //Alright, we've done our loop, now lets see if was anything interesting in range if(closest_atom) //common stuff - source.Beam(closest_atom, icon_state="lightning[rand(1,12)]", icon='icons/effects/effects.dmi', time=5) + source.Beam(closest_atom, icon_state="lightning[rand(1,12)]", time=5) var/zapdir = get_dir(source, closest_atom) if(zapdir) . = zapdir //per type stuff: if(closest_tesla_coil) - closest_tesla_coil.tesla_act(power) + closest_tesla_coil.tesla_act(power, explosive) else if(closest_grounding_rod) - closest_grounding_rod.tesla_act(power) + closest_grounding_rod.tesla_act(power, explosive) else if(closest_mob) var/shock_damage = Clamp(round(power/400), 10, 90) + rand(-5, 5) closest_mob.electrocute_act(shock_damage, source, 1, tesla_shock = 1) - if(istype(closest_mob, /mob/living/silicon)) + if(issilicon(closest_mob)) var/mob/living/silicon/S = closest_mob S.emp_act(2) tesla_zap(S, 7, power / 1.5) // metallic folks bounce it further @@ -255,12 +261,10 @@ var/list/blacklisted_tesla_types = typecacheof(list(/obj/machinery/atmospherics, tesla_zap(closest_mob, 5, power / 1.5) else if(closest_machine) - closest_machine.tesla_act(power) + closest_machine.tesla_act(power, explosive) else if(closest_blob) - closest_blob.tesla_act(power) + closest_blob.tesla_act(power, explosive) else if(closest_structure) - closest_structure.tesla_act(power) - - + closest_structure.tesla_act(power, explosive) diff --git a/code/modules/power/tracker.dm b/code/modules/power/tracker.dm index 7a42163704..8a888d5aff 100644 --- a/code/modules/power/tracker.dm +++ b/code/modules/power/tracker.dm @@ -11,6 +11,9 @@ anchored = 1 density = 1 use_power = 0 + obj_integrity = 250 + max_integrity = 250 + integrity_failure = 50 var/id = 0 var/sun_angle = 0 // sun angle as set by sun datum @@ -63,17 +66,32 @@ if(istype(W, /obj/item/weapon/crowbar)) playsound(src.loc, 'sound/machines/click.ogg', 50, 1) user.visible_message("[user] begins to take the glass off the solar tracker.", "You begin to take the glass off the solar tracker...") - if(do_after(user, 50/W.toolspeed, target = src)) - var/obj/item/solar_assembly/S = locate() in src - if(S) - S.loc = src.loc - S.give_glass(stat & BROKEN) + if(do_after(user, 50*W.toolspeed, target = src)) playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) user.visible_message("[user] takes the glass off the tracker.", "You take the glass off the tracker.") - qdel(src) + deconstruct(TRUE) else return ..() +/obj/machinery/power/tracker/obj_break(damage_flag) + if(!(stat & BROKEN) && !(flags & NODECONSTRUCT)) + playsound(loc, 'sound/effects/Glassbr3.ogg', 100, 1) + stat |= BROKEN + unset_control() + +/obj/machinery/power/solar/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + if(disassembled) + var/obj/item/solar_assembly/S = locate() in src + if(S) + S.forceMove(loc) + S.give_glass(stat & BROKEN) + else + playsound(src, "shatter", 70, 1) + new /obj/item/weapon/shard(src.loc) + new /obj/item/weapon/shard(src.loc) + qdel(src) + // Tracker Electronic /obj/item/weapon/electronics/tracker diff --git a/code/modules/power/turbine.dm b/code/modules/power/turbine.dm index cb2d545768..05dbc19b98 100644 --- a/code/modules/power/turbine.dm +++ b/code/modules/power/turbine.dm @@ -29,6 +29,8 @@ icon_state = "compressor" anchored = 1 density = 1 + resistance_flags = FIRE_PROOF + CanAtmosPass = ATMOS_PASS_DENSITY var/obj/machinery/power/turbine/turbine var/datum/gas_mixture/gas_contained var/turf/inturf @@ -47,6 +49,8 @@ icon_state = "turbine" anchored = 1 density = 1 + resistance_flags = FIRE_PROOF + CanAtmosPass = ATMOS_PASS_DENSITY var/opened = 0 var/obj/machinery/power/compressor/compressor var/turf/outturf @@ -131,9 +135,6 @@ default_deconstruction_crowbar(I) -/obj/machinery/power/compressor/CanAtmosPass(turf/T) - return !density - /obj/machinery/power/compressor/process() if(!turbine) stat = BROKEN @@ -155,7 +156,7 @@ // RPM function to include compression friction - be advised that too low/high of a compfriction value can make things screwy - rpm = max(0, rpm - (rpm*rpm)/(COMPFRICTION/efficiency)) + rpm = max(0, rpm - (rpm*rpm)/(COMPFRICTION*efficiency)) if(starter && !(stat & NOPOWER)) @@ -219,9 +220,6 @@ if(compressor) compressor.locate_machinery() -/obj/machinery/power/turbine/CanAtmosPass(turf/T) - return !density - /obj/machinery/power/turbine/process() if(!compressor) @@ -291,7 +289,7 @@ /obj/machinery/power/turbine/interact(mob/user) - if ( !Adjacent(user) || (stat & (NOPOWER|BROKEN)) && (!istype(user, /mob/living/silicon)) ) + if(!Adjacent(user) || (stat & (NOPOWER|BROKEN)) && !issilicon(user)) user.unset_machine(src) user << browse(null, "window=turbine") return diff --git a/code/modules/procedural_mapping/mapGeneratorModule.dm b/code/modules/procedural_mapping/mapGeneratorModule.dm index 33ff0ee223..0ad35adddb 100644 --- a/code/modules/procedural_mapping/mapGeneratorModule.dm +++ b/code/modules/procedural_mapping/mapGeneratorModule.dm @@ -114,7 +114,7 @@ if(A.density) . = 0 break - if(!allowAtomsOnSpace && (istype(T,/turf/open/space))) + if(!allowAtomsOnSpace && (isspaceturf(T))) . = 0 diff --git a/code/modules/procedural_mapping/mapGeneratorModules/helpers.dm b/code/modules/procedural_mapping/mapGeneratorModules/helpers.dm index bfd3032126..4d07342051 100644 --- a/code/modules/procedural_mapping/mapGeneratorModules/helpers.dm +++ b/code/modules/procedural_mapping/mapGeneratorModules/helpers.dm @@ -17,6 +17,17 @@ T.air.copy_from_turf(T) SSair.add_to_active(T) +/datum/mapGeneratorModule/bottomLayer/massdelete + spawnableAtoms = list() + spawnableTurfs = list() + +/datum/mapGeneratorModule/bottomLayer/massdelete/generate() + if(!mother) + return + for(var/V in mother.map) + var/turf/T = V + T.empty() + //Only places atoms/turfs on area borders /datum/mapGeneratorModule/border clusterCheckFlags = CLUSTER_CHECK_NONE @@ -37,4 +48,7 @@ return 0 /datum/mapGenerator/repressurize - modules = list(/datum/mapGeneratorModule/bottomLayer/repressurize) \ No newline at end of file + modules = list(/datum/mapGeneratorModule/bottomLayer/repressurize) + +/datum/mapGenerator/massdelete + modules = list(/datum/mapGeneratorModule/bottomLayer/massdelete) \ No newline at end of file diff --git a/code/modules/procedural_mapping/mapGenerators/cult.dm b/code/modules/procedural_mapping/mapGenerators/cult.dm new file mode 100644 index 0000000000..c76a611b7e --- /dev/null +++ b/code/modules/procedural_mapping/mapGenerators/cult.dm @@ -0,0 +1,31 @@ +/datum/mapGeneratorModule/bottomLayer/cultFloor + spawnableTurfs = list(/turf/open/floor/engine/cult = 100) + +/datum/mapGeneratorModule/border/cultWalls + spawnableTurfs = list(/turf/closed/wall/mineral/cult = 100) + + +/datum/mapGeneratorModule/bottomLayer/clockFloor + spawnableTurfs = list(/turf/open/floor/clockwork = 100) + +/datum/mapGeneratorModule/border/clockWalls + spawnableTurfs = list(/turf/closed/wall/clockwork = 100) + + +/datum/mapGenerator/cult //walls and floor only + modules = list(/datum/mapGeneratorModule/bottomLayer/cultFloor, \ + /datum/mapGeneratorModule/border/cultWalls, \ + /datum/mapGeneratorModule/bottomLayer/repressurize) + +/datum/mapGenerator/clock //walls and floor only + modules = list(/datum/mapGeneratorModule/bottomLayer/clockFloor, \ + /datum/mapGeneratorModule/border/clockWalls, \ + /datum/mapGeneratorModule/bottomLayer/repressurize) + +/datum/mapGenerator/cult/floor //floors only + modules = list(/datum/mapGeneratorModule/bottomLayer/cultFloor, \ + /datum/mapGeneratorModule/bottomLayer/repressurize) + +/datum/mapGenerator/clock/floor //floor only + modules = list(/datum/mapGeneratorModule/bottomLayer/clockFloor, \ + /datum/mapGeneratorModule/bottomLayer/repressurize) \ No newline at end of file diff --git a/code/modules/projectiles/ammunition.dm b/code/modules/projectiles/ammunition.dm index 21ae421f8c..35cc89b3c6 100644 --- a/code/modules/projectiles/ammunition.dm +++ b/code/modules/projectiles/ammunition.dm @@ -6,7 +6,7 @@ flags = CONDUCT slot_flags = SLOT_BELT throwforce = 0 - w_class = 1 + w_class = WEIGHT_CLASS_TINY var/fire_sound = null //What sound should play when this ammo is fired var/caliber = null //Which kind of guns it can be loaded into var/projectile_type = null //The bullet type to create when New() is called @@ -16,6 +16,8 @@ var/randomspread = 0 //Randomspread for automatics var/delay = 0 //Delay for energy weapons var/click_cooldown_override = 0 //Override this to make your gun have a faster fire rate, in tenths of a second. 4 is the default gun cooldown. + var/firing_effect_type = /obj/effect/overlay/temp/dir_setting/firing_effect //the visual effect appearing when the ammo is fired. + /obj/item/ammo_casing/New() ..() @@ -31,10 +33,10 @@ icon_state = "[initial(icon_state)][BB ? "-live" : ""]" desc = "[initial(desc)][BB ? "" : " This one is spent"]" -/obj/item/ammo_casing/proc/newshot() //For energy weapons, shotgun shells and wands (!). - if (!BB) +//proc to magically refill a casing with a new projectile +/obj/item/ammo_casing/proc/newshot() //For energy weapons, syringe gun, shotgun shells and wands (!). + if(!BB) BB = new projectile_type(src) - return /obj/item/ammo_casing/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/ammo_box)) @@ -55,113 +57,4 @@ else user << "You fail to collect anything!" else - ..() - -//Boxes of ammo -/obj/item/ammo_box - name = "ammo box (null_reference_exception)" - desc = "A box of ammo." - icon_state = "357" - icon = 'icons/obj/ammo.dmi' - flags = CONDUCT - slot_flags = SLOT_BELT - item_state = "syringe_kit" - materials = list(MAT_METAL=30000) - throwforce = 2 - w_class = 1 - throw_speed = 3 - throw_range = 7 - var/list/stored_ammo = list() - var/ammo_type = /obj/item/ammo_casing - var/max_ammo = 7 - var/multiple_sprites = 0 - var/caliber - var/multiload = 1 - -/obj/item/ammo_box/New() - for(var/i = 1, i <= max_ammo, i++) - stored_ammo += new ammo_type(src) - update_icon() - -/obj/item/ammo_box/proc/get_round(keep = 0) - if (!stored_ammo.len) - return null - else - var/b = stored_ammo[stored_ammo.len] - stored_ammo -= b - if (keep) - stored_ammo.Insert(1,b) - return b - -/obj/item/ammo_box/proc/give_round(obj/item/ammo_casing/R, replace_spent = 0) - // Boxes don't have a caliber type, magazines do. Not sure if it's intended or not, but if we fail to find a caliber, then we fall back to ammo_type. - if(!R || (caliber && R.caliber != caliber) || (!caliber && R.type != ammo_type)) - return 0 - - if (stored_ammo.len < max_ammo) - stored_ammo += R - R.loc = src - return 1 - - //for accessibles magazines (e.g internal ones) when full, start replacing spent ammo - else if(replace_spent) - for(var/obj/item/ammo_casing/AC in stored_ammo) - if(!AC.BB)//found a spent ammo - stored_ammo -= AC - AC.loc = get_turf(src.loc) - - stored_ammo += R - R.loc = src - return 1 - - return 0 - -/obj/item/ammo_box/proc/can_load(mob/user) - return 1 - -/obj/item/ammo_box/attackby(obj/item/A, mob/user, params, silent = 0, replace_spent = 0) - var/num_loaded = 0 - if(!can_load(user)) - return - if(istype(A, /obj/item/ammo_box)) - var/obj/item/ammo_box/AM = A - for(var/obj/item/ammo_casing/AC in AM.stored_ammo) - var/did_load = give_round(AC, replace_spent) - if(did_load) - AM.stored_ammo -= AC - num_loaded++ - if(!did_load || !multiload) - break - if(istype(A, /obj/item/ammo_casing)) - var/obj/item/ammo_casing/AC = A - if(give_round(AC, replace_spent)) - user.drop_item() - AC.loc = src - num_loaded++ - - if(num_loaded) - if(!silent) - user << "You load [num_loaded] shell\s into \the [src]!" - A.update_icon() - update_icon() - - return num_loaded - -/obj/item/ammo_box/attack_self(mob/user) - var/obj/item/ammo_casing/A = get_round() - if(A) - user.put_in_hands(A) - user << "You remove a round from \the [src]!" - update_icon() - -/obj/item/ammo_box/update_icon() - switch(multiple_sprites) - if(1) - icon_state = "[initial(icon_state)]-[stored_ammo.len]" - if(2) - icon_state = "[initial(icon_state)]-[stored_ammo.len ? "[max_ammo]" : "0"]" - desc = "[initial(desc)] There are [stored_ammo.len] shell\s left!" - -//Behavior for magazines -/obj/item/ammo_box/magazine/proc/ammo_count() - return stored_ammo.len + return ..() diff --git a/code/modules/projectiles/ammunition/ammo_casings.dm b/code/modules/projectiles/ammunition/ammo_casings.dm index 20f59b6404..515051e10b 100644 --- a/code/modules/projectiles/ammunition/ammo_casings.dm +++ b/code/modules/projectiles/ammunition/ammo_casings.dm @@ -27,6 +27,15 @@ caliber = "10mm" projectile_type = /obj/item/projectile/bullet/midbullet3 +/obj/item/ammo_casing/c10mm/ap + projectile_type = /obj/item/projectile/bullet/midbullet3/ap + +/obj/item/ammo_casing/c10mm/fire + projectile_type = /obj/item/projectile/bullet/midbullet3/fire + +/obj/item/ammo_casing/c10mm/hp + projectile_type = /obj/item/projectile/bullet/midbullet3/hp + /obj/item/ammo_casing/c9mm desc = "A 9mm bullet casing." caliber = "9mm" @@ -199,7 +208,7 @@ variance = 25 -/obj/item/ammo_casing/shotgun/improvised/overload/ +/obj/item/ammo_casing/shotgun/improvised/overload name = "overloaded improvised shell" desc = "An extremely weak shotgun shell with multiple small pellets made out of metal shards. This one has been packed with even more \ propellant. It's like playing russian roulette, with a shotgun." @@ -304,105 +313,3 @@ reagents.add_reagent("mutetoxin", 6) //;HELP OPS IN MAINT reagents.add_reagent("coniine", 6) reagents.add_reagent("sodium_thiopental", 6) - -// Caseless Ammunition - -/obj/item/ammo_casing/caseless - desc = "A caseless bullet casing." - - -/obj/item/ammo_casing/caseless/fire(atom/target as mob|obj|turf, mob/living/user as mob|obj, params, distro, quiet) - if (..()) - loc = null - return 1 - else - return 0 - -/obj/item/ammo_casing/caseless/update_icon() - ..() - icon_state = "[initial(icon_state)]" - -/obj/item/ammo_casing/caseless/a75 - desc = "A .75 bullet casing." - caliber = "75" - icon_state = "s-casing-live" - projectile_type = /obj/item/projectile/bullet/gyro - -/obj/item/ammo_casing/caseless/magspear - name = "magnetic spear" - desc = "A reusable spear that is typically loaded into kinetic spearguns." - projectile_type = /obj/item/projectile/bullet/reusable/magspear - caliber = "speargun" - icon_state = "magspear" - throwforce = 15 //still deadly when thrown - throw_speed = 3 - - -/obj/item/ammo_casing/caseless/laser - name = "laser casing" - desc = "You shouldn't be seeing this." - caliber = "laser" - icon_state = "s-casing-live" - projectile_type = /obj/item/projectile/beam - fire_sound = 'sound/weapons/Laser.ogg' - -/obj/item/ammo_casing/caseless/laser/gatling - projectile_type = /obj/item/projectile/beam/weak - variance = 0.8 - click_cooldown_override = 1 - - -/obj/item/ammo_casing/caseless/foam_dart - name = "foam dart" - desc = "Its nerf or nothing! Ages 8 and up." - projectile_type = /obj/item/projectile/bullet/reusable/foam_dart - caliber = "foam_force" - icon = 'icons/obj/guns/toy.dmi' - icon_state = "foamdart" - var/modified = 0 - -/obj/item/ammo_casing/caseless/foam_dart/update_icon() - ..() - if (modified) - icon_state = "foamdart_empty" - desc = "Its nerf or nothing! ... Although, this one doesn't look too safe." - if(BB) - BB.icon_state = "foamdart_empty" - else - icon_state = "foamdart" - desc = "Its nerf or nothing! Ages 8 and up." - if(BB) - BB.icon_state = "foamdart_empty" - - -/obj/item/ammo_casing/caseless/foam_dart/attackby(obj/item/A, mob/user, params) - ..() - var/obj/item/projectile/bullet/reusable/foam_dart/FD = BB - if (istype(A, /obj/item/weapon/screwdriver) && !modified) - modified = 1 - FD.damage_type = BRUTE - update_icon() - else if ((istype(A, /obj/item/weapon/pen)) && modified && !FD.pen) - if(!user.unEquip(A)) - return - A.loc = FD - FD.pen = A - FD.damage = 5 - FD.nodamage = 0 - user << "You insert [A] into [src]." - return - -/obj/item/ammo_casing/caseless/foam_dart/attack_self(mob/living/user) - var/obj/item/projectile/bullet/reusable/foam_dart/FD = BB - if(FD.pen) - FD.damage = initial(FD.damage) - FD.nodamage = initial(FD.nodamage) - user.put_in_hands(FD.pen) - user << "You remove [FD.pen] from [src]." - FD.pen = null - -/obj/item/ammo_casing/caseless/foam_dart/riot - name = "riot foam dart" - desc = "Whose smart idea was it to use toys as crowd control? Ages 18 and up." - projectile_type = /obj/item/projectile/bullet/reusable/foam_dart/riot - icon_state = "foamdart_riot" diff --git a/code/modules/projectiles/ammunition/caseless.dm b/code/modules/projectiles/ammunition/caseless.dm new file mode 100644 index 0000000000..aa6c47e855 --- /dev/null +++ b/code/modules/projectiles/ammunition/caseless.dm @@ -0,0 +1,126 @@ + +// Caseless Ammunition + +/obj/item/ammo_casing/caseless + desc = "A caseless bullet casing." + firing_effect_type = null + +/obj/item/ammo_casing/caseless/fire_casing(atom/target, mob/living/user, params, distro, quiet, zone_override, spread) + if (..()) //successfully firing + loc = null + return 1 + else + return 0 + +/obj/item/ammo_casing/caseless/update_icon() + ..() + icon_state = "[initial(icon_state)]" + +/obj/item/ammo_casing/caseless/a75 + desc = "A .75 bullet casing." + caliber = "75" + icon_state = "s-casing-live" + projectile_type = /obj/item/projectile/bullet/gyro + +/obj/item/ammo_casing/caseless/a84mm + desc = "An 84mm anti-armour rocket." + caliber = "84mm" + icon_state = "s-casing-live" + projectile_type = /obj/item/projectile/bullet/a84mm + +/obj/item/ammo_casing/caseless/magspear + name = "magnetic spear" + desc = "A reusable spear that is typically loaded into kinetic spearguns." + projectile_type = /obj/item/projectile/bullet/reusable/magspear + caliber = "speargun" + icon_state = "magspear" + throwforce = 15 //still deadly when thrown + throw_speed = 3 + + +/obj/item/ammo_casing/caseless/laser + name = "laser casing" + desc = "You shouldn't be seeing this." + caliber = "laser" + icon_state = "s-casing-live" + projectile_type = /obj/item/projectile/beam + fire_sound = 'sound/weapons/Laser.ogg' + firing_effect_type = /obj/effect/overlay/temp/dir_setting/firing_effect/energy + +/obj/item/ammo_casing/caseless/laser/gatling + projectile_type = /obj/item/projectile/beam/weak + variance = 0.8 + click_cooldown_override = 1 + + +/obj/item/ammo_casing/caseless/foam_dart + name = "foam dart" + desc = "Its nerf or nothing! Ages 8 and up." + projectile_type = /obj/item/projectile/bullet/reusable/foam_dart + caliber = "foam_force" + icon = 'icons/obj/guns/toy.dmi' + icon_state = "foamdart" + var/modified = 0 + +/obj/item/ammo_casing/caseless/foam_dart/update_icon() + ..() + if (modified) + icon_state = "foamdart_empty" + desc = "Its nerf or nothing! ... Although, this one doesn't look too safe." + if(BB) + BB.icon_state = "foamdart_empty" + else + icon_state = initial(icon_state) + desc = "Its nerf or nothing! Ages 8 and up." + if(BB) + BB.icon_state = initial(BB.icon_state) + + +/obj/item/ammo_casing/caseless/foam_dart/attackby(obj/item/A, mob/user, params) + var/obj/item/projectile/bullet/reusable/foam_dart/FD = BB + if (istype(A, /obj/item/weapon/screwdriver) && !modified) + modified = 1 + FD.modified = 1 + FD.damage_type = BRUTE + user << "You pop the safety cap off of [src]." + update_icon() + else if (istype(A, /obj/item/weapon/pen)) + if(modified) + if(!FD.pen) + if(!user.unEquip(A)) + return + A.forceMove(FD) + FD.pen = A + FD.damage = 5 + FD.nodamage = 0 + user << "You insert [A] into [src]." + else + user << "There's already something in [src]." + else + user << "The safety cap prevents you from inserting [A] into [src]." + else + return ..() + +/obj/item/ammo_casing/caseless/foam_dart/attack_self(mob/living/user) + var/obj/item/projectile/bullet/reusable/foam_dart/FD = BB + if(FD.pen) + FD.damage = initial(FD.damage) + FD.nodamage = initial(FD.nodamage) + user.put_in_hands(FD.pen) + user << "You remove [FD.pen] from [src]." + FD.pen = null + +/obj/item/ammo_casing/caseless/foam_dart/riot + name = "riot foam dart" + desc = "Whose smart idea was it to use toys as crowd control? Ages 18 and up." + projectile_type = /obj/item/projectile/bullet/reusable/foam_dart/riot + icon_state = "foamdart_riot" + +/obj/item/ammo_casing/caseless/arrow + name = "arrow" + desc = "Stab, stab, stab." + icon_state = "arrow" + force = 10 + sharpness = IS_SHARP + projectile_type = /obj/item/projectile/bullet/reusable/arrow + caliber = "arrow" diff --git a/code/modules/projectiles/ammunition/energy.dm b/code/modules/projectiles/ammunition/energy.dm index f1a94ee5c1..12b5143574 100644 --- a/code/modules/projectiles/ammunition/energy.dm +++ b/code/modules/projectiles/ammunition/energy.dm @@ -6,6 +6,7 @@ var/e_cost = 100 //The amount of energy a cell needs to expend to create this shot. var/select_name = "energy" fire_sound = 'sound/weapons/Laser.ogg' + firing_effect_type = /obj/effect/overlay/temp/dir_setting/firing_effect/energy /obj/item/ammo_casing/energy/laser projectile_type = /obj/item/projectile/beam/laser @@ -29,6 +30,11 @@ variance = 25 select_name = "scatter" +/obj/item/ammo_casing/energy/laser/scatter/disabler + projectile_type = /obj/item/projectile/beam/disabler + pellets = 3 + variance = 15 + /obj/item/ammo_casing/energy/laser/heavy projectile_type = /obj/item/projectile/beam/laser/heavylaser select_name = "anti-vehicle" @@ -106,18 +112,6 @@ projectile_type = /obj/item/projectile/meteor select_name = "goddamn meteor" -/obj/item/ammo_casing/energy/kinetic - projectile_type = /obj/item/projectile/kinetic - select_name = "kinetic" - e_cost = 500 - fire_sound = 'sound/weapons/Kenetic_accel.ogg' // fine spelling there chap - -/obj/item/ammo_casing/energy/kinetic/super - projectile_type = /obj/item/projectile/kinetic/super - -/obj/item/ammo_casing/energy/kinetic/hyper - projectile_type = /obj/item/projectile/kinetic/hyper - /obj/item/ammo_casing/energy/disabler projectile_type = /obj/item/projectile/beam/disabler select_name = "disable" @@ -153,11 +147,14 @@ e_cost = 500 fire_sound = 'sound/weapons/Genhit.ogg' +/obj/item/ammo_casing/energy/bolt/halloween + projectile_type = /obj/item/projectile/energy/bolt/halloween + /obj/item/ammo_casing/energy/bolt/large projectile_type = /obj/item/projectile/energy/bolt/large select_name = "heavy bolt" -obj/item/ammo_casing/energy/net +/obj/item/ammo_casing/energy/net projectile_type = /obj/item/projectile/energy/net select_name = "netting" pellets = 6 @@ -178,11 +175,11 @@ obj/item/ammo_casing/energy/net /obj/item/ammo_casing/energy/instakill/red projectile_type = /obj/item/projectile/beam/instakill/red -/obj/item/ammo_casing/energy/shock_revolver +/obj/item/ammo_casing/energy/tesla_revolver fire_sound = 'sound/magic/lightningbolt.ogg' e_cost = 200 select_name = "stun" - projectile_type = /obj/item/projectile/energy/shock_revolver + projectile_type = /obj/item/projectile/energy/tesla_revolver /obj/item/ammo_casing/energy/gravityrepulse projectile_type = /obj/item/projectile/gravityrepulse @@ -216,4 +213,12 @@ obj/item/ammo_casing/energy/net var/obj/item/weapon/gun/energy/gravity_gun/gun = null /obj/item/ammo_casing/energy/gravitychaos/New(var/obj/item/weapon/gun/energy/gravity_gun/G) - gun = G \ No newline at end of file + gun = G + +/obj/item/ammo_casing/energy/plasma + projectile_type = /obj/item/projectile/plasma + select_name = "plasma burst" + fire_sound = 'sound/weapons/pulse.ogg' + +/obj/item/ammo_casing/energy/plasma/adv + projectile_type = /obj/item/projectile/plasma/adv diff --git a/code/modules/projectiles/ammunition/special.dm b/code/modules/projectiles/ammunition/special.dm index b91ce29a99..0c6a09a98a 100644 --- a/code/modules/projectiles/ammunition/special.dm +++ b/code/modules/projectiles/ammunition/special.dm @@ -2,6 +2,7 @@ name = "magic casing" desc = "I didn't even know magic needed ammo..." projectile_type = /obj/item/projectile/magic + firing_effect_type = /obj/effect/overlay/temp/dir_setting/firing_effect/magic /obj/item/ammo_casing/magic/change projectile_type = /obj/item/projectile/magic/change @@ -27,6 +28,12 @@ /obj/item/ammo_casing/magic/chaos projectile_type = /obj/item/projectile/magic +/obj/item/ammo_casing/magic/spellblade + projectile_type = /obj/item/projectile/magic/spellblade + +/obj/item/ammo_casing/magic/arcane_barrage + projectile_type = /obj/item/projectile/magic/arcane_barrage + /obj/item/ammo_casing/magic/chaos/newshot() projectile_type = pick(typesof(/obj/item/projectile/magic)) ..() @@ -37,10 +44,31 @@ /obj/item/ammo_casing/syringegun name = "syringe gun spring" desc = "A high-power spring that throws syringes." - projectile_type = null + projectile_type = /obj/item/projectile/bullet/dart/syringe + firing_effect_type = null + +/obj/item/ammo_casing/syringegun/ready_proj(atom/target, mob/living/user, quiet, zone_override = "") + if(!BB) + return + if(istype(loc, /obj/item/weapon/gun/syringe)) + var/obj/item/weapon/gun/syringe/SG = loc + if(!SG.syringes.len) + return + + var/obj/item/weapon/reagent_containers/syringe/S = SG.syringes[1] + + S.reagents.trans_to(BB, S.reagents.total_volume) + BB.name = S.name + var/obj/item/projectile/bullet/dart/D = BB + D.piercing = S.proj_piercing + SG.syringes.Remove(S) + qdel(S) + ..() + /obj/item/ammo_casing/energy/c3dbullet projectile_type = /obj/item/projectile/bullet/midbullet3 select_name = "spraydown" fire_sound = 'sound/weapons/gunshot_smg.ogg' e_cost = 20 + firing_effect_type = /obj/effect/overlay/temp/dir_setting/firing_effect diff --git a/code/modules/projectiles/box_magazine.dm b/code/modules/projectiles/box_magazine.dm new file mode 100644 index 0000000000..3cf4568fbd --- /dev/null +++ b/code/modules/projectiles/box_magazine.dm @@ -0,0 +1,117 @@ +//Boxes of ammo +/obj/item/ammo_box + name = "ammo box (null_reference_exception)" + desc = "A box of ammo." + icon_state = "357" + icon = 'icons/obj/ammo.dmi' + flags = CONDUCT + slot_flags = SLOT_BELT + item_state = "syringe_kit" + materials = list(MAT_METAL=30000) + throwforce = 2 + w_class = WEIGHT_CLASS_TINY + throw_speed = 3 + throw_range = 7 + var/list/stored_ammo = list() + var/ammo_type = /obj/item/ammo_casing + var/max_ammo = 7 + var/multiple_sprites = 0 + var/caliber + var/multiload = 1 + var/start_empty = 0 + +/obj/item/ammo_box/New() + ..() + if(!start_empty) + for(var/i = 1, i <= max_ammo, i++) + stored_ammo += new ammo_type(src) + update_icon() + +/obj/item/ammo_box/proc/get_round(keep = 0) + if (!stored_ammo.len) + return null + else + var/b = stored_ammo[stored_ammo.len] + stored_ammo -= b + if (keep) + stored_ammo.Insert(1,b) + return b + +/obj/item/ammo_box/proc/give_round(obj/item/ammo_casing/R, replace_spent = 0) + // Boxes don't have a caliber type, magazines do. Not sure if it's intended or not, but if we fail to find a caliber, then we fall back to ammo_type. + if(!R || (caliber && R.caliber != caliber) || (!caliber && R.type != ammo_type)) + return 0 + + if (stored_ammo.len < max_ammo) + stored_ammo += R + R.forceMove(src) + return 1 + + //for accessibles magazines (e.g internal ones) when full, start replacing spent ammo + else if(replace_spent) + for(var/obj/item/ammo_casing/AC in stored_ammo) + if(!AC.BB)//found a spent ammo + stored_ammo -= AC + AC.forceMove(get_turf(src.loc)) + + stored_ammo += R + R.forceMove(src) + return 1 + + return 0 + +/obj/item/ammo_box/proc/can_load(mob/user) + return 1 + +/obj/item/ammo_box/attackby(obj/item/A, mob/user, params, silent = 0, replace_spent = 0) + var/num_loaded = 0 + if(!can_load(user)) + return + if(istype(A, /obj/item/ammo_box)) + var/obj/item/ammo_box/AM = A + for(var/obj/item/ammo_casing/AC in AM.stored_ammo) + var/did_load = give_round(AC, replace_spent) + if(did_load) + AM.stored_ammo -= AC + num_loaded++ + if(!did_load || !multiload) + break + if(istype(A, /obj/item/ammo_casing)) + var/obj/item/ammo_casing/AC = A + if(give_round(AC, replace_spent)) + user.drop_item() + AC.forceMove(src) + num_loaded++ + + if(num_loaded) + if(!silent) + user << "You load [num_loaded] shell\s into \the [src]!" + A.update_icon() + update_icon() + + return num_loaded + +/obj/item/ammo_box/attack_self(mob/user) + var/obj/item/ammo_casing/A = get_round() + if(A) + user.put_in_hands(A) + user << "You remove a round from \the [src]!" + update_icon() + +/obj/item/ammo_box/update_icon() + switch(multiple_sprites) + if(1) + icon_state = "[initial(icon_state)]-[stored_ammo.len]" + if(2) + icon_state = "[initial(icon_state)]-[stored_ammo.len ? "[max_ammo]" : "0"]" + desc = "[initial(desc)] There are [stored_ammo.len] shell\s left!" + +//Behavior for magazines +/obj/item/ammo_box/magazine/proc/ammo_count() + return stored_ammo.len + +/obj/item/ammo_box/magazine/proc/empty_magazine() + var/turf_mag = get_turf(src) + for(var/obj/item/ammo in stored_ammo) + ammo.forceMove(turf_mag) + stored_ammo -= ammo \ No newline at end of file diff --git a/code/modules/projectiles/ammunition/boxes.dm b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm similarity index 100% rename from code/modules/projectiles/ammunition/boxes.dm rename to code/modules/projectiles/boxes_magazines/ammo_boxes.dm diff --git a/code/modules/projectiles/ammunition/magazines.dm b/code/modules/projectiles/boxes_magazines/external_mag.dm similarity index 64% rename from code/modules/projectiles/ammunition/magazines.dm rename to code/modules/projectiles/boxes_magazines/external_mag.dm index de2420149a..d4c6204233 100644 --- a/code/modules/projectiles/ammunition/magazines.dm +++ b/code/modules/projectiles/boxes_magazines/external_mag.dm @@ -1,179 +1,3 @@ -////////////////INTERNAL MAGAZINES////////////////////// - -/obj/item/ammo_box/magazine/internal - desc = "Oh god, this shouldn't be here" - -//internals magazines are accessible, so replace spent ammo if full when trying to put a live one in -/obj/item/ammo_box/magazine/internal/give_round(obj/item/ammo_casing/R) - return ..(R,1) - - - -// Revolver internal mags -/obj/item/ammo_box/magazine/internal/cylinder - name = "revolver cylinder" - ammo_type = /obj/item/ammo_casing/a357 - caliber = "357" - max_ammo = 7 - -/obj/item/ammo_box/magazine/internal/cylinder/ammo_count(countempties = 1) - var/boolets = 0 - for(var/obj/item/ammo_casing/bullet in stored_ammo) - if(bullet && (bullet.BB || countempties)) - boolets++ - - return boolets - -/obj/item/ammo_box/magazine/internal/cylinder/get_round(keep = 0) - rotate() - - var/b = stored_ammo[1] - if(!keep) - stored_ammo[1] = null - - return b - -/obj/item/ammo_box/magazine/internal/cylinder/proc/rotate() - var/b = stored_ammo[1] - stored_ammo.Cut(1,2) - stored_ammo.Insert(0, b) - -/obj/item/ammo_box/magazine/internal/cylinder/proc/spin() - for(var/i in 1 to rand(0, max_ammo*2)) - rotate() - - -/obj/item/ammo_box/magazine/internal/cylinder/give_round(obj/item/ammo_casing/R, replace_spent = 0) - if(!R || (caliber && R.caliber != caliber) || (!caliber && R.type != ammo_type)) - return 0 - - for(var/i in 1 to stored_ammo.len) - var/obj/item/ammo_casing/bullet = stored_ammo[i] - if(!bullet || !bullet.BB) // found a spent ammo - stored_ammo[i] = R - R.loc = src - - if(bullet) - bullet.loc = get_turf(src.loc) - return 1 - - return 0 - -/obj/item/ammo_box/magazine/internal/cylinder/rev38 - name = "detective revolver cylinder" - ammo_type = /obj/item/ammo_casing/c38 - caliber = "38" - max_ammo = 6 - -/obj/item/ammo_box/magazine/internal/cylinder/grenademulti - name = "grenade launcher internal magazine" - ammo_type = /obj/item/ammo_casing/a40mm - caliber = "40mm" - max_ammo = 6 - -/obj/item/ammo_box/magazine/internal/cylinder/rev762 - name = "nagant revolver cylinder" - ammo_type = /obj/item/ammo_casing/n762 - caliber = "n762" - max_ammo = 7 - -// Shotgun internal mags -/obj/item/ammo_box/magazine/internal/shot - name = "shotgun internal magazine" - ammo_type = /obj/item/ammo_casing/shotgun/beanbag - caliber = "shotgun" - max_ammo = 4 - multiload = 0 - -/obj/item/ammo_box/magazine/internal/shot/ammo_count(countempties = 1) - if (!countempties) - var/boolets = 0 - for(var/obj/item/ammo_casing/bullet in stored_ammo) - if(bullet.BB) - boolets++ - return boolets - else - return ..() - - -/obj/item/ammo_box/magazine/internal/shot/tube - name = "dual feed shotgun internal tube" - ammo_type = /obj/item/ammo_casing/shotgun/rubbershot - max_ammo = 4 - -/obj/item/ammo_box/magazine/internal/shot/lethal - ammo_type = /obj/item/ammo_casing/shotgun/buckshot - -/obj/item/ammo_box/magazine/internal/shot/com - name = "combat shotgun internal magazine" - ammo_type = /obj/item/ammo_casing/shotgun/buckshot - max_ammo = 6 - -/obj/item/ammo_box/magazine/internal/shot/dual - name = "double-barrel shotgun internal magazine" - max_ammo = 2 - -/obj/item/ammo_box/magazine/internal/shot/improvised - name = "improvised shotgun internal magazine" - ammo_type = /obj/item/ammo_casing/shotgun/improvised - max_ammo = 1 - -/obj/item/ammo_box/magazine/internal/shot/riot - name = "riot shotgun internal magazine" - ammo_type = /obj/item/ammo_casing/shotgun/rubbershot - max_ammo = 6 - - - - -/obj/item/ammo_box/magazine/internal/grenadelauncher - name = "grenade launcher internal magazine" - ammo_type = /obj/item/ammo_casing/a40mm - caliber = "40mm" - max_ammo = 1 - -/obj/item/ammo_box/magazine/internal/speargun - name = "speargun internal magazine" - ammo_type = /obj/item/ammo_casing/caseless/magspear - caliber = "speargun" - max_ammo = 1 - -/obj/item/ammo_box/magazine/internal/rus357 - name = "russian revolver cylinder" - ammo_type = /obj/item/ammo_casing/a357 - caliber = "357" - max_ammo = 6 - multiload = 0 - -/obj/item/ammo_box/magazine/internal/rus357/New() - stored_ammo += new ammo_type(src) - -/obj/item/ammo_box/magazine/internal/boltaction - name = "bolt action rifle internal magazine" - desc = "Oh god, this shouldn't be here" - ammo_type = /obj/item/ammo_casing/a762 - caliber = "a762" - max_ammo = 5 - multiload = 1 - -/obj/item/ammo_box/magazine/internal/boltaction/enchanted - max_ammo =1 - ammo_type = /obj/item/ammo_casing/a762/enchanted - - -/obj/item/ammo_box/magazine/internal/shot/toy - ammo_type = /obj/item/ammo_casing/caseless/foam_dart - caliber = "foam_force" - max_ammo = 4 - -/obj/item/ammo_box/magazine/internal/shot/toy/crossbow - max_ammo = 5 - -/obj/item/ammo_box/magazine/internal/minigun - name = "gatling gun fusion core" - ammo_type = /obj/item/ammo_casing/caseless/laser/gatling - caliber = "gatling" - max_ammo = 5000 @@ -189,6 +13,21 @@ max_ammo = 8 multiple_sprites = 2 +/obj/item/ammo_box/magazine/m10mm/fire + name = "pistol magazine (10mm incendiary)" + desc = "A gun magazine. Loaded with rounds which ignite the target." + ammo_type = /obj/item/ammo_casing/c10mm/fire + +/obj/item/ammo_box/magazine/m10mm/hp + name = "pistol magazine (10mm HP)" + desc= "A gun magazine. Loaded with hollow-point rounds, extremely effective against unarmored targets, but nearly useless against protective clothing." + ammo_type = /obj/item/ammo_casing/c10mm/hp + +/obj/item/ammo_box/magazine/m10mm/ap + name = "pistol magazine (10mm AP)" + desc= "A gun magazine. Loaded with rounds which penetrate armour, but are less effective against normal targets" + ammo_type = /obj/item/ammo_casing/c10mm/ap + /obj/item/ammo_box/magazine/m45 name = "handgun magazine (.45)" icon_state = "45-8" @@ -280,7 +119,7 @@ ..() icon_state = "c20r45-[round(ammo_count(),2)]" -obj/item/ammo_box/magazine/tommygunm45 +/obj/item/ammo_box/magazine/tommygunm45 name = "drum magazine (.45)" icon_state = "drum45" ammo_type = /obj/item/ammo_casing/c45 @@ -439,12 +278,15 @@ obj/item/ammo_box/magazine/tommygunm45 /obj/item/ammo_box/magazine/toy/smg name = "foam force SMG magazine" - icon_state = "smg9mm-20" + icon_state = "smg9mm-42" max_ammo = 20 /obj/item/ammo_box/magazine/toy/smg/update_icon() ..() - icon_state = "smg9mm-[round(ammo_count(),5)]" + if(ammo_count()) + icon_state = "smg9mm-42" + else + icon_state = "smg9mm-0" /obj/item/ammo_box/magazine/toy/smg/riot ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot diff --git a/code/modules/projectiles/boxes_magazines/internal_mag.dm b/code/modules/projectiles/boxes_magazines/internal_mag.dm new file mode 100644 index 0000000000..3e7112ffed --- /dev/null +++ b/code/modules/projectiles/boxes_magazines/internal_mag.dm @@ -0,0 +1,192 @@ +////////////////INTERNAL MAGAZINES////////////////////// + +/obj/item/ammo_box/magazine/internal + desc = "Oh god, this shouldn't be here" + +//internals magazines are accessible, so replace spent ammo if full when trying to put a live one in +/obj/item/ammo_box/magazine/internal/give_round(obj/item/ammo_casing/R) + return ..(R,1) + + + +// Revolver internal mags +/obj/item/ammo_box/magazine/internal/cylinder + name = "revolver cylinder" + ammo_type = /obj/item/ammo_casing/a357 + caliber = "357" + max_ammo = 7 + +/obj/item/ammo_box/magazine/internal/cylinder/ammo_count(countempties = 1) + var/boolets = 0 + for(var/obj/item/ammo_casing/bullet in stored_ammo) + if(bullet && (bullet.BB || countempties)) + boolets++ + + return boolets + +/obj/item/ammo_box/magazine/internal/cylinder/get_round(keep = 0) + rotate() + + var/b = stored_ammo[1] + if(!keep) + stored_ammo[1] = null + + return b + +/obj/item/ammo_box/magazine/internal/cylinder/proc/rotate() + var/b = stored_ammo[1] + stored_ammo.Cut(1,2) + stored_ammo.Insert(0, b) + +/obj/item/ammo_box/magazine/internal/cylinder/proc/spin() + for(var/i in 1 to rand(0, max_ammo*2)) + rotate() + + +/obj/item/ammo_box/magazine/internal/cylinder/give_round(obj/item/ammo_casing/R, replace_spent = 0) + if(!R || (caliber && R.caliber != caliber) || (!caliber && R.type != ammo_type)) + return 0 + + for(var/i in 1 to stored_ammo.len) + var/obj/item/ammo_casing/bullet = stored_ammo[i] + if(!bullet || !bullet.BB) // found a spent ammo + stored_ammo[i] = R + R.loc = src + + if(bullet) + bullet.loc = get_turf(src.loc) + return 1 + + return 0 + +/obj/item/ammo_box/magazine/internal/cylinder/rev38 + name = "detective revolver cylinder" + ammo_type = /obj/item/ammo_casing/c38 + caliber = "38" + max_ammo = 6 + +/obj/item/ammo_box/magazine/internal/cylinder/grenademulti + name = "grenade launcher internal magazine" + ammo_type = /obj/item/ammo_casing/a40mm + caliber = "40mm" + max_ammo = 6 + +/obj/item/ammo_box/magazine/internal/cylinder/rev762 + name = "nagant revolver cylinder" + ammo_type = /obj/item/ammo_casing/n762 + caliber = "n762" + max_ammo = 7 + +// Shotgun internal mags +/obj/item/ammo_box/magazine/internal/shot + name = "shotgun internal magazine" + ammo_type = /obj/item/ammo_casing/shotgun/beanbag + caliber = "shotgun" + max_ammo = 4 + multiload = 0 + +/obj/item/ammo_box/magazine/internal/shot/ammo_count(countempties = 1) + if (!countempties) + var/boolets = 0 + for(var/obj/item/ammo_casing/bullet in stored_ammo) + if(bullet.BB) + boolets++ + return boolets + else + return ..() + + +/obj/item/ammo_box/magazine/internal/shot/tube + name = "dual feed shotgun internal tube" + ammo_type = /obj/item/ammo_casing/shotgun/rubbershot + max_ammo = 4 + +/obj/item/ammo_box/magazine/internal/shot/lethal + ammo_type = /obj/item/ammo_casing/shotgun/buckshot + +/obj/item/ammo_box/magazine/internal/shot/com + name = "combat shotgun internal magazine" + ammo_type = /obj/item/ammo_casing/shotgun/buckshot + max_ammo = 6 + +/obj/item/ammo_box/magazine/internal/shot/dual + name = "double-barrel shotgun internal magazine" + max_ammo = 2 + +/obj/item/ammo_box/magazine/internal/shot/improvised + name = "improvised shotgun internal magazine" + ammo_type = /obj/item/ammo_casing/shotgun/improvised + max_ammo = 1 + +/obj/item/ammo_box/magazine/internal/shot/riot + name = "riot shotgun internal magazine" + ammo_type = /obj/item/ammo_casing/shotgun/rubbershot + max_ammo = 6 + + + + +/obj/item/ammo_box/magazine/internal/grenadelauncher + name = "grenade launcher internal magazine" + ammo_type = /obj/item/ammo_casing/a40mm + caliber = "40mm" + max_ammo = 1 + +/obj/item/ammo_box/magazine/internal/rocketlauncher + name = "grenade launcher internal magazine" + ammo_type = /obj/item/ammo_casing/caseless/a84mm + caliber = "84mm" + max_ammo = 1 + +/obj/item/ammo_box/magazine/internal/speargun + name = "speargun internal magazine" + ammo_type = /obj/item/ammo_casing/caseless/magspear + caliber = "speargun" + max_ammo = 1 + +/obj/item/ammo_box/magazine/internal/cylinder/rus357 + name = "russian revolver cylinder" + ammo_type = /obj/item/ammo_casing/a357 + caliber = "357" + max_ammo = 6 + multiload = 0 + +/obj/item/ammo_box/magazine/internal/rus357/New() + stored_ammo += new ammo_type(src) + ..() + +/obj/item/ammo_box/magazine/internal/boltaction + name = "bolt action rifle internal magazine" + desc = "Oh god, this shouldn't be here" + ammo_type = /obj/item/ammo_casing/a762 + caliber = "a762" + max_ammo = 5 + multiload = 1 + +/obj/item/ammo_box/magazine/internal/boltaction/enchanted + max_ammo = 1 + ammo_type = /obj/item/ammo_casing/a762/enchanted + +/obj/item/ammo_box/magazine/internal/boltaction/enchanted/arcane_barrage + ammo_type = /obj/item/ammo_casing/magic/arcane_barrage + +/obj/item/ammo_box/magazine/internal/shot/toy + ammo_type = /obj/item/ammo_casing/caseless/foam_dart + caliber = "foam_force" + max_ammo = 4 + +/obj/item/ammo_box/magazine/internal/shot/toy/crossbow + max_ammo = 5 + +/obj/item/ammo_box/magazine/internal/minigun + name = "gatling gun fusion core" + ammo_type = /obj/item/ammo_casing/caseless/laser/gatling + caliber = "gatling" + max_ammo = 5000 + + +/obj/item/ammo_box/magazine/internal/bow + name = "bow internal magazine" + ammo_type = /obj/item/ammo_casing/caseless/arrow + caliber = "arrow" + max_ammo = 1 diff --git a/code/modules/projectiles/firing.dm b/code/modules/projectiles/firing.dm index 5933d94cf8..6fdc617ef4 100644 --- a/code/modules/projectiles/firing.dm +++ b/code/modules/projectiles/firing.dm @@ -1,4 +1,4 @@ -/obj/item/ammo_casing/proc/fire(atom/target as mob|obj|turf, mob/living/user as mob|obj, params, distro, quiet, zone_override = "",spread) +/obj/item/ammo_casing/proc/fire_casing(atom/target, mob/living/user, params, distro, quiet, zone_override, spread) distro += variance for (var/i = max(1, pellets), i > 0, i--) var/targloc = get_turf(target) @@ -20,7 +20,7 @@ update_icon() return 1 -/obj/item/ammo_casing/proc/ready_proj(atom/target, mob/living/user, quiet, zone_override = "") +/obj/item/ammo_casing/proc/ready_proj(atom/target, mob/living/user, quiet, zone_override) if (!BB) return BB.original = target @@ -39,17 +39,20 @@ var/turf/curloc = get_turf(user) if (!istype(targloc) || !istype(curloc) || !BB) return 0 - BB.ammo_casing = src - if(targloc == curloc) - if(target) //if the target is right on our location we go straight to bullet_act() - target.bullet_act(BB, BB.def_zone) - qdel(BB) - BB = null - return 1 - BB.preparePixelProjectile(target, targloc, user, params, spread) - if(BB) - BB.fire() + var/firing_dir + if(BB.firer) + firing_dir = BB.firer.dir + if(!BB.suppressed && firing_effect_type) + PoolOrNew(firing_effect_type, list(get_turf(src), firing_dir)) + + var/direct_target + if(targloc == curloc) + if(target) //if the target is right on our location we'll skip the travelling code in the proj's fire() + direct_target = target + if(!direct_target) + BB.preparePixelProjectile(target, targloc, user, params, spread) + BB.fire(null, direct_target) BB = null return 1 @@ -57,42 +60,3 @@ var/dx = abs(target.x - current.x) var/dy = abs(target.y - current.y) return locate(target.x + round(gaussian(0, distro) * (dy+2)/8, 1), target.y + round(gaussian(0, distro) * (dx+2)/8, 1), target.z) - -/obj/item/projectile/proc/preparePixelProjectile(atom/target, var/turf/targloc, mob/living/user, params, spread) - var/turf/curloc = get_turf(user) - src.loc = get_turf(user) - src.starting = get_turf(user) - src.current = curloc - src.yo = targloc.y - curloc.y - src.xo = targloc.x - curloc.x - - if(params) - var/list/mouse_control = params2list(params) - if(mouse_control["icon-x"]) - src.p_x = text2num(mouse_control["icon-x"]) - if(mouse_control["icon-y"]) - src.p_y = text2num(mouse_control["icon-y"]) - if(mouse_control["screen-loc"]) - //Split screen-loc up into X+Pixel_X and Y+Pixel_Y - var/list/screen_loc_params = splittext(mouse_control["screen-loc"], ",") - - //Split X+Pixel_X up into list(X, Pixel_X) - var/list/screen_loc_X = splittext(screen_loc_params[1],":") - - //Split Y+Pixel_Y up into list(Y, Pixel_Y) - var/list/screen_loc_Y = splittext(screen_loc_params[2],":") - // world << "X: [screen_loc_X[1]] PixelX: [screen_loc_X[2]] / Y: [screen_loc_Y[1]] PixelY: [screen_loc_Y[2]]" - var/x = text2num(screen_loc_X[1]) * 32 + text2num(screen_loc_X[2]) - 32 - var/y = text2num(screen_loc_Y[1]) * 32 + text2num(screen_loc_Y[2]) - 32 - - //Calculate the "resolution" of screen based on client's view and world's icon size. This will work if the user can view more tiles than average. - var/screenview = (user.client.view * 2 + 1) * world.icon_size //Refer to http://www.byond.com/docs/ref/info.html#/client/var/view for mad maths - - var/ox = round(screenview/2) //"origin" x - var/oy = round(screenview/2) //"origin" y - // world << "Pixel position: [x] [y]" - var/angle = Atan2(y - oy, x - ox) - // world << "Angle: [angle]" - src.Angle = angle - if(spread) - src.Angle += spread \ No newline at end of file diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 6cbaea8fb9..49a1af694e 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -7,13 +7,14 @@ flags = CONDUCT slot_flags = SLOT_BELT materials = list(MAT_METAL=2000) - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL throwforce = 5 throw_speed = 3 throw_range = 5 force = 5 origin_tech = "combat=1" needs_permit = 1 + unique_rename = 0 attack_verb = list("struck", "hit", "bashed") var/fire_sound = "gunshot" @@ -31,11 +32,8 @@ var/firing_burst = 0 //Prevent the weapon from firing again while already firing var/semicd = 0 //cooldown handler var/weapon_weight = WEAPON_LIGHT - var/spread = 0 //Spread induced by the gun itself. var/randomspread = 1 //Set to 0 for shotguns. This is used for weapons that don't fire all their bullets at once. - - var/unique_rename = 0 //allows renaming with a pen var/unique_reskin = 0 //allows one-time reskinning var/current_skin = null //the skin choice if we had a reskin var/list/options = list() @@ -45,7 +43,7 @@ var/obj/item/device/firing_pin/pin = /obj/item/device/firing_pin //standard firing pin for most guns - var/obj/item/device/flashlight/F = null + var/obj/item/device/flashlight/gun_light = null var/can_flashlight = 0 var/list/upgrades = list() @@ -66,7 +64,7 @@ ..() if(pin) pin = new pin(src) - if(F) + if(gun_light) verbs += /obj/item/weapon/gun/proc/toggle_gunlight new /datum/action/item_action/toggle_gunlight(src) build_zooming() @@ -79,7 +77,7 @@ G.loc = loc qdel(G.pin) G.pin = null - visible_message("[G] can now fit a new pin, but old one was destroyed in the process.") + visible_message("[G] can now fit a new pin, but old one was destroyed in the process.", null, null, 3) qdel(src) /obj/item/weapon/gun/examine(mob/user) @@ -90,10 +88,8 @@ user << "It doesn't have a firing pin installed, and won't fire." if(unique_reskin && !current_skin) user << "Alt-click it to reskin it." - if(unique_rename) - user << "Use a pen on it to rename it." - +//called after the gun has successfully fired its chambered ammo. /obj/item/weapon/gun/proc/process_chamber() return 0 @@ -107,7 +103,6 @@ /obj/item/weapon/gun/proc/shoot_with_empty_chamber(mob/living/user as mob|obj) user << "*click*" playsound(user, 'sound/weapons/empty.ogg', 100, 1) - return /obj/item/weapon/gun/proc/shoot_live_shot(mob/living/user as mob|obj, pointblank = 0, mob/pbtarget = null, message = 1) @@ -118,18 +113,11 @@ playsound(user, fire_sound, 10, 1) else playsound(user, fire_sound, 50, 1) - if(!message) - return - if(pointblank) - user.visible_message("[user] fires [src] point blank at [pbtarget]!", "You fire [src] point blank at [pbtarget]!", "You hear a [istype(src, /obj/item/weapon/gun/energy) ? "laser blast" : "gunshot"]!") - else - user.visible_message("[user] fires [src]!", "You fire [src]!", "You hear a [istype(src, /obj/item/weapon/gun/energy) ? "laser blast" : "gunshot"]!") - - if(weapon_weight >= WEAPON_MEDIUM) - if(user.get_inactive_hand()) - if(prob(15)) - if(user.drop_item()) - user.visible_message("[src] flies out of [user]'s hands!", "[src] kicks out of your grip!") + if(message) + if(pointblank) + user.visible_message("[user] fires [src] point blank at [pbtarget]!", null, null, COMBAT_MESSAGE_RANGE) + else + user.visible_message("[user] fires [src]!", null, null, COMBAT_MESSAGE_RANGE) /obj/item/weapon/gun/emp_act(severity) for(var/obj/O in contents) @@ -142,7 +130,7 @@ if(flag) //It's adjacent, is the user, or is on the user's person if(target in user.contents) //can't shoot stuff inside us. return - if(!ismob(target) || user.a_intent == "harm") //melee attack + if(!ismob(target) || user.a_intent == INTENT_HARM) //melee attack return if(target == user && user.zone_selected != "mouth") //so we can't shoot ourselves (unless mouth selected) return @@ -152,7 +140,7 @@ if(!can_trigger_gun(L)) return - if(!can_shoot()) //Just because you can pull the trigger doesn't mean it can't shoot. + if(!can_shoot()) //Just because you can pull the trigger doesn't mean it can shoot. shoot_with_empty_chamber(user) return @@ -166,17 +154,31 @@ if(clumsy_check) if(istype(user)) if (user.disabilities & CLUMSY && prob(40)) - user << "You shoot yourself in the foot with \the [src]!" + user << "You shoot yourself in the foot with [src]!" var/shot_leg = pick("l_leg", "r_leg") process_fire(user,user,0,params, zone_override = shot_leg) user.drop_item() return - if(weapon_weight == WEAPON_HEAVY && user.get_inactive_hand()) - user << "You need both hands free to fire \the [src]!" + if(weapon_weight == WEAPON_HEAVY && user.get_inactive_held_item()) + user << "You need both hands free to fire [src]!" return - process_fire(target,user,1,params) + //DUAL (or more!) WIELDING + var/bonus_spread = 0 + var/loop_counter = 0 + if(ishuman(user) && user.a_intent == INTENT_HARM) + var/mob/living/carbon/human/H = user + for(var/obj/item/weapon/gun/G in H.held_items) + if(G == src || G.weapon_weight >= WEAPON_MEDIUM) + continue + else if(G.can_trigger_gun(user)) + bonus_spread += 24 * G.weapon_weight + loop_counter++ + spawn(loop_counter) + G.process_fire(target,user,1,params, null, bonus_spread) + + process_fire(target,user,1,params, null, bonus_spread) @@ -195,23 +197,23 @@ pin.auth_fail(user) return 0 else - user << "\The [src]'s trigger is locked. This weapon doesn't have a firing pin installed!" + user << "[src]'s trigger is locked. This weapon doesn't have a firing pin installed!" return 0 -obj/item/weapon/gun/proc/newshot() +/obj/item/weapon/gun/proc/recharge_newshot() return -/obj/item/weapon/gun/proc/process_fire(atom/target as mob|obj|turf, mob/living/user as mob|obj, message = 1, params, zone_override) +/obj/item/weapon/gun/proc/process_fire(atom/target as mob|obj|turf, mob/living/user as mob|obj, message = 1, params, zone_override, bonus_spread = 0) add_fingerprint(user) if(semicd) return - if(weapon_weight) - if(user.get_inactive_hand()) - recoil = 4 //one-handed kick - else - recoil = initial(recoil) + var/sprd = 0 + var/randomized_gun_spread = 0 + if(spread) + randomized_gun_spread = rand(0,spread) + var/randomized_bonus_spread = rand(0, bonus_spread) if(burst_size > 1) firing_burst = 1 @@ -219,15 +221,15 @@ obj/item/weapon/gun/proc/newshot() if(!user) break if(!issilicon(user)) - if( i>1 && !(src in get_both_hands(user))) //for burst firing + if( i>1 && !(user.is_holding(src))) //for burst firing break - if(chambered) - var/sprd = 0 + if(chambered && chambered.BB) if(randomspread) - sprd = round((rand() - 0.5) * spread) + sprd = round((rand() - 0.5) * (randomized_gun_spread + randomized_bonus_spread)) else //Smart spread - sprd = round((i / burst_size - 0.5) * spread) - if(!chambered.fire(target, user, params, ,suppressed, zone_override, sprd)) + sprd = round((i / burst_size - 0.5) * (randomized_gun_spread + randomized_bonus_spread)) + + if(!chambered.fire_casing(target, user, params, ,suppressed, zone_override, sprd)) shoot_with_empty_chamber(user) break else @@ -244,7 +246,8 @@ obj/item/weapon/gun/proc/newshot() firing_burst = 0 else if(chambered) - if(!chambered.fire(target, user, params, , suppressed, zone_override, spread)) + sprd = round((pick(1,-1)) * (randomized_gun_spread + randomized_bonus_spread)) + if(!chambered.fire_casing(target, user, params, , suppressed, zone_override, sprd)) shoot_with_empty_chamber(user) return else @@ -262,29 +265,26 @@ obj/item/weapon/gun/proc/newshot() semicd = 0 if(user) - if(user.hand) - user.update_inv_l_hand() - else - user.update_inv_r_hand() + user.update_inv_hands() feedback_add_details("gun_fired","[src.type]") /obj/item/weapon/gun/attack(mob/M as mob, mob/user) - if(user.a_intent == "harm") //Flogging + if(user.a_intent == INTENT_HARM) //Flogging ..() else return /obj/item/weapon/gun/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/device/flashlight/seclite)) - var/obj/item/device/flashlight/seclite/S = I - if(can_flashlight) - if(!F) + if(can_flashlight) + if(istype(I, /obj/item/device/flashlight/seclite)) + var/obj/item/device/flashlight/seclite/S = I + if(!gun_light) if(!user.unEquip(I)) return user << "You click [S] into place on [src]." if(S.on) - set_light(0) - F = S + SetLuminosity(0) + gun_light = S I.loc = src update_icon() update_gunlight(user) @@ -293,51 +293,57 @@ obj/item/weapon/gun/proc/newshot() if(loc == user) A.Grant(user) - if(istype(I, /obj/item/weapon/screwdriver)) - if(F && can_flashlight) - for(var/obj/item/device/flashlight/seclite/S in src) - user << "You unscrew the seclite from [src]." - F = null - S.loc = get_turf(user) - update_gunlight(user) - S.update_brightness(user) - update_icon() - verbs -= /obj/item/weapon/gun/proc/toggle_gunlight - for(var/datum/action/item_action/toggle_gunlight/TGL in actions) - qdel(TGL) + if(istype(I, /obj/item/weapon/screwdriver)) + if(gun_light) + for(var/obj/item/device/flashlight/seclite/S in src) + user << "You unscrew the seclite from [src]." + gun_light = null + S.forceMove(get_turf(user)) + update_gunlight(user) + S.update_brightness(user) + update_icon() + verbs -= /obj/item/weapon/gun/proc/toggle_gunlight + for(var/datum/action/item_action/toggle_gunlight/TGL in actions) + qdel(TGL) + else + ..() + - if(unique_rename) - if(istype(I, /obj/item/weapon/pen)) - rename_gun(user) - ..() /obj/item/weapon/gun/proc/toggle_gunlight() set name = "Toggle Gunlight" set category = "Object" set desc = "Click to toggle your weapon's attached flashlight." - if(!F) + if(!gun_light) return var/mob/living/carbon/human/user = usr - if(!isturf(user.loc)) - user << "You cannot turn the light on while in this [user.loc]!" - F.on = !F.on - user << "You toggle the gunlight [F.on ? "on":"off"]." + gun_light.on = !gun_light.on + user << "You toggle the gunlight [gun_light.on ? "on":"off"]." playsound(user, 'sound/weapons/empty.ogg', 100, 1) update_gunlight(user) return /obj/item/weapon/gun/proc/update_gunlight(mob/user = null) - if(F) - if(F.on) - set_light(F.brightness_on) + if(gun_light) + if(gun_light.on) + if(loc == user) + user.AddLuminosity(gun_light.brightness_on) + else if(isturf(loc)) + SetLuminosity(gun_light.brightness_on) else - set_light(0) + if(loc == user) + user.AddLuminosity(-gun_light.brightness_on) + else if(isturf(loc)) + SetLuminosity(0) update_icon() else - set_light(0) + if(loc == user) + user.AddLuminosity(-5) + else if(isturf(loc)) + SetLuminosity(0) for(var/X in actions) var/datum/action/A = X A.UpdateButtonIcon() @@ -345,11 +351,19 @@ obj/item/weapon/gun/proc/newshot() /obj/item/weapon/gun/pickup(mob/user) ..() + if(gun_light) + if(gun_light.on) + user.AddLuminosity(gun_light.brightness_on) + SetLuminosity(0) if(azoom) azoom.Grant(user) /obj/item/weapon/gun/dropped(mob/user) ..() + if(gun_light) + if(gun_light.on) + user.AddLuminosity(-gun_light.brightness_on) + SetLuminosity(gun_light.brightness_on) zoom(user,FALSE) if(azoom) azoom.Remove(user) @@ -375,13 +389,6 @@ obj/item/weapon/gun/proc/newshot() update_icon() -/obj/item/weapon/gun/proc/rename_gun(mob/M) - var/input = stripped_input(M,"What do you want to name the gun?", ,"", MAX_NAME_LEN) - - if(src && input && !M.stat && in_range(M,src) && !M.restrained() && M.canmove) - name = input - M << "You name the gun [input]. Say hello to your new friend." - return /obj/item/weapon/gun/proc/handle_suicide(mob/living/carbon/human/user, mob/living/carbon/human/target, params) @@ -392,7 +399,7 @@ obj/item/weapon/gun/proc/newshot() return if(user == target) - target.visible_message("[user] sticks [src] in their mouth, ready to pull the trigger...", \ + target.visible_message("[user] sticks [src] in [user.p_their()] mouth, ready to pull the trigger...", \ "You stick [src] in your mouth, ready to pull the trigger...") else target.visible_message("[user] points [src] at [target]'s head, ready to pull the trigger...", \ @@ -487,8 +494,3 @@ obj/item/weapon/gun/proc/newshot() azoom = new() azoom.gun = src - -/obj/item/weapon/gun/burn() - if(pin) - qdel(pin) - .=..() diff --git a/code/modules/projectiles/guns/projectile.dm b/code/modules/projectiles/guns/ballistic.dm similarity index 73% rename from code/modules/projectiles/guns/projectile.dm rename to code/modules/projectiles/guns/ballistic.dm index adea212aa6..a8dd8f9bcb 100644 --- a/code/modules/projectiles/guns/projectile.dm +++ b/code/modules/projectiles/guns/ballistic.dm @@ -1,21 +1,25 @@ -/obj/item/weapon/gun/projectile +/obj/item/weapon/gun/ballistic desc = "Now comes in flavors like GUN. Uses 10mm ammo, for some reason" name = "projectile gun" icon_state = "pistol" origin_tech = "combat=2;materials=2" - w_class = 3 - + w_class = WEIGHT_CLASS_NORMAL + var/spawnwithmagazine = 1 var/mag_type = /obj/item/ammo_box/magazine/m10mm //Removes the need for max_ammo and caliber info var/obj/item/ammo_box/magazine/magazine + var/casing_ejector = 1 //whether the gun ejects the chambered casing -/obj/item/weapon/gun/projectile/New() +/obj/item/weapon/gun/ballistic/New() ..() + if(!spawnwithmagazine) + update_icon() + return if (!magazine) magazine = new mag_type(src) chamber_round() update_icon() -/obj/item/weapon/gun/projectile/update_icon() +/obj/item/weapon/gun/ballistic/update_icon() ..() if(current_skin) icon_state = "[current_skin][suppressed ? "-suppressed" : ""][sawn_state ? "-sawn" : ""]" @@ -23,43 +27,38 @@ icon_state = "[initial(icon_state)][suppressed ? "-suppressed" : ""][sawn_state ? "-sawn" : ""]" -/obj/item/weapon/gun/projectile/process_chamber(eject_casing = 1, empty_chamber = 1) -// if(in_chamber) -// return 1 +/obj/item/weapon/gun/ballistic/process_chamber(empty_chamber = 1) var/obj/item/ammo_casing/AC = chambered //Find chambered round - if(isnull(AC) || !istype(AC)) - chamber_round() - return - if(eject_casing) - AC.loc = get_turf(src) //Eject casing onto ground. - AC.SpinAnimation(10, 1) //next gen special effects - - if(empty_chamber) - chambered = null + if(istype(AC)) //there's a chambered round + if(casing_ejector) + AC.forceMove(get_turf(src)) //Eject casing onto ground. + AC.SpinAnimation(10, 1) //next gen special effects + chambered = null + else if(empty_chamber) + chambered = null chamber_round() - return -/obj/item/weapon/gun/projectile/proc/chamber_round() + +/obj/item/weapon/gun/ballistic/proc/chamber_round() if (chambered || !magazine) return else if (magazine.ammo_count()) chambered = magazine.get_round() - chambered.loc = src - return + chambered.forceMove(src) -/obj/item/weapon/gun/projectile/can_shoot() +/obj/item/weapon/gun/ballistic/can_shoot() if(!magazine || !magazine.ammo_count(0)) return 0 return 1 -/obj/item/weapon/gun/projectile/attackby(obj/item/A, mob/user, params) +/obj/item/weapon/gun/ballistic/attackby(obj/item/A, mob/user, params) ..() if (istype(A, /obj/item/ammo_box/magazine)) var/obj/item/ammo_box/magazine/AM = A if (!magazine && istype(AM, mag_type)) user.remove_from_mob(AM) magazine = AM - magazine.loc = src + magazine.forceMove(src) user << "You load a new magazine into \the [src]." chamber_round() A.update_icon() @@ -78,7 +77,7 @@ S.oldsound = fire_sound S.initial_w_class = w_class fire_sound = 'sound/weapons/Gunshot_silenced.ogg' - w_class = 3 //so pistols do not fit in pockets when suppressed + w_class = WEIGHT_CLASS_NORMAL //so pistols do not fit in pockets when suppressed A.loc = src update_icon() return @@ -90,11 +89,11 @@ return return 0 -/obj/item/weapon/gun/projectile/attack_hand(mob/user) +/obj/item/weapon/gun/ballistic/attack_hand(mob/user) if(loc == user) if(suppressed && can_unsuppress) var/obj/item/weapon/suppressor/S = suppressed - if(user.l_hand != src && user.r_hand != src) + if(!user.is_holding(src)) ..() return user << "You unscrew [suppressed] from [src]." @@ -106,7 +105,7 @@ return ..() -/obj/item/weapon/gun/projectile/attack_self(mob/living/user) +/obj/item/weapon/gun/ballistic/attack_self(mob/living/user) var/obj/item/ammo_casing/AC = chambered //Find chambered round if(magazine) magazine.loc = get_turf(src.loc) @@ -125,11 +124,11 @@ return -/obj/item/weapon/gun/projectile/examine(mob/user) +/obj/item/weapon/gun/ballistic/examine(mob/user) ..() user << "Has [get_ammo()] round\s remaining." -/obj/item/weapon/gun/projectile/proc/get_ammo(countchambered = 1) +/obj/item/weapon/gun/ballistic/proc/get_ammo(countchambered = 1) var/boolets = 0 //mature var names for mature people if (chambered && countchambered) boolets++ @@ -137,25 +136,25 @@ boolets += magazine.ammo_count() return boolets -/obj/item/weapon/gun/projectile/suicide_act(mob/user) - if (src.chambered && src.chambered.BB && !src.chambered.BB.nodamage) - user.visible_message("[user] is putting the barrel of the [src.name] in \his mouth. It looks like \he's trying to commit suicide.") +/obj/item/weapon/gun/ballistic/suicide_act(mob/user) + if (chambered && chambered.BB && !chambered.BB.nodamage) + user.visible_message("[user] is putting the barrel of [src] in [user.p_their()] mouth. It looks like [user.p_theyre()] trying to commit suicide!") sleep(25) - if(user.l_hand == src || user.r_hand == src) + if(user.is_holding(src)) process_fire(user, user, 0, zone_override = "head") - user.visible_message("[user] blows \his brains out with the [src.name]!") + user.visible_message("[user] blows [user.p_their()] brain[user.p_s()] out with [src]!") return(BRUTELOSS) else user.visible_message("[user] panics and starts choking to death!") return(OXYLOSS) else - user.visible_message("[user] is pretending to blow \his brains out with the [src.name]! It looks like \he's trying to commit suicide!") + user.visible_message("[user] is pretending to blow [user.p_their()] brain[user.p_s()] out with [src]! It looks like [user.p_theyre()] trying to commit suicide!") playsound(loc, 'sound/weapons/empty.ogg', 50, 1, -1) return (OXYLOSS) -/obj/item/weapon/gun/projectile/proc/sawoff(mob/user) +/obj/item/weapon/gun/ballistic/proc/sawoff(mob/user) if(sawn_state == SAWN_OFF) user << "\The [src] is already shortened!" return @@ -173,8 +172,8 @@ user.visible_message("[user] shortens \the [src]!", "You shorten \the [src].") name = "sawn-off [src.name]" desc = sawn_desc - w_class = 3 - item_state = "gun"//phil235 is it different with different skin? + w_class = WEIGHT_CLASS_NORMAL + item_state = "gun" slot_flags &= ~SLOT_BACK //you can't sling it on your back slot_flags |= SLOT_BELT //but you can wear it on your belt (poorly concealed under a trenchcoat, ideally) sawn_state = SAWN_OFF @@ -182,7 +181,7 @@ return 1 // Sawing guns related proc -/obj/item/weapon/gun/projectile/proc/blow_up(mob/user) +/obj/item/weapon/gun/ballistic/proc/blow_up(mob/user) . = 0 for(var/obj/item/ammo_casing/AC in magazine.stored_ammo) if(AC.BB) @@ -195,7 +194,7 @@ desc = "A universal syndicate small-arms suppressor for maximum espionage." icon = 'icons/obj/guns/projectile.dmi' icon_state = "suppressor" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL var/oldsound = null var/initial_w_class = null diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/ballistic/automatic.dm similarity index 70% rename from code/modules/projectiles/guns/projectile/automatic.dm rename to code/modules/projectiles/guns/ballistic/automatic.dm index feea7aa4ea..c53332c22a 100644 --- a/code/modules/projectiles/guns/projectile/automatic.dm +++ b/code/modules/projectiles/guns/ballistic/automatic.dm @@ -1,6 +1,6 @@ -/obj/item/weapon/gun/projectile/automatic +/obj/item/weapon/gun/ballistic/automatic origin_tech = "combat=4;materials=2" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL var/alarmed = 0 var/select = 1 can_suppress = 1 @@ -8,17 +8,17 @@ fire_delay = 2 actions_types = list(/datum/action/item_action/toggle_firemode) -/obj/item/weapon/gun/projectile/automatic/proto +/obj/item/weapon/gun/ballistic/automatic/proto name = "\improper NanoTrasen Saber SMG" desc = "A prototype three-round burst 9mm submachine gun, designated 'SABR'. Has a threaded barrel for suppressors." icon_state = "saber" mag_type = /obj/item/ammo_box/magazine/smgm9mm pin = null -/obj/item/weapon/gun/projectile/automatic/proto/unrestricted +/obj/item/weapon/gun/ballistic/automatic/proto/unrestricted pin = /obj/item/device/firing_pin -/obj/item/weapon/gun/projectile/automatic/update_icon() +/obj/item/weapon/gun/ballistic/automatic/update_icon() ..() cut_overlays() if(!select) @@ -27,7 +27,7 @@ add_overlay("[initial(icon_state)]burst") icon_state = "[initial(icon_state)][magazine ? "-[magazine.max_ammo]" : ""][chambered ? "" : "-e"][suppressed ? "-suppressed" : ""]" -/obj/item/weapon/gun/projectile/automatic/attackby(obj/item/A, mob/user, params) +/obj/item/weapon/gun/ballistic/automatic/attackby(obj/item/A, mob/user, params) . = ..() if(.) return @@ -36,7 +36,8 @@ if(istype(AM, mag_type)) if(magazine) user << "You perform a tactical reload on \the [src], replacing the magazine." - magazine.loc = get_turf(src.loc) + magazine.dropped() + magazine.forceMove(get_turf(src.loc)) magazine.update_icon() magazine = null else @@ -49,10 +50,10 @@ update_icon() return 1 -/obj/item/weapon/gun/projectile/automatic/ui_action_click() +/obj/item/weapon/gun/ballistic/automatic/ui_action_click() burst_select() -/obj/item/weapon/gun/projectile/automatic/proc/burst_select() +/obj/item/weapon/gun/ballistic/automatic/proc/burst_select() var/mob/living/carbon/human/user = usr select = !select if(!select) @@ -70,17 +71,17 @@ var/datum/action/A = X A.UpdateButtonIcon() -/obj/item/weapon/gun/projectile/automatic/can_shoot() +/obj/item/weapon/gun/ballistic/automatic/can_shoot() return get_ammo() -/obj/item/weapon/gun/projectile/automatic/proc/empty_alarm() +/obj/item/weapon/gun/ballistic/automatic/proc/empty_alarm() if(!chambered && !get_ammo() && !alarmed) playsound(src.loc, 'sound/weapons/smg_empty_alarm.ogg', 40, 1) update_icon() alarmed = 1 return -/obj/item/weapon/gun/projectile/automatic/c20r +/obj/item/weapon/gun/ballistic/automatic/c20r name = "\improper C-20r SMG" desc = "A bullpup two-round burst .45 SMG, designated 'C-20r'. Has a 'Scarborough Arms - Per falcis, per pravitas' buttstamp." icon_state = "c20r" @@ -92,24 +93,24 @@ burst_size = 2 pin = /obj/item/device/firing_pin/implant/pindicate -/obj/item/weapon/gun/projectile/automatic/c20r/unrestricted +/obj/item/weapon/gun/ballistic/automatic/c20r/unrestricted pin = /obj/item/device/firing_pin -/obj/item/weapon/gun/projectile/automatic/c20r/New() +/obj/item/weapon/gun/ballistic/automatic/c20r/New() ..() update_icon() return -/obj/item/weapon/gun/projectile/automatic/c20r/afterattack() +/obj/item/weapon/gun/ballistic/automatic/c20r/afterattack() ..() empty_alarm() return -/obj/item/weapon/gun/projectile/automatic/c20r/update_icon() +/obj/item/weapon/gun/ballistic/automatic/c20r/update_icon() ..() icon_state = "c20r[magazine ? "-[Ceiling(get_ammo(0)/4)*4]" : ""][chambered ? "" : "-e"][suppressed ? "-suppressed" : ""]" -/obj/item/weapon/gun/projectile/automatic/wt550 +/obj/item/weapon/gun/ballistic/automatic/wt550 name = "security auto rifle" desc = "An outdated personal defence weapon. Uses 4.6x30mm rounds and is designated the WT-550 Automatic Rifle." icon_state = "wt550" @@ -120,11 +121,11 @@ burst_size = 0 actions_types = list() -/obj/item/weapon/gun/projectile/automatic/wt550/update_icon() +/obj/item/weapon/gun/ballistic/automatic/wt550/update_icon() ..() icon_state = "wt550[magazine ? "-[Ceiling(get_ammo(0)/4)*4]" : ""]" -/obj/item/weapon/gun/projectile/automatic/mini_uzi +/obj/item/weapon/gun/ballistic/automatic/mini_uzi name = "\improper 'Type U3' Uzi" desc = "A lightweight, burst-fire submachine gun, for when you really want someone dead. Uses 9mm rounds." icon_state = "mini-uzi" @@ -132,7 +133,7 @@ mag_type = /obj/item/ammo_box/magazine/uzim9mm burst_size = 2 -/obj/item/weapon/gun/projectile/automatic/m90 +/obj/item/weapon/gun/ballistic/automatic/m90 name = "\improper M-90gl Carbine" desc = "A three-round burst 5.56 toploading carbine, designated 'M-90gl'. Has an attached underbarrel grenade launcher which can be toggled on and off." icon_state = "m90" @@ -141,40 +142,40 @@ mag_type = /obj/item/ammo_box/magazine/m556 fire_sound = 'sound/weapons/Gunshot_smg.ogg' can_suppress = 0 - var/obj/item/weapon/gun/projectile/revolver/grenadelauncher/underbarrel + var/obj/item/weapon/gun/ballistic/revolver/grenadelauncher/underbarrel burst_size = 3 fire_delay = 2 pin = /obj/item/device/firing_pin/implant/pindicate -/obj/item/weapon/gun/projectile/automatic/m90/New() +/obj/item/weapon/gun/ballistic/automatic/m90/New() ..() - underbarrel = new /obj/item/weapon/gun/projectile/revolver/grenadelauncher(src) + underbarrel = new /obj/item/weapon/gun/ballistic/revolver/grenadelauncher(src) update_icon() return -/obj/item/weapon/gun/projectile/automatic/m90/unrestricted +/obj/item/weapon/gun/ballistic/automatic/m90/unrestricted pin = /obj/item/device/firing_pin -/obj/item/weapon/gun/projectile/automatic/m90/unrestricted/New() +/obj/item/weapon/gun/ballistic/automatic/m90/unrestricted/New() ..() - underbarrel = new /obj/item/weapon/gun/projectile/revolver/grenadelauncher/unrestricted(src) + underbarrel = new /obj/item/weapon/gun/ballistic/revolver/grenadelauncher/unrestricted(src) update_icon() return -/obj/item/weapon/gun/projectile/automatic/m90/afterattack(atom/target, mob/living/user, flag, params) +/obj/item/weapon/gun/ballistic/automatic/m90/afterattack(atom/target, mob/living/user, flag, params) if(select == 2) underbarrel.afterattack(target, user, flag, params) else ..() return -/obj/item/weapon/gun/projectile/automatic/m90/attackby(obj/item/A, mob/user, params) +/obj/item/weapon/gun/ballistic/automatic/m90/attackby(obj/item/A, mob/user, params) if(istype(A, /obj/item/ammo_casing)) if(istype(A, underbarrel.magazine.ammo_type)) underbarrel.attack_self() underbarrel.attackby(A, user, params) else ..() -/obj/item/weapon/gun/projectile/automatic/m90/update_icon() +/obj/item/weapon/gun/ballistic/automatic/m90/update_icon() ..() cut_overlays() switch(select) @@ -186,7 +187,7 @@ add_overlay("[initial(icon_state)]gren") icon_state = "[initial(icon_state)][magazine ? "" : "-e"]" return -/obj/item/weapon/gun/projectile/automatic/m90/burst_select() +/obj/item/weapon/gun/ballistic/automatic/m90/burst_select() var/mob/living/carbon/human/user = usr switch(select) if(0) @@ -206,12 +207,12 @@ update_icon() return -/obj/item/weapon/gun/projectile/automatic/tommygun +/obj/item/weapon/gun/ballistic/automatic/tommygun name = "\improper Thompson SMG" desc = "Based on the classic 'Chicago Typewriter'." icon_state = "tommygun" item_state = "shotgun" - w_class = 5 + w_class = WEIGHT_CLASS_HUGE slot_flags = 0 origin_tech = "combat=5;materials=1;syndicate=3" mag_type = /obj/item/ammo_box/magazine/tommygunm45 @@ -220,7 +221,7 @@ burst_size = 4 fire_delay = 1 -/obj/item/weapon/gun/projectile/automatic/ar +/obj/item/weapon/gun/ballistic/automatic/ar name = "\improper NT-ARG 'Boarder'" desc = "A robust assault rile used by Nanotrasen fighting forces." icon_state = "arg" @@ -237,12 +238,12 @@ // Bulldog shotgun // -/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog +/obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog name = "\improper 'Bulldog' Shotgun" desc = "A semi-auto, mag-fed shotgun for combat in narrow corridors, nicknamed 'Bulldog' by boarding parties. Compatible only with specialized 8-round drum magazines." icon_state = "bulldog" item_state = "bulldog" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL origin_tech = "combat=6;materials=4;syndicate=6" mag_type = /obj/item/ammo_box/magazine/m12g fire_sound = 'sound/weapons/Gunshot.ogg' @@ -252,26 +253,26 @@ pin = /obj/item/device/firing_pin/implant/pindicate actions_types = list() -/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/unrestricted +/obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog/unrestricted pin = /obj/item/device/firing_pin -/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/New() +/obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog/New() ..() update_icon() return -/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/proc/update_magazine() +/obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog/proc/update_magazine() if(magazine) src.overlays = 0 add_overlay("[magazine.icon_state]") return -/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/update_icon() +/obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog/update_icon() src.overlays = 0 update_magazine() icon_state = "bulldog[chambered ? "" : "-e"]" -/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/afterattack() +/obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog/afterattack() ..() empty_alarm() return @@ -280,16 +281,16 @@ // L6 SAW // -/obj/item/weapon/gun/projectile/automatic/l6_saw +/obj/item/weapon/gun/ballistic/automatic/l6_saw name = "\improper L6 SAW" desc = "A heavily modified 5.56x45mm light machine gun, designated 'L6 SAW'. Has 'Aussec Armoury - 2531' engraved on the receiver below the designation." icon_state = "l6closed100" item_state = "l6closedmag" - w_class = 5 + w_class = WEIGHT_CLASS_HUGE slot_flags = 0 origin_tech = "combat=6;engineering=3;syndicate=6" mag_type = /obj/item/ammo_box/magazine/mm556x45 - weapon_weight = WEAPON_MEDIUM + weapon_weight = WEAPON_HEAVY fire_sound = 'sound/weapons/Gunshot_smg.ogg' var/cover_open = 0 can_suppress = 0 @@ -297,22 +298,22 @@ fire_delay = 1 pin = /obj/item/device/firing_pin/implant/pindicate -/obj/item/weapon/gun/projectile/automatic/l6_saw/unrestricted +/obj/item/weapon/gun/ballistic/automatic/l6_saw/unrestricted pin = /obj/item/device/firing_pin -/obj/item/weapon/gun/projectile/automatic/l6_saw/attack_self(mob/user) +/obj/item/weapon/gun/ballistic/automatic/l6_saw/attack_self(mob/user) cover_open = !cover_open user << "You [cover_open ? "open" : "close"] [src]'s cover." update_icon() -/obj/item/weapon/gun/projectile/automatic/l6_saw/update_icon() +/obj/item/weapon/gun/ballistic/automatic/l6_saw/update_icon() icon_state = "l6[cover_open ? "open" : "closed"][magazine ? Ceiling(get_ammo(0)/12.5)*25 : "-empty"][suppressed ? "-suppressed" : ""]" item_state = "l6[cover_open ? "openmag" : "closedmag"]" -/obj/item/weapon/gun/projectile/automatic/l6_saw/afterattack(atom/target as mob|obj|turf, mob/living/user as mob|obj, flag, params) //what I tried to do here is just add a check to see if the cover is open or not and add an icon_state change because I can't figure out how c-20rs do it with overlays +/obj/item/weapon/gun/ballistic/automatic/l6_saw/afterattack(atom/target as mob|obj|turf, mob/living/user as mob|obj, flag, params) //what I tried to do here is just add a check to see if the cover is open or not and add an icon_state change because I can't figure out how c-20rs do it with overlays if(cover_open) user << "[src]'s cover is open! Close it before firing!" else @@ -320,7 +321,7 @@ update_icon() -/obj/item/weapon/gun/projectile/automatic/l6_saw/attack_hand(mob/user) +/obj/item/weapon/gun/ballistic/automatic/l6_saw/attack_hand(mob/user) if(loc != user) ..() return //let them pick it up @@ -336,7 +337,7 @@ user << "You remove the magazine from [src]." -/obj/item/weapon/gun/projectile/automatic/l6_saw/attackby(obj/item/A, mob/user, params) +/obj/item/weapon/gun/ballistic/automatic/l6_saw/attackby(obj/item/A, mob/user, params) . = ..() if(.) return @@ -349,36 +350,36 @@ // SNIPER // -/obj/item/weapon/gun/projectile/automatic/sniper_rifle +/obj/item/weapon/gun/ballistic/automatic/sniper_rifle name = "sniper rifle" - desc = "The kind of gun that will leave you crying for mummy before you even realise your leg's missing" + desc = "A long ranged weapon that does significant damage. No, you can't quickscope." icon_state = "sniper" item_state = "sniper" recoil = 2 - weapon_weight = WEAPON_MEDIUM + weapon_weight = WEAPON_HEAVY mag_type = /obj/item/ammo_box/magazine/sniper_rounds fire_delay = 40 burst_size = 1 origin_tech = "combat=7" can_unsuppress = 1 can_suppress = 1 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL zoomable = TRUE zoom_amt = 7 //Long range, enough to see in front of you, but no tiles behind you. slot_flags = SLOT_BACK actions_types = list() -/obj/item/weapon/gun/projectile/automatic/sniper_rifle/update_icon() +/obj/item/weapon/gun/ballistic/automatic/sniper_rifle/update_icon() if(magazine) icon_state = "sniper-mag" else icon_state = "sniper" -/obj/item/weapon/gun/projectile/automatic/sniper_rifle/syndicate +/obj/item/weapon/gun/ballistic/automatic/sniper_rifle/syndicate name = "syndicate sniper rifle" - desc = "Syndicate flavoured sniper rifle, it packs quite a punch, a punch to your face" + desc = "An illegally modified .50 cal sniper rifle with supression compatibility. Quickscoping still doesn't work." pin = /obj/item/device/firing_pin/implant/pindicate origin_tech = "combat=7;syndicate=6" @@ -387,7 +388,7 @@ // Laser rifle (rechargeable magazine) // -/obj/item/weapon/gun/projectile/automatic/laser +/obj/item/weapon/gun/ballistic/automatic/laser name = "laser rifle" desc = "Though sometimes mocked for the relatively weak firepower of their energy weapons, the logistic miracle of rechargable ammunition has given Nanotrasen a decisive edge over many a foe." icon_state = "oldrifle" @@ -398,12 +399,9 @@ burst_size = 0 actions_types = list() fire_sound = 'sound/weapons/Laser.ogg' + casing_ejector = 0 -/obj/item/weapon/gun/projectile/automatic/laser/process_chamber(eject_casing = 0, empty_chamber = 1) - ..() //we changed the default value of the first argument - - -/obj/item/weapon/gun/projectile/automatic/laser/update_icon() +/obj/item/weapon/gun/ballistic/automatic/laser/update_icon() ..() icon_state = "oldrifle[magazine ? "-[Ceiling(get_ammo(0)/4)*4]" : ""]" return diff --git a/code/modules/projectiles/guns/ballistic/bow.dm b/code/modules/projectiles/guns/ballistic/bow.dm new file mode 100644 index 0000000000..27e83e01c8 --- /dev/null +++ b/code/modules/projectiles/guns/ballistic/bow.dm @@ -0,0 +1,106 @@ +/obj/item/weapon/gun/ballistic/bow + name = "bow" + desc = "A sturdy bow made out of wood and reinforced with iron." + icon_state = "bow_unloaded" + item_state = "bow" + var/icon_state_loaded = "bow_loaded" + var/icon_state_firing = "bow_firing" + var/item_state_loaded = "bow" + var/item_state_firing = "bow" + fire_sound = 'sound/weapons/grenadelaunch.ogg' + mag_type = /obj/item/ammo_box/magazine/internal/bow + flags = HANDSLOW + weapon_weight = WEAPON_HEAVY + var/draw_sound = 'sound/weapons/draw_bow.ogg' + var/ready_to_fire = 0 + var/slowdown_when_ready = 2 + +/obj/item/weapon/gun/ballistic/bow/update_icon() + if(ready_to_fire) + icon_state = icon_state_firing + item_state = item_state_firing + slowdown = slowdown_when_ready + else if(magazine.ammo_count() && !ready_to_fire) + icon_state = icon_state_loaded + item_state = item_state_loaded + slowdown = initial(slowdown) + else + icon_state = initial(icon_state) + item_state = initial(item_state) + slowdown = initial(slowdown) + +/obj/item/weapon/gun/ballistic/bow/dropped(mob/user) + if(magazine && magazine.ammo_count()) + magazine.empty_magazine() + ready_to_fire = FALSE + update_icon() + +/obj/item/weapon/gun/ballistic/bow/attack_self(mob/living/user) + if(!ready_to_fire && magazine.ammo_count()) + ready_to_fire = TRUE + playsound(user, draw_sound, 100, 1) + update_icon() + else + ready_to_fire = FALSE + update_icon() + +/obj/item/weapon/gun/ballistic/bow/attackby(obj/item/A, mob/user, params) + var/num_loaded = magazine.attackby(A, user, params, 1) + if(num_loaded) + user << "You ready \the [A] into \the [src]." + update_icon() + chamber_round() + +/obj/item/weapon/gun/ballistic/bow/can_shoot() + . = ..() + if(!ready_to_fire) + return FALSE + +/obj/item/weapon/gun/ballistic/bow/shoot_with_empty_chamber(mob/living/user as mob|obj) + return + +/obj/item/weapon/gun/ballistic/bow/process_chamber(eject_casing = 0, empty_chamber = 1) + . = ..() + ready_to_fire = FALSE + update_icon() + +// ammo +/obj/item/ammo_box/magazine/internal/bow + name = "bow internal magazine" + ammo_type = /obj/item/ammo_casing/caseless/arrow + caliber = "arrow" + max_ammo = 1 + + +/obj/item/projectile/bullet/reusable/arrow + name = "arrow" + icon_state = "arrow" + ammo_type = /obj/item/ammo_casing/caseless/arrow + range = 10 + damage = 25 + damage_type = BRUTE + +/obj/item/ammo_casing/caseless/arrow + name = "arrow" + desc = "Stab, stab, stab." + icon_state = "arrow" + force = 10 + sharpness = IS_SHARP + projectile_type = /obj/item/projectile/bullet/reusable/arrow + caliber = "arrow" + +//quiver +/obj/item/weapon/storage/backpack/quiver + name = "quiver" + desc = "A quiver for holding arrows." + icon_state = "quiver" + item_state = "quiver" + storage_slots = 20 + can_hold = list( + /obj/item/ammo_casing/caseless/arrow + ) + +/obj/item/weapon/storage/backpack/quiver/full/New() + ..() + for(var/i in 1 to storage_slots) + new /obj/item/ammo_casing/caseless/arrow(src) diff --git a/code/modules/projectiles/guns/projectile/laser_gatling.dm b/code/modules/projectiles/guns/ballistic/laser_gatling.dm similarity index 79% rename from code/modules/projectiles/guns/projectile/laser_gatling.dm rename to code/modules/projectiles/guns/ballistic/laser_gatling.dm index ea19220600..dd656687c7 100644 --- a/code/modules/projectiles/guns/projectile/laser_gatling.dm +++ b/code/modules/projectiles/guns/ballistic/laser_gatling.dm @@ -8,8 +8,8 @@ icon_state = "holstered" item_state = "backpack" slot_flags = SLOT_BACK - w_class = 5 - var/obj/item/weapon/gun/projectile/minigun/gun = null + w_class = WEIGHT_CLASS_HUGE + var/obj/item/weapon/gun/ballistic/minigun/gun = null var/armed = 0 //whether the gun is attached, 0 is attached, 1 is the gun is wielded. var/overheat = 0 var/overheat_max = 40 @@ -69,11 +69,7 @@ var/obj/screen/inventory/hand/H = over_object if(!M.unEquip(src)) return - switch(H.slot_id) - if(slot_r_hand) - M.put_in_r_hand(src) - if(slot_l_hand) - M.put_in_l_hand(src) + M.put_in_hand(src, H.held_index) /obj/item/weapon/minigunpack/update_icon() @@ -95,7 +91,7 @@ user.update_inv_back() -/obj/item/weapon/gun/projectile/minigun +/obj/item/weapon/gun/ballistic/minigun name = "laser gatling gun" desc = "An advanced laser cannon with an incredible rate of fire. Requires a bulky backpack power source to use." icon = 'icons/obj/guns/minigun.dmi' @@ -105,7 +101,7 @@ flags = CONDUCT | HANDSLOW slowdown = 1 slot_flags = null - w_class = 5 + w_class = WEIGHT_CLASS_HUGE materials = list() burst_size = 3 automatic = 0 @@ -113,41 +109,40 @@ weapon_weight = WEAPON_HEAVY fire_sound = 'sound/weapons/Laser.ogg' mag_type = /obj/item/ammo_box/magazine/internal/minigun + casing_ejector = 0 var/obj/item/weapon/minigunpack/ammo_pack -/obj/item/weapon/gun/projectile/minigun/attack_self(mob/living/user) +/obj/item/weapon/gun/ballistic/minigun/attack_self(mob/living/user) return -/obj/item/weapon/gun/projectile/minigun/dropped(mob/user) +/obj/item/weapon/gun/ballistic/minigun/dropped(mob/user) if(ammo_pack) ammo_pack.attach_gun(user) else qdel(src) -/obj/item/weapon/gun/projectile/minigun/shoot_live_shot(mob/living/user as mob|obj, pointblank = 0, mob/pbtarget = null, message = 1) +/obj/item/weapon/gun/ballistic/minigun/process_fire(atom/target as mob|obj|turf, mob/living/user as mob|obj, message = 1, params, zone_override) if(ammo_pack) if(ammo_pack.overheat < ammo_pack.overheat_max) - . = ..() - ammo_pack.overheat++ + ammo_pack.overheat += burst_size + ..() else user << "The gun's heat sensor locked the trigger to prevent lens damage." -/obj/item/weapon/gun/projectile/minigun/afterattack(atom/target, mob/living/user, flag, params) +/obj/item/weapon/gun/ballistic/minigun/afterattack(atom/target, mob/living/user, flag, params) if(!ammo_pack || ammo_pack.loc != user) user << "You need the backpack power source to fire the gun!" ..() -/obj/item/weapon/gun/projectile/minigun/New() +/obj/item/weapon/gun/ballistic/minigun/New() if(!ammo_pack) if(istype(loc,/obj/item/weapon/minigunpack)) //We should spawn inside a ammo pack so let's use that one. ammo_pack = loc + ..() else qdel(src)//No pack, no gun - ..() -/obj/item/weapon/gun/projectile/minigun/dropped(mob/living/user) +/obj/item/weapon/gun/ballistic/minigun/dropped(mob/living/user) ammo_pack.attach_gun(user) -/obj/item/weapon/gun/projectile/minigun/process_chamber(eject_casing = 0, empty_chamber = 1) - ..() diff --git a/code/modules/projectiles/guns/projectile/launchers.dm b/code/modules/projectiles/guns/ballistic/launchers.dm similarity index 53% rename from code/modules/projectiles/guns/projectile/launchers.dm rename to code/modules/projectiles/guns/ballistic/launchers.dm index 42ed81805e..2d4ccfd586 100644 --- a/code/modules/projectiles/guns/projectile/launchers.dm +++ b/code/modules/projectiles/guns/ballistic/launchers.dm @@ -1,25 +1,25 @@ //KEEP IN MIND: These are different from gun/grenadelauncher. These are designed to shoot premade rocket and grenade projectiles, not flashbangs or chemistry casings etc. //Put handheld rocket launchers here if someone ever decides to make something so hilarious ~Paprika -/obj/item/weapon/gun/projectile/revolver/grenadelauncher//this is only used for underbarrel grenade launchers at the moment, but admins can still spawn it if they feel like being assholes +/obj/item/weapon/gun/ballistic/revolver/grenadelauncher//this is only used for underbarrel grenade launchers at the moment, but admins can still spawn it if they feel like being assholes desc = "A break-operated grenade launcher." name = "grenade launcher" icon_state = "dshotgun-sawn" item_state = "gun" mag_type = /obj/item/ammo_box/magazine/internal/grenadelauncher fire_sound = 'sound/weapons/grenadelaunch.ogg' - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL pin = /obj/item/device/firing_pin/implant/pindicate -/obj/item/weapon/gun/projectile/revolver/grenadelauncher/unrestricted +/obj/item/weapon/gun/ballistic/revolver/grenadelauncher/unrestricted pin = /obj/item/device/firing_pin -/obj/item/weapon/gun/projectile/revolver/grenadelauncher/attackby(obj/item/A, mob/user, params) +/obj/item/weapon/gun/ballistic/revolver/grenadelauncher/attackby(obj/item/A, mob/user, params) ..() if(istype(A, /obj/item/ammo_box) || istype(A, /obj/item/ammo_casing)) chamber_round() -/obj/item/weapon/gun/projectile/revolver/grenadelauncher/cyborg +/obj/item/weapon/gun/ballistic/revolver/grenadelauncher/cyborg desc = "A 6-shot grenade launcher." name = "multi grenade launcher" icon = 'icons/mecha/mecha_equipment.dmi' @@ -27,10 +27,10 @@ mag_type = /obj/item/ammo_box/magazine/internal/cylinder/grenademulti pin = /obj/item/device/firing_pin -/obj/item/weapon/gun/projectile/revolver/grenadelauncher/cyborg/attack_self() +/obj/item/weapon/gun/ballistic/revolver/grenadelauncher/cyborg/attack_self() return -/obj/item/weapon/gun/projectile/automatic/gyropistol +/obj/item/weapon/gun/ballistic/automatic/gyropistol name = "gyrojet pistol" desc = "A prototype pistol designed to fire self propelled rockets." icon_state = "gyropistol" @@ -40,20 +40,18 @@ burst_size = 1 fire_delay = 0 actions_types = list() + casing_ejector = 0 -/obj/item/weapon/gun/projectile/automatic/gyropistol/process_chamber(eject_casing = 0, empty_chamber = 1) - ..() - -/obj/item/weapon/gun/projectile/automatic/gyropistol/update_icon() +/obj/item/weapon/gun/ballistic/automatic/gyropistol/update_icon() ..() icon_state = "[initial(icon_state)][magazine ? "loaded" : ""]" -/obj/item/weapon/gun/projectile/automatic/speargun +/obj/item/weapon/gun/ballistic/automatic/speargun name = "kinetic speargun" desc = "A weapon favored by carp hunters. Fires specialized spears using kinetic energy." icon_state = "speargun" item_state = "speargun" - w_class = 4 + w_class = WEIGHT_CLASS_BULKY origin_tech = "combat=4;engineering=4" force = 10 can_suppress = 0 @@ -63,19 +61,40 @@ fire_delay = 0 select = 0 actions_types = list() + casing_ejector = 0 -/obj/item/weapon/gun/projectile/automatic/speargun/update_icon() +/obj/item/weapon/gun/ballistic/automatic/speargun/update_icon() return -/obj/item/weapon/gun/projectile/automatic/speargun/attack_self() +/obj/item/weapon/gun/ballistic/automatic/speargun/attack_self() return -/obj/item/weapon/gun/projectile/automatic/speargun/process_chamber(eject_casing = 0, empty_chamber = 1) - ..() - -/obj/item/weapon/gun/projectile/automatic/speargun/attackby(obj/item/A, mob/user, params) +/obj/item/weapon/gun/ballistic/automatic/speargun/attackby(obj/item/A, mob/user, params) var/num_loaded = magazine.attackby(A, user, params, 1) if(num_loaded) user << "You load [num_loaded] spear\s into \the [src]." update_icon() - chamber_round() \ No newline at end of file + chamber_round() + +/obj/item/weapon/gun/ballistic/automatic/atlauncher + desc = "A pre-loaded, single shot anti-armour launcher." + name = "anti-armour grenade launcher" + icon_state = "rocketlauncher" + item_state = "rocketlauncher" + mag_type = /obj/item/ammo_box/magazine/internal/rocketlauncher + fire_sound = 'sound/weapons/rocketlaunch.ogg' + w_class = WEIGHT_CLASS_BULKY + can_suppress = 0 + burst_size = 1 + fire_delay = 0 + select = 0 + actions_types = list() + casing_ejector = 0 + weapon_weight = WEAPON_HEAVY + +/obj/item/weapon/gun/ballistic/automatic/atlauncher/attack_self() + return + +/obj/item/weapon/gun/ballistic/automatic/atlauncher/update_icon() + ..() + icon_state = "rocketlauncher[magazine ? "-[get_ammo(1)]" : ""]" \ No newline at end of file diff --git a/code/modules/projectiles/guns/projectile/pistol.dm b/code/modules/projectiles/guns/ballistic/pistol.dm similarity index 55% rename from code/modules/projectiles/guns/projectile/pistol.dm rename to code/modules/projectiles/guns/ballistic/pistol.dm index 350b248d05..a28f1f0b64 100644 --- a/code/modules/projectiles/guns/projectile/pistol.dm +++ b/code/modules/projectiles/guns/ballistic/pistol.dm @@ -1,8 +1,8 @@ -/obj/item/weapon/gun/projectile/automatic/pistol +/obj/item/weapon/gun/ballistic/automatic/pistol name = "stechkin pistol" desc = "A small, easily concealable 10mm handgun. Has a threaded barrel for suppressors." icon_state = "pistol" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL origin_tech = "combat=3;materials=2;syndicate=4" mag_type = /obj/item/ammo_box/magazine/m10mm can_suppress = 1 @@ -10,20 +10,20 @@ fire_delay = 0 actions_types = list() -/obj/item/weapon/gun/projectile/automatic/pistol/update_icon() +/obj/item/weapon/gun/ballistic/automatic/pistol/update_icon() ..() icon_state = "[initial(icon_state)][chambered ? "" : "-e"][suppressed ? "-suppressed" : ""]" return -/obj/item/weapon/gun/projectile/automatic/pistol/m1911 +/obj/item/weapon/gun/ballistic/automatic/pistol/m1911 name = "\improper M1911" desc = "A classic .45 handgun with a small magazine capacity." icon_state = "m1911" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL mag_type = /obj/item/ammo_box/magazine/m45 can_suppress = 0 -/obj/item/weapon/gun/projectile/automatic/pistol/deagle +/obj/item/weapon/gun/ballistic/automatic/pistol/deagle name = "desert eagle" desc = "A robust .50 AE handgun." icon_state = "deagle" @@ -31,28 +31,46 @@ mag_type = /obj/item/ammo_box/magazine/m50 can_suppress = 0 -/obj/item/weapon/gun/projectile/automatic/pistol/deagle/update_icon() +/obj/item/weapon/gun/ballistic/automatic/pistol/deagle/update_icon() ..() icon_state = "[initial(icon_state)][magazine ? "" : "-e"]" -/obj/item/weapon/gun/projectile/automatic/pistol/deagle/gold +/obj/item/weapon/gun/ballistic/automatic/pistol/deagle/gold desc = "A gold plated desert eagle folded over a million times by superior martian gunsmiths. Uses .50 AE ammo." icon_state = "deagleg" item_state = "deagleg" -/obj/item/weapon/gun/projectile/automatic/pistol/deagle/camo +/obj/item/weapon/gun/ballistic/automatic/pistol/deagle/camo desc = "A Deagle brand Deagle for operators operating operationally. Uses .50 AE ammo." icon_state = "deaglecamo" item_state = "deagleg" -/obj/item/weapon/gun/projectile/automatic/pistol/APS +/obj/item/weapon/gun/ballistic/automatic/pistol/APS name = "stechkin APS pistol" desc = "The original russian version of a widely used Syndicate sidearm. Uses 9mm ammo." icon_state = "aps" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL origin_tech = "combat=3;materials=2;syndicate=3" mag_type = /obj/item/ammo_box/magazine/pistolm9mm can_suppress = 0 burst_size = 3 fire_delay = 2 actions_types = list(/datum/action/item_action/toggle_firemode) + +/obj/item/weapon/gun/ballistic/automatic/pistol/stickman + name = "flat gun" + desc = "A 2 dimensional gun.. what?" + icon_state = "flatgun" + origin_tech = "combat=3;materials=2;abductor=3" + +/obj/item/weapon/gun/ballistic/automatic/pistol/stickman/pickup(mob/living/user) + user << "As you try to pick up [src], it slips out of your grip.." + if(prob(50)) + user << "..and vanishes from your vision! Where the hell did it go?" + user.unEquip(src) + qdel(src) + user.update_icons() + else + user << "..and falls into view. Whew, that was a close one." + user.unEquip(src) + diff --git a/code/modules/projectiles/guns/projectile/revolver.dm b/code/modules/projectiles/guns/ballistic/revolver.dm similarity index 66% rename from code/modules/projectiles/guns/projectile/revolver.dm rename to code/modules/projectiles/guns/ballistic/revolver.dm index 97bf2eefc5..36c4e09695 100644 --- a/code/modules/projectiles/guns/projectile/revolver.dm +++ b/code/modules/projectiles/guns/ballistic/revolver.dm @@ -1,30 +1,27 @@ -/obj/item/weapon/gun/projectile/revolver +/obj/item/weapon/gun/ballistic/revolver name = "\improper .357 revolver" desc = "A suspicious revolver. Uses .357 ammo." //usually used by syndicates icon_state = "revolver" mag_type = /obj/item/ammo_box/magazine/internal/cylinder origin_tech = "combat=3;materials=2" + casing_ejector = 0 -/obj/item/weapon/gun/projectile/revolver/New() +/obj/item/weapon/gun/ballistic/revolver/New() ..() if(!istype(magazine, /obj/item/ammo_box/magazine/internal/cylinder)) - verbs -= /obj/item/weapon/gun/projectile/revolver/verb/spin + verbs -= /obj/item/weapon/gun/ballistic/revolver/verb/spin -/obj/item/weapon/gun/projectile/revolver/chamber_round(var/spin = 1) +/obj/item/weapon/gun/ballistic/revolver/chamber_round(spin = 1) if(spin) chambered = magazine.get_round(1) else chambered = magazine.stored_ammo[1] - return -/obj/item/weapon/gun/projectile/revolver/shoot_with_empty_chamber(mob/living/user as mob|obj) +/obj/item/weapon/gun/ballistic/revolver/shoot_with_empty_chamber(mob/living/user as mob|obj) ..() chamber_round(1) -/obj/item/weapon/gun/projectile/revolver/process_chamber() - return ..(0, 1) - -/obj/item/weapon/gun/projectile/revolver/attackby(obj/item/A, mob/user, params) +/obj/item/weapon/gun/ballistic/revolver/attackby(obj/item/A, mob/user, params) . = ..() if(.) return @@ -35,11 +32,7 @@ update_icon() chamber_round(0) - if(unique_rename) - if(istype(A, /obj/item/weapon/pen)) - rename_gun(user) - -/obj/item/weapon/gun/projectile/revolver/attack_self(mob/living/user) +/obj/item/weapon/gun/ballistic/revolver/attack_self(mob/living/user) var/num_unloaded = 0 chambered = null while (get_ammo() > 0) @@ -55,7 +48,7 @@ else user << "[src] is empty!" -/obj/item/weapon/gun/projectile/revolver/verb/spin() +/obj/item/weapon/gun/ballistic/revolver/verb/spin() set name = "Spin Chamber" set category = "Object" set desc = "Click to spin your revolver's chamber." @@ -71,13 +64,13 @@ chamber_round(0) usr.visible_message("[usr] spins [src]'s chamber.", "You spin [src]'s chamber.") else - verbs -= /obj/item/weapon/gun/projectile/revolver/verb/spin + verbs -= /obj/item/weapon/gun/ballistic/revolver/verb/spin -/obj/item/weapon/gun/projectile/revolver/can_shoot() +/obj/item/weapon/gun/ballistic/revolver/can_shoot() return get_ammo(0,0) -/obj/item/weapon/gun/projectile/revolver/get_ammo(countchambered = 0, countempties = 1) +/obj/item/weapon/gun/ballistic/revolver/get_ammo(countchambered = 0, countempties = 1) var/boolets = 0 //mature var names for mature people if (chambered && countchambered) boolets++ @@ -85,11 +78,11 @@ boolets += magazine.ammo_count(countempties) return boolets -/obj/item/weapon/gun/projectile/revolver/examine(mob/user) +/obj/item/weapon/gun/ballistic/revolver/examine(mob/user) ..() user << "[get_ammo(0,0)] of those are live rounds." -/obj/item/weapon/gun/projectile/revolver/detective +/obj/item/weapon/gun/ballistic/revolver/detective name = "\improper .38 Mars Special" desc = "A cheap Martian knock-off of a classic law enforcement firearm. Uses .38-special rounds." icon_state = "detective" @@ -97,7 +90,7 @@ unique_rename = 1 unique_reskin = 1 -/obj/item/weapon/gun/projectile/revolver/detective/New() +/obj/item/weapon/gun/ballistic/revolver/detective/New() ..() options["Default"] = "detective" options["Leopard Spots"] = "detective_leopard" @@ -106,17 +99,17 @@ options["The Peacemaker"] = "detective_peacemaker" options["Cancel"] = null -/obj/item/weapon/gun/projectile/revolver/detective/process_fire(atom/target as mob|obj|turf, mob/living/user as mob|obj, message = 1, params, zone_override = "") +/obj/item/weapon/gun/ballistic/revolver/detective/process_fire(atom/target as mob|obj|turf, mob/living/user as mob|obj, message = 1, params, zone_override = "") if(magazine.caliber != initial(magazine.caliber)) if(prob(70 - (magazine.ammo_count() * 10))) //minimum probability of 10, maximum of 60 playsound(user, fire_sound, 50, 1) user << "[src] blows up in your face!" - user.take_organ_damage(0,20) + user.take_bodypart_damage(0,20) user.unEquip(src) return 0 ..() -/obj/item/weapon/gun/projectile/revolver/detective/attackby(obj/item/A, mob/user, params) +/obj/item/weapon/gun/ballistic/revolver/detective/attackby(obj/item/A, mob/user, params) ..() if(istype(A, /obj/item/weapon/screwdriver)) if(magazine.caliber == "38") @@ -125,7 +118,7 @@ afterattack(user, user) //you know the drill user.visible_message("[src] goes off!", "[src] goes off in your face!") return - if(do_after(user, 30/A.toolspeed, target = src)) + if(do_after(user, 30*A.toolspeed, target = src)) if(magazine.ammo_count()) user << "You can't modify it!" return @@ -138,7 +131,7 @@ afterattack(user, user) //and again user.visible_message("[src] goes off!", "[src] goes off in your face!") return - if(do_after(user, 30/A.toolspeed, target = src)) + if(do_after(user, 30*A.toolspeed, target = src)) if(magazine.ammo_count()) user << "You can't modify it!" return @@ -147,12 +140,12 @@ user << "You remove the modifications on [src]. Now it will fire .38 rounds." -/obj/item/weapon/gun/projectile/revolver/mateba +/obj/item/weapon/gun/ballistic/revolver/mateba name = "\improper Unica 6 auto-revolver" desc = "A retro high-powered autorevolver typically used by officers of the New Russia military. Uses .357 ammo." icon_state = "mateba" -/obj/item/weapon/gun/projectile/revolver/golden +/obj/item/weapon/gun/ballistic/revolver/golden name = "\improper Golden revolver" desc = "This ain't no game, ain't never been no show, And I'll gladly gun down the oldest lady you know. Uses .357 ammo." icon_state = "goldrevolver" @@ -160,7 +153,7 @@ recoil = 8 pin = /obj/item/device/firing_pin -/obj/item/weapon/gun/projectile/revolver/nagant +/obj/item/weapon/gun/ballistic/revolver/nagant name = "nagant revolver" desc = "An old model of revolver that originated in Russia. Able to be suppressed. Uses 7.62x38mmR ammo." icon_state = "nagant" @@ -172,59 +165,39 @@ // A gun to play Russian Roulette! // You can spin the chamber to randomize the position of the bullet. -/obj/item/weapon/gun/projectile/revolver/russian +/obj/item/weapon/gun/ballistic/revolver/russian name = "\improper russian revolver" desc = "A Russian-made revolver for drinking games. Uses .357 ammo, and has a mechanism requiring you to spin the chamber before each trigger pull." origin_tech = "combat=2;materials=2" - mag_type = /obj/item/ammo_box/magazine/internal/rus357 - var/spun = 0 + mag_type = /obj/item/ammo_box/magazine/internal/cylinder/rus357 + var/spun = FALSE -/obj/item/weapon/gun/projectile/revolver/russian/New() +/obj/item/weapon/gun/ballistic/revolver/russian/New() ..() - Spin() + spin() + spun = TRUE update_icon() -/obj/item/weapon/gun/projectile/revolver/russian/proc/Spin() - chambered = null - var/random = rand(1, magazine.max_ammo) - if(random <= get_ammo(0,0)) - chamber_round() - spun = 1 - -/obj/item/weapon/gun/projectile/revolver/russian/attackby(obj/item/A, mob/user, params) - var/num_loaded = ..() - if(num_loaded) - user.visible_message("[user] loads a single bullet into the revolver and spins the chamber.", "You load a single bullet into the chamber and spin it.") - else - user.visible_message("[user] spins the chamber of the revolver.", "You spin the revolver's chamber.") +/obj/item/weapon/gun/ballistic/revolver/russian/attackby(obj/item/A, mob/user, params) + ..() if(get_ammo() > 0) - Spin() + spin() + spun = TRUE update_icon() A.update_icon() return -/obj/item/weapon/gun/projectile/revolver/russian/attack_self(mob/user) +/obj/item/weapon/gun/ballistic/revolver/russian/attack_self(mob/user) if(!spun && can_shoot()) - user.visible_message("[user] spins the chamber of the revolver.", "You spin the revolver's chamber.") - Spin() - else - var/num_unloaded = 0 - while (get_ammo() > 0) - var/obj/item/ammo_casing/CB - CB = magazine.get_round() - chambered = null - CB.loc = get_turf(src.loc) - CB.update_icon() - num_unloaded++ - if (num_unloaded) - user << "You unload [num_unloaded] shell\s from [src]." - else - user << "[src] is empty." + spin() + spun = TRUE + return + ..() -/obj/item/weapon/gun/projectile/revolver/russian/afterattack(atom/target as mob|obj|turf, mob/living/user as mob|obj, flag, params) +/obj/item/weapon/gun/ballistic/revolver/russian/afterattack(atom/target, mob/living/user, flag, params) if(flag) if(!(target in user.contents) && ismob(target)) - if(user.a_intent == "harm") // Flogging action + if(user.a_intent == INTENT_HARM) // Flogging action return if(isliving(user)) @@ -241,32 +214,33 @@ user << "You need to spin the revolver's chamber first!" return - spun = 0 + spun = FALSE if(chambered) var/obj/item/ammo_casing/AC = chambered - if(AC.fire(user, user)) + if(AC.fire_casing(user, user)) playsound(user, fire_sound, 50, 1) var/zone = check_zone(user.zone_selected) var/obj/item/bodypart/affecting = H.get_bodypart(zone) if(zone == "head" || zone == "eyes" || zone == "mouth") shoot_self(user, affecting) else - user.visible_message("[user.name] cowardly fires [src] at \his [affecting.name]!", "You cowardly fire [src] at your [affecting.name]!", "You hear a gunshot!") + user.visible_message("[user.name] cowardly fires [src] at [user.p_their()] [affecting.name]!", "You cowardly fire [src] at your [affecting.name]!", "You hear a gunshot!") + chambered = null return user.visible_message("*click*") playsound(user, 'sound/weapons/empty.ogg', 100, 1) -/obj/item/weapon/gun/projectile/revolver/russian/proc/shoot_self(mob/living/carbon/human/user, affecting = "head") +/obj/item/weapon/gun/ballistic/revolver/russian/proc/shoot_self(mob/living/carbon/human/user, affecting = "head") user.apply_damage(300, BRUTE, affecting) - user.visible_message("[user.name] fires [src] at \his head!", "You fire [src] at your head!", "You hear a gunshot!") + user.visible_message("[user.name] fires [src] at [user.p_their()] head!", "You fire [src] at your head!", "You hear a gunshot!") -/obj/item/weapon/gun/projectile/revolver/russian/soul +/obj/item/weapon/gun/ballistic/revolver/russian/soul name = "cursed russian revolver" desc = "To play with this revolver requires wagering your very soul." -/obj/item/weapon/gun/projectile/revolver/russian/soul/shoot_self(mob/living/user) +/obj/item/weapon/gun/ballistic/revolver/russian/soul/shoot_self(mob/living/user) ..() var/obj/item/device/soulstone/anybody/SS = new /obj/item/device/soulstone/anybody(get_turf(src)) if(!SS.transfer_soul("FORCE", user)) //Something went wrong @@ -274,18 +248,16 @@ return user.visible_message("[user.name]'s soul is captured by \the [src]!", "You've lost the gamble! Your soul is forfiet!") - - ///////////////////////////// // DOUBLE BARRELED SHOTGUN // ///////////////////////////// -/obj/item/weapon/gun/projectile/revolver/doublebarrel +/obj/item/weapon/gun/ballistic/revolver/doublebarrel name = "double-barreled shotgun" desc = "A true classic." icon_state = "dshotgun" item_state = "shotgun" - w_class = 4 + w_class = WEIGHT_CLASS_BULKY force = 10 flags = CONDUCT slot_flags = SLOT_BACK @@ -294,7 +266,7 @@ unique_rename = 1 unique_reskin = 1 -/obj/item/weapon/gun/projectile/revolver/doublebarrel/New() +/obj/item/weapon/gun/ballistic/revolver/doublebarrel/New() ..() options["Default"] = "dshotgun" options["Dark Red Finish"] = "dshotgun-d" @@ -304,7 +276,7 @@ options["Rosewood"] = "dshotgun-p" options["Cancel"] = null -/obj/item/weapon/gun/projectile/revolver/doublebarrel/attackby(obj/item/A, mob/user, params) +/obj/item/weapon/gun/ballistic/revolver/doublebarrel/attackby(obj/item/A, mob/user, params) ..() if(istype(A, /obj/item/ammo_box) || istype(A, /obj/item/ammo_casing)) chamber_round() @@ -315,7 +287,7 @@ if(istype(A, /obj/item/weapon/circular_saw) || istype(A, /obj/item/weapon/gun/energy/plasmacutter)) sawoff(user) -/obj/item/weapon/gun/projectile/revolver/doublebarrel/attack_self(mob/living/user) +/obj/item/weapon/gun/ballistic/revolver/doublebarrel/attack_self(mob/living/user) var/num_unloaded = 0 while (get_ammo() > 0) var/obj/item/ammo_casing/CB @@ -329,17 +301,14 @@ else user << "[src] is empty!" - - - // IMPROVISED SHOTGUN // -/obj/item/weapon/gun/projectile/revolver/doublebarrel/improvised +/obj/item/weapon/gun/ballistic/revolver/doublebarrel/improvised name = "improvised shotgun" desc = "Essentially a tube that aims shotgun shells." icon_state = "ishotgun" item_state = "shotgun" - w_class = 4 + w_class = WEIGHT_CLASS_BULKY force = 10 slot_flags = null mag_type = /obj/item/ammo_box/magazine/internal/shot/improvised @@ -348,7 +317,7 @@ unique_reskin = 0 var/slung = 0 -/obj/item/weapon/gun/projectile/revolver/doublebarrel/improvised/attackby(obj/item/A, mob/user, params) +/obj/item/weapon/gun/ballistic/revolver/doublebarrel/improvised/attackby(obj/item/A, mob/user, params) ..() if(istype(A, /obj/item/stack/cable_coil) && !sawn_state) var/obj/item/stack/cable_coil/C = A @@ -360,12 +329,12 @@ else user << "You need at least ten lengths of cable if you want to make a sling!" -/obj/item/weapon/gun/projectile/revolver/doublebarrel/improvised/update_icon() +/obj/item/weapon/gun/ballistic/revolver/doublebarrel/improvised/update_icon() ..() if(slung) icon_state += "sling" -/obj/item/weapon/gun/projectile/revolver/doublebarrel/improvised/sawoff(mob/user) +/obj/item/weapon/gun/ballistic/revolver/doublebarrel/improvised/sawoff(mob/user) . = ..() if(. && slung) //sawing off the gun removes the sling new /obj/item/stack/cable_coil(get_turf(src), 10) diff --git a/code/modules/projectiles/guns/projectile/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm similarity index 58% rename from code/modules/projectiles/guns/projectile/shotgun.dm rename to code/modules/projectiles/guns/ballistic/shotgun.dm index 0faa56f1ee..ad4c1a7e51 100644 --- a/code/modules/projectiles/guns/projectile/shotgun.dm +++ b/code/modules/projectiles/guns/ballistic/shotgun.dm @@ -1,17 +1,19 @@ -/obj/item/weapon/gun/projectile/shotgun +/obj/item/weapon/gun/ballistic/shotgun name = "shotgun" desc = "A traditional shotgun with wood furniture and a four-shell capacity underneath." icon_state = "shotgun" item_state = "shotgun" - w_class = 4 + w_class = WEIGHT_CLASS_BULKY force = 10 flags = CONDUCT slot_flags = SLOT_BACK origin_tech = "combat=4;materials=2" mag_type = /obj/item/ammo_box/magazine/internal/shot + casing_ejector = 0 var/recentpump = 0 // to prevent spammage + weapon_weight = WEAPON_MEDIUM -/obj/item/weapon/gun/projectile/shotgun/attackby(obj/item/A, mob/user, params) +/obj/item/weapon/gun/ballistic/shotgun/attackby(obj/item/A, mob/user, params) . = ..() if(.) return @@ -21,18 +23,18 @@ A.update_icon() update_icon() -/obj/item/weapon/gun/projectile/shotgun/process_chamber() - return ..(0, 0) +/obj/item/weapon/gun/ballistic/shotgun/process_chamber(empty_chamber = 0) + return ..() //changed argument value -/obj/item/weapon/gun/projectile/shotgun/chamber_round() +/obj/item/weapon/gun/ballistic/shotgun/chamber_round() return -/obj/item/weapon/gun/projectile/shotgun/can_shoot() +/obj/item/weapon/gun/ballistic/shotgun/can_shoot() if(!chambered) return 0 return (chambered.BB ? 1 : 0) -/obj/item/weapon/gun/projectile/shotgun/attack_self(mob/living/user) +/obj/item/weapon/gun/ballistic/shotgun/attack_self(mob/living/user) if(recentpump) return pump(user) @@ -41,50 +43,50 @@ recentpump = 0 return -/obj/item/weapon/gun/projectile/shotgun/blow_up(mob/user) +/obj/item/weapon/gun/ballistic/shotgun/blow_up(mob/user) . = 0 if(chambered && chambered.BB) process_fire(user, user,0) . = 1 -/obj/item/weapon/gun/projectile/shotgun/proc/pump(mob/M) +/obj/item/weapon/gun/ballistic/shotgun/proc/pump(mob/M) playsound(M, 'sound/weapons/shotgunpump.ogg', 60, 1) pump_unload(M) pump_reload(M) update_icon() //I.E. fix the desc return 1 -/obj/item/weapon/gun/projectile/shotgun/proc/pump_unload(mob/M) +/obj/item/weapon/gun/ballistic/shotgun/proc/pump_unload(mob/M) if(chambered)//We have a shell in the chamber chambered.loc = get_turf(src)//Eject casing chambered.SpinAnimation(5, 1) chambered = null -/obj/item/weapon/gun/projectile/shotgun/proc/pump_reload(mob/M) +/obj/item/weapon/gun/ballistic/shotgun/proc/pump_reload(mob/M) if(!magazine.ammo_count()) return 0 var/obj/item/ammo_casing/AC = magazine.get_round() //load next casing. chambered = AC -/obj/item/weapon/gun/projectile/shotgun/examine(mob/user) +/obj/item/weapon/gun/ballistic/shotgun/examine(mob/user) ..() if (chambered) user << "A [chambered.BB ? "live" : "spent"] one is in the chamber." -/obj/item/weapon/gun/projectile/shotgun/lethal +/obj/item/weapon/gun/ballistic/shotgun/lethal mag_type = /obj/item/ammo_box/magazine/internal/shot/lethal // RIOT SHOTGUN // -/obj/item/weapon/gun/projectile/shotgun/riot //for spawn in the armory +/obj/item/weapon/gun/ballistic/shotgun/riot //for spawn in the armory name = "riot shotgun" desc = "A sturdy shotgun with a longer magazine and a fixed tactical stock designed for non-lethal riot control." icon_state = "riotshotgun" mag_type = /obj/item/ammo_box/magazine/internal/shot/riot sawn_desc = "Come with me if you want to live." -/obj/item/weapon/gun/projectile/shotgun/riot/attackby(obj/item/A, mob/user, params) +/obj/item/weapon/gun/ballistic/shotgun/riot/attackby(obj/item/A, mob/user, params) ..() if(istype(A, /obj/item/weapon/circular_saw) || istype(A, /obj/item/weapon/gun/energy/plasmacutter)) sawoff(user) @@ -97,7 +99,7 @@ // BOLT ACTION RIFLE // /////////////////////// -/obj/item/weapon/gun/projectile/shotgun/boltaction +/obj/item/weapon/gun/ballistic/shotgun/boltaction name = "\improper Mosin Nagant" desc = "This piece of junk looks like something that could have been used 700 years ago. It feels slightly moist." icon_state = "moistnugget" @@ -106,7 +108,7 @@ mag_type = /obj/item/ammo_box/magazine/internal/boltaction var/bolt_open = 0 -/obj/item/weapon/gun/projectile/shotgun/boltaction/pump(mob/M) +/obj/item/weapon/gun/ballistic/shotgun/boltaction/pump(mob/M) playsound(M, 'sound/weapons/shotgunpump.ogg', 60, 1) if(bolt_open) pump_reload(M) @@ -116,83 +118,103 @@ update_icon() //I.E. fix the desc return 1 -/obj/item/weapon/gun/projectile/shotgun/boltaction/attackby(obj/item/A, mob/user, params) +/obj/item/weapon/gun/ballistic/shotgun/boltaction/attackby(obj/item/A, mob/user, params) if(!bolt_open) user << "The bolt is closed!" return . = ..() -/obj/item/weapon/gun/projectile/shotgun/boltaction/examine(mob/user) +/obj/item/weapon/gun/ballistic/shotgun/boltaction/examine(mob/user) ..() user << "The bolt is [bolt_open ? "open" : "closed"]." -/obj/item/weapon/gun/projectile/shotgun/boltaction/enchanted +/obj/item/weapon/gun/ballistic/shotgun/boltaction/enchanted name = "enchanted bolt action rifle" desc = "Careful not to lose your head." var/guns_left = 30 + var/gun_type mag_type = /obj/item/ammo_box/magazine/internal/boltaction/enchanted -/obj/item/weapon/gun/projectile/shotgun/boltaction/enchanted/New() +/obj/item/weapon/gun/ballistic/shotgun/boltaction/enchanted/arcane_barrage + name = "arcane barrage" + desc = "Pew Pew Pew" + fire_sound = 'sound/weapons/emitter.ogg' + pin = /obj/item/device/firing_pin/magic + icon_state = "arcane_barrage" + item_state = "arcane_barrage" + + flags = DROPDEL + + mag_type = /obj/item/ammo_box/magazine/internal/boltaction/enchanted/arcane_barrage + +/obj/item/weapon/gun/ballistic/shotgun/boltaction/enchanted/New() ..() bolt_open = 1 pump() + gun_type = type -/obj/item/weapon/gun/projectile/shotgun/boltaction/enchanted/dropped() +/obj/item/weapon/gun/ballistic/shotgun/boltaction/enchanted/dropped() ..() guns_left = 0 -/obj/item/weapon/gun/projectile/shotgun/boltaction/enchanted/shoot_live_shot(mob/living/user as mob|obj, pointblank = 0, mob/pbtarget = null, message = 1) +/obj/item/weapon/gun/ballistic/shotgun/boltaction/enchanted/proc/discard_gun(mob/user) + throw_at_fast(pick(oview(7,get_turf(user))),1,1) + user.visible_message("[user] tosses aside the spent rifle!") + +/obj/item/weapon/gun/ballistic/shotgun/boltaction/enchanted/arcane_barrage/discard_gun(mob/user) + return + +/obj/item/weapon/gun/ballistic/shotgun/boltaction/enchanted/shoot_live_shot(mob/living/user as mob|obj, pointblank = 0, mob/pbtarget = null, message = 1) ..() if(guns_left) - var/obj/item/weapon/gun/projectile/shotgun/boltaction/enchanted/GUN = new - GUN.guns_left = src.guns_left - 1 + var/obj/item/weapon/gun/ballistic/shotgun/boltaction/enchanted/GUN = new gun_type + GUN.guns_left = guns_left - 1 user.drop_item() user.swap_hand() user.put_in_hands(GUN) else user.drop_item() - src.throw_at_fast(pick(oview(7,get_turf(user))),1,1) - user.visible_message("[user] tosses aside the spent rifle!") + discard_gun(user) // Automatic Shotguns// -/obj/item/weapon/gun/projectile/shotgun/automatic/shoot_live_shot(mob/living/user as mob|obj) +/obj/item/weapon/gun/ballistic/shotgun/automatic/shoot_live_shot(mob/living/user as mob|obj) ..() src.pump(user) -/obj/item/weapon/gun/projectile/shotgun/automatic/combat +/obj/item/weapon/gun/ballistic/shotgun/automatic/combat name = "combat shotgun" desc = "A semi automatic shotgun with tactical furniture and a six-shell capacity underneath." icon_state = "cshotgun" origin_tech = "combat=6" mag_type = /obj/item/ammo_box/magazine/internal/shot/com - w_class = 5 + w_class = WEIGHT_CLASS_HUGE //Dual Feed Shotgun -/obj/item/weapon/gun/projectile/shotgun/automatic/dual_tube +/obj/item/weapon/gun/ballistic/shotgun/automatic/dual_tube name = "cycler shotgun" desc = "An advanced shotgun with two separate magazine tubes, allowing you to quickly toggle between ammo types." icon_state = "cycler" origin_tech = "combat=4;materials=2" mag_type = /obj/item/ammo_box/magazine/internal/shot/tube - w_class = 5 + w_class = WEIGHT_CLASS_HUGE var/toggled = 0 var/obj/item/ammo_box/magazine/internal/shot/alternate_magazine -/obj/item/weapon/gun/projectile/shotgun/automatic/dual_tube/New() +/obj/item/weapon/gun/ballistic/shotgun/automatic/dual_tube/New() ..() if (!alternate_magazine) alternate_magazine = new mag_type(src) -/obj/item/weapon/gun/projectile/shotgun/automatic/dual_tube/attack_self(mob/living/user) +/obj/item/weapon/gun/ballistic/shotgun/automatic/dual_tube/attack_self(mob/living/user) if(!chambered && magazine.contents.len) pump() else toggle_tube(user) -/obj/item/weapon/gun/projectile/shotgun/automatic/dual_tube/proc/toggle_tube(mob/living/user) +/obj/item/weapon/gun/ballistic/shotgun/automatic/dual_tube/proc/toggle_tube(mob/living/user) var/current_mag = magazine var/alt_mag = alternate_magazine magazine = alt_mag @@ -203,7 +225,7 @@ else user << "You switch to tube A." -/obj/item/weapon/gun/projectile/shotgun/automatic/dual_tube/AltClick(mob/living/user) +/obj/item/weapon/gun/ballistic/shotgun/automatic/dual_tube/AltClick(mob/living/user) if(user.incapacitated() || !Adjacent(user) || !istype(user)) return pump() diff --git a/code/modules/projectiles/guns/projectile/toy.dm b/code/modules/projectiles/guns/ballistic/toy.dm similarity index 62% rename from code/modules/projectiles/guns/projectile/toy.dm rename to code/modules/projectiles/guns/ballistic/toy.dm index 417f13ea9b..5588bae937 100644 --- a/code/modules/projectiles/guns/projectile/toy.dm +++ b/code/modules/projectiles/guns/ballistic/toy.dm @@ -1,4 +1,4 @@ -/obj/item/weapon/gun/projectile/automatic/toy +/obj/item/weapon/gun/ballistic/automatic/toy name = "foam force SMG" desc = "A prototype three-round burst toy submachine gun. Ages 8 and up." icon = 'icons/obj/guns/toy.dmi' @@ -12,18 +12,16 @@ can_suppress = 0 clumsy_check = 0 needs_permit = 0 + casing_ejector = 0 -/obj/item/weapon/gun/projectile/automatic/toy/process_chamber(eject_casing = 0, empty_chamber = 1) - ..() - -/obj/item/weapon/gun/projectile/automatic/toy/unrestricted +/obj/item/weapon/gun/ballistic/automatic/toy/unrestricted pin = /obj/item/device/firing_pin -/obj/item/weapon/gun/projectile/automatic/toy/pistol +/obj/item/weapon/gun/ballistic/automatic/toy/pistol name = "foam force pistol" desc = "A small, easily concealable toy handgun. Ages 8 and up." icon_state = "pistol" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL mag_type = /obj/item/ammo_box/magazine/toy/pistol fire_sound = 'sound/weapons/Gunshot.ogg' can_suppress = 0 @@ -31,24 +29,24 @@ fire_delay = 0 actions_types = list() -/obj/item/weapon/gun/projectile/automatic/toy/pistol/update_icon() +/obj/item/weapon/gun/ballistic/automatic/toy/pistol/update_icon() ..() icon_state = "[initial(icon_state)][chambered ? "" : "-e"]" -/obj/item/weapon/gun/projectile/automatic/toy/pistol/riot +/obj/item/weapon/gun/ballistic/automatic/toy/pistol/riot mag_type = /obj/item/ammo_box/magazine/toy/pistol/riot -/obj/item/weapon/gun/projectile/automatic/toy/pistol/riot/New() +/obj/item/weapon/gun/ballistic/automatic/toy/pistol/riot/New() magazine = new /obj/item/ammo_box/magazine/toy/pistol/riot(src) ..() -/obj/item/weapon/gun/projectile/automatic/toy/pistol/unrestricted +/obj/item/weapon/gun/ballistic/automatic/toy/pistol/unrestricted pin = /obj/item/device/firing_pin -/obj/item/weapon/gun/projectile/automatic/toy/pistol/riot/unrestricted +/obj/item/weapon/gun/ballistic/automatic/toy/pistol/riot/unrestricted pin = /obj/item/device/firing_pin -/obj/item/weapon/gun/projectile/shotgun/toy +/obj/item/weapon/gun/ballistic/shotgun/toy name = "foam force shotgun" desc = "A toy shotgun with wood furniture and a four-shell capacity underneath. Ages 8 and up." icon = 'icons/obj/guns/toy.dmi' @@ -58,16 +56,17 @@ mag_type = /obj/item/ammo_box/magazine/internal/shot/toy clumsy_check = 0 needs_permit = 0 + casing_ejector = 0 -/obj/item/weapon/gun/projectile/shotgun/toy/process_chamber() +/obj/item/weapon/gun/ballistic/shotgun/toy/process_chamber(empty_chamber = 0) ..() if(chambered && !chambered.BB) qdel(chambered) -/obj/item/weapon/gun/projectile/shotgun/toy/unrestricted +/obj/item/weapon/gun/ballistic/shotgun/toy/unrestricted pin = /obj/item/device/firing_pin -/obj/item/weapon/gun/projectile/shotgun/toy/crossbow +/obj/item/weapon/gun/ballistic/shotgun/toy/crossbow name = "foam force crossbow" desc = "A weapon favored by many overactive children. Ages 8 and up." icon = 'icons/obj/toy.dmi' @@ -76,33 +75,28 @@ mag_type = /obj/item/ammo_box/magazine/internal/shot/toy/crossbow fire_sound = 'sound/items/syringeproj.ogg' slot_flags = SLOT_BELT - w_class = 2 + w_class = WEIGHT_CLASS_SMALL -/obj/item/weapon/gun/projectile/automatic/c20r/toy +/obj/item/weapon/gun/ballistic/automatic/c20r/toy name = "donksoft SMG" desc = "A bullpup two-round burst toy SMG, designated 'C-20r'. Ages 8 and up." icon = 'icons/obj/guns/toy.dmi' can_suppress = 0 needs_permit = 0 mag_type = /obj/item/ammo_box/magazine/toy/smgm45 + casing_ejector = 0 -/obj/item/weapon/gun/projectile/automatic/c20r/toy/process_chamber(eject_casing = 0, empty_chamber = 1) - ..() - - -/obj/item/weapon/gun/projectile/automatic/c20r/toy/unrestricted +/obj/item/weapon/gun/ballistic/automatic/c20r/toy/unrestricted pin = /obj/item/device/firing_pin -/obj/item/weapon/gun/projectile/automatic/l6_saw/toy +/obj/item/weapon/gun/ballistic/automatic/l6_saw/toy name = "donksoft LMG" desc = "A heavily modified toy light machine gun, designated 'L6 SAW'. Ages 8 and up." icon = 'icons/obj/guns/toy.dmi' can_suppress = 0 needs_permit = 0 mag_type = /obj/item/ammo_box/magazine/toy/m762 + casing_ejector = 0 -/obj/item/weapon/gun/projectile/automatic/l6_saw/toy/process_chamber(eject_casing = 0, empty_chamber = 1) - ..() - -/obj/item/weapon/gun/projectile/automatic/l6_saw/toy/unrestricted +/obj/item/weapon/gun/ballistic/automatic/l6_saw/toy/unrestricted pin = /obj/item/device/firing_pin \ No newline at end of file diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm index 58645f289a..d36942ed7a 100644 --- a/code/modules/projectiles/guns/energy.dm +++ b/code/modules/projectiles/guns/energy.dm @@ -16,9 +16,12 @@ var/selfcharge = 0 var/charge_tick = 0 var/charge_delay = 4 + var/use_cyborg_cell = 0 //whether the gun's cell drains the cyborg user's cell to recharge /obj/item/weapon/gun/energy/emp_act(severity) power_supply.use(round(power_supply.charge / severity)) + chambered = null //we empty the chamber + recharge_newshot() //and try to charge a new shot update_icon() @@ -29,6 +32,13 @@ else power_supply = new(src) power_supply.give(power_supply.maxcharge) + update_ammo_types() + recharge_newshot(1) + if(selfcharge) + START_PROCESSING(SSobj, src) + update_icon() + +/obj/item/weapon/gun/energy/proc/update_ammo_types() var/obj/item/ammo_casing/energy/shot for (var/i = 1, i <= ammo_type.len, i++) var/shottype = ammo_type[i] @@ -37,12 +47,11 @@ shot = ammo_type[select] fire_sound = shot.fire_sound fire_delay = shot.delay - if(selfcharge) - START_PROCESSING(SSobj, src) - update_icon() - return /obj/item/weapon/gun/energy/Destroy() + if(power_supply) + qdel(power_supply) + power_supply = null STOP_PROCESSING(SSobj, src) return ..() @@ -55,6 +64,8 @@ if(!power_supply) return power_supply.give(100) + if(!chambered) //if empty chamber we try to charge a new shot + recharge_newshot(1) update_icon() /obj/item/weapon/gun/energy/attack_self(mob/living/user as mob) @@ -62,29 +73,33 @@ select_fire(user) update_icon() -/obj/item/weapon/gun/energy/afterattack(atom/target as mob|obj|turf, mob/living/user as mob|obj, params) - newshot() //prepare a new shot - ..() - /obj/item/weapon/gun/energy/can_shoot() var/obj/item/ammo_casing/energy/shot = ammo_type[select] return power_supply.charge >= shot.e_cost -/obj/item/weapon/gun/energy/newshot() +/obj/item/weapon/gun/energy/recharge_newshot(no_cyborg_drain) if (!ammo_type || !power_supply) return - var/obj/item/ammo_casing/energy/shot = ammo_type[select] - if(power_supply.charge >= shot.e_cost) //if there's enough power in the power_supply cell... - chambered = shot //...prepare a new shot based on the current ammo type selected - chambered.newshot() - return + if(use_cyborg_cell && !no_cyborg_drain) + if(iscyborg(loc)) + var/mob/living/silicon/robot/R = loc + if(R.cell) + var/obj/item/ammo_casing/energy/shot = ammo_type[select] //Necessary to find cost of shot + if(R.cell.use(shot.e_cost)) //Take power from the borg... + power_supply.give(shot.e_cost) //... to recharge the shot + if(!chambered) + var/obj/item/ammo_casing/energy/AC = ammo_type[select] + if(power_supply.charge >= AC.e_cost) //if there's enough power in the power_supply cell... + chambered = AC //...prepare a new shot based on the current ammo type selected + if(!chambered.BB) + chambered.newshot() /obj/item/weapon/gun/energy/process_chamber() if(chambered && !chambered.BB) //if BB is null, i.e the shot has been fired... var/obj/item/ammo_casing/energy/shot = chambered power_supply.use(shot.e_cost)//... drain the power_supply cell chambered = null //either way, released the prepared shot - return + recharge_newshot() //try to charge a new shot /obj/item/weapon/gun/energy/proc/select_fire(mob/living/user) select++ @@ -95,6 +110,8 @@ fire_delay = shot.delay if (shot.select_name) user << "[src] is now set to [shot.select_name]." + chambered = null + recharge_newshot(1) update_icon() return @@ -119,9 +136,9 @@ add_overlay(image(icon = icon, icon_state = iconState, pixel_x = ammo_x_offset * (i -1))) else add_overlay(image(icon = icon, icon_state = "[icon_state]_charge[ratio]")) - if(F && can_flashlight) + if(gun_light && can_flashlight) var/iconF = "flight" - if(F.on) + if(gun_light.on) iconF = "flight_on" add_overlay(image(icon = icon, icon_state = iconF, pixel_x = flight_x_offset, pixel_y = flight_y_offset)) if(itemState) @@ -133,10 +150,10 @@ /obj/item/weapon/gun/energy/suicide_act(mob/user) if (src.can_shoot()) - user.visible_message("[user] is putting the barrel of the [src.name] in \his mouth. It looks like \he's trying to commit suicide.") + user.visible_message("[user] is putting the barrel of [src] in [user.p_their()] mouth. It looks like [user.p_theyre()] trying to commit suicide!") sleep(25) - if(user.l_hand == src || user.r_hand == src) - user.visible_message("[user] melts \his face off with the [src.name]!") + if(user.is_holding(src)) + user.visible_message("[user] melts [user.p_their()] face off with [src]!") playsound(loc, fire_sound, 50, 1, -1) var/obj/item/ammo_casing/energy/shot = ammo_type[select] power_supply.use(shot.e_cost) @@ -146,27 +163,17 @@ user.visible_message("[user] panics and starts choking to death!") return(OXYLOSS) else - user.visible_message("[user] is pretending to blow \his brains out with the [src.name]! It looks like \he's trying to commit suicide!") + user.visible_message("[user] is pretending to blow [user.p_their()] brains out with [src]! It looks like [user.p_theyre()] trying to commit suicide!") playsound(loc, 'sound/weapons/empty.ogg', 50, 1, -1) return (OXYLOSS) -/obj/item/weapon/gun/energy/proc/robocharge() - if(isrobot(src.loc)) - var/mob/living/silicon/robot/R = src.loc - if(R && R.cell) - var/obj/item/ammo_casing/energy/shot = ammo_type[select] //Necessary to find cost of shot - if(R.cell.use(shot.e_cost)) //Take power from the borg... - power_supply.give(shot.e_cost) //... to recharge the shot -/obj/item/weapon/gun/energy/on_varedit(modified_var) - if(modified_var == "selfcharge") - if(selfcharge) - START_PROCESSING(SSobj, src) - else - STOP_PROCESSING(SSobj, src) - ..() +/obj/item/weapon/gun/energy/vv_edit_var(var_name, var_value) + switch(var_name) + if("selfcharge") + if(var_value) + START_PROCESSING(SSobj, src) + else + STOP_PROCESSING(SSobj, src) + . = ..() -/obj/item/weapon/gun/energy/burn() - if(power_supply) - qdel(power_supply) - .=..() diff --git a/code/modules/projectiles/guns/energy/nuclear.dm b/code/modules/projectiles/guns/energy/energy_gun.dm similarity index 54% rename from code/modules/projectiles/guns/energy/nuclear.dm rename to code/modules/projectiles/guns/energy/energy_gun.dm index 0c0bfb227d..7bc85ce766 100644 --- a/code/modules/projectiles/guns/energy/nuclear.dm +++ b/code/modules/projectiles/guns/energy/energy_gun.dm @@ -1,37 +1,43 @@ -/obj/item/weapon/gun/energy/gun +/obj/item/weapon/gun/energy/e_gun name = "energy gun" desc = "A basic hybrid energy gun with two settings: disable and kill." icon_state = "energy" item_state = null //so the human update icon uses the icon_state instead. ammo_type = list(/obj/item/ammo_casing/energy/disabler, /obj/item/ammo_casing/energy/laser) origin_tech = "combat=4;magnets=3" - modifystate = 2 + modifystate = 1 can_flashlight = 1 ammo_x_offset = 3 flight_x_offset = 15 flight_y_offset = 10 -/obj/item/weapon/gun/energy/gun/mini +/obj/item/weapon/gun/energy/e_gun/mini name = "miniature energy gun" desc = "A small, pistol-sized energy gun with a built-in flashlight. It has two settings: stun and kill." icon_state = "mini" item_state = "gun" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL cell_type = /obj/item/weapon/stock_parts/cell{charge = 600; maxcharge = 600} ammo_x_offset = 2 charge_sections = 3 can_flashlight = 0 // Can't attach or detach the flashlight, and override it's icon update -/obj/item/weapon/gun/energy/gun/mini/New() - F = new /obj/item/device/flashlight/seclite(src) +/obj/item/weapon/gun/energy/e_gun/mini/New() + gun_light = new /obj/item/device/flashlight/seclite(src) ..() -/obj/item/weapon/gun/energy/gun/mini/update_icon() +/obj/item/weapon/gun/energy/e_gun/mini/update_icon() ..() - if(F && F.on) + if(gun_light && gun_light.on) add_overlay("mini-light") -/obj/item/weapon/gun/energy/gun/hos +/obj/item/weapon/gun/energy/e_gun/mini/practice_phaser + name = "practice phaser" + desc = "A modified version of the basic phaser gun, this one fires less concentrated energy bolts designed for target practice." + ammo_type = list(/obj/item/ammo_casing/energy/disabler, /obj/item/ammo_casing/energy/laser/practice) + icon_state = "decloner" + +/obj/item/weapon/gun/energy/e_gun/hos name = "\improper X-01 MultiPhase Energy Gun" desc = "This is an expensive, modern recreation of an antique laser gun. This gun has several unique firemodes, but lacks the ability to recharge over time." icon_state = "hoslaser" @@ -39,8 +45,9 @@ force = 10 ammo_type = list(/obj/item/ammo_casing/energy/electrode/hos, /obj/item/ammo_casing/energy/laser/hos, /obj/item/ammo_casing/energy/disabler) ammo_x_offset = 4 + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF -/obj/item/weapon/gun/energy/gun/dragnet +/obj/item/weapon/gun/energy/e_gun/dragnet name = "\improper DRAGnet" desc = "The \"Dynamic Rapid-Apprehension of the Guilty\" net is a revolution in law enforcement technology." icon_state = "dragnet" @@ -49,25 +56,25 @@ can_flashlight = 0 ammo_x_offset = 1 -/obj/item/weapon/gun/energy/gun/dragnet/snare +/obj/item/weapon/gun/energy/e_gun/dragnet/snare name = "Energy Snare Launcher" desc = "Fires an energy snare that slows the target down" ammo_type = list(/obj/item/ammo_casing/energy/trap) -/obj/item/weapon/gun/energy/gun/turret +/obj/item/weapon/gun/energy/e_gun/turret name = "hybrid turret gun" desc = "A heavy hybrid energy cannon with two settings: Stun and kill." icon_state = "turretlaser" item_state = "turretlaser" slot_flags = null - w_class = 5 + w_class = WEIGHT_CLASS_HUGE ammo_type = list(/obj/item/ammo_casing/energy/electrode, /obj/item/ammo_casing/energy/laser) - weapon_weight = WEAPON_MEDIUM + weapon_weight = WEAPON_HEAVY can_flashlight = 0 trigger_guard = TRIGGER_GUARD_NONE ammo_x_offset = 2 -/obj/item/weapon/gun/energy/gun/nuclear +/obj/item/weapon/gun/energy/e_gun/nuclear name = "advanced energy gun" desc = "An energy gun with an experimental miniaturized nuclear reactor that automatically charges the internal power cell." icon_state = "nucgun" @@ -79,3 +86,46 @@ ammo_x_offset = 1 ammo_type = list(/obj/item/ammo_casing/energy/electrode, /obj/item/ammo_casing/energy/laser, /obj/item/ammo_casing/energy/disabler) selfcharge = 1 + var/fail_tick = 0 + var/fail_chance = 0 + +/obj/item/weapon/gun/energy/e_gun/nuclear/process() + if(fail_tick > 0) + fail_tick-- + ..() + +/obj/item/weapon/gun/energy/e_gun/nuclear/shoot_live_shot() + failcheck() + update_icon() + ..() + +/obj/item/weapon/gun/energy/e_gun/nuclear/proc/failcheck() + if(prob(fail_chance) && isliving(loc)) + var/mob/living/M = loc + switch(fail_tick) + if(0 to 200) + fail_tick += (2*(fail_chance)) + M.rad_act(40) + M << "Your [name] feels warmer." + if(201 to INFINITY) + SSobj.processing.Remove(src) + M.rad_act(80) + crit_fail = 1 + M << "Your [name]'s reactor overloads!" + +/obj/item/weapon/gun/energy/e_gun/nuclear/emp_act(severity) + ..() + fail_chance = min(fail_chance + round(15/severity), 100) + +/obj/item/weapon/gun/energy/e_gun/nuclear/update_icon() + ..() + if(crit_fail) + add_overlay("[icon_state]_fail_3") + else + switch(fail_tick) + if(0) + add_overlay("[icon_state]_fail_0") + if(1 to 150) + add_overlay("[icon_state]_fail_1") + if(151 to INFINITY) + add_overlay("[icon_state]_fail_2") diff --git a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm new file mode 100644 index 0000000000..b8dda1739d --- /dev/null +++ b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm @@ -0,0 +1,413 @@ +/obj/item/weapon/gun/energy/kinetic_accelerator + name = "proto-kinetic accelerator" + desc = "A self recharging, ranged mining tool that does increased damage in low pressure. Capable of holding up to six slots worth of mod kits." + icon_state = "kineticgun" + item_state = "kineticgun" + ammo_type = list(/obj/item/ammo_casing/energy/kinetic) + cell_type = /obj/item/weapon/stock_parts/cell/emproof + needs_permit = 0 + unique_rename = 1 + origin_tech = "combat=3;powerstorage=3;engineering=3" + weapon_weight = WEAPON_LIGHT + can_flashlight = 1 + flight_x_offset = 15 + flight_y_offset = 9 + var/overheat_time = 16 + var/holds_charge = FALSE + var/unique_frequency = FALSE // modified by KA modkits + var/overheat = FALSE + + var/max_mod_capacity = 100 + var/list/modkits = list() + + var/empty_state = "kineticgun_empty" + +/obj/item/weapon/gun/energy/kinetic_accelerator/examine(mob/user) + ..() + if(max_mod_capacity) + user << "[get_remaining_mod_capacity()]% mod capacity remaining." + for(var/A in get_modkits()) + var/obj/item/borg/upgrade/modkit/M = A + user << "There is a [M.name] mod installed, using [M.cost]% capacity." + +/obj/item/weapon/gun/energy/kinetic_accelerator/attackby(obj/item/A, mob/user) + if(istype(A, /obj/item/weapon/crowbar)) + if(modkits.len) + user << "You pry the modifications out." + playsound(loc, A.usesound, 100, 1) + for(var/obj/item/borg/upgrade/modkit/M in modkits) + M.uninstall(src) + else + user << "There are no modifications currently installed." + else if(istype(A, /obj/item/borg/upgrade/modkit)) + var/obj/item/borg/upgrade/modkit/MK = A + MK.install(src, user) + else + ..() + +/obj/item/weapon/gun/energy/kinetic_accelerator/proc/get_remaining_mod_capacity() + var/current_capacity_used = 0 + for(var/A in get_modkits()) + var/obj/item/borg/upgrade/modkit/M = A + current_capacity_used += M.cost + return max_mod_capacity - current_capacity_used + +/obj/item/weapon/gun/energy/kinetic_accelerator/proc/get_modkits() + . = list() + for(var/A in modkits) + . += A + +/obj/item/weapon/gun/energy/kinetic_accelerator/proc/modify_projectile(obj/item/projectile/kinetic/K) + for(var/A in get_modkits()) + var/obj/item/borg/upgrade/modkit/M = A + M.modify_projectile(K) + +/obj/item/weapon/gun/energy/kinetic_accelerator/cyborg + holds_charge = TRUE + unique_frequency = TRUE + max_mod_capacity = 80 + +/obj/item/weapon/gun/energy/kinetic_accelerator/New() + . = ..() + if(!holds_charge) + empty() + +/obj/item/weapon/gun/energy/kinetic_accelerator/shoot_live_shot() + . = ..() + attempt_reload() + +/obj/item/weapon/gun/energy/kinetic_accelerator/equipped(mob/user) + . = ..() + if(!can_shoot()) + attempt_reload() + +/obj/item/weapon/gun/energy/kinetic_accelerator/dropped() + . = ..() + if(!holds_charge) + // Put it on a delay because moving item from slot to hand + // calls dropped(). + addtimer(src, "empty_if_not_held", 2) + +/obj/item/weapon/gun/energy/kinetic_accelerator/proc/empty_if_not_held() + if(!ismob(loc)) + empty() + +/obj/item/weapon/gun/energy/kinetic_accelerator/proc/empty() + power_supply.use(500) + update_icon() + +/obj/item/weapon/gun/energy/kinetic_accelerator/proc/attempt_reload() + if(overheat) + return + overheat = TRUE + + var/carried = 0 + if(!unique_frequency) + for(var/obj/item/weapon/gun/energy/kinetic_accelerator/K in \ + loc.GetAllContents()) + + carried++ + + carried = max(carried, 1) + else + carried = 1 + + addtimer(src, "reload", overheat_time * carried) + +/obj/item/weapon/gun/energy/kinetic_accelerator/emp_act(severity) + return + +/obj/item/weapon/gun/energy/kinetic_accelerator/proc/reload() + power_supply.give(500) + recharge_newshot(1) + if(!suppressed) + playsound(src.loc, 'sound/weapons/kenetic_reload.ogg', 60, 1) + else + loc << "[src] silently charges up." + update_icon() + overheat = FALSE + +/obj/item/weapon/gun/energy/kinetic_accelerator/update_icon() + cut_overlays() + if(empty_state && !can_shoot()) + add_overlay(empty_state) + + if(gun_light && can_flashlight) + var/iconF = "flight" + if(gun_light.on) + iconF = "flight_on" + add_overlay(image(icon = icon, icon_state = iconF, pixel_x = flight_x_offset, pixel_y = flight_y_offset)) + + +//Casing +/obj/item/ammo_casing/energy/kinetic + projectile_type = /obj/item/projectile/kinetic + select_name = "kinetic" + e_cost = 500 + fire_sound = 'sound/weapons/Kenetic_accel.ogg' // fine spelling there chap + +/obj/item/ammo_casing/energy/kinetic/ready_proj(atom/target, mob/living/user, quiet, zone_override = "") + ..() + if(loc && istype(loc, /obj/item/weapon/gun/energy/kinetic_accelerator)) + var/obj/item/weapon/gun/energy/kinetic_accelerator/KA = loc + KA.modify_projectile(BB) + + var/turf/proj_turf = get_turf(BB) + if(!isturf(proj_turf)) + return + var/datum/gas_mixture/environment = proj_turf.return_air() + var/pressure = environment.return_pressure() + if(pressure > 50) + BB.name = "weakened [BB.name]" + var/obj/item/projectile/kinetic/K = BB + K.damage *= K.pressure_decrease + + +//Projectiles +/obj/item/projectile/kinetic + name = "kinetic force" + icon_state = null + damage = 40 + damage_type = BRUTE + flag = "bomb" + range = 3 + log_override = TRUE + + var/pressure_decrease = 0.25 + var/turf_aoe = FALSE + var/mob_aoe = 0 + var/list/hit_overlays = list() + +/obj/item/projectile/kinetic/on_range() + strike_thing() + ..() + +/obj/item/projectile/kinetic/on_hit(atom/target) + strike_thing(target) + . = ..() + +/obj/item/projectile/kinetic/proc/strike_thing(atom/target) + var/turf/target_turf = get_turf(target) + if(!target_turf) + target_turf = get_turf(src) + if(ismineralturf(target_turf)) + var/turf/closed/mineral/M = target_turf + M.gets_drilled(firer) + var/obj/effect/overlay/temp/kinetic_blast/K = PoolOrNew(/obj/effect/overlay/temp/kinetic_blast, target_turf) + K.color = color + for(var/type in hit_overlays) + PoolOrNew(type, target_turf) + if(turf_aoe) + for(var/T in RANGE_TURFS(1, target_turf) - target_turf) + if(ismineralturf(T)) + var/turf/closed/mineral/M = T + M.gets_drilled(firer) + if(mob_aoe) + for(var/mob/living/L in range(1, target_turf) - firer - target) + var/armor = L.run_armor_check(def_zone, flag, "", "", armour_penetration) + L.apply_damage(damage*mob_aoe, damage_type, def_zone, armor) + L << "You're struck by a [name]!" + + +//Modkits +/obj/item/borg/upgrade/modkit + name = "modification kit" + desc = "An upgrade for kinetic accelerators." + icon = 'icons/obj/objects.dmi' + icon_state = "modkit" + origin_tech = "programming=2;materials=2;magnets=4" + require_module = 1 + module_type = /obj/item/weapon/robot_module/miner + var/denied_type = null + var/maximum_of_type = 1 + var/cost = 30 + var/modifier = 1 //For use in any mod kit that has numerical modifiers + +/obj/item/borg/upgrade/modkit/examine(mob/user) + ..() + user << "Occupies [cost]% of mod capacity." + +/obj/item/borg/upgrade/modkit/attackby(obj/item/A, mob/user) + if(istype(A, /obj/item/weapon/gun/energy/kinetic_accelerator) && !issilicon(user)) + install(A, user) + else + ..() + +/obj/item/borg/upgrade/modkit/action(mob/living/silicon/robot/R) + if(..()) + return + + for(var/obj/item/weapon/gun/energy/kinetic_accelerator/cyborg/H in R.module.modules) + return install(H, usr) + +/obj/item/borg/upgrade/modkit/proc/install(obj/item/weapon/gun/energy/kinetic_accelerator/KA, mob/user) + . = TRUE + if(denied_type) + var/number_of_denied = 0 + for(var/A in KA.get_modkits()) + var/obj/item/borg/upgrade/modkit/M = A + if(istype(M, denied_type)) + number_of_denied++ + if(number_of_denied >= maximum_of_type) + . = FALSE + break + if(KA.get_remaining_mod_capacity() >= cost) + if(.) + user << "You install the modkit." + playsound(loc, 'sound/items/Screwdriver.ogg', 100, 1) + user.unEquip(src) + forceMove(KA) + KA.modkits += src + else + user << "The modkit you're trying to install would conflict with an already installed modkit. Use a crowbar to remove existing modkits." + else + user << "You don't have room([KA.get_remaining_mod_capacity()]% remaining, [cost]% needed) to install this modkit. Use a crowbar to remove existing modkits." + . = FALSE + + + +/obj/item/borg/upgrade/modkit/proc/uninstall(obj/item/weapon/gun/energy/kinetic_accelerator/KA) + forceMove(get_turf(KA)) + KA.modkits -= src + +/obj/item/borg/upgrade/modkit/proc/modify_projectile(obj/item/projectile/kinetic/K) + + +//Range +/obj/item/borg/upgrade/modkit/range + name = "range increase" + desc = "Increases the range of a kinetic accelerator when installed." + modifier = 1 + cost = 24 //so you can fit four plus a tracer cosmetic + +/obj/item/borg/upgrade/modkit/range/modify_projectile(obj/item/projectile/kinetic/K) + K.range += modifier + + +//Damage +/obj/item/borg/upgrade/modkit/damage + name = "damage increase" + desc = "Increases the damage of kinetic accelerator when installed." + modifier = 10 + +/obj/item/borg/upgrade/modkit/damage/modify_projectile(obj/item/projectile/kinetic/K) + K.damage += modifier + + +//Cooldown +/obj/item/borg/upgrade/modkit/cooldown + name = "cooldown decrease" + desc = "Decreases the cooldown of a kinetic accelerator." + modifier = 2.5 + +/obj/item/borg/upgrade/modkit/cooldown/install(obj/item/weapon/gun/energy/kinetic_accelerator/KA, mob/user) + . = ..() + if(.) + KA.overheat_time -= modifier + +/obj/item/borg/upgrade/modkit/cooldown/uninstall(obj/item/weapon/gun/energy/kinetic_accelerator/KA) + KA.overheat_time += modifier + ..() + + +//AoE blasts +/obj/item/borg/upgrade/modkit/aoe + modifier = 0 + +/obj/item/borg/upgrade/modkit/aoe/modify_projectile(obj/item/projectile/kinetic/K) + K.name = "kinetic explosion" + if(!K.turf_aoe && !K.mob_aoe) + K.hit_overlays += /obj/effect/overlay/temp/explosion/fast + K.mob_aoe += modifier + +/obj/item/borg/upgrade/modkit/aoe/turfs + name = "mining explosion" + desc = "Causes the kinetic accelerator to destroy rock in an AoE." + denied_type = /obj/item/borg/upgrade/modkit/aoe/turfs + +/obj/item/borg/upgrade/modkit/aoe/turfs/modify_projectile(obj/item/projectile/kinetic/K) + ..() + K.turf_aoe = TRUE + +/obj/item/borg/upgrade/modkit/aoe/turfs/andmobs + name = "offensive mining explosion" + desc = "Causes the kinetic accelerator to destroy rock and damage mobs in an AoE." + maximum_of_type = 3 + modifier = 0.25 + +/obj/item/borg/upgrade/modkit/aoe/mobs + name = "offensive explosion" + desc = "Causes the kinetic accelerator to damage mobs in an AoE." + modifier = 0.2 + + +//Indoors +/obj/item/borg/upgrade/modkit/indoors + name = "decrease pressure penalty" + desc = "Increases the damage a kinetic accelerator does in a high pressure environment." + modifier = 2 + denied_type = /obj/item/borg/upgrade/modkit/indoors + maximum_of_type = 2 + cost = 40 + +/obj/item/borg/upgrade/modkit/indoors/modify_projectile(obj/item/projectile/kinetic/K) + K.pressure_decrease *= modifier + + +//Trigger Guard +/obj/item/borg/upgrade/modkit/trigger_guard + name = "modified trigger guard" + desc = "Allows creatures normally incapable of firing guns to operate the weapon when installed." + cost = 20 + denied_type = /obj/item/borg/upgrade/modkit/trigger_guard + +/obj/item/borg/upgrade/modkit/trigger_guard/install(obj/item/weapon/gun/energy/kinetic_accelerator/KA, mob/user) + . = ..() + if(.) + KA.trigger_guard = TRIGGER_GUARD_ALLOW_ALL + +/obj/item/borg/upgrade/modkit/trigger_guard/uninstall(obj/item/weapon/gun/energy/kinetic_accelerator/KA) + KA.trigger_guard = TRIGGER_GUARD_NORMAL + ..() + + +//Cosmetic + +/obj/item/borg/upgrade/modkit/chassis_mod + name = "super chassis" + desc = "Makes your KA yellow. All the fun of having a more powerful KA without actually having a more powerful KA." + cost = 10 + denied_type = /obj/item/borg/upgrade/modkit/chassis_mod + var/chassis_icon = "kineticgun_u" + +/obj/item/borg/upgrade/modkit/chassis_mod/install(obj/item/weapon/gun/energy/kinetic_accelerator/KA, mob/user) + . = ..() + if(.) + KA.icon_state = chassis_icon + +/obj/item/borg/upgrade/modkit/chassis_mod/uninstall(obj/item/weapon/gun/energy/kinetic_accelerator/KA) + KA.icon_state = initial(KA.icon_state) + ..() + +/obj/item/borg/upgrade/modkit/chassis_mod/orange + name = "hyper chassis" + desc = "Makes your KA orange. All the fun of having explosive blasts without actually having explosive blasts." + chassis_icon = "kineticgun_h" + +/obj/item/borg/upgrade/modkit/tracer + name = "white tracer bolts" + desc = "Causes kinetic accelerator bolts to have a white tracer trail and explosion." + cost = 4 + denied_type = /obj/item/borg/upgrade/modkit/tracer + var/bolt_color = "#FFFFFF" + +/obj/item/borg/upgrade/modkit/tracer/modify_projectile(obj/item/projectile/kinetic/K) + K.icon_state = "ka_tracer" + K.color = bolt_color + +/obj/item/borg/upgrade/modkit/tracer/adjustable + name = "adjustable tracer bolts" + desc = "Causes kinetic accelerator bolts to have a adjustably-colored tracer trail and explosion. Use in-hand to change color." + +/obj/item/borg/upgrade/modkit/tracer/adjustable/attack_self(mob/user) + bolt_color = input(user,"Choose Color") as color diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index 677a46c118..7b0b9dcaca 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -3,7 +3,7 @@ desc = "A basic energy-based laser gun that fires concentrated beams of light which pass through glass and thin metal." icon_state = "laser" item_state = "laser" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL materials = list(MAT_METAL=2000) origin_tech = "combat=4;magnets=2" ammo_type = list(/obj/item/ammo_casing/energy/lasergun) @@ -33,6 +33,7 @@ origin_tech = null ammo_x_offset = 3 selfcharge = 1 + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF /obj/item/weapon/gun/energy/laser/captain/scattershot name = "scatter shot laser rifle" @@ -46,10 +47,7 @@ can_charge = 0 desc = "An energy-based laser gun that draws power from the cyborg's internal energy cell directly. So this is what freedom looks like?" origin_tech = null - -/obj/item/weapon/gun/energy/laser/cyborg/newshot() - ..() - robocharge() + use_cyborg_cell = 1 /obj/item/weapon/gun/energy/laser/cyborg/emp_act() return @@ -59,6 +57,16 @@ desc = "A laser gun equipped with a refraction kit that spreads bolts." ammo_type = list(/obj/item/ammo_casing/energy/laser/scatter, /obj/item/ammo_casing/energy/laser) +/obj/item/weapon/gun/energy/laser/scatter/shotty + name = "energy shotgun" + icon = 'icons/obj/guns/projectile.dmi' + icon_state = "cshotgun" + item_state = "shotgun" + desc = "A combat shotgun gutted and refitted with an internal laser system. Can switch between taser and scattered disabler shots." + shaded_charge = 0 + pin = /obj/item/device/firing_pin/implant/mindshield + ammo_type = list(/obj/item/ammo_casing/energy/laser/scatter/disabler, /obj/item/ammo_casing/energy/electrode) + ///Laser Cannon /obj/item/weapon/gun/energy/lasercannon @@ -66,7 +74,7 @@ desc = "An advanced laser cannon that does more damage the farther away the target is." icon_state = "lasercannon" item_state = "laser" - w_class = 4 + w_class = WEIGHT_CLASS_BULKY force = 10 flags = CONDUCT slot_flags = SLOT_BACK diff --git a/code/modules/projectiles/guns/energy/pulse.dm b/code/modules/projectiles/guns/energy/pulse.dm index 80e56b45e6..d7fef273a0 100644 --- a/code/modules/projectiles/guns/energy/pulse.dm +++ b/code/modules/projectiles/guns/energy/pulse.dm @@ -3,7 +3,7 @@ desc = "A heavy-duty, multifaceted energy rifle with three modes. Preferred by front-line combat personnel." icon_state = "pulse" item_state = null - w_class = 4 + w_class = WEIGHT_CLASS_BULKY force = 10 flags = CONDUCT slot_flags = SLOT_BACK @@ -39,7 +39,7 @@ /obj/item/weapon/gun/energy/pulse/carbine name = "pulse carbine" desc = "A compact variant of the pulse rifle with less firepower but easier storage." - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL slot_flags = SLOT_BELT icon_state = "pulse_carbine" item_state = "pulse" @@ -54,7 +54,7 @@ /obj/item/weapon/gun/energy/pulse/pistol name = "pulse pistol" desc = "A pulse rifle in an easily concealed handgun package with low capacity." - w_class = 2 + w_class = WEIGHT_CLASS_SMALL slot_flags = SLOT_BELT icon_state = "pulse_pistol" item_state = "gun" diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index ce9fa743e2..084da43b04 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -5,7 +5,7 @@ item_state = null //so the human update icon uses the icon_state instead. origin_tech = "combat=4;magnets=4" can_flashlight = 1 - w_class = 5 + w_class = WEIGHT_CLASS_HUGE flags = CONDUCT slot_flags = SLOT_BACK ammo_type = list(/obj/item/ammo_casing/energy/ion) @@ -20,7 +20,7 @@ name = "ion carbine" desc = "The MK.II Prototype Ion Projector is a lightweight carbine version of the larger ion rifle, built to be ergonomic and efficient." icon_state = "ioncarbine" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL slot_flags = SLOT_BELT pin = null ammo_x_offset = 2 @@ -58,7 +58,7 @@ desc = "For the love of god, make sure you're aiming this the right way!" icon_state = "riotgun" item_state = "c20r" - w_class = 4 + w_class = WEIGHT_CLASS_BULKY ammo_type = list(/obj/item/ammo_casing/energy/meteor) cell_type = "/obj/item/weapon/stock_parts/cell/potato" clumsy_check = 0 //Admin spawn only, might as well let clowns use it. @@ -72,7 +72,7 @@ item_state = "pen" lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' righthand_file = 'icons/mob/inhands/items_righthand.dmi' - w_class = 1 + w_class = WEIGHT_CLASS_TINY /obj/item/weapon/gun/energy/mindflayer name = "\improper Mind Flayer" @@ -82,152 +82,12 @@ ammo_type = list(/obj/item/ammo_casing/energy/mindflayer) ammo_x_offset = 2 -/obj/item/weapon/gun/energy/kinetic_accelerator - name = "proto-kinetic accelerator" - desc = "In the year 2544, only a year after the discovery of a potentially \ - world-changing substance, now colloquially referred to as plasma, the \ - Nanotrasen-UEG mining conglomerate introduced a prototype of a gun-like \ - device intended for quick, effective mining of plasma in the low \ - pressures of the solar system. Included in this presentation were \ - demonstrations of the gun being fired at collections of rocks contained \ - in vacuumed environments, obliterating them instantly while maintaining \ - the structure of the ores buried within them. Additionally, volunteers \ - were called from the crowd to have the gun used on them, only proving that \ - the gun caused little harm to objects in standard pressure. \n\ - An official from an unnamed, now long dissipated company observed this \ - presentation and offered to share their self-recharger cells, powered \ - by the user's bioelectrical field, another new and unknown technology. \ - They warned that the cells were incredibly experimental and several times \ - had injured workers, but the scientists as Nanotrasen were unable to resist \ - the money-saving potential of self recharging cells. Upon accepting this \ - offer, it took only a matter of days to prove the volatility of these cells, \ - as they exploded left and right whenever inserted into the prototype devices, \ - only throwing more money in the bin. \n\ - Whenever the Nanotrasen scientists were on the edge of giving up, a \ - breakthrough was made by head researcher Miles Parks McCollum, who \ - demonstrated that the cells could be stabilized when exposed to radium \ - then cooled with cryostylane. After this discovery, the low pressure gun, \ - now named the Kinetic Accelerator, was hastily completed and made compatible \ - with the self-recharging cells. As a result of poor testing, the currently \ - used guns lose their charge when not in use, and when two Kinetic Accelerators \ - come in proximity of one another, they will interfere with each other. Despite \ - this, the shoddy guns still see use in the mining of plasma to this day." - icon_state = "kineticgun" - item_state = "kineticgun" - ammo_type = list(/obj/item/ammo_casing/energy/kinetic) - cell_type = /obj/item/weapon/stock_parts/cell/emproof - // Apparently these are safe to carry? I'm sure goliaths would disagree. - needs_permit = 0 - unique_rename = 1 - origin_tech = "combat=3;powerstorage=3;engineering=3" - weapon_weight = WEAPON_LIGHT - can_flashlight = 1 - flight_x_offset = 15 - flight_y_offset = 9 - var/overheat_time = 16 - var/holds_charge = FALSE - var/unique_frequency = FALSE // modified by KA modkits - var/overheat = FALSE - -/obj/item/weapon/gun/energy/kinetic_accelerator/super - name = "super-kinetic accelerator" - desc = "An upgraded, superior version of the proto-kinetic accelerator." - icon_state = "kineticgun_u" - ammo_type = list(/obj/item/ammo_casing/energy/kinetic/super) - overheat_time = 15 - origin_tech = "materials=5;powerstorage=3;engineering=4;magnets=3;combat=3" - -/obj/item/weapon/gun/energy/kinetic_accelerator/hyper - name = "hyper-kinetic accelerator" - desc = "An upgraded, even more superior version of the proto-kinetic accelerator." - icon_state = "kineticgun_h" - ammo_type = list(/obj/item/ammo_casing/energy/kinetic/hyper) - overheat_time = 14 - origin_tech = "materials=6;powerstorage=4;engineering=4;magnets=4;combat=4" - -/obj/item/weapon/gun/energy/kinetic_accelerator/cyborg - holds_charge = TRUE - unique_frequency = TRUE - -/obj/item/weapon/gun/energy/kinetic_accelerator/hyper/cyborg - holds_charge = TRUE - unique_frequency = TRUE - -/obj/item/weapon/gun/energy/kinetic_accelerator/New() - . = ..() - if(!holds_charge) - empty() - -/obj/item/weapon/gun/energy/kinetic_accelerator/shoot_live_shot() - . = ..() - attempt_reload() - -/obj/item/weapon/gun/energy/kinetic_accelerator/equipped(mob/user) - . = ..() - if(!can_shoot()) - attempt_reload() - -/obj/item/weapon/gun/energy/kinetic_accelerator/dropped() - . = ..() - if(!holds_charge) - // Put it on a delay because moving item from slot to hand - // calls dropped(). - sleep(1) - if(!ismob(loc)) - empty() - -/obj/item/weapon/gun/energy/kinetic_accelerator/proc/empty() - power_supply.use(500) - update_icon() - -/obj/item/weapon/gun/energy/kinetic_accelerator/proc/attempt_reload() - if(overheat) - return - overheat = TRUE - - var/carried = 0 - if(!unique_frequency) - for(var/obj/item/weapon/gun/energy/kinetic_accelerator/K in \ - loc.GetAllContents()) - - carried++ - - carried = max(carried, 1) - else - carried = 1 - - addtimer(src, "reload", overheat_time * carried) - -/obj/item/weapon/gun/energy/kinetic_accelerator/emp_act(severity) - return - -/obj/item/weapon/gun/energy/kinetic_accelerator/proc/reload() - power_supply.give(500) - if(!suppressed) - playsound(src.loc, 'sound/weapons/kenetic_reload.ogg', 60, 1) - else - loc << "[src] silently charges up." - update_icon() - overheat = FALSE - -/obj/item/weapon/gun/energy/kinetic_accelerator/update_icon() - cut_overlays() - if(!can_shoot()) - add_overlay("kineticgun_empty") - - if(F && can_flashlight) - var/iconF = "flight" - if(F.on) - iconF = "flight_on" - add_overlay(image(icon = icon, icon_state = iconF, pixel_x = flight_x_offset, pixel_y = flight_y_offset)) - - /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow name = "mini energy crossbow" desc = "A weapon favored by syndicate stealth specialists." icon_state = "crossbow" item_state = "crossbow" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL materials = list(MAT_METAL=2000) origin_tech = "combat=4;magnets=4;syndicate=5" suppressed = 1 @@ -238,31 +98,32 @@ holds_charge = TRUE unique_frequency = TRUE can_flashlight = 0 + max_mod_capacity = 0 + empty_state = null + +/obj/item/weapon/gun/energy/kinetic_accelerator/crossbow/halloween + name = "candy corn crossbow" + desc = "A weapon favored by Syndicate trick-or-treaters." + icon_state = "crossbow_halloween" + item_state = "crossbow" + ammo_type = list(/obj/item/ammo_casing/energy/bolt/halloween) /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow/large name = "energy crossbow" desc = "A reverse engineered weapon using syndicate technology." icon_state = "crossbowlarge" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL materials = list(MAT_METAL=4000) origin_tech = "combat=4;magnets=4;syndicate=2" suppressed = 0 ammo_type = list(/obj/item/ammo_casing/energy/bolt/large) pin = null -/obj/item/weapon/gun/energy/kinetic_accelerator/suicide_act(mob/user) - if(!suppressed) - playsound(src.loc, 'sound/weapons/kenetic_reload.ogg', 60, 1) - user.visible_message("[user] cocks the [src.name] and pretends to blow \his brains out! It looks like \he's trying to commit suicide!") - shoot_live_shot() - return (OXYLOSS) - /obj/item/weapon/gun/energy/plasmacutter name = "plasma cutter" desc = "A mining tool capable of expelling concentrated plasma bursts. You could use it to cut limbs off of xenos! Or, you know, mine stuff." icon_state = "plasmacutter" item_state = "plasmacutter" - modifystate = -1 origin_tech = "combat=1;materials=3;magnets=2;plasmatech=3;engineering=1" ammo_type = list(/obj/item/ammo_casing/energy/plasma) flags = CONDUCT | OPENCONTAINER @@ -282,10 +143,12 @@ var/obj/item/stack/sheet/S = A S.use(1) power_supply.give(1000) + recharge_newshot(1) user << "You insert [A] in [src], recharging it." else if(istype(A, /obj/item/weapon/ore/plasma)) qdel(A) power_supply.give(500) + recharge_newshot(1) user << "You insert [A] in [src], recharging it." else ..() @@ -354,6 +217,7 @@ cell_type = "/obj/item/weapon/stock_parts/cell/secborg" ammo_type = list(/obj/item/ammo_casing/energy/c3dbullet) can_charge = 0 + use_cyborg_cell = 1 /obj/item/weapon/gun/energy/printer/update_icon() return @@ -361,10 +225,6 @@ /obj/item/weapon/gun/energy/printer/emp_act() return -/obj/item/weapon/gun/energy/printer/newshot() - ..() - robocharge() - /obj/item/weapon/gun/energy/temperature name = "temperature gun" icon_state = "freezegun" @@ -374,6 +234,12 @@ cell_type = "/obj/item/weapon/stock_parts/cell/high" pin = null +/obj/item/weapon/gun/energy/temperature/security + name = "security temperature gun" + desc = "A weapon that can only be used to its full potential by the truly robust." + origin_tech = "combat=2;materials=2;powerstorage=1;magnets=1" + pin = /obj/item/device/firing_pin + /obj/item/weapon/gun/energy/laser/instakill name = "instakill rifle" icon_state = "instagib" @@ -400,8 +266,6 @@ /obj/item/weapon/gun/energy/gravity_gun name = "one-point bluespace-gravitational manipulator" - icon_state = "gravity_gun" - item_state = "gravity_gun" desc = "An experimental, multi-mode device that fires bolts of Zero-Point Energy, causing local distortions in gravity" ammo_type = list(/obj/item/ammo_casing/energy/gravityrepulse, /obj/item/ammo_casing/energy/gravityattract, /obj/item/ammo_casing/energy/gravitychaos) origin_tech = "combat=4;magnets=4;materials=6;powerstorage=4;bluespace=4" diff --git a/code/modules/projectiles/guns/energy/stun.dm b/code/modules/projectiles/guns/energy/stun.dm index 26a4587a2b..5391ca1c22 100644 --- a/code/modules/projectiles/guns/energy/stun.dm +++ b/code/modules/projectiles/guns/energy/stun.dm @@ -7,18 +7,18 @@ origin_tech = "combat=3" ammo_x_offset = 3 -/obj/item/weapon/gun/energy/shock_revolver +/obj/item/weapon/gun/energy/tesla_revolver name = "tesla gun" - desc = "An experimental gun based on an experimental engine, it's about as likely to kill it's operator as it is the target." + desc = "An experimental gun based on an experimental engine, it's about as likely to kill its operator as it is the target." icon_state = "tesla" item_state = "tesla" - ammo_type = list(/obj/item/ammo_casing/energy/shock_revolver) + ammo_type = list(/obj/item/ammo_casing/energy/tesla_revolver) origin_tech = "combat=4;materials=4;powerstorage=4" can_flashlight = 0 pin = null shaded_charge = 1 -/obj/item/weapon/gun/energy/gun/advtaser +/obj/item/weapon/gun/energy/e_gun/advtaser name = "hybrid taser" desc = "A dual-mode taser designed to fire both short-range high-power electrodes and long-range disabler beams." icon_state = "advtaser" @@ -26,15 +26,12 @@ origin_tech = "combat=4" ammo_x_offset = 2 -/obj/item/weapon/gun/energy/gun/advtaser/cyborg +/obj/item/weapon/gun/energy/e_gun/advtaser/cyborg name = "cyborg taser" desc = "An integrated hybrid taser that draws directly from a cyborg's power cell. The weapon contains a limiter to prevent the cyborg's power cell from overheating." can_flashlight = 0 can_charge = 0 - -/obj/item/weapon/gun/energy/gun/advtaser/cyborg/newshot() - ..() - robocharge() + use_cyborg_cell = 1 /obj/item/weapon/gun/energy/disabler name = "disabler" @@ -48,7 +45,5 @@ name = "cyborg disabler" desc = "An integrated disabler that draws from a cyborg's power cell. This weapon contains a limiter to prevent the cyborg's power cell from overheating." can_charge = 0 + use_cyborg_cell = 1 -/obj/item/weapon/gun/energy/disabler/cyborg/newshot() - ..() - robocharge() diff --git a/code/modules/projectiles/guns/grenade_launcher.dm b/code/modules/projectiles/guns/grenade_launcher.dm index a5f140cf9c..2e0a3daa80 100644 --- a/code/modules/projectiles/guns/grenade_launcher.dm +++ b/code/modules/projectiles/guns/grenade_launcher.dm @@ -4,7 +4,7 @@ icon = 'icons/obj/guns/projectile.dmi' icon_state = "riotgun" item_state = "riotgun" - w_class = 4 + w_class = WEIGHT_CLASS_BULKY throw_speed = 2 throw_range = 7 force = 5 @@ -36,18 +36,18 @@ if(grenades.len) fire_grenade(target,user) else - usr << "The grenade launcher is empty." + user << "The grenade launcher is empty." /obj/item/weapon/gun/grenadelauncher/proc/fire_grenade(atom/target, mob/user) user.visible_message("[user] fired a grenade!", \ "You fire the grenade launcher!") - var/obj/item/weapon/grenade/chem_grenade/F = grenades[1] //Now with less copypasta! + var/obj/item/weapon/grenade/F = grenades[1] //Now with less copypasta! grenades -= F F.loc = user.loc F.throw_at_fast(target, 30, 2,user) message_admins("[key_name_admin(user)] fired a grenade ([F.name]) from a grenade launcher ([src.name]).") log_game("[key_name(user)] fired a grenade ([F.name]) from a grenade launcher ([src.name]).") F.active = 1 - F.icon_state = initial(icon_state) + "_active" + F.icon_state = initial(F.icon_state) + "_active" playsound(user.loc, 'sound/weapons/armbomb.ogg', 75, 1, -3) addtimer(F, "prime", 15) diff --git a/code/modules/projectiles/guns/magic.dm b/code/modules/projectiles/guns/magic.dm index d7a6ac11b3..2a3b27bf05 100644 --- a/code/modules/projectiles/guns/magic.dm +++ b/code/modules/projectiles/guns/magic.dm @@ -6,7 +6,7 @@ item_state = "staff" fire_sound = 'sound/weapons/emitter.ogg' flags = CONDUCT - w_class = 5 + w_class = WEIGHT_CLASS_HUGE var/max_charges = 6 var/charges = 0 var/recharge_rate = 4 @@ -23,7 +23,6 @@ righthand_file = 'icons/mob/inhands/items_righthand.dmi' /obj/item/weapon/gun/magic/afterattack(atom/target, mob/living/user, flag) - newshot() if(no_den_usage) var/area/A = get_area(user) if(istype(A, /area/wizard_station)) @@ -36,15 +35,14 @@ /obj/item/weapon/gun/magic/can_shoot() return charges -/obj/item/weapon/gun/magic/newshot() - if (charges && chambered) +/obj/item/weapon/gun/magic/recharge_newshot() + if (charges && chambered && !chambered.BB) chambered.newshot() - return /obj/item/weapon/gun/magic/process_chamber() if(chambered && !chambered.BB) //if BB is null, i.e the shot has been fired... charges--//... drain a charge - return + recharge_newshot() /obj/item/weapon/gun/magic/New() ..() @@ -66,6 +64,8 @@ return 0 charge_tick = 0 charges++ + if(charges == 1) + recharge_newshot() return 1 /obj/item/weapon/gun/magic/update_icon() @@ -73,9 +73,14 @@ /obj/item/weapon/gun/magic/shoot_with_empty_chamber(mob/living/user as mob|obj) user << "The [name] whizzles quietly." - return /obj/item/weapon/gun/magic/suicide_act(mob/user) - user.visible_message("[user] is twisting the [src.name] above \his head, releasing a magical blast! It looks like \he's trying to commit suicide.") + user.visible_message("[user] is twisting [src] above [user.p_their()] head, releasing a magical blast! It looks like [user.p_theyre()] trying to commit suicide!") playsound(loc, fire_sound, 50, 1, -1) - return (FIRELOSS) \ No newline at end of file + return (FIRELOSS) + +/obj/item/weapon/gun/magic/vv_edit_var(var_name, var_value) + . = ..() + switch (var_name) + if ("charges") + recharge_newshot() \ No newline at end of file diff --git a/code/modules/projectiles/guns/magic/staff.dm b/code/modules/projectiles/guns/magic/staff.dm index e62055578c..ba81adbae2 100644 --- a/code/modules/projectiles/guns/magic/staff.dm +++ b/code/modules/projectiles/guns/magic/staff.dm @@ -1,4 +1,4 @@ -/obj/item/weapon/gun/magic/staff/ +/obj/item/weapon/gun/magic/staff slot_flags = SLOT_BACK /obj/item/weapon/gun/magic/staff/change @@ -59,3 +59,22 @@ item_state = "honker" max_charges = 4 recharge_rate = 8 + +/obj/item/weapon/gun/magic/staff/spellblade + name = "spellblade" + desc = "A deadly combination of laziness and boodlust, this blade allows the user to dismember their enemies without all the hard work of actually swinging the sword." + fire_sound = "sound/magic/Fireball.ogg" + ammo_type = /obj/item/ammo_casing/magic/spellblade + icon_state = "spellblade" + item_state = "spellblade" + hitsound = 'sound/weapons/rapierhit.ogg' + force = 20 + armour_penetration = 75 + block_chance = 50 + sharpness = IS_SHARP + max_charges = 4 + +/obj/item/weapon/gun/magic/staff/spellblade/hit_reaction(mob/living/carbon/human/owner, attack_text, final_block_chance, damage, attack_type) + if(attack_type == PROJECTILE_ATTACK) + final_block_chance = 0 + return ..() diff --git a/code/modules/projectiles/guns/magic/wand.dm b/code/modules/projectiles/guns/magic/wand.dm index 62d0dfa365..fe9d2e6e2e 100644 --- a/code/modules/projectiles/guns/magic/wand.dm +++ b/code/modules/projectiles/guns/magic/wand.dm @@ -1,10 +1,10 @@ -/obj/item/weapon/gun/magic/wand/ +/obj/item/weapon/gun/magic/wand name = "wand of nothing" desc = "It's not just a stick, it's a MAGIC stick!" ammo_type = /obj/item/ammo_casing/magic icon_state = "nothingwand" item_state = "wand" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL can_charge = 0 max_charges = 100 //100, 50, 50, 34 (max charge distribution by 25%ths) var/variable_charges = 1 @@ -48,9 +48,9 @@ /obj/item/weapon/gun/magic/wand/proc/zap_self(mob/living/user) - user.visible_message("[user] zaps \himself with [src].") + user.visible_message("[user] zaps [user.p_them()]self with [src].") playsound(user, fire_sound, 50, 1) - user.attack_log += "\[[time_stamp()]\] [user]/[user.ckey] zapped \himself with a [src]" + user.attack_log += "\[[time_stamp()]\] [user]/[user.ckey] zapped [user.p_them()]self with a [src]" ///////////////////////////////////// @@ -66,12 +66,13 @@ max_charges = 3 //3, 2, 2, 1 /obj/item/weapon/gun/magic/wand/death/zap_self(mob/living/user) - var/message ="You irradiate yourself with pure energy! " - message += pick("Do not pass go. Do not collect 200 zorkmids.","You feel more confident in your spell casting skills.","You Die...","Do you want your possessions identified?") - user << message + ..() + user << "You irradiate yourself with pure energy! \ + [pick("Do not pass go. Do not collect 200 zorkmids.","You feel more confident in your spell casting skills.","You Die...","Do you want your possessions identified?")]\ + " user.adjustOxyLoss(500) charges-- - ..() + ///////////////////////////////////// //WAND OF HEALING @@ -163,6 +164,6 @@ max_charges = 8 //8, 4, 4, 3 /obj/item/weapon/gun/magic/wand/fireball/zap_self(mob/living/user) - explosion(user.loc, -1, 0, 2, 3, 0, flame_range = 2) - charges-- ..() + explosion(user.loc, -1, 0, 2, 3, 0, flame_range = 2) + charges-- \ No newline at end of file diff --git a/code/modules/projectiles/guns/medbeam.dm b/code/modules/projectiles/guns/medbeam.dm index 44a8577545..18bebfc259 100644 --- a/code/modules/projectiles/guns/medbeam.dm +++ b/code/modules/projectiles/guns/medbeam.dm @@ -1,10 +1,10 @@ /obj/item/weapon/gun/medbeam name = "Medical Beamgun" - desc = "Delivers medical nanites in a focused beam." + desc = "Don't cross the streams!" icon = 'icons/obj/chronos.dmi' icon_state = "chronogun" item_state = "chronogun" - w_class = 3.0 + w_class = WEIGHT_CLASS_NORMAL var/mob/living/current_target var/last_check = 0 @@ -54,7 +54,7 @@ /obj/item/weapon/gun/medbeam/process() var/source = loc - if(!mounted && !ishuman(source)) + if(!mounted && !isliving(source)) LoseTarget() return @@ -69,7 +69,7 @@ if(get_dist(source, current_target)>max_range || !los_check(source, current_target)) LoseTarget() - if(ishuman(source)) + if(isliving(source)) source << "You lose control of the beam!" return diff --git a/code/modules/projectiles/guns/mounted.dm b/code/modules/projectiles/guns/mounted.dm index c5b050ff94..9d4a8753b9 100644 --- a/code/modules/projectiles/guns/mounted.dm +++ b/code/modules/projectiles/guns/mounted.dm @@ -1,4 +1,4 @@ -/obj/item/weapon/gun/energy/gun/advtaser/mounted +/obj/item/weapon/gun/energy/e_gun/advtaser/mounted name = "mounted taser" desc = "An arm mounted dual-mode weapon that fires electrodes and disabler shots." icon = 'icons/obj/items_cyborg.dmi' @@ -9,7 +9,7 @@ can_flashlight = 0 trigger_guard = TRIGGER_GUARD_ALLOW_ALL // Has no trigger at all, uses neural signals instead -/obj/item/weapon/gun/energy/gun/advtaser/mounted/dropped()//if somebody manages to drop this somehow... +/obj/item/weapon/gun/energy/e_gun/advtaser/mounted/dropped()//if somebody manages to drop this somehow... ..() src.loc = null//send it to nullspace to get retrieved by the implant later on. gotta cover those edge cases. diff --git a/code/modules/projectiles/guns/syringe_gun.dm b/code/modules/projectiles/guns/syringe_gun.dm index 470cf2fd53..3aae4b7e16 100644 --- a/code/modules/projectiles/guns/syringe_gun.dm +++ b/code/modules/projectiles/guns/syringe_gun.dm @@ -3,7 +3,7 @@ desc = "A spring loaded rifle designed to fit syringes, used to incapacitate unruly patients from a distance." icon_state = "syringegun" item_state = "syringegun" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL throw_speed = 3 throw_range = 7 force = 4 @@ -18,30 +18,17 @@ ..() chambered = new /obj/item/ammo_casing/syringegun(src) -/obj/item/weapon/gun/syringe/newshot() - if(!syringes.len) return +/obj/item/weapon/gun/syringe/recharge_newshot() + if(!syringes.len) + return + chambered.newshot() - var/obj/item/weapon/reagent_containers/syringe/S = syringes[1] - - if(!S) return - - chambered.BB = new S.projectile_type (src) - - S.reagents.trans_to(chambered.BB, S.reagents.total_volume) - chambered.BB.name = S.name - syringes.Remove(S) - - qdel(S) - return +/obj/item/weapon/gun/syringe/can_shoot() + return syringes.len /obj/item/weapon/gun/syringe/process_chamber() - return - -/obj/item/weapon/gun/syringe/afterattack(atom/target as mob|obj|turf, mob/living/user as mob|obj, params) - if(target == loc) - return - newshot() - ..() + if(chambered && !chambered.BB) //we just fired + recharge_newshot() /obj/item/weapon/gun/syringe/examine(mob/user) ..() @@ -69,7 +56,8 @@ return user << "You load [A] into \the [src]." syringes.Add(A) - A.loc = src + A.forceMove(src) + recharge_newshot() return 1 else usr << "[src] cannot hold more syringes!" @@ -86,7 +74,7 @@ desc = "A small spring-loaded sidearm that functions identically to a syringe gun." icon_state = "syringe_pistol" item_state = "gun" //Smaller inhand - w_class = 2 + w_class = WEIGHT_CLASS_SMALL origin_tech = "combat=2;syndicate=2;biotech=3" force = 2 //Also very weak because it's smaller suppressed = 1 //Softer fire sound diff --git a/code/modules/projectiles/pins.dm b/code/modules/projectiles/pins.dm index e72404e3c1..97b3b0bfb7 100644 --- a/code/modules/projectiles/pins.dm +++ b/code/modules/projectiles/pins.dm @@ -6,7 +6,7 @@ item_state = "pen" origin_tech = "materials=2;combat=4" flags = CONDUCT - w_class = 1 + w_class = WEIGHT_CLASS_TINY attack_verb = list("poked") var/emagged = 0 var/fail_message = "INVALID USER." @@ -95,9 +95,11 @@ var/obj/item/weapon/implant/req_implant = null /obj/item/device/firing_pin/implant/pin_auth(mob/living/user) - for(var/obj/item/weapon/implant/I in user) - if(req_implant && I.imp_in == user && I.type == req_implant) - return 1 + if(iscarbon(user)) + var/mob/living/carbon/C = user + for(var/obj/item/weapon/implant/I in C.implants) + if(req_implant && I.type == req_implant) + return 1 return 0 /obj/item/device/firing_pin/implant/mindshield @@ -111,21 +113,14 @@ icon_state = "firing_pin_pindi" req_implant = /obj/item/weapon/implant/weapons_auth -/obj/item/device/firing_pin/trick - name = "self-destruct firing pin" - desc = "This pin will detonate the weapon it is put into upon trying to use it" - selfdestruct = 1 - force_replace = 1 -/obj/item/device/firing_pin/trick/pin_auth(mob/living/user) - return 0 // Honk pin, clown's joke item. // Can replace other pins. Replace a pin in cap's laser for extra fun! /obj/item/device/firing_pin/clown name = "hilarious firing pin" desc = "Advanced clowntech that can convert any firearm into a far more useful object." - color = "yellow" + color = "#FFFF00" fail_message = "HONK!" force_replace = 1 diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index b8bf291090..5e70db4ff0 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -5,16 +5,14 @@ density = 0 anchored = 1 flags = ABSTRACT - unacidable = 1 pass_flags = PASSTABLE mouse_opacity = 0 hitsound = 'sound/weapons/pierce.ogg' var/hitsound_wall = "" - pressure_resistance = INFINITY - burn_state = LAVA_PROOF + + resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF var/def_zone = "" //Aiming at var/mob/firer = null//Who shot it - var/obj/item/ammo_casing/ammo_casing = null var/suppressed = 0 //Attack message var/yo = null var/xo = null @@ -25,7 +23,7 @@ var/paused = FALSE //for suspending the projectile midair var/p_x = 16 var/p_y = 16 // the pixel location of the tile that the player clicked. Default is the center - var/speed = 0.1 //Amount of deciseconds it takes for projectile to travel + var/speed = 0.8 //Amount of deciseconds it takes for projectile to travel var/Angle = 0 var/spread = 0 //amount (in degrees) of projectile spread var/legacy = 0 //legacy projectile system @@ -35,7 +33,7 @@ var/damage_type = BRUTE //BRUTE, BURN, TOX, OXY, CLONE are the only things that should be in here var/nodamage = 0 //Determines if the projectile will skip any damage inflictions var/flag = "bullet" //Defines what armor to use when it hits things. Must be set to bullet, laser, energy,or bomb - var/projectile_type = "/obj/item/projectile" + var/projectile_type = /obj/item/projectile var/range = 50 //This will de-increment every step. When 0, it will delete the projectile. //Effects var/stun = 0 @@ -49,6 +47,9 @@ var/stamina = 0 var/jitter = 0 var/forcedodge = 0 //to pass through everything + var/dismemberment = 0 //The higher the number, the greater the bonus to dismembering. 0 will not dismember at all. + var/impact_effect_type //what type of impact effect to show when hitting something + var/log_override = FALSE //is this type spammed enough to not log? (KAs) /obj/item/projectile/New() permutated = list() @@ -62,14 +63,42 @@ /obj/item/projectile/proc/on_range() //if we want there to be effects when they reach the end of their range qdel(src) -/obj/item/projectile/proc/on_hit(atom/target, blocked = 0, hit_zone) +//to get the correct limb (if any) for the projectile hit message +/mob/living/proc/check_limb_hit(hit_zone) + if(has_limbs) + return hit_zone + +/mob/living/carbon/check_limb_hit(hit_zone) + if(get_bodypart(hit_zone)) + return hit_zone + else //when a limb is missing the damage is actually passed to the chest + return "chest" + +/obj/item/projectile/proc/on_hit(atom/target, blocked = 0) + var/turf/target_loca = get_turf(target) if(!isliving(target)) + if(impact_effect_type) + PoolOrNew(impact_effect_type, list(target_loca, target, src)) return 0 var/mob/living/L = target if(blocked != 100) // not completely blocked + if(damage && L.blood_volume && damage_type == BRUTE) + var/splatter_dir = dir + if(starting) + splatter_dir = get_dir(starting, target_loca) + if(isalien(L)) + PoolOrNew(/obj/effect/overlay/temp/dir_setting/bloodsplatter/xenosplatter, list(target_loca, splatter_dir)) + else + PoolOrNew(/obj/effect/overlay/temp/dir_setting/bloodsplatter, list(target_loca, splatter_dir)) + if(prob(33)) + L.add_splatter_floor(target_loca) + else if(impact_effect_type) + PoolOrNew(impact_effect_type, list(target_loca, target, src)) + var/organ_hit_text = "" - if(L.has_limbs) - organ_hit_text = " in \the [parse_zone(def_zone)]" + var/limb_hit = L.check_limb_hit(def_zone)//to get the correct message info. + if(limb_hit) + organ_hit_text = " in \the [parse_zone(limb_hit)]" if(suppressed) playsound(loc, hitsound, 5, 1, -1) L << "You're shot by \a [src][organ_hit_text]!" @@ -78,8 +107,8 @@ var/volume = vol_by_damage() playsound(loc, hitsound, volume, 1, -1) L.visible_message("[L] is hit by \a [src][organ_hit_text]!", \ - "[L] is hit by \a [src][organ_hit_text]!") //X has fired Y is now given by the guns so you cant tell who shot you if you could not see the shooter - L.on_hit(type) + "[L] is hit by \a [src][organ_hit_text]!", null, COMBAT_MESSAGE_RANGE) + L.on_hit(src) var/reagent_note if(reagents && reagents.reagent_list) @@ -135,63 +164,77 @@ /obj/item/projectile/Process_Spacemove(var/movement_dir = 0) return 1 //Bullets don't drift in space -/obj/item/projectile/proc/fire(var/setAngle) +/obj/item/projectile/proc/fire(setAngle, atom/direct_target) + if(!log_override && firer && original) + add_logs(firer, original, "fired at", src, " [get_area(src)]") + if(direct_target) + direct_target.bullet_act(src, def_zone) + qdel(src) + return if(setAngle) Angle = setAngle if(!legacy) //new projectiles set waitfor = 0 + var/next_run = world.time while(loc) - if(!paused) - if((!( current ) || loc == current)) - current = locate(Clamp(x+xo,1,world.maxx),Clamp(y+yo,1,world.maxy),z) + if(paused) + next_run = world.time + sleep(1) + continue - if(!Angle) - Angle=round(Get_Angle(src,current)) - if(spread) - Angle += (rand() - 0.5) * spread - var/matrix/M = new - M.Turn(Angle) - transform = M + if((!( current ) || loc == current)) + current = locate(Clamp(x+xo,1,world.maxx),Clamp(y+yo,1,world.maxy),z) - var/Pixel_x=round(sin(Angle)+16*sin(Angle)*2) - var/Pixel_y=round(cos(Angle)+16*cos(Angle)*2) - var/pixel_x_offset = pixel_x + Pixel_x - var/pixel_y_offset = pixel_y + Pixel_y - var/new_x = x - var/new_y = y + if(!Angle) + Angle=round(Get_Angle(src,current)) + if(spread) + Angle += (rand() - 0.5) * spread + var/matrix/M = new + M.Turn(Angle) + transform = M - while(pixel_x_offset > 16) - pixel_x_offset -= 32 - pixel_x -= 32 - new_x++// x++ - while(pixel_x_offset < -16) - pixel_x_offset += 32 - pixel_x += 32 - new_x-- + var/Pixel_x=round(sin(Angle)+16*sin(Angle)*2) + var/Pixel_y=round(cos(Angle)+16*cos(Angle)*2) + var/pixel_x_offset = pixel_x + Pixel_x + var/pixel_y_offset = pixel_y + Pixel_y + var/new_x = x + var/new_y = y - while(pixel_y_offset > 16) - pixel_y_offset -= 32 - pixel_y -= 32 - new_y++ - while(pixel_y_offset < -16) - pixel_y_offset += 32 - pixel_y += 32 - new_y-- + while(pixel_x_offset > 16) + pixel_x_offset -= 32 + pixel_x -= 32 + new_x++// x++ + while(pixel_x_offset < -16) + pixel_x_offset += 32 + pixel_x += 32 + new_x-- - speed = round(speed) - step_towards(src, locate(new_x, new_y, z)) - if(speed <= 1) - pixel_x = pixel_x_offset - pixel_y = pixel_y_offset - else - animate(src, pixel_x = pixel_x_offset, pixel_y = pixel_y_offset, time = max(1, (speed <= 3 ? speed - 1 : speed))) + while(pixel_y_offset > 16) + pixel_y_offset -= 32 + pixel_y -= 32 + new_y++ + while(pixel_y_offset < -16) + pixel_y_offset += 32 + pixel_y += 32 + new_y-- + + step_towards(src, locate(new_x, new_y, z)) + next_run += max(world.tick_lag, speed) + var/delay = next_run - world.time + if(delay <= world.tick_lag*2) + pixel_x = pixel_x_offset + pixel_y = pixel_y_offset + else + animate(src, pixel_x = pixel_x_offset, pixel_y = pixel_y_offset, time = max(1, (delay <= 3 ? delay - 1 : delay)), flags = ANIMATION_END_NOW) + + if(original && (original.layer>=2.75) || ismob(original)) + if(loc == get_turf(original)) + if(!(original in permutated)) + Bump(original, 1) + Range() + if (delay > 0) + sleep(delay) - if(original && (original.layer>=2.75) || ismob(original)) - if(loc == get_turf(original)) - if(!(original in permutated)) - Bump(original, 1) - Range() - sleep(max(1, speed)) else //old projectile system set waitfor = 0 while(loc) @@ -204,7 +247,47 @@ if(!(original in permutated)) Bump(original, 1) Range() - sleep(1) + sleep(config.run_speed * 0.9) + + +/obj/item/projectile/proc/preparePixelProjectile(atom/target, var/turf/targloc, mob/living/user, params, spread) + var/turf/curloc = get_turf(user) + src.loc = get_turf(user) + src.starting = get_turf(user) + src.current = curloc + src.yo = targloc.y - curloc.y + src.xo = targloc.x - curloc.x + + if(params) + var/list/mouse_control = params2list(params) + if(mouse_control["icon-x"]) + src.p_x = text2num(mouse_control["icon-x"]) + if(mouse_control["icon-y"]) + src.p_y = text2num(mouse_control["icon-y"]) + if(mouse_control["screen-loc"]) + //Split screen-loc up into X+Pixel_X and Y+Pixel_Y + var/list/screen_loc_params = splittext(mouse_control["screen-loc"], ",") + + //Split X+Pixel_X up into list(X, Pixel_X) + var/list/screen_loc_X = splittext(screen_loc_params[1],":") + + //Split Y+Pixel_Y up into list(Y, Pixel_Y) + var/list/screen_loc_Y = splittext(screen_loc_params[2],":") + // world << "X: [screen_loc_X[1]] PixelX: [screen_loc_X[2]] / Y: [screen_loc_Y[1]] PixelY: [screen_loc_Y[2]]" + var/x = text2num(screen_loc_X[1]) * 32 + text2num(screen_loc_X[2]) - 32 + var/y = text2num(screen_loc_Y[1]) * 32 + text2num(screen_loc_Y[2]) - 32 + + //Calculate the "resolution" of screen based on client's view and world's icon size. This will work if the user can view more tiles than average. + var/screenview = (user.client.view * 2 + 1) * world.icon_size //Refer to http://www.byond.com/docs/ref/info.html#/client/var/view for mad maths + + var/ox = round(screenview/2) //"origin" x + var/oy = round(screenview/2) //"origin" y + // world << "Pixel position: [x] [y]" + var/angle = Atan2(y - oy, x - ox) + // world << "Angle: [angle]" + src.Angle = angle + if(spread) + src.Angle += spread /obj/item/projectile/Crossed(atom/movable/AM) //A mob moving on a tile with a projectile is hit by it. @@ -213,9 +296,7 @@ Bump(AM, 1) /obj/item/projectile/Destroy() - ammo_casing = null return ..() -/obj/item/projectile/proc/dumbfire(var/dir) - current = get_ranged_target_turf(src, dir, world.maxx) - fire() \ No newline at end of file +/obj/item/projectile/experience_pressure_difference() + return diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index a7aff9167e..15c7a04d07 100644 --- a/code/modules/projectiles/projectile/beams.dm +++ b/code/modules/projectiles/projectile/beams.dm @@ -9,6 +9,7 @@ hitsound_wall = 'sound/weapons/effects/searwall.ogg' flag = "laser" eyeblur = 2 + impact_effect_type = /obj/effect/overlay/temp/impact_effect/red_laser /obj/item/projectile/beam/laser @@ -44,6 +45,7 @@ irradiate = 30 range = 15 forcedodge = 1 + impact_effect_type = /obj/effect/overlay/temp/impact_effect/green_laser /obj/item/projectile/beam/disabler name = "disabler beam" @@ -53,16 +55,18 @@ flag = "energy" hitsound = 'sound/weapons/tap.ogg' eyeblur = 0 + impact_effect_type = /obj/effect/overlay/temp/impact_effect/blue_laser /obj/item/projectile/beam/pulse name = "pulse" icon_state = "u_laser" damage = 50 luminosity = 2 + impact_effect_type = /obj/effect/overlay/temp/impact_effect/blue_laser /obj/item/projectile/beam/pulse/on_hit(atom/target, blocked = 0) . = ..() - if(istype(target,/turf/)||istype(target,/obj/structure/)) + if(isturf(target) || istype(target,/obj/structure/)) target.ex_act(2) /obj/item/projectile/beam/pulse/shot @@ -73,7 +77,7 @@ icon_state = "pulse1_bl" var/life = 20 -/obj/item/projectile/beam/pulse/heavy/on_hit(atom/target, blocked = 0, hit_zone) +/obj/item/projectile/beam/pulse/heavy/on_hit(atom/target, blocked = 0) life -= 10 if(life > 0) . = -1 @@ -86,6 +90,7 @@ legacy = 1 luminosity = 2 animate_movement = SLIDE_STEPS + impact_effect_type = /obj/effect/overlay/temp/impact_effect/green_laser /obj/item/projectile/beam/emitter/singularity_pull() return //don't want the emitters to miss @@ -102,6 +107,7 @@ damage_type = STAMINA flag = "laser" var/suit_types = list(/obj/item/clothing/suit/redtag, /obj/item/clothing/suit/bluetag) + impact_effect_type = /obj/effect/overlay/temp/impact_effect/blue_laser /obj/item/projectile/beam/lasertag/on_hit(atom/target, blocked = 0) . = ..() @@ -114,6 +120,7 @@ /obj/item/projectile/beam/lasertag/redtag icon_state = "laser" suit_types = list(/obj/item/clothing/suit/bluetag) + impact_effect_type = /obj/effect/overlay/temp/impact_effect/red_laser /obj/item/projectile/beam/lasertag/bluetag icon_state = "bluelaser" @@ -124,12 +131,15 @@ icon_state = "purple_laser" damage = 200 damage_type = BURN + impact_effect_type = /obj/effect/overlay/temp/impact_effect/purple_laser /obj/item/projectile/beam/instakill/blue icon_state = "blue_laser" + impact_effect_type = /obj/effect/overlay/temp/impact_effect/blue_laser /obj/item/projectile/beam/instakill/red icon_state = "red_laser" + impact_effect_type = /obj/effect/overlay/temp/impact_effect/red_laser /obj/item/projectile/beam/instakill/on_hit(atom/target) . = ..() diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm index 3b3d707419..82407ff40c 100644 --- a/code/modules/projectiles/projectile/bullets.dm +++ b/code/modules/projectiles/projectile/bullets.dm @@ -6,6 +6,7 @@ nodamage = 0 flag = "bullet" hitsound_wall = "ricochet" + impact_effect_type = /obj/effect/overlay/temp/impact_effect /obj/item/projectile/bullet/weakbullet //beanbag, heavy stamina damage damage = 5 @@ -70,6 +71,20 @@ /obj/item/projectile/bullet/midbullet3 damage = 30 +/obj/item/projectile/bullet/midbullet3/hp + damage = 40 + armour_penetration = -50 + +/obj/item/projectile/bullet/midbullet3/ap + damage = 27 + armour_penetration = 40 + +/obj/item/projectile/bullet/midbullet3/fire/on_hit(atom/target, blocked = 0) + if(..(target, blocked)) + var/mob/living/M = target + M.adjust_fire_stacks(1) + M.IgniteMob() + /obj/item/projectile/bullet/heavybullet damage = 35 @@ -174,11 +189,11 @@ create_reagents(50) reagents.set_reacting(FALSE) -/obj/item/projectile/bullet/dart/on_hit(atom/target, blocked = 0, hit_zone) +/obj/item/projectile/bullet/dart/on_hit(atom/target, blocked = 0) if(iscarbon(target)) var/mob/living/carbon/M = target if(blocked != 100) // not completely blocked - if(M.can_inject(null,0,hit_zone,piercing)) // Pass the hit zone to see if it can inject by whether it hit the head or the body. + if(M.can_inject(null, 0, def_zone, piercing)) // Pass the hit zone to see if it can inject by whether it hit the head or the body. ..() reagents.reaction(M, INJECT) reagents.trans_to(M, reagents.total_volume) @@ -188,7 +203,7 @@ target.visible_message("The [name] was deflected!", \ "You were protected against the [name]!") - ..(target, blocked, hit_zone) + ..(target, blocked) reagents.set_reacting(TRUE) reagents.handle_reactions() return 1 @@ -202,13 +217,8 @@ //This one is for future syringe guns update /obj/item/projectile/bullet/dart/syringe name = "syringe" - icon = 'icons/obj/chemical.dmi' icon_state = "syringeproj" -//Piercing Syringe -/obj/item/projectile/bullet/dart/syringe/piercing - piercing = 1 - /obj/item/projectile/bullet/neurotoxin name = "neurotoxin spit" icon_state = "neurotoxin" @@ -227,13 +237,15 @@ //// SNIPER BULLETS /obj/item/projectile/bullet/sniper + speed = 0 //360 alwaysscope. damage = 70 stun = 5 weaken = 5 + dismemberment = 50 armour_penetration = 50 var/breakthings = TRUE -/obj/item/projectile/bullet/sniper/on_hit(atom/target, blocked = 0, hit_zone) +/obj/item/projectile/bullet/sniper/on_hit(atom/target, blocked = 0) if((blocked != 100) && (!ismob(target) && breakthings)) target.ex_act(rand(1,2)) return ..() @@ -243,11 +255,12 @@ armour_penetration = 0 nodamage = 1 stun = 0 + dismemberment = 0 weaken = 0 breakthings = FALSE -/obj/item/projectile/bullet/sniper/soporific/on_hit(atom/target, blocked = 0, hit_zone) - if((blocked != 100) && istype(target, /mob/living)) +/obj/item/projectile/bullet/sniper/soporific/on_hit(atom/target, blocked = 0) + if((blocked != 100) && isliving(target)) var/mob/living/L = target L.Sleeping(20) return ..() @@ -257,10 +270,11 @@ armour_penetration = 15 damage = 15 stun = 0 + dismemberment = 0 weaken = 0 breakthings = FALSE -/obj/item/projectile/bullet/sniper/haemorrhage/on_hit(atom/target, blocked = 0, hit_zone) +/obj/item/projectile/bullet/sniper/haemorrhage/on_hit(atom/target, blocked = 0) if((blocked != 100) && iscarbon(target)) var/mob/living/carbon/C = target C.bleed(100) @@ -272,6 +286,7 @@ name = "penetrator round" damage = 60 forcedodge = 1 + dismemberment = 0 //It goes through you cleanly. stun = 0 weaken = 0 breakthings = FALSE @@ -289,7 +304,7 @@ damage = 20 armour_penetration = 0 -/obj/item/projectile/bullet/saw/bleeding/on_hit(atom/target, blocked = 0, hit_zone) +/obj/item/projectile/bullet/saw/bleeding/on_hit(atom/target, blocked = 0) . = ..() if((blocked != 100) && iscarbon(target)) var/mob/living/carbon/C = target @@ -307,7 +322,7 @@ damage = 7 armour_penetration = 0 -obj/item/projectile/bullet/saw/incen/Move() +/obj/item/projectile/bullet/saw/incen/Move() ..() var/turf/location = get_turf(src) if(location) diff --git a/code/modules/projectiles/projectile/energy.dm b/code/modules/projectiles/projectile/energy.dm index e02513a9b1..a30299bd4b 100644 --- a/code/modules/projectiles/projectile/energy.dm +++ b/code/modules/projectiles/projectile/energy.dm @@ -29,7 +29,7 @@ if(C.dna && C.dna.check_mutation(HULK)) C.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" )) else if(C.status_flags & CANWEAKEN) - addtimer(C, "do_jitter_animation", 5, FALSE, jitter) + addtimer(C, "do_jitter_animation", 5, TIMER_NORMAL, jitter) /obj/item/projectile/energy/electrode/on_range() //to ensure the bolt sparks when it reaches the end of its range if it didn't hit a target yet var/datum/effect_system/spark_spread/sparks = new /datum/effect_system/spark_spread @@ -68,11 +68,10 @@ icon = 'icons/effects/effects.dmi' icon_state = "dragnetfield" anchored = 1 - unacidable = 1 /obj/effect/nettingportal/New() ..() - set_light(3) + SetLuminosity(3) var/obj/item/device/radio/beacon/teletarget = null for(var/obj/machinery/computer/teleporter/com in machines) if(com.target) @@ -143,6 +142,7 @@ damage = 20 damage_type = CLONE irradiate = 10 + impact_effect_type = /obj/effect/overlay/temp/impact_effect/green_laser /obj/item/projectile/energy/dart //ninja throwing dart name = "dart" @@ -161,30 +161,30 @@ weaken = 5 stutter = 5 +/obj/item/projectile/energy/bolt/halloween + name = "candy corn" + icon_state = "candy_corn" + /obj/item/projectile/energy/bolt/large damage = 20 -/obj/item/ammo_casing/energy/plasma - projectile_type = /obj/item/projectile/plasma - select_name = "plasma burst" - fire_sound = 'sound/weapons/pulse.ogg' - -/obj/item/ammo_casing/energy/plasma/adv - projectile_type = /obj/item/projectile/plasma/adv - -/obj/item/projectile/energy/shock_revolver - name = "shock bolt" - icon_state = "purple_laser" +/obj/item/projectile/energy/tesla_revolver + name = "tesla bolt" + icon_state = "tesla_projectile" + impact_effect_type = /obj/effect/overlay/temp/impact_effect/blue_laser var/chain -/obj/item/ammo_casing/energy/shock_revolver/ready_proj(atom/target, mob/living/user, quiet, zone_override = "") +/obj/item/projectile/energy/tesla_revolver/fire(setAngle) + if(firer) + chain = firer.Beam(src, icon_state = "lightning[rand(1, 12)]", time = INFINITY, maxdistance = INFINITY) ..() - var/obj/item/projectile/hook/P = BB - spawn(1) - P.chain = P.Beam(user,icon_state="purple_lightning",icon = 'icons/effects/effects.dmi',time=1000, maxdistance = 30) -/obj/item/projectile/energy/shock_revolver/on_hit(atom/target) +/obj/item/projectile/energy/tesla_revolver/on_hit(atom/target) . = ..() if(isliving(target)) tesla_zap(src, 3, 10000) + qdel(src) + +/obj/item/projectile/energy/tesla_revolver/Destroy() qdel(chain) + return ..() diff --git a/code/modules/projectiles/projectile/magic.dm b/code/modules/projectiles/projectile/magic.dm index 638b38d4fa..787aaffa5b 100644 --- a/code/modules/projectiles/projectile/magic.dm +++ b/code/modules/projectiles/projectile/magic.dm @@ -24,27 +24,46 @@ damage_type = BRUTE nodamage = 0 + //explosion values + var/exp_heavy = 0 + var/exp_light = 2 + var/exp_flash = 3 + var/exp_fire = 2 + /obj/item/projectile/magic/fireball/Range() var/turf/T1 = get_step(src,turn(dir, -45)) var/turf/T2 = get_step(src,turn(dir, 45)) + var/turf/T3 = get_step(src,dir) var/mob/living/L = locate(/mob/living) in T1 //if there's a mob alive in our front right diagonal, we hit it. if(L && L.stat != DEAD) - Bump(L) //Magic Bullet #teachthecontroversy + Bump(L,1) //Magic Bullet #teachthecontroversy return L = locate(/mob/living) in T2 if(L && L.stat != DEAD) - Bump(L) + Bump(L,1) + return + L = locate(/mob/living) in T3 + if(L && L.stat != DEAD) + Bump(L,1) return ..() /obj/item/projectile/magic/fireball/on_hit(target) . = ..() var/turf/T = get_turf(target) - explosion(T, -1, 0, 2, 3, 0, flame_range = 2) + explosion(T, -1, exp_heavy, exp_light, exp_flash, 0, flame_range = exp_fire) if(ismob(target)) //multiple flavors of pain var/mob/living/M = target M.take_overall_damage(0,10) //between this 10 burn, the 10 brute, the explosion brute, and the onfire burn, your at about 65 damage if you stop drop and roll immediately +/obj/item/projectile/magic/fireball/infernal + name = "infernal fireball" + exp_heavy = -1 + exp_light = -1 + exp_flash = 4 + exp_fire= 5 + + /obj/item/projectile/magic/resurrection name = "bolt of resurrection" icon_state = "ion" @@ -107,7 +126,7 @@ OpenDoor(target) else var/turf/T = get_turf(target) - if(istype(T,/turf/closed) && !istype(T, /turf/closed/indestructible)) + if(isclosedturf(T) && !istype(T, /turf/closed/indestructible)) CreateDoor(T) /obj/item/projectile/magic/door/proc/CreateDoor(turf/T) @@ -132,6 +151,7 @@ /obj/item/projectile/magic/change/on_hit(atom/change) . = ..() wabbajack(change) + qdel(src) /proc/wabbajack(mob/living/M) if(!istype(M) || M.stat == DEAD || M.notransform || (GODMODE & M.status_flags)) @@ -145,7 +165,7 @@ var/list/contents = M.contents.Copy() - if(istype(M, /mob/living/silicon/robot)) + if(iscyborg(M)) var/mob/living/silicon/robot/Robot = M if(Robot.mmi) qdel(Robot.mmi) @@ -192,7 +212,7 @@ if("animal") var/path if(prob(50)) - var/beast = pick("carp","bear","mushroom","statue", "bat", "goat","killertomato", "spiderbase", "spiderhunter", "blobbernaut", "magicarp", "chaosmagicarp") + var/beast = pick("carp","bear","mushroom","statue", "bat", "goat","killertomato", "spiderbase", "spiderhunter", "blobbernaut", "magicarp", "chaosmagicarp", "watcher", "goliath", "headcrab", "morph", "stickman", "stickdog", "lesserdragon") switch(beast) if("carp") path = /mob/living/simple_animal/hostile/carp @@ -218,6 +238,20 @@ path = /mob/living/simple_animal/hostile/carp/ranged if("chaosmagicarp") path = /mob/living/simple_animal/hostile/carp/ranged/chaos + if("watcher") + path = /mob/living/simple_animal/hostile/asteroid/basilisk/watcher + if("goliath") + path = /mob/living/simple_animal/hostile/asteroid/goliath/beast + if("headcrab") + path = /mob/living/simple_animal/hostile/headcrab + if("morph") + path = /mob/living/simple_animal/hostile/morph + if("stickman") + path = /mob/living/simple_animal/hostile/stickman + if("stickdog") + path = /mob/living/simple_animal/hostile/stickman/dog + if("lesserdragon") + path = /mob/living/simple_animal/hostile/megafauna/dragon/lesser else var/animal = pick("parrot","corgi","crab","pug","cat","mouse","chicken","cow","lizard","chick","fox","butterfly","cak") switch(animal) @@ -282,7 +316,7 @@ M.attack_log += text("\[[time_stamp()]\] [M.real_name] ([M.ckey]) became [new_mob.real_name].") - new_mob.a_intent = "harm" + new_mob.a_intent = INTENT_HARM M.wabbajack_act(new_mob) @@ -299,34 +333,53 @@ damage_type = BURN nodamage = 1 -/obj/item/projectile/magic/animate/Bump(atom/change) +/obj/item/projectile/magic/animate/on_hit(atom/target, blocked = 0) ..() - if(istype(change, /obj/item) || istype(change, /obj/structure) && !is_type_in_list(change, protected_objects)) - if(istype(change, /obj/structure/closet/statue)) - for(var/mob/living/carbon/human/H in change.contents) - var/mob/living/simple_animal/hostile/statue/S = new /mob/living/simple_animal/hostile/statue(change.loc, firer) - S.name = "statue of [H.name]" + if((istype(target, /obj/item) || istype(target, /obj/structure)) && !is_type_in_list(target, protected_objects)) + if(istype(target, /obj/structure/statue/petrified)) + var/obj/structure/statue/petrified/P = target + if(P.petrified_mob) + var/mob/living/L = P.petrified_mob + var/mob/living/simple_animal/hostile/statue/S = new (P.loc, firer) + S.name = "statue of [L.name]" S.faction = list("\ref[firer]") - S.icon = change.icon - S.icon_state = change.icon_state - S.overlays = change.overlays - S.color = change.color - if(H.mind) - H.mind.transfer_to(S) + S.icon = P.icon + S.icon_state = P.icon_state + S.overlays = P.overlays + S.color = P.color + S.atom_colours = P.atom_colours.Copy() + if(L.mind) + L.mind.transfer_to(S) S << "You are an animate statue. You cannot move when monitored, but are nearly invincible and deadly when unobserved! Do not harm [firer.name], your creator." - H = change - H.loc = S + P.loc = S qdel(src) return else - var/obj/O = change + var/obj/O = target if(istype(O, /obj/item/weapon/gun)) new /mob/living/simple_animal/hostile/mimic/copy/ranged(O.loc, O, firer) else new /mob/living/simple_animal/hostile/mimic/copy(O.loc, O, firer) - else if(istype(change, /mob/living/simple_animal/hostile/mimic/copy)) + else if(istype(target, /mob/living/simple_animal/hostile/mimic/copy)) // Change our allegiance! - var/mob/living/simple_animal/hostile/mimic/copy/C = change + var/mob/living/simple_animal/hostile/mimic/copy/C = target C.ChangeOwner(firer) +/obj/item/projectile/magic/spellblade + name = "blade energy" + icon_state = "lavastaff" + damage = 15 + damage_type = BURN + flag = "magic" + dismemberment = 50 + nodamage = 0 + +/obj/item/projectile/magic/arcane_barrage + name = "arcane bolt" + icon_state = "arcane_barrage" + damage = 20 + damage_type = BURN + nodamage = 0 + armour_penetration = 0 + flag = "magic" diff --git a/code/modules/projectiles/projectile/reusable.dm b/code/modules/projectiles/projectile/reusable.dm index f253655e3f..9bcad0db7b 100644 --- a/code/modules/projectiles/projectile/reusable.dm +++ b/code/modules/projectiles/projectile/reusable.dm @@ -1,8 +1,9 @@ /obj/item/projectile/bullet/reusable name = "reusable bullet" desc = "How do you even reuse a bullet?" - var/ammo_type = /obj/item/ammo_casing/caseless/ + var/ammo_type = /obj/item/ammo_casing/caseless var/dropped = 0 + impact_effect_type = null /obj/item/projectile/bullet/reusable/on_hit(atom/target, blocked = 0) . = ..() @@ -14,7 +15,8 @@ /obj/item/projectile/bullet/reusable/proc/handle_drop() if(!dropped) - new ammo_type(src.loc) + var/turf/T = get_turf(src) + new ammo_type(T) dropped = 1 /obj/item/projectile/bullet/reusable/magspear @@ -31,34 +33,45 @@ damage_type = OXY nodamage = 1 icon = 'icons/obj/guns/toy.dmi' - icon_state = "foamdart" + icon_state = "foamdart_proj" ammo_type = /obj/item/ammo_casing/caseless/foam_dart range = 10 + var/modified = 0 var/obj/item/weapon/pen/pen = null /obj/item/projectile/bullet/reusable/foam_dart/handle_drop() if(dropped) return + var/turf/T = get_turf(src) dropped = 1 - var/obj/item/ammo_casing/caseless/foam_dart/newdart = new ammo_type(src.loc) - var/obj/item/ammo_casing/caseless/foam_dart/old_dart = ammo_casing - newdart.modified = old_dart.modified + var/obj/item/ammo_casing/caseless/foam_dart/newcasing = new ammo_type(T) + newcasing.modified = modified + var/obj/item/projectile/bullet/reusable/foam_dart/newdart = newcasing.BB + newdart.modified = modified + newdart.damage = damage + newdart.nodamage = nodamage + newdart.damage_type = damage_type if(pen) - var/obj/item/projectile/bullet/reusable/foam_dart/newdart_FD = newdart.BB - newdart_FD.pen = pen - pen.loc = newdart_FD + newdart.pen = pen + pen.forceMove(newdart) pen = null - newdart.BB.damage = damage - newdart.BB.nodamage = nodamage - newdart.BB.damage_type = damage_type newdart.update_icon() + /obj/item/projectile/bullet/reusable/foam_dart/Destroy() pen = null return ..() /obj/item/projectile/bullet/reusable/foam_dart/riot name = "riot foam dart" - icon_state = "foamdart_riot" + icon_state = "foamdart_riot_proj" ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot stamina = 25 + +/obj/item/projectile/bullet/reusable/arrow + name = "arrow" + icon_state = "arrow" + ammo_type = /obj/item/ammo_casing/caseless/arrow + range = 10 + damage = 25 + damage_type = BRUTE \ No newline at end of file diff --git a/code/modules/projectiles/projectile/special.dm b/code/modules/projectiles/projectile/special.dm index 9175a77ff7..284056b2d7 100644 --- a/code/modules/projectiles/projectile/special.dm +++ b/code/modules/projectiles/projectile/special.dm @@ -5,6 +5,7 @@ damage_type = BURN nodamage = 1 flag = "energy" + impact_effect_type = /obj/effect/overlay/temp/impact_effect/ion /obj/item/projectile/ion/on_hit(atom/target, blocked = 0) @@ -42,6 +43,27 @@ explosion(target, -1, 0, 2, 1, 0, flame_range = 3) return 1 +/obj/item/projectile/bullet/a84mm + name ="anti-armour rocket" + desc = "USE A WEEL GUN" + icon_state= "atrocket" + damage = 80 + var/anti_armour_damage = 200 + armour_penetration = 100 + dismemberment = 100 + +/obj/item/projectile/bullet/a84mm/on_hit(atom/target, blocked = 0) + ..() + explosion(target, -1, 1, 3, 1, 0, flame_range = 4) + + if(istype(target, /obj/mecha)) + var/obj/mecha/M = target + M.take_damage(anti_armour_damage) + if(istype(target, /mob/living/silicon)) + var/mob/living/silicon/S = target + S.take_overall_damage(anti_armour_damage*0.75, anti_armour_damage*0.25) + return 1 + /obj/item/projectile/temp name = "freeze beam" icon_state = "ice_2" @@ -98,8 +120,8 @@ if(iscarbon(target)) var/mob/living/carbon/C = target if(C.dna.species.id == "pod") - randmuti(C) - randmut(C) + C.randmuti() + C.randmut() C.updateappearance() C.domutcheck() @@ -121,63 +143,6 @@ M.adjustBrainLoss(20) M.hallucination += 20 -/obj/item/projectile/kinetic - name = "kinetic force" - icon_state = null - damage = 10 - damage_type = BRUTE - flag = "bomb" - range = 3 - var/splash = 0 - -/obj/item/projectile/kinetic/super - damage = 11 - range = 4 - -/obj/item/projectile/kinetic/hyper - damage = 12 - range = 5 - splash = 1 - -/obj/item/projectile/kinetic/New() - var/turf/proj_turf = get_turf(src) - if(!istype(proj_turf, /turf)) - return - var/datum/gas_mixture/environment = proj_turf.return_air() - var/pressure = environment.return_pressure() - if(pressure < 50) - name = "full strength kinetic force" - damage *= 4 - ..() - -/obj/item/projectile/kinetic/on_range() - new /obj/effect/kinetic_blast(src.loc) - ..() - -/obj/item/projectile/kinetic/on_hit(atom/target) - . = ..() - var/turf/target_turf= get_turf(target) - if(istype(target_turf, /turf/closed/mineral)) - var/turf/closed/mineral/M = target_turf - M.gets_drilled(firer) - new /obj/effect/kinetic_blast(target_turf) - if(src.splash) - for(var/turf/T in range(splash, target_turf)) - if(istype(T, /turf/closed/mineral)) - var/turf/closed/mineral/M = T - M.gets_drilled(firer) - - -/obj/effect/kinetic_blast - name = "kinetic explosion" - icon = 'icons/obj/projectiles.dmi' - icon_state = "kinetic_blast" - layer = ABOVE_ALL_MOB_LAYER - -/obj/effect/kinetic_blast/New() - spawn(4) - qdel(src) - /obj/item/projectile/beam/wormhole name = "bluespace beam" icon_state = "spark" @@ -221,23 +186,26 @@ icon_state = "plasmacutter" damage_type = BRUTE damage = 5 - range = 5 + range = 3.5 //works as 4, but doubles to 7 + dismemberment = 20 + impact_effect_type = /obj/effect/overlay/temp/impact_effect/purple_laser /obj/item/projectile/plasma/New() var/turf/proj_turf = get_turf(src) - if(!istype(proj_turf, /turf)) + if(!isturf(proj_turf)) return var/datum/gas_mixture/environment = proj_turf.return_air() if(environment) var/pressure = environment.return_pressure() if(pressure < 60) - name = "full strength plasma blast" + name = "full strength [name]" damage *= 4 + range *= 2 ..() /obj/item/projectile/plasma/on_hit(atom/target) . = ..() - if(istype(target, /turf/closed/mineral)) + if(ismineralturf(target)) var/turf/closed/mineral/M = target M.gets_drilled(firer) Range() @@ -246,11 +214,11 @@ /obj/item/projectile/plasma/adv damage = 7 - range = 7 + range = 5 /obj/item/projectile/plasma/adv/mech damage = 10 - range = 8 + range = 6 /obj/item/projectile/gravityrepulse diff --git a/code/modules/reagents/chem_splash.dm b/code/modules/reagents/chem_splash.dm index b32e9da175..271b8a08dd 100644 --- a/code/modules/reagents/chem_splash.dm +++ b/code/modules/reagents/chem_splash.dm @@ -5,8 +5,8 @@ // Extra heat affects the temperature of the mixture, and may cause it to react in different ways. -proc/chem_splash(turf/epicenter, affected_range = 3, list/datum/reagents/reactants = list(), extra_heat = 0, threatscale = 1, adminlog = 1) - if(!istype(epicenter, /turf) || !reactants.len || threatscale <= 0) +/proc/chem_splash(turf/epicenter, affected_range = 3, list/datum/reagents/reactants = list(), extra_heat = 0, threatscale = 1, adminlog = 1) + if(!isturf(epicenter) || !reactants.len || threatscale <= 0) return var/has_reagents var/total_reagents @@ -46,12 +46,12 @@ proc/chem_splash(turf/epicenter, affected_range = 3, list/datum/reagents/reactan turflist.Remove(T) turflist.Add(T) // we move the purely diagonal turfs to the end of the list. for(var/turf/T in turflist) - if(T in accessible) continue - for(var/turf/NT in orange(1, T)) + if(accessible[T]) continue + for(var/thing in T.GetAtmosAdjacentTurfs(alldir = TRUE)) + var/turf/NT = thing if(!(NT in accessible)) continue if(!(get_dir(T,NT) in cardinal)) continue - if(!NT.CanAtmosPass(T)) continue - accessible |= T + accessible[T] = 1 break var/list/reactable = accessible for(var/turf/T in accessible) @@ -63,7 +63,8 @@ proc/chem_splash(turf/epicenter, affected_range = 3, list/datum/reagents/reactan if(!reactable.len) //Nothing to react with. Probably means we're in nullspace. return var/fraction = 0.5/accessible.len // In a 100u mix. A small grenade spreads ~1.5u units per affected tile. A large grenade spreads ~0.75u, and a bomb spreads ~0.4u - for(var/atom/A in reactable) + for(var/thing in reactable) + var/atom/A = thing splash_holder.reaction(A, TOUCH, fraction) qdel(splash_holder) diff --git a/code/modules/reagents/chemistry/colors.dm b/code/modules/reagents/chemistry/colors.dm index 05ee15c293..8d83f9343a 100644 --- a/code/modules/reagents/chemistry/colors.dm +++ b/code/modules/reagents/chemistry/colors.dm @@ -2,7 +2,7 @@ if(!istype(reagent_list)) return - var/color + var/mixcolor var/vol_counter = 0 var/vol_temp @@ -10,12 +10,12 @@ vol_temp = R.volume vol_counter += vol_temp - if(!color) - color = R.color + if(!mixcolor) + mixcolor = R.color - else if (length(color) >= length(R.color)) - color = BlendRGB(color, R.color, vol_temp/vol_counter) + else if (length(mixcolor) >= length(R.color)) + mixcolor = BlendRGB(mixcolor, R.color, vol_temp/vol_counter) else - color = BlendRGB(R.color, color, vol_temp/vol_counter) + mixcolor = BlendRGB(R.color, mixcolor, vol_temp/vol_counter) - return color \ No newline at end of file + return mixcolor \ No newline at end of file diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm index 543bbd9546..5bf5526af8 100644 --- a/code/modules/reagents/chemistry/holder.dm +++ b/code/modules/reagents/chemistry/holder.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 + var/const/TOUCH = 1 //splashing var/const/INGEST = 2 //ingestion @@ -12,7 +12,7 @@ var/const/INJECT = 5 //injection var/list/datum/reagent/reagent_list = new/list() var/total_volume = 0 var/maximum_volume = 100 - var/atom/my_atom = null + var/datum/my_atom = null var/chem_temp = 150 var/last_tick = 1 var/addiction_tick = 1 @@ -61,30 +61,32 @@ var/const/INJECT = 5 //injection /datum/reagents/Destroy() . = ..() STOP_PROCESSING(SSobj, src) - for(var/reagent in reagent_list) + var/list/cached_reagents = reagent_list + for(var/reagent in cached_reagents) var/datum/reagent/R = reagent qdel(R) - reagent_list.Cut() - reagent_list = null + cached_reagents.Cut() + cached_reagents = null if(my_atom && my_atom.reagents == src) my_atom.reagents = null /datum/reagents/proc/remove_any(amount = 1) + var/list/cached_reagents = reagent_list var/total_transfered = 0 var/current_list_element = 1 - current_list_element = rand(1, reagent_list.len) + current_list_element = rand(1, cached_reagents.len) while(total_transfered != amount) if(total_transfered >= amount) break - if(total_volume <= 0 || !reagent_list.len) + if(total_volume <= 0 || !cached_reagents.len) break - if(current_list_element > reagent_list.len) + if(current_list_element > cached_reagents.len) current_list_element = 1 - var/datum/reagent/R = reagent_list[current_list_element] + var/datum/reagent/R = cached_reagents[current_list_element] remove_reagent(R.id, 1) current_list_element++ @@ -95,9 +97,10 @@ var/const/INJECT = 5 //injection return total_transfered /datum/reagents/proc/remove_all(amount = 1) + var/list/cached_reagents = reagent_list if(total_volume > 0) var/part = amount / total_volume - for(var/reagent in reagent_list) + for(var/reagent in cached_reagents) var/datum/reagent/R = reagent remove_reagent(R.id, R.volume * part) @@ -106,9 +109,10 @@ var/const/INJECT = 5 //injection return amount /datum/reagents/proc/get_master_reagent_name() + var/list/cached_reagents = reagent_list var/name var/max_volume = 0 - for(var/reagent in reagent_list) + for(var/reagent in cached_reagents) var/datum/reagent/R = reagent if(R.volume > max_volume) max_volume = R.volume @@ -117,9 +121,10 @@ var/const/INJECT = 5 //injection return name /datum/reagents/proc/get_master_reagent_id() + var/list/cached_reagents = reagent_list var/id var/max_volume = 0 - for(var/reagent in reagent_list) + for(var/reagent in cached_reagents) var/datum/reagent/R = reagent if(R.volume > max_volume) max_volume = R.volume @@ -128,8 +133,12 @@ var/const/INJECT = 5 //injection return id /datum/reagents/proc/trans_to(obj/target, amount=1, multiplier=1, preserve_data=1, no_react = 0)//if preserve_data=0, the reagents data will be lost. Usefull if you use data for some strange stuff and don't want it to be transferred. + var/list/cached_reagents = reagent_list if(!target || !total_volume) return + if(amount < 0) + return + var/datum/reagents/R if(istype(target, /datum/reagents)) R = target @@ -140,7 +149,7 @@ var/const/INJECT = 5 //injection amount = min(min(amount, src.total_volume), R.maximum_volume-R.total_volume) var/part = amount / src.total_volume var/trans_data = null - for(var/reagent in reagent_list) + for(var/reagent in cached_reagents) var/datum/reagent/T = reagent var/transfer_amount = T.volume * part if(preserve_data) @@ -156,15 +165,18 @@ var/const/INJECT = 5 //injection return amount /datum/reagents/proc/copy_to(obj/target, amount=1, multiplier=1, preserve_data=1) + var/list/cached_reagents = reagent_list if(!target) return if(!target.reagents || src.total_volume<=0) return + if(amount < 0) + return var/datum/reagents/R = target.reagents amount = min(min(amount, total_volume), R.maximum_volume-R.total_volume) var/part = amount / total_volume var/trans_data = null - for(var/reagent in reagent_list) + for(var/reagent in cached_reagents) var/datum/reagent/T = reagent var/copy_amount = T.volume * part if(preserve_data) @@ -178,68 +190,41 @@ var/const/INJECT = 5 //injection return amount /datum/reagents/proc/trans_id_to(obj/target, reagent, amount=1, preserve_data=1)//Not sure why this proc didn't exist before. It does now! /N + var/list/cached_reagents = reagent_list if (!target) return if (!target.reagents || src.total_volume<=0 || !src.get_reagent_amount(reagent)) return + if(amount < 0) + return var/datum/reagents/R = target.reagents if(src.get_reagent_amount(reagent) R.maximum_volume) return 0 - - current_list_element = rand(1,reagent_list.len) //Eh, bandaid fix. - - while(total_transfered != amount) - if(total_transfered >= amount) break //Better safe than sorry. - if(total_volume <= 0 || !reagent_list.len) break - if(R.total_volume >= R.maximum_volume) break - - if(current_list_element > reagent_list.len) current_list_element = 1 - var/datum/reagent/current_reagent = reagent_list[current_list_element] - if(preserve_data) - trans_data = current_reagent.data - R.add_reagent(current_reagent.id, (1 * multiplier), trans_data) - src.remove_reagent(current_reagent.id, 1) - - current_list_element++ - total_transfered++ - src.update_total() - R.update_total() - R.handle_reactions() - handle_reactions() - - return total_transfered -*/ - /datum/reagents/proc/metabolize(mob/living/carbon/C, can_overdose = 0) + var/list/cached_reagents = reagent_list + var/list/cached_addictions = addiction_list if(C) chem_temp = C.bodytemperature handle_reactions() var/need_mob_update = 0 - for(var/reagent in reagent_list) + for(var/reagent in cached_reagents) var/datum/reagent/R = reagent if(!R.holder) continue @@ -253,13 +238,13 @@ var/const/INJECT = 5 //injection R.overdosed = 1 need_mob_update += R.overdose_start(C) if(R.addiction_threshold) - if(R.volume >= R.addiction_threshold && !is_type_in_list(R, addiction_list)) + if(R.volume >= R.addiction_threshold && !is_type_in_list(R, cached_addictions)) var/datum/reagent/new_reagent = new R.type() - addiction_list.Add(new_reagent) + cached_addictions.Add(new_reagent) if(R.overdosed) need_mob_update += R.overdose_process(C) - if(is_type_in_list(R,addiction_list)) - for(var/addiction in addiction_list) + if(is_type_in_list(R,cached_addictions)) + for(var/addiction in cached_addictions) var/datum/reagent/A = addiction if(istype(R, A)) A.addiction_stage = -15 // you're satisfied for a good while. @@ -268,7 +253,7 @@ var/const/INJECT = 5 //injection if(can_overdose) if(addiction_tick == 6) addiction_tick = 1 - for(var/addiction in addiction_list) + for(var/addiction in cached_addictions) var/datum/reagent/R = addiction if(C && R) R.addiction_stage++ @@ -283,7 +268,7 @@ var/const/INJECT = 5 //injection need_mob_update += R.addiction_act_stage4(C) if(40 to INFINITY) C << "You feel like you've gotten over your need for [R.name]." - addiction_list.Remove(R) + cached_addictions.Remove(R) addiction_tick++ if(C && need_mob_update) //some of the metabolized reagents had effects on the mob that requires some updates. C.updatehealth() @@ -292,11 +277,12 @@ var/const/INJECT = 5 //injection update_total() /datum/reagents/process() + var/list/cached_reagents = reagent_list if(flags & REAGENT_NOREACT) STOP_PROCESSING(SSobj, src) return - for(var/reagent in reagent_list) + for(var/reagent in cached_reagents) var/datum/reagent/R = reagent R.on_tick() @@ -311,129 +297,146 @@ var/const/INJECT = 5 //injection flags |= REAGENT_NOREACT /datum/reagents/proc/conditional_update_move(atom/A, Running = 0) - for(var/reagent in reagent_list) + var/list/cached_reagents = reagent_list + for(var/reagent in cached_reagents) var/datum/reagent/R = reagent R.on_move (A, Running) update_total() /datum/reagents/proc/conditional_update(atom/A) - for(var/reagent in reagent_list) + var/list/cached_reagents = reagent_list + for(var/reagent in cached_reagents) var/datum/reagent/R = reagent R.on_update (A) update_total() /datum/reagents/proc/handle_reactions() + var/list/cached_reagents = reagent_list + var/list/cached_reactions = chemical_reactions_list + var/datum/cached_my_atom = my_atom if(flags & REAGENT_NOREACT) return //Yup, no reactions here. No siree. - var/reaction_occured = 0 + var/reaction_occurred = 0 do - reaction_occured = 0 - for(var/reagent in reagent_list) + reaction_occurred = 0 + for(var/reagent in cached_reagents) var/datum/reagent/R = reagent - for(var/reaction in chemical_reactions_list[R.id]) // Was a big list but now it should be smaller since we filtered it with our reagent id + for(var/reaction in cached_reactions[R.id]) // Was a big list but now it should be smaller since we filtered it with our reagent id if(!reaction) continue var/datum/chemical_reaction/C = reaction - var/total_required_reagents = C.required_reagents.len + var/list/cached_required_reagents = C.required_reagents + var/total_required_reagents = cached_required_reagents.len var/total_matching_reagents = 0 - var/total_required_catalysts = C.required_catalysts.len + var/list/cached_required_catalysts = C.required_catalysts + var/total_required_catalysts = cached_required_catalysts.len var/total_matching_catalysts= 0 var/matching_container = 0 var/matching_other = 0 var/list/multipliers = new/list() var/required_temp = C.required_temp + var/is_cold_recipe = C.is_cold_recipe + var/meets_temp_requirement = 0 - for(var/B in C.required_reagents) - if(!has_reagent(B, C.required_reagents[B])) + var/list/cached_results = C.results + + for(var/B in cached_required_reagents) + if(!has_reagent(B, cached_required_reagents[B])) break total_matching_reagents++ - multipliers += round(get_reagent_amount(B) / C.required_reagents[B]) - for(var/B in C.required_catalysts) - if(!has_reagent(B, C.required_catalysts[B])) + multipliers += round(get_reagent_amount(B) / cached_required_reagents[B]) + for(var/B in cached_required_catalysts) + if(!has_reagent(B, cached_required_catalysts[B])) break total_matching_catalysts++ - - if(!C.required_container) - matching_container = 1 - - else - if(my_atom.type == C.required_container) + if(cached_my_atom) + if(!C.required_container) matching_container = 1 - if (isliving(my_atom)) //Makes it so certain chemical reactions don't occur in mobs - if (C.mob_react) - return - if(!C.required_other) - matching_other = 1 - else if(istype(my_atom, /obj/item/slime_extract)) - var/obj/item/slime_extract/M = my_atom - - if(M.Uses > 0) // added a limit to slime cores -- Muskets requested this + else + if(cached_my_atom.type == C.required_container) + matching_container = 1 + if (isliving(cached_my_atom)) //Makes it so certain chemical reactions don't occur in mobs + if (C.mob_react) + return + if(!C.required_other) matching_other = 1 - if(required_temp == 0) - required_temp = chem_temp + else if(istype(cached_my_atom, /obj/item/slime_extract)) + var/obj/item/slime_extract/M = cached_my_atom + if(M.Uses > 0) // added a limit to slime cores -- Muskets requested this + matching_other = 1 + else + if(!C.required_container) + matching_container = 1 + if(!C.required_other) + matching_other = 1 - if(total_matching_reagents == total_required_reagents && total_matching_catalysts == total_required_catalysts && matching_container && matching_other && chem_temp >= required_temp) + if(required_temp == 0 || (is_cold_recipe && chem_temp <= required_temp) || (!is_cold_recipe && chem_temp >= required_temp)) + meets_temp_requirement = 1 + + if(total_matching_reagents == total_required_reagents && total_matching_catalysts == total_required_catalysts && matching_container && matching_other && meets_temp_requirement) var/multiplier = min(multipliers) - for(var/B in C.required_reagents) - remove_reagent(B, (multiplier * C.required_reagents[B]), safety = 1) + for(var/B in cached_required_reagents) + remove_reagent(B, (multiplier * cached_required_reagents[B]), safety = 1) - var/created_volume = C.result_amount*multiplier - if(C.result) - feedback_add_details("chemical_reaction","[C.result]|[C.result_amount*multiplier]") + for(var/P in C.results) + feedback_add_details("chemical_reaction", "[P]|[cached_results[P]*multiplier]") multiplier = max(multiplier, 1) //this shouldnt happen ... - add_reagent(C.result, C.result_amount*multiplier, null, chem_temp) + add_reagent(P, cached_results[P]*multiplier, null, chem_temp) var/list/seen = viewers(4, get_turf(my_atom)) - - if(!istype(my_atom, /mob)) // No bubbling mobs - if(C.mix_sound) - playsound(get_turf(my_atom), C.mix_sound, 80, 1) - for(var/mob/M in seen) - M << "\icon[my_atom] [C.mix_message]" - - if(istype(my_atom, /obj/item/slime_extract)) - var/obj/item/slime_extract/ME2 = my_atom - ME2.Uses-- - if(ME2.Uses <= 0) // give the notification that the slime core is dead + if(cached_my_atom) + if(!ismob(cached_my_atom)) // No bubbling mobs + if(C.mix_sound) + playsound(get_turf(cached_my_atom), C.mix_sound, 80, 1) for(var/mob/M in seen) - M << "\icon[my_atom] \The [my_atom]'s power is consumed in the reaction." - ME2.name = "used slime extract" - ME2.desc = "This extract has been used up." + M << "\icon[my_atom] [C.mix_message]" - C.on_reaction(src, created_volume) - reaction_occured = 1 + if(istype(cached_my_atom, /obj/item/slime_extract)) + var/obj/item/slime_extract/ME2 = my_atom + ME2.Uses-- + if(ME2.Uses <= 0) // give the notification that the slime core is dead + for(var/mob/M in seen) + M << "\icon[my_atom] \The [my_atom]'s power is consumed in the reaction." + ME2.name = "used slime extract" + ME2.desc = "This extract has been used up." + + C.on_reaction(src, multiplier) + reaction_occurred = 1 break - while(reaction_occured) + while(reaction_occurred) update_total() return 0 /datum/reagents/proc/isolate_reagent(reagent) - for(var/_reagent in reagent_list) + var/list/cached_reagents = reagent_list + for(var/_reagent in cached_reagents) var/datum/reagent/R = _reagent if(R.id != reagent) del_reagent(R.id) update_total() /datum/reagents/proc/del_reagent(reagent) - for(var/_reagent in reagent_list) + var/list/cached_reagents = reagent_list + for(var/_reagent in cached_reagents) var/datum/reagent/R = _reagent if(R.id == reagent) - if(istype(my_atom, /mob/living)) + if(my_atom && isliving(my_atom)) var/mob/living/M = my_atom R.on_mob_delete(M) qdel(R) reagent_list -= R update_total() - my_atom.on_reagent_change() - check_ignoreslow(my_atom) - check_gofast(my_atom) - check_goreallyfast(my_atom) + if(my_atom) + my_atom.on_reagent_change() + check_ignoreslow(my_atom) + check_gofast(my_atom) + check_goreallyfast(my_atom) return 1 /datum/reagents/proc/check_ignoreslow(mob/M) @@ -458,8 +461,9 @@ var/const/INJECT = 5 //injection M.status_flags &= ~GOTTAGOREALLYFAST /datum/reagents/proc/update_total() + var/list/cached_reagents = reagent_list total_volume = 0 - for(var/reagent in reagent_list) + for(var/reagent in cached_reagents) var/datum/reagent/R = reagent if(R.volume < 0.1) del_reagent(R.id) @@ -469,54 +473,68 @@ var/const/INJECT = 5 //injection return 0 /datum/reagents/proc/clear_reagents() - for(var/reagent in reagent_list) + var/list/cached_reagents = reagent_list + for(var/reagent in cached_reagents) var/datum/reagent/R = reagent del_reagent(R.id) return 0 /datum/reagents/proc/reaction(atom/A, method = TOUCH, volume_modifier = 1, show_message = 1) + var/react_type if(isliving(A)) - var/touch_protection = 0 - if(method == VAPOR) - var/mob/living/L = A - touch_protection = L.get_permeability_protection() - for(var/reagent in reagent_list) - var/datum/reagent/R = reagent - R.reaction_mob(A, method, R.volume * volume_modifier, show_message, touch_protection) + react_type = "LIVING" else if(isturf(A)) - for(var/reagent in reagent_list) - var/datum/reagent/R = reagent - R.reaction_turf(A, R.volume * volume_modifier, show_message) + react_type = "TURF" else if(isobj(A)) - for(var/reagent in reagent_list) - var/datum/reagent/R = reagent - R.reaction_obj(A, R.volume * volume_modifier, show_message) + react_type = "OBJ" + else + return + var/list/cached_reagents = reagent_list + for(var/reagent in cached_reagents) + var/datum/reagent/R = reagent + switch(react_type) + if("LIVING") + var/touch_protection = 0 + if(method == VAPOR) + var/mob/living/L = A + touch_protection = L.get_permeability_protection() + R.reaction_mob(A, method, R.volume * volume_modifier, show_message, touch_protection) + if("TURF") + R.reaction_turf(A, R.volume * volume_modifier, show_message) + if("OBJ") + R.reaction_obj(A, R.volume * volume_modifier, show_message) /datum/reagents/proc/add_reagent(reagent, amount, list/data=null, reagtemp = 300, no_react = 0) if(!isnum(amount) || !amount) - return 1 + return FALSE + + if(amount < 0) + return FALSE + + var/list/cached_reagents = reagent_list update_total() if(total_volume + amount > maximum_volume) amount = (maximum_volume - total_volume) //Doesnt fit in. Make it disappear. Shouldnt happen. Will happen. chem_temp = round(((amount * reagtemp) + (total_volume * chem_temp)) / (total_volume + amount)) //equalize with new chems - for(var/A in reagent_list) + for(var/A in cached_reagents) var/datum/reagent/R = A if (R.id == reagent) R.volume += amount update_total() - my_atom.on_reagent_change() + if(my_atom) + my_atom.on_reagent_change() R.on_merge(data) if(!no_react) handle_reactions() - return 0 + return TRUE var/datum/reagent/D = chemical_reagents_list[reagent] if(D) var/datum/reagent/R = new D.type(data) - reagent_list += R + cached_reagents += R R.holder = src R.volume = amount if(data) @@ -524,17 +542,15 @@ var/const/INJECT = 5 //injection R.on_new(data) update_total() - my_atom.on_reagent_change() + if(my_atom) + my_atom.on_reagent_change() if(!no_react) handle_reactions() - return 0 + return TRUE + else WARNING("[my_atom] attempted to add a reagent called ' [reagent] ' which doesn't exist. ([usr])") - - if(!no_react) - handle_reactions() - - return 1 + return FALSE /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) for(var/r_id in list_reagents) @@ -542,27 +558,39 @@ var/const/INJECT = 5 //injection add_reagent(r_id, amt, data) /datum/reagents/proc/remove_reagent(reagent, amount, safety)//Added a safety check for the trans_id_to - - if(isnull(amount)) - amount = INFINITY - - if(!isnum(amount)) - return 1 - for(var/A in reagent_list) + if(isnull(amount)) + amount = 0 + throw EXCEPTION("null amount passed to reagent code") + return FALSE + + if(!isnum(amount)) + return FALSE + + if(amount < 0) + return FALSE + + var/list/cached_reagents = reagent_list + + for(var/A in cached_reagents) var/datum/reagent/R = A if (R.id == reagent) + //clamp the removal amount to be between current reagent amount + //and zero, to prevent removing more than the holder has stored + amount = Clamp(amount, 0, R.volume) R.volume -= amount update_total() if(!safety)//So it does not handle reactions when it need not to handle_reactions() - my_atom.on_reagent_change() - return 0 + if(my_atom) + my_atom.on_reagent_change() + return TRUE - return 1 + return FALSE /datum/reagents/proc/has_reagent(reagent, amount = -1) - for(var/_reagent in reagent_list) + var/list/cached_reagents = reagent_list + for(var/_reagent in cached_reagents) var/datum/reagent/R = _reagent if (R.id == reagent) if(!amount) @@ -576,7 +604,8 @@ var/const/INJECT = 5 //injection return 0 /datum/reagents/proc/get_reagent_amount(reagent) - for(var/_reagent in reagent_list) + var/list/cached_reagents = reagent_list + for(var/_reagent in cached_reagents) var/datum/reagent/R = _reagent if (R.id == reagent) return R.volume @@ -585,7 +614,8 @@ var/const/INJECT = 5 //injection /datum/reagents/proc/get_reagents() var/list/names = list() - for(var/reagent in reagent_list) + var/list/cached_reagents = reagent_list + for(var/reagent in cached_reagents) var/datum/reagent/R = reagent names += R.name @@ -593,10 +623,10 @@ var/const/INJECT = 5 //injection /datum/reagents/proc/remove_all_type(reagent_type, amount, strict = 0, safety = 1) // Removes all reagent of X type. @strict set to 1 determines whether the childs of the type are included. if(!isnum(amount)) return 1 - + var/list/cached_reagents = reagent_list var/has_removed_reagent = 0 - for(var/reagent in reagent_list) + for(var/reagent in cached_reagents) var/datum/reagent/R = reagent var/matches = 0 // Switch between how we check the reagent type @@ -615,14 +645,16 @@ var/const/INJECT = 5 //injection //two helper functions to preserve data across reactions (needed for xenoarch) /datum/reagents/proc/get_data(reagent_id) - for(var/reagent in reagent_list) + var/list/cached_reagents = reagent_list + for(var/reagent in cached_reagents) var/datum/reagent/R = reagent if(R.id == reagent_id) //world << "proffering a data-carrying reagent ([reagent_id])" return R.data /datum/reagents/proc/set_data(reagent_id, new_data) - for(var/reagent in reagent_list) + var/list/cached_reagents = reagent_list + for(var/reagent in cached_reagents) var/datum/reagent/R = reagent if(R.id == reagent_id) //world << "reagent data set ([reagent_id])" @@ -650,7 +682,8 @@ var/const/INJECT = 5 //injection return trans_data /datum/reagents/proc/get_reagent(type) - . = locate(type) in reagent_list + var/list/cached_reagents = reagent_list + . = locate(type) in cached_reagents /////////////////////////////////////////////////////////////////////////////////// @@ -658,8 +691,18 @@ var/const/INJECT = 5 //injection // Convenience proc to create a reagents holder for an atom // Max vol is maximum volume of holder -/atom/proc/create_reagents(max_vol) +/datum/proc/create_reagents(max_vol) if(reagents) qdel(reagents) reagents = new/datum/reagents(max_vol) reagents.my_atom = src + +/proc/get_random_reagent_id() // Returns a random reagent ID minus blacklisted reagents + var/static/list/random_reagents = list() + if(!random_reagents.len) + for(var/thing in subtypesof(/datum/reagent)) + var/datum/reagent/R = thing + if(initial(R.can_synth)) + random_reagents += initial(R.id) + var/picked_reagent = pick(random_reagents) + return picked_reagent \ No newline at end of file diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index a44f99f262..dbfb62af75 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -8,6 +8,7 @@ use_power = 1 idle_power_usage = 40 interact_offline = 1 + resistance_flags = FIRE_PROOF | ACID_PROOF var/energy = 100 var/max_energy = 100 var/amount = 30 @@ -84,9 +85,16 @@ if(severity < 3) ..() -/obj/machinery/chem_dispenser/blob_act(obj/effect/blob/B) - if(prob(50)) - qdel(src) +/obj/machinery/chem_dispenser/contents_explosion(severity, target) + ..() + if(beaker) + beaker.ex_act(severity, target) + +/obj/machinery/chem_dispenser/handle_atom_del(atom/A) + ..() + if(A == beaker) + beaker = null + cut_overlays() /obj/machinery/chem_dispenser/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ datum/tgui/master_ui = null, datum/ui_state/state = default_state) @@ -153,7 +161,7 @@ . = TRUE if("eject") if(beaker) - beaker.loc = loc + beaker.forceMove(loc) beaker = null cut_overlays() . = TRUE @@ -180,7 +188,7 @@ icon_beaker = image('icons/obj/chemical.dmi', src, "disp_beaker") //randomize beaker overlay position. icon_beaker.pixel_x = rand(-10,5) add_overlay(icon_beaker) - else if(user.a_intent != "harm" && !istype(I, /obj/item/weapon/card/emag)) + else if(user.a_intent != INTENT_HARM && !istype(I, /obj/item/weapon/card/emag)) user << "You can't load \the [I] into the machine!" else return ..() @@ -284,7 +292,7 @@ return return ..() -/obj/machinery/chem_dispenser/constructable/deconstruction() +/obj/machinery/chem_dispenser/constructable/on_deconstruction() if(beaker) beaker.loc = loc beaker = null diff --git a/code/modules/reagents/chemistry/machinery/chem_heater.dm b/code/modules/reagents/chemistry/machinery/chem_heater.dm index 33daa476e6..a4af808cbb 100644 --- a/code/modules/reagents/chemistry/machinery/chem_heater.dm +++ b/code/modules/reagents/chemistry/machinery/chem_heater.dm @@ -6,6 +6,7 @@ icon_state = "mixer0b" use_power = 1 idle_power_usage = 40 + resistance_flags = FIRE_PROOF | ACID_PROOF var/obj/item/weapon/reagent_containers/beaker = null var/target_temperature = 300 var/heater_coefficient = 0.10 @@ -68,7 +69,7 @@ return return ..() -/obj/machinery/chem_heater/deconstruction() +/obj/machinery/chem_heater/on_deconstruction() eject_beaker() /obj/machinery/chem_heater/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm index 8fd2019966..08dd9978ce 100644 --- a/code/modules/reagents/chemistry/machinery/chem_master.dm +++ b/code/modules/reagents/chemistry/machinery/chem_master.dm @@ -7,6 +7,7 @@ icon_state = "mixer0" use_power = 1 idle_power_usage = 20 + resistance_flags = FIRE_PROOF | ACID_PROOF var/obj/item/weapon/reagent_containers/beaker = null var/obj/item/weapon/storage/pill_bottle/bottle = null var/mode = 1 @@ -14,16 +15,13 @@ var/screen = "home" var/analyzeVars[0] var/useramount = 30 // Last used amount - use_auto_lights = 1 - light_power_on = 1 - light_range_on = 2 - light_color = LIGHT_COLOR_BLUE /obj/machinery/chem_master/New() create_reagents(100) add_overlay("waitlight") var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/chem_master(null) B.apply_default_parts(src) + ..() /obj/item/weapon/circuitboard/machine/chem_master name = "circuit board (ChemMaster 3000)" @@ -58,7 +56,24 @@ if(severity < 3) ..() -/obj/machinery/chem_master/blob_act(obj/effect/blob/B) +/obj/machinery/chem_master/contents_explosion(severity, target) + ..() + if(beaker) + beaker.ex_act(severity, target) + if(bottle) + bottle.ex_act(severity, target) + +/obj/machinery/chem_master/handle_atom_del(atom/A) + ..() + if(A == beaker) + beaker = null + reagents.clear_reagents() + icon_state = "mixer0" + else if(A == bottle) + bottle = null + + +/obj/machinery/chem_master/blob_act(obj/structure/blob/B) if (prob(50)) qdel(src) @@ -186,8 +201,9 @@ . = TRUE else if (amount == -1) // -1 means custom amount useramount = input("Enter the Amount you want to transfer:", name, useramount) as num|null - beaker.reagents.trans_id_to(src, id, useramount) - . = TRUE + if (useramount > 0) + beaker.reagents.trans_id_to(src, id, useramount) + . = TRUE if("transferFromBuffer") var/id = params["id"] @@ -206,17 +222,18 @@ if("createPill") var/many = params["many"] - if(reagents.total_volume == 0) return + if(reagents.total_volume == 0) + return if(!condi) var/amount = 1 var/vol_each = min(reagents.total_volume, 50) if(text2num(many)) - amount = min(max(round(input(usr, "Max 10. Buffer content will be split evenly.", "How many pills?", amount) as num|null), 0), 10) + amount = Clamp(round(input(usr, "Max 10. Buffer content will be split evenly.", "How many pills?", amount) as num|null), 0, 10) if(!amount) return vol_each = min(reagents.total_volume / amount, 50) var/name = stripped_input(usr,"Name:","Name your pill!", "[reagents.get_master_reagent_name()] ([vol_each]u)", MAX_NAME_LEN) - if(!name || !reagents.total_volume) + if(!name || !reagents.total_volume || !src || qdeleted(src) || !usr.canUseTopic(src, be_close=TRUE)) return var/obj/item/weapon/reagent_containers/pill/P @@ -231,7 +248,7 @@ reagents.trans_to(P,vol_each) else var/name = stripped_input(usr, "Name:", "Name your pack!", reagents.get_master_reagent_name(), MAX_NAME_LEN) - if(!name || !reagents.total_volume) + if(!name || !reagents.total_volume || !src || qdeleted(src) || !usr.canUseTopic(src, be_close=TRUE)) return var/obj/item/weapon/reagent_containers/food/condiment/pack/P = new/obj/item/weapon/reagent_containers/food/condiment/pack(src.loc) @@ -243,16 +260,17 @@ if("createPatch") var/many = params["many"] - if(reagents.total_volume == 0) return + if(reagents.total_volume == 0) + return var/amount = 1 var/vol_each = min(reagents.total_volume, 40) if(text2num(many)) - amount = min(max(round(input(usr, "Max 10. Buffer content will be split evenly.", "How many patches?", amount) as num|null), 0), 10) + amount = Clamp(round(input(usr, "Max 10. Buffer content will be split evenly.", "How many patches?", amount) as num|null), 0, 10) if(!amount) return vol_each = min(reagents.total_volume / amount, 40) var/name = stripped_input(usr,"Name:","Name your patch!", "[reagents.get_master_reagent_name()] ([vol_each]u)", MAX_NAME_LEN) - if(!name || !reagents.total_volume) + if(!name || !reagents.total_volume || !src || qdeleted(src) || !usr.canUseTopic(src, be_close=TRUE)) return var/obj/item/weapon/reagent_containers/pill/P @@ -265,21 +283,40 @@ . = TRUE if("createBottle") - var/name = stripped_input(usr, "Name:","Name your bottle!", (reagents.total_volume ? reagents.get_master_reagent_name() : " "), MAX_NAME_LEN) - if(!name) + var/many = params["many"] + if(reagents.total_volume == 0) return - var/obj/item/weapon/reagent_containers/P - if(condi) - var/obj/item/weapon/reagent_containers/food/condiment/C = new(src.loc) - C.originalname = name - P = C - else - P = new/obj/item/weapon/reagent_containers/glass/bottle(src.loc) - P.pixel_x = rand(-7, 7) //random position - P.pixel_y = rand(-7, 7) - P.name = trim("[name] bottle") - reagents.trans_to(P, P.volume) + if(condi) + var/name = stripped_input(usr, "Name:","Name your bottle!", (reagents.total_volume ? reagents.get_master_reagent_name() : " "), MAX_NAME_LEN) + if(!name || !reagents.total_volume || !src || qdeleted(src) || !usr.canUseTopic(src, be_close=TRUE)) + return + var/obj/item/weapon/reagent_containers/food/condiment/P = new(src.loc) + P.originalname = name + P.name = trim("[name] bottle") + reagents.trans_to(P, P.volume) + else + var/amount_full = 0 + var/vol_part = min(reagents.total_volume, 30) + if(text2num(many)) + amount_full = round(reagents.total_volume / 30) + vol_part = reagents.total_volume % 30 + var/name = stripped_input(usr, "Name:","Name your bottle!", (reagents.total_volume ? reagents.get_master_reagent_name() : " "), MAX_NAME_LEN) + if(!name || !reagents.total_volume || !src || qdeleted(src) || !usr.canUseTopic(src, be_close=TRUE)) + return + + var/obj/item/weapon/reagent_containers/glass/bottle/P + for(var/i = 0; i < amount_full; i++) + P = new/obj/item/weapon/reagent_containers/glass/bottle(src.loc) + P.pixel_x = rand(-7, 7) //random position + P.pixel_y = rand(-7, 7) + P.name = trim("[name] bottle") + reagents.trans_to(P, 30) + + if(vol_part) + P = new/obj/item/weapon/reagent_containers/glass/bottle(src.loc) + P.name = trim("[name] bottle") + reagents.trans_to(P, vol_part) . = TRUE if("analyze") diff --git a/code/modules/reagents/chemistry/machinery/pandemic.dm b/code/modules/reagents/chemistry/machinery/pandemic.dm index 6c4f1e7a89..8686999790 100644 --- a/code/modules/reagents/chemistry/machinery/pandemic.dm +++ b/code/modules/reagents/chemistry/machinery/pandemic.dm @@ -8,6 +8,7 @@ circuit = /obj/item/weapon/circuitboard/computer/pandemic use_power = 1 idle_power_usage = 20 + resistance_flags = ACID_PROOF var/temp_html = "" var/wait = null var/obj/item/weapon/reagent_containers/beaker = null @@ -46,7 +47,7 @@ wait = 1 update_icon() spawn(waittime) - src.wait = null + wait = null update_icon() playsound(src.loc, 'sound/machines/ping.ogg', 30, 1) @@ -96,8 +97,8 @@ B.reagents.add_reagent("vaccine", 15, list(vaccine_type)) replicator_cooldown(200) else - src.temp_html = "The replicator is not ready yet." - src.updateUsrDialog() + temp_html = "The replicator is not ready yet." + updateUsrDialog() return else if (href_list["create_virus_culture"]) if(!wait) @@ -125,24 +126,31 @@ B.name = "[name] culture bottle" B.desc = "A small bottle. Contains [D.agent] culture in synthblood medium." B.reagents.add_reagent("blood",20,data) - src.updateUsrDialog() + updateUsrDialog() else - src.temp_html = "The replicator is not ready yet." - src.updateUsrDialog() + temp_html = "The replicator is not ready yet." + updateUsrDialog() return else if (href_list["empty_beaker"]) beaker.reagents.clear_reagents() - src.updateUsrDialog() + updateUsrDialog() return else if (href_list["eject"]) - beaker:loc = src.loc + beaker.forceMove(get_turf(loc)) beaker = null icon_state = "mixer0" - src.updateUsrDialog() + updateUsrDialog() + return + else if (href_list["emptyeject_beaker"]) + beaker.reagents.clear_reagents() + beaker.forceMove(get_turf(loc)) + beaker = null + icon_state = "mixer0" + updateUsrDialog() return else if(href_list["clear"]) - src.temp_html = "" - src.updateUsrDialog() + temp_html = "" + updateUsrDialog() return else if(href_list["name_disease"]) var/new_name = stripped_input(usr, "Name the Disease", "New Name", "", MAX_NAME_LEN) @@ -156,15 +164,15 @@ A.AssignName(new_name) for(var/datum/disease/advance/AD in SSdisease.processing) AD.Refresh() - src.updateUsrDialog() + updateUsrDialog() else usr << browse(null, "window=pandemic") - src.updateUsrDialog() + updateUsrDialog() return - src.add_fingerprint(usr) + add_fingerprint(usr) return /obj/machinery/computer/pandemic/attack_hand(mob/user) @@ -172,7 +180,7 @@ return user.set_machine(src) var/dat = "" - if(src.temp_html) + if(temp_html) dat = "[src.temp_html]

    Main Menu" else if(!beaker) dat += "Please insert beaker.
    " @@ -219,9 +227,12 @@ dat += "Description: [(D.desc||"none")]
    " dat += "Spread: [(D.spread_text||"none")]
    " dat += "Possible cure: [(D.cure_text||"none")]

    " - if(istype(D, /datum/disease/advance)) var/datum/disease/advance/A = D + dat += "Stealth: [(A.totalStealth())]
    " + dat += "Resistance: [(A.totalResistance())]
    " + dat += "Stage Speed: [(A.totalStageSpeed())]
    " + dat += "Transmission: [(A.totalTransmittable())]

    " dat += "Symptoms: " var/english_symptoms = list() for(var/datum/symptom/S in A.symptoms) @@ -257,7 +268,8 @@ dat += "nothing
    " else dat += "nothing
    " - dat += "
    Eject beaker[((R.total_volume&&R.reagent_list.len) ? "-- Empty beaker":"")]
    " + dat += "
    Eject beaker[((R.total_volume&&R.reagent_list.len) ? "-- Empty beaker":"")]" + dat += "[((R.total_volume&&R.reagent_list.len) ? "-- Empty and Eject beaker":"")]
    " dat += "Close" user << browse("[src.name]
    [dat]", "window=pandemic;size=575x400") @@ -279,12 +291,12 @@ beaker = I beaker.loc = src user << "You add the beaker to the machine." - src.updateUsrDialog() + updateUsrDialog() icon_state = "mixer1" else return ..() -/obj/machinery/computer/pandemic/deconstruction() +/obj/machinery/computer/pandemic/on_deconstruction() if(beaker) beaker.loc = get_turf(src) ..() \ No newline at end of file diff --git a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm index 479a2ea140..76c9c72c72 100644 --- a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm +++ b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm @@ -9,6 +9,7 @@ idle_power_usage = 5 active_power_usage = 100 pass_flags = PASSTABLE + resistance_flags = ACID_PROOF var/operating = 0 var/obj/item/weapon/reagent_containers/beaker = null var/limit = 10 @@ -26,7 +27,7 @@ /obj/item/stack/sheet/mineral/silver = list("silver" = 20), /obj/item/stack/sheet/mineral/gold = list("gold" = 20), /obj/item/weapon/grown/nettle/basic = list("sacid" = 0), - /obj/item/weapon/grown/nettle/death = list("facid" = 0), + /obj/item/weapon/grown/nettle/death = list("facid" = 0, "sacid" = 0), /obj/item/weapon/grown/novaflower = list("capsaicin" = 0, "condensedcapsaicin" = 0), //Blender Stuff @@ -46,6 +47,7 @@ //All types that you can put into the grinder to transfer the reagents to the beaker. !Put all recipes above this.! + /obj/item/slime_extract = list(), /obj/item/weapon/reagent_containers/pill = list(), /obj/item/weapon/reagent_containers/food = list(), /obj/item/weapon/reagent_containers/honeycomb = list() @@ -68,6 +70,9 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/berries/poison = list("poisonberryjuice" = 0), /obj/item/weapon/reagent_containers/food/snacks/grown/pumpkin = list("pumpkinjuice" = 0), /obj/item/weapon/reagent_containers/food/snacks/grown/blumpkin = list("blumpkinjuice" = 0), + /obj/item/weapon/reagent_containers/food/snacks/grown/apple = list("applejuice" = 0), + /obj/item/weapon/reagent_containers/food/snacks/grown/grapes = list("grapejuice" = 0), + /obj/item/weapon/reagent_containers/food/snacks/grown/grapes/green = list("grapejuice" = 0), ) var/list/dried_items = list( @@ -81,14 +86,36 @@ var/list/holdingitems = list() /obj/machinery/reagentgrinder/New() - ..() - beaker = new /obj/item/weapon/reagent_containers/glass/beaker/large(src) - return + ..() + beaker = new /obj/item/weapon/reagent_containers/glass/beaker/large(src) + return + +/obj/machinery/reagentgrinder/Destroy() + if(beaker) + qdel(beaker) + beaker = null + return ..() + +/obj/machinery/reagentgrinder/contents_explosion(severity, target) + if(beaker) + beaker.ex_act(severity, target) + +/obj/machinery/reagentgrinder/handle_atom_del(atom/A) + ..() + if(A == beaker) + beaker = null + update_icon() + updateUsrDialog() + +/obj/machinery/reagentgrinder/deconstruct(disassembled = TRUE) + new /obj/item/stack/sheet/metal (loc, 3) + qdel(src) /obj/machinery/reagentgrinder/update_icon() - icon_state = "juicer"+num2text(!isnull(beaker)) - return - + if(beaker) + icon_state = "juicer1" + else + icon_state = "juicer0" /obj/machinery/reagentgrinder/attackby(obj/item/I, mob/user, params) if(default_unfasten_wrench(user, I)) @@ -134,7 +161,7 @@ return 1 if (!is_type_in_list(I, blend_items) && !is_type_in_list(I, juice_items)) - if(user.a_intent == "harm") + if(user.a_intent == INTENT_HARM) return ..() else user << "Cannot refine into a reagent!" @@ -405,6 +432,18 @@ break remove_object(O) + //Slime Extractis + for (var/obj/item/slime_extract/O in holdingitems) + if (beaker.reagents.total_volume >= beaker.reagents.maximum_volume) + break + var/space = beaker.reagents.maximum_volume - beaker.reagents.total_volume + if (O.reagents != null) + var/amount = O.reagents.total_volume + O.reagents.trans_to(beaker, min(amount, space)) + if (O.Uses > 0) + beaker.reagents.add_reagent("slimejelly",min(20, space)) + remove_object(O) + //Everything else - Transfers reagents from it into beaker for (var/obj/item/weapon/reagent_containers/O in holdingitems) if (beaker.reagents.total_volume >= beaker.reagents.maximum_volume) diff --git a/code/modules/reagents/chemistry/readme.dm b/code/modules/reagents/chemistry/readme.dm index b2759dbe7a..93aff6f146 100644 --- a/code/modules/reagents/chemistry/readme.dm +++ b/code/modules/reagents/chemistry/readme.dm @@ -193,8 +193,9 @@ About Recipes: name & id Should be pretty obvious. - result - This var contains the id of the resulting reagent. + results + This var contains a list of the id(s) of the resulting reagents and their result amounts. + I recommend you set this to the total volume of all required reagent. required_reagents This is a list of ids of the required reagents. @@ -208,10 +209,6 @@ About Recipes: for the reaction. However, unlike required_reagents, catalysts are NOT consumed. They mearly have to be present in the container. - result_amount - This is the amount of the resulting reagent this recipe will produce. - I recommend you set this to the total volume of all required reagent. - required_container The container the recipe has to take place in in order to happen. Leave this blank/null if you want the reaction to happen anywhere. diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm index ef80252766..bbbdc7e4c4 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm @@ -54,10 +54,20 @@ All effects don't start immediately, but rather get worse over time; the rate is return /datum/reagent/consumable/ethanol/reaction_mob(mob/living/M, method=TOUCH, reac_volume)//Splashing people with ethanol isn't quite as good as fuel. - if(!istype(M, /mob/living)) + if(!isliving(M)) return - if(method == TOUCH || method == VAPOR) + + if(method in list(TOUCH, VAPOR, PATCH)) M.adjust_fire_stacks(reac_volume / 15) + + if(iscarbon(M)) + var/mob/living/carbon/C = M + var/power_multiplier = boozepwr / 65 // Weak alcohol has less sterilizing power + + for(var/s in C.surgeries) + var/datum/surgery/S = s + S.success_multiplier = max(0.10*power_multiplier, S.success_multiplier) + // +10% success propability on each step, useful while operating in less-than-perfect conditions return ..() /datum/reagent/consumable/ethanol/beer @@ -76,11 +86,11 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/beer/green/on_mob_life(mob/living/M) if(M.color != color) - M.color = color + M.add_atom_colour(color, TEMPORARY_COLOUR_PRIORITY) return ..() /datum/reagent/consumable/ethanol/beer/green/on_mob_delete(mob/living/M) - M.color = initial(M.color) + M.remove_atom_colour(TEMPORARY_COLOUR_PRIORITY, color) /datum/reagent/consumable/ethanol/kahlua name = "Kahlua" @@ -140,7 +150,7 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/bilk/on_mob_life(mob/living/M) if(M.getBruteLoss() && prob(10)) - M.heal_organ_damage(1,0, 0) + M.heal_bodypart_damage(1,0, 0) . = 1 return ..() || . @@ -186,7 +196,7 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/wine name = "Wine" id = "wine" - description = "An premium alcoholic beverage made from distilled grape juice." + description = "A premium alcoholic beverage made from distilled grape juice." color = "#7E4043" // rgb: 126, 64, 67 boozepwr = 35 @@ -207,7 +217,7 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/cognac name = "Cognac" id = "cognac" - description = "A sweet and strongly alchoholic drink, made after numerous distillations and years of maturing. Classy as fornication." + description = "A sweet and strongly alcoholic drink, made after numerous distillations and years of maturing. Classy as fornication." color = "#AB3C05" // rgb: 171, 60, 5 boozepwr = 75 @@ -226,14 +236,14 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/hooch name = "Hooch" id = "hooch" - description = "Either someone's failure at cocktail making or attempt in alchohol production. In any case, do you really want to drink that?" + description = "Either someone's failure at cocktail making or attempt in alcohol production. In any case, do you really want to drink that?" color = "#664300" // rgb: 102, 67, 0 boozepwr = 100 /datum/reagent/consumable/ethanol/ale name = "Ale" id = "ale" - description = "A dark alchoholic beverage made by malted barley and yeast." + description = "A dark alcoholic beverage made with malted barley and yeast." color = "#664300" // rgb: 102, 67, 0 boozepwr = 65 @@ -331,7 +341,7 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/brave_bull name = "Brave Bull" id = "bravebull" - description = "It's just as effective as Dutch-Courage!." + description = "It's just as effective as Dutch-Courage!" color = "#664300" // rgb: 102, 67, 0 boozepwr = 80 @@ -589,7 +599,7 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/andalusia name = "Andalusia" id = "andalusia" - description = "A nice, strange named drink." + description = "A nice, strangely named drink." color = "#664300" // rgb: 102, 67, 0 boozepwr = 40 @@ -670,8 +680,8 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 60 /datum/reagent/consumable/ethanol/bananahonk/on_mob_life(mob/living/M) - if( ( istype(M, /mob/living/carbon/human) && M.job in list("Clown") ) || istype(M, /mob/living/carbon/monkey) ) - M.heal_organ_damage(1,1, 0) + if((ishuman(M) && M.job in list("Clown") ) || ismonkey(M)) + M.heal_bodypart_damage(1,1, 0) . = 1 return ..() || . @@ -684,8 +694,8 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 59 //Proof that clowns are better than mimes right here /datum/reagent/consumable/ethanol/silencer/on_mob_life(mob/living/M) - if(istype(M, /mob/living/carbon/human) && M.job in list("Mime")) - M.heal_organ_damage(1,1) + if(ishuman(M) && M.job in list("Mime")) + M.heal_bodypart_damage(1,1) . = 1 return ..() || . @@ -715,7 +725,7 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/fetching_fizz //A reference to one of my favorite games of all time. Pulls nearby ores to the imbiber! name = "Fetching Fizz" id = "fetching_fizz" - description = "Whiskey sour/iron/uranium mixture resulting in highly magnetic slurry. Mild alcohol content." //Requires no alcohol to make but has alcohol anyway because ~magic~ + description = "Whiskey sour/iron/uranium mixture resulting in a highly magnetic slurry. Mild alcohol content." //Requires no alcohol to make but has alcohol anyway because ~magic~ color = rgb(255, 91, 15) boozepwr = 10 metabolization_rate = 0.1 * REAGENTS_METABOLISM @@ -750,3 +760,126 @@ All effects don't start immediately, but rather get worse over time; the rate is description = "Unidentifiable mixture. Unmeasurably high alcohol content." color = rgb(51, 19, 3) //Sickly brown boozepwr = 300 //I warned you + + +/datum/reagent/consumable/ethanol/atomicbomb + name = "Atomic Bomb" + id = "atomicbomb" + description = "Nuclear proliferation never tasted so good." + color = "#666300" // rgb: 102, 99, 0 + boozepwr = 0 //custom drunk effect + +/datum/reagent/consumable/ethanol/atomicbomb/on_mob_life(mob/living/M) + M.set_drugginess(50) + M.confused = max(M.confused+2,0) + M.Dizzy(10) + if (!M.slurring) + M.slurring = 1 + M.slurring += 3 + switch(current_cycle) + if(51 to 200) + M.Sleeping(5, 0) + . = 1 + if(201 to INFINITY) + M.AdjustSleeping(2, 0) + M.adjustToxLoss(2, 0) + . = 1 + ..() + +/datum/reagent/consumable/ethanol/gargle_blaster + name = "Pan-Galactic Gargle Blaster" + id = "gargleblaster" + description = "Whoah, this stuff looks volatile!" + color = "#664300" // rgb: 102, 67, 0 + boozepwr = 0 //custom drunk effect + +/datum/reagent/consumable/ethanol/gargle_blaster/on_mob_life(mob/living/M) + M.dizziness +=6 + switch(current_cycle) + if(15 to 45) + if(!M.slurring) + M.slurring = 1 + M.slurring += 3 + if(45 to 55) + if(prob(50)) + M.confused = max(M.confused+3,0) + if(55 to 200) + M.set_drugginess(55) + if(200 to INFINITY) + M.adjustToxLoss(2, 0) + . = 1 + ..() + +/datum/reagent/consumable/ethanol/neurotoxin + name = "Neurotoxin" + id = "neurotoxin" + description = "A strong neurotoxin that puts the subject into a death-like state." + color = "#2E2E61" // rgb: 46, 46, 97 + boozepwr = 0 //custom drunk effect + +/datum/reagent/consumable/ethanol/neurotoxin/on_mob_life(mob/living/carbon/M) + M.Weaken(3, 1, 0) + M.dizziness +=6 + switch(current_cycle) + if(15 to 45) + if(!M.slurring) + M.slurring = 1 + M.slurring += 3 + if(45 to 55) + if(prob(50)) + M.confused = max(M.confused+3,0) + if(55 to 200) + M.set_drugginess(55) + if(200 to INFINITY) + M.adjustToxLoss(2, 0) + ..() + . = 1 + +/datum/reagent/consumable/ethanol/hippies_delight + name = "Hippie's Delight" + id = "hippiesdelight" + description = "You just don't get it maaaan." + color = "#664300" // rgb: 102, 67, 0 + nutriment_factor = 0 + boozepwr = 0 //custom drunk effect + metabolization_rate = 0.2 * REAGENTS_METABOLISM + +/datum/reagent/consumable/ethanol/hippies_delight/on_mob_life(mob/living/M) + if (!M.slurring) + M.slurring = 1 + switch(current_cycle) + if(1 to 5) + M.Dizzy(10) + M.set_drugginess(30) + if(prob(10)) + M.emote(pick("twitch","giggle")) + if(5 to 10) + M.Jitter(20) + M.Dizzy(20) + M.set_drugginess(45) + if(prob(20)) + M.emote(pick("twitch","giggle")) + if (10 to 200) + M.Jitter(40) + M.Dizzy(40) + M.set_drugginess(60) + if(prob(30)) + M.emote(pick("twitch","giggle")) + if(200 to INFINITY) + M.Jitter(60) + M.Dizzy(60) + M.set_drugginess(75) + if(prob(40)) + M.emote(pick("twitch","giggle")) + if(prob(30)) + M.adjustToxLoss(2, 0) + . = 1 + ..() + +/datum/reagent/consumable/ethanol/eggnog + name = "Eggnog" + id = "eggnog" + description = "For enjoying the most wonderful time of the year." + color = "#fcfdc6" // rgb: 252, 253, 198 + nutriment_factor = 2 * REAGENTS_METABOLISM + boozepwr = 1 \ No newline at end of file diff --git a/code/modules/reagents/chemistry/reagents/blob_reagents.dm b/code/modules/reagents/chemistry/reagents/blob_reagents.dm index efd4a585fc..1ce7341a3f 100644 --- a/code/modules/reagents/chemistry/reagents/blob_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/blob_reagents.dm @@ -5,73 +5,51 @@ color = "#FFFFFF" var/complementary_color = "#000000" //a color that's complementary to the normal blob color var/shortdesc = null //just damage and on_mob effects, doesn't include special, blob-tile only effects + var/effectdesc = null //any long, blob-tile specific effects var/analyzerdescdamage = "Unknown. Report this bug to a coder, or just adminhelp." var/analyzerdesceffect = "N/A" var/blobbernaut_message = "slams" //blobbernaut attack verb var/message = "The blob strikes you" //message sent to any mob hit by the blob var/message_living = null //extension to first mob sent to only living mobs i.e. silicons have no skin to be burnt + can_synth = 0 + +/datum/reagent/blob/proc/send_message(mob/living/M) + var/totalmessage = message + if(message_living && !issilicon(M)) + totalmessage += message_living + totalmessage += "!" + M << "[totalmessage]" /datum/reagent/blob/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O) if(M.stat == DEAD || istype(M, /mob/living/simple_animal/hostile/blob)) return 0 //the dead, and blob mobs, don't cause reactions return round(reac_volume * min(1.5 - touch_protection, 1), 0.1) //full touch protection means 50% volume, any prot below 0.5 means 100% volume. -/datum/reagent/blob/proc/damage_reaction(obj/effect/blob/B, original_health, damage, damage_type, cause) //when the blob takes damage, do this +/datum/reagent/blob/proc/damage_reaction(obj/structure/blob/B, damage, damage_type, damage_flag) //when the blob takes damage, do this return damage -/datum/reagent/blob/proc/death_reaction(obj/effect/blob/B, cause) //when a blob dies, do this +/datum/reagent/blob/proc/death_reaction(obj/structure/blob/B, damage_flag) //when a blob dies, do this return -/datum/reagent/blob/proc/expand_reaction(obj/effect/blob/B, obj/effect/blob/newB, turf/T) //when the blob expands, do this +/datum/reagent/blob/proc/expand_reaction(obj/structure/blob/B, obj/structure/blob/newB, turf/T, mob/camera/blob/O) //when the blob expands, do this return -/datum/reagent/blob/proc/tesla_reaction(obj/effect/blob/B, power) //when the blob is hit by a tesla bolt, do this +/datum/reagent/blob/proc/tesla_reaction(obj/structure/blob/B, power) //when the blob is hit by a tesla bolt, do this return 1 //return 0 to ignore damage -/datum/reagent/blob/proc/extinguish_reaction(obj/effect/blob/B) //when the blob is hit with water, do this +/datum/reagent/blob/proc/extinguish_reaction(obj/structure/blob/B) //when the blob is hit with water, do this return -/datum/reagent/blob/proc/emp_reaction(obj/effect/blob/B, severity) //when the blob is hit with an emp, do this +/datum/reagent/blob/proc/emp_reaction(obj/structure/blob/B, severity) //when the blob is hit with an emp, do this return -//does low toxin damage, but creates fragile spores when expanding or killed by weak attacks -/datum/reagent/blob/sporing_pods - name = "Sporing Pods" - id = "sporing_pods" - description = "will do very low toxin damage and produce fragile spores when killed or on expanding." - shortdesc = "will do very low toxin damage." - analyzerdescdamage = "Does very low toxin damage." - analyzerdesceffect = "Produces spores when expanding and when killed." - color = "#E88D5D" - complementary_color = "#5DB8E8" - message_living = ", and you feel sick" - -/datum/reagent/blob/sporing_pods/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O) - reac_volume = ..() - M.apply_damage(0.2*reac_volume, TOX) - -/datum/reagent/blob/sporing_pods/damage_reaction(obj/effect/blob/B, original_health, damage, damage_type, cause) - if(!isnull(cause) && damage <= 20 && original_health - damage <= 0 && prob(30)) //if the cause isn't fire or a bomb, the damage is less than 21, we're going to die from that damage, 30% chance of a shitty spore. - B.visible_message("A spore floats free of the blob!") - var/mob/living/simple_animal/hostile/blob/blobspore/weak/BS = new/mob/living/simple_animal/hostile/blob/blobspore/weak(B.loc) - BS.overmind = B.overmind - BS.update_icons() - B.overmind.blob_mobs.Add(BS) - return ..() - -/datum/reagent/blob/sporing_pods/expand_reaction(obj/effect/blob/B, obj/effect/blob/newB, turf/T) - if(prob(12)) - var/mob/living/simple_animal/hostile/blob/blobspore/weak/BS = new/mob/living/simple_animal/hostile/blob/blobspore/weak(T) - BS.overmind = B.overmind - BS.update_icons() - newB.overmind.blob_mobs.Add(BS) - //does brute damage but can replicate when damaged and has a chance of expanding again /datum/reagent/blob/replicating_foam name = "Replicating Foam" id = "replicating_foam" - description = "will do medium brute damage, take increased brute damage, and expand when burned." + description = "will do medium brute damage and occasionally expand again when expanding." shortdesc = "will do medium brute damage." + effectdesc = "will also expand when attacked with burn damage, but takes more brute damage." analyzerdescdamage = "Does medium brute damage." analyzerdesceffect = "Expands when attacked with burn damage, will occasionally expand again when expanding, and is fragile to brute damage." color = "#7B5A57" @@ -79,30 +57,61 @@ /datum/reagent/blob/replicating_foam/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O) reac_volume = ..() - M.apply_damage(0.5*reac_volume, BRUTE) + M.apply_damage(0.7*reac_volume, BRUTE) -/datum/reagent/blob/replicating_foam/damage_reaction(obj/effect/blob/B, original_health, damage, damage_type, cause) - var/effectivedamage = damage +/datum/reagent/blob/replicating_foam/damage_reaction(obj/structure/blob/B, damage, damage_type, damage_flag) if(damage_type == BRUTE) - effectivedamage = damage * 2 - if(damage_type == BURN && effectivedamage > 0 && original_health - effectivedamage > 0 && prob(75)) - var/obj/effect/blob/newB = B.expand(null, null, 0) + damage = damage * 2 + else if(damage_type == BURN && damage > 0 && B.obj_integrity - damage > 0 && prob(60)) + var/obj/structure/blob/newB = B.expand(null, null, 0) if(newB) - newB.health = original_health - effectivedamage - newB.check_health(cause) + newB.obj_integrity = B.obj_integrity - damage newB.update_icon() - return effectivedamage + return ..() -/datum/reagent/blob/replicating_foam/expand_reaction(obj/effect/blob/B, obj/effect/blob/newB, turf/T) +/datum/reagent/blob/replicating_foam/expand_reaction(obj/structure/blob/B, obj/structure/blob/newB, turf/T, mob/camera/blob/O) if(prob(30)) - newB.expand() //do it again! + newB.expand(null, null, 0) //do it again! + +//does massive brute and burn damage, but can only expand manually +/datum/reagent/blob/networked_fibers + name = "Networked Fibers" + id = "networked_fibers" + description = "will do high brute and burn damage but non-manual expansion will only generate resources." + shortdesc = "will do high brute and burn damage." + effectdesc = "will move your core when manually expanding near it." + analyzerdescdamage = "Does high brute and burn damage." + analyzerdesceffect = "Is highly mobile and generates resources rapidly." + color = "#CDC0B0" + complementary_color = "#FFF68F" + +/datum/reagent/blob/networked_fibers/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O) + reac_volume = ..() + M.apply_damage(0.6*reac_volume, BRUTE) + if(M) + M.apply_damage(0.6*reac_volume, BURN) + +/datum/reagent/blob/networked_fibers/expand_reaction(obj/structure/blob/B, obj/structure/blob/newB, turf/T, mob/camera/blob/O) + if(!O && newB.overmind) + if(!istype(B, /obj/structure/blob/node)) + newB.overmind.add_points(1) + qdel(newB) + else + var/area/A = get_area(T) + if(!isspaceturf(T) && !istype(A, /area/shuttle)) + for(var/obj/structure/blob/core/C in range(1, newB)) + if(C.overmind == O) + newB.forceMove(get_turf(C)) + C.forceMove(T) + C.setDir(get_dir(newB, C)) + O.add_points(1) //does brute damage, shifts away when damaged /datum/reagent/blob/shifting_fragments name = "Shifting Fragments" id = "shifting_fragments" - description = "will do medium brute damage and shift away from damage." - shortdesc = "will do medium brute damage." + description = "will do medium brute damage." + effectdesc = "will also cause blob parts to shift away when attacked." analyzerdescdamage = "Does medium brute damage." analyzerdesceffect = "When attacked, may shift away from the attacker." color = "#C8963C" @@ -110,123 +119,79 @@ /datum/reagent/blob/shifting_fragments/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O) reac_volume = ..() - M.apply_damage(0.6*reac_volume, BRUTE) + M.apply_damage(0.7*reac_volume, BRUTE) -/datum/reagent/blob/shifting_fragments/expand_reaction(obj/effect/blob/B, obj/effect/blob/newB, turf/T) - if(istype(B, /obj/effect/blob/normal) || (istype(B, /obj/effect/blob/shield) && prob(20))) +/datum/reagent/blob/shifting_fragments/expand_reaction(obj/structure/blob/B, obj/structure/blob/newB, turf/T, mob/camera/blob/O) + if(istype(B, /obj/structure/blob/normal) || (istype(B, /obj/structure/blob/shield) && prob(25))) newB.forceMove(get_turf(B)) B.forceMove(T) -/datum/reagent/blob/shifting_fragments/damage_reaction(obj/effect/blob/B, original_health, damage, damage_type, cause) - if(cause && damage > 0 && original_health - damage > 0 && prob(40)) +/datum/reagent/blob/shifting_fragments/damage_reaction(obj/structure/blob/B, damage, damage_type, damage_flag) + if((damage_flag == "melee" || damage_flag == "bullet" || damage_flag == "laser") && damage > 0 && B.obj_integrity - damage > 0 && prob(60-damage)) var/list/blobstopick = list() - for(var/obj/effect/blob/OB in orange(1, B)) - if((istype(OB, /obj/effect/blob/normal) || istype(OB, /obj/effect/blob/shield)) && OB.overmind && OB.overmind.blob_reagent_datum.id == B.overmind.blob_reagent_datum.id) + for(var/obj/structure/blob/OB in orange(1, B)) + if((istype(OB, /obj/structure/blob/normal) || (istype(OB, /obj/structure/blob/shield) && prob(25))) && OB.overmind && OB.overmind.blob_reagent_datum.id == B.overmind.blob_reagent_datum.id) blobstopick += OB //as long as the blob picked is valid; ie, a normal or shield blob that has the same chemical as we do, we can swap with it if(blobstopick.len) - var/obj/effect/blob/targeted = pick(blobstopick) //randomize the blob chosen, because otherwise it'd tend to the lower left + var/obj/structure/blob/targeted = pick(blobstopick) //randomize the blob chosen, because otherwise it'd tend to the lower left var/turf/T = get_turf(targeted) targeted.forceMove(get_turf(B)) B.forceMove(T) //swap the blobs return ..() -//does low burn and a lot of stamina damage, immune to tesla bolts, weak to EMP -/datum/reagent/blob/energized_fibers - name = "Energized Fibers" - id = "energized_fibers" - description = "will do low burn and high stamina damage and conduct electricity, but is weak to EMPs." - shortdesc = "will do low burn and high stamina damage." - analyzerdescdamage = "Does low burn damage and massively drains stamina." - analyzerdesceffect = "Is immune to electricity and will easily conduct it, but is weak to EMPs." - color = "#EFD65A" - complementary_color = "#5A73EF" - blobbernaut_message = "shocks" - message_living = ", and you feel a strong tingling sensation" - -/datum/reagent/blob/energized_fibers/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O) - reac_volume = ..() - M.apply_damage(0.6*reac_volume, BURN) - if(M) - M.adjustStaminaLoss(0.6*reac_volume) - -/datum/reagent/blob/energized_fibers/tesla_reaction(obj/effect/blob/B, power) - return 0 - -/datum/reagent/blob/energized_fibers/emp_reaction(obj/effect/blob/B, severity) - var/damage = rand(30, 50) - severity * rand(10, 15) - B.take_damage(damage, BURN) - -//sets you on fire, does burn damage, weak to water -/datum/reagent/blob/boiling_oil - name = "Boiling Oil" - id = "boiling_oil" - description = "will do medium burn damage and set targets on fire, but is weak to water." - shortdesc = "will do medium burn damage and set targets on fire." +//sets you on fire, does burn damage, explodes into flame when burnt, weak to water +/datum/reagent/blob/blazing_oil + name = "Blazing Oil" + id = "blazing_oil" + description = "will do medium burn damage and set targets on fire." + effectdesc = "will also release bursts of flame when burnt, but takes damage from water." analyzerdescdamage = "Does medium burn damage and sets targets on fire." - analyzerdesceffect = "Takes damage from water and other extinguishing liquids." + analyzerdesceffect = "Releases fire when burnt, but takes damage from water and other extinguishing liquids." color = "#B68D00" - complementary_color = "#0029B6" + complementary_color = "#BE5532" blobbernaut_message = "splashes" message = "The blob splashes you with burning oil" message_living = ", and you feel your skin char and melt" -/datum/reagent/blob/boiling_oil/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O) +/datum/reagent/blob/blazing_oil/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O) reac_volume = ..() M.adjust_fire_stacks(round(reac_volume/10)) M.IgniteMob() if(M) - M.apply_damage(0.6*reac_volume, BURN) + M.apply_damage(0.8*reac_volume, BURN) if(iscarbon(M)) M.emote("scream") -/datum/reagent/blob/boiling_oil/extinguish_reaction(obj/effect/blob/B) - B.take_damage(rand(1, 3), BURN) +/datum/reagent/blob/blazing_oil/extinguish_reaction(obj/structure/blob/B) + B.take_damage(rand(1, 3), BURN, "energy") -//does burn and toxin damage, explodes into flame when hit with burn damage -/datum/reagent/blob/flammable_goo - name = "Flammable Goo" - id = "flammable_goo" - description = "will do medium burn and toxin damage, make targets flammable, and ignite when burned." - shortdesc = "will do medium burn and toxin damage, and make targets flammable." - analyzerdescdamage = "Does medium burn damage, medium toxin damage, and makes targets flammable." - analyzerdesceffect = "Releases bursts of flame when attacked with burn damage, but takes additional burn damage." - color = "#BE5532" - complementary_color = "#329BBE" - blobbernaut_message = "splashes" - message = "The blob splashes you with a thin goo" - message_living = ", and you smell a faint, sweet scent" - -/datum/reagent/blob/flammable_goo/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O) - reac_volume = ..() - M.adjust_fire_stacks(round(reac_volume/8)) //apply, but don't ignite - M.apply_damage(0.4*reac_volume, TOX) - if(M) - M.apply_damage(0.4*reac_volume, BURN) - -/datum/reagent/blob/flammable_goo/damage_reaction(obj/effect/blob/B, original_health, damage, damage_type, cause) - if(cause && damage_type == BURN) +/datum/reagent/blob/blazing_oil/damage_reaction(obj/structure/blob/B, damage, damage_type, damage_flag) + if(damage_type == BURN && damage_flag != "energy") for(var/turf/open/T in range(1, B)) - var/obj/effect/blob/C = locate() in T + var/obj/structure/blob/C = locate() in T if(!(C && C.overmind && C.overmind.blob_reagent_datum.id == B.overmind.blob_reagent_datum.id) && prob(80)) PoolOrNew(/obj/effect/hotspot, T) - return damage * 1.5 + if(damage_flag == "fire") + return 0 return ..() -//does toxin damage, targets think they're not hurt at all +//does toxin damage, hallucination, targets think they're not hurt at all /datum/reagent/blob/regenerative_materia name = "Regenerative Materia" id = "regenerative_materia" - description = "will do low toxin damage and cause targets to believe they are fully healed." - analyzerdescdamage = "Does low toxin damage and injects a toxin that causes the target to believe they are fully healed." + description = "will do toxin damage and cause targets to believe they are fully healed." + analyzerdescdamage = "Does toxin damage and injects a toxin that causes the target to believe they are fully healed." color = "#C8A5DC" - complementary_color = "#B9DCA5" + complementary_color = "#CD7794" message_living = ", and you feel alive" /datum/reagent/blob/regenerative_materia/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O) reac_volume = ..() + M.adjust_drugginess(reac_volume) if(M.reagents) M.reagents.add_reagent("regenerative_materia", 0.2*reac_volume) - M.apply_damage(0.5*reac_volume, TOX) + M.reagents.add_reagent("spore", 0.2*reac_volume) + M.apply_damage(0.7*reac_volume, TOX) /datum/reagent/blob/regenerative_materia/on_mob_life(mob/living/M) M.adjustToxLoss(1*REM) @@ -241,211 +206,151 @@ N.hal_screwyhud = 0 ..() -//toxin, hallucination, and some bonus spore toxin -/datum/reagent/blob/hallucinogenic_nectar - name = "Hallucinogenic Nectar" - id = "hallucinogenic_nectar" - description = "will do low toxin damage, vivid hallucinations, and inject targets with toxins." - analyzerdescdamage = "Does low toxin damage and injects a toxin that causes vivid hallucinations and blurried vision." - color = "#CD7794" - complementary_color = "#77CDB0" - blobbernaut_message = "splashes" - message = "The blob splashes you with sticky nectar" - message_living = ", and you feel really good" - -/datum/reagent/blob/hallucinogenic_nectar/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O) - reac_volume = ..() - M.hallucination += reac_volume - M.adjust_drugginess(reac_volume) - - if(M.reagents) - M.reagents.add_reagent("spore", 0.2*reac_volume) - M.apply_damage(0.5*reac_volume, TOX) - -//kills sleeping targets and turns them into blob zombies -/datum/reagent/blob/zombifying_feelers - name = "Zombifying Feelers" - id = "zombifying_feelers" - description = "will do low toxin damage and turn sleeping targets into blob zombies." - analyzerdescdamage = "Does low toxin damage and kills unconscious humans, turning them into blob zombies." - color = "#828264" - complementary_color = "#646482" +//kills sleeping targets and turns them into blob zombies, produces fragile spores when killed or on expanding +/datum/reagent/blob/zombifying_pods + name = "Zombifying Pods" + id = "zombifying_pods" + description = "will do very low toxin damage and harvest sleeping targets for additional resources and a blob zombie." + effectdesc = "will also produce fragile spores when killed and on expanding." + shortdesc = "will do very low toxin damage and harvest sleeping targets for additional resources(for your overmind) and a blob zombie." + analyzerdescdamage = "Does very low toxin damage and kills unconscious humans, turning them into blob zombies." + analyzerdesceffect = "Produces spores when expanding and when killed." + color = "#E88D5D" + complementary_color = "#823ABB" message_living = ", and you feel tired" -/datum/reagent/blob/zombifying_feelers/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O) +/datum/reagent/blob/zombifying_pods/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O) reac_volume = ..() + M.apply_damage(0.6*reac_volume, TOX) if(O && ishuman(M) && M.stat == UNCONSCIOUS) M.death() //sleeping in a fight? bad plan. + var/points = rand(5, 10) var/mob/living/simple_animal/hostile/blob/blobspore/BS = new/mob/living/simple_animal/hostile/blob/blobspore/weak(get_turf(M)) BS.overmind = O BS.update_icons() O.blob_mobs.Add(BS) BS.Zombify(M) - if(M) - M.apply_damage(0.4*reac_volume, TOX) + O.add_points(points) + O << "Gained [points] resources from the zombification of [M]." -//toxin, stamina, and some bonus spore toxin -/datum/reagent/blob/envenomed_filaments - name = "Envenomed Filaments" - id = "envenomed_filaments" - description = "will do medium toxin and stamina damage, and inject targets with toxins." - analyzerdescdamage = "Does medium toxin damage, drains stamina, and injects a weak toxin." - color = "#9ACD32" - complementary_color = "#6532CD" - message_living = ", and you feel sick and nauseated" +/datum/reagent/blob/zombifying_pods/damage_reaction(obj/structure/blob/B, damage, damage_type, damage_flag) + if((damage_flag == "melee" || damage_flag == "bullet" || damage_flag == "laser") && damage <= 20 && B.obj_integrity - damage <= 0 && prob(30)) //if the cause isn't fire or a bomb, the damage is less than 21, we're going to die from that damage, 20% chance of a shitty spore. + B.visible_message("A spore floats free of the blob!") + var/mob/living/simple_animal/hostile/blob/blobspore/weak/BS = new/mob/living/simple_animal/hostile/blob/blobspore/weak(B.loc) + BS.overmind = B.overmind + BS.update_icons() + B.overmind.blob_mobs.Add(BS) + return ..() -/datum/reagent/blob/envenomed_filaments/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O) - reac_volume = ..() - if(M.reagents) - M.reagents.add_reagent("spore", 0.2*reac_volume) - M.apply_damage(0.4*reac_volume, TOX) - if(M) - M.adjustStaminaLoss(0.4*reac_volume) +/datum/reagent/blob/zombifying_pods/expand_reaction(obj/structure/blob/B, obj/structure/blob/newB, turf/T, mob/camera/blob/O) + if(prob(10)) + var/mob/living/simple_animal/hostile/blob/blobspore/weak/BS = new/mob/living/simple_animal/hostile/blob/blobspore/weak(T) + BS.overmind = B.overmind + BS.update_icons() + newB.overmind.blob_mobs.Add(BS) -//does brute, fire, and toxin over a few seconds -/datum/reagent/blob/poisonous_strands - name = "Poisonous Strands" - id = "poisonous_strands" - description = "will inject targets with poison." - analyzerdescdamage = "Injects a highly lethal poison that will gradually liquify the target's internal organs." - color = "#7D6EB4" - complementary_color = "#A5B46E" - blobbernaut_message = "injects" - message_living = ", and you feel like your insides are melting" +//does tons of oxygen damage and a little stamina, immune to tesla bolts, weak to EMP +/datum/reagent/blob/energized_jelly + name = "Energized Jelly" + id = "energized_jelly" + description = "will cause low stamina and high oxygen damage, and cause targets to be unable to breathe." + effectdesc = "will also conduct electricity, but takes damage from EMPs." + analyzerdescdamage = "Does low stamina damage, high oxygen damage, and prevents targets from breathing." + analyzerdesceffect = "Is immune to electricity and will easily conduct it, but is weak to EMPs." + color = "#EFD65A" + complementary_color = "#00E5B1" + message_living = ", and you feel a horrible tingling sensation" + var/datum/effect_system/spark_spread/spark_system = new/datum/effect_system/spark_spread() -/datum/reagent/blob/poisonous_strands/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O) - reac_volume = ..() - if(M.reagents) - M.reagents.add_reagent("poisonous_strands", 0.12*reac_volume) - -/datum/reagent/blob/poisonous_strands/on_mob_life(mob/living/M) - M.adjustBruteLoss(1.5*REM) - M.adjustFireLoss(1.5*REM) - M.adjustToxLoss(1.5*REM) - ..() - -//does oxygen damage, randomly pushes or pulls targets -/datum/reagent/blob/cyclonic_grid - name = "Cyclonic Grid" - id = "cyclonic_grid" - description = "will cause high oxygen damage and randomly throw targets to or from it." - analyzerdescdamage = "Does high oxygen damage and randomly throws targets at or away from it." - color = "#9BCD9B" - complementary_color = "#CD9BCD" - message = "The blob blasts you with a gust of air" - message_living = ", and you can't catch your breath" - -/datum/reagent/blob/cyclonic_grid/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O) - reac_volume = ..() - reagent_vortex(M, rand(0, 1), reac_volume) - M.losebreath += round(0.05*reac_volume) - M.apply_damage(0.6*reac_volume, OXY) - -//does tons of oxygen damage and a little brute -/datum/reagent/blob/lexorin_jelly - name = "Lexorin Jelly" - id = "lexorin_jelly" - description = "will cause low brute and high oxygen damage, and cause targets to be unable to breathe." - analyzerdescdamage = "Does low brute damage, high oxygen damage, and prevents targets from breathing." - color = "#00E5B1" - complementary_color = "#E50034" - message_living = ", and your lungs feel heavy and weak" - -/datum/reagent/blob/lexorin_jelly/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O) +/datum/reagent/blob/energized_jelly/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O) reac_volume = ..() M.losebreath += round(0.2*reac_volume) - M.apply_damage(0.2*reac_volume, BRUTE) + M.adjustStaminaLoss(0.4*reac_volume) if(M) M.apply_damage(0.6*reac_volume, OXY) +/datum/reagent/blob/energized_jelly/damage_reaction(obj/structure/blob/B, damage, damage_type, damage_flag) + if((damage_flag == "melee" || damage_flag == "bullet" || damage_flag == "laser") && B.obj_integrity - damage <= 0 && prob(10)) + spark_system.set_up(rand(2, 4), 0, B) + spark_system.start() + return ..() + +/datum/reagent/blob/energized_jelly/tesla_reaction(obj/structure/blob/B, power) + return 0 + +/datum/reagent/blob/energized_jelly/emp_reaction(obj/structure/blob/B, severity) + var/damage = rand(30, 50) - severity * rand(10, 15) + B.take_damage(damage, BURN, "energy") + //does aoe brute damage when hitting targets, is immune to explosions /datum/reagent/blob/explosive_lattice name = "Explosive Lattice" id = "explosive_lattice" - description = "will do brute damage in an area around targets and is resistant to explosions." - shortdesc = "will do brute damage in an area around targets." + description = "will do brute damage in an area around targets." + effectdesc = "will also resist explosions, but takes increased damage from fire and other energy sources." analyzerdescdamage = "Does medium brute damage and causes damage to everyone near its targets." - analyzerdesceffect = "Is highly resistant to explosions." + analyzerdesceffect = "Is highly resistant to explosions, but takes increased damage from fire and other energy sources." color = "#8B2500" complementary_color = "#00668B" blobbernaut_message = "blasts" message = "The blob blasts you" /datum/reagent/blob/explosive_lattice/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O) + var/initial_volume = reac_volume reac_volume = ..() if(reac_volume >= 10) //if it's not a spore cloud, bad time incoming - var/obj/effect/overlay/temp/explosion/E = PoolOrNew(/obj/effect/overlay/temp/explosion, get_turf(M)) + var/obj/effect/overlay/temp/explosion/fast/E = PoolOrNew(/obj/effect/overlay/temp/explosion/fast, get_turf(M)) E.alpha = 150 - for(var/mob/living/L in orange(M, 1)) + for(var/mob/living/L in orange(get_turf(M), 1)) if("blob" in L.faction) //no friendly fire continue - L.apply_damage(0.6*reac_volume, BRUTE) + var/aoe_volume = ..(L, TOUCH, initial_volume, 0, L.get_permeability_protection(), O) + L.apply_damage(0.4*aoe_volume, BRUTE) if(M) M.apply_damage(0.6*reac_volume, BRUTE) else - M.apply_damage(0.8*reac_volume, BRUTE) + M.apply_damage(0.6*reac_volume, BRUTE) -/datum/reagent/blob/explosive_lattice/damage_reaction(obj/effect/blob/B, original_health, damage, damage_type, cause) - if(isnull(cause)) - if(damage_type == BRUTE) - return 0 //no-sell the explosion we do not take damage - if(damage_type == BURN) - return damage * 1.5 //take more from fire, tesla, and flashbangs +/datum/reagent/blob/explosive_lattice/damage_reaction(obj/structure/blob/B, damage, damage_type, damage_flag) + if(damage_flag == "bomb") + return 0 + else if(damage_flag != "melee" || damage_flag != "bullet" || damage_flag != "laser") + return damage * 1.5 return ..() -//does semi-random brute damage and reacts to brute damage -/datum/reagent/blob/reactive_gelatin - name = "Reactive Gelatin" - id = "reactive_gelatin" - description = "will do random brute damage and react to brute damage." - shortdesc = "will do random brute damage." - analyzerdescdamage = "Does random brute damage." - analyzerdesceffect = "When attacked with brute damage, will lash out, attacking everything near it." - color = "#FFA500" - complementary_color = "#005AFF" - blobbernaut_message = "pummels" - message = "The blob pummels you" - -/datum/reagent/blob/reactive_gelatin/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O) - reac_volume = ..() - var/damage = rand(5, 35)/25 - M.apply_damage(damage*reac_volume, BRUTE) - -/datum/reagent/blob/reactive_gelatin/damage_reaction(obj/effect/blob/B, original_health, damage, damage_type, cause) - if(damage && damage_type == BRUTE && original_health - damage > 0) //is there any damage, is it brute, and will we be alive - if(isliving(cause)) - B.visible_message("The blob retaliates, lashing out!") - for(var/atom/A in range(1, B)) - A.blob_act(B) - return ..() - -//does low burn damage and stamina damage and cools targets down -/datum/reagent/blob/cryogenic_liquid - name = "Cryogenic Liquid" - id = "cryogenic_liquid" - description = "will do low burn and stamina damage, and cause targets to freeze." - analyzerdescdamage = "Does low burn damage, drains stamina, and injects targets with a freezing liquid." +//does brute, burn, and toxin damage, and cools targets down +/datum/reagent/blob/cryogenic_poison + name = "Cryogenic Poison" + id = "cryogenic_poison" + description = "will inject targets with a freezing poison that does high damage over time." + analyzerdescdamage = "Injects targets with a freezing poison that will gradually solidify the target's internal organs." color = "#8BA6E9" - complementary_color = "#E9CE8B" - blobbernaut_message = "splashes" - message = "The blob splashes you with an icy liquid" - message_living = ", and you feel cold and tired" + complementary_color = "#7D6EB4" + blobbernaut_message = "injects" + message = "The blob stabs you" + message_living = ", and you feel like your insides are solidifying" -/datum/reagent/blob/cryogenic_liquid/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O) +/datum/reagent/blob/cryogenic_poison/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O) reac_volume = ..() if(M.reagents) M.reagents.add_reagent("frostoil", 0.3*reac_volume) M.reagents.add_reagent("ice", 0.3*reac_volume) - M.apply_damage(0.4*reac_volume, BURN) - if(M) - M.adjustStaminaLoss(0.3*reac_volume) + M.reagents.add_reagent("cryogenic_poison", 0.3*reac_volume) + M.apply_damage(0.2*reac_volume, BRUTE) + +/datum/reagent/blob/cryogenic_poison/on_mob_life(mob/living/M) + M.adjustBruteLoss(0.3*REM, 0) + M.adjustFireLoss(0.3*REM, 0) + M.adjustToxLoss(0.3*REM, 0) + . = 1 + ..() //does burn damage and EMPs, slightly fragile /datum/reagent/blob/electromagnetic_web name = "Electromagnetic Web" id = "electromagnetic_web" - description = "will do low burn damage and EMP targets, but is very fragile." - shortdesc = "will do low burn damage and EMP targets." + description = "will do high burn damage and EMP targets." + effectdesc = "will also take massively increased damage and release an EMP when killed." analyzerdescdamage = "Does low burn damage and EMPs targets." analyzerdesceffect = "Is fragile to all types of damage, but takes massive damage from brute. In addition, releases a small EMP when killed." color = "#83ECEC" @@ -459,9 +364,9 @@ if(prob(reac_volume*2)) M.emp_act(2) if(M) - M.apply_damage(0.6*reac_volume, BURN) + M.apply_damage(reac_volume, BURN) -/datum/reagent/blob/electromagnetic_web/damage_reaction(obj/effect/blob/B, original_health, damage, damage_type, cause) +/datum/reagent/blob/electromagnetic_web/damage_reaction(obj/structure/blob/B, damage, damage_type, damage_flag) if(damage_type == BRUTE) //take full brute switch(B.brute_resist) if(0.5) @@ -472,16 +377,16 @@ return damage * 10 return damage * 1.25 //a laser will do 25 damage, which will kill any normal blob -/datum/reagent/blob/electromagnetic_web/death_reaction(obj/effect/blob/B, cause) - if(cause) +/datum/reagent/blob/electromagnetic_web/death_reaction(obj/structure/blob/B, damage_flag) + if(damage_flag == "melee" || damage_flag == "bullet" || damage_flag == "laser") empulse(B.loc, 1, 3) //less than screen range, so you can stand out of range to avoid it //does brute damage, bonus damage for each nearby blob, and spreads damage out /datum/reagent/blob/synchronous_mesh name = "Synchronous Mesh" id = "synchronous_mesh" - description = "will do brute damage for each nearby blob and spread damage between nearby blobs." - shortdesc = "will do brute damage for each nearby blob." + description = "will do massively increased brute damage for each blob near the target." + effectdesc = "will also spread damage between each blob near the attacked blob." analyzerdescdamage = "Does brute damage, increasing for each blob near the target." analyzerdesceffect = "When attacked, spreads damage between all blobs near the attacked blob." color = "#65ADA2" @@ -491,68 +396,58 @@ /datum/reagent/blob/synchronous_mesh/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O) reac_volume = ..() - M.apply_damage(0.1*reac_volume, BRUTE) + M.apply_damage(0.2*reac_volume, BRUTE) if(M && reac_volume) - for(var/obj/effect/blob/B in range(1, M)) //if the target is completely surrounded, this is 2.4*reac_volume bonus damage, total of 2.5*reac_volume + for(var/obj/structure/blob/B in range(1, M)) //if the target is completely surrounded, this is 2.4*reac_volume bonus damage, total of 2.6*reac_volume if(M) B.blob_attack_animation(M) //show them they're getting a bad time M.apply_damage(0.3*reac_volume, BRUTE) -/datum/reagent/blob/synchronous_mesh/damage_reaction(obj/effect/blob/B, original_health, damage, damage_type, cause) - if(!isnull(cause)) //the cause isn't fire or bombs, so split the damage +/datum/reagent/blob/synchronous_mesh/damage_reaction(obj/structure/blob/B, damage, damage_type, damage_flag) + if(damage_flag == "melee" || damage_flag == "bullet" || damage_flag == "laser") //the cause isn't fire or bombs, so split the damage var/damagesplit = 1 //maximum split is 9, reducing the damage each blob takes to 11% but doing that damage to 9 blobs - for(var/obj/effect/blob/C in orange(1, B)) - if(!istype(C, /obj/effect/blob/core) && !istype(C, /obj/effect/blob/node) && C.overmind && C.overmind.blob_reagent_datum.id == B.overmind.blob_reagent_datum.id) //if it doesn't have the same chemical or is a core or node, don't split damage to it + for(var/obj/structure/blob/C in orange(1, B)) + if(!istype(C, /obj/structure/blob/core) && !istype(C, /obj/structure/blob/node) && C.overmind && C.overmind.blob_reagent_datum.id == B.overmind.blob_reagent_datum.id) //if it doesn't have the same chemical or is a core or node, don't split damage to it damagesplit += 1 - for(var/obj/effect/blob/C in orange(1, B)) - if(!istype(C, /obj/effect/blob/core) && !istype(C, /obj/effect/blob/node) && C.overmind && C.overmind.blob_reagent_datum.id == B.overmind.blob_reagent_datum.id) //only hurt blobs that have the same overmind chemical and aren't cores or nodes - C.take_damage(damage/damagesplit, CLONE, B, 0) + for(var/obj/structure/blob/C in orange(1, B)) + if(!istype(C, /obj/structure/blob/core) && !istype(C, /obj/structure/blob/node) && C.overmind && C.overmind.blob_reagent_datum.id == B.overmind.blob_reagent_datum.id) //only hurt blobs that have the same overmind chemical and aren't cores or nodes + C.take_damage(damage/damagesplit, CLONE, 0, 0) return damage / damagesplit else return damage * 1.25 //does brute damage through armor and bio resistance -/datum/reagent/blob/penetrating_spines - name = "Penetrating Spines" - id = "penetrating_spines" +/datum/reagent/blob/reactive_spines + name = "Reactive Spines" + id = "reactive_spines" description = "will do medium brute damage through armor and bio resistance." + effectdesc = "will also react when attacked with brute damage, attacking all near the attacked blob." analyzerdescdamage = "Does medium brute damage, ignoring armor and bio resistance." - color = "#6E4664" - complementary_color = "#466E50" + analyzerdesceffect = "When attacked with brute damage, will lash out, attacking everything near it." + color = "#9ACD32" + complementary_color = "#FFA500" blobbernaut_message = "stabs" message = "The blob stabs you" -/datum/reagent/blob/penetrating_spines/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O) +/datum/reagent/blob/reactive_spines/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O) if(M.stat == DEAD || istype(M, /mob/living/simple_animal/hostile/blob)) return 0 //the dead, and blob mobs, don't cause reactions - M.adjustBruteLoss(0.7*reac_volume) + M.adjustBruteLoss(0.8*reac_volume) -/datum/reagent/blob/adaptive_nexuses - name = "Adaptive Nexuses" - id = "adaptive_nexuses" - description = "will do medium brute damage and kill unconscious targets, giving you bonus resources." - shortdesc = "will do medium brute damage and kill unconscious targets, giving your overmind bonus resources." - analyzerdescdamage = "Does medium brute damage and kills unconscious humans, reaping resources from them." - color = "#4A64C0" - complementary_color = "#823ABB" - -/datum/reagent/blob/adaptive_nexuses/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O) - reac_volume = ..() - if(O && ishuman(M) && M.stat == UNCONSCIOUS) - PoolOrNew(/obj/effect/overlay/temp/revenant, get_turf(M)) - var/points = rand(5, 10) - O.add_points(points) - O << "Gained [points] resources from the death of [M]." - M.death() - if(M) - M.apply_damage(0.5*reac_volume, BRUTE) +/datum/reagent/blob/reactive_spines/damage_reaction(obj/structure/blob/B, damage, damage_type, damage_flag) + if(damage && damage_type == BRUTE && B.obj_integrity - damage > 0) //is there any damage, is it brute, and will we be alive + if(damage_flag == "melee") + B.visible_message("The blob retaliates, lashing out!") + for(var/atom/A in range(1, B)) + A.blob_act(B) + return ..() //does low brute damage, oxygen damage, and stamina damage and wets tiles when damaged /datum/reagent/blob/pressurized_slime name = "Pressurized Slime" id = "pressurized_slime" - description = "will do low brute, oxygen, and stamina damage, and wet tiles when damaged or killed." - shortdesc = "will do low brute, oxygen, and stamina damage, and wet tiles under targets." + description = "will do low brute, oxygen, and stamina damage, and wet tiles under targets." + effectdesc = "will also wet tiles near blobs that are attacked or killed." analyzerdescdamage = "Does low brute damage, low oxygen damage, drains stamina, and wets tiles under targets, extinguishing them." analyzerdesceffect = "When attacked or killed, wets nearby tiles, extinguishing anything on them." color = "#AAAABB" @@ -568,22 +463,23 @@ T.MakeSlippery(min_wet_time = 10, wet_time_to_add = 5) M.adjust_fire_stacks(-(reac_volume / 10)) M.ExtinguishMob() - M.apply_damage(0.1*reac_volume, BRUTE) + M.apply_damage(0.4*reac_volume, BRUTE) if(M) - M.apply_damage(0.3*reac_volume, OXY) + M.apply_damage(0.4*reac_volume, OXY) if(M) - M.adjustStaminaLoss(0.3*reac_volume) + M.adjustStaminaLoss(0.2*reac_volume) -/datum/reagent/blob/pressurized_slime/damage_reaction(obj/effect/blob/B, original_health, damage, damage_type, cause) - extinguisharea(B, damage) +/datum/reagent/blob/pressurized_slime/damage_reaction(obj/structure/blob/B, damage, damage_type, damage_flag) + if((damage_flag == "melee" || damage_flag == "bullet" || damage_flag == "laser") || damage_type != BURN) + extinguisharea(B, damage) return ..() -/datum/reagent/blob/pressurized_slime/death_reaction(obj/effect/blob/B, cause) - if(!isnull(cause)) - B.visible_message("The blob ruptures, spraying the area with liquid!") - extinguisharea(B, 50) +/datum/reagent/blob/pressurized_slime/death_reaction(obj/structure/blob/B, damage_flag) + if(damage_flag == "melee" || damage_flag == "bullet" || damage_flag == "laser") + B.visible_message("The blob ruptures, spraying the area with liquid!") + extinguisharea(B, 50) -/datum/reagent/blob/pressurized_slime/proc/extinguisharea(obj/effect/blob/B, probchance) +/datum/reagent/blob/pressurized_slime/proc/extinguisharea(obj/structure/blob/B, probchance) for(var/turf/open/T in range(1, B)) if(prob(probchance)) T.MakeSlippery(min_wet_time = 10, wet_time_to_add = 5) @@ -592,75 +488,3 @@ for(var/mob/living/L in T) L.adjust_fire_stacks(-2.5) L.ExtinguishMob() - -//does brute damage and throws or pulls nearby objects at the target -/datum/reagent/blob/dark_matter - name = "Dark Matter" - id = "dark_matter" - description = "will do medium brute damage and pull nearby objects and enemies at the target." - analyzerdescdamage = "Does medium brute damage and pulls nearby objects and creatures at the target." - color = "#61407E" - complementary_color = "#5D7E40" - message = "You feel a thrum as the blob strikes you, and everything flies at you" - -/datum/reagent/blob/dark_matter/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O) - reac_volume = ..() - reagent_vortex(M, 0, reac_volume) - M.apply_damage(0.3*reac_volume, BRUTE) - -//does brute damage and throws or pushes nearby objects away from the target -/datum/reagent/blob/b_sorium - name = "Sorium" - id = "b_sorium" - description = "will do medium brute damage and throw nearby objects and enemies away from the target." - analyzerdescdamage = "Does medium brute damage and pushes nearby objects and creatures away from the target." - color = "#808000" - complementary_color = "#000080" - message = "The blob slams into you and sends you flying" - -/datum/reagent/blob/b_sorium/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O) - reac_volume = ..() - reagent_vortex(M, 1, reac_volume) - M.apply_damage(0.3*reac_volume, BRUTE) - -/datum/reagent/blob/proc/reagent_vortex(mob/living/M, setting_type, reac_volume) - if(M && reac_volume) - var/turf/pull = get_turf(M) - var/range_power = Clamp(round(reac_volume/5, 1), 1, 5) - for(var/atom/movable/X in range(range_power,pull)) - if(istype(X, /obj/effect)) - continue - if(isliving(X)) - var/mob/living/L = X - if("blob" in L.faction) //no friendly throwpulling - continue - if(!X.anchored) - var/distance = get_dist(X, pull) - var/moving_power = max(range_power - distance, 1) - if(moving_power > 2) //if the vortex is powerful and we're close, we get thrown - if(setting_type) - var/atom/throw_target = get_edge_target_turf(X, get_dir(X, get_step_away(X, pull))) - var/throw_range = 5 - distance - X.throw_at_fast(throw_target, throw_range, 1) - else - X.throw_at_fast(pull, distance, 1) - else - spawn(0) - if(setting_type) - for(var/i in 0 to moving_power-1) - sleep(2) - if(!step_away(X, pull)) - break - else - for(var/i in 0 to moving_power-1) - sleep(2) - if(!step_towards(X, pull)) - break - - -/datum/reagent/blob/proc/send_message(mob/living/M) - var/totalmessage = message - if(message_living && !issilicon(M)) - totalmessage += message_living - totalmessage += "!" - M << "[totalmessage]" diff --git a/code/modules/reagents/chemistry/reagents/drink_reagents.dm b/code/modules/reagents/chemistry/reagents/drink_reagents.dm index b047cda4b5..b65e8e692d 100644 --- a/code/modules/reagents/chemistry/reagents/drink_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drink_reagents.dm @@ -5,7 +5,7 @@ ///////////////////////////////////////////////////////////////////////////////////////////////////////// /datum/reagent/consumable/orangejuice - name = "Orange juice" + name = "Orange Juice" id = "orangejuice" description = "Both delicious AND rich in Vitamin C, what more do you need?" color = "#E78108" // rgb: 231, 129, 8 @@ -24,7 +24,7 @@ /datum/reagent/consumable/tomatojuice/on_mob_life(mob/living/M) if(M.getFireLoss() && prob(20)) - M.heal_organ_damage(0,1, 0) + M.heal_bodypart_damage(0,1, 0) . = 1 ..() @@ -41,7 +41,7 @@ ..() /datum/reagent/consumable/carrotjuice - name = "Carrot juice" + name = "Carrot Juice" id = "carrotjuice" description = "It is just like a carrot but without crunching." color = "#973800" // rgb: 151, 56, 0 @@ -64,6 +64,12 @@ description = "A delicious blend of several different kinds of berries." color = "#863333" // rgb: 134, 51, 51 +/datum/reagent/consumable/applejuice + name = "Apple Juice" + id = "applejuice" + description = "The sweet juice of an apple, fit for all ages." + color = "#ECFF56" // rgb: 236, 255, 86 + /datum/reagent/consumable/poisonberryjuice name = "Poison Berry Juice" id = "poisonberryjuice" @@ -94,8 +100,8 @@ color = "#863333" // rgb: 175, 175, 0 /datum/reagent/consumable/banana/on_mob_life(mob/living/M) - if( ( istype(M, /mob/living/carbon/human) && M.job in list("Clown") ) || istype(M, /mob/living/carbon/monkey) ) - M.heal_organ_damage(1,1, 0) + if((ishuman(M) && M.job in list("Clown") ) || ismonkey(M)) + M.heal_bodypart_damage(1,1, 0) . = 1 ..() @@ -105,11 +111,35 @@ description = "Absolutely nothing." /datum/reagent/consumable/nothing/on_mob_life(mob/living/M) - if(istype(M, /mob/living/carbon/human) && M.job in list("Mime")) - M.heal_organ_damage(1,1, 0) + if(ishuman(M) && M.job in list("Mime")) + M.heal_bodypart_damage(1,1, 0) . = 1 ..() +/datum/reagent/consumable/laughter + name = "Laughter" + id = "laughter" + description = "Some say that this is the best medicine, but recent studies have proven that to be untrue." + metabolization_rate = INFINITY + color = "#FF4DD2" + +/datum/reagent/consumable/laughter/on_mob_life(mob/living/carbon/M) + if(!iscarbon(M)) + return + if(!M.silent)//cant laugh if you're mute + M.emote("laugh") + var/laughnum = rand(1,2) + if(M.gender == MALE) + if(laughnum == 1) + playsound(get_turf(M), 'sound/voice/human/manlaugh1.ogg', 50, 1) + if(laughnum == 2) + playsound(get_turf(M), 'sound/voice/human/manlaugh2.ogg', 50, 1) + else if(M.gender == FEMALE) + playsound(get_turf(M), 'sound/voice/human/womanlaugh.ogg', 65, 1) + else//non-binary gender just sounds like a man + playsound(get_turf(M), 'sound/voice/human/manlaugh1.ogg', 50, 1) + ..() + /datum/reagent/consumable/potato_juice name = "Potato Juice" id = "potato" @@ -118,7 +148,7 @@ color = "#302000" // rgb: 48, 32, 0 /datum/reagent/consumable/grapejuice - name = "Grape juice" + name = "Grape Juice" id = "grapejuice" description = "The juice of a bunch of grapes. Guaranteed non-alcoholic." color = "#290029" // dark purple @@ -131,13 +161,13 @@ /datum/reagent/consumable/milk/on_mob_life(mob/living/M) if(M.getBruteLoss() && prob(20)) - M.heal_organ_damage(1,0, 0) + M.heal_bodypart_damage(1,0, 0) . = 1 if(holder.has_reagent("capsaicin")) holder.remove_reagent("capsaicin", 2) var/datum/dna/Mdna = M.has_dna() if(Mdna && Mdna.species && (Mdna.species.id == "plasmaman" || Mdna.species.id == "skeleton")) - M.heal_organ_damage(1,0, 0) + M.heal_bodypart_damage(1,0, 0) . = 1 ..() @@ -149,7 +179,7 @@ /datum/reagent/consumable/soymilk/on_mob_life(mob/living/M) if(M.getBruteLoss() && prob(20)) - M.heal_organ_damage(1,0, 0) + M.heal_bodypart_damage(1,0, 0) . = 1 ..() @@ -161,7 +191,7 @@ /datum/reagent/consumable/cream/on_mob_life(mob/living/M) if(M.getBruteLoss() && prob(20)) - M.heal_organ_damage(1,0, 0) + M.heal_bodypart_damage(1,0, 0) . = 1 ..() @@ -240,7 +270,7 @@ /datum/reagent/consumable/icetea name = "Iced Tea" id = "icetea" - description = "No relation to a certain rap artist/ actor." + description = "No relation to a certain rap artist/actor." color = "#104038" // rgb: 16, 64, 56 nutriment_factor = 0 @@ -387,7 +417,7 @@ M.bodytemperature = min(310, M.bodytemperature + (5 * TEMPERATURE_DAMAGE_COEFFICIENT)) M.Jitter(5) if(M.getBruteLoss() && prob(20)) - M.heal_organ_damage(1,0, 0) + M.heal_bodypart_damage(1,0, 0) ..() . = 1 @@ -405,7 +435,7 @@ M.bodytemperature = min(310, M.bodytemperature + (5 * TEMPERATURE_DAMAGE_COEFFICIENT)) M.Jitter(5) if(M.getBruteLoss() && prob(20)) - M.heal_organ_damage(1,0, 0) + M.heal_bodypart_damage(1,0, 0) ..() . = 1 @@ -492,115 +522,8 @@ description = "Beloved of children and teetotalers." color = "#E6CDFF" -//////////////////////////////////////////////The ten friggen million reagents that get you drunk////////////////////////////////////////////// - -/datum/reagent/consumable/atomicbomb - name = "Atomic Bomb" - id = "atomicbomb" - description = "Nuclear proliferation never tasted so good." - color = "#666300" // rgb: 102, 99, 0 - -/datum/reagent/consumable/atomicbomb/on_mob_life(mob/living/M) - M.set_drugginess(50) - M.confused = max(M.confused+2,0) - M.Dizzy(10) - if (!M.slurring) - M.slurring = 1 - M.slurring += 3 - switch(current_cycle) - if(51 to 200) - M.Sleeping(5, 0) - . = 1 - if(201 to INFINITY) - M.AdjustSleeping(2, 0) - M.adjustToxLoss(2, 0) - . = 1 - ..() - -/datum/reagent/consumable/gargle_blaster - name = "Pan-Galactic Gargle Blaster" - id = "gargleblaster" - description = "Whoah, this stuff looks volatile!" - color = "#664300" // rgb: 102, 67, 0 - -/datum/reagent/consumable/gargle_blaster/on_mob_life(mob/living/M) - M.dizziness +=6 - switch(current_cycle) - if(15 to 45) - if(!M.slurring) - M.slurring = 1 - M.slurring += 3 - if(45 to 55) - if(prob(50)) - M.confused = max(M.confused+3,0) - if(55 to 200) - M.set_drugginess(55) - if(200 to INFINITY) - M.adjustToxLoss(2, 0) - . = 1 - ..() - -/datum/reagent/consumable/neurotoxin - name = "Neurotoxin" - id = "neurotoxin" - description = "A strong neurotoxin that puts the subject into a death-like state." - color = "#2E2E61" // rgb: 46, 46, 97 - -/datum/reagent/consumable/neurotoxin/on_mob_life(mob/living/carbon/M) - M.Weaken(3, 1, 0) - M.dizziness +=6 - switch(current_cycle) - if(15 to 45) - if(!M.slurring) - M.slurring = 1 - M.slurring += 3 - if(45 to 55) - if(prob(50)) - M.confused = max(M.confused+3,0) - if(55 to 200) - M.set_drugginess(55) - if(200 to INFINITY) - M.adjustToxLoss(2, 0) - ..() - . = 1 - -/datum/reagent/consumable/hippies_delight - name = "Hippie's Delight" - id = "hippiesdelight" - description = "You just don't get it maaaan." - color = "#664300" // rgb: 102, 67, 0 - nutriment_factor = 0 - metabolization_rate = 0.2 * REAGENTS_METABOLISM - -/datum/reagent/consumable/hippies_delight/on_mob_life(mob/living/M) - if (!M.slurring) - M.slurring = 1 - switch(current_cycle) - if(1 to 5) - M.Dizzy(10) - M.set_drugginess(30) - if(prob(10)) - M.emote(pick("twitch","giggle")) - if(5 to 10) - M.Jitter(20) - M.Dizzy(20) - M.set_drugginess(45) - if(prob(20)) - M.emote(pick("twitch","giggle")) - if (10 to 200) - M.Jitter(40) - M.Dizzy(40) - M.set_drugginess(60) - if(prob(30)) - M.emote(pick("twitch","giggle")) - if(200 to INFINITY) - M.Jitter(60) - M.Dizzy(60) - M.set_drugginess(75) - if(prob(40)) - M.emote(pick("twitch","giggle")) - if(prob(30)) - M.adjustToxLoss(2, 0) - . = 1 - ..() - +/datum/reagent/consumable/milk/chocolate_milk + name = "Chocolate Milk" + id = "chocolate_milk" + description = "Milk for cool kids." + color = "#7D4E29" diff --git a/code/modules/reagents/chemistry/reagents/drug_reagents.dm b/code/modules/reagents/chemistry/reagents/drug_reagents.dm index 3a21ff1453..50058e1d23 100644 --- a/code/modules/reagents/chemistry/reagents/drug_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drug_reagents.dm @@ -12,7 +12,7 @@ /datum/reagent/drug/space_drugs/on_mob_life(mob/living/M) M.set_drugginess(15) - if(isturf(M.loc) && !istype(M.loc, /turf/open/space)) + if(isturf(M.loc) && !isspaceturf(M.loc)) if(M.canmove) if(prob(10)) step(M, pick(cardinal)) if(prob(7)) @@ -40,7 +40,9 @@ if(prob(1)) var/smoke_message = pick("You feel relaxed.", "You feel calmed.","You feel alert.","You feel rugged.") M << "[smoke_message]" + M.AdjustParalysis(-1, 0) M.AdjustStunned(-1, 0) + M.AdjustWeakened(-1, 0) M.adjustStaminaLoss(-0.5*REM, 0) ..() . = 1 @@ -171,13 +173,13 @@ /datum/reagent/drug/methamphetamine/overdose_process(mob/living/M) if(M.canmove && !istype(M.loc, /atom/movable)) - for(var/i = 0, i < 4, i++) + for(var/i in 1 to 4) step(M, pick(cardinal)) if(prob(20)) M.emote("laugh") if(prob(33)) M.visible_message("[M]'s hands flip out and flail everywhere!") - var/obj/item/I = M.get_active_hand() + var/obj/item/I = M.get_active_held_item() if(I) M.drop_item() ..() @@ -250,12 +252,12 @@ /datum/reagent/drug/bath_salts/overdose_process(mob/living/M) M.hallucination += 10 if(M.canmove && !istype(M.loc, /atom/movable)) - for(var/i = 0, i < 8, i++) + for(var/i in 1 to 8) step(M, pick(cardinal)) if(prob(20)) M.emote(pick("twitch","drool","moan")) if(prob(33)) - var/obj/item/I = M.get_active_hand() + var/obj/item/I = M.get_active_held_item() if(I) M.drop_item() ..() diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index c10c97cdac..2021ac9803 100644 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -27,7 +27,7 @@ /datum/reagent/consumable/nutriment/on_mob_life(mob/living/M) if(prob(50)) - M.heal_organ_damage(1,0, 0) + M.heal_bodypart_damage(1,0, 0) . = 1 if(iscarbon(M)) var/mob/living/carbon/C = M @@ -44,7 +44,7 @@ /datum/reagent/consumable/vitamin/on_mob_life(mob/living/M) if(prob(50)) - M.heal_organ_damage(1,1, 0) + M.heal_bodypart_damage(1,1, 0) . = 1 if(M.satiety < 600) M.satiety += 30 @@ -161,7 +161,7 @@ for(var/mob/living/simple_animal/slime/M in T) M.adjustToxLoss(rand(15,30)) if(reac_volume >= 1) // Make Freezy Foam and anti-fire grenades! - if(istype(T, /turf/open)) + if(isopenturf(T)) var/turf/open/OT = T OT.MakeSlippery(wet_setting=TURF_WET_ICE, min_wet_time=10, wet_time_to_add=reac_volume) // Is less effective in high pressure/high heat capacity environments. More effective in low pressure. OT.air.temperature -= MOLES_CELLSTANDARD*100*reac_volume/OT.air.heat_capacity() // reduces environment temperature by 5K per unit. @@ -173,7 +173,7 @@ color = "#B31008" // rgb: 179, 16, 8 /datum/reagent/consumable/condensedcapsaicin/reaction_mob(mob/living/M, method=TOUCH, reac_volume) - if(!istype(M, /mob/living/carbon/human) && !istype(M, /mob/living/carbon/monkey)) + if(!ishuman(M) && !ismonkey(M)) return var/mob/living/carbon/victim = M @@ -193,7 +193,7 @@ safe_thing = victim.wear_mask //only humans can have helmets and glasses - if(istype(victim, /mob/living/carbon/human)) + if(ishuman(victim)) var/mob/living/carbon/human/H = victim if( H.head ) if ( H.head.flags_cover & MASKCOVERSEYES ) @@ -324,8 +324,8 @@ color = "#FF00FF" // rgb: 255, 0, 255 /datum/reagent/consumable/sprinkles/on_mob_life(mob/living/M) - if(istype(M, /mob/living/carbon/human) && M.job in list("Security Officer", "Head of Security", "Detective", "Warden")) - M.heal_organ_damage(1,1, 0) + if(ishuman(M) && M.job in list("Security Officer", "Head of Security", "Detective", "Warden")) + M.heal_bodypart_damage(1,1, 0) . = 1 ..() @@ -392,7 +392,7 @@ color = "#FFFFFF" // rgb: 0, 0, 0 /datum/reagent/consumable/flour/reaction_turf(turf/T, reac_volume) - if(!istype(T, /turf/open/space)) + if(!isspaceturf(T)) var/obj/effect/decal/cleanable/reagentdecal = new/obj/effect/decal/cleanable/flour(T) reagentdecal.reagents.add_reagent("flour", reac_volume) @@ -457,5 +457,53 @@ /datum/reagent/consumable/honey/on_mob_life(mob/living/M) M.reagents.add_reagent("sugar",3) if(prob(20)) - M.heal_organ_damage(3,1) + M.heal_bodypart_damage(3,1) ..() + + +////Lavaland Flora Reagents//// + + +/datum/reagent/consumable/entpoly + name = "Entropic Polypnium" + id = "entpoly" + description = "An ichor, derived from a certain mushroom, makes for a bad time." + color = "#1d043d" +/datum/reagent/consumable/entpoly/on_mob_life(mob/living/M) + if(current_cycle >= 10) + M.Paralyse(2, 0) + . = 1 + if(prob(20)) + M.losebreath += 4 + M.adjustBrainLoss(2*REM) + M.adjustToxLoss(3*REM,0) + M.adjustStaminaLoss(10*REM,0) + M.blur_eyes(5) + . = TRUE + ..() + +/datum/reagent/consumable/tinlux + name = "Tinea Luxor" + id = "tinlux" + description = "A stimulating ichor which causes luminescent fungi to grow on the skin. " + color = "#b5a213" + +/datum/reagent/consumable/tinlux/reaction_mob(mob/living/M) + M.AddLuminosity(2) + +/datum/reagent/consumable/tinlux/on_mob_delete(mob/living/M) + M.AddLuminosity(-2) + +/datum/reagent/consumable/vitfro + name = "Vitrium Froth" + id = "vitfro" + description = "A bubbly paste that heals wounds of the skin." + color = "#d3a308" + nutriment_factor = 3 * REAGENTS_METABOLISM + +/datum/reagent/consumable/vitfro/on_mob_life(mob/living/M) + if(prob(80)) + M.adjustBruteLoss(-1*REM, 0) + M.adjustFireLoss(-1*REM, 0) + . = TRUE + ..() \ No newline at end of file diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index 46bc547221..8944381db3 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -31,13 +31,14 @@ id = "adminordrazine" description = "It's magic. We don't have to explain it." color = "#C8A5DC" // rgb: 200, 165, 220 + can_synth = 0 /datum/reagent/medicine/adminordrazine/on_mob_life(mob/living/carbon/M) M.reagents.remove_all_type(/datum/reagent/toxin, 5*REM, 0, 1) M.setCloneLoss(0, 0) M.setOxyLoss(0, 0) M.radiation = 0 - M.heal_organ_damage(5,5, 0) + M.heal_bodypart_damage(5,5, 0) M.adjustToxLoss(-5, 0) M.hallucination = 0 M.setBrainLoss(0) @@ -162,7 +163,7 @@ /datum/reagent/medicine/rezadone/on_mob_life(mob/living/M) M.setCloneLoss(0) //Rezadone is almost never used in favor of cryoxadone. Hopefully this will change that. - M.heal_organ_damage(1,1, 0) + M.heal_bodypart_damage(1,1, 0) M.status_flags &= ~DISFIGURED ..() . = 1 @@ -274,7 +275,7 @@ /datum/reagent/medicine/salglu_solution/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message = 1) if(ishuman(M) && method == INJECT) var/mob/living/carbon/human/H = M - if(H.dna && !(NOBLOOD in H.dna.species.specflags)) + if(H.dna && !(NOBLOOD in H.dna.species.species_traits)) var/efficiency = (BLOOD_VOLUME_NORMAL-H.blood_volume)/700 + 0.2//The lower the blood of the patient, the better it is as a blood substitute. efficiency = min(0.75,efficiency) //As it's designed for an IV drip, make large injections not as effective as repeated small injections. @@ -306,6 +307,12 @@ if(show_message) M << "Your stomach agonizingly cramps!" else + var/mob/living/carbon/C = M + for(var/s in C.surgeries) + var/datum/surgery/S = s + S.success_multiplier = max(0.10, S.success_multiplier) + // +10% success propability on each step, useful while operating in less-than-perfect conditions + if(show_message) M << "You feel your wounds fade away to nothing!" //It's a painkiller, after all ..() @@ -324,7 +331,9 @@ color = "#FFEBEB" /datum/reagent/medicine/synthflesh/reaction_mob(mob/living/M, method=TOUCH, reac_volume,show_message = 1) - if(iscarbon(M) && M.stat != DEAD) + if(iscarbon(M)) + if (M.stat == DEAD) + show_message = 0 if(method in list(PATCH, TOUCH)) M.adjustBruteLoss(-1.25 * reac_volume) M.adjustFireLoss(-1.25 * reac_volume) @@ -572,7 +581,7 @@ /datum/reagent/medicine/morphine/overdose_process(mob/living/M) if(prob(33)) - var/obj/item/I = M.get_active_hand() + var/obj/item/I = M.get_active_held_item() if(I) M.drop_item() M.Dizzy(2) @@ -581,7 +590,7 @@ /datum/reagent/medicine/morphine/addiction_act_stage1(mob/living/M) if(prob(33)) - var/obj/item/I = M.get_active_hand() + var/obj/item/I = M.get_active_held_item() if(I) M.drop_item() M.Dizzy(2) @@ -590,7 +599,7 @@ /datum/reagent/medicine/morphine/addiction_act_stage2(mob/living/M) if(prob(33)) - var/obj/item/I = M.get_active_hand() + var/obj/item/I = M.get_active_held_item() if(I) M.drop_item() M.adjustToxLoss(1*REM, 0) @@ -601,7 +610,7 @@ /datum/reagent/medicine/morphine/addiction_act_stage3(mob/living/M) if(prob(33)) - var/obj/item/I = M.get_active_hand() + var/obj/item/I = M.get_active_held_item() if(I) M.drop_item() M.adjustToxLoss(2*REM, 0) @@ -612,7 +621,7 @@ /datum/reagent/medicine/morphine/addiction_act_stage4(mob/living/M) if(prob(33)) - var/obj/item/I = M.get_active_hand() + var/obj/item/I = M.get_active_held_item() if(I) M.drop_item() M.adjustToxLoss(3*REM, 0) @@ -874,7 +883,7 @@ ..() //Trek Chems, used primarily by medibots. Only heals a specific damage type, but is very efficient. -datum/reagent/medicine/bicaridine +/datum/reagent/medicine/bicaridine name = "Bicaridine" id = "bicaridine" description = "Restores bruising. Overdose causes it instead." @@ -882,17 +891,17 @@ datum/reagent/medicine/bicaridine color = "#C8A5DC" overdose_threshold = 30 -datum/reagent/medicine/bicaridine/on_mob_life(mob/living/M) +/datum/reagent/medicine/bicaridine/on_mob_life(mob/living/M) M.adjustBruteLoss(-2*REM, 0) ..() . = 1 -datum/reagent/medicine/bicaridine/overdose_process(mob/living/M) +/datum/reagent/medicine/bicaridine/overdose_process(mob/living/M) M.adjustBruteLoss(4*REM, 0) ..() . = 1 -datum/reagent/medicine/dexalin +/datum/reagent/medicine/dexalin name = "Dexalin" id = "dexalin" description = "Restores oxygen loss. Overdose causes it instead." @@ -900,17 +909,17 @@ datum/reagent/medicine/dexalin color = "#C8A5DC" overdose_threshold = 30 -datum/reagent/medicine/dexalin/on_mob_life(mob/living/M) +/datum/reagent/medicine/dexalin/on_mob_life(mob/living/M) M.adjustOxyLoss(-2*REM, 0) ..() . = 1 -datum/reagent/medicine/dexalin/overdose_process(mob/living/M) +/datum/reagent/medicine/dexalin/overdose_process(mob/living/M) M.adjustOxyLoss(4*REM, 0) ..() . = 1 -datum/reagent/medicine/kelotane +/datum/reagent/medicine/kelotane name = "Kelotane" id = "kelotane" description = "Restores fire damage. Overdose causes it instead." @@ -918,17 +927,17 @@ datum/reagent/medicine/kelotane color = "#C8A5DC" overdose_threshold = 30 -datum/reagent/medicine/kelotane/on_mob_life(mob/living/M) +/datum/reagent/medicine/kelotane/on_mob_life(mob/living/M) M.adjustFireLoss(-2*REM, 0) ..() . = 1 -datum/reagent/medicine/kelotane/overdose_process(mob/living/M) +/datum/reagent/medicine/kelotane/overdose_process(mob/living/M) M.adjustFireLoss(4*REM, 0) ..() . = 1 -datum/reagent/medicine/antitoxin +/datum/reagent/medicine/antitoxin name = "Anti-Toxin" id = "antitoxin" description = "Heals toxin damage and removes toxins in the bloodstream. Overdose causes toxin damage." @@ -936,7 +945,7 @@ datum/reagent/medicine/antitoxin color = "#C8A5DC" overdose_threshold = 30 -datum/reagent/medicine/antitoxin/on_mob_life(mob/living/M) +/datum/reagent/medicine/antitoxin/on_mob_life(mob/living/M) M.adjustToxLoss(-2*REM, 0) for(var/datum/reagent/toxin/R in M.reagents.reagent_list) if(R != src) @@ -944,24 +953,24 @@ datum/reagent/medicine/antitoxin/on_mob_life(mob/living/M) ..() . = 1 -datum/reagent/medicine/antitoxin/overdose_process(mob/living/M) +/datum/reagent/medicine/antitoxin/overdose_process(mob/living/M) M.adjustToxLoss(4*REM, 0) // End result is 2 toxin loss taken, because it heals 2 and then removes 4. ..() . = 1 -datum/reagent/medicine/inaprovaline +/datum/reagent/medicine/inaprovaline name = "Inaprovaline" id = "inaprovaline" description = "Stabilizes the breathing of patients. Good for those in critical condition." reagent_state = LIQUID color = "#C8A5DC" -datum/reagent/medicine/inaprovaline/on_mob_life(mob/living/M) +/datum/reagent/medicine/inaprovaline/on_mob_life(mob/living/M) if(M.losebreath >= 5) M.losebreath -= 5 ..() -datum/reagent/medicine/tricordrazine +/datum/reagent/medicine/tricordrazine name = "Tricordrazine" id = "tricordrazine" description = "Has a high chance to heal all types of damage. Overdose instead causes it." @@ -969,7 +978,7 @@ datum/reagent/medicine/tricordrazine color = "#C8A5DC" overdose_threshold = 30 -datum/reagent/medicine/tricordrazine/on_mob_life(mob/living/M) +/datum/reagent/medicine/tricordrazine/on_mob_life(mob/living/M) if(prob(80)) M.adjustBruteLoss(-1*REM, 0) M.adjustFireLoss(-1*REM, 0) @@ -978,7 +987,7 @@ datum/reagent/medicine/tricordrazine/on_mob_life(mob/living/M) . = 1 ..() -datum/reagent/medicine/tricordrazine/overdose_process(mob/living/M) +/datum/reagent/medicine/tricordrazine/overdose_process(mob/living/M) M.adjustToxLoss(2*REM, 0) M.adjustOxyLoss(2*REM, 0) M.adjustBruteLoss(2*REM, 0) @@ -986,14 +995,14 @@ datum/reagent/medicine/tricordrazine/overdose_process(mob/living/M) ..() . = 1 -datum/reagent/medicine/syndicate_nanites //Used exclusively by Syndicate medical cyborgs +/datum/reagent/medicine/syndicate_nanites //Used exclusively by Syndicate medical cyborgs name = "Restorative Nanites" id = "syndicate_nanites" description = "Miniature medical robots that swiftly restore bodily damage." reagent_state = SOLID color = "#555555" -datum/reagent/medicine/syndicate_nanites/on_mob_life(mob/living/M) +/datum/reagent/medicine/syndicate_nanites/on_mob_life(mob/living/M) M.adjustBruteLoss(-5*REM, 0) //A ton of healing - this is a 50 telecrystal investment. M.adjustFireLoss(-5*REM, 0) M.adjustOxyLoss(-15, 0) @@ -1051,6 +1060,26 @@ datum/reagent/medicine/syndicate_nanites/on_mob_life(mob/living/M) ..() . = 1 +/datum/reagent/medicine/miningnanites + name = "Nanites" + id = "miningnanites" + description = "It's mining magic. We don't have to explain it." + color = "#C8A5DC" // rgb: 200, 165, 220 + overdose_threshold = 3 //To prevent people stacking massive amounts of a very strong healing reagent + can_synth = 0 + +/datum/reagent/medicine/miningnanites/on_mob_life(mob/living/M) + M.heal_bodypart_damage(5,5, 0) + ..() + . = 1 + +/datum/reagent/medicine/miningnanites/overdose_process(mob/living/M) + M.adjustBruteLoss(3*REM, 0) + M.adjustFireLoss(3*REM, 0) + M.adjustToxLoss(3*REM, 0) + ..() + . = 1 + //used for changeling's adrenaline power /datum/reagent/medicine/changelingAdrenaline name = "Adrenaline" diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 2c3366a401..13e8ca23c7 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -119,22 +119,23 @@ M.apply_water() var/obj/effect/hotspot/hotspot = (locate(/obj/effect/hotspot) in T) - if(hotspot && !istype(T, /turf/open/space)) + if(hotspot && !isspaceturf(T)) if(T.air) var/datum/gas_mixture/G = T.air G.temperature = max(min(G.temperature-(CT*1000),G.temperature/CT),0) G.react() qdel(hotspot) - return + var/obj/effect/acid/A = (locate(/obj/effect/acid) in T) + if(A) + A.acid_level = max(A.acid_level - reac_volume*50, 0) /* * Water reaction to an object */ /datum/reagent/water/reaction_obj(obj/O, reac_volume) - if(istype(O)) - O.extinguish() - + O.extinguish() + O.acid_level = 0 // Monkey cube if(istype(O,/obj/item/weapon/reagent_containers/food/snacks/monkeycube)) var/obj/item/weapon/reagent_containers/food/snacks/monkeycube/cube = O @@ -175,36 +176,30 @@ if(data >= 30) // 12 units, 54 seconds @ metabolism 0.4 units & tick rate 1.8 sec if(!M.stuttering) M.stuttering = 1 - M.stuttering += 4 + M.stuttering = min(M.stuttering+4, 10) M.Dizzy(5) if(iscultist(M) && prob(5)) 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")) - else if(is_servant_of_ratvar(M) && prob(5)) + else if(is_servant_of_ratvar(M) && prob(8)) switch(pick("speech", "message", "emote")) if("speech") - M.say("...[pick("Ratvar... lbhe yvtug tebjf qnex", "Jurer ner lbh, znfgre?", "Ur yvrf ehfgvat va Reebe", "Chetr nyy hagehguf naq... naq... fbzrguvat")]...") + clockwork_say(M, "...[text2ratvar(pick("Engine... your light grows dark...", "Where are you, master?", "He lies rusting in Error...", "Purge all untruths and... and... something..."))]") if("message") - M << "[pick("Ratvar's illumination of your mind has begun to flicker.", "He lies rusting in Reebe, derelict and forgotten. And there he shall stay.", \ - "You can't save him. Nothing can save him now.", "It seems that Nar-Sie will triumph after all.")]" + M << "[pick("Ratvar's illumination of your mind has begun to flicker", "He lies rusting in Reebe, derelict and forgotten. And there he shall stay", \ + "You can't save him. Nothing can save him now", "It seems that Nar-Sie will triumph after all")]." if("emote") - M.visible_message("[M] [pick("whimpers quietly", "shivers as though cold", "glances around in paranoia")]") + M.visible_message("[M] [pick("whimpers quietly", "shivers as though cold", "glances around in paranoia")].") if(data >= 75) // 30 units, 135 seconds - if (!M.confused) - M.confused = 1 - M.confused += 3 - if(iscultist(M) || is_handofgod_cultist(M) || is_handofgod_prophet(M) || is_servant_of_ratvar(M)) + if(iscultist(M) || is_servant_of_ratvar(M)) if(iscultist(M)) ticker.mode.remove_cultist(M.mind, 1, 1) - else if(is_handofgod_cultist(M) || is_handofgod_prophet(M)) - ticker.mode.remove_hog_follower(M.mind) else if(is_servant_of_ratvar(M)) remove_servant_of_ratvar(M) - holder.remove_reagent(src.id, src.volume) // maybe this is a little too perfect and a max() cap on the statuses would be better?? + holder.remove_reagent(id, volume) // maybe this is a little too perfect and a max() cap on the statuses would be better?? M.jitteriness = 0 M.stuttering = 0 - M.confused = 0 return - holder.remove_reagent(src.id, 0.4) //fixed consumption to prevent balancing going out of whack + holder.remove_reagent(id, 0.4) //fixed consumption to prevent balancing going out of whack /datum/reagent/water/holywater/reaction_turf(turf/T, reac_volume) ..() @@ -277,7 +272,7 @@ overdose_threshold = 11 //Slightly more than one un-nozzled spraybottle. /datum/reagent/spraytan/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message = 1) - if(istype(M, /mob/living/carbon/human)) + if(ishuman(M)) if(method == PATCH || method == VAPOR) var/mob/living/carbon/human/N = M if(N.dna.species.id == "human") @@ -305,7 +300,7 @@ if ("albino") N.skin_tone = "caucasian1" - if(MUTCOLORS in N.dna.species.specflags) //take current alien color and darken it slightly + if(MUTCOLORS in N.dna.species.species_traits) //take current alien color and darken it slightly var/newcolor = "" var/len = length(N.dna.features["mcolor"]) for(var/i=1, i<=len, i+=1) @@ -342,61 +337,178 @@ /datum/reagent/spraytan/overdose_process(mob/living/M) metabolization_rate = 1 * REAGENTS_METABOLISM - if(istype(M, /mob/living/carbon/human)) + if(ishuman(M)) var/mob/living/carbon/human/N = M if(N.dna.species.id == "human") // If they're human, turn em to the "orange" race, and give em spiky black hair N.skin_tone = "orange" N.hair_style = "Spiky" N.hair_color = "000" - if(MUTCOLORS in N.dna.species.specflags) //Aliens with custom colors simply get turned orange + if(MUTCOLORS in N.dna.species.species_traits) //Aliens with custom colors simply get turned orange N.dna.features["mcolor"] = "f80" N.regenerate_icons() if(prob(7)) if(N.w_uniform) - M.visible_message(pick("[M]'s collar pops up without warning.
    ", "[M] flexes their arms.")) + M.visible_message(pick("[M]'s collar pops up without warning.
    ", "[M] flexes [M.p_their()] arms.")) else - M.visible_message("[M] flexes their arms.") + M.visible_message("[M] [M.p_their()] their arms.") if(prob(10)) M.say(pick("Check these sweet biceps bro!", "Deal with it.", "CHUG! CHUG! CHUG! CHUG!", "Winning!", "NERDS!", "My name is John and I hate every single one of you.")) ..() return -/datum/reagent/slimetoxin - name = "Mutation Toxin" - id = "mutationtoxin" - description = "A corruptive toxin produced by slimes." - color = "#13BC5E" // rgb: 19, 188, 94 - -/datum/reagent/unstableslimetoxin - name = "Unstable Mutation Toxin" - id = "unstablemutationtoxin" - description = "An unstable and unpredictable corruptive toxin produced by slimes." +/datum/reagent/stableslimetoxin + name = "Stable Mutation Toxin" + id = "stablemutationtoxin" + description = "A humanizing toxin produced by slimes." color = "#5EFF3B" //RGB: 94, 255, 59 metabolization_rate = INFINITY //So it instantly removes all of itself + var/datum/species/race = /datum/species/human + var/mutationtext = "The pain subsides. You feel... human." -/datum/reagent/unstableslimetoxin/on_mob_life(mob/living/carbon/human/H) +/datum/reagent/stableslimetoxin/on_mob_life(mob/living/carbon/human/H) ..() H << "You crumple in agony as your flesh wildly morphs into new forms!" - H.visible_message("[H] falls to the ground and screams as their skin bubbles and froths!") //'froths' sounds painful when used with SKIN. + H.visible_message("[H] falls to the ground and screams as [H.p_their()] skin bubbles and froths!") //'froths' sounds painful when used with SKIN. H.Weaken(3, 0) spawn(30) if(!H || qdeleted(H)) return - var/list/possible_morphs = list() - for(var/type in subtypesof(/datum/species)) - var/datum/species/S = type - if(initial(S.blacklisted)) - continue - possible_morphs += S - var/datum/species/mutation = pick(possible_morphs) - if(prob(90) && mutation) - H << "The pain subsides. You feel... different." + + var/current_species = H.dna.species.type + var/datum/species/mutation = race + if(mutation && mutation != current_species) + H << mutationtext H.set_species(mutation) else H << "The pain vanishes suddenly. You feel no different." return 1 +/datum/reagent/stableslimetoxin/classic //The one from plasma on green slimes + name = "Mutation Toxin" + id = "mutationtoxin" + description = "A corruptive toxin produced by slimes." + color = "#13BC5E" // rgb: 19, 188, 94 + race = /datum/species/jelly/slime + mutationtext = "The pain subsides. Your whole body feels like slime." + +/datum/reagent/stableslimetoxin/lizard + name = "Lizard Mutation Toxin" + id = "lizardmutationtoxin" + description = "A lizarding toxin produced by slimes." + color = "#5EFF3B" //RGB: 94, 255, 59 + race = /datum/species/lizard + mutationtext = "The pain subsides. You feel... scaly." + +/datum/reagent/stableslimetoxin/fly + name = "Fly Mutation Toxin" + id = "flymutationtoxin" + description = "An insectifying toxin produced by slimes." + color = "#5EFF3B" //RGB: 94, 255, 59 + race = /datum/species/fly + mutationtext = "The pain subsides. You feel... buzzy." + +/datum/reagent/stableslimetoxin/pod + name = "Podperson Mutation Toxin" + id = "podmutationtoxin" + description = "A vegetalizing toxin produced by slimes." + color = "#5EFF3B" //RGB: 94, 255, 59 + race = /datum/species/pod + mutationtext = "The pain subsides. You feel... plantlike." + +/datum/reagent/stableslimetoxin/jelly + name = "Imperfect Mutation Toxin" + id = "jellymutationtoxin" + description = "An jellyfying toxin produced by slimes." + color = "#5EFF3B" //RGB: 94, 255, 59 + race = /datum/species/jelly + mutationtext = "The pain subsides. You feel... wobbly." + +/datum/reagent/stableslimetoxin/golem + name = "Golem Mutation Toxin" + id = "golemmutationtoxin" + description = "A crystal toxin produced by slimes." + color = "#5EFF3B" //RGB: 94, 255, 59 + race = /datum/species/golem/random + mutationtext = "The pain subsides. You feel... rocky." + +/datum/reagent/stableslimetoxin/abductor + name = "Abductor Mutation Toxin" + id = "abductormutationtoxin" + description = "An alien toxin produced by slimes." + color = "#5EFF3B" //RGB: 94, 255, 59 + race = /datum/species/abductor + mutationtext = "The pain subsides. You feel... alien." + +/datum/reagent/stableslimetoxin/android + name = "Android Mutation Toxin" + id = "androidmutationtoxin" + description = "A robotic toxin produced by slimes." + color = "#5EFF3B" //RGB: 94, 255, 59 + race = /datum/species/android + mutationtext = "The pain subsides. You feel... artificial." + + +//BLACKLISTED RACES +/datum/reagent/stableslimetoxin/skeleton + name = "Skeleton Mutation Toxin" + id = "skeletonmutationtoxin" + description = "A scary toxin produced by slimes." + color = "#5EFF3B" //RGB: 94, 255, 59 + race = /datum/species/skeleton + mutationtext = "The pain subsides. You feel... spooky." + +/datum/reagent/stableslimetoxin/zombie + name = "Zombie Mutation Toxin" + id = "zombiemutationtoxin" + description = "An undead toxin produced by slimes." + color = "#5EFF3B" //RGB: 94, 255, 59 + race = /datum/species/zombie //Not the infectious kind. The days of xenobio zombie outbreaks are long past. + mutationtext = "The pain subsides. You feel... undead." + +/datum/reagent/stableslimetoxin/ash + name = "Ash Mutation Toxin" + id = "ashmutationtoxin" + description = "An ashen toxin produced by slimes." + color = "#5EFF3B" //RGB: 94, 255, 59 + race = /datum/species/lizard/ashwalker + mutationtext = "The pain subsides. You feel... savage." + + +//DANGEROUS RACES +/datum/reagent/stableslimetoxin/shadow + name = "Shadow Mutation Toxin" + id = "shadowmutationtoxin" + description = "A dark toxin produced by slimes." + color = "#5EFF3B" //RGB: 94, 255, 59 + race = /datum/species/shadow + mutationtext = "The pain subsides. You feel... darker." + +/datum/reagent/stableslimetoxin/plasma + name = "Plasma Mutation Toxin" + id = "plasmamutationtoxin" + description = "A plasma-based toxin produced by slimes." + color = "#5EFF3B" //RGB: 94, 255, 59 + race = /datum/species/plasmaman + mutationtext = "The pain subsides. You feel... flammable." + +/datum/reagent/stableslimetoxin/unstable //PSYCH + name = "Unstable Mutation Toxin" + id = "unstablemutationtoxin" + description = "An unstable and unpredictable corruptive toxin produced by slimes." + color = "#5EFF3B" //RGB: 94, 255, 59 + mutationtext = "The pain subsides. You feel... different." + +/datum/reagent/stableslimetoxin/unstable/on_mob_life(mob/living/carbon/human/H) + var/list/possible_morphs = list() + for(var/type in subtypesof(/datum/species)) + var/datum/species/S = type + if(initial(S.blacklisted)) + continue + possible_morphs += S + race = pick(possible_morphs) + ..() + /datum/reagent/mulligan name = "Mulligan Toxin" id = "mulligan" @@ -425,6 +537,7 @@ id = "gluttonytoxin" description = "An advanced corruptive toxin produced by something terrible." color = "#5EFF3B" //RGB: 94, 255, 59 + can_synth = 0 /datum/reagent/gluttonytoxin/reaction_mob(mob/M, method=TOUCH, reac_volume) M.ForceContractDisease(new /datum/disease/transformation/morph(0)) @@ -445,7 +558,7 @@ /datum/reagent/oxygen name = "Oxygen" id = "oxygen" - description = "A colorless, odorless gas." + description = "A colorless, odorless gas. Grows on trees but is still pretty valuable." reagent_state = GAS color = "#808080" // rgb: 128, 128, 128 @@ -462,14 +575,14 @@ /datum/reagent/copper name = "Copper" id = "copper" - description = "A highly ductile metal." + description = "A highly ductile metal. Things made out of copper aren't very durable, but it makes a decent material for electrical wiring." reagent_state = SOLID color = "#6E3B08" // rgb: 110, 59, 8 /datum/reagent/nitrogen name = "Nitrogen" id = "nitrogen" - description = "A colorless, odorless, tasteless gas." + description = "A colorless, odorless, tasteless gas. A simple asphyxiant that can silently displace vital oxygen." reagent_state = GAS color = "#808080" // rgb: 128, 128, 128 @@ -500,11 +613,11 @@ /datum/reagent/mercury name = "Mercury" id = "mercury" - description = "A chemical element." + description = "A curious metal that's a liquid at room temperature. Neurodegenerative and very bad for the mind." color = "#484848" // rgb: 72, 72, 72 /datum/reagent/mercury/on_mob_life(mob/living/M) - if(M.canmove && istype(M.loc, /turf/open/space)) + if(M.canmove && isspaceturf(M.loc)) step(M, pick(cardinal)) if(prob(5)) M.emote(pick("twitch","drool","moan")) @@ -514,19 +627,19 @@ /datum/reagent/sulfur name = "Sulfur" id = "sulfur" - description = "A chemical element." + description = "A sickly yellow solid mostly known for its nasty smell. It's actually much more helpful than it looks in biochemisty." reagent_state = SOLID color = "#BF8C00" // rgb: 191, 140, 0 /datum/reagent/carbon name = "Carbon" id = "carbon" - description = "A chemical element." + description = "A crumbly black solid that, while unexciting on an physical level, forms the base of all known life. Kind of a big deal." reagent_state = SOLID color = "#1C1300" // rgb: 30, 20, 0 /datum/reagent/carbon/reaction_turf(turf/T, reac_volume) - if(!istype(T, /turf/open/space)) + if(!isspaceturf(T)) var/obj/effect/decal/cleanable/dirt/D = locate() in T.contents if(!D) new /obj/effect/decal/cleanable/dirt(T) @@ -534,19 +647,19 @@ /datum/reagent/chlorine name = "Chlorine" id = "chlorine" - description = "A chemical element." + description = "A pale yellow gas that's well known as an oxidizer. While it forms many harmless molecules in its elemental form it is far from harmless." reagent_state = GAS color = "#808080" // rgb: 128, 128, 128 /datum/reagent/chlorine/on_mob_life(mob/living/M) - M.take_organ_damage(1*REM, 0, 0) + M.take_bodypart_damage(1*REM, 0, 0) . = 1 ..() /datum/reagent/fluorine name = "Fluorine" id = "fluorine" - description = "A highly-reactive chemical element." + description = "A comically-reactive chemical element. The universe does not want this stuff to exist in this form in the slightest." reagent_state = GAS color = "#808080" // rgb: 128, 128, 128 @@ -558,26 +671,26 @@ /datum/reagent/sodium name = "Sodium" id = "sodium" - description = "A chemical element." + description = "A soft silver metal that can easily be cut with a knife. It's not salt just yet, so refrain from putting in on your chips." reagent_state = SOLID color = "#808080" // rgb: 128, 128, 128 /datum/reagent/phosphorus name = "Phosphorus" id = "phosphorus" - description = "A chemical element." + description = "A ruddy red powder that burns readily. Though it comes in many colors, the general theme is always the same." reagent_state = SOLID color = "#832828" // rgb: 131, 40, 40 /datum/reagent/lithium name = "Lithium" id = "lithium" - description = "A chemical element." + description = "A silver metal, it's claim to fame is its remarkably low density. Using it is a bit too effective in calming oneself down." reagent_state = SOLID color = "#808080" // rgb: 128, 128, 128 /datum/reagent/lithium/on_mob_life(mob/living/M) - if(M.canmove && istype(M.loc, /turf/open/space)) + if(M.canmove && isspaceturf(M.loc)) step(M, pick(cardinal)) if(prob(5)) M.emote(pick("twitch","drool","moan")) @@ -602,18 +715,27 @@ /datum/reagent/radium/reaction_turf(turf/T, reac_volume) if(reac_volume >= 3) - if(!istype(T, /turf/open/space)) + if(!isspaceturf(T)) var/obj/effect/decal/cleanable/greenglow/GG = locate() in T.contents if(!GG) GG = new/obj/effect/decal/cleanable/greenglow(T) GG.reagents.add_reagent("radium", reac_volume) -/datum/reagent/sterilizine +/datum/reagent/space_cleaner/sterilizine name = "Sterilizine" id = "sterilizine" description = "Sterilizes wounds in preparation for surgery." color = "#C8A5DC" // rgb: 200, 165, 220 +/datum/reagent/space_cleaner/sterilizine/reaction_mob(mob/living/M, method=TOUCH, reac_volume) + if(iscarbon(M) && (method in list(TOUCH, VAPOR, PATCH))) + var/mob/living/carbon/C = M + for(var/s in C.surgeries) + var/datum/surgery/S = s + S.success_multiplier = max(0.20, S.success_multiplier) + // +20% success propability on each step, useful while operating in less-than-perfect conditions + ..() + /datum/reagent/iron name = "Iron" id = "iron" @@ -630,7 +752,7 @@ ..() /datum/reagent/iron/reaction_mob(mob/living/M, method=TOUCH, reac_volume) - if(!istype(M, /mob/living)) + if(!isliving(M)) return if(M.has_bane(BANE_IRON)) //If the target is weak to cold iron, then poison them. if(holder && holder.chem_temp < 100) // COLD iron. @@ -652,7 +774,7 @@ color = "#D0D0D0" // rgb: 208, 208, 208 /datum/reagent/silver/reaction_mob(mob/living/M, method=TOUCH, reac_volume) - if(!istype(M, /mob/living)) + if(!isliving(M)) return if(M.has_bane(BANE_SILVER)) M.reagents.add_reagent("toxin", reac_volume) @@ -671,7 +793,7 @@ /datum/reagent/uranium/reaction_turf(turf/T, reac_volume) if(reac_volume >= 3) - if(!istype(T, /turf/open/space)) + if(!isspaceturf(T)) var/obj/effect/decal/cleanable/greenglow/GG = locate() in T.contents if(!GG) GG = new/obj/effect/decal/cleanable/greenglow(T) @@ -698,7 +820,7 @@ color = "#660000" // rgb: 102, 0, 0 /datum/reagent/fuel/reaction_mob(mob/living/M, method=TOUCH, reac_volume)//Splashing people with welding fuel to make them easy to ignite! - if(!istype(M, /mob/living)) + if(!isliving(M)) return if(method == TOUCH || method == VAPOR) M.adjust_fire_stacks(reac_volume / 10) @@ -721,10 +843,12 @@ qdel(O) else if(O) + O.remove_atom_colour(WASHABLE_COLOUR_PRIORITY) O.clean_blood() /datum/reagent/space_cleaner/reaction_turf(turf/T, reac_volume) if(reac_volume >= 1) + T.remove_atom_colour(WASHABLE_COLOUR_PRIORITY) T.clean_blood() for(var/obj/effect/decal/cleanable/C in T) qdel(C) @@ -734,17 +858,16 @@ /datum/reagent/space_cleaner/reaction_mob(mob/M, method=TOUCH, reac_volume) if(method == TOUCH || method == VAPOR) + M.remove_atom_colour(WASHABLE_COLOUR_PRIORITY) if(iscarbon(M)) var/mob/living/carbon/C = M - if(istype(M,/mob/living/carbon/human)) + if(ishuman(M)) var/mob/living/carbon/human/H = M if(H.lip_style) H.lip_style = null H.update_body() - if(C.r_hand) - C.r_hand.clean_blood() - if(C.l_hand) - C.l_hand.clean_blood() + for(var/obj/item/I in C.held_items) + I.clean_blood() if(C.wear_mask) if(C.wear_mask.clean_blood()) C.update_inv_wear_mask() @@ -801,6 +924,7 @@ id = "nanomachines" description = "Microscopic construction robots." color = "#535E66" // rgb: 83, 94, 102 + can_synth = 0 /datum/reagent/nanites/reaction_mob(mob/M, method=TOUCH, reac_volume, show_message = 1, touch_protection = 0) if(method==PATCH || method==INGEST || method==INJECT || (method == VAPOR && prob(min(reac_volume,100)*(1 - touch_protection)))) @@ -811,6 +935,7 @@ id = "xenomicrobes" description = "Microbes with an entirely alien cellular structure." color = "#535E66" // rgb: 83, 94, 102 + can_synth = 0 /datum/reagent/xenomicrobes/reaction_mob(mob/M, method=TOUCH, reac_volume, show_message = 1, touch_protection = 0) if(method==PATCH || method==INGEST || method==INJECT || (method == VAPOR && prob(min(reac_volume,100)*(1 - touch_protection)))) @@ -856,7 +981,7 @@ name = "Carbon Dioxide" id = "co2" reagent_state = GAS - description = "A gas commonly produced by burning carbon fuels." + description = "A gas commonly produced by burning carbon fuels. You're constantly producing this in your lungs." color = "#B0B0B0" // rgb : 192, 192, 192 /datum/reagent/carbondioxide/reaction_obj(obj/O, reac_volume) @@ -869,6 +994,23 @@ T.atmos_spawn_air("co2=[reac_volume/5];TEMP=[T20C]") return +/datum/reagent/nitrous_oxide + name = "Nitrous Oxide" + id = "nitrous_oxide" + description = "A potent oxidizer used as fuel in rockets and as an anaesthetic during surgery." + reagent_state = LIQUID + color = "#808080" + +/datum/reagent/nitrous_oxide/reaction_obj(obj/O, reac_volume) + if((!O) || (!reac_volume)) + return 0 + O.atmos_spawn_air("n2o=[reac_volume/5];TEMP=[T20C]") + +/datum/reagent/nitrous_oxide/reaction_turf(turf/open/T, reac_volume) + if(istype(T)) + T.atmos_spawn_air("n2o=[reac_volume/5];TEMP=[T20C]") + return + /////////////////////////Coloured Crayon Powder//////////////////////////// @@ -1001,21 +1143,14 @@ /datum/reagent/iodine name = "Iodine" id = "iodine" - description = "A slippery solution." - reagent_state = LIQUID - color = "#C8A5DC" - -/datum/reagent/fluorine - name = "Fluorine" - id = "fluorine" - description = "A slippery solution." + description = "Commonly added to table salt as a nutrient. On its own it tastes far less pleasing." reagent_state = LIQUID color = "#C8A5DC" /datum/reagent/carpet name = "Carpet" id = "carpet" - description = "A slippery solution." + description = "For those that need a more creative way to roll out a red carpet." reagent_state = LIQUID color = "#C8A5DC" @@ -1029,35 +1164,35 @@ /datum/reagent/bromine name = "Bromine" id = "bromine" - description = "A slippery solution." + description = "A brownish liquid that's highly reactive. Useful for stopping free radicals, but not intended for human consumption." reagent_state = LIQUID color = "#C8A5DC" /datum/reagent/phenol name = "Phenol" id = "phenol" - description = "Used for certain medical recipes." + description = "An aromatic ring of carbon with a hydroxyl group. A useful precursor to some medicines, but has no healing properties on its own." reagent_state = LIQUID color = "#C8A5DC" /datum/reagent/ash name = "Ash" id = "ash" - description = "Basic ingredient in a couple of recipes." + description = "Supposedly pheonixes rise from these, but you've never seen it." reagent_state = LIQUID color = "#C8A5DC" /datum/reagent/acetone name = "Acetone" id = "acetone" - description = "Common ingredient in other recipes." + description = "A slick, slightly carcinogenic liquid. Has a multitude of mundane uses in everyday life." reagent_state = LIQUID color = "#C8A5DC" /datum/reagent/colorful_reagent name = "Colorful Reagent" id = "colorful_reagent" - description = "A solution." + description = "Thoroughly sample the rainbow." reagent_state = LIQUID color = "#C8A5DC" var/list/random_color_list = list("#00aedb","#a200ff","#f47835","#d41243","#d11141","#00b159","#00aedb","#f37735","#ffc425","#008744","#0057e7","#d62d20","#ffa700") @@ -1065,29 +1200,29 @@ /datum/reagent/colorful_reagent/on_mob_life(mob/living/M) if(M && isliving(M)) - M.color = pick(random_color_list) + M.add_atom_colour(pick(random_color_list), WASHABLE_COLOUR_PRIORITY) ..() return /datum/reagent/colorful_reagent/reaction_mob(mob/living/M, reac_volume) if(M && isliving(M)) - M.color = pick(random_color_list) + M.add_atom_colour(pick(random_color_list), WASHABLE_COLOUR_PRIORITY) ..() /datum/reagent/colorful_reagent/reaction_obj(obj/O, reac_volume) if(O) - O.color = pick(random_color_list) + O.add_atom_colour(pick(random_color_list), WASHABLE_COLOUR_PRIORITY) ..() /datum/reagent/colorful_reagent/reaction_turf(turf/T, reac_volume) if(T) - T.color = pick(random_color_list) + T.add_atom_colour(pick(random_color_list), WASHABLE_COLOUR_PRIORITY) ..() /datum/reagent/hair_dye name = "Quantum Hair Dye" id = "hair_dye" - description = "A solution." + description = "Has a high chance of making you look like a mad scientist." reagent_state = LIQUID color = "#C8A5DC" var/list/potential_colors = list("0ad","a0f","f73","d14","d14","0b5","0ad","f73","fc2","084","05e","d22","fa0") // fucking hair code @@ -1135,21 +1270,21 @@ /datum/reagent/saltpetre name = "Saltpetre" id = "saltpetre" - description = "Volatile." + description = "Volatile. Controversial. Third Thing." reagent_state = LIQUID color = "#60A584" // rgb: 96, 165, 132 /datum/reagent/lye name = "Lye" id = "lye" - description = "Also known as sodium hydroxide." + description = "Also known as sodium hydroxide. As a profession making this is somewhat underwhelming." reagent_state = LIQUID color = "#FFFFD6" // very very light yellow /datum/reagent/drying_agent name = "Drying agent" id = "drying_agent" - description = "Can be used to dry things." + description = "A desiccant. Can be used to dry things." reagent_state = LIQUID color = "#A70FFF" @@ -1169,7 +1304,6 @@ /datum/reagent/toxin/mutagen/mutagenvirusfood name = "mutagenic agar" id = "mutagenvirusfood" - description = "mutates blood" color = "#A3C00F" // rgb: 163,192,15 /datum/reagent/toxin/mutagen/mutagenvirusfood/sugar @@ -1180,13 +1314,11 @@ /datum/reagent/medicine/synaptizine/synaptizinevirusfood name = "virus rations" id = "synaptizinevirusfood" - description = "mutates blood" color = "#D18AA5" // rgb: 209,138,165 /datum/reagent/toxin/plasma/plasmavirusfood name = "virus plasma" id = "plasmavirusfood" - description = "mutates blood" color = "#A69DA9" // rgb: 166,157,169 /datum/reagent/toxin/plasma/plasmavirusfood/weak @@ -1194,6 +1326,23 @@ id = "weakplasmavirusfood" color = "#CEC3C6" // rgb: 206,195,198 +/datum/reagent/uranium/uraniumvirusfood + name = "decaying uranium gel" + id = "uraniumvirusfood" + color = "#67ADBA" // rgb: 103,173,186 + +/datum/reagent/uranium/uraniumvirusfood/unstable + name = "unstable uranium gel" + id = "uraniumplasmavirusfood_unstable" + color = "#2FF2CB" // rgb: 47,242,203 + +/datum/reagent/uranium/uraniumvirusfood/stable + name = "stable uranium gel" + id = "uraniumplasmavirusfood_stable" + color = "#04506C" // rgb: 4,80,108 + +// Bee chemicals + /datum/reagent/royal_bee_jelly name = "royal bee jelly" id = "royal_bee_jelly" @@ -1205,7 +1354,9 @@ M.say(pick("Bzzz...","BZZ BZZ","Bzzzzzzzzzzz...")) ..() -datum/reagent/romerol +//Misc reagents + +/datum/reagent/romerol name = "romerol" // the REAL zombie powder id = "romerol" @@ -1216,8 +1367,40 @@ datum/reagent/romerol of the host body." color = "#123524" // RGB (18, 53, 36) metabolization_rate = INFINITY + can_synth = 0 /datum/reagent/romerol/on_mob_life(mob/living/carbon/human/H) // Silently add the zombie infection organ to be activated upon death new /obj/item/organ/body_egg/zombie_infection(H) ..() + +/datum/reagent/growthserum + name = "Growth serum" + id = "growthserum" + description = "A commercial chemical designed to help older men in the bedroom."//not really it just makes you a giant + color = "#ff0000"//strong red. rgb 255, 0, 0 + var/current_size = 1 + +/datum/reagent/growthserum/on_mob_life(mob/living/carbon/H) + var/newsize = current_size + switch(volume) + if(0 to 19) + newsize = 1.25 + if(20 to 49) + newsize = 1.5 + if(50 to 99) + newsize = 2 + if(100 to 199) + newsize = 2.5 + if(200 to INFINITY) + newsize = 3.5 + + H.resize = newsize/current_size + current_size = newsize + H.update_transform() + ..() + +/datum/reagent/growthserum/on_mob_delete(mob/living/M) + M.resize = 1/current_size + M.update_transform() + ..() diff --git a/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm b/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm index 22d718e0b7..249825cde2 100644 --- a/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm @@ -7,7 +7,7 @@ color = "#550000" /datum/reagent/thermite/reaction_turf(turf/T, reac_volume) - if(reac_volume >= 1 && istype(T, /turf/closed/wall)) + if(reac_volume >= 1 && iswallturf(T)) var/turf/closed/wall/Wall = T if(istype(Wall, /turf/closed/wall/r_wall)) Wall.thermite = Wall.thermite+(reac_volume*2.5) @@ -54,17 +54,17 @@ var/turf/open/floor/plating/F = T if(prob(10 + F.burnt + 5*F.broken)) //broken or burnt plating is more susceptible to being destroyed F.ChangeTurf(F.baseturf) - if(istype(T, /turf/open/floor/)) + if(isfloorturf(T)) var/turf/open/floor/F = T if(prob(reac_volume)) F.make_plating() else if(prob(reac_volume)) F.burn_tile() - if(istype(F, /turf/open/floor/)) + if(isfloorturf(F)) for(var/turf/turf in range(1,F)) if(!locate(/obj/effect/hotspot) in turf) PoolOrNew(/obj/effect/hotspot, F) - if(istype(T, /turf/closed/wall/)) + if(iswallturf(T)) var/turf/closed/wall/W = T if(prob(reac_volume)) W.ChangeTurf(/turf/open/floor/plating) @@ -164,7 +164,7 @@ /datum/reagent/cryostylane name = "Cryostylane" id = "cryostylane" - description = "Comes into existence at 20K. As long as there is sufficient oxygen for it to react with, Cryostylane slowly cools all other reagents in the mob down to 0K." + description = "Comes into existence at 20K. As long as there is sufficient oxygen for it to react with, Cryostylane slowly cools all other reagents in the container 0K." color = "#0000DC" metabolization_rate = 0.5 * REAGENTS_METABOLISM @@ -190,7 +190,7 @@ /datum/reagent/pyrosium name = "Pyrosium" id = "pyrosium" - description = "Comes into existence at 20K. As long as there is sufficient oxygen for it to react with, Pyrosium slowly cools all other reagents in the mob down to 0K." + description = "Comes into existence at 20K. As long as there is sufficient oxygen for it to react with, Pyrosium slowly heats all other reagents in the container." color = "#64FAC8" metabolization_rate = 0.5 * REAGENTS_METABOLISM @@ -206,3 +206,20 @@ holder.chem_temp += 10 holder.handle_reactions() ..() + +/datum/reagent/teslium //Teslium. Causes periodic shocks, and makes shocks against the target much more effective. + name = "Teslium" + id = "teslium" + description = "An unstable, electrically-charged metallic slurry. Periodically electrocutes its victim, and makes electrocutions against them more deadly. Excessively heating teslium results in dangerous destabilization. Do not allow to come into contact with water." + reagent_state = LIQUID + color = "#20324D" //RGB: 32, 50, 77 + metabolization_rate = 0.5 * REAGENTS_METABOLISM + var/shock_timer = 0 + +/datum/reagent/teslium/on_mob_life(mob/living/M) + shock_timer++ + if(shock_timer >= rand(5,30)) //Random shocks are wildly unpredictable + shock_timer = 0 + M.electrocute_act(rand(5,20), "Teslium in their body", 1, 1) //Override because it's caused from INSIDE of you + playsound(M, "sparks", 50, 1) + ..() \ No newline at end of file diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm index 2db1424345..09281f2c25 100644 --- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm @@ -34,11 +34,11 @@ if(!M.has_dna()) return //No robots, AIs, aliens, Ians or other mobs should be affected by this. if((method==VAPOR && prob(min(33, reac_volume))) || method==INGEST || method==PATCH || method==INJECT) - randmuti(M) + M.randmuti() if(prob(98)) - randmutb(M) + M.randmutb() else - randmutg(M) + M.randmutg() M.updateappearance() M.domutcheck() ..() @@ -58,7 +58,6 @@ /datum/reagent/toxin/plasma/on_mob_life(mob/living/M) if(holder.has_reagent("epinephrine")) holder.remove_reagent("epinephrine", 2*REM) - M.apply_effect(0.5*REM/M.metabolism_efficiency,IRRADIATE,0) if(iscarbon(M)) var/mob/living/carbon/C = M C.adjustPlasma(20) @@ -75,7 +74,7 @@ return /datum/reagent/toxin/plasma/reaction_mob(mob/living/M, method=TOUCH, reac_volume)//Splashing people with plasma is stronger than fuel! - if(!istype(M, /mob/living)) + if(!isliving(M)) return if(method == TOUCH || method == VAPOR) M.adjust_fire_stacks(reac_volume / 5) @@ -95,7 +94,7 @@ if(iscarbon(M)) C = M CHECK_DNA_AND_SPECIES(C) - if(NOBREATH in C.dna.species.specflags) + if(NOBREATH in C.dna.species.species_traits) . = FALSE if(.) @@ -119,7 +118,7 @@ M.adjustToxLoss(rand(20,60)*REM, 0) . = 1 else if(prob(40)) - M.heal_organ_damage(5*REM,0, 0) + M.heal_bodypart_damage(5*REM,0, 0) . = 1 ..() @@ -185,10 +184,10 @@ if(istype(O,/obj/structure/alien/weeds)) var/obj/structure/alien/weeds/alien_weeds = O alien_weeds.take_damage(rand(15,35), BRUTE, 0) // Kills alien weeds pretty fast - else if(istype(O,/obj/effect/glowshroom)) //even a small amount is enough to kill it + else if(istype(O,/obj/structure/glowshroom)) //even a small amount is enough to kill it qdel(O) - else if(istype(O,/obj/effect/spacevine)) - var/obj/effect/spacevine/SV = O + else if(istype(O,/obj/structure/spacevine)) + var/obj/structure/spacevine/SV = O SV.on_chem_effect(src) /datum/reagent/toxin/plantbgone/reaction_mob(mob/living/M, method=TOUCH, reac_volume) @@ -521,12 +520,12 @@ M.adjustOxyLoss(rand(5,25), 0) . = 1 if(3) - if(istype(M, /mob/living/carbon/human)) + if(ishuman(M)) var/mob/living/carbon/human/H = M if(!H.heart_attack) H.heart_attack = 1 // rip in pepperoni if(H.stat == CONSCIOUS) - H.visible_message("[H] clutches at their chest as if their heart stopped!") + H.visible_message("[H] clutches at [H.p_their()] chest as if [H.p_their()] heart stopped!") else H.losebreath += 10 H.adjustOxyLoss(rand(5,25), 0) @@ -590,7 +589,10 @@ metabolization_rate = 0.5 * REAGENTS_METABOLISM /datum/reagent/toxin/amanitin/on_mob_delete(mob/living/M) - M.adjustToxLoss(current_cycle*3*REM) + var/toxdamage = current_cycle*3*REM + M.adjustToxLoss(toxdamage) + if(M) + add_logs(M, get_turf(M), "has taken [toxdamage] toxin damage from amanitin toxin") ..() /datum/reagent/toxin/lipolicide @@ -603,9 +605,9 @@ toxpwr = 0.5 /datum/reagent/toxin/lipolicide/on_mob_life(mob/living/M) - if(!holder.has_reagent("nutriment")) + if(M.nutrition <= NUTRITION_LEVEL_STARVING) M.adjustToxLoss(0.5*REM, 0) - M.nutrition = max( M.nutrition - 5 * REAGENTS_METABOLISM, 0) + M.nutrition = max(M.nutrition - 3, 0) // making the chef more valuable, one meme trap at a time M.overeatduration = 0 return ..() @@ -655,25 +657,50 @@ . = 1 return ..() || . -/datum/reagent/toxin/teslium //Teslium. Causes periodic shocks, and makes shocks against the target much more effective. - name = "Teslium" - id = "teslium" - description = "An unstable, electrically-charged metallic slurry. Periodically electrocutes its victim, and makes electrocutions against them more deadly." - reagent_state = LIQUID - color = "#20324D" //RGB: 32, 50, 77 - metabolization_rate = 0.5 * REAGENTS_METABOLISM - toxpwr = 0 - var/shock_timer = 0 -/datum/reagent/toxin/teslium/on_mob_life(mob/living/M) - shock_timer++ - if(shock_timer >= rand(5,30)) //Random shocks are wildly unpredictable - shock_timer = 0 - M.electrocute_act(rand(5,20), "Teslium in their body", 1, 1) //Override because it's caused from INSIDE of you - playsound(M, "sparks", 50, 1) +/datum/reagent/toxin/rotatium //Rotatium. Fucks up your rotation and is hilarious + name = "Rotatium" + id = "rotatium" + description = "A constantly swirling, oddly colourful fluid. Causes the consumer's sense of direction and hand-eye coordination to become wild." + reagent_state = LIQUID + color = "#AC88CA" //RGB: 172, 136, 202 + metabolization_rate = 0.6 * REAGENTS_METABOLISM + toxpwr = 0.5 + +/datum/reagent/toxin/rotatium/on_mob_life(mob/living/M) + if(M.hud_used) + if(current_cycle >= 20 && current_cycle%20 == 0) + var/list/screens = list(M.hud_used.plane_masters["[GAME_PLANE]"], M.hud_used.plane_masters["[LIGHTING_PLANE]"]) + var/rotation = min(round(current_cycle/20), 89) // By this point the player is probably puking and quitting anyway + for(var/whole_screen in screens) + animate(whole_screen, transform = matrix(rotation, MATRIX_ROTATE), time = 5, easing = QUAD_EASING, loop = -1) + animate(transform = matrix(-rotation, MATRIX_ROTATE), time = 5, easing = QUAD_EASING) + return ..() + +/datum/reagent/toxin/rotatium/on_mob_delete(mob/living/M) + if(M && M.hud_used) + var/list/screens = list(M.hud_used.plane_masters["[GAME_PLANE]"], M.hud_used.plane_masters["[LIGHTING_PLANE]"]) + for(var/whole_screen in screens) + animate(whole_screen, transform = matrix(), time = 5, easing = QUAD_EASING) ..() - +/datum/reagent/toxin/anacea + name = "Anacea" + id = "anacea" + description = "A toxin that quickly purges medicines and metabolizes very slowly." + reagent_state = LIQUID + color = "#3C5133" + metabolization_rate = 0.08 * REAGENTS_METABOLISM + toxpwr = 0.15 + +/datum/reagent/toxin/anacea/on_mob_life(mob/living/M) + var/remove_amt = 5 + if(holder.has_reagent("calomel") || holder.has_reagent("pen_acid")) + remove_amt = 0.5 + for(var/datum/reagent/medicine/R in M.reagents.reagent_list) + M.reagents.remove_reagent(R.id,remove_amt) + return ..() + //ACID @@ -688,8 +715,6 @@ /datum/reagent/toxin/acid/reaction_mob(mob/living/carbon/C, method=TOUCH, reac_volume) if(!istype(C)) return - if(C.dna && C.dna.species.id == "xeno") - return reac_volume = round(reac_volume,0.1) if(method == INGEST) C.adjustBruteLoss(min(6*toxpwr, reac_volume * toxpwr)) @@ -697,7 +722,7 @@ if(method == INJECT) C.adjustBruteLoss(1.5 * min(6*toxpwr, reac_volume * toxpwr)) return - C.acid_act(acidpwr, toxpwr, reac_volume) + C.acid_act(acidpwr, reac_volume) /datum/reagent/toxin/acid/reaction_obj(obj/O, reac_volume) if(istype(O.loc, /mob)) //handled in human acid_act() @@ -709,8 +734,7 @@ if (!istype(T)) return reac_volume = round(reac_volume,0.1) - for(var/obj/O in T) - O.acid_act(acidpwr, reac_volume) + T.acid_act(acidpwr, reac_volume) /datum/reagent/toxin/acid/fluacid name = "Fluorosulfuric acid" @@ -733,8 +757,10 @@ metabolization_rate = 1.5 * REAGENTS_METABOLISM /datum/reagent/toxin/peaceborg/confuse/on_mob_life(mob/living/M) - M.confused += 1 - M.Dizzy(1) + if(M.confused < 6) + M.confused = Clamp(M.confused + 3, 0, 5) + if(M.dizziness < 6) + M.dizziness = Clamp(M.dizziness + 3, 0, 5) if(prob(20)) M << "You feel confused and disorientated." ..() @@ -747,8 +773,9 @@ metabolization_rate = 1.5 * REAGENTS_METABOLISM /datum/reagent/toxin/peaceborg/tire/on_mob_life(mob/living/M) - if(M.staminaloss < 50) + var/healthcomp = (100 - M.health) //DOES NOT ACCOUNT FOR ADMINBUS THINGS THAT MAKE YOU HAVE MORE THAN 200/210 HEALTH, OR SOMETHING OTHER THAN A HUMAN PROCESSING THIS. + if(M.staminaloss < (45 - healthcomp)) //At 50 health you would have 200 - 150 health meaning 50 compensation. 60 - 50 = 10, so would only do 10-19 stamina.) M.adjustStaminaLoss(10) if(prob(30)) M << "You should sit down and take a rest..." - ..() \ No newline at end of file + ..() diff --git a/code/modules/reagents/chemistry/recipes.dm b/code/modules/reagents/chemistry/recipes.dm index f841370c08..ebc98cbf5e 100644 --- a/code/modules/reagents/chemistry/recipes.dm +++ b/code/modules/reagents/chemistry/recipes.dm @@ -1,7 +1,7 @@ /datum/chemical_reaction var/name = null var/id = null - var/result = null + var/list/results = new/list() var/list/required_reagents = new/list() var/list/required_catalysts = new/list() @@ -9,11 +9,11 @@ var/atom/required_container = null // the container required for the reaction to happen var/required_other = 0 // an integer required for the reaction to happen - var/result_amount = 0 var/secondary = 0 // set to nonzero if secondary reaction var/mob_react = 0 //Determines if a chemical reaction can occur inside a mob var/required_temp = 0 + var/is_cold_recipe = 0 // Set to 1 if you want the recipe to only react when it's BELOW the required temp. var/mix_message = "The solution begins to bubble." //The message shown to nearby people upon mixing, if applicable var/mix_sound = 'sound/effects/bubbles.ogg' //The sound played upon mixing, if applicable @@ -36,7 +36,7 @@ var/list/chemical_mob_spawn_nicecritters = list() // and possible friendly mobs var/atom/A = holder.my_atom var/turf/T = get_turf(A) var/area/my_area = get_area(T) - var/message = "A [reaction_name] reaction has occured in [my_area.name]. (JMP)" + var/message = "A [reaction_name] reaction has occurred in [my_area.name]. (JMP)" message += " (VV)" var/mob/M = get(A, /mob) @@ -50,16 +50,16 @@ var/list/chemical_mob_spawn_nicecritters = list() // and possible friendly mobs playsound(get_turf(holder.my_atom), 'sound/effects/phasein.ogg', 100, 1) for(var/mob/living/carbon/C in viewers(get_turf(holder.my_atom), null)) - C.flash_eyes() + C.flash_act() for(var/i = 1, i <= amount_to_spawn, i++) var/chosen if (reaction_name == "Friendly Gold Slime") chosen = pick(chemical_mob_spawn_nicecritters) else chosen = pick(chemical_mob_spawn_meancritters) - var/mob/living/simple_animal/C = new chosen + var/spawnloc = get_turf(holder.my_atom) + var/mob/living/simple_animal/C = new chosen(spawnloc) C.faction |= mob_faction - C.loc = get_turf(holder.my_atom) if(prob(50)) for(var/j = 1, j <= rand(1, 3), j++) step(C, pick(NORTH,SOUTH,EAST,WEST)) diff --git a/code/modules/reagents/chemistry/recipes/drugs.dm b/code/modules/reagents/chemistry/recipes/drugs.dm index 5d2c6cf3bc..f9d9b24ac5 100644 --- a/code/modules/reagents/chemistry/recipes/drugs.dm +++ b/code/modules/reagents/chemistry/recipes/drugs.dm @@ -1,16 +1,14 @@ /datum/chemical_reaction/space_drugs name = "Space Drugs" id = "space_drugs" - result = "space_drugs" + results = list("space_drugs" = 3) required_reagents = list("mercury" = 1, "sugar" = 1, "lithium" = 1) - result_amount = 3 /datum/chemical_reaction/crank name = "Crank" id = "crank" - result = "crank" + results = list("crank" = 5) required_reagents = list("diphenhydramine" = 1, "ammonia" = 1, "lithium" = 1, "sacid" = 1, "welding_fuel" = 1) - result_amount = 5 mix_message = "The mixture violently reacts, leaving behind a few crystalline shards." required_temp = 390 @@ -18,31 +16,27 @@ /datum/chemical_reaction/krokodil name = "Krokodil" id = "krokodil" - result = "krokodil" + results = list("krokodil" = 6) required_reagents = list("diphenhydramine" = 1, "morphine" = 1, "cleaner" = 1, "potassium" = 1, "phosphorus" = 1, "welding_fuel" = 1) - result_amount = 6 mix_message = "The mixture dries into a pale blue powder." required_temp = 380 /datum/chemical_reaction/methamphetamine name = "methamphetamine" id = "methamphetamine" - result = "methamphetamine" + results = list("methamphetamine" = 4) required_reagents = list("ephedrine" = 1, "iodine" = 1, "phosphorus" = 1, "hydrogen" = 1) - result_amount = 4 required_temp = 374 /datum/chemical_reaction/bath_salts name = "bath_salts" id = "bath_salts" - result = "bath_salts" + results = list("bath_salts" = 7) required_reagents = list("????" = 1, "saltpetre" = 1, "nutriment" = 1, "cleaner" = 1, "enzyme" = 1, "tea" = 1, "mercury" = 1) - result_amount = 7 required_temp = 374 /datum/chemical_reaction/aranesp name = "aranesp" id = "aranesp" - result = "aranesp" + results = list("aranesp" = 3) required_reagents = list("epinephrine" = 1, "atropine" = 1, "morphine" = 1) - result_amount = 3 diff --git a/code/modules/reagents/chemistry/recipes/medicine.dm b/code/modules/reagents/chemistry/recipes/medicine.dm index 184e3fd035..e446ab9736 100644 --- a/code/modules/reagents/chemistry/recipes/medicine.dm +++ b/code/modules/reagents/chemistry/recipes/medicine.dm @@ -2,249 +2,214 @@ /datum/chemical_reaction/leporazine name = "Leporazine" id = "leporazine" - result = "leporazine" + results = list("leporazine" = 2) required_reagents = list("silicon" = 1, "copper" = 1) required_catalysts = list("plasma" = 5) - result_amount = 2 /datum/chemical_reaction/rezadone name = "Rezadone" id = "rezadone" - result = "rezadone" + results = list("rezadone" = 3) required_reagents = list("carpotoxin" = 1, "cryptobiolin" = 1, "copper" = 1) - result_amount = 3 /datum/chemical_reaction/spaceacillin name = "Spaceacillin" id = "spaceacillin" - result = "spaceacillin" + results = list("spaceacillin" = 2) required_reagents = list("cryptobiolin" = 1, "epinephrine" = 1) - result_amount = 2 /datum/chemical_reaction/inacusiate name = "inacusiate" id = "inacusiate" - result = "inacusiate" + results = list("inacusiate" = 2) required_reagents = list("water" = 1, "carbon" = 1, "charcoal" = 1) - result_amount = 2 /datum/chemical_reaction/synaptizine name = "Synaptizine" id = "synaptizine" - result = "synaptizine" + results = list("synaptizine" = 3) required_reagents = list("sugar" = 1, "lithium" = 1, "water" = 1) - result_amount = 3 /datum/chemical_reaction/charcoal name = "Charcoal" id = "charcoal" - result = "charcoal" + results = list("charcoal" = 2) required_reagents = list("ash" = 1, "sodiumchloride" = 1) - result_amount = 2 mix_message = "The mixture yields a fine black powder." required_temp = 380 /datum/chemical_reaction/silver_sulfadiazine name = "Silver Sulfadiazine" id = "silver_sulfadiazine" - result = "silver_sulfadiazine" + results = list("silver_sulfadiazine" = 5) required_reagents = list("ammonia" = 1, "silver" = 1, "sulfur" = 1, "oxygen" = 1, "chlorine" = 1) - result_amount = 5 /datum/chemical_reaction/salglu_solution name = "Saline-Glucose Solution" id = "salglu_solution" - result = "salglu_solution" + results = list("salglu_solution" = 3) required_reagents = list("sodiumchloride" = 1, "water" = 1, "sugar" = 1) - result_amount = 3 /datum/chemical_reaction/mine_salve name = "Miner's Salve" id = "mine_salve" - result = "mine_salve" + results = list("mine_salve" = 3) required_reagents = list("oil" = 1, "water" = 1, "iron" = 1) - result_amount = 3 /datum/chemical_reaction/mine_salve2 name = "Miner's Salve" id = "mine_salve" - result = "mine_salve" + results = list("mine_salve" = 15) required_reagents = list("plasma" = 5, "iron" = 5, "sugar" = 1) // A sheet of plasma, a twinkie and a sheet of metal makes four of these - result_amount = 15 /datum/chemical_reaction/synthflesh name = "Synthflesh" id = "synthflesh" - result = "synthflesh" + results = list("synthflesh" = 3) required_reagents = list("blood" = 1, "carbon" = 1, "styptic_powder" = 1) - result_amount = 3 /datum/chemical_reaction/styptic_powder name = "Styptic Powder" id = "styptic_powder" - result = "styptic_powder" + results = list("styptic_powder" = 4) required_reagents = list("aluminium" = 1, "hydrogen" = 1, "oxygen" = 1, "sacid" = 1) - result_amount = 4 mix_message = "The solution yields an astringent powder." /datum/chemical_reaction/calomel name = "Calomel" id = "calomel" - result = "calomel" + results = list("calomel" = 2) required_reagents = list("mercury" = 1, "chlorine" = 1) - result_amount = 2 required_temp = 374 /datum/chemical_reaction/potass_iodide name = "Potassium Iodide" id = "potass_iodide" - result = "potass_iodide" + results = list("potass_iodide" = 2) required_reagents = list("potassium" = 1, "iodine" = 1) - result_amount = 2 /datum/chemical_reaction/pen_acid name = "Pentetic Acid" id = "pen_acid" - result = "pen_acid" + results = list("pen_acid" = 6) required_reagents = list("welding_fuel" = 1, "chlorine" = 1, "ammonia" = 1, "formaldehyde" = 1, "sodium" = 1, "cyanide" = 1) - result_amount = 6 /datum/chemical_reaction/sal_acid name = "Salicyclic Acid" id = "sal_acid" - result = "sal_acid" + results = list("sal_acid" = 5) required_reagents = list("sodium" = 1, "phenol" = 1, "carbon" = 1, "oxygen" = 1, "sacid" = 1) - result_amount = 5 /datum/chemical_reaction/oxandrolone name = "Oxandrolone" id = "oxandrolone" - result = "oxandrolone" + results = list("oxandrolone" = 6) required_reagents = list("carbon" = 3, "phenol" = 1, "hydrogen" = 1, "oxygen" = 1) - result_amount = 6 /datum/chemical_reaction/salbutamol name = "Salbutamol" id = "salbutamol" - result = "salbutamol" + results = list("salbutamol" = 5) required_reagents = list("sal_acid" = 1, "lithium" = 1, "aluminium" = 1, "bromine" = 1, "ammonia" = 1) - result_amount = 5 /datum/chemical_reaction/perfluorodecalin name = "Perfluorodecalin" id = "perfluorodecalin" - result = "perfluorodecalin" + results = list("perfluorodecalin" = 3) required_reagents = list("hydrogen" = 1, "fluorine" = 1, "oil" = 1) - result_amount = 3 required_temp = 370 mix_message = "The mixture rapidly turns into a dense pink liquid." /datum/chemical_reaction/ephedrine name = "Ephedrine" id = "ephedrine" - result = "ephedrine" + results = list("ephedrine" = 4) required_reagents = list("sugar" = 1, "oil" = 1, "hydrogen" = 1, "diethylamine" = 1) - result_amount = 4 mix_message = "The solution fizzes and gives off toxic fumes." /datum/chemical_reaction/diphenhydramine name = "Diphenhydramine" id = "diphenhydramine" - result = "diphenhydramine" + results = list("diphenhydramine" = 4) required_reagents = list("oil" = 1, "carbon" = 1, "bromine" = 1, "diethylamine" = 1, "ethanol" = 1) - result_amount = 4 mix_message = "The mixture dries into a pale blue powder." /datum/chemical_reaction/oculine name = "Oculine" id = "oculine" - result = "oculine" + results = list("oculine" = 3) required_reagents = list("charcoal" = 1, "carbon" = 1, "hydrogen" = 1) - result_amount = 3 mix_message = "The mixture sputters loudly and becomes a pale pink color." /datum/chemical_reaction/atropine name = "Atropine" id = "atropine" - result = "atropine" + results = list("atropine" = 5) required_reagents = list("ethanol" = 1, "acetone" = 1, "diethylamine" = 1, "phenol" = 1, "sacid" = 1) - result_amount = 5 /datum/chemical_reaction/epinephrine name = "Epinephrine" id = "epinephrine" - result = "epinephrine" + results = list("epinephrine" = 6) required_reagents = list("phenol" = 1, "acetone" = 1, "diethylamine" = 1, "oxygen" = 1, "chlorine" = 1, "hydrogen" = 1) - result_amount = 6 /datum/chemical_reaction/strange_reagent name = "Strange Reagent" id = "strange_reagent" - result = "strange_reagent" + results = list("strange_reagent" = 3) required_reagents = list("omnizine" = 1, "holywater" = 1, "mutagen" = 1) - result_amount = 3 /datum/chemical_reaction/mannitol name = "Mannitol" id = "mannitol" - result = "mannitol" + results = list("mannitol" = 3) required_reagents = list("sugar" = 1, "hydrogen" = 1, "water" = 1) - result_amount = 3 mix_message = "The solution slightly bubbles, becoming thicker." /datum/chemical_reaction/mutadone name = "Mutadone" id = "mutadone" - result = "mutadone" + results = list("mutadone" = 3) required_reagents = list("mutagen" = 1, "acetone" = 1, "bromine" = 1) - result_amount = 3 /datum/chemical_reaction/antihol name = "antihol" id = "antihol" - result = "antihol" + results = list("antihol" = 3) required_reagents = list("ethanol" = 1, "charcoal" = 1, "copper" = 1) - result_amount = 3 /datum/chemical_reaction/cryoxadone name = "Cryoxadone" id = "cryoxadone" - result = "cryoxadone" + results = list("cryoxadone" = 3) required_reagents = list("stable_plasma" = 1, "acetone" = 1, "mutagen" = 1) - result_amount = 3 /datum/chemical_reaction/haloperidol name = "Haloperidol" id = "haloperidol" - result = "haloperidol" + results = list("haloperidol" = 5) required_reagents = list("chlorine" = 1, "fluorine" = 1, "aluminium" = 1, "potass_iodide" = 1, "oil" = 1) - result_amount = 5 /datum/chemical_reaction/bicaridine name = "Bicaridine" id = "bicaridine" - result = "bicaridine" + results = list("bicaridine" = 3) required_reagents = list("carbon" = 1, "oxygen" = 1, "sugar" = 1) - result_amount = 3 /datum/chemical_reaction/kelotane name = "Kelotane" id = "kelotane" - result = "kelotane" + results = list("kelotane" = 2) required_reagents = list("carbon" = 1, "silicon" = 1) - result_amount = 2 - /datum/chemical_reaction/antitoxin name = "Antitoxin" id = "antitoxin" - result = "antitoxin" + results = list("antitoxin" = 3) required_reagents = list("nitrogen" = 1, "silicon" = 1, "potassium" = 1) - result_amount = 3 /datum/chemical_reaction/tricordrazine name = "Tricordrazine" id = "tricordrazine" - result = "tricordrazine" - required_reagents = list("bicaridine" = 1, "kelotane" = 1, "antitoxin" = 1) - result_amount = 3 \ No newline at end of file + results = list("tricordrazine" = 3) + required_reagents = list("bicaridine" = 1, "kelotane" = 1, "antitoxin" = 1) \ No newline at end of file diff --git a/code/modules/reagents/chemistry/recipes/others.dm b/code/modules/reagents/chemistry/recipes/others.dm index 65867e3f5b..c15d3f14fc 100644 --- a/code/modules/reagents/chemistry/recipes/others.dm +++ b/code/modules/reagents/chemistry/recipes/others.dm @@ -2,183 +2,293 @@ /datum/chemical_reaction/sterilizine name = "Sterilizine" id = "sterilizine" - result = "sterilizine" + results = list("sterilizine" = 3) required_reagents = list("ethanol" = 1, "charcoal" = 1, "chlorine" = 1) - result_amount = 3 /datum/chemical_reaction/lube name = "Space Lube" id = "lube" - result = "lube" + results = list("lube" = 4) required_reagents = list("water" = 1, "silicon" = 1, "oxygen" = 1) - result_amount = 4 /datum/chemical_reaction/spraytan name = "Spray Tan" id = "spraytan" - result = "spraytan" + results = list("spraytan" = 2) required_reagents = list("orangejuice" = 1, "oil" = 1) - result_amount = 2 /datum/chemical_reaction/spraytan2 name = "Spray Tan" id = "spraytan" - result = "spraytan" + results = list("spraytan" = 2) required_reagents = list("orangejuice" = 1, "cornoil" = 1) - result_amount = 2 /datum/chemical_reaction/impedrezene name = "Impedrezene" id = "impedrezene" - result = "impedrezene" + results = list("impedrezene" = 2) required_reagents = list("mercury" = 1, "oxygen" = 1, "sugar" = 1) - result_amount = 2 /datum/chemical_reaction/cryptobiolin name = "Cryptobiolin" id = "cryptobiolin" - result = "cryptobiolin" + results = list("cryptobiolin" = 3) required_reagents = list("potassium" = 1, "oxygen" = 1, "sugar" = 1) - result_amount = 3 /datum/chemical_reaction/glycerol name = "Glycerol" id = "glycerol" - result = "glycerol" + results = list("glycerol" = 1) required_reagents = list("cornoil" = 3, "sacid" = 1) - result_amount = 1 /datum/chemical_reaction/sodiumchloride name = "Sodium Chloride" id = "sodiumchloride" - result = "sodiumchloride" + results = list("sodiumchloride" = 3) required_reagents = list("water" = 1, "sodium" = 1, "chlorine" = 1) - result_amount = 3 /datum/chemical_reaction/plasmasolidification name = "Solid Plasma" id = "solidplasma" - result = null required_reagents = list("iron" = 5, "frostoil" = 5, "plasma" = 20) - result_amount = 1 mob_react = 1 /datum/chemical_reaction/plasmasolidification/on_reaction(datum/reagents/holder, created_volume) var/location = get_turf(holder.my_atom) - new /obj/item/stack/sheet/mineral/plasma(location) - return + for(var/i = 1, i <= created_volume, i++) + new /obj/item/stack/sheet/mineral/plasma(location) +/datum/chemical_reaction/goldsolidification + name = "Solid Gold" + id = "solidgold" + required_reagents = list("frostoil" = 5, "gold" = 20, "iron" = 1) + mob_react = 1 + +/datum/chemical_reaction/goldsolidification/on_reaction(datum/reagents/holder, created_volume) + var/location = get_turf(holder.my_atom) + for(var/i = 1, i <= created_volume, i++) + new /obj/item/stack/sheet/mineral/gold(location) + /datum/chemical_reaction/capsaicincondensation name = "Capsaicincondensation" id = "capsaicincondensation" - result = "condensedcapsaicin" + results = list("condensedcapsaicin" = 5) required_reagents = list("capsaicin" = 1, "ethanol" = 5) - result_amount = 5 /datum/chemical_reaction/soapification name = "Soapification" id = "soapification" - result = null required_reagents = list("liquidgibs" = 10, "lye" = 10) // requires two scooped gib tiles required_temp = 374 - result_amount = 1 mob_react = 1 /datum/chemical_reaction/soapification/on_reaction(datum/reagents/holder, created_volume) var/location = get_turf(holder.my_atom) - new /obj/item/weapon/soap/homemade(location) - return + for(var/i = 1, i <= created_volume, i++) + new /obj/item/weapon/soap/homemade(location) /datum/chemical_reaction/candlefication name = "Candlefication" id = "candlefication" - result = null required_reagents = list("liquidgibs" = 5, "oxygen" = 5) // required_temp = 374 - result_amount = 1 mob_react = 1 /datum/chemical_reaction/candlefication/on_reaction(datum/reagents/holder, created_volume) var/location = get_turf(holder.my_atom) - new /obj/item/candle(location) - return + for(var/i = 1, i <= created_volume, i++) + new /obj/item/candle(location) /datum/chemical_reaction/meatification name = "Meatification" id = "meatification" - result = null required_reagents = list("liquidgibs" = 10, "nutriment" = 10, "carbon" = 10) - result_amount = 1 mob_react = 1 /datum/chemical_reaction/meatification/on_reaction(datum/reagents/holder, created_volume) var/location = get_turf(holder.my_atom) - new /obj/item/weapon/reagent_containers/food/snacks/meat/slab/meatproduct(location) + for(var/i = 1, i <= created_volume, i++) + new /obj/item/weapon/reagent_containers/food/snacks/meat/slab/meatproduct(location) return /datum/chemical_reaction/carbondioxide name = "Direct Carbon Oxidation" id = "burningcarbon" - result = "co2" + results = list("co2" = 3) required_reagents = list("carbon" = 1, "oxygen" = 2) required_temp = 777 // pure carbon isn't especially reactive. - result_amount = 3 + +/datum/chemical_reaction/nitrous_oxide + name = "Nitrous Oxide" + id = "nitrous_oxide" + results = list("nitrous_oxide" = 2, "water" = 4) + required_reagents = list("ammonia" = 3, "nitrogen" = 1, "oxygen" = 2) + required_temp = 525 + +////////////////////////////////// Mutation Toxins /////////////////////////////////// + +/datum/chemical_reaction/stable_mutation_toxin + name = "Stable Mutation Toxin" + id = "stablemutationtoxin" + results = list("stablemutationtoxin" = 1) + required_reagents = list("unstablemutationtoxin" = 1, "blood" = 1) //classic + +/datum/chemical_reaction/lizard_mutation_toxin + name = "Lizard Mutation Toxin" + id = "lizardmutationtoxin" + results = list("lizardmutationtoxin" = 1) + required_reagents = list("unstablemutationtoxin" = 1, "radium" = 1) //mutant + +/datum/chemical_reaction/fly_mutation_toxin + name = "Fly Mutation Toxin" + id = "flymutationtoxin" + results = list("flymutationtoxin" = 1) + required_reagents = list("unstablemutationtoxin" = 1, "mutagen" = 1) //VERY mutant + +/datum/chemical_reaction/jelly_mutation_toxin + name = "Imperfect Mutation Toxin" + id = "jellymutationtoxin" + results = list("jellymutationtoxin" = 1) + required_reagents = list("unstablemutationtoxin" = 1, "slimejelly" = 1) //why would you even make this + +/datum/chemical_reaction/abductor_mutation_toxin + name = "Abductor Mutation Toxin" + id = "abductormutationtoxin" + results = list("abductormutationtoxin" = 1) + required_reagents = list("unstablemutationtoxin" = 1, "morphine" = 1) + +/datum/chemical_reaction/android_mutation_toxin + name = "Android Mutation Toxin" + id = "androidmutationtoxin" + results = list("androidmutationtoxin" = 1) + required_reagents = list("unstablemutationtoxin" = 1, "teslium" = 1) //beep boop + +/datum/chemical_reaction/pod_mutation_toxin + name = "Podperson Mutation Toxin" + id = "podmutationtoxin" + results = list("podmutationtoxin" = 1) + required_reagents = list("unstablemutationtoxin" = 1, "eznutriment" = 1) //plant food + +/datum/chemical_reaction/golem_mutation_toxin + name = "Golem Mutation Toxin" + id = "golemmutationtoxin" + results = list("golemmutationtoxin" = 1) + required_reagents = list("unstablemutationtoxin" = 1, "silver" = 1) //not too hard to get but also not just there in xenobio + + +//BLACKLISTED RACES +/datum/chemical_reaction/skeleton_mutation_toxin + name = "Skeleton Mutation Toxin" + id = "skeletonmutationtoxin" + results = list("skeletonmutationtoxin" = 1) + required_reagents = list("amutationtoxin" = 1, "milk" = 1) //good for yer bones + +/datum/chemical_reaction/zombie_mutation_toxin + name = "Zombie Mutation Toxin" + id = "zombiemutationtoxin" + results = list("zombiemutationtoxin" = 1) + required_reagents = list("amutationtoxin" = 1, "toxin" = 1) + +/datum/chemical_reaction/ash_mutation_toxin //ash lizard + name = "Ash Mutation Toxin" + id = "ashmutationtoxin" + results = list("ashmutationtoxin" = 1) + required_reagents = list("amutationtoxin" = 1, "lizardmutationtoxin" = 1, "ash" = 1) + + +//DANGEROUS RACES +/datum/chemical_reaction/plasma_mutation_toxin + name = "Plasma Mutation Toxin" + id = "plasmamutationtoxin" + results = list("plasmamutationtoxin" = 1) + required_reagents = list("skeletonmutationtoxin" = 1, "plasma" = 1, "uranium" = 1) //this is very fucking powerful, so it's hard to make + +/datum/chemical_reaction/shadow_mutation_toxin + name = "Shadow Mutation Toxin" + id = "shadowmutationtoxin" + results = list("shadowmutationtoxin" = 1) + required_reagents = list("amutationtoxin" = 1, "liquid_dark_matter" = 1, "holywater" = 1) + +//Technically a mutation toxin +/datum/chemical_reaction/mulligan + name = "Mulligan" + id = "mulligan" + results = list("mulligan" = 1) + required_reagents = list("humanmutationtoxin" = 1, "mutagen" = 1) + ////////////////////////////////// VIROLOGY ////////////////////////////////////////// /datum/chemical_reaction/virus_food name = "Virus Food" id = "virusfood" - result = "virusfood" + results = list("virusfood" = 15) required_reagents = list("water" = 5, "milk" = 5) - result_amount = 15 /datum/chemical_reaction/virus_food_mutagen name = "mutagenic agar" id = "mutagenvirusfood" - result = "mutagenvirusfood" + results = list("mutagenvirusfood" = 1) required_reagents = list("mutagen" = 1, "virusfood" = 1) - result_amount = 1 /datum/chemical_reaction/virus_food_synaptizine name = "virus rations" id = "synaptizinevirusfood" - result = "synaptizinevirusfood" + results = list("synaptizinevirusfood" = 1) required_reagents = list("synaptizine" = 1, "virusfood" = 1) - result_amount = 1 /datum/chemical_reaction/virus_food_plasma name = "virus plasma" id = "plasmavirusfood" - result = "plasmavirusfood" + results = list("plasmavirusfood" = 1) required_reagents = list("plasma" = 1, "virusfood" = 1) - result_amount = 1 /datum/chemical_reaction/virus_food_plasma_synaptizine name = "weakened virus plasma" id = "weakplasmavirusfood" - result = "weakplasmavirusfood" + results = list("weakplasmavirusfood" = 2) required_reagents = list("synaptizine" = 1, "plasmavirusfood" = 1) - result_amount = 2 /datum/chemical_reaction/virus_food_mutagen_sugar name = "sucrose agar" id = "sugarvirusfood" - result = "sugarvirusfood" + results = list("sugarvirusfood" = 2) required_reagents = list("sugar" = 1, "mutagenvirusfood" = 1) - result_amount = 2 /datum/chemical_reaction/virus_food_mutagen_salineglucose name = "sucrose agar" id = "salineglucosevirusfood" - result = "sugarvirusfood" + results = list("sugarvirusfood" = 2) required_reagents = list("salglu_solution" = 1, "mutagenvirusfood" = 1) - result_amount = 2 + +/datum/chemical_reaction/virus_food_uranium + name = "Decaying uranium gel" + id = "uraniumvirusfood" + results = list("uraniumvirusfood" = 1) + required_reagents = list("uranium" = 1, "virusfood" = 1) + +/datum/chemical_reaction/virus_food_uranium_plasma + name = "Unstable uranium gel" + id = "uraniumvirusfood_plasma" + results = list("uraniumplasmavirusfood_unstable" = 1) + required_reagents = list("uranium" = 5, "plasmavirusfood" = 1) + +/datum/chemical_reaction/virus_food_uranium_plasma_gold + name = "Stable uranium gel" + id = "uraniumvirusfood_gold" + results = list("uraniumplasmavirusfood_stable" = 1) + required_reagents = list("uranium" = 10, "gold" = 10, "plasma" = 1) + +/datum/chemical_reaction/virus_food_uranium_plasma_silver + name = "Stable uranium gel" + id = "uraniumvirusfood_silver" + results = list("uraniumplasmavirusfood_stable" = 1) + required_reagents = list("uranium" = 10, "silver" = 10, "plasma" = 1) /datum/chemical_reaction/mix_virus name = "Mix Virus" id = "mixvirus" - result = "blood" + results = list("blood" = 1) required_reagents = list("virusfood" = 1) required_catalysts = list("blood" = 1) var/level_min = 0 @@ -257,6 +367,30 @@ level_min = 1 level_max = 1 +/datum/chemical_reaction/mix_virus/mix_virus_10 + + name = "Mix Virus 10" + id = "mixvirus10" + required_reagents = list("uraniumvirusfood" = 5) + level_min = 6 + level_max = 7 + +/datum/chemical_reaction/mix_virus/mix_virus_11 + + name = "Mix Virus 11" + id = "mixvirus11" + required_reagents = list("uraniumplasmavirusfood_unstable" = 5) + level_min = 7 + level_max = 7 + +/datum/chemical_reaction/mix_virus/mix_virus_12 + + name = "Mix Virus 12" + id = "mixvirus12" + required_reagents = list("uraniumplasmavirusfood_stable" = 5) + level_min = 8 + level_max = 8 + /datum/chemical_reaction/mix_virus/rem_virus name = "Devolve Virus" @@ -280,17 +414,13 @@ /datum/chemical_reaction/surfactant name = "Foam surfactant" id = "foam surfactant" - result = "fluorosurfactant" + results = list("fluorosurfactant" = 5) required_reagents = list("fluorine" = 2, "carbon" = 2, "sacid" = 1) - result_amount = 5 - /datum/chemical_reaction/foam name = "Foam" id = "foam" - result = null required_reagents = list("fluorosurfactant" = 1, "water" = 1) - result_amount = 2 mob_react = 1 /datum/chemical_reaction/foam/on_reaction(datum/reagents/holder, created_volume) @@ -298,7 +428,7 @@ for(var/mob/M in viewers(5, location)) M << "The solution spews out foam!" var/datum/effect_system/foam_spread/s = new() - s.set_up(created_volume, location, holder) + s.set_up(created_volume*2, location, holder) s.start() holder.clear_reagents() return @@ -307,9 +437,7 @@ /datum/chemical_reaction/metalfoam name = "Metal Foam" id = "metalfoam" - result = null required_reagents = list("aluminium" = 3, "foaming_agent" = 1, "facid" = 1) - result_amount = 5 mob_react = 1 /datum/chemical_reaction/metalfoam/on_reaction(datum/reagents/holder, created_volume) @@ -319,16 +447,14 @@ M << "The solution spews out a metallic foam!" var/datum/effect_system/foam_spread/metal/s = new() - s.set_up(created_volume, location, holder, 1) + s.set_up(created_volume*5, location, holder, 1) s.start() holder.clear_reagents() /datum/chemical_reaction/ironfoam name = "Iron Foam" id = "ironlfoam" - result = null required_reagents = list("iron" = 3, "foaming_agent" = 1, "facid" = 1) - result_amount = 5 mob_react = 1 /datum/chemical_reaction/ironfoam/on_reaction(datum/reagents/holder, created_volume) @@ -336,16 +462,15 @@ for(var/mob/M in viewers(5, location)) M << "The solution spews out a metallic foam!" var/datum/effect_system/foam_spread/metal/s = new() - s.set_up(created_volume, location, holder, 2) + s.set_up(created_volume*5, location, holder, 2) s.start() holder.clear_reagents() /datum/chemical_reaction/foaming_agent name = "Foaming Agent" id = "foaming_agent" - result = "foaming_agent" + results = list("foaming_agent" = 1) required_reagents = list("lithium" = 1, "hydrogen" = 1) - result_amount = 1 /////////////////////////////// Cleaning and hydroponics ///////////////////////////////////////////////// @@ -353,167 +478,149 @@ /datum/chemical_reaction/ammonia name = "Ammonia" id = "ammonia" - result = "ammonia" + results = list("ammonia" = 3) required_reagents = list("hydrogen" = 3, "nitrogen" = 1) - result_amount = 3 /datum/chemical_reaction/diethylamine name = "Diethylamine" id = "diethylamine" - result = "diethylamine" + results = list("diethylamine" = 2) required_reagents = list ("ammonia" = 1, "ethanol" = 1) - result_amount = 2 /datum/chemical_reaction/space_cleaner name = "Space cleaner" id = "cleaner" - result = "cleaner" + results = list("cleaner" = 2) required_reagents = list("ammonia" = 1, "water" = 1) - result_amount = 2 /datum/chemical_reaction/plantbgone name = "Plant-B-Gone" id = "plantbgone" - result = "plantbgone" + results = list("plantbgone" = 5) required_reagents = list("toxin" = 1, "water" = 4) - result_amount = 5 /datum/chemical_reaction/weedkiller name = "Weed Killer" id = "weedkiller" - result = "weedkiller" + results = list("weedkiller" = 5) required_reagents = list("toxin" = 1, "ammonia" = 4) - result_amount = 5 /datum/chemical_reaction/pestkiller name = "Pest Killer" id = "pestkiller" - result = "pestkiller" + results = list("pestkiller" = 5) required_reagents = list("toxin" = 1, "ethanol" = 4) - result_amount = 5 /datum/chemical_reaction/drying_agent name = "Drying agent" id = "drying_agent" - result = "drying_agent" + results = list("drying_agent" = 3) required_reagents = list("stable_plasma" = 2, "ethanol" = 1, "sodium" = 1) - result_amount = 3 //////////////////////////////////// Other goon stuff /////////////////////////////////////////// /datum/chemical_reaction/acetone name = "acetone" id = "acetone" - result = "acetone" + results = list("acetone" = 3) required_reagents = list("oil" = 1, "welding_fuel" = 1, "oxygen" = 1) - result_amount = 3 /datum/chemical_reaction/carpet name = "carpet" id = "carpet" - result = "carpet" + results = list("carpet" = 2) required_reagents = list("space_drugs" = 1, "blood" = 1) - result_amount = 2 - /datum/chemical_reaction/oil name = "Oil" id = "oil" - result = "oil" + results = list("oil" = 3) required_reagents = list("welding_fuel" = 1, "carbon" = 1, "hydrogen" = 1) - result_amount = 3 /datum/chemical_reaction/phenol name = "phenol" id = "phenol" - result = "phenol" + results = list("phenol" = 3) required_reagents = list("water" = 1, "chlorine" = 1, "oil" = 1) - result_amount = 3 /datum/chemical_reaction/ash name = "Ash" id = "ash" - result = "ash" + results = list("ash" = 1) required_reagents = list("oil" = 1) - result_amount = 1 required_temp = 480 /datum/chemical_reaction/colorful_reagent name = "colorful_reagent" id = "colorful_reagent" - result = "colorful_reagent" + results = list("colorful_reagent" = 5) required_reagents = list("stable_plasma" = 1, "radium" = 1, "space_drugs" = 1, "cryoxadone" = 1, "triple_citrus" = 1) - result_amount = 5 /datum/chemical_reaction/life name = "Life" id = "life" - result = null required_reagents = list("strange_reagent" = 1, "synthflesh" = 1, "blood" = 1) - result_amount = 1 required_temp = 374 /datum/chemical_reaction/life/on_reaction(datum/reagents/holder, created_volume) - chemical_mob_spawn(holder, 1, "Life") + chemical_mob_spawn(holder, rand(1, round(created_volume, 1)), "Life") // Lol. /datum/chemical_reaction/corgium name = "corgium" id = "corgium" - result = null required_reagents = list("nutriment" = 1, "colorful_reagent" = 1, "strange_reagent" = 1, "blood" = 1) - result_amount = 1 required_temp = 374 /datum/chemical_reaction/corgium/on_reaction(datum/reagents/holder, created_volume) var/location = get_turf(holder.my_atom) - new /mob/living/simple_animal/pet/dog/corgi(location) + for(var/i = rand(1, created_volume), i <= created_volume, i++) // More lulz. + new /mob/living/simple_animal/pet/dog/corgi(location) ..() /datum/chemical_reaction/hair_dye name = "hair_dye" id = "hair_dye" - result = "hair_dye" + results = list("hair_dye" = 5) required_reagents = list("colorful_reagent" = 1, "radium" = 1, "space_drugs" = 1) - result_amount = 5 /datum/chemical_reaction/barbers_aid name = "barbers_aid" id = "barbers_aid" - result = "barbers_aid" + results = list("barbers_aid" = 5) required_reagents = list("carpet" = 1, "radium" = 1, "space_drugs" = 1) - result_amount = 5 /datum/chemical_reaction/concentrated_barbers_aid name = "concentrated_barbers_aid" id = "concentrated_barbers_aid" - result = "concentrated_barbers_aid" + results = list("concentrated_barbers_aid" = 2) required_reagents = list("barbers_aid" = 1, "mutagen" = 1) - result_amount = 2 /datum/chemical_reaction/saltpetre name = "saltpetre" id = "saltpetre" - result = "saltpetre" + results = list("saltpetre" = 3) required_reagents = list("potassium" = 1, "nitrogen" = 1, "oxygen" = 3) - result_amount = 3 /datum/chemical_reaction/lye name = "lye" id = "lye" - result = "lye" + results = list("lye" = 3) required_reagents = list("sodium" = 1, "hydrogen" = 1, "oxygen" = 1) - result_amount = 3 /datum/chemical_reaction/lye2 name = "lye" id = "lye" - result = "lye" + results = list("lye" = 2) required_reagents = list("ash" = 1, "water" = 1) - result_amount = 2 /datum/chemical_reaction/royal_bee_jelly name = "royal bee jelly" id = "royal_bee_jelly" - result = "royal_bee_jelly" + results = list("royal_bee_jelly" = 5) required_reagents = list("mutagen" = 10, "honey" = 40) - result_amount = 5 + +/datum/chemical_reaction/laughter + name = "laughter" + id = "laughter" + results = list("laughter" = 10) // Fuck it. I'm not touching this one. + required_reagents = list("sugar" = 1, "banana" = 1) diff --git a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm index af70d5ddb6..b75908a6f2 100644 --- a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm +++ b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm @@ -1,7 +1,6 @@ /datum/chemical_reaction/reagent_explosion name = "Generic explosive" id = "reagent_explosion" - result = null var/strengthdiv = 10 var/modifier = 0 @@ -16,8 +15,8 @@ if(lastkey) var/mob/toucher = get_mob_by_key(lastkey) touch_msg = "[key_name_admin(lastkey)]? (FLW)" - message_admins("Reagent explosion reaction occured at [T.loc.name] (JMP)[inside_msg]. Last Fingerprint: [touch_msg].") - log_game("Reagent explosion reaction occured at [T.loc.name] ([T.x],[T.y],[T.z]). Last Fingerprint: [lastkey ? lastkey : "N/A"]." ) + message_admins("Reagent explosion reaction occurred at [T.loc.name] (JMP)[inside_msg]. Last Fingerprint: [touch_msg].") + log_game("Reagent explosion reaction occurred at [T.loc.name] ([T.x],[T.y],[T.z]). Last Fingerprint: [lastkey ? lastkey : "N/A"]." ) var/datum/effect_system/reagents_explosion/e = new() e.set_up(modifier + round(created_volume/strengthdiv, 1), T, 0, 0) e.start() @@ -27,22 +26,20 @@ /datum/chemical_reaction/reagent_explosion/nitroglycerin name = "Nitroglycerin" id = "nitroglycerin" - result = "nitroglycerin" + results = list("nitroglycerin" = 2) required_reagents = list("glycerol" = 1, "facid" = 1, "sacid" = 1) - result_amount = 2 strengthdiv = 2 /datum/chemical_reaction/reagent_explosion/nitroglycerin/on_reaction(datum/reagents/holder, created_volume) if(holder.has_reagent("stabilizing_agent")) return - holder.remove_reagent("nitroglycerin", created_volume) + holder.remove_reagent("nitroglycerin", created_volume*2) ..() /datum/chemical_reaction/reagent_explosion/nitroglycerin_explosion name = "Nitroglycerin explosion" id = "nitroglycerin_explosion" required_reagents = list("nitroglycerin" = 1) - result_amount = 1 required_temp = 474 strengthdiv = 2 @@ -51,7 +48,6 @@ name = "Explosion" id = "potassium_explosion" required_reagents = list("water" = 1, "potassium" = 1) - result_amount = 2 strengthdiv = 10 /datum/chemical_reaction/reagent_explosion/potassium_explosion/holyboom @@ -64,16 +60,18 @@ playsound(get_turf(holder.my_atom), 'sound/effects/pray.ogg', 80, 0, round(created_volume/48)) strengthdiv = 8 for(var/mob/living/simple_animal/revenant/R in get_hearers_in_view(7,get_turf(holder.my_atom))) - var/diety = ticker.Bible_deity_name - if(!ticker.Bible_deity_name) - diety = "Christ" - R << "The power of [diety] compels you!" + var/deity + if(SSreligion.Bible_deity_name) + deity = SSreligion.Bible_deity_name + else + deity = "Christ" + R << "The power of [deity] compels you!" R.stun(20) R.reveal(100) R.adjustHealth(50) sleep(20) for(var/mob/living/carbon/C in get_hearers_in_view(round(created_volume/48,1),get_turf(holder.my_atom))) - if(iscultist(C) || is_handofgod_cultist(C)) + if(iscultist(C)) C << "The divine explosion sears you!" C.Weaken(2) C.adjust_fire_stacks(5) @@ -84,15 +82,13 @@ /datum/chemical_reaction/blackpowder name = "Black Powder" id = "blackpowder" - result = "blackpowder" + results = list("blackpowder" = 3) required_reagents = list("saltpetre" = 1, "charcoal" = 1, "sulfur" = 1) - result_amount = 3 /datum/chemical_reaction/reagent_explosion/blackpowder_explosion name = "Black Powder Kaboom" id = "blackpowder_explosion" required_reagents = list("blackpowder" = 1) - result_amount = 1 required_temp = 474 strengthdiv = 6 modifier = 1 @@ -105,38 +101,32 @@ /datum/chemical_reaction/thermite name = "Thermite" id = "thermite" - result = "thermite" + results = list("thermite" = 3) required_reagents = list("aluminium" = 1, "iron" = 1, "oxygen" = 1) - result_amount = 3 /datum/chemical_reaction/emp_pulse name = "EMP Pulse" id = "emp_pulse" - result = null required_reagents = list("uranium" = 1, "iron" = 1) // Yes, laugh, it's the best recipe I could think of that makes a little bit of sense - result_amount = 2 /datum/chemical_reaction/emp_pulse/on_reaction(datum/reagents/holder, created_volume) var/location = get_turf(holder.my_atom) // 100 created volume = 4 heavy range & 7 light range. A few tiles smaller than traitor EMP grandes. // 200 created volume = 8 heavy range & 14 light range. 4 tiles larger than traitor EMP grenades. - empulse(location, round(created_volume / 24), round(created_volume / 14), 1) + empulse(location, round(created_volume / 12), round(created_volume / 7), 1) holder.clear_reagents() /datum/chemical_reaction/stabilizing_agent name = "stabilizing_agent" id = "stabilizing_agent" - result = "stabilizing_agent" + results = list("stabilizing_agent" = 3) required_reagents = list("iron" = 1, "oxygen" = 1, "hydrogen" = 1) - result_amount = 3 - /datum/chemical_reaction/clf3 name = "Chlorine Trifluoride" id = "clf3" - result = "clf3" + results = list("clf3" = 4) required_reagents = list("chlorine" = 1, "fluorine" = 3) - result_amount = 4 required_temp = 424 /datum/chemical_reaction/clf3/on_reaction(datum/reagents/holder, created_volume) @@ -145,12 +135,10 @@ PoolOrNew(/obj/effect/hotspot, turf) holder.chem_temp = 1000 // hot as shit - -/datum/chemical_reaction/reagent_explosion/methsplosion/ +/datum/chemical_reaction/reagent_explosion/methsplosion name = "Meth explosion" id = "methboom1" - result = "methboom1" - result_amount = 1 + results = list("methboom1" = 1) required_temp = 380 //slightly above the meth mix time. required_reagents = list("methamphetamine" = 1) strengthdiv = 6 @@ -166,28 +154,25 @@ /datum/chemical_reaction/reagent_explosion/methsplosion/methboom2 required_reagents = list("diethylamine" = 1, "iodine" = 1, "phosphorus" = 1, "hydrogen" = 1) //diethylamine is often left over from mixing the ephedrine. required_temp = 300 //room temperature, chilling it even a little will prevent the explosion - result_amount = 4 + results = list("methboom1" = 4) // this is ugly. Sorry goof. /datum/chemical_reaction/sorium name = "Sorium" id = "sorium" - result = "sorium" + results = list("sorium" = 4) required_reagents = list("mercury" = 1, "oxygen" = 1, "nitrogen" = 1, "carbon" = 1) - result_amount = 4 /datum/chemical_reaction/sorium/on_reaction(datum/reagents/holder, created_volume) if(holder.has_reagent("stabilizing_agent")) return - holder.remove_reagent("sorium", created_volume) + holder.remove_reagent("sorium", created_volume*4) var/turf/T = get_turf(holder.my_atom) - var/range = Clamp(sqrt(created_volume), 1, 6) + var/range = Clamp(sqrt(created_volume*4), 1, 6) goonchem_vortex(T, 1, range) /datum/chemical_reaction/sorium_vortex name = "sorium_vortex" id = "sorium_vortex" - result = null - result_amount = 1 required_reagents = list("sorium" = 1) required_temp = 474 @@ -196,27 +181,23 @@ var/range = Clamp(sqrt(created_volume), 1, 6) goonchem_vortex(T, 1, range) - /datum/chemical_reaction/liquid_dark_matter name = "Liquid Dark Matter" id = "liquid_dark_matter" - result = "liquid_dark_matter" + results = list("liquid_dark_matter" = 3) required_reagents = list("stable_plasma" = 1, "radium" = 1, "carbon" = 1) - result_amount = 3 /datum/chemical_reaction/liquid_dark_matter/on_reaction(datum/reagents/holder, created_volume) if(holder.has_reagent("stabilizing_agent")) return - holder.remove_reagent("liquid_dark_matter", created_volume) + holder.remove_reagent("liquid_dark_matter", created_volume*3) var/turf/T = get_turf(holder.my_atom) - var/range = Clamp(sqrt(created_volume), 1, 6) + var/range = Clamp(sqrt(created_volume*3), 1, 6) goonchem_vortex(T, 0, range) /datum/chemical_reaction/ldm_vortex name = "LDM Vortex" id = "ldm_vortex" - result = null - result_amount = 1 required_reagents = list("liquid_dark_matter" = 1) required_temp = 474 @@ -228,9 +209,8 @@ /datum/chemical_reaction/flash_powder name = "Flash powder" id = "flash_powder" - result = "flash_powder" + results = list("flash_powder" = 3) required_reagents = list("aluminium" = 1, "potassium" = 1, "sulfur" = 1 ) - result_amount = 3 /datum/chemical_reaction/flash_powder/on_reaction(datum/reagents/holder, created_volume) if(holder.has_reagent("stabilizing_agent")) @@ -239,20 +219,18 @@ var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread s.set_up(2, 1, location) s.start() - for(var/mob/living/carbon/C in get_hearers_in_view(created_volume/10, location)) - if(C.flash_eyes()) + for(var/mob/living/carbon/C in get_hearers_in_view(created_volume/3, location)) + if(C.flash_act()) if(get_dist(C, location) < 4) C.Weaken(5) else C.Stun(5) - holder.remove_reagent("flash_powder", created_volume) + holder.remove_reagent("flash_powder", created_volume*3) /datum/chemical_reaction/flash_powder_flash name = "Flash powder activation" id = "flash_powder_flash" - result = null required_reagents = list("flash_powder" = 1) - result_amount = 1 required_temp = 374 /datum/chemical_reaction/flash_powder_flash/on_reaction(datum/reagents/holder, created_volume) @@ -261,7 +239,7 @@ s.set_up(2, 1, location) s.start() for(var/mob/living/carbon/C in get_hearers_in_view(created_volume/10, location)) - if(C.flash_eyes()) + if(C.flash_act()) if(get_dist(C, location) < 4) C.Weaken(5) else @@ -270,21 +248,20 @@ /datum/chemical_reaction/smoke_powder name = "smoke_powder" id = "smoke_powder" - result = "smoke_powder" + results = list("smoke_powder" = 3) required_reagents = list("potassium" = 1, "sugar" = 1, "phosphorus" = 1) - result_amount = 3 /datum/chemical_reaction/smoke_powder/on_reaction(datum/reagents/holder, created_volume) if(holder.has_reagent("stabilizing_agent")) return - holder.remove_reagent("smoke_powder", created_volume) - var/smoke_radius = round(sqrt(created_volume / 2), 1) + holder.remove_reagent("smoke_powder", created_volume*3) + var/smoke_radius = round(sqrt(created_volume * 1.5), 1) var/location = get_turf(holder.my_atom) 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(holder, smoke_radius, 0, location) + S.set_up(holder, smoke_radius, location, 0) S.start() if(holder && holder.my_atom) holder.clear_reagents() @@ -292,10 +269,8 @@ /datum/chemical_reaction/smoke_powder_smoke name = "smoke_powder_smoke" id = "smoke_powder_smoke" - result = null required_reagents = list("smoke_powder" = 1) required_temp = 374 - result_amount = 1 secondary = 1 mob_react = 1 @@ -306,68 +281,43 @@ S.attach(location) playsound(location, 'sound/effects/smoke.ogg', 50, 1, -3) if(S) - S.set_up(holder, smoke_radius, 0, location) + S.set_up(holder, smoke_radius, location, 0) S.start() if(holder && holder.my_atom) holder.clear_reagents() - - /datum/chemical_reaction/sonic_powder name = "sonic_powder" id = "sonic_powder" - result = "sonic_powder" + results = list("sonic_powder" = 3) required_reagents = list("oxygen" = 1, "cola" = 1, "phosphorus" = 1) - result_amount = 3 /datum/chemical_reaction/sonic_powder/on_reaction(datum/reagents/holder, created_volume) if(holder.has_reagent("stabilizing_agent")) return - holder.remove_reagent("sonic_powder", created_volume) + holder.remove_reagent("sonic_powder", created_volume*3) var/location = get_turf(holder.my_atom) playsound(location, 'sound/effects/bang.ogg', 25, 1) - for(var/mob/living/carbon/C in get_hearers_in_view(created_volume/10, location)) - if(C.check_ear_prot()) - continue - C.show_message("BANG", 2) - C.Stun(5) - C.Weaken(5) - C.setEarDamage(C.ear_damage + rand(0, 5), max(C.ear_deaf,15)) - if(C.ear_damage >= 15) - C << "Your ears start to ring badly!" - else if(C.ear_damage >= 5) - C << "Your ears start to ring!" + for(var/mob/living/carbon/C in get_hearers_in_view(created_volume/3, location)) + C.soundbang_act(1, 5, rand(0, 5)) /datum/chemical_reaction/sonic_powder_deafen name = "sonic_powder_deafen" id = "sonic_powder_deafen" - result = null required_reagents = list("sonic_powder" = 1) required_temp = 374 - result_amount = 1 /datum/chemical_reaction/sonic_powder_deafen/on_reaction(datum/reagents/holder, created_volume) var/location = get_turf(holder.my_atom) playsound(location, 'sound/effects/bang.ogg', 25, 1) for(var/mob/living/carbon/C in get_hearers_in_view(created_volume/10, location)) - if(C.check_ear_prot()) - continue - C.show_message("BANG", 2) - C.Stun(5) - C.Weaken(5) - C.setEarDamage(C.ear_damage + rand(0, 5), max(C.ear_deaf,15)) - if(C.ear_damage >= 15) - C << "Your ears start to ring badly!" - else if(C.ear_damage >= 5) - C << "Your ears start to ring!" - + C.soundbang_act(1, 5, rand(0, 5)) /datum/chemical_reaction/phlogiston name = "phlogiston" id = "phlogiston" - result = "phlogiston" + results = list("phlogiston" = 3) required_reagents = list("phosphorus" = 1, "sacid" = 1, "stable_plasma" = 1) - result_amount = 3 /datum/chemical_reaction/phlogiston/on_reaction(datum/reagents/holder, created_volume) if(holder.has_reagent("stabilizing_agent")) @@ -378,21 +328,17 @@ holder.clear_reagents() return - /datum/chemical_reaction/napalm name = "Napalm" id = "napalm" - result = "napalm" + results = list("napalm" = 3) required_reagents = list("oil" = 1, "welding_fuel" = 1, "ethanol" = 1 ) - result_amount = 3 - /datum/chemical_reaction/cryostylane name = "cryostylane" id = "cryostylane" - result = "cryostylane" + results = list("cryostylane" = 3) required_reagents = list("water" = 1, "stable_plasma" = 1, "nitrogen" = 1) - result_amount = 3 /datum/chemical_reaction/cryostylane/on_reaction(datum/reagents/holder, created_volume) holder.chem_temp = 20 // cools the fuck down @@ -402,10 +348,58 @@ /datum/chemical_reaction/pyrosium name = "pyrosium" id = "pyrosium" - result = "pyrosium" + results = list("pyrosium" = 3) required_reagents = list("stable_plasma" = 1, "radium" = 1, "phosphorus" = 1) - result_amount = 3 /datum/chemical_reaction/pyrosium/on_reaction(datum/reagents/holder, created_volume) holder.chem_temp = 20 // also cools the fuck down return + +/datum/chemical_reaction/teslium + name = "Teslium" + id = "teslium" + results = list("teslium" = 3) + required_reagents = list("stable_plasma" = 1, "silver" = 1, "blackpowder" = 1) + mix_message = "A jet of sparks flies from the mixture as it merges into a flickering slurry." + required_temp = 400 + +/datum/chemical_reaction/reagent_explosion/teslium_lightning + name = "Teslium Destabilization" + id = "teslium_lightning" + required_reagents = list("teslium" = 1, "water" = 1) + results = list("destabilized_teslium" = 1) + strengthdiv = 100 + modifier = -100 + mix_message = "The teslium starts to spark as electricity arcs away from it!" + mix_sound = 'sound/machines/defib_zap.ogg' + +/datum/chemical_reaction/reagent_explosion/teslium_lightning/on_reaction(datum/reagents/holder, created_volume) + var/T1 = created_volume * 20 //100 units : Zap 3 times, with powers 2000/5000/12000. Tesla revolvers have a power of 10000 for comparison. + var/T2 = created_volume * 50 + var/T3 = created_volume * 120 + sleep(5) + if(created_volume >= 75) + tesla_zap(holder.my_atom, 7, T1) + playsound(holder.my_atom, 'sound/machines/defib_zap.ogg', 50, 1) + sleep(15) + if(created_volume >= 40) + tesla_zap(holder.my_atom, 7, T2) + playsound(holder.my_atom, 'sound/machines/defib_zap.ogg', 50, 1) + sleep(15) + if(created_volume >= 10) //10 units minimum for lightning, 40 units for secondary blast, 75 units for tertiary blast. + tesla_zap(holder.my_atom, 7, T3) + playsound(holder.my_atom, 'sound/machines/defib_zap.ogg', 50, 1) + ..() + +/datum/chemical_reaction/reagent_explosion/teslium_lightning/heat + id = "teslium_lightning2" + required_temp = 474 + required_reagents = list("teslium" = 1) + +/datum/chemical_reaction/reagent_explosion/nitrous_oxide + name = "N2O explosion" + id = "n2o_explosion" + required_reagents = list("nitrous_oxide" = 1) + strengthdiv = 7 + required_temp = 575 + modifier = 1 \ No newline at end of file diff --git a/code/modules/reagents/chemistry/recipes/slime_extracts.dm b/code/modules/reagents/chemistry/recipes/slime_extracts.dm index 405df16161..29d704955a 100644 --- a/code/modules/reagents/chemistry/recipes/slime_extracts.dm +++ b/code/modules/reagents/chemistry/recipes/slime_extracts.dm @@ -1,152 +1,172 @@ +/datum/chemical_reaction/slime + +/datum/chemical_reaction/slime/on_reaction(datum/reagents/holder) + delete_extract(holder) + +/datum/chemical_reaction/slime/proc/delete_extract(datum/reagents/holder) + var/obj/item/slime_extract/M = holder.my_atom + if(M.Uses <= 0) + if (!results.len) //if the slime doesn't output chemicals + qdel(M) + //Grey -/datum/chemical_reaction/slimespawn +/datum/chemical_reaction/slime/slimespawn name = "Slime Spawn" id = "m_spawn" - result = null required_reagents = list("plasma" = 1) - result_amount = 1 required_container = /obj/item/slime_extract/grey required_other = 1 -/datum/chemical_reaction/slimespawn/on_reaction(datum/reagents/holder) +/datum/chemical_reaction/slime/slimespawn/on_reaction(datum/reagents/holder) feedback_add_details("slime_cores_used","[type]") var/mob/living/simple_animal/slime/S S = new(get_turf(holder.my_atom), "grey") S.visible_message("Infused with plasma, the \ core begins to quiver and grow, and soon a new baby slime \ emerges from it!") + ..() -/datum/chemical_reaction/slimeinaprov +/datum/chemical_reaction/slime/slimeinaprov name = "Slime epinephrine" id = "m_inaprov" - result = "epinephrine" + results = list("epinephrine" = 3) required_reagents = list("water" = 5) - result_amount = 3 required_other = 1 required_container = /obj/item/slime_extract/grey -/datum/chemical_reaction/slimeinaprov/on_reaction(datum/reagents/holder) +/datum/chemical_reaction/slime/slimeinaprov/on_reaction(datum/reagents/holder) feedback_add_details("slime_cores_used","[type]") + ..() -/datum/chemical_reaction/slimemonkey +/datum/chemical_reaction/slime/slimemonkey name = "Slime Monkey" id = "m_monkey" - result = null required_reagents = list("blood" = 1) - result_amount = 1 required_container = /obj/item/slime_extract/grey required_other = 1 -/datum/chemical_reaction/slimemonkey/on_reaction(datum/reagents/holder) +/datum/chemical_reaction/slime/slimemonkey/on_reaction(datum/reagents/holder) feedback_add_details("slime_cores_used","[type]") for(var/i = 1, i <= 3, i++) var /obj/item/weapon/reagent_containers/food/snacks/monkeycube/M = new /obj/item/weapon/reagent_containers/food/snacks/monkeycube M.loc = get_turf(holder.my_atom) + ..() //Green -/datum/chemical_reaction/slimemutate +/datum/chemical_reaction/slime/slimemutate name = "Mutation Toxin" id = "mutationtoxin" - result = "mutationtoxin" + results = list("mutationtoxin" = 1) required_reagents = list("plasma" = 1) - result_amount = 1 required_other = 1 required_container = /obj/item/slime_extract/green -/datum/chemical_reaction/slimemutate/on_reaction(datum/reagents/holder) +/datum/chemical_reaction/slime/slimemutate/on_reaction(datum/reagents/holder) feedback_add_details("slime_cores_used","[type]") + ..() //Mutated Green -/datum/chemical_reaction/slimemutate_unstable +/datum/chemical_reaction/slime/slimemutate_unstable name = "Unstable Mutation Toxin" id = "unstablemutationtoxin" - result = "unstablemutationtoxin" + results = list("unstablemutationtoxin" = 1) required_reagents = list("radium" = 1) - result_amount = 1 required_other = 1 required_container = /obj/item/slime_extract/green mix_message = "The mixture rapidly expands and contracts, its appearance shifting into a sickening green." -/datum/chemical_reaction/slimemutate_unstable/on_reaction(datum/reagents/holder) +/datum/chemical_reaction/slime/slimemutate_unstable/on_reaction(datum/reagents/holder) feedback_add_details("slime_cores_used","[type]") + ..() //Metal -/datum/chemical_reaction/slimemetal +/datum/chemical_reaction/slime/slimemetal name = "Slime Metal" id = "m_metal" - result = null required_reagents = list("plasma" = 1) - result_amount = 1 required_container = /obj/item/slime_extract/metal required_other = 1 -/datum/chemical_reaction/slimemetal/on_reaction(datum/reagents/holder) +/datum/chemical_reaction/slime/slimemetal/on_reaction(datum/reagents/holder) feedback_add_details("slime_cores_used","[type]") - var/obj/item/stack/sheet/metal/M = new /obj/item/stack/sheet/metal - M.amount = 15 - M.loc = get_turf(holder.my_atom) - var/obj/item/stack/sheet/plasteel/P = new /obj/item/stack/sheet/plasteel - P.amount = 5 - P.loc = get_turf(holder.my_atom) + var/turf/location = get_turf(holder.my_atom) + new /obj/item/stack/sheet/plasteel (location, 5) + new /obj/item/stack/sheet/metal (location, 15) + ..() + +/datum/chemical_reaction/slime/slimeglass + name = "Slime Glass" + id = "m_glass" + required_reagents = list("water" = 1) + required_container = /obj/item/slime_extract/metal + required_other = 1 + +/datum/chemical_reaction/slime/slimeglass/on_reaction(datum/reagents/holder) + feedback_add_details("slime_cores_used","[type]") + var/turf/location = get_turf(holder.my_atom) + new /obj/item/stack/sheet/rglass (location, 5) + new /obj/item/stack/sheet/glass (location, 15) + ..() //Gold -/datum/chemical_reaction/slimecrit +/datum/chemical_reaction/slime/slimecrit name = "Slime Crit" id = "m_tele" - result = null required_reagents = list("plasma" = 1) - result_amount = 1 required_container = /obj/item/slime_extract/gold required_other = 1 -/datum/chemical_reaction/slimecrit/on_reaction(datum/reagents/holder) +/datum/chemical_reaction/slime/slimecrit/on_reaction(datum/reagents/holder) feedback_add_details("slime_cores_used","[type]") var/turf/T = get_turf(holder.my_atom) T.visible_message("The slime extract begins to vibrate violently !") - addtimer(src, "chemical_mob_spawn", 50, FALSE, holder, 5, "Gold Slime") + addtimer(src, "chemical_mob_spawn", 50, TIMER_NORMAL, holder, 5, "Gold Slime") + var/obj/item/slime_extract/M = holder.my_atom + deltimer(M.qdel_timer) + M.qdel_timer = addtimer(src, "delete_extract", 55, TIMER_NORMAL, holder) -/datum/chemical_reaction/slimecritlesser +/datum/chemical_reaction/slime/slimecritlesser name = "Slime Crit Lesser" id = "m_tele3" - result = null required_reagents = list("blood" = 1) - result_amount = 1 required_container = /obj/item/slime_extract/gold required_other = 1 -/datum/chemical_reaction/slimecritlesser/on_reaction(datum/reagents/holder) +/datum/chemical_reaction/slime/slimecritlesser/on_reaction(datum/reagents/holder) feedback_add_details("slime_cores_used","[type]") var/turf/T = get_turf(holder.my_atom) T.visible_message("The slime extract begins to vibrate violently !") - addtimer(src, "chemical_mob_spawn", 50, FALSE, holder, 3, "Lesser Gold Slime", "neutral") + addtimer(src, "chemical_mob_spawn", 50, TIMER_NORMAL, holder, 3, "Lesser Gold Slime", "neutral") + var/obj/item/slime_extract/M = holder.my_atom + deltimer(M.qdel_timer) + M.qdel_timer = addtimer(src, "delete_extract", 55, TIMER_NORMAL, holder) -/datum/chemical_reaction/slimecritfriendly +/datum/chemical_reaction/slime/slimecritfriendly name = "Slime Crit Friendly" id = "m_tele5" - result = null required_reagents = list("water" = 1) - result_amount = 1 required_container = /obj/item/slime_extract/gold required_other = 1 -/datum/chemical_reaction/slimecritfriendly/on_reaction(datum/reagents/holder) +/datum/chemical_reaction/slime/slimecritfriendly/on_reaction(datum/reagents/holder) feedback_add_details("slime_cores_used","[type]") var/turf/T = get_turf(holder.my_atom) T.visible_message("The slime extract begins to vibrate adorably !") - addtimer(src, "chemical_mob_spawn", 50, FALSE, holder, 1, "Friendly Gold Slime", "neutral") + addtimer(src, "chemical_mob_spawn", 50, TIMER_NORMAL, holder, 1, "Friendly Gold Slime", "neutral") + var/obj/item/slime_extract/M = holder.my_atom + deltimer(M.qdel_timer) + M.qdel_timer = addtimer(src, "delete_extract", 55, TIMER_NORMAL, holder) //Silver -/datum/chemical_reaction/slimebork +/datum/chemical_reaction/slime/slimebork name = "Slime Bork" id = "m_tele2" - result = null required_reagents = list("plasma" = 1) - result_amount = 1 required_container = /obj/item/slime_extract/silver required_other = 1 -/datum/chemical_reaction/slimebork/on_reaction(datum/reagents/holder) +/datum/chemical_reaction/slime/slimebork/on_reaction(datum/reagents/holder) feedback_add_details("slime_cores_used","[type]") var/list/blocked = list(/obj/item/weapon/reagent_containers/food/snacks, @@ -174,7 +194,7 @@ playsound(get_turf(holder.my_atom), 'sound/effects/phasein.ogg', 100, 1) for(var/mob/living/carbon/C in viewers(get_turf(holder.my_atom), null)) - C.flash_eyes() + C.flash_act() for(var/i = 1, i <= 4 + rand(1,2), i++) var/chosen = pick(borks) @@ -184,18 +204,17 @@ if(prob(50)) for(var/j = 1, j <= rand(1, 3), j++) step(B, pick(NORTH,SOUTH,EAST,WEST)) + ..() -/datum/chemical_reaction/slimebork2 +/datum/chemical_reaction/slime/slimebork2 name = "Slime Bork 2" id = "m_tele4" - result = null required_reagents = list("water" = 1) - result_amount = 1 required_container = /obj/item/slime_extract/silver required_other = 1 -/datum/chemical_reaction/slimebork2/on_reaction(datum/reagents/holder) +/datum/chemical_reaction/slime/slimebork2/on_reaction(datum/reagents/holder) feedback_add_details("slime_cores_used","[type]") var/list/borks = subtypesof(/obj/item/weapon/reagent_containers/food/drinks) @@ -204,7 +223,7 @@ playsound(get_turf(holder.my_atom), 'sound/effects/phasein.ogg', 100, 1) for(var/mob/living/carbon/M in viewers(get_turf(holder.my_atom), null)) - M.flash_eyes() + M.flash_act() for(var/i = 1, i <= 4 + rand(1,2), i++) var/chosen = pick(borks) @@ -214,288 +233,314 @@ if(prob(50)) for(var/j = 1, j <= rand(1, 3), j++) step(B, pick(NORTH,SOUTH,EAST,WEST)) + ..() //Blue -/datum/chemical_reaction/slimefrost +/datum/chemical_reaction/slime/slimefrost name = "Slime Frost Oil" id = "m_frostoil" - result = "frostoil" + results = list("frostoil" = 10) required_reagents = list("plasma" = 1) - result_amount = 10 required_container = /obj/item/slime_extract/blue required_other = 1 -/datum/chemical_reaction/slimefrost/on_reaction(datum/reagents/holder) +/datum/chemical_reaction/slime/slimefrost/on_reaction(datum/reagents/holder) feedback_add_details("slime_cores_used","[type]") + ..() -/datum/chemical_reaction/slimestabilizer +/datum/chemical_reaction/slime/slimestabilizer name = "Slime Stabilizer" id = "m_slimestabilizer" - result = null required_reagents = list("blood" = 1) - result_amount = 1 required_container = /obj/item/slime_extract/blue required_other = 1 -/datum/chemical_reaction/slimestabilizer/on_reaction(datum/reagents/holder) +/datum/chemical_reaction/slime/slimestabilizer/on_reaction(datum/reagents/holder) feedback_add_details("slime_cores_used","[type]") var/obj/item/slimepotion/stabilizer/P = new /obj/item/slimepotion/stabilizer P.loc = get_turf(holder.my_atom) + ..() +/datum/chemical_reaction/slime/slimefoam + name = "Slime Foam" + id = "m_foam" + results = list("fluorosurfactant" = 20, "water" = 20) + required_reagents = list("water" = 5) + required_container = /obj/item/slime_extract/blue + required_other = 1 + +/datum/chemical_reaction/slime/slimefoam/on_reaction(datum/reagents/holder) + feedback_add_details("slime_cores_used","[type]") + ..() + //Dark Blue -/datum/chemical_reaction/slimefreeze +/datum/chemical_reaction/slime/slimefreeze name = "Slime Freeze" id = "m_freeze" - result = null required_reagents = list("plasma" = 1) - result_amount = 1 required_container = /obj/item/slime_extract/darkblue required_other = 1 -/datum/chemical_reaction/slimefreeze/on_reaction(datum/reagents/holder) +/datum/chemical_reaction/slime/slimefreeze/on_reaction(datum/reagents/holder) feedback_add_details("slime_cores_used","[type]") var/turf/T = get_turf(holder.my_atom) T.visible_message("The slime extract begins to vibrate adorably!") - addtimer(src, "freeze", 50, FALSE, holder) -/datum/chemical_reaction/slimefreeze/proc/freeze(datum/reagents/holder) + addtimer(src, "freeze", 50, TIMER_NORMAL, holder) + var/obj/item/slime_extract/M = holder.my_atom + deltimer(M.qdel_timer) + M.qdel_timer = addtimer(src, "delete_extract", 55, TIMER_NORMAL, holder) + +/datum/chemical_reaction/slime/slimefreeze/proc/freeze(datum/reagents/holder) if(holder && holder.my_atom) - var/turf/T = get_turf(holder.my_atom) - playsound(T, 'sound/effects/phasein.ogg', 100, 1) - for(var/mob/living/M in range(T, 7)) - M.bodytemperature -= 240 - M << "You feel a chill!" + var/turf/open/T = get_turf(holder.my_atom) + if(istype(T)) + T.atmos_spawn_air("freon=50;TEMP=120") -/datum/chemical_reaction/slimefireproof + +/datum/chemical_reaction/slime/slimefireproof name = "Slime Fireproof" id = "m_fireproof" - result = null required_reagents = list("water" = 1) - result_amount = 1 required_container = /obj/item/slime_extract/darkblue required_other = 1 -/datum/chemical_reaction/slimefireproof/on_reaction(datum/reagents/holder) +/datum/chemical_reaction/slime/slimefireproof/on_reaction(datum/reagents/holder) feedback_add_details("slime_cores_used","[type]") var/obj/item/slimepotion/fireproof/P = new /obj/item/slimepotion/fireproof P.loc = get_turf(holder.my_atom) + ..() //Orange -/datum/chemical_reaction/slimecasp +/datum/chemical_reaction/slime/slimecasp name = "Slime Capsaicin Oil" id = "m_capsaicinoil" - result = "capsaicin" + results = list("capsaicin" = 10) required_reagents = list("blood" = 1) - result_amount = 10 required_container = /obj/item/slime_extract/orange required_other = 1 -/datum/chemical_reaction/slimecasp/on_reaction(datum/reagents/holder) +/datum/chemical_reaction/slime/slimecasp/on_reaction(datum/reagents/holder) feedback_add_details("slime_cores_used","[type]") + ..() -/datum/chemical_reaction/slimefire +/datum/chemical_reaction/slime/slimefire name = "Slime fire" id = "m_fire" - result = null required_reagents = list("plasma" = 1) - result_amount = 1 required_container = /obj/item/slime_extract/orange required_other = 1 -/datum/chemical_reaction/slimefire/on_reaction(datum/reagents/holder) +/datum/chemical_reaction/slime/slimefire/on_reaction(datum/reagents/holder) feedback_add_details("slime_cores_used","[type]") var/turf/TU = get_turf(holder.my_atom) TU.visible_message("The slime extract begins to vibrate adorably!") - addtimer(src, "burn", 50, FALSE, holder) + addtimer(src, "slime_burn", 50, TIMER_NORMAL, holder) + var/obj/item/slime_extract/M = holder.my_atom + deltimer(M.qdel_timer) + M.qdel_timer = addtimer(src, "delete_extract", 55, TIMER_NORMAL, holder) - -/datum/chemical_reaction/slimefire/proc/burn(datum/reagents/holder) +/datum/chemical_reaction/slime/slimefire/proc/slime_burn(datum/reagents/holder) if(holder && holder.my_atom) var/turf/open/T = get_turf(holder.my_atom) if(istype(T)) T.atmos_spawn_air("plasma=50;TEMP=1000") + +/datum/chemical_reaction/slime/slimesmoke + name = "Slime Smoke" + id = "m_smoke" + results = list("phosphorus" = 10, "potassium" = 10, "sugar" = 10) + required_reagents = list("water" = 5) + required_container = /obj/item/slime_extract/orange + required_other = 1 + +/datum/chemical_reaction/slime/slimesmoke/on_reaction(datum/reagents/holder) + feedback_add_details("slime_cores_used","[type]") + ..() + //Yellow -/datum/chemical_reaction/slimeoverload +/datum/chemical_reaction/slime/slimeoverload name = "Slime EMP" id = "m_emp" - result = null required_reagents = list("blood" = 1) - result_amount = 1 required_container = /obj/item/slime_extract/yellow required_other = 1 -/datum/chemical_reaction/slimeoverload/on_reaction(datum/reagents/holder, created_volume) +/datum/chemical_reaction/slime/slimeoverload/on_reaction(datum/reagents/holder, created_volume) feedback_add_details("slime_cores_used","[type]") empulse(get_turf(holder.my_atom), 3, 7) + ..() -/datum/chemical_reaction/slimecell +/datum/chemical_reaction/slime/slimecell name = "Slime Powercell" id = "m_cell" - result = null required_reagents = list("plasma" = 1) - result_amount = 1 required_container = /obj/item/slime_extract/yellow required_other = 1 -/datum/chemical_reaction/slimecell/on_reaction(datum/reagents/holder, created_volume) +/datum/chemical_reaction/slime/slimecell/on_reaction(datum/reagents/holder, created_volume) feedback_add_details("slime_cores_used","[type]") var/obj/item/weapon/stock_parts/cell/high/slime/P = new /obj/item/weapon/stock_parts/cell/high/slime P.loc = get_turf(holder.my_atom) + ..() -/datum/chemical_reaction/slimeglow +/datum/chemical_reaction/slime/slimeglow name = "Slime Glow" id = "m_glow" - result = null required_reagents = list("water" = 1) - result_amount = 1 required_container = /obj/item/slime_extract/yellow required_other = 1 -/datum/chemical_reaction/slimeglow/on_reaction(datum/reagents/holder) +/datum/chemical_reaction/slime/slimeglow/on_reaction(datum/reagents/holder) feedback_add_details("slime_cores_used","[type]") var/turf/T = get_turf(holder.my_atom) T.visible_message("The slime begins to emit a soft light. Squeezing it will cause it to grow brightly.") var/obj/item/device/flashlight/slime/F = new /obj/item/device/flashlight/slime F.loc = get_turf(holder.my_atom) + ..() //Purple -/datum/chemical_reaction/slimepsteroid +/datum/chemical_reaction/slime/slimepsteroid name = "Slime Steroid" id = "m_steroid" - result = null required_reagents = list("plasma" = 1) - result_amount = 1 required_container = /obj/item/slime_extract/purple required_other = 1 -/datum/chemical_reaction/slimepsteroid/on_reaction(datum/reagents/holder) +/datum/chemical_reaction/slime/slimepsteroid/on_reaction(datum/reagents/holder) feedback_add_details("slime_cores_used","[type]") var/obj/item/slimepotion/steroid/P = new /obj/item/slimepotion/steroid P.loc = get_turf(holder.my_atom) + ..() -/datum/chemical_reaction/slimejam +/datum/chemical_reaction/slime/slimejam name = "Slime Jam" id = "m_jam" - result = "slimejelly" + results = list("slimejelly" = 10) required_reagents = list("sugar" = 1) - result_amount = 10 required_container = /obj/item/slime_extract/purple required_other = 1 -/datum/chemical_reaction/slimejam/on_reaction(datum/reagents/holder) +/datum/chemical_reaction/slime/slimejam/on_reaction(datum/reagents/holder) feedback_add_details("slime_cores_used","[type]") + ..() //Dark Purple -/datum/chemical_reaction/slimeplasma +/datum/chemical_reaction/slime/slimeplasma name = "Slime Plasma" id = "m_plasma" - result = null required_reagents = list("plasma" = 1) - result_amount = 1 required_container = /obj/item/slime_extract/darkpurple required_other = 1 -/datum/chemical_reaction/slimeplasma/on_reaction(datum/reagents/holder) +/datum/chemical_reaction/slime/slimeplasma/on_reaction(datum/reagents/holder) feedback_add_details("slime_cores_used","[type]") - var/obj/item/stack/sheet/mineral/plasma/P = new /obj/item/stack/sheet/mineral/plasma - P.amount = 3 - P.loc = get_turf(holder.my_atom) + var/turf/location = get_turf(holder.my_atom) + new /obj/item/stack/sheet/mineral/plasma (location, 3) + ..() //Red -/datum/chemical_reaction/slimemutator +/datum/chemical_reaction/slime/slimemutator name = "Slime Mutator" id = "m_slimemutator" - result = null required_reagents = list("plasma" = 1) - result_amount = 1 required_container = /obj/item/slime_extract/red required_other = 1 -/datum/chemical_reaction/slimemutator/on_reaction(datum/reagents/holder) +/datum/chemical_reaction/slime/slimemutator/on_reaction(datum/reagents/holder) feedback_add_details("slime_cores_used","[type]") var/obj/item/slimepotion/mutator/P = new /obj/item/slimepotion/mutator P.loc = get_turf(holder.my_atom) + ..() -/datum/chemical_reaction/slimebloodlust +/datum/chemical_reaction/slime/slimebloodlust name = "Bloodlust" id = "m_bloodlust" - result = null required_reagents = list("blood" = 1) - result_amount = 1 required_container = /obj/item/slime_extract/red required_other = 1 -/datum/chemical_reaction/slimebloodlust/on_reaction(datum/reagents/holder) +/datum/chemical_reaction/slime/slimebloodlust/on_reaction(datum/reagents/holder) feedback_add_details("slime_cores_used","[type]") for(var/mob/living/simple_animal/slime/slime in viewers(get_turf(holder.my_atom), null)) slime.rabid = 1 slime.visible_message("The [slime] is driven into a frenzy!") + ..() -/datum/chemical_reaction/slimespeed +/datum/chemical_reaction/slime/slimespeed name = "Slime Speed" id = "m_speed" - result = null required_reagents = list("water" = 1) - result_amount = 1 required_container = /obj/item/slime_extract/red required_other = 1 -/datum/chemical_reaction/slimespeed/on_reaction(datum/reagents/holder) +/datum/chemical_reaction/slime/slimespeed/on_reaction(datum/reagents/holder) feedback_add_details("slime_cores_used","[type]") var/obj/item/slimepotion/speed/P = new /obj/item/slimepotion/speed P.loc = get_turf(holder.my_atom) + ..() //Pink -/datum/chemical_reaction/docility +/datum/chemical_reaction/slime/docility name = "Docility Potion" id = "m_potion" - result = null required_reagents = list("plasma" = 1) - result_amount = 1 required_container = /obj/item/slime_extract/pink required_other = 1 -/datum/chemical_reaction/docility/on_reaction(datum/reagents/holder) +/datum/chemical_reaction/slime/docility/on_reaction(datum/reagents/holder) feedback_add_details("slime_cores_used","[type]") var/obj/item/slimepotion/docility/P = new /obj/item/slimepotion/docility P.loc = get_turf(holder.my_atom) + ..() + +/datum/chemical_reaction/slime/gender + name = "Gender Potion" + id = "m_gender" + required_reagents = list("blood" = 1) + required_container = /obj/item/slime_extract/pink + required_other = 1 + +/datum/chemical_reaction/slime/gender/on_reaction(datum/reagents/holder) + feedback_add_details("slime_cores_used","[type]") + var/obj/item/slimepotion/genderchange/G = new /obj/item/slimepotion/genderchange + G.loc = get_turf(holder.my_atom) + ..() //Black -/datum/chemical_reaction/slimemutate2 +/datum/chemical_reaction/slime/slimemutate2 name = "Advanced Mutation Toxin" id = "mutationtoxin2" - result = "amutationtoxin" + results = list("amutationtoxin" = 1) required_reagents = list("plasma" = 1) - result_amount = 1 required_other = 1 required_container = /obj/item/slime_extract/black -/datum/chemical_reaction/slimemutate2/on_reaction(datum/reagents/holder) +/datum/chemical_reaction/slime/slimemutate2/on_reaction(datum/reagents/holder) feedback_add_details("slime_cores_used","[type]") + ..() //Oil -/datum/chemical_reaction/slimeexplosion +/datum/chemical_reaction/slime/slimeexplosion name = "Slime Explosion" id = "m_explosion" - result = null required_reagents = list("plasma" = 1) - result_amount = 1 required_container = /obj/item/slime_extract/oil required_other = 1 -/datum/chemical_reaction/slimeexplosion/on_reaction(datum/reagents/holder) +/datum/chemical_reaction/slime/slimeexplosion/on_reaction(datum/reagents/holder) feedback_add_details("slime_cores_used","[type]") var/turf/T = get_turf(holder.my_atom) var/lastkey = holder.my_atom.fingerprintslast @@ -506,206 +551,240 @@ message_admins("Slime Explosion reaction started at [T.loc.name] (JMP). Last Fingerprint: [touch_msg]") log_game("Slime Explosion reaction started at [T.loc.name] ([T.x],[T.y],[T.z]). Last Fingerprint: [lastkey ? lastkey : "N/A"].") T.visible_message("The slime extract begins to vibrate violently !") - addtimer(src, "boom", 50, FALSE, holder) + addtimer(src, "boom", 50, TIMER_NORMAL, holder) + var/obj/item/slime_extract/M = holder.my_atom + deltimer(M.qdel_timer) + M.qdel_timer = addtimer(src, "delete_extract", 55, TIMER_NORMAL, holder) -/datum/chemical_reaction/slimeexplosion/proc/boom(datum/reagents/holder) +/datum/chemical_reaction/slime/slimeexplosion/proc/boom(datum/reagents/holder) if(holder && holder.my_atom) explosion(get_turf(holder.my_atom), 1 ,3, 6) + +/datum/chemical_reaction/slime/slimecornoil + name = "Slime Corn Oil" + id = "m_cornoil" + results = list("cornoil" = 10) + required_reagents = list("blood" = 1) + required_container = /obj/item/slime_extract/oil + required_other = 1 + +/datum/chemical_reaction/slime/slimecornoil/on_reaction(datum/reagents/holder) + feedback_add_details("slime_cores_used","[type]") + ..() + //Light Pink -/datum/chemical_reaction/slimepotion2 +/datum/chemical_reaction/slime/slimepotion2 name = "Slime Potion 2" id = "m_potion2" - result = null - result_amount = 1 required_container = /obj/item/slime_extract/lightpink required_reagents = list("plasma" = 1) required_other = 1 -/datum/chemical_reaction/slimepotion2/on_reaction(datum/reagents/holder) +/datum/chemical_reaction/slime/slimepotion2/on_reaction(datum/reagents/holder) feedback_add_details("slime_cores_used","[type]") var/obj/item/slimepotion/sentience/P = new /obj/item/slimepotion/sentience P.loc = get_turf(holder.my_atom) + ..() //Adamantine -/datum/chemical_reaction/slimegolem +/datum/chemical_reaction/slime/slimegolem name = "Slime Golem" id = "m_golem" - result = null required_reagents = list("plasma" = 1) - result_amount = 1 required_container = /obj/item/slime_extract/adamantine required_other = 1 -/datum/chemical_reaction/slimegolem/on_reaction(datum/reagents/holder) +/datum/chemical_reaction/slime/slimegolem/on_reaction(datum/reagents/holder) feedback_add_details("slime_cores_used","[type]") var/obj/effect/golemrune/Z = new /obj/effect/golemrune Z.loc = get_turf(holder.my_atom) notify_ghosts("Golem rune created in [get_area(Z)].", 'sound/effects/ghost2.ogg', source = Z) + ..() + +/datum/chemical_reaction/slime/slimegolem2 + name = "Slime Golem 2" + id = "m_golem2" + required_reagents = list("iron" = 1) + required_container = /obj/item/slime_extract/adamantine + required_other = 1 + +/datum/chemical_reaction/slime/slimegolem2/on_reaction(datum/reagents/holder) + feedback_add_details("slime_cores_used","[type]") + var/obj/item/golem_shell/artificial/Z = new /obj/item/golem_shell/artificial + Z.loc = get_turf(holder.my_atom) + notify_ghosts("Artificial golem shell created in [get_area(Z)].", 'sound/effects/ghost2.ogg', source = Z) + ..() //Bluespace -/datum/chemical_reaction/slimefloor2 +/datum/chemical_reaction/slime/slimefloor2 name = "Bluespace Floor" id = "m_floor2" - result = null required_reagents = list("blood" = 1) - result_amount = 1 required_container = /obj/item/slime_extract/bluespace required_other = 1 -/datum/chemical_reaction/slimefloor2/on_reaction(datum/reagents/holder, created_volume) +/datum/chemical_reaction/slime/slimefloor2/on_reaction(datum/reagents/holder, created_volume) feedback_add_details("slime_cores_used","[type]") var/obj/item/stack/tile/bluespace/P = new /obj/item/stack/tile/bluespace P.amount = 25 P.loc = get_turf(holder.my_atom) + ..() -/datum/chemical_reaction/slimecrystal +/datum/chemical_reaction/slime/slimecrystal name = "Slime Crystal" id = "m_crystal" - result = null required_reagents = list("plasma" = 1) - result_amount = 1 required_container = /obj/item/slime_extract/bluespace required_other = 1 -/datum/chemical_reaction/slimecrystal/on_reaction(datum/reagents/holder, created_volume) +/datum/chemical_reaction/slime/slimecrystal/on_reaction(datum/reagents/holder, created_volume) feedback_add_details("slime_cores_used","[type]") if(holder.my_atom) var/obj/item/weapon/ore/bluespace_crystal/BC = new(get_turf(holder.my_atom)) BC.visible_message("The [BC.name] appears out of thin air!") + ..() //Cerulean -/datum/chemical_reaction/slimepsteroid2 +/datum/chemical_reaction/slime/slimepsteroid2 name = "Slime Steroid 2" id = "m_steroid2" - result = null required_reagents = list("plasma" = 1) - result_amount = 1 required_container = /obj/item/slime_extract/cerulean required_other = 1 -/datum/chemical_reaction/slimepsteroid2/on_reaction(datum/reagents/holder) +/datum/chemical_reaction/slime/slimepsteroid2/on_reaction(datum/reagents/holder) feedback_add_details("slime_cores_used","[type]") var/obj/item/slimepotion/enhancer/P = new /obj/item/slimepotion/enhancer P.loc = get_turf(holder.my_atom) + ..() - -/datum/chemical_reaction/slime_territory +/datum/chemical_reaction/slime/slime_territory name = "Slime Territory" id = "s_territory" - result = null required_reagents = list("blood" = 1) - result_amount = 1 required_container = /obj/item/slime_extract/cerulean required_other = 1 -/datum/chemical_reaction/slime_territory/on_reaction(datum/reagents/holder) +/datum/chemical_reaction/slime/slime_territory/on_reaction(datum/reagents/holder) feedback_add_details("slime_cores_used","[type]") var/obj/item/areaeditor/blueprints/slime/P = new /obj/item/areaeditor/blueprints/slime P.loc = get_turf(holder.my_atom) + ..() //Sepia -/datum/chemical_reaction/slimestop +/datum/chemical_reaction/slime/slimestop name = "Slime Stop" id = "m_stop" - result = null required_reagents = list("plasma" = 1) - result_amount = 1 required_container = /obj/item/slime_extract/sepia required_other = 1 -/datum/chemical_reaction/slimestop/on_reaction(datum/reagents/holder) +/datum/chemical_reaction/slime/slimestop/on_reaction(datum/reagents/holder) feedback_add_details("slime_cores_used","[type]") var/mob/mob = get_mob_by_key(holder.my_atom.fingerprintslast) var/obj/effect/timestop/T = new /obj/effect/timestop T.loc = get_turf(holder.my_atom) T.immune += mob T.timestop() + ..() -/datum/chemical_reaction/slimecamera +/datum/chemical_reaction/slime/slimecamera name = "Slime Camera" id = "m_camera" - result = null required_reagents = list("water" = 1) - result_amount = 1 required_container = /obj/item/slime_extract/sepia required_other = 1 -/datum/chemical_reaction/slimecamera/on_reaction(datum/reagents/holder) +/datum/chemical_reaction/slime/slimecamera/on_reaction(datum/reagents/holder) feedback_add_details("slime_cores_used","[type]") var/obj/item/device/camera/P = new /obj/item/device/camera P.loc = get_turf(holder.my_atom) var/obj/item/device/camera_film/Z = new /obj/item/device/camera_film Z.loc = get_turf(holder.my_atom) + ..() -/datum/chemical_reaction/slimefloor +/datum/chemical_reaction/slime/slimefloor name = "Sepia Floor" id = "m_floor" - result = null required_reagents = list("blood" = 1) - result_amount = 1 required_container = /obj/item/slime_extract/sepia required_other = 1 -/datum/chemical_reaction/slimefloor/on_reaction(datum/reagents/holder) +/datum/chemical_reaction/slime/slimefloor/on_reaction(datum/reagents/holder) feedback_add_details("slime_cores_used","[type]") var/obj/item/stack/tile/sepia/P = new /obj/item/stack/tile/sepia P.amount = 25 P.loc = get_turf(holder.my_atom) + ..() //Pyrite -/datum/chemical_reaction/slimepaint +/datum/chemical_reaction/slime/slimepaint name = "Slime Paint" id = "s_paint" - result = null required_reagents = list("plasma" = 1) - result_amount = 1 required_container = /obj/item/slime_extract/pyrite required_other = 1 -/datum/chemical_reaction/slimepaint/on_reaction(datum/reagents/holder) +/datum/chemical_reaction/slime/slimepaint/on_reaction(datum/reagents/holder) feedback_add_details("slime_cores_used","[type]") var/list/paints = subtypesof(/obj/item/weapon/paint) var/chosen = pick(paints) var/obj/P = new chosen if(P) P.loc = get_turf(holder.my_atom) + ..() + + +/datum/chemical_reaction/slime/slimecrayon + name = "Slime Crayon" + id = "s_crayon" + required_reagents = list("blood" = 1) + required_container = /obj/item/slime_extract/pyrite + required_other = 1 + +/datum/chemical_reaction/slime/slimecrayon/on_reaction(datum/reagents/holder) + feedback_add_details("slime_cores_used","[type]") + var/list/crayons = difflist(subtypesof(/obj/item/toy/crayon),typesof(/obj/item/toy/crayon/spraycan)) + var/chosen = pick(crayons) + var/obj/P = new chosen + if(P) + P.loc = get_turf(holder.my_atom) + ..() //Rainbow :o) -/datum/chemical_reaction/slimeRNG +/datum/chemical_reaction/slime/slimeRNG name = "Random Core" id = "slimerng" - result = null required_reagents = list("plasma" = 1) - result_amount = 1 required_other = 1 required_container = /obj/item/slime_extract/rainbow -/datum/chemical_reaction/slimeRNG/on_reaction(datum/reagents/holder) +/datum/chemical_reaction/slime/slimeRNG/on_reaction(datum/reagents/holder) feedback_add_details("slime_cores_used","[type]") var/mob/living/simple_animal/slime/random/S S = new(get_turf(holder.my_atom)) S.visible_message("Infused with plasma, the \ core begins to quiver and grow, and soon a new baby slime emerges \ from it!") + ..() -/datum/chemical_reaction/slime_transfer +/datum/chemical_reaction/slime/slime_transfer name = "Transfer Potion" id = "slimetransfer" - result = null required_reagents = list("blood" = 1) - result_amount = 1 required_other = 1 required_container = /obj/item/slime_extract/rainbow -/datum/chemical_reaction/slime_transfer/on_reaction(datum/reagents/holder) +/datum/chemical_reaction/slime/slime_transfer/on_reaction(datum/reagents/holder) feedback_add_details("slime_cores_used","[type]") var/obj/item/slimepotion/transference/P = new /obj/item/slimepotion/transference P.loc = get_turf(holder.my_atom) + ..() diff --git a/code/modules/reagents/chemistry/recipes/toxins.dm b/code/modules/reagents/chemistry/recipes/toxins.dm index c83fa4176b..233e6fd1bc 100644 --- a/code/modules/reagents/chemistry/recipes/toxins.dm +++ b/code/modules/reagents/chemistry/recipes/toxins.dm @@ -2,111 +2,101 @@ /datum/chemical_reaction/formaldehyde name = "formaldehyde" id = "Formaldehyde" - result = "formaldehyde" + results = list("formaldehyde" = 3) required_reagents = list("ethanol" = 1, "oxygen" = 1, "silver" = 1) - result_amount = 3 required_temp = 420 /datum/chemical_reaction/neurotoxin2 name = "neurotoxin2" id = "neurotoxin2" - result = "neurotoxin2" + results = list("neurotoxin2" = 1) required_reagents = list("space_drugs" = 1) - result_amount = 1 required_temp = 674 /datum/chemical_reaction/cyanide name = "Cyanide" id = "cyanide" - result = "cyanide" + results = list("cyanide" = 3) required_reagents = list("oil" = 1, "ammonia" = 1, "oxygen" = 1) - result_amount = 3 required_temp = 380 /datum/chemical_reaction/itching_powder name = "Itching Powder" id = "itching_powder" - result = "itching_powder" + results = list("itching_powder" = 3) required_reagents = list("welding_fuel" = 1, "ammonia" = 1, "charcoal" = 1) - result_amount = 3 /datum/chemical_reaction/facid name = "Fluorosulfuric acid" id = "facid" - result = "facid" + results = list("facid" = 4) required_reagents = list("sacid" = 1, "fluorine" = 1, "hydrogen" = 1, "potassium" = 1) - result_amount = 4 required_temp = 380 /datum/chemical_reaction/sulfonal name = "sulfonal" id = "sulfonal" - result = "sulfonal" + results = list("sulfonal" = 3) required_reagents = list("acetone" = 1, "diethylamine" = 1, "sulfur" = 1) - result_amount = 3 /datum/chemical_reaction/lipolicide name = "lipolicide" id = "lipolicide" - result = "lipolicide" + results = list("lipolicide" = 3) required_reagents = list("mercury" = 1, "diethylamine" = 1, "ephedrine" = 1) - result_amount = 3 /datum/chemical_reaction/mutagen name = "Unstable mutagen" id = "mutagen" - result = "mutagen" + results = list("mutagen" = 3) required_reagents = list("radium" = 1, "phosphorus" = 1, "chlorine" = 1) - result_amount = 3 /datum/chemical_reaction/lexorin name = "Lexorin" id = "lexorin" - result = "lexorin" + results = list("lexorin" = 3) required_reagents = list("plasma" = 1, "hydrogen" = 1, "nitrogen" = 1) - result_amount = 3 /datum/chemical_reaction/chloralhydrate name = "Chloral Hydrate" id = "chloralhydrate" - result = "chloralhydrate" + results = list("chloralhydrate" = 1) required_reagents = list("ethanol" = 1, "chlorine" = 3, "water" = 1) - result_amount = 1 /datum/chemical_reaction/mutetoxin //i'll just fit this in here snugly between other unfun chemicals :v name = "Mute toxin" id = "mutetoxin" - result = "mutetoxin" + results = list("mutetoxin" = 2) required_reagents = list("uranium" = 2, "water" = 1, "carbon" = 1) - result_amount = 2 /datum/chemical_reaction/zombiepowder name = "Zombie Powder" id = "zombiepowder" - result = "zombiepowder" + results = list("zombiepowder" = 2) required_reagents = list("carpotoxin" = 5, "morphine" = 5, "copper" = 5) - result_amount = 2 /datum/chemical_reaction/mindbreaker name = "Mindbreaker Toxin" id = "mindbreaker" - result = "mindbreaker" + results = list("mindbreaker" = 5) required_reagents = list("silicon" = 1, "hydrogen" = 1, "charcoal" = 1) - result_amount = 5 - -/datum/chemical_reaction/teslium - name = "Teslium" - id = "teslium" - result = "teslium" - required_reagents = list("plasma" = 1, "silver" = 1, "blackpowder" = 1) - result_amount = 3 - mix_message = "A jet of sparks flies from the mixture as it merges into a flickering slurry." - required_temp = 400 /datum/chemical_reaction/heparin name = "Heparin" id = "Heparin" - result = "heparin" + results = list("heparin" = 4) required_reagents = list("formaldehyde" = 1, "sodium" = 1, "chlorine" = 1, "lithium" = 1) - result_amount = 4 mix_message = "The mixture thins and loses all color." + +/datum/chemical_reaction/rotatium + name = "Rotatium" + id = "Rotatium" + results = list("rotatium" = 3) + required_reagents = list("mindbreaker" = 1, "teslium" = 1, "neurotoxin2" = 1) + mix_message = "After sparks, fire, and the smell of mindbreaker, the mix is constantly spinning with no stop in sight." + +/datum/chemical_reaction/anacea + name = "Anacea" + id = "anacea" + results = list("anacea" = 3) + required_reagents = list("haloperidol" = 1, "impedrezene" = 1, "radium" = 1) \ No newline at end of file diff --git a/code/modules/reagents/reagent_containers.dm b/code/modules/reagents/reagent_containers.dm index 91d90251e2..70a1c2c442 100644 --- a/code/modules/reagents/reagent_containers.dm +++ b/code/modules/reagents/reagent_containers.dm @@ -3,7 +3,7 @@ desc = "..." icon = 'icons/obj/chemical.dmi' icon_state = null - w_class = 1 + w_class = WEIGHT_CLASS_TINY var/amount_per_transfer_from_this = 5 var/list/possible_transfer_amounts = list(5,10,15,20,25,30) var/volume = 30 @@ -38,7 +38,7 @@ return /obj/item/weapon/reagent_containers/attack(mob/M, mob/user, def_zone) - if(user.a_intent == "harm") + if(user.a_intent == INTENT_HARM) return ..() /obj/item/weapon/reagent_containers/afterattack(obj/target, mob/user , flag) @@ -62,7 +62,7 @@ else if(C.is_mouth_covered(mask_only = 1)) covered = "mask" if(covered) - var/who = (isnull(user) || eater == user) ? "your" : "their" + var/who = (isnull(user) || eater == user) ? "your" : "[eater.p_their()]" user << "You have to remove [who] [covered] first!" return 0 return 1 @@ -71,9 +71,10 @@ if(reagents) for(var/datum/reagent/R in reagents.reagent_list) R.on_ex_act() - ..() + if(!qdeleted(src)) + ..() -/obj/item/weapon/reagent_containers/fire_act() +/obj/item/weapon/reagent_containers/fire_act(exposed_temperature, exposed_volume) reagents.chem_temp += 30 reagents.handle_reactions() ..() @@ -109,3 +110,9 @@ return reagents.clear_reagents() + +/obj/item/weapon/reagent_containers/microwave_act(obj/machinery/microwave/M) + if(is_open_container()) + reagents.chem_temp = max(reagents.chem_temp, 1000) + reagents.handle_reactions() + ..() \ No newline at end of file diff --git a/code/modules/reagents/reagent_containers/blood_pack.dm b/code/modules/reagents/reagent_containers/blood_pack.dm index 08b12d9266..1ed89a74db 100644 --- a/code/modules/reagents/reagent_containers/blood_pack.dm +++ b/code/modules/reagents/reagent_containers/blood_pack.dm @@ -78,7 +78,7 @@ var/t = stripped_input(user, "What would you like to label the blood pack?", name, null, 53) if(!user.canUseTopic(src)) return - if(user.get_active_hand() != I) + if(user.get_active_held_item() != I) return if(loc != user) return diff --git a/code/modules/reagents/reagent_containers/borghydro.dm b/code/modules/reagents/reagent_containers/borghydro.dm index c09b537bd6..e372bb8fe1 100644 --- a/code/modules/reagents/reagent_containers/borghydro.dm +++ b/code/modules/reagents/reagent_containers/borghydro.dm @@ -25,6 +25,7 @@ Borg Hypospray var/list/datum/reagents/reagent_list = list() var/list/reagent_ids = list("dexalin", "kelotane", "bicaridine", "antitoxin", "epinephrine", "spaceacillin") + var/accepts_reagent_upgrades = TRUE //If upgrades can increase number of reagents dispensed. var/list/modes = list() //Basically the inverse of reagent_ids. Instead of having numbers as "keys" and strings as values it has strings as keys and numbers as values. //Used as list for input() in shakers. @@ -32,11 +33,8 @@ Borg Hypospray /obj/item/weapon/reagent_containers/borghypo/New() ..() - var/iteration = 1 for(var/R in reagent_ids) add_reagent(R) - modes[R] = iteration - iteration++ START_PROCESSING(SSobj, src) @@ -73,8 +71,10 @@ Borg Hypospray var/datum/reagents/R = reagent_list[reagent_list.len] R.add_reagent(reagent, 30) + modes[reagent] = modes.len + 1 + /obj/item/weapon/reagent_containers/borghypo/proc/regenerate_reagents() - if(isrobot(src.loc)) + if(iscyborg(src.loc)) var/mob/living/silicon/robot/R = src.loc if(R && R.cell) for(var/i in 1 to reagent_ids.len) @@ -90,7 +90,7 @@ Borg Hypospray return if(!istype(M)) return - if(R.total_volume && M.can_inject(user, 1, bypass_protection)) + if(R.total_volume && M.can_inject(user, 1, user.zone_selected,bypass_protection)) M << "You feel a tiny prick!" user << "You inject [M] with the injector." var/fraction = min(amount_per_transfer_from_this/R.total_volume, 1) @@ -134,6 +134,7 @@ Borg Hypospray /obj/item/weapon/reagent_containers/borghypo/hacked icon_state = "borghypo_s" reagent_ids = list ("facid", "mutetoxin", "cyanide", "sodium_thiopental", "heparin", "lexorin") + accepts_reagent_upgrades = FALSE /obj/item/weapon/reagent_containers/borghypo/syndicate name = "syndicate cyborg hypospray" @@ -143,6 +144,7 @@ Borg Hypospray recharge_time = 2 reagent_ids = list("syndicate_nanites", "potass_iodide", "morphine") bypass_protection = 1 + accepts_reagent_upgrades = FALSE /* Borg Shaker @@ -155,6 +157,7 @@ Borg Shaker possible_transfer_amounts = list(5,10,20) charge_cost = 20 //Lots of reagents all regenerating at once, so the charge cost is lower. They also regenerate faster. recharge_time = 3 + accepts_reagent_upgrades = FALSE reagent_ids = list("beer", "orangejuice", "limejuice", "tomatojuice", "cola", "tonic", "sodawater", "ice", "cream", "whiskey", "vodka", "rum", "gin", "tequila", "vermouth", "wine", "kahlua", "cognac", "ale") @@ -162,7 +165,7 @@ Borg Shaker return //Can't inject stuff with a shaker, can we? //not with that attitude /obj/item/weapon/reagent_containers/borghypo/borgshaker/regenerate_reagents() - if(isrobot(src.loc)) + if(iscyborg(src.loc)) var/mob/living/silicon/robot/R = src.loc if(R && R.cell) for(var/i in modes) //Lots of reagents in this one, so it's best to regenrate them all at once to keep it from being tedious. @@ -209,6 +212,7 @@ Borg Shaker possible_transfer_amounts = list(5,10,20) charge_cost = 20 //Lots of reagents all regenerating at once, so the charge cost is lower. They also regenerate faster. recharge_time = 3 + accepts_reagent_upgrades = FALSE reagent_ids = list("beer2") @@ -216,13 +220,16 @@ Borg Shaker name = "Peace Hypospray" reagent_ids = list("dizzysolution","tiresolution") + accepts_reagent_upgrades = FALSE /obj/item/weapon/reagent_containers/borghypo/peace/hacked desc = "Everything's peaceful in death!" icon_state = "borghypo_s" reagent_ids = list("dizzysolution","tiresolution","tirizene","sulfonal","sodium_thiopental","cyanide","neurotoxin2") + accepts_reagent_upgrades = FALSE /obj/item/weapon/reagent_containers/borghypo/epi name = "epinephrine injector" desc = "An advanced chemical synthesizer and injection system, designed to stabilize patients.." - reagent_ids = list("epinephrine") \ No newline at end of file + reagent_ids = list("epinephrine") + accepts_reagent_upgrades = FALSE diff --git a/code/modules/reagents/reagent_containers/bottle.dm b/code/modules/reagents/reagent_containers/bottle.dm index 8bd874837d..61bd6b78ff 100644 --- a/code/modules/reagents/reagent_containers/bottle.dm +++ b/code/modules/reagents/reagent_containers/bottle.dm @@ -19,7 +19,7 @@ update_icon() /obj/item/weapon/reagent_containers/glass/bottle/update_icon() - overlays.Cut() + cut_overlays() if(reagents.total_volume) var/image/filling = image('icons/obj/reagentfillings.dmi', src, "[icon_state]-10") diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index e19c75c13d..8853d6a7a6 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -5,6 +5,7 @@ volume = 50 flags = OPENCONTAINER spillable = 1 + resistance_flags = ACID_PROOF /obj/item/weapon/reagent_containers/glass/attack(mob/M, mob/user, obj/target) @@ -19,7 +20,7 @@ return if(istype(M)) - if(user.a_intent == "harm") + if(user.a_intent == INTENT_HARM) var/R M.visible_message("[user] splashes the contents of [src] onto [M]!", \ "[user] splashes the contents of [src] onto [M]!") @@ -78,7 +79,7 @@ user << "You transfer [trans] unit\s of the solution to [target]." else if(reagents.total_volume) - if(user.a_intent == "harm") + if(user.a_intent == INTENT_HARM) user.visible_message("[user] splashes the contents of [src] onto [target]!", \ "You splash the contents of [src] onto [target].") reagents.reaction(target, TOUCH) @@ -213,6 +214,9 @@ name = "epinephrine reserve tank" list_reagents = list("epinephrine" = 50) +/obj/item/weapon/reagent_containers/glass/beaker/synthflesh + list_reagents = list("synthflesh" = 50) + /obj/item/weapon/reagent_containers/glass/bucket name = "bucket" desc = "It's a bucket." @@ -220,23 +224,24 @@ icon_state = "bucket" item_state = "bucket" materials = list(MAT_METAL=200) - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL amount_per_transfer_from_this = 20 possible_transfer_amounts = list(10,15,20,25,30,50,70) volume = 70 flags = OPENCONTAINER flags_inv = HIDEHAIR slot_flags = SLOT_HEAD - armor = list(melee = 10, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0) //Weak melee protection, because you can wear it on your head + resistance_flags = 0 + armor = list(melee = 10, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 75, acid = 50) //Weak melee protection, because you can wear it on your head slot_equipment_priority = list( \ slot_back, slot_wear_id,\ slot_w_uniform, slot_wear_suit,\ - slot_wear_mask, slot_head,\ + slot_wear_mask, slot_head, slot_neck,\ slot_shoes, slot_gloves,\ slot_ears, slot_glasses,\ slot_belt, slot_s_store,\ slot_l_store, slot_r_store,\ - slot_drone_storage + slot_generic_dextrous_storage ) /obj/item/weapon/reagent_containers/glass/bucket/attackby(obj/O, mob/user, params) diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm index 11cdb8f876..98e1ddd7ef 100644 --- a/code/modules/reagents/reagent_containers/hypospray.dm +++ b/code/modules/reagents/reagent_containers/hypospray.dm @@ -7,6 +7,7 @@ amount_per_transfer_from_this = 5 volume = 30 possible_transfer_amounts = list() + resistance_flags = ACID_PROOF flags = OPENCONTAINER slot_flags = SLOT_BELT var/ignore_flags = 0 @@ -46,6 +47,7 @@ /obj/item/weapon/reagent_containers/hypospray/CMO list_reagents = list("omnizine" = 30) + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF /obj/item/weapon/reagent_containers/hypospray/combat name = "combat stimulant injector" @@ -81,7 +83,7 @@ ..() update_icon() spawn(80) - if(isrobot(user) && !reagents.total_volume) + if(iscyborg(user) && !reagents.total_volume) var/mob/living/silicon/robot/R = user if(R.cell.use(100)) reagents.add_reagent_list(list_reagents) @@ -128,11 +130,11 @@ /obj/item/weapon/reagent_containers/hypospray/medipen/survival name = "survival medipen" - desc = "A medipen for surviving in the harshest of environments, heals and protects from environmental hazards. " + desc = "A medipen for surviving in the harshest of environments, heals and protects from environmental hazards. WARNING: Do not inject more than one pen in quick succession." icon_state = "stimpen" - volume = 82 - amount_per_transfer_from_this = 82 - list_reagents = list("nanites" = 2, "salbutamol" = 10, "coffee" = 20, "leporazine" = 20, "tricordrazine" = 15, "epinephrine" = 10, "omnizine" = 5, "stimulants" = 10) + volume = 57 + amount_per_transfer_from_this = 57 + list_reagents = list("salbutamol" = 10, "leporazine" = 15, "tricordrazine" = 15, "epinephrine" = 10, "miningnanites" = 2, "omnizine" = 5) /obj/item/weapon/reagent_containers/hypospray/medipen/species_mutator name = "species mutator medipen" diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index 582bf75748..1c827af0f4 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -7,7 +7,7 @@ flags = OPENCONTAINER | NOBLUDGEON slot_flags = SLOT_BELT throwforce = 0 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL throw_speed = 3 throw_range = 7 var/stream_mode = 0 //whether we use the more focused mode @@ -17,7 +17,7 @@ var/stream_amount = 10 //the amount of reagents transfered when in stream mode. amount_per_transfer_from_this = 5 volume = 250 - possible_transfer_amounts = list() + possible_transfer_amounts = list(5,10,15,20,25,30,50,100) /obj/item/weapon/reagent_containers/spray/afterattack(atom/A as mob|obj, mob/user) @@ -117,7 +117,6 @@ user << "You switch the nozzle setting to [stream_mode ? "\"stream\"":"\"spray\""]. You'll now use [amount_per_transfer_from_this] units per use." /obj/item/weapon/reagent_containers/spray/verb/empty() - set name = "Empty Spray Bottle" set category = "Object" set src in usr @@ -136,6 +135,7 @@ desc = "BLAM!-brand non-foaming space cleaner!" list_reagents = list("cleaner" = 250) +//spray tan /obj/item/weapon/reagent_containers/spray/spraytan name = "spray tan" volume = 50 @@ -143,6 +143,19 @@ list_reagents = list("spraytan" = 50) +/obj/item/weapon/reagent_containers/spray/medical + name = "medical spray" + icon = 'icons/obj/chemical.dmi' + icon_state = "medspray" + volume = 100 + + +/obj/item/weapon/reagent_containers/spray/medical/sterilizer + name = "sterilizer spray" + desc = "Spray bottle loaded with non-toxic sterilizer. Useful in preparation for surgery." + list_reagents = list("sterilizine" = 100) + + //pepperspray /obj/item/weapon/reagent_containers/spray/pepper name = "pepperspray" @@ -177,7 +190,7 @@ icon_state = "chemsprayer" item_state = "chemsprayer" throwforce = 0 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL stream_mode = 1 current_range = 7 spray_range = 4 @@ -211,23 +224,3 @@ item_state = "plantbgone" volume = 100 list_reagents = list("plantbgone" = 100) - -/obj/item/weapon/reagent_containers/spray/thermite - name = "Thermite Spray" - desc = "A 50u spray bottle loaded with thermite, for melting walls. " - icon = 'icons/obj/weapons.dmi' - icon_state = "thermitespray" - item_state = "thermitespray" - volume = 50 - list_reagents = list("thermite" = 50) - -/obj/item/weapon/reagent_containers/spray/thermite/afterattack(atom/A as mob|obj, mob/user) - if(istype(A, /turf/closed/wall)) - if(reagents.get_reagent_amount("thermite") >= 10) - user.visible_message("You spray the thermite on [A].") - reagents.reaction(A, TOUCH) - reagents.remove_reagent("thermite", 10) - else - user.visible_message("You don't have enough thermite left!") - return - else return ..() \ No newline at end of file diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 9b3f654a25..8b35cb003a 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -12,7 +12,7 @@ volume = 15 var/mode = SYRINGE_DRAW var/busy = 0 // needed for delayed drawing of blood - var/projectile_type = /obj/item/projectile/bullet/dart/syringe + var/proj_piercing = 0 //does it pierce through thick clothes when shot with syringe gun materials = list(MAT_METAL=10, MAT_GLASS=20) /obj/item/weapon/reagent_containers/syringe/New() @@ -207,6 +207,9 @@ /obj/item/weapon/reagent_containers/syringe/lethal/choral list_reagents = list("chloralhydrate" = 50) +/obj/item/weapon/reagent_containers/syringe/lethal/execution + list_reagents = list("plasma" = 15, "formaldehyde" = 15, "cyanide" = 10, "facid" = 10) + /obj/item/weapon/reagent_containers/syringe/mulligan name = "Mulligan" desc = "A syringe used to completely change the users identity." @@ -242,5 +245,5 @@ name = "piercing syringe" desc = "A diamond-tipped syringe that pierces armor when launched at high velocity. It can hold up to 10 units." volume = 10 - projectile_type = /obj/item/projectile/bullet/dart/syringe/piercing + proj_piercing = 1 origin_tech = "combat=3;materials=4;engineering=5" diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index 22afc2e5eb..4f6e1d3d90 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -6,28 +6,16 @@ density = 1 anchored = 0 pressure_resistance = 2*ONE_ATMOSPHERE + obj_integrity = 300 + max_integrity = 300 var/tank_volume = 1000 //In units, how much the dispenser can hold var/reagent_id = "water" //The ID of the reagent that the dispenser uses -/obj/structure/reagent_dispensers/ex_act(severity, target) - switch(severity) - if(1) - qdel(src) - return - if(2) - if (prob(50)) - qdel(src) - return - if(3) - if (prob(5)) - qdel(src) - return - else - return - -/obj/structure/reagent_dispensers/blob_act(obj/effect/blob/B) - if(prob(50)) - qdel(src) +/obj/structure/reagent_dispensers/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) + . = ..() + if(. && obj_integrity > 0) + if(tank_volume && (damage_flag == "bullet" || damage_flag == "laser")) + boom() /obj/structure/reagent_dispensers/attackby(obj/item/weapon/W, mob/user, params) if(istype(W, /obj/item/weapon/reagent_containers)) @@ -48,72 +36,62 @@ user << "It's empty." +/obj/structure/reagent_dispensers/proc/boom() + visible_message("\The [src] ruptures!") + chem_splash(loc, 5, list(reagents)) + qdel(src) + +/obj/structure/reagent_dispensers/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + if(!disassembled) + boom() + else + qdel(src) + /obj/structure/reagent_dispensers/watertank name = "water tank" desc = "A water tank." icon_state = "water" -/obj/structure/reagent_dispensers/watertank/ex_act(severity, target) - switch(severity) - if(1) - qdel(src) - return - if(2) - if (prob(50)) - PoolOrNew(/obj/effect/particle_effect/water, src.loc) - qdel(src) - return - if(3) - if (prob(5)) - PoolOrNew(/obj/effect/particle_effect/water, src.loc) - qdel(src) - return - else - return - -/obj/structure/reagent_dispensers/watertank/blob_act(obj/effect/blob/B) - if(prob(50)) - PoolOrNew(/obj/effect/particle_effect/water, loc) - qdel(src) - - /obj/structure/reagent_dispensers/watertank/high name = "high-capacity water tank" desc = "A highly-pressurized water tank made to hold gargantuan amounts of water.." icon_state = "water_high" //I was gonna clean my room... tank_volume = 100000 - /obj/structure/reagent_dispensers/fueltank name = "fuel tank" desc = "A tank full of industrial welding fuel. Do not consume." icon_state = "fuel" reagent_id = "welding_fuel" -/obj/structure/reagent_dispensers/fueltank/bullet_act(obj/item/projectile/Proj) - ..() - if(istype(Proj) && !Proj.nodamage && ((Proj.damage_type == BURN) || (Proj.damage_type == BRUTE))) - message_admins("[key_name_admin(Proj.firer)] triggered a fueltank explosion via projectile.") - log_game("[key_name(Proj.firer)] triggered a fueltank explosion via projectile.") - boom() - -/obj/structure/reagent_dispensers/fueltank/proc/boom() +/obj/structure/reagent_dispensers/fueltank/boom() explosion(get_turf(src), 0, 1, 5, flame_range = 5) qdel(src) -/obj/structure/reagent_dispensers/fueltank/blob_act(obj/effect/blob/B) +/obj/structure/reagent_dispensers/fueltank/blob_act(obj/structure/blob/B) boom() /obj/structure/reagent_dispensers/fueltank/ex_act() boom() -/obj/structure/reagent_dispensers/fueltank/fire_act() +/obj/structure/reagent_dispensers/fueltank/fire_act(exposed_temperature, exposed_volume) boom() /obj/structure/reagent_dispensers/fueltank/tesla_act() ..() //extend the zap boom() +/obj/structure/reagent_dispensers/fueltank/bullet_act(obj/item/projectile/P) + ..() + if(!qdeleted(src)) //wasn't deleted by the projectile's effects. + if(!P.nodamage && ((P.damage_type == BURN) || (P.damage_type == BRUTE))) + var/boom_message = "[key_name_admin(P.firer)] triggered a fueltank explosion via projectile." + bombers += boom_message + message_admins(boom_message) + log_game("[key_name(P.firer)] triggered a fueltank explosion via projectile.") + boom() + /obj/structure/reagent_dispensers/fueltank/attackby(obj/item/I, mob/living/user, params) if(istype(I, /obj/item/weapon/weldingtool)) if(!reagents.has_reagent("welding_fuel")) @@ -125,12 +103,14 @@ user << "Your [W.name] is already full!" return reagents.trans_to(W, W.max_fuel) - user.visible_message("[user] refills \his [W.name].", "You refill [W].") + user.visible_message("[user] refills [user.p_their()] [W.name].", "You refill [W].") playsound(src, 'sound/effects/refill.ogg', 50, 1) update_icon() else - user.visible_message("[user] catastrophically fails at refilling \his [W.name]!", "That was stupid of you.") - message_admins("[key_name_admin(user)] triggered a fueltank explosion via welding tool.") + user.visible_message("[user] catastrophically fails at refilling [user.p_their()] [W.name]!", "That was stupid of you.") + var/message = "[key_name_admin(user)] triggered a fueltank explosion via welding tool." + bombers += message + message_admins(message) log_game("[key_name(user)] triggered a fueltank explosion via welding tool.") boom() return @@ -180,8 +160,10 @@ icon_state = "beer" reagent_id = "beer" -/obj/structure/reagent_dispensers/beerkeg/blob_act(obj/effect/blob/B) +/obj/structure/reagent_dispensers/beerkeg/blob_act(obj/structure/blob/B) explosion(src.loc,0,3,5,7,10) + if(!qdeleted(src)) + qdel(src) /obj/structure/reagent_dispensers/virusfood @@ -189,4 +171,4 @@ desc = "A dispenser of low-potency virus mutagenic." icon_state = "virus_food" anchored = 1 - reagent_id = "virusfood" + reagent_id = "virusfood" \ No newline at end of file diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm index c6fe91dace..09337e8e2f 100644 --- a/code/modules/recycling/conveyor2.dm +++ b/code/modules/recycling/conveyor2.dm @@ -116,21 +116,32 @@ // attack with item, place item on conveyor /obj/machinery/conveyor/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/weapon/crowbar)) - if(!(stat & BROKEN)) - var/obj/item/conveyor_construct/C = new/obj/item/conveyor_construct(src.loc) - C.id = id - transfer_fingerprints_to(C) - user << "You remove the conveyor belt." - qdel(src) + user.visible_message("[user] struggles to pry up \the [src] with \the [I].", \ + "You struggle to pry up \the [src] with \the [I].") + if(do_after(user, 40*I.toolspeed, target = src)) + if(qdeleted(src)) + return //prevent multiple decontructs + if(!(stat & BROKEN)) + var/obj/item/conveyor_construct/C = new/obj/item/conveyor_construct(src.loc) + C.id = id + transfer_fingerprints_to(C) + user << "You remove the conveyor belt." + qdel(src) else if(istype(I, /obj/item/weapon/wrench)) if(!(stat & BROKEN)) - playsound(loc, 'sound/items/Ratchet.ogg', 50, 1) + playsound(loc, I.usesound, 50, 1) setDir(turn(dir,-45)) update_move_direction() user << "You rotate [src]." - else if(user.a_intent != "harm") + else if(istype(I, /obj/item/weapon/screwdriver)) + if(!(stat & BROKEN)) + verted = verted * -1 + update_move_direction() + user << "You reverse [src]'s direction." + + else if(user.a_intent != INTENT_HARM) if(user.drop_item()) I.loc = src.loc else @@ -286,7 +297,7 @@ icon_state = "conveyor0" name = "conveyor belt assembly" desc = "A conveyor belt assembly." - w_class = 4 + w_class = WEIGHT_CLASS_BULKY var/id = "" //inherited by the belt /obj/item/conveyor_construct/attackby(obj/item/I, mob/user, params) @@ -297,7 +308,7 @@ id = C.id /obj/item/conveyor_construct/afterattack(atom/A, mob/user, proximity) - if(!proximity || user.stat || !istype(A, /turf/open/floor) || istype(A, /area/shuttle)) + if(!proximity || user.stat || !isfloorturf(A) || istype(A, /area/shuttle)) return var/cdir = get_dir(A, user) if(A == user.loc) @@ -313,7 +324,7 @@ desc = "A conveyor control switch assembly." icon = 'icons/obj/recycling.dmi' icon_state = "switch-off" - w_class = 4 + w_class = WEIGHT_CLASS_BULKY var/id = "" //inherited by the switch /obj/item/conveyor_switch_construct/New() @@ -321,7 +332,7 @@ id = rand() //this couldn't possibly go wrong /obj/item/conveyor_switch_construct/afterattack(atom/A, mob/user, proximity) - if(!proximity || user.stat || !istype(A, /turf/open/floor) || istype(A, /area/shuttle)) + if(!proximity || user.stat || !isfloorturf(A) || istype(A, /area/shuttle)) return var/found = 0 for(var/obj/machinery/conveyor/C in view()) diff --git a/code/modules/recycling/disposal-construction.dm b/code/modules/recycling/disposal-construction.dm index 6f41c5fb43..447e5a7069 100644 --- a/code/modules/recycling/disposal-construction.dm +++ b/code/modules/recycling/disposal-construction.dm @@ -11,6 +11,8 @@ density = 0 pressure_resistance = 5*ONE_ATMOSPHERE level = 2 + obj_integrity = 200 + max_integrity = 200 var/ptype = 0 var/dpdir = 0 // directions as disposalpipe @@ -182,11 +184,11 @@ nicetype = "pipe" var/turf/T = loc - if(T.intact && istype(T, /turf/open/floor)) + if(T.intact && isfloorturf(T)) user << "You can only attach the [nicetype] if the floor plating is removed!" return - if(!ispipe && istype(T, /turf/closed/wall)) + if(!ispipe && iswallturf(T)) user << "You can't build [nicetype]s on walls, only disposal pipes!" return @@ -222,7 +224,7 @@ level = 1 // We don't want disposal bins to disappear under the floors density = 0 user << "You attach the [nicetype] to the underfloor." - playsound(loc, 'sound/items/Ratchet.ogg', 100, 1) + playsound(loc, I.usesound, 100, 1) update_icon() else if(istype(I, /obj/item/weapon/weldingtool)) @@ -231,7 +233,7 @@ if(W.remove_fuel(0,user)) playsound(loc, 'sound/items/Welder2.ogg', 100, 1) user << "You start welding the [nicetype] in place..." - if(do_after(user, 20/I.toolspeed, target = src)) + if(do_after(user, 20*I.toolspeed, target = src)) if(!loc || !W.isOn()) return user << "The [nicetype] has been welded in place." diff --git a/code/modules/recycling/disposal-structures.dm b/code/modules/recycling/disposal-structures.dm index 283369a5d1..23a14b77df 100644 --- a/code/modules/recycling/disposal-structures.dm +++ b/code/modules/recycling/disposal-structures.dm @@ -6,6 +6,7 @@ /obj/structure/disposalholder invisibility = INVISIBILITY_MAXIMUM + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF var/datum/gas_mixture/gas = null // gas used to flush, will appear at exit point var/active = 0 // true if the holder is moving, otherwise inactive dir = 0 @@ -123,6 +124,9 @@ /obj/structure/disposalholder/allow_drop() return 1 +/obj/structure/disposalholder/ex_act(severity, target) + return + // Disposal pipes /obj/structure/disposalpipe @@ -135,7 +139,9 @@ level = 1 // underfloor only var/dpdir = 0 // bitmask of pipe directions dir = 0// dir will contain dominant direction for junction pipes - var/health = 10 // health points 0-10 + obj_integrity = 200 + max_integrity = 200 + armor = list(melee = 25, bullet = 10, laser = 10, energy = 100, bomb = 0, bio = 100, rad = 100, fire = 90, acid = 30) layer = DISPOSAL_PIPE_LAYER // slightly lower than wires and other pipes var/base_icon_state // initial icon state on map var/obj/structure/disposalconstruct/stored @@ -178,22 +184,9 @@ /obj/structure/disposalpipe/Destroy() var/obj/structure/disposalholder/H = locate() in src if(H) - // holder was present H.active = 0 var/turf/T = src.loc - if(T.density) - // deleting pipe is inside a dense turf (wall) - // this is unlikely, but just dump out everything into the turf in case - - for(var/atom/movable/AM in H) - AM.forceMove(src.loc) - AM.pipe_eject(0) - qdel(H) - return ..() - - // otherwise, do normal expel from turf - else - expel(H, T, 0) + expel(H, T, 0) return ..() // returns the direction of the next pipe object, given the entrance dir @@ -228,7 +221,7 @@ // update the icon_state to reflect hidden status /obj/structure/disposalpipe/proc/update() var/turf/T = src.loc - hide(T.intact && !istype(T,/turf/open/space)) // space never hides pipes + hide(T.intact && !isspaceturf(T)) // space never hides pipes // hide called by levelupdate if turf intact status changes // change visibility status and force update of icon @@ -255,104 +248,47 @@ /obj/structure/disposalpipe/proc/expel(obj/structure/disposalholder/H, turf/T, direction) var/turf/target + var/eject_range = 5 + var/turf/open/floor/floorturf - if(istype(T, /turf/open/floor)) //intact floor, pop the tile - var/turf/open/floor/myturf = T - if(myturf.builtin_tile) - myturf.builtin_tile.loc = T - myturf.builtin_tile = null - myturf.make_plating() + if(isfloorturf(T)) //intact floor, pop the tile + floorturf = T + if(floorturf.floor_tile) + PoolOrNew(floorturf.floor_tile, T) + floorturf.make_plating() if(direction) // direction is specified - if(istype(T, /turf/open/space)) // if ended in space, then range is unlimited + if(isspaceturf(T)) // if ended in space, then range is unlimited target = get_edge_target_turf(T, direction) else // otherwise limit to 10 tiles target = get_ranged_target_turf(T, direction, 10) - playsound(src, 'sound/machines/hiss.ogg', 50, 0, 0) - if(H) - for(var/atom/movable/AM in H) - AM.forceMove(src.loc) - AM.pipe_eject(direction) - AM.throw_at_fast(target, 10, 1) + eject_range = 10 - else // no specified direction, so throw in random direction + else if(floorturf) + target = get_offset_target_turf(T, rand(5)-rand(5), rand(5)-rand(5)) - playsound(src, 'sound/machines/hiss.ogg', 50, 0, 0) - if(H) - for(var/atom/movable/AM in H) - target = get_offset_target_turf(T, rand(5)-rand(5), rand(5)-rand(5)) - AM.forceMove(src.loc) - AM.pipe_eject(0) - AM.throw_at_fast(target, 5, 1) + playsound(src, 'sound/machines/hiss.ogg', 50, 0, 0) + for(var/atom/movable/AM in H) + AM.forceMove(src.loc) + AM.pipe_eject(direction) + if(target) + AM.throw_at_fast(target, eject_range, 1) H.vent_gas(T) qdel(H) - return - -// call to break the pipe -// will expel any holder inside at the time -// then delete the pipe -// remains : set to leave broken pipe pieces in place -/obj/structure/disposalpipe/proc/broken(remains = 0) - if(remains) - for(var/D in cardinal) - if(D & dpdir) - var/obj/structure/disposalpipe/broken/P = new(src.loc) - P.setDir(D) - - src.invisibility = INVISIBILITY_MAXIMUM // make invisible (since we won't delete the pipe immediately) - var/obj/structure/disposalholder/H = locate() in src - if(H) - // holder was present - H.active = 0 - var/turf/T = src.loc - if(T.density) - // broken pipe is inside a dense turf (wall) - // this is unlikely, but just dump out everything into the turf in case - - for(var/atom/movable/AM in H) - AM.forceMove(src.loc) - AM.pipe_eject(0) - qdel(H) - return - - // otherwise, do normal expel from turf - if(H) - expel(H, T, 0) - - spawn(2) // delete pipe after 2 ticks to ensure expel proc finished - qdel(src) // pipe affected by explosion -/obj/structure/disposalpipe/ex_act(severity, target) - - //pass on ex_act to our contents before calling it on ourself +/obj/structure/disposalpipe/contents_explosion(severity, target) var/obj/structure/disposalholder/H = locate() in src if(H) H.contents_explosion(severity, target) - switch(severity) - if(1) - broken(0) - return - if(2) - health -= rand(5,15) - healthcheck() - return - if(3) - health -= rand(0,15) - healthcheck() - return - -// test health for brokenness -/obj/structure/disposalpipe/proc/healthcheck() - if(health < -2) - broken(0) - else if(health<1) - broken(1) - return +/obj/structure/disposalpipe/run_obj_armor(damage_amount, damage_type, damage_flag = 0, attack_dir) + if(damage_flag == "melee" && damage_amount < 10) + return 0 + . = ..() //attack by item //weldingtool: unfasten and convert to obj/disposalconstruct @@ -371,7 +307,7 @@ // check if anything changed over 2 seconds if(do_after(user,30, target = src)) if(!src || !W.isOn()) return - Deconstruct() + deconstruct() user << "You slice the disposal pipe." else return ..() @@ -381,20 +317,28 @@ . = 1 // called when pipe is cut with welder -/obj/structure/disposalpipe/Deconstruct() - if(stored) - var/turf/T = loc - stored.loc = T - transfer_fingerprints_to(stored) - stored.setDir(dir) - stored.density = 0 - stored.anchored = 1 - stored.update_icon() - ..() +/obj/structure/disposalpipe/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + if(disassembled) + if(stored) + var/turf/T = loc + stored.loc = T + transfer_fingerprints_to(stored) + stored.setDir(dir) + stored.density = 0 + stored.anchored = 1 + stored.update_icon() + else + for(var/D in cardinal) + if(D & dpdir) + var/obj/structure/disposalpipe/broken/P = new(src.loc) + P.setDir(D) + qdel(src) + /obj/structure/disposalpipe/singularity_pull(S, current_size) if(current_size >= STAGE_FIVE) - Deconstruct() + deconstruct() // *** TEST verb //client/verb/dispstop() @@ -680,11 +624,10 @@ /obj/structure/disposalpipe/broken/New() ..() update() - return // the disposal outlet machine -/obj/structure/disposalpipe/broken/Deconstruct() +/obj/structure/disposalpipe/broken/deconstruct() qdel(src) /obj/structure/disposaloutlet @@ -763,7 +706,7 @@ if(W.remove_fuel(0,user)) playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1) user << "You start slicing the floorweld off \the [src]..." - if(do_after(user,20/I.toolspeed, target = src)) + if(do_after(user,20*I.toolspeed, target = src)) if(!src || !W.isOn()) return user << "You slice the floorweld off \the [src]." stored.loc = loc diff --git a/code/modules/recycling/disposal-unit.dm b/code/modules/recycling/disposal-unit.dm index ab2da6b718..40b66555f8 100644 --- a/code/modules/recycling/disposal-unit.dm +++ b/code/modules/recycling/disposal-unit.dm @@ -8,8 +8,12 @@ anchored = 1 density = 1 on_blueprints = TRUE + armor = list(melee = 25, bullet = 10, laser = 10, energy = 100, bomb = 0, bio = 100, rad = 100, fire = 90, acid = 30) + obj_integrity = 200 + max_integrity = 200 + resistance_flags = FIRE_PROOF var/datum/gas_mixture/air_contents // internal reservoir - var/mode = 1 // mode -1=screws removed 0=off 1=charging 2=charged + var/mode = PRESSURE_ON var/flush = 0 // true if flush handle is pulled var/obj/structure/disposalpipe/trunk/trunk = null // the attached pipe trunk var/flushing = 0 // true if flushing in progress @@ -37,14 +41,14 @@ update_icon() /obj/machinery/disposal/proc/trunk_check() - trunk = locate() in src.loc + trunk = locate() in loc if(!trunk) - mode = 0 + mode = PRESSURE_OFF flush = 0 else - mode = initial(mode) + mode = PRESSURE_ON flush = initial(flush) - trunk.linked = src // link the pipe trunk to self + trunk.linked = src // link the pipe trunk to self /obj/machinery/disposal/Destroy() eject() @@ -54,10 +58,10 @@ /obj/machinery/disposal/singularity_pull(S, current_size) if(current_size >= STAGE_FIVE) - Deconstruct() + deconstruct() /obj/machinery/disposal/initialize() - // this will get a copy of the air turf and take a SEND PRESSURE amount of air from it + //this will get a copy of the air turf and take a SEND PRESSURE amount of air from it var/atom/L = loc var/datum/gas_mixture/env = new env.copy_from(L.return_air()) @@ -67,34 +71,28 @@ /obj/machinery/disposal/attackby(obj/item/I, mob/user, params) add_fingerprint(user) - if(mode<=0) + if(mode != PRESSURE_ON && mode != PRESSURE_MAXED && !flush) if(istype(I, /obj/item/weapon/screwdriver)) - if(contents.len > 0) - user << "Eject the items first!" - return - if(mode==0) - mode=-1 + if(mode == PRESSURE_OFF) + mode = SCREWS_OUT else - mode=0 - playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) - user << "You [mode==0?"attach":"remove"] the screws around the power connection." + mode = PRESSURE_OFF + playsound(src.loc, I.usesound, 50, 1) + user << "You [mode == SCREWS_OUT ? "remove":"attach"] the screws around the power connection." return - else if(istype(I,/obj/item/weapon/weldingtool) && mode==-1) + else if(istype(I,/obj/item/weapon/weldingtool) && mode == SCREWS_OUT) var/obj/item/weapon/weldingtool/W = I if(W.remove_fuel(0,user)) - if(contents.len > 0) - user << "Eject the items first!" - return playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1) user << "You start slicing the floorweld off \the [src]..." - if(do_after(user,20/I.toolspeed, target = src)) + if(do_after(user,20*I.toolspeed, target = src) && mode == SCREWS_OUT) if(!W.isOn()) return user << "You slice the floorweld off \the [src]." - Deconstruct() + deconstruct() return - if(user.a_intent != "harm") + if(user.a_intent != INTENT_HARM) if(!user.drop_item() || (I.flags & ABSTRACT)) return place_item_in_disposal(I, user) @@ -104,13 +102,10 @@ return ..() /obj/machinery/disposal/proc/place_item_in_disposal(obj/item/I, mob/user) - I.loc = src - user.visible_message("[user.name] places \the [I] into \the [src].", \ - "You place \the [I] into \the [src].") - - -// mouse drop another mob or self + I.forceMove(src) + user.visible_message("[user.name] places \the [I] into \the [src].", "You place \the [I] into \the [src].") +//mouse drop another mob or self /obj/machinery/disposal/MouseDrop_T(mob/living/target, mob/living/user) if(istype(target)) stuff_mob_in(target, user) @@ -118,7 +113,7 @@ /obj/machinery/disposal/proc/stuff_mob_in(mob/living/target, mob/living/user) if(!iscarbon(user) && !user.ventcrawler) //only carbon and ventcrawlers can climb into disposal by themselves. return - if(!istype(user.loc, /turf/)) //No magically doing it from inside closets + if(!isturf(user.loc)) //No magically doing it from inside closets return if(target.buckled || target.has_buckled_mobs()) return @@ -127,50 +122,37 @@ return add_fingerprint(user) if(user == target) - user.visible_message("[user] starts climbing into [src].", \ - "You start climbing into [src]...") + user.visible_message("[user] starts climbing into [src].", "You start climbing into [src]...") else - target.visible_message("[user] starts putting [target] into [src].", \ - "[user] starts putting you into [src]!") + target.visible_message("[user] starts putting [target] into [src].", "[user] starts putting you into [src]!") if(do_mob(user, target, 20)) if (!loc) return target.forceMove(src) if(user == target) - user.visible_message("[user] climbs into [src].", \ - "You climb into [src].") + user.visible_message("[user] climbs into [src].", "You climb into [src].") else - target.visible_message("[user] has placed [target] in [src].", \ - "[user] has placed [target] in [src].") + target.visible_message("[user] has placed [target] in [src].", "[user] has placed [target] in [src].") add_logs(user, target, "stuffed", addition="into [src]") target.LAssailant = user update_icon() -// can breath normally in the disposal -/obj/machinery/disposal/alter_health() - return get_turf(src) - /obj/machinery/disposal/relaymove(mob/user) attempt_escape(user) // resist to escape the bin -/obj/machinery/disposal/container_resist() - attempt_escape(usr) +/obj/machinery/disposal/container_resist(mob/living/user) + attempt_escape(user) /obj/machinery/disposal/proc/attempt_escape(mob/user) - if(src.flushing) + if(flushing) return go_out(user) - return // leave the disposal /obj/machinery/disposal/proc/go_out(mob/user) - - user.loc = src.loc - user.reset_perspective(null) + user.forceMove(loc) update_icon() - return - // monkeys and xenos can only pull the flush lever /obj/machinery/disposal/attack_paw(mob/user) @@ -188,21 +170,8 @@ if(user && user.loc == src) usr << "You cannot reach the controls from inside!" return - /* - if(mode==-1) - usr << "\red The disposal units power is disabled." - return - */ interact(user, 0) -// hostile mob escape from disposals -/obj/machinery/disposal/attack_animal(mob/living/simple_animal/M) - if(M.environment_smash) - M.do_attack_animation(src) - visible_message("[M.name] smashes \the [src] apart!") - qdel(src) - return - // eject the contents of the disposal unit /obj/machinery/disposal/proc/eject() var/turf/T = get_turf(src) @@ -245,8 +214,6 @@ /obj/machinery/disposal/power_change() ..() // do default setting/reset of stat NOPOWER bit update_icon() // update icon - return - // called when holder is expelled from a disposal // should usually only occur if the pipe network is modified @@ -265,14 +232,17 @@ H.vent_gas(loc) qdel(H) -/obj/machinery/disposal/Deconstruct() - if(stored) - var/turf/T = loc - stored.loc = T - src.transfer_fingerprints_to(stored) - stored.anchored = 0 - stored.density = 1 - stored.update_icon() +/obj/machinery/disposal/deconstruct(disassembled = TRUE) + var/turf/T = loc + if(!(flags & NODECONSTRUCT)) + if(stored) + stored.forceMove(T) + src.transfer_fingerprints_to(stored) + stored.anchored = 0 + stored.density = 1 + stored.update_icon() + for(var/atom/movable/AM in src) //out, out, darned crowbar! + AM.forceMove(T) ..() //How disposal handles getting a storage dump from a storage object @@ -284,7 +254,6 @@ src_object.remove_from_storage(I, src) return 1 - // Disposal bin // Holds items for disposal into pipe system // Draws air from turf, gradually charges internal reservoir @@ -297,7 +266,7 @@ desc = "A pneumatic waste disposal unit." icon_state = "disposal" - // attack by item places it in to disposal +// attack by item places it in to disposal /obj/machinery/disposal/bin/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/weapon/storage/bag/trash)) var/obj/item/weapon/storage/bag/trash/T = I @@ -309,73 +278,55 @@ else return ..() -// user interaction -/obj/machinery/disposal/bin/interact(mob/user, ai=0) - src.add_fingerprint(user) - if(stat & BROKEN) - user.unset_machine() - return - - var/dat = "Waste Disposal UnitWaste Disposal Unit
    " - - if(!ai) // AI can't pull flush handle - if(flush) - dat += "Disposal handle: Disengage Engaged" - else - dat += "Disposal handle: Disengaged Engage" - - dat += "

    Eject contents
    " - - if(mode <= 0) - dat += "Pump: Off On
    " - else if(mode == 1) - dat += "Pump: Off On (pressurizing)
    " - else - dat += "Pump: Off On (idle)
    " - - var/per = Clamp(100* air_contents.return_pressure() / (SEND_PRESSURE), 0, 100) - - dat += "Pressure: [round(per, 1)]%
    " - - - user.set_machine(src) - user << browse(dat, "window=disposal;size=360x170") - onclose(user, "disposal") - // handle machine interaction -/obj/machinery/disposal/bin/Topic(href, href_list) +/obj/machinery/disposal/bin/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = default_state) + if(stat & BROKEN) + return + if(user.loc == src) + user << "You cannot reach the controls from inside!" + return + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "disposal_unit", name, 300, 200, master_ui, state) + ui.open() + +/obj/machinery/disposal/bin/ui_data(mob/user) + var/list/data = list() + data["flush"] = flush + data["mode"] = mode + var/per = Clamp(100* air_contents.return_pressure() / (SEND_PRESSURE), 0, 100) + data["per"] = round(per, 1) + data["isai"] = isAI(user) + return data + +/obj/machinery/disposal/bin/ui_act(action, params) if(..()) return - if(usr.loc == src) - usr << "You cannot reach the controls from inside!" - return - - if(mode==-1 && !href_list["eject"]) // only allow ejecting if mode is -1 - usr << "\The [src]'s power is disabled." - return - ..() - usr.set_machine(src) - - if(href_list["close"]) - usr.unset_machine() - usr << browse(null, "window=disposal") - return - - if(href_list["pump"]) - if(text2num(href_list["pump"])) - mode = 1 - else - mode = 0 - update_icon() - - if(href_list["handle"]) - flush = text2num(href_list["handle"]) - update_icon() - - if(href_list["eject"]) - eject() - return + switch(action) + if("handle-0") + flush = 0 + update_icon() + . = TRUE + if("handle-1") + if(mode != SCREWS_OUT) + flush = 1 + update_icon() + . = TRUE + if("pump-0") + if(mode == PRESSURE_ON) + mode = PRESSURE_OFF + update_icon() + . = TRUE + if("pump-1") + if(mode == PRESSURE_OFF) + mode = PRESSURE_ON + update_icon() + . = TRUE + if("eject") + eject() + . = TRUE /obj/machinery/disposal/bin/CanPass(atom/movable/mover, turf/target, height=0) if (istype(mover,/obj/item) && mover.throwing) @@ -394,69 +345,67 @@ /obj/machinery/disposal/bin/flush() ..() - if(mode == 2) - mode = 1 + if(mode == PRESSURE_MAXED) + mode = PRESSURE_ON update_icon() /obj/machinery/disposal/bin/update_icon() cut_overlays() if(stat & BROKEN) - mode = 0 + mode = PRESSURE_OFF flush = 0 return - // flush handle + //flush handle if(flush) add_overlay(image('icons/obj/atmospherics/pipes/disposal.dmi', "dispover-handle")) - // only handle is shown if no power - if(stat & NOPOWER || mode == -1) + //only handle is shown if no power + if(stat & NOPOWER || mode == SCREWS_OUT) return - // check for items in disposal - occupied light + //check for items in disposal - occupied light if(contents.len > 0) add_overlay(image('icons/obj/atmospherics/pipes/disposal.dmi', "dispover-full")) - // charging and ready light - if(mode == 1) + //charging and ready light + if(mode == PRESSURE_ON) add_overlay(image('icons/obj/atmospherics/pipes/disposal.dmi', "dispover-charge")) - else if(mode == 2) + else if(mode == PRESSURE_MAXED) add_overlay(image('icons/obj/atmospherics/pipes/disposal.dmi', "dispover-ready")) - -// timed process -// charge the gas reservoir and perform flush if ready +//timed process +//charge the gas reservoir and perform flush if ready /obj/machinery/disposal/bin/process() - if(stat & BROKEN) // nothing can happen if broken + if(stat & BROKEN) //nothing can happen if broken return flush_count++ - if( flush_count >= flush_every_ticks ) - if( contents.len ) - if(mode == 2) + if(flush_count >= flush_every_ticks) + if(contents.len) + if(mode == PRESSURE_MAXED) spawn(0) feedback_inc("disposal_auto_flush",1) flush() flush_count = 0 - src.updateDialog() + updateDialog() - if(flush && air_contents.return_pressure() >= SEND_PRESSURE ) // flush can happen even without power - spawn(0) - flush() + if(flush && air_contents.return_pressure() >= SEND_PRESSURE) // flush can happen even without power + addtimer(src, "flush", 0) - if(stat & NOPOWER) // won't charge if no power + if(stat & NOPOWER) // won't charge if no power return - use_power(100) // base power usage + use_power(100) // base power usage - if(mode != 1) // if off or ready, no need to charge + if(mode != PRESSURE_ON) // if off or ready, no need to charge return // otherwise charge - use_power(500) // charging power usage + use_power(500) // charging power usage - var/atom/L = loc // recharging from loc turf + var/atom/L = loc //recharging from loc turf var/datum/gas_mixture/env = L.return_air() var/pressure_delta = (SEND_PRESSURE*1.01) - air_contents.return_pressure() @@ -470,9 +419,9 @@ air_update_turf() - // if full enough, switch to ready mode + //if full enough, switch to ready mode if(air_contents.return_pressure() >= SEND_PRESSURE) - mode = 2 + mode = PRESSURE_MAXED update_icon() return @@ -480,7 +429,6 @@ if(user.stat == DEAD || !(user.sight & (SEEOBJS|SEEMOBS))) user.overlay_fullscreen("remote_view", /obj/screen/fullscreen/impaired, 2) - //Delivery Chute /obj/machinery/disposal/deliveryChute @@ -488,7 +436,7 @@ desc = "A chute for big and small packages alike!" density = 1 icon_state = "intake" - mode = 0 // the chute doesn't need charging and always works + mode = PRESSURE_OFF // the chute doesn't need charging and always works /obj/machinery/disposal/deliveryChute/New(loc,var/obj/structure/disposalconstruct/make_from) ..() @@ -516,7 +464,7 @@ if(WEST) if(AM.loc.x != loc.x-1) return - if(istype(AM, /obj)) + if(isobj(AM)) var/obj/O = AM O.loc = src else if(istype(AM, /mob)) @@ -541,4 +489,3 @@ /obj/machinery/disposal/deliveryChute/newHolderDestination(obj/structure/disposalholder/H) H.destinationTag = 1 - diff --git a/code/modules/recycling/sortingmachinery.dm b/code/modules/recycling/sortingmachinery.dm index 716b377e9b..66c8ff1319 100644 --- a/code/modules/recycling/sortingmachinery.dm +++ b/code/modules/recycling/sortingmachinery.dm @@ -15,9 +15,13 @@ /obj/structure/bigDelivery/Destroy() var/turf/T = get_turf(src) for(var/atom/movable/AM in contents) - AM.loc = T + AM.forceMove(T) return ..() +/obj/structure/bigDelivery/contents_explosion(severity, target) + for(var/atom/movable/AM in contents) + AM.ex_act() + /obj/structure/bigDelivery/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/device/destTagger)) var/obj/item/device/destTagger/O = W @@ -54,7 +58,7 @@ return user << "You lean on the back of [O] and start pushing to rip the wrapping around it." if(do_after(user, 50, target = O)) - if(!user || user.stat != CONSCIOUS || user.loc != src || O.loc != src ) + if(!user || user.stat != CONSCIOUS || user.loc != O || O.loc != src ) return user << "You successfully removed [O]'s wrapping !" O.loc = loc @@ -74,6 +78,9 @@ var/giftwrapped = 0 var/sortTag = 0 +/obj/item/smallDelivery/contents_explosion(severity, target) + for(var/atom/movable/AM in contents) + AM.ex_act() /obj/item/smallDelivery/attack_self(mob/user) user.unEquip(src) @@ -136,7 +143,7 @@ //If you don't want to fuck up disposals, add to this list, and don't change the order. //If you insist on changing the order, you'll have to change every sort junction to reflect the new order. --Pete - w_class = 1 + w_class = WEIGHT_CLASS_TINY item_state = "electronic" flags = CONDUCT slot_flags = SLOT_BELT diff --git a/code/modules/research/circuitprinter.dm b/code/modules/research/circuitprinter.dm index 10a6299604..ad15fc39b5 100644 --- a/code/modules/research/circuitprinter.dm +++ b/code/modules/research/circuitprinter.dm @@ -23,12 +23,13 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis). "Hydroponics Machinery", "Subspace Telecomms", "Research Machinery", - "Misc. Machinery" + "Misc. Machinery", + "Computer Parts" ) /obj/machinery/r_n_d/circuit_imprinter/New() ..() - materials = new(src, list(MAT_GLASS, MAT_GOLD, MAT_DIAMOND)) + materials = new(src, list(MAT_GLASS, MAT_GOLD, MAT_DIAMOND, MAT_METAL)) create_reagents(0) var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/circuit_imprinter(null) B.apply_default_parts(src) @@ -61,7 +62,7 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis). T += M.rating efficiency_coeff = 2 ** (T - 1) //Only 1 manipulator here, you're making runtimes Razharas -/obj/machinery/r_n_d/circuit_imprinter/blob_act(obj/effect/blob/B) +/obj/machinery/r_n_d/circuit_imprinter/blob_act(obj/structure/blob/B) if (prob(50)) qdel(src) @@ -75,7 +76,7 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis). return round(A / max(1, (all_materials[M]/efficiency_coeff))) //we eject the materials upon deconstruction. -/obj/machinery/r_n_d/circuit_imprinter/deconstruction() +/obj/machinery/r_n_d/circuit_imprinter/on_deconstruction() for(var/obj/item/weapon/reagent_containers/glass/G in component_parts) reagents.trans_to(G, G.reagents.maximum_volume) materials.retrieve_all() @@ -112,7 +113,7 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis). user << "You add [amount_inserted] sheets to the [src.name]." updateUsrDialog() - else if(user.a_intent != "harm") + else if(user.a_intent != INTENT_HARM) user << "You cannot insert this item into the [name]!" return 1 else diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm index 48f33cff94..d011ae23e2 100644 --- a/code/modules/research/designs.dm +++ b/code/modules/research/designs.dm @@ -34,10 +34,12 @@ other types of metals and chemistry for reagents). var/build_type = null //Flag as to what kind machine the design is built in. See defines. var/list/materials = list() //List of materials. Format: "id" = amount. var/construction_time //Amount of time required for building the object - var/build_path = "" //The file path of the object that gets created + var/build_path = null //The file path of the object that gets created + var/list/make_reagents = list() //Reagents produced. Format: "id" = amount. Currently only supported by the biogenerator. var/list/category = null //Primarily used for Mech Fabricators, but can be used for anything - var/list/reagents = list() //List of reagents. Format: "id" = amount. + var/list/reagents_list = list() //List of reagents. Format: "id" = amount. var/maxstack = 1 + var/lathe_time_factor = 1 //How many times faster than normal is this to build on the protolathe //////////////////////////////////////// @@ -45,15 +47,25 @@ other types of metals and chemistry for reagents). //////////////////////////////////////// /obj/item/weapon/disk/design_disk - name = "Component Design Disk" + name = "component design disk" desc = "A disk for storing device design data for construction in lathes." icon_state = "datadisk1" - materials = list(MAT_METAL=100, MAT_GLASS=100) - var/datum/design/blueprint + materials = list(MAT_METAL=300, MAT_GLASS=100) + var/list/blueprints = list() + var/max_blueprints = 1 /obj/item/weapon/disk/design_disk/New() + ..() src.pixel_x = rand(-5, 5) src.pixel_y = rand(-5, 5) + for(var/i in 1 to max_blueprints) + blueprints += null + +/obj/item/weapon/disk/design_disk/adv + name = "advanced component design disk" + desc = "A disk for storing device design data for construction in lathes. This one has extra storage space." + materials = list(MAT_METAL=300, MAT_GLASS=100, MAT_SILVER = 50) + max_blueprints = 5 /////////////////////////////////// /////Non-Board Computer Stuff////// @@ -93,6 +105,16 @@ other types of metals and chemistry for reagents). build_path = /obj/item/weapon/disk/design_disk category = list("Electronics") +/datum/design/design_disk_adv + name = "Advanced Design Storage Disk" + desc = "Produce additional disks for storing device designs." + id = "design_disk_adv" + req_tech = list("programming" = 3) + build_type = PROTOLATHE + materials = list(MAT_METAL = 300, MAT_GLASS = 100, MAT_SILVER=50) + build_path = /obj/item/weapon/disk/design_disk/adv + category = list("Electronics") + /datum/design/tech_disk name = "Technology Data Storage Disk" desc = "Produce additional disks for storing technology data." @@ -103,6 +125,25 @@ other types of metals and chemistry for reagents). build_path = /obj/item/weapon/disk/tech_disk category = list("Electronics") +/datum/design/tech_disk_adv + name = "Advanced Technology Data Storage Disk" + desc = "Produce disks with extra storage capacity for storing technology data." + id = "tech_disk_adv" + req_tech = list("programming" = 3) + build_type = PROTOLATHE + materials = list(MAT_METAL = 300, MAT_GLASS = 100, MAT_SILVER=50) + build_path = /obj/item/weapon/disk/tech_disk/adv + category = list("Electronics") + +/datum/design/tech_disk_super_adv + name = "Quantum Technology Data Storage Disk" + desc = "Produce disks with extremely large storage capacity for storing technology data." + id = "tech_disk_super_adv" + req_tech = list("programming" = 6) + build_type = PROTOLATHE + materials = list(MAT_METAL = 300, MAT_GLASS = 100, MAT_SILVER=100, MAT_GOLD=100) + build_path = /obj/item/weapon/disk/tech_disk/super_adv + category = list("Electronics") ///////////////////////////////////////// /////////////////Mining////////////////// @@ -158,36 +199,6 @@ other types of metals and chemistry for reagents). build_path = /obj/item/weapon/pickaxe/drill/jackhammer category = list("Mining Designs") -/datum/design/modkit - name = "Modification Kit" - desc = "A device which allows kinetic accelerators to be wielded with one hand, and by any organism." - id = "modkit" - req_tech = list("materials" = 5, "powerstorage" = 4, "engineering" = 4, "magnets" = 4, "combat" = 3) - build_type = PROTOLATHE - materials = list(MAT_METAL = 8000, MAT_GLASS = 1500, MAT_GOLD = 1500, MAT_URANIUM = 1000) - build_path = /obj/item/modkit - category = list("Mining Designs") - -/datum/design/superaccelerator - name = "Super-Kinetic Accelerator" - desc = "An upgraded version of the proto-kinetic accelerator, with superior damage, speed and range." - id = "superaccelerator" - req_tech = list("materials" = 5, "powerstorage" = 4, "engineering" = 4, "magnets" = 4, "combat" = 3) - build_type = PROTOLATHE - materials = list(MAT_METAL = 8000, MAT_GLASS = 1500, MAT_SILVER = 2000, MAT_URANIUM = 2000) - build_path = /obj/item/weapon/gun/energy/kinetic_accelerator/super - category = list("Mining Designs") - -/datum/design/hyperaccelerator - name = "Hyper-Kinetic Accelerator" - desc = "An upgraded version of the proto-kinetic accelerator, with even more superior damage, speed and range." - id = "hyperaccelerator" - req_tech = list("materials" = 7, "powerstorage" = 5, "engineering" = 5, "magnets" = 5, "combat" = 4) - build_type = PROTOLATHE - materials = list(MAT_METAL = 8000, MAT_GLASS = 1500, MAT_SILVER = 2000, MAT_GOLD = 2000, MAT_DIAMOND = 2000) - build_path = /obj/item/weapon/gun/energy/kinetic_accelerator/hyper - category = list("Mining Designs") - /datum/design/superresonator name = "Upgraded Resonator" desc = "An upgraded version of the resonator that allows more fields to be active at once." @@ -198,6 +209,67 @@ other types of metals and chemistry for reagents). build_path = /obj/item/weapon/resonator/upgraded category = list("Mining Designs") +/datum/design/trigger_guard_mod + name = "Kinetic Accelerator Trigger Guard Mod" + desc = "A device which allows kinetic accelerators to be wielded by any organism." + id = "triggermod" + req_tech = list("materials" = 5, "powerstorage" = 4, "engineering" = 4, "magnets" = 4, "combat" = 3) + build_type = PROTOLATHE + materials = list(MAT_METAL = 2000, MAT_GLASS = 1500, MAT_GOLD = 1500, MAT_URANIUM = 1000) + build_path = /obj/item/borg/upgrade/modkit/trigger_guard + category = list("Mining Designs") + +/datum/design/damage_mod + name = "Kinetic Accelerator Damage Mod" + desc = "A device which allows kinetic accelerators to deal more damage." + id = "damagemod" + req_tech = list("materials" = 5, "powerstorage" = 4, "engineering" = 4, "magnets" = 4, "combat" = 3) + build_type = PROTOLATHE | MECHFAB + materials = list(MAT_METAL = 2000, MAT_GLASS = 1500, MAT_GOLD = 1500, MAT_URANIUM = 1000) + build_path = /obj/item/borg/upgrade/modkit/damage + category = list("Mining Designs", "Cyborg Upgrade Modules") + +/datum/design/cooldown_mod + name = "Kinetic Accelerator Cooldown Mod" + desc = "A device which decreases the cooldown of a Kinetic Accelerator." + id = "cooldownmod" + req_tech = list("materials" = 5, "powerstorage" = 4, "engineering" = 4, "magnets" = 4, "combat" = 3) + build_type = PROTOLATHE | MECHFAB + materials = list(MAT_METAL = 2000, MAT_GLASS = 1500, MAT_GOLD = 1500, MAT_URANIUM = 1000) + build_path = /obj/item/borg/upgrade/modkit/cooldown + category = list("Mining Designs", "Cyborg Upgrade Modules") + +/datum/design/range_mod + name = "Kinetic Accelerator Range Mod" + desc = "A device which allows kinetic accelerators to fire at a further range." + id = "rangemod" + req_tech = list("materials" = 5, "powerstorage" = 4, "engineering" = 4, "magnets" = 4, "combat" = 3) + build_type = PROTOLATHE | MECHFAB + materials = list(MAT_METAL = 2000, MAT_GLASS = 1500, MAT_GOLD = 1500, MAT_URANIUM = 1000) + build_path = /obj/item/borg/upgrade/modkit/range + category = list("Mining Designs", "Cyborg Upgrade Modules") + +/datum/design/superaccelerator + name = "Kinetic Accelerator Pressure Mod" + desc = "A modification kit which allows Kinetic Accelerators to do more damage while indoors." + id = "indoormod" + req_tech = list("materials" = 5, "powerstorage" = 4, "engineering" = 4, "magnets" = 4, "combat" = 3) + build_type = PROTOLATHE | MECHFAB + materials = list(MAT_METAL = 2000, MAT_GLASS = 1500, MAT_SILVER = 2000, MAT_URANIUM = 2000) + build_path = /obj/item/borg/upgrade/modkit/indoors + category = list("Mining Designs", "Cyborg Upgrade Modules") + +/datum/design/hyperaccelerator + name = "Kinetic Accelerator Mining AoE Mod" + desc = "A modification kit for Kinetic Accelerators which causes it to fire AoE blasts that destroy rock." + id = "hypermod" + req_tech = list("materials" = 7, "powerstorage" = 5, "engineering" = 5, "magnets" = 5, "combat" = 4) + build_type = PROTOLATHE | MECHFAB + materials = list(MAT_METAL = 8000, MAT_GLASS = 1500, MAT_SILVER = 2000, MAT_GOLD = 2000, MAT_DIAMOND = 2000) + build_path = /obj/item/borg/upgrade/modkit/aoe/turfs + category = list("Mining Designs", "Cyborg Upgrade Modules") + + ///////////////////////////////////////// //////////////Blue Space///////////////// ///////////////////////////////////////// @@ -297,7 +369,7 @@ other types of metals and chemistry for reagents). build_path = /obj/item/clothing/glasses/hud/security/night category = list("Equipment") -datum/design/diagnostic_hud +/datum/design/diagnostic_hud name = "Diagnostic HUD" desc = "A HUD used to analyze and determine faults within robotic machinery." id = "dianostic_hud" @@ -307,7 +379,7 @@ datum/design/diagnostic_hud build_path = /obj/item/clothing/glasses/hud/diagnostic category = list("Equipment") -datum/design/diagnostic_hud_night +/datum/design/diagnostic_hud_night name = "Night Vision Diagnostic HUD" desc = "Upgraded version of the diagnostic HUD designed to function during a power failure." id = "dianostic_hud_night" @@ -454,6 +526,66 @@ datum/design/diagnostic_hud_night materials = list(MAT_METAL = 4500, MAT_SILVER = 2500, MAT_TITANIUM = 3500) category = list("Equipment") +/datum/design/alienwrench + name = "Alien Wrench" + desc = "An advanced wrench obtained through Abductor technology." + id = "alien_wrench" + req_tech = list("engineering" = 5, "materials" = 5, "abductor" = 4) + build_path = /obj/item/weapon/wrench/abductor + build_type = PROTOLATHE + materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000) + category = list("Equipment") + +/datum/design/alienwirecutters + name = "Alien Wirecutters" + desc = "Advanced wirecutters obtained through Abductor technology." + id = "alien_wirecutters" + req_tech = list("engineering" = 5, "materials" = 5, "abductor" = 4) + build_path = /obj/item/weapon/wirecutters/abductor + build_type = PROTOLATHE + materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000) + category = list("Equipment") + +/datum/design/alienscrewdriver + name = "Alien Screwdriver" + desc = "An advanced screwdriver obtained through Abductor technology." + id = "alien_screwdriver" + req_tech = list("engineering" = 5, "materials" = 5, "abductor" = 4) + build_path = /obj/item/weapon/screwdriver/abductor + build_type = PROTOLATHE + materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000) + category = list("Equipment") + +/datum/design/aliencrowbar + name = "Alien Crowbar" + desc = "An advanced crowbar obtained through Abductor technology." + id = "alien_crowbar" + req_tech = list("engineering" = 5, "materials" = 5, "abductor" = 4) + build_path = /obj/item/weapon/crowbar/abductor + build_type = PROTOLATHE + materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000) + category = list("Equipment") + +/datum/design/alienwelder + name = "Alien Welding Tool" + desc = "An advanced welding tool obtained through Abductor technology." + id = "alien_welder" + req_tech = list("engineering" = 5, "plasmatech" = 5, "abductor" = 4) + build_path = /obj/item/weapon/weldingtool/abductor + build_type = PROTOLATHE + materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 5000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000) + category = list("Equipment") + +/datum/design/alienmultitool + name = "Alien Multitool" + desc = "An advanced multitool obtained through Abductor technology." + id = "alien_multitool" + req_tech = list("engineering" = 5, "programming" = 5, "abductor" = 4) + build_path = /obj/item/device/multitool/abductor + build_type = PROTOLATHE + materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 5000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000) + category = list("Equipment") + /datum/design/diskplantgene name = "Plant data disk" desc = "A disk for storing plant genetic data." diff --git a/code/modules/research/designs/autolathe_designs.dm b/code/modules/research/designs/autolathe_designs.dm index 0fe0205b91..d3345b2f13 100644 --- a/code/modules/research/designs/autolathe_designs.dm +++ b/code/modules/research/designs/autolathe_designs.dm @@ -66,6 +66,14 @@ build_path = /obj/item/weapon/weldingtool category = list("initial","Tools") +/datum/design/mini_weldingtool + name = "Emergency welding tool" + id = "mini_welding_tool" + build_type = AUTOLATHE + materials = list(MAT_METAL = 30, MAT_GLASS = 10) + build_path = /obj/item/weapon/weldingtool/mini + category = list("initial","Tools") + /datum/design/screwdriver name = "Screwdriver" id = "screwdriver" @@ -499,7 +507,7 @@ name = "Light tube" id = "light_tube" build_type = AUTOLATHE - materials = list(MAT_METAL = 60, MAT_GLASS = 100) + materials = list(MAT_GLASS = 100) build_path = /obj/item/weapon/light/tube category = list("initial", "Construction") @@ -507,7 +515,7 @@ name = "Light bulb" id = "light_bulb" build_type = AUTOLATHE - materials = list(MAT_METAL = 60, MAT_GLASS = 100) + materials = list(MAT_GLASS = 100) build_path = /obj/item/weapon/light/bulb category = list("initial", "Construction") @@ -711,3 +719,35 @@ materials = list(MAT_METAL = 12000) build_path = /obj/item/wallframe/turret_control category = list("initial", "Construction") + +/datum/design/conveyor_belt + name = "Conveyor belt" + id = "conveyor_belt" + build_type = AUTOLATHE + materials = list(MAT_METAL = 5000) + build_path = /obj/item/conveyor_construct + category = list("initial", "Construction") + +/datum/design/conveyor_switch + name = "Conveyor belt switch" + id = "conveyor_switch" + build_type = AUTOLATHE + materials = list(MAT_METAL = 450, MAT_GLASS = 190) + build_path = /obj/item/conveyor_switch_construct + category = list("initial", "Construction") + +/datum/design/laptop + name = "Laptop Frame" + id = "laptop" + build_type = AUTOLATHE + materials = list(MAT_METAL = 10000, MAT_GLASS = 1000) + build_path = /obj/item/device/modular_computer/laptop/buildable + category = list("initial","Misc") + +/datum/design/tablet + name = "Tablet Frame" + id = "tablet" + build_type = AUTOLATHE + materials = list(MAT_METAL = 2000, MAT_GLASS = 1000) + build_path = /obj/item/device/modular_computer/tablet + category = list("initial","Misc") diff --git a/code/modules/research/designs/biogenerator_designs.dm b/code/modules/research/designs/biogenerator_designs.dm new file mode 100644 index 0000000000..d293101229 --- /dev/null +++ b/code/modules/research/designs/biogenerator_designs.dm @@ -0,0 +1,212 @@ +/////////////////////////////////// +///////Biogenerator Designs /////// +/////////////////////////////////// + +/datum/design/milk + name = "10 milk" + id = "milk" + build_type = BIOGENERATOR + materials = list(MAT_BIOMASS = 20) + make_reagents = list("milk" = 10) + category = list("initial","Food") + +/datum/design/cream + name = "10 cream" + id = "cream" + build_type = BIOGENERATOR + materials = list(MAT_BIOMASS = 30) + make_reagents = list("cream" = 10) + category = list("initial","Food") + +/datum/design/milk_carton + name = "Milk carton" + id = "milk_carton" + build_type = BIOGENERATOR + materials = list(MAT_BIOMASS = 100) + build_path = /obj/item/weapon/reagent_containers/food/condiment/milk + category = list("initial","Food") + +/datum/design/cream_carton + name = "Cream carton" + id = "cream_carton" + build_type = BIOGENERATOR + materials = list(MAT_BIOMASS = 300) + build_path = /obj/item/weapon/reagent_containers/food/drinks/bottle/cream + category = list("initial","Food") + +/datum/design/black_pepper + name = "10u black pepper" + id = "black_pepper" + build_type = BIOGENERATOR + materials = list(MAT_BIOMASS = 25) + make_reagents = list("blackpepper" = 10) + category = list("initial","Food") + +/datum/design/pepper_mill + name = "Pepper mill" + id = "pepper_mill" + build_type = BIOGENERATOR + materials = list(MAT_BIOMASS = 50) + build_path = /obj/item/weapon/reagent_containers/food/condiment/peppermill + make_reagents = list() + category = list("initial","Food") + +/datum/design/monkey_cube + name = "Monkey cube" + id = "mcube" + build_type = BIOGENERATOR + materials = list(MAT_BIOMASS = 250) + build_path = /obj/item/weapon/reagent_containers/food/snacks/monkeycube + category = list("initial", "Food") + +/datum/design/ez_nut + name = "E-Z-Nutrient" + id = "ez_nut" + build_type = BIOGENERATOR + materials = list(MAT_BIOMASS = 10) + build_path = /obj/item/weapon/reagent_containers/glass/bottle/nutrient/ez + category = list("initial","Botany Chemicals") + +/datum/design/l4z_nut + name = "Left 4 Zed" + id = "l4z_nut" + build_type = BIOGENERATOR + materials = list(MAT_BIOMASS = 20) + build_path = /obj/item/weapon/reagent_containers/glass/bottle/nutrient/l4z + category = list("initial","Botany Chemicals") + +/datum/design/rh_nut + name = "Robust Harvest" + id = "rh_nut" + build_type = BIOGENERATOR + materials = list(MAT_BIOMASS = 25) + build_path = /obj/item/weapon/reagent_containers/glass/bottle/nutrient/rh + category = list("initial","Botany Chemicals") + +/datum/design/weed_killer + name = "Weed Killer" + id = "weed_killer" + build_type = BIOGENERATOR + materials = list(MAT_BIOMASS = 50) + build_path = /obj/item/weapon/reagent_containers/glass/bottle/killer/weedkiller + category = list("initial","Botany Chemicals") + +/datum/design/pest_spray + name = "Pest Killer" + id = "pest_spray" + build_type = BIOGENERATOR + materials = list(MAT_BIOMASS = 50) + build_path = /obj/item/weapon/reagent_containers/glass/bottle/killer/pestkiller + category = list("initial","Botany Chemicals") + +/datum/design/botany_bottle + name = "Empty Bottle" + id = "botany_bottle" + build_type = BIOGENERATOR + materials = list(MAT_BIOMASS = 5) + build_path = /obj/item/weapon/reagent_containers/glass/bottle/nutrient/empty + category = list("initial", "Botany Chemicals") + +/datum/design/cloth + name = "Roll of cloth" + id = "cloth" + build_type = BIOGENERATOR + materials = list(MAT_BIOMASS = 50) + build_path = /obj/item/stack/sheet/cloth + category = list("initial","Leather and Cloth") + +/datum/design/wallet + name = "Wallet" + id = "wallet" + build_type = BIOGENERATOR + materials = list(MAT_BIOMASS = 100) + build_path = /obj/item/weapon/storage/wallet + category = list("initial","Leather and Cloth") + +/datum/design/botany_gloves + name = "Botanical gloves" + id = "botany_gloves" + build_type = BIOGENERATOR + materials = list(MAT_BIOMASS = 150) + build_path = /obj/item/clothing/gloves/botanic_leather + category = list("initial","Leather and Cloth") + +/datum/design/toolbelt + name = "Utility Belt" + id = "toolbelt" + build_type = BIOGENERATOR + materials = list(MAT_BIOMASS = 300) + build_path = /obj/item/weapon/storage/belt/utility + category = list("initial","Leather and Cloth") + +/datum/design/secbelt + name = "Security belt" + id = "secbelt" + build_type = BIOGENERATOR + materials = list(MAT_BIOMASS = 300) + build_path = /obj/item/weapon/storage/belt/security + category = list("initial","Leather and Cloth") + +/datum/design/medbelt + name = "Medical belt" + id = "medbel" + build_type = BIOGENERATOR + materials = list(MAT_BIOMASS = 300) + build_path = /obj/item/weapon/storage/belt/medical + category = list("initial","Leather and Cloth") + +/datum/design/janibelt + name = "Janitorial belt" + id = "janibelt" + build_type = BIOGENERATOR + materials = list(MAT_BIOMASS = 300) + build_path = /obj/item/weapon/storage/belt/janitor + category = list("initial","Leather and Cloth") + +/datum/design/bandolier + name = "Bandolier belt" + id = "bandolier" + build_type = BIOGENERATOR + materials = list(MAT_BIOMASS = 300) + build_path = /obj/item/weapon/storage/belt/bandolier + category = list("initial","Leather and Cloth") + +/datum/design/s_holster + name = "Shoulder holster" + id = "s_holster" + build_type = BIOGENERATOR + materials = list(MAT_BIOMASS = 400) + build_path = /obj/item/weapon/storage/belt/holster + category = list("initial","Leather and Cloth") + +/datum/design/leather_satchel + name = "Leather satchel" + id = "leather_satchel" + build_type = BIOGENERATOR + materials = list(MAT_BIOMASS = 400) + build_path = /obj/item/weapon/storage/backpack/satchel + category = list("initial","Leather and Cloth") + +/datum/design/leather_jacket + name = "Leather jacket" + id = "leather_jacket" + build_type = BIOGENERATOR + materials = list(MAT_BIOMASS = 500) + build_path = /obj/item/clothing/suit/jacket/leather + category = list("initial","Leather and Cloth") + +/datum/design/leather_overcoat + name = "Leather overcoat" + id = "leather_overcoat" + build_type = BIOGENERATOR + materials = list(MAT_BIOMASS = 1000) + build_path = /obj/item/clothing/suit/jacket/leather/overcoat + category = list("initial","Leather and Cloth") + +/datum/design/rice_hat + name = "Rice hat" + id = "rice_hat" + build_type = BIOGENERATOR + materials = list(MAT_BIOMASS = 300) + build_path = /obj/item/clothing/head/rice_hat + category = list("initial","Leather and Cloth") diff --git a/code/modules/research/designs/comp_board_designs.dm b/code/modules/research/designs/comp_board_designs.dm index 60b921056d..ac400b4780 100644 --- a/code/modules/research/designs/comp_board_designs.dm +++ b/code/modules/research/designs/comp_board_designs.dm @@ -7,7 +7,7 @@ req_tech = list("programming" = 1) build_type = IMPRINTER materials = list(MAT_GLASS = 1000) - reagents = list("sacid" = 20) + reagents_list = list("sacid" = 20) build_path = /obj/item/weapon/circuitboard/computer/arcade/battle category = list("Computer Boards") diff --git a/code/modules/research/designs/computer_part_designs.dm b/code/modules/research/designs/computer_part_designs.dm new file mode 100644 index 0000000000..cd75eada7a --- /dev/null +++ b/code/modules/research/designs/computer_part_designs.dm @@ -0,0 +1,261 @@ +//////////////////////////////////////// +///////////Computer Parts/////////////// +//////////////////////////////////////// + +/datum/design/disk/normal + name = "hard disk drive" + id = "hdd_basic" + req_tech = list("programming" = 1, "engineering" = 1) + build_type = PROTOLATHE + materials = list(MAT_METAL = 400, MAT_GLASS = 100) + build_path = /obj/item/weapon/computer_hardware/hard_drive + category = list("Computer Parts") + +/datum/design/disk/advanced + name = "advanced hard disk drive" + id = "hdd_advanced" + req_tech = list("programming" = 2, "engineering" = 2) + build_type = PROTOLATHE + materials = list(MAT_METAL = 800, MAT_GLASS = 200) + build_path = /obj/item/weapon/computer_hardware/hard_drive/advanced + category = list("Computer Parts") + +/datum/design/disk/super + name = "super hard disk drive" + id = "hdd_super" + req_tech = list("programming" = 3, "engineering" = 3) + build_type = PROTOLATHE + materials = list(MAT_METAL = 1600, MAT_GLASS = 400) + build_path = /obj/item/weapon/computer_hardware/hard_drive/super + category = list("Computer Parts") + +/datum/design/disk/cluster + name = "cluster hard disk drive" + id = "hdd_cluster" + req_tech = list("programming" = 4, "engineering" = 4) + build_type = PROTOLATHE + materials = list(MAT_METAL = 3200, MAT_GLASS = 800) + build_path = /obj/item/weapon/computer_hardware/hard_drive/cluster + category = list("Computer Parts") + +/datum/design/disk/small + name = "solid state drive" + id = "ssd_small" + req_tech = list("programming" = 2, "engineering" = 2) + build_type = PROTOLATHE + materials = list(MAT_METAL = 800, MAT_GLASS = 200) + build_path = /obj/item/weapon/computer_hardware/hard_drive/small + category = list("Computer Parts") + +/datum/design/disk/micro + name = "micro solid state drive" + id = "ssd_micro" + req_tech = list("programming" = 1, "engineering" = 1) + build_type = PROTOLATHE + materials = list(MAT_METAL = 400, MAT_GLASS = 100) + build_path = /obj/item/weapon/computer_hardware/hard_drive/micro + category = list("Computer Parts") + + +// Network cards +/datum/design/netcard/basic + name = "network card" + id = "netcard_basic" + req_tech = list("programming" = 2, "engineering" = 1) + build_type = IMPRINTER + materials = list(MAT_METAL = 250, MAT_GLASS = 100) + reagents_list = list("sacid" = 20) + build_path = /obj/item/weapon/computer_hardware/network_card + category = list("Computer Parts") + +/datum/design/netcard/advanced + name = "advanced network card" + id = "netcard_advanced" + req_tech = list("programming" = 4, "engineering" = 2) + build_type = IMPRINTER + materials = list(MAT_METAL = 500, MAT_GLASS = 200) + reagents_list = list("sacid" = 20) + build_path = /obj/item/weapon/computer_hardware/network_card/advanced + category = list("Computer Parts") + +/datum/design/netcard/wired + name = "wired network card" + id = "netcard_wired" + req_tech = list("programming" = 5, "engineering" = 3) + build_type = IMPRINTER + materials = list(MAT_METAL = 2500, MAT_GLASS = 400) + reagents_list = list("sacid" = 20) + build_path = /obj/item/weapon/computer_hardware/network_card/wired + category = list("Computer Parts") + + +// Data disks +/datum/design/portabledrive/basic + name = "data disk" + id = "portadrive_basic" + req_tech = list("programming" = 1) + build_type = IMPRINTER + materials = list(MAT_GLASS = 800) + reagents_list = list("sacid" = 20) + build_path = /obj/item/weapon/computer_hardware/hard_drive/portable + category = list("Computer Parts") + +/datum/design/portabledrive/advanced + name = "advanced data disk" + id = "portadrive_advanced" + req_tech = list("programming" = 2) + build_type = IMPRINTER + materials = list(MAT_GLASS = 1600) + reagents_list = list("sacid" = 20) + build_path = /obj/item/weapon/computer_hardware/hard_drive/portable/advanced + category = list("Computer Parts") + +/datum/design/portabledrive/super + name = "super data disk" + id = "portadrive_super" + req_tech = list("programming" = 4) + build_type = IMPRINTER + materials = list(MAT_GLASS = 3200) + reagents_list = list("sacid" = 20) + build_path = /obj/item/weapon/computer_hardware/hard_drive/portable/super + category = list("Computer Parts") + + +// Card slot +/datum/design/cardslot + name = "ID card slot" + id = "cardslot" + req_tech = list("programming" = 2) + build_type = PROTOLATHE + materials = list(MAT_METAL = 600) + build_path = /obj/item/weapon/computer_hardware/card_slot + category = list("Computer Parts") + +// Intellicard slot +/datum/design/aislot + name = "Intellicard slot" + id = "aislot" + req_tech = list("programming" = 2) + build_type = PROTOLATHE + materials = list(MAT_METAL = 600) + build_path = /obj/item/weapon/computer_hardware/ai_slot + category = list("Computer Parts") + +// Mini printer +/datum/design/miniprinter + name = "miniprinter" + id = "miniprinter" + req_tech = list("programming" = 2, "engineering" = 2) + build_type = PROTOLATHE + materials = list(MAT_METAL = 600) + build_path = /obj/item/weapon/computer_hardware/printer/mini + category = list("Computer Parts") + + +// APC Link +/datum/design/APClink + name = "area power connector" + id = "APClink" + req_tech = list("programming" = 2, "powerstorage" = 3, "engineering" = 2) + build_type = PROTOLATHE + materials = list(MAT_METAL = 2000) + build_path = /obj/item/weapon/computer_hardware/recharger/APC + category = list("Computer Parts") + + +// Batteries +/datum/design/battery/controller + name = "power cell controller" + id = "bat_control" + req_tech = list("powerstorage" = 1, "engineering" = 1) + build_type = PROTOLATHE + materials = list(MAT_METAL = 400) + build_path = /obj/item/weapon/computer_hardware/battery + category = list("Computer Parts") + +/datum/design/battery/normal + name = "battery module" + id = "bat_normal" + req_tech = list("powerstorage" = 1, "engineering" = 1) + build_type = PROTOLATHE + materials = list(MAT_METAL = 400) + build_path = /obj/item/weapon/stock_parts/cell/computer + category = list("Computer Parts") + +/datum/design/battery/advanced + name = "advanced battery module" + id = "bat_advanced" + req_tech = list("powerstorage" = 2, "engineering" = 2) + build_type = PROTOLATHE + materials = list(MAT_METAL = 800) + build_path = /obj/item/weapon/stock_parts/cell/computer/advanced + category = list("Computer Parts") + +/datum/design/battery/super + name = "super battery module" + id = "bat_super" + req_tech = list("powerstorage" = 3, "engineering" = 3) + build_type = PROTOLATHE + materials = list(MAT_METAL = 1600) + build_path = /obj/item/weapon/stock_parts/cell/computer/super + category = list("Computer Parts") + +/datum/design/battery/nano + name = "nano battery module" + id = "bat_nano" + req_tech = list("powerstorage" = 1, "engineering" = 1) + build_type = PROTOLATHE + materials = list(MAT_METAL = 200) + build_path = /obj/item/weapon/stock_parts/cell/computer/nano + category = list("Computer Parts") + +/datum/design/battery/micro + name = "micro battery module" + id = "bat_micro" + req_tech = list("powerstorage" = 2, "engineering" = 2) + build_type = PROTOLATHE + materials = list(MAT_METAL = 400) + build_path = /obj/item/weapon/stock_parts/cell/computer/micro + category = list("Computer Parts") + + +// Processor unit +/datum/design/cpu + name = "processor board" + id = "cpu_normal" + req_tech = list("programming" = 3, "engineering" = 2) + build_type = IMPRINTER + materials = list(MAT_GLASS = 1600) + reagents_list = list("sacid" = 20) + build_path = /obj/item/weapon/computer_hardware/processor_unit + category = list("Computer Parts") + +/datum/design/cpu/small + name = "microprocessor" + id = "cpu_small" + req_tech = list("programming" = 2, "engineering" = 2) + build_type = IMPRINTER + materials = list(MAT_GLASS = 800) + reagents_list = list("sacid" = 20) + build_path = /obj/item/weapon/computer_hardware/processor_unit/small + category = list("Computer Parts") + +/datum/design/cpu/photonic + name = "photonic processor board" + id = "pcpu_normal" + req_tech = list("programming" = 5, "engineering" = 4) + build_type = IMPRINTER + materials = list(MAT_GLASS= 6400, MAT_GOLD = 2000) + reagents_list = list("sacid" = 40) + build_path = /obj/item/weapon/computer_hardware/processor_unit/photonic + category = list("Computer Parts") + +/datum/design/cpu/photonic/small + name = "photonic microprocessor" + id = "pcpu_small" + req_tech = list("programming" = 4, "engineering" = 3) + build_type = IMPRINTER + materials = list(MAT_GLASS = 3200, MAT_GOLD = 1000) + reagents_list = list("sacid" = 20) + build_path = /obj/item/weapon/computer_hardware/processor_unit/photonic/small + category = list("Computer Parts") \ No newline at end of file diff --git a/code/modules/research/designs/limbgrower_designs.dm b/code/modules/research/designs/limbgrower_designs.dm new file mode 100644 index 0000000000..591888bfd9 --- /dev/null +++ b/code/modules/research/designs/limbgrower_designs.dm @@ -0,0 +1,43 @@ +///////////////////////////////////// +//////////Limb Grower Designs /////// +///////////////////////////////////// + +/datum/design/leftarm + name = "Left Arm" + id = "leftarm" + build_type = LIMBGROWER + reagents = list("synthflesh" = 25) + build_path = /obj/item/bodypart/l_arm + category = list("initial","human","lizard","plasmaman") + +/datum/design/rightarm + name = "Right Arm" + id = "rightarm" + build_type = LIMBGROWER + reagents = list("synthflesh" = 25) + build_path = /obj/item/bodypart/r_arm + category = list("initial","human","lizard","plasmaman") + +/datum/design/leftleg + name = "Left Leg" + id = "leftleg" + build_type = LIMBGROWER + reagents = list("synthflesh" = 25) + build_path = /obj/item/bodypart/l_leg + category = list("initial","human","lizard","plasmaman") + +/datum/design/rightleg + name = "Right Leg" + id = "rightleg" + build_type = LIMBGROWER + reagents = list("synthflesh" = 25) + build_path = /obj/item/bodypart/r_leg + category = list("initial","human","lizard","plasmaman") + +/datum/design/armblade + name = "Arm Blade" + id = "armblade" + build_type = LIMBGROWER + reagents = list("synthflesh" = 75) + build_path = /obj/item/weapon/melee/synthetic_arm_blade + category = list("special") \ No newline at end of file diff --git a/code/modules/research/designs/machine_designs.dm b/code/modules/research/designs/machine_designs.dm index 3ed57ca5fe..671f1a4404 100644 --- a/code/modules/research/designs/machine_designs.dm +++ b/code/modules/research/designs/machine_designs.dm @@ -82,6 +82,14 @@ build_path = /obj/item/weapon/circuitboard/machine/teleporter_hub category = list ("Teleportation Machinery") +/datum/design/board/quantumpad + name = "Machine Design (Quantum Pad Board)" + desc = "The circuit board for a quantum telepad." + id = "quantumpad" + req_tech = list("programming" = 4, "bluespace" = 4, "plasmatech" = 3, "engineering" = 4) + build_path = /obj/item/weapon/circuitboard/machine/quantumpad + category = list ("Teleportation Machinery") + /datum/design/board/telepad name = "Machine Design (Telepad Board)" desc = "The circuit board for a telescience telepad." @@ -386,3 +394,19 @@ req_tech = list("programming" = 4, "biotech" = 3) build_path = /obj/item/weapon/circuitboard/machine/plantgenes category = list ("Misc. Machinery") + +/datum/design/board/ntnet_relay + name = "Machine Design (NTNet Relay Board)" + desc = "The circuit board for a wireless network relay." + id = "ntnet_relay" + req_tech = list("programming" = 2, "engineering" = 2, "bluespace" = 2) + build_path = /obj/item/weapon/circuitboard/machine/ntnet_relay + category = list("Subspace Telecomms") + +/datum/design/board/limbgrower + name = "Machine Design (Limb Grower Board)" + desc = "The circuit board for a limb grower." + id = "limbgrower" + req_tech = list("programming" = 3, "biotech" = 2) + build_path = /obj/item/weapon/circuitboard/machine/limbgrower + category = list("Medical Machinery") \ No newline at end of file diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm index 5256628eb9..af9b2642e1 100644 --- a/code/modules/research/designs/mechfabricator_designs.dm +++ b/code/modules/research/designs/mechfabricator_designs.dm @@ -3,7 +3,7 @@ name = "Cyborg Endoskeleton" id = "borg_suit" build_type = MECHFAB - build_path = /obj/item/robot_parts/robot_suit + build_path = /obj/item/robot_suit materials = list(MAT_METAL=15000) construction_time = 500 category = list("Cyborg") @@ -12,7 +12,7 @@ name = "Cyborg Torso" id = "borg_chest" build_type = MECHFAB - build_path = /obj/item/robot_parts/chest + build_path = /obj/item/bodypart/chest/robot materials = list(MAT_METAL=40000) construction_time = 350 category = list("Cyborg") @@ -21,7 +21,7 @@ name = "Cyborg Head" id = "borg_head" build_type = MECHFAB - build_path = /obj/item/robot_parts/head + build_path = /obj/item/bodypart/head/robot materials = list(MAT_METAL=5000) construction_time = 350 category = list("Cyborg") @@ -30,7 +30,7 @@ name = "Cyborg Left Arm" id = "borg_l_arm" build_type = MECHFAB - build_path = /obj/item/robot_parts/l_arm + build_path = /obj/item/bodypart/l_arm/robot materials = list(MAT_METAL=10000) construction_time = 200 category = list("Cyborg") @@ -39,7 +39,7 @@ name = "Cyborg Right Arm" id = "borg_r_arm" build_type = MECHFAB - build_path = /obj/item/robot_parts/r_arm + build_path = /obj/item/bodypart/r_arm/robot materials = list(MAT_METAL=10000) construction_time = 200 category = list("Cyborg") @@ -48,7 +48,7 @@ name = "Cyborg Left Leg" id = "borg_l_leg" build_type = MECHFAB - build_path = /obj/item/robot_parts/l_leg + build_path = /obj/item/bodypart/l_leg/robot materials = list(MAT_METAL=10000) construction_time = 200 category = list("Cyborg") @@ -57,7 +57,7 @@ name = "Cyborg Right Leg" id = "borg_r_leg" build_type = MECHFAB - build_path = /obj/item/robot_parts/r_leg + build_path = /obj/item/bodypart/r_leg/robot materials = list(MAT_METAL=10000) construction_time = 200 category = list("Cyborg") @@ -270,7 +270,7 @@ id = "gygax_armor" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/gygax_armor - materials = list(MAT_METAL=25000,MAT_DIAMOND=10000) + materials = list(MAT_METAL=15000,MAT_DIAMOND=10000,MAT_TITANIUM=10000) construction_time = 600 category = list("Gygax") @@ -343,7 +343,7 @@ id = "durand_armor" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/durand_armor - materials = list(MAT_METAL=50000,MAT_URANIUM=30000) + materials = list(MAT_METAL=30000,MAT_URANIUM=25000,MAT_TITANIUM=20000) construction_time = 600 category = list("Durand") @@ -481,7 +481,7 @@ id = "phazon_armor" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/phazon_armor - materials = list(MAT_METAL=45000,MAT_PLASMA=30000) + materials = list(MAT_METAL=25000,MAT_PLASMA=20000,MAT_TITANIUM=20000) construction_time = 300 category = list("Phazon") @@ -505,7 +505,7 @@ category = list("Exosuit Equipment") /datum/design/mech_mining_scanner - name = "Exosuit Engineering Equipement (Mining Scanner)" + name = "Exosuit Engineering Equipment (Mining Scanner)" id = "mech_mscanner" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/mining_scanner @@ -571,15 +571,6 @@ //////////////Borg Upgrades////////////// ///////////////////////////////////////// -/datum/design/borg_upgrade_reset - name = "Cyborg Upgrade (Module Reset Board)" - id = "borg_upgrade_reset" - build_type = MECHFAB - build_path = /obj/item/borg/upgrade/reset - materials = list(MAT_METAL=10000) - construction_time = 120 - category = list("Cyborg Upgrade Modules") - /datum/design/borg_upgrade_rename name = "Cyborg Upgrade (Rename Board)" id = "borg_upgrade_rename" @@ -648,23 +639,13 @@ construction_time = 120 category = list("Cyborg Upgrade Modules") -/datum/design/borg_upgrade_hyperka - name = "Cyborg Upgrade (Hyper-Kinetic Accelerator)" - id = "borg_upgrade_hyperka" - req_tech = list("materials" = 7, "powerstorage" = 5, "engineering" = 5, "magnets" = 5, "combat" = 4) - build_type = MECHFAB //Reqs same as human Hyper KA - materials = list(MAT_METAL = 8000, MAT_GLASS = 1500, MAT_SILVER = 2000, MAT_GOLD = 2000, MAT_DIAMOND = 2000) - build_path = /obj/item/borg/upgrade/hyperka - construction_time = 120 - category = list("Cyborg Upgrade Modules") - /datum/design/borg_upgrade_lavaproof name = "Cyborg Upgrade (Lavaproof Tracks)" id = "borg_upgrade_lavaproof" build_type = MECHFAB build_path = /obj/item/borg/upgrade/lavaproof req_tech = list("plasmatech" = 4, "materials" = 4, "engineering" = 4) - materials = list(MAT_METAL = 8000, MAT_PLASMA = 10000) + materials = list(MAT_METAL = 10000, MAT_PLASMA = 4000, MAT_TITANIUM = 5000) construction_time = 120 category = list("Cyborg Upgrade Modules") @@ -688,6 +669,46 @@ construction_time = 120 category = list("Cyborg Upgrade Modules") +/datum/design/borg_upgrade_expandedsynthesiser + name = "Cyborg Upgrade (Hypospray Expanded Synthesiser)" + id = "borg_upgrade_expandedsynthesiser" + build_type = MECHFAB + build_path = /obj/item/borg/upgrade/hypospray/expanded + req_tech = list("programming" = 5, "engineering" = 4, "biotech" = 5) + materials = list(MAT_METAL=15000, MAT_GLASS=15000, MAT_PLASMA=5000) + construction_time = 120 + category = list("Cyborg Upgrade Modules") + +/datum/design/borg_upgrade_highstrengthsynthesiser + name = "Cyborg Upgrade (Hypospray High-Strength Synthesiser)" + id = "borg_upgrade_highstrengthsynthesiser" + build_type = MECHFAB + build_path = /obj/item/borg/upgrade/hypospray/high_strength + req_tech = list("programming" = 5, "engineering" = 5, "biotech" = 6) + materials = list(MAT_METAL=15000, MAT_GLASS=15000, MAT_PLASMA=10000, MAT_URANIUM=5000) + construction_time = 120 + category = list("Cyborg Upgrade Modules") + +/datum/design/borg_upgrade_piercinghypospray + name = "Cyborg Upgrade (Piercing Hypospray)" + id = "borg_upgrade_piercinghypospray" + build_type = MECHFAB + build_path = /obj/item/borg/upgrade/piercing_hypospray + req_tech = list("materials" = 5, "engineering" = 7, "combat" = 3) + materials = list(MAT_METAL=15000, MAT_GLASS=15000, MAT_TITANIUM=10000, MAT_DIAMOND=5000) + construction_time = 120 + category = list("Cyborg Upgrade Modules") + +/datum/design/borg_upgrade_defibrillator + name = "Cyborg Upgrade (Defibrillator)" + id = "borg_upgrade_defibrillator" + build_type = MECHFAB + build_path = /obj/item/borg/upgrade/defib + req_tech = list("programming" = 4, "engineering" = 5, "materials" = 5, "powerstorage" = 5, "biotech" = 5) + materials = list(MAT_METAL=15000, MAT_GLASS=15000, MAT_SILVER=10000, MAT_GOLD=10000, MAT_TITANIUM=5000, MAT_DIAMOND=5000) + construction_time = 120 + category = list("Cyborg Upgrade Modules") + //Misc /datum/design/mecha_tracking name = "Exosuit Tracking Beacon" @@ -719,3 +740,36 @@ construction_time = 100 build_path = /obj/item/device/assembly/flash/handheld category = list("Misc") + +/datum/design/flightsuit //Multi step build process/redo WIP + name = "Flight Suit" + desc = "A specialized hardsuit that is able to attach a flightpack and accessories.." + id = "flightsuit" + build_type = MECHFAB + build_path = /obj/item/clothing/suit/space/hardsuit/flightsuit + materials = list(MAT_METAL=16000, MAT_GLASS = 8000, MAT_DIAMOND = 200, MAT_GOLD = 3000, MAT_SILVER = 3000, MAT_TITANIUM = 16000) //This expensive enough for you? + construction_time = 250 + category = list("Misc") + req_tech = list("magnets" = 2, "combat" = 2, "plasmatech" = 2, "materials" = 4, "engineering" = 3, "powerstorage" = 2) + +/datum/design/flightpack + name = "Flight Pack" + desc = "An advanced back-worn system that has dual ion engines powerful enough to grant a humanoid flight. Contains an internal self-recharging high-current capacitor for short, powerful boosts." + id = "flightpack" + build_type = MECHFAB + build_path = /obj/item/device/flightpack + materials = list(MAT_METAL=16000, MAT_GLASS = 8000, MAT_DIAMOND = 4000, MAT_GOLD = 12000, MAT_SILVER = 12000, MAT_URANIUM = 20000, MAT_PLASMA = 16000, MAT_TITANIUM = 16000) //This expensive enough for you? + construction_time = 250 + category = list("Misc") + req_tech = list("magnets" = 4, "combat" = 3, "plasmatech" = 4, "materials" = 5, "engineering" = 4, "powerstorage" = 4) + +/datum/design/flightshoes + name = "Flight Shoes" + desc = "Flight shoes, attachable to a flight suit to provide additional functions." + id = "flightshoes" + build_type = MECHFAB + build_path = /obj/item/clothing/shoes/flightshoes + materials = list(MAT_METAL = 5000, MAT_GLASS = 5000, MAT_GOLD = 1500, MAT_SILVER = 1500, MAT_PLASMA = 2000, MAT_TITANIUM = 2000) + construction_time = 100 + category = list("Misc") + req_tech = list("magnets" = 2, "combat" = 2, "plasmatech" = 3, "materials" = 3, "engineering" = 2, "powerstorage" = 2) diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index e599fc862c..818d616bb3 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -89,7 +89,7 @@ name = "Piercing Syringe" desc = "A diamond-tipped syringe that pierces armor when launched at high velocity. It can hold up to 10 units." id = "piercesyringe" - req_tech = list("materials" = 5, "combat" = 3, "engineering" = 7) + req_tech = list("materials" = 7, "combat" = 3, "engineering" = 5) build_type = PROTOLATHE materials = list(MAT_GLASS = 4000, MAT_DIAMOND = 1500) build_path = /obj/item/weapon/reagent_containers/syringe/piercing @@ -115,6 +115,66 @@ build_path = /obj/item/device/extinguisher_refill category = list("Medical Designs") +/datum/design/alienscalpel + name = "Alien Scalpel" + desc = "An advanced scalpel obtained through Abductor technology." + id = "alien_scalpel" + req_tech = list("bio" = 4, "materials" = 4, "abductor" = 3) + build_path = /obj/item/weapon/scalpel/alien + build_type = PROTOLATHE + materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_PLASMA = 500, MAT_TITANIUM = 1500) + category = list("Medical Designs") + +/datum/design/alienhemostat + name = "Alien Hemostat" + desc = "An advanced hemostat obtained through Abductor technology." + id = "alien_hemostat" + req_tech = list("bio" = 4, "materials" = 4, "abductor" = 3) + build_path = /obj/item/weapon/hemostat/alien + build_type = PROTOLATHE + materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_PLASMA = 500, MAT_TITANIUM = 1500) + category = list("Medical Designs") + +/datum/design/alienretractor + name = "Alien Retractor" + desc = "An advanced retractor obtained through Abductor technology." + id = "alien_retractor" + req_tech = list("bio" = 4, "materials" = 4, "abductor" = 3) + build_path = /obj/item/weapon/retractor/alien + build_type = PROTOLATHE + materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_PLASMA = 500, MAT_TITANIUM = 1500) + category = list("Medical Designs") + +/datum/design/aliensaw + name = "Alien Circular Saw" + desc = "An advanced surgical saw obtained through Abductor technology." + id = "alien_saw" + req_tech = list("bio" = 4, "materials" = 4, "abductor" = 3) + build_path = /obj/item/weapon/circular_saw/alien + build_type = PROTOLATHE + materials = list(MAT_METAL = 10000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 1500) + category = list("Medical Designs") + +/datum/design/aliendrill + name = "Alien Drill" + desc = "An advanced drill obtained through Abductor technology." + id = "alien_drill" + req_tech = list("bio" = 4, "materials" = 4, "abductor" = 3) + build_path = /obj/item/weapon/surgicaldrill/alien + build_type = PROTOLATHE + materials = list(MAT_METAL = 10000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 1500) + category = list("Medical Designs") + +/datum/design/aliencautery + name = "Alien Cautery" + desc = "An advanced cautery obtained through Abductor technology." + id = "alien_cautery" + req_tech = list("bio" = 4, "materials" = 4, "abductor" = 3) + build_path = /obj/item/weapon/cautery/alien + build_type = PROTOLATHE + materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_PLASMA = 500, MAT_TITANIUM = 1500) + category = list("Medical Designs") + ///////////////////////////////////////// //////////Cybernetic Implants//////////// ///////////////////////////////////////// @@ -222,10 +282,10 @@ name = "Nutriment pump implant" desc = "This implant with synthesize and pump into your bloodstream a small amount of nutriment when you are starving." id = "ci-nutriment" - req_tech = list("materials" = 5, "powerstorage" = 6, "biotech" = 5) + req_tech = list("materials" = 3, "powerstorage" = 4, "biotech" = 3) build_type = PROTOLATHE | MECHFAB construction_time = 40 - materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_GOLD = 500, MAT_URANIUM = 500) + materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_GOLD = 500) build_path = /obj/item/organ/cyberimp/chest/nutriment category = list("Misc", "Medical Designs") @@ -233,7 +293,7 @@ name = "Nutriment pump implant PLUS" desc = "This implant with synthesize and pump into your bloodstream a small amount of nutriment when you are hungry." id = "ci-nutrimentplus" - req_tech = list("materials" = 5, "powerstorage" = 6, "biotech" = 6) + req_tech = list("materials" = 5, "powerstorage" = 4, "biotech" = 4) build_type = PROTOLATHE | MECHFAB construction_time = 50 materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_GOLD = 500, MAT_URANIUM = 750) @@ -244,10 +304,10 @@ name = "Reviver implant" desc = "This implant will attempt to revive you if you lose consciousness. For the faint of heart!" id = "ci-reviver" - req_tech = list("materials" = 5, "programming" = 4, "biotech" = 8) + req_tech = list("materials" = 5, "programming" = 4, "biotech" = 5) build_type = PROTOLATHE | MECHFAB construction_time = 60 - materials = list(MAT_METAL = 800, MAT_GLASS = 800, MAT_GOLD = 500, MAT_URANIUM = 1000, MAT_DIAMOND = 2000) + materials = list(MAT_METAL = 800, MAT_GLASS = 800, MAT_GOLD = 300, MAT_URANIUM = 500) build_path = /obj/item/organ/cyberimp/chest/reviver category = list("Misc", "Medical Designs") @@ -287,6 +347,16 @@ build_path = /obj/item/weapon/implantcase category = list("Medical Designs") +/datum/design/implant_sadtrombone + name = "Sad Trombone Implant Case" + desc = "Makes death amusing." + id = "implant_trombone" + req_tech = list("materials" = 2, "biotech" = 3, "programming" = 2) + build_type = PROTOLATHE + materials = list(MAT_GLASS = 500, MAT_BANANIUM = 500) + build_path = /obj/item/weapon/implantcase/sad_trombone + category = list("Medical Designs") + /datum/design/implant_freedom name = "Freedom Implant Case" desc = "A glass case containing an implant." diff --git a/code/modules/research/designs/power_designs.dm b/code/modules/research/designs/power_designs.dm index c474db4f2f..3ac28721da 100644 --- a/code/modules/research/designs/power_designs.dm +++ b/code/modules/research/designs/power_designs.dm @@ -52,7 +52,7 @@ id = "bluespace_cell" req_tech = list("powerstorage" = 6, "materials" = 5, "engineering" = 5, "bluespace" = 5) build_type = PROTOLATHE | MECHFAB - materials = list(MAT_METAL = 800, MAT_GOLD = 300, MAT_SILVER = 300, MAT_GLASS = 160, MAT_DIAMOND = 160) + materials = list(MAT_METAL = 800, MAT_GOLD = 120, MAT_SILVER = 150, MAT_GLASS = 160, MAT_DIAMOND = 160, MAT_TITANIUM = 300) construction_time=100 build_path = /obj/item/weapon/stock_parts/cell/bluespace category = list("Misc","Power Designs") diff --git a/code/modules/research/designs/stock_parts_designs.dm b/code/modules/research/designs/stock_parts_designs.dm index bfd81790c4..d849a1a95d 100644 --- a/code/modules/research/designs/stock_parts_designs.dm +++ b/code/modules/research/designs/stock_parts_designs.dm @@ -32,6 +32,7 @@ materials = list(MAT_METAL = 100, MAT_GLASS = 100) build_path = /obj/item/weapon/stock_parts/capacitor category = list("Stock Parts","Machinery","initial") + lathe_time_factor = 0.2 /datum/design/adv_capacitor name = "Advanced Capacitor" @@ -42,6 +43,7 @@ materials = list(MAT_METAL = 150, MAT_GLASS = 150) build_path = /obj/item/weapon/stock_parts/capacitor/adv category = list("Stock Parts") + lathe_time_factor = 0.2 /datum/design/super_capacitor name = "Super Capacitor" @@ -52,6 +54,7 @@ materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_GOLD = 100) build_path = /obj/item/weapon/stock_parts/capacitor/super category = list("Stock Parts") + lathe_time_factor = 0.2 /datum/design/quadratic_capacitor name = "Quadratic Capacitor" @@ -62,6 +65,7 @@ materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_DIAMOND = 100) build_path = /obj/item/weapon/stock_parts/capacitor/quadratic category = list("Stock Parts") + lathe_time_factor = 0.2 //Scanning modules /datum/design/basic_scanning @@ -73,6 +77,7 @@ materials = list(MAT_METAL = 100, MAT_GLASS = 50) build_path = /obj/item/weapon/stock_parts/scanning_module category = list("Stock Parts","Machinery","initial") + lathe_time_factor = 0.2 /datum/design/adv_scanning name = "Advanced Scanning Module" @@ -83,6 +88,7 @@ materials = list(MAT_METAL = 150, MAT_GLASS = 100) build_path = /obj/item/weapon/stock_parts/scanning_module/adv category = list("Stock Parts") + lathe_time_factor = 0.2 /datum/design/phasic_scanning name = "Phasic Scanning Module" @@ -93,6 +99,7 @@ materials = list(MAT_METAL = 200, MAT_GLASS = 150, MAT_SILVER = 60) build_path = /obj/item/weapon/stock_parts/scanning_module/phasic category = list("Stock Parts") + lathe_time_factor = 0.2 /datum/design/triphasic_scanning name = "Triphasic Scanning Module" @@ -103,6 +110,7 @@ materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_DIAMOND = 60) build_path = /obj/item/weapon/stock_parts/scanning_module/triphasic category = list("Stock Parts") + lathe_time_factor = 0.2 //Maipulators /datum/design/micro_mani @@ -114,6 +122,7 @@ materials = list(MAT_METAL = 100) build_path = /obj/item/weapon/stock_parts/manipulator category = list("Stock Parts","Machinery","initial") + lathe_time_factor = 0.2 /datum/design/nano_mani name = "Nano Manipulator" @@ -124,6 +133,7 @@ materials = list(MAT_METAL = 150) build_path = /obj/item/weapon/stock_parts/manipulator/nano category = list("Stock Parts") + lathe_time_factor = 0.2 /datum/design/pico_mani name = "Pico Manipulator" @@ -134,6 +144,7 @@ materials = list(MAT_METAL = 200) build_path = /obj/item/weapon/stock_parts/manipulator/pico category = list("Stock Parts") + lathe_time_factor = 0.2 /datum/design/femto_mani name = "Femto Manipulator" @@ -141,9 +152,10 @@ id = "femto_mani" req_tech = list("materials" = 7, "programming" = 5, "engineering" = 5, "bluespace" = 5) build_type = PROTOLATHE - materials = list(MAT_METAL = 200, MAT_DIAMOND = 60) + materials = list(MAT_METAL = 200, MAT_DIAMOND = 30, MAT_TITANIUM = 30) build_path = /obj/item/weapon/stock_parts/manipulator/femto category = list("Stock Parts") + lathe_time_factor = 0.2 //Micro-lasers /datum/design/basic_micro_laser @@ -155,6 +167,7 @@ materials = list(MAT_METAL = 100, MAT_GLASS = 50) build_path = /obj/item/weapon/stock_parts/micro_laser category = list("Stock Parts","Machinery","initial") + lathe_time_factor = 0.2 /datum/design/high_micro_laser name = "High-Power Micro-Laser" @@ -165,6 +178,7 @@ materials = list(MAT_METAL = 150, MAT_GLASS = 100) build_path = /obj/item/weapon/stock_parts/micro_laser/high category = list("Stock Parts") + lathe_time_factor = 0.2 /datum/design/ultra_micro_laser name = "Ultra-High-Power Micro-Laser" @@ -175,6 +189,7 @@ materials = list(MAT_METAL = 200, MAT_GLASS = 150, MAT_URANIUM = 60) build_path = /obj/item/weapon/stock_parts/micro_laser/ultra category = list("Stock Parts") + lathe_time_factor = 0.2 /datum/design/quadultra_micro_laser name = "Quad-Ultra Micro-Laser" @@ -185,6 +200,7 @@ materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_URANIUM = 100, MAT_DIAMOND = 60) build_path = /obj/item/weapon/stock_parts/micro_laser/quadultra category = list("Stock Parts") + lathe_time_factor = 0.2 /datum/design/basic_matter_bin name = "Basic Matter Bin" @@ -195,6 +211,7 @@ materials = list(MAT_METAL = 100) build_path = /obj/item/weapon/stock_parts/matter_bin category = list("Stock Parts","Machinery","initial") + lathe_time_factor = 0.2 /datum/design/adv_matter_bin name = "Advanced Matter Bin" @@ -205,6 +222,7 @@ materials = list(MAT_METAL = 150) build_path = /obj/item/weapon/stock_parts/matter_bin/adv category = list("Stock Parts") + lathe_time_factor = 0.2 /datum/design/super_matter_bin name = "Super Matter Bin" @@ -215,6 +233,7 @@ materials = list(MAT_METAL = 200) build_path = /obj/item/weapon/stock_parts/matter_bin/super category = list("Stock Parts") + lathe_time_factor = 0.2 /datum/design/bluespace_matter_bin name = "Bluespace Matter Bin" @@ -225,6 +244,7 @@ materials = list(MAT_METAL = 250, MAT_DIAMOND = 200) build_path = /obj/item/weapon/stock_parts/matter_bin/bluespace category = list("Stock Parts") + lathe_time_factor = 0.2 //T-Comms devices /datum/design/subspace_ansible diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm index b38453e220..9afb51fb27 100644 --- a/code/modules/research/designs/weapon_designs.dm +++ b/code/modules/research/designs/weapon_designs.dm @@ -29,7 +29,7 @@ req_tech = list("combat" = 4, "materials" = 4, "powerstorage" = 5) build_type = PROTOLATHE materials = list(MAT_METAL = 10000, MAT_GLASS = 10000, MAT_SILVER = 10000) - build_path = /obj/item/weapon/gun/energy/shock_revolver + build_path = /obj/item/weapon/gun/energy/tesla_revolver category = list("Weapons") /datum/design/nuclear_gun @@ -38,17 +38,17 @@ id = "nuclear_gun" req_tech = list("combat" = 5, "magnets" = 5, "powerstorage" = 5) build_type = PROTOLATHE - materials = list(MAT_METAL = 10000, MAT_GLASS = 2000, MAT_URANIUM = 4000) - build_path = /obj/item/weapon/gun/energy/gun/nuclear + materials = list(MAT_METAL = 10000, MAT_GLASS = 2000, MAT_URANIUM = 3000, MAT_TITANIUM = 1000) + build_path = /obj/item/weapon/gun/energy/e_gun/nuclear category = list("Weapons") /datum/design/tele_shield name = "Telescopic Riot Shield" desc = "An advanced riot shield made of lightweight materials that collapses for easy storage." id = "tele_shield" - req_tech = list("combat" = 5, "materials" = 4, "engineering" = 4) + req_tech = list("combat" = 4, "materials" = 3, "engineering" = 4) build_type = PROTOLATHE - materials = list(MAT_METAL = 4000, MAT_GLASS = 5000, MAT_SILVER = 3000) + materials = list(MAT_METAL = 4000, MAT_GLASS = 4000, MAT_SILVER = 300, MAT_TITANIUM = 200) build_path = /obj/item/weapon/shield/riot/tele category = list("Weapons") @@ -69,7 +69,7 @@ req_tech = list("combat" = 5, "materials" = 5, "biotech" = 6, "plasmatech" = 7) build_type = PROTOLATHE materials = list(MAT_GOLD = 5000,MAT_URANIUM = 10000) - reagents = list("mutagen" = 40) + reagents_list = list("mutagen" = 40) build_path = /obj/item/weapon/gun/energy/decloner category = list("Weapons") @@ -83,16 +83,6 @@ build_path = /obj/item/weapon/gun/syringe/rapidsyringe category = list("Weapons") -/datum/design/largecrossbow - name = "Energy Crossbow" - desc = "A reverse-engineered energy crossbow favored by syndicate infiltration teams and carp hunters." - id = "largecrossbow" - req_tech = list("combat" = 5, "engineering" = 3, "magnets" = 5, "syndicate" = 3) - build_type = PROTOLATHE - materials = list(MAT_METAL = 5000, MAT_GLASS = 1500, MAT_URANIUM = 1500, MAT_SILVER = 1500) - build_path = /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow/large - category = list("Weapons") - /datum/design/temp_gun name = "Temperature Gun" desc = "A gun that shoots temperature bullet energythings to change temperature."//Change it if you want @@ -110,7 +100,7 @@ req_tech = list("materials" = 2, "biotech" = 4) build_type = PROTOLATHE materials = list(MAT_METAL = 2000, MAT_GLASS = 500) - reagents = list("radium" = 20) + reagents_list = list("radium" = 20) build_path = /obj/item/weapon/gun/energy/floragun category = list("Weapons") @@ -163,7 +153,7 @@ id = "xray" req_tech = list("combat" = 7, "magnets" = 5, "biotech" = 5, "powerstorage" = 4) build_type = PROTOLATHE - materials = list(MAT_GOLD = 5000,MAT_URANIUM = 10000, MAT_METAL = 5000) + materials = list(MAT_GOLD = 5000,MAT_URANIUM = 8000, MAT_METAL = 5000, MAT_TITANIUM = 2000) build_path = /obj/item/weapon/gun/energy/xray category = list("Weapons") @@ -198,8 +188,6 @@ category = list("Weapons") //WT550 Mags -// Literally cancer - Poojawa -/* /datum/design/mag_oldsmg name = "WT-550 Auto Gun Magazine (4.6x30mm)" @@ -231,7 +219,7 @@ id = "mag_oldsmg_tx" materials = list(MAT_METAL = 6000, MAT_SILVER = 600, MAT_URANIUM = 2000) build_path = /obj/item/ammo_box/magazine/wt550m9/wttx -*/ + /datum/design/stunshell name = "Stun Shell" desc = "A stunning shell for a shotgun." @@ -271,3 +259,13 @@ materials = list(MAT_SILVER = 8000, MAT_GOLD = 8000, MAT_URANIUM = 8000, MAT_GLASS = 12000, MAT_METAL = 12000, MAT_DIAMOND = 3000) build_path = /obj/item/weapon/gun/energy/gravity_gun category = list("Weapons") + +/datum/design/largecrossbow + name = "Energy Crossbow" + desc = "A reverse-engineered energy crossbow favored by syndicate infiltration teams and carp hunters." + id = "largecrossbow" + req_tech = list("combat" = 5, "engineering" = 3, "magnets" = 5, "syndicate" = 3) + build_type = PROTOLATHE + materials = list(MAT_METAL = 5000, MAT_GLASS = 1500, MAT_URANIUM = 1500, MAT_SILVER = 1500) + build_path = /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow/large + category = list("Weapons") \ No newline at end of file diff --git a/code/modules/research/destructive_analyzer.dm b/code/modules/research/destructive_analyzer.dm index 06c7dd3aa3..bb303b7579 100644 --- a/code/modules/research/destructive_analyzer.dm +++ b/code/modules/research/destructive_analyzer.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33 + /* Destructive Analyzer @@ -45,7 +45,7 @@ Note: Must be placed within 3 tiles of the R&D Console ..() /obj/machinery/r_n_d/destructive_analyzer/Insert_Item(obj/item/O, mob/user) - if(user.a_intent != "harm") + if(user.a_intent != INTENT_HARM) . = 1 if(!is_insertion_ready(user)) return @@ -61,7 +61,7 @@ Note: Must be placed within 3 tiles of the R&D Console return busy = 1 loaded_item = O - O.loc = src + O.forceMove(src) user << "You add the [O.name] to the [src.name]!" flick("d_analyzer_la", src) spawn(10) diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm index 4441a168a5..33f71063c2 100644 --- a/code/modules/research/experimentor.dm +++ b/code/modules/research/experimentor.dm @@ -115,7 +115,7 @@ return TRUE /obj/machinery/r_n_d/experimentor/Insert_Item(obj/item/O, mob/user) - if(user.a_intent != "harm") + if(user.a_intent != INTENT_HARM) . = 1 if(!is_insertion_ready(user)) return @@ -615,7 +615,7 @@ spawn(cooldownMax) cooldown = FALSE else - user << "You aren't quite sure what to do with this, yet." + user << "You aren't quite sure what to do with this yet." //////////////// RELIC PROCS ///////////////////////////// diff --git a/code/modules/research/message_server.dm b/code/modules/research/message_server.dm index 753f9d26b0..253dbe4f1b 100644 --- a/code/modules/research/message_server.dm +++ b/code/modules/research/message_server.dm @@ -114,7 +114,6 @@ var/global/list/obj/machinery/message_server/message_servers = list() rc_msgs += new/datum/data_rc_msg(recipient,sender,message,stamp,id_auth) /obj/machinery/message_server/attack_hand(mob/user) -// user << "\blue There seem to be some parts missing from this server. They should arrive on the station in a few days, give or take a few Centcom delays." user << "You toggle PDA message passing from [active ? "On" : "Off"] to [active ? "Off" : "On"]" active = !active update_icon() @@ -202,6 +201,7 @@ var/obj/machinery/blackbox_recorder/blackbox use_power = 1 idle_power_usage = 10 active_power_usage = 100 + armor = list(melee = 25, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 70) var/list/messages = list() //Stores messages of non-standard frequencies var/list/messages_admin = list() @@ -225,6 +225,7 @@ var/obj/machinery/blackbox_recorder/blackbox qdel(src) blackbox = src + /obj/machinery/blackbox_recorder/Destroy() var/turf/T = locate(1,1,2) if (T) diff --git a/code/modules/research/protolathe.dm b/code/modules/research/protolathe.dm index ea62e657a7..ef947b17fa 100644 --- a/code/modules/research/protolathe.dm +++ b/code/modules/research/protolathe.dm @@ -26,14 +26,15 @@ Note: Must be placed west/left of and R&D console to function. "Electronics", "Weapons", "Ammo", - "Firing Pins" + "Firing Pins", + "Computer Parts" ) /obj/machinery/r_n_d/protolathe/New() ..() create_reagents(0) - materials = new(src, list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM)) + materials = new(src, list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM)) var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/protolathe(null) B.apply_default_parts(src) @@ -75,7 +76,7 @@ Note: Must be placed west/left of and R&D console to function. return round(A / max(1, (all_materials[M]*efficiency_coeff))) //we eject the materials upon deconstruction. -/obj/machinery/r_n_d/protolathe/deconstruction() +/obj/machinery/r_n_d/protolathe/on_deconstruction() for(var/obj/item/weapon/reagent_containers/glass/G in component_parts) reagents.trans_to(G, G.reagents.maximum_volume) materials.retrieve_all() @@ -118,7 +119,7 @@ Note: Must be placed west/left of and R&D console to function. busy = 0 updateUsrDialog() - else if(user.a_intent != "harm") + else if(user.a_intent != INTENT_HARM) user << "You cannot insert this item into the [name]!" return 1 else diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index 7732362d41..7211de4267 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -22,8 +22,8 @@ operations to skip that console. This is useful if you want to make a "public" R a circuit imprinter with certain designs on it and don't want it accidentally updating. The downside of this method is that you have to have physical access to the other console to send data back. Note: An R&D console is on Centcom so if a random griffan happens to cause a ton of data to be lost, an admin can go send it back. -- The second method is with Technology Disks and Design Disks. Each of these disks can hold a single technology or design datum in -it's entirety. You can then take the disk to any R&D console and upload it's data to it. This method is a lot more secure (since it +- The second method is with Technology Disks and Design Disks. Each of these disks can hold technology or design datums in +their entirety. You can then take the disk to any R&D console and upload it's data to it. This method is a lot more secure (since it won't update every console in existence) but it's more of a hassle to do. Also, the disks can be stolen. @@ -34,7 +34,6 @@ won't update every console in existence) but it's more of a hassle to do. Also, icon_screen = "rdcomp" icon_keyboard = "rd_key" circuit = /obj/item/weapon/circuitboard/computer/rdconsole - light_color = LIGHT_COLOR_PINK var/datum/research/files //Stores all the collected research data. var/obj/item/weapon/disk/tech_disk/t_disk = null //Stores the technology disk. var/obj/item/weapon/disk/design_disk/d_disk = null //Stores the design disk. @@ -52,6 +51,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, var/selected_category var/list/datum/design/matching_designs = list() //for the search function + var/disk_slot_selected = 0 /proc/CallTechName(ID) //A simple helper proc to find the name of a tech with a given ID. @@ -122,8 +122,10 @@ won't update every console in existence) but it's more of a hassle to do. Also, user << "A disk is already loaded into the machine." return - if(istype(D, /obj/item/weapon/disk/tech_disk)) t_disk = D - else if (istype(D, /obj/item/weapon/disk/design_disk)) d_disk = D + if(istype(D, /obj/item/weapon/disk/tech_disk)) + t_disk = D + else if (istype(D, /obj/item/weapon/disk/design_disk)) + d_disk = D else user << "Machine cannot accept disks in that format." return @@ -136,7 +138,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, updateUsrDialog() -/obj/machinery/computer/rdconsole/deconstruction() +/obj/machinery/computer/rdconsole/on_deconstruction() if(linked_destroy) linked_destroy.linked_console = null linked_destroy = null @@ -162,6 +164,9 @@ won't update every console in existence) but it's more of a hassle to do. Also, add_fingerprint(usr) usr.set_machine(src) + if(href_list["disk_slot"]) + disk_slot_selected = text2num(href_list["disk_slot"]) + if(href_list["menu"]) //Switches menu screens. Converts a sent text string into a number. Saves a LOT of code. var/temp_screen = text2num(href_list["menu"]) screen = temp_screen @@ -170,16 +175,34 @@ won't update every console in existence) but it's more of a hassle to do. Also, selected_category = href_list["category"] else if(href_list["updt_tech"]) //Update the research holder with information from the technology disk. + var/n = text2num(href_list["updt_tech"]) screen = 0.0 - spawn(50) + var/wait = 50 + if(!n) + wait = 0 + for(var/D in t_disk.tech_stored) + if(D) + wait += 50 + spawn(wait) screen = 1.2 - files.AddTech2Known(t_disk.stored) - updateUsrDialog() - griefProtection() //Update centcom too + if(t_disk) + if(!n) + for(var/tech in t_disk.tech_stored) + if(tech) + files.AddTech2Known(tech) + else + files.AddTech2Known(t_disk.tech_stored[n]) + updateUsrDialog() + griefProtection() //Update centcom too else if(href_list["clear_tech"]) //Erase data on the technology disk. if(t_disk) - t_disk.stored = null + var/n = text2num(href_list["clear_tech"]) + if(!n) + for(var/i in 1 to t_disk.max_tech_stored) + t_disk.tech_stored[i] = null + else + t_disk.tech_stored[n] = null else if(href_list["eject_tech"]) //Eject the technology disk. if(t_disk) @@ -188,20 +211,39 @@ won't update every console in existence) but it's more of a hassle to do. Also, screen = 1.0 else if(href_list["copy_tech"]) //Copy some technology data from the research holder to the disk. - t_disk.stored = files.known_tech[href_list["copy_tech_ID"]] + var/slot = text2num(href_list["copy_tech"]) + t_disk.tech_stored[slot] = files.known_tech[href_list["copy_tech_ID"]] screen = 1.2 else if(href_list["updt_design"]) //Updates the research holder with design data from the design disk. + var/n = text2num(href_list["updt_design"]) screen = 0.0 - spawn(50) + var/wait = 50 + if(!n) + wait = 0 + for(var/D in d_disk.blueprints) + if(D) + wait += 50 + spawn(wait) screen = 1.4 - files.AddDesign2Known(d_disk.blueprint) - updateUsrDialog() - griefProtection() //Update centcom too + if(d_disk) + if(!n) + for(var/D in d_disk.blueprints) + if(D) + files.AddDesign2Known(D) + else + files.AddDesign2Known(d_disk.blueprints[n]) + updateUsrDialog() + griefProtection() //Update centcom too else if(href_list["clear_design"]) //Erases data on the design disk. if(d_disk) - d_disk.blueprint = null + var/n = text2num(href_list["clear_design"]) + if(!n) + for(var/i in 1 to d_disk.max_blueprints) + d_disk.blueprints[i] = null + else + d_disk.blueprints[n] = null else if(href_list["eject_design"]) //Eject the design disk. if(d_disk) @@ -210,10 +252,11 @@ won't update every console in existence) but it's more of a hassle to do. Also, screen = 1.0 else if(href_list["copy_design"]) //Copy design data from the research holder to the design disk. + var/slot = text2num(href_list["copy_design"]) var/datum/design/D = files.known_designs[href_list["copy_design_ID"]] if(D) var/autolathe_friendly = 1 - if(D.reagents.len) + if(D.reagents_list.len) autolathe_friendly = 0 D.category -= "Imported" else @@ -225,7 +268,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, if(D.build_type & (AUTOLATHE|PROTOLATHE|CRAFTLATHE)) // Specifically excludes circuit imprinter and mechfab D.build_type = autolathe_friendly ? (D.build_type | AUTOLATHE) : D.build_type D.category |= "Imported" - d_disk.blueprint = D + d_disk.blueprints[slot] = D screen = 1.4 else if(href_list["eject_item"]) //Eject the item inside the destructive analyzer. @@ -234,7 +277,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, usr << "The destructive analyzer is busy at the moment." else if(linked_destroy.loaded_item) - linked_destroy.loaded_item.loc = linked_destroy.loc + linked_destroy.loaded_item.forceMove(linked_destroy.loc) linked_destroy.loaded_item = null linked_destroy.icon_state = "d_analyzer" screen = 1.0 @@ -342,6 +385,9 @@ won't update every console in existence) but it's more of a hassle to do. Also, var/datum/design/being_built = files.known_designs[href_list["build"]] var/amount = text2num(href_list["amount"]) + if(being_built.make_reagents.len) + return 0 + if(!linked_lathe || !being_built || !amount) updateUsrDialog() return @@ -380,18 +426,21 @@ won't update every console in existence) but it's more of a hassle to do. Also, enough_materials = 0 g2g = 0 else - for(var/R in being_built.reagents) - if(!linked_lathe.reagents.has_reagent(R, being_built.reagents[R]*coeff)) + for(var/R in being_built.reagents_list) + if(!linked_lathe.reagents.has_reagent(R, being_built.reagents_list[R]*coeff)) linked_lathe.say("Not enough reagents to complete prototype.") enough_materials = 0 g2g = 0 if(enough_materials) linked_lathe.materials.use_amount(efficient_mats, amount) - for(var/R in being_built.reagents) - linked_lathe.reagents.remove_reagent(R, being_built.reagents[R]*coeff) + for(var/R in being_built.reagents_list) + linked_lathe.reagents.remove_reagent(R, being_built.reagents_list[R]*coeff) var/P = being_built.build_path //lets save these values before the spawn() just in case. Nobody likes runtimes. + + coeff *= being_built.lathe_time_factor + spawn(32*coeff*amount**0.8) if(linked_lathe) if(g2g) //And if we only fail the material requirements, we still spend time and power @@ -453,16 +502,16 @@ won't update every console in existence) but it's more of a hassle to do. Also, enough_materials = 0 g2g = 0 else - for(var/R in being_built.reagents) - if(!linked_imprinter.reagents.has_reagent(R, being_built.reagents[R]/coeff)) + for(var/R in being_built.reagents_list) + if(!linked_imprinter.reagents.has_reagent(R, being_built.reagents_list[R]/coeff)) linked_imprinter.say("Not enough reagents to complete prototype.") enough_materials = 0 g2g = 0 if(enough_materials) linked_imprinter.materials.use_amount(efficient_mats) - for(var/R in being_built.reagents) - linked_imprinter.reagents.remove_reagent(R, being_built.reagents[R]/coeff) + for(var/R in being_built.reagents_list) + linked_imprinter.reagents.remove_reagent(R, being_built.reagents_list[R]/coeff) var/P = being_built.build_path //lets save these values before the spawn() just in case. Nobody likes runtimes. spawn(16) @@ -522,7 +571,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, else if(href_list["reset"]) //Reset the R&D console's database. griefProtection() var/choice = alert("R&D Console Database Reset", "Are you sure you want to reset the R&D console's database? Data lost cannot be recovered.", "Continue", "Cancel") - if(choice == "Continue") + if(choice == "Continue" && usr.canUseTopic(src)) message_admins("[key_name_admin(usr)] reset \the [src.name]'s database") log_game("[key_name_admin(usr)] reset \the [src.name]'s database") screen = 0.0 @@ -640,22 +689,19 @@ won't update every console in existence) but it's more of a hassle to do. Also, dat += "" if(1.2) //Technology Disk Menu - dat += "Main Menu
    " - dat += "
    Technology Data Disk Contents:

    " - if(t_disk.stored == null) - dat += "The disk has no data stored on it.
    " - dat += "Operations: " - dat += "Load Tech to Disk" - else - dat += "Name: [t_disk.stored.name]
    " - dat += "Level: [t_disk.stored.level]
    " - dat += "Description: [t_disk.stored.desc]" - dat += "Operations: " - dat += "Upload to Database" - dat += "Clear Disk" - dat += "Eject Disk" - + dat += "Disk Operations: Clear DiskUpload AllEject Disk" + for(var/i in 1 to t_disk.max_tech_stored) + dat += "
    " + if(t_disk.tech_stored[i]) + var/datum/tech/tech = t_disk.tech_stored[i] + dat += "Name: [tech.name]
    " + dat += "Level: [tech.level]
    " + dat += "Description: [tech.desc]
    " + dat += "Operations: Upload to DatabaseClear Slot" + else + dat += "Empty Slot
    Operations: Load Tech to Slot" + dat += "
    " if(1.3) //Technology Disk submenu dat += "Main Menu" dat += "Return to Disk Operations
    " @@ -664,42 +710,41 @@ won't update every console in existence) but it's more of a hassle to do. Also, var/datum/tech/T = files.known_tech[v] if(T.level <= 0) continue - dat += "[T.name] " - dat += "Copy to Disk
    " + dat += "[T.name]" + dat += "Copy to Disk
    " dat += "
    " if(1.4) //Design Disk menu. - dat += "Main Menu
    " - if(d_disk.blueprint == null) - dat += "The disk has no data stored on it.
    " - dat += "Operations: " - dat += "Load Design to Disk" - else - dat += "Name: [d_disk.blueprint.name]
    " - var/b_type = d_disk.blueprint.build_type - if(b_type) - dat += "Lathe Types:
    " - if(b_type & IMPRINTER) dat += "Circuit Imprinter
    " - if(b_type & PROTOLATHE) dat += "Protolathe
    " - if(b_type & AUTOLATHE) dat += "Autolathe
    " - if(b_type & MECHFAB) dat += "Exosuit Fabricator
    " - dat += "Required Materials:
    " - var/all_mats = d_disk.blueprint.materials + d_disk.blueprint.reagents - for(var/M in all_mats) - dat += "* [CallMaterialName(M)] x [all_mats[M]]
    " - dat += "Operations: " - dat += "Upload to Database" - dat += "Clear Disk" - dat += "Eject Disk" - - if(1.5) //Technology disk submenu + dat += "Main Menu
    " + dat += "Disk Operations: Clear DiskUpload AllEject Disk" + for(var/i in 1 to d_disk.max_blueprints) + dat += "
    " + if(d_disk.blueprints[i]) + var/datum/design/D = d_disk.blueprints[i] + dat += "Name: [D.name]
    " + if(D.build_type) + dat += "Lathe Types:
    " + if(D.build_type & IMPRINTER) dat += "Circuit Imprinter
    " + if(D.build_type & PROTOLATHE) dat += "Protolathe
    " + if(D.build_type & AUTOLATHE) dat += "Autolathe
    " + if(D.build_type & MECHFAB) dat += "Exosuit Fabricator
    " + if(D.build_type & BIOGENERATOR) dat += "Biogenerator
    " + dat += "Required Materials:
    " + var/all_mats = D.materials + D.reagents_list + for(var/M in all_mats) + dat += "* [CallMaterialName(M)] x [all_mats[M]]
    " + dat += "Operations: Upload to Database Clear Slot" + else + dat += "Empty Slot
    Operations: Load Design to Slot" + dat += "
    " + if(1.5) //Design disk submenu dat += "Main Menu" dat += "Return to Disk Operations
    " dat += "

    Load Design to Disk:


    " for(var/v in files.known_designs) var/datum/design/D = files.known_designs[v] dat += "[D.name] " - dat += "Copy to Disk
    " + dat += "Copy to Disk
    " dat += "
    " if(1.6) //R&D console settings @@ -806,7 +851,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, var/c = 50 var/t - var/all_materials = D.materials + D.reagents + var/all_materials = D.materials + D.reagents_list for(var/M in all_materials) t = linked_lathe.check_mat(D, M) temp_material += " | " @@ -840,13 +885,14 @@ won't update every console in existence) but it's more of a hassle to do. Also, var/temp_material var/c = 50 var/t - for(var/M in D.materials) + var/all_materials = D.materials + D.reagents_list + for(var/M in all_materials) t = linked_lathe.check_mat(D, M) temp_material += " | " if (t < 1) - temp_material += "[D.materials[M]*coeff] [CallMaterialName(M)]" + temp_material += "[all_materials[M]*coeff] [CallMaterialName(M)]" else - temp_material += " [D.materials[M]*coeff] [CallMaterialName(M)]" + temp_material += " [all_materials[M]*coeff] [CallMaterialName(M)]" c = min(c,t) if (c >= 1) @@ -924,7 +970,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, var/temp_materials var/check_materials = 1 - var/all_materials = D.materials + D.reagents + var/all_materials = D.materials + D.reagents_list for(var/M in all_materials) temp_materials += " | " @@ -950,13 +996,14 @@ won't update every console in existence) but it's more of a hassle to do. Also, for(var/datum/design/D in matching_designs) var/temp_materials var/check_materials = 1 - for(var/M in D.materials) + var/all_materials = D.materials + D.reagents_list + for(var/M in all_materials) temp_materials += " | " if (!linked_imprinter.check_mat(D, M)) check_materials = 0 - temp_materials += " [D.materials[M]/coeff] [CallMaterialName(M)]" + temp_materials += " [all_materials[M]/coeff] [CallMaterialName(M)]" else - temp_materials += " [D.materials[M]/coeff] [CallMaterialName(M)]" + temp_materials += " [all_materials[M]/coeff] [CallMaterialName(M)]" if (check_materials) dat += "[D.name][temp_materials]
    " else diff --git a/code/modules/research/rdmachines.dm b/code/modules/research/rdmachines.dm index c41346915b..0cbadbc994 100644 --- a/code/modules/research/rdmachines.dm +++ b/code/modules/research/rdmachines.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33 + //All devices that link into the R&D console fall into thise type for easy identification and some shared procs. @@ -33,7 +33,7 @@ var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread s.set_up(5, 1, src) s.start() - if (electrocute_mob(user, get_area(src), src, 0.7)) + if (electrocute_mob(user, get_area(src), src, 0.7, TRUE)) return 1 else return 0 @@ -105,7 +105,7 @@ //we eject the loaded item when deconstructing the machine -/obj/machinery/r_n_d/deconstruction() +/obj/machinery/r_n_d/on_deconstruction() if(loaded_item) - loaded_item.loc = loc + loaded_item.forceMove(loc) ..() diff --git a/code/modules/research/research.dm b/code/modules/research/research.dm index a825b72896..d1eeba9294 100644 --- a/code/modules/research/research.dm +++ b/code/modules/research/research.dm @@ -143,11 +143,37 @@ research holder datum. if((D.build_type & AUTOLATHE) && ("initial" in D.category)) //autolathe starts without hacked designs AddDesign2Known(D) +//Limb Grower files +/datum/research/limbgrower/New() + for(var/T in (subtypesof(/datum/tech))) + possible_tech += new T(src) + for(var/path in subtypesof(/datum/design)) + var/datum/design/D = new path(src) + possible_designs += D + if((D.build_type & LIMBGROWER) && ("initial" in D.category)) + AddDesign2Known(D) + /datum/research/autolathe/AddDesign2Known(datum/design/D) if(!(D.build_type & AUTOLATHE)) return ..() +//Biogenerator files +/datum/research/biogenerator/New() + for(var/T in (subtypesof(/datum/tech))) + possible_tech += new T(src) + for(var/path in subtypesof(/datum/design)) + var/datum/design/D = new path(src) + possible_designs += D + if((D.build_type & BIOGENERATOR) && ("initial" in D.category)) + AddDesign2Known(D) + +/datum/research/biogenerator/AddDesign2Known(datum/design/D) + if(!(D.build_type & BIOGENERATOR)) + return + ..() + + /*************************************************************** ** Technology Datums ** ** Includes all the various technoliges and what they make. ** @@ -273,12 +299,44 @@ research holder datum. return cost /obj/item/weapon/disk/tech_disk - name = "Technology Disk" + name = "technology disk" desc = "A disk for storing technology data for further research." icon_state = "datadisk0" - materials = list(MAT_METAL=30, MAT_GLASS=10) - var/datum/tech/stored + materials = list(MAT_METAL=300, MAT_GLASS=100) + var/list/tech_stored = list() + var/max_tech_stored = 1 /obj/item/weapon/disk/tech_disk/New() + ..() src.pixel_x = rand(-5, 5) - src.pixel_y = rand(-5, 5) \ No newline at end of file + src.pixel_y = rand(-5, 5) + for(var/i in 1 to max_tech_stored) + tech_stored += null + + +/obj/item/weapon/disk/tech_disk/adv + name = "advanced technology disk" + desc = "A disk for storing technology data for further research. This one has extra storage space." + materials = list(MAT_METAL=300, MAT_GLASS=100, MAT_SILVER=50) + max_tech_stored = 5 + +/obj/item/weapon/disk/tech_disk/super_adv + name = "quantum technology disk" + desc = "A disk for storing technology data for further research. This one has extremely large storage space." + materials = list(MAT_METAL=300, MAT_GLASS=100, MAT_SILVER=100, MAT_GOLD=100) + max_tech_stored = 10 + +/obj/item/weapon/disk/tech_disk/debug + name = "centcomm technology disk" + desc = "A debug item for research" + materials = list() + max_tech_stored = 0 + +/obj/item/weapon/disk/tech_disk/debug/New() + ..() + var/list/techs = subtypesof(/datum/tech) + max_tech_stored = techs.len + for(var/V in techs) + var/datum/tech/T = new V() + tech_stored += T + T.level = 8 diff --git a/code/modules/research/server.dm b/code/modules/research/server.dm index e57becb825..8b789b4231 100644 --- a/code/modules/research/server.dm +++ b/code/modules/research/server.dm @@ -3,7 +3,7 @@ icon = 'icons/obj/machines/research.dmi' icon_state = "server" var/datum/research/files - var/health = 100 + var/heat_health = 100 var/list/id_with_upload = list() //List of R&D consoles with upload to server access. var/list/id_with_download = list() //List of R&D consoles with download from server access. var/id_with_upload_string = "" //String versions for easy editing in map editor. @@ -56,12 +56,12 @@ var/datum/gas_mixture/environment = loc.return_air() switch(environment.temperature) if(0 to T0C) - health = min(100, health + 1) + heat_health = min(100, heat_health + 1) if(T0C to (T20C + 20)) - health = Clamp(health, 0, 100) + heat_health = Clamp(heat_health, 0, 100) if((T20C + 20) to (T0C + 70)) - health = max(0, health - 1) - if(health <= 0) + heat_health = max(0, heat_health - 1) + if(heat_health <= 0) /*griefProtection() This seems to get called twice before running any code that deletes/damages the server or it's files anwyay. refreshParts and the hasReq procs that get called by this are laggy and do not need to be called by every server on the map every tick */ var/updateRD = 0 @@ -84,18 +84,10 @@ griefProtection() ..() - /obj/machinery/r_n_d/server/ex_act(severity, target) griefProtection() ..() - -/obj/machinery/r_n_d/server/blob_act(obj/effect/blob/B) - griefProtection() - ..() - - - //Backup files to centcom to help admins recover data after greifer attacks /obj/machinery/r_n_d/server/proc/griefProtection() for(var/obj/machinery/r_n_d/server/centcom/C in machines) @@ -129,7 +121,7 @@ air_update_turf() //called when the server is deconstructed. -/obj/machinery/r_n_d/server/deconstruction() +/obj/machinery/r_n_d/server/on_deconstruction() griefProtection() ..() @@ -234,7 +226,7 @@ else if(href_list["reset_tech"]) var/choice = alert("Technology Data Reset", "Are you sure you want to reset this technology to its default data? Data lost cannot be recovered.", "Continue", "Cancel") - if(choice == "Continue") + if(choice == "Continue" && usr.canUseTopic(src)) var/datum/tech/T = temp_server.files.known_tech[href_list["reset_tech"]] if(T) T.level = 1 @@ -242,7 +234,7 @@ else if(href_list["reset_design"]) var/choice = alert("Design Data Deletion", "Are you sure you want to delete this design? Data lost cannot be recovered.", "Continue", "Cancel") - if(choice == "Continue") + if(choice == "Continue" && usr.canUseTopic(src)) var/datum/design/D = temp_server.files.known_designs[href_list["reset_design"]] if(D) temp_server.files.known_designs -= D.id diff --git a/code/modules/research/stock_parts.dm b/code/modules/research/stock_parts.dm index a173888973..965ca9fc20 100644 --- a/code/modules/research/stock_parts.dm +++ b/code/modules/research/stock_parts.dm @@ -4,7 +4,7 @@ desc = "Special mechanical module made to store, sort, and apply standard machine parts." icon_state = "RPED" item_state = "RPED" - w_class = 5 + w_class = WEIGHT_CLASS_HUGE can_hold = list(/obj/item/weapon/stock_parts) storage_slots = 50 use_to_pickup = 1 @@ -12,7 +12,7 @@ allow_quick_empty = 1 collection_mode = 1 display_contents_with_number = 1 - max_w_class = 3 + max_w_class = WEIGHT_CLASS_NORMAL max_combined_w_class = 100 var/works_from_distance = 0 var/pshoom_or_beepboopblorpzingshadashwoosh = 'sound/items/rped.ogg' @@ -25,16 +25,16 @@ if(istype(T)) if(T.component_parts) T.exchange_parts(user, src) - user.Beam(T,icon_state="rped_upgrade",icon='icons/effects/effects.dmi',time=5) + user.Beam(T,icon_state="rped_upgrade",time=5) return /obj/item/weapon/storage/part_replacer/bluespace name = "bluespace rapid part exchange device" desc = "A version of the RPED that allows for replacement of parts and scanning from a distance, along with higher capacity for parts." icon_state = "BS_RPED" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL storage_slots = 400 - max_w_class = 3 + max_w_class = WEIGHT_CLASS_NORMAL max_combined_w_class = 800 works_from_distance = 1 pshoom_or_beepboopblorpzingshadashwoosh = 'sound/items/PSHOOM.ogg' @@ -45,7 +45,7 @@ if(get_dist(user, dest_object) < 8) if(dest_object.storage_contents_dump_act(src, user)) play_rped_sound() - user.Beam(dest_object,icon_state="rped_upgrade",icon='icons/effects/effects.dmi',time=5) + user.Beam(dest_object,icon_state="rped_upgrade",time=5) return 1 user << "The [src.name] buzzes." playsound(src, 'sound/machines/buzz-sigh.ogg', 50, 0) @@ -67,7 +67,7 @@ name = "stock part" desc = "What?" icon = 'icons/obj/stock_parts.dmi' - w_class = 2 + w_class = WEIGHT_CLASS_SMALL var/rating = 1 /obj/item/weapon/stock_parts/New() @@ -301,4 +301,4 @@ icon = 'icons/obj/stock_parts.dmi' icon_state = "capacitor" desc = "A debug item for research." - origin_tech = "materials=8;programming=8;magnets=8;powerstorage=8;bluespace=8;combat=8;biotech=8;syndicate=8;engineering=8;plasmatech=8" + origin_tech = "materials=8;programming=8;magnets=8;powerstorage=8;bluespace=8;combat=8;biotech=8;syndicate=8;engineering=8;plasmatech=8;abductor=8" diff --git a/code/modules/research/xenobiology/xenobio_camera.dm b/code/modules/research/xenobiology/xenobio_camera.dm index 2bfbd3b404..4dafb874e0 100644 --- a/code/modules/research/xenobiology/xenobio_camera.dm +++ b/code/modules/research/xenobiology/xenobio_camera.dm @@ -28,7 +28,6 @@ icon_screen = "slime_comp" icon_keyboard = "rd_key" - light_color = LIGHT_COLOR_PINK /obj/machinery/computer/camera_advanced/xenobio/CreateEye() eyeobj = new /mob/camera/aiEye/remote/xenobio() @@ -66,10 +65,20 @@ /obj/machinery/computer/camera_advanced/xenobio/attackby(obj/item/O, mob/user, params) if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/monkeycube)) monkeys++ - user << "You feed [O] to the [src]. It now has [monkeys] monkey cubes stored." + user << "You feed [O] to [src]. It now has [monkeys] monkey cubes stored." user.drop_item() qdel(O) return + else if(istype(O, /obj/item/weapon/storage/bag)) + var/obj/item/weapon/storage/P = O + var/loaded = 0 + for(var/obj/G in P.contents) + if(istype(G, /obj/item/weapon/reagent_containers/food/snacks/monkeycube)) + loaded = 1 + monkeys++ + qdel(G) + if (loaded) + user << "You fill [src] with the monkey cubes stored in [O]. [src] now has [monkeys] monkey cubes stored." ..() /datum/action/innate/camera_off/xenobio/Activate() diff --git a/code/modules/research/xenobiology/xenobiology.dm b/code/modules/research/xenobiology/xenobiology.dm index f284506384..e4db8188aa 100644 --- a/code/modules/research/xenobiology/xenobiology.dm +++ b/code/modules/research/xenobiology/xenobiology.dm @@ -7,12 +7,13 @@ icon = 'icons/mob/slimes.dmi' icon_state = "grey slime extract" force = 1 - w_class = 1 + w_class = WEIGHT_CLASS_TINY throwforce = 0 throw_speed = 3 throw_range = 6 origin_tech = "biotech=3" var/Uses = 1 // uses before it goes inert + var/qdel_timer = null // deletion timer, for delayed reactions /obj/item/slime_extract/attackby(obj/item/O, mob/user) if(istype(O, /obj/item/slimepotion/enhancer)) @@ -121,7 +122,7 @@ /obj/item/slimepotion name = "slime potion" desc = "A hard yet gelatinous capsule excreted by a slime, containing mysterious substances." - w_class = 1 + w_class = WEIGHT_CLASS_TINY origin_tech = "biotech=4" /obj/item/slimepotion/afterattack(obj/item/weapon/reagent_containers/target, mob/user , proximity) @@ -133,7 +134,7 @@ name = "docility potion" desc = "A potent chemical mix that nullifies a slime's hunger, causing it to become docile and tame." icon = 'icons/obj/chemical.dmi' - icon_state = "bottle19" + icon_state = "potsilver" /obj/item/slimepotion/docility/attack(mob/living/simple_animal/slime/M, mob/user) if(!isslime(M)) @@ -156,10 +157,10 @@ qdel(src) /obj/item/slimepotion/sentience - name = "sentience potion" - desc = "A miraculous chemical mix that can raise the intelligence of creatures to human levels. Unlike normal slime potions, it can be absorbed by any nonsentient being." + name = "intelligence potion" + desc = "A miraculous chemical mix that grants human like intelligence to living beings." icon = 'icons/obj/chemical.dmi' - icon_state = "bottle19" + icon_state = "potpink" origin_tech = "biotech=6" var/list/not_interested = list() var/being_used = 0 @@ -184,17 +185,17 @@ user << "You offer the sentience potion to [SM]..." being_used = 1 - var/list/mob/dead/observer/candidates = pollCandidates("Do you want to play as [SM.name]?", ROLE_ALIEN, null, ROLE_ALIEN, 50) + var/list/candidates = pollCandidatesForMob("Do you want to play as [SM.name]?", ROLE_ALIEN, null, ROLE_ALIEN, 50, SM, POLL_IGNORE_SENTIENCE_POTION) // see poll_ignore.dm var/mob/dead/observer/theghost = null if(candidates.len) theghost = pick(candidates) SM.key = theghost.key SM.languages_spoken |= HUMAN SM.languages_understood |= HUMAN - SM.faction = user.faction + SM.mind.enslave_mind_to_creator(user) SM.sentience_act() SM << "All at once it makes sense: you know what you are and who you are! Self awareness is yours!" - SM << "You are grateful to be self aware and owe [user] a great debt. Serve [user], and assist them in completing their goals at any cost." + SM << "You are grateful to be self aware and owe [user] a great debt. Serve [user], and assist [user.p_them()] in completing [user.p_their()] goals at any cost." user << "[SM] accepts the potion and suddenly becomes attentive and aware. It worked!" qdel(src) else @@ -206,7 +207,7 @@ name = "consciousness transference potion" desc = "A strange slime-based chemical that, when used, allows the user to transfer their consciousness to a lesser being." icon = 'icons/obj/chemical.dmi' - icon_state = "bottle6" + icon_state = "potorange" origin_tech = "biotech=6" var/prompted = 0 var/animal_type = SENTIENCE_ORGANIC @@ -239,7 +240,7 @@ user.mind.transfer_to(SM) SM.languages_spoken = user.languages_spoken SM.languages_understood = user.languages_understood - SM.faction = user.faction + SM.faction = user.faction.Copy() SM.sentience_act() //Same deal here as with sentience user.death() SM << "In a quick flash, you feel your consciousness flow into [SM]!" @@ -251,7 +252,7 @@ name = "slime steroid" desc = "A potent chemical mix that will cause a baby slime to generate more extract." icon = 'icons/obj/chemical.dmi' - icon_state = "bottle16" + icon_state = "potred" /obj/item/slimepotion/steroid/attack(mob/living/simple_animal/slime/M, mob/user) if(!isslime(M))//If target is not a slime. @@ -275,13 +276,13 @@ name = "extract enhancer" desc = "A potent chemical mix that will give a slime extract an additional use." icon = 'icons/obj/chemical.dmi' - icon_state = "bottle17" + icon_state = "potpurple" /obj/item/slimepotion/stabilizer name = "slime stabilizer" desc = "A potent chemical mix that will reduce the chance of a slime mutating." icon = 'icons/obj/chemical.dmi' - icon_state = "bottle15" + icon_state = "potcyan" /obj/item/slimepotion/stabilizer/attack(mob/living/simple_animal/slime/M, mob/user) if(!isslime(M)) @@ -302,7 +303,7 @@ name = "slime mutator" desc = "A potent chemical mix that will increase the chance of a slime mutating." icon = 'icons/obj/chemical.dmi' - icon_state = "bottle3" + icon_state = "potgreen" /obj/item/slimepotion/mutator/attack(mob/living/simple_animal/slime/M, mob/user) if(!isslime(M)) @@ -327,7 +328,7 @@ name = "slime speed potion" desc = "A potent chemical mix that will remove the slowdown from any item." icon = 'icons/obj/chemical.dmi' - icon_state = "bottle3" + icon_state = "potyellow" origin_tech = "biotech=5" /obj/item/slimepotion/speed/afterattack(obj/C, mob/user) @@ -350,7 +351,8 @@ V.vehicle_move_delay = 0 user <<"You slather the red gunk over the [C], making it faster." - C.color = "#FF0000" + C.remove_atom_colour(WASHABLE_COLOUR_PRIORITY) + C.add_atom_colour("#FF0000", FIXED_COLOUR_PRIORITY) qdel(src) @@ -358,7 +360,7 @@ name = "slime chill potion" desc = "A potent chemical mix that will fireproof any article of clothing. Has three uses." icon = 'icons/obj/chemical.dmi' - icon_state = "bottle17" + icon_state = "potblue" origin_tech = "biotech=5" var/uses = 3 @@ -375,14 +377,39 @@ return ..() user <<"You slather the blue gunk over the [C], fireproofing it." C.name = "fireproofed [C.name]" - C.color = "#000080" + 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.heat_protection = C.body_parts_covered - C.burn_state = FIRE_PROOF + C.resistance_flags |= FIRE_PROOF uses -- if(!uses) qdel(src) +/obj/item/slimepotion/genderchange + name = "gender change potion" + desc = "An interesting chemical mix that changes the biological gender of what its applied to. Cannot be used on things that lack gender entirely." + icon = 'icons/obj/chemical.dmi' + icon_state = "potlightpink" + +/obj/item/slimepotion/genderchange/attack(mob/living/L, mob/user) + if(!istype(L) || L.stat == DEAD) + user << "The potion can only be used on living things!" + return + + if(L.gender != MALE && L.gender != FEMALE) + user << "The potion can only be used on gendered things!" + return + + if(L.gender == MALE) + L.gender = FEMALE + L.visible_message("[L] suddenly looks more feminine!") + else + L.gender = MALE + L.visible_message("[L] suddenly looks more masculine!") + L.regenerate_icons() + qdel(src) + ////////Adamantine Golem stuff I dunno where else to put it // This will eventually be removed. @@ -394,6 +421,7 @@ item_state = "golem" item_color = "golem" flags = ABSTRACT | NODROP + resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF has_sensor = 0 /obj/item/clothing/suit/golem @@ -401,11 +429,12 @@ desc = "a golem's thick outter shell" icon_state = "golem" item_state = "golem" - w_class = 4//bulky item + w_class = WEIGHT_CLASS_BULKY gas_transfer_coefficient = 0.90 permeability_coefficient = 0.50 body_parts_covered = FULL_BODY flags_inv = HIDEGLOVES | HIDESHOES | HIDEJUMPSUIT + resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF flags = ABSTRACT | NODROP /obj/item/clothing/shoes/golem @@ -413,6 +442,7 @@ desc = "sturdy adamantine feet" icon_state = "golem" item_state = null + resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF flags = NOSLIP | ABSTRACT | NODROP @@ -422,7 +452,7 @@ icon_state = "golem" item_state = "golem" siemens_coefficient = 0 - unacidable = 1 + resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF flags = ABSTRACT | NODROP @@ -433,6 +463,7 @@ item_state = null siemens_coefficient = 0 flags = ABSTRACT | NODROP + resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF /obj/item/clothing/head/space/golem @@ -441,7 +472,7 @@ item_color = "dermal" name = "golem's head" desc = "a golem's head" - unacidable = 1 + resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF flags = ABSTRACT | NODROP /obj/effect/golemrune @@ -450,7 +481,7 @@ name = "rune" icon = 'icons/obj/rune.dmi' icon_state = "golem" - unacidable = 1 + resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF layer = TURF_LAYER /obj/effect/golemrune/New() @@ -496,34 +527,12 @@ G.dna.species.auto_equip(G) G.loc = src.loc G.key = ghost.key - G << "You are an adamantine golem. You move slowly, but are highly resistant to heat and cold as well as blunt trauma. You are unable to wear clothes, but can still use most tools. Serve [user], and assist them in completing their goals at any cost." + G << "You are an adamantine golem. You move slowly, but are highly resistant to heat and cold as well as blunt trauma. You are unable to wear clothes, but can still use most tools. \ + Serve [user], and assist [user.p_them()] in completing their goals at any cost." G.mind.store_memory("Serve [user.real_name], your creator.") - var/golem_becomes_antag = FALSE - if(iscultist(user)) //If the golem's master is a part of a team antagonist, immediately make the golem one, too - ticker.mode.add_cultist(G.mind) - golem_becomes_antag = TRUE - else if(is_gangster(user)) - ticker.mode.add_gangster(G.mind, user.mind.gang_datum, TRUE) - golem_becomes_antag = TRUE - else if(is_handofgod_redcultist(user) || is_handofgod_redprophet(user)) - ticker.mode.add_hog_follower(G.mind, "Red") - golem_becomes_antag = TRUE - else if(is_handofgod_bluecultist(user) || is_handofgod_blueprophet(user)) - ticker.mode.add_hog_follower(G.mind, "Blue") - golem_becomes_antag = TRUE - else if(is_revolutionary_in_general(user)) - ticker.mode.add_revolutionary(G.mind) - golem_becomes_antag = TRUE - else if(is_servant_of_ratvar(user)) - add_servant_of_ratvar(G) - golem_becomes_antag = TRUE + G.mind.enslave_mind_to_creator(user) - G.mind.enslaved_to = user - if(golem_becomes_antag) - G << "Despite your servitude to another cause, your true master remains [user.real_name]. This will never change unless your master's body is destroyed." - if(user.mind.special_role) - message_admins("[key_name_admin(G)](?) has been summoned by [key_name_admin(user)](?), an antagonist.") log_game("[key_name(G)] was made a golem by [key_name(user)].") log_admin("[key_name(G)] was made a golem by [key_name(user)].") qdel(src) @@ -540,7 +549,6 @@ layer = FLY_LAYER pixel_x = -64 pixel_y = -64 - unacidable = 1 mouse_opacity = 0 var/mob/living/immune = list() // the one who creates the timestop is immune var/list/stopped_atoms = list() @@ -560,13 +568,13 @@ playsound(get_turf(src), 'sound/magic/TIMEPARADOX2.ogg', 100, 1, -1) for(var/i in 1 to duration-1) for(var/atom/A in orange (freezerange, src.loc)) - if(istype(A, /mob/living)) + if(isliving(A)) var/mob/living/M = A if(M in immune) continue M.Stun(10, 1, 1) M.anchored = 1 - if(istype(M, /mob/living/simple_animal/hostile)) + if(ishostile(M)) var/mob/living/simple_animal/hostile/H = M H.AIStatus = AI_OFF H.LoseTarget() @@ -596,7 +604,7 @@ /obj/effect/timestop/proc/unfreeze_mob(mob/living/M) M.AdjustStunned(-10, 1, 1) M.anchored = 0 - if(istype(M, /mob/living/simple_animal/hostile)) + if(ishostile(M)) var/mob/living/simple_animal/hostile/H = M H.AIStatus = initial(H.AIStatus) @@ -610,7 +618,7 @@ singular_name = "floor tile" desc = "Through a series of micro-teleports these tiles let people move at incredible speeds" icon_state = "tile-bluespace" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL force = 6 materials = list(MAT_METAL=500) throwforce = 10 @@ -621,19 +629,12 @@ turf_type = /turf/open/floor/bluespace -/turf/open/floor/bluespace - slowdown = -1 - icon_state = "bluespace" - desc = "Through a series of micro-teleports these tiles let people move at incredible speeds" - floor_tile = /obj/item/stack/tile/bluespace - - /obj/item/stack/tile/sepia name = "sepia floor tile" singular_name = "floor tile" desc = "Time seems to flow very slowly around these tiles" icon_state = "tile-sepia" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL force = 6 materials = list(MAT_METAL=500) throwforce = 10 @@ -644,13 +645,6 @@ turf_type = /turf/open/floor/sepia -/turf/open/floor/sepia - slowdown = 2 - icon_state = "sepia" - desc = "Time seems to flow very slowly around these tiles" - floor_tile = /obj/item/stack/tile/sepia - - /obj/item/areaeditor/blueprints/slime name = "cerulean prints" desc = "A one use yet of blueprints made of jelly like organic material. Renaming an area to 'Xenobiology Lab' will extend the reach of the management console." @@ -661,5 +655,6 @@ var/area/A = get_area(src) if(success) for(var/turf/T in A) - T.color = "#2956B2" + T.remove_atom_colour(WASHABLE_COLOUR_PRIORITY) + T.add_atom_colour("#2956B2", FIXED_COLOUR_PRIORITY) qdel(src) diff --git a/code/modules/ruins/lavaland_ruin_code.dm b/code/modules/ruins/lavaland_ruin_code.dm index f47ccb727e..489aa40870 100644 --- a/code/modules/ruins/lavaland_ruin_code.dm +++ b/code/modules/ruins/lavaland_ruin_code.dm @@ -1,11 +1,5 @@ //If you're looking for spawners like ash walker eggs, check ghost_role_spawners.dm -/obj/machinery/lavaland_controller - name = "weather machine" - desc = "Controls the weather... when it's on, at any rate. A sticky note on the side proclaims \"DISABLED IN FAVOR OF AN ACTUAL ATMOSPHERE\"." - icon = 'icons/obj/machines/telecomms.dmi' - icon_state = "processor_off" - /obj/structure/fans/tiny/invisible //For blocking air in ruin doorways invisibility = INVISIBILITY_ABSTRACT @@ -28,11 +22,12 @@ name = "Golem Creation Disk" desc = "A gift from the Liberator." icon_state = "datadisk1" + max_blueprints = 1 /obj/item/weapon/disk/design_disk/golem_shell/New() ..() var/datum/design/golem_shell/G = new - blueprint = G + blueprints[1] = G /datum/design/golem_shell name = "Golem Shell Construction" @@ -49,6 +44,8 @@ icon = 'icons/obj/wizard.dmi' icon_state = "construct" desc = "The incomplete body of a golem. Add ten sheets of any mineral to finish." + var/shell_type = /obj/effect/mob_spawn/human/golem + var/has_owner = FALSE //if the resulting golem obeys someone /obj/item/golem_shell/attackby(obj/item/I, mob/user, params) ..() @@ -59,6 +56,15 @@ if(istype(O, /obj/item/stack/sheet/metal)) species = /datum/species/golem + if(istype(O, /obj/item/stack/sheet/glass)) + species = /datum/species/golem/glass + + if(istype(O, /obj/item/stack/sheet/plasteel)) + species = /datum/species/golem/plasteel + + if(istype(O, /obj/item/stack/sheet/mineral/sandstone)) + species = /datum/species/golem/sand + if(istype(O, /obj/item/stack/sheet/mineral/plasma)) species = /datum/species/golem/plasma @@ -74,13 +80,68 @@ if(istype(O, /obj/item/stack/sheet/mineral/uranium)) species = /datum/species/golem/uranium + if(istype(O, /obj/item/stack/sheet/mineral/bananium)) + species = /datum/species/golem/bananium + + if(istype(O, /obj/item/stack/sheet/mineral/titanium)) + species = /datum/species/golem/titanium + + if(istype(O, /obj/item/stack/sheet/mineral/plastitanium)) + species = /datum/species/golem/plastitanium + + if(istype(O, /obj/item/stack/sheet/mineral/abductor)) + species = /datum/species/golem/alloy + + if(istype(O, /obj/item/stack/sheet/mineral/wood)) + species = /datum/species/golem/wood + + if(istype(O, /obj/item/stack/sheet/bluespace_crystal)) + species = /datum/species/golem/bluespace + if(species) if(O.use(10)) user << "You finish up the golem shell with ten sheets of [O]." - var/obj/effect/mob_spawn/human/golem/G = new(get_turf(src)) + var/obj/effect/mob_spawn/human/golem/G = new shell_type(get_turf(src)) G.mob_species = species + var/datum/species/golem/S = species + G.name += " ([initial(S.id)])" + if(has_owner) + G.owner = user qdel(src) else user << "You need at least ten sheets to finish a golem." else - user << "You can't build a golem out of this kind of material." \ No newline at end of file + user << "You can't build a golem out of this kind of material." + +//made with xenobiology, the golem obeys its creator +/obj/item/golem_shell/artificial + name = "incomplete artificial golem shell" + has_owner = TRUE + + +///Syndicate Listening Post +/obj/effect/mob_spawn/human/lavaland_syndicate + r_hand = /obj/item/weapon/gun/ballistic/automatic/sniper_rifle + name = "Syndicate Bioweapon Scientist" + uniform = /obj/item/clothing/under/syndicate + suit = /obj/item/clothing/suit/toggle/labcoat + shoes = /obj/item/clothing/shoes/combat + gloves = /obj/item/clothing/gloves/combat + radio = /obj/item/device/radio/headset/syndicate/alt + back = /obj/item/weapon/storage/backpack + pocket1 = /obj/item/weapon/gun/ballistic/automatic/pistol + pocket2 = /obj/item/weapon/card/id/syndicate/anyone + roundstart = FALSE + death = FALSE + icon = 'icons/obj/Cryogenic2.dmi' + icon_state = "sleeper" + has_id = 1 + flavour_text = "You are a syndicate agent, employed in a top secret research facility developing biological weapons. Unfortunatley, your hated enemy, Nanotrasen, has begun mining in this sector. Continue your research as best you can, and try to keep a low profile. Do not abandon the base without good cause. The base is rigged with explosives should the worst happen, do not let the base fall into enemy hands!" + +/obj/effect/mob_spawn/human/lavaland_syndicate/comms + name = "Syndicate Comms Agent" + r_hand = /obj/item/weapon/melee/energy/sword/saber + mask = /obj/item/clothing/mask/chameleon + suit = /obj/item/clothing/suit/armor/vest + flavour_text = "You are a syndicate agent, employed in a top secret research facility developing biological weapons. Unfortunatley, your hated enemy, Nanotrasen, has begun mining in this sector. Monitor enemy activity as best you can, and try to keep a low profile. Do not abandon the base without good cause. Use the communication equipment to provide support to any field agents, and sow disinformation to throw Nanotrasen off your trail. Do not let the base fall into enemy hands!" + pocket2 = /obj/item/weapon/card/id/syndicate/anyone \ No newline at end of file diff --git a/code/modules/ruins/objects_and_mobs/ash_walker_den.dm b/code/modules/ruins/objects_and_mobs/ash_walker_den.dm index 98e67d0e62..c110cc2a5d 100644 --- a/code/modules/ruins/objects_and_mobs/ash_walker_den.dm +++ b/code/modules/ruins/objects_and_mobs/ash_walker_den.dm @@ -24,7 +24,7 @@ if(H.stat) visible_message("Serrated tendrils eagerly pull [H] to [src], tearing the body apart as its blood seeps over the eggs.") playsound(get_turf(src),'sound/magic/Demon_consume.ogg', 100, 1) - if(istype(H,/mob/living/simple_animal/hostile/megafauna/dragon)) + if(ismegafauna(H)) meat_counter += 20 else meat_counter ++ diff --git a/code/modules/ruins/objects_and_mobs/necropolis_gate.dm b/code/modules/ruins/objects_and_mobs/necropolis_gate.dm index ffdf2ad6eb..ec40df76a4 100644 --- a/code/modules/ruins/objects_and_mobs/necropolis_gate.dm +++ b/code/modules/ruins/objects_and_mobs/necropolis_gate.dm @@ -1,5 +1,5 @@ //The necropolis gate is used to call forth Legion from the Necropolis. -/obj/structure/lavaland_door +/obj/structure/necropolis_gate name = "necropolis gate" desc = "A tremendous and impossibly large gateway, bored into dense bedrock." icon = 'icons/effects/96x96.dmi' @@ -9,12 +9,13 @@ opacity = 1 bound_width = 96 bound_height = 96 - burn_state = LAVA_PROOF + pixel_x = -32 + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF luminosity = 1 var/boss = FALSE var/is_anyone_home = FALSE -/obj/structure/lavaland_door/attack_hand(mob/user) +/obj/structure/necropolis_gate/attack_hand(mob/user) for(var/mob/living/simple_animal/hostile/megafauna/legion/L in mob_list) return if(is_anyone_home) @@ -51,10 +52,10 @@ is_anyone_home = FALSE new/mob/living/simple_animal/hostile/megafauna/legion(get_step(src.loc, SOUTH)) -/obj/structure/lavaland_door/singularity_pull() +/obj/structure/necropolis_gate/singularity_pull() return 0 -/obj/structure/lavaland_door/Destroy(force) +/obj/structure/necropolis_gate/Destroy(force) if(force) . = ..() else diff --git a/code/modules/ruins/objects_and_mobs/ruin_mapping_aids.dm b/code/modules/ruins/objects_and_mobs/ruin_mapping_aids.dm new file mode 100644 index 0000000000..0e7a6268ac --- /dev/null +++ b/code/modules/ruins/objects_and_mobs/ruin_mapping_aids.dm @@ -0,0 +1,15 @@ +//These landmarks can be placed in rooms/ruins to set the baseturfs of every turf in the area. Easier than having potentially unlimited subtypes of every turf or having to manually edit the turfs in the map editor + +/obj/effect/baseturf_helper + name = "lava baseturf editor" + icon = 'icons/obj/weapons.dmi' + icon_state = "syndballoon" + var/baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + +/obj/effect/baseturf_helper/initialize() + ..() + var/area/thearea = get_area(src) + for(var/turf/T in get_area_turfs(thearea, z)) + if(T.baseturf != T.type) //Don't break indestructible walls and the like + T.baseturf = baseturf + qdel(src) \ No newline at end of file diff --git a/code/modules/ruins/objects_and_mobs/sin_ruins.dm b/code/modules/ruins/objects_and_mobs/sin_ruins.dm index 7a71d8f5ae..0d9550ba19 100644 --- a/code/modules/ruins/objects_and_mobs/sin_ruins.dm +++ b/code/modules/ruins/objects_and_mobs/sin_ruins.dm @@ -20,7 +20,7 @@ user << "No... just one more try..." user.gib() else - user.visible_message("[user], pulls [src]'s lever with a glint in their eyes!", "You feel a draining as you pull the lever, but you \ + user.visible_message("[user] pulls [src]'s lever with a glint in [user.p_their()] eyes!", "You feel a draining as you pull the lever, but you \ know it'll be worth it.") icon_state = "slots2" playsound(src, 'sound/lavaland/cursed_slot_machine.ogg', 50, 0) @@ -79,7 +79,7 @@ /obj/effect/gluttony/CanPass(atom/movable/mover, turf/target, height=0)//So bullets will fly over and stuff. if(height==0) return 1 - if(istype(mover, /mob/living/carbon/human)) + if(ishuman(mover)) var/mob/living/carbon/human/H = mover if(H.nutrition >= NUTRITION_LEVEL_FAT) H.visible_message("[H] pushes through [src]!", "You've seen and eaten worse than this.") @@ -97,7 +97,7 @@ icon_state = "magic_mirror" /obj/structure/mirror/magic/pride/curse(mob/user) - user.visible_message("The ground splits beneath [user] as their hand leaves the mirror!", \ + user.visible_message("The ground splits beneath [user] as [user.p_their()] hand leaves the mirror!", \ "Perfect. Much better! Now nobody will be able to resist yo-") var/turf/T = get_turf(user) T.ChangeTurf(/turf/open/chasm/straight_down) @@ -114,7 +114,7 @@ item_state = "render" force = 18 throwforce = 10 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL hitsound = 'sound/weapons/bladeslice.ogg' /obj/item/weapon/kitchen/knife/envy/afterattack(atom/movable/AM, mob/living/carbon/human/user, proximity) @@ -123,7 +123,7 @@ return if(!istype(user)) return - if(istype(AM, /mob/living/carbon/human)) + if(ishuman(AM)) var/mob/living/carbon/human/H = AM if(user.real_name != H.dna.real_name) user.real_name = H.dna.real_name diff --git a/code/modules/shuttle/computer.dm b/code/modules/shuttle/computer.dm index ee0c8fe202..b179fec67e 100644 --- a/code/modules/shuttle/computer.dm +++ b/code/modules/shuttle/computer.dm @@ -28,7 +28,7 @@ for(var/obj/docking_port/stationary/S in SSshuttle.stationary) if(!options.Find(S.id)) continue - if(M.canDock(S)) + if(!M.check_dock(S)) continue destination_found = 1 dat += "Send to [S.name]
    " @@ -76,5 +76,3 @@ emagged = 1 user << "You fried the consoles ID checking system." -/obj/machinery/computer/shuttle/fluff/New() - take_damage(100) diff --git a/code/modules/shuttle/emergency.dm b/code/modules/shuttle/emergency.dm index 7e43f0c611..1e1ef766f0 100644 --- a/code/modules/shuttle/emergency.dm +++ b/code/modules/shuttle/emergency.dm @@ -1,7 +1,7 @@ #define TIME_LEFT (SSshuttle.emergency.timeLeft()) -#define ENGINES_START_TIME 10 -#define ENGINES_STARTED (TIME_LEFT <= ENGINES_START_TIME) -#define IS_DOCKED (SSshuttle.emergency.mode == SHUTTLE_DOCKED) +#define ENGINES_START_TIME 100 +#define ENGINES_STARTED (SSshuttle.emergency.mode == SHUTTLE_IGNITING) +#define IS_DOCKED (SSshuttle.emergency.mode == SHUTTLE_DOCKED || (ENGINES_STARTED)) /obj/machinery/computer/emergency_shuttle name = "emergency shuttle console" @@ -86,8 +86,9 @@ if((old_len != authorized.len) && !ENGINES_STARTED) var/alert = (authorized.len > old_len) - if(authorized.len) - minor_announce("[auth_need - authorized.len] authorizations \ + var/remaining = auth_need - authorized.len + if(authorized.len && remaining) + minor_announce("[remaining] authorizations \ needed until shuttle is launched early", null, alert) else minor_announce("All authorizations to launch the shuttle \ @@ -125,10 +126,10 @@ // Check to see if we've reached criteria for early launch if((authorized.len >= auth_need) || emagged) // shuttle timers use 1/10th seconds internally - SSshuttle.emergency.setTimer(ENGINES_START_TIME * 10) + SSshuttle.emergency.setTimer(ENGINES_START_TIME) var/system_error = emagged ? "SYSTEM ERROR:" : null minor_announce("The emergency shuttle will launch in \ - [ENGINES_START_TIME] seconds", system_error, alert=TRUE) + [TIME_LEFT] seconds", system_error, alert=TRUE) . = TRUE /obj/machinery/computer/emergency_shuttle/emag_act(mob/user) @@ -136,13 +137,17 @@ if(!IS_DOCKED) return + if(emagged || ENGINES_STARTED) //SYSTEM ERROR: THE SHUTTLE WILL LA-SYSTEM ERROR: THE SHUTTLE WILL LA-SYSTEM ERROR: THE SHUTTLE WILL LAUNCH IN 10 SECONDS + user << "The shuttle is already about to launch!" + return + var/time = TIME_LEFT message_admins("[key_name_admin(user.client)] \ (?) \ (FLW) \ has emagged the emergency shuttle [time] seconds before launch.", 0, 1) log_game("[key_name(user)] has emagged the emergency shuttle in \ - ([x],[y],[z]) [time] seconds before launch.") + [COORD(src)] [time] seconds before launch.") emagged = TRUE var/datum/species/S = new for(var/i in 1 to 10) @@ -155,12 +160,7 @@ authorized += ID - if(ENGINES_STARTED) - // Give them a message anyway - user << "The shuttle is already \ - about to launch!" - else - process() + process() /obj/machinery/computer/emergency_shuttle/Destroy() // Our fake IDs that the emag generated are just there for colour @@ -168,6 +168,9 @@ for(var/obj/item/weapon/card/id/ID in src) qdel(ID) + if(authorized && authorized.len) + authorized.Cut() + authorized = null . = ..() @@ -179,10 +182,12 @@ width = 22 height = 11 dir = EAST - travelDir = -90 + port_angle = -90 roundstart_move = "emergency_away" var/sound_played = 0 //If the launch sound has been sent to all players on the shuttle itself - var/end_sound_played = 0 //so it doesn't loop annoyingly + +/obj/docking_port/mobile/emergency/canDock(obj/docking_port/stationary/S) + return SHUTTLE_CAN_DOCK //If the emergency shuttle can't move, the whole game breaks, so it will force itself to land even if it has to crush a few departments in the process /obj/docking_port/mobile/emergency/register() . = ..() @@ -197,34 +202,14 @@ . = ..() -/obj/docking_port/mobile/emergency/timeLeft(divisor) - if(divisor <= 0) - divisor = 10 - if(!timer) - return round(SSshuttle.emergencyCallTime/divisor, 1) - - var/dtime = world.time - timer - switch(mode) - if(SHUTTLE_ESCAPE) - dtime = max(SSshuttle.emergencyEscapeTime - dtime, 0) - if(SHUTTLE_DOCKED) - dtime = max(SSshuttle.emergencyDockTime - dtime, 0) - else - dtime = max(SSshuttle.emergencyCallTime - dtime, 0) - return round(dtime/divisor, 1) - /obj/docking_port/mobile/emergency/request(obj/docking_port/stationary/S, coefficient=1, area/signalOrigin, reason, redAlert) - SSshuttle.emergencyCallTime = initial(SSshuttle.emergencyCallTime) * coefficient + var/call_time = SSshuttle.emergencyCallTime * coefficient switch(mode) - if(SHUTTLE_RECALL) + // The shuttle can not normally be called while "recalling", so + // if this proc is called, it's via admin fiat + if(SHUTTLE_RECALL, SHUTTLE_IDLE, SHUTTLE_CALL) mode = SHUTTLE_CALL - timer = world.time - timeLeft(1) - if(SHUTTLE_IDLE) - mode = SHUTTLE_CALL - timer = world.time - if(SHUTTLE_CALL) - if(world.time < timer) //this is just failsafe - timer = world.time + setTimer(call_time) else return @@ -239,7 +224,7 @@ if(mode != SHUTTLE_CALL) return - timer = world.time - timeLeft(1) + invertTimer() mode = SHUTTLE_RECALL if(prob(70)) @@ -248,14 +233,25 @@ SSshuttle.emergencyLastCallLoc = null priority_announce("The emergency shuttle has been recalled.[SSshuttle.emergencyLastCallLoc ? " Recall signal traced. Results can be viewed on any communications console." : "" ]", null, 'sound/AI/shuttlerecalled.ogg', "Priority") -/* -/obj/docking_port/mobile/emergency/findTransitDock() - . = SSshuttle.getDock("emergency_transit") - if(.) - return . - return ..() -*/ +/obj/docking_port/mobile/emergency/proc/is_hijacked() + var/has_people = FALSE + for(var/mob/living/player in player_list) + if(player.mind) + if(player.stat != DEAD) + if(issilicon(player)) //Borgs are technically dead anyways + continue + if(isanimal(player)) //animals don't count + continue + if(isbrain(player)) //also technically dead + continue + if(get_area(player) == areaInstance) + has_people = TRUE + var/location = get_turf(player.mind.current) + if(!(player.mind.special_role == "traitor" || player.mind.special_role == "Syndicate") && !istype(location, /turf/open/floor/plasteel/shuttle/red) && !istype(location, /turf/open/floor/mineral/plastitanium/brig)) + return FALSE + + return has_people /obj/docking_port/mobile/emergency/check() if(!timer) @@ -284,7 +280,7 @@ setTimer(20) return mode = SHUTTLE_DOCKED - timer = world.time + setTimer(SSshuttle.emergencyDockTime) send2irc("Server", "The Emergency Shuttle has docked with the station.") priority_announce("The Emergency Shuttle has docked with the station. You have [timeLeft(600)] minutes to board the Emergency Shuttle.", null, 'sound/AI/shuttledock.ogg', "Priority") feedback_add_details("emergency_shuttle", src.name) @@ -298,18 +294,37 @@ else G.dom_attempts = min(1,G.dom_attempts) - if(SHUTTLE_DOCKED) - if(time_left <= 60 && !sound_played) //4 seconds left:REV UP THOSE ENGINES BOYS. - should sync up with the launch + if(SHUTTLE_DOCKED) + if(time_left <= ENGINES_START_TIME) + mode = SHUTTLE_IGNITING + SSshuttle.checkHostileEnvironment() + if(mode == SHUTTLE_STRANDED) + return + for(var/A in SSshuttle.mobile) + var/obj/docking_port/mobile/M = A + if(M.launch_status == UNLAUNCHED) //Pods will not launch from the mine/planet, and other ships won't launch unless we tell them to. + M.check_transit_zone() + + if(SHUTTLE_IGNITING) + var/success = TRUE + SSshuttle.checkHostileEnvironment() + if(mode == SHUTTLE_STRANDED) + return + + success &= (check_transit_zone() == TRANSIT_READY) + for(var/A in SSshuttle.mobile) + var/obj/docking_port/mobile/M = A + if(M.launch_status == UNLAUNCHED) + success &= (M.check_transit_zone() == TRANSIT_READY) + if(!success) + setTimer(ENGINES_START_TIME) + + if(time_left <= 50 && !sound_played) //4 seconds left:REV UP THOSE ENGINES BOYS. - should sync up with the launch sound_played = 1 //Only rev them up once. for(var/area/shuttle/escape/E in world) E << 'sound/effects/hyperspace_begin.ogg' - if(time_left <= 0 && SSshuttle.emergencyNoEscape) - priority_announce("Hostile environment detected. Departure has been postponed indefinitely pending conflict resolution.", null, 'sound/misc/notice1.ogg', "Priority") - sound_played = 0 //Since we didn't launch, we will need to rev up the engines again next pass. - mode = SHUTTLE_STRANDED - if(time_left <= 0 && !SSshuttle.emergencyNoEscape) //move each escape pod (or applicable spaceship) to its corresponding transit dock for(var/A in SSshuttle.mobile) @@ -324,22 +339,22 @@ enterTransit() mode = SHUTTLE_ESCAPE launch_status = ENDGAME_LAUNCHED - timer = world.time + setTimer(SSshuttle.emergencyEscapeTime) priority_announce("The Emergency Shuttle has left the station. Estimate [timeLeft(600)] minutes until the shuttle docks at Central Command.", null, null, "Priority") - for(var/mob/Player in mob_list) - if(!istype(Player,/mob/living/silicon || /mob/living/simple_animal)) - if(Player.mind) - if(Player.stat != DEAD && !isbrain(Player)) - if(Player.z != 2) - Player << sound('sound/ambience/deserted.ogg', repeat = 0, wait = 0, volume = 50, channel = 1) + + if(SHUTTLE_STRANDED) + SSshuttle.checkHostileEnvironment() if(SHUTTLE_ESCAPE) - - - if(time_left <= 50 && !end_sound_played) //4 seconds left:Hyperspace trip completed. - should sync up with the landing - end_sound_played = 1 //Only rev them up once. + if(areaInstance.parallax_movedir && time_left <= PARALLAX_LOOP_TIME) + parallax_slowdown() for(var/area/shuttle/escape/E in world) E << 'sound/effects/hyperspace_end.ogg' + for(var/A in SSshuttle.mobile) + var/obj/docking_port/mobile/M = A + if(M.launch_status == ENDGAME_LAUNCHED) + if(istype(M, /obj/docking_port/mobile/pod)) + M.parallax_slowdown() if(time_left <= 0) //move each escape pod to its corresponding escape dock @@ -351,20 +366,18 @@ else continue //Mapping a new docking point for each ship mappers could potentially want docking with centcomm would take up lots of space, just let them keep flying off into the sunset for their greentext - //now move the actual emergency shuttle to centcomm - // for(var/area/shuttle/escape/E in world) - // E << 'sound/effects/hyperspace_end.ogg' - dock(SSshuttle.getDock("emergency_away")) + // now move the actual emergency shuttle to centcomm + // unless the shuttle is "hijacked" + var/destination_dock = "emergency_away" + if(is_hijacked()) + destination_dock = "emergency_syndicate" + minor_announce("Corruption detected in \ + shuttle navigation protocols. Please contact your \ + supervisor.", "SYSTEM ERROR:", alert=TRUE) + + dock_id(destination_dock) mode = SHUTTLE_ENDGAME timer = 0 - open_dock() - -/obj/docking_port/mobile/emergency/proc/open_dock() - for(var/obj/machinery/door/poddoor/shuttledock/D in airlocks) - var/turf/T = get_step(D, D.checkdir) - if(!istype(T,/turf/open/space)) - spawn(0) - D.open() /obj/docking_port/mobile/pod name = "escape pod" @@ -459,13 +472,14 @@ /obj/item/weapon/storage/pod/MouseDrop(over_object, src_location, over_location) if(security_level == SEC_LEVEL_RED || security_level == SEC_LEVEL_DELTA) - return ..() + . = ..() else usr << "The storage unit will only unlock during a Red or Delta security alert." /obj/item/weapon/storage/pod/attack_hand(mob/user) return + /obj/docking_port/mobile/emergency/backup name = "backup shuttle" id = "backup" diff --git a/code/modules/shuttle/ferry.dm b/code/modules/shuttle/ferry.dm index 06ea51b482..60e74e91a1 100644 --- a/code/modules/shuttle/ferry.dm +++ b/code/modules/shuttle/ferry.dm @@ -12,6 +12,7 @@ var/cooldown = 600 possible_destinations = "ferry_home" admin_controlled = 1 + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF /obj/machinery/computer/shuttle/ferry/request/Topic(href, href_list) ..() diff --git a/code/modules/shuttle/manipulator.dm b/code/modules/shuttle/manipulator.dm index 5a81863d01..0a9837e7b3 100644 --- a/code/modules/shuttle/manipulator.dm +++ b/code/modules/shuttle/manipulator.dm @@ -9,6 +9,9 @@ icon = 'icons/obj/machines/shuttle_manipulator.dmi' icon_state = "holograph_on" + anchored = TRUE + density = TRUE + // UI state variables var/datum/map_template/shuttle/selected @@ -30,9 +33,6 @@ add_overlay(hologram_projection) add_overlay(hologram_ship) -/obj/machinery/shuttle_manipulator/process() - return - /obj/machinery/shuttle_manipulator/ui_interact(mob/user, ui_key = "main", \ datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, \ datum/ui_state/state = admin_state) @@ -47,6 +47,8 @@ switch(mode) if(SHUTTLE_IDLE) . = "idle" + if(SHUTTLE_IGNITING) + . = "engines charging" if(SHUTTLE_RECALL) . = "recalled" if(SHUTTLE_CALL) @@ -217,7 +219,7 @@ // truthy value means that it cannot dock for some reason // but we can ignore the someone else docked error because we'll // be moving into their place shortly - if(result && (result != SHUTTLE_SOMEONE_ELSE_DOCKED)) + if((result != SHUTTLE_CAN_DOCK) && (result != SHUTTLE_SOMEONE_ELSE_DOCKED)) var/m = "Unsuccessful dock of [preview_shuttle] ([result])." WARNING(m) return diff --git a/code/modules/shuttle/on_move.dm b/code/modules/shuttle/on_move.dm new file mode 100644 index 0000000000..fdbf496ca1 --- /dev/null +++ b/code/modules/shuttle/on_move.dm @@ -0,0 +1,71 @@ +/atom/movable/proc/onShuttleMove(turf/T1, rotation) + if(rotation) + shuttleRotate(rotation) + loc = T1 + if (length(client_mobs_in_contents)) + update_parallax_contents() + return 1 + +/obj/onShuttleMove() + if(invisibility >= INVISIBILITY_ABSTRACT) + return 0 + . = ..() + +/atom/movable/light/onShuttleMove() + return 0 + +/obj/machinery/door/onShuttleMove() + . = ..() + if(!.) + return + addtimer(src, "close", 0, TIMER_UNIQUE) + // Close any attached airlocks as well + for(var/obj/machinery/door/D in orange(1, src)) + addtimer(src, "close", 0, TIMER_UNIQUE) + +/obj/machinery/door/airlock/onShuttleMove() + shuttledocked = 0 + for(var/obj/machinery/door/airlock/A in orange(1, src)) + A.shuttledocked = 0 + . = ..() + shuttledocked = 1 + for(var/obj/machinery/door/airlock/A in orange(1, src)) + A.shuttledocked = 1 +/mob/onShuttleMove() + if(!move_on_shuttle) + return 0 + . = ..() + if(!.) + return + if(client) + if(buckled) + shake_camera(src, 2, 1) // turn it down a bit come on + else + shake_camera(src, 7, 1) + +/mob/living/carbon/onShuttleMove() + . = ..() + if(!.) + return + if(!buckled) + Weaken(3) + +// Shuttle Rotation // + +/atom/proc/shuttleRotate(rotation) + //rotate our direction + setDir(angle2dir(rotation+dir2angle(dir))) + + //resmooth if need be. + if(smooth) + queue_smooth(src) + + //rotate the pixel offsets too. + if (pixel_x || pixel_y) + if (rotation < 0) + rotation += 360 + for (var/turntimes=rotation/90;turntimes>0;turntimes--) + var/oldPX = pixel_x + var/oldPY = pixel_y + pixel_x = oldPY + pixel_y = (oldPX*(-1)) diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm index fbf0d09f23..ed185319fb 100644 --- a/code/modules/shuttle/shuttle.dm +++ b/code/modules/shuttle/shuttle.dm @@ -8,17 +8,18 @@ //icon = 'icons/dirsquare.dmi' icon_state = "pinonfar" - unacidable = 1 + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF anchored = 1 var/id - dir = NORTH//this should point -away- from the dockingport door, ie towards the ship + // this should point -away- from the dockingport door, ie towards the ship + dir = NORTH var/width = 0 //size of covered area, perpendicular to dir - var/height = 0 //size of covered area, paralell to dir + var/height = 0 //size of covered area, parallel to dir var/dwidth = 0 //position relative to covered area, perpendicular to dir var/dheight = 0 //position relative to covered area, parallel to dir - //these objects are indestructable + //these objects are indestructible /obj/docking_port/Destroy(force) // unless you assert that you know what you're doing. Horrible things // may result. @@ -28,19 +29,23 @@ else return QDEL_HINT_LETMELIVE +/obj/docking_port/take_damage() + return + /obj/docking_port/singularity_pull() return /obj/docking_port/singularity_act() return 0 /obj/docking_port/shuttleRotate() return //we don't rotate with shuttles via this code. + //returns a list(x0,y0, x1,y1) where points 0 and 1 are bounding corners of the projected rectangle /obj/docking_port/proc/return_coords(_x, _y, _dir) - if(!_dir) + if(_dir == null) _dir = dir - if(!_x) + if(_x == null) _x = x - if(!_y) + if(_y == null) _y = y //byond's sin and cos functions are inaccurate. This is faster and perfectly accurate @@ -135,6 +140,7 @@ var/turf_type = /turf/open/space var/area_type = /area/space + var/last_dock_time /obj/docking_port/stationary/New() ..() @@ -151,38 +157,61 @@ //returns first-found touching shuttleport /obj/docking_port/stationary/get_docked() . = locate(/obj/docking_port/mobile) in loc - /* - for(var/turf/T in return_ordered_turfs()) - . = locate(/obj/docking_port/mobile) in loc - if(.) - return . - */ /obj/docking_port/stationary/transit name = "In Transit" turf_type = /turf/open/space/transit + var/list/turf/assigned_turfs = list() + var/area/shuttle/transit/assigned_area + var/obj/docking_port/mobile/owner /obj/docking_port/stationary/transit/New() ..() SSshuttle.transit += src +/obj/docking_port/stationary/transit/proc/dezone() + for(var/i in assigned_turfs) + var/turf/T = i + if(T.type == turf_type) + T.ChangeTurf(/turf/open/space) + T.flags |= UNUSED_TRANSIT_TURF + +/obj/docking_port/stationary/transit/Destroy(force=FALSE) + if(force) + SSshuttle.transit -= src + if(owner) + owner = null + if(assigned_turfs) + dezone() + assigned_turfs.Cut() + assigned_turfs = null + . = ..() + /obj/docking_port/mobile - icon_state = "mobile" name = "shuttle" icon_state = "pinonclose" var/area/shuttle/areaInstance var/timer //used as a timer (if you want time left to complete move, use timeLeft proc) - var/mode = SHUTTLE_IDLE //current shuttle mode (see /__DEFINES/stat.dm) - var/callTime = 150 //time spent in transit (deciseconds) + var/last_timer_length + + var/mode = SHUTTLE_IDLE //current shuttle mode + var/callTime = 100 //time spent in transit (deciseconds). Should not be lower then 10 seconds without editing the animation of the hyperspace ripples. + var/ignitionTime = 55 // time spent "starting the engines". Also rate limits how often we try to reserve transit space if its ever full of transiting shuttles. var/roundstart_move //id of port to send shuttle to at roundstart - var/travelDir = 0 //direction the shuttle would travel in + + // The direction the shuttle prefers to travel in + var/preferred_direction = NORTH + // And the angle from the front of the shuttle to the port + var/port_angle = 0 // used to be travelDir var/obj/docking_port/stationary/destination var/obj/docking_port/stationary/previous + var/obj/docking_port/stationary/transit/assigned_transit + var/launch_status = NOLAUNCH // A timid shuttle will not register itself with the shuttle subsystem @@ -202,6 +231,10 @@ /obj/docking_port/mobile/Destroy(force) if(force) SSshuttle.mobile -= src + destination = null + previous = null + assigned_transit = null + areaInstance = null . = ..() /obj/docking_port/mobile/initialize() @@ -225,7 +258,7 @@ //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 0 //0 means we can move + return TRUE //this is to check if this shuttle can physically dock at dock S /obj/docking_port/mobile/proc/canDock(obj/docking_port/stationary/S) @@ -233,7 +266,7 @@ return SHUTTLE_NOT_A_DOCKING_PORT if(istype(S, /obj/docking_port/stationary/transit)) - return FALSE + return SHUTTLE_CAN_DOCK if(dwidth > S.dwidth) return SHUTTLE_DWIDTH_TOO_LARGE @@ -258,41 +291,45 @@ // attempt to move us where we currently are, it will get weird. return SHUTTLE_ALREADY_DOCKED - return FALSE + return SHUTTLE_CAN_DOCK + +/obj/docking_port/mobile/proc/check_dock(obj/docking_port/stationary/S) + var/status = canDock(S) + if(status == SHUTTLE_CAN_DOCK) + return TRUE + else if(status == SHUTTLE_ALREADY_DOCKED) + // We're already docked there, don't need to do anything. + // Triggering shuttle movement code in place is weird + return FALSE + else + var/msg = "Shuttle [src] cannot dock at [S], error: [status]" + message_admins(msg) + return FALSE //call the shuttle to destination S /obj/docking_port/mobile/proc/request(obj/docking_port/stationary/S) - var/status = canDock(S) - if(status == SHUTTLE_ALREADY_DOCKED) - // We're already docked there, don't need to do anything. - // Triggering shuttle movement code in place is weird + if(!check_dock(S)) return - else if(status) - var/msg = "request(): shuttle [src] cannot dock at [S], \ - error: [status]" - message_admins(msg) - throw EXCEPTION(msg) switch(mode) if(SHUTTLE_CALL) if(S == destination) - if(world.time <= timer) - timer = world.time + if(timeLeft(1) < callTime) + setTimer(callTime) else destination = S - timer = world.time + setTimer(callTime) if(SHUTTLE_RECALL) if(S == destination) - timer = world.time - timeLeft(1) + setTimer(callTime - timeLeft(1)) else destination = S - timer = world.time + setTimer(callTime) mode = SHUTTLE_CALL - else + if(SHUTTLE_IDLE, SHUTTLE_IGNITING) destination = S - mode = SHUTTLE_CALL - timer = world.time - enterTransit() //hyperspace + mode = SHUTTLE_IGNITING + setTimer(ignitionTime) //recall the shuttle to where it was previously /obj/docking_port/mobile/proc/cancel() @@ -301,7 +338,7 @@ remove_ripples() - timer = world.time - timeLeft(1) + invertTimer() mode = SHUTTLE_RECALL /obj/docking_port/mobile/proc/enterTransit() @@ -309,7 +346,7 @@ // if(!destination) // return var/obj/docking_port/stationary/S0 = get_docked() - var/obj/docking_port/stationary/S1 = findTransitDock() + var/obj/docking_port/stationary/S1 = assigned_transit if(S1) if(dock(S1)) WARNING("shuttle \"[id]\" could not enter transit space. Docked at [S0 ? S0.id : "null"]. Transit dock [S1 ? S1.id : "null"].") @@ -318,24 +355,6 @@ else WARNING("shuttle \"[id]\" could not enter transit space. S0=[S0 ? S0.id : "null"] S1=[S1 ? S1.id : "null"]") -//default shuttleRotate -/atom/proc/shuttleRotate(rotation) - //rotate our direction - setDir(angle2dir(rotation+dir2angle(dir))) - - //resmooth if need be. - if(smooth) - queue_smooth(src) - - //rotate the pixel offsets too. - if (pixel_x || pixel_y) - if (rotation < 0) - rotation += 360 - for (var/turntimes=rotation/90;turntimes>0;turntimes--) - var/oldPX = pixel_x - var/oldPY = pixel_y - pixel_x = oldPY - pixel_y = (oldPX*(-1)) /obj/docking_port/mobile/proc/jumpToNullSpace() // Destroys the docking port and the shuttle contents. @@ -396,28 +415,23 @@ ripple_turfs += T1 return ripple_turfs + +/obj/docking_port/mobile/proc/check_poddoors() + for(var/obj/machinery/door/poddoor/shuttledock/pod in airlocks) + pod.check() + //this is the main proc. It instantly moves our mobile port to stationary port S1 //it handles all the generic behaviour, such as sanity checks, closing doors on the shuttle, stunning mobs, etc /obj/docking_port/mobile/proc/dock(obj/docking_port/stationary/S1, force=FALSE) + if(S1.get_docked() == src) + remove_ripples() + return // Crashing this ship with NO SURVIVORS if(!force) - var/status = canDock(S1) - if(status == SHUTTLE_ALREADY_DOCKED) - return status - else if(status) - var/msg = "dock(): shuttle [src] cannot dock at [S1], \ - error: [status]" - message_admins(msg) - return status - - if(canMove()) + if(!check_dock(S1)) + return -1 + if(!canMove()) return -1 - - closePortDoors() - -// //rotate transit docking ports, so we don't need zillions of variants -// if(istype(S1, /obj/docking_port/stationary/transit)) -// S1.setDir(turn(NORTH, -travelDir)) var/obj/docking_port/stationary/S0 = get_docked() var/turf_type = /turf/open/space @@ -428,6 +442,8 @@ if(S0.area_type) area_type = S0.area_type + var/destination_turf_type = S1.turf_type + var/list/L0 = return_ordered_turfs(x, y, z, dir, areaInstance) var/list/L1 = return_ordered_turfs(S1.x, S1.y, S1.z, S1.dir) @@ -442,11 +458,11 @@ if(!A0) A0 = new area_type(null) for(var/turf/T0 in L0) - var/area/old = T0.loc A0.contents += T0 - T0.change_area(old, A0) - - + if (istype(S1, /obj/docking_port/stationary/transit)) + areaInstance.parallax_movedir = preferred_direction + else + areaInstance.parallax_movedir = FALSE remove_ripples() //move or squish anything in the way ship at destination @@ -461,12 +477,11 @@ continue if(T0.type != T0.baseturf) //So if there is a hole in the shuttle we don't drag along the space/asteroid/etc to wherever we are going next T0.copyTurf(T1) - var/area/old = T1.loc + T1.baseturf = destination_turf_type areaInstance.contents += T1 - T1.change_area(old, areaInstance) //copy over air - if(istype(T1, /turf/open)) + if(isopenturf(T1)) var/turf/open/Ts1 = T1 Ts1.copy_air_with_tile(T0) @@ -477,110 +492,42 @@ if(rotation) T1.shuttleRotate(rotation) + //lighting stuff + T1.redraw_lighting() SSair.remove_from_active(T1) T1.CalculateAdjacentTurfs() SSair.add_to_active(T1,1) T0.ChangeTurf(turf_type) + T0.redraw_lighting() SSair.remove_from_active(T0) T0.CalculateAdjacentTurfs() SSair.add_to_active(T0,1) + check_poddoors() + S1.last_dock_time = world.time + loc = S1.loc setDir(S1.dir) -/atom/movable/proc/onShuttleMove(turf/T1, rotation) - if(rotation) - shuttleRotate(rotation) - loc = T1 - return 1 - -/obj/onShuttleMove() - if(invisibility >= INVISIBILITY_ABSTRACT) - return 0 - . = ..() - -/atom/movable/light/onShuttleMove() - return 0 - -/obj/machinery/door/onShuttleMove() - . = ..() - if(!.) - return - addtimer(src, "close", 0) - -/mob/onShuttleMove() - if(!move_on_shuttle) - return 0 - . = ..() - if(!.) - return - if(client) - if(buckled) - shake_camera(src, 2, 1) // turn it down a bit come on - else - shake_camera(src, 7, 1) - -/mob/living/carbon/onShuttleMove() - . = ..() - if(!.) - return - if(!buckled) - Weaken(3) - -/* - if(istype(S1, /obj/docking_port/stationary/transit)) - var/d = turn(dir, 180 + travelDir) - for(var/turf/open/space/transit/T in S1.return_ordered_turfs()) - T.pushdirection = d - T.update_icon() -*/ - - - -/obj/docking_port/mobile/proc/findTransitDock() - var/obj/docking_port/stationary/transit/T = SSshuttle.getDock("[id]_transit") - if(T && !canDock(T)) - return T - /obj/docking_port/mobile/proc/findRoundstartDock() - var/obj/docking_port/stationary/D - D = SSshuttle.getDock(roundstart_move) - - if(D) - return D + return SSshuttle.getDock(roundstart_move) /obj/docking_port/mobile/proc/dockRoundstart() - // Instead of spending a lot of time trying to work out where to place - // our shuttle, just create it somewhere empty and send it to where - // it should go - var/obj/docking_port/stationary/D = findRoundstartDock() - return dock(D) + . = dock_id(roundstart_move) + +/obj/docking_port/mobile/proc/dock_id(id) + var/port = SSshuttle.getDock(id) + if(port) + . = dock(port) + else + . = null /obj/effect/landmark/shuttle_import name = "Shuttle Import" -/* commented out due to issues with rotation - for(var/obj/docking_port/stationary/transit/S in SSshuttle.transit) - if(S.id) - continue - if(!canDock(S)) - return S -*/ - - -//shuttle-door closing is handled in the dock() proc whilst looping through turfs -//this one closes the door where we are docked at, if there is one there. -/obj/docking_port/mobile/proc/closePortDoors() - var/turf/T = get_step(loc, turn(dir,180)) - if(T) - var/obj/machinery/door/Door = locate() in T - if(Door) - addtimer(Door, "close", 0) - /obj/docking_port/mobile/proc/roadkill(list/L0, list/L1, dir) - var/list/hurt_mobs = list() for(var/i in 1 to L0.len) var/turf/T0 = L0[i] var/turf/T1 = L1[i] @@ -591,85 +538,128 @@ // The corresponding tile will not be changed, so no roadkill for(var/atom/movable/AM in T1) - if(isliving(AM) && (!(AM in hurt_mobs))) - hurt_mobs |= AM - var/mob/living/M = AM - if(M.buckled) - M.buckled.unbuckle_mob(M, 1) - if(M.pulledby) - M.pulledby.stop_pulling() - M.stop_pulling() - M.visible_message("[M] is hit by \ - a hyperspace ripple[M.anchored ? "":" and is thrown clear"]!", - "You feel an immense \ - crushing pressure as the space around you ripples.") - if(M.anchored) + if(ismob(AM)) + if(isliving(AM)) + var/mob/living/M = AM + if(M.buckled) + M.buckled.unbuckle_mob(M, 1) + if(M.pulledby) + M.pulledby.stop_pulling() + M.stop_pulling() + M.visible_message("[M] is hit by \ + a hyperspace ripple!", + "You feel an immense \ + crushing pressure as the space around you ripples.") M.gib() + + else //non-living mobs shouldn't be affected by shuttles, which is why this is an else + if(istype(AM, /obj/singularity) && !istype(AM, /obj/singularity/narsie)) //it's a singularity but not a god, ignore it. + continue + if(!AM.anchored) + step(AM, dir) else - M.Paralyse(10) - M.ex_act(2) - step(M, dir) - continue + qdel(AM) - if(!AM.anchored) - step(AM, dir) - else - qdel(AM) -/* -//used to check if atom/A is within the shuttle's bounding box -/obj/docking_port/mobile/proc/onShuttleCheck(atom/A) - var/turf/T = get_turf(A) - if(!T) - return 0 - - var/list/L = return_coords() - if(L[1] > L[3]) - L.Swap(1,3) - if(L[2] > L[4]) - L.Swap(2,4) - - if(L[1] <= T.x && T.x <= L[3]) - if(L[2] <= T.y && T.y <= L[4]) - return 1 - return 0 -*/ //used by shuttle subsystem to check timers /obj/docking_port/mobile/proc/check() - var/timeLeft = timeLeft(1) - if(!ripples.len && (timeLeft <= SHUTTLE_RIPPLE_TIME) && ((mode == SHUTTLE_CALL) || (mode == SHUTTLE_RECALL))) - create_ripples(destination) + check_effects() - if(timeLeft <= 0) - switch(mode) - if(SHUTTLE_CALL) - if(dock(destination)) - setTimer(20) //can't dock for some reason, try again in 2 seconds - return - if(SHUTTLE_RECALL) - if(dock(previous)) - setTimer(20) //can't dock for some reason, try again in 2 seconds - return - mode = SHUTTLE_IDLE - timer = 0 - destination = null + if(mode == SHUTTLE_IGNITING) + check_transit_zone() + if(timeLeft(1) > 0) + return + // If we can't dock or we don't have a transit slot, wait for 20 ds, + // then try again + switch(mode) + if(SHUTTLE_CALL) + if(dock(destination)) + setTimer(20) + return + if(SHUTTLE_RECALL) + if(dock(previous)) + setTimer(20) + return + if(SHUTTLE_IGNITING) + if(check_transit_zone() != TRANSIT_READY) + setTimer(20) + return + else + mode = SHUTTLE_CALL + setTimer(callTime) + enterTransit() + return + + mode = SHUTTLE_IDLE + timer = 0 + destination = null + +/obj/docking_port/mobile/proc/check_effects() + if(!ripples.len) + if((mode == SHUTTLE_CALL) || (mode == SHUTTLE_RECALL)) + if(timeLeft(1) <= SHUTTLE_RIPPLE_TIME) + create_ripples(destination) + + var/obj/docking_port/stationary/S0 = get_docked() + if(areaInstance.parallax_movedir && istype(S0, /obj/docking_port/stationary/transit) && timeLeft(1) <= PARALLAX_LOOP_TIME) + parallax_slowdown() + +/obj/docking_port/mobile/proc/parallax_slowdown() + areaInstance.parallax_movedir = FALSE + if(assigned_transit && assigned_transit.assigned_area) + assigned_transit.assigned_area.parallax_movedir = FALSE + var/list/L0 = return_ordered_turfs(x, y, z, dir, areaInstance) + for (var/thing in L0) + var/turf/T = thing + for (var/thing2 in T) + var/atom/movable/AM = thing2 + if (length(AM.client_mobs_in_contents)) + AM.update_parallax_contents() + +/obj/docking_port/mobile/proc/check_transit_zone() + if(assigned_transit) + return TRANSIT_READY + else + SSshuttle.request_transit_dock(src) /obj/docking_port/mobile/proc/setTimer(wait) - if(timer <= 0) - timer = world.time - timer += wait - timeLeft(1) + timer = world.time + wait + last_timer_length = wait + +/obj/docking_port/mobile/proc/modTimer(multiple) + var/time_remaining = timer - world.time + if(time_remaining < 0 || !last_timer_length) + return + time_remaining *= multiple + last_timer_length *= multiple + setTimer(time_remaining) + +/obj/docking_port/mobile/proc/invertTimer() + if(!last_timer_length) + return + var/time_remaining = timer - world.time + if(time_remaining > 0) + var/time_passed = last_timer_length - time_remaining + setTimer(time_passed) //returns timeLeft /obj/docking_port/mobile/proc/timeLeft(divisor) if(divisor <= 0) divisor = 10 + + var/ds_remaining if(!timer) - return round(callTime/divisor, 1) - return max( round((timer+callTime-world.time)/divisor,1), 0 ) + ds_remaining = callTime + else + ds_remaining = max(0, timer - world.time) + + . = round(ds_remaining / divisor, 1) // returns 3-letter mode string, used by status screens and mob status panel /obj/docking_port/mobile/proc/getModeStr() switch(mode) + if(SHUTTLE_IGNITING) + return "IGN" if(SHUTTLE_RECALL) return "RCL" if(SHUTTLE_CALL) @@ -705,23 +695,3 @@ dst = destination . += " towards [dst ? dst.name : "unknown location"] ([timeLeft(600)] minutes)" #undef DOCKING_PORT_HIGHLIGHT - - -/turf/proc/copyTurf(turf/T) - if(T.type != type) - var/obj/O - if(underlays.len) //we have underlays, which implies some sort of transparency, so we want to a snapshot of the previous turf as an underlay - O = new() - O.underlays.Add(T) - T.ChangeTurf(type) - if(underlays.len) - T.underlays = O.underlays - if(T.icon_state != icon_state) - T.icon_state = icon_state - if(T.icon != icon) - T.icon = icon - if(T.color != color) - T.color = color - if(T.dir != dir) - T.setDir(dir) - return T diff --git a/code/modules/shuttle/special.dm b/code/modules/shuttle/special.dm index 9a7ddfed20..73d850172f 100644 --- a/code/modules/shuttle/special.dm +++ b/code/modules/shuttle/special.dm @@ -57,7 +57,8 @@ name = "wabbajack altar" desc = "Whether you're sleeping or waking, it's going to be \ quite chaotic." - health = 1000 + obj_integrity = 1000 + max_integrity = 1000 verb_say = "chants" var/obj/machinery/power/emitter/energycannon/magical/our_statue var/list/mob/living/sleepers = list() @@ -94,12 +95,11 @@ // New sleepers for(var/i in found - sleepers) var/mob/living/L = i - L.color = "#800080" - L.visible_message("A strange purple glow \ - wraps itself around [L] as they suddenly fall unconcious.", + L.add_atom_colour("#800080", TEMPORARY_COLOUR_PRIORITY) + L.visible_message("A strange purple glow wraps itself around [L] as [L.p_they()] suddenly fall[L.p_s()] unconscious.", "[desc]") // Don't let them sit suround unconscious forever - addtimer(src, "sleeper_dreams", 100, FALSE, L) + addtimer(src, "sleeper_dreams", 100, TIMER_NORMAL, L) // Existing sleepers for(var/i in found) @@ -109,7 +109,7 @@ // Missing sleepers for(var/i in sleepers - found) var/mob/living/L = i - L.color = initial(L.color) + L.remove_atom_colour(TEMPORARY_COLOUR_PRIORITY, "#800080") L.visible_message("The glow from [L] fades \ away.") L.grab_ghost() @@ -185,9 +185,10 @@ // with CENTCOM_BARSTAFF) /obj/structure/table/wood/bar - burn_state = LAVA_PROOF + resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF flags = NODECONSTRUCT - health = 1000 + obj_integrity = 1000 + max_integrity = 1000 var/boot_dir = 1 /obj/structure/table/wood/bar/Crossed(atom/movable/AM) diff --git a/code/modules/shuttle/supply.dm b/code/modules/shuttle/supply.dm index b4077d5202..b896fc1f1e 100644 --- a/code/modules/shuttle/supply.dm +++ b/code/modules/shuttle/supply.dm @@ -1,8 +1,8 @@ var/list/blacklisted_cargo_types = typecacheof(list( /mob/living, - /obj/effect/blob, + /obj/structure/blob, /obj/effect/rune, - /obj/effect/spider/spiderling, + /obj/structure/spider/spiderling, /obj/item/weapon/disk/nuclear, /obj/machinery/nuclearbomb, /obj/item/device/radio/beacon, @@ -10,6 +10,7 @@ var/list/blacklisted_cargo_types = typecacheof(list( /obj/machinery/teleport/station, /obj/machinery/teleport/hub, /obj/machinery/telepad, + /obj/machinery/quantumpad, /obj/machinery/clonepod, /obj/effect/mob_spawn )) @@ -20,7 +21,7 @@ var/list/blacklisted_cargo_types = typecacheof(list( callTime = 600 dir = WEST - travelDir = 90 + port_angle = 90 width = 12 dwidth = 5 height = 7 @@ -44,8 +45,8 @@ var/list/blacklisted_cargo_types = typecacheof(list( var/turf/T = trf for(var/a in T.GetAllContents()) if(is_type_in_typecache(a, blacklisted_cargo_types)) - return TRUE - return FALSE + return FALSE + return TRUE /obj/docking_port/mobile/supply/request() if(mode != SHUTTLE_IDLE) diff --git a/code/modules/shuttle/syndicate.dm b/code/modules/shuttle/syndicate.dm index bdf437f65e..3504027d59 100644 --- a/code/modules/shuttle/syndicate.dm +++ b/code/modules/shuttle/syndicate.dm @@ -8,6 +8,7 @@ req_access = list(access_syndicate) shuttleId = "syndicate" possible_destinations = "syndicate_away;syndicate_z5;syndicate_ne;syndicate_nw;syndicate_n;syndicate_se;syndicate_sw;syndicate_s" + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF /obj/machinery/computer/shuttle/syndicate/recall name = "syndicate shuttle recall terminal" diff --git a/code/modules/shuttle/transit.dm b/code/modules/shuttle/transit.dm new file mode 100644 index 0000000000..24bed0c63c --- /dev/null +++ b/code/modules/shuttle/transit.dm @@ -0,0 +1,14 @@ +/obj/effect/landmark/transit + name = "transit space marker" + desc = "This indicates where transit space begins and ends." + invisibility = FALSE + icon = 'icons/effects/effects.dmi' + icon_state = "at_shield1" + +/obj/effect/landmark/transit/New() + . = ..() + transit_markers += src + +/obj/effect/landmark/transit/Destroy() + transit_markers -= src + . = ..() diff --git a/code/modules/spells/spell.dm b/code/modules/spells/spell.dm index e5b58e577a..a650851256 100644 --- a/code/modules/spells/spell.dm +++ b/code/modules/spells/spell.dm @@ -1,14 +1,66 @@ #define TARGET_CLOSEST 1 #define TARGET_RANDOM 2 + /obj/effect/proc_holder var/panel = "Debug"//What panel the proc holder needs to go on. + var/active = FALSE //Used by toggle based abilities. + var/ranged_mousepointer + var/mob/living/ranged_ability_user var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin verb for now -/obj/effect/proc_holder/proc/InterceptClickOn(mob/user, params, atom/A) - return +/obj/effect/proc_holder/Destroy() + if(ranged_ability_user) + remove_ranged_ability() + return ..() +/obj/effect/proc_holder/proc/InterceptClickOn(mob/living/caller, params, atom/A) + if(caller.ranged_ability != src || ranged_ability_user != caller) //I'm not actually sure how these would trigger, but, uh, safety, I guess? + caller << "[caller.ranged_ability.name] has been disabled." + caller.ranged_ability.remove_ranged_ability() + return TRUE //TRUE for failed, FALSE for passed. + ranged_ability_user.next_click = world.time + CLICK_CD_CLICK_ABILITY + ranged_ability_user.face_atom(A) + return FALSE + +/obj/effect/proc_holder/proc/add_ranged_ability(mob/living/user, msg, forced) + if(!user || !user.client) + return + if(user.ranged_ability && user.ranged_ability != src) + if(forced) + user << "[user.ranged_ability.name] has been replaced by [name]." + user.ranged_ability.remove_ranged_ability() + else + return + user.ranged_ability = src + user.client.click_intercept = user.ranged_ability + add_mousepointer(user.client) + ranged_ability_user = user + if(msg) + ranged_ability_user << msg + active = TRUE + update_icon() + +/obj/effect/proc_holder/proc/add_mousepointer(client/C) + if(C && ranged_mousepointer && C.mouse_pointer_icon == initial(C.mouse_pointer_icon)) + C.mouse_pointer_icon = ranged_mousepointer + +/obj/effect/proc_holder/proc/remove_mousepointer(client/C) + if(C && ranged_mousepointer && C.mouse_pointer_icon == ranged_mousepointer) + C.mouse_pointer_icon = initial(C.mouse_pointer_icon) + +/obj/effect/proc_holder/proc/remove_ranged_ability(msg) + if(!ranged_ability_user || !ranged_ability_user.client || (ranged_ability_user.ranged_ability && ranged_ability_user.ranged_ability != src)) //To avoid removing the wrong ability + return + ranged_ability_user.ranged_ability = null + ranged_ability_user.client.click_intercept = null + remove_mousepointer(ranged_ability_user.client) + if(msg) + ranged_ability_user << msg + ranged_ability_user = null + active = FALSE + update_icon() /obj/effect/proc_holder/spell name = "Spell" @@ -61,10 +113,10 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin var/critfailchance = 0 var/centcom_cancast = 1 //Whether or not the spell should be allowed on z2 - var/datum/action/spell_action/action = null var/action_icon = 'icons/mob/actions.dmi' var/action_icon_state = "spell_default" var/action_background_icon_state = "bg_spell" + var/datum/action/spell_action/action /obj/effect/proc_holder/spell/proc/cast_check(skipcharge = 0,mob/user = usr) //checks if the spell can be cast based on its settings; skipcharge is used when an additional cast_check is called inside the spell @@ -108,14 +160,18 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin user << "You can't get the words out!" return 0 + var/list/casting_clothes = typecacheof(list(/obj/item/clothing/suit/wizrobe, + /obj/item/clothing/suit/space/hardsuit/wizard, + /obj/item/clothing/head/wizard, + /obj/item/clothing/head/helmet/space/hardsuit/wizard, + /obj/item/clothing/suit/space/hardsuit/shielded/wizard, + /obj/item/clothing/head/helmet/space/hardsuit/shielded/wizard)) + if(clothes_req) //clothes check - if(!istype(H.wear_suit, /obj/item/clothing/suit/wizrobe) && !istype(H.wear_suit, /obj/item/clothing/suit/space/hardsuit/wizard)) + if(!is_type_in_typecache(H.wear_suit, casting_clothes)) H << "I don't feel strong enough without my robe." return 0 - if(!istype(H.shoes, /obj/item/clothing/shoes/sandal)) - H << "I don't feel strong enough without my sandals." - return 0 - if(!istype(H.head, /obj/item/clothing/head/wizard) && !istype(H.head, /obj/item/clothing/head/helmet/space/hardsuit/wizard)) + if(!is_type_in_typecache(H.head, casting_clothes)) H << "I don't feel strong enough without my hat." return 0 if(cult_req) //CULT_REQ CLOTHES CHECK @@ -211,9 +267,9 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin if(overlay) for(var/atom/target in targets) var/location - if(istype(target,/mob/living)) + if(isliving(target)) location = target.loc - else if(istype(target,/turf)) + else if(isturf(target)) location = target var/obj/effect/overlay/spell = new /obj/effect/overlay(location) spell.icon = overlay_icon @@ -225,11 +281,11 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin /obj/effect/proc_holder/spell/proc/after_cast(list/targets) for(var/atom/target in targets) var/location - if(istype(target,/mob/living)) + if(isliving(target)) location = target.loc - else if(istype(target,/turf)) + else if(isturf(target)) location = target - if(istype(target,/mob/living) && message) + if(isliving(target) && message) target << text("[message]") if(sparks_spread) var/datum/effect_system/spark_spread/sparks = new diff --git a/code/modules/spells/spell_types/barnyard.dm b/code/modules/spells/spell_types/barnyard.dm index e11115c64d..a63d91c643 100644 --- a/code/modules/spells/spell_types/barnyard.dm +++ b/code/modules/spells/spell_types/barnyard.dm @@ -47,4 +47,4 @@ target.equip_to_slot_if_possible(magichead, slot_wear_mask, 1, 1) playsound(get_turf(target), mSounds[randM], 50, 1) - target.flash_eyes() + target.flash_act() diff --git a/code/modules/spells/spell_types/charge.dm b/code/modules/spells/spell_types/charge.dm index fc6c555a47..c3351c0ea0 100644 --- a/code/modules/spells/spell_types/charge.dm +++ b/code/modules/spells/spell_types/charge.dm @@ -14,11 +14,11 @@ /obj/effect/proc_holder/spell/targeted/charge/cast(list/targets,mob/user = usr) for(var/mob/living/L in targets) - var/list/hand_items = list(L.get_active_hand(),L.get_inactive_hand()) + var/list/hand_items = list(L.get_active_held_item(),L.get_inactive_held_item()) var/charged_item = null var/burnt_out = 0 - if(L.pulling && (istype(L.pulling, /mob/living))) + if(L.pulling && isliving(L.pulling)) var/mob/living/M = L.pulling if(M.mob_spell_list.len != 0 || (M.mind && M.mind.spell_list.len != 0)) for(var/obj/effect/proc_holder/spell/S in M.mob_spell_list) @@ -58,15 +58,17 @@ if(istype(item,/obj/item/weapon/gun/magic/wand) && I.max_charges != 0) var/obj/item/weapon/gun/magic/W = item W.icon_state = initial(W.icon_state) + I.process_chamber() charged_item = I break else if(istype(item, /obj/item/weapon/stock_parts/cell/)) var/obj/item/weapon/stock_parts/cell/C = item - if(prob(80)) - C.maxcharge -= 200 - if(C.maxcharge <= 1) //Div by 0 protection - C.maxcharge = 1 - burnt_out = 1 + if(!C.self_recharge) + if(prob(80)) + C.maxcharge -= 200 + if(C.maxcharge <= 1) //Div by 0 protection + C.maxcharge = 1 + burnt_out = 1 C.charge = C.maxcharge charged_item = C break @@ -75,12 +77,16 @@ for(I in item.contents) if(istype(I, /obj/item/weapon/stock_parts/cell/)) var/obj/item/weapon/stock_parts/cell/C = I - if(prob(80)) - C.maxcharge -= 200 - if(C.maxcharge <= 1) //Div by 0 protection - C.maxcharge = 1 - burnt_out = 1 + if(!C.self_recharge) + if(prob(80)) + C.maxcharge -= 200 + if(C.maxcharge <= 1) //Div by 0 protection + C.maxcharge = 1 + burnt_out = 1 C.charge = C.maxcharge + if(istype(C.loc,/obj/item/weapon/gun)) + var/obj/item/weapon/gun/G = C.loc + G.process_chamber() item.update_icon() charged_item = item break diff --git a/code/modules/spells/spell_types/conjure.dm b/code/modules/spells/spell_types/conjure.dm index a5c524cd11..f14414684c 100644 --- a/code/modules/spells/spell_types/conjure.dm +++ b/code/modules/spells/spell_types/conjure.dm @@ -38,7 +38,7 @@ for(var/varName in newVars) if(varName in summoned_object.vars) summoned_object.vars[varName] = newVars[varName] - + summoned_object.admin_spawned = TRUE if(summon_lifespan) QDEL_IN(summoned_object, summon_lifespan) @@ -50,3 +50,34 @@ summon_amt = 10 range = 3 newVars = list("emagged" = 2, "remote_disabled" = 1,"shoot_sound" = 'sound/weapons/laser.ogg',"projectile" = /obj/item/projectile/beam/laser, "declare_arrests" = 0,"name" = "Wizard's Justicebot") + +/obj/effect/proc_holder/spell/targeted/conjure_item + name = "Summon weapon" + desc = "A generic spell that should not exist. This summons an instance of a specific type of item, or if one already exists, un-summons it. Summons into hand if possible." + invocation_type = "none" + include_user = 1 + range = -1 + clothes_req = 0 + var/obj/item/item + var/item_type = /obj/item/weapon/banhammer + school = "conjuration" + charge_max = 150 + cooldown_min = 10 + +/obj/effect/proc_holder/spell/targeted/conjure_item/cast(list/targets, mob/user = usr) + if (item && !qdeleted(item)) + qdel(item) + item = null + else + for(var/mob/living/carbon/C in targets) + if(C.drop_item()) + item = make_item() + C.put_in_hands(item) + +/obj/effect/proc_holder/spell/targeted/conjure_item/Destroy() + if(item) + qdel(item) + return ..() + +/obj/effect/proc_holder/spell/targeted/conjure_item/proc/make_item() + return new item_type diff --git a/code/modules/spells/spell_types/construct_spells.dm b/code/modules/spells/spell_types/construct_spells.dm index 0142489bc8..63023d2837 100644 --- a/code/modules/spells/spell_types/construct_spells.dm +++ b/code/modules/spells/spell_types/construct_spells.dm @@ -105,19 +105,11 @@ range = -1 include_user = 1 jaunt_duration = 50 //in deciseconds - centcom_cancast = 0 //Stop people from getting to centcom action_icon_state = "phaseshift" action_background_icon_state = "bg_demon" - -/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift/jaunt_disappear(atom/movable/overlay/animation, mob/living/target) - animation.icon_state = "phase_shift" - animation.setDir(target.dir) - flick("phase_shift",animation) - -/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift/jaunt_reappear(atom/movable/overlay/animation, mob/living/target) - animation.icon_state = "phase_shift2" - animation.setDir(target.dir) - flick("phase_shift2",animation) + jaunt_in_time = 12 + jaunt_in_type = /obj/effect/overlay/temp/dir_setting/wraith + jaunt_out_type = /obj/effect/overlay/temp/dir_setting/wraith/out /obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift/jaunt_steam(mobloc) return diff --git a/code/modules/spells/spell_types/devil.dm b/code/modules/spells/spell_types/devil.dm index 2622770da0..8d06e7b341 100644 --- a/code/modules/spells/spell_types/devil.dm +++ b/code/modules/spells/spell_types/devil.dm @@ -1,12 +1,11 @@ -/obj/effect/proc_holder/spell/targeted/summon_pitchfork +/obj/effect/proc_holder/spell/targeted/conjure_item/summon_pitchfork name = "Summon Pitchfork" desc = "A devil's weapon of choice. Use this to summon/unsummon your pitchfork." invocation_type = "none" include_user = 1 range = -1 clothes_req = 0 - var/obj/item/weapon/twohanded/pitchfork/demonic/pitchfork - var/pitchfork_type = /obj/item/weapon/twohanded/pitchfork/demonic/ + item_type = /obj/item/weapon/twohanded/pitchfork/demonic school = "conjuration" charge_max = 150 @@ -14,25 +13,20 @@ action_icon_state = "pitchfork" action_background_icon_state = "bg_demon" -/obj/effect/proc_holder/spell/targeted/summon_pitchfork/cast(list/targets, mob/user = usr) - if (pitchfork) - qdel(pitchfork) - else - for(var/mob/living/carbon/C in targets) - if(C.drop_item()) - pitchfork = new pitchfork_type - C.put_in_hands(pitchfork) +/obj/effect/proc_holder/spell/targeted/conjure_item/summon_pitchfork/greater + item_type = /obj/item/weapon/twohanded/pitchfork/demonic/greater -/obj/effect/proc_holder/spell/targeted/summon_pitchfork/Del() - if(pitchfork) - qdel(pitchfork) - -/obj/effect/proc_holder/spell/targeted/summon_pitchfork/greater - pitchfork_type = /obj/item/weapon/twohanded/pitchfork/demonic/greater - -/obj/effect/proc_holder/spell/targeted/summon_pitchfork/ascended - pitchfork_type = /obj/item/weapon/twohanded/pitchfork/demonic/ascended +/obj/effect/proc_holder/spell/targeted/conjure_item/summon_pitchfork/ascended + item_type = /obj/item/weapon/twohanded/pitchfork/demonic/ascended +/obj/effect/proc_holder/spell/targeted/conjure_item/violin + item_type = /obj/item/device/instrument/violin/golden + desc = "A devil's instrument of choice. Use this to summon/unsummon your golden violin." + invocation_type = "whisper" + invocation = "I aint have this much fun since Georgia." + action_icon_state = "golden_violin" + name = "Summon golden violin" + action_background_icon_state = "bg_demon" /obj/effect/proc_holder/spell/targeted/summon_contract name = "Summon infernal contract" @@ -72,10 +66,10 @@ contract = new /obj/item/weapon/paper/contract/infernal/knowledge(C.loc, C.mind, user.mind) C.put_in_hands(contract) else - user << "[C] seems to not be sentient. You cannot summon a contract for them." + user << "[C] seems to not be sentient. You cannot summon a contract for [C.p_them()]." -/obj/effect/proc_holder/spell/dumbfire/fireball/hellish +/obj/effect/proc_holder/spell/fireball/hellish name = "Hellfire" desc = "This spell launches hellfire at the target." @@ -86,22 +80,14 @@ invocation_type = "shout" range = 2 - proj_icon_state = "fireball" - proj_name = "a fireball" - proj_type = /obj/effect/proc_holder/spell/turf/fireball/infernal - - proj_lifespan = 200 - proj_step_delay = 1 + fireball_type = /obj/item/projectile/magic/fireball/infernal action_background_icon_state = "bg_demon" -/obj/effect/proc_holder/spell/turf/fireball/infernal/cast(turf/T,mob/user = usr) - explosion(T, -1, -1, 1, 4, 0, flame_range = 5) - /obj/effect/proc_holder/spell/targeted/infernal_jaunt name = "Infernal Jaunt" desc = "Use hellfire to phase out of existence." - charge_max = 10 + charge_max = 200 clothes_req = 0 selection_type = "range" range = -1 @@ -116,12 +102,17 @@ if(istype(user)) if(istype(user.loc, /obj/effect/dummy/slaughter/)) var/continuing = 0 - for(var/mob/living/C in orange(2, get_turf(user.loc))) - if (C.mind && C.mind.soulOwner == C.mind) - continuing = 1 - break + if(istype(get_area(user), /area/shuttle/)) // Can always phase in in a shuttle. + continuing = 1 + else + for(var/mob/living/C in orange(2, get_turf(user.loc))) //Can also phase in when nearby a potential buyer. + if (C.mind && C.mind.soulOwner == C.mind) + continuing = 1 + break if(continuing) - addtimer(user,"infernalphasein",150,TRUE) + user << "You are now phasing in." + if(do_mob(user,user,150)) + user.infernalphasein() else user << "You can only re-appear near a potential signer." revert_cast() @@ -129,21 +120,23 @@ else user.notransform = 1 user.fakefire() - addtimer(user, "infernalphaseout",150,TRUE,get_turf(user)) + src << "You begin to phase back into sinful flames." + if(do_mob(user,user,150)) + user.infernalphaseout() + else + user << "You must remain still while exiting." + user.ExtinguishMob() start_recharge() return revert_cast() -/mob/living/proc/infernalphaseout(var/turf/mobloc) - if(get_turf(src) != mobloc) - src << "You must remain still while exiting." - return +/mob/living/proc/infernalphaseout() dust_animation() spawn_dust() src.visible_message("[src] disappears in a flashfire!") playsound(get_turf(src), 'sound/magic/enter_blood.ogg', 100, 1, -1) - var/obj/effect/dummy/slaughter/holder = PoolOrNew(/obj/effect/dummy/slaughter,mobloc) + var/obj/effect/dummy/slaughter/holder = PoolOrNew(/obj/effect/dummy/slaughter,loc) src.ExtinguishMob() if(buckled) buckled.unbuckle_mob(src,force=1) @@ -167,20 +160,7 @@ src.client.eye = src src.visible_message("[src] appears in a firey blaze!") playsound(get_turf(src), 'sound/magic/exit_blood.ogg', 100, 1, -1) - addtimer(src, "fakefireextinguish" ,15,TRUE,get_turf(src)) - -/mob/living/proc/fakefire() - return - -/mob/living/carbon/fakefire(var/fire_icon = "Generic_mob_burning") - overlays_standing[FIRE_LAYER] = image("icon"='icons/mob/OnFire.dmi', "icon_state"= fire_icon, "layer"=-FIRE_LAYER) - apply_overlay(FIRE_LAYER) - -/mob/living/proc/fakefireextinguish() - return - -/mob/living/carbon/fakefireextinguish() - remove_overlay(FIRE_LAYER) + addtimer(src, "fakefireextinguish", 15, TIMER_UNIQUE) /obj/effect/proc_holder/spell/targeted/sintouch name = "Sin Touch" @@ -216,3 +196,56 @@ H.influenceSin() H.Weaken(2) H.Stun(2) + + +/obj/effect/proc_holder/spell/targeted/summon_dancefloor + name = "Summon Dancefloor" + desc = "When what a Devil really needs is funk." + include_user = 1 + range = -1 + clothes_req = 0 + + school = "conjuration" + charge_max = 10 + cooldown_min = 50 //5 seconds, so the smoke can't be spammed + action_icon_state = "funk" + action_background_icon_state = "bg_demon" + + var/list/dancefloor_turfs + var/list/dancefloor_turfs_types + var/dancefloor_exists = FALSE + var/datum/effect_system/smoke_spread/transparent/dancefloor_devil/smoke + + +/obj/effect/proc_holder/spell/targeted/summon_dancefloor/cast(list/targets, mob/user = usr) + LAZYINITLIST(dancefloor_turfs) + LAZYINITLIST(dancefloor_turfs_types) + + if(!smoke) + smoke = new() + smoke.set_up(0, get_turf(user)) + smoke.start() + + if(dancefloor_exists) + dancefloor_exists = FALSE + for(var/i in 1 to dancefloor_turfs.len) + var/turf/T = dancefloor_turfs[i] + T.ChangeTurf(dancefloor_turfs_types[i]) + else + dancefloor_exists = TRUE + var/i = 1 + var/list/funky_turfs = RANGE_TURFS(1, user) + dancefloor_turfs.len = funky_turfs.len + dancefloor_turfs_types.len = funky_turfs.len + for(var/t in funky_turfs) + var/turf/T = t + dancefloor_turfs[i] = T + dancefloor_turfs_types[i] = T.type + T.ChangeTurf((i % 2 == 0) ? /turf/open/floor/light/colour_cycle/dancefloor_a : /turf/open/floor/light/colour_cycle/dancefloor_b) + i++ + +/datum/effect_system/smoke_spread/transparent/dancefloor_devil + effect_type = /obj/effect/particle_effect/smoke/transparent/dancefloor_devil + +/obj/effect/particle_effect/smoke/transparent/dancefloor_devil + lifetime = 2 \ No newline at end of file diff --git a/code/modules/spells/spell_types/ethereal_jaunt.dm b/code/modules/spells/spell_types/ethereal_jaunt.dm index a990b84b7c..d6f9acd2bf 100644 --- a/code/modules/spells/spell_types/ethereal_jaunt.dm +++ b/code/modules/spells/spell_types/ethereal_jaunt.dm @@ -10,73 +10,58 @@ range = -1 cooldown_min = 100 //50 deciseconds reduction per rank include_user = 1 - centcom_cancast = 0 //Prevent people from getting to centcom nonabstract_req = 1 var/jaunt_duration = 50 //in deciseconds + var/jaunt_in_time = 5 + var/jaunt_in_type = /obj/effect/overlay/temp/wizard + var/jaunt_out_type = /obj/effect/overlay/temp/wizard/out action_icon_state = "jaunt" /obj/effect/proc_holder/spell/targeted/ethereal_jaunt/cast(list/targets,mob/user = usr) //magnets, so mostly hardcoded playsound(get_turf(user), 'sound/magic/Ethereal_Enter.ogg', 50, 1, -1) for(var/mob/living/target in targets) - target.notransform = 1 //protects the mob from being transformed (replaced) midjaunt and getting stuck in bluespace - spawn(0) - var/turf/mobloc = get_turf(target.loc) - var/obj/effect/dummy/spell_jaunt/holder = new /obj/effect/dummy/spell_jaunt( mobloc ) - var/atom/movable/overlay/animation = new /atom/movable/overlay( mobloc ) - animation.name = "water" - animation.density = 0 - animation.anchored = 1 - animation.icon = 'icons/mob/mob.dmi' - animation.layer = FLY_LAYER - animation.master = holder - target.ExtinguishMob() - if(target.buckled) - target.buckled.unbuckle_mob(target,force=1) - if(target.pulledby) - target.pulledby.stop_pulling() - target.stop_pulling() - if(target.has_buckled_mobs()) - target.unbuckle_all_mobs(force=1) - jaunt_disappear(animation, target) - target.loc = holder - target.reset_perspective(holder) - target.notransform=0 //mob is safely inside holder now, no need for protection. - jaunt_steam(mobloc) + addtimer(src, "do_jaunt", 0, TIMER_NORMAL, target) - sleep(jaunt_duration) +/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/proc/do_jaunt(mob/living/target) + target.notransform = 1 + var/turf/mobloc = get_turf(target) + var/obj/effect/dummy/spell_jaunt/holder = new /obj/effect/dummy/spell_jaunt(mobloc) + PoolOrNew(jaunt_out_type, list(mobloc, holder.dir)) + target.ExtinguishMob() + if(target.buckled) + target.buckled.unbuckle_mob(target,force=1) + if(target.pulledby) + target.pulledby.stop_pulling() + target.stop_pulling() + if(target.has_buckled_mobs()) + target.unbuckle_all_mobs(force=1) + target.loc = holder + target.reset_perspective(holder) + target.notransform=0 //mob is safely inside holder now, no need for protection. + jaunt_steam(mobloc) - if(target.loc != holder) //mob warped out of the warp - qdel(holder) - return - mobloc = get_turf(target.loc) - animation.loc = mobloc - jaunt_steam(mobloc) - target.canmove = 0 - holder.reappearing = 1 - playsound(get_turf(user), 'sound/magic/Ethereal_Exit.ogg', 50, 1, -1) - sleep(20) - if(!qdeleted(target)) - jaunt_reappear(animation, target) - sleep(5) - qdel(animation) - qdel(holder) - if(!qdeleted(target)) - if(mobloc.density) - for(var/direction in list(1,2,4,8,5,6,9,10)) - var/turf/T = get_step(mobloc, direction) - if(T) - if(target.Move(T)) - break - target.canmove = 1 - -/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/proc/jaunt_disappear(atom/movable/overlay/animation, mob/living/target) - animation.icon_state = "liquify" - flick("liquify",animation) - - -/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/proc/jaunt_reappear(atom/movable/overlay/animation, mob/living/target) - flick("reappear",animation) + sleep(jaunt_duration) + if(target.loc != holder) //mob warped out of the warp + qdel(holder) + return + mobloc = get_turf(target.loc) + jaunt_steam(mobloc) + target.canmove = 0 + holder.reappearing = 1 + playsound(get_turf(target), 'sound/magic/Ethereal_Exit.ogg', 50, 1, -1) + sleep(25 - jaunt_in_time) + PoolOrNew(jaunt_in_type, list(mobloc, holder.dir)) + sleep(jaunt_in_time) + qdel(holder) + if(!qdeleted(target)) + if(mobloc.density) + for(var/direction in alldirs) + var/turf/T = get_step(mobloc, direction) + if(T) + if(target.Move(T)) + break + target.canmove = 1 /obj/effect/proc_holder/spell/targeted/ethereal_jaunt/proc/jaunt_steam(mobloc) var/datum/effect_system/steam_spread/steam = new /datum/effect_system/steam_spread() @@ -92,7 +77,7 @@ density = 0 anchored = 1 invisibility = 60 - burn_state = LAVA_PROOF + resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF /obj/effect/dummy/spell_jaunt/Destroy() // Eject contents if deleted somehow @@ -103,6 +88,7 @@ /obj/effect/dummy/spell_jaunt/relaymove(var/mob/user, direction) if (!src.canmove || reappearing || !direction) return var/turf/newLoc = get_step(src,direction) + setDir(direction) if(!(newLoc.flags & NOJAUNT)) loc = newLoc else diff --git a/code/modules/spells/spell_types/forcewall.dm b/code/modules/spells/spell_types/forcewall.dm new file mode 100644 index 0000000000..c1452390bc --- /dev/null +++ b/code/modules/spells/spell_types/forcewall.dm @@ -0,0 +1,36 @@ +/obj/effect/proc_holder/spell/targeted/forcewall + name = "Forcewall" + desc = "Create a magical barrier that only you can pass through. Does not require wizard garb." + school = "transmutation" + charge_max = 100 + clothes_req = 0 + invocation = "TARCOL MINTI ZHERI" + invocation_type = "shout" + sound = "sound/magic/ForceWall.ogg" + action_icon_state = "shield" + range = -1 + include_user = 1 + cooldown_min = 50 //12 deciseconds reduction per rank + +/obj/effect/proc_holder/spell/targeted/forcewall/cast(list/targets,mob/user = usr) + new /obj/effect/forcefield/wizard(get_turf(user),user) + if(user.dir == SOUTH || user.dir == NORTH) + new /obj/effect/forcefield/wizard(get_step(user, EAST),user) + new /obj/effect/forcefield/wizard(get_step(user, WEST),user) + else + new /obj/effect/forcefield/wizard(get_step(user, NORTH),user) + new /obj/effect/forcefield/wizard(get_step(user, SOUTH),user) + + +/obj/effect/forcefield/wizard + var/mob/wizard + +/obj/effect/forcefield/wizard/New(atom/loc, mob/summoner) + ..() + wizard = summoner + QDEL_IN(src, 300) + +/obj/effect/forcefield/wizard/CanPass(atom/movable/mover, turf/target, height=0) + if(mover == wizard) + return 1 + return 0 diff --git a/code/modules/spells/spell_types/godhand.dm b/code/modules/spells/spell_types/godhand.dm index fcd8ea5ebb..f2730fb3be 100644 --- a/code/modules/spells/spell_types/godhand.dm +++ b/code/modules/spells/spell_types/godhand.dm @@ -8,7 +8,7 @@ icon_state = "syndballoon" item_state = null flags = ABSTRACT | NODROP - w_class = 5 + w_class = WEIGHT_CLASS_HUGE force = 0 throwforce = 0 throw_range = 0 diff --git a/code/modules/spells/spell_types/infinite_guns.dm b/code/modules/spells/spell_types/infinite_guns.dm index 10b8612c85..f62ce1735e 100644 --- a/code/modules/spells/spell_types/infinite_guns.dm +++ b/code/modules/spells/spell_types/infinite_guns.dm @@ -1,6 +1,6 @@ /obj/effect/proc_holder/spell/targeted/infinite_guns name = "Lesser Summon Guns" - desc = "Why reload when you have infinite guns? Summons an unending stream of bolt action rifles. Requires both hands free to use." + desc = "Why reload when you have infinite guns? Summons an unending stream of bolt action rifles. Requires both hands free to use. Learning this spell makes you unable to learn Arcane Barrage." invocation_type = "none" include_user = 1 range = -1 @@ -10,13 +10,21 @@ clothes_req = 1 cooldown_min = 10 //Gun wizard action_icon_state = "bolt_action" - - + var/summon_path = /obj/item/weapon/gun/ballistic/shotgun/boltaction/enchanted /obj/effect/proc_holder/spell/targeted/infinite_guns/cast(list/targets, mob/user = usr) for(var/mob/living/carbon/C in targets) C.drop_item() C.swap_hand() C.drop_item() - var/obj/item/weapon/gun/projectile/shotgun/boltaction/enchanted/GUN = new + var/GUN = new summon_path C.put_in_hands(GUN) + C.swap_hand(C.get_held_index_of_item(GUN)) + +/obj/effect/proc_holder/spell/targeted/infinite_guns/gun + +/obj/effect/proc_holder/spell/targeted/infinite_guns/arcane_barrage + name = "Arcane Barrage" + desc = "Fire a torrent of arcane energy at your foes with this (powerful) spell. Requires both hands free to use. Learning this spell makes you unable to learn Lesser Summon Gun." + action_icon_state = "arcane_barrage" + summon_path = /obj/item/weapon/gun/ballistic/shotgun/boltaction/enchanted/arcane_barrage \ No newline at end of file diff --git a/code/modules/spells/spell_types/knock.dm b/code/modules/spells/spell_types/knock.dm index 36985c1825..453699b781 100644 --- a/code/modules/spells/spell_types/knock.dm +++ b/code/modules/spells/spell_types/knock.dm @@ -16,9 +16,9 @@ user << sound("sound/magic/Knock.ogg") for(var/turf/T in targets) for(var/obj/machinery/door/door in T.contents) - addtimer(src, "open_door", 0, FALSE, door) + addtimer(src, "open_door", 0, TIMER_NORMAL, door) for(var/obj/structure/closet/C in T.contents) - addtimer(src, "open_closet", 0, FALSE, C) + addtimer(src, "open_closet", 0, TIMER_NORMAL, C) /obj/effect/proc_holder/spell/aoe_turf/knock/proc/open_door(var/obj/machinery/door/door) if(istype(door, /obj/machinery/door/airlock)) diff --git a/code/modules/spells/spell_types/lichdom.dm b/code/modules/spells/spell_types/lichdom.dm index 511f446bf4..1e7fc5ee7f 100644 --- a/code/modules/spells/spell_types/lichdom.dm +++ b/code/modules/spells/spell_types/lichdom.dm @@ -43,7 +43,7 @@ for(var/mob/M in targets) var/list/hand_items = list() if(iscarbon(M)) - hand_items = list(M.get_active_hand(),M.get_inactive_hand()) + hand_items = list(M.get_active_held_item(),M.get_inactive_held_item()) if(marked_item && !stat_allowed) //sanity, shouldn't happen without badminry marked_item = null @@ -72,7 +72,7 @@ var/mob/living/carbon/human/lich = new /mob/living/carbon/human(item_turf) - lich.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(lich), slot_shoes) + lich.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal/magic(lich), slot_shoes) lich.equip_to_slot_or_del(new /obj/item/clothing/under/color/black(lich), slot_w_uniform) lich.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe/black(lich), slot_wear_suit) lich.equip_to_slot_or_del(new /obj/item/clothing/head/wizard/black(lich), slot_head) @@ -80,7 +80,7 @@ lich.real_name = M.mind.name M.mind.transfer_to(lich) lich.hardset_dna(null,null,lich.real_name,null,/datum/species/skeleton) - lich << "Your bones clatter and shutter as they're pulled back into this world!" + lich << "Your bones clatter and shutter as you are pulled back into this world!" charge_max += 600 var/mob/old_body = current_body var/turf/body_turf = get_turf(old_body) @@ -92,13 +92,14 @@ var/mob/living/carbon/C = old_body for(var/obj/item/W in C) C.unEquip(W) - for(var/obj/item/organ/I in C.internal_organs) + for(var/X in C.internal_organs) + var/obj/item/organ/I = X I.Remove(C) I.forceMove(body_turf) var/wheres_wizdo = dir2text(get_dir(body_turf, item_turf)) if(wheres_wizdo) old_body.visible_message("Suddenly [old_body.name]'s corpse falls to pieces! You see a strange energy rise from the remains, and speed off towards the [wheres_wizdo]!") - body_turf.Beam(item_turf,icon_state="lichbeam",icon='icons/effects/effects.dmi',time=10+10*resurrections,maxdistance=INFINITY) + body_turf.Beam(item_turf,icon_state="lichbeam",time=10+10*resurrections,maxdistance=INFINITY) old_body.dust() if(!marked_item) //linking item to the spell @@ -123,9 +124,11 @@ charge_max = 1800 //3 minute cooldown, if you rise in sight of someone and killed again, you're probably screwed. charge_counter = 1800 stat_allowed = 1 - marked_item.name = "Ensouled [marked_item.name]" - marked_item.desc = "A terrible aura surrounds this item, its very existence is offensive to life itself..." - marked_item.color = "#003300" + marked_item.name = "ensouled [marked_item.name]" + marked_item.desc += "\nA terrible aura surrounds this item, its very existence is offensive to life itself..." + marked_item.add_atom_colour("#003300", ADMIN_COLOUR_PRIORITY) + poi_list |= marked_item + M << "With a hideous feeling of emptiness you watch in horrified fascination as skin sloughs off bone! Blood boils, nerves disintegrate, eyes boil in their sockets! As your organs crumble to dust in your fleshless chest you come to terms with your choice. You're a lich!" M.set_species(/datum/species/skeleton) current_body = M.mind.current diff --git a/code/modules/spells/spell_types/lightning.dm b/code/modules/spells/spell_types/lightning.dm index 1bc6b2429f..73e958926c 100644 --- a/code/modules/spells/spell_types/lightning.dm +++ b/code/modules/spells/spell_types/lightning.dm @@ -32,15 +32,18 @@ if(ready && cast_check(skipcharge=1)) choose_targets() else - Reset(user) + revert_cast(user, 0) + else + revert_cast(user, 0) /obj/effect/proc_holder/spell/targeted/lightning/proc/Reset(mob/user = usr) ready = 0 if(halo) user.overlays.Remove(halo) -/obj/effect/proc_holder/spell/targeted/lightning/revert_cast(mob/user = usr) - user << "No target found in range." +/obj/effect/proc_holder/spell/targeted/lightning/revert_cast(mob/user = usr, message = 1) + if(message) + user << "No target found in range." Reset(user) ..() @@ -55,13 +58,13 @@ return playsound(get_turf(user), 'sound/magic/lightningbolt.ogg', 50, 1) - user.Beam(target,icon_state="lightning[rand(1,12)]",icon='icons/effects/effects.dmi',time=5) + user.Beam(target,icon_state="lightning[rand(1,12)]",time=5) Bolt(user,target,30,5,user) Reset(user) /obj/effect/proc_holder/spell/targeted/lightning/proc/Bolt(mob/origin,mob/target,bolt_energy,bounces,mob/user = usr) - origin.Beam(target,icon_state="lightning[rand(1,12)]",icon='icons/effects/effects.dmi',time=5) + origin.Beam(target,icon_state="lightning[rand(1,12)]",time=5) var/mob/living/carbon/current = target if(bounces < 1) current.electrocute_act(bolt_energy,"Lightning Bolt",safety=1) diff --git a/code/modules/spells/spell_types/mime.dm b/code/modules/spells/spell_types/mime.dm index 231260283a..9d8cd0fe6a 100644 --- a/code/modules/spells/spell_types/mime.dm +++ b/code/modules/spells/spell_types/mime.dm @@ -21,7 +21,7 @@ if(!usr.mind.miming) usr << "You must dedicate yourself to silence first." return - invocation = "[usr.real_name] looks as if a wall is in front of them." + invocation = "[usr.real_name] looks as if a wall is in front of [usr.p_them()]." else invocation_type ="none" ..() diff --git a/code/modules/spells/spell_types/mind_transfer.dm b/code/modules/spells/spell_types/mind_transfer.dm index 5f8fe38f98..d5dfabb306 100644 --- a/code/modules/spells/spell_types/mind_transfer.dm +++ b/code/modules/spells/spell_types/mind_transfer.dm @@ -31,11 +31,14 @@ Also, you never added distance checking after target is selected. I've went ahea var/mob/living/target = targets[1] + var/t_He = target.p_they(TRUE) + var/t_is = target.p_are() + if(!(target in oview(range)) && !distanceoverride)//If they are not in overview after selection. Do note that !() is necessary for in to work because ! takes precedence over it. - user << "They are too far away!" + user << "[t_He] [t_is] too far away!" return - if(istype(target, /mob/living/simple_animal/hostile/megafauna)) + if(ismegafauna(target)) user << "This creature is too powerful to control!" return @@ -44,7 +47,7 @@ Also, you never added distance checking after target is selected. I've went ahea return if(!target.key || !target.mind) - user << "They appear to be catatonic! Not even magic can affect their vacant mind." + user << "[t_He] appear[target.p_s()] to be catatonic! Not even magic can affect [target.p_their()] vacant mind." return if(user.suiciding) @@ -52,7 +55,7 @@ Also, you never added distance checking after target is selected. I've went ahea return if((target.mind.special_role in protected_roles) || cmptext(copytext(target.key,1,2),"@")) - user << "Their mind is resisting your spell!" + user << "[target.p_their(TRUE)] mind is resisting your spell!" return var/mob/living/victim = target//The target of the spell whos body will be transferred to. diff --git a/code/modules/spells/spell_types/rightandwrong.dm b/code/modules/spells/spell_types/rightandwrong.dm index 255f0af9d7..2ffdfc3a43 100644 --- a/code/modules/spells/spell_types/rightandwrong.dm +++ b/code/modules/spells/spell_types/rightandwrong.dm @@ -2,8 +2,8 @@ /proc/rightandwrong(summon_type, mob/user, survivor_probability) //0 = Summon Guns, 1 = Summon Magic var/list/gunslist = list("taser","gravgun","egun","laser","revolver","detective","c20r","nuclear","deagle","gyrojet","pulse","suppressed","cannon","doublebarrel","shotgun","combatshotgun","bulldog","mateba","sabr","crossbow","saw","car","boltaction","speargun","arg","uzi","alienpistol","dragnet","turret","pulsecarbine","decloner","mindflayer","hyperkinetic","advplasmacutter","wormhole","wt550","bulldog","grenadelauncher","goldenrevolver","sniper","medibeam","scatterbeam") - var/list/magiclist = list("fireball","smoke","blind","mindswap","forcewall","knock","horsemask","charge", "summonitem", "wandnothing", "wanddeath", "wandresurrection", "wandpolymorph", "wandteleport", "wanddoor", "wandfireball", "staffchange", "staffhealing", "armor", "scrying","staffdoor","voodoo", "special") - var/list/magicspeciallist = list("staffchange","staffanimation", "wandbelt", "contract", "staffchaos", "necromantic") + var/list/magiclist = list("fireball","smoke","blind","mindswap","forcewall","knock","horsemask","charge", "summonitem", "wandnothing", "wanddeath", "wandresurrection", "wandpolymorph", "wandteleport", "wanddoor", "wandfireball", "staffchange", "staffhealing", "armor", "scrying","staffdoor","voodoo", "whistle", "battlemage", "immortality", "ghostsword", "special") + var/list/magicspeciallist = list("staffchange","staffanimation", "wandbelt", "contract", "staffchaos", "necromantic", "bloodcontract") if(user) //in this case either someone holding a spellbook or a badmin user << "You summoned [summon_type ? "magic" : "guns"]!" @@ -15,19 +15,23 @@ if(H.mind.special_role == "Wizard" || H.mind.special_role == "apprentice" || H.mind.special_role == "survivalist") continue if(prob(survivor_probability) && !(H.mind in ticker.mode.traitors)) ticker.mode.traitors += H.mind - var/datum/objective/summon_guns/guns = new - guns.owner = H.mind - H.mind.objectives += guns - H.mind.special_role = "survivalist" + if(!summon_type) + var/datum/objective/steal_five_of_type/summon_guns/guns = new + guns.owner = H.mind + H.mind.objectives += guns + H.mind.special_role = "survivalist" + H << "You are the survivalist! Your own safety matters above all else, and the only way to ensure your safety is to stockpile weapons! Grab as many guns as possible, by any means necessary. Kill anyone who gets in your way." + else + var/datum/objective/steal_five_of_type/summon_magic/magic = new + magic.owner = H.mind + H.mind.objectives += magic + H.mind.special_role = "amateur magician" + H << "You are the amateur magician! Grow your newfound talent! Grab as many magical artefacts as possible, by any means necessary. Kill anyone who gets in your way." var/datum/objective/survive/survive = new survive.owner = H.mind H.mind.objectives += survive H.attack_log += "\[[time_stamp()]\] Was made into a survivalist, and trusts no one!" - H << "You are the survivalist! Your own safety matters above all else, and the only way to ensure your safety is to stockpile weapons! Grab as many guns as possible, by any means necessary. Kill anyone who gets in your way." - var/obj_count = 1 - for(var/datum/objective/OBJ in H.mind.objectives) - H << "Objective #[obj_count]: [OBJ.explanation_text]" - obj_count++ + H.mind.announce_objectives() var/randomizeguns = pick(gunslist) var/randomizemagic = pick(magiclist) var/randomizemagicspecial = pick(magicspeciallist) @@ -35,62 +39,62 @@ var/obj/item/weapon/gun/G switch (randomizeguns) if("taser") - G = new /obj/item/weapon/gun/energy/gun/advtaser(get_turf(H)) + G = new /obj/item/weapon/gun/energy/e_gun/advtaser(get_turf(H)) if("egun") - G = new /obj/item/weapon/gun/energy/gun(get_turf(H)) + G = new /obj/item/weapon/gun/energy/e_gun(get_turf(H)) if("laser") G = new /obj/item/weapon/gun/energy/laser(get_turf(H)) if("revolver") - G = new /obj/item/weapon/gun/projectile/revolver(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/revolver(get_turf(H)) if("detective") - G = new /obj/item/weapon/gun/projectile/revolver/detective(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/revolver/detective(get_turf(H)) if("deagle") - G = new /obj/item/weapon/gun/projectile/automatic/pistol/deagle/camo(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/automatic/pistol/deagle/camo(get_turf(H)) if("gyrojet") - G = new /obj/item/weapon/gun/projectile/automatic/gyropistol(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/automatic/gyropistol(get_turf(H)) if("pulse") G = new /obj/item/weapon/gun/energy/pulse(get_turf(H)) if("suppressed") - G = new /obj/item/weapon/gun/projectile/automatic/pistol(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/automatic/pistol(get_turf(H)) new /obj/item/weapon/suppressor(get_turf(H)) if("doublebarrel") - G = new /obj/item/weapon/gun/projectile/revolver/doublebarrel(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/revolver/doublebarrel(get_turf(H)) if("shotgun") - G = new /obj/item/weapon/gun/projectile/shotgun(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/shotgun(get_turf(H)) if("combatshotgun") - G = new /obj/item/weapon/gun/projectile/shotgun/automatic/combat(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/shotgun/automatic/combat(get_turf(H)) if("arg") - G = new /obj/item/weapon/gun/projectile/automatic/ar(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/automatic/ar(get_turf(H)) if("mateba") - G = new /obj/item/weapon/gun/projectile/revolver/mateba(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/revolver/mateba(get_turf(H)) if("boltaction") - G = new /obj/item/weapon/gun/projectile/shotgun/boltaction(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/shotgun/boltaction(get_turf(H)) if("speargun") - G = new /obj/item/weapon/gun/projectile/automatic/speargun(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/automatic/speargun(get_turf(H)) if("uzi") - G = new /obj/item/weapon/gun/projectile/automatic/mini_uzi(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/automatic/mini_uzi(get_turf(H)) if("cannon") G = new /obj/item/weapon/gun/energy/lasercannon(get_turf(H)) if("crossbow") G = new /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow/large(get_turf(H)) if("nuclear") - G = new /obj/item/weapon/gun/energy/gun/nuclear(get_turf(H)) + G = new /obj/item/weapon/gun/energy/e_gun/nuclear(get_turf(H)) if("sabr") - G = new /obj/item/weapon/gun/projectile/automatic/proto(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/automatic/proto(get_turf(H)) if("bulldog") - G = new /obj/item/weapon/gun/projectile/automatic/shotgun/bulldog(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog(get_turf(H)) if("c20r") - G = new /obj/item/weapon/gun/projectile/automatic/c20r(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/automatic/c20r(get_turf(H)) if("saw") - G = new /obj/item/weapon/gun/projectile/automatic/l6_saw(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/automatic/l6_saw(get_turf(H)) if("car") - G = new /obj/item/weapon/gun/projectile/automatic/m90(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/automatic/m90(get_turf(H)) if("alienpistol") G = new /obj/item/weapon/gun/energy/alien(get_turf(H)) if("dragnet") - G = new /obj/item/weapon/gun/energy/gun/dragnet(get_turf(H)) + G = new /obj/item/weapon/gun/energy/e_gun/dragnet(get_turf(H)) if("turret") - G = new /obj/item/weapon/gun/energy/gun/turret(get_turf(H)) + G = new /obj/item/weapon/gun/energy/e_gun/turret(get_turf(H)) if("pulsecarbine") G = new /obj/item/weapon/gun/energy/pulse/carbine(get_turf(H)) if("decloner") @@ -98,21 +102,21 @@ if("mindflayer") G = new /obj/item/weapon/gun/energy/mindflayer(get_turf(H)) if("hyperkinetic") - G = new /obj/item/weapon/gun/energy/kinetic_accelerator/hyper(get_turf(H)) + G = new /obj/item/weapon/gun/energy/kinetic_accelerator(get_turf(H)) if("advplasmacutter") G = new /obj/item/weapon/gun/energy/plasmacutter/adv(get_turf(H)) if("wormhole") G = new /obj/item/weapon/gun/energy/wormhole_projector(get_turf(H)) if("wt550") - G = new /obj/item/weapon/gun/projectile/automatic/wt550(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/automatic/wt550(get_turf(H)) if("bulldog") - G = new /obj/item/weapon/gun/projectile/automatic/shotgun(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/automatic/shotgun(get_turf(H)) if("grenadelauncher") - G = new /obj/item/weapon/gun/projectile/revolver/grenadelauncher(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/revolver/grenadelauncher(get_turf(H)) if("goldenrevolver") - G = new /obj/item/weapon/gun/projectile/revolver/golden(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/revolver/golden(get_turf(H)) if("sniper") - G = new /obj/item/weapon/gun/projectile/automatic/sniper_rifle(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/automatic/sniper_rifle(get_turf(H)) if("medibeam") G = new /obj/item/weapon/gun/medbeam(get_turf(H)) if("scatterbeam") @@ -169,6 +173,14 @@ H << "The walls suddenly disappear." if("voodoo") new /obj/item/voodoo(get_turf(H)) + if("whistle") + new /obj/item/warpwhistle(get_turf(H)) + if("battlemage") + new /obj/item/clothing/suit/space/hardsuit/shielded/wizard(get_turf(H)) + if("immortality") + new /obj/item/device/immortality_talisman(get_turf(H)) + if("ghostsword") + new /obj/item/weapon/melee/ghost_sword(get_turf(H)) if("special") magiclist -= "special" //only one super OP item per summoning max switch (randomizemagicspecial) @@ -184,6 +196,8 @@ new /obj/item/weapon/gun/magic/staff/chaos(get_turf(H)) if("necromantic") new /obj/item/device/necromantic_stone(get_turf(H)) + if("bloodcontract") + new /obj/item/blood_contract(get_turf(H)) H << "You suddenly feel lucky." playsound(get_turf(H),'sound/magic/Summon_Magic.ogg', 50, 1) diff --git a/code/modules/spells/spell_types/rod_form.dm b/code/modules/spells/spell_types/rod_form.dm new file mode 100644 index 0000000000..1e8545f76f --- /dev/null +++ b/code/modules/spells/spell_types/rod_form.dm @@ -0,0 +1,42 @@ +/obj/effect/proc_holder/spell/targeted/rod_form + name = "Rod Form" + desc = "Take on the form of an immovable rod, destroying all in your path." + clothes_req = 1 + human_req = 0 + charge_max = 250 + cooldown_min = 100 + range = -1 + include_user = 1 + invocation = "CLANG!" + invocation_type = "shout" + action_icon_state = "immrod" + +/obj/effect/proc_holder/spell/targeted/rod_form/cast(list/targets,mob/user = usr) + for(var/mob/living/M in targets) + var/turf/start = get_turf(M) + var/obj/effect/immovablerod/wizard/W = new(start, get_ranged_target_turf(M, M.dir, (15 + spell_level * 3))) + W.wizard = M + W.max_distance += spell_level * 3 //You travel farther when you upgrade the spell + W.start_turf = start + M.forceMove(W) + M.notransform = 1 + M.status_flags |= GODMODE + +//Wizard Version of the Immovable Rod + +/obj/effect/immovablerod/wizard + var/max_distance = 13 + var/mob/living/wizard + var/turf/start_turf + +/obj/effect/immovablerod/wizard/Move() + if(get_dist(start_turf, get_turf(src)) >= max_distance) + qdel(src) + ..() + +/obj/effect/immovablerod/wizard/Destroy() + if(wizard) + wizard.status_flags &= ~GODMODE + wizard.notransform = 0 + wizard.forceMove(get_turf(src)) + return ..() \ No newline at end of file diff --git a/code/modules/spells/spell_types/shapeshift.dm b/code/modules/spells/spell_types/shapeshift.dm index b24b9c3bba..0d485d687c 100644 --- a/code/modules/spells/spell_types/shapeshift.dm +++ b/code/modules/spells/spell_types/shapeshift.dm @@ -70,4 +70,14 @@ current_shapes.Remove(shape) shape.mind.transfer_to(caster) - qdel(shape) //Gib it maybe ? \ No newline at end of file + qdel(shape) //Gib it maybe ? + +/obj/effect/proc_holder/spell/targeted/shapeshift/dragon + name = "Dragon Form" + desc = "Take on the shape a lesser ash drake." + invocation = "RAAAAAAAAWR!" + + shapeshift_type = /mob/living/simple_animal/hostile/megafauna/dragon/lesser + list/current_shapes = list(/mob/living/simple_animal/hostile/megafauna/dragon/lesser) + list/current_casters = list() + list/possible_shapes = list(/mob/living/simple_animal/hostile/megafauna/dragon/lesser) \ No newline at end of file diff --git a/code/modules/spells/spell_types/spacetime_distortion.dm b/code/modules/spells/spell_types/spacetime_distortion.dm index da452070af..54a820a87b 100644 --- a/code/modules/spells/spell_types/spacetime_distortion.dm +++ b/code/modules/spells/spell_types/spacetime_distortion.dm @@ -8,6 +8,8 @@ var/ready = TRUE centcom_cancast = FALSE sound = "sound/effects/magic.ogg" + cooldown_min = 300 + level_max = 0 /obj/effect/proc_holder/spell/spacetime_dist/can_cast(mob/user = usr) if(ready) diff --git a/code/modules/spells/spell_types/summonitem.dm b/code/modules/spells/spell_types/summonitem.dm index e4b02f8b08..4d6d1b5a3b 100644 --- a/code/modules/spells/spell_types/summonitem.dm +++ b/code/modules/spells/spell_types/summonitem.dm @@ -17,8 +17,7 @@ /obj/effect/proc_holder/spell/targeted/summonitem/cast(list/targets,mob/user = usr) for(var/mob/living/L in targets) - var/list/hand_items = list(L.get_active_hand(),L.get_inactive_hand()) - var/butterfingers = 0 + var/list/hand_items = list(L.get_active_held_item(),L.get_inactive_held_item()) var/message if(!marked_item) //linking item to the spell @@ -93,17 +92,7 @@ if(item_to_retrive.loc) item_to_retrive.loc.visible_message("The [item_to_retrive.name] suddenly disappears!") - - - if(L.hand) //left active hand - if(!L.equip_to_slot_if_possible(item_to_retrive, slot_l_hand, 0, 1, 1)) - if(!L.equip_to_slot_if_possible(item_to_retrive, slot_r_hand, 0, 1, 1)) - butterfingers = 1 - else //right active hand - if(!L.equip_to_slot_if_possible(item_to_retrive, slot_r_hand, 0, 1, 1)) - if(!L.equip_to_slot_if_possible(item_to_retrive, slot_l_hand, 0, 1, 1)) - butterfingers = 1 - if(butterfingers) + if(!L.put_in_hands(item_to_retrive)) item_to_retrive.loc = L.loc item_to_retrive.loc.visible_message("The [item_to_retrive.name] suddenly appears!") playsound(get_turf(L),"sound/magic/SummonItems_generic.ogg",50,1) diff --git a/code/modules/spells/spell_types/touch_attacks.dm b/code/modules/spells/spell_types/touch_attacks.dm index 51fa79bccc..bc9df91d05 100644 --- a/code/modules/spells/spell_types/touch_attacks.dm +++ b/code/modules/spells/spell_types/touch_attacks.dm @@ -1,4 +1,4 @@ -/obj/effect/proc_holder/spell/targeted/touch/ +/obj/effect/proc_holder/spell/targeted/touch var/hand_path = "/obj/item/weapon/melee/touch_attack" var/obj/item/weapon/melee/touch_attack/attached_hand = null invocation_type = "none" //you scream on connecting, not summoning @@ -24,17 +24,8 @@ sleep(1) /obj/effect/proc_holder/spell/targeted/touch/proc/ChargeHand(mob/living/carbon/user) - var/hand_handled = 1 attached_hand = new hand_path(src) - if(user.hand) //left active hand - if(!user.equip_to_slot_if_possible(attached_hand, slot_l_hand, 0, 1, 1)) - if(!user.equip_to_slot_if_possible(attached_hand, slot_r_hand, 0, 1, 1)) - hand_handled = 0 - else //right active hand - if(!user.equip_to_slot_if_possible(attached_hand, slot_r_hand, 0, 1, 1)) - if(!user.equip_to_slot_if_possible(attached_hand, slot_l_hand, 0, 1, 1)) - hand_handled = 0 - if(!hand_handled) + if(!user.put_in_hands(attached_hand)) qdel(attached_hand) charge_counter = charge_max attached_hand = null diff --git a/code/modules/spells/spell_types/wizard.dm b/code/modules/spells/spell_types/wizard.dm index 9430b78744..59bb5bc12c 100644 --- a/code/modules/spells/spell_types/wizard.dm +++ b/code/modules/spells/spell_types/wizard.dm @@ -42,7 +42,6 @@ invocation_type = "shout" range = -1 include_user = 1 - centcom_cancast = 0 mutations = list(LASEREYES, HULK) duration = 300 @@ -105,8 +104,6 @@ inner_tele_radius = 0 outer_tele_radius = 6 - centcom_cancast = 0 //prevent people from getting to centcom - action_icon_state = "blink" sound1="sound/magic/blink.ogg" sound2="sound/magic/blink.ogg" @@ -136,25 +133,6 @@ sound1="sound/magic/Teleport_diss.ogg" sound2="sound/magic/Teleport_app.ogg" -/obj/effect/proc_holder/spell/aoe_turf/conjure/forcewall - name = "Forcewall" - desc = "This spell creates an unbreakable wall that lasts for 30 seconds and does not need wizard garb." - - school = "transmutation" - charge_max = 100 - clothes_req = 0 - invocation = "TARCOL MINTI ZHERI" - invocation_type = "whisper" - range = 0 - cooldown_min = 50 //12 deciseconds reduction per rank - - summon_type = list("/obj/effect/forcefield") - summon_lifespan = 300 - - action_icon_state = "shield" - cast_sound = "sound/magic/ForceWall.ogg" - - /obj/effect/proc_holder/spell/aoe_turf/conjure/timestop name = "Stop Time" desc = "This spell stops time for everyone except for you, allowing you to move freely while your enemies and even projectiles are frozen." @@ -250,7 +228,7 @@ duration = 300 sound="sound/magic/Blind.ogg" -/obj/effect/proc_holder/spell/dumbfire/fireball +/obj/effect/proc_holder/spell/fireball name = "Fireball" desc = "This spell fires a fireball at a target and does not require wizard garb." @@ -261,30 +239,65 @@ invocation_type = "shout" range = 20 cooldown_min = 20 //10 deciseconds reduction per rank - - proj_icon_state = "fireball" - proj_name = "a fireball" - proj_type = "/obj/effect/proc_holder/spell/turf/fireball" - - proj_lifespan = 200 - proj_step_delay = 1 - - action_icon_state = "fireball" + var/fireball_type = /obj/item/projectile/magic/fireball + action_icon_state = "fireball0" sound = "sound/magic/Fireball.ogg" -/obj/effect/proc_holder/spell/turf/fireball/cast(turf/T,mob/user = usr) - explosion(T, -1, 0, 2, 3, 0, flame_range = 2) + active = FALSE -/obj/effect/proc_holder/spell/targeted/inflict_handler/fireball - amt_dam_brute = 20 - amt_dam_fire = 25 +/obj/effect/proc_holder/spell/fireball/Click() + var/mob/living/user = usr + if(!istype(user)) + return -/obj/effect/proc_holder/spell/targeted/explosion/fireball - ex_severe = -1 - ex_heavy = -1 - ex_light = 2 - ex_flash = 5 + var/msg + + if(!can_cast(user)) + msg = "You can no longer cast Fireball." + remove_ranged_ability(msg) + return + + if(active) + msg = "You extinguish your fireball...for now." + remove_ranged_ability(msg) + else + msg = "Your prepare to cast your fireball spell! Left-click to cast at a target!" + add_ranged_ability(user, msg, TRUE) + +/obj/effect/proc_holder/spell/fireball/update_icon() + if(!action) + return + action.button_icon_state = "fireball[active]" + action.UpdateButtonIcon() + +/obj/effect/proc_holder/spell/fireball/InterceptClickOn(mob/living/caller, params, atom/target) + if(..()) + return FALSE + + if(!cast_check(0, ranged_ability_user)) + remove_ranged_ability() + return FALSE + + var/list/targets = list(target) + perform(targets,user = ranged_ability_user) + + return TRUE + +/obj/effect/proc_holder/spell/fireball/cast(list/targets, mob/living/user) + var/target = targets[1] //There is only ever one target for fireball + var/turf/T = user.loc + var/turf/U = get_step(user, user.dir) // Get the tile infront of the move, based on their direction + if(!isturf(U) || !isturf(T)) + return 0 + + var/obj/item/projectile/magic/fireball/FB = new fireball_type(user.loc) + FB.current = get_turf(user) + FB.preparePixelProjectile(target, get_turf(target), user) + FB.fire() + user.newtonian_move(get_dir(U, T)) + remove_ranged_ability() //Auto-disable the ability once successfully performed + return 1 /obj/effect/proc_holder/spell/aoe_turf/repulse name = "Repulse" @@ -302,7 +315,7 @@ action_icon_state = "repulse" -/obj/effect/proc_holder/spell/aoe_turf/repulse/cast(list/targets,mob/user = usr) +/obj/effect/proc_holder/spell/aoe_turf/repulse/cast(list/targets,mob/user = usr, var/stun_amt = 2) var/list/thrownatoms = list() var/atom/throwtarget var/distfromcaster @@ -319,15 +332,15 @@ throwtarget = get_edge_target_turf(user, get_dir(user, get_step_away(AM, user))) distfromcaster = get_dist(user, AM) if(distfromcaster == 0) - if(istype(AM, /mob/living)) + if(isliving(AM)) var/mob/living/M = AM M.Weaken(5) M.adjustBruteLoss(5) M << "You're slammed into the floor by [user]!" else - if(istype(AM, /mob/living)) + if(isliving(AM)) var/mob/living/M = AM - M.Weaken(2) + M.Weaken(stun_amt) M << "You're thrown back by [user]!" AM.throw_at_fast(throwtarget, ((Clamp((maxthrow - (Clamp(distfromcaster - 2, 0, distfromcaster))), 3, maxthrow))), 1,user)//So stuff gets tossed around at the same time. @@ -349,4 +362,57 @@ var/mob/living/carbon/C = user playsound(C.loc, 'sound/voice/hiss5.ogg', 80, 1, 1) C.spin(6,1) + ..(targets, user, 3) + +/obj/effect/proc_holder/spell/targeted/sacred_flame + name = "Sacred Flame" + desc = "Makes everyone around you more flammable, and lights yourself on fire." + charge_max = 60 + clothes_req = 0 + invocation = "FI'RAN DADISKO" + invocation_type = "shout" + max_targets = 0 + range = 6 + include_user = 1 + selection_type = "view" + action_icon_state = "sacredflame" + sound = "sound/magic/Fireball.ogg" + +/obj/effect/proc_holder/spell/targeted/sacred_flame/cast(list/targets, mob/user = usr) + for(var/mob/living/L in targets) + L.adjust_fire_stacks(20) + if(isliving(user)) + var/mob/living/U = user + U.IgniteMob() + +/obj/effect/proc_holder/spell/targeted/conjure_item/spellpacket + name = "Thrown Lightning" + desc = "Forged from eldrich energies, a packet of pure power, known as a spell packet will appear in your hand, that when thrown will stun the target." + clothes_req = 1 + item_type = /obj/item/spellpacket/lightningbolt + charge_max = 10 + +/obj/effect/proc_holder/spell/targeted/conjure_item/spellpacket/cast(list/targets, mob/user = usr) ..() + for(var/mob/living/carbon/C in targets) + C.throw_mode_on() + +/obj/item/spellpacket/lightningbolt + name = "\improper Lightning bolt Spell Packet" + desc = "Some birdseed wrapped in cloth that somehow crackles with electricity." + icon = 'icons/obj/toy.dmi' + icon_state = "snappop" + w_class = WEIGHT_CLASS_TINY + +/obj/item/spellpacket/lightningbolt/throw_impact(atom/hit_atom) + if(!..()) + if(isliving(hit_atom)) + var/mob/living/M = hit_atom + M.electrocute_act(80, src, illusion = 1) + qdel(src) + +/obj/item/spellpacket/lightningbolt/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0) + . = ..() + if(ishuman(thrower)) + var/mob/living/carbon/human/H = thrower + H.say("LIGHTNINGBOLT!!") diff --git a/code/modules/station_goals/bsa.dm b/code/modules/station_goals/bsa.dm new file mode 100644 index 0000000000..064619051c --- /dev/null +++ b/code/modules/station_goals/bsa.dm @@ -0,0 +1,323 @@ +// Crew has to build a bluespace cannon +// Cargo orders part for high price +// Requires high amount of power +// Requires high level stock parts +/datum/station_goal/bluespace_cannon + name = "Bluespace Artillery" + +/datum/station_goal/bluespace_cannon/get_report() + return {"Our military presence is inadequate in your sector. + We need you to construct BSA-[rand(1,99)] Artillery position aboard your station. + + Base parts should be availible for shipping by your cargo shuttle. + -Nanotrasen Naval Command"} + +/datum/station_goal/bluespace_cannon/on_report() + //Unlock BSA parts + var/datum/supply_pack/misc/bsa/P = SSshuttle.supply_packs[/datum/supply_pack/misc/bsa] + P.special_enabled = TRUE + +/datum/station_goal/bluespace_cannon/check_completion() + if(..()) + return TRUE + var/obj/machinery/bsa/full/B = locate() + if(B && !B.stat) + return TRUE + return FALSE + +/obj/machinery/bsa + icon = 'icons/obj/machines/particle_accelerator.dmi' + density = 1 + anchored = 1 + +/obj/machinery/bsa/back + name = "Bluespace Artillery Generator" + desc = "Generates cannon pulse. Needs to be linked with a fusor. " + icon_state = "power_box" + +/obj/machinery/bsa/back/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/device/multitool)) + var/obj/item/device/multitool/M = W + M.buffer = src + user << "You store linkage information in [W]'s buffer." + else + return ..() + +/obj/machinery/bsa/front + name = "Bluespace Artillery Bore" + desc = "Do not stand in front of cannon during operation. Needs to be linked with a fusor." + icon_state = "emitter_center" + +/obj/machinery/bsa/front/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/device/multitool)) + var/obj/item/device/multitool/M = W + M.buffer = src + user << "You store linkage information in [W]'s buffer." + else + return ..() + +/obj/machinery/bsa/middle + name = "Bluespace Artillery Fusor" + desc = "Contents classifed by Nanotrasen Naval Command. Needs to be linked with the other BSA parts using multitool." + icon_state = "fuel_chamber" + var/obj/machinery/bsa/back/back + var/obj/machinery/bsa/front/front + +/obj/machinery/bsa/middle/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/device/multitool)) + var/obj/item/device/multitool/M = W + if(M.buffer) + if(istype(M.buffer,/obj/machinery/bsa/back)) + back = M.buffer + M.buffer = null + user << "You link [src] with [back]." + else if(istype(M.buffer,/obj/machinery/bsa/front)) + front = M.buffer + M.buffer = null + user << "You link [src] with [front]." + else + return ..() + +/obj/machinery/bsa/middle/proc/check_completion() + if(!front || !back) + return "No linked parts detected!" + if(front.y != y || back.y != y || !(front.x > x && back.x < x || front.x < x && back.x > x) || front.z != z || back.z != z) + return "Parts misaligned!" + if(!has_space()) + return "Not enough free space!" + +/obj/machinery/bsa/middle/proc/has_space() + var/cannon_dir = get_cannon_direction() + var/x_min + var/x_max + switch(cannon_dir) + if(EAST) + x_min = x - 4 //replace with defines later + x_max = x + 6 + if(WEST) + x_min = x + 4 + x_max = x - 6 + + for(var/turf/T in block(locate(x_min,y-1,z),locate(x_max,y+1,z))) + if(T.density || isspaceturf(T)) + return FALSE + return TRUE + +/obj/machinery/bsa/middle/proc/get_cannon_direction() + if(front.x > x && back.x < x) + return EAST + else if(front.x < x && back.x > x) + return WEST + + +/obj/machinery/bsa/full + name = "Bluespace Artillery" + desc = "Long range bluespace artillery." + icon = 'icons/obj/lavaland/cannon.dmi' + icon_state = "orbital_cannon1" + unsecuring_tool = null + var/static/image/top_layer = null + var/ex_power = 3 + var/power_used_per_shot = 2000000 //enough to kil standard apc - todo : make this use wires instead and scale explosion power with it + var/ready + pixel_y = -32 + pixel_x = -192 + bound_width = 352 + bound_x = -192 + appearance_flags = NONE //Removes default TILE_BOUND + +/obj/machinery/bsa/full/proc/get_front_turf() + switch(dir) + if(WEST) + return locate(x - 6,y,z) + if(EAST) + return locate(x + 4,y,z) + return get_turf(src) + +/obj/machinery/bsa/full/proc/get_back_turf() + switch(dir) + if(WEST) + return locate(x + 4,y,z) + if(EAST) + return locate(x - 6,y,z) + return get_turf(src) + +/obj/machinery/bsa/full/proc/get_target_turf() + switch(dir) + if(WEST) + return locate(1,y,z) + if(EAST) + return locate(world.maxx,y,z) + return get_turf(src) + +/obj/machinery/bsa/full/New(loc,cannon_direction = WEST) + ..() + switch(cannon_direction) + if(WEST) + dir = WEST + pixel_x = -192 + top_layer = image("icons/obj/lavaland/orbital_cannon.dmi", "top_west") + top_layer.layer = ABOVE_MOB_LAYER + icon_state = "cannon_west" + if(EAST) + dir = EAST + top_layer = image("icons/obj/lavaland/orbital_cannon.dmi", "top_east") + top_layer.layer = ABOVE_MOB_LAYER + icon_state = "cannon_east" + add_overlay(top_layer) + reload() + +/obj/machinery/bsa/full/proc/fire(mob/user, turf/bullseye) + var/turf/point = get_front_turf() + for(var/turf/T in getline(get_step(point,dir),get_target_turf())) + T.ex_act(1) + point.Beam(get_target_turf(),icon_state="bsa_beam",time=50,maxdistance = world.maxx) //ZZZAP + + message_admins("[key_name_admin(user)] has launched an artillery strike.") + explosion(bullseye,ex_power,ex_power*2,ex_power*4) + + reload() + +/obj/machinery/bsa/full/proc/reload() + ready = FALSE + use_power(power_used_per_shot) + addtimer(src,"ready_cannon",600) + +/obj/machinery/bsa/full/proc/ready_cannon() + ready = TRUE + +/obj/structure/filler + name = "big machinery part" + density = 1 + anchored = 1 + invisibility = INVISIBILITY_ABSTRACT + var/obj/machinery/parent + +/obj/structure/filler/ex_act() + return + +/obj/item/weapon/circuitboard/machine/bsa/back + name = "circuit board (Bluespace Artillery Generator)" + build_path = /obj/machinery/bsa/back + origin_tech = "engineering=2;combat=2;bluespace=2" //No freebies! + req_components = list( + /obj/item/weapon/stock_parts/capacitor/quadratic = 5, + /obj/item/stack/cable_coil = 2) + +/obj/item/weapon/circuitboard/machine/bsa/middle + name = "circuit board (Bluespace Artillery Fusor)" + build_path = /obj/machinery/bsa/middle + origin_tech = "engineering=2;combat=2;bluespace=2" + req_components = list( + /obj/item/weapon/ore/bluespace_crystal = 20, + /obj/item/stack/cable_coil = 2) + +/obj/item/weapon/circuitboard/machine/bsa/front + name = "circuit board (Bluespace Artillery Bore)" + build_path = /obj/machinery/bsa/front + origin_tech = "engineering=2;combat=2;bluespace=2" + req_components = list( + /obj/item/weapon/stock_parts/manipulator/femto = 5, + /obj/item/stack/cable_coil = 2) + +/obj/item/weapon/circuitboard/machine/computer/bsa_control + name = "circuit board (Bluespace Artillery Controls)" + build_path = /obj/machinery/computer/bsa_control + origin_tech = "engineering=2;combat=2;bluespace=2" + +/obj/machinery/computer/bsa_control + name = "Bluespace Artillery Control" + var/obj/machinery/bsa/full/cannon + var/notice + var/target + use_power = 0 + circuit = /obj/item/weapon/circuitboard/machine/computer/bsa_control + icon = 'icons/obj/machines/particle_accelerator.dmi' + icon_state = "control_boxp" + var/area_aim = FALSE //should also show areas for targeting + +/obj/machinery/computer/bsa_control/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = physical_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "bsa", name, 400, 305, master_ui, state) + ui.open() + +/obj/machinery/computer/bsa_control/ui_data() + var/list/data = list() + data["ready"] = cannon.ready + data["connected"] = cannon + data["notice"] = notice + if(target) + data["target"] = get_target_name() + return data + +/obj/machinery/computer/bsa_control/ui_act(action, params) + if(..()) + return + switch(action) + if("build") + cannon = deploy() + . = TRUE + if("fire") + fire(usr) + . = TRUE + if("recalibrate") + calibrate(usr) + . = TRUE + update_icon() + +/obj/machinery/computer/bsa_control/proc/calibrate(mob/user) + var/list/gps_locators = list() + for(var/obj/item/device/gps/G in GPS_list) //nulls on the list somehow + gps_locators[G.gpstag] = G + + var/list/options = gps_locators + if(area_aim) + options += teleportlocs + var/V = input(user,"Select target", "Select target",null) in options|null + target = options[V] + + +/obj/machinery/computer/bsa_control/proc/get_target_name() + if(istype(target,/area)) + var/area/A = target + return A.name + else if(istype(target,/obj/item/device/gps)) + var/obj/item/device/gps/G = target + return G.gpstag + +/obj/machinery/computer/bsa_control/proc/get_impact_turf() + if(istype(target,/area)) + return pick(get_area_turfs(target)) + else if(istype(target,/obj/item/device/gps)) + return get_turf(target) + +/obj/machinery/computer/bsa_control/proc/fire(mob/user) + if(cannon.stat) + notice = "Cannon unpowered!" + return + notice = null + cannon.fire(user, get_impact_turf()) + +/obj/machinery/computer/bsa_control/proc/deploy(force=FALSE) + var/obj/machinery/bsa/full/prebuilt = locate() in range(7) //In case of adminspawn + if(prebuilt) + return prebuilt + + var/obj/machinery/bsa/middle/centerpiece = locate() in range(7) + if(!centerpiece) + notice = "No BSA parts detected nearby." + return null + notice = centerpiece.check_completion() + if(notice) + return null + //Totally nanite construction system not an immersion breaking spawning + var/datum/effect_system/smoke_spread/s = new + s.set_up(4, 1, get_turf(centerpiece), 0) + s.start() + var/obj/machinery/bsa/full/cannon = new(get_turf(centerpiece),cannon_direction=centerpiece.get_cannon_direction()) + qdel(centerpiece.front) + qdel(centerpiece.back) + qdel(centerpiece) + return cannon diff --git a/code/modules/station_goals/dna_vault.dm b/code/modules/station_goals/dna_vault.dm new file mode 100644 index 0000000000..d92c77c67f --- /dev/null +++ b/code/modules/station_goals/dna_vault.dm @@ -0,0 +1,278 @@ +//Crew has to create dna vault +// Cargo can order DNA samplers + DNA vault boards +// DNA vault requires x animals ,y plants, z human dna +// DNA vaults require high tier stock parts and cold +// After completion each crewmember can receive single upgrade chosen out of 2 for the mob. +#define VAULT_TOXIN "Toxin Adaptation" +#define VAULT_NOBREATH "Lung Enhancement" +#define VAULT_FIREPROOF "Thermal Regulation" +#define VAULT_STUNTIME "Neural Repathing" +#define VAULT_ARMOUR "Bone Reinforcement" + +/datum/station_goal/dna_vault + name = "DNA Vault" + var/animal_count + var/human_count + var/plant_count + +/datum/station_goal/dna_vault/New() + ..() + animal_count = rand(15,20) //might be too few given ~15 roundstart stationside ones + human_count = rand(round(0.75 * ticker.totalPlayersReady) , ticker.totalPlayersReady) // 75%+ roundstart population. + var/non_standard_plants = non_standard_plants_count() + plant_count = rand(round(0.5 * non_standard_plants),round(0.7 * non_standard_plants)) + +/datum/station_goal/dna_vault/proc/non_standard_plants_count() + . = 0 + for(var/T in subtypesof(/obj/item/seeds)) //put a cache if it's used anywhere else + var/obj/item/seeds/S = T + if(initial(S.rarity) > 0) + .++ + +/datum/station_goal/dna_vault/get_report() + return {"Our long term prediction systems say there's 99% chance of system-wide cataclysm in near future. + We need you to construct DNA Vault aboard your station. + + DNA Vault needs to contain samples of: + [animal_count] unique animal data + [plant_count] unique non-standard plant data + [human_count] unique sapient humanoid DNA data + + Base vault parts should be availible for shipping by your cargo shuttle."} + + +/datum/station_goal/dna_vault/on_report() + var/datum/supply_pack/P = SSshuttle.supply_packs[/datum/supply_pack/misc/dna_vault] + P.special_enabled = TRUE + + P = SSshuttle.supply_packs[/datum/supply_pack/misc/dna_probes] + P.special_enabled = TRUE + +/datum/station_goal/dna_vault/check_completion() + if(..()) + return TRUE + for(var/obj/machinery/dna_vault/V in machines) + if(V.animals.len >= animal_count && V.plants.len >= plant_count && V.dna.len >= human_count) + return TRUE + return FALSE + + +/obj/item/device/dna_probe + name = "DNA Sampler" + desc = "Can be used to take chemical and genetic samples of pretty much anything." + icon = 'icons/obj/syringe.dmi' + item_state = "hypo" + icon_state = "hypo" + flags = NOBLUDGEON + var/list/animals = list() + var/list/plants = list() + var/list/dna = list() + +/obj/item/device/dna_probe/proc/clear_data() + animals = list() + plants = list() + dna = list() + +var/list/non_simple_animals = typecacheof(list(/mob/living/carbon/monkey,/mob/living/carbon/alien)) + +/obj/item/device/dna_probe/afterattack(atom/target, mob/user, proximity) + ..() + if(!proximity || !target) + return + //tray plants + if(istype(target,/obj/machinery/hydroponics)) + var/obj/machinery/hydroponics/H = target + if(!H.myseed) + return + if(!H.harvest)// So it's bit harder. + user << "Plants needs to be ready to harvest to perform full data scan." //Because space dna is actually magic + return + if(plants[H.myseed.type]) + user << "Plant data already present in local storage." + return + plants[H.myseed.type] = 1 + user << "Plant data added to local storage." + + //animals + if(isanimal(target) || is_type_in_typecache(target,non_simple_animals)) + if(isanimal(target)) + var/mob/living/simple_animal/A = target + if(!A.healable)//simple approximation of being animal not a robot or similar + user << "No compatibile DNA detected" + return + if(animals[target.type]) + user << "Animal data already present in local storage." + return + animals[target.type] = 1 + user << "Animal data added to local storage." + + //humans + if(ishuman(target)) + var/mob/living/carbon/human/H = target + if(dna[H.dna.uni_identity]) + user << "Humanoid data already present in local storage." + return + dna[H.dna.uni_identity] = 1 + user << "Humanoid data added to local storage." + + +/obj/item/weapon/circuitboard/machine/dna_vault + name = "circuit board (DNA Vault)" + build_path = /obj/machinery/dna_vault + origin_tech = "engineering=2;combat=2;bluespace=2" //No freebies! + req_components = list( + /obj/item/weapon/stock_parts/capacitor/quadratic = 5, + /obj/item/stack/cable_coil = 2) + +/obj/machinery/dna_vault + name = "DNA Vault" + desc = "Break glass in case of apocalypse." + icon = 'icons/obj/machines/dna_vault.dmi' + icon_state = "vault" + density = 1 + anchored = 1 + idle_power_usage = 5000 + pixel_x = -32 + pixel_y = -64 + luminosity = 1 + + //High defaults so it's not completed automatically if there's no station goal + var/animals_max = 100 + var/plants_max = 100 + var/dna_max = 100 + var/list/animals = list() + var/list/plants = list() + var/list/dna = list() + + var/completed = FALSE + var/list/power_lottery = list() + + var/list/obj/structure/fillers = list() + +/obj/machinery/dna_vault/New() + //TODO: Replace this,bsa and gravgen with some big machinery datum + var/list/occupied = list() + for(var/direct in list(EAST,WEST,SOUTHEAST,SOUTHWEST)) + occupied += get_step(src,direct) + occupied += locate(x+1,y-2,z) + occupied += locate(x-1,y-2,z) + + for(var/T in occupied) + var/obj/structure/filler/F = new(T) + F.parent = src + fillers += F + + if(ticker.mode) + for(var/datum/station_goal/dna_vault/G in ticker.mode.station_goals) + animals_max = G.animal_count + plants_max = G.plant_count + dna_max = G.human_count + break + +/obj/machinery/dna_vault/Destroy() + for(var/V in fillers) + var/obj/structure/filler/filler = V + filler.parent = null + qdel(filler) + . = ..() + + +/obj/machinery/dna_vault/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = physical_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + roll_powers(user) + ui = new(user, src, ui_key, "dna_vault", name, 350, 400, master_ui, state) + ui.open() + + +/obj/machinery/dna_vault/proc/roll_powers(mob/user) + if(user in power_lottery) + return + var/list/L = list() + var/list/possible_powers = list(VAULT_TOXIN,VAULT_NOBREATH,VAULT_FIREPROOF,VAULT_STUNTIME,VAULT_ARMOUR) + L += pick_n_take(possible_powers) + L += pick_n_take(possible_powers) + power_lottery[user] = L + +/obj/machinery/dna_vault/ui_data(mob/user) //TODO Make it % bars maybe + var/list/data = list() + data["plants"] = plants.len + data["plants_max"] = plants_max + data["animals"] = animals.len + data["animals_max"] = animals_max + data["dna"] = dna.len + data["dna_max"] = dna_max + data["completed"] = completed + data["used"] = TRUE + data["choiceA"] = "" + data["choiceB"] = "" + if(user && completed) + var/list/L = power_lottery[user] + if(L && L.len) + data["used"] = FALSE + data["choiceA"] = L[1] + data["choiceB"] = L[2] + return data + +/obj/machinery/dna_vault/ui_act(action, params) + if(..()) + return + switch(action) + if("gene") + upgrade(usr,params["choice"]) + . = TRUE + +/obj/machinery/dna_vault/proc/check_goal() + if(plants.len >= plants_max && animals.len >= animals_max && dna.len >= dna_max) + completed = TRUE + + +/obj/machinery/dna_vault/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/device/dna_probe)) + var/obj/item/device/dna_probe/P = I + var/uploaded = 0 + for(var/plant in P.plants) + if(!plants[plant]) + uploaded++ + plants[plant] = 1 + for(var/animal in P.animals) + if(!animals[animal]) + uploaded++ + animals[animal] = 1 + for(var/ui in P.dna) + if(!dna[ui]) + uploaded++ + dna[ui] = 1 + check_goal() + user << "[uploaded] new datapoints uploaded." + else + return ..() + + + +/obj/machinery/dna_vault/proc/upgrade(mob/living/carbon/human/H,upgrade_type) + if(!(upgrade_type in power_lottery[H])) + return + var/datum/species/S = H.dna.species + switch(upgrade_type) + if(VAULT_TOXIN) + H << "You feel resistant to airborne toxins." + if(locate(/obj/item/organ/lungs) in H.internal_organs) + var/obj/item/organ/lungs/L = H.internal_organs_slot["lungs"] + L.tox_breath_dam_min = 0 + L.tox_breath_dam_max = 0 + S.species_traits |= VIRUSIMMUNE + if(VAULT_NOBREATH) + H << "Your lungs feel great." + S.species_traits |= NOBREATH + if(VAULT_FIREPROOF) + H << "Your feel fireproof." + S.burnmod = 0.5 + S.heatmod = 0 + if(VAULT_STUNTIME) + H << "Nothing can keep you down for long." + S.stunmod = 0.5 + if(VAULT_ARMOUR) + H << "Your feel tough." + S.armor = 30 + power_lottery[H] = list() \ No newline at end of file diff --git a/code/modules/station_goals/shield.dm b/code/modules/station_goals/shield.dm new file mode 100644 index 0000000000..b82ee24952 --- /dev/null +++ b/code/modules/station_goals/shield.dm @@ -0,0 +1,181 @@ +//Station Shield +// A chain of satellites encircles the station +// Satellites be actived to generate a shield that will block unorganic matter from passing it. +/datum/station_goal/station_shield + name = "Station Shield" + var/coverage_goal = 500 + +/datum/station_goal/station_shield/get_report() + return {"The station is located in a zone full of space debris. + We have a prototype shielding system you will deploy to reduce collision related accidents. + + You can order the satellites and control systems through cargo shuttle. + "} + + +/datum/station_goal/station_shield/on_report() + //Unlock + var/datum/supply_pack/P = SSshuttle.supply_packs[/datum/supply_pack/misc/shield_sat] + P.special_enabled = TRUE + + P = SSshuttle.supply_packs[/datum/supply_pack/misc/shield_sat_control] + P.special_enabled = TRUE + +/datum/station_goal/station_shield/check_completion() + if(..()) + return TRUE + if(get_coverage() >= coverage_goal) + return TRUE + return FALSE + +/datum/station_goal/proc/get_coverage() + var/list/coverage = list() + for(var/obj/machinery/satellite/meteor_shield/A in machines) + if(!A.active || A.z != ZLEVEL_STATION) + continue + coverage |= view(A.kill_range,A) + return coverage.len + +/obj/item/weapon/circuitboard/machine/computer/sat_control + name = "circuit board (Satellite Network Control)" + build_path = /obj/machinery/computer/sat_control + origin_tech = "engineering=3" + +/obj/machinery/computer/sat_control + name = "Satellite control" + desc = "Used to control the satellite network." + circuit = /obj/item/weapon/circuitboard/machine/computer/sat_control + var/notice + +/obj/machinery/computer/sat_control/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = physical_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "sat_control", name, 400, 305, master_ui, state) + ui.open() + +/obj/machinery/computer/sat_control/ui_act(action, params) + if(..()) + return + switch(action) + if("toggle") + toggle(text2num(params["id"])) + . = TRUE + +/obj/machinery/computer/sat_control/proc/toggle(id) + for(var/obj/machinery/satellite/S in machines) + if(S.id == id && S.z == z) + S.toggle() + +/obj/machinery/computer/sat_control/ui_data() + var/list/data = list() + + data["satellites"] = list() + for(var/obj/machinery/satellite/S in machines) + data["satellites"] += list(list( + "id" = S.id, + "active" = S.active, + "mode" = S.mode + )) + data["notice"] = notice + + + var/datum/station_goal/station_shield/G = locate() in ticker.mode.station_goals + if(G) + data["meteor_shield"] = 1 + data["meteor_shield_coverage"] = G.get_coverage() + data["meteor_shield_coverage_max"] = G.coverage_goal + return data + + +/obj/machinery/satellite + name = "Defunct Satellite" + desc = "" + icon = 'icons/obj/machines/satellite.dmi' + icon_state = "sat_inactive" + var/mode = "NTPROBEV0.8" + var/active = FALSE + density = 1 + var/static/gid = 0 + var/id = 0 + +/obj/machinery/satellite/New() + ..() + id = gid++ + +/obj/machinery/satellite/interact(mob/user) + toggle(user) + +/obj/machinery/satellite/proc/toggle(mob/user) + if(!active && !isinspace()) + if(user) + user << "You can only active the [src] in space." + return FALSE + if(user) + user << "You [active ? "deactivate": "activate"] the [src]" + active = !active + if(active) + animate(src, pixel_y = 2, time = 10, loop = -1) + anchored = 1 + else + animate(src, pixel_y = 0, time = 10) + anchored = 0 + update_icon() + +/obj/machinery/satellite/update_icon() + icon_state = active ? "sat_active" : "sat_inactive" + +/obj/machinery/satellite/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/device/multitool)) + user << "// NTSAT-[id] // Mode : [active ? "PRIMARY" : "STANDBY"] //[emagged ? "DEBUG_MODE //" : ""]" + else + return ..() + +/obj/machinery/satellite/meteor_shield + name = "Meteor Shield Satellite" + desc = "Meteor Point Defense Satellite" + mode = "M-SHIELD" + var/kill_range = 10 + +/obj/machinery/satellite/meteor_shield/proc/space_los(meteor) + for(var/turf/T in getline(src,meteor)) + if(!isspaceturf(T)) + return FALSE + return TRUE + +/obj/machinery/satellite/meteor_shield/process() + if(!active) + return + for(var/obj/effect/meteor/M in meteor_list) + if(M.z != z) + continue + if(get_dist(M,src) > kill_range) + continue + if(!emagged && space_los(M)) + Beam(get_turf(M),icon_state="sat_beam",time=5,maxdistance=kill_range) + qdel(M) + +/obj/machinery/satellite/meteor_shield/toggle(user) + if(!..(user)) + return FALSE + if(emagged) + if(active) + change_meteor_chance(2) + else + change_meteor_chance(0.5) + +/obj/machinery/satellite/meteor_shield/proc/change_meteor_chance(mod) + var/datum/round_event_control/E = locate(/datum/round_event_control/meteor_wave) in SSevent.control + if(E) + E.weight *= mod + +/obj/machinery/satellite/meteor_shield/Destroy() + . = ..() + if(active && emagged) + change_meteor_chance(0.5) + +/obj/machinery/satellite/meteor_shield/emag_act() + if(!emagged) + emagged = 1 + if(active) + change_meteor_chance(2) diff --git a/code/modules/station_goals/station_goal.dm b/code/modules/station_goals/station_goal.dm new file mode 100644 index 0000000000..daf6ee7dd1 --- /dev/null +++ b/code/modules/station_goals/station_goal.dm @@ -0,0 +1,64 @@ +//TODO +// Admin button to override with your own +// Sabotage objective for tators +// Multiple goals with less impact but more department focused + +/datum/station_goal + var/name = "Generic Goal" + var/weight = 1 //In case of multiple goals later. + var/required_crew = 10 + var/list/gamemode_blacklist = list() + var/completed = FALSE + var/report_message = "Complete this goal." + +/datum/station_goal/proc/send_report() + priority_announce("Priority Nanotrasen directive received. Project \"[name]\" details inbound.", "Incoming Priority Message", 'sound/AI/commandreport.ogg') + print_command_report(get_report(),"Nanotrasen Directive [pick(phonetic_alphabet)] \Roman[rand(1,50)]") + on_report() + +/datum/station_goal/proc/on_report() + //Additional unlocks/changes go here + return + +/datum/station_goal/proc/get_report() + return report_message + +/datum/station_goal/proc/check_completion() + return completed + +/datum/station_goal/proc/print_result() + if(check_completion()) + world << "Station Goal : [name] : Completed!" + else + world << "Station Goal : [name] : Failed!" + +/datum/station_goal/Destroy() + ticker.mode.station_goals -= src + . = ..() + +/datum/station_goal/Topic(href, href_list) + ..() + + if(!check_rights(R_ADMIN)) + return + + if(href_list["announce"]) + on_report() + send_report() + else if(href_list["remove"]) + qdel(src) + +/* +//Crew has to create alien intelligence detector +// Requires a lot of minerals +// Dish requires a lot of power +// Needs five? AI's for decoding purposes +/datum/station_goal/seti + name = "SETI Project" + +//Crew Sweep +//Blood samples and special scans of amount of people on roundstart manifest. +//Should keep sec busy. +//Maybe after completion you'll get some ling detecting gear or some station wide DNA scan ? + +*/ \ No newline at end of file diff --git a/code/modules/stock_market/articles.dm b/code/modules/stock_market/articles.dm index cbf3180f7e..0008b2f5cf 100644 --- a/code/modules/stock_market/articles.dm +++ b/code/modules/stock_market/articles.dm @@ -1,13 +1,13 @@ -proc/consonant() +/proc/consonant() return pick("B","C","D","F","G","H","J","K","L","M","N","P","Q","R","S","T","V","W","X","Y","Z") -proc/vowel() +/proc/vowel() return pick("A", "E", "I", "O", "U") -proc/ucfirst(var/S) +/proc/ucfirst(var/S) return "[uppertext(ascii2text(text2ascii(S, 1)))][copytext(S, 2)]" -proc/ucfirsts(var/S) +/proc/ucfirsts(var/S) var/list/L = splittext(S, " ") var/list/M = list() for (var/P in L) @@ -16,7 +16,7 @@ proc/ucfirsts(var/S) var/global/list/FrozenAccounts = list() -proc/list_frozen() +/proc/list_frozen() for (var/A in FrozenAccounts) usr << "[A]: [length(FrozenAccounts[A])] borrows" diff --git a/code/modules/stock_market/computer.dm b/code/modules/stock_market/computer.dm index 45125b084c..6c95f3fcea 100644 --- a/code/modules/stock_market/computer.dm +++ b/code/modules/stock_market/computer.dm @@ -7,12 +7,10 @@ var/logged_in = "Cargo Department" var/vmode = 1 clockwork = TRUE //it'd look weird - light_color = LIGHT_COLOR_GREEN - light_range_on = 2 /obj/machinery/computer/stockexchange/New() ..() - logged_in = "[world.name] Cargo Department" + logged_in = "[station_name()] Cargo Department" /obj/machinery/computer/stockexchange/proc/balance() if (!logged_in) @@ -85,25 +83,6 @@ a.updated { dat += "Prominent products:
    " for (var/prod in S.products) dat += "[prod]
    " - dat += "
    Borrow options:
    " - if (S.borrow_brokers.len) - for (var/datum/borrow/B in S.borrow_brokers) - dat += "[B.broker] offers [B.share_amount] shares for borrowing, for a deposit of [B.deposit * 100]% of the shares' value.
    " - dat += "The broker expects the return of the shares after [B.lease_time / 600] minutes, with a grace period of [B.grace_time / 600] minute(s).
    " - dat += "This offer expires in [(B.offer_expires - world.time) / 600] minutes.
    " - dat += "Note: If you do not return all shares by the end of the grace period, you will lose your deposit and the value of all unreturned shares at current value from your account!
    " - dat += "Note: You cannot withdraw or transfer money off your account while a borrow is active.
    " - dat += "Take offer (Estimated deposit: [B.deposit * S.current_value * B.share_amount] credits)

    " - else - dat += "No borrow options available

    " - for (var/datum/borrow/B in S.borrows) - if (B.borrower == logged_in) - dat += "You are borrowing [B.share_amount] shares from [B.broker].
    " - dat += "Your deposit riding on the deal is [B.deposit] credits.
    " - if (world.time < B.lease_expires) - dat += "You are expected to return the borrowed shares in [(B.lease_expires - world.time) / 600] minutes.

    " - else - dat += "The brokering agency is collecting. You still owe them [B.share_debt] shares, which you have [(B.grace_expires - world.time) / 600] minutes to present.

    " var/news = 0 if (logged_in) var/list/LR = stockExchange.last_read[S] @@ -269,7 +248,7 @@ a.updated { usr.machine = src if (href_list["viewhistory"]) - var/datum/stock/S = locate(href_list["viewhistory"]) + var/datum/stock/S = locate(href_list["viewhistory"]) in stockExchange.stocks if (S) S.displayValues(usr) @@ -277,20 +256,15 @@ a.updated { logged_in = null if (href_list["buyshares"]) - var/datum/stock/S = locate(href_list["buyshares"]) + var/datum/stock/S = locate(href_list["buyshares"]) in stockExchange.stocks if (S) buy_some_shares(S, usr) if (href_list["sellshares"]) - var/datum/stock/S = locate(href_list["sellshares"]) + var/datum/stock/S = locate(href_list["sellshares"]) in stockExchange.stocks if (S) sell_some_shares(S, usr) - if (href_list["take"]) - var/datum/borrow/B = locate(href_list["take"]) - if (B && !B.lease_expires) - do_borrowing_deal(B, usr) - if (href_list["show_logs"]) var/dat = "Stock Transaction Logs

    Stock Transaction Logs


    " for(var/D in stockExchange.logs) diff --git a/code/modules/stock_market/events.dm b/code/modules/stock_market/events.dm index 1e34fddf03..72f9858ea3 100644 --- a/code/modules/stock_market/events.dm +++ b/code/modules/stock_market/events.dm @@ -165,7 +165,7 @@ "public indecency", "public intoxication", "trespassing", "loitering", "littering", "vigilantism", "squatting", "panhandling", "arson", "spacepodjacking", "shuttlejacking", "carjacking", "singularityjacking", "dereliction of duty", "spacecraft piracy", "music piracy", "tabletop game piracy", "software piracy", "escaping from space prison", "seniornapping", "clownnapping", "corginapping", "catnapping", "sleeping on the job", "terrorism", "counterterrorism", "drug distribution", "insubordination", "jaywalking", "owning a computer", "owning a cellphone", "owning a PDA", "owning a pAI", "adultery", - "committing an unnatural act with another person", "corrupting public morals", "skateboarding without a license", "shitcurity", "bestiality", "erotic roleplay") + "committing an unnatural act with another person", "corrupting public morals", "skateboarding without a license", "shitcurity", "bestiality", "erotic roleplay", "accidentally strangling a prostitute") while (prob(60) && O.len > 2) var/offense = pick(O) O -= offense @@ -225,4 +225,4 @@ else article += "[tname] has a prior history of similar misdeeds and we're confident the charges will stand. For investors, now would be an ideal time to %sell%" A.article = A.detokenize(article, company.industry.tokens) - return A \ No newline at end of file + return A diff --git a/code/modules/stock_market/stocks.dm b/code/modules/stock_market/stocks.dm index 6a6b6600d9..9969136ec5 100644 --- a/code/modules/stock_market/stocks.dm +++ b/code/modules/stock_market/stocks.dm @@ -90,7 +90,7 @@ /datum/stock/proc/frc(amt) var/shares = available_shares + outside_shareholders * average_shares var/fr = amt / 100 / shares * fluctuational_coefficient * fluctuation_rate * max(-(current_trend / 100), 1) - if (fr < 0 && speculation < 0 || fr > 0 && speculation > 0) + if ((fr < 0 && speculation < 0) || (fr > 0 && speculation > 0)) fr *= max(abs(speculation) / 5, 1) else fr /= max(abs(speculation) / 5, 1) @@ -139,8 +139,11 @@ speculation += rand(-400, 0) / 1000 * speculation if (prob(1) && prob(5)) // pop that bubble speculation += rand(-4000, 0) / 1000 * speculation - - current_value += (speculation / rand(25000, 50000) + performance / rand(100, 800)) * current_value + var/fucking_stock_spikes = current_value + 500 + var/piece_of_shit_fuck = current_value - 500 + var/i_hate_this_code = (speculation / rand(25000, 50000) + performance / rand(100, 800)) * current_value + if(i_hate_this_code < fucking_stock_spikes || i_hate_this_code > piece_of_shit_fuck) + current_value += i_hate_this_code if (current_value < 5) current_value = 5 @@ -306,4 +309,4 @@ return 0 /datum/stock/proc/displayValues(var/mob/user) - user << browse(plotBarGraph(values, "[name] share value per share"), "window=stock_[name];size=450x450") \ No newline at end of file + user << browse(plotBarGraph(values, "[name] share value per share"), "window=stock_[name];size=450x450") diff --git a/code/modules/surgery/amputation.dm b/code/modules/surgery/amputation.dm index 1e13586eea..2ebe45f2d3 100644 --- a/code/modules/surgery/amputation.dm +++ b/code/modules/surgery/amputation.dm @@ -2,8 +2,10 @@ /datum/surgery/amputation name = "amputation" steps = list(/datum/surgery_step/incise, /datum/surgery_step/clamp_bleeders, /datum/surgery_step/retract_skin, /datum/surgery_step/saw, /datum/surgery_step/clamp_bleeders, /datum/surgery_step/sever_limb) - species = list(/mob/living/carbon/human) + species = list(/mob/living/carbon/human, /mob/living/carbon/monkey) possible_locs = list("r_arm", "l_arm", "l_leg", "r_leg", "head") + requires_organic_bodypart = 0 + /datum/surgery_step/sever_limb name = "sever limb" @@ -16,7 +18,6 @@ /datum/surgery_step/sever_limb/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) var/mob/living/carbon/human/L = target user.visible_message("[user] severs [L]'s [parse_zone(target_zone)]!", "You sever [L]'s [parse_zone(target_zone)].") - var/obj/item/bodypart/BP = L.get_bodypart(target_zone) - if(BP) - BP.drop_limb() + if(surgery.operated_bodypart) + surgery.operated_bodypart.drop_limb() return 1 \ No newline at end of file diff --git a/code/modules/surgery/bodyparts/bodyparts.dm b/code/modules/surgery/bodyparts/bodyparts.dm index 8194bcc4a7..d8a132363c 100644 --- a/code/modules/surgery/bodyparts/bodyparts.dm +++ b/code/modules/surgery/bodyparts/bodyparts.dm @@ -4,17 +4,22 @@ desc = "why is it detached..." force = 3 throwforce = 3 + icon = 'icons/mob/human_parts.dmi' icon_state = "" - var/mob/living/carbon/human/owner = null - var/status = ORGAN_ORGANIC + layer = BELOW_MOB_LAYER //so it isn't hidden behind objects when on the floor + var/mob/living/carbon/owner = null + var/mob/living/carbon/original_owner = null + var/status = BODYPART_ORGANIC var/body_zone //"chest", "l_arm", etc , used for def_zone var/body_part = null //bitflag used to check which clothes cover this bodypart + var/use_digitigrade = NOT_DIGITIGRADE //Used for alternate legs, useless elsewhere var/brutestate = 0 var/burnstate = 0 var/brute_dam = 0 var/burn_dam = 0 var/max_damage = 0 var/list/embedded_objects = list() + var/held_index = 0 //are we a hand? if so, which one! //Coloring and proper item icon update var/skin_tone = "" @@ -26,10 +31,14 @@ var/mutation_color = "" var/no_update = 0 + var/animal_origin = null //for nonhuman bodypart (e.g. monkey) + var/dismemberable = 1 //whether it can be dismembered with a weapon. + var/px_x = 0 var/px_y = 0 - var/state_flags + var/species_flags_list = list() + var/dmg_overlay_type //the type of damage overlay (if any) to use when this bodypart is bruised/burned. /obj/item/bodypart/examine(mob/user) ..() @@ -38,6 +47,8 @@ if(burn_dam > 0) user << "This limb has [burn_dam > 30 ? "severe" : "minor"] burns." +/obj/item/bodypart/blob_act() + take_damage(max_damage) /obj/item/bodypart/Destroy() if(owner) @@ -48,10 +59,10 @@ /obj/item/bodypart/attack(mob/living/carbon/C, mob/user) if(ishuman(C)) var/mob/living/carbon/human/H = C - if(EASYLIMBATTACHMENT in H.dna.species.specflags) - if(!H.get_bodypart(body_zone)) + if(EASYLIMBATTACHMENT in H.dna.species.species_traits) + if(!H.get_bodypart(body_zone) && !animal_origin) if(H == user) - H.visible_message("[H] jams [src] into \his empty socket!",\ + H.visible_message("[H] jams [src] into [H.p_their()] empty socket!",\ "You force [src] into your empty socket, and it locks into place!") else H.visible_message("[user] jams [src] into [H]'s empty socket!",\ @@ -68,8 +79,8 @@ user << "There is nothing left inside [src]!" return playsound(loc, 'sound/weapons/slice.ogg', 50, 1, -1) - user.visible_message("[user] begins to cut through the bone in [src].",\ - "You begin to cut through the bone in [src]...") + user.visible_message("[user] begins to cut open [src].",\ + "You begin to cut open [src]...") if(do_after(user, 54, target = src)) drop_organs(user) else @@ -77,25 +88,30 @@ /obj/item/bodypart/throw_impact(atom/hit_atom) ..() - playsound(get_turf(src), 'sound/misc/splort.ogg', 50, 1, -1) + if(status != BODYPART_ROBOTIC) + playsound(get_turf(src), 'sound/misc/splort.ogg', 50, 1, -1) + pixel_x = rand(-3, 3) + pixel_y = rand(-3, 3) +//empties the bodypart from its organs and other things inside it /obj/item/bodypart/proc/drop_organs(mob/user) var/turf/T = get_turf(src) - playsound(T, 'sound/misc/splort.ogg', 50, 1, -1) + if(status != BODYPART_ROBOTIC) + playsound(T, 'sound/misc/splort.ogg', 50, 1, -1) for(var/obj/item/I in src) - I.loc = T + I.forceMove(T) //Applies brute and burn damage to the organ. Returns 1 if the damage-icon states changed at all. //Damage will not exceed max_damage using this proc //Cannot apply negative damage -/obj/item/bodypart/proc/take_damage(brute, burn) +/obj/item/bodypart/proc/receive_damage(brute, burn, updating_health = 1) if(owner && (owner.status_flags & GODMODE)) return 0 //godmode - brute = max(brute,0) - burn = max(burn,0) + brute = max(brute * config.damage_multiplier,0) + burn = max(burn * config.damage_multiplier,0) - if(status == ORGAN_ROBOTIC) //This makes robolimbs not damageable by chems and makes it stronger + if(status == BODYPART_ROBOTIC) //This makes robolimbs not damageable by chems and makes it stronger brute = max(0, brute - 5) burn = max(0, burn - 4) @@ -120,7 +136,7 @@ burn_dam += can_inflict else return 0 - if(owner) + if(owner && updating_health) owner.updatehealth() return update_bodypart_damage_state() @@ -128,17 +144,17 @@ //Heals brute and burn damage for the organ. Returns 1 if the damage-icon states changed at all. //Damage cannot go below zero. //Cannot remove negative damage (i.e. apply damage) -/obj/item/bodypart/proc/heal_damage(brute, burn, robotic) +/obj/item/bodypart/proc/heal_damage(brute, burn, only_robotic = 0, only_organic = 1, updating_health = 1) - if(robotic && status != ORGAN_ROBOTIC) //This makes organic limbs not heal when the proc is in Robotic mode. + if(only_robotic && status != BODYPART_ROBOTIC) //This makes organic limbs not heal when the proc is in Robotic mode. return - if(!robotic && status == ORGAN_ROBOTIC) //This makes robolimbs not healable by chems. + if(only_organic && status != BODYPART_ORGANIC) //This makes robolimbs not healable by chems. return brute_dam = max(brute_dam - brute, 0) burn_dam = max(burn_dam - burn, 0) - if(owner) + if(owner && updating_health) owner.updatehealth() return update_bodypart_damage_state() @@ -151,14 +167,13 @@ //Updates an organ's brute/burn states for use by update_damage_overlays() //Returns 1 if we need to update overlays. 0 otherwise. /obj/item/bodypart/proc/update_bodypart_damage_state() - if(status == ORGAN_ORGANIC) //Robotic limbs show no damage - RR - var/tbrute = round( (brute_dam/max_damage)*3, 1 ) - var/tburn = round( (burn_dam/max_damage)*3, 1 ) - if((tbrute != brutestate) || (tburn != burnstate)) - brutestate = tbrute - burnstate = tburn - return 1 - return 0 + var/tbrute = round( (brute_dam/max_damage)*3, 1 ) + var/tburn = round( (burn_dam/max_damage)*3, 1 ) + if((tbrute != brutestate) || (tburn != burnstate)) + brutestate = tbrute + burnstate = tburn + return 1 + return 0 @@ -177,47 +192,66 @@ owner.update_damage_overlays() //we inform the bodypart of the changes that happened to the owner, or give it the informations from a source mob. -/obj/item/bodypart/proc/update_limb(dropping_limb, mob/living/carbon/human/source) - var/mob/living/carbon/human/H +/obj/item/bodypart/proc/update_limb(dropping_limb, mob/living/carbon/source) + var/mob/living/carbon/C if(source) - H = source + C = source + if(!original_owner) + original_owner = source + else if(original_owner && owner != original_owner) //Foreign limb + no_update = 1 else - H = owner - if(!istype(H)) - return + C = owner + no_update = 0 - should_draw_greyscale = FALSE - - var/datum/species/S = H.dna.species - species_id = S.limbs_id - - if(S.use_skintones) - skin_tone = H.skin_tone - should_draw_greyscale = TRUE - else - skin_tone = "" - - body_gender = H.gender - should_draw_gender = S.sexes - - if(MUTCOLORS in S.specflags) - if(S.fixed_mut_color) - species_color = S.fixed_mut_color - else - species_color = H.dna.features["mcolor"] - should_draw_greyscale = TRUE - else - species_color = "" - - if(H.disabilities & HUSK) - species_id = "husk" + if(C.disabilities & HUSK) + species_id = "husk" //overrides species_id + dmg_overlay_type = "" //no damage overlay shown when husked should_draw_gender = FALSE should_draw_greyscale = FALSE + no_update = 1 - if(!dropping_limb && H.dna.check_mutation(HULK)) - mutation_color = "00aa00" - else - mutation_color = "" + if(no_update) + return + + if(!animal_origin) + var/mob/living/carbon/human/H = C + should_draw_greyscale = FALSE + + var/datum/species/S = H.dna.species + species_id = S.limbs_id + species_flags_list = H.dna.species.species_traits + + if(S.use_skintones) + skin_tone = H.skin_tone + should_draw_greyscale = TRUE + else + skin_tone = "" + + body_gender = H.gender + should_draw_gender = S.sexes + + if(MUTCOLORS in S.species_traits) + if(S.fixed_mut_color) + species_color = S.fixed_mut_color + else + species_color = H.dna.features["mcolor"] + should_draw_greyscale = TRUE + else + species_color = "" + + if(!dropping_limb && H.dna.check_mutation(HULK)) + mutation_color = "00aa00" + else + mutation_color = "" + + dmg_overlay_type = S.damage_overlay_type + + else if(animal_origin == MONKEY_BODYPART) //currently monkeys are the only non human mob to have damage overlays. + dmg_overlay_type = animal_origin + + if(status == BODYPART_ROBOTIC) + dmg_overlay_type = "robotic" if(dropping_limb) no_update = 1 //when attached, the limb won't be affected by the appearance changes of its mob owner. @@ -225,28 +259,54 @@ //to update the bodypart's icon when not attached to a mob /obj/item/bodypart/proc/update_icon_dropped() cut_overlays() - var/image/I = get_limb_icon(1) - if(I) + var/list/standing = get_limb_icon(1) + if(!standing.len) + icon_state = initial(icon_state)//no overlays found, we default back to initial icon. + return + for(var/image/I in standing) I.pixel_x = px_x I.pixel_y = px_y - add_overlay(I) + add_overlay(standing) //Gives you a proper icon appearance for the dismembered limb /obj/item/bodypart/proc/get_limb_icon(dropped) - var/image/I + icon_state = "" //to erase the default sprite, we're building the visual aspects of the bodypart through overlays alone. + + var/list/standing = list() + + var/image_dir + if(dropped) + image_dir = SOUTH + if(dmg_overlay_type) + if(brutestate) + standing += image("icon"='icons/mob/dam_mob.dmi', "icon_state"="[dmg_overlay_type]_[body_zone]_[brutestate]0", "layer"=-DAMAGE_LAYER, "dir"=image_dir) + if(burnstate) + standing += image("icon"='icons/mob/dam_mob.dmi', "icon_state"="[dmg_overlay_type]_[body_zone]_0[burnstate]", "layer"=-DAMAGE_LAYER, "dir"=image_dir) + + + if(animal_origin) + if(status == BODYPART_ORGANIC) + if(species_id == "husk") + standing += image("icon"='icons/mob/animal_parts.dmi', "icon_state"="[animal_origin]_husk_[body_zone]_s", "layer"=-BODYPARTS_LAYER, "dir"=image_dir) + else + standing += image("icon"='icons/mob/animal_parts.dmi', "icon_state"="[animal_origin]_[body_zone]_s", "layer"=-BODYPARTS_LAYER, "dir"=image_dir) + else + standing += image("icon"='icons/mob/augments.dmi', "icon_state"="[animal_origin]_[body_zone]_s", "layer"=-BODYPARTS_LAYER, "dir"=image_dir) + return standing var/icon_gender = (body_gender == FEMALE) ? "f" : "m" //gender of the icon, if applicable if((body_zone != "head" && body_zone != "chest")) should_draw_gender = FALSE - var/image_dir - if(dropped) - image_dir = SOUTH - if(status == ORGAN_ORGANIC) + var/image/I + + if(status == BODYPART_ORGANIC) if(should_draw_greyscale) if(should_draw_gender) I = image("icon"='icons/mob/human_parts_greyscale.dmi', "icon_state"="[species_id]_[body_zone]_[icon_gender]_s", "layer"=-BODYPARTS_LAYER, "dir"=image_dir) + else if(use_digitigrade) + I = image("icon"='icons/mob/human_parts_greyscale.dmi', "icon_state"="digitigrade_[use_digitigrade]_[body_zone]_s", "layer"=-BODYPARTS_LAYER, "dir"=image_dir) else I = image("icon"='icons/mob/human_parts_greyscale.dmi', "icon_state"="[species_id]_[body_zone]_s", "layer"=-BODYPARTS_LAYER, "dir"=image_dir) else @@ -259,11 +319,13 @@ I = image("icon"='icons/mob/augments.dmi', "icon_state"="[body_zone]_[icon_gender]_s", "layer"=-BODYPARTS_LAYER, "dir"=image_dir) else I = image("icon"='icons/mob/augments.dmi', "icon_state"="[body_zone]_s", "layer"=-BODYPARTS_LAYER, "dir"=image_dir) - return I + standing += I + return standing if(!should_draw_greyscale) - return I + standing += I + return standing //Greyscale Colouring var/draw_color @@ -278,14 +340,20 @@ if(draw_color) I.color = "#[draw_color]" //End Greyscale Colouring + standing += I - return I + return standing +/obj/item/bodypart/deconstruct(disassembled = TRUE) + drop_organs() + qdel(src) + /obj/item/bodypart/chest name = "chest" desc = "It's impolite to stare at a person's chest." + icon_state = "default_human_chest" max_damage = 200 body_zone = "chest" body_part = CHEST @@ -298,34 +366,111 @@ qdel(cavity_item) return ..() +/obj/item/bodypart/chest/drop_organs(mob/user) + if(cavity_item) + cavity_item.forceMove(user.loc) + cavity_item = null + ..() + +/obj/item/bodypart/chest/monkey + icon = 'icons/mob/animal_parts.dmi' + icon_state = "default_monkey_chest" + animal_origin = MONKEY_BODYPART + +/obj/item/bodypart/chest/alien + icon = 'icons/mob/animal_parts.dmi' + icon_state = "alien_chest_s" + dismemberable = 0 + max_damage = 500 + animal_origin = ALIEN_BODYPART + +/obj/item/bodypart/chest/devil + dismemberable = 0 + max_damage = 5000 + animal_origin = DEVIL_BODYPART + +/obj/item/bodypart/chest/larva + icon = 'icons/mob/animal_parts.dmi' + icon_state = "larva_chest_s" + dismemberable = 0 + max_damage = 50 + animal_origin = LARVA_BODYPART + /obj/item/bodypart/l_arm name = "left arm" desc = "Did you know that the word 'sinister' stems originally from the \ Latin 'sinestra' (left hand), because the left hand was supposed to \ be possessed by the devil? This arm appears to be possessed by no \ one though." + icon_state = "default_human_l_arm" attack_verb = list("slapped", "punched") max_damage = 50 body_zone ="l_arm" body_part = ARM_LEFT + held_index = 1 px_x = -6 px_y = 0 +/obj/item/bodypart/l_arm/monkey + icon = 'icons/mob/animal_parts.dmi' + icon_state = "default_monkey_l_arm" + animal_origin = MONKEY_BODYPART + px_x = -5 + px_y = -3 + +/obj/item/bodypart/l_arm/alien + icon = 'icons/mob/animal_parts.dmi' + icon_state = "alien_l_arm_s" + px_x = 0 + px_y = 0 + dismemberable = 0 + max_damage = 100 + animal_origin = ALIEN_BODYPART + +/obj/item/bodypart/l_arm/devil + dismemberable = 0 + max_damage = 5000 + animal_origin = DEVIL_BODYPART + /obj/item/bodypart/r_arm name = "right arm" desc = "Over 87% of humans are right handed. That figure is much lower \ among humans missing their right arm." + icon_state = "default_human_r_arm" attack_verb = list("slapped", "punched") max_damage = 50 body_zone = "r_arm" body_part = ARM_RIGHT + held_index = 2 px_x = 6 px_y = 0 +/obj/item/bodypart/r_arm/monkey + icon = 'icons/mob/animal_parts.dmi' + icon_state = "default_monkey_r_arm" + animal_origin = MONKEY_BODYPART + px_x = 5 + px_y = -3 + +/obj/item/bodypart/r_arm/alien + icon = 'icons/mob/animal_parts.dmi' + icon_state = "alien_r_arm_s" + px_x = 0 + px_y = 0 + dismemberable = 0 + max_damage = 100 + animal_origin = ALIEN_BODYPART + +/obj/item/bodypart/r_arm/devil + dismemberable = 0 + max_damage = 5000 + animal_origin = DEVIL_BODYPART + /obj/item/bodypart/l_leg name = "left leg" desc = "Some athletes prefer to tie their left shoelaces first for good \ luck. In this instance, it probably would not have helped." + icon_state = "default_human_l_leg" attack_verb = list("kicked", "stomped") max_damage = 50 body_zone = "l_leg" @@ -333,12 +478,37 @@ px_x = -2 px_y = 12 +/obj/item/bodypart/l_leg/digitigrade + name = "left digitigrade leg" + use_digitigrade = FULL_DIGITIGRADE + +/obj/item/bodypart/l_leg/monkey + icon = 'icons/mob/animal_parts.dmi' + icon_state = "default_monkey_l_leg" + animal_origin = MONKEY_BODYPART + px_y = 4 + +/obj/item/bodypart/l_leg/alien + icon = 'icons/mob/animal_parts.dmi' + icon_state = "alien_l_leg_s" + px_x = 0 + px_y = 0 + dismemberable = 0 + max_damage = 100 + animal_origin = ALIEN_BODYPART + +/obj/item/bodypart/l_leg/devil + dismemberable = 0 + max_damage = 5000 + animal_origin = DEVIL_BODYPART + /obj/item/bodypart/r_leg name = "right leg" desc = "You put your right leg in, your right leg out. In, out, in, out, \ shake it all about. And apparently then it detaches.\n\ The hokey pokey has certainly changed a lot since space colonisation." // alternative spellings of 'pokey' are availible + icon_state = "default_human_r_leg" attack_verb = list("kicked", "stomped") max_damage = 50 body_zone = "r_leg" @@ -346,6 +516,30 @@ px_x = 2 px_y = 12 +/obj/item/bodypart/r_leg/digitigrade + name = "right digitigrade leg" + use_digitigrade = FULL_DIGITIGRADE + +/obj/item/bodypart/r_leg/monkey + icon = 'icons/mob/animal_parts.dmi' + icon_state = "default_monkey_r_leg" + animal_origin = MONKEY_BODYPART + px_y = 4 + +/obj/item/bodypart/r_leg/alien + icon = 'icons/mob/animal_parts.dmi' + icon_state = "alien_r_leg_s" + px_x = 0 + px_y = 0 + dismemberable = 0 + max_damage = 100 + animal_origin = ALIEN_BODYPART + +/obj/item/bodypart/r_leg/devil + dismemberable = 0 + max_damage = 5000 + animal_origin = DEVIL_BODYPART + ///////////////////////////////////////////////////////////////////////// diff --git a/code/modules/surgery/bodyparts/dismemberment.dm b/code/modules/surgery/bodyparts/dismemberment.dm index 5d2e56971d..781d9aaf5c 100644 --- a/code/modules/surgery/bodyparts/dismemberment.dm +++ b/code/modules/surgery/bodyparts/dismemberment.dm @@ -1,26 +1,33 @@ /obj/item/bodypart/proc/can_dismember(obj/item/I) - . = (get_damage() >= (max_damage - I.armour_penetration/2)) + if(dismemberable) + . = (get_damage() >= (max_damage - I.armour_penetration/2)) //Dismember a limb /obj/item/bodypart/proc/dismember(dam_type = BRUTE) - var/mob/living/carbon/human/H = owner - if(!istype(H) || (NODISMEMBER in H.dna.species.specflags)) // species don't allow dismemberment + if(!owner) return 0 + var/mob/living/carbon/C = owner + if(!dismemberable) + return 0 + if(ishuman(C)) + var/mob/living/carbon/human/H = C + if(NODISMEMBER in H.dna.species.species_traits) // species don't allow dismemberment + return 0 - var/obj/item/bodypart/affecting = H.get_bodypart("chest") - affecting.take_damage(Clamp(brute_dam/2, 15, 50), Clamp(burn_dam/2, 0, 50)) //Damage the chest based on limb's existing damage - H.visible_message("[H]'s [src.name] has been violently dismembered!") - H.emote("scream") + var/obj/item/bodypart/affecting = C.get_bodypart("chest") + affecting.receive_damage(Clamp(brute_dam/2, 15, 50), Clamp(burn_dam/2, 0, 50)) //Damage the chest based on limb's existing damage + C.visible_message("[C]'s [src.name] has been violently dismembered!") + C.emote("scream") drop_limb() if(dam_type == BURN) burn() return 1 - add_mob_blood(H) - var/turf/location = H.loc + add_mob_blood(C) + var/turf/location = C.loc if(istype(location)) - H.add_splatter_floor(location) + C.add_splatter_floor(location) var/direction = pick(cardinal) var/t_range = rand(2,max(throw_range/2, 2)) var/turf/target_turf = get_turf(src) @@ -34,88 +41,99 @@ /obj/item/bodypart/chest/dismember() - var/mob/living/carbon/human/H = owner - if(!istype(H) || (NODISMEMBER in H.dna.species.specflags)) //human's species don't allow dismemberment + if(!owner) return 0 + var/mob/living/carbon/C = owner + if(!dismemberable) + return 0 + if(ishuman(C)) + var/mob/living/carbon/human/H = C + if(NODISMEMBER in H.dna.species.species_traits) // species don't allow dismemberment + return 0 var/organ_spilled = 0 - var/turf/T = get_turf(H) - H.add_splatter_floor(T) - playsound(get_turf(owner), 'sound/misc/splort.ogg', 80, 1) - for(var/X in owner.internal_organs) + var/turf/T = get_turf(C) + C.add_splatter_floor(T) + playsound(get_turf(C), 'sound/misc/splort.ogg', 80, 1) + for(var/X in C.internal_organs) var/obj/item/organ/O = X - if(O.zone != "chest") + var/org_zone = check_zone(O.zone) + if(org_zone != "chest") continue - O.Remove(owner) - O.loc = T + O.Remove(C) + O.forceMove(T) organ_spilled = 1 if(cavity_item) - cavity_item.loc = T + cavity_item.forceMove(T) cavity_item = null organ_spilled = 1 if(organ_spilled) - owner.visible_message("[owner]'s internal organs spill out onto the floor!") + C.visible_message("[C]'s internal organs spill out onto the floor!") return 1 //limb removal. The "special" argument is used for swapping a limb with a new one without the effects of losing a limb kicking in. /obj/item/bodypart/proc/drop_limb(special) - if(!ishuman(owner)) + if(!owner) return var/turf/T = get_turf(owner) - var/mob/living/carbon/human/H = owner - if(!no_update) - update_limb(1) - H.bodyparts -= src + var/mob/living/carbon/C = owner + update_limb(1) + C.bodyparts -= src + if(held_index) + C.unEquip(owner.get_item_for_held_index(held_index), 1) + C.hand_bodyparts[held_index] = null + owner = null - for(var/X in H.surgeries) //if we had an ongoing surgery on that limb, we stop it. + for(var/X in C.surgeries) //if we had an ongoing surgery on that limb, we stop it. var/datum/surgery/S = X - if(S.organ == src) - H.surgeries -= S + if(S.operated_bodypart == src) + C.surgeries -= S qdel(S) break for(var/obj/item/I in embedded_objects) embedded_objects -= I I.loc = src - if(!H.has_embedded_objects()) - H.clear_alert("embeddedobject") + if(!C.has_embedded_objects()) + C.clear_alert("embeddedobject") if(!special) - for(var/X in H.dna.mutations) //some mutations require having specific limbs to be kept. - var/datum/mutation/human/MT = X - if(MT.limb_req && MT.limb_req == body_zone) - MT.force_lose(H) + if(C.dna) + for(var/X in C.dna.mutations) //some mutations require having specific limbs to be kept. + var/datum/mutation/human/MT = X + if(MT.limb_req && MT.limb_req == body_zone) + MT.force_lose(C) - for(var/X in H.internal_organs) //internal organs inside the dismembered limb are dropped. + for(var/X in C.internal_organs) //internal organs inside the dismembered limb are dropped. var/obj/item/organ/O = X var/org_zone = check_zone(O.zone) if(org_zone != body_zone) continue - O.transfer_to_limb(src, H) + O.transfer_to_limb(src, C) update_icon_dropped() - src.loc = T - H.update_health_hud() //update the healthdoll - H.update_body() - H.update_hair() - H.update_canmove() + forceMove(T) + C.update_health_hud() //update the healthdoll + C.update_body() + C.update_hair() + C.update_canmove() //when a limb is dropped, the internal organs are removed from the mob and put into the limb -/obj/item/organ/proc/transfer_to_limb(obj/item/bodypart/LB, mob/living/carbon/human/H) - Remove(H) +/obj/item/organ/proc/transfer_to_limb(obj/item/bodypart/LB, mob/living/carbon/C) + Remove(C) loc = LB -/obj/item/organ/brain/transfer_to_limb(obj/item/bodypart/head/LB, mob/living/carbon/human/H) - if(H.mind && H.mind.changeling) +/obj/item/organ/brain/transfer_to_limb(obj/item/bodypart/head/LB, mob/living/carbon/human/C) + if(C.mind && C.mind.changeling) LB.brain = new //changeling doesn't lose its real brain organ, we drop a decoy. LB.brain.loc = LB else //if not a changeling, we put the brain organ inside the dropped head - Remove(H) //and put the player in control of the brainmob + Remove(C) //and put the player in control of the brainmob loc = LB LB.brain = src LB.brainmob = brainmob @@ -129,43 +147,39 @@ return /obj/item/bodypart/r_arm/drop_limb(special) - var/mob/living/carbon/human/H = owner + var/mob/living/carbon/C = owner ..() - if(istype(H) && !special) - if(H.handcuffed) - H.handcuffed.loc = H.loc - H.handcuffed.dropped(H) - H.handcuffed = null - H.update_handcuffed() - if(H.hud_used) - var/obj/screen/inventory/R = H.hud_used.inv_slots[slot_r_hand] + if(C && !special) + if(C.handcuffed) + C.handcuffed.loc = C.loc + C.handcuffed.dropped(C) + C.handcuffed = null + C.update_handcuffed() + if(C.hud_used) + var/obj/screen/inventory/hand/R = C.hud_used.hand_slots["[held_index]"] if(R) R.update_icon() - if(H.r_hand) - H.unEquip(H.r_hand, 1) - if(H.gloves) - H.unEquip(H.gloves, 1) - H.update_inv_gloves() //to remove the bloody hands overlay + if(C.gloves) + C.unEquip(C.gloves, 1) + C.update_inv_gloves() //to remove the bloody hands overlay /obj/item/bodypart/l_arm/drop_limb(special) - var/mob/living/carbon/human/H = owner + var/mob/living/carbon/C = owner ..() - if(istype(H) && !special) - if(H.handcuffed) - H.handcuffed.loc = H.loc - H.handcuffed.dropped(H) - H.handcuffed = null - H.update_handcuffed() - if(H.hud_used) - var/obj/screen/inventory/L = H.hud_used.inv_slots[slot_l_hand] + if(C && !special) + if(C.handcuffed) + C.handcuffed.loc = C.loc + C.handcuffed.dropped(C) + C.handcuffed = null + C.update_handcuffed() + if(C.hud_used) + var/obj/screen/inventory/hand/L = C.hud_used.hand_slots["[held_index]"] if(L) L.update_icon() - if(H.l_hand) - H.unEquip(H.l_hand, 1) - if(H.gloves) - H.unEquip(H.gloves, 1) - H.update_inv_gloves() //to remove the bloody hands overlay + if(C.gloves) + C.unEquip(C.gloves, 1) + C.update_inv_gloves() //to remove the bloody hands overlay /obj/item/bodypart/r_leg/drop_limb(special) @@ -176,10 +190,8 @@ owner.legcuffed.dropped(owner) owner.legcuffed = null owner.update_inv_legcuffed() - if(ishuman(owner)) - var/mob/living/carbon/human/H = owner - if(H.shoes) - H.unEquip(H.shoes, 1) + if(owner.shoes) + owner.unEquip(owner.shoes, 1) ..() /obj/item/bodypart/l_leg/drop_limb(special) //copypasta @@ -190,21 +202,17 @@ owner.legcuffed.dropped(owner) owner.legcuffed = null owner.update_inv_legcuffed() - if(ishuman(owner)) - var/mob/living/carbon/human/H = owner - if(H.shoes) - H.unEquip(H.shoes, 1) + if(owner.shoes) + owner.unEquip(owner.shoes, 1) ..() /obj/item/bodypart/head/drop_limb(special) - var/mob/living/carbon/human/H = owner - if(istype(H)) - if(!special) - //Drop all worn head items - for(var/X in list(H.glasses, H.ears, H.wear_mask, H.head)) - var/obj/item/I = X - H.unEquip(I, 1) - name = "[H]'s head" + if(!special) + //Drop all worn head items + for(var/X in list(owner.glasses, owner.ears, owner.wear_mask, owner.head)) + var/obj/item/I = X + owner.unEquip(I, 1) + name = "[owner]'s head" ..() @@ -213,81 +221,78 @@ //Attach a limb to a human and drop any existing limb of that type. -/obj/item/bodypart/proc/replace_limb(mob/living/carbon/human/H, special) - if(!istype(H)) +/obj/item/bodypart/proc/replace_limb(mob/living/carbon/C, special) + if(!istype(C)) return - var/obj/item/bodypart/O = locate(src.type) in H.bodyparts - + var/obj/item/bodypart/O = locate(src.type) in C.bodyparts if(O) O.drop_limb(1) - attach_limb(H, special) + attach_limb(C, special) -/obj/item/bodypart/head/replace_limb(mob/living/carbon/human/H, special) - if(!istype(H)) +/obj/item/bodypart/head/replace_limb(mob/living/carbon/C, special) + if(!istype(C)) return - var/obj/item/bodypart/head/O = locate(src.type) in H.bodyparts + var/obj/item/bodypart/head/O = locate(src.type) in C.bodyparts if(O) if(!special) return else O.drop_limb(1) - attach_limb(H, special) + attach_limb(C, special) -/obj/item/bodypart/proc/attach_limb(mob/living/carbon/human/H, special) +/obj/item/bodypart/proc/attach_limb(mob/living/carbon/C, special) loc = null - owner = H - H.bodyparts += src + owner = C + C.bodyparts += src + if(held_index) + if(held_index > C.hand_bodyparts.len) + C.hand_bodyparts.len = held_index + C.hand_bodyparts[held_index] = src + if(C.hud_used) + var/obj/screen/inventory/hand/hand = C.hud_used.hand_slots["[held_index]"] + if(hand) + hand.update_icon() + C.update_inv_gloves() if(special) //non conventional limb attachment - for(var/X in H.surgeries) //if we had an ongoing surgery to attach a new limb, we stop it. + for(var/X in C.surgeries) //if we had an ongoing surgery to attach a new limb, we stop it. var/datum/surgery/S = X var/surgery_zone = check_zone(S.location) if(surgery_zone == body_zone) - H.surgeries -= S + C.surgeries -= S qdel(S) break update_bodypart_damage_state() - H.updatehealth() - H.update_body() - H.update_hair() - H.update_damage_overlays() - H.update_canmove() + + C.updatehealth() + C.update_body() + C.update_hair() + C.update_damage_overlays() + C.update_canmove() -/obj/item/bodypart/r_arm/attach_limb(mob/living/carbon/human/H, special) - ..() - if(H.hud_used) - var/obj/screen/inventory/R = H.hud_used.inv_slots[slot_r_hand] - if(R) - R.update_icon() - -/obj/item/bodypart/l_arm/attach_limb(mob/living/carbon/human/H, special) - ..() - if(H.hud_used) - var/obj/screen/inventory/L = H.hud_used.inv_slots[slot_l_hand] - if(L) - L.update_icon() - -/obj/item/bodypart/head/attach_limb(mob/living/carbon/human/H, special) +/obj/item/bodypart/head/attach_limb(mob/living/carbon/C, special) //Transfer some head appearance vars over if(brain) brainmob.container = null //Reset brainmob head var. brainmob.loc = brain //Throw mob into brain. brain.brainmob = brainmob //Set the brain to use the brainmob brainmob = null //Set head brainmob var to null - brain.Insert(H) //Now insert the brain proper + brain.Insert(C) //Now insert the brain proper brain = null //No more brain in the head - H.hair_color = hair_color - H.hair_style = hair_style - H.facial_hair_color = facial_hair_color - H.facial_hair_style = facial_hair_style - H.eye_color = eye_color - H.lip_style = lip_style - H.lip_color = lip_color + if(ishuman(C)) + var/mob/living/carbon/human/H = C + H.hair_color = hair_color + H.hair_style = hair_style + H.facial_hair_color = facial_hair_color + H.facial_hair_style = facial_hair_style + H.eye_color = eye_color + H.lip_style = lip_style + H.lip_color = lip_color if(real_name) - H.real_name = real_name + C.real_name = real_name real_name = "" name = initial(name) ..() @@ -297,26 +302,28 @@ /mob/living/proc/regenerate_limbs(noheal, excluded_limbs) return 0 -/mob/living/carbon/human/regenerate_limbs(noheal, list/excluded_limbs) +/mob/living/carbon/regenerate_limbs(noheal, list/excluded_limbs) var/list/limb_list = list("head", "chest", "r_arm", "l_arm", "r_leg", "l_leg") if(excluded_limbs) limb_list -= excluded_limbs for(var/Z in limb_list) . += regenerate_limb(Z, noheal) + /mob/living/proc/regenerate_limb(limb_zone, noheal) return -/mob/living/carbon/human/regenerate_limb(limb_zone, noheal) +/mob/living/carbon/regenerate_limb(limb_zone, noheal) var/obj/item/bodypart/L if(get_bodypart(limb_zone)) return 0 - L = newBodyPart(limb_zone, 0, 0, src) + L = newBodyPart(limb_zone, 0, 0) if(L) if(!noheal) L.brute_dam = 0 L.burn_dam = 0 - L.burn_state = 0 + L.brutestate = 0 + L.burnstate = 0 L.attach_limb(src, 1) return 1 diff --git a/code/modules/surgery/bodyparts/head.dm b/code/modules/surgery/bodyparts/head.dm index a8fd505965..9f2c59794f 100644 --- a/code/modules/surgery/bodyparts/head.dm +++ b/code/modules/surgery/bodyparts/head.dm @@ -1,17 +1,18 @@ /obj/item/bodypart/head name = "head" desc = "Didn't make sense not to live for fun, your brain gets smart but your head gets dumb." + icon = 'icons/mob/human_parts.dmi' + icon_state = "default_human_head" max_damage = 200 body_zone = "head" body_part = HEAD - layer = ABOVE_MOB_LAYER //so it isn't hidden behind some objects when on the floor - w_class = 4 //Quite a hefty load + w_class = WEIGHT_CLASS_BULKY //Quite a hefty load slowdown = 1 //Balancing measure throw_range = 2 //No head bowling px_x = 0 px_y = -8 - var/mob/living/carbon/brain/brainmob = null //The current occupant. + var/mob/living/brain/brainmob = null //The current occupant. var/obj/item/organ/brain/brain = null //The brain organ //Limb appearance info: @@ -31,7 +32,8 @@ /obj/item/bodypart/head/drop_organs(mob/user) var/turf/T = get_turf(src) - playsound(T, 'sound/misc/splort.ogg', 50, 1, -1) + if(status != BODYPART_ROBOTIC) + playsound(T, 'sound/misc/splort.ogg', 50, 1, -1) for(var/obj/item/I in src) if(I == brain) if(user) @@ -47,67 +49,77 @@ else I.loc = T -/obj/item/bodypart/head/update_limb(dropping_limb, mob/living/carbon/human/source) - var/mob/living/carbon/human/H +/obj/item/bodypart/head/update_limb(dropping_limb, mob/living/carbon/source) + var/mob/living/carbon/C if(source) - H = source + C = source else - H = owner - if(!istype(H)) - return - var/datum/species/S = H.dna.species - //First of all, name. - real_name = H.real_name + C = owner - //Facial hair - if(H.facial_hair_style && (FACEHAIR in S.specflags)) - facial_hair_style = H.facial_hair_style - if(S.hair_color) - if(S.hair_color == "mutcolor") - facial_hair_color = H.dna.features["mcolor"] - else - facial_hair_color = S.hair_color - else - facial_hair_color = H.facial_hair_color - hair_alpha = S.hair_alpha - else - facial_hair_style = "Shaved" - facial_hair_color = "000" - hair_alpha = 255 - //Hair - if(H.hair_style && (HAIR in S.specflags)) - hair_style = H.hair_style - if(S.hair_color) - if(S.hair_color == "mutcolor") - hair_color = H.dna.features["mcolor"] - else - hair_color = S.hair_color - else - hair_color = H.hair_color - hair_alpha = S.hair_alpha - else + real_name = C.real_name + if(C.disabilities & HUSK) + real_name = "Unknown" hair_style = "Bald" - hair_color = "000" - hair_alpha = initial(hair_alpha) - // lipstick - if(H.lip_style && (LIPS in S.specflags)) - lip_style = H.lip_style - lip_color = H.lip_color - else - lip_style = null - lip_color = "white" - // eyes - if(EYECOLOR in S.specflags) - eyes = S.eyes - eye_color = H.eye_color - else + facial_hair_style = "Shaved" eyes = "eyes" eye_color = "" + lip_style = null + + else if(!animal_origin) + var/mob/living/carbon/human/H = C + var/datum/species/S = H.dna.species + + //Facial hair + if(H.facial_hair_style && (FACEHAIR in S.species_traits)) + facial_hair_style = H.facial_hair_style + if(S.hair_color) + if(S.hair_color == "mutcolor") + facial_hair_color = H.dna.features["mcolor"] + else + facial_hair_color = S.hair_color + else + facial_hair_color = H.facial_hair_color + hair_alpha = S.hair_alpha + else + facial_hair_style = "Shaved" + facial_hair_color = "000" + hair_alpha = 255 + //Hair + if(H.hair_style && (HAIR in S.species_traits)) + hair_style = H.hair_style + if(S.hair_color) + if(S.hair_color == "mutcolor") + hair_color = H.dna.features["mcolor"] + else + hair_color = S.hair_color + else + hair_color = H.hair_color + hair_alpha = S.hair_alpha + else + hair_style = "Bald" + hair_color = "000" + hair_alpha = initial(hair_alpha) + // lipstick + if(H.lip_style && (LIPS in S.species_traits)) + lip_style = H.lip_style + lip_color = H.lip_color + else + lip_style = null + lip_color = "white" + // eyes + if(EYECOLOR in S.species_traits) + eyes = S.eyes + eye_color = H.eye_color + else + eyes = "eyes" + eye_color = "" + ..() /obj/item/bodypart/head/update_icon_dropped() var/list/standing = get_limb_icon(1) - if(!standing) + if(!standing.len) + icon_state = initial(icon_state)//no overlays found, we default back to initial icon. return for(var/image/I in standing) I.pixel_x = px_x @@ -116,13 +128,11 @@ /obj/item/bodypart/head/get_limb_icon(dropped) cut_overlays() - var/image/I = ..() - var/list/standing = list() - standing += I + var/list/standing = ..() if(dropped) //certain overlays only appear when the limb is being detached from its owner. var/datum/sprite_accessory/S - if(status != ORGAN_ROBOTIC) //having a robotic head hides certain features. + if(status != BODYPART_ROBOTIC) //having a robotic head hides certain features. //facial hair if(facial_hair_style) S = facial_hair_styles_list[facial_hair_style] @@ -134,7 +144,12 @@ //Applies the debrained overlay if there is no brain if(!brain) - standing += image("icon"='icons/mob/human_face.dmi', "icon_state" = "debrained_s", "layer" = -HAIR_LAYER, "dir"=SOUTH) + if(animal_origin == ALIEN_BODYPART) + standing += image("icon"='icons/mob/animal_parts.dmi', "icon_state" = "debrained_alien_s", "layer" = -HAIR_LAYER, "dir"=SOUTH) + else if(animal_origin == LARVA_BODYPART) + standing += image("icon"='icons/mob/animal_parts.dmi', "icon_state" = "debrained_larva_s", "layer" = -HAIR_LAYER, "dir"=SOUTH) + else if(!(NOBLOOD in species_flags_list)) + standing += image("icon"='icons/mob/human_face.dmi', "icon_state" = "debrained_s", "layer" = -HAIR_LAYER, "dir"=SOUTH) else if(hair_style) S = hair_styles_list[hair_style] @@ -157,9 +172,32 @@ img_eyes_s.color = "#" + eye_color standing += img_eyes_s - if(standing.len) - return standing + return standing -/obj/item/bodypart/head/burn() - drop_organs() - ..() +/obj/item/bodypart/head/monkey + icon = 'icons/mob/animal_parts.dmi' + icon_state = "default_monkey_head" + animal_origin = MONKEY_BODYPART + +/obj/item/bodypart/head/alien + icon = 'icons/mob/animal_parts.dmi' + icon_state = "alien_head_s" + px_x = 0 + px_y = 0 + dismemberable = 0 + max_damage = 500 + animal_origin = ALIEN_BODYPART + +/obj/item/bodypart/head/devil + dismemberable = 0 + max_damage = 5000 + animal_origin = DEVIL_BODYPART + +/obj/item/bodypart/head/larva + icon = 'icons/mob/animal_parts.dmi' + icon_state = "larva_head_s" + px_x = 0 + px_y = 0 + dismemberable = 0 + max_damage = 50 + animal_origin = LARVA_BODYPART diff --git a/code/modules/surgery/bodyparts/helpers.dm b/code/modules/surgery/bodyparts/helpers.dm index f3e6fdbeab..85d4e87055 100644 --- a/code/modules/surgery/bodyparts/helpers.dm +++ b/code/modules/surgery/bodyparts/helpers.dm @@ -10,55 +10,48 @@ if(L.body_zone == zone) return L -//Mob has their active hand -/mob/proc/has_active_hand() - return 1 +/mob/living/carbon/has_hand_for_held_index(i) + if(i) + var/obj/item/bodypart/L = hand_bodyparts[i] + if(L) + return L + return FALSE + + -/mob/living/carbon/human/has_active_hand() - var/obj/item/bodypart/L - if(hand) - L = get_bodypart("l_arm") - else - L = get_bodypart("r_arm") - if(!L) - return 0 - return 1 /mob/proc/has_left_hand() + return TRUE + +/mob/living/carbon/has_left_hand() + for(var/obj/item/bodypart/L in hand_bodyparts) + if(L.held_index % 2) + return TRUE + return FALSE + +/mob/living/carbon/alien/larva/has_left_hand() return 1 -/mob/living/carbon/human/has_left_hand() - var/obj/item/bodypart/L - L = get_bodypart("l_arm") - if(!L) - return 0 - return 1 /mob/proc/has_right_hand() + return TRUE + +/mob/living/carbon/has_right_hand() + for(var/obj/item/bodypart/L in hand_bodyparts) + if(!(L.held_index % 2)) + return TRUE + return FALSE + +/mob/living/carbon/alien/larva/has_right_hand() return 1 -/mob/living/carbon/human/has_right_hand() - var/obj/item/bodypart/L - L = get_bodypart("r_arm") - if(!L) - return 0 - return 1 //Limb numbers /mob/proc/get_num_arms() return 2 -/mob/proc/get_num_legs() - return 2 -/mob/proc/get_leg_ignore() - return 0 - -/mob/living/carbon/human/get_leg_ignore() - if(FLYING in dna.species.specflags) - return 1 - -/mob/living/carbon/human/get_num_arms() +/mob/living/carbon/get_num_arms() . = 0 for(var/X in bodyparts) var/obj/item/bodypart/affecting = X @@ -67,7 +60,19 @@ if(affecting.body_part == ARM_LEFT) .++ -/mob/living/carbon/human/get_num_legs() + +//sometimes we want to ignore that we don't have the required amount of arms. +/mob/proc/get_arm_ignore() + return 0 + +/mob/living/carbon/alien/larva/get_arm_ignore() + return 1 //so we can still handcuff larvas. + + +/mob/proc/get_num_legs() + return 2 + +/mob/living/carbon/get_num_legs() . = 0 for(var/X in bodyparts) var/obj/item/bodypart/affecting = X @@ -76,19 +81,36 @@ if(affecting.body_part == LEG_LEFT) .++ +//sometimes we want to ignore that we don't have the required amount of legs. +/mob/proc/get_leg_ignore() + return 0 + +/mob/living/carbon/alien/larva/get_leg_ignore() + return 1 + +/mob/living/carbon/human/get_leg_ignore() + if(movement_type & FLYING) + return 1 + /mob/living/proc/get_missing_limbs() return list() -/mob/living/carbon/human/get_missing_limbs() +/mob/living/carbon/get_missing_limbs() var/list/full = list("head", "chest", "r_arm", "l_arm", "r_leg", "l_leg") for(var/zone in full) if(get_bodypart(zone)) full -= zone return full +/mob/living/carbon/alien/larva/get_missing_limbs() + var/list/full = list("head", "chest") + for(var/zone in full) + if(get_bodypart(zone)) + full -= zone + return full -//Remove all embedded objects from all limbs on the human mob -/mob/living/carbon/human/proc/remove_all_embedded_objects() +//Remove all embedded objects from all limbs on the carbon mob +/mob/living/carbon/proc/remove_all_embedded_objects() var/turf/T = get_turf(src) for(var/X in bodyparts) @@ -99,7 +121,7 @@ clear_alert("embeddedobject") -/mob/living/carbon/human/proc/has_embedded_objects() +/mob/living/carbon/proc/has_embedded_objects() . = 0 for(var/X in bodyparts) var/obj/item/bodypart/L = X @@ -108,7 +130,7 @@ //Helper for quickly creating a new limb - used by augment code in species.dm spec_attacked_by -/proc/newBodyPart(zone, robotic, fixed_icon, mob/living/carbon/human/source) +/mob/living/carbon/proc/newBodyPart(zone, robotic, fixed_icon) var/obj/item/bodypart/L switch(zone) if("l_arm") @@ -124,13 +146,64 @@ if("chest") L = new /obj/item/bodypart/chest() if(L) - if(source) - L.update_limb(fixed_icon, source) - else if(fixed_icon) - L.no_update = 1//when attached, the limb won't be affected by the appearance changes of its mob owner. + L.update_limb(fixed_icon, src) if(robotic) - L.change_bodypart_status(ORGAN_ROBOTIC) + L.change_bodypart_status(BODYPART_ROBOTIC) + . = L +/mob/living/carbon/monkey/newBodyPart(zone, robotic, fixed_icon) + var/obj/item/bodypart/L + switch(zone) + if("l_arm") + L = new /obj/item/bodypart/l_arm/monkey() + if("r_arm") + L = new /obj/item/bodypart/r_arm/monkey() + if("head") + L = new /obj/item/bodypart/head/monkey() + if("l_leg") + L = new /obj/item/bodypart/l_leg/monkey() + if("r_leg") + L = new /obj/item/bodypart/r_leg/monkey() + if("chest") + L = new /obj/item/bodypart/chest/monkey() + if(L) + L.update_limb(fixed_icon, src) + if(robotic) + L.change_bodypart_status(BODYPART_ROBOTIC) + . = L + +/mob/living/carbon/alien/larva/newBodyPart(zone, robotic, fixed_icon) + var/obj/item/bodypart/L + switch(zone) + if("head") + L = new /obj/item/bodypart/head/larva() + if("chest") + L = new /obj/item/bodypart/chest/larva() + if(L) + L.update_limb(fixed_icon, src) + if(robotic) + L.change_bodypart_status(BODYPART_ROBOTIC) + . = L + +/mob/living/carbon/alien/humanoid/newBodyPart(zone, robotic, fixed_icon) + var/obj/item/bodypart/L + switch(zone) + if("l_arm") + L = new /obj/item/bodypart/l_arm/alien() + if("r_arm") + L = new /obj/item/bodypart/r_arm/alien() + if("head") + L = new /obj/item/bodypart/head/alien() + if("l_leg") + L = new /obj/item/bodypart/l_leg/alien() + if("r_leg") + L = new /obj/item/bodypart/r_leg/alien() + if("chest") + L = new /obj/item/bodypart/chest/alien() + if(L) + L.update_limb(fixed_icon, src) + if(robotic) + L.change_bodypart_status(BODYPART_ROBOTIC) . = L @@ -162,4 +235,39 @@ if("albino") . = "fff4e6" if("orange") - . = "ffc905" \ No newline at end of file + . = "ffc905" + +/mob/living/carbon/proc/Digitigrade_Leg_Swap(swap_back) + var/body_plan_changed = FALSE + for(var/X in bodyparts) + var/obj/item/bodypart/O = X + var/obj/item/bodypart/N + if((!O.use_digitigrade && swap_back == FALSE) || (O.use_digitigrade && swap_back == TRUE)) + if(O.body_part == LEG_LEFT) + if(swap_back == TRUE) + N = new /obj/item/bodypart/l_leg + else + N = new /obj/item/bodypart/l_leg/digitigrade + else if(O.body_part == LEG_RIGHT) + if(swap_back == TRUE) + N = new /obj/item/bodypart/r_leg + else + N = new /obj/item/bodypart/r_leg/digitigrade + if(!N) + continue + body_plan_changed = TRUE + O.drop_limb(1) + qdel(O) + N.attach_limb(src) + if(body_plan_changed && ishuman(src)) + var/mob/living/carbon/human/H = src + if(H.w_uniform) + var/obj/item/clothing/under/U = H.w_uniform + if(U.mutantrace_variation) + if(swap_back) + U.adjusted = NORMAL_STYLE + else + U.adjusted = DIGITIGRADE_STYLE + H.update_inv_w_uniform() + if(H.shoes && !swap_back) + H.unEquip(H.shoes) diff --git a/code/modules/surgery/bodyparts/robot_bodyparts.dm b/code/modules/surgery/bodyparts/robot_bodyparts.dm new file mode 100644 index 0000000000..24a9622a33 --- /dev/null +++ b/code/modules/surgery/bodyparts/robot_bodyparts.dm @@ -0,0 +1,162 @@ + + +/obj/item/bodypart/l_arm/robot + name = "cyborg left arm" + desc = "A skeletal limb wrapped in pseudomuscles, with a low-conductivity case." + attack_verb = list("slapped", "punched") + item_state = "buildpipe" + icon = 'icons/obj/robot_parts.dmi' + flags = CONDUCT + icon_state = "l_arm" + status = BODYPART_ROBOTIC + + +/obj/item/bodypart/r_arm/robot + name = "cyborg right arm" + desc = "A skeletal limb wrapped in pseudomuscles, with a low-conductivity case." + attack_verb = list("slapped", "punched") + item_state = "buildpipe" + icon = 'icons/obj/robot_parts.dmi' + flags = CONDUCT + icon_state = "r_arm" + status = BODYPART_ROBOTIC + + +/obj/item/bodypart/l_leg/robot + name = "cyborg left leg" + desc = "A skeletal limb wrapped in pseudomuscles, with a low-conductivity case." + attack_verb = list("kicked", "stomped") + item_state = "buildpipe" + icon = 'icons/obj/robot_parts.dmi' + flags = CONDUCT + icon_state = "l_leg" + status = BODYPART_ROBOTIC + + +/obj/item/bodypart/r_leg/robot + name = "cyborg right leg" + desc = "A skeletal limb wrapped in pseudomuscles, with a low-conductivity case." + attack_verb = list("kicked", "stomped") + item_state = "buildpipe" + icon = 'icons/obj/robot_parts.dmi' + flags = CONDUCT + icon_state = "r_leg" + status = BODYPART_ROBOTIC + + +/obj/item/bodypart/chest/robot + name = "cyborg torso" + desc = "A heavily reinforced case containing cyborg logic boards, with space for a standard power cell." + item_state = "buildpipe" + icon = 'icons/obj/robot_parts.dmi' + flags = CONDUCT + icon_state = "chest" + status = BODYPART_ROBOTIC + var/wired = 0 + var/obj/item/weapon/stock_parts/cell/cell = null + +/obj/item/bodypart/chest/robot/attackby(obj/item/W, mob/user, params) + if(istype(W, /obj/item/weapon/stock_parts/cell)) + if(src.cell) + user << "You have already inserted a cell!" + return + else + if(!user.unEquip(W)) + return + W.loc = src + src.cell = W + user << "You insert the cell." + else if(istype(W, /obj/item/stack/cable_coil)) + if(src.wired) + user << "You have already inserted wire!" + return + var/obj/item/stack/cable_coil/coil = W + if (coil.use(1)) + src.wired = 1 + user << "You insert the wire." + else + user << "You need one length of coil to wire it!" + else + return ..() + +/obj/item/bodypart/chest/robot/Destroy() + if(cell) + qdel(cell) + cell = null + return ..() + + +/obj/item/bodypart/chest/robot/drop_organs(mob/user) + if(wired) + new /obj/item/stack/cable_coil(user.loc, 1) + if(cell) + cell.forceMove(user.loc) + cell = null + ..() + + +/obj/item/bodypart/head/robot + name = "cyborg head" + desc = "A standard reinforced braincase, with spine-plugged neural socket and sensor gimbals." + item_state = "buildpipe" + icon = 'icons/obj/robot_parts.dmi' + flags = CONDUCT + icon_state = "head" + status = BODYPART_ROBOTIC + var/obj/item/device/assembly/flash/handheld/flash1 = null + var/obj/item/device/assembly/flash/handheld/flash2 = null + + + +/obj/item/bodypart/head/robot/attackby(obj/item/W, mob/user, params) + if(istype(W, /obj/item/device/assembly/flash/handheld)) + var/obj/item/device/assembly/flash/handheld/F = W + if(src.flash1 && src.flash2) + user << "You have already inserted the eyes!" + return + else if(F.crit_fail) + user << "You can't use a broken flash!" + return + else + if(!user.unEquip(W)) + return + F.loc = src + if(src.flash1) + src.flash2 = F + else + src.flash1 = F + user << "You insert the flash into the eye socket." + else if(istype(W, /obj/item/weapon/crowbar)) + if(flash1 || flash2) + playsound(src.loc, W.usesound, 50, 1) + user << "You remove the flash from [src]." + if(flash1) + flash1.forceMove(user.loc) + flash1 = null + if(flash2) + flash2.forceMove(user.loc) + flash2 = null + else + user << "There are no flash to remove from [src]." + + else + return ..() + +/obj/item/bodypart/head/robot/Destroy() + if(flash1) + qdel(flash1) + flash1 = null + if(flash2) + qdel(flash2) + flash2 = null + return ..() + + +/obj/item/bodypart/head/robot/drop_organs(mob/user) + if(flash1) + flash1.forceMove(user.loc) + flash1 = null + if(flash2) + flash2.forceMove(user.loc) + flash2 = null + ..() diff --git a/code/modules/surgery/cavity_implant.dm b/code/modules/surgery/cavity_implant.dm index 771275b0d5..4723eac4f8 100644 --- a/code/modules/surgery/cavity_implant.dm +++ b/code/modules/surgery/cavity_implant.dm @@ -24,7 +24,7 @@ /datum/surgery_step/handle_cavity/success(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool, datum/surgery/surgery) var/obj/item/bodypart/chest/CH = target.get_bodypart("chest") if(tool) - if(IC || tool.w_class > 3 || (NODROP in tool.flags) || istype(tool, /obj/item/organ)) + if(IC || tool.w_class > WEIGHT_CLASS_NORMAL || (NODROP in tool.flags) || istype(tool, /obj/item/organ)) user << "You can't seem to fit [tool] in [target]'s [target_zone]!" return 0 else @@ -41,4 +41,4 @@ return 1 else user << "You don't find anything in [target]'s [target_zone]." - return 0 \ No newline at end of file + return 0 diff --git a/code/modules/surgery/dental_implant.dm b/code/modules/surgery/dental_implant.dm index 44ead63927..71fabfb7e6 100644 --- a/code/modules/surgery/dental_implant.dm +++ b/code/modules/surgery/dental_implant.dm @@ -16,11 +16,10 @@ return 0 user.drop_item() - target.internal_organs += tool tool.loc = target var/datum/action/item_action/hands_free/activate_pill/P = new - P.button_icon_state = tool.icon_state + P.button.name = "Activate [tool.name]" P.target = tool P.Grant(target) @@ -33,7 +32,7 @@ /datum/action/item_action/hands_free/activate_pill/Trigger() if(!..()) return 0 - owner << "You grit your teeth and burst the implanted [target]!" + owner << "You grit your teeth and burst the implanted [target.name]!" add_logs(owner, null, "swallowed an implanted pill", target) if(target.reagents.total_volume) target.reagents.reaction(owner, INGEST) diff --git a/code/modules/surgery/gender_reassignment.dm b/code/modules/surgery/gender_reassignment.dm deleted file mode 100644 index 830930839d..0000000000 --- a/code/modules/surgery/gender_reassignment.dm +++ /dev/null @@ -1,38 +0,0 @@ -/datum/surgery/gender_reassignment - name = "gender reassignment" - steps = list(/datum/surgery_step/incise, /datum/surgery_step/clamp_bleeders, /datum/surgery_step/reshape_genitals, /datum/surgery_step/close) - species = list(/mob/living/carbon/human) - possible_locs = list("groin") - - -//reshape_genitals -/datum/surgery_step/reshape_genitals - name = "reshape genitals" - implements = list(/obj/item/weapon/scalpel = 100, /obj/item/weapon/hatchet = 50, /obj/item/weapon/wirecutters = 35) - time = 64 - -/datum/surgery_step/reshape_genitals/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - if(target.gender == FEMALE) - user.visible_message("[user] begins to reshape [target]'s genitals to look more masculine.", "You begin to reshape [target]'s genitals to look more masculine...") - else - user.visible_message("[user] begins to reshape [target]'s genitals to look more feminine.", "You begin to reshape [target]'s genitals to look more feminine...") - -/datum/surgery_step/reshape_genitals/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - var/mob/living/carbon/human/H = target //no type check, as that should be handled by the surgery - H.gender_ambiguous = 0 - if(target.gender == FEMALE) - user.visible_message("[user] has made a man of [target]!", "You made [target] a man.") - target.gender = MALE - else - user.visible_message("[user] has made a woman of [target]!", "You made [target] a woman.") - target.gender = FEMALE - target.regenerate_icons() - return 1 - -/datum/surgery_step/reshape_genitals/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - var/mob/living/carbon/human/H = target - H.gender_ambiguous = 1 - user.visible_message("[user] accidentally mutilates [target]'s genitals beyond the point of recognition!", "You accidentally mutilate [target]'s genitals beyond the point of recognition!") - target.gender = pick(MALE, FEMALE) - target.regenerate_icons() - return 1 diff --git a/code/modules/surgery/generic_steps.dm b/code/modules/surgery/generic_steps.dm index 25a1c39c30..6667f182d3 100644 --- a/code/modules/surgery/generic_steps.dm +++ b/code/modules/surgery/generic_steps.dm @@ -21,7 +21,7 @@ /datum/surgery_step/clamp_bleeders/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) if(locate(/datum/surgery_step/saw) in surgery.steps) - target.heal_organ_damage(20,0) + target.heal_bodypart_damage(20,0) return ..() @@ -69,7 +69,7 @@ /datum/surgery_step/close/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) if(locate(/datum/surgery_step/saw) in surgery.steps) - target.heal_organ_damage(45,0) + target.heal_bodypart_damage(45,0) return ..() @@ -84,9 +84,7 @@ user.visible_message("[user] begins to saw through the bone in [target]'s [parse_zone(target_zone)].", "You begin to saw through the bone in [target]'s [parse_zone(target_zone)]...") /datum/surgery_step/saw/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - if(ishuman(target)) - var/mob/living/carbon/human/H = target - H.apply_damage(50,"brute","[target_zone]") + target.apply_damage(50,"brute","[target_zone]") user.visible_message("[user] saws [target]'s [parse_zone(target_zone)] open!", "You saw [target]'s [parse_zone(target_zone)] open.") return 1 diff --git a/code/modules/surgery/helpers.dm b/code/modules/surgery/helpers.dm index d4d8d61963..b27096d308 100644 --- a/code/modules/surgery/helpers.dm +++ b/code/modules/surgery/helpers.dm @@ -1,97 +1,94 @@ /proc/attempt_initiate_surgery(obj/item/I, mob/living/M, mob/user) - if(istype(M)) - var/mob/living/carbon/human/H - var/obj/item/bodypart/affecting - var/selected_zone = user.zone_selected + if(!istype(M)) + return - if(istype(M, /mob/living/carbon/human)) - H = M - affecting = H.get_bodypart(check_zone(selected_zone)) + var/mob/living/carbon/C + var/obj/item/bodypart/affecting + var/selected_zone = user.zone_selected - if(M.lying || isslime(M)) //if they're prone or a slime - var/datum/surgery/current_surgery + if(istype(M, /mob/living/carbon)) + C = M + affecting = C.get_bodypart(check_zone(selected_zone)) - for(var/datum/surgery/S in M.surgeries) - if(S.location == selected_zone) - current_surgery = S + if(!M.lying && !isslime(M)) //if they're prone or a slime + return - if(!current_surgery) - var/list/all_surgeries = surgeries_list.Copy() - var/list/available_surgeries = list() + var/datum/surgery/current_surgery - for(var/datum/surgery/S in all_surgeries) - if(!S.possible_locs.Find(selected_zone)) - continue - if(affecting) - if(!S.requires_bodypart) - continue - if(S.requires_organic_bodypart && affecting.status == ORGAN_ROBOTIC) - continue - else if(H && S.requires_bodypart) //human with no limb in surgery zone when we need a limb - continue - if(!S.can_start(user, M)) - continue - for(var/path in S.species) - if(istype(M, path)) - available_surgeries[S.name] = S - break + for(var/datum/surgery/S in M.surgeries) + if(S.location == selected_zone) + current_surgery = S - var/P = input("Begin which procedure?", "Surgery", null, null) as null|anything in available_surgeries - if(P && user && user.Adjacent(M) && (I in user)) - var/datum/surgery/S = available_surgeries[P] + if(!current_surgery) + var/list/all_surgeries = surgeries_list.Copy() + var/list/available_surgeries = list() - for(var/datum/surgery/other in M.surgeries) - if(other.location == S.location) - return //during the input() another surgery was started at the same location. + for(var/datum/surgery/S in all_surgeries) + if(!S.possible_locs.Find(selected_zone)) + continue + if(affecting) + if(!S.requires_bodypart) + continue + if(S.requires_organic_bodypart && affecting.status == BODYPART_ROBOTIC) + continue + else if(C && S.requires_bodypart) //mob with no limb in surgery zone when we need a limb + continue + if(!S.can_start(user, M)) + continue + for(var/path in S.species) + if(istype(M, path)) + available_surgeries[S.name] = S + break - var/datum/surgery/procedure = new S.type - if(procedure) - procedure.location = selected_zone + var/P = input("Begin which procedure?", "Surgery", null, null) as null|anything in available_surgeries + if(P && user && user.Adjacent(M) && (I in user)) + var/datum/surgery/S = available_surgeries[P] - //we check that the surgery is still doable after the input() wait. - if(H) - affecting = H.get_bodypart(check_zone(selected_zone)) - if(affecting) - if(!procedure.requires_bodypart) - return - if(procedure.requires_organic_bodypart && affecting.status == ORGAN_ROBOTIC) - return - else if(H && procedure.requires_bodypart) - return - if(!procedure.can_start(user, M)) - return + for(var/datum/surgery/other in M.surgeries) + if(other.location == S.location) + return //during the input() another surgery was started at the same location. - if(procedure.ignore_clothes || get_location_accessible(M, selected_zone)) - M.surgeries += procedure - procedure.organ = affecting - user.visible_message("[user] drapes [I] over [M]'s [parse_zone(selected_zone)] to prepare for \an [procedure.name].", \ - "You drape [I] over [M]'s [parse_zone(selected_zone)] to prepare for \an [procedure.name].") + //we check that the surgery is still doable after the input() wait. + if(C) + affecting = C.get_bodypart(check_zone(selected_zone)) + if(affecting) + if(!S.requires_bodypart) + return + if(S.requires_organic_bodypart && affecting.status == BODYPART_ROBOTIC) + return + else if(C && S.requires_bodypart) + return + if(!S.can_start(user, M)) + return - add_logs(user, M, "operated", addition="Operation type: [procedure.name], location: [selected_zone]") - else - user << "You need to expose [M]'s [parse_zone(selected_zone)] first!" + if(S.ignore_clothes || get_location_accessible(M, selected_zone)) + var/datum/surgery/procedure = new S.type(M, selected_zone, affecting) + user.visible_message("[user] drapes [I] over [M]'s [parse_zone(selected_zone)] to prepare for \an [procedure.name].", \ + "You drape [I] over [M]'s [parse_zone(selected_zone)] to prepare for \an [procedure.name].") - else if(!current_surgery.step_in_progress) - if(current_surgery.status == 1) - M.surgeries -= current_surgery - user.visible_message("[user] removes the drapes from [M]'s [parse_zone(selected_zone)].", \ - "You remove the drapes from [M]'s [parse_zone(selected_zone)].") - qdel(current_surgery) - else if(istype(user.get_inactive_hand(), /obj/item/weapon/cautery) && current_surgery.can_cancel) - M.surgeries -= current_surgery - user.visible_message("[user] mends the incision and removes the drapes from [M]'s [parse_zone(selected_zone)].", \ - "You mend the incision and remove the drapes from [M]'s [parse_zone(selected_zone)].") - qdel(current_surgery) - else if(current_surgery.can_cancel) - user << "You need to hold a cautery in inactive hand to stop [M]'s surgery!" + add_logs(user, M, "operated", addition="Operation type: [procedure.name], location: [selected_zone]") + else + user << "You need to expose [M]'s [parse_zone(selected_zone)] first!" + else if(!current_surgery.step_in_progress) + if(current_surgery.status == 1) + M.surgeries -= current_surgery + user.visible_message("[user] removes the drapes from [M]'s [parse_zone(selected_zone)].", \ + "You remove the drapes from [M]'s [parse_zone(selected_zone)].") + qdel(current_surgery) + else if(istype(user.get_inactive_held_item(), /obj/item/weapon/cautery) && current_surgery.can_cancel) + M.surgeries -= current_surgery + user.visible_message("[user] mends the incision and removes the drapes from [M]'s [parse_zone(selected_zone)].", \ + "You mend the incision and remove the drapes from [M]'s [parse_zone(selected_zone)].") + qdel(current_surgery) + else if(current_surgery.can_cancel) + user << "You need to hold a cautery in inactive hand to stop [M]'s surgery!" - return 1 - return 0 + return 1 -proc/get_location_modifier(mob/M) +/proc/get_location_modifier(mob/M) var/turf/T = get_turf(M) if(locate(/obj/structure/table/optable, T)) return 1 diff --git a/code/modules/surgery/implant_removal.dm b/code/modules/surgery/implant_removal.dm index 11a0dfa7a6..2f8f3886fe 100644 --- a/code/modules/surgery/implant_removal.dm +++ b/code/modules/surgery/implant_removal.dm @@ -14,7 +14,9 @@ var/obj/item/weapon/implant/I = null /datum/surgery_step/extract_implant/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - I = locate(/obj/item/weapon/implant) in target + for(var/obj/item/O in target.implants) + I = O + break if(I) user.visible_message("[user] begins to extract [I] from [target]'s [target_zone].", "You begin to extract [I] from [target]'s [target_zone]...") else @@ -26,14 +28,11 @@ I.removed(target) var/obj/item/weapon/implantcase/case - - if(istype(user.get_item_by_slot(slot_l_hand), /obj/item/weapon/implantcase)) - case = user.get_item_by_slot(slot_l_hand) - else if(istype(user.get_item_by_slot(slot_r_hand), /obj/item/weapon/implantcase)) - case = user.get_item_by_slot(slot_r_hand) - else + for(var/obj/item/weapon/implantcase/ic in user.held_items) + case = ic + break + if(!case) case = locate(/obj/item/weapon/implantcase) in get_turf(target) - if(case && !case.imp) case.imp = I I.loc = case diff --git a/code/modules/surgery/limb_augmentation.dm b/code/modules/surgery/limb_augmentation.dm index d5054b3bdc..cbbfd31c6d 100644 --- a/code/modules/surgery/limb_augmentation.dm +++ b/code/modules/surgery/limb_augmentation.dm @@ -16,21 +16,23 @@ /datum/surgery_step/add_limb name = "replace limb" - implements = list(/obj/item/robot_parts = 100) + implements = list(/obj/item/bodypart = 100) time = 32 var/obj/item/bodypart/L = null // L because "limb" - /datum/surgery_step/add_limb/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - L = surgery.organ + var/obj/item/bodypart/aug = tool + if(aug.status != BODYPART_ROBOTIC && aug.body_zone != target_zone) + user << "[tool] isn't the right type for [parse_zone(target_zone)]." + return -1 + L = surgery.operated_bodypart if(L) user.visible_message("[user] begins to augment [target]'s [parse_zone(user.zone_selected)].", "You begin to augment [target]'s [parse_zone(user.zone_selected)]...") else user.visible_message("[user] looks for [target]'s [parse_zone(user.zone_selected)].", "You look for [target]'s [parse_zone(user.zone_selected)]...") - //ACTUAL SURGERIES /datum/surgery/augmentation @@ -39,20 +41,17 @@ species = list(/mob/living/carbon/human) possible_locs = list("r_arm","l_arm","r_leg","l_leg","chest","head") - //SURGERY STEP SUCCESSES /datum/surgery_step/add_limb/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) if(L) - if(ishuman(target)) - var/mob/living/carbon/human/H = target - user.visible_message("[user] successfully augments [target]'s [parse_zone(target_zone)]!", "You successfully augment [target]'s [parse_zone(target_zone)].") - L.change_bodypart_status(ORGAN_ROBOTIC, 1) - user.drop_item() - qdel(tool) - H.update_damage_overlays(0) - H.updatehealth() - add_logs(user, target, "augmented", addition="by giving him new [parse_zone(target_zone)] INTENT: [uppertext(user.a_intent)]") + user.visible_message("[user] successfully augments [target]'s [parse_zone(target_zone)]!", "You successfully augment [target]'s [parse_zone(target_zone)].") + L.change_bodypart_status(BODYPART_ROBOTIC, 1) + user.drop_item() + qdel(tool) + target.update_damage_overlays() + target.updatehealth() + add_logs(user, target, "augmented", addition="by giving him new [parse_zone(target_zone)] INTENT: [uppertext(user.a_intent)]") else user << "[target] has no organic [parse_zone(target_zone)] there!" return 1 @@ -83,7 +82,7 @@ user.visible_message("[user] begins to install the chainsaw onto [target].", "You begin to install the chainsaw onto [target]...") /datum/surgery_step/chainsaw/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - if(target.l_hand && target.r_hand) + if(!target.get_empty_held_indexes()) user << "You can't fit the chainsaw in while [target]'s hands are full!" return 0 else @@ -103,9 +102,7 @@ requires_organic_bodypart = 0 /datum/surgery/chainsaw_removal/can_start(mob/user, mob/living/carbon/target) - var/list/hands = get_both_hands(target) - var/M = locate(/obj/item/weapon/mounted_chainsaw) in hands - if(M) + if(target.is_holding_item_of_type(/obj/item/weapon/mounted_chainsaw)) return 1//can continue surgery else return 0//surgery will never be available @@ -119,8 +116,7 @@ user.visible_message("[user] begins sawing the chainsaw off of [target]'s arms.", "You begin removing [target]'s chainsaw...") /datum/surgery_step/chainsaw_removal/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - var/list/hands = get_both_hands(target) - for(var/obj/item/weapon/mounted_chainsaw/V in hands) + for(var/obj/item/weapon/mounted_chainsaw/V in target.held_items) target.unEquip(V, 1) user.visible_message("[user] carefully saws [target]'s arm free of the chainsaw.", "You remove the chainsaw.") return 1 diff --git a/code/modules/surgery/organ_manipulation.dm b/code/modules/surgery/organ_manipulation.dm index 8e8eccc4c8..912fab5caa 100644 --- a/code/modules/surgery/organ_manipulation.dm +++ b/code/modules/surgery/organ_manipulation.dm @@ -67,6 +67,11 @@ else if(implement_type in implements_extract) current_type = "extract" var/list/organs = target.getorganszone(target_zone) + var/mob/living/simple_animal/borer/B = target.has_brain_worms() + if(target.has_brain_worms()) + user.visible_message("[user] begins to extract [B] from [target]'s [parse_zone(target_zone)].", + "You begin to extract [B] from [target]'s [parse_zone(target_zone)]...") + return TRUE if(!organs.len) user << "There is no removeable organs in [target]'s [parse_zone(target_zone)]!" return -1 @@ -77,7 +82,7 @@ organs[O.name] = O I = input("Remove which organ?", "Surgery", null, null) as null|anything in organs - if(I && user && target && user.Adjacent(target) && user.get_active_hand() == tool) + if(I && user && target && user.Adjacent(target) && user.get_active_held_item() == tool) I = organs[I] if(!I) return -1 user.visible_message("[user] begins to extract [I] from [target]'s [parse_zone(target_zone)].", @@ -107,6 +112,13 @@ "You insert [tool] into [target]'s [parse_zone(target_zone)].") else if(current_type == "extract") + var/mob/living/simple_animal/borer/B = target.has_brain_worms() + if(B && B.victim == target) + user.visible_message("[user] successfully extracts [B] from [target]'s [parse_zone(target_zone)]!", + "You successfully extract [B] from [target]'s [parse_zone(target_zone)].") + add_logs(user, target, "surgically removed [B] from", addition="INTENT: [uppertext(user.a_intent)]") + B.leave_victim() + return FALSE if(I && I.owner == target) user.visible_message("[user] successfully extracts [I] from [target]'s [parse_zone(target_zone)]!", "You successfully extract [I] from [target]'s [parse_zone(target_zone)].") diff --git a/code/modules/surgery/organs/augments_arms.dm b/code/modules/surgery/organs/augments_arms.dm index 3cdf2328b1..a9dcf67455 100644 --- a/code/modules/surgery/organs/augments_arms.dm +++ b/code/modules/surgery/organs/augments_arms.dm @@ -4,7 +4,7 @@ zone = "r_arm" slot = "r_arm_device" icon_state = "implant-toolkit" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL actions_types = list(/datum/action/item_action/organ_action/toggle) var/list/items_list = list() @@ -64,12 +64,16 @@ if(!holder || (holder in src)) return - owner.visible_message("[owner] retracts [holder] back into \his [zone == "r_arm" ? "right" : "left"] arm.", + owner.visible_message("[owner] retracts [holder] back into [owner.p_their()] [zone == "r_arm" ? "right" : "left"] arm.", "[holder] snaps back into your [zone == "r_arm" ? "right" : "left"] arm.", "You hear a short mechanical noise.") + if(istype(holder, /obj/item/device/assembly/flash/armimplant)) + var/obj/item/device/assembly/flash/F = holder + F.SetLuminosity(0) + owner.unEquip(holder, 1) - holder.loc = src + holder.forceMove(src) holder = null playsound(get_turf(owner), 'sound/mecha/mechmove03.ogg', 50, 1) @@ -80,13 +84,16 @@ holder = item holder.flags |= NODROP - holder.unacidable = 1 + holder.resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF holder.slot_flags = null - holder.w_class = 5 + holder.w_class = WEIGHT_CLASS_HUGE holder.materials = null - var/arm_slot = (zone == "r_arm" ? slot_r_hand : slot_l_hand) - var/obj/item/arm_item = owner.get_item_by_slot(arm_slot) + if(istype(holder, /obj/item/device/assembly/flash/armimplant)) + var/obj/item/device/assembly/flash/F = holder + F.SetLuminosity(7) + + var/obj/item/arm_item = owner.get_active_held_item() if(arm_item) if(!owner.unEquip(arm_item)) @@ -95,15 +102,15 @@ else owner << "You drop [arm_item] to activate [src]!" - if(zone == "r_arm" ? !owner.put_in_r_hand(holder) : !owner.put_in_l_hand(holder)) + var/result = (zone == "r_arm" ? owner.put_in_r_hand(holder) : owner.put_in_l_hand(holder)) + if(!result) owner << "Your [src] fails to activate!" return // Activate the hand that now holds our item. - if(zone == "r_arm" ? owner.hand : !owner.hand) - owner.swap_hand() + owner.swap_hand(result)//... or the 1st hand if the index gets lost somehow - owner.visible_message("[owner] extends [holder] from \his [zone == "r_arm" ? "right" : "left"] arm.", + owner.visible_message("[owner] extends [holder] from [owner.p_their()] [zone == "r_arm" ? "right" : "left"] arm.", "You extend [holder] from your [zone == "r_arm" ? "right" : "left"] arm.", "You hear a short mechanical noise.") playsound(get_turf(owner), 'sound/mecha/mechmove03.ogg', 50, 1) @@ -114,8 +121,7 @@ return // You can emag the arm-mounted implant by activating it while holding emag in it's hand. - var/arm_slot = (zone == "r_arm" ? slot_r_hand : slot_l_hand) - if(istype(owner.get_item_by_slot(arm_slot), /obj/item/weapon/card/emag) && emag_act()) + if(istype(owner.get_active_held_item(), /obj/item/weapon/card/emag) && emag_act()) return if(!holder || (holder in src)) @@ -152,7 +158,8 @@ origin_tech = "materials=4;combat=4;biotech=4;powerstorage=4;syndicate=3" holder = /obj/item/weapon/gun/energy/laser/mounted -/obj/item/organ/cyberimp/arm/gun/laser/l/zone = "l_arm" +/obj/item/organ/cyberimp/arm/gun/laser/l + zone = "l_arm" /obj/item/organ/cyberimp/arm/gun/taser @@ -160,9 +167,10 @@ desc = "A variant of the arm cannon implant that fires electrodes and disabler shots. The cannon emerges from the subject's arm and remains inside when not in use." icon_state = "arm_taser" origin_tech = "materials=5;combat=5;biotech=4;powerstorage=4" - holder = /obj/item/weapon/gun/energy/gun/advtaser/mounted + holder = /obj/item/weapon/gun/energy/e_gun/advtaser/mounted -/obj/item/organ/cyberimp/arm/gun/taser/l/zone = "l_arm" +/obj/item/organ/cyberimp/arm/gun/taser/l + zone = "l_arm" /obj/item/organ/cyberimp/arm/toolset @@ -172,7 +180,8 @@ contents = newlist(/obj/item/weapon/screwdriver/cyborg, /obj/item/weapon/wrench/cyborg, /obj/item/weapon/weldingtool/largetank/cyborg, /obj/item/weapon/crowbar/cyborg, /obj/item/weapon/wirecutters/cyborg, /obj/item/device/multitool/cyborg) -/obj/item/organ/cyberimp/arm/toolset/l/zone = "l_arm" +/obj/item/organ/cyberimp/arm/toolset/l + zone = "l_arm" /obj/item/organ/cyberimp/arm/toolset/emag_act() if(!(locate(/obj/item/weapon/kitchen/knife/combat/cyborg) in items_list)) @@ -180,3 +189,51 @@ items_list += new /obj/item/weapon/kitchen/knife/combat/cyborg(src) return 1 return 0 + +/obj/item/organ/cyberimp/arm/esword + name = "arm-mounted energy blade" + desc = "An illegal, and highly dangerous cybernetic implant that can project a deadly blade of concentrated enregy." + contents = newlist(/obj/item/weapon/melee/energy/blade/hardlight) + origin_tech = "materials=4;combat=5;biotech=3;powerstorage=2;syndicate=5" + +/obj/item/organ/cyberimp/arm/medibeam + name = "integrated medical beamgun" + desc = "A cybernetic implant that allows the user to project a healing beam from their hand." + contents = newlist(/obj/item/weapon/gun/medbeam) + origin_tech = "materials=5;combat=2;biotech=5;powerstorage=4;syndicate=1" + +/obj/item/organ/cyberimp/arm/flash + name = "integrated high-intensity photon projector" //Why not + desc = "An integrated projector mounted onto a user's arm, that is able to be used as a powerful flash." + contents = newlist(/obj/item/device/assembly/flash/armimplant) + origin_tech = "materials=4;combat=3;biotech=4;magnets=4;powerstorage=3" + +/obj/item/organ/cyberimp/arm/flash/New() + ..() + if(locate(/obj/item/device/assembly/flash/armimplant) in items_list) + var/obj/item/device/assembly/flash/armimplant/F = locate(/obj/item/device/assembly/flash/armimplant) in items_list + F.I = src + +/obj/item/organ/cyberimp/arm/baton + name = "arm electrification implant" + desc = "An illegal combat implant that allows the user to administer disabling shocks from their arm." + contents = newlist(/obj/item/borg/stun) + origin_tech = "materials=3;combat=5;biotech=4;powerstorage=4;syndicate=3" + +/obj/item/organ/cyberimp/arm/combat + name = "combat cybernetics implant" + desc = "A powerful cybernetic implant that contains combat modules built into the user's arm" + contents = newlist(/obj/item/weapon/melee/energy/blade/hardlight, /obj/item/weapon/gun/medbeam, /obj/item/borg/stun, /obj/item/device/assembly/flash/armimplant) + origin_tech = "materials=5;combat=7;biotech=5;powerstorage=5;syndicate=6;programming=5" + +/obj/item/organ/cyberimp/arm/combat/New() + ..() + if(locate(/obj/item/device/assembly/flash/armimplant) in items_list) + var/obj/item/device/assembly/flash/armimplant/F = locate(/obj/item/device/assembly/flash/armimplant) in items_list + F.I = src + +/obj/item/organ/cyberimp/arm/surgery + name = "surgical toolset implant" + desc = "A set of surgical tools hidden behind a concealed panel on the user's arm" + contents = newlist(/obj/item/weapon/retractor, /obj/item/weapon/hemostat, /obj/item/weapon/cautery, /obj/item/weapon/surgicaldrill, /obj/item/weapon/scalpel, /obj/item/weapon/circular_saw, /obj/item/weapon/surgical_drapes) + origin_tech = "materials=3;engineering=3;biotech=3;programming=2;magnets=3" diff --git a/code/modules/surgery/organs/augments_chest.dm b/code/modules/surgery/organs/augments_chest.dm index 2e1d167797..864eababbd 100644 --- a/code/modules/surgery/organs/augments_chest.dm +++ b/code/modules/surgery/organs/augments_chest.dm @@ -14,7 +14,7 @@ var/synthesizing = 0 var/poison_amount = 5 slot = "stomach" - origin_tech = "materials=4;powerstorage=5;biotech=4" + origin_tech = "materials=2;powerstorage=2;biotech=2" /obj/item/organ/cyberimp/chest/nutriment/on_life() if(synthesizing) @@ -41,14 +41,14 @@ implant_color = "#006607" hunger_threshold = NUTRITION_LEVEL_HUNGRY poison_amount = 10 - origin_tech = "materials=4;powerstorage=5;biotech=5" + origin_tech = "materials=4;powerstorage=3;biotech=3" /obj/item/organ/cyberimp/chest/reviver name = "Reviver implant" desc = "This implant will attempt to revive you if you lose consciousness. For the faint of heart!" icon_state = "chest_implant" implant_color = "#AD0000" - origin_tech = "materials=5;programming=4;biotech=6" + origin_tech = "materials=5;programming=4;biotech=4" slot = "heartdrive" var/revive_cost = 0 var/reviving = 0 @@ -96,7 +96,7 @@ else cooldown += 200 - if(istype(owner, /mob/living/carbon/human)) + if(ishuman(owner)) var/mob/living/carbon/human/H = owner if(H.stat != DEAD && prob(50 / severity)) H.heart_attack = TRUE @@ -121,7 +121,7 @@ implant_overlay = null implant_color = null actions_types = list(/datum/action/item_action/organ_action/toggle) - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL var/on = 0 var/datum/effect_system/trail_follow/ion/ion_trail @@ -197,3 +197,4 @@ toggle(silent=1) return 0 + diff --git a/code/modules/surgery/organs/augments_eyes.dm b/code/modules/surgery/organs/augments_eyes.dm index 50c3875f25..f5bf53e30c 100644 --- a/code/modules/surgery/organs/augments_eyes.dm +++ b/code/modules/surgery/organs/augments_eyes.dm @@ -5,7 +5,7 @@ implant_overlay = "eye_implant_overlay" slot = "eye_sight" zone = "eyes" - w_class = 1 + w_class = WEIGHT_CLASS_TINY var/sight_flags = 0 var/dark_view = 0 @@ -18,7 +18,7 @@ /obj/item/organ/cyberimp/eyes/Insert(var/mob/living/carbon/M, var/special = 0) ..() - if(istype(owner, /mob/living/carbon/human) && eye_color) + if(ishuman(owner) && eye_color) var/mob/living/carbon/human/HMN = owner old_eye_color = HMN.eye_color HMN.eye_color = eye_color @@ -30,7 +30,7 @@ /obj/item/organ/cyberimp/eyes/Remove(var/mob/living/carbon/M, var/special = 0) M.sight ^= sight_flags - if(istype(M,/mob/living/carbon/human) && eye_color) + if(ishuman(M) && eye_color) var/mob/living/carbon/human/HMN = owner HMN.eye_color = old_eye_color HMN.regenerate_icons() @@ -43,7 +43,7 @@ if(prob(10 * severity)) return owner << "Static obfuscates your vision!" - owner.flash_eyes(visual = 1) + owner.flash_act(visual = 1) /obj/item/organ/cyberimp/eyes/xray name = "X-ray implant" diff --git a/code/modules/surgery/organs/augments_internal.dm b/code/modules/surgery/organs/augments_internal.dm index 55a3ff4015..402d74038e 100644 --- a/code/modules/surgery/organs/augments_internal.dm +++ b/code/modules/surgery/organs/augments_internal.dm @@ -26,7 +26,7 @@ icon_state = "brain_implant" implant_overlay = "brain_implant_overlay" zone = "head" - w_class = 1 + w_class = WEIGHT_CLASS_TINY /obj/item/organ/cyberimp/brain/emp_act(severity) if(!owner) @@ -41,10 +41,7 @@ name = "anti-drop implant" desc = "This cybernetic brain implant will allow you to force your hand muscles to contract, preventing item dropping. Twitch ear to toggle." var/active = 0 - var/l_hand_ignore = 0 - var/r_hand_ignore = 0 - var/obj/item/l_hand_obj = null - var/obj/item/r_hand_obj = null + var/list/stored_items = list() implant_color = "#DE7E00" slot = "brain_antidrop" origin_tech = "materials=4;programming=5;biotech=4" @@ -53,66 +50,41 @@ /obj/item/organ/cyberimp/brain/anti_drop/ui_action_click() active = !active if(active) - l_hand_obj = owner.l_hand - r_hand_obj = owner.r_hand - if(l_hand_obj) - if(owner.l_hand.flags & NODROP) - l_hand_ignore = 1 - else - owner.l_hand.flags |= NODROP - l_hand_ignore = 0 + for(var/obj/item/I in owner.held_items) + if(!(I.flags & NODROP)) + stored_items += I - if(r_hand_obj) - if(owner.r_hand.flags & NODROP) - r_hand_ignore = 1 - else - owner.r_hand.flags |= NODROP - r_hand_ignore = 0 - - if(!l_hand_obj && !r_hand_obj) + var/list/L = owner.get_empty_held_indexes() + if(L && L.len == owner.held_items.len) owner << "You are not holding any items, your hands relax..." active = 0 + stored_items = list() else - var/msg = 0 - msg += !l_hand_ignore && l_hand_obj ? 1 : 0 - msg += !r_hand_ignore && r_hand_obj ? 2 : 0 - switch(msg) - if(1) - owner << "Your left hand's grip tightens." - if(2) - owner << "Your right hand's grip tightens." - if(3) - owner << "Both of your hand's grips tighten." + for(var/obj/item/I in stored_items) + owner << "Your [owner.get_held_index_name(owner.get_held_index_of_item(I))]'s grip tightens." else release_items() owner << "Your hands relax..." - l_hand_obj = null - r_hand_obj = null + /obj/item/organ/cyberimp/brain/anti_drop/emp_act(severity) if(!owner) return var/range = severity ? 10 : 5 var/atom/A - var/obj/item/L_item = owner.l_hand - var/obj/item/R_item = owner.r_hand - release_items() ..() - if(L_item) + for(var/obj/item/I in stored_items) A = pick(oview(range)) - L_item.throw_at(A, range, 2) - owner << "Your left arm spasms and throws the [L_item.name]!" - if(R_item) - A = pick(oview(range)) - R_item.throw_at(A, range, 2) - owner << "Your right arm spasms and throws the [R_item.name]!" + I.throw_at(A, range, 2) + owner << "Your [owner.get_held_index_name(owner.get_held_index_of_item(I))] spasms and throws the [I.name]!" + stored_items = list() + /obj/item/organ/cyberimp/brain/anti_drop/proc/release_items() - if(!l_hand_ignore && l_hand_obj in owner.contents) - l_hand_obj.flags ^= NODROP - if(!r_hand_ignore && r_hand_obj in owner.contents) - r_hand_obj.flags ^= NODROP + for(var/obj/item/I in stored_items) + I.flags ^= NODROP + /obj/item/organ/cyberimp/brain/anti_drop/Remove(var/mob/living/carbon/M, special = 0) if(active) @@ -156,7 +128,7 @@ desc = "This simple implant adds an internals connector to your back, allowing you to use internals without a mask and protecting you from being choked." icon_state = "implant_mask" slot = "breathing_tube" - w_class = 1 + w_class = WEIGHT_CLASS_TINY origin_tech = "materials=2;biotech=3" /obj/item/organ/cyberimp/mouth/breathing_tube/emp_act(severity) diff --git a/code/modules/surgery/organs/autoimplanter.dm b/code/modules/surgery/organs/autoimplanter.dm index 230442db23..b8d8ea21f0 100644 --- a/code/modules/surgery/organs/autoimplanter.dm +++ b/code/modules/surgery/organs/autoimplanter.dm @@ -5,7 +5,7 @@ desc = "A device that automatically injects a cyber-implant into the user without the hassle of extensive surgery. It has a slot to insert implants and a screwdriver slot for removing accidentally added implants." icon_state = "autoimplanter" item_state = "walkietalkie"//left as this so as to intentionally not have inhands - w_class = 2 + w_class = WEIGHT_CLASS_SMALL var/obj/item/organ/storedorgan var/organ_type = /obj/item/organ/cyberimp var/uses = INFINITE @@ -51,7 +51,7 @@ var/turf/open/floorloc = get_turf(user) floorloc.contents += contents user << "You remove the [storedorgan] from [src]." - playsound(get_turf(user), 'sound/items/Screwdriver.ogg', 50, 1) + playsound(get_turf(user), I.usesound, 50, 1) storedorgan = null if(uses != INFINITE) uses-- diff --git a/code/modules/surgery/organs/helpers.dm b/code/modules/surgery/organs/helpers.dm index 793d887ec6..9d56e834fa 100644 --- a/code/modules/surgery/organs/helpers.dm +++ b/code/modules/surgery/organs/helpers.dm @@ -1,17 +1,17 @@ -mob/proc/getorgan(typepath) +/mob/proc/getorgan(typepath) return -mob/proc/getorganszone(zone) +/mob/proc/getorganszone(zone) return -mob/proc/getorganslot(slot) +/mob/proc/getorganslot(slot) return -mob/living/carbon/getorgan(typepath) +/mob/living/carbon/getorgan(typepath) return (locate(typepath) in internal_organs) -mob/living/carbon/getorganszone(zone, var/subzones = 0) +/mob/living/carbon/getorganszone(zone, subzones = 0) var/list/returnorg = list() if(subzones) // Include subzones - groin for chest, eyes and mouth for head @@ -20,14 +20,11 @@ mob/living/carbon/getorganszone(zone, var/subzones = 0) if(zone == "chest") returnorg = getorganszone("groin") - for(var/obj/item/organ/O in internal_organs) + for(var/X in internal_organs) + var/obj/item/organ/O = X if(zone == O.zone) returnorg += O return returnorg -mob/living/carbon/getorganslot(slot) +/mob/living/carbon/getorganslot(slot) return internal_organs_slot[slot] - - -proc/isorgan(atom/A) - return istype(A, /obj/item/organ) \ No newline at end of file diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm index acb27d5c4c..02bccedf31 100644 --- a/code/modules/surgery/organs/organ_internal.dm +++ b/code/modules/surgery/organs/organ_internal.dm @@ -4,8 +4,7 @@ var/mob/living/carbon/owner = null var/status = ORGAN_ORGANIC origin_tech = "biotech=3" - force = 1 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL throwforce = 0 var/zone = "chest" var/slot @@ -165,7 +164,7 @@ /obj/item/organ/heart/cursed name = "cursed heart" - desc = "it needs to be pumped..." + desc = "A heart that, when inserted, will force you to pump it manually." icon_state = "cursedheart-off" icon_base = "cursedheart" origin_tech = "biotech=6" @@ -193,7 +192,7 @@ if(world.time > (last_pump + pump_delay)) if(ishuman(owner) && owner.client) //While this entire item exists to make people suffer, they can't control disconnects. var/mob/living/carbon/human/H = owner - if(H.dna && !(NOBLOOD in H.dna.species.specflags)) + if(H.dna && !(NOBLOOD in H.dna.species.species_traits)) H.blood_volume = max(H.blood_volume - blood_loss, 0) H << "You have to keep pumping your blood!" if(add_colour) @@ -208,7 +207,7 @@ owner << "Your heart has been replaced with a cursed one, you have to pump this one manually otherwise you'll die!" /datum/action/item_action/organ_action/cursed_heart - name = "pump your blood" + name = "Pump your blood" //You are now brea- pumping blood manually /datum/action/item_action/organ_action/cursed_heart/Trigger() @@ -226,7 +225,7 @@ var/mob/living/carbon/human/H = owner if(istype(H)) - if(H.dna && !(NOBLOOD in H.dna.species.specflags)) + if(H.dna && !(NOBLOOD in H.dna.species.species_traits)) H.blood_volume = min(H.blood_volume + cursed_heart.blood_loss*0.5, BLOOD_VOLUME_MAXIMUM) H.remove_client_colour(/datum/client_colour/cursed_heart_blood) cursed_heart.add_colour = TRUE @@ -239,7 +238,15 @@ priority = 100 //it's an indicator you're dieing, so it's very high priority colour = "red" +#define HUMAN_MAX_OXYLOSS 3 +#define HUMAN_CRIT_MAX_OXYLOSS (SSmob.wait/30) +#define HEAT_GAS_DAMAGE_LEVEL_1 2 +#define HEAT_GAS_DAMAGE_LEVEL_2 4 +#define HEAT_GAS_DAMAGE_LEVEL_3 8 +#define COLD_GAS_DAMAGE_LEVEL_1 0.5 +#define COLD_GAS_DAMAGE_LEVEL_2 1.5 +#define COLD_GAS_DAMAGE_LEVEL_3 3 /obj/item/organ/lungs name = "lungs" @@ -247,13 +254,266 @@ zone = "chest" slot = "lungs" gender = PLURAL - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL + var/list/breathlevels = list("safe_oxygen_min" = 16,"safe_oxygen_max" = 0,"safe_co2_min" = 0,"safe_co2_max" = 10, + "safe_toxins_min" = 0,"safe_toxins_max" = 0.05,"SA_para_min" = 1,"SA_sleep_min" = 5,"BZ_trip_balls_min" = 1) + + //Breath damage + + var/safe_oxygen_min = 16 // Minimum safe partial pressure of O2, in kPa + var/safe_oxygen_max = 0 + var/safe_co2_min = 0 + var/safe_co2_max = 10 // Yes it's an arbitrary value who cares? + var/safe_toxins_min = 0 + var/safe_toxins_max = 0.05 + var/SA_para_min = 1 //Sleeping agent + var/SA_sleep_min = 5 //Sleeping agent + var/BZ_trip_balls_min = 1 //BZ gas. + + var/oxy_breath_dam_min = 1 + var/oxy_breath_dam_max = 10 + var/co2_breath_dam_min = 1 + var/co2_breath_dam_max = 10 + var/tox_breath_dam_min = MIN_PLASMA_DAMAGE + var/tox_breath_dam_max = MAX_PLASMA_DAMAGE + + + +/obj/item/organ/lungs/proc/check_breath(datum/gas_mixture/breath, var/mob/living/carbon/human/H) + if((H.status_flags & GODMODE)) + return + + var/species_traits = list() + if(H && H.dna && H.dna.species && H.dna.species.species_traits) + species_traits = H.dna.species.species_traits + + if(!breath || (breath.total_moles() == 0)) + if(H.reagents.has_reagent("epinephrine")) + return + if(H.health >= HEALTH_THRESHOLD_CRIT) + H.adjustOxyLoss(HUMAN_MAX_OXYLOSS) + else if(!(NOCRITDAMAGE in species_traits)) + H.adjustOxyLoss(HUMAN_CRIT_MAX_OXYLOSS) + + H.failed_last_breath = 1 + if(safe_oxygen_min) + H.throw_alert("oxy", /obj/screen/alert/oxy) + else if(safe_toxins_min) + H.throw_alert("not_enough_tox", /obj/screen/alert/not_enough_tox) + else if(safe_co2_min) + H.throw_alert("not_enough_co2", /obj/screen/alert/not_enough_co2) + return 0 + + var/gas_breathed = 0 + + var/list/breath_gases = breath.gases + + breath.assert_gases("o2", "plasma", "co2", "n2o", "bz") + + //Partial pressures in our breath + var/O2_pp = breath.get_breath_partial_pressure(breath_gases["o2"][MOLES]) + var/Toxins_pp = breath.get_breath_partial_pressure(breath_gases["plasma"][MOLES]) + var/CO2_pp = breath.get_breath_partial_pressure(breath_gases["co2"][MOLES]) + + + //-- OXY --// + + //Too much oxygen! //Yes, some species may not like it. + if(safe_oxygen_max) + if(O2_pp > safe_oxygen_max) + var/ratio = (breath_gases["o2"][MOLES]/safe_oxygen_max) * 10 + H.adjustOxyLoss(Clamp(ratio,oxy_breath_dam_min,oxy_breath_dam_max)) + H.throw_alert("too_much_oxy", /obj/screen/alert/too_much_oxy) + else + H.clear_alert("too_much_oxy") + + //Too little oxygen! + if(safe_oxygen_min) + if(O2_pp < safe_oxygen_min) + gas_breathed = handle_too_little_breath(H,O2_pp,safe_oxygen_min,breath_gases["o2"][MOLES]) + H.throw_alert("oxy", /obj/screen/alert/oxy) + else + H.failed_last_breath = 0 + if(H.getOxyLoss()) + H.adjustOxyLoss(-5) + gas_breathed = breath_gases["o2"][MOLES] + H.clear_alert("oxy") + + //Exhale + breath_gases["o2"][MOLES] -= gas_breathed + breath_gases["co2"][MOLES] += gas_breathed + gas_breathed = 0 + + + //-- CO2 --// + + //CO2 does not affect failed_last_breath. So if there was enough oxygen in the air but too much co2, this will hurt you, but only once per 4 ticks, instead of once per tick. + if(safe_co2_max) + if(CO2_pp > safe_co2_max) + if(!H.co2overloadtime) // If it's the first breath with too much CO2 in it, lets start a counter, then have them pass out after 12s or so. + H.co2overloadtime = world.time + else if(world.time - H.co2overloadtime > 120) + H.Paralyse(3) + H.adjustOxyLoss(3) // Lets hurt em a little, let them know we mean business + if(world.time - H.co2overloadtime > 300) // They've been in here 30s now, lets start to kill them for their own good! + H.adjustOxyLoss(8) + H.throw_alert("too_much_co2", /obj/screen/alert/too_much_co2) + if(prob(20)) // Lets give them some chance to know somethings not right though I guess. + H.emote("cough") + + else + H.co2overloadtime = 0 + H.clear_alert("too_much_co2") + + //Too little CO2! + if(breathlevels["safe_co2_min"]) + if(CO2_pp < safe_co2_min) + gas_breathed = handle_too_little_breath(H,CO2_pp, safe_co2_min,breath_gases["co2"][MOLES]) + H.throw_alert("not_enough_co2", /obj/screen/alert/not_enough_co2) + else + H.failed_last_breath = 0 + H.adjustOxyLoss(-5) + gas_breathed = breath_gases["co2"][MOLES] + H.clear_alert("not_enough_co2") + + //Exhale + breath_gases["co2"][MOLES] -= gas_breathed + breath_gases["o2"][MOLES] += gas_breathed + gas_breathed = 0 + + + //-- TOX --// + + //Too much toxins! + if(safe_toxins_max) + if(Toxins_pp > safe_toxins_max) + var/ratio = (breath_gases["plasma"][MOLES]/safe_toxins_max) * 10 + if(H.reagents) + H.reagents.add_reagent("plasma", Clamp(ratio, tox_breath_dam_min, tox_breath_dam_max)) + H.throw_alert("tox_in_air", /obj/screen/alert/tox_in_air) + else + H.clear_alert("tox_in_air") + + + //Too little toxins! + if(safe_toxins_min) + if(Toxins_pp < safe_toxins_min) + gas_breathed = handle_too_little_breath(H,Toxins_pp, safe_toxins_min, breath_gases["plasma"][MOLES]) + H.throw_alert("not_enough_tox", /obj/screen/alert/not_enough_tox) + else + H.failed_last_breath = 0 + H.adjustOxyLoss(-5) + gas_breathed = breath_gases["plasma"][MOLES] + H.clear_alert("not_enough_tox") + + //Exhale + breath_gases["plasma"][MOLES] -= gas_breathed + breath_gases["co2"][MOLES] += gas_breathed + gas_breathed = 0 + + + //-- TRACES --// + + if(breath) // If there's some other shit in the air lets deal with it here. + + // N2O + + var/SA_pp = breath.get_breath_partial_pressure(breath_gases["n2o"][MOLES]) + if(SA_pp > SA_para_min) // Enough to make us paralysed for a bit + H.Paralyse(3) // 3 gives them one second to wake up and run away a bit! + if(SA_pp > SA_sleep_min) // Enough to make us sleep as well + H.Sleeping(max(H.sleeping+2, 10)) + else if(SA_pp > 0.01) // There is sleeping gas in their lungs, but only a little, so give them a bit of a warning + if(prob(20)) + H.emote(pick("giggle", "laugh")) + + // BZ + + var/bz_pp = breath.get_breath_partial_pressure(breath_gases["bz"][MOLES]) + if(bz_pp > BZ_trip_balls_min) + H.hallucination += 20 + if(prob(33)) + H.adjustBrainLoss(3) + else if(bz_pp > 0.01) + H.hallucination += 5//Removed at 2 per tick so this will slowly build up + handle_breath_temperature(breath, H) + breath.garbage_collect() + + return 1 + + +/obj/item/organ/lungs/proc/handle_too_little_breath(mob/living/carbon/human/H = null,breath_pp = 0, safe_breath_min = 0, true_pp = 0) + . = 0 + if(!H || !safe_breath_min) //the other args are either: Ok being 0 or Specifically handled. + return 0 + + if(prob(20)) + H.emote("gasp") + if(breath_pp > 0) + var/ratio = safe_breath_min/breath_pp + H.adjustOxyLoss(min(5*ratio, HUMAN_MAX_OXYLOSS)) // Don't fuck them up too fast (space only does HUMAN_MAX_OXYLOSS after all! + H.failed_last_breath = 1 + . = true_pp*ratio/6 + else + H.adjustOxyLoss(HUMAN_MAX_OXYLOSS) + H.failed_last_breath = 1 + + +/obj/item/organ/lungs/proc/handle_breath_temperature(datum/gas_mixture/breath, mob/living/carbon/human/H) // called by human/life, handles temperatures + if(abs(310.15 - breath.temperature) > 50) + + var/species_traits = list() + if(H && H.dna && H.dna.species && H.dna.species.species_traits) + species_traits = H.dna.species.species_traits + + if(!(mutations_list[COLDRES] in H.dna.mutations) && !(RESISTCOLD in species_traits)) // COLD DAMAGE + switch(breath.temperature) + if(-INFINITY to 120) + H.apply_damage(COLD_GAS_DAMAGE_LEVEL_3, BURN, "head") + if(120 to 200) + H.apply_damage(COLD_GAS_DAMAGE_LEVEL_2, BURN, "head") + if(200 to 260) + H.apply_damage(COLD_GAS_DAMAGE_LEVEL_1, BURN, "head") + + if(!(RESISTHOT in species_traits)) // HEAT DAMAGE + switch(breath.temperature) + if(360 to 400) + H.apply_damage(HEAT_GAS_DAMAGE_LEVEL_1, BURN, "head") + if(400 to 1000) + H.apply_damage(HEAT_GAS_DAMAGE_LEVEL_2, BURN, "head") + if(1000 to INFINITY) + H.apply_damage(HEAT_GAS_DAMAGE_LEVEL_3, BURN, "head") + + + /obj/item/organ/lungs/prepare_eat() var/obj/S = ..() S.reagents.add_reagent("salbutamol", 5) return S + +/obj/item/organ/lungs/plasmaman + name = "plasma filter" + + safe_oxygen_min = 0 //We don't breath this + safe_toxins_min = 16 //We breath THIS! + safe_toxins_max = 0 + + + + + +#undef HUMAN_MAX_OXYLOSS +#undef HUMAN_CRIT_MAX_OXYLOSS +#undef HEAT_GAS_DAMAGE_LEVEL_1 +#undef HEAT_GAS_DAMAGE_LEVEL_2 +#undef HEAT_GAS_DAMAGE_LEVEL_3 + +#undef COLD_GAS_DAMAGE_LEVEL_1 +#undef COLD_GAS_DAMAGE_LEVEL_2 +#undef COLD_GAS_DAMAGE_LEVEL_3 + /obj/item/organ/tongue name = "tongue" desc = "A fleshy muscle mostly used for lying." @@ -358,10 +618,10 @@ name = "alien tongue" desc = "According to leading xenobiologists the evolutionary benefit of having a second mouth in your mouth is \"that it looks badass\"." icon_state = "tonguexeno" - say_mod = "hisses" + say_mod = "hiss" /obj/item/organ/tongue/alien/TongueSpeech(var/message) - playsound(owner, "hiss", 15, 1, 1) + playsound(owner, "hiss", 25, 1, 1) return message /obj/item/organ/tongue/bone @@ -433,13 +693,3 @@ if(inflamed) S.reagents.add_reagent("????", 5) return S - -/obj/item/organ/tongue/yautja - name = "yautja tongue" - desc = "You're having a hard time even deciding if this is a tongue or not." - icon_state = "tongueyautja" - say_mod = "clicks" - -/obj/item/organ/tongue/yautja/TongueSpeech(var/message) - playsound(owner, "predsay", 50, 0, 1) - return message \ No newline at end of file diff --git a/code/modules/surgery/plastic_surgery.dm b/code/modules/surgery/plastic_surgery.dm index e250f8ab84..15a54b6e13 100644 --- a/code/modules/surgery/plastic_surgery.dm +++ b/code/modules/surgery/plastic_surgery.dm @@ -20,7 +20,7 @@ var/oldname = target.real_name target.real_name = target.dna.species.random_name(target.gender,1) var/newname = target.real_name //something about how the code handles names required that I use this instead of target.real_name - user.visible_message("[user] alters [oldname]'s appearance completely, they are now [newname]!", "You alter [oldname]'s appearance completely, they are now [newname].") + user.visible_message("[user] alters [oldname]'s appearance completely, [target.p_they()] are now [newname]!", "You alter [oldname]'s appearance completely, [target.p_they()] are now [newname].") if(ishuman(target)) var/mob/living/carbon/human/H = target H.sec_hud_set_ID() diff --git a/code/modules/surgery/prosthetic_replacement.dm b/code/modules/surgery/prosthetic_replacement.dm index 2a4e4a4fbf..5341c2bf09 100644 --- a/code/modules/surgery/prosthetic_replacement.dm +++ b/code/modules/surgery/prosthetic_replacement.dm @@ -1,51 +1,50 @@ /datum/surgery/prosthetic_replacement name = "prosthetic replacement" steps = list(/datum/surgery_step/incise, /datum/surgery_step/clamp_bleeders, /datum/surgery_step/retract_skin, /datum/surgery_step/add_prosthetic) - species = list(/mob/living/carbon/human) + species = list(/mob/living/carbon/human, /mob/living/carbon/monkey) possible_locs = list("r_arm", "l_arm", "l_leg", "r_leg", "head") requires_bodypart = FALSE //need a missing limb /datum/surgery/prosthetic_replacement/can_start(mob/user, mob/living/carbon/target) - if(!ishuman(target)) + if(!iscarbon(target)) return 0 - var/mob/living/carbon/human/H = target - if(!H.get_bodypart(user.zone_selected)) //can only start if limb is missing + var/mob/living/carbon/C = target + if(!C.get_bodypart(user.zone_selected)) //can only start if limb is missing return 1 /datum/surgery_step/add_prosthetic name = "add prosthetic" - implements = list(/obj/item/robot_parts = 100, /obj/item/bodypart = 100) + implements = list(/obj/item/bodypart = 100) time = 32 var/organ_rejection_dam = 0 /datum/surgery_step/add_prosthetic/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - var/tool_body_zone - if(istype(tool, /obj/item/robot_parts)) - var/obj/item/robot_parts/RP = tool - tool_body_zone = RP.body_zone - else if(istype(tool, /obj/item/bodypart)) - var/obj/item/bodypart/L = tool - if(L.status != ORGAN_ROBOTIC) - organ_rejection_dam = 10 - if(target.dna.species.id != L.species_id) + var/obj/item/bodypart/BP = tool + if(ismonkey(target))// monkey patient only accept organic monkey limbs + if(BP.status == BODYPART_ROBOTIC || BP.animal_origin != MONKEY_BODYPART) + user << "[BP] doesn't match the patient's morphology." + return -1 + if(BP.status != BODYPART_ROBOTIC) + organ_rejection_dam = 10 + if(ishuman(target)) + if(BP.animal_origin) + user << "[BP] doesn't match the patient's morphology." + return -1 + var/mob/living/carbon/human/H = target + if(H.dna.species.id != BP.species_id) organ_rejection_dam = 30 - tool_body_zone = L.body_zone - if(target_zone == tool_body_zone) //so we can't replace a leg with an arm. + + if(target_zone == BP.body_zone) //so we can't replace a leg with an arm, or a human arm with a monkey arm. user.visible_message("[user] begins to replace [target]'s [parse_zone(target_zone)].", "You begin to replace [target]'s [parse_zone(target_zone)]...") else user << "[tool] isn't the right type for [parse_zone(target_zone)]." + return -1 /datum/surgery_step/add_prosthetic/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - var/obj/item/bodypart/L - if(istype(tool, /obj/item/robot_parts)) - L = newBodyPart(target_zone, 1, 1) - user.drop_item() - qdel(tool) - else - L = tool - user.drop_item() + var/obj/item/bodypart/L = tool + user.drop_item() L.attach_limb(target) if(organ_rejection_dam) target.adjustToxLoss(organ_rejection_dam) diff --git a/code/modules/surgery/remove_embedded_object.dm b/code/modules/surgery/remove_embedded_object.dm index 7117d276a7..a4b0b67a1a 100644 --- a/code/modules/surgery/remove_embedded_object.dm +++ b/code/modules/surgery/remove_embedded_object.dm @@ -12,7 +12,7 @@ /datum/surgery_step/remove_object/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - L = surgery.organ + L = surgery.operated_bodypart if(L) user.visible_message("[user] looks for objects embedded in [target]'s [parse_zone(user.zone_selected)].", "You look for objects embedded in [target]'s [parse_zone(user.zone_selected)]...") else @@ -30,7 +30,7 @@ L.embedded_objects -= I if(objects > 0) - user.visible_message("[user] sucessfully removes [objects] objects from [H]'s [L]!", "You sucessfully remove [objects] objects from [H]'s [L.name].") + user.visible_message("[user] sucessfully removes [objects] objects from [H]'s [L]!", "You successfully remove [objects] objects from [H]'s [L.name].") else user << "You find no objects embedded in [H]'s [L]!" diff --git a/code/modules/surgery/surgery.dm b/code/modules/surgery/surgery.dm index f340a4cf34..3ff54cabde 100644 --- a/code/modules/surgery/surgery.dm +++ b/code/modules/surgery/surgery.dm @@ -1,16 +1,37 @@ /datum/surgery var/name = "surgery" var/status = 1 - var/list/steps = list() //Steps in a surgery - var/step_in_progress = 0 //Actively performing a Surgery - var/can_cancel = 1 //Can cancel this surgery after step 1 with cautery - var/list/species = list(/mob/living/carbon/human) //Acceptable Species - var/location = "chest" //Surgery location - var/requires_organic_bodypart = 1 //Prevents you from performing an operation on robotic limbs - var/list/possible_locs = list() //Multiple locations -- c0 - var/ignore_clothes = 0 //This surgery ignores clothes - var/obj/item/organ/organ //Operable body part - var/requires_bodypart = TRUE //Surgery available only when a bodypart is present, or only when it is missing. + var/list/steps = list() //Steps in a surgery + var/step_in_progress = 0 //Actively performing a Surgery + var/can_cancel = 1 //Can cancel this surgery after step 1 with cautery + var/list/species = list(/mob/living/carbon/human) //Acceptable Species + var/location = "chest" //Surgery location + var/requires_organic_bodypart = 1 //Prevents you from performing an operation on robotic limbs + var/list/possible_locs = list() //Multiple locations + var/ignore_clothes = 0 //This surgery ignores clothes + var/mob/living/carbon/target //Operation target mob + var/obj/item/bodypart/operated_bodypart //Operable body part + var/requires_bodypart = TRUE //Surgery available only when a bodypart is present, or only when it is missing. + var/success_multiplier = 0 //Step success propability multiplier + + +/datum/surgery/New(surgery_target, surgery_location, surgery_bodypart) + ..() + if(surgery_target) + target = surgery_target + target.surgeries += src + if(surgery_location) + location = surgery_location + if(surgery_bodypart) + operated_bodypart = surgery_bodypart + +/datum/surgery/Destroy() + if(target) + target.surgeries -= src + target = null + operated_bodypart = null + return ..() + /datum/surgery/proc/can_start(mob/user, mob/living/carbon/target) // if 0 surgery wont show up in list @@ -18,13 +39,13 @@ return 1 -/datum/surgery/proc/next_step(mob/user, mob/living/carbon/target) +/datum/surgery/proc/next_step(mob/user) if(step_in_progress) - return + return 1 var/datum/surgery_step/S = get_surgery_step() if(S) - if(S.try_op(user, target, user.zone_selected, user.get_active_hand(), src)) + if(S.try_op(user, target, user.zone_selected, user.get_active_held_item(), src)) return 1 return 0 @@ -32,10 +53,24 @@ var/step_type = steps[status] return new step_type +/datum/surgery/proc/complete() + feedback_add_details("surgeries_completed", type) + qdel(src) + + +/datum/surgery/proc/get_propability_multiplier() + var/propability = 0.5 + var/turf/T = get_turf(target) + + if(locate(/obj/structure/table/optable, T)) + propability = 1 + else if(locate(/obj/structure/table, T)) + propability = 0.8 + else if(locate(/obj/structure/bed, T)) + propability = 0.7 + + return propability + success_multiplier -/datum/surgery/proc/complete(mob/living/carbon/human/target) - target.surgeries -= src - src = null @@ -45,7 +80,6 @@ //Other important variables are var/list/surgeries (/mob/living) and var/list/internal_organs (/mob/living/carbon) // var/list/bodyparts (/mob/living/carbon/human) is the LIMBS of a Mob. //Surgical procedures are initiated by attempt_initiate_surgery(), which is called by surgical drapes and bedsheets. -// /code/modules/surgery/multiple_location_example.dm contains steps to setup a multiple location operation. //TODO @@ -60,4 +94,4 @@ //RESOLVED ISSUES //"Todo" jobs that have been completed //combine hands/feet into the arms - Hands/feet were removed - RR -//surgeries (not steps) that can be initiated on any body part (corresponding with damage locations) - Call this one done, see multiple_location_example.dm - RR \ No newline at end of file +//surgeries (not steps) that can be initiated on any body part (corresponding with damage locations) - Call this one done, see possible_locs var - c0 \ No newline at end of file diff --git a/code/modules/surgery/surgery_step.dm b/code/modules/surgery/surgery_step.dm index d91d021ac7..5d0f7f580e 100644 --- a/code/modules/surgery/surgery_step.dm +++ b/code/modules/surgery/surgery_step.dm @@ -1,10 +1,10 @@ /datum/surgery_step + var/name var/list/implements = list() //format is path = probability of success. alternatively var/implement_type = null //the current type of implement used. This has to be stored, as the actual typepath of the tool may not match the list type. var/accept_hand = 0 //does the surgery step require an open hand? If true, ignores implements. Compatible with accept_any_item. var/accept_any_item = 0 //does the surgery step accept any item? If true, ignores implements. Compatible with require_hand. var/time = 10 //how long does the step take? - var/name /datum/surgery_step/proc/try_op(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) @@ -30,7 +30,7 @@ else user << "You need to expose [target]'s [parse_zone(target_zone)] to perform surgery on it!" return 1 //returns 1 so we don't stab the guy in the dick or wherever. - if(isrobot(user) && user.a_intent != "harm") //to save asimov borgs a LOT of heartache + if(iscyborg(user) && user.a_intent != INTENT_HARM) //to save asimov borgs a LOT of heartache return 1 return 0 @@ -38,19 +38,24 @@ /datum/surgery_step/proc/initiate(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) surgery.step_in_progress = 1 + var/speed_mod = 1 + if(preop(user, target, target_zone, tool, surgery) == -1) surgery.step_in_progress = 0 return - if(do_after(user, time, target = target)) + if(tool) + speed_mod = tool.toolspeed + + if(do_after(user, time * speed_mod, target = target)) var/advance = 0 var/prob_chance = 100 if(implement_type) //this means it isn't a require hand or any item step. prob_chance = implements[implement_type] - prob_chance *= get_location_modifier(target) + prob_chance *= surgery.get_propability_multiplier() - if(prob(prob_chance) || isrobot(user)) + if(prob(prob_chance) || iscyborg(user)) if(success(user, target, target_zone, tool, surgery)) advance = 1 else @@ -60,7 +65,7 @@ if(advance) surgery.status++ if(surgery.status > surgery.steps.len) - surgery.complete(target) + surgery.complete() surgery.step_in_progress = 0 diff --git a/code/modules/surgery/tail_modification.dm b/code/modules/surgery/tail_modification.dm index 1b60df3f83..de2f800b34 100644 --- a/code/modules/surgery/tail_modification.dm +++ b/code/modules/surgery/tail_modification.dm @@ -33,7 +33,7 @@ if("spines" in L.dna.features) L.dna.features -= "spines" var/obj/item/severedtail/S = new(get_turf(target)) - S.color = "#[L.dna.features["mcolor"]]" + S.add_atom_colour("#[L.dna.features["mcolor"]]", FIXED_COLOUR_PRIORITY) S.markings = "[L.dna.features["tail"]]" L.update_body() return 1 diff --git a/code/modules/surgery/tools.dm b/code/modules/surgery/tools.dm index 1e7e202a29..92dba6eede 100644 --- a/code/modules/surgery/tools.dm +++ b/code/modules/surgery/tools.dm @@ -5,7 +5,7 @@ icon_state = "retractor" materials = list(MAT_METAL=6000, MAT_GLASS=3000) flags = CONDUCT - w_class = 1 + w_class = WEIGHT_CLASS_TINY origin_tech = "materials=1;biotech=1" @@ -16,7 +16,7 @@ icon_state = "hemostat" materials = list(MAT_METAL=5000, MAT_GLASS=2500) flags = CONDUCT - w_class = 1 + w_class = WEIGHT_CLASS_TINY origin_tech = "materials=1;biotech=1" attack_verb = list("attacked", "pinched") @@ -28,7 +28,7 @@ icon_state = "cautery" materials = list(MAT_METAL=2500, MAT_GLASS=750) flags = CONDUCT - w_class = 1 + w_class = WEIGHT_CLASS_TINY origin_tech = "materials=1;biotech=1" attack_verb = list("burnt") @@ -42,7 +42,7 @@ materials = list(MAT_METAL=10000, MAT_GLASS=6000) flags = CONDUCT force = 15 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL origin_tech = "materials=1;biotech=1" attack_verb = list("drilled") @@ -53,7 +53,7 @@ icon_state = "scalpel" flags = CONDUCT force = 10 - w_class = 1 + w_class = WEIGHT_CLASS_TINY throwforce = 5 throw_speed = 3 throw_range = 5 @@ -64,9 +64,7 @@ sharpness = IS_SHARP_ACCURATE /obj/item/weapon/scalpel/suicide_act(mob/user) - user.visible_message(pick("[user] is slitting \his wrists with [src]! It looks like \he's trying to commit suicide.", \ - "[user] is slitting \his throat with [src]! It looks like \he's trying to commit suicide.", \ - "[user] is slitting \his stomach open with [src]! It looks like \he's trying to commit seppuku.")) + user.visible_message("[user] is slitting [user.p_their()] [pick("wrists", "throat", "stomach")] with [src]! It looks like [user.p_theyre()] trying to commit suicide!") return (BRUTELOSS) @@ -79,7 +77,7 @@ throwhitsound = 'sound/weapons/pierce.ogg' flags = CONDUCT force = 15 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL throwforce = 9 throw_speed = 2 throw_range = 5 @@ -93,7 +91,7 @@ desc = "Nanotrasen brand surgical drapes provide optimal safety and infection control." icon = 'icons/obj/surgery.dmi' icon_state = "surgical_drapes" - w_class = 1 + w_class = WEIGHT_CLASS_TINY origin_tech = "biotech=1" attack_verb = list("slapped") diff --git a/code/modules/telesci/bscrystal.dm b/code/modules/telesci/bscrystal.dm index 21a7127b94..df33ae32ae 100644 --- a/code/modules/telesci/bscrystal.dm +++ b/code/modules/telesci/bscrystal.dm @@ -5,10 +5,11 @@ desc = "A glowing bluespace crystal, not much is known about how they work. It looks very delicate." icon = 'icons/obj/telescience.dmi' icon_state = "bluespace_crystal" - w_class = 1 + w_class = WEIGHT_CLASS_TINY origin_tech = "bluespace=6;materials=3" points = 50 var/blink_range = 8 // The teleport range when crushed/thrown at someone. + refined_type = /obj/item/stack/sheet/bluespace_crystal /obj/item/weapon/ore/bluespace_crystal/New() ..() @@ -44,3 +45,33 @@ origin_tech = "bluespace=3;plasmatech=4" blink_range = 4 // Not as good as the organic stuff! points = 0 // nice try + refined_type = null + +// Polycrystals, aka stacks + +/obj/item/stack/sheet/bluespace_crystal + name = "bluespace polycrystal" + icon = 'icons/obj/telescience.dmi' + icon_state = "polycrystal" + desc = "A stable polycrystal, made of fused-together bluespace crystals. You could probably break one off." + origin_tech = "bluespace=6;materials=3" + attack_verb = list("bluespace polybashed", "bluespace polybattered", "bluespace polybludgeoned", "bluespace polythrashed", "bluespace polysmashed") + +/obj/item/stack/sheet/bluespace_crystal/attack_self(mob/user) // to prevent the construction menu from ever happening + user << "You cannot crush the polycrystal in-hand, try breaking one off." + return + +/obj/item/stack/sheet/bluespace_crystal/attack_hand(mob/user) + if (user.get_inactive_held_item() == src) + if(zero_amount()) // in this case, a sanity check + return + var/obj/item/weapon/ore/bluespace_crystal/BC = new(src) + user.put_in_hands(BC) + amount-- + if (amount == 0) + qdel(src) + user << "You break the final crystal off." + else user << "You break off a crystal." + else + ..() + return \ No newline at end of file diff --git a/code/modules/telesci/gps.dm b/code/modules/telesci/gps.dm index 58a4760483..45729a1956 100644 --- a/code/modules/telesci/gps.dm +++ b/code/modules/telesci/gps.dm @@ -4,7 +4,7 @@ var/list/GPS_list = list() desc = "Helping lost spacemen find their way through the planets since 2016. Alt+click to toggle power." icon = 'icons/obj/telescience.dmi' icon_state = "gps-c" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL slot_flags = SLOT_BELT origin_tech = "materials=2;magnets=1;bluespace=2" var/gpstag = "COM0" @@ -119,6 +119,10 @@ var/list/GPS_list = list() gpstag = "MINER" desc = "A positioning system helpful for rescuing trapped or injured miners, keeping one on you at all times while mining might just save your life." +/obj/item/device/gps/internal/base + gpstag = "NT_AUX" + desc = "A homing signal from Nanotrasen's mining base." + /obj/item/device/gps/visible_debug name = "visible GPS" gpstag = "ADMIN" diff --git a/code/modules/telesci/telepad.dm b/code/modules/telesci/telepad.dm index 33d8952e19..24a0ee6060 100644 --- a/code/modules/telesci/telepad.dm +++ b/code/modules/telesci/telepad.dm @@ -75,11 +75,11 @@ user << "\The [src] is now secured." else if(istype(W, /obj/item/weapon/screwdriver)) if(stage == 0) - playsound(src, 'sound/items/Screwdriver.ogg', 50, 1) + playsound(src, W.usesound, 50, 1) user << "You unscrew the telepad's tracking beacon." stage = 1 else if(stage == 1) - playsound(src, 'sound/items/Screwdriver.ogg', 50, 1) + playsound(src, W.usesound, 50, 1) user << "You screw in the telepad's tracking beacon." stage = 0 else if(istype(W, /obj/item/weapon/weldingtool) && stage == 1) @@ -87,7 +87,7 @@ if(WT.remove_fuel(0,user)) playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1) user << "You start disassembling [src]..." - if(do_after(user,20/WT.toolspeed, target = src)) + if(do_after(user,20*WT.toolspeed, target = src)) if(!WT.isOn()) return user << "You disassemble [src]." diff --git a/code/modules/tgui/states.dm b/code/modules/tgui/states.dm index ee21dfd120..c3e7d9b0c9 100644 --- a/code/modules/tgui/states.dm +++ b/code/modules/tgui/states.dm @@ -20,13 +20,13 @@ if(!state) return - if(istype(user, /mob/dead/observer)) + if(isobserver(user)) // If they turn on ghost AI control, admins can always interact. if(IsAdminGhost(user)) . = max(., UI_INTERACTIVE) // Regular ghosts can always at least view if in range. - if(get_dist(src_object, src) < user.client.view) + if(get_dist(src_object, user) < user.client.view) . = max(., UI_UPDATE) // Check if the state allows interaction diff --git a/code/modules/tgui/states/default.dm b/code/modules/tgui/states/default.dm index 74f2ad63c2..38c3f4d196 100644 --- a/code/modules/tgui/states/default.dm +++ b/code/modules/tgui/states/default.dm @@ -47,10 +47,10 @@ return UI_INTERACTIVE return UI_CLOSE -/mob/living/simple_animal/drone/default_can_use_topic(src_object) +/mob/living/simple_animal/default_can_use_topic(src_object) . = shared_ui_interaction(src_object) if(. > UI_CLOSE) - . = min(., shared_living_ui_distance(src_object)) // Drones can only use things they're near. + . = min(., shared_living_ui_distance(src_object)) //simple animals can only use things they're near. /mob/living/silicon/pai/default_can_use_topic(src_object) // pAIs can only use themselves and the owner's radio. diff --git a/code/modules/tgui/states/hands.dm b/code/modules/tgui/states/hands.dm index e3e110a2a8..a312bcecdd 100644 --- a/code/modules/tgui/states/hands.dm +++ b/code/modules/tgui/states/hands.dm @@ -15,7 +15,7 @@ return UI_CLOSE /mob/living/hands_can_use_topic(src_object) - if(src_object in get_both_hands(src)) + if(is_holding(src_object)) return UI_INTERACTIVE return UI_CLOSE diff --git a/code/modules/tgui/subsystem.dm b/code/modules/tgui/subsystem.dm index 81c67c67d1..7de5514158 100644 --- a/code/modules/tgui/subsystem.dm +++ b/code/modules/tgui/subsystem.dm @@ -99,6 +99,23 @@ close_count++ // Count each UI we close. return close_count + /** + * private + * + * Close *ALL* UIs + * + * return int The number of UIs closed. + **/ +/datum/subsystem/tgui/proc/close_all_uis() + var/close_count = 0 + for(var/src_object_key in open_uis) + for(var/ui_key in open_uis[src_object_key]) + for(var/datum/tgui/ui in open_uis[src_object_key][ui_key]) + if(ui && ui.src_object && ui.user && ui.src_object.ui_host()) // Check the UI is valid. + ui.close() // Close the UI. + close_count++ // Count each UI we close. + return close_count + /** * private * @@ -182,8 +199,15 @@ processing_uis.Remove(ui) // Remove it from the list of processing UIs. if(ui.user) // If the user exists, remove it from them too. ui.user.open_uis.Remove(ui) - var/list/uis = open_uis[src_object_key][ui.ui_key] // Remove it from the list of open UIs. + var/Ukey = ui.ui_key + var/list/uis = open_uis[src_object_key][Ukey] // Remove it from the list of open UIs. uis.Remove(ui) + if(!uis.len) + var/list/uiobj = open_uis[src_object_key] + uiobj.Remove(Ukey) + if(!uiobj.len) + open_uis.Remove(src_object_key) + return 1 // Let the caller know we did it. /** diff --git a/code/modules/tgui/tgui.dm b/code/modules/tgui/tgui.dm index 0ad0d6f1f1..69349d2549 100644 --- a/code/modules/tgui/tgui.dm +++ b/code/modules/tgui/tgui.dm @@ -33,6 +33,8 @@ var/datum/ui_state/state = null // Topic state used to determine status/interactability. var/datum/tgui/master_ui // The parent UI. var/list/datum/tgui/children = list() // Children of this UI. + var/titlebar = TRUE + var/custom_browser_id = FALSE /** * public @@ -51,11 +53,12 @@ * * return datum/tgui The requested UI. **/ -/datum/tgui/New(mob/user, datum/src_object, ui_key, interface, title, width = 0, height = 0, datum/tgui/master_ui = null, datum/ui_state/state = default_state) +/datum/tgui/New(mob/user, datum/src_object, ui_key, interface, title, width = 0, height = 0, datum/tgui/master_ui = null, datum/ui_state/state = default_state, browser_id = null) src.user = user src.src_object = src_object src.ui_key = ui_key - src.window_id = "\ref[src_object]-[ui_key]" + src.window_id = browser_id ? browser_id : "\ref[src_object]-[ui_key]" + src.custom_browser_id = browser_id ? TRUE : FALSE set_interface(interface) @@ -96,7 +99,8 @@ var/debugable = check_rights_for(user.client, R_DEBUG) user << browse(get_html(debugable), "window=[window_id];[window_size][list2params(window_options)]") // Open the window. - winset(user, window_id, "on-close=\"uiclose \ref[src]\"") // Instruct the client to signal UI when the window is closed. + if (!custom_browser_id) + winset(user, window_id, "on-close=\"uiclose \ref[src]\"") // Instruct the client to signal UI when the window is closed. SStgui.on_open(src) /** @@ -216,7 +220,7 @@ "style" = style, "interface" = interface, "fancy" = user.client.prefs.tgui_fancy, - "locked" = user.client.prefs.tgui_lock, + "locked" = user.client.prefs.tgui_lock && !custom_browser_id, "window" = window_id, "ref" = "\ref[src]", "user" = list( @@ -226,7 +230,8 @@ "srcObject" = list( "name" = "[src_object]", "ref" = "\ref[src_object]" - ) + ), + "titlebar" = titlebar ) return config_data @@ -268,7 +273,7 @@ switch(action) if("tgui:initialize") - user << output(url_encode(get_json(initial_data)), "[window_id].browser:initialize") + user << output(url_encode(get_json(initial_data)), "[custom_browser_id ? window_id : "[window_id].browser"]:initialize") initialized = TRUE if("tgui:view") if(params["screen"]) @@ -320,7 +325,7 @@ return // Cannot update UI, we have no visibility. // Send the new JSON to the update() Javascript function. - user << output(url_encode(get_json(data)), "[window_id].browser:update") + user << output(url_encode(get_json(data)), "[custom_browser_id ? window_id : "[window_id].browser"]:update") /** * private @@ -366,4 +371,7 @@ else src.status = status if(status == UI_DISABLED || push) // Update if the UI just because disabled, or a push is requested. - push_data(null, force = 1) \ No newline at end of file + push_data(null, force = 1) + +/datum/tgui/proc/set_titlebar(value) + titlebar = value diff --git a/code/modules/tooltip/tooltip.html b/code/modules/tooltip/tooltip.html index d0c6acfb05..470af78503 100644 --- a/code/modules/tooltip/tooltip.html +++ b/code/modules/tooltip/tooltip.html @@ -51,8 +51,11 @@ .wraith .wrap {border-color: #492136;} .wraith .content {border-color: #331726; background-color: #471962;} - .cult .wrap {border-color: #610002;} - .cult .content {color: #0F0B0C; border-color: #A10000; background-color: #4A363B;} + .cult .wrap {border-color: #292222;} + .cult .content {color: #FF0000; border-color: #4C4343; background-color: #3C3434;} + + .clockcult .wrap {border-color: #170800;} + .clockcult .content {color: #B18B25; border-color: #000000; background-color: #5F380E;} .pod .wrap {border-color: #052401;} .pod .content {border-color: #326D29; background-color: #569F4B;} @@ -76,6 +79,9 @@ .operative .wrap {border-color: #1E0101;} .operative .content {color: #FFFFFF; border-color: #750000; background-color: #350000;} + + .clockwork .wrap {border-color: #170800;} + .clockwork .content {color: #B18B25; border-color: #000000; background-color: #5F380E;} diff --git a/code/modules/uplink/uplink.dm b/code/modules/uplink/uplink.dm index 377776bc37..fd4b6d0181 100644 --- a/code/modules/uplink/uplink.dm +++ b/code/modules/uplink/uplink.dm @@ -13,7 +13,7 @@ var/global/list/uplinks = list() var/active = FALSE var/lockable = TRUE var/telecrystals = 20 - + var/selected_cat = null var/owner = null var/datum/game_mode/gamemode = null var/spent_telecrystals = 0 @@ -27,6 +27,28 @@ var/global/list/uplinks = list() uplinks -= src return ..() +/obj/item/device/uplink/attackby(obj/item/I, mob/user, params) + for(var/item in subtypesof(/datum/uplink_item)) + var/datum/uplink_item/UI = item + var/path = null + if(initial(UI.refund_path)) + path = initial(UI.refund_path) + else + path = initial(UI.item) + var/cost = 0 + if(initial(UI.refund_amount)) + cost = initial(UI.refund_amount) + else + cost = initial(UI.cost) + var/refundable = initial(UI.refundable) + if(I.type == path && refundable && I.check_uplink_validity()) + telecrystals += cost + spent_telecrystals -= cost + user << "[I] refunded." + qdel(I) + return + ..() + /obj/item/device/uplink/interact(mob/user) active = TRUE ui_interact(user) @@ -46,22 +68,24 @@ var/global/list/uplinks = list() data["lockable"] = lockable var/list/uplink_items = get_uplink_items(gamemode) + data["categories"] = list() for(var/category in uplink_items) var/list/cat = list( "name" = category, - "items" = list(), - ) - for(var/item in uplink_items[category]) - var/datum/uplink_item/I = uplink_items[category][item] - cat["items"] += list(list( - "name" = I.name, - "cost" = I.cost, - "desc" = I.desc, - )) + "items" = (category == selected_cat ? list() : null)) + if(category == selected_cat) + for(var/item in uplink_items[category]) + var/datum/uplink_item/I = uplink_items[category][item] + cat["items"] += list(list( + "name" = I.name, + "cost" = I.cost, + "desc" = I.desc, + )) data["categories"] += list(cat) return data + /obj/item/device/uplink/ui_act(action, params) if(!active) return @@ -82,6 +106,9 @@ var/global/list/uplinks = list() if("lock") active = FALSE SStgui.close_uis(src) + if("select") + selected_cat = params["category"] + return 1 /obj/item/device/uplink/ui_host() @@ -89,18 +116,7 @@ var/global/list/uplinks = list() // Refund certain items by hitting the uplink with it. /obj/item/device/radio/uplink/attackby(obj/item/I, mob/user, params) - for(var/item in subtypesof(/datum/uplink_item)) - var/datum/uplink_item/UI = item - var/path = initial(UI.item) - var/cost = initial(UI.cost) - var/refundable = initial(UI.refundable) - if(I.type == path && refundable) - hidden_uplink.telecrystals += cost - hidden_uplink.spent_telecrystals -= cost - user << "[I] refunded." - qdel(I) - return - ..() + return hidden_uplink.attackby(I, user, params) // A collection of pre-set uplinks, for admin spawns. /obj/item/device/radio/uplink/New() diff --git a/code/modules/uplink/uplink_item.dm b/code/modules/uplink/uplink_item.dm index 86bd6d64a9..f0f6f2adf9 100644 --- a/code/modules/uplink/uplink_item.dm +++ b/code/modules/uplink/uplink_item.dm @@ -44,7 +44,9 @@ var/list/uplink_items = list() // Global list so we only initialize this once. var/category = "item category" var/desc = "item description" var/item = null // Path to the item to spawn. + var/refund_path = null // Alternative path for refunds, in case the item purchased isn't what is actually refunded (ie: holoparasites). var/cost = 0 + var/refund_amount = 0 // specified refund amount in case there needs to be a TC penalty for refunds. var/refundable = FALSE var/surplus = 100 // Chance of being included in the surplus crate. var/list/include_modes = list() // Game modes to allow this item in. @@ -138,13 +140,13 @@ var/list/uplink_items = list() // Global list so we only initialize this once. name = "Stechkin Pistol" desc = "A small, easily concealable handgun that uses 10mm auto rounds in 8-round magazines and is compatible \ with suppressors." - item = /obj/item/weapon/gun/projectile/automatic/pistol + item = /obj/item/weapon/gun/ballistic/automatic/pistol cost = 7 /datum/uplink_item/dangerous/revolver name = "Syndicate Revolver" desc = "A brutally simple syndicate revolver that fires .357 Magnum rounds and has 7 chambers." - item = /obj/item/weapon/gun/projectile/revolver + item = /obj/item/weapon/gun/ballistic/revolver cost = 13 surplus = 50 @@ -152,7 +154,7 @@ var/list/uplink_items = list() // Global list so we only initialize this once. name = "Bulldog Shotgun" desc = "A fully-loaded semi-automatic drum-fed shotgun. Compatiable with all 12g rounds. Designed for close \ quarter anti-personel engagements." - item = /obj/item/weapon/gun/projectile/automatic/shotgun/bulldog + item = /obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog cost = 8 surplus = 40 include_modes = list(/datum/game_mode/nuclear) @@ -161,20 +163,20 @@ var/list/uplink_items = list() // Global list so we only initialize this once. name = "C-20r Submachine Gun" desc = "A fully-loaded Scarborough Arms bullpup submachine gun. The C-20r fires .45 rounds with a \ 20-round magazine and is compatible with suppressors." - item = /obj/item/weapon/gun/projectile/automatic/c20r + item = /obj/item/weapon/gun/ballistic/automatic/c20r cost = 10 surplus = 40 include_modes = list(/datum/game_mode/nuclear) /datum/uplink_item/dangerous/smg/unrestricted - item = /obj/item/weapon/gun/projectile/automatic/c20r/unrestricted + item = /obj/item/weapon/gun/ballistic/automatic/c20r/unrestricted include_modes = list(/datum/game_mode/gang) /datum/uplink_item/dangerous/machinegun name = "L6 Squad Automatic Weapon" desc = "A fully-loaded Aussec Armoury belt-fed machine gun. \ This deadly weapon has a massive 50-round magazine of devastating 5.56x45mm ammunition." - item = /obj/item/weapon/gun/projectile/automatic/l6_saw + item = /obj/item/weapon/gun/ballistic/automatic/l6_saw cost = 18 surplus = 0 include_modes = list(/datum/game_mode/nuclear) @@ -190,7 +192,7 @@ var/list/uplink_items = list() // Global list so we only initialize this once. /datum/uplink_item/dangerous/sniper name = "Sniper Rifle" desc = "Ranged fury, Syndicate style. guaranteed to cause shock and awe or your TC back!" - item = /obj/item/weapon/gun/projectile/automatic/sniper_rifle/syndicate + item = /obj/item/weapon/gun/ballistic/automatic/sniper_rifle/syndicate cost = 16 surplus = 25 include_modes = list(/datum/game_mode/nuclear) @@ -198,7 +200,7 @@ var/list/uplink_items = list() // Global list so we only initialize this once. /datum/uplink_item/dangerous/bolt_action name = "Surplus Rifle" desc = "A horribly outdated bolt action weapon. You've got to be desperate to use this." - item = /obj/item/weapon/gun/projectile/shotgun/boltaction + item = /obj/item/weapon/gun/ballistic/shotgun/boltaction cost = 2 include_modes = list(/datum/game_mode/nuclear) @@ -259,7 +261,7 @@ var/list/uplink_items = list() // Global list so we only initialize this once. /datum/uplink_item/dangerous/foamsmg name = "Toy Submachine Gun" desc = "A fully-loaded Donksoft bullpup submachine gun that fires riot grade rounds with a 20-round magazine." - item = /obj/item/weapon/gun/projectile/automatic/c20r/toy + item = /obj/item/weapon/gun/ballistic/automatic/c20r/toy cost = 5 surplus = 0 include_modes = list(/datum/game_mode/nuclear) @@ -268,7 +270,7 @@ var/list/uplink_items = list() // Global list so we only initialize this once. name = "Toy Machine Gun" desc = "A fully-loaded Donksoft belt-fed machine gun. This weapon has a massive 50-round magazine of devastating \ riot grade darts, that can briefly incapacitate someone in just one volley." - item = /obj/item/weapon/gun/projectile/automatic/l6_saw/toy + item = /obj/item/weapon/gun/ballistic/automatic/l6_saw/toy cost = 10 surplus = 0 include_modes = list(/datum/game_mode/nuclear) @@ -319,11 +321,29 @@ var/list/uplink_items = list() // Global list so we only initialize this once. /datum/uplink_item/ammo/pistol name = "10mm Handgun Magazine" - desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. These subsonic rounds \ + desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. These rounds \ are dirt cheap but are half as effective as .357 rounds." item = /obj/item/ammo_box/magazine/m10mm cost = 1 +/datum/uplink_item/ammo/pistolap + name = "10mm Armour Piercing Magazine" + desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. These rounds are less effective at injuring the target but penetrate protective gear." + item = /obj/item/ammo_box/magazine/m10mm/ap + cost = 2 + +/datum/uplink_item/ammo/pistolfire + name = "10mm Incendiary Magazine" + desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. Loaded with incendiary rounds which ignite the target." + item = /obj/item/ammo_box/magazine/m10mm/fire + cost = 2 + +/datum/uplink_item/ammo/pistolhp + name = "10mm Hollow Point Magazine" + desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. These rounds are more damaging but ineffective against armour." + item = /obj/item/ammo_box/magazine/m10mm/hp + cost = 3 + /datum/uplink_item/ammo/bolt_action name = "Surplus Rifle Clip" desc = "A stripper clip used to quickly load bolt action rifles. Contains 5 rounds." @@ -519,14 +539,23 @@ var/list/uplink_items = list() // Global list so we only initialize this once. deflecting all ranged weapon fire, but you also refuse to use dishonorable ranged weaponry." item = /obj/item/weapon/sleeping_carp_scroll cost = 17 + surplus = 0 exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/gang) +/datum/uplink_item/stealthy_weapons/cqc + name = "CQC Manual" + desc = "A manual that teaches a single user tactical Close-Quarters Combat before self-destructing." + item = /obj/item/weapon/cqc_manual + include_modes = list(/datum/game_mode/nuclear) + cost = 13 + surplus = 0 + /datum/uplink_item/stealthy_weapons/throwingweapons name = "Box of Throwing Weapons" desc = "A box of shurikens and reinforced bolas from ancient Earth martial arts. They are highly effective \ throwing weapons. The bolas can knock a target down and the shurikens will embed into limbs." item = /obj/item/weapon/storage/box/syndie_kit/throwing_weapons - cost = 5 + cost = 3 /datum/uplink_item/stealthy_weapons/edagger name = "Energy Dagger" @@ -538,7 +567,7 @@ var/list/uplink_items = list() // Global list so we only initialize this once. name = "Toy Gun with Riot Darts" desc = "An innocent-looking toy pistol designed to fire foam darts. Comes loaded with riot-grade \ darts effective at incapacitating a target." - item = /obj/item/weapon/gun/projectile/automatic/toy/pistol/riot + item = /obj/item/weapon/gun/ballistic/automatic/toy/pistol/riot cost = 3 surplus = 10 exclude_modes = list(/datum/game_mode/gang) @@ -624,16 +653,6 @@ var/list/uplink_items = list() // Global list so we only initialize this once. surplus = 10 exclude_modes = list(/datum/game_mode/nuclear) -/datum/uplink_item/stealthy_weapons/boobytrap - name = "Booby Trap" - desc = "A small explosive device that can be attached to boxes or closets. \ - The next person to open the box or closet will trigger an explosion \ - that knocks them down and destroys the boobytrapped object." - item = /obj/item/device/boobytrap - cost = 4 - surplus = 10 - exclude_modes = list(/datum/game_mode/nuclear) - // Stealth Items /datum/uplink_item/stealthy_tools category = "Stealth and Camouflage Items" @@ -697,8 +716,9 @@ var/list/uplink_items = list() // Global list so we only initialize this once. /datum/uplink_item/stealthy_tools/smugglersatchel name = "Smuggler's Satchel" desc = "This satchel is thin enough to be hidden in the gap between plating and tiling; great for stashing \ - your stolen goods. Comes with a crowbar and a floor tile inside." - item = /obj/item/weapon/storage/backpack/satchel_flat + your stolen goods. Comes with a crowbar and a floor tile inside. Properly hidden satchels have been \ + known to survive intact even beyond the current shift. " + item = /obj/item/weapon/storage/backpack/satchel/flat cost = 2 surplus = 30 @@ -734,7 +754,14 @@ var/list/uplink_items = list() // Global list so we only initialize this once. item = /obj/item/weapon/storage/box/syndie_kit/cutouts cost = 1 surplus = 20 - + +/datum/uplink_item/stealthy_tools/fakenucleardisk + name = "Decoy Nuclear Authentication Disk" + desc = "It's just a normal disk. Visually it's identical to the real deal, but it won't hold up under closer scrutiny. Don't try to give this to us to complete your objective, we know better!" + item = /obj/item/weapon/disk/fakenucleardisk + cost = 1 + surplus = 1 + //Space Suits and Hardsuits /datum/uplink_item/suits category = "Space Suits and Hardsuits" @@ -845,12 +872,6 @@ var/list/uplink_items = list() // Global list so we only initialize this once. cost = 2 surplus = 75 -/datum/uplink_item/device_tools/selfdestruct_firingpin - name = "Trick Firing Pin" - desc = "This pin will detonate the weapon it is put into upon trying to use it" - item = /obj/item/device/firing_pin/trick - cost = 4 - /datum/uplink_item/device_tools/ai_detector name = "Artificial Intelligence Detector" desc = "A functional multitool that turns red when it detects an artificial intelligence watching it or its \ @@ -874,13 +895,6 @@ var/list/uplink_items = list() // Global list so we only initialize this once. cost = 2 include_modes = list(/datum/game_mode/nuclear) -/datum/uplink_item/device_tools/thermitespray - name = "Thermite Kit" - desc = "A boxed zippo and 50u spray bottle filled with thermite, specially designed for spraying walls. \ - 50u is enough thermite to spray 5 walls." - item = /obj/item/weapon/storage/box/syndie_kit/thermite - cost = 3 - /datum/uplink_item/device_tools/c4 name = "Composition C-4" desc = "C-4 is plastic explosive of the common variety Composition C. You can use it to breach walls, sabotage equipment, or connect \ @@ -981,6 +995,13 @@ var/list/uplink_items = list() // Global list so we only initialize this once. cost = 4 include_modes = list(/datum/game_mode/nuclear) +/datum/uplink_item/device_tools/telecrystal + name = "Raw Telecrystal" + desc = "A telecrystal in its rawest and purest form; can be utilized on active uplinks to increase their telecrystal count." + item = /obj/item/stack/telecrystal + cost = 1 + surplus = 0 + // Implants /datum/uplink_item/implants category = "Implants" @@ -1132,7 +1153,7 @@ var/list/uplink_items = list() // Global list so we only initialize this once. exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/gang) /datum/uplink_item/badass/surplus/spawn_item(turf/loc, obj/item/device/uplink/U) - var/list/uplink_items = get_uplink_items() + var/list/uplink_items = get_uplink_items(ticker.mode) var/crate_value = 50 var/obj/structure/closet/crate/C = new(loc) @@ -1159,7 +1180,7 @@ var/list/uplink_items = list() // Global list so we only initialize this once. cost = 0 /datum/uplink_item/badass/random/spawn_item(turf/loc, obj/item/device/uplink/U) - var/list/uplink_items = get_uplink_items() + var/list/uplink_items = get_uplink_items(ticker.mode) var/list/possible_items = list() for(var/category in uplink_items) for(var/item in uplink_items[category]) diff --git a/code/modules/vehicles/atv.dm b/code/modules/vehicles/atv.dm index 785f9b67e2..4102fa2598 100644 --- a/code/modules/vehicles/atv.dm +++ b/code/modules/vehicles/atv.dm @@ -8,7 +8,7 @@ generic_pixel_y = 4 vehicle_move_delay = 1 var/static/image/atvcover = null - + /obj/vehicle/atv/New() ..() @@ -17,7 +17,7 @@ atvcover.layer = ABOVE_MOB_LAYER -obj/vehicle/atv/post_buckle_mob(mob/living/M) +/obj/vehicle/atv/post_buckle_mob(mob/living/M) if(has_buckled_mobs()) add_overlay(atvcover) else diff --git a/code/modules/vehicles/pimpin_ride.dm b/code/modules/vehicles/pimpin_ride.dm index 98bd0c246e..4058a76351 100644 --- a/code/modules/vehicles/pimpin_ride.dm +++ b/code/modules/vehicles/pimpin_ride.dm @@ -7,6 +7,11 @@ var/obj/item/weapon/storage/bag/trash/mybag = null var/floorbuffer = 0 +/obj/vehicle/janicart/Destroy() + if(mybag) + qdel(mybag) + mybag = null + return ..() /obj/vehicle/janicart/handle_vehicle_offsets() ..() @@ -90,4 +95,4 @@ mybag.loc = get_turf(user) user.put_in_hands(mybag) mybag = null - update_icon() \ No newline at end of file + update_icon() diff --git a/code/modules/vehicles/scooter.dm b/code/modules/vehicles/scooter.dm index dcd29d0a22..a70a6a495e 100644 --- a/code/modules/vehicles/scooter.dm +++ b/code/modules/vehicles/scooter.dm @@ -7,7 +7,7 @@ if(istype(I, /obj/item/weapon/wrench)) user << "You begin to remove the handlebars..." playsound(get_turf(user), 'sound/items/Ratchet.ogg', 50, 1) - if(do_after(user, 40/I.toolspeed, target = src)) + if(do_after(user, 40*I.toolspeed, target = src)) new /obj/vehicle/scooter/skateboard(get_turf(src)) new /obj/item/stack/rods(get_turf(src),2) user << "You remove the handlebars from [src]." @@ -38,15 +38,18 @@ else buckled_mob.pixel_y = -4 +/obj/vehicle/scooter/buckle_mob(mob/living/M, force = 0) + if(!istype(M)) + return 0 + if(M.get_num_legs() < 2 && M.get_num_arms() <= 0) + M << "Your limbless body can't use [src]." + return 0 + . = ..() + /obj/vehicle/scooter/post_buckle_mob(mob/living/M) vehicle_move_delay = initial(vehicle_move_delay) - ..() if(M.get_num_legs() < 2) vehicle_move_delay ++ - if(M.get_num_arms() <= 0) - if(buckled_mobs.len)//to prevent the message displaying twice due to unbuckling - M << "Your limbless body flops off \the [src]." - unbuckle_mob(M) /obj/vehicle/scooter/skateboard name = "skateboard" @@ -92,7 +95,7 @@ desc = "A metal frame for building a scooter. Looks like you'll need to add some metal to make wheels." icon = 'icons/obj/vehicles.dmi' icon_state = "scooter_frame" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL /obj/item/scooter_frame/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/weapon/wrench)) @@ -104,11 +107,13 @@ else if(istype(I, /obj/item/stack/sheet/metal)) var/obj/item/stack/sheet/metal/M = I - if(M.amount < 5) + if(M.get_amount() < 5) user << "You need at least five metal sheets to make proper wheels!" return user << "You begin to add wheels to [src]." if(do_after(user, 80, target = src)) + if(!M || M.get_amount() < 5) + return M.use(5) user << "You finish making wheels for [src]." new /obj/vehicle/scooter/skateboard(user.loc) @@ -117,7 +122,7 @@ /obj/vehicle/scooter/skateboard/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/weapon/screwdriver)) user << "You begin to deconstruct and remove the wheels on [src]..." - playsound(get_turf(user), 'sound/items/Screwdriver.ogg', 50, 1) + playsound(get_turf(user), I.usesound, 50, 1) if(do_after(user, 20, target = src)) user << "You deconstruct the wheels on [src]." new /obj/item/stack/sheet/metal(get_turf(src),5) @@ -131,6 +136,8 @@ return user << "You begin making handlebars for [src]." if(do_after(user, 25, target = src)) + if(!C || C.get_amount() < 2) + return user << "You add the rods to [src], creating handlebars." C.use(2) new/obj/vehicle/scooter(get_turf(src)) diff --git a/code/modules/vehicles/vehicle.dm b/code/modules/vehicles/vehicle.dm index 064a6bb147..cc9bb28365 100644 --- a/code/modules/vehicles/vehicle.dm +++ b/code/modules/vehicles/vehicle.dm @@ -8,6 +8,9 @@ anchored = 0 can_buckle = 1 buckle_lying = 0 + obj_integrity = 300 + max_integrity = 300 + armor = list(melee = 30, bullet = 30, laser = 30, energy = 0, bomb = 30, bio = 0, rad = 0, fire = 60, acid = 60) var/keytype = null //item typepath, if non-null an item of this type is needed in your hands to drive this vehicle var/next_vehicle_move = 0 //used for move delays var/vehicle_move_delay = 2 //tick delay between movements, lower = faster, higher = slower @@ -52,7 +55,7 @@ //KEYS /obj/vehicle/proc/keycheck(mob/user) if(keytype) - if(istype(user.l_hand, keytype) || istype(user.r_hand, keytype)) + if(user.is_holding_item_of_type(keytype)) return 1 else return 1 @@ -63,7 +66,7 @@ desc = "A small grey key." icon = 'icons/obj/vehicles.dmi' icon_state = "key" - w_class = 1 + w_class = WEIGHT_CLASS_TINY //BUCKLE HOOKS @@ -94,12 +97,14 @@ /obj/vehicle/relaymove(mob/user, direction) if(user.incapacitated()) unbuckle_mob(user) + return + if(world.time < next_vehicle_move) + return + next_vehicle_move = world.time + vehicle_move_delay if(keycheck(user)) - if(!Process_Spacemove(direction) || world.time < next_vehicle_move || !isturf(loc)) + if(!Process_Spacemove(direction) || !isturf(loc)) return - next_vehicle_move = world.time + vehicle_move_delay - step(src, direction) handle_vehicle_layer() @@ -129,7 +134,7 @@ /obj/vehicle/Process_Spacemove(direction) - if(has_gravity(src)) + if(has_gravity()) return 1 if(pulledby) @@ -142,3 +147,28 @@ /obj/vehicle/space/Process_Spacemove(direction) return 1 + +/obj/vehicle/run_obj_armor(damage_amount, damage_type, damage_flag = 0, attack_dir) + if(damage_flag == "melee" && damage_amount < 20) + return 0 + . = ..() + +/obj/vehicle/deconstruct(disassembled = TRUE) + new /obj/item/stack/sheet/metal (loc, 5) + qdel(src) + +/obj/vehicle/examine(mob/user) + ..() + if(!(resistance_flags & INDESTRUCTIBLE)) + if(resistance_flags & ON_FIRE) + user << "It's on fire!" + var/healthpercent = (obj_integrity/max_integrity) * 100 + switch(healthpercent) + if(100 to INFINITY) + user << "It seems pristine and undamaged." + if(50 to 100) + user << "It looks slightly damaged." + if(25 to 50) + user << "It appears heavily damaged." + if(0 to 25) + user << "It's falling apart!" \ No newline at end of file diff --git a/code/modules/zombie/items.dm b/code/modules/zombie/items.dm index 9057dff954..c3d9b46a75 100644 --- a/code/modules/zombie/items.dm +++ b/code/modules/zombie/items.dm @@ -17,12 +17,12 @@ /obj/item/zombie_hand/equipped(mob/user, slot) . = ..() - switch(slot) - // Yes, these intentionally don't match - if(slot_l_hand) - icon_state = icon_right - if(slot_r_hand) - icon_state = icon_left + //these are intentionally inverted + var/i = user.get_held_index_of_item(src) + if(!(i % 2)) + icon_state = icon_left + else + icon_state = icon_right /obj/item/zombie_hand/afterattack(atom/target, mob/user, proximity_flag) . = ..() @@ -40,7 +40,7 @@ /obj/item/zombie_hand/proc/check_infection(mob/living/carbon/human/target, mob/user) CHECK_DNA_AND_SPECIES(target) - if(NOZOMBIE in target.dna.species.specflags) + if(NOZOMBIE in target.dna.species.species_traits) // cannot infect any NOZOMBIE subspecies (such as high functioning // zombies) return @@ -62,33 +62,28 @@ /obj/item/zombie_hand/proc/tear_airlock(obj/machinery/door/airlock/A, mob/user) removing_airlock = TRUE - user << "You start tearing apart the airlock...\ - " + user << "You start tearing apart the airlock..." playsound(src.loc, 'sound/machines/airlock_alien_prying.ogg', 100, 1) - A.audible_message("You hear a loud metallic \ - grinding sound.") + A.audible_message("You hear a loud metallic grinding sound.") - addtimer(src, "growl", 20, unique=FALSE, user) + addtimer(src, "growl", 20, TIMER_NORMAL, user) if(do_after(user, delay=160, needhand=FALSE, target=A, progress=TRUE)) playsound(src.loc, 'sound/hallucinations/far_noise.ogg', 50, 1) - A.audible_message("With a screech, [A] is torn \ - apart!") + A.audible_message("With a screech, [A] is torn apart!") var/obj/structure/door_assembly/door = new A.assemblytype(get_turf(A)) door.density = 0 door.anchored = 1 door.name = "ravaged [door]" - door.desc = "An airlock that has been torn apart. Looks like it \ - won't be keeping much out now." + door.desc = "An airlock that has been torn apart. Looks like it won't be keeping much out now." qdel(A) removing_airlock = FALSE /obj/item/zombie_hand/proc/growl(mob/user) if(removing_airlock) playsound(src.loc, 'sound/hallucinations/growl3.ogg', 50, 1) - user.audible_message("[user] growls as \ - their claws dig into the metal frame...") + user.audible_message("[user] growls as [user.p_their()] claws dig into the metal frame...") /obj/item/zombie_hand/suicide_act(mob/living/carbon/user) // Suiciding as a zombie brings someone else in to play it @@ -99,10 +94,8 @@ user.Weaken(30) var/success = offer_control(user) if(success) - user.visible_message("[user] appears to have \ - found new spirit.") + user.visible_message("[user] appears to have found new spirit.") return SHAME else - user.visible_message("[user] stops moving.\ - ") + user.visible_message("[user] stops moving.") return OXYLOSS diff --git a/code/modules/zombie/organs.dm b/code/modules/zombie/organs.dm index 35f0b61168..c477af9bc6 100644 --- a/code/modules/zombie/organs.dm +++ b/code/modules/zombie/organs.dm @@ -52,15 +52,12 @@ owner.revive(full_heal = TRUE) switch(old_stat) if(DEAD, UNCONSCIOUS) - owner.visible_message("[owner] staggers to \ - their feet!") + owner.visible_message("[owner] staggers to [owner.p_their()] feet!") owner << "You stagger to your feet!" // Conscious conversions will generally only happen for an event // or for a converts_living=TRUE infection if(CONSCIOUS) - owner.visible_message("[owner] suddenly \ - convulses, as they gain a ravenous hunger in their \ - eyes!", + owner.visible_message("[owner] suddenly convulses, as [owner.p_they()] gain a ravenous hunger in [owner.p_their()] eyes!", "You HUNGER!") playsound(owner.loc, 'sound/hallucinations/growl3.ogg', 50, 1) owner.do_jitter_animation(living_transformation_time) diff --git a/code/orphaned_procs/AStar.dm b/code/orphaned_procs/AStar.dm index 2f15183581..06820de957 100644 --- a/code/orphaned_procs/AStar.dm +++ b/code/orphaned_procs/AStar.dm @@ -43,7 +43,6 @@ Actual Adjacent procs : g = pg h = ph f = g + h - source.PNode = src nt = pnt /PathNode/proc/calc_f() @@ -70,7 +69,7 @@ Actual Adjacent procs : //the actual algorithm /proc/AStar(caller, end, dist, maxnodes, maxnodedepth = 30, mintargetdist, adjacent = /turf/proc/reachableAdjacentTurfs, id=null, turf/exclude=null, simulated_only = 1) - + var/list/pnodelist = list() //sanitation var/start = get_turf(caller) if(!start) @@ -123,23 +122,25 @@ Actual Adjacent procs : continue var/newg = cur.g + call(cur.source,dist)(T) - if(!T.PNode) //is not already in open list, so add it - open.Insert(new /PathNode(T,cur,newg,call(T,dist)(end),cur.nt+1)) + + var/PathNode/P = pnodelist[T] + if(!P) + //is not already in open list, so add it + var/PathNode/newnode = new /PathNode(T,cur,newg,call(T,dist)(end),cur.nt+1) + open.Insert(newnode) + pnodelist[T] = newnode else //is already in open list, check if it's a better way from the current turf - if(newg < T.PNode.g) - T.PNode.prevNode = cur - T.PNode.g = newg - T.PNode.calc_f() - T.PNode.nt = cur.nt + 1 - open.ReSort(T.PNode)//reorder the changed element in the list + if(newg < P.g) + P.prevNode = cur + P.g = newg + P.calc_f() + P.nt = cur.nt + 1 + open.ReSort(P)//reorder the changed element in the list CHECK_TICK //cleaning after us - for(var/PathNode/PN in open.L) - PN.source.PNode = null - for(var/turf/T in closed) - T.PNode = null + pnodelist = null //reverse the path to get it from start to finish if(path) diff --git a/code/orphaned_procs/dbcore.dm b/code/orphaned_procs/dbcore.dm index ecb073b6a2..83f7d50db3 100644 --- a/code/orphaned_procs/dbcore.dm +++ b/code/orphaned_procs/dbcore.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 + //cursors #define Default_Cursor 0 diff --git a/code/orphaned_procs/priority_announce.dm b/code/orphaned_procs/priority_announce.dm index 38e1a24d5d..1ad4a33f8f 100644 --- a/code/orphaned_procs/priority_announce.dm +++ b/code/orphaned_procs/priority_announce.dm @@ -25,7 +25,7 @@ announcement += "
    " for(var/mob/M in player_list) - if(!istype(M,/mob/new_player) && !M.ear_deaf) + if(!isnewplayer(M) && !M.ear_deaf) M << announcement if(M.client.prefs.toggles & SOUND_ANNOUNCEMENTS) M << sound(sound) @@ -45,7 +45,7 @@ return for(var/mob/M in player_list) - if(!istype(M,/mob/new_player) && !M.ear_deaf) + if(!isnewplayer(M) && !M.ear_deaf) M << "[title]
    [message]

    " if(M.client.prefs.toggles & SOUND_ANNOUNCEMENTS) if(alert) diff --git a/goon/icons/obj/goon_terminals.dmi b/goon/icons/obj/goon_terminals.dmi new file mode 100644 index 0000000000..6452c9fc09 Binary files /dev/null and b/goon/icons/obj/goon_terminals.dmi differ diff --git a/goon/icons/obj/hydroponics.dmi b/goon/icons/obj/hydroponics.dmi new file mode 100644 index 0000000000..5fb5d4ed8d Binary files /dev/null and b/goon/icons/obj/hydroponics.dmi differ diff --git a/html/IRV/jquery-1.10.2.min.js b/html/IRV/jquery-1.10.2.min.js new file mode 100644 index 0000000000..da4170647d --- /dev/null +++ b/html/IRV/jquery-1.10.2.min.js @@ -0,0 +1,6 @@ +/*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license +//@ sourceMappingURL=jquery-1.10.2.min.map +*/ +(function(e,t){var n,r,i=typeof t,o=e.location,a=e.document,s=a.documentElement,l=e.jQuery,u=e.$,c={},p=[],f="1.10.2",d=p.concat,h=p.push,g=p.slice,m=p.indexOf,y=c.toString,v=c.hasOwnProperty,b=f.trim,x=function(e,t){return new x.fn.init(e,t,r)},w=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=/\S+/g,C=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,k=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,E=/^[\],:{}\s]*$/,S=/(?:^|:|,)(?:\s*\[)+/g,A=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,j=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,D=/^-ms-/,L=/-([\da-z])/gi,H=function(e,t){return t.toUpperCase()},q=function(e){(a.addEventListener||"load"===e.type||"complete"===a.readyState)&&(_(),x.ready())},_=function(){a.addEventListener?(a.removeEventListener("DOMContentLoaded",q,!1),e.removeEventListener("load",q,!1)):(a.detachEvent("onreadystatechange",q),e.detachEvent("onload",q))};x.fn=x.prototype={jquery:f,constructor:x,init:function(e,n,r){var i,o;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof x?n[0]:n,x.merge(this,x.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:a,!0)),k.test(i[1])&&x.isPlainObject(n))for(i in n)x.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(o=a.getElementById(i[2]),o&&o.parentNode){if(o.id!==i[2])return r.find(e);this.length=1,this[0]=o}return this.context=a,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:"",length:0,toArray:function(){return g.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return x.each(this,e,t)},ready:function(e){return x.ready.promise().done(e),this},slice:function(){return this.pushStack(g.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},l=1,u=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},l=2),"object"==typeof s||x.isFunction(s)||(s={}),u===l&&(s=this,--l);u>l;l++)if(null!=(o=arguments[l]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(x.isPlainObject(r)||(n=x.isArray(r)))?(n?(n=!1,a=e&&x.isArray(e)?e:[]):a=e&&x.isPlainObject(e)?e:{},s[i]=x.extend(c,a,r)):r!==t&&(s[i]=r));return s},x.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),noConflict:function(t){return e.$===x&&(e.$=u),t&&e.jQuery===x&&(e.jQuery=l),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){if(e===!0?!--x.readyWait:!x.isReady){if(!a.body)return setTimeout(x.ready);x.isReady=!0,e!==!0&&--x.readyWait>0||(n.resolveWith(a,[x]),x.fn.trigger&&x(a).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===x.type(e)},isArray:Array.isArray||function(e){return"array"===x.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?c[y.call(e)]||"object":typeof e},isPlainObject:function(e){var n;if(!e||"object"!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&&!v.call(e,"constructor")&&!v.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(r){return!1}if(x.support.ownLast)for(n in e)return v.call(e,n);for(n in e);return n===t||v.call(e,n)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||a;var r=k.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&&x(i).remove(),x.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=x.trim(n),n&&E.test(n.replace(A,"@").replace(j,"]").replace(S,"")))?Function("return "+n)():(x.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||x.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&x.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(D,"ms-").replace(L,H)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:b&&!b.call("\ufeff\u00a0")?function(e){return null==e?"":b.call(e)}:function(e){return null==e?"":(e+"").replace(C,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?x.merge(n,"string"==typeof e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(m)return m.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return d.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),x.isFunction(e)?(r=g.call(arguments,2),i=function(){return e.apply(n||this,r.concat(g.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):t},access:function(e,n,r,i,o,a,s){var l=0,u=e.length,c=null==r;if("object"===x.type(r)){o=!0;for(l in r)x.access(e,n,l,r[l],!0,a,s)}else if(i!==t&&(o=!0,x.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(x(e),n)})),n))for(;u>l;l++)n(e[l],r,s?i:i.call(e[l],l,n(e[l],r)));return o?e:c?n.call(e):u?n(e[0],r):a},now:function(){return(new Date).getTime()},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),x.ready.promise=function(t){if(!n)if(n=x.Deferred(),"complete"===a.readyState)setTimeout(x.ready);else if(a.addEventListener)a.addEventListener("DOMContentLoaded",q,!1),e.addEventListener("load",q,!1);else{a.attachEvent("onreadystatechange",q),e.attachEvent("onload",q);var r=!1;try{r=null==e.frameElement&&a.documentElement}catch(i){}r&&r.doScroll&&function o(){if(!x.isReady){try{r.doScroll("left")}catch(e){return setTimeout(o,50)}_(),x.ready()}}()}return n.promise(t)},x.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){c["[object "+t+"]"]=t.toLowerCase()});function M(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=x(a),function(e,t){var n,r,i,o,a,s,l,u,c,p,f,d,h,g,m,y,v,b="sizzle"+-new Date,w=e.document,T=0,C=0,N=st(),k=st(),E=st(),S=!1,A=function(e,t){return e===t?(S=!0,0):0},j=typeof t,D=1<<31,L={}.hasOwnProperty,H=[],q=H.pop,_=H.push,M=H.push,O=H.slice,F=H.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},B="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",P="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",W=R.replace("w","w#"),$="\\["+P+"*("+R+")"+P+"*(?:([*^$|!~]?=)"+P+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+W+")|)|)"+P+"*\\]",I=":("+R+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+$.replace(3,8)+")*)|.*)\\)|)",z=RegExp("^"+P+"+|((?:^|[^\\\\])(?:\\\\.)*)"+P+"+$","g"),X=RegExp("^"+P+"*,"+P+"*"),U=RegExp("^"+P+"*([>+~]|"+P+")"+P+"*"),V=RegExp(P+"*[+~]"),Y=RegExp("="+P+"*([^\\]'\"]*)"+P+"*\\]","g"),J=RegExp(I),G=RegExp("^"+W+"$"),Q={ID:RegExp("^#("+R+")"),CLASS:RegExp("^\\.("+R+")"),TAG:RegExp("^("+R.replace("w","w*")+")"),ATTR:RegExp("^"+$),PSEUDO:RegExp("^"+I),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+P+"*(even|odd|(([+-]|)(\\d*)n|)"+P+"*(?:([+-]|)"+P+"*(\\d+)|))"+P+"*\\)|)","i"),bool:RegExp("^(?:"+B+")$","i"),needsContext:RegExp("^"+P+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+P+"*((?:-\\d)?\\d*)"+P+"*\\)|)(?=[^-]|$)","i")},K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,et=/^(?:input|select|textarea|button)$/i,tt=/^h\d$/i,nt=/'|\\/g,rt=RegExp("\\\\([\\da-f]{1,6}"+P+"?|("+P+")|.)","ig"),it=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(55296|r>>10,56320|1023&r)};try{M.apply(H=O.call(w.childNodes),w.childNodes),H[w.childNodes.length].nodeType}catch(ot){M={apply:H.length?function(e,t){_.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function at(e,t,n,i){var o,a,s,l,u,c,d,m,y,x;if((t?t.ownerDocument||t:w)!==f&&p(t),t=t||f,n=n||[],!e||"string"!=typeof e)return n;if(1!==(l=t.nodeType)&&9!==l)return[];if(h&&!i){if(o=Z.exec(e))if(s=o[1]){if(9===l){if(a=t.getElementById(s),!a||!a.parentNode)return n;if(a.id===s)return n.push(a),n}else if(t.ownerDocument&&(a=t.ownerDocument.getElementById(s))&&v(t,a)&&a.id===s)return n.push(a),n}else{if(o[2])return M.apply(n,t.getElementsByTagName(e)),n;if((s=o[3])&&r.getElementsByClassName&&t.getElementsByClassName)return M.apply(n,t.getElementsByClassName(s)),n}if(r.qsa&&(!g||!g.test(e))){if(m=d=b,y=t,x=9===l&&e,1===l&&"object"!==t.nodeName.toLowerCase()){c=mt(e),(d=t.getAttribute("id"))?m=d.replace(nt,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"'] ",u=c.length;while(u--)c[u]=m+yt(c[u]);y=V.test(e)&&t.parentNode||t,x=c.join(",")}if(x)try{return M.apply(n,y.querySelectorAll(x)),n}catch(T){}finally{d||t.removeAttribute("id")}}}return kt(e.replace(z,"$1"),t,n,i)}function st(){var e=[];function t(n,r){return e.push(n+=" ")>o.cacheLength&&delete t[e.shift()],t[n]=r}return t}function lt(e){return e[b]=!0,e}function ut(e){var t=f.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ct(e,t){var n=e.split("|"),r=e.length;while(r--)o.attrHandle[n[r]]=t}function pt(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function ft(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function dt(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function ht(e){return lt(function(t){return t=+t,lt(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}s=at.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},r=at.support={},p=at.setDocument=function(e){var n=e?e.ownerDocument||e:w,i=n.defaultView;return n!==f&&9===n.nodeType&&n.documentElement?(f=n,d=n.documentElement,h=!s(n),i&&i.attachEvent&&i!==i.top&&i.attachEvent("onbeforeunload",function(){p()}),r.attributes=ut(function(e){return e.className="i",!e.getAttribute("className")}),r.getElementsByTagName=ut(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),r.getElementsByClassName=ut(function(e){return e.innerHTML="
    ",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),r.getById=ut(function(e){return d.appendChild(e).id=b,!n.getElementsByName||!n.getElementsByName(b).length}),r.getById?(o.find.ID=function(e,t){if(typeof t.getElementById!==j&&h){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){return e.getAttribute("id")===t}}):(delete o.find.ID,o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){var n=typeof e.getAttributeNode!==j&&e.getAttributeNode("id");return n&&n.value===t}}),o.find.TAG=r.getElementsByTagName?function(e,n){return typeof n.getElementsByTagName!==j?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},o.find.CLASS=r.getElementsByClassName&&function(e,n){return typeof n.getElementsByClassName!==j&&h?n.getElementsByClassName(e):t},m=[],g=[],(r.qsa=K.test(n.querySelectorAll))&&(ut(function(e){e.innerHTML="",e.querySelectorAll("[selected]").length||g.push("\\["+P+"*(?:value|"+B+")"),e.querySelectorAll(":checked").length||g.push(":checked")}),ut(function(e){var t=n.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("t",""),e.querySelectorAll("[t^='']").length&&g.push("[*^$]="+P+"*(?:''|\"\")"),e.querySelectorAll(":enabled").length||g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(r.matchesSelector=K.test(y=d.webkitMatchesSelector||d.mozMatchesSelector||d.oMatchesSelector||d.msMatchesSelector))&&ut(function(e){r.disconnectedMatch=y.call(e,"div"),y.call(e,"[s!='']:x"),m.push("!=",I)}),g=g.length&&RegExp(g.join("|")),m=m.length&&RegExp(m.join("|")),v=K.test(d.contains)||d.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},A=d.compareDocumentPosition?function(e,t){if(e===t)return S=!0,0;var i=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t);return i?1&i||!r.sortDetached&&t.compareDocumentPosition(e)===i?e===n||v(w,e)?-1:t===n||v(w,t)?1:c?F.call(c,e)-F.call(c,t):0:4&i?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t];if(e===t)return S=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:c?F.call(c,e)-F.call(c,t):0;if(o===a)return pt(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?pt(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},n):f},at.matches=function(e,t){return at(e,null,null,t)},at.matchesSelector=function(e,t){if((e.ownerDocument||e)!==f&&p(e),t=t.replace(Y,"='$1']"),!(!r.matchesSelector||!h||m&&m.test(t)||g&&g.test(t)))try{var n=y.call(e,t);if(n||r.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(i){}return at(t,f,null,[e]).length>0},at.contains=function(e,t){return(e.ownerDocument||e)!==f&&p(e),v(e,t)},at.attr=function(e,n){(e.ownerDocument||e)!==f&&p(e);var i=o.attrHandle[n.toLowerCase()],a=i&&L.call(o.attrHandle,n.toLowerCase())?i(e,n,!h):t;return a===t?r.attributes||!h?e.getAttribute(n):(a=e.getAttributeNode(n))&&a.specified?a.value:null:a},at.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},at.uniqueSort=function(e){var t,n=[],i=0,o=0;if(S=!r.detectDuplicates,c=!r.sortStable&&e.slice(0),e.sort(A),S){while(t=e[o++])t===e[o]&&(i=n.push(o));while(i--)e.splice(n[i],1)}return e},a=at.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=a(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=a(t);return n},o=at.selectors={cacheLength:50,createPseudo:lt,match:Q,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(rt,it),e[3]=(e[4]||e[5]||"").replace(rt,it),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||at.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&at.error(e[0]),e},PSEUDO:function(e){var n,r=!e[5]&&e[2];return Q.CHILD.test(e[0])?null:(e[3]&&e[4]!==t?e[2]=e[4]:r&&J.test(r)&&(n=mt(r,!0))&&(n=r.indexOf(")",r.length-n)-r.length)&&(e[0]=e[0].slice(0,n),e[2]=r.slice(0,n)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(rt,it).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=N[e+" "];return t||(t=RegExp("(^|"+P+")"+e+"("+P+"|$)"))&&N(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==j&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=at.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var u,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!l&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[b]||(m[b]={}),u=c[e]||[],d=u[0]===T&&u[1],f=u[0]===T&&u[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[T,d,f];break}}else if(v&&(u=(t[b]||(t[b]={}))[e])&&u[0]===T)f=u[1];else while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[b]||(p[b]={}))[e]=[T,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=o.pseudos[e]||o.setFilters[e.toLowerCase()]||at.error("unsupported pseudo: "+e);return r[b]?r(t):r.length>1?(n=[e,e,"",t],o.setFilters.hasOwnProperty(e.toLowerCase())?lt(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=F.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:lt(function(e){var t=[],n=[],r=l(e.replace(z,"$1"));return r[b]?lt(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:lt(function(e){return function(t){return at(e,t).length>0}}),contains:lt(function(e){return function(t){return(t.textContent||t.innerText||a(t)).indexOf(e)>-1}}),lang:lt(function(e){return G.test(e||"")||at.error("unsupported lang: "+e),e=e.replace(rt,it).toLowerCase(),function(t){var n;do if(n=h?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===d},focus:function(e){return e===f.activeElement&&(!f.hasFocus||f.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!o.pseudos.empty(e)},header:function(e){return tt.test(e.nodeName)},input:function(e){return et.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:ht(function(){return[0]}),last:ht(function(e,t){return[t-1]}),eq:ht(function(e,t,n){return[0>n?n+t:n]}),even:ht(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:ht(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:ht(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:ht(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}},o.pseudos.nth=o.pseudos.eq;for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})o.pseudos[n]=ft(n);for(n in{submit:!0,reset:!0})o.pseudos[n]=dt(n);function gt(){}gt.prototype=o.filters=o.pseudos,o.setFilters=new gt;function mt(e,t){var n,r,i,a,s,l,u,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,l=[],u=o.preFilter;while(s){(!n||(r=X.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),l.push(i=[])),n=!1,(r=U.exec(s))&&(n=r.shift(),i.push({value:n,type:r[0].replace(z," ")}),s=s.slice(n.length));for(a in o.filter)!(r=Q[a].exec(s))||u[a]&&!(r=u[a](r))||(n=r.shift(),i.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?at.error(e):k(e,l).slice(0)}function yt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function vt(e,t,n){var r=t.dir,o=n&&"parentNode"===r,a=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||o)return e(t,n,i)}:function(t,n,s){var l,u,c,p=T+" "+a;if(s){while(t=t[r])if((1===t.nodeType||o)&&e(t,n,s))return!0}else while(t=t[r])if(1===t.nodeType||o)if(c=t[b]||(t[b]={}),(u=c[r])&&u[0]===p){if((l=u[1])===!0||l===i)return l===!0}else if(u=c[r]=[p],u[1]=e(t,n,s)||i,u[1]===!0)return!0}}function bt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function xt(e,t,n,r,i){var o,a=[],s=0,l=e.length,u=null!=t;for(;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),u&&t.push(s));return a}function wt(e,t,n,r,i,o){return r&&!r[b]&&(r=wt(r)),i&&!i[b]&&(i=wt(i,o)),lt(function(o,a,s,l){var u,c,p,f=[],d=[],h=a.length,g=o||Nt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:xt(g,f,e,s,l),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,l),r){u=xt(y,d),r(u,[],s,l),c=u.length;while(c--)(p=u[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){u=[],c=y.length;while(c--)(p=y[c])&&u.push(m[c]=p);i(null,y=[],u,l)}c=y.length;while(c--)(p=y[c])&&(u=i?F.call(o,p):f[c])>-1&&(o[u]=!(a[u]=p))}}else y=xt(y===a?y.splice(h,y.length):y),i?i(null,a,y,l):M.apply(a,y)})}function Tt(e){var t,n,r,i=e.length,a=o.relative[e[0].type],s=a||o.relative[" "],l=a?1:0,c=vt(function(e){return e===t},s,!0),p=vt(function(e){return F.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==u)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;i>l;l++)if(n=o.relative[e[l].type])f=[vt(bt(f),n)];else{if(n=o.filter[e[l].type].apply(null,e[l].matches),n[b]){for(r=++l;i>r;r++)if(o.relative[e[r].type])break;return wt(l>1&&bt(f),l>1&&yt(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(z,"$1"),n,r>l&&Tt(e.slice(l,r)),i>r&&Tt(e=e.slice(r)),i>r&&yt(e))}f.push(n)}return bt(f)}function Ct(e,t){var n=0,r=t.length>0,a=e.length>0,s=function(s,l,c,p,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,C=u,N=s||a&&o.find.TAG("*",d&&l.parentNode||l),k=T+=null==C?1:Math.random()||.1;for(w&&(u=l!==f&&l,i=n);null!=(h=N[b]);b++){if(a&&h){g=0;while(m=e[g++])if(m(h,l,c)){p.push(h);break}w&&(T=k,i=++n)}r&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,r&&b!==v){g=0;while(m=t[g++])m(x,y,l,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=q.call(p));y=xt(y)}M.apply(p,y),w&&!s&&y.length>0&&v+t.length>1&&at.uniqueSort(p)}return w&&(T=k,u=C),x};return r?lt(s):s}l=at.compile=function(e,t){var n,r=[],i=[],o=E[e+" "];if(!o){t||(t=mt(e)),n=t.length;while(n--)o=Tt(t[n]),o[b]?r.push(o):i.push(o);o=E(e,Ct(i,r))}return o};function Nt(e,t,n){var r=0,i=t.length;for(;i>r;r++)at(e,t[r],n);return n}function kt(e,t,n,i){var a,s,u,c,p,f=mt(e);if(!i&&1===f.length){if(s=f[0]=f[0].slice(0),s.length>2&&"ID"===(u=s[0]).type&&r.getById&&9===t.nodeType&&h&&o.relative[s[1].type]){if(t=(o.find.ID(u.matches[0].replace(rt,it),t)||[])[0],!t)return n;e=e.slice(s.shift().value.length)}a=Q.needsContext.test(e)?0:s.length;while(a--){if(u=s[a],o.relative[c=u.type])break;if((p=o.find[c])&&(i=p(u.matches[0].replace(rt,it),V.test(s[0].type)&&t.parentNode||t))){if(s.splice(a,1),e=i.length&&yt(s),!e)return M.apply(n,i),n;break}}}return l(e,f)(i,t,!h,n,V.test(e)),n}r.sortStable=b.split("").sort(A).join("")===b,r.detectDuplicates=S,p(),r.sortDetached=ut(function(e){return 1&e.compareDocumentPosition(f.createElement("div"))}),ut(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||ct("type|href|height|width",function(e,n,r){return r?t:e.getAttribute(n,"type"===n.toLowerCase()?1:2)}),r.attributes&&ut(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||ct("value",function(e,n,r){return r||"input"!==e.nodeName.toLowerCase()?t:e.defaultValue}),ut(function(e){return null==e.getAttribute("disabled")})||ct(B,function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&i.specified?i.value:e[n]===!0?n.toLowerCase():null}),x.find=at,x.expr=at.selectors,x.expr[":"]=x.expr.pseudos,x.unique=at.uniqueSort,x.text=at.getText,x.isXMLDoc=at.isXML,x.contains=at.contains}(e);var O={};function F(e){var t=O[e]={};return x.each(e.match(T)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e="string"==typeof e?O[e]||F(e):x.extend({},e);var n,r,i,o,a,s,l=[],u=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=l.length,n=!0;l&&o>a;a++)if(l[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,l&&(u?u.length&&c(u.shift()):r?l=[]:p.disable())},p={add:function(){if(l){var t=l.length;(function i(t){x.each(t,function(t,n){var r=x.type(n);"function"===r?e.unique&&p.has(n)||l.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=l.length:r&&(s=t,c(r))}return this},remove:function(){return l&&x.each(arguments,function(e,t){var r;while((r=x.inArray(t,l,r))>-1)l.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?x.inArray(e,l)>-1:!(!l||!l.length)},empty:function(){return l=[],o=0,this},disable:function(){return l=u=r=t,this},disabled:function(){return!l},lock:function(){return u=t,r||p.disable(),this},locked:function(){return!u},fireWith:function(e,t){return!l||i&&!u||(t=t||[],t=[e,t.slice?t.slice():t],n?u.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},x.extend({Deferred:function(e){var t=[["resolve","done",x.Callbacks("once memory"),"resolved"],["reject","fail",x.Callbacks("once memory"),"rejected"],["notify","progress",x.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var a=o[0],s=x.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=g.call(arguments),r=n.length,i=1!==r||e&&x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?g.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},s,l,u;if(r>1)for(s=Array(r),l=Array(r),u=Array(r);r>t;t++)n[t]&&x.isFunction(n[t].promise)?n[t].promise().done(a(t,u,n)).fail(o.reject).progress(a(t,l,s)):--i;return i||o.resolveWith(u,n),o.promise()}}),x.support=function(t){var n,r,o,s,l,u,c,p,f,d=a.createElement("div");if(d.setAttribute("className","t"),d.innerHTML="
    a",n=d.getElementsByTagName("*")||[],r=d.getElementsByTagName("a")[0],!r||!r.style||!n.length)return t;s=a.createElement("select"),u=s.appendChild(a.createElement("option")),o=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t.getSetAttribute="t"!==d.className,t.leadingWhitespace=3===d.firstChild.nodeType,t.tbody=!d.getElementsByTagName("tbody").length,t.htmlSerialize=!!d.getElementsByTagName("link").length,t.style=/top/.test(r.getAttribute("style")),t.hrefNormalized="/a"===r.getAttribute("href"),t.opacity=/^0.5/.test(r.style.opacity),t.cssFloat=!!r.style.cssFloat,t.checkOn=!!o.value,t.optSelected=u.selected,t.enctype=!!a.createElement("form").enctype,t.html5Clone="<:nav>"!==a.createElement("nav").cloneNode(!0).outerHTML,t.inlineBlockNeedsLayout=!1,t.shrinkWrapBlocks=!1,t.pixelPosition=!1,t.deleteExpando=!0,t.noCloneEvent=!0,t.reliableMarginRight=!0,t.boxSizingReliable=!0,o.checked=!0,t.noCloneChecked=o.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!u.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}o=a.createElement("input"),o.setAttribute("value",""),t.input=""===o.getAttribute("value"),o.value="t",o.setAttribute("type","radio"),t.radioValue="t"===o.value,o.setAttribute("checked","t"),o.setAttribute("name","t"),l=a.createDocumentFragment(),l.appendChild(o),t.appendChecked=o.checked,t.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip;for(f in x(t))break;return t.ownLast="0"!==f,x(function(){var n,r,o,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",l=a.getElementsByTagName("body")[0];l&&(n=a.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",l.appendChild(n).appendChild(d),d.innerHTML="
    t
    ",o=d.getElementsByTagName("td"),o[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===o[0].offsetHeight,o[0].style.display="",o[1].style.display="none",t.reliableHiddenOffsets=p&&0===o[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",x.swap(l,null!=l.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===d.offsetWidth}),e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(a.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="
    ",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(l.style.zoom=1)),l.removeChild(n),n=d=o=r=null)}),n=s=l=u=r=o=null,t +}({});var B=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;function R(e,n,r,i){if(x.acceptData(e)){var o,a,s=x.expando,l=e.nodeType,u=l?x.cache:e,c=l?e[s]:e[s]&&s;if(c&&u[c]&&(i||u[c].data)||r!==t||"string"!=typeof n)return c||(c=l?e[s]=p.pop()||x.guid++:s),u[c]||(u[c]=l?{}:{toJSON:x.noop}),("object"==typeof n||"function"==typeof n)&&(i?u[c]=x.extend(u[c],n):u[c].data=x.extend(u[c].data,n)),a=u[c],i||(a.data||(a.data={}),a=a.data),r!==t&&(a[x.camelCase(n)]=r),"string"==typeof n?(o=a[n],null==o&&(o=a[x.camelCase(n)])):o=a,o}}function W(e,t,n){if(x.acceptData(e)){var r,i,o=e.nodeType,a=o?x.cache:e,s=o?e[x.expando]:x.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){x.isArray(t)?t=t.concat(x.map(t,x.camelCase)):t in r?t=[t]:(t=x.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;while(i--)delete r[t[i]];if(n?!I(r):!x.isEmptyObject(r))return}(n||(delete a[s].data,I(a[s])))&&(o?x.cleanData([e],!0):x.support.deleteExpando||a!=a.window?delete a[s]:a[s]=null)}}}x.extend({cache:{},noData:{applet:!0,embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?x.cache[e[x.expando]]:e[x.expando],!!e&&!I(e)},data:function(e,t,n){return R(e,t,n)},removeData:function(e,t){return W(e,t)},_data:function(e,t,n){return R(e,t,n,!0)},_removeData:function(e,t){return W(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&x.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),x.fn.extend({data:function(e,n){var r,i,o=null,a=0,s=this[0];if(e===t){if(this.length&&(o=x.data(s),1===s.nodeType&&!x._data(s,"parsedAttrs"))){for(r=s.attributes;r.length>a;a++)i=r[a].name,0===i.indexOf("data-")&&(i=x.camelCase(i.slice(5)),$(s,i,o[i]));x._data(s,"parsedAttrs",!0)}return o}return"object"==typeof e?this.each(function(){x.data(this,e)}):arguments.length>1?this.each(function(){x.data(this,e,n)}):s?$(s,e,x.data(s,e)):null},removeData:function(e){return this.each(function(){x.removeData(this,e)})}});function $(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(P,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:B.test(r)?x.parseJSON(r):r}catch(o){}x.data(e,n,r)}else r=t}return r}function I(e){var t;for(t in e)if(("data"!==t||!x.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}x.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=x._data(e,n),r&&(!i||x.isArray(r)?i=x._data(e,n,x.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),a=function(){x.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return x._data(e,n)||x._data(e,n,{empty:x.Callbacks("once memory").add(function(){x._removeData(e,t+"queue"),x._removeData(e,n)})})}}),x.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?x.queue(this[0],e):n===t?this:this.each(function(){var t=x.queue(this,e,n);x._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&x.dequeue(this,e)})},dequeue:function(e){return this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return e=x.fx?x.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=x.Deferred(),a=this,s=this.length,l=function(){--i||o.resolveWith(a,[a])};"string"!=typeof e&&(n=e,e=t),e=e||"fx";while(s--)r=x._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(l));return l(),o.promise(n)}});var z,X,U=/[\t\r\n\f]/g,V=/\r/g,Y=/^(?:input|select|textarea|button|object)$/i,J=/^(?:a|area)$/i,G=/^(?:checked|selected)$/i,Q=x.support.getSetAttribute,K=x.support.input;x.fn.extend({attr:function(e,t){return x.access(this,x.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return x.access(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return e=x.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,l="string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=x.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,l=0===arguments.length||"string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?x.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):x.isFunction(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var t,r=0,o=x(this),a=e.match(T)||[];while(t=a[r++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else(n===i||"boolean"===n)&&(this.className&&x._data(this,"__className__",this.className),this.className=this.className||e===!1?"":x._data(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(U," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=x.isFunction(e),this.each(function(n){var o;1===this.nodeType&&(o=i?e.call(this,n,x(this).val()):e,null==o?o="":"number"==typeof o?o+="":x.isArray(o)&&(o=x.map(o,function(e){return null==e?"":e+""})),r=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=x.valHooks[o.type]||x.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(V,""):null==n?"":n)}}}),x.extend({valHooks:{option:{get:function(e){var t=x.find.attr(e,"value");return null!=t?t:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,l=0>i?s:o?i:0;for(;s>l;l++)if(n=r[l],!(!n.selected&&l!==i||(x.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&x.nodeName(n.parentNode,"optgroup"))){if(t=x(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n,r,i=e.options,o=x.makeArray(t),a=i.length;while(a--)r=i[a],(r.selected=x.inArray(x(r).val(),o)>=0)&&(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,n,r){var o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return typeof e.getAttribute===i?x.prop(e,n,r):(1===s&&x.isXMLDoc(e)||(n=n.toLowerCase(),o=x.attrHooks[n]||(x.expr.match.bool.test(n)?X:z)),r===t?o&&"get"in o&&null!==(a=o.get(e,n))?a:(a=x.find.attr(e,n),null==a?t:a):null!==r?o&&"set"in o&&(a=o.set(e,r,n))!==t?a:(e.setAttribute(n,r+""),r):(x.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(T);if(o&&1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.bool.test(n)?K&&Q||!G.test(n)?e[r]=!1:e[x.camelCase("default-"+n)]=e[r]=!1:x.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&&"radio"===t&&x.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!x.isXMLDoc(e),a&&(n=x.propFix[n]||n,o=x.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var t=x.find.attr(e,"tabindex");return t?parseInt(t,10):Y.test(e.nodeName)||J.test(e.nodeName)&&e.href?0:-1}}}}),X={set:function(e,t,n){return t===!1?x.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&x.propFix[n]||n,n):e[x.camelCase("default-"+n)]=e[n]=!0,n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,n){var r=x.expr.attrHandle[n]||x.find.attr;x.expr.attrHandle[n]=K&&Q||!G.test(n)?function(e,n,i){var o=x.expr.attrHandle[n],a=i?t:(x.expr.attrHandle[n]=t)!=r(e,n,i)?n.toLowerCase():null;return x.expr.attrHandle[n]=o,a}:function(e,n,r){return r?t:e[x.camelCase("default-"+n)]?n.toLowerCase():null}}),K&&Q||(x.attrHooks.value={set:function(e,n,r){return x.nodeName(e,"input")?(e.defaultValue=n,t):z&&z.set(e,n,r)}}),Q||(z={set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},x.expr.attrHandle.id=x.expr.attrHandle.name=x.expr.attrHandle.coords=function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&""!==i.value?i.value:null},x.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&r.specified?r.value:t},set:z.set},x.attrHooks.contenteditable={set:function(e,t,n){z.set(e,""===t?!1:t,n)}},x.each(["width","height"],function(e,n){x.attrHooks[n]={set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}}})),x.support.hrefNormalized||x.each(["href","src"],function(e,t){x.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),x.support.style||(x.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}}),x.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){x.propFix[this.toLowerCase()]=this}),x.support.enctype||(x.propFix.enctype="encoding"),x.each(["radio","checkbox"],function(){x.valHooks[this]={set:function(e,n){return x.isArray(n)?e.checked=x.inArray(x(e).val(),n)>=0:t}},x.support.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;function it(){return!0}function ot(){return!1}function at(){try{return a.activeElement}catch(e){}}x.event={global:{},add:function(e,n,r,o,a){var s,l,u,c,p,f,d,h,g,m,y,v=x._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=x.guid++),(l=v.events)||(l=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof x===i||e&&x.event.triggered===e.type?t:x.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||"").match(T)||[""],u=n.length;while(u--)s=rt.exec(n[u])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),g&&(p=x.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=x.event.special[g]||{},d=x.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&x.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=l[g])||(h=l[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),x.event.global[g]=!0);e=null}},remove:function(e,t,n,r,i){var o,a,s,l,u,c,p,f,d,h,g,m=x.hasData(e)&&x._data(e);if(m&&(c=m.events)){t=(t||"").match(T)||[""],u=t.length;while(u--)if(s=rt.exec(t[u])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){p=x.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),l=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));l&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||x.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)x.event.remove(e,d+t[u],n,r,!0);x.isEmptyObject(c)&&(delete m.handle,x._removeData(e,"events"))}},trigger:function(n,r,i,o){var s,l,u,c,p,f,d,h=[i||a],g=v.call(n,"type")?n.type:n,m=v.call(n,"namespace")?n.namespace.split("."):[];if(u=f=i=i||a,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+x.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),l=0>g.indexOf(":")&&"on"+g,n=n[x.expando]?n:new x.Event(g,"object"==typeof n&&n),n.isTrigger=o?2:3,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:x.makeArray(r,[n]),p=x.event.special[g]||{},o||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!o&&!p.noBubble&&!x.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(u=u.parentNode);u;u=u.parentNode)h.push(u),f=u;f===(i.ownerDocument||a)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((u=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(x._data(u,"events")||{})[n.type]&&x._data(u,"handle"),s&&s.apply(u,r),s=l&&u[l],s&&x.acceptData(u)&&s.apply&&s.apply(u,r)===!1&&n.preventDefault();if(n.type=g,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(h.pop(),r)===!1)&&x.acceptData(i)&&l&&i[g]&&!x.isWindow(i)){f=i[l],f&&(i[l]=null),x.event.triggered=g;try{i[g]()}catch(y){}x.event.triggered=t,f&&(i[l]=f)}return n.result}},dispatch:function(e){e=x.event.fix(e);var n,r,i,o,a,s=[],l=g.call(arguments),u=(x._data(this,"events")||{})[e.type]||[],c=x.event.special[e.type]||{};if(l[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this,e,u),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((x.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,l),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],l=n.delegateCount,u=e.target;if(l&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(o=[],a=0;l>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?x(r,this).index(u)>=0:x.find(r,this,null,[u]).length),o[r]&&o.push(i);o.length&&s.push({elem:u,handlers:o})}return n.length>l&&s.push({elem:this,handlers:n.slice(l)}),s},fix:function(e){if(e[x.expando])return e;var t,n,r,i=e.type,o=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new x.Event(o),t=r.length;while(t--)n=r[t],e[n]=o[n];return e.target||(e.target=o.srcElement||a),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,o):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,o,s=n.button,l=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||a,o=i.documentElement,r=i.body,e.pageX=n.clientX+(o&&o.scrollLeft||r&&r.scrollLeft||0)-(o&&o.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(o&&o.scrollTop||r&&r.scrollTop||0)-(o&&o.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&l&&(e.relatedTarget=l===e.target?n.toElement:l),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==at()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===at()&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},click:{trigger:function(){return x.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t},_default:function(e){return x.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i,null,t):x.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},x.removeEvent=a.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===i&&(e[r]=null),e.detachEvent(r,n))},x.Event=function(e,n){return this instanceof x.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&x.extend(this,n),this.timeStamp=e&&e.timeStamp||x.now(),this[x.expando]=!0,t):new x.Event(e,n)},x.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},x.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!x.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.submitBubbles||(x.event.special.submit={setup:function(){return x.nodeName(this,"form")?!1:(x.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=x.nodeName(n,"input")||x.nodeName(n,"button")?n.form:t;r&&!x._data(r,"submitBubbles")&&(x.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),x._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&x.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return x.nodeName(this,"form")?!1:(x.event.remove(this,"._submit"),t)}}),x.support.changeBubbles||(x.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(x.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),x.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),x.event.simulate("change",this,e,!0)})),!1):(x.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!x._data(t,"changeBubbles")&&(x.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||x.event.simulate("change",this.parentNode,e,!0)}),x._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return x.event.remove(this,"._change"),!Z.test(this.nodeName)}}),x.support.focusinBubbles||x.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){x.event.simulate(t,e.target,x.event.fix(e),!0)};x.event.special[t]={setup:function(){0===n++&&a.addEventListener(e,r,!0)},teardown:function(){0===--n&&a.removeEventListener(e,r,!0)}}}),x.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return x().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=x.guid++)),this.each(function(){x.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,x(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){x.event.remove(this,e,r,n)})},trigger:function(e,t){return this.each(function(){x.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?x.event.trigger(e,n,r,!0):t}});var st=/^.[^:#\[\.,]*$/,lt=/^(?:parents|prev(?:Until|All))/,ut=x.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};x.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(x(e).filter(function(){for(t=0;i>t;t++)if(x.contains(r[t],this))return!0}));for(t=0;i>t;t++)x.find(e,r[t],n);return n=this.pushStack(i>1?x.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},has:function(e){var t,n=x(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(x.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e||[],!0))},filter:function(e){return this.pushStack(ft(this,e||[],!1))},is:function(e){return!!ft(this,"string"==typeof e&&ut.test(e)?x(e):e||[],!1).length},closest:function(e,t){var n,r=0,i=this.length,o=[],a=ut.test(e)||"string"!=typeof e?x(e,t||this.context):0;for(;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(11>n.nodeType&&(a?a.index(n)>-1:1===n.nodeType&&x.find.matchesSelector(n,e))){n=o.push(n);break}return this.pushStack(o.length>1?x.unique(o):o)},index:function(e){return e?"string"==typeof e?x.inArray(this[0],x(e)):x.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?x(e,t):x.makeArray(e&&e.nodeType?[e]:e),r=x.merge(this.get(),n);return this.pushStack(x.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}x.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return x.dir(e,"parentNode")},parentsUntil:function(e,t,n){return x.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return x.dir(e,"nextSibling")},prevAll:function(e){return x.dir(e,"previousSibling")},nextUntil:function(e,t,n){return x.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return x.dir(e,"previousSibling",n)},siblings:function(e){return x.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return x.sibling(e.firstChild)},contents:function(e){return x.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:x.merge([],e.childNodes)}},function(e,t){x.fn[e]=function(n,r){var i=x.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=x.filter(r,i)),this.length>1&&(ct[e]||(i=x.unique(i)),lt.test(e)&&(i=i.reverse())),this.pushStack(i)}}),x.extend({filter:function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return 1===e.nodeType}))},dir:function(e,n,r){var i=[],o=e[n];while(o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!x(o).is(r)))1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function ft(e,t,n){if(x.isFunction(t))return x.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return x.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(st.test(t))return x.filter(t,e,n);t=x.filter(t,e)}return x.grep(e,function(e){return x.inArray(e,t)>=0!==n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/
  • ","
    "],tr:[2,"","
    "],col:[2,"","
    "],td:[3,"","
    "],_default:x.support.htmlSerialize?[0,"",""]:[1,"X
    ","
    "]},jt=dt(a),Dt=jt.appendChild(a.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,x.fn.extend({text:function(e){return x.access(this,function(e){return e===t?x.text(this):this.empty().append((this[0]&&this[0].ownerDocument||a).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?x.filter(e,this):this,i=0;for(;null!=(n=r[i]);i++)t||1!==n.nodeType||x.cleanData(Ft(n)),n.parentNode&&(t&&x.contains(n.ownerDocument,n)&&_t(Ft(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&&x.cleanData(Ft(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&x.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return x.clone(this,e,t)})},html:function(e){return x.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!x.support.htmlSerialize&&mt.test(e)||!x.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(x.cleanData(Ft(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=x.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return this.domManip(arguments,function(n){var r=e[t++],i=e[t++];i&&(r&&r.parentNode!==i&&(r=this.nextSibling),x(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t,n){e=d.apply([],e);var r,i,o,a,s,l,u=0,c=this.length,p=this,f=c-1,h=e[0],g=x.isFunction(h);if(g||!(1>=c||"string"!=typeof h||x.support.checkClone)&&Nt.test(h))return this.each(function(r){var i=p.eq(r);g&&(e[0]=h.call(this,r,i.html())),i.domManip(e,t,n)});if(c&&(l=x.buildFragment(e,this[0].ownerDocument,!1,!n&&this),r=l.firstChild,1===l.childNodes.length&&(l=r),r)){for(a=x.map(Ft(l,"script"),Ht),o=a.length;c>u;u++)i=l,u!==f&&(i=x.clone(i,!0,!0),o&&x.merge(a,Ft(i,"script"))),t.call(this[u],i,u);if(o)for(s=a[a.length-1].ownerDocument,x.map(a,qt),u=0;o>u;u++)i=a[u],kt.test(i.type||"")&&!x._data(i,"globalEval")&&x.contains(s,i)&&(i.src?x._evalUrl(i.src):x.globalEval((i.text||i.textContent||i.innerHTML||"").replace(St,"")));l=r=null}return this}});function Lt(e,t){return x.nodeName(e,"table")&&x.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function Ht(e){return e.type=(null!==x.find.attr(e,"type"))+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function _t(e,t){var n,r=0;for(;null!=(n=e[r]);r++)x._data(n,"globalEval",!t||x._data(t[r],"globalEval"))}function Mt(e,t){if(1===t.nodeType&&x.hasData(e)){var n,r,i,o=x._data(e),a=x._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)x.event.add(t,n,s[n][r])}a.data&&(a.data=x.extend({},a.data))}}function Ot(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!x.support.noCloneEvent&&t[x.expando]){i=x._data(t);for(r in i.events)x.removeEvent(t,r,i.handle);t.removeAttribute(x.expando)}"script"===n&&t.text!==e.text?(Ht(t).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),x.support.html5Clone&&e.innerHTML&&!x.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Ct.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}x.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){x.fn[e]=function(e){var n,r=0,i=[],o=x(e),a=o.length-1;for(;a>=r;r++)n=r===a?this:this.clone(!0),x(o[r])[t](n),h.apply(i,n.get());return this.pushStack(i)}});function Ft(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||x.nodeName(o,n)?s.push(o):x.merge(s,Ft(o,n));return n===t||n&&x.nodeName(e,n)?x.merge([e],s):s}function Bt(e){Ct.test(e.type)&&(e.defaultChecked=e.checked)}x.extend({clone:function(e,t,n){var r,i,o,a,s,l=x.contains(e.ownerDocument,e);if(x.support.html5Clone||x.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(x.support.noCloneEvent&&x.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||x.isXMLDoc(e)))for(r=Ft(o),s=Ft(e),a=0;null!=(i=s[a]);++a)r[a]&&Ot(i,r[a]);if(t)if(n)for(s=s||Ft(e),r=r||Ft(o),a=0;null!=(i=s[a]);a++)Mt(i,r[a]);else Mt(e,o);return r=Ft(o,"script"),r.length>0&&_t(r,!l&&Ft(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){var i,o,a,s,l,u,c,p=e.length,f=dt(t),d=[],h=0;for(;p>h;h++)if(o=e[h],o||0===o)if("object"===x.type(o))x.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){s=s||f.appendChild(t.createElement("div")),l=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[l]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1>")+c[2],i=c[0];while(i--)s=s.lastChild;if(!x.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!x.support.tbody){o="table"!==l||xt.test(o)?""!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;while(i--)x.nodeName(u=o.childNodes[i],"tbody")&&!u.childNodes.length&&o.removeChild(u)}x.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),x.support.appendChecked||x.grep(Ft(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===x.inArray(o,r))&&(a=x.contains(o.ownerDocument,o),s=Ft(f.appendChild(o),"script"),a&&_t(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,l=x.expando,u=x.cache,c=x.support.deleteExpando,f=x.event.special;for(;null!=(n=e[s]);s++)if((t||x.acceptData(n))&&(o=n[l],a=o&&u[o])){if(a.events)for(r in a.events)f[r]?x.event.remove(n,r):x.removeEvent(n,r,a.handle); +u[o]&&(delete u[o],c?delete n[l]:typeof n.removeAttribute!==i?n.removeAttribute(l):n[l]=null,p.push(o))}},_evalUrl:function(e){return x.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})}}),x.fn.extend({wrapAll:function(e){if(x.isFunction(e))return this.each(function(t){x(this).wrapAll(e.call(this,t))});if(this[0]){var t=x(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=x.isFunction(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){x.nodeName(this,"body")||x(this).replaceWith(this.childNodes)}).end()}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+w+")(.*)$","i"),Yt=RegExp("^("+w+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+w+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===x.css(e,"display")||!x.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=x._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=x._data(r,"olddisplay",ln(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&x._data(r,"olddisplay",i?n:x.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}x.fn.extend({css:function(e,n){return x.access(this,function(e,n,r){var i,o,a={},s=0;if(x.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=x.css(e,n[s],!1,o);return a}return r!==t?x.style(e,n,r):x.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){nn(this)?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":x.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,l=x.camelCase(n),u=e.style;if(n=x.cssProps[l]||(x.cssProps[l]=tn(u,l)),s=x.cssHooks[n]||x.cssHooks[l],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:u[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(x.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||x.cssNumber[l]||(r+="px"),x.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(u[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{u[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,l=x.camelCase(n);return n=x.cssProps[l]||(x.cssProps[l]=tn(e.style,l)),s=x.cssHooks[n]||x.cssHooks[l],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||x.isNumeric(o)?o||0:a):a}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s.getPropertyValue(n)||s[n]:t,u=e.style;return s&&(""!==l||x.contains(e.ownerDocument,e)||(l=x.style(e,n)),Yt.test(l)&&Ut.test(n)&&(i=u.width,o=u.minWidth,a=u.maxWidth,u.minWidth=u.maxWidth=u.width=l,l=s.width,u.width=i,u.minWidth=o,u.maxWidth=a)),l}):a.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s[n]:t,u=e.style;return null==l&&u&&u[n]&&(l=u[n]),Yt.test(l)&&!zt.test(n)&&(i=u.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),u.left="fontSize"===n?"1em":l,l=u.pixelLeft+"px",u.left=i,a&&(o.left=a)),""===l?"auto":l});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=x.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=x.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=x.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=x.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=x.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function ln(e){var t=a,n=Gt[e];return n||(n=un(e,t),"none"!==n&&n||(Pt=(Pt||x("